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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xffffffc0
push 0xffffffffffffffff
push 0x5ef989
mov eax, dword fs:[0]
push eax
sub esp, 0x2a8
push ebx
push esi
push edi
mov eax, dword [0x615cbc]
xor eax, esp
push eax
lea eax, [esp + 0x2b8]
mov dword fs:[0], eax
mov dword [esp + 0x18], ecx
movsd xmm0, qword [0x5fb9d0]
movsd xmm1, qword [ebp + 0x18]
comisd xmm1, xmm0
jbe 0x4800de
movsd qword [ebp + 0x18], xmm0
mov edi, dword [ebp + 8]
movsd xmm0, qword [edi + 0x10]
ucomisd xmm0, qword [0x5ff708]
lahf
movsd qword [esp + 0x3c], xmm0
test ah, 0x44
jnp 0x4802db
movsd xmm0, qword [edi + 0x18]
ucomisd xmm0, qword [0x5ff710]
lahf
movsd qword [esp + 0x1c], xmm0
test ah, 0x44
jnp 0x4802db
xor ebx, ebx
mov esi, 0xa
push 0x32
lea ecx, [esp + 0x4c]
mov dword [esp + 0x54], ebx
mov dword [esp + 0x4c], ebx
mov dword [esp + 0x50], esi
call fcn.00412980
push 0x32
lea ecx, [esp + 0x34]
mov dword [esp + 0x2c4], ebx
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x34], ebx
mov dword [esp + 0x38], esi
call fcn.00412880
xorps xmm0, xmm0
mov eax, dword [edi + 0xc]
mov byte [esp + 0x2c0], 1
movsd qword [esp + 0x124], xmm0
movsd qword [esp + 0x11c], xmm0
movsd qword [esp + 0x13c], xmm0
movsd qword [esp + 0x134], xmm0
movsd qword [esp + 0x12c], xmm0
movsd qword [esp + 0x154], xmm0
movsd qword [esp + 0x14c], xmm0
movsd qword [esp + 0x144], xmm0
movsd qword [esp + 0x16c], xmm0
movsd qword [esp + 0x164], xmm0
movsd qword [esp + 0x15c], xmm0
cmp eax, 0xc
jne 0x480298
mov eax, dword [esp + 0x18]
mov eax, dword [eax + 0xc]
cmp eax, 0x39
je 0x4801eb
cmp eax, 0x3b
je 0x4801eb
cmp eax, 0x3e
jne 0x480298
movsd xmm1, qword [esp + 0x3c]
movsd xmm0, qword [esp + 0x1c]
mov ebx, dword [ebp + 8]
subsd xmm0, xmm1
divsd xmm0, qword [0x5fcab8]
movsd qword [esp + 0x3c], xmm1
movsd qword [esp + 0xa4], xmm0
xor esi, esi
cmp esi, 5
jne 0x480228
movsd xmm0, qword [esp + 0x1c]
movsd qword [esp + 0x3c], xmm0
mov edx, dword [esp + 0x48]
fld qword [esp + 0x3c]
mov eax, dword [ebx]
lea ecx, [esi + esi*2]
lea edi, [edx + ecx*8]
mov edx, dword [eax + 0x68]
sub esp, 8
lea ecx, [esp + 0xec]
fstp qword [esp]
push ecx
mov ecx, ebx
call edx
movq xmm0, qword [eax]
movsd xmm1, qword [esp + 0xa4]
movq qword [edi], xmm0
movq xmm0, qword [eax + 8]
movq qword [edi + 8], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [edi + 0x10], xmm0
movsd xmm0, qword [esp + 0x3c]
mov eax, dword [esp + 0x30]
movsd qword [eax + esi*8], xmm0
inc esi
cmp esi, 6
addsd xmm1, xmm0
movsd qword [esp + 0x3c], xmm1
jl 0x480217
mov edi, ebx
jmp 0x48049b
fld qword [ebp + 0xc]
sub esp, 0x18
fstp qword [esp + 0x10]
lea ecx, [esp + 0x48]
fld qword [esp + 0x34]
lea edx, [esp + 0x60]
fstp qword [esp + 8]
fld qword [esp + 0x54]
fstp qword [esp]
push ecx
push edx
mov ecx, edi
call fcn.004f2c30
mov esi, eax
cmp esi, 2
jge 0x4802f5
lea ecx, [esp + 0x30]
call fcn.00428180
lea ecx, [esp + 0x48]
call fcn.00428180
xor eax, eax
mov ecx, dword [esp + 0x2b8]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x18
cmp esi, 3
jge 0x4803bc
movsd xmm1, qword [esp + 0x3c]
movsd xmm0, qword [esp + 0x1c]
subsd xmm0, xmm1
mulsd xmm0, qword [0x5fb9c8]
push 3
lea ecx, [esp + 0x4c]
movsd qword [esp + 0x40], xmm1
movsd qword [esp + 0xa8], xmm0
call fcn.00412980
push 3
lea ecx, [esp + 0x34]
call fcn.00412880
xor esi, esi
cmp esi, 2
jne 0x48034e
movsd xmm0, qword [esp + 0x1c]
movsd qword [esp + 0x3c], xmm0
mov ecx, dword [esp + 0x48]
fld qword [esp + 0x3c]
mov edx, dword [edi]
mov edx, dword [edx + 0x68]
lea eax, [esi + esi*2]
lea ebx, [ecx + eax*8]
sub esp, 8
lea eax, [esp + 0xec]
fstp qword [esp]
push eax
mov ecx, edi
call edx
movq xmm0, qword [eax]
movsd xmm1, qword [esp + 0xa4]
movq qword [ebx], xmm0
movq xmm0, qword [eax + 8]
movq qword [ebx + 8], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [ebx + 0x10], xmm0
movsd xmm0, qword [esp + 0x3c]
mov eax, dword [esp + 0x30]
movsd qword [eax + esi*8], xmm0
inc esi
cmp esi, 3
addsd xmm1, xmm0
movsd qword [esp + 0x3c], xmm1
jl 0x48033d
jmp 0x48049b
cmp esi, 0xb
jge 0x48049b
cmp dword [edi + 0xc], 0x13
setne al
test al, al
jne 0x4803e2
cmp dword [edi + 0x94], 2
setg al
test al, al
je 0x48049b
movsd xmm1, qword [esp + 0x3c]
movsd xmm0, qword [esp + 0x1c]
subsd xmm0, xmm1
divsd xmm0, qword [0x5fd068]
push 0xb
lea ecx, [esp + 0x4c]
movsd qword [esp + 0x40], xmm1
movsd qword [esp + 0xa8], xmm0
call fcn.00412980
push 0xb
lea ecx, [esp + 0x34]
call fcn.00412880
xor esi, esi
cmp esi, 0xa
jne 0x480432
movsd xmm0, qword [esp + 0x1c]
movsd qword [esp + 0x3c], xmm0
mov edx, dword [esp + 0x48]
fld qword [esp + 0x3c]
mov eax, dword [edi]
lea ecx, [esi + esi*2]
lea ebx, [edx + ecx*8]
mov edx, dword [eax + 0x68]
sub esp, 8
lea ecx, [esp + 0xec]
fstp qword [esp]
push ecx
mov ecx, edi
call edx
movq xmm0, qword [eax]
movsd xmm1, qword [esp + 0xa4]
movq qword [ebx], xmm0
movq xmm0, qword [eax + 8]
movq qword [ebx + 8], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [ebx + 0x10], xmm0
movsd xmm0, qword [esp + 0x3c]
mov eax, dword [esp + 0x30]
movsd qword [eax + esi*8], xmm0
inc esi
cmp esi, 0xb
addsd xmm1, xmm0
movsd qword [esp + 0x3c], xmm1
jl 0x480421
xor ecx, ecx
mov dword [esp + 0x68], ecx
mov dword [esp + 0x70], ecx
mov dword [esp + 0x6c], ecx
mov eax, esi
cdq
sub eax, edx
mov ebx, eax
mov eax, dword [ebp + 0x14]
sar ebx, 1
mov byte [esp + 0x2c0], 2
cmp eax, ecx
je 0x48072b
mov edx, dword [edi]
push eax
mov eax, dword [edx + 0x64]
mov ecx, edi
call eax
fstp qword [esp + 0x9c]
mov ecx, dword [esp + 0x30]
movsd xmm0, qword [esp + 0x9c]
xor ebx, ebx
cmp esi, 4
jl 0x480528
lea eax, [ecx + 0x10]
lea ecx, [ecx]
movsd xmm1, qword [eax - 0x10]
comisd xmm1, xmm0
ja 0x480550
movsd xmm1, qword [eax - 8]
comisd xmm1, xmm0
ja 0x480545
movsd xmm1, qword [eax]
comisd xmm1, xmm0
ja 0x480548
movsd xmm1, qword [eax + 8]
comisd xmm1, xmm0
ja 0x48054d
add ebx, 4
lea edx, [esi - 3]
add eax, 0x20
cmp ebx, edx
jl 0x4804f0
cmp ebx, esi
jge 0x48072b
movsd xmm1, qword [ecx + ebx*8]
comisd xmm1, xmm0
ja 0x480550
inc ebx
cmp ebx, esi
jl 0x480530
jmp 0x48072b
inc ebx
jmp 0x480550
add ebx, 2
jmp 0x480550
add ebx, 3
cmp ebx, esi
jge 0x48072b
lea edi, [esi + 1]
push edi
lea ecx, [esp + 0x4c]
mov dword [esp + 0x28], edi
call fcn.00412980
push edi
lea ecx, [esp + 0x34]
call fcn.00412880
cmp esi, ebx
jle 0x4806e9
mov eax, esi
sub eax, ebx
cmp eax, 4
jl 0x4806a4
mov edx, esi
sub edx, ebx
sub edx, 4
shr edx, 2
inc edx
lea ecx, [esi + esi*2 - 6]
add ecx, ecx
mov dword [esp + 0x1c], edx
add edx, edx
add ecx, ecx
add edx, edx
lea eax, [esi*8 - 0x10]
add ecx, ecx
sub esi, edx
mov edi, edi
mov edx, dword [esp + 0x48]
movq xmm0, qword [ecx + edx + 0x18]
movq qword [ecx + edx + 0x30], xmm0
movq xmm0, qword [ecx + edx + 0x20]
movq qword [ecx + edx + 0x38], xmm0
movq xmm0, qword [ecx + edx + 0x28]
movq qword [ecx + edx + 0x40], xmm0
lea edx, [ecx + edx + 0x30]
mov edx, dword [esp + 0x30]
fld qword [eax + edx + 8]
sub eax, 0x20
fstp qword [eax + edx + 0x30]
mov edi, dword [esp + 0x48]
movq xmm0, qword [ecx + edi]
movq qword [ecx + edi + 0x18], xmm0
movq xmm0, qword [ecx + edi + 8]
movq qword [ecx + edi + 0x20], xmm0
movq xmm0, qword [ecx + edi + 0x10]
movq qword [ecx + edi + 0x28], xmm0
lea edx, [ecx + edi]
mov edx, dword [esp + 0x30]
fld qword [eax + edx + 0x20]
lea edi, [ecx + edi + 0x18]
fstp qword [eax + edx + 0x28]
mov edi, dword [esp + 0x48]
movq xmm0, qword [ecx + edi - 0x18]
movq qword [edi + ecx], xmm0
movq xmm0, qword [ecx + edi - 0x10]
movq qword [edi + ecx + 8], xmm0
movq xmm0, qword [ecx + edi - 8]
lea edx, [ecx + edi - 0x18]
movq qword [edi + ecx + 0x10], xmm0
mov edx, dword [esp + 0x30]
fld qword [eax + edx + 0x18]
add edi, ecx
fstp qword [eax + edx + 0x20]
mov edi, dword [esp + 0x48]
movq xmm0, qword [ecx + edi - 0x30]
lea edx, [ecx + edi - 0x30]
movq qword [ecx + edi - 0x18], xmm0
movq xmm0, qword [edx + 8]
lea edi, [ecx + edi - 0x18]
movq qword [edi + 8], xmm0
movq xmm0, qword [edx + 0x10]
movq qword [edi + 0x10], xmm0
mov edx, dword [esp + 0x30]
fld qword [eax + edx + 0x10]
sub ecx, 0x60
sub dword [esp + 0x1c], 1
fstp qword [eax + edx + 0x18]
jne 0x4805b0
cmp esi, ebx
jle 0x4806e9
lea ecx, [esi + esi*2]
add ecx, ecx
add ecx, ecx
add ecx, ecx
mov eax, dword [esp + 0x48]
movq xmm0, qword [eax + ecx - 0x18]
add eax, ecx
movq qword [eax], xmm0
movq xmm0, qword [eax - 0x10]
movq qword [eax + 8], xmm0
movq xmm0, qword [eax - 8]
movq qword [eax + 0x10], xmm0
mov eax, dword [esp + 0x30]
fld qword [eax + esi*8 - 8]
dec esi
fstp qword [eax + esi*8 + 8]
sub ecx, 0x18
cmp esi, ebx
jg 0x4806b1
mov edx, dword [esp + 0x48]
mov esi, dword [esp + 0x24]
mov edi, dword [ebp + 8]
lea ecx, [ebx + ebx*2]
lea eax, [edx + ecx*8]
mov ecx, dword [ebp + 0x14]
movq xmm0, qword [ecx]
movq qword [eax], xmm0
movq xmm0, qword [ecx + 8]
movq qword [eax + 8], xmm0
movq xmm0, qword [ecx + 0x10]
movq qword [eax + 0x10], xmm0
mov eax, dword [esp + 0x30]
movsd xmm0, qword [esp + 0x9c]
movsd qword [eax + ebx*8], xmm0
mov ecx, dword [esp + 0x48]
fld qword [0x5ff758]
lea eax, [ebx + ebx*2]
add eax, eax
add eax, eax
sub esp, 8
add eax, eax
fstp qword [esp]
mov dword [esp + 0x24], eax
add eax, ecx
mov ecx, dword [esp + 0x20]
mov edx, dword [ecx]
mov edx, dword [edx + 0x78]
push eax
push 0
push 0
push 0
lea eax, [esp + 0x134]
push eax
call edx
test al, al
jne 0x48085f
mov eax, dword [esp + 0x30]
movsd xmm0, qword [eax + ebx*8 - 8]
addsd xmm0, qword [eax + ebx*8]
mulsd xmm0, qword [0x5fb9c8]
mov ecx, dword [esp + 0x1c]
movsd qword [eax + ebx*8], xmm0
mov eax, dword [esp + 0x48]
mov edx, dword [edi]
mov edx, dword [edx + 0x68]
add eax, ecx
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x30]
fld qword [eax + ebx*8]
sub esp, 8
lea ecx, [esp + 0xec]
fstp qword [esp]
push ecx
mov ecx, edi
call edx
movq xmm0, qword [eax]
mov ecx, dword [esp + 0x24]
movq qword [ecx], xmm0
movq xmm0, qword [eax + 8]
movq qword [ecx + 8], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [ecx + 0x10], xmm0
fld qword [0x5ff758]
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x1c]
sub esp, 8
fstp qword [esp]
add eax, ecx
mov ecx, dword [esp + 0x20]
mov edx, dword [ecx]
mov edx, dword [edx + 0x78]
push eax
push 0
push 0
push 0
lea eax, [esp + 0x134]
push eax
call edx
test al, al
jne 0x48085f
lea ecx, [esp + 0x68]
mov byte [esp + 0x2c0], 1
call fcn.005605c0
mov esi, dword [sym.imp.MSVCR90.dll_free]
mov eax, dword [esp + 0x30]
xor edi, edi
cmp eax, edi
je 0x48082f
push eax
call esi
add esp, 4
mov eax, dword [esp + 0x48]
mov dword [esp + 0x30], edi
mov dword [esp + 0x38], edi
cmp eax, edi
je 0x480845
push eax
call esi
add esp, 4
xor eax, eax
mov ecx, dword [esp + 0x2b8]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x18
fld qword [0x5ff780]
mov ecx, dword [esp + 0x18]
sub esp, 8
lea eax, [esp + 0x124]
fstp qword [esp]
push eax
call fcn.0046b780
fld qword [ebp + 0x18]
sub esp, 8
fstp qword [esp]
lea edx, [esp + 0x124]
push edx
lea eax, [esp + 0x80]
push eax
call fcn.0046b8d0
movsd xmm0, qword [esp + 0x74]
movsd xmm1, qword [esp + 0x7c]
mov ecx, dword [esp + 0x30]
sub esp, 0x18
mov eax, esp
movq qword [esp + 0x134], xmm0
movq qword [esp + 0x13c], xmm1
movsd xmm2, qword [ecx + ebx*8]
movq qword [eax], xmm0
movq qword [eax + 8], xmm1
lea ecx, [esp + 0x80]
movq qword [eax + 0x10], xmm2
call fcn.00472ae0
movsd xmm1, qword [esp + 0x74]
movsd xmm2, qword [esp + 0x7c]
xorps xmm0, xmm0
lea eax, [ebx + 1]
cmp eax, esi
movq qword [esp + 0x54], xmm1
movq qword [esp + 0x5c], xmm2
movq qword [esp + 0x84], xmm1
movq qword [esp + 0x8c], xmm2
mov byte [esp + 0x24], 1
movsd qword [esp + 0xcc], xmm0
movsd qword [esp + 0xd4], xmm0
mov dword [esp + 0x1c], eax
jge 0x480c5e
mov edi, eax
lea edi, [edi + edi*2]
add edi, edi
add edi, edi
add edi, edi
mov edx, dword [esp + 0x48]
fld qword [0x5ff758]
movsd xmm0, qword [esp + 0xcc]
addsd xmm0, qword [esp + 0x11c]
mov ecx, dword [esp + 0x18]
sub esp, 8
fstp qword [esp]
lea eax, [edi + edx]
mov edx, dword [ecx]
mov edx, dword [edx + 0x78]
push eax
mov eax, dword [esp + 0x30]
push 0
push 0
push eax
movsd qword [esp + 0x134], xmm0
movsd xmm0, qword [esp + 0xec]
addsd xmm0, qword [esp + 0x13c]
lea eax, [esp + 0x134]
push eax
movsd qword [esp + 0x140], xmm0
call edx
test al, al
je 0x480a33
xorps xmm0, xmm0
mov eax, dword [esp + 0x48]
movsd qword [esp + 0xb4], xmm0
movsd qword [esp + 0xac], xmm0
movsd qword [esp + 0xa4], xmm0
movsd xmm0, qword [esp + 0x12c]
subsd xmm0, qword [edi + eax]
movsd qword [esp + 0xa4], xmm0
movsd xmm0, qword [esp + 0x134]
subsd xmm0, qword [edi + eax + 8]
movsd qword [esp + 0xac], xmm0
movsd xmm0, qword [esp + 0x13c]
subsd xmm0, qword [edi + eax + 0x10]
lea ecx, [esp + 0xa4]
movsd qword [esp + 0xb4], xmm0
call fcn.004a88b0
fld qword [0x5fc870]
fxch st(1)
fcompi st(1)
fstp st(0)
jbe 0x480afe
cmp byte [esp + 0x24], 0
je 0x480c35
mov eax, dword [esp + 0x48]
fld qword [0x5ff758]
mov ecx, dword [esp + 0x18]
mov edx, dword [ecx]
mov edx, dword [edx + 0x78]
sub esp, 8
fstp qword [esp]
add eax, edi
push eax
push 0
push 0
push 0
lea eax, [esp + 0x134]
push eax
mov byte [esp + 0x40], 0
call edx
test al, al
je 0x480c35
xorps xmm0, xmm0
mov eax, dword [esp + 0x48]
movsd qword [esp + 0xb4], xmm0
movsd qword [esp + 0xac], xmm0
movsd qword [esp + 0xa4], xmm0
movsd xmm0, qword [esp + 0x12c]
subsd xmm0, qword [edi + eax]
movsd qword [esp + 0xa4], xmm0
movsd xmm0, qword [esp + 0x134]
subsd xmm0, qword [edi + eax + 8]
movsd qword [esp + 0xac], xmm0
movsd xmm0, qword [esp + 0x13c]
subsd xmm0, qword [edi + eax + 0x10]
lea ecx, [esp + 0xa4]
movsd qword [esp + 0xb4], xmm0
call fcn.004a88b0
fld qword [0x5fcab8]
fxch st(1)
fcompi st(1)
fstp st(0)
ja 0x480c35
fld qword [0x5ff780]
mov ecx, dword [esp + 0x18]
sub esp, 8
lea eax, [esp + 0x124]
fstp qword [esp]
push eax
mov byte [esp + 0x30], 1
call fcn.0046b780
fld qword [ebp + 0x18]
sub esp, 8
fstp qword [esp]
lea edx, [esp + 0x124]
push edx
lea eax, [esp + 0x248]
push eax
call fcn.0046b8d0
movq xmm0, qword [eax]
lea ecx, [esp + 0x54]
push ecx
mov ecx, dword [esp + 0x1c]
lea edx, [esp + 0x78]
movq qword [esp + 0x78], xmm0
movq xmm0, qword [eax + 8]
push edx
movq qword [esp + 0x84], xmm0
call fcn.004787e0
movsd xmm0, qword [esp + 0x74]
subsd xmm0, qword [esp + 0x54]
movsd qword [esp + 0xe4], xmm0
movsd xmm0, qword [esp + 0x7c]
subsd xmm0, qword [esp + 0x5c]
lea ecx, [esp + 0xe4]
movsd qword [esp + 0xec], xmm0
call fcn.004a7500
fld qword [0x5fa918]
fxch st(1)
fcompi st(1)
fstp st(0)
jbe 0x480bf7
movsd xmm0, qword [esp + 0x74]
movsd xmm1, qword [esp + 0x7c]
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x1c]
movq qword [esp + 0x11c], xmm0
movq qword [esp + 0x124], xmm1
movsd xmm2, qword [eax + ecx*8]
sub esp, 0x18
mov eax, esp
movq qword [eax], xmm0
movq qword [eax + 8], xmm1
lea ecx, [esp + 0x80]
movq qword [eax + 0x10], xmm2
call fcn.00472ae0
movsd xmm2, qword [esp + 0x74]
movsd xmm3, qword [esp + 0x7c]
movapd xmm0, xmm2
subsd xmm0, qword [esp + 0x54]
movapd xmm1, xmm3
subsd xmm1, qword [esp + 0x5c]
movq qword [esp + 0xcc], xmm0
movq qword [esp + 0xd4], xmm1
movq qword [esp + 0x54], xmm2
movq qword [esp + 0x5c], xmm3
mov eax, dword [esp + 0x1c]
inc eax
add edi, 0x18
cmp eax, esi
mov dword [esp + 0x1c], eax
jl 0x48093e
movq xmm2, qword [esp + 0x8c]
movq xmm1, qword [esp + 0x84]
xorps xmm0, xmm0
add ebx, 0xffffffff
movq qword [esp + 0x54], xmm1
movq qword [esp + 0x5c], xmm2
movq qword [esp + 0x11c], xmm1
movq qword [esp + 0x124], xmm2
mov byte [esp + 0x24], 1
movsd qword [esp + 0xcc], xmm0
movsd qword [esp + 0xd4], xmm0
js 0x480fb4
mov edi, dword [esp + 0x18]
lea esi, [ebx + ebx*2]
add esi, esi
add esi, esi
add esi, esi
mov edx, dword [esp + 0x48]
fld qword [0x5ff758]
movsd xmm0, qword [esp + 0xcc]
addsd xmm0, qword [esp + 0x11c]
sub esp, 8
fstp qword [esp]
lea eax, [edx + esi]
mov edx, dword [edi]
mov edx, dword [edx + 0x78]
push eax
mov eax, dword [esp + 0x30]
push 0
push 0
movsd qword [esp + 0x130], xmm0
movsd xmm0, qword [esp + 0xe8]
addsd xmm0, qword [esp + 0x138]
push eax
lea ecx, [esp + 0x134]
push ecx
mov ecx, edi
movsd qword [esp + 0x140], xmm0
call edx
test al, al
je 0x480d9c
xorps xmm0, xmm0
mov eax, dword [esp + 0x48]
movsd qword [esp + 0x94], xmm0
movsd qword [esp + 0x8c], xmm0
movsd qword [esp + 0x84], xmm0
movsd xmm0, qword [esp + 0x12c]
subsd xmm0, qword [eax + esi]
movsd qword [esp + 0x84], xmm0
movsd xmm0, qword [esp + 0x134]
subsd xmm0, qword [eax + esi + 8]
movsd qword [esp + 0x8c], xmm0
movsd xmm0, qword [esp + 0x13c]
subsd xmm0, qword [eax + esi + 0x10]
lea ecx, [esp + 0x84]
movsd qword [esp + 0x94], xmm0
call fcn.004a88b0
fld qword [0x5fc870]
fxch st(1)
fcompi st(1)
fstp st(0)
jbe 0x480e65
cmp byte [esp + 0x24], 0
je 0x480fa8
mov eax, dword [esp + 0x48]
fld qword [0x5ff758]
mov edx, dword [edi]
mov edx, dword [edx + 0x78]
sub esp, 8
fstp qword [esp]
add eax, esi
push eax
push 0
push 0
push 0
lea eax, [esp + 0x134]
push eax
mov ecx, edi
mov byte [esp + 0x40], 0
call edx
test al, al
je 0x480fa8
xorps xmm0, xmm0
mov eax, dword [esp + 0x48]
movsd qword [esp + 0x94], xmm0
movsd qword [esp + 0x8c], xmm0
movsd qword [esp + 0x84], xmm0
movsd xmm0, qword [esp + 0x12c]
subsd xmm0, qword [eax + esi]
movsd qword [esp + 0x84], xmm0
movsd xmm0, qword [esp + 0x134]
subsd xmm0, qword [eax + esi + 8]
movsd qword [esp + 0x8c], xmm0
movsd xmm0, qword [esp + 0x13c]
subsd xmm0, qword [eax + esi + 0x10]
lea ecx, [esp + 0x84]
movsd qword [esp + 0x94], xmm0
call fcn.004a88b0
fld qword [0x5fcab8]
fxch st(1)
fcompi st(1)
fstp st(0)
ja 0x480fa8
fld qword [0x5ff780]
sub esp, 8
lea eax, [esp + 0x124]
fstp qword [esp]
push eax
mov ecx, edi
mov byte [esp + 0x30], 1
call fcn.0046b780
fld qword [ebp + 0x18]
sub esp, 8
fstp qword [esp]
lea ecx, [esp + 0x124]
push ecx
lea edx, [esp + 0x248]
push edx
mov ecx, edi
call fcn.0046b8d0
movq xmm0, qword [eax]
movq qword [esp + 0x74], xmm0
movq xmm0, qword [eax + 8]
lea eax, [esp + 0x54]
push eax
lea ecx, [esp + 0x78]
push ecx
mov ecx, edi
movq qword [esp + 0x84], xmm0
call fcn.004787e0
movsd xmm0, qword [esp + 0x74]
subsd xmm0, qword [esp + 0x54]
movsd qword [esp + 0xe4], xmm0
movsd xmm0, qword [esp + 0x7c]
subsd xmm0, qword [esp + 0x5c]
lea ecx, [esp + 0xe4]
movsd qword [esp + 0xec], xmm0
call fcn.004a7500
fld qword [0x5fa918]
fxch st(1)
fcompi st(1)
fstp st(0)
jbe 0x480f6a
mov eax, dword [esp + 0x6c]
movsd xmm0, qword [esp + 0x74]
movsd xmm1, qword [esp + 0x7c]
mov edx, dword [esp + 0x30]
movq qword [esp + 0x11c], xmm0
movq qword [esp + 0x124], xmm1
movsd xmm2, qword [edx + ebx*8]
test eax, eax
je 0x480f46
mov ecx, dword [eax + 8]
jmp 0x480f4a
mov ecx, dword [esp + 0x70]
sub esp, 0x18
mov eax, esp
movq qword [eax], xmm0
push ecx
movq qword [eax + 8], xmm1
lea ecx, [esp + 0x84]
movq qword [eax + 0x10], xmm2
call fcn.00472b60
movsd xmm2, qword [esp + 0x74]
movsd xmm3, qword [esp + 0x7c]
movapd xmm0, xmm2
subsd xmm0, qword [esp + 0x54]
movapd xmm1, xmm3
subsd xmm1, qword [esp + 0x5c]
movq qword [esp + 0xcc], xmm0
movq qword [esp + 0xd4], xmm1
movq qword [esp + 0x54], xmm2
movq qword [esp + 0x5c], xmm3
dec ebx
sub esi, 0x18
test ebx, ebx
jge 0x480ca9
mov ecx, dword [esp + 0x68]
cmp ecx, 2
jl 0x480808
mov eax, dword [esp + 0x6c]
mov esi, dword [eax + 0xc]
test esi, esi
je 0x480ffe
mov edi, dword [esp + 0x18]
mov ebx, dword [ebp + 8]
fld qword [ebp + 0x18]
sub esp, 0x10
fstp qword [esp + 8]
mov ecx, edi
fld qword [ebp + 0xc]
fstp qword [esp]
push eax
lea eax, [esp + 0x7c]
push eax
push ebx
call fcn.0047d340
mov eax, esi
mov esi, dword [esi + 0xc]
test esi, esi
jne 0x480fd3
mov ecx, dword [esp + 0x68]
xor eax, eax
mov esi, ecx
push ecx
lea ecx, [esp + 0x58]
mov dword [esp + 0x5c], 1
mov dword [esp + 0x60], eax
mov dword [esp + 0x58], eax
call fcn.00412b00
push esi
lea ecx, [esp + 0x34]
mov byte [esp + 0x2c4], 3
call fcn.00412880
mov esi, dword [esp + 0x6c]
xorps xmm0, xmm0
xor edi, edi
mov dword [esp + 0x27c], edi
movsd qword [esp + 0x234], xmm0
movsd qword [esp + 0x22c], xmm0
movsd qword [esp + 0x224], xmm0
cmp esi, edi
je 0x4810e4
mov ebx, dword [esp + 0x54]
jmp 0x481070
movq xmm0, qword [esi + 0x10]
movq qword [esp + 0x224], xmm0
movq xmm0, qword [esi + 0x18]
lea ecx, [esp + 0x224]
movq qword [esp + 0x22c], xmm0
movq xmm0, qword [esi + 0x20]
push ecx
mov ecx, ebx
movq qword [esp + 0x238], xmm0
call fcn.004a84e0
mov edx, dword [esp + 0x30]
movsd xmm0, qword [esp + 0x234]
movsd qword [edx + edi*8], xmm0
fld qword [ebx]
fld qword [ebx + 8]
sub esp, 0x10
fstp qword [esp + 8]
lea ecx, [esp + 0x26c]
fstp qword [esp]
call fcn.004ab370
mov esi, dword [esi + 0xc]
inc edi
add ebx, 0x10
test esi, esi
jne 0x481070
xorps xmm0, xmm0
mov eax, dword [esp + 0x18]
mov cl, byte [eax + 0x1a]
movsd xmm4, qword [esp + 0x25c]
movsd xmm5, qword [esp + 0x264]
movsd xmm1, qword [esp + 0x26c]
movsd xmm2, qword [esp + 0x274]
movsd qword [esp + 0x23c], xmm4
movsd qword [esp + 0x244], xmm5
movsd qword [esp + 0xe4], xmm1
movsd qword [esp + 0xec], xmm2
test cl, cl
jne 0x481140
mov byte [esp + 0x2f], cl
cmp byte [eax + 0x18], cl
je 0x481145
mov byte [esp + 0x2f], 1
test cl, cl
je 0x481150
movsd xmm3, qword [eax + 0x70]
jmp 0x48115a
movsd xmm3, qword [eax + 0x58]
subsd xmm3, qword [eax + 0x50]
mov cl, byte [eax + 0x1b]
movapd xmm6, xmm3
movsd qword [esp + 0x1c], xmm6
test cl, cl
jne 0x481174
cmp byte [eax + 0x19], cl
jne 0x481174
xor dl, dl
jmp 0x481176
mov dl, 1
mov byte [esp + 0x47], dl
test cl, cl
je 0x481185
movsd xmm3, qword [eax + 0x78]
jmp 0x48118f
movsd xmm3, qword [eax + 0x68]
subsd xmm3, qword [eax + 0x60]
cmp byte [esp + 0x2f], 0
movapd xmm7, xmm3
movsd xmm3, qword [0x5fc898]
movsd qword [esp + 0x24], xmm7
je 0x4811ae
mulsd xmm6, xmm3
jmp 0x4811b2
movapd xmm6, xmm3
movsd qword [esp + 0x3c], xmm6
test dl, dl
je 0x4811cb
mulsd xmm7, xmm3
movsd qword [esp + 0x114], xmm7
jmp 0x4811d4
movsd qword [esp + 0x114], xmm3
movsd xmm3, qword [0x5fb9c8]
movapd xmm7, xmm1
addsd xmm7, xmm4
mulsd xmm7, xmm3
movsd qword [esp + 0x104], xmm7
movapd xmm7, xmm2
addsd xmm7, xmm5
subsd xmm1, xmm4
comisd xmm6, xmm1
mulsd xmm7, xmm3
mov byte [esp + 0x17], 0
mov byte [esp + 0x2e], 0
movsd qword [esp + 0xa4], xmm7
subsd xmm2, xmm5
jbe 0x48124d
movsd xmm3, qword [esp + 0x114]
comisd xmm3, xmm2
jbe 0x48124d
comisd xmm2, xmm1
jbe 0x481241
movapd xmm2, xmm3
mulsd xmm2, qword [0x5fcc60]
jmp 0x48124d
movapd xmm1, xmm6
mulsd xmm1, qword [0x5fcc60]
movsd xmm3, qword [0x5fb990]
comisd xmm3, xmm1
jbe 0x481387
mov byte [esp + 0x17], 1
movsd xmm2, qword [esp + 0x1c]
movsd xmm3, qword [esp + 0x24]
cmp byte [esp + 0x2f], 0
movsd xmm4, qword [0x5fc740]
je 0x481914
mov eax, dword [esp + 0x18]
movsd xmm1, qword [eax + 0x50]
movapd xmm5, xmm1
subsd xmm5, xmm6
comisd xmm5, xmmword [esp + 0x23c]
jbe 0x481810
mov ebx, dword [esp + 0x54]
xor edx, edx
cmp edi, 4
jl 0x481346
lea ecx, [edi - 4]
shr ecx, 2
inc ecx
lea eax, [ebx + 0x28]
lea edx, [ecx*4]
jmp 0x4812d0
movsd xmm1, qword [eax - 0x28]
addsd xmm1, xmm2
movsd qword [eax - 0x28], xmm1
movsd xmm1, qword [eax - 0x20]
addsd xmm1, xmm0
movsd qword [eax - 0x20], xmm1
movapd xmm1, xmm2
addsd xmm1, qword [eax - 0x18]
movsd qword [eax - 0x18], xmm1
movsd xmm1, qword [eax - 0x10]
addsd xmm1, xmm0
movsd qword [eax - 0x10], xmm1
movsd xmm1, qword [eax - 8]
addsd xmm1, xmm2
movsd qword [eax - 8], xmm1
movsd xmm1, qword [eax]
addsd xmm1, xmm0
movsd qword [eax], xmm1
movsd xmm1, qword [eax + 8]
addsd xmm1, xmm2
movsd qword [eax + 8], xmm1
movsd xmm1, qword [eax + 0x10]
addsd xmm1, xmm0
movsd qword [eax + 0x10], xmm1
add eax, 0x40
sub ecx, 1
jne 0x4812d0
cmp edx, edi
jge 0x481918
mov eax, edx
shl eax, 4
mov ecx, edi
add eax, ebx
sub ecx, edx
lea esp, [esp]
movsd xmm1, qword [eax]
addsd xmm1, xmm2
movsd qword [eax], xmm1
movsd xmm1, qword [eax + 8]
addsd xmm1, xmm0
movsd qword [eax + 8], xmm1
add eax, 0x10
sub ecx, 1
jne 0x481360
jmp 0x481918
comisd xmm3, xmm2
jbe 0x481397
mov byte [esp + 0x2e], 1
jmp 0x481264
comisd xmm6, xmm1
jbe 0x4815d0
xor esi, esi
movsd qword [esp + 0x9c], xmm0
test edi, edi
jle 0x4815a6
mov ebx, dword [esp + 0x54]
jmp 0x4813c3
xorps xmm0, xmm0
fldz
movq xmm1, qword [ebx]
mov ecx, dword [esp + 0x18]
mov eax, dword [ecx]
mov eax, dword [eax + 0x80]
sub esp, 8
fstp qword [esp]
lea edx, [esp + 0x8c]
push edx
lea edx, [esp + 0x180]
movq qword [esp + 0x90], xmm1
movq xmm1, qword [ebx + 8]
push edx
movq qword [esp + 0x9c], xmm1
movsd qword [esp + 0x18c], xmm0
movsd qword [esp + 0x184], xmm0
movsd qword [esp + 0x1a4], xmm0
movsd qword [esp + 0x19c], xmm0
movsd qword [esp + 0x194], xmm0
movsd qword [esp + 0x1bc], xmm0
movsd qword [esp + 0x1b4], xmm0
movsd qword [esp + 0x1ac], xmm0
movsd qword [esp + 0x1d4], xmm0
movsd qword [esp + 0x1cc], xmm0
movsd qword [esp + 0x1c4], xmm0
call eax
fldz
mov ecx, dword [esp + 0x18]
movsd xmm0, qword [esp + 0x104]
mov edx, dword [ecx]
mov edx, dword [edx + 0x80]
sub esp, 8
fstp qword [esp]
lea eax, [esp + 0x8c]
push eax
lea eax, [esp + 0x1d8]
movsd qword [esp + 0x90], xmm0
xorps xmm0, xmm0
push eax
movsd qword [esp + 0x1e4], xmm0
movsd qword [esp + 0x1dc], xmm0
movsd qword [esp + 0x1fc], xmm0
movsd qword [esp + 0x1f4], xmm0
movsd qword [esp + 0x1ec], xmm0
movsd qword [esp + 0x214], xmm0
movsd qword [esp + 0x20c], xmm0
movsd qword [esp + 0x204], xmm0
movsd qword [esp + 0x22c], xmm0
movsd qword [esp + 0x224], xmm0
movsd qword [esp + 0x21c], xmm0
call edx
movsd xmm0, qword [esp + 0x1dc]
subsd xmm0, qword [esp + 0x184]
movsd qword [esp + 0xcc], xmm0
movsd xmm0, qword [esp + 0x1e4]
subsd xmm0, qword [esp + 0x18c]
movsd qword [esp + 0xd4], xmm0
movsd xmm0, qword [esp + 0x1ec]
subsd xmm0, qword [esp + 0x194]
lea ecx, [esp + 0xcc]
movsd qword [esp + 0xdc], xmm0
call fcn.004a88b0
fst qword [esp + 0xcc]
fld qword [esp + 0x9c]
fxch st(1)
fcompi st(1)
fstp st(0)
jbe 0x481591
movsd xmm0, qword [esp + 0xcc]
comisd xmm0, xmmword [ebp + 0x18]
movsd qword [esp + 0x9c], xmm0
ja 0x48159d
inc esi
add ebx, 0x10
cmp esi, edi
jl 0x4813c0
xorps xmm0, xmm0
movsd xmm6, qword [esp + 0x3c]
movsd xmm1, qword [ebp + 0x18]
comisd xmm1, xmmword [esp + 0x9c]
movsd xmm3, qword [esp + 0x24]
movsd xmm2, qword [esp + 0x1c]
jbe 0x481270
mov byte [esp + 0x17], 1
jmp 0x481270
movsd xmm1, qword [esp + 0x114]
comisd xmm1, xmm2
jbe 0x481264
xor esi, esi
movsd qword [esp + 0x9c], xmm0
test edi, edi
jle 0x4817e6
mov ebx, dword [esp + 0x54]
jmp 0x481603
xorps xmm0, xmm0
fldz
movq xmm1, qword [ebx]
mov ecx, dword [esp + 0x18]
mov eax, dword [ecx]
mov eax, dword [eax + 0x80]
sub esp, 8
fstp qword [esp]
lea edx, [esp + 0x8c]
push edx
lea edx, [esp + 0x1d8]
movq qword [esp + 0x90], xmm1
movq xmm1, qword [ebx + 8]
push edx
movq qword [esp + 0x9c], xmm1
movsd qword [esp + 0x1e4], xmm0
movsd qword [esp + 0x1dc], xmm0
movsd qword [esp + 0x1fc], xmm0
movsd qword [esp + 0x1f4], xmm0
movsd qword [esp + 0x1ec], xmm0
movsd qword [esp + 0x214], xmm0
movsd qword [esp + 0x20c], xmm0
movsd qword [esp + 0x204], xmm0
movsd qword [esp + 0x22c], xmm0
movsd qword [esp + 0x224], xmm0
movsd qword [esp + 0x21c], xmm0
call eax
fldz
mov ecx, dword [esp + 0x18]
movsd xmm0, qword [esp + 0xa4]
mov edx, dword [ecx]
mov edx, dword [edx + 0x80]
sub esp, 8
fstp qword [esp]
lea eax, [esp + 0x8c]
push eax
lea eax, [esp + 0x180]
movsd qword [esp + 0x98], xmm0
xorps xmm0, xmm0
push eax
movsd qword [esp + 0x18c], xmm0
movsd qword [esp + 0x184], xmm0
movsd qword [esp + 0x1a4], xmm0
movsd qword [esp + 0x19c], xmm0
movsd qword [esp + 0x194], xmm0
movsd qword [esp + 0x1bc], xmm0
movsd qword [esp + 0x1b4], xmm0
movsd qword [esp + 0x1ac], xmm0
movsd qword [esp + 0x1d4], xmm0
movsd qword [esp + 0x1cc], xmm0
movsd qword [esp + 0x1c4], xmm0
call edx
movsd xmm0, qword [esp + 0x184]
subsd xmm0, qword [esp + 0x1dc]
movsd qword [esp + 0xcc], xmm0
movsd xmm0, qword [esp + 0x18c]
subsd xmm0, qword [esp + 0x1e4]
movsd qword [esp + 0xd4], xmm0
movsd xmm0, qword [esp + 0x194]
subsd xmm0, qword [esp + 0x1ec]
lea ecx, [esp + 0xcc]
movsd qword [esp + 0xdc], xmm0
call fcn.004a88b0
fst qword [esp + 0xcc]
fld qword [esp + 0x9c]
fxch st(1)
fcompi st(1)
fstp st(0)
jbe 0x4817d1
movsd xmm0, qword [esp + 0xcc]
comisd xmm0, xmmword [ebp + 0x18]
movsd qword [esp + 0x9c], xmm0
ja 0x4817dd
inc esi
add ebx, 0x10
cmp esi, edi
jl 0x481600
xorps xmm0, xmm0
movsd xmm6, qword [esp + 0x3c]
movsd xmm1, qword [ebp + 0x18]
comisd xmm1, xmmword [esp + 0x9c]
movsd xmm3, qword [esp + 0x24]
movsd xmm2, qword [esp + 0x1c]
jbe 0x481270
mov byte [esp + 0x2e], 1
jmp 0x481270
movsd xmm5, qword [esp + 0xe4]
addsd xmm1, xmm2
addsd xmm1, xmm6
comisd xmm5, xmm1
jbe 0x481914
mov ebx, dword [esp + 0x54]
xor edx, edx
cmp edi, 4
xorpd xmm2, xmm4
movapd xmm1, xmm2
jl 0x4818d6
lea ecx, [edi - 4]
shr ecx, 2
inc ecx
lea eax, [ebx + 0x28]
lea edx, [ecx*4]
jmp 0x481860
movapd xmm2, xmm1
addsd xmm2, qword [eax - 0x28]
movsd qword [eax - 0x28], xmm2
movsd xmm2, qword [eax - 0x20]
addsd xmm2, xmm0
movsd qword [eax - 0x20], xmm2
movapd xmm2, xmm1
addsd xmm2, qword [eax - 0x18]
movsd qword [eax - 0x18], xmm2
movsd xmm2, qword [eax - 0x10]
addsd xmm2, xmm0
movsd qword [eax - 0x10], xmm2
movsd xmm2, qword [eax - 8]
addsd xmm2, xmm1
movsd qword [eax - 8], xmm2
movsd xmm2, qword [eax]
addsd xmm2, xmm0
movsd qword [eax], xmm2
movapd xmm2, xmm1
addsd xmm2, qword [eax + 8]
movsd qword [eax + 8], xmm2
movsd xmm2, qword [eax + 0x10]
addsd xmm2, xmm0
movsd qword [eax + 0x10], xmm2
add eax, 0x40
sub ecx, 1
jne 0x481860
cmp edx, edi
jge 0x481918
mov eax, edx
shl eax, 4
mov ecx, edi
add eax, ebx
sub ecx, edx
jmp 0x4818f0
movsd xmm2, qword [eax]
addsd xmm2, xmm1
movsd qword [eax], xmm2
movsd xmm2, qword [eax + 8]
addsd xmm2, xmm0
movsd qword [eax + 8], xmm2
add eax, 0x10
sub ecx, 1
jne 0x4818f0
jmp 0x481918
mov ebx, dword [esp + 0x54]
cmp byte [esp + 0x47], 0
je 0x481b22
mov ecx, dword [esp + 0x18]
movsd xmm1, qword [ecx + 0x60]
movsd xmm2, qword [esp + 0x114]
movapd xmm5, xmm1
subsd xmm5, xmm2
comisd xmm5, xmmword [esp + 0x244]
jbe 0x481a27
xor edx, edx
cmp edi, 4
jl 0x4819e6
lea ecx, [edi - 4]
shr ecx, 2
inc ecx
lea eax, [ebx + 0x28]
lea edx, [ecx*4]
jmp 0x481970
movsd xmm1, qword [eax - 0x28]
addsd xmm1, xmm0
movsd qword [eax - 0x28], xmm1
movsd xmm1, qword [eax - 0x20]
addsd xmm1, xmm3
movsd qword [eax - 0x20], xmm1
movsd xmm1, qword [eax - 0x18]
addsd xmm1, xmm0
movsd qword [eax - 0x18], xmm1
movapd xmm1, xmm3
addsd xmm1, qword [eax - 0x10]
movsd qword [eax - 0x10], xmm1
movsd xmm1, qword [eax - 8]
addsd xmm1, xmm0
movsd qword [eax - 8], xmm1
movapd xmm1, xmm3
addsd xmm1, qword [eax]
movsd qword [eax], xmm1
movsd xmm1, qword [eax + 8]
addsd xmm1, xmm0
movsd qword [eax + 8], xmm1
movsd xmm1, qword [eax + 0x10]
addsd xmm1, xmm3
movsd qword [eax + 0x10], xmm1
add eax, 0x40
sub ecx, 1
jne 0x481970
cmp edx, edi
jge 0x481b22
mov eax, edx
shl eax, 4
mov ecx, edi
add eax, ebx
sub ecx, edx
lea esp, [esp]
movsd xmm1, qword [eax]
addsd xmm1, xmm0
movsd qword [eax], xmm1
movsd xmm1, qword [eax + 8]
addsd xmm1, xmm3
movsd qword [eax + 8], xmm1
add eax, 0x10
sub ecx, 1
jne 0x481a00
jmp 0x481b22
addsd xmm1, xmm3
addsd xmm1, xmm2
movsd xmm2, qword [esp + 0xec]
comisd xmm2, xmm1
jbe 0x481b22
xor edx, edx
cmp edi, 4
xorpd xmm3, xmm4
movapd xmm1, xmm3
jl 0x481ae6
lea ecx, [edi - 4]
shr ecx, 2
inc ecx
lea eax, [ebx + 0x28]
lea edx, [ecx*4]
jmp 0x481a70
movsd xmm2, qword [eax - 0x28]
addsd xmm2, xmm0
movsd qword [eax - 0x28], xmm2
movapd xmm2, xmm1
addsd xmm2, qword [eax - 0x20]
movsd qword [eax - 0x20], xmm2
movsd xmm2, qword [eax - 0x18]
addsd xmm2, xmm0
movsd qword [eax - 0x18], xmm2
movapd xmm2, xmm1
addsd xmm2, qword [eax - 0x10]
movsd qword [eax - 0x10], xmm2
movsd xmm2, qword [eax - 8]
addsd xmm2, xmm0
movsd qword [eax - 8], xmm2
movapd xmm2, xmm1
addsd xmm2, qword [eax]
movsd qword [eax], xmm2
movsd xmm2, qword [eax + 8]
addsd xmm2, xmm0
movsd qword [eax + 8], xmm2
movapd xmm2, xmm1
addsd xmm2, qword [eax + 0x10]
movsd qword [eax + 0x10], xmm2
add eax, 0x40
sub ecx, 1
jne 0x481a70
cmp edx, edi
jge 0x481b22
mov eax, edx
shl eax, 4
mov ecx, edi
add eax, ebx
sub ecx, edx
jmp 0x481b00
movsd xmm2, qword [eax]
addsd xmm2, xmm0
movsd qword [eax], xmm2
movapd xmm2, xmm1
addsd xmm2, qword [eax + 8]
movsd qword [eax + 8], xmm2
add eax, 0x10
sub ecx, 1
jne 0x481b00
cmp byte [esp + 0x17], 0
jne 0x481f0c
cmp byte [esp + 0x2e], 0
jne 0x481f0c
xor esi, esi
push edi
lea ecx, [esp + 0xa8]
mov dword [esp + 0xac], 1
mov dword [esp + 0xb0], esi
mov dword [esp + 0xa8], esi
call fcn.00412b00
xorps xmm0, xmm0
mov byte [esp + 0x2c0], 7
movsd qword [esp + 0xc4], xmm0
movsd qword [esp + 0xbc], xmm0
test edi, edi
jle 0x481e3c
mov eax, dword [esp + 0x30]
mov ecx, dword [ebp + 8]
fld qword [eax + esi*8]
mov edx, dword [ecx]
mov edx, dword [edx + 0x6c]
sub esp, 8
lea eax, [esp + 0x244]
fstp qword [esp]
push eax
call edx
movq xmm0, qword [eax]
movq qword [esp + 0xe4], xmm0
movq xmm0, qword [eax + 8]
movq qword [esp + 0xec], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [esp + 0xf4], xmm0
test esi, esi
jne 0x481c0f
mov eax, dword [esp + 0x54]
movsd xmm0, qword [eax + 0x10]
movsd xmm1, qword [eax + 0x18]
subsd xmm0, qword [eax]
subsd xmm1, qword [eax + 8]
lea ecx, [esp + 0xbc]
movq qword [esp + 0xbc], xmm0
movq qword [esp + 0xc4], xmm1
call fcn.004a7bc0
fstp qword [esp + 0x1c]
jmp 0x481d59
mov ecx, dword [esp + 0x54]
lea eax, [edi - 1]
cmp esi, eax
jne 0x481c67
lea eax, [edi - 2]
shl eax, 4
add eax, ecx
mov edx, edi
shl edx, 4
movsd xmm0, qword [edx + ecx - 0x10]
movsd xmm1, qword [edx + ecx - 8]
subsd xmm0, qword [eax]
subsd xmm1, qword [eax + 8]
lea ecx, [edx + ecx - 0x10]
lea ecx, [esp + 0xbc]
movq qword [esp + 0xbc], xmm0
movq qword [esp + 0xc4], xmm1
call fcn.004a7bc0
fstp qword [esp + 0x1c]
jmp 0x481d52
mov eax, esi
shl eax, 4
movsd xmm0, qword [eax + ecx]
movsd xmm1, qword [eax + ecx + 8]
subsd xmm0, qword [eax + ecx - 0x10]
subsd xmm1, qword [eax + ecx - 8]
lea ebx, [eax + ecx]
lea ecx, [esp + 0xbc]
movq qword [esp + 0xbc], xmm0
movq qword [esp + 0xc4], xmm1
call fcn.004a7bc0
fstp qword [esp + 0x1c]
xorps xmm0, xmm0
movsd qword [esp + 0x10c], xmm0
movsd qword [esp + 0x104], xmm0
movsd xmm0, qword [ebx + 0x10]
subsd xmm0, qword [ebx]
movsd qword [esp + 0x104], xmm0
movsd xmm0, qword [ebx + 0x18]
subsd xmm0, qword [ebx + 8]
lea ecx, [esp + 0x104]
movsd qword [esp + 0x10c], xmm0
call fcn.004a7bc0
fst qword [esp + 0xcc]
fld qword [esp + 0x1c]
fcompi st(1)
fstp st(0)
jbe 0x481d0e
movsd xmm0, qword [esp + 0xcc]
movsd qword [esp + 0x1c], xmm0
movsd xmm0, qword [esp + 0x104]
addsd xmm0, qword [esp + 0xbc]
movsd qword [esp + 0xbc], xmm0
movsd xmm0, qword [esp + 0x10c]
addsd xmm0, qword [esp + 0xc4]
lea ecx, [esp + 0xbc]
movsd qword [esp + 0xc4], xmm0
call fcn.004a7bc0
fstp st(0)
lea eax, [edi - 1]
cmp esi, eax
jne 0x481db3
mov edx, dword [esp + 0x54]
fld qword [0x5fc880]
mov ecx, dword [esp + 0x18]
mov ebx, esi
sub esp, 8
shl ebx, 4
fstp qword [esp]
lea eax, [edx + ebx]
push eax
call fcn.00472e00
test eax, eax
je 0x481db3
movsd xmm0, qword [esp + 0xbc]
movsd xmm2, qword [esp + 0x1c]
movsd xmm1, qword [esp + 0xc4]
mov eax, dword [esp + 0xa4]
mulsd xmm0, xmm2
mulsd xmm1, xmm2
movq qword [eax + ebx], xmm0
movq qword [eax + ebx + 8], xmm1
jmp 0x481e2f
mov ecx, dword [esp + 0x54]
mov edx, dword [esp + 0xa4]
mov eax, esi
shl eax, 4
add ecx, eax
lea ebx, [edx + eax]
push ecx
mov ecx, dword [esp + 0x1c]
lea eax, [esp + 0xe8]
push eax
push ebx
call fcn.0046a0f0
test al, al
jne 0x481e0a
movsd xmm0, qword [esp + 0xbc]
movsd xmm2, qword [esp + 0x1c]
movsd xmm1, qword [esp + 0xc4]
mulsd xmm0, xmm2
mulsd xmm1, xmm2
movq qword [ebx], xmm0
movq qword [ebx + 8], xmm1
jmp 0x481e2f
mov ecx, ebx
call fcn.004a7bc0
fstp st(0)
movsd xmm1, qword [ebx]
movsd xmm0, qword [esp + 0x1c]
mulsd xmm1, xmm0
mulsd xmm0, qword [ebx + 8]
movsd qword [ebx], xmm1
movsd qword [ebx + 8], xmm0
inc esi
cmp esi, edi
jl 0x481b85
mov ebx, dword [esp + 0x54]
push 0x88
call sub.MSVCR90.dll_void____cdecl_operator_new_unsigned_int_
add esp, 4
mov dword [esp + 0x1c], eax
mov esi, dword [esp + 0xa4]
mov byte [esp + 0x2c0], 8
test eax, eax
je 0x481ea7
push edi
push esi
push ebx
push edi
mov ecx, eax
call fcn.0052f3c0
mov edi, eax
test edi, edi
je 0x481e95
lea ecx, [esp + 0xe4]
push ecx
mov ecx, dword [esp + 0x1c]
call fcn.00470260
movq xmm0, qword [eax]
movq xmm1, qword [eax + 8]
movq qword [edi + 0x30], xmm0
movq qword [edi + 0x38], xmm1
test esi, esi
je 0x481eab
push esi
mov esi, dword [sym.imp.MSVCR90.dll_free]
call esi
add esp, 4
jmp 0x481eb1
xor edi, edi
jmp 0x481e95
mov esi, dword [sym.imp.MSVCR90.dll_free]
test ebx, ebx
je 0x481ebb
push ebx
call esi
add esp, 4
lea ecx, [esp + 0x68]
mov byte [esp + 0x2c0], 1
call fcn.005605c0
mov eax, dword [esp + 0x30]
xor ebx, ebx
cmp eax, ebx
je 0x481edc
push eax
call esi
add esp, 4
mov eax, dword [esp + 0x48]
mov dword [esp + 0x30], ebx
mov dword [esp + 0x38], ebx
cmp eax, ebx
je 0x481ef2
push eax
call esi
add esp, 4
mov eax, edi
mov ecx, dword [esp + 0x2b8]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x18
xor ebx, ebx
xor esi, esi
cmp edi, 2
jle 0x482140
cmp byte [esp + 0x17], 0
je 0x481f2b
mov edx, dword [esp + 0x54]
movsd xmm3, qword [edx + 8]
jmp 0x481f33
mov eax, dword [esp + 0x54]
movsd xmm3, qword [eax]
mov eax, 1
cmp edi, eax
movapd xmm2, xmm3
jle 0x4820e8
movsd xmm0, qword [0x5ff780]
lea ecx, [edi - 1]
cmp ecx, 4
jl 0x48208d
mov edx, dword [esp + 0x54]
add edx, 0x28
lea ecx, [eax + 2]
mov dword [esp + 0x24], edx
jmp 0x481f70
cmp byte [esp + 0x17], 0
mov edx, dword [esp + 0x24]
je 0x481f82
movsd xmm1, qword [edx - 0x10]
jmp 0x481f87
movsd xmm1, qword [edx - 0x18]
movapd xmm4, xmm2
subsd xmm4, xmm0
comisd xmm4, xmm1
jbe 0x481f9d
mov ebx, eax
movapd xmm2, xmm1
jmp 0x481fb1
movapd xmm4, xmm3
addsd xmm4, xmm0
comisd xmm1, xmm4
jbe 0x481fb1
mov esi, eax
movapd xmm3, xmm1
cmp byte [esp + 0x17], 0
mov edx, dword [esp + 0x24]
je 0x481fc2
movsd xmm1, qword [edx]
jmp 0x481fc7
movsd xmm1, qword [edx - 8]
movapd xmm4, xmm2
subsd xmm4, xmm0
comisd xmm4, xmm1
jbe 0x481fde
lea ebx, [ecx - 1]
movapd xmm2, xmm1
jmp 0x481ff3
movapd xmm4, xmm3
addsd xmm4, xmm0
comisd xmm1, xmm4
jbe 0x481ff3
lea esi, [ecx - 1]
movapd xmm3, xmm1
cmp byte [esp + 0x17], 0
mov edx, dword [esp + 0x24]
je 0x482005
movsd xmm1, qword [edx + 0x10]
jmp 0x48200a
movsd xmm1, qword [edx + 8]
movapd xmm4, xmm2
subsd xmm4, xmm0
comisd xmm4, xmm1
jbe 0x482020
mov ebx, ecx
movapd xmm2, xmm1
jmp 0x482034
movapd xmm4, xmm3
addsd xmm4, xmm0
comisd xmm1, xmm4
jbe 0x482034
mov esi, ecx
movapd xmm3, xmm1
cmp byte [esp + 0x17], 0
mov edx, dword [esp + 0x24]
je 0x482046
movsd xmm1, qword [edx + 0x20]
jmp 0x48204b
movsd xmm1, qword [edx + 0x18]
movapd xmm4, xmm2
subsd xmm4, xmm0
comisd xmm4, xmm1
jbe 0x482062
lea ebx, [ecx + 1]
movapd xmm2, xmm1
jmp 0x482077
movapd xmm4, xmm3
addsd xmm4, xmm0
comisd xmm1, xmm4
jbe 0x482077
lea esi, [ecx + 1]
movapd xmm3, xmm1
add dword [esp + 0x24], 0x40
add eax, 4
lea edx, [edi - 3]
add ecx, 4
cmp eax, edx
jl 0x481f70
cmp eax, edi
jge 0x4820e4
mov ecx, eax
shl ecx, 4
add ecx, dword [esp + 0x54]
lea ebx, [ebx]
cmp byte [esp + 0x17], 0
je 0x4820ae
movsd xmm1, qword [ecx + 8]
jmp 0x4820b2
movsd xmm1, qword [ecx]
movapd xmm4, xmm2
subsd xmm4, xmm0
comisd xmm4, xmm1
jbe 0x4820c8
mov ebx, eax
movapd xmm2, xmm1
jmp 0x4820dc
movapd xmm4, xmm3
addsd xmm4, xmm0
comisd xmm1, xmm4
jbe 0x4820dc
mov esi, eax
movapd xmm3, xmm1
inc eax
add ecx, 0x10
cmp eax, edi
jl 0x4820a0
cmp ebx, esi
jne 0x48210e
mov eax, dword [esp + 0x54]
push eax
mov esi, dword [sym.imp.MSVCR90.dll_free]
call esi
add esp, 4
lea ecx, [esp + 0x68]
mov byte [esp + 0x2c0], 1
call fcn.005605c0
jmp 0x48081f
jle 0x482116
mov eax, ebx
mov ebx, esi
mov esi, eax
mov ecx, dword [esp + 0x54]
shl ebx, 4
shl esi, 4
cmp byte [esp + 0x17], 0
lea eax, [ebx + ecx]
lea edi, [esi + ecx]
je 0x4821a2
movsd xmm0, qword [esp + 0x104]
movsd qword [eax], xmm0
movsd qword [edi], xmm0
jmp 0x4821b5
mov edi, dword [esp + 0x54]
movsd qword [esp + 0x8c], xmm0
movsd qword [esp + 0x84], xmm0
movsd xmm0, qword [edi]
subsd xmm0, qword [edi + 0x10]
movsd qword [esp + 0x84], xmm0
movsd xmm0, qword [edi + 8]
subsd xmm0, qword [edi + 0x18]
lea ecx, [esp + 0x84]
mov esi, 1
movsd qword [esp + 0x8c], xmm0
call fcn.004a7500
fld qword [0x5ff780]
fcompi st(1)
fstp st(0)
jbe 0x482116
push edi
jmp 0x4820ed
movsd xmm0, qword [esp + 0xa4]
movsd qword [eax + 8], xmm0
movsd qword [edi + 8], xmm0
push eax
lea ecx, [esp + 0x240]
call fcn.004ae170
push edi
lea ecx, [esp + 0xe8]
mov byte [esp + 0x2c4], 4
call fcn.004ae170
push 0x88
mov byte [esp + 0x2c4], 5
call sub.MSVCR90.dll_void____cdecl_operator_new_unsigned_int_
add esp, 4
mov dword [esp + 0x1c], eax
xor edi, edi
mov byte [esp + 0x2c0], 6
cmp eax, edi
je 0x482219
lea ecx, [esp + 0xe4]
push ecx
lea edx, [esp + 0x240]
push edx
mov ecx, eax
call fcn.004ac780
mov ebx, eax
jmp 0x48221b
xor ebx, ebx
mov esi, dword [sym.imp.MSVCR90.dll_free]
mov eax, vtable.CGeom2d_Abs.0
mov dword [esp + 0xe4], eax
mov dword [esp + 0x23c], eax
mov eax, dword [esp + 0x54]
push eax
call esi
add esp, 4
lea ecx, [esp + 0x68]
mov byte [esp + 0x2c0], 1
call fcn.005605c0
mov eax, dword [esp + 0x30]
cmp eax, edi
je 0x48225d
push eax
call esi
add esp, 4
mov eax, dword [esp + 0x48]
mov dword [esp + 0x30], edi
mov dword [esp + 0x38], edi
cmp eax, edi
je 0x482273
push eax
call esi
add esp, 4
mov eax, ebx
mov ecx, dword [esp + 0x2b8]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x18