Function at 0x3a98dbf90
Capabilities:
Set file attributes

Disassembly:
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x70
mov rdi, rdx
movzx edx, byte [r8 + 0x23]
mov rbp, rcx
mov rsi, r8
mov rbx, r9
mov eax, edx
and eax, 0xffffffe0
cmp al, 0x20
je 0x3a98dc130
cmp al, 0x40
je 0x3a98dc188
cmp dl, 0x1f
ja 0x3a98dc108
cmp dword [rbx + 0x9260], 0x200
je 0x3a98f4a4f
mov rcx, qword [rsi]
mov r13, qword [0x3a9979990]
cmp rcx, r13
jne 0x3a98dc1e0
mov rdx, rbx
mov rcx, rdi
call fcn.3a98daad0
mov dword [rsp + 0x50], 0
lea r14, [rbx + 0x220]
lea rcx, [rsp + 0x60]
mov edx, 0x100002
mov qword [rsp + 0x48], 0
mov r9, r14
lea r8, [rbx + 0x1f0]
mov dword [rsp + 0x40], 0x204024
mov dword [rsp + 0x38], 3
mov dword [rsp + 0x30], 7
mov dword [rsp + 0x28], 0
mov qword [rsp + 0x20], 0
call sub.ntdll.dll_NtCreateFile
mov r12d, eax
test eax, eax
js 0x3a98dc30f
mov edx, dword [rbx + 0x9260]
mov rcx, qword [rdi]
mov byte [rbx + rdx + 0x9264], 0
mov rax, rdx
test byte [rcx + 0x35], 2
je 0x3a98dc0a8
mov ecx, dword [rbx + 0x114]
test ecx, ecx
je 0x3a98dc0a8
mov rcx, qword [rsp + 0x60]
cmp qword [rsi], r13
jne 0x3a98dc240
mov byte [rbx + rdx + 0x9264], 1
mov byte [rbx + 0x9464], 1
jmp 0x3a98dc0df
mov rax, qword [rbp + 0x10]
mov rcx, qword [rsp + 0x60]
mov rdx, r14
mov dword [rsp + 0x20], 0x13
mov r9d, 8
lea r8, [rsp + 0x68]
mov qword [rsp + 0x68], rax
call sub.ntdll.dll_NtSetInformationFile
mov edx, dword [rbx + 0x9260]
mov rcx, qword [rsp + 0x60]
mov rax, rdx
add eax, 1
mov dword [rbx + 0x9260], eax
mov qword [rbx + rdx*8 + 0x8260], rcx
xor eax, eax
add rsp, 0x70
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
ret
mov r8d, 0x7f9
lea rdx, str.src_win32_apply.c
lea rcx, str.strm__stream_type__STREAM_TYPE_DATA
call qword [sym.imp.msvcrt.dll__wassert]
jmp 0x3a98dbfcd
mov rsi, qword [rcx + 0x10]
mov rcx, qword [r9 + 0x238]
cmp qword [r9 + 0x248], rsi
jb 0x3a98dc288
mov rax, qword [rbx + 0x9470]
lea rsi, [rbx + 0x9468]
lea rdx, [rdi + 0x50]
mov qword [rbx + 0x240], rcx
movq xmm0, rsi
mov qword [rbx + 0x9470], rdx
movq xmm1, rax
punpcklqdq xmm0, xmm1
movups xmmword [rdi + 0x50], xmm0
mov qword [rax], rdx
jmp 0x3a98dc0f0
mov rsi, qword [rcx + 0x10]
mov rcx, qword [r9 + 0x238]
cmp qword [r9 + 0x248], rsi
jb 0x3a98dc2b0
mov rax, qword [rbx + 0x9480]
lea rsi, [rbx + 0x9478]
lea rdx, [rdi + 0x50]
mov qword [rbx + 0x240], rcx
movq xmm0, rsi
mov qword [rbx + 0x9480], rdx
movq xmm2, rax
punpcklqdq xmm0, xmm2
movups xmmword [rdi + 0x50], xmm0
mov qword [rax], rdx
jmp 0x3a98dc0f0
call fcn.3a98ad490
mov rdx, rbx
mov rcx, rdi
mov r14, qword [rsi]
mov r12, rax
call fcn.3a98daad0
movzx ecx, word [rbx + 0x1e0]
mov r8d, 0x3a
mov rdx, r14
and ecx, 0xfffe
add rcx, qword [rbx + 0x1e8]
mov word [rcx], r8w
lea r8, [r12 + r12]
add rcx, 2
lea r12d, [r12 + r12 + 2]
call sub.msvcrt.dll_memcpy
add word [rbx + 0x1e0], r12w
jmp 0x3a98dbffb
mov qword [rsp + 0x30], 0
xor r9d, r9d
xor r8d, r8d
mov edx, 0x900c4
mov dword [rsp + 0x28], 0
mov qword [rsp + 0x20], 0
call fcn.3a98daa10
mov esi, eax
test eax, eax
js 0x3a98dc2e2
mov edx, dword [rbx + 0x9260]
mov rcx, qword [rsp + 0x60]
mov rax, rdx
jmp 0x3a98dc092
mov rdx, rsi
call fcn.3a98cd970
mov rcx, rax
test rax, rax
je 0x3a98dc2d8
mov qword [rbx + 0x238], rax
mov qword [rbx + 0x248], rsi
jmp 0x3a98dc148
mov rdx, rsi
call fcn.3a98cd970
mov rcx, rax
test rax, rax
je 0x3a98dc2d8
mov qword [rbx + 0x238], rax
mov qword [rbx + 0x248], rsi
jmp 0x3a98dc1a0
mov eax, 0x27
jmp 0x3a98dc0f2
mov rcx, rbx
call fcn.3a98dacc0
lea rdx, str.Cant_set_sparse_flag_on___ls_
mov ecx, esi
mov r8, rax
call fcn.3a98f4982
mov rcx, qword [rsp + 0x60]
call sub.ntdll.dll_NtClose
mov eax, 0x39
jmp 0x3a98dc0f2
mov rcx, rbx
call fcn.3a98dacc0
lea rdx, str.Cant_open___ls__for_writing
mov ecx, r12d
mov r8, rax
call fcn.3a98f4982
mov eax, 0x2f
jmp 0x3a98dc0f2
lea rcx, str.Cant_extract_data:_too_many_open_files_
call fcn.3a98f204c
mov eax, 0x44
jmp 0x3a98dc0f2