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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xffffffc0
sub esp, 0x174
push ebx
mov ebx, dword [ebp + 0xc]
push esi
push edi
mov edi, dword [ebp + 8]
movsd xmm0, qword [edi + 0x48]
movsd qword [esp + 0x78], xmm0
movsd xmm0, qword [edi + 0x50]
movsd qword [esp + 0xa8], xmm0
movsd xmm0, qword [edi + 0x10]
movsd qword [esp + 0x10], xmm0
movsd xmm0, qword [edi + 0x18]
movsd qword [esp + 0x40], xmm0
movsd xmm0, qword [ebx + 0x48]
movsd qword [esp + 0x18], xmm0
movsd xmm0, qword [ebx + 0x50]
movsd qword [esp + 0xe8], xmm0
movsd xmm0, qword [ebx + 0x10]
mov esi, ecx
lea eax, [edi + 0x88]
movsd qword [esp + 0x80], xmm0
movsd xmm0, qword [ebx + 0x18]
lea ecx, [edi + 0x98]
mov dword [esp + 0x54], eax
mov dword [esp + 0xb8], ecx
lea edx, [ebx + 0x88]
lea eax, [ebx + 0x98]
movsd qword [esp + 0x30], xmm0
xorps xmm0, xmm0
mov ecx, edi
mov dword [esp + 0xc8], edx
mov dword [esp + 0x28], eax
movsd qword [esp + 0x70], xmm0
movsd qword [esp + 0x68], xmm0
movsd qword [esp + 0x60], xmm0
movsd qword [esp + 0x58], xmm0
call fcn.004d98d0
mov byte [esp + 0x26], al
test al, al
je 0x5549d0
mov edx, dword [edi]
fld qword [esp + 0x10]
mov edx, dword [edx + 0x4c]
sub esp, 8
lea eax, [esp + 0x100]
fstp qword [esp]
push eax
mov ecx, edi
call edx
fld qword [esp + 0x40]
movq xmm0, qword [eax]
sub esp, 8
movq qword [esp + 0x70], xmm0
fstp qword [esp]
movq xmm0, qword [eax + 8]
mov eax, dword [edi]
mov edx, dword [eax + 0x4c]
lea ecx, [esp + 0x100]
push ecx
mov ecx, edi
movq qword [esp + 0x7c], xmm0
call edx
movq xmm0, qword [eax]
movq qword [esp + 0x58], xmm0
movq xmm0, qword [eax + 8]
movq qword [esp + 0x60], xmm0
xorps xmm0, xmm0
mov ecx, ebx
movsd qword [esp + 0x90], xmm0
movsd qword [esp + 0x88], xmm0
movsd qword [esp + 0xa0], xmm0
movsd qword [esp + 0x98], xmm0
call fcn.004d98d0
mov byte [esp + 0x27], al
test al, al
je 0x554a75
fld qword [esp + 0x80]
mov eax, dword [ebx]
mov edx, dword [eax + 0x4c]
sub esp, 8
lea ecx, [esp + 0x100]
fstp qword [esp]
push ecx
mov ecx, ebx
call edx
fld qword [esp + 0x30]
movq xmm0, qword [eax]
sub esp, 8
movq qword [esp + 0x90], xmm0
fstp qword [esp]
movq xmm0, qword [eax + 8]
mov eax, dword [ebx]
mov edx, dword [eax + 0x4c]
lea ecx, [esp + 0x100]
push ecx
mov ecx, ebx
movq qword [esp + 0x9c], xmm0
call edx
movq xmm0, qword [eax]
movq qword [esp + 0x98], xmm0
movq xmm0, qword [eax + 8]
movq qword [esp + 0xa0], xmm0
mov eax, dword [esp + 0xc8]
mov ecx, dword [esp + 0x54]
push eax
call fcn.004a74a0
fabs
fld qword [0x5ff758]
fcompi st(1)
fstp st(0)
jbe 0x5551c4
mov ecx, dword [esp + 0x28]
push ecx
mov ecx, dword [esp + 0xbc]
call fcn.004a74a0
fabs
fld qword [0x5ff758]
fcompi st(1)
fstp st(0)
jbe 0x5551c4
movsd xmm0, qword [edi + 0x78]
fld qword [esi]
subsd xmm0, qword [ebx + 0x78]
fstp qword [esp + 0x10]
movsd qword [esp + 0x30], xmm0
movsd xmm0, qword [edi + 0x80]
subsd xmm0, qword [ebx + 0x80]
lea ecx, [esp + 0x30]
movsd qword [esp + 0x38], xmm0
call fcn.004a7500
fld qword [esp + 0x10]
fcompi st(1)
fstp st(0)
jbe 0x5551c4
movsd xmm2, qword [esp + 0x78]
subsd xmm2, qword [esp + 0x18]
movsd xmm0, qword [0x5fc860]
movsd xmm1, qword [esp + 0x10]
andpd xmm2, xmm0
comisd xmm1, xmm2
jbe 0x5551c4
movsd xmm2, qword [esp + 0xa8]
subsd xmm2, qword [esp + 0xe8]
andpd xmm2, xmm0
comisd xmm1, xmm2
jbe 0x5551c4
cmp byte [esp + 0x26], 0
je 0x5551c4
cmp byte [esp + 0x27], 0
je 0x5551c4
movsd xmm0, qword [esp + 0x68]
subsd xmm0, qword [esp + 0x88]
movsd qword [esp + 0x30], xmm0
movsd xmm0, qword [esp + 0x70]
subsd xmm0, qword [esp + 0x90]
xor eax, eax
lea ecx, [esp + 0x30]
mov dword [esp + 0x18], eax
mov dword [esp + 0x10], eax
movsd qword [esp + 0x38], xmm0
call fcn.004a7500
fld qword [esi]
fcompi st(1)
fstp st(0)
jbe 0x554c14
mov eax, dword [esi + 0x58]
movq xmm0, qword [esp + 0x68]
lea edx, [eax + eax*4]
mov eax, dword [esi + 0x4c]
movq qword [eax + edx*8], xmm0
movq xmm0, qword [esp + 0x70]
lea eax, [eax + edx*8]
movq qword [eax + 8], xmm0
mov eax, dword [esi + 0x58]
mov edx, dword [esi + 0x4c]
lea ecx, [eax + eax*4]
mov dword [edx + ecx*8 + 0x20], 0x14
mov eax, dword [esi + 0x58]
mov ecx, dword [esi + 0x4c]
lea eax, [eax + eax*4]
or dword [ecx + eax*8 + 0x20], 0x40
fld qword [edi + 0x10]
lea eax, [ecx + eax*8 + 0x20]
mov eax, dword [esi + 0x58]
lea edx, [eax + eax*4]
mov eax, dword [esi + 0x4c]
fstp qword [eax + edx*8 + 0x10]
mov eax, dword [esi + 0x58]
mov edx, dword [esi + 0x4c]
fld qword [ebx + 0x10]
lea ecx, [eax + eax*4]
mov eax, 1
fstp qword [edx + ecx*8 + 0x18]
mov dword [esp + 0x18], eax
jmp 0x554cc1
movsd xmm0, qword [esp + 0x68]
subsd xmm0, qword [esp + 0x98]
movsd qword [esp + 0x30], xmm0
movsd xmm0, qword [esp + 0x70]
subsd xmm0, qword [esp + 0xa0]
lea ecx, [esp + 0x30]
movsd qword [esp + 0x38], xmm0
call fcn.004a7500
fld qword [esi]
fcompi st(1)
fstp st(0)
jbe 0x554cc8
mov eax, dword [esi + 0x58]
mov ecx, dword [esi + 0x4c]
movq xmm0, qword [esp + 0x68]
lea eax, [eax + eax*4]
movq qword [ecx + eax*8], xmm0
movq xmm0, qword [esp + 0x70]
lea eax, [ecx + eax*8]
movq qword [eax + 8], xmm0
mov eax, dword [esi + 0x58]
lea edx, [eax + eax*4]
mov eax, dword [esi + 0x4c]
mov dword [eax + edx*8 + 0x20], 0x24
mov eax, dword [esi + 0x58]
mov edx, dword [esi + 0x4c]
lea ecx, [eax + eax*4]
or dword [edx + ecx*8 + 0x20], 0x40
fld qword [edi + 0x10]
lea eax, [edx + ecx*8 + 0x20]
mov eax, dword [esi + 0x58]
mov ecx, dword [esi + 0x4c]
lea eax, [eax + eax*4]
fstp qword [ecx + eax*8 + 0x10]
mov eax, dword [esi + 0x58]
fld qword [ebx + 0x18]
lea edx, [eax + eax*4]
mov eax, dword [esi + 0x4c]
fstp qword [eax + edx*8 + 0x18]
mov eax, 1
mov dword [esp + 0x18], 2
add dword [esi + 0x58], eax
mov dword [esp + 0x10], eax
movsd xmm0, qword [esp + 0x58]
subsd xmm0, qword [esp + 0x88]
movsd qword [esp + 0x30], xmm0
movsd xmm0, qword [esp + 0x60]
subsd xmm0, qword [esp + 0x90]
lea ecx, [esp + 0x30]
movsd qword [esp + 0x38], xmm0
call fcn.004a7500
fld qword [esi]
fcompi st(1)
fstp st(0)
jbe 0x554d87
mov eax, dword [esi + 0x58]
mov edx, dword [esi + 0x4c]
movq xmm0, qword [esp + 0x58]
lea ecx, [eax + eax*4]
movq qword [edx + ecx*8], xmm0
movq xmm0, qword [esp + 0x60]
movq qword [edx + ecx*8 + 8], xmm0
lea eax, [edx + ecx*8]
mov eax, dword [esi + 0x58]
mov ecx, dword [esi + 0x4c]
lea eax, [eax + eax*4]
mov dword [ecx + eax*8 + 0x20], 0x18
mov eax, dword [esi + 0x58]
lea edx, [eax + eax*4]
mov eax, dword [esi + 0x4c]
or dword [eax + edx*8 + 0x20], 0x40
fld qword [edi + 0x18]
lea eax, [eax + edx*8 + 0x20]
mov eax, dword [esi + 0x58]
mov edx, dword [esi + 0x4c]
lea ecx, [eax + eax*4]
fstp qword [edx + ecx*8 + 0x10]
mov eax, dword [esi + 0x58]
fld qword [ebx + 0x10]
mov ecx, dword [esi + 0x4c]
lea eax, [eax + eax*4]
fstp qword [ecx + eax*8 + 0x18]
mov eax, 1
add dword [esi + 0x58], eax
add dword [esp + 0x10], eax
mov eax, 3
mov dword [esp + 0x18], eax
jmp 0x554e40
movsd xmm0, qword [esp + 0x58]
subsd xmm0, qword [esp + 0x98]
movsd qword [esp + 0x30], xmm0
movsd xmm0, qword [esp + 0x60]
subsd xmm0, qword [esp + 0xa0]
lea ecx, [esp + 0x30]
movsd qword [esp + 0x38], xmm0
call fcn.004a7500
fld qword [esi]
fcompi st(1)
fstp st(0)
jbe 0x554e3c
mov eax, dword [esi + 0x58]
movq xmm0, qword [esp + 0x58]
lea edx, [eax + eax*4]
mov eax, dword [esi + 0x4c]
movq qword [eax + edx*8], xmm0
movq xmm0, qword [esp + 0x60]
movq qword [eax + edx*8 + 8], xmm0
lea eax, [eax + edx*8]
mov eax, dword [esi + 0x58]
mov edx, dword [esi + 0x4c]
lea ecx, [eax + eax*4]
mov dword [edx + ecx*8 + 0x20], 0x28
mov eax, dword [esi + 0x58]
mov ecx, dword [esi + 0x4c]
lea eax, [eax + eax*4]
or dword [ecx + eax*8 + 0x20], 0x40
fld qword [edi + 0x18]
lea eax, [ecx + eax*8 + 0x20]
mov eax, dword [esi + 0x58]
lea edx, [eax + eax*4]
mov eax, dword [esi + 0x4c]
fstp qword [eax + edx*8 + 0x10]
mov eax, dword [esi + 0x58]
fld qword [ebx + 0x18]
mov edx, dword [esi + 0x4c]
lea ecx, [eax + eax*4]
mov eax, 1
fstp qword [edx + ecx*8 + 0x18]
add dword [esi + 0x58], eax
add dword [esp + 0x10], eax
mov dword [esp + 0x18], 4
mov eax, dword [esp + 0x18]
cmp dword [esp + 0x10], 1
jle 0x554edd
mov eax, dword [esp + 0xb8]
mov ecx, dword [esp + 0x54]
push eax
call fcn.004a74a0
fstp qword [esp + 0x30]
mov ecx, dword [esp + 0x28]
push ecx
mov ecx, dword [esp + 0xcc]
call fcn.004a74a0
fmul qword [esp + 0x30]
fldz
fxch st(1)
fcompi st(1)
fstp st(0)
jbe 0x554e83
mov al, 1
jmp 0x554e85
xor al, al
mov ecx, dword [esp + 0x18]
cmp ecx, 3
jne 0x554e9d
test al, al
jne 0x554eae
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
cmp ecx, 4
jne 0x555968
test al, al
jne 0x555968
mov eax, dword [esi + 0x58]
lea edx, [eax + eax*4]
mov eax, dword [esi + 0x4c]
and dword [eax + edx*8 - 0x30], 0xffffffbf
lea eax, [eax + edx*8 - 0x30]
mov eax, dword [esi + 0x58]
mov edx, dword [esi + 0x4c]
lea ecx, [eax + eax*4]
and dword [edx + ecx*8 - 8], 0xffffffbf
lea eax, [edx + ecx*8 - 8]
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
cmp eax, 1
je 0x554f8a
cmp eax, 2
je 0x554f8a
mov eax, dword [ebx]
mov edx, dword [eax + 0x48]
lea ecx, [esp + 0x68]
push ecx
mov ecx, ebx
call edx
fst qword [esp + 0x28]
fld qword [ebx + 0x10]
fxch st(1)
fcompi st(1)
fstp st(0)
jbe 0x554f86
movsd xmm1, qword [ebx + 0x18]
movsd xmm0, qword [esp + 0x28]
comisd xmm1, xmm0
jbe 0x554f86
mov eax, dword [esi + 0x58]
mov ecx, dword [esi + 0x4c]
movq xmm1, qword [esp + 0x68]
lea eax, [eax + eax*4]
movq qword [ecx + eax*8], xmm1
movq xmm1, qword [esp + 0x70]
lea eax, [ecx + eax*8]
movq qword [eax + 8], xmm1
mov eax, dword [esi + 0x58]
lea edx, [eax + eax*4]
mov eax, dword [esi + 0x4c]
mov dword [eax + edx*8 + 0x20], 0x46
fld qword [edi + 0x10]
mov eax, dword [esi + 0x58]
mov edx, dword [esi + 0x4c]
lea ecx, [eax + eax*4]
fstp qword [edx + ecx*8 + 0x10]
mov eax, dword [esi + 0x58]
mov ecx, dword [esi + 0x4c]
lea eax, [eax + eax*4]
movsd qword [ecx + eax*8 + 0x18], xmm0
mov eax, 1
add dword [esi + 0x58], eax
cmp dword [esp + 0x10], 0
jne 0x555968
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x18]
cmp eax, 3
je 0x555037
cmp eax, 4
je 0x555037
mov edx, dword [ebx]
mov edx, dword [edx + 0x48]
lea eax, [esp + 0x58]
push eax
mov ecx, ebx
call edx
fst qword [esp + 0x28]
fld qword [ebx + 0x10]
fxch st(1)
fcompi st(1)
fstp st(0)
jbe 0x555033
movsd xmm1, qword [ebx + 0x18]
movsd xmm0, qword [esp + 0x28]
comisd xmm1, xmm0
jbe 0x555033
mov eax, dword [esi + 0x58]
mov ecx, dword [esi + 0x4c]
movq xmm1, qword [esp + 0x58]
lea eax, [eax + eax*4]
movq qword [ecx + eax*8], xmm1
movq xmm1, qword [esp + 0x60]
lea eax, [ecx + eax*8]
movq qword [eax + 8], xmm1
mov eax, dword [esi + 0x58]
lea edx, [eax + eax*4]
mov eax, dword [esi + 0x4c]
mov dword [eax + edx*8 + 0x20], 0x4a
fld qword [edi + 0x18]
mov eax, dword [esi + 0x58]
mov edx, dword [esi + 0x4c]
lea ecx, [eax + eax*4]
fstp qword [edx + ecx*8 + 0x10]
mov eax, dword [esi + 0x58]
mov ecx, dword [esi + 0x4c]
lea eax, [eax + eax*4]
movsd qword [ecx + eax*8 + 0x18], xmm0
mov eax, 1
add dword [esi + 0x58], eax
cmp dword [esp + 0x10], 0
jne 0x555968
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x18]
cmp eax, 1
je 0x5550e4
cmp eax, 3
je 0x5550e4
mov edx, dword [edi]
mov edx, dword [edx + 0x48]
lea eax, [esp + 0x88]
push eax
mov ecx, edi
call edx
fst qword [esp + 0x28]
fld qword [edi + 0x10]
fxch st(1)
fcompi st(1)
fstp st(0)
jbe 0x5550e0
movsd xmm1, qword [edi + 0x18]
movsd xmm0, qword [esp + 0x28]
comisd xmm1, xmm0
jbe 0x5550e0
mov eax, dword [esi + 0x58]
mov ecx, dword [esi + 0x4c]
movq xmm1, qword [esp + 0x88]
lea eax, [eax + eax*4]
movq qword [ecx + eax*8], xmm1
movq xmm1, qword [esp + 0x90]
lea eax, [ecx + eax*8]
movq qword [eax + 8], xmm1
mov eax, dword [esi + 0x58]
lea edx, [eax + eax*4]
mov eax, dword [esi + 0x4c]
mov dword [eax + edx*8 + 0x20], 0x51
fld qword [ebx + 0x10]
mov eax, dword [esi + 0x58]
mov edx, dword [esi + 0x4c]
lea ecx, [eax + eax*4]
fstp qword [edx + ecx*8 + 0x18]
mov eax, dword [esi + 0x58]
mov ecx, dword [esi + 0x4c]
lea eax, [eax + eax*4]
movsd qword [ecx + eax*8 + 0x10], xmm0
inc dword [esi + 0x58]
cmp dword [esp + 0x10], 0
jne 0x555968
mov eax, dword [esp + 0x18]
cmp eax, 2
je 0x55519c
cmp eax, 4
je 0x55519c
mov edx, dword [edi]
mov edx, dword [edx + 0x48]
lea eax, [esp + 0x98]
push eax
mov ecx, edi
call edx
fst qword [esp + 0x28]
fld qword [edi + 0x10]
fxch st(1)
fcompi st(1)
fstp st(0)
jbe 0x55519c
movsd xmm1, qword [edi + 0x18]
movsd xmm0, qword [esp + 0x28]
comisd xmm1, xmm0
jbe 0x55519c
mov eax, dword [esi + 0x58]
mov ecx, dword [esi + 0x4c]
movq xmm1, qword [esp + 0x98]
lea eax, [eax + eax*4]
movq qword [ecx + eax*8], xmm1
movq xmm1, qword [esp + 0xa0]
lea eax, [ecx + eax*8]
movq qword [eax + 8], xmm1
mov eax, dword [esi + 0x58]
lea edx, [eax + eax*4]
mov eax, dword [esi + 0x4c]
mov dword [eax + edx*8 + 0x20], 0x61
fld qword [ebx + 0x18]
mov eax, dword [esi + 0x58]
mov edx, dword [esi + 0x4c]
lea ecx, [eax + eax*4]
fstp qword [edx + ecx*8 + 0x18]
mov eax, dword [esi + 0x58]
mov ecx, dword [esi + 0x4c]
lea eax, [eax + eax*4]
movsd qword [ecx + eax*8 + 0x10], xmm0
inc dword [esi + 0x58]
cmp dword [esp + 0x10], 0
je 0x55546c
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
cmp dword [esp + 0x10], 0
je 0x55546c
mov eax, dword [esi + 0x58]
lea edx, [eax + eax*4]
mov eax, dword [esi + 0x4c]
and dword [eax + edx*8 - 8], 0xffffffbf
lea eax, [eax + edx*8 - 8]
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
mov ecx, dword [esp + 0xb8]
mov edx, dword [esp + 0x54]
push ecx
push edx
lea ecx, [esp + 0x130]
call fcn.004ac3b0
lea ecx, [esp + 0x128]
call fcn.004ac340
lea eax, [esp + 0xd8]
push eax
lea ecx, [edi + 0x78]
call fcn.004a8100
mov edx, dword [ebx]
mov eax, dword [edx + 0x38]
mov ecx, ebx
call eax
mov edx, dword [eax]
mov edx, dword [edx + 0xc]
lea ecx, [esp + 0xd8]
push ecx
mov ecx, eax
mov dword [esp + 0x14], eax
call edx
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx]
mov eax, dword [eax + 0x14]
lea edx, [esp + 0x128]
push edx
call eax
fld qword [0x5ff770]
mov eax, dword [esp + 0x10]
movsd xmm0, qword [eax + 0x78]
mov ecx, dword [esp + 0x54]
sub esp, 8
fstp qword [esp]
movsd qword [esp + 0x30], xmm0
movsd xmm0, qword [eax + 0x80]
push ecx
mov ecx, dword [esp + 0xd4]
movsd qword [esp + 0xc4], xmm0
call fcn.004a82c0
fst qword [esp + 0x30]
movsd xmm0, qword [esp + 0xa8]
mulsd xmm0, xmm0
movsd qword [esp + 0xa8], xmm0
movsd xmm0, qword [esp + 0x78]
mulsd xmm0, xmm0
movsd qword [esp + 0x40], xmm0
movsd xmm0, qword [esp + 0xe8]
mulsd xmm0, xmm0
movsd qword [esp + 0xc8], xmm0
movsd xmm0, qword [esp + 0x18]
mulsd xmm0, xmm0
movsd qword [esp + 0x80], xmm0
call sub.MSVCR90.dll__CIcos
fstp qword [esp + 0x78]
fld qword [esp + 0x30]
call sub.MSVCR90.dll__CIsin
fstp qword [esp + 0x30]
movsd xmm0, qword [esp + 0x80]
movsd xmm5, qword [esp + 0x78]
movsd xmm2, qword [esp + 0xa8]
movsd xmm3, qword [esp + 0x30]
movsd xmm1, qword [esp + 0x40]
movapd xmm4, xmm0
mulsd xmm0, xmm2
mulsd xmm0, xmm5
mulsd xmm0, xmm5
movapd xmm6, xmm0
movsd xmm0, qword [esp + 0xc8]
movapd xmm7, xmm0
mulsd xmm4, xmm1
mulsd xmm7, xmm1
mulsd xmm0, xmm2
mulsd xmm4, xmm3
mulsd xmm7, xmm5
mulsd xmm0, xmm3
mulsd xmm4, xmm3
movsd qword [esp + 0x30], xmm6
mulsd xmm7, xmm5
mulsd xmm0, xmm3
subsd xmm7, xmm0
fld qword [0x5ff788]
addsd xmm7, xmm4
subsd xmm7, xmm6
movsd xmm6, qword [esp + 0xe8]
movsd qword [esp + 0x148], xmm7
movapd xmm0, xmm6
mulsd xmm0, qword [esp + 0x18]
mulsd xmm0, xmm5
mulsd xmm0, xmm3
movapd xmm7, xmm1
xorpd xmm7, xmmword [0x5fc740]
subsd xmm7, xmm2
mulsd xmm2, qword [esp + 0xb8]
mulsd xmm0, xmm7
movsd qword [esp + 0x150], xmm0
movapd xmm0, xmm1
mulsd xmm0, qword [esp + 0x28]
mulsd xmm1, qword [esp + 0xa8]
movapd xmm7, xmm0
mulsd xmm7, xmm5
movapd xmm5, xmm2
mulsd xmm5, xmm3
subsd xmm7, xmm5
movsd xmm5, qword [0x5fcc60]
mulsd xmm6, xmm5
mulsd xmm7, xmm6
movapd xmm6, xmm0
mulsd xmm0, qword [esp + 0x28]
mulsd xmm6, xmm3
xorpd xmm6, xmmword [0x5fc740]
movapd xmm3, xmm2
mulsd xmm3, qword [esp + 0x78]
mulsd xmm2, qword [esp + 0xb8]
sub esp, 8
subsd xmm6, xmm3
fstp qword [esp]
movsd xmm3, qword [esp + 0x20]
subsd xmm0, xmm2
lea edx, [esp + 0x150]
subsd xmm0, xmm1
push edx
lea eax, [esp + 0x114]
mulsd xmm3, xmm5
subsd xmm0, xmm4
addsd xmm0, qword [esp + 0x3c]
mulsd xmm6, xmm3
push eax
movsd qword [esp + 0x168], xmm7
movsd qword [esp + 0x170], xmm6
movsd qword [esp + 0x178], xmm0
call fcn.005a2080
add esp, 0x10
mov dword [esp + 0x28], eax
test eax, eax
jne 0x55547a
mov ecx, dword [esp + 0x10]
mov edx, dword [ecx]
mov eax, dword [edx]
push 1
call eax
mov eax, 3
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
movsd xmm1, qword [esp + 0xd8]
movsd xmm0, qword [0x5fc740]
xorpd xmm1, xmm0
movsd qword [esp + 0xd8], xmm1
movsd xmm1, qword [esp + 0xe0]
xorpd xmm1, xmm0
lea ecx, [esp + 0x128]
movsd qword [esp + 0xe0], xmm1
call fcn.004ac340
xor ecx, ecx
cmp dword [esp + 0x28], ecx
mov dword [esi + 0x58], ecx
mov dword [esp + 0x18], ecx
jle 0x55595c
jmp 0x5554d2
xor ecx, ecx
mov eax, dword [esi + 0x58]
lea edx, [eax + eax*4]
mov eax, dword [esi + 0x4c]
mov dword [eax + edx*8 + 0x20], ecx
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x10]
fld qword [esp + eax*8 + 0x108]
mov edx, dword [ecx]
mov edx, dword [edx + 0x4c]
sub esp, 8
lea eax, [esp + 0x48]
fstp qword [esp]
push eax
call edx
lea eax, [esp + 0x128]
push eax
lea ecx, [esp + 0x44]
call fcn.004a7750
lea ecx, [esp + 0xd8]
push ecx
lea ecx, [esp + 0x44]
call fcn.004a8540
mov eax, dword [esi + 0x58]
test eax, eax
jle 0x55554c
lea edx, [eax + eax*4]
mov eax, dword [esi + 0x4c]
lea ecx, [esp + 0x40]
push ecx
lea eax, [eax + edx*8 - 0x28]
push eax
mov ecx, esi
call fcn.00551920
fld qword [esi]
fcompi st(1)
fstp st(0)
ja 0x555949
mov edx, dword [edi]
mov edx, dword [edx + 0x48]
lea eax, [esp + 0x40]
push eax
mov ecx, edi
call edx
fst qword [esp + 0x78]
mov eax, dword [edi]
mov edx, dword [eax + 0x4c]
sub esp, 8
lea ecx, [esp + 0x178]
fstp qword [esp]
push ecx
mov ecx, edi
call edx
xorps xmm0, xmm0
movsd qword [esp + 0xb0], xmm0
movsd qword [esp + 0xa8], xmm0
movsd xmm0, qword [esp + 0x40]
subsd xmm0, qword [eax]
movsd qword [esp + 0xa8], xmm0
movsd xmm0, qword [esp + 0x48]
subsd xmm0, qword [eax + 8]
lea ecx, [esp + 0xa8]
movsd qword [esp + 0xb0], xmm0
call fcn.004a7500
fld qword [0x5ff758]
fcompi st(1)
fstp st(0)
jbe 0x555949
cmp byte [esp + 0x27], 0
je 0x55577c
movsd xmm0, qword [esp + 0x88]
subsd xmm0, qword [esp + 0x40]
movsd qword [esp + 0xe8], xmm0
movsd xmm0, qword [esp + 0x90]
subsd xmm0, qword [esp + 0x48]
lea ecx, [esp + 0xe8]
movsd qword [esp + 0xf0], xmm0
call fcn.004a7500
fstp qword [esp + 0x30]
movsd xmm0, qword [esp + 0x98]
subsd xmm0, qword [esp + 0x40]
movsd qword [esp + 0xc8], xmm0
movsd xmm0, qword [esp + 0xa0]
subsd xmm0, qword [esp + 0x48]
lea ecx, [esp + 0xc8]
movsd qword [esp + 0xd0], xmm0
call fcn.004a7500
fstp qword [esp + 0x80]
movsd xmm0, qword [esi]
comisd xmm0, xmmword [esp + 0x30]
jbe 0x5556b6
mov eax, dword [esi + 0x58]
mov ecx, dword [esi + 0x4c]
movq xmm0, qword [esp + 0x88]
lea eax, [eax + eax*4]
movq qword [ecx + eax*8], xmm0
movq xmm0, qword [esp + 0x90]
lea eax, [ecx + eax*8]
movq qword [eax + 8], xmm0
fld qword [ebx + 0x10]
mov eax, dword [esi + 0x58]
lea edx, [eax + eax*4]
mov eax, dword [esi + 0x4c]
fstp qword [eax + edx*8 + 0x18]
mov eax, dword [esi + 0x58]
mov edx, dword [esi + 0x4c]
lea ecx, [eax + eax*4]
or dword [edx + ecx*8 + 0x20], 0x10
lea eax, [edx + ecx*8 + 0x20]
jmp 0x5557c5
comisd xmm0, xmmword [esp + 0x80]
jbe 0x555710
mov eax, dword [esi + 0x58]
mov ecx, dword [esi + 0x4c]
movq xmm0, qword [esp + 0x98]
lea eax, [eax + eax*4]
movq qword [ecx + eax*8], xmm0
movq xmm0, qword [esp + 0xa0]
lea eax, [ecx + eax*8]
movq qword [eax + 8], xmm0
fld qword [ebx + 0x18]
mov eax, dword [esi + 0x58]
lea edx, [eax + eax*4]
mov eax, dword [esi + 0x4c]
fstp qword [eax + edx*8 + 0x18]
mov eax, dword [esi + 0x58]
mov edx, dword [esi + 0x4c]
lea ecx, [eax + eax*4]
or dword [edx + ecx*8 + 0x20], 0x20
lea eax, [edx + ecx*8 + 0x20]
jmp 0x5557c5
mov ecx, dword [esp + 0x18]
movsd xmm0, qword [esp + ecx*8 + 0x108]
movsd xmm1, qword [ebx + 0x10]
comisd xmm1, xmm0
ja 0x555949
comisd xmm0, xmmword [ebx + 0x18]
ja 0x555949
mov eax, dword [esi + 0x58]
mov edx, dword [esi + 0x4c]
movq xmm0, qword [esp + 0x40]
lea eax, [eax + eax*4]
movq qword [edx + eax*8], xmm0
movq xmm0, qword [esp + 0x48]
lea eax, [edx + eax*8]
movq qword [eax + 8], xmm0
fld qword [esp + ecx*8 + 0x108]
mov eax, dword [esi + 0x58]
mov edx, dword [esi + 0x4c]
lea eax, [eax + eax*4]
fstp qword [edx + eax*8 + 0x18]
mov eax, dword [esi + 0x58]
mov ecx, dword [esi + 0x4c]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8 + 0x20]
jmp 0x5557c2
mov eax, dword [esi + 0x58]
movq xmm0, qword [esp + 0x40]
lea edx, [eax + eax*4]
mov eax, dword [esi + 0x4c]
lea eax, [eax + edx*8]
movq qword [eax], xmm0
movq xmm0, qword [esp + 0x48]
movq qword [eax + 8], xmm0
mov eax, dword [esi + 0x58]
mov edx, dword [esi + 0x4c]
lea ecx, [eax + eax*4]
mov eax, dword [esp + 0x18]
fld qword [esp + eax*8 + 0x108]
fstp qword [edx + ecx*8 + 0x18]
mov eax, dword [esi + 0x58]
mov edx, dword [esi + 0x4c]
lea ecx, [eax + eax*4]
lea eax, [edx + ecx*8 + 0x20]
or dword [eax], 2
cmp byte [esp + 0x26], 0
je 0x555921
movsd xmm0, qword [esp + 0x68]
subsd xmm0, qword [esp + 0x40]
movsd qword [esp + 0xb8], xmm0
movsd xmm0, qword [esp + 0x70]
subsd xmm0, qword [esp + 0x48]
lea ecx, [esp + 0xb8]
movsd qword [esp + 0xc0], xmm0
call fcn.004a7500
fstp qword [esp + 0x30]
movsd xmm0, qword [esp + 0x58]
subsd xmm0, qword [esp + 0x40]
movsd qword [esp + 0xf8], xmm0
movsd xmm0, qword [esp + 0x60]
subsd xmm0, qword [esp + 0x48]
lea ecx, [esp + 0xf8]
movsd qword [esp + 0x100], xmm0
call fcn.004a7500
fstp qword [esp + 0x80]
movsd xmm0, qword [esi]
comisd xmm0, xmmword [esp + 0x30]
jbe 0x55589b
mov eax, dword [esi + 0x58]
mov ecx, dword [esi + 0x4c]
lea eax, [eax + eax*4]
or dword [ecx + eax*8 + 0x20], 4
movq xmm0, qword [esp + 0x68]
lea eax, [ecx + eax*8 + 0x20]
mov eax, dword [esi + 0x58]
lea edx, [eax + eax*4]
mov eax, dword [esi + 0x4c]
lea eax, [eax + edx*8]
movq qword [eax], xmm0
movq xmm0, qword [esp + 0x70]
movq qword [eax + 8], xmm0
fld qword [edi + 0x10]
mov eax, dword [esi + 0x58]
mov edx, dword [esi + 0x4c]
lea ecx, [eax + eax*4]
fstp qword [edx + ecx*8 + 0x10]
jmp 0x555946
comisd xmm0, xmmword [esp + 0x80]
jbe 0x5558eb
mov eax, dword [esi + 0x58]
mov ecx, dword [esi + 0x4c]
lea eax, [eax + eax*4]
or dword [ecx + eax*8 + 0x20], 8
movq xmm0, qword [esp + 0x58]
lea eax, [ecx + eax*8 + 0x20]
mov eax, dword [esi + 0x58]
lea edx, [eax + eax*4]
mov eax, dword [esi + 0x4c]
lea eax, [eax + edx*8]
movq qword [eax], xmm0
movq xmm0, qword [esp + 0x60]
movq qword [eax + 8], xmm0
fld qword [edi + 0x18]
mov eax, dword [esi + 0x58]
mov edx, dword [esi + 0x4c]
lea ecx, [eax + eax*4]
fstp qword [edx + ecx*8 + 0x10]
jmp 0x555946
movsd xmm1, qword [edi + 0x10]
movsd xmm0, qword [esp + 0x78]
comisd xmm1, xmm0
ja 0x555949
comisd xmm0, xmmword [edi + 0x18]
ja 0x555949
mov eax, dword [esi + 0x58]
mov ecx, dword [esi + 0x4c]
lea eax, [eax + eax*4]
movsd qword [ecx + eax*8 + 0x10], xmm0
mov eax, dword [esi + 0x58]
lea edx, [eax + eax*4]
mov eax, dword [esi + 0x4c]
lea eax, [eax + edx*8 + 0x20]
jmp 0x555943
mov eax, dword [esi + 0x58]
mov edx, dword [esi + 0x4c]
movsd xmm0, qword [esp + 0x78]
lea ecx, [eax + eax*4]
movsd qword [edx + ecx*8 + 0x10], xmm0
mov eax, dword [esi + 0x58]
mov ecx, dword [esi + 0x4c]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8 + 0x20]
or dword [eax], 1
inc dword [esi + 0x58]
mov eax, dword [esp + 0x18]
inc eax
cmp eax, dword [esp + 0x28]
mov dword [esp + 0x18], eax
jl 0x5554d0
mov ecx, dword [esp + 0x10]
mov edx, dword [ecx]
mov eax, dword [edx]
push 1
call eax
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret 8