Function at 0x41ca49
Capabilities:
Get disk information

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x26c
mov al, byte [ebp + 0x14]
push ebx
mov ebx, dword [ebp + 8]
push esi
push edi
xor esi, esi
and al, 0xf
inc esi
push ebx
mov byte [ebp - 1], al
mov dword [ebp - 0x14], esi
mov dword [ebp - 0x10], esi
call dword [sym.imp.KERNEL32.DLL_lstrlenW]
test byte [ebp + 0x14], 0xf0
mov edi, eax
mov dword [ebp - 0x1c], edi
jne 0x41ca99
cmp edi, 4
jle 0x41ca99
push 0x4971ec
lea eax, [ebx + edi*2 - 8]
push eax
call dword [sym.imp.KERNEL32.DLL_lstrcmpiW]
test eax, eax
jne 0x41ca99
mov dword [ebp - 0xc], esi
jmp 0x41ca9d
and dword [ebp - 0xc], 0
lea eax, [edi + 0x532]
push eax
lea ecx, [ebp - 0x18]
call fcn.00435d80
cmp word [ebx], 0x5c
mov esi, dword [ebp - 0x18]
lea eax, [esi + edi*2 + 0x41a]
mov dword [ebp - 8], eax
jne 0x41cb12
push eax
inc ebx
push 0x324
inc ebx
call dword [sym.imp.KERNEL32.DLL_GetLogicalDriveStringsW]
mov edi, dword [ebp - 8]
jmp 0x41cb04
push ebx
push edi
push 0x497d88
push esi
call dword [sym.imp.USER32.DLL_wsprintfW]
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push esi
call fcn.0041ca49
add esp, 0x20
test eax, eax
jne 0x41caf9
and dword [ebp - 0x14], eax
push edi
call dword [sym.imp.KERNEL32.DLL_lstrlenW]
lea edi, [edi + eax*2 + 2]
cmp word [edi], 0
jne 0x41cad2
mov esi, dword [ebp - 0x14]
jmp 0x41cd8d
cmp dword [ebp - 0xc], 0
jne 0x41cb4a
cmp byte [ebp - 1], 0
lea eax, [esi + edi*2]
push 0x16
jne 0x41cb39
push 0x497d6c
push eax
call fcn.004102e0
add esp, 0xc
add edi, 5
mov dword [ebp - 0xc], edi
jmp 0x41cb68
push 0x497d58
push eax
call fcn.004102e0
add esp, 0xc
inc edi
jmp 0x41cb34
push 0x5c
push 0
push ebx
call dword [sym.imp.SHLWAPI.DLL_StrRChrW]
test eax, eax
je 0x41cb64
sub eax, ebx
inc eax
inc eax
sar eax, 1
mov dword [ebp - 0xc], eax
jmp 0x41cb68
and dword [ebp - 0xc], 0
and dword [ebp - 0x26c], 0
xor eax, eax
mov ecx, 0x93
lea edi, [ebp - 0x268]
rep stosd dword es:[edi], eax
lea eax, [ebp - 0x26c]
push eax
lea eax, [ebp + 8]
push esi
xor ebx, ebx
push eax
mov dword [ebp + 8], ebx
call fcn.0047f714
add esp, 0xc
cmp dword [ebp + 8], ebx
je 0x41ccb2
movzx edi, word [0x4ace7c]
lea eax, [ebp - 0x240]
push eax
shl edi, 0x10
call dword [sym.imp.KERNEL32.DLL_lstrlenW]
inc eax
add eax, eax
push eax
lea eax, [ebp - 0x240]
push eax
mov eax, dword [ebp - 0xc]
lea eax, [esi + eax*2]
push eax
call fcn.004102e0
add esp, 0xc
cmp dword [ebp + 0x10], ebx
je 0x41cbe9
push esi
push dword [ebp + 0x10]
call fcn.0040d707
test al, al
pop ecx
pop ecx
je 0x41cc9a
push esi
push dword [ebp + 0xc]
call fcn.0041c942
cmp byte [0x4ace68], 0
pop ecx
pop ecx
mov ebx, eax
jne 0x41cc86
test ebx, ebx
je 0x41cc8e
and dword [ebp - 8], 0
cmp byte [0x4ace78], 0
je 0x41cc23
push edi
push esi
call fcn.0041294a
pop ecx
pop ecx
jmp 0x41cc86
cmp byte [0x4ace91], 3
je 0x41cc35
cmp byte [0x4ace90], 0
je 0x41cc6b
cmp byte [0x4ace90], 0
je 0x41cc47
push ebx
push esi
call fcn.0040d814
jmp 0x41cc57
cmp byte [0x4ace91], 3
jne 0x41cc5c
push ebx
push esi
call fcn.0040d8da
pop ecx
pop ecx
mov dword [ebp - 0x10], eax
inc dword [ebp - 8]
cmp dword [ebp - 8], 2
jge 0x41cc86
cmp dword [ebp - 0x10], 0
je 0x41cc86
push edi
push esi
push ebx
call fcn.0041285a
add esp, 0xc
inc dword [ebp - 8]
cmp dword [ebp - 8], 2
mov dword [ebp - 0x10], eax
jge 0x41cc86
test eax, eax
jne 0x41cc35
test ebx, ebx
je 0x41cc8e
and word [ebx], 0
cmp dword [ebp - 0x10], 0
jne 0x41cc98
and dword [ebp - 0x14], 0
xor ebx, ebx
lea eax, [ebp - 0x26c]
push eax
push dword [ebp + 8]
call dword [sym.imp.KERNEL32.DLL_FindNextFileW]
test eax, eax
jne 0x41cba0
lea ecx, [ebp + 8]
call fcn.00402b5c
cmp byte [ebp - 1], 1
je 0x41ccc7
xor esi, esi
jmp 0x41cd85
mov edi, dword [ebp - 0x1c]
push 0xc
lea eax, [esi + edi*2]
push 0x497d48
push eax
call fcn.004102e0
lea eax, [ebp - 0x26c]
push eax
lea eax, [ebp + 8]
push esi
push eax
mov word [ebp - 0x23c], bx
call fcn.0047f714
add esp, 0x18
cmp dword [ebp + 8], ebx
je 0x41ccc0
test byte [ebp - 0x26c], 0x10
je 0x41cd6b
cmp word [ebp - 0x240], 0x2e
jne 0x41cd29
cmp word [ebp - 0x23e], bx
je 0x41cd6b
cmp word [ebp - 0x23e], 0x2e
jne 0x41cd29
cmp word [ebp - 0x23c], bx
je 0x41cd6b
lea eax, [ebp - 0x240]
push eax
call dword [sym.imp.KERNEL32.DLL_lstrlenW]
inc eax
add eax, eax
push eax
lea eax, [ebp - 0x240]
push eax
lea eax, [esi + edi*2 + 2]
push eax
call fcn.004102e0
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push esi
call fcn.0041ca49
add esp, 0x1c
cmp eax, ebx
jne 0x41cd64
mov dword [ebp - 0x14], ebx
mov word [ebp - 0x23c], bx
lea eax, [ebp - 0x26c]
push eax
lea ecx, [ebp + 8]
call fcn.0040466f
test eax, eax
jne 0x41ccfa
mov esi, dword [ebp - 0x14]
lea ecx, [ebp + 8]
call fcn.00402b5c
lea ecx, [ebp - 0x18]
call fcn.0043092f
pop edi
mov eax, esi
pop esi
pop ebx
leave
ret