Function at 0x1800039d0
Capabilities:
Check if file exists
Get file attributes
Set file attributes

Disassembly:
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
lea rbp, [rsp - 0x710]
sub rsp, 0x810
mov rax, qword [0x18002c008]
xor rax, rsp
mov qword [rbp + 0x700], rax
mov rax, qword [rbp + 0x770]
xor esi, esi
mov qword [rsp + 0x30], rax
mov rdi, 0xffffffffffffffff
mov rax, qword [rbp + 0x778]
mov r13, rcx
mov qword [rsp + 0x40], rax
lea rcx, [rbp]
mov rax, qword [rbp + 0x780]
mov ebx, r9d
mov qword [rsp + 0x50], rax
mov r14, rdx
lea rax, [0x180020338]
mov qword [rsp + 0x38], r8
mov qword [rbp - 0x20], rax
lea rax, [0x1800202e8]
mov qword [rbp - 0x10], rax
lea rax, sym.ulib.dll_const_FSTRING::vftable
mov qword [rbp + 0x208], rax
mov rax, qword [0x18002c858]
mov qword [rbp + 0x210], rax
mov rax, qword [0x18002c7a0]
mov qword [rbp - 8], rax
lea rax, [rbp]
mov qword [rbp + 0x218], rax
mov rax, rdi
mov dword [rbp + 0x220], esi
mov qword [rbp + 0x244], rsi
mov qword [rbp + 0x234], rsi
mov dword [rbp + 0x240], esi
mov dword [rbp + 0x230], esi
mov word [rbp], si
nop dword [rax]
inc rax
cmp word [rcx + rax*2], si
jne 0x180003ab0
mov r12, qword [r13 + 0x238]
mov dword [rbp + 0x220], eax
lea rax, [0x180020390]
mov qword [rbp - 0x20], rax
mov rax, qword [0x18002c728]
mov qword [rbp - 0x18], rax
mov dword [rbp + 0x228], 0x104
mov byte [rbp + 0x24c], sil
test r12, r12
je 0x180003f75
mov qword [rsp + 0x868], r15
mov r15, qword [rdx + 0x228]
test r15, r15
je 0x180003fb8
test bl, 1
jne 0x180003f9b
mov r9, qword [rsp + 0x40]
test bl, 4
mov r8, qword [rsp + 0x30]
mov eax, 2
mov ecx, 0x50
mov r10d, esi
cmovne r10d, eax
mov rdx, r15
test bl, 8
mov eax, esi
cmovne eax, ecx
mov ecx, 0x20
or r10d, eax
mov eax, esi
test bl, 0x10
cmovne eax, ecx
mov ecx, 8
or r10d, eax
mov eax, esi
test bl, 0x20
cmovne eax, ecx
mov ecx, 0x800
or r10d, eax
mov eax, esi
test bl, 0x40
cmovne eax, ecx
mov ecx, 0x1000
or r10d, eax
mov eax, esi
test bl, 0x80
cmovne eax, ecx
mov ecx, 0x10000000
or r10d, eax
mov eax, esi
bt ebx, 8
cmovb eax, ecx
mov ecx, 0x20000000
or r10d, eax
mov eax, esi
bt ebx, 0xa
cmovb eax, ecx
mov rcx, r12
or eax, r10d
mov dword [rsp + 0x28], eax
mov rax, qword [rsp + 0x50]
mov qword [rsp + 0x20], rax
call qword [sym.imp.KERNELBASE.dll_PrivCopyFileExW]
nop dword [rax + rax]
test eax, eax
je 0x18000e520
mov r12b, 1
test bl, 2
je 0x180003f6d
mov r15d, 4
lea rax, [r13 + 0x270]
mov edx, r15d
lea rcx, [rbp + 0x4b0]
lea rcx, [rcx + 0x80]
movups xmm0, xmmword [rax]
movups xmm1, xmmword [rax + 0x10]
lea rax, [rax + 0x80]
movups xmmword [rcx - 0x80], xmm0
movups xmm0, xmmword [rax - 0x60]
movups xmmword [rcx - 0x70], xmm1
movups xmm1, xmmword [rax - 0x50]
movups xmmword [rcx - 0x60], xmm0
movups xmm0, xmmword [rax - 0x40]
movups xmmword [rcx - 0x50], xmm1
movups xmm1, xmmword [rax - 0x30]
movups xmmword [rcx - 0x40], xmm0
movups xmm0, xmmword [rax - 0x20]
movups xmmword [rcx - 0x30], xmm1
movups xmm1, xmmword [rax - 0x10]
movups xmmword [rcx - 0x20], xmm0
movups xmmword [rcx - 0x10], xmm1
sub rdx, 1
jne 0x180003bed
movups xmm0, xmmword [rax]
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rcx], xmm0
movups xmm0, xmmword [rax + 0x20]
movups xmmword [rcx + 0x10], xmm1
movups xmm1, xmmword [rax + 0x30]
movups xmmword [rcx + 0x20], xmm0
movups xmm0, xmmword [rax + 0x40]
mov eax, dword [r14 + 0x230]
mov ebx, eax
movups xmmword [rcx + 0x30], xmm1
movups xmmword [rcx + 0x40], xmm0
mov rcx, qword [r14 + 0x228]
cmp eax, 0x104
jae 0x18000e544
add rbx, rbx
mov rdx, rcx
mov r8, rbx
lea rcx, [rbp + 0x4dc]
call sub.msvcrt.dll_memcpy
mov word [rbp + rbx + 0x4dc], si
lea rcx, [rbp + 0x4dc]
mov word [rbp + 0x6e4], si
call qword [sym.imp.api_ms_win_core_file_l1_1_0.dll_GetFileAttributesW]
nop dword [rax + rax]
cmp eax, 0xffffffff
je 0x18000e5b3
mov dword [rbp + 0x4b0], eax
add r14, 0x218
je 0x18000e5d3
mov rbx, qword [r14 + 0x10]
call fcn.180006390
test al, al
je 0x18000e5d3
mov rax, qword [rbp + 0x208]
movabs r10, 0xa83017b4345c9970
mov rax, qword [rax + 0x20]
lea rcx, [rbp + 0x208]
mov edx, 0x103
call qword [0x1800214b0]
test al, al
je 0x18000e5d3
inc rdi
cmp word [rbx + rdi*2], si
jne 0x180003d14
mov rax, qword [rbp + 0x208]
movabs r10, 0xa83017b4345c9970
mov rax, qword [rax + 0x20]
lea rcx, [rbp + 0x208]
mov edx, edi
call qword [0x1800214b0]
test al, al
je 0x18000e5c2
mov rcx, qword [rbp + 0x218]
mov rdx, rbx
mov r8d, edi
add r8, r8
call sub.msvcrt.dll_memcpy
lea rcx, [rbp - 0x10]
call fcn.1800067a0
lea rax, [rbp + 0x250]
mov rdx, r15
lea rcx, [rbp + 0x4b0]
lea rax, [rax + 0x80]
movups xmm0, xmmword [rcx]
movups xmm1, xmmword [rcx + 0x10]
lea rcx, [rcx + 0x80]
movups xmmword [rax - 0x80], xmm0
movups xmm0, xmmword [rcx - 0x60]
movups xmmword [rax - 0x70], xmm1
movups xmm1, xmmword [rcx - 0x50]
movups xmmword [rax - 0x60], xmm0
movups xmm0, xmmword [rcx - 0x40]
movups xmmword [rax - 0x50], xmm1
movups xmm1, xmmword [rcx - 0x30]
movups xmmword [rax - 0x40], xmm0
movups xmm0, xmmword [rcx - 0x20]
movups xmmword [rax - 0x30], xmm1
movups xmm1, xmmword [rcx - 0x10]
movups xmmword [rax - 0x20], xmm0
movups xmmword [rax - 0x10], xmm1
sub rdx, 1
jne 0x180003d78
movups xmm0, xmmword [rcx]
movups xmm1, xmmword [rcx + 0x10]
movups xmmword [rax], xmm0
movups xmm0, xmmword [rcx + 0x20]
movups xmmword [rax + 0x10], xmm1
movups xmm1, xmmword [rcx + 0x30]
movups xmmword [rax + 0x20], xmm0
movups xmm0, xmmword [rcx + 0x40]
mov rcx, qword [r14 + 0x10]
movups xmmword [rax + 0x30], xmm1
movups xmmword [rax + 0x40], xmm0
mov eax, dword [r14 + 0x18]
mov ebx, eax
cmp eax, 0x104
jae 0x18000e5e3
add rbx, rbx
mov rdx, rcx
mov r8, rbx
lea rcx, [rbp + 0x27c]
call sub.msvcrt.dll_memcpy
mov word [rbp + rbx + 0x27c], si
mov ebx, dword [rbp + 0x250]
lea r9, [rsp + 0x60]
mov rcx, qword [rbp + 0x218]
lea rdx, [rsp + 0x40]
xor r8d, r8d
mov byte [rbp + 0x4a0], sil
and ebx, 0xfffffffe
call qword [sym.imp.ntdll.dll_RtlDosPathNameToRelativeNtPathName_U]
nop dword [rax + rax]
test al, al
je 0x18000e64f
mov rdi, qword [rsp + 0x48]
cmp word [rsp + 0x60], si
jne 0x18000e666
mov rax, rsi
mov qword [rsp + 0x70], rax
xorps xmm0, xmm0
mov qword [rbp - 0x78], rax
lea rax, [rsp + 0x40]
mov dword [rbp - 0x80], 0x30
mov qword [rbp - 0x70], rax
mov dword [rbp - 0x68], 0x40
movdqu xmmword [rbp - 0x60], xmm0
cmp byte [rbp + 0x4a0], sil
jne 0x18000e67a
mov dword [rsp + 0x28], esi
lea r9, [rsp + 0x50]
lea r8, [rbp - 0x80]
mov dword [rsp + 0x20], 7
mov edx, 0x100
lea rcx, [rsp + 0x30]
call qword [sym.imp.ntdll.dll_NtOpenFile]
nop dword [rax + rax]
lea rcx, [rsp + 0x60]
mov esi, eax
call qword [sym.imp.ntdll.dll_RtlReleaseRelativeName]
nop dword [rax + rax]
mov rcx, qword gs:[0x60]
mov r8, rdi
xor edx, edx
mov rcx, qword [rcx + 0x30]
call qword [sym.imp.ntdll.dll_RtlFreeHeap]
nop dword [rax + rax]
test esi, esi
js 0x18000e684
mov rdi, qword [rsp + 0x30]
cmp rdi, 0xffffffffffffffff
je 0x180003f6d
xor eax, eax
lea r8, [rbp - 0x50]
mov qword [rbp - 0x30], rax
xorps xmm0, xmm0
mov eax, ebx
mov r9d, 0x28
bts eax, 7
xor edx, edx
mov rcx, rdi
mov dword [rbp - 0x30], eax
movups xmmword [rbp - 0x50], xmm0
movups xmmword [rbp - 0x40], xmm0
call qword [sym.imp.api_ms_win_core_file_l1_1_0.dll_SetFileInformationByHandle]
nop dword [rax + rax]
mov rcx, rdi
test eax, eax
je 0x180003f61
mov eax, dword [rbp + 0x250]
and eax, 0xffe54558
or eax, ebx
mov dword [rbp + 0x250], eax
call qword [sym.imp.ntdll.dll_NtClose]
nop dword [rax + rax]
mov r15, qword [rsp + 0x868]
movzx eax, r12b
mov rcx, qword [rbp + 0x700]
xor rcx, rsp
call fcn.18000d460
add rsp, 0x810
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret
mov rcx, r15
call qword [sym.imp.api_ms_win_core_file_l1_1_0.dll_GetFileAttributesW]
nop dword [rax + rax]
cmp eax, 0xffffffff
je 0x180003b17
jmp 0x18000e4fc
xor r12b, r12b
jmp 0x180003f6d
test al, 7
je 0x180003b17
and eax, 0xfffffff8
mov rcx, r15
mov edx, eax
call qword [sym.imp.api_ms_win_core_file_l1_1_0.dll_SetFileAttributesW]
nop dword [rax + rax]
test eax, eax
jne 0x180003b17
mov rbx, qword [rsp + 0x38]
xor r12b, r12b
test rbx, rbx
je 0x180003f6d
call qword [sym.imp.api_ms_win_core_errorhandling_l1_1_0.dll_GetLastError]
nop dword [rax + rax]
mov dword [rbx], eax
jmp 0x180003f6d
lea rdx, [rbp + 0x4dc]
mov rax, r15
lea rdx, [rdx + 0x80]
movups xmm0, xmmword [rcx]
lea rcx, [rcx + 0x80]
movups xmmword [rdx - 0x80], xmm0
movups xmm1, xmmword [rcx - 0x70]
movups xmmword [rdx - 0x70], xmm1
movups xmm0, xmmword [rcx - 0x60]
movups xmmword [rdx - 0x60], xmm0
movups xmm1, xmmword [rcx - 0x50]
movups xmmword [rdx - 0x50], xmm1
movups xmm0, xmmword [rcx - 0x40]
movups xmmword [rdx - 0x40], xmm0
movups xmm1, xmmword [rcx - 0x30]
movups xmmword [rdx - 0x30], xmm1
movups xmm0, xmmword [rcx - 0x20]
movups xmmword [rdx - 0x20], xmm0
movups xmm1, xmmword [rcx - 0x10]
movups xmmword [rdx - 0x10], xmm1
sub rax, 1
jne 0x18000e54e
mov rax, qword [rcx]
mov qword [rdx], rax
mov word [rbp + 0x6e2], si
jmp 0x180003c9e
and dword [rbp + 0x4b0], 0xffffefff
jmp 0x180003cc7
mov ecx, 0xc0000017
call qword [sym.imp.ntdll.dll_RtlSetLastWin32ErrorAndNtStatusFromNtStatus]
nop dword [rax + rax]
mov rbx, qword [rsp + 0x38]
mov dword [rbx], 2
jmp 0x180003fb8
lea rdx, [rbp + 0x27c]
lea rdx, [rdx + 0x80]
movups xmm0, xmmword [rcx]
lea rcx, [rcx + 0x80]
movups xmmword [rdx - 0x80], xmm0
movups xmm1, xmmword [rcx - 0x70]
movups xmmword [rdx - 0x70], xmm1
movups xmm0, xmmword [rcx - 0x60]
movups xmmword [rdx - 0x60], xmm0
movups xmm1, xmmword [rcx - 0x50]
movups xmmword [rdx - 0x50], xmm1
movups xmm0, xmmword [rcx - 0x40]
movups xmmword [rdx - 0x40], xmm0
movups xmm1, xmmword [rcx - 0x30]
movups xmmword [rdx - 0x30], xmm1
movups xmm0, xmmword [rcx - 0x20]
movups xmmword [rdx - 0x20], xmm0
movups xmm1, xmmword [rcx - 0x10]
movups xmmword [rdx - 0x10], xmm1
sub r15, 1
jne 0x18000e5ea
mov rax, qword [rcx]
mov qword [rdx], rax
mov word [rbp + 0x482], si
jmp 0x180003e23
mov ecx, 0xc000003a
call qword [sym.imp.ntdll.dll_RtlSetLastWin32ErrorAndNtStatusFromNtStatus]
nop dword [rax + rax]
nop
jmp 0x180003f6d
movups xmm0, xmmword [rsp + 0x60]
mov rax, qword [rsp + 0x70]
movups xmmword [rsp + 0x40], xmm0
jmp 0x180003e73
mov esi, 0x200000
jmp 0x180003ea3
mov ecx, esi
call qword [sym.imp.ntdll.dll_RtlSetLastWin32ErrorAndNtStatusFromNtStatus]
nop dword [rax + rax]
nop
jmp 0x180003f6d