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

Disassembly:
sub esp, 0xac
mov ecx, dword [esp + 0xd4]
fld qword [0x477e10]
push ebx
push ebp
push esi
mov esi, dword [esp + 0xc4]
mov eax, dword [esi + 0x20]
mov dword [esp + 0x20], eax
xor eax, eax
mov dword [ecx], eax
mov dword [ecx + 4], eax
mov dword [ecx + 8], eax
mov dword [ecx + 0xc], eax
mov dword [ecx + 0x10], eax
mov dword [ecx + 0x14], eax
mov dword [ecx + 0x20], eax
mov dword [ecx + 0x24], eax
fstp qword [ecx + 0x18]
mov cl, byte [esi + 0x1c]
mov eax, dword [esi + 0x3c]
not cl
movzx ecx, cl
and ecx, 8
shl ecx, 4
or ecx, 3
test eax, eax
push edi
mov dword [esp + 0x6c], 0xffffffff
mov dword [esp + 0x64], ecx
je 0x45a21e
mov dword [esp + 0x3c], eax
mov dword [esp + 0x14], eax
mov dword [esp + 0x44], 0xffffcfff
mov dword [esp + 0x40], ecx
jmp 0x45a2a7
push 0x30
lea edx, [esp + 0x8c]
push 0
push edx
call sub.MSVCR80.dll_memset
lea eax, [esp + 0x78]
lea edx, [esp + 0x84]
mov dword [esp + 0x98], eax
mov eax, dword [esi + 0xc]
mov ecx, 1
mov dword [esp + 0x9c], edx
mov edx, dword [eax + 0x18]
add esp, 0xc
cmp byte [esi + 0x1d], 0
mov dword [esp + 0xac], ecx
mov byte [esp + 0xb4], 5
mov dword [esp + 0x94], eax
mov dword [esp + 0x78], edx
mov dword [esp + 0x7c], ecx
jne 0x45a284
mov eax, dword [eax + 0x10]
mov dword [esp + 0x9c], eax
lea ecx, [esp + 0x88]
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x44], 0xfff0ffff
mov dword [esp + 0x40], 3
mov dword [esp + 0x14], 0
fld1
xor edx, edx
cmp dword [esp + 0xdc], edx
setne dl
xor eax, eax
cmp dword [esp + 0xe0], eax
setne al
mov dword [esp + 0x74], edx
mov dword [esp + 0x70], eax
mov ebp, dword [esp + 0x3c]
fstp qword [esp + 0x58]
mov ecx, dword [ebp + 8]
mov edx, dword [esp + 0x74]
mov eax, dword [esp + 0x70]
mov esi, dword [esp + 0xc4]
xor edi, edi
cmp dword [ebp + 0x24], edi
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x10], edi
mov dword [esp + 0x28], edi
mov dword [esp + 0x2c], edi
mov dword [esp + 0x54], edi
mov dword [esp + 0x18], 1
mov dword [esp + 0x20], edi
mov dword [esp + 0x48], edx
mov dword [esp + 0x4c], eax
mov dword [esp + 0x50], edi
mov dword [esp + 0x38], edi
jle 0x45a3cc
mov edi, edi
mov ecx, dword [ebp + 4]
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x40]
mov ebx, dword [ecx + edi*4]
mov ecx, dword [esp + 0xd0]
push edx
mov edx, dword [esp + 0xd0]
push eax
mov eax, dword [esp + 0x2c]
push ecx
push edx
push eax
push esi
call fcn.00457d00
add esp, 0x18
test eax, eax
je 0x45a3c8
movzx ecx, word [eax + 0x10]
or dword [esp + 0x10], 0x11000
test cl, 1
je 0x45a3a2
mov ecx, dword [eax]
or dword [esp + 0x10], 0x40000
test word [ecx + 2], 0x800
je 0x45a38a
mov ecx, dword [esp + 0x18]
imul ecx, ecx, 0x19
mov dword [esp + 0x18], ecx
mov dword [esp + 0x54], 1
jmp 0x45a3ae
mov ecx, dword [ecx + 0x10]
test ecx, ecx
je 0x45a3ae
mov ecx, dword [ecx]
test ecx, ecx
je 0x45a3ae
imul ecx, dword [esp + 0x18]
mov dword [esp + 0x18], ecx
jmp 0x45a3ae
test cl, cl
jns 0x45a3ae
or dword [esp + 0x10], 0x80000
mov edx, dword [eax + 0x18]
mov eax, dword [eax + 0x1c]
or dword [esp + 0x28], edx
or dword [esp + 0x2c], eax
add edi, 1
cmp edi, dword [ebp + 0x24]
jl 0x45a320
mov dword [esp + 0x38], edi
mov eax, dword [ebp + 0x24]
cmp edi, eax
jne 0x45a3f4
cmp byte [ebp + 0x2c], 0
je 0x45a3f4
test dword [esp + 0x10], 0xc0000
jne 0x45a505
or dword [esp + 0x10], 0x4000000
jmp 0x45a505
cmp byte [ebp + 0x2e], 0
jne 0x45a505
cmp edi, eax
jne 0x45a407
or ebx, 0xffffffff
jmp 0x45a40d
mov ecx, dword [ebp + 4]
mov ebx, dword [ecx + edi*4]
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0xd0]
mov ecx, dword [esp + 0xcc]
push edx
mov edx, dword [esp + 0x28]
push 0x3c
push eax
push ecx
push edx
push esi
call fcn.00457d00
add esp, 0x18
test eax, eax
je 0x45a505
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0xd0]
mov edx, dword [esp + 0xcc]
push eax
mov eax, dword [esp + 0x28]
push 0x18
push ecx
mov ecx, dword [esp + 0xd0]
push edx
push eax
push ecx
call fcn.00457d00
mov edx, dword [esp + 0x2c]
mov ecx, dword [esp + 0xe4]
push edx
mov edx, dword [esp + 0x40]
mov esi, eax
mov eax, dword [esp + 0xec]
push 0x24
push eax
mov eax, dword [esp + 0xe8]
push ecx
push edx
push eax
call fcn.00457d00
fld1
add esp, 0x30
fst qword [esp + 0x58]
test eax, eax
je 0x45a4a7
fstp st(0)
fld qword [0x477d00]
fst qword [esp + 0x58]
test esi, esi
je 0x45a4d5
fmul qword [0x477d00]
mov ecx, dword [esi + 0x18]
mov edx, dword [esi + 0x1c]
or dword [esp + 0x10], 0x100000
or dword [esp + 0x28], ecx
fstp qword [esp + 0x58]
or dword [esp + 0x2c], edx
mov dword [esp + 0x20], 1
jmp 0x45a4d7
fstp st(0)
test eax, eax
je 0x45a4f6
mov ecx, dword [eax + 0x18]
mov edx, dword [eax + 0x1c]
add dword [esp + 0x20], 1
or dword [esp + 0x10], 0x200000
or dword [esp + 0x28], ecx
or dword [esp + 0x2c], edx
or dword [esp + 0x10], 0x22000
mov esi, dword [esp + 0xc4]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0xdc]
mov ebx, dword [esp + 0xc0]
lea eax, [esp + 0x68]
push eax
mov eax, dword [esp + 0x28]
push ecx
mov ecx, dword [esi + 4]
push edi
push edx
push eax
push ebp
push ecx
push ebx
call fcn.00458f80
add esp, 0x20
test eax, eax
je 0x45a556
mov edx, dword [esp + 0x68]
neg edx
sbb edx, edx
and edx, 0x2000000
or edx, 0x1022000
or dword [esp + 0x10], edx
mov dword [esp + 0x48], 0
mov eax, dword [esp + 0xe0]
mov ecx, dword [esp + 0x24]
push edi
push eax
push ecx
push ebp
push esi
push ebx
call fcn.00458d40
add esp, 0x18
test eax, eax
je 0x45a58d
test dword [esp + 0x10], 0x40000
jne 0x45a58d
or dword [esp + 0x10], 0x40022000
mov dword [esp + 0x4c], 0
cmp dword [esp + 0x14], 0
je 0x45a5f9
cmp dword [esp + 0x10], 0
je 0x45a5f9
mov eax, dword [esp + 0xc8]
mov edx, dword [esp + 0x14]
mov edi, dword [eax + 0x30]
mov ebx, dword [eax + 0x34]
mov eax, dword [edx + 0x24]
test eax, eax
jle 0x45a5e3
mov ecx, edx
mov esi, dword [ecx + 4]
mov ebp, eax
lea ebx, [ebx]
mov ecx, dword [esi]
cmp ecx, 0x3f
jge 0x45a5db
mov eax, 1
xor edx, edx
call fcn.0046b8a0
not eax
not edx
and edi, eax
and ebx, edx
add esi, 4
sub ebp, 1
jne 0x45a5c0
or edi, ebx
jne 0x45a5f1
or dword [esp + 0x10], 0x800000
jmp 0x45a5f9
mov dword [esp + 0x50], 1
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x38]
mov ecx, dword [edx + eax*4]
mov edx, ecx
imul edx, dword [esp + 0x18]
test edx, edx
mov dword [esp + 0x34], edx
fild dword [esp + 0x34]
jge 0x45a61d
fadd qword [0x477d90]
cmp dword [esp + 0x54], 0
je 0x45a6d1
mov eax, dword [esp + 0x1c]
fld st(0)
mov edx, dword [eax]
fld qword [0x477e08]
mov eax, edx
fmul st(1), st(0)
test eax, eax
mov dword [esp + 0x34], eax
fild dword [esp + 0x34]
jge 0x45a64c
fadd qword [0x477d90]
fcomp st(2)
fnstsw ax
fstp st(1)
test ah, 5
jp 0x45a68c
shr edx, 1
fstp st(1)
test edx, edx
mov dword [esp + 0x34], edx
fild dword [esp + 0x34]
jge 0x45a66d
fadd qword [0x477d90]
test ecx, ecx
mov dword [esp + 0x34], ecx
fild dword [esp + 0x34]
jge 0x45a67f
fadd qword [0x477d90]
fdivr st(1)
call fcn.0046b990
fxch st(1)
mov dword [esp + 0x18], eax
fxch st(1)
fdiv qword [esp + 0x58]
fld1
fcom st(1)
fnstsw ax
test ah, 0x41
jne 0x45a6a3
fstp st(1)
fld st(0)
fxch st(1)
test dword [esp + 0x10], 0x100f3000
jne 0x45a6d9
mov ecx, dword [esp + 0x1c]
mov edx, dword [ecx]
add edx, edx
add edx, edx
test edx, edx
mov dword [esp + 0x34], edx
fild dword [esp + 0x34]
jge 0x45a6c9
fadd qword [0x477d90]
fld qword [0x477d08]
jmp 0x45a739
fld qword [0x477e08]
jmp 0x45a68c
mov eax, dword [esp + 0x1c]
fld st(0)
fld qword [0x477d08]
mov ecx, dword [eax]
test ecx, ecx
fld st(0)
fild dword [eax]
jge 0x45a6f5
fadd qword [0x477d90]
fcom st(2)
fnstsw ax
test ah, 0x41
je 0x45a708
fstp st(1)
fstp st(0)
jmp 0x45a71d
fxch st(1)
fxch st(3)
fxch st(3)
fadd st(4)
fxch st(1)
fmul st(2)
fcom st(3)
fnstsw ax
test ah, 5
jnp 0x45a704
fstp st(0)
fstp st(2)
cmp dword [esp + 0x14], 0
fild dword [esp + 0x18]
je 0x45a731
cmp dword [esp + 0x50], 0
je 0x45a731
fadd st(4)
fmulp st(2)
fxch st(1)
fadd st(3)
fxch st(1)
cmp dword [esp + 0x48], 0
je 0x45a78a
fld st(2)
fld st(1)
fxch st(5)
fcom st(2)
fnstsw ax
test ah, 0x41
je 0x45a765
fstp st(5)
fmul st(4)
fld qword [0x477e00]
fmul st(1), st(0)
fxch st(1)
faddp st(3)
jmp 0x45a790
fxch st(5)
fxch st(1)
fxch st(1)
fadd st(4)
fxch st(5)
fmul st(2)
fcom st(1)
fnstsw ax
test ah, 5
jnp 0x45a761
fstp st(0)
fxch st(4)
fmul st(4)
fld qword [0x477e00]
fmul st(1), st(0)
fxch st(1)
faddp st(3)
jmp 0x45a790
fld qword [0x477e00]
cmp dword [esp + 0x4c], 0
je 0x45a7d3
fstp st(5)
fld st(2)
fld st(1)
fxch st(5)
fcom st(2)
fnstsw ax
test ah, 0x41
je 0x45a7b0
fstp st(5)
jmp 0x45a7c5
fxch st(5)
fxch st(1)
fxch st(1)
fadd st(4)
fxch st(5)
fmul st(2)
fcom st(1)
fnstsw ax
test ah, 5
jnp 0x45a7ac
fstp st(0)
fxch st(4)
fmul st(4)
fmul st(5)
faddp st(2)
fld qword [0x477e08]
fxch st(5)
fxch st(4)
fcom st(5)
fnstsw ax
test ah, 0x41
jne 0x45a8ff
mov edx, dword [esp + 0xe4]
fld qword [edx + 0x18]
fcomp st(3)
fnstsw ax
test ah, 1
jne 0x45a8ff
mov eax, dword [esp + 0x38]
mov esi, dword [esp + 0xc4]
mov ecx, dword [esp + 0x20]
mov edx, dword [esi + 4]
mov dword [esp + 0x1c], eax
mov eax, dword [edx]
mov dword [esp + 0x20], ecx
xor ecx, ecx
test eax, eax
jle 0x45a830
mov edi, dword [esp + 0x24]
add edx, 4
cmp dword [edx], edi
je 0x45a858
add ecx, 1
add edx, 4
cmp ecx, eax
jl 0x45a822
xor edi, edi
mov dword [esp + 0x84], edi
mov eax, dword [esi + 0x20]
fld qword [0x477d88]
mov ebx, dword [esi + 0x18]
mov ebp, dword [esp + 0xd4]
mov edx, dword [esp + 0xd8]
lea esi, [eax + 0x10]
jmp 0x45a871
mov eax, 1
xor edx, edx
call fcn.0046b8a0
mov edi, eax
mov dword [esp + 0x84], edx
jmp 0x45a839
fxch st(1)
test ebx, ebx
je 0x45a8f9
test byte [esi + 2], 2
jne 0x45a8b1
mov eax, dword [esi + 0x10]
mov ecx, dword [esi + 0x14]
and eax, ebp
and ecx, edx
cmp eax, edi
jne 0x45a8b1
cmp ecx, dword [esp + 0x84]
jne 0x45a8b1
movzx eax, word [esi]
test al, 0x83
je 0x45a8d7
cmp dword [esp + 0x1c], 0
je 0x45a8ab
sub dword [esp + 0x1c], 1
jmp 0x45a8b1
fxch st(1)
fdiv st(2)
fxch st(1)
fxch st(1)
sub ebx, 1
fcom st(6)
add esi, 0x28
fnstsw ax
test ah, 0x41
je 0x45a86f
fstp st(2)
fstp st(0)
fstp st(3)
fxch st(2)
fcom st(3)
fnstsw ax
test ah, 5
jp 0x45a907
fstp st(0)
jmp 0x45a909
test al, 0x3c
je 0x45a8ef
cmp dword [esp + 0x20], 0
je 0x45a8e9
sub dword [esp + 0x20], 1
jmp 0x45a8b1
fxch st(1)
fdiv st(5)
jmp 0x45a8af
cmp ax, 0x800
je 0x45a8b1
fmul st(1), st(0)
jmp 0x45a8b1
fstp st(2)
fstp st(1)
jmp 0x45a8c6
fstp st(1)
fstp st(3)
fstp st(3)
jmp 0x45a90f
fstp st(3)
fxch st(1)
fxch st(2)
fxch st(1)
mov edx, dword [esp + 0x14]
test edx, edx
mov ecx, dword [esp + 0x10]
je 0x45a91f
test ecx, ecx
je 0x45a972
mov esi, dword [esp + 0xe4]
fld qword [esi + 0x18]
fcomp st(3)
fnstsw ax
test ah, 0x41
je 0x45a94a
fld qword [esi + 0x18]
fcomp st(3)
fnstsw ax
test ah, 1
jne 0x45a979
fld qword [esi + 8]
fcomp st(2)
fnstsw ax
test ah, 0x41
jne 0x45a979
and ecx, dword [esp + 0x44]
fxch st(2)
mov eax, dword [esp + 0x28]
fstp qword [esi + 0x18]
mov dword [esi + 0x20], eax
mov eax, dword [esp + 0x2c]
fstp qword [esi + 8]
mov dword [esi], ecx
mov ecx, dword [esp + 0x38]
mov dword [esi + 0x24], eax
mov dword [esi + 4], ecx
mov dword [esi + 0x10], edx
jmp 0x45a97d
mov esi, dword [esp + 0xe4]
fstp st(1)
fstp st(1)
mov ebx, dword [esp + 0xc8]
cmp dword [ebx + 0x3c], 0
jne 0x45a9b8
mov eax, dword [esp + 0x3c]
mov eax, dword [eax + 0x14]
test eax, eax
mov edx, dword [esp + 0x64]
mov dword [esp + 0x44], 0xffffcfff
mov dword [esp + 0x40], edx
mov dword [esp + 0x3c], eax
mov dword [esp + 0x14], eax
jne 0x45a2c9
mov esi, dword [esp + 0xe4]
mov eax, dword [esp + 0xdc]
fstp st(0)
test eax, eax
mov edi, dword [esp + 0xc0]
jne 0x45a9dd
mov ecx, dword [edi]
test dword [ecx + 0x18], 0x1000000
je 0x45a9dd
or dword [esi], 0x2000000
mov edx, dword [esp + 0xd8]
mov ebp, dword [esp + 0xd0]
mov ecx, dword [esp + 0xcc]
push esi
push eax
mov eax, dword [esp + 0xdc]
push edx
mov edx, dword [esp + 0xd0]
push eax
push ebp
push ecx
push ebx
push edx
push edi
call fcn.00459180
mov eax, dword [esp + 0xf0]
mov ecx, dword [esp + 0xe8]
add esp, 0x24
push esi
push ebp
push eax
mov edx, edi
call fcn.00459470
mov ecx, dword [esp + 0x4c]
add esp, 0xc
or dword [esi], ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xac
ret