Function at 0x140030368
Capabilities:
Set file attributes

Disassembly:
mov rax, rsp
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rbp
mov qword [rax + 0x20], rsi
mov qword [rax + 0x18], r8
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x40
mov rsi, qword [r8 + 0x60]
xor ebx, ebx
mov r15, r9
mov r14, rdx
mov r12, rcx
test rsi, rsi
je 0x1400305e5
xor edx, edx
call fcn.140019974
bt eax, 0x12
jae 0x1400305e5
mov edx, 0x80
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_SetFileAttributesW]
nop dword [rax + rax]
xor r13d, r13d
test rsi, rsi
je 0x1400305c6
mov r9, qword [rsi]
mov rdi, r13
mov qword [rsp + 0x30], r13
mov rbp, r13
cmp word [r9], r13w
je 0x140030484
mov r8, r14
lea rdx, str._s:_s
lea rcx, [rsp + 0x30]
call fcn.1400039f0
mov ebx, eax
test eax, eax
jns 0x140030418
mov r9d, eax
lea rcx, str.RestoreStreams
mov r8d, 0x503
call fcn.1400064e0
mov r15, r13
mov rdi, qword [rsp + 0x30]
test ebx, ebx
js 0x140030570
test rdi, rdi
je 0x1400304ef
xor r8d, r8d
xor edx, edx
mov rcx, rdi
call fcn.14000becc
mov rbp, rax
test rax, rax
jne 0x1400304ef
call qword [sym.imp.KERNEL32.dll_GetLastError]
nop dword [rax + rax]
movzx ecx, ax
or ecx, 0x80070000
test eax, eax
cmovle ecx, eax
test ecx, ecx
jns 0x1400304cd
call qword [sym.imp.KERNEL32.dll_GetLastError]
nop dword [rax + rax]
movzx ebx, ax
or ebx, 0x80070000
test eax, eax
cmovle ebx, eax
jmp 0x1400304d2
test r15, r15
je 0x140030420
cmp qword [r15], 0xffffffffffffffff
je 0x140030420
mov r8, r14
lea rdx, [0x140071718]
lea rcx, [rsp + 0x30]
call fcn.1400039f0
mov ebx, eax
test eax, eax
jns 0x1400304c3
mov r9d, eax
lea rcx, str.RestoreStreams
mov r8d, 0x50c
call fcn.1400064e0
jmp 0x14003041b
mov rdi, qword [rsp + 0x30]
jmp 0x140030428
mov ebx, 0x80004005
test ebx, ebx
jns 0x140030570
mov r9d, ebx
lea rcx, str.RestoreStreams
mov r8d, 0x519
call fcn.1400064e0
test ebx, ebx
js 0x140030570
test rbp, rbp
je 0x140030570
lea rdx, [rsi + 0x18]
mov dword [rsp + 0x28], r13d
xor r9d, r9d
mov qword [rsp + 0x20], r15
mov r8, rbp
mov rcx, r12
call fcn.14002c468
test eax, eax
jne 0x140030570
call qword [sym.imp.KERNEL32.dll_GetLastError]
nop dword [rax + rax]
movzx ecx, ax
or ecx, 0x80070000
test eax, eax
cmovle ecx, eax
test ecx, ecx
jns 0x140030552
call qword [sym.imp.KERNEL32.dll_GetLastError]
nop dword [rax + rax]
movzx ebx, ax
or ebx, 0x80070000
test eax, eax
cmovle ebx, eax
jmp 0x140030557
mov ebx, 0x80004005
test ebx, ebx
jns 0x140030570
mov r9d, ebx
lea rcx, str.RestoreStreams
mov r8d, 0x52a
call fcn.1400064e0
test rdi, rdi
je 0x140030595
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]
test rbp, rbp
je 0x1400305ba
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
nop dword [rax + rax]
mov r8, rbp
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapFree]
nop dword [rax + rax]
mov rsi, qword [rsi + 0x30]
test ebx, ebx
jns 0x1400303c8
mov r13, qword [rsp + 0x80]
mov rcx, r14
mov edx, dword [r13 + 0x1c]
call qword [sym.imp.KERNEL32.dll_SetFileAttributesW]
nop dword [rax + rax]
mov eax, ebx
jmp 0x1400305e7
xor eax, eax
lea r11, [rsp + 0x40]
mov rbx, qword [r11 + 0x30]
mov rbp, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
ret