Function at 0x14001e1c0
Capabilities:
Get thread local storage value

Disassembly:
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x30
mov rbp, qword [0x1400d78e0]
mov rax, qword [rbp]
mov qword [rsp + 0x28], rax
xor eax, eax
mov rsi, rcx
mov rdi, rdx
test rcx, rcx
je 0x14001e130
lea r12, [0x1400cd308]
mov rcx, r12
call fcn.14001b450
mov rcx, rsi
call fcn.14001bae0
mov rcx, r12
mov rbx, rax
call fcn.14001b720
test rbx, rbx
je 0x14001e130
mov rcx, qword [rbx + 0x28]
test rcx, rcx
je 0x14001e130
lea rdx, [rsp + 0x24]
call qword [sym.imp.KERNEL32.dll_GetHandleInformation]
test eax, eax
je 0x14001e130
test byte [rbx + 0x44], 4
jne 0x14001e150
call fcn.14001c1f0
mov ecx, dword [0x1400cd318]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
test rax, rax
je 0x14001e170
cmp rsi, qword [rax + 0x1d8]
je 0x14001e1a0
mov eax, dword [rbx + 0xbc]
mov rcx, qword [rbx + 0x28]
test eax, eax
je 0x14001e0bf
lea rax, [rcx - 1]
cmp rax, 0xfffffffffffffffd
ja 0x14001e0ce
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 0x14001e0e2
call rsi
mov qword [rbx + 0x30], 0
test rdi, rdi
je 0x14001e188
mov rax, qword [rbx + 8]
lea rcx, [rbx + 0x38]
mov qword [rdi], rax
call fcn.14001b8c0
lea rcx, [rbx + 0x68]
call fcn.14001ba30
cmp eax, 1
je 0x14001e1ac
cmp qword [rbx + 0x1d0], 0
mov qword [rbx + 0x68], 0xffffffffffffffff
je 0x14001e160
xor eax, eax
jmp 0x14001e135
mov eax, 3
mov rdx, qword [rsp + 0x28]
sub rdx, qword [rbp]
jne 0x14001e1a7
add rsp, 0x30
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
ret
mov eax, 0x16
jmp 0x14001e135
mov rcx, rbx
call fcn.14001c050
xor eax, eax
jmp 0x14001e135
call fcn.14001c2a0
test rax, rax
je 0x14001e0a7
jmp 0x14001e09a
lea rcx, [rbx + 0x38]
call fcn.14001b8c0
lea rcx, [rbx + 0x68]
jmp 0x14001e107
mov eax, 0x24
jmp 0x14001e135
call fcn.14000fc50
call fcn.14001bdc0
nop
nop word cs:[rax + rax]
nop dword [rax]
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x30
mov rbp, qword [0x1400d78e0]
mov r12, qword [rbp]
mov qword [rsp + 0x28], r12
lea r12, [0x1400cd308]
mov rsi, rcx
mov rdi, rdx
mov rcx, r12
call fcn.14001b450
mov rcx, rsi
call fcn.14001bae0
mov rbx, rax
test rax, rax
je 0x14001e300
mov rcx, qword [rax + 0x28]
test rcx, rcx
je 0x14001e300
lea rdx, [rsp + 0x24]
call qword [sym.imp.KERNEL32.dll_GetHandleInformation]
test eax, eax
je 0x14001e300
test byte [rbx + 0x44], 4
jne 0x14001e310
call fcn.14001c1f0
mov ecx, dword [0x1400cd318]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
test rax, rax
je 0x14001e340
mov rdx, qword [rax + 0x1d8]
cmp rsi, rdx
je 0x14001e380
mov edx, dword [rbx + 0xbc]
test edx, edx
jne 0x14001e275
xor edx, edx
mov rcx, qword [rbx + 0x28]
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
test eax, eax
jne 0x14001e320
mov rcx, qword [rbx + 0x28]
mov rsi, qword [sym.imp.KERNEL32.dll_CloseHandle]
call rsi
mov rcx, qword [rbx + 0x30]
test rcx, rcx
je 0x14001e28d
call rsi
mov qword [rbx + 0x30], 0
test rdi, rdi
je 0x14001e358
mov rax, qword [rbx + 8]
lea rcx, [rbx + 0x38]
mov qword [rdi], rax
call fcn.14001b8c0
lea rcx, [rbx + 0x68]
call fcn.14001ba30
cmp eax, 1
je 0x14001e397
cmp qword [rbx + 0x1d0], 0
mov qword [rbx + 0x68], 0xffffffffffffffff
je 0x14001e370
mov rcx, r12
call fcn.14001b720
xor eax, eax
mov rdx, qword [rsp + 0x28]
sub rdx, qword [rbp]
jne 0x14001e392
add rsp, 0x30
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
ret
mov rcx, r12
call fcn.14001b720
mov eax, 3
jmp 0x14001e2e0
mov rcx, r12
call fcn.14001b720
mov eax, 0x16
jmp 0x14001e2e0
mov eax, dword [rbx + 0xbc]
test eax, eax
jne 0x14001e275
mov rcx, r12
call fcn.14001b720
mov eax, 0x10
jmp 0x14001e2e0
call fcn.14001c2a0
xor edx, edx
test rax, rax
je 0x14001e24e
jmp 0x14001e247
lea rcx, [rbx + 0x38]
call fcn.14001b8c0
lea rcx, [rbx + 0x68]
jmp 0x14001e2b2
mov rcx, rbx
call fcn.14001c050
jmp 0x14001e2d6
mov rcx, r12
call fcn.14001b720
mov eax, 0x24
jmp 0x14001e2e0
call fcn.14000fc50
call fcn.14001bdc0
nop
nop dword [rax]