Function at 0x40c010
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push 0xffffffffffffffff
mov eax, dword fs:[0]
push 0x5d02fa
push eax
mov eax, 0x1224
mov dword fs:[0], esp
call fcn.005301e0
mov eax, dword [ecx + 0x1c]
push ebx
push ebp
push esi
push edi
push eax
call dword [sym.imp.USER32.dll_GetMenu]
push eax
call fcn.005b5750
mov ecx, dword [eax + 4]
mov esi, dword [sym.imp.USER32.dll_GetSubMenu]
push 2
push ecx
call esi
push eax
call fcn.005b5750
mov edx, dword [eax + 4]
push 1
push edx
mov dword [esp + 0x40], eax
call esi
push eax
call fcn.005b5750
mov esi, eax
xor ebx, ebx
cmp esi, ebx
mov dword [esp + 0x34], esi
je 0x40c4df
mov eax, dword [esi + 4]
mov edi, dword [sym.imp.USER32.dll_DeleteMenu]
push 0x400
push ebx
push eax
call edi
cmp eax, ebx
je 0x40c09f
mov ecx, dword [esi + 4]
push 0x400
push ebx
push ecx
call edi
cmp eax, ebx
jne 0x40c08f
mov edx, dword [0x87a768]
mov dword [esp + 0x18], edx
mov dword [esp + 0x123c], ebx
call fcn.00596b38
lea edi, [eax + 0x1c]
mov ecx, eax
push edi
push 0x189c
call fcn.00403e80
test eax, eax
je 0x40c10d
push 1
mov ecx, edi
call fcn.005b4ba6
cmp eax, ebx
je 0x40c10d
call fcn.00596b38
lea edi, [eax + 0x1c]
mov ecx, eax
push edi
push 0x189c
call fcn.00403e80
test eax, eax
je 0x40c0fa
push 1
mov ecx, edi
call fcn.005b4ba6
jmp 0x40c0fc
xor eax, eax
push eax
mov eax, dword [esi + 4]
push 0x189c
push ebx
push eax
call dword [sym.imp.USER32.dll_AppendMenuW]
mov ecx, dword [0x880a54]
cmp ecx, ebx
je 0x40c165
mov edx, dword [0x880a58]
xor eax, eax
cmp edx, ebx
mov dword [esp + 0x14], eax
jbe 0x40c165
mov ebp, dword [ecx + eax*4]
cmp ebp, ebx
je 0x40c156
lea esi, [ebp + 0xc]
xor edi, edi
push ebx
mov ecx, esi
call fcn.0041cd30
add esi, 0xc
mov ecx, edi
dec edi
test ecx, ecx
jne 0x40c133
mov ebp, dword [ebp]
cmp ebp, ebx
jne 0x40c12e
mov ecx, dword [0x880a54]
mov eax, dword [esp + 0x14]
mov edx, dword [0x880a58]
inc eax
cmp eax, edx
mov dword [esp + 0x14], eax
jb 0x40c127
push ecx
call fcn.005b44c3
mov ecx, dword [0x880a64]
add esp, 4
mov dword [0x880a54], ebx
mov dword [0x880a5c], ebx
mov dword [0x880a60], ebx
call fcn.005af0e0
lea edx, [esp + 0x234]
push 0x400
push edx
push 0x400
mov ecx, 0x100
xor eax, eax
lea edi, [esp + 0x240]
push 0x87fa3c
push ebx
push ebx
rep stosd dword es:[edi], eax
mov dword [0x880a64], ebx
mov ebp, 0x189c
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
lea ecx, [esp + 0x3c]
call fcn.0041b6e0
lea ecx, [esp + 0x68]
mov byte [esp + 0x123c], 1
call fcn.00419f90
push str.UTF_8
lea ecx, [esp + 0x6c]
mov byte [esp + 0x1240], 2
mov dword [esp + 0x5c], ebx
mov dword [esp + 0x68], ebx
call fcn.0041a280
lea ecx, [esp + 0x10]
mov byte [esp + 0x123c], 3
call fcn.0053de30
lea eax, [esp + 0x234]
push 0x637cb8
push eax
lea ecx, [esp + 0x18]
mov byte [esp + 0x1244], 4
call fcn.0053de50
test eax, eax
je 0x40c606
lea ecx, [esp + 0x10]
call fcn.0053df80
mov esi, eax
push esi
mov dword [esp + 0x18], esi
call fcn.005b449a
mov edi, eax
add esp, 4
cmp edi, ebx
jne 0x40c286
lea ecx, [esp + 0x10]
mov byte [esp + 0x123c], 3
call fcn.0053de40
lea ecx, [esp + 0x3c]
mov byte [esp + 0x123c], 6
call fcn.0041ba00
mov ecx, dword [esp + 0x68]
mov byte [esp + 0x123c], 5
push ecx
jmp 0x40c4b3
push esi
push edi
lea ecx, [esp + 0x18]
call fcn.0053dfb0
cmp esi, 4
jb 0x40c330
lea ecx, [esp + 0x3c]
call fcn.0041ba00
push 0x64
lea ecx, [esp + 0x2c]
call fcn.0041c320
lea edx, [esp + 0x3c]
lea ecx, [esp + 0x28]
push edx
mov byte [esp + 0x1240], 7
call fcn.0041c350
mov ax, word [edi]
xor esi, esi
and eax, 0xfefe
cmp eax, 0xfefe
jne 0x40c2dc
mov esi, 2
jmp 0x40c2f2
cmp byte [edi], 0xef
jne 0x40c2f2
cmp byte [edi + 1], 0xbb
jne 0x40c2f2
cmp byte [edi + 2], 0xbf
jne 0x40c2f2
mov esi, 3
cmp esi, dword [esp + 0x14]
jae 0x40c31b
mov edx, dword [esp + 0x14]
lea ecx, [esp + 0x28]
sub edx, esi
push ecx
lea eax, [esi + edi]
push edx
push eax
lea ecx, [esp + 0x48]
call fcn.0041bbd0
add esi, eax
mov eax, dword [esp + 0x14]
cmp esi, eax
jb 0x40c2f8
mov ecx, dword [esp + 0x30]
mov byte [esp + 0x123c], 4
push ecx
call fcn.005b44c3
add esp, 4
push edi
call fcn.005b44c3
add esp, 4
lea ecx, [esp + 0x10]
call fcn.0053df20
mov cl, byte [str.Machine_Sel]
mov esi, str.Machine_Sel
cmp cl, bl
mov dword [esp + 0x20], ebx
mov dword [esp + 0x24], ebx
mov dword [esp + 0x1c], ebx
mov eax, 0x637cc9
je 0x40c369
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x40c362
sub eax, str.Machine_Sel
lea ecx, [esp + 0x1c]
dec eax
mov edi, eax
lea eax, [edi + 0x20]
push eax
call fcn.0041b410
mov cl, byte [str.Machine_Sel]
mov eax, dword [esp + 0x1c]
cmp cl, bl
je 0x40c397
mov byte [eax], cl
mov cl, byte [esi + 1]
inc eax
inc esi
cmp cl, bl
jne 0x40c38c
mov byte [eax], bl
mov dword [esp + 0x24], edi
mov ecx, dword [esp + 0x60]
mov byte [esp + 0x123c], 8
cmp ecx, ebx
je 0x40c3e5
call fcn.0049c460
mov edi, eax
cmp edi, ebx
je 0x40c3e5
mov ecx, dword [esp + 0x1c]
push ecx
mov ecx, edi
call fcn.0041cee0
neg eax
sbb eax, eax
inc eax
mov dword [esp + 0x14], eax
jne 0x40c3e1
mov ecx, dword [esp + 0x60]
push edi
call fcn.0056eda0
mov edi, eax
cmp edi, ebx
jne 0x40c3b8
jmp 0x40c3e5
cmp edi, ebx
jne 0x40c42e
mov edx, dword [esp + 0x1c]
mov byte [esp + 0x123c], 4
push edx
call fcn.005b44c3
add esp, 4
lea ecx, [esp + 0x10]
mov byte [esp + 0x123c], 3
call fcn.0053de40
lea ecx, [esp + 0x3c]
mov byte [esp + 0x123c], 0xa
call fcn.0041ba00
mov eax, dword [esp + 0x68]
mov byte [esp + 0x123c], 9
push eax
jmp 0x40c4b3
mov ecx, dword [edi + 0x24]
cmp ecx, ebx
je 0x40c444
call fcn.0049c460
mov esi, eax
cmp esi, ebx
jne 0x40c4e6
call fcn.00596b38
lea esi, [eax + 0x1c]
mov ecx, eax
push esi
push 0x18
call fcn.00403e80
test eax, eax
je 0x40c465
push 1
mov ecx, esi
call fcn.005b4ba6
jmp 0x40c467
xor eax, eax
push ebx
push ebx
push eax
call fcn.005bc06a
mov ecx, dword [esp + 0x1c]
mov byte [esp + 0x123c], 4
push ecx
call fcn.005b44c3
add esp, 4
lea ecx, [esp + 0x10]
mov byte [esp + 0x123c], 3
call fcn.0053de40
lea ecx, [esp + 0x3c]
mov byte [esp + 0x123c], 0xc
call fcn.0041ba00
mov edx, dword [esp + 0x68]
mov byte [esp + 0x123c], 0xb
push edx
call fcn.005b44c3
add esp, 4
lea ecx, [esp + 0x3c]
mov byte [esp + 0x123c], bl
call fcn.0041b790
lea ecx, [esp + 0x18]
mov dword [esp + 0x123c], 0xffffffff
call fcn.005b4761
xor eax, eax
jmp 0x40c6ae
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x24], ebx
push str.description
lea ecx, [esp + 0x20]
mov byte [eax], bl
call fcn.0041b5c0
mov ecx, dword [esi + 0x20]
cmp ecx, ebx
je 0x40c5b9
lea edx, [esp + 0x1c]
push edx
call fcn.0041b8d0
cmp eax, ebx
je 0x40c5b9
mov ecx, dword [esi + 0x20]
cmp ecx, ebx
je 0x40c5e3
lea eax, [esp + 0x1c]
push eax
call fcn.0041b960
lea ecx, [esp + 0xa34]
push 0x400
push ecx
mov ecx, eax
call fcn.0041a0a0
push 0x20
lea ecx, [esp + 0x2c]
mov dword [esp + 0x30], ebx
mov dword [esp + 0x34], ebx
mov dword [esp + 0x2c], ebx
call fcn.0041b410
mov edx, dword [esp + 0x28]
mov dword [esp + 0x30], ebx
push esi
lea ecx, [esp + 0x2c]
mov byte [esp + 0x1240], 0xd
mov byte [edx], bl
call fcn.0041b4c0
lea eax, [esp + 0x28]
mov ecx, 0x880a50
push eax
push ebp
call fcn.0041cac0
mov ecx, eax
call fcn.0041a180
lea ecx, [esp + 0xa34]
mov eax, ebp
push ecx
mov ecx, dword [esp + 0x38]
push eax
push ebx
inc ebp
call fcn.0040bf80
mov edx, dword [esp + 0x28]
mov byte [esp + 0x123c], 8
push edx
call fcn.005b44c3
add esp, 4
mov ecx, dword [edi + 0x24]
push esi
call fcn.0056eda0
mov esi, eax
cmp esi, ebx
jne 0x40c4e6
mov ecx, dword [esp + 0x1c]
mov byte [esp + 0x123c], 4
push ecx
call fcn.005b44c3
add esp, 4
jmp 0x40c61c
push str.SXmlElem::PickupAttr_error:_No_attribute.
lea ecx, [esp + 0xa4]
call fcn.0040bed0
lea eax, [esp + 0xa0]
push 0x5ff2d8
push eax
call fcn.005300db
push ebx
push ebx
push 0x18
call fcn.00596b38
mov ecx, eax
call fcn.004057e0
push eax
call fcn.005bc06a
mov ecx, 0x87f4e0
call fcn.004238f0
mov ecx, 0xb
xor eax, eax
lea edi, [esp + 0x74]
push 1
rep stosd dword es:[edi], eax
mov ecx, dword [esp + 0x3c]
lea eax, [esp + 0x78]
lea edx, [esp + 0x170]
push eax
push 1
mov dword [esp + 0x80], 0x2c
mov dword [esp + 0x84], 0x40
mov dword [esp + 0xa4], edx
mov dword [esp + 0xa8], 0x64
call fcn.0040bfa0
lea ecx, [esp + 0x10]
mov byte [esp + 0x123c], 3
call fcn.0053de40
lea ecx, [esp + 0x3c]
mov byte [esp + 0x123c], bl
call fcn.0041a520
lea ecx, [esp + 0x18]
mov dword [esp + 0x123c], 0xffffffff
call fcn.005b4761
mov eax, 1
mov ecx, dword [esp + 0x1234]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x1230
ret