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

Disassembly:
sub esp, 0x4c4
push esi
push edi
mov eax, dword [0x6ef2e8]
mov edx, dword [0x6ef2d0]
mov ecx, dword [0x6ef2ec]
mov dword [esp + 0x20], eax
mov eax, dword [0x6ef2b8]
mov dword [esp + 0x28], edx
mov edx, dword [0x6ef2a8]
mov dword [esp + 0x2c], eax
mov dword [esp + 0x30], eax
mov eax, dword [0x6ef0c8]
mov dword [esp + 0x34], eax
mov eax, dword [0x6ef0d0]
mov dword [esp + 0x44], edx
mov edx, dword [0x6ef2cc]
mov dword [esp + 0x24], ecx
mov ecx, dword [0x6ef2c0]
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], eax
mov eax, dword [0x6ef2c4]
mov dword [esp + 0x60], edx
mov edx, dword [0x6ef2b4]
mov dword [esp + 0x40], ecx
mov ecx, dword [0x6ef2ac]
mov dword [esp + 0x48], eax
mov eax, dword [0x6ef2f0]
mov dword [esp + 0x64], edx
mov edx, dword [0x6ef2c8]
mov esi, dword [esp + 0x4d0]
mov dword [esp + 0x4c], ecx
mov ecx, dword [0x6ef2f4]
mov dword [esp + 0x58], eax
mov dword [esp + 0x68], edx
mov edx, dword [0x6ef2b0]
mov dword [esp + 0x74], eax
mov eax, dword [0x6ef2f8]
xor edi, edi
cmp esi, edi
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x6c], edx
mov edx, dword [0x6ef300]
mov dword [esp + 0x78], ecx
mov ecx, dword [0x6ef2fc]
mov dword [esp + 0x7c], eax
mov eax, dword [0x6ef304]
mov dword [esp + 0x50], edi
mov dword [esp + 0x54], edi
mov dword [esp + 0x70], edi
mov dword [esp + 0x80], ecx
mov dword [esp + 0x84], edx
mov dword [esp + 0x88], eax
jge 0x45a445
pop edi
xor eax, eax
pop esi
add esp, 0x4c4
ret
cmp dword [0x6ef130], 2
jne 0x45a45b
mov eax, 0x80100000
or dword [esp + 0x20], eax
or dword [esp + 0x24], eax
mov ecx, dword [0x5a604c]
call fcn.00459730
cmp esi, edi
mov ecx, dword [0x5a604c]
mov edx, dword [ecx + 8]
mov dword [esp + 0x10], edx
je 0x45a494
jmp 0x45a480
mov ecx, dword [0x5a604c]
call fcn.00459820
sub esi, 1
mov dword [esp + 0x10], eax
jne 0x45a480
mov ecx, dword [esp + 0x4d4]
call fcn.00427760
mov eax, 0x5a4b50
jmp 0x45a4b0
mov dword [eax], edi
add eax, 0xa4
cmp eax, 0x5a5fd0
jl 0x45a4b0
mov eax, dword [0x5a4ab0]
neg eax
sbb eax, eax
and eax, 0x5a4aac
mov dword [esp + 0x18], eax
mov eax, dword [0x6ef2d8]
imul eax, dword [0x6ef2dc]
add eax, dword [0x6ef2a4]
push ebx
test eax, eax
mov dword [esp + 0xc], eax
push ebp
fild dword [esp + 0x10]
jge 0x45a4f6
fadd dword [0x4a0498]
cmp dword [esp + 0x18], edi
fstp dword [esp + 0x14]
je 0x45a9f0
mov edi, dword [esp + 0x18]
jmp 0x45a510
lea ecx, [esp + 0x94]
push ecx
mov ecx, edi
call fcn.004594d0
test al, al
je 0x45a9f0
xor esi, esi
mov eax, 0x5a4b30
mov edi, edi
cmp dword [eax + 8], 0
je 0x45a54a
mov edx, dword [eax]
cmp edx, dword [edi + 0x438]
jne 0x45a54a
cmp dword [eax + 0x20], 0
je 0x45a5cc
cmp dword [eax + 0xac], 0
je 0x45a56a
mov ecx, dword [eax + 0xa4]
cmp ecx, dword [edi + 0x438]
jne 0x45a56a
cmp dword [eax + 0xc4], 0
je 0x45a5bf
cmp dword [eax + 0x150], 0
je 0x45a58a
mov edx, dword [eax + 0x148]
cmp edx, dword [edi + 0x438]
jne 0x45a58a
cmp dword [eax + 0x168], 0
je 0x45a5c4
cmp dword [eax + 0x1f4], 0
je 0x45a5aa
mov ecx, dword [eax + 0x1ec]
cmp ecx, dword [edi + 0x438]
jne 0x45a5aa
cmp dword [eax + 0x20c], 0
je 0x45a5c9
add eax, 0x290
add esi, 4
cmp eax, 0x5a5fb0
jl 0x45a530
jmp 0x45a5cc
add esi, 1
jmp 0x45a5cc
add esi, 2
jmp 0x45a5cc
add esi, 3
cmp esi, 0x20
jne 0x45a8dd
xor esi, esi
mov eax, 0x5a4bdc
lea esp, [esp]
cmp dword [eax - 0xa4], 0
je 0x45a61e
cmp dword [eax], 0
je 0x45a611
cmp dword [eax + 0xa4], 0
je 0x45a616
cmp dword [eax + 0x148], 0
je 0x45a61b
add eax, 0x290
add esi, 4
cmp eax, 0x5a605c
jl 0x45a5e0
jmp 0x45a61e
add esi, 1
jmp 0x45a61e
add esi, 2
jmp 0x45a61e
add esi, 3
cmp esi, 0x20
je 0x45a9f0
mov edx, dword [0x5a4aa8]
push edx
lea eax, [esp + 0x2c]
push eax
call fcn.004789b0
imul esi, esi, 0xa4
mov ebp, eax
add esp, 8
test ebp, ebp
mov dword [esi + 0x5a4b38], ebp
je 0x45ab73
cmp dword [esp + 0xb0], 0xffffffff
je 0x45a677
mov eax, dword [esp + 0xb8]
test eax, eax
mov edi, eax
mov dword [esp + 0x10], edi
je 0x45a67d
mov ecx, dword [eax + 8]
add ecx, eax
mov dword [esp + 0x1c], ecx
jmp 0x45a685
xor edi, edi
mov dword [esp + 0x10], edi
mov dword [esp + 0x1c], 0
mov ecx, dword [esp + 0xbc]
test ecx, ecx
je 0x45a697
mov eax, dword [ecx + 8]
add eax, ecx
jmp 0x45a699
xor eax, eax
mov edx, dword [ecx + 0x14]
test edx, edx
je 0x45a6b1
mov edi, dword [edx + ecx]
mov ebx, dword [esp + 0x20]
add edx, ecx
mov dword [ebx], edi
mov edi, dword [esp + 0x10]
jmp 0x45a6b3
xor edx, edx
test edi, edi
mov ebx, dword [ecx + 0x18]
mov ecx, dword [ecx + 0xc]
je 0x45a6c2
mov edi, dword [edi + 0xc]
jmp 0x45a6c4
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.00478b60
mov eax, dword [0x5a4b14]
add esp, 0x20
test eax, eax
je 0x45a718
mov edx, dword [0x5a4aa8]
imul edx, edx, 0x32
push edx
push 0
push 0
push eax
call fcn.00440c20
push eax
call fcn.004384c0
add esp, 0x14
test eax, eax
mov dword [esi + 0x5a4b34], eax
je 0x45a718
push 3
push 1
push eax
call fcn.004383c0
add esp, 0xc
mov edx, dword [0x6ef2dc]
fld dword [esp + 0x14]
test edx, edx
fild dword [0x6ef2dc]
mov eax, dword [0x6ef2f0]
mov ecx, dword [0x6ef2f4]
mov dword [esi + 0x5a4b44], eax
mov dword [esi + 0x5a4b48], ecx
jge 0x45a749
fadd dword [0x4a0498]
mov eax, dword [esi + 0x5a4b34]
fsubp st(1)
test eax, eax
fstp dword [esp + 0x14]
fld dword [esp + 0x14]
je 0x45a7de
mov ecx, dword [0x5a4b18]
sub ecx, 0
je 0x45a7a3
sub ecx, 1
jne 0x45a7de
fiadd dword [esi + 0x5a4b48]
push ecx
sub esp, 8
fadd dword [0x5a4b20]
fstp dword [esp + 0x1c]
fld dword [esp + 0x1c]
fstp dword [esp + 4]
fld dword [0x5a4b1c]
fadd dword [0x5a4b04]
fstp dword [esp + 0x1c]
fld dword [esp + 0x1c]
jmp 0x45a7ce
fadd dword [0x5a4b20]
push 0
sub esp, 8
fstp dword [esp + 0x1c]
fld dword [esp + 0x1c]
fstp dword [esp + 4]
fld dword [0x5a4b1c]
fadd dword [0x5a4b04]
fstp dword [esp + 0x1c]
fld dword [esp + 0x1c]
fstp dword [esp]
push eax
call fcn.0043b990
fld dword [esp + 0x24]
add esp, 0x10
fld dword [0x5a4b04]
fst dword [esi + 0x5a4b3c]
fxch st(1)
fst dword [esi + 0x5a4b40]
call fcn.004884b0
push eax
call fcn.004884b0
push eax
mov eax, dword [esi + 0x5a4b38]
push eax
call fcn.00475a00
mov edi, dword [esp + 0x4e8]
add esp, 0xc
test edi, edi
je 0x45a885
cmp dword [esp + 0xc4], 0
je 0x45a83f
lea ecx, [esp + 0xc8]
push 0
push ecx
call fcn.004711d0
add esp, 8
test eax, eax
je 0x45a83f
mov eax, 1
jmp 0x45a841
xor eax, eax
mov edx, dword [esp + 0x4d0]
mov ecx, dword [esp + 0x1c]
push edx
push ecx
mov ecx, dword [esp + 0xc8]
neg ecx
sbb ecx, ecx
lea edx, [esi + 0x5a4b30]
push edx
mov edx, dword [esp + 0xc4]
and ecx, 2
neg edx
sbb edx, edx
and edx, 4
add ecx, eax
add edx, ecx
push edx
push edi
call fcn.00459a80
add esp, 0x14
mov dword [esi + 0x5a4b54], eax
mov eax, dword [esi + 0x5a4bd0]
test eax, eax
je 0x45a8be
fld dword [esp + 0x14]
mov ecx, dword [0x6ef2a0]
push 0
sub esp, 8
test ecx, ecx
fstp dword [esp + 4]
fild dword [0x6ef2a0]
jge 0x45a8b2
fadd dword [0x4a0498]
fstp dword [esp]
push eax
call fcn.00436ed0
add esp, 0x10
mov edx, dword [esp + 0x18]
mov dword [esi + 0x5a4b50], 1
mov eax, dword [edx + 0x438]
mov dword [esi + 0x5a4b30], eax
jmp 0x45a9b4
mov ecx, dword [0x6ef2dc]
fld dword [esp + 0x14]
imul esi, esi, 0xa4
fild dword [0x6ef2dc]
test ecx, ecx
mov dword [esi + 0x5a4b50], 1
jge 0x45a907
fadd dword [0x4a0498]
fsubp st(1)
fstp dword [esp + 0x14]
fld dword [esp + 0x14]
fsub dword [esi + 0x5a4b40]
call fcn.004884b0
mov ebp, eax
mov eax, dword [esi + 0x5a4b34]
test eax, eax
mov dword [esp + 0x18], ebp
je 0x45a947
fild dword [esp + 0x18]
push 0
sub esp, 8
fstp dword [esp + 4]
fldz
fstp dword [esp]
push eax
call fcn.00436ed0
add esp, 0x10
fld dword [esp + 0x14]
xor edi, edi
cmp dword [esi + 0x5a4b54], edi
fstp dword [esi + 0x5a4b40]
jle 0x45a981
lea ebx, [esi + 0x5a4b58]
mov edx, dword [ebx]
mov ecx, dword [esp + 0x4dc]
push ebp
push 0
push edx
call fcn.00426fb0
add edi, 1
add ebx, 4
cmp edi, dword [esi + 0x5a4b54]
jl 0x45a961
mov eax, dword [esi + 0x5a4b38]
push ebp
push 0
push eax
call fcn.00475a70
fild dword [esp + 0x24]
mov ecx, dword [esi + 0x5a4bd0]
add esp, 0xc
push 0
sub esp, 8
fstp dword [esp + 4]
fldz
fstp dword [esp]
push ecx
call fcn.00436ed0
add esp, 0x10
mov edx, dword [0x6ef2a4]
fld dword [esp + 0x14]
test edx, edx
fild dword [0x6ef2a4]
jge 0x45a9ce
fadd dword [0x4a0498]
fcompp
fnstsw ax
test ah, 1
je 0x45a9f0
mov ecx, dword [0x5a604c]
call fcn.00459820
mov edi, eax
test edi, edi
mov dword [esp + 0x18], edi
jne 0x45a510
mov ebp, dword [esp + 0x4dc]
mov esi, 0x5a4b54
lea esp, [esp]
xor edi, edi
cmp dword [esi - 4], edi
jne 0x45aa66
cmp ebp, edi
je 0x45aa28
cmp dword [esi], edi
jle 0x45aa28
lea ebx, [esi + 4]
mov eax, dword [ebx]
push eax
mov ecx, ebp
call fcn.00426d10
add edi, 1
add ebx, 4
cmp edi, dword [esi]
jl 0x45aa12
xor edi, edi
mov eax, dword [esi - 0x1c]
cmp eax, edi
mov dword [esi], edi
je 0x45aa3d
push eax
call fcn.00478b30
add esp, 4
mov dword [esi - 0x1c], edi
mov eax, dword [esi + 0x7c]
cmp eax, edi
je 0x45aa50
push eax
call fcn.0043f9b0
add esp, 4
mov dword [esi + 0x7c], edi
mov eax, dword [esi - 0x20]
cmp eax, edi
je 0x45aa63
push eax
call fcn.0043f9b0
add esp, 4
mov dword [esi - 0x20], edi
mov dword [esi - 4], edi
add esi, 0xa4
cmp esi, 0x5a5fd4
jl 0x45aa00
mov ebp, dword [0x6ef2a4]
fld dword [esp + 0x14]
mov ecx, ebp
test ecx, ecx
mov dword [esp + 0x20], ecx
fild dword [esp + 0x20]
jge 0x45aa92
fadd dword [0x4a0498]
fcomp st(1)
fnstsw ax
test ah, 5
jp 0x45ab80
fnstcw word [esp + 0x14]
mov esi, 0x5a4b40
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 0x45ab5f
fild dword [esp + 0x18]
xor edi, edi
cmp dword [esi + 0x14], edi
fstp dword [esp + 0x1c]
fld dword [esi]
fadd dword [esp + 0x1c]
fstp dword [esi]
jle 0x45ab11
lea ebx, [esi + 0x18]
mov eax, dword [ebx]
mov ecx, dword [esp + 0x4dc]
push ebp
push 0
push eax
call fcn.00426fb0
add edi, 1
add ebx, 4
cmp edi, dword [esi + 0x14]
jl 0x45aaf4
mov ecx, dword [esi - 8]
push ebp
push 0
push ecx
call fcn.00475a70
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.00436ed0
fld dword [esp + 0x2c]
mov eax, dword [esi + 0x90]
add esp, 0x10
push 0
sub esp, 8
fstp dword [esp + 4]
fldz
fstp dword [esp]
push eax
call fcn.00436ed0
add esp, 0x10
add esi, 0xa4
cmp esi, 0x5a5fc0
jl 0x45aad0
jmp 0x45ab82
pop ebp
pop ebx
pop edi
xor eax, eax
pop esi
add esp, 0x4c4
ret
fstp st(0)
cmp dword [esp + 0x4dc], 0
je 0x45ab9c
mov ecx, dword [esp + 0x4dc]
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, 0x4c4
ret