Function at 0x100ce620
Capabilities:
Get thread local storage value

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x154
mov ecx, dword [ebp + 0xc]
push ebx
push esi
push edi
mov edi, dword [ebp + 8]
mov eax, dword [edi + 0x10294]
mov ebx, dword [eax + 0x3c]
push ecx
and ebx, 0xfffff
push ebx
lea edx, [ebp - 0x2c]
push edx
lea ecx, [ebp - 0xd0]
push ecx
lea edx, [ebp - 0x10]
push edx
lea ecx, [ebp - 0x150]
push ecx
push 0x10070408
xor esi, esi
push eax
mov ecx, edi
mov dword [ebp - 0x10], esi
mov dword [ebp - 0x2c], esi
mov dword [ebp - 0x28], 1
mov dword [ebp - 0x24], 2
mov dword [ebp - 0x20], 3
mov dword [ebp - 0x1c], ebx
call fcn.10161210
cmp eax, esi
je 0x100ce6c2
mov edx, dword [ebp + 0xc]
push edx
push ebx
lea eax, [ebp - 0x2c]
push eax
lea ecx, [ebp - 0xd0]
push ecx
mov ecx, dword [edi + 0x10294]
lea edx, [ebp - 0x10]
push edx
lea eax, [ebp - 0x150]
push eax
push 0x100705e8
push ecx
mov ecx, edi
call fcn.10161210
cmp eax, esi
jne 0x100ce919
lea edx, [ebp - 0xd0]
lea eax, [ebp - 0xc0]
mov dword [ebp - 0x18], esi
mov dword [ebp - 0x14], edx
mov dword [ebp - 0xc], eax
xor edi, edi
cmp ebx, esi
jbe 0x100ce75b
mov ecx, dword [ebp + 8]
mov dl, byte [ecx + 0x7fcf]
mov esi, dword [ebp - 0x14]
shr dl, 4
and dl, 1
mov byte [ebp - 1], dl
jmp 0x100ce6f7
mov dl, byte [ebp - 1]
mov eax, dword [esi]
mov ecx, dword [ebp + edi*4 - 0xa0]
test dl, dl
je 0x100ce71d
mov edx, dword [ecx + 0x80]
xor edx, dword [eax + 0x80]
cmp edx, 0x400
jne 0x100ce759
cmp dword [ecx + 0x7c], eax
jmp 0x100ce74f
mov edx, dword [eax + 0x50]
cmp edx, dword [ecx + 0x50]
jne 0x100ce759
mov edx, dword [eax + 0x5c]
cmp edx, dword [ecx + 0x5c]
jne 0x100ce759
mov edx, dword [eax + 0x60]
cmp edx, dword [ecx + 0x60]
jne 0x100ce759
mov edx, dword [eax + 0x64]
cmp edx, dword [ecx + 0x64]
jne 0x100ce759
mov ecx, dword [ecx + 0x80]
xor ecx, dword [eax + 0x80]
cmp ecx, 0x400
jne 0x100ce759
inc edi
add esi, 4
cmp edi, ebx
jb 0x100ce6f4
xor esi, esi
cmp edi, ebx
jne 0x100ce8fe
mov eax, dword [0x101e316c]
cmp eax, esi
jge 0x100ce770
xor eax, eax
jmp 0x100ce777
push eax
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
cmp dword [eax + 0x18], esi
je 0x100ce79f
mov ecx, dword [eax + 0x18]
cmp ecx, esi
jne 0x100ce789
xor ecx, ecx
mov edi, ecx
jmp 0x100ce7ad
mov edx, dword [ecx]
mov dword [eax + 0x18], edx
cmp edx, esi
jne 0x100ce795
mov dword [eax + 0x1c], esi
mov dword [ecx], 0xfefefefe
mov edi, ecx
jmp 0x100ce7ad
mov ecx, dword [eax + 0x14]
push 0x10
push 0x44
call fcn.101d8457
mov edi, eax
cmp edi, esi
je 0x100ce927
or eax, 0xffffffff
mov dword [edi + 0x10], eax
mov dword [edi + 0x20], eax
xor edx, edx
xor ecx, ecx
mov eax, ebx
push esi
and eax, 0xfffff
mov word [edi + 0x40], dx
mov word [edi + 0x42], cx
lea ecx, [ebx + ebx*2]
or eax, 0x70100000
push edi
mov edx, ebx
mov dword [edi], esi
mov dword [edi + 8], esi
mov dword [edi + 0x3c], esi
mov dword [edi + 4], esi
mov dword [edi + 0xc], esi
mov dword [edi + 0x14], esi
mov dword [edi + 0x18], esi
mov dword [edi + 0x1c], esi
mov dword [edi + 0x24], esi
mov dword [edi + 0x34], esi
mov dword [edi + 0x38], esi
call fcn.10172020
cmp eax, esi
mov dword [ebp - 8], eax
jl 0x100ce935
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x10294]
mov ecx, dword [eax + 0x34]
mov dword [edi + 0x34], ecx
mov edx, dword [eax + 0x38]
mov eax, dword [ebp + 8]
mov dword [edi + 0x38], edx
mov ecx, dword [eax + 0x10294]
mov edx, dword [ecx + 0xc]
mov eax, dword [edi + 0xc]
lea esi, [ebx*4]
push esi
push edx
push eax
call sub.msvcrt.dll_memcpy
mov edx, dword [edi + 4]
add esp, 0xc
push esi
lea ecx, [ebp - 0xb0]
push ecx
push edx
call sub.msvcrt.dll_memcpy
mov eax, dword [ebp - 0xc]
mov ecx, dword [edi + 4]
add esp, 0xc
push esi
push eax
add ecx, esi
push ecx
call sub.msvcrt.dll_memcpy
mov eax, dword [edi + 4]
add ebx, ebx
add esp, 0xc
add ebx, ebx
push esi
lea edx, [ebp - 0xa0]
add ebx, ebx
push edx
add eax, ebx
push eax
call sub.msvcrt.dll_memcpy
mov ecx, dword [edi + 0xc]
mov eax, dword [edi + 4]
mov esi, dword [ecx]
mov edx, dword [eax]
mov ecx, dword [esi + 0x50]
mov ebx, dword [eax + ebx]
add esp, 0xc
mov dword [ebp - 8], edx
cmp ecx, dword [edx + 0x50]
jne 0x100ce8a6
mov eax, dword [esi + 0x60]
cmp eax, dword [edx + 0x60]
je 0x100ce8c0
cmp ecx, dword [ebx + 0x50]
jne 0x100ce8b3
mov edx, dword [esi + 0x60]
cmp edx, dword [ebx + 0x60]
je 0x100ce8c0
mov ebx, dword [ebp + 8]
cmp ecx, dword [ebx + 0x8040]
je 0x100ce8cc
jmp 0x100ce8c3
mov ebx, dword [ebp + 8]
test byte [ebx + 0x7fcf], 0x10
je 0x100ce8ed
mov eax, dword [ebx]
mov edx, dword [eax + 0x48]
push 0
push edi
mov ecx, ebx
call edx
test al, al
jne 0x100ce8ed
mov esi, dword [esi + 0x50]
mov eax, dword [esi + 8]
and eax, 0x20
xor ecx, ecx
xor esi, esi
or eax, ecx
je 0x100ce94d
mov esi, edi
call fcn.10171ee0
call fcn.101751f0
mov ebx, dword [ebp - 0x1c]
xor esi, esi
mov eax, dword [ebp - 0x18]
mov ecx, 0x10
add dword [ebp - 0x14], ecx
sub dword [ebp - 0xc], ecx
inc eax
mov dword [ebp - 0x18], eax
cmp eax, 2
jb 0x100ce6d7
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
mov eax, 0x8007000e
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
mov esi, edi
call fcn.10171ee0
call fcn.101751f0
mov eax, dword [ebp - 8]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
test byte [ebx + 0x7fcf], 0x10
je 0x100ce9b3
mov eax, dword [ebp - 8]
test byte [eax + 0x80], 1
jne 0x100ce9b3
call fcn.100db3d0
test al, al
je 0x100ce977
mov ecx, dword [ebp - 8]
call fcn.100db310
test al, al
jne 0x100ce9b3
mov eax, edi
call fcn.100c8f80
mov eax, dword [ebx + 0x10294]
cmp eax, esi
je 0x100ce98f
mov eax, dword [eax + 0x38]
cmp eax, esi
jne 0x100ce991
xor eax, eax
push 0x100873f0
mov esi, 0x125f
mov ecx, ebx
call fcn.10168f10
add esp, 4
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
cmp byte [ebp + 0xc], 0
jne 0x100cea5a
mov edx, dword [ebp - 0x10]
xor ecx, ecx
cmp edx, esi
jbe 0x100ce9e4
jmp 0x100ce9d0
mov eax, dword [ebp + ecx*4 - 0x150]
inc ecx
mov dword [eax + 0x3c], esi
mov dword [eax], esi
mov dword [eax + 8], esi
cmp ecx, edx
jb 0x100ce9d0
mov esi, dword [ebx + 0x10294]
mov eax, dword [esi + 0x10]
mov ecx, dword [ebx + 0x10]
cmp eax, ecx
jae 0x100cea00
mov edx, dword [ebx + 0x14]
cmp dword [edx + eax*4], esi
jne 0x100cea00
mov ebx, eax
jmp 0x100cea22
mov ebx, ecx
test ebx, ebx
jbe 0x100cea1c
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x14]
lea eax, [ecx + ebx*4]
nop
sub eax, 4
dec ebx
cmp dword [eax], esi
je 0x100cea1d
test ebx, ebx
ja 0x100cea10
dec ebx
cmp ebx, 0xffffffff
je 0x100cea46
call fcn.10171ee0
call fcn.101751f0
mov esi, dword [ebp + 8]
mov edx, dword [esi + 0x14]
mov dword [edx + ebx*4], edi
or edx, 0xffffffff
mov ecx, edi
mov dword [edi + 0x10], ebx
call fcn.1010b3f0
or dword [esi + 0x18], 4
mov eax, dword [ebp + 8]
push eax
call fcn.10175ad0
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
mov ecx, dword [ebx + 0x10294]
push edi
push ecx
call fcn.10172c80
mov esi, eax
mov eax, edi
call fcn.100c8f80
test esi, esi
jge 0x100cea7f
mov eax, esi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
mov ebx, dword [ebx + 0x10294]
mov edx, dword [ebx + 0x34]
mov dword [ebx + 0x34], edx
mov eax, dword [ebx + 0x38]
pop edi
mov dword [ebx + 0x38], eax
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret 8