Function at 0x4c5750
Capabilities:
Get thread local storage value
Set thread local storage value

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
push ecx
push ebx
mov ebx, ecx
push esi
mov esi, dword [ebx + 0x24]
test esi, esi
je 0x4c5778
mov ecx, dword [esi + 0x28]
test ecx, ecx
je 0x4c576f
push 1
call fcn.004c55f0
push esi
call sub.msvcrt.dll_void___cdecl_operator_delete_void__
add esp, 4
mov ecx, dword [ebx + 0x6c]
test ecx, ecx
je 0x4c578d
add dword [ecx + 0x10], 0xffffffff
jne 0x4c578d
mov eax, dword [ecx]
mov edx, dword [eax]
push 1
call edx
mov ecx, dword [ebx + 0x70]
test ecx, ecx
je 0x4c57a2
add dword [ecx + 0x10], 0xffffffff
jne 0x4c57a2
mov eax, dword [ecx]
mov edx, dword [eax]
push 1
call edx
mov esi, dword [ebx + 0x74]
test esi, esi
je 0x4c57c0
mov ecx, dword [esi + 4]
test ecx, ecx
je 0x4c57b7
push 1
call fcn.004c55c0
push esi
call sub.msvcrt.dll_void___cdecl_operator_delete_void__
add esp, 4
mov esi, dword [ebx + 0x28]
test esi, esi
je 0x4c57de
mov ecx, dword [esi + 4]
test ecx, ecx
je 0x4c57d5
push 1
call fcn.004c55c0
push esi
call sub.msvcrt.dll_void___cdecl_operator_delete_void__
add esp, 4
push edi
lea edi, [ebx + 0x78]
mov dword [ebp - 4], 0x7f
lea esp, [esp]
mov esi, dword [edi]
test esi, esi
je 0x4c5837
mov ecx, dword [esi + 4]
test ecx, ecx
je 0x4c580b
add dword [ecx + 0x10], 0xffffffff
jne 0x4c580b
mov eax, dword [ecx]
mov edx, dword [eax]
push 1
call edx
mov ecx, dword [esi + 8]
test ecx, ecx
je 0x4c5820
add dword [ecx + 0x10], 0xffffffff
jne 0x4c5820
mov eax, dword [ecx]
mov edx, dword [eax]
push 1
call edx
mov ecx, dword [esi + 0xc]
test ecx, ecx
je 0x4c582e
push 1
call fcn.004c5070
push esi
call sub.msvcrt.dll_void___cdecl_operator_delete_void__
add esp, 4
add edi, 4
sub dword [ebp - 4], 1
jne 0x4c57f0
mov esi, dword [ebx + 0x27c]
test esi, esi
je 0x4c585a
mov ecx, esi
call fcn.004c5170
push esi
call sub.msvcrt.dll_void___cdecl_operator_delete_void__
add esp, 4
mov eax, dword [ebx + 0x2b4]
test eax, eax
je 0x4c5881
mov edi, 0x45c9d0
mov esi, eax
mov ecx, 2
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
je 0x4c5881
push eax
push 4
call sub.msvcrt.dll_setlocale
add esp, 8
mov eax, dword [ebx + 0x2b4]
test eax, eax
pop edi
je 0x4c5895
push eax
call sub.msvcrt.dll_free
add esp, 4
cmp byte [ebx + 0x2b8], 0
je 0x4c58b1
mov eax, dword [ebx + 0x2bc]
push eax
call fcn.004c4570
mov byte [ebx + 0x2b8], 0
cmp dword [ebx + 0x48], 0
je 0x4c58f3
mov eax, dword [0x776138]
test eax, eax
jge 0x4c58c4
xor eax, eax
jmp 0x4c58cb
push eax
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
add dword [eax + 0x124], 0xffffffff
cmp dword [eax + 0x124], 0
jg 0x4c58f3
push eax
call sub.msvcrt.dll_free
mov ecx, dword [0x776138]
add esp, 4
push 0
push ecx
call dword [sym.imp.KERNEL32.dll_TlsSetValue]
lea ecx, [ebx + 0x30]
call fcn.00751587
cmp dword [ebx + 0xc], 0
je 0x4c5916
mov eax, dword [ebx + 0xc]
mov esi, dword [eax]
push eax
call sub.msvcrt.dll_void___cdecl_operator_delete_void__
add esp, 4
test esi, esi
mov dword [ebx + 0xc], esi
jne 0x4c5901
mov edx, dword [ebx + 4]
push edx
call sub.msvcrt.dll_void___cdecl_operator_delete_void__
mov eax, dword [ebx + 8]
push eax
call sub.msvcrt.dll_void___cdecl_operator_delete_void__
add esp, 8
pop esi
pop ebx
mov esp, ebp
pop ebp
ret