ABSTRACT Ultra-hot Jupiters are tidally locked gas giants with dayside temperatures high enough to dissociate hydrogen and other molecules. Their atmospheres are vastly non-uniform in terms of chemistry, temperature, and dynamics, and this makes their high-resolution transmission spectra and cross-correlation signal difficult to interpret. In this work, we use the SPARC/MITgcm global circulation model to simulate the atmosphere of the ultra-hot Jupiter WASP-76b under different conditions, such as atmospheric drag and the absence of TiO and VO. We then employ a 3D Monte Carlo radiative transfer code, hires-mcrt, to self-consistently model high-resolution transmission spectra with iron (Fe i) lines at different phases during the transit. To untangle the structure of the resulting cross-correlation map, we decompose the limb of the planet into four sectors, and we analyse each of their contributions separately. Our experiments demonstrate that the cross-correlation signal of an ultra-hot Jupiter is primarily driven by its temperature structure, rotation, and dynamics, while being less sensitive to the precise distribution of iron across the atmosphere. We also show that the previously published iron signal of WASP-76b can be reproduced by a model featuring iron condensation on the leading limb. Alternatively, the signal may be explained by a substantial temperature asymmetry between the trailing and leading limb, where iron condensation is not strictly required to match the data. Finally, we compute the Kp–Vsys maps of the simulated WASP-76b atmospheres, and we show that rotation and dynamics can lead to multiple peaks that are displaced from zero in the planetary rest frame.