Function at 0x583da8
Capabilities:
Get storage device properties

Disassembly:
push ebp
mov ebp, esp
mov ecx, 0x4d
push 0
push 0
dec ecx
jne 0x583db0
push ecx
xor eax, eax
push ebp
push 0x58419b
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, 0x5841b0
call fcn.004c6770
mov eax, dword [ebp + 8]
imul eax, dword [eax - 0x2ac], 0x97
add eax, 0xc687b4
mov edx, 0x5841c4
mov cl, 0x96
call fcn.00403280
cmp byte [0x7cdf4c], 0
je 0x584160
lea eax, [ebp - 4]
call fcn.00405278
lea eax, [ebp - 0x13a]
xor ecx, ecx
mov edx, 0x121
call fcn.00403450
lea eax, [ebp - 0x19]
xor ecx, ecx
mov edx, 0xd
call fcn.00403450
push 0
lea eax, [ebp - 0xc]
push eax
push 0x121
lea eax, [ebp - 0x13a]
push eax
push 0xd
lea eax, [ebp - 0x19]
push eax
push 0x2d1400
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x2a8]
push eax
call sub.kernel32.dll_DeviceIoControl
test eax, eax
je 0x584156
mov eax, dword [ebp - 0x11e]
xor edx, edx
push edx
push eax
lea eax, [ebp - 0x144]
call fcn.0040a928
mov ecx, dword [ebp - 0x144]
lea eax, [ebp - 0x140]
mov edx, 0x5841d4
call fcn.00405594
mov eax, dword [ebp - 0x140]
call fcn.004c6770
lea eax, [ebp - 0x248]
mov edx, dword [ebp + 8]
imul edx, dword [edx - 0x2ac], 0x97
add edx, 0xc687b4
call fcn.004054ec
lea eax, [ebp - 0x248]
push eax
mov eax, dword [ebp - 0x11e]
xor edx, edx
push edx
push eax
lea eax, [ebp - 0x24c]
call fcn.0040a928
mov edx, dword [ebp - 0x24c]
pop eax
call fcn.00405550
mov edx, dword [ebp - 0x248]
lea eax, [ebp - 0x244]
mov ecx, 0xff
call fcn.00405524
lea edx, [ebp - 0x244]
mov eax, dword [ebp + 8]
imul eax, dword [eax - 0x2ac], 0x97
add eax, 0xc687b4
mov cl, 0x96
call fcn.004032bc
cmp dword [ebp - 0x11e], 7
jne 0x583f1c
mov eax, dword [ebp + 8]
mov byte [eax - 0x4b5], 1
lea edx, [ebp - 0x254]
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x2ac]
call fcn.0040a83c
mov ecx, dword [ebp - 0x254]
lea eax, [ebp - 0x250]
mov edx, 0x5841f0
call fcn.00405594
mov eax, dword [ebp - 0x250]
push eax
lea eax, [ebp - 4]
push eax
lea eax, [ebp - 0x13a]
mov ecx, 0x14
mov edx, dword [ebp - 0x126]
call fcn.00581a30
lea eax, [ebp - 0x244]
mov edx, dword [ebp - 4]
mov ecx, 0xff
call fcn.00405524
lea edx, [ebp - 0x244]
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x29c]
add eax, 0x1a
mov cl, 0x14
call fcn.004032bc
push dword [ebp - 4]
push 0x584204
lea edx, [ebp - 0x25c]
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x2ac]
call fcn.0040a83c
push dword [ebp - 0x25c]
lea eax, [ebp - 0x258]
mov edx, 3
call fcn.00405608
mov eax, dword [ebp - 0x258]
push eax
lea eax, [ebp - 8]
push eax
lea eax, [ebp - 0x13a]
mov ecx, 0x14
mov edx, dword [ebp - 0x126]
call fcn.00581b7c
lea eax, [ebp - 0x244]
mov edx, dword [ebp - 8]
mov ecx, 0xff
call fcn.00405524
lea edx, [ebp - 0x244]
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x29c]
add eax, 0x2f
mov cl, 0x14
call fcn.004032bc
push 0
lea eax, [ebp - 4]
push eax
lea eax, [ebp - 0x13a]
mov ecx, 8
mov edx, dword [ebp - 0x12e]
call fcn.00581a30
push 0x584214
lea eax, [ebp - 0x260]
push eax
lea eax, [ebp - 0x13a]
mov ecx, 0x28
mov edx, dword [ebp - 0x12a]
call fcn.00581a30
mov edx, dword [ebp - 0x260]
lea eax, [ebp - 4]
call fcn.00405550
lea edx, [ebp - 0x264]
mov eax, dword [ebp - 4]
call fcn.0040a348
mov edx, dword [ebp - 0x264]
lea eax, [ebp - 4]
call fcn.00405310
lea eax, [ebp - 0x244]
mov edx, dword [ebp - 4]
mov ecx, 0xff
call fcn.00405524
lea edx, [ebp - 0x244]
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x29c]
mov cl, 0x19
call fcn.004032bc
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x29c]
mov dl, byte [ebp - 0x132]
mov byte [eax + 0xdf], dl
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x29c]
mov dl, byte [ebp - 0x130]
mov byte [eax + 0xe1], dl
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x29c]
mov byte [eax + 0xe0], 1
lea edx, [ebp - 0x26c]
xor eax, eax
mov al, byte [ebp - 0x131]
call fcn.0040a83c
mov ecx, dword [ebp - 0x26c]
lea eax, [ebp - 0x268]
mov edx, 0x584228
call fcn.00405594
mov edx, dword [ebp - 0x268]
lea eax, [ebp - 0x244]
mov ecx, 0xff
call fcn.00405524
lea edx, [ebp - 0x244]
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x29c]
add eax, 0x44
mov cl, 0x32
call fcn.004032bc
cmp byte [ebp - 0x12f], 0
je 0x584156
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x29c]
add eax, 0x44
mov edx, 0x58422c
mov cl, 0x32
call fcn.00403280
mov eax, 0x584240
call fcn.004c6770
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x5841a2
lea eax, [ebp - 0x26c]
mov edx, 0xa
call fcn.0040529c
lea eax, [ebp - 0x144]
mov edx, 2
call fcn.0040529c
lea eax, [ebp - 8]
mov edx, 2
call fcn.0040529c
ret