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

Disassembly:
mov eax, dword [esp + 0x18]
sub esp, 0x1b0
push ebx
mov ebx, dword [esp + 0x1c0]
push ebp
mov ebp, dword [esp + 0x1bc]
push esi
mov esi, dword [esp + 0x1c4]
test esi, esi
push edi
je 0x446c3e
test ebx, ebx
jbe 0x446c3e
cmp word [esi], 0
je 0x446c3e
cmp dword [esp + 0x1e4], 0
je 0x446c3e
fldz
push ebp
fstp dword [esp + 0x60]
call fcn.00445980
test eax, eax
jne 0x446ca5
fld dword [0x6c0e68]
fld st(0)
fld dword [esp + 0x1e8]
fucom st(1)
fnstsw ax
fstp st(1)
test ah, 0x44
fld dword [esp + 0x1f4]
fld dword [esp + 0x1f0]
fld dword [esp + 0x1ec]
jp 0x445bf4
fld st(4)
fucomp st(2)
fnstsw ax
test ah, 0x44
jp 0x445bf4
fld st(4)
fucomp st(3)
fnstsw ax
test ah, 0x44
jp 0x445bf4
fld st(4)
mov byte [esp + 0x16], 1
fucomp st(1)
fnstsw ax
test ah, 0x44
jnp 0x445bf9
mov byte [esp + 0x16], 0
fld st(4)
fucomp st(4)
fnstsw ax
fldz
test ah, 0x44
jp 0x445d21
fld st(5)
fucomp st(3)
fnstsw ax
test ah, 0x44
jp 0x445d21
fld st(5)
fucomp st(4)
fnstsw ax
fstp st(3)
test ah, 0x44
jp 0x445d29
fucomp st(4)
fnstsw ax
fstp st(3)
test ah, 0x44
jp 0x445d2d
cmp dword [ebp + 0x54], 0
fstp st(1)
fstp st(1)
je 0x445cc7
mov eax, dword [ebp + 0x5c]
mov ecx, dword [ebp + 0x60]
mov edx, dword [ebp + 0x4c]
mov dword [esp + 0x60], eax
fild dword [esp + 0x60]
mov dword [esp + 0x64], ecx
add edx, eax
mov eax, dword [ebp + 0x50]
fstp dword [esp + 0x28]
fild dword [esp + 0x64]
mov dword [esp + 0x68], edx
add eax, ecx
mov ecx, dword [esp + 0x28]
fstp dword [esp + 0x2c]
mov edx, dword [esp + 0x2c]
fild dword [esp + 0x68]
mov dword [esp + 0x6c], eax
mov dword [esp + 0x1e8], ecx
mov dword [esp + 0x1ec], edx
fstp dword [esp + 0x30]
mov eax, dword [esp + 0x30]
fild dword [esp + 0x6c]
mov dword [esp + 0x1f0], eax
fstp dword [esp + 0x34]
mov ecx, dword [esp + 0x34]
fld dword [esp + 0x30]
mov dword [esp + 0x1f4], ecx
fld st(0)
fsubrp st(2)
fxch st(1)
fstp dword [esp + 0x40]
fsub dword [esp + 0x28]
jmp 0x445d3b
fstp st(0)
fld dword [0x6c138c]
fst dword [esp + 0x28]
mov edx, dword [esp + 0x28]
fstp dword [esp + 0x2c]
mov eax, dword [esp + 0x2c]
fld dword [0x6c1388]
mov dword [esp + 0x1e8], edx
fst dword [esp + 0x30]
mov ecx, dword [esp + 0x30]
fstp dword [esp + 0x34]
mov edx, dword [esp + 0x34]
fld dword [0x6c1548]
mov dword [esp + 0x1ec], eax
fst dword [esp + 0x54]
mov dword [esp + 0x1f0], ecx
fstp dword [esp + 0x40]
mov dword [esp + 0x1f4], edx
jmp 0x445d3f
fstp st(5)
fstp st(2)
fstp st(1)
jmp 0x445d2f
fstp st(4)
fstp st(3)
fxch st(2)
fld st(0)
fsubrp st(3)
fxch st(2)
fstp dword [esp + 0x40]
fsubp st(1)
fstp dword [esp + 0x54]
cmp ebx, 0x7ffffff
jbe 0x445d74
mov eax, dword [ebp + 0xcc]
test eax, eax
je 0x445f0c
push eax
call fcn.00607c35
add esp, 4
and dword [ebp + 0xd0], 1
mov dword [ebp + 0xcc], 0
jmp 0x445f0c
mov eax, dword [ebp + 0xd0]
mov ecx, eax
shr eax, 1
and ecx, 1
cmp ebx, eax
je 0x445f0c
test ecx, ecx
je 0x445e19
xor ecx, ecx
mov eax, ebx
mov edx, 0x10
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.00608276
mov esi, eax
add esp, 4
test esi, esi
je 0x445ef8
mov eax, dword [ebp + 0xd0]
shr eax, 1
cmp eax, ebx
jbe 0x445dc4
mov eax, ebx
test eax, eax
jbe 0x445dfb
xor ecx, ecx
mov edx, eax
lea esp, [esp]
mov eax, dword [ebp + 0xcc]
mov edi, dword [eax + ecx]
add eax, ecx
mov dword [ecx + esi], edi
mov edi, dword [eax + 4]
mov dword [ecx + esi + 4], edi
mov edi, dword [eax + 8]
mov dword [ecx + esi + 8], edi
mov eax, dword [eax + 0xc]
mov dword [ecx + esi + 0xc], eax
add ecx, 0x10
sub edx, 1
jne 0x445dd0
mov eax, dword [ebp + 0xcc]
test eax, eax
je 0x445e0e
push eax
call fcn.00607c35
add esp, 4
mov dword [ebp + 0xcc], esi
jmp 0x445ef8
mov edi, 1
cmp ebx, edi
jb 0x445e28
add edi, edi
cmp edi, ebx
jbe 0x445e22
mov ecx, eax
test ecx, ecx
mov dword [esp + 0x18], ecx
fild dword [esp + 0x18]
jge 0x445e3c
fadd dword [0x6c0a38]
fstp dword [esp + 0x4c]
mov ecx, dword [esp + 0x4c]
shr ecx, 0x17
and ecx, 0xff
sub ecx, 0x7f
js 0x445e5b
mov edx, 1
shl edx, cl
jmp 0x445e5d
xor edx, edx
cmp edx, eax
jae 0x445e63
add edx, edx
cmp edx, edi
je 0x445ef8
xor esi, esi
test edi, edi
je 0x445edb
xor ecx, ecx
mov eax, edi
mov edx, 0x10
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.00608276
mov esi, eax
add esp, 4
test esi, esi
je 0x445d47
mov eax, dword [ebp + 0xd0]
shr eax, 1
cmp eax, edi
ja 0x445ea4
mov edi, eax
test edi, edi
jbe 0x445edb
xor ecx, ecx
mov edx, edi
lea esp, [esp]
mov eax, dword [ebp + 0xcc]
mov edi, dword [eax + ecx]
add eax, ecx
mov dword [ecx + esi], edi
mov edi, dword [eax + 4]
mov dword [ecx + esi + 4], edi
mov edi, dword [eax + 8]
mov dword [ecx + esi + 8], edi
mov eax, dword [eax + 0xc]
mov dword [ecx + esi + 0xc], eax
add ecx, 0x10
sub edx, 1
jne 0x445eb0
mov eax, dword [ebp + 0xcc]
test eax, eax
je 0x445eee
push eax
call fcn.00607c35
add esp, 4
test esi, esi
mov dword [ebp + 0xcc], esi
je 0x445f0c
mov ecx, dword [ebp + 0xd0]
lea edx, [ebx + ebx]
and ecx, 1
or ecx, edx
mov dword [ebp + 0xd0], ecx
cmp ebx, 0x1fffffff
jbe 0x445f41
mov eax, dword [ebp + 0xd4]
test eax, eax
je 0x44601a
push eax
call fcn.0045da90
add esp, 4
and dword [ebp + 0xd8], 1
mov dword [ebp + 0xd4], 0
jmp 0x44601a
mov eax, dword [ebp + 0xd8]
mov ecx, eax
shr eax, 1
and ecx, 1
cmp ebx, eax
je 0x44601a
test ecx, ecx
je 0x445f90
mov ecx, dword [ebp + 0xd4]
lea eax, [ebx*4]
push eax
push ecx
call fcn.0045d790
mov edx, dword [ebp + 0xd8]
mov dword [ebp + 0xd4], eax
and edx, 1
lea eax, [ebx + ebx]
add esp, 8
or edx, eax
mov dword [ebp + 0xd8], edx
jmp 0x44601a
mov esi, 1
cmp ebx, esi
jb 0x445fa6
lea esp, [esp]
add esi, esi
cmp esi, ebx
jbe 0x445fa0
mov ecx, eax
test ecx, ecx
mov dword [esp + 0x18], ecx
fild dword [esp + 0x18]
jge 0x445fba
fadd dword [0x6c0a38]
fstp dword [esp + 0x4c]
mov ecx, dword [esp + 0x4c]
shr ecx, 0x17
and ecx, 0xff
sub ecx, 0x7f
js 0x445fd9
mov edx, 1
shl edx, cl
jmp 0x445fdb
xor edx, edx
cmp edx, eax
jae 0x445fe1
add edx, edx
cmp edx, esi
je 0x446006
mov eax, dword [ebp + 0xd4]
lea edx, [esi*4]
push edx
push eax
call fcn.0045d790
add esp, 8
test eax, eax
mov dword [ebp + 0xd4], eax
je 0x44601a
mov ecx, dword [ebp + 0xd8]
and ecx, 1
lea edx, [ebx + ebx]
or ecx, edx
mov dword [ebp + 0xd8], ecx
mov eax, dword [ebp + 0xc4]
and eax, 0x18000
cmp eax, 0x10000
jne 0x44603f
mov ecx, dword [ebp + 0x84]
cmp ecx, dword [ebp + 0x88]
mov byte [esp + 0x78], 1
jne 0x446044
mov byte [esp + 0x78], 0
cmp byte [ebp + 0x75], 0
lea edi, [ebp + 0x8c]
mov byte [esp + 0x14], 0
mov ecx, edi
je 0x446060
xor eax, eax
call fcn.005572d0
jmp 0x44608d
mov eax, dword [ebp + 0x78]
shl eax, 0x10
call fcn.005572d0
cmp byte [ebp + 0x81], 0
jne 0x44607d
cmp byte [ebp + 0x82], 0
je 0x446088
cmp dword [ebp + 0x78], 0
mov byte [esp + 0x14], 1
jne 0x44608d
mov byte [esp + 0x14], 0
cmp byte [ebp + 0x81], 0
je 0x4460a1
cmp byte [esp + 0x14], 0
jne 0x4460a1
mov al, 1
jmp 0x4460a3
xor al, al
push eax
mov eax, edi
call fcn.00557220
cmp byte [ebp + 0x82], 0
je 0x4460bf
cmp byte [esp + 0x14], 0
jne 0x4460bf
mov al, 1
jmp 0x4460c1
xor al, al
push eax
mov eax, edi
call fcn.00557250
mov eax, 1
mov ecx, edi
call fcn.00557380
mov eax, dword [ebp + 0xcc]
mov esi, dword [esp + 0x1c8]
mov ecx, dword [ebp + 0xd4]
push eax
push esi
push edi
mov edx, ebx
call fcn.00557b90
xor edx, edx
cmp eax, edx
ja 0x446108
or eax, 0xffffffff
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1b0
ret 0x34
mov ecx, dword [esp + 0x1e4]
cmp ecx, 0xffffffff
je 0x446118
cmp ecx, eax
jbe 0x44611f
mov dword [esp + 0x1e4], eax
cmp dword [ebp + 0x54], edx
jne 0x446131
cmp dword [esp + 0x1d8], edx
je 0x446ca3
fild dword [ebp + 0x90]
mov dword [esp + 0x44], edx
mov dword [esp + 0x48], edx
lea edx, [esp + 0xb8]
fmul qword [0x6c0cd0]
push edx
push ebx
push esi
fstp dword [esp + 0x80]
fldz
fstp dword [esp + 0x40]
call fcn.005579d0
fild dword [esp + 0xbc]
lea ecx, [esp + 0xf4]
mov byte [esp + 0x1f], 1
fmul qword [0x6c0cd0]
fchs
fstp dword [esp + 0xa8]
call fcn.00555d10
lea eax, [esp + 0x118]
push eax
call fcn.00553570
cmp dword [ebp + 0x54], 0
je 0x446353
mov ecx, dword [ebp + 0x50]
mov edx, dword [ebp + 0x4c]
push ecx
xor eax, eax
push edx
lea ebx, [eax + 6]
lea esi, [esp + 0xfc]
call fcn.00555f50
mov eax, dword [ebp + 0x54]
xor ebx, ebx
push ebx
push eax
mov edi, esi
call fcn.005560a0
mov ecx, esi
push ecx
lea ecx, [esp + 0x11c]
call fcn.00553970
mov ecx, dword [ebp + 0x84]
lea eax, [ebp + 0x8c]
call fcn.005572a0
lea eax, [esp + 0xcc]
call fcn.00558b50
fld dword [0x6c0e68]
mov edx, dword [esp + 0x1d4]
fld st(0)
fcomp dword [edx]
mov esi, edx
fnstsw ax
test ah, 0x44
jp 0x44624a
fld st(0)
fcomp dword [esi + 8]
fnstsw ax
test ah, 0x44
jp 0x44624a
fcom dword [esi + 0xc]
fnstsw ax
test ah, 0x44
jp 0x44624a
fcomp dword [esi + 4]
fnstsw ax
test ah, 0x44
jp 0x44624c
mov eax, dword [ebp + 0x4c]
mov ecx, dword [ebp + 0x50]
shl eax, 0x10
shl ecx, 0x10
mov dword [esp + 0x60], ebx
mov dword [esp + 0x64], ebx
mov dword [esp + 0x68], eax
mov dword [esp + 0x6c], ecx
jmp 0x446289
fstp st(0)
fld dword [esi]
fld qword [0x6c0c20]
fmul st(1), st(0)
fxch st(1)
call fcn.0066a3f0
fld dword [esi + 4]
fmul st(1)
mov dword [esp + 0x60], eax
call fcn.0066a3f0
fld dword [esi + 8]
fmul st(1)
mov dword [esp + 0x64], eax
call fcn.0066a3f0
fmul dword [esi + 0xc]
mov dword [esp + 0x68], eax
call fcn.0066a3f0
mov dword [esp + 0x6c], eax
push 1
lea eax, [esp + 0x64]
push eax
lea ecx, [esp + 0x120]
call fcn.005541d0
mov esi, dword [esp + 0x1d0]
fld dword [esi + 8]
fld qword [0x6c0c20]
fmul st(1), st(0)
fxch st(1)
call fcn.0066a3f0
fld dword [esi + 0x14]
fmul st(1)
mov dword [esp + 0xd4], eax
call fcn.0066a3f0
fld dword [esi]
fmul st(1)
mov dword [esp + 0xe0], eax
call fcn.0066a3f0
fld dword [esi + 0x10]
fmul st(1)
mov dword [esp + 0xcc], eax
call fcn.0066a3f0
fld dword [esi + 4]
fmul st(1)
mov dword [esp + 0xdc], eax
call fcn.0066a3f0
fld dword [esi + 0xc]
fmul st(1)
mov dword [esp + 0xd0], eax
call fcn.0066a3f0
fld dword [esi + 0x18]
fmul st(1)
mov dword [esp + 0xd8], eax
call fcn.0066a3f0
fmul dword [esi + 0x1c]
mov dword [esp + 0xe4], eax
call fcn.0066a3f0
lea ecx, [esp + 0xcc]
push ecx
lea ecx, [esp + 0x11c]
mov dword [esp + 0xec], eax
mov byte [esp + 0xf4], 0x80
call fcn.00554190
mov esi, dword [esp + 0x1c8]
fld1
mov edx, esi
fstp dword [esp + 0x7c]
mov dword [esp + 0x50], 0xffffffff
fld dword [0x6c0e68]
fst dword [esp + 0x80]
fstp dword [esp + 0x4c]
call fcn.004c3c30
test al, al
je 0x44638d
mov esi, ebp
call fcn.004453a0
test eax, eax
mov byte [esp + 0x1e], 1
je 0x446392
mov byte [esp + 0x1e], 0
mov edx, dword [esp + 0x1c8]
fld dword [esp + 0x74]
cmp word [edx], 0
je 0x446aea
cmp byte [esp + 0x1dc], 0
fstp st(0)
fldz
mov esi, dword [esp + 0x44]
fst dword [esp + 0x84]
sete byte [esp + 0x3b]
fst dword [esp + 0x88]
mov edi, edx
fst dword [esp + 0x8c]
fst dword [esp + 0x90]
fst dword [esp + 0xb0]
fst dword [esp + 0xb4]
jmp 0x4463f4
fstp st(0)
fldz
cmp byte [esp + 0x1e], 0
mov al, byte [esp + 0x3b]
mov ecx, dword [esp + 0x84]
mov edx, dword [esp + 0x88]
mov byte [esp + 0x17], al
mov eax, dword [esp + 0x8c]
mov dword [esp + 0x28], ecx
mov ecx, dword [esp + 0x90]
mov dword [esp + 0x2c], edx
mov edx, dword [esp + 0xb0]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0xb4]
mov ebx, esi
mov dword [esp + 0x18], ebx
mov dword [esp + 0x3c], 0xffffffff
mov dword [esp + 0x34], ecx
mov dword [esp + 0x98], edx
mov dword [esp + 0x9c], eax
je 0x44649b
lea ecx, [esp + 0x98]
push ecx
lea edx, [esp + 0x2c]
push edx
lea eax, [esp + 0xb4]
push eax
lea ecx, [esp + 0x5c]
push ecx
lea edx, [esp + 0x58]
push edx
lea eax, [esp + 0x2b]
push eax
push ecx
fstp dword [esp]
fld dword [esp + 0x5c]
call fcn.0066a3f0
push eax
lea ecx, [esp + 0x64]
push ecx
mov ecx, edi
mov eax, ebp
call fcn.00445820
jmp 0x4464dc
lea edx, [esp + 0x98]
push edx
lea eax, [esp + 0x2c]
push eax
lea ecx, [esp + 0x44]
push ecx
lea edx, [esp + 0x5c]
push edx
lea eax, [esp + 0x58]
push eax
lea ecx, [esp + 0x2b]
push ecx
push ecx
fstp dword [esp]
fld dword [esp + 0x5c]
call fcn.0066a3f0
push eax
push edi
push ebp
lea eax, [esp + 0xd4]
lea ecx, [esp + 0x6c]
call fcn.004453d0
mov esi, eax
test esi, esi
jne 0x446a8c
cmp byte [esp + 0x1e0], al
fld dword [esp + 0x54]
fstp dword [esp + 0x40]
jne 0x446519
cmp byte [esp + 0x16], al
jne 0x446519
fld dword [esp + 0x34]
fadd dword [esp + 0x5c]
fld dword [esp + 0x1f4]
fcompp
fnstsw ax
test ah, 0x41
jnp 0x446ae6
cmp dword [ebp + 0x6c], 3
mov esi, dword [esp + 0x44]
jne 0x44652f
xor edx, edx
cmp word [edi + esi*2], dx
sete dl
mov dword [ebp + 0x6c], edx
cmp dword [ebp + 0x54], 0
je 0x4469c7
sub esi, ebx
add esi, 1
cmp dword [esp + 0x3c], 0
jl 0x446558
cmp esi, 2
jb 0x446556
cmp dword [esp + 0x50], 0
jl 0x446558
cmp esi, 3
jae 0x446558
xor esi, esi
xor edi, edi
lea eax, [esp + 0x20]
call fcn.0045b460
cmp byte [esp + 0x1e], 0
mov byte [esp + 0x15], 0
jne 0x446706
cmp dword [esp + 0x50], 0
mov edi, esi
jl 0x446607
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x1c8]
sub eax, ebx
lea edx, [ecx + ebx*2]
mov dword [esp + 0x70], eax
push edx
lea eax, [esp + 0x98]
call fcn.0045b400
mov eax, dword [esp + 0x94]
test eax, eax
je 0x4465b1
add eax, 4
jmp 0x4465b3
xor eax, eax
push eax
lea eax, [esp + 0xa8]
call fcn.0045b390
mov esi, eax
lea eax, [esp + 0x20]
call fcn.004017d0
lea edi, [esp + 0xa4]
call fcn.00401700
xor esi, esi
lea eax, [esp + 0x70]
lea ecx, [esp + 0x20]
mov dword [esp + 0xa4], esi
call fcn.0045b5e0
sub dword [esp + 0x48], 1
lea edi, [esp + 0x94]
call fcn.00401700
mov dword [esp + 0x94], esi
jmp 0x446640
mov eax, dword [esp + 0x1c8]
lea ecx, [eax + ebx*2]
push ecx
lea eax, [esp + 0xa4]
call fcn.0045b400
mov esi, eax
lea eax, [esp + 0x20]
call fcn.004017d0
lea edi, [esp + 0xa0]
call fcn.00401700
mov dword [esp + 0xa0], 0
mov eax, dword [esp + 0x1e4]
mov ecx, dword [esp + 0x48]
add eax, 0xffffffff
cmp ecx, eax
ja 0x446654
mov eax, ecx
sub eax, ebx
lea edx, [eax + eax + 2]
mov eax, dword [esp + 0x20]
test eax, eax
mov dword [esp + 0x3c], edx
je 0x446682
mov ecx, dword [eax]
and ecx, 0xffffff00
cmp ecx, 0x200
jb 0x446682
cmp word [eax + 4], 0
mov byte [esp + 0x15], 0
jne 0x446687
mov byte [esp + 0x15], 1
lea esi, [esp + 0x20]
call fcn.0040cb70
mov ebx, eax
lea esi, [ebp + 0x8c]
mov eax, 1
mov ecx, esi
mov dword [esp + 0x70], 0
call fcn.00557380
mov eax, dword [esp + 0x20]
test eax, eax
je 0x4466d3
mov edx, dword [eax]
and edx, 0xffffff00
cmp edx, 0x200
jb 0x4466d3
cmp word [eax + 4], 0
je 0x4466d3
test ebx, ebx
je 0x446ab3
cmp byte [esp + 0x15], 0
jne 0x4466e2
test ebx, ebx
je 0x446ab3
fldz
mov eax, dword [ebp + 0x6c]
cmp eax, 2
fstp dword [esp + 0x24]
jne 0x446736
fld dword [esp + 0x54]
fld dword [esp + 0x30]
fsub dword [esp + 0x28]
fstp dword [esp + 0x24]
fsub dword [esp + 0x24]
jmp 0x446755
mov eax, dword [ebp + 0x108]
mov ebx, dword [ebp + 0xfc]
mov dword [esp + 0x70], eax
mov eax, dword [ebp + 0x104]
add eax, eax
mov dword [esp + 0x3c], eax
lea esi, [ebp + 0x8c]
mov eax, 2
mov ecx, esi
call fcn.00557380
jmp 0x4466da
cmp eax, 1
jne 0x446759
fld dword [esp + 0x54]
fld dword [esp + 0x30]
fsub dword [esp + 0x28]
fstp dword [esp + 0x24]
fsub dword [esp + 0x24]
fmul qword [0x69f210]
fstp dword [esp + 0x24]
cmp byte [esp + 0x15], 0
jne 0x446864
cmp byte [esp + 0x14], 0
je 0x4467b4
fld dword [esp + 0x98]
mov ecx, dword [esp + 0x78]
fadd qword [0x6c0a98]
mov edx, dword [esp + 0x3c]
push ecx
push ecx
fadd dword [esp + 0x2c]
push 0
push edx
push ebx
fstp dword [esp + 0x74]
mov edi, esi
fld dword [esp + 0x70]
fstp dword [esp + 0x78]
call fcn.005579d0
add esp, 4
push eax
lea eax, [esp + 0x68]
push eax
lea ecx, [esp + 0x124]
push ecx
push ebp
call fcn.00447da0
cmp byte [esp + 0x78], 0
je 0x4467d1
xor eax, eax
mov ecx, esi
call fcn.00557280
mov ecx, dword [ebp + 0x84]
mov eax, esi
call fcn.005572a0
fld dword [esp + 0x9c]
fadd dword [esp + 0x5c]
fld qword [0x6c0c20]
fmul st(1), st(0)
fxch st(1)
call fcn.0066a3f0
fld dword [esp + 0x98]
fadd qword [0x6c0a98]
mov edi, eax
fadd dword [esp + 0x24]
fmulp st(1)
call fcn.0066a3f0
mov edx, dword [esp + 0x70]
push edx
push esi
push edi
push eax
mov dword [esp + 0xd8], eax
mov eax, dword [esp + 0x4c]
push eax
push ebx
lea ecx, [esp + 0x130]
call fcn.00555350
cmp byte [esp + 0x78], 0
je 0x446864
mov eax, 1
mov ecx, esi
call fcn.00557280
mov ecx, dword [ebp + 0x88]
mov eax, esi
call fcn.005572a0
mov ecx, dword [esp + 0xc8]
mov edx, dword [esp + 0x3c]
push 0
push esi
push edi
push ecx
push edx
push ebx
lea ecx, [esp + 0x130]
call fcn.00555350
mov eax, dword [esp + 0x50]
test eax, eax
jl 0x4469ab
cmp dword [esp + 0x18], eax
jg 0x4469ab
cmp eax, dword [esp + 0x44]
jg 0x4469ab
fld dword [esp + 0x98]
mov edi, dword [ebp + 0xc4]
fadd qword [0x6c0a98]
mov ebx, dword [ebp + 0xb8]
shr edi, 0xf
and edi, 3
fadd dword [esp + 0x24]
fadd dword [esp + 0xac]
fstp dword [esp + 0x18]
fld dword [esp + 0x18]
fld st(0)
fld qword [0x6c0c20]
fmul st(1), st(0)
fxch st(1)
call fcn.0066a3f0
fld dword [esp + 0x5c]
fadd dword [esp + 0x74]
mov dword [esp + 0xb8], eax
fld dword [esp + 0xa8]
fld qword [0x6c1540]
fmul st(1)
fsubr st(2)
fmul st(3)
call fcn.0066a3f0
fxch st(3)
fadd qword [0x6c10e0]
mov dword [esp + 0xbc], eax
fmul st(2)
call fcn.0066a3f0
fxch st(2)
fmul qword [0x6c1210]
mov dword [esp + 0xc0], eax
faddp st(2)
fmulp st(1)
call fcn.0066a3f0
cmp byte [ebp + 0x75], 0
mov dword [esp + 0xc4], eax
jne 0x446936
mov eax, dword [ebp + 0x7c]
shl eax, 0x10
mov ecx, esi
call fcn.005572d0
mov ecx, 0xff000000
mov eax, esi
call fcn.005572a0
mov eax, 2
mov ecx, esi
call fcn.00557280
push esi
lea eax, [esp + 0xbc]
push eax
lea ecx, [esp + 0x120]
call fcn.00554a50
or ecx, 0xffffffff
mov eax, esi
call fcn.005572a0
mov eax, 1
mov ecx, esi
call fcn.00557280
push esi
lea ecx, [esp + 0xbc]
push ecx
lea ecx, [esp + 0x120]
call fcn.00554a50
mov ecx, ebx
mov eax, esi
call fcn.005572a0
mov eax, edi
mov ecx, esi
call fcn.00557280
mov eax, dword [ebp + 0x78]
shl eax, 0x10
call fcn.005572d0
lea edi, [esp + 0x20]
call fcn.00401700
mov esi, dword [esp + 0x44]
mov edi, dword [esp + 0x1c8]
mov dword [esp + 0x20], 0
fld dword [esp + 0x28]
sub esp, 8
fstp dword [esp + 4]
fld dword [esp + 0x84]
fstp dword [esp]
call fcn.00412520
fstp dword [esp + 0x84]
fld dword [esp + 0x38]
fstp dword [esp + 4]
fld dword [esp + 0x88]
fstp dword [esp]
call fcn.00412550
fstp dword [esp + 0x88]
add esp, 8
cmp byte [esp + 0x1f], 0
fld dword [esp + 0x5c]
fld dword [esp + 0x74]
fld st(0)
faddp st(2)
fxch st(1)
fstp dword [esp + 0x18]
fld dword [esp + 0x18]
fadd dword [ebp + 0x70]
fstp dword [esp + 0x5c]
je 0x446a56
cmp byte [ebp + 0x80], 0
je 0x446a49
fld st(0)
fld dword [esp + 0xa8]
fmul qword [0x6c1540]
fsubp st(1)
jmp 0x446a4d
fld dword [esp + 0x2c]
fstp dword [esp + 0x4c]
mov byte [esp + 0x1f], 0
cmp byte [esp + 0x17], 0
je 0x446aea
mov edx, dword [esp + 0x1e4]
add edx, 0xffffffff
cmp dword [esp + 0x48], edx
ja 0x446aea
cmp word [edi + esi*2], 0
je 0x446aea
add esi, 1
cmp word [edi + esi*2], 0
mov dword [esp + 0x44], esi
jne 0x4463f0
jmp 0x446aea
lea ecx, [esp + 0x118]
call fcn.005536d0
lea ecx, [esp + 0xf4]
call fcn.00555d60
mov eax, esi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1b0
ret 0x34
lea edi, [esp + 0x20]
call fcn.00401700
lea ecx, [esp + 0x118]
call fcn.005536d0
lea ecx, [esp + 0xf4]
call fcn.00555d60
mov eax, 4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1b0
ret 0x34
fld dword [esp + 0x74]
mov esi, dword [esp + 0x1d8]
test esi, esi
je 0x446c15
fldz
fld dword [esp + 0x5c]
fcom st(1)
fnstsw ax
fstp st(1)
test ah, 0x41
jne 0x446b4e
fsub dword [ebp + 0x70]
fstp dword [esp + 0x5c]
fld dword [esp + 0x34]
fcom st(1)
fnstsw ax
test ah, 0x41
jne 0x446b2a
fsubrp st(1)
fadd dword [esp + 0x5c]
fstp dword [esp + 0x5c]
jmp 0x446b2e
fstp st(1)
fstp st(0)
fld dword [esp + 0x7c]
fstp dword [esi]
fld dword [esp + 0x80]
fstp dword [esi + 8]
fld dword [esp + 0x4c]
fstp dword [esi + 4]
fld dword [esp + 0x5c]
fstp dword [esi + 0xc]
jmp 0x446b52
fstp st(1)
fstp st(0)
mov eax, dword [ebp + 0x6c]
cmp eax, 2
jne 0x446b78
cmp byte [esp + 0x16], 0
jne 0x446b78
fld dword [esp + 0x40]
fld st(0)
fld dword [esi + 8]
fsub dword [esi]
fstp dword [esp + 0x18]
fsub dword [esp + 0x18]
fstp dword [esi]
jmp 0x446bad
cmp eax, 1
jne 0x446bb0
cmp byte [esp + 0x16], 0
jne 0x446bb0
fld dword [esi + 8]
fsub dword [esi]
fstp dword [esp + 0x18]
fld dword [esp + 0x40]
fld dword [esp + 0x18]
fld st(0)
fsubp st(2)
fxch st(1)
fmul qword [0x69f210]
fstp dword [esp + 0x18]
fld dword [esp + 0x18]
fst dword [esi]
faddp st(1)
fstp dword [esi + 8]
cmp byte [ebp + 0x81], 0
je 0x446c17
mov eax, dword [ebp + 0x90]
cdq
push 0
push 0x1c71
mov ebx, edx
mov edi, eax
push ebx
push edi
call fcn.00612640
mov cl, 0x10
call fcn.0066aae0
push 0
push 0xe38
push ebx
push edi
mov ebp, eax
call fcn.00612640
mov cl, 0x10
call fcn.0066aae0
fld dword [esi + 0xc]
fmul qword [0x6c1538]
add ebp, eax
call fcn.0066a3f0
sub ebp, eax
mov dword [esp + 0x18], ebp
fild dword [esp + 0x18]
fmul qword [0x6c0cd0]
fstp dword [esi + 0xc]
jmp 0x446c17
fstp st(0)
lea ecx, [esp + 0x118]
call fcn.005536d0
lea ecx, [esp + 0xf4]
call fcn.00555d60
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1b0
ret 0x34
test eax, eax
je 0x446ca3
fld dword [esp + 0x1e8]
fadd dword [esp + 0x1f0]
fmul qword [0x69f210]
fstp dword [esp + 0x60]
fld dword [esp + 0x60]
fst dword [esp + 0x84]
mov ecx, dword [esp + 0x84]
fldz
mov dword [eax], ecx
fst dword [esp + 0x88]
mov edx, dword [esp + 0x88]
fstp dword [esp + 0x90]
mov dword [eax + 4], edx
mov edx, dword [esp + 0x90]
fstp dword [esp + 0x8c]
mov ecx, dword [esp + 0x8c]
mov dword [eax + 8], ecx
mov dword [eax + 0xc], edx
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1b0
ret 0x34