>> movs r10,#0xE000000 Loads the value $E000000 into R10. >> adc r10,r10,#0xE000 Adds $E000 to R10. At this point R10=$E00E000 >> sbcs r10,r10,#0xB000 Subtracts $B000 from R10 and sets the carry flag. At this point R10=$E003000, CF=1 >> adc r10,r10,#0x2D Adds $2D to R10. Carry flag is set, so this instruction will add it too. At this point R10=$E00302E, CF=0 >> sbcs r10,r10,#0x29 Substracts $29 from R10. It sets the carry flag too, but no one cares. At this point R10=$E003004, the save file offset where the current map number is. >> movs r12,#0xE0 Loads the value $E0 into R12. >> sbcs r12,r12,#0xD0 Substracts $D0 from R12 and sets the carry flag. At this point R12=$10, CF=1 >> adcs r12,r12,#0xB00 Adds $0B00 to R12. Carry flag is set, so this instruction will add it too. At this point R12=$0B11, CF=0 >> sbc r12,r12,#0x0 Substracts 0 from R12. Carry flag is unset, so even though we're not subtracting anything, R12 will be decreased by 1. At this point R12=$0B10, CF=0 $0B10 is the ID of the Hall of Fame room. >> str r12,[r10]! Stores the 32-bit value in r12 into r10. It effectively writes bytes from R12 in backwards order to R10. So $E003004=$10, $E003005=$0B, $E003006=$00, $E003007=$00 >> adc r10,r10,#0xDF0 Adds $0DF0 to R10. At this point, R10=$E003DF4 >> adc r10,r10,#0xDF0 Adds $0DF0 to R10. At this point, R10=$E004BE4, CF=0 >> sbcs r10,r10,#0xBF0 Subtracts $0BF0 from R10. Carry flag is unset, so the instruction will subtract it too. At this point, R10=$E003FF3, CF=1 >> adc r10,r10,#0x0 Adds 0 to R10. Carry flag is set, so even though we're not adding anything, R10 will be increased by 1. At this point R10=$E003FF4 >> movs r12,#0xE000000 Loads the value $0E000000 into R12. >> sbcs r12,r12,#0xD000000 Subtracts $D000000 from R12. At this point R12=$01000000 >> adcs r12,r12,#0x**00 Adds first byte of the checksum to R12. At this point R12=$0100XX00 >> adcs r12,r12,#0x** Adds second byte of the checksum to R12. At this point R12=$0100XXYY >> str r12,[r10]! Stores the 32-bit value in r12 into r10. It effectively writes bytes from R12 in backwards order to R10. So $E003FF4=$YY, $E003FF5=$XX, $E003FF6=$00, $E003FF7=$01 It updates the checksum in the save so it matches. $01 is the section ID (team/items)