Function at 0x4ed8b4
Capabilities:
Get disk information

Disassembly:
push ebp
mov ebp, esp
xor ecx, ecx
push ecx
push ecx
push ecx
push ecx
push ebx
push esi
mov ebx, eax
xor eax, eax
push ebp
push 0x4edb63
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, ebx
call fcn.004edb94
test al, al
je 0x4edb48
test byte [ebx + 0x20], 0x10
jne 0x4edb48
test byte [ebx + 0x20], 1
jne 0x4edb48
mov eax, dword [ebx + 0x24c]
mov byte [eax + 0x3c], 1
mov dl, 5
call fcn.0047360c
test byte [ebx + 0x20], 1
je 0x4ed913
xor eax, eax
mov dword [ebp - 4], eax
jmp 0x4eda74
mov eax, dword [ebx + 0x1ec]
mov edx, dword [eax]
call dword [edx + 0x14]
mov dword [ebp - 4], eax
jmp 0x4eda74
lea edx, [ebp - 0xc]
mov eax, dword [ebx + 0x24c]
call fcn.0047337c
mov edx, dword [ebp - 0xc]
mov eax, dword [ebx + 0x1ec]
mov ecx, dword [eax]
call dword [ecx + 0x50]
mov esi, eax
test esi, esi
jge 0x4eda27
lea edx, [ebp - 0xc]
mov eax, dword [ebx + 0x24c]
call fcn.0047337c
mov eax, dword [ebp - 0xc]
call fcn.00403df0
dec eax
jle 0x4eda74
lea edx, [ebp - 0xc]
mov eax, dword [ebx + 0x24c]
call fcn.0047337c
mov eax, dword [ebp - 0xc]
cmp byte [eax + 1], 0x3a
jne 0x4eda74
cmp byte [ebx + 0x258], 0
je 0x4eda74
lea edx, [ebp - 0xc]
mov eax, dword [ebx + 0x24c]
call fcn.0047337c
mov eax, dword [ebp - 0xc]
lea edx, [ebp - 8]
call fcn.00408f68
mov eax, dword [ebp - 8]
mov edx, 0x4edb78
call fcn.00403f00
je 0x4eda74
mov eax, dword [ebp - 8]
mov edx, 0x4edb84
call fcn.00403f00
je 0x4eda74
mov eax, dword [ebp - 8]
call fcn.00403fb4
push eax
call sub.kernel32.dll_GetDriveTypeA
cmp eax, 2
jne 0x4eda74
lea edx, [ebp - 0xc]
mov eax, dword [ebx + 0x24c]
call fcn.00471bb4
mov eax, dword [ebp - 0xc]
push eax
mov eax, dword [ebx + 0x24c]
call fcn.00473490
push eax
push 0
lea edx, [ebp - 0x10]
mov eax, dword [ebx + 0x24c]
call fcn.0047337c
mov ecx, dword [ebp - 0x10]
mov edx, dword [ebp - 4]
mov eax, ebx
call fcn.004ed4c8
inc dword [ebp - 4]
jmp 0x4eda74
cmp byte [ebx + 0x258], 0
jne 0x4eda74
mov edx, esi
mov eax, dword [ebx + 0x1ec]
mov ecx, dword [eax]
call dword [ecx + 0x18]
mov edx, dword [0x4ecbb0]
call fcn.00403084
call fcn.00402ef4
lea edx, [ebp - 0xc]
mov eax, dword [ebx + 0x24c]
call fcn.0047337c
mov edx, dword [ebp - 0xc]
mov esi, dword [ebx + 0x1ec]
mov eax, esi
mov ecx, dword [eax]
call dword [ecx + 0x50]
mov edx, eax
mov eax, esi
mov ecx, dword [eax]
call dword [ecx + 0x44]
mov eax, dword [ebx + 0x24c]
call fcn.00472b58
test al, al
jne 0x4ed926
mov dl, 9
mov eax, dword [ebx + 0x24c]
call fcn.0047360c
mov eax, dword [ebx + 0x24c]
call fcn.00471ed0
cmp byte [ebx + 0x259], 0
je 0x4edafc
lea edx, [ebp - 0xc]
mov eax, dword [ebx + 0x24c]
call fcn.00471bb4
mov eax, dword [ebp - 0xc]
push eax
mov eax, dword [ebx + 0x24c]
call fcn.00473490
push eax
push 0
lea eax, [ebp - 0x10]
call fcn.00471868
mov ecx, dword [ebp - 0x10]
xor edx, edx
mov eax, ebx
call fcn.004ed4c8
mov esi, eax
mov edx, esi
mov eax, dword [ebx + 0x1ec]
mov ecx, dword [eax]
call dword [ecx + 0x18]
mov edx, dword [0x4ecbb0]
call fcn.00403084
mov byte [eax + 0x14], 1
jmp 0x4edb48
lea edx, [ebp - 0xc]
mov eax, dword [ebx + 0x24c]
call fcn.0047337c
mov edx, dword [ebp - 0xc]
mov eax, dword [ebx + 0x1ec]
mov ecx, dword [eax]
call dword [ecx + 0x50]
mov esi, eax
test esi, esi
jle 0x4edb48
mov edx, esi
mov eax, dword [ebx + 0x1ec]
mov ecx, dword [eax]
call dword [ecx + 0x18]
mov edx, dword [0x4ecbb0]
call fcn.00403084
call fcn.00402ef4
mov edx, esi
mov eax, dword [ebx + 0x1ec]
mov ecx, dword [eax]
call dword [ecx + 0x44]
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4edb6a
lea eax, [ebp - 0x10]
mov edx, 3
call fcn.00403b98
ret