Function at 0x4c0be0
Capabilities:
Get disk information

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffc0
push ebx
xor ebx, ebx
mov dword [ebp - 0x34], ebx
mov dword [ebp - 0x3c], ebx
mov dword [ebp - 0x40], ebx
mov dword [ebp - 0x38], ebx
mov dword [ebp - 0x30], ebx
mov dword [ebp - 0x24], ebx
mov dword [ebp - 0x1c], ebx
mov dword [ebp - 0xc], ecx
mov dword [ebp - 8], edx
mov dword [ebp - 4], eax
mov eax, dword [ebp - 4]
call fcn.00404570
mov eax, dword [ebp - 8]
call fcn.00404570
xor eax, eax
push ebp
push 0x4c0e53
push dword fs:[eax]
mov dword fs:[eax], esp
mov byte [ebp - 0xd], 0
cmp dword [ebp - 8], 0
je 0x4c0e1b
cmp dword [ebp - 4], 0
je 0x4c0e1b
mov eax, dword [ebp - 4]
call fcn.00404380
test eax, eax
jle 0x4c0e1b
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x14], 1
mov eax, dword [ebp - 4]
mov edx, dword [ebp - 0x14]
mov al, byte [eax + edx - 1]
xor edx, edx
call fcn.0048e244
mov dword [ebp - 0x18], eax
cmp dword [ebp - 0x18], 0xffffffff
je 0x4c0e0f
xor edx, edx
push ebp
push 0x4c0e08
push dword fs:[edx]
mov dword fs:[edx], esp
lea edx, [ebp - 0x1c]
mov ecx, 0x10
mov eax, dword [ebp - 0x18]
call fcn.0048e8b0
test eax, eax
jne 0x4c0ca1
call fcn.00403b8c
jmp 0x4c0e0f
mov edx, dword [ebp - 0x1c]
mov eax, 0x4c0e6c
call fcn.004046c4
dec eax
jne 0x4c0cbc
lea edx, [ebp - 0x1c]
mov eax, dword [ebp - 0x18]
call fcn.004bec24
cmp dword [ebp - 0xc], 1
jne 0x4c0d1b
lea eax, [ebp - 0x28]
mov edx, dword [ebp - 4]
mov ecx, dword [ebp - 0x14]
mov dl, byte [edx + ecx - 1]
mov byte [eax + 1], dl
mov byte [eax], 1
lea edx, [ebp - 0x28]
lea eax, [ebp - 0x2c]
call fcn.00402c08
mov edx, 0x4c0e78
lea eax, [ebp - 0x2c]
mov cl, 2
call fcn.00402bd8
lea edx, [ebp - 0x2c]
lea eax, [ebp - 0x24]
call fcn.00404324
mov eax, dword [ebp - 0x24]
call fcn.00404580
push eax
call sub.kernel32.dll_GetDriveTypeA
cmp eax, 5
je 0x4c0d9e
call fcn.00403b8c
jmp 0x4c0e0f
cmp dword [ebp - 0xc], 2
je 0x4c0d27
cmp dword [ebp - 0xc], 3
jne 0x4c0d97
lea eax, [ebp - 0x28]
mov edx, dword [ebp - 4]
mov ecx, dword [ebp - 0x14]
mov dl, byte [edx + ecx - 1]
mov byte [eax + 1], dl
mov byte [eax], 1
lea edx, [ebp - 0x28]
lea eax, [ebp - 0x2c]
call fcn.00402c08
mov edx, 0x4c0e78
lea eax, [ebp - 0x2c]
mov cl, 2
call fcn.00402bd8
lea edx, [ebp - 0x2c]
lea eax, [ebp - 0x30]
call fcn.00404324
mov eax, dword [ebp - 0x30]
call fcn.00404580
push eax
call sub.kernel32.dll_GetDriveTypeA
cmp eax, 2
je 0x4c0d7c
call fcn.00403b8c
jmp 0x4c0e0f
mov eax, dword [ebp - 4]
mov edx, dword [ebp - 0x14]
mov al, byte [eax + edx - 1]
call fcn.0048ead8
cmp eax, dword [ebp + 8]
je 0x4c0d9e
call fcn.00403b8c
jmp 0x4c0e0f
call fcn.00403b8c
jmp 0x4c0e1b
lea edx, [ebp - 0x38]
mov eax, dword [ebp - 8]
call fcn.00408644
mov eax, dword [ebp - 0x38]
lea edx, [ebp - 0x34]
call fcn.00408428
mov eax, dword [ebp - 0x34]
push eax
lea edx, [ebp - 0x40]
mov eax, dword [ebp - 0x1c]
call fcn.00408644
mov eax, dword [ebp - 0x40]
lea edx, [ebp - 0x3c]
call fcn.00408428
mov eax, dword [ebp - 0x3c]
pop edx
call fcn.0048f1c8
test al, al
je 0x4c0def
mov eax, dword [ebp - 4]
mov edx, dword [ebp - 0x14]
mov al, byte [eax + edx - 1]
mov byte [ebp - 0xd], al
call fcn.00403b8c
jmp 0x4c0e1b
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4c0e0f
or edx, 0xffffffff
mov eax, dword [ebp - 0x18]
call fcn.0048e460
ret
inc dword [ebp - 0x14]
dec dword [ebp - 0x20]
jne 0x4c0c57
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4c0e5a
lea eax, [ebp - 0x40]
mov edx, 5
call fcn.004040e4
lea eax, [ebp - 0x24]
call fcn.004040c0
lea eax, [ebp - 0x1c]
call fcn.004040c0
lea eax, [ebp - 8]
mov edx, 2
call fcn.004040e4
ret