Function at 0x45e184
Capabilities:
Enumerate files on windows

Disassembly:
push ebp
mov ebp, esp
push eax
mov eax, 3
add esp, 0xfffff004
push eax
dec eax
jne 0x45e18d
mov eax, dword [ebp - 4]
add esp, 0xfffffea0
push ebx
push esi
push edi
mov eax, 0x51b1b1
call fcn.004cfcb8
mov word [ebp - 0x14], 8
push 0x2001
push 0
call fcn.004528b0
mov edi, eax
xor eax, eax
add esp, 8
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
lea esi, [ebp - 0x1024]
xchg edi, esi
mov edx, ecx
mov eax, edi
shr ecx, 2
lea eax, [ebp - 0x1024]
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
test eax, eax
je 0x45e230
lea edx, [ebp - 0x1024]
push edx
call fcn.004cd3e4
pop ecx
test eax, eax
je 0x45e230
lea ecx, [ebp - 0x1024]
push ecx
call fcn.004cd3e4
pop ecx
movsx eax, byte [ebp + eax - 0x1025]
cmp eax, 0x5c
je 0x45e230
push 0x5d48d1
lea edx, [ebp - 0x1024]
push edx
call fcn.004cd308
add esp, 8
push 0x5d48d3
lea ecx, [ebp - 0x1024]
push ecx
call fcn.004cd308
add esp, 8
test byte [0x514ff1], 4
je 0x45e266
lea eax, [ebp - 0x1024]
push eax
push 0x5d48d9
push 0x514ff4
call fcn.00451068
add esp, 0xc
lea edx, [ebp - 0x3164]
push edx
lea ecx, [ebp - 0x1024]
push ecx
call sub.KERNEL32.dll_FindFirstFileA
mov esi, eax
cmp esi, 0xffffffff
je 0x45e490
push 0x2001
push 0
call fcn.004528b0
add esp, 8
mov edi, eax
xor eax, eax
or ecx, 0xffffffff
push esi
lea esi, [ebp - 0x1024]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov edx, ecx
xchg edi, esi
shr ecx, 2
mov eax, edi
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
lea eax, [ebp - 0x1024]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
pop esi
test eax, eax
je 0x45e303
lea edx, [ebp - 0x1024]
push edx
call fcn.004cd3e4
pop ecx
test eax, eax
je 0x45e303
lea ecx, [ebp - 0x1024]
push ecx
call fcn.004cd3e4
pop ecx
movsx eax, byte [ebp + eax - 0x1025]
cmp eax, 0x5c
je 0x45e303
push 0x5d48f2
lea edx, [ebp - 0x1024]
push edx
call fcn.004cd308
add esp, 8
lea ecx, [ebp - 0x3138]
push ecx
lea eax, [ebp - 0x1024]
push eax
call fcn.004cd308
add esp, 8
xor eax, eax
lea edi, [ebp - 0x1024]
or ecx, 0xffffffff
push esi
lea esi, [ebp - 0x2024]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov edx, ecx
xchg edi, esi
shr ecx, 2
mov eax, edi
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
lea eax, [ebp - 0x2024]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
pop esi
push eax
call fcn.004cd3e4
pop ecx
mov ebx, eax
push 0x5d48f4
call fcn.004cd3e4
pop ecx
cmp eax, ebx
jae 0x45e36f
push 0x5d48f9
call fcn.004cd3e4
pop ecx
sub ebx, eax
mov byte [ebp + ebx - 0x2024], 0
lea eax, [ebp - 0x2024]
lea edx, [ebp - 0x1024]
push eax
push edx
lea ecx, [ebp - 0x3024]
push 0x5d48fe
push ecx
call fcn.004d1ac0
add esp, 0x10
lea eax, [ebp - 0x3024]
push 0
push eax
push 0x5d490a
call fcn.004b99a8
add esp, 0xc
lea edx, [ebp - 0x2024]
push edx
push 0x5d4918
lea ecx, [ebp - 0x3024]
push ecx
call fcn.004d1ac0
add esp, 0xc
test byte [0x514ff1], 4
je 0x45e3ec
lea eax, [ebp - 0x2024]
push eax
push 0x5d491f
push 0x514ff4
call fcn.00451068
add esp, 0xc
push 1
call fcn.004d934c
pop ecx
lea edx, [ebp - 0x3024]
push edx
call fcn.00404c28
pop ecx
lea ecx, [ebp - 0x3024]
push ecx
lea eax, [ebp - 0x2024]
push eax
call fcn.0040581c
add esp, 8
lea edx, [ebp - 0x3024]
push edx
call fcn.00404c28
pop ecx
push 0
lea ecx, [ebp - 0x2024]
push ecx
lea eax, [ebp - 0x1024]
push eax
call fcn.00436644
add esp, 0xc
test eax, eax
je 0x45e44f
lea edx, [ebp - 0x1024]
push edx
call fcn.004d15a0
pop ecx
jmp 0x45e475
push 0x10000
lea ecx, [ebp - 0x2024]
push ecx
push 0x5d4926
call fcn.004b99a8
add esp, 0xc
lea eax, [ebp - 0x1024]
push eax
call fcn.004d15a0
pop ecx
lea edx, [ebp - 0x3164]
push edx
push esi
call sub.KERNEL32.dll_FindNextFileA
test eax, eax
jne 0x45e284
push esi
call sub.KERNEL32.dll_FindClose
push 0
push 0x2001
push 0x5d4939
lea ecx, [ebp - 0x2024]
push ecx
call fcn.004530bc
add esp, 0x10
lea eax, [ebp - 0x2024]
push eax
push 0x5d4943
lea edx, [ebp - 0x1024]
push edx
call fcn.004d1ac0
add esp, 0xc
push 0x2100
lea ecx, [ebp - 0x2024]
push ecx
call fcn.00405b9c
add esp, 8
test eax, eax
jne 0x45e530
push 0x2100
lea eax, [ebp - 0x1024]
push eax
call fcn.00405b9c
add esp, 8
test eax, eax
je 0x45e530
test byte [0x514ff1], 4
je 0x45e518
lea edx, [ebp - 0x2024]
push edx
push 0x5d494a
push 0x514ff4
call fcn.00451068
add esp, 0xc
push 0
lea ecx, [ebp - 0x2024]
push ecx
lea eax, [ebp - 0x1024]
push eax
call fcn.00436644
add esp, 0xc
push 0
push 0x2001
push 0x5d4959
lea edx, [ebp - 0x2024]
push edx
call fcn.004530bc
add esp, 0x10
lea ecx, [ebp - 0x2024]
push ecx
push 0x5d4965
lea eax, [ebp - 0x1024]
push eax
call fcn.004d1ac0
add esp, 0xc
push 0x2100
lea edx, [ebp - 0x2024]
push edx
call fcn.00405b9c
add esp, 8
test eax, eax
jne 0x45e5d0
push 0x2100
lea ecx, [ebp - 0x1024]
push ecx
call fcn.00405b9c
add esp, 8
test eax, eax
je 0x45e5d0
test byte [0x514ff1], 4
je 0x45e5b8
lea eax, [ebp - 0x2024]
push eax
push 0x5d496c
push 0x514ff4
call fcn.00451068
add esp, 0xc
push 0
lea edx, [ebp - 0x2024]
push edx
lea ecx, [ebp - 0x1024]
push ecx
call fcn.00436644
add esp, 0xc
push 0
call fcn.004b9c40
pop ecx
mov word [ebp - 0x14], 0
jmp 0x45e5ff
mov edx, dword [ebp - 0x24]
mov dword fs:[0], edx
mov esp, ebp
mov edi, dword [ebp - 0x3170]
mov esi, dword [ebp - 0x316c]
mov ebx, dword [ebp - 0x3168]
pop ebp
ret