Function at 0x441dd7
Capabilities:
Get storage device properties

Disassembly:
push ebp
push ebx
mov edx, 0xc
sub esp, 4
mov dword [esp], 0
dec edx
jne 0x441dde
call fcn.005873a0
mov dword [section..data], 0xa00260
mov dword [section..data], 0xa00268
mov dword [esp + 0x1c], 1
mov dword [section..data], 0xa0026e
mov dword [section..data], 0xa00270
lea ebp, [esp + 4]
mov dword [ebp], 0
mov dword [section..data], 0xa00271
mov dword [ebp + 4], 0
mov dword [section..data], 0xa00273
push 0
lea eax, [esp + 0x2c]
push eax
push 8
lea eax, [esp + 0x1c]
push eax
push 0xc
lea eax, [esp + 0x18]
push eax
push 0x2d1400
push dword [esp + 0x58]
call sub.KERNEL32.dll_DeviceIoControl
mov dword [esp + 0x1c], eax
mov dword [section..data], 0xa00274
cmp dword [esp + 0x1c], 0
je 0x441e8b
xor eax, eax
jmp 0x441e90
mov eax, 1
and eax, eax
je 0x441f29
mov dword [section..data], 0xa00275
push edx
call fcn.00587290
pop edx
push eax
push 0
push edx
call fcn.00587290
pop edx
push eax
mov edx, str.IOCTL_STORAGE_QUERY_PROPERTY_1_failed_with_error_code
push edx
call fcn.00587330
call sub.KERNEL32.dll_GetLastError
mov ebx, eax
push edx
call fcn.00587290
pop edx
push eax
push edx
call fcn.00587290
pop edx
push eax
mov eax, ebx
cdq
push edx
push eax
call fcn.00574cc0
pop eax
call fcn.00587380
mov eax, str.DRVMS_EnumerateStorage
push eax
mov eax, str.drive_ms
push eax
call fcn.004fc302
add dword [esp + 8], edx
call fcn.0049e102
call fcn.004fc320
mov dword [section..data], 0xa00276
mov dword [esp + 0x1c], 0
mov dword [section..data], 0xa00277
jmp 0x44233f
mov dword [section..data], 0xa00278
mov dword [section..data], 0xa0027a
lea ebp, [esp + 0x10]
push dword [ebp + 4]
call fcn.00586c00
mov dword [esp + 0x18], eax
mov dword [section..data], 0xa0027b
cmp dword [esp + 0x18], 0
je 0x441f62
xor eax, eax
jmp 0x441f67
mov eax, 1
and eax, eax
je 0x442009
mov dword [section..data], 0xa0027c
push edx
call fcn.00587290
pop edx
push eax
push 0
push edx
call fcn.00587290
pop edx
push eax
mov edx, str.AllocateMemory_failed___
push edx
call fcn.00587330
lea ebp, [esp + 0x1c]
push edx
call fcn.00587290
pop edx
push eax
push edx
call fcn.00587290
pop edx
push eax
mov eax, dword [ebp + 4]
cdq
push edx
push eax
call fcn.00574cc0
pop eax
mov edx, 0x6bef86
push edx
call fcn.00587330
call fcn.00587380
mov eax, str.DRVMS_EnumerateStorage
push eax
mov eax, str.drive_ms
push eax
call fcn.004fc302
add dword [esp + 8], edx
call fcn.0049e102
call fcn.004fc320
mov dword [section..data], 0xa0027d
mov dword [esp + 0x1c], 0xfffffa21
mov dword [section..data], 0xa0027e
jmp 0x44233f
mov dword [section..data], 0xa0027f
mov dword [section..data], 0xa00281
push 0
lea eax, [esp + 0x2c]
push eax
push dword [esp + 0x20]
call fcn.00586f90
push eax
push dword [esp + 0x24]
push 0xc
lea eax, [esp + 0x18]
push eax
push 0x2d1400
push dword [esp + 0x58]
call sub.KERNEL32.dll_DeviceIoControl
mov dword [esp + 0x1c], eax
mov dword [section..data], 0xa00282
cmp dword [esp + 0x1c], 0
je 0x442066
xor eax, eax
jmp 0x44206b
mov eax, 1
and eax, eax
je 0x442104
mov dword [section..data], 0xa00283
push edx
call fcn.00587290
pop edx
push eax
push 0
push edx
call fcn.00587290
pop edx
push eax
mov edx, str.IOCTL_STORAGE_QUERY_PROPERTY_2_failed_with_error_code
push edx
call fcn.00587330
call sub.KERNEL32.dll_GetLastError
mov ebx, eax
push edx
call fcn.00587290
pop edx
push eax
push edx
call fcn.00587290
pop edx
push eax
mov eax, ebx
cdq
push edx
push eax
call fcn.00574cc0
pop eax
call fcn.00587380
mov eax, str.DRVMS_EnumerateStorage
push eax
mov eax, str.drive_ms
push eax
call fcn.004fc302
add dword [esp + 8], edx
call fcn.0049e102
call fcn.004fc320
mov dword [section..data], 0xa00284
mov dword [esp + 0x1c], 0
mov dword [section..data], 0xa00285
jmp 0x44233f
mov dword [section..data], 0xa00286
mov dword [section..data], 0xa00288
mov ebp, dword [esp + 0x18]
movzx eax, byte [ebp + 8]
push eax
mov ebp, dword [esp + 0x44]
pop eax
mov byte [ebp], al
mov dword [section..data], 0xa00289
mov ebp, dword [esp + 0x40]
mov edx, 0x6bb5f6
lea ecx, [ebp + 5]
call fcn.004fc008
mov dword [section..data], 0xa0028a
mov ebp, dword [esp + 0x40]
mov edx, 0x6bb5f6
lea ecx, [ebp + 9]
call fcn.004fc008
mov dword [section..data], 0xa0028b
mov ebp, dword [esp + 0x40]
mov edx, 0x6bb5f6
lea ecx, [ebp + 1]
call fcn.004fc008
mov dword [section..data], 0xa0028c
mov ebp, dword [esp + 0x40]
mov edx, 0x6bb5f6
lea ecx, [ebp + 0xd]
call fcn.004fc008
mov dword [section..data], 0xa0028e
mov ebp, dword [esp + 0x18]
mov ebx, dword [ebp + 0x10]
and ebx, ebx
jle 0x4421ec
mov dword [section..data], 0xa0028e
push edx
call fcn.00587290
pop edx
push eax
push edx
call fcn.00587290
pop edx
push eax
push 0x18
push 0xffffffff
mov ebx, dword [esp + 0x28]
mov ebp, dword [esp + 0x28]
add ebx, dword [ebp + 0x10]
push ebx
call fcn.00586d70
mov ebp, dword [esp + 0x44]
lea eax, [ebp + 5]
push eax
call fcn.005872c0
mov dword [section..data], 0xa0028e
mov dword [section..data], 0xa0028f
mov ebp, dword [esp + 0x18]
mov ebx, dword [ebp + 0x14]
and ebx, ebx
jle 0x44224d
mov dword [section..data], 0xa0028f
push edx
call fcn.00587290
pop edx
push eax
push edx
call fcn.00587290
pop edx
push eax
push 0x18
push 0xffffffff
mov ebx, dword [esp + 0x28]
mov ebp, dword [esp + 0x28]
add ebx, dword [ebp + 0x14]
push ebx
call fcn.00586d70
mov ebp, dword [esp + 0x44]
lea eax, [ebp + 9]
push eax
call fcn.005872c0
mov dword [section..data], 0xa0028f
mov dword [section..data], 0xa00290
mov ebp, dword [esp + 0x18]
mov ebx, dword [ebp + 0xc]
and ebx, ebx
jle 0x4422ae
mov dword [section..data], 0xa00290
push edx
call fcn.00587290
pop edx
push eax
push edx
call fcn.00587290
pop edx
push eax
push 0x18
push 0xffffffff
mov ebx, dword [esp + 0x28]
mov ebp, dword [esp + 0x28]
add ebx, dword [ebp + 0xc]
push ebx
call fcn.00586d70
mov ebp, dword [esp + 0x44]
lea eax, [ebp + 1]
push eax
call fcn.005872c0
mov dword [section..data], 0xa00290
mov dword [section..data], 0xa00291
mov ebp, dword [esp + 0x18]
mov ebx, dword [ebp + 0x18]
and ebx, ebx
jle 0x44230f
mov dword [section..data], 0xa00291
push edx
call fcn.00587290
pop edx
push eax
push edx
call fcn.00587290
pop edx
push eax
push 0x18
push 0xffffffff
mov ebx, dword [esp + 0x28]
mov ebp, dword [esp + 0x28]
add ebx, dword [ebp + 0x18]
push ebx
call fcn.00586d70
mov ebp, dword [esp + 0x44]
lea eax, [ebp + 0xd]
push eax
call fcn.005872c0
mov dword [section..data], 0xa00291
mov dword [section..data], 0xa00293
mov ebp, dword [esp + 0x18]
movzx eax, word [ebp + 0x1c]
push eax
mov ebp, dword [esp + 0x44]
pop eax
mov word [ebp + 0x11], ax
mov dword [section..data], 0xa0029d
mov dword [section..data], 0xa0029f
mov eax, dword [esp + 0x1c]
jmp 0x44235b
push dword [esp]
call fcn.00587410
push dword [esp + 0x2c]
call fcn.00587410
push dword [esp + 0x20]
call fcn.00587410
add esp, 0x30
pop ebx
pop ebp
ret 8