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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xffffffc0
sub esp, 0x1f4
cmp byte [ecx + 0x65], 0
xorps xmm0, xmm0
xorps xmm1, xmm1
mov eax, dword [ebp + 0x14]
mov edx, dword [ebp + 0x10]
push ebx
push esi
mov esi, dword [ebp + 0xc]
push edi
mov edi, dword [ebp + 8]
mov dword [esp + 0x84], ecx
movsd qword [esp + 0xb8], xmm1
movsd qword [esp + 0xb0], xmm1
movss dword [esp + 0xc8], xmm0
movss dword [esp + 0xc4], xmm0
movss dword [esp + 0xc0], xmm0
movsd qword [esp + 0xd8], xmm1
movsd qword [esp + 0xd0], xmm1
movss dword [esp + 0xe8], xmm0
movss dword [esp + 0xe4], xmm0
movss dword [esp + 0xe0], xmm0
movsd qword [esp + 0xf8], xmm1
movsd qword [esp + 0xf0], xmm1
movss dword [esp + 0x108], xmm0
movss dword [esp + 0x104], xmm0
movss dword [esp + 0x100], xmm0
movsd qword [esp + 0x118], xmm1
movsd qword [esp + 0x110], xmm1
movss dword [esp + 0x128], xmm0
movss dword [esp + 0x124], xmm0
movss dword [esp + 0x120], xmm0
movsd qword [esp + 0x138], xmm1
movsd qword [esp + 0x130], xmm1
movss dword [esp + 0x148], xmm0
movss dword [esp + 0x144], xmm0
movss dword [esp + 0x140], xmm0
movsd qword [esp + 0x158], xmm1
movsd qword [esp + 0x150], xmm1
movss dword [esp + 0x168], xmm0
movss dword [esp + 0x164], xmm0
movss dword [esp + 0x160], xmm0
movsd qword [esp + 0x178], xmm1
movsd qword [esp + 0x170], xmm1
movss dword [esp + 0x188], xmm0
movss dword [esp + 0x184], xmm0
movss dword [esp + 0x180], xmm0
movsd qword [esp + 0x198], xmm1
movsd qword [esp + 0x190], xmm1
movss dword [esp + 0x1a8], xmm0
movss dword [esp + 0x1a4], xmm0
movss dword [esp + 0x1a0], xmm0
movss dword [esp + 0x5c], xmm0
movss dword [esp + 0x58], xmm0
movss dword [esp + 0x54], xmm0
movss dword [esp + 0x50], xmm0
movss dword [esp + 0x4c], xmm0
movss dword [esp + 0x48], xmm0
movss dword [esp + 0x80], xmm0
movss dword [esp + 0x7c], xmm0
movss dword [esp + 0x78], xmm0
je 0x5b951b
cmp edi, edx
jne 0x5b951b
cmp esi, eax
je 0x5ba521
movsd xmm0, qword [0x5fb990]
mov dword [esp + 0x64], eax
lea eax, [ecx + 0xe0]
movsd qword [0x618b28], xmm0
movsd xmm0, qword [ecx + 0x20]
mov dword [esp + 0x24], edx
lea edx, [ecx + 0x58]
xor ecx, ecx
mov dword [esp + 0x40], eax
movsd qword [0x618b20], xmm0
mov dword [esp + 0x60], esi
mov dword [esp + 0x20], edi
mov dword [esp + 0x3c], edx
lea eax, [esp + 0xc8]
mov dword [esp + 0x1c], ecx
mov ebx, dword [esp + ecx + 0x60]
mov edi, dword [esp + ecx + 0x20]
mov edx, dword [edx]
mov ecx, dword [edx + 0x10]
inc ecx
imul ecx, ebx
mov esi, dword [edx + 0xc0]
add ecx, edi
lea ecx, [ecx + ecx*2]
lea ecx, [esi + ecx*4]
fld dword [ecx]
fstp dword [eax - 8]
fld dword [ecx + 4]
fstp dword [eax - 4]
fld dword [ecx + 8]
mov ecx, dword [edx + 0x10]
inc ecx
fstp dword [eax]
imul ecx, ebx
lea ecx, [ecx + edi + 1]
lea ecx, [ecx + ecx*2]
lea ecx, [esi + ecx*4]
lea esi, [ebx + ebx*2 + 3]
add esi, esi
fld dword [ecx]
add esi, esi
fstp dword [eax + 0x18]
mov dword [esp + 0xac], esi
fld dword [ecx + 4]
fstp dword [eax + 0x1c]
fld dword [ecx + 8]
lea ecx, [edi + edi*2]
add ecx, ecx
fstp dword [eax + 0x20]
add ecx, ecx
mov dword [esp + 0x44], ecx
mov ecx, dword [edx + 0x10]
inc ecx
imul ecx, esi
add ecx, dword [edx + 0xc0]
add ecx, dword [esp + 0x44]
fld dword [ecx]
fstp dword [eax + 0x38]
fld dword [ecx + 4]
fstp dword [eax + 0x3c]
fld dword [ecx + 8]
mov ecx, dword [edx + 0x10]
inc ecx
fstp dword [eax + 0x40]
imul ecx, esi
add ecx, dword [edx + 0xc0]
mov edx, dword [esp + 0x44]
lea ecx, [ecx + edx + 0xc]
fld dword [ecx]
fstp dword [eax + 0x58]
fld dword [ecx + 4]
fstp dword [eax + 0x5c]
fld dword [ecx + 8]
mov ecx, dword [esp + 0x40]
movsd xmm3, qword [ecx - 0x60]
fstp dword [eax + 0x60]
test edi, edi
jle 0x5b963e
lea edx, [edi - 1]
cvtsi2sd xmm0, edx
mulsd xmm0, qword [ecx - 0x20]
addsd xmm0, qword [ecx]
addsd xmm0, xmm3
movapd xmm3, xmm0
movsd xmm2, qword [ecx - 0x40]
test ebx, ebx
jle 0x5b9660
lea edx, [ebx - 1]
cvtsi2sd xmm0, edx
mulsd xmm0, qword [ecx - 0x10]
addsd xmm0, qword [ecx + 0x10]
addsd xmm0, xmm2
movapd xmm2, xmm0
mov edx, dword [esp + 0x3c]
test edi, edi
jne 0x5b966e
movsd xmm1, qword [ecx]
jmp 0x5b9682
mov esi, dword [edx + 0x14]
dec esi
cmp edi, esi
jne 0x5b967d
movsd xmm1, qword [ecx - 0x50]
jmp 0x5b9686
movsd xmm1, qword [ecx - 0x20]
addsd xmm1, xmm3
test ebx, ebx
jne 0x5b9691
movsd xmm0, qword [ecx + 0x10]
jmp 0x5b96a5
mov esi, dword [edx + 0x1c]
dec esi
cmp ebx, esi
jne 0x5b96a0
movsd xmm0, qword [ecx - 0x30]
jmp 0x5b96a9
movsd xmm0, qword [ecx - 0x10]
addsd xmm0, xmm2
add ecx, 8
mov dword [esp + 0x40], ecx
mov ecx, dword [esp + 0x1c]
add ecx, 4
movsd qword [eax - 0x18], xmm3
movsd qword [eax + 0x28], xmm3
movsd qword [eax + 8], xmm1
movsd qword [eax + 0x48], xmm1
movsd qword [eax - 0x10], xmm2
movsd qword [eax + 0x10], xmm2
movsd qword [eax + 0x30], xmm0
movsd qword [eax + 0x50], xmm0
add edx, 4
sub eax, 0xffffff80
cmp ecx, 8
mov dword [esp + 0x3c], edx
mov dword [esp + 0x1c], ecx
jl 0x5b9566
movss xmm0, dword [esp + 0xc0]
cvtss2sd xmm1, dword [esp + 0xe0]
cvtps2pd xmm2, xmm0
subsd xmm1, xmm2
cvtss2sd xmm2, dword [esp + 0xe4]
cvtpd2ps xmm1, xmm1
movss dword [esp + 0x20], xmm1
movss xmm1, dword [esp + 0xc4]
cvtps2pd xmm3, xmm1
subsd xmm2, xmm3
cvtss2sd xmm3, dword [esp + 0xe8]
cvtpd2ps xmm2, xmm2
movss dword [esp + 0x24], xmm2
movss xmm2, dword [esp + 0xc8]
cvtps2pd xmm0, xmm0
cvtps2pd xmm4, xmm2
subsd xmm3, xmm4
cvtpd2ps xmm3, xmm3
movss dword [esp + 0x28], xmm3
movq xmm3, qword [esp + 0x20]
mov eax, dword [esp + 0x28]
movq qword [esp + 0x54], xmm3
cvtss2sd xmm3, dword [esp + 0x100]
subsd xmm3, xmm0
cvtpd2ps xmm0, xmm3
movss dword [esp + 0x20], xmm0
cvtss2sd xmm0, dword [esp + 0x104]
cvtps2pd xmm1, xmm1
subsd xmm0, xmm1
cvtpd2ps xmm0, xmm0
movss dword [esp + 0x24], xmm0
cvtss2sd xmm0, dword [esp + 0x108]
cvtps2pd xmm1, xmm2
subsd xmm0, xmm1
cvtpd2ps xmm0, xmm0
movss dword [esp + 0x28], xmm0
mov ecx, dword [esp + 0x28]
movq xmm0, qword [esp + 0x20]
lea edx, [esp + 0x48]
mov dword [esp + 0x5c], eax
push edx
lea eax, [esp + 0x24]
mov dword [esp + 0x54], ecx
push eax
lea ecx, [esp + 0x5c]
movq qword [esp + 0x50], xmm0
call fcn.0051b870
mov ecx, dword [esp + 0x28]
movq xmm0, qword [esp + 0x20]
mov dword [esp + 0x80], ecx
lea ecx, [esp + 0x54]
movq qword [esp + 0x78], xmm0
call fcn.0051b900
fld qword [0x618b28]
fcompi st(1)
fstp st(0)
jbe 0x5b981b
mov edi, 1
jmp 0x5b9855
lea ecx, [esp + 0x48]
call fcn.0051b900
fld qword [0x618b28]
fcompi st(1)
fstp st(0)
jbe 0x5b9837
mov edi, 2
jmp 0x5b9855
lea ecx, [esp + 0x78]
call fcn.0051b900
fld qword [0x618b28]
fcompi st(1)
fstp st(0)
jbe 0x5b9853
mov edi, 3
jmp 0x5b9855
xor edi, edi
movss xmm0, dword [esp + 0x120]
cvtss2sd xmm1, dword [esp + 0x100]
cvtps2pd xmm2, xmm0
subsd xmm1, xmm2
cvtss2sd xmm2, dword [esp + 0x104]
cvtsd2ss xmm1, xmm1
movss dword [esp + 0x20], xmm1
movss xmm1, dword [esp + 0x124]
cvtps2pd xmm3, xmm1
subsd xmm2, xmm3
cvtss2sd xmm3, dword [esp + 0x108]
cvtsd2ss xmm2, xmm2
movss dword [esp + 0x24], xmm2
movss xmm2, dword [esp + 0x128]
cvtps2pd xmm0, xmm0
cvtps2pd xmm4, xmm2
subsd xmm3, xmm4
cvtsd2ss xmm3, xmm3
movss dword [esp + 0x28], xmm3
movq xmm3, qword [esp + 0x20]
mov edx, dword [esp + 0x28]
movq qword [esp + 0x54], xmm3
cvtss2sd xmm3, dword [esp + 0xe0]
subsd xmm3, xmm0
cvtpd2ps xmm0, xmm3
movss dword [esp + 0x20], xmm0
cvtss2sd xmm0, dword [esp + 0xe4]
cvtps2pd xmm1, xmm1
subsd xmm0, xmm1
cvtpd2ps xmm0, xmm0
movss dword [esp + 0x24], xmm0
cvtss2sd xmm0, dword [esp + 0xe8]
cvtps2pd xmm1, xmm2
subsd xmm0, xmm1
cvtpd2ps xmm0, xmm0
lea ecx, [esp + 0x48]
mov dword [esp + 0x5c], edx
movss dword [esp + 0x28], xmm0
mov eax, dword [esp + 0x28]
movq xmm0, qword [esp + 0x20]
push ecx
lea edx, [esp + 0x24]
push edx
lea ecx, [esp + 0x5c]
mov dword [esp + 0x68], edi
movq qword [esp + 0x50], xmm0
mov dword [esp + 0x58], eax
call fcn.0051b870
mov eax, dword [esp + 0x28]
movq xmm0, qword [esp + 0x20]
lea ecx, [esp + 0x54]
movq qword [esp + 0x78], xmm0
mov dword [esp + 0x80], eax
call fcn.0051b900
fld qword [0x618b28]
fcompi st(1)
fstp st(0)
jbe 0x5b997e
mov ebx, 1
jmp 0x5b99b8
lea ecx, [esp + 0x48]
call fcn.0051b900
fld qword [0x618b28]
fcompi st(1)
fstp st(0)
jbe 0x5b999a
mov ebx, 2
jmp 0x5b99b8
lea ecx, [esp + 0x78]
call fcn.0051b900
fld qword [0x618b28]
fcompi st(1)
fstp st(0)
jbe 0x5b99b6
mov ebx, 3
jmp 0x5b99b8
xor ebx, ebx
mov dword [esp + 0x64], ebx
test edi, edi
je 0x5b99c8
test ebx, ebx
jne 0x5ba521
movss xmm0, dword [esp + 0x140]
cvtss2sd xmm1, dword [esp + 0x160]
cvtps2pd xmm2, xmm0
subsd xmm1, xmm2
cvtss2sd xmm2, dword [esp + 0x164]
cvtsd2ss xmm1, xmm1
movss dword [esp + 0x20], xmm1
movss xmm1, dword [esp + 0x144]
cvtps2pd xmm3, xmm1
subsd xmm2, xmm3
cvtss2sd xmm3, dword [esp + 0x168]
cvtsd2ss xmm2, xmm2
movss dword [esp + 0x24], xmm2
movss xmm2, dword [esp + 0x148]
cvtps2pd xmm0, xmm0
cvtps2pd xmm4, xmm2
subsd xmm3, xmm4
cvtsd2ss xmm3, xmm3
movss dword [esp + 0x28], xmm3
movq xmm3, qword [esp + 0x20]
mov ecx, dword [esp + 0x28]
movq qword [esp + 0x54], xmm3
cvtss2sd xmm3, dword [esp + 0x180]
subsd xmm3, xmm0
cvtpd2ps xmm0, xmm3
movss dword [esp + 0x20], xmm0
cvtss2sd xmm0, dword [esp + 0x184]
cvtps2pd xmm1, xmm1
subsd xmm0, xmm1
cvtpd2ps xmm0, xmm0
movss dword [esp + 0x24], xmm0
cvtss2sd xmm0, dword [esp + 0x188]
mov dword [esp + 0x5c], ecx
cvtps2pd xmm1, xmm2
subsd xmm0, xmm1
lea eax, [esp + 0x48]
cvtpd2ps xmm0, xmm0
movss dword [esp + 0x28], xmm0
mov edx, dword [esp + 0x28]
movq xmm0, qword [esp + 0x20]
push eax
lea ecx, [esp + 0x24]
push ecx
lea ecx, [esp + 0x5c]
movq qword [esp + 0x50], xmm0
mov dword [esp + 0x58], edx
call fcn.0051b870
mov edx, dword [esp + 0x28]
movq xmm0, qword [esp + 0x20]
lea ecx, [esp + 0x54]
movq qword [esp + 0x78], xmm0
mov dword [esp + 0x80], edx
call fcn.0051b900
fld qword [0x618b28]
fcompi st(1)
fstp st(0)
jbe 0x5b9af0
mov dword [esp + 0x68], 1
jmp 0x5b9b34
lea ecx, [esp + 0x48]
call fcn.0051b900
fld qword [0x618b28]
fcompi st(1)
fstp st(0)
jbe 0x5b9b0f
mov dword [esp + 0x68], 2
jmp 0x5b9b34
lea ecx, [esp + 0x78]
call fcn.0051b900
fld qword [0x618b28]
fcompi st(1)
fstp st(0)
mov dword [esp + 0x68], 3
ja 0x5b9b34
mov dword [esp + 0x68], 0
movss xmm0, dword [esp + 0x1a0]
cvtss2sd xmm1, dword [esp + 0x180]
cvtps2pd xmm2, xmm0
subsd xmm1, xmm2
cvtss2sd xmm2, dword [esp + 0x184]
cvtsd2ss xmm1, xmm1
movss dword [esp + 0x20], xmm1
movss xmm1, dword [esp + 0x1a4]
cvtps2pd xmm3, xmm1
subsd xmm2, xmm3
cvtss2sd xmm3, dword [esp + 0x188]
cvtsd2ss xmm2, xmm2
movss dword [esp + 0x24], xmm2
movss xmm2, dword [esp + 0x1a8]
cvtps2pd xmm0, xmm0
cvtps2pd xmm4, xmm2
subsd xmm3, xmm4
cvtsd2ss xmm3, xmm3
movss dword [esp + 0x28], xmm3
movq xmm3, qword [esp + 0x20]
mov eax, dword [esp + 0x28]
movq qword [esp + 0x54], xmm3
cvtss2sd xmm3, dword [esp + 0x160]
subsd xmm3, xmm0
cvtpd2ps xmm0, xmm3
movss dword [esp + 0x20], xmm0
cvtss2sd xmm0, dword [esp + 0x164]
cvtps2pd xmm1, xmm1
subsd xmm0, xmm1
cvtpd2ps xmm0, xmm0
movss dword [esp + 0x24], xmm0
cvtss2sd xmm0, dword [esp + 0x168]
cvtps2pd xmm1, xmm2
subsd xmm0, xmm1
cvtpd2ps xmm0, xmm0
movss dword [esp + 0x28], xmm0
mov ecx, dword [esp + 0x28]
movq xmm0, qword [esp + 0x20]
lea edx, [esp + 0x48]
mov dword [esp + 0x5c], eax
push edx
lea eax, [esp + 0x24]
mov dword [esp + 0x54], ecx
push eax
lea ecx, [esp + 0x5c]
movq qword [esp + 0x50], xmm0
call fcn.0051b870
mov ecx, dword [esp + 0x28]
movq xmm0, qword [esp + 0x20]
mov dword [esp + 0x80], ecx
lea ecx, [esp + 0x54]
movq qword [esp + 0x78], xmm0
call fcn.0051b900
fld qword [0x618b28]
fcompi st(1)
fstp st(0)
jbe 0x5b9c59
mov esi, 1
jmp 0x5b9c93
lea ecx, [esp + 0x48]
call fcn.0051b900
fld qword [0x618b28]
fcompi st(1)
fstp st(0)
jbe 0x5b9c75
mov esi, 2
jmp 0x5b9c93
lea ecx, [esp + 0x78]
call fcn.0051b900
fld qword [0x618b28]
fcompi st(1)
fstp st(0)
jbe 0x5b9c91
mov esi, 3
jmp 0x5b9c93
xor esi, esi
mov ecx, dword [esp + 0x68]
mov dword [esp + 0x6c], esi
test ecx, ecx
je 0x5b9ca7
test esi, esi
jne 0x5ba521
xor edx, edx
mov eax, 1
mov dword [0x618b30], edx
mov dword [esp + 0x98], edx
mov dword [esp + 0x88], edx
mov dword [esp + 0x9c], eax
mov dword [esp + 0x8c], eax
mov dword [esp + 0xa0], 2
mov dword [esp + 0x90], 2
mov dword [esp + 0xa4], 3
mov dword [esp + 0x94], 3
test edi, edi
jne 0x5b9d46
test ecx, ecx
jne 0x5b9d46
push 6
push esi
lea edx, [esp + 0x138]
push edx
lea eax, [esp + 0xa4]
push eax
push ebx
lea ecx, [esp + 0xc4]
push ecx
lea edx, [esp + 0xa0]
push edx
xor ecx, ecx
call fcn.005b7b70
mov edx, dword [0x618b30]
add esp, 0x1c
cmp edx, 4
je 0x5b9e96
mov eax, 1
mov dword [esp + 0x98], 3
mov dword [esp + 0x9c], 2
mov dword [esp + 0xa0], eax
mov dword [esp + 0xa4], 0
test edi, edi
jne 0x5b9dbc
test esi, esi
jne 0x5b9dbc
mov eax, dword [esp + 0x68]
push 9
push eax
lea ecx, [esp + 0x138]
push ecx
lea edx, [esp + 0xa4]
push edx
push ebx
lea eax, [esp + 0xc4]
push eax
lea ecx, [esp + 0xa0]
push ecx
xor ecx, ecx
call fcn.005b7b70
mov edx, dword [0x618b30]
add esp, 0x1c
cmp edx, 4
je 0x5b9e96
mov eax, 1
mov dword [esp + 0x88], 3
mov dword [esp + 0x8c], 2
mov dword [esp + 0x90], eax
mov dword [esp + 0x94], 0
test ebx, ebx
jne 0x5b9e2f
test esi, esi
jne 0x5b9e2f
mov edx, dword [esp + 0x68]
push 9
push edx
lea eax, [esp + 0x138]
push eax
lea ecx, [esp + 0xa4]
push ecx
push edi
lea edx, [esp + 0xc4]
push edx
lea eax, [esp + 0xa0]
push eax
lea ecx, [ebx + 3]
call fcn.005b7b70
mov edx, dword [0x618b30]
add esp, 0x1c
cmp edx, 4
je 0x5b9e96
mov eax, 1
mov dword [esp + 0x98], 0
mov dword [esp + 0x9c], eax
mov dword [esp + 0xa0], 2
mov dword [esp + 0xa4], 3
test ebx, ebx
jne 0x5b9e96
cmp dword [esp + 0x68], ebx
jne 0x5b9e96
push 6
push esi
lea ecx, [esp + 0x138]
push ecx
lea edx, [esp + 0xa4]
push edx
push edi
lea eax, [esp + 0xc4]
push eax
lea ecx, [esp + 0xa0]
push ecx
lea ecx, [ebx + 3]
call fcn.005b7b70
mov edx, dword [0x618b30]
add esp, 0x1c
cmp edx, 2
jle 0x5ba04b
lea eax, [edx - 1]
mov dword [esp + 0x1c], 0
test eax, eax
jle 0x5ba04b
movsd xmm2, qword [0x5fb9c8]
mov esi, dword [esp + 0x84]
mov ecx, dword [esp + 0x1c]
inc ecx
cmp ecx, edx
mov dword [esp + 0x40], ecx
jge 0x5ba02d
mov edi, dword [esp + 0x1c]
mov dword [esp + 0x44], eax
lea edi, [edi + edi*2]
shl edi, 4
lea eax, [ecx + ecx*2]
lea ebx, [edx + edx*2]
shl ebx, 4
shl eax, 4
add edi, 0x618b50
add eax, 0x618b50
lea ebx, [ebx + 0x618b08]
mov dword [esp + 0x3c], eax
mov esi, dword [edi + 8]
cmp esi, dword [eax + 8]
jne 0x5ba012
mov eax, dword [esp + 0x3c]
movsd xmm0, qword [edi - 0x18]
addsd xmm0, qword [eax - 0x18]
movsd xmm1, qword [eax - 0x10]
addsd xmm1, qword [edi - 0x10]
mov edx, dword [esp + 0x44]
cmp dword [esp + 0x40], edx
lea esi, [edi - 0x18]
lea ecx, [eax - 0x18]
mulsd xmm0, xmm2
movq qword [esi], xmm0
mulsd xmm1, xmm2
movq qword [esi + 8], xmm1
movsd xmm0, qword [eax - 8]
addsd xmm0, qword [edi - 8]
movsd xmm1, qword [edi]
addsd xmm1, qword [eax]
mulsd xmm0, xmm2
mulsd xmm1, xmm2
movq qword [edi - 8], xmm0
movq qword [edi], xmm1
jge 0x5b9f8b
mov eax, dword [0x618b30]
sub eax, dword [esp + 0x40]
mov edx, dword [esp + 0x3c]
dec eax
lea eax, [eax + eax*2]
shl eax, 4
push eax
add edx, 0x18
push edx
push ecx
call sub.MSVCR90.dll_memcpy
add esp, 0xc
movq xmm0, qword [esi]
mov eax, dword [0x618b30]
sub eax, dword [esp + 0x1c]
movq qword [ebx], xmm0
movq xmm0, qword [esi + 8]
movq qword [ebx + 8], xmm0
movq xmm0, qword [esi + 0x10]
dec eax
movq qword [ebx + 0x10], xmm0
movq xmm0, qword [esi + 0x18]
lea eax, [eax + eax*2]
movq qword [ebx + 0x18], xmm0
movq xmm0, qword [esi + 0x20]
shl eax, 4
push eax
lea ecx, [edi + 0x18]
movq qword [ebx + 0x20], xmm0
movq xmm0, qword [esi + 0x28]
push ecx
push esi
movq qword [ebx + 0x28], xmm0
call sub.MSVCR90.dll_memcpy
movsd xmm2, qword [0x5fb9c8]
mov ecx, dword [esp + 0x4c]
mov eax, 1
sub dword [0x618b30], eax
sub dword [esp + 0x28], eax
sub dword [esp + 0x50], eax
mov eax, dword [esp + 0x48]
mov edx, dword [0x618b30]
add esp, 0xc
sub edi, 0x30
sub ebx, 0x30
mov esi, dword [esp + 0x84]
inc ecx
add eax, 0x30
cmp ecx, edx
mov dword [esp + 0x40], ecx
mov dword [esp + 0x3c], eax
jl 0x5b9f01
mov ecx, dword [esp + 0x1c]
inc ecx
lea eax, [edx - 1]
cmp ecx, eax
mov dword [esp + 0x1c], ecx
jl 0x5b9ec1
mov edi, dword [esp + 0x60]
mov ebx, dword [esp + 0x64]
jmp 0x5ba052
mov esi, dword [esp + 0x84]
cmp edx, 2
jl 0x5ba521
mov edx, dword [0x618b58]
cmp edx, dword [0x618b88]
je 0x5ba521
test edi, edi
jne 0x5ba085
test ebx, ebx
jne 0x5ba085
cmp dword [esp + 0x68], ebx
jne 0x5ba085
cmp dword [esp + 0x6c], ebx
je 0x5ba114
fldz
mov ecx, dword [esi + 0x58]
sub esp, 8
fstp qword [esp]
push 0x618b38
lea eax, [esp + 0x2c]
push eax
call fcn.0046a050
fldz
sub esp, 8
fstp qword [esp]
push 0x618b68
lea ecx, [esp + 0x6c]
push ecx
mov ecx, dword [esi + 0x58]
call fcn.0046a050
movsd xmm0, qword [esp + 0x20]
subsd xmm0, qword [esp + 0x60]
movsd qword [esp + 0x88], xmm0
movsd xmm0, qword [esp + 0x28]
subsd xmm0, qword [esp + 0x68]
movsd qword [esp + 0x90], xmm0
movsd xmm0, qword [esp + 0x30]
subsd xmm0, qword [esp + 0x70]
lea ecx, [esp + 0x88]
movsd qword [esp + 0x98], xmm0
call fcn.004a88b0
fld qword [0x618b28]
fcompi st(1)
fstp st(0)
ja 0x5ba521
mov ecx, dword [0x618b60]
movsd xmm0, qword [0x618b70]
movsd xmm3, qword [0x618b68]
test ecx, ecx
je 0x5ba17e
mov eax, ecx
sub eax, 1
je 0x5ba144
sub eax, 1
jne 0x5ba152
movsd qword [0x618b40], xmm0
jmp 0x5ba17e
movapd xmm1, xmm3
movsd qword [0x618b38], xmm1
jmp 0x5ba186
cmp ecx, 4
je 0x5ba16e
cmp ecx, 8
jne 0x5ba17e
movsd xmm1, qword [0x618b80]
movsd qword [0x618b50], xmm1
jmp 0x5ba17e
movsd xmm1, qword [0x618b78]
movsd qword [0x618b48], xmm1
movsd xmm1, qword [0x618b38]
mov ecx, dword [0x618b90]
test ecx, ecx
je 0x5ba1e8
mov eax, ecx
sub eax, 1
je 0x5ba1ae
sub eax, 1
jne 0x5ba1bc
movsd xmm0, qword [0x618b40]
movsd qword [0x618b70], xmm0
jmp 0x5ba1e8
movapd xmm3, xmm1
movsd qword [0x618b68], xmm3
jmp 0x5ba1e8
cmp ecx, 4
je 0x5ba1d8
cmp ecx, 8
jne 0x5ba1e8
movsd xmm2, qword [0x618b50]
movsd qword [0x618b80], xmm2
jmp 0x5ba1e8
movsd xmm2, qword [0x618b48]
movsd qword [0x618b78], xmm2
cmp byte [esi + 0x60], 0
mov edx, dword [0x618b5c]
mov eax, dword [0x618b8c]
movq xmm5, qword [0x618b40]
movdqa xmm4, xmm0
movsd xmm0, qword [0x618b20]
movdqa xmm6, xmm1
mov byte [esp + 0x1f0], 0
mov dword [esp + 0x1f4], edx
mov dword [esp + 0x1f8], eax
movsd qword [esp + 0x1b0], xmm6
movsd qword [esp + 0x1b8], xmm5
movq qword [esp + 0x1d0], xmm3
movsd qword [esp + 0x1d8], xmm4
je 0x5ba2bd
movsd xmm2, qword [esi + 0x80]
addsd xmm2, xmm0
comisd xmm2, xmm1
jbe 0x5ba26f
movsd xmm7, qword [esi + 0x90]
subsd xmm7, xmm0
comisd xmm3, xmm7
ja 0x5ba29f
comisd xmm2, xmm3
jbe 0x5ba287
movsd xmm2, qword [esi + 0x90]
subsd xmm2, xmm0
comisd xmm1, xmm2
ja 0x5ba29f
movsd xmm2, qword [esi + 0x90]
subsd xmm2, xmm0
comisd xmm1, xmm2
jbe 0x5ba2bd
comisd xmm3, xmm2
jbe 0x5ba2bd
movsd xmm1, qword [esi + 0x80]
movapd xmm6, xmm1
movsd qword [esp + 0x1b0], xmm6
movsd qword [esp + 0x1d0], xmm1
cmp byte [esi + 0x62], 0
je 0x5ba335
movsd xmm1, qword [esi + 0xa0]
addsd xmm1, xmm0
comisd xmm1, xmm5
jbe 0x5ba2e7
movsd xmm2, qword [esi + 0xb0]
subsd xmm2, xmm0
comisd xmm4, xmm2
ja 0x5ba317
comisd xmm1, xmm4
jbe 0x5ba2ff
movsd xmm1, qword [esi + 0xb0]
subsd xmm1, xmm0
comisd xmm5, xmm1
ja 0x5ba317
movsd xmm1, qword [esi + 0xb0]
subsd xmm1, xmm0
comisd xmm5, xmm1
jbe 0x5ba335
comisd xmm4, xmm1
jbe 0x5ba335
movsd xmm1, qword [esi + 0xa0]
movapd xmm5, xmm1
movsd qword [esp + 0x1b8], xmm5
movsd qword [esp + 0x1d8], xmm1
cmp byte [esi + 0x61], 0
movq xmm1, qword [0x618b50]
movsd xmm4, qword [0x618b48]
movq xmm3, qword [0x618b80]
movdqa xmm2, xmm1
movq xmm1, qword [0x618b78]
movsd qword [esp + 0x1c0], xmm4
movsd qword [esp + 0x1c8], xmm2
movq qword [esp + 0x1e0], xmm1
movsd qword [esp + 0x1e8], xmm3
je 0x5ba426
movsd xmm1, qword [esi + 0x88]
addsd xmm1, xmm0
comisd xmm1, xmm4
jbe 0x5ba3bc
movsd xmm6, qword [esi + 0x98]
movsd xmm7, qword [0x618b78]
subsd xmm6, xmm0
comisd xmm7, xmm6
movsd xmm6, qword [esp + 0x1b0]
ja 0x5ba408
comisd xmm1, xmmword [0x618b78]
jbe 0x5ba3e0
movsd xmm1, qword [esi + 0x98]
movsd xmm7, qword [0x618b48]
subsd xmm1, xmm0
comisd xmm7, xmm1
ja 0x5ba408
movsd xmm1, qword [esi + 0x98]
movsd xmm7, qword [0x618b48]
subsd xmm1, xmm0
comisd xmm7, xmm1
jbe 0x5ba426
movsd xmm7, qword [0x618b78]
comisd xmm7, xmm1
jbe 0x5ba426
movsd xmm1, qword [esi + 0x88]
movapd xmm4, xmm1
movsd qword [esp + 0x1c0], xmm4
movsd qword [esp + 0x1e0], xmm1
cmp byte [esi + 0x63], 0
je 0x5ba49a
movsd xmm1, qword [esi + 0xa8]
addsd xmm1, xmm0
comisd xmm1, xmm2
jbe 0x5ba450
movsd xmm7, qword [esi + 0xb8]
subsd xmm7, xmm0
comisd xmm3, xmm7
ja 0x5ba480
comisd xmm1, xmm3
jbe 0x5ba468
movsd xmm1, qword [esi + 0xb8]
subsd xmm1, xmm0
comisd xmm2, xmm1
ja 0x5ba480
movsd xmm1, qword [esi + 0xb8]
subsd xmm1, xmm0
comisd xmm2, xmm1
jbe 0x5ba49a
comisd xmm3, xmm1
jbe 0x5ba49a
movsd xmm2, qword [esi + 0xa8]
movsd qword [esp + 0x1c8], xmm2
movsd qword [esp + 0x1e8], xmm2
cmp byte [esi + 0x65], 0
je 0x5ba512
subsd xmm6, xmm4
subsd xmm5, xmm2
lea ecx, [esp + 0x20]
movsd qword [esp + 0x20], xmm6
movsd qword [esp + 0x28], xmm5
call fcn.004a7500
fld qword [0x618b20]
fxch st(1)
fcompi st(1)
fstp st(0)
ja 0x5ba512
movsd xmm0, qword [esp + 0x1d0]
subsd xmm0, qword [esp + 0x1e0]
movsd qword [esp + 0x20], xmm0
movsd xmm0, qword [esp + 0x1d8]
subsd xmm0, qword [esp + 0x1e8]
lea ecx, [esp + 0x20]
movsd qword [esp + 0x28], xmm0
call fcn.004a7500
fld qword [0x618b20]
fxch st(1)
fcompi st(1)
fstp st(0)
jbe 0x5ba521
lea ecx, [esp + 0x1b0]
push ecx
mov ecx, esi
call fcn.005b2d10
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10