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

Disassembly:
sub esp, 0x90
fld qword [0x4cf608]
push ebx
push ebp
mov ebp, dword [esp + 0xb4]
push esi
mov esi, dword [esp + 0xa8]
mov eax, dword [esi + 0x18]
mov dword [esp + 0x2c], eax
xor eax, eax
mov dword [ebp], eax
mov dword [ebp + 4], eax
mov dword [ebp + 8], eax
mov dword [ebp + 0xc], eax
mov dword [ebp + 0x18], eax
mov dword [ebp + 0x1c], eax
mov dword [ebp + 0x20], eax
mov dword [ebp + 0x24], eax
fstp qword [ebp + 0x10]
mov cl, byte [esi + 0x15]
not cl
movzx eax, cl
and eax, 8
shl eax, 4
push edi
mov edi, dword [esi + 0x34]
xor ebx, ebx
or eax, 3
cmp edi, ebx
mov dword [esp + 0x50], 0xffffffff
mov dword [esp + 0x5c], eax
je 0x45ad95
fld1
mov dword [esp + 0x18], edi
fld qword [0x4cf480]
mov dword [esp + 0x38], 0xffffcfff
mov dword [esp + 0x34], eax
jmp 0x45ae1b
push 0x34
lea edx, [esp + 0x70]
push ebx
push edx
call fcn.004858f0
mov eax, 1
mov dword [esp + 0x7c], eax
mov dword [esp + 0x64], eax
mov eax, dword [esi + 0xc]
add esp, 0xc
cmp byte [esi + 0x16], bl
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 0x45ade0
mov dword [esp + 0x8c], eax
cmp eax, ebx
je 0x45adef
mov eax, dword [eax + 0xc]
mov ecx, dword [eax]
mov dword [esp + 0x54], ecx
jmp 0x45adf7
mov dword [esp + 0x54], 0xf4240
fld1
lea edi, [esp + 0x6c]
fld qword [0x4cf480]
mov dword [esp + 0x38], 0xfff0ffff
mov dword [esp + 0x34], 3
mov dword [esp + 0x18], ebx
jmp 0x45ae1b
xor ebx, ebx
mov edx, dword [edi + 0xc]
xor esi, esi
cmp dword [edi + 4], esi
mov dword [esp + 0x44], edx
mov dword [esp + 0x14], esi
mov dword [esp + 0x20], ebx
mov dword [esp + 0x24], ebx
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x1c], 1
mov dword [esp + 0x3c], 0x64
mov dword [esp + 0x4c], ebx
mov dword [esp + 0x48], ebx
jle 0x45af0e
fstp st(0)
fstp st(0)
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x34]
mov eax, dword [edi + 8]
mov eax, dword [eax + ebx*4]
push ecx
mov ecx, dword [esp + 0xb8]
push edx
mov edx, dword [esp + 0xb8]
push ecx
mov ecx, dword [esp + 0xb4]
push edx
push eax
mov eax, dword [esp + 0x44]
push eax
push ecx
call fcn.004592c0
add esp, 0x1c
test eax, eax
je 0x45af02
movzx ecx, word [eax + 0x10]
or esi, 0x11000
test cl, 1
je 0x45aede
mov ecx, dword [eax]
or esi, 0x40000
test word [ecx + 2], 0x1000
je 0x45aec7
mov edx, dword [esp + 0x1c]
imul edx, edx, 0x19
mov dword [esp + 0x1c], edx
mov dword [esp + 0x2c], 1
jmp 0x45aee8
mov ecx, dword [ecx + 0x10]
test ecx, ecx
je 0x45aee8
mov ecx, dword [ecx]
add ecx, 1
imul ecx, dword [esp + 0x1c]
mov dword [esp + 0x1c], ecx
jmp 0x45aee8
test cl, cl
jns 0x45aee8
or esi, 0x80000
mov edx, dword [eax + 0x18]
mov eax, dword [eax + 0x1c]
or dword [esp + 0x20], edx
or dword [esp + 0x24], eax
add ebx, 1
cmp ebx, dword [edi + 4]
jl 0x45ae59
fld1
mov dword [esp + 0x14], esi
fld qword [0x4cf480]
cmp ebx, dword [edi + 4]
jge 0x45b0fe
mov edx, dword [esp + 0x18]
fstp st(0)
mov ecx, dword [edi + 8]
fstp st(0)
mov esi, dword [ecx + ebx*4]
mov eax, dword [esp + 0xb4]
mov ecx, dword [esp + 0xb0]
push edx
mov edx, dword [esp + 0x34]
push 0x3c
push eax
mov eax, dword [esp + 0xb4]
push ecx
push esi
push edx
push eax
call fcn.004592c0
add esp, 0x1c
test eax, eax
je 0x45b00d
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0xb4]
mov eax, dword [esp + 0xb0]
push ecx
mov ecx, dword [esp + 0x34]
push 0x18
push edx
mov edx, dword [esp + 0xb4]
push eax
push esi
push ecx
push edx
call fcn.004592c0
mov ecx, dword [esp + 0xd0]
mov edx, dword [esp + 0xcc]
add esp, 0x1c
mov ebp, eax
mov eax, dword [esp + 0x18]
push eax
mov eax, dword [esp + 0x34]
push 0x24
push ecx
mov ecx, dword [esp + 0xb4]
push edx
push esi
push eax
push ecx
call fcn.004592c0
add esp, 0x1c
test eax, eax
je 0x45afc2
test ebp, ebp
mov dword [esp + 0x3c], 0xb
jne 0x45afce
test ebp, ebp
mov dword [esp + 0x3c], 0x21
je 0x45afe4
mov edx, dword [ebp + 0x18]
mov ecx, dword [ebp + 0x1c]
or dword [esp + 0x14], 0x100000
or dword [esp + 0x20], edx
or dword [esp + 0x24], ecx
test eax, eax
je 0x45affe
mov edx, dword [eax + 0x18]
mov eax, dword [eax + 0x1c]
or dword [esp + 0x14], 0x200000
or dword [esp + 0x20], edx
or dword [esp + 0x24], eax
or dword [esp + 0x14], 0x22000
mov ebp, dword [esp + 0xbc]
fld qword [0x4cf480]
mov esi, dword [esp + 0x14]
fld1
fxch st(1)
mov eax, dword [esp + 0xb8]
test eax, eax
je 0x45b088
test esi, 0xc0000
jne 0x45b12b
mov edx, dword [esp + 0x30]
fstp st(0)
lea ecx, [esp + 0x68]
fstp st(0)
push ecx
push ebx
push eax
mov eax, dword [esp + 0xb4]
mov ecx, dword [eax + 4]
push edx
mov edx, dword [esp + 0xb4]
push edi
push ecx
push edx
call fcn.0045a420
add esp, 0x1c
test eax, eax
je 0x45b123
mov eax, dword [esp + 0x68]
fld qword [0x4cf480]
fld1
neg eax
sbb eax, eax
fxch st(1)
and eax, 0x2000000
or eax, 0x1022000
or esi, eax
mov dword [esp + 0x14], esi
cmp dword [esp + 0x18], 0
je 0x45b144
test esi, esi
je 0x45b144
mov ecx, dword [esp + 0xac]
mov ebp, 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 0x45b0e7
mov esi, dword [ecx + 8]
mov dword [esp + 0x40], eax
mov ecx, dword [esi]
cmp ecx, 0x3f
jge 0x45b0dd
mov eax, 1
xor edx, edx
call fcn.004b8f40
not eax
not edx
and ebp, eax
and dword [esp + 0x64], edx
add esi, 4
sub dword [esp + 0x40], 1
jne 0x45b0c0
or ebp, dword [esp + 0x64]
mov ebp, dword [esp + 0xbc]
jne 0x45b138
or dword [esp + 0x14], 0x800000
jmp 0x45b140
cmp byte [edi + 0x18], 0
je 0x45b01b
test esi, 0xc0000
jne 0x45b01b
or esi, 0x4000000
mov dword [esp + 0x14], esi
jmp 0x45b01b
fld1
fld qword [0x4cf480]
mov dword [esp + 0x4c], 1
jmp 0x45b088
mov dword [esp + 0x48], 1
mov esi, dword [esp + 0x14]
mov ecx, dword [esp + 0x44]
mov ecx, dword [ecx + ebx*4]
mov edx, ecx
imul edx, dword [esp + 0x1c]
test edx, edx
mov dword [esp + 0x40], edx
fild dword [esp + 0x40]
jge 0x45b164
fadd qword [0x4cf600]
cmp dword [esp + 0x2c], 0
je 0x45b1c5
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 0x45b189
fadd qword [0x4cf600]
fcompp
fnstsw ax
test ah, 5
jp 0x45b1c5
shr edx, 1
fstp st(0)
test edx, edx
mov dword [esp + 0x2c], edx
fild dword [esp + 0x2c]
jge 0x45b1a8
fadd qword [0x4cf600]
test ecx, ecx
mov dword [esp + 0x2c], ecx
fild dword [esp + 0x2c]
jge 0x45b1ba
fadd qword [0x4cf600]
fdivr st(1)
call fcn.0048c290
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 0x45b1db
fadd qword [0x4cf600]
fcom st(4)
fnstsw ax
test ah, 0x41
je 0x45b1ee
fstp st(1)
fstp st(0)
jmp 0x45b203
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 0x45b1ea
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 [0x4cf5e8]
fdiv st(3), st(0)
fxch st(1)
fmulp st(2)
fdivp st(1)
je 0x45b256
fld st(3)
fld st(3)
fxch st(2)
fcom st(4)
fnstsw ax
test ah, 0x41
je 0x45b23d
fstp st(2)
jmp 0x45b252
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 0x45b239
fstp st(0)
fxch st(1)
fmul st(1)
faddp st(1)
mov ecx, dword [esp + 0x18]
test ecx, ecx
je 0x45b26f
cmp dword [esp + 0x48], 0
jne 0x45b26b
fmul qword [0x4cf518]
test esi, esi
je 0x45b29c
fcom qword [ebp + 0x10]
fnstsw ax
test ah, 5
jp 0x45b29c
and esi, dword [esp + 0x38]
fstp qword [ebp + 0x10]
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 0x24]
fstp qword [ebp + 0x18]
mov dword [ebp + 0x20], eax
mov dword [ebp + 0x24], edx
mov dword [ebp], esi
mov dword [ebp + 4], ebx
mov dword [ebp + 8], ecx
jmp 0x45b2a0
fstp st(0)
fstp st(0)
mov eax, dword [esp + 0xac]
cmp dword [eax + 0x34], 0
jne 0x45b2cc
mov edi, dword [edi + 0x20]
test edi, edi
mov ecx, dword [esp + 0x5c]
mov dword [esp + 0x38], 0xffffcfff
mov dword [esp + 0x34], ecx
mov dword [esp + 0x18], edi
jne 0x45ae19
mov eax, dword [esp + 0xb8]
fstp st(0)
test eax, eax
fstp st(0)
jne 0x45b2f4
mov edx, dword [esp + 0xa4]
mov ecx, dword [edx]
test dword [ecx + 0xc], 0x100000
je 0x45b2f4
or dword [ebp], 0x2000000
mov edx, dword [esp + 0xb4]
mov ecx, dword [esp + 0xac]
push ebp
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.0045a5d0
mov ecx, dword [esp + 0x50]
add esp, 0x1c
or dword [ebp], ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x90
ret