Function at 0x40f594
Capabilities:
Enumerate files on windows
Get disk information

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffc34
push ebx
push esi
push edi
xor ecx, ecx
mov dword [ebp - 0x3cc], ecx
mov dword [ebp - 0x3c8], ecx
mov dword [ebp - 0x3c4], ecx
mov dword [ebp - 0x3c0], ecx
mov dword [ebp - 0x3bc], ecx
mov dword [ebp - 0x3b8], ecx
mov dword [ebp - 0x3b0], ecx
mov dword [ebp - 0x3b4], ecx
mov dword [ebp - 0x3a0], ecx
mov dword [ebp - 0xc], ecx
mov dword [ebp - 4], edx
mov ebx, eax
xor eax, eax
push ebp
push 0x40f92c
push dword fs:[eax]
mov dword fs:[eax], esp
mov byte [ebp - 5], 0
lea ecx, [ebp - 0xc]
mov eax, dword [ebx + 0x20]
mov edx, dword [ebp - 4]
call fcn.004078a0
mov eax, dword [ebp - 0xc]
call fcn.004017ec
cmp eax, 2
jne 0x40f674
mov eax, dword [ebp - 0xc]
cmp byte [eax + 1], 0x3a
jne 0x40f674
lea eax, [ebp - 0x3a0]
mov ecx, 0x40f944
mov edx, dword [ebp - 0xc]
call fcn.00401838
mov eax, dword [ebp - 0x3a0]
call fcn.004019e4
push eax
call sub.kernel32.dll_GetDriveTypeA_1
mov edi, eax
mov dword [ebp - 0x3ac], 2
mov dword [ebp - 0x3a8], 4
mov dword [ebp - 0x3a4], 5
lea edx, [ebp - 0x3ac]
mov ecx, 2
mov eax, edi
call fcn.004037d4
test al, al
je 0x40f674
mov byte [ebp - 5], 1
cmp byte [ebp - 5], 0
jne 0x40f863
call fcn.0040b664
cmp al, 4
jb 0x40f7aa
mov eax, ebx
call fcn.00411950
test al, al
je 0x40f7aa
push 0
push 0
push 1
lea eax, [ebp - 0x39c]
push eax
push 0
lea eax, [ebp - 0x3b4]
push eax
mov eax, dword [ebx + 0x20]
mov cl, 0x5c
mov edx, dword [ebp - 4]
call fcn.004078f0
lea eax, [ebp - 0x3b4]
mov edx, 0x40f950
call fcn.004017f4
mov edx, dword [ebp - 0x3b4]
lea eax, [ebp - 0x3b0]
call fcn.00401d0c
mov eax, dword [ebp - 0x3b0]
call fcn.00401d1c
push eax
call dword [ebx + 0x3c]
mov esi, eax
cmp esi, 0xffffffff
je 0x40f863
test byte [ebp - 0x39c], 0x10
je 0x40f788
lea eax, [ebp - 0x3b8]
lea edx, [ebp - 0x370]
mov ecx, 0x104
call fcn.00401cf0
mov eax, dword [ebp - 0x3b8]
mov edx, 0x40f95c
call fcn.00401d38
je 0x40f788
lea eax, [ebp - 0x3bc]
lea edx, [ebp - 0x370]
mov ecx, 0x104
call fcn.00401cf0
mov eax, dword [ebp - 0x3bc]
mov edx, 0x40f964
call fcn.00401d38
je 0x40f788
lea eax, [ebp - 0x3c0]
lea edx, [ebp - 0x168]
mov ecx, 0xe
call fcn.004017bc
mov ecx, dword [ebp - 0x3c0]
mov eax, ebx
mov edx, dword [ebp - 0x39c]
call fcn.00410198
test al, al
je 0x40f788
mov byte [ebp - 5], 1
jmp 0x40f79d
lea eax, [ebp - 0x39c]
push eax
push esi
call sub.kernel32.dll_FindNextFileW
test eax, eax
jne 0x40f6f8
push esi
call sub.kernel32.dll_FindClose
test eax, eax
jmp 0x40f863
lea eax, [ebp - 0x14c]
push eax
lea eax, [ebp - 0x3c4]
push eax
mov eax, dword [ebx + 0x20]
mov cl, 0x5c
mov edx, dword [ebp - 4]
call fcn.004078f0
lea eax, [ebp - 0x3c4]
mov edx, 0x40f950
call fcn.004017f4
mov eax, dword [ebp - 0x3c4]
call fcn.004019e4
push eax
call sub.kernel32.dll_FindFirstFileA
mov esi, eax
cmp esi, 0xffffffff
je 0x40f863
test byte [ebp - 0x14c], 0x10
je 0x40f84c
lea eax, [ebp - 0x3c8]
lea edx, [ebp - 0x120]
mov ecx, 0x104
call fcn.004017a4
mov eax, dword [ebp - 0x3c8]
mov edx, 0x40f974
call fcn.00401930
je 0x40f84c
lea eax, [ebp - 0x3cc]
lea edx, [ebp - 0x120]
mov ecx, 0x104
call fcn.004017a4
mov eax, dword [ebp - 0x3cc]
mov edx, 0x40f980
call fcn.00401930
je 0x40f84c
mov byte [ebp - 5], 1
jmp 0x40f85d
lea eax, [ebp - 0x14c]
push eax
push esi
call sub.kernel32.dll_FindNextFileA
test eax, eax
jne 0x40f7ed
push esi
call sub.kernel32.dll_FindClose
cmp byte [ebp - 5], 0
jne 0x40f8af
mov eax, dword [ebx + 0x20]
mov ecx, 1
mov edx, dword [ebp - 4]
call fcn.00407a78
mov eax, dword [ebx + 0x20]
mov ecx, 4
mov edx, dword [ebp - 4]
call fcn.00407828
mov esi, eax
test esi, esi
je 0x40f8af
mov edi, esi
mov eax, dword [ebx + 0x20]
mov ecx, 1
mov edx, esi
call fcn.00407828
mov esi, eax
mov eax, ebx
mov edx, edi
call fcn.0041008c
test esi, esi
jne 0x40f88f
mov eax, dword [ebx + 0x20]
mov ecx, 3
mov edx, dword [ebp - 4]
call fcn.00407828
test eax, eax
jne 0x40f8c7
mov byte [ebp - 5], 1
mov eax, dword [ebx + 0x20]
mov cl, byte [ebp - 5]
mov edx, dword [ebp - 4]
call fcn.004079d0
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x40f933
lea eax, [ebp - 0x3cc]
mov edx, 4
call fcn.004015a0
lea eax, [ebp - 0x3bc]
mov edx, 2
call fcn.00401bbc
lea eax, [ebp - 0x3b4]
call fcn.0040157c
lea eax, [ebp - 0x3b0]
call fcn.00401ba4
lea eax, [ebp - 0x3a0]
call fcn.0040157c
lea eax, [ebp - 0xc]
call fcn.0040157c
ret