Function at 0x4db6a0
Capabilities:
Get thread local storage value

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
mov eax, 0x2020
call fcn.00532af0
mov eax, dword [0x5a8564]
xor eax, ebp
mov dword [ebp - 0x10], eax
mov eax, dword [0x5a8a48]
cmp eax, 0xffffffff
je 0x4db9b6
push eax
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov ebx, eax
test bl, 3
je 0x4db9b6
and ebx, 0xfffffffc
lea eax, [ebp - 0x810]
push 0x800
push ebx
push eax
call fcn.00536100
add esp, 0xc
mov ecx, dword [0x5a8a48]
lea eax, [ebp - 0x80f]
push eax
mov dword [ebp - 0x2028], ecx
push ecx
call fcn.004f8710
add esp, 8
mov esi, dword [0x5b9484]
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
test ebx, ebx
je 0x4db72b
cmp esi, eax
je 0x4db72b
push ebx
call fcn.005327ec
add esp, 4
mov esi, 0x101
lea edi, [ebp - 0x2010]
nop word cs:[eax + eax]
cmp byte [0x5b948c], 1
jne 0x4db900
mov ebx, dword [0x5b9488]
cmp dword [0x5a9910], 0
je 0x4db930
mov ecx, dword [0x5a990c]
test ecx, ecx
je 0x4db960
call dword [section..00cfg]
push ebx
call ecx
test al, al
jne 0x4db782
mov ecx, ebx
call fcn.00434ef0
push 0x1000
push 0x5b8480
lea eax, [ebp - 0x1810]
push eax
call fcn.00536100
add esp, 0xc
cmp dword [0x5a97a8], 0
je 0x4db7c0
mov ecx, dword [0x5a97a4]
test ecx, ecx
je 0x4db7ec
call dword [section..00cfg]
push ebx
call ecx
jmp 0x4db7f0
push str.Kernel32.dll
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
push 0x560f2f
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, eax
mov dword [0x5a97a4], eax
mov dword [0x5a97a8], 1
test ecx, ecx
jne 0x4db7ae
xor eax, eax
xchg dword [ebx], eax
mov dword [ebp - 0x202c], esi
push 0x800
push 0xff
push edi
call fcn.00536680
add esp, 0xc
xor eax, eax
lea ecx, [ebp - 0x17f4]
nop word cs:[eax + eax]
mov edx, dword [ecx - 0x10]
mov dword [ebp + eax*8 - 0x2010], edx
mov word [ebp + eax*8 - 0x200c], ax
mov edx, dword [ecx]
mov dword [ebp + eax*8 - 0x2008], edx
lea edx, [eax + 1]
mov word [ebp + eax*8 - 0x2004], dx
add ecx, 0x20
add eax, 2
cmp eax, 0x100
jne 0x4db820
mov ecx, edi
lea edx, [ebp - 0x1810]
push 1
push 0x10
call fcn.004dbed0
add esp, 8
mov ebx, 4
xor eax, eax
jmp 0x4db87b
add ebx, 8
cmp ebx, 0x804
je 0x4db8e0
movzx edx, word [ebp + ebx - 0x2010]
mov edi, dword [ebp + edx*8 - 0x810]
test edi, edi
je 0x4db870
mov ecx, edx
shl ecx, 4
cmp dword [ebp + ecx - 0x1810], 0
je 0x4db870
mov esi, dword [ebp + edx*8 - 0x80c]
cmp esi, dword [ebp + ecx - 0x1808]
jne 0x4db870
mov ecx, dword [ebp + ecx - 0x180c]
test ecx, ecx
je 0x4db870
lea eax, [edx*8 - 0x810]
add eax, ebp
mov dword [eax], 0
call dword [section..00cfg]
push edi
call ecx
add esp, 4
mov al, 1
jmp 0x4db870
mov esi, dword [ebp - 0x202c]
dec esi
je 0x4db971
test al, 1
lea edi, [ebp - 0x2010]
jne 0x4db740
jmp 0x4db9a6
mov byte [0x5b948c], 1
push 4
call fcn.00532780
add esp, 4
mov ebx, eax
mov ecx, eax
call fcn.00434ee0
mov dword [0x5b9488], ebx
cmp dword [0x5a9910], 0
jne 0x4db760
nop dword [eax]
push str.Kernel32.dll
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
push str.TryAcquireSRWLockExclusive
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, eax
mov dword [0x5a990c], eax
mov dword [0x5a9910], 1
test ecx, ecx
jne 0x4db76e
xor eax, eax
lock bts dword [ebx], eax
jb 0x4db77b
jmp 0x4db782
lea edi, [ebp - 0x2024]
push 0x1a2
push str....._base_threading_thread_local_storage.cc
push str.OnThreadExitInternal
push edi
call fcn.00451690
add esp, 0x10
lea esi, [ebp - 0x2014]
push edi
push esi
call fcn.00458ce0
add esp, 8
mov ecx, esi
call fcn.00458cb0
push 2
push dword [ebp - 0x2028]
call fcn.004f8710
add esp, 8
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.005327f1
add esp, 0x2020
pop esi
pop edi
pop ebx
pop ebp
ret