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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x68
movss xmm0, dword [ebp + 0xc]
push esi
push edi
push dword [0x884c50]
shufps xmm0, xmm0, 0
movaps xmmword [esp + 0x64], xmm0
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov edi, eax
mov esi, dword [edi + 4]
cmp esi, dword [edi + 0xc]
jae 0x561fc8
mov dword [esi], str.TtSampleInterleavedChunk
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 edi, dword [ebp + 0x20]
mov ecx, 1
mov esi, dword [edi]
mov dword [esp + 0xc], esi
mov eax, dword [esi + 0x10]
test eax, eax
jle 0x562152
mov edx, dword [edi + 8]
lea ecx, [eax + eax*2]
shl ecx, 4
add ecx, edx
cmp dword [ebp + 0x10], 0
jbe 0x56214d
movss xmm5, dword [ebp + 0xc]
xorps xmm4, xmm4
mov esi, dword [ebp + 0x14]
movaps xmm0, xmm4
movaps xmmword [esp + 0x30], xmm0
add esi, 0x10
movss xmm0, dword [0x719764]
movaps xmm1, xmm0
shufps xmm5, xmm5, 0
movss xmm0, dword [0x719760]
movaps xmm6, xmm5
movaps xmmword [esp + 0x40], xmm1
movaps xmm1, xmm0
shufps xmm6, xmm5, 0
movaps xmmword [esp + 0x50], xmm1
nop word [eax + eax]
movaps xmm1, xmmword [0x727d50]
movaps xmm0, xmmword [ecx + 0x20]
subps xmm1, xmm6
mulps xmm0, xmm6
mulps xmm1, xmmword [edx + 0x20]
addps xmm1, xmm0
movaps xmm0, xmm6
movaps xmmword [esi + 0x10], xmm1
movaps xmm1, xmmword [0x727d50]
mulps xmm0, xmmword [ecx]
subps xmm1, xmm6
mulps xmm1, xmmword [edx]
addps xmm1, xmm0
movaps xmmword [esi - 0x10], xmm1
movaps xmm7, xmmword [ecx + 0x10]
movaps xmm3, xmmword [edx + 0x10]
movaps xmm0, xmm7
movaps xmm2, xmmword [0x719330]
mulps xmm0, xmm3
subps xmm2, xmm5
movaps xmm1, xmm0
shufps xmm2, xmm2, 0
shufps xmm1, xmm0, 0x4e
addps xmm1, xmm0
movaps xmm0, xmm1
shufps xmm0, xmm1, 0xb1
addps xmm0, xmm1
comiss xmm4, xmm0
jbe 0x5620c4
movaps xmm0, xmmword [0x719550]
lea eax, [esp + 0x10]
subps xmm0, xmm5
shufps xmm0, xmm0, 0
movaps xmmword [esp + 0x10], xmm0
jmp 0x5620cd
movaps xmmword [esp + 0x20], xmm5
lea eax, [esp + 0x20]
movups xmm4, xmmword [eax]
add edx, 0x30
add ecx, 0x30
mulps xmm2, xmm3
mulps xmm4, xmm7
addps xmm4, xmm2
movaps xmm0, xmm4
mulps xmm0, xmm4
movaps xmm1, xmm0
shufps xmm1, xmm0, 0x4e
addps xmm1, xmm0
movaps xmm0, xmm1
shufps xmm0, xmm1, 0xb1
addps xmm0, xmm1
movaps xmm1, xmmword [esp + 0x40]
shufps xmm0, xmm0, 0
movaps xmm2, xmm0
movaps xmm3, xmm0
cmpeqss xmm3, dword [esp + 0x30]
rsqrtss xmm2, xmm2
mulss xmm0, xmm2
mulss xmm0, xmm2
subss xmm1, xmm0
movaps xmm0, xmmword [esp + 0x50]
mulss xmm0, xmm2
mulss xmm0, xmm1
andnps xmm3, xmm0
shufps xmm3, xmm3, 0
mulps xmm3, xmm4
xorps xmm4, xmm4
movaps xmmword [esi], xmm3
add esi, 0x30
sub dword [ebp + 0x10], 1
jne 0x562040
mov esi, dword [esp + 0xc]
mov ecx, 2
mov eax, dword [esi + 0x14]
test eax, eax
jle 0x5622e2
movss xmm2, dword [0x718824]
xor esi, esi
movss xmm3, dword [ebp + 0xc]
mov ecx, dword [edi + ecx*8]
subss xmm2, xmm3
mov edi, dword [ebp + 0x18]
lea edx, [ecx + eax*4]
movaps xmm4, xmm2
shufps xmm4, xmm4, 0
test edi, edi
je 0x5622e2
cmp edi, 8
jb 0x56220a
mov eax, dword [ebp + 0x1c]
lea eax, [eax + edi*4]
add eax, 0xfffffffc
mov dword [esp + 0xc], eax
lea eax, [edi - 1]
lea eax, [ecx + eax*4]
cmp dword [ebp + 0x1c], eax
ja 0x5621ab
cmp dword [esp + 0xc], ecx
jae 0x56220a
lea eax, [edi - 1]
lea eax, [edx + eax*4]
cmp dword [ebp + 0x1c], eax
ja 0x5621bc
cmp dword [esp + 0xc], edx
jae 0x56220a
movaps xmm5, xmmword [esp + 0x60]
mov eax, edi
and eax, 7
mov dword [esp + 0xc], edi
sub dword [esp + 0xc], eax
mov eax, dword [ebp + 0x1c]
movups xmm1, xmmword [ecx]
add esi, 8
movups xmm0, xmmword [edx]
mulps xmm1, xmm4
mulps xmm0, xmm5
addps xmm1, xmm0
movups xmmword [eax], xmm1
movups xmm1, xmmword [ecx + 0x10]
add ecx, 0x20
movups xmm0, xmmword [edx + 0x10]
add edx, 0x20
mulps xmm1, xmm4
mulps xmm0, xmm5
addps xmm1, xmm0
movups xmmword [eax + 0x10], xmm1
add eax, 0x20
cmp esi, dword [esp + 0xc]
jb 0x5621d1
cmp esi, edi
jae 0x5622e2
mov eax, edi
sub eax, esi
cmp eax, 4
jb 0x5622ae
mov eax, dword [ebp + 0x1c]
sub edi, esi
sub edi, 4
shr edi, 2
lea eax, [eax + esi*4]
add eax, 8
inc edi
lea esi, [esi + edi*4]
movss xmm1, dword [edx]
movss xmm0, dword [ecx]
mulss xmm1, xmm3
mulss xmm0, xmm2
addss xmm1, xmm0
movss dword [eax - 8], xmm1
movss xmm1, dword [ecx + 4]
movss xmm0, dword [edx + 4]
mulss xmm1, xmm2
mulss xmm0, xmm3
addss xmm1, xmm0
movss dword [eax - 4], xmm1
movss xmm1, dword [ecx + 8]
movss xmm0, dword [edx + 8]
mulss xmm1, xmm2
mulss xmm0, xmm3
addss xmm1, xmm0
movss dword [eax], xmm1
movss xmm1, dword [ecx + 0xc]
add ecx, 0x10
movss xmm0, dword [edx + 0xc]
add edx, 0x10
mulss xmm1, xmm2
mulss xmm0, xmm3
addss xmm1, xmm0
movss dword [eax + 4], xmm1
add eax, 0x10
sub edi, 1
jne 0x562234
mov edi, dword [ebp + 0x18]
cmp esi, edi
jae 0x5622e2
mov eax, dword [ebp + 0x1c]
sub edx, ecx
nop word [eax + eax]
movss xmm1, dword [edx + ecx]
movss xmm0, dword [ecx]
add ecx, 4
mulss xmm1, xmm3
mulss xmm0, xmm2
addss xmm1, xmm0
movss dword [eax + esi*4], xmm1
inc esi
cmp esi, edi
jb 0x5622c0
push dword [0x884c50]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov edi, eax
mov esi, dword [edi + 4]
cmp esi, dword [edi + 0xc]
jae 0x562311
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
pop edi
pop esi
mov esp, ebp
pop ebp
ret