adcc sometimes generates code where hl is overwritten (storing a temporarily used address) even though it already holds a value. This was first noticed as #2646174 and did appear to be restricted to the scenario described there. However it now seems this is a more general problem. As generic solution would probably result in more efficient code generation for memcpy(), too, compared to the current workaround introduced in rev. #5456.
In the attached file the comparison if (players[i].xx > max_xx) in line 58 is affected by the bug, in revisions #5456 and current svn.