Function at 0x485c58
Capabilities:
Get storage device properties

Disassembly:
push ebp
mov ebp, esp
push eax
mov eax, 2
add esp, 0xfffff004
push eax
dec eax
jne 0x485c61
mov eax, dword [ebp - 4]
add esp, 0xfffff3d4
push ebx
push esi
xor ebx, ebx
mov dword [ebp - 0x2c30], ebx
mov dword [ebp - 0x2c24], ebx
mov dword [ebp - 0x2c28], ebx
mov dword [ebp - 0x2c2c], ebx
mov dword [ebp - 0x2c1c], ebx
mov dword [ebp - 0x2c20], ebx
mov dword [ebp - 0x2c14], ebx
mov dword [ebp - 0x2c18], ebx
mov dword [ebp - 0x2c0c], ebx
mov dword [ebp - 0x2c10], ebx
mov esi, ecx
mov ebx, edx
mov dword [ebp - 0x2bfc], eax
mov eax, dword [ebp - 0x2bfc]
call fcn.00404d74
xor eax, eax
push ebp
push 0x486049
push dword fs:[eax]
mov dword fs:[eax], esp
mov dword [esi + 8], 0xffffffff
xor eax, eax
mov al, bl
mov dword [esi], eax
push 0
push 0
push 3
push 0
push 3
push 0
mov eax, dword [ebp - 0x2bfc]
call fcn.00404d84
push eax
call sub.kernel32.dll_CreateFileA_1
mov dword [ebp - 0x2c00], eax
call sub.kernel32.dll_GetLastError_1
mov dword [ebp - 0x2c08], eax
cmp dword [ebp - 0x2c08], 0
jne 0x486016
xor eax, eax
push ebp
push 0x48600f
push dword fs:[eax]
mov dword fs:[eax], esp
lea eax, [ebp - 0x2bf7]
mov edx, 0x27f7
call fcn.00407df4
lea eax, [ebp - 0x400]
mov edx, 0x400
call fcn.00407df4
mov byte [ebp - 0x400], 0
mov byte [ebp - 0x3ff], 0
push 0
lea eax, [ebp - 0x2c04]
push eax
push 0x27f7
lea eax, [ebp - 0x2bf7]
push eax
push 0x400
lea eax, [ebp - 0x400]
push eax
push 0x2d1400
mov eax, dword [ebp - 0x2c00]
push eax
call sub.kernel32.dll_DeviceIoControl
test eax, eax
je 0x485f13
cmp byte [esi + 0x20c], 0
jne 0x485de6
cmp dword [ebp - 0x2beb], 0
jbe 0x485de6
lea eax, [ebp - 0x2c10]
mov edx, dword [ebp - 0x2beb]
lea edx, [ebp + edx - 0x2bf7]
call fcn.00404abc
mov eax, dword [ebp - 0x2c10]
lea edx, [ebp - 0x2c0c]
call fcn.00409450
mov edx, dword [ebp - 0x2c0c]
lea eax, [esi + 0x20c]
mov ecx, 0xff
call fcn.00404b60
cmp byte [esi + 0x10c], 0
jne 0x485e37
cmp dword [ebp - 0x2be7], 0
jbe 0x485e37
lea eax, [ebp - 0x2c18]
mov edx, dword [ebp - 0x2be7]
lea edx, [ebp + edx - 0x2bf7]
call fcn.00404abc
mov eax, dword [ebp - 0x2c18]
lea edx, [ebp - 0x2c14]
call fcn.00409450
mov edx, dword [ebp - 0x2c14]
lea eax, [esi + 0x10c]
mov ecx, 0xff
call fcn.00404b60
cmp byte [esi + 0x30c], 0
jne 0x485e88
cmp dword [ebp - 0x2be3], 0
jbe 0x485e88
lea eax, [ebp - 0x2c20]
mov edx, dword [ebp - 0x2be3]
lea edx, [ebp + edx - 0x2bf7]
call fcn.00404abc
mov eax, dword [ebp - 0x2c20]
lea edx, [ebp - 0x2c1c]
call fcn.00409450
mov edx, dword [ebp - 0x2c1c]
lea eax, [esi + 0x30c]
mov ecx, 0xff
call fcn.00404b60
cmp byte [esi + 0xc], 0
jne 0x485ee4
cmp dword [ebp - 0x2bdf], 0
jbe 0x485ee4
lea eax, [ebp - 0x2c2c]
mov edx, dword [ebp - 0x2bdf]
lea edx, [ebp + edx - 0x2bf7]
call fcn.00404abc
mov eax, dword [ebp - 0x2c2c]
lea edx, [ebp - 0x2c28]
call fcn.00484350
mov eax, dword [ebp - 0x2c28]
lea edx, [ebp - 0x2c24]
call fcn.00409450
mov edx, dword [ebp - 0x2c24]
lea eax, [esi + 0xc]
mov ecx, 0xff
call fcn.00404b60
mov eax, dword [ebp - 0x2bdb]
mov dword [esi + 0x51c], eax
cmp dword [esi + 0x514], 0
jne 0x485f07
xor eax, eax
mov al, byte [ebp - 0x2bef]
mov dword [esi + 0x514], eax
mov al, byte [ebp - 0x2bed]
mov byte [esi + 0x520], al
call sub.kernel32.dll_GetLastError_1
mov dword [ebp - 0x2c08], eax
mov edx, esi
mov eax, dword [ebp - 0x2c00]
call fcn.0048576c
lea edx, [esi + 0x560]
mov eax, dword [ebp - 0x2c00]
call fcn.004860fc
mov eax, dword [esi + 0x574]
xor edx, edx
push edx
push eax
mov eax, dword [esi + 0x570]
xor edx, edx
push edx
push eax
mov eax, dword [esi + 0x56c]
xor edx, edx
push edx
push eax
mov eax, dword [esi + 0x560]
mov edx, dword [esi + 0x564]
call fcn.004059d8
call fcn.004059d8
call fcn.004059d8
mov dword [esi + 0x528], eax
mov dword [esi + 0x52c], edx
mov eax, dword [esi + 0x560]
mov dword [esi + 0x530], eax
mov eax, dword [esi + 0x56c]
mov dword [esi + 0x534], eax
mov eax, dword [esi + 0x574]
mov dword [esi + 0x538], eax
mov eax, dword [esi + 0x570]
mov dword [esi + 0x540], eax
mov edx, esi
mov eax, dword [ebp - 0x2c00]
call fcn.00485bc0
mov edx, esi
mov eax, dword [ebp - 0x2c00]
call fcn.00485a50
cmp byte [esi + 0xc], 0
jne 0x485ff5
lea edx, [ebp - 0x2c30]
mov eax, dword [ebp - 0x2c00]
call fcn.00485818
mov edx, dword [ebp - 0x2c30]
lea eax, [esi + 0xc]
mov ecx, 0xff
call fcn.00404b60
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x486016
mov eax, dword [ebp - 0x2c00]
push eax
call sub.kernel32.dll_CloseHandle_1
ret
cmp dword [ebp - 0x2c08], 0
sete bl
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x486050
lea eax, [ebp - 0x2c30]
mov edx, 0xa
call fcn.004048e8
lea eax, [ebp - 0x2bfc]
call fcn.004048c4
ret