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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x68
push esi
push edi
push dword [0x884c50]
mov dword [esp + 0xc], ecx
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov edi, eax
mov esi, dword [edi + 4]
cmp esi, dword [edi + 0xc]
jae 0x4e377e
mov dword [esi], str.TtrcTriangle
rdtsc
mov dword [esp + 0xc], eax
mov ecx, dword [esp + 0xc]
lea eax, [esi + 0xc]
mov dword [esi + 4], ecx
mov dword [edi + 4], eax
mov eax, dword [esp + 8]
xorps xmm7, xmm7
mov ecx, dword [ebp + 0xc]
movaps xmm5, xmmword [eax + 0x20]
movaps xmm4, xmmword [eax + 0x40]
movaps xmm2, xmmword [eax + 0x30]
movaps xmm3, xmm4
subps xmm2, xmm5
subps xmm3, xmm5
movaps xmm0, xmm2
shufps xmm0, xmm2, 0xd2
movaps xmm1, xmm3
shufps xmm1, xmm3, 0xc9
mulps xmm1, xmm0
shufps xmm2, xmm2, 0xc9
shufps xmm3, xmm3, 0xd2
mulps xmm3, xmm2
subps xmm3, xmm1
movaps xmm1, xmm3
movaps xmm2, xmm3
mulps xmm2, xmmword [ecx + 0x10]
mulps xmm1, xmm5
movaps xmm5, xmm3
mulps xmm5, xmmword [ecx]
movaps xmm0, xmm1
shufps xmm0, xmm1, 0x55
addss xmm0, xmm1
shufps xmm1, xmm1, 0xaa
addss xmm1, xmm0
movaps xmm0, xmm5
shufps xmm0, xmm5, 0x55
addss xmm0, xmm5
shufps xmm5, xmm5, 0xaa
addss xmm5, xmm0
movaps xmm0, xmm2
shufps xmm0, xmm2, 0x55
addss xmm0, xmm2
shufps xmm2, xmm2, 0xaa
shufps xmm5, xmm5, 0
subss xmm5, xmm1
addss xmm2, xmm0
shufps xmm2, xmm2, 0
subss xmm2, xmm1
movaps xmm0, xmm2
mulss xmm0, xmm5
comiss xmm0, xmm7
jb 0x4e3866
ucomiss xmm5, xmm7
lahf
test ah, 0x44
jp 0x4e3836
ucomiss xmm2, xmm7
lahf
test ah, 0x44
jp 0x4e3862
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 0x4e3ab0
mov dword [esi], 0x77f5ec
rdtsc
mov dword [esp + 0xc], eax
jmp 0x4e3aa3
mov eax, dword [esp + 8]
movaps xmm0, xmm5
mov edx, dword [ebp + 0x10]
subss xmm0, xmm2
movaps xmm6, xmm5
divss xmm6, xmm0
movss xmm0, dword [edx + 0x10]
comiss xmm0, xmm6
jbe 0x4e3a80
movaps xmm1, xmmword [0x727d50]
movaps xmm2, xmm3
mulps xmm2, xmm3
movaps xmm0, xmm2
shufps xmm0, xmm2, 0x55
addss xmm0, xmm2
shufps xmm2, xmm2, 0xaa
addss xmm2, xmm0
movaps xmm0, xmm6
shufps xmm0, xmm0, 0
subps xmm1, xmm0
mulps xmm0, xmmword [ecx + 0x10]
shufps xmm2, xmm2, 0
mulss xmm2, dword [0x77fab4]
mulps xmm1, xmmword [ecx]
movaps xmmword [esp + 0x20], xmm2
movaps xmm2, xmmword [eax + 0x30]
addps xmm1, xmm0
movaps xmm0, xmmword [eax + 0x20]
subps xmm2, xmm1
movaps xmmword [esp + 0x40], xmm1
subps xmm0, xmm1
movaps xmmword [esp + 0x10], xmm2
movaps xmm1, xmmword [esp + 0x10]
movaps xmm2, xmm1
shufps xmm2, xmm1, 0xc9
movaps xmmword [esp + 0x30], xmm2
movaps xmm2, xmm0
shufps xmm2, xmm0, 0xd2
shufps xmm1, xmm1, 0xd2
shufps xmm0, xmm0, 0xc9
movaps xmmword [esp + 0x10], xmm1
movaps xmm1, xmm0
mulps xmm1, xmmword [esp + 0x10]
movaps xmmword [esp + 0x50], xmm0
movaps xmm0, xmm2
mulps xmm0, xmmword [esp + 0x30]
movaps xmmword [esp + 0x60], xmm2
movaps xmm2, xmmword [esp + 0x20]
subps xmm1, xmm0
mulps xmm1, xmm3
movaps xmm0, xmm1
shufps xmm0, xmm1, 0x55
addss xmm0, xmm1
shufps xmm1, xmm1, 0xaa
addss xmm1, xmm0
comiss xmm1, xmm2
jb 0x4e3a80
subps xmm4, xmmword [esp + 0x40]
movaps xmm2, xmm4
shufps xmm2, xmm4, 0xc9
shufps xmm4, xmm4, 0xd2
movaps xmm0, xmm2
mulps xmm0, xmmword [esp + 0x10]
movaps xmm1, xmm4
mulps xmm1, xmmword [esp + 0x30]
subps xmm1, xmm0
mulps xmm1, xmm3
movaps xmm0, xmm1
shufps xmm0, xmm1, 0x55
addss xmm0, xmm1
shufps xmm1, xmm1, 0xaa
addss xmm1, xmm0
comiss xmm1, dword [esp + 0x20]
jb 0x4e3a80
mulps xmm2, xmmword [esp + 0x60]
mulps xmm4, xmmword [esp + 0x50]
subps xmm2, xmm4
mulps xmm2, xmm3
movaps xmm0, xmm2
shufps xmm0, xmm2, 0x55
addss xmm0, xmm2
shufps xmm2, xmm2, 0xaa
addss xmm2, xmm0
comiss xmm2, dword [esp + 0x20]
jb 0x4e3a80
comiss xmm5, xmm7
movss dword [edx + 0x10], xmm6
ja 0x4e39cb
xorps xmm3, xmmword [0x719130]
movaps xmmword [edx], xmm3
movaps xmm5, xmmword [edx]
movaps xmm1, xmm5
mov eax, dword [edx + 0x40]
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
rsqrtss xmm3, xmm3
mulss xmm1, xmm3
cmpeqss xmm4, xmm0
movss xmm0, dword [0x719764]
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
movaps xmmword [edx], xmm4
mov dword [edx + eax*4 + 0x20], 0xffffffff
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 0x4e3a72
mov dword [esi], 0x77f5ec
rdtsc
mov dword [esp + 0xc], eax
mov ecx, dword [esp + 0xc]
lea eax, [esi + 0xc]
mov dword [esi + 4], ecx
mov dword [edi + 4], eax
mov eax, dword [ebp + 8]
mov byte [eax], 1
pop edi
pop esi
mov esp, ebp
pop ebp
ret 0xc
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 0x4e3ab0
mov dword [esi], 0x77f5ec
rdtsc
mov dword [esp + 0xc], eax
mov ecx, dword [esp + 0xc]
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], 0
mov esp, ebp
pop ebp
ret 0xc