Function at 0x4b38e8
Capabilities:
Get disk information

Disassembly:
push ebp
mov ebp, esp
mov ecx, 5
push 0
push 0
dec ecx
jne 0x4b38f0
push ecx
push ebx
push esi
mov dword [ebp - 4], edx
mov ebx, eax
mov eax, dword [ebp - 4]
call fcn.0040460c
xor eax, eax
push ebp
push 0x4b3c19
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [0x4c56d8]
mov eax, dword [eax]
call fcn.0047b658
cmp byte [0x4c70e0], 0
je 0x4b3bee
push 0
call sub.ole32.dll_CoInitialize
xor eax, eax
push ebp
push 0x4b3be7
push dword fs:[eax]
mov dword fs:[eax], esp
push 0
lea eax, [ebp - 8]
mov edx, dword [ebp - 4]
call fcn.004049ec
mov eax, dword [ebp - 8]
call fcn.00404a68
push eax
mov eax, dword [0x4c5728]
mov eax, dword [eax]
push eax
mov eax, dword [eax]
call dword [eax + 0x14]
test eax, eax
jne 0x4b3bd4
push 4
push 0x4c724c
push 0x104
push 0x4c7144
mov eax, dword [0x4c5648]
mov eax, dword [eax]
push eax
mov eax, dword [eax]
call dword [eax + 0xc]
lea eax, [ebp - 0x10]
mov edx, 0x4c7144
mov ecx, 0x104
call fcn.004043cc
mov eax, dword [ebp - 0x10]
lea edx, [ebp - 0xc]
call fcn.0049d204
mov edx, dword [ebp - 0xc]
mov eax, 0x4c712c
call fcn.004041a0
lea edx, [ebp - 0x14]
mov eax, dword [0x4c712c]
call fcn.00409834
mov edx, dword [ebp - 0x14]
mov eax, 0x4c7130
call fcn.004041a0
lea edx, [ebp - 0x18]
mov eax, dword [0x4c712c]
call fcn.00409900
mov edx, dword [ebp - 0x18]
mov eax, 0x4c7134
call fcn.004041a0
mov eax, dword [0x4c712c]
call fcn.0040441c
test eax, eax
je 0x4b3bd4
mov edx, dword [0x4c712c]
mov eax, 0x4b3c30
call fcn.00404760
test eax, eax
jg 0x4b3bd4
lea eax, [ebp - 0x1c]
push eax
mov ecx, 2
mov edx, 1
mov eax, dword [0x4c712c]
call fcn.0040467c
mov eax, dword [ebp - 0x1c]
mov edx, 0x4b3c3c
call fcn.00404568
je 0x4b3bd4
mov eax, dword [0x4c7130]
mov al, byte [eax]
cmp al, 0x50
ja 0x4b3bd4
mov eax, dword [0x4c7130]
call fcn.0040461c
push eax
call sub.kernel32.dll_GetDriveTypeA
cmp eax, 3
je 0x4b3a74
mov eax, dword [0x4c7130]
mov edx, 0x4b3c48
call fcn.00404568
jne 0x4b3a98
mov eax, dword [0x4c712c]
call fcn.004094ec
test al, al
jne 0x4b3bd4
mov eax, dword [0x4c712c]
call fcn.004094dc
test al, al
jne 0x4b3bd4
cmp byte [0x4c70e1], 0
je 0x4b3b00
mov eax, dword [0x4c54d8]
inc dword [eax]
lea edx, [ebp - 0x24]
mov eax, dword [0x4c54d8]
mov eax, dword [eax]
call fcn.00408ef0
push dword [ebp - 0x24]
push 0x4b3c54
push 0x4b3c60
lea eax, [ebp - 0x28]
push eax
mov eax, dword [0x4c5840]
mov eax, dword [eax]
mov ecx, 0x4b3c78
mov edx, 0x4b3c90
mov esi, dword [eax]
call dword [esi]
push dword [ebp - 0x28]
lea eax, [ebp - 0x20]
mov edx, 3
call fcn.004044dc
mov edx, dword [ebp - 0x20]
mov eax, dword [ebx + 0x3dc]
call fcn.0045b5a4
jmp 0x4b3bd4
mov edx, dword [0x4c7134]
mov eax, ebx
call fcn.004b37b4
mov eax, dword [0x4c7140]
push eax
mov eax, dword [0x4c7138]
call fcn.0040461c
push eax
mov eax, dword [0x4c6668]
push eax
call sub.shell32.dll_ExtractIconA
mov edx, eax
mov eax, dword [0x4c7248]
call fcn.0042cf5c
mov edx, dword [ebp - 4]
mov eax, dword [0x4c70f0]
mov ecx, dword [eax]
call dword [ecx + 0x38]
mov eax, dword [ebx + 0x65c]
mov eax, dword [eax + 0x22c]
call fcn.00442abc
call fcn.00442990
mov esi, eax
mov eax, dword [ebx + 0x65c]
mov eax, dword [eax + 0x22c]
mov edx, esi
call fcn.00442b48
mov edx, dword [ebp - 4]
call fcn.0044255c
mov eax, dword [ebx + 0x65c]
mov eax, dword [eax + 0x22c]
mov edx, esi
call fcn.00442b48
mov eax, dword [eax + 8]
push eax
lea eax, [ebp - 0x2c]
mov edx, 0x4c7144
mov ecx, 0x104
call fcn.004043cc
mov edx, dword [ebp - 0x2c]
pop eax
mov ecx, dword [eax]
call dword [ecx + 0x38]
mov eax, dword [ebx + 0x678]
mov edx, dword [0x4c7248]
call fcn.00468eac
push eax
mov eax, dword [ebx + 0x65c]
mov eax, dword [eax + 0x22c]
mov edx, esi
call fcn.00442b48
xor edx, edx
pop ecx
call fcn.00442714
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4b3bee
call sub.ole32.dll_CoUninitialize
ret
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4b3c20
lea eax, [ebp - 0x2c]
mov edx, 9
call fcn.00404170
lea eax, [ebp - 8]
call fcn.0040483c
lea eax, [ebp - 4]
call fcn.0040414c
ret