Function at 0x4f1788
Capabilities:
Get disk information

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffeac
push ebx
push esi
push edi
xor ebx, ebx
mov dword [ebp - 0x154], ebx
mov dword [ebp - 0x150], ebx
mov dword [ebp - 0x14c], ebx
mov dword [ebp - 0x148], ebx
mov dword [ebp - 0x13c], ebx
mov dword [ebp - 0x10], ebx
mov dword [ebp - 0x24], ebx
mov dword [ebp - 0x28], ebx
mov dword [ebp - 0x2c], ebx
mov dword [ebp - 0xc], ecx
mov dword [ebp - 8], edx
mov dword [ebp - 4], eax
mov esi, dword [ebp + 8]
mov eax, dword [ebp - 8]
call fcn.0040669c
xor eax, eax
push ebp
push 0x4f1b3b
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [esi + 0xc]
mov dword [ebp - 0x14], eax
mov ebx, 0xa0
lea eax, [ebp - 0x10]
call fcn.00406628
push eax
push ebx
mov eax, dword [ebp - 4]
call fcn.0046e5b4
push eax
mov eax, dword [ebp - 8]
push eax
mov eax, dword [eax]
call dword [eax + 0x10]
test eax, eax
jne 0x4f1af5
mov dl, 1
mov eax, dword [0x4181ec]
call fcn.00403b64
mov dword [ebp - 0x30], eax
jmp 0x4f1ad2
lea eax, [ebp - 0x24]
push eax
xor ecx, ecx
mov edx, dword [ebp - 0x18]
mov eax, dword [ebp - 8]
call fcn.004f11d0
mov bl, 1
mov edx, dword [ebp - 0x24]
mov eax, 0x4f1b54
call fcn.00404fcc
mov edi, eax
test edi, edi
jle 0x4f188a
lea eax, [ebp - 0x13c]
push eax
mov edx, edi
dec edx
mov ecx, 2
mov eax, dword [ebp - 0x24]
call fcn.00404ee8
mov edx, dword [ebp - 0x13c]
lea eax, [ebp - 0x138]
mov ecx, 0xff
call fcn.00404c64
lea edx, [ebp - 0x138]
lea eax, [ebp - 0x35]
mov cl, 4
call fcn.004030e8
jmp 0x4f188c
xor ebx, ebx
lea eax, [ebp - 0x144]
push eax
lea edx, [ebp - 0x35]
mov eax, 0x4f1b58
call fcn.00402be4
mov edx, eax
dec edx
mov ecx, 1
lea eax, [ebp - 0x35]
call fcn.0040290c
lea edx, [ebp - 0x144]
lea eax, [ebp - 0x28]
call fcn.00404c2c
lea eax, [ebp - 0x148]
mov ecx, 0x4f1b64
mov edx, dword [ebp - 0x28]
call fcn.00404cd4
mov eax, dword [ebp - 0x148]
call fcn.00404e88
push eax
call sub.KERNEL32.DLL_GetDriveTypeA
cmp eax, 1
jne 0x4f190b
lea eax, [ebp - 0x14c]
mov ecx, 0x4f1b64
mov edx, dword [ebp - 0x28]
call fcn.00404cd4
mov eax, dword [ebp - 0x14c]
call fcn.00409bd8
test al, al
jne 0x4f190b
xor ebx, ebx
test bl, bl
je 0x4f1abd
mov dword [ebp - 0x1c], 0xf00f0177
lea eax, [ebp - 0x1c]
push eax
lea eax, [ebp - 0x18]
push eax
push 1
mov eax, dword [ebp - 8]
push eax
mov eax, dword [eax]
call dword [eax + 0x24]
mov eax, dword [ebp - 0x1c]
and eax, dword [ebp - 0xc]
je 0x4f1abd
lea eax, [ebp - 0x150]
lea edx, [ebp - 0x35]
call fcn.00404c2c
mov eax, dword [ebp - 0x150]
mov edx, dword [0x503b58]
mov edx, dword [edx]
call fcn.00404dd4
je 0x4f1abd
mov edx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x14]
call fcn.004f1158
mov ebx, eax
mov edx, ebx
mov eax, dword [0x504e40]
call fcn.0041a970
push ebx
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x26c]
mov ecx, dword [ebp - 0x24]
mov edx, esi
call fcn.00447f74
mov esi, eax
mov eax, ebx
call fcn.004f12d4
mov edx, eax
mov eax, esi
call fcn.00446ea4
mov eax, ebx
call fcn.004f12fc
mov edx, eax
mov eax, esi
call fcn.00446efc
mov edx, 1
mov eax, esi
call fcn.00446fa4
mov eax, dword [ebp - 4]
cmp dword [eax + 0x338], 0
je 0x4f1a9b
mov eax, dword [0x5037c4]
mov eax, dword [eax]
mov eax, dword [eax + 0x3c8]
mov ebx, dword [eax + 8]
dec ebx
test ebx, ebx
jl 0x4f1a9b
inc ebx
xor edi, edi
mov eax, 0x104
call fcn.0040273c
mov edx, dword [0x503a20]
mov dword [edx], eax
mov eax, dword [0x5037c4]
mov eax, dword [eax]
mov eax, dword [eax + 0x3c8]
mov edx, edi
call fcn.0041ab1c
mov edx, dword [0x503a20]
mov dword [edx], eax
mov eax, dword [ebp - 4]
push dword [eax + 0x338]
push 0x4f1b70
push dword [esi + 8]
lea eax, [ebp - 0x2c]
mov edx, 3
call fcn.00404d48
lea eax, [ebp - 0x154]
mov edx, dword [0x503a20]
mov edx, dword [edx]
mov ecx, pe_nt_image_headers32
call fcn.00404c38
mov eax, dword [ebp - 0x154]
mov edx, dword [ebp - 0x2c]
call fcn.00404dd4
jne 0x4f1a93
mov eax, dword [0x503a20]
mov eax, dword [eax]
mov eax, dword [eax + 0x100]
cmp eax, 1
jne 0x4f1a7b
mov edx, 2
mov eax, esi
call fcn.00446fa4
jmp 0x4f1a9b
mov edx, dword [0x503a20]
test eax, eax
jne 0x4f1a9b
mov edx, 1
mov eax, esi
call fcn.00446fa4
jmp 0x4f1a9b
inc edi
dec ebx
jne 0x4f19e7
mov eax, esi
call fcn.004473c8
cmp dword [eax + 0x20], 2
jne 0x4f1ab4
mov edx, 2
mov eax, esi
call fcn.00446fa4
mov eax, esi
call fcn.004473c8
mov esi, eax
cmp dword [ebp - 0x18], 0
je 0x4f1ad2
mov eax, dword [ebp - 0x18]
push eax
mov eax, dword [0x504e38]
push eax
mov eax, dword [eax]
call dword [eax + 0x14]
lea eax, [ebp - 0x20]
push eax
lea eax, [ebp - 0x18]
push eax
push 1
mov eax, dword [ebp - 0x10]
push eax
mov eax, dword [eax]
call dword [eax + 0xc]
test eax, eax
je 0x4f1825
mov eax, dword [ebp - 0x30]
call fcn.00403b94
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4f1b42
lea eax, [ebp - 0x154]
mov edx, 4
call fcn.004049ec
lea eax, [ebp - 0x13c]
call fcn.004049c8
lea eax, [ebp - 0x2c]
mov edx, 3
call fcn.004049ec
lea eax, [ebp - 0x10]
call fcn.00406628
lea eax, [ebp - 8]
call fcn.00406628
ret