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

Disassembly:
push 0x5cc
mov eax, 0x502ece
call fcn.00426d6d
mov edi, ecx
mov dword [ebp - 0x5c8], edi
mov eax, dword [ebp + 8]
xor ebx, ebx
mov esi, dword [ebp + 0x10]
mov dword [ebp - 0x5cc], eax
lea eax, [ebp - 0x58]
push eax
mov dword [ebp - 0x5c4], esi
mov dword [ebp - 0x5bc], ebx
call fcn.00422099
and dword [ebp - 4], ebx
cmp dword [esi + 0x10], ebx
je 0x422320
push esi
lea eax, [ebp - 0x28]
push 0x532988
push eax
call fcn.0041ed8e
add esp, 0xc
push 0xffffffffffffffff
push ebx
push eax
lea ecx, [ebp - 0x58]
mov byte [ebp - 4], 1
call fcn.00408220
push ebx
push 1
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], bl
call fcn.00402050
mov esi, 0x50c5b8
push esi
call fcn.00401660
pop ecx
push eax
push esi
lea ecx, [ebp - 0x58]
call fcn.004080f0
cmp dword [ebp - 0x44], 8
lea ecx, [ebp - 0x5b8]
lea eax, [ebp - 0x58]
cmovae eax, dword [ebp - 0x58]
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_FindFirstFileW]
mov dword [ebp - 0x5d8], eax
cmp eax, 0xffffffff
jne 0x4223ac
lea eax, [ebp - 0x58]
push eax
lea eax, [ebp - 0xd0]
push str.Invalid_path_
push eax
call fcn.0041ed8e
push 0x50bfac
push eax
lea eax, [ebp - 0x88]
mov byte [ebp - 4], 2
push eax
call fcn.00408660
add esp, 0x18
mov esi, eax
mov byte [ebp - 4], 3
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push esi
lea ecx, [ebp - 0x38]
call fcn.0041e258
push 0x53e4cc
lea eax, [ebp - 0x38]
push eax
call fcn.004d7b6b
cmp dword [edi + 0x2a8], 0
je 0x42245a
lea eax, [ebp - 0xb8]
mov ecx, edi
push eax
call fcn.00422099
push eax
lea eax, [ebp - 0xa0]
mov byte [ebp - 4], 4
push eax
mov dword [ebp - 0x5bc], 1
call fcn.004212fa
pop ecx
pop ecx
cmp dword [eax + 0x10], 0
push 3
pop ebx
mov dword [ebp - 4], 5
mov dword [ebp - 0x5bc], ebx
je 0x42245a
lea eax, [ebp - 0x40]
mov ecx, edi
push eax
call fcn.0042207c
mov esi, eax
push 7
pop ebx
lea eax, [ebp - 0x70]
mov dword [ebp - 4], 6
push eax
mov ecx, edi
mov dword [ebp - 0x5bc], ebx
call fcn.00421e0f
push 0
push eax
lea eax, [ebp - 0x28]
mov dword [ebp - 4], ebx
push eax
mov dword [ebp - 0x5bc], 0xf
call fcn.00421387
add esp, 0xc
mov ecx, eax
push 0x1f
pop ebx
push esi
mov dword [ebp - 0x5bc], ebx
call fcn.00420da0
mov byte [ebp - 0x5bd], 0
test eax, eax
je 0x422461
mov byte [ebp - 0x5bd], 1
test bl, 0x10
je 0x42247b
push 0
and ebx, 0xffffffef
lea ecx, [ebp - 0x28]
push 1
mov dword [ebp - 0x5bc], ebx
call fcn.00402050
test bl, 8
je 0x422495
push 0
and ebx, 0xfffffff7
lea ecx, [ebp - 0x70]
push 1
mov dword [ebp - 0x5bc], ebx
call fcn.00402050
test bl, 4
je 0x4224af
push 0
and ebx, 0xfffffffb
lea ecx, [ebp - 0x40]
push 1
mov dword [ebp - 0x5bc], ebx
call fcn.00402050
test bl, 2
je 0x4224cc
push 0
and ebx, 0xfffffffd
lea ecx, [ebp - 0xa0]
push 1
mov dword [ebp - 0x5bc], ebx
call fcn.00402050
and dword [ebp - 4], 0
test bl, 1
je 0x4224ed
push 0
and ebx, 0xfffffffe
lea ecx, [ebp - 0xb8]
push 1
mov dword [ebp - 0x5bc], ebx
call fcn.00402050
lea eax, [ebp - 0x70]
mov ecx, edi
push eax
call fcn.00422099
cmp byte [ebp - 0x5bd], 0
mov byte [ebp - 4], 8
je 0x422518
lea eax, [ebp - 0xa0]
mov ecx, edi
push eax
call fcn.00421e0f
or ebx, 0x20
jmp 0x42252b
push 0x532808
lea ecx, [ebp - 0xb8]
call fcn.00401f30
or ebx, 0x40
push eax
lea ecx, [ebp - 0x40]
mov dword [ebp - 0x5bc], ebx
call fcn.00406900
xor edi, edi
mov dword [ebp - 4], 0xa
test bl, 0x40
je 0x42255f
push edi
and ebx, 0xffffffbf
lea ecx, [ebp - 0xb8]
push 1
mov dword [ebp - 0x5bc], ebx
call fcn.00402050
mov byte [ebp - 4], 0xb
test bl, 0x20
je 0x42257f
push edi
and ebx, 0xffffffdf
lea ecx, [ebp - 0xa0]
push 1
mov dword [ebp - 0x5bc], ebx
call fcn.00402050
mov esi, dword [ebp - 0x5c4]
cmp dword [esi + 0x10], edi
je 0x422651
push esi
lea eax, [ebp - 0x28]
push 0x532988
push eax
call fcn.0041ed8e
add esp, 0xc
push 0xffffffffffffffff
push edi
push eax
lea ecx, [ebp - 0x70]
mov byte [ebp - 4], 0xc
call fcn.00408220
push edi
push 1
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 0xb
call fcn.00402050
cmp dword [ebp - 0x30], 0
push esi
jne 0x4225dd
lea ecx, [ebp - 0x88]
call fcn.004097a0
mov byte [ebp - 4], 0xd
or ebx, 0x80
jmp 0x4225fb
lea eax, [ebp - 0x28]
push 0x532988
push eax
call fcn.0041ed8e
add esp, 0xc
mov dword [ebp - 4], 0xe
or ebx, 0x100
push 0xffffffffffffffff
push edi
push eax
lea ecx, [ebp - 0x40]
mov dword [ebp - 0x5bc], ebx
call fcn.00408220
test ebx, 0x100
je 0x42262c
push edi
and ebx, 0xfffffeff
lea ecx, [ebp - 0x28]
push 1
mov dword [ebp - 0x5bc], ebx
call fcn.00402050
mov dword [ebp - 4], 0xb
test bl, bl
jns 0x422651
push edi
and ebx, 0xffffff7f
lea ecx, [ebp - 0x88]
push 1
mov dword [ebp - 0x5bc], ebx
call fcn.00402050
lea eax, [ebp - 0x40]
mov dword [ebp - 0x5d0], ebx
push eax
sub esp, 0x250
mov dword [ebp - 0x5d4], ebx
mov edi, esp
lea esi, [ebp - 0x5b8]
mov ecx, 0x94
lea eax, [ebp - 0x70]
rep movsd dword es:[edi], dword [esi]
push eax
lea ecx, [ebp - 0x368]
call fcn.00421c69
lea ecx, [ebp - 0x368]
mov byte [ebp - 4], 0xf
call fcn.00421fcc
lea ecx, [ebp - 0x368]
test al, al
je 0x4226ca
call fcn.0041ea6b
push 0
push 1
lea ecx, [ebp - 0x40]
call fcn.00402050
push 0
push 1
lea ecx, [ebp - 0x70]
mov byte [ebp - 4], 0
call fcn.00402050
mov edi, dword [ebp - 0x5c8]
jmp 0x4228c5
lea eax, [ebp - 0x88]
push eax
call fcn.0042207c
mov edi, dword [ebp - 0x5c8]
push eax
mov byte [ebp - 4], 0x10
lea eax, [edi + 0x298]
push eax
call fcn.004215bc
pop ecx
pop ecx
xor esi, esi
mov byte [ebp - 0x5be], al
push esi
push 1
lea ecx, [ebp - 0x88]
mov byte [ebp - 4], 0xf
call fcn.00402050
cmp byte [ebp - 0x5be], 0
je 0x422724
mov ecx, dword [ebp - 0x5cc]
lea eax, [ebp - 0x368]
push eax
call fcn.0041ecfd
lea ecx, [ebp - 0x368]
call fcn.00421fc2
test al, al
je 0x42289f
cmp byte [ebp + 0xc], 0
jne 0x42274a
cmp byte [ebp - 0x5be], 0
je 0x42289f
mov eax, dword [ebp - 0x5c4]
lea ecx, [ebp - 0x368]
cmp dword [eax + 0x10], esi
jne 0x42276f
lea eax, [ebp - 0xd0]
push eax
call fcn.0042207c
or ebx, 0x200
jmp 0x4227df
lea eax, [ebp - 0xa0]
push eax
call fcn.0042207c
mov esi, eax
push 0x532988
push dword [ebp - 0x5c4]
lea eax, [ebp - 0xb8]
mov dword [ebp - 4], 0x12
or ebx, 0x400
push eax
mov dword [ebp - 0x5bc], ebx
call fcn.004086b0
mov ecx, dword [ebp - 0x5d0]
push esi
push eax
lea eax, [ebp - 0x88]
mov dword [ebp - 4], 0x13
or ecx, 0xc00
push eax
mov dword [ebp - 0x5bc], ecx
call fcn.004087a0
mov ebx, dword [ebp - 0x5d4]
add esp, 0x18
or ebx, 0x1c00
xor esi, esi
push eax
lea ecx, [ebp - 0x28]
mov dword [ebp - 0x5bc], ebx
call fcn.00406900
mov dword [ebp - 4], 0x14
test ebx, 0x1000
je 0x422817
push esi
and ebx, 0xffffefff
lea ecx, [ebp - 0x88]
push 1
mov dword [ebp - 0x5bc], ebx
call fcn.00402050
test ebx, 0x800
je 0x422839
push esi
and ebx, 0xfffff7ff
lea ecx, [ebp - 0xb8]
push 1
mov dword [ebp - 0x5bc], ebx
call fcn.00402050
test ebx, 0x400
je 0x42285b
push esi
and ebx, 0xfffffbff
lea ecx, [ebp - 0xa0]
push 1
mov dword [ebp - 0x5bc], ebx
call fcn.00402050
mov byte [ebp - 4], 0x17
test ebx, 0x200
je 0x422881
push esi
and ebx, 0xfffffdff
lea ecx, [ebp - 0xd0]
push 1
mov dword [ebp - 0x5bc], ebx
call fcn.00402050
lea eax, [ebp - 0x28]
mov ecx, edi
push eax
push 1
push dword [ebp - 0x5cc]
call fcn.004222ae
push esi
push 1
lea ecx, [ebp - 0x28]
call fcn.00402050
lea ecx, [ebp - 0x368]
call fcn.0041ea6b
push esi
push 1
lea ecx, [ebp - 0x40]
call fcn.00402050
push 0
push 1
lea ecx, [ebp - 0x70]
mov byte [ebp - 4], 0
call fcn.00402050
mov esi, dword [ebp - 0x5d8]
lea eax, [ebp - 0x5b8]
push eax
push esi
call dword [sym.imp.KERNEL32.dll_FindNextFileW]
test eax, eax
jne 0x4224ed
push esi
call dword [sym.imp.KERNEL32.dll_FindClose]
push 0
push 1
lea ecx, [ebp - 0x58]
call fcn.00402050
call fcn.00426d17
ret 0xc