Function at 0x1004ab80
Capabilities:
Extract resource via kernel32 functions

Disassembly:
push 0xffffffffffffffff
push 0x10053fb3
mov eax, dword fs:[0]
push eax
sub esp, 0x30
push ebx
push ebp
push esi
push edi
mov eax, dword [0x10080e78]
xor eax, esp
push eax
lea eax, [esp + 0x44]
mov dword fs:[0], eax
mov ebx, ecx
mov dword [esp + 0x18], ebx
mov edi, dword [esp + 0x54]
push 4
push edi
call sub.mfc90.dll_Ordinal_1108
push 4
mov esi, eax
push edi
push esi
call dword [sym.imp.KERNEL32.dll_FindResourceA]
test eax, eax
jne 0x1004abd0
xor eax, eax
jmp 0x1004ae79
push eax
push esi
call dword [sym.imp.KERNEL32.dll_LoadResource]
mov esi, eax
test esi, esi
je 0x1004abc9
call dword [sym.imp.USER32.dll_CreateMenu]
push eax
mov ecx, ebx
call sub.mfc90.dll_Ordinal_1361
test eax, eax
je 0x1004abc9
push esi
call dword [sym.imp.KERNEL32.dll_LockResource]
movzx ecx, word [eax + 2]
lea ebp, [ecx + eax + 4]
lea ecx, [esp + 0x54]
call dword [sym.imp.mfc90.dll_Ordinal_316]
lea ecx, [esp + 0x1c]
mov dword [esp + 0x4c], 0
call sub.mfc90.dll_Ordinal_553
mov dword [esp + 0x1c], vtable.CTypedPtrArray_class_CPtrArray__class_CNewMenu__.0
lea ecx, [esp + 0x30]
call fcn.10046fd0
mov edx, dword [esp + 0x24]
push ebx
push edx
lea ecx, [esp + 0x24]
mov byte [esp + 0x54], 2
call sub.mfc90.dll_Ordinal_6152
mov eax, dword [esp + 0x38]
push 0
push eax
lea ecx, [esp + 0x38]
call fcn.10047310
nop
movzx ebx, word [ebp]
mov esi, ebx
and esi, 0x10
mov dword [esp + 0x14], esi
jne 0x1004ac91
movzx edi, word [ebp + 2]
lea esi, [ebp + 4]
push esi
lea ecx, [esp + 0x58]
push 0x1005f2a0
push ecx
call dword [sym.imp.mfc90.dll_Ordinal_2539]
mov eax, esi
add esp, 0xc
lea edx, [eax + 2]
nop
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x1004ac80
mov esi, dword [esp + 0x14]
jmp 0x1004acbb
lea edx, [ebp + 2]
push edx
lea eax, [esp + 0x58]
push 0x1005f2a0
push eax
xor edi, edi
call dword [sym.imp.mfc90.dll_Ordinal_2539]
lea eax, [ebp + 4]
add esp, 0xc
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x1004acb0
sub eax, edx
sar eax, 1
lea ebp, [ebp + eax*2 + 6]
test si, si
je 0x1004ada8
test bl, bl
jns 0x1004acf8
mov eax, dword [esp + 0x24]
add eax, 0xffffffff
js 0x1004ae8f
cmp eax, dword [esp + 0x38]
jge 0x1004ae8f
mov ecx, dword [esp + 0x34]
mov dword [ecx + eax*4], 1
and ebx, 0xff7f
mov ecx, dword [esp + 0x24]
lea eax, [ecx - 1]
test eax, eax
jl 0x1004ae8f
cmp eax, ecx
jge 0x1004ae8f
mov edx, dword [esp + 0x20]
mov edi, dword [edx + eax*4]
push 0x6c
call sub.mfc90.dll_Ordinal_798
add esp, 4
mov dword [esp + 0x14], eax
mov byte [esp + 0x4c], 3
test eax, eax
je 0x1004ad3c
mov ecx, dword [edi + 4]
push ecx
mov ecx, eax
call sym.GuiTk115d.dll_public:_void___thiscall_CNewMenu::constructor_struct_HMENU____
mov esi, eax
jmp 0x1004ad3e
xor esi, esi
mov eax, dword [esp + 0x18]
mov edx, dword [eax + 0x48]
mov dword [esi + 0x48], edx
mov ecx, dword [eax + 0x44]
mov dword [esi + 0x44], ecx
mov edx, dword [eax + 0x3c]
mov byte [esp + 0x4c], 2
mov dword [esi + 0x3c], edx
mov dword [esi + 0x40], 1
call dword [sym.imp.USER32.dll_CreatePopupMenu]
push eax
mov ecx, esi
call sub.mfc90.dll_Ordinal_1361
mov eax, dword [esi + 4]
mov ecx, dword [esp + 0x54]
push 0xffffffffffffffff
push eax
movzx eax, bx
push eax
push ecx
mov ecx, edi
call sym.GuiTk115d.dll_public:_int___thiscall_CNewMenu::AppendODMenu_char_const___unsigned_int__unsigned_int__int_
mov edx, dword [esp + 0x24]
push esi
push edx
lea ecx, [esp + 0x24]
call sub.mfc90.dll_Ordinal_6152
mov eax, dword [esp + 0x38]
push 0
push eax
lea ecx, [esp + 0x38]
call fcn.10047310
jmp 0x1004ae40
mov ecx, dword [esp + 0x24]
lea eax, [ecx - 1]
test eax, eax
jl 0x1004ae8f
cmp eax, ecx
jge 0x1004ae8f
push 0xffffffffffffffff
movzx ecx, di
push ecx
mov ecx, dword [esp + 0x5c]
movzx edx, bx
and edx, 0xffffff7f
push edx
mov edx, dword [esp + 0x2c]
push ecx
mov ecx, dword [edx + eax*4]
call sym.GuiTk115d.dll_public:_int___thiscall_CNewMenu::AppendODMenu_char_const___unsigned_int__unsigned_int__int_
test bl, bl
jns 0x1004ae06
mov eax, dword [esp + 0x24]
add eax, 0xffffffff
js 0x1004ae8f
cmp eax, dword [esp + 0x38]
jge 0x1004ae8f
mov ecx, dword [esp + 0x34]
mov dword [ecx + eax*4], 1
mov esi, dword [esp + 0x24]
add esi, 0xffffffff
js 0x1004ae40
test esi, esi
jl 0x1004ae8f
cmp esi, dword [esp + 0x38]
jge 0x1004ae8f
mov edx, dword [esp + 0x34]
cmp dword [edx + esi*4], 0
je 0x1004ae40
push 1
push esi
lea ecx, [esp + 0x24]
call sub.mfc90.dll_Ordinal_5876
push 1
push esi
lea ecx, [esp + 0x38]
call fcn.10046ff0
sub esi, 1
jns 0x1004ae0f
mov eax, dword [esp + 0x24]
dec eax
cmp eax, 0xffffffff
jne 0x1004ac50
lea ecx, [esp + 0x30]
mov byte [esp + 0x4c], 1
call fcn.10047050
lea ecx, [esp + 0x1c]
mov byte [esp + 0x4c], 0
call sub.mfc90.dll_Ordinal_757
lea ecx, [esp + 0x54]
call dword [sym.imp.mfc90.dll_Ordinal_601]
mov eax, 1
mov ecx, dword [esp + 0x44]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x3c
ret 4
call sub.mfc90.dll_Ordinal_1252
int3