Function at 0x140010fa0
Capabilities:
Get thread local storage value

Disassembly:
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x38
test rcx, rcx
mov rsi, rcx
mov rbp, rdx
je 0x140010f30
lea rdi, [0x140028118]
mov rcx, rdi
call fcn.14000e2f0
mov rcx, rsi
call fcn.14000e8f0
mov rcx, rdi
mov rbx, rax
call fcn.14000e5e0
test rbx, rbx
je 0x140010f30
mov rcx, qword [rbx + 0x28]
test rcx, rcx
je 0x140010f30
lea rdx, [rsp + 0x2c]
call qword [sym.imp.KERNEL32.dll_GetHandleInformation]
test eax, eax
je 0x140010f30
test byte [rbx + 0x44], 4
jne 0x140010f40
call fcn.14000f070
mov ecx, dword [0x140028128]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
test rax, rax
je 0x140010f60
cmp rsi, qword [rax + 0x1d8]
je 0x140010f88
mov eax, dword [rbx + 0xbc]
mov rcx, qword [rbx + 0x28]
test eax, eax
je 0x140010ebb
lea rax, [rcx - 1]
cmp rax, 0xfffffffffffffffd
ja 0x140010eca
mov edx, 0xffffffff
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov rcx, qword [rbx + 0x28]
mov rsi, qword [sym.imp.KERNEL32.dll_CloseHandle]
call rsi
mov rcx, qword [rbx + 0x30]
test rcx, rcx
je 0x140010ede
call rsi
mov qword [rbx + 0x30], 0
lea rcx, [rbx + 0x38]
test rbp, rbp
je 0x140010f78
mov rax, qword [rbx + 8]
mov qword [rbp], rax
call fcn.14000e770
lea rcx, [rbx + 0x68]
call fcn.140012920
cmp eax, 1
je 0x140010f8f
cmp qword [rbx + 0x1d0], 0
mov qword [rbx + 0x68], 0xffffffffffffffff
je 0x140010f50
xor eax, eax
add rsp, 0x38
pop rbx
pop rsi
pop rdi
pop rbp
ret
mov eax, 3
add rsp, 0x38
pop rbx
pop rsi
pop rdi
pop rbp
ret
mov eax, 0x16
add rsp, 0x38
pop rbx
pop rsi
pop rdi
pop rbp
ret
mov rcx, rbx
call fcn.14000eef0
xor eax, eax
jmp 0x140010f26
call fcn.14000f120
test rax, rax
jne 0x140010e96
jmp 0x140010ea3
call fcn.14000e770
jmp 0x140010f00
mov eax, 0x24
jmp 0x140010f35
call fcn.14000ebf0
nop
nop word cs:[rax + rax]
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x38
lea rbp, [0x140028118]
mov rsi, rcx
mov rcx, rbp
mov rdi, rdx
call fcn.14000e2f0
mov rcx, rsi
call fcn.14000e8f0
test rax, rax
mov rbx, rax
je 0x1400110c0
mov rcx, qword [rax + 0x28]
test rcx, rcx
je 0x1400110c0
lea rdx, [rsp + 0x2c]
call qword [sym.imp.KERNEL32.dll_GetHandleInformation]
test eax, eax
je 0x1400110c0
test byte [rbx + 0x44], 4
jne 0x1400110e0
call fcn.14000f070
mov ecx, dword [0x140028128]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
test rax, rax
je 0x140011120
mov rdx, qword [rax + 0x1d8]
cmp rsi, rdx
je 0x140011158
mov edx, dword [rbx + 0xbc]
mov rcx, qword [rbx + 0x28]
test edx, edx
jne 0x140011047
xor edx, edx
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
test eax, eax
jne 0x140011100
mov rcx, qword [rbx + 0x28]
mov rsi, qword [sym.imp.KERNEL32.dll_CloseHandle]
call rsi
mov rcx, qword [rbx + 0x30]
test rcx, rcx
je 0x14001105b
call rsi
mov qword [rbx + 0x30], 0
lea rcx, [rbx + 0x38]
test rdi, rdi
je 0x140011138
mov rax, qword [rbx + 8]
mov qword [rdi], rax
call fcn.14000e770
lea rcx, [rbx + 0x68]
call fcn.140012920
cmp eax, 1
je 0x14001116a
cmp qword [rbx + 0x1d0], 0
mov qword [rbx + 0x68], 0xffffffffffffffff
je 0x140011148
mov rcx, rbp
call fcn.14000e5e0
xor eax, eax
add rsp, 0x38
pop rbx
pop rsi
pop rdi
pop rbp
ret
mov rcx, rbp
call fcn.14000e5e0
mov eax, 3
add rsp, 0x38
pop rbx
pop rsi
pop rdi
pop rbp
ret
mov rcx, rbp
call fcn.14000e5e0
mov eax, 0x16
add rsp, 0x38
pop rbx
pop rsi
pop rdi
pop rbp
ret
mov eax, dword [rbx + 0xbc]
test eax, eax
jne 0x140011043
mov rcx, rbp
call fcn.14000e5e0
mov eax, 0x10
jmp 0x1400110ae
call fcn.14000f120
xor edx, edx
test rax, rax
jne 0x140011015
jmp 0x14001101c
call fcn.14000e770
jmp 0x14001107c
mov rcx, rbx
call fcn.14000eef0
jmp 0x1400110a4
mov rcx, rbp
call fcn.14000e5e0
mov eax, 0x24
jmp 0x1400110ae
call fcn.14000ebf0
nop