Function at 0x100d1930
Capabilities:
Get thread local storage value

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
mov eax, dword [0x101e316c]
sub esp, 0x10
push ebx
push esi
xor ebx, ebx
cmp eax, ebx
push edi
mov edi, dword [ebp + 8]
jge 0x100d194d
xor eax, eax
jmp 0x100d1954
push eax
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
cmp dword [eax + 0x18], ebx
je 0x100d1982
mov ecx, dword [eax + 0x18]
cmp ecx, ebx
jne 0x100d1969
xor ecx, ecx
mov esi, ecx
mov dword [ebp - 4], esi
jmp 0x100d1993
mov edx, dword [ecx]
mov dword [eax + 0x18], edx
cmp edx, ebx
jne 0x100d1975
mov dword [eax + 0x1c], ebx
mov esi, ecx
mov dword [ecx], 0xfefefefe
mov dword [ebp - 4], esi
jmp 0x100d1993
mov ecx, dword [eax + 0x14]
push 0x10
push 0x44
call fcn.101d8457
mov esi, eax
mov dword [ebp - 4], eax
cmp esi, ebx
je 0x100d19e5
or eax, 0xffffffff
xor edx, edx
mov dword [esi + 0x10], eax
xor ecx, ecx
mov dword [esi + 0x20], eax
xor eax, eax
mov dword [esi], ebx
mov dword [esi + 8], ebx
mov dword [esi + 0x3c], ebx
mov dword [esi + 4], ebx
mov word [esi + 0x40], cx
mov dword [esi + 0xc], ebx
mov word [esi + 0x42], dx
mov dword [esi + 0x14], ebx
mov dword [esi + 0x18], ebx
mov dword [esi + 0x1c], ebx
mov dword [esi + 0x24], ebx
mov dword [esi + 0x34], ebx
mov dword [esi + 0x38], ebx
mov dword [ebp - 0xc], edx
cmp dword [ebp + 0x14], ebx
jbe 0x100d1a15
cmp byte [ebp + 0x18], 0
je 0x100d19f3
mov ecx, dword [ebp + 0xc]
cmp dword [ecx + eax*4], 0xffffffff
jmp 0x100d1a09
mov eax, 0x8007000e
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x14
mov ecx, dword [edi + 0x10294]
mov ecx, dword [ecx + 0xc]
mov ecx, dword [ecx + eax*4]
mov ecx, dword [ecx + 0x64]
mov ebx, dword [ebp + 0xc]
cmp dword [ebx + ecx*4], 0xffffffff
je 0x100d1a0c
inc edx
inc eax
cmp eax, dword [ebp + 0x14]
jb 0x100d19d6
mov dword [ebp - 0xc], edx
cmp byte [ebp + 0x18], 0
mov ebx, 1
jne 0x100d1a22
mov ebx, edx
mov eax, dword [edi + 0x10294]
mov eax, dword [eax + 0x3c]
mov ecx, edx
imul ecx, dword [ebp + 0x10]
and eax, 0xfff00000
push 0
or eax, edx
push esi
mov edx, ebx
call fcn.10172020
mov ebx, eax
test ebx, ebx
jl 0x100d1b9e
cmp byte [ebp + 0x18], 0
mov eax, dword [edi + 0x10294]
mov ecx, dword [eax + 0x34]
mov dword [esi + 0x34], ecx
mov edx, dword [eax + 0x38]
mov dword [esi + 0x38], edx
je 0x100d1a71
cmp dword [ebp - 0xc], 1
jne 0x100d1a71
mov dword [esi + 0x3c], 0x20500001
xor ecx, ecx
cmp dword [ebp + 0x10], ecx
jbe 0x100d1ad3
mov edx, dword [ebp + 0x14]
xor eax, eax
mov dword [ebp - 8], eax
test edx, edx
jbe 0x100d1acd
cmp byte [ebp + 0x18], 0
mov ebx, dword [ebp + 0xc]
je 0x100d1b3b
cmp dword [ebx + eax*4], 0xffffffff
je 0x100d1ac5
mov ebx, dword [ebp - 4]
mov ebx, dword [ebx + 4]
mov esi, ecx
imul esi, edx
mov edx, dword [edi + 0x10294]
mov edx, dword [edx + 4]
mov edi, ecx
imul edi, dword [ebp - 0xc]
add edi, dword [ebp - 8]
add esi, eax
mov edx, dword [edx + esi*4]
inc dword [ebp - 8]
mov dword [ebx + edi*4], edx
mov edi, dword [ebp + 8]
mov esi, dword [ebp - 4]
mov edx, dword [ebp + 0x14]
inc eax
cmp eax, edx
jb 0x100d1a84
inc ecx
cmp ecx, dword [ebp + 0x10]
jb 0x100d1a78
cmp byte [ebp + 0x18], 0
je 0x100d1b24
mov eax, dword [edi + 0x10294]
mov ecx, dword [eax + 0xc]
mov edx, dword [ecx]
mov eax, dword [edi + 0x8040]
mov ecx, dword [eax + 0x10]
push 0x11
push 0
mov dword [ebp + 0x18], edx
lea edx, [ecx + 1]
push ecx
mov dword [eax + 0x10], edx
mov eax, dword [edi + 0x8040]
mov ecx, dword [esi + 0xc]
push eax
push ecx
push edi
call fcn.10169c20
mov ebx, eax
test ebx, ebx
jl 0x100d1b9e
mov edx, dword [esi + 0xc]
mov eax, dword [edx]
mov ecx, dword [ebp + 0x18]
mov edx, dword [ecx + 0x4c]
mov dword [eax + 0x4c], edx
push esi
call fcn.101699c0
mov ebx, eax
test ebx, ebx
jl 0x100d1b9e
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x14
mov edx, dword [edi + 0x10294]
mov esi, dword [edx + 0xc]
mov esi, dword [esi + eax*4]
mov esi, dword [esi + 0x64]
cmp dword [ebx + esi*4], 0xffffffff
je 0x100d1ac2
mov edx, dword [edx + 4]
mov ebx, dword [ebp - 4]
mov ebx, dword [ebx + 4]
mov esi, ecx
imul esi, dword [ebp + 0x14]
mov edi, ecx
imul edi, dword [ebp - 0xc]
add edi, dword [ebp - 8]
add esi, eax
mov edx, dword [edx + esi*4]
mov esi, dword [ebp - 4]
mov dword [ebx + edi*4], edx
mov edi, dword [ebp + 8]
test ecx, ecx
jne 0x100d1b96
mov edx, dword [edi + 0x10294]
mov edx, dword [edx + 0xc]
mov esi, dword [esi + 0xc]
mov edx, dword [edx + eax*4]
mov ebx, dword [ebp - 8]
mov dword [esi + ebx*4], edx
mov esi, dword [ebp - 4]
inc dword [ebp - 8]
jmp 0x100d1ac5
call fcn.10171ee0
mov eax, dword [0x101e316c]
test eax, eax
jl 0x100d1bec
push eax
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov edi, eax
test edi, edi
je 0x100d1bec
push 0x44
push 0xfe
push esi
call sub.msvcrt.dll_memset
mov dword [esi], 0
mov eax, dword [edi + 0x1c]
add esp, 0xc
test eax, eax
je 0x100d1be6
mov dword [eax], esi
mov dword [edi + 0x1c], esi
mov eax, ebx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x14
mov dword [edi + 0x18], esi
mov dword [edi + 0x1c], esi
pop edi
pop esi
mov eax, ebx
pop ebx
mov esp, ebp
pop ebp
ret 0x14