Function at 0x140006550
Capabilities:
Get thread local storage value

Disassembly:
mov rax, rsp
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x40
mov qword [rax - 0x40], 0xfffffffffffffffe
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], rbp
mov qword [rax + 0x20], rsi
movzx r13d, r9b
mov r15, r8
movzx ebp, dx
mov r12, rcx
mov r14, qword [rcx]
movzx eax, word [r14]
test ax, ax
je 0x140006857
movzx ecx, ax
call fcn.1400a9388
test eax, eax
jne 0x1400065a3
cmp word [r14], bp
jne 0x1400065a9
add r14, 2
jmp 0x140006584
movzx eax, word [r14]
test ax, ax
je 0x140006857
cmp ax, bp
je 0x140006857
xor esi, esi
cmp ax, 0x22
jne 0x14000662f
add r14, 2
mov rdi, r14
movzx eax, word [r14]
test ax, ax
je 0x1400065eb
cmp ax, 0x22
je 0x1400065eb
add rdi, 2
movzx eax, word [rdi]
test ax, ax
jne 0x1400065d7
jmp 0x1400065f4
cmp word [rdi], si
lea rax, [rdi + 2]
jne 0x1400065f7
mov rax, rdi
mov qword [r12], rax
test bp, bp
je 0x140006830
cmp word [rax], si
je 0x140006830
nop dword [rax]
mov rax, qword [r12]
cmp word [rax], bp
je 0x140006830
add rax, 2
mov qword [r12], rax
cmp word [rax], si
jne 0x140006610
jmp 0x140006830
mov rdi, r14
movzx eax, word [rdi]
test ax, ax
je 0x140006657
nop word [rax + rax]
cmp ax, bp
je 0x140006657
cmp ax, 0x20
je 0x140006657
add rdi, 2
movzx eax, word [rdi]
test ax, ax
jne 0x140006640
test r13b, r13b
je 0x14000682c
movzx eax, word [r14]
cmp ax, 0x25
je 0x14000667c
cmp ax, 0x5c
je 0x14000667c
cmp word [r14 + 2], 0x3a
jne 0x14000682c
mov rbx, qword [r15]
mov rcx, r14
call fcn.1400a8238
mov qword [r15], rax
mov rcx, rbx
call fcn.1400a82b0
mov rcx, qword [r15]
mov rax, rdi
sub rax, r14
sar rax, 1
mov word [rcx + rax*2], si
mov rcx, qword [r15]
call fcn.1400a8238
mov rbx, rax
mov qword [rsp + 0x30], rax
mov rcx, rax
call fcn.1400aa394
mov ecx, dword [0x1401252dc]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
cmp eax, 0x200
jne 0x140006751
lea rdx, str._PROGRAMFILES_
mov rcx, rbx
call fcn.1400a99c0
test rax, rax
je 0x140006751
lea rdx, str._PROGRAMFILES_
mov rcx, rbx
call fcn.1400a99c0
sub rax, rbx
sar rax, 1
mov rcx, qword [r15]
mov edx, eax
movups xmm0, xmmword [str._ProgramW6432_]
movups xmmword [rcx + rdx*2], xmm0
movsd xmm1, qword [0x1400d2188]
movsd qword [rcx + rdx*2 + 0x10], xmm1
mov eax, dword [0x1400d2190]
mov dword [rcx + rdx*2 + 0x18], eax
mov rcx, qword [r15]
lea rax, [rdx*2 + 0x1c]
lea rdx, [rax + rcx]
sub rax, rdx
lea r8, [rax + rcx]
nop dword [rax + rax]
movzx eax, word [rdx]
mov word [r8 + rdx], ax
lea rdx, [rdx + 2]
test ax, ax
jne 0x140006740
mov rdx, qword [r15]
lea rcx, [rsp + 0x70]
call fcn.140013270
mov rsi, qword [r15]
mov rcx, qword [rax]
call fcn.1400a8238
mov qword [r15], rax
mov rcx, rsi
call fcn.1400a82b0
mov rcx, qword [rsp + 0x70]
call fcn.1400a82b0
mov rcx, qword [r15]
call fcn.140013360
cmp eax, 0xffffffff
je 0x140006793
test al, 0x10
je 0x140006814
lea r8, [0x1400d2448]
mov rdx, r15
lea rcx, [rsp + 0x20]
call fcn.140022b00
mov rsi, qword [r15]
mov rcx, qword [rax]
call fcn.1400a8238
mov qword [r15], rax
mov rcx, rsi
call fcn.1400a82b0
mov rcx, qword [rsp + 0x20]
call fcn.1400a82b0
mov rcx, qword [r15]
call fcn.140013360
cmp eax, 0xffffffff
je 0x1400067d8
test al, 0x10
je 0x140006814
movzx eax, word [rdi]
cmp ax, bp
je 0x1400067f8
movzx ecx, ax
call fcn.1400a9388
test eax, eax
je 0x1400067f8
add rdi, 2
movzx eax, word [rdi]
cmp ax, bp
jne 0x1400067e0
movzx eax, word [rdi]
test ax, ax
je 0x140006820
cmp ax, bp
je 0x140006820
mov rcx, rbx
call fcn.1400a82b0
xor esi, esi
jmp 0x140006632
mov rcx, rbx
call fcn.1400a82b0
xor esi, esi
jmp 0x14000682c
mov rcx, rbx
call fcn.1400a82b0
mov al, 1
jmp 0x14000685d
mov qword [r12], rdi
mov rbx, qword [r15]
mov rcx, r14
call fcn.1400a8238
mov qword [r15], rax
mov rcx, rbx
call fcn.1400a82b0
sub rdi, r14
sar rdi, 1
mov rax, qword [r15]
mov word [rax + rdi*2], si
mov al, 1
jmp 0x14000685d
mov qword [r12], r14
xor al, al
lea r11, [rsp + 0x40]
mov rbx, qword [r11 + 0x38]
mov rbp, qword [r11 + 0x40]
mov rsi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
ret