Function at 0x1400d8460
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 0x1400d83f0
lea rdi, [0x1402174f8]
mov rcx, rdi
call fcn.1400d5760
mov rcx, rsi
call fcn.1400d5dd0
mov rcx, rdi
mov rbx, rax
call fcn.1400d5a50
test rbx, rbx
je 0x1400d83f0
mov rcx, qword [rbx + 0x28]
test rcx, rcx
je 0x1400d83f0
lea rdx, [rsp + 0x2c]
call qword [sym.imp.KERNEL32.dll_GetHandleInformation]
test eax, eax
je 0x1400d83f0
test byte [rbx + 0x44], 4
jne 0x1400d8400
call fcn.1400d6570
mov ecx, dword [0x140217508]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
test rax, rax
je 0x1400d8420
cmp rsi, qword [rax + 0x1d8]
je 0x1400d8448
mov eax, dword [rbx + 0xbc]
mov rcx, qword [rbx + 0x28]
test eax, eax
je 0x1400d837b
lea rax, [rcx - 1]
cmp rax, 0xfffffffffffffffd
ja 0x1400d838a
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 0x1400d839e
call rsi
mov qword [rbx + 0x30], 0
lea rcx, [rbx + 0x38]
test rbp, rbp
je 0x1400d8438
mov rax, qword [rbx + 8]
mov qword [rbp], rax
call fcn.1400d5be0
lea rcx, [rbx + 0x68]
call fcn.1400d5d50
cmp eax, 1
je 0x1400d844f
cmp qword [rbx + 0x1d0], 0
mov qword [rbx + 0x68], 0xffffffffffffffff
je 0x1400d8410
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.1400d63d0
xor eax, eax
jmp 0x1400d83e6
call fcn.1400d6620
test rax, rax
jne 0x1400d8356
jmp 0x1400d8363
call fcn.1400d5be0
jmp 0x1400d83c0
mov eax, 0x24
jmp 0x1400d83f5
call fcn.1400d60d0
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.1400d5760
mov rcx, rsi
call fcn.1400d5dd0
mov rbx, rax
test rax, rax
je 0x1400d8580
mov rcx, qword [rax + 0x28]
test rcx, rcx
je 0x1400d8580
lea rdx, [rsp + 0x2c]
call qword [sym.imp.KERNEL32.dll_GetHandleInformation]
test eax, eax
je 0x1400d8580
test byte [rbx + 0x44], 4
jne 0x1400d85a0
call fcn.1400d6570
mov ecx, dword [0x140217508]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
test rax, rax
je 0x1400d85e0
mov rdx, qword [rax + 0x1d8]
cmp rsi, rdx
je 0x1400d8618
mov edx, dword [rbx + 0xbc]
mov rcx, qword [rbx + 0x28]
test edx, edx
jne 0x1400d8507
xor edx, edx
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
test eax, eax
jne 0x1400d85c0
mov rcx, qword [rbx + 0x28]
mov rsi, qword [sym.imp.KERNEL32.dll_CloseHandle]
call rsi
mov rcx, qword [rbx + 0x30]
test rcx, rcx
je 0x1400d851b
call rsi
mov qword [rbx + 0x30], 0
lea rcx, [rbx + 0x38]
test rdi, rdi
je 0x1400d85f8
mov rax, qword [rbx + 8]
mov qword [rdi], rax
call fcn.1400d5be0
lea rcx, [rbx + 0x68]
call fcn.1400d5d50
cmp eax, 1
je 0x1400d862a
cmp qword [rbx + 0x1d0], 0
mov qword [rbx + 0x68], 0xffffffffffffffff
je 0x1400d8608
mov rcx, rbp
call fcn.1400d5a50
xor eax, eax
add rsp, 0x38
pop rbx
pop rsi
pop rdi
pop rbp
ret
mov rcx, rbp
call fcn.1400d5a50
mov eax, 3
add rsp, 0x38
pop rbx
pop rsi
pop rdi
pop rbp
ret
mov rcx, rbp
call fcn.1400d5a50
mov eax, 0x16
add rsp, 0x38
pop rbx
pop rsi
pop rdi
pop rbp
ret
mov eax, dword [rbx + 0xbc]
test eax, eax
jne 0x1400d8503
mov rcx, rbp
call fcn.1400d5a50
mov eax, 0x10
jmp 0x1400d856e
call fcn.1400d6620
xor edx, edx
test rax, rax
jne 0x1400d84d5
jmp 0x1400d84dc
call fcn.1400d5be0
jmp 0x1400d853c
mov rcx, rbx
call fcn.1400d63d0
jmp 0x1400d8564
mov rcx, rbp
call fcn.1400d5a50
mov eax, 0x24
jmp 0x1400d856e
call fcn.1400d60d0
nop