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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x5c2073
mov eax, dword fs:[0]
push eax
sub esp, 0x58
push ebx
push esi
push edi
mov eax, dword [0x615370]
xor eax, esp
push eax
lea eax, [esp + 0x68]
mov dword fs:[0], eax
mov esi, dword [ebp + 0x10]
xor edi, edi
mov dword [esp + 0x24], esi
cmp esi, edi
je 0x4ca681
mov eax, dword [esi]
mov ecx, dword [eax + 4]
push esi
call ecx
mov dword [esp + 0x70], edi
cmp esi, edi
je 0x4cadf8
mov eax, dword [ebp + 8]
cmp dword [eax + 0xc4], edi
je 0x4cadf8
mov eax, dword [eax + 4]
cmp eax, edi
je 0x4cadf8
mov byte [esp + 0x70], 1
mov dword [esp + 0x10], edi
mov ecx, dword [esi + 0xb4]
mov edx, dword [eax]
lea ebx, [esp + 0x10]
push ebx
push ecx
push eax
mov eax, dword [edx + 0x3c]
call eax
test eax, eax
jne 0x4ca702
mov byte [esp + 0x70], 0
mov eax, dword [esp + 0x10]
cmp eax, edi
je 0x4ca6dd
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov dword [esp + 0x70], 0xffffffff
mov eax, dword [esi]
mov ecx, dword [eax + 8]
push esi
call ecx
mov ecx, dword [esp + 0x68]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
lea edx, [esp + 0x3c]
push edx
call fcn.00427c80
lea eax, [esp + 0x14]
push eax
mov ecx, str.XNBItemMenu
mov byte [esp + 0x74], 2
call fcn.00406c20
lea ecx, [esp + 0x3c]
push ecx
lea edx, [esp + 0x18]
push edx
mov byte [esp + 0x78], 3
call fcn.00407d70
call fcn.00428be0
test eax, eax
lea ecx, [esp + 0x14]
sete bl
mov byte [esp + 0x70], 2
call fcn.004066e0
test bl, bl
je 0x4ca75e
lea eax, [esp + 0x3c]
call fcn.00427f90
jmp 0x4ca6c8
push 0x1d8
call fcn.005851c0
add esp, 4
mov dword [esp + 0x20], eax
mov byte [esp + 0x70], 4
cmp eax, edi
je 0x4ca787
mov ecx, eax
call fcn.0042ac00
mov ebx, eax
mov dword [esp + 0x14], ebx
jmp 0x4ca78d
mov dword [esp + 0x14], edi
mov ebx, edi
mov byte [esp + 0x70], 2
mov dword [esp + 0x28], ebx
cmp ebx, edi
je 0x4ca7a2
mov edx, dword [ebx]
mov eax, dword [edx + 4]
push ebx
call eax
mov byte [esp + 0x70], 5
mov esi, dword [esp + 0x3c]
mov edi, ebx
call fcn.0042b0d0
mov esi, dword [esp + 0x44]
call fcn.0042b0a0
lea esi, [esp + 0x2c]
lea edi, [esp + 0x4c]
call fcn.0054b1b0
mov edi, dword [esp + 0x30]
mov ebx, dword [ebp + 0x10]
mov eax, dword [esp + 0x5c]
mov ecx, dword [esp + 0x2c]
mov esi, eax
cmp dword [esp + 0x58], eax
jbe 0x4ca7e8
call fcn.00588c45
mov ecx, dword [esp + 0x2c]
test ecx, ecx
je 0x4ca7f2
cmp ecx, dword [esp + 0x4c]
je 0x4ca7fb
call fcn.00588c45
mov ecx, dword [esp + 0x2c]
cmp edi, esi
je 0x4cad0d
test ecx, ecx
jne 0x4ca877
call fcn.00588c45
xor eax, eax
cmp edi, dword [eax + 0x10]
jb 0x4ca818
call fcn.00588c45
cmp dword [edi], 0x2711
jne 0x4ca88e
mov eax, dword [esp + 0x10]
mov ecx, dword [eax]
mov edx, dword [ecx + 0x2c]
push eax
call edx
cmp eax, 9
je 0x4cace0
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0xc4]
mov eax, dword [eax + 0x138]
test eax, eax
je 0x4ca851
cmp dword [eax + 0x22c], 0
jne 0x4ca87b
mov edx, dword [ebx]
mov eax, dword [edx + 0xc8]
mov ecx, ebx
call eax
test eax, eax
je 0x4ca87b
lea esi, [esp + 0x2c]
mov edi, 1
call fcn.00504c40
mov dword [eax + 0xc], edi
jmp 0x4cac8c
mov eax, dword [ecx]
jmp 0x4ca80e
lea esi, [esp + 0x2c]
xor edi, edi
call fcn.00504c40
mov dword [eax + 0xc], edi
jmp 0x4cac8c
lea esi, [esp + 0x2c]
call fcn.00504c40
cmp dword [eax], 0x2713
jne 0x4ca8c5
mov ecx, dword [ebp + 8]
mov ebx, dword [ebp + 0x10]
mov eax, dword [ecx + 0xc4]
call fcn.0041e9f0
mov edi, eax
neg edi
sbb edi, edi
neg edi
call fcn.00504c40
mov dword [eax + 0xc], edi
jmp 0x4cac8c
lea esi, [esp + 0x2c]
call fcn.00504c40
cmp dword [eax], 0x2714
jne 0x4ca912
mov edx, dword [ebp + 8]
mov eax, dword [edx + 4]
mov ecx, dword [eax]
mov edx, dword [ecx + 0x30]
push eax
call edx
mov ebx, dword [ebp + 0x10]
mov esi, eax
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0xc4]
dec esi
call fcn.0041e9f0
xor ecx, ecx
cmp esi, eax
setne cl
lea esi, [esp + 0x2c]
mov edi, ecx
call fcn.00504c40
mov dword [eax + 0xc], edi
jmp 0x4cac8c
lea esi, [esp + 0x2c]
call fcn.00504c40
cmp dword [eax], 0x2718
jne 0x4ca979
mov ecx, dword [esp + 0x10]
lea esi, [esp + 0x18]
call fcn.00480c40
mov byte [esp + 0x70], 6
mov eax, dword [esp + 0x10]
mov edx, dword [eax]
push eax
mov eax, dword [edx + 0x2c]
call eax
mov byte [esp + 0x70], 5
cmp eax, 9
mov eax, dword [esp + 0x18]
jne 0x4ca964
test eax, eax
je 0x4cace0
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
jmp 0x4cace0
test eax, eax
je 0x4cac8c
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
jmp 0x4cac8c
lea esi, [esp + 0x2c]
call fcn.00504c40
cmp dword [eax], 0x2715
jne 0x4ca9e2
mov eax, dword [ebx + 0xb4]
cmp eax, 0x5f5e0ff
je 0x4cace0
cmp eax, 0x5f5e0fe
je 0x4cace0
cmp eax, 0x5f5e0fd
je 0x4cace0
cmp eax, 0x5f5e0fb
je 0x4cace0
cmp eax, 0x5f5e0f9
je 0x4cace0
cmp eax, 0x5f5e0f8
je 0x4cace0
cmp eax, 0x63d947b
jne 0x4cac8c
jmp 0x4cace0
lea esi, [esp + 0x2c]
call fcn.00504c40
cmp dword [eax], 0x2716
jne 0x4caab1
mov eax, dword [esp + 0x10]
mov ecx, dword [eax]
mov edx, dword [ecx + 0x2c]
mov esi, dword [ebx + 0xb4]
push eax
call edx
cmp eax, 3
je 0x4cace0
cmp eax, 4
je 0x4cace0
cmp eax, 5
je 0x4cace0
cmp eax, 8
je 0x4cace0
cmp eax, 9
je 0x4cace0
cmp esi, 0x5f5e0ff
je 0x4cace0
cmp esi, 0x5f5e0fe
je 0x4cace0
cmp esi, 0x5f5e0fd
je 0x4cace0
cmp esi, 0x5f5e0fb
je 0x4cace0
cmp esi, 0x5f5e0f9
je 0x4cace0
cmp esi, 0x5f5e0f8
je 0x4cace0
cmp esi, 0x63d947b
je 0x4cace0
mov eax, dword [esp + 0x10]
mov ecx, dword [eax]
mov edx, dword [ecx + 0x3c]
push eax
call edx
push ecx
mov ecx, esp
mov dword [esp + 0x20], esp
push ecx
mov ecx, eax
call fcn.00406c20
call fcn.004c8cc0
test eax, eax
jmp 0x4cac8a
lea esi, [esp + 0x2c]
call fcn.00504c40
cmp dword [eax], 0x2712
jne 0x4cab9d
mov edi, dword [ebx + 0xb4]
cmp edi, 0x5f5e0fe
jne 0x4cab0d
lea edx, [esp + 0x20]
push edx
mov ecx, 0x5caac0
call fcn.00406c20
mov ecx, eax
mov byte [esp + 0x70], 7
call fcn.004c84b0
mov dword [esp + 0x1c], eax
call fcn.00504c40
mov ecx, dword [esp + 0x1c]
mov dword [eax + 0xc], ecx
lea ecx, [esp + 0x20]
mov byte [esp + 0x70], 5
call fcn.004066e0
mov eax, dword [esp + 0x10]
mov ecx, dword [eax]
mov edx, dword [ecx + 0x2c]
push eax
call edx
cmp eax, 3
je 0x4cace0
cmp eax, 4
je 0x4cace0
cmp eax, 5
je 0x4cace0
cmp eax, 8
je 0x4cace0
cmp eax, 9
je 0x4cace0
cmp edi, 0x5f5e0fb
je 0x4cace0
cmp edi, 0x5f5e0f9
je 0x4cace0
cmp edi, 0x5f5e0f8
je 0x4cace0
cmp edi, 0x63d947b
je 0x4cace0
mov eax, dword [esp + 0x10]
mov ecx, dword [eax]
mov edx, dword [ecx + 0x3c]
push eax
call edx
push ecx
mov ecx, esp
mov dword [esp + 0x20], esp
push ecx
mov ecx, eax
call fcn.00406c20
call fcn.004c8cc0
test eax, eax
jmp 0x4cac8a
lea esi, [esp + 0x2c]
call fcn.00504c40
cmp dword [eax], 0x2717
jne 0x4cac7b
mov eax, dword [esp + 0x10]
mov edx, dword [eax]
mov esi, dword [ebx + 0xb4]
push eax
mov eax, dword [edx + 0x2c]
call eax
cmp eax, 3
je 0x4cace0
cmp eax, 4
je 0x4cace0
cmp eax, 5
je 0x4cace0
cmp eax, 8
je 0x4cace0
cmp eax, 6
je 0x4cace0
cmp eax, 7
je 0x4cace0
cmp eax, 9
je 0x4cace0
cmp esi, 0x5f5e0ff
je 0x4cace0
cmp esi, 0x5f5e0fe
je 0x4cace0
cmp esi, 0x5f5e0fd
je 0x4cace0
cmp esi, 0x5f5e0fb
je 0x4cace0
cmp esi, 0x5f5e0f9
je 0x4cace0
cmp esi, 0x5f5e0f8
je 0x4cace0
cmp esi, 0x63d947b
je 0x4cace0
mov eax, dword [esp + 0x10]
mov ecx, dword [eax]
mov edx, dword [ecx + 0x3c]
push eax
call edx
push ecx
mov ecx, esp
mov dword [esp + 0x20], esp
push ecx
mov ecx, eax
call fcn.00406c20
call fcn.004c8a40
test eax, eax
jmp 0x4cac8a
lea esi, [esp + 0x2c]
call fcn.00504c40
cmp dword [eax], 0x2719
je 0x4cace0
push 0
push 0
push 1
push 1
lea esi, [esp + 0x3c]
call fcn.00504c40
add eax, 0x18
mov eax, dword [eax]
push eax
call fcn.00504c40
mov edx, dword [eax + 0xc]
push edx
call fcn.00504c40
add eax, 4
mov eax, dword [eax]
push ecx
sub eax, 0x10
mov dword [esp + 0x38], esp
mov esi, esp
call fcn.00406580
add eax, 0x10
mov dword [esi], eax
lea esi, [esp + 0x48]
call fcn.00504c40
mov eax, dword [eax]
mov ecx, dword [esp + 0x30]
push eax
push ecx
call fcn.0042b4a0
mov eax, dword [esp + 0x2c]
test eax, eax
jne 0x4cad09
call fcn.00588c45
xor eax, eax
mov edi, dword [esp + 0x30]
cmp edi, dword [eax + 0x10]
jb 0x4cacfd
call fcn.00588c45
add edi, 0x20
mov dword [esp + 0x30], edi
jmp 0x4ca7cf
mov eax, dword [eax]
jmp 0x4cacef
lea edx, [esp + 0x34]
push edx
call dword [sym.imp.USER32.dll_GetCursorPos]
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x14]
push eax
mov eax, dword [ebp + 0xc]
push ecx
push edx
call fcn.0042b720
add eax, 0xffffd8ef
cmp eax, 7
ja case.default.0x4cad39
jmp dword [eax*4 + 0x4cae24]
mov eax, dword [ebp + 8]
push ebx
push eax
call fcn.004ccb50
jmp case.default.0x4cad39
mov ecx, dword [ebp + 8]
push ebx
call fcn.004cb300
jmp case.default.0x4cad39
mov ecx, dword [ebp + 8]
push ecx
mov esi, ebx
call fcn.004cb490
jmp case.default.0x4cad39
mov edi, dword [ebp + 8]
mov esi, ebx
call fcn.004cb510
jmp case.default.0x4cad39
mov edx, dword [ebp + 8]
push edx
mov esi, ebx
call fcn.004cb5c0
jmp case.default.0x4cad39
mov ecx, dword [ebp + 8]
mov edi, ebx
call fcn.004cb670
jmp case.default.0x4cad39
mov eax, dword [ebp + 8]
push eax
mov esi, ebx
call fcn.004cb840
jmp case.default.0x4cad39
mov ecx, dword [ebp + 8]
mov edi, ebx
call fcn.004cb940
mov byte [esp + 0x70], 2
mov eax, dword [esp + 0x14]
test eax, eax
je 0x4cadb5
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
lea eax, [esp + 0x3c]
call fcn.00427f90
mov byte [esp + 0x70], 0
mov eax, dword [esp + 0x10]
test eax, eax
je 0x4cadd3
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov dword [esp + 0x70], 0xffffffff
mov eax, dword [ebx]
mov ecx, dword [eax + 8]
push ebx
call ecx
mov ecx, dword [esp + 0x68]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
mov dword [esp + 0x70], 0xffffffff
cmp esi, edi
je 0x4cae0c
mov edx, dword [esi]
mov eax, dword [edx + 8]
push esi
call eax
mov ecx, dword [esp + 0x68]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc