Function at 0x14002d2a0
Capabilities:
Check if file exists
Copy file
Create directory
Delete file
Enumerate files on windows
Get common file path

Disassembly:
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
mov eax, 0x1170
call fcn.14005a020
sub rsp, rax
mov qword [rsp + 0x70], 0xfffffffffffffffe
mov rax, qword [0x140092690]
xor rax, rsp
mov qword [rsp + 0x1160], rax
mov r12, r8
mov rbx, rdx
mov rsi, rcx
mov qword [rsp + 0x68], rcx
xor edx, edx
mov r15d, 0x43297
mov r8d, 0x800
lea rcx, [rsp + 0x960]
call sub.VCRUNTIME140.dll_memset
nop
mov rcx, qword [rsi + 0x510]
mov edi, 1
test rcx, rcx
je 0x14002d337
mov edx, edi
call fcn.140025ed0
lea rdx, str._t_CProfileConverter::FixWin7Migration___started_
mov rcx, qword [rsi + 0x510]
call fcn.140025be0
mov edx, edi
mov rcx, qword [rsi + 0x510]
call fcn.140025ed0
xor edx, edx
mov r8d, Ordinal_265
lea rcx, [rsp + 0x300]
call sub.VCRUNTIME140.dll_memset
xor edx, edx
mov r8d, Ordinal_265
lea rcx, [rsp + 0x520]
call sub.VCRUNTIME140.dll_memset
xor edx, edx
mov r8d, Ordinal_265
lea rcx, [rsp + 0x740]
call sub.VCRUNTIME140.dll_memset
xor r14d, r14d
lea rax, [rsp + 0x740]
mov qword [rsp + 0x20], rax
xor r9d, r9d
xor r8d, r8d
mov edx, 0x8026
xor ecx, ecx
call qword [sym.imp.SHFOLDER.dll_SHGetFolderPathA]
test eax, eax
js 0x14002daf7
lea r8, [rsp + 0x740]
mov edx, 0x104
lea rcx, [rsp + 0x300]
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_strcpy_s]
or r9, 0xffffffffffffffff
lea r8, [0x140067a10]
mov edx, 0x104
lea rcx, [rsp + 0x300]
call qword [sym.imp.api_ms_win_crt_multibyte_l1_1_0.dll__mbsnbcat_s]
mov rdx, rbx
lea rcx, [rsp + 0x300]
call qword [sym.imp.SHLWAPI.dll_PathAppendA]
lea rcx, [rsp + 0x300]
call qword [sym.imp.SHLWAPI.dll_PathFileExistsA]
test eax, eax
je 0x14002daf7
lea r8, [rsp + 0x740]
mov edx, 0x104
lea rcx, [rsp + 0x520]
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_strcpy_s]
or r9, 0xffffffffffffffff
lea r8, [0x140067a10]
mov edx, 0x104
lea rcx, [rsp + 0x520]
call qword [sym.imp.api_ms_win_crt_multibyte_l1_1_0.dll__mbsnbcat_s]
mov rdx, r12
lea rcx, [rsp + 0x520]
call qword [sym.imp.SHLWAPI.dll_PathAppendA]
lea rcx, [rsp + 0x520]
call qword [sym.imp.SHLWAPI.dll_PathFileExistsA]
test eax, eax
jne 0x14002daf7
cmp qword [rsi + 0x510], r14
je 0x14002d4a8
lea rax, [rsp + 0x300]
mov qword [rsp + 0x20], rax
lea r9, str._t_CProfileConverter::FixWin7Migration____s_found._Searching_for_incorrectly_migrated_CP_Profiles.
or r8, 0xffffffffffffffff
mov edx, 0x800
lea rcx, [rsp + 0x960]
call fcn.140008c50
lea rdx, [rsp + 0x960]
mov rcx, qword [rsi + 0x510]
call fcn.140025be0
mov ecx, 0x28
call sub.mfc140.dll_Ordinal_1485
mov qword [rsp + 0x58], rax
test rax, rax
je 0x14002d4ca
mov rcx, rax
call qword [sym.imp.PfMgrApi.dll_public:_void___cdecl_CMsProfileXml::constructor_void____ptr64]
mov r12, rax
jmp 0x14002d4cd
mov r12, r14
test r12, r12
jne 0x14002d51f
mov rcx, qword [rsi + 0x510]
test rcx, rcx
je 0x14002d506
mov edx, edi
call fcn.140025ed0
lea rdx, str._t_CProfileConverter::FixWin7Migration__:_ERROR___Failed_to_allocate_the_XML_Profile_Parser._Exiting.
mov rcx, qword [rsi + 0x510]
call fcn.140025be0
mov edx, edi
mov rcx, qword [rsi + 0x510]
call fcn.140025ed0
mov dword [rsp + 0x60], 0x800432b4
lea rdx, [0x14008d730]
lea rcx, [rsp + 0x60]
call sub.VCRUNTIME140.dll__CxxThrowException
mov rcx, r12
call qword [sym.imp.PfMgrApi.dll_public:_void___cdecl_CMsProfileXml::Initialize_void____ptr64]
lea rcx, [rsp + 0x38]
call qword [sym.imp.mfc140.dll_Ordinal_316]
nop
lea rcx, [rsp + 0x50]
call qword [sym.imp.mfc140.dll_Ordinal_316]
nop
lea rcx, [rsp + 0x48]
call qword [sym.imp.mfc140.dll_Ordinal_316]
nop
mov dword [rsp + 0x30], r14d
mov dword [rsp + 0x40], r14d
lea r8, [rsp + 0x300]
lea rdx, str._s.xml
lea rcx, [rsp + 0x48]
call qword [sym.imp.mfc140.dll_Ordinal_4648]
lea rcx, [rsp + 0x48]
call qword [sym.imp.mfc140.dll_Ordinal_1639]
mov rcx, rax
lea rdx, [rsp + 0x80]
call qword [sym.imp.KERNEL32.dll_FindFirstFileA]
mov r13, rax
cmp rax, 0xffffffffffffffff
je 0x14002d645
nop dword [rax]
lea r9, [rsp + 0xac]
lea r8, [rsp + 0x300]
lea rdx, [0x140065c94]
lea rcx, [rsp + 0x38]
call qword [sym.imp.mfc140.dll_Ordinal_4648]
lea rcx, [rsp + 0x38]
call qword [sym.imp.mfc140.dll_Ordinal_1639]
mov rdx, rax
lea r9, [rsp + 0x30]
lea r8, [rsp + 0x40]
mov rcx, r12
call fcn.140026a00
mov eax, dword [rsp + 0x30]
test eax, eax
cmovne r14d, edi
cmp dword [rsp + 0x40], 0
je 0x14002d5f7
test eax, eax
je 0x14002d60b
lea rcx, [rsp + 0x38]
call qword [sym.imp.mfc140.dll_Ordinal_1639]
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_DeleteFileA]
lea rdx, [rsp + 0x80]
mov rcx, r13
call qword [sym.imp.KERNEL32.dll_FindNextFileA]
test eax, eax
jne 0x14002d5a0
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
mov rcx, r13
call qword [sym.imp.KERNEL32.dll_FindClose]
mov r13d, 0x80043298
cmp ebx, 0x12
cmovne r15d, r13d
test r14d, r14d
jne 0x14002d67f
jmp 0x14002d64b
mov r13d, 0x80043298
mov rcx, qword [rsi + 0x510]
test rcx, rcx
je 0x14002d67f
mov edx, edi
call fcn.140025ed0
lea rdx, str._t_CProfileConverter::FixWin7Migration__:_No_CP_Profiles_found_in_the_WLAN_Backup._Checking_for_CP_Profile_migration_data.
mov rcx, qword [rsi + 0x510]
call fcn.140025be0
mov edx, edi
mov rcx, qword [rsi + 0x510]
call fcn.140025ed0
xor edx, edx
mov r8d, Ordinal_265
lea rcx, [rsp + 0x630]
call sub.VCRUNTIME140.dll_memset
xor edx, edx
mov r8d, Ordinal_265
lea rcx, [rsp + 0x410]
call sub.VCRUNTIME140.dll_memset
xor edx, edx
mov r8d, Ordinal_265
lea rcx, [rsp + 0x850]
call sub.VCRUNTIME140.dll_memset
lea rax, [rsp + 0x850]
mov qword [rsp + 0x20], rax
xor r9d, r9d
xor r8d, r8d
lea edx, [r9 + 0x23]
xor ecx, ecx
call qword [sym.imp.SHFOLDER.dll_SHGetFolderPathA]
test eax, eax
js 0x14002dad1
lea r8, [rsp + 0x850]
mov edx, 0x104
lea rcx, [rsp + 0x630]
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_strcpy_s]
or r9, 0xffffffffffffffff
lea r8, [0x140067a10]
mov edx, 0x104
lea rcx, [rsp + 0x630]
call qword [sym.imp.api_ms_win_crt_multibyte_l1_1_0.dll__mbsnbcat_s]
lea rdx, str.MicrosoftWlansvcmigrationdata
lea rcx, [rsp + 0x630]
call qword [sym.imp.SHLWAPI.dll_PathAppendA]
lea r8, [rsp + 0x630]
mov edx, 0x104
lea rcx, [rsp + 0x410]
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_strcpy_s]
or r9, 0xffffffffffffffff
lea r8, [0x140067a10]
mov edx, 0x104
lea rcx, [rsp + 0x410]
call qword [sym.imp.api_ms_win_crt_multibyte_l1_1_0.dll__mbsnbcat_s]
lea rdx, str.profilesInterfaces
lea rcx, [rsp + 0x410]
call qword [sym.imp.SHLWAPI.dll_PathAppendA]
lea rcx, [rsp + 0x410]
call qword [sym.imp.SHLWAPI.dll_PathFileExistsA]
test eax, eax
jne 0x14002d7f5
mov rcx, qword [rsi + 0x510]
test rcx, rcx
je 0x14002d7c8
mov edx, edi
call fcn.140025ed0
lea rdx, str._t_CProfileConverter::FixWin7Migration__:_Migration_Profile_Archive_not_found._Exiting.
mov rcx, qword [rsi + 0x510]
call fcn.140025be0
mov edx, edi
mov rcx, qword [rsi + 0x510]
call fcn.140025ed0
nop
lea rcx, [rsp + 0x48]
call qword [sym.imp.mfc140.dll_Ordinal_1032]
nop
lea rcx, [rsp + 0x50]
call qword [sym.imp.mfc140.dll_Ordinal_1032]
nop
lea rcx, [rsp + 0x38]
call qword [sym.imp.mfc140.dll_Ordinal_1032]
mov eax, 0x43297
jmp 0x14002db3a
mov rdx, r12
lea rcx, [rsp + 0x410]
call fcn.14002fe90
mov rcx, qword [rsi + 0x510]
test eax, eax
jne 0x14002d86b
test rcx, rcx
je 0x14002d83e
mov edx, edi
call fcn.140025ed0
lea rdx, str._t_CProfileConverter::FixWin7Migration__:_No_CP_Profiles_found_in_Migration_Profile_Archive._Exiting.
mov rcx, qword [rsi + 0x510]
call fcn.140025be0
mov edx, edi
mov rcx, qword [rsi + 0x510]
call fcn.140025ed0
nop
lea rcx, [rsp + 0x48]
call qword [sym.imp.mfc140.dll_Ordinal_1032]
nop
lea rcx, [rsp + 0x50]
call qword [sym.imp.mfc140.dll_Ordinal_1032]
nop
lea rcx, [rsp + 0x38]
call qword [sym.imp.mfc140.dll_Ordinal_1032]
mov eax, 0x43297
jmp 0x14002db3a
test rcx, rcx
je 0x14002d898
mov edx, edi
call fcn.140025ed0
lea rdx, str._t_CProfileConverter::FixWin7Migration__:_CP_Profiles_found_in_the_Migration_Profile_Archive._Reimporting.
mov rcx, qword [rsi + 0x510]
call fcn.140025be0
mov edx, edi
mov rcx, qword [rsi + 0x510]
call fcn.140025ed0
xor edx, edx
mov rcx, rsi
call fcn.14002eb40
mov edx, edi
mov rcx, rsi
call fcn.14002eb40
xor edx, edx
lea rcx, [rsp + 0x520]
call qword [sym.imp.KERNEL32.dll_CreateDirectoryA]
lea r8, [rsp + 0x410]
lea rdx, str._s
lea rcx, [rsp + 0x48]
call qword [sym.imp.mfc140.dll_Ordinal_4648]
lea rcx, [rsp + 0x48]
call qword [sym.imp.mfc140.dll_Ordinal_1639]
mov rcx, rax
lea rdx, [rsp + 0x1c0]
call qword [sym.imp.KERNEL32.dll_FindFirstFileA]
mov r14, rax
cmp rax, 0xffffffffffffffff
je 0x14002dad1
nop
test byte [rsp + 0x1c0], 0x10
je 0x14002daa0
lea r9, [rsp + 0x1ec]
lea r8, [rsp + 0x410]
lea rdx, [0x140065c94]
lea rcx, [rsp + 0x50]
call qword [sym.imp.mfc140.dll_Ordinal_4648]
mov r8, qword [rsp + 0x50]
lea rdx, str._s.xml
lea rcx, [rsp + 0x48]
call qword [sym.imp.mfc140.dll_Ordinal_4648]
lea rcx, [rsp + 0x48]
call qword [sym.imp.mfc140.dll_Ordinal_1639]
mov rcx, rax
lea rdx, [rsp + 0x80]
call qword [sym.imp.KERNEL32.dll_FindFirstFileA]
mov rsi, rax
cmp rax, 0xffffffffffffffff
je 0x14002daa0
lea r9, [rsp + 0xac]
mov r8, qword [rsp + 0x50]
lea rdx, [0x140065c94]
lea rcx, [rsp + 0x38]
call qword [sym.imp.mfc140.dll_Ordinal_4648]
lea rcx, [rsp + 0x38]
call qword [sym.imp.mfc140.dll_Ordinal_1639]
mov rdx, rax
lea r9, [rsp + 0x30]
lea r8, [rsp + 0x40]
mov rcx, r12
call fcn.140026a00
cmp dword [rsp + 0x40], 0
je 0x14002da6f
lea rcx, [rsp + 0x58]
call qword [sym.imp.mfc140.dll_Ordinal_316]
nop
lea r9, [rsp + 0xac]
lea rdx, [0x140065c94]
lea rcx, [rsp + 0x58]
cmp dword [rsp + 0x30], 0
je 0x14002da2d
lea r8, [rsp + 0x520]
call qword [sym.imp.mfc140.dll_Ordinal_4648]
lea rcx, [rsp + 0x58]
call qword [sym.imp.mfc140.dll_Ordinal_1639]
mov rbx, rax
lea rcx, [rsp + 0x38]
call qword [sym.imp.mfc140.dll_Ordinal_1639]
mov rcx, rax
mov r8d, edi
mov rdx, rbx
call qword [sym.imp.KERNEL32.dll_CopyFileA]
lea rcx, [rsp + 0x38]
call qword [sym.imp.mfc140.dll_Ordinal_1639]
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_DeleteFileA]
jmp 0x14002da64
lea r8, [rsp + 0x300]
call qword [sym.imp.mfc140.dll_Ordinal_4648]
lea rcx, [rsp + 0x58]
call qword [sym.imp.mfc140.dll_Ordinal_1639]
mov rbx, rax
lea rcx, [rsp + 0x38]
call qword [sym.imp.mfc140.dll_Ordinal_1639]
mov rcx, rax
mov r8d, edi
mov rdx, rbx
call qword [sym.imp.KERNEL32.dll_CopyFileA]
nop
lea rcx, [rsp + 0x58]
call qword [sym.imp.mfc140.dll_Ordinal_1032]
lea rdx, [rsp + 0x80]
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_FindNextFileA]
test eax, eax
jne 0x14002d970
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_FindClose]
cmp ebx, 0x12
cmovne r15d, r13d
lea rdx, [rsp + 0x1c0]
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_FindNextFileA]
test eax, eax
jne 0x14002d900
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_FindClose]
cmp ebx, 0x12
cmovne r15d, r13d
lea rcx, [rsp + 0x48]
call qword [sym.imp.mfc140.dll_Ordinal_1032]
nop
lea rcx, [rsp + 0x50]
call qword [sym.imp.mfc140.dll_Ordinal_1032]
nop
lea rcx, [rsp + 0x38]
call qword [sym.imp.mfc140.dll_Ordinal_1032]
nop
jmp 0x14002db37
mov rcx, qword [rsi + 0x510]
test rcx, rcx
je 0x14002db2b
mov edx, edi
call fcn.140025ed0
lea rdx, str._t_CProfileConverter::FixWin7Migration__:_Win7_Inbox_driver_migration_issue_not_detected._Exiting.
mov rcx, qword [rsi + 0x510]
call fcn.140025be0
mov edx, edi
mov rcx, qword [rsi + 0x510]
call fcn.140025ed0
mov eax, 0x43297
jmp 0x14002db3a
mov eax, r15d
mov rcx, qword [rsp + 0x1160]
xor rcx, rsp
call fcn.140059ef0
add rsp, 0x1170
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
ret