Function at 0x17f17b0
Capabilities:
Get thread local storage value

Disassembly:
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0xc0
mov qword [rsp + 0xb8], 0xfffffffffffffffe
mov r12, rcx
xor ebx, ebx
mov edi, ebx
mov qword [rsp + 0xa0], rbx
mov rax, qword [0x039f1180]
mov ecx, dword [rax + 8]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
test rax, rax
je 0x17f17f9
lea r14, [rax + 0x20]
jmp 0x17f17fc
mov r14, rbx
mov qword [rsp + 0xa0], r14
mov rcx, qword [r14 + 0x30]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VarBstrFromCy]
mov qword [rsp + 0xa8], rax
mov qword [rsp + 0x48], rbx
mov r13, rbx
mov qword [rsp + 0x50], rbx
cmp dword [r12 + 0x3c], 0
je 0x17f1cf7
mov rcx, qword [r12 + 0x78]
test rcx, rcx
je 0x17f1cf7
movzx eax, byte [r12 + 0x18]
shr al, 6
test al, 1
jne 0x17f1cf7
mov rax, qword [rcx]
mov edx, dword [r12 + 0x38]
call qword [rax + 0x200]
mov rsi, rax
test rax, rax
je 0x17f1cf5
xor r8d, r8d
xor edx, edx
lea rcx, [rsp + 0x60]
call fcn.0118c100
nop
mov edx, dword [reloc.OLEAUT32.dll_VariantInit]
and edx, 7
lea rax, [rdx + rdx*2]
lea r8, [0x01173e98]
movzx ecx, byte [r8 + rax*2 + 5]
movzx eax, byte [r8 + rax*2 + 4]
add eax, ecx
cdqe
movabs r9, 0x7fffffffffffffff
mov rcx, r9
sub rcx, rax
shr rcx, 1
cmp rcx, 1
jns 0x17f18fb
lea r8, [0x017f1d98]
mov edx, 0x981
lea rcx, [0x015810f0]
call fcn.017eea00
mov edi, eax
mov dword [rsp + 0x40], eax
lea rax, [0x0104ef20]
mov qword [rsp + 0x60], rax
lea rax, [0x0109b930]
mov qword [rsp + 0x78], rax
lea rcx, [rsp + 0x60]
call fcn.0116d120
nop
jmp 0x17f1d27
lea rax, [rdx + rdx*2]
movzx ecx, byte [r8 + rax*2 + 5]
movzx eax, byte [r8 + rax*2 + 4]
add ecx, eax
movsxd rdi, ecx
add rdi, 2
mov rcx, qword [r14 + 0x30]
cmp rdi, r9
jae 0x17f1ca8
mov rax, qword [rcx]
mov rdx, rdi
call qword [rax + SafeArrayCopy]
mov r11, rax
test rax, rax
je 0x17f1ca8
mov rax, qword [r14 + 0x28]
mov qword [rsp + 0x80], rax
mov qword [rsp + 0x88], r11
mov qword [rsp + 0x90], rbx
mov qword [rsp + 0x98], rdi
mov dword [rsp + 0x40], ebx
lea rcx, [rsp + 0x110]
call fcn.0116a950
nop
mov r9, qword [r14 + 0x40]
xor r8d, r8d
lea rdx, [rsp + 0x78]
lea rcx, [rsp + 0x110]
call fcn.0118a2d0
mov edi, eax
mov dword [rsp + 0x40], eax
test eax, eax
jns 0x17f19c5
lea rcx, [rsp + 0x110]
call fcn.0116a920
nop
lea rax, [0x0104ef20]
mov qword [rsp + 0x60], rax
lea rax, [0x0109b930]
mov qword [rsp + 0x78], rax
lea rcx, [rsp + 0x60]
call fcn.0116d120
nop
jmp 0x17f1d27
mov qword [rsp + 0x118], rbx
cmp qword [rsi + 0x38], 0
je 0x17f1a22
mov rax, qword [rsi + 0x38]
movzx ecx, byte [rax - 5]
test cl, 0x40
jne 0x17f19e6
test cl, 0x20
je 0x17f19e9
mov rax, qword [rax]
test rax, rax
je 0x17f1a22
cmp qword [rsi + 0x38], 0
je 0x17f1a0c
mov rax, qword [rsi + 0x38]
movzx ecx, byte [rax - 5]
test cl, 0x40
jne 0x17f1a07
test cl, 0x20
je 0x17f1a0f
mov rax, qword [rax]
jmp 0x17f1a0f
mov rax, rbx
cmp word [rax], 0
je 0x17f1a22
cmp qword [rsi + 0x50], 0
je 0x17f1a22
mov r15, qword [rsi + 0x50]
jmp 0x17f1a25
mov r15, rbx
cmp qword [rsi + 0x38], 0
je 0x17f1a7b
mov rax, qword [rsi + 0x38]
movzx ecx, byte [rax - 5]
test cl, 0x40
jne 0x17f1a3e
test cl, 0x20
je 0x17f1a41
mov rax, qword [rax]
test rax, rax
je 0x17f1a7b
cmp qword [rsi + 0x38], 0
je 0x17f1a64
mov rax, qword [rsi + 0x38]
movzx ecx, byte [rax - 5]
test cl, 0x40
jne 0x17f1a5f
test cl, 0x20
je 0x17f1a67
mov rax, qword [rax]
jmp 0x17f1a67
mov rax, rbx
cmp word [rax], 0
je 0x17f1a7b
cmp qword [rsi + 0x50], 0
je 0x17f1a7b
mov esi, 0x800
jmp 0x17f1a80
mov esi, 0x1000
mov rcx, qword [r12 + 0x78]
mov rax, qword [rcx]
call qword [rax + 0x1b0]
movzx r9d, ax
or esi, 0x1ff
mov qword [rsp + 0x30], rbx
mov dword [rsp + 0x28], 0x2000
lea rax, [rsp + 0x48]
mov qword [rsp + 0x20], rax
mov r8d, dword [r12 + 0x3c]
mov rdx, r15
mov ecx, esi
call qword [sym.imp.KERNEL32.dll_FormatMessageW]
mov r15d, eax
test eax, eax
je 0x17f1add
mov rdx, qword [rsp + 0x48]
test rdx, rdx
je 0x17f1add
mov rcx, qword [rsp + 0x118]
jmp 0x17f1bf9
xor edx, edx
lea r8d, [rdx + 2]
lea rcx, [0x017f1d78]
call qword [sym.imp.KERNEL32.dll_LoadLibraryExW]
mov r13, rax
mov qword [rsp + 0x50], rax
test rax, rax
je 0x17f1bec
xor r9d, r9d
mov r8d, 0x2000
lea rdx, [rsp + 0x118]
lea rcx, [rsp + 0x110]
call fcn.0134b4b0
mov edi, eax
mov dword [rsp + 0x40], eax
test eax, eax
jns 0x17f1b5f
lea rcx, [rsp + 0x110]
call fcn.0116a920
nop
lea rax, [0x0104ef20]
mov qword [rsp + 0x60], rax
lea rax, [0x0109b930]
mov qword [rsp + 0x78], rax
lea rcx, [rsp + 0x60]
call fcn.0116d120
nop
jmp 0x17f1d27
mov r9d, 0x2000
mov r8, qword [rsp + 0x118]
mov edx, dword [r12 + 0x3c]
mov rcx, r13
call qword [sym.imp.USER32.dll_LoadStringW]
movsxd rsi, eax
mov rdx, rsi
lea rcx, [rsp + 0x110]
call fcn.0134b490
mov edi, eax
mov dword [rsp + 0x40], eax
test eax, eax
jns 0x17f1bce
lea rcx, [rsp + 0x110]
call fcn.0116a920
nop
lea rax, [0x0104ef20]
mov qword [rsp + 0x60], rax
lea rax, [0x0109b930]
mov qword [rsp + 0x78], rax
lea rcx, [rsp + 0x60]
call fcn.0116d120
nop
jmp 0x17f1d27
mov rcx, qword [rsp + 0x118]
test rsi, rsi
cmove rcx, rbx
mov qword [rsp + 0x118], rcx
mov rdx, qword [rsp + 0x48]
jmp 0x17f1bf9
mov rdx, qword [rsp + 0x48]
mov rcx, qword [rsp + 0x118]
test r15, r15
je 0x17f1c03
test rdx, rdx
jne 0x17f1c08
test rcx, rcx
je 0x17f1c76
mov rax, qword [r12]
test rcx, rcx
cmovne rdx, rcx
mov r9d, 0x10000000
lea r8, [0x01581080]
mov rcx, r12
call qword [rax + 0x1c8]
mov edx, reloc.OLEAUT32.dll_VarI4FromDisp
mov rcx, r12
call fcn.0116e6d0
mov edi, eax
mov dword [rsp + 0x40], eax
test eax, eax
jns 0x17f1c76
lea rcx, [rsp + 0x110]
call fcn.0116a920
nop
lea rax, [0x0104ef20]
mov qword [rsp + 0x60], rax
lea rax, [0x0109b930]
mov qword [rsp + 0x78], rax
lea rcx, [rsp + 0x60]
call fcn.0116d120
nop
jmp 0x17f1d27
lea rcx, [rsp + 0x110]
call fcn.0116a920
nop
lea rax, [0x0104ef20]
mov qword [rsp + 0x60], rax
lea rax, [0x0109b930]
mov qword [rsp + 0x78], rax
lea rcx, [rsp + 0x60]
call fcn.0116d120
jmp 0x17f1cf5
mov dword [rsp + 0x108], ebx
mov qword [rsp + 0x20], 0x1000000f
xor r9d, r9d
xor r8d, r8d
mov edx, ebx
mov ecx, 0xc1030001
call fcn.0124e580
mov edi, eax
mov dword [rsp + 0x40], eax
lea rax, [0x0104ef20]
mov qword [rsp + 0x60], rax
lea rax, [0x0109b930]
mov qword [rsp + 0x78], rax
lea rcx, [rsp + 0x60]
call fcn.0116d120
nop
jmp 0x17f1d27
jmp 0x17f1d27
mov edi, ebx
mov dword [rsp + 0x40], ebx
jmp 0x17f1d27
mov rcx, qword [rsp + 0x48]
test rcx, rcx
je 0x17f1d3c
call qword [sym.imp.KERNEL32.dll_LocalFree]
mov qword [rsp + 0x48], rbx
test r13, r13
je 0x17f1d4b
mov rcx, r13
call qword [sym.imp.KERNEL32.dll_FreeLibrary]
nop
mov rcx, qword [r14 + 0x30]
mov rax, qword [rcx]
mov rdx, qword [rsp + 0xa8]
call qword [rax + 0x78]
mov eax, edi
add rsp, 0xc0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
ret