Function at 0x14001bc70
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 0x14001bd90
lea rdi, [0x1400ce168]
mov rcx, rdi
call fcn.140019130
mov rcx, rsi
call fcn.140019780
mov rcx, rdi
mov rbx, rax
call fcn.140019400
test rbx, rbx
je 0x14001bd90
mov rcx, qword [rbx + 0x28]
test rcx, rcx
je 0x14001bd90
lea rdx, [rsp + 0x2c]
call qword [sym.imp.KERNEL32.DLL_GetHandleInformation]
test eax, eax
je 0x14001bd90
test byte [rbx + 0x44], 4
jne 0x14001bda0
call fcn.140019f10
mov ecx, dword [0x1400ce178]
call qword [sym.imp.KERNEL32.DLL_TlsGetValue]
test rax, rax
je 0x14001bdc0
cmp rsi, qword [rax + 0x1d8]
je 0x14001bdf0
mov eax, dword [rbx + 0xbc]
mov rcx, qword [rbx + 0x28]
test eax, eax
je 0x14001bd1b
lea rax, [rcx - 1]
cmp rax, 0xfffffffffffffffd
ja 0x14001bd2a
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 0x14001bd3e
call rsi
mov qword [rbx + 0x30], 0
test rbp, rbp
je 0x14001bdd8
mov rax, qword [rbx + 8]
lea rcx, [rbx + 0x38]
mov qword [rbp], rax
call fcn.140019590
lea rcx, [rbx + 0x68]
call fcn.140019700
cmp eax, 1
je 0x14001bdf7
cmp qword [rbx + 0x1d0], 0
mov qword [rbx + 0x68], 0xffffffffffffffff
je 0x14001bdb0
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.140019d70
xor eax, eax
jmp 0x14001bd86
call fcn.140019fc0
test rax, rax
jne 0x14001bcf6
jmp 0x14001bd03
lea rcx, [rbx + 0x38]
call fcn.140019590
lea rcx, [rbx + 0x68]
jmp 0x14001bd64
mov eax, 0x24
jmp 0x14001bd95
call fcn.140019a70
nop
nop dword [rax]
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x38
lea rbp, [0x1400ce168]
mov rsi, rcx
mov rcx, rbp
mov rdi, rdx
call fcn.140019130
mov rcx, rsi
call fcn.140019780
mov rbx, rax
test rax, rax
je 0x14001bf20
mov rcx, qword [rax + 0x28]
test rcx, rcx
je 0x14001bf20
lea rdx, [rsp + 0x2c]
call qword [sym.imp.KERNEL32.DLL_GetHandleInformation]
test eax, eax
je 0x14001bf20
test byte [rbx + 0x44], 4
jne 0x14001bf40
call fcn.140019f10
mov ecx, dword [0x1400ce178]
call qword [sym.imp.KERNEL32.DLL_TlsGetValue]
test rax, rax
je 0x14001bf80
mov rdx, qword [rax + 0x1d8]
cmp rsi, rdx
je 0x14001bfc0
mov edx, dword [rbx + 0xbc]
mov rcx, qword [rbx + 0x28]
test edx, edx
jne 0x14001bea7
xor edx, edx
call qword [sym.imp.KERNEL32.DLL_WaitForSingleObject]
test eax, eax
jne 0x14001bf60
mov rcx, qword [rbx + 0x28]
mov rsi, qword [sym.imp.KERNEL32.DLL_CloseHandle]
call rsi
mov rcx, qword [rbx + 0x30]
test rcx, rcx
je 0x14001bebb
call rsi
mov qword [rbx + 0x30], 0
test rdi, rdi
je 0x14001bf98
mov rax, qword [rbx + 8]
lea rcx, [rbx + 0x38]
mov qword [rdi], rax
call fcn.140019590
lea rcx, [rbx + 0x68]
call fcn.140019700
cmp eax, 1
je 0x14001bfd2
cmp qword [rbx + 0x1d0], 0
mov qword [rbx + 0x68], 0xffffffffffffffff
je 0x14001bfb0
mov rcx, rbp
call fcn.140019400
xor eax, eax
add rsp, 0x38
pop rbx
pop rsi
pop rdi
pop rbp
ret
mov rcx, rbp
call fcn.140019400
mov eax, 3
add rsp, 0x38
pop rbx
pop rsi
pop rdi
pop rbp
ret
mov rcx, rbp
call fcn.140019400
mov eax, 0x16
add rsp, 0x38
pop rbx
pop rsi
pop rdi
pop rbp
ret
mov eax, dword [rbx + 0xbc]
test eax, eax
jne 0x14001bea3
mov rcx, rbp
call fcn.140019400
mov eax, 0x10
jmp 0x14001bf0e
call fcn.140019fc0
xor edx, edx
test rax, rax
jne 0x14001be75
jmp 0x14001be7c
lea rcx, [rbx + 0x38]
call fcn.140019590
lea rcx, [rbx + 0x68]
jmp 0x14001bee0
mov rcx, rbx
call fcn.140019d70
jmp 0x14001bf04
mov rcx, rbp
call fcn.140019400
mov eax, 0x24
jmp 0x14001bf0e
call fcn.140019a70
nop
nop dword [rax + rax]