[BITS 32] [CPU PRESCOTT] luaopen_base equ 0x005C91D5 szluaopen_base equ 0x005C9110 luaopen_package equ 0x005C91D9 szluaopen_package equ 0x005C911F luaopen_table equ 0x005C91DD szluaopen_table equ 0x005C9131 luaopen_io equ 0x005C91E1 szluaopen_io equ 0x005C9141 luaopen_os equ 0x005C91E5 szluaopen_os equ 0x005C914E luaopen_string equ 0x005C91E9 szluaopen_string equ 0x005C915B luaopen_math equ 0x005C91ED szluaopen_math equ 0x005C916C luaopen_debug equ 0x005C91F2 szluaopen_debug equ 0x005C917B luaopen_jit equ 0x005C91F6 szluaopen_jit equ 0x005C918B luaopen_coco equ 0x005C91F9 szluaopen_coco equ 0x005C9199 lua_pushcclosure equ 0x005C91FD szlua_pushcclosure equ 0x005C91A8 lua_pushstring equ 0x005C9201 szlua_pushstring equ 0x005C91BB lua_call equ 0x005C9205 szlua_call equ 0x005C91CC push ebx ; func ptr push esi ; str ptr push edx ; edx is base reloc ptr, becomes state ptr - passed by eax push edi ; call func mov ebx, edx mov esi, edx mov edi, edx add ebx, luaopen_base add esi, szluaopen_base add edi, lua_pushcclosure mov edx, eax ; grab state ptr passed thru eax ; base add esi, 12 call near luahack_register ; package add esi, 11 call near luahack_register ; table add esi, 18 call near luahack_register ; io add esi, 16 call near luahack_register ; os add esi, 13 call near luahack_register ; string add esi, 13 call near luahack_register ; math add esi, 17 call near luahack_register ; debug add esi, 15 call near luahack_register ; jit add esi, 16 call near luahack_register ; coco add esi, 14 call near luahack_register pop edi ; call func pop edx ; edx is base reloc ptr, becomes state ptr - passed by eax pop esi ; str ptr pop ebx ; func ptr ret luahack_register: push ebx push edx call [ edi ] add esp, 4*2 push esi push edx call [ edi + 4 ] add esp, 4*2 push dword 0x00000000 push dword 0x00000001 push edx call [ edi + 8 ] add esp, 4*3 ret