Function at 0x1400a6970
Capabilities:
Get thread local storage value

Disassembly:
mov qword [rsp + 0x10], rdx
push rdi
push r14
push r15
sub rsp, 0x40
mov qword [rsp + 0x20], 0xfffffffffffffffe
mov qword [rsp + 0x60], rbx
mov qword [rsp + 0x70], rbp
mov qword [rsp + 0x78], rsi
movzx ebp, r9b
mov rsi, r8
mov r14, rdx
mov rbx, rcx
call fcn.1400a5ba0
mov rdi, rax
mov r15d, 0xffffffff
test rax, rax
je 0x1400a6b4c
test bpl, bpl
je 0x1400a69d6
mov rcx, qword [rax]
test rcx, rcx
je 0x1400a69d6
mov rdx, qword [rax + 0x10]
test rdx, rdx
je 0x1400a69d6
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rdx, qword [r14]
test rdx, rdx
jne 0x1400a6af6
test rsi, rsi
jne 0x1400a6af6
mov ecx, dword [0x14014c200]
cmp ecx, 0xffffffff
je 0x1400a6a01
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
test rax, rax
jne 0x1400a6a1b
call fcn.1400a63d0
mov ecx, dword [0x14014c200]
cmp ecx, 0xffffffff
jne 0x1400a6a15
xor eax, eax
jmp 0x1400a6a1b
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
lea r10, [rax + 0x28]
mov r8, qword [r10]
mov rax, qword [r8 + 8]
mov rcx, rax
mov r9, r8
cmp byte [rax + 0x19], 0
jne 0x1400a6a5b
mov rdx, qword [rcx + 0x20]
cmp rdx, rbx
jae 0x1400a6a41
mov rcx, qword [rcx + 0x10]
jmp 0x1400a6a55
cmp byte [r9 + 0x19], 0
je 0x1400a6a4f
cmp rbx, rdx
cmovb r9, rcx
mov r8, rcx
mov rcx, qword [rcx]
cmp byte [rcx + 0x19], 0
je 0x1400a6a32
cmp byte [r9 + 0x19], 0
jne 0x1400a6a65
mov rax, qword [r9]
cmp byte [rax + 0x19], 0
jne 0x1400a6a88
nop dword [rax + rax]
cmp rbx, qword [rax + 0x20]
jae 0x1400a6a7e
mov r9, rax
mov rax, qword [rax]
jmp 0x1400a6a82
mov rax, qword [rax + 0x10]
cmp byte [rax + 0x19], 0
je 0x1400a6a70
mov rax, r8
cmp r8, r9
je 0x1400a6ae4
mov rcx, qword [rax + 0x10]
cmp byte [rcx + 0x19], 0
je 0x1400a6abc
mov rcx, qword [rax + 8]
cmp byte [rcx + 0x19], 0
jne 0x1400a6ab7
cmp rax, qword [rcx + 0x10]
jne 0x1400a6ab7
mov rax, rcx
mov rcx, qword [rcx + 8]
cmp byte [rcx + 0x19], 0
je 0x1400a6aa4
mov rax, rcx
jmp 0x1400a6adf
mov rax, rcx
mov rdx, qword [rcx]
cmp byte [rdx + 0x19], 0
jne 0x1400a6adf
nop dword [rax + rax]
mov rax, rdx
mov rcx, qword [rdx]
mov rdx, rcx
cmp byte [rcx + 0x19], 0
je 0x1400a6ad0
cmp rax, r9
jne 0x1400a6a90
lea rdx, [rsp + 0x28]
mov rcx, r10
call fcn.14001ac50
jmp 0x1400a6b87
mov rax, qword [r14 + 8]
test rax, rax
je 0x1400a6b09
mov ecx, 1
lock xadd dword [rax + 8], ecx
mov qword [rdi], rdx
mov rbx, qword [rdi + 8]
mov qword [rdi + 8], rax
test rbx, rbx
je 0x1400a6b46
mov eax, r15d
lock xadd dword [rbx + 8], eax
cmp eax, 1
jne 0x1400a6b46
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov eax, r15d
lock xadd dword [rbx + 0xc], eax
cmp eax, 1
jne 0x1400a6b46
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + 0x10]
nop
mov qword [rdi + 0x10], rsi
jmp 0x1400a6b87
mov rax, qword [r14]
test rax, rax
jne 0x1400a6b59
test rsi, rsi
je 0x1400a6b87
mov qword [rsp + 0x30], rax
mov rax, qword [r14 + 8]
mov qword [rsp + 0x38], rax
test rax, rax
je 0x1400a6b76
mov ecx, 1
lock xadd dword [rax + 8], ecx
mov r8, rsi
lea rdx, [rsp + 0x30]
mov rcx, rbx
call fcn.1400a5870
nop
mov rbx, qword [r14 + 8]
test rbx, rbx
je 0x1400a6bbc
mov eax, r15d
lock xadd dword [rbx + 8], eax
cmp eax, 1
jne 0x1400a6bbc
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
lock xadd dword [rbx + 0xc], r15d
cmp r15d, 1
jne 0x1400a6bbc
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + 0x10]
nop
mov rbx, qword [rsp + 0x60]
mov rbp, qword [rsp + 0x70]
mov rsi, qword [rsp + 0x78]
add rsp, 0x40
pop r15
pop r14
pop rdi
ret