Function at 0x445df5
Capabilities:
Get storage device properties

Disassembly:
push ebp
push ebx
mov edx, 0xc
sub esp, 4
mov dword [esp], 0
dec edx
jne 0x445dfc
call fcn.0057b2e0
mov dword [section..data], 0xa0025e
mov dword [section..data], 0xa00266
mov dword [esp + 0x1c], 1
mov dword [section..data], 0xa0026c
mov dword [section..data], 0xa0026e
lea ebp, [esp + 4]
mov dword [ebp], 0
mov dword [section..data], 0xa0026f
mov dword [ebp + 4], 0
mov dword [section..data], 0xa00271
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], 0xa00272
cmp dword [esp + 0x1c], 0
je 0x445ea9
xor eax, eax
jmp 0x445eae
mov eax, 1
and eax, eax
je 0x445f47
mov dword [section..data], 0xa00273
push edx
call fcn.0057b460
pop edx
push eax
push 0
push edx
call fcn.0057b460
pop edx
push eax
mov edx, str.IOCTL_STORAGE_QUERY_PROPERTY_1_failed_with_error_code
push edx
call fcn.0057b230
call sub.KERNEL32.dll_GetLastError
mov ebx, eax
push edx
call fcn.0057b460
pop edx
push eax
push edx
call fcn.0057b460
pop edx
push eax
mov eax, ebx
cdq
push edx
push eax
call fcn.0056a320
pop eax
call fcn.0057b490
mov eax, str.DRVMS_EnumerateStorage
push eax
mov eax, str.drive_ms
push eax
call fcn.0050d222
add dword [esp + 8], edx
call fcn.004ae98d
call fcn.0050d240
mov dword [section..data], 0xa00274
mov dword [esp + 0x1c], 0
mov dword [section..data], 0xa00275
jmp 0x44635d
mov dword [section..data], 0xa00276
mov dword [section..data], 0xa00278
lea ebp, [esp + 0x10]
push dword [ebp + 4]
call fcn.0057abd0
mov dword [esp + 0x18], eax
mov dword [section..data], 0xa00279
cmp dword [esp + 0x18], 0
je 0x445f80
xor eax, eax
jmp 0x445f85
mov eax, 1
and eax, eax
je 0x446027
mov dword [section..data], 0xa0027a
push edx
call fcn.0057b460
pop edx
push eax
push 0
push edx
call fcn.0057b460
pop edx
push eax
mov edx, str.AllocateMemory_failed___
push edx
call fcn.0057b230
lea ebp, [esp + 0x1c]
push edx
call fcn.0057b460
pop edx
push eax
push edx
call fcn.0057b460
pop edx
push eax
mov eax, dword [ebp + 4]
cdq
push edx
push eax
call fcn.0056a320
pop eax
mov edx, 0x67df2c
push edx
call fcn.0057b230
call fcn.0057b490
mov eax, str.DRVMS_EnumerateStorage
push eax
mov eax, str.drive_ms
push eax
call fcn.0050d222
add dword [esp + 8], edx
call fcn.004ae98d
call fcn.0050d240
mov dword [section..data], 0xa0027b
mov dword [esp + 0x1c], 0xfffffa21
mov dword [section..data], 0xa0027c
jmp 0x44635d
mov dword [section..data], 0xa0027d
mov dword [section..data], 0xa0027f
push 0
lea eax, [esp + 0x2c]
push eax
push dword [esp + 0x20]
call fcn.0057add0
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], 0xa00280
cmp dword [esp + 0x1c], 0
je 0x446084
xor eax, eax
jmp 0x446089
mov eax, 1
and eax, eax
je 0x446122
mov dword [section..data], 0xa00281
push edx
call fcn.0057b460
pop edx
push eax
push 0
push edx
call fcn.0057b460
pop edx
push eax
mov edx, str.IOCTL_STORAGE_QUERY_PROPERTY_2_failed_with_error_code
push edx
call fcn.0057b230
call sub.KERNEL32.dll_GetLastError
mov ebx, eax
push edx
call fcn.0057b460
pop edx
push eax
push edx
call fcn.0057b460
pop edx
push eax
mov eax, ebx
cdq
push edx
push eax
call fcn.0056a320
pop eax
call fcn.0057b490
mov eax, str.DRVMS_EnumerateStorage
push eax
mov eax, str.drive_ms
push eax
call fcn.0050d222
add dword [esp + 8], edx
call fcn.004ae98d
call fcn.0050d240
mov dword [section..data], 0xa00282
mov dword [esp + 0x1c], 0
mov dword [section..data], 0xa00283
jmp 0x44635d
mov dword [section..data], 0xa00284
mov dword [section..data], 0xa00286
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], 0xa00287
mov ebp, dword [esp + 0x40]
mov edx, 0x67a5ae
lea ecx, [ebp + 5]
call fcn.0050d0f8
mov dword [section..data], 0xa00288
mov ebp, dword [esp + 0x40]
mov edx, 0x67a5ae
lea ecx, [ebp + 9]
call fcn.0050d0f8
mov dword [section..data], 0xa00289
mov ebp, dword [esp + 0x40]
mov edx, 0x67a5ae
lea ecx, [ebp + 1]
call fcn.0050d0f8
mov dword [section..data], 0xa0028a
mov ebp, dword [esp + 0x40]
mov edx, 0x67a5ae
lea ecx, [ebp + 0xd]
call fcn.0050d0f8
mov dword [section..data], 0xa0028c
mov ebp, dword [esp + 0x18]
mov ebx, dword [ebp + 0x10]
and ebx, ebx
jle 0x44620a
mov dword [section..data], 0xa0028c
push edx
call fcn.0057b460
pop edx
push eax
push edx
call fcn.0057b460
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.0057aee0
mov ebp, dword [esp + 0x44]
lea eax, [ebp + 5]
push eax
call fcn.0057b350
mov dword [section..data], 0xa0028c
mov dword [section..data], 0xa0028d
mov ebp, dword [esp + 0x18]
mov ebx, dword [ebp + 0x14]
and ebx, ebx
jle 0x44626b
mov dword [section..data], 0xa0028d
push edx
call fcn.0057b460
pop edx
push eax
push edx
call fcn.0057b460
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.0057aee0
mov ebp, dword [esp + 0x44]
lea eax, [ebp + 9]
push eax
call fcn.0057b350
mov dword [section..data], 0xa0028d
mov dword [section..data], 0xa0028e
mov ebp, dword [esp + 0x18]
mov ebx, dword [ebp + 0xc]
and ebx, ebx
jle 0x4462cc
mov dword [section..data], 0xa0028e
push edx
call fcn.0057b460
pop edx
push eax
push edx
call fcn.0057b460
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.0057aee0
mov ebp, dword [esp + 0x44]
lea eax, [ebp + 1]
push eax
call fcn.0057b350
mov dword [section..data], 0xa0028e
mov dword [section..data], 0xa0028f
mov ebp, dword [esp + 0x18]
mov ebx, dword [ebp + 0x18]
and ebx, ebx
jle 0x44632d
mov dword [section..data], 0xa0028f
push edx
call fcn.0057b460
pop edx
push eax
push edx
call fcn.0057b460
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.0057aee0
mov ebp, dword [esp + 0x44]
lea eax, [ebp + 0xd]
push eax
call fcn.0057b350
mov dword [section..data], 0xa0028f
mov dword [section..data], 0xa00291
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], 0xa0029b
mov dword [section..data], 0xa0029d
mov eax, dword [esp + 0x1c]
jmp 0x446379
push dword [esp]
call fcn.0057b3c0
push dword [esp + 0x2c]
call fcn.0057b3c0
push dword [esp + 0x20]
call fcn.0057b3c0
add esp, 0x30
pop ebx
pop ebp
ret 8