Function at 0x14001525d
Capabilities:
Delete file
Execute command
Move file

Disassembly:
jmp 0x14002c300
push rbp
push rdi
sub rsp, 0x6f8
lea rbp, [rsp + 0x30]
lea rdi, [rsp + 0x30]
mov ecx, 0x122
mov eax, 0xcccccccc
rep stosd dword [rdi], eax
mov rax, qword [0x14005e040]
xor rax, rbp
mov qword [rbp + 0x6b8], rax
lea rcx, [0x14006a347]
call fcn.140015cc6
nop
lea rdx, str.Checking_if_Topgrade_is_installed...
mov rcx, qword [sym.imp.MSVCP140D.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
call fcn.14001515e
lea rdx, [0x140015073]
mov rcx, rax
call qword [sym.imp.MSVCP140D.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______ptr64___cdecl_std::basic_ostream_char__struct_std::char_traits_char__::operator___class_std::basic_ostream_char__struct_std::char_traits_char______ptr64____cdecl___class_std::basic_ostream_char__struct_std::char_traits_char______ptr64_____ptr64]
nop
lea rcx, str.topgrade___version
call qword [sym.imp.ucrtbased.dll_system]
test eax, eax
je 0x14002c3a7
lea rdx, str.Topgrade_is_not_installed._Installing_Topgrade...
mov rcx, qword [sym.imp.MSVCP140D.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
call fcn.14001515e
lea rdx, [0x140015073]
mov rcx, rax
call qword [sym.imp.MSVCP140D.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______ptr64___cdecl_std::basic_ostream_char__struct_std::char_traits_char__::operator___class_std::basic_ostream_char__struct_std::char_traits_char______ptr64____cdecl___class_std::basic_ostream_char__struct_std::char_traits_char______ptr64_____ptr64]
nop
lea rcx, str.winget_install__e___id_topgrade_rs.topgrade
call qword [sym.imp.ucrtbased.dll_system]
nop
jmp 0x14002c3cb
lea rdx, str.Topgrade_is_already_installed.
mov rcx, qword [sym.imp.MSVCP140D.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
call fcn.14001515e
lea rdx, [0x140015073]
mov rcx, rax
call qword [sym.imp.MSVCP140D.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______ptr64___cdecl_std::basic_ostream_char__struct_std::char_traits_char__::operator___class_std::basic_ostream_char__struct_std::char_traits_char______ptr64____cdecl___class_std::basic_ostream_char__struct_std::char_traits_char______ptr64_____ptr64]
nop
mov qword [rbp + 8], 0
mov qword [rbp + 0x28], 0
lea r8, str.APPDATA
lea rdx, [rbp + 0x28]
lea rcx, [rbp + 8]
call qword [sym.imp.ucrtbased.dll__wdupenv_s]
nop
mov rdx, qword [rbp + 8]
lea rcx, [rbp + 0x618]
call fcn.14001541f
mov qword [rbp + 0x6a8], rax
mov rax, qword [rbp + 0x6a8]
mov qword [rbp + 0x6b0], rax
lea r8, str._topgrade.toml
mov rdx, qword [rbp + 0x6b0]
lea rcx, [rbp + 0x48]
call fcn.1400157a3
nop
lea rcx, [rbp + 0x618]
call fcn.140015b04
nop
mov rcx, qword [rbp + 8]
call qword [sym.imp.ucrtbased.dll_free]
nop
mov edx, 0x110
lea rcx, [rbp + 0x90]
call fcn.1400158c0
mov dword [rsp + 0x20], 1
mov r9d, 0x40
mov r8d, 1
lea rdx, [rbp + 0x48]
lea rcx, [rbp + 0x90]
call fcn.14001547e
nop
lea rcx, [rbp + 0x90]
call fcn.140015055
movzx eax, al
test eax, eax
je 0x14002c5dd
mov edx, 0x108
lea rcx, [rbp + 0x1c0]
call fcn.140015514
mov dword [rsp + 0x20], 1
mov r9d, 0x40
mov r8d, 2
lea rdx, [0x1400526b8]
lea rcx, [rbp + 0x1c0]
call fcn.1400154f1
nop
lea rcx, [rbp + 0x2e8]
call fcn.140015ca3
nop
lea rdx, [rbp + 0x2e8]
lea rcx, [rbp + 0x90]
call fcn.140015730
mov qword [rbp + 0x658], rax
mov rax, qword [rbp + 0x658]
mov rax, qword [rax]
movsxd rax, dword [rax + 4]
mov rcx, qword [rbp + 0x658]
add rcx, rax
mov rax, rcx
mov rcx, rax
call qword [sym.imp.MSVCP140D.dll_public:_bool___cdecl_std::ios_base::operator_bool_void_const___ptr64]
movzx eax, al
test eax, eax
je 0x14002c577
xor r8d, r8d
lea rdx, str._enable_winget__true
lea rcx, [rbp + 0x2e8]
call fcn.1400154a1
cmp rax, 0xffffffffffffffff
je 0x14002c54e
lea rdx, str.enable_winget__true
lea rcx, [rbp + 0x2e8]
call fcn.140015069
nop
lea rdx, [rbp + 0x2e8]
lea rcx, [rbp + 0x1c0]
call fcn.140015b5e
lea rdx, [0x140015073]
mov rcx, rax
call qword [sym.imp.MSVCP140D.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______ptr64___cdecl_std::basic_ostream_char__struct_std::char_traits_char__::operator___class_std::basic_ostream_char__struct_std::char_traits_char______ptr64____cdecl___class_std::basic_ostream_char__struct_std::char_traits_char______ptr64_____ptr64]
nop
jmp 0x14002c4d9
lea rcx, [rbp + 0x90]
call fcn.14001572b
nop
lea rcx, [rbp + 0x1c0]
call fcn.140015690
nop
lea rcx, [rbp + 0x48]
call fcn.140015433
mov rcx, rax
call qword [sym.imp.ucrtbased.dll__wremove]
nop
lea rcx, [rbp + 0x48]
call fcn.140015433
mov rdx, rax
lea rcx, str.temp.toml
call qword [sym.imp.ucrtbased.dll__wrename]
nop
lea rcx, [rbp + 0x2e8]
call fcn.14001524e
nop
lea rcx, [rbp + 0x1c0]
call fcn.14001533e
nop
jmp 0x14002c674
mov edx, 0x88
lea rcx, [rbp + 0x330]
call fcn.140015c08
lea rcx, [rbp + 0x330]
call fcn.140015708
nop
lea r8, [rbp + 0x48]
lea rdx, [rbp + 0x678]
lea rcx, [rbp + 0x330]
call fcn.140015af0
mov qword [rbp + 0x6a8], rax
mov rax, qword [rbp + 0x6a8]
mov qword [rbp + 0x6b0], rax
lea rdx, str.Configuration_file_not_found_at
mov rcx, qword [sym.imp.MSVCP140D.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
call fcn.14001515e
mov rdx, qword [rbp + 0x6b0]
mov rcx, rax
call fcn.140015b5e
lea rdx, [0x140015073]
mov rcx, rax
call qword [sym.imp.MSVCP140D.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______ptr64___cdecl_std::basic_ostream_char__struct_std::char_traits_char__::operator___class_std::basic_ostream_char__struct_std::char_traits_char______ptr64____cdecl___class_std::basic_ostream_char__struct_std::char_traits_char______ptr64_____ptr64]
nop
lea rcx, [rbp + 0x678]
call fcn.14001524e
nop
lea rcx, [rbp + 0x330]
call fcn.140015177
nop
lea rcx, [rbp + 0x90]
call fcn.1400151ef
nop
lea rcx, [rbp + 0x48]
call fcn.140015b04
nop
lea rcx, [rbp - 0x30]
lea rdx, [0x14004fc90]
call fcn.140015a9b
mov rcx, qword [rbp + 0x6b8]
xor rcx, rbp
call fcn.140015631
lea rsp, [rbp + 0x6c8]
pop rdi
pop rbp
ret