Function at 0x14001d0d0
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 0x14001d1f0
lea rdi, [0x1400ba178]
mov rcx, rdi
call fcn.14001a590
mov rcx, rsi
call fcn.14001abe0
mov rcx, rdi
mov rbx, rax
call fcn.14001a860
test rbx, rbx
je 0x14001d1f0
mov rcx, qword [rbx + 0x28]
test rcx, rcx
je 0x14001d1f0
lea rdx, [rsp + 0x2c]
call qword [sym.imp.KERNEL32.dll_GetHandleInformation]
test eax, eax
je 0x14001d1f0
test byte [rbx + 0x44], 4
jne 0x14001d200
call fcn.14001b370
mov ecx, dword [0x1400ba188]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
test rax, rax
je 0x14001d220
cmp rsi, qword [rax + 0x1d8]
je 0x14001d250
mov eax, dword [rbx + 0xbc]
mov rcx, qword [rbx + 0x28]
test eax, eax
je 0x14001d17b
lea rax, [rcx - 1]
cmp rax, 0xfffffffffffffffd
ja 0x14001d18a
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 0x14001d19e
call rsi
mov qword [rbx + 0x30], 0
test rbp, rbp
je 0x14001d238
mov rax, qword [rbx + 8]
lea rcx, [rbx + 0x38]
mov qword [rbp], rax
call fcn.14001a9f0
lea rcx, [rbx + 0x68]
call fcn.14001ab60
cmp eax, 1
je 0x14001d257
cmp qword [rbx + 0x1d0], 0
mov qword [rbx + 0x68], 0xffffffffffffffff
je 0x14001d210
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.14001b1d0
xor eax, eax
jmp 0x14001d1e6
call fcn.14001b420
test rax, rax
jne 0x14001d156
jmp 0x14001d163
lea rcx, [rbx + 0x38]
call fcn.14001a9f0
lea rcx, [rbx + 0x68]
jmp 0x14001d1c4
mov eax, 0x24
jmp 0x14001d1f5
call fcn.14001aed0
nop
nop dword [rax]
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x38
lea rbp, [0x1400ba178]
mov rsi, rcx
mov rcx, rbp
mov rdi, rdx
call fcn.14001a590
mov rcx, rsi
call fcn.14001abe0
mov rbx, rax
test rax, rax
je 0x14001d380
mov rcx, qword [rax + 0x28]
test rcx, rcx
je 0x14001d380
lea rdx, [rsp + 0x2c]
call qword [sym.imp.KERNEL32.dll_GetHandleInformation]
test eax, eax
je 0x14001d380
test byte [rbx + 0x44], 4
jne 0x14001d3a0
call fcn.14001b370
mov ecx, dword [0x1400ba188]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
test rax, rax
je 0x14001d3e0
mov rdx, qword [rax + 0x1d8]
cmp rsi, rdx
je 0x14001d420
mov edx, dword [rbx + 0xbc]
mov rcx, qword [rbx + 0x28]
test edx, edx
jne 0x14001d307
xor edx, edx
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
test eax, eax
jne 0x14001d3c0
mov rcx, qword [rbx + 0x28]
mov rsi, qword [sym.imp.KERNEL32.dll_CloseHandle]
call rsi
mov rcx, qword [rbx + 0x30]
test rcx, rcx
je 0x14001d31b
call rsi
mov qword [rbx + 0x30], 0
test rdi, rdi
je 0x14001d3f8
mov rax, qword [rbx + 8]
lea rcx, [rbx + 0x38]
mov qword [rdi], rax
call fcn.14001a9f0
lea rcx, [rbx + 0x68]
call fcn.14001ab60
cmp eax, 1
je 0x14001d432
cmp qword [rbx + 0x1d0], 0
mov qword [rbx + 0x68], 0xffffffffffffffff
je 0x14001d410
mov rcx, rbp
call fcn.14001a860
xor eax, eax
add rsp, 0x38
pop rbx
pop rsi
pop rdi
pop rbp
ret
mov rcx, rbp
call fcn.14001a860
mov eax, 3
add rsp, 0x38
pop rbx
pop rsi
pop rdi
pop rbp
ret
mov rcx, rbp
call fcn.14001a860
mov eax, 0x16
add rsp, 0x38
pop rbx
pop rsi
pop rdi
pop rbp
ret
mov eax, dword [rbx + 0xbc]
test eax, eax
jne 0x14001d303
mov rcx, rbp
call fcn.14001a860
mov eax, 0x10
jmp 0x14001d36e
call fcn.14001b420
xor edx, edx
test rax, rax
jne 0x14001d2d5
jmp 0x14001d2dc
lea rcx, [rbx + 0x38]
call fcn.14001a9f0
lea rcx, [rbx + 0x68]
jmp 0x14001d340
mov rcx, rbx
call fcn.14001b1d0
jmp 0x14001d364
mov rcx, rbp
call fcn.14001a860
mov eax, 0x24
jmp 0x14001d36e
call fcn.14001aed0
nop
nop dword [rax + rax]