Function at 0x510450
Capabilities:
Get thread local storage value

Disassembly:
mov ecx, dword [ecx + 0x88]
jmp 0x538530
push ebx
push esi
push edi
mov esi, ecx
call fcn.0045c440
mov eax, dword [esi + 8]
and eax, 0x3fffffff
cmp dword [esi + 4], eax
jne 0x538557
push 0x14
push esi
push 0x7d8954
call fcn.00467c00
add esp, 0xc
mov eax, dword [esi + 4]
lea ecx, [eax + eax*4]
mov eax, dword [esi]
lea eax, [eax + ecx*4]
test eax, eax
je 0x538569
mov byte [eax], 0
mov edx, dword [esi + 4]
mov eax, dword [esi]
mov ebx, dword [esp + 0x10]
lea ecx, [edx + edx*4]
lea edi, [eax + ecx*4]
lea eax, [edx + 1]
mov dword [esi + 4], eax
mov eax, dword [esi + 0xc]
inc dword [eax + 0x8c]
mov eax, dword [ebx]
mov dword [edi], eax
mov eax, dword [ebx + 4]
mov dword [edi + 4], eax
mov eax, dword [ebx + 8]
mov dword [edi + 8], eax
mov eax, dword [ebx + 0xc]
mov dword [edi + 0xc], eax
mov eax, dword [ebx + 0x10]
mov dword [edi + 0x10], eax
movzx eax, byte [edi]
dec eax
cmp eax, 0x24
ja case.0x5385b0.22
jmp dword [eax*4 + 0x5388bc]
mov ecx, dword [edi + 4]
call fcn.0045c0c0
mov ecx, dword [edi + 8]
call fcn.0045c0c0
call fcn.0045c490
pop edi
pop esi
pop ebx
ret 4
push dword [0x884adc]
movzx esi, word [edi + 8]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov ecx, dword [eax + 0x2c]
lea eax, [esi*4]
push eax
mov edx, dword [ecx]
call dword [edx + 4]
mov dword [edi + 4], eax
movzx ecx, word [ebx + 8]
shl ecx, 2
push ecx
push dword [ebx + 4]
push eax
call fcn.0045d810
mov esi, dword [edi + 4]
add esp, 0xc
movzx eax, word [edi + 8]
lea edi, [esi + eax*4]
cmp esi, edi
jae case.0x5385b0.22
nop dword [eax + eax]
mov ecx, dword [esi]
add esi, 4
call fcn.0045c0c0
cmp esi, edi
jb 0x538620
call fcn.0045c490
pop edi
pop esi
pop ebx
ret 4
push dword [0x884adc]
movzx esi, word [edi + 8]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov ecx, dword [eax + 0x2c]
lea eax, [esi*4]
push eax
mov edx, dword [ecx]
call dword [edx + 4]
mov dword [edi + 4], eax
movzx ecx, word [ebx + 8]
shl ecx, 2
push ecx
push dword [ebx + 4]
push eax
call fcn.0045d810
mov esi, dword [edi + 4]
add esp, 0xc
movzx eax, word [edi + 8]
lea edi, [esi + eax*4]
cmp esi, edi
jae case.0x5385b0.22
mov ecx, dword [esi]
add esi, 4
call fcn.0045c0c0
cmp esi, edi
jb 0x538682
call fcn.0045c490
pop edi
pop esi
pop ebx
ret 4
mov ecx, dword [edi + 4]
call fcn.0045c0c0
mov ecx, dword [edi + 8]
call fcn.0045c0c0
mov eax, dword [esi + 0x18]
lea ebx, [esi + 0x10]
and eax, 0x3fffffff
cmp dword [ebx + 4], eax
jne 0x5386cb
push 0x14
push ebx
push 0x7d8954
call fcn.00467c00
add esp, 0xc
mov eax, dword [ebx + 4]
lea ecx, [eax + eax*4]
mov eax, dword [ebx]
lea ecx, [eax + ecx*4]
test ecx, ecx
je 0x5386e6
movups xmm0, xmmword [edi]
movups xmmword [ecx], xmm0
mov eax, dword [edi + 0x10]
mov dword [ecx + 0x10], eax
inc dword [ebx + 4]
dec dword [esi + 4]
call fcn.0045c490
pop edi
pop esi
pop ebx
ret 4
push dword [0x884adc]
movzx esi, word [edi + 8]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov ecx, dword [eax + 0x2c]
lea eax, [esi*4]
push eax
mov edx, dword [ecx]
call dword [edx + 4]
mov dword [edi + 4], eax
movzx ecx, word [ebx + 8]
shl ecx, 2
push ecx
push dword [ebx + 4]
push eax
call fcn.0045d810
mov esi, dword [edi + 4]
add esp, 0xc
movzx eax, word [edi + 8]
lea edi, [esi + eax*4]
cmp esi, edi
jae case.0x5385b0.22
mov ecx, dword [esi]
add esi, 4
call fcn.0045c0c0
cmp esi, edi
jb 0x538740
call fcn.0045c490
pop edi
pop esi
pop ebx
ret 4
push dword [0x884adc]
movzx esi, word [edi + 8]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov ecx, dword [eax + 0x2c]
lea eax, [esi*4]
push eax
mov edx, dword [ecx]
call dword [edx + 4]
mov dword [edi + 4], eax
movzx ecx, word [ebx + 8]
shl ecx, 2
push ecx
push dword [ebx + 4]
push eax
call fcn.0045d810
mov esi, dword [edi + 4]
add esp, 0xc
movzx eax, word [edi + 8]
lea edi, [esi + eax*4]
cmp esi, edi
jae case.0x5385b0.22
mov ecx, dword [esi]
add esi, 4
call fcn.0045c0c0
cmp esi, edi
jb 0x5387a2
call fcn.0045c490
pop edi
pop esi
pop ebx
ret 4
mov ecx, dword [edi + 4]
call fcn.0045c0c0
push dword [0x884adc]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
push 0x20
mov ecx, dword [eax + 0x2c]
mov eax, dword [ecx]
call dword [eax + 4]
test eax, eax
je 0x5387fc
mov ecx, dword [ebx + 8]
movups xmm0, xmmword [ecx]
movups xmmword [eax], xmm0
movups xmm0, xmmword [ecx + 0x10]
movups xmmword [eax + 0x10], xmm0
mov dword [edi + 8], eax
call fcn.0045c490
pop edi
pop esi
pop ebx
ret 4
xor eax, eax
mov dword [edi + 8], eax
call fcn.0045c490
pop edi
pop esi
pop ebx
ret 4
push dword [0x884adc]
movzx esi, word [edi + 8]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov ecx, dword [eax + 0x2c]
lea eax, [esi*4]
push eax
mov edx, dword [ecx]
call dword [edx + 4]
mov dword [edi + 4], eax
movzx ecx, word [ebx + 8]
shl ecx, 2
push ecx
push dword [ebx + 4]
push eax
call fcn.0045d810
mov esi, dword [edi + 4]
add esp, 0xc
movzx eax, word [edi + 8]
lea edi, [esi + eax*4]
cmp esi, edi
jae case.0x5385b0.22
mov ecx, dword [esi]
add esi, 4
call fcn.0045c0c0
cmp esi, edi
jb 0x538851
call fcn.0045c490
pop edi
pop esi
pop ebx
ret 4
mov ecx, dword [edi + 4]
call fcn.0045c0c0
dec dword [esi + 4]
mov eax, dword [esi + 0xc]
dec dword [eax + 0x8c]
call fcn.0045c490
pop edi
pop esi
pop ebx
ret 4
mov ecx, dword [edi + 4]
call fcn.0045c160
dec dword [esi + 4]
mov eax, dword [esi + 0xc]
dec dword [eax + 0x8c]
call fcn.0045c490
pop edi
pop esi
pop ebx
ret 4
mov ecx, dword [edi + 4]
call fcn.0045c0c0
call fcn.0045c490
pop edi
pop esi
pop ebx
ret 4