Function at 0x45ed40
Capabilities:
Enumerate files on windows

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x4040
call fcn.00526010
push esi
push edi
lea edi, [ebp - 0x4040]
mov ecx, 0x1010
mov eax, 0xcccccccc
rep stosd dword es:[edi], eax
mov eax, dword [0x5a2184]
xor eax, ebp
mov dword [ebp - 4], eax
mov dword [ebp - 0x4018], 0
cmp dword [0x5a51dc], 0x14
jl 0x45efcd
mov eax, dword [ebp + 0x10]
cmp dword [eax + 4], 0xffffffff
jne 0x45ee80
mov ecx, dword [ebp + 0x10]
mov edx, dword [ecx + 0xc]
push edx
push 0x2000
lea eax, [ebp - 0x4010]
push eax
call fcn.0045bb40
add esp, 0xc
mov dword [ebp - 0x401c], eax
cmp dword [ebp - 0x401c], 0
je 0x45edc4
mov eax, dword [ebp - 0x401c]
jmp 0x45f2fc
push 0
lea ecx, [ebp - 0x4010]
push ecx
call fcn.005264ed
add esp, 8
mov dword [ebp - 0x4018], eax
mov edx, dword [ebp - 0x4018]
mov word [edx], 0x2a
mov eax, dword [ebp - 0x4018]
mov word [eax + 2], 0
mov esi, esp
mov ecx, dword [ebp + 0x10]
mov edx, dword [ecx + 0x14]
push edx
lea eax, [ebp - 0x4010]
push eax
call dword [sym.imp.KERNEL32.dll_FindFirstFileW]
cmp esi, esp
call fcn.0052354c
mov ecx, dword [ebp + 0x10]
mov dword [ecx + 4], eax
mov edx, dword [ebp - 0x4018]
mov word [edx], 0
mov eax, dword [ebp + 0x10]
cmp dword [eax + 4], 0xffffffff
jne 0x45ee6d
mov esi, esp
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp esi, esp
call fcn.0052354c
test eax, eax
jne 0x45ee48
mov dword [ebp - 0x402c], 0
jmp 0x45ee62
mov esi, esp
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp esi, esp
call fcn.0052354c
add eax, 0xafc80
mov dword [ebp - 0x402c], eax
mov eax, dword [ebp - 0x402c]
jmp 0x45f2fc
mov ecx, dword [ebp + 0x10]
mov dword [ecx + 0x18], 1
xor eax, eax
jmp 0x45f2fc
mov edx, dword [ebp + 0x10]
cmp dword [edx + 0x18], 0
je 0x45ee95
mov eax, dword [ebp + 0x10]
mov dword [eax + 0x18], 0
jmp 0x45eefa
mov esi, esp
mov ecx, dword [ebp + 0x10]
mov edx, dword [ecx + 0x14]
push edx
mov eax, dword [ebp + 0x10]
mov ecx, dword [eax + 4]
push ecx
call dword [sym.imp.KERNEL32.dll_FindNextFileW]
cmp esi, esp
call fcn.0052354c
test eax, eax
jne 0x45eefa
mov esi, esp
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp esi, esp
call fcn.0052354c
test eax, eax
jne 0x45eed5
mov dword [ebp - 0x4030], 0
jmp 0x45eeef
mov esi, esp
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp esi, esp
call fcn.0052354c
add eax, 0xafc80
mov dword [ebp - 0x4030], eax
mov eax, dword [ebp - 0x4030]
jmp 0x45f2fc
mov edx, dword [ebp + 0x10]
cmp dword [edx + 8], 0
je 0x45ef90
mov eax, dword [ebp + 0x10]
mov ecx, dword [eax + 0x14]
add ecx, 0x2c
push ecx
call fcn.00523b4b
add esp, 4
mov edx, dword [ebp + 0x10]
add eax, dword [edx + 8]
cmp eax, 0x2000
jb 0x45ef90
mov esi, esp
mov eax, dword [ebp + 0x10]
mov ecx, dword [eax + 0x14]
push ecx
mov edx, dword [ebp + 0x10]
mov eax, dword [edx + 4]
push eax
call dword [sym.imp.KERNEL32.dll_FindNextFileW]
cmp esi, esp
call fcn.0052354c
test eax, eax
jne 0x45ef8b
mov esi, esp
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp esi, esp
call fcn.0052354c
test eax, eax
jne 0x45ef66
mov dword [ebp - 0x4034], 0
jmp 0x45ef80
mov esi, esp
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp esi, esp
call fcn.0052354c
add eax, 0xafc80
mov dword [ebp - 0x4034], eax
mov eax, dword [ebp - 0x4034]
jmp 0x45f2fc
jmp 0x45eefa
mov ecx, dword [ebp + 0x10]
mov edx, dword [ecx + 0x14]
add edx, 0x2c
push edx
push 0x30d
mov eax, dword [ebp + 0x10]
mov ecx, dword [eax + 0x10]
push ecx
call fcn.0045bcf0
add esp, 0xc
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
je 0x45efbf
mov eax, dword [ebp - 8]
jmp 0x45f2fc
mov edx, dword [ebp + 0x10]
mov eax, dword [edx + 0x10]
mov dword [ebp - 0xc], eax
jmp 0x45f1ac
mov ecx, dword [ebp + 0x10]
cmp dword [ecx + 4], 0xffffffff
jne 0x45f090
push 0
mov edx, dword [ebp + 0x10]
mov eax, dword [edx + 0xc]
push eax
call fcn.00525b20
add esp, 8
mov dword [ebp - 0x4020], eax
mov ecx, dword [ebp - 0x4020]
mov byte [ecx], 0x2a
mov edx, dword [ebp - 0x4020]
mov byte [edx + 1], 0
mov esi, esp
mov eax, dword [ebp + 0x10]
mov ecx, dword [eax + 0x14]
push ecx
mov edx, dword [ebp + 0x10]
mov eax, dword [edx + 0xc]
push eax
call dword [sym.imp.KERNEL32.dll_FindFirstFileA]
cmp esi, esp
call fcn.0052354c
mov ecx, dword [ebp + 0x10]
mov dword [ecx + 4], eax
mov edx, dword [ebp - 0x4020]
mov byte [edx], 0
mov eax, dword [ebp + 0x10]
cmp dword [eax + 4], 0xffffffff
jne 0x45f07d
mov esi, esp
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp esi, esp
call fcn.0052354c
test eax, eax
jne 0x45f058
mov dword [ebp - 0x4038], 0
jmp 0x45f072
mov esi, esp
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp esi, esp
call fcn.0052354c
add eax, 0xafc80
mov dword [ebp - 0x4038], eax
mov eax, dword [ebp - 0x4038]
jmp 0x45f2fc
mov ecx, dword [ebp + 0x10]
mov dword [ecx + 0x18], 1
xor eax, eax
jmp 0x45f2fc
mov edx, dword [ebp + 0x10]
cmp dword [edx + 0x18], 0
je 0x45f0a5
mov eax, dword [ebp + 0x10]
mov dword [eax + 0x18], 0
jmp 0x45f10a
mov esi, esp
mov ecx, dword [ebp + 0x10]
mov edx, dword [ecx + 0x14]
push edx
mov eax, dword [ebp + 0x10]
mov ecx, dword [eax + 4]
push ecx
call dword [sym.imp.KERNEL32.dll_FindNextFileA]
cmp esi, esp
call fcn.0052354c
test eax, eax
jne 0x45f10a
mov esi, esp
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp esi, esp
call fcn.0052354c
test eax, eax
jne 0x45f0e5
mov dword [ebp - 0x403c], 0
jmp 0x45f0ff
mov esi, esp
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp esi, esp
call fcn.0052354c
add eax, 0xafc80
mov dword [ebp - 0x403c], eax
mov eax, dword [ebp - 0x403c]
jmp 0x45f2fc
mov edx, dword [ebp + 0x10]
cmp dword [edx + 8], 0
je 0x45f1a0
mov eax, dword [ebp + 0x10]
mov ecx, dword [eax + 0x14]
add ecx, 0x2c
push ecx
call fcn.00523ac0
add esp, 4
mov edx, dword [ebp + 0x10]
add eax, dword [edx + 8]
cmp eax, 0x104
jb 0x45f1a0
mov esi, esp
mov eax, dword [ebp + 0x10]
mov ecx, dword [eax + 0x14]
push ecx
mov edx, dword [ebp + 0x10]
mov eax, dword [edx + 4]
push eax
call dword [sym.imp.KERNEL32.dll_FindNextFileW]
cmp esi, esp
call fcn.0052354c
test eax, eax
jne 0x45f19b
mov esi, esp
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp esi, esp
call fcn.0052354c
test eax, eax
jne 0x45f176
mov dword [ebp - 0x4040], 0
jmp 0x45f190
mov esi, esp
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp esi, esp
call fcn.0052354c
add eax, 0xafc80
mov dword [ebp - 0x4040], eax
mov eax, dword [ebp - 0x4040]
jmp 0x45f2fc
jmp 0x45f10a
mov ecx, dword [ebp + 0x10]
mov edx, dword [ecx + 0x14]
add edx, 0x2c
mov dword [ebp - 0xc], edx
mov eax, dword [ebp + 0xc]
push eax
push 0
mov ecx, dword [ebp + 0x10]
mov edx, dword [ecx + 0x14]
push edx
mov eax, dword [ebp + 8]
push eax
call fcn.0045d6c0
add esp, 0x10
mov ecx, dword [ebp + 8]
mov edx, dword [ebp + 0x10]
mov eax, dword [edx]
mov dword [ecx], eax
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 4]
or edx, 0x2000000
mov eax, dword [ebp + 8]
mov dword [eax + 4], edx
mov ecx, dword [ebp + 8]
mov edx, dword [ebp - 0xc]
mov dword [ecx + 0x54], edx
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 4]
not ecx
and ecx, dword [ebp + 0xc]
mov dword [ebp + 0xc], ecx
je 0x45f2fa
cmp dword [0x5a51dc], 0x14
jl 0x45f274
cmp dword [ebp - 0x4018], 0
jne 0x45f227
push 0
lea edx, [ebp - 0x4010]
push edx
call fcn.005264ed
add esp, 8
mov dword [ebp - 0x4018], eax
mov eax, dword [ebp + 0x10]
mov ecx, dword [eax + 0x14]
add ecx, 0x2c
push ecx
mov edx, dword [ebp - 0x4018]
push edx
call fcn.0052603b
add esp, 8
push 2
mov eax, dword [ebp + 0xc]
push eax
lea ecx, [ebp - 0x4010]
push ecx
mov edx, dword [ebp + 8]
push edx
call fcn.0045cfc0
add esp, 0x10
mov dword [ebp - 8], eax
mov eax, dword [ebp - 0x4018]
mov word [eax], 0
mov eax, dword [ebp - 8]
jmp 0x45f2fc
lea ecx, [ebp - 0x4010]
mov dword [ebp - 0x4024], ecx
mov edx, dword [ebp + 0x10]
mov eax, dword [edx + 0xc]
push eax
call fcn.00523ac0
add esp, 4
mov dword [ebp - 0x4028], eax
cmp dword [ebp - 0x4028], 4
jb 0x45f2a8
mov dword [ebp - 0x4028], 3
push 4
mov ecx, dword [ebp + 0x10]
mov edx, dword [ecx + 0xc]
push edx
mov eax, dword [ebp - 0x4024]
push eax
call fcn.004b47d0
mov ecx, 4
sub ecx, dword [ebp - 0x4028]
push ecx
mov edx, dword [ebp - 0xc]
push edx
mov eax, dword [ebp - 0x4024]
add eax, dword [ebp - 0x4028]
push eax
call fcn.004b47d0
push 1
mov ecx, dword [ebp + 0xc]
push ecx
mov edx, dword [ebp - 0x4024]
push edx
mov eax, dword [ebp + 8]
push eax
call fcn.0045cfc0
add esp, 0x10
jmp 0x45f2fc
xor eax, eax
push edx
mov ecx, ebp
push eax
lea edx, [0x45f32c]
call fcn.0052356f
pop eax
pop edx
pop edi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00522672
add esp, 0x4040
cmp ebp, esp
call fcn.0052354c
mov esp, ebp
pop ebp
ret 0xc