Function at 0x14001bfd0
Capabilities:
Get thread local storage value

Disassembly:
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x38
mov rsi, rcx
mov rbp, rdx
test rcx, rcx
je 0x14001bf60
lea rdi, [0x1400e0188]
mov rcx, rdi
call fcn.140019300
mov rcx, rsi
call fcn.140019950
mov rcx, rdi
mov rbx, rax
call fcn.1400195d0
test rbx, rbx
je 0x14001bf60
mov rcx, qword [rbx + 0x28]
test rcx, rcx
je 0x14001bf60
lea rdx, [rsp + 0x2c]
call qword [sym.imp.KERNEL32.DLL_GetHandleInformation]
test eax, eax
je 0x14001bf60
test byte [rbx + 0x44], 4
jne 0x14001bf70
call fcn.14001a0e0
mov ecx, dword [0x1400e0198]
call qword [sym.imp.KERNEL32.DLL_TlsGetValue]
test rax, rax
je 0x14001bf90
cmp rsi, qword [rax + 0x1d8]
je 0x14001bfc0
mov eax, dword [rbx + 0xbc]
mov rcx, qword [rbx + 0x28]
test eax, eax
je 0x14001beeb
lea rax, [rcx - 1]
cmp rax, 0xfffffffffffffffd
ja 0x14001befa
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 0x14001bf0e
call rsi
mov qword [rbx + 0x30], 0
test rbp, rbp
je 0x14001bfa8
mov rax, qword [rbx + 8]
lea rcx, [rbx + 0x38]
mov qword [rbp], rax
call fcn.140019760
lea rcx, [rbx + 0x68]
call fcn.1400198d0
cmp eax, 1
je 0x14001bfc7
cmp qword [rbx + 0x1d0], 0
mov qword [rbx + 0x68], 0xffffffffffffffff
je 0x14001bf80
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.140019f40
xor eax, eax
jmp 0x14001bf56
call fcn.14001a190
test rax, rax
jne 0x14001bec6
jmp 0x14001bed3
lea rcx, [rbx + 0x38]
call fcn.140019760
lea rcx, [rbx + 0x68]
jmp 0x14001bf34
mov eax, 0x24
jmp 0x14001bf65
call fcn.140019c40
nop
nop dword [rax]
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x38
lea rbp, [0x1400e0188]
mov rsi, rcx
mov rcx, rbp
mov rdi, rdx
call fcn.140019300
mov rcx, rsi
call fcn.140019950
mov rbx, rax
test rax, rax
je 0x14001c0f0
mov rcx, qword [rax + 0x28]
test rcx, rcx
je 0x14001c0f0
lea rdx, [rsp + 0x2c]
call qword [sym.imp.KERNEL32.DLL_GetHandleInformation]
test eax, eax
je 0x14001c0f0
test byte [rbx + 0x44], 4
jne 0x14001c110
call fcn.14001a0e0
mov ecx, dword [0x1400e0198]
call qword [sym.imp.KERNEL32.DLL_TlsGetValue]
test rax, rax
je 0x14001c150
mov rdx, qword [rax + 0x1d8]
cmp rsi, rdx
je 0x14001c190
mov edx, dword [rbx + 0xbc]
mov rcx, qword [rbx + 0x28]
test edx, edx
jne 0x14001c077
xor edx, edx
call qword [sym.imp.KERNEL32.DLL_WaitForSingleObject]
test eax, eax
jne 0x14001c130
mov rcx, qword [rbx + 0x28]
mov rsi, qword [sym.imp.KERNEL32.DLL_CloseHandle]
call rsi
mov rcx, qword [rbx + 0x30]
test rcx, rcx
je 0x14001c08b
call rsi
mov qword [rbx + 0x30], 0
test rdi, rdi
je 0x14001c168
mov rax, qword [rbx + 8]
lea rcx, [rbx + 0x38]
mov qword [rdi], rax
call fcn.140019760
lea rcx, [rbx + 0x68]
call fcn.1400198d0
cmp eax, 1
je 0x14001c1a2
cmp qword [rbx + 0x1d0], 0
mov qword [rbx + 0x68], 0xffffffffffffffff
je 0x14001c180
mov rcx, rbp
call fcn.1400195d0
xor eax, eax
add rsp, 0x38
pop rbx
pop rsi
pop rdi
pop rbp
ret
mov rcx, rbp
call fcn.1400195d0
mov eax, 3
add rsp, 0x38
pop rbx
pop rsi
pop rdi
pop rbp
ret
mov rcx, rbp
call fcn.1400195d0
mov eax, 0x16
add rsp, 0x38
pop rbx
pop rsi
pop rdi
pop rbp
ret
mov eax, dword [rbx + 0xbc]
test eax, eax
jne 0x14001c073
mov rcx, rbp
call fcn.1400195d0
mov eax, 0x10
jmp 0x14001c0de
call fcn.14001a190
xor edx, edx
test rax, rax
jne 0x14001c045
jmp 0x14001c04c
lea rcx, [rbx + 0x38]
call fcn.140019760
lea rcx, [rbx + 0x68]
jmp 0x14001c0b0
mov rcx, rbx
call fcn.140019f40
jmp 0x14001c0d4
mov rcx, rbp
call fcn.1400195d0
mov eax, 0x24
jmp 0x14001c0de
call fcn.140019c40
nop
nop dword [rax + rax]