Function at 0x140002f20
Capabilities:
Delete file

Disassembly:
mov rax, rsp
push rbp
push rdi
push r12
push r14
push r15
lea rbp, [rsp - 0x80]
sub rsp, 0x180
mov qword [rsp + 0x30], 0xfffffffffffffffe
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rsi
mov rax, qword [0x140047080]
xor rax, rsp
mov qword [rbp + 0x70], rax
xor r12d, r12d
mov dword [rsp + 0x28], r12d
xor eax, eax
mov qword [rbp - 8], rax
mov qword [rbp], rax
mov qword [rbp + 8], rax
mov rdx, r8
lea rcx, [rbp - 8]
call fcn.1400059e0
mov rax, qword [rbp]
sub rax, qword [rbp - 8]
sar rax, 5
cmp rax, 2
je 0x140002faa
lea r9d, [r12 + 0x30]
lea r8, str.PinToTaskBar
lea rdx, str.Invalid_command_line__please_specify_an_executable._n_nExamples:_n_nPinToTaskBar.exe__pin_C:myApp.exe_nPinToTaskBar.exe__unpin_C:myApp.exe
xor ecx, ecx
call qword [sym.imp.USER32.dll_MessageBoxW]
jmp 0x140003903
call qword [sym.imp.KERNEL32.dll_GetCurrentProcess]
mov rcx, rax
call fcn.14000f4a0
test al, al
je 0x140002fdd
mov r9d, 0x30
lea r8, str.PinToTaskBar
lea rdx, str.You_cant_run_x86_version_of_PinToTaskbar_on_64_bit_Windows
xor ecx, ecx
call qword [sym.imp.USER32.dll_MessageBoxW]
jmp 0x140003903
movdqa xmm0, xmmword [0x1400417d0]
movdqu xmmword [rbp - 0x38], xmm0
mov word [rbp - 0x48], r12w
mov r8d, 6
lea rdx, str._unpin
lea rcx, [rbp - 0x48]
call fcn.140002080
lea rdx, [rbp - 0x48]
mov rcx, qword [rbp - 8]
call fcn.140004f90
movzx r15d, al
mov rdx, qword [rbp - 0x30]
cmp rdx, 8
jb 0x140003056
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x48]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140003051
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400039ea
call fcn.140012224
mov rdx, qword [rbp - 8]
add rdx, 0x20
lea rcx, [rbp - 0x68]
call fcn.140005db0
lea rcx, [rbp - 0x68]
cmp qword [rbp - 0x50], 8
cmovae rcx, qword [rbp - 0x68]
call fcn.1400065e0
test al, al
je 0x1400038a7
mov byte [rsp + 0x20], r12b
lea r8, [rsp + 0x20]
lea rdx, [rbp - 0x68]
lea rcx, [rbp - 0x48]
call fcn.140002750
mov rdx, rax
lea rcx, [rbp - 0x68]
call fcn.140001b40
mov rdx, qword [rbp - 0x30]
cmp rdx, 8
jb 0x1400030e5
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x48]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1400030e0
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400039f0
call fcn.140012224
xorps xmm0, xmm0
movdqu xmmword [rbp - 0x18], xmm0
mov rdi, qword [rbp - 0x58]
lea r14, [rbp - 0x68]
cmp qword [rbp - 0x50], 8
cmovae r14, qword [rbp - 0x68]
mov rbx, 0xffffffffffffffff
cmp rdi, 8
jae 0x140003121
movups xmm0, xmmword [r14]
movups xmmword [rbp - 0x28], xmm0
mov qword [rbp - 0x10], 7
jmp 0x1400031bc
mov rsi, rdi
or rsi, 7
movabs rax, 0x7ffffffffffffffe
cmp rsi, rax
cmova rsi, rax
mov rax, rsi
add rax, 1
cmovb rax, rbx
lea rdx, [rax + rax]
movabs rcx, 0x7fffffffffffffff
cmp rax, rcx
jbe 0x14000315c
mov rdx, rbx
jmp 0x140003165
cmp rdx, 0x1000
jb 0x14000318f
lea rcx, [rdx + 0x27]
cmp rcx, rdx
cmovbe rcx, rbx
call fcn.140012574
mov rcx, rax
test rax, rax
je 0x1400039f6
add rax, 0x27
and rax, 0xffffffffffffffe0
mov qword [rax - 8], rcx
jmp 0x1400031a1
test rdx, rdx
je 0x14000319e
mov rcx, rdx
call fcn.140012574
jmp 0x1400031a1
mov rax, r12
mov qword [rbp - 0x28], rax
lea r8, [rdi*2 + 2]
mov rdx, r14
mov rcx, rax
call fcn.140013f30
mov qword [rbp - 0x10], rsi
mov qword [rbp - 0x18], rdi
lea rcx, [rbp - 0x28]
call fcn.140006a10
movdqa xmm0, xmmword [0x1400417d0]
movdqu xmmword [rbp - 0x38], xmm0
mov word [rbp - 0x48], r12w
mov r8d, 0xb
lea rdx, str.install.exe
lea rcx, [rbp - 0x48]
call fcn.140002080
mov edi, 1
lea rdx, [rbp - 0x48]
lea rcx, [rbp - 0x28]
call fcn.140004f90
test al, al
jne 0x14000324b
movdqa xmm0, xmmword [0x1400417d0]
movdqu xmmword [rbp - 0x78], xmm0
mov word [rsp + 0x78], r12w
lea r8d, [rdi + 8]
lea rdx, str.setup.exe
lea rcx, [rsp + 0x78]
call fcn.140002080
mov edi, 3
lea rdx, [rsp + 0x78]
lea rcx, [rbp - 0x28]
call fcn.140004f90
test al, al
jne 0x14000324b
xor sil, sil
jmp 0x14000324e
mov sil, 1
test dil, 2
je 0x1400032a8
mov rdx, qword [rbp - 0x70]
cmp rdx, 8
jb 0x140003295
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x78]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140003290
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400039fc
call fcn.140012224
movdqa xmm0, xmmword [0x1400417d0]
movdqu xmmword [rbp - 0x78], xmm0
mov word [rsp + 0x78], r12w
mov rdx, qword [rbp - 0x30]
cmp rdx, 8
jb 0x1400032e8
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x48]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1400032e3
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140003a02
call fcn.140012224
test sil, sil
je 0x1400033ae
lea r8, [rbp - 0x28]
cmp qword [rbp - 0x10], 8
cmovae r8, qword [rbp - 0x28]
mov r9d, 0x30
lea rdx, str.You_cant_pin_this_program_to_your_taskbar_because_of_the_filename
xor ecx, ecx
call qword [sym.imp.USER32.dll_MessageBoxW]
mov rdx, qword [rbp - 0x10]
cmp rdx, 8
jb 0x140003354
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x28]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14000334f
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140003a08
call fcn.140012224
movdqa xmm0, xmmword [0x1400417d0]
movdqu xmmword [rbp - 0x18], xmm0
mov word [rbp - 0x28], r12w
mov rdx, qword [rbp - 0x50]
cmp rdx, 8
jb 0x140003903
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x68]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1400038fe
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400039e4
jmp 0x1400038fe
xor r8d, r8d
xor edx, edx
lea ecx, [rdx + 0xa]
call fcn.140001f10
test al, al
je 0x140003723
call fcn.140006bd0
cmp eax, 0x76f
jb 0x140003723
lea rcx, [rbp - 0x48]
call fcn.1400025a0
lea rcx, [rbp - 0x48]
cmp qword [rbp - 0x30], 8
cmovae rcx, qword [rbp - 0x48]
call fcn.1400065e0
test al, al
je 0x1400036be
xor eax, eax
mov qword [rbp + 0x30], rax
mov qword [rbp + 0x38], rax
mov qword [rbp + 0x40], rax
mov qword [rbp + 0x48], rax
mov qword [rbp + 0x50], rax
mov qword [rbp + 0x58], rax
mov qword [rbp + 0x60], rax
mov qword [rbp + 0x68], rax
movdqa xmm0, xmmword [0x1400417d0]
movdqu xmmword [rbp - 0x78], xmm0
mov word [rsp + 0x78], r12w
lea r8d, [rax + 0x13]
lea rdx, str.PIN_TO_TASKBAR_PATH
lea rcx, [rsp + 0x78]
call fcn.140002080
mov r8d, 0x1000
lea rdx, [rsp + 0x78]
lea rcx, [rbp + 0x30]
call fcn.140010e40
mov rdx, qword [rbp - 0x70]
cmp rdx, 8
jb 0x140003496
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x78]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140003491
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140003a0e
call fcn.140012224
movdqa xmm0, xmmword [0x1400417e0]
movdqu xmmword [rbp + 0x20], xmm0
mov byte [rbp + 0x10], r12b
lea rdx, [rbp + 0x10]
lea rcx, [rbp + 0x30]
call fcn.140010f90
test al, al
je 0x140003667
test r15b, r15b
setne al
movzx eax, al
mov rcx, qword [rbp + 0x60]
mov byte [rcx], al
lea rdx, [rbp - 0x68]
cmp qword [rbp - 0x50], 8
cmovae rdx, qword [rbp - 0x68]
mov r8, qword [rbp - 0x58]
lea r8, [r8*2 + 2]
mov rcx, qword [rbp + 0x60]
inc rcx
call fcn.140013f30
mov esi, r12d
xor eax, eax
mov qword [rsp + 0x78], rax
mov qword [rbp - 0x80], rax
mov qword [rbp - 0x78], rax
lea rax, vtable.std::_Func_impl_no_alloc_bool____cdecl___class_ProcessHelpers::Process_const____ptr64___bool__class_ProcessHelpers::Process_const____ptr64_.0
mov qword [rsp + 0x38], rax
lea rax, [0x140002520]
mov qword [rsp + 0x40], rax
lea rax, [rsp + 0x38]
mov qword [rsp + 0x70], rax
lea rdx, [rsp + 0x38]
lea rcx, [rsp + 0x78]
call fcn.14000fad0
mov rdi, qword [rbp - 0x80]
mov rcx, rdi
mov rbx, qword [rsp + 0x78]
sub rcx, rbx
movabs r14, 0x4924924924924925
mov rax, r14
imul rcx
sar rdx, 4
mov rax, rdx
shr rax, 0x3f
add rdx, rax
je 0x140003566
mov esi, dword [rbx + 8]
test rbx, rbx
je 0x1400035d6
cmp rbx, rdi
je 0x140003589
mov r8, qword [rbx]
xor edx, edx
mov rcx, rbx
call qword [r8]
add rbx, 0x38
cmp rbx, rdi
jne 0x140003570
mov rbx, qword [rsp + 0x78]
mov rcx, qword [rbp - 0x78]
sub rcx, rbx
mov rax, r14
imul rcx
sar rdx, 4
mov rax, rdx
shr rax, 0x3f
add rdx, rax
imul rdx, rdx, 0x38
mov rax, rbx
cmp rdx, 0x1000
jb 0x1400035cd
add rdx, 0x27
mov rbx, qword [rbx - 8]
sub rax, rbx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140003a14
mov rcx, rbx
call fcn.140012224
nop
test esi, esi
je 0x140003667
lea r8, [rbp + 0x10]
lea rdx, [rbp - 0x48]
mov ecx, esi
call fcn.14000ffc0
test al, al
je 0x140003667
mov edx, 0x28
lea ecx, [rdx + 0x18]
call qword [sym.imp.KERNEL32.dll_LocalAlloc]
mov rbx, rax
mov edx, 1
mov rcx, rax
call qword [sym.imp.ADVAPI32.dll_InitializeSecurityDescriptor]
xor r9d, r9d
xor r8d, r8d
lea edx, [r9 + 1]
mov rcx, rbx
call qword [sym.imp.ADVAPI32.dll_SetSecurityDescriptorDacl]
mov qword [rsp + 0x78], 0x18
mov qword [rbp - 0x78], r12
mov qword [rbp - 0x80], rbx
lea r9, str.GlobalEventPinOK
xor r8d, r8d
lea edx, [r8 + 1]
lea rcx, [rsp + 0x78]
call qword [sym.imp.KERNEL32.dll_CreateEventW]
mov rbx, rax
mov edx, 0x2710
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rdx, qword [rbp + 0x28]
cmp rdx, 0x10
jb 0x1400036a2
inc rdx
mov rcx, qword [rbp + 0x10]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14000369d
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140003a1a
call fcn.140012224
movdqa xmm0, xmmword [0x1400417e0]
movdqu xmmword [rbp + 0x20], xmm0
mov byte [rbp + 0x10], 0
lea rcx, [rbp + 0x30]
call fcn.140010f00
jmp 0x1400036da
mov r9d, 0x30
lea r8, str.PinToTaskBar
lea rdx, str.PinToTaskbar.dll_not_found
xor ecx, ecx
call qword [sym.imp.USER32.dll_MessageBoxW]
mov rdx, qword [rbp - 0x30]
cmp rdx, 8
jb 0x140003845
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x48]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140003719
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140003a20
call fcn.140012224
jmp 0x140003845
xor ecx, ecx
call qword [sym.imp.ole32.dll_CoInitialize]
lea rdx, [rbp - 0x68]
cmp qword [rbp - 0x50], 8
cmovae rdx, qword [rbp - 0x68]
mov qword [rbp - 0x78], r12
mov qword [rbp - 0x70], 7
mov word [rsp + 0x78], r12w
nop dword [rax + rax]
inc rbx
cmp word [rdx + rbx*2], r12w
jne 0x140003750
mov r8, rbx
lea rcx, [rsp + 0x78]
call fcn.140002080
xor r8d, r8d
lea edx, [r8 + 1]
lea ecx, [rdx + 5]
call fcn.140001f10
test al, al
je 0x1400037fe
cmp qword [rbp - 0x78], r12
je 0x1400037fe
lea rcx, [rsp + 0x78]
cmp qword [rbp - 0x70], 8
cmovae rcx, qword [rsp + 0x78]
call fcn.1400065e0
test al, al
je 0x1400037fe
xor r8d, r8d
xor edx, edx
lea ecx, [rdx + 0xa]
call fcn.140001f10
test al, al
je 0x1400037c3
call fcn.140006bd0
cmp eax, 0x76f
jae 0x1400037c3
call fcn.1400016e0
test al, al
je 0x1400037dc
mov ecx, r12d
test r15b, r15b
setne cl
add ecx, 0x150a
lea rdx, [rsp + 0x78]
call fcn.1400011e0
xor r8d, r8d
xor edx, edx
lea ecx, [rdx + 0xa]
call fcn.140001f10
test al, al
je 0x1400037fe
call fcn.140006bd0
cmp eax, 0x76f
jae 0x1400037fe
call fcn.1400016e0
mov rdx, qword [rbp - 0x70]
cmp rdx, 8
jb 0x14000383f
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x78]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14000383a
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140003a26
call fcn.140012224
call qword [sym.imp.ole32.dll_CoUninitialize]
test r15b, r15b
je 0x140003865
cmp byte [rsp + 0x20], 0
je 0x140003865
lea rcx, [rbp - 0x68]
cmp qword [rbp - 0x50], 8
cmovae rcx, qword [rbp - 0x68]
call qword [sym.imp.KERNEL32.dll_DeleteFileW]
mov rdx, qword [rbp - 0x10]
cmp rdx, 8
jb 0x1400038c3
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x28]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1400038a0
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140003a2c
call fcn.140012224
jmp 0x1400038c3
mov r9d, 0x30
lea r8, str.PinToTaskBar
lea rdx, str.Specified_file_doesnt_exist
xor ecx, ecx
call qword [sym.imp.USER32.dll_MessageBoxW]
mov rdx, qword [rbp - 0x50]
cmp rdx, 8
jb 0x140003903
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x68]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1400038fe
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140003a32
call fcn.140012224
mov rbx, qword [rbp - 8]
test rbx, rbx
je 0x1400039b4
mov rdi, qword [rbp]
cmp rbx, rdi
je 0x14000397c
nop dword [rax]
mov rdx, qword [rbx + 0x18]
cmp rdx, 8
jb 0x14000395f
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbx]
cmp rdx, 0x1000
jb 0x14000395a
add rdx, 0x27
mov r8, qword [rcx - 8]
sub rcx, r8
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x1400039de
mov rcx, r8
call fcn.140012224
mov qword [rbx + 0x10], r12
mov qword [rbx + 0x18], 7
mov word [rbx], r12w
add rbx, 0x20
cmp rbx, rdi
jne 0x140003920
mov rbx, qword [rbp - 8]
mov rdx, qword [rbp + 8]
sub rdx, rbx
and rdx, 0xffffffffffffffe0
mov rax, rbx
cmp rdx, 0x1000
jb 0x1400039ac
add rdx, 0x27
mov rbx, qword [rbx - 8]
sub rax, rbx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140003a38
mov rcx, rbx
call fcn.140012224
xor eax, eax
mov rcx, qword [rbp + 0x70]
xor rcx, rsp
call fcn.140012200
lea r11, [rsp + 0x180]
mov rbx, qword [r11 + 0x30]
mov rsi, qword [r11 + 0x38]
mov rsp, r11
pop r15
pop r14
pop r12
pop rdi
pop rbp
ret
call fcn.14001663c
int3
call fcn.14001663c
int3
call fcn.14001663c
int3
call fcn.14001663c
int3
call fcn.14001663c
int3
call fcn.14001663c
int3
call fcn.14001663c
int3
call fcn.14001663c
int3
call fcn.14001663c
nop
call fcn.14001663c
nop
call fcn.14001663c
int3
call fcn.14001663c
int3
call fcn.14001663c
int3
call fcn.14001663c
int3
call fcn.14001663c
int3
call fcn.14001663c
int3