.686P .MODEL FLAT EXTRN @ffi_closure_inner@8:PROC _TEXT SEGMENT ALIGN 16 PUBLIC @ffi_call_i386@8 @ffi_call_i386@8 PROC LUW0: mov eax, [esp] mov [ecx], ebp mov [ecx+4], eax mov ebp, ecx LUW1: mov esp, edx mov eax, [20+0*4+ebp] mov edx, [20+1*4+ebp] mov ecx, [20+2*4+ebp] call dword ptr [ebp+8] mov ecx, [12+ebp] mov [ebp+8], ebx LUW2: and ecx, 15 lea ebx, [Lstore_table + ecx * 8] mov ecx, [ebp+16] jmp ebx ALIGN 8 Lstore_table: ALIGN 8; ORG Lstore_table + 0 * 8 fstp DWORD PTR [ecx] jmp Le1 ALIGN 8; ORG Lstore_table + 1 * 8 fstp QWORD PTR [ecx] jmp Le1 ALIGN 8; ORG Lstore_table + 2 * 8 fstp QWORD PTR [ecx] jmp Le1 ALIGN 8; ORG Lstore_table + 3 * 8 movsx eax, al mov [ecx], eax jmp Le1 ALIGN 8; ORG Lstore_table + 4 * 8 movsx eax, ax mov [ecx], eax jmp Le1 ALIGN 8; ORG Lstore_table + 5 * 8 movzx eax, al mov [ecx], eax jmp Le1 ALIGN 8; ORG Lstore_table + 6 * 8 movzx eax, ax mov [ecx], eax jmp Le1 ALIGN 8; ORG Lstore_table + 7 * 8 mov [ecx+4], edx ALIGN 8; ORG Lstore_table + X86_RET_int 32 * 8 mov [ecx], eax ALIGN 8; ORG Lstore_table + 9 * 8 Le1: mov ebx, [ebp+8] mov esp, ebp pop ebp LUW3: ret LUW4: ALIGN 8; ORG Lstore_table + 10 * 8 jmp Le1 ALIGN 8; ORG Lstore_table + 11 * 8 jmp Le1 ALIGN 8; ORG Lstore_table + 12 * 8 mov [ecx], al jmp Le1 ALIGN 8; ORG Lstore_table + 13 * 8 mov [ecx], ax jmp Le1 ALIGN 8; ORG Lstore_table + 14 * 8 int 3 ALIGN 8; ORG Lstore_table + 15 * 8 int 3 LUW5: @ffi_call_i386@8 ENDP FFI_CLOSURE_SAVE_REGS MACRO mov [esp + 0+16+0*4], eax mov [esp + 0+16+1*4], edx mov [esp + 0+16+2*4], ecx ENDM FFI_CLOSURE_COPY_TRAMP_DATA MACRO mov edx, [eax+12] mov ecx, [eax+12+4] mov eax, [eax+12+8]; mov [esp+0+28], edx mov [esp+0+32], ecx mov [esp+0+36], eax ENDM FFI_CLOSURE_PREP_CALL MACRO mov ecx, esp lea edx, [esp+(40 + 4)+4] ENDM FFI_CLOSURE_CALL_INNER MACRO UWN call @ffi_closure_inner@8 ENDM FFI_CLOSURE_MASK_AND_JUMP MACRO LABEL and eax, 15 lea edx, [LABEL+eax*8] mov eax, [esp+0] jmp edx ENDM ALIGN 16 PUBLIC ffi_go_closure_EAX ffi_go_closure_EAX PROC C LUW6: sub esp, (40 + 4) LUW7: FFI_CLOSURE_SAVE_REGS mov edx, [eax+4] mov ecx, [eax +8] mov [esp+0+28], edx mov [esp+0+32], ecx mov [esp+0+36], eax jmp Ldo_closure_i386 LUW8: ffi_go_closure_EAX ENDP ALIGN 16 PUBLIC ffi_go_closure_ECX ffi_go_closure_ECX PROC C LUW9: sub esp, (40 + 4) LUW10: FFI_CLOSURE_SAVE_REGS mov edx, [ecx+4] mov eax, [ecx+8] mov [esp+0+28], edx mov [esp+0+32], eax mov [esp+0+36], ecx jmp Ldo_closure_i386 LUW11: ffi_go_closure_ECX ENDP ALIGN 16 PUBLIC ffi_closure_i386 ffi_closure_i386 PROC C LUW12: sub esp, (40 + 4) LUW13: FFI_CLOSURE_SAVE_REGS FFI_CLOSURE_COPY_TRAMP_DATA Ldo_closure_i386:: FFI_CLOSURE_PREP_CALL FFI_CLOSURE_CALL_INNER(14) FFI_CLOSURE_MASK_AND_JUMP Lload_table2 ALIGN 8 Lload_table2: ALIGN 8; ORG Lload_table2 + 0 * 8 fld dword ptr [esp+0] jmp Le2 ALIGN 8; ORG Lload_table2 + 1 * 8 fld qword ptr [esp+0] jmp Le2 ALIGN 8; ORG Lload_table2 + 2 * 8 fld qword ptr [esp+0] jmp Le2 ALIGN 8; ORG Lload_table2 + 3 * 8 movsx eax, al jmp Le2 ALIGN 8; ORG Lload_table2 + 4 * 8 movsx eax, ax jmp Le2 ALIGN 8; ORG Lload_table2 + 5 * 8 movzx eax, al jmp Le2 ALIGN 8; ORG Lload_table2 + 6 * 8 movzx eax, ax jmp Le2 ALIGN 8; ORG Lload_table2 + 7 * 8 mov edx, [esp+0+4] jmp Le2 ALIGN 8; ORG Lload_table2 + 8 * 8 nop ALIGN 8; ORG Lload_table2 + 9 * 8 Le2: add esp, (40 + 4) LUW16: ret LUW17: ALIGN 8; ORG Lload_table2 + 10 * 8 add esp, (40 + 4) LUW18: ret 4 LUW19: ALIGN 8; ORG Lload_table2 + 11 * 8 jmp Le2 ALIGN 8; ORG Lload_table2 + 12 * 8 movzx eax, al jmp Le2 ALIGN 8; ORG Lload_table2 + 13 * 8 movzx eax, ax jmp Le2 ALIGN 8; ORG Lload_table2 + 14 * 8 int 3 ALIGN 8; ORG Lload_table2 + 15 * 8 int 3 LUW20: ffi_closure_i386 ENDP ALIGN 16 PUBLIC ffi_go_closure_STDCALL ffi_go_closure_STDCALL PROC C LUW21: sub esp, (40 + 4) LUW22: FFI_CLOSURE_SAVE_REGS mov edx, [ecx+4] mov eax, [ecx+8] mov [esp+0+28], edx mov [esp+0+32], eax mov [esp+0+36], ecx jmp Ldo_closure_STDCALL LUW23: ffi_go_closure_STDCALL ENDP ALIGN 16 PUBLIC ffi_closure_REGISTER ffi_closure_REGISTER PROC C LUW24: sub esp, (40 + 4)-4 LUW25: FFI_CLOSURE_SAVE_REGS mov ecx, [esp+(40 + 4)-4] mov eax, [esp+(40 + 4)] mov [esp+(40 + 4)], ecx jmp Ldo_closure_REGISTER LUW26: ffi_closure_REGISTER ENDP ALIGN 16 PUBLIC ffi_closure_STDCALL ffi_closure_STDCALL PROC C LUW27: sub esp, (40 + 4) LUW28: FFI_CLOSURE_SAVE_REGS Ldo_closure_REGISTER:: FFI_CLOSURE_COPY_TRAMP_DATA Ldo_closure_STDCALL:: FFI_CLOSURE_PREP_CALL FFI_CLOSURE_CALL_INNER(29) mov ecx, eax shr ecx, 4 lea ecx, [esp+(40 + 4)+ecx] mov edx, [esp+(40 + 4)] mov [ecx], edx FFI_CLOSURE_MASK_AND_JUMP Lload_table3 ALIGN 8 Lload_table3: ALIGN 8; ORG Lload_table3 + 0 * 8 fld DWORD PTR [esp+0] mov esp, ecx ret ALIGN 8; ORG Lload_table3 + 1 * 8 fld QWORD PTR [esp+0] mov esp, ecx ret ALIGN 8; ORG Lload_table3 + 2 * 8 fld QWORD PTR [esp+0] mov esp, ecx ret ALIGN 8; ORG Lload_table3 + 3 * 8 movsx eax, al mov esp, ecx ret ALIGN 8; ORG Lload_table3 + 4 * 8 movsx eax, ax mov esp, ecx ret ALIGN 8; ORG Lload_table3 + 5 * 8 movzx eax, al mov esp, ecx ret ALIGN 8; ORG Lload_table3 + 6 * 8 movzx eax, ax mov esp, ecx ret ALIGN 8; ORG Lload_table3 + 7 * 8 mov edx, [esp+0+4] mov esp, ecx ret ALIGN 8; ORG Lload_table3 + X86_RET_int 32 * 8 mov esp, ecx ret ALIGN 8; ORG Lload_table3 + 9 * 8 mov esp, ecx ret ALIGN 8; ORG Lload_table3 + 10 * 8 mov esp, ecx ret ALIGN 8; ORG Lload_table3 + 11 * 8 mov esp, ecx ret ALIGN 8; ORG Lload_table3 + 12 * 8 movzx eax, al mov esp, ecx ret ALIGN 8; ORG Lload_table3 + 13 * 8 movzx eax, ax mov esp, ecx ret ALIGN 8; ORG Lload_table3 + 14 * 8 int 3 ALIGN 8; ORG Lload_table3 + 15 * 8 int 3 LUW31: ffi_closure_STDCALL ENDP ALIGN 16 PUBLIC ffi_closure_raw_SYSV ffi_closure_raw_SYSV PROC C LUW32: sub esp, (16+16+12) LUW33: mov [esp+(16+16+12)-4], ebx LUW34: mov edx, [eax+12+8] mov [esp+12], edx lea edx, [esp+(16+16+12)+4] mov [esp+8], edx lea edx, [esp+16] mov [esp+4], edx mov ebx, [eax+12] mov [esp], ebx call DWORD PTR [eax+12+4] mov eax, [ebx+20] and eax, 15 lea ecx, [Lload_table4+eax+8] mov ebx, [esp+(16+16+12)-4] LUW35: mov eax, [esp+16] jmp dword ptr [ecx] ALIGN 8 Lload_table4: ALIGN 8; ORG Lload_table4 + 0 * 8 fld DWORD PTR [esp +16] jmp Le4 ALIGN 8; ORG Lload_table4 + 1 * 8 fld QWORD PTR [esp +16] jmp Le4 ALIGN 8; ORG Lload_table4 + 2 * 8 fld QWORD PTR [esp +16] jmp Le4 ALIGN 8; ORG Lload_table4 + 3 * 8 movsx eax, al jmp Le4 ALIGN 8; ORG Lload_table4 + 4 * 8 movsx eax, ax jmp Le4 ALIGN 8; ORG Lload_table4 + 5 * 8 movzx eax, al jmp Le4 ALIGN 8; ORG Lload_table4 + 6 * 8 movzx eax, ax jmp Le4 ALIGN 8; ORG Lload_table4 + 7 * 8 mov edx, [esp+16+4] jmp Le4 ALIGN 8; ORG Lload_table4 + X86_RET_int 32 * 8 nop ALIGN 8; ORG Lload_table4 + 9 * 8 Le4: add esp, (16+16+12) LUW36: ret LUW37: ALIGN 8; ORG Lload_table4 + 10 * 8 add esp, (16+16+12) LUW38: ret 4 LUW39: ALIGN 8; ORG Lload_table4 + 11 * 8 jmp Le4 ALIGN 8; ORG Lload_table4 + 12 * 8 movzx eax, al jmp Le4 ALIGN 8; ORG Lload_table4 + 13 * 8 movzx eax, ax jmp Le4 ALIGN 8; ORG Lload_table4 + 14 * 8 int 3 ALIGN 8; ORG Lload_table4 + 15 * 8 int 3 LUW40: ffi_closure_raw_SYSV ENDP ALIGN 16 PUBLIC ffi_closure_raw_THISCALL ffi_closure_raw_THISCALL PROC C LUW41: pop edx LUW42: push ecx LUW43: push edx LUW44: sub esp, (16+16+8) LUW45: mov [esp+(16+16+8)-4], ebx LUW46: mov edx, [eax+12+8] mov [esp+12], edx lea edx, [esp+(16+16+8)+4] mov [esp+8], edx lea edx, [esp+16] mov [esp+4], edx mov ebx, [eax+12] mov [esp], ebx call DWORD PTR [eax+12+4] mov eax, [ebx+20] and eax, 15 lea ecx, [Lload_table5+eax*8] mov ebx, [esp+(16+16+8)-4] LUW47: mov eax, [esp+16] jmp DWORD PTR [ecx] AlIGN 4 Lload_table5: ALIGN 8; ORG Lload_table5 + 0 * 8 fld DWORD PTR [esp +16] jmp Le5 ALIGN 8; ORG Lload_table5 + 1 * 8 fld QWORD PTR [esp +16] jmp Le5 ALIGN 8; ORG Lload_table5 + 2 * 8 fld QWORD PTR [esp+16] jmp Le5 ALIGN 8; ORG Lload_table5 + 3 * 8 movsx eax, al jmp Le5 ALIGN 8; ORG Lload_table5 + 4 * 8 movsx eax, ax jmp Le5 ALIGN 8; ORG Lload_table5 + 5 * 8 movzx eax, al jmp Le5 ALIGN 8; ORG Lload_table5 + 6 * 8 movzx eax, ax jmp Le5 ALIGN 8; ORG Lload_table5 + 7 * 8 mov edx, [esp+16+4] jmp Le5 ALIGN 8; ORG Lload_table5 + X86_RET_int 32 * 8 nop ALIGN 8; ORG Lload_table5 + 9 * 8 Le5: add esp, (16+16+8) LUW48: ret 4 LUW49: ALIGN 8; ORG Lload_table5 + 10 * 8 add esp, (16+16+8) LUW50: ret 8 LUW51: ALIGN 8; ORG Lload_table5 + 11 * 8 jmp Le5 ALIGN 8; ORG Lload_table5 + 12 * 8 movzx eax, al jmp Le5 ALIGN 8; ORG Lload_table5 + 13 * 8 movzx eax, ax jmp Le5 ALIGN 8; ORG Lload_table5 + 14 * 8 int 3 ALIGN 8; ORG Lload_table5 + 15 * 8 int 3 LUW52: ffi_closure_raw_THISCALL ENDP END