Function at 0x100b41f0
Capabilities:
Get thread local storage value

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
push edi
mov edi, eax
test edi, edi
je 0x100b420c
cmp dword [ebp + 0xc], 0
jne 0x100b420c
mov eax, 0x80004005
pop edi
pop ebp
ret 0x10
cmp edi, 0xffffffff
jne 0x100b4223
mov eax, dword [ebp + 0xc]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x100b4217
sub eax, edx
lea edi, [eax + 1]
cmp edi, 0xfffffffe
jne 0x100b4243
mov eax, dword [ebp + 0xc]
lea edx, [eax + 2]
mov edi, edi
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x100b4230
sub eax, edx
sar eax, 1
lea edi, [eax + eax + 2]
mov eax, dword [ebp + 0x10]
test al, 1
jne 0x100b4250
or eax, 2
mov dword [ebp + 0x10], eax
push ebx
push esi
test al, 2
je 0x100b42cf
test al, 0x10
jne 0x100b42cf
mov eax, dword [ebp + 8]
mov edx, dword [eax + 8]
test edx, edx
je 0x100b42cf
test byte [edx + 8], 2
je 0x100b42c8
cmp edi, dword [edx + 4]
jne 0x100b42c8
mov ecx, dword [edx]
mov esi, dword [ebp + 0xc]
mov eax, edi
cmp edi, 4
jb 0x100b4294
jmp 0x100b4280
mov ebx, dword [esi]
cmp ebx, dword [ecx]
jne 0x100b42c8
sub eax, 4
add ecx, 4
add esi, 4
cmp eax, 4
jae 0x100b4280
test eax, eax
je 0x100b434a
mov bl, byte [ecx]
cmp bl, byte [esi]
jne 0x100b42c8
cmp eax, 1
jbe 0x100b434a
mov bl, byte [ecx + 1]
cmp bl, byte [esi + 1]
jne 0x100b42c8
cmp eax, 2
jbe 0x100b434a
mov cl, byte [ecx + 2]
cmp cl, byte [esi + 2]
je 0x100b434a
mov edx, dword [edx + 0x10]
test edx, edx
jne 0x100b4264
mov eax, dword [0x101e316c]
test eax, eax
jl 0x100b42e9
push eax
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
test eax, eax
je 0x100b42e9
mov eax, dword [eax]
test eax, eax
jne 0x100b42ef
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
mov ebx, dword [sym.imp.KERNEL32.dll_HeapAlloc]
push 0x14
push 0
push eax
call ebx
mov esi, eax
test esi, esi
je 0x100b433e
mov eax, dword [ebp + 0x10]
test al, 1
jne 0x100b43ba
mov eax, dword [0x101e316c]
test eax, eax
jl 0x100b4327
push eax
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
test eax, eax
je 0x100b4327
mov eax, dword [eax]
test eax, eax
jne 0x100b432d
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
push edi
push 0
push eax
call ebx
mov dword [esi], eax
test eax, eax
jne 0x100b43a7
call fcn.100b4530
pop esi
pop ebx
mov eax, 0x8007000e
pop edi
pop ebp
ret 0x10
mov eax, dword [ebp + 0x14]
test eax, eax
je 0x100b4356
mov edx, dword [edx + 0xc]
mov dword [eax], edx
mov al, byte [ebp + 0x10]
test al, 1
je 0x100b43fe
test al, 8
je 0x100b43fe
mov esi, dword [ebp + 0xc]
test esi, esi
je 0x100b43fe
mov eax, dword [0x101e316c]
test eax, eax
jl 0x100b438e
push eax
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
test eax, eax
je 0x100b438e
mov eax, dword [eax]
test eax, eax
jne 0x100b4394
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
push esi
push 0
push eax
call dword [sym.imp.KERNEL32.dll_HeapFree]
pop esi
pop ebx
xor eax, eax
pop edi
pop ebp
ret 0x10
mov ecx, dword [ebp + 0xc]
push edi
push ecx
push eax
call sub.msvcrt.dll_memcpy
mov eax, dword [ebp + 0x10]
add esp, 0xc
jmp 0x100b43bf
mov edx, dword [ebp + 0xc]
mov dword [esi], edx
mov ecx, dword [ebp + 8]
test al, 4
jne 0x100b43d2
mov edx, dword [ecx + 4]
add edx, 3
and edx, 0xfffffffc
mov dword [ecx + 4], edx
mov edx, dword [ecx + 4]
mov dword [esi + 8], eax
lea eax, [esi + 0x10]
mov dword [eax], 0
mov dword [esi + 0xc], edx
mov dword [esi + 4], edi
mov edx, dword [ecx + 0xc]
add dword [ecx + 4], edi
mov dword [edx], esi
mov dword [ecx + 0xc], eax
mov eax, dword [ebp + 0x14]
test eax, eax
je 0x100b43fe
mov ecx, dword [esi + 0xc]
mov dword [eax], ecx
pop esi
pop ebx
xor eax, eax
pop edi
pop ebp
ret 0x10