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

Disassembly:
sub esp, 0x90
fld qword [0x4c4048]
push ebx
mov ebx, dword [esp + 0xa0]
mov eax, dword [ebx + 0x18]
push ebp
mov dword [esp + 0x28], eax
xor eax, eax
push esi
push edi
mov edi, dword [esp + 0xbc]
mov dword [edi], eax
mov dword [edi + 4], eax
mov dword [edi + 8], eax
mov dword [edi + 0xc], eax
mov dword [edi + 0x18], eax
mov dword [edi + 0x1c], eax
mov dword [edi + 0x20], eax
mov dword [edi + 0x24], eax
fstp qword [edi + 0x10]
mov cl, byte [ebx + 0x15]
mov esi, dword [ebx + 0x34]
not cl
movzx eax, cl
and eax, 8
shl eax, 4
xor ebp, ebp
or eax, 3
cmp esi, ebp
mov dword [esp + 0x50], 0xffffffff
mov dword [esp + 0x5c], eax
je 0x45bbf4
fld1
mov dword [esp + 0x18], esi
fld qword [0x4c3f40]
mov dword [esp + 0x38], 0xffffcfff
mov dword [esp + 0x34], eax
jmp 0x45bc7b
push 0x34
lea edx, [esp + 0x70]
push ebp
push edx
call fcn.00482a10
mov eax, 1
mov dword [esp + 0x7c], eax
mov dword [esp + 0x64], eax
mov eax, dword [ebx + 0xc]
add esp, 0xc
cmp byte [ebx + 0x16], 0
lea ecx, [esp + 0x50]
lea edx, [esp + 0x54]
mov dword [esp + 0x7c], eax
mov eax, dword [eax + 0x14]
mov dword [esp + 0x74], ecx
mov dword [esp + 0x78], edx
mov byte [esp + 0x84], 5
jne 0x45bc40
mov dword [esp + 0x8c], eax
cmp eax, ebp
je 0x45bc4f
mov eax, dword [eax + 0xc]
mov ecx, dword [eax]
mov dword [esp + 0x54], ecx
jmp 0x45bc57
mov dword [esp + 0x54], 0xf4240
fld1
lea esi, [esp + 0x6c]
fld qword [0x4c3f40]
mov dword [esp + 0x38], 0xfff0ffff
mov dword [esp + 0x34], 3
mov dword [esp + 0x18], ebp
jmp 0x45bc7b
xor ebp, ebp
mov edx, dword [esi + 0xc]
xor ebx, ebx
cmp dword [esi + 4], ebx
mov dword [esp + 0x44], edx
mov dword [esp + 0x14], ebx
mov dword [esp + 0x20], ebp
mov dword [esp + 0x24], ebp
mov dword [esp + 0x2c], ebp
mov dword [esp + 0x1c], 1
mov dword [esp + 0x3c], 0x64
mov dword [esp + 0x4c], ebp
mov dword [esp + 0x48], ebp
jle 0x45bd75
fstp st(0)
fstp st(0)
mov eax, dword [esi + 8]
mov ecx, dword [esp + 0x18]
mov ebx, dword [eax + ebp*4]
mov edx, dword [esp + 0x34]
mov eax, dword [esp + 0xb4]
push ecx
mov ecx, dword [esp + 0xb4]
push edx
mov edx, dword [esp + 0x38]
push eax
mov eax, dword [esp + 0xb4]
push ecx
push edx
push eax
call fcn.0045a0f0
add esp, 0x18
test eax, eax
je 0x45bd67
movzx ecx, word [eax + 0x10]
or dword [esp + 0x14], 0x11000
test cl, 1
je 0x45bd41
mov ecx, dword [eax]
or dword [esp + 0x14], 0x40000
test word [ecx + 2], 0x1000
je 0x45bd2a
mov ecx, dword [esp + 0x1c]
imul ecx, ecx, 0x19
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x2c], 1
jmp 0x45bd4d
mov ecx, dword [ecx + 0x10]
test ecx, ecx
je 0x45bd4d
mov edx, dword [ecx]
add edx, 1
imul edx, dword [esp + 0x1c]
mov dword [esp + 0x1c], edx
jmp 0x45bd4d
test cl, cl
jns 0x45bd4d
or dword [esp + 0x14], 0x80000
mov ecx, dword [eax + 0x18]
mov edx, dword [eax + 0x1c]
or dword [esp + 0x20], ecx
or dword [esp + 0x24], edx
add ebp, 1
cmp ebp, dword [esi + 4]
jl 0x45bcb9
fld qword [0x4c3f40]
mov ebx, dword [esp + 0x14]
fld1
fxch st(1)
cmp ebp, dword [esi + 4]
jge 0x45bf5f
mov ecx, dword [esp + 0x18]
fstp st(0)
mov eax, dword [esi + 8]
fstp st(0)
mov edx, dword [esp + 0xb4]
mov ebx, dword [eax + ebp*4]
mov eax, dword [esp + 0xb0]
push ecx
mov ecx, dword [esp + 0x34]
push 0x3c
push edx
mov edx, dword [esp + 0xb4]
push eax
push ecx
push edx
call fcn.0045a0f0
add esp, 0x18
test eax, eax
je 0x45be6e
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0xb4]
mov edx, dword [esp + 0xb0]
push eax
mov eax, dword [esp + 0x34]
push 0x18
push ecx
mov ecx, dword [esp + 0xb4]
push edx
push eax
push ecx
call fcn.0045a0f0
mov edx, dword [esp + 0x30]
mov ecx, dword [esp + 0xc8]
push edx
mov edx, dword [esp + 0x4c]
mov edi, eax
mov eax, dword [esp + 0xd0]
push 0x24
push eax
mov eax, dword [esp + 0xcc]
push ecx
push edx
push eax
call fcn.0045a0f0
add esp, 0x30
test eax, eax
je 0x45be23
test edi, edi
mov dword [esp + 0x3c], 0xb
jne 0x45be2f
test edi, edi
mov dword [esp + 0x3c], 0x21
je 0x45be45
mov ecx, dword [edi + 0x18]
mov edx, dword [edi + 0x1c]
or dword [esp + 0x14], 0x100000
or dword [esp + 0x20], ecx
or dword [esp + 0x24], edx
test eax, eax
je 0x45be5f
mov ecx, dword [eax + 0x18]
mov edx, dword [eax + 0x1c]
or dword [esp + 0x14], 0x200000
or dword [esp + 0x20], ecx
or dword [esp + 0x24], edx
or dword [esp + 0x14], 0x22000
mov edi, dword [esp + 0xbc]
fld qword [0x4c3f40]
mov ebx, dword [esp + 0x14]
fld1
fxch st(1)
mov eax, dword [esp + 0xb8]
test eax, eax
je 0x45bee9
test ebx, 0xc0000
jne 0x45bf8c
mov edx, dword [esp + 0x30]
fstp st(0)
lea ecx, [esp + 0x68]
fstp st(0)
push ecx
push ebp
push eax
mov eax, dword [esp + 0xb4]
mov ecx, dword [eax + 4]
push edx
mov edx, dword [esp + 0xb4]
push esi
push ecx
push edx
call fcn.0045b260
add esp, 0x1c
test eax, eax
je 0x45bf84
mov eax, dword [esp + 0x68]
fld qword [0x4c3f40]
fld1
neg eax
sbb eax, eax
fxch st(1)
and eax, 0x2000000
or eax, 0x1022000
or ebx, eax
mov dword [esp + 0x14], ebx
cmp dword [esp + 0x18], 0
je 0x45bfa5
test ebx, ebx
je 0x45bfa5
mov ecx, dword [esp + 0xac]
mov edi, dword [ecx + 0x28]
mov edx, ecx
mov eax, dword [edx + 0x2c]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x64], eax
mov eax, dword [ecx + 4]
test eax, eax
jle 0x45bf48
mov ebx, dword [ecx + 8]
mov dword [esp + 0x40], eax
mov ecx, dword [ebx]
cmp ecx, 0x3f
jge 0x45bf3e
mov eax, 1
xor edx, edx
call fcn.004add40
not eax
not edx
and edi, eax
and dword [esp + 0x64], edx
add ebx, 4
sub dword [esp + 0x40], 1
jne 0x45bf21
or edi, dword [esp + 0x64]
mov edi, dword [esp + 0xbc]
jne 0x45bf99
or dword [esp + 0x14], 0x800000
jmp 0x45bfa1
cmp byte [esi + 0x18], 0
je 0x45be7c
test ebx, 0xc0000
jne 0x45be7c
or ebx, 0x4000000
mov dword [esp + 0x14], ebx
jmp 0x45be7c
fld1
fld qword [0x4c3f40]
mov dword [esp + 0x4c], 1
jmp 0x45bee9
mov dword [esp + 0x48], 1
mov ebx, dword [esp + 0x14]
mov ecx, dword [esp + 0x44]
mov ecx, dword [ecx + ebp*4]
mov edx, ecx
imul edx, dword [esp + 0x1c]
test edx, edx
mov dword [esp + 0x40], edx
fild dword [esp + 0x40]
jge 0x45bfc5
fadd qword [0x4c4040]
cmp dword [esp + 0x2c], 0
je 0x45c026
mov eax, dword [esp + 0x44]
fld st(0)
mov edx, dword [eax]
fadd st(1)
mov eax, edx
test eax, eax
mov dword [esp + 0x2c], eax
fild dword [esp + 0x2c]
jge 0x45bfea
fadd qword [0x4c4040]
fcompp
fnstsw ax
test ah, 5
jp 0x45c026
shr edx, 1
fstp st(0)
test edx, edx
mov dword [esp + 0x2c], edx
fild dword [esp + 0x2c]
jge 0x45c009
fadd qword [0x4c4040]
test ecx, ecx
mov dword [esp + 0x2c], ecx
fild dword [esp + 0x2c]
jge 0x45c01b
fadd qword [0x4c4040]
fdivr st(1)
call fcn.004893a0
mov dword [esp + 0x1c], eax
mov ecx, dword [esp + 0x44]
fld st(2)
mov edx, dword [ecx]
fld st(2)
test edx, edx
fild dword [ecx]
jge 0x45c03c
fadd qword [0x4c4040]
fcom st(4)
fnstsw ax
test ah, 0x41
je 0x45c04f
fstp st(1)
fstp st(0)
jmp 0x45c064
fxch st(1)
fxch st(2)
fxch st(2)
fadd st(5)
fxch st(1)
fmul st(4)
fcom st(2)
fnstsw ax
test ah, 5
jnp 0x45c04b
fstp st(0)
fstp st(1)
cmp dword [esp + 0x4c], 0
fimul dword [esp + 0x1c]
fadd st(1)
fild dword [esp + 0x3c]
fld st(0)
fmulp st(3)
fld qword [0x4c4028]
fdiv st(3), st(0)
fxch st(1)
fmulp st(2)
fdivp st(1)
je 0x45c0b7
fld st(3)
fld st(3)
fxch st(2)
fcom st(4)
fnstsw ax
test ah, 0x41
je 0x45c09e
fstp st(2)
jmp 0x45c0b3
fxch st(2)
fxch st(1)
fxch st(1)
fadd st(5)
fxch st(2)
fmul st(4)
fcom st(1)
fnstsw ax
test ah, 5
jnp 0x45c09a
fstp st(0)
fxch st(1)
fmul st(1)
faddp st(1)
mov ecx, dword [esp + 0x18]
test ecx, ecx
je 0x45c0d0
cmp dword [esp + 0x48], 0
jne 0x45c0cc
fmul qword [0x4c3fb0]
test ebx, ebx
je 0x45c0fc
fcom qword [edi + 0x10]
fnstsw ax
test ah, 5
jp 0x45c0fc
and ebx, dword [esp + 0x38]
fstp qword [edi + 0x10]
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 0x24]
fstp qword [edi + 0x18]
mov dword [edi + 0x20], eax
mov dword [edi + 0x24], edx
mov dword [edi], ebx
mov dword [edi + 4], ebp
mov dword [edi + 8], ecx
jmp 0x45c100
fstp st(0)
fstp st(0)
mov eax, dword [esp + 0xac]
cmp dword [eax + 0x34], 0
jne 0x45c12c
mov esi, dword [esi + 0x20]
test esi, esi
mov ecx, dword [esp + 0x5c]
mov dword [esp + 0x38], 0xffffcfff
mov dword [esp + 0x34], ecx
mov dword [esp + 0x18], esi
jne 0x45bc79
mov eax, dword [esp + 0xb8]
fstp st(0)
test eax, eax
fstp st(0)
jne 0x45c153
mov edx, dword [esp + 0xa4]
mov ecx, dword [edx]
test dword [ecx + 0xc], 0x100000
je 0x45c153
or dword [edi], 0x2000000
mov edx, dword [esp + 0xb4]
mov ecx, dword [esp + 0xac]
push edi
push eax
mov eax, dword [esp + 0xb8]
push edx
mov edx, dword [esp + 0xb4]
push eax
mov eax, dword [esp + 0xb4]
push ecx
push edx
push eax
call fcn.0045b410
mov ecx, dword [esp + 0x50]
add esp, 0x1c
or dword [edi], ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x90
ret