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

Disassembly:
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0xbd0
mov qword [rsp + 0x90], 0xfffffffffffffffe
mov rax, qword [0x140092690]
xor rax, rsp
mov qword [rsp + 0xbc0], rax
mov rdi, r8
mov qword [rsp + 0x48], r8
mov rsi, rdx
mov qword [rsp + 0x78], rdx
mov rbx, rcx
mov qword [rsp + 0x70], rcx
mov qword [rsp + 0x88], rcx
mov qword [rsp + 0x80], rdx
lea rax, vtable.CEncrypter.0
mov qword [rsp + 0xa0], rax
mov r14d, 0x43297
mov dword [rsp + 0x38], r14d
test r8, r8
jne 0x1400288b2
mov eax, 0x800432b1
jmp 0x140028fc1
mov rcx, qword [rcx + 0x510]
test rcx, rcx
je 0x14002895d
mov edx, 1
call fcn.140025ed0
lea rdx, str._t_CProfileConverter::ConvertCommonPreferredProfileList___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 0x14002895d
mov edx, 1
mov rcx, qword [rbx + 0x510]
call fcn.140025ed0
lea rdx, str._tCProfileConverter::ConvertCommonPreferredProfileList_____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::ConvertCommonPreferredProfileList___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 0x140028fc1
or r9, 0xffffffffffffffff
mov r8, rsi
mov edx, 0x104
lea rcx, [rsp + 0x2b0]
call qword [sym.imp.api_ms_win_crt_multibyte_l1_1_0.dll__mbsnbcpy_s]
lea rdx, str.PreferredProfile.lst
lea rcx, [rsp + 0x2b0]
call qword [sym.imp.SHLWAPI.dll_PathAppendA]
lea rcx, [rsp + 0x2b0]
call qword [sym.imp.SHLWAPI.dll_PathFileExistsA]
test eax, eax
je 0x140028953
xor r8d, r8d
mov rdx, rdi
mov rcx, rbx
call fcn.14002df70
cmp eax, r14d
je 0x1400289bb
mov eax, 0x80043298
jmp 0x140028fc1
xor esi, esi
mov ecx, esi
mov qword [rsp + 0x40], rcx
mov qword [rsp + 0x60], rcx
mov edx, esi
mov qword [rsp + 0x50], rdx
mov qword [rsp + 0x68], rdx
mov byte [rsp + 0x30], cl
mov byte [rsp + 0x31], cl
mov r12d, esi
mov dword [rsp + 0x3c], esi
mov r13d, esi
mov dword [rsp + 0x34], esi
mov eax, dword [rbx + 0x518]
test eax, eax
jle 0x140028c26
mov edi, esi
mov rdx, qword [rbx + 0x528]
mov r8d, eax
cmp byte [rdx], 0
je 0x140028a30
mov rax, qword [rbx + 0x530]
mov ecx, dword [rdi + rax]
test cl, 4
je 0x140028a23
inc r12d
mov dword [rsp + 0x3c], r12d
jmp 0x140028a30
test cl, 2
je 0x140028a30
inc r13d
mov dword [rsp + 0x34], r13d
inc rdx
add rdi, 4
sub r8, 1
jne 0x140028a05
test r12d, r12d
jle 0x140028b22
movsxd rcx, r12d
shl rcx, 6
add rcx, 4
call sub.mfc140.dll_Ordinal_265
mov rcx, rax
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x60], rax
test rax, rax
jne 0x140028aa6
mov rcx, qword [rbx + 0x510]
test rcx, rcx
je 0x140028a8d
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
lea rax, vtable.CEncrypter.0
mov qword [rsp + 0xa0], rax
mov eax, 0x80043298
jmp 0x140028fc1
xor eax, eax
mov qword [rcx], rax
mov r14d, esi
mov r13d, esi
mov r15d, esi
cmp dword [rbx + 0x518], eax
jle 0x140028b1d
mov rdi, rsi
nop
mov rax, qword [rbx + 0x528]
cmp byte [rdi + rax], 0
je 0x140028b0e
cmp r14d, r12d
je 0x140028b1d
mov rax, qword [rbx + 0x530]
test byte [rax + rdi*4], 4
je 0x140028b0b
mov rax, qword [rbx + 0x520]
mov r8, qword [rax + rdi*8]
movsxd rax, r13d
shl rax, 6
add rax, 4
add rcx, rax
mov edx, 0x40
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_strcpy_s]
inc r13d
mov rcx, qword [rsp + 0x40]
inc r14d
inc r15d
inc rdi
cmp r15d, dword [rbx + 0x518]
jl 0x140028ac0
mov r13d, dword [rsp + 0x34]
test r13d, r13d
jle 0x140028c1c
movsxd r14, r13d
shl r14, 6
lea rcx, [r14 + 4]
call sub.mfc140.dll_Ordinal_265
mov rdx, rax
mov qword [rsp + 0x50], rax
mov qword [rsp + 0x68], rax
test rax, rax
jne 0x140028b95
mov rcx, qword [rbx + 0x510]
test rcx, rcx
je 0x140028b71
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
mov rcx, qword [rsp + 0x40]
call sub.mfc140.dll_Ordinal_266
nop
lea rax, vtable.CEncrypter.0
mov qword [rsp + 0xa0], rax
mov eax, 0x80043298
jmp 0x140028fc1
mov rcx, qword [rsp + 0x40]
test rcx, rcx
je 0x140028baa
mov rdi, rcx
xor eax, eax
lea rcx, [r14 + 4]
rep stosb byte [rdi], al
mov r15d, esi
mov r14d, esi
cmp dword [rbx + 0x518], esi
jle 0x140028c1c
mov rdi, rsi
nop dword [rax + rax]
mov rax, qword [rbx + 0x528]
cmp byte [rdi + rax], 0
je 0x140028c0d
cmp esi, r13d
je 0x140028c1c
mov rax, qword [rbx + 0x530]
test byte [rax + rdi*4], 2
je 0x140028c0b
mov rax, qword [rbx + 0x520]
mov r8, qword [rax + rdi*8]
movsxd rax, r15d
shl rax, 6
lea rcx, [rdx + 4]
add rcx, rax
mov edx, 0x40
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_strcpy_s]
inc r15d
mov rdx, qword [rsp + 0x50]
inc esi
inc r14d
inc rdi
cmp r14d, dword [rbx + 0x518]
jl 0x140028bc0
mov rdi, qword [rsp + 0x48]
mov r14d, dword [rsp + 0x38]
cmp qword [rbx + 0x510], 0
je 0x140028ca6
mov qword [rsp + 0x28], rdi
mov dword [rsp + 0x20], r12d
lea r9, str._tSaving_preferred_PRELOGON_profile_list_with_actual__d_entries_for_user:__s
or r8, 0xffffffffffffffff
mov edx, 0x800
lea rcx, [rsp + 0x3c0]
call fcn.140008c50
lea rdx, [rsp + 0x3c0]
mov rcx, qword [rbx + 0x510]
call fcn.140025be0
mov qword [rsp + 0x28], rdi
mov dword [rsp + 0x20], r13d
lea r9, str._tSaving_preferred_PERSISTENT_profile_list_with_actual__d_entries_for_user:__s
or r8, 0xffffffffffffffff
mov edx, 0x800
lea rcx, [rsp + 0x3c0]
call fcn.140008c50
lea rdx, [rsp + 0x3c0]
mov rcx, qword [rbx + 0x510]
call fcn.140025be0
test r12d, r12d
jle 0x140028d61
cmp byte [rbx + 0x558], 0
jne 0x140028d61
mov r9d, 4
xor r8d, r8d
mov r15, qword [rsp + 0x40]
mov rdx, r15
mov rcx, rbx
call fcn.14002fd60
mov r14d, eax
cmp eax, 0x43297
jne 0x140028ceb
mov sil, 1
mov byte [rbx + 0x558], sil
jmp 0x140028d69
xor sil, sil
mov byte [rsp + 0x30], sil
mov rcx, qword [rbx + 0x510]
test rcx, rcx
je 0x140028d6e
cmp eax, 0x800432ae
je 0x140028d53
cmp eax, 0x800432af
je 0x140028d45
cmp eax, 0x800432b2
je 0x140028d37
cmp eax, 0x80043a9d
je 0x140028d29
lea rdx, str._t_FAILED__Unknown_fatal_error_occured_while_saving_the_preferred_profile_list.
call fcn.140025be0
jmp 0x140028d6e
lea rdx, str._t_FAILED__The_profile_database_is_locked_by_another_user.
call fcn.140025be0
jmp 0x140028d6e
lea rdx, str._t_FAILED__The_data_in_one_or_more_parameters_are_invalid.
call fcn.140025be0
jmp 0x140028d6e
lea rdx, str._t_FAILED__Unable_to_load_function_SavePreferredProfileList___from_PfMgrApi.dll_dynamic_library.
call fcn.140025be0
jmp 0x140028d6e
lea rdx, str._t_FAILED__Unable_to_load_the_PfMgrApi.dll_dynamic_library.
call fcn.140025be0
jmp 0x140028d6e
mov sil, 1
mov r15, qword [rsp + 0x40]
mov byte [rsp + 0x30], sil
test r13d, r13d
jle 0x140028e29
cmp byte [rbx + 0x559], 0
jne 0x140028e29
mov r9d, 2
xor r8d, r8d
mov r12, qword [rsp + 0x50]
mov rdx, r12
mov rcx, rbx
call fcn.14002fd60
mov r14d, eax
cmp eax, 0x43297
jne 0x140028db3
mov dil, 1
mov byte [rbx + 0x559], dil
jmp 0x140028e31
xor dil, dil
mov byte [rsp + 0x31], dil
mov rcx, qword [rbx + 0x510]
test rcx, rcx
je 0x140028e36
cmp eax, 0x800432ae
je 0x140028e1b
cmp eax, 0x800432af
je 0x140028e0d
cmp eax, 0x800432b2
je 0x140028dff
cmp eax, 0x80043a9d
je 0x140028df1
lea rdx, str._t_FAILED__Unknown_fatal_error_occured_while_saving_the_preferred_profile_list.
call fcn.140025be0
jmp 0x140028e36
lea rdx, str._t_FAILED__The_profile_database_is_locked_by_another_user.
call fcn.140025be0
jmp 0x140028e36
lea rdx, str._t_FAILED__The_data_in_one_or_more_parameters_are_invalid.
call fcn.140025be0
jmp 0x140028e36
lea rdx, str._t_FAILED__Unable_to_load_function_SavePreferredProfileList___from_PfMgrApi.dll_dynamic_library.
call fcn.140025be0
jmp 0x140028e36
lea rdx, str._t_FAILED__Unable_to_load_the_PfMgrApi.dll_dynamic_library.
call fcn.140025be0
jmp 0x140028e36
mov dil, 1
mov r12, qword [rsp + 0x50]
mov byte [rsp + 0x31], dil
mov r8, qword [rsp + 0x78]
jmp 0x140028e63
test sil, sil
je 0x140028f23
test dil, dil
je 0x140028f23
or r9, 0xffffffffffffffff
mov edx, 0x104
lea rcx, [rsp + 0x2b0]
call qword [sym.imp.api_ms_win_crt_multibyte_l1_1_0.dll__mbsnbcpy_s]
lea rdx, str.PreferredProfile.lst
lea rcx, [rsp + 0x2b0]
call qword [sym.imp.SHLWAPI.dll_PathAppendA]
lea rcx, [rsp + 0x2b0]
call qword [sym.imp.SHLWAPI.dll_PathFileExistsA]
mov rdi, qword [rsp + 0x88]
mov rdi, qword [rdi + 0x510]
test eax, eax
jne 0x140028ed0
test rdi, rdi
jne 0x140028fe4
jmp 0x140029022
test rdi, rdi
je 0x140028f13
lea rax, [rsp + 0x2b0]
mov qword [rsp + 0x20], rax
lea r9, str._tDeleting_preferred_list_file_named__s
or r8, 0xffffffffffffffff
mov edx, 0x800
lea rcx, [rsp + 0x3c0]
call fcn.140008c50
lea rdx, [rsp + 0x3c0]
mov rcx, qword [rbx + 0x510]
call fcn.140025be0
lea rcx, [rsp + 0x2b0]
call qword [sym.imp.KERNEL32.dll_DeleteFileA]
jmp 0x140028f6b
cmp qword [rbx + 0x510], 0
je 0x140028f6b
lea rax, [rsp + 0x2b0]
mov qword [rsp + 0x20], rax
lea r9, str._tNot_deleting_preferred_list_file_named__s_because_it_is_NOT_converted.
or r8, 0xffffffffffffffff
mov edx, 0x800
lea rcx, [rsp + 0x3c0]
call fcn.140008c50
lea rdx, [rsp + 0x3c0]
mov rcx, qword [rbx + 0x510]
call fcn.140025be0
mov rcx, rbx
call fcn.14002bbd0
mov rcx, r15
call sub.mfc140.dll_Ordinal_266
mov rcx, r12
call sub.mfc140.dll_Ordinal_266
mov rcx, qword [rbx + 0x510]
test rcx, rcx
je 0x140028fbe
mov edx, 1
call fcn.140025ed0
lea rdx, str._t_CProfileConverter::ConvertCommonPreferredProfileList___completed_
mov rcx, qword [rbx + 0x510]
call fcn.140025be0
mov edx, 1
mov rcx, qword [rbx + 0x510]
call fcn.140025ed0
nop
mov eax, r14d
mov rcx, qword [rsp + 0xbc0]
xor rcx, rsp
call fcn.140059ef0
add rsp, 0xbd0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
ret
lea rax, [rsp + 0x2b0]
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 + 0x3c0]
call fcn.140008c50
lea rdx, [rsp + 0x3c0]
mov rcx, qword [rbx + 0x510]
call fcn.140025be0
mov dword [rsp + 0x58], 0xffffffff
lea rdx, [0x14008dd50]
lea rcx, [rsp + 0x58]
call sub.VCRUNTIME140.dll__CxxThrowException
int3