Make the Tangzhong: Whisk the 190g of whole milk and 38g of all-purpose flour in a saucepan over medium heat until the flour is fully incorporated and the mixture thickens, about 150°F (66°C).
Transfer the Tangzhong to a bowl, cover with plastic wrap, and let cool.
Make the dough: In a stand mixer bowl, combine the 507g of all-purpose flour, ¾ tsp of instant dry yeast, 42g of sugar, and 15g of kosher salt. Mix to combine.
Add the cooled Tangzhong and 220g of whole milk to the dry ingredients. Mix on low speed with the dough hook until the dough comes together, about 2-3 minutes.
Let the dough rest for 20 minutes, then resume mixing on medium speed, adding the 42g of butter one piece at a time, waiting for each piece to be fully incorporated before adding the next.
Knead the dough by hand on a lightly floured surface until smooth and elastic, about 5-6 minutes.
Place the dough in a lightly oiled bowl, cover, and let rise until doubled in size, about 1 hour.
Punch down the dough and divide it into 15 equal pieces, about 65-70g each.
Shape each piece into a smooth ball and place in a greased 9x13 inch baking pan.
Cover the pan and let the rolls proof for 1 hour, or until doubled in size.
Preheat the oven to 350°F (177°C).
Brush the rolls with egg wash and bake for 25-30 minutes, rotating the pan halfway, until golden brown.
Remove the rolls from the oven and let cool for 10 minutes before serving.
