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

Disassembly:
push ebp
mov ebp, esp
mov ecx, 0x31
push 0
push 0
dec ecx
jne 0x53c2ac
push ecx
push ebx
push esi
push edi
mov dword [ebp - 4], edx
mov esi, eax
mov eax, dword [ebp - 4]
call fcn.00404ed0
xor eax, eax
push ebp
push 0x53cc61
push dword fs:[eax]
mov dword fs:[eax], esp
mov al, byte [0x53cc70]
push eax
lea eax, [ebp - 0x158]
push eax
mov ecx, 0x53cc7c
mov edx, 0x53cc88
mov eax, dword [ebp - 4]
call fcn.0040e9b0
mov edx, dword [ebp - 0x158]
lea eax, [ebp - 4]
call fcn.00404ab8
lea eax, [ebp - 0x15c]
push eax
mov eax, dword [ebp - 4]
call fcn.00404ce0
mov edx, eax
mov ecx, 1
mov eax, dword [ebp - 4]
call fcn.00404f40
mov eax, dword [ebp - 0x15c]
mov edx, 0x53cc7c
call fcn.00404e2c
je 0x53c33c
lea eax, [ebp - 4]
mov edx, 0x53cc7c
call fcn.00404ce8
lea eax, [ebp - 0x154]
push eax
lea eax, [ebp - 0x160]
mov ecx, 0x53cc94
mov edx, dword [ebp - 4]
call fcn.00404d2c
mov eax, dword [ebp - 0x160]
call fcn.00404ee0
push eax
call sub.kernel32.dll_FindFirstFileA_1
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], 0xffffffff
je 0x53c377
mov al, 1
jmp 0x53cc25
xor eax, eax
jmp 0x53cc25
mov eax, dword [0x580a34]
cmp byte [eax], 2
je 0x53cc2d
mov eax, dword [0x581040]
mov eax, dword [eax]
call fcn.0048d8b8
lea eax, [ebp - 8]
lea edx, [ebp - 0x128]
mov ecx, 0x104
call fcn.00404c90
mov eax, dword [ebp - 0x154]
cmp eax, 0x10
je 0x53c3d7
cmp eax, 0x80
je 0x53c3d7
cmp eax, 0x100
je 0x53c3d7
cmp eax, 0x12
je 0x53c3d7
cmp eax, 0x13
je 0x53c3d7
cmp eax, 0x20
jne 0x53c4b0
lea eax, [ebp - 0x164]
mov ecx, dword [ebp - 8]
mov edx, dword [ebp - 4]
call fcn.00404d2c
mov edx, dword [ebp - 0x164]
mov eax, dword [esi + 0x3b0]
call fcn.0046cef4
mov eax, dword [ebp - 8]
mov edx, 0x53cca0
call fcn.00404e2c
je 0x53c4b0
mov eax, dword [ebp - 8]
mov edx, 0x53ccac
call fcn.00404e2c
je 0x53c4b0
lea eax, [ebp - 0x168]
mov ecx, dword [ebp - 8]
mov edx, dword [ebp - 4]
call fcn.00404d2c
mov eax, dword [ebp - 0x168]
call fcn.0050e514
test al, al
je 0x53c4b0
lea eax, [ebp - 0x170]
call fcn.00501e08
mov eax, dword [ebp - 0x170]
lea edx, [ebp - 0x16c]
call fcn.00408ebc
mov eax, dword [ebp - 0x16c]
push eax
lea eax, [ebp - 0x178]
mov ecx, dword [ebp - 8]
mov edx, dword [ebp - 4]
call fcn.00404d2c
mov eax, dword [ebp - 0x178]
lea edx, [ebp - 0x174]
call fcn.00408ebc
mov edx, dword [ebp - 0x174]
pop eax
call fcn.00404e2c
je 0x53c4b0
lea eax, [ebp - 0x17c]
mov ecx, dword [ebp - 8]
mov edx, dword [ebp - 4]
call fcn.00404d2c
mov edx, dword [ebp - 0x17c]
mov eax, esi
call fcn.0053c2a4
mov byte [ebp - 0xd], 1
mov eax, dword [esi + 0x408]
mov eax, dword [eax + 8]
dec eax
test eax, eax
jl 0x53c72d
inc eax
mov dword [ebp - 0x14], eax
xor edi, edi
mov eax, dword [0x581040]
mov eax, dword [eax]
call fcn.0048d8b8
mov eax, dword [0x580a34]
cmp byte [eax], 2
je 0x53c72d
mov edx, edi
mov eax, dword [esi + 0x408]
call fcn.0041ad3c
mov ebx, eax
mov eax, dword [ebx]
mov edx, dword [ebp - 8]
call fcn.00404e2c
jne 0x53c723
mov byte [ebp - 0xd], 0
mov eax, dword [esi + 0x370]
mov edx, dword [eax]
call dword [edx + 0xc8]
test al, al
je 0x53c548
lea eax, [ebp - 0x180]
lea edx, [ebp - 0x128]
mov ecx, 0x104
call fcn.00404c90
mov ecx, dword [ebp - 0x180]
xor edx, edx
mov eax, esi
call fcn.0053d4b4
test al, al
je 0x53c72d
mov eax, dword [esi + 0x35c]
mov edx, dword [eax]
call dword [edx + 0xc8]
test al, al
je 0x53c58a
lea eax, [ebp - 0x184]
lea edx, [ebp - 0x128]
mov ecx, 0x104
call fcn.00404c90
mov ecx, dword [ebp - 0x184]
mov edx, 1
mov eax, esi
call fcn.0053d4b4
test al, al
je 0x53c72d
mov eax, dword [esi + 0x354]
mov edx, dword [eax]
call dword [edx + 0xc8]
test al, al
je 0x53c5cc
lea eax, [ebp - 0x188]
lea edx, [ebp - 0x128]
mov ecx, 0x104
call fcn.00404c90
mov ecx, dword [ebp - 0x188]
mov edx, 2
mov eax, esi
call fcn.0053d4b4
test al, al
je 0x53c72d
mov eax, dword [esi + 0x374]
mov edx, dword [eax]
call dword [edx + 0xc8]
test al, al
je 0x53c60e
lea eax, [ebp - 0x18c]
lea edx, [ebp - 0x128]
mov ecx, 0x104
call fcn.00404c90
mov ecx, dword [ebp - 0x18c]
mov edx, 3
mov eax, esi
call fcn.0053d4b4
test al, al
je 0x53c72d
mov eax, dword [esi + 0x368]
mov edx, dword [eax]
call dword [edx + 0xc8]
test al, al
je 0x53c631
mov eax, dword [ebx + 0xc]
mov eax, dword [eax]
cmp eax, dword [ebp - 0x134]
jne 0x53c72d
mov eax, dword [esi + 0x36c]
mov edx, dword [eax]
call dword [edx + 0xc8]
test al, al
je 0x53c65d
lea eax, [ebp - 0x140]
call fcn.00579cc0
mov eax, dword [ebx + 0xc]
fcomp qword [eax + 8]
fnstsw ax
sahf
jne 0x53c72d
mov eax, dword [esi + 0x360]
mov edx, dword [eax]
call dword [edx + 0xc8]
test al, al
je 0x53c689
mov eax, dword [esi + 0x364]
call fcn.004d2b58
shl eax, 0xa
cmp eax, dword [ebp - 0x134]
jg 0x53c72d
mov eax, ebx
lea edx, [ebp - 0x128]
mov ecx, 0x104
call fcn.00404c90
inc dword [ebx + 4]
mov eax, dword [ebx + 4]
push eax
lea eax, [ebx + 0xc]
mov ecx, 1
mov edx, dword [0x53a3e4]
call fcn.00405e70
add esp, 4
mov eax, dword [ebx + 4]
shl eax, 2
mov edx, dword [ebx + 0xc]
mov ecx, dword [ebp - 0x134]
mov dword [edx + eax*8 - 0x20], ecx
lea eax, [ebp - 0x140]
call fcn.00579cc0
mov eax, dword [ebx + 4]
shl eax, 2
mov edx, dword [ebx + 0xc]
fstp qword [edx + eax*8 - 0x18]
wait
lea eax, [ebp - 0x150]
call fcn.00579cc0
mov eax, dword [ebx + 4]
shl eax, 2
mov edx, dword [ebx + 0xc]
fstp qword [edx + eax*8 - 0x10]
wait
mov eax, dword [ebx + 4]
shl eax, 2
mov edx, dword [ebx + 0xc]
lea eax, [edx + eax*8 - 8]
mov edx, dword [ebp - 4]
call fcn.00404a74
mov ecx, ebx
mov edx, edi
mov eax, dword [esi + 0x408]
call fcn.0041ae88
jmp 0x53c72d
inc edi
dec dword [ebp - 0x14]
jne 0x53c4cc
cmp byte [ebp - 0xd], 0
je 0x53cc0f
mov eax, dword [ebp - 8]
mov edx, 0x53cca0
call fcn.00404e2c
je 0x53cc0f
mov eax, dword [ebp - 8]
mov edx, 0x53ccac
call fcn.00404e2c
je 0x53cc0f
mov edx, dword [ebp - 8]
mov eax, 0x53cca0
call fcn.00405024
test eax, eax
jle 0x53cc0f
mov eax, dword [esi + 0x370]
mov edx, dword [eax]
call dword [edx + 0xc8]
test al, al
je 0x53c826
mov ecx, dword [ebp - 8]
xor edx, edx
mov eax, esi
call fcn.0053d4b4
test al, al
je 0x53cad0
mov edx, dword [0x53a40c]
mov eax, 0x10
call fcn.00405924
mov ebx, eax
mov eax, ebx
mov edx, dword [ebp - 8]
call fcn.00404a74
mov dword [ebx + 4], 1
push 1
lea eax, [ebx + 0xc]
mov ecx, 1
mov edx, dword [0x53a3e4]
call fcn.00405e70
add esp, 4
mov eax, dword [ebx + 0xc]
mov edx, dword [ebp - 0x134]
mov dword [eax], edx
lea eax, [ebp - 0x140]
call fcn.00579cc0
mov eax, dword [ebx + 0xc]
fstp qword [eax + 8]
wait
lea eax, [ebp - 0x150]
call fcn.00579cc0
mov eax, dword [ebx + 0xc]
fstp qword [eax + 0x10]
wait
mov eax, dword [ebx + 0xc]
add eax, 0x18
mov edx, dword [ebp - 4]
call fcn.00404a74
mov edx, ebx
mov eax, dword [esi + 0x408]
call fcn.0041ab90
jmp 0x53cad0
mov eax, dword [esi + 0x35c]
mov edx, dword [eax]
call dword [edx + 0xc8]
test al, al
je 0x53c8dd
mov ecx, dword [ebp - 8]
mov edx, 1
mov eax, esi
call fcn.0053d4b4
test al, al
je 0x53cad0
mov edx, dword [0x53a40c]
mov eax, 0x10
call fcn.00405924
mov ebx, eax
mov eax, ebx
mov edx, dword [ebp - 8]
call fcn.00404a74
mov dword [ebx + 4], 1
push 1
lea eax, [ebx + 0xc]
mov ecx, 1
mov edx, dword [0x53a3e4]
call fcn.00405e70
add esp, 4
mov eax, dword [ebx + 0xc]
mov edx, dword [ebp - 0x134]
mov dword [eax], edx
lea eax, [ebp - 0x140]
call fcn.00579cc0
mov eax, dword [ebx + 0xc]
fstp qword [eax + 8]
wait
lea eax, [ebp - 0x150]
call fcn.00579cc0
mov eax, dword [ebx + 0xc]
fstp qword [eax + 0x10]
wait
mov eax, dword [ebx + 0xc]
add eax, 0x18
mov edx, dword [ebp - 4]
call fcn.00404a74
mov edx, ebx
mov eax, dword [esi + 0x408]
call fcn.0041ab90
jmp 0x53cad0
mov eax, dword [esi + 0x354]
mov edx, dword [eax]
call dword [edx + 0xc8]
test al, al
je 0x53c994
mov ecx, dword [ebp - 8]
mov edx, 2
mov eax, esi
call fcn.0053d4b4
test al, al
je 0x53cad0
mov edx, dword [0x53a40c]
mov eax, 0x10
call fcn.00405924
mov ebx, eax
mov eax, ebx
mov edx, dword [ebp - 8]
call fcn.00404a74
mov dword [ebx + 4], 1
push 1
lea eax, [ebx + 0xc]
mov ecx, 1
mov edx, dword [0x53a3e4]
call fcn.00405e70
add esp, 4
mov eax, dword [ebx + 0xc]
mov edx, dword [ebp - 0x134]
mov dword [eax], edx
lea eax, [ebp - 0x140]
call fcn.00579cc0
mov eax, dword [ebx + 0xc]
fstp qword [eax + 8]
wait
lea eax, [ebp - 0x150]
call fcn.00579cc0
mov eax, dword [ebx + 0xc]
fstp qword [eax + 0x10]
wait
mov eax, dword [ebx + 0xc]
add eax, 0x18
mov edx, dword [ebp - 4]
call fcn.00404a74
mov edx, ebx
mov eax, dword [esi + 0x408]
call fcn.0041ab90
jmp 0x53cad0
mov eax, dword [esi + 0x374]
mov edx, dword [eax]
call dword [edx + 0xc8]
test al, al
je 0x53ca4b
mov ecx, dword [ebp - 8]
mov edx, 3
mov eax, esi
call fcn.0053d4b4
test al, al
je 0x53cad0
mov edx, dword [0x53a40c]
mov eax, 0x10
call fcn.00405924
mov ebx, eax
mov eax, ebx
mov edx, dword [ebp - 8]
call fcn.00404a74
mov dword [ebx + 4], 1
push 1
lea eax, [ebx + 0xc]
mov ecx, 1
mov edx, dword [0x53a3e4]
call fcn.00405e70
add esp, 4
mov eax, dword [ebx + 0xc]
mov edx, dword [ebp - 0x134]
mov dword [eax], edx
lea eax, [ebp - 0x140]
call fcn.00579cc0
mov eax, dword [ebx + 0xc]
fstp qword [eax + 8]
wait
lea eax, [ebp - 0x150]
call fcn.00579cc0
mov eax, dword [ebx + 0xc]
fstp qword [eax + 0x10]
wait
mov eax, dword [ebx + 0xc]
add eax, 0x18
mov edx, dword [ebp - 4]
call fcn.00404a74
mov edx, ebx
mov eax, dword [esi + 0x408]
call fcn.0041ab90
jmp 0x53cad0
mov edx, dword [0x53a40c]
mov eax, 0x10
call fcn.00405924
mov ebx, eax
mov eax, ebx
mov edx, dword [ebp - 8]
call fcn.00404a74
mov dword [ebx + 4], 1
push 1
lea eax, [ebx + 0xc]
mov ecx, 1
mov edx, dword [0x53a3e4]
call fcn.00405e70
add esp, 4
mov eax, dword [ebx + 0xc]
mov edx, dword [ebp - 0x134]
mov dword [eax], edx
lea eax, [ebp - 0x140]
call fcn.00579cc0
mov eax, dword [ebx + 0xc]
fstp qword [eax + 8]
wait
lea eax, [ebp - 0x150]
call fcn.00579cc0
mov eax, dword [ebx + 0xc]
fstp qword [eax + 0x10]
wait
mov eax, dword [ebx + 0xc]
add eax, 0x18
mov edx, dword [ebp - 4]
call fcn.00404a74
mov edx, ebx
mov eax, dword [esi + 0x408]
call fcn.0041ab90
mov eax, dword [esi + 0x360]
mov edx, dword [eax]
call dword [edx + 0xc8]
test al, al
je 0x53cb8a
mov eax, dword [esi + 0x364]
call fcn.004d2b58
shl eax, 0xa
cmp eax, dword [ebp - 0x134]
jg 0x53cc0f
mov edx, dword [0x53a40c]
mov eax, 0x10
call fcn.00405924
mov ebx, eax
mov eax, ebx
mov edx, dword [ebp - 8]
call fcn.00404a74
mov dword [ebx + 4], 1
push 1
lea eax, [ebx + 0xc]
mov ecx, 1
mov edx, dword [0x53a3e4]
call fcn.00405e70
add esp, 4
mov eax, dword [ebx + 0xc]
mov edx, dword [ebp - 0x134]
mov dword [eax], edx
lea eax, [ebp - 0x140]
call fcn.00579cc0
mov eax, dword [ebx + 0xc]
fstp qword [eax + 8]
wait
lea eax, [ebp - 0x150]
call fcn.00579cc0
mov eax, dword [ebx + 0xc]
fstp qword [eax + 0x10]
wait
mov eax, dword [ebx + 0xc]
add eax, 0x18
mov edx, dword [ebp - 4]
call fcn.00404a74
mov edx, ebx
mov eax, dword [esi + 0x408]
call fcn.0041ab90
jmp 0x53cc0f
mov edx, dword [0x53a40c]
mov eax, 0x10
call fcn.00405924
mov ebx, eax
mov eax, ebx
mov edx, dword [ebp - 8]
call fcn.00404a74
mov dword [ebx + 4], 1
push 1
lea eax, [ebx + 0xc]
mov ecx, 1
mov edx, dword [0x53a3e4]
call fcn.00405e70
add esp, 4
mov eax, dword [ebx + 0xc]
mov edx, dword [ebp - 0x134]
mov dword [eax], edx
lea eax, [ebp - 0x140]
call fcn.00579cc0
mov eax, dword [ebx + 0xc]
fstp qword [eax + 8]
wait
lea eax, [ebp - 0x150]
call fcn.00579cc0
mov eax, dword [ebx + 0xc]
fstp qword [eax + 0x10]
wait
mov eax, dword [ebx + 0xc]
add eax, 0x18
mov edx, dword [ebp - 4]
call fcn.00404a74
mov edx, ebx
mov eax, dword [esi + 0x408]
call fcn.0041ab90
lea eax, [ebp - 0x154]
push eax
mov eax, dword [ebp - 0xc]
push eax
call sub.kernel32.dll_FindNextFileA
cmp eax, 1
sbb eax, eax
inc eax
test al, al
jne 0x53c37e
mov eax, dword [ebp - 0xc]
push eax
call sub.kernel32.dll_FindClose_1
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x53cc68
lea eax, [ebp - 0x18c]
mov edx, 0xe
call fcn.00404a44
lea eax, [ebp - 8]
mov edx, 2
call fcn.00404a44
ret