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

Disassembly:
push rbx
push rbp
push rsi
push rdi
sub rsp, 0x248
mov qword [rsp + 0x38], 0xfffffffffffffffe
mov rax, qword [0x14042d950]
xor rax, rsp
mov qword [rsp + 0x230], rax
mov eax, r9d
mov rbp, r8
mov rbx, rdx
mov qword [rsp + 0x30], rcx
mov qword [rsp + 0xb8], rdx
sub eax, 1
mov dword [rsp + 0x28], eax
jns 0x140161c36
mov rcx, rdx
call qword [sym.imp.MSVCP80.dll_public:_void___cdecl_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void____ptr64]
mov al, 1
jmp 0x140161e0c
lea r8, [0x1403627c0]
lea rcx, [rsp + 0x90]
call qword [sym.imp.MSVCP80.dll_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char_____cdecl_std::operator_char__struct_std::char_traits_char___class_std::allocator_char___class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const____ptr64__char_const____ptr64_]
nop
lea rcx, [rsp + 0x98]
cmp qword [rsp + 0xb0], 0x10
cmovae rcx, qword [rsp + 0x98]
lea rdx, [rsp + 0xf0]
call qword [sym.imp.KERNEL32.dll_FindFirstFileA]
mov qword [rsp + 0x20], rax
cmp rax, 0xffffffffffffffff
jne 0x140161ca0
lea rcx, [rsp + 0x90]
call qword [sym.imp.MSVCP80.dll_public:_void___cdecl_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void____ptr64]
nop
mov rcx, rbx
call qword [sym.imp.MSVCP80.dll_public:_void___cdecl_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void____ptr64]
xor al, al
jmp 0x140161e0c
lea rsi, [0x1403627c8]
lea rdi, [rsp + 0x11c]
mov ecx, 2
repe cmpsb byte [rsi], byte [rdi]
je 0x140161dca
lea rsi, [0x1403627cc]
lea rdi, [rsp + 0x11c]
mov ecx, 3
repe cmpsb byte [rsi], byte [rdi]
je 0x140161dca
lea r8, [0x1403627d0]
mov rdx, rbx
lea rcx, [rsp + 0x40]
call qword [sym.imp.MSVCP80.dll_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char_____cdecl_std::operator_char__struct_std::char_traits_char___class_std::allocator_char___class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const____ptr64__char_const____ptr64_]
nop
lea r8, [rsp + 0x11c]
mov rdx, rax
lea rcx, [rsp + 0xc0]
call qword [sym.imp.MSVCP80.dll_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char_____cdecl_std::operator_char__struct_std::char_traits_char___class_std::allocator_char___class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const____ptr64__char_const____ptr64_]
nop
lea rcx, [rsp + 0x40]
call qword [sym.imp.MSVCP80.dll_public:_void___cdecl_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void____ptr64]
test byte [rsp + 0xf0], 0x10
je 0x140161d47
lea rdx, [rsp + 0xc0]
lea rcx, [rsp + 0x68]
call qword [sym.imp.MSVCP80.dll_public:_void___cdecl_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::constructor_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const____ptr64____ptr64]
mov r9d, dword [rsp + 0x28]
mov r8, rbp
mov rdx, rax
mov rcx, qword [rsp + 0x30]
call fcn.140161be0
jmp 0x140161db7
xor eax, eax
or rcx, 0xffffffffffffffff
lea rdi, [rsp + 0x11c]
repne scasb al, byte [rdi]
not rcx
sub rcx, 1
cmp ecx, 3
jle 0x140161db7
movsxd rax, ecx
movzx ecx, byte [rsp + rax + 0x11b]
cmp cl, 0x46
je 0x140161d78
cmp cl, 0x66
jne 0x140161db7
movzx ecx, byte [rsp + rax + 0x11a]
cmp cl, 0x6e
je 0x140161d8a
cmp cl, 0x4e
jne 0x140161db7
movzx ecx, byte [rsp + rax + 0x119]
cmp cl, 0x49
je 0x140161d9c
cmp cl, 0x69
jne 0x140161db7
cmp byte [rsp + rax + reloc.MFC80U.DLL_Ordinal_280], 0x2e
jne 0x140161db7
lea rdx, [rsp + 0xc0]
mov rcx, rbp
call fcn.1400153e0
nop
lea rcx, [rsp + 0xc0]
call qword [sym.imp.MSVCP80.dll_public:_void___cdecl_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void____ptr64]
mov rax, qword [rsp + 0x20]
lea rdx, [rsp + 0xf0]
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_FindNextFileA]
test eax, eax
mov rax, qword [rsp + 0x20]
jne 0x140161ca0
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_FindClose]
nop
lea rcx, [rsp + 0x90]
call qword [sym.imp.MSVCP80.dll_public:_void___cdecl_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void____ptr64]
nop
mov rcx, rbx
call qword [sym.imp.MSVCP80.dll_public:_void___cdecl_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void____ptr64]
mov al, 1
mov rcx, qword [rsp + 0x230]
xor rcx, rsp
call fcn.140161080
add rsp, 0x248
pop rdi
pop rsi
pop rbp
pop rbx
ret