Function at 0x140029e10
Capabilities:
Check if file exists
Delete file

Disassembly:
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0xb90
mov qword [rsp + 0x50], 0xfffffffffffffffe
mov rax, qword [0x140092690]
xor rax, rsp
mov qword [rsp + 0xb80], rax
mov r13, r8
mov qword [rsp + 0x48], rdx
mov rbx, rcx
mov qword [rsp + 0x40], rcx
lea rsi, vtable.CEncrypter.0
mov qword [rsp + 0x60], rsi
test r8, r8
jne 0x140029e69
mov eax, 0x800432b1
jmp 0x14002a2c1
mov rcx, qword [rcx + 0x510]
test rcx, rcx
je 0x140029f14
mov edx, 1
call fcn.140025ed0
lea rdx, str._t_CProfileConverter::ConvertPreferredProfileList___started_
mov rcx, qword [rbx + 0x510]
call fcn.140025be0
mov edx, 1
mov rcx, qword [rbx + 0x510]
call fcn.140025ed0
cmp dword [rbx + 0x518], 1
jge 0x140029f14
mov edx, 1
mov rcx, qword [rbx + 0x510]
call fcn.140025ed0
lea rdx, str._tCProfileConverter::ConvertPreferredProfileList_____No_preferred_profiles_available_
mov rcx, qword [rbx + 0x510]
call fcn.140025be0
mov edx, 1
mov rcx, qword [rbx + 0x510]
call fcn.140025ed0
lea rdx, str._t_CProfileConverter::ConvertPreferredProfileList___completed_
mov rcx, qword [rbx + 0x510]
call fcn.140025be0
mov edx, 1
mov rcx, qword [rbx + 0x510]
call fcn.140025ed0
nop
mov eax, 0x43297
jmp 0x14002a2c1
xor r8d, r8d
mov rdx, r13
mov rcx, rbx
call fcn.14002df70
cmp eax, 0x43297
je 0x140029f33
mov eax, 0x80043298
jmp 0x14002a2c1
xor r15d, r15d
mov qword [rsp + 0x38], r15
mov edi, r15d
mov dword [rsp + 0x30], r15d
mov eax, dword [rbx + 0x518]
test eax, eax
jle 0x140029f79
mov rcx, qword [rbx + 0x528]
mov edx, eax
nop word [rax + rax]
lea eax, [rdi + 1]
cmp byte [rcx], 0
cmove eax, edi
mov edi, eax
lea rcx, [rcx + 1]
sub rdx, 1
jne 0x140029f60
mov dword [rsp + 0x30], eax
movsxd rcx, edi
shl rcx, 6
add rcx, 4
call sub.mfc140.dll_Ordinal_265
mov r12, rax
mov qword [rsp + 0x38], rax
test rax, rax
jne 0x140029fca
mov rcx, qword [rbx + 0x510]
test rcx, rcx
je 0x140029fbb
lea rdx, str._tSystem_is_out_of_memory_allocating_memory_for_preferred_profile_name_list_
call fcn.140025be0
mov rcx, qword [rbx + 0x510]
call fcn.140025dc0
nop
mov qword [rsp + 0x60], rsi
mov eax, 0x80043298
jmp 0x14002a2c1
xor eax, eax
mov qword [r12], rax
mov r14d, r15d
cmp dword [rbx + 0x518], eax
jle 0x14002a03c
mov rsi, r15
nop
mov rax, qword [rbx + 0x528]
cmp byte [rsi + rax], 0
je 0x14002a02d
cmp r15d, edi
je 0x14002a03c
mov rcx, qword [rbx + 0x520]
mov edx, 0x1000
mov rcx, qword [rcx + rsi*8]
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_strnlen]
lea edx, [rax + 1]
mov r8, qword [rbx + 0x520]
movsxd rcx, r15d
shl rcx, 6
add rcx, 4
add rcx, r12
mov r8, qword [r8 + rsi*8]
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_strcpy_s]
inc r15d
inc r14d
inc rsi
cmp r14d, dword [rbx + 0x518]
jl 0x140029fe0
cmp qword [rbx + 0x510], 0
je 0x14002a080
mov qword [rsp + 0x28], r13
mov dword [rsp + 0x20], edi
lea r9, str._tSaving_preferred_list_with_actual__d_entries_for_user:__s
or r8, 0xffffffffffffffff
mov edx, 0x800
lea rcx, [rsp + 0x380]
call fcn.140008c50
lea rdx, [rsp + 0x380]
mov rcx, qword [rbx + 0x510]
call fcn.140025be0
mov r9d, 1
xor r8d, r8d
mov rdx, r12
mov rcx, rbx
call fcn.14002fd60
mov esi, eax
cmp eax, 0x43297
jne 0x14002a1f7
cmp edi, dword [rbx + 0x518]
jne 0x14002a1a9
or r9, 0xffffffffffffffff
mov r8, qword [rsp + 0x48]
mov edx, 0x104
lea rcx, [rsp + 0x270]
call qword [sym.imp.api_ms_win_crt_multibyte_l1_1_0.dll__mbsnbcpy_s]
lea rdx, str.PreferredProfile.lst
lea rcx, [rsp + 0x270]
call qword [sym.imp.SHLWAPI.dll_PathAppendA]
lea rcx, [rsp + 0x270]
call qword [sym.imp.SHLWAPI.dll_PathFileExistsA]
mov rcx, qword [rbx + 0x510]
test eax, eax
jne 0x14002a153
test rcx, rcx
je 0x14002a13a
lea rax, [rsp + 0x270]
mov qword [rsp + 0x20], rax
lea r9, str._tPreferred_list_file_named__s_does_not_exist.
or r8, 0xffffffffffffffff
mov edx, 0x800
lea rcx, [rsp + 0x380]
call fcn.140008c50
lea rdx, [rsp + 0x380]
mov rcx, qword [rbx + 0x510]
call fcn.140025be0
mov dword [rsp + 0x34], 0xffffffff
lea rdx, [0x14008dd50]
lea rcx, [rsp + 0x34]
call sub.VCRUNTIME140.dll__CxxThrowException
test rcx, rcx
je 0x14002a196
lea rax, [rsp + 0x270]
mov qword [rsp + 0x20], rax
lea r9, str._tDeleting_preferred_list_file_named__s
or r8, 0xffffffffffffffff
mov edx, 0x800
lea rcx, [rsp + 0x380]
call fcn.140008c50
lea rdx, [rsp + 0x380]
mov rcx, qword [rbx + 0x510]
call fcn.140025be0
lea rcx, [rsp + 0x270]
call qword [sym.imp.KERNEL32.dll_DeleteFileA]
jmp 0x14002a264
cmp qword [rbx + 0x510], 0
je 0x14002a264
lea rax, [rsp + 0x270]
mov qword [rsp + 0x20], rax
lea r9, str._tNot_deleting_preferred_list_file_named__s_because_not_all_profiles_are_converted.
or r8, 0xffffffffffffffff
mov edx, 0x800
lea rcx, [rsp + 0x380]
call fcn.140008c50
lea rdx, [rsp + 0x380]
mov rcx, qword [rbx + 0x510]
call fcn.140025be0
jmp 0x14002a264
mov rcx, qword [rbx + 0x510]
test rcx, rcx
je 0x14002a264
cmp eax, 0x800432ae
je 0x14002a257
cmp eax, 0x800432af
je 0x14002a249
cmp eax, 0x800432b2
je 0x14002a23b
cmp eax, 0x80043a9d
je 0x14002a22d
lea rdx, str._t_FAILED__Unknown_fatal_error_occured_while_saving_the_preferred_profile_list.
call fcn.140025be0
jmp 0x14002a264
lea rdx, str._t_FAILED__The_profile_database_is_locked_by_another_user.
call fcn.140025be0
jmp 0x14002a264
lea rdx, str._t_FAILED__The_data_in_one_or_more_parameters_are_invalid.
call fcn.140025be0
jmp 0x14002a264
lea rdx, str._t_FAILED__Unable_to_load_function_SavePreferredProfileList___from_PfMgrApi.dll_dynamic_library.
call fcn.140025be0
jmp 0x14002a264
lea rdx, str._t_FAILED__Unable_to_load_the_PfMgrApi.dll_dynamic_library.
call fcn.140025be0
nop
jmp 0x14002a274
mov rcx, rbx
call fcn.14002bbd0
mov rcx, r12
call sub.mfc140.dll_Ordinal_266
mov rcx, qword [rbx + 0x510]
test rcx, rcx
je 0x14002a2bf
mov edx, 1
call fcn.140025ed0
lea rdx, str._t_CProfileConverter::ConvertPreferredProfileList___completed_
mov rcx, qword [rbx + 0x510]
call fcn.140025be0
mov edx, 1
mov rcx, qword [rbx + 0x510]
call fcn.140025ed0
nop
mov eax, esi
mov rcx, qword [rsp + 0xb80]
xor rcx, rsp
call fcn.140059ef0
add rsp, 0xb90
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
ret