0208808C E92D4070 stmfd r13!,{r4-r6,r14}
02088090 E59F10B0 ldr r1,=#0x4000006 ; r1 = VCOUNT address
02088094 E1A05000 mov r5,r0 ; r5 = &message[5] (after nazo)
02088098 E1D160B0 ldrh r6,[r1] ; r6 = *VCOUNT
0208809C E59F40A8 ldr r4,=#0x2FFFC00 ; r4 = ptr to global var structure(?)
020880A0 EBFFFBFB bl #0x2087094
02087094 E59F0004 ldr r0,=#0x4000100 ; Timer0 address
02087098 E1D000B0 ldrh r0,[r0] ; r0 = *Timer0
0208709C E12FFF1E bx r14
020880A4 E1800806 orr r0,r0,r6,lsl #0x10 ; r0 = (*VCOUNT << 16) | *Timer0
020880A8 E5850000 str r0,[r5] ; message[5] = (*VCOUNT << 16) | *Timer0
020880AC E59F009C ldr r0,=#0x21510F8 ; r0 = 0x21510F8 (...)
020880B0 E1D41FB8 ldrh r1,[r4,#0xF8] ; r1 = low part of MAC (M5, M6) (*0x2FFFCF8 & 0x0000ffff)
020880B4 E5902000 ldr r2,[r0] ; r2 = *0x21510F8
020880B8 E5903004 ldr r3,[r0,#0x4] ; r3 = *0x21510FC (not used from r3)
020880BC E0221801 eor r1,r2,r1,lsl #0x10 ; r1 = (MAC[M5,M6] << 16) ^ *0x21510F8
020880C0 E5851004 str r1,[r5,#0x4] ; message[6] = (MAC[M5,M6] << 16) ^ *0x21510F8
020880C4 E5902000 ldr r2,[r0] ; r2 = *0x21510F8 (not used)
020880C8 E59F2084 ldr r2,=#0x4000600 ; r2 = GxStat address
020880CC E5901004 ldr r1,[r0,#0x4] ; r1 = *0x21510FC
020880D0 E59400F4 ldr r0,[r4,#0xF4] ; r0 = remaining MAC (M1-M4) (*0x2FFFCF4)
020880D4 E594303C ldr r3,[r4,#0x3C] ; r3 = *0x2FFFC3C (vframe?)
020880D8 E0210000 eor r0,r1,r0 ; r0 = MAC[M1-M4] ^ *0x21510FC
020880DC E0233000 eor r3,r3,r0 ; r3 = *0x2FFFC3C (vframe?) ^ (MAC[M1-M4] ^ *0x21510FC)
020880E0 E5853008 str r3,[r5,#0x8] ; message[7] = *0x2FFFC3C (vframe?) ^ (MAC[M1-M4] ^ *0x21510FC)
020880E4 E5921000 ldr r1,[r2] ; r1 = *GxStat
020880E8 E2840C03 add r0,r4,#0x300 ; r0 = 0x2ffff00
020880EC E0231001 eor r1,r3,r1 ; r1 = *GxStat ^ *0x2FFFC3C (vframe?) ^ (MAC[M1-M4] ^ *0x21510FC)
020880F0 E5851008 str r1,[r5,#0x8] ; message[7] = *GxStat ^ *0x2FFFC3C (vframe?) ^ (MAC[M1-M4] ^ *0x21510FC) ; (overwrite above)
020880F4 E59411E8 ldr r1,[r4,#0x1E8] ; r1 = date (*0x2FFFDE8)
020880F8 E2422E4D sub r2,r2,#0x4D0 ; r2 = 0x04000130 (KEYINPUT)
020880FC E585100C str r1,[r5,#0xC] ; message[8] = date
02088100 E59431EC ldr r3,[r4,#0x1EC] ; r3 = time (*0x2FFFDEC)
02088104 E2841FEA add r1,r4,#0x3A8 ; r1 = 0x2FFFFA8
02088108 E5853010 str r3,[r5,#0x10] ; message[9] = time
0208810C E1D0C9B4 ldrh r12,[r0,#0x94] ; r12 = *0x2ffff94 & 0x0000ffff
02088110 E5943390 ldr r3,[r4,#0x390] ; r3 = *0x2FFFF90
02088114 E023380C eor r3,r3,r12,lsl #0x10 ; r3 = *0x2FFFF90 ^ ((*0x2ffff94 & 0x0000ffff) << 16)
02088118 E5853014 str r3,[r5,#0x14] ; message[0xA] = *0x2FFFF90 ^ ((*0x2ffff94 & 0x0000ffff) << 16)
0208811C E1D04ABA ldrh r4,[r0,#0xAA] ; r4 = *0x2ffffaa & 0x0000ffff
02088120 E1D03ABC ldrh r3,[r0,#0xAC] ; r3 = *0x2ffffac & 0x0000ffff
02088124 E1833804 orr r3,r3,r4,lsl #0x10 ; r3 = (r4 << 16) | r3
02088128 E5853018 str r3,[r5,#0x18] ; message[0xB] = ((*0x2ffffaa & 0x0000ffff) << 16) | (*0x2ffffac & 0x0000ffff)
0208812C E1D220B0 ldrh r2,[r2] ; r2 = *0x04000130 (*KEYINPUT) & 0x0000ffff
02088130 E1D110B0 ldrh r1,[r1] ; r1 = *0x2FFFFA8 & 0x0000ffff
02088134 E1D039B8 ldrh r3,[r0,#0x98] ; r3 = *0x2ffff98 & 0x0000ffff
02088138 E1820001 orr r0,r2,r1 ; r0 = (*0x2FFFFA8 & 0x0000ffff) | *KEYINPUT
0208813C E1800803 orr r0,r0,r3,lsl #0x10 ; r0 = ((*0x2ffff98 & 0x0000ffff) << 16) | ((*0x2FFFFA8 & 0x0000ffff) | *KEYINPUT)
02088140 E585001C str r0,[r5,#0x1C] ; message[0xC] = ((*0x2ffff98 & 0x0000ffff) << 16) | ((*0x2FFFFA8 & 0x0000ffff) | *KEYINPUT)
02088144 E8BD8070 ldmfd r13!,{r4-r6,r15} ; unwind stack
02088148 04000006 streq r0,[r0],-#0x6 ; ...
0208814C 02FFFC00 rsceqs r15,r15,#0x0
02088150 021510F8 andeqs r1,r5,#0xF8
02088154 04000600 streq r0,[r0],-#0x600
02088158 E92D4010 stmfd r13!,{r4,r14}
0208815C E59F0078 ldr r0,=#0x2151158
02088160 E5902004 ldr r2,[r0,#0x4]
02088164 E3520000 cmp r2,#0x0
02088168 0A000003 beq #0x208817C
0208816C E3A01000 mov r1,#0x0
02088170 E5801004 str r1,[r0,#0x4]
02088174 E5900000 ldr r0,[r0]
02088178 E12FFF32 blx r2