Function at 0x1403cb980
Capabilities:
Get thread local storage value

Disassembly:
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x30
mov rbp, qword [str.Pgj_]
mov rax, qword [rbp]
mov qword [rsp + 0x28], rax
xor eax, eax
mov rsi, rcx
mov rdi, rdx
test rcx, rcx
je 0x1403cb8f0
lea r12, [0x14054b348]
mov rcx, r12
call fcn.1403c8d10
mov rcx, rsi
call fcn.1403c92f0
mov rcx, r12
mov rbx, rax
call fcn.1403c8fe0
test rbx, rbx
je 0x1403cb8f0
mov rcx, qword [rbx + 0x28]
test rcx, rcx
je 0x1403cb8f0
lea rdx, [rsp + 0x24]
call qword [sym.imp.KERNEL32.dll_GetHandleInformation]
test eax, eax
je 0x1403cb8f0
test byte [rbx + 0x44], 4
jne 0x1403cb910
call fcn.1403c99f0
mov ecx, dword [0x14054b358]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
test rax, rax
je 0x1403cb930
cmp rsi, qword [rax + 0x1d8]
je 0x1403cb960
mov eax, dword [rbx + 0xbc]
mov rcx, qword [rbx + 0x28]
test eax, eax
je 0x1403cb87f
lea rax, [rcx - 1]
cmp rax, 0xfffffffffffffffd
ja 0x1403cb88e
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 0x1403cb8a2
call rsi
mov qword [rbx + 0x30], 0
test rdi, rdi
je 0x1403cb948
mov rax, qword [rbx + 8]
lea rcx, [rbx + 0x38]
mov qword [rdi], rax
call fcn.1403c9170
lea rcx, [rbx + 0x68]
call fcn.1403cd1d0
cmp eax, 1
je 0x1403cb96c
cmp qword [rbx + 0x1d0], 0
mov qword [rbx + 0x68], 0xffffffffffffffff
je 0x1403cb920
xor eax, eax
jmp 0x1403cb8f5
mov eax, 3
mov rdx, qword [rsp + 0x28]
sub rdx, qword [rbp]
jne 0x1403cb967
add rsp, 0x30
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
ret
mov eax, 0x16
jmp 0x1403cb8f5
mov rcx, rbx
call fcn.1403c9850
xor eax, eax
jmp 0x1403cb8f5
call fcn.1403c9aa0
test rax, rax
jne 0x1403cb85a
jmp 0x1403cb867
lea rcx, [rbx + 0x38]
call fcn.1403c9170
lea rcx, [rbx + 0x68]
jmp 0x1403cb8c7
mov eax, 0x24
jmp 0x1403cb8f5
call fcn.1403e4f90
call fcn.1403c95e0
nop
nop word cs:[rax + rax]
nop dword [rax]
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x30
mov rbp, qword [str.Pgj_]
lea r12, [0x14054b348]
mov rax, qword [rbp]
mov qword [rsp + 0x28], rax
xor eax, eax
mov rsi, rcx
mov rcx, r12
mov rdi, rdx
call fcn.1403c8d10
mov rcx, rsi
call fcn.1403c92f0
mov rbx, rax
test rax, rax
je 0x1403cbac0
mov rcx, qword [rax + 0x28]
test rcx, rcx
je 0x1403cbac0
lea rdx, [rsp + 0x24]
call qword [sym.imp.KERNEL32.dll_GetHandleInformation]
test eax, eax
je 0x1403cbac0
test byte [rbx + 0x44], 4
jne 0x1403cbad0
call fcn.1403c99f0
mov ecx, dword [0x14054b358]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
test rax, rax
je 0x1403cbb00
mov rdx, qword [rax + 0x1d8]
cmp rsi, rdx
je 0x1403cbb40
mov edx, dword [rbx + 0xbc]
mov rcx, qword [rbx + 0x28]
test edx, edx
jne 0x1403cba3b
xor edx, edx
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
test eax, eax
jne 0x1403cbae0
mov rcx, qword [rbx + 0x28]
mov rsi, qword [sym.imp.KERNEL32.dll_CloseHandle]
call rsi
mov rcx, qword [rbx + 0x30]
test rcx, rcx
je 0x1403cba4f
call rsi
mov qword [rbx + 0x30], 0
test rdi, rdi
je 0x1403cbb18
mov rax, qword [rbx + 8]
lea rcx, [rbx + 0x38]
mov qword [rdi], rax
call fcn.1403c9170
lea rcx, [rbx + 0x68]
call fcn.1403cd1d0
cmp eax, 1
je 0x1403cbb57
cmp qword [rbx + 0x1d0], 0
mov qword [rbx + 0x68], 0xffffffffffffffff
je 0x1403cbb30
mov rcx, r12
call fcn.1403c8fe0
xor eax, eax
mov rdx, qword [rsp + 0x28]
sub rdx, qword [rbp]
jne 0x1403cbb52
add rsp, 0x30
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
ret
mov rcx, r12
call fcn.1403c8fe0
mov eax, 3
jmp 0x1403cbaa2
mov rcx, r12
call fcn.1403c8fe0
mov eax, 0x16
jmp 0x1403cbaa2
mov eax, dword [rbx + 0xbc]
test eax, eax
jne 0x1403cba37
mov rcx, r12
call fcn.1403c8fe0
mov eax, 0x10
jmp 0x1403cbaa2
call fcn.1403c9aa0
xor edx, edx
test rax, rax
jne 0x1403cba09
jmp 0x1403cba10
lea rcx, [rbx + 0x38]
call fcn.1403c9170
lea rcx, [rbx + 0x68]
jmp 0x1403cba74
mov rcx, rbx
call fcn.1403c9850
jmp 0x1403cba98
mov rcx, r12
call fcn.1403c8fe0
mov eax, 0x24
jmp 0x1403cbaa2
call fcn.1403e4f90
call fcn.1403c95e0
nop
nop dword [rax]