Function at 0x1016014
Capabilities:
Get disk information

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x454
mov eax, dword [0x101b2b8]
xor eax, ebp
mov dword [ebp - 4], eax
mov ecx, dword [ebp + 8]
mov eax, dword [ebp + 0xc]
push ebx
push esi
push edi
mov dword [ebp - 0x454], ecx
mov dword [ebp - 0x450], eax
mov eax, dword [section..data]
mov esi, section..data
cmp eax, esi
je 0x1016068
test dword [eax + 0x1c], 0x20000000
je 0x1016068
push ecx
push 0x1002fa4
push 0x12
push dword [eax + 0x14]
push dword [eax + 0x10]
call fcn.01014c25
push 1
push 0x1f8
push 0x1003098
lea ecx, [ebp - 0x440]
call fcn.01014882
xor eax, eax
xor ebx, ebx
mov edi, 0x208
push edi
mov word [ebp - 0x210], ax
lea eax, [ebp - 0x20e]
push ebx
push eax
mov dword [ebp - 0x44c], 0x10032b8
mov dword [ebp - 0x448], ebx
mov dword [ebp - 0x444], ebx
call sub.msvcrt.dll_memset
xor eax, eax
push edi
mov word [ebp - 0x41c], ax
lea eax, [ebp - 0x41a]
push ebx
push eax
call sub.msvcrt.dll_memset
mov edx, dword [ebp - 0x454]
add esp, 0x18
lea eax, [edi - 0xa]
cmp edx, ebx
jne 0x10160f0
mov dword [ebp - 0x440], 0x80070057
mov word [ebp - 0x43a], ax
jmp 0x10162f0
mov word [ebp - 0x43c], ax
mov eax, 0x1ff
cmp dword [ebp - 0x450], ebx
je 0x10160da
mov word [ebp - 0x43c], ax
inc eax
cmp dword [ebp + 0x10], ebx
jbe 0x10160da
lea ecx, [ebp - 0x44c]
mov dword [ebp - 0x440], ebx
mov word [ebp - 0x43c], ax
call fcn.01017a83
mov dword [ebp - 0x440], eax
cmp eax, ebx
mov eax, 0x203
jl 0x10160e4
mov word [ebp - 0x43c], ax
inc eax
cmp dword [ebp - 0x448], ebx
je 0x10160da
push 0x5c
pop edx
lea ecx, [ebp - 0x44c]
mov dword [ebp - 0x440], ebx
mov word [ebp - 0x43c], ax
call fcn.01017a2d
mov dword [ebp - 0x440], eax
cmp eax, ebx
mov eax, 0x206
jl 0x10160e4
mov word [ebp - 0x43c], ax
mov edi, 0x105
push edi
lea eax, [ebp - 0x210]
push eax
push dword [ebp - 0x44c]
call dword [sym.imp.KERNEL32.dll_GetVolumePathNameW]
test eax, eax
jne 0x10161f3
call fcn.01015b4b
mov dword [ebp - 0x440], eax
mov eax, 0x20c
mov word [ebp - 0x43a], ax
mov eax, dword [section..data]
cmp eax, esi
je 0x10162f0
test dword [eax + 0x1c], 0x2000000
je 0x10162f0
push dword [ebp - 0x440]
push dword [ebp - 0x44c]
push 0x1003058
push 0x1002fa4
push 0x13
push dword [eax + 0x14]
push dword [eax + 0x10]
call fcn.01015aac
jmp 0x10162f0
mov eax, 0x20c
mov word [ebp - 0x43c], ax
push edi
mov edi, dword [sym.imp.KERNEL32.dll_GetVolumeNameForVolumeMountPointW]
lea eax, [ebp - 0x41c]
push eax
lea eax, [ebp - 0x210]
push eax
mov dword [ebp - 0x440], ebx
call edi
test eax, eax
jne 0x101626f
call fcn.01015b4b
mov dword [ebp - 0x440], eax
mov eax, 0x213
mov word [ebp - 0x43a], ax
mov eax, dword [section..data]
cmp eax, esi
je 0x10162f0
test dword [eax + 0x1c], 0x2000000
je 0x10162f0
push dword [ebp - 0x440]
lea ecx, [ebp - 0x210]
push ecx
push 0x1003000
push 0x1002fa4
push 0x14
jmp 0x10161e3
push dword [ebp + 0x10]
mov eax, 0x213
push dword [ebp - 0x450]
mov word [ebp - 0x43c], ax
lea eax, [ebp - 0x41c]
push eax
mov dword [ebp - 0x440], ebx
call edi
test eax, eax
jne 0x10162de
call fcn.01015b4b
mov dword [ebp - 0x440], eax
mov eax, 0x219
mov word [ebp - 0x43a], ax
mov eax, dword [section..data]
cmp eax, esi
je 0x10162f0
test dword [eax + 0x1c], 0x2000000
je 0x10162f0
push dword [ebp - 0x440]
lea ecx, [ebp - 0x41c]
push ecx
push 0x1002fb8
push 0x1002fa4
push 0x15
jmp 0x10161e3
mov eax, 0x219
mov dword [ebp - 0x440], ebx
mov word [ebp - 0x43c], ax
mov esi, dword [ebp - 0x440]
lea ecx, [ebp - 0x44c]
call fcn.01016fc9
lea ecx, [ebp - 0x440]
call fcn.01014a83
mov ecx, dword [ebp - 4]
pop edi
mov eax, esi
pop esi
xor ecx, ebp
pop ebx
call fcn.010141f3
leave
ret 0xc