Function at 0x5c6570
Capabilities:
Execute anti-debugging instructions
Get thread local storage value
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x258
cmp byte [ecx + 0x4a], 0
mov eax, dword [ebp + 8]
push esi
push edi
mov dword [esp + 0x1c], ecx
mov eax, dword [eax]
mov eax, dword [eax + 0x2c]
mov eax, dword [eax + 0x24]
mov edx, dword [eax + 0x6c]
mov dword [esp + 0x18], edx
jne 0x5c80dc
mov eax, dword [ebp + 0xc]
mov eax, dword [eax]
cmp dword [eax + 4], 0xb
jle 0x5c80dc
test edx, edx
je 0x5c80dc
push dword [0x884c50]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov edi, eax
mov esi, dword [edi + 4]
cmp esi, dword [edi + 0xc]
jae 0x5c65e4
mov dword [esi], str.TtFootIkController
rdtsc
mov dword [esp + 0x74], eax
mov ecx, dword [esp + 0x74]
lea eax, [esi + 0xc]
mov dword [esi + 4], ecx
mov dword [edi + 4], eax
mov eax, dword [ebp + 0xc]
mov eax, dword [eax]
cmp dword [eax + 4], 2
jle 0x5c65f5
movsx ecx, word [eax + 0x32]
jmp 0x5c65f7
xor ecx, ecx
mov esi, dword [esp + 0x18]
mov dword [esp + 0x74], ecx
mov eax, dword [esi + 0xc]
mov dword [esp + 0x14], eax
test eax, eax
je 0x5c80dc
test ecx, ecx
je 0x5c80dc
lea ecx, [esp + 0x80]
call fcn.0045d8c0
mov edi, dword [ebp + 8]
lea ecx, [esp + 0x80]
push ecx
mov ecx, esi
mov eax, dword [edi]
mov eax, dword [eax + 0x2c]
push dword [eax + 0x14]
call fcn.005e2ad0
test al, al
je 0x5c80d0
mov esi, dword [ebp + 0xc]
mov eax, dword [esi]
cmp dword [eax + 4], 0xb
jle 0x5c8090
movss xmm0, dword [eax + 0xc8]
xorps xmm1, xmm1
comiss xmm0, xmm1
seta al
test al, al
je 0x5c8090
push dword [edi]
call fcn.005ca920
mov edi, eax
add esp, 4
mov dword [esp + 0x2c], edi
test edi, edi
jne 0x5c6696
mov eax, dword [ebp + 8]
mov ecx, dword [eax]
call fcn.00596340
mov dword [esp + 0x2c], eax
test eax, eax
je 0x5c80d0
mov eax, dword [esi]
lea ecx, [esp + 0x9c]
movsx esi, word [eax + 0xc4]
movss xmm0, dword [eax + 0xc8]
add esi, eax
movss dword [esp + 0x70], xmm0
call fcn.005ca860
push 0x30
lea eax, [esp + 0xa0]
push esi
push eax
call fcn.0045d810
mov edi, dword [esp + 0x28]
add esp, 4
movss xmm0, dword [edi + 0x4c]
movss dword [esp + 4], xmm0
movss xmm0, dword [esp + 0xc4]
movss dword [esp], xmm0
call fcn.005c45d0
movss xmm0, dword [edi + 0x4c]
movss dword [esp + 4], xmm0
movss xmm0, dword [esp + 0xd0]
fstp dword [esp + 0xc4]
movss dword [esp], xmm0
call fcn.005c45d0
movss xmm0, dword [edi + 0x4c]
movss dword [esp + 4], xmm0
movss xmm0, dword [esp + 0xb0]
fstp dword [esp + 0xd0]
movss dword [esp], xmm0
call fcn.005c45d0
movss xmm0, dword [edi + 0x4c]
movss dword [esp + 4], xmm0
movss xmm0, dword [esp + 0xb4]
fstp dword [esp + 0xb0]
movss dword [esp], xmm0
call fcn.005c45d0
movss xmm0, dword [edi + 0x4c]
movss dword [esp + 4], xmm0
movss xmm0, dword [esp + 0xb8]
fstp dword [esp + 0xb4]
movss dword [esp], xmm0
call fcn.005c45d0
movss xmm0, dword [edi + 0x4c]
movss dword [esp + 4], xmm0
movss xmm0, dword [esp + 0xa8]
fstp dword [esp + 0xb8]
movss dword [esp], xmm0
call fcn.005c45d0
movss xmm0, dword [edi + 0x4c]
movss dword [esp + 4], xmm0
movss xmm0, dword [esp + 0xac]
fstp dword [esp + 0xa8]
movss dword [esp], xmm0
call fcn.005c45d0
movss xmm0, dword [edi + 0x4c]
movss dword [esp + 4], xmm0
movss xmm0, dword [esp + 0xc8]
fstp dword [esp + 0xac]
movss dword [esp], xmm0
call fcn.005c45d0
movss xmm0, dword [edi + 0x4c]
movss dword [esp + 4], xmm0
movss xmm0, dword [esp + 0xa4]
fstp dword [esp + 0xc8]
movss dword [esp], xmm0
call fcn.005c45d0
movss xmm0, dword [edi + 0x4c]
movss dword [esp + 4], xmm0
movss xmm0, dword [esp + 0xbc]
fstp dword [esp + 0xa4]
movss dword [esp], xmm0
call fcn.005c45d0
movaps xmm0, xmmword [0x7195b0]
add esp, 8
movss xmm1, dword [esp + 0x70]
movaps xmmword [edi + 0x30], xmm0
movaps xmm0, xmm1
subss xmm0, dword [edi + 0x44]
fstp dword [esp + 0xb4]
mov byte [esp + 0x13], 0
xorps xmm2, xmm2
comiss xmm0, xmm2
jb 0x5c6880
ucomiss xmm1, xmm2
mov byte [esp + 0x13], 0
lahf
test ah, 0x44
jnp 0x5c6880
mov byte [esp + 0x13], 1
mov esi, dword [ebp + 0xc]
movss dword [edi + 0x44], xmm1
mov ecx, dword [esi]
movsx edx, word [ecx + 0x14]
movss xmm3, dword [edx + ecx + 0x20]
ucomiss xmm3, xmm2
movaps xmmword [esp + 0x180], xmm3
lahf
test ah, 0x44
jnp 0x5c68bb
movss xmm1, dword [0x718824]
divss xmm1, xmm3
movaps xmmword [esp + 0x140], xmm1
jmp 0x5c68c4
movss dword [esp + 0x140], xmm2
movaps xmm0, xmmword [0x719da0]
movaps xmmword [edx + ecx + 0x20], xmm0
mov ecx, dword [esi]
cmp dword [ecx + 4], 2
jle 0x5c68de
movsx eax, word [ecx + 0x32]
jmp 0x5c68e0
xor eax, eax
push eax
movsx eax, word [ecx + 0x34]
add eax, ecx
push eax
push ecx
movss dword [esp], xmm3
call fcn.0057e1a0
mov ecx, dword [esi]
add esp, 0xc
cmp dword [ecx + 4], 2
jle 0x5c6921
movsx eax, word [ecx + 0x32]
test eax, eax
jle 0x5c6921
movsx eax, word [ecx + 0x34]
movss xmm0, dword [esp + 0x180]
shufps xmm0, xmm0, 0
mulps xmm0, xmmword [eax + ecx + 0x20]
movaps xmmword [eax + ecx + 0x20], xmm0
mov eax, dword [ebp + 8]
mov eax, dword [eax]
mov eax, dword [eax + 0x2c]
mov edx, dword [eax + 0x14]
mov al, byte [edi + 0x48]
mov dword [esp + 0x6c], edx
mov byte [esp + 0x23], al
test al, al
jne 0x5c69cb
mov ecx, dword [edi + 0x10]
lea esi, [edi + 8]
mov edx, dword [esp + 0x14]
and ecx, 0x3fffffff
cmp ecx, edx
jge 0x5c6971
add ecx, ecx
mov eax, edx
cmp edx, ecx
push 0x30
cmovl eax, ecx
push eax
push esi
push 0x7d8954
call fcn.00467b80
mov edx, dword [esp + 0x24]
add esp, 0x10
mov eax, dword [esi + 4]
sub edx, eax
lea ecx, [eax + eax*2]
shl ecx, 4
add ecx, 0x24
test edx, edx
jle 0x5c69b2
add ecx, dword [esi]
lea eax, [ecx - 0x24]
test eax, eax
je 0x5c69aa
movaps xmm0, xmmword [0x719320]
movaps xmmword [ecx - 0x24], xmm0
mov dword [ecx - 4], 0
mov dword [ecx], 0
mov word [ecx + 4], 0
add ecx, 0x30
sub edx, 1
jne 0x5c6985
push dword [esp + 0x6c]
mov eax, dword [esp + 0x18]
mov ecx, edi
push dword [ebp + 8]
mov dword [esi + 4], eax
call fcn.005c8240
mov edx, dword [esp + 0x6c]
mov eax, dword [edx + 0x1c]
push dword [0x884adc]
add eax, 3
and eax, 0xfffffffc
imul ecx, eax, 0x19
mov eax, dword [edx + 0x40]
add eax, 3
and eax, 0xfffffffc
add ecx, eax
lea esi, [ecx*4 + 0xf]
and esi, 0xfffffff0
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
add esi, 0x7f
and esi, 0xffffff80
mov dword [esp + 0x84], esi
mov edx, dword [eax + 0xc]
mov dword [esp + 0x7c], edx
lea ecx, [esi + edx]
cmp esi, dword [eax + 8]
jg 0x5c6a1e
cmp ecx, dword [eax + 0x10]
ja 0x5c6a1e
mov dword [eax + 0xc], ecx
jmp 0x5c6a2c
push esi
mov ecx, eax
call fcn.0046a3c0
mov edx, eax
mov dword [esp + 0x7c], eax
mov esi, dword [esp + 0x6c]
mov dword [esp + 0x30], esi
mov ecx, dword [esi + 0x1c]
mov dword [esp + 0x38], ecx
or ecx, 0x80000000
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x34], edx
mov eax, dword [esi + 0x1c]
mov dword [esp + 0x44], eax
lea ecx, [eax + eax*2]
or eax, 0x80000000
mov dword [esp + 0x48], eax
shl ecx, 4
add ecx, edx
mov dword [esp + 0x40], ecx
mov eax, dword [esi + 0x1c]
mov dword [esp + 0x50], eax
mov word [esp + 0x58], 0
lea edx, [eax + eax*2]
or eax, 0x80000000
mov dword [esp + 0x54], eax
shl edx, 4
add edx, ecx
mov dword [esp + 0x4c], edx
mov eax, dword [esi + 0x1c]
mov ecx, dword [esi + 0x40]
mov dword [esp + 0x60], ecx
lea eax, [edx + eax*4]
mov dword [esp + 0x5c], eax
lea eax, [ecx + 3]
and eax, 0xfffffffc
lea ecx, [esp + 0x30]
or eax, 0x80000000
mov dword [esp + 0x64], eax
call fcn.00580a40
push dword [eax]
push esi
push dword [ebp + 0xc]
call fcn.005df320
mov esi, dword [esp + 0x24]
add esp, 0xc
cmp byte [esi + 0x35], 0
je 0x5c6b54
mov eax, dword [ebp + 8]
movaps xmm6, xmmword [0x7195c0]
mov eax, dword [eax]
mov eax, dword [eax + 0x2c]
mov edx, dword [eax + 0x24]
mov eax, dword [ebp + 0xc]
movaps xmm2, xmmword [edx + 0x20]
mov ecx, dword [eax]
movsx eax, word [ecx + 0x14]
movaps xmm4, xmmword [eax + ecx + 0x10]
movaps xmm3, xmm4
movaps xmm7, xmm4
mulps xmm3, xmm2
movaps xmm1, xmm4
shufps xmm7, xmm4, 0xc9
movaps xmm5, xmm4
shufps xmm1, xmm4, 0xd2
shufps xmm5, xmm4, 0xff
movaps xmm0, xmm3
shufps xmm0, xmm3, 0x55
addss xmm0, xmm3
shufps xmm3, xmm3, 0xaa
addss xmm3, xmm0
movaps xmm0, xmm2
shufps xmm0, xmm2, 0xd2
mulps xmm7, xmm0
movaps xmm0, xmm2
shufps xmm0, xmm2, 0xc9
mulps xmm1, xmm0
shufps xmm3, xmm3, 0
mulps xmm3, xmm4
subps xmm7, xmm1
mulps xmm7, xmm5
mulps xmm5, xmm5
addps xmm5, xmm6
mulps xmm5, xmm2
addps xmm5, xmm3
addps xmm7, xmm5
addps xmm7, xmm7
jmp 0x5c6b66
mov ecx, dword [ebp + 8]
call fcn.005c60d0
movaps xmm6, xmmword [0x7195c0]
movaps xmm7, xmmword [eax]
mov eax, dword [ebp + 0xc]
movaps xmm2, xmm7
movaps xmm3, xmm7
movaps xmmword [esp + 0xd0], xmm7
shufps xmm3, xmm7, 0xc9
movaps xmm1, xmm7
shufps xmm1, xmm7, 0xd2
mov ecx, dword [eax]
push 0
movaps xmmword [esp + 0x124], xmm7
movsx eax, word [ecx + 0x14]
movaps xmm4, xmmword [eax + ecx + 0x10]
lea ecx, [esp + 0x34]
mulps xmm2, xmm4
movaps xmm5, xmm4
shufps xmm5, xmm4, 0xff
movaps xmm0, xmm2
shufps xmm0, xmm2, 0x55
addss xmm0, xmm2
shufps xmm2, xmm2, 0xaa
addss xmm2, xmm0
movaps xmm0, xmm4
shufps xmm0, xmm4, 0xd2
mulps xmm3, xmm0
movaps xmm0, xmm4
shufps xmm0, xmm4, 0xc9
mulps xmm1, xmm0
movss xmm0, dword [esi + 0x20]
shufps xmm2, xmm2, 0
mulps xmm2, xmm4
subps xmm3, xmm1
shufps xmm0, xmm0, 0
movaps xmmword [esp + 0x134], xmm0
mulps xmm3, xmm5
mulps xmm5, xmm5
addps xmm5, xmm6
mulps xmm5, xmm7
addps xmm5, xmm2
addps xmm3, xmm5
movaps xmmword [esp + 0x154], xmm3
call fcn.00580280
movaps xmm0, xmmword [esp + 0x150]
addps xmm0, xmm0
mulps xmm0, xmmword [esp + 0x130]
addps xmm0, xmmword [eax]
movaps xmmword [eax], xmm0
mov eax, dword [esp + 0x14]
test eax, eax
jle 0x5c6c80
xor edx, edx
mov esi, eax
nop dword [eax + eax]
mov ecx, dword [edi + 8]
mov edi, dword [esp + 0x18]
mov eax, dword [ecx + edx + 0x20]
movss xmm0, dword [eax + 0x6c]
addss xmm0, dword [edi + 0x20]
movss dword [eax + 0x6c], xmm0
mov eax, dword [ecx + edx + 0x20]
movss xmm0, dword [eax + 0x70]
addss xmm0, dword [edi + 0x20]
movss dword [eax + 0x70], xmm0
mov eax, dword [ecx + edx + 0x20]
mov ecx, edi
mov edi, dword [esp + 0x1c]
add edx, 0x30
movss xmm0, dword [eax + 0x60]
addss xmm0, dword [ecx + 0x20]
movss dword [eax + 0x60], xmm0
sub esi, 1
jne 0x5c6c30
mov esi, ecx
movss xmm0, dword [esp + 0xb4]
xorps xmm1, xmm1
comiss xmm0, xmm1
mov edx, dword [ebp + 0xc]
jbe 0x5c6ce1
mov eax, dword [ebp + 8]
mov eax, dword [eax]
cmp dword [eax + 0x20], 0
je 0x5c6cbb
mov ecx, dword [edx]
mov eax, dword [ecx + 4]
cmp eax, 0xc
jle 0x5c6cbb
movss xmm0, dword [ecx + 0xd8]
comiss xmm0, xmm1
seta al
test al, al
jne 0x5c6ce1
movss xmm1, dword [edi + 0x40]
shufps xmm1, xmm1, 0
mulps xmm1, xmmword [esp + 0x120]
movaps xmmword [edi + 0x20], xmm1
mov eax, dword [edx]
movsx ecx, word [eax + 0x14]
movaps xmm0, xmmword [ecx + eax]
addps xmm0, xmm1
movaps xmmword [ecx + eax], xmm0
cmp dword [esp + 0x14], 1
jle 0x5c6d09
cmp byte [edi + 0x49], 0
je 0x5c6d09
lea eax, [esp + 0x9c]
mov ecx, edi
push eax
push edx
lea eax, [esp + 0xd8]
push eax
push dword [ebp + 8]
call fcn.005c87b0
cmp byte [esi + 0x35], 0
je 0x5c6da5
mov eax, dword [ebp + 8]
mov eax, dword [eax]
mov eax, dword [eax + 0x2c]
mov edx, dword [eax + 0x24]
mov eax, dword [ebp + 0xc]
movaps xmm2, xmmword [edx + 0x20]
mov ecx, dword [eax]
movaps xmm3, xmm2
movaps xmm1, xmm2
movaps xmm6, xmm2
shufps xmm1, xmm2, 0xc9
shufps xmm6, xmm2, 0xd2
movsx eax, word [ecx + 0x14]
movaps xmm4, xmmword [eax + ecx + 0x10]
mulps xmm3, xmm4
movaps xmm5, xmm4
shufps xmm5, xmm4, 0xff
movaps xmm0, xmm3
shufps xmm0, xmm3, 0x55
addss xmm0, xmm3
shufps xmm3, xmm3, 0xaa
addss xmm3, xmm0
movaps xmm0, xmm4
shufps xmm0, xmm4, 0xd2
mulps xmm1, xmm0
movaps xmm0, xmm4
shufps xmm0, xmm4, 0xc9
mulps xmm6, xmm0
shufps xmm3, xmm3, 0
mulps xmm3, xmm4
subps xmm6, xmm1
mulps xmm6, xmm5
mulps xmm5, xmm5
addps xmm5, xmmword [0x7195c0]
mulps xmm5, xmm2
addps xmm5, xmm3
addps xmm6, xmm5
addps xmm6, xmm6
movaps xmmword [esp + 0x120], xmm6
movaps xmmword [esp + 0xd0], xmm6
push dword [0x884adc]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov edx, dword [esp + 0x14]
mov edi, dword [eax + 0xc]
lea ecx, [edx + edx*2]
mov dword [esp + 0x68], edi
shl ecx, 4
add ecx, 0x7f
and ecx, 0xffffff80
mov dword [esp + 0x78], ecx
add ecx, edi
mov edi, dword [esp + 0x78]
cmp edi, dword [eax + 8]
mov edi, dword [esp + 0x1c]
jg 0x5c6de9
cmp ecx, dword [eax + 0x10]
ja 0x5c6de9
mov dword [eax + 0xc], ecx
mov eax, dword [esp + 0x68]
jmp 0x5c6dfc
push dword [esp + 0x78]
mov ecx, eax
call fcn.0046a3c0
mov edx, dword [esp + 0x14]
mov dword [esp + 0x68], eax
test edx, edx
jle 0x5c6e6d
xor edi, edi
mov dword [esp + 8], edx
lea esi, [eax + 0x20]
nop dword [eax]
mov eax, dword [esp + 0x18]
mov eax, dword [eax + 8]
movsx ecx, word [edi + eax + 0x50]
mov eax, dword [esp + 0x4c]
test byte [eax + ecx*4], 2
jne 0x5c6e32
lea eax, [ecx + ecx*2]
shl eax, 4
add eax, dword [esp + 0x40]
jmp 0x5c6e40
push ecx
lea ecx, [esp + 0x34]
call fcn.00580e80
mov edx, dword [esp + 8]
movaps xmm0, xmmword [eax]
add edi, 0x60
movaps xmmword [esi - 0x20], xmm0
movaps xmm0, xmmword [eax + 0x10]
movaps xmmword [esi - 0x10], xmm0
movaps xmm0, xmmword [eax + 0x20]
movaps xmmword [esi], xmm0
add esi, 0x30
sub edx, 1
mov dword [esp + 8], edx
jne 0x5c6e10
mov edi, dword [esp + 0x1c]
mov esi, dword [esp + 0x18]
lea eax, [esp + 0x9c]
mov ecx, edi
push eax
lea eax, [esp + 0xd4]
push eax
lea eax, [esp + 0x38]
push eax
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.005c84c0
lea ecx, [esp + 0x1b0]
call fcn.006ffe40
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x214], eax
mov eax, dword [ebp + 0xc]
movss xmm1, dword [esi + 0x20]
movss dword [esp + 0x70], xmm1
mov eax, dword [eax]
movsx ecx, word [eax + 0x14]
add ecx, eax
mov al, byte [esp + 0x13]
movaps xmm0, xmmword [ecx]
movaps xmmword [esp + 0x1e0], xmm0
movaps xmm0, xmmword [ecx + 0x10]
movaps xmmword [esp + 0x1f0], xmm0
movaps xmm0, xmmword [ecx + 0x20]
movaps xmmword [esp + 0x200], xmm0
movups xmm0, xmmword [esp + 0xa0]
mov byte [esp + 0x210], al
mov eax, dword [esi + 0x24]
movups xmmword [esp + 0x21c], xmm0
mov dword [esp + 0x234], eax
movss xmm0, dword [esp + 0xb0]
mov eax, dword [esp + 0x14]
movss dword [esp + 0x22c], xmm0
movss xmm0, dword [esp + 0xc4]
movss dword [esp + 0x230], xmm0
movss xmm0, dword [esp + 0x9c]
movss dword [esp + 0x218], xmm0
mov byte [esp + 0x238], 1
test eax, eax
jle 0x5c7f01
mov edi, dword [esp + 0x68]
xor edx, edx
mov dword [esp + 0x2c], 0xffffffe0
sub dword [esp + 0x2c], edi
mov dword [esp + 0x94], edx
lea ecx, [edi + 0x20]
mov dword [esp + 0x98], eax
mov dword [esp + 0xcc], ecx
nop dword [eax + eax]
mov edi, dword [esi + 8]
movaps xmm0, xmmword [ecx - 0x20]
add edi, edx
mov eax, dword [esp + 0x1c]
mov esi, dword [esp + 0x2c]
movaps xmmword [esp + 0x1b0], xmm0
add esi, ecx
movaps xmm0, xmmword [ecx - 0x10]
add esi, dword [eax + 8]
movaps xmmword [esp + 0x1c0], xmm0
movaps xmm0, xmmword [ecx]
mov ecx, dword [ebp + 8]
movaps xmmword [esp + 0x1d0], xmm0
mov eax, dword [esi + 0x20]
movaps xmm0, xmmword [esp + 0x120]
mov dword [esp + 0x28], edi
movaps xmmword [eax + 0x40], xmm0
call fcn.005c62e0
mov ecx, dword [esi + 0x20]
lea eax, [esp + 0x30]
push eax
lea eax, [esp + 0x194]
push eax
lea eax, [esp + 0x1b8]
push eax
call fcn.006fff30
mov ecx, dword [ebp + 8]
call fcn.005c62e0
movaps xmm0, xmmword [esp + 0x190]
movaps xmmword [esi + 0x10], xmm0
movss xmm0, dword [esp + 0x1a0]
movss dword [esi + 0x24], xmm0
mov al, byte [esp + 0x1a4]
mov byte [esi + 0x28], al
cmp byte [esp + 0x1a4], 0
je 0x5c7033
movss xmm0, dword [esp + 0x70]
addss xmm0, dword [esi + 0x24]
movss dword [esi + 0x24], xmm0
mov eax, dword [esi + 0x20]
movaps xmm1, xmmword [eax + 0x50]
mulps xmm1, xmmword [esp + 0x1b0]
movaps xmm0, xmm1
shufps xmm0, xmm1, 0x55
addss xmm0, xmm1
shufps xmm1, xmm1, 0xaa
addss xmm1, xmm0
movss xmm0, dword [edi + 0x30]
comiss xmm0, xmm1
xorps xmm1, xmm1
seta al
mov byte [esi + 0x29], al
movss xmm0, dword [esp + 0xbc]
comiss xmm0, xmm1
jbe 0x5c7128
movsx ecx, word [edi + 0x50]
mov eax, dword [esp + 0x4c]
test byte [eax + ecx*4], 2
jne 0x5c7092
lea eax, [ecx + ecx*2]
shl eax, 4
add eax, dword [esp + 0x40]
jmp 0x5c709c
push ecx
lea ecx, [esp + 0x34]
call fcn.00580e80
movaps xmm0, xmmword [eax]
mov eax, dword [ebp + 0xc]
movaps xmmword [esi], xmm0
push esi
mov ecx, dword [eax]
movsx eax, word [ecx + 0x14]
add eax, ecx
mov ecx, esi
push eax
call fcn.0046eb90
movaps xmm3, xmmword [esp + 0x120]
movaps xmm2, xmmword [esi]
movaps xmm1, xmm3
mulps xmm1, xmmword [esi]
mov eax, dword [ebp + 0xc]
movaps xmm0, xmm1
shufps xmm0, xmm1, 0x55
addss xmm0, xmm1
shufps xmm1, xmm1, 0xaa
addss xmm1, xmm0
shufps xmm1, xmm1, 0
mulps xmm1, xmm3
subps xmm2, xmm1
movaps xmmword [esi], xmm2
mov ecx, dword [eax]
movsx eax, word [ecx + 0x14]
movaps xmm1, xmmword [eax + ecx]
mulps xmm1, xmm3
mov eax, dword [esp + 0x1c]
movaps xmm0, xmm1
shufps xmm0, xmm1, 0x55
addss xmm0, xmm1
shufps xmm1, xmm1, 0xaa
addss xmm1, xmm0
shufps xmm1, xmm1, 0
addss xmm1, dword [esi + 0x24]
shufps xmm1, xmm1, 0
mulps xmm1, xmm3
addps xmm1, xmm2
movaps xmmword [esi], xmm1
mov byte [eax + 0x49], 1
cmp byte [esp + 0x23], 0
je 0x5c7696
movsx ecx, word [edi + 0x50]
mov esi, dword [esp + 0x4c]
mov dword [esp + 0xc], ecx
test byte [esi + ecx*4], 1
jne 0x5c7154
lea esi, [ecx + ecx*2]
shl esi, 4
add esi, dword [esp + 0x34]
jmp 0x5c733e
mov eax, dword [esp + 0x30]
lea edi, [ecx + ecx*2]
mov edx, dword [esp + 0x40]
shl edi, 4
mov dword [esp + 8], edx
mov eax, dword [eax + 0xc]
movzx eax, word [eax + ecx*2]
cmp ax, 0xffff
je 0x5c730c
cwde
test byte [esi + eax*4], 2
jne 0x5c7188
lea eax, [eax + eax*2]
shl eax, 4
add eax, edx
jmp 0x5c7196
push eax
lea ecx, [esp + 0x34]
call fcn.00580e80
mov edx, dword [esp + 8]
movaps xmm4, xmmword [eax + 0x10]
movaps xmm2, xmmword [eax]
movaps xmm5, xmm4
movaps xmm3, xmm2
shufps xmm5, xmm4, 0xff
mulps xmm3, xmm4
movaps xmm6, xmm2
mov esi, dword [esp + 0x34]
shufps xmm6, xmm2, 0xc9
movaps xmm1, xmm2
shufps xmm1, xmm2, 0xd2
movaps xmm0, xmm3
shufps xmm0, xmm3, 0x55
addss xmm0, xmm3
shufps xmm3, xmm3, 0xaa
addss xmm3, xmm0
movaps xmm0, xmm4
shufps xmm0, xmm4, 0xd2
mulps xmm6, xmm0
movaps xmm0, xmm4
shufps xmm0, xmm4, 0xc9
mulps xmm1, xmm0
shufps xmm3, xmm3, 0
mulps xmm3, xmm4
subps xmm6, xmm1
movaps xmm1, xmmword [eax + 0x20]
movaps xmm0, xmm1
unpckhps xmm0, xmmword [0x719330]
shufps xmm1, xmm0, 0xc4
mulps xmm6, xmm5
mulps xmm5, xmm5
addps xmm5, xmmword [0x7195c0]
mulps xmm5, xmm2
rcpps xmm2, xmm1
addps xmm5, xmm3
movaps xmm3, xmmword [edi + edx]
movaps xmm0, xmm2
movaps xmm4, xmm3
mulps xmm0, xmm1
movaps xmm1, xmm3
shufps xmm1, xmm3, 0xc9
addps xmm6, xmm5
mulps xmm0, xmm2
addps xmm2, xmm2
addps xmm6, xmm6
subps xmm2, xmm0
xorps xmm6, xmmword [0x719130]
movaps xmmword [esp + 0x130], xmm6
andps xmm2, xmmword [0x719150]
movaps xmmword [esp + 0xe0], xmm6
movaps xmm6, xmmword [eax + 0x10]
xorps xmm6, xmmword [0x719d70]
mulps xmm4, xmm6
movaps xmm5, xmm6
movaps xmmword [esp + 0x100], xmm2
movaps xmm2, xmm3
shufps xmm2, xmm3, 0xd2
shufps xmm5, xmm6, 0xff
movaps xmm0, xmm4
movaps xmmword [esp + 0xf0], xmm6
shufps xmm0, xmm4, 0x55
addss xmm0, xmm4
shufps xmm4, xmm4, 0xaa
addss xmm4, xmm0
movaps xmm0, xmm6
shufps xmm0, xmm6, 0xd2
mulps xmm1, xmm0
movaps xmm0, xmm6
shufps xmm0, xmm6, 0xc9
mulps xmm2, xmm0
shufps xmm4, xmm4, 0
mulps xmm4, xmm6
subps xmm2, xmm1
mulps xmm2, xmm5
mulps xmm5, xmm5
addps xmm5, xmmword [0x7195c0]
mulps xmm5, xmm3
addps xmm5, xmm4
addps xmm2, xmm5
addps xmm2, xmm2
addps xmm2, xmmword [esp + 0x130]
lea eax, [edx + 0x10]
movaps xmmword [edi + esi], xmm2
add eax, edi
lea ecx, [esi + 0x10]
push eax
lea eax, [esp + 0xf4]
add ecx, edi
push eax
call fcn.004782a0
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xc]
movaps xmm0, xmmword [edi + eax + 0x20]
mulps xmm0, xmmword [esp + 0x100]
movaps xmmword [edi + esi + 0x20], xmm0
jmp 0x5c732c
mov eax, dword [esp + 0x34]
movaps xmm0, xmmword [edi + edx]
movaps xmmword [edi + eax], xmm0
movaps xmm0, xmmword [edi + edx + 0x10]
movaps xmmword [edi + eax + 0x10], xmm0
movaps xmm0, xmmword [edi + edx + 0x20]
movaps xmmword [edi + eax + 0x20], xmm0
mov eax, dword [esp + 0x4c]
and dword [eax + ecx*4], 0xfffffffe
mov esi, dword [esp + 0x34]
add esi, edi
mov edi, dword [esp + 0x28]
movss xmm0, dword [esp + 0xc8]
lea eax, [esi + 0x10]
push ecx
movss dword [esp], xmm0
lea ecx, [esp + 0x154]
push eax
push edi
call fcn.00477d40
movaps xmm1, xmmword [esp + 0x150]
movaps xmm0, xmm1
movaps xmmword [esp + 0x160], xmm1
subps xmm0, xmmword [edi]
andps xmm0, xmmword [0x719140]
cmpleps xmm0, xmmword [0x7a4d80]
movmskps eax, xmm0
and eax, 7
cmp al, 7
je 0x5c7696
mov eax, dword [esp + 0x30]
movsx ecx, word [edi + 0x50]
movaps xmm0, xmmword [esi]
movaps xmm2, xmmword [esi + 0x20]
mov esi, dword [eax + 0x1c]
mov eax, dword [esp + 0x4c]
lea edx, [ecx + 1]
mov edi, edx
mov dword [esp + 0x24], ecx
movaps xmmword [esp + 0x170], xmm0
movaps xmmword [esp + 0x110], xmm2
or dword [eax + ecx*4], 4
mov ecx, dword [esp + 0x4c]
mov dword [esp + 0x8c], esi
mov dword [esp + 0x90], edx
cmp edi, esi
jge 0x5c7648
lea edx, [edi + edi*2]
shl edx, 4
mov dword [esp + 8], edx
nop dword [eax + eax]
mov eax, dword [esp + 0x30]
mov eax, dword [eax + 0xc]
movzx eax, word [eax + edi*2]
mov dword [esp + 0x88], eax
movzx eax, ax
cmp ax, 0xffff
je 0x5c7619
cwde
test byte [ecx + eax*4], 4
je 0x5c7619
test byte [ecx + edi*4], 1
je 0x5c760c
mov eax, dword [esp + 0x88]
mov esi, dword [esp + 0x40]
movzx eax, ax
mov dword [esp + 0xc], esi
cmp ax, 0xffff
je 0x5c75d9
cwde
test byte [ecx + eax*4], 2
jne 0x5c7451
lea eax, [eax + eax*2]
shl eax, 4
add eax, esi
jmp 0x5c745f
push eax
lea ecx, [esp + 0x34]
call fcn.00580e80
mov edx, dword [esp + 8]
movaps xmm4, xmmword [eax + 0x10]
movaps xmm2, xmmword [eax]
movaps xmm5, xmm4
movaps xmm3, xmm2
shufps xmm5, xmm4, 0xff
mulps xmm3, xmm4
movaps xmm6, xmm2
mov esi, dword [esp + 0x34]
shufps xmm6, xmm2, 0xc9
movaps xmm1, xmm2
shufps xmm1, xmm2, 0xd2
movaps xmm0, xmm3
shufps xmm0, xmm3, 0x55
addss xmm0, xmm3
shufps xmm3, xmm3, 0xaa
addss xmm3, xmm0
movaps xmm0, xmm4
shufps xmm0, xmm4, 0xd2
mulps xmm6, xmm0
movaps xmm0, xmm4
shufps xmm0, xmm4, 0xc9
mulps xmm1, xmm0
shufps xmm3, xmm3, 0
mulps xmm3, xmm4
subps xmm6, xmm1
movaps xmm1, xmmword [eax + 0x20]
movaps xmm0, xmm1
unpckhps xmm0, xmmword [0x719330]
shufps xmm1, xmm0, 0xc4
mulps xmm6, xmm5
mulps xmm5, xmm5
addps xmm5, xmmword [0x7195c0]
mulps xmm5, xmm2
rcpps xmm2, xmm1
addps xmm5, xmm3
movaps xmm0, xmm2
mulps xmm0, xmm1
addps xmm6, xmm5
mulps xmm0, xmm2
addps xmm2, xmm2
addps xmm6, xmm6
subps xmm2, xmm0
xorps xmm6, xmmword [0x719130]
movaps xmmword [esp + 0x130], xmm6
andps xmm2, xmmword [0x719150]
movaps xmmword [esp + 0xe0], xmm6
movaps xmm6, xmmword [eax + 0x10]
xorps xmm6, xmmword [0x719d70]
mov eax, dword [esp + 0xc]
movaps xmm5, xmm6
movaps xmmword [esp + 0x100], xmm2
shufps xmm5, xmm6, 0xff
movaps xmmword [esp + 0xf0], xmm6
movaps xmm3, xmmword [edx + eax]
movaps xmm4, xmm3
movaps xmm1, xmm3
mulps xmm4, xmm6
movaps xmm2, xmm3
shufps xmm1, xmm3, 0xc9
shufps xmm2, xmm3, 0xd2
movaps xmm0, xmm4
shufps xmm0, xmm4, 0x55
addss xmm0, xmm4
shufps xmm4, xmm4, 0xaa
addss xmm4, xmm0
movaps xmm0, xmm6
shufps xmm0, xmm6, 0xd2
mulps xmm1, xmm0
movaps xmm0, xmm6
shufps xmm0, xmm6, 0xc9
mulps xmm2, xmm0
shufps xmm4, xmm4, 0
mulps xmm4, xmm6
subps xmm2, xmm1
mulps xmm2, xmm5
mulps xmm5, xmm5
addps xmm5, xmmword [0x7195c0]
mulps xmm5, xmm3
addps xmm5, xmm4
addps xmm2, xmm5
addps xmm2, xmm2
addps xmm2, xmmword [esp + 0x130]
add eax, 0x10
lea ecx, [esi + 0x10]
add eax, edx
add ecx, edx
push eax
lea eax, [esp + 0xf4]
push eax
movaps xmmword [edx + esi], xmm2
call fcn.004782a0
mov edx, dword [esp + 8]
mov eax, dword [esp + 0xc]
movaps xmm0, xmmword [edx + eax + 0x20]
mulps xmm0, xmmword [esp + 0x100]
movaps xmmword [edx + esi + 0x20], xmm0
jmp 0x5c75f9
mov eax, dword [esp + 0x34]
movaps xmm0, xmmword [edx + esi]
movaps xmmword [edx + eax], xmm0
movaps xmm0, xmmword [edx + esi + 0x10]
movaps xmmword [edx + eax + 0x10], xmm0
movaps xmm0, xmmword [edx + esi + 0x20]
movaps xmmword [edx + eax + 0x20], xmm0
mov eax, dword [esp + 0x4c]
mov esi, dword [esp + 0x8c]
and dword [eax + edi*4], 0xfffffffe
mov ecx, dword [esp + 0x4c]
or dword [ecx + edi*4], 4
mov ecx, dword [esp + 0x4c]
mov byte [esp + 0x58], 0
inc edi
add edx, 0x30
mov dword [esp + 8], edx
cmp edi, esi
jl 0x5c73f0
movaps xmm1, xmmword [esp + 0x160]
movaps xmm0, xmmword [esp + 0x170]
movaps xmm2, xmmword [esp + 0x110]
mov edx, dword [esp + 0x90]
cmp edx, esi
jge 0x5c7669
nop dword [eax]
mov eax, dword [ecx + edx*4]
test al, 4
je 0x5c7664
and eax, 0xfffffffb
or eax, 2
mov dword [ecx + edx*4], eax
mov ecx, dword [esp + 0x4c]
inc edx
cmp edx, esi
jl 0x5c7650
mov ecx, dword [esp + 0x24]
mov edi, dword [esp + 0x28]
lea eax, [ecx + ecx*2]
shl eax, 4
add eax, dword [esp + 0x34]
movaps xmmword [eax], xmm0
movaps xmmword [eax + 0x10], xmm1
movaps xmmword [eax + 0x20], xmm2
mov eax, dword [esp + 0x4c]
mov dword [eax + ecx*4], 2
mov byte [esp + 0x58], 0
movsx edi, word [edi + 0x50]
mov eax, dword [esp + 0x6c]
mov esi, dword [esp + 0x4c]
lea ecx, [edi + edi*2]
mov eax, dword [eax + 0x24]
shl ecx, 4
add eax, 0x10
add eax, ecx
test byte [esi + edi*4], 1
mov dword [esp + 0x24], eax
jne 0x5c76c9
lea esi, [edi + edi*2]
shl esi, 4
add esi, dword [esp + 0x34]
jmp 0x5c78b7
mov eax, dword [esp + 0x30]
lea ecx, [edi + edi*2]
mov edx, dword [esp + 0x40]
shl ecx, 4
mov dword [esp + 0xc], ecx
mov eax, dword [eax + 0xc]
mov dword [esp + 8], edx
movzx eax, word [eax + edi*2]
cmp ax, 0xffff
je 0x5c7889
cwde
test byte [esi + eax*4], 2
jne 0x5c7701
lea eax, [eax + eax*2]
shl eax, 4
add eax, edx
jmp 0x5c7713
push eax
lea ecx, [esp + 0x34]
call fcn.00580e80
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 8]
movaps xmm4, xmmword [eax + 0x10]
movaps xmm2, xmmword [eax]
movaps xmm5, xmm4
movaps xmm3, xmm2
shufps xmm5, xmm4, 0xff
mulps xmm3, xmm4
movaps xmm6, xmm2
mov esi, dword [esp + 0x34]
shufps xmm6, xmm2, 0xc9
movaps xmm1, xmm2
shufps xmm1, xmm2, 0xd2
movaps xmm0, xmm3
shufps xmm0, xmm3, 0x55
addss xmm0, xmm3
shufps xmm3, xmm3, 0xaa
addss xmm3, xmm0
movaps xmm0, xmm4
shufps xmm0, xmm4, 0xd2
mulps xmm6, xmm0
movaps xmm0, xmm4
shufps xmm0, xmm4, 0xc9
mulps xmm1, xmm0
shufps xmm3, xmm3, 0
mulps xmm3, xmm4
subps xmm6, xmm1
movaps xmm1, xmmword [eax + 0x20]
movaps xmm0, xmm1
unpckhps xmm0, xmmword [0x719330]
shufps xmm1, xmm0, 0xc4
mulps xmm6, xmm5
mulps xmm5, xmm5
addps xmm5, xmmword [0x7195c0]
mulps xmm5, xmm2
rcpps xmm2, xmm1
addps xmm5, xmm3
movaps xmm3, xmmword [ecx + edx]
movaps xmm0, xmm2
movaps xmm4, xmm3
mulps xmm0, xmm1
movaps xmm1, xmm3
shufps xmm1, xmm3, 0xc9
addps xmm6, xmm5
mulps xmm0, xmm2
addps xmm2, xmm2
addps xmm6, xmm6
subps xmm2, xmm0
xorps xmm6, xmmword [0x719130]
movaps xmmword [esp + 0x110], xmm6
andps xmm2, xmmword [0x719150]
movaps xmmword [esp + 0xe0], xmm6
movaps xmm6, xmmword [0x719d70]
xorps xmm6, xmmword [eax + 0x10]
mulps xmm4, xmm6
movaps xmm5, xmm6
movaps xmmword [esp + 0x100], xmm2
movaps xmm2, xmm3
shufps xmm2, xmm3, 0xd2
shufps xmm5, xmm6, 0xff
movaps xmm0, xmm4
movaps xmmword [esp + 0xf0], xmm6
shufps xmm0, xmm4, 0x55
addss xmm0, xmm4
shufps xmm4, xmm4, 0xaa
addss xmm4, xmm0
movaps xmm0, xmm6
shufps xmm0, xmm6, 0xd2
mulps xmm1, xmm0
movaps xmm0, xmm6
shufps xmm0, xmm6, 0xc9
mulps xmm2, xmm0
shufps xmm4, xmm4, 0
mulps xmm4, xmm6
subps xmm2, xmm1
mulps xmm2, xmm5
mulps xmm5, xmm5
addps xmm5, xmmword [0x7195c0]
mulps xmm5, xmm3
addps xmm5, xmm4
addps xmm2, xmm5
addps xmm2, xmm2
addps xmm2, xmmword [esp + 0x110]
lea eax, [edx + 0x10]
movaps xmmword [ecx + esi], xmm2
add eax, ecx
add ecx, 0x10
push eax
lea eax, [esp + 0xf4]
add ecx, esi
push eax
call fcn.004782a0
mov ecx, dword [esp + 0xc]
mov eax, dword [esp + 8]
movaps xmm0, xmmword [ecx + eax + 0x20]
mulps xmm0, xmmword [esp + 0x100]
movaps xmmword [ecx + esi + 0x20], xmm0
jmp 0x5c78a9
mov eax, dword [esp + 0x34]
movaps xmm0, xmmword [ecx + edx]
movaps xmmword [ecx + eax], xmm0
movaps xmm0, xmmword [ecx + edx + 0x10]
movaps xmmword [ecx + eax + 0x10], xmm0
movaps xmm0, xmmword [ecx + edx + 0x20]
movaps xmmword [ecx + eax + 0x20], xmm0
mov eax, dword [esp + 0x4c]
and dword [eax + edi*4], 0xfffffffe
mov esi, dword [esp + 0x34]
add esi, ecx
mov eax, dword [esp + 0x28]
lea ecx, [esp + 0xd0]
mov edi, dword [esp + 0x24]
movss xmm0, dword [eax + 0x48]
lea eax, [esi + 0x10]
mulss xmm0, dword [0x7a3b34]
push eax
push edi
movss dword [esp + 0x14], xmm0
call fcn.004fd6e0
movss xmm1, dword [esp + 0xdc]
andps xmm1, xmmword [0x719120]
movaps xmm0, xmm1
andps xmm0, xmmword [0x719120]
comiss xmm0, dword [0x718824]
jb 0x5c7918
xorps xmm0, xmm0
comiss xmm1, xmm0
ja 0x5c7920
movss xmm0, dword [0x719d84]
jmp 0x5c7920
movaps xmm0, xmm1
call fcn.0062b294
mulss xmm0, dword [0x719724]
comiss xmm0, dword [esp + 0xc]
jbe 0x5c7cad
movaps xmm1, xmmword [esp + 0xd0]
mulps xmm1, xmm1
movaps xmm0, xmm1
shufps xmm0, xmm1, 0x55
addss xmm0, xmm1
shufps xmm1, xmm1, 0xaa
addss xmm1, xmm0
sqrtss xmm1, xmm1
comiss xmm1, dword [0x77f9a4]
jbe 0x5c7cad
lea eax, [esp + 0x240]
push eax
lea ecx, [esp + 0xd4]
call fcn.0058b020
movss xmm0, dword [esp + 0xc]
lea eax, [esp + 0x240]
push ecx
movss dword [esp], xmm0
lea ecx, [esp + 0xd4]
push eax
call fcn.004776d0
lea eax, [esp + 0xd0]
push eax
push edi
lea ecx, [esp + 0x258]
call fcn.004782a0
mov eax, dword [esp + 0x28]
movaps xmm0, xmmword [esi]
movaps xmm1, xmmword [esi + 0x20]
movaps xmmword [esp + 0x170], xmm0
movsx ecx, word [eax + 0x50]
mov eax, dword [esp + 0x30]
mov dword [esp + 0x88], ecx
movaps xmmword [esp + 0x160], xmm1
lea edx, [ecx + 1]
mov esi, dword [eax + 0x1c]
mov edi, edx
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x90], esi
mov dword [esp + 0x8c], edx
or dword [eax + ecx*4], 4
mov ecx, dword [esp + 0x4c]
cmp edi, esi
jge 0x5c7c5a
lea edx, [edi + edi*2]
shl edx, 4
mov dword [esp + 8], edx
nop dword [eax]
mov eax, dword [esp + 0x30]
mov eax, dword [eax + 0xc]
movzx eax, word [eax + edi*2]
mov dword [esp + 0x24], eax
movzx eax, ax
cmp ax, 0xffff
je 0x5c7c33
cwde
test byte [ecx + eax*4], 4
je 0x5c7c33
test byte [ecx + edi*4], 1
je 0x5c7c26
mov eax, dword [esp + 0x24]
mov esi, dword [esp + 0x40]
movzx eax, ax
mov dword [esp + 0xc], esi
cmp ax, 0xffff
je 0x5c7bf3
cwde
test byte [ecx + eax*4], 2
jne 0x5c7a6b
lea eax, [eax + eax*2]
shl eax, 4
add eax, esi
jmp 0x5c7a79
push eax
lea ecx, [esp + 0x34]
call fcn.00580e80
mov edx, dword [esp + 8]
movaps xmm4, xmmword [eax + 0x10]
movaps xmm2, xmmword [eax]
movaps xmm5, xmm4
movaps xmm3, xmm2
shufps xmm5, xmm4, 0xff
mulps xmm3, xmm4
movaps xmm6, xmm2
mov esi, dword [esp + 0x34]
shufps xmm6, xmm2, 0xc9
movaps xmm1, xmm2
shufps xmm1, xmm2, 0xd2
movaps xmm0, xmm3
shufps xmm0, xmm3, 0x55
addss xmm0, xmm3
shufps xmm3, xmm3, 0xaa
addss xmm3, xmm0
movaps xmm0, xmm4
shufps xmm0, xmm4, 0xd2
mulps xmm6, xmm0
movaps xmm0, xmm4
shufps xmm0, xmm4, 0xc9
mulps xmm1, xmm0
shufps xmm3, xmm3, 0
mulps xmm3, xmm4
subps xmm6, xmm1
movaps xmm1, xmmword [eax + 0x20]
movaps xmm0, xmm1
unpckhps xmm0, xmmword [0x719330]
shufps xmm1, xmm0, 0xc4
mulps xmm6, xmm5
mulps xmm5, xmm5
addps xmm5, xmmword [0x7195c0]
mulps xmm5, xmm2
rcpps xmm2, xmm1
addps xmm5, xmm3
movaps xmm0, xmm2
mulps xmm0, xmm1
addps xmm6, xmm5
mulps xmm0, xmm2
addps xmm2, xmm2
addps xmm6, xmm6
subps xmm2, xmm0
xorps xmm6, xmmword [0x719130]
movaps xmmword [esp + 0x110], xmm6
andps xmm2, xmmword [0x719150]
movaps xmmword [esp + 0xe0], xmm6
movaps xmm6, xmmword [0x719d70]
xorps xmm6, xmmword [eax + 0x10]
mov eax, dword [esp + 0xc]
movaps xmm5, xmm6
movaps xmmword [esp + 0x100], xmm2
shufps xmm5, xmm6, 0xff
movaps xmmword [esp + 0xf0], xmm6
movaps xmm3, xmmword [edx + eax]
movaps xmm4, xmm3
movaps xmm1, xmm3
mulps xmm4, xmm6
movaps xmm2, xmm3
shufps xmm1, xmm3, 0xc9
shufps xmm2, xmm3, 0xd2
movaps xmm0, xmm4
shufps xmm0, xmm4, 0x55
addss xmm0, xmm4
shufps xmm4, xmm4, 0xaa
addss xmm4, xmm0
movaps xmm0, xmm6
shufps xmm0, xmm6, 0xd2
mulps xmm1, xmm0
movaps xmm0, xmm6
shufps xmm0, xmm6, 0xc9
mulps xmm2, xmm0
shufps xmm4, xmm4, 0
mulps xmm4, xmm6
subps xmm2, xmm1
mulps xmm2, xmm5
mulps xmm5, xmm5
addps xmm5, xmmword [0x7195c0]
mulps xmm5, xmm3
addps xmm5, xmm4
addps xmm2, xmm5
addps xmm2, xmm2
addps xmm2, xmmword [esp + 0x110]
add eax, 0x10
lea ecx, [esi + 0x10]
add eax, edx
add ecx, edx
push eax
lea eax, [esp + 0xf4]
push eax
movaps xmmword [edx + esi], xmm2
call fcn.004782a0
mov edx, dword [esp + 8]
mov eax, dword [esp + 0xc]
movaps xmm0, xmmword [edx + eax + 0x20]
mulps xmm0, xmmword [esp + 0x100]
movaps xmmword [edx + esi + 0x20], xmm0
jmp 0x5c7c13
mov eax, dword [esp + 0x34]
movaps xmm0, xmmword [edx + esi]
movaps xmmword [edx + eax], xmm0
movaps xmm0, xmmword [edx + esi + 0x10]
movaps xmmword [edx + eax + 0x10], xmm0
movaps xmm0, xmmword [edx + esi + 0x20]
movaps xmmword [edx + eax + 0x20], xmm0
mov eax, dword [esp + 0x4c]
mov esi, dword [esp + 0x90]
and dword [eax + edi*4], 0xfffffffe
mov ecx, dword [esp + 0x4c]
or dword [ecx + edi*4], 4
mov ecx, dword [esp + 0x4c]
mov byte [esp + 0x58], 0
inc edi
add edx, 0x30
mov dword [esp + 8], edx
cmp edi, esi
jl 0x5c7a10
movaps xmm0, xmmword [esp + 0x170]
movaps xmm1, xmmword [esp + 0x160]
mov edx, dword [esp + 0x8c]
cmp edx, esi
jge 0x5c7c79
nop
mov eax, dword [ecx + edx*4]
test al, 4
je 0x5c7c74
and eax, 0xfffffffb
or eax, 2
mov dword [ecx + edx*4], eax
mov ecx, dword [esp + 0x4c]
inc edx
cmp edx, esi
jl 0x5c7c60
mov ecx, dword [esp + 0x88]
lea eax, [ecx + ecx*2]
shl eax, 4
add eax, dword [esp + 0x34]
movaps xmmword [eax], xmm0
movaps xmm0, xmmword [esp + 0x250]
movaps xmmword [eax + 0x10], xmm0
movaps xmmword [eax + 0x20], xmm1
mov eax, dword [esp + 0x4c]
mov dword [eax + ecx*4], 2
mov byte [esp + 0x58], 0
mov eax, dword [esp + 0x28]
mov esi, dword [esp + 0x4c]
movsx ecx, word [eax + 0x50]
mov dword [esp + 0x24], ecx
test byte [esi + ecx*4], 1
jne 0x5c7cd2
lea eax, [ecx + ecx*2]
shl eax, 4
add eax, dword [esp + 0x34]
jmp 0x5c7eb8
mov eax, dword [esp + 0x30]
lea edi, [ecx + ecx*2]
mov edx, dword [esp + 0x40]
shl edi, 4
mov dword [esp + 0xc], edx
mov eax, dword [eax + 0xc]
movzx eax, word [eax + ecx*2]
cmp ax, 0xffff
je 0x5c7e8a
cwde
test byte [esi + eax*4], 2
jne 0x5c7d06
lea eax, [eax + eax*2]
shl eax, 4
add eax, edx
jmp 0x5c7d14
push eax
lea ecx, [esp + 0x34]
call fcn.00580e80
mov edx, dword [esp + 0xc]
movaps xmm4, xmmword [eax + 0x10]
movaps xmm2, xmmword [eax]
movaps xmm5, xmm4
movaps xmm3, xmm2
shufps xmm5, xmm4, 0xff
mulps xmm3, xmm4
movaps xmm6, xmm2
mov esi, dword [esp + 0x34]
shufps xmm6, xmm2, 0xc9
movaps xmm1, xmm2
shufps xmm1, xmm2, 0xd2
movaps xmm0, xmm3
shufps xmm0, xmm3, 0x55
addss xmm0, xmm3
shufps xmm3, xmm3, 0xaa
addss xmm3, xmm0
movaps xmm0, xmm4
shufps xmm0, xmm4, 0xd2
mulps xmm6, xmm0
movaps xmm0, xmm4
shufps xmm0, xmm4, 0xc9
mulps xmm1, xmm0
shufps xmm3, xmm3, 0
mulps xmm3, xmm4
subps xmm6, xmm1
movaps xmm1, xmmword [eax + 0x20]
movaps xmm0, xmm1
unpckhps xmm0, xmmword [0x719330]
shufps xmm1, xmm0, 0xc4
mulps xmm6, xmm5
mulps xmm5, xmm5
addps xmm5, xmmword [0x7195c0]
mulps xmm5, xmm2
rcpps xmm2, xmm1
addps xmm5, xmm3
movaps xmm3, xmmword [edi + edx]
movaps xmm0, xmm2
movaps xmm4, xmm3
mulps xmm0, xmm1
movaps xmm1, xmm3
shufps xmm1, xmm3, 0xc9
addps xmm6, xmm5
mulps xmm0, xmm2
addps xmm2, xmm2
addps xmm6, xmm6
subps xmm2, xmm0
xorps xmm6, xmmword [0x719130]
movaps xmmword [esp + 0x110], xmm6
andps xmm2, xmmword [0x719150]
movaps xmmword [esp + 0xe0], xmm6
movaps xmm6, xmmword [0x719d70]
xorps xmm6, xmmword [eax + 0x10]
mulps xmm4, xmm6
movaps xmm5, xmm6
movaps xmmword [esp + 0x100], xmm2
movaps xmm2, xmm3
shufps xmm2, xmm3, 0xd2
shufps xmm5, xmm6, 0xff
movaps xmm0, xmm4
movaps xmmword [esp + 0xf0], xmm6
shufps xmm0, xmm4, 0x55
addss xmm0, xmm4
shufps xmm4, xmm4, 0xaa
addss xmm4, xmm0
movaps xmm0, xmm6
shufps xmm0, xmm6, 0xd2
mulps xmm1, xmm0
movaps xmm0, xmm6
shufps xmm0, xmm6, 0xc9
mulps xmm2, xmm0
shufps xmm4, xmm4, 0
mulps xmm4, xmm6
subps xmm2, xmm1
mulps xmm2, xmm5
mulps xmm5, xmm5
addps xmm5, xmmword [0x7195c0]
mulps xmm5, xmm3
addps xmm5, xmm4
addps xmm2, xmm5
addps xmm2, xmm2
addps xmm2, xmmword [esp + 0x110]
lea eax, [edi + 0x10]
movaps xmmword [edi + esi], xmm2
add eax, edx
lea ecx, [esi + 0x10]
push eax
lea eax, [esp + 0xf4]
add ecx, edi
push eax
call fcn.004782a0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x24]
movaps xmm0, xmmword [edi + eax + 0x20]
mulps xmm0, xmmword [esp + 0x100]
movaps xmmword [edi + esi + 0x20], xmm0
jmp 0x5c7eaa
mov eax, dword [esp + 0x34]
movaps xmm0, xmmword [edi + edx]
movaps xmmword [edi + eax], xmm0
movaps xmm0, xmmword [edi + edx + 0x10]
movaps xmmword [edi + eax + 0x10], xmm0
movaps xmm0, xmmword [edi + edx + 0x20]
movaps xmmword [edi + eax + 0x20], xmm0
mov eax, dword [esp + 0x4c]
and dword [eax + ecx*4], 0xfffffffe
mov eax, dword [esp + 0x34]
add eax, edi
movaps xmm0, xmmword [eax + 0x10]
mov eax, dword [esp + 0x28]
mov edx, dword [esp + 0x94]
mov ecx, dword [esp + 0xcc]
add edx, 0x60
mov esi, dword [esp + 0x18]
add ecx, 0x30
sub dword [esp + 0x98], 1
movaps xmmword [eax], xmm0
mov dword [esp + 0x94], edx
mov dword [esp + 0xcc], ecx
jne 0x5c6f80
movss xmm1, dword [esp + 0x70]
mov edi, dword [esp + 0x1c]
mov esi, dword [esp + 0x14]
test esi, esi
jle 0x5c7f50
xor edx, edx
nop dword [eax + eax]
mov ecx, dword [edi + 8]
add ecx, edx
add edx, 0x30
mov eax, dword [ecx + 0x20]
movss xmm0, dword [eax + 0x6c]
subss xmm0, xmm1
movss dword [eax + 0x6c], xmm0
mov eax, dword [ecx + 0x20]
movss xmm0, dword [eax + 0x70]
subss xmm0, xmm1
movss dword [eax + 0x70], xmm0
mov eax, dword [ecx + 0x20]
movss xmm0, dword [eax + 0x60]
subss xmm0, xmm1
movss dword [eax + 0x60], xmm0
sub esi, 1
jne 0x5c7f10
movss xmm0, dword [esp + 0xb8]
push ecx
mov ecx, edi
movss dword [esp], xmm0
call fcn.005ca610
fmul dword [esp + 0xb4]
lea ecx, [esp + 0x30]
fstp dword [edi + 0x40]
call fcn.0057fe50
mov ecx, dword [esp + 0x74]
mov esi, dword [ebp + 0xc]
lea ecx, [ecx + ecx*2]
mov edx, dword [esi]
shl ecx, 4
push ecx
push dword [eax]
movsx eax, word [edx + 0x34]
add eax, edx
push eax
call fcn.0045d810
add esp, 0xc
mov ecx, esi
call fcn.005dd090
mov ecx, dword [esi]
cmp dword [ecx + 4], 2
jle 0x5c7faf
movsx eax, word [ecx + 0x32]
jmp 0x5c7fb1
xor eax, eax
movaps xmm0, xmmword [esp + 0x140]
push eax
movsx eax, word [ecx + 0x34]
add eax, ecx
push eax
push ecx
movss dword [esp], xmm0
call fcn.0057e1a0
mov ecx, dword [esi]
add esp, 0xc
cmp dword [ecx + 4], 2
jle 0x5c7ff9
movsx eax, word [ecx + 0x32]
test eax, eax
jle 0x5c7ff9
movsx eax, word [ecx + 0x34]
movaps xmm0, xmmword [esp + 0x140]
shufps xmm0, xmm0, 0
mulps xmm0, xmmword [eax + ecx + 0x20]
movaps xmmword [eax + ecx + 0x20], xmm0
mov ecx, dword [esi]
movaps xmm0, xmmword [esp + 0x180]
mov edi, dword [sym.imp.KERNEL32.dll_TlsGetValue]
shufps xmm0, xmm0, 0
movsx eax, word [ecx + 0x14]
movaps xmmword [eax + ecx + 0x20], xmm0
push dword [0x884adc]
call edi
mov ecx, dword [esp + 0x78]
mov esi, dword [esp + 0x68]
lea edx, [ecx + 0xf]
and edx, 0xfffffff0
cmp ecx, dword [eax + 8]
jg 0x5c8043
lea ecx, [esi + edx]
cmp ecx, dword [eax + 0xc]
jne 0x5c8043
cmp dword [eax + 0x14], esi
je 0x5c8043
mov dword [eax + 0xc], esi
jmp 0x5c804c
push edx
push esi
mov ecx, eax
call fcn.0046a590
lea ecx, [esp + 0x30]
call fcn.005ac3a0
push dword [0x884adc]
call edi
mov ecx, dword [esp + 0x84]
mov esi, dword [esp + 0x7c]
lea edx, [ecx + 0xf]
and edx, 0xfffffff0
cmp ecx, dword [eax + 8]
jg 0x5c8085
lea ecx, [edx + esi]
cmp ecx, dword [eax + 0xc]
jne 0x5c8085
cmp dword [eax + 0x14], esi
je 0x5c8085
mov dword [eax + 0xc], esi
jmp 0x5c809f
push edx
push esi
mov ecx, eax
call fcn.0046a590
jmp 0x5c809f
mov ecx, dword [esp + 0x1c]
call fcn.005c8230
mov edi, dword [sym.imp.KERNEL32.dll_TlsGetValue]
push dword [0x884c50]
call edi
mov edi, eax
mov esi, dword [edi + 4]
cmp esi, dword [edi + 0xc]
jae 0x5c80d0
mov dword [esi], 0x77f5ec
rdtsc
mov dword [esp + 0x84], eax
mov ecx, dword [esp + 0x84]
lea eax, [esi + 0xc]
mov dword [esi + 4], ecx
mov dword [edi + 4], eax
lea ecx, [esp + 0x80]
call fcn.0045d990
pop edi
pop esi
mov esp, ebp
pop ebp
ret 8