Function at 0x180045590
Capabilities:
Enumerate files on windows
Enumerate files recursively

Disassembly:
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x228]
sub rsp, 0x328
mov qword [rbp - 0x60], 0xfffffffffffffffe
mov rax, qword [0x180185680]
xor rax, rsp
mov qword [rbp + 0x210], rax
mov dword [rsp + 0x38], r9d
mov qword [rbp - 0x68], r8
mov rbx, rdx
mov r15, rcx
mov qword [rsp + 0x78], rcx
mov rax, qword [rbp + 0x290]
mov qword [rbp - 0x70], rax
mov rax, qword [rbp + 0x298]
mov qword [rbp - 0x80], rax
xor r14d, r14d
mov dword [rsp + 0x30], r14d
mov dword [rsp + 0x34], 1
call fcn.1800f3548
mov rcx, rax
test rax, rax
je 0x180045e77
mov rax, qword [rax]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rbp - 0x50], rax
call fcn.1800f3548
mov rcx, rax
test rax, rax
je 0x180045e82
mov rax, qword [rax]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rbp - 0x58], rax
lea r13, [r14 - 1]
test rbx, rbx
je 0x180045e07
mov rax, r13
nop dword [rax]
inc rax
cmp word [rbx + rax*2], 0
jne 0x180045650
mov r8d, eax
mov rdx, rbx
lea rcx, [rbp - 0x50]
call fcn.180007b10
mov rdi, qword [rbp - 0x50]
movsxd rbx, dword [rdi - 0x10]
lea r12, [rdi - 0x18]
cmp ebx, 1
jg 0x18004568d
mov rcx, r12
call fcn.18000f360
add rax, 0x18
mov qword [rsp + 0x68], rax
jmp 0x1800456cf
mov rcx, qword [r12]
test rcx, rcx
je 0x1800456a1
mov rax, qword [rcx]
call qword [rax + 0x20]
test rax, rax
jne 0x1800456af
call fcn.1800f3548
mov rdx, qword [rax]
mov rcx, rax
call qword [rdx + 0x20]
lea rcx, [rdi - 2]
lea rdx, [rcx + rbx*2]
mov r9, rax
mov r8d, 1
lea rcx, [rsp + 0x68]
call fcn.18001cbf0
mov rax, qword [rsp + 0x68]
mov dword [rsp + 0x30], 1
cmp dword [rax - 0x10], 1
jne 0x1800456e7
cmp word [rax], 0x5c
jne 0x1800456e7
mov bl, 1
jmp 0x1800456e9
xor bl, bl
lea rdx, [rax - 0x18]
mov eax, r13d
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x180045703
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
test bl, bl
je 0x18004580e
mov qword [rsp + 0x40], r14
mov rcx, qword [r12]
test rcx, rcx
je 0x180045727
mov rax, qword [rcx]
call qword [rax + 0x20]
mov rcx, rax
test rax, rax
jne 0x180045738
call fcn.1800f3548
mov rdx, qword [rax]
mov rcx, rax
call qword [rdx + 0x20]
mov rcx, rax
test rcx, rcx
je 0x180045e8d
mov rax, qword [rcx]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rsp + 0x40], rax
mov dword [rsp + 0x30], 3
lea r9, [0x180156698]
mov rax, r13
inc rax
cmp word [r9 + rax*2], 0
jne 0x180045762
mov dword [rsp + 0x20], eax
mov r8d, dword [rdi - 0x10]
mov rdx, qword [rbp - 0x50]
lea rcx, [rsp + 0x40]
call fcn.18000f130
mov rdx, qword [rsp + 0x40]
lea rbx, [rdx - 0x18]
mov rsi, qword [rbp - 0x58]
add rsi, 0xffffffffffffffe8
cmp rbx, rsi
je 0x1800457e7
cmp dword [rsi + 0x10], 0
jl 0x1800457d9
mov rax, qword [rsi]
cmp qword [rbx], rax
jne 0x1800457d9
mov rcx, rbx
call fcn.18000f360
mov r14, rax
mov ecx, r13d
lock xadd dword [rsi + 0x10], ecx
sub ecx, 1
jg 0x1800457cc
mov rcx, qword [rsi]
mov r8, qword [rcx]
mov rdx, rsi
call qword [r8 + 8]
lea rax, [r14 + 0x18]
mov qword [rbp - 0x58], rax
xor r14d, r14d
jmp 0x1800457e7
mov r8d, dword [rdx - 0x10]
lea rcx, [rbp - 0x58]
call fcn.180007b10
nop
mov eax, r13d
lock xadd dword [rbx + 0x10], eax
sub eax, 1
jg 0x180045800
mov rcx, qword [rbx]
mov rax, qword [rcx]
mov rdx, rbx
call qword [rax + 8]
mov ebx, 1
mov dword [rsp + 0x30], ebx
jmp 0x18004591a
mov qword [rsp + 0x48], r14
mov rcx, qword [r12]
test rcx, rcx
je 0x18004582a
mov rax, qword [rcx]
call qword [rax + 0x20]
mov rcx, rax
test rax, rax
jne 0x18004583b
call fcn.1800f3548
mov rdx, qword [rax]
mov rcx, rax
call qword [rdx + 0x20]
mov rcx, rax
test rcx, rcx
je 0x180045e98
mov rax, qword [rcx]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rsp + 0x48], rax
mov dword [rsp + 0x30], 5
lea r9, [0x180155a80]
mov rax, r13
inc rax
cmp word [r9 + rax*2], 0
jne 0x180045865
mov dword [rsp + 0x20], eax
mov r8d, dword [rdi - 0x10]
mov rdx, qword [rbp - 0x50]
lea rcx, [rsp + 0x48]
call fcn.18000f130
mov rdx, qword [rsp + 0x48]
lea rsi, [rdx - 0x18]
mov rbx, qword [rbp - 0x58]
add rbx, 0xffffffffffffffe8
cmp rsi, rbx
je 0x1800458ea
cmp dword [rbx + 0x10], 0
jl 0x1800458dc
mov rax, qword [rbx]
cmp qword [rsi], rax
jne 0x1800458dc
mov rcx, rsi
call fcn.18000f360
mov r14, rax
mov ecx, r13d
lock xadd dword [rbx + 0x10], ecx
sub ecx, 1
jg 0x1800458cf
mov rcx, qword [rbx]
mov r8, qword [rcx]
mov rdx, rbx
call qword [r8 + 8]
lea rax, [r14 + 0x18]
mov qword [rbp - 0x58], rax
xor r14d, r14d
jmp 0x1800458ea
mov r8d, dword [rdx - 0x10]
lea rcx, [rbp - 0x58]
call fcn.180007b10
nop
mov dword [rsp + 0x30], 1
mov eax, r13d
lock xadd dword [rsi + 0x10], eax
sub eax, 1
jg 0x180045916
mov rcx, qword [rsi]
mov rax, qword [rcx]
mov rdx, rsi
call qword [rax + 8]
mov ebx, 1
mov dword [rsp + 0x30], ebx
jmp 0x18004591a
mov ebx, dword [rsp + 0x30]
lea rdx, [rbp - 0x40]
mov rcx, qword [rbp - 0x58]
call qword [sym.imp.KERNEL32.dll_FindFirstFileW]
mov qword [rbp - 0x78], rax
cmp rax, 0xffffffffffffffff
je 0x180045e07
mov rcx, qword [r15 + 0x340]
call fcn.180023fd0
mov r14d, ebx
cmp dword [r15 + 0x220], 0
jne 0x180045de4
movzx ecx, word [rbp - 0x14]
movzx eax, word [rbp - 0x12]
cmp cx, word [0x180155a8c]
jne 0x180045971
cmp ax, word [0x180155a8e]
je 0x180045dc9
cmp cx, word [0x180155a90]
jne 0x180045994
cmp ax, word [0x180155a92]
jne 0x180045994
movzx eax, word [rbp - 0x10]
cmp ax, word [0x180155a94]
je 0x180045dc9
movsxd rsi, dword [rdi - 0x10]
cmp esi, 1
jg 0x1800459b0
mov rcx, r12
call fcn.18000f360
add rax, 0x18
mov qword [rsp + 0x70], rax
jmp 0x1800459f6
mov rcx, qword [r12]
test rcx, rcx
je 0x1800459c4
mov rax, qword [rcx]
call qword [rax + 0x20]
test rax, rax
jne 0x1800459d2
call fcn.1800f3548
mov rdx, qword [rax]
mov rcx, rax
call qword [rdx + 0x20]
mov rcx, qword [rbp - 0x50]
sub rcx, 2
lea rdx, [rcx + rsi*2]
mov r9, rax
mov r8d, 1
lea rcx, [rsp + 0x70]
call fcn.18001cbf0
mov rax, qword [rsp + 0x70]
or ebx, 8
mov dword [rsp + 0x30], ebx
cmp dword [rax - 0x10], 1
jne 0x180045a0d
cmp word [rax], 0x5c
jne 0x180045a0d
mov bl, 1
jmp 0x180045a0f
xor bl, bl
lea rdx, [rax - 0x18]
mov eax, r13d
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x180045a29
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
test bl, bl
je 0x180045b44
mov qword [rsp + 0x50], 0
mov rcx, qword [r12]
test rcx, rcx
je 0x180045a4e
mov rax, qword [rcx]
call qword [rax + 0x20]
test rax, rax
jne 0x180045a65
call fcn.1800f3548
mov rdx, qword [rax]
mov rcx, rax
call qword [rdx + 0x20]
test rax, rax
je 0x180045ea3
mov rdx, qword [rax]
mov rcx, rax
call qword [rdx + 0x18]
add rax, 0x18
mov qword [rsp + 0x50], rax
or r14d, 0x18
mov dword [rsp + 0x30], r14d
lea rcx, [rbp - 0x14]
mov rax, r13
nop word [rax + rax]
inc rax
cmp word [rcx + rax*2], 0
jne 0x180045a90
mov dword [rsp + 0x20], eax
lea r9, [rbp - 0x14]
mov r8d, dword [rdi - 0x10]
mov rdx, qword [rbp - 0x50]
lea rcx, [rsp + 0x50]
call fcn.18000f130
mov rdx, qword [rsp + 0x50]
lea rsi, [rdx - 0x18]
mov rbx, qword [rbp - 0x58]
add rbx, 0xffffffffffffffe8
cmp rsi, rbx
je 0x180045b19
cmp dword [rbx + 0x10], 0
jl 0x180045b0c
mov rax, qword [rbx]
cmp qword [rsi], rax
jne 0x180045b0c
mov rcx, rsi
call fcn.18000f360
mov r15, rax
mov ecx, r13d
lock xadd dword [rbx + 0x10], ecx
sub ecx, 1
jg 0x180045afd
mov rcx, qword [rbx]
mov r8, qword [rcx]
mov rdx, rbx
call qword [r8 + 8]
lea rax, [r15 + 0x18]
mov qword [rbp - 0x58], rax
mov r15, qword [rsp + 0x78]
jmp 0x180045b19
mov r8d, dword [rdx - 0x10]
lea rcx, [rbp - 0x58]
call fcn.180007b10
and r14d, 0xffffffef
mov dword [rsp + 0x30], r14d
mov eax, r13d
lock xadd dword [rsi + 0x10], eax
sub eax, 1
jg 0x180045ce3
mov rcx, qword [rsi]
mov rax, qword [rcx]
mov rdx, rsi
call qword [rax + 8]
jmp 0x180045ce3
xor ebx, ebx
mov qword [rsp + 0x58], rbx
mov rcx, qword [r12]
test rcx, rcx
je 0x180045b5f
mov rax, qword [rcx]
call qword [rax + 0x20]
test rax, rax
jne 0x180045b76
call fcn.1800f3548
mov rdx, qword [rax]
mov rcx, rax
call qword [rdx + 0x20]
test rax, rax
je 0x180045e6c
mov rdx, qword [rax]
mov rcx, rax
call qword [rdx + 0x18]
add rax, 0x18
mov qword [rsp + 0x58], rax
or r14d, 0x28
mov dword [rsp + 0x30], r14d
mov dword [rsp + 0x20], 1
lea r9, [0x180155ad4]
mov r8d, dword [rdi - 0x10]
mov rdx, qword [rbp - 0x50]
lea rcx, [rsp + 0x58]
call fcn.18000f130
nop
mov qword [rsp + 0x60], rbx
mov rbx, qword [rsp + 0x58]
lea r12, [rbx - 0x18]
mov rcx, qword [r12]
test rcx, rcx
je 0x180045bd5
mov rax, qword [rcx]
call qword [rax + 0x20]
test rax, rax
jne 0x180045bec
call fcn.1800f3548
mov rdx, qword [rax]
mov rcx, rax
call qword [rdx + 0x20]
test rax, rax
je 0x180045eae
mov rdx, qword [rax]
mov rcx, rax
call qword [rdx + 0x18]
add rax, 0x18
mov qword [rsp + 0x60], rax
or r14d, 0x40
mov dword [rsp + 0x30], r14d
lea rcx, [rbp - 0x14]
mov rax, r13
nop
inc rax
cmp word [rcx + rax*2], 0
jne 0x180045c10
mov dword [rsp + 0x20], eax
lea r9, [rbp - 0x14]
mov r8d, dword [rbx - 0x10]
mov rdx, rbx
lea rcx, [rsp + 0x60]
call fcn.18000f130
mov rdx, qword [rsp + 0x60]
lea rsi, [rdx - 0x18]
mov rbx, qword [rbp - 0x58]
add rbx, 0xffffffffffffffe8
cmp rsi, rbx
je 0x180045c98
cmp dword [rbx + 0x10], 0
jl 0x180045c8b
mov rax, qword [rbx]
cmp qword [rsi], rax
jne 0x180045c8b
mov rcx, rsi
call fcn.18000f360
mov r15, rax
mov ecx, r13d
lock xadd dword [rbx + 0x10], ecx
sub ecx, 1
jg 0x180045c7c
mov rcx, qword [rbx]
mov r8, qword [rcx]
mov rdx, rbx
call qword [r8 + 8]
lea rax, [r15 + 0x18]
mov qword [rbp - 0x58], rax
mov r15, qword [rsp + 0x78]
jmp 0x180045c98
mov r8d, dword [rdx - 0x10]
lea rcx, [rbp - 0x58]
call fcn.180007b10
and r14d, 0xffffffbf
mov dword [rsp + 0x30], r14d
mov eax, r13d
lock xadd dword [rsi + 0x10], eax
sub eax, 1
jg 0x180045cba
mov rcx, qword [rsi]
mov rax, qword [rcx]
mov rdx, rsi
call qword [rax + 8]
and r14d, 0xffffffdf
mov dword [rsp + 0x30], r14d
mov eax, r13d
lock xadd dword [r12 + 0x10], eax
sub eax, 1
jg 0x180045cdf
mov rcx, qword [r12]
mov rax, qword [rcx]
mov rdx, r12
call qword [rax + 8]
lea r12, [rdi - 0x18]
test byte [rbp - 0x40], 0x10
je 0x180045d22
mov ecx, dword [rsp + 0x38]
test ecx, ecx
je 0x180045d7a
mov rax, qword [rbp - 0x80]
mov qword [rsp + 0x28], rax
mov rax, qword [rbp - 0x70]
mov qword [rsp + 0x20], rax
mov r9d, ecx
mov r8, qword [rbp - 0x68]
mov rdx, qword [rbp - 0x58]
mov rcx, r15
call sym.SafeBase64.dll_private:_int___cdecl_CSearchFile::FindFileLists_wchar_t_const____ptr64__wchar_t_const____ptr64__int__class_std::vector_class_ATL::CStringT_wchar_t__class_StrTraitMFC_wchar_t__class_ATL::ChTraitsCRT_wchar_t_____class_std::allocator_class_ATL::CStringT_wchar_t__class_StrTraitMFC_wchar_t__class_ATL::ChTraitsCRT_wchar_t______const____ptr64____ptr64__int____cdecl___unsigned_long_int__unsigned_long_int_____ptr64
mov esi, eax
mov dword [rsp + 0x34], eax
jmp 0x180045d7e
inc dword [r15 + 0x224]
mov rbx, qword [rbp - 0x58]
mov rdx, rbx
mov rcx, r15
call sym.SafeBase64.dll_public:_int___cdecl_CPattern::MatchPattern_wchar_t_const____ptr64____ptr64
test eax, eax
je 0x180045d7a
inc dword [r15 + 0x228]
mov rsi, qword [r15 + 0x340]
mov r14, qword [rsi + 8]
cmp qword [rsi + 0x10], r14
je 0x180045d6b
lea rcx, [rbx - 0x18]
call fcn.18000f360
add rax, 0x18
mov qword [r14], rax
add qword [rsi + 8], 8
jmp 0x180045d7a
lea r8, [rbp - 0x58]
mov rdx, r14
mov rcx, rsi
call fcn.180024110
mov esi, dword [rsp + 0x34]
mov r8, qword [rbp - 0x80]
test r8, r8
je 0x180045dc3
mov rax, qword [r15 + 0x340]
mov rcx, qword [rax + 8]
sub rcx, qword [rax]
sar rcx, 3
test rcx, 0x3ff
jne 0x180045dc3
mov edx, ecx
mov ecx, dword [r15 + 0x224]
call r8
mov esi, eax
mov dword [rsp + 0x34], eax
test eax, eax
jne 0x180045dc3
mov dword [r15 + 0x220], 1
mov ebx, dword [rsp + 0x30]
jmp 0x180045dcd
mov esi, dword [rsp + 0x34]
lea rdx, [rbp - 0x40]
mov rcx, qword [rbp - 0x78]
call qword [sym.imp.KERNEL32.dll_FindNextFileW]
test eax, eax
je 0x180045de9
jmp 0x180045942
mov esi, 1
mov rcx, qword [rbp - 0x78]
call qword [sym.imp.KERNEL32.dll_FindClose]
test esi, esi
je 0x180045e0a
mov rax, qword [r15 + 0x340]
mov rcx, qword [rbp - 0x70]
mov qword [rcx], rax
jmp 0x180045e0a
mov esi, r14d
mov rdx, qword [rbp - 0x58]
add rdx, 0xffffffffffffffe8
mov eax, r13d
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x180045e29
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
nop
mov rdx, qword [rbp - 0x50]
add rdx, 0xffffffffffffffe8
lock xadd dword [rdx + 0x10], r13d
sub r13d, 1
jg 0x180045e47
mov rcx, qword [rdx]
mov r8, qword [rcx]
call qword [r8 + 8]
mov eax, esi
mov rcx, qword [rbp + 0x210]
xor rcx, rsp
call fcn.18010faf0
add rsp, 0x328
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret
mov ecx, 0x80004005
call fcn.180007f70
nop
mov ecx, 0x80004005
call fcn.180007f70
nop
mov ecx, 0x80004005
call fcn.180007f70
nop
mov ecx, 0x80004005
call fcn.180007f70
nop
mov ecx, 0x80004005
call fcn.180007f70
nop
mov ecx, 0x80004005
call fcn.180007f70
nop
mov ecx, 0x80004005
call fcn.180007f70
int3