Function at 0x14000be54
Capabilities:
Access peb ldr_data
Check if file exists
Enumerate files on windows
Enumerate files recursively
Get file attributes
Get kernel32 base address

Disassembly:
mov qword [rsp + 0x18], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x9e0]
sub rsp, 0xae0
mov rax, qword [0x1401453f8]
xor rax, rsp
mov qword [rbp + 0x9d0], rax
xor esi, esi
mov rbx, r8
mov r12, rdx
mov qword [rsp + 0x38], rsi
mov r13, rcx
mov word [rbp + 0x7c0], si
xor edx, edx
mov word [rbp + 0x190], si
mov r8d, 0x250
mov word [rbp + 0x3a0], si
lea rcx, [rsp + 0x40]
mov word [rbp + 0x5b0], si
call sub.msvcrt.dll_memset
cmp dword [rbp + 0xa40], 0x1e
jb 0x14000bed2
mov ebx, esi
jmp 0x14000c394
mov r8, rbx
lea rcx, [rbp + 0x190]
mov edx, 0x104
call fcn.140003324
test eax, eax
jns 0x14000bf10
mov ebx, 0x57
lea r9, str.Could_not_copy_directory_path
mov r8d, 0x4e8
lea rdx, str.AsaUtilsGetFileList
lea ecx, [rbx - 0x56]
call fcn.1400071f4
jmp 0x14000c394
lea rcx, [rbp + 0x190]
call qword [sym.imp.SHLWAPI.dll_PathRemoveBackslashW]
nop dword [rax + rax]
lea rdx, [rbp + 0x190]
mov rcx, r12
call fcn.14001463c
mov ebx, eax
cmp eax, 0xb7
je 0x14000becb
test eax, eax
je 0x14000bf66
lea r9, str.Failed_to_check_if_directory_was_already_visited:_0x_x
mov r8d, 0x4fe
mov dword [rsp + 0x20], eax
lea rdx, str.AsaUtilsGetFileList
mov ecx, 1
call fcn.1400071f4
jmp 0x14000c394
lea rcx, [rbp + 0x190]
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
nop dword [rax + rax]
cmp eax, 0xffffffff
jne 0x14000bf9b
call qword [sym.imp.KERNEL32.dll_GetLastError]
nop dword [rax + rax]
lea r9, str.Get_file_attributes_failed:_0x_x
mov r8d, 0x50a
mov ebx, eax
jmp 0x14000bf4c
and eax, 0x10
test al, al
jne 0x14000bfba
mov ebx, 3
lea r9, str.Could_not_copy_file_path:_0x_x
mov dword [rsp + 0x20], ebx
mov r8d, 0x510
jmp 0x14000bf50
lea r9, [0x140113c70]
mov edx, 0x105
lea r8, [rbp + 0x190]
lea rcx, [rbp + 0x7c0]
call fcn.14001fdc4
mov ebx, eax
test eax, eax
jns 0x14000c009
mov ecx, eax
lea r9, str.Couldnt_create_search_string:_0x_x
and ecx, 0x1fff0000
movzx eax, bx
cmp ecx, 0x70000
mov r8d, 0x51c
cmove ebx, eax
mov dword [rsp + 0x20], ebx
jmp 0x14000bf50
lea rdx, [rsp + 0x40]
lea rcx, [rbp + 0x7c0]
call qword [sym.imp.KERNEL32.dll_FindFirstFileW]
nop dword [rax + rax]
mov r15, rax
cmp rax, 0xffffffffffffffff
jne 0x14000c05c
call qword [sym.imp.KERNEL32.dll_GetLastError]
nop dword [rax + rax]
cmp eax, 2
mov ebx, eax
cmove ebx, esi
test ebx, ebx
je 0x14000c394
mov dword [rsp + 0x20], ebx
lea r9, str.Find_first_file_failed:_0x_x
mov r8d, 0x530
jmp 0x14000bf50
mov rcx, qword gs:[0x60]
mov edi, 8
mov edx, edi
mov rcx, qword [rcx + 0x30]
lea r8d, [rdi + 0x18]
call qword [sym.imp.ntdll.dll_RtlAllocateHeap]
nop dword [rax + rax]
mov rbx, rax
test rax, rax
jne 0x14000c0b0
lea ebx, [rdi + 6]
lea r8d, [rdi + 0x5b]
mov esi, ebx
lea edi, [rax + 1]
mov ecx, edi
lea r9, str.Out_of_memory
lea rdx, str.AsaStringListCreate
call fcn.1400071f4
mov r14, qword [rsp + 0x38]
jmp 0x14000c112
mov edx, edi
mov dword [rax + 0x18], 4
mov rcx, rbx
mov dword [rax + 0x10], esi
call fcn.14001489c
mov esi, eax
mov edi, 1
xor eax, eax
test esi, esi
je 0x14000c0f5
lea r9, str.Failed_to_reallocate_list_0x_x
mov dword [rsp + 0x20], esi
lea r8d, [rdi + 0x6e]
mov ecx, edi
lea rdx, str.AsaStringListCreate
call fcn.1400071f4
mov r14, qword [rsp + 0x38]
jmp 0x14000c0ff
mov byte [rbx], al
mov r14, rbx
mov rbx, rax
mov esi, eax
test rbx, rbx
je 0x14000c10c
mov rcx, rbx
call fcn.140014564
mov ebx, esi
test esi, esi
je 0x14000c128
mov dword [rsp + 0x20], esi
lea r9, str.Failed_to_create_subdirectory_list:_0x_x
mov r8d, 0x540
jmp 0x14000c365
xor esi, esi
lea r9, [rsp + 0x6c]
mov word [rbp + 0x3a0], si
lea r8, [rbp + 0x190]
mov byte [rsp + 0x30], sil
mov edx, 0x104
lea rcx, [rbp + 0x3a0]
call fcn.14001fdc4
mov ebx, eax
cmp eax, 0x800700ce
je 0x14000c20a
test eax, eax
js 0x14000c265
mov eax, dword [rsp + 0x40]
and eax, 0x10
test al, al
je 0x14000c1dd
lea rdx, [0x140113d28]
lea rcx, [rsp + 0x6c]
call qword [sym.imp.msvcrt.dll__wcsicmp]
nop dword [rax + rax]
test eax, eax
je 0x14000c20a
lea rdx, [0x140113d30]
lea rcx, [rsp + 0x6c]
call qword [sym.imp.msvcrt.dll__wcsicmp]
nop dword [rax + rax]
test eax, eax
je 0x14000c20a
lea rdx, [rbp + 0x3a0]
mov rcx, r14
call fcn.14001463c
mov ebx, eax
test eax, eax
je 0x14000c20a
cmp eax, 0xb7
je 0x14000c20a
mov dword [rsp + 0x20], eax
lea r9, str.Failed_to_add_subdirectory_to_list:_0x_x
mov r8d, 0x573
jmp 0x14000c365
lea rdx, [rbp + 0x3a0]
lea rcx, [rsp + 0x30]
call fcn.14000bd20
cmp byte [rsp + 0x30], sil
je 0x14000c20a
lea rdx, [rbp + 0x3a0]
mov rcx, r13
call fcn.14001463c
mov ebx, eax
test eax, eax
jne 0x14000c24f
lea rdx, [rsp + 0x40]
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_FindNextFileW]
nop dword [rax + rax]
test eax, eax
jne 0x14000c12a
call qword [sym.imp.KERNEL32.dll_GetLastError]
nop dword [rax + rax]
mov ebx, eax
cmp eax, 0x12
je 0x14000c28b
mov dword [rsp + 0x20], eax
lea r9, str.FindNextFile_failed:_0x_x
mov r8d, 0x597
jmp 0x14000c365
mov dword [rsp + 0x20], eax
lea r9, str.Failed_to_add_item:_0x_x
mov r8d, 0x585
jmp 0x14000c365
mov ecx, ebx
movzx eax, bx
and ecx, 0x1fff0000
lea r9, str.Couldnt_create_path_to_found_file_or_directory:_0x_x
cmp ecx, 0x70000
mov r8d, 0x55d
cmove ebx, eax
jmp 0x14000c361
xor ebx, ebx
test r14, r14
je 0x14000c334
mov word [rbp + 0x5b0], bx
cmp esi, dword [r14 + 0x10]
jae 0x14000c330
mov r8, qword [r14 + 8]
lea rcx, [rbp + 0x5b0]
mov eax, esi
mov edx, 0x104
mov r8, qword [r8 + rax*8]
call fcn.140003324
test eax, eax
js 0x14000c31c
mov eax, dword [rbp + 0xa40]
lea r8, [rbp + 0x5b0]
inc eax
mov dword [rsp + 0x28], 0x1e
mov r9b, dil
mov dword [rsp + 0x20], eax
mov rdx, r12
mov rcx, r13
call fcn.14000be54
mov ebx, eax
test eax, eax
js 0x14000c2f9
add esi, edi
jmp 0x14000c28b
mov ecx, ebx
movzx eax, bx
and ecx, 0x1fff0000
lea r9, str.Getting_file_list_failed:_0x_x
cmp ecx, 0x70000
mov r8d, 0x5c5
cmove ebx, eax
jmp 0x14000c361
mov ebx, 0x6f
lea r9, str.Failed_to_copy_string
mov r8d, 0x1e4
jmp 0x14000c346
xor esi, esi
jmp 0x14000c373
mov ebx, 0x57
lea r9, str.Invalid_parameter
mov r8d, 0x1cd
lea rdx, str.AsaStringListEnumerateItems
mov ecx, edi
call fcn.1400071f4
lea r9, str.Enumerating_subdirectories_failed:_0x_x
mov r8d, 0x5b4
mov dword [rsp + 0x20], ebx
lea rdx, str.AsaUtilsGetFileList
mov ecx, edi
call fcn.1400071f4
test r15, r15
je 0x14000c387
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_FindClose]
nop dword [rax + rax]
test r14, r14
je 0x14000c394
mov rcx, r14
call fcn.140014564
movzx eax, bx
or eax, 0x80070000
test ebx, ebx
cmovle eax, ebx
mov rcx, qword [rbp + 0x9d0]
xor rcx, rsp
call fcn.140020b70
mov rbx, qword [rsp + 0xb30]
add rsp, 0xae0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret