Function at 0x14011e830
Capabilities:
Get thread local storage value

Disassembly:
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x30
mov rbp, qword [0x1402af0f0]
mov rax, qword [rbp]
mov qword [rsp + 0x28], rax
xor eax, eax
mov rsi, rcx
mov rdi, rdx
test rcx, rcx
je 0x14011e7b0
lea r12, [0x14026b828]
mov rcx, r12
call fcn.14011ba50
mov rcx, rsi
call fcn.14011c0c0
mov rcx, r12
mov rbx, rax
call fcn.14011bd40
test rbx, rbx
je 0x14011e7b0
mov rcx, qword [rbx + 0x28]
test rcx, rcx
je 0x14011e7b0
lea rdx, [rsp + 0x24]
call qword [sym.imp.KERNEL32.dll_GetHandleInformation]
test eax, eax
je 0x14011e7b0
test byte [rbx + 0x44], 4
jne 0x14011e7d0
call fcn.14011c870
mov ecx, dword [0x14026b838]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
test rax, rax
je 0x14011e7f0
cmp rsi, qword [rax + 0x1d8]
je 0x14011e818
mov eax, dword [rbx + 0xbc]
mov rcx, qword [rbx + 0x28]
test eax, eax
je 0x14011e73f
lea rax, [rcx - 1]
cmp rax, 0xfffffffffffffffd
ja 0x14011e74e
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 0x14011e762
call rsi
mov qword [rbx + 0x30], 0
lea rcx, [rbx + 0x38]
test rdi, rdi
je 0x14011e808
mov rax, qword [rbx + 8]
mov qword [rdi], rax
call fcn.14011bed0
lea rcx, [rbx + 0x68]
call fcn.14011c040
cmp eax, 1
je 0x14011e824
cmp qword [rbx + 0x1d0], 0
mov qword [rbx + 0x68], 0xffffffffffffffff
je 0x14011e7e0
xor eax, eax
jmp 0x14011e7b5
mov eax, 3
mov rdx, qword [rsp + 0x28]
sub rdx, qword [rbp]
jne 0x14011e81f
add rsp, 0x30
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
ret
mov eax, 0x16
jmp 0x14011e7b5
mov rcx, rbx
call fcn.14011c6d0
xor eax, eax
jmp 0x14011e7b5
call fcn.14011c920
test rax, rax
jne 0x14011e71a
jmp 0x14011e727
call fcn.14011bed0
jmp 0x14011e783
mov eax, 0x24
jmp 0x14011e7b5
call fcn.140120520
call fcn.14011c3c0
nop
nop word [rax + rax]
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x30
mov rbp, qword [0x1402af0f0]
lea r12, [0x14026b828]
mov rax, qword [rbp]
mov qword [rsp + 0x28], rax
xor eax, eax
mov rsi, rcx
mov rcx, r12
mov rdi, rdx
call fcn.14011ba50
mov rcx, rsi
call fcn.14011c0c0
mov rbx, rax
test rax, rax
je 0x14011e970
mov rcx, qword [rax + 0x28]
test rcx, rcx
je 0x14011e970
lea rdx, [rsp + 0x24]
call qword [sym.imp.KERNEL32.dll_GetHandleInformation]
test eax, eax
je 0x14011e970
test byte [rbx + 0x44], 4
jne 0x14011e980
call fcn.14011c870
mov ecx, dword [0x14026b838]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
test rax, rax
je 0x14011e9b0
mov rdx, qword [rax + 0x1d8]
cmp rsi, rdx
je 0x14011e9e8
mov edx, dword [rbx + 0xbc]
mov rcx, qword [rbx + 0x28]
test edx, edx
jne 0x14011e8eb
xor edx, edx
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
test eax, eax
jne 0x14011e990
mov rcx, qword [rbx + 0x28]
mov rsi, qword [sym.imp.KERNEL32.dll_CloseHandle]
call rsi
mov rcx, qword [rbx + 0x30]
test rcx, rcx
je 0x14011e8ff
call rsi
mov qword [rbx + 0x30], 0
lea rcx, [rbx + 0x38]
test rdi, rdi
je 0x14011e9c8
mov rax, qword [rbx + 8]
mov qword [rdi], rax
call fcn.14011bed0
lea rcx, [rbx + 0x68]
call fcn.14011c040
cmp eax, 1
je 0x14011e9ff
cmp qword [rbx + 0x1d0], 0
mov qword [rbx + 0x68], 0xffffffffffffffff
je 0x14011e9d8
mov rcx, r12
call fcn.14011bd40
xor eax, eax
mov rdx, qword [rsp + 0x28]
sub rdx, qword [rbp]
jne 0x14011e9fa
add rsp, 0x30
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
ret
mov rcx, r12
call fcn.14011bd40
mov eax, 3
jmp 0x14011e952
mov rcx, r12
call fcn.14011bd40
mov eax, 0x16
jmp 0x14011e952
mov eax, dword [rbx + 0xbc]
test eax, eax
jne 0x14011e8e7
mov rcx, r12
call fcn.14011bd40
mov eax, 0x10
jmp 0x14011e952
call fcn.14011c920
xor edx, edx
test rax, rax
jne 0x14011e8b9
jmp 0x14011e8c0
call fcn.14011bed0
jmp 0x14011e920
mov rcx, rbx
call fcn.14011c6d0
jmp 0x14011e948
mov rcx, r12
call fcn.14011bd40
mov eax, 0x24
jmp 0x14011e952
call fcn.140120520
call fcn.14011c3c0
nop
nop word cs:[rax + rax]