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

Disassembly:
sub esp, 0x690
mov edx, dword [esp + 0x694]
push esi
mov eax, dword [edx + 4]
lea eax, [eax + eax*2]
shl eax, 5
add eax, 0x5b2b50
mov dword [esp + 0x40], eax
mov eax, dword [0x5b2138]
test eax, eax
jl 0x45a03a
mov ecx, dword [0x575838]
test cl, 0x1c
jne 0x45a03a
mov eax, dword [0x5beb68]
cmp dword [eax], 0
jne 0x45a03a
mov esi, dword [eax + 4]
test esi, esi
jne 0x45a03a
cmp dword [edx + 8], 5
je 0x45a03a
mov eax, dword [0x588f28]
cmp eax, 0xb
je 0x45a03a
test ch, 0x42
jne 0x459806
cmp eax, 5
je 0x459806
cmp eax, 6
je 0x459806
cmp eax, 8
je 0x459806
cmp eax, 0xa
je 0x4597eb
cmp eax, 9
je 0x4597eb
mov al, byte [0x5955dc]
test al, al
jne 0x4597fd
mov eax, dword [0x5ac0a8]
jmp 0x4597f9
mov ecx, dword [0x5c463c]
xor eax, eax
mov al, byte [ecx + 0xae2]
test eax, eax
je 0x459806
push 0xffffffffffffffff
push 0x40010101
jmp 0x45980d
push 0xffffffffffffffff
push 0x40010100
call fcn.00460990
add esp, 8
lea ecx, [esp + 0xc0]
call fcn.004699d0
mov edx, dword [0x5bcc94]
lea eax, [esp + 0xc0]
push 0
push eax
lea ecx, [esp + 0x1b8]
mov dword [esp + 0xcc], 0x41a00000
mov dword [esp + 0xd0], 0x41f00000
mov dword [esp + 0xdc], edx
call fcn.0046b750
mov eax, dword [0x588f28]
cmp eax, 9
je 0x4598b2
cmp eax, 0xa
je 0x4598b2
cmp eax, 5
mov edx, 2
jne 0x459899
mov eax, dword [0x595580]
lea ecx, [eax + eax*2]
lea ecx, [ecx + ecx*8]
add ecx, ecx
sub ecx, eax
cmp dword [ecx*8 + 0x5a17c4], edx
je 0x45989e
mov eax, dword [0x5955f0]
mov byte [esp + 5], 0
cmp eax, edx
jmp 0x4598c2
cmp eax, 6
jne 0x45988b
mov eax, dword [0x5955f0]
mov byte [esp + 5], 0
cmp eax, 1
setge byte [esp + 4]
jmp 0x4598c7
mov eax, dword [0x595614]
cmp eax, 1
setge byte [esp + 5]
cmp eax, 2
sete byte [esp + 4]
push ebx
push ebp
mov ebp, dword [0x57ede0]
xor ebx, ebx
test ebp, ebp
push edi
jle 0x4598ef
mov ecx, ebp
xor eax, eax
mov edx, ecx
lea edi, [esp + 0xe8]
shr ecx, 2
rep stosd dword es:[edi], eax
mov ecx, edx
and ecx, 3
rep stosb byte es:[edi], al
mov esi, dword [0x5acda0]
xor eax, eax
test esi, esi
jle 0x459929
lea edx, [esp + 0x16c]
mov ebx, esi
sub edx, 0x5acd50
mov ecx, dword [eax*4 + 0x5acd50]
inc eax
cmp eax, esi
mov ecx, dword [ecx]
mov dword [edx + eax*4 + 0x5acd4c], ecx
mov ecx, dword [ecx]
mov byte [esp + ecx + 0xe8], 1
jl 0x45990a
xor eax, eax
test ebp, ebp
jle 0x459952
lea ecx, [esp + ebx*4 + 0x16c]
mov dl, byte [esp + eax + 0xe8]
test dl, dl
jne 0x45994d
mov edx, dword [eax*4 + 0x57ed90]
mov dword [ecx], edx
add ecx, 4
inc eax
cmp eax, ebp
jl 0x459936
test ebp, ebp
mov byte [esp + 0x13], 1
mov dword [esp + 0x30], 0
jle 0x45a01f
mov eax, dword [esp + 0x30]
mov edx, dword [esp + 0x4c]
mov esi, dword [esp + eax*4 + 0x16c]
mov ecx, dword [esi]
lea edi, [edx + ecx*4 + 0x10]
mov ecx, dword [esp + 0x6a4]
mov dword [esp + 0x50], edi
mov eax, dword [ecx + 4]
mov edx, dword [esi + eax*4 + 0x40c]
test edx, edx
jl case.0x4599fe.3
mov eax, dword [esi + eax*4 + 0x41c]
cmp eax, 0x5a
jg case.0x4599fe.3
mov edx, dword [esi + 0x138]
test edx, edx
jne case.0x4599fe.3
cmp esi, dword [ecx + 0x6c]
je case.0x4599fe.3
mov ecx, dword [edi]
test ecx, ecx
jge 0x4599e3
cmp eax, 0x3c
jge 0x45a00e
mov al, byte [esp + 0x13]
test al, al
je 0x45a00e
mov dword [edi], 0
jmp 0x4599ef
cmp ecx, 0x12c
jge 0x45a00e
mov ecx, dword [esi + 8]
mov eax, dword [ecx + 0x2c]
cmp eax, 3
ja case.0x4599fe.3
jmp dword [eax*4 + 0x45a044]
mov eax, dword [0x588f28]
mov bl, byte [esp + 0x11]
cmp eax, 9
jne 0x459a3f
mov ecx, dword [ecx + 0x34]
mov eax, dword [ecx]
call dword [eax + 8]
test al, al
jne 0x459a3f
mov byte [esp + 0x12], 1
jmp 0x459a44
mov ecx, dword [0x5c463c]
mov edx, dword [ecx]
call dword [edx + 0x3c]
mov ecx, dword [esi]
mov bl, byte [esp + 0x11]
cmp ecx, eax
jl 0x459a3f
mov bl, byte [esp + 0x10]
mov byte [esp + 0x12], 0
test bl, bl
je case.0x4599fe.3
fld dword [esi + 0xd0]
fmul dword [0x55857c]
fld dword [esi + 0xd4]
fmul dword [0x55857c]
fld dword [esi + 0xd8]
fmul dword [0x55857c]
mov edi, dword [esp + 0x6a4]
sub esp, 0xc
fstp dword [esp + 0x11c]
fld dword [esi + 0xc4]
fld dword [esi + 0xc8]
fld dword [esi + 0xcc]
fstp dword [esp + 0x110]
fld dword [esi + 0xb8]
fsub st(2)
fstp dword [esp + 0x84]
fld dword [esi + 0xbc]
fsub st(1)
fstp st(2)
fstp st(0)
fld dword [esi + 0xc0]
fsub dword [esp + 0x110]
fstp dword [esp + 0x8c]
fld dword [esp + 0x84]
fadd st(3)
fstp dword [esp + 0x4c]
fadd st(1)
fstp dword [esp + 0x50]
fstp st(0)
fstp st(0)
fld dword [esp + 0x8c]
fadd dword [esp + 0x11c]
fstp dword [esp + 0x54]
fld dword [esp + 0x4c]
fsub dword [edi + 0x18]
fstp dword [esp + 0x24]
fld dword [esp + 0x50]
fsub dword [edi + 0x1c]
fstp dword [esp + 0x28]
fld dword [esp + 0x54]
fsub dword [edi + 0x20]
fstp dword [esp + 0x2c]
fld dword [esp + 0x28]
fmul dword [0x552458]
fld dword [esp + 0x2c]
fsubr st(1)
fstp dword [esp + 0x30]
fld dword [esp + 0x2c]
fmul dword [0x552458]
fld dword [esp + 0x24]
fmul dword [0x552458]
fsubp st(1)
fstp dword [esp + 0x34]
fld dword [esp + 0x24]
fsub st(1)
fstp dword [esp + 0x38]
fstp st(0)
fld dword [esp + 0x34]
fmul dword [esp + 0x24]
fld dword [esp + 0x28]
fmul dword [esp + 0x30]
fsubp st(1)
fstp dword [esp + 8]
fld dword [esp + 0x2c]
fmul dword [esp + 0x30]
fld dword [esp + 0x38]
fmul dword [esp + 0x24]
lea ecx, [esp + 0x9c]
fsubp st(1)
fstp dword [esp + 4]
fld dword [esp + 0x38]
fmul dword [esp + 0x28]
fld dword [esp + 0x34]
fmul dword [esp + 0x2c]
fsubp st(1)
fstp dword [esp]
call fcn.0040e9c0
mov eax, dword [0x575838]
test ah, 0x42
jne 0x459c23
mov eax, dword [0x588f28]
cmp eax, 5
je 0x459c23
cmp eax, 6
je 0x459c23
cmp eax, 8
je 0x459c23
cmp eax, 0xb
jne 0x459bc9
mov eax, dword [0x5ac0fc]
and eax, 0xff
jmp 0x459bf1
cmp eax, 0xa
je 0x459be3
cmp eax, 9
je 0x459be3
mov al, byte [0x5955dc]
test al, al
jne 0x459bf5
mov eax, dword [0x5ac0a8]
jmp 0x459bf1
mov ecx, dword [0x5c463c]
xor eax, eax
mov al, byte [ecx + 0xae2]
test eax, eax
je 0x459c23
fld dword [esp + 0x24]
fchs
fld dword [esp + 0x28]
fchs
fld dword [esp + 0x2c]
fchs
fstp dword [esp + 0xf0]
mov edx, dword [esp + 0xf0]
fxch st(1)
fstp dword [esp + 0x24]
fstp dword [esp + 0x28]
mov dword [esp + 0x2c], edx
fld dword [esp + 0x18]
fmul dword [esp + 0x18]
fld dword [esp + 0x20]
fmul dword [esp + 0x20]
push ecx
faddp st(1)
fld dword [esp + 0x20]
fmul dword [esp + 0x20]
faddp st(1)
fstp dword [esp]
call fcn.0051f140
fdiv dword [edi + 0x40]
lea eax, [esp + 0x1c]
lea ecx, [esp + 0x1c]
push eax
push ecx
fdiv dword [edi + 0x50]
fstp dword [esp + 0x20]
call fcn.00403a00
fstp dword [esp + 8]
add esp, 8
call fcn.0051f140
fcom qword [0x552460]
add esp, 4
fnstsw ax
test ah, 5
jp 0x459c87
mov dword [esp + 0x34], 0
jmp 0x459c93
fld dword [0x552454]
fdiv st(1)
fstp dword [esp + 0x34]
mov edx, dword [esp + 0x34]
lea eax, [esp + 0x18]
push edx
lea ecx, [esp + 0xb8]
push eax
push ecx
fstp st(0)
call fcn.004039d0
fld dword [esp + 0xc0]
fmul dword [esp + 0x20]
lea edx, [esp + 0x9c]
lea eax, [esp + 0x9c]
push edx
push eax
fstp dword [esp + 0xd4]
fld dword [esp + 0xcc]
fmul dword [esp + 0x28]
fstp dword [esp + 0xd8]
fld dword [esp + 0xd0]
fmul dword [esp + 0x28]
fstp dword [esp + 0xdc]
call fcn.00403a00
fstp dword [esp + 0x10]
add esp, 0x10
call fcn.0051f140
fcom qword [0x552460]
add esp, 4
fnstsw ax
test ah, 5
jp 0x459d1d
mov dword [esp + 0x3c], 0
jmp 0x459d29
fld dword [0x552454]
fdiv st(1)
fstp dword [esp + 0x3c]
mov ecx, dword [esp + 0x3c]
lea edx, [esp + 0x90]
push ecx
lea eax, [esp + 0xa0]
push edx
push eax
fstp st(0)
call fcn.004039d0
fld dword [esp + 0xa8]
fmul dword [esp + 0x20]
lea ecx, [esp + 0x30]
lea edx, [esp + 0x30]
push ecx
push edx
fstp dword [esp + 0xbc]
fld dword [esp + 0xb4]
fmul dword [esp + 0x28]
fstp dword [esp + 0xc0]
fld dword [esp + 0xb8]
fmul dword [esp + 0x28]
fstp dword [esp + 0xc4]
call fcn.00403a00
fstp dword [esp + 0x10]
add esp, 0x10
call fcn.0051f140
fcom qword [0x552460]
add esp, 4
fnstsw ax
test ah, 5
jp 0x459db0
mov dword [esp + 0x38], 0
jmp 0x459dbc
fld dword [0x552454]
fdiv st(1)
fstp dword [esp + 0x38]
mov eax, dword [esp + 0x38]
lea ecx, [esp + 0x24]
push eax
lea edx, [esp + 0x88]
push ecx
push edx
fstp st(0)
call fcn.004039d0
fld dword [esp + 0x90]
fmul dword [esp + 0x20]
add esp, 0xc
lea eax, [esp + 0x6c]
lea ecx, [esp + 0x114]
fstp dword [esp + 0x6c]
fld dword [esp + 0x88]
fmul dword [esp + 0x14]
push eax
fstp dword [esp + 0x74]
fld dword [esp + 0x90]
fmul dword [esp + 0x18]
fstp dword [esp + 0x78]
call fcn.004149e0
lea ecx, [esp + 0xa8]
push ecx
lea ecx, [esp + 0x124]
call fcn.004149e0
lea edx, [esp + 0xc0]
lea ecx, [esp + 0x12c]
push edx
call fcn.004149e0
lea eax, [esp + 0x40]
lea ecx, [esp + 0x138]
push eax
call fcn.004149e0
lea ecx, [esp + 0x114]
push 0x3f800000
push ecx
call fcn.004606e0
add esp, 8
lea edx, [esp + 0x114]
push fcn.00403a30
push 4
push 0xc
push edx
call fcn.00401030
mov al, byte [esp + 0x12]
lea ecx, [esp + 0x1bc]
test al, al
je 0x459e9d
mov eax, dword [esi]
inc eax
push eax
push 0x55ae2c
push ecx
call fcn.0046b8d0
add esp, 0xc
jmp 0x459ead
mov edx, dword [esi + 8]
mov eax, dword [edx + 0x28]
push eax
push ecx
call fcn.0046b8d0
add esp, 8
mov eax, dword [esp + 0x604]
push 0
mov ebp, eax
mov ecx, dword [eax]
call fcn.0045a060
mov ecx, 0xa
mov esi, eax
lea edi, [esp + 0x144]
lea edx, [esp + 0x200]
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [esp + 0x604]
push edx
call fcn.00469af0
mov eax, dword [esp + 0x15c]
mov ecx, dword [esp + 0x160]
add ecx, eax
mov eax, dword [esp + 0x168]
add ecx, eax
lea edx, [esp + 0x64]
mov dword [esp + 0x14], ecx
push edx
fild dword [esp + 0x18]
mov edx, dword [esp + 0x1c0]
lea eax, [esp + 0x58]
push eax
lea ecx, [esp + 0x1c4]
fmul dword [ebp + 8]
mov dword [esp + 0x6c], 0
mov dword [esp + 0x70], 0
fmul dword [0x55c0d0]
fchs
fxch st(1)
fmul dword [0x559d10]
fstp dword [esp + 0x5c]
fstp dword [esp + 0x60]
call dword [edx + 8]
lea eax, [esp + 0x1c8]
lea ecx, [esp + 0x5c]
push eax
mov dword [esp + 0x618], 8
call fcn.00444d40
mov ecx, dword [esp + 0x5c]
mov edx, dword [esp + 0x60]
mov dword [esp + 0x608], ecx
mov ecx, dword [esp + 0x50]
mov dword [esp + 0x60c], edx
mov eax, dword [ecx]
cmp eax, 0x10
jge 0x459f93
shl al, 4
mov byte [esp + 0xe3], al
jmp 0x459fb4
cmp eax, 0x11c
jle 0x459fac
mov cl, byte [ecx]
mov dl, 0xc0
shl cl, 4
sub dl, cl
mov byte [esp + 0xe3], dl
jmp 0x459fb4
mov byte [esp + 0xe3], 0xff
mov dword [0x5bccd0], 1
mov dword [0x5bcccc], 0
mov esi, 3
mov ecx, 0x5bcccc
call fcn.0046a1f0
lea eax, [esp + 0x1bc]
mov ecx, 0x5bcccc
push eax
call fcn.0046a270
mov ecx, 0x5bcccc
call fcn.0046a250
cmp dword [0x5bcccc], esi
jne 0x459fcd
mov byte [esp + 0x13], 0
jmp 0x45a008
mov dword [edi], 0xffffffff
mov ebp, dword [0x57ede0]
mov eax, dword [esp + 0x30]
inc eax
cmp eax, ebp
mov dword [esp + 0x30], eax
jl 0x459967
lea ecx, [esp + 0x1bc]
call fcn.0046b810
lea ecx, [esp + 0xcc]
call fcn.00469a00
pop edi
pop ebp
pop ebx
pop esi
add esp, 0x690
ret