Function at 0x569cf0
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 edi, dword [sym.imp.KERNEL32.dll_TlsGetValue]
call edi
mov esi, eax
mov ecx, dword [esi + 4]
cmp ecx, dword [esi + 0xc]
jae 0x569d33
mov dword [ecx], str.LtMapPoseLocalSpace
mov dword [ecx + 0xc], str.Stinit
rdtsc
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x28]
mov dword [ecx + 4], eax
lea eax, [ecx + 0x10]
mov dword [esi + 4], eax
push dword [0x884c50]
call edi
mov edi, eax
mov esi, dword [edi + 4]
cmp esi, dword [edi + 0xc]
jae 0x569d5e
mov dword [esi], str.StsimpleMappings
rdtsc
mov dword [esp + 0x28], eax
mov ecx, dword [esp + 0x28]
lea eax, [esi + 0xc]
mov dword [esi + 4], ecx
mov dword [edi + 4], eax
mov edi, dword [ebp + 0x14]
test edi, edi
je 0x569d70
cmp dword [ebp + 0x18], 0
mov byte [esp + 0xf], 1
jne 0x569d75
mov byte [esp + 0xf], 0
mov eax, dword [ebp + 8]
push dword [0x884adc]
mov eax, dword [eax + 0x10]
mov esi, dword [eax + 0x1c]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
lea ecx, [esi + esi*2]
shl ecx, 4
add ecx, 0x7f
mov esi, dword [eax + 0xc]
and ecx, 0xffffff80
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x14], esi
lea edx, [ecx + esi]
cmp ecx, dword [eax + 8]
jg 0x569db5
cmp edx, dword [eax + 0x10]
ja 0x569db5
mov dword [eax + 0xc], edx
mov eax, esi
jmp 0x569dc1
push ecx
mov ecx, eax
call fcn.0046a3c0
mov dword [esp + 0x14], eax
cmp byte [ebp + 0x1c], 0
mov esi, dword [ebp + 8]
je 0x569de6
mov ecx, dword [esi + 0x10]
push eax
push dword [ecx + 0x1c]
push edi
push dword [ecx + 0x24]
push dword [ebp + 0xc]
call fcn.0056a840
mov eax, dword [esp + 0x28]
add esp, 0x14
jmp 0x569de9
mov eax, dword [ebp + 0xc]
mov dword [esp + 0x10], eax
mov eax, dword [esi + 0x1c]
mov dword [esp + 0x20], eax
test eax, eax
jle 0x569ea6
mov al, byte [esp + 0xf]
xor ecx, ecx
mov dword [esp + 0x18], ecx
nop word [eax + eax]
mov edi, dword [esi + 0x18]
mov dword [esp + 0x28], edi
prefetchnta byte [ecx + edi + 0x80]
movsx edx, word [ecx + edi]
movsx edi, word [ecx + edi + 2]
mov dword [esp + 0x1c], edi
mov edi, dword [ebp + 0x14]
test al, al
je 0x569e48
movsx edx, word [edi + edx*2]
test edx, edx
js 0x569e94
mov eax, dword [ebp + 0x18]
mov edi, dword [esp + 0x1c]
movsx edi, word [eax + edi*2]
jmp 0x569e4c
mov edi, dword [esp + 0x1c]
mov eax, dword [esp + 0x28]
lea esi, [edx + edx*2]
mov edx, dword [ebp + 0x10]
lea edi, [edi + edi*2]
shl esi, 4
add eax, 0x10
add esi, dword [esp + 0x10]
add eax, ecx
push esi
push eax
mov eax, dword [ebp + 8]
shl edi, 4
add edi, edx
push edi
push dword [eax + 0x74]
call fcn.0056b480
prefetchnta byte [esi + 0x80]
add esp, 0x10
prefetchnta byte [edi + 0x80]
mov al, byte [esp + 0xf]
mov esi, dword [ebp + 8]
mov ecx, dword [esp + 0x18]
add ecx, 0x40
sub dword [esp + 0x20], 1
mov dword [esp + 0x18], ecx
jne 0x569e10
push dword [0x884c50]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov dword [esp + 0x24], eax
mov edi, dword [eax + 4]
cmp edi, dword [eax + 0xc]
jae 0x569edb
mov dword [edi], str.StchainMappings
rdtsc
mov dword [esp + 0x28], eax
mov ecx, dword [esp + 0x28]
lea eax, [edi + 0xc]
mov dword [edi + 4], ecx
mov ecx, dword [esp + 0x24]
mov dword [ecx + 4], eax
mov eax, dword [esi + 0x28]
mov dword [esp + 0x28], eax
test eax, eax
jle 0x56a347
xor eax, eax
xorps xmm0, xmm0
mov dword [esp + 0x24], eax
mov edi, dword [esi + 0x24]
movaps xmm6, xmm0
mov dl, byte [esp + 0xf]
add edi, eax
movaps xmmword [esp + 0x30], xmm0
xorps xmm7, xmm7
movaps xmmword [esp + 0x40], xmm6
mov dh, 1
movzx ecx, word [edi + 2]
movzx eax, word [edi]
cmp cx, ax
jle 0x56a003
nop
test dl, dl
je 0x569f33
mov esi, dword [ebp + 0x14]
movsx eax, cx
movzx eax, word [esi + eax*2]
mov esi, dword [ebp + 8]
jmp 0x569f36
movzx eax, cx
test ax, ax
js 0x56a001
cwde
movaps xmm3, xmm6
movaps xmm1, xmm6
movsx ecx, cx
shufps xmm1, xmm6, 0xc9
movaps xmm2, xmm6
shufps xmm2, xmm6, 0xd2
lea eax, [eax + eax*2]
shl eax, 4
add eax, dword [esp + 0x10]
movaps xmm4, xmmword [eax + 0x10]
mulps xmm3, xmm4
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, xmm4
shufps xmm0, xmm4, 0xd2
mulps xmm1, xmm0
movaps xmm0, xmm4
shufps xmm0, xmm4, 0xc9
mulps xmm2, xmm0
shufps xmm3, xmm3, 0
mulps xmm3, xmm4
subps xmm2, xmm1
movaps xmm1, xmmword [eax]
mov eax, dword [esi + 0x10]
mov esi, dword [ebp + 8]
mulps xmm2, xmm5
mov eax, dword [eax + 0xc]
mulps xmm5, xmm5
movzx ecx, word [eax + ecx*2]
movzx eax, word [edi]
addps xmm5, xmmword [0x7195c0]
mulps xmm6, xmm5
addps xmm6, xmm3
addps xmm6, xmm2
addps xmm6, xmm6
addps xmm6, xmm1
mulps xmm1, xmm1
movaps xmmword [esp + 0x40], xmm6
movaps xmm0, xmm1
shufps xmm0, xmm1, 0x55
addss xmm0, xmm1
shufps xmm1, xmm1, 0xaa
addss xmm1, xmm0
sqrtss xmm1, xmm1
shufps xmm1, xmm1, 0
addps xmm7, xmm1
shufps xmm7, xmm7, 0
cmp cx, ax
jg 0x569f20
jmp 0x56a003
xor dh, dh
test dl, dl
je 0x56a021
test dh, dh
je 0x56a32e
movzx eax, word [edi]
mov ecx, dword [ebp + 0x14]
cwde
cmp word [ecx + eax*2], 0
jl 0x56a32e
movaps xmm0, xmmword [edi + 0x60]
movzx ecx, word [edi + 6]
mulps xmm0, xmm7
movaps xmmword [esp + 0x50], xmm0
cmp cx, word [edi + 4]
jle 0x56a0fd
nop dword [eax + eax]
test dl, dl
je 0x56a053
mov esi, dword [ebp + 0x18]
movsx eax, cx
movzx eax, word [esi + eax*2]
mov esi, dword [ebp + 8]
jmp 0x56a056
movzx eax, cx
cwde
movsx ecx, cx
lea eax, [eax + eax*2]
shl eax, 4
add eax, dword [ebp + 0x10]
mulps xmm0, xmmword [eax]
movaps xmmword [eax], xmm0
movaps xmm5, xmmword [eax + 0x10]
movaps xmm3, xmmword [esp + 0x30]
movaps xmm6, xmm5
movaps xmm4, xmm3
shufps xmm6, xmm5, 0xff
mulps xmm4, xmm5
movaps xmm1, xmm3
shufps xmm1, xmm3, 0xc9
movaps xmm2, xmm3
shufps xmm2, xmm3, 0xd2
movaps xmm0, xmm4
shufps xmm0, xmm4, 0x55
addss xmm0, xmm4
shufps xmm4, xmm4, 0xaa
addss xmm4, xmm0
movaps xmm0, xmm5
shufps xmm0, xmm5, 0xd2
mulps xmm1, xmm0
movaps xmm0, xmm5
shufps xmm0, xmm5, 0xc9
mulps xmm2, xmm0
shufps xmm4, xmm4, 0
mulps xmm4, xmm5
subps xmm2, xmm1
movaps xmm0, xmmword [esp + 0x50]
mulps xmm2, xmm6
mulps xmm6, xmm6
addps xmm6, xmmword [0x7195c0]
mulps xmm6, xmm3
addps xmm6, xmm4
addps xmm2, xmm6
addps xmm2, xmm2
movaps xmmword [esp + 0x30], xmm2
addps xmm2, xmmword [eax]
mov eax, dword [esi + 0x14]
movaps xmmword [esp + 0x30], xmm2
mov eax, dword [eax + 0xc]
movzx ecx, word [eax + ecx*2]
cmp cx, word [edi + 4]
jg 0x56a040
movsx eax, word [edi + 2]
movsx ecx, word [edi]
movsx esi, word [edi + 4]
mov dword [esp + 0x18], eax
movsx eax, word [edi + 6]
mov dword [esp + 0x20], ecx
mov dword [esp + 0x1c], eax
test dl, dl
je 0x56a146
mov eax, dword [ebp + 0x14]
mov edx, dword [esp + 0x18]
movsx ecx, word [eax + ecx*2]
movsx edx, word [eax + edx*2]
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x20], ecx
mov ecx, dword [ebp + 0x18]
mov dword [esp + 0x18], edx
movsx eax, word [ecx + eax*2]
movsx esi, word [ecx + esi*2]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x20]
lea esi, [esi + esi*2]
shl esi, 4
add esi, dword [ebp + 0x10]
lea eax, [eax + eax*2]
shl eax, 4
add eax, dword [esp + 0x10]
push eax
lea eax, [edi + 0x10]
push eax
mov eax, dword [ebp + 8]
push esi
push dword [eax + 0x74]
call fcn.0056b480
lea eax, [esp + 0x40]
push eax
lea eax, [esp + 0x54]
push eax
call fcn.0056b800
add esp, 0x18
lea eax, [esp + 0x40]
lea ecx, [esp + 0x60]
push eax
lea eax, [esp + 0x34]
push eax
call fcn.0056b890
movaps xmm4, xmmword [edi + 0x40]
movaps xmm5, xmmword [esp + 0x60]
movaps xmm0, xmm4
shufps xmm0, xmm4, 0xd2
movaps xmm1, xmm5
shufps xmm1, xmm5, 0xc9
movaps xmm6, xmm5
mulps xmm1, xmm0
movaps xmm3, xmm5
shufps xmm6, xmm5, 0xd2
movaps xmm0, xmm4
shufps xmm0, xmm4, 0xc9
movaps xmm2, xmm4
mulps xmm6, xmm0
movaps xmm0, xmm4
shufps xmm3, xmm5, 0xff
shufps xmm3, xmm3, 0
mulps xmm0, xmm3
subps xmm6, xmm1
shufps xmm2, xmm4, 0xff
shufps xmm2, xmm2, 0
subps xmm6, xmm0
movaps xmm0, xmm5
mulps xmm0, xmm2
mulps xmm5, xmm4
movaps xmm4, xmmword [esi + 0x10]
addps xmm6, xmm0
movaps xmm3, xmm4
shufps xmm3, xmm4, 0xff
movaps xmm0, xmm5
shufps xmm3, xmm3, 0
shufps xmm0, xmm5, 0x4e
addps xmm0, xmm5
movaps xmm1, xmm0
shufps xmm1, xmm0, 0xb1
addps xmm1, xmm0
movaps xmm0, xmm6
shufps xmm1, xmm1, 0
unpckhps xmm0, xmm1
shufps xmm6, xmm0, 0xc4
movaps xmm0, xmm4
shufps xmm0, xmm4, 0xd2
movaps xmm1, xmm6
shufps xmm1, xmm6, 0xc9
movaps xmm5, xmm6
mulps xmm1, xmm0
movaps xmm2, xmm6
movaps xmm0, xmm4
shufps xmm5, xmm6, 0xd2
shufps xmm0, xmm4, 0xc9
mulps xmm5, xmm0
movaps xmm0, xmm6
shufps xmm2, xmm6, 0xff
shufps xmm2, xmm2, 0
subps xmm5, xmm1
mulps xmm0, xmm3
mov eax, dword [esp + 0x18]
mulps xmm6, xmm4
mov ecx, dword [esp + 0x10]
addps xmm5, xmm0
movaps xmm0, xmm4
mulps xmm0, xmm2
lea eax, [eax + eax*2]
add eax, eax
movaps xmm1, xmm6
shufps xmm1, xmm6, 0xaa
addps xmm5, xmm0
movaps xmm0, xmm6
shufps xmm0, xmm6, 0x55
addss xmm0, xmm6
addss xmm1, xmm0
movaps xmm0, xmm5
shufps xmm1, xmm1, 0
subps xmm6, xmm1
unpckhps xmm0, xmm6
shufps xmm5, xmm0, 0xc4
movaps xmmword [esi + 0x10], xmm5
movaps xmm6, xmmword [ecx + eax*8 + 0x10]
movaps xmm4, xmmword [edi + 0x50]
movaps xmm1, xmm6
shufps xmm1, xmm6, 0xc9
movaps xmm0, xmm4
shufps xmm0, xmm4, 0xd2
movaps xmm5, xmm6
mulps xmm1, xmm0
movaps xmm3, xmm4
mov eax, dword [esp + 0x1c]
shufps xmm5, xmm6, 0xd2
movaps xmm0, xmm4
shufps xmm0, xmm4, 0xc9
movaps xmm2, xmm6
mulps xmm5, xmm0
movaps xmm0, xmm6
lea eax, [eax + eax*2]
mov ecx, dword [ebp + 0x10]
shufps xmm3, xmm4, 0xff
add eax, eax
shufps xmm3, xmm3, 0
mulps xmm0, xmm3
mov esi, dword [ebp + 8]
subps xmm5, xmm1
shufps xmm2, xmm6, 0xff
mulps xmm6, xmm4
shufps xmm2, xmm2, 0
addps xmm5, xmm0
movaps xmm0, xmm4
mulps xmm0, xmm2
movaps xmm1, xmm6
shufps xmm1, xmm6, 0xaa
addps xmm5, xmm0
movaps xmm0, xmm6
shufps xmm0, xmm6, 0x55
addss xmm0, xmm6
addss xmm1, xmm0
movaps xmm0, xmm5
shufps xmm1, xmm1, 0
subps xmm6, xmm1
unpckhps xmm0, xmm6
shufps xmm5, xmm0, 0xc4
movaps xmmword [ecx + eax*8 + 0x10], xmm5
mov eax, dword [esp + 0x24]
xorps xmm0, xmm0
add eax, 0x70
sub dword [esp + 0x28], 1
mov dword [esp + 0x24], eax
jne 0x569ef3
cmp byte [ebp + 0x1c], 0
je 0x56a366
mov eax, dword [esi + 0x14]
mov ecx, dword [ebp + 0x10]
push ecx
push dword [eax + 0x1c]
push dword [ebp + 0x18]
push dword [eax + 0x24]
push ecx
call fcn.0056a850
add esp, 0x14
push dword [0x884c50]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov edi, eax
mov esi, dword [edi + 4]
cmp esi, dword [edi + 0xc]
jae 0x56a395
mov dword [esi], 0x77f784
rdtsc
mov dword [esp + 0x28], eax
mov ecx, dword [esp + 0x28]
lea eax, [esi + 0xc]
mov dword [esi + 4], ecx
mov dword [edi + 4], eax
push dword [0x884adc]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov ecx, dword [esp + 0x2c]
mov esi, dword [esp + 0x14]
lea edx, [ecx + 0xf]
and edx, 0xfffffff0
cmp ecx, dword [eax + 8]
jg 0x56a3ca
lea ecx, [edx + esi]
cmp ecx, dword [eax + 0xc]
jne 0x56a3ca
cmp dword [eax + 0x14], esi
je 0x56a3ca
mov dword [eax + 0xc], esi
pop edi
pop esi
mov esp, ebp
pop ebp
ret
push edx
push esi
mov ecx, eax
call fcn.0046a590
pop edi
pop esi
mov esp, ebp
pop ebp
ret