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

Disassembly:
sub esp, 0x4b4
push esi
push edi
mov eax, dword [0x6d6a38]
mov edx, dword [0x6d6a20]
mov ecx, dword [0x6d6a3c]
mov dword [esp + 0x20], eax
mov eax, dword [0x6d6a08]
mov dword [esp + 0x28], edx
mov edx, dword [0x6d6a14]
mov dword [esp + 0x2c], eax
mov dword [esp + 0x30], eax
mov eax, dword [0x6d6a10]
mov dword [esp + 0x3c], edx
mov edx, dword [0x6d6a1c]
mov dword [esp + 0x34], eax
mov eax, dword [0x6d69fc]
mov dword [esp + 0x54], edx
mov edx, dword [0x6d6a04]
mov dword [esp + 0x24], ecx
mov ecx, dword [0x6d69f8]
mov dword [esp + 0x40], eax
mov eax, dword [0x6d6a40]
mov dword [esp + 0x58], edx
mov edx, dword [0x6d6a18]
mov esi, dword [esp + 0x4c0]
mov dword [esp + 0x38], ecx
mov ecx, dword [0x6d6a44]
mov dword [esp + 0x4c], eax
mov dword [esp + 0x5c], edx
mov edx, dword [0x6d6a00]
mov dword [esp + 0x68], eax
mov eax, dword [0x6d6a48]
xor edi, edi
cmp esi, edi
mov dword [esp + 0x50], ecx
mov dword [esp + 0x60], edx
mov edx, dword [0x6d6a50]
mov dword [esp + 0x6c], ecx
mov ecx, dword [0x6d6a4c]
mov dword [esp + 0x70], eax
mov eax, dword [0x6d6a54]
mov dword [esp + 0x44], edi
mov dword [esp + 0x48], edi
mov dword [esp + 0x64], edi
mov dword [esp + 0x74], ecx
mov dword [esp + 0x78], edx
mov dword [esp + 0x7c], eax
jge 0x459785
pop edi
xor eax, eax
pop esi
add esp, 0x4b4
ret
cmp dword [0x6d6880], 2
jne 0x45979b
mov eax, 0x80100000
or dword [esp + 0x20], eax
or dword [esp + 0x24], eax
mov ecx, dword [0x591304]
call fcn.00458a90
cmp esi, edi
mov ecx, dword [0x591304]
mov edx, dword [ecx + 8]
mov dword [esp + 0x10], edx
je 0x4597d4
jmp 0x4597c0
mov ecx, dword [0x591304]
call fcn.00458b80
sub esi, 1
mov dword [esp + 0x10], eax
jne 0x4597c0
mov ecx, dword [esp + 0x4c4]
call fcn.00426510
mov eax, 0x590308
mov dword [eax], edi
add eax, 0x7c
cmp eax, 0x591288
jl 0x4597e5
mov eax, dword [0x590270]
neg eax
sbb eax, eax
and eax, 0x59026c
mov dword [esp + 0x18], eax
mov eax, dword [0x6d6a28]
imul eax, dword [0x6d6a2c]
add eax, dword [0x6d69f4]
push ebx
test eax, eax
mov dword [esp + 0xc], eax
push ebp
fild dword [esp + 0x10]
jge 0x459829
fadd dword [0x49e4a0]
cmp dword [esp + 0x18], edi
fstp dword [esp + 0x14]
je 0x459d1f
mov edi, dword [esp + 0x18]
jmp 0x459840
lea ecx, [esp + 0x88]
push ecx
mov ecx, edi
call fcn.00458840
test al, al
je 0x459d1f
xor esi, esi
mov eax, 0x5902e8
mov edi, edi
cmp dword [eax + 8], 0
je 0x45987a
mov edx, dword [eax]
cmp edx, dword [edi + 0x434]
jne 0x45987a
cmp dword [eax + 0x20], 0
je 0x4598f9
cmp dword [eax + 0x84], 0
je 0x459897
mov ecx, dword [eax + 0x7c]
cmp ecx, dword [edi + 0x434]
jne 0x459897
cmp dword [eax + 0x9c], 0
je 0x4598ec
cmp dword [eax + 0x100], 0
je 0x4598b7
mov edx, dword [eax + 0xf8]
cmp edx, dword [edi + 0x434]
jne 0x4598b7
cmp dword [eax + 0x118], 0
je 0x4598f1
cmp dword [eax + 0x17c], 0
je 0x4598d7
mov ecx, dword [eax + 0x174]
cmp ecx, dword [edi + 0x434]
jne 0x4598d7
cmp dword [eax + 0x194], 0
je 0x4598f6
add eax, 0x1f0
add esi, 4
cmp eax, 0x591268
jl 0x459860
jmp 0x4598f9
add esi, 1
jmp 0x4598f9
add esi, 2
jmp 0x4598f9
add esi, 3
cmp esi, 0x20
jne 0x459c0a
xor esi, esi
mov eax, 0x59036c
lea esp, [esp]
cmp dword [eax - 0x7c], 0
je 0x459948
cmp dword [eax], 0
je 0x45993b
cmp dword [eax + 0x7c], 0
je 0x459940
cmp dword [eax + 0xf8], 0
je 0x459945
add eax, 0x1f0
add esi, 4
cmp eax, 0x5912ec
jl 0x459910
jmp 0x459948
add esi, 1
jmp 0x459948
add esi, 2
jmp 0x459948
add esi, 3
cmp esi, 0x20
je 0x459d1f
mov edx, dword [0x590268]
push edx
lea eax, [esp + 0x2c]
push eax
call fcn.00473610
imul esi, esi, 0x7c
mov ebp, eax
add esp, 8
test ebp, ebp
mov dword [esi + 0x5902f0], ebp
je 0x459e9d
cmp dword [esp + 0xa0], 0xffffffff
je 0x45999e
mov eax, dword [esp + 0xa8]
test eax, eax
mov edi, eax
mov dword [esp + 0x10], edi
je 0x4599a4
mov ecx, dword [eax + 8]
add ecx, eax
mov dword [esp + 0x1c], ecx
jmp 0x4599ac
xor edi, edi
mov dword [esp + 0x10], edi
mov dword [esp + 0x1c], 0
mov ecx, dword [esp + 0xac]
test ecx, ecx
je 0x4599be
mov eax, dword [ecx + 8]
add eax, ecx
jmp 0x4599c0
xor eax, eax
mov edx, dword [ecx + 0x14]
test edx, edx
je 0x4599d8
mov edi, dword [edx + ecx]
mov ebx, dword [esp + 0x20]
add edx, ecx
mov dword [ebx], edi
mov edi, dword [esp + 0x10]
jmp 0x4599da
xor edx, edx
test edi, edi
mov ebx, dword [ecx + 0x18]
mov ecx, dword [ecx + 0xc]
je 0x4599e9
mov edi, dword [edi + 0xc]
jmp 0x4599eb
xor edi, edi
push ebx
push dword [esp + 0x24]
push edx
push eax
push ecx
mov ecx, dword [esp + 0x30]
push ecx
push edi
push ebp
call fcn.00475b00
mov ecx, dword [0x5902d4]
add esp, 0x20
test ecx, ecx
je 0x459a45
mov eax, dword [0x590268]
lea edx, [eax + eax*4]
add edx, edx
add edx, edx
add edx, edx
push edx
push 0
push 0
push ecx
call fcn.0043f8c0
push eax
call fcn.00437160
add esp, 0x14
test eax, eax
mov dword [esi + 0x5902ec], eax
je 0x459a45
push 3
push 1
push eax
call fcn.00437060
add esp, 0xc
mov edx, dword [0x6d6a2c]
fld dword [esp + 0x14]
test edx, edx
fild dword [0x6d6a2c]
mov eax, dword [0x6d6a40]
mov ecx, dword [0x6d6a44]
mov dword [esi + 0x5902fc], eax
mov dword [esi + 0x590300], ecx
jge 0x459a76
fadd dword [0x49e4a0]
mov eax, dword [esi + 0x5902ec]
fsubp st(1)
test eax, eax
fstp dword [esp + 0x14]
fld dword [esp + 0x14]
je 0x459b0b
mov ecx, dword [0x5902d8]
sub ecx, 0
je 0x459ad0
sub ecx, 1
jne 0x459b0b
fiadd dword [esi + 0x590300]
push ecx
sub esp, 8
fadd dword [0x5902e0]
fstp dword [esp + 0x1c]
fld dword [esp + 0x1c]
fstp dword [esp + 4]
fld dword [0x5902dc]
fadd dword [0x5902c4]
fstp dword [esp + 0x1c]
fld dword [esp + 0x1c]
jmp 0x459afb
fadd dword [0x5902e0]
push 0
sub esp, 8
fstp dword [esp + 0x1c]
fld dword [esp + 0x1c]
fstp dword [esp + 4]
fld dword [0x5902dc]
fadd dword [0x5902c4]
fstp dword [esp + 0x1c]
fld dword [esp + 0x1c]
fstp dword [esp]
push eax
call fcn.0043a630
fld dword [esp + 0x24]
add esp, 0x10
fld dword [0x5902c4]
fst dword [esi + 0x5902f4]
fxch st(1)
fst dword [esi + 0x5902f8]
call fcn.004863e0
push eax
call fcn.004863e0
push eax
mov eax, dword [esi + 0x5902f0]
push eax
call fcn.004737c0
mov edi, dword [esp + 0x4d8]
add esp, 0xc
test edi, edi
je 0x459bb2
cmp dword [esp + 0xb4], 0
je 0x459b6c
lea ecx, [esp + 0xb8]
push 0
push ecx
call fcn.00470370
add esp, 8
test eax, eax
je 0x459b6c
mov eax, 1
jmp 0x459b6e
xor eax, eax
mov edx, dword [esp + 0x4c0]
mov ecx, dword [esp + 0x1c]
push edx
push ecx
mov ecx, dword [esp + 0xb8]
neg ecx
sbb ecx, ecx
lea edx, [esi + 0x5902e8]
push edx
mov edx, dword [esp + 0xb4]
and ecx, 2
neg edx
sbb edx, edx
and edx, 4
add ecx, eax
add edx, ecx
push edx
push edi
call fcn.00458dd0
add esp, 0x14
mov dword [esi + 0x59030c], eax
mov eax, dword [esi + 0x590360]
test eax, eax
je 0x459beb
fld dword [esp + 0x14]
mov ecx, dword [0x6d69f0]
push 0
sub esp, 8
test ecx, ecx
fstp dword [esp + 4]
fild dword [0x6d69f0]
jge 0x459bdf
fadd dword [0x49e4a0]
fstp dword [esp]
push eax
call fcn.00435b70
add esp, 0x10
mov edx, dword [esp + 0x18]
mov dword [esi + 0x590308], 1
mov eax, dword [edx + 0x434]
mov dword [esi + 0x5902e8], eax
jmp 0x459ce3
mov ecx, dword [0x6d6a2c]
fld dword [esp + 0x14]
imul esi, esi, 0x7c
fild dword [0x6d6a2c]
test ecx, ecx
mov dword [esi + 0x590308], 1
jge 0x459c31
fadd dword [0x49e4a0]
fsubp st(1)
fstp dword [esp + 0x14]
fld dword [esp + 0x14]
fsub dword [esi + 0x5902f8]
call fcn.004863e0
mov ebp, eax
mov eax, dword [esi + 0x5902ec]
test eax, eax
mov dword [esp + 0x18], ebp
je 0x459c71
fild dword [esp + 0x18]
push 0
sub esp, 8
fstp dword [esp + 4]
fldz
fstp dword [esp]
push eax
call fcn.00435b70
add esp, 0x10
fld dword [esp + 0x14]
xor edi, edi
cmp dword [esi + 0x59030c], edi
fstp dword [esi + 0x5902f8]
jle 0x459cb0
lea ebx, [esi + 0x590310]
jmp 0x459c90
mov edx, dword [ebx]
mov ecx, dword [esp + 0x4cc]
push ebp
push 0
push edx
call fcn.00425d60
add edi, 1
add ebx, 4
cmp edi, dword [esi + 0x59030c]
jl 0x459c90
mov eax, dword [esi + 0x5902f0]
push ebp
push 0
push eax
call fcn.00473830
fild dword [esp + 0x24]
mov ecx, dword [esi + 0x590360]
add esp, 0xc
push 0
sub esp, 8
fstp dword [esp + 4]
fldz
fstp dword [esp]
push ecx
call fcn.00435b70
add esp, 0x10
mov edx, dword [0x6d69f4]
fld dword [esp + 0x14]
test edx, edx
fild dword [0x6d69f4]
jge 0x459cfd
fadd dword [0x49e4a0]
fcompp
fnstsw ax
test ah, 1
je 0x459d1f
mov ecx, dword [0x591304]
call fcn.00458b80
mov edi, eax
test edi, edi
mov dword [esp + 0x18], edi
jne 0x459840
mov ebp, dword [esp + 0x4cc]
mov esi, 0x59030c
jmp 0x459d30
xor edi, edi
cmp dword [esi - 4], edi
jne 0x459d96
cmp ebp, edi
je 0x459d58
cmp dword [esi], edi
jle 0x459d58
lea ebx, [esi + 4]
mov eax, dword [ebx]
push eax
mov ecx, ebp
call fcn.00425ac0
add edi, 1
add ebx, 4
cmp edi, dword [esi]
jl 0x459d42
xor edi, edi
mov eax, dword [esi - 0x1c]
cmp eax, edi
mov dword [esi], edi
je 0x459d6d
push eax
call fcn.00475ad0
add esp, 4
mov dword [esi - 0x1c], edi
mov eax, dword [esi + 0x54]
cmp eax, edi
je 0x459d80
push eax
call fcn.0043e650
add esp, 4
mov dword [esi + 0x54], edi
mov eax, dword [esi - 0x20]
cmp eax, edi
je 0x459d93
push eax
call fcn.0043e650
add esp, 4
mov dword [esi - 0x20], edi
mov dword [esi - 4], edi
add esi, 0x7c
cmp esi, 0x59128c
jl 0x459d30
mov ebp, dword [0x6d69f4]
fld dword [esp + 0x14]
mov ecx, ebp
test ecx, ecx
mov dword [esp + 0x20], ecx
fild dword [esp + 0x20]
jge 0x459dbf
fadd dword [0x49e4a0]
fcomp st(1)
fnstsw ax
test ah, 5
jp 0x459eaa
fnstcw word [esp + 0x14]
mov esi, 0x5902f8
movzx eax, word [esp + 0x14]
or eax, 0xc00
mov dword [esp + 0x20], eax
fldcw word [esp + 0x20]
fistp qword [esp + 0x20]
mov edx, dword [esp + 0x20]
sub ebp, edx
mov dword [esp + 0x18], ebp
fldcw word [esp + 0x14]
lea esp, [esp]
cmp dword [esi + 0x10], 0
je 0x459e8c
fild dword [esp + 0x18]
xor edi, edi
cmp dword [esi + 0x14], edi
fstp dword [esp + 0x1c]
fld dword [esp + 0x1c]
fadd dword [esi]
fstp dword [esi]
jle 0x459e41
lea ebx, [esi + 0x18]
mov eax, dword [ebx]
mov ecx, dword [esp + 0x4cc]
push ebp
push 0
push eax
call fcn.00425d60
add edi, 1
add ebx, 4
cmp edi, dword [esi + 0x14]
jl 0x459e24
mov ecx, dword [esi - 8]
push ebp
push 0
push ecx
call fcn.00473830
fld dword [esp + 0x28]
mov edx, dword [esi - 0xc]
add esp, 0xc
push 0
sub esp, 8
fstp dword [esp + 4]
fldz
fstp dword [esp]
push edx
call fcn.00435b70
fld dword [esp + 0x2c]
mov eax, dword [esi + 0x68]
add esp, 0x10
push 0
sub esp, 8
fstp dword [esp + 4]
fldz
fstp dword [esp]
push eax
call fcn.00435b70
add esp, 0x10
add esi, 0x7c
cmp esi, 0x591278
jl 0x459e00
jmp 0x459eac
pop ebp
pop ebx
pop edi
xor eax, eax
pop esi
add esp, 0x4b4
ret
fstp st(0)
cmp dword [esp + 0x4cc], 0
je 0x459ec6
mov ecx, dword [esp + 0x4cc]
mov edx, dword [ecx]
mov eax, dword [edx + 8]
push 1
call eax
pop ebp
pop ebx
pop edi
mov eax, 1
pop esi
add esp, 0x4b4
ret