Function at 0x5a8770
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, 0x248
mov eax, dword [ebp + 8]
push esi
mov esi, ecx
mov ecx, dword [0x8d45f0]
push edi
mov edx, dword [eax]
xor edi, edi
mov dword [esp + 0xcc], esi
mov dword [esp + 0x2c], edi
test ecx, ecx
je 0x5a87ad
mov eax, dword [ecx]
push edx
mov eax, dword [eax + 4]
call eax
mov edi, eax
mov dword [esp + 0x2c], eax
mov eax, dword [ebp + 8]
test edi, edi
jne 0x5a87be
mov ecx, dword [eax]
call fcn.00596340
mov edi, eax
mov dword [esp + 0x2c], edi
mov ecx, dword [ebp + 0xc]
movaps xmm0, xmmword [0x7195b0]
movaps xmmword [esi + 0x90], xmm0
mov ecx, dword [ecx]
cmp dword [ecx + 4], 2
jle 0x5a87dd
movsx eax, word [ecx + 0x32]
jmp 0x5a87df
xor eax, eax
cmp dword [esi + 0x60], 0
mov dword [esp + 0xb0], eax
je 0x5aa515
test edi, edi
je 0x5aa515
test eax, eax
je 0x5aa515
push dword [0x884c50]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov dword [esp + 0xc4], eax
mov edi, dword [eax + 4]
cmp edi, dword [eax + 0xc]
jae 0x5a8841
mov dword [edi], str.TtFootIkModifier
rdtsc
mov dword [esp + 0xc8], eax
mov ecx, dword [esp + 0xc8]
lea eax, [edi + 0xc]
mov dword [edi + 4], ecx
mov ecx, dword [esp + 0xc4]
mov dword [ecx + 4], eax
xor ecx, ecx
cmp dword [esi + 0x60], ecx
jle 0x5a88c0
mov eax, dword [esi + 0x5c]
add eax, 0x8a
movsx edx, word [eax + 2]
movsx edi, word [eax - 2]
mov dword [esp + 0xa0], edx
cmp dword [esp + 0xa0], 0
movsx edx, word [eax]
jl 0x5aa515
test edx, edx
js 0x5aa515
test edi, edi
js 0x5aa515
mov esi, dword [esp + 0xb0]
cmp dword [esp + 0xa0], esi
mov esi, dword [esp + 0xcc]
jge 0x5aa515
cmp edx, dword [esp + 0xb0]
jge 0x5aa515
cmp edi, dword [esp + 0xb0]
jge 0x5aa515
inc ecx
add eax, 0xa0
cmp ecx, dword [esi + 0x60]
jl 0x5a8850
mov eax, dword [ebp + 0xc]
xorps xmm1, xmm1
mov byte [esp + 0x4c], 0
mov ecx, dword [eax]
mov eax, dword [ecx + 4]
cmp eax, 0xb
jle 0x5a891d
movss xmm0, dword [ecx + 0xc8]
comiss xmm0, xmm1
seta al
test al, al
je 0x5a891d
cmp byte [esi + 0xb4], 0
je 0x5a892e
movsx eax, word [ecx + 0xc4]
movss dword [esp + 0x58], xmm0
movups xmm0, xmmword [eax + ecx]
movups xmmword [esp + 0xd0], xmm0
movups xmm0, xmmword [eax + ecx + 0x10]
movups xmmword [esp + 0xe0], xmm0
movups xmm0, xmmword [eax + ecx + 0x20]
jmp 0x5a8958
cmp byte [esi + 0xb4], 0
je 0x5a892e
movss dword [esp + 0x58], xmm1
jmp 0x5a893c
movss xmm0, dword [0x718824]
movss dword [esp + 0x58], xmm0
movups xmm0, xmmword [esi + 0x2c]
movups xmmword [esp + 0xd0], xmm0
movups xmm0, xmmword [esi + 0x3c]
movups xmmword [esp + 0xe0], xmm0
movups xmm0, xmmword [esi + 0x4c]
movups xmmword [esp + 0xf0], xmm0
movss xmm1, dword [esp + 0xf0]
movss xmm0, dword [0x718824]
ucomiss xmm1, xmm0
lahf
test ah, 0x44
jp 0x5a8985
movss dword [esp + 0xa0], xmm0
jmp 0x5a89c4
movss xmm0, dword [esi + 0xcc]
sub esp, 8
movss dword [esp + 4], xmm0
movss dword [esp], xmm1
call fcn.005c45d0
fstp dword [esp + 0xf8]
movss xmm0, dword [esp + 0xf8]
add esp, 8
movss dword [esp + 0xa0], xmm0
movss xmm0, dword [0x718824]
movss xmm1, dword [esp + 0xfc]
ucomiss xmm1, xmm0
lahf
test ah, 0x44
jp 0x5a89e1
movss dword [esp + 0xc4], xmm0
jmp 0x5a8a20
movss xmm0, dword [esi + 0xcc]
sub esp, 8
movss dword [esp + 4], xmm0
movss dword [esp], xmm1
call fcn.005c45d0
fstp dword [esp + 0x104]
movss xmm0, dword [esp + 0x104]
add esp, 8
movss dword [esp + 0xc4], xmm0
movss xmm0, dword [0x718824]
movss xmm1, dword [esp + 0xdc]
ucomiss xmm1, xmm0
lahf
test ah, 0x44
jp 0x5a8a3d
movss dword [esp + 0xc0], xmm0
jmp 0x5a8a7c
movss xmm0, dword [esi + 0xcc]
sub esp, 8
movss dword [esp + 4], xmm0
movss dword [esp], xmm1
call fcn.005c45d0
fstp dword [esp + 0xe4]
movss xmm0, dword [esp + 0xe4]
add esp, 8
movss dword [esp + 0xc0], xmm0
movss xmm0, dword [0x718824]
movss xmm1, dword [esp + 0xe0]
ucomiss xmm1, xmm0
lahf
test ah, 0x44
jp 0x5a8a96
movss dword [esp + 0x30], xmm0
jmp 0x5a8ad2
movss xmm0, dword [esi + 0xcc]
sub esp, 8
movss dword [esp + 4], xmm0
movss dword [esp], xmm1
call fcn.005c45d0
fstp dword [esp + 0xe8]
movss xmm0, dword [esp + 0xe8]
add esp, 8
movss dword [esp + 0x30], xmm0
movss xmm0, dword [0x718824]
movss xmm1, dword [esp + 0xe4]
ucomiss xmm1, xmm0
lahf
test ah, 0x44
jp 0x5a8aec
movss dword [esp + 0x28], xmm0
jmp 0x5a8b28
movss xmm0, dword [esi + 0xcc]
sub esp, 8
movss dword [esp + 4], xmm0
movss dword [esp], xmm1
call fcn.005c45d0
fstp dword [esp + 0xec]
movss xmm0, dword [esp + 0xec]
add esp, 8
movss dword [esp + 0x28], xmm0
movss xmm0, dword [0x718824]
movss xmm1, dword [esp + 0xd4]
ucomiss xmm1, xmm0
lahf
test ah, 0x44
jp 0x5a8b45
movss dword [esp + 0xb4], xmm0
jmp 0x5a8b84
movss xmm0, dword [esi + 0xcc]
sub esp, 8
movss dword [esp + 4], xmm0
movss dword [esp], xmm1
call fcn.005c45d0
fstp dword [esp + 0xdc]
movss xmm0, dword [esp + 0xdc]
add esp, 8
movss dword [esp + 0xb4], xmm0
movss xmm0, dword [0x718824]
movss xmm1, dword [esp + 0xd8]
ucomiss xmm1, xmm0
lahf
test ah, 0x44
jp 0x5a8ba1
movss dword [esp + 0xb8], xmm0
jmp 0x5a8be0
movss xmm0, dword [esi + 0xcc]
sub esp, 8
movss dword [esp + 4], xmm0
movss dword [esp], xmm1
call fcn.005c45d0
fstp dword [esp + 0xe0]
movss xmm0, dword [esp + 0xe0]
add esp, 8
movss dword [esp + 0xb8], xmm0
movss xmm0, dword [0x718824]
movss xmm1, dword [esp + 0xf4]
ucomiss xmm1, xmm0
lahf
test ah, 0x44
jp 0x5a8bfa
movss dword [esp + 0x60], xmm0
jmp 0x5a8c36
movss xmm0, dword [esi + 0xcc]
sub esp, 8
movss dword [esp + 4], xmm0
movss dword [esp], xmm1
call fcn.005c45d0
fstp dword [esp + 0xfc]
movss xmm0, dword [esp + 0xfc]
add esp, 8
movss dword [esp + 0x60], xmm0
movss xmm0, dword [0x718824]
movss xmm1, dword [esp + 0xd0]
ucomiss xmm1, xmm0
lahf
test ah, 0x44
jp 0x5a8c50
movss dword [esp + 0x10], xmm0
jmp 0x5a8c8c
movss xmm0, dword [esi + 0xcc]
sub esp, 8
movss dword [esp + 4], xmm0
movss dword [esp], xmm1
call fcn.005c45d0
fstp dword [esp + 0xd8]
movss xmm0, dword [esp + 0xd8]
add esp, 8
movss dword [esp + 0x10], xmm0
movss xmm0, dword [0x718824]
movss xmm1, dword [esp + 0xe8]
ucomiss xmm1, xmm0
lahf
test ah, 0x44
jp 0x5a8ca6
movss dword [esp + 0x50], xmm0
jmp 0x5a8ce2
movss xmm0, dword [esi + 0xcc]
sub esp, 8
movss dword [esp + 4], xmm0
movss dword [esp], xmm1
call fcn.005c45d0
fstp dword [esp + 0xf0]
movss xmm0, dword [esp + 0xf0]
add esp, 8
movss dword [esp + 0x50], xmm0
movss xmm0, dword [0x718824]
movss xmm1, dword [esp + 0x58]
ucomiss xmm1, xmm0
lahf
test ah, 0x44
jp 0x5a8cf8
mov byte [esp + 0x4c], 1
jmp 0x5a8d25
xorps xmm2, xmm2
ucomiss xmm1, xmm2
lahf
test ah, 0x44
jnp 0x5a8d25
mov edx, dword [esp + 0x4c]
movaps xmm0, xmm1
subss xmm0, dword [esi + 0xc4]
movzx edx, dl
mov eax, 1
comiss xmm0, xmm2
cmova edx, eax
mov dword [esp + 0x4c], edx
mov ecx, dword [ebp + 8]
movss dword [esi + 0xc4], xmm1
mov eax, dword [ecx]
mov eax, dword [eax + 0x2c]
mov edi, dword [eax + 0x14]
mov al, byte [esi + 0xc8]
mov dword [esp + 0xc8], edi
mov byte [esp + 0x67], al
test al, al
jne 0x5a8d56
push edi
push ecx
mov ecx, esi
call fcn.005aa520
movaps xmm0, xmmword [0x717f30]
movups xmmword [esp + 0x6c], xmm0
mov dword [esp + 0x68], edi
movaps xmm0, xmmword [0x71ac40]
movups xmmword [esp + 0x7c], xmm0
mov dword [esp + 0x8c], inet_addr
mov word [esp + 0x90], 0
mov dword [esp + 0x94], 0
mov dword [esp + 0x98], 0
mov dword [esp + 0x9c], inet_addr
mov edi, dword [edi + 0x1c]
lea ecx, [edi + 3]
and ecx, 0xfffffffc
mov dword [esp + 0x5c], ecx
jle 0x5a8dd3
push 0x30
push ecx
lea eax, [esp + 0x80]
push eax
push 0x7d8954
call fcn.00467b80
mov ecx, dword [esp + 0x6c]
add esp, 0x10
mov eax, dword [esp + 0x74]
and eax, 0x3fffffff
cmp eax, ecx
jge 0x5a8df9
push 0x30
push ecx
lea eax, [esp + 0x74]
push eax
push 0x7d8954
call fcn.00467b80
mov ecx, dword [esp + 0x6c]
add esp, 0x10
mov eax, dword [esp + 0x8c]
and eax, 0x3fffffff
cmp eax, ecx
jge 0x5a8e21
push 4
push ecx
lea eax, [esp + 0x8c]
push eax
push 0x7d8954
call fcn.00467b80
add esp, 0x10
mov ecx, dword [esp + 0x80]
and ecx, 0x3fffffff
cmp ecx, edi
jge 0x5a8e53
add ecx, ecx
mov eax, edi
cmp edi, ecx
push 0x30
cmovl eax, ecx
push eax
lea eax, [esp + 0x80]
push eax
push 0x7d8954
call fcn.00467b80
add esp, 0x10
mov ecx, dword [esp + 0x74]
and ecx, 0x3fffffff
mov dword [esp + 0x7c], edi
cmp ecx, edi
jge 0x5a8e83
add ecx, ecx
mov eax, edi
cmp edi, ecx
push 0x30
cmovl eax, ecx
push eax
lea eax, [esp + 0x74]
push eax
push 0x7d8954
call fcn.00467b80
add esp, 0x10
mov ecx, dword [esp + 0x8c]
and ecx, 0x3fffffff
mov dword [esp + 0x70], edi
cmp ecx, edi
jge 0x5a8eb9
add ecx, ecx
mov eax, edi
cmp edi, ecx
push 4
cmovl eax, ecx
push eax
lea eax, [esp + 0x8c]
push eax
push 0x7d8954
call fcn.00467b80
add esp, 0x10
mov eax, dword [esp + 0x68]
mov dword [esp + 0x88], edi
mov edi, dword [eax + 0x40]
mov eax, dword [esp + 0x9c]
and eax, 0x3fffffff
mov dword [esp + 0x5c], edi
lea ecx, [edi + 3]
and ecx, 0xfffffffc
cmp eax, ecx
jge 0x5a8ef9
push 4
push ecx
lea eax, [esp + 0x9c]
push eax
push 0x7d8954
call fcn.00467b80
add esp, 0x10
mov ecx, dword [esp + 0x9c]
and ecx, 0x3fffffff
cmp ecx, edi
jge 0x5a8f2b
add ecx, ecx
mov eax, edi
cmp edi, ecx
push 4
cmovl eax, ecx
push eax
lea eax, [esp + 0x9c]
push eax
push 0x7d8954
call fcn.00467b80
add esp, 0x10
mov edx, dword [esp + 0x98]
mov ecx, edi
mov eax, dword [esp + 0x94]
sub ecx, edx
lea edx, [eax + edx*4]
test ecx, ecx
jle 0x5a8f4e
xor eax, eax
mov edi, edx
rep stosd dword es:[edi], eax
mov edi, dword [esp + 0x5c]
lea ecx, [esp + 0x68]
mov dword [esp + 0x98], edi
call fcn.00580a40
mov edi, dword [ebp + 0xc]
push dword [eax]
push dword [esp + 0xcc]
push edi
call fcn.005df320
mov eax, dword [esi + 0x5c]
add esp, 0xc
cmp byte [esi + 0xb6], 0
movss xmm0, dword [eax + 0x80]
movss dword [esp + 0x58], xmm0
movss dword [esp + 0x5c], xmm0
je 0x5a901b
mov eax, dword [ebp + 8]
mov ecx, dword [edi]
movaps xmm6, xmmword [0x7195c0]
mov eax, dword [eax]
mov eax, dword [eax + 0x2c]
mov edx, dword [eax + 0x24]
movsx eax, word [ecx + 0x14]
movaps xmm2, xmmword [edx + 0x20]
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 0x5a902d
mov ecx, dword [ebp + 8]
call fcn.005c60d0
movaps xmm6, xmmword [0x7195c0]
movaps xmm7, xmmword [eax]
mov ecx, dword [edi]
movaps xmm2, xmm7
movaps xmm3, xmm7
movaps xmmword [esp + 0x100], xmm7
shufps xmm3, xmm7, 0xc9
movaps xmm1, xmm7
shufps xmm1, xmm7, 0xd2
movsx eax, word [ecx + 0x14]
push 0
movaps xmmword [esp + 0x174], xmm7
movaps xmm4, xmmword [eax + ecx + 0x10]
lea ecx, [esp + 0x6c]
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 + 0xa0]
shufps xmm2, xmm2, 0
mulps xmm2, xmm4
subps xmm3, xmm1
shufps xmm0, xmm0, 0
movaps xmmword [esp + 0x114], xmm0
mulps xmm3, xmm5
mulps xmm5, xmm5
addps xmm5, xmm6
mulps xmm5, xmm7
addps xmm5, xmm2
addps xmm3, xmm5
movaps xmmword [esp + 0x134], xmm3
call fcn.00580280
movaps xmm0, xmmword [esp + 0x130]
xor edi, edi
addps xmm0, xmm0
mulps xmm0, xmmword [esp + 0x110]
addps xmm0, xmmword [eax]
movaps xmmword [eax], xmm0
cmp dword [esi + 0x60], edi
jle 0x5a9141
xor edx, edx
nop
mov ecx, dword [esi + 0xb8]
inc edi
movss xmm0, dword [esi + 0xa0]
mov eax, dword [ecx + edx + 0x10]
addss xmm0, dword [eax + 0x6c]
movss dword [eax + 0x6c], xmm0
mov eax, dword [ecx + edx + 0x10]
movss xmm0, dword [esi + 0xa0]
addss xmm0, dword [eax + 0x70]
movss dword [eax + 0x70], xmm0
mov eax, dword [ecx + edx + 0x10]
add edx, 0x20
movss xmm0, dword [esi + 0xa0]
addss xmm0, dword [eax + 0x60]
movss dword [eax + 0x60], xmm0
cmp edi, dword [esi + 0x60]
jl 0x5a90f0
mov ecx, dword [esi + 0xbc]
movss xmm2, dword [esp + 0x58]
cmp ecx, 1
jle 0x5a918b
mov eax, dword [esi + 0x5c]
movss xmm1, dword [esp + 0x5c]
add eax, 0x120
dec ecx
movss xmm0, dword [eax]
comiss xmm1, xmm0
jbe 0x5a916d
movaps xmm1, xmm0
comiss xmm0, xmm2
jbe 0x5a917b
movss dword [esp + 0x58], xmm0
movaps xmm2, xmm0
add eax, 0xa0
sub ecx, 1
jne 0x5a9161
movss dword [esp + 0x5c], xmm1
movss xmm0, dword [esp + 0xec]
movss xmm1, dword [0x718824]
mov edx, dword [ebp + 0xc]
subss xmm1, xmm0
mulss xmm0, dword [esp + 0x5c]
mulss xmm1, xmm2
xorps xmm2, xmm2
addss xmm1, xmm0
movss xmm0, dword [esp + 0x50]
comiss xmm0, xmm2
movss dword [esi + 0x74], xmm1
jbe 0x5a91ec
mulss xmm1, xmm0
shufps xmm1, xmm1, 0
mulps xmm1, xmmword [esp + 0x170]
movaps xmmword [esi + 0x80], xmm1
mov eax, dword [edx]
movsx ecx, word [eax + 0x14]
add ecx, eax
movaps xmm0, xmmword [ecx]
addps xmm0, xmm1
movaps xmmword [ecx], xmm0
cmp dword [esi + 0x60], 2
mov edi, dword [ebp + 8]
jle 0x5a921e
cmp byte [esi + 0xc9], 0
je 0x5a921e
movss xmm0, dword [esp + 0xa0]
lea eax, [esp + 0x100]
push ecx
movss dword [esp], xmm0
mov ecx, esi
push edx
push eax
push edi
call fcn.005aaa80
cmp byte [esi + 0xb6], 0
je 0x5a92ba
mov eax, dword [edi]
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 xmm6, xmm4
mulps xmm3, xmm2
movaps xmm1, xmm4
shufps xmm6, 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 xmm6, xmm0
movaps xmm0, xmm2
shufps xmm0, xmm2, 0xc9
mulps xmm1, 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 + 0x170], xmm6
movaps xmmword [esp + 0x100], xmm6
xor edx, edx
mov dword [esp + 0x50], edx
cmp dword [esi + 0x60], edx
jle 0x5a9337
xor edi, edi
nop dword [eax + eax]
mov eax, dword [esi + 0x5c]
cmp byte [eax + edi + 0x90], 0
jne 0x5a9327
movsx ecx, word [eax + edi + 0x8c]
mov eax, dword [esp + 0x84]
test byte [eax + ecx*4], 2
jne 0x5a92fe
lea eax, [ecx + ecx*2]
shl eax, 4
add eax, dword [esp + 0x78]
jmp 0x5a930c
push ecx
lea ecx, [esp + 0x6c]
call fcn.00580e80
mov edx, dword [esp + 0x50]
mov ecx, dword [esi + 0x5c]
movaps xmm0, xmmword [eax]
add ecx, edi
movaps xmmword [ecx], xmm0
movaps xmm0, xmmword [eax + 0x10]
movaps xmmword [ecx + 0x10], xmm0
movaps xmm0, xmmword [eax + 0x20]
movaps xmmword [ecx + 0x20], xmm0
inc edx
add edi, 0xa0
mov dword [esp + 0x50], edx
cmp edx, dword [esi + 0x60]
jl 0x5a92d0
movss xmm0, dword [esp + 0x60]
lea eax, [esp + 0x100]
mov edi, dword [ebp + 0xc]
push ecx
movss dword [esp], xmm0
mov ecx, esi
push eax
lea eax, [esp + 0x70]
push eax
mov eax, dword [ebp + 8]
push edi
push eax
call fcn.005aa790
lea ecx, [esp + 0x190]
call fcn.006ffe40
cmp dword [esi + 0x60], 0
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x1f4], eax
mov eax, dword [edi]
movsx ecx, word [eax + 0x14]
movaps xmm0, xmmword [ecx + eax]
movaps xmmword [esp + 0x1c0], xmm0
movaps xmm0, xmmword [ecx + eax + 0x10]
movaps xmmword [esp + 0x1d0], xmm0
movaps xmm0, xmmword [ecx + eax + 0x20]
mov eax, dword [esp + 0x4c]
movaps xmmword [esp + 0x1e0], xmm0
movss xmm0, dword [esp + 0xb4]
movss dword [esp + 0x1fc], xmm0
movss xmm0, dword [esp + 0xb8]
movss dword [esp + 0x200], xmm0
movss xmm0, dword [esp + 0xc0]
movss dword [esp + 0x204], xmm0
movss xmm0, dword [esp + 0x30]
movss dword [esp + 0x208], xmm0
movss xmm0, dword [esp + 0x28]
movss dword [esp + 0x20c], xmm0
movss xmm0, dword [esp + 0x10]
mov byte [esp + 0x1f0], al
mov eax, dword [esi + 0xa4]
movss dword [esp + 0x1f8], xmm0
mov byte [esp + 0x218], 1
mov dword [esp + 0x214], eax
mov dword [esp + 0xc0], 0
jle 0x5aa449
xor edx, edx
xor ecx, ecx
mov dword [esp + 0xb4], edx
mov dword [esp + 0xb8], ecx
nop dword [eax]
mov edi, dword [esi + 0x5c]
add edi, ecx
mov ecx, dword [esi + 0xb8]
add ecx, edx
mov dword [esp + 0x4c], edi
mov dword [esp + 0x2c], ecx
movaps xmm0, xmmword [edi]
movaps xmmword [esp + 0x190], xmm0
movaps xmm0, xmmword [edi + 0x10]
movaps xmmword [esp + 0x1a0], xmm0
movaps xmm0, xmmword [edi + 0x20]
movaps xmmword [esp + 0x1b0], xmm0
mov eax, dword [ecx + 0x10]
movaps xmm0, xmmword [esp + 0x170]
movaps xmmword [eax + 0x40], xmm0
lea eax, [esp + 0x68]
mov ecx, dword [ecx + 0x10]
push eax
lea eax, [esp + 0xd4]
push eax
lea eax, [esp + 0x198]
push eax
call fcn.006fff30
movss xmm0, dword [esp + 0xe0]
movss dword [edi + 0x80], xmm0
mov al, byte [esp + 0xe4]
mov byte [edi + 0x8e], al
cmp byte [esp + 0xe4], 0
je 0x5a94ec
addss xmm0, dword [esi + 0xa0]
movss dword [edi + 0x80], xmm0
mov edx, dword [esp + 0x2c]
mov eax, dword [edx + 0x10]
movaps xmm1, xmmword [eax + 0x50]
mulps xmm1, xmmword [esp + 0x190]
movaps xmm0, xmm1
shufps xmm0, xmm1, 0x55
addss xmm0, xmm1
shufps xmm1, xmm1, 0xaa
addss xmm1, xmm0
movss xmm0, dword [edi + 0x68]
comiss xmm0, xmm1
movss xmm1, dword [esp + 0xa0]
xorps xmm0, xmm0
seta al
comiss xmm1, xmm0
mov byte [edi + 0x8f], al
mov byte [edi + 0x90], 0
jbe 0x5a95ff
movsx ecx, word [edi + 0x8c]
mov eax, dword [esp + 0x84]
test byte [eax + ecx*4], 2
jne 0x5a955f
lea eax, [ecx + ecx*2]
shl eax, 4
add eax, dword [esp + 0x78]
jmp 0x5a956d
push ecx
lea ecx, [esp + 0x6c]
call fcn.00580e80
mov edx, dword [esp + 0x2c]
movaps xmm0, xmmword [eax]
mov eax, dword [ebp + 0xc]
movaps xmmword [edx], xmm0
push edx
mov ecx, dword [eax]
movsx eax, word [ecx + 0x14]
add eax, ecx
mov ecx, edx
push eax
call fcn.0046eb90
mov edx, dword [esp + 0x2c]
movaps xmm3, xmmword [esp + 0x170]
movaps xmm1, xmm3
mov eax, dword [ebp + 0xc]
mulps xmm1, xmmword [edx]
movaps xmm2, xmmword [edx]
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 [edx], xmm2
mov ecx, dword [eax]
movsx eax, word [ecx + 0x14]
movaps xmm1, xmmword [eax + ecx]
mulps xmm1, xmm3
movaps xmm0, xmm1
shufps xmm0, xmm1, 0x55
addss xmm0, xmm1
shufps xmm1, xmm1, 0xaa
addss xmm1, xmm0
shufps xmm1, xmm1, 0
addss xmm1, dword [edi + 0x80]
shufps xmm1, xmm1, 0
mulps xmm1, xmm3
addps xmm1, xmm2
movaps xmmword [edx], xmm1
mov byte [esi + 0xc9], 1
cmp byte [esp + 0x67], 0
je 0x5a9bab
movsx edx, word [edi + 0x8c]
mov eax, dword [esp + 0x84]
mov dword [esp + 0x10], edx
lea esi, [edx + edx*2]
shl esi, 4
test byte [eax + edx*4], 1
je 0x5a986c
mov eax, dword [esp + 0x68]
mov ecx, dword [esp + 0x78]
mov dword [esp + 0x28], ecx
mov eax, dword [eax + 0xc]
movzx eax, word [eax + edx*2]
cmp ax, 0xffff
je 0x5a9841
mov edi, dword [esp + 0x84]
cwde
test byte [edi + eax*4], 2
jne 0x5a9661
lea eax, [eax + eax*2]
shl eax, 4
add eax, ecx
jmp 0x5a966f
push eax
lea ecx, [esp + 0x6c]
call fcn.00580e80
mov edx, dword [esp + 0x10]
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 ecx, dword [esp + 0x6c]
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 xmm4, xmmword [eax + 0x10]
movaps xmm1, xmmword [eax + 0x20]
movaps xmm0, xmm1
mov eax, dword [esp + 0x28]
unpckhps xmm0, xmmword [0x719330]
shufps xmm1, xmm0, 0xc4
mulps xmm6, xmm5
mulps xmm5, xmm5
xorps xmm4, xmmword [0x719d70]
movaps xmmword [esp + 0x130], xmm4
movaps xmm7, xmmword [esp + 0x130]
addps xmm5, xmmword [0x7195c0]
mulps xmm5, xmm2
rcpps xmm2, xmm1
addps xmm5, xmm3
movaps xmm0, xmm2
mulps xmm0, xmm1
addps xmm6, xmm5
movaps xmm5, xmm4
shufps xmm5, xmm4, 0xc9
mulps xmm0, xmm2
addps xmm2, xmm2
addps xmm6, xmm6
subps xmm2, xmm0
xorps xmm6, xmmword [0x719130]
movaps xmmword [esp + 0x110], xmm6
movaps xmm6, xmm4
andps xmm2, xmmword [0x719150]
movaps xmmword [esp + 0x180], xmm2
movaps xmm2, xmmword [esi + eax]
movaps xmm3, xmm2
shufps xmm6, xmm4, 0xff
mulps xmm3, xmm4
movaps xmm1, xmm2
shufps xmm4, xmmword [esp + 0x130], 0xd2
shufps xmm1, xmm2, 0xd2
mulps xmm1, xmm5
movaps xmm0, xmm3
shufps xmm0, xmm3, 0x55
addss xmm0, xmm3
shufps xmm3, xmm3, 0xaa
addss xmm3, xmm0
movaps xmm0, xmm2
shufps xmm0, xmm2, 0xc9
mulps xmm0, xmm4
shufps xmm3, xmm3, 0
mulps xmm3, xmm7
subps xmm1, xmm0
movaps xmm0, xmm6
mulps xmm0, xmm6
mulps xmm1, xmm6
addps xmm0, xmmword [0x7195c0]
mulps xmm0, xmm2
addps xmm0, xmm3
addps xmm1, xmm0
addps xmm1, xmm1
addps xmm1, xmmword [esp + 0x110]
shufps xmm6, xmm6, 0
mov edi, dword [esp + 0x4c]
movaps xmmword [esi + ecx], xmm1
movaps xmm3, xmmword [esi + eax + 0x10]
movaps xmm0, xmm3
movaps xmm2, xmm3
shufps xmm0, xmm3, 0xc9
movaps xmm1, xmm3
mulps xmm0, xmm4
shufps xmm2, xmm3, 0xd2
mulps xmm2, xmm5
shufps xmm1, xmm3, 0xff
shufps xmm1, xmm1, 0
subps xmm2, xmm0
movaps xmm0, xmm3
mulps xmm0, xmm6
addps xmm2, xmm0
movaps xmm0, xmm7
mulps xmm0, xmm1
movaps xmm1, xmm3
mulps xmm1, xmm7
mulps xmm3, xmm7
addps xmm2, xmm0
movaps xmm0, xmm1
shufps xmm0, xmm1, 0x55
addss xmm0, xmm1
shufps xmm1, xmm1, 0xaa
addss xmm1, xmm0
movaps xmm0, xmm2
shufps xmm1, xmm1, 0
subps xmm3, xmm1
unpckhps xmm0, xmm3
shufps xmm2, xmm0, 0xc4
movaps xmmword [esi + ecx + 0x10], xmm2
movaps xmm0, xmmword [esi + eax + 0x20]
mulps xmm0, xmmword [esp + 0x180]
movaps xmmword [esi + ecx + 0x20], xmm0
jmp 0x5a9861
mov eax, dword [esp + 0x6c]
movaps xmm0, xmmword [esi + ecx]
movaps xmmword [esi + eax], xmm0
movaps xmm0, xmmword [esi + ecx + 0x10]
movaps xmmword [esi + eax + 0x10], xmm0
movaps xmm0, xmmword [esi + ecx + 0x20]
movaps xmmword [esi + eax + 0x20], xmm0
mov eax, dword [esp + 0x84]
and dword [eax + edx*4], 0xfffffffe
add esi, dword [esp + 0x6c]
movss xmm0, dword [esp + 0xc4]
push ecx
movss dword [esp], xmm0
lea ecx, [esp + 0x224]
lea eax, [esi + 0x10]
push eax
lea eax, [edi + 0x30]
push eax
call fcn.00477d40
mov eax, dword [esp + 0x68]
movsx edx, word [edi + 0x8c]
movaps xmm0, xmmword [esi]
movaps xmm2, xmmword [esi + 0x20]
mov ecx, dword [eax + 0x1c]
mov eax, dword [esp + 0x84]
lea esi, [edx + 1]
movaps xmm1, xmmword [esp + 0x220]
mov dword [esp + 0x2c], edx
mov dword [esp + 0x30], ecx
or dword [eax + edx*4], 4
mov edx, esi
cmp edx, ecx
movaps xmmword [esp + 0x110], xmm0
mov ecx, dword [esp + 0x84]
movaps xmmword [esp + 0x130], xmm1
movaps xmmword [esp + 0x120], xmm2
mov dword [esp + 0x50], esi
mov dword [esp + 0x28], edx
jge 0x5a9b56
lea edi, [edx + edx*2]
shl edi, 4
nop dword [eax]
mov eax, dword [esp + 0x68]
mov eax, dword [eax + 0xc]
movzx eax, word [eax + edx*2]
mov dword [esp + 0x60], eax
movzx eax, ax
cmp ax, 0xffff
je 0x5a9b24
cwde
test byte [ecx + eax*4], 4
je 0x5a9b24
test byte [ecx + edx*4], 1
je 0x5a9b11
mov eax, dword [esp + 0x60]
mov esi, dword [esp + 0x78]
movzx eax, ax
mov dword [esp + 0x10], esi
cmp ax, 0xffff
je 0x5a9adf
cwde
test byte [ecx + eax*4], 2
jne 0x5a995b
lea eax, [eax + eax*2]
shl eax, 4
add eax, esi
jmp 0x5a9965
push eax
lea ecx, [esp + 0x6c]
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
mov esi, dword [esp + 0x6c]
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 + 0x180], xmm6
andps xmm2, xmmword [0x719150]
movaps xmmword [esp + 0x140], xmm6
movaps xmm6, xmmword [eax + 0x10]
xorps xmm6, xmmword [0x719d70]
mov eax, dword [esp + 0x10]
movaps xmm5, xmm6
movaps xmmword [esp + 0x160], xmm2
shufps xmm5, xmm6, 0xff
movaps xmmword [esp + 0x150], xmm6
movaps xmm3, xmmword [edi + 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 + 0x180]
add eax, 0x10
lea ecx, [esi + 0x10]
add eax, edi
add ecx, edi
push eax
lea eax, [esp + 0x154]
push eax
movaps xmmword [edi + esi], xmm2
call fcn.004782a0
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x28]
movaps xmm0, xmmword [edi + eax + 0x20]
mulps xmm0, xmmword [esp + 0x160]
movaps xmmword [edi + esi + 0x20], xmm0
jmp 0x5a9aff
mov eax, dword [esp + 0x6c]
movaps xmm0, xmmword [edi + esi]
movaps xmmword [edi + eax], xmm0
movaps xmm0, xmmword [edi + esi + 0x10]
movaps xmmword [edi + eax + 0x10], xmm0
movaps xmm0, xmmword [edi + esi + 0x20]
movaps xmmword [edi + eax + 0x20], xmm0
mov eax, dword [esp + 0x84]
and dword [eax + edx*4], 0xfffffffe
mov ecx, dword [esp + 0x84]
or dword [ecx + edx*4], 4
mov ecx, dword [esp + 0x84]
mov byte [esp + 0x90], 0
inc edx
add edi, 0x30
mov dword [esp + 0x28], edx
cmp edx, dword [esp + 0x30]
jl 0x5a9900
movaps xmm0, xmmword [esp + 0x110]
movaps xmm1, xmmword [esp + 0x130]
movaps xmm2, xmmword [esp + 0x120]
mov esi, dword [esp + 0x50]
mov edi, dword [esp + 0x4c]
mov edx, dword [esp + 0x30]
cmp esi, edx
jge 0x5a9b7c
nop
mov eax, dword [ecx + esi*4]
test al, 4
je 0x5a9b77
and eax, 0xfffffffb
or eax, 2
mov dword [ecx + esi*4], eax
mov ecx, dword [esp + 0x84]
inc esi
cmp esi, edx
jl 0x5a9b60
mov ecx, dword [esp + 0x2c]
lea eax, [ecx + ecx*2]
shl eax, 4
add eax, dword [esp + 0x6c]
movaps xmmword [eax], xmm0
movaps xmmword [eax + 0x10], xmm1
movaps xmmword [eax + 0x20], xmm2
mov eax, dword [esp + 0x84]
mov dword [eax + ecx*4], 2
mov byte [esp + 0x90], 0
movsx edx, word [edi + 0x8c]
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x60], edx
lea ecx, [edx + edx*2]
mov eax, dword [eax + 0x24]
add eax, 0x10
shl ecx, 4
add eax, ecx
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x84]
test byte [eax + edx*4], 1
jne 0x5a9beb
lea esi, [edx + edx*2]
shl esi, 4
add esi, dword [esp + 0x6c]
jmp 0x5a9de7
mov eax, dword [esp + 0x68]
lea ecx, [edx + edx*2]
mov esi, dword [esp + 0x78]
shl ecx, 4
mov dword [esp + 0x10], ecx
mov eax, dword [eax + 0xc]
mov dword [esp + 0x28], esi
movzx eax, word [eax + edx*2]
cmp ax, 0xffff
je 0x5a9db6
mov edx, dword [esp + 0x84]
cwde
test byte [edx + eax*4], 2
jne 0x5a9c2a
lea eax, [eax + eax*2]
shl eax, 4
add eax, esi
jmp 0x5a9c38
push eax
lea ecx, [esp + 0x6c]
call fcn.00580e80
mov ecx, dword [esp + 0x10]
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 + 0x6c]
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 + 0x120], xmm6
andps xmm2, xmmword [0x719150]
movaps xmmword [esp + 0x140], xmm6
movaps xmm6, xmmword [0x719d70]
xorps xmm6, xmmword [eax + 0x10]
mov eax, dword [esp + 0x28]
movaps xmm5, xmm6
movaps xmmword [esp + 0x160], xmm2
shufps xmm5, xmm6, 0xff
movaps xmmword [esp + 0x150], xmm6
movaps xmm3, xmmword [ecx + 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 + 0x120]
add eax, 0x10
add eax, ecx
push eax
lea eax, [esp + 0x154]
movaps xmmword [ecx + esi], xmm2
add ecx, 0x10
push eax
add ecx, esi
call fcn.004782a0
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x28]
mov edx, dword [esp + 0x60]
movaps xmm0, xmmword [ecx + eax + 0x20]
mulps xmm0, xmmword [esp + 0x160]
movaps xmmword [ecx + esi + 0x20], xmm0
jmp 0x5a9dd6
mov eax, dword [esp + 0x6c]
movaps xmm0, xmmword [ecx + esi]
movaps xmmword [ecx + eax], xmm0
movaps xmm0, xmmword [ecx + esi + 0x10]
movaps xmmword [ecx + eax + 0x10], xmm0
movaps xmm0, xmmword [ecx + esi + 0x20]
movaps xmmword [ecx + eax + 0x20], xmm0
mov eax, dword [esp + 0x84]
and dword [eax + edx*4], 0xfffffffe
mov esi, dword [esp + 0x6c]
add esi, ecx
movss xmm0, dword [edi + 0x84]
lea eax, [esi + 0x10]
mulss xmm0, dword [0x7a3b34]
lea ecx, [esp + 0x100]
push eax
push dword [esp + 0x34]
movss dword [esp + 0x18], xmm0
call fcn.004fd6e0
movss xmm1, dword [esp + 0x10c]
andps xmm1, xmmword [0x719120]
movaps xmm0, xmm1
andps xmm0, xmmword [0x719120]
comiss xmm0, dword [0x718824]
jb 0x5a9e46
xorps xmm0, xmm0
comiss xmm1, xmm0
ja 0x5a9e4e
movss xmm0, dword [0x719d84]
jmp 0x5a9e4e
movaps xmm0, xmm1
call fcn.0062b294
mulss xmm0, dword [0x719724]
comiss xmm0, dword [esp + 0x10]
jbe 0x5aa1e9
movaps xmm1, xmmword [esp + 0x100]
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 0x5aa1e9
lea eax, [esp + 0x230]
push eax
lea ecx, [esp + 0x104]
call fcn.0058b020
movss xmm0, dword [esp + 0x10]
lea eax, [esp + 0x230]
push ecx
movss dword [esp], xmm0
lea ecx, [esp + 0x104]
push eax
call fcn.004776d0
lea eax, [esp + 0x100]
push eax
push dword [esp + 0x34]
lea ecx, [esp + 0x248]
call fcn.004782a0
mov eax, dword [esp + 0x68]
movsx edx, word [edi + 0x8c]
movaps xmm0, xmmword [esi]
movaps xmm1, xmmword [esi + 0x20]
mov ecx, dword [eax + 0x1c]
mov eax, dword [esp + 0x84]
lea esi, [edx + 1]
mov dword [esp + 0x2c], edx
mov dword [esp + 0x30], ecx
movaps xmmword [esp + 0x180], xmm0
or dword [eax + edx*4], 4
mov edx, esi
cmp edx, ecx
movaps xmmword [esp + 0x110], xmm1
mov ecx, dword [esp + 0x84]
mov dword [esp + 0x50], esi
mov dword [esp + 0x28], edx
jge 0x5aa18e
lea edi, [edx + edx*2]
shl edi, 4
nop word [eax + eax]
mov eax, dword [esp + 0x68]
mov eax, dword [eax + 0xc]
movzx eax, word [eax + edx*2]
mov dword [esp + 0x60], eax
movzx eax, ax
cmp ax, 0xffff
je 0x5aa164
cwde
test byte [ecx + eax*4], 4
je 0x5aa164
test byte [ecx + edx*4], 1
je 0x5aa151
mov eax, dword [esp + 0x60]
mov esi, dword [esp + 0x78]
movzx eax, ax
mov dword [esp + 0x10], esi
cmp ax, 0xffff
je 0x5aa11f
cwde
test byte [ecx + eax*4], 2
jne 0x5a9f9b
lea eax, [eax + eax*2]
shl eax, 4
add eax, esi
jmp 0x5a9fa5
push eax
lea ecx, [esp + 0x6c]
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
mov esi, dword [esp + 0x6c]
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 + 0x120], xmm6
andps xmm2, xmmword [0x719150]
movaps xmmword [esp + 0x140], xmm6
movaps xmm6, xmmword [0x719d70]
xorps xmm6, xmmword [eax + 0x10]
mov eax, dword [esp + 0x10]
movaps xmm5, xmm6
movaps xmmword [esp + 0x160], xmm2
shufps xmm5, xmm6, 0xff
movaps xmmword [esp + 0x150], xmm6
movaps xmm3, xmmword [edi + 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 + 0x120]
add eax, 0x10
lea ecx, [esi + 0x10]
add eax, edi
add ecx, edi
push eax
lea eax, [esp + 0x154]
push eax
movaps xmmword [edi + esi], xmm2
call fcn.004782a0
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x28]
movaps xmm0, xmmword [edi + eax + 0x20]
mulps xmm0, xmmword [esp + 0x160]
movaps xmmword [edi + esi + 0x20], xmm0
jmp 0x5aa13f
mov eax, dword [esp + 0x6c]
movaps xmm0, xmmword [edi + esi]
movaps xmmword [edi + eax], xmm0
movaps xmm0, xmmword [edi + esi + 0x10]
movaps xmmword [edi + eax + 0x10], xmm0
movaps xmm0, xmmword [edi + esi + 0x20]
movaps xmmword [edi + eax + 0x20], xmm0
mov eax, dword [esp + 0x84]
and dword [eax + edx*4], 0xfffffffe
mov ecx, dword [esp + 0x84]
or dword [ecx + edx*4], 4
mov ecx, dword [esp + 0x84]
mov byte [esp + 0x90], 0
inc edx
add edi, 0x30
mov dword [esp + 0x28], edx
cmp edx, dword [esp + 0x30]
jl 0x5a9f40
movaps xmm0, xmmword [esp + 0x180]
movaps xmm1, xmmword [esp + 0x110]
mov esi, dword [esp + 0x50]
mov edi, dword [esp + 0x4c]
mov edx, dword [esp + 0x30]
cmp esi, edx
jge 0x5aa1b2
mov eax, dword [ecx + esi*4]
test al, 4
je 0x5aa1ad
and eax, 0xfffffffb
or eax, 2
mov dword [ecx + esi*4], eax
mov ecx, dword [esp + 0x84]
inc esi
cmp esi, edx
jl 0x5aa196
mov ecx, dword [esp + 0x2c]
lea eax, [ecx + ecx*2]
shl eax, 4
add eax, dword [esp + 0x6c]
movaps xmmword [eax], xmm0
movaps xmm0, xmmword [esp + 0x240]
movaps xmmword [eax + 0x10], xmm0
movaps xmmword [eax + 0x20], xmm1
mov eax, dword [esp + 0x84]
mov dword [eax + ecx*4], 2
mov byte [esp + 0x90], 0
movsx ecx, word [edi + 0x8c]
mov esi, dword [esp + 0x84]
mov dword [esp + 0x28], ecx
test byte [esi + ecx*4], 1
jne 0x5aa210
lea eax, [ecx + ecx*2]
shl eax, 4
add eax, dword [esp + 0x6c]
jmp 0x5aa3fd
mov eax, dword [esp + 0x68]
lea edi, [ecx + ecx*2]
mov edx, dword [esp + 0x78]
shl edi, 4
mov dword [esp + 0x10], edx
mov eax, dword [eax + 0xc]
movzx eax, word [eax + ecx*2]
cmp ax, 0xffff
je 0x5aa3c8
cwde
test byte [esi + eax*4], 2
jne 0x5aa244
lea eax, [eax + eax*2]
shl eax, 4
add eax, edx
jmp 0x5aa252
push eax
lea ecx, [esp + 0x6c]
call fcn.00580e80
mov edx, dword [esp + 0x10]
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 + 0x6c]
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 + 0x120], xmm6
andps xmm2, xmmword [0x719150]
movaps xmmword [esp + 0x140], xmm6
movaps xmm6, xmmword [0x719d70]
xorps xmm6, xmmword [eax + 0x10]
mulps xmm4, xmm6
movaps xmm5, xmm6
movaps xmmword [esp + 0x160], xmm2
movaps xmm2, xmm3
shufps xmm2, xmm3, 0xd2
shufps xmm5, xmm6, 0xff
movaps xmm0, xmm4
movaps xmmword [esp + 0x150], 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 + 0x120]
lea eax, [edx + 0x10]
movaps xmmword [edi + esi], xmm2
add eax, edi
lea ecx, [esi + 0x10]
push eax
lea eax, [esp + 0x154]
add ecx, edi
push eax
call fcn.004782a0
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x28]
movaps xmm0, xmmword [edi + eax + 0x20]
mulps xmm0, xmmword [esp + 0x160]
movaps xmmword [edi + esi + 0x20], xmm0
jmp 0x5aa3e8
mov eax, dword [esp + 0x6c]
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 + 0x84]
and dword [eax + ecx*4], 0xfffffffe
mov eax, dword [esp + 0x6c]
add eax, edi
mov edi, dword [esp + 0x4c]
movaps xmm0, xmmword [eax + 0x10]
mov eax, dword [esp + 0xc0]
mov esi, dword [esp + 0xcc]
inc eax
mov ecx, dword [esp + 0xb8]
mov edx, dword [esp + 0xb4]
add ecx, 0xa0
add edx, 0x20
movaps xmmword [edi + 0x30], xmm0
mov dword [esp + 0xc0], eax
mov dword [esp + 0xb8], ecx
mov dword [esp + 0xb4], edx
cmp eax, dword [esi + 0x60]
jl 0x5a9450
xor edx, edx
cmp dword [esi + 0x60], edx
jle 0x5aa4a3
xor edi, edi
mov ecx, dword [esi + 0xb8]
inc edx
mov eax, dword [ecx + edi + 0x10]
movss xmm0, dword [eax + 0x6c]
subss xmm0, dword [esi + 0xa0]
movss dword [eax + 0x6c], xmm0
mov eax, dword [ecx + edi + 0x10]
movss xmm0, dword [eax + 0x70]
subss xmm0, dword [esi + 0xa0]
movss dword [eax + 0x70], xmm0
mov eax, dword [ecx + edi + 0x10]
add edi, 0x20
movss xmm0, dword [eax + 0x60]
subss xmm0, dword [esi + 0xa0]
movss dword [eax + 0x60], xmm0
cmp edx, dword [esi + 0x60]
jl 0x5aa452
lea ecx, [esp + 0x68]
call fcn.0057fe50
mov ecx, dword [esp + 0xb0]
mov edi, dword [ebp + 0xc]
lea edx, [ecx + ecx*2]
mov esi, dword [edi]
shl edx, 4
push edx
push dword [eax]
movsx eax, word [esi + 0x34]
add eax, esi
push eax
call fcn.0045d810
add esp, 0xc
mov ecx, edi
call fcn.005dd090
push dword [0x884c50]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov edi, eax
mov esi, dword [edi + 4]
cmp esi, dword [edi + 0xc]
jae 0x5aa50c
mov dword [esi], 0x77f5ec
rdtsc
mov dword [esp + 0xcc], eax
mov ecx, dword [esp + 0xcc]
lea eax, [esi + 0xc]
mov dword [esi + 4], ecx
mov dword [edi + 4], eax
lea ecx, [esp + 0x68]
call fcn.005ac3a0
pop edi
pop esi
mov esp, ebp
pop ebp
ret 8