Function at 0x14001a260
Capabilities:
Get file attributes
Set file attributes

Disassembly:
mov rax, rsp
mov qword [rax + 0x18], rbx
mov qword [rax + 0x20], r9
mov qword [rax + 0x10], rdx
mov qword [rax + 8], rcx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rax - 0x5f]
sub rsp, 0xc0
xor r13d, r13d
mov r15, r9
mov esi, r13d
mov r12, r8
mov qword [rbp - 0x39], rsi
cmp rdx, 0xffffffffffffffff
je 0x14001a708
test r8, r8
je 0x14001a708
movzx eax, word [r8]
mov r14, r8
cmp r13w, ax
je 0x14001a347
lea rcx, str.WindowsWinSxS_
mov rdi, rcx
cmp r13w, ax
je 0x14001a32a
xor r15d, r15d
lea rsi, str.WindowsWinSxS_
cmp r15w, word [rdi]
je 0x14001a318
mov r13, r14
sub r13, rsi
movzx ecx, word [rdi + r13]
call qword [sym.imp.msvcrt.dll_towupper]
nop dword [rax + rax]
movzx ecx, word [rdi]
movzx ebx, ax
call qword [sym.imp.msvcrt.dll_towupper]
nop dword [rax + rax]
movzx eax, ax
cmp ebx, eax
jne 0x14001a318
add rdi, 2
cmp r15w, word [rdi + r13]
jne 0x14001a2d7
mov rsi, qword [rbp - 0x39]
lea rcx, str.WindowsWinSxS_
mov r15, qword [rbp + 0x7f]
xor r13d, r13d
cmp r13w, word [rdi]
je 0x14001a5be
add r14, 2
movzx eax, word [r14]
cmp r13w, ax
jne 0x14001a2c4
movzx eax, word [r12]
mov r14, r12
cmp r13w, ax
je 0x14001a3d9
lea rcx, [0x14006fcd8]
mov rdi, rcx
cmp r13w, ax
je 0x14001a3c1
xor r15d, r15d
lea rsi, [0x14006fcd8]
movzx ecx, word [rdi]
cmp r15w, cx
je 0x14001a3af
call qword [sym.imp.msvcrt.dll_towupper]
nop dword [rax + rax]
mov r13, r14
movzx ebx, ax
sub r13, rsi
movzx ecx, word [rdi + r13]
call qword [sym.imp.msvcrt.dll_towupper]
nop dword [rax + rax]
movzx eax, ax
cmp eax, ebx
jne 0x14001a3af
add rdi, 2
cmp r15w, word [rdi + r13]
jne 0x14001a36e
mov rsi, qword [rbp - 0x39]
lea rcx, [0x14006fcd8]
mov r15, qword [rbp + 0x7f]
xor r13d, r13d
cmp r13w, word [rdi]
je 0x14001a5be
add r14, 2
movzx eax, word [r14]
cmp r13w, ax
jne 0x14001a35b
mov rbx, qword [rbp + 0x67]
test rbx, rbx
je 0x14001a466
cmp qword [rbx + 0x40], r13
mov rax, rbx
mov edi, 0x40000000
cmovne rax, qword [rbx + 0x40]
test dword [rax + 0x24], edi
jne 0x14001a466
mov rcx, rbx
call fcn.140007a7c
test rax, rax
je 0x14001a40e
mov rdx, qword [rax]
jmp 0x14001a411
mov rdx, r13
test rdx, rdx
je 0x14001a466
test r15, r15
je 0x14001a613
cmp word [r15], r13w
je 0x14001a466
call fcn.140019fa4
test eax, eax
jns 0x14001a443
mov r9d, eax
lea rcx, str.WIMSetFileShortName
mov r8d, 0x267
call fcn.1400064e0
cmp qword [rbx + 0x40], r13
lea rdx, [rbp - 0x39]
mov rax, rbx
mov rcx, rbx
cmovne rax, qword [rbx + 0x40]
xor r8d, r8d
mov eax, dword [rax + 0x24]
or eax, edi
mov dword [rbp - 0x39], eax
call fcn.14000757c
test r15, r15
je 0x14001a613
xorps xmm0, xmm0
lea rdx, [rbp - 0x31]
xor r9d, r9d
xor r8d, r8d
mov rcx, r12
movups xmmword [rbp - 0x31], xmm0
call qword [sym.imp.ntdll.dll_RtlDosPathNameToNtPathName_U]
nop dword [rax + rax]
test al, al
je 0x14001a5fa
mov dword [rsp + 0x50], r13d
lea rax, [rbp - 0x31]
mov qword [rsp + 0x48], r13
lea r9, [rbp - 0x21]
mov dword [rsp + 0x40], 0x4020
lea r8, [rbp - 0x11]
mov dword [rsp + 0x38], 1
lea rcx, [rbp - 0x39]
xorps xmm0, xmm0
mov dword [rsp + 0x30], 7
mov dword [rsp + 0x28], 0x80
mov edx, 0x100080
mov qword [rsp + 0x20], r13
mov qword [rbp - 0x39], r13
movups xmmword [rbp - 0x21], xmm0
mov qword [rbp - 0x11], 0x30
mov qword [rbp + 7], 0x40
mov qword [rbp - 9], r13
mov qword [rbp - 1], rax
movdqu xmmword [rbp + 0xf], xmm0
call qword [sym.imp.ntdll.dll_NtCreateFile]
nop dword [rax + rax]
test eax, eax
js 0x14001a5fa
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
nop dword [rax + rax]
xor edx, edx
mov rcx, rax
lea r8d, [rdx + 0x28]
call qword [sym.imp.KERNEL32.dll_HeapAlloc]
nop dword [rax + rax]
mov rcx, qword [rbp - 0x39]
lea rdx, [rbp - 0x21]
mov r8, rax
mov dword [rsp + 0x20], FDICopy
mov r9d, 0x28
mov rbx, rax
call qword [sym.imp.ntdll.dll_NtQueryInformationFile]
nop dword [rax + rax]
test eax, eax
js 0x14001a5c5
or r8, 0xffffffffffffffff
inc r8
cmp word [r15 + r8*2], r13w
jne 0x14001a568
lea rdx, [rbx + 4]
mov rcx, r15
call qword [sym.imp.msvcrt.dll_wcsncmp]
nop dword [rax + rax]
test eax, eax
jne 0x14001a5c5
test rbx, rbx
je 0x14001a5ae
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
nop dword [rax + rax]
mov r8, rbx
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapFree]
nop dword [rax + rax]
mov rcx, qword [rbp - 0x39]
call qword [sym.imp.ntdll.dll_NtClose]
nop dword [rax + rax]
xor eax, eax
jmp 0x14001a70d
test rbx, rbx
je 0x14001a5ea
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
nop dword [rax + rax]
mov r8, rbx
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapFree]
nop dword [rax + rax]
mov rcx, qword [rbp - 0x39]
call qword [sym.imp.ntdll.dll_NtClose]
nop dword [rax + rax]
or rax, 0xffffffffffffffff
inc rax
cmp word [r15 + rax*2], r13w
jne 0x14001a5fe
mov rsi, rax
add esi, esi
lea r14d, [rsi + 0xa]
jmp 0x14001a620
lea r15, [0x14006fd38]
mov r14d, 8
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
nop dword [rax + rax]
mov r8d, r14d
mov edx, 8
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapAlloc]
nop dword [rax + rax]
mov rdi, rax
mov ebx, r13d
test rax, rax
jne 0x14001a691
call qword [sym.imp.KERNEL32.dll_GetLastError]
nop dword [rax + rax]
movzx ecx, ax
mov r12d, 0x80070000
or ecx, r12d
test eax, eax
cmovle ecx, eax
test ecx, ecx
jns 0x14001a688
call qword [sym.imp.KERNEL32.dll_GetLastError]
nop dword [rax + rax]
movzx ebx, ax
or ebx, r12d
test eax, eax
cmovle ebx, eax
jmp 0x14001a68d
mov ebx, 0x80004005
test ebx, ebx
js 0x14001a704
mov dword [rdi], esi
test esi, esi
je 0x14001a6ad
mov edx, esi
lea rcx, [rdi + 4]
shr rdx, 1
mov r8, r15
inc rdx
call fcn.1400035ec
mov ebx, eax
test ebx, ebx
js 0x14001a6e4
mov rcx, qword [rbp + 0x6f]
lea rdx, [rbp - 0x21]
xorps xmm0, xmm0
mov dword [rsp + 0x20], 0x28
mov r9d, r14d
mov r8, rdi
movups xmmword [rbp - 0x21], xmm0
call qword [sym.imp.ntdll.dll_NtSetInformationFile]
nop dword [rax + rax]
test eax, eax
jns 0x14001a6e4
mov ebx, eax
bts ebx, 0x1c
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
nop dword [rax + rax]
mov r8, rdi
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapFree]
nop dword [rax + rax]
mov eax, ebx
jmp 0x14001a70d
mov eax, 0x80070057
mov rbx, qword [rsp + 0x110]
add rsp, 0xc0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret