Function at 0x1000e6d0
Capabilities:
Get thread local storage value

Disassembly:
sub esp, 0xc
mov eax, dword [0x1002b150]
push ebx
push esi
push edi
mov ebx, dword [sym.imp.KERNEL32.dll_TlsGetValue]
push ebp
push eax
call ebx
mov esi, eax
mov edi, dword [esp + 0x20]
cmp edi, 0xffffffff
jne 0x1000e702
mov edi, dword [esi + 0x5e74]
sub edi, dword [esi + 0x5e84]
add edi, dword [esi + 0x5e80]
mov ecx, dword [esi + 0x5e74]
mov eax, dword [esi + 0x5e80]
add eax, ecx
cmp edi, ecx
mov dword [esp + 0x10], eax
jl 0x1000e744
cmp eax, edi
jle 0x1000e744
sub edi, ecx
mov eax, dword [esi + 0x5e78]
add eax, edi
pop ebp
mov dword [esi + 0x5e7c], eax
mov eax, dword [esi + 0x5e80]
sub eax, edi
pop edi
mov dword [esi + 0x5e84], eax
xor eax, eax
pop esi
pop ebx
add esp, 0xc
ret
cmp dword [esp + 0x10], edi
jg 0x1000e85c
mov eax, dword [esp + 0x10]
add eax, 0x200
cmp eax, edi
jle 0x1000e85c
mov eax, dword [esi + 0x5ea4]
add eax, dword [esp + 0x24]
cmp eax, 0xfffe
jb 0x1000e775
mov eax, 0xfffe
mov ebp, 0xffffffff
mov dword [esp + 0x18], eax
mov eax, dword [0x1002b150]
push eax
call ebx
mov ebx, eax
mov eax, dword [eax + 0x5e80]
add eax, dword [ebx + 0x5e74]
cmp ebp, 0xffffffff
mov dword [ebx + 0x5e74], eax
je 0x1000e7a5
mov dword [ebx + 0x5e74], ebp
mov eax, dword [esp + 0x18]
lea ecx, [esp + 0x14]
push ecx
lea edx, [ebx + 0x5e80]
push edx
mov dword [ebx + 0x5e80], eax
push ebp
lea eax, [ebx + 0x5e78]
mov dword [esp + 0x20], 0
push eax
call dword [ebx + 0x5cdc]
add esp, 0x10
test eax, eax
jne 0x1000e926
mov eax, dword [ebx + 0x5e80]
test eax, eax
je 0x1000e7ef
cmp dword [ebx + 0x5e78], 0
jne 0x1000e7fd
cmp dword [esp + 0x14], 0
je 0x1000e7fd
mov eax, 0xffffffde
jmp 0x1000e811
mov dword [ebx + 0x5e84], eax
mov eax, dword [ebx + 0x5e78]
mov dword [ebx + 0x5e7c], eax
xor eax, eax
test eax, eax
jne 0x1000e926
sub edi, dword [esp + 0x10]
mov eax, dword [esi + 0x5e78]
test eax, eax
je 0x1000e84f
cmp dword [esi + 0x5e80], edi
jbe 0x1000e84f
add eax, edi
pop ebp
mov dword [esi + 0x5e7c], eax
mov eax, dword [esi + 0x5e80]
sub eax, edi
pop edi
mov dword [esi + 0x5e84], eax
xor eax, eax
pop esi
pop ebx
add esp, 0xc
ret
mov eax, 0xffffffde
pop ebp
pop edi
pop esi
pop ebx
add esp, 0xc
ret
mov ebp, dword [esi + 0x5ea4]
add ebp, dword [esp + 0x24]
cmp ebp, 0xfffe
jb 0x1000e873
mov ebp, 0xfffe
mov eax, dword [0x1002b150]
push eax
call ebx
mov ebx, eax
mov eax, dword [eax + 0x5e74]
add eax, dword [ebx + 0x5e80]
cmp edi, eax
jne 0x1000e892
mov edi, 0xffffffff
cmp edi, 0xffffffff
mov dword [ebx + 0x5e74], eax
je 0x1000e8a3
mov dword [ebx + 0x5e74], edi
lea eax, [esp + 0x18]
lea ecx, [ebx + 0x5e80]
push eax
mov dword [ebx + 0x5e80], ebp
lea ebp, [ebx + 0x5e78]
push ecx
mov dword [esp + 0x20], 0
push edi
push ebp
call dword [ebx + 0x5cdc]
add esp, 0x10
test eax, eax
jne 0x1000e926
mov eax, dword [ebx + 0x5e80]
test eax, eax
je 0x1000e8e2
cmp dword [ebp], 0
jne 0x1000e8f0
cmp dword [esp + 0x18], 0
je 0x1000e8f0
mov eax, 0xffffffde
jmp 0x1000e901
mov dword [ebx + 0x5e84], eax
mov eax, dword [ebp]
mov dword [ebx + 0x5e7c], eax
xor eax, eax
test eax, eax
jne 0x1000e926
cmp dword [esi + 0x5e78], 0
je 0x1000e921
cmp dword [esi + 0x5e80], 0
je 0x1000e921
xor eax, eax
pop ebp
pop edi
pop esi
pop ebx
add esp, 0xc
ret
mov eax, 0xffffffde
pop ebp
pop edi
pop esi
pop ebx
add esp, 0xc
ret