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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x88
push esi
push edi
push dword [0x884c50]
mov dword [esp + 0x34], ecx
mov dword [esp + 0x38], 0
mov dword [esp + 0x3c], 0
mov dword [esp + 0x40], connect
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov edi, eax
mov esi, dword [edi + 4]
cmp esi, dword [edi + 0xc]
jae 0x6792e9
mov dword [esi], str.TtVertexEnumeration
rdtsc
mov dword [esp + 0x24], eax
mov ecx, dword [esp + 0x24]
lea eax, [esi + 0xc]
mov dword [esi + 4], ecx
mov dword [edi + 4], eax
mov edi, dword [ebp + 0xc]
mov eax, dword [esp + 0x3c]
and eax, 0x3fffffff
lea ecx, [edi + edi*2]
cmp eax, ecx
jge 0x679318
add eax, eax
cmp ecx, eax
push 0x10
cmovl ecx, eax
lea eax, [esp + 0x38]
push ecx
push eax
push 0x7d8954
call fcn.00467b80
add esp, 0x10
xor eax, eax
mov dword [esp + 0x24], eax
test edi, edi
jle 0x67952a
mov edx, dword [ebp + 8]
movss xmm4, dword [0x719730]
add edx, 4
mov dword [esp + 0x18], edx
nop dword [eax + eax]
movss xmm0, dword [edx + 8]
lea ecx, [eax + 1]
mov dword [esp + 0x2c], ecx
xorps xmm0, xmm4
movss dword [esp + 0x40], xmm0
mov eax, ecx
mov dword [esp + 0x20], eax
cmp ecx, edi
jge 0x679515
lea ecx, [edx + 0x18]
mov dword [esp + 0x14], ecx
nop word [eax + eax]
movss xmm0, dword [ecx]
inc eax
mov esi, eax
mov dword [esp + 0x28], eax
xorps xmm0, xmm4
movss dword [esp + 0x44], xmm0
cmp esi, edi
jge 0x6794fe
lea eax, [ecx + 0xc]
mov dword [esp + 0x1c], eax
movss xmm2, dword [ecx - 0xc]
xorps xmm1, xmm1
movss xmm0, dword [eax - 8]
movss xmm3, dword [edx - 4]
unpcklps xmm3, xmm0
movss xmm0, dword [eax - 4]
unpcklps xmm2, xmm1
unpcklps xmm3, xmm2
movss xmm2, dword [ecx - 8]
movaps xmmword [esp + 0x60], xmm3
movss xmm3, dword [edx]
unpcklps xmm3, xmm0
movss xmm0, dword [eax]
unpcklps xmm2, xmm1
unpcklps xmm3, xmm2
movss xmm2, dword [ecx - 4]
movaps xmmword [esp + 0x70], xmm3
movss xmm3, dword [edx + 4]
unpcklps xmm3, xmm0
movss xmm0, dword [eax + 4]
unpcklps xmm2, xmm1
xorps xmm0, xmm4
push ecx
unpcklps xmm3, xmm2
lea ecx, [esp + 0x64]
movaps xmmword [esp + 0x84], xmm3
movss dword [esp + 0x4c], xmm0
mov dword [esp], 0x34000000
call fcn.00472910
test eax, eax
jne 0x6794d6
movaps xmm1, xmmword [esp + 0x40]
mov ecx, dword [ebp + 8]
movaps xmm2, xmm1
mov edx, dword [esp + 0x24]
movaps xmm0, xmm1
shufps xmm2, xmm1, 0x55
mulps xmm2, xmmword [esp + 0x70]
shufps xmm0, xmm1, 0
mulps xmm0, xmmword [esp + 0x60]
shufps xmm1, xmm1, 0xaa
mulps xmm1, xmmword [esp + 0x80]
addps xmm2, xmm0
addps xmm2, xmm1
movaps xmmword [esp + 0x50], xmm2
cmp eax, edx
je 0x679492
cmp eax, dword [esp + 0x20]
je 0x679492
cmp eax, esi
je 0x679492
movaps xmm0, xmmword [ecx]
movaps xmm1, xmm0
shufps xmm0, xmm0, 0xff
mulps xmm1, xmm2
movaps xmm2, xmm1
shufps xmm2, xmm1, 0xaa
addss xmm2, xmm0
movaps xmm0, xmm1
shufps xmm0, xmm1, 0x55
addss xmm0, xmm1
addps xmm2, xmm0
comiss xmm2, dword [0x77f9a4]
ja 0x6794d6
movaps xmm2, xmmword [esp + 0x50]
inc eax
add ecx, 0x10
cmp eax, edi
jl 0x679450
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x38]
and eax, 0x3fffffff
cmp ecx, eax
jne 0x6794c3
push 0x10
lea eax, [esp + 0x38]
push eax
push 0x7d8954
call fcn.00467c00
mov ecx, dword [esp + 0x44]
add esp, 0xc
movaps xmm0, xmmword [esp + 0x50]
shl ecx, 4
add ecx, dword [esp + 0x34]
movaps xmmword [ecx], xmm0
inc dword [esp + 0x38]
mov eax, dword [esp + 0x1c]
inc esi
movss xmm4, dword [0x719730]
add eax, 0x10
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov dword [esp + 0x1c], eax
cmp esi, edi
jl 0x679393
mov eax, dword [esp + 0x28]
add ecx, 0x10
mov dword [esp + 0x20], eax
mov dword [esp + 0x14], ecx
cmp eax, edi
jl 0x679370
mov ecx, dword [esp + 0x2c]
mov eax, ecx
add edx, 0x10
mov dword [esp + 0x24], eax
mov dword [esp + 0x18], edx
cmp eax, edi
jl 0x679340
push dword [0x884c50]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov edi, eax
mov esi, dword [edi + 4]
cmp esi, dword [edi + 0xc]
jae 0x679559
mov dword [esi], 0x77f5ec
rdtsc
mov dword [esp + 0x2c], eax
mov ecx, dword [esp + 0x2c]
lea eax, [esi + 0xc]
mov dword [esi + 4], ecx
mov dword [edi + 4], eax
mov eax, dword [esp + 0x38]
cmp eax, 3
jle 0x679577
push dword [ebp + 0x10]
mov ecx, dword [esp + 0x34]
push eax
push dword [esp + 0x3c]
call fcn.00679000
mov esi, eax
jmp 0x67957a
or esi, 0xffffffff
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x38], 0
test eax, eax
js 0x6795a4
and eax, 0x3fffffff
mov ecx, 0x7d8954
shl eax, 4
push eax
mov eax, dword [0x7d8954]
push dword [esp + 0x38]
call dword [eax + 0x10]
pop edi
mov eax, esi
pop esi
mov esp, ebp
pop ebp
ret 0xc