Function at 0x14000ef40
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 0x14000eed0
lea rdi, [0x1402b0028]
mov rcx, rdi
call fcn.14000f770
mov rcx, rsi
call fcn.14000c8b0
mov rcx, rdi
mov rbx, rax
call fcn.14000fa60
test rbx, rbx
je 0x14000eed0
mov rcx, qword [rbx + 0x28]
test rcx, rcx
je 0x14000eed0
lea rdx, [rsp + 0x2c]
call qword [sym.imp.KERNEL32.dll_GetHandleInformation]
test eax, eax
je 0x14000eed0
test byte [rbx + 0x44], 4
jne 0x14000eee0
call fcn.14000d050
mov ecx, dword [0x1402b0038]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
test rax, rax
je 0x14000ef00
cmp rsi, qword [rax + 0x1d8]
je 0x14000ef28
mov eax, dword [rbx + 0xbc]
mov rcx, qword [rbx + 0x28]
test eax, eax
je 0x14000ee5b
lea rax, [rcx - 1]
cmp rax, 0xfffffffffffffffd
ja 0x14000ee6a
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 0x14000ee7e
call rsi
mov qword [rbx + 0x30], 0
lea rcx, [rbx + 0x38]
test rbp, rbp
je 0x14000ef18
mov rax, qword [rbx + 8]
mov qword [rbp], rax
call fcn.14000fbf0
lea rcx, [rbx + 0x68]
call fcn.1400109e0
cmp eax, 1
je 0x14000ef2f
cmp qword [rbx + 0x1d0], 0
mov qword [rbx + 0x68], 0xffffffffffffffff
je 0x14000eef0
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.14000ceb0
xor eax, eax
jmp 0x14000eec6
call fcn.14000d100
test rax, rax
jne 0x14000ee36
jmp 0x14000ee43
call fcn.14000fbf0
jmp 0x14000eea0
mov eax, 0x24
jmp 0x14000eed5
call fcn.14000cbb0
nop
nop word cs:[rax + rax]
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x38
lea rbp, [0x1402b0028]
mov rsi, rcx
mov rcx, rbp
mov rdi, rdx
call fcn.14000f770
mov rcx, rsi
call fcn.14000c8b0
mov rbx, rax
test rax, rax
je 0x14000f060
mov rcx, qword [rax + 0x28]
test rcx, rcx
je 0x14000f060
lea rdx, [rsp + 0x2c]
call qword [sym.imp.KERNEL32.dll_GetHandleInformation]
test eax, eax
je 0x14000f060
test byte [rbx + 0x44], 4
jne 0x14000f080
call fcn.14000d050
mov ecx, dword [0x1402b0038]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
test rax, rax
je 0x14000f0c0
mov rdx, qword [rax + 0x1d8]
cmp rsi, rdx
je 0x14000f0f8
mov edx, dword [rbx + 0xbc]
mov rcx, qword [rbx + 0x28]
test edx, edx
jne 0x14000efe7
xor edx, edx
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
test eax, eax
jne 0x14000f0a0
mov rcx, qword [rbx + 0x28]
mov rsi, qword [sym.imp.KERNEL32.dll_CloseHandle]
call rsi
mov rcx, qword [rbx + 0x30]
test rcx, rcx
je 0x14000effb
call rsi
mov qword [rbx + 0x30], 0
lea rcx, [rbx + 0x38]
test rdi, rdi
je 0x14000f0d8
mov rax, qword [rbx + 8]
mov qword [rdi], rax
call fcn.14000fbf0
lea rcx, [rbx + 0x68]
call fcn.1400109e0
cmp eax, 1
je 0x14000f10a
cmp qword [rbx + 0x1d0], 0
mov qword [rbx + 0x68], 0xffffffffffffffff
je 0x14000f0e8
mov rcx, rbp
call fcn.14000fa60
xor eax, eax
add rsp, 0x38
pop rbx
pop rsi
pop rdi
pop rbp
ret
mov rcx, rbp
call fcn.14000fa60
mov eax, 3
add rsp, 0x38
pop rbx
pop rsi
pop rdi
pop rbp
ret
mov rcx, rbp
call fcn.14000fa60
mov eax, 0x16
add rsp, 0x38
pop rbx
pop rsi
pop rdi
pop rbp
ret
mov eax, dword [rbx + 0xbc]
test eax, eax
jne 0x14000efe3
mov rcx, rbp
call fcn.14000fa60
mov eax, 0x10
jmp 0x14000f04e
call fcn.14000d100
xor edx, edx
test rax, rax
jne 0x14000efb5
jmp 0x14000efbc
call fcn.14000fbf0
jmp 0x14000f01c
mov rcx, rbx
call fcn.14000ceb0
jmp 0x14000f044
mov rcx, rbp
call fcn.14000fa60
mov eax, 0x24
jmp 0x14000f04e
call fcn.14000cbb0
nop