Function at 0x40bc8b
Capabilities:
Get disk information

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x88
lea eax, [ebp - 0x5c]
mov dword [ebp - 0x44], 0x454964
mov dword [esp], eax
mov dword [ebp - 0x40], 0x455c24
mov dword [ebp - 0x3c], ebp
mov dword [ebp - 0x38], 0x40beb2
mov dword [ebp - 0x34], esp
call fcn.00442d0b
mov ecx, dword [ebp + 8]
call fcn.0044f3ac
mov al, byte [0x45f024]
mov byte [ebp - 0x60], al
test al, al
jne 0x40bdc3
mov ecx, dword [ebp + 8]
call fcn.0044f3ac
mov eax, dword [sym.imp.KERNEL32.dll_GetLogicalDriveStringsA]
and dword [esp + 4], 0
and dword [esp], 0
mov dword [ebp - 0x70], eax
or dword [ebp - 0x58], 0xffffffff
call eax
push ecx
push ecx
mov dword [ebp - 0x64], eax
test eax, eax
je 0x40bf08
mov dword [esp], eax
call fcn.00454664
mov dword [ebp - 0x58], 1
mov dword [ebp - 0x68], eax
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x64]
mov dword [esp], eax
mov eax, dword [ebp - 0x70]
call eax
push edx
push edx
mov edx, dword [ebp - 0x64]
mov dword [ebp - 0x70], eax
dec eax
cmp eax, edx
jae 0x40bdbb
lea ecx, [ebp - 0x20]
call fcn.0040425a
and dword [ebp - 0x60], 0
and dword [ebp - 0x64], 0
mov eax, dword [ebp - 0x68]
mov edx, dword [ebp - 0x60]
cmp byte [eax + edx], 0
jne 0x40bd9e
mov eax, dword [ebp - 0x64]
mov edx, dword [ebp - 0x68]
lea ecx, [ebp - 0x20]
mov dword [ebp - 0x58], 2
add eax, edx
mov dword [esp], eax
call fcn.00404374
push eax
mov eax, dword [ebp - 0x60]
inc eax
mov dword [ebp - 0x64], eax
lea eax, [ebp - 0x20]
mov dword [esp + 4], eax
lea eax, [ebp - 0x14]
mov dword [esp], eax
call fcn.00405d39
lea eax, [ebp - 0x14]
mov ecx, dword [ebp + 8]
mov dword [ebp - 0x58], 3
mov dword [esp], eax
call fcn.0040a64c
push ecx
mov eax, dword [ebp - 0x14]
call fcn.0040a7da
inc dword [ebp - 0x60]
mov edx, dword [ebp - 0x60]
cmp dword [ebp - 0x70], edx
jne 0x40bd40
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0x70]
cmp dword [ebp - 0x64], edx
sete byte [ebp - 0x60]
call fcn.0040a7f0
mov eax, dword [ebp - 0x68]
jmp 0x40bea8
mov eax, dword [sym.imp.KERNEL32.dll_GetLogicalDriveStringsW]
and dword [esp + 4], 0
and dword [esp], 0
mov dword [ebp - 0x70], eax
or dword [ebp - 0x58], 0xffffffff
call eax
push edx
push edx
mov dword [ebp - 0x64], eax
mov byte [ebp - 0x60], 0
test eax, eax
je 0x40bf08
cmp eax, 0x3ffffffe
ja 0x40be28
add eax, eax
mov dword [esp], eax
call fcn.00454664
mov dword [ebp - 0x58], 4
mov dword [ebp - 0x6c], eax
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x64]
mov dword [esp], eax
mov eax, dword [ebp - 0x70]
call eax
mov edx, dword [ebp - 0x64]
push ecx
push ecx
mov dword [ebp - 0x70], eax
dec eax
mov byte [ebp - 0x60], 0
cmp eax, edx
jae 0x40bea5
jmp 0x40be31
or dword [ebp - 0x58], 0xffffffff
call fcn.00455478
lea ecx, [ebp - 0x14]
mov dword [ebp - 0x58], 4
call fcn.00404ec0
and dword [ebp - 0x64], 0
and dword [ebp - 0x60], 0
mov eax, dword [ebp - 0x6c]
mov edx, dword [ebp - 0x64]
cmp word [eax + edx*2], 0
jne 0x40be88
mov eax, dword [ebp - 0x60]
mov edx, dword [ebp - 0x6c]
lea ecx, [ebp - 0x14]
mov dword [ebp - 0x58], 5
add eax, eax
add eax, edx
mov dword [esp], eax
call fcn.00405154
mov eax, dword [ebp - 0x64]
mov ecx, dword [ebp + 8]
push edx
inc eax
mov dword [ebp - 0x60], eax
lea eax, [ebp - 0x14]
mov dword [esp], eax
call fcn.0040a64c
push eax
inc dword [ebp - 0x64]
mov edx, dword [ebp - 0x64]
cmp dword [ebp - 0x70], edx
jne 0x40be48
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x70]
cmp dword [ebp - 0x60], ecx
sete byte [ebp - 0x60]
call fcn.0040a7da
mov eax, dword [ebp - 0x6c]
mov dword [esp], eax
call fcn.00454644
jmp 0x40bf08
lea eax, [ebp - 0x5c]
mov dword [esp], eax
call fcn.00442d61
mov al, byte [ebp - 0x60]
leave
ret