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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x318
push esi
push edi
push dword [0x884c50]
mov edi, dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov dword [esp + 0x18], ecx
call edi
mov ecx, eax
mov esi, dword [ecx + 4]
cmp esi, dword [ecx + 0xc]
jae 0x6c653a
mov dword [esi], str.LtBvTree3
mov dword [esi + 0xc], str.StQueryTree
rdtsc
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x10]
mov dword [esi + 4], eax
lea eax, [esi + 0x10]
mov dword [ecx + 4], eax
mov esi, dword [esp + 0x14]
mov ecx, dword [ebp + 8]
mov edx, dword [ebp + 0xc]
mov dword [esp + 0x50], ecx
mov eax, dword [esi + 8]
mov ecx, dword [ecx + 8]
mov dword [esp + 0x60], eax
mov eax, dword [ebp + 0x10]
mov dword [esp + 0x5c], eax
mov eax, dword [edx + 8]
mov dword [esp + 0x54], edx
mov edx, dword [ebp + 0x10]
mov dword [esp + 0x58], 0
movss xmm4, dword [ecx + 0x5c]
movaps xmm2, xmmword [ecx + 0x40]
mulss xmm4, dword [edx + 0x58]
push eax
subps xmm2, xmmword [ecx + 0x50]
movss xmm3, dword [eax + 0x5c]
mulss xmm3, dword [edx + 0x58]
movaps xmm0, xmm4
push ecx
movaps xmm1, xmmword [eax + 0x50]
subps xmm1, xmmword [eax + 0x40]
shufps xmm0, xmm0, 0
mulps xmm2, xmm0
movaps xmm0, xmm3
shufps xmm0, xmm0, 0
mulps xmm1, xmm0
addps xmm2, xmm1
movaps xmmword [esp + 0xc8], xmm2
movss xmm0, dword [ecx + 0x9c]
movss xmm1, dword [eax + 0x9c]
mulss xmm1, xmm3
mulss xmm0, xmm4
mulss xmm1, dword [eax + 0xa0]
mulss xmm0, dword [ecx + 0xa0]
lea ecx, [esp + 0x78]
addss xmm1, xmm0
movss dword [esp + 0xd4], xmm1
call fcn.0046efa0
lea eax, [esp + 0x11c]
mov dword [esp + 0x118], 0x80000080
mov dword [esp + 0x110], eax
lea ecx, [esp + 0xd0]
lea eax, [esp + 0x70]
mov dword [esp + 0x11c], 0xffffffff
push eax
mov dword [esp + 0x118], 1
call fcn.0046ee90
mov ecx, dword [ebp + 0xc]
add esi, 0x10
mov eax, dword [ebp + 8]
mov dword [esp + 0x10], esi
mov ecx, dword [ecx + 8]
mov eax, dword [eax + 8]
mov dword [esp + 0x18], eax
mov dword [esp + 0xc], ecx
movaps xmm4, xmmword [ecx]
movaps xmm3, xmmword [ecx + 0x20]
movaps xmm1, xmm4
unpcklps xmm1, xmmword [ecx + 0x10]
unpckhps xmm4, xmmword [ecx + 0x10]
movaps xmm2, xmm1
movlhps xmm2, xmm3
movaps xmm5, xmm2
shufps xmm4, xmm3, 0xe4
movhlps xmm5, xmm1
movaps xmm1, xmmword [esp + 0xc0]
movaps xmm0, xmm1
shufps xmm5, xmm3, 0xd4
shufps xmm0, xmm1, 0x55
mulps xmm5, xmm0
movaps xmm0, xmm1
shufps xmm0, xmm1, 0
mulps xmm0, xmm2
shufps xmm1, xmm1, 0xaa
mulps xmm1, xmm4
addps xmm5, xmm0
addps xmm5, xmm1
movaps xmmword [esp + 0x40], xmm5
mov edx, dword [ebp + 0x10]
lea esi, [esp + 0x20]
push esi
mov eax, dword [edx + 0x60]
cmp dword [eax + 0x10], 0
mov eax, dword [ebp + 8]
je 0x6c683d
movss xmm0, dword [ecx + 0x9c]
mov esi, dword [esp + 0x1c]
movaps xmm2, xmm0
mulss xmm2, xmm0
movss xmm1, dword [esi + 0x9c]
mulss xmm2, dword [ecx + 0xa0]
addss xmm1, xmm0
mov ecx, dword [eax]
movss xmm0, dword [edx + 0xc]
lea edx, [esp + 0xd4]
mulss xmm0, dword [0x719760]
push ecx
mulss xmm1, dword [esi + 0xa0]
mov eax, dword [ecx]
movss dword [esp + 0x24], xmm2
addss xmm1, xmm2
addss xmm1, xmm0
movss dword [esp], xmm1
push edx
call dword [eax + 0x1c]
mov edx, dword [ebp + 0x10]
mov eax, esi
mov ecx, dword [ebp + 0xc]
movaps xmm5, xmmword [esi + 0x50]
mov esi, dword [esp + 0x10]
movss xmm6, dword [edx + 0xc]
mulss xmm6, dword [0x719760]
addss xmm6, dword [eax + 0xa0]
mov eax, dword [ecx + 8]
movaps xmm4, xmmword [eax]
subps xmm5, xmmword [eax + 0x30]
movaps xmm3, xmmword [eax + 0x20]
movaps xmm1, xmm4
unpcklps xmm1, xmmword [eax + 0x10]
unpckhps xmm4, xmmword [eax + 0x10]
movaps xmm2, xmm1
addss xmm6, dword [esp + 0x1c]
movlhps xmm2, xmm3
movaps xmm0, xmm5
shufps xmm0, xmm5, 0x55
movaps xmm7, xmm2
movhlps xmm7, xmm1
shufps xmm7, xmm3, 0xd4
mulps xmm7, xmm0
movaps xmm0, xmm5
mov eax, dword [esp + 0xc]
shufps xmm0, xmm5, 0
mulps xmm0, xmm2
shufps xmm4, xmm3, 0xe4
shufps xmm5, xmm5, 0xaa
mulps xmm4, xmm5
movaps xmm5, xmmword [esp + 0x30]
addps xmm7, xmm0
shufps xmm6, xmm6, 0
addps xmm7, xmm4
movaps xmm4, xmmword [esp + 0x20]
movaps xmm0, xmm7
subps xmm0, xmm6
maxps xmm4, xmm0
movaps xmm0, xmm7
addps xmm0, xmm6
movaps xmmword [esp + 0x20], xmm4
minps xmm5, xmm0
movaps xmmword [esp + 0x30], xmm5
movaps xmm3, xmm5
movss xmm0, dword [eax + 0x9c]
subps xmm3, xmm4
comiss xmm0, dword [0x718814]
jbe 0x6c681a
subps xmm7, xmmword [eax + 0x80]
movaps xmm2, xmmword [eax + 0x90]
movaps xmm1, xmm2
shufps xmm1, xmm2, 0xc9
shufps xmm2, xmm2, 0xd2
movaps xmm0, xmm7
shufps xmm0, xmm7, 0xd2
shufps xmm7, xmm7, 0xc9
mulps xmm1, xmm0
movss xmm0, dword [eax + 0x5c]
mulss xmm0, dword [edx + 0x58]
mulps xmm2, xmm7
movaps xmm7, xmmword [esp + 0x40]
shufps xmm0, xmm0, 0
subps xmm2, xmm1
mulps xmm2, xmm0
addps xmm7, xmm2
jmp 0x6c681f
movaps xmm7, xmmword [esp + 0x40]
xorps xmm2, xmm2
movaps xmm6, xmm2
minps xmm6, xmm7
maxps xmm2, xmm7
addps xmm6, xmm4
addps xmm2, xmm5
movaps xmmword [esp + 0x20], xmm6
movaps xmmword [esp + 0x30], xmm2
jmp 0x6c687e
mov ecx, dword [eax]
movss xmm0, dword [edx + 0xc]
lea edx, [esp + 0xd4]
mulss xmm0, dword [0x719760]
push ecx
mov eax, dword [ecx]
movss dword [esp], xmm0
push edx
call dword [eax + 0x1c]
movaps xmm2, xmmword [esp + 0x30]
movaps xmm6, xmmword [esp + 0x20]
movaps xmm3, xmm2
movaps xmm7, xmmword [esp + 0x40]
subps xmm3, xmm6
mov esi, dword [esp + 0x10]
mov ecx, dword [ebp + 0xc]
mov edx, dword [ebp + 0x10]
test esi, esi
je 0x6c690e
movaps xmm0, xmmword [esi]
movaps xmm1, xmm2
cmpleps xmm1, xmmword [esi + 0x10]
cmpleps xmm0, xmm6
andps xmm1, xmm0
movmskps eax, xmm1
and eax, 7
cmp al, 7
jne 0x6c68ac
mov dword [esp + 0x10], 1
jmp 0x6c692a
movss xmm4, dword [edx + 0xc]
xorps xmm5, xmm5
mulss xmm4, dword [0x719760]
shufps xmm4, xmm4, 0
subps xmm6, xmm4
addps xmm4, xmm2
movaps xmm2, xmmword [0x7c2830]
mulps xmm2, xmm3
movaps xmm3, xmm5
maxps xmm3, xmm7
minps xmm5, xmm7
mulps xmm3, xmmword [0x7c2840]
movaps xmm0, xmm2
mulps xmm5, xmmword [0x7c2840]
xorps xmm0, xmmword [0x719130]
maxps xmm3, xmm0
minps xmm5, xmm2
addps xmm3, xmm6
addps xmm5, xmm4
movaps xmmword [esp + 0x20], xmm3
movaps xmmword [esp + 0x30], xmm5
movaps xmmword [esi], xmm3
movaps xmmword [esi + 0x10], xmm5
mov ecx, dword [ecx]
lea edx, [esp + 0x110]
push edx
lea edx, [esp + 0x24]
push edx
mov eax, dword [ecx]
call dword [eax + 0x2c]
mov dword [esp + 0x10], 0
push dword [0x884c50]
call edi
mov dword [esp + 0x1c], eax
mov esi, dword [eax + 4]
cmp esi, dword [eax + 0xc]
jae 0x6c695b
mov dword [esi], str.StNarrow
rdtsc
mov dword [esp + 0xc], eax
mov ecx, dword [esp + 0xc]
lea eax, [esi + 0xc]
mov dword [esi + 4], ecx
mov ecx, dword [esp + 0x1c]
mov dword [ecx + 4], eax
cmp dword [esp + 0x10], 0
jne 0x6c6a21
mov edi, dword [esp + 0x14]
mov esi, dword [esp + 0x114]
mov edi, dword [edi + 0x34]
call fcn.004758b0
mov ecx, eax
mov eax, esi
cdq
and edx, 3
add eax, edx
sar eax, 2
sub eax, edi
inc eax
shl eax, 9
push eax
mov eax, dword [ecx]
mov eax, dword [eax + 0x20]
call eax
test al, al
jne 0x6c69cd
push 1
call fcn.00650190
add esp, 4
push dword [0x884c50]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov edi, eax
mov esi, dword [edi + 4]
cmp esi, dword [edi + 0xc]
jae 0x6c6a73
mov dword [esi], 0x77f784
rdtsc
mov dword [esp + 0xc], eax
jmp 0x6c6a66
mov eax, dword [esp + 0x114]
cmp eax, 1
jle 0x6c69f0
push dword [esp + 0xc]
dec eax
push eax
push 0
push dword [esp + 0x11c]
call fcn.006c1590
add esp, 0x10
mov ecx, dword [ebp + 0xc]
mov ecx, dword [ecx]
mov eax, dword [ecx]
mov eax, dword [eax + 0x10]
call eax
push dword [ebp + 0x14]
push dword [esp + 0x114]
push eax
lea eax, [esp + 0x5c]
push eax
mov eax, dword [esp + 0x24]
add eax, 0x30
push eax
call fcn.006d9470
mov edi, dword [sym.imp.KERNEL32.dll_TlsGetValue]
jmp 0x6c6a45
mov ecx, dword [ebp + 0xc]
mov ecx, dword [ecx]
mov eax, dword [ecx]
mov eax, dword [eax + 0x10]
call eax
push dword [ebp + 0x14]
push 0
push eax
lea eax, [esp + 0x5c]
push eax
mov eax, dword [esp + 0x24]
add eax, 0x30
push eax
call fcn.006d9470
add esp, 0x14
push dword [0x884c50]
call edi
mov edi, eax
mov esi, dword [edi + 4]
cmp esi, dword [edi + 0xc]
jae 0x6c6a73
mov dword [esi], 0x77f784
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 + 0x118]
mov dword [esp + 0x114], 0
test eax, eax
js 0x6c6aa6
and eax, 0x3fffffff
mov ecx, 0x7d8954
shl eax, 2
push eax
mov eax, dword [0x7d8954]
push dword [esp + 0x114]
call dword [eax + 0x10]
pop edi
pop esi
mov esp, ebp
pop ebp
ret 0x10