Function at 0x7eb304
Capabilities:
Get storage device properties

Disassembly:
push ebp
mov ebp, esp
mov ecx, 0x79
push 0
push 0
dec ecx
jne 0x7eb30c
push ecx
mov dword [ebp - 4], eax
xor eax, eax
push ebp
push 0x7eb959
push dword fs:[eax]
mov dword fs:[eax], esp
lea edx, [ebp - 0x35c]
mov eax, dword [ebp - 4]
call fcn.0040a78c
mov ecx, dword [ebp - 0x35c]
lea eax, [ebp - 0x358]
mov edx, 0x7eb96c
call fcn.00405598
mov eax, dword [ebp - 0x358]
call fcn.004c938c
call fcn.0040d398
fstp qword [ebp - 0x18]
wait
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0xfe04]
mov edx, 0x7eb990
mov ecx, dword [eax]
call dword [ecx + 0x38]
push 0
push 0
push 3
push 0
push 3
push 0xc0000000
mov eax, dword [ebp - 4]
call fcn.005dbe4c
lea edx, [ebp - 0x364]
call fcn.0040a78c
mov ecx, dword [ebp - 0x364]
lea eax, [ebp - 0x360]
mov edx, 0x7eb9ac
call fcn.00405598
mov eax, dword [ebp - 0x360]
call fcn.0040574c
push eax
call sub.kernel32.dll_CreateFileA_1
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], 0xffffffff
jne 0x7eb405
call sub.kernel32.dll_GetLastError_1
xor edx, edx
push edx
push eax
lea eax, [ebp - 0x36c]
call fcn.0040a878
mov ecx, dword [ebp - 0x36c]
lea eax, [ebp - 0x368]
mov edx, 0x7eb9c8
call fcn.00405598
mov edx, dword [ebp - 0x368]
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0xfe04]
mov ecx, dword [eax]
call dword [ecx + 0x38]
jmp 0x7eb933
lea eax, [ebp - 0x14e]
xor ecx, ecx
mov edx, 0x121
call fcn.00403464
lea eax, [ebp - 0x2d]
xor ecx, ecx
mov edx, 0xd
call fcn.00403464
lea eax, [ebp - 0x352]
xor ecx, ecx
mov edx, 0x204
call fcn.00403464
push 0
lea eax, [ebp - 0x10]
push eax
push 0x121
lea eax, [ebp - 0x14e]
push eax
push 0xd
lea eax, [ebp - 0x2d]
push eax
push 0x2d1400
mov eax, dword [ebp - 0xc]
push eax
call sub.kernel32.dll_DeviceIoControl
test eax, eax
je 0x7eb62d
mov eax, 0x7eb9dc
call fcn.004c938c
mov eax, dword [ebp + 8]
add eax, 0xffff0200
xor ecx, ecx
mov edx, 0xfe00
call fcn.00403464
mov eax, dword [ebp + 8]
lea edx, [eax - 0xfe00]
lea eax, [ebp - 0x14e]
mov ecx, 0x121
call fcn.00402a80
mov eax, dword [ebp + 8]
push eax
mov dl, 1
xor eax, eax
call fcn.007eb058
pop ecx
push 0
lea eax, [ebp - 8]
push eax
lea eax, [ebp - 0x14e]
mov ecx, 8
mov edx, dword [ebp - 0x142]
call fcn.005ac594
push 0x7eb9ec
lea eax, [ebp - 0x370]
push eax
lea eax, [ebp - 0x14e]
mov ecx, 0x28
mov edx, dword [ebp - 0x13e]
call fcn.005ac594
mov edx, dword [ebp - 0x370]
lea eax, [ebp - 8]
call fcn.00405554
lea edx, [ebp - 0x374]
mov eax, dword [ebp - 8]
call fcn.0040a298
mov edx, dword [ebp - 0x374]
lea eax, [ebp - 8]
call fcn.00405324
lea eax, [ebp - 0x378]
mov ecx, dword [ebp - 8]
mov edx, 0x7eba00
call fcn.00405598
mov edx, dword [ebp - 0x378]
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0xfe04]
mov ecx, dword [eax]
call dword [ecx + 0x38]
lea edx, [ebp - 0x380]
mov eax, dword [ebp - 4]
call fcn.0040a78c
mov ecx, dword [ebp - 0x380]
lea eax, [ebp - 0x37c]
mov edx, 0x7eba14
call fcn.00405598
mov eax, dword [ebp - 0x37c]
push eax
lea eax, [ebp - 8]
push eax
lea eax, [ebp - 0x14e]
mov ecx, 0x14
mov edx, dword [ebp - 0x13a]
call fcn.005ac594
lea eax, [ebp - 0x384]
mov ecx, dword [ebp - 8]
mov edx, 0x7eba28
call fcn.00405598
mov edx, dword [ebp - 0x384]
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0xfe04]
mov ecx, dword [eax]
call dword [ecx + 0x38]
push dword [ebp - 8]
push 0x7eba3c
lea edx, [ebp - 0x390]
mov eax, dword [ebp - 4]
call fcn.0040a78c
push dword [ebp - 0x390]
lea eax, [ebp - 0x38c]
mov edx, 3
call fcn.0040560c
mov eax, dword [ebp - 0x38c]
push eax
lea eax, [ebp - 0x388]
push eax
lea eax, [ebp - 0x14e]
mov ecx, 0x14
mov edx, dword [ebp - 0x13a]
call fcn.005ac6e0
mov edx, dword [ebp - 0x388]
lea eax, [ebp - 8]
call fcn.00405324
lea eax, [ebp - 0x394]
mov ecx, dword [ebp - 8]
mov edx, 0x7eba4c
call fcn.00405598
mov edx, dword [ebp - 0x394]
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0xfe04]
mov ecx, dword [eax]
call dword [ecx + 0x38]
jmp 0x7eb69c
call sub.kernel32.dll_GetLastError_1
mov dword [ebp - 0x1c], eax
lea edx, [ebp - 0x39c]
mov eax, dword [ebp - 0x1c]
call fcn.0040a78c
mov ecx, dword [ebp - 0x39c]
lea eax, [ebp - 0x398]
mov edx, 0x7eba60
call fcn.00405598
mov edx, dword [ebp - 0x398]
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0xfe04]
mov ecx, dword [eax]
call dword [ecx + 0x38]
lea edx, [ebp - 0x3a4]
mov eax, dword [ebp - 0x1c]
call fcn.0040a78c
mov ecx, dword [ebp - 0x3a4]
lea eax, [ebp - 0x3a0]
mov edx, 0x7eba74
call fcn.00405598
mov eax, dword [ebp - 0x3a0]
call fcn.004c938c
push 0
lea eax, [ebp - 0x10]
push eax
push 0x204
lea eax, [ebp - 0x352]
push eax
push 0
push 0
push 0x2d1100
mov eax, dword [ebp - 0xc]
push eax
call sub.kernel32.dll_DeviceIoControl
test eax, eax
je 0x7eb78b
mov eax, 0x7eba88
call fcn.004c938c
mov eax, dword [ebp + 8]
add eax, 0xffff0200
xor ecx, ecx
mov edx, 0xfe00
call fcn.00403464
mov eax, dword [ebp + 8]
lea edx, [eax - 0xfe00]
lea eax, [ebp - 0x352]
mov ecx, 0x204
call fcn.00402a80
cmp dword [ebp - 4], 0
jl 0x7eb775
mov eax, dword [0x8929d8]
mov edx, dword [ebp - 4]
mov eax, dword [eax + edx*4]
call fcn.0040554c
cmp eax, 0x1f4
jl 0x7eb775
lea edx, [ebp - 0x3a8]
mov eax, dword [ebp - 4]
call fcn.0060d694
mov edx, dword [ebp - 0x3a8]
mov eax, 0x7eba9c
call fcn.00405890
test eax, eax
jle 0x7eb775
xor eax, eax
mov dword [ebp - 0x20], eax
imul eax, dword [ebp - 4], 0x4b
mov edx, dword [0x893528]
lea eax, [edx + eax*2]
mov edx, dword [ebp - 0x20]
mov al, byte [eax + edx]
mov edx, dword [ebp - 0x20]
add edx, 0x16a
mov ecx, dword [ebp + 8]
mov byte [ecx + edx - 0xfdfc], al
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], 0x96
jne 0x7eb743
mov eax, dword [ebp + 8]
push eax
xor edx, edx
mov eax, 4
call fcn.007eb058
pop ecx
jmp 0x7eb899
call sub.kernel32.dll_GetLastError_1
mov dword [ebp - 0x1c], eax
lea edx, [ebp - 0x3b0]
mov eax, dword [ebp - 0x1c]
call fcn.0040a78c
mov ecx, dword [ebp - 0x3b0]
lea eax, [ebp - 0x3ac]
mov edx, 0x7ebaa8
call fcn.00405598
mov edx, dword [ebp - 0x3ac]
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0xfe04]
mov ecx, dword [eax]
call dword [ecx + 0x38]
cmp dword [ebp - 4], 0
jl 0x7eb86a
mov eax, dword [0x8929d8]
mov edx, dword [ebp - 4]
mov eax, dword [eax + edx*4]
call fcn.0040554c
cmp eax, 0x1f4
jl 0x7eb86a
lea edx, [ebp - 0x3b4]
mov eax, dword [ebp - 4]
call fcn.0060d694
mov edx, dword [ebp - 0x3b4]
mov eax, 0x7eba9c
call fcn.00405890
test eax, eax
jle 0x7eb86a
mov eax, dword [ebp + 8]
add eax, 0xffff0200
xor ecx, ecx
mov edx, 0xfe00
call fcn.00403464
xor eax, eax
mov dword [ebp - 0x20], eax
imul eax, dword [ebp - 4], 0x4b
mov edx, dword [0x893528]
lea eax, [edx + eax*2]
mov edx, dword [ebp - 0x20]
mov al, byte [eax + edx]
mov edx, dword [ebp - 0x20]
add edx, 0x16a
mov ecx, dword [ebp + 8]
mov byte [ecx + edx - 0xfdfc], al
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], 0x96
jne 0x7eb827
mov eax, dword [ebp + 8]
push eax
xor edx, edx
mov eax, 4
call fcn.007eb058
pop ecx
lea edx, [ebp - 0x3bc]
mov eax, dword [ebp - 0x1c]
call fcn.0040a78c
mov ecx, dword [ebp - 0x3bc]
lea eax, [ebp - 0x3b8]
mov edx, 0x7eba74
call fcn.00405598
mov eax, dword [ebp - 0x3b8]
call fcn.004c938c
mov eax, dword [ebp - 0xc]
call fcn.005de3ec
mov dword [ebp - 0x1c], eax
lea edx, [ebp - 0x3c4]
mov eax, dword [ebp - 0x1c]
call fcn.0040a78c
mov ecx, dword [ebp - 0x3c4]
lea eax, [ebp - 0x3c0]
mov edx, 0x7ebabc
call fcn.00405598
mov edx, dword [ebp - 0x3c0]
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0xfe04]
mov ecx, dword [eax]
call dword [ecx + 0x38]
mov eax, dword [ebp - 0xc]
push eax
call sub.kernel32.dll_CloseHandle_1
call fcn.0040d398
add esp, 0xfffffff8
fstp qword [esp]
wait
push dword [ebp - 0x14]
push dword [ebp - 0x18]
call fcn.0049b738
push edx
push eax
lea eax, [ebp - 0x3cc]
call fcn.0040a878
mov ecx, dword [ebp - 0x3cc]
lea eax, [ebp - 0x3c8]
mov edx, 0x7ebad4
call fcn.00405598
mov edx, dword [ebp - 0x3c8]
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0xfe04]
mov ecx, dword [eax]
call dword [ecx + 0x38]
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x7eb960
lea eax, [ebp - 0x3cc]
mov edx, 0x1e
call fcn.004052b0
lea eax, [ebp - 8]
call fcn.0040528c
ret