Function at 0x701030
Capabilities:
Execute anti-debugging instructions
Get thread local storage value

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x198
push esi
push edi
push dword [0x884c50]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov esi, eax
mov ecx, dword [esi + 4]
cmp ecx, dword [esi + 0xc]
jae 0x701074
mov dword [ecx], str.LtTWOJOINTSOLVER
mov dword [ecx + 0xc], str.StINIT
rdtsc
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x1c]
mov dword [ecx + 4], eax
lea eax, [ecx + 0x10]
mov dword [esi + 4], eax
mov esi, dword [ebp + 0xc]
cmp byte [esi + 0x80], 0
jne 0x70108d
cmp byte [esi + 0x81], 0
je 0x7027a7
movaps xmm1, xmmword [0x7195b0]
xorps xmm2, xmm2
movaps xmm0, xmmword [0x719da0]
movzx eax, word [esi + 6]
mov edi, dword [ebp + 0x10]
movaps xmmword [esp + 0xd0], xmm2
movaps xmmword [esp + 0x140], xmm2
movaps xmmword [esp + 0x150], xmm1
movaps xmmword [esp + 0x160], xmm0
movaps xmmword [esp + 0xe0], xmm2
movaps xmmword [esp + 0x170], xmm2
movaps xmmword [esp + 0x180], xmm1
movaps xmmword [esp + 0x190], xmm0
test ax, ax
js 0x7012a6
movsx ecx, ax
mov eax, dword [edi + 0x1c]
test byte [eax + ecx*4], 2
jne 0x701105
lea eax, [ecx + ecx*2]
shl eax, 4
add eax, dword [edi + 0x10]
jmp 0x70110d
push ecx
mov ecx, edi
call fcn.00580e80
mov ecx, dword [edi + 0x1c]
mov dword [esp + 0x14], eax
movsx eax, word [esi]
test byte [ecx + eax*4], 2
jne 0x701128
lea eax, [eax + eax*2]
shl eax, 4
add eax, dword [edi + 0x10]
jmp 0x701130
push eax
mov ecx, edi
call fcn.00580e80
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
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 + 0xd0], xmm6
andps xmm2, xmmword [0x719150]
movaps xmmword [esp + 0x50], xmm6
movaps xmm6, xmmword [eax + 0x10]
xorps xmm6, xmmword [0x719d70]
mov eax, dword [esp + 0x14]
movaps xmm1, xmm6
movaps xmmword [esp + 0x70], xmm2
movaps xmm5, xmm6
movaps xmm2, xmm6
shufps xmm1, xmm6, 0xd2
shufps xmm2, xmm6, 0xc9
movaps xmm3, xmmword [eax]
movaps xmm4, xmm3
shufps xmm5, xmm6, 0xff
mulps xmm4, xmm6
movaps xmmword [esp + 0x60], xmm6
movaps xmm0, xmm4
shufps xmm0, xmm4, 0x55
addss xmm0, xmm4
shufps xmm4, xmm4, 0xaa
addss xmm4, xmm0
movaps xmm0, xmm3
shufps xmm0, xmm3, 0xd2
mulps xmm2, xmm0
movaps xmm0, xmm3
shufps xmm0, xmm3, 0xc9
mulps xmm1, 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 + 0xd0]
add eax, 0x10
movaps xmmword [esp + 0x140], xmm2
push eax
lea eax, [esp + 0x64]
push eax
lea ecx, [esp + 0x158]
call fcn.004782a0
mov eax, dword [esp + 0x14]
movaps xmm2, xmmword [esp + 0x140]
movaps xmmword [esp + 0xd0], xmm2
movaps xmm0, xmmword [eax + 0x20]
mulps xmm0, xmmword [esp + 0x70]
movaps xmmword [esp + 0x160], xmm0
movzx eax, word [esi + 8]
test ax, ax
js 0x70146c
movsx ecx, ax
mov eax, dword [edi + 0x1c]
test byte [eax + ecx*4], 2
jne 0x7012ca
lea eax, [ecx + ecx*2]
shl eax, 4
add eax, dword [edi + 0x10]
jmp 0x7012d2
push ecx
mov ecx, edi
call fcn.00580e80
mov ecx, dword [edi + 0x1c]
mov dword [esp + 0x14], eax
movsx eax, word [esi + 2]
test byte [ecx + eax*4], 2
jne 0x7012ee
lea eax, [eax + eax*2]
shl eax, 4
add eax, dword [edi + 0x10]
jmp 0x7012f6
push eax
mov ecx, edi
call fcn.00580e80
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
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 + 0xe0], xmm6
andps xmm2, xmmword [0x719150]
movaps xmmword [esp + 0x50], xmm6
movaps xmm6, xmmword [0x719d70]
xorps xmm6, xmmword [eax + 0x10]
mov eax, dword [esp + 0x14]
movaps xmm1, xmm6
movaps xmmword [esp + 0x70], xmm2
movaps xmm5, xmm6
movaps xmm2, xmm6
shufps xmm1, xmm6, 0xd2
shufps xmm2, xmm6, 0xc9
movaps xmm3, xmmword [eax]
movaps xmm4, xmm3
shufps xmm5, xmm6, 0xff
mulps xmm4, xmm6
movaps xmmword [esp + 0x60], xmm6
movaps xmm0, xmm4
shufps xmm0, xmm4, 0x55
addss xmm0, xmm4
shufps xmm4, xmm4, 0xaa
addss xmm4, xmm0
movaps xmm0, xmm3
shufps xmm0, xmm3, 0xd2
mulps xmm2, xmm0
movaps xmm0, xmm3
shufps xmm0, xmm3, 0xc9
mulps xmm1, 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 + 0xe0]
add eax, 0x10
movaps xmmword [esp + 0x170], xmm2
push eax
lea eax, [esp + 0x64]
push eax
lea ecx, [esp + 0x188]
call fcn.004782a0
mov eax, dword [esp + 0x14]
movaps xmm2, xmmword [esp + 0x170]
movaps xmmword [esp + 0xe0], xmm2
movaps xmm0, xmmword [eax + 0x20]
mulps xmm0, xmmword [esp + 0x70]
movaps xmmword [esp + 0x190], xmm0
cmp byte [esi + 0x80], 0
je 0x701d0b
push dword [0x884c50]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov ecx, eax
mov dword [esp + 0x18], ecx
mov eax, dword [ecx + 4]
mov dword [esp + 0x20], eax
cmp eax, dword [ecx + 0xc]
jae 0x7014b8
mov dword [eax], str.StFIXLENGTH
rdtsc
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x1c]
mov dword [eax + 4], ecx
add eax, 0xc
mov ecx, dword [esp + 0x18]
mov dword [ecx + 4], eax
movsx ecx, word [esi]
mov eax, dword [edi + 0x1c]
test byte [eax + ecx*4], 2
jne 0x7014cf
lea eax, [ecx + ecx*2]
shl eax, 4
add eax, dword [edi + 0x10]
jmp 0x7014d7
push ecx
mov ecx, edi
call fcn.00580e80
mov ecx, dword [edi + 0x1c]
mov dword [esp + 0x14], eax
movsx eax, word [esi + 2]
test byte [ecx + eax*4], 2
jne 0x7014f3
lea eax, [eax + eax*2]
shl eax, 4
add eax, dword [edi + 0x10]
jmp 0x7014fb
push eax
mov ecx, edi
call fcn.00580e80
mov ecx, dword [edi + 0x1c]
mov dword [esp + 0x18], eax
movsx eax, word [esi + 4]
test byte [ecx + eax*4], 2
jne 0x701517
lea eax, [eax + eax*2]
shl eax, 4
add eax, dword [edi + 0x10]
jmp 0x70151f
push eax
mov ecx, edi
call fcn.00580e80
cmp byte [esi + 0x81], 0
jne 0x701552
movaps xmm0, xmmword [esi + 0x40]
lea ecx, [esi + 0x60]
push ecx
push eax
lea ecx, [esp + 0x138]
movaps xmmword [esp + 0x128], xmm0
call fcn.0046eb90
movaps xmm2, xmmword [esp + 0x130]
jmp 0x701642
movaps xmm4, xmmword [esi + 0x70]
movaps xmm2, xmmword [esi + 0x60]
movaps xmm5, xmm4
movaps xmm3, xmm2
shufps xmm5, xmm4, 0xff
mulps xmm3, xmm4
movaps xmm7, xmm2
shufps xmm7, 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 xmm7, xmm0
movaps xmm0, xmm4
shufps xmm0, xmm4, 0xc9
mulps xmm1, xmm0
shufps xmm3, xmm3, 0
mulps xmm3, xmm4
subps xmm7, xmm1
movaps xmm4, xmmword [esi + 0x50]
mulps xmm7, xmm5
mulps xmm5, xmm5
addps xmm5, xmmword [0x7195c0]
mulps xmm5, xmm2
addps xmm5, xmm3
movaps xmm3, xmm4
addps xmm7, xmm5
movaps xmm5, xmm4
shufps xmm5, xmm4, 0xff
addps xmm7, xmm7
mulps xmm3, xmm7
movaps xmm1, xmm7
shufps xmm1, xmm7, 0xc9
movaps xmm2, xmm7
shufps xmm2, xmm7, 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 xmm1, xmm0
movaps xmm0, xmm4
shufps xmm0, xmm4, 0xc9
mulps xmm2, xmm0
movaps xmm0, xmmword [esi + 0x40]
shufps xmm3, xmm3, 0
mulps xmm3, xmm4
subps xmm2, xmm1
mulps xmm2, xmm5
mulps xmm5, xmm5
addps xmm5, xmmword [0x7195c0]
mulps xmm5, xmm7
addps xmm5, xmm3
addps xmm2, xmm5
addps xmm2, xmm2
subps xmm0, xmm2
movaps xmm2, xmmword [eax]
movaps xmmword [esp + 0x130], xmm2
movaps xmmword [esp + 0x120], xmm0
mov eax, dword [esp + 0x18]
movsx ecx, word [esi + 2]
movaps xmm0, xmmword [eax]
mov eax, dword [esp + 0x14]
subps xmm2, xmm0
movaps xmm6, xmm0
movaps xmm0, xmmword [esp + 0x120]
subps xmm6, xmmword [eax]
subps xmm0, xmmword [eax]
mov eax, dword [edi + 0x1c]
movaps xmmword [esp + 0x40], xmm2
movaps xmmword [esp + 0x80], xmm6
test byte [eax + ecx*4], 2
movaps xmmword [esp + 0xb0], xmm0
jne 0x70168e
lea eax, [ecx + ecx*2]
shl eax, 4
add eax, dword [edi + 0x10]
jmp 0x701696
push ecx
mov ecx, edi
call fcn.00580e80
movups xmm0, xmmword [eax + 0x10]
lea ecx, [esp + 0xa0]
movups xmmword [esp + 0xa0], xmm0
call fcn.00478080
movaps xmm4, xmmword [esp + 0xa0]
movaps xmm2, xmmword [esi + 0x10]
movaps xmm3, xmm4
mulps xmm3, xmm2
movaps xmm6, xmm4
shufps xmm6, xmm4, 0xc9
movaps xmm1, xmm4
shufps xmm1, xmm4, 0xd2
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, xmm2
shufps xmm0, xmm2, 0xd2
mulps xmm6, xmm0
movaps xmm0, xmm2
shufps xmm0, xmm2, 0xc9
mulps xmm1, xmm0
shufps xmm3, xmm3, 0
mulps xmm3, xmm4
subps xmm6, xmm1
movaps xmm4, xmmword [esp + 0xb0]
mulps xmm4, xmm4
mulps xmm6, xmm5
mulps xmm5, xmm5
addps xmm5, xmmword [0x7195c0]
mulps xmm5, xmm2
movaps xmm2, xmmword [esp + 0x40]
addps xmm5, xmm3
addps xmm6, xmm5
movaps xmm5, xmmword [esp + 0x80]
addps xmm6, xmm6
movaps xmm3, xmm6
movaps xmm1, xmm6
mulps xmm3, xmm5
mulps xmm1, xmm2
movaps xmm0, xmm3
shufps xmm0, xmm3, 0x55
addss xmm0, xmm3
shufps xmm3, xmm3, 0xaa
addss xmm3, xmm0
movaps xmm0, xmm1
shufps xmm0, xmm1, 0x55
addss xmm0, xmm1
shufps xmm1, xmm1, 0xaa
shufps xmm3, xmm3, 0
mulps xmm3, xmm6
addss xmm1, xmm0
subps xmm5, xmm3
shufps xmm1, xmm1, 0
mulps xmm1, xmm6
movaps xmm6, xmm5
movaps xmmword [esp + 0x80], xmm5
mulps xmm6, xmm5
subps xmm3, xmm1
subps xmm2, xmm1
movaps xmmword [esp + 0xb0], xmm6
movaps xmm1, xmm6
mulps xmm3, xmm3
movaps xmmword [esp + 0x40], xmm2
movaps xmm0, xmm3
shufps xmm0, xmm3, 0x55
addss xmm0, xmm3
shufps xmm3, xmm3, 0xaa
addss xmm3, xmm0
movaps xmm0, xmm4
shufps xmm0, xmm4, 0x55
addss xmm0, xmm4
shufps xmm4, xmm4, 0xaa
addss xmm4, xmm0
movaps xmm0, xmm6
shufps xmm0, xmm6, 0x55
addss xmm0, xmm6
shufps xmm4, xmm4, 0
movaps xmm7, xmm2
shufps xmm1, xmm6, 0xaa
mulps xmm7, xmm2
addss xmm1, xmm0
subss xmm4, xmm3
movss xmm5, dword [esi + 0x24]
movaps xmm0, xmm7
movaps xmmword [esp + 0xc0], xmm7
shufps xmm0, xmm7, 0x55
movaps xmm2, xmm7
addss xmm0, xmm7
shufps xmm2, xmm7, 0xaa
subss xmm4, xmm1
sqrtss xmm1, xmm1
addss xmm2, xmm0
xorps xmm0, xmm0
mulss xmm1, dword [0x7800e4]
sqrtss xmm0, xmm2
subss xmm4, xmm2
mulss xmm1, xmm0
divss xmm4, xmm1
comiss xmm4, xmm5
ja 0x701836
movaps xmm5, xmm4
movss xmm1, dword [esi + 0x20]
comiss xmm1, xmm5
ja 0x701843
movaps xmm1, xmm5
movaps xmm0, xmm1
andps xmm0, xmmword [0x719120]
comiss xmm0, dword [0x718824]
jb 0x70186d
xorps xmm0, xmm0
comiss xmm1, xmm0
jbe 0x701863
movaps xmm5, xmm0
jmp 0x70188b
movss xmm5, dword [0x719d84]
jmp 0x70188b
movaps xmm0, xmm1
call fcn.0062b294
movaps xmm6, xmmword [esp + 0xb0]
movaps xmm5, xmm0
movaps xmm7, xmmword [esp + 0xc0]
xorps xmm0, xmm0
movaps xmm1, xmm6
movss dword [esp + 0x14], xmm5
shufps xmm1, xmm6, 0x55
addss xmm1, xmm6
shufps xmm6, xmm6, 0xaa
addss xmm6, xmm1
movaps xmm1, xmm0
movss xmm0, dword [0x719764]
movaps xmmword [esp + 0xa0], xmm1
movaps xmm1, xmm0
movss xmm0, dword [0x719760]
movaps xmm3, xmm0
movaps xmmword [esp + 0xc0], xmm1
shufps xmm6, xmm6, 0
movaps xmm2, xmm6
movaps xmmword [esp + 0xb0], xmm3
rsqrtss xmm2, xmm2
movaps xmm4, xmm6
mulss xmm0, xmm2
cmpeqss xmm4, dword [esp + 0xa0]
mulss xmm6, xmm2
mulss xmm6, xmm2
subss xmm1, xmm6
mulss xmm0, xmm1
movaps xmm1, xmmword [esp + 0xc0]
andnps xmm4, xmm0
movaps xmm0, xmm7
shufps xmm0, xmm7, 0x55
addss xmm0, xmm7
shufps xmm4, xmm4, 0
shufps xmm7, xmm7, 0xaa
mulps xmm4, xmmword [esp + 0x80]
addss xmm7, xmm0
movaps xmm0, xmmword [esp + 0xb0]
xorps xmm4, xmmword [0x719d70]
shufps xmm7, xmm7, 0
movaps xmm2, xmm7
movaps xmm3, xmm7
cmpeqss xmm3, dword [esp + 0xa0]
rsqrtss xmm2, xmm2
mulss xmm7, xmm2
mulss xmm0, xmm2
mulss xmm7, xmm2
subss xmm1, xmm7
mulss xmm0, xmm1
andnps xmm3, xmm0
shufps xmm3, xmm3, 0
mulps xmm3, xmmword [esp + 0x40]
mulps xmm4, xmm3
movaps xmm0, xmm4
shufps xmm0, xmm4, 0x55
addss xmm0, xmm4
shufps xmm4, xmm4, 0xaa
addss xmm4, xmm0
movaps xmm0, xmm4
andps xmm0, xmmword [0x719120]
comiss xmm0, dword [0x718824]
jb 0x7019ad
xorps xmm0, xmm0
comiss xmm4, xmm0
ja 0x7019bb
movss xmm0, dword [0x719d84]
jmp 0x7019bb
movaps xmm0, xmm4
call fcn.0062b294
movss xmm5, dword [esp + 0x14]
movsx eax, word [esi + 2]
subss xmm5, xmm0
push 1
push eax
mov ecx, edi
movss dword [esp + 0x1c], xmm5
call fcn.00580710
movups xmm5, xmmword [eax + 0x10]
add eax, 0x10
movaps xmm2, xmmword [esi + 0x10]
movaps xmm3, xmm5
mov dword [esp + 0x18], eax
mulps xmm3, xmm2
movaps xmm6, xmm5
shufps xmm6, xmm5, 0xc9
movaps xmm1, xmm5
shufps xmm1, xmm5, 0xd2
movaps xmm4, xmm5
shufps xmm4, xmm5, 0xff
movaps xmm0, xmm3
movaps xmmword [esp + 0x80], xmm5
shufps xmm0, xmm3, 0x55
addss xmm0, xmm3
shufps xmm3, xmm3, 0xaa
addss xmm3, xmm0
movaps xmm0, xmm2
shufps xmm0, xmm2, 0xd2
mulps xmm6, xmm0
movaps xmm0, xmm2
shufps xmm0, xmm2, 0xc9
mulps xmm1, xmm0
shufps xmm3, xmm3, 0
mulps xmm3, xmm5
subps xmm6, xmm1
mulps xmm6, xmm4
mulps xmm4, xmm4
addps xmm4, xmmword [0x7195c0]
mulps xmm4, xmm2
movss xmm2, dword [esp + 0x14]
addps xmm4, xmm3
xorps xmm3, xmm3
addps xmm6, xmm4
movss xmm4, dword [esi + 0x28]
comiss xmm4, xmm3
addps xmm6, xmm6
movaps xmm1, xmm6
mulps xmm1, xmm6
movaps xmm0, xmm1
shufps xmm0, xmm1, 0x55
addss xmm0, xmm1
shufps xmm1, xmm1, 0xaa
addss xmm1, xmm0
rsqrtss xmm1, xmm1
shufps xmm1, xmm1, 0
mulps xmm1, xmm6
movaps xmmword [esp + 0x40], xmm1
jbe 0x701ad1
movss xmm5, dword [0x7a3b34]
movaps xmm0, xmm4
mulss xmm0, xmm5
movaps xmm1, xmm2
andps xmm1, xmmword [0x719120]
comiss xmm1, xmm0
jbe 0x701ad1
comiss xmm2, xmm3
jbe 0x701ab8
movss xmm0, dword [0x718824]
jmp 0x701ac0
movss xmm0, dword [0x717e40]
mulss xmm0, xmm4
mulss xmm0, xmm5
movss dword [esp + 0x14], xmm0
movaps xmm2, xmm0
movss xmm0, dword [esi + 0x30]
lea eax, [esp + 0x40]
mulss xmm0, xmm2
push ecx
lea ecx, [esp + 0x34]
movss dword [esp], xmm0
push eax
call fcn.004776d0
mov ecx, dword [esp + 0x18]
lea eax, [esp + 0x80]
push eax
lea eax, [esp + 0x34]
push eax
call fcn.004782a0
mov ecx, dword [esp + 0x18]
call fcn.00478080
push dword [0x884c50]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov ecx, eax
mov dword [esp + 0x18], ecx
mov eax, dword [ecx + 4]
mov dword [esp + 0x20], eax
cmp eax, dword [ecx + 0xc]
jae 0x701b4c
mov dword [eax], str.StFIXDIRECTION
rdtsc
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x1c]
mov dword [eax + 4], ecx
add eax, 0xc
mov ecx, dword [esp + 0x18]
mov dword [ecx + 4], eax
movsx ecx, word [esi]
mov eax, dword [edi + 0x1c]
test byte [eax + ecx*4], 2
jne 0x701b63
lea eax, [ecx + ecx*2]
shl eax, 4
add eax, dword [edi + 0x10]
jmp 0x701b6b
push ecx
mov ecx, edi
call fcn.00580e80
cmp byte [esi + 0x81], 0
mov dword [esp + 0x18], eax
je 0x701baa
movsx eax, word [esi + 4]
mov ecx, dword [edi + 0x1c]
test byte [ecx + eax*4], 2
jne 0x701b98
lea eax, [eax + eax*2]
shl eax, 4
add eax, dword [edi + 0x10]
movaps xmm5, xmmword [eax]
movaps xmmword [esp + 0x40], xmm5
jmp 0x701bdd
push eax
mov ecx, edi
call fcn.00580e80
movaps xmm5, xmmword [eax]
movaps xmmword [esp + 0x40], xmm5
jmp 0x701bdd
movsx ecx, word [esi + 4]
mov eax, dword [edi + 0x1c]
test byte [eax + ecx*4], 2
jne 0x701bc2
lea eax, [ecx + ecx*2]
shl eax, 4
add eax, dword [edi + 0x10]
jmp 0x701bca
push ecx
mov ecx, edi
call fcn.00580e80
lea ecx, [esi + 0x60]
push ecx
push eax
lea ecx, [esp + 0x48]
call fcn.0046eb90
movaps xmm5, xmmword [esp + 0x40]
mov eax, dword [esp + 0x18]
movaps xmm6, xmmword [esp + 0xc0]
movaps xmm1, xmm6
subps xmm5, xmmword [eax]
movaps xmm4, xmm5
mulps xmm4, xmm5
movaps xmm0, xmm4
shufps xmm0, xmm4, 0x55
addss xmm0, xmm4
shufps xmm4, xmm4, 0xaa
addss xmm4, xmm0
shufps xmm4, xmm4, 0
movaps xmm2, xmm4
movaps xmm3, xmm4
cmpeqss xmm3, dword [esp + 0xa0]
rsqrtss xmm2, xmm2
mulss xmm4, xmm2
mulss xmm4, xmm2
subss xmm1, xmm4
movaps xmm4, xmmword [esp + 0xb0]
movaps xmm0, xmm4
mulss xmm0, xmm2
mulss xmm0, xmm1
andnps xmm3, xmm0
shufps xmm3, xmm3, 0
mulps xmm3, xmm5
movaps xmmword [esp + 0x80], xmm3
movaps xmm3, xmmword [esp + 0x120]
subps xmm3, xmmword [eax]
lea eax, [esp + 0x30]
push eax
lea eax, [esp + 0x84]
push eax
movaps xmm2, xmm3
mulps xmm2, xmm3
push ecx
lea ecx, [esp + 0x9c]
movaps xmm0, xmm2
shufps xmm0, xmm2, 0x55
addss xmm0, xmm2
shufps xmm2, xmm2, 0xaa
addss xmm2, xmm0
shufps xmm2, xmm2, 0
movaps xmm0, xmm2
movaps xmm1, xmm2
cmpeqss xmm1, dword [esp + 0xac]
rsqrtss xmm0, xmm0
mulss xmm2, xmm0
mulss xmm4, xmm0
mulss xmm2, xmm0
movss xmm0, dword [esi + 0x2c]
movss dword [esp], xmm0
subss xmm6, xmm2
mulss xmm4, xmm6
andnps xmm1, xmm4
shufps xmm1, xmm1, 0
mulps xmm1, xmm3
movaps xmmword [esp + 0x3c], xmm1
call fcn.007027c0
movsx eax, word [esi]
mov ecx, edi
push 1
push eax
call fcn.00580710
movups xmm0, xmmword [eax + 0x10]
lea esi, [eax + 0x10]
lea eax, [esp + 0x30]
mov ecx, esi
push eax
lea eax, [esp + 0x94]
push eax
movups xmmword [esp + 0x38], xmm0
call fcn.004782a0
mov ecx, esi
call fcn.00478080
mov esi, dword [ebp + 0xc]
cmp byte [esi + 0x81], 0
je 0x702047
lea eax, [esi + 0x70]
push eax
lea eax, [esi + 0x50]
push eax
lea ecx, [esp + 0x98]
call fcn.00558c20
movsx ecx, word [esi + 4]
mov eax, dword [edi + 0x1c]
test byte [eax + ecx*4], 2
jne 0x701d44
lea eax, [ecx + ecx*2]
shl eax, 4
add eax, dword [edi + 0x10]
jmp 0x701d4c
push ecx
mov ecx, edi
call fcn.00580e80
movaps xmm0, xmmword [eax]
lea ecx, [eax + 0x10]
movaps xmmword [esp + 0x50], xmm0
movaps xmm0, xmmword [ecx]
movaps xmmword [esp + 0x60], xmm0
movaps xmm0, xmmword [eax + 0x20]
lea eax, [esp + 0x90]
push ecx
movaps xmmword [esp + 0x74], xmm0
movss xmm0, dword [esi + 0x34]
movss dword [esp], xmm0
push eax
push ecx
lea ecx, [esp + 0x6c]
call fcn.00477d40
mov eax, dword [edi]
movsx ecx, word [esi + 4]
mov dword [esp + 0x24], ecx
mov eax, dword [eax + 0x1c]
mov dword [esp + 0x18], eax
lea edx, [ecx + 1]
mov eax, dword [edi + 0x1c]
mov dword [esp + 0x2c], edx
or dword [eax + ecx*4], 4
mov ecx, edx
mov eax, dword [esp + 0x18]
mov dword [esp + 0x1c], ecx
cmp ecx, eax
jge 0x701fef
lea edx, [ecx + ecx*2]
shl edx, 4
mov dword [esp + 0x14], edx
mov eax, dword [edi]
mov eax, dword [eax + 0xc]
movzx eax, word [eax + ecx*2]
mov dword [esp + 0x28], eax
movzx eax, ax
cmp ax, 0xffff
je 0x701fd0
mov esi, dword [edi + 0x1c]
cwde
test byte [esi + eax*4], 4
je 0x701fd0
test byte [esi + ecx*4], 1
je 0x701fc5
mov eax, dword [esp + 0x28]
mov esi, dword [edi + 0x10]
movzx eax, ax
mov dword [esp + 0x20], esi
cmp ax, 0xffff
je 0x701f9f
mov ecx, dword [edi + 0x1c]
cwde
test byte [ecx + eax*4], 2
jne 0x701e1e
lea eax, [eax + eax*2]
shl eax, 4
add eax, esi
jmp 0x701e2a
push eax
mov ecx, edi
call fcn.00580e80
mov edx, dword [esp + 0x14]
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 [edi + 4]
shufps xmm6, xmm2, 0xc9
movaps xmm1, xmm2
shufps xmm1, xmm2, 0xd2
add esi, edx
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 + 0x30], xmm6
andps xmm2, xmmword [0x719150]
movaps xmmword [esp + 0xf0], xmm6
movaps xmm6, xmmword [eax + 0x10]
xorps xmm6, xmmword [0x719d70]
mov eax, dword [esp + 0x20]
movaps xmm1, xmm6
movaps xmmword [esp + 0x110], xmm2
movaps xmm5, xmm6
movaps xmm2, xmm6
shufps xmm1, xmm6, 0xd2
shufps xmm2, xmm6, 0xc9
movaps xmm3, xmmword [eax + edx]
movaps xmm4, xmm3
shufps xmm5, xmm6, 0xff
mulps xmm4, xmm6
movaps xmmword [esp + 0x100], xmm6
movaps xmm0, xmm4
shufps xmm0, xmm4, 0x55
addss xmm0, xmm4
shufps xmm4, xmm4, 0xaa
addss xmm4, xmm0
movaps xmm0, xmm3
shufps xmm0, xmm3, 0xd2
mulps xmm2, xmm0
movaps xmm0, xmm3
shufps xmm0, xmm3, 0xc9
mulps xmm1, 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
add eax, 0x10
add eax, edx
lea ecx, [esi + 0x10]
push eax
lea eax, [esp + 0x104]
push eax
addps xmm2, xmmword [esp + 0x38]
movaps xmmword [esi], xmm2
call fcn.004782a0
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x1c]
movaps xmm0, xmmword [eax + edx + 0x20]
mulps xmm0, xmmword [esp + 0x110]
movaps xmmword [esi + 0x20], xmm0
jmp 0x701fbe
mov eax, dword [edi + 4]
movaps xmm0, xmmword [esi + edx]
movaps xmmword [eax + edx], xmm0
movaps xmm0, xmmword [esi + edx + 0x10]
movaps xmmword [eax + edx + 0x10], xmm0
movaps xmm0, xmmword [esi + edx + 0x20]
movaps xmmword [eax + edx + 0x20], xmm0
mov eax, dword [edi + 0x1c]
and dword [eax + ecx*4], 0xfffffffe
mov eax, dword [edi + 0x1c]
or dword [eax + ecx*4], 4
mov byte [edi + 0x28], 0
mov eax, dword [esp + 0x18]
inc ecx
add edx, 0x30
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x14], edx
cmp ecx, eax
jl 0x701dc0
mov esi, dword [ebp + 0xc]
mov edx, dword [esp + 0x2c]
cmp edx, eax
jge 0x702012
mov esi, dword [esp + 0x18]
mov ecx, dword [edi + 0x1c]
mov eax, dword [ecx + edx*4]
test al, 4
je 0x70200a
and eax, 0xfffffffb
or eax, 2
mov dword [ecx + edx*4], eax
inc edx
cmp edx, esi
jl 0x701ff7
mov esi, dword [ebp + 0xc]
mov ecx, dword [esp + 0x24]
movaps xmm0, xmmword [esp + 0x50]
lea eax, [ecx + ecx*2]
shl eax, 4
add eax, dword [edi + 0x10]
movaps xmmword [eax], xmm0
movaps xmm0, xmmword [esp + 0x60]
movaps xmmword [eax + 0x10], xmm0
movaps xmm0, xmmword [esp + 0x70]
movaps xmmword [eax + 0x20], xmm0
mov eax, dword [edi + 0x1c]
mov dword [eax + ecx*4], 1
mov byte [edi + 0x29], 0
cmp word [esi + 6], 0
jl 0x7023e0
movsx ecx, word [esi]
mov eax, dword [edi + 0x1c]
test byte [eax + ecx*4], 2
jne 0x702069
lea eax, [ecx + ecx*2]
shl eax, 4
add eax, dword [edi + 0x10]
jmp 0x702071
push ecx
mov ecx, edi
call fcn.00580e80
movaps xmm4, xmmword [eax + 0x10]
lea ecx, [eax + 0x10]
movaps xmm6, xmmword [esp + 0xd0]
movaps xmm5, xmm4
movaps xmm3, xmm6
shufps xmm5, xmm4, 0xff
mulps xmm3, xmm4
movaps xmm1, xmm6
mov dword [esp + 0x1c], eax
shufps xmm1, xmm6, 0xc9
movaps xmm2, xmm6
shufps xmm2, xmm6, 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 xmm1, xmm0
movaps xmm0, xmm4
shufps xmm0, xmm4, 0xc9
mulps xmm2, xmm0
shufps xmm3, xmm3, 0
mulps xmm3, xmm4
subps xmm2, xmm1
mulps xmm2, xmm5
mulps xmm5, xmm5
addps xmm5, xmmword [0x7195c0]
mulps xmm5, xmm6
addps xmm5, xmm3
addps xmm2, xmm5
addps xmm2, xmm2
addps xmm2, xmmword [eax]
lea eax, [esp + 0x150]
push eax
push ecx
lea ecx, [esp + 0x68]
movaps xmmword [esp + 0x58], xmm2
call fcn.004782a0
mov eax, dword [esp + 0x1c]
movsx ecx, word [esi + 6]
mov dword [esp + 0x28], ecx
movaps xmm1, xmmword [eax + 0x20]
mov eax, dword [edi]
lea edx, [ecx + 1]
mulps xmm1, xmmword [esp + 0x160]
mov dword [esp + 0x2c], edx
mov eax, dword [eax + 0x1c]
mov dword [esp + 0x14], eax
mov eax, dword [edi + 0x1c]
movaps xmmword [esp + 0x30], xmm1
or dword [eax + ecx*4], 4
mov ecx, edx
mov eax, dword [esp + 0x14]
mov dword [esp + 0x20], ecx
cmp ecx, eax
jge 0x70238d
lea edx, [ecx + ecx*2]
shl edx, 4
mov dword [esp + 0x18], edx
mov eax, dword [edi]
mov eax, dword [eax + 0xc]
movzx eax, word [eax + ecx*2]
mov dword [esp + 0x24], eax
movzx eax, ax
cmp ax, 0xffff
je 0x702369
mov esi, dword [edi + 0x1c]
cwde
test byte [esi + eax*4], 4
je 0x702369
test byte [esi + ecx*4], 1
je 0x70235e
mov eax, dword [esp + 0x24]
mov esi, dword [edi + 0x10]
movzx eax, ax
mov dword [esp + 0x1c], esi
cmp ax, 0xffff
je 0x702338
mov ecx, dword [edi + 0x1c]
cwde
test byte [ecx + eax*4], 2
jne 0x7021b1
lea eax, [eax + eax*2]
shl eax, 4
add eax, esi
jmp 0x7021bd
push eax
mov ecx, edi
call fcn.00580e80
mov edx, dword [esp + 0x18]
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 [edi + 4]
shufps xmm6, xmm2, 0xc9
movaps xmm1, xmm2
shufps xmm1, xmm2, 0xd2
add esi, edx
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 + 0x90], xmm6
andps xmm2, xmmword [0x719150]
movaps xmmword [esp + 0xf0], xmm6
movaps xmm6, xmmword [0x719d70]
xorps xmm6, xmmword [eax + 0x10]
mov eax, dword [esp + 0x1c]
movaps xmm1, xmm6
movaps xmmword [esp + 0x110], xmm2
movaps xmm5, xmm6
movaps xmm2, xmm6
shufps xmm1, xmm6, 0xd2
shufps xmm2, xmm6, 0xc9
movaps xmm3, xmmword [eax + edx]
movaps xmm4, xmm3
shufps xmm5, xmm6, 0xff
mulps xmm4, xmm6
movaps xmmword [esp + 0x100], xmm6
movaps xmm0, xmm4
shufps xmm0, xmm4, 0x55
addss xmm0, xmm4
shufps xmm4, xmm4, 0xaa
addss xmm4, xmm0
movaps xmm0, xmm3
shufps xmm0, xmm3, 0xd2
mulps xmm2, xmm0
movaps xmm0, xmm3
shufps xmm0, xmm3, 0xc9
mulps xmm1, 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
add eax, 0x10
add eax, edx
lea ecx, [esi + 0x10]
push eax
lea eax, [esp + 0x104]
push eax
addps xmm2, xmmword [esp + 0x98]
movaps xmmword [esi], xmm2
call fcn.004782a0
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x20]
movaps xmm0, xmmword [eax + edx + 0x20]
mulps xmm0, xmmword [esp + 0x110]
movaps xmmword [esi + 0x20], xmm0
jmp 0x702357
mov eax, dword [edi + 4]
movaps xmm0, xmmword [esi + edx]
movaps xmmword [eax + edx], xmm0
movaps xmm0, xmmword [esi + edx + 0x10]
movaps xmmword [eax + edx + 0x10], xmm0
movaps xmm0, xmmword [esi + edx + 0x20]
movaps xmmword [eax + edx + 0x20], xmm0
mov eax, dword [edi + 0x1c]
and dword [eax + ecx*4], 0xfffffffe
mov eax, dword [edi + 0x1c]
or dword [eax + ecx*4], 4
mov byte [edi + 0x28], 0
mov eax, dword [esp + 0x14]
inc ecx
add edx, 0x30
mov dword [esp + 0x20], ecx
mov dword [esp + 0x18], edx
cmp ecx, eax
jl 0x702153
movaps xmm1, xmmword [esp + 0x30]
mov esi, dword [ebp + 0xc]
mov edx, dword [esp + 0x2c]
cmp edx, eax
jge 0x7023b0
mov esi, dword [esp + 0x14]
mov ecx, dword [edi + 0x1c]
mov eax, dword [ecx + edx*4]
test al, 4
je 0x7023a8
and eax, 0xfffffffb
or eax, 2
mov dword [ecx + edx*4], eax
inc edx
cmp edx, esi
jl 0x702395
mov esi, dword [ebp + 0xc]
mov ecx, dword [esp + 0x28]
movaps xmm0, xmmword [esp + 0x50]
lea eax, [ecx + ecx*2]
shl eax, 4
add eax, dword [edi + 0x10]
movaps xmmword [eax], xmm0
movaps xmm0, xmmword [esp + 0x60]
movaps xmmword [eax + 0x10], xmm0
movaps xmmword [eax + 0x20], xmm1
mov eax, dword [edi + 0x1c]
mov dword [eax + ecx*4], 1
mov byte [edi + 0x29], 0
cmp word [esi + 8], 0
jl 0x702778
movsx ecx, word [esi + 2]
mov eax, dword [edi + 0x1c]
test byte [eax + ecx*4], 2
jne 0x702403
lea eax, [ecx + ecx*2]
shl eax, 4
add eax, dword [edi + 0x10]
jmp 0x70240b
push ecx
mov ecx, edi
call fcn.00580e80
movaps xmm4, xmmword [eax + 0x10]
lea ecx, [eax + 0x10]
movaps xmm6, xmmword [esp + 0xe0]
movaps xmm3, xmm4
mulps xmm3, xmm6
movaps xmm1, xmm6
mov dword [esp + 0x1c], eax
shufps xmm1, xmm6, 0xc9
movaps xmm2, xmm6
shufps xmm2, xmm6, 0xd2
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 xmm2, xmm0
shufps xmm3, xmm3, 0
mulps xmm3, xmm4
subps xmm2, xmm1
mulps xmm2, xmm5
mulps xmm5, xmm5
addps xmm5, xmmword [0x7195c0]
mulps xmm5, xmm6
addps xmm5, xmm3
addps xmm2, xmm5
addps xmm2, xmm2
addps xmm2, xmmword [eax]
lea eax, [esp + 0x180]
push eax
push ecx
lea ecx, [esp + 0x68]
movaps xmmword [esp + 0x58], xmm2
call fcn.004782a0
mov eax, dword [esp + 0x1c]
movsx ecx, word [esi + 8]
mov dword [esp + 0x28], ecx
movaps xmm1, xmmword [eax + 0x20]
mov eax, dword [edi]
lea edx, [ecx + 1]
mulps xmm1, xmmword [esp + 0x190]
mov dword [esp + 0x2c], edx
mov esi, dword [eax + 0x1c]
mov eax, dword [edi + 0x1c]
movaps xmmword [esp + 0x30], xmm1
mov dword [esp + 0x20], esi
or dword [eax + ecx*4], 4
mov ecx, edx
mov dword [esp + 0x14], ecx
cmp ecx, esi
jge 0x702727
lea edx, [ecx + ecx*2]
shl edx, 4
mov dword [esp + 0x18], edx
nop dword [eax]
mov eax, dword [edi]
mov eax, dword [eax + 0xc]
movzx eax, word [eax + ecx*2]
mov dword [esp + 0x24], eax
movzx eax, ax
cmp ax, 0xffff
je 0x70270a
mov esi, dword [edi + 0x1c]
cwde
test byte [esi + eax*4], 4
je 0x702706
test byte [esi + ecx*4], 1
je 0x7026fb
mov eax, dword [esp + 0x24]
mov esi, dword [edi + 0x10]
movzx eax, ax
mov dword [esp + 0x1c], esi
cmp ax, 0xffff
je 0x7026d5
mov ecx, dword [edi + 0x1c]
cwde
test byte [ecx + eax*4], 2
jne 0x70254e
lea eax, [eax + eax*2]
shl eax, 4
add eax, esi
jmp 0x70255a
push eax
mov ecx, edi
call fcn.00580e80
mov edx, dword [esp + 0x18]
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 [edi + 4]
shufps xmm6, xmm2, 0xc9
movaps xmm1, xmm2
shufps xmm1, xmm2, 0xd2
add esi, edx
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 + 0x90], xmm6
andps xmm2, xmmword [0x719150]
movaps xmmword [esp + 0xf0], xmm6
movaps xmm6, xmmword [eax + 0x10]
xorps xmm6, xmmword [0x719d70]
mov eax, dword [esp + 0x1c]
movaps xmm1, xmm6
movaps xmmword [esp + 0x110], xmm2
movaps xmm5, xmm6
movaps xmm2, xmm6
shufps xmm1, xmm6, 0xd2
shufps xmm2, xmm6, 0xc9
movaps xmm3, xmmword [eax + edx]
movaps xmm4, xmm3
shufps xmm5, xmm6, 0xff
mulps xmm4, xmm6
movaps xmmword [esp + 0x100], xmm6
movaps xmm0, xmm4
shufps xmm0, xmm4, 0x55
addss xmm0, xmm4
shufps xmm4, xmm4, 0xaa
addss xmm4, xmm0
movaps xmm0, xmm3
shufps xmm0, xmm3, 0xd2
mulps xmm2, xmm0
movaps xmm0, xmm3
shufps xmm0, xmm3, 0xc9
mulps xmm1, 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
add eax, 0x10
add eax, edx
lea ecx, [esi + 0x10]
push eax
lea eax, [esp + 0x104]
push eax
addps xmm2, xmmword [esp + 0x98]
movaps xmmword [esi], xmm2
call fcn.004782a0
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x14]
movaps xmm0, xmmword [eax + edx + 0x20]
mulps xmm0, xmmword [esp + 0x110]
movaps xmmword [esi + 0x20], xmm0
jmp 0x7026f4
mov eax, dword [edi + 4]
movaps xmm0, xmmword [esi + edx]
movaps xmmword [eax + edx], xmm0
movaps xmm0, xmmword [esi + edx + 0x10]
movaps xmmword [eax + edx + 0x10], xmm0
movaps xmm0, xmmword [esi + edx + 0x20]
movaps xmmword [eax + edx + 0x20], xmm0
mov eax, dword [edi + 0x1c]
and dword [eax + ecx*4], 0xfffffffe
mov eax, dword [edi + 0x1c]
or dword [eax + ecx*4], 4
mov byte [edi + 0x28], 0
mov esi, dword [esp + 0x20]
inc ecx
add edx, 0x30
mov dword [esp + 0x14], ecx
mov dword [esp + 0x18], edx
cmp ecx, esi
jl 0x7024f0
movaps xmm1, xmmword [esp + 0x30]
mov edx, dword [esp + 0x2c]
cmp edx, esi
jge 0x702748
nop dword [eax + eax]
mov ecx, dword [edi + 0x1c]
mov eax, dword [ecx + edx*4]
test al, 4
je 0x702743
and eax, 0xfffffffb
or eax, 2
mov dword [ecx + edx*4], eax
inc edx
cmp edx, esi
jl 0x702730
mov ecx, dword [esp + 0x28]
movaps xmm0, xmmword [esp + 0x50]
lea eax, [ecx + ecx*2]
shl eax, 4
add eax, dword [edi + 0x10]
movaps xmmword [eax], xmm0
movaps xmm0, xmmword [esp + 0x60]
movaps xmmword [eax + 0x10], xmm0
movaps xmmword [eax + 0x20], xmm1
mov eax, dword [edi + 0x1c]
mov dword [eax + ecx*4], 1
mov byte [edi + 0x29], 0
push dword [0x884c50]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov edi, eax
mov esi, dword [edi + 4]
cmp esi, dword [edi + 0xc]
jae 0x7027a7
mov dword [esi], 0x77f784
rdtsc
mov dword [esp + 0x24], eax
mov ecx, dword [esp + 0x24]
lea eax, [esi + 0xc]
mov dword [esi + 4], ecx
mov dword [edi + 4], eax
mov eax, dword [ebp + 8]
pop edi
pop esi
mov byte [eax], 1
mov esp, ebp
pop ebp
ret