Function at 0x14010330c
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 [0x140173708]
xor rax, rsp
mov qword [rbp + 0x1b0], rax
mov rdi, rdx
mov r13, rcx
mov rcx, qword [0x140173048]
lea rax, [0x140173048]
cmp rcx, rax
je 0x140103375
test dword [rcx + 0x1c], 0x200
je 0x140103375
cmp byte [rcx + 0x19], 4
jb 0x140103375
mov rcx, qword [rcx + 0x10]
lea r8, [0x14015eef8]
mov edx, 0x4f
call fcn.14000c328
xor r15d, r15d
test r13, r13
jne 0x140103395
lea r8, str.wszPath
mov edx, 0x630
lea rcx, str.base_stor_blbengine_blbengutils_blbfsutils.cpp
call fcn.1400906e0
test rdi, rdi
jne 0x1401033b2
lea r8, str.pullDirSize
mov edx, 0x631
lea rcx, str.base_stor_blbengine_blbengutils_blbfsutils.cpp
call fcn.1400906e0
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 0x1401033ec
lea r8, [rsp + 0x30]
mov rcx, r13
call fcn.140091d34
mov ebx, eax
test eax, eax
js 0x1401036fb
mov rcx, qword [0x140173048]
lea rax, [0x140173048]
cmp rcx, rax
je 0x14010344a
test dword [rcx + 0x1c], 0x200
je 0x14010344a
cmp byte [rcx + 0x19], 4
jb 0x14010344a
mov r9, qword [rsp + 0x30]
lea r8, [0x14015eef8]
mov rcx, qword [rcx + 0x10]
mov edx, 0x50
call fcn.140015150
mov rcx, qword [rsp + 0x30]
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
nop dword [rax + rax]
cmp eax, 0xffffffff
je 0x1401036fb
mov rcx, qword [rsp + 0x30]
lea r8, [rsp + 0x38]
lea rdx, [0x140156afc]
call fcn.140091810
mov ebx, eax
test eax, eax
js 0x1401036bc
mov rcx, qword [rsp + 0x30]
lea r8, [rsp + 0x50]
lea rdx, [0x14014ff70]
call fcn.140091810
mov ebx, eax
test eax, eax
js 0x1401036bc
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 0x140103530
call qword [sym.imp.KERNEL32.dll_GetLastError]
nop dword [rax + rax]
mov ebx, eax
mov rcx, qword [0x140173048]
lea rax, [0x140173048]
cmp rcx, rax
je 0x140103517
test dword [rcx + 0x1c], 0x200
je 0x140103517
cmp byte [rcx + 0x19], 2
jb 0x140103517
mov r9, qword [rsp + 0x38]
lea edx, [r15 + 0x52]
mov rcx, qword [rcx + 0x10]
lea r8, [0x14015eef8]
mov dword [rsp + 0x20], ebx
call fcn.14003fe00
mov rcx, qword [0x140173048]
xor r15d, r15d
test ebx, ebx
jle 0x1401036c3
movzx ebx, bx
or ebx, 0x80070000
jmp 0x1401036c3
xor edx, edx
mov r8d, 0x2e
test rsi, rsi
je 0x140103559
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 0x14010356e
movzx ecx, word [rbp - 0x72]
movzx eax, dx
sub ecx, eax
test ecx, ecx
je 0x140103614
movzx ecx, word [rbp - 0x74]
movzx eax, r8w
sub ecx, eax
jne 0x140103597
movzx ecx, word [rbp - 0x72]
movzx eax, r8w
sub ecx, eax
jne 0x140103597
movzx ecx, word [rbp - 0x70]
movzx eax, dx
sub ecx, eax
test ecx, ecx
je 0x140103614
lea rdx, [0x140155a80]
lea rcx, [rbp - 0x74]
call qword [sym.imp.msvcrt.dll__wcsicmp]
nop dword [rax + rax]
test eax, eax
je 0x140103614
mov rcx, qword [rsp + 0x50]
lea r8, [rsp + 0x40]
lea rdx, [rbp - 0x74]
call fcn.140091810
mov rsi, qword [rsp + 0x40]
mov ebx, eax
test eax, eax
js 0x140103696
test byte [rsp + 0x60], 0x10
je 0x1401035fd
lea rdx, [rsp + 0x58]
mov rcx, rsi
call fcn.14010330c
mov ebx, eax
test eax, eax
js 0x140103696
mov rax, qword [rsp + 0x58]
jmp 0x140103611
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 0x140103532
call qword [sym.imp.KERNEL32.dll_GetLastError]
nop dword [rax + rax]
mov edi, eax
cmp eax, 0x12
je 0x140103696
mov rcx, qword [0x140173048]
lea rax, [0x140173048]
cmp rcx, rax
je 0x140103685
test dword [rcx + 0x1c], 0x200
je 0x140103685
cmp byte [rcx + 0x19], 2
jb 0x140103685
mov r9, qword [rsp + 0x38]
lea r8, [0x14015eef8]
mov rcx, qword [rcx + 0x10]
mov edx, 0x52
mov dword [rsp + 0x20], edi
call fcn.14003fe00
test edi, edi
jg 0x14010368d
mov ebx, edi
jmp 0x140103696
movzx ebx, di
or ebx, 0x80070000
test rsi, rsi
je 0x1401036aa
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 [0x140173048]
cmp qword [rsp + 0x38], r15
je 0x1401036e2
mov rcx, qword [rsp + 0x38]
call qword [sym.imp.ole32.dll_CoTaskMemFree]
nop dword [rax + rax]
mov rcx, qword [0x140173048]
mov rax, qword [rsp + 0x50]
test rax, rax
je 0x140103702
mov rcx, rax
call qword [sym.imp.ole32.dll_CoTaskMemFree]
nop dword [rax + rax]
mov rcx, qword [0x140173048]
cmp qword [rsp + 0x30], r15
je 0x140103721
mov rcx, qword [rsp + 0x30]
call qword [sym.imp.ole32.dll_CoTaskMemFree]
nop dword [rax + rax]
mov rcx, qword [0x140173048]
test ebx, ebx
jns 0x140103765
lea rdi, [0x140173048]
cmp rcx, rdi
je 0x140103795
test dword [rcx + 0x1c], 0x200
je 0x14010376c
cmp byte [rcx + 0x19], 2
jb 0x14010376c
mov rcx, qword [rcx + 0x10]
lea r8, [0x14015eef8]
mov edx, 0x53
mov dword [rsp + 0x20], ebx
mov r9, r13
call fcn.14003fe00
mov rcx, qword [0x140173048]
jmp 0x14010376c
lea rdi, [0x140173048]
cmp rcx, rdi
je 0x140103795
test dword [rcx + 0x1c], 0x200
je 0x140103795
cmp byte [rcx + 0x19], 4
jb 0x140103795
mov rcx, qword [rcx + 0x10]
lea r8, [0x14015eef8]
mov edx, 0x54
call fcn.14000c328
mov eax, ebx
mov rcx, qword [rbp + 0x1b0]
xor rcx, rsp
call fcn.140007410
mov rbx, qword [rsp + 0x300]
add rsp, 0x2c0
pop r15
pop r13
pop rdi
pop rsi
pop rbp
ret