Function at 0x686210
Capabilities:
Get thread local storage value

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x88
mov eax, dword [ecx + 0x30]
push esi
xor esi, esi
mov dword [esp + 0x18], ecx
mov dword [esp + 0xc], eax
mov dword [esp + 0x48], 0
mov dword [esp + 0x4c], esi
mov dword [esp + 0x50], connect
mov dword [esp + 0x58], eax
push edi
test eax, eax
je 0x6862a1
push dword [0x884adc]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov edx, eax
mov eax, dword [esp + 0x10]
mov ecx, eax
shl ecx, 4
add ecx, 0x7f
mov edi, dword [edx + 0xc]
and ecx, 0xffffff80
mov dword [esp + 0xc], edi
lea esi, [ecx + edi]
cmp ecx, dword [edx + 8]
jg 0x686285
cmp esi, dword [edx + 0x10]
ja 0x686285
mov ecx, dword [esp + 0x1c]
mov dword [edx + 0xc], esi
mov esi, dword [esp + 0x50]
jmp 0x6862a7
push ecx
mov ecx, edx
call fcn.0046a3c0
mov esi, dword [esp + 0x50]
mov edi, eax
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0xc], edi
jmp 0x6862a7
xor edi, edi
mov dword [esp + 0xc], edi
or eax, 0x80000000
mov dword [esp + 0x4c], edi
mov dword [esp + 0x10], eax
mov edx, edi
mov dword [esp + 0x54], eax
mov eax, dword [ecx + 0x2c]
mov dword [esp + 0x14], edx
mov dword [esp + 0x58], edx
mov dword [esp + 0x18], eax
test eax, eax
je 0x686503
movaps xmm5, xmmword [0x719550]
nop dword [eax + eax]
mov esi, dword [ebp + 0xc]
lea edx, [eax + 8]
movaps xmm4, xmmword [ecx + 0x100]
mov edi, 3
movaps xmm6, xmmword [ecx + 0xe0]
lea ecx, [esp + 0x60]
movaps xmm7, xmmword [esi]
mov eax, dword [edx]
xorps xmm1, xmm1
add edx, 4
movd xmm3, dword [eax + 0x20]
movd xmm2, dword [eax + 0x24]
movd xmm0, dword [eax + 0x28]
cvtdq2ps xmm3, xmm3
cvtdq2ps xmm0, xmm0
cvtdq2ps xmm2, xmm2
unpcklps xmm3, xmm0
unpcklps xmm2, xmm1
unpcklps xmm3, xmm2
mulps xmm3, xmm4
addps xmm3, xmm6
movaps xmm1, xmm3
movaps xmm0, xmm3
shufps xmm1, xmm3, 0
mulps xmm1, xmm7
shufps xmm0, xmm3, 0x55
mulps xmm0, xmmword [esi + 0x10]
addps xmm1, xmmword [esi + 0x30]
shufps xmm3, xmm3, 0xaa
mulps xmm3, xmmword [esi + 0x20]
addps xmm1, xmm0
addps xmm1, xmm3
movaps xmmword [ecx], xmm1
add ecx, 0x10
sub edi, 1
jne 0x686300
movaps xmm4, xmmword [esp + 0x60]
movaps xmm2, xmmword [esp + 0x70]
movaps xmm3, xmmword [esp + 0x80]
subps xmm2, xmm4
subps xmm3, xmm4
mov esi, dword [esp + 0x50]
movaps xmm0, xmm2
shufps xmm0, xmm2, 0xd2
movaps xmm1, xmm3
shufps xmm1, xmm3, 0xc9
mulps xmm1, xmm0
shufps xmm3, xmm3, 0xd2
shufps xmm2, xmm2, 0xc9
mulps xmm3, xmm2
subps xmm3, xmm1
movaps xmm1, xmm4
mulps xmm1, xmm3
movaps xmmword [esp + 0x20], xmm3
movaps xmm0, xmm1
shufps xmm0, xmm1, 0x55
addss xmm0, xmm1
shufps xmm1, xmm1, 0xaa
addss xmm1, xmm0
xorps xmm1, xmmword [0x719730]
movss dword [esp + 0x2c], xmm1
movaps xmm3, xmmword [esp + 0x20]
movaps xmm2, xmm3
mulps xmm2, xmm3
movaps xmm0, xmm2
movaps xmm1, xmm2
shufps xmm0, xmm2, 0x55
addss xmm0, xmm2
shufps xmm1, xmm2, 0xaa
addss xmm1, xmm0
comiss xmm1, dword [0x7c1b60]
jbe 0x6864e1
movaps xmm0, xmm2
shufps xmm0, xmm2, 0x55
addss xmm0, xmm2
shufps xmm2, xmm2, 0xaa
addss xmm2, xmm0
movaps xmm0, xmm5
shufps xmm2, xmm2, 0
subps xmm0, xmm2
shufps xmm0, xmm0, 0
movmskps eax, xmm0
test al, 1
je 0x6864e1
movaps xmm1, xmmword [0x719710]
rsqrtps xmm0, xmm2
mulps xmm2, xmm0
mov eax, dword [esp + 0x10]
and eax, 0x3fffffff
mulps xmm2, xmm0
mulps xmm0, xmmword [0x719700]
subps xmm1, xmm2
mulps xmm1, xmm0
shufps xmm1, xmm1, 0
mulps xmm1, xmm3
mulps xmm4, xmm1
movaps xmmword [esp + 0x20], xmm1
movaps xmm0, xmm4
shufps xmm0, xmm4, 0x55
addss xmm0, xmm4
shufps xmm4, xmm4, 0xaa
addss xmm4, xmm0
shufps xmm4, xmm4, 0
subps xmm5, xmm4
shufps xmm5, xmm5, 0
movaps xmmword [esp + 0x30], xmm5
cmp esi, eax
jne 0x6864a5
push 0x10
lea eax, [esp + 0x50]
push eax
push 0x7d8954
call fcn.00467c00
mov esi, dword [esp + 0x5c]
add esp, 0xc
mov ecx, dword [esp + 0x4c]
movaps xmm1, xmmword [esp + 0x20]
movaps xmm5, xmmword [esp + 0x30]
jmp 0x6864a9
mov ecx, dword [esp + 0xc]
mov eax, esi
shufps xmm5, xmm5, 0
add eax, eax
movaps xmm0, xmm1
unpckhps xmm0, xmm5
inc esi
mov dword [esp + 0x50], esi
shufps xmm1, xmm0, 0xc4
movaps xmmword [ecx + eax*8], xmm1
mov eax, dword [esp + 0x54]
mov edi, dword [esp + 0x4c]
mov esi, dword [esp + 0x50]
movaps xmm5, xmmword [0x719550]
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], edi
jmp 0x6864e5
mov edi, dword [esp + 0xc]
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
mov eax, dword [eax]
mov dword [esp + 0x18], eax
test eax, eax
jne 0x6862e0
mov eax, dword [esp + 0x58]
mov dword [esp + 0x14], eax
mov eax, dword [ebp + 8]
xor ecx, ecx
movaps xmm4, xmmword [0x786920]
mov dword [esp + 0x1c], ecx
cmp dword [eax + 4], ecx
jle 0x68659f
xor edx, edx
mov dword [esp + 0x18], edx
mov eax, dword [eax]
movups xmm5, xmmword [eax + edx]
test esi, esi
jle 0x68658b
mov ecx, edi
mov edx, esi
mov edi, dword [ebp + 0x10]
movaps xmm3, xmmword [ecx]
movaps xmm1, xmm3
movaps xmm0, xmm3
mulps xmm1, xmm5
shufps xmm0, xmm3, 0xff
movaps xmm2, xmm1
shufps xmm2, xmm1, 0xaa
addss xmm2, xmm0
movaps xmm0, xmm1
shufps xmm0, xmm1, 0x55
addss xmm0, xmm1
addps xmm2, xmm0
movaps xmm0, xmm4
shufps xmm2, xmm2, 0
subps xmm0, xmm2
shufps xmm0, xmm0, 0
movmskps eax, xmm0
test al, 1
je 0x686577
movaps xmm4, xmm2
movaps xmmword [edi], xmm3
add ecx, 0x10
sub edx, 1
jne 0x686533
mov edi, dword [esp + 0xc]
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x18]
mov eax, dword [ebp + 8]
inc ecx
add edx, 0x10
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x18], edx
cmp ecx, dword [eax + 4]
jl 0x686522
push dword [0x884adc]
xor eax, eax
movss dword [esp + 0x20], xmm4
cmp dword [esp + 0x18], edi
cmove esi, eax
mov dword [esp + 0x54], esi
mov esi, dword [esp + 0x60]
shl esi, 4
add esi, 0x7f
and esi, 0xffffff80
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov edx, dword [esp + 0x14]
lea edi, [esi + 0xf]
and edi, 0xfffffff0
cmp esi, dword [eax + 8]
jg 0x6865ec
lea ecx, [edi + edx]
cmp ecx, dword [eax + 0xc]
jne 0x6865ec
cmp dword [eax + 0x14], edx
je 0x6865ec
mov dword [eax + 0xc], edx
jmp 0x6865f5
push edi
push edx
mov ecx, eax
call fcn.0046a590
mov eax, dword [esp + 0x54]
mov dword [esp + 0x50], 0
test eax, eax
js 0x68661f
and eax, 0x3fffffff
mov ecx, 0x7d8954
shl eax, 4
push eax
mov eax, dword [0x7d8954]
push dword [esp + 0x50]
call dword [eax + 0x10]
fld dword [esp + 0x1c]
pop edi
pop esi
mov esp, ebp
pop ebp
ret 0xc