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

Disassembly:
cmp dword [0x713de0], 0
je 0x48416f
cmp dword [0x713da0], 0
jne 0x48416f
push ebx
push esi
push edi
mov dword [0x713da0], 1
call dword [sym.imp.KERNEL32.dll_GetLastError]
push dword [0x70b5ac]
mov esi, eax
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
push esi
mov edi, eax
call dword [sym.imp.KERNEL32.dll_SetLastError]
push 0
push dword [0x70b5ac]
call dword [sym.imp.KERNEL32.dll_TlsSetValue]
mov ecx, edi
call fcn.00483a60
mov esi, dword [0x713df0]
test esi, esi
je 0x483bc7
mov eax, dword [esi]
call eax
push esi
mov esi, dword [esi + 4]
call fcn.0062d677
add esp, 4
test esi, esi
jne 0x483bb3
mov esi, dword [0x713e08]
mov ebx, dword [sym.imp.KERNEL32.dll_DeleteCriticalSection]
mov dword [0x713df0], 0
test esi, esi
je 0x483bed
push esi
call ebx
push esi
call fcn.0062d677
add esp, 4
cmp dword [0x713e00], 0
mov esi, dword [sym.imp.KERNEL32.dll_TlsFree]
mov dword [0x713e08], 0
je 0x483c16
push dword [0x7140c8]
call esi
push dword [0x7140cc]
call esi
mov eax, dword [0x70b5ac]
push eax
mov dword [0x70b5ac], 0xffffffff
call esi
cmp dword [0x7118b0], 0
je 0x483cbc
mov eax, dword [0x71189c]
test eax, eax
je 0x483c47
mov eax, dword [eax + 8]
test eax, eax
je 0x483c47
call eax
call fcn.00479200
mov esi, dword [0x7118a4]
test esi, esi
je 0x483c62
push esi
call ebx
push esi
call fcn.0062d677
add esp, 4
mov esi, dword [0x7118a8]
mov dword [0x7118a4], 0
test esi, esi
je 0x483c82
push esi
call ebx
push esi
call fcn.0062d677
add esp, 4
mov esi, dword [0x7118a0]
mov dword [0x7118a8], 0
test esi, esi
je 0x483ca2
push esi
call ebx
push esi
call fcn.0062d677
add esp, 4
mov esi, dword [sym.imp.KERNEL32.dll_TlsFree]
mov dword [0x7118a0], 0
mov dword [0x7118b0], 0
mov ecx, dword [0x7140a4]
test ecx, ecx
je 0x483ce5
call fcn.004aad70
push dword [0x71409c]
mov dword [0x7140a4], 0
call esi
push dword [0x7140a0]
call esi
call fcn.004b33a0
call fcn.004b33a0
mov esi, dword [0x7140b8]
test esi, esi
je 0x483d92
mov edi, dword [esi]
sub edi, 1
js 0x483d6e
test esi, esi
je 0x483d14
cmp edi, dword [esi]
jge 0x483d14
mov eax, dword [esi + 4]
mov ebx, dword [eax + edi*4]
jmp 0x483d16
xor ebx, ebx
test esi, esi
je 0x483d4b
mov edx, dword [esi]
cmp edi, edx
jge 0x483d4b
lea eax, [edx - 1]
cmp edi, eax
je 0x483d46
mov eax, dword [esi + 4]
sub edx, edi
lea ecx, [eax + edi*4]
lea eax, [edx*4 - 4]
push eax
lea eax, [ecx + 4]
push eax
push ecx
call fcn.00629750
mov edx, dword [esi]
add esp, 0xc
lea eax, [edx - 1]
mov dword [esi], eax
mov ecx, dword [ebx]
call fcn.004e4e80
push dword [ebx + 4]
call fcn.0062d677
push ebx
call fcn.0062d677
mov esi, dword [0x7140b8]
add esp, 8
sub edi, 1
jns 0x483d04
test esi, esi
je 0x483d92
cmp dword [esi], 0
jne 0x483d92
push dword [esi + 4]
call fcn.0062d677
push esi
call fcn.0062d677
add esp, 8
mov dword [0x7140b8], 0
mov ebx, dword [0x713d88]
test ebx, ebx
je 0x483dd9
xor esi, esi
cmp dword [ebx], esi
jle 0x483dbe
mov eax, dword [ebx + 4]
mov edi, dword [eax + esi*4]
test edi, edi
je 0x483db9
mov eax, dword [edi]
call eax
push edi
call fcn.0062d677
add esp, 4
inc esi
cmp esi, dword [ebx]
jl 0x483da2
push dword [ebx + 4]
call fcn.0062d677
push ebx
call fcn.0062d677
add esp, 8
mov dword [0x713d88], 0
mov esi, dword [0x714358]
test esi, esi
je 0x483df3
push esi
call dword [sym.imp.KERNEL32.dll_DeleteCriticalSection]
push esi
call fcn.0062d677
add esp, 4
mov ebx, dword [0x7141e0]
mov dword [0x714358], 0
test ebx, ebx
je 0x483e48
xor edi, edi
cmp dword [ebx + 0xc], edi
jbe 0x483e38
nop
mov eax, dword [ebx]
mov eax, dword [eax + edi*4]
test eax, eax
je 0x483e32
nop dword [eax]
mov esi, dword [eax + 4]
push eax
call fcn.0062d677
add esp, 4
mov eax, esi
test esi, esi
jne 0x483e20
inc edi
cmp edi, dword [ebx + 0xc]
jb 0x483e10
push dword [ebx]
call fcn.0062d677
push ebx
call fcn.0062d677
add esp, 8
mov esi, dword [0x7141dc]
mov dword [0x7141e0], 0
test esi, esi
je 0x483e6c
push esi
call dword [sym.imp.KERNEL32.dll_DeleteCriticalSection]
push esi
call fcn.0062d677
add esp, 4
mov dword [0x7141dc], 0
mov ebx, 0x711840
nop dword [eax + eax]
mov edi, dword [ebx]
test edi, edi
je 0x483eb9
xor esi, esi
cmp dword [edi], esi
jle 0x483ea8
nop dword [eax]
mov eax, dword [edi + 4]
mov eax, dword [eax + esi*4]
test eax, eax
je 0x483ea3
push eax
call fcn.0062d677
add esp, 4
inc esi
cmp esi, dword [edi]
jl 0x483e90
push dword [edi + 4]
call fcn.0062d677
push edi
call fcn.0062d677
add esp, 8
mov dword [ebx], 0
add ebx, 4
cmp ebx, 0x711880
jl 0x483e80
mov esi, dword [0x71183c]
mov ebx, dword [sym.imp.KERNEL32.dll_DeleteCriticalSection]
test esi, esi
je 0x483ee6
push esi
call ebx
push esi
call fcn.0062d677
add esp, 4
cmp dword [0x713e20], 0
mov dword [0x71183c], 0
je 0x483f09
mov dword [0x713e20], 0
call dword [sym.imp.WS2_32.dll_WSACleanup]
mov esi, dword [0x714354]
test esi, esi
je 0x483f1f
push esi
call ebx
push esi
call fcn.0062d677
add esp, 4
mov esi, dword [0x711800]
mov dword [0x714354], 0
test esi, esi
je 0x483f3f
push esi
call ebx
push esi
call fcn.0062d677
add esp, 4
mov ecx, 2
mov dword [0x711800], 0
call fcn.004daa30
mov ecx, 1
call fcn.004daa30
or ecx, 0xffffffff
call fcn.004daa30
mov edi, dword [0x714134]
test edi, edi
je 0x483f9e
xor esi, esi
cmp dword [edi], esi
jle 0x483f8d
mov eax, dword [edi + 4]
mov eax, dword [eax + esi*4]
test eax, eax
je 0x483f88
push eax
call fcn.0062d677
add esp, 4
inc esi
cmp esi, dword [edi]
jl 0x483f75
push dword [edi + 4]
call fcn.0062d677
push edi
call fcn.0062d677
add esp, 8
mov edi, dword [0x714094]
mov dword [0x714134], 0
test edi, edi
je 0x483fe1
xor esi, esi
cmp dword [edi], esi
jle 0x483fd0
mov eax, dword [edi + 4]
mov eax, dword [eax + esi*4]
test eax, eax
je 0x483fcb
push eax
call fcn.0062d677
add esp, 4
inc esi
cmp esi, dword [edi]
jl 0x483fb8
push dword [edi + 4]
call fcn.0062d677
push edi
call fcn.0062d677
add esp, 8
mov esi, dword [0x714090]
mov dword [0x714094], 0
test esi, esi
je 0x484006
push dword [esi + 4]
call fcn.0062d677
push esi
call fcn.0062d677
add esp, 8
mov edi, dword [0x711808]
mov dword [0x714090], 0
test edi, edi
je 0x48404f
xor esi, esi
cmp dword [edi], esi
jle 0x48403e
mov eax, dword [edi + 4]
mov eax, dword [eax + esi*4]
test eax, eax
je 0x484039
test byte [eax + 4], 1
je 0x484039
push eax
call fcn.0062d677
add esp, 4
inc esi
cmp esi, dword [edi]
jl 0x484020
push dword [edi + 4]
call fcn.0062d677
push edi
call fcn.0062d677
add esp, 8
mov eax, dword [0x713d8c]
test eax, eax
je 0x4840d2
mov edx, 0x482260
mov dword [eax + 0x20], 0
call fcn.00482000
mov edx, 0x482280
call fcn.00482000
mov edx, 0x482290
call fcn.00482000
mov ebx, dword [0x713d8c]
test ebx, ebx
je 0x4840c8
xor edi, edi
cmp dword [ebx + 0xc], edi
jbe 0x4840b8
mov eax, dword [ebx]
mov eax, dword [eax + edi*4]
test eax, eax
je 0x4840b2
nop dword [eax + eax]
mov esi, dword [eax + 4]
push eax
call fcn.0062d677
add esp, 4
mov eax, esi
test esi, esi
jne 0x4840a0
inc edi
cmp edi, dword [ebx + 0xc]
jb 0x484092
push dword [ebx]
call fcn.0062d677
push ebx
call fcn.0062d677
add esp, 8
mov dword [0x713d8c], 0
cmp dword [0x7138cc], 0
je 0x4840e7
push dword [0x713cd4]
call dword [sym.imp.KERNEL32.dll_TlsFree]
mov esi, dword [0x713cd0]
test esi, esi
je 0x484101
push esi
call dword [sym.imp.KERNEL32.dll_DeleteCriticalSection]
push esi
call fcn.0062d677
add esp, 4
mov ebx, dword [0x7138c4]
mov dword [0x713cd0], 0
test ebx, ebx
je 0x484158
xor edi, edi
cmp dword [ebx + 0xc], edi
jbe 0x484148
nop dword [eax]
mov eax, dword [ebx]
mov eax, dword [eax + edi*4]
test eax, eax
je 0x484142
nop dword [eax]
mov esi, dword [eax + 4]
push eax
call fcn.0062d677
add esp, 4
mov eax, esi
test esi, esi
jne 0x484130
inc edi
cmp edi, dword [ebx + 0xc]
jb 0x484120
push dword [ebx]
call fcn.0062d677
push ebx
call fcn.0062d677
add esp, 8
pop edi
pop esi
mov dword [0x7138c4], 0
mov dword [0x713de0], 0
pop ebx
ret