It's draw_screen() in maps.cpp. There are separate loops for drawing eweapons with or without Behind, but lweapons are handled by a single call to Lwpns.draw().