Function at 0x682660
Capabilities:
Get thread local storage value

Disassembly:
sub esp, 0x2c
push ebx
push ebp
push esi
push edi
push dword [0x884adc]
mov ebp, ecx
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
push 0x1b0
mov ecx, dword [eax + 0x2c]
mov eax, dword [ecx]
call dword [eax + 4]
test eax, eax
je 0x682695
mov ecx, eax
call fcn.00680930
mov ebx, eax
mov dword [esp + 0x14], eax
jmp 0x68269b
xor ebx, ebx
mov dword [esp + 0x14], ebx
movups xmm0, xmmword [ebp]
lea esi, [ebx + 0x38]
mov dword [esp + 0x18], esi
movups xmmword [ebx], xmm0
movaps xmm0, xmmword [ebp + 0xc0]
movaps xmmword [ebx + 0xc0], xmm0
movaps xmm0, xmmword [ebp + 0xd0]
movaps xmmword [ebx + 0xd0], xmm0
movaps xmm0, xmmword [ebp + 0xe0]
movaps xmmword [ebx + 0xe0], xmm0
movaps xmm0, xmmword [ebp + 0xf0]
movaps xmmword [ebx + 0xf0], xmm0
movaps xmm0, xmmword [ebp + 0x100]
movaps xmmword [ebx + 0x100], xmm0
movaps xmm0, xmmword [ebp + 0x110]
movaps xmmword [ebx + 0x110], xmm0
movaps xmm0, xmmword [ebp + 0x120]
movaps xmmword [ebx + 0x120], xmm0
movaps xmm0, xmmword [ebp + 0x130]
movaps xmmword [ebx + 0x130], xmm0
movaps xmm0, xmmword [ebp + 0x140]
movaps xmmword [ebx + 0x140], xmm0
movaps xmm0, xmmword [ebp + 0x150]
movaps xmmword [ebx + 0x150], xmm0
mov eax, dword [ebp + 0x190]
mov dword [ebx + 0x190], eax
mov eax, dword [ebp + 0x194]
mov dword [ebx + 0x194], eax
mov eax, dword [ebp + 0x198]
mov dword [ebx + 0x198], eax
mov eax, dword [ebp + 0x19c]
mov dword [ebx + 0x19c], eax
movzx eax, byte [ebp + 0x1a4]
mov byte [ebx + 0x1a4], al
movzx eax, byte [ebp + 0x1a6]
mov byte [ebx + 0x1a6], al
mov ecx, dword [esi + 8]
mov edi, dword [ebp + 0x3c]
and ecx, 0x3fffffff
cmp ecx, edi
jge 0x6827a9
add ecx, ecx
mov eax, edi
cmp edi, ecx
push 0x40
cmovl eax, ecx
push eax
push esi
push 0x7d8954
call fcn.00467b80
add esp, 0x10
mov ecx, dword [esi + 4]
mov edx, edi
sub edx, ecx
shl ecx, 6
add ecx, 0x34
test edx, edx
jle 0x6827dc
add ecx, dword [esi]
nop dword [eax]
lea eax, [ecx - 0x34]
test eax, eax
je 0x6827d4
mov dword [ecx - 8], 0
mov dword [ecx], 0xffffffff
add ecx, 0x40
sub edx, 1
jne 0x6827c0
mov dword [esi + 4], edi
xor edi, edi
cmp dword [ebp + 0x3c], edi
jle 0x682832
mov ebx, dword [esp + 0x18]
xor esi, esi
nop dword [eax]
mov edx, dword [ebp + 0x38]
inc edi
mov ecx, dword [ebx]
add edx, esi
add ecx, esi
add esi, 0x40
movaps xmm0, xmmword [edx + 0x10]
movaps xmmword [ecx + 0x10], xmm0
mov eax, dword [edx + 0x20]
mov dword [ecx + 0x20], eax
mov eax, dword [edx + 0x24]
mov dword [ecx + 0x24], eax
mov eax, dword [edx + 0x28]
mov dword [ecx + 0x28], eax
mov eax, dword [edx + 0x2c]
mov dword [ecx + 0x2c], eax
mov eax, dword [edx + 0x30]
mov dword [ecx + 0x30], eax
mov eax, dword [edx + 0x34]
mov dword [ecx + 0x34], eax
cmp edi, dword [ebp + 0x3c]
jl 0x6827f0
mov ebx, dword [esp + 0x14]
mov ecx, dword [ebx + 0x4c]
lea edi, [ebx + 0x44]
mov esi, dword [ebp + 0x48]
and ecx, 0x3fffffff
cmp ecx, esi
jge 0x68285f
add ecx, ecx
mov eax, esi
cmp esi, ecx
push 0x10
cmovl eax, ecx
push eax
push edi
push 0x7d8954
call fcn.00467b80
add esp, 0x10
mov dword [edi + 4], esi
xor esi, esi
cmp dword [ebp + 0x48], esi
jle 0x682888
xor edx, edx
nop dword [eax + eax]
mov eax, dword [ebp + 0x44]
lea edx, [edx + 0x10]
mov ecx, dword [edi]
inc esi
movaps xmm0, xmmword [eax + edx - 0x10]
movaps xmmword [ecx + edx - 0x10], xmm0
cmp esi, dword [ebp + 0x48]
jl 0x682870
mov eax, dword [ebp + 0x20]
mov dword [esp + 0x30], 0
mov dword [esp + 0x34], 0
mov dword [esp + 0x38], 0xffffffff
test eax, eax
je 0x6829d0
push eax
push 0x7d8954
lea ecx, [esp + 0x38]
call fcn.0046bef0
mov esi, dword [ebp + 0x1c]
test esi, esi
je 0x6829d0
mov eax, dword [esi]
test eax, eax
je 0x6828d8
nop dword [eax + eax]
mov esi, eax
mov eax, dword [esi]
test eax, eax
jne 0x6828d0
test esi, esi
je 0x6829d0
mov edx, dword [ebx + 0x18]
test edx, edx
je 0x6828f0
cmp dword [edx + 0xa00], 0
jne 0x682958
mov eax, dword [0x7d8954]
mov ecx, 0x7d8954
push 0xa10
xor edi, edi
call dword [eax + 4]
mov edx, eax
lea eax, [edi + 0x1f]
lea ecx, [edx + 0x9b0]
nop
mov dword [ecx], edi
mov edi, ecx
mov dword [esp + 0x18], ecx
sub ecx, 0x50
sub eax, 1
jns 0x682910
mov dword [edx + 0xa0c], 0
mov eax, edi
mov dword [edx + 0xa00], eax
mov dword [edx + 0xa04], 0
mov eax, dword [ebx + 0x18]
mov dword [edx + 0xa08], eax
mov dword [ebx + 0x18], edx
mov eax, dword [edx + 0xa08]
test eax, eax
je 0x682958
mov dword [eax + 0xa04], edx
mov ecx, dword [edx + 0xa00]
mov eax, dword [ecx]
mov dword [edx + 0xa00], eax
mov dword [ecx + 0x40], edx
inc dword [edx + 0xa0c]
movups xmm0, xmmword [esi + 0x10]
movups xmmword [ecx + 0x10], xmm0
movq xmm0, qword [esi + 0x20]
movq qword [ecx + 0x20], xmm0
mov eax, dword [esi + 0x28]
mov dword [ecx + 0x28], eax
mov eax, dword [esi + 0x2c]
mov dword [ecx + 0x2c], eax
mov eax, dword [esi + 0x30]
mov dword [ecx + 0x30], eax
mov eax, dword [esi + 0x34]
mov dword [ecx + 0x34], eax
mov dword [ecx + 4], 0
mov eax, dword [ebx + 0x1c]
mov dword [ecx], eax
mov eax, dword [ebx + 0x1c]
test eax, eax
je 0x6829af
mov dword [eax + 4], ecx
inc dword [ebx + 0x20]
push ecx
push esi
mov dword [ebx + 0x1c], ecx
lea ecx, [esp + 0x38]
push 0x7d8954
call fcn.0046ba50
mov esi, dword [esi + 4]
test esi, esi
jne 0x6828e0
mov eax, dword [ebp + 0x30]
test eax, eax
je 0x682b18
push eax
push 0x7d8954
lea ecx, [esp + 0x2c]
mov dword [esp + 0x2c], 0
mov dword [esp + 0x30], 0
mov dword [esp + 0x34], 0xffffffff
call fcn.0046bef0
mov ebp, dword [ebp + 0x2c]
mov dword [esp + 0x10], ebp
test ebp, ebp
je 0x682b01
mov eax, dword [ebp]
test eax, eax
je 0x682a2d
nop dword [eax + eax]
mov ebp, eax
mov dword [esp + 0x10], ebp
mov eax, dword [ebp]
test eax, eax
jne 0x682a20
test ebp, ebp
je 0x682b01
lea eax, [ebx + 0x28]
mov dword [esp + 0x20], eax
nop dword [eax]
push ebp
mov ecx, eax
call fcn.00680c90
mov esi, eax
mov ebx, 3
lea edi, [esi + 8]
push 0
push dword [edi]
lea ecx, [esp + 0x38]
call fcn.0046b890
mov dword [edi], eax
lea edi, [edi + 4]
sub ebx, 1
jne 0x682a52
mov eax, ebp
mov dword [esp + 0x18], 3
sub eax, esi
lea edi, [esi + 0x14]
mov dword [esp + 0x1c], eax
nop dword [eax]
mov ecx, dword [edi]
mov eax, ecx
and ecx, 0xfffffffc
and eax, 3
add eax, ecx
lea ecx, [esp + 0x24]
push 0
push eax
call fcn.0046b890
mov ebx, eax
mov ebp, ebx
and ebp, 3
and ebx, 0xfffffffc
je 0x682ac5
mov ecx, dword [edi]
mov eax, ecx
and ecx, 0xfffffffc
and eax, 3
add eax, ecx
lea ecx, [esp + 0x24]
push eax
call fcn.0046bc90
lea eax, [ebx + ebp]
mov dword [edi], eax
mov dword [ebx + ebp*4 + 0x14], esi
jmp 0x682adb
mov eax, dword [esp + 0x1c]
lea ecx, [esp + 0x24]
push esi
add eax, esi
push eax
push 0x7d8954
call fcn.0046ba50
add edi, 4
inc esi
sub dword [esp + 0x18], 1
jne 0x682a80
mov ebp, dword [esp + 0x10]
mov eax, dword [esp + 0x20]
mov ebp, dword [ebp + 4]
mov dword [esp + 0x10], ebp
test ebp, ebp
jne 0x682a40
mov ebx, dword [esp + 0x14]
push 0x7d8954
lea ecx, [esp + 0x28]
call fcn.0046b3e0
lea ecx, [esp + 0x24]
call fcn.0046b110
push 0x7d8954
lea ecx, [esp + 0x34]
call fcn.0046b3e0
lea ecx, [esp + 0x30]
call fcn.0046b110
pop edi
pop esi
pop ebp
mov eax, ebx
pop ebx
add esp, 0x2c
ret