Function at 0x140022334
Capabilities:
Enumerate files on windows
Enumerate files recursively

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x18], r8
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x2c0]
sub rsp, 0x3c0
xor ebx, ebx
lea r12, [rdx + 0x10]
mov dword [rbp + 0x318], ebx
mov rsi, rdx
mov qword [rcx], rbx
mov r13, r8
mov qword [rcx + 8], rbx
mov rdi, rcx
mov qword [rcx + 0x10], rbx
mov r15d, ebx
lea rdx, [0x14008cb44]
movabs r14, 0x7ffffffffffffffe
test r9b, r9b
je 0x140022786
mov rcx, qword [r12]
mov rax, r14
sub rax, rcx
cmp rax, 1
jb 0x140022ab4
cmp qword [rsi + 0x18], 7
mov r9, rsi
jbe 0x1400223b6
mov r9, qword [rsi]
mov qword [rsp + 0x30], 1
mov qword [rsp + 0x28], rdx
mov qword [rsp + 0x20], rcx
lea rcx, [rbp]
call fcn.140007ea8
cmp qword [rbp + 0x18], 7
lea rcx, [rbp]
mov r9d, 1
mov dword [rsp + 0x28], 2
cmova rcx, qword [rbp]
lea r8, [rbp + 0x70]
mov edx, r9d
mov qword [rsp + 0x20], rbx
call qword [sym.imp.KERNEL32.dll_FindFirstFileExW]
lea rcx, [rbp]
mov r13, rax
call fcn.140007a6c
cmp r13, 0xffffffffffffffff
je 0x140022a79
test byte [rbp + 0x70], 0x10
je 0x14002275a
or r15d, 2
mov qword [rbp - 0x50], rbx
xorps xmm0, xmm0
mov qword [rbp - 0x48], rbx
movups xmmword [rbp - 0x60], xmm0
or r8, 0xffffffffffffffff
lea rax, [rbp + 0x9c]
inc r8
cmp word [rax + r8*2], bx
jne 0x14002243e
lea rdx, [rbp + 0x9c]
lea rcx, [rbp - 0x60]
call fcn.140007b80
cmp qword [rbp - 0x48], 7
lea rcx, [rbp - 0x60]
cmova rcx, qword [rbp - 0x60]
cmp qword [rbp - 0x50], 1
jne 0x14002249d
lea rax, [0x14008cb38]
mov r8d, 1
mov rdx, rax
sub rcx, rax
movzx eax, word [rcx + rdx]
cmp ax, word [rdx]
jne 0x14002249d
add rdx, 2
sub r8, 1
jne 0x140022480
mov r10, qword [rbp - 0x68]
mov rcx, qword [rbp - 0x80]
jmp 0x140022517
or r15d, 4
mov qword [rbp - 0x70], rbx
xorps xmm0, xmm0
mov qword [rbp - 0x68], rbx
movups xmmword [rbp - 0x80], xmm0
or r8, 0xffffffffffffffff
lea rax, [rbp + 0x9c]
inc r8
cmp word [rax + r8*2], bx
jne 0x1400224bb
lea rdx, [rbp + 0x9c]
lea rcx, [rbp - 0x80]
call fcn.140007b80
mov r10, qword [rbp - 0x68]
lea r8, [rbp - 0x80]
mov rcx, qword [rbp - 0x80]
cmp r10, 7
cmova r8, rcx
cmp qword [rbp - 0x70], 2
jne 0x140022519
lea rax, [0x14008cb3c]
mov r9d, 2
mov rdx, rax
sub r8, rax
movzx eax, word [r8 + rdx]
cmp ax, word [rdx]
jne 0x140022519
add rdx, 2
sub r9, 1
jne 0x140022503
mov bl, 1
test r15b, 4
je 0x14002256d
and r15d, 0xfffffffb
cmp r10, 7
jbe 0x14002255b
lea rdx, [r10*2 + 2]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140022556
mov rcx, qword [rcx - 8]
add rdx, 0x27
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140022ac0
call fcn.140054430
xor eax, eax
mov qword [rbp - 0x68], 7
mov qword [rbp - 0x70], rax
mov word [rbp - 0x80], ax
mov rdx, qword [rbp - 0x48]
and r15d, 0xfffffffd
cmp rdx, 7
jbe 0x1400225b1
mov rcx, qword [rbp - 0x60]
lea rdx, [rdx*2 + 2]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1400225ac
mov rcx, qword [rcx - 8]
add rdx, 0x27
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140022ac0
call fcn.140054430
test bl, bl
jne 0x140022758
mov rax, qword [rbp + 0x310]
xor ebx, ebx
xorps xmm0, xmm0
mov qword [rbp - 0x10], rbx
movups xmmword [rbp - 0x20], xmm0
mov qword [rbp - 8], rbx
mov rdx, rax
cmp qword [rax + 0x18], 7
jbe 0x1400225de
mov rdx, qword [rax]
mov r8, qword [rax + 0x10]
lea rcx, [rbp - 0x20]
call fcn.140007c88
xorps xmm0, xmm0
mov qword [rsp + 0x70], rbx
movups xmmword [rsp + 0x60], xmm0
mov qword [rsp + 0x78], rbx
lea rax, [rbp + 0x9c]
or r8, 0xffffffffffffffff
inc r8
cmp word [rax + r8*2], bx
jne 0x140022608
lea rdx, [rbp + 0x9c]
lea rcx, [rsp + 0x60]
call fcn.140007b80
cmp qword [rsi + 0x18], 7
mov r8, rsi
jbe 0x140022630
mov r8, qword [rsi]
mov r9, qword [r12]
lea rcx, [rsp + 0x60]
call fcn.14000d6ec
mov rbx, rax
lea rcx, [rbp - 0x40]
xor eax, eax
xorps xmm0, xmm0
mov rdx, rbx
mov qword [rbp - 0x30], rax
movups xmmword [rbp - 0x40], xmm0
mov qword [rbp - 0x28], rax
lea r8d, [rax + 0x20]
call fcn.14007c060
xor eax, eax
mov qword [rbx + 0x18], 7
lea r8, [0x14008bef4]
mov qword [rbx + 0x10], rax
lea rdx, [rbp - 0x40]
mov word [rbx], ax
lea rcx, [rbp + 0x48]
call fcn.14002053c
mov r9b, 1
lea r8, [rbp - 0x20]
mov rdx, rax
lea rcx, [rsp + 0x40]
call fcn.140022334
mov rdx, qword [rbp - 0x28]
cmp rdx, 7
jbe 0x1400226db
mov rcx, qword [rbp - 0x40]
lea rdx, [rdx*2 + 2]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1400226d6
mov rcx, qword [rcx - 8]
add rdx, 0x27
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140022ac6
call fcn.140054430
mov rdx, qword [rsp + 0x78]
xor ebx, ebx
mov qword [rbp - 0x30], rbx
mov qword [rbp - 0x28], 7
mov word [rbp - 0x40], bx
cmp rdx, 7
jbe 0x14002272f
mov rcx, qword [rsp + 0x60]
lea rdx, [rdx*2 + 2]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14002272a
mov rcx, qword [rcx - 8]
add rdx, 0x27
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140022ac6
call fcn.140054430
mov r9, qword [rsp + 0x48]
mov rcx, rdi
mov r8, qword [rsp + 0x40]
mov rdx, qword [rdi + 8]
sub r9, r8
sar r9, 5
call fcn.140022cd4
lea rcx, [rsp + 0x40]
call fcn.1400079e0
jmp 0x14002275a
xor ebx, ebx
lea rdx, [rbp + 0x70]
mov rcx, r13
call qword [sym.imp.KERNEL32.dll_FindNextFileW]
test eax, eax
jne 0x140022416
mov rcx, r13
call qword [sym.imp.KERNEL32.dll_FindClose]
mov r13, qword [rbp + 0x310]
lea rdx, [0x14008cb44]
mov rax, qword [r12]
sub r14, rax
cmp r14, 1
jb 0x140022aba
cmp qword [rsi + 0x18], 7
mov r9, rsi
mov rbx, r12
jbe 0x1400227ab
mov r9, qword [rsi]
lea rbx, [rsi + 0x10]
mov qword [rsp + 0x30], 1
lea rcx, [rbp - 0x20]
mov qword [rsp + 0x28], rdx
mov qword [rsp + 0x20], rax
call fcn.140007ea8
cmp qword [rbp - 8], 7
lea rcx, [rbp - 0x20]
jbe 0x1400227d9
mov rcx, qword [rbp - 0x20]
mov r12, rbx
xor ebx, ebx
mov dword [rsp + 0x28], 2
lea r8, [rbp + 0x70]
mov qword [rsp + 0x20], rbx
lea r9d, [rbx + 1]
mov edx, r9d
call qword [sym.imp.KERNEL32.dll_FindFirstFileExW]
lea rcx, [rbp - 0x20]
mov r14, rax
call fcn.140007a6c
mov rdx, r13
lea rcx, [rbp + 0x20]
call fcn.140022b84
cmp r14, 0xffffffffffffffff
jne 0x14002289c
lea rcx, [rbp + 0x20]
call fcn.140013710
test r15b, 1
je 0x140022a80
mov rbx, qword [rdi]
xor r15d, r15d
test rbx, rbx
je 0x140022a80
mov r14, qword [rdi + 8]
jmp 0x14002284f
mov rcx, rbx
call fcn.140007a6c
add rbx, 0x20
cmp rbx, r14
jne 0x140022843
mov rcx, qword [rdi]
mov rdx, qword [rdi + 0x10]
sub rdx, rcx
and rdx, 0xffffffffffffffe0
cmp rdx, 0x1000
jb 0x140022887
mov r8, qword [rcx - 8]
add rdx, 0x27
sub rcx, r8
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x140022aae
mov rcx, r8
call fcn.140054430
mov qword [rdi], r15
mov qword [rdi + 8], r15
mov qword [rdi + 0x10], r15
jmp 0x140022a80
test byte [rbp + 0x70], 0x10
jne 0x140022a25
lea rdx, [rbp + 0x20]
lea rcx, [rbp + 0x9c]
call fcn.140022ca8
test al, al
je 0x140022a25
xorps xmm0, xmm0
mov qword [rsp + 0x70], rbx
movups xmmword [rsp + 0x60], xmm0
mov qword [rsp + 0x78], rbx
lea rax, [rbp + 0x9c]
or r8, 0xffffffffffffffff
inc r8
cmp word [rax + r8*2], bx
jne 0x1400228db
lea rdx, [rbp + 0x9c]
lea rcx, [rsp + 0x60]
call fcn.140007b80
cmp qword [rsi + 0x18], 7
mov r8, rsi
jbe 0x140022903
mov r8, qword [rsi]
mov r9, qword [r12]
lea rcx, [rsp + 0x60]
call fcn.14000d6ec
mov rbx, rax
lea rcx, [rsp + 0x40]
xor eax, eax
xorps xmm0, xmm0
mov rdx, rbx
mov qword [rsp + 0x50], rax
movups xmmword [rsp + 0x40], xmm0
mov qword [rsp + 0x58], rax
lea r8d, [rax + 0x20]
call fcn.14007c060
xor eax, eax
mov qword [rbx + 0x18], 7
mov qword [rbx + 0x10], rax
mov word [rbx], ax
mov rax, qword [rdi + 8]
cmp rax, qword [rdi + 0x10]
je 0x14002297c
xor ebx, ebx
lea rdx, [rsp + 0x40]
xorps xmm0, xmm0
mov rcx, rax
movups xmmword [rax], xmm0
mov qword [rax + 0x10], rbx
lea r8d, [rbx + 0x20]
mov qword [rax + 0x18], rbx
call fcn.14007c060
add qword [rdi + 8], 0x20
jmp 0x1400229d0
lea r8, [rsp + 0x40]
mov rdx, rax
mov rcx, rdi
call fcn.140023110
mov rdx, qword [rsp + 0x58]
cmp rdx, 7
jbe 0x1400229ce
mov rcx, qword [rsp + 0x40]
lea rdx, [rdx*2 + 2]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1400229c9
mov rcx, qword [rcx - 8]
add rdx, 0x27
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140022acc
call fcn.140054430
xor ebx, ebx
mov rdx, qword [rsp + 0x78]
mov qword [rsp + 0x50], rbx
mov qword [rsp + 0x58], 7
mov word [rsp + 0x40], bx
cmp rdx, 7
jbe 0x140022a25
mov rcx, qword [rsp + 0x60]
lea rdx, [rdx*2 + 2]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140022a20
mov rcx, qword [rcx - 8]
add rdx, 0x27
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140022acc
call fcn.140054430
lea rdx, [rbp + 0x70]
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_FindNextFileW]
test eax, eax
jne 0x14002289c
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_FindClose]
lea rcx, [rbp + 0x20]
call fcn.140013710
test r15b, 1
je 0x140022a80
mov rbx, qword [rdi]
xor r15d, r15d
test rbx, rbx
je 0x140022a80
mov r14, qword [rdi + 8]
jmp 0x140022a6f
mov rcx, rbx
call fcn.140007a6c
add rbx, 0x20
cmp rbx, r14
jne 0x140022a63
jmp 0x140022854
mov r13, qword [rbp + 0x310]
mov rcx, rsi
call fcn.140007a6c
mov rcx, r13
call fcn.140007a6c
mov rbx, qword [rsp + 0x400]
mov rax, rdi
add rsp, 0x3c0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
call fcn.14005af0c
int3
call fcn.140005e1c
int3
call fcn.140005e1c
int3
call fcn.14005af0c
int3
call fcn.14005af0c
int3
call fcn.14005af0c
int3