Function at 0x5bb796
Capabilities:
Get thread local storage value

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc
push esi
mov esi, ecx
test byte [esi + 0x7d], 0x40
je 0x5bb7b5
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.005bf362
jmp 0x5bba19
push ebx
push edi
push dword [0x717aec]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
cmp byte [ebp + 0xc], 0
mov eax, dword [eax + 8]
mov dword [ebp - 0xc], eax
je 0x5bb8e1
test word [ebp + 8], 0x100
je 0x5bb869
test byte [esi + 0x7b], 0x10
je 0x5bb821
mov ecx, esi
call fcn.005a9f93
mov ebx, eax
mov edi, 0xf000
test edi, ebx
je 0x5bb821
call fcn.005ade4f
test al, al
jne 0x5bb80c
push edi
mov ecx, esi
call fcn.005b9258
test al, al
je 0x5bb821
test byte [esi + 0x7d], 0x80
je 0x5bb821
push 0x100f000
push ebx
mov ecx, esi
call fcn.005c3f5b
jmp 0x5bb869
and dword [ebp - 8], 0
lea eax, [ebp - 8]
push eax
mov ecx, esi
call fcn.005a9e93
mov cl, byte [esi + 0x81]
test cl, 2
mov edi, dword [eax]
mov eax, dword [eax + 4]
mov ebx, dword [esi + 0x48]
mov edx, dword [esi + 0x4c]
je 0x5bb848
inc edx
inc edx
test cl, 4
je 0x5bb84f
dec eax
dec eax
push 0xb
push edx
push ebx
push eax
push edi
push dword [esi + 0x3c]
call fcn.005fb5fd
mov ecx, dword [ebp - 8]
test ecx, ecx
je 0x5bb869
call sym.osetup.dll_public:_void___thiscall_NetUI::BaseValue::Release_void_
mov edi, dword [ebp + 8]
test di, 0x200
jne 0x5bb88e
test di, 0x400
je 0x5bb896
call fcn.00663fb6
test eax, eax
je 0x5bb896
mov ecx, esi
call fcn.005bb290
test al, al
je 0x5bb896
push dword [esi + 0x3c]
call fcn.005fa16f
test di, 0x800
je 0x5bb8b5
mov ecx, esi
call fcn.005a9fed
test al, al
je 0x5bb8b5
push 0
push esi
push 0x800a
call fcn.0060c1c0
test di, 0x1000
je 0x5bba0a
mov ecx, esi
call fcn.005a9fed
test al, al
je 0x5bba0a
push 0
push esi
push 0x8004
call fcn.0060c1c0
jmp 0x5bba0a
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0xb8]
test byte [ebp + 8], 0xf
mov dword [ebp - 8], eax
je 0x5bba0a
test byte [ebp + 8], 1
je 0x5bb913
mov al, byte [esi + 0x79]
or byte [esi + 0x7c], 8
or dword [ebp + 8], 4
and al, 3
cmp al, 1
je 0x5bb913
or dword [ebp + 8], 2
test byte [ebp + 8], 4
je 0x5bb934
mov al, byte [esi + 0x7d]
and byte [esi + 0x7e], 0xe7
and al, 0xfd
or al, 1
mov byte [esi + 0x7d], al
mov al, byte [esi + 0x79]
and al, 3
cmp al, 1
je 0x5bb934
or dword [ebp + 8], 8
mov eax, dword [ebp + 8]
and eax, 0xa
test al, 2
mov dword [ebp - 4], eax
je 0x5bb947
or eax, 8
mov dword [ebp - 4], eax
mov edi, dword [esi + 4]
test edi, edi
mov ebx, esi
je 0x5bb9c3
test eax, eax
je 0x5bb9c3
mov al, byte [esi + 0x79]
and al, 3
cmp al, 2
je 0x5bb9c3
cmp dword [ebp - 8], 2
jne 0x5bb967
mov ecx, esi
jmp 0x5bb9ba
test byte [ebp - 4], 2
mov ebx, edi
je 0x5bb981
mov al, byte [edi + 0x7c]
test al, 8
je 0x5bb97c
and dword [ebp - 4], 0xfffffffd
jmp 0x5bb981
or al, 8
mov byte [edi + 0x7c], al
test byte [ebp - 4], 8
je 0x5bb99b
mov al, byte [edi + 0x7d]
test al, 3
je 0x5bb994
and dword [ebp - 4], 0xfffffff7
jmp 0x5bb99b
and al, 0xfd
or al, 1
mov byte [edi + 0x7d], al
and byte [edi + 0x7e], 0xe7
mov edi, dword [edi + 4]
test edi, edi
je 0x5bb9c3
cmp dword [ebp - 4], 0
je 0x5bb9c3
test byte [ebx + 0x79], 3
jne 0x5bb9c3
cmp dword [ebp - 8], 2
jne 0x5bb967
mov ecx, ebx
call fcn.005a96e7
test al, al
je 0x5bb967
mov al, byte [ebx + 0x79]
and al, 3
cmp al, 1
je 0x5bba0a
cmp dword [ebp - 8], 0
jne 0x5bba0a
test byte [ebx + 0x7d], 0x80
jne 0x5bb9de
cmp dword [ebx + 4], 0
je 0x5bba0a
test byte [ebp - 4], 2
je 0x5bb9f4
mov ecx, dword [ebp - 0xc]
push 1
push 1
push ebx
add ecx, 0x64
call fcn.005b880a
test byte [ebp - 4], 8
je 0x5bba0a
mov ecx, dword [ebp - 0xc]
push 1
push 1
push ebx
add ecx, 0x58
call fcn.005b880a
push dword [ebp + 0xc]
mov ecx, esi
push dword [ebp + 8]
call fcn.005bf362
pop edi
pop ebx
pop esi
leave
ret 8