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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x128
push esi
push edi
push dword [0x884c50]
mov edi, ecx
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov dword [esp + 0x28], eax
mov esi, dword [eax + 4]
cmp esi, dword [eax + 0xc]
jae 0x5faef5
mov dword [esi], 0x7b2e80
rdtsc
mov dword [esp + 0x18], eax
mov ecx, dword [esp + 0x18]
lea eax, [esi + 0xc]
mov dword [esi + 4], ecx
mov ecx, dword [esp + 0x28]
mov dword [ecx + 4], eax
movss xmm1, dword [edi + 0x44]
ucomiss xmm1, dword [0x718814]
movss xmm2, dword [0x718824]
movss dword [esp + 0x2c], xmm2
lahf
test ah, 0x44
jnp 0x5faf2f
movss xmm0, dword [edi + 0x58]
divss xmm0, xmm1
comiss xmm0, xmm2
movss dword [esp + 0x2c], xmm0
jbe 0x5faf2f
movss dword [esp + 0x2c], xmm2
mov eax, dword [ebp + 8]
mov eax, dword [eax]
mov ecx, dword [eax + 0x1c]
mov esi, dword [eax + 0x2c]
mov dword [esp + 0x18], esi
test ecx, ecx
jne 0x5faf46
xor eax, eax
jmp 0x5faf4b
call fcn.005cca00
mov ecx, dword [esi + 0x14]
push dword [0x884adc]
mov dword [esp + 0x2c], ecx
mov ecx, dword [eax + 0x2c]
mov dword [esp + 0x18], eax
mov esi, dword [ecx + 0x1c]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov edx, eax
lea ecx, [esi + esi*2]
shl ecx, 4
add ecx, 0x7f
and ecx, 0xffffff80
mov eax, dword [edx + 0xc]
mov dword [esp + 0x1c], eax
add eax, ecx
mov dword [esp + 0x3c], ecx
cmp ecx, dword [edx + 8]
jg 0x5faf92
cmp eax, dword [edx + 0x10]
ja 0x5faf92
mov dword [edx + 0xc], eax
jmp 0x5faf9e
push ecx
mov ecx, edx
call fcn.0046a3c0
mov dword [esp + 0x1c], eax
mov ecx, dword [esp + 0x28]
push dword [0x884adc]
mov esi, dword [ecx + 0x1c]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov edx, eax
lea eax, [esi + esi*2]
shl eax, 4
add eax, 0x7f
and eax, 0xffffff80
mov ecx, dword [edx + 0xc]
mov dword [esp + 0x20], ecx
add ecx, eax
mov dword [esp + 0x5c], eax
cmp eax, dword [edx + 8]
jg 0x5fafdb
cmp ecx, dword [edx + 0x10]
ja 0x5fafdb
mov dword [edx + 0xc], ecx
jmp 0x5fafe7
push eax
mov ecx, edx
call fcn.0046a3c0
mov dword [esp + 0x20], eax
mov ecx, dword [ebp + 0xc]
mov esi, dword [esp + 0x1c]
mov ecx, dword [ecx]
movsx edx, word [ecx + 0x14]
add edx, ecx
mov ecx, dword [esp + 0x14]
push edx
push esi
call fcn.0058a320
push dword [esp + 0x20]
push dword [esp + 0x2c]
push dword [ebp + 0xc]
call fcn.005df220
push 2
push esi
mov esi, dword [esp + 0x28]
mov eax, dword [esi + 0x2c]
push dword [eax + 0x24]
mov eax, dword [esp + 0x30]
push dword [esp + 0x38]
push dword [eax + 0x1c]
call fcn.00569220
mov eax, dword [esi + 0x2c]
add esp, 0x20
push dword [0x884adc]
mov esi, dword [eax + 0x1c]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov ecx, eax
lea eax, [esi + esi*2]
shl eax, 4
add eax, 0x7f
and eax, 0xffffff80
mov edx, dword [ecx + 0xc]
mov dword [esp + 0x58], eax
mov dword [esp + 0x24], edx
lea esi, [eax + edx]
cmp eax, dword [ecx + 8]
jg 0x5fb06e
cmp esi, dword [ecx + 0x10]
ja 0x5fb06e
mov dword [ecx + 0xc], esi
jmp 0x5fb07a
push eax
call fcn.0046a3c0
mov edx, eax
mov dword [esp + 0x24], eax
mov ecx, dword [esp + 0x14]
mov esi, dword [esp + 0x1c]
push edx
push esi
mov ecx, dword [ecx + 0x2c]
push dword [ecx + 0xc]
push dword [ecx + 0x1c]
call fcn.0057e3c0
add esp, 0xc
mov eax, esp
mov byte [eax], 0
mov eax, dword [ebp + 0xc]
movss xmm0, dword [edi + 0x3c]
mov eax, dword [eax]
movsx ecx, word [eax + 0x14]
add ecx, eax
lea eax, [esp + 0xd4]
push eax
movsx eax, word [edi + 0x38]
push ecx
movss dword [esp], xmm0
push eax
movsx eax, word [edi + 0x36]
push eax
push ecx
push esi
push dword [esp + 0x30]
call fcn.00606db0
mov edx, dword [ebp + 0xc]
xorps xmm0, xmm0
movss xmm6, dword [edi + 0x48]
add esp, 0x20
cmp dword [edi + 0x50], 0
unpcklps xmm6, xmm0
mov ecx, dword [edx]
unpcklps xmm6, xmm0
mov dword [esp + 0x30], 0
movsx eax, word [ecx + 0x14]
movaps xmm4, xmmword [eax + ecx + 0x10]
movaps xmm3, xmm4
mov eax, dword [edi + 0x40]
mulps xmm3, xmm6
movaps xmm2, xmm4
shufps xmm2, 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, xmm6
shufps xmm0, xmm6, 0xd2
mulps xmm2, xmm0
movaps xmm0, xmm6
shufps xmm0, xmm6, 0xc9
mulps xmm1, 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 [esp + 0xd0]
movaps xmmword [esp + 0xe0], xmm2
movaps xmmword [esp + 0xd0], xmm2
mov dword [esp + eax*4 + 0xe0], 0
jle 0x5fb66d
nop dword [eax]
mov eax, dword [edx]
movsx ecx, word [eax + 0x14]
add ecx, eax
lea eax, [esp + 0xf0]
push eax
push ecx
push esi
push dword [esp + 0x20]
call fcn.00606b20
mov eax, dword [edi + 0x40]
mov ecx, dword [esp + 0x40]
fstp dword [esp + 0x44]
mov dword [esp + eax*4 + 0x70], 0
mov eax, dword [edi + 0x4c]
movsx esi, word [eax + ecx*8]
movss xmm0, dword [eax + ecx*8 + 4]
mov eax, dword [ebp + 0xc]
mulss xmm0, dword [esp + 0x3c]
mov eax, dword [eax]
movss dword [esp + 0x60], xmm0
movsx ecx, word [eax + 0x14]
add ecx, eax
lea eax, [esp + 0xb0]
push eax
push ecx
push dword [esp + 0x34]
push dword [esp + 0x30]
push esi
call fcn.00606bb0
movss xmm3, dword [esp + 0x58]
lea ecx, [esp + 0x124]
shufps xmm3, xmm3, 0
add esp, 0x24
fstp dword [esp + 0x38]
movss xmm1, dword [esp + 0x38]
movaps xmm0, xmm3
mulps xmm0, xmmword [esp + 0xf0]
mov eax, dword [edi + 0x40]
shufps xmm1, xmm1, 0
mulps xmm1, xmmword [esp + 0xa0]
push ecx
mulps xmm3, xmmword [esp + 0xe4]
lea ecx, [esp + 0x114]
mov dword [esp + eax*4 + 0x94], 0
subps xmm0, xmm1
movaps xmmword [esp + 0x44], xmm0
movss xmm0, dword [0x718824]
divss xmm0, dword [esp + 0x3c]
mov dword [esp + eax*4 + 0x44], 0
lea eax, [esi + esi*2]
mov esi, dword [esp + 0x20]
shl eax, 4
mov dword [esp + 0x58], eax
add eax, esi
push eax
mov dword [esp + 0x3c], eax
subps xmm3, xmmword [esp + 0x48]
shufps xmm0, xmm0, 0
mulps xmm3, xmm0
xorps xmm0, xmm0
movaps xmmword [esp + 0x108], xmm0
movaps xmmword [esp + 0x88], xmm3
call fcn.0046eb90
mov eax, dword [ebp + 0xc]
mov ecx, dword [eax]
lea eax, [esp + 0x110]
push eax
movsx eax, word [ecx + 0x14]
add eax, ecx
lea ecx, [esp + 0xb4]
push eax
call fcn.0046eb90
mov eax, dword [edi + 0x40]
movaps xmm2, xmmword [esp + 0xb0]
movaps xmm3, xmmword [esp + 0x80]
movaps xmmword [esp + 0x40], xmm2
movaps xmm1, xmm3
mov dword [esp + eax*4 + 0x40], 0
subps xmm1, xmmword [esp + 0x40]
mulps xmm1, xmm1
movaps xmm0, xmm1
movaps xmm4, xmmword [esp + 0xa0]
xorps xmm6, xmm6
shufps xmm0, xmm1, 0x55
addss xmm0, xmm1
shufps xmm1, xmm1, 0xaa
addss xmm1, xmm0
movaps xmm0, xmm4
subps xmm0, xmm2
sqrtss xmm1, xmm1
movaps xmm5, xmm0
movaps xmmword [esp + 0x90], xmm0
mulps xmm5, xmm0
mulss xmm1, xmm1
movaps xmm0, xmm5
movaps xmm2, xmm5
shufps xmm0, xmm5, 0x55
addss xmm0, xmm5
shufps xmm2, xmm5, 0xaa
addss xmm2, xmm0
sqrtss xmm2, xmm2
shufps xmm2, xmm2, 0
mulss xmm2, xmm2
subss xmm2, xmm1
movss xmm1, dword [esp + eax*4 + 0xb0]
comiss xmm2, xmm6
jbe 0x5fb379
comiss xmm1, dword [esp + eax*4 + 0xa0]
xorps xmm0, xmm0
sqrtss xmm0, xmm2
jbe 0x5fb373
subss xmm1, xmm0
jmp 0x5fb383
addss xmm1, xmm0
jmp 0x5fb383
cmp byte [edi + 0x2c], 0
jne 0x5fb66a
movaps xmmword [esp + 0x40], xmm3
movss dword [esp + eax*4 + 0x40], xmm1
movaps xmm7, xmmword [esp + 0x40]
movaps xmm1, xmm7
subps xmm1, xmm4
mulps xmm1, xmm1
movaps xmm0, xmm1
shufps xmm0, xmm1, 0x55
addss xmm0, xmm1
shufps xmm1, xmm1, 0xaa
addss xmm1, xmm0
movss xmm0, dword [edi + 0x30]
sqrtss xmm1, xmm1
comiss xmm0, xmm1
ja 0x5fb66a
subps xmm7, xmmword [esp + 0xb0]
movss xmm4, dword [0x719764]
movaps xmm1, xmm6
movaps xmmword [esp + 0x40], xmm1
push ecx
movaps xmm3, xmm7
mulps xmm3, xmm7
movaps xmm0, xmm3
shufps xmm0, xmm3, 0x55
addss xmm0, xmm3
shufps xmm3, xmm3, 0xaa
addss xmm3, xmm0
movaps xmm0, xmm4
movss xmm4, dword [0x719760]
movaps xmm6, xmm4
movaps xmmword [esp + 0x84], xmm0
movaps xmmword [esp + 0xc4], xmm6
shufps xmm3, xmm3, 0
movaps xmm2, xmm3
movaps xmm4, xmm3
rsqrtss xmm2, xmm2
mulss xmm3, xmm2
cmpeqss xmm4, xmm1
movaps xmm1, xmm0
movaps xmm0, xmm6
mulss xmm0, xmm2
mulss xmm3, xmm2
subss xmm1, xmm3
mulss xmm0, xmm1
movaps xmm1, xmmword [esp + 0x84]
andnps xmm4, xmm0
movaps xmm0, xmm5
shufps xmm0, xmm5, 0x55
addss xmm0, xmm5
shufps xmm4, xmm4, 0
shufps xmm5, xmm5, 0xaa
mulps xmm4, xmm7
addss xmm5, xmm0
movaps xmm0, xmm6
movaps xmmword [esp + 0x64], xmm4
shufps xmm5, xmm5, 0
movaps xmm2, xmm5
movaps xmm3, xmm5
cmpeqss xmm3, dword [esp + 0x44]
rsqrtss xmm2, xmm2
mulss xmm5, xmm2
mulss xmm0, xmm2
mulss xmm5, xmm2
subss xmm1, xmm5
mulss xmm0, xmm1
andnps xmm3, xmm0
shufps xmm3, xmm3, 0
mulps xmm3, xmmword [esp + 0x94]
movaps xmm1, xmm3
movaps xmmword [esp + 0x94], xmm3
mulps xmm1, xmm4
movaps xmm0, xmm1
shufps xmm0, xmm1, 0x55
addss xmm0, xmm1
shufps xmm1, xmm1, 0xaa
addss xmm1, xmm0
movss dword [esp], xmm1
call fcn.005d82a0
movss xmm1, dword [0x7b2e94]
add esp, 4
fstp dword [esp + 0x38]
movss xmm5, dword [esp + 0x38]
movaps xmm0, xmm5
andps xmm0, xmmword [0x719120]
comiss xmm1, xmm0
ja 0x5fb66a
movaps xmm1, xmmword [esp + 0x90]
lea eax, [esp + 0xc0]
movaps xmm2, xmmword [esp + 0x60]
movaps xmm3, xmm1
movaps xmm0, xmm2
shufps xmm3, xmm1, 0xc9
shufps xmm0, xmm2, 0xd2
shufps xmm2, xmm2, 0xc9
shufps xmm1, xmm1, 0xd2
mulps xmm1, xmm2
push ecx
mulps xmm3, xmm0
lea ecx, [esp + 0x124]
movaps xmm4, xmmword [esp + 0x84]
mulss xmm5, dword [esp + 0x54]
subps xmm3, xmm1
movss dword [esp], xmm5
push eax
movaps xmm2, xmm3
mulps xmm2, xmm3
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 + 0x48]
rsqrtss xmm0, xmm0
mulss xmm2, xmm0
mulss xmm2, xmm0
subss xmm4, xmm2
movaps xmm2, xmmword [esp + 0xc8]
mulss xmm2, xmm0
mulss xmm2, xmm4
andnps xmm1, xmm2
shufps xmm1, xmm1, 0
mulps xmm1, xmm3
movaps xmmword [esp + 0xc8], xmm1
call fcn.004776d0
mov eax, dword [ebp + 0xc]
mov esi, dword [esp + 0x34]
movaps xmm0, xmmword [0x719d70]
add esi, 0x10
mov ecx, dword [eax]
xorps xmm0, xmmword [esi]
movaps xmmword [esp + 0x60], xmm0
movsx eax, word [ecx + 0x14]
add ecx, 0x10
add eax, ecx
lea ecx, [esp + 0x70]
push eax
lea eax, [esp + 0x64]
push eax
call fcn.00558c20
lea eax, [esp + 0x120]
push eax
lea ecx, [esp + 0x74]
call fcn.005ac570
mov eax, dword [ebp + 0xc]
mov ecx, dword [eax]
movsx eax, word [ecx + 0x14]
add ecx, 0x10
add eax, ecx
lea ecx, [esp + 0x70]
push eax
call fcn.005ac570
push esi
lea ecx, [esp + 0x74]
call fcn.005ac570
mov esi, dword [esp + 0x24]
lea eax, [esp + 0x70]
add esi, dword [esp + 0x54]
push eax
lea eax, [esp + 0x64]
push eax
movaps xmm0, xmmword [esi + 0x10]
lea ecx, [esi + 0x10]
movaps xmmword [esp + 0x68], xmm0
call fcn.004782a0
lea ecx, [esi + 0x10]
call fcn.00478080
mov ecx, dword [esp + 0x14]
mov esi, dword [esp + 0x1c]
push esi
push dword [esp + 0x28]
mov eax, dword [ecx + 0x2c]
push dword [eax + 0xc]
push dword [eax + 0x1c]
call fcn.0057e2a0
mov eax, dword [esp + 0x40]
add esp, 0x10
mov edx, dword [ebp + 0xc]
inc eax
mov dword [esp + 0x30], eax
cmp eax, dword [edi + 0x50]
jl 0x5fb190
mov edx, dword [ebp + 0xc]
cmp byte [edi + 0x34], 0
mov edi, dword [esp + 0x20]
jne 0x5fb6bc
mov eax, dword [esp + 0x18]
push edi
push dword [eax + 0x18]
push edx
push esi
call fcn.005df3b0
mov eax, dword [ebp + 0xc]
add esp, 0x10
mov eax, dword [eax]
movsx ecx, word [eax + 0x34]
add ecx, eax
cmp dword [eax + 4], 2
jle 0x5fb6a0
movsx eax, word [eax + 0x32]
jmp 0x5fb6a2
xor eax, eax
push ecx
mov ecx, dword [esp + 0x2c]
push edi
push dword [ecx + 0xc]
push eax
call fcn.0057e3c0
mov ecx, dword [ebp + 0xc]
add esp, 0x10
call fcn.005dd090
push dword [0x884adc]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov ecx, dword [esp + 0x58]
mov edx, eax
lea eax, [ecx + 0xf]
and eax, 0xfffffff0
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x24]
cmp ecx, dword [edx + 8]
jg 0x5fb6f6
mov ecx, dword [esp + 0x18]
add ecx, eax
cmp ecx, dword [edx + 0xc]
jne 0x5fb6f6
cmp dword [edx + 0x14], eax
je 0x5fb6f6
mov dword [edx + 0xc], eax
jmp 0x5fb702
push dword [esp + 0x18]
mov ecx, edx
push eax
call fcn.0046a590
push dword [0x884adc]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov ecx, dword [esp + 0x5c]
lea edx, [ecx + 0xf]
and edx, 0xfffffff0
cmp ecx, dword [eax + 8]
jg 0x5fb72f
lea ecx, [edx + edi]
cmp ecx, dword [eax + 0xc]
jne 0x5fb72f
cmp dword [eax + 0x14], edi
je 0x5fb72f
mov dword [eax + 0xc], edi
jmp 0x5fb738
push edx
push edi
mov ecx, eax
call fcn.0046a590
push dword [0x884adc]
mov edi, dword [sym.imp.KERNEL32.dll_TlsGetValue]
call edi
mov ecx, dword [esp + 0x3c]
lea edx, [ecx + 0xf]
and edx, 0xfffffff0
cmp ecx, dword [eax + 8]
jg 0x5fb767
lea ecx, [edx + esi]
cmp ecx, dword [eax + 0xc]
jne 0x5fb767
cmp dword [eax + 0x14], esi
je 0x5fb767
mov dword [eax + 0xc], esi
jmp 0x5fb770
push edx
push esi
mov ecx, eax
call fcn.0046a590
push dword [0x884c50]
call edi
mov edi, eax
mov esi, dword [edi + 4]
cmp esi, dword [edi + 0xc]
jae 0x5fb79b
mov dword [esi], 0x77f5ec
rdtsc
mov dword [esp + 0x3c], eax
mov ecx, dword [esp + 0x3c]
lea eax, [esi + 0xc]
mov dword [esi + 4], ecx
mov dword [edi + 4], eax
pop edi
pop esi
mov esp, ebp
pop ebp
ret 8