Function at 0x44b870
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 0x44b8d4
cmp dword [edi + 0x66c], 2
jne 0x44b8d4
mov eax, dword [edi + 0x658]
cmp byte [eax + 1], 0x3a
jne 0x44b8d4
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 0x44bc38
lea eax, [ecx + 1]
push eax
lea eax, [edi + 0x348]
push eax
push edx
call fcn.004c2440
add esp, 0xc
lea eax, [edi + 0x140]
push edi
push eax
call dword [sym.imp.KERNEL32.dll_FindFirstFileA]
mov esi, dword [sym.imp.KERNEL32.dll_FindNextFileA]
mov ebp, eax
xor ebx, ebx
cmp ebp, 0xffffffff
setne bl
je 0x44b949
nop word [eax + eax]
mov edx, dword [esp + 0x40]
mov ecx, edi
call fcn.004644f0
test al, al
je 0x44b949
push edi
push ebp
call esi
mov ebx, eax
test ebx, ebx
jne 0x44b930
mov eax, dword [0x4f898c]
mov dword [esp + 0x20], eax
mov dword [eax + 0x10], edi
mov eax, dword [esp + 0x30]
test ebx, ebx
je 0x44badc
mov ebx, dword [esp + 0x1c]
mov ecx, dword [ebx + 0x14]
cmp byte [ecx], 0x77
jne 0x44b997
nop dword [eax]
mov ecx, dword [ecx + 0x14]
lea edx, [esp + 0x48]
push edx
push eax
push 2
call fcn.00442f20
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 0x44b970
jmp 0x44b9ae
lea edx, [esp + 0x48]
push edx
push eax
push 3
call fcn.00442f20
mov edx, dword [esp + 0x48]
mov esi, eax
mov dword [esp + 0x10], esi
test edx, edx
je 0x44b9d8
cmp esi, 6
jne 0x44ba9d
cmp edx, ebx
je 0x44b9e6
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 0x44b9e6
cmp esi, 6
jne 0x44bac3
mov eax, dword [esp + 0x3c]
test eax, eax
je 0x44ba02
lea ecx, [esp + 0x10]
push ecx
mov ecx, eax
call fcn.0044b140
test al, al
jne 0x44babf
mov esi, dword [esp + 0x40]
push edi
push ebp
call dword [sym.imp.KERNEL32.dll_FindNextFileA]
mov ebx, eax
test ebx, ebx
je 0x44ba84
test byte [edi], 0x10
je 0x44ba3a
cmp esi, 1
je 0x44ba06
cmp byte [edi + 0x2c], 0x2e
lea edx, [edi + 0x2c]
jne 0x44ba42
mov al, byte [edi + 0x2d]
test al, al
je 0x44ba06
cmp al, 0x2e
jne 0x44ba42
cmp byte [edi + 0x2e], 0
je 0x44ba06
jmp 0x44ba42
cmp esi, 2
je 0x44ba06
lea edx, [edi + 0x2c]
mov esi, edx
lea ecx, [esi + 1]
mov al, byte [esi]
inc esi
test al, al
jne 0x44ba47
sub esi, ecx
mov ecx, dword [edi + 0x674]
lea eax, [ecx + esi]
cmp eax, 0x208
jae 0x44ba02
lea eax, [esi + 1]
push eax
lea eax, [edi + 0x140]
push edx
add eax, ecx
push eax
call fcn.004c2440
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 0x44bad6
mov eax, dword [esp + 0x30]
jmp 0x44b961
cmp edx, ebx
jne 0x44b9bf
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
mov esi, dword [sym.imp.KERNEL32.dll_FindNextFileA]
cmp ebp, 0xffffffff
je 0x44bae8
push ebp
call dword [sym.imp.KERNEL32.dll_FindClose]
cmp byte [esp + 0x44], 0
je 0x44bc38
mov ebx, dword [esp + 0x18]
lea eax, [edi + 0x140]
push edi
push eax
mov word [ebx], 0x2a
call dword [sym.imp.KERNEL32.dll_FindFirstFileA]
mov ebp, eax
cmp ebp, 0xffffffff
je 0x44bc38
mov eax, 0x208
sub eax, dword [esp + 0x14]
mov dword [esp + 0x20], eax
test byte [edi], 0x10
je 0x44bc24
cmp byte [edi + 0x2c], 0x2e
lea ecx, [edi + 0x2c]
jne 0x44bb4d
mov al, byte [edi + 0x2d]
test al, al
je 0x44bc24
cmp al, 0x2e
jne 0x44bb4d
cmp byte [edi + 0x2e], 0
je 0x44bc24
mov esi, ecx
lea edx, [esi + 1]
mov al, byte [esi]
inc esi
test al, al
jne 0x44bb52
sub esi, edx
lea eax, [esi + 1]
cmp eax, dword [esp + 0x24]
jae 0x44bc1e
push esi
push ecx
push ebx
call fcn.004c2440
mov eax, dword [esp + 0x34]
lea ecx, [edi + 0x130]
inc eax
mov word [esi + ebx], 0x5c
add esp, 0xc
lea edx, [ecx + 1]
add eax, esi
mov dword [edi + 0x660], eax
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x44bb90
sub ecx, edx
mov ebx, ecx
cmove ebx, esi
lea eax, [ebx + 1]
cmp eax, dword [esp + 0x20]
jae 0x44bc1a
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.004c2440
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.0044b870
mov esi, eax
cmp esi, 1
jne 0x44bc47
mov eax, dword [esp + 0x34]
cmp byte [eax], 0
jne 0x44bc30
cmp dword [ebx], 0
jne 0x44bc30
mov ebx, dword [esp + 0x18]
mov esi, dword [sym.imp.KERNEL32.dll_FindNextFileA]
push edi
push ebp
call esi
test eax, eax
jne 0x44bb22
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