Function at 0x14008d550
Capabilities:
Get thread local storage value

Disassembly:
push rbp
push r12
push rdi
push rsi
push rbx
sub rsp, 0x30
lea rbp, [rsp + 0x30]
mov rsi, rcx
mov rdi, rdx
test rcx, rcx
je 0x14008d4e0
lea r12, [0x140092238]
mov rcx, r12
call fcn.14008a760
mov rcx, rsi
call fcn.14008ad80
mov rcx, r12
mov rbx, rax
call fcn.14008aa50
test rbx, rbx
je 0x14008d4e0
mov rcx, qword [rbx + 0x28]
test rcx, rcx
je 0x14008d4e0
lea rdx, [rbp - 4]
call qword [sym.imp.KERNEL32.dll_GetHandleInformation]
test eax, eax
je 0x14008d4e0
test byte [rbx + 0x44], 4
jne 0x14008d4f0
call fcn.14008b560
mov ecx, dword [0x140092248]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
test rax, rax
je 0x14008d510
cmp rsi, qword [rax + 0x1d8]
je 0x14008d540
mov eax, dword [rbx + 0xbc]
mov rcx, qword [rbx + 0x28]
test eax, eax
je 0x14008d461
lea rax, [rcx - 1]
cmp rax, 0xfffffffffffffffd
ja 0x14008d470
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 0x14008d484
call rsi
mov qword [rbx + 0x30], 0
test rdi, rdi
je 0x14008d528
mov rax, qword [rbx + 8]
lea rcx, [rbx + 0x38]
mov qword [rdi], rax
call fcn.14008abf0
lea rcx, [rbx + 0x68]
call fcn.14008ef80
cmp eax, 1
je 0x14008d547
cmp qword [rbx + 0x1d0], 0
mov qword [rbx + 0x68], 0xffffffffffffffff
je 0x14008d500
xor eax, eax
add rsp, 0x30
pop rbx
pop rsi
pop rdi
pop r12
pop rbp
ret
mov eax, 3
add rsp, 0x30
pop rbx
pop rsi
pop rdi
pop r12
pop rbp
ret
mov eax, 0x16
add rsp, 0x30
pop rbx
pop rsi
pop rdi
pop r12
pop rbp
ret
mov rcx, rbx
call fcn.14008b3b0
xor eax, eax
jmp 0x14008d4cb
call fcn.14008b620
test rax, rax
jne 0x14008d43c
jmp 0x14008d449
lea rcx, [rbx + 0x38]
call fcn.14008abf0
lea rcx, [rbx + 0x68]
jmp 0x14008d4a9
mov eax, 0x24
jmp 0x14008d4e5
call fcn.14008b0a0
nop
nop dword [rax]
push rbp
push r12
push rdi
push rsi
push rbx
sub rsp, 0x30
lea rbp, [rsp + 0x30]
lea r12, [0x140092238]
mov rsi, rcx
mov rcx, r12
mov rdi, rdx
call fcn.14008a760
mov rcx, rsi
call fcn.14008ad80
mov rbx, rax
test rax, rax
je 0x14008d670
mov rcx, qword [rax + 0x28]
test rcx, rcx
je 0x14008d670
lea rdx, [rbp - 4]
call qword [sym.imp.KERNEL32.dll_GetHandleInformation]
test eax, eax
je 0x14008d670
test byte [rbx + 0x44], 4
jne 0x14008d690
call fcn.14008b560
mov ecx, dword [0x140092248]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
test rax, rax
je 0x14008d6d0
mov rdx, qword [rax + 0x1d8]
cmp rsi, rdx
je 0x14008d710
mov edx, dword [rbx + 0xbc]
mov rcx, qword [rbx + 0x28]
test edx, edx
jne 0x14008d5fd
xor edx, edx
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
test eax, eax
jne 0x14008d6b0
mov rcx, qword [rbx + 0x28]
mov rsi, qword [sym.imp.KERNEL32.dll_CloseHandle]
call rsi
mov rcx, qword [rbx + 0x30]
test rcx, rcx
je 0x14008d611
call rsi
mov qword [rbx + 0x30], 0
test rdi, rdi
je 0x14008d6e8
mov rax, qword [rbx + 8]
lea rcx, [rbx + 0x38]
mov qword [rdi], rax
call fcn.14008abf0
lea rcx, [rbx + 0x68]
call fcn.14008ef80
cmp eax, 1
je 0x14008d722
cmp qword [rbx + 0x1d0], 0
mov qword [rbx + 0x68], 0xffffffffffffffff
je 0x14008d700
mov rcx, r12
call fcn.14008aa50
xor eax, eax
add rsp, 0x30
pop rbx
pop rsi
pop rdi
pop r12
pop rbp
ret
mov rcx, r12
call fcn.14008aa50
mov eax, 3
add rsp, 0x30
pop rbx
pop rsi
pop rdi
pop r12
pop rbp
ret
mov rcx, r12
call fcn.14008aa50
mov eax, 0x16
add rsp, 0x30
pop rbx
pop rsi
pop rdi
pop r12
pop rbp
ret
mov eax, dword [rbx + 0xbc]
test eax, eax
jne 0x14008d5f9
mov rcx, r12
call fcn.14008aa50
mov eax, 0x10
jmp 0x14008d664
call fcn.14008b620
xor edx, edx
test rax, rax
jne 0x14008d5cb
jmp 0x14008d5d2
lea rcx, [rbx + 0x38]
call fcn.14008abf0
lea rcx, [rbx + 0x68]
jmp 0x14008d636
mov rcx, rbx
call fcn.14008b3b0
jmp 0x14008d65a
mov rcx, r12
call fcn.14008aa50
mov eax, 0x24
jmp 0x14008d664
call fcn.14008b0a0
nop
nop dword [rax + rax]
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x38
lea rbp, [rsp + 0x30]
lea rsi, [0x140092238]
mov rbx, rcx
mov rcx, rsi
test rbx, rbx
je 0x14008d830
call fcn.14008a760
mov rcx, rbx
call fcn.14008ad80
mov rcx, rsi
mov rbx, rax
call fcn.14008aa50
mov rcx, rsi
call fcn.14008a760
test rbx, rbx
je 0x14008d835
mov rcx, qword [rbx + 0x28]
test rcx, rcx
je 0x14008d835
lea rdx, [rbp - 4]
call qword [sym.imp.KERNEL32.dll_GetHandleInformation]
test eax, eax
je 0x14008d835
mov eax, dword [rbx + 0x44]
test al, 4
jne 0x14008d850
or eax, 4
mov rcx, qword [rbx + 0x28]
mov qword [rbx + 0x28], 0
mov dword [rbx + 0x44], eax
test rcx, rcx
je 0x14008d818
mov rdi, qword [sym.imp.KERNEL32.dll_CloseHandle]
call rdi
mov eax, dword [rbx + 0xbc]
test eax, eax
je 0x14008d818
mov rcx, qword [rbx + 0x30]
test rcx, rcx
je 0x14008d860
call rdi
mov qword [rbx + 0x30], 0
lea rcx, [rbx + 0x38]
call fcn.14008abf0
lea rcx, [rbx + 0x68]
call fcn.14008ef80
cmp eax, 1
je 0x14008d882
cmp qword [rbx + 0x1d0], 0
mov qword [rbx + 0x68], 0xffffffffffffffff
je 0x14008d878
nop dword [rax]
mov rcx, rsi
call fcn.14008aa50
xor eax, eax
add rsp, 0x38
pop rbx
pop rsi
pop rdi
pop rbp
ret
call fcn.14008a760
mov rcx, rsi
call fcn.14008aa50
mov eax, 3
add rsp, 0x38
pop rbx
pop rsi
pop rdi
pop rbp
ret
mov rcx, rsi
call fcn.14008aa50
mov eax, 0x16
jmp 0x14008d822
lea rcx, [rbx + 0x38]
call fcn.14008abf0
lea rcx, [rbx + 0x68]
jmp 0x14008d7f4
mov rcx, rbx
call fcn.14008b3b0
jmp 0x14008d818
call fcn.14008b0a0
nop
nop dword [rax + rax]
mov eax, dword [0x1400c7888]
ret