Function at 0x100424f
Capabilities:
Get disk information
Get volume information via ioctl

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x17c
mov eax, dword [0x100c02c]
push esi
push edi
mov edi, dword [ebp + 0xc]
push 0x64
lea ecx, [ebp - 0xcc]
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
xor esi, esi
push ecx
push eax
mov dword [ebp - 0xd8], edi
mov dword [ebp - 0xec], esi
mov dword [ebp - 0xe8], esi
mov dword [ebp - 0xd4], esi
call dword [sym.imp.KERNEL32.dll_GetVolumeNameForVolumeMountPointW]
test eax, eax
jne 0x10042a3
call dword [sym.imp.KERNEL32.dll_GetLastError]
jmp 0x1004593
lea eax, [ebp - 0xcc]
push eax
call dword [sym.imp.msvcrt.dll_wcslen]
pop ecx
push esi
mov word [ebp + eax*2 - 0xce], si
lea eax, [ebp - 0xf4]
push eax
push 0x60
lea eax, [ebp - 0x17c]
push eax
push esi
push esi
push 0x90064
push edi
call dword [sym.imp.KERNEL32.dll_DeviceIoControl]
test eax, eax
je 0x1004327
mov eax, dword [ebp - 0x164]
or eax, dword [ebp - 0x160]
jne 0x10042ff
mov eax, dword [ebp - 0x15c]
or eax, dword [ebp - 0x158]
jne 0x10042ff
xor eax, eax
jmp 0x1004593
push esi
push 0x20000000
push 3
push esi
push 7
push 0x40000080
lea eax, [ebp - 0xcc]
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileW]
cmp eax, 0xffffffff
mov dword [ebp - 0xf0], eax
jne 0x1004338
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0xd4], eax
jmp 0x100458d
push esi
push 8
pop edi
push edi
push dword [ebp - 0x168]
push dword [ebp - 0x16c]
call fcn.01005ca0
add eax, 0x18
adc edx, esi
mov dword [ebp - 0xe4], eax
mov dword [ebp - 0xe0], edx
js 0x1004377
jg 0x1004368
cmp eax, 0xffffffff
jbe 0x1004377
mov dword [ebp - 0xd4], 0x57
jmp 0x1004581
push ebx
push eax
push esi
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
push eax
call dword [sym.imp.KERNEL32.dll_HeapAlloc]
mov ebx, eax
cmp ebx, esi
jne 0x1004398
mov dword [ebp - 0xd4], edi
jmp 0x100456d
push esi
mov ecx, edi
xor eax, eax
lea edi, [ebp - 0x11c]
rep stosd dword es:[edi], eax
mov edi, dword [ebp - 0xd8]
lea eax, [ebp - 0xf4]
push eax
push dword [ebp - 0xe4]
lea eax, [ebp - 0xfc]
push ebx
push 8
push eax
push 0x9006f
push dword [ebp - 0xf0]
mov dword [ebp - 0xfc], esi
mov dword [ebp - 0xf8], esi
mov dword [ebp - 0x11c], edi
mov dword [ebp - 0x114], esi
mov dword [ebp - 0x110], esi
mov dword [ebp - 0x104], 1
call dword [sym.imp.KERNEL32.dll_DeviceIoControl]
test eax, eax
je 0x100441e
push esi
push esi
push dword [ebp - 0x150]
push edi
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
cmp eax, 0xffffffff
je 0x100441e
push edi
call dword [sym.imp.KERNEL32.dll_SetEndOfFile]
test eax, eax
jne 0x100442f
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0xd4], eax
jmp 0x100456d
cmp dword [ebp - 0x168], esi
mov eax, dword [ebx]
mov dword [ebp - 0xe4], eax
mov eax, dword [ebx + 4]
mov byte [ebp - 0xcd], 1
mov dword [ebp - 0xe0], eax
mov dword [ebp - 0xdc], esi
mov dword [ebp - 0xd8], esi
jl 0x100456d
jg 0x100446d
cmp dword [ebp - 0x16c], esi
jbe 0x100456d
push esi
push 8
push dword [ebp - 0xd8]
push dword [ebp - 0xdc]
call fcn.01005ca0
lea edi, [eax + ebx + 0x10]
mov al, byte [ebp - 0xcd]
test byte [edi], al
jne 0x100451e
mov eax, dword [ebp - 0xe4]
mov dword [ebp - 0x10c], eax
mov eax, dword [ebp - 0xe0]
push esi
mov dword [ebp - 0x108], eax
lea eax, [ebp - 0xf4]
push eax
push esi
push esi
push 0x20
lea eax, [ebp - 0x11c]
push eax
push 0x90074
push dword [ebp - 0xf0]
call dword [sym.imp.KERNEL32.dll_DeviceIoControl]
test eax, eax
jne 0x10044e2
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, esi
je 0x10044e2
cmp eax, 5
jne 0x10044ea
mov al, byte [ebp - 0xcd]
or byte [edi], al
add dword [ebp - 0xec], 1
push esi
push 0xc8
adc dword [ebp - 0xe8], esi
push dword [ebp - 0xe8]
push dword [ebp - 0xec]
call fcn.01005d50
or eax, edx
jne 0x100451e
push 0x1001504
call dword [sym.imp.msvcrt.dll_printf]
pop ecx
add dword [ebp - 0xe4], 1
adc dword [ebp - 0xe0], esi
shl byte [ebp - 0xcd], 1
jne 0x100453a
mov byte [ebp - 0xcd], 1
add dword [ebp - 0xdc], 1
adc dword [ebp - 0xd8], esi
mov eax, dword [ebp - 0xd8]
cmp eax, dword [ebp - 0x168]
jl 0x100446d
jg 0x100456d
mov eax, dword [ebp - 0x16c]
cmp dword [ebp - 0xdc], eax
jb 0x100446d
cmp ebx, esi
je 0x1004580
push ebx
push esi
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
push eax
call dword [sym.imp.KERNEL32.dll_HeapFree]
pop ebx
push dword [ebp - 0xf0]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [ebp - 0xd4]
mov ecx, dword [ebp - 4]
pop edi
pop esi
call fcn.010058ab
leave
ret 8