Function at 0x502cc0
Capabilities:
Get storage device properties

Disassembly:
push ebp
mov ebp, esp
mov ecx, 0x4d
push 0
push 0
dec ecx
jne 0x502cc8
push ecx
xor eax, eax
push ebp
push 0x5030b3
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, 0x5030c8
call fcn.0049839c
mov eax, dword [ebp + 8]
imul eax, dword [eax - 0x2ac], 0x97
add eax, 0x646294
mov edx, 0x5030dc
mov cl, 0x96
call fcn.0040328c
cmp byte [0x614154], 0
je 0x503078
lea eax, [ebp - 4]
call fcn.00405108
lea eax, [ebp - 0x13a]
xor ecx, ecx
mov edx, 0x121
call fcn.0040345c
lea eax, [ebp - 0x19]
xor ecx, ecx
mov edx, 0xd
call fcn.0040345c
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 0x50306e
mov eax, dword [ebp - 0x11e]
xor edx, edx
push edx
push eax
lea eax, [ebp - 0x144]
call fcn.0040a3c4
mov ecx, dword [ebp - 0x144]
lea eax, [ebp - 0x140]
mov edx, 0x5030ec
call fcn.00405414
mov eax, dword [ebp - 0x140]
call fcn.0049839c
lea eax, [ebp - 0x248]
mov edx, dword [ebp + 8]
imul edx, dword [edx - 0x2ac], 0x97
add edx, 0x646294
call fcn.0040536c
lea eax, [ebp - 0x248]
push eax
mov eax, dword [ebp - 0x11e]
xor edx, edx
push edx
push eax
lea eax, [ebp - 0x24c]
call fcn.0040a3c4
mov edx, dword [ebp - 0x24c]
pop eax
call fcn.004053d0
mov edx, dword [ebp - 0x248]
lea eax, [ebp - 0x244]
mov ecx, 0xff
call fcn.004053a4
lea edx, [ebp - 0x244]
mov eax, dword [ebp + 8]
imul eax, dword [eax - 0x2ac], 0x97
add eax, 0x646294
mov cl, 0x96
call fcn.004032c8
cmp dword [ebp - 0x11e], 7
jne 0x502e34
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.0040a2d8
mov ecx, dword [ebp - 0x254]
lea eax, [ebp - 0x250]
mov edx, 0x503108
call fcn.00405414
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.00500a2c
lea eax, [ebp - 0x244]
mov edx, dword [ebp - 4]
mov ecx, 0xff
call fcn.004053a4
lea edx, [ebp - 0x244]
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x29c]
add eax, 0x1a
mov cl, 0x14
call fcn.004032c8
push dword [ebp - 4]
push 0x50311c
lea edx, [ebp - 0x25c]
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x2ac]
call fcn.0040a2d8
push dword [ebp - 0x25c]
lea eax, [ebp - 0x258]
mov edx, 3
call fcn.00405488
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.00500b78
lea eax, [ebp - 0x244]
mov edx, dword [ebp - 8]
mov ecx, 0xff
call fcn.004053a4
lea edx, [ebp - 0x244]
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x29c]
add eax, 0x2f
mov cl, 0x14
call fcn.004032c8
push 0
lea eax, [ebp - 4]
push eax
lea eax, [ebp - 0x13a]
mov ecx, 8
mov edx, dword [ebp - 0x12e]
call fcn.00500a2c
push 0x50312c
lea eax, [ebp - 0x260]
push eax
lea eax, [ebp - 0x13a]
mov ecx, 0x28
mov edx, dword [ebp - 0x12a]
call fcn.00500a2c
mov edx, dword [ebp - 0x260]
lea eax, [ebp - 4]
call fcn.004053d0
lea edx, [ebp - 0x264]
mov eax, dword [ebp - 4]
call fcn.00409de4
mov edx, dword [ebp - 0x264]
lea eax, [ebp - 4]
call fcn.004051a0
lea eax, [ebp - 0x244]
mov edx, dword [ebp - 4]
mov ecx, 0xff
call fcn.004053a4
lea edx, [ebp - 0x244]
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x29c]
mov cl, 0x19
call fcn.004032c8
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.0040a2d8
mov ecx, dword [ebp - 0x26c]
lea eax, [ebp - 0x268]
mov edx, 0x503140
call fcn.00405414
mov edx, dword [ebp - 0x268]
lea eax, [ebp - 0x244]
mov ecx, 0xff
call fcn.004053a4
lea edx, [ebp - 0x244]
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x29c]
add eax, 0x44
mov cl, 0x32
call fcn.004032c8
cmp byte [ebp - 0x12f], 0
je 0x50306e
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x29c]
add eax, 0x44
mov edx, 0x503144
mov cl, 0x32
call fcn.0040328c
mov eax, 0x503158
call fcn.0049839c
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x5030ba
lea eax, [ebp - 0x26c]
mov edx, 0xa
call fcn.0040512c
lea eax, [ebp - 0x144]
mov edx, 2
call fcn.0040512c
lea eax, [ebp - 8]
mov edx, 2
call fcn.0040512c
ret