Function at 0x17ebd80
Capabilities:
Get thread local storage value

Disassembly:
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x60
mov qword [rsp + 0x40], 0xfffffffffffffffe
mov qword [rsp + 0xa8], rbx
movzx r14d, r8b
mov r13, rdx
mov rdi, rcx
xor r15d, r15d
mov qword [rsp + 0x48], r15
mov rax, qword [0x039f1180]
mov ecx, dword [rax + 8]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
test rax, rax
je 0x17ebdce
lea rbp, [rax + 0x20]
jmp 0x17ebdd1
mov rbp, r15
mov qword [rsp + 0x48], rbp
mov rcx, qword [rbp + 0x30]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VarBstrFromCy]
mov r12, rax
mov qword [rsp + 0x50], rax
call fcn.0115c5b0
mov qword [rsp + 0xb8], rax
lea rbx, [rdi + 0xbb8]
mov rcx, rbx
call fcn.0116d9d0
mov esi, eax
test eax, eax
jns 0x17ebe1d
mov rcx, qword [rbp + 0x30]
mov r8, qword [rcx]
mov rdx, r12
call qword [r8 + 0x78]
jmp 0x17ec32a
mov rax, qword [0x039f4ec0]
test rax, rax
je 0x17ebe32
lea rdx, [rax + 0xc0]
jmp 0x17ebe35
mov rdx, r15
xor r8d, r8d
mov rcx, rbx
call fcn.01174500
mov esi, eax
test eax, eax
jns 0x17ebe58
mov rcx, qword [rbp + 0x30]
mov rax, qword [rcx]
mov rdx, r12
call qword [rax + 0x78]
jmp 0x17ec32a
mov r9d, 7
xor r8d, r8d
mov rdx, r13
mov rcx, rbx
call fcn.0118a4d0
mov esi, eax
test eax, eax
cmovns esi, r15d
test esi, esi
jns 0x17ebe8a
mov rcx, qword [rbp + 0x30]
mov rax, qword [rcx]
mov rdx, r12
call qword [rax + 0x78]
jmp 0x17ec32a
mov rcx, qword [rbx]
test rcx, rcx
je 0x17ebeb0
test byte [rcx - 5], 0x40
jne 0x17ebe9e
movsxd rax, dword [rcx - 4]
jmp 0x17ebea9
mov rcx, qword [rcx]
call qword [sym.imp.OLEAUT32.dll_SysAllocStringByteLen]
mov eax, eax
shr rax, 1
cmovne r15, rbx
xor esi, esi
mov qword [rsp + 0xa0], rsi
mov rax, qword [0x039f4eb0]
test rax, rax
je 0x17ebecf
lea rbx, [rax + 0xc0]
jmp 0x17ebed2
mov rbx, rsi
call fcn.0118c360
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], rsi
xor r9d, r9d
xor r8d, r8d
mov rdx, rbx
lea rcx, [rsp + 0xa0]
call fcn.0168f800
mov esi, eax
test eax, eax
jns 0x17ebf23
mov rcx, qword [rsp + 0xa0]
test rcx, rcx
je 0x17ebf11
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetDim]
nop
mov rcx, qword [rbp + 0x30]
mov rax, qword [rcx]
mov rdx, r12
call qword [rax + 0x78]
jmp 0x17ec32a
test r14b, r14b
jne 0x17ec050
mov rax, qword [0x039f4eb0]
test rax, rax
je 0x17ebf44
lea rdx, [rax + 0xc0]
xor r14d, r14d
jmp 0x17ebf4a
xor r14d, r14d
mov rdx, r14
test rdi, rdi
je 0x17ebf7a
cmp dword [rdi + 8], 1
jne 0x17ebf7a
mov qword [rsp + 0x30], r14
mov byte [rsp + 0x28], 0
mov qword [rsp + 0x20], r14
mov r9, rdi
xor r8d, r8d
lea rcx, [rdi + 0x2c0]
call fcn.017eb900
mov esi, eax
jmp 0x17ebf98
mov qword [rsp + 0x28], r14
mov qword [rsp + 0x20], r14
mov r9, rdi
xor r8d, r8d
lea rcx, [rdi + 0x2c0]
call fcn.017df750
mov esi, eax
test esi, esi
jns 0x17ebfc2
mov rcx, qword [rsp + 0xa0]
test rcx, rcx
je 0x17ebfb0
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetDim]
nop
mov rcx, qword [rbp + 0x30]
mov rax, qword [rcx]
mov rdx, r12
call qword [rax + 0x78]
jmp 0x17ec32a
xor edx, edx
mov rcx, qword [rdi + 0x2c0]
call fcn.01814ce0
mov esi, eax
test eax, eax
jns 0x17ebffc
mov rcx, qword [rsp + 0xa0]
test rcx, rcx
je 0x17ebfea
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetDim]
nop
mov rcx, qword [rbp + 0x30]
mov rax, qword [rcx]
mov rdx, r12
call qword [rax + 0x78]
jmp 0x17ec32a
mov r8, r15
mov rbx, qword [rsp + 0xa0]
mov rdx, rbx
mov rcx, qword [rdi + 0x2c0]
call fcn.012c23a0
mov esi, eax
test eax, eax
jns 0x17ec03d
test rbx, rbx
je 0x17ec02b
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetDim]
nop
mov rcx, qword [rbp + 0x30]
mov rax, qword [rcx]
mov rdx, r12
call qword [rax + 0x78]
jmp 0x17ec32a
mov rax, qword [rdi + 0x2c0]
mov qword [rdi + 0x2d0], rax
jmp 0x17ec270
xor r14d, r14d
mov ecx, r14d
xor dl, dl
mov rax, qword [0x039f11b0]
cmp qword [rax + 0xb90], rcx
je 0x17ec078
mov ecx, dword [0x039f32a0]
cmp dword [0x039f3280], r14d
setne dl
test ecx, ecx
je 0x17ec0c1
sub ecx, 1
je 0x17ec0b5
cmp ecx, 1
jne 0x17ec0fa
mov rax, qword [rdi + 0x168]
mov rcx, rdi
test rax, rax
cmovne rcx, rax
movzx eax, byte [rcx + 0x248]
shr al, 3
test al, 1
jne 0x17ec0a9
test dl, dl
je 0x17ec0fa
mov dword [rdi + 0x2b8], 2
jmp 0x17ec0fa
mov dword [rdi + 0x2b8], 1
jmp 0x17ec0fa
mov rax, qword [rdi + 0x168]
mov rcx, rdi
test rax, rax
cmovne rcx, rax
movzx eax, byte [rcx + 0x248]
shr al, 3
test al, 1
je 0x17ec0e9
mov dword [rdi + 0x2b8], r14d
jmp 0x17ec0fa
mov eax, r14d
test dl, dl
setne al
add eax, 1
mov dword [rdi + 0x2b8], eax
mov eax, dword [rdi + 0x2b8]
mov rbx, qword [rsp + 0xa0]
test eax, eax
je 0x17ec115
cmp eax, 2
jne 0x17ec213
mov rax, qword [0x039f4eb0]
test rax, rax
je 0x17ec12a
lea rdx, [rax + 0xc0]
jmp 0x17ec12d
mov rdx, r14
cmp dword [rdi + 8], 1
jne 0x17ec158
mov qword [rsp + 0x30], r14
mov byte [rsp + 0x28], r14b
mov qword [rsp + 0x20], r14
mov r9, rdi
xor r8d, r8d
lea rcx, [rdi + 0x2c8]
call fcn.017eb900
mov esi, eax
jmp 0x17ec176
mov qword [rsp + 0x28], r14
mov qword [rsp + 0x20], r14
mov r9, rdi
xor r8d, r8d
lea rcx, [rdi + 0x2c8]
call fcn.017df750
mov esi, eax
test esi, esi
jns 0x17ec1a0
mov rcx, qword [rsp + 0xa0]
test rcx, rcx
je 0x17ec18e
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetDim]
nop
mov rcx, qword [rbp + 0x30]
mov rax, qword [rcx]
mov rdx, r12
call qword [rax + 0x78]
jmp 0x17ec32a
mov dl, 1
mov rcx, qword [rdi + 0x2c8]
call fcn.01814ce0
mov esi, eax
test eax, eax
jns 0x17ec1da
mov rcx, qword [rsp + 0xa0]
test rcx, rcx
je 0x17ec1c8
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetDim]
nop
mov rcx, qword [rbp + 0x30]
mov rax, qword [rcx]
mov rdx, r12
call qword [rax + 0x78]
jmp 0x17ec32a
mov r8, r15
mov rdx, rbx
mov rcx, qword [rdi + 0x2c8]
call fcn.012c23a0
mov esi, eax
test eax, eax
jns 0x17ec213
test rbx, rbx
je 0x17ec201
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetDim]
nop
mov rcx, qword [rbp + 0x30]
mov rax, qword [rcx]
mov rdx, r12
call qword [rax + 0x78]
jmp 0x17ec32a
mov ecx, dword [rdi + 0x2b8]
test ecx, ecx
je 0x17ec269
sub ecx, 1
je 0x17ec259
cmp ecx, 1
jne 0x17ec270
mov rax, qword [rdi + 0x2c8]
mov qword [rdi + 0x2d0], rax
cmp qword [rdi + 0x2c0], r14
je 0x17ec270
mov rcx, qword [rdi + 0x2c0]
test rcx, rcx
je 0x17ec250
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetDim]
mov qword [rdi + 0x2c0], r14
jmp 0x17ec270
mov rax, qword [rdi + 0x2c0]
mov qword [rdi + 0x2d0], rax
jmp 0x17ec270
mov qword [rdi + 0x2d0], r14
mov rcx, qword [rdi + 0x38]
mov rax, qword [rcx]
call qword [rax + SafeArrayCopy]
mov edx, eax
mov rcx, rdi
call fcn.017d2f00
mov esi, eax
cmp eax, 0xc1000002
jne 0x17ec2e9
mov rcx, qword [rsp + 0xb8]
call fcn.0109c0c0
mov edx, 0x409
mov rcx, rdi
call fcn.017d2f00
mov esi, eax
test eax, eax
jns 0x17ec2cb
test rbx, rbx
je 0x17ec2bc
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetDim]
nop
mov rcx, qword [rbp + 0x30]
mov rax, qword [rcx]
mov rdx, r12
call qword [rax + 0x78]
jmp 0x17ec32a
mov qword [rsp + 0x20], 0x1000000f
xor r9d, r9d
xor r8d, r8d
mov edx, r14d
mov ecx, 0xc109000a
call fcn.0124e580
jmp 0x17ec30b
test eax, eax
jns 0x17ec30b
test rbx, rbx
je 0x17ec2fc
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetDim]
nop
mov rcx, qword [rbp + 0x30]
mov rax, qword [rcx]
mov rdx, r12
call qword [rax + 0x78]
jmp 0x17ec32a
mov esi, r14d
test rbx, rbx
je 0x17ec31d
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetDim]
nop
mov rcx, qword [rbp + 0x30]
mov rax, qword [rcx]
mov rdx, r12
call qword [rax + 0x78]
mov eax, esi
mov rbx, qword [rsp + 0xa8]
add rsp, 0x60
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret