Function at 0x180061580
Capabilities:
Check if file exists
Delete file
Get file attributes

Disassembly:
mov rax, rsp
mov qword [rax + 8], rbx
mov qword [rax + 0x18], rsi
mov qword [rax + 0x10], rdx
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x140
mov r12d, r8d
mov rsi, rdx
mov rdi, rcx
xor ebx, ebx
mov r13d, ebx
lea r9, [rax - 0xb8]
movups xmm0, xmmword [rdx]
movups xmmword [r9], xmm0
movups xmm1, xmmword [rdx + 0x10]
movups xmmword [r9 + 0x10], xmm1
movups xmm0, xmmword [rdx + 0x20]
movups xmmword [r9 + 0x20], xmm0
movups xmm1, xmmword [rdx + 0x30]
movups xmmword [r9 + 0x30], xmm1
movups xmm0, xmmword [rdx + 0x40]
movups xmmword [r9 + 0x40], xmm0
movups xmm1, xmmword [rdx + 0x50]
movups xmmword [r9 + 0x50], xmm1
movups xmm0, xmmword [rdx + 0x60]
movups xmmword [r9 + 0x60], xmm0
mov ecx, 0x80
movups xmm0, xmmword [rdx + 0x70]
movups xmmword [r9 + rcx - 0x10], xmm0
mov rax, qword [rdx + rcx]
mov qword [r9 + rcx], rax
xor ecx, ecx
call qword [sym.imp.ntdll.dll_RtlSetLastWin32Error]
nop dword [rax + rax]
bt r12d, 8
jae 0x18006166b
lea r8, [rsi + 8]
lea r9, [rsp + 0x58]
mov ebx, 0x7f
mov edx, ebx
mov rcx, rdi
call qword [sym.imp.api_ms_win_core_file_l1_1_0.dll_GetFullPathNameA]
nop dword [rax + rax]
cmp eax, ebx
jbe 0x180061656
mov ecx, 0xd
call qword [sym.imp.ntdll.dll_RtlSetLastWin32Error]
nop dword [rax + rax]
jmp 0x180061a99
mov qword [rsi], 0x188
xor eax, eax
mov edi, eax
mov qword [rsp + 0x40], rax
jmp 0x180061aa2
mov al, r12b
mov r14d, 1
and al, r14b
neg al
sbb r15d, r15d
mov r9d, 0xc0000000
and r15d, r9d
add r15d, 0x80000000
mov dword [rsp + 0x4c], r15d
lea r8d, [r14 + 1]
test r8b, r12b
je 0x1800616a2
or r15d, r9d
mov dword [rsp + 0x4c], r15d
mov ecx, r12d
call fcn.180060f74
mov edx, eax
mov dword [rsp + 0x48], eax
mov ecx, r12d
and ecx, 0x1000
cmovne r15d, r9d
mov dword [rsp + 0x4c], r15d
neg ecx
sbb ecx, ecx
add ecx, 3
mov dword [rsp + 0x188], ecx
bt r12d, 0xf
jb 0x18006174d
lea rax, [rsi + 8]
lea rcx, [rsp + 0x58]
mov qword [rsp + 0x28], rcx
mov qword [rsp + 0x20], rax
mov ebx, 0x7f
mov r9d, ebx
xor r8d, r8d
mov rdx, rdi
xor ecx, ecx
call qword [sym.imp.api_ms_win_core_processenvironment_l1_2_0.dll_SearchPathA]
nop dword [rax + rax]
cmp eax, ebx
ja 0x180061640
test eax, eax
jne 0x18006173a
mov r13d, r14d
lea r9, [rsp + 0x58]
lea r8, [rsi + 8]
mov edx, ebx
mov rcx, rdi
call qword [sym.imp.api_ms_win_core_file_l1_1_0.dll_GetFullPathNameA]
nop dword [rax + rax]
dec eax
cmp eax, 0x7e
ja 0x180061640
mov r8d, 2
xor ebx, ebx
mov edx, dword [rsp + 0x48]
mov ecx, dword [rsp + 0x188]
mov eax, r12d
and eax, 0x5000
cmp eax, 0x4000
jne 0x18006179a
test r13d, r13d
je 0x180061769
mov ecx, r8d
jmp 0x180061645
lea rcx, [rsi + 8]
call qword [sym.imp.api_ms_win_core_file_l1_1_0.dll_GetFileAttributesA]
nop dword [rax + rax]
cmp eax, 0xffffffff
jne 0x180061788
mov ecx, 2
jmp 0x180061645
test al, 0x10
je 0x18006192a
mov ecx, 5
jmp 0x180061645
lea r13, [rsi + 8]
bt r12d, 9
jae 0x1800617da
mov rcx, r13
call qword [sym.imp.api_ms_win_core_file_l1_1_0.dll_DeleteFileA]
nop dword [rax + rax]
test eax, eax
je 0x1800617cc
mov word [rsi + 2], bx
mov byte [rsi], 0x88
mov rdi, r14
mov qword [rsp + 0x40], r14
jmp 0x180061aa2
mov eax, 2
mov word [rsi + 2], ax
jmp 0x180061a99
mov qword [rsp + 0x30], rbx
mov dword [rsp + 0x28], ebx
mov dword [rsp + 0x20], ecx
xor r9d, r9d
mov r8d, edx
mov edx, r15d
mov rcx, r13
call qword [sym.imp.api_ms_win_core_file_l1_1_0.dll_CreateFileA]
nop dword [rax + rax]
mov rdi, rax
mov qword [rsp + 0x40], rax
cmp rax, 0xffffffffffffffff
jne 0x180061914
bt r12d, 0xd
jae 0x180061aa2
call qword [sym.imp.api_ms_win_core_errorhandling_l1_1_0.dll_GetErrorMode]
nop dword [rax + rax]
bt eax, 0xf
jb 0x180061aa2
call qword [sym.imp.ntdll.dll_RtlGetThreadErrorMode]
nop dword [rax + rax]
test al, 0x40
jne 0x180061aa2
call qword [sym.imp.api_ms_win_core_errorhandling_l1_1_0.dll_GetLastError]
nop dword [rax + rax]
cmp eax, 2
jne 0x18006185e
mov ebx, 0xd000000f
jmp 0x18006186c
cmp eax, 3
jne 0x180061aa2
mov ebx, 0xd000003a
mov rdx, r13
lea rcx, [rsp + 0x88]
call qword [sym.imp.ntdll.dll_RtlInitAnsiString]
nop dword [rax + rax]
mov r8b, r14b
lea rdx, [rsp + 0x88]
lea rcx, [rsp + 0x78]
call qword [sym.imp.ntdll.dll_RtlAnsiStringToUnicodeString]
nop dword [rax + rax]
test eax, eax
js 0x180061aa2
lea rax, [rsp + 0x78]
mov qword [rsp + 0x68], rax
lea rax, [rsp + 0x50]
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], 3
lea r9, [rsp + 0x68]
mov r8d, r14d
mov edx, r14d
mov ecx, ebx
call qword [sym.imp.ntdll.dll_NtRaiseHardError]
nop dword [rax + rax]
mov ebx, eax
lea rcx, [rsp + 0x78]
call qword [sym.imp.ntdll.dll_RtlFreeUnicodeString]
nop dword [rax + rax]
test ebx, ebx
js 0x180061aa2
cmp dword [rsp + 0x50], 7
jne 0x180061aa2
mov ecx, dword [rsp + 0x188]
mov edx, dword [rsp + 0x48]
xor ebx, ebx
jmp 0x1800617da
mov rcx, rdi
bt r12d, 0xe
jae 0x18006193a
call qword [sym.imp.api_ms_win_core_handle_l1_1_0.dll_CloseHandle]
nop dword [rax + rax]
mov rdi, r14
mov qword [rsp + 0x40], r14
mov byte [rsi], 0x88
jmp 0x180061aa2
mov dword [rsp + 0x20], 4
mov r9d, 8
lea r8, [rsp + 0x60]
lea rdx, [rsp + 0x98]
call qword [sym.imp.ntdll.dll_NtQueryVolumeInformationFile]
nop dword [rax + rax]
mov ebx, eax
xor r15d, r15d
test eax, eax
jns 0x180061985
mov rcx, rdi
call qword [sym.imp.api_ms_win_core_handle_l1_1_0.dll_CloseHandle]
nop dword [rax + rax]
mov ecx, ebx
call sym.KERNEL32.dll_BaseSetLastNTError
jmp 0x180061a99
mov eax, dword [rsp + 0x60]
add eax, 0xfffffff9
cmp eax, r14d
ja 0x18006199f
mov al, byte [rsp + 0x64]
not al
and al, r14b
mov byte [rsi + 1], al
jmp 0x1800619a3
mov byte [rsi + 1], r15b
lea r9, [rsp + 0x70]
xor r8d, r8d
xor edx, edx
mov rcx, rdi
call qword [sym.imp.api_ms_win_core_file_l1_1_0.dll_GetFileTime]
nop dword [rax + rax]
lea r8, [rsi + 6]
lea rdx, [rsi + 4]
test eax, eax
jne 0x1800619d2
mov word [rdx], r15w
mov word [r8], r15w
jmp 0x1800619e4
lea rcx, [rsp + 0x70]
call sym.KERNEL32.dll_FileTimeToDosDateTime
test eax, eax
jne 0x1800619e4
mov dword [rsi + 4], r15d
mov byte [rsi], 0x88
bt r12d, 0xa
jae 0x180061aa2
movzx eax, word [rsi + 4]
cmp word [rsp + 0xb4], ax
jne 0x180061a36
movzx eax, word [rsi + 6]
cmp word [rsp + 0xb6], ax
jne 0x180061a36
lea rdx, [rsi + 8]
lea rax, [rsp + 0xb8]
sub rdx, rax
movzx ecx, byte [rax]
movzx r8d, byte [rax + rdx]
sub ecx, r8d
jne 0x180061a32
add rax, r14
test r8d, r8d
jne 0x180061a1d
test ecx, ecx
je 0x180061aa2
lea rax, [rsp + 0xb0]
movups xmm0, xmmword [rax]
movups xmmword [rsi], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rsi + 0x10], xmm1
movups xmm0, xmmword [rax + 0x20]
movups xmmword [rsi + 0x20], xmm0
movups xmm1, xmmword [rax + 0x30]
movups xmmword [rsi + 0x30], xmm1
movups xmm0, xmmword [rax + 0x40]
movups xmmword [rsi + 0x40], xmm0
movups xmm1, xmmword [rax + 0x50]
movups xmmword [rsi + 0x50], xmm1
movups xmm0, xmmword [rax + 0x60]
movups xmmword [rsi + 0x60], xmm0
mov edx, 0x80
movups xmm1, xmmword [rax + 0x70]
movups xmmword [rsi + rdx - 0x10], xmm1
mov rax, qword [rax + rdx]
mov qword [rsi + rdx], rax
mov rcx, rdi
call qword [sym.imp.api_ms_win_core_handle_l1_1_0.dll_CloseHandle]
nop dword [rax + rax]
or rdi, 0xffffffffffffffff
mov qword [rsp + 0x40], rdi
call qword [sym.imp.api_ms_win_core_errorhandling_l1_1_0.dll_GetLastError]
nop dword [rax + rax]
mov word [rsi + 2], ax
mov eax, edi
lea r11, [rsp + 0x140]
mov rbx, qword [r11 + 0x30]
mov rsi, qword [r11 + 0x40]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
ret