Function at 0x140016d90
Capabilities:
Get thread local storage value

Disassembly:
mov byte [rsp + 0x20], r9b
mov qword [rsp + 0x18], r8
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x17]
sub rsp, 0xb8
mov r14, r8
mov rbx, rdx
mov ecx, 2
call fcn.1400e8270
mov rdi, rax
mov qword [rbp - 0x31], rax
xor esi, esi
mov word [rax], si
mov ecx, dword [0x140178818]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
or eax, 0x20019
lea rcx, [rbp - 0x51]
mov qword [rsp + 0x20], rcx
mov r9d, eax
xor r8d, r8d
mov rdx, qword [r14]
mov rcx, rbx
call fcn.140009290
test eax, eax
jne 0x14001707b
mov dword [rbp - 0x61], esi
lea ecx, [rsi + 2]
call fcn.1400e8270
mov r15, rax
mov qword [rbp - 0x41], rax
mov word [rax], si
lea ecx, [rsi + 2]
call fcn.1400e8270
mov r13, rax
mov qword [rbp - 0x39], rax
mov word [rax], si
lea ecx, [rsi + 2]
call fcn.1400e8270
mov qword [rbp - 0x59], rax
mov word [rax], si
lea r8, [rbp - 0x59]
xor edx, edx
mov rcx, qword [rbp - 0x51]
call fcn.140018f50
test eax, eax
jne 0x140017051
lea rsi, [0x14011eaa0]
mov rdi, qword [rbp + 0x67]
lea rcx, [0x14011eb8c]
call fcn.1400e81d8
mov rbx, rax
xor ecx, ecx
call fcn.1400e825c
mov rax, qword [r14]
mov rcx, rsi
test rax, rax
cmovne rcx, rax
call fcn.1400e81d8
mov qword [rbp - 0x49], rax
xor ecx, ecx
call fcn.1400e825c
mov rdx, rbx
lea rcx, [rbp - 0x49]
call fcn.140005790
mov rcx, rbx
call fcn.1400e825c
mov r14, qword [rbp - 0x49]
mov rcx, rsi
test r14, r14
cmovne rcx, r14
call fcn.1400e81d8
mov qword [rbp - 0x49], rax
xor ecx, ecx
call fcn.1400e825c
mov rdx, qword [rbp - 0x59]
lea rcx, [rbp - 0x49]
call fcn.140005790
mov rbx, qword [rbp - 0x49]
mov rcx, rsi
test rbx, rbx
cmovne rcx, rbx
call fcn.1400e81d8
mov r12, rax
mov qword [rbp - 0x41], rax
mov rcx, r15
call fcn.1400e825c
mov rcx, rbx
call fcn.1400e825c
mov rcx, r14
call fcn.1400e825c
mov byte [rsp + 0x38], 0
mov byte [rsp + 0x30], 1
mov dword [rsp + 0x28], 0xffffffff
movzx eax, byte [rbp + 0x7f]
mov byte [rsp + 0x20], al
movzx r9d, byte [rbp + 0x77]
mov r8, r12
mov rdx, rdi
mov rcx, qword [rbp + 0x5f]
call fcn.14000ea20
mov r15d, eax
lea rcx, [0x14011eae8]
call fcn.1400e81d8
mov rbx, rax
xor ecx, ecx
call fcn.1400e825c
mov rcx, rsi
test r12, r12
cmovne rcx, r12
call fcn.1400e81d8
mov qword [rbp - 0x49], rax
xor ecx, ecx
call fcn.1400e825c
mov rdx, rbx
lea rcx, [rbp - 0x49]
call fcn.140005790
mov rcx, rbx
call fcn.1400e825c
mov r14, qword [rbp - 0x49]
mov rcx, rsi
test r14, r14
cmovne rcx, r14
call fcn.1400e81d8
mov rbx, rax
mov qword [rbp - 0x39], rax
mov rcx, r13
call fcn.1400e825c
mov rcx, r14
call fcn.1400e825c
mov byte [rsp + 0x38], 0
mov byte [rsp + 0x30], 0
mov dword [rsp + 0x28], r15d
movzx eax, byte [rbp + 0x7f]
mov byte [rsp + 0x20], al
movzx r9d, byte [rbp + 0x77]
mov r8, rbx
mov rdx, rdi
mov rcx, qword [rbp + 0x5f]
call fcn.14000ea20
nop
mov rcx, qword [rbp - 0x59]
call fcn.1400e825c
nop
mov rcx, rbx
call fcn.1400e825c
nop
mov rcx, r12
call fcn.1400e825c
mov ebx, dword [rbp - 0x61]
inc ebx
mov dword [rbp - 0x61], ebx
mov ecx, 2
call fcn.1400e8270
mov r15, rax
mov qword [rbp - 0x41], rax
xor r14d, r14d
mov word [rax], r14w
lea ecx, [r14 + 2]
call fcn.1400e8270
mov r13, rax
mov qword [rbp - 0x39], rax
mov word [rax], r14w
lea ecx, [r14 + 2]
call fcn.1400e8270
mov qword [rbp - 0x59], rax
mov word [rax], r14w
lea r8, [rbp - 0x59]
mov edx, ebx
mov rcx, qword [rbp - 0x51]
call fcn.140018f50
test eax, eax
mov r14, qword [rbp + 0x6f]
je 0x140016e63
mov rdi, qword [rbp - 0x31]
mov rcx, qword [rbp - 0x59]
call fcn.1400e825c
nop
mov rcx, r13
call fcn.1400e825c
nop
mov rcx, r15
call fcn.1400e825c
mov rcx, qword [rbp - 0x51]
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
jmp 0x140017210
lea rsi, [0x14011eaa0]
mov rcx, rsi
call fcn.1400e81d8
mov r14, rax
xor ecx, ecx
call fcn.1400e825c
nop
mov rcx, rsi
call fcn.1400e81d8
mov r15, rax
xor ecx, ecx
call fcn.1400e825c
nop
mov rcx, rsi
call fcn.1400e81d8
mov r12, rax
xor ecx, ecx
call fcn.1400e825c
nop
mov rcx, rsi
call fcn.1400e81d8
mov r13, rax
xor ecx, ecx
call fcn.1400e825c
nop
mov rcx, rsi
call fcn.1400e81d8
mov qword [rbp - 0x59], rax
xor ecx, ecx
call fcn.1400e825c
nop
mov rcx, rsi
call fcn.1400e81d8
mov qword [rbp - 0x49], rax
xor ecx, ecx
call fcn.1400e825c
nop
mov rcx, rsi
call fcn.1400e81d8
mov rbx, rax
mov qword [rbp - 0x31], rax
xor ecx, ecx
call fcn.1400e825c
nop
lea r9, [rbp - 0x31]
mov r8, qword [rbp + 0x6f]
mov rdx, qword [rbp + 0x67]
lea rcx, [rbp - 0x41]
call fcn.14000b540
nop
mov rcx, rsi
call fcn.1400e81d8
mov rsi, rax
mov qword [rbp - 0x31], rax
xor ecx, ecx
call fcn.1400e825c
nop
lea r9, [rbp - 0x31]
mov r8, qword [rbp + 0x6f]
mov rdx, qword [rbp + 0x67]
lea rcx, [rbp - 0x39]
call fcn.14000b540
mov qword [rbp + 0x6f], rax
mov r8d, dword [0x1401a9af0]
mov rdx, qword gs:[0x58]
mov eax, reloc.OLEAUT32.dll_SafeArrayLock
mov r8, qword [rdx + r8*8]
mov edx, dword [rax + r8]
cmp dword [0x140179250], edx
jg 0x14001722c
mov rax, qword [rbp + 0x6f]
mov rax, qword [rax]
mov rcx, qword [0x140179248]
mov qword [rbp + 0x6f], rcx
test rax, rax
lea rcx, [0x14011eaa0]
cmovne rcx, rax
call fcn.1400e81d8
mov qword [0x140179248], rax
mov rcx, qword [rbp + 0x6f]
call fcn.1400e825c
nop
mov rcx, qword [rbp - 0x39]
call fcn.1400e825c
nop
mov rcx, rsi
call fcn.1400e825c
nop
mov rcx, qword [rbp - 0x41]
call fcn.1400e825c
nop
mov rcx, rbx
call fcn.1400e825c
nop
mov rcx, qword [rbp - 0x49]
call fcn.1400e825c
nop
mov rcx, qword [rbp - 0x59]
call fcn.1400e825c
nop
mov rcx, r13
call fcn.1400e825c
nop
mov rcx, r12
call fcn.1400e825c
nop
mov rcx, r15
call fcn.1400e825c
nop
mov rcx, r14
call fcn.1400e825c
nop
mov rcx, rdi
call fcn.1400e825c
add rsp, 0xb8
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret
lea rcx, [0x140179250]
call fcn.1400e151c
cmp dword [0x140179250], 0xffffffff
jne 0x14001717c
mov ecx, 2
call fcn.1400e8270
mov qword [0x140179248], rax
xor edx, edx
mov word [rax], dx
lea rcx, [0x14011b1f0]
call fcn.1400e137c
lea rcx, [0x140179250]
call fcn.1400e14bc
jmp 0x14001717c