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

Disassembly:
push rbp
push rbx
push rsi
push rdi
lea rbp, [rsp - 0x248]
sub rsp, 0x348
mov qword [rsp + 0x58], 0xfffffffffffffffe
mov rax, qword [0x1800380b0]
xor rax, rsp
mov qword [rbp + 0x230], rax
movzx ebx, r9b
mov byte [rsp + 0x20], bl
mov rdi, r8
mov qword [rsp + 0x48], r8
mov rsi, rdx
mov qword [rsp + 0x50], rdx
mov qword [rbp - 0x48], 7
xor eax, eax
mov qword [rbp - 0x50], rax
mov word [rbp - 0x60], ax
cmp word [rcx], ax
jne 0x1800020a2
mov r8d, eax
jmp 0x1800020b0
or r8, 0xffffffffffffffff
inc r8
cmp word [rcx + r8*2], ax
jne 0x1800020a6
mov rdx, rcx
lea rcx, [rbp - 0x60]
call fcn.180001980
nop
lea rcx, [rbp - 0x60]
call fcn.180002a70
test eax, eax
jne 0x1800020de
lea r8d, [rax + 1]
lea rdx, [0x1800235d4]
lea rcx, [rbp - 0x60]
call fcn.1800016d0
xorps xmm0, xmm0
movdqu xmmword [rsp + 0x28], xmm0
xor r8d, r8d
mov qword [rsp + 0x38], r8
lea r8, [rsp + 0x28]
lea rdx, [0x1800236c8]
mov rcx, rsi
call fcn.180002ab0
mov qword [rbp - 0x68], 7
xor esi, esi
mov qword [rbp - 0x70], rsi
mov word [rbp - 0x80], si
or r9, 0xffffffffffffffff
xor r8d, r8d
lea rdx, [rbp - 0x60]
lea rcx, [rbp - 0x80]
call fcn.180001840
nop
lea r8d, [rsi + 3]
lea rdx, [0x1800236c0]
lea rcx, [rbp - 0x80]
call fcn.1800016d0
lea rcx, [rbp - 0x80]
cmp qword [rbp - 0x68], 8
cmovae rcx, qword [rbp - 0x80]
lea rdx, [rbp - 0x20]
call qword [sym.imp.KERNEL32.dll_FindFirstFileW]
mov qword [rsp + 0x40], rax
movabs r8, 0x7fffffffffffffff
cmp rax, 0xffffffffffffffff
je 0x180002444
mov rsi, rax
test byte [rbp - 0x20], 0x10
je 0x180002236
cmp word [rbp + 0xc], 0x2e
je 0x1800023dd
mov qword [rsp + 0x78], 7
xor eax, eax
mov qword [rsp + 0x70], rax
mov word [rsp + 0x60], ax
or r9, 0xffffffffffffffff
xor r8d, r8d
lea rdx, [rbp - 0x60]
lea rcx, [rsp + 0x60]
call fcn.180001840
nop
cmp word [rbp + 0xc], 0
jne 0x1800021be
xor r8d, r8d
jmp 0x1800021db
lea rax, [rbp + 0xc]
or r8, 0xffffffffffffffff
nop word [rax + rax]
inc r8
cmp word [rax + r8*2], 0
jne 0x1800021d0
lea rdx, [rbp + 0xc]
lea rcx, [rsp + 0x60]
call fcn.1800016d0
test bl, bl
je 0x180002210
lea rcx, [rsp + 0x60]
cmp qword [rsp + 0x78], 8
cmovae rcx, qword [rsp + 0x60]
movzx r9d, bl
mov r8, rdi
mov rdx, qword [rsp + 0x50]
call fcn.180002040
nop
mov r8, qword [rsp + 0x78]
cmp r8, 8
jb 0x1800023dd
inc r8
mov rdx, qword [rsp + 0x60]
lea rcx, [rsp + 0x60]
call fcn.180001ad0
jmp 0x1800023dd
lea rdx, [rbp + 0xc]
lea rcx, [rbp - 0x40]
call fcn.180001cd0
nop
lea rcx, [rbp - 0x40]
call fcn.180002e60
xor al, al
mov byte [rsp + 0x21], al
mov rbx, qword [rsp + 0x28]
mov rsi, qword [rsp + 0x30]
cmp rbx, rsi
je 0x1800022ae
cmp qword [rbx + 0x18], 8
jb 0x18000226e
mov rdi, qword [rbx]
jmp 0x180002271
mov rdi, rbx
lea rcx, [rbp - 0x40]
call fcn.180002710
sub rdi, rax
nop dword [rax]
movzx edx, word [rax]
movzx ecx, word [rax + rdi]
sub edx, ecx
jne 0x180002293
add rax, 2
test ecx, ecx
jne 0x180002280
test edx, edx
je 0x1800022a7
add rbx, 0x20
cmp rbx, rsi
jne 0x180002262
movzx eax, byte [rsp + 0x21]
jmp 0x1800022a9
mov al, 1
mov rdi, qword [rsp + 0x48]
test al, al
je 0x18000237f
mov qword [rsp + 0x78], 7
xor ebx, ebx
mov qword [rsp + 0x70], rbx
mov word [rsp + 0x60], bx
or r9, 0xffffffffffffffff
xor r8d, r8d
lea rdx, [rbp - 0x60]
lea rcx, [rsp + 0x60]
call fcn.180001840
nop
cmp word [rbp + 0xc], bx
jne 0x1800022ec
mov r8d, ebx
jmp 0x1800022ff
lea rax, [rbp + 0xc]
or r8, 0xffffffffffffffff
inc r8
cmp word [rax + r8*2], 0
jne 0x1800022f4
lea rdx, [rbp + 0xc]
lea rcx, [rsp + 0x60]
call fcn.1800016d0
lea rdx, [rsp + 0x60]
mov rcx, rdi
call fcn.180002790
nop
mov rax, qword [rsp + 0x78]
movabs rbx, 0x7fffffffffffffff
cmp rax, 8
jb 0x180002389
inc rax
mov rcx, qword [rsp + 0x60]
cmp rax, rbx
ja 0x18000240b
add rax, rax
cmp rax, 0x1000
jb 0x180002378
test cl, 0x1f
jne 0x180002405
mov rax, qword [rcx - 8]
cmp rax, rcx
jae 0x1800023ff
sub rcx, rax
cmp rcx, 8
jb 0x1800023f9
cmp rcx, 0x27
ja 0x1800023f3
mov rcx, rax
call fcn.18000aac4
jmp 0x180002389
movabs rbx, 0x7fffffffffffffff
mov rax, qword [rbp - 0x28]
cmp rax, 8
jb 0x1800023d3
inc rax
mov rcx, qword [rbp - 0x40]
cmp rax, rbx
ja 0x180002429
add rax, rax
cmp rax, 0x1000
jb 0x1800023ce
test cl, 0x1f
jne 0x180002423
mov rax, qword [rcx - 8]
cmp rax, rcx
jae 0x18000241d
sub rcx, rax
cmp rcx, 8
jb 0x180002417
cmp rcx, 0x27
ja 0x180002411
mov rcx, rax
call fcn.18000aac4
mov rsi, qword [rsp + 0x40]
movzx ebx, byte [rsp + 0x20]
lea rdx, [rbp - 0x20]
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_FindNextFileW]
test eax, eax
je 0x18000242f
jmp 0x180002172
call fcn.18000f210
int3
call fcn.18000f210
int3
call fcn.18000f210
int3
call fcn.18000f210
int3
call fcn.18000f210
nop
call fcn.18000f210
int3
call fcn.18000f210
int3
call fcn.18000f210
int3
call fcn.18000f210
int3
call fcn.18000f210
int3
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_FindClose]
xor esi, esi
movabs r8, 0x7fffffffffffffff
mov rax, qword [rbp - 0x68]
cmp rax, 8
jb 0x1800024a9
inc rax
mov rcx, qword [rbp - 0x80]
cmp rax, r8
jbe 0x180002460
call fcn.18000f210
int3
add rax, rax
cmp rax, 0x1000
jb 0x1800024a4
test byte [rbp - 0x80], 0x1f
je 0x180002477
call fcn.18000f210
int3
mov rax, qword [rcx - 8]
cmp rax, rcx
jb 0x180002486
call fcn.18000f210
int3
sub rcx, rax
cmp rcx, 8
jae 0x180002495
call fcn.18000f210
int3
cmp rcx, 0x27
jbe 0x1800024a1
call fcn.18000f210
int3
mov rcx, rax
call fcn.18000aac4
mov qword [rbp - 0x68], 7
mov qword [rbp - 0x70], rsi
mov word [rbp - 0x80], si
mov rcx, qword [rsp + 0x28]
test rcx, rcx
je 0x180002501
movzx r9d, byte [rsp + 0x21]
lea r8, [rsp + 0x28]
mov rdx, qword [rsp + 0x30]
call fcn.180001e90
mov r8, qword [rsp + 0x38]
mov rdx, qword [rsp + 0x28]
sub r8, rdx
sar r8, 5
lea rcx, [rsp + 0x28]
call fcn.180002720
xorps xmm0, xmm0
movdqu xmmword [rsp + 0x28], xmm0
mov qword [rsp + 0x38], rsi
mov r8, qword [rbp - 0x48]
cmp r8, 8
jb 0x18000251b
inc r8
mov rdx, qword [rbp - 0x60]
lea rcx, [rbp - 0x60]
call fcn.180001ad0
mov rcx, qword [rbp + 0x230]
xor rcx, rsp
call fcn.18000aff0
add rsp, 0x348
pop rdi
pop rsi
pop rbx
pop rbp
ret