Function at 0x140007ae0
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 0x140007c00
lea rdi, [0x14001c028]
mov rcx, rdi
call fcn.140004f70
mov rcx, rsi
call fcn.1400055e0
mov rcx, rdi
mov rbx, rax
call fcn.140005260
test rbx, rbx
je 0x140007c00
mov rcx, qword [rbx + 0x28]
test rcx, rcx
je 0x140007c00
lea rdx, [rsp + 0x2c]
call qword [sym.imp.KERNEL32.dll_GetHandleInformation]
test eax, eax
je 0x140007c00
test byte [rbx + 0x44], 4
jne 0x140007c10
call fcn.140005d80
mov ecx, dword [0x14001c038]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
test rax, rax
je 0x140007c30
cmp rsi, qword [rax + 0x1d8]
je 0x140007c58
mov eax, dword [rbx + 0xbc]
mov rcx, qword [rbx + 0x28]
test eax, eax
je 0x140007b8b
lea rax, [rcx - 1]
cmp rax, 0xfffffffffffffffd
ja 0x140007b9a
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 0x140007bae
call rsi
mov qword [rbx + 0x30], 0
lea rcx, [rbx + 0x38]
test rbp, rbp
je 0x140007c48
mov rax, qword [rbx + 8]
mov qword [rbp], rax
call fcn.1400053f0
lea rcx, [rbx + 0x68]
call fcn.140005560
cmp eax, 1
je 0x140007c5f
cmp qword [rbx + 0x1d0], 0
mov qword [rbx + 0x68], 0xffffffffffffffff
je 0x140007c20
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.140005be0
xor eax, eax
jmp 0x140007bf6
call fcn.140005e30
test rax, rax
jne 0x140007b66
jmp 0x140007b73
call fcn.1400053f0
jmp 0x140007bd0
mov eax, 0x24
jmp 0x140007c05
call fcn.1400058e0
nop
nop word cs:[rax + rax]
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x38
lea rbp, [0x14001c028]
mov rsi, rcx
mov rcx, rbp
mov rdi, rdx
call fcn.140004f70
mov rcx, rsi
call fcn.1400055e0
mov rbx, rax
test rax, rax
je 0x140007d90
mov rcx, qword [rax + 0x28]
test rcx, rcx
je 0x140007d90
lea rdx, [rsp + 0x2c]
call qword [sym.imp.KERNEL32.dll_GetHandleInformation]
test eax, eax
je 0x140007d90
test byte [rbx + 0x44], 4
jne 0x140007db0
call fcn.140005d80
mov ecx, dword [0x14001c038]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
test rax, rax
je 0x140007df0
mov rdx, qword [rax + 0x1d8]
cmp rsi, rdx
je 0x140007e28
mov edx, dword [rbx + 0xbc]
mov rcx, qword [rbx + 0x28]
test edx, edx
jne 0x140007d17
xor edx, edx
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
test eax, eax
jne 0x140007dd0
mov rcx, qword [rbx + 0x28]
mov rsi, qword [sym.imp.KERNEL32.dll_CloseHandle]
call rsi
mov rcx, qword [rbx + 0x30]
test rcx, rcx
je 0x140007d2b
call rsi
mov qword [rbx + 0x30], 0
lea rcx, [rbx + 0x38]
test rdi, rdi
je 0x140007e08
mov rax, qword [rbx + 8]
mov qword [rdi], rax
call fcn.1400053f0
lea rcx, [rbx + 0x68]
call fcn.140005560
cmp eax, 1
je 0x140007e3a
cmp qword [rbx + 0x1d0], 0
mov qword [rbx + 0x68], 0xffffffffffffffff
je 0x140007e18
mov rcx, rbp
call fcn.140005260
xor eax, eax
add rsp, 0x38
pop rbx
pop rsi
pop rdi
pop rbp
ret
mov rcx, rbp
call fcn.140005260
mov eax, 3
add rsp, 0x38
pop rbx
pop rsi
pop rdi
pop rbp
ret
mov rcx, rbp
call fcn.140005260
mov eax, 0x16
add rsp, 0x38
pop rbx
pop rsi
pop rdi
pop rbp
ret
mov eax, dword [rbx + 0xbc]
test eax, eax
jne 0x140007d13
mov rcx, rbp
call fcn.140005260
mov eax, 0x10
jmp 0x140007d7e
call fcn.140005e30
xor edx, edx
test rax, rax
jne 0x140007ce5
jmp 0x140007cec
call fcn.1400053f0
jmp 0x140007d4c
mov rcx, rbx
call fcn.140005be0
jmp 0x140007d74
mov rcx, rbp
call fcn.140005260
mov eax, 0x24
jmp 0x140007d7e
call fcn.1400058e0
nop
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x38
lea rsi, [0x14001c028]
mov rbx, rcx
mov rcx, rsi
test rbx, rbx
je 0x140007f38
call fcn.140004f70
mov rcx, rbx
call fcn.1400055e0
mov rcx, rsi
mov rbx, rax
call fcn.140005260
mov rcx, rsi
call fcn.140004f70
test rbx, rbx
je 0x140007f3d
mov rcx, qword [rbx + 0x28]
test rcx, rcx
je 0x140007f3d
lea rdx, [rsp + 0x2c]
call qword [sym.imp.KERNEL32.dll_GetHandleInformation]
test eax, eax
je 0x140007f3d
mov eax, dword [rbx + 0x44]
test al, 4
jne 0x140007f58
or eax, 4
mov rcx, qword [rbx + 0x28]
mov qword [rbx + 0x28], 0
mov dword [rbx + 0x44], eax
test rcx, rcx
je 0x140007f20
mov rdi, qword [sym.imp.KERNEL32.dll_CloseHandle]
call rdi
mov eax, dword [rbx + 0xbc]
test eax, eax
je 0x140007f20
mov rcx, qword [rbx + 0x30]
lea rbp, [rbx + 0x38]
test rcx, rcx
je 0x140007f70
call rdi
mov qword [rbx + 0x30], 0
mov rcx, rbp
call fcn.1400053f0
lea rcx, [rbx + 0x68]
call fcn.140005560
cmp eax, 1
je 0x140007f8a
cmp qword [rbx + 0x1d0], 0
mov qword [rbx + 0x68], 0xffffffffffffffff
je 0x140007f80
nop
mov rcx, rsi
call fcn.140005260
xor eax, eax
add rsp, 0x38
pop rbx
pop rsi
pop rdi
pop rbp
ret
call fcn.140004f70
mov rcx, rsi
call fcn.140005260
mov eax, 3
add rsp, 0x38
pop rbx
pop rsi
pop rdi
pop rbp
ret
mov rcx, rsi
call fcn.140005260
mov eax, 0x16
jmp 0x140007f2a
mov rcx, rbp
call fcn.1400053f0
jmp 0x140007eff
mov rcx, rbx
call fcn.140005be0
jmp 0x140007f20
call fcn.1400058e0
nop
mov eax, dword [0x140026058]
ret