Function at 0x40162b
Capabilities:
Get disk information

Disassembly:
push ebp
mov ebp, esp
push ebx
sub esp, 0xa4
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0x14b
mov dword [esp + 4], 0x66
mov eax, dword [ebp + 8]
mov dword [esp], eax
call sub.USER32.dll_SendDlgItemMessageA
sub esp, 0x14
mov dword [esp + 4], str..PhysicalDrive0
lea eax, [ebp - 0x28]
mov dword [esp], eax
call sub.msvcrt.dll_strcpy
mov dword [ebp - 0x4c], 0
cmp dword [ebp - 0x4c], 0x13
jg 0x401810
mov eax, dword [ebp - 0x4c]
add al, 0x30
mov byte [ebp - 0x17], al
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 3
mov dword [esp + 0xc], 0
mov dword [esp + 8], 3
mov dword [esp + 4], 0xc0000000
lea eax, [ebp - 0x28]
mov dword [esp], eax
call sub.KERNEL32.dll_CreateFileA
sub esp, 0x1c
mov dword [ebp - 0x50], eax
cmp dword [ebp - 0x50], 0xffffffff
jne 0x4016db
jmp 0x401806
mov dword [esp + 0x1c], 0
lea eax, [ebp - 0x7c]
mov dword [esp + 0x18], eax
mov dword [esp + 0x14], 0x18
lea eax, [ebp - 0x78]
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 0x70000
mov eax, dword [ebp - 0x50]
mov dword [esp], eax
call sub.KERNEL32.dll_DeviceIoControl
sub esp, 0x20
test eax, eax
je 0x4017b1
mov eax, dword [ebp - 0x6c]
imul eax, dword [ebp - 0x68]
imul eax, dword [ebp - 0x64]
mov dword [ebp - 0x80], eax
mov ebx, dword [ebp - 0x80]
mov eax, 0x1001
mul ebx
mov ecx, ebx
sub ecx, edx
shr ecx, 1
lea eax, [ecx + edx]
mov edx, eax
shr edx, 0x13
mov eax, edx
shl eax, 0x14
sub eax, edx
sub ebx, eax
mov eax, ebx
mov dword [ebp - 0x84], eax
lea eax, [ebp - 0x80]
shr dword [eax], 0x14
mov eax, dword [ebp - 0x80]
imul eax, dword [ebp - 0x78]
mov dword [ebp - 0x80], eax
mov eax, dword [ebp - 0x84]
imul eax, dword [ebp - 0x78]
mov dword [ebp - 0x84], eax
mov eax, dword [ebp - 0x84]
mov edx, eax
shr edx, 0x14
lea eax, [ebp - 0x80]
add dword [eax], edx
mov eax, dword [ebp - 0x80]
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0x4c]
mov dword [esp + 8], eax
mov dword [esp + 4], str._hd_d____uM_
lea eax, [ebp - 0x48]
mov dword [esp], eax
call sub.msvcrt.dll_sprintf
jmp 0x4017cb
mov eax, dword [ebp - 0x4c]
mov dword [esp + 8], eax
mov dword [esp + 4], str._hd_d_
lea eax, [ebp - 0x48]
mov dword [esp], eax
call sub.msvcrt.dll_sprintf
lea eax, [ebp - 0x48]
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0x143
mov dword [esp + 4], 0x66
mov eax, dword [ebp + 8]
mov dword [esp], eax
call sub.USER32.dll_SendDlgItemMessageA
sub esp, 0x14
mov eax, dword [ebp - 0x50]
mov dword [esp], eax
call sub.KERNEL32.dll_CloseHandle
sub esp, 4
lea eax, [ebp - 0x4c]
inc dword [eax]
jmp 0x40167d
mov dword [esp], 0x40702a
call sub.KERNEL32.dll_GetDriveTypeA
sub esp, 4
cmp eax, 2
jne 0x401852
mov dword [esp + 0x10], str._fd0_
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0x143
mov dword [esp + 4], 0x66
mov eax, dword [ebp + 8]
mov dword [esp], eax
call sub.USER32.dll_SendDlgItemMessageA
sub esp, 0x14
mov dword [esp], 0x407034
call sub.KERNEL32.dll_GetDriveTypeA
sub esp, 4
cmp eax, 2
jne 0x401894
mov dword [esp + 0x10], str._fd1_
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0x143
mov dword [esp + 4], 0x66
mov eax, dword [ebp + 8]
mov dword [esp], eax
call sub.USER32.dll_SendDlgItemMessageA
sub esp, 0x14
mov ebx, dword [ebp - 4]
leave
ret