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

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
push ecx
push esi
mov esi, dword [edi + 0x24]
test esi, esi
je 0x535155
mov ecx, dword [esi + 0x28]
test ecx, ecx
je 0x53514c
push 1
call fcn.00534f50
push esi
call sub.msvcrt.dll_void___cdecl_operator_delete_void__
add esp, 4
mov ecx, dword [edi + 0x67c]
test ecx, ecx
je 0x53516d
add dword [ecx + 0x10], 0xffffffff
jne 0x53516d
mov eax, dword [ecx]
mov edx, dword [eax]
push 1
call edx
mov ecx, dword [edi + 0x680]
test ecx, ecx
je 0x535185
add dword [ecx + 0x10], 0xffffffff
jne 0x535185
mov eax, dword [ecx]
mov edx, dword [eax]
push 1
call edx
mov esi, dword [edi + 0x688]
test esi, esi
je 0x5351a6
mov ecx, dword [esi + 4]
test ecx, ecx
je 0x53519d
push 1
call fcn.00534f20
push esi
call sub.msvcrt.dll_void___cdecl_operator_delete_void__
add esp, 4
mov esi, dword [edi + 0x28]
test esi, esi
je 0x5351c4
mov ecx, dword [esi + 8]
test ecx, ecx
je 0x5351bb
push 1
call fcn.00534f80
push esi
call sub.msvcrt.dll_void___cdecl_operator_delete_void__
add esp, 4
push ebx
lea ebx, [edi + 0x68c]
mov dword [ebp - 4], 0x7f
mov esi, dword [ebx]
test esi, esi
je 0x535219
mov ecx, dword [esi + 4]
test ecx, ecx
je 0x5351ed
add dword [ecx + 0x10], 0xffffffff
jne 0x5351ed
mov eax, dword [ecx]
mov edx, dword [eax]
push 1
call edx
mov ecx, dword [esi + 8]
test ecx, ecx
je 0x535202
add dword [ecx + 0x10], 0xffffffff
jne 0x535202
mov eax, dword [ecx]
mov edx, dword [eax]
push 1
call edx
mov ecx, dword [esi + 0xc]
test ecx, ecx
je 0x535210
push 1
call fcn.00534aa0
push esi
call sub.msvcrt.dll_void___cdecl_operator_delete_void__
add esp, 4
add ebx, 4
sub dword [ebp - 4], 1
jne 0x5351d2
mov esi, dword [edi + 0x890]
pop ebx
test esi, esi
je 0x53523d
mov ecx, esi
call fcn.00534ba0
push esi
call sub.msvcrt.dll_void___cdecl_operator_delete_void__
add esp, 4
mov esi, dword [edi + 0x8cc]
test esi, esi
je 0x535284
mov ecx, 0x439e98
mov eax, esi
mov edi, edi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x535270
test dl, dl
je 0x53526c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x535270
add eax, 2
add ecx, 2
test dl, dl
jne 0x535250
xor eax, eax
jmp 0x535275
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x535284
push esi
push 4
call sub.msvcrt.dll_setlocale
add esp, 8
mov eax, dword [edi + 0x8cc]
test eax, eax
je 0x535297
push eax
call sub.msvcrt.dll_free
add esp, 4
cmp byte [edi + 0x8d0], 0
je 0x5352b3
mov eax, dword [edi + 0x8d4]
push eax
call fcn.00534a50
mov byte [edi + 0x8d0], 0
cmp dword [edi + 0x65c], 0
je 0x5352f7
mov eax, dword [0x551d48]
test eax, eax
jge 0x5352c9
xor eax, eax
jmp 0x5352d0
push eax
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
dec dword [eax + 0x128]
cmp dword [eax + 0x128], 0
jg 0x5352f7
push eax
call sub.msvcrt.dll_free
mov ecx, dword [0x551d48]
add esp, 4
push 0
push ecx
call dword [sym.imp.KERNEL32.dll_TlsSetValue]
lea ecx, [edi + 0x30]
call fcn.005476fa
cmp dword [edi + 0xc], 0
je 0x53531a
mov eax, dword [edi + 0xc]
mov esi, dword [eax]
push eax
call sub.msvcrt.dll_void___cdecl_operator_delete_void__
add esp, 4
mov dword [edi + 0xc], esi
test esi, esi
jne 0x535305
mov edx, dword [edi + 4]
push edx
call sub.msvcrt.dll_void___cdecl_operator_delete_void__
mov eax, dword [edi + 8]
push eax
call sub.msvcrt.dll_void___cdecl_operator_delete_void__
add esp, 8
pop esi
mov esp, ebp
pop ebp
ret