Function at 0x140019780
Capabilities:
Enumerate files on windows
Enumerate files recursively
Set file attributes

Disassembly:
mov qword [rsp + 8], rcx
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x350
mov rsi, rcx
xor r14d, r14d
mov rcx, qword [rcx + 0x10]
movabs rax, 0x7ffffffffffffffe
sub rax, rcx
cmp rax, 2
jb 0x14001a2d2
mov r9, rsi
cmp qword [rsi + 0x18], 7
jbe 0x1400197c5
mov r9, qword [rsi]
mov qword [rsp + 0x30], 2
lea rax, [0x140057278]
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], rcx
lea rcx, [rsp + 0x40]
call fcn.140008ae0
nop
mov rbx, qword [0x14006a588]
mov rdi, qword [0x14006a590]
nop dword [rax + rax]
cmp rbx, rdi
je 0x140019914
mov rdx, rbx
cmp qword [rbx + 0x18], 7
jbe 0x140019816
mov rdx, qword [rbx]
lea rcx, [rsp + 0x40]
cmp qword [rsp + 0x58], 7
cmova rcx, qword [rsp + 0x40]
call qword [sym.imp.SHLWAPI.dll_StrStrIW]
test rax, rax
je 0x14001990b
cmp qword [rbx + 0x18], 7
jbe 0x140019840
mov rbx, qword [rbx]
lea rdx, [rsp + 0x40]
cmp qword [rsp + 0x58], 7
cmova rdx, qword [rsp + 0x40]
mov r8, rbx
lea rcx, str.____Scan__Skip_directory:__s__found__s_n
call fcn.140001e60
nop
mov rdx, qword [rsp + 0x58]
cmp rdx, 7
jbe 0x1400198a3
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x40]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14001989e
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14001a320
call fcn.1400253f4
mov qword [rsp + 0x50], r14
mov qword [rsp + 0x58], 7
mov word [rsp + 0x40], r14w
mov rdx, qword [rsi + 0x18]
cmp rdx, 7
jbe 0x1400198f6
mov rcx, qword [rsi]
lea rdx, [rdx*2 + 2]
cmp rdx, 0x1000
jb 0x1400198f1
add rdx, 0x27
mov r8, qword [rcx - 8]
sub rcx, r8
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x14001a2f0
mov rcx, r8
call fcn.1400253f4
mov qword [rsi + 0x10], r14
mov qword [rsi + 0x18], 7
mov word [rsi], r14w
jmp 0x14001a2b9
add rbx, 0x20
jmp 0x140019800
xor edx, edx
mov r8d, 0x250
lea rcx, [rsp + 0x100]
call fcn.140047760
lea rcx, [rsp + 0x40]
cmp qword [rsp + 0x58], 7
cmova rcx, qword [rsp + 0x40]
mov dword [rsp + 0x28], 2
mov qword [rsp + 0x20], r14
xor r9d, r9d
lea r8, [rsp + 0x100]
lea edx, [r9 + 1]
call qword [sym.imp.KERNEL32.dll_FindFirstFileExW]
mov r12, rax
cmp rax, 0xffffffffffffffff
jne 0x140019a3a
call qword [sym.imp.KERNEL32.dll_GetLastError]
lea rdx, [rsp + 0x40]
cmp qword [rsp + 0x58], 7
cmova rdx, qword [rsp + 0x40]
mov r8d, eax
lea rcx, str.____Scan__Can_t_open_directory__s__error_0x_X_n
call fcn.140001e60
nop
mov rdx, qword [rsp + 0x58]
cmp rdx, 7
jbe 0x1400199d2
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x40]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1400199cd
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14001a320
call fcn.1400253f4
mov qword [rsp + 0x50], r14
mov qword [rsp + 0x58], 7
mov word [rsp + 0x40], r14w
mov rdx, qword [rsi + 0x18]
cmp rdx, 7
jbe 0x140019a25
mov rcx, qword [rsi]
lea rdx, [rdx*2 + 2]
cmp rdx, 0x1000
jb 0x140019a20
add rdx, 0x27
mov r8, qword [rcx - 8]
sub rcx, r8
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x14001a2f0
mov rcx, r8
call fcn.1400253f4
mov qword [rsi + 0x10], r14
mov qword [rsi + 0x18], 7
mov word [rsi], r14w
jmp 0x14001a2b9
lea rdx, [0x140057330]
movabs rbx, 0x7fffffffffffffff
movabs r13, 0x7ffffffffffffffe
nop word [rax + rax]
movzx ecx, word [rsp + 0x12c]
movzx eax, word [rsp + 0x12e]
cmp cx, 0x2e
jne 0x140019a99
cmp ax, cx
jne 0x140019a8a
cmp word [rsp + 0x130], 0
je 0x14001a1ea
cmp cx, 0x2e
jne 0x140019a99
test ax, ax
je 0x14001a1ea
mov rcx, qword [rsi + 0x10]
mov rax, r13
sub rax, rcx
cmp rax, 1
jb 0x14001a2d8
mov r9, rsi
cmp qword [rsi + 0x18], 7
jbe 0x140019aba
mov r9, qword [rsi]
mov qword [rsp + 0x30], 1
mov qword [rsp + 0x28], rdx
mov qword [rsp + 0x20], rcx
lea rcx, [rsp + 0x98]
call fcn.140008ae0
nop
lea rax, [rsp + 0x12c]
mov r8, 0xffffffffffffffff
nop word [rax + rax]
inc r8
cmp word [rax + r8*2], 0
jne 0x140019af0
lea rdx, [rsp + 0x12c]
lea rcx, [rsp + 0x98]
call fcn.1400064b0
movups xmm0, xmmword [rax]
movups xmmword [rsp + 0x88], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rsp + 0x60], xmm1
mov qword [rax + 0x10], r14
mov qword [rax + 0x18], 7
mov word [rax], r14w
mov rdx, qword [rsp + 0x58]
cmp rdx, 7
jbe 0x140019b83
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x40]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140019b71
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14001a2de
call fcn.1400253f4
movups xmm0, xmmword [rsp + 0x88]
movups xmm1, xmmword [rsp + 0x60]
movups xmmword [rsp + 0x40], xmm0
movups xmmword [rsp + 0x50], xmm1
mov rdx, qword [rsp + 0xb0]
cmp rdx, 7
jbe 0x140019bd5
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x98]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140019bd0
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14001a2e4
call fcn.1400253f4
mov rax, qword [0x140062cd0]
cmp qword [0x140062cc8], rax
je 0x140019d88
lea rdx, str.Program_Files
lea rcx, [rsp + 0x12c]
call qword [sym.imp.KERNEL32.dll_lstrcmpiW]
test eax, eax
jne 0x140019c1f
lea rdx, str.Program_Files__x86_
lea rcx, [rsp + 0x12c]
call qword [sym.imp.KERNEL32.dll_lstrcmpiW]
test eax, eax
je 0x140019d88
lea rcx, [rsp + 0x40]
cmp qword [rsp + 0x58], 7
cmova rcx, qword [rsp + 0x40]
lea rdx, str.Program_Files_
call qword [sym.imp.SHLWAPI.dll_StrStrIW]
test rax, rax
jne 0x140019c69
lea rcx, [rsp + 0x40]
cmp qword [rsp + 0x58], 7
cmova rcx, qword [rsp + 0x40]
lea rdx, str.Program_Files__x86__
call qword [sym.imp.SHLWAPI.dll_StrStrIW]
test rax, rax
je 0x140019d88
mov rbx, qword [0x140062cc8]
mov rdi, qword [0x140062cd0]
cmp rbx, rdi
je 0x140019cb6
nop dword [rax]
mov rdx, rbx
cmp qword [rbx + 0x18], 7
jbe 0x140019c8d
mov rdx, qword [rbx]
lea rcx, [rsp + 0x40]
cmp qword [rsp + 0x58], 7
cmova rcx, qword [rsp + 0x40]
call qword [sym.imp.SHLWAPI.dll_StrStrIW]
test rax, rax
jne 0x140019d7e
add rbx, 0x20
cmp rbx, rdi
jne 0x140019c80
lea rdx, [rsp + 0x40]
cmp qword [rsp + 0x58], 7
cmova rdx, qword [rsp + 0x40]
lea rcx, str.____Scan__Skip:__s_n
call fcn.140001e60
nop
mov rdx, qword [rsp + 0x58]
cmp rdx, 7
jbe 0x140019d16
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x40]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140019d11
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14001a320
call fcn.1400253f4
mov qword [rsp + 0x50], r14
mov qword [rsp + 0x58], 7
mov word [rsp + 0x40], r14w
mov rdx, qword [rsi + 0x18]
cmp rdx, 7
jbe 0x140019d69
mov rcx, qword [rsi]
lea rdx, [rdx*2 + 2]
cmp rdx, 0x1000
jb 0x140019d64
add rdx, 0x27
mov r8, qword [rcx - 8]
sub rcx, r8
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x14001a2f0
mov rcx, r8
call fcn.1400253f4
mov qword [rsi + 0x10], r14
mov qword [rsi + 0x18], 7
mov word [rsi], r14w
jmp 0x14001a2b9
movabs rbx, 0x7fffffffffffffff
test byte [rsp + 0x100], 0x10
je 0x140019ed5
lea rdx, [0x140062d68]
cmp qword [0x140062d80], 7
cmova rdx, qword [0x140062d68]
lea rcx, [rsp + 0x40]
cmp qword [rsp + 0x58], 7
cmova rcx, qword [rsp + 0x40]
call qword [sym.imp.SHLWAPI.dll_StrStrIW]
test rax, rax
jne 0x14001a1ea
xorps xmm0, xmm0
movups xmmword [rsp + 0x60], xmm0
mov qword [rsp + 0x70], r14
mov qword [rsp + 0x78], r14
mov rdi, qword [rsp + 0x50]
lea r15, [rsp + 0x40]
cmp qword [rsp + 0x58], 7
cmova r15, qword [rsp + 0x40]
cmp rdi, r13
ja 0x14001a2ea
mov qword [rsp + 0x78], 7
cmp rdi, 7
ja 0x140019e20
mov qword [rsp + 0x70], rdi
movups xmm0, xmmword [r15]
movups xmmword [rsp + 0x60], xmm0
jmp 0x140019ec6
mov rax, rdi
or rax, 7
cmp rax, r13
jbe 0x140019e32
lea rcx, [rbx + rbx]
jmp 0x140019e63
cmp rax, 0xa
mov ecx, 0xa
cmovb rax, rcx
lea rbx, [rax + 1]
movabs rax, 0x7fffffffffffffff
cmp rbx, rax
ja 0x14001a2f6
lea rcx, [rbx + rbx]
cmp rcx, 0x1000
jb 0x140019e92
lea rax, [rcx + 0x27]
cmp rax, rcx
jbe 0x14001a2fb
mov rcx, rax
call fcn.1400253fc
mov rcx, rax
test rax, rax
je 0x14001a300
add rax, 0x27
and rax, 0xffffffffffffffe0
mov qword [rax - 8], rcx
jmp 0x140019ea1
test rcx, rcx
je 0x140019e9e
call fcn.1400253fc
jmp 0x140019ea1
mov rax, r14
dec rbx
mov qword [rsp + 0x60], rax
mov qword [rsp + 0x70], rdi
mov qword [rsp + 0x78], rbx
lea r8, [rdi*2 + 2]
mov rdx, r15
mov rcx, rax
call fcn.1400470c0
lea rcx, [rsp + 0x60]
call fcn.140019780
jmp 0x14001a1ea
lea rdx, [0x140062c90]
cmp qword [0x140062ca8], 7
cmova rdx, qword [0x140062c90]
lea rcx, [rsp + 0x12c]
call qword [sym.imp.KERNEL32.dll_lstrcmpiW]
test eax, eax
je 0x14001a1ea
lea rcx, [0x140062d48]
cmp qword [0x140062d60], 7
cmova rcx, qword [0x140062d48]
lea r8, [rsp + 0x40]
cmp qword [rsp + 0x58], 7
cmova r8, qword [rsp + 0x40]
mov rdx, qword [rsp + 0x50]
cmp rdx, qword [0x140062d58]
jne 0x140019f5d
test rdx, rdx
je 0x14001a1ea
sub r8, rcx
movzx eax, word [rcx + r8]
cmp ax, word [rcx]
jne 0x140019f5d
add rcx, 2
sub rdx, 1
jne 0x140019f44
jmp 0x14001a1ea
lea rcx, [rsp + 0x12c]
call qword [sym.imp.SHLWAPI.dll_PathFindExtensionW]
mov r15, rax
mov rbx, qword [0x140062dc0]
mov rdi, qword [0x140062dc8]
cmp rbx, rdi
je 0x140019fa8
mov rdx, rbx
cmp qword [rbx + 0x18], 7
jbe 0x140019f8e
mov rdx, qword [rbx]
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_lstrcmpiW]
test eax, eax
je 0x14001a1ea
add rbx, 0x20
cmp rbx, rdi
jne 0x140019f81
lea rdx, [0x140062df8]
cmp qword [0x140062e10], 7
cmova rdx, qword [0x140062df8]
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_lstrcmpiW]
test eax, eax
je 0x14001a1ea
mov edx, dword [rsp + 0x100]
test dl, 1
je 0x14001a023
and edx, 0xfffffffe
mov dword [rsp + 0x100], edx
lea rcx, [rsp + 0x12c]
call qword [sym.imp.KERNEL32.dll_SetFileAttributesW]
test eax, eax
jne 0x14001a023
call qword [sym.imp.KERNEL32.dll_GetLastError]
lea rdx, [rsp + 0x40]
cmp qword [rsp + 0x58], 7
cmova rdx, qword [rsp + 0x40]
mov r8d, eax
lea rcx, str.____Scan__Can_t_unset_attributes_for:__s__error:_0x_X_n
call fcn.140001e60
jmp 0x14001a1ea
mov ecx, 0x28
call fcn.1400253fc
mov rdi, rax
xorps xmm0, xmm0
movups xmmword [rax], xmm0
mov qword [rax + 0x10], r14
mov qword [rax + 0x18], 7
mov word [rax], r14w
xor eax, eax
mov qword [rdi + 0x20], rax
lea rax, [rsp + 0x40]
cmp rdi, rax
je 0x14001a0a6
mov rdx, qword [rsp + 0x50]
lea r9, [rsp + 0x40]
cmp qword [rsp + 0x58], 7
cmova r9, qword [rsp + 0x40]
mov rax, qword [rdi + 0x18]
cmp rdx, rax
ja 0x14001a09e
mov r15, rdi
cmp rax, 7
jbe 0x14001a081
mov r15, qword [rdi]
mov qword [rdi + 0x10], rdx
lea rbx, [rdx + rdx]
mov r8, rbx
mov rdx, r9
mov rcx, r15
call fcn.1400470c0
mov word [r15 + rbx], r14w
jmp 0x14001a0a6
mov rcx, rdi
call fcn.140007710
mov eax, dword [rsp + 0x120]
mov dword [rdi + 0x20], eax
mov eax, dword [rsp + 0x11c]
mov dword [rdi + 0x24], eax
mov r13, qword [0x14006a4c0]
test r13, r13
je 0x14001a1d8
lea rax, vtable.std::_Func_impl_no_alloc_class__void___cdecl_ScanDirectory_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t___::_58::_lambda_1___void___.0
mov qword [rsp + 0xb8], rax
mov qword [rsp + 0xc0], rdi
lea rax, [rsp + 0xb8]
mov qword [rsp + 0xf0], rax
lea rbx, [r13 + 0x40]
mov qword [rsp + 0x398], rbx
mov rcx, rbx
call fcn.14002513c
test eax, eax
jne 0x14001a306
mov eax, dword [rbx + 0x4c]
cmp eax, 0x7fffffff
je 0x14001a310
mov rax, qword [r13 + 0x38]
inc rax
cmp qword [r13 + 0x28], rax
ja 0x14001a131
lea rcx, [r13 + 0x18]
call fcn.14001f0b0
mov rdx, qword [r13 + 0x28]
dec rdx
mov rcx, rdx
and rcx, qword [r13 + 0x30]
mov qword [r13 + 0x30], rcx
add rcx, qword [r13 + 0x38]
and rdx, rcx
lea r15, [rdx*8]
mov rax, qword [r13 + 0x20]
cmp qword [r15 + rax], 0
jne 0x14001a16f
mov ecx, 0x40
call fcn.1400253fc
mov rcx, qword [r13 + 0x20]
mov qword [r15 + rcx], rax
mov rax, qword [r13 + 0x20]
mov r15, qword [r15 + rax]
mov qword [rsp + 0x3a0], r15
mov qword [r15 + 0x38], r14
mov rcx, qword [rsp + 0xf0]
test rcx, rcx
je 0x14001a19c
mov rax, qword [rcx]
mov rdx, r15
call qword [rax]
mov qword [r15 + 0x38], rax
inc qword [r13 + 0x38]
mov rcx, rbx
call fcn.140025160
lea rcx, [r13 + 0x90]
call fcn.1400239dc
nop
mov rcx, qword [rsp + 0xf0]
test rcx, rcx
je 0x14001a1e0
mov rax, qword [rcx]
lea rdx, [rsp + 0xb8]
cmp rcx, rdx
setne dl
call qword [rax + 0x20]
jmp 0x14001a1e0
mov rcx, rdi
call fcn.140018710
movabs r13, 0x7ffffffffffffffe
lea rdx, [rsp + 0x100]
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_FindNextFileW]
test eax, eax
movabs rbx, 0x7fffffffffffffff
lea rdx, [0x140057330]
jne 0x140019a60
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_FindClose]
nop
mov rdx, qword [rsp + 0x58]
cmp rdx, 7
jbe 0x14001a261
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x40]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14001a25b
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14001a320
call fcn.1400253f4
nop
jmp 0x14001a26e
mov rdx, qword [rsi + 0x18]
cmp rdx, 7
jbe 0x14001a2a9
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsi]
cmp rdx, 0x1000
jb 0x14001a2a4
add rdx, 0x27
mov r8, qword [rcx - 8]
sub rcx, r8
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x14001a2cc
mov rcx, r8
call fcn.1400253f4
mov qword [rsi + 0x10], r14
mov qword [rsi + 0x18], 7
mov word [rsi], r14w
add rsp, 0x350
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
ret
call fcn.140036744
nop
call fcn.1400016e0
nop
call fcn.1400016e0
nop
call fcn.140036744
nop
call fcn.140036744
int3
call fcn.1400016e0
nop
call fcn.140036744
nop
call fcn.140001640
call fcn.140001640
call fcn.140036744
nop
mov ecx, 5
call fcn.1400250a0
dec eax
mov dword [rbx + 0x4c], eax
mov ecx, 6
call fcn.1400250a0
nop
call fcn.140036744
int3