Function at 0x10191ec0
Capabilities:
Get thread local storage value

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x6c
push ebx
push esi
xor ebx, ebx
push edi
mov edi, eax
push edi
mov dword [ebp - 0x1c], ebx
mov dword [ebp - 0x18], ebx
mov dword [ebp - 0x24], ebx
mov dword [ebp - 0x20], ebx
mov dword [ebp - 0x34], ebx
mov dword [ebp - 0x28], ebx
call fcn.1016a7f0
mov esi, eax
cmp esi, ebx
jl 0x10192452
lea eax, [ebp - 0x24]
push eax
mov ebx, edi
call fcn.10192770
mov esi, eax
test esi, esi
jl 0x10192402
mov ecx, dword [edi + 0x10]
xor ebx, ebx
cmp ecx, ebx
jbe 0x10191f16
mov edx, dword [edi + 0x14]
mov edx, dword [edx]
jmp 0x10191f18
xor edx, edx
xor eax, eax
cmp ecx, ebx
jbe 0x10191f3c
mov edi, edi
mov dword [edx + 0x24], ebx
mov ecx, dword [edi + 0x10]
inc eax
cmp eax, ecx
jb 0x10191f31
xor edx, edx
mov eax, ecx
jmp 0x10191f37
mov ecx, dword [edi + 0x14]
mov edx, dword [ecx + eax*4]
cmp eax, dword [edi + 0x10]
jb 0x10191f20
push edi
lea eax, [ebp - 0x1c]
call fcn.101928f0
mov esi, eax
cmp esi, ebx
jl 0x101923b4
mov al, byte [edi + 0x7fcf]
test al, 0x60
je 0x1019201a
mov ecx, dword [edi + 0x10]
test ecx, ecx
jbe 0x10191f6b
mov edx, dword [edi + 0x14]
mov edx, dword [edx]
jmp 0x10191f6d
xor edx, edx
xor eax, eax
test ecx, ecx
jbe 0x10191f8f
mov dword [edx + 0x1c], ebx
mov ecx, dword [edi + 0x10]
inc eax
cmp eax, ecx
jb 0x10191f84
xor edx, edx
mov eax, ecx
jmp 0x10191f8a
mov ecx, dword [edi + 0x14]
mov edx, dword [ecx + eax*4]
cmp eax, dword [edi + 0x10]
jb 0x10191f73
mov edx, dword [edi + 0x10]
lea eax, [edx - 1]
cmp edx, eax
jbe 0x10191fa1
mov ecx, dword [edi + 0x14]
mov ecx, dword [ecx + eax*4]
jmp 0x10191fa3
xor ecx, ecx
mov ebx, eax
cmp eax, edx
jae 0x1019201a
lea esp, [esp]
mov edx, dword [ecx + 0x3c]
mov eax, edx
shr eax, 0x1c
test eax, eax
je 0x10191ffd
mov esi, dword [ecx + 0x1c]
cmp eax, 6
je 0x10191fd7
cmp eax, 0xa
je 0x10191fd7
and edx, 0xfff00000
cmp edx, 0x50700000
jne 0x10191fdd
inc dword [ecx + 0x1c]
add esi, 2
mov eax, dword [ecx + 0x28]
xor edx, edx
cmp dword [eax + 8], edx
jbe 0x10191ffd
mov eax, dword [eax]
mov eax, dword [eax + edx*4]
cmp dword [eax + 0x1c], esi
jae 0x10191ff4
mov dword [eax + 0x1c], esi
mov eax, dword [ecx + 0x28]
inc edx
cmp edx, dword [eax + 8]
jb 0x10191fe7
test ebx, ebx
je 0x10192010
cmp ebx, dword [edi + 0x10]
jae 0x10192010
mov ecx, dword [edi + 0x14]
mov ecx, dword [ecx + ebx*4 - 4]
dec ebx
jmp 0x10192015
mov ebx, dword [edi + 0x10]
xor ecx, ecx
cmp ebx, dword [edi + 0x10]
jb 0x10191fb0
mov eax, dword [edi + 0x10]
mov byte [ebp - 1], 0
test eax, eax
jbe 0x1019202c
mov edx, dword [edi + 0x14]
mov ecx, dword [edx]
jmp 0x1019202e
xor ecx, ecx
mov dword [ebp - 0x10], 0
test eax, eax
jbe 0x101920de
lea ecx, [ecx]
mov ebx, dword [ecx + 0x3c]
test ebx, 0xf0000000
je 0x101920b9
mov eax, dword [ecx + 0xc]
mov esi, dword [eax]
mov eax, dword [esi + 0x50]
mov eax, dword [eax + 8]
and eax, 8
xor edx, edx
or eax, edx
je 0x10192064
mov dword [ecx + 0x20], esi
jmp 0x101920af
mov eax, ebx
and eax, 0xfff00000
cmp eax, 0x20700000
je 0x101920a4
cmp eax, 0x11700000
je 0x101920a4
cmp eax, 0x22900000
je 0x101920a4
cmp eax, 0x22a00000
je 0x101920a4
cmp eax, 0x30200000
je 0x101920a4
cmp eax, 0x23100000
je 0x101920a4
cmp eax, 0x22c00000
je 0x101920a4
mov edx, dword [esi + 0x68]
mov dword [ecx + 0x20], edx
jmp 0x101920af
mov eax, dword [ecx + 4]
mov edx, dword [eax]
mov eax, dword [edx + 0x68]
mov dword [ecx + 0x20], eax
cmp dword [ecx + 0x20], 0xffffffff
je 0x101920b9
mov byte [ebp - 1], 1
mov edx, dword [ebp - 0x10]
mov eax, dword [edi + 0x10]
inc edx
mov dword [ebp - 0x10], edx
cmp edx, eax
jb 0x101920d0
mov edx, eax
xor ecx, ecx
mov dword [ebp - 0x10], edx
jmp 0x101920d6
mov ecx, dword [edi + 0x14]
mov ecx, dword [ecx + edx*4]
cmp edx, eax
jb 0x10192040
test byte [edi + 0x8124], 4
je 0x101920f1
mov esi, 1
jmp 0x101923b4
cmp byte [ebp - 1], 0
je 0x101921e1
push edi
call fcn.10175ad0
mov esi, eax
test esi, esi
jl 0x101923b4
mov eax, dword [edi + 0x10]
mov esi, dword [edi + 0x14]
push 0
push 0x10191c50
call fcn.100dabb0
mov edx, dword [edi + 0x10]
mov esi, dword [edi + 0x14]
xor eax, eax
test edx, edx
jbe 0x1019213b
lea esp, [esp]
mov ecx, dword [esi + eax*4]
mov dword [ecx + 0x10], eax
inc eax
cmp eax, edx
jb 0x10192130
mov esi, dword [ebp - 0x1c]
and dword [edi + 0x18], 0xfffffffe
test esi, esi
je 0x10192166
mov eax, dword [0x101e316c]
test eax, eax
jge 0x10192153
xor eax, eax
jmp 0x1019215a
push eax
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov edx, dword [eax]
push esi
push 0
push edx
call dword [sym.imp.KERNEL32.dll_HeapFree]
mov esi, dword [ebp - 0x18]
test esi, esi
je 0x1019218d
mov eax, dword [0x101e316c]
test eax, eax
jge 0x1019217a
xor eax, eax
jmp 0x10192181
push eax
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov eax, dword [eax]
push esi
push 0
push eax
call dword [sym.imp.KERNEL32.dll_HeapFree]
push edi
lea eax, [ebp - 0x1c]
call fcn.101928f0
mov esi, eax
test esi, esi
jl 0x101923b4
inc dword [edi + 0x4bc]
push 0xffffffffffffffff
lea esi, [edi + 0x4b8]
mov ecx, edi
call fcn.1017c720
test al, al
je 0x101923b2
push 1
lea ecx, [ebp - 0x68]
mov dword [ebp - 0x64], edi
mov dword [ebp - 0x68], 0x100956f4
call dword [0x100956fc]
mov esi, eax
test esi, esi
jl 0x101923b4
jmp 0x101923b2
mov eax, dword [edi + 0x10]
add eax, eax
mov dword [ebp - 8], 0
cmp eax, 0x3ffffffd
jbe 0x101921fb
mov eax, 0x80070216
jmp 0x1019225e
add eax, eax
add eax, eax
jne 0x10192206
mov eax, 4
mov dword [ebp - 0x28], eax
mov ebx, eax
lea esi, [edi + 0x817c]
test eax, eax
ja 0x1019221a
mov ebx, 1
mov eax, dword [esi]
test eax, eax
je 0x1019222a
mov ecx, dword [eax + 0xc]
sub ecx, dword [eax + 8]
cmp ebx, ecx
jbe 0x10192239
mov ecx, ebx
call fcn.100daf50
test eax, eax
je 0x10192239
xor eax, eax
jmp 0x1019224d
mov ecx, dword [esi]
test ecx, ecx
je 0x10192248
mov edx, dword [ecx + 8]
lea eax, [edx + ecx + 0x10]
jmp 0x1019224a
xor eax, eax
add dword [ecx + 8], ebx
mov dword [ebp - 0x34], eax
neg eax
sbb eax, eax
and eax, 0x7ff8fff2
add eax, 0x8007000e
mov esi, eax
test eax, eax
jl 0x101923b4
mov ecx, dword [edi + 0x10]
mov eax, dword [ebp - 0x34]
lea edx, [eax + ecx*4]
mov dword [ebp - 0xc], edx
test ecx, ecx
jbe 0x1019227f
mov eax, dword [edi + 0x14]
mov eax, dword [eax]
jmp 0x10192281
xor eax, eax
xor ebx, ebx
test ecx, ecx
jbe 0x101922e8
test dword [eax + 0x3c], 0xf0000000
je 0x101922d0
mov esi, dword [eax + 0x28]
xor edx, edx
mov dword [eax + 0x14], edx
mov dword [eax + 0x24], edx
cmp dword [esi + 8], edx
jbe 0x101922b9
mov ecx, dword [esi]
mov ecx, dword [ecx + edx*4]
mov ecx, dword [ecx + 0x24]
inc ecx
cmp dword [eax + 0x24], ecx
jae 0x101922b1
mov dword [eax + 0x24], ecx
inc edx
mov ecx, esi
cmp edx, dword [ecx + 8]
jb 0x101922a0
cmp dword [eax + 0x24], 0x80
jbe 0x101922d0
mov dword [eax + 0x14], 1
mov dword [eax + 0x24], 0
mov ecx, dword [edi + 0x10]
inc ebx
cmp ebx, ecx
jb 0x101922de
xor eax, eax
mov ebx, ecx
jmp 0x101922e4
mov edx, dword [edi + 0x14]
mov eax, dword [edx + ebx*4]
cmp ebx, ecx
jb 0x10192287
mov eax, dword [edi + 0x10]
test eax, eax
jbe 0x101922f6
mov ecx, dword [edi + 0x14]
mov ecx, dword [ecx]
jmp 0x101922f8
xor ecx, ecx
xor esi, esi
test eax, eax
jbe 0x10192367
test dword [ecx + 0x3c], 0xf0000000
mov dword [ecx + 0x24], 0xffffffff
je 0x1019234e
mov edx, dword [ecx + 0x28]
cmp dword [edx + 0xc], 0
je 0x1019233a
cmp dword [ecx + 0x14], 0
jne 0x1019233a
mov eax, dword [ecx + 0xc]
mov edx, dword [eax]
mov edx, dword [edx + 0x50]
mov eax, dword [edx + 8]
mov edx, dword [edx + 0xc]
and eax, 0x44210008
and edx, 0x180
or eax, edx
je 0x10192347
mov eax, dword [ebp - 8]
mov edx, dword [ebp - 0x34]
mov dword [edx + eax*4], ecx
inc eax
mov dword [ebp - 8], eax
mov dword [ecx + 0x14], 0
mov eax, dword [edi + 0x10]
inc esi
cmp esi, eax
jb 0x1019235c
xor ecx, ecx
mov esi, eax
jmp 0x10192362
mov eax, dword [edi + 0x14]
mov ecx, dword [eax + esi*4]
cmp esi, dword [edi + 0x10]
jb 0x101922fe
xor ebx, ebx
mov dword [ebp - 0x10], ebx
cmp dword [ebp - 8], ebx
jbe 0x10192393
mov edx, dword [ebp - 0xc]
mov eax, dword [ebp - 0x34]
lea ecx, [ebp - 0x10]
push ecx
mov ecx, dword [eax + ebx*4]
push edx
push ecx
mov ecx, edi
call fcn.10192670
mov esi, eax
test esi, esi
jl 0x101923b4
inc ebx
cmp ebx, dword [ebp - 8]
jb 0x10192371
mov eax, dword [edi + 0x10]
mov ecx, dword [edi + 0x14]
lea edx, [eax*4]
mov eax, dword [ebp - 0xc]
push edx
push eax
push ecx
call sub.msvcrt.dll_memcpy
add esp, 0xc
or dword [edi + 0x18], 7
xor esi, esi
mov ebx, dword [ebp - 0x1c]
test ebx, ebx
je 0x101923db
mov eax, dword [0x101e316c]
test eax, eax
jge 0x101923c8
xor eax, eax
jmp 0x101923cf
push eax
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov edx, dword [eax]
push ebx
push 0
push edx
call dword [sym.imp.KERNEL32.dll_HeapFree]
mov ebx, dword [ebp - 0x18]
test ebx, ebx
je 0x10192402
mov eax, dword [0x101e316c]
test eax, eax
jge 0x101923ef
xor eax, eax
jmp 0x101923f6
push eax
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov eax, dword [eax]
push ebx
push 0
push eax
call dword [sym.imp.KERNEL32.dll_HeapFree]
mov ebx, dword [ebp - 0x24]
test ebx, ebx
je 0x10192429
mov eax, dword [0x101e316c]
test eax, eax
jge 0x10192416
xor eax, eax
jmp 0x1019241d
push eax
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov ecx, dword [eax]
push ebx
push 0
push ecx
call dword [sym.imp.KERNEL32.dll_HeapFree]
mov ebx, dword [ebp - 0x20]
test ebx, ebx
je 0x10192450
mov eax, dword [0x101e316c]
test eax, eax
jge 0x1019243d
xor eax, eax
jmp 0x10192444
push eax
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov edx, dword [eax]
push ebx
push 0
push edx
call dword [sym.imp.KERNEL32.dll_HeapFree]
xor ebx, ebx
mov eax, dword [ebp - 0x28]
add edi, 0x817c
cmp dword [ebp - 0x34], ebx
je 0x10192485
cmp eax, ebx
ja 0x10192469
mov eax, 1
mov ebx, dword [edi]
cmp eax, dword [ebx + 8]
jae 0x1019247c
sub dword [ebx + 8], eax
mov eax, esi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [ebx]
mov dword [edi], eax
call fcn.100daed0
pop edi
mov eax, esi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret