Function at 0x5aa120
Capabilities:
Get storage device properties

Disassembly:
push ebp
mov ebp, esp
push ecx
mov ecx, 0x30
push 0
push 0
dec ecx
jne 0x5aa129
xchg dword [ebp - 4], ecx
push ebx
mov dword [ebp - 0xc], ecx
mov dword [ebp - 8], edx
mov dword [ebp - 4], eax
xor eax, eax
push ebp
push 0x5aa4ed
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, 0x5aa508
call fcn.004c6770
mov byte [ebp - 0xd], 0
cmp byte [0x7cdf4c], 0
je 0x5aa4c2
lea eax, [ebp - 0x14]
call fcn.00405278
lea eax, [ebp - 0x14e]
xor ecx, ecx
mov edx, 0x121
call fcn.00403450
lea eax, [ebp - 0x2d]
xor ecx, ecx
mov edx, 0xd
call fcn.00403450
push 0
lea eax, [ebp - 0x20]
push eax
push 0x121
lea eax, [ebp - 0x14e]
push eax
push 0xd
lea eax, [ebp - 0x2d]
push eax
push 0x2d1400
mov eax, dword [ebp - 4]
push eax
call sub.kernel32.dll_DeviceIoControl
test eax, eax
je 0x5aa46d
mov eax, dword [ebp - 0x132]
xor edx, edx
push edx
push eax
lea eax, [ebp - 0x158]
call fcn.0040a928
mov ecx, dword [ebp - 0x158]
lea eax, [ebp - 0x154]
mov edx, 0x5aa520
call fcn.00405594
mov eax, dword [ebp - 0x154]
call fcn.004c6770
cmp dword [ebp - 0x132], 7
je 0x5aa4c2
xor eax, eax
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x1c]
add eax, 0xffffffec
sub eax, 0x14
jb 0x5aa218
add eax, 0xfffffffa
sub eax, 0x30
jae 0x5aa224
mov eax, dword [ebp - 0xc]
mov edx, dword [ebp - 0x1c]
mov byte [eax + edx], 0x20
jmp 0x5aa22e
mov eax, dword [ebp - 0xc]
mov edx, dword [ebp - 0x1c]
mov byte [eax + edx], 0
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 0x200
jne 0x5aa205
mov eax, dword [ebp - 0xc]
mov byte [eax + 3], 1
mov eax, dword [ebp - 0xc]
mov byte [eax + 0xa4], 1
lea edx, [ebp - 0x160]
mov eax, dword [ebp - 8]
call fcn.0040a83c
mov ecx, dword [ebp - 0x160]
lea eax, [ebp - 0x15c]
mov edx, 0x5aa53c
call fcn.00405594
mov eax, dword [ebp - 0x15c]
push eax
lea eax, [ebp - 0x14]
push eax
lea eax, [ebp - 0x14e]
mov ecx, 0x14
mov edx, dword [ebp - 0x13a]
call fcn.00581a30
mov dword [ebp - 0x1c], 0x2e
mov eax, dword [ebp - 0x14]
mov edx, dword [ebp - 0x1c]
mov al, byte [eax + edx - 0x2e]
mov edx, dword [ebp - 0xc]
mov ecx, dword [ebp - 0x1c]
mov byte [edx + ecx], al
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 0x36
jne 0x5aa297
lea edx, [ebp - 0x164]
mov eax, dword [ebp - 0x14]
call fcn.0040a348
mov edx, dword [ebp - 0x164]
lea eax, [ebp - 0x14]
call fcn.00405310
mov eax, dword [ebp - 0x14]
call fcn.00405548
cmp eax, 0xa
jle 0x5aa2f2
lea eax, [ebp - 0x14]
push eax
mov ecx, 0xa
mov edx, 1
mov eax, dword [ebp - 0x14]
call fcn.004057a8
lea eax, [ebp - 0x14]
mov edx, 0x5aa550
call fcn.00405550
push dword [ebp - 0x14]
push 0x5aa55c
lea edx, [ebp - 0x16c]
mov eax, dword [ebp - 8]
call fcn.0040a83c
push dword [ebp - 0x16c]
lea eax, [ebp - 0x168]
mov edx, 3
call fcn.00405608
mov eax, dword [ebp - 0x168]
push eax
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x14e]
mov ecx, 0x14
mov edx, dword [ebp - 0x13a]
call fcn.00581b7c
mov dword [ebp - 0x1c], 0x14
mov eax, dword [ebp - 0x18]
mov edx, dword [ebp - 0x1c]
mov al, byte [eax + edx - 0x14]
mov edx, dword [ebp - 0xc]
mov ecx, dword [ebp - 0x1c]
mov byte [edx + ecx], al
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 0x28
jne 0x5aa353
push 0
lea eax, [ebp - 0x14]
push eax
lea eax, [ebp - 0x14e]
mov ecx, 8
mov edx, dword [ebp - 0x142]
call fcn.00581a30
push 0x5aa56c
lea eax, [ebp - 0x170]
push eax
lea eax, [ebp - 0x14e]
mov ecx, 0x28
mov edx, dword [ebp - 0x13e]
call fcn.00581a30
mov edx, dword [ebp - 0x170]
lea eax, [ebp - 0x14]
call fcn.00405550
lea edx, [ebp - 0x174]
mov eax, dword [ebp - 0x14]
call fcn.0040a348
mov edx, dword [ebp - 0x174]
lea eax, [ebp - 0x14]
call fcn.00405310
mov eax, dword [ebp - 0x14]
call fcn.00405548
cmp eax, 0x27
jg 0x5aa3fd
mov dword [ebp - 0x1c], eax
lea eax, [ebp - 0x14]
mov edx, 0x5aa580
call fcn.00405550
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 0x28
jne 0x5aa3e7
mov dword [ebp - 0x1c], 0x36
mov eax, dword [ebp - 0x14]
mov edx, dword [ebp - 0x1c]
mov al, byte [eax + edx - 0x36]
mov edx, dword [ebp - 0xc]
mov ecx, dword [ebp - 0x1c]
mov byte [edx + ecx], al
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 0x5e
jne 0x5aa404
lea eax, [ebp - 0x14]
call fcn.00405278
xor eax, eax
mov dword [ebp - 0x1c], eax
lea eax, [ebp - 0x178]
mov edx, dword [ebp - 0x1c]
mov dl, byte [ebp + edx - 0x12d]
call fcn.00405460
mov edx, dword [ebp - 0x178]
lea eax, [ebp - 0x14]
call fcn.00405550
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 0x100
jne 0x5aa42d
mov eax, dword [ebp + 8]
mov edx, dword [ebp - 0x14]
call fcn.004052cc
mov byte [ebp - 0xd], 1
jmp 0x5aa48f
call sub.kernel32.dll_GetLastError_1
xor edx, edx
push edx
push eax
lea eax, [ebp - 0x17c]
call fcn.0040a928
mov edx, dword [ebp - 0x17c]
mov eax, dword [ebp + 8]
call fcn.004052cc
lea ecx, [ebp - 0x184]
mov eax, dword [ebp + 8]
mov eax, dword [eax]
mov dl, 1
call fcn.004a0e44
mov ecx, dword [ebp - 0x184]
lea eax, [ebp - 0x180]
mov edx, 0x5aa58c
call fcn.00405594
mov eax, dword [ebp - 0x180]
call fcn.004c6770
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x5aa4f4
lea eax, [ebp - 0x184]
mov edx, 0xd
call fcn.0040529c
lea eax, [ebp - 0x18]
mov edx, 2
call fcn.0040529c
ret