The obj files made from cpp sources contain some intermediate representation, very far from machine code or assembly. The machine code is generated by linker after multiple complicated (and expensive, I often see linker consuming gigabytes of memory and substantial CPU time) steps of the optimization. There's no text assembly representation anywhere, unless specifically asked for that. There's usually extra inputs involved: precompiled headers, data for profile-guided optimization, linker inputs such as static and dynamic libraries and module definition files.