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

Disassembly:
sub esp, 0x1c
push ebx
push ebp
push esi
push edi
mov edi, dword [esp + 0x48]
mov dword [esp + 0x1c], ecx
mov ebx, dword [edi + 0x660]
mov ecx, dword [edi + 0x664]
mov eax, dword [edi + 0x668]
mov dword [esp + 0x28], ebx
mov dword [esp + 0x14], eax
mov dword [edi + 0x674], ebx
test ecx, ecx
jne 0x444ea4
cmp dword [edi + 0x66c], 2
jne 0x444ea4
mov eax, dword [edi + 0x658]
cmp byte [eax + 1], 0x3a
jne 0x444ea4
mov word [edi + 0x348], 0x2e
mov byte [esp + 0x44], cl
mov ecx, 1
mov dword [edi + 0x664], 1
mov eax, 0x208
lea edx, [edi + 0x140]
sub eax, ebx
add edx, ebx
mov dword [esp + 0x18], edx
mov dword [esp + 0x24], eax
cmp ecx, eax
jae 0x4451ff
lea eax, [ecx + 1]
push eax
lea eax, [edi + 0x348]
push eax
push edx
call fcn.004b19e0
add esp, 0xc
lea esi, [edi + 0x140]
push edi
push esi
call dword [sym.imp.KERNEL32.dll_FindFirstFileA]
mov ebp, eax
xor ebx, ebx
cmp ebp, 0xffffffff
setne bl
je 0x444f0e
mov edx, dword [esp + 0x40]
mov ecx, edi
call fcn.00459ff0
test al, al
je 0x444f0e
push edi
push ebp
call dword [sym.imp.KERNEL32.dll_FindNextFileA]
mov ebx, eax
test ebx, ebx
jne 0x444ef1
mov eax, dword [0x4e498c]
mov dword [esp + 0x20], eax
mov dword [eax + 0x10], edi
mov eax, dword [esp + 0x30]
test ebx, ebx
je 0x4450a5
mov ebx, dword [esp + 0x1c]
mov ecx, dword [ebx + 0x14]
cmp byte [ecx], 0x77
jne 0x444f59
mov ecx, dword [ecx + 0x14]
lea edx, [esp + 0x48]
push edx
push eax
push 2
call fcn.0043dc90
mov ecx, dword [ebx + 0x14]
mov esi, eax
mov edx, dword [esp + 0x48]
mov eax, dword [esp + 0x30]
mov dword [esp + 0x10], esi
cmp edx, ecx
je 0x444f32
jmp 0x444f70
lea edx, [esp + 0x48]
push edx
push eax
push 3
call fcn.0043dc90
mov edx, dword [esp + 0x48]
mov esi, eax
mov dword [esp + 0x10], esi
test edx, edx
je 0x444f9a
cmp esi, 6
jne 0x445066
cmp edx, ebx
je 0x444fa8
mov eax, dword [esp + 0x38]
push ebp
mov dword [eax], edx
call dword [sym.imp.KERNEL32.dll_FindClose]
pop edi
mov eax, esi
pop esi
pop ebp
pop ebx
add esp, 0x1c
ret 0x1c
cmp esi, 1
je 0x444fa8
cmp esi, 6
jne 0x44508c
mov eax, dword [esp + 0x3c]
test eax, eax
je 0x444fc4
lea ecx, [esp + 0x10]
push ecx
mov ecx, eax
call fcn.00444740
test al, al
jne 0x445088
mov esi, dword [esp + 0x40]
push edi
push ebp
call dword [sym.imp.KERNEL32.dll_FindNextFileA]
mov ebx, eax
test ebx, ebx
je 0x44504d
test byte [edi], 0x10
je 0x444ffc
cmp esi, 1
je 0x444fc8
cmp byte [edi + 0x2c], 0x2e
lea edx, [edi + 0x2c]
jne 0x445004
mov al, byte [edi + 0x2d]
test al, al
je 0x444fc8
cmp al, 0x2e
jne 0x445004
cmp byte [edi + 0x2e], 0
je 0x444fc8
jmp 0x445004
cmp esi, 2
je 0x444fc8
lea edx, [edi + 0x2c]
mov esi, edx
lea ecx, [esi + 1]
nop dword [eax]
mov al, byte [esi]
inc esi
test al, al
jne 0x445010
sub esi, ecx
mov ecx, dword [edi + 0x674]
lea eax, [ecx + esi]
cmp eax, 0x208
jae 0x444fc4
lea eax, [esi + 1]
push eax
lea eax, [edi + 0x140]
push edx
add eax, ecx
push eax
call fcn.004b19e0
mov eax, dword [edi + 0x674]
add esp, 0xc
add eax, esi
mov dword [edi + 0x660], eax
mov eax, dword [esp + 0x20]
add dword [eax + 8], 1
adc dword [eax + 0xc], 0
test ebx, ebx
je 0x44509f
mov eax, dword [esp + 0x30]
jmp 0x444f26
cmp edx, ebx
jne 0x444f81
mov eax, dword [esp + 0x34]
push ebp
mov byte [eax], 1
call dword [sym.imp.KERNEL32.dll_FindClose]
pop edi
mov eax, esi
pop esi
pop ebp
pop ebx
add esp, 0x1c
ret 0x1c
mov esi, dword [esp + 0x10]
push ebp
call dword [sym.imp.KERNEL32.dll_FindClose]
pop edi
mov eax, esi
pop esi
pop ebp
pop ebx
add esp, 0x1c
ret 0x1c
lea esi, [edi + 0x140]
cmp ebp, 0xffffffff
je 0x4450b1
push ebp
call dword [sym.imp.KERNEL32.dll_FindClose]
cmp byte [esp + 0x44], 0
je 0x4451ff
mov ebx, dword [esp + 0x18]
push edi
push esi
mov word [ebx], 0x2a
call dword [sym.imp.KERNEL32.dll_FindFirstFileA]
mov ebp, eax
cmp ebp, 0xffffffff
je 0x4451ff
mov eax, 0x208
sub eax, dword [esp + 0x14]
mov dword [esp + 0x20], eax
test byte [edi], 0x10
je 0x4451e7
cmp byte [edi + 0x2c], 0x2e
lea ecx, [edi + 0x2c]
jne 0x445110
mov al, byte [edi + 0x2d]
test al, al
je 0x4451e7
cmp al, 0x2e
jne 0x445110
cmp byte [edi + 0x2e], 0
je 0x4451e7
mov esi, ecx
lea edx, [esi + 1]
mov al, byte [esi]
inc esi
test al, al
jne 0x445115
sub esi, edx
lea eax, [esi + 1]
cmp eax, dword [esp + 0x24]
jae 0x4451e7
push esi
push ecx
push ebx
call fcn.004b19e0
mov eax, dword [esp + 0x34]
lea ecx, [edi + 0x130]
inc eax
mov byte [esi + ebx], 0x5c
add esp, 0xc
mov byte [ebx + esi + 1], 0
add eax, esi
lea edx, [ecx + 1]
mov dword [edi + 0x660], eax
mov al, byte [ecx]
inc ecx
test al, al
jne 0x445155
sub ecx, edx
mov ebx, ecx
cmove ebx, esi
lea eax, [ebx + 1]
cmp eax, dword [esp + 0x20]
jae 0x4451e3
mov esi, dword [esp + 0x14]
test ecx, ecx
mov ecx, 0x130
mov eax, 0x2c
cmovne eax, ecx
add esi, 0x44c
push ebx
add eax, edi
add esi, edi
push eax
push esi
call fcn.004b19e0
mov eax, dword [esp + 0x20]
add esp, 0xc
mov ecx, dword [esp + 0x1c]
inc eax
mov word [ebx + esi], 0x5c
add eax, ebx
mov ebx, dword [esp + 0x38]
push edi
push dword [esp + 0x48]
mov dword [edi + 0x668], eax
push dword [esp + 0x48]
push dword [esp + 0x48]
push ebx
push dword [esp + 0x48]
push dword [esp + 0x48]
call fcn.00444e40
mov esi, eax
cmp esi, 1
jne 0x44520e
mov eax, dword [esp + 0x34]
cmp byte [eax], 0
jne 0x4451f7
cmp dword [ebx], 0
jne 0x4451f7
mov ebx, dword [esp + 0x18]
push edi
push ebp
call dword [sym.imp.KERNEL32.dll_FindNextFileA]
test eax, eax
jne 0x4450e5
mov eax, dword [sym.imp.KERNEL32.dll_FindClose]
push ebp
call eax
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x1c
ret 0x1c
mov eax, dword [sym.imp.KERNEL32.dll_FindClose]
push ebp
call eax
pop edi
mov eax, esi
pop esi
pop ebp
pop ebx
add esp, 0x1c
ret 0x1c