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

Disassembly:
sub esp, 0x25c
push ebx
push ebp
push esi
mov esi, dword [esp + 0x26c]
mov eax, esi
push edi
mov ebp, ecx
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x414a28
sub eax, edx
mov dword [esp + 0x14], eax
jne 0x414b87
mov eax, dword [ebp + 0x818]
push 0
push 0
push 0x1009
push eax
call dword [sym.imp.USER32.dll_SendMessageA]
lea ebx, [ebp + 0x860]
mov ecx, ebx
call fcn.00417510
mov cx, word [0x43becc]
mov dl, byte [0x43bece]
mov word [esp + 0x16c], cx
xor eax, eax
mov byte [esp + 0x16e], dl
mov ecx, 0x3f
lea edi, [esp + 0x16f]
rep stosd dword es:[edi], eax
lea eax, [esp + 0x2c]
push eax
push 0x100
call dword [sym.imp.KERNEL32.dll_GetLogicalDriveStringsA]
test eax, eax
je 0x414b54
cmp eax, 0x100
jg 0x414b54
lea esi, [ebp + 0xff]
lea eax, [ebp + 0x2fd]
mov edx, esi
sub edx, eax
lea ecx, [ecx]
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x414ac0
mov ecx, dword [ebp + 0x820]
push esi
push ecx
call dword [sym.imp.USER32.dll_SetWindowTextA]
xor esi, esi
lea ebx, [ebx]
mov dl, byte [esp + esi + 0x2c]
mov byte [esp + 0x16c], dl
xor eax, eax
lea ecx, [ecx]
mov cl, byte [eax + 0x43c1a8]
mov byte [esp + eax + 0x1c], cl
inc eax
test cl, cl
jne 0x414af0
push 0
lea eax, [esp + 0x20]
push eax
lea ecx, [esp + 0x174]
push ecx
mov ecx, ebx
call fcn.00417450
mov al, byte [esp + esi + 0x2f]
add esi, 3
test al, al
mov byte [esp + 0x16c], 0
jne 0x414b30
mov al, byte [esp + esi + 0x2d]
test al, al
je 0x414b39
inc esi
cmp esi, 0x100
jl 0x414ae0
mov ecx, ebx
call fcn.00417540
mov edx, dword [ebp + 0x818]
push ebx
push edx
mov ecx, ebp
call fcn.00414300
jmp 0x414dbc
push 1
mov ecx, ebp
call fcn.004141a0
lea eax, [ebp + 0xff]
sub ebp, eax
lea edx, [ebp + 0x2fd]
jmp 0x414b70
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x414b70
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x25c
ret 4
mov edi, esi
dec edi
lea ebx, [ebx]
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x414b90
mov ax, word [0x43bec8]
mov word [edi], ax
mov cl, byte [0x43beca]
mov byte [edi + 2], cl
mov edi, dword [sym.imp.KERNEL32.dll_SetErrorMode]
push 1
call edi
lea edx, [esp + 0x2c]
push edx
push esi
call dword [sym.imp.KERNEL32.dll_FindFirstFileA]
mov ebx, eax
mov dword [esp + 0x10], ebx
call dword [sym.imp.KERNEL32.dll_GetLastError]
push 0
mov dword [esp + 0x18], eax
call edi
cmp ebx, 0xffffffff
jne 0x414c7b
mov eax, dword [esp + 0x14]
test eax, eax
je 0x414c17
cmp eax, 2
je 0x414c17
lea eax, [ebp + 0xff]
mov ecx, ebp
sub ecx, eax
lea edx, [ecx + 0x2fd]
lea ebx, [ebx]
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x414c00
push 0xffffffffffffffff
call dword [sym.imp.KERNEL32.dll_FindClose]
jmp 0x414dbc
mov eax, esi
lea edx, [eax + 1]
lea esp, [esp]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x414c20
sub eax, edx
mov byte [eax + esi - 2], cl
lea esi, [ebp + 0xff]
lea eax, [ebp + 0x2fd]
mov ecx, esi
sub ecx, eax
lea ecx, [ecx]
mov dl, byte [eax]
mov byte [ecx + eax], dl
inc eax
test dl, dl
jne 0x414c40
mov edx, dword [ebp + 0x820]
push esi
push edx
call dword [sym.imp.USER32.dll_SetWindowTextA]
push 0xffffffffffffffff
call dword [sym.imp.KERNEL32.dll_FindClose]
mov eax, dword [ebp + 0x818]
push 0
push 0
push 0x1009
push eax
call dword [sym.imp.USER32.dll_SendMessageA]
jmp 0x414dbc
mov ecx, dword [ebp + 0x818]
push 0
push 0
push 0x1009
push ecx
call dword [sym.imp.USER32.dll_SendMessageA]
lea ebx, [ebp + 0x860]
mov ecx, ebx
call fcn.00417510
mov edi, edi
mov edi, 0x43bec4
lea esi, [esp + 0x58]
mov ecx, 2
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
je 0x414d42
mov edi, 0x43bec0
lea esi, [esp + 0x58]
mov ecx, 3
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
je 0x414d42
test byte [esp + 0x2c], 0x10
jne 0x414d1c
mov ecx, dword [esp + 0x4c]
push ecx
lea edx, [esp + 0x20]
push 0x43b924
push edx
call fcn.0042da36
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x50]
add esp, 0xc
push 0
sub eax, 0xd53e8000
push 0x989680
sbb ecx, 0x19db1de
push ecx
push eax
call fcn.0042dec0
push eax
lea eax, [esp + 0x20]
push eax
lea ecx, [esp + 0x60]
mov dword [esp + 0x20], edx
push ecx
jmp 0x414d3b
xor eax, eax
mov edi, edi
mov cl, byte [eax + 0x43c1a8]
mov byte [esp + eax + 0x1c], cl
inc eax
test cl, cl
jne 0x414d20
push 0
lea edx, [esp + 0x20]
push edx
lea eax, [esp + 0x60]
push eax
mov ecx, ebx
call fcn.00417450
mov edx, dword [esp + 0x10]
lea ecx, [esp + 0x2c]
push ecx
push edx
call dword [sym.imp.KERNEL32.dll_FindNextFileA]
test eax, eax
jne 0x414ca0
mov eax, dword [esp + 0x10]
push eax
call dword [sym.imp.KERNEL32.dll_FindClose]
mov ecx, ebx
call fcn.00417540
mov ecx, dword [ebp + 0x818]
push ebx
push ecx
mov ecx, ebp
call fcn.00414300
mov esi, dword [esp + 0x270]
mov eax, esi
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x414d87
sub eax, edx
mov byte [eax + esi - 2], cl
lea esi, [ebp + 0xff]
lea eax, [ebp + 0x2fd]
mov ecx, esi
sub ecx, eax
mov dl, byte [eax]
mov byte [ecx + eax], dl
inc eax
test dl, dl
jne 0x414da4
mov edx, dword [ebp + 0x820]
push esi
push edx
call dword [sym.imp.USER32.dll_SetWindowTextA]
mov ecx, ebp
push 1
call fcn.004141a0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x25c
ret 4