Modeling an M1A2 Smoke Grenade Launcher
I would first create a map with all your holes shapes (the primitives may need more vertices than what I've done though), then weave the edges between their vertices, then extrude outwards, extrude inwards, extrude along its length, add edge loops to sharp. Then to deform the whole thing you could use a Lattice or a Mesh Deform modifier.