Function at 0x1400fbb8c
Capabilities:
Check if file exists
Enumerate files on windows
Enumerate files recursively
Get file attributes

Disassembly:
mov qword [rsp + 0x18], rbx
push rbp
push rsi
push rdi
push r13
push r15
lea rbp, [rsp - 0x1c0]
sub rsp, 0x2c0
mov rax, qword [0x14016a508]
xor rax, rsp
mov qword [rbp + 0x1b0], rax
mov rdi, rdx
mov r13, rcx
mov rcx, qword [0x14016a048]
lea rax, [0x14016a048]
cmp rcx, rax
je 0x1400fbbf5
test dword [rcx + 0x1c], 0x200
je 0x1400fbbf5
cmp byte [rcx + 0x19], 4
jb 0x1400fbbf5
mov rcx, qword [rcx + 0x10]
lea r8, [0x140156858]
mov edx, 0x4f
call fcn.14000c0e8
xor r15d, r15d
test r13, r13
jne 0x1400fbc15
lea r8, str.wszPath
mov edx, 0x630
lea rcx, str.base_stor_blbengine_blbengutils_blbfsutils.cpp
call fcn.140088f60
test rdi, rdi
jne 0x1400fbc32
lea r8, str.pullDirSize
mov edx, 0x631
lea rcx, str.base_stor_blbengine_blbengutils_blbfsutils.cpp
call fcn.140088f60
xor edx, edx
mov qword [rsp + 0x58], r15
mov r8d, 0x250
mov qword [rsp + 0x38], r15
lea rcx, [rsp + 0x60]
mov qword [rsp + 0x30], r15
mov qword [rsp + 0x50], r15
mov rsi, r15
mov qword [rsp + 0x40], r15
mov qword [rdi], r15
call sub.msvcrt.dll_memset
or rdx, 0xffffffffffffffff
mov qword [rsp + 0x48], r15
inc rdx
cmp word [r13 + rdx*2], r15w
jne 0x1400fbc6c
lea r8, [rsp + 0x30]
mov rcx, r13
call fcn.14008a5b4
mov ebx, eax
test eax, eax
js 0x1400fbf7b
mov rcx, qword [0x14016a048]
lea rax, [0x14016a048]
cmp rcx, rax
je 0x1400fbcca
test dword [rcx + 0x1c], 0x200
je 0x1400fbcca
cmp byte [rcx + 0x19], 4
jb 0x1400fbcca
mov r9, qword [rsp + 0x30]
lea r8, [0x140156858]
mov rcx, qword [rcx + 0x10]
mov edx, 0x50
call fcn.140014f10
mov rcx, qword [rsp + 0x30]
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
nop dword [rax + rax]
cmp eax, 0xffffffff
je 0x1400fbf7b
mov rcx, qword [rsp + 0x30]
lea r8, [rsp + 0x38]
lea rdx, [0x14014e45c]
call fcn.14008a090
mov ebx, eax
test eax, eax
js 0x1400fbf3c
mov rcx, qword [rsp + 0x30]
lea r8, [rsp + 0x50]
lea rdx, [0x140147d20]
call fcn.14008a090
mov ebx, eax
test eax, eax
js 0x1400fbf3c
mov rcx, qword [rsp + 0x38]
lea rdx, [rsp + 0x60]
call qword [sym.imp.KERNEL32.dll_FindFirstFileW]
nop dword [rax + rax]
mov r15, rax
cmp rax, 0xffffffffffffffff
jne 0x1400fbdb0
call qword [sym.imp.KERNEL32.dll_GetLastError]
nop dword [rax + rax]
mov ebx, eax
mov rcx, qword [0x14016a048]
lea rax, [0x14016a048]
cmp rcx, rax
je 0x1400fbd97
test dword [rcx + 0x1c], 0x200
je 0x1400fbd97
cmp byte [rcx + 0x19], 2
jb 0x1400fbd97
mov r9, qword [rsp + 0x38]
lea edx, [r15 + 0x52]
mov rcx, qword [rcx + 0x10]
lea r8, [0x140156858]
mov dword [rsp + 0x20], ebx
call fcn.14003fbc0
mov rcx, qword [0x14016a048]
xor r15d, r15d
test ebx, ebx
jle 0x1400fbf43
movzx ebx, bx
or ebx, 0x80070000
jmp 0x1400fbf43
xor edx, edx
mov r8d, 0x2e
test rsi, rsi
je 0x1400fbdd9
mov rcx, rsi
call qword [sym.imp.ole32.dll_CoTaskMemFree]
nop dword [rax + rax]
xor edx, edx
mov esi, edx
mov qword [rsp + 0x40], rdx
lea r8d, [rdx + 0x2e]
movzx ecx, word [rbp - 0x74]
movzx eax, r8w
sub ecx, eax
jne 0x1400fbdee
movzx ecx, word [rbp - 0x72]
movzx eax, dx
sub ecx, eax
test ecx, ecx
je 0x1400fbe94
movzx ecx, word [rbp - 0x74]
movzx eax, r8w
sub ecx, eax
jne 0x1400fbe17
movzx ecx, word [rbp - 0x72]
movzx eax, r8w
sub ecx, eax
jne 0x1400fbe17
movzx ecx, word [rbp - 0x70]
movzx eax, dx
sub ecx, eax
test ecx, ecx
je 0x1400fbe94
lea rdx, [0x14014d3e0]
lea rcx, [rbp - 0x74]
call qword [sym.imp.msvcrt.dll__wcsicmp]
nop dword [rax + rax]
test eax, eax
je 0x1400fbe94
mov rcx, qword [rsp + 0x50]
lea r8, [rsp + 0x40]
lea rdx, [rbp - 0x74]
call fcn.14008a090
mov rsi, qword [rsp + 0x40]
mov ebx, eax
test eax, eax
js 0x1400fbf16
test byte [rsp + 0x60], 0x10
je 0x1400fbe7d
lea rdx, [rsp + 0x58]
mov rcx, rsi
call fcn.1400fbb8c
mov ebx, eax
test eax, eax
js 0x1400fbf16
mov rax, qword [rsp + 0x58]
jmp 0x1400fbe91
mov eax, dword [rbp - 0x80]
mov dword [rsp + 0x48], eax
mov eax, dword [rsp + 0x7c]
mov dword [rsp + 0x4c], eax
mov rax, qword [rsp + 0x48]
add qword [rdi], rax
lea rdx, [rsp + 0x60]
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_FindNextFileW]
nop dword [rax + rax]
xor edx, edx
test eax, eax
jne 0x1400fbdb2
call qword [sym.imp.KERNEL32.dll_GetLastError]
nop dword [rax + rax]
mov edi, eax
cmp eax, 0x12
je 0x1400fbf16
mov rcx, qword [0x14016a048]
lea rax, [0x14016a048]
cmp rcx, rax
je 0x1400fbf05
test dword [rcx + 0x1c], 0x200
je 0x1400fbf05
cmp byte [rcx + 0x19], 2
jb 0x1400fbf05
mov r9, qword [rsp + 0x38]
lea r8, [0x140156858]
mov rcx, qword [rcx + 0x10]
mov edx, 0x52
mov dword [rsp + 0x20], edi
call fcn.14003fbc0
test edi, edi
jg 0x1400fbf0d
mov ebx, edi
jmp 0x1400fbf16
movzx ebx, di
or ebx, 0x80070000
test rsi, rsi
je 0x1400fbf2a
mov rcx, rsi
call qword [sym.imp.ole32.dll_CoTaskMemFree]
nop dword [rax + rax]
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_FindClose]
nop dword [rax + rax]
xor r15d, r15d
mov rcx, qword [0x14016a048]
cmp qword [rsp + 0x38], r15
je 0x1400fbf62
mov rcx, qword [rsp + 0x38]
call qword [sym.imp.ole32.dll_CoTaskMemFree]
nop dword [rax + rax]
mov rcx, qword [0x14016a048]
mov rax, qword [rsp + 0x50]
test rax, rax
je 0x1400fbf82
mov rcx, rax
call qword [sym.imp.ole32.dll_CoTaskMemFree]
nop dword [rax + rax]
mov rcx, qword [0x14016a048]
cmp qword [rsp + 0x30], r15
je 0x1400fbfa1
mov rcx, qword [rsp + 0x30]
call qword [sym.imp.ole32.dll_CoTaskMemFree]
nop dword [rax + rax]
mov rcx, qword [0x14016a048]
test ebx, ebx
jns 0x1400fbfe5
lea rdi, [0x14016a048]
cmp rcx, rdi
je 0x1400fc015
test dword [rcx + 0x1c], 0x200
je 0x1400fbfec
cmp byte [rcx + 0x19], 2
jb 0x1400fbfec
mov rcx, qword [rcx + 0x10]
lea r8, [0x140156858]
mov edx, 0x53
mov dword [rsp + 0x20], ebx
mov r9, r13
call fcn.14003fbc0
mov rcx, qword [0x14016a048]
jmp 0x1400fbfec
lea rdi, [0x14016a048]
cmp rcx, rdi
je 0x1400fc015
test dword [rcx + 0x1c], 0x200
je 0x1400fc015
cmp byte [rcx + 0x19], 4
jb 0x1400fc015
mov rcx, qword [rcx + 0x10]
lea r8, [0x140156858]
mov edx, 0x54
call fcn.14000c0e8
mov eax, ebx
mov rcx, qword [rbp + 0x1b0]
xor rcx, rsp
call fcn.1400071e0
mov rbx, qword [rsp + 0x300]
add rsp, 0x2c0
pop r15
pop r13
pop rdi
pop rsi
pop rbp
ret