Function at 0x1400072ac
Capabilities:
Check if file exists
Delete directory
Delete file
Enumerate files on windows
Enumerate files recursively
Get file attributes
Move file
Set file attributes

Disassembly:
mov qword [rsp + 0x18], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x3e0]
sub rsp, 0x4e0
mov rax, qword [0x1400b6018]
xor rax, rsp
mov qword [rbp + 0x3d0], rax
or qword [rsp + 0x58], 0xffffffffffffffff
mov r13d, edx
mov r15, rcx
xor edi, edi
xor edx, edx
mov qword [rsp + 0x40], rdi
lea rcx, [rsp + 0x70]
mov r8d, 0x250
call fcn.1400547d0
mov ebx, r13d
lea rcx, [rbp + 0x1c0]
and ebx, 1
xor edx, edx
mov r8d, 0x20a
mov dword [rsp + 0x48], ebx
call fcn.1400547d0
mov rcx, r15
mov qword [rsp + 0x60], rdi
mov qword [rsp + 0x50], rdi
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
jne 0x1400073be
call qword [sym.imp.KERNEL32.dll_GetLastError]
movzx ebx, ax
or ebx, 0x80070000
test eax, eax
cmovle ebx, eax
test ebx, ebx
js 0x14000735a
mov ebx, 0x80004005
jmp 0x14000736a
lea eax, [rbx + 0x7ff8fffe]
cmp eax, 1
cmovbe ebx, edi
test ebx, ebx
jns 0x1400073b4
mov r12d, 0xbd
lea rdi, str.d:_awixwix_srclibsdutilwixtoolset.dutildirutil.cpp
mov edx, r12d
mov rcx, rdi
mov r8d, ebx
call fcn.1400012b0
lea rax, str.Failed_to_get_attributes_for_path:__ls
mov r9d, 0xe
lea r8d, [r9 - 9]
mov edx, r12d
mov rcx, rdi
mov qword [rsp + 0x30], r15
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], ebx
call fcn.1400012b4
jmp 0x14000798c
mov ebx, 0x80070003
jmp 0x14000798c
test al, 0x10
je 0x14000792e
test al, 1
je 0x140007432
mov edx, 0x80
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_SetFileAttributesW]
test eax, eax
jne 0x140007432
call qword [sym.imp.KERNEL32.dll_GetLastError]
movzx ebx, ax
or ebx, 0x80070000
test eax, eax
cmovle ebx, eax
test ebx, ebx
js 0x1400073fb
mov ebx, 0x80004005
jmp 0x14000740b
lea eax, [rbx + 0x7ff8fffe]
cmp eax, 1
cmovbe ebx, edi
test ebx, ebx
jns 0x1400073b4
mov r12d, 0xc8
lea rdi, str.d:_awixwix_srclibsdutilwixtoolset.dutildirutil.cpp
mov edx, r12d
mov rcx, rdi
mov r8d, ebx
call fcn.1400012b0
lea rax, str.Failed_to_remove_read_only_attribute_from_path:__ls
jmp 0x14000738c
mov esi, 0xe
lea rdi, str.d:_awixwix_srclibsdutilwixtoolset.dutildirutil.cpp
xor eax, eax
mov r12d, 0x80070000
lea r14d, [rsi - 9]
test ebx, ebx
jne 0x140007458
test r13b, 2
je 0x140007754
test r13b, 4
je 0x14000749c
xor edx, edx
lea rcx, [rsp + 0x60]
call fcn.14000608c
mov ebx, eax
test eax, eax
jns 0x14000749c
lea rax, str.Failed_to_get_temp_directory.
mov edx, 0xd4
mov qword [rsp + 0x28], rax
lea rcx, str.d:_awixwix_srclibsdutilwixtoolset.dutildirutil.cpp
mov r9d, esi
mov dword [rsp + 0x20], ebx
mov r8d, r14d
call fcn.1400012b4
jmp 0x14000798c
lea r8, [rsp + 0x40]
mov rcx, r15
lea rdx, [0x140081a58]
call fcn.140004be0
mov ebx, eax
test eax, eax
jns 0x1400074d4
lea rax, str.Failed_to_concat_wild_cards_to_string:__ls
mov edx, 0xd9
mov r9d, esi
lea rcx, str.d:_awixwix_srclibsdutilwixtoolset.dutildirutil.cpp
mov r8d, r14d
jmp 0x14000739c
mov rcx, qword [rsp + 0x40]
lea rdx, [rsp + 0x70]
call qword [sym.imp.KERNEL32.dll_FindFirstFileW]
mov qword [rsp + 0x58], rax
cmp rax, 0xffffffffffffffff
jne 0x140007539
call qword [sym.imp.KERNEL32.dll_GetLastError]
movzx ecx, ax
mov ebx, 0x80004005
or ecx, r12d
lea rdi, str.d:_awixwix_srclibsdutilwixtoolset.dutildirutil.cpp
test eax, eax
mov r12d, 0xde
mov edx, r12d
cmovle ecx, eax
test ecx, ecx
cmovns ecx, ebx
mov ebx, ecx
mov r8d, ecx
mov rcx, rdi
call fcn.1400012b0
lea rax, str.failed_to_get_first_file_in_directory:__ls
mov r9d, esi
mov r8d, r14d
jmp 0x140007396
xor ecx, ecx
mov edx, 0x2e
cmp dx, word [rbp - 0x64]
jne 0x140007562
movzx eax, word [rbp - 0x62]
cmp cx, ax
je 0x140007729
cmp dx, ax
jne 0x140007562
cmp cx, word [rbp - 0x60]
je 0x140007729
mov r9d, 0x104
mov dword [rsp + 0x30], 0xa00
mov qword [rsp + 0x28], rcx
lea r8, [rbp - 0x64]
mov qword [rsp + 0x20], rcx
lea rcx, [rbp + 0x1c0]
lea edx, [r9 + 1]
call fcn.140002bb4
mov ebx, eax
test eax, eax
js 0x140007909
lea r8, [rsp + 0x40]
mov rcx, r15
lea rdx, [rbp + 0x1c0]
call fcn.140004be0
mov ebx, eax
test eax, eax
js 0x1400078d3
test r13b, 2
je 0x140007631
test byte [rsp + 0x70], 0x10
je 0x140007631
lea rcx, [rsp + 0x40]
call fcn.140004ab4
mov ebx, eax
test eax, eax
js 0x1400077f6
mov rcx, qword [rsp + 0x40]
mov edx, r13d
call fcn.1400072ac
mov ebx, 0x80000000
lea ecx, [rax + rbx]
test ebx, ecx
jne 0x140007729
cmp eax, 0x80070003
je 0x140007729
mov rcx, qword [rsp + 0x40]
mov r9d, esi
mov qword [rsp + 0x30], rcx
mov r8d, r14d
lea rcx, str.Failed_to_delete_subdirectory__continuing:__ls
mov edx, 0xfb
mov qword [rsp + 0x28], rcx
mov rcx, rdi
mov dword [rsp + 0x20], eax
call fcn.1400012b4
jmp 0x140007729
xor ebx, ebx
cmp dword [rsp + 0x48], ebx
je 0x140007729
test byte [rsp + 0x70], 7
je 0x14000768c
mov rcx, qword [rsp + 0x40]
mov edx, 0x80
call qword [sym.imp.KERNEL32.dll_SetFileAttributesW]
test eax, eax
jne 0x14000768c
call qword [sym.imp.KERNEL32.dll_GetLastError]
xor ecx, ecx
movzx ebx, ax
or ebx, r12d
test eax, eax
cmovle ebx, eax
test ebx, ebx
jns 0x140007817
lea eax, [rbx + 0x7ff8fffe]
cmp eax, 1
cmovbe ebx, ecx
test ebx, ebx
js 0x14000781c
jmp 0x140007729
mov rcx, qword [rsp + 0x40]
call qword [sym.imp.KERNEL32.dll_DeleteFileW]
test eax, eax
jne 0x140007729
test r13b, 4
je 0x1400076fa
mov rcx, qword [rsp + 0x60]
lea r9, [rsp + 0x50]
xor r8d, r8d
lea rdx, [0x140081bc0]
call fcn.140005d3c
mov ebx, eax
test eax, eax
js 0x14000784f
mov rdx, qword [rsp + 0x50]
mov r8d, 1
mov rcx, qword [rsp + 0x40]
call qword [sym.imp.KERNEL32.dll_MoveFileExW]
mov rcx, qword [rsp + 0x50]
xor edx, edx
lea r8d, [rdx + 4]
test eax, eax
jne 0x1400076f2
mov rcx, qword [rsp + 0x40]
call qword [sym.imp.KERNEL32.dll_MoveFileExW]
jmp 0x140007729
call qword [sym.imp.KERNEL32.dll_GetLastError]
xor ecx, ecx
movzx ebx, ax
or ebx, r12d
test eax, eax
cmovle ebx, eax
test ebx, ebx
jns 0x140007860
lea eax, [rbx + 0x7ff8fffe]
cmp eax, 1
cmovbe ebx, ecx
test ebx, ebx
js 0x140007865
mov rcx, qword [rsp + 0x58]
lea rdx, [rsp + 0x70]
call qword [sym.imp.KERNEL32.dll_FindNextFileW]
xor ecx, ecx
test eax, eax
jne 0x14000753b
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x12
jne 0x140007896
xor eax, eax
mov rcx, r15
mov ebx, eax
call qword [sym.imp.KERNEL32.dll_RemoveDirectoryW]
test eax, eax
jne 0x140007978
call qword [sym.imp.KERNEL32.dll_GetLastError]
movzx ebx, ax
or ebx, r12d
xor r12d, r12d
test eax, eax
cmovle ebx, eax
cmp ebx, 0x80070020
jne 0x1400077a0
test r13b, 4
je 0x1400077d0
xor edx, edx
lea r8d, [r12 + 4]
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_MoveFileExW]
test eax, eax
je 0x1400077d0
mov ebx, r12d
lea eax, [rbx + 0x7ff8fffe]
cmp eax, 1
jbe 0x14000788c
cmp ebx, 0x80070091
jne 0x1400077c8
cmp dword [rsp + 0x48], r12d
jne 0x1400077d0
test r13b, 2
je 0x140007978
test ebx, ebx
jns 0x140007978
mov r12d, 0x144
mov r8d, ebx
mov edx, r12d
mov rcx, rdi
call fcn.1400012b0
lea rax, str.Failed_to_remove_directory:__ls
mov r9d, esi
mov r8d, r14d
jmp 0x14000795f
mov rax, qword [rsp + 0x40]
mov r9d, esi
mov qword [rsp + 0x30], rax
mov r8d, r14d
lea rax, str.Failed_to_ensure_path_is_backslash_terminated:__ls
mov edx, 0xf3
jmp 0x140007967
mov ebx, 0x80004005
mov r15d, 0x106
mov r8d, ebx
mov edx, r15d
mov rcx, rdi
call fcn.1400012b0
mov rax, qword [rsp + 0x40]
mov qword [rsp + 0x30], rax
lea rax, str.Failed_to_remove_attributes_from_file:__ls
mov r9d, esi
mov r8d, r14d
mov edx, r15d
jmp 0x140007967
lea rax, str.Failed_to_get_temp_file_to_move_to.
mov edx, 0x110
jmp 0x140007915
mov ebx, 0x80004005
mov r15d, 0x11f
mov r8d, ebx
mov edx, r15d
mov rcx, rdi
call fcn.1400012b0
mov rax, qword [rsp + 0x40]
mov qword [rsp + 0x30], rax
lea rax, str.Failed_to_delete_file:__ls
jmp 0x140007841
mov ebx, 0x80070003
jmp 0x140007978
call qword [sym.imp.KERNEL32.dll_GetLastError]
movzx ecx, ax
mov ebx, 0x80004005
or ecx, r12d
mov r12d, 0x12c
test eax, eax
mov edx, r12d
cmovle ecx, eax
test ecx, ecx
cmovns ecx, ebx
mov ebx, ecx
mov r8d, ecx
mov rcx, rdi
call fcn.1400012b0
lea rax, str.Failed_while_looping_through_files_in_directory:__ls
jmp 0x1400077eb
mov qword [rsp + 0x38], r15
lea rax, [rbp + 0x1c0]
mov qword [rsp + 0x30], rax
mov r9d, esi
lea rax, str.Failed_to_concat_filename__ls_to_directory:__ls
mov r8d, r14d
mov qword [rsp + 0x28], rax
mov edx, 0xee
mov rcx, rdi
mov dword [rsp + 0x20], ebx
call fcn.1400012b4
jmp 0x140007978
lea rax, str.Failed_to_ensure_file_name_was_null_terminated.
mov edx, 0xeb
mov qword [rsp + 0x28], rax
mov r8d, r14d
mov r9d, esi
mov dword [rsp + 0x20], ebx
mov rcx, rdi
call fcn.1400012b4
jmp 0x140007978
mov ebx, 0x8000ffff
lea rdi, str.d:_awixwix_srclibsdutilwixtoolset.dutildirutil.cpp
mov r12d, 0x149
mov r8d, ebx
mov edx, r12d
mov rcx, rdi
call fcn.1400012b0
mov r9d, 0xe
lea rax, str.Directory_delete_cannot_delete_file:__ls
lea r8d, [r9 - 9]
mov qword [rsp + 0x30], r15
mov edx, r12d
mov qword [rsp + 0x28], rax
mov rcx, rdi
mov dword [rsp + 0x20], ebx
call fcn.1400012b4
mov rax, qword [rsp + 0x58]
cmp rax, 0xffffffffffffffff
je 0x14000798c
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_FindClose]
mov rcx, qword [rsp + 0x40]
test rcx, rcx
je 0x14000799b
call fcn.140004278
mov rcx, qword [rsp + 0x60]
test rcx, rcx
je 0x1400079aa
call fcn.140004278
mov rcx, qword [rsp + 0x50]
test rcx, rcx
je 0x1400079b9
call fcn.140004278
mov eax, ebx
mov rcx, qword [rbp + 0x3d0]
xor rcx, rsp
call fcn.140053b50
mov rbx, qword [rsp + 0x530]
add rsp, 0x4e0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret