Function at 0x421cd7
Capabilities:
Enumerate files on windows

Disassembly:
push 0x320
mov eax, 0x46134b
call fcn.0043c4da
mov eax, edx
mov dword [ebp - 0x320], eax
mov edi, ecx
mov dword [ebp - 0x324], edi
and dword [ebp - 4], 0
lea ecx, [ebp - 0x80]
mov esi, dword [ebp + 8]
and dword [ebp - 0x31c], 0
push eax
mov dword [ebp - 0x328], edi
call fcn.0040635c
xor ebx, ebx
lea ecx, [ebp - 0x28]
inc ebx
push esi
mov dword [ebp - 4], ebx
call fcn.0042227d
lea eax, [ebp - 0x28]
mov byte [ebp - 4], 2
push eax
lea ecx, [ebp - 0x80]
call fcn.004222ab
xor esi, esi
mov byte [ebp - 4], bl
push esi
push ebx
lea ecx, [ebp - 0x28]
call fcn.00408a5c
lea eax, [ebp - 0xb0]
push eax
lea ecx, [ebp - 0x80]
call fcn.0042238c
cmp dword [eax + 0x14], 8
jb 0x421d58
mov eax, dword [eax]
lea ecx, [ebp - 0x318]
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_FindFirstFileW]
push esi
push 1
lea ecx, [ebp - 0xb0]
mov ebx, eax
call fcn.00408a5c
cmp ebx, 0xffffffff
jne 0x421d9b
call dword [sym.imp.KERNEL32.dll_GetLastError]
movzx ecx, ax
mov edx, 0x47b9dc
or ecx, 0x80070000
test eax, eax
push 0x20
cmovle ecx, eax
call fcn.0040d728
mov dword [ebp - 0x324], ebx
mov byte [ebp - 4], 3
mov dword [edi], esi
mov dword [edi + 4], esi
mov dword [edi + 8], esi
mov dword [ebp - 0x31c], 1
lea eax, [ebp - 0x2ec]
push 0x47ba04
push eax
call fcn.0044869f
pop ecx
pop ecx
test eax, eax
je 0x421f53
lea eax, [ebp - 0x2ec]
push 0x47ba08
push eax
call fcn.0044869f
pop ecx
pop ecx
test eax, eax
je 0x421f53
push dword [ebp - 0x320]
lea ecx, [ebp - 0x28]
call fcn.0040635c
lea eax, [ebp - 0x2ec]
mov byte [ebp - 4], 4
push eax
lea ecx, [ebp - 0xc8]
call fcn.004062f0
push eax
lea ecx, [ebp - 0x98]
mov byte [ebp - 4], 5
call fcn.0042227d
lea eax, [ebp - 0x98]
mov byte [ebp - 4], 6
push eax
lea ecx, [ebp - 0x28]
call fcn.004222ab
push esi
push 1
lea ecx, [ebp - 0x98]
call fcn.00408a5c
push esi
push 1
lea ecx, [ebp - 0xc8]
mov byte [ebp - 4], 4
call fcn.00408a5c
lea eax, [ebp - 0x28]
push eax
lea ecx, [ebp - 0x64]
call fcn.0040635c
mov byte [ebp - 4], 7
cmp dword [ebp - 0x18], 0
push 0x14
push str.src_filesystem_object.cpp
setne cl
call fcn.0042120a
mov eax, dword [ebp - 0x314]
mov dword [ebp - 0x48], eax
mov eax, dword [ebp - 0x310]
mov dword [ebp - 0x44], eax
mov eax, dword [ebp - 0x30c]
mov dword [ebp - 0x40], eax
mov eax, dword [ebp - 0x308]
mov dword [ebp - 0x3c], eax
mov eax, dword [ebp - 0x304]
mov dword [ebp - 0x38], eax
mov eax, dword [ebp - 0x300]
mov dword [ebp - 0x34], eax
mov eax, dword [ebp - 0x2fc]
pop ecx
pop ecx
mov ecx, dword [ebp - 0x318]
test cl, 0x10
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 0x2f8]
mov dword [ebp - 0x2c], eax
push 0
pop eax
setne al
mov dword [ebp - 0x4c], ecx
inc eax
mov dword [ebp - 0x68], eax
lea eax, [ebp - 0x68]
mov byte [ebp - 4], 8
cmp eax, dword [edi + 4]
jae 0x421f15
cmp dword [edi], eax
ja 0x421f15
mov esi, eax
mov eax, dword [edi + 4]
sub esi, dword [edi]
cmp eax, dword [edi + 8]
jne 0x421efb
push ecx
mov ecx, edi
call fcn.00421fa1
mov ecx, dword [edi + 4]
and esi, 0xffffffc0
add esi, dword [edi]
test ecx, ecx
je 0x421f0d
push esi
call fcn.00417531
add dword [edi + 4], 0x40
xor esi, esi
jmp 0x421f39
mov eax, dword [edi + 4]
cmp eax, dword [edi + 8]
jne 0x421f25
push ecx
mov ecx, edi
call fcn.00421fa1
mov ecx, dword [edi + 4]
test ecx, ecx
je 0x421f35
lea eax, [ebp - 0x68]
push eax
call fcn.00417531
add dword [edi + 4], 0x40
push esi
push 1
lea ecx, [ebp - 0x64]
call fcn.00408a5c
push esi
push 1
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 3
call fcn.00408a5c
lea eax, [ebp - 0x318]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_FindNextFileW]
test eax, eax
jne 0x421db7
test ebx, ebx
je 0x421f74
push ebx
call dword [sym.imp.KERNEL32.dll_FindClose]
push esi
push 1
lea ecx, [ebp - 0x80]
call fcn.00408a5c
mov eax, edi
call fcn.0043c484
ret