This program crashes after run
int __fastcall fun(int a,int b,int c,int d,int e){
return 0;
}
int main(){
fun(0,0,0,0,0);
return 0;
}
if you look at fun code in disassembler you will see what's the reason. The "ret" command is wrong (like for __stdcall but not like for __fastcall for this example "ret 14" instead "ret C"). It brokes the stack!
Another bug is that in disassembler negative integer numbers show incorrectly. For example "-FF" instead "-1"
And it will be good if you will use more registers for __fastcall calling.