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

Disassembly:
push 0xffffffffffffffff
push 0x5d34f2
mov eax, dword fs:[0]
push eax
sub esp, 0x224
mov eax, dword [0x632da0]
xor eax, esp
mov dword [esp + 0x220], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x632da0]
xor eax, esp
push eax
lea eax, [esp + 0x238]
mov dword fs:[0], eax
mov eax, dword [esp + 0x248]
mov ebx, dword [esp + 0x24c]
mov esi, ecx
mov dword [esp + 0x58], eax
mov dword [esp + 0x18], ebx
xor edi, edi
push ebx
lea ecx, [esp + 0x15c]
mov dword [esp + 0x244], 1
mov dword [esp + 0x18], edi
call fcn.00537160
lea ecx, [esp + 0x9c]
mov byte [esp + 0x240], 2
call fcn.005be570
push edi
lea ecx, [esp + 0xa0]
mov byte [esp + 0x244], 3
call fcn.005ba440
lea ecx, [esp + 0x28]
mov dword [esp + 0x9c], edi
xor ebp, ebp
call fcn.004f7190
lea ecx, [esp + 0x44]
mov byte [esp + 0x240], 4
call fcn.004f7190
lea ecx, [esp + 0x88]
mov byte [esp + 0x240], 5
call fcn.004f7190
lea ecx, [esp + 0x74]
mov byte [esp + 0x240], 6
call fcn.004f7190
lea ecx, [esp + 0xa8]
mov byte [esp + 0x240], 7
call fcn.004effc0
lea ecx, [esp + 0xec]
mov byte [esp + 0x240], 8
call fcn.004effc0
lea ecx, [esp + 0x134]
mov byte [esp + 0x240], 9
call fcn.004effc0
lea ecx, [esp + 0x110]
mov byte [esp + 0x240], 0xa
call fcn.004effc0
lea ecx, [esp + 0x158]
mov byte [esp + 0x240], 0xb
call fcn.00536db0
mov ecx, dword [esp + 0x164]
cmp ecx, dword [esp + 0x168]
ja 0x40f58b
lea ebx, [ebx]
lea ecx, [esp + 0x158]
call fcn.00536ff0
sub eax, 1
je 0x40ea66
sub eax, 5
jne 0x40ead5
mov ecx, dword [esp + 0x178]
mov edx, dword [ecx]
mov eax, dword [edx + 0x38]
call eax
cmp eax, 0xa
jl 0x40eae7
inc ebp
cmp ebp, 1
jne 0x40ea11
mov ecx, dword [esp + 0x178]
push ecx
lea ecx, [esp + 0x2c]
call fcn.004f7620
jmp 0x40eade
cmp ebp, 2
jne 0x40ea2c
mov edx, dword [esp + 0x178]
push edx
lea ecx, [esp + 0x48]
call fcn.004f7620
jmp 0x40eade
cmp ebp, 3
jne 0x40ea4a
mov eax, dword [esp + 0x178]
push eax
lea ecx, [esp + 0x8c]
call fcn.004f7620
jmp 0x40eade
cmp ebp, 4
jne 0x40ead8
mov ecx, dword [esp + 0x178]
push ecx
lea ecx, [esp + 0x78]
call fcn.004f7620
jmp 0x40eade
mov ecx, dword [esp + 0x178]
mov edx, dword [ecx]
mov eax, dword [edx + 0x38]
call eax
cmp eax, 0xa
jl 0x40eae7
inc edi
cmp edi, 1
jne 0x40ea90
mov ecx, dword [esp + 0x178]
push ecx
lea ecx, [esp + 0xac]
jmp 0x40ead0
cmp edi, 2
jne 0x40eaa6
mov edx, dword [esp + 0x178]
push edx
lea ecx, [esp + 0xf0]
jmp 0x40ead0
cmp edi, 3
jne 0x40eabc
mov eax, dword [esp + 0x178]
push eax
lea ecx, [esp + 0x138]
jmp 0x40ead0
cmp edi, 4
jne 0x40ead5
mov ecx, dword [esp + 0x178]
push ecx
lea ecx, [esp + 0x114]
call fcn.004f1bb0
cmp ebp, 4
jg 0x40ed23
cmp edi, 4
jg 0x40ed23
lea ecx, [esp + 0x158]
call fcn.00536fe0
mov edx, dword [esp + 0x164]
cmp edx, dword [esp + 0x168]
jbe 0x40e9c0
cmp ebp, 2
jne 0x40eecb
cmp edi, ebp
jne 0x40f344
lea eax, [esp + 0x44]
push eax
lea ecx, [esp + 0x2c]
push ecx
mov ecx, esi
call fcn.004068d0
cmp eax, 1
jne 0x40f58b
lea edx, [esp + 0x44]
push edx
lea eax, [esp + 0x2c]
push eax
mov ecx, esi
call fcn.00404dc0
cmp eax, 1
jne 0x40f58b
lea ecx, [esp + 0xec]
call fcn.004f2e40
sub esp, 8
lea ecx, [esp + 0xb0]
fstp qword [esp]
call fcn.004f2e40
sub esp, 8
mov ecx, esi
fstp qword [esp]
call fcn.00404ed0
cmp eax, 1
jne 0x40f58b
lea ecx, [esp + 0xec]
push ecx
lea edx, [esp + 0xac]
push edx
mov ecx, esi
call fcn.00404e20
cmp eax, 1
jne 0x40f58b
fld qword [0x5eedc8]
sub esp, 8
lea ecx, [esp + 0xb0]
fstp qword [esp]
call fcn.004f2e40
sub esp, 8
mov ecx, esi
fstp qword [esp]
call fcn.00404ed0
cmp eax, 1
lea eax, [esp + 0x28]
jne 0x40ec9f
call fcn.00403a90
fstp qword [esp + 0x3c]
lea eax, [esp + 0x44]
call fcn.00403a90
fcomp qword [esp + 0x3c]
fnstsw ax
test ah, 0x41
lea eax, [esp + 0x28]
je 0x40ebf7
lea eax, [esp + 0x44]
call fcn.00403a90
fstp qword [esp + 0x18]
mov edi, dword [esp + 0xc4]
lea ecx, [esp + 0x28]
add edi, edi
call fcn.004f7230
mov ebp, eax
mov eax, dword [ebx]
mov edx, dword [eax + 0x28]
lea ecx, [esp + 0x6c]
push ecx
mov ecx, ebx
add ebp, edi
call edx
fld qword [esp + 0x18]
sub esp, 8
fstp qword [esp]
push ebp
push edi
lea eax, [esp + 0x7c]
push eax
lea ecx, [esp + 0xe0]
call fcn.004f66a0
cmp edi, dword [esp + 0x250]
mov byte [esp + 0x240], 0xc
jl 0x40ec8b
mov edx, dword [esp + 0x58]
lea ecx, [esp + 0xcc]
push ecx
mov ecx, dword [esi + 0x20]
push edx
call fcn.00493050
sub esp, 0xc
mov edi, eax
lea eax, [esp + 0x26c]
mov ecx, esp
mov dword [esp + 0x24], esp
push eax
call fcn.005b9780
push edi
mov ecx, esi
call fcn.00405d90
test edi, edi
je 0x40ec93
mov dword [esp + 0x14], 1
lea ecx, [esp + 0xcc]
jmp 0x40f57e
call fcn.00403a90
fstp qword [esp + 0x3c]
lea eax, [esp + 0x44]
call fcn.00403a90
fcomp qword [esp + 0x3c]
fnstsw ax
test ah, 0x41
lea eax, [esp + 0x28]
je 0x40ecc4
lea eax, [esp + 0x44]
call fcn.00403a90
fstp qword [esp + 0x3c]
lea ecx, [esp + 0x64]
push ecx
lea ecx, [esp + 0xac]
call fcn.004f4250
lea edx, [esp + 0x5c]
push edx
lea ecx, [esp + 0xf0]
call fcn.004f4250
push eax
lea ecx, [esp + 0x68]
call fcn.005ba770
fstp qword [esp + 0x5c]
lea ecx, [esp + 0x28]
call fcn.004f7230
mov dword [esp + 0x6c], eax
fild dword [esp + 0x6c]
fld qword [esp + 0x5c]
fcom st(1)
fnstsw ax
fstp st(1)
test ah, 5
jp 0x40ee14
fstp st(0)
lea ecx, [esp + 0x110]
mov byte [esp + 0x240], 0xa
call fcn.004f08d0
lea ecx, [esp + 0x134]
mov byte [esp + 0x240], 9
call fcn.004f08d0
lea ecx, [esp + 0xec]
mov byte [esp + 0x240], 8
call fcn.004f08d0
lea ecx, [esp + 0xa8]
mov byte [esp + 0x240], 7
call fcn.004f08d0
lea ecx, [esp + 0x74]
mov byte [esp + 0x240], 6
call fcn.004f7220
lea ecx, [esp + 0x88]
mov byte [esp + 0x240], 5
call fcn.004f7220
lea ecx, [esp + 0x44]
mov byte [esp + 0x240], 4
call fcn.004f7220
lea ecx, [esp + 0x28]
mov byte [esp + 0x240], 3
call fcn.004f7220
lea ecx, [esp + 0x9c]
mov byte [esp + 0x240], 2
call fcn.005be4c0
lea ecx, [esp + 0x158]
mov byte [esp + 0x240], 1
call fcn.00536d20
lea ecx, [esp + 0x254]
mov byte [esp + 0x240], 0
call fcn.005b9130
lea ecx, [esp + 0x260]
mov dword [esp + 0x240], 0xffffffff
call fcn.005b9130
xor eax, eax
jmp 0x40f679
call fcn.005bf3a0
mov ebp, eax
lea eax, [esp + 0x44]
push eax
lea ecx, [esp + 0x2c]
call fcn.004f8450
mov ecx, dword [esp + 0x18]
mov edx, dword [ecx]
mov edx, dword [edx + 0x28]
mov ebx, dword [esp + 0xc4]
mov edi, eax
lea eax, [esp + 0x20]
push eax
call edx
fld qword [esp + 0x3c]
push ebx
push edi
push ebp
sub esp, 8
lea eax, [esp + 0x34]
fstp qword [esp]
push eax
lea ecx, [esp + 0xe4]
call fcn.00536160
cmp edi, dword [esp + 0x250]
mov byte [esp + 0x240], 0xd
jl 0x40eeaa
mov edx, dword [esp + 0x58]
lea ecx, [esp + 0xcc]
push ecx
mov ecx, dword [esi + 0x20]
push edx
call fcn.00492fb0
sub esp, 0xc
mov edi, eax
lea eax, [esp + 0x26c]
mov ecx, esp
mov dword [esp + 0x24], esp
push eax
call fcn.005b9780
push edi
mov ecx, esi
call fcn.00405d90
test edi, edi
je 0x40eeb2
mov dword [esp + 0x14], 1
lea ecx, [esp + 0xcc]
mov byte [esp + 0x240], 0xb
call fcn.00536270
jmp 0x40f58b
cmp ebp, 4
jne 0x40f58b
test edi, edi
jne 0x40f06e
lea ecx, [esp + 0x88]
push ecx
lea edx, [esp + 0x2c]
push edx
mov ecx, esi
call fcn.00404dc0
cmp eax, 1
jne 0x40f58b
lea eax, [esp + 0x74]
push eax
lea ecx, [esp + 0x48]
push ecx
mov ecx, esi
call fcn.00404dc0
cmp eax, 1
jne 0x40f58b
lea edx, [esp + 0x44]
push edx
lea eax, [esp + 0x2c]
push eax
mov ecx, esi
call fcn.00406950
cmp eax, 1
jne 0x40f58b
lea ecx, [esp + 0x44]
call fcn.004f7230
lea ecx, [esp + 0x28]
mov edi, eax
call fcn.004f7230
cmp eax, edi
jl 0x40ef8e
lea ecx, [esp + 0x28]
call fcn.004f7230
lea ecx, [esp + 0x44]
mov ebp, eax
call fcn.004f7230
mov edi, eax
lea eax, [esp + 0x28]
call fcn.00403a90
fstp qword [esp + 0x20]
lea eax, [esp + 0x88]
call fcn.00403a90
fcomp qword [esp + 0x20]
fnstsw ax
test ah, 0x41
jne 0x40ef85
lea eax, [esp + 0x28]
jmp 0x40efcd
lea eax, [esp + 0x88]
jmp 0x40efcd
lea ecx, [esp + 0x44]
call fcn.004f7230
lea ecx, [esp + 0x28]
mov ebp, eax
call fcn.004f7230
mov edi, eax
lea eax, [esp + 0x44]
call fcn.00403a90
fstp qword [esp + 0x20]
lea eax, [esp + 0x74]
call fcn.00403a90
fcomp qword [esp + 0x20]
fnstsw ax
test ah, 0x41
lea eax, [esp + 0x44]
je 0x40efcd
lea eax, [esp + 0x74]
call fcn.00403a90
fstp qword [esp + 0x18]
mov edx, dword [ebx]
mov edx, dword [edx + 0x28]
lea eax, [esp + 0x5c]
push eax
mov ecx, ebx
call edx
fld qword [esp + 0x18]
push 0
push edi
push ebp
sub esp, 8
lea eax, [esp + 0x70]
fstp qword [esp]
push eax
lea ecx, [esp + 0xe4]
call fcn.00536160
cmp edi, dword [esp + 0x250]
mov byte [esp + 0x240], 0xe
jl 0x40f04d
mov edx, dword [esp + 0x58]
lea ecx, [esp + 0xcc]
push ecx
mov ecx, dword [esi + 0x20]
push edx
call fcn.00492fb0
sub esp, 0xc
mov edi, eax
lea eax, [esp + 0x26c]
mov ecx, esp
mov dword [esp + 0x24], esp
push eax
call fcn.005b9780
push edi
mov ecx, esi
call fcn.00405d90
test edi, edi
je 0x40f055
mov dword [esp + 0x14], 1
lea ecx, [esp + 0xcc]
mov byte [esp + 0x240], 0xb
call fcn.00536270
jmp 0x40f58b
cmp edi, 4
jne 0x40f58b
lea ecx, [esp + 0x88]
push ecx
lea edx, [esp + 0x2c]
push edx
mov ecx, esi
call fcn.00404dc0
cmp eax, 1
jne 0x40f58b
lea eax, [esp + 0x74]
push eax
lea ecx, [esp + 0x48]
push ecx
mov ecx, esi
call fcn.00404dc0
cmp eax, 1
jne 0x40f58b
lea edx, [esp + 0x44]
push edx
lea eax, [esp + 0x2c]
push eax
mov ecx, esi
call fcn.00406950
cmp eax, 1
jne 0x40f58b
lea ecx, [esp + 0x44]
call fcn.004f7230
lea ecx, [esp + 0x28]
mov edi, eax
call fcn.004f7230
cmp eax, edi
mov edi, dword [esp + 0xc4]
jl 0x40f139
lea ecx, [esp + 0x28]
call fcn.004f7230
lea ebp, [eax + edi*2]
mov edi, dword [esp + 0xc4]
lea ecx, [esp + 0x44]
call fcn.004f7230
lea edi, [eax + edi*2]
lea eax, [esp + 0x28]
call fcn.00403a90
fstp qword [esp + 0x20]
lea eax, [esp + 0x88]
call fcn.00403a90
fcomp qword [esp + 0x20]
fnstsw ax
test ah, 0x41
jne 0x40f130
lea eax, [esp + 0x28]
jmp 0x40f181
lea eax, [esp + 0x88]
jmp 0x40f181
lea ecx, [esp + 0x44]
call fcn.004f7230
lea ebp, [eax + edi*2]
mov edi, dword [esp + 0xc4]
lea ecx, [esp + 0x28]
call fcn.004f7230
lea edi, [eax + edi*2]
lea eax, [esp + 0x44]
call fcn.00403a90
fstp qword [esp + 0x20]
lea eax, [esp + 0x74]
call fcn.00403a90
fcomp qword [esp + 0x20]
fnstsw ax
test ah, 0x41
lea eax, [esp + 0x44]
je 0x40f181
lea eax, [esp + 0x74]
call fcn.00403a90
fstp qword [esp + 0x18]
lea ecx, [esp + 0x64]
push ecx
lea ecx, [esp + 0xf0]
call fcn.004f0940
fld qword [eax]
lea edx, [esp + 0x3c]
fstp qword [esp + 0x20]
push edx
lea ecx, [esp + 0xac]
call fcn.004f2db0
fld qword [eax]
fld qword [esp + 0x20]
sub esp, 0x10
fstp qword [esp + 8]
mov ecx, esi
fstp qword [esp]
call fcn.00404ed0
test eax, eax
je 0x40ed23
lea eax, [esp + 0x64]
push eax
lea ecx, [esp + 0x138]
call fcn.004f0940
fld qword [eax]
lea ecx, [esp + 0x3c]
fstp qword [esp + 0x20]
push ecx
lea ecx, [esp + 0xf0]
call fcn.004f2db0
fld qword [eax]
fld qword [esp + 0x20]
sub esp, 0x10
fstp qword [esp + 8]
mov ecx, esi
fstp qword [esp]
call fcn.00404ed0
test eax, eax
je 0x40ed23
lea edx, [esp + 0x64]
push edx
lea ecx, [esp + 0x114]
call fcn.004f0940
fld qword [eax]
lea eax, [esp + 0x3c]
fstp qword [esp + 0x20]
push eax
lea ecx, [esp + 0x138]
call fcn.004f2db0
fld qword [eax]
fld qword [esp + 0x20]
sub esp, 0x10
fstp qword [esp + 8]
mov ecx, esi
fstp qword [esp]
call fcn.00404ed0
test eax, eax
je 0x40ed23
lea ecx, [esp + 0x64]
push ecx
lea ecx, [esp + 0xac]
call fcn.004f0940
fld qword [eax]
lea edx, [esp + 0x3c]
fstp qword [esp + 0x20]
push edx
lea ecx, [esp + 0x114]
call fcn.004f2db0
fld qword [eax]
fld qword [esp + 0x20]
sub esp, 0x10
fstp qword [esp + 8]
mov ecx, esi
fstp qword [esp]
call fcn.00404ed0
test eax, eax
je 0x40ed23
mov eax, dword [ebx]
mov edx, dword [eax + 0x28]
lea ecx, [esp + 0x5c]
push ecx
mov ecx, ebx
call edx
fld qword [esp + 0x18]
mov eax, dword [esp + 0xc4]
push eax
push edi
push ebp
sub esp, 8
lea ecx, [esp + 0x70]
fstp qword [esp]
push ecx
lea ecx, [esp + 0xe4]
call fcn.00536160
cmp edi, dword [esp + 0x250]
mov byte [esp + 0x240], 0xf
jl 0x40f323
mov eax, dword [esp + 0x58]
mov ecx, dword [esi + 0x20]
lea edx, [esp + 0xcc]
push edx
push eax
call fcn.00492fb0
sub esp, 0xc
lea edx, [esp + 0x26c]
mov ecx, esp
mov dword [esp + 0x24], esp
push edx
mov edi, eax
call fcn.005b9780
push edi
mov ecx, esi
call fcn.00405d90
test edi, edi
je 0x40f32b
mov dword [esp + 0x14], 1
lea ecx, [esp + 0xcc]
mov byte [esp + 0x240], 0xb
call fcn.00536270
jmp 0x40f58b
cmp edi, 4
jne 0x40f58b
lea eax, [esp + 0x44]
push eax
lea ecx, [esp + 0x2c]
push ecx
mov ecx, esi
call fcn.004068d0
cmp eax, 1
jne 0x40f58b
lea edx, [esp + 0x44]
push edx
lea eax, [esp + 0x2c]
push eax
mov ecx, esi
call fcn.00404dc0
cmp eax, 1
jne 0x40f58b
lea ecx, [esp + 0xec]
call fcn.004f2e40
sub esp, 8
lea ecx, [esp + 0xb0]
fstp qword [esp]
call fcn.004f2e40
sub esp, 8
mov ecx, esi
fstp qword [esp]
call fcn.00404ed0
cmp eax, 1
jne 0x40f58b
lea ecx, [esp + 0xec]
push ecx
lea edx, [esp + 0xac]
push edx
mov ecx, esi
call fcn.00404e20
cmp eax, 1
jne 0x40f58b
lea ecx, [esp + 0x134]
call fcn.004f2e40
sub esp, 8
lea ecx, [esp + 0xb0]
fstp qword [esp]
call fcn.004f2e40
sub esp, 8
mov ecx, esi
fstp qword [esp]
call fcn.00404ed0
cmp eax, 1
jne 0x40f58b
lea eax, [esp + 0x134]
push eax
lea ecx, [esp + 0xac]
push ecx
mov ecx, esi
call fcn.00404e20
cmp eax, 1
jne 0x40f58b
lea ecx, [esp + 0x110]
call fcn.004f2e40
sub esp, 8
lea ecx, [esp + 0xb0]
fstp qword [esp]
call fcn.004f2e40
sub esp, 8
mov ecx, esi
fstp qword [esp]
call fcn.00404ed0
cmp eax, 1
jne 0x40f58b
lea edx, [esp + 0x110]
push edx
lea eax, [esp + 0xac]
push eax
mov ecx, esi
call fcn.00404e20
cmp eax, 1
jne 0x40f58b
fld qword [0x5eede0]
sub esp, 8
lea ecx, [esp + 0xb0]
fstp qword [esp]
call fcn.004f2e40
sub esp, 8
mov ecx, esi
fstp qword [esp]
call fcn.00404ed0
cmp eax, 1
jne 0x40f58b
lea eax, [esp + 0x28]
call fcn.00403a90
fstp qword [esp + 0x20]
lea eax, [esp + 0x44]
call fcn.00403a90
fcomp qword [esp + 0x20]
fnstsw ax
test ah, 0x41
lea eax, [esp + 0x28]
je 0x40f4d4
lea eax, [esp + 0x44]
call fcn.00403a90
fstp qword [esp + 0x3c]
lea ecx, [esp + 0x44]
push ecx
lea ecx, [esp + 0x2c]
call fcn.004f8450
lea ecx, [esp + 0x28]
mov edi, eax
call fcn.004f7230
mov edx, dword [ebx]
mov edx, dword [edx + 0x28]
mov ebp, eax
lea eax, [esp + 0x6c]
push eax
mov ecx, ebx
add ebp, edi
call edx
fld qword [esp + 0x3c]
sub esp, 8
fstp qword [esp]
push ebp
push edi
lea eax, [esp + 0x7c]
push eax
lea ecx, [esp + 0x228]
call fcn.004f66a0
cmp edi, dword [esp + 0x250]
mov byte [esp + 0x240], 0x10
jl 0x40f56f
mov edx, dword [esp + 0x58]
lea ecx, [esp + 0x214]
push ecx
mov ecx, dword [esi + 0x20]
push edx
call fcn.00493050
sub esp, 0xc
mov edi, eax
lea eax, [esp + 0x26c]
mov ecx, esp
mov dword [esp + 0x24], esp
push eax
call fcn.005b9780
push edi
mov ecx, esi
call fcn.00405d90
test edi, edi
je 0x40f577
mov dword [esp + 0x14], 1
lea ecx, [esp + 0x214]
mov byte [esp + 0x240], 0xb
call fcn.004f66d0
lea ecx, [esp + 0x110]
mov byte [esp + 0x240], 0xa
call fcn.004f08d0
lea ecx, [esp + 0x134]
mov byte [esp + 0x240], 9
call fcn.004f08d0
lea ecx, [esp + 0xec]
mov byte [esp + 0x240], 8
call fcn.004f08d0
lea ecx, [esp + 0xa8]
mov byte [esp + 0x240], 7
call fcn.004f08d0
lea ecx, [esp + 0x74]
mov byte [esp + 0x240], 6
call fcn.004f7220
lea ecx, [esp + 0x88]
mov byte [esp + 0x240], 5
call fcn.004f7220
lea ecx, [esp + 0x44]
mov byte [esp + 0x240], 4
call fcn.004f7220
lea ecx, [esp + 0x28]
mov byte [esp + 0x240], 3
call fcn.004f7220
lea ecx, [esp + 0x9c]
mov byte [esp + 0x240], 2
call fcn.005be4c0
lea ecx, [esp + 0x158]
mov byte [esp + 0x240], 1
call fcn.00536d20
lea ecx, [esp + 0x254]
mov byte [esp + 0x240], 0
call fcn.005b9130
lea ecx, [esp + 0x260]
mov dword [esp + 0x240], 0xffffffff
call fcn.005b9130
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x238]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x220]
xor ecx, esp
call fcn.005bf276
add esp, 0x230
ret 0x24