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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x138
push esi
push edi
push dword [0x884c50]
mov esi, ecx
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov dword [esp + 0x1c], eax
mov edi, dword [eax + 4]
cmp edi, dword [eax + 0xc]
jae 0x5af975
mov dword [edi], str.TtLookAtModifier
rdtsc
mov dword [esp + 0x18], eax
mov ecx, dword [esp + 0x18]
lea eax, [edi + 0xc]
mov dword [edi + 4], ecx
mov ecx, dword [esp + 0x1c]
mov dword [ecx + 4], eax
mov eax, dword [ebp + 0xc]
mov eax, dword [eax]
cmp dword [eax + 4], 2
jle 0x5b00be
movsx ecx, word [eax + 0x32]
mov dword [esp + 0x20], ecx
test ecx, ecx
je 0x5b00be
movzx eax, word [esi + 0xa0]
test ax, ax
js 0x5b00be
movzx edx, word [esi + 0xa2]
test dx, dx
js 0x5b00be
cwde
cmp eax, ecx
jge 0x5b00be
movsx eax, dx
cmp eax, ecx
jge 0x5b00be
mov eax, dword [ebp + 8]
movaps xmm0, xmmword [0x717f30]
cmp byte [esi + 0xa4], 0
mov eax, dword [eax]
setne byte [esp + 0x17]
mov eax, dword [eax + 0x2c]
mov eax, dword [eax + 0x14]
movups xmmword [esp + 0x28], xmm0
mov dword [esp + 0x24], eax
movaps xmm0, xmmword [0x71ac40]
movups xmmword [esp + 0x38], xmm0
mov dword [esp + 0x48], connect
mov word [esp + 0x4c], 0
mov dword [esp + 0x50], 0
mov dword [esp + 0x54], 0
mov dword [esp + 0x58], connect
mov edi, dword [eax + 0x1c]
mov dword [esp + 0x5c], eax
lea ecx, [edi + 3]
and ecx, 0xfffffffc
mov dword [esp + 0x18], ecx
jle 0x5afa4e
push 0x30
push ecx
lea eax, [esp + 0x3c]
push eax
push 0x7d8954
call fcn.00467b80
mov ecx, dword [esp + 0x28]
add esp, 0x10
mov eax, dword [esp + 0x30]
and eax, 0x3fffffff
cmp eax, ecx
jge 0x5afa74
push 0x30
push ecx
lea eax, [esp + 0x30]
push eax
push 0x7d8954
call fcn.00467b80
mov ecx, dword [esp + 0x28]
add esp, 0x10
mov eax, dword [esp + 0x48]
and eax, 0x3fffffff
cmp eax, ecx
jge 0x5afa96
push 4
push ecx
lea eax, [esp + 0x48]
push eax
push 0x7d8954
call fcn.00467b80
add esp, 0x10
mov ecx, dword [esp + 0x3c]
and ecx, 0x3fffffff
cmp ecx, edi
jge 0x5afac2
add ecx, ecx
mov eax, edi
cmp edi, ecx
push 0x30
cmovl eax, ecx
push eax
lea eax, [esp + 0x3c]
push eax
push 0x7d8954
call fcn.00467b80
add esp, 0x10
mov ecx, dword [esp + 0x30]
and ecx, 0x3fffffff
mov dword [esp + 0x38], edi
cmp ecx, edi
jge 0x5afaf2
add ecx, ecx
mov eax, edi
cmp edi, ecx
push 0x30
cmovl eax, ecx
push eax
lea eax, [esp + 0x30]
push eax
push 0x7d8954
call fcn.00467b80
add esp, 0x10
mov ecx, dword [esp + 0x48]
and ecx, 0x3fffffff
mov dword [esp + 0x2c], edi
cmp ecx, edi
jge 0x5afb22
add ecx, ecx
mov eax, edi
cmp edi, ecx
push 4
cmovl eax, ecx
push eax
lea eax, [esp + 0x48]
push eax
push 0x7d8954
call fcn.00467b80
add esp, 0x10
mov eax, dword [esp + 0x24]
mov dword [esp + 0x44], edi
mov edi, dword [eax + 0x40]
mov eax, dword [esp + 0x58]
and eax, 0x3fffffff
mov dword [esp + 0x1c], edi
lea ecx, [edi + 3]
and ecx, 0xfffffffc
cmp eax, ecx
jge 0x5afb59
push 4
push ecx
lea eax, [esp + 0x58]
push eax
push 0x7d8954
call fcn.00467b80
add esp, 0x10
mov ecx, dword [esp + 0x58]
and ecx, 0x3fffffff
cmp ecx, edi
jge 0x5afb85
add ecx, ecx
mov eax, edi
cmp edi, ecx
push 4
cmovl eax, ecx
push eax
lea eax, [esp + 0x58]
push eax
push 0x7d8954
call fcn.00467b80
add esp, 0x10
mov edx, dword [esp + 0x54]
mov ecx, edi
mov eax, dword [esp + 0x50]
sub ecx, edx
lea edx, [eax + edx*4]
test ecx, ecx
jle 0x5afba2
xor eax, eax
mov edi, edx
rep stosd dword es:[edi], eax
mov edi, dword [esp + 0x1c]
lea ecx, [esp + 0x24]
mov dword [esp + 0x54], edi
call fcn.00580a40
push dword [eax]
push dword [esp + 0x60]
push dword [ebp + 0xc]
call fcn.005df320
movsx eax, word [esi + 0xa0]
add esp, 0xc
mov edx, dword [esp + 0x40]
test byte [edx + eax*4], 2
jne 0x5afbdf
mov ecx, dword [esp + 0x34]
lea edi, [eax + eax*2]
shl edi, 4
add edi, ecx
jmp 0x5afbf3
push eax
lea ecx, [esp + 0x28]
call fcn.00580e80
mov edx, dword [esp + 0x40]
mov edi, eax
mov ecx, dword [esp + 0x34]
movsx eax, word [esi + 0xa2]
test byte [edx + eax*4], 2
jne 0x5afc0a
lea eax, [eax + eax*2]
shl eax, 4
add eax, ecx
jmp 0x5afc14
push eax
lea ecx, [esp + 0x28]
call fcn.00580e80
movaps xmm0, xmmword [eax]
lea ecx, [esp + 0xe0]
movaps xmmword [esp + 0xd0], xmm0
movaps xmm0, xmmword [eax + 0x10]
movaps xmmword [esp + 0xe0], xmm0
movaps xmm0, xmmword [eax + 0x20]
movaps xmmword [esp + 0xf0], xmm0
call fcn.00478080
cmp byte [esp + 0x17], 0
movaps xmm4, xmmword [edi + 0x10]
movaps xmm2, xmmword [esi + 0x40]
movaps xmm5, xmm4
movaps xmm3, xmm2
shufps xmm5, xmm4, 0xff
mulps xmm3, xmm4
movaps xmm1, xmm2
shufps xmm1, xmm2, 0xc9
movaps xmm6, xmm2
shufps xmm6, xmm2, 0xd2
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 xmm6, xmm0
movaps xmm0, xmmword [esi + 0x30]
shufps xmm3, xmm3, 0
mulps xmm3, xmm4
subps xmm6, xmm1
movaps xmmword [esp + 0x60], xmm0
mulps xmm6, xmm5
mulps xmm5, xmm5
addps xmm5, xmmword [0x7195c0]
mulps xmm5, xmm2
addps xmm5, xmm3
addps xmm6, xmm5
movaps xmmword [esp + 0x80], xmm6
je 0x5afd6f
mov eax, dword [ebp + 0xc]
mov ecx, dword [eax]
lea eax, [esp + 0x60]
push eax
movsx eax, word [ecx + 0x14]
add eax, ecx
lea ecx, [esp + 0x74]
push eax
call fcn.0046ec20
movaps xmm1, xmmword [esp + 0x70]
xorps xmm7, xmm7
subps xmm1, xmmword [edi]
movaps xmm0, xmmword [esp + 0x80]
addps xmm0, xmm0
mulps xmm1, xmm0
movaps xmm0, xmm1
shufps xmm0, xmm1, 0x55
addss xmm0, xmm1
shufps xmm1, xmm1, 0xaa
addss xmm1, xmm0
shufps xmm1, xmm1, 0
comiss xmm7, xmm1
ja 0x5afd72
movss xmm0, dword [esi + 0xc0]
comiss xmm0, xmm7
movaps xmm0, xmmword [esp + 0x60]
jbe 0x5afd56
movss xmm2, dword [esi + 0x80]
movaps xmm1, xmmword [0x727d50]
shufps xmm2, xmm2, 0
subps xmm1, xmm2
mulps xmm0, xmm2
mulps xmm1, xmmword [esi + 0xb0]
addps xmm1, xmm0
movaps xmmword [esi + 0xb0], xmm1
jmp 0x5afd5d
movaps xmmword [esi + 0xb0], xmm0
movss xmm1, dword [0x718824]
movss xmm2, dword [esi + 0x84]
jmp 0x5afd7d
xorps xmm7, xmm7
movss xmm2, dword [esi + 0x88]
movaps xmm1, xmm7
movss xmm0, dword [esi + 0xc0]
subss xmm1, xmm0
mulss xmm1, xmm2
addss xmm1, xmm0
movss xmm0, dword [0x77fa28]
comiss xmm0, xmm1
movss dword [esi + 0xc0], xmm1
jbe 0x5afdbc
mov dword [esi + 0xc0], 0
mov byte [esi + 0xa6], 0
jmp 0x5b0086
movaps xmm4, xmmword [esp + 0xe0]
lea eax, [esi + 0xb0]
movaps xmm1, xmmword [esi + 0x50]
movaps xmm3, xmm4
movaps xmm0, xmmword [esi + 0x40]
movaps xmm2, xmm1
movaps xmmword [esp + 0x100], xmm0
movaps xmm5, xmm1
movaps xmm0, xmmword [esi + 0x70]
movaps xmm6, xmm4
movaps xmmword [esp + 0x110], xmm0
mulps xmm2, xmm4
mov edi, dword [ebp + 0xc]
shufps xmm5, xmm1, 0xd2
shufps xmm3, xmm4, 0xd2
shufps xmm6, xmm4, 0xff
movaps xmm0, xmm2
movaps xmmword [esp + 0x70], xmm3
shufps xmm0, xmm2, 0x55
addss xmm0, xmm2
mov ecx, dword [edi]
shufps xmm2, xmm2, 0xaa
push eax
movaps xmmword [esp + 0xb4], xmm6
addss xmm2, xmm0
movaps xmm0, xmm4
shufps xmm0, xmm4, 0xc9
mulps xmm5, xmm0
movaps xmmword [esp + 0x84], xmm0
movaps xmm0, xmm1
shufps xmm0, xmm1, 0xc9
mulps xmm0, xmm3
shufps xmm2, xmm2, 0
mulps xmm2, xmm4
subps xmm5, xmm0
movaps xmm0, xmm6
mulps xmm0, xmm6
mulps xmm5, xmm6
addps xmm0, xmmword [0x7195c0]
mulps xmm0, xmm1
addps xmm0, xmm2
addps xmm5, xmm0
addps xmm5, xmm5
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
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
movss xmm0, dword [esi + 0x8c]
mulss xmm0, dword [0x7a3b34]
mulss xmm1, xmm3
movss dword [esp + 0x134], xmm0
mulss xmm1, xmm2
andnps xmm4, xmm1
shufps xmm4, xmm4, 0
mulps xmm4, xmm5
movaps xmmword [esp + 0x124], xmm4
movsx eax, word [ecx + 0x14]
add eax, ecx
lea ecx, [esp + 0xc4]
push eax
call fcn.0046ec20
movaps xmm1, xmmword [esi + 0x60]
movaps xmm2, xmm1
mulps xmm2, xmmword [esp + 0xe0]
movaps xmm0, xmm2
shufps xmm0, xmm2, 0x55
lea ecx, [esp + 0x90]
addss xmm0, xmm2
cmp byte [esi + 0xa5], 0
shufps xmm2, xmm2, 0xaa
movaps xmm3, xmm1
shufps xmm3, xmm1, 0xd2
setne al
mulps xmm3, xmmword [esp + 0x80]
xor edx, edx
test al, al
movsx eax, word [esi + 0xa0]
addss xmm2, xmm0
movaps xmm0, xmm1
shufps xmm0, xmm1, 0xc9
cmove ecx, edx
mulps xmm0, xmmword [esp + 0x70]
push ecx
push 1
shufps xmm2, xmm2, 0
lea ecx, [esp + 0x2c]
mulps xmm2, xmmword [esp + 0xe8]
push eax
subps xmm3, xmm0
movaps xmm0, xmmword [esp + 0xbc]
mulps xmm3, xmm0
mulps xmm0, xmm0
addps xmm0, xmmword [0x7195c0]
mulps xmm0, xmm1
movaps xmm1, xmmword [esp + 0x12c]
addps xmm0, xmm2
addps xmm3, xmm0
movaps xmm0, xmm1
shufps xmm0, xmm1, 0xd2
shufps xmm1, xmm1, 0xc9
addps xmm3, xmm3
movaps xmm2, xmm3
shufps xmm2, xmm3, 0xc9
mulps xmm2, xmm0
movss xmm0, dword [esi + 0x98]
shufps xmm3, xmm3, 0xd2
mulps xmm3, xmm1
movss xmm1, dword [0x7a3b34]
mulss xmm0, xmm1
subps xmm2, xmm3
movss dword [esp + 0x9c], xmm0
movss xmm0, dword [esi + 0x9c]
mulss xmm0, xmm1
movaps xmmword [esp + 0xac], xmm2
movss dword [esp + 0xa0], xmm0
movss xmm0, dword [esi + 0x90]
mulss xmm0, xmm1
movss dword [esp + 0xa4], xmm0
movss xmm0, dword [esi + 0x94]
mulss xmm0, xmm1
movss dword [esp + 0xa8], xmm0
call fcn.00580710
movss xmm0, dword [esi + 0xc0]
push eax
push ecx
movss dword [esp], xmm0
lea eax, [esp + 0xcc]
push eax
lea eax, [esp + 0x110]
push eax
lea eax, [esp + 0x2b]
push eax
call fcn.00702910
add esp, 0x18
lea ecx, [esp + 0x24]
mov al, byte [eax]
mov byte [esi + 0xa6], al
call fcn.0057fe50
mov ecx, dword [esp + 0x20]
mov esi, dword [edi]
lea edx, [ecx + ecx*2]
shl edx, 4
push edx
push dword [eax]
movsx eax, word [esi + 0x34]
add eax, esi
push eax
call fcn.0045d810
add esp, 0xc
mov ecx, edi
call fcn.005dd090
push dword [0x884c50]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov edi, eax
mov esi, dword [edi + 4]
cmp esi, dword [edi + 0xc]
jae 0x5b00b5
mov dword [esi], 0x77f5ec
rdtsc
mov dword [esp + 0x20], eax
mov ecx, dword [esp + 0x20]
lea eax, [esi + 0xc]
mov dword [esi + 4], ecx
mov dword [edi + 4], eax
lea ecx, [esp + 0x24]
call fcn.005ac3a0
pop edi
pop esi
mov esp, ebp
pop ebp
ret 8