Function at 0x1400a6640
Capabilities:
Create shortcut via ishelllink

Disassembly:
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 8]
sub rsp, 0x108
mov rax, qword [0x1402bf5c8]
xor rax, rsp
mov qword [rbp - 8], rax
mov qword [rbp - 0x80], r9
mov qword [rsp + 0x78], r8
mov r13, rdx
mov r15, rcx
mov qword [rbp - 0x30], rcx
lea rcx, [rbp - 0x78]
call fcn.1400a7ad0
mov rbx, rax
mov rcx, qword [rax + 0x10]
mov rdx, qword [rax + 0x18]
mov rax, rdx
sub rax, rcx
xor r12d, r12d
cmp rax, 0xb
jb 0x1400a66ce
lea rsi, [rcx + 0xb]
mov qword [rbx + 0x10], rsi
mov rdi, rbx
cmp rdx, 8
jb 0x1400a66b1
mov rdi, qword [rbx]
lea rcx, [rdi + rcx*2]
mov r8d, 0x16
lea rdx, str.ProgramData
call fcn.1401cfe40
mov word [rdi + rsi*2], r12w
jmp 0x1400a66f4
mov qword [rsp + 0x20], 0xb
lea r9, str.ProgramData
movzx r8d, byte [rsp + 0x30]
mov edx, 0xb
mov rcx, rbx
call fcn.14002dc10
mov rbx, rax
mov qword [rbp - 0x28], r12
mov qword [rbp - 0x18], r12
mov qword [rbp - 0x10], r12
mov rsi, qword [rbx + 0x10]
cmp qword [rbx + 0x18], 8
jb 0x1400a670e
mov rbx, qword [rbx]
movabs rax, 0x7ffffffffffffffe
cmp rsi, 8
jae 0x1400a672d
movups xmm0, xmmword [rbx]
movups xmmword [rbp - 0x28], xmm0
mov r14d, 7
jmp 0x1400a675f
mov r14, rsi
or r14, 7
cmp r14, rax
cmova r14, rax
lea rdx, [r14 + 1]
lea rcx, [rbp - 0x28]
call fcn.140023c30
mov qword [rbp - 0x28], rax
lea r8, [rsi*2 + 2]
mov rdx, rbx
mov rcx, rax
call fcn.1401cfe40
mov qword [rbp - 0x10], r14
mov qword [rbp - 0x18], rsi
mov rdx, qword [rbp - 0x60]
cmp rdx, 8
jb 0x1400a67af
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x78]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1400a67a2
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400a6ce3
call fcn.1401a9a50
mov r14, qword [rbp - 0x10]
mov rsi, qword [rbp - 0x18]
mov qword [rbp - 0x68], r12
mov qword [rbp - 0x60], 7
mov word [rbp - 0x78], r12w
mov rax, r14
sub rax, rsi
cmp rax, 0x27
jb 0x1400a67fe
lea rdi, [rsi + 0x27]
mov qword [rbp - 0x18], rdi
lea rbx, [rbp - 0x28]
cmp r14, 8
cmovae rbx, qword [rbp - 0x28]
lea rcx, [rbx + rsi*2]
mov r8d, 0x4e
lea rdx, str.MicrosoftWindowsStart_MenuPrograms_
call fcn.1401cfe40
mov word [rbx + rdi*2], r12w
jmp 0x1400a6822
mov qword [rsp + 0x20], 0x27
lea r9, str.MicrosoftWindowsStart_MenuPrograms_
movzx r8d, byte [rsp + 0x30]
mov edx, 0x27
lea rcx, [rbp - 0x28]
call fcn.14002dc10
mov rdi, qword [rbp - 0x18]
movabs rcx, 0x7ffffffffffffffe
mov rax, rcx
sub rax, rdi
cmp rax, 0x14
jb 0x1400a6ce9
lea r12, [rbp - 0x28]
cmp qword [rbp - 0x10], 8
cmovae r12, qword [rbp - 0x28]
mov qword [rsp + 0x38], 0
lea r14, [rdi + 0x14]
mov ebx, 7
lea rsi, [rsp + 0x38]
lea eax, [rbx + 3]
lea r8, [rbx - 8]
cmp r14, rbx
jbe 0x1400a68a6
mov rbx, r14
or rbx, 7
cmp rbx, rcx
jbe 0x1400a6882
mov rbx, rcx
jmp 0x1400a6889
cmp rbx, rax
cmovb rbx, rax
mov rdx, rbx
add rdx, 1
cmovb rdx, r8
lea rcx, [rsp + 0x38]
call fcn.140023c30
mov rsi, rax
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x48], r14
mov qword [rsp + 0x50], rbx
lea rbx, [rdi + rdi]
mov r8, rbx
mov rdx, r12
mov rcx, rsi
call fcn.1401cfe40
movups xmm0, xmmword [str.AMD_Bug_Report_Tool]
movups xmmword [rbx + rsi], xmm0
movups xmm1, xmmword [0x14023d970]
movups xmmword [rbx + rsi + 0x10], xmm1
movsd xmm0, qword [0x14023d980]
movsd qword [rbx + rsi + 0x20], xmm0
xor ebx, ebx
mov word [rsi + r14*2], bx
movups xmm0, xmmword [rsp + 0x38]
movups xmmword [rsp + 0x58], xmm0
movups xmm1, xmmword [rsp + 0x48]
movups xmmword [rsp + 0x68], xmm1
mov qword [rsp + 0x48], rbx
mov qword [rsp + 0x50], 7
mov word [rsp + 0x38], bx
mov qword [rbp - 0x58], rbx
lea rax, [0x1402c05e0]
mov qword [rbp - 0x50], rax
lea rdx, [rbp - 0x58]
lea rcx, [rsp + 0x58]
call fcn.14006adc0
cmp dword [rbp - 0x58], ebx
jne 0x1400a6cef
lea rcx, [rsp + 0x58]
call fcn.1400272a0
nop
mov r14, qword [r15 + 0x10]
movabs rcx, 0x7ffffffffffffffe
mov rax, rcx
sub rax, r14
cmp rax, 0x15
jb 0x1400a6d05
mov r12, r15
cmp qword [r15 + 0x18], 8
jb 0x1400a6971
mov r12, qword [r15]
mov qword [rbp - 0x58], rbx
mov qword [rbp - 0x48], rbx
mov qword [rbp - 0x40], rbx
lea rsi, [r14 + 0x15]
mov ebx, 7
lea rdi, [rbp - 0x58]
cmp rsi, rbx
jbe 0x1400a69cf
mov rbx, rsi
or rbx, 7
cmp rbx, rcx
jbe 0x1400a69a0
mov rbx, rcx
jmp 0x1400a69ad
cmp rbx, 0xa
mov eax, 0xa
cmovb rbx, rax
mov rdx, rbx
add rdx, 1
mov rax, 0xffffffffffffffff
cmovb rdx, rax
lea rcx, [rbp - 0x58]
call fcn.140023c30
mov rdi, rax
mov qword [rbp - 0x58], rax
mov qword [rbp - 0x48], rsi
mov qword [rbp - 0x40], rbx
movups xmm0, xmmword [str.AMD_Bug_Report_Tool_]
movups xmmword [rdi], xmm0
movups xmm1, xmmword [0x14023b310]
movups xmmword [rdi + 0x10], xmm1
movsd xmm0, qword [0x14023b320]
movsd qword [rdi + 0x20], xmm0
movzx ecx, word [0x14023b328]
mov word [rdi + 0x28], cx
lea rcx, [rdi + 0x2a]
lea r8, [r14 + r14]
mov rdx, r12
call fcn.1401cfe40
xor r12d, r12d
mov word [rdi + rsi*2], r12w
mov rdx, qword [rbp - 0x48]
mov r8, qword [rbp - 0x40]
mov rax, r8
sub rax, rdx
cmp rax, 4
jb 0x1400a6a5e
lea rcx, [rdx + 4]
mov qword [rbp - 0x48], rcx
lea rax, [rbp - 0x58]
cmp r8, 8
cmovae rax, qword [rbp - 0x58]
movabs r8, 0x6b006e006c002e
mov qword [rax + rdx*2], r8
mov word [rax + rcx*2], r12w
lea rax, [rbp - 0x58]
jmp 0x1400a6a82
mov qword [rsp + 0x20], 4
lea r9, str..lnk
movzx r8d, byte [rsp + 0x30]
mov edx, 4
lea rcx, [rbp - 0x58]
call fcn.14002dc10
movups xmm0, xmmword [rax]
movups xmmword [rsp + 0x58], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rsp + 0x68], xmm1
mov qword [rax + 0x10], r12
mov qword [rax + 0x18], 7
mov word [rax], r12w
lea r9, [rsp + 0x58]
movq rsi, xmm0
movdqa xmm0, xmm1
psrldq xmm0, 8
movq r14, xmm0
cmp r14, 8
cmovae r9, rsi
mov rcx, qword [rbp - 0x18]
mov r8, qword [rbp - 0x10]
mov rax, r8
sub rax, rcx
movq rdx, xmm1
cmp rdx, rax
ja 0x1400a6b07
lea rdi, [rdx + rcx]
mov qword [rbp - 0x18], rdi
lea rbx, [rbp - 0x28]
cmp r8, 8
cmovae rbx, qword [rbp - 0x28]
lea rcx, [rbx + rcx*2]
lea r8, [rdx + rdx]
mov rdx, r9
call fcn.1401cfe40
mov word [rbx + rdi*2], r12w
jmp 0x1400a6b25
mov qword [rsp + 0x20], rdx
movzx r8d, byte [rsp + 0x30]
lea rcx, [rbp - 0x28]
call fcn.14002dc10
mov r14, qword [rsp + 0x70]
mov rsi, qword [rsp + 0x58]
cmp r14, 8
jb 0x1400a6b61
lea rdx, [r14*2 + 2]
mov rax, rsi
cmp rdx, 0x1000
jb 0x1400a6b58
add rdx, 0x27
mov rsi, qword [rsi - 8]
sub rax, rsi
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400a6d0b
mov rcx, rsi
call fcn.1401a9a50
nop
mov rdx, qword [rbp - 0x40]
cmp rdx, 8
jb 0x1400a6ba1
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x58]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1400a6b9c
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400a6d11
call fcn.1401a9a50
xor ecx, ecx
call qword [sym.imp.ole32.dll_CoInitialize]
mov ebx, eax
test eax, eax
js 0x1400a6c61
lea rax, [rbp - 0x38]
mov qword [rsp + 0x20], rax
lea r9, [0x140268d30]
xor edx, edx
lea r8d, [rdx + 1]
lea rcx, [0x140268d50]
call qword [sym.imp.ole32.dll_CoCreateInstance]
mov ebx, eax
test eax, eax
js 0x1400a6c61
mov rcx, qword [rbp - 0x38]
mov rax, qword [rcx]
mov rdx, r13
call qword [rax + SHCreateDirectory]
mov rcx, qword [rbp - 0x38]
mov rax, qword [rcx]
mov rdx, qword [rsp + 0x78]
call qword [rax + 0x38]
mov rcx, qword [rbp - 0x38]
mov rax, qword [rcx]
xor r8d, r8d
mov rdx, qword [rbp - 0x80]
call qword [rax + MsiSetPropertyW]
mov rcx, qword [rbp - 0x38]
mov rax, qword [rcx]
lea r8, [rbp - 0x58]
lea rdx, [0x140268d40]
call qword [rax]
mov ebx, eax
test eax, eax
js 0x1400a6c57
mov rcx, qword [rbp - 0x58]
mov rax, qword [rcx]
lea rdx, [rbp - 0x28]
cmp qword [rbp - 0x10], 8
cmovae rdx, qword [rbp - 0x28]
mov r8d, 1
call qword [rax + 0x30]
mov ebx, eax
mov rcx, qword [rbp - 0x58]
mov rax, qword [rcx]
call qword [rax + 0x10]
mov rcx, qword [rbp - 0x38]
mov rax, qword [rcx]
call qword [rax + 0x10]
not ebx
shr ebx, 0x1f
mov rdx, qword [rbp - 0x10]
cmp rdx, 8
jb 0x1400a6ca2
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x28]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1400a6c9d
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400a6cdd
call fcn.1401a9a50
mov qword [rbp - 0x18], r12
mov qword [rbp - 0x10], 7
mov word [rbp - 0x28], r12w
mov rcx, r15
call fcn.1400272a0
mov eax, ebx
mov rcx, qword [rbp - 8]
xor rcx, rsp
call fcn.1401a9a30
add rsp, 0x108
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret
call fcn.1401e3dbc
nop
call fcn.1401e3dbc
int3
call fcn.1400153e0
nop
lea r8, [rsp + 0x58]
lea rdx, [rbp - 0x58]
lea rcx, str.create_directories
call fcn.1400684b0
nop
call fcn.1400153e0
nop
call fcn.1401e3dbc
nop
call fcn.1401e3dbc
int3