Function at 0x140007950
Capabilities:
Check if file exists
Enumerate files on windows
Enumerate files recursively

Disassembly:
mov qword [rsp + 0x20], rbx
push rbp
push rsi
push rdi
mov eax, 0x84c0
call fcn.140024a40
sub rsp, rax
mov rax, qword [0x14014dd80]
xor rax, rsp
mov qword [rsp + 0x84b0], rax
mov qword [rsp + 0x38], rcx
mov ebx, r8d
mov qword [rsp + 0x30], rdx
lea rcx, [rsp + 0x1a1]
xor edx, edx
mov r8d, 0x103
mov byte [rsp + 0x1a0], 0
call fcn.1400167a0
lea rcx, [rsp + 0x2b1]
xor edx, edx
mov r8d, 0x40ff
mov byte [rsp + 0x2b0], 0
call fcn.1400167a0
lea rcx, [rsp + 0x43b1]
xor edx, edx
mov r8d, 0x40ff
mov byte [rsp + 0x43b0], 0
call fcn.1400167a0
mov r8, qword [rsp + 0x38]
or rcx, 0xffffffffffffffff
xor edx, edx
xor eax, eax
mov rdi, r8
repne scasb al, byte [rdi]
mov ebp, edx
mov esi, edx
not rcx
mov dword [rsp + 0x20], edx
dec rcx
mov rdi, rcx
mov qword [rsp + 0x50], rcx
test r8, r8
je 0x140007dc5
mov rax, qword [rsp + 0x30]
test rax, rax
je 0x140007dc5
test rcx, rcx
je 0x140007dc5
lea rcx, [rsp + 0x1a0]
mov byte [rax], dl
mov rdx, r8
sub rcx, r8
nop word [rax + rax]
movzx eax, byte [rdx]
inc rdx
mov byte [rcx + rdx - 1], al
test al, al
jne 0x140007a40
cmp byte [rsp + rdi + 0x19f], 0x5c
je 0x140007a73
xor eax, eax
lea rdi, [rsp + 0x1a0]
or rcx, 0xffffffffffffffff
repne scasb al, byte [rdi]
movzx eax, word [0x140025640]
mov word [rdi - 1], ax
xor eax, eax
or rcx, 0xffffffffffffffff
lea rdi, [rsp + 0x1a0]
repne scasb al, byte [rdi]
mov eax, dword [0x140025840]
lea rcx, [rsp + 0x60]
xor edx, edx
mov r8d, 0x140
mov dword [rdi - 1], eax
call fcn.1400167a0
lea rdx, [rsp + 0x60]
lea rcx, [rsp + 0x1a0]
call qword [sym.imp.KERNEL32.dll_FindFirstFileA]
mov qword [rsp + 0x28], rax
cmp rax, 0xffffffffffffffff
je 0x140007dc5
mov rdi, qword [rsp + 0x28]
lea rax, [rsp + 0x43b0]
dec rax
mov qword [rsp + 0x40], rax
lea rax, [rsp + 0x2b0]
dec rax
mov qword [rsp + 0x48], rax
test byte [rsp + 0x60], 6
jne 0x140007cea
cmp byte [rsp + 0x8c], 0x2e
je 0x140007cea
lea rcx, [rsp + 0x8c]
call fcn.1400071a0
test eax, eax
jne 0x140007cea
test byte [rsp + 0x60], 0x10
je 0x140007bd3
test ebx, ebx
je 0x140007bd3
mov rdx, qword [rsp + 0x38]
movsxd rdi, ebp
mov rax, rdi
mov rcx, rdx
imul rax, rax, 0x104
sub rax, rdx
lea rdx, [rsp + rax + 0x2b0]
nop word [rax + rax]
movzx eax, byte [rcx]
inc rcx
mov byte [rdx + rcx - 1], al
test al, al
jne 0x140007b50
mov r8, qword [rsp + 0x48]
imul rdi, rdi, 0x104
or rcx, 0xffffffffffffffff
lea rdx, [rsp + rdi + 0x2b0]
xor eax, eax
mov rdi, rdx
repne scasb al, byte [rdi]
not rcx
cmp byte [rcx + r8 - 1], 0x5c
je 0x140007b9c
mov rdi, rdx
or rcx, 0xffffffffffffffff
repne scasb al, byte [rdi]
movzx eax, word [0x140025640]
mov word [rdi - 1], ax
mov rdi, rdx
xor eax, eax
or rcx, 0xffffffffffffffff
repne scasb al, byte [rdi]
xor ecx, ecx
lea rdx, [rsp + 0x8c]
movzx eax, byte [rdx + rcx]
inc rcx
mov byte [rdi + rcx - 2], al
test al, al
jne 0x140007bb1
inc ebp
add r8, 0x104
mov qword [rsp + 0x48], r8
jmp 0x140007ce5
xor eax, eax
or rcx, 0xffffffffffffffff
lea rdi, [rsp + 0x8c]
repne scasb al, byte [rdi]
not rcx
lea eax, [rcx - 6]
lea r8, [rcx - 1]
cmp eax, 0xf
ja 0x140007ce5
mov rcx, qword [rsp + 0x38]
movsxd rdi, esi
mov rax, rdi
mov rdx, rcx
imul rax, rax, 0x104
sub rax, rcx
lea rcx, [rsp + rax + 0x43b0]
nop word [rax + rax]
movzx eax, byte [rdx]
inc rdx
mov byte [rcx + rdx - 1], al
test al, al
jne 0x140007c20
imul rdi, rdi, 0x104
xor eax, eax
or rcx, 0xffffffffffffffff
lea rsi, [rsp + rdi + 0x43b0]
mov rdi, rsi
repne scasb al, byte [rdi]
mov rax, qword [rsp + 0x40]
not rcx
cmp byte [rcx + rax - 1], 0x5c
je 0x140007c6d
xor eax, eax
mov rdi, rsi
or rcx, 0xffffffffffffffff
repne scasb al, byte [rdi]
movzx eax, word [0x140025640]
mov word [rdi - 1], ax
movsxd rcx, r8d
mov rdi, rsi
mov eax, dword [rsp + rcx + 0x88]
mov dword [rsp + rcx + 0x87], eax
mov byte [rsp + rcx + 0x8b], 0
or rcx, 0xffffffffffffffff
xor eax, eax
repne scasb al, byte [rdi]
lea rcx, [rsp + 0x8c]
xor edx, edx
nop dword [rax + rax]
movzx eax, byte [rcx + rdx]
inc rdx
mov byte [rdi + rdx - 2], al
test al, al
jne 0x140007ca0
mov rcx, rsi
call qword [sym.imp.SHLWAPI.dll_PathFileExistsA]
test eax, eax
je 0x140007cd2
xor edx, edx
mov r8d, 0x104
mov rcx, rsi
call fcn.1400167a0
mov esi, dword [rsp + 0x20]
jmp 0x140007ce5
mov esi, dword [rsp + 0x20]
inc esi
add qword [rsp + 0x40], 0x104
mov dword [rsp + 0x20], esi
mov rdi, qword [rsp + 0x28]
lea rdx, [rsp + 0x60]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_FindNextFileA]
test eax, eax
je 0x140007d0a
cmp ebp, 0x40
jge 0x140007d0a
cmp esi, 0x40
jl 0x140007ae5
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_FindClose]
test ebp, ebp
jne 0x140007d1f
test esi, esi
je 0x140007dc5
test ebx, ebx
je 0x140007dea
test ebp, ebp
je 0x140007dea
call fcn.1400170e8
mov rdx, qword [rsp + 0x50]
movsxd rcx, ebp
cdqe
add rax, rdx
xor edx, edx
div rcx
cmp edx, ebp
mov rsi, rdx
mov edi, edx
jge 0x140007d85
nop
lea r8d, [rbx - 1]
test ebx, ebx
jne 0x140007d5b
mov r8d, ebx
mov rdx, qword [rsp + 0x30]
movsxd rax, edi
imul rax, rax, 0x104
lea rcx, [rsp + rax + 0x2b0]
call fcn.140007950
test eax, eax
jne 0x140007e50
inc edi
cmp edi, ebp
jl 0x140007d50
test esi, esi
jle 0x140007dc5
xor edi, edi
nop dword [rax + rax]
lea r8d, [rbx - 1]
test ebx, ebx
jne 0x140007d9b
mov r8d, ebx
mov rdx, qword [rsp + 0x30]
movsxd rax, edi
imul rax, rax, 0x104
lea rcx, [rsp + rax + 0x2b0]
call fcn.140007950
test eax, eax
jne 0x140007e50
inc edi
cmp edi, esi
jl 0x140007d90
xor eax, eax
mov rcx, qword [rsp + 0x84b0]
xor rcx, rsp
call fcn.1400168a0
mov rbx, qword [rsp + 0x84f8]
add rsp, 0x84c0
pop rdi
pop rsi
pop rbp
ret
test esi, esi
je 0x140007dc5
call fcn.1400170e8
mov rdx, qword [rsp + 0x50]
movsxd r8, esi
movsxd rdi, eax
add rdi, rdx
xor edx, edx
mov rax, rdi
div r8
mov rax, rdi
movsxd rcx, edx
xor edx, edx
div r8
lea rax, [rsp + 0x43b0]
imul rcx, rcx, 0x104
lea r9, [rsp + rcx + 0x43b0]
mov rcx, qword [rsp + 0x30]
imul rdx, rdx, 0x104
sub rcx, rdx
sub rcx, rax
nop dword [rax]
movzx eax, byte [r9]
inc r9
mov byte [rcx + r9 - 1], al
test al, al
jne 0x140007e40
mov eax, 1
jmp 0x140007dc7