Function at 0x140017c00
Capabilities:
Read .ini file

Disassembly:
mov rax, rsp
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0xa0
mov qword [rsp + 0x68], 0xfffffffffffffffe
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rsi
mov r15, r8
mov r12, rdx
lea rcx, [rax - 0x58]
call fcn.1400292ac
nop
or rbx, 0xffffffffffffffff
mov r8, rbx
xor edx, edx
lea rcx, [rsp + 0x70]
call fcn.1400293c0
mov rdx, r15
lea rcx, [rsp + 0x70]
call fcn.140006050
cmp eax, 1
jge 0x140017c6e
mov dword [rsp + 0x30], ebx
lea rdx, [0x140093ad0]
lea rcx, [rsp + 0x30]
call fcn.1400551c0
call fcn.1400280cc
mov rcx, rax
xor r13d, r13d
mov eax, r13d
test rcx, rcx
setne al
test eax, eax
jne 0x140017c90
mov ecx, 0x80004005
call fcn.140003280
mov rax, qword [rcx]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rsp + 0xe8], rax
lea rdx, [0x14007e0d8]
test rdx, 0xffffffffffff0000
jne 0x140017cd6
movzx edi, dx
mov ecx, edi
call fcn.1400280b8
test rax, rax
je 0x140017cf6
mov r8d, edi
mov rdx, rax
lea rcx, [rsp + 0xe8]
call fcn.140003060
jmp 0x140017cf6
xor eax, eax
mov rcx, rbx
mov rdi, rdx
repne scasw ax, word [rdi]
not rcx
lea r8d, [rcx - 1]
lea rcx, [rsp + 0xe8]
call fcn.1400036f0
nop
lea rcx, [rsp + 0x40]
call fcn.1400292ac
nop
mov r8, rbx
xor edx, edx
lea rcx, [rsp + 0x40]
call fcn.1400293c0
mov esi, r13d
lea r10, str.UPNAVIEXE
nop
nop
cmp esi, 5
jge 0x140017e26
mov r14, qword [r15]
movsxd rdi, esi
shl rdi, 5
mov edx, dword [rdi + r10 + 8]
mov r9, qword [rsp + 0xe8]
mov ecx, 1
sub ecx, dword [r9 - 8]
mov eax, dword [r9 - 0xc]
sub eax, edx
or ecx, eax
jge 0x140017d6f
lea rcx, [rsp + 0xe8]
call fcn.140003380
mov r9, qword [rsp + 0xe8]
lea r10, str.UPNAVIEXE
mov qword [rsp + 0x28], r14
mov eax, dword [rdi + r10 + 8]
mov dword [rsp + 0x20], eax
mov r8, qword [rdi + r10 + 0x10]
mov rdx, qword [rdi + r10]
lea rcx, str.Download
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
mov r11, qword [rsp + 0xe8]
cmp dword [r11 - 0x10], 0
jne 0x140017dc5
lea rax, str.UPNAVIEXE
cmp dword [rdi + rax + 0x18], 1
jne 0x140017dc5
mov dword [rsp + 0x34], ebx
lea rdx, [0x140093ad0]
lea rcx, [rsp + 0x34]
call fcn.1400551c0
xor eax, eax
mov rcx, rbx
mov rdi, r11
repne scasw ax, word [rdi]
not rcx
sub rcx, 1
test ecx, ecx
js 0x140017e1c
cmp ecx, dword [r11 - 0xc]
jg 0x140017e1c
mov dword [r11 - 0x10], ecx
movsxd rcx, ecx
mov rax, qword [rsp + 0xe8]
mov word [rax + rcx*2], 0
lea r8, [rsp + 0xe8]
mov rdx, qword [rsp + 0x50]
lea rcx, [rsp + 0x40]
call fcn.14002972c
add esi, 1
lea r10, str.UPNAVIEXE
jmp 0x140017d20
mov ecx, 0x80070057
call fcn.140003280
mov edi, r13d
nop
nop
movsxd rcx, edi
cmp rcx, qword [rsp + 0x50]
jge 0x140017e5f
test edi, edi
js 0x140017e59
mov rax, qword [rsp + 0x48]
lea r8, [rax + rcx*8]
mov rdx, qword [r12 + 0x10]
mov rcx, r12
call fcn.14002972c
add edi, 1
jmp 0x140017e30
call fcn.140027e38
nop
lea rcx, [rsp + 0x40]
call fcn.140029574
nop
mov rdx, qword [rsp + 0xe8]
add rdx, 0xffffffffffffffe8
lock xadd dword [rdx + 0x10], ebx
add ebx, 0xffffffff
test ebx, ebx
jg 0x140017e8c
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
lea rcx, [rsp + 0x70]
call fcn.140029574
nop
jmp 0x140017ea1
mov eax, r13d
lea r11, [rsp + 0xa0]
mov rbx, qword [r11 + 0x30]
mov rsi, qword [r11 + 0x38]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
ret