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

Disassembly:
push 0xffffffffffffffff
push 0x4814fe
mov eax, dword fs:[0]
push eax
sub esp, 0xa4
mov eax, dword [0x49b1b0]
xor eax, esp
mov dword [esp + 0xa0], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x49b1b0]
xor eax, esp
push eax
lea eax, [esp + 0xb8]
mov dword fs:[0], eax
mov ebp, dword [esp + 0xc8]
mov dword [esp + 0x14], ebp
xor ebx, ebx
lea edi, [esp + 0xcc]
lea esi, [esp + 0x58]
mov dword [esp + 0xc0], ebx
call fcn.00415f30
mov byte [esp + 0xc0], 1
mov eax, dword [esp + 0x5c]
mov esi, 0x10
cmp dword [esp + 0x70], esi
jae 0x40260a
lea eax, [esp + 0x5c]
push eax
lea edi, [ebp + 4]
push edi
call fcn.004125e0
test al, al
jne 0x40265c
cmp dword [esp + 0x70], esi
jb 0x40262b
mov eax, dword [esp + 0x5c]
push eax
call fcn.00469d48
add esp, 4
cmp dword [esp + 0xe4], 8
mov dword [esp + 0x70], 0xf
mov dword [esp + 0x6c], ebx
mov byte [esp + 0x5c], bl
jb 0x402655
mov ecx, dword [esp + 0xd0]
push ecx
call fcn.00469d48
add esp, 4
xor al, al
jmp 0x403122
mov esi, str.SOFTWARE
mov eax, edi
call fcn.00411ed0
mov edi, eax
cmp edi, ebx
je 0x402bdf
mov edx, dword [edi]
mov eax, dword [edx + 0x18]
mov ecx, edi
call eax
test eax, eax
jne 0x402696
mov esi, str.SOFTWARE
mov eax, edi
call fcn.00411f20
mov edi, eax
cmp edi, ebx
jne 0x402672
jmp 0x402bdf
mov edx, dword [edi]
mov eax, dword [edx + 0x18]
mov ecx, edi
call eax
mov ebp, eax
cmp ebp, ebx
je 0x402bdf
mov ecx, dword [esp + 0x14]
mov esi, str.NAME
mov byte [ecx + 0xd8], 1
call fcn.00411ed0
mov edi, eax
cmp edi, ebx
je 0x40274f
mov edx, dword [edi]
mov eax, dword [edx + 0x18]
mov ecx, edi
call eax
test eax, eax
jne 0x4026e9
mov esi, str.NAME
mov eax, edi
call fcn.00411f20
mov edi, eax
cmp edi, ebx
jne 0x4026c8
jmp 0x40274f
mov edx, dword [edi]
mov eax, dword [edx + 0x18]
mov ecx, edi
call eax
cmp eax, ebx
je 0x40274f
mov ecx, dword [eax + 0x18]
cmp ecx, ebx
je 0x402710
mov edx, dword [ecx]
mov eax, dword [edx + 0x30]
call eax
cmp eax, ebx
je 0x402710
mov eax, dword [eax + 0x20]
add eax, 8
jmp 0x402712
xor eax, eax
lea ecx, [esp + 0x1c]
call fcn.00415ef0
push 0xffffffffffffffff
push ebx
push eax
mov eax, dword [esp + 0x20]
add eax, 0x4c
mov byte [esp + 0xcc], 2
call fcn.00401c40
mov byte [esp + 0xc0], 1
cmp dword [esp + 0x34], 8
jb 0x40274f
mov ecx, dword [esp + 0x20]
push ecx
call fcn.00469d48
add esp, 4
mov esi, str.INTRO
mov eax, ebp
call fcn.00411ed0
mov edi, eax
cmp edi, ebx
je 0x4027ec
mov edx, dword [edi]
mov eax, dword [edx + 0x18]
mov ecx, edi
call eax
test eax, eax
jne 0x402786
mov esi, str.INTRO
mov eax, edi
call fcn.00411f20
mov edi, eax
cmp edi, ebx
jne 0x402765
jmp 0x4027ec
mov edx, dword [edi]
mov eax, dword [edx + 0x18]
mov ecx, edi
call eax
cmp eax, ebx
je 0x4027ec
mov ecx, dword [eax + 0x18]
cmp ecx, ebx
je 0x4027ad
mov edx, dword [ecx]
mov eax, dword [edx + 0x30]
call eax
cmp eax, ebx
je 0x4027ad
mov eax, dword [eax + 0x20]
add eax, 8
jmp 0x4027af
xor eax, eax
lea ecx, [esp + 0x1c]
call fcn.00415ef0
push 0xffffffffffffffff
push ebx
push eax
mov eax, dword [esp + 0x20]
add eax, 0x68
mov byte [esp + 0xcc], 3
call fcn.00401c40
mov byte [esp + 0xc0], 1
cmp dword [esp + 0x34], 8
jb 0x4027ec
mov ecx, dword [esp + 0x20]
push ecx
call fcn.00469d48
add esp, 4
mov esi, 0x485238
mov eax, ebp
call fcn.00411ed0
mov edi, eax
cmp edi, ebx
je 0x40288e
mov edx, dword [edi]
mov eax, dword [edx + 0x18]
mov ecx, edi
call eax
test eax, eax
jne 0x402826
mov esi, 0x485238
mov eax, edi
call fcn.00411f20
mov edi, eax
cmp edi, ebx
jne 0x402802
jmp 0x40288e
mov edx, dword [edi]
mov eax, dword [edx + 0x18]
mov ecx, edi
call eax
cmp eax, ebx
je 0x40288e
mov ecx, dword [eax + 0x18]
cmp ecx, ebx
je 0x40284d
mov edx, dword [ecx]
mov eax, dword [edx + 0x30]
call eax
cmp eax, ebx
je 0x40284d
mov eax, dword [eax + 0x20]
add eax, 8
jmp 0x40284f
xor eax, eax
lea ecx, [esp + 0x1c]
call fcn.00415ef0
push 0xffffffffffffffff
push ebx
push eax
mov eax, dword [esp + 0x20]
add eax, 0x84
mov byte [esp + 0xcc], 4
call fcn.00401c40
mov byte [esp + 0xc0], 1
cmp dword [esp + 0x34], 8
jb 0x40288e
mov ecx, dword [esp + 0x20]
push ecx
call fcn.00469d48
add esp, 4
mov esi, str.LOGO
mov eax, ebp
call fcn.00411ed0
mov edi, eax
cmp edi, ebx
je 0x402a1d
mov edx, dword [edi]
mov eax, dword [edx + 0x18]
mov ecx, edi
call eax
test eax, eax
jne 0x4028c8
mov esi, str.LOGO
mov eax, edi
call fcn.00411f20
mov edi, eax
cmp edi, ebx
jne 0x4028a4
jmp 0x402a1d
mov edx, dword [edi]
mov eax, dword [edx + 0x18]
mov ecx, edi
call eax
cmp eax, ebx
je 0x402a1d
mov ecx, dword [eax + 0x18]
cmp ecx, ebx
je 0x4028f3
mov edx, dword [ecx]
mov eax, dword [edx + 0x30]
call eax
cmp eax, ebx
je 0x4028f3
mov eax, dword [eax + 0x20]
add eax, 8
jmp 0x4028f5
xor eax, eax
lea ecx, [esp + 0x1c]
call fcn.00415ef0
cmp dword [esp + 0x30], ebx
je 0x402a01
mov edi, 7
mov byte [esp + 0x38], bl
mov dword [esp + 0x54], edi
mov dword [esp + 0x50], ebx
mov word [esp + 0x40], bx
mov esi, dword [esp + 0x14]
add esi, 0xa0
push esi
lea ecx, [esp + 0x3c]
push ecx
mov byte [esp + 0xc8], 6
call fcn.004157c0
mov byte [esp + 0x38], bl
mov dword [esp + 0x8c], edi
mov dword [esp + 0x88], ebx
mov word [esp + 0x78], bx
mov dword [esp + 0xa8], edi
mov dword [esp + 0xa4], ebx
mov word [esp + 0x94], bx
mov dword [esp + 0xac], ebx
mov byte [esp + 0xb0], 1
push 0xffffffffffffffff
push ebx
lea edx, [esp + 0x24]
push edx
lea eax, [esp + 0x80]
mov byte [esp + 0xcc], 7
call fcn.00401c40
push 0xffffffffffffffff
push ebx
push esi
lea eax, [esp + 0x9c]
call fcn.00401c40
push 0x54
call fcn.00469d66
add esp, 4
cmp eax, ebx
je 0x4029bc
mov esi, eax
call fcn.00404c10
mov edi, eax
jmp 0x4029be
xor edi, edi
mov esi, dword [esp + 0x14]
lea eax, [esp + 0x18]
push eax
add esi, 0x198
mov dword [esp + 0x1c], edi
call fcn.00403200
mov ecx, dword [esp + 0x14]
push ecx
lea ecx, [esp + 0x78]
mov esi, edi
call fcn.00404d00
lea esi, [esp + 0x74]
call fcn.00401b30
lea edx, [esp + 0x38]
push edx
mov byte [esp + 0xc4], 5
call fcn.00415680
mov byte [esp + 0xc0], 1
cmp dword [esp + 0x34], 8
jb 0x402a1d
mov eax, dword [esp + 0x20]
push eax
call fcn.00469d48
add esp, 4
mov esi, 0x485244
mov eax, ebp
call fcn.00411ed0
mov edi, eax
cmp edi, ebx
je 0x402abf
mov edx, dword [edi]
mov eax, dword [edx + 0x18]
mov ecx, edi
call eax
test eax, eax
jne 0x402a57
mov esi, 0x485244
mov eax, edi
call fcn.00411f20
mov edi, eax
cmp edi, ebx
jne 0x402a33
jmp 0x402abf
mov edx, dword [edi]
mov eax, dword [edx + 0x18]
mov ecx, edi
call eax
cmp eax, ebx
je 0x402abf
mov ecx, dword [eax + 0x18]
cmp ecx, ebx
je 0x402a7e
mov edx, dword [ecx]
mov eax, dword [edx + 0x30]
call eax
cmp eax, ebx
je 0x402a7e
mov eax, dword [eax + 0x20]
add eax, 8
jmp 0x402a80
xor eax, eax
lea ecx, [esp + 0x1c]
call fcn.00415ef0
push 0xffffffffffffffff
push ebx
push eax
mov eax, dword [esp + 0x20]
add eax, 0xbc
mov byte [esp + 0xcc], 8
call fcn.00401c40
mov byte [esp + 0xc0], 1
cmp dword [esp + 0x34], 8
jb 0x402abf
mov ecx, dword [esp + 0x20]
push ecx
call fcn.00469d48
add esp, 4
mov esi, str.MINVERSION
mov eax, ebp
call fcn.00411ed0
mov edi, eax
cmp edi, ebx
je 0x402bdf
mov edx, dword [edi]
mov eax, dword [edx + 0x18]
mov ecx, edi
call eax
test eax, eax
jne 0x402af9
mov esi, str.MINVERSION
mov eax, edi
call fcn.00411f20
mov edi, eax
cmp edi, ebx
jne 0x402ad5
jmp 0x402bdf
mov edx, dword [edi]
mov eax, dword [edx + 0x18]
mov ecx, edi
call eax
cmp eax, ebx
je 0x402bdf
mov ecx, dword [eax + 0x18]
cmp ecx, ebx
je 0x402b24
mov edx, dword [ecx]
mov eax, dword [edx + 0x30]
call eax
cmp eax, ebx
je 0x402b24
mov eax, dword [eax + 0x20]
add eax, 8
jmp 0x402b26
xor eax, eax
lea ecx, [esp + 0x1c]
call fcn.00415ef0
mov ebp, dword [esp + 0x14]
mov byte [esp + 0xc0], 9
mov ecx, dword [esp + 0x30]
xor edi, edi
xor esi, esi
add ebp, 0xdc
cmp edi, ecx
jbe 0x402b56
call fcn.00469efa
mov ecx, dword [esp + 0x30]
cmp dword [esp + 0x34], 8
mov eax, dword [esp + 0x20]
jae 0x402b65
lea eax, [esp + 0x20]
cmp word [eax + edi*2], 0x2e
je 0x402b70
cmp edi, ecx
jne 0x402bbc
mov ecx, edi
sub ecx, esi
push ecx
mov ecx, esi
lea esi, [esp + 0x3c]
lea edx, [esp + 0x20]
call fcn.00401c10
cmp dword [eax + 0x18], 8
jb 0x402b8f
mov eax, dword [eax + 4]
jmp 0x402b92
add eax, 4
push eax
call fcn.00469b30
mov dword [ebp], eax
add esp, 4
add ebp, 4
cmp dword [esp + 0x50], 8
jb 0x402bb5
mov edx, dword [esp + 0x3c]
push edx
call fcn.00469d48
add esp, 4
mov ecx, dword [esp + 0x30]
lea esi, [edi + 1]
add edi, 1
cmp edi, ecx
jbe 0x402b56
mov byte [esp + 0xc0], 1
cmp dword [esp + 0x34], 8
jb 0x402bdf
mov eax, dword [esp + 0x20]
push eax
call fcn.00469d48
add esp, 4
mov ebp, dword [esp + 0x14]
mov esi, str.GAME
lea eax, [ebp + 4]
call fcn.00411ed0
mov edi, eax
cmp edi, ebx
je 0x4030e2
lea ebx, [ebx]
mov edx, dword [edi]
mov eax, dword [edx + 0x18]
mov ecx, edi
call eax
test eax, eax
jne 0x402c24
mov esi, str.GAME
mov eax, edi
call fcn.00411f20
mov edi, eax
cmp edi, ebx
jne 0x402c00
jmp 0x4030e2
mov edx, dword [edi]
mov eax, dword [edx + 0x18]
mov ecx, edi
call eax
cmp eax, ebx
mov dword [esp + 0x14], eax
je 0x4030e2
mov esi, str.NAME
call fcn.00411ed0
mov edi, eax
cmp edi, ebx
je 0x402cd9
lea ecx, [ecx]
mov edx, dword [edi]
mov eax, dword [edx + 0x18]
mov ecx, edi
call eax
test eax, eax
jne 0x402c74
mov esi, str.NAME
mov eax, edi
call fcn.00411f20
mov edi, eax
cmp edi, ebx
jne 0x402c50
jmp 0x402cd9
mov edx, dword [edi]
mov eax, dword [edx + 0x18]
mov ecx, edi
call eax
cmp eax, ebx
je 0x402cd9
mov ecx, dword [eax + 0x18]
cmp ecx, ebx
je 0x402c9b
mov edx, dword [ecx]
mov eax, dword [edx + 0x30]
call eax
cmp eax, ebx
je 0x402c9b
mov eax, dword [eax + 0x20]
add eax, 8
jmp 0x402c9d
xor eax, eax
lea ecx, [esp + 0x38]
call fcn.00415ef0
push 0xffffffffffffffff
push ebx
push eax
lea eax, [ebp + 0xec]
mov byte [esp + 0xcc], 0xa
call fcn.00401c40
mov byte [esp + 0xc0], 1
cmp dword [esp + 0x50], 8
jb 0x402cd9
mov ecx, dword [esp + 0x3c]
push ecx
call fcn.00469d48
add esp, 4
mov eax, dword [esp + 0x14]
mov esi, str.INTRO
call fcn.00411ed0
mov edi, eax
cmp edi, ebx
je 0x402d7a
mov edx, dword [edi]
mov eax, dword [edx + 0x18]
mov ecx, edi
call eax
test eax, eax
jne 0x402d15
mov esi, str.INTRO
mov eax, edi
call fcn.00411f20
mov edi, eax
cmp edi, ebx
jne 0x402cf1
jmp 0x402d7a
mov edx, dword [edi]
mov eax, dword [edx + 0x18]
mov ecx, edi
call eax
cmp eax, ebx
je 0x402d7a
mov ecx, dword [eax + 0x18]
cmp ecx, ebx
je 0x402d3c
mov edx, dword [ecx]
mov eax, dword [edx + 0x30]
call eax
cmp eax, ebx
je 0x402d3c
mov eax, dword [eax + 0x20]
add eax, 8
jmp 0x402d3e
xor eax, eax
lea ecx, [esp + 0x38]
call fcn.00415ef0
push 0xffffffffffffffff
push ebx
push eax
lea eax, [ebp + 0x108]
mov byte [esp + 0xcc], 0xb
call fcn.00401c40
mov byte [esp + 0xc0], 1
cmp dword [esp + 0x50], 8
jb 0x402d7a
mov ecx, dword [esp + 0x3c]
push ecx
call fcn.00469d48
add esp, 4
mov eax, dword [esp + 0x14]
mov esi, 0x48525c
call fcn.00411ed0
mov edi, eax
cmp edi, ebx
je 0x402eff
mov edx, dword [edi]
mov eax, dword [edx + 0x18]
mov ecx, edi
call eax
test eax, eax
jne 0x402db6
mov esi, 0x48525c
mov eax, edi
call fcn.00411f20
mov edi, eax
cmp edi, ebx
jne 0x402d92
jmp 0x402eff
mov edx, dword [edi]
mov eax, dword [edx + 0x18]
mov ecx, edi
call eax
cmp eax, ebx
je 0x402eff
mov ecx, dword [eax + 0x18]
cmp ecx, ebx
je 0x402de1
mov edx, dword [ecx]
mov eax, dword [edx + 0x30]
call eax
cmp eax, ebx
je 0x402de1
mov eax, dword [eax + 0x20]
add eax, 8
jmp 0x402de3
xor eax, eax
lea ecx, [esp + 0x1c]
call fcn.00415ef0
cmp dword [esp + 0x30], ebx
je 0x402ee3
mov edi, 7
mov byte [esp + 0x38], bl
mov dword [esp + 0x54], edi
mov dword [esp + 0x50], ebx
mov word [esp + 0x40], bx
lea esi, [ebp + 0x124]
push esi
lea ecx, [esp + 0x3c]
push ecx
mov byte [esp + 0xc8], 0xd
call fcn.004157c0
mov byte [esp + 0x38], bl
mov dword [esp + 0x8c], edi
mov dword [esp + 0x88], ebx
mov word [esp + 0x78], bx
mov dword [esp + 0xa8], edi
mov dword [esp + 0xa4], ebx
mov word [esp + 0x94], bx
mov dword [esp + 0xac], ebx
mov byte [esp + 0xb0], 1
push 0xffffffffffffffff
push ebx
lea edx, [esp + 0x24]
push edx
lea eax, [esp + 0x80]
mov byte [esp + 0xcc], 0xe
call fcn.00401c40
push 0xffffffffffffffff
push ebx
push esi
lea eax, [esp + 0x9c]
call fcn.00401c40
push 0x54
call fcn.00469d66
add esp, 4
cmp eax, ebx
je 0x402ea6
mov esi, eax
call fcn.00404c10
mov edi, eax
jmp 0x402ea8
xor edi, edi
lea eax, [esp + 0x18]
push eax
lea esi, [ebp + 0x198]
mov dword [esp + 0x1c], edi
call fcn.00403200
push ebp
lea ecx, [esp + 0x78]
mov esi, edi
call fcn.00404d00
lea esi, [esp + 0x74]
call fcn.00401b30
lea ecx, [esp + 0x38]
push ecx
mov byte [esp + 0xc4], 0xc
call fcn.00415680
mov byte [esp + 0xc0], 1
cmp dword [esp + 0x34], 8
jb 0x402eff
mov edx, dword [esp + 0x20]
push edx
call fcn.00469d48
add esp, 4
mov eax, dword [esp + 0x14]
mov esi, 0x485260
call fcn.00411ed0
mov edi, eax
cmp edi, ebx
je 0x402fa4
mov eax, dword [edi]
mov edx, dword [eax + 0x18]
mov ecx, edi
call edx
test eax, eax
jne 0x402f3b
mov esi, 0x485260
mov eax, edi
call fcn.00411f20
mov edi, eax
cmp edi, ebx
jne 0x402f17
jmp 0x402fa4
mov eax, dword [edi]
mov edx, dword [eax + 0x18]
mov ecx, edi
call edx
cmp eax, ebx
je 0x402fa4
mov ecx, dword [eax + 0x18]
cmp ecx, ebx
je 0x402f66
mov eax, dword [ecx]
mov edx, dword [eax + 0x30]
call edx
cmp eax, ebx
je 0x402f66
mov eax, dword [eax + 0x20]
add eax, 8
jmp 0x402f68
xor eax, eax
lea ecx, [esp + 0x38]
call fcn.00415ef0
push 0xffffffffffffffff
push ebx
push eax
lea eax, [ebp + 0x140]
mov byte [esp + 0xcc], 0xf
call fcn.00401c40
mov byte [esp + 0xc0], 1
cmp dword [esp + 0x50], 8
jb 0x402fa4
mov eax, dword [esp + 0x3c]
push eax
call fcn.00469d48
add esp, 4
mov eax, dword [esp + 0x14]
mov esi, str.Target
call fcn.00411ed0
mov edi, eax
cmp edi, ebx
je 0x403049
lea esp, [esp]
mov edx, dword [edi]
mov eax, dword [edx + 0x18]
mov ecx, edi
call eax
test eax, eax
jne 0x402fe4
mov esi, str.Target
mov eax, edi
call fcn.00411f20
mov edi, eax
cmp edi, ebx
jne 0x402fc0
jmp 0x403049
mov edx, dword [edi]
mov eax, dword [edx + 0x18]
mov ecx, edi
call eax
cmp eax, ebx
je 0x403049
mov ecx, dword [eax + 0x18]
cmp ecx, ebx
je 0x40300b
mov edx, dword [ecx]
mov eax, dword [edx + 0x30]
call eax
cmp eax, ebx
je 0x40300b
mov eax, dword [eax + 0x20]
add eax, 8
jmp 0x40300d
xor eax, eax
lea ecx, [esp + 0x38]
call fcn.00415ef0
push 0xffffffffffffffff
push ebx
push eax
lea eax, [ebp + 0x15c]
mov byte [esp + 0xcc], 0x10
call fcn.00401c40
mov byte [esp + 0xc0], 1
cmp dword [esp + 0x50], 8
jb 0x403049
mov ecx, dword [esp + 0x3c]
push ecx
call fcn.00469d48
add esp, 4
mov eax, dword [esp + 0x14]
mov esi, str.Param
call fcn.00411ed0
mov edi, eax
cmp edi, ebx
je 0x4030e2
mov edx, dword [edi]
mov eax, dword [edx + 0x18]
mov ecx, edi
call eax
test eax, eax
jne 0x403085
mov esi, str.Param
mov eax, edi
call fcn.00411f20
mov edi, eax
cmp edi, ebx
jne 0x403061
jmp 0x4030e2
mov edx, dword [edi]
mov eax, dword [edx + 0x18]
mov ecx, edi
call eax
cmp eax, ebx
je 0x4030e2
mov ecx, dword [eax + 0x18]
cmp ecx, ebx
je 0x4030ac
mov edx, dword [ecx]
mov eax, dword [edx + 0x30]
call eax
cmp eax, ebx
je 0x4030ac
mov eax, dword [eax + 0x20]
add eax, 8
jmp 0x4030ae
xor eax, eax
lea ecx, [esp + 0x38]
call fcn.00415ef0
push 0xffffffffffffffff
push ebx
push eax
lea eax, [ebp + 0x178]
mov byte [esp + 0xcc], 0x11
call fcn.00401c40
cmp dword [esp + 0x50], 8
jb 0x4030e2
mov ecx, dword [esp + 0x3c]
push ecx
call fcn.00469d48
add esp, 4
cmp dword [esp + 0x70], 0x10
jb 0x4030f6
mov edx, dword [esp + 0x5c]
push edx
call fcn.00469d48
add esp, 4
cmp dword [esp + 0xe4], 8
mov dword [esp + 0x70], 0xf
mov dword [esp + 0x6c], ebx
mov byte [esp + 0x5c], bl
jb 0x403120
mov eax, dword [esp + 0xd0]
push eax
call fcn.00469d48
add esp, 4
mov al, 1
mov ecx, dword [esp + 0xb8]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0xa0]
xor ecx, esp
call fcn.00469ab5
add esp, 0xb0
ret 0x20