Function at 0x140167150
Capabilities:
Check if file exists
Create directory
Delete directory
Delete file
Get common file path
Get file attributes
Move file
Set file attributes

Disassembly:
sub rsp, 0xd48
mov qword [rsp + 0x30], 0xfffffffffffffffe
mov rax, qword [0x14042d950]
xor rax, rsp
mov qword [rsp + Ordinal_3378], rax
mov word [rsp + 0x130], 0
xor edx, edx
mov r8d, reloc.MFC80U.DLL_Ordinal_1022
lea rcx, [rsp + 0x132]
call sub.ntdll.dll_memset
mov r8d, 0x400
lea rdx, [rsp + 0x130]
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
test eax, eax
je 0x14016770b
lea rcx, [rsp + 0x100]
call qword [sym.imp.MSVCP80.dll_public:_void___cdecl_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::constructor_void____ptr64]
nop
lea rdx, [rsp + 0x130]
lea rcx, [rsp + 0x100]
call qword [reloc.MSVCP80.dll___4__basic_string__WU__char_traits__W_std__V__allocator__W_2__std__QEAAAEAV01_PEB_W_Z]
mov r8, qword [sym.imp.MSVCP80.dll_unsigned_long_long_unsigned___int64__const_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::npos]
mov r8, qword [r8]
lea rdx, [0x140362eb4]
lea rcx, [rsp + 0x100]
call qword [sym.imp.MSVCP80.dll_public:_unsigned_long_long_unsigned___int64____cdecl_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::find_last_of_wchar_t_const____ptr64__unsigned_long_long_unsigned___int64__const___ptr64]
lea r9, [rax + 1]
xor r8d, r8d
lea rdx, [rsp + 0x38]
lea rcx, [rsp + 0x100]
call qword [sym.imp.MSVCP80.dll_public:_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t_____cdecl_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::substr_unsigned_long_long_unsigned___int64___unsigned_long_long_unsigned___int64_____ptr64]
nop
mov rdx, rax
lea rcx, [rsp + 0x100]
call qword [reloc.MSVCP80.dll___4__basic_string__WU__char_traits__W_std__V__allocator__W_2__std__QEAAAEAV01_AEBV01__Z]
nop
lea rcx, [rsp + 0x38]
call qword [sym.imp.MSVCP80.dll_public:_void___cdecl_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::destructor_void____ptr64]
lea rcx, [rsp + 0xd8]
call qword [sym.imp.MSVCP80.dll_public:_void___cdecl_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::constructor_void____ptr64]
nop
lea rdx, [rsp + 0x100]
lea rcx, [rsp + 0xd8]
call qword [reloc.MSVCP80.dll___4__basic_string__WU__char_traits__W_std__V__allocator__W_2__std__QEAAAEAV01_AEBV01__Z]
lea rdx, [0x140362f08]
lea rcx, [rsp + 0xd8]
call qword [sym.imp.MSVCP80.dll_public:_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t______ptr64___cdecl_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::operator_wchar_t_const____ptr64____ptr64]
lea rcx, [rsp + 0xe0]
cmp qword [rsp + 0xf8], 8
cmovae rcx, qword [rsp + 0xe0]
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
jne 0x1401672ae
lea rcx, [rsp + 0xd8]
call qword [sym.imp.MSVCP80.dll_public:_void___cdecl_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::destructor_void____ptr64]
nop
lea rcx, [rsp + 0x100]
call qword [sym.imp.MSVCP80.dll_public:_void___cdecl_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::destructor_void____ptr64]
xor al, al
jmp 0x14016770b
mov word [rsp + 0x530], 0
xor edx, edx
mov r8d, reloc.MFC80U.DLL_Ordinal_1022
lea rcx, [rsp + 0x532]
call sub.ntdll.dll_memset
mov edx, 0x400
lea rcx, [rsp + 0x530]
call qword [sym.imp.KERNEL32.dll_GetWindowsDirectoryW]
test eax, eax
jne 0x140167308
lea rcx, [rsp + 0xd8]
call qword [sym.imp.MSVCP80.dll_public:_void___cdecl_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::destructor_void____ptr64]
nop
lea rcx, [rsp + 0x100]
call qword [sym.imp.MSVCP80.dll_public:_void___cdecl_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::destructor_void____ptr64]
xor al, al
jmp 0x14016770b
lea rcx, [rsp + 0x60]
call qword [sym.imp.MSVCP80.dll_public:_void___cdecl_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::constructor_void____ptr64]
nop
lea rdx, [rsp + 0x530]
lea rcx, [rsp + 0x60]
call qword [reloc.MSVCP80.dll___4__basic_string__WU__char_traits__W_std__V__allocator__W_2__std__QEAAAEAV01_PEB_W_Z]
mov r9d, 3
xor r8d, r8d
lea rdx, [rsp + 0x38]
lea rcx, [rsp + 0x60]
call qword [sym.imp.MSVCP80.dll_public:_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t_____cdecl_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::substr_unsigned_long_long_unsigned___int64___unsigned_long_long_unsigned___int64_____ptr64]
nop
mov rdx, rax
lea rcx, [rsp + 0x60]
call qword [reloc.MSVCP80.dll___4__basic_string__WU__char_traits__W_std__V__allocator__W_2__std__QEAAAEAV01_AEBV01__Z]
nop
lea rcx, [rsp + 0x38]
call qword [sym.imp.MSVCP80.dll_public:_void___cdecl_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::destructor_void____ptr64]
lea rdx, [0x140362f20]
lea rcx, [rsp + 0x60]
call qword [sym.imp.MSVCP80.dll_public:_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t______ptr64___cdecl_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::operator_wchar_t_const____ptr64____ptr64]
lea rcx, [rsp + 0x68]
cmp qword [rsp + 0x80], 8
cmovae rcx, qword [rsp + 0x68]
xor edx, edx
call qword [sym.imp.KERNEL32.dll_CreateDirectoryW]
test eax, eax
jne 0x1401673ca
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
je 0x1401673ca
lea rcx, [rsp + 0x60]
call qword [sym.imp.MSVCP80.dll_public:_void___cdecl_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::destructor_void____ptr64]
nop
lea rcx, [rsp + 0xd8]
call qword [sym.imp.MSVCP80.dll_public:_void___cdecl_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::destructor_void____ptr64]
nop
lea rcx, [rsp + 0x100]
call qword [sym.imp.MSVCP80.dll_public:_void___cdecl_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::destructor_void____ptr64]
xor al, al
jmp 0x14016770b
lea rcx, [rsp + 0x68]
cmp qword [rsp + 0x80], 8
cmovae rcx, qword [rsp + 0x68]
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x140167408
or eax, 2
lea rcx, [rsp + 0x68]
cmp qword [rsp + 0x80], 8
cmovae rcx, qword [rsp + 0x68]
mov edx, eax
call qword [sym.imp.KERNEL32.dll_SetFileAttributesW]
mov word [rsp + 0x930], 0
xor edx, edx
mov r8d, reloc.MFC80U.DLL_Ordinal_1022
lea rcx, [rsp + 0x932]
call sub.ntdll.dll_memset
lea r11, [rsp + 0x68]
cmp qword [rsp + 0x80], 8
cmovae r11, qword [rsp + 0x68]
lea r9, [rsp + 0xe0]
cmp qword [rsp + 0xf8], 8
cmovae r9, qword [rsp + 0xe0]
mov qword [rsp + 0x20], r11
lea r8, str.iso.exe_x__aoa___s___o_s_boot_boot.sdi__r
mov edx, 0x400
lea rcx, [rsp + 0x930]
call fcn.140013b00
lea r11, [rsp + 0x68]
cmp qword [rsp + 0x80], 8
cmovae r11, qword [rsp + 0x68]
lea r9, [rsp + 0xe0]
cmp qword [rsp + 0xf8], 8
cmovae r9, qword [rsp + 0xe0]
mov qword [rsp + 0x20], r11
lea r8, str.iso.exe_x__aoa___s___o_s_sources_boot.wim__r
mov edx, 0x400
lea rcx, [rsp + 0x930]
call fcn.140013b00
lea rcx, [rsp + 0x88]
call qword [sym.imp.MSVCP80.dll_public:_void___cdecl_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::constructor_void____ptr64]
nop
lea rcx, [rsp + 0xb0]
call qword [sym.imp.MSVCP80.dll_public:_void___cdecl_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::constructor_void____ptr64]
nop
lea rdx, [rsp + 0x60]
lea rcx, [rsp + 0x88]
call qword [reloc.MSVCP80.dll___4__basic_string__WU__char_traits__W_std__V__allocator__W_2__std__QEAAAEAV01_AEBV01__Z]
lea rdx, str._boot_boot.sdi
lea rcx, [rsp + 0x88]
call qword [sym.imp.MSVCP80.dll_public:_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t______ptr64___cdecl_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::operator_wchar_t_const____ptr64____ptr64]
lea rdx, [rsp + 0x60]
lea rcx, [rsp + 0xb0]
call qword [reloc.MSVCP80.dll___4__basic_string__WU__char_traits__W_std__V__allocator__W_2__std__QEAAAEAV01_AEBV01__Z]
lea rdx, str.AomeiBoot.sdi
lea rcx, [rsp + 0xb0]
call qword [sym.imp.MSVCP80.dll_public:_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t______ptr64___cdecl_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::operator_wchar_t_const____ptr64____ptr64]
lea rcx, [rsp + 0xb8]
cmp qword [rsp + 0xd0], 8
cmovae rcx, qword [rsp + 0xb8]
call qword [sym.imp.KERNEL32.dll_DeleteFileW]
lea rdx, [rsp + 0xb8]
cmp qword [rsp + 0xd0], 8
cmovae rdx, qword [rsp + 0xb8]
lea rcx, [rsp + 0x90]
cmp qword [rsp + 0xa8], 8
cmovae rcx, qword [rsp + 0x90]
call qword [sym.imp.KERNEL32.dll_MoveFileW]
lea rdx, [rsp + 0x60]
lea rcx, [rsp + 0x88]
call qword [reloc.MSVCP80.dll___4__basic_string__WU__char_traits__W_std__V__allocator__W_2__std__QEAAAEAV01_AEBV01__Z]
lea rdx, str._sources_boot.wim
lea rcx, [rsp + 0x88]
call qword [sym.imp.MSVCP80.dll_public:_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t______ptr64___cdecl_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::operator_wchar_t_const____ptr64____ptr64]
lea rdx, [rsp + 0x60]
lea rcx, [rsp + 0xb0]
call qword [reloc.MSVCP80.dll___4__basic_string__WU__char_traits__W_std__V__allocator__W_2__std__QEAAAEAV01_AEBV01__Z]
lea rdx, [0x140363058]
lea rcx, [rsp + 0xb0]
call qword [sym.imp.MSVCP80.dll_public:_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t______ptr64___cdecl_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::operator_wchar_t_const____ptr64____ptr64]
lea rcx, [rsp + 0xb8]
cmp qword [rsp + 0xd0], 8
cmovae rcx, qword [rsp + 0xb8]
call qword [sym.imp.KERNEL32.dll_DeleteFileW]
lea rdx, [rsp + 0xb8]
cmp qword [rsp + 0xd0], 8
cmovae rdx, qword [rsp + 0xb8]
lea rcx, [rsp + 0x90]
cmp qword [rsp + 0xa8], 8
cmovae rcx, qword [rsp + 0x90]
call qword [sym.imp.KERNEL32.dll_MoveFileW]
lea rdx, [rsp + 0x60]
lea rcx, [rsp + 0x88]
call qword [reloc.MSVCP80.dll___4__basic_string__WU__char_traits__W_std__V__allocator__W_2__std__QEAAAEAV01_AEBV01__Z]
lea rdx, str._boot
lea rcx, [rsp + 0x88]
call qword [sym.imp.MSVCP80.dll_public:_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t______ptr64___cdecl_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::operator_wchar_t_const____ptr64____ptr64]
lea rcx, [rsp + 0x90]
cmp qword [rsp + 0xa8], 8
cmovae rcx, qword [rsp + 0x90]
call qword [sym.imp.KERNEL32.dll_RemoveDirectoryW]
lea rdx, [rsp + 0x60]
lea rcx, [rsp + 0x88]
call qword [reloc.MSVCP80.dll___4__basic_string__WU__char_traits__W_std__V__allocator__W_2__std__QEAAAEAV01_AEBV01__Z]
lea rdx, [0x140363088]
lea rcx, [rsp + 0x88]
call qword [sym.imp.MSVCP80.dll_public:_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t______ptr64___cdecl_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::operator_wchar_t_const____ptr64____ptr64]
lea rcx, [rsp + 0x90]
cmp qword [rsp + 0xa8], 8
cmovae rcx, qword [rsp + 0x90]
call qword [sym.imp.KERNEL32.dll_RemoveDirectoryW]
nop
lea rcx, [rsp + 0xb0]
call qword [sym.imp.MSVCP80.dll_public:_void___cdecl_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::destructor_void____ptr64]
nop
lea rcx, [rsp + 0x88]
call qword [sym.imp.MSVCP80.dll_public:_void___cdecl_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::destructor_void____ptr64]
nop
lea rcx, [rsp + 0x60]
call qword [sym.imp.MSVCP80.dll_public:_void___cdecl_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::destructor_void____ptr64]
nop
lea rcx, [rsp + 0xd8]
call qword [sym.imp.MSVCP80.dll_public:_void___cdecl_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::destructor_void____ptr64]
nop
lea rcx, [rsp + 0x100]
call qword [sym.imp.MSVCP80.dll_public:_void___cdecl_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::destructor_void____ptr64]
mov al, 1
mov rcx, qword [rsp + 0xd30]
xor rcx, rsp
call fcn.140161080
add rsp, 0xd48
ret