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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x5c104b
mov eax, dword fs:[0]
push eax
sub esp, 0x68
push ebx
push esi
push edi
mov eax, dword [0x615370]
xor eax, esp
push eax
lea eax, [esp + 0x78]
mov dword fs:[0], eax
mov esi, dword [ebp + 0x10]
xor edi, edi
mov dword [esp + 0x2c], esi
cmp esi, edi
je 0x498151
mov eax, dword [esi]
mov ecx, dword [eax + 4]
push esi
call ecx
mov dword [esp + 0x80], edi
cmp esi, edi
je 0x49895c
mov eax, dword [ebp + 8]
cmp dword [eax + 0xc0], edi
je 0x49895c
mov eax, dword [eax + 4]
cmp eax, edi
je 0x49895c
mov dword [esp + 0x14], edi
mov byte [esp + 0x80], 2
mov dword [esp + 0x18], edi
mov ecx, dword [esi + 0x1c8]
mov edx, dword [eax]
lea ebx, [esp + 0x18]
push ebx
push ecx
push eax
mov eax, dword [edx + 0x3c]
call eax
test eax, eax
je 0x498904
mov eax, dword [esp + 0x18]
mov ecx, dword [eax]
mov edx, dword [ecx + 0x2c]
push eax
call edx
cmp eax, 9
jne 0x498904
mov ecx, dword [esp + 0x18]
lea esi, [esp + 0x20]
call fcn.00480c40
mov byte [esp + 0x80], 3
mov eax, dword [esp + 0x20]
cmp eax, edi
je 0x498895
mov ecx, dword [ebp + 0x10]
mov edx, dword [ecx + 0xb4]
mov edi, dword [eax]
lea esi, [esp + 0x14]
mov ebx, eax
mov dword [esp + 0x1c], edx
add edi, 0x24
call fcn.0048ef40
mov ecx, dword [edi]
push eax
mov eax, dword [esp + 0x20]
push eax
push ebx
call ecx
test eax, eax
je 0x498891
lea edx, [esp + 0x4c]
push edx
call fcn.00427c80
lea eax, [esp + 0x1c]
push eax
mov ecx, str.XNBItemMenu
mov byte [esp + 0x84], 4
call fcn.00406c20
lea ecx, [esp + 0x4c]
push ecx
lea edx, [esp + 0x20]
push edx
mov byte [esp + 0x88], 5
call fcn.00407d70
call fcn.00428be0
test eax, eax
lea ecx, [esp + 0x1c]
sete bl
mov byte [esp + 0x80], 4
call fcn.004066e0
test bl, bl
je 0x49828d
lea eax, [esp + 0x4c]
call fcn.00427f90
mov byte [esp + 0x80], 2
mov eax, dword [esp + 0x20]
test eax, eax
je 0x4988a9
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
jmp 0x4988a9
push 0x1d8
call fcn.005851c0
add esp, 4
mov dword [esp + 0x28], eax
mov byte [esp + 0x80], 6
test eax, eax
je 0x4982b9
mov ecx, eax
call fcn.0042ac00
mov edi, eax
mov dword [esp + 0x1c], edi
jmp 0x4982c5
mov dword [esp + 0x1c], 0
mov edi, dword [esp + 0x1c]
mov byte [esp + 0x80], 4
mov dword [esp + 0x30], edi
test edi, edi
je 0x4982dd
mov eax, dword [edi]
mov ecx, dword [eax + 4]
push edi
call ecx
mov byte [esp + 0x80], 7
mov esi, dword [esp + 0x4c]
call fcn.0042b0d0
mov esi, dword [esp + 0x54]
call fcn.0042b0a0
lea esi, [esp + 0x34]
lea edi, [esp + 0x5c]
call fcn.0054b1b0
lea esi, [esp + 0x44]
call fcn.00429230
mov esi, eax
lea edi, [esp + 0x34]
call fcn.00429fa0
mov ebx, dword [ebp + 0x10]
test al, al
je 0x49876d
lea esi, [esp + 0x34]
call fcn.00504c40
cmp dword [eax], 0x2711
jne 0x49837b
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0xc0]
cmp dword [eax + 0x174], 0
jne 0x498368
mov edx, dword [ebx]
mov eax, dword [edx + 0xc8]
mov ecx, ebx
call eax
test eax, eax
je 0x498368
mov edi, 1
call fcn.00504c40
mov dword [eax + 0xc], edi
jmp 0x4986f0
lea esi, [esp + 0x34]
xor edi, edi
call fcn.00504c40
mov dword [eax + 0xc], edi
jmp 0x4986f0
lea esi, [esp + 0x34]
call fcn.00504c40
cmp dword [eax], 0x2713
jne 0x4983b2
mov ecx, dword [ebp + 8]
mov ebx, dword [ebp + 0x10]
mov eax, dword [ecx + 0xc0]
call fcn.00497010
mov edi, eax
neg edi
sbb edi, edi
neg edi
call fcn.00504c40
mov dword [eax + 0xc], edi
jmp 0x4986f0
lea esi, [esp + 0x34]
call fcn.00504c40
cmp dword [eax], 0x2714
jne 0x49840b
mov edi, dword [ebp + 8]
mov eax, dword [edi + 0xc0]
call fcn.00496ff0
mov ebx, dword [ebp + 0x10]
xor edx, edx
cmp dword [edi + 0xbc], edx
mov esi, eax
setne dl
mov eax, edi
mov eax, dword [eax + 0xc0]
inc edx
sub esi, edx
call fcn.00497010
xor ecx, ecx
cmp esi, eax
setne cl
lea esi, [esp + 0x34]
mov edi, ecx
call fcn.00504c40
mov dword [eax + 0xc], edi
jmp 0x4986f0
lea esi, [esp + 0x34]
call fcn.00504c40
cmp dword [eax], 0x2715
jne 0x498474
mov eax, dword [ebx + 0xb4]
cmp eax, 0x5f5e0ff
je 0x498744
cmp eax, 0x5f5e0fe
je 0x498744
cmp eax, 0x5f5e0fd
je 0x498744
cmp eax, 0x5f5e0fb
je 0x498744
cmp eax, 0x5f5e0f9
je 0x498744
cmp eax, 0x5f5e0f8
je 0x498744
cmp eax, 0x63d947b
jne 0x4986f0
jmp 0x498744
lea esi, [esp + 0x34]
call fcn.00504c40
cmp dword [eax], 0x2716
jne 0x498538
mov eax, dword [esp + 0x14]
mov edx, dword [eax]
mov esi, dword [ebx + 0xb4]
push eax
mov eax, dword [edx + 0x2c]
call eax
cmp eax, 3
je 0x498744
cmp eax, 4
je 0x498744
cmp eax, 5
je 0x498744
cmp eax, 8
je 0x498744
cmp esi, 0x5f5e0ff
je 0x498744
cmp esi, 0x5f5e0fe
je 0x498744
cmp esi, 0x5f5e0fd
je 0x498744
cmp esi, 0x5f5e0fb
je 0x498744
cmp esi, 0x5f5e0f9
je 0x498744
cmp esi, 0x5f5e0f8
je 0x498744
cmp esi, 0x63d947b
je 0x498744
mov eax, dword [esp + 0x14]
mov ecx, dword [eax]
mov edx, dword [ecx + 0x3c]
push eax
call edx
push ecx
mov ecx, esp
mov dword [esp + 0x28], esp
push ecx
mov ecx, eax
call fcn.00406c20
call fcn.004c8cc0
jmp 0x4986ec
lea esi, [esp + 0x34]
call fcn.00504c40
cmp dword [eax], 0x2712
jne 0x49861f
mov edi, dword [ebx + 0xb4]
cmp edi, 0x5f5e0fe
jne 0x49859a
lea edx, [esp + 0x28]
push edx
mov ecx, 0x5caac0
call fcn.00406c20
mov ecx, eax
mov byte [esp + 0x80], 8
call fcn.004c84b0
mov dword [esp + 0x24], eax
call fcn.00504c40
mov ecx, dword [esp + 0x24]
mov dword [eax + 0xc], ecx
lea ecx, [esp + 0x28]
mov byte [esp + 0x80], 7
call fcn.004066e0
mov eax, dword [esp + 0x14]
mov ecx, dword [eax]
mov edx, dword [ecx + 0x2c]
push eax
call edx
cmp eax, 3
je 0x498744
cmp eax, 4
je 0x498744
cmp eax, 5
je 0x498744
cmp eax, 8
je 0x498744
cmp edi, 0x5f5e0fb
je 0x498744
cmp edi, 0x5f5e0f9
je 0x498744
cmp edi, 0x5f5e0f8
je 0x498744
cmp edi, 0x63d947b
je 0x498744
mov eax, dword [esp + 0x14]
mov ecx, dword [eax]
mov edx, dword [ecx + 0x3c]
push eax
call edx
push ecx
mov ecx, esp
mov dword [esp + 0x28], esp
push ecx
mov ecx, eax
call fcn.00406c20
call fcn.004c8cc0
jmp 0x4986ec
lea esi, [esp + 0x34]
call fcn.00504c40
cmp dword [eax], 0x2717
jne 0x4986f0
mov eax, dword [esp + 0x14]
mov edx, dword [eax]
mov esi, dword [ebx + 0xb4]
push eax
mov eax, dword [edx + 0x2c]
call eax
cmp eax, 3
je 0x498744
cmp eax, 4
je 0x498744
cmp eax, 5
je 0x498744
cmp eax, 8
je 0x498744
cmp eax, 6
je 0x498744
cmp eax, 7
je 0x498744
cmp esi, 0x5f5e0ff
je 0x498744
cmp esi, 0x5f5e0fe
je 0x498744
cmp esi, 0x5f5e0fd
je 0x498744
cmp esi, 0x5f5e0fb
je 0x498744
cmp esi, 0x5f5e0f9
je 0x498744
cmp esi, 0x5f5e0f8
je 0x498744
cmp esi, 0x63d947b
je 0x498744
mov eax, dword [esp + 0x14]
mov ecx, dword [eax]
mov edx, dword [ecx + 0x3c]
push eax
call edx
push ecx
mov ecx, esp
mov dword [esp + 0x28], esp
push ecx
mov ecx, eax
call fcn.00406c20
call fcn.004c8a40
test eax, eax
je 0x498744
push 0
push 0
push 1
push 1
lea esi, [esp + 0x44]
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 + 0x40], esp
mov esi, esp
call fcn.00406580
add eax, 0x10
mov dword [esi], eax
lea esi, [esp + 0x50]
call fcn.00504c40
mov eax, dword [eax]
mov ecx, dword [esp + 0x38]
push eax
push ecx
call fcn.0042b4a0
lea esi, [esp + 0x34]
call fcn.00445dd0
lea esi, [esp + 0x44]
lea edi, [esp + 0x5c]
call fcn.00429230
mov esi, eax
lea edi, [esp + 0x34]
call fcn.00429fa0
test al, al
jne 0x498323
mov esi, dword [ebp + 8]
lea edx, [esp + 0x3c]
push edx
call dword [sym.imp.USER32.dll_GetCursorPos]
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x3c]
mov edx, dword [esp + 0x1c]
push eax
mov eax, dword [ebp + 0xc]
push ecx
push edx
call fcn.0042b720
add eax, 0xffffd8ef
cmp eax, 8
ja case.default.0x49879c
jmp dword [eax*4 + 0x498988]
push esi
mov esi, ebx
call fcn.004997b0
jmp case.default.0x49879c
push ebx
mov ecx, esi
call fcn.00498ce0
jmp case.default.0x49879c
mov edi, dword [ebp + 8]
mov esi, ebx
call fcn.00498f70
jmp case.default.0x49879c
mov ecx, dword [ebp + 8]
mov edi, ebx
call fcn.00499020
jmp case.default.0x49879c
push esi
mov ecx, ebx
call fcn.00499120
jmp case.default.0x49879c
push ebx
mov ecx, esi
call fcn.004991d0
jmp case.default.0x49879c
push ebx
push esi
call fcn.004994d0
jmp case.default.0x49879c
mov edi, dword [ebp + 8]
mov esi, ebx
call fcn.004996d0
jmp case.default.0x49879c
push esi
mov ecx, ebx
call fcn.00499740
mov byte [esp + 0x80], 4
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x498818
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
lea eax, [esp + 0x4c]
call fcn.00427f90
mov byte [esp + 0x80], 2
mov eax, dword [esp + 0x20]
test eax, eax
je 0x498839
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov byte [esp + 0x80], 1
mov eax, dword [esp + 0x14]
test eax, eax
je 0x498851
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov byte [esp + 0x80], 0
mov eax, dword [esp + 0x18]
test eax, eax
je 0x498869
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov dword [esp + 0x80], 0xffffffff
mov eax, dword [ebx]
mov ecx, dword [eax + 8]
push ebx
call ecx
mov ecx, dword [esp + 0x78]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
mov eax, dword [esp + 0x20]
mov byte [esp + 0x80], 2
test eax, eax
je 0x4988a9
mov edx, dword [eax]
push eax
mov eax, dword [edx + 8]
call eax
mov byte [esp + 0x80], 1
mov eax, dword [esp + 0x14]
test eax, eax
je 0x4988c1
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov byte [esp + 0x80], 0
mov eax, dword [esp + 0x18]
test eax, eax
je 0x4988d9
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov eax, dword [ebp + 0x10]
mov dword [esp + 0x80], 0xffffffff
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov ecx, dword [esp + 0x78]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
mov byte [esp + 0x80], 1
mov eax, dword [esp + 0x14]
cmp eax, edi
je 0x49891c
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov byte [esp + 0x80], 0
mov eax, dword [esp + 0x18]
cmp eax, edi
je 0x498934
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov dword [esp + 0x80], 0xffffffff
mov eax, dword [esi]
mov ecx, dword [eax + 8]
push esi
call ecx
mov ecx, dword [esp + 0x78]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
mov dword [esp + 0x80], 0xffffffff
cmp esi, edi
je 0x498973
mov edx, dword [esi]
mov eax, dword [edx + 8]
push esi
call eax
mov ecx, dword [esp + 0x78]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc