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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0xe8
push esi
push edi
mov edi, ecx
call fcn.006d6e50
mov eax, dword [edi + 0x10]
xor edx, edx
mov esi, dword [ebp + 8]
movss xmm0, dword [0x718824]
mov dword [esp + 0x14], edx
mov eax, dword [eax]
mov dword [esp + 0x2c], eax
movss dword [esp + 0x5c], xmm0
cmp byte [esi + 0x21], dl
jbe 0x6d41d0
nop
movzx eax, byte [esi + edx*4]
mov dword [esp + 0x18], eax
mov dword [esp + 0xb8], eax
cmp eax, 2
jg 0x6d3f92
movzx ecx, byte [esi + edx*4 + 1]
movaps xmm1, xmmword [edi + 0x30]
mov eax, ecx
and ecx, 0x70
mov dword [esp + 0x28], 0x3f800000
add ecx, 0x7c34c0
and eax, 0xfffffff8
shl eax, 0x1c
or dword [esp + 0x28], eax
movss xmm4, dword [esp + 0x28]
movaps xmm3, xmmword [ecx]
mulps xmm3, xmmword [edi + 0x70]
movss dword [esp + 0xb0], xmm4
movaps xmm6, xmm3
movaps xmmword [esp + 0x90], xmm3
movaps xmm5, xmm3
shufps xmm6, xmm3, 0
shufps xmm5, xmm3, 0x55
movaps xmm0, xmm6
mulps xmm0, xmmword [edi + 0x20]
mulps xmm1, xmm5
shufps xmm3, xmm3, 0xaa
addps xmm1, xmm0
movaps xmm0, xmmword [edi + 0x40]
mulps xmm0, xmm3
addps xmm0, xmmword [edi + 0x50]
addps xmm1, xmm0
movaps xmm0, xmm1
movss dword [esp + 0x40], xmm1
shufps xmm0, xmm1, 0x55
movss dword [esp + 0x44], xmm0
movaps xmm0, xmm1
shufps xmm0, xmm1, 0xaa
movaps xmmword [esp + 0x80], xmm1
movss dword [esp + 0x48], xmm0
shufps xmm1, xmm1, 0xff
movss dword [esp + 0x4c], xmm1
movaps xmm0, xmmword [esp + 0x40]
andps xmm0, xmmword [0x719140]
cmpltps xmm0, xmmword [edi + 0x90]
movmskps eax, xmm0
and eax, 7
cmp al, 7
jne 0x6d4194
mov eax, dword [esp + 0x18]
movss xmm2, dword [esp + eax*4 + 0x80]
mulss xmm2, xmm4
shufps xmm4, xmm4, 0
subss xmm2, dword [edi + eax*4 + 0x60]
mov eax, dword [edi + 0x10]
mov edx, dword [eax]
add dword [eax], 0x30
mov eax, dword [esp + 0x14]
movzx ecx, byte [esi + eax*4]
movzx eax, word [esi + eax*4 + 2]
mov dword [edx + 0x20], eax
mov eax, dword [edi + 0x18]
shl ecx, 4
movaps xmm1, xmmword [eax + 0x10]
movaps xmm0, xmmword [eax]
mulps xmm0, xmm6
mulps xmm1, xmm5
addps xmm1, xmm0
movaps xmm0, xmmword [eax + 0x20]
mulps xmm0, xmm3
addps xmm0, xmmword [eax + 0x30]
addps xmm1, xmm0
movaps xmmword [edx], xmm1
movaps xmm0, xmmword [0x719550]
add ecx, dword [edi + 0x14]
subps xmm0, xmm4
shufps xmm0, xmm0, 0
mulps xmm0, xmmword [ecx]
movaps xmmword [edx + 0x10], xmm0
movss dword [edx + 0x1c], xmm2
mov edx, dword [esp + 0x14]
inc edx
mov dword [esp + 0x14], edx
jmp 0x6d41c4
cmp eax, 6
jg 0x6d40db
movzx ecx, byte [esi + edx*4 + 1]
movaps xmm5, xmmword [edi + 0x20]
mov eax, ecx
movaps xmm4, xmmword [edi + 0x40]
and ecx, 0x70
add ecx, 0x7c34c0
mov dword [esp + 0x28], 0x3f800000
movaps xmm1, xmm5
and eax, 0xfffffff8
unpcklps xmm1, xmmword [edi + 0x30]
unpckhps xmm5, xmmword [edi + 0x30]
movaps xmm2, xmm1
movaps xmm7, xmmword [ecx]
mulps xmm7, xmmword [edi + 0x60]
shl eax, 0x1c
or dword [esp + 0x28], eax
movss xmm0, dword [esp + 0x28]
movaps xmmword [esp + 0x60], xmm0
movss dword [esp + 0xb0], xmm0
movaps xmm6, xmm7
subps xmm6, xmmword [edi + 0x50]
movlhps xmm2, xmm4
movaps xmm3, xmm2
shufps xmm5, xmm4, 0xe4
movhlps xmm3, xmm1
shufps xmm3, xmm4, 0xd4
movaps xmm0, xmm6
movaps xmmword [esp + 0x80], xmm7
shufps xmm0, xmm6, 0x55
mulps xmm3, xmm0
movaps xmm0, xmm6
shufps xmm0, xmm6, 0
mulps xmm0, xmm2
shufps xmm6, xmm6, 0xaa
mulps xmm5, xmm6
addps xmm3, xmm0
movaps xmm0, xmmword [0x719140]
addps xmm3, xmm5
andps xmm0, xmm3
movaps xmmword [esp + 0x90], xmm3
cmpltps xmm0, xmmword [edi + 0xa0]
movmskps eax, xmm0
and eax, 7
cmp al, 7
jne 0x6d4194
mov eax, dword [esp + 0x18]
movaps xmm1, xmm7
movaps xmm3, xmmword [esp + 0x60]
movaps xmm0, xmm7
shufps xmm1, xmm7, 0x55
shufps xmm0, xmm7, 0
movss xmm2, dword [esp + eax*4 + 0x80]
mulss xmm2, xmm3
shufps xmm7, xmm7, 0xaa
shufps xmm3, xmm3, 0
xorps xmm2, xmmword [0x719730]
subss xmm2, dword [edi + eax*4 + 0x60]
mov eax, dword [edi + 0x10]
mov edx, dword [eax]
add dword [eax], 0x30
mov eax, dword [esp + 0x14]
movzx ecx, byte [esi + eax*4]
movzx eax, word [esi + eax*4 + 2]
sub ecx, 4
mov dword [edx + 0x20], eax
mov eax, dword [edi + 0x14]
shl ecx, 4
mulps xmm0, xmmword [eax]
mulps xmm1, xmmword [eax + 0x10]
mulps xmm7, xmmword [eax + 0x20]
addps xmm1, xmm0
addps xmm7, xmmword [eax + 0x30]
addps xmm1, xmm7
movaps xmmword [edx], xmm1
movaps xmm0, xmmword [0x719550]
add ecx, dword [edi + 0x18]
subps xmm0, xmm3
jmp 0x6d3f74
movzx eax, byte [esi + edx*4 + 1]
mov ecx, edi
mov dword [esp + 0xbc], eax
lea eax, [esp + 0x80]
push eax
lea eax, [esp + 0x27]
push eax
call fcn.006d68c0
mov edx, dword [esp + 0x14]
cmp byte [eax], 0
je 0x6d4194
mov eax, dword [edi + 0x10]
movaps xmm1, xmmword [esp + 0x80]
movaps xmm2, xmm1
movaps xmm0, xmm1
shufps xmm2, xmm1, 0x55
mov ecx, dword [eax]
add dword [eax], 0x30
movzx eax, word [esi + edx*4 + 2]
inc edx
shufps xmm0, xmm1, 0
mov dword [ecx + 0x20], eax
mov eax, dword [edi + 0x14]
shufps xmm1, xmm1, 0xaa
mov dword [esp + 0x14], edx
mulps xmm2, xmmword [eax + 0x10]
mulps xmm0, xmmword [eax]
mulps xmm1, xmmword [eax + 0x20]
addps xmm2, xmm0
addps xmm1, xmmword [eax + 0x30]
addps xmm2, xmm1
movaps xmm1, xmmword [esp + 0xa0]
movaps xmm0, xmm1
shufps xmm0, xmm1, 0
movaps xmmword [ecx], xmm2
movaps xmm2, xmm1
mov eax, dword [edi + 0x14]
shufps xmm2, xmm1, 0x55
shufps xmm1, xmm1, 0xaa
mulps xmm2, xmmword [eax + 0x10]
mulps xmm0, xmmword [eax]
mulps xmm1, xmmword [eax + 0x20]
addps xmm2, xmm0
movss xmm0, dword [esp + 0xb4]
addps xmm2, xmm1
movaps xmmword [ecx + 0x10], xmm2
movss dword [ecx + 0x1c], xmm0
jmp 0x6d41c4
cmp byte [esi + edx*4], 6
ja 0x6d419d
dec byte [esi + 0x20]
mov eax, dword [edi + 0x10]
mov ecx, dword [edi + 0xc]
push dword [eax + 4]
mov eax, dword [esp + 0x18]
mov edx, dword [ecx]
movzx eax, word [esi + eax*4 + 2]
push eax
call dword [edx + 0x14]
push dword [esp + 0x14]
mov ecx, esi
call fcn.006d3dc0
mov edx, dword [esp + 0x14]
movzx eax, byte [esi + 0x21]
cmp edx, eax
jl 0x6d3e30
cmp byte [esi + 0x21], 2
jae 0x6d41e7
mov byte [esi + 0x23], 0
mov dword [esp + 0x28], 1
jmp 0x6d4335
cmp byte [esi + 0x23], 0
jne 0x6d425f
movaps xmm6, xmmword [edi + 0x20]
lea eax, [esp + 0x60]
movaps xmm5, xmmword [edi + 0x40]
movaps xmm1, xmm6
unpcklps xmm1, xmmword [edi + 0x30]
movaps xmm3, xmmword [esi + 0x30]
movaps xmm2, xmm1
unpckhps xmm6, xmmword [edi + 0x30]
movaps xmm0, xmm3
movlhps xmm2, xmm5
movaps xmm4, xmm2
shufps xmm0, xmm3, 0x55
movhlps xmm4, xmm1
shufps xmm4, xmm5, 0xd4
mulps xmm4, xmm0
movaps xmm0, xmm3
push eax
shufps xmm0, xmm3, 0
mulps xmm0, xmm2
mov byte [esi + 0x23], 1
shufps xmm6, xmm5, 0xe4
shufps xmm3, xmm3, 0xaa
mulps xmm6, xmm3
addps xmm4, xmm0
addps xmm4, xmm6
movaps xmmword [esp + 0x64], xmm4
call fcn.006500a0
add esp, 4
mov dword [esi + 0x24], eax
mov dword [esp + 0x28], 1
jmp 0x6d4335
mov ecx, dword [esi + 0x24]
movss xmm1, dword [0x786a20]
movzx eax, cl
add eax, 0xffffff80
movd xmm0, eax
mov eax, ecx
cvtdq2ps xmm0, xmm0
shr eax, 8
movzx eax, al
add eax, 0xffffff80
mulss xmm0, xmm1
movss dword [esp + 0x40], xmm0
movd xmm0, eax
mov eax, ecx
cvtdq2ps xmm0, xmm0
shr eax, 0x10
movzx eax, al
add eax, 0xffffff80
shr ecx, 0x18
add ecx, 0xffffff80
mulss xmm0, xmm1
movss dword [esp + 0x44], xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mulss xmm0, xmm1
movss dword [esp + 0x48], xmm0
movd xmm0, ecx
cvtdq2ps xmm0, xmm0
mulss xmm0, xmm1
movss dword [esp + 0x4c], xmm0
movaps xmm1, xmmword [esp + 0x40]
movaps xmm2, xmm1
movaps xmm0, xmm1
shufps xmm2, xmm1, 0x55
mulps xmm2, xmmword [edi + 0x30]
shufps xmm0, xmm1, 0
mulps xmm0, xmmword [edi + 0x20]
shufps xmm1, xmm1, 0xaa
mulps xmm1, xmmword [edi + 0x40]
addps xmm2, xmm0
addps xmm2, xmm1
mulps xmm2, xmmword [esi + 0x30]
movaps xmm0, xmm2
shufps xmm0, xmm2, 0x55
addss xmm0, xmm2
shufps xmm2, xmm2, 0xaa
addss xmm2, xmm0
shufps xmm2, xmm2, 0
subps xmm2, xmmword [str.33s_33s_33s_33s_]
shufps xmm2, xmm2, 0
movmskps ecx, xmm2
and ecx, 1
mov dword [esp + 0x28], ecx
jne 0x6d4335
cmp byte [esi + 0x22], 0
jne 0x6d54fd
mov al, byte [esi + 0x21]
test al, al
je 0x6d43f9
mov ecx, dword [esp + 0x2c]
movzx edx, al
dec edx
movss xmm1, dword [ecx + 0x1c]
cmp edx, 4
jl 0x6d43b3
lea eax, [edx + edx*2]
add ecx, 0xffffffec
shl eax, 4
add ecx, eax
lea eax, [edx - 4]
shr eax, 2
inc eax
mov dword [esp + 0x3c], eax
neg eax
lea edx, [edx + eax*4]
mov eax, dword [esp + 0x3c]
movss xmm0, dword [ecx + 0x30]
comiss xmm0, xmm1
ja 0x6d437e
movaps xmm1, xmm0
movss xmm0, dword [ecx]
comiss xmm0, xmm1
ja 0x6d438a
movaps xmm1, xmm0
movss xmm0, dword [ecx - 0x30]
comiss xmm0, xmm1
ja 0x6d4397
movaps xmm1, xmm0
movss xmm0, dword [ecx - 0x60]
comiss xmm0, xmm1
ja 0x6d43a4
movaps xmm1, xmm0
sub ecx, 0xc0
sub eax, 1
jne 0x6d4371
mov ecx, dword [esp + 0x2c]
test edx, edx
jle 0x6d43d6
lea eax, [edx + edx*2]
shl eax, 4
add eax, 0x1c
add eax, ecx
movss xmm0, dword [eax]
comiss xmm0, xmm1
ja 0x6d43ce
movaps xmm1, xmm0
dec edx
sub eax, 0x30
test edx, edx
jg 0x6d43c2
movss xmm0, dword [edi + 0x80]
lea eax, [esp + 0x60]
mulss xmm0, dword [0x71881c]
subss xmm1, xmm0
shufps xmm1, xmm1, 0
movaps xmmword [esp + 0x60], xmm1
jmp 0x6d43ff
lea eax, [edi + 0x80]
push eax
mov ecx, edi
call fcn.006d5510
test eax, eax
jne 0x6d54fd
mov word [esp + 0x32], ax
xorps xmm0, xmm0
lea eax, [esp + 0x80]
movaps xmmword [esp + 0xa0], xmm0
push eax
lea eax, [esp + 0x34]
mov ecx, edi
push eax
push esi
call fcn.006d5d80
cmp dword [esp + 0x28], 0
movss xmm1, dword [esp + 0xb0]
movaps xmm0, xmmword [esp + 0xa0]
mov dword [esp + 0x24], eax
movaps xmmword [esp + 0x60], xmm1
je 0x6d4626
test eax, eax
je 0x6d4626
mov cl, byte [esp + 0x30]
lea edx, [esi + 0x30]
cmp eax, 2
sete al
cmp dword [esp + 0xb8], 2
jg 0x6d4492
xorps xmm0, xmm0
movzx eax, cl
movaps xmmword [edx], xmm0
movaps xmm0, xmm1
xorps xmm0, xmmword [0x719730]
movss dword [edx + eax*4], xmm0
jmp 0x6d44bf
cmp dword [esp + 0xb8], 6
jg 0x6d44b8
movzx eax, cl
movaps xmm0, xmm1
xorps xmm0, xmmword [0x719730]
sub eax, 2
add eax, eax
shufps xmm0, xmm0, 0
mulps xmm0, xmmword [edi + eax*8]
jmp 0x6d44bc
test al, al
je 0x6d44bf
movaps xmmword [edx], xmm0
cmp byte [esi + 0x23], 0
je 0x6d462a
push edx
push dword [edi + 0x14]
lea ecx, [esp + 0x78]
call fcn.0046e9b0
mov eax, dword [edi + 0x10]
movzx esi, byte [esi + 0x21]
mov ecx, dword [eax]
sub ecx, eax
mov eax, 0x2aaaaaab
sub ecx, 0x10
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
xor edx, edx
sub eax, esi
mov dword [esp + 0x10], edx
test esi, esi
mov esi, dword [ebp + 8]
jle 0x6d45b5
lea ecx, [eax + eax*2]
shl ecx, 4
mov dword [esp + 0x18], ecx
mov eax, dword [edi + 0x10]
movaps xmm1, xmmword [ecx + eax + 0x20]
mulps xmm1, xmmword [esp + 0x70]
movaps xmm0, xmm1
shufps xmm0, xmm1, 0x55
addss xmm0, xmm1
shufps xmm1, xmm1, 0xaa
addss xmm1, xmm0
movss xmm0, dword [str.33s_]
comiss xmm0, xmm1
jbe 0x6d459d
mov eax, dword [eax]
mov edx, dword [edi + 0x10]
movaps xmm0, xmmword [eax - 0x30]
movaps xmmword [ecx + edx + 0x10], xmm0
movaps xmm0, xmmword [eax - 0x20]
movaps xmmword [ecx + edx + 0x20], xmm0
mov eax, dword [eax - 0x10]
mov dword [ecx + edx + 0x30], eax
mov edx, dword [esp + 0x10]
cmp byte [esi + edx*4], 6
ja 0x6d456a
dec byte [esi + 0x20]
mov eax, dword [edi + 0x10]
mov ecx, dword [edi + 0xc]
push dword [eax + 4]
mov eax, dword [esp + 0x14]
mov edx, dword [ecx]
movzx eax, word [esi + eax*4 + 2]
push eax
call dword [edx + 0x14]
push dword [esp + 0x10]
mov ecx, esi
call fcn.006d3dc0
mov eax, dword [edi + 0x10]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x10]
add dword [eax], 0xffffffd0
jmp 0x6d45a9
inc edx
add ecx, 0x30
mov dword [esp + 0x10], edx
mov dword [esp + 0x18], ecx
movzx eax, byte [esi + 0x21]
cmp edx, eax
jl 0x6d4512
cmp byte [esi + 0x21], 2
jae 0x6d45c1
mov byte [esi + 0x23], 0
jmp 0x6d4626
movaps xmm6, xmmword [edi + 0x20]
lea eax, [esp + 0x40]
movaps xmm5, xmmword [edi + 0x40]
movaps xmm1, xmm6
unpcklps xmm1, xmmword [edi + 0x30]
movaps xmm4, xmmword [esi + 0x30]
movaps xmm2, xmm1
unpckhps xmm6, xmmword [edi + 0x30]
movaps xmm0, xmm4
movlhps xmm2, xmm5
shufps xmm0, xmm4, 0x55
movaps xmm3, xmm2
movhlps xmm3, xmm1
shufps xmm3, xmm5, 0xd4
mulps xmm3, xmm0
movaps xmm0, xmm4
push eax
shufps xmm0, xmm4, 0
mulps xmm0, xmm2
shufps xmm4, xmm4, 0xaa
shufps xmm6, xmm5, 0xe4
mulps xmm4, xmm6
addps xmm3, xmm0
addps xmm3, xmm4
movaps xmmword [esp + 0x44], xmm3
call fcn.006500a0
mov dword [esi + 0x24], eax
add esp, 4
mov byte [esi + 0x23], 1
mov cl, byte [esp + 0x30]
cmp dword [esp + 0x24], 2
jne 0x6d54fd
movss xmm4, dword [0x77f9a4]
movaps xmm3, xmmword [esp + 0x90]
movaps xmm1, xmmword [esp + 0x80]
cmp cl, 6
ja 0x6d470c
cmp cl, 2
ja 0x6d467f
mov eax, dword [edi + 0x18]
movaps xmm2, xmm3
movaps xmm0, xmm3
shufps xmm2, xmm3, 0x55
shufps xmm0, xmm3, 0
mulps xmm0, xmmword [eax]
mulps xmm2, xmmword [eax + 0x10]
addps xmm2, xmm0
movaps xmm0, xmm3
shufps xmm0, xmm3, 0xaa
jmp 0x6d46a1
mov eax, dword [edi + 0x14]
movaps xmm2, xmm1
movaps xmm0, xmm1
shufps xmm2, xmm1, 0x55
shufps xmm0, xmm1, 0
mulps xmm0, xmmword [eax]
mulps xmm2, xmmword [eax + 0x10]
addps xmm2, xmm0
movaps xmm0, xmm1
shufps xmm0, xmm1, 0xaa
mulps xmm0, xmmword [eax + 0x20]
xor ecx, ecx
addps xmm0, xmmword [eax + 0x30]
movzx eax, byte [esi + 0x21]
mov dword [esp + 0x3c], eax
addps xmm2, xmm0
test eax, eax
jle 0x6d470c
xor edx, edx
nop dword [eax]
cmp byte [esi + ecx*4], 6
ja 0x6d4704
mov eax, dword [edi + 0x10]
movaps xmm1, xmm2
subps xmm1, xmmword [edx + eax + 0x10]
mulps xmm1, xmm1
movaps xmm0, xmm1
shufps xmm0, xmm1, 0x55
addss xmm0, xmm1
shufps xmm1, xmm1, 0xaa
addss xmm1, xmm0
movss xmm0, dword [edi + 0xb0]
mulss xmm0, xmm0
addss xmm0, xmm4
comiss xmm0, xmm1
jae 0x6d54fd
mov eax, dword [esp + 0x3c]
inc ecx
add edx, 0x30
cmp ecx, eax
jl 0x6d46c0
cmp byte [esi + 0x21], 8
jae 0x6d54fd
lea eax, [esp + 0x30]
mov ecx, esi
push eax
push dword [edi + 4]
push dword [edi]
call fcn.006d3d60
mov dword [esp + 0x18], eax
mov dword [esp + 0x3c], 0xffff
test eax, eax
js 0x6d4930
mov ecx, dword [edi + 0x10]
mov eax, dword [esp + 0xb8]
mov edx, dword [ecx]
mov dword [esp + 0x24], edx
cmp eax, 2
jg 0x6d47bb
movzx eax, word [esp + 0x32]
movaps xmm2, xmmword [esp + 0x90]
movzx ecx, byte [esp + 0x30]
movaps xmm1, xmm2
mov dword [edx + 0x20], eax
movaps xmm0, xmm2
mov eax, dword [edi + 0x18]
shufps xmm1, xmm2, 0x55
shufps xmm0, xmm2, 0
shufps xmm2, xmm2, 0xaa
mulps xmm0, xmmword [eax]
shl ecx, 4
mulps xmm1, xmmword [eax + 0x10]
mulps xmm2, xmmword [eax + 0x20]
addps xmm1, xmm0
addps xmm2, xmmword [eax + 0x30]
addps xmm1, xmm2
movaps xmmword [edx], xmm1
movaps xmm1, xmmword [esp + 0x60]
movaps xmm0, xmmword [0x719550]
add ecx, dword [edi + 0x14]
shufps xmm1, xmm1, 0
subps xmm0, xmm1
shufps xmm0, xmm0, 0
mulps xmm0, xmmword [ecx]
movaps xmmword [edx + 0x10], xmm0
jmp 0x6d487b
movaps xmm2, xmmword [esp + 0x80]
cmp eax, 6
movzx eax, word [esp + 0x32]
movaps xmm1, xmm2
movaps xmm0, xmm2
shufps xmm1, xmm2, 0x55
shufps xmm0, xmm2, 0
shufps xmm2, xmm2, 0xaa
jg 0x6d482b
movzx ecx, byte [esp + 0x30]
mov dword [edx + 0x20], eax
sub ecx, 4
mov eax, dword [edi + 0x14]
shl ecx, 4
mulps xmm0, xmmword [eax]
mulps xmm1, xmmword [eax + 0x10]
mulps xmm2, xmmword [eax + 0x20]
addps xmm1, xmm0
addps xmm2, xmmword [eax + 0x30]
addps xmm1, xmm2
movaps xmmword [edx], xmm1
movaps xmm1, xmmword [esp + 0x60]
movaps xmm0, xmmword [0x719550]
add ecx, dword [edi + 0x18]
shufps xmm1, xmm1, 0
subps xmm0, xmm1
shufps xmm0, xmm0, 0
mulps xmm0, xmmword [ecx]
movaps xmmword [edx + 0x10], xmm0
jmp 0x6d487b
mov dword [edx + 0x20], eax
mov eax, dword [edi + 0x14]
mulps xmm1, xmmword [eax + 0x10]
mulps xmm0, xmmword [eax]
mulps xmm2, xmmword [eax + 0x20]
addps xmm1, xmm0
addps xmm2, xmmword [eax + 0x30]
addps xmm1, xmm2
movaps xmm2, xmmword [esp + 0xa0]
movaps xmm0, xmm2
shufps xmm0, xmm2, 0
movaps xmmword [edx], xmm1
movaps xmm1, xmm2
mov eax, dword [edi + 0x14]
shufps xmm1, xmm2, 0x55
shufps xmm2, xmm2, 0xaa
mulps xmm1, xmmword [eax + 0x10]
mulps xmm0, xmmword [eax]
mulps xmm2, xmmword [eax + 0x20]
addps xmm1, xmm0
addps xmm1, xmm2
movaps xmmword [edx + 0x10], xmm1
movss xmm0, dword [esp + 0xb4]
movss dword [edx + 0x1c], xmm0
cmp byte [esi + 0x21], 1
jbe 0x6d48da
mov eax, dword [edi + 0x10]
mov eax, dword [eax]
movaps xmm1, xmmword [eax - 0x20]
mulps xmm1, xmmword [edx + 0x10]
movaps xmm0, xmm1
shufps xmm0, xmm1, 0x55
addss xmm0, xmm1
shufps xmm1, xmm1, 0xaa
addss xmm1, xmm0
xorps xmm0, xmm0
shufps xmm1, xmm1, 0
subps xmm0, xmm1
shufps xmm0, xmm0, 0
movmskps eax, xmm0
xor al, 0xff
test al, 1
je 0x6d48da
mov ecx, dword [esp + 0x18]
push ecx
mov ecx, esi
call fcn.006d3dc0
pop edi
pop esi
mov esp, ebp
pop ebp
ret 4
mov ecx, dword [edi + 0xc]
push edx
push 0
push dword [edi + 0x10]
mov eax, dword [ecx]
push dword [edi + 8]
push dword [edi + 4]
mov eax, dword [eax + 0xc]
push dword [edi]
call eax
mov ecx, dword [esp + 0x18]
mov edx, 0xffff
mov word [esi + ecx*4 + 2], ax
cmp ax, dx
jne 0x6d490f
push ecx
mov ecx, esi
call fcn.006d3dc0
jmp 0x6d4930
mov eax, dword [edi + 0x10]
add dword [eax], 0x30
movzx eax, word [esi + ecx*4 + 2]
mov ecx, dword [esp + 0x24]
mov word [esp + 0x32], ax
mov dword [ecx + 0x20], eax
cmp byte [esp + 0x30], 6
ja 0x6d4930
inc byte [esi + 0x20]
mov cl, byte [esi + 0x21]
mov eax, dword [esp + 0x30]
mov dword [esp + 0x54], eax
cmp cl, 1
jb 0x6d54fd
mov eax, dword [edi + 0x10]
movzx esi, cl
mov ecx, dword [eax]
sub ecx, eax
mov eax, 0x2aaaaaab
sub ecx, 0x10
imul ecx
mov ecx, dword [edi + 0x18]
sar edx, 3
mov eax, edx
shr eax, 0x1f
movaps xmm7, xmmword [ecx]
add eax, edx
movaps xmm5, xmmword [ecx + 0x20]
sub eax, esi
lea edx, [eax + eax*2]
mov eax, dword [edi + 0x14]
shl edx, 4
mov dword [esp + 0x38], edx
movaps xmm3, xmmword [eax]
movaps xmm2, xmmword [eax + 0x20]
movaps xmm1, xmm3
unpcklps xmm1, xmmword [eax + 0x10]
unpckhps xmm3, xmmword [eax + 0x10]
movaps xmm0, xmm1
movlhps xmm0, xmm2
movaps xmm2, xmm7
unpcklps xmm2, xmmword [ecx + 0x10]
unpckhps xmm7, xmmword [ecx + 0x10]
mov ecx, dword [edi + 0x10]
movaps xmmword [esp + 0x70], xmm0
movaps xmmword [esp + 0x40], xmm1
movaps xmm1, xmm2
movlhps xmm1, xmm5
movaps xmm6, xmmword [edx + ecx + 0x20]
movaps xmm0, xmm1
movhlps xmm0, xmm2
movaps xmm4, xmm6
movaps xmmword [esp + 0x60], xmm0
movaps xmm2, xmmword [esp + 0x60]
shufps xmm2, xmm5, 0xd4
shufps xmm7, xmm5, 0xe4
movaps xmm5, xmmword [esp + 0x70]
shufps xmm4, xmm6, 0
movaps xmmword [esp + 0xc0], xmm3
movaps xmm0, xmm4
mulps xmm4, xmmword [esp + 0x70]
movaps xmm3, xmm6
mulps xmm0, xmm1
movaps xmm1, xmmword [esp + 0x40]
movhlps xmm5, xmm1
shufps xmm5, xmmword [eax + 0x20], 0xd4
shufps xmm3, xmm6, 0x55
mulps xmm2, xmm3
mulps xmm5, xmm3
shufps xmm6, xmm6, 0xaa
addps xmm2, xmm0
mulps xmm7, xmm6
movaps xmm0, xmmword [esp + 0xc0]
addps xmm5, xmm4
shufps xmm0, xmmword [eax + 0x20], 0xe4
mulps xmm0, xmm6
addps xmm2, xmm7
addps xmm5, xmm0
movaps xmmword [esp + 0x60], xmm2
andps xmm2, xmmword [0x719140]
movaps xmmword [esp + 0x70], xmm2
xorps xmm5, xmmword [0x719130]
movaps xmm1, xmm5
andps xmm1, xmmword [0x719140]
movaps xmm0, xmm1
movaps xmmword [esp + 0x40], xmm1
shufps xmm0, xmm1, 0x55
comiss xmm1, xmm0
jbe 0x6d4a69
xor edx, edx
mov dword [esp + 0x14], 0x10
jmp 0x6d4a76
mov edx, 1
mov dword [esp + 0x14], 0x20
movss xmm0, dword [esp + 0x48]
comiss xmm0, dword [esp + edx*4 + 0x40]
jbe 0x6d4a90
mov edx, 2
mov dword [esp + 0x14], 0x40
movaps xmm0, xmm2
shufps xmm0, xmm2, 0x55
comiss xmm2, xmm0
jbe 0x6d4aa8
xor ecx, ecx
mov dword [esp + 0x34], 0x10
jmp 0x6d4ab5
mov ecx, 1
mov dword [esp + 0x34], 0x20
movss xmm0, dword [esp + 0x78]
comiss xmm0, dword [esp + ecx*4 + 0x70]
jbe 0x6d4acf
mov ecx, 2
mov dword [esp + 0x34], 0x40
movss xmm0, dword [0x786708]
comiss xmm0, dword [esp + edx*4 + 0x40]
ja 0x6d54fd
comiss xmm0, dword [esp + ecx*4 + 0x70]
ja 0x6d54fd
movss xmm0, dword [edi + edx*4 + 0xc0]
xor eax, eax
mov word [esp + 0x2a], ax
xorps xmm1, xmm1
movss dword [esp + 0x24], xmm0
movaps xmm0, xmmword [esp + 0x60]
cmpltps xmm0, xmm1
mov byte [esp + 0x54], dl
cmpltps xmm5, xmm1
movmskps eax, xmm0
movss xmm0, dword [edi + ecx*4 + 0xd0]
add cl, 4
mov byte [esp + 0x28], cl
and al, 7
shl al, 4
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x24]
shr eax, 0x1c
and al, 8
movss dword [esp + 0x24], xmm0
or byte [esp + 0x50], al
mov eax, dword [esp + 0x50]
mov byte [esp + 0x55], al
movmskps eax, xmm5
and al, 7
shl al, 4
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x24]
shr eax, 0x1c
and al, 8
or byte [esp + 0x58], al
mov eax, dword [esp + 0x58]
mov byte [esp + 0x29], al
test esi, esi
jle 0x6d4ba1
mov ecx, dword [esp + 0x38]
mov eax, dword [edi + 0x10]
add ecx, 0x2c
movss xmm1, dword [0x718824]
add eax, ecx
movss xmm0, dword [eax]
comiss xmm1, xmm0
jbe 0x6d4b99
movss dword [esp + 0x5c], xmm0
movaps xmm1, xmm0
add eax, 0x30
sub esi, 1
jne 0x6d4b87
mov esi, dword [esp + 0x54]
mov eax, 0x7c3540
mov ecx, dword [esp + 0x34]
mov dword [esp + 0x24], eax
movzx edx, word [eax]
mov eax, edx
and eax, ecx
test ax, ax
jne 0x6d5214
movzx eax, byte [esp + 0x50]
mov ecx, esi
xor al, dl
shr ecx, 8
mov edx, dword [ebp + 8]
and cl, 0xf
or cl, al
mov dword [esp + 0x10], esi
mov dword [esp + 0x18], ecx
mov byte [esp + 0x11], cl
mov al, byte [edx + 0x21]
mov byte [esp + 0x23], al
movzx eax, al
mov dword [esp + 0x38], eax
add eax, 0xffffffff
js 0x6d4c11
mov cl, byte [esp + 0x10]
cmp byte [edx + eax*4], cl
mov ecx, dword [esp + 0x18]
jne 0x6d4c0c
cmp byte [edx + eax*4 + 1], cl
je 0x6d4d76
sub eax, 1
jns 0x6d4bf5
xor al, al
test al, al
jne 0x6d4fd4
movzx eax, byte [esp + 0x10]
movaps xmm1, xmmword [edi + 0x30]
mov dword [esp + 0xb8], eax
movzx ecx, cl
mov eax, ecx
mov dword [esp + 0x2c], 0x3f800000
and ecx, 0x70
and eax, 0xfffffff8
add ecx, 0x7c34c0
shl eax, 0x1c
or dword [esp + 0x2c], eax
movss xmm3, dword [esp + 0x2c]
movaps xmmword [esp + 0x60], xmm3
movaps xmm4, xmmword [ecx]
mulps xmm4, xmmword [edi + 0x70]
movss dword [esp + 0xb0], xmm3
movaps xmm5, xmm4
movaps xmmword [esp + 0x90], xmm4
shufps xmm5, xmm4, 0
movaps xmm6, xmm4
shufps xmm6, xmm4, 0x55
movaps xmm0, xmm5
mulps xmm0, xmmword [edi + 0x20]
mulps xmm1, xmm6
shufps xmm4, xmm4, 0xaa
movaps xmmword [esp + 0xc0], xmm6
movaps xmmword [esp + 0xe0], xmm5
addps xmm1, xmm0
movaps xmmword [esp + 0xd0], xmm4
movaps xmm0, xmmword [edi + 0x40]
mulps xmm0, xmm4
addps xmm0, xmmword [edi + 0x50]
addps xmm1, xmm0
movaps xmm0, xmm1
movss dword [esp + 0x40], xmm1
shufps xmm0, xmm1, 0x55
movss dword [esp + 0x44], xmm0
movaps xmm0, xmm1
shufps xmm0, xmm1, 0xaa
movss dword [esp + 0x48], xmm0
movaps xmm0, xmm1
shufps xmm0, xmm1, 0xff
movss dword [esp + 0x4c], xmm0
movaps xmm0, xmmword [esp + 0x40]
andps xmm0, xmmword [0x719140]
cmpltps xmm0, xmmword [edi + 0x90]
movaps xmmword [esp + 0x70], xmm1
movmskps eax, xmm0
movaps xmmword [esp + 0x80], xmm1
and eax, 7
cmp al, 7
jne 0x6d4fd4
mov eax, dword [esp + 0xb8]
movss xmm0, dword [esp + 0x5c]
movss xmm2, dword [esp + eax*4 + 0x80]
mulss xmm2, xmm3
movss xmm3, dword [0x77f9a4]
subss xmm0, xmm3
subss xmm2, dword [edi + eax*4 + 0x60]
comiss xmm2, xmm0
movss dword [esp + 0x18], xmm2
jb 0x6d4fd4
mov al, byte [esp + 0x10]
cmp al, 6
ja 0x6d4e12
cmp al, 2
ja 0x6d4d7d
mov eax, dword [edi + 0x18]
movaps xmm0, xmm5
movaps xmm2, xmmword [eax + 0x10]
mulps xmm0, xmmword [eax]
mulps xmm2, xmm6
addps xmm2, xmm0
movaps xmm0, xmmword [eax + 0x20]
mulps xmm0, xmm4
jmp 0x6d4da3
mov al, 1
jmp 0x6d4c13
mov eax, dword [edi + 0x14]
movaps xmm2, xmm1
movaps xmm0, xmm1
shufps xmm2, xmm1, 0x55
shufps xmm0, xmm1, 0
mulps xmm0, xmmword [eax]
mulps xmm2, xmmword [eax + 0x10]
addps xmm2, xmm0
movaps xmm0, xmm1
shufps xmm0, xmm1, 0xaa
mulps xmm0, xmmword [eax + 0x20]
addps xmm0, xmmword [eax + 0x30]
xor ecx, ecx
addps xmm2, xmm0
cmp dword [esp + 0x38], ecx
jle 0x6d4e12
xor eax, eax
mov dword [esp + 0x2c], eax
cmp byte [edx + ecx*4], 6
ja 0x6d4e04
mov esi, dword [esp + 0x2c]
movaps xmm1, xmm2
mov eax, dword [edi + 0x10]
subps xmm1, xmmword [esi + eax + 0x10]
mov esi, dword [esp + 0x54]
mulps xmm1, xmm1
movaps xmm0, xmm1
shufps xmm0, xmm1, 0x55
addss xmm0, xmm1
shufps xmm1, xmm1, 0xaa
addss xmm1, xmm0
movss xmm0, dword [edi + 0xb0]
mulss xmm0, xmm0
addss xmm0, xmm3
comiss xmm0, xmm1
jae 0x6d4fd4
mov eax, dword [esp + 0x2c]
inc ecx
add eax, 0x30
mov dword [esp + 0x2c], eax
cmp ecx, dword [esp + 0x38]
jl 0x6d4db8
cmp byte [esp + 0x23], 8
jae 0x6d4fd4
lea eax, [esp + 0x10]
mov ecx, edx
push eax
push dword [edi + 4]
push dword [edi]
call fcn.006d3d60
mov dword [esp + 0x38], eax
test eax, eax
js 0x6d4fd1
mov ecx, dword [edi + 0x10]
mov eax, dword [esp + 0xb8]
mov edx, dword [ecx]
mov dword [esp + 0x2c], edx
cmp eax, 2
jg 0x6d4eb8
movzx eax, word [esp + 0x12]
movzx ecx, byte [esp + 0x10]
movaps xmm0, xmmword [esp + 0xe0]
mov dword [edx + 0x20], eax
mov eax, dword [edi + 0x18]
shl ecx, 4
mulps xmm0, xmmword [eax]
movaps xmm1, xmmword [eax + 0x10]
mulps xmm1, xmmword [esp + 0xc0]
addps xmm1, xmm0
movaps xmm0, xmmword [eax + 0x20]
mulps xmm0, xmmword [esp + 0xd0]
addps xmm0, xmmword [eax + 0x30]
addps xmm1, xmm0
movaps xmmword [edx], xmm1
movaps xmm1, xmmword [esp + 0x60]
movaps xmm0, xmmword [0x719550]
add ecx, dword [edi + 0x14]
shufps xmm1, xmm1, 0
subps xmm0, xmm1
shufps xmm0, xmm0, 0
mulps xmm0, xmmword [ecx]
movaps xmmword [edx + 0x10], xmm0
jmp 0x6d4f75
movaps xmm2, xmmword [esp + 0x70]
cmp eax, 6
movzx eax, word [esp + 0x12]
movaps xmm1, xmm2
movaps xmm0, xmm2
shufps xmm1, xmm2, 0x55
shufps xmm0, xmm2, 0
shufps xmm2, xmm2, 0xaa
jg 0x6d4f25
movzx ecx, byte [esp + 0x10]
mov dword [edx + 0x20], eax
sub ecx, 4
mov eax, dword [edi + 0x14]
shl ecx, 4
mulps xmm0, xmmword [eax]
mulps xmm1, xmmword [eax + 0x10]
mulps xmm2, xmmword [eax + 0x20]
addps xmm1, xmm0
addps xmm2, xmmword [eax + 0x30]
addps xmm1, xmm2
movaps xmmword [edx], xmm1
movaps xmm1, xmmword [esp + 0x60]
movaps xmm0, xmmword [0x719550]
add ecx, dword [edi + 0x18]
shufps xmm1, xmm1, 0
subps xmm0, xmm1
shufps xmm0, xmm0, 0
mulps xmm0, xmmword [ecx]
movaps xmmword [edx + 0x10], xmm0
jmp 0x6d4f75
mov dword [edx + 0x20], eax
mov eax, dword [edi + 0x14]
mulps xmm2, xmmword [eax + 0x20]
mulps xmm1, xmmword [eax + 0x10]
mulps xmm0, xmmword [eax]
addps xmm2, xmmword [eax + 0x30]
addps xmm1, xmm0
addps xmm1, xmm2
movaps xmmword [edx], xmm1
movaps xmm1, xmmword [esp + 0xa0]
mov eax, dword [edi + 0x14]
movaps xmm2, xmm1
shufps xmm2, xmm1, 0x55
movaps xmm0, xmm1
shufps xmm0, xmm1, 0
shufps xmm1, xmm1, 0xaa
mulps xmm2, xmmword [eax + 0x10]
mulps xmm0, xmmword [eax]
mulps xmm1, xmmword [eax + 0x20]
addps xmm2, xmm0
addps xmm2, xmm1
movaps xmmword [edx + 0x10], xmm2
mov ecx, dword [ebp + 8]
movss xmm0, dword [esp + 0x18]
movss dword [edx + 0x1c], xmm0
cmp byte [ecx + 0x21], 1
jbe 0x6d51bc
mov eax, dword [edi + 0x10]
mov eax, dword [eax]
movaps xmm1, xmmword [eax - 0x20]
mulps xmm1, xmmword [edx + 0x10]
movaps xmm0, xmm1
shufps xmm0, xmm1, 0x55
addss xmm0, xmm1
shufps xmm1, xmm1, 0xaa
addss xmm1, xmm0
xorps xmm0, xmm0
shufps xmm1, xmm1, 0
subps xmm0, xmm1
shufps xmm0, xmm0, 0
movmskps eax, xmm0
xor al, 0xff
test al, 1
je 0x6d51bc
push dword [esp + 0x38]
call fcn.006d3dc0
mov edx, dword [ebp + 8]
mov ecx, dword [esp + 0x34]
mov eax, dword [esp + 0x24]
add eax, 2
mov dword [esp + 0x24], eax
cmp eax, 0x7c354e
jl 0x6d4bb2
mov esi, dword [esp + 0x28]
mov eax, 0x7c3540
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x38], eax
nop
movzx eax, word [eax]
mov dword [esp + 0x24], eax
and eax, ecx
test ax, ax
jne 0x6d547a
movzx eax, byte [esp + 0x58]
mov ecx, esi
xor al, byte [esp + 0x24]
shr ecx, 8
and cl, 0xf
mov dword [esp + 0x10], esi
or cl, al
mov al, byte [edx + 0x21]
mov byte [esp + 0x23], al
movzx eax, al
mov dword [esp + 0x24], eax
add eax, 0xffffffff
mov dword [esp + 0x18], ecx
mov byte [esp + 0x11], cl
js 0x6d5060
mov cl, byte [esp + 0x10]
cmp byte [edx + eax*4], cl
mov ecx, dword [esp + 0x18]
jne 0x6d505b
cmp byte [edx + eax*4 + 1], cl
je 0x6d521c
sub eax, 1
jns 0x6d5044
xor al, al
test al, al
jne 0x6d5476
movzx eax, byte [esp + 0x10]
movaps xmm4, xmmword [edi + 0x20]
movaps xmm3, xmmword [edi + 0x40]
movaps xmm1, xmm4
unpcklps xmm1, xmmword [edi + 0x30]
mov dword [esp + 0xb8], eax
movaps xmm2, xmm1
movzx ecx, cl
mov eax, ecx
unpckhps xmm4, xmmword [edi + 0x30]
and ecx, 0x70
mov dword [esp + 0x18], 0x3f800000
add ecx, 0x7c34c0
movlhps xmm2, xmm3
and eax, 0xfffffff8
shufps xmm4, xmm3, 0xe4
shl eax, 0x1c
movaps xmm7, xmm2
or dword [esp + 0x18], eax
movaps xmm6, xmmword [ecx]
mulps xmm6, xmmword [edi + 0x60]
movss xmm0, dword [esp + 0x18]
movaps xmmword [esp + 0x60], xmm0
movss dword [esp + 0xb0], xmm0
movaps xmm5, xmm6
movhlps xmm7, xmm1
subps xmm5, xmmword [edi + 0x50]
shufps xmm7, xmm3, 0xd4
movaps xmmword [esp + 0x70], xmm6
movaps xmmword [esp + 0x80], xmm6
movaps xmm0, xmm5
shufps xmm0, xmm5, 0x55
mulps xmm7, xmm0
movaps xmm0, xmm5
shufps xmm0, xmm5, 0
mulps xmm0, xmm2
shufps xmm5, xmm5, 0xaa
mulps xmm4, xmm5
addps xmm7, xmm0
movaps xmm0, xmmword [0x719140]
addps xmm7, xmm4
andps xmm0, xmm7
movaps xmmword [esp + 0xd0], xmm7
cmpltps xmm0, xmmword [edi + 0xa0]
movaps xmmword [esp + 0x90], xmm7
movmskps eax, xmm0
and eax, 7
cmp al, 7
jne 0x6d5476
mov eax, dword [esp + 0xb8]
movss xmm0, dword [esp + 0x5c]
movss xmm3, dword [0x77f9a4]
subss xmm0, xmm3
movss xmm1, dword [esp + eax*4 + 0x80]
mulss xmm1, dword [esp + 0x60]
xorps xmm1, xmmword [0x719730]
subss xmm1, dword [edi + eax*4 + 0x60]
comiss xmm1, xmm0
movss dword [esp + 0x2c], xmm1
jb 0x6d5476
mov al, byte [esp + 0x10]
cmp al, 6
ja 0x6d52ba
cmp al, 2
ja 0x6d5223
mov eax, dword [edi + 0x18]
movaps xmm2, xmm7
movaps xmm0, xmm7
shufps xmm2, xmm7, 0x55
shufps xmm0, xmm7, 0
mulps xmm0, xmmword [eax]
mulps xmm2, xmmword [eax + 0x10]
addps xmm2, xmm0
movaps xmm0, xmm7
shufps xmm0, xmm7, 0xaa
jmp 0x6d5245
mov ecx, dword [edi + 0xc]
push edx
push 0
push dword [edi + 0x10]
mov eax, dword [ecx]
push dword [edi + 8]
push dword [edi + 4]
mov eax, dword [eax + 0xc]
push dword [edi]
call eax
mov edx, dword [ebp + 8]
mov ecx, dword [esp + 0x38]
mov word [edx + ecx*4 + 2], ax
cmp ax, word [esp + 0x3c]
jne 0x6d51ef
push ecx
mov ecx, edx
jmp 0x6d4fcc
mov eax, dword [edi + 0x10]
add dword [eax], 0x30
movzx eax, word [edx + ecx*4 + 2]
mov ecx, dword [esp + 0x2c]
mov dword [ecx + 0x20], eax
cmp byte [esp + 0x10], 6
ja 0x6d4fd4
inc byte [edx + 0x20]
jmp 0x6d4fd4
mov edx, dword [ebp + 8]
jmp 0x6d4fd8
mov al, 1
jmp 0x6d5062
mov eax, dword [edi + 0x14]
movaps xmm2, xmm6
movaps xmm0, xmm6
shufps xmm2, xmm6, 0x55
shufps xmm0, xmm6, 0
mulps xmm0, xmmword [eax]
mulps xmm2, xmmword [eax + 0x10]
addps xmm2, xmm0
movaps xmm0, xmm6
shufps xmm0, xmm6, 0xaa
mulps xmm0, xmmword [eax + 0x20]
xor ecx, ecx
addps xmm0, xmmword [eax + 0x30]
addps xmm2, xmm0
cmp dword [esp + 0x24], ecx
jle 0x6d52ba
xor eax, eax
mov dword [esp + 0x18], eax
nop
cmp byte [edx + ecx*4], 6
ja 0x6d52ac
mov esi, dword [esp + 0x18]
movaps xmm1, xmm2
mov eax, dword [edi + 0x10]
subps xmm1, xmmword [esi + eax + 0x10]
mov esi, dword [esp + 0x28]
mulps xmm1, xmm1
movaps xmm0, xmm1
shufps xmm0, xmm1, 0x55
addss xmm0, xmm1
shufps xmm1, xmm1, 0xaa
addss xmm1, xmm0
movss xmm0, dword [edi + 0xb0]
mulss xmm0, xmm0
addss xmm0, xmm3
comiss xmm0, xmm1
jae 0x6d5476
mov eax, dword [esp + 0x18]
inc ecx
add eax, 0x30
mov dword [esp + 0x18], eax
cmp ecx, dword [esp + 0x24]
jl 0x6d5260
cmp byte [esp + 0x23], 8
jae 0x6d5476
lea eax, [esp + 0x10]
mov ecx, edx
push eax
push dword [edi + 4]
push dword [edi]
call fcn.006d3d60
mov dword [esp + 0x24], eax
test eax, eax
js 0x6d5473
mov ecx, dword [edi + 0x10]
mov eax, dword [esp + 0xb8]
mov edx, dword [ecx]
mov dword [esp + 0x18], edx
cmp eax, 2
jg 0x6d5362
movzx eax, word [esp + 0x12]
movaps xmm2, xmmword [esp + 0xd0]
movzx ecx, byte [esp + 0x10]
movaps xmm1, xmm2
mov dword [edx + 0x20], eax
movaps xmm0, xmm2
mov eax, dword [edi + 0x18]
shufps xmm1, xmm2, 0x55
shufps xmm0, xmm2, 0
shufps xmm2, xmm2, 0xaa
mulps xmm0, xmmword [eax]
shl ecx, 4
mulps xmm1, xmmword [eax + 0x10]
mulps xmm2, xmmword [eax + 0x20]
addps xmm1, xmm0
addps xmm2, xmmword [eax + 0x30]
addps xmm1, xmm2
movaps xmmword [edx], xmm1
movaps xmm1, xmmword [esp + 0x60]
movaps xmm0, xmmword [0x719550]
add ecx, dword [edi + 0x14]
shufps xmm1, xmm1, 0
subps xmm0, xmm1
shufps xmm0, xmm0, 0
mulps xmm0, xmmword [ecx]
movaps xmmword [edx + 0x10], xmm0
jmp 0x6d541f
movaps xmm2, xmmword [esp + 0x70]
cmp eax, 6
movzx eax, word [esp + 0x12]
movaps xmm1, xmm2
movaps xmm0, xmm2
shufps xmm1, xmm2, 0x55
shufps xmm0, xmm2, 0
shufps xmm2, xmm2, 0xaa
jg 0x6d53cf
movzx ecx, byte [esp + 0x10]
mov dword [edx + 0x20], eax
sub ecx, 4
mov eax, dword [edi + 0x14]
shl ecx, 4
mulps xmm0, xmmword [eax]
mulps xmm1, xmmword [eax + 0x10]
mulps xmm2, xmmword [eax + 0x20]
addps xmm1, xmm0
addps xmm2, xmmword [eax + 0x30]
addps xmm1, xmm2
movaps xmmword [edx], xmm1
movaps xmm1, xmmword [esp + 0x60]
movaps xmm0, xmmword [0x719550]
add ecx, dword [edi + 0x18]
shufps xmm1, xmm1, 0
subps xmm0, xmm1
shufps xmm0, xmm0, 0
mulps xmm0, xmmword [ecx]
movaps xmmword [edx + 0x10], xmm0
jmp 0x6d541f
mov dword [edx + 0x20], eax
mov eax, dword [edi + 0x14]
mulps xmm2, xmmword [eax + 0x20]
mulps xmm1, xmmword [eax + 0x10]
mulps xmm0, xmmword [eax]
addps xmm2, xmmword [eax + 0x30]
addps xmm1, xmm0
addps xmm1, xmm2
movaps xmmword [edx], xmm1
movaps xmm1, xmmword [esp + 0xa0]
mov eax, dword [edi + 0x14]
movaps xmm2, xmm1
shufps xmm2, xmm1, 0x55
movaps xmm0, xmm1
shufps xmm0, xmm1, 0
shufps xmm1, xmm1, 0xaa
mulps xmm2, xmmword [eax + 0x10]
mulps xmm0, xmmword [eax]
mulps xmm1, xmmword [eax + 0x20]
addps xmm2, xmm0
addps xmm2, xmm1
movaps xmmword [edx + 0x10], xmm2
mov ecx, dword [ebp + 8]
movss xmm0, dword [esp + 0x2c]
movss dword [edx + 0x1c], xmm0
cmp byte [ecx + 0x21], 1
jbe 0x6d54a2
mov eax, dword [edi + 0x10]
mov eax, dword [eax]
movaps xmm1, xmmword [eax - 0x20]
mulps xmm1, xmmword [edx + 0x10]
movaps xmm0, xmm1
shufps xmm0, xmm1, 0x55
addss xmm0, xmm1
shufps xmm1, xmm1, 0xaa
addss xmm1, xmm0
xorps xmm0, xmm0
shufps xmm1, xmm1, 0
subps xmm0, xmm1
shufps xmm0, xmm0, 0
movmskps eax, xmm0
xor al, 0xff
test al, 1
je 0x6d54a2
push dword [esp + 0x24]
call fcn.006d3dc0
mov edx, dword [ebp + 8]
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x38]
add eax, 2
mov dword [esp + 0x38], eax
cmp eax, 0x7c354e
jl 0x6d5000
cmp byte [edx + 0x20], 4
jb 0x6d54f0
mov byte [edx + 0x22], 1
pop edi
pop esi
mov esp, ebp
pop ebp
ret 4
mov ecx, dword [edi + 0xc]
push edx
push 0
push dword [edi + 0x10]
mov eax, dword [ecx]
push dword [edi + 8]
push dword [edi + 4]
mov eax, dword [eax + 0xc]
push dword [edi]
call eax
mov edx, dword [ebp + 8]
mov ecx, dword [esp + 0x24]
mov word [edx + ecx*4 + 2], ax
cmp ax, word [esp + 0x3c]
jne 0x6d54d2
push ecx
mov ecx, edx
jmp 0x6d546e
mov eax, dword [edi + 0x10]
add dword [eax], 0x30
movzx eax, word [edx + ecx*4 + 2]
mov ecx, dword [esp + 0x18]
mov dword [ecx + 0x20], eax
cmp byte [esp + 0x10], 6
ja 0x6d5476
inc byte [edx + 0x20]
jmp 0x6d5476
push dword [esp + 0x34]
push ecx
push edx
mov ecx, edi
call fcn.006d6bb0
pop edi
pop esi
mov esp, ebp
pop ebp
ret 4