Function at 0x43f54a
Capabilities:
Get storage device properties

Disassembly:
push ebp
push ebx
mov edx, 0xc
sub esp, 4
mov dword [esp], 0
dec edx
jne 0x43f551
call fcn.0055ab90
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 0x43f5fe
xor eax, eax
jmp 0x43f603
mov eax, 1
and eax, eax
je 0x43f69c
mov dword [section..data], 0xa00275
push edx
call fcn.0055a9f0
pop edx
push eax
push 0
push edx
call fcn.0055a9f0
pop edx
push eax
mov edx, str.IOCTL_STORAGE_QUERY_PROPERTY_1_failed_with_error_code
push edx
call fcn.0055aac0
call sub.KERNEL32.dll_GetLastError
mov ebx, eax
push edx
call fcn.0055a9f0
pop edx
push eax
push edx
call fcn.0055a9f0
pop edx
push eax
mov eax, ebx
cdq
push edx
push eax
call fcn.00548d10
pop eax
call fcn.0055ab20
mov eax, str.DRVMS_EnumerateStorage
push eax
mov eax, str.drive_ms
push eax
call fcn.004f4332
add dword [esp + 8], edx
call fcn.004967c8
call fcn.004f4350
mov dword [section..data], 0xa00276
mov dword [esp + 0x1c], 0
mov dword [section..data], 0xa00277
jmp 0x43fab2
mov dword [section..data], 0xa00278
mov dword [section..data], 0xa0027a
lea ebp, [esp + 0x10]
push dword [ebp + 4]
call fcn.0055a360
mov dword [esp + 0x18], eax
mov dword [section..data], 0xa0027b
cmp dword [esp + 0x18], 0
je 0x43f6d5
xor eax, eax
jmp 0x43f6da
mov eax, 1
and eax, eax
je 0x43f77c
mov dword [section..data], 0xa0027c
push edx
call fcn.0055a9f0
pop edx
push eax
push 0
push edx
call fcn.0055a9f0
pop edx
push eax
mov edx, str.AllocateMemory_failed___
push edx
call fcn.0055aac0
lea ebp, [esp + 0x1c]
push edx
call fcn.0055a9f0
pop edx
push eax
push edx
call fcn.0055a9f0
pop edx
push eax
mov eax, dword [ebp + 4]
cdq
push edx
push eax
call fcn.00548d10
pop eax
mov edx, 0x638cee
push edx
call fcn.0055aac0
call fcn.0055ab20
mov eax, str.DRVMS_EnumerateStorage
push eax
mov eax, str.drive_ms
push eax
call fcn.004f4332
add dword [esp + 8], edx
call fcn.004967c8
call fcn.004f4350
mov dword [section..data], 0xa0027d
mov dword [esp + 0x1c], 0xfffffa21
mov dword [section..data], 0xa0027e
jmp 0x43fab2
mov dword [section..data], 0xa0027f
mov dword [section..data], 0xa00281
push 0
lea eax, [esp + 0x2c]
push eax
push dword [esp + 0x20]
call fcn.0055a710
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 0x43f7d9
xor eax, eax
jmp 0x43f7de
mov eax, 1
and eax, eax
je 0x43f877
mov dword [section..data], 0xa00283
push edx
call fcn.0055a9f0
pop edx
push eax
push 0
push edx
call fcn.0055a9f0
pop edx
push eax
mov edx, str.IOCTL_STORAGE_QUERY_PROPERTY_2_failed_with_error_code
push edx
call fcn.0055aac0
call sub.KERNEL32.dll_GetLastError
mov ebx, eax
push edx
call fcn.0055a9f0
pop edx
push eax
push edx
call fcn.0055a9f0
pop edx
push eax
mov eax, ebx
cdq
push edx
push eax
call fcn.00548d10
pop eax
call fcn.0055ab20
mov eax, str.DRVMS_EnumerateStorage
push eax
mov eax, str.drive_ms
push eax
call fcn.004f4332
add dword [esp + 8], edx
call fcn.004967c8
call fcn.004f4350
mov dword [section..data], 0xa00284
mov dword [esp + 0x1c], 0
mov dword [section..data], 0xa00285
jmp 0x43fab2
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, 0x6355da
lea ecx, [ebp + 5]
call fcn.004f4008
mov dword [section..data], 0xa0028a
mov ebp, dword [esp + 0x40]
mov edx, 0x6355da
lea ecx, [ebp + 9]
call fcn.004f4008
mov dword [section..data], 0xa0028b
mov ebp, dword [esp + 0x40]
mov edx, 0x6355da
lea ecx, [ebp + 1]
call fcn.004f4008
mov dword [section..data], 0xa0028c
mov ebp, dword [esp + 0x40]
mov edx, 0x6355da
lea ecx, [ebp + 0xd]
call fcn.004f4008
mov dword [section..data], 0xa0028e
mov ebp, dword [esp + 0x18]
mov ebx, dword [ebp + 0x10]
and ebx, ebx
jle 0x43f95f
mov dword [section..data], 0xa0028e
push edx
call fcn.0055a9f0
pop edx
push eax
push edx
call fcn.0055a9f0
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.0055a4f0
mov ebp, dword [esp + 0x44]
lea eax, [ebp + 5]
push eax
call fcn.0055aa30
mov dword [section..data], 0xa0028e
mov dword [section..data], 0xa0028f
mov ebp, dword [esp + 0x18]
mov ebx, dword [ebp + 0x14]
and ebx, ebx
jle 0x43f9c0
mov dword [section..data], 0xa0028f
push edx
call fcn.0055a9f0
pop edx
push eax
push edx
call fcn.0055a9f0
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.0055a4f0
mov ebp, dword [esp + 0x44]
lea eax, [ebp + 9]
push eax
call fcn.0055aa30
mov dword [section..data], 0xa0028f
mov dword [section..data], 0xa00290
mov ebp, dword [esp + 0x18]
mov ebx, dword [ebp + 0xc]
and ebx, ebx
jle 0x43fa21
mov dword [section..data], 0xa00290
push edx
call fcn.0055a9f0
pop edx
push eax
push edx
call fcn.0055a9f0
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.0055a4f0
mov ebp, dword [esp + 0x44]
lea eax, [ebp + 1]
push eax
call fcn.0055aa30
mov dword [section..data], 0xa00290
mov dword [section..data], 0xa00291
mov ebp, dword [esp + 0x18]
mov ebx, dword [ebp + 0x18]
and ebx, ebx
jle 0x43fa82
mov dword [section..data], 0xa00291
push edx
call fcn.0055a9f0
pop edx
push eax
push edx
call fcn.0055a9f0
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.0055a4f0
mov ebp, dword [esp + 0x44]
lea eax, [ebp + 0xd]
push eax
call fcn.0055aa30
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 0x43face
push dword [esp]
call fcn.0055abf0
push dword [esp + 0x2c]
call fcn.0055abf0
push dword [esp + 0x20]
call fcn.0055abf0
add esp, 0x30
pop ebx
pop ebp
ret 8