Function at 0x180001490
Capabilities:
Enumerate files on windows

Disassembly:
push rbp
push rbx
push rdi
push r14
lea rbp, [rsp - 0x458]
sub rsp, 0x558
mov rax, qword [0x18002c008]
xor rax, rsp
mov qword [rbp + 0x430], rax
mov rbx, rcx
mov qword [rsp + 0x70], rcx
lea rcx, [rbp + 0x1d0]
mov r14, rdx
call sym.ulib.dll_public:_void___cdecl_PATH::constructor_void____ptr64
test r14, r14
je 0x18000ed38
xor dil, dil
mov rdx, qword [rbx + 0x238]
lea rcx, [rbp + 0x1d0]
mov r8b, 1
mov byte [rsp + 0x30], dil
call sym.ulib.dll_public:_unsigned_char___cdecl_PATH::Initialize_unsigned_short_int_const____ptr64__unsigned_char____ptr64
test al, al
je 0x18000ed98
mov qword [rsp + 0x590], rsi
lea rdx, [r14 + 0x20]
mov qword [rsp + 0x548], r13
lea rcx, [rbp + 0x1d0]
xor r8d, r8d
mov qword [rsp + 0x540], r15
call sym.ulib.dll_public:_unsigned_char___cdecl_PATH::AppendBase_class_WSTRING_const____ptr64__unsigned_char____ptr64
mov rcx, qword gs:[0x60]
xor edx, edx
mov rcx, qword [rcx + 0x30]
lea r8d, [rdx + 0x28]
call qword [sym.imp.ntdll.dll_RtlAllocateHeap]
nop dword [rax + rax]
xor r13d, r13d
mov qword [rsp + 0x68], rax
mov rsi, rax
test rax, rax
je 0x18000ef15
lea rax, [0x180020198]
mov qword [rsi + 0x10], r13
mov qword [rsi], rax
lea edx, [r13 + 0x32]
mov rax, qword [0x18002c6c8]
lea r8d, [r13 + 0x19]
mov rcx, rsi
mov qword [rsi + 8], rax
mov qword [rsi + 0x18], r13
mov dword [rsi + 0x20], 0x19
call sym.ulib.dll_public:_unsigned_char___cdecl_ARRAY::Initialize_unsigned_long_int__unsigned_long_int____ptr64
test al, al
je 0x18000eef7
mov rcx, qword [rbp + 0x3f8]
test rcx, rcx
je 0x1800018ca
lea rdx, [rbp - 0x80]
call qword [sym.imp.api_ms_win_core_file_l1_1_0.dll_FindFirstFileW]
nop dword [rax + rax]
mov qword [rsp + 0x38], rax
mov rbx, rax
cmp rax, 0xffffffffffffffff
je 0x1800018ca
mov qword [rsp + 0x550], r12
mov rax, qword [0x18002c858]
lea rcx, sym.ulib.dll_const_FSTRING::vftable
lea r9, [rbp - 0x54]
mov qword [rsp + 0x48], rax
lea rax, [rbp - 0x54]
mov qword [rsp + 0x40], rcx
mov r12, r13
mov dword [rsp + 0x58], r13d
mov qword [rsp + 0x50], r9
mov r8, 0xffffffffffffffff
inc r8
cmp word [rax + r8*2], r12w
jne 0x180001604
mov dword [rsp + 0x58], r8d
lea eax, [r8 + 1]
mov dword [rsp + 0x60], eax
test r8d, r8d
je 0x18000162b
cmp word [rbp - 0x54], 0x2e
je 0x180001935
cmp byte [r14 + 0x50], r12b
je 0x1800016bb
lea eax, [r8 - 1]
cmp eax, 0xffffffff
jae 0x18000165d
nop
cmp eax, r8d
jae 0x180001656
movzx edx, word [rbp + rax*2 - 0x54]
cmp dx, 0x3a
je 0x18000165d
cmp dx, 0x5c
je 0x18000165d
dec eax
cmp eax, 0xffffffff
jb 0x180001640
lea edi, [rax + 1]
mov eax, dword [r14 + 0x38]
test eax, eax
je 0x18000eda7
mov rax, qword [r14 + 0x30]
movzx ecx, word [rax]
cmp cx, 0x2a
jne 0x180001969
nop dword [rax]
lea r9, [rsp + 0x40]
mov dword [rsp + 0x20], edi
mov r8d, 1
lea rdx, [r14 + 0x20]
mov rcx, r14
call fcn.180004510
test al, al
jne 0x1800016ac
inc edi
cmp edi, dword [rsp + 0x58]
jbe 0x180001680
jmp 0x18000ee26
mov al, 1
mov rbx, qword [rsp + 0x38]
test al, al
je 0x180001956
cmp byte [r14 + 0x1c], r12b
je 0x1800016f3
mov edx, dword [rbp - 0x80]
mov eax, edx
and eax, dword [r14 + 0x10]
cmp eax, dword [r14 + 0x10]
je 0x1800016e1
lea rax, vtable.LL__qHV_.0
mov qword [rsp + 0x40], rax
jmp 0x18000187e
mov eax, dword [r14 + 0x14]
test eax, eax
jne 0x18000ee67
test dword [r14 + 0x18], edx
jne 0x1800016d0
cmp byte [r14 + 0xd6], r12b
jne 0x18000ee74
cmp byte [r14 + 0xd7], r12b
jne 0x1800019fa
cmp byte [r14 + 0xd8], r12b
jne 0x180001a1f
mov rcx, qword gs:[0x60]
xor edx, edx
test byte [rbp - 0x80], 0x10
mov r8d, 0x4c8
mov rcx, qword [rcx + 0x30]
jne 0x18000180f
call qword [sym.imp.ntdll.dll_RtlAllocateHeap]
nop dword [rax + rax]
mov r12, rax
test rax, rax
je 0x1800016d0
lea rax, [0x180020338]
mov qword [r12], rax
lea rcx, [r12 + 0x20]
lea rax, [0x1800202e8]
mov qword [r12 + 0x10], rax
lea rax, sym.ulib.dll_const_FSTRING::vftable
mov qword [r12 + 0x228], rax
mov rax, qword [0x18002c858]
mov qword [r12 + 0x230], rax
mov rax, qword [0x18002c7a0]
mov dword [r12 + 0x240], r13d
mov qword [r12 + 0x18], rax
mov rax, 0xffffffffffffffff
mov word [rcx], r13w
mov qword [r12 + 0x264], r13
mov qword [r12 + 0x254], r13
mov dword [r12 + 0x260], r13d
mov dword [r12 + 0x250], r13d
mov qword [r12 + 0x238], rcx
nop
inc rax
cmp word [rcx + rax*2], r13w
jne 0x1800017d0
mov dword [r12 + 0x240], eax
lea rax, [0x180020390]
mov dword [r12 + 0x248], 0x104
mov byte [r12 + 0x26c], r13b
mov qword [r12], rax
mov rax, qword [0x18002c728]
mov qword [r12 + 8], rax
jmp 0x180001834
call qword [sym.imp.ntdll.dll_RtlAllocateHeap]
nop dword [rax + rax]
test rax, rax
je 0x1800016d0
mov rcx, rax
call fcn.1800031b0
mov r12, rax
test rax, rax
je 0x180001869
mov rax, qword [r12]
movabs r10, 0xb18da76b50d63170
mov r8, qword [rsp + 0x70]
lea r9, [rbp - 0x80]
mov rax, qword [rax + 0x50]
lea rdx, [rbp - 0x54]
mov rcx, r12
mov byte [rsp + 0x20], r13b
call qword [0x1800214b0]
test al, al
je 0x18000ee96
lea rax, vtable.LL__qHV_.0
mov qword [rsp + 0x40], rax
test r12, r12
jne 0x18000190b
lea rdx, [rbp - 0x80]
mov rcx, rbx
call qword [sym.imp.api_ms_win_core_file_l1_1_0.dll_FindNextFileW]
nop dword [rax + rax]
test eax, eax
jne 0x1800015d0
call qword [sym.imp.api_ms_win_core_errorhandling_l1_1_0.dll_GetLastError]
nop dword [rax + rax]
cmp eax, 0x12
jne 0x18000eee0
mov rcx, rbx
call qword [sym.imp.api_ms_win_core_file_l1_1_0.dll_FindClose]
nop dword [rax + rax]
movzx edi, byte [rsp + 0x30]
mov r12, qword [rsp + 0x550]
mov r15, qword [rsp + 0x540]
mov r13, qword [rsp + 0x548]
test dil, dil
jne 0x18000ef1d
mov rax, rsi
mov rsi, qword [rsp + 0x590]
mov rcx, qword [rbp + 0x430]
xor rcx, rsp
call fcn.18000d460
add rsp, 0x558
pop r14
pop rdi
pop rbx
pop rbp
ret
mov rax, qword [rsi]
movabs r10, 0x8ba406ab16daa370
mov rax, qword [rax + 0x18]
mov rdx, r12
mov rcx, rsi
call qword [0x1800214b0]
test al, al
jne 0x18000187e
jmp 0x18000eebb
cmp r8d, 1
je 0x180001956
jbe 0x18000162b
cmp word [rbp - 0x52], 0x2e
jne 0x18000162b
cmp r8d, 2
jne 0x18000162b
cmp word [rbp + 0x1b4], r12w
je 0x180001869
jmp 0x18000ee2d
cmp cx, 0x2e
je 0x18000edeb
cmp cx, 0x3f
je 0x18000edb2
cmp dword [r14 + 0x38], r12d
jbe 0x1800019ec
mov rax, qword [r14 + 0x30]
movzx esi, word [rax]
cmp edi, r8d
jae 0x1800019f3
movzx ecx, word [r9 + rdi*2]
movzx ecx, cx
call qword [sym.imp.api_ms_win_core_string_l2_1_0.dll_CharUpperW]
nop dword [rax + rax]
movzx ecx, si
mov rbx, rax
call qword [sym.imp.api_ms_win_core_string_l2_1_0.dll_CharUpperW]
nop dword [rax + rax]
cmp ax, bx
jne 0x180001a44
lea eax, [rdi + 1]
mov r8d, 1
lea r9, [rsp + 0x40]
mov dword [rsp + 0x20], eax
lea rdx, [r14 + 0x20]
mov rcx, r14
call fcn.180004510
test al, al
je 0x180001a44
mov rsi, qword [rsp + 0x68]
mov al, 1
jmp 0x1800016ae
mov esi, 0xffff
jmp 0x18000198a
mov ecx, 0xffff
jmp 0x180001994
movzx r9d, word [r14 + 0xd2]
lea rdx, [r14 + 0x80]
lea r8, [rbp - 0x7c]
call fcn.1800166d4
test al, al
jne 0x18000170d
jmp 0x180001869
movzx r9d, word [r14 + 0xd4]
lea rdx, [r14 + 0xa8]
lea r8, [rbp - 0x74]
call fcn.1800166d4
test al, al
jne 0x18000171a
jmp 0x180001869
mov rsi, qword [rsp + 0x68]
jmp 0x18000ee26
mov rcx, qword gs:[0x60]
xor edx, edx
mov r8d, 0xe0
mov rcx, qword [rcx + 0x30]
call qword [sym.imp.ntdll.dll_RtlAllocateHeap]
nop dword [rax + rax]
test rax, rax
je 0x18000ed98
mov rcx, rax
call sym.ulib.dll_public:_void___cdecl_FSN_FILTER::constructor_void____ptr64
mov r14, rax
test rax, rax
je 0x18000ed98
mov rcx, rax
call sym.ulib.dll_public:_unsigned_char___cdecl_FSN_FILTER::Initialize_void____ptr64
test al, al
jne 0x18000ed9f
mov rcx, qword [r14]
mov rax, qword [rcx]
movabs r10, 0xfd980fd51c5c1870
mov edx, 1
mov rcx, r14
call qword [0x1800214b0]
xor eax, eax
jmp 0x1800018ee
mov dil, 1
jmp 0x1800014d9
cmp edi, r8d
sete al
jmp 0x1800016b3
cmp edi, r8d
je 0x18000edca
jae 0x18000edc1
cmp word [rbp + rdi*2 - 0x54], 0x2e
je 0x18000edca
lea eax, [rdi + 1]
mov dword [rsp + 0x20], eax
jmp 0x18000edce
mov dword [rsp + 0x20], edi
lea r9, [rsp + 0x40]
mov r8d, 1
lea rdx, [r14 + 0x20]
mov rcx, r14
call fcn.180004510
nop
jmp 0x1800016ae
cmp edi, r8d
jne 0x18000197d
lea rcx, [rsp + 0x40]
call fcn.180001178
test al, al
jne 0x18000ee17
mov edx, 0x2e
lea rcx, [r14 + 0x20]
xor r8d, r8d
call sym.ulib.dll_public:_unsigned_long_int___cdecl_WSTRING::Strchr_unsigned_short_int__unsigned_long_int_const___ptr64
test eax, eax
je 0x18000edca
mov r8d, dword [rsp + 0x58]
mov r9, qword [rsp + 0x50]
jmp 0x18000197d
xor al, al
jmp 0x1800016ae
mov r8d, 0xffffffff
lea rdx, [rbp + 0x1b4]
lea rcx, [rsp + 0x40]
call sym.ulib.dll_public:_class_WSTRING____ptr64___cdecl_FSTRING::Initialize_unsigned_short_int____ptr64__unsigned_long_int____ptr64
test rax, rax
je 0x180001869
lea rdx, [rsp + 0x40]
mov rcx, r14
call fcn.1800066a0
test al, al
je 0x180001869
jmp 0x1800016bb
test eax, edx
je 0x1800016d0
jmp 0x1800016ed
movzx r9d, word [r14 + 0xd0]
lea rdx, [r14 + 0x58]
lea r8, [rbp - 0x6c]
call fcn.1800166d4
test al, al
je 0x180001869
jmp 0x180001700
mov rax, qword [r12]
movabs r10, 0xfd980fd51c5c1870
mov rax, qword [rax]
mov edx, 1
mov rcx, r12
call qword [0x1800214b0]
nop
jmp 0x1800016d0
mov rax, qword [r12]
movabs r10, 0xfd980fd51c5c1870
mov rax, qword [rax]
mov edx, 1
mov rcx, r12
call qword [0x1800214b0]
nop
jmp 0x1800018ae
test eax, eax
je 0x1800018ae
xor edx, edx
mov ecx, eax
call sym.ulib.dll_public:_static_void___cdecl_SYSTEM::DisplaySystemError_unsigned_long_int__int_
nop
jmp 0x1800018ae
mov rax, qword [rsi]
movabs r10, 0xfd980fd51c5c1870
mov rax, qword [rax]
mov edx, 1
mov rcx, rsi
call qword [0x1800214b0]
mov rsi, r13
jmp 0x1800018ca
test r14, r14
je 0x1800018e3
mov rcx, qword [r14]
mov rax, qword [rcx]
movabs r10, 0xfd980fd51c5c1870
mov edx, 1
mov rcx, r14
call qword [0x1800214b0]
nop
jmp 0x1800018e3