Function at 0x1400d80f0
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 0x1400d8210
lea rdi, [0x1402174f8]
mov rcx, rdi
call fcn.1400d5580
mov rcx, rsi
call fcn.1400d5bf0
mov rcx, rdi
mov rbx, rax
call fcn.1400d5870
test rbx, rbx
je 0x1400d8210
mov rcx, qword [rbx + 0x28]
test rcx, rcx
je 0x1400d8210
lea rdx, [rsp + 0x2c]
call qword [sym.imp.KERNEL32.dll_GetHandleInformation]
test eax, eax
je 0x1400d8210
test byte [rbx + 0x44], 4
jne 0x1400d8220
call fcn.1400d6390
mov ecx, dword [0x140217508]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
test rax, rax
je 0x1400d8240
cmp rsi, qword [rax + 0x1d8]
je 0x1400d8268
mov eax, dword [rbx + 0xbc]
mov rcx, qword [rbx + 0x28]
test eax, eax
je 0x1400d819b
lea rax, [rcx - 1]
cmp rax, 0xfffffffffffffffd
ja 0x1400d81aa
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 0x1400d81be
call rsi
mov qword [rbx + 0x30], 0
lea rcx, [rbx + 0x38]
test rbp, rbp
je 0x1400d8258
mov rax, qword [rbx + 8]
mov qword [rbp], rax
call fcn.1400d5a00
lea rcx, [rbx + 0x68]
call fcn.1400d5b70
cmp eax, 1
je 0x1400d826f
cmp qword [rbx + 0x1d0], 0
mov qword [rbx + 0x68], 0xffffffffffffffff
je 0x1400d8230
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.1400d61f0
xor eax, eax
jmp 0x1400d8206
call fcn.1400d6440
test rax, rax
jne 0x1400d8176
jmp 0x1400d8183
call fcn.1400d5a00
jmp 0x1400d81e0
mov eax, 0x24
jmp 0x1400d8215
call fcn.1400d5ef0
nop
nop word cs:[rax + rax]
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x38
lea rbp, [0x1402174f8]
mov rsi, rcx
mov rcx, rbp
mov rdi, rdx
call fcn.1400d5580
mov rcx, rsi
call fcn.1400d5bf0
mov rbx, rax
test rax, rax
je 0x1400d83a0
mov rcx, qword [rax + 0x28]
test rcx, rcx
je 0x1400d83a0
lea rdx, [rsp + 0x2c]
call qword [sym.imp.KERNEL32.dll_GetHandleInformation]
test eax, eax
je 0x1400d83a0
test byte [rbx + 0x44], 4
jne 0x1400d83c0
call fcn.1400d6390
mov ecx, dword [0x140217508]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
test rax, rax
je 0x1400d8400
mov rdx, qword [rax + 0x1d8]
cmp rsi, rdx
je 0x1400d8438
mov edx, dword [rbx + 0xbc]
mov rcx, qword [rbx + 0x28]
test edx, edx
jne 0x1400d8327
xor edx, edx
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
test eax, eax
jne 0x1400d83e0
mov rcx, qword [rbx + 0x28]
mov rsi, qword [sym.imp.KERNEL32.dll_CloseHandle]
call rsi
mov rcx, qword [rbx + 0x30]
test rcx, rcx
je 0x1400d833b
call rsi
mov qword [rbx + 0x30], 0
lea rcx, [rbx + 0x38]
test rdi, rdi
je 0x1400d8418
mov rax, qword [rbx + 8]
mov qword [rdi], rax
call fcn.1400d5a00
lea rcx, [rbx + 0x68]
call fcn.1400d5b70
cmp eax, 1
je 0x1400d844a
cmp qword [rbx + 0x1d0], 0
mov qword [rbx + 0x68], 0xffffffffffffffff
je 0x1400d8428
mov rcx, rbp
call fcn.1400d5870
xor eax, eax
add rsp, 0x38
pop rbx
pop rsi
pop rdi
pop rbp
ret
mov rcx, rbp
call fcn.1400d5870
mov eax, 3
add rsp, 0x38
pop rbx
pop rsi
pop rdi
pop rbp
ret
mov rcx, rbp
call fcn.1400d5870
mov eax, 0x16
add rsp, 0x38
pop rbx
pop rsi
pop rdi
pop rbp
ret
mov eax, dword [rbx + 0xbc]
test eax, eax
jne 0x1400d8323
mov rcx, rbp
call fcn.1400d5870
mov eax, 0x10
jmp 0x1400d838e
call fcn.1400d6440
xor edx, edx
test rax, rax
jne 0x1400d82f5
jmp 0x1400d82fc
call fcn.1400d5a00
jmp 0x1400d835c
mov rcx, rbx
call fcn.1400d61f0
jmp 0x1400d8384
mov rcx, rbp
call fcn.1400d5870
mov eax, 0x24
jmp 0x1400d838e
call fcn.1400d5ef0
nop