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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0xb8
cmp dword [ecx + 4], 0
push esi
push edi
mov dword [esp + 0x18], ecx
je 0x5f560e
push dword [0x884c50]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov edi, eax
mov esi, dword [edi + 4]
cmp esi, dword [edi + 0xc]
jae 0x5f54cb
mov dword [esi], str.TtcastRay
rdtsc
mov dword [esp + 0x1c], eax
mov ecx, dword [esp + 0x1c]
lea eax, [esi + 0xc]
mov dword [esi + 4], ecx
mov dword [edi + 4], eax
mov eax, dword [ebp + 0xc]
lea ecx, [esp + 0x50]
mov byte [esp + 0x40], 0
movaps xmm0, xmmword [eax]
mov eax, dword [ebp + 0x10]
movaps xmmword [esp + 0x20], xmm0
movaps xmm0, xmmword [eax]
mov eax, dword [ebp + 0x14]
movaps xmmword [esp + 0x30], xmm0
mov dword [esp + 0x44], eax
call fcn.005f56c0
mov esi, dword [esp + 0x18]
lea eax, [esp + 0x50]
push eax
lea eax, [esp + 0x24]
push eax
mov ecx, dword [esi + 4]
call fcn.0050e3b0
mov edx, dword [esp + 0xb0]
test edx, edx
setne al
mov byte [esp + 0x17], al
test al, al
je 0x5f5665
mov edi, dword [ebp + 0x1c]
xorps xmm7, xmm7
mov ecx, dword [ebp + 0x18]
movaps xmm0, xmmword [esp + 0x60]
movss xmm6, dword [esp + 0x70]
movaps xmmword [edi], xmm0
movss dword [ecx], xmm6
movss xmm0, dword [esi + 8]
comiss xmm0, xmm7
jbe 0x5f561c
mov eax, dword [esi + 4]
movaps xmm5, xmmword [eax + 0x10]
movaps xmm1, xmm5
mulps xmm1, xmm5
movaps xmm0, xmm1
shufps xmm0, xmm1, 0x55
addss xmm0, xmm1
shufps xmm1, xmm1, 0xaa
addss xmm1, xmm0
movaps xmm0, xmm7
shufps xmm1, xmm1, 0
movaps xmm3, xmm1
movaps xmm4, xmm1
cmpeqss xmm4, xmm0
movss xmm0, dword [0x719764]
rsqrtss xmm3, xmm3
mulss xmm1, xmm3
movaps xmm2, xmm0
movss xmm0, dword [0x719760]
mulss xmm1, xmm3
subss xmm2, xmm1
movaps xmm1, xmm0
mulss xmm1, xmm3
mulss xmm1, xmm2
andnps xmm4, xmm1
shufps xmm4, xmm4, 0
mulps xmm4, xmm5
mulps xmm4, xmmword [0x719780]
mulps xmm4, xmmword [edi]
movaps xmm0, xmm4
shufps xmm0, xmm4, 0x55
addss xmm0, xmm4
shufps xmm4, xmm4, 0xaa
addss xmm4, xmm0
movss xmm0, dword [esi + 8]
comiss xmm0, xmm4
jbe 0x5f561c
push dword [0x884c50]
mov eax, dword [sym.imp.KERNEL32.dll_TlsGetValue]
call eax
mov edi, eax
mov esi, dword [edi + 4]
cmp esi, dword [edi + 0xc]
jae 0x5f560e
mov dword [esi], 0x77f5ec
rdtsc
mov dword [esp + 0x18], eax
mov ecx, dword [esp + 0x18]
lea eax, [esi + 0xc]
mov dword [esi + 4], ecx
mov dword [edi + 4], eax
mov eax, dword [ebp + 8]
mov byte [eax], 0
pop edi
pop esi
mov esp, ebp
pop ebp
ret 0x18
mov eax, dword [edx]
cmp dword [eax + 0xc], 0xb
jne 0x5f5665
movaps xmm1, xmmword [esp + 0x30]
subps xmm1, xmmword [esp + 0x20]
mulps xmm1, xmm1
movaps xmm0, xmm1
shufps xmm0, xmm1, 0x55
addss xmm0, xmm1
shufps xmm1, xmm1, 0xaa
addss xmm1, xmm0
movss xmm0, dword [eax + 0x10]
sqrtss xmm1, xmm1
divss xmm0, xmm1
subss xmm6, xmm0
comiss xmm7, xmm6
movss dword [ecx], xmm6
ja 0x5f5661
movaps xmm7, xmm6
movss dword [ecx], xmm7
push dword [0x884c50]
mov eax, dword [sym.imp.KERNEL32.dll_TlsGetValue]
call eax
mov edi, eax
mov esi, dword [edi + 4]
cmp esi, dword [edi + 0xc]
jae 0x5f5695
mov dword [esi], 0x77f5ec
rdtsc
mov dword [esp + 0x18], eax
mov ecx, dword [esp + 0x18]
lea eax, [esi + 0xc]
mov dword [esi + 4], ecx
mov dword [edi + 4], eax
mov eax, dword [ebp + 8]
mov cl, byte [esp + 0x17]
pop edi
pop esi
mov byte [eax], cl
mov esp, ebp
pop ebp
ret 0x18