Argument nine has to ride the stack
The register budget for integer arguments runs out at eight, r3–r10. Hand a function a ninth and there's no register left, so the caller drops it on the stack and the callee digs it back out. To find it, use the EABI frame layout. The first two words of the caller's frame are spoken for: 0(r1) for the back-chain and 4(r1) for saved LR. The outgoing parameter area starts at 8(r1). Since func_80367020 is a leaf, it builds no frame of its own, so on entry r1 still points at the caller's frame. That leaves the ninth argument an easy grab at 8(r1):
lwz r3, 8(r1) # load the 9th argument from the caller's frame
blr
It's still a leaf. No call means no frame, yet it reaches into r1 anyway to grab the one argument that never landed in a register. When you spot a lone lwz reading a small positive r1 offset at the top of a function, that's the giveaway that an argument spilled onto the stack. The first eight (a–h) showed up in r3–r10; since nobody uses them, they emit nothing.
Your task
Write func_80367020 to reproduce the assembly above — a single lwz from 8(r1) followed by blr.