Function at 0x41454d
Capabilities:
Get disk information via ioctl

Disassembly:
push ebp
push ebx
mov edx, 0x33
sub esp, 4
mov dword [esp], 0
dec edx
jne 0x414554
call fcn.0045e790
mov eax, dword [esp + 0xd8]
mov dword [esp], eax
push 0x1c
call fcn.0045ac20
mov dword [esp + 4], eax
push 0xa
push 0
push 0
mov ebp, 0x470555
push ebp
call sub.setupapi.dll_SetupDiGetClassDevsW
mov dword [esp + 8], eax
mov ebp, dword [esp + 4]
mov dword [ebp], 0x1c
push edx
call fcn.0045e620
pop edx
push eax
push edx
call fcn.0045e620
pop edx
push eax
push 0x800
call fcn.0044f2b0
lea eax, [esp + 0xbc]
push eax
call fcn.0045e660
push edx
call fcn.0045e620
pop edx
push eax
call fcn.0040e0ef
lea eax, [esp + 0xc4]
push eax
call fcn.0045e660
mov ebp, dword [0x473558]
push dword [ebp + 0xb0]
mov edx, 0x46105e
pop ecx
call fcn.0044e300
jne 0x414640
mov edx, dword [esp + 0xc0]
push edx
call fcn.0045e620
pop edx
push eax
push edx
call fcn.0045e6f0
mov ebp, dword [0x473558]
mov edx, dword [ebp + 0xb0]
push edx
call fcn.0045e6f0
mov edx, 0x4629b0
push edx
call fcn.0045e6f0
lea eax, [esp + 0xc4]
push eax
call fcn.0045e660
push dword [esp + 4]
push dword [esp + 0xc8]
push dword [esp + 0x10]
call sub.setupapi.dll_SetupDiEnumDeviceInfo
call sub.kernel32.dll_GetLastError
mov ebx, eax
cmp ebx, 0x103
jne 0x414668
jmp 0x41489e
lea eax, [esp + 0xb0]
push eax
push 0x800
mov eax, dword [esp + 0xc0]
push eax
lea eax, [esp + 0xb8]
push eax
push 0xe
push dword [esp + 0x18]
push dword [esp + 0x20]
call sub.setupapi.dll_SetupDiGetDeviceRegistryPropertyW
push edx
call fcn.0045e620
pop edx
push eax
mov edx, dword [esp + 0xbc]
push edx
call fcn.0045e620
pop edx
push eax
push edx
call fcn.0045e6f0
mov edx, 0x4629b0
push edx
call fcn.0045e6f0
call fcn.0045e850
push dword [esp + 0xc8]
call fcn.0044e2d2
add dword [esp + 4], edx
call fcn.0044f710
call fcn.0044e2f0
and eax, eax
je 0x4146e6
xor eax, eax
jmp 0x4146eb
mov eax, 1
and eax, eax
je 0x41488a
mov edx, dword [esp + 0xb8]
push edx
call fcn.0045e620
pop edx
push eax
push edx
call fcn.0045e6f0
mov ebx, dword [esp + 0xcc]
mov edx, dword [esp + 4]
mov ebp, dword [edx]
imul ebx, ebx, 0x14
add ebp, ebx
lea eax, [ebp]
push eax
call fcn.0045e660
push edx
call fcn.0045e620
pop edx
push eax
push 0
push pe_nt_image_headers32
push 3
push 0
push 0
push 0
push edx
call fcn.0045e620
pop edx
push eax
mov edx, 0x469c1e
push edx
call fcn.0045e6f0
push edx
call fcn.0045e620
pop edx
push eax
push edx
call fcn.0045e620
pop edx
push eax
push 9
push dword [esp + 0xe4]
call fcn.00450130
pop eax
call fcn.0044e2d2
add dword [esp], edx
call sub.kernel32.dll_CreateFileW
call fcn.0044e2f0
mov dword [esp + 0xa8], eax
mov ebx, dword [esp + 0xa8]
cmp ebx, 0xffffffff
je 0x41487b
mov dword [esp + 0xb4], 0
push 0
lea eax, [esp + 0xb8]
push eax
push 0xc
lea eax, [esp + 0x18]
push eax
push 0
push 0
push 0x2d1080
push dword [esp + 0xc4]
call sub.kernel32.dll_DeviceIoControl
push 0
lea eax, [esp + 0xb8]
push eax
push 0x90
lea eax, [esp + 0x24]
push eax
push 0
push 0
push 0x70048
push dword [esp + 0xc4]
call sub.kernel32.dll_DeviceIoControl
push dword [esp + 0xa8]
call sub.kernel32.dll_CloseHandle
lea ebp, [esp + 0xc]
push dword [ebp + 4]
mov ebx, dword [esp + 0xcc]
mov edx, dword [esp + 4]
mov ebp, dword [edx]
imul ebx, ebx, 0x14
add ebp, ebx
pop eax
mov dword [ebp + 8], eax
lea ebp, [esp + 0xc]
push dword [ebp + 8]
mov ebx, dword [esp + 0xcc]
mov edx, dword [esp + 4]
mov ebp, dword [edx]
imul ebx, ebx, 0x14
add ebp, ebx
pop eax
mov dword [ebp + 0xc], eax
lea ebp, [esp + 0x18]
push dword [ebp + 8]
mov ebx, dword [esp + 0xcc]
mov edx, dword [esp + 4]
mov ebp, dword [edx]
imul ebx, ebx, 0x14
add ebp, ebx
pop eax
mov dword [ebp + 0x10], eax
jmp 0x41487b
mov ebx, dword [esp + 0xc8]
inc ebx
mov dword [esp + 0xc8], ebx
mov ebx, dword [esp + 0xc4]
inc ebx
mov dword [esp + 0xc4], ebx
jmp 0x414640
push dword [esp + 4]
call fcn.0045ac40
mov eax, dword [esp + 0xc8]
inc eax
mov edx, dword [esp]
lea edx, [edx]
push edx
push eax
call fcn.0045e444
mov eax, dword [esp + 0xc8]
jmp 0x4148c6
push dword [esp + 0xbc]
call fcn.0045e7f0
push dword [esp + 0xc0]
call fcn.0045e7f0
push dword [esp + 0xb8]
call fcn.0045e7f0
add esp, 0xcc
pop ebx
pop ebp
ret 4