Function at 0x10012b50
Capabilities:
Get thread local storage value

Disassembly:
sub esp, 4
push ebx
push esi
mov ebx, dword [esp + 0x10]
push edi
push ebp
xor edi, edi
mov eax, dword [0x1002b150]
push eax
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov esi, eax
mov ecx, dword [esi + 0x59ec]
xor eax, eax
mov al, byte [ecx]
mov dword [ebx], eax
mov eax, dword [esi + 0x59ec]
inc eax
mov dword [esi + 0x59ec], eax
cmp dword [esi + 0x59f0], eax
jne 0x10012bed
cmp dword [esi + 0x59fc], 1
je 0x10012d59
lea ebp, [esi + 0x59e8]
lea eax, [esi + 0x59fc]
lea ecx, [esp + 0x10]
push eax
push ecx
mov dword [esi + 0x59fc], edi
push 0xffffffffffffffff
push ebp
call fcn.1000e960
add esp, 0x10
test eax, eax
jne 0x10012ea9
cmp dword [esi + 0x59fc], 1
jne 0x10012bd7
cmp dword [esp + 0x10], edi
je 0x10012d6d
mov eax, dword [ebp]
mov dword [esi + 0x59ec], eax
mov eax, dword [ebp]
add eax, dword [esp + 0x10]
mov dword [esi + 0x59f0], eax
cmp dword [ebx], 0xff
je 0x10012b6b
mov dword [esi + 0x59f4], 8
mov ecx, dword [ebx]
sub ecx, 0xc4
cmp ecx, 0x19
ja case.0x10012c1c.200
xor eax, eax
mov al, byte [ecx + 0x10012edc]
jmp dword [eax*4 + 0x10012ec8]
lea ebp, [esi + 0x59fc]
lea eax, [esp + 0x10]
push ebp
push eax
mov dword [ebp], 3
mov ecx, dword [esi + 0x59ec]
mov eax, ecx
sub eax, dword [esi + 0x59f0]
push eax
push ecx
call fcn.1000e960
add esp, 0x10
test eax, eax
jne 0x10012ea9
call fcn.10003c70
mov dword [esi + 0x5d84], eax
cmp eax, edi
jne 0x10012d81
lea eax, [esp + 0x10]
push ebp
push eax
lea ecx, [esi + 0x59e8]
push 0xffffffffffffffff
mov dword [ebp], edi
push ecx
call fcn.1000e960
add esp, 0x10
test eax, eax
jne 0x10012ea9
cmp dword [ebp], 1
jne 0x10012c9b
cmp dword [esp + 0x10], edi
je 0x10012d8f
mov eax, dword [esi + 0x59e8]
mov dword [esi + 0x59ec], eax
mov eax, dword [esi + 0x59e8]
add eax, dword [esp + 0x10]
mov dword [esi + 0x59f0], eax
jmp 0x10012b5d
lea ebp, [esi + 0x59fc]
lea eax, [esp + 0x10]
push ebp
push eax
mov dword [ebp], 3
mov ecx, dword [esi + 0x59ec]
mov eax, ecx
sub eax, dword [esi + 0x59f0]
push eax
push ecx
call fcn.1000e960
add esp, 0x10
test eax, eax
jne 0x10012ea9
lea eax, [esi + 0x7e0]
push eax
call fcn.100041d0
add esp, 4
test eax, eax
jne 0x10012ea9
lea eax, [esp + 0x10]
push ebp
push eax
lea ecx, [esi + 0x59e8]
push 0xffffffffffffffff
mov dword [ebp], edi
push ecx
call fcn.1000e960
add esp, 0x10
test eax, eax
jne 0x10012ea9
cmp dword [ebp], 1
jne 0x10012d38
cmp dword [esp + 0x10], edi
je 0x10012eb1
mov eax, dword [esi + 0x59e8]
mov dword [esi + 0x59ec], eax
mov eax, dword [esi + 0x59e8]
add eax, dword [esp + 0x10]
mov dword [esi + 0x59f0], eax
jmp 0x10012b5d
xor eax, eax
pop ebp
mov dword [esi + 0x790], 1
pop edi
pop esi
pop ebx
add esp, 4
ret
xor eax, eax
pop ebp
mov dword [esi + 0x790], 1
pop edi
pop esi
pop ebx
add esp, 4
ret
mov eax, dword [esi + 0x5d84]
pop ebp
pop edi
pop esi
pop ebx
add esp, 4
ret
xor eax, eax
pop ebp
mov dword [esi + 0x790], 1
pop edi
pop esi
pop ebx
add esp, 4
ret
xor eax, eax
pop ebp
mov dword [esi + 0x790], 1
pop edi
pop esi
pop ebx
add esp, 4
ret
lea edi, [esi + 0x59fc]
lea eax, [esp + 0x10]
push edi
push eax
mov dword [edi], 3
mov ecx, dword [esi + 0x59ec]
mov eax, ecx
sub eax, dword [esi + 0x59f0]
push eax
push ecx
call fcn.1000e960
add esp, 0x10
test eax, eax
jne 0x10012ea9
lea eax, [esi + 0x734]
lea ecx, [esi + 0x724]
push eax
push ecx
call fcn.100037b0
add esp, 8
mov dword [esi + 0x5d84], eax
test eax, eax
jne 0x10012ea9
lea ebx, [esi + 0x59e8]
push edi
lea eax, [esp + 0x14]
mov dword [edi], 0
push eax
push 0xffffffffffffffff
push ebx
call fcn.1000e960
add esp, 0x10
test eax, eax
jne 0x10012ea9
cmp dword [edi], 1
jne 0x10012e4e
cmp dword [esp + 0x10], 0
jne 0x10012e4e
xor eax, eax
pop ebp
mov dword [esi + 0x790], 1
pop edi
pop esi
pop ebx
add esp, 4
ret
mov eax, dword [ebx]
mov dword [esi + 0x59ec], eax
mov eax, dword [ebx]
add eax, dword [esp + 0x10]
mov dword [esi + 0x59f0], eax
test byte [esi + 0x74c], 4
je 0x10012e9d
cmp dword [esi + 0x79c], 0
jne 0x10012e84
push 1
push 2
call fcn.1001b070
add esp, 8
test eax, eax
jne 0x10012ea9
cmp dword [esi + 0x7a0], 0
jle 0x10012e9d
push 2
push 2
call fcn.1001b070
add esp, 8
test eax, eax
jne 0x10012ea9
mov dword [esi + 0x794], 1
xor eax, eax
pop ebp
pop edi
pop esi
pop ebx
add esp, 4
ret
xor eax, eax
pop ebp
mov dword [esi + 0x790], 1
pop edi
pop esi
pop ebx
add esp, 4
ret