asm("mov %0, %%eax" : : "m"(ni) : "%eax"); asm("dec %eax"); asm("hook_oldcall_loop:"); asm(" cmp $0, %eax"); asm(" jl hook_oldcall_startcall"); asm(" mov %0, %%ecx" : : "m"(argArrayL) : "%ecx"); asm(" imul $4, %ecx"); asm(" add %eax, %ecx"); asm(" push %ecx"); //asm(" push %0+%%eax*4" : : "r"(argArray)); // [argArray+eax*4] asm(" dec %eax"); asm(" jmp hook_oldcall_loop"); asm("hook_oldcall_startcall:"); asm(" mov %0, %%eax" : : "m"(ex) : "%eax"); asm(" cmp $1, %eax"); asm(" jnz hook_oldcall_nothis"); asm(" mov %0, %%ecx" : : "m"(ecxvalue) : "%ecx"); asm("hook_oldcall_nothis:"); asm(" call *%0" : : "m"(dwCall)); asm(" mov %%eax, %0" : "=m"(rez));