summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--asm/data1.s2
-rw-r--r--asm/data2.s2
-rw-r--r--asm/emerald.s22333
-rw-r--r--asm/libagbbackup.s1161
-rw-r--r--asm/libagbsyscall.s100
-rw-r--r--asm/libgcc.s5221
-rw-r--r--asm/libmks4agb.s5283
-rw-r--r--asm/librfu.s8917
-rw-r--r--asm/unknown_lib_1.s448
-rw-r--r--asm/unknown_lib_2.s1185
10 files changed, 22328 insertions, 22324 deletions
diff --git a/asm/data1.s b/asm/data1.s
new file mode 100644
index 000000000..315445340
--- /dev/null
+++ b/asm/data1.s
@@ -0,0 +1,2 @@
+@ the first big chunk of data
+ .incbin "base_emerald.gba", 0x1db67c, 0x2ded70 - 0x1db67c
diff --git a/asm/data2.s b/asm/data2.s
new file mode 100644
index 000000000..c2f651adb
--- /dev/null
+++ b/asm/data2.s
@@ -0,0 +1,2 @@
+@ the second big chunk of data
+ .incbin "base_emerald.gba", 0x2e952e
diff --git a/asm/emerald.s b/asm/emerald.s
index 6d189ab2d..cef2de1a0 100644
--- a/asm/emerald.s
+++ b/asm/emerald.s
@@ -920799,22327 +920799,12 @@ _081DB66C:
.pool
thumb_func_end sub_81DB620
- .incbin "base_emerald.gba", 0x1db67c, 0x2ded70 - 0x1db67c
- thumb_func_start sub_82DED70
-sub_82DED70: @ 82DED70
- push {r4,lr}
- ldr r4, _082DEE78
- eors r3, r1
- movs r2, 0x20
-_082DED78:
- lsrs r3, 1
- bcc _082DED7E
- eors r3, r4
-_082DED7E:
- subs r2, 0x1
- bne _082DED78
- pop {r4,pc}
- thumb_func_end sub_82DED70
-
- thumb_func_start sub_82DED84
-sub_82DED84: @ 82DED84
- ldr r1, [r0, 0x28]
- cmp r1, 0
- beq _082DEDAA
- ldrb r1, [r0, 0x1]
- adds r1, 0x1
- strb r1, [r0, 0x1]
- ldrb r1, [r0, 0x2]
- cmp r1, 0x2
- beq _082DEDF4
- ldr r3, _082DF038
- ldrh r2, [r3, 0x8]
- movs r1, 0
- strh r1, [r3, 0x8]
- ldrb r1, [r0]
- cmp r1, 0xA
- bgt _082DEDA8
- adds r1, 0x1
- strb r1, [r0]
-_082DEDA8:
- strh r2, [r3, 0x8]
-_082DEDAA:
- bcs sub_82DEE98
- ldrb r1, [r0, 0x2]
- cmp r1, 0
- bne _082DEDF6
- ldr r1, [r0, 0x24]
- ldr r2, [r0, 0x20]
- subs r1, r2
- beq _082DEE76
- cmp r1, 0xA0
- bcc _082DEE76
- push {r4-r6}
- movs r1, 0x98
- adds r2, 0x4
- ldr r4, _082DEE80
-_082DEDC6:
- ldm r2!, {r5}
- ldm r4!, {r6}
- cmp r5, r6
- bne _082DEDDC
- subs r1, 0x4
- bne _082DEDC6
- ldm r2!, {r5}
- ldm r4!, {r6}
- eors r5, r6
- lsrs r5, 8
- str r2, [r0, 0x20]
-_082DEDDC:
- pop {r4-r6}
- bne sub_82DEE98
- movs r1, 0x1
- strb r1, [r0, 0x2]
- ldr r1, [r0, 0x4]
- ldr r2, [r0, 0x8]
- eors r1, r2
- str r1, [r0, 0x18]
- ldr r2, _082DEE7C
- muls r1, r2
- adds r1, 0x1
- str r1, [r0, 0x14]
-_082DEDF4:
- bx lr
-_082DEDF6:
- ldr r1, [r0, 0x24]
- mov r12, r1
- ldr r3, [r0, 0x18]
- push {r4-r7}
- ldr r4, [r0, 0x20]
- ldr r5, _082DEE7C
- ldr r6, [r0, 0x14]
- ldr r7, _082DEE78
-_082DEE06:
- cmp r4, r12
- bcs _082DEE26
- ldr r1, [r4]
- eors r1, r6
- adds r1, r3
- stm r4!, {r1}
- eors r3, r1
- movs r2, 0x20
-_082DEE16:
- lsrs r3, 1
- bcc _082DEE1C
- eors r3, r7
-_082DEE1C:
- subs r2, 0x1
- bne _082DEE16
- muls r6, r5
- adds r6, 0x1
- b _082DEE06
-_082DEE26:
- str r4, [r0, 0x20]
- str r6, [r0, 0x14]
- pop {r4-r7}
- str r3, [r0, 0x18]
- ldrh r1, [r0, 0x12]
- cmp r1, 0
- bne _082DEE76
- ldr r1, [r0, 0x24]
- ldr r2, [r0, 0x20]
- cmp r1, r2
- bne _082DEE76
- ldr r1, [r0, 0xC]
- cmp r1, 0
- beq _082DEE60
- ldrh r1, [r0, 0x10]
- cmp r1, 0
- beq _082DEDF4
- mov r12, lr
- movs r1, 0xBB
- ldr r3, [r0, 0xC]
- bl sub_82DED70
- ldrh r1, [r0, 0x10]
- mov lr, r12
- subs r1, r3
- bne sub_82DEE98
- movs r1, 0x2
- strb r1, [r0, 0x2]
- bx lr
-_082DEE60:
- mov r12, lr
- ldrb r1, [r0, 0x3]
- lsls r1, 24
- subs r1, 0x1
- str r1, [r0, 0xC]
- bl sub_82DED70
- lsls r3, 8
- adds r3, 0xFF
- str r3, [r0, 0x1C]
- bx r12
-_082DEE76:
- bx lr
- .align 2, 0
-_082DEE78: .4byte 0x0000a1c1
-_082DEE7C: .4byte 0x6177614b
-_082DEE80: .4byte RomHeaderNintendoLogo
- thumb_func_end sub_82DED84
-
- thumb_func_start sub_82DEE84
-sub_82DEE84: @ 82DEE84
- ldrb r1, [r0, 0x2]
- cmp r1, 0x2
- bne _082DEE96
- ldr r3, _082DF038
- movs r1, 0
- strh r1, [r3, 0x8]
- ldr r1, _082DF048
- adds r1, 0xC0
- bx r1
-_082DEE96:
- bx lr
- thumb_func_end sub_82DEE84
-
- thumb_func_start sub_82DEE98
-sub_82DEE98: @ 82DEE98
- ldr r3, _082DF038
- ldrh r2, [r3, 0x8]
- movs r1, 0
- strh r1, [r3, 0x8]
- adr r3, _082DEEF8
- str r3, [r0, 0x28]
- ldrb r3, [r0, 0x3]
- push {r3}
- ldrb r3, [r0, 0x1]
- push {r0,r3}
- adds r3, r0, 0
- adds r3, 0x20
-_082DEEB0:
- stm r0!, {r1}
- cmp r0, r3
- bcc _082DEEB0
- pop {r0,r3}
- lsrs r3, 1
- strb r3, [r0, 0x3]
- pop {r3}
- strb r3, [r0, 0x1]
- ldr r3, _082DF03C
- lsls r0, r3, 10
- strh r0, [r3, 0x14]
- movs r0, 0xC0
- lsls r0, 8
- strh r0, [r3, 0x14]
- movs r0, 0x47
- strh r0, [r3, 0x20]
- strh r1, [r3, 0x38]
- ldr r3, _082DF038
- movs r0, 0x80
- strh r0, [r3, 0x2]
- ldrh r1, [r3]
- orrs r1, r0
- strh r1, [r3]
- strh r2, [r3, 0x8]
- bx lr
- thumb_func_end sub_82DEE98
-
- non_word_aligned_thumb_func_start sub_82DEEE2
-sub_82DEEE2: @ 82DEEE2
- ldr r3, _082DF03C
- ldrh r1, [r3, 0x20]
- strh r1, [r3, 0x20]
- movs r2, 0
- strb r2, [r0]
- ldr r2, [r0, 0x28]
- cmp r2, 0
- beq _082DEF04
- lsrs r1, 1
- bcs _082DEF06
- mov pc, r2
-_082DEEF8:
- movs r2, 0
- strh r2, [r3, 0x38]
-_082DEEFC:
- str r2, [r0, 0x28]
-_082DEEFE:
- ldr r3, _082DF040
- ldrh r1, [r3, 0x2]
- strb r1, [r0, 0x3]
-_082DEF04:
- bx lr
-_082DEF06:
- ldr r1, [r3, 0x30]
- ldr r1, _082DF044
- str r1, [r3, 0x34]
- movs r1, 0x10
- strh r1, [r3, 0x38]
- ldrb r1, [r0, 0x3]
- strb r1, [r0, 0x9]
- ldrb r1, [r0, 0x2]
- cmp r1, 0
- bne _082DEEF8
- ldr r1, _082DF048
- str r1, [r0, 0x20]
- str r1, [r0, 0x24]
- adr r2, .Lsub_82DEF24
- b _082DEEFC
- thumb_func_end sub_82DEEE2
-
- thumb_func_start sub_82DEF24
-.Lsub_82DEF24:
-sub_82DEF24: @ 82DEF24
- lsls r1, 31
- bcc _082DEEF8
- bmi _082DEF34
- adr r2, .Lsub_82DEF30
- b _082DEEFC
- thumb_func_end sub_82DEF24
-
- thumb_func_start sub_82DEF30
-.Lsub_82DEF30:
-sub_82DEF30: @ 82DEF30
- lsrs r1, 1
- bcc _082DEEF8
-_082DEF34:
- ldr r1, [r3, 0x30]
- ldr r2, _082DF044
- cmp r1, r2
- bne _082DEEF8
- ldrb r1, [r0, 0x3]
- strb r1, [r0, 0xB]
- adr r2, .Lsub_82DEF44
- b _082DEEFC
- thumb_func_end sub_82DEF30
-
- thumb_func_start sub_82DEF44
-.Lsub_82DEF44:
-sub_82DEF44: @ 82DEF44
- lsrs r1, 1
- bcc _082DEEF8
- ldr r1, [r3, 0x30]
- lsrs r2, r1, 24
- cmp r2, 0xDD
- bne _082DEEF8
- str r1, [r0, 0x4]
- ldrb r1, [r0, 0x1]
- strb r1, [r0, 0xA]
- movs r2, 0
- movs r3, 0
- ldr r1, [r0, 0x8]
- lsrs r1, 8
-_082DEF5E:
- lsrs r1, 1
- adcs r2, r3
- cmp r1, 0
- bne _082DEF5E
- cmp r2, 0xE
- bgt _082DEF70
- cmp r2, 0x7
- bge _082DEF72
- movs r1, 0xFF
-_082DEF70:
- strb r1, [r0, 0xA]
-_082DEF72:
- ldr r1, [r0, 0x8]
- adds r1, 0xEE
- ldr r3, _082DF03C
- str r1, [r3, 0x34]
- movs r1, 0x30
- strh r1, [r3, 0x38]
- adr r2, .Lsub_82DEF84
- b _082DEEFC
- thumb_func_end sub_82DEF44
-
- thumb_func_start sub_82DEF84
-.Lsub_82DEF84:
-sub_82DEF84: @ 82DEF84
- lsls r1, 31
- bcc _082DEEF8
- bmi _082DEF94
- adr r2, .Lsub_82DEF90
- b _082DEEFC
- thumb_func_end sub_82DEF84
-
- thumb_func_start sub_82DEF90
-.Lsub_82DEF90:
-sub_82DEF90: @ 82DEF90
- lsrs r1, 1
- bcc _082DEEF8
-_082DEF94:
- ldr r1, [r3, 0x30]
- ldr r2, _082DF034
- cmp r1, r2
- bcs _082DEEF8
- adds r1, 0x1
- adds r1, r1
- strh r1, [r0, 0x12]
- ldrb r1, [r0, 0x2]
- cmp r1, 0
-_082DEFA6:
- bne _082DEEF8
- ldr r1, _082DF048
- str r1, [r0, 0x20]
- str r1, [r0, 0x24]
- adr r2, .Lsub_82DEFB4
- b _082DEEFC
- thumb_func_end sub_82DEF90
-
- thumb_func_start sub_82DEFB4
-.Lsub_82DEFB4:
-sub_82DEFB4: @ 82DEFB4
- lsrs r1, 1
- bcc _082DEEF8
- ldr r2, [r0, 0x24]
- movs r1, 0x4
- ands r1, r2
- adds r1, 0x8
- lsls r1, 2
- strh r1, [r3, 0x38]
- ldr r1, [r3, 0x30]
- stm r2!, {r1}
- str r2, [r0, 0x24]
- ldrh r1, [r0, 0x12]
- subs r1, 0x1
- strh r1, [r0, 0x12]
- bne _082DEEFE
-_082DEFD2:
- ldrb r1, [r0, 0x1]
- lsls r1, 8
- adds r1, 0xCC
- str r1, [r3, 0x34]
- adr r2, _082DEFE0
- b _082DEEFC
- .align 2, 0
-_082DEFE0:
- lsls r1, 31
-_082DEFE2:
- bcc _082DEEF8
- ldr r1, [r0, 0x1C]
- cmp r1, 0
- beq _082DEFD2
- str r1, [r3, 0x34]
- adr r2, .Lsub_82DEFF0
- b _082DEEFC
- thumb_func_end sub_82DEFB4
-
- thumb_func_start sub_82DEFF0
-.Lsub_82DEFF0:
-sub_82DEFF0: @ 82DEFF0
- lsls r1, 31
- bcc _082DEFE2
- bmi _082DF000
- adr r2, .L_082DEFFC
- b _082DEEFC
- .align 2, 0
-.L_082DEFFC:
-_082DEFFC:
- lsrs r1, 1
- bcc _082DEFE2
-_082DF000:
- ldr r1, [r3, 0x30]
- lsrs r2, r1, 24
- cmp r2, 0xBB
- bne _082DEFA6
- strh r1, [r0, 0x10]
- adr r2, .Lsub_82DF010
- b _082DEEFC
- thumb_func_end sub_82DEFF0
-
- thumb_func_start sub_82DF010
-.Lsub_82DF010:
-sub_82DF010: @ 82DF010
- b _082DEEF8
- thumb_func_end sub_82DF010
-
- non_word_aligned_thumb_func_start sub_82DF012
-sub_82DF012: @ 82DF012
- ldr r3, _082DF038
- ldrh r2, [r3, 0x8]
- movs r1, 0
- strh r1, [r3, 0x8]
- ldr r3, _082DF03C
- movs r0, 0x7
- strh r0, [r3, 0x20]
- lsls r0, r3, 10
- strh r0, [r3, 0x14]
- ldr r3, _082DF038
- movs r0, 0x80
- strh r0, [r3, 0x2]
- ldrh r1, [r3]
- bics r1, r0
- strh r1, [r3]
- strh r2, [r3, 0x8]
- bx lr
- .align 2, 0
-_082DF034: .4byte 0x00004000
-_082DF038: .4byte 0x04000200
-_082DF03C: .4byte 0x04000120
-_082DF040: .4byte 0x04000004
-_082DF044: .4byte 0x45565841
-_082DF048: .4byte 0x02000000
- thumb_func_end sub_82DF012
-
- thumb_func_start umul3232H32
-umul3232H32: @ 82DF04C
- adr r2, _082DF050
- bx r2
- .arm
-_082DF050:
- umull r2, r3, r0, r1
- add r0, r3, 0
- bx lr
- thumb_func_end umul3232H32
-
- .thumb
- thumb_func_start SoundMain
-SoundMain: @ 82DF05C
- ldr r0, _082DF0C8
- ldr r0, [r0]
- ldr r2, _082DF0CC
- ldr r3, [r0]
- cmp r2, r3
- beq _082DF06A
- bx lr
-_082DF06A:
- adds r3, 0x1
- str r3, [r0]
- push {r4-r7,lr}
- mov r1, r8
- mov r2, r9
- mov r3, r10
- mov r4, r11
- push {r0-r4}
- sub sp, 0x18
- ldrb r1, [r0, 0xC]
- cmp r1, 0
- beq _082DF08E
- ldr r2, _082DF0D4
- ldrb r2, [r2]
- cmp r2, 0xA0
- bcs _082DF08C
- adds r2, 0xE4
-_082DF08C:
- adds r1, r2
-_082DF08E:
- str r1, [sp, 0x14]
- ldr r3, [r0, 0x20]
- cmp r3, 0
- beq _082DF09E
- ldr r0, [r0, 0x24]
- bl _082DF496
- ldr r0, [sp, 0x18]
-_082DF09E:
- ldr r3, [r0, 0x28]
- bl _082DF496
- ldr r0, [sp, 0x18]
- ldr r3, [r0, 0x10]
- mov r8, r3
- ldr r5, _082DF0D8
- adds r5, r0
- ldrb r4, [r0, 0x4]
- subs r7, r4, 0x1
- bls _082DF0BE
- ldrb r1, [r0, 0xB]
- subs r1, r7
- mov r2, r8
- muls r2, r1
- adds r5, r2
-_082DF0BE:
- str r5, [sp, 0x8]
- ldr r6, _082DF0DC
- ldr r3, _082DF0D0
- bx r3
- .align 2, 0
-_082DF0C8: .4byte 0x03007ff0
-_082DF0CC: .4byte 0x68736d53
-_082DF0D0: .4byte 0x03001aa9
-_082DF0D4: .4byte 0x04000006
-_082DF0D8: .4byte 0x00000350
-_082DF0DC: .4byte 0x00000630
- thumb_func_end SoundMain
-
- thumb_func_start SoundMainRAM
-SoundMainRAM: @ 82DF0E0
- ldrb r3, [r0, 0x5]
- cmp r3, 0
- beq _082DF140
- adr r1, _082DF0EC
- bx r1
- .arm
-_082DF0EC:
- cmp r4, 0x2
- addeq r7, r0, 0x350
- addne r7, r5, r8
- mov r4, r8
-_082DF0FC:
- ldrsb r0, [r5, r6]
- ldrsb r1, [r5]
- add r0, r0, r1
- ldrsb r1, [r7, r6]
- add r0, r0, r1
- ldrsb r1, [r7], 0x1
- add r0, r0, r1
- mul r1, r0, r3
- mov r0, r1, asr 9
- tst r0, 0x80
- addne r0, r0, 0x1
- strb r0, [r5, r6]
- strb r0, [r5], 0x1
- subs r4, r4, 0x1
- bgt _082DF0FC
- add r0, pc, 0x2F
- bx r0
- .thumb
-_082DF140:
- movs r0, 0
- mov r1, r8
- adds r6, r5
- lsrs r1, 3
- bcc _082DF14E
- stm r5!, {r0}
- stm r6!, {r0}
-_082DF14E:
- lsrs r1, 1
- bcc _082DF15A
- stm r5!, {r0}
- stm r6!, {r0}
- stm r5!, {r0}
- stm r6!, {r0}
-_082DF15A:
- stm r5!, {r0}
- stm r6!, {r0}
- stm r5!, {r0}
- stm r6!, {r0}
- stm r5!, {r0}
- stm r6!, {r0}
- stm r5!, {r0}
- stm r6!, {r0}
- subs r1, 0x1
- bgt _082DF15A
- ldr r4, [sp, 0x18]
- ldr r0, [r4, 0x18]
- mov r12, r0
- ldrb r0, [r4, 0x6]
- adds r4, 0x50
-_082DF178:
- str r0, [sp, 0x4]
- ldr r3, [r4, 0x24]
- ldr r0, [sp, 0x14]
- cmp r0, 0
- beq _082DF198
- ldr r1, _082DF194
- ldrb r1, [r1]
- cmp r1, 0xA0
- bcs _082DF18C
- adds r1, 0xE4
-_082DF18C:
- cmp r1, r0
- bcc _082DF198
- b _082DF482
- .align 2, 0
-_082DF194: .4byte 0x04000006
-_082DF198:
- ldrb r6, [r4]
- movs r0, 0xC7
- tst r0, r6
- bne _082DF1A2
- b _082DF478
-_082DF1A2:
- movs r0, 0x80
- tst r0, r6
- beq _082DF1D8
- movs r0, 0x40
- tst r0, r6
- bne _082DF1E8
- movs r6, 0x3
- strb r6, [r4]
- adds r0, r3, 0
- adds r0, 0x10
- ldr r1, [r4, 0x18]
- adds r0, r1
- str r0, [r4, 0x28]
- ldr r0, [r3, 0xC]
- subs r0, r1
- str r0, [r4, 0x18]
- movs r5, 0
- strb r5, [r4, 0x9]
- str r5, [r4, 0x1C]
- ldrb r2, [r3, 0x3]
- movs r0, 0xC0
- tst r0, r2
- beq _082DF230
- movs r0, 0x10
- orrs r6, r0
- strb r6, [r4]
- b _082DF230
-_082DF1D8:
- ldrb r5, [r4, 0x9]
- movs r0, 0x4
- tst r0, r6
- beq _082DF1EE
- ldrb r0, [r4, 0xD]
- subs r0, 0x1
- strb r0, [r4, 0xD]
- bhi _082DF23E
-_082DF1E8:
- movs r0, 0
- strb r0, [r4]
- b _082DF478
-_082DF1EE:
- movs r0, 0x40
- tst r0, r6
- beq _082DF20E
- ldrb r0, [r4, 0x7]
- muls r5, r0
- lsrs r5, 8
- ldrb r0, [r4, 0xC]
- cmp r5, r0
- bhi _082DF23E
-_082DF200:
- ldrb r5, [r4, 0xC]
- cmp r5, 0
- beq _082DF1E8
- movs r0, 0x4
- orrs r6, r0
- strb r6, [r4]
- b _082DF23E
-_082DF20E:
- movs r2, 0x3
- ands r2, r6
- cmp r2, 0x2
- bne _082DF22C
- ldrb r0, [r4, 0x5]
- muls r5, r0
- lsrs r5, 8
- ldrb r0, [r4, 0x6]
- cmp r5, r0
- bhi _082DF23E
- adds r5, r0, 0
- beq _082DF200
- subs r6, 0x1
- strb r6, [r4]
- b _082DF23E
-_082DF22C:
- cmp r2, 0x3
- bne _082DF23E
-_082DF230:
- ldrb r0, [r4, 0x4]
- adds r5, r0
- cmp r5, 0xFF
- bcc _082DF23E
- movs r5, 0xFF
- subs r6, 0x1
- strb r6, [r4]
-_082DF23E:
- strb r5, [r4, 0x9]
- ldr r0, [sp, 0x18]
- ldrb r0, [r0, 0x7]
- adds r0, 0x1
- muls r0, r5
- lsrs r5, r0, 4
- ldrb r0, [r4, 0x2]
- muls r0, r5
- lsrs r0, 8
- strb r0, [r4, 0xA]
- ldrb r0, [r4, 0x3]
- muls r0, r5
- lsrs r0, 8
- strb r0, [r4, 0xB]
- movs r0, 0x10
- ands r0, r6
- str r0, [sp, 0x10]
- beq _082DF272
- adds r0, r3, 0
- adds r0, 0x10
- ldr r1, [r3, 0x8]
- adds r0, r1
- str r0, [sp, 0xC]
- ldr r0, [r3, 0xC]
- subs r0, r1
- str r0, [sp, 0x10]
-_082DF272:
- ldr r5, [sp, 0x8]
- ldr r2, [r4, 0x18]
- ldr r3, [r4, 0x28]
- adr r0, _082DF27C
- bx r0
- .arm
-_082DF27C:
- str r8, [sp]
- ldr r9, [r4, 0x1C]
- ldrb r10, [r4, 0xA]
- ldrb r11, [r4, 0xB]
- ldrb r0, [r4, 0x1]
- tst r0, 0x30
- beq _082DF2A0
- bl sub_82DF49C
- b _082DF460
-_082DF2A0:
- mov r10, r10, lsl 16
- mov r11, r11, lsl 16
- ldrb r0, [r4, 0x1]
- tst r0, 0x8
- beq _082DF3D4
-_082DF2B4:
- cmp r2, 0x4
- ble _082DF324
- subs r2, r2, r8
- movgt r9, 0
- bgt _082DF2E0
- mov r9, r8
- add r2, r2, r8
- sub r8, r2, 0x4
- sub r9, r9, r8
- ands r2, r2, 0x3
- moveq r2, 0x4
-_082DF2E0:
- ldr r6, [r5]
- ldr r7, [r5, 0x630]
-_082DF2E8:
- ldrsb r0, [r3], 0x1
- mul r1, r10, r0
- bic r1, r1, 0xFF0000
- add r6, r1, r6, ror 8
- mul r1, r11, r0
- bic r1, r1, 0xFF0000
- add r7, r1, r7, ror 8
- adds r5, r5, 0x40000000
- bcc _082DF2E8
- str r7, [r5, 0x630]
- str r6, [r5], 0x4
- subs r8, r8, 0x4
- bgt _082DF2E0
- adds r8, r8, r9
- beq _082DF464
-_082DF324:
- ldr r6, [r5]
- ldr r7, [r5, 0x630]
-_082DF32C:
- ldrsb r0, [r3], 0x1
- mul r1, r10, r0
- bic r1, r1, 0xFF0000
- add r6, r1, r6, ror 8
- mul r1, r11, r0
- bic r1, r1, 0xFF0000
- add r7, r1, r7, ror 8
- subs r2, r2, 0x1
- beq _082DF39C
-_082DF350:
- adds r5, r5, 0x40000000
- bcc _082DF32C
- str r7, [r5, 0x630]
- str r6, [r5], 0x4
- subs r8, r8, 0x4
- bgt _082DF2B4
- b _082DF464
-_082DF36C:
- ldr r0, [sp, 0x18]
- cmp r0, 0
- beq _082DF390
- ldr r3, [sp, 0x14]
- rsb lr, r2, 0
-_082DF380:
- adds r2, r0, r2
- bgt _082DF434
- sub lr, lr, r0
- b _082DF380
-_082DF390:
- ldmia sp!, {r4,r12}
- mov r2, 0
- b _082DF3AC
-_082DF39C:
- ldr r2, [sp, 0x10]
- cmp r2, 0
- ldrne r3, [sp, 0xC]
- bne _082DF350
-_082DF3AC:
- strb r2, [r4]
- mov r0, r5, lsr 30
- bic r5, r5, 0xC0000000
- rsb r0, r0, 0x3
- mov r0, r0, lsl 3
- mov r6, r6, ror r0
- mov r7, r7, ror r0
- str r7, [r5, 0x630]
- str r6, [r5], 0x4
- b _082DF46C
-_082DF3D4:
- stmdb sp!, {r4,r12}
- ldr r1, [r4, 0x20]
- mul r4, r12, r1
- ldrsb r0, [r3]
- ldrsb r1, [r3, 0x1]!
- sub r1, r1, r0
-_082DF3EC:
- ldr r6, [r5]
- ldr r7, [r5, 0x630]
-_082DF3F4:
- mul lr, r9, r1
- add lr, r0, lr, asr 23
- mul r12, r10, lr
- bic r12, r12, 0xFF0000
- add r6, r12, r6, ror 8
- mul r12, r11, lr
- bic r12, r12, 0xFF0000
- add r7, r12, r7, ror 8
- add r9, r9, r4
- movs lr, r9, lsr 23
- beq _082DF440
- bic r9, r9, 0x3F800000
- subs r2, r2, lr
- ble _082DF36C
- subs lr, lr, 0x1
- addeq r0, r0, r1
-_082DF434:
- ldrsbne r0, [r3, lr]!
- ldrsb r1, [r3, 0x1]!
- sub r1, r1, r0
-_082DF440:
- adds r5, r5, 0x40000000
- bcc _082DF3F4
- str r7, [r5, 0x630]
- str r6, [r5], 0x4
- subs r8, r8, 0x4
- bgt _082DF3EC
- sub r3, r3, 0x1
- ldmia sp!, {r4,r12}
-_082DF460:
- str r9, [r4, 0x1C]
-_082DF464:
- str r2, [r4, 0x18]
- str r3, [r4, 0x28]
-_082DF46C:
- ldr r8, [sp]
- add r0, pc, 0x1
- bx r0
- .thumb
-_082DF478:
- ldr r0, [sp, 0x4]
- subs r0, 0x1
- ble _082DF482
- adds r4, 0x40
- b _082DF178
-_082DF482:
- ldr r0, [sp, 0x18]
- ldr r3, _082DF498
- str r3, [r0]
- add sp, 0x1C
- pop {r0-r7}
- mov r8, r0
- mov r9, r1
- mov r10, r2
- mov r11, r3
- pop {r3}
-_082DF496:
- bx r3
- .align 2, 0
-_082DF498: .4byte 0x68736d53
- thumb_func_end SoundMainRAM
-
- .arm
- arm_func_start sub_82DF49C
-sub_82DF49C: @ 82DF49C
- ldr r6, [r4, 0x24]
- ldrb r0, [r4]
- tst r0, 0x20
- bne _082DF4EC
- orr r0, r0, 0x20
- strb r0, [r4]
- ldrb r0, [r4, 0x1]
- tst r0, 0x10
- beq _082DF4D4
- ldr r1, [r6, 0xC]
- add r1, r1, r6, lsl 1
- add r1, r1, 0x20
- sub r3, r1, r3
- str r3, [r4, 0x28]
-_082DF4D4:
- ldrh r0, [r6]
- cmp r0, 0
- beq _082DF4EC
- sub r3, r3, r6
- sub r3, r3, 0x10
- str r3, [r4, 0x28]
-_082DF4EC:
- stmdb sp!, {r8,r12,lr}
- mov r10, r10, lsl 16
- mov r11, r11, lsl 16
- ldr r1, [r4, 0x20]
- ldrb r0, [r4, 0x1]
- tst r0, 0x8
- movne r8, 0x800000
- muleq r8, r12, r1
- ldrh r0, [r6]
- cmp r0, 0
- beq _082DF6A0
- mov r0, 0xFF000000
- str r0, [r4, 0x3C]
- ldrb r0, [r4, 0x1]
- tst r0, 0x10
- bne _082DF5F8
- bl sub_82DF758
- mov r0, r1
- add r3, r3, 0x1
- bl sub_82DF758
- sub r1, r1, r0
-_082DF540:
- ldr r6, [r5]
- ldr r7, [r5, 0x630]
-_082DF548:
- mul lr, r9, r1
- add lr, r0, lr, asr 23
- mul r12, r10, lr
- bic r12, r12, 0xFF0000
- add r6, r12, r6, ror 8
- mul r12, r11, lr
- bic r12, r12, 0xFF0000
- add r7, r12, r7, ror 8
- add r9, r9, r8
- movs lr, r9, lsr 23
- beq _082DF5A8
- bic r9, r9, 0x3F800000
- subs r2, r2, lr
- ble _082DF5D0
- subs lr, lr, 0x1
- bne _082DF590
- add r0, r0, r1
- b _082DF59C
-_082DF590:
- add r3, r3, lr
- bl sub_82DF758
- mov r0, r1
-_082DF59C:
- add r3, r3, 0x1
- bl sub_82DF758
- sub r1, r1, r0
-_082DF5A8:
- adds r5, r5, 0x40000000
- bcc _082DF548
- str r7, [r5, 0x630]
- str r6, [r5], 0x4
- ldr r6, [sp]
- subs r6, r6, 0x4
- str r6, [sp]
- bgt _082DF540
- sub r3, r3, 0x1
- b _082DF728
-_082DF5D0:
- ldr r0, [sp, 0x1C]
- cmp r0, 0
- beq _082DF72C
- ldr r3, [r4, 0x24]
- ldr r3, [r3, 0x8]
- rsb lr, r2, 0
-_082DF5E8:
- adds r2, r2, r0
- bgt _082DF590
- sub lr, lr, r0
- b _082DF5E8
-_082DF5F8:
- sub r3, r3, 0x1
- bl sub_82DF758
- mov r0, r1
- sub r3, r3, 0x1
- bl sub_82DF758
- sub r1, r1, r0
-_082DF610:
- ldr r6, [r5]
- ldr r7, [r5, 0x630]
-_082DF618:
- mul lr, r9, r1
- add lr, r0, lr, asr 23
- mul r12, r10, lr
- bic r12, r12, 0xFF0000
- add r6, r12, r6, ror 8
- mul r12, r11, lr
- bic r12, r12, 0xFF0000
- add r7, r12, r7, ror 8
- add r9, r9, r8
- movs lr, r9, lsr 23
- beq _082DF678
- bic r9, r9, 0x3F800000
- subs r2, r2, lr
- ble _082DF72C
- subs lr, lr, 0x1
- bne _082DF660
- add r0, r0, r1
- b _082DF66C
-_082DF660:
- sub r3, r3, lr
- bl sub_82DF758
- mov r0, r1
-_082DF66C:
- sub r3, r3, 0x1
- bl sub_82DF758
- sub r1, r1, r0
-_082DF678:
- adds r5, r5, 0x40000000
- bcc _082DF618
- str r7, [r5, 0x630]
- str r6, [r5], 0x4
- ldr r6, [sp]
- subs r6, r6, 0x4
- str r6, [sp]
- bgt _082DF610
- add r3, r3, 0x2
- b _082DF728
-_082DF6A0:
- ldrb r0, [r4, 0x1]
- tst r0, 0x10
- beq _082DF728
- ldrsb r0, [r3, -0x1]!
- ldrsb r1, [r3, -0x1]
- sub r1, r1, r0
-_082DF6B8:
- ldr r6, [r5]
- ldr r7, [r5, 0x630]
-_082DF6C0:
- mul lr, r9, r1
- add lr, r0, lr, asr 23
- mul r12, r10, lr
- bic r12, r12, 0xFF0000
- add r6, r12, r6, ror 8
- mul r12, r11, lr
- bic r12, r12, 0xFF0000
- add r7, r12, r7, ror 8
- add r9, r9, r8
- movs lr, r9, lsr 23
- beq _082DF704
- bic r9, r9, 0x3F800000
- subs r2, r2, lr
- ble _082DF72C
- ldrsb r0, [r3, -lr]!
- ldrsb r1, [r3, -0x1]
- sub r1, r1, r0
-_082DF704:
- adds r5, r5, 0x40000000
- bcc _082DF6C0
- str r7, [r5, 0x630]
- str r6, [r5], 0x4
- ldr r6, [sp]
- subs r6, r6, 0x4
- str r6, [sp]
- bgt _082DF6B8
- add r3, r3, 0x1
-_082DF728:
- ldmia sp!, {r8,r12,pc}
-_082DF72C:
- mov r2, 0
- strb r2, [r4]
- mov r0, r5, lsr 30
- bic r5, r5, 0xC0000000
- rsb r0, r0, 0x3
- mov r0, r0, lsl 3
- mov r6, r6, ror r0
- mov r7, r7, ror r0
- str r7, [r5, 0x630]
- str r6, [r5], 0x4
- ldmia sp!, {r8,r12,pc}
- arm_func_end sub_82DF49C
-
- arm_func_start sub_82DF758
-sub_82DF758: @ 82DF758
- stmdb sp!, {r0,r2,r5-r7,lr}
- mov r0, r3, lsr 6
- ldr r1, [r4, 0x3C]
- cmp r0, r1
- beq _082DF7CC
- str r0, [r4, 0x3C]
- mov r1, 0x21
- mul r2, r1, r0
- ldr r1, [r4, 0x24]
- add r2, r2, r1
- add r2, r2, 0x10
- ldr r5, _082DF7DC
- ldr r6, _082DF7E0
- mov r7, 0x40
- ldrb lr, [r2], 0x1
- strb lr, [r5], 0x1
- ldrb r1, [r2], 0x1
- b _082DF7B4
-_082DF7A0:
- ldrb r1, [r2], 0x1
- mov r0, r1, lsr 4
- ldrsb r0, [r6, r0]
- add lr, lr, r0
- strb lr, [r5], 0x1
-_082DF7B4:
- and r0, r1, 0xF
- ldrsb r0, [r6, r0]
- add lr, lr, r0
- strb lr, [r5], 0x1
- subs r7, r7, 0x2
- bgt _082DF7A0
-_082DF7CC:
- ldr r5, _082DF7DC
- and r0, r3, 0x3F
- ldrsb r1, [r5, r0]
- ldmia sp!, {r0,r2,r5-r7,pc}
- .align 2, 0
-_082DF7DC: .4byte 0x03001300
-_082DF7E0: .4byte 0x08675a70
- arm_func_end sub_82DF758
-
- .thumb
- thumb_func_start SoundMainBTM
-SoundMainBTM: @ 82DF7E4
- mov r12, r4
- movs r1, 0
- movs r2, 0
- movs r3, 0
- movs r4, 0
- stm r0!, {r1-r4}
- stm r0!, {r1-r4}
- stm r0!, {r1-r4}
- stm r0!, {r1-r4}
- mov r4, r12
- bx lr
- thumb_func_end SoundMainBTM
-
- thumb_func_start ClearChain
-ClearChain: @ 82DF7FC
- ldr r3, [r0, 0x2C]
- cmp r3, 0
- beq _082DF81A
- ldr r1, [r0, 0x34]
- ldr r2, [r0, 0x30]
- cmp r2, 0
- beq _082DF80E
- str r1, [r2, 0x34]
- b _082DF810
-_082DF80E:
- str r1, [r3, 0x20]
-_082DF810:
- cmp r1, 0
- beq _082DF816
- str r2, [r1, 0x30]
-_082DF816:
- movs r1, 0
- str r1, [r0, 0x2C]
-_082DF81A:
- bx lr
- thumb_func_end ClearChain
-
- thumb_func_start ply_fine
-ply_fine: @ 82DF81C
- push {r4,r5,lr}
- adds r5, r1, 0
- ldr r4, [r5, 0x20]
- cmp r4, 0
- beq _082DF840
-_082DF826:
- ldrb r1, [r4]
- movs r0, 0xC7
- tst r0, r1
- beq _082DF834
- movs r0, 0x40
- orrs r1, r0
- strb r1, [r4]
-_082DF834:
- adds r0, r4, 0
- bl ClearChain
- ldr r4, [r4, 0x34]
- cmp r4, 0
- bne _082DF826
-_082DF840:
- movs r0, 0
- strb r0, [r5]
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end ply_fine
-
- thumb_func_start MPlyJmpTblCopy
-MPlyJmpTblCopy: @ 82DF84C
- mov r12, lr
- movs r1, 0x24
- ldr r2, _082DF87C
-_082DF852:
- ldr r3, [r2]
- bl chk_adr_r2
- stm r0!, {r3}
- adds r2, 0x4
- subs r1, 0x1
- bgt _082DF852
- bx r12
- thumb_func_end MPlyJmpTblCopy
-
- thumb_func_start ldrb_r3_r2
-ldrb_r3_r2: @ 82DF864
- ldrb r3, [r2]
- thumb_func_end ldrb_r3_r2
-
- non_word_aligned_thumb_func_start chk_adr_r2
-chk_adr_r2: @ 82DF866
- push {r0}
- lsrs r0, r2, 25
- bne _082DF878
- ldr r0, _082DF87C
- cmp r2, r0
- bcc _082DF876
- lsrs r0, r2, 14
- beq _082DF878
-_082DF876:
- movs r3, 0
-_082DF878:
- pop {r0}
- bx lr
- .align 2, 0
-_082DF87C: .4byte 0x086759e0
- thumb_func_end chk_adr_r2
-
- thumb_func_start ld_r3_tp_adr_i
-ld_r3_tp_adr_i: @ 82DF880
- ldr r2, [r1, 0x40]
-_082DF882:
- adds r3, r2, 0x1
- str r3, [r1, 0x40]
- ldrb r3, [r2]
- b chk_adr_r2
- thumb_func_end ld_r3_tp_adr_i
-
- thumb_func_start ply_goto
-ply_goto: @ 82DF88C
- push {lr}
-_082DF88E:
- ldr r2, [r1, 0x40]
- ldrb r0, [r2, 0x3]
- lsls r0, 8
- ldrb r3, [r2, 0x2]
- orrs r0, r3
- lsls r0, 8
- ldrb r3, [r2, 0x1]
- orrs r0, r3
- lsls r0, 8
- bl ldrb_r3_r2
- orrs r0, r3
- str r0, [r1, 0x40]
- pop {r0}
- bx r0
- thumb_func_end ply_goto
-
- thumb_func_start ply_patt
-ply_patt: @ 82DF8AC
- ldrb r2, [r1, 0x2]
- cmp r2, 0x3
- bcs _082DF8C4
- lsls r2, 2
- adds r3, r1, r2
- ldr r2, [r1, 0x40]
- adds r2, 0x4
- str r2, [r3, 0x44]
- ldrb r2, [r1, 0x2]
- adds r2, 0x1
- strb r2, [r1, 0x2]
- b ply_goto
-_082DF8C4:
- b ply_fine
- thumb_func_end ply_patt
-
- thumb_func_start play_pend
-play_pend: @ 82DF8C8
- ldrb r2, [r1, 0x2]
- cmp r2, 0
- beq _082DF8DA
- subs r2, 0x1
- strb r2, [r1, 0x2]
- lsls r2, 2
- adds r3, r1, r2
- ldr r2, [r3, 0x44]
- str r2, [r1, 0x40]
-_082DF8DA:
- bx lr
- thumb_func_end play_pend
-
- thumb_func_start ply_rept
-ply_rept: @ 82DF8DC
- push {lr}
- ldr r2, [r1, 0x40]
- ldrb r3, [r2]
- cmp r3, 0
- bne _082DF8EC
- adds r2, 0x1
- str r2, [r1, 0x40]
- b _082DF88E
-_082DF8EC:
- ldrb r3, [r1, 0x3]
- adds r3, 0x1
- strb r3, [r1, 0x3]
- mov r12, r3
- bl ld_r3_tp_adr_i
- cmp r12, r3
- bcs _082DF8FE
- b _082DF88E
-_082DF8FE:
- movs r3, 0
- strb r3, [r1, 0x3]
- adds r2, 0x5
- str r2, [r1, 0x40]
- pop {r0}
- bx r0
- thumb_func_end ply_rept
-
- thumb_func_start ply_prio
-ply_prio: @ 82DF90C
- mov r12, lr
- bl ld_r3_tp_adr_i
- strb r3, [r1, 0x1D]
- bx r12
- thumb_func_end ply_prio
-
- thumb_func_start ply_tempo
-ply_tempo: @ 82DF918
- mov r12, lr
- bl ld_r3_tp_adr_i
- lsls r3, 1
- strh r3, [r0, 0x1C]
- ldrh r2, [r0, 0x1E]
- muls r3, r2
- lsrs r3, 8
- strh r3, [r0, 0x20]
- bx r12
- thumb_func_end ply_tempo
-
- thumb_func_start ply_keysh
-ply_keysh: @ 82DF92C
- mov r12, lr
- bl ld_r3_tp_adr_i
- strb r3, [r1, 0xA]
- ldrb r3, [r1]
- movs r2, 0xC
- orrs r3, r2
- strb r3, [r1]
- bx r12
- thumb_func_end ply_keysh
-
- thumb_func_start ply_voice
-ply_voice: @ 82DF940
- mov r12, lr
- ldr r2, [r1, 0x40]
- ldrb r3, [r2]
- adds r2, 0x1
- str r2, [r1, 0x40]
- lsls r2, r3, 1
- adds r2, r3
- lsls r2, 2
- ldr r3, [r0, 0x30]
- adds r2, r3
- ldr r3, [r2]
- bl chk_adr_r2
- str r3, [r1, 0x24]
- ldr r3, [r2, 0x4]
- bl chk_adr_r2
- str r3, [r1, 0x28]
- ldr r3, [r2, 0x8]
- bl chk_adr_r2
- str r3, [r1, 0x2C]
- bx r12
- thumb_func_end ply_voice
-
- thumb_func_start ply_vol
-ply_vol: @ 82DF970
- mov r12, lr
- bl ld_r3_tp_adr_i
- strb r3, [r1, 0x12]
- ldrb r3, [r1]
- movs r2, 0x3
- orrs r3, r2
- strb r3, [r1]
- bx r12
- thumb_func_end ply_vol
-
- thumb_func_start ply_pan
-ply_pan: @ 82DF984
- mov r12, lr
- bl ld_r3_tp_adr_i
- subs r3, 0x40
- strb r3, [r1, 0x14]
- ldrb r3, [r1]
- movs r2, 0x3
- orrs r3, r2
- strb r3, [r1]
- bx r12
- thumb_func_end ply_pan
-
- thumb_func_start ply_bend
-ply_bend: @ 82DF998
- mov r12, lr
- bl ld_r3_tp_adr_i
- subs r3, 0x40
- strb r3, [r1, 0xE]
- ldrb r3, [r1]
- movs r2, 0xC
- orrs r3, r2
- strb r3, [r1]
- bx r12
- thumb_func_end ply_bend
-
- thumb_func_start ply_bendr
-ply_bendr: @ 82DF9AC
- mov r12, lr
- bl ld_r3_tp_adr_i
- strb r3, [r1, 0xF]
- ldrb r3, [r1]
- movs r2, 0xC
- orrs r3, r2
- strb r3, [r1]
- bx r12
- thumb_func_end ply_bendr
-
- thumb_func_start ply_lfodl
-ply_lfodl: @ 82DF9C0
- mov r12, lr
- bl ld_r3_tp_adr_i
- strb r3, [r1, 0x1B]
- bx r12
- thumb_func_end ply_lfodl
-
- thumb_func_start ply_modt
-ply_modt: @ 82DF9CC
- mov r12, lr
- bl ld_r3_tp_adr_i
- ldrb r0, [r1, 0x18]
- cmp r0, r3
- beq _082DF9E2
- strb r3, [r1, 0x18]
- ldrb r3, [r1]
- movs r2, 0xF
- orrs r3, r2
- strb r3, [r1]
-_082DF9E2:
- bx r12
- thumb_func_end ply_modt
-
- thumb_func_start ply_tune
-ply_tune: @ 82DF9E4
- mov r12, lr
- bl ld_r3_tp_adr_i
- subs r3, 0x40
- strb r3, [r1, 0xC]
- ldrb r3, [r1]
- movs r2, 0xC
- orrs r3, r2
- strb r3, [r1]
- bx r12
- thumb_func_end ply_tune
-
- thumb_func_start ply_port
-ply_port: @ 82DF9F8
- mov r12, lr
- ldr r2, [r1, 0x40]
- ldrb r3, [r2]
- adds r2, 0x1
- ldr r0, _082DFA0C
- adds r0, r3
- bl _082DF882
- strb r3, [r0]
- bx r12
- .align 2, 0
-_082DFA0C: .4byte 0x04000060
- thumb_func_end ply_port
-
- thumb_func_start SoundVSync_rev01
-SoundVSync_rev01: @ 82DFA10
- ldr r0, _082DFCBC
- ldr r0, [r0]
- ldr r2, _082DFCC0
- ldr r3, [r0]
- subs r3, r2
- cmp r3, 0x1
- bhi _082DFA50
- ldrb r1, [r0, 0x4]
- subs r1, 0x1
- strb r1, [r0, 0x4]
- bgt _082DFA50
- ldrb r1, [r0, 0xB]
- strb r1, [r0, 0x4]
- ldr r2, _082DFA54
- ldr r1, [r2, 0x8]
- lsls r1, 7
- bcc _082DFA36
- ldr r1, _082DFA58
- str r1, [r2, 0x8]
-_082DFA36:
- ldr r1, [r2, 0x14]
- lsls r1, 7
- bcc _082DFA40
- ldr r1, _082DFA58
- str r1, [r2, 0x14]
-_082DFA40:
- movs r1, 0x4
- lsls r1, 8
- strh r1, [r2, 0xA]
- strh r1, [r2, 0x16]
- movs r1, 0xB6
- lsls r1, 8
- strh r1, [r2, 0xA]
- strh r1, [r2, 0x16]
-_082DFA50:
- bx lr
- .align 2, 0
-_082DFA54: .4byte 0x040000bc
-_082DFA58: .4byte 0x84400004
- thumb_func_end SoundVSync_rev01
-
- thumb_func_start MPlayMain_rev01
-MPlayMain_rev01: @ 82DFA5C
- ldr r2, _082DFCC0
- ldr r3, [r0, 0x34]
- cmp r2, r3
- beq _082DFA66
- bx lr
-_082DFA66:
- adds r3, 0x1
- str r3, [r0, 0x34]
- push {r0,lr}
- ldr r3, [r0, 0x38]
- cmp r3, 0
- beq _082DFA78
- ldr r0, [r0, 0x3C]
- bl _082DFCB4
-_082DFA78:
- pop {r0}
- push {r4-r7}
- mov r4, r8
- mov r5, r9
- mov r6, r10
- mov r7, r11
- push {r4-r7}
- adds r7, r0, 0
- ldr r0, [r7, 0x4]
- cmp r0, 0
- bge _082DFA90
- b _082DFCA4
-_082DFA90:
- ldr r0, _082DFCBC
- ldr r0, [r0]
- mov r8, r0
- adds r0, r7, 0
- bl FadeOutBody_rev01
- ldr r0, [r7, 0x4]
- cmp r0, 0
- bge _082DFAA4
- b _082DFCA4
-_082DFAA4:
- ldrh r0, [r7, 0x22]
- ldrh r1, [r7, 0x20]
- adds r0, r1
- b _082DFBF4
-_082DFAAC:
- ldrb r6, [r7, 0x8]
- ldr r5, [r7, 0x2C]
- movs r3, 0x1
- movs r4, 0
-_082DFAB4:
- ldrb r0, [r5]
- movs r1, 0x80
- tst r1, r0
- bne _082DFABE
- b _082DFBD0
-_082DFABE:
- mov r10, r3
- orrs r4, r3
- mov r11, r4
- ldr r4, [r5, 0x20]
- cmp r4, 0
- beq _082DFAF2
-_082DFACA:
- ldrb r1, [r4]
- movs r0, 0xC7
- tst r0, r1
- beq _082DFAE6
- ldrb r0, [r4, 0x10]
- cmp r0, 0
- beq _082DFAEC
- subs r0, 0x1
- strb r0, [r4, 0x10]
- bne _082DFAEC
- movs r0, 0x40
- orrs r1, r0
- strb r1, [r4]
- b _082DFAEC
-_082DFAE6:
- adds r0, r4, 0
- bl ClearChain_rev
-_082DFAEC:
- ldr r4, [r4, 0x34]
- cmp r4, 0
- bne _082DFACA
-_082DFAF2:
- ldrb r3, [r5]
- movs r0, 0x40
- tst r0, r3
- beq _082DFB70
- adds r0, r5, 0
- bl Clear64byte_rev
- movs r0, 0x80
- strb r0, [r5]
- movs r0, 0x2
- strb r0, [r5, 0xF]
- movs r0, 0x40
- strb r0, [r5, 0x13]
- movs r0, 0x16
- strb r0, [r5, 0x19]
- movs r0, 0x1
- adds r1, r5, 0x6
- strb r0, [r1, 0x1E]
- b _082DFB70
-_082DFB18:
- ldr r2, [r5, 0x40]
- ldrb r1, [r2]
- cmp r1, 0x80
- bcs _082DFB24
- ldrb r1, [r5, 0x7]
- b _082DFB2E
-_082DFB24:
- adds r2, 0x1
- str r2, [r5, 0x40]
- cmp r1, 0xBD
- bcc _082DFB2E
- strb r1, [r5, 0x7]
-_082DFB2E:
- cmp r1, 0xCF
- bcc _082DFB44
- mov r0, r8
- ldr r3, [r0, 0x38]
- adds r0, r1, 0
- subs r0, 0xCF
- adds r1, r7, 0
- adds r2, r5, 0
- bl _082DFCB4
- b _082DFB70
-_082DFB44:
- cmp r1, 0xB0
- bls _082DFB66
- adds r0, r1, 0
- subs r0, 0xB1
- strb r0, [r7, 0xA]
- mov r3, r8
- ldr r3, [r3, 0x34]
- lsls r0, 2
- ldr r3, [r3, r0]
- adds r0, r7, 0
- adds r1, r5, 0
- bl _082DFCB4
- ldrb r0, [r5]
- cmp r0, 0
- beq _082DFBCC
- b _082DFB70
-_082DFB66:
- ldr r0, _082DFCB8
- subs r1, 0x80
- adds r1, r0
- ldrb r0, [r1]
- strb r0, [r5, 0x1]
-_082DFB70:
- ldrb r0, [r5, 0x1]
- cmp r0, 0
- beq _082DFB18
- subs r0, 0x1
- strb r0, [r5, 0x1]
- ldrb r1, [r5, 0x19]
- cmp r1, 0
- beq _082DFBCC
- ldrb r0, [r5, 0x17]
- cmp r0, 0
- beq _082DFBCC
- ldrb r0, [r5, 0x1C]
- cmp r0, 0
- beq _082DFB92
- subs r0, 0x1
- strb r0, [r5, 0x1C]
- b _082DFBCC
-_082DFB92:
- ldrb r0, [r5, 0x1A]
- adds r0, r1
- strb r0, [r5, 0x1A]
- adds r1, r0, 0
- subs r0, 0x40
- lsls r0, 24
- bpl _082DFBA6
- lsls r2, r1, 24
- asrs r2, 24
- b _082DFBAA
-_082DFBA6:
- movs r0, 0x80
- subs r2, r0, r1
-_082DFBAA:
- ldrb r0, [r5, 0x17]
- muls r0, r2
- asrs r2, r0, 6
- ldrb r0, [r5, 0x16]
- eors r0, r2
- lsls r0, 24
- beq _082DFBCC
- strb r2, [r5, 0x16]
- ldrb r0, [r5]
- ldrb r1, [r5, 0x18]
- cmp r1, 0
- bne _082DFBC6
- movs r1, 0xC
- b _082DFBC8
-_082DFBC6:
- movs r1, 0x3
-_082DFBC8:
- orrs r0, r1
- strb r0, [r5]
-_082DFBCC:
- mov r3, r10
- mov r4, r11
-_082DFBD0:
- subs r6, 0x1
- ble _082DFBDC
- movs r0, 0x50
- adds r5, r0
- lsls r3, 1
- b _082DFAB4
-_082DFBDC:
- ldr r0, [r7, 0xC]
- adds r0, 0x1
- str r0, [r7, 0xC]
- cmp r4, 0
- bne _082DFBEE
- movs r0, 0x80
- lsls r0, 24
- str r0, [r7, 0x4]
- b _082DFCA4
-_082DFBEE:
- str r4, [r7, 0x4]
- ldrh r0, [r7, 0x22]
- subs r0, 0x96
-_082DFBF4:
- strh r0, [r7, 0x22]
- cmp r0, 0x96
- bcc _082DFBFC
- b _082DFAAC
-_082DFBFC:
- ldrb r2, [r7, 0x8]
- ldr r5, [r7, 0x2C]
-_082DFC00:
- ldrb r0, [r5]
- movs r1, 0x80
- tst r1, r0
- beq _082DFC9A
- movs r1, 0xF
- tst r1, r0
- beq _082DFC9A
- mov r9, r2
- adds r0, r7, 0
- adds r1, r5, 0
- bl TrkVolPitSet_rev01
- ldr r4, [r5, 0x20]
- cmp r4, 0
- beq _082DFC90
-_082DFC1E:
- ldrb r1, [r4]
- movs r0, 0xC7
- tst r0, r1
- bne _082DFC2E
- adds r0, r4, 0
- bl ClearChain_rev
- b _082DFC8A
-_082DFC2E:
- ldrb r0, [r4, 0x1]
- movs r6, 0x7
- ands r6, r0
- ldrb r3, [r5]
- movs r0, 0x3
- tst r0, r3
- beq _082DFC4C
- bl ChnVolSetAsm
- cmp r6, 0
- beq _082DFC4C
- ldrb r0, [r4, 0x1D]
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r4, 0x1D]
-_082DFC4C:
- ldrb r3, [r5]
- movs r0, 0xC
- tst r0, r3
- beq _082DFC8A
- ldrb r1, [r4, 0x8]
- movs r0, 0x8
- ldrsb r0, [r5, r0]
- adds r2, r1, r0
- bpl _082DFC60
- movs r2, 0
-_082DFC60:
- cmp r6, 0
- beq _082DFC7E
- mov r0, r8
- ldr r3, [r0, 0x30]
- adds r1, r2, 0
- ldrb r2, [r5, 0x9]
- adds r0, r6, 0
- bl _082DFCB4
- str r0, [r4, 0x20]
- ldrb r0, [r4, 0x1D]
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r4, 0x1D]
- b _082DFC8A
-_082DFC7E:
- adds r1, r2, 0
- ldrb r2, [r5, 0x9]
- ldr r0, [r4, 0x24]
- bl MidiKey2fr
- str r0, [r4, 0x20]
-_082DFC8A:
- ldr r4, [r4, 0x34]
- cmp r4, 0
- bne _082DFC1E
-_082DFC90:
- ldrb r0, [r5]
- movs r1, 0xF0
- ands r0, r1
- strb r0, [r5]
- mov r2, r9
-_082DFC9A:
- subs r2, 0x1
- ble _082DFCA4
- movs r0, 0x50
- adds r5, r0
- bgt _082DFC00
-_082DFCA4:
- ldr r0, _082DFCC0
- str r0, [r7, 0x34]
- pop {r0-r7}
- mov r8, r0
- mov r9, r1
- mov r10, r2
- mov r11, r3
- pop {r3}
-_082DFCB4:
- bx r3
- .align 2, 0
-_082DFCB8: .4byte 0x08675c64
-_082DFCBC: .4byte 0x03007ff0
-_082DFCC0: .4byte 0x68736d53
- thumb_func_end MPlayMain_rev01
-
- thumb_func_start TrackStop_rev01
-TrackStop_rev01: @ 82DFCC4
- push {r4-r6,lr}
- adds r5, r1, 0
- ldrb r1, [r5]
- movs r0, 0x80
- tst r0, r1
- beq _082DFCFC
- ldr r4, [r5, 0x20]
- cmp r4, 0
- beq _082DFCFA
- movs r6, 0
-_082DFCD8:
- ldrb r0, [r4]
- cmp r0, 0
- beq _082DFCF2
- ldrb r0, [r4, 0x1]
- movs r3, 0x7
- ands r0, r3
- beq _082DFCF0
- ldr r3, _082DFD04
- ldr r3, [r3]
- ldr r3, [r3, 0x2C]
- bl _082DFCB4
-_082DFCF0:
- strb r6, [r4]
-_082DFCF2:
- str r6, [r4, 0x2C]
- ldr r4, [r4, 0x34]
- cmp r4, 0
- bne _082DFCD8
-_082DFCFA:
- str r4, [r5, 0x20]
-_082DFCFC:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_082DFD04: .4byte 0x03007ff0
- thumb_func_end TrackStop_rev01
-
- thumb_func_start ChnVolSetAsm
-ChnVolSetAsm: @ 82DFD08
- ldrb r1, [r4, 0x12]
- movs r0, 0x14
- ldrsb r2, [r4, r0]
- movs r3, 0x80
- adds r3, r2
- muls r3, r1
- ldrb r0, [r5, 0x10]
- muls r0, r3
- asrs r0, 14
- cmp r0, 0xFF
- bls _082DFD20
- movs r0, 0xFF
-_082DFD20:
- strb r0, [r4, 0x2]
- movs r3, 0x7F
- subs r3, r2
- muls r3, r1
- ldrb r0, [r5, 0x11]
- muls r0, r3
- asrs r0, 14
- cmp r0, 0xFF
- bls _082DFD34
- movs r0, 0xFF
-_082DFD34:
- strb r0, [r4, 0x3]
- bx lr
- thumb_func_end ChnVolSetAsm
-
- thumb_func_start ply_note_rev01
-ply_note_rev01: @ 82DFD38
- push {r4-r7,lr}
- mov r4, r8
- mov r5, r9
- mov r6, r10
- mov r7, r11
- push {r4-r7}
- sub sp, 0x18
- str r1, [sp]
- adds r5, r2, 0
- ldr r1, _082DFF34
- ldr r1, [r1]
- str r1, [sp, 0x4]
- ldr r1, _082DFF38
- adds r0, r1
- ldrb r0, [r0]
- strb r0, [r5, 0x4]
- ldr r3, [r5, 0x40]
- ldrb r0, [r3]
- cmp r0, 0x80
- bcs _082DFD7E
- strb r0, [r5, 0x5]
- adds r3, 0x1
- ldrb r0, [r3]
- cmp r0, 0x80
- bcs _082DFD7C
- strb r0, [r5, 0x6]
- adds r3, 0x1
- ldrb r0, [r3]
- cmp r0, 0x80
- bcs _082DFD7C
- ldrb r1, [r5, 0x4]
- adds r1, r0
- strb r1, [r5, 0x4]
- adds r3, 0x1
-_082DFD7C:
- str r3, [r5, 0x40]
-_082DFD7E:
- movs r0, 0
- str r0, [sp, 0x14]
- adds r4, r5, 0
- adds r4, 0x24
- ldrb r2, [r4]
- movs r0, 0xC0
- tst r0, r2
- beq _082DFDD0
- ldrb r3, [r5, 0x5]
- movs r0, 0x40
- tst r0, r2
- beq _082DFD9E
- ldr r1, [r5, 0x2C]
- adds r1, r3
- ldrb r0, [r1]
- b _082DFDA0
-_082DFD9E:
- adds r0, r3, 0
-_082DFDA0:
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- ldr r0, [r5, 0x28]
- adds r1, r0
- mov r9, r1
- mov r6, r9
- ldrb r1, [r6]
- movs r0, 0xC0
- tst r0, r1
- beq _082DFDB8
- b _082DFF22
-_082DFDB8:
- movs r0, 0x80
- tst r0, r2
- beq _082DFDD4
- ldrb r1, [r6, 0x3]
- movs r0, 0x80
- tst r0, r1
- beq _082DFDCC
- subs r1, 0xC0
- lsls r1, 1
- str r1, [sp, 0x14]
-_082DFDCC:
- ldrb r3, [r6, 0x1]
- b _082DFDD4
-_082DFDD0:
- mov r9, r4
- ldrb r3, [r5, 0x5]
-_082DFDD4:
- str r3, [sp, 0x8]
- ldr r6, [sp]
- ldrb r1, [r6, 0x9]
- ldrb r0, [r5, 0x1D]
- adds r0, r1
- cmp r0, 0xFF
- bls _082DFDE4
- movs r0, 0xFF
-_082DFDE4:
- str r0, [sp, 0x10]
- mov r6, r9
- ldrb r0, [r6]
- movs r6, 0x7
- ands r6, r0
- str r6, [sp, 0xC]
- beq _082DFE24
- ldr r0, [sp, 0x4]
- ldr r4, [r0, 0x1C]
- cmp r4, 0
- bne _082DFDFC
- b _082DFF22
-_082DFDFC:
- subs r6, 0x1
- lsls r0, r6, 6
- adds r4, r0
- ldrb r1, [r4]
- movs r0, 0xC7
- tst r0, r1
- beq _082DFE78
- movs r0, 0x40
- tst r0, r1
- bne _082DFE78
- ldrb r1, [r4, 0x13]
- ldr r0, [sp, 0x10]
- cmp r1, r0
- bcc _082DFE78
- beq _082DFE1C
- b _082DFF22
-_082DFE1C:
- ldr r0, [r4, 0x2C]
- cmp r0, r5
- bcs _082DFE78
- b _082DFF22
-_082DFE24:
- ldr r6, [sp, 0x10]
- adds r7, r5, 0
- movs r2, 0
- mov r8, r2
- ldr r4, [sp, 0x4]
- ldrb r3, [r4, 0x6]
- adds r4, 0x50
-_082DFE32:
- ldrb r1, [r4]
- movs r0, 0xC7
- tst r0, r1
- beq _082DFE78
- movs r0, 0x40
- tst r0, r1
- beq _082DFE4C
- cmp r2, 0
- bne _082DFE50
- adds r2, 0x1
- ldrb r6, [r4, 0x13]
- ldr r7, [r4, 0x2C]
- b _082DFE6A
-_082DFE4C:
- cmp r2, 0
- bne _082DFE6C
-_082DFE50:
- ldrb r0, [r4, 0x13]
- cmp r0, r6
- bcs _082DFE5C
- adds r6, r0, 0
- ldr r7, [r4, 0x2C]
- b _082DFE6A
-_082DFE5C:
- bhi _082DFE6C
- ldr r0, [r4, 0x2C]
- cmp r0, r7
- bls _082DFE68
- adds r7, r0, 0
- b _082DFE6A
-_082DFE68:
- bcc _082DFE6C
-_082DFE6A:
- mov r8, r4
-_082DFE6C:
- adds r4, 0x40
- subs r3, 0x1
- bgt _082DFE32
- mov r4, r8
- cmp r4, 0
- beq _082DFF22
-_082DFE78:
- adds r0, r4, 0
- bl ClearChain_rev
- movs r1, 0
- str r1, [r4, 0x30]
- ldr r3, [r5, 0x20]
- str r3, [r4, 0x34]
- cmp r3, 0
- beq _082DFE8C
- str r4, [r3, 0x30]
-_082DFE8C:
- str r4, [r5, 0x20]
- str r5, [r4, 0x2C]
- ldrb r0, [r5, 0x1B]
- strb r0, [r5, 0x1C]
- cmp r0, r1
- beq _082DFE9E
- adds r1, r5, 0
- bl clear_modM
-_082DFE9E:
- ldr r0, [sp]
- adds r1, r5, 0
- bl TrkVolPitSet_rev01
- ldr r0, [r5, 0x4]
- str r0, [r4, 0x10]
- ldr r0, [sp, 0x10]
- strb r0, [r4, 0x13]
- ldr r0, [sp, 0x8]
- strb r0, [r4, 0x8]
- ldr r0, [sp, 0x14]
- strb r0, [r4, 0x14]
- mov r6, r9
- ldrb r0, [r6]
- strb r0, [r4, 0x1]
- ldr r7, [r6, 0x4]
- str r7, [r4, 0x24]
- ldr r0, [r6, 0x8]
- str r0, [r4, 0x4]
- ldrh r0, [r5, 0x1E]
- strh r0, [r4, 0xC]
- bl ChnVolSetAsm
- ldrb r1, [r4, 0x8]
- movs r0, 0x8
- ldrsb r0, [r5, r0]
- adds r3, r1, r0
- bpl _082DFED8
- movs r3, 0
-_082DFED8:
- ldr r6, [sp, 0xC]
- cmp r6, 0
- beq _082DFF06
- mov r6, r9
- ldrb r0, [r6, 0x2]
- strb r0, [r4, 0x1E]
- ldrb r1, [r6, 0x3]
- movs r0, 0x80
- tst r0, r1
- bne _082DFEF2
- movs r0, 0x70
- tst r0, r1
- bne _082DFEF4
-_082DFEF2:
- movs r1, 0x8
-_082DFEF4:
- strb r1, [r4, 0x1F]
- ldrb r2, [r5, 0x9]
- adds r1, r3, 0
- ldr r0, [sp, 0xC]
- ldr r3, [sp, 0x4]
- ldr r3, [r3, 0x30]
- bl _082DFCB4
- b _082DFF14
-_082DFF06:
- ldr r0, [r5, 0x3C]
- str r0, [r4, 0x18]
- ldrb r2, [r5, 0x9]
- adds r1, r3, 0
- adds r0, r7, 0
- bl MidiKey2fr
-_082DFF14:
- str r0, [r4, 0x20]
- movs r0, 0x80
- strb r0, [r4]
- ldrb r1, [r5]
- movs r0, 0xF0
- ands r0, r1
- strb r0, [r5]
-_082DFF22:
- add sp, 0x18
- pop {r0-r7}
- mov r8, r0
- mov r9, r1
- mov r10, r2
- mov r11, r3
- pop {r0}
- bx r0
- .align 2, 0
-_082DFF34: .4byte 0x03007ff0
-_082DFF38: .4byte 0x08675c64
- thumb_func_end ply_note_rev01
-
- thumb_func_start ply_endtie_rev01
-ply_endtie_rev01: @ 82DFF3C
- push {r4,r5}
- ldr r2, [r1, 0x40]
- ldrb r3, [r2]
- cmp r3, 0x80
- bcs _082DFF4E
- strb r3, [r1, 0x5]
- adds r2, 0x1
- str r2, [r1, 0x40]
- b _082DFF50
-_082DFF4E:
- ldrb r3, [r1, 0x5]
-_082DFF50:
- ldr r1, [r1, 0x20]
- cmp r1, 0
- beq _082DFF78
- movs r4, 0x83
- movs r5, 0x40
-_082DFF5A:
- ldrb r2, [r1]
- tst r2, r4
- beq _082DFF72
- tst r2, r5
- bne _082DFF72
- ldrb r0, [r1, 0x11]
- cmp r0, r3
- bne _082DFF72
- movs r0, 0x40
- orrs r2, r0
- strb r2, [r1]
- b _082DFF78
-_082DFF72:
- ldr r1, [r1, 0x34]
- cmp r1, 0
- bne _082DFF5A
-_082DFF78:
- pop {r4,r5}
- bx lr
- thumb_func_end ply_endtie_rev01
-
- thumb_func_start clear_modM
-clear_modM: @ 82DFF7C
- movs r2, 0
- strb r2, [r1, 0x16]
- strb r2, [r1, 0x1A]
- ldrb r2, [r1, 0x18]
- cmp r2, 0
- bne _082DFF8C
- movs r2, 0xC
- b _082DFF8E
-_082DFF8C:
- movs r2, 0x3
-_082DFF8E:
- ldrb r3, [r1]
- orrs r3, r2
- strb r3, [r1]
- bx lr
- thumb_func_end clear_modM
-
- thumb_func_start ld_r3_tp_adr_i_rev
-ld_r3_tp_adr_i_rev: @ 82DFF98
- ldr r2, [r1, 0x40]
- adds r3, r2, 0x1
- str r3, [r1, 0x40]
- ldrb r3, [r2]
- bx lr
- thumb_func_end ld_r3_tp_adr_i_rev
-
- thumb_func_start ply_lfos_rev01
-ply_lfos_rev01: @ 82DFFA4
- mov r12, lr
- bl ld_r3_tp_adr_i_rev
- strb r3, [r1, 0x19]
- cmp r3, 0
- bne _082DFFB4
- bl clear_modM
-_082DFFB4:
- bx r12
- thumb_func_end ply_lfos_rev01
-
- thumb_func_start ply_mod_rev01
-ply_mod_rev01: @ 82DFFB8
- mov r12, lr
- bl ld_r3_tp_adr_i_rev
- strb r3, [r1, 0x17]
- cmp r3, 0
- bne _082DFFC8
- bl clear_modM
-_082DFFC8:
- bx r12
- thumb_func_end ply_mod_rev01
-
- thumb_func_start MidiKey2fr
-MidiKey2fr: @ 82DFFCC
- push {r4-r7,lr}
- mov r12, r0
- lsls r1, 24
- lsrs r6, r1, 24
- lsls r7, r2, 24
- cmp r6, 0xB2
- bls _082DFFE0
- movs r6, 0xB2
- movs r7, 0xFF
- lsls r7, 24
-_082DFFE0:
- ldr r3, _082E0028
- adds r0, r6, r3
- ldrb r5, [r0]
- ldr r4, _082E002C
- movs r2, 0xF
- adds r0, r5, 0
- ands r0, r2
- lsls r0, 2
- adds r0, r4
- lsrs r1, r5, 4
- ldr r5, [r0]
- lsrs r5, r1
- adds r0, r6, 0x1
- adds r0, r3
- ldrb r1, [r0]
- adds r0, r1, 0
- ands r0, r2
- lsls r0, 2
- adds r0, r4
- lsrs r1, 4
- ldr r0, [r0]
- lsrs r0, r1
- mov r1, r12
- ldr r4, [r1, 0x4]
- subs r0, r5
- adds r1, r7, 0
- bl umul3232H32
- adds r1, r0, 0
- adds r1, r5, r1
- adds r0, r4, 0
- bl umul3232H32
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_082E0028: .4byte 0x08675a80
-_082E002C: .4byte 0x08675b34
- thumb_func_end MidiKey2fr
-
- thumb_func_start DummyFunc
-DummyFunc: @ 82E0030
- bx lr
- thumb_func_end DummyFunc
-
- thumb_func_start MPlayContinue
-MPlayContinue: @ 82E0034
- adds r2, r0, 0
- ldr r3, [r2, 0x34]
- ldr r0, _082E0048
- cmp r3, r0
- bne _082E0046
- ldr r0, [r2, 0x4]
- ldr r1, _082E004C
- ands r0, r1
- str r0, [r2, 0x4]
-_082E0046:
- bx lr
- .align 2, 0
-_082E0048: .4byte 0x68736d53
-_082E004C: .4byte 0x7fffffff
- thumb_func_end MPlayContinue
-
- thumb_func_start MPlayFadeOut
-MPlayFadeOut: @ 82E0050
- adds r2, r0, 0
- lsls r1, 16
- lsrs r1, 16
- ldr r3, [r2, 0x34]
- ldr r0, _082E006C
- cmp r3, r0
- bne _082E0068
- strh r1, [r2, 0x26]
- strh r1, [r2, 0x24]
- movs r0, 0x80
- lsls r0, 1
- strh r0, [r2, 0x28]
-_082E0068:
- bx lr
- .align 2, 0
-_082E006C: .4byte 0x68736d53
- thumb_func_end MPlayFadeOut
-
- thumb_func_start m4aSoundInit
-m4aSoundInit: @ 82E0070
- push {r4-r6,lr}
- ldr r0, _082E00F0
- movs r1, 0x2
- negs r1, r1
- ands r0, r1
- ldr r1, _082E00F4
- ldr r2, _082E00F8
- bl CpuSet
- ldr r0, _082E00FC
- bl SoundInit_rev01
- ldr r0, _082E0100
- bl MPlayExtender
- ldr r0, _082E0104
- bl SoundMode_rev01
- ldr r0, _082E0108
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0
- beq _082E00BE
- ldr r6, _082E010C
- adds r5, r0, 0
-_082E00A2:
- ldr r4, [r6]
- ldr r1, [r6, 0x4]
- ldrb r2, [r6, 0x8]
- adds r0, r4, 0
- bl MPlayOpen_rev01
- ldrh r0, [r6, 0xA]
- strb r0, [r4, 0xB]
- ldr r0, _082E0110
- str r0, [r4, 0x18]
- adds r6, 0xC
- subs r5, 0x1
- cmp r5, 0
- bne _082E00A2
-_082E00BE:
- ldr r0, _082E0114
- ldr r1, _082E0118
- movs r2, 0x34
- bl memcpy
- movs r5, 0
- movs r6, 0
-_082E00CC:
- lsls r0, r5, 6
- ldr r1, _082E011C
- adds r0, r1
- ldr r4, _082E0120
- adds r4, r6, r4
- adds r1, r4, 0
- movs r2, 0x2
- bl MPlayOpen_rev01
- movs r0, 0
- str r0, [r4, 0x20]
- adds r6, 0xA0
- adds r5, 0x1
- cmp r5, 0x1
- ble _082E00CC
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_082E00F0: .4byte SoundMainRAM + 1
-_082E00F4: .4byte 0x03001aa8
-_082E00F8: .4byte 0x04000200
-_082E00FC: .4byte 0x03006380
-_082E0100: .4byte 0x030074f0
-_082E0104: .4byte 0x0094c500
-_082E0108: .4byte 0x00000004
-_082E010C: .4byte 0x086b49c0
-_082E0110: .4byte 0x030077f0
-_082E0114: .4byte 0x030077b0
-_082E0118: .4byte 0x08675c98
-_082E011C: .4byte 0x030073a0
-_082E0120: .4byte 0x03007670
- thumb_func_end m4aSoundInit
-
- thumb_func_start m4aSoundMain
-m4aSoundMain: @ 82E0124
- push {lr}
- bl SoundMain
- pop {r0}
- bx r0
- thumb_func_end m4aSoundMain
-
- thumb_func_start m4aSongNumStart
-m4aSongNumStart: @ 82E0130
- push {lr}
- lsls r0, 16
- ldr r2, _082E0154
- ldr r1, _082E0158
- lsrs r0, 13
- adds r0, r1
- ldrh r3, [r0, 0x4]
- lsls r1, r3, 1
- adds r1, r3
- lsls r1, 2
- adds r1, r2
- ldr r2, [r1]
- ldr r1, [r0]
- adds r0, r2, 0
- bl MPlayStart_rev01
- pop {r0}
- bx r0
- .align 2, 0
-_082E0154: .4byte 0x086b49c0
-_082E0158: .4byte 0x086b49f0
- thumb_func_end m4aSongNumStart
-
- thumb_func_start m4aSongNumStartOrChange
-m4aSongNumStartOrChange: @ 82E015C
- push {lr}
- lsls r0, 16
- ldr r2, _082E0188
- ldr r1, _082E018C
- lsrs r0, 13
- adds r0, r1
- ldrh r3, [r0, 0x4]
- lsls r1, r3, 1
- adds r1, r3
- lsls r1, 2
- adds r1, r2
- ldr r1, [r1]
- ldr r3, [r1]
- ldr r2, [r0]
- cmp r3, r2
- beq _082E0190
- adds r0, r1, 0
- adds r1, r2, 0
- bl MPlayStart_rev01
- b _082E01A4
- .align 2, 0
-_082E0188: .4byte 0x086b49c0
-_082E018C: .4byte 0x086b49f0
-_082E0190:
- ldr r2, [r1, 0x4]
- ldrh r0, [r1, 0x4]
- cmp r0, 0
- beq _082E019C
- cmp r2, 0
- bge _082E01A4
-_082E019C:
- adds r0, r1, 0
- adds r1, r3, 0
- bl MPlayStart_rev01
-_082E01A4:
- pop {r0}
- bx r0
- thumb_func_end m4aSongNumStartOrChange
-
- thumb_func_start m4aSongNumStartOrContinue
-m4aSongNumStartOrContinue: @ 82E01A8
- push {lr}
- lsls r0, 16
- ldr r2, _082E01D4
- ldr r1, _082E01D8
- lsrs r0, 13
- adds r0, r1
- ldrh r3, [r0, 0x4]
- lsls r1, r3, 1
- adds r1, r3
- lsls r1, 2
- adds r1, r2
- ldr r1, [r1]
- ldr r3, [r1]
- ldr r2, [r0]
- cmp r3, r2
- beq _082E01DC
- adds r0, r1, 0
- adds r1, r2, 0
- bl MPlayStart_rev01
- b _082E01F8
- .align 2, 0
-_082E01D4: .4byte 0x086b49c0
-_082E01D8: .4byte 0x086b49f0
-_082E01DC:
- ldr r2, [r1, 0x4]
- ldrh r0, [r1, 0x4]
- cmp r0, 0
- bne _082E01EE
- adds r0, r1, 0
- adds r1, r3, 0
- bl MPlayStart_rev01
- b _082E01F8
-_082E01EE:
- cmp r2, 0
- bge _082E01F8
- adds r0, r1, 0
- bl MPlayContinue
-_082E01F8:
- pop {r0}
- bx r0
- thumb_func_end m4aSongNumStartOrContinue
-
- thumb_func_start m4aSongNumStop
-m4aSongNumStop: @ 82E01FC
- push {lr}
- lsls r0, 16
- ldr r2, _082E0228
- ldr r1, _082E022C
- lsrs r0, 13
- adds r0, r1
- ldrh r3, [r0, 0x4]
- lsls r1, r3, 1
- adds r1, r3
- lsls r1, 2
- adds r1, r2
- ldr r2, [r1]
- ldr r1, [r2]
- ldr r0, [r0]
- cmp r1, r0
- bne _082E0222
- adds r0, r2, 0
- bl MPlayStop_rev01
-_082E0222:
- pop {r0}
- bx r0
- .align 2, 0
-_082E0228: .4byte 0x086b49c0
-_082E022C: .4byte 0x086b49f0
- thumb_func_end m4aSongNumStop
-
- thumb_func_start m4aSongNumContinue
-m4aSongNumContinue: @ 82E0230
- push {lr}
- lsls r0, 16
- ldr r2, _082E025C
- ldr r1, _082E0260
- lsrs r0, 13
- adds r0, r1
- ldrh r3, [r0, 0x4]
- lsls r1, r3, 1
- adds r1, r3
- lsls r1, 2
- adds r1, r2
- ldr r2, [r1]
- ldr r1, [r2]
- ldr r0, [r0]
- cmp r1, r0
- bne _082E0256
- adds r0, r2, 0
- bl MPlayContinue
-_082E0256:
- pop {r0}
- bx r0
- .align 2, 0
-_082E025C: .4byte 0x086b49c0
-_082E0260: .4byte 0x086b49f0
- thumb_func_end m4aSongNumContinue
-
- thumb_func_start m4aMPlayAllStop
-m4aMPlayAllStop: @ 82E0264
- push {r4,r5,lr}
- ldr r0, _082E029C
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0
- beq _082E0282
- ldr r5, _082E02A0
- adds r4, r0, 0
-_082E0274:
- ldr r0, [r5]
- bl MPlayStop_rev01
- adds r5, 0xC
- subs r4, 0x1
- cmp r4, 0
- bne _082E0274
-_082E0282:
- ldr r5, _082E02A4
- movs r4, 0x1
-_082E0286:
- adds r0, r5, 0
- bl MPlayStop_rev01
- adds r5, 0x40
- subs r4, 0x1
- cmp r4, 0
- bge _082E0286
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_082E029C: .4byte 0x00000004
-_082E02A0: .4byte 0x086b49c0
-_082E02A4: .4byte 0x030073a0
- thumb_func_end m4aMPlayAllStop
-
- thumb_func_start m4aMPlayContinue
-m4aMPlayContinue: @ 82E02A8
- push {lr}
- bl MPlayContinue
- pop {r0}
- bx r0
- thumb_func_end m4aMPlayContinue
-
- thumb_func_start m4aMPlayAllContinue
-m4aMPlayAllContinue: @ 82E02B2
- push {r4,r5,lr}
- ldr r0, _082E02EC
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0
- beq _082E02D2
- ldr r5, _082E02F0
- adds r4, r0, 0
-_082E02C4:
- ldr r0, [r5]
- bl MPlayContinue
- adds r5, 0xC
- subs r4, 0x1
- cmp r4, 0
- bne _082E02C4
-_082E02D2:
- ldr r5, _082E02F4
- movs r4, 0x1
-_082E02D6:
- adds r0, r5, 0
- bl MPlayContinue
- adds r5, 0x40
- subs r4, 0x1
- cmp r4, 0
- bge _082E02D6
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_082E02EC: .4byte 0x00000004
-_082E02F0: .4byte 0x086b49c0
-_082E02F4: .4byte 0x030073a0
- thumb_func_end m4aMPlayAllContinue
-
- thumb_func_start m4aMPlayFadeOut
-m4aMPlayFadeOut: @ 82E02F8
- push {lr}
- lsls r1, 16
- lsrs r1, 16
- bl MPlayFadeOut
- pop {r0}
- bx r0
- thumb_func_end m4aMPlayFadeOut
-
- thumb_func_start sub_82E0308
-sub_82E0308: @ 82E0308
- adds r2, r0, 0
- lsls r1, 16
- lsrs r1, 16
- ldr r3, [r2, 0x34]
- ldr r0, _082E0320
- cmp r3, r0
- bne _082E031E
- strh r1, [r2, 0x26]
- strh r1, [r2, 0x24]
- ldr r0, _082E0324
- strh r0, [r2, 0x28]
-_082E031E:
- bx lr
- .align 2, 0
-_082E0320: .4byte 0x68736d53
-_082E0324: .4byte 0x00000101
- thumb_func_end sub_82E0308
-
- thumb_func_start sub_82E0328
-sub_82E0328: @ 82E0328
- adds r2, r0, 0
- lsls r1, 16
- lsrs r1, 16
- ldr r3, [r2, 0x34]
- ldr r0, _082E0348
- cmp r3, r0
- bne _082E0346
- strh r1, [r2, 0x26]
- strh r1, [r2, 0x24]
- movs r0, 0x2
- strh r0, [r2, 0x28]
- ldr r0, [r2, 0x4]
- ldr r1, _082E034C
- ands r0, r1
- str r0, [r2, 0x4]
-_082E0346:
- bx lr
- .align 2, 0
-_082E0348: .4byte 0x68736d53
-_082E034C: .4byte 0x7fffffff
- thumb_func_end sub_82E0328
-
- thumb_func_start m4aMPlayImmInit
-m4aMPlayImmInit: @ 82E0350
- push {r4-r7,lr}
- ldrb r5, [r0, 0x8]
- ldr r4, [r0, 0x2C]
- cmp r5, 0
- ble _082E0392
- movs r7, 0x80
-_082E035C:
- ldrb r1, [r4]
- adds r0, r7, 0
- ands r0, r1
- cmp r0, 0
- beq _082E038A
- movs r6, 0x40
- adds r0, r6, 0
- ands r0, r1
- cmp r0, 0
- beq _082E038A
- adds r0, r4, 0
- bl Clear64byte_rev
- strb r7, [r4]
- movs r0, 0x2
- strb r0, [r4, 0xF]
- strb r6, [r4, 0x13]
- movs r0, 0x16
- strb r0, [r4, 0x19]
- adds r1, r4, 0
- adds r1, 0x24
- movs r0, 0x1
- strb r0, [r1]
-_082E038A:
- subs r5, 0x1
- adds r4, 0x50
- cmp r5, 0
- bgt _082E035C
-_082E0392:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end m4aMPlayImmInit
-
- thumb_func_start MPlayExtender
-MPlayExtender: @ 82E0398
- push {r4-r6,lr}
- sub sp, 0x4
- adds r5, r0, 0
- ldr r1, _082E0460
- movs r0, 0x8F
- strh r0, [r1]
- ldr r3, _082E0464
- movs r2, 0
- strh r2, [r3]
- ldr r0, _082E0468
- movs r1, 0x8
- strb r1, [r0]
- adds r0, 0x6
- strb r1, [r0]
- adds r0, 0x10
- strb r1, [r0]
- subs r0, 0x14
- movs r1, 0x80
- strb r1, [r0]
- adds r0, 0x8
- strb r1, [r0]
- adds r0, 0x10
- strb r1, [r0]
- subs r0, 0xD
- strb r2, [r0]
- movs r0, 0x77
- strb r0, [r3]
- ldr r0, _082E046C
- ldr r4, [r0]
- ldr r6, [r4]
- ldr r0, _082E0470
- cmp r6, r0
- bne _082E0458
- adds r0, r6, 0x1
- str r0, [r4]
- ldr r1, _082E0474
- ldr r0, _082E0478
- str r0, [r1, 0x20]
- ldr r0, _082E047C
- str r0, [r1, 0x44]
- ldr r0, _082E0480
- str r0, [r1, 0x4C]
- ldr r0, _082E0484
- str r0, [r1, 0x70]
- ldr r0, _082E0488
- str r0, [r1, 0x74]
- ldr r0, _082E048C
- str r0, [r1, 0x78]
- ldr r0, _082E0490
- str r0, [r1, 0x7C]
- adds r2, r1, 0
- adds r2, 0x80
- ldr r0, _082E0494
- str r0, [r2]
- adds r1, 0x84
- ldr r0, _082E0498
- str r0, [r1]
- str r5, [r4, 0x1C]
- ldr r0, _082E049C
- str r0, [r4, 0x28]
- ldr r0, _082E04A0
- str r0, [r4, 0x2C]
- ldr r0, _082E04A4
- str r0, [r4, 0x30]
- ldr r0, _082E04A8
- movs r1, 0
- strb r0, [r4, 0xC]
- str r1, [sp]
- ldr r2, _082E04AC
- mov r0, sp
- adds r1, r5, 0
- bl CpuSet
- movs r0, 0x1
- strb r0, [r5, 0x1]
- movs r0, 0x11
- strb r0, [r5, 0x1C]
- adds r1, r5, 0
- adds r1, 0x41
- movs r0, 0x2
- strb r0, [r1]
- adds r1, 0x1B
- movs r0, 0x22
- strb r0, [r1]
- adds r1, 0x25
- movs r0, 0x3
- strb r0, [r1]
- adds r1, 0x1B
- movs r0, 0x44
- strb r0, [r1]
- adds r1, 0x24
- movs r0, 0x4
- strb r0, [r1, 0x1]
- movs r0, 0x88
- strb r0, [r1, 0x1C]
- str r6, [r4]
-_082E0458:
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_082E0460: .4byte 0x04000084
-_082E0464: .4byte 0x04000080
-_082E0468: .4byte 0x04000063
-_082E046C: .4byte 0x03007ff0
-_082E0470: .4byte 0x68736d53
-_082E0474: .4byte 0x03007460
-_082E0478: .4byte ply_memacc + 1
-_082E047C: .4byte ply_lfos_rev01 + 1
-_082E0480: .4byte ply_mod_rev01 + 1
-_082E0484: .4byte ply_xcmd + 1
-_082E0488: .4byte ply_endtie_rev01 + 1
-_082E048C: .4byte SampFreqSet_rev01 + 1
-_082E0490: .4byte TrackStop_rev01 + 1
-_082E0494: .4byte FadeOutBody_rev01 + 1
-_082E0498: .4byte TrkVolPitSet_rev01 + 1
-_082E049C: .4byte CgbSound + 1
-_082E04A0: .4byte CgbOscOff + 1
-_082E04A4: .4byte MidiKey2CgbFr + 1
-_082E04A8: .4byte 0x00000000
-_082E04AC: .4byte 0x05000040
- thumb_func_end MPlayExtender
-
- thumb_func_start MusicPlayerJumpTableCopy
-MusicPlayerJumpTableCopy: @ 82E04B0
- swi 0x2A
- bx lr
- thumb_func_end MusicPlayerJumpTableCopy
-
- thumb_func_start ClearChain_rev
-ClearChain_rev: @ 82E04B4
- push {lr}
- ldr r1, _082E04C4
- ldr r1, [r1]
- bl _call_via_r1
- pop {r0}
- bx r0
- .align 2, 0
-_082E04C4: .4byte 0x030074e8
- thumb_func_end ClearChain_rev
-
- thumb_func_start Clear64byte_rev
-Clear64byte_rev: @ 82E04C8
- push {lr}
- ldr r1, _082E04D8
- ldr r1, [r1]
- bl _call_via_r1
- pop {r0}
- bx r0
- .align 2, 0
-_082E04D8: .4byte 0x030074ec
- thumb_func_end Clear64byte_rev
-
- thumb_func_start SoundInit_rev01
-SoundInit_rev01: @ 82E04DC
- push {r4,r5,lr}
- sub sp, 0x4
- adds r5, r0, 0
- movs r3, 0
- str r3, [r5]
- ldr r1, _082E0594
- ldr r0, [r1]
- movs r2, 0x80
- lsls r2, 18
- ands r0, r2
- cmp r0, 0
- beq _082E04F8
- ldr r0, _082E0598
- str r0, [r1]
-_082E04F8:
- ldr r1, _082E059C
- ldr r0, [r1]
- ands r0, r2
- cmp r0, 0
- beq _082E0506
- ldr r0, _082E0598
- str r0, [r1]
-_082E0506:
- ldr r0, _082E05A0
- movs r2, 0x80
- lsls r2, 3
- adds r1, r2, 0
- strh r1, [r0]
- adds r0, 0xC
- strh r1, [r0]
- ldr r1, _082E05A4
- movs r0, 0x8F
- strh r0, [r1]
- subs r1, 0x2
- ldr r2, _082E05A8
- adds r0, r2, 0
- strh r0, [r1]
- ldr r2, _082E05AC
- ldrb r1, [r2]
- movs r0, 0x3F
- ands r0, r1
- movs r1, 0x40
- orrs r0, r1
- strb r0, [r2]
- ldr r1, _082E05B0
- movs r2, 0xD4
- lsls r2, 2
- adds r0, r5, r2
- str r0, [r1]
- adds r1, 0x4
- ldr r0, _082E05B4
- str r0, [r1]
- adds r1, 0x8
- movs r2, 0x98
- lsls r2, 4
- adds r0, r5, r2
- str r0, [r1]
- adds r1, 0x4
- ldr r0, _082E05B8
- str r0, [r1]
- ldr r0, _082E05BC
- str r5, [r0]
- str r3, [sp]
- ldr r2, _082E05C0
- mov r0, sp
- adds r1, r5, 0
- bl CpuSet
- movs r0, 0x8
- strb r0, [r5, 0x6]
- movs r0, 0xF
- strb r0, [r5, 0x7]
- ldr r0, _082E05C4
- str r0, [r5, 0x38]
- ldr r0, _082E05C8
- str r0, [r5, 0x28]
- str r0, [r5, 0x2C]
- str r0, [r5, 0x30]
- str r0, [r5, 0x3C]
- ldr r4, _082E05CC
- adds r0, r4, 0
- bl MPlyJmpTblCopy
- str r4, [r5, 0x34]
- movs r0, 0x80
- lsls r0, 11
- bl SampFreqSet_rev01
- ldr r0, _082E05D0
- str r0, [r5]
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_082E0594: .4byte 0x040000c4
-_082E0598: .4byte 0x84400004
-_082E059C: .4byte 0x040000d0
-_082E05A0: .4byte 0x040000c6
-_082E05A4: .4byte 0x04000084
-_082E05A8: .4byte 0x0000a90e
-_082E05AC: .4byte 0x04000089
-_082E05B0: .4byte 0x040000bc
-_082E05B4: .4byte 0x040000a0
-_082E05B8: .4byte 0x040000a4
-_082E05BC: .4byte 0x03007ff0
-_082E05C0: .4byte 0x050003ec
-_082E05C4: .4byte ply_note_rev01 + 1
-_082E05C8: .4byte DummyFunc_rev + 1
-_082E05CC: .4byte 0x03007460
-_082E05D0: .4byte 0x68736d53
- thumb_func_end SoundInit_rev01
-
- thumb_func_start SampFreqSet_rev01
-SampFreqSet_rev01: @ 82E05D4
- push {r4-r6,lr}
- adds r2, r0, 0
- ldr r0, _082E0654
- ldr r4, [r0]
- movs r0, 0xF0
- lsls r0, 12
- ands r0, r2
- lsrs r2, r0, 16
- movs r6, 0
- strb r2, [r4, 0x8]
- ldr r1, _082E0658
- subs r0, r2, 0x1
- lsls r0, 1
- adds r0, r1
- ldrh r5, [r0]
- str r5, [r4, 0x10]
- movs r0, 0xC6
- lsls r0, 3
- adds r1, r5, 0
- bl __divsi3
- strb r0, [r4, 0xB]
- ldr r0, _082E065C
- muls r0, r5
- ldr r1, _082E0660
- adds r0, r1
- ldr r1, _082E0664
- bl __divsi3
- adds r1, r0, 0
- str r1, [r4, 0x14]
- movs r0, 0x80
- lsls r0, 17
- bl __divsi3
- adds r0, 0x1
- asrs r0, 1
- str r0, [r4, 0x18]
- ldr r0, _082E0668
- strh r6, [r0]
- ldr r4, _082E066C
- ldr r0, _082E0670
- adds r1, r5, 0
- bl __divsi3
- negs r0, r0
- strh r0, [r4]
- bl SoundVSyncOn_rev01
- ldr r1, _082E0674
-_082E0638:
- ldrb r0, [r1]
- cmp r0, 0x9F
- beq _082E0638
- ldr r1, _082E0674
-_082E0640:
- ldrb r0, [r1]
- cmp r0, 0x9F
- bne _082E0640
- ldr r1, _082E0668
- movs r0, 0x80
- strh r0, [r1]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_082E0654: .4byte 0x03007ff0
-_082E0658: .4byte 0x08675b64
-_082E065C: .4byte 0x00091d1b
-_082E0660: .4byte 0x00001388
-_082E0664: .4byte 0x00002710
-_082E0668: .4byte 0x04000102
-_082E066C: .4byte 0x04000100
-_082E0670: .4byte 0x00044940
-_082E0674: .4byte 0x04000006
- thumb_func_end SampFreqSet_rev01
-
- thumb_func_start SoundMode_rev01
-SoundMode_rev01: @ 82E0678
- push {r4,r5,lr}
- adds r3, r0, 0
- ldr r0, _082E0704
- ldr r5, [r0]
- ldr r1, [r5]
- ldr r0, _082E0708
- cmp r1, r0
- bne _082E06FE
- adds r0, r1, 0x1
- str r0, [r5]
- movs r4, 0xFF
- ands r4, r3
- cmp r4, 0
- beq _082E069A
- movs r0, 0x7F
- ands r4, r0
- strb r4, [r5, 0x5]
-_082E069A:
- movs r4, 0xF0
- lsls r4, 4
- ands r4, r3
- cmp r4, 0
- beq _082E06BA
- lsrs r0, r4, 8
- strb r0, [r5, 0x6]
- movs r4, 0xC
- adds r0, r5, 0
- adds r0, 0x50
- movs r1, 0
-_082E06B0:
- strb r1, [r0]
- subs r4, 0x1
- adds r0, 0x40
- cmp r4, 0
- bne _082E06B0
-_082E06BA:
- movs r4, 0xF0
- lsls r4, 8
- ands r4, r3
- cmp r4, 0
- beq _082E06C8
- lsrs r0, r4, 12
- strb r0, [r5, 0x7]
-_082E06C8:
- movs r4, 0xB0
- lsls r4, 16
- ands r4, r3
- cmp r4, 0
- beq _082E06E6
- movs r0, 0xC0
- lsls r0, 14
- ands r0, r4
- lsrs r4, r0, 14
- ldr r2, _082E070C
- ldrb r1, [r2]
- movs r0, 0x3F
- ands r0, r1
- orrs r0, r4
- strb r0, [r2]
-_082E06E6:
- movs r4, 0xF0
- lsls r4, 12
- ands r4, r3
- cmp r4, 0
- beq _082E06FA
- bl SoundVSyncOff_rev01
- adds r0, r4, 0
- bl SampFreqSet_rev01
-_082E06FA:
- ldr r0, _082E0708
- str r0, [r5]
-_082E06FE:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_082E0704: .4byte 0x03007ff0
-_082E0708: .4byte 0x68736d53
-_082E070C: .4byte 0x04000089
- thumb_func_end SoundMode_rev01
-
- thumb_func_start SoundClear_rev01
-SoundClear_rev01: @ 82E0710
- push {r4-r7,lr}
- ldr r0, _082E075C
- ldr r6, [r0]
- ldr r1, [r6]
- ldr r0, _082E0760
- cmp r1, r0
- bne _082E0756
- adds r0, r1, 0x1
- str r0, [r6]
- movs r5, 0xC
- adds r4, r6, 0
- adds r4, 0x50
- movs r0, 0
-_082E072A:
- strb r0, [r4]
- subs r5, 0x1
- adds r4, 0x40
- cmp r5, 0
- bgt _082E072A
- ldr r4, [r6, 0x1C]
- cmp r4, 0
- beq _082E0752
- movs r5, 0x1
- movs r7, 0
-_082E073E:
- lsls r0, r5, 24
- lsrs r0, 24
- ldr r1, [r6, 0x2C]
- bl _call_via_r1
- strb r7, [r4]
- adds r5, 0x1
- adds r4, 0x40
- cmp r5, 0x4
- ble _082E073E
-_082E0752:
- ldr r0, _082E0760
- str r0, [r6]
-_082E0756:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_082E075C: .4byte 0x03007ff0
-_082E0760: .4byte 0x68736d53
- thumb_func_end SoundClear_rev01
-
- thumb_func_start SoundVSyncOff_rev01
-SoundVSyncOff_rev01: @ 82E0764
- push {lr}
- sub sp, 0x4
- ldr r0, _082E07C4
- ldr r2, [r0]
- ldr r1, [r2]
- ldr r3, _082E07C8
- adds r0, r1, r3
- cmp r0, 0x1
- bhi _082E07BC
- adds r0, r1, 0
- adds r0, 0xA
- str r0, [r2]
- ldr r1, _082E07CC
- ldr r0, [r1]
- movs r3, 0x80
- lsls r3, 18
- ands r0, r3
- cmp r0, 0
- beq _082E078E
- ldr r0, _082E07D0
- str r0, [r1]
-_082E078E:
- ldr r1, _082E07D4
- ldr r0, [r1]
- ands r0, r3
- cmp r0, 0
- beq _082E079C
- ldr r0, _082E07D0
- str r0, [r1]
-_082E079C:
- ldr r0, _082E07D8
- movs r3, 0x80
- lsls r3, 3
- adds r1, r3, 0
- strh r1, [r0]
- adds r0, 0xC
- strh r1, [r0]
- movs r0, 0
- str r0, [sp]
- movs r0, 0xD4
- lsls r0, 2
- adds r1, r2, r0
- ldr r2, _082E07DC
- mov r0, sp
- bl CpuSet
-_082E07BC:
- add sp, 0x4
- pop {r0}
- bx r0
- .align 2, 0
-_082E07C4: .4byte 0x03007ff0
-_082E07C8: .4byte 0x978c92ad
-_082E07CC: .4byte 0x040000c4
-_082E07D0: .4byte 0x84400004
-_082E07D4: .4byte 0x040000d0
-_082E07D8: .4byte 0x040000c6
-_082E07DC: .4byte 0x05000318
- thumb_func_end SoundVSyncOff_rev01
-
- thumb_func_start SoundVSyncOn_rev01
-SoundVSyncOn_rev01: @ 82E07E0
- push {r4,lr}
- ldr r0, _082E0810
- ldr r2, [r0]
- ldr r3, [r2]
- ldr r0, _082E0814
- cmp r3, r0
- beq _082E0808
- ldr r0, _082E0818
- movs r4, 0xB6
- lsls r4, 8
- adds r1, r4, 0
- strh r1, [r0]
- adds r0, 0xC
- strh r1, [r0]
- ldrb r0, [r2, 0x4]
- movs r0, 0
- strb r0, [r2, 0x4]
- adds r0, r3, 0
- subs r0, 0xA
- str r0, [r2]
-_082E0808:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_082E0810: .4byte 0x03007ff0
-_082E0814: .4byte 0x68736d53
-_082E0818: .4byte 0x040000c6
- thumb_func_end SoundVSyncOn_rev01
-
- thumb_func_start MPlayOpen_rev01
-MPlayOpen_rev01: @ 82E081C
- push {r4-r7,lr}
- adds r7, r0, 0
- adds r6, r1, 0
- lsls r2, 24
- lsrs r4, r2, 24
- cmp r4, 0
- beq _082E0880
- cmp r4, 0x10
- bls _082E0830
- movs r4, 0x10
-_082E0830:
- ldr r0, _082E0888
- ldr r5, [r0]
- ldr r1, [r5]
- ldr r0, _082E088C
- cmp r1, r0
- bne _082E0880
- adds r0, r1, 0x1
- str r0, [r5]
- adds r0, r7, 0
- bl Clear64byte_rev
- str r6, [r7, 0x2C]
- strb r4, [r7, 0x8]
- movs r0, 0x80
- lsls r0, 24
- str r0, [r7, 0x4]
- cmp r4, 0
- beq _082E0864
- movs r1, 0
-_082E0856:
- strb r1, [r6]
- subs r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- adds r6, 0x50
- cmp r4, 0
- bne _082E0856
-_082E0864:
- ldr r0, [r5, 0x20]
- cmp r0, 0
- beq _082E0874
- str r0, [r7, 0x38]
- ldr r0, [r5, 0x24]
- str r0, [r7, 0x3C]
- movs r0, 0
- str r0, [r5, 0x20]
-_082E0874:
- str r7, [r5, 0x24]
- ldr r0, _082E0890
- str r0, [r5, 0x20]
- ldr r0, _082E088C
- str r0, [r5]
- str r0, [r7, 0x34]
-_082E0880:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_082E0888: .4byte 0x03007ff0
-_082E088C: .4byte 0x68736d53
-_082E0890: .4byte MPlayMain_rev01 + 1
- thumb_func_end MPlayOpen_rev01
-
- thumb_func_start MPlayStart_rev01
-MPlayStart_rev01: @ 82E0894
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r5, r0, 0
- adds r7, r1, 0
- ldr r1, [r5, 0x34]
- ldr r0, _082E0974
- cmp r1, r0
- bne _082E096A
- ldrb r0, [r5, 0xB]
- ldrb r2, [r7, 0x2]
- cmp r0, 0
- beq _082E08D6
- ldr r0, [r5]
- cmp r0, 0
- beq _082E08C0
- ldr r1, [r5, 0x2C]
- movs r0, 0x40
- ldrb r1, [r1]
- ands r0, r1
- cmp r0, 0
- bne _082E08CC
-_082E08C0:
- ldr r1, [r5, 0x4]
- ldrh r0, [r5, 0x4]
- cmp r0, 0
- beq _082E08D6
- cmp r1, 0
- blt _082E08D6
-_082E08CC:
- ldrb r0, [r7, 0x2]
- adds r2, r0, 0
- ldrb r0, [r5, 0x9]
- cmp r0, r2
- bhi _082E096A
-_082E08D6:
- ldr r0, [r5, 0x34]
- adds r0, 0x1
- str r0, [r5, 0x34]
- movs r1, 0
- str r1, [r5, 0x4]
- str r7, [r5]
- ldr r0, [r7, 0x4]
- str r0, [r5, 0x30]
- strb r2, [r5, 0x9]
- str r1, [r5, 0xC]
- movs r0, 0x96
- strh r0, [r5, 0x1C]
- strh r0, [r5, 0x20]
- adds r0, 0x6A
- strh r0, [r5, 0x1E]
- strh r1, [r5, 0x22]
- strh r1, [r5, 0x24]
- movs r6, 0
- ldr r4, [r5, 0x2C]
- ldrb r1, [r7]
- cmp r6, r1
- bge _082E0936
- ldrb r0, [r5, 0x8]
- cmp r6, r0
- bge _082E0956
- mov r8, r6
-_082E090A:
- adds r0, r5, 0
- adds r1, r4, 0
- bl TrackStop_rev01
- movs r0, 0xC0
- strb r0, [r4]
- mov r1, r8
- str r1, [r4, 0x20]
- lsls r1, r6, 2
- adds r0, r7, 0
- adds r0, 0x8
- adds r0, r1
- ldr r0, [r0]
- str r0, [r4, 0x40]
- adds r6, 0x1
- adds r4, 0x50
- ldrb r0, [r7]
- cmp r6, r0
- bge _082E0936
- ldrb r1, [r5, 0x8]
- cmp r6, r1
- blt _082E090A
-_082E0936:
- ldrb r0, [r5, 0x8]
- cmp r6, r0
- bge _082E0956
- movs r1, 0
- mov r8, r1
-_082E0940:
- adds r0, r5, 0
- adds r1, r4, 0
- bl TrackStop_rev01
- mov r0, r8
- strb r0, [r4]
- adds r6, 0x1
- adds r4, 0x50
- ldrb r1, [r5, 0x8]
- cmp r6, r1
- blt _082E0940
-_082E0956:
- movs r0, 0x80
- ldrb r1, [r7, 0x3]
- ands r0, r1
- cmp r0, 0
- beq _082E0966
- ldrb r0, [r7, 0x3]
- bl SoundMode_rev01
-_082E0966:
- ldr r0, _082E0974
- str r0, [r5, 0x34]
-_082E096A:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_082E0974: .4byte 0x68736d53
- thumb_func_end MPlayStart_rev01
-
- thumb_func_start MPlayStop_rev01
-MPlayStop_rev01: @ 82E0978
- push {r4-r6,lr}
- adds r6, r0, 0
- ldr r1, [r6, 0x34]
- ldr r0, _082E09B4
- cmp r1, r0
- bne _082E09AE
- adds r0, r1, 0x1
- str r0, [r6, 0x34]
- ldr r0, [r6, 0x4]
- movs r1, 0x80
- lsls r1, 24
- orrs r0, r1
- str r0, [r6, 0x4]
- ldrb r4, [r6, 0x8]
- ldr r5, [r6, 0x2C]
- cmp r4, 0
- ble _082E09AA
-_082E099A:
- adds r0, r6, 0
- adds r1, r5, 0
- bl TrackStop_rev01
- subs r4, 0x1
- adds r5, 0x50
- cmp r4, 0
- bgt _082E099A
-_082E09AA:
- ldr r0, _082E09B4
- str r0, [r6, 0x34]
-_082E09AE:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_082E09B4: .4byte 0x68736d53
- thumb_func_end MPlayStop_rev01
-
- thumb_func_start FadeOutBody_rev01
-FadeOutBody_rev01: @ 82E09B8
- push {r4-r7,lr}
- adds r6, r0, 0
- ldrh r1, [r6, 0x24]
- cmp r1, 0
- beq _082E0A7A
- ldrh r0, [r6, 0x26]
- subs r0, 0x1
- strh r0, [r6, 0x26]
- ldr r3, _082E09F8
- adds r2, r3, 0
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0
- bne _082E0A7A
- strh r1, [r6, 0x26]
- ldrh r1, [r6, 0x28]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _082E09FC
- adds r0, r1, 0
- adds r0, 0x10
- strh r0, [r6, 0x28]
- ands r0, r2
- cmp r0, 0xFF
- bls _082E0A4E
- movs r0, 0x80
- lsls r0, 1
- strh r0, [r6, 0x28]
- strh r3, [r6, 0x24]
- b _082E0A4E
- .align 2, 0
-_082E09F8: .4byte 0x0000ffff
-_082E09FC:
- adds r0, r1, 0
- subs r0, 0x10
- strh r0, [r6, 0x28]
- ands r0, r2
- lsls r0, 16
- cmp r0, 0
- bgt _082E0A4E
- ldrb r5, [r6, 0x8]
- ldr r4, [r6, 0x2C]
- cmp r5, 0
- ble _082E0A2E
-_082E0A12:
- adds r0, r6, 0
- adds r1, r4, 0
- bl TrackStop_rev01
- movs r0, 0x1
- ldrh r7, [r6, 0x28]
- ands r0, r7
- cmp r0, 0
- bne _082E0A26
- strb r0, [r4]
-_082E0A26:
- subs r5, 0x1
- adds r4, 0x50
- cmp r5, 0
- bgt _082E0A12
-_082E0A2E:
- movs r0, 0x1
- ldrh r1, [r6, 0x28]
- ands r0, r1
- cmp r0, 0
- beq _082E0A42
- ldr r0, [r6, 0x4]
- movs r1, 0x80
- lsls r1, 24
- orrs r0, r1
- b _082E0A46
-_082E0A42:
- movs r0, 0x80
- lsls r0, 24
-_082E0A46:
- str r0, [r6, 0x4]
- movs r0, 0
- strh r0, [r6, 0x24]
- b _082E0A7A
-_082E0A4E:
- ldrb r5, [r6, 0x8]
- ldr r4, [r6, 0x2C]
- cmp r5, 0
- ble _082E0A7A
- movs r3, 0x80
- movs r7, 0
- movs r2, 0x3
-_082E0A5C:
- ldrb r1, [r4]
- adds r0, r3, 0
- ands r0, r1
- cmp r0, 0
- beq _082E0A72
- ldrh r7, [r6, 0x28]
- lsrs r0, r7, 2
- strb r0, [r4, 0x13]
- adds r0, r1, 0
- orrs r0, r2
- strb r0, [r4]
-_082E0A72:
- subs r5, 0x1
- adds r4, 0x50
- cmp r5, 0
- bgt _082E0A5C
-_082E0A7A:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end FadeOutBody_rev01
-
- thumb_func_start TrkVolPitSet_rev01
-TrkVolPitSet_rev01: @ 82E0A80
- push {r4,lr}
- adds r2, r1, 0
- movs r0, 0x1
- ldrb r1, [r2]
- ands r0, r1
- cmp r0, 0
- beq _082E0AE4
- ldrb r3, [r2, 0x13]
- ldrb r1, [r2, 0x12]
- adds r0, r3, 0
- muls r0, r1
- lsrs r3, r0, 5
- ldrb r4, [r2, 0x18]
- cmp r4, 0x1
- bne _082E0AA8
- movs r0, 0x16
- ldrsb r0, [r2, r0]
- adds r0, 0x80
- muls r0, r3
- lsrs r3, r0, 7
-_082E0AA8:
- movs r0, 0x14
- ldrsb r0, [r2, r0]
- lsls r0, 1
- movs r1, 0x15
- ldrsb r1, [r2, r1]
- adds r1, r0, r1
- cmp r4, 0x2
- bne _082E0ABE
- movs r0, 0x16
- ldrsb r0, [r2, r0]
- adds r1, r0
-_082E0ABE:
- movs r0, 0x80
- negs r0, r0
- cmp r1, r0
- bge _082E0ACA
- adds r1, r0, 0
- b _082E0AD0
-_082E0ACA:
- cmp r1, 0x7F
- ble _082E0AD0
- movs r1, 0x7F
-_082E0AD0:
- adds r0, r1, 0
- adds r0, 0x80
- muls r0, r3
- lsrs r0, 8
- strb r0, [r2, 0x10]
- movs r0, 0x7F
- subs r0, r1
- muls r0, r3
- lsrs r0, 8
- strb r0, [r2, 0x11]
-_082E0AE4:
- ldrb r1, [r2]
- movs r0, 0x4
- ands r0, r1
- adds r3, r1, 0
- cmp r0, 0
- beq _082E0B28
- movs r0, 0xE
- ldrsb r0, [r2, r0]
- ldrb r1, [r2, 0xF]
- muls r0, r1
- movs r1, 0xC
- ldrsb r1, [r2, r1]
- adds r1, r0
- lsls r1, 2
- movs r0, 0xA
- ldrsb r0, [r2, r0]
- lsls r0, 8
- adds r1, r0
- movs r0, 0xB
- ldrsb r0, [r2, r0]
- lsls r0, 8
- adds r1, r0
- ldrb r0, [r2, 0xD]
- adds r1, r0, r1
- ldrb r0, [r2, 0x18]
- cmp r0, 0
- bne _082E0B22
- movs r0, 0x16
- ldrsb r0, [r2, r0]
- lsls r0, 4
- adds r1, r0
-_082E0B22:
- asrs r0, r1, 8
- strb r0, [r2, 0x8]
- strb r1, [r2, 0x9]
-_082E0B28:
- movs r0, 0xFA
- ands r0, r3
- strb r0, [r2]
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end TrkVolPitSet_rev01
-
- thumb_func_start MidiKey2CgbFr
-MidiKey2CgbFr: @ 82E0B34
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r5, r1, 24
- lsls r2, 24
- lsrs r2, 24
- mov r12, r2
- cmp r0, 0x4
- bne _082E0B6C
- cmp r5, 0x14
- bhi _082E0B50
- movs r5, 0
- b _082E0B5E
-_082E0B50:
- adds r0, r5, 0
- subs r0, 0x15
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x3B
- bls _082E0B5E
- movs r5, 0x3B
-_082E0B5E:
- ldr r0, _082E0B68
- adds r0, r5, r0
- ldrb r0, [r0]
- b _082E0BCE
- .align 2, 0
-_082E0B68: .4byte 0x08675c18
-_082E0B6C:
- cmp r5, 0x23
- bhi _082E0B78
- movs r0, 0
- mov r12, r0
- movs r5, 0
- b _082E0B8A
-_082E0B78:
- adds r0, r5, 0
- subs r0, 0x24
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x82
- bls _082E0B8A
- movs r5, 0x82
- movs r1, 0xFF
- mov r12, r1
-_082E0B8A:
- ldr r3, _082E0BD4
- adds r0, r5, r3
- ldrb r6, [r0]
- ldr r4, _082E0BD8
- movs r2, 0xF
- adds r0, r6, 0
- ands r0, r2
- lsls r0, 1
- adds r0, r4
- movs r7, 0
- ldrsh r1, [r0, r7]
- asrs r0, r6, 4
- adds r6, r1, 0
- asrs r6, r0
- adds r0, r5, 0x1
- adds r0, r3
- ldrb r1, [r0]
- adds r0, r1, 0
- ands r0, r2
- lsls r0, 1
- adds r0, r4
- movs r2, 0
- ldrsh r0, [r0, r2]
- asrs r1, 4
- asrs r0, r1
- subs r0, r6
- mov r7, r12
- muls r7, r0
- adds r0, r7, 0
- asrs r0, 8
- adds r0, r6, r0
- movs r1, 0x80
- lsls r1, 4
- adds r0, r1
-_082E0BCE:
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_082E0BD4: .4byte 0x08675b7c
-_082E0BD8: .4byte 0x08675c00
- thumb_func_end MidiKey2CgbFr
-
- thumb_func_start CgbOscOff
-CgbOscOff: @ 82E0BDC
- lsls r0, 24
- lsrs r0, 24
- adds r1, r0, 0
- cmp r0, 0x2
- beq _082E0C04
- cmp r0, 0x2
- bgt _082E0BF0
- cmp r0, 0x1
- beq _082E0BF6
- b _082E0C18
-_082E0BF0:
- cmp r1, 0x3
- beq _082E0C0C
- b _082E0C18
-_082E0BF6:
- ldr r1, _082E0C00
- movs r0, 0x8
- strb r0, [r1]
- adds r1, 0x2
- b _082E0C20
- .align 2, 0
-_082E0C00: .4byte 0x04000063
-_082E0C04:
- ldr r1, _082E0C08
- b _082E0C1A
- .align 2, 0
-_082E0C08: .4byte 0x04000069
-_082E0C0C:
- ldr r1, _082E0C14
- movs r0, 0
- b _082E0C22
- .align 2, 0
-_082E0C14: .4byte 0x04000070
-_082E0C18:
- ldr r1, _082E0C28
-_082E0C1A:
- movs r0, 0x8
- strb r0, [r1]
- adds r1, 0x4
-_082E0C20:
- movs r0, 0x80
-_082E0C22:
- strb r0, [r1]
- bx lr
- .align 2, 0
-_082E0C28: .4byte 0x04000079
- thumb_func_end CgbOscOff
-
- thumb_func_start CgbModVol
-CgbModVol: @ 82E0C2C
- push {r4,lr}
- adds r2, r0, 0
- ldr r0, _082E0C5C
- ldr r1, [r0]
- movs r0, 0x1
- ldrb r1, [r1, 0x9]
- ands r0, r1
- cmp r0, 0
- bne _082E0C6C
- ldrb r0, [r2, 0x2]
- lsls r1, r0, 24
- lsrs r4, r1, 24
- ldrb r3, [r2, 0x3]
- lsls r0, r3, 24
- lsrs r3, r0, 24
- cmp r4, r3
- bcc _082E0C60
- lsrs r0, r1, 25
- cmp r0, r3
- bcc _082E0C6C
- movs r0, 0xF
- strb r0, [r2, 0x1B]
- b _082E0C7A
- .align 2, 0
-_082E0C5C: .4byte 0x03007ff0
-_082E0C60:
- lsrs r0, 25
- cmp r0, r4
- bcc _082E0C6C
- movs r0, 0xF0
- strb r0, [r2, 0x1B]
- b _082E0C7A
-_082E0C6C:
- movs r0, 0xFF
- strb r0, [r2, 0x1B]
- ldrb r1, [r2, 0x3]
- ldrb r3, [r2, 0x2]
- adds r0, r1, r3
- lsrs r0, 4
- b _082E0C8A
-_082E0C7A:
- ldrb r1, [r2, 0x3]
- ldrb r3, [r2, 0x2]
- adds r0, r1, r3
- lsrs r0, 4
- strb r0, [r2, 0xA]
- cmp r0, 0xF
- bls _082E0C8C
- movs r0, 0xF
-_082E0C8A:
- strb r0, [r2, 0xA]
-_082E0C8C:
- ldrb r1, [r2, 0x6]
- ldrb r3, [r2, 0xA]
- adds r0, r1, 0
- muls r0, r3
- adds r0, 0xF
- asrs r0, 4
- strb r0, [r2, 0x19]
- ldrb r0, [r2, 0x1C]
- ldrb r1, [r2, 0x1B]
- ands r0, r1
- strb r0, [r2, 0x1B]
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end CgbModVol
-
- thumb_func_start CgbSound
-CgbSound: @ 82E0CA8
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x1C
- ldr r0, _082E0CC8
- ldr r0, [r0]
- str r0, [sp, 0x4]
- ldrb r0, [r0, 0xA]
- cmp r0, 0
- beq _082E0CCC
- subs r0, 0x1
- ldr r1, [sp, 0x4]
- strb r0, [r1, 0xA]
- b _082E0CD2
- .align 2, 0
-_082E0CC8: .4byte 0x03007ff0
-_082E0CCC:
- movs r0, 0xE
- ldr r2, [sp, 0x4]
- strb r0, [r2, 0xA]
-_082E0CD2:
- movs r6, 0x1
- ldr r0, [sp, 0x4]
- ldr r4, [r0, 0x1C]
-_082E0CD8:
- ldrb r1, [r4]
- movs r0, 0xC7
- ands r0, r1
- adds r2, r6, 0x1
- mov r10, r2
- movs r2, 0x40
- adds r2, r4
- mov r9, r2
- cmp r0, 0
- bne _082E0CEE
- b _082E10D8
-_082E0CEE:
- cmp r6, 0x2
- beq _082E0D20
- cmp r6, 0x2
- bgt _082E0CFC
- cmp r6, 0x1
- beq _082E0D02
- b _082E0D58
-_082E0CFC:
- cmp r6, 0x3
- beq _082E0D38
- b _082E0D58
-_082E0D02:
- ldr r0, _082E0D14
- str r0, [sp, 0x8]
- ldr r7, _082E0D18
- ldr r2, _082E0D1C
- str r2, [sp, 0xC]
- adds r0, 0x4
- str r0, [sp, 0x10]
- adds r2, 0x2
- b _082E0D68
- .align 2, 0
-_082E0D14: .4byte 0x04000060
-_082E0D18: .4byte 0x04000062
-_082E0D1C: .4byte 0x04000063
-_082E0D20:
- ldr r0, _082E0D2C
- str r0, [sp, 0x8]
- ldr r7, _082E0D30
- ldr r2, _082E0D34
- b _082E0D60
- .align 2, 0
-_082E0D2C: .4byte 0x04000061
-_082E0D30: .4byte 0x04000068
-_082E0D34: .4byte 0x04000069
-_082E0D38:
- ldr r0, _082E0D4C
- str r0, [sp, 0x8]
- ldr r7, _082E0D50
- ldr r2, _082E0D54
- str r2, [sp, 0xC]
- adds r0, 0x4
- str r0, [sp, 0x10]
- adds r2, 0x2
- b _082E0D68
- .align 2, 0
-_082E0D4C: .4byte 0x04000070
-_082E0D50: .4byte 0x04000072
-_082E0D54: .4byte 0x04000073
-_082E0D58:
- ldr r0, _082E0DB8
- str r0, [sp, 0x8]
- ldr r7, _082E0DBC
- ldr r2, _082E0DC0
-_082E0D60:
- str r2, [sp, 0xC]
- adds r0, 0xB
- str r0, [sp, 0x10]
- adds r2, 0x4
-_082E0D68:
- str r2, [sp, 0x14]
- ldr r0, [sp, 0x4]
- ldrb r0, [r0, 0xA]
- str r0, [sp]
- ldr r2, [sp, 0xC]
- ldrb r0, [r2]
- mov r8, r0
- adds r2, r1, 0
- movs r0, 0x80
- ands r0, r2
- cmp r0, 0
- beq _082E0E5E
- movs r3, 0x40
- adds r0, r3, 0
- ands r0, r2
- lsls r0, 24
- lsrs r5, r0, 24
- adds r0, r6, 0x1
- mov r10, r0
- movs r1, 0x40
- adds r1, r4
- mov r9, r1
- cmp r5, 0
- bne _082E0E82
- movs r0, 0x3
- strb r0, [r4]
- strb r0, [r4, 0x1D]
- adds r0, r4, 0
- str r3, [sp, 0x18]
- bl CgbModVol
- ldr r3, [sp, 0x18]
- cmp r6, 0x2
- beq _082E0DD0
- cmp r6, 0x2
- bgt _082E0DC4
- cmp r6, 0x1
- beq _082E0DCA
- b _082E0E24
- .align 2, 0
-_082E0DB8: .4byte 0x04000071
-_082E0DBC: .4byte 0x04000078
-_082E0DC0: .4byte 0x04000079
-_082E0DC4:
- cmp r6, 0x3
- beq _082E0DDC
- b _082E0E24
-_082E0DCA:
- ldrb r0, [r4, 0x1F]
- ldr r2, [sp, 0x8]
- strb r0, [r2]
-_082E0DD0:
- ldr r0, [r4, 0x24]
- lsls r0, 6
- ldrb r1, [r4, 0x1E]
- adds r0, r1, r0
- strb r0, [r7]
- b _082E0E30
-_082E0DDC:
- ldr r1, [r4, 0x24]
- ldr r0, [r4, 0x28]
- cmp r1, r0
- beq _082E0E04
- ldr r2, [sp, 0x8]
- strb r3, [r2]
- ldr r1, _082E0E18
- ldr r2, [r4, 0x24]
- ldr r0, [r2]
- str r0, [r1]
- adds r1, 0x4
- ldr r0, [r2, 0x4]
- str r0, [r1]
- adds r1, 0x4
- ldr r0, [r2, 0x8]
- str r0, [r1]
- adds r1, 0x4
- ldr r0, [r2, 0xC]
- str r0, [r1]
- str r2, [r4, 0x28]
-_082E0E04:
- ldr r0, [sp, 0x8]
- strb r5, [r0]
- ldrb r0, [r4, 0x1E]
- strb r0, [r7]
- ldrb r0, [r4, 0x1E]
- cmp r0, 0
- beq _082E0E1C
- movs r0, 0xC0
- b _082E0E3E
- .align 2, 0
-_082E0E18: .4byte 0x04000090
-_082E0E1C:
- movs r1, 0x80
- negs r1, r1
- strb r1, [r4, 0x1A]
- b _082E0E40
-_082E0E24:
- ldrb r0, [r4, 0x1E]
- strb r0, [r7]
- ldr r0, [r4, 0x24]
- lsls r0, 3
- ldr r2, [sp, 0x10]
- strb r0, [r2]
-_082E0E30:
- ldrb r0, [r4, 0x4]
- adds r0, 0x8
- mov r8, r0
- ldrb r0, [r4, 0x1E]
- cmp r0, 0
- beq _082E0E3E
- movs r0, 0x40
-_082E0E3E:
- strb r0, [r4, 0x1A]
-_082E0E40:
- ldrb r1, [r4, 0x4]
- movs r2, 0
- strb r1, [r4, 0xB]
- movs r0, 0xFF
- ands r0, r1
- adds r1, r6, 0x1
- mov r10, r1
- movs r1, 0x40
- adds r1, r4
- mov r9, r1
- cmp r0, 0
- bne _082E0E5A
- b _082E0F96
-_082E0E5A:
- strb r2, [r4, 0x9]
- b _082E0FC4
-_082E0E5E:
- movs r0, 0x4
- ands r0, r2
- cmp r0, 0
- beq _082E0E90
- ldrb r0, [r4, 0xD]
- subs r0, 0x1
- strb r0, [r4, 0xD]
- movs r2, 0xFF
- ands r0, r2
- lsls r0, 24
- adds r1, r6, 0x1
- mov r10, r1
- movs r2, 0x40
- adds r2, r4
- mov r9, r2
- cmp r0, 0
- ble _082E0E82
- b _082E0FD6
-_082E0E82:
- lsls r0, r6, 24
- lsrs r0, 24
- bl CgbOscOff
- movs r0, 0
- strb r0, [r4]
- b _082E10D4
-_082E0E90:
- movs r0, 0x40
- ands r0, r1
- adds r2, r6, 0x1
- mov r10, r2
- movs r2, 0x40
- adds r2, r4
- mov r9, r2
- cmp r0, 0
- beq _082E0ED0
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0
- beq _082E0ED0
- movs r0, 0xFC
- ands r0, r1
- movs r2, 0
- strb r0, [r4]
- ldrb r1, [r4, 0x7]
- strb r1, [r4, 0xB]
- movs r0, 0xFF
- ands r0, r1
- cmp r0, 0
- beq _082E0F02
- movs r0, 0x1
- ldrb r1, [r4, 0x1D]
- orrs r0, r1
- strb r0, [r4, 0x1D]
- cmp r6, 0x3
- beq _082E0FC4
- ldrb r2, [r4, 0x7]
- mov r8, r2
- b _082E0FC4
-_082E0ED0:
- ldrb r0, [r4, 0xB]
- cmp r0, 0
- bne _082E0FC4
- cmp r6, 0x3
- bne _082E0EE2
- movs r0, 0x1
- ldrb r1, [r4, 0x1D]
- orrs r0, r1
- strb r0, [r4, 0x1D]
-_082E0EE2:
- adds r0, r4, 0
- bl CgbModVol
- movs r0, 0x3
- ldrb r2, [r4]
- ands r0, r2
- cmp r0, 0
- bne _082E0F36
- ldrb r0, [r4, 0x9]
- subs r0, 0x1
- strb r0, [r4, 0x9]
- movs r1, 0xFF
- ands r0, r1
- lsls r0, 24
- cmp r0, 0
- bgt _082E0F32
-_082E0F02:
- ldrb r2, [r4, 0xC]
- ldrb r1, [r4, 0xA]
- adds r0, r2, 0
- muls r0, r1
- adds r0, 0xFF
- asrs r0, 8
- movs r1, 0
- strb r0, [r4, 0x9]
- lsls r0, 24
- cmp r0, 0
- beq _082E0E82
- movs r0, 0x4
- ldrb r2, [r4]
- orrs r0, r2
- strb r0, [r4]
- movs r0, 0x1
- ldrb r1, [r4, 0x1D]
- orrs r0, r1
- strb r0, [r4, 0x1D]
- cmp r6, 0x3
- beq _082E0FD6
- movs r2, 0x8
- mov r8, r2
- b _082E0FD6
-_082E0F32:
- ldrb r0, [r4, 0x7]
- b _082E0FC2
-_082E0F36:
- cmp r0, 0x1
- bne _082E0F42
-_082E0F3A:
- ldrb r0, [r4, 0x19]
- strb r0, [r4, 0x9]
- movs r0, 0x7
- b _082E0FC2
-_082E0F42:
- cmp r0, 0x2
- bne _082E0F86
- ldrb r0, [r4, 0x9]
- subs r0, 0x1
- strb r0, [r4, 0x9]
- movs r1, 0xFF
- ands r0, r1
- lsls r0, 24
- ldrb r2, [r4, 0x19]
- lsls r1, r2, 24
- cmp r0, r1
- bgt _082E0F82
-_082E0F5A:
- ldrb r0, [r4, 0x6]
- cmp r0, 0
- bne _082E0F6A
- movs r0, 0xFC
- ldrb r1, [r4]
- ands r0, r1
- strb r0, [r4]
- b _082E0F02
-_082E0F6A:
- ldrb r0, [r4]
- subs r0, 0x1
- strb r0, [r4]
- movs r0, 0x1
- ldrb r2, [r4, 0x1D]
- orrs r0, r2
- strb r0, [r4, 0x1D]
- cmp r6, 0x3
- beq _082E0F3A
- movs r0, 0x8
- mov r8, r0
- b _082E0F3A
-_082E0F82:
- ldrb r0, [r4, 0x5]
- b _082E0FC2
-_082E0F86:
- ldrb r0, [r4, 0x9]
- adds r0, 0x1
- strb r0, [r4, 0x9]
- movs r1, 0xFF
- ands r0, r1
- ldrb r2, [r4, 0xA]
- cmp r0, r2
- bcc _082E0FC0
-_082E0F96:
- ldrb r0, [r4]
- subs r0, 0x1
- movs r2, 0
- strb r0, [r4]
- ldrb r1, [r4, 0x5]
- strb r1, [r4, 0xB]
- movs r0, 0xFF
- ands r0, r1
- cmp r0, 0
- beq _082E0F5A
- movs r0, 0x1
- ldrb r1, [r4, 0x1D]
- orrs r0, r1
- strb r0, [r4, 0x1D]
- ldrb r0, [r4, 0xA]
- strb r0, [r4, 0x9]
- cmp r6, 0x3
- beq _082E0FC4
- ldrb r2, [r4, 0x5]
- mov r8, r2
- b _082E0FC4
-_082E0FC0:
- ldrb r0, [r4, 0x4]
-_082E0FC2:
- strb r0, [r4, 0xB]
-_082E0FC4:
- ldrb r0, [r4, 0xB]
- subs r0, 0x1
- strb r0, [r4, 0xB]
- ldr r0, [sp]
- cmp r0, 0
- bne _082E0FD6
- subs r0, 0x1
- str r0, [sp]
- b _082E0ED0
-_082E0FD6:
- movs r0, 0x2
- ldrb r1, [r4, 0x1D]
- ands r0, r1
- cmp r0, 0
- beq _082E104E
- cmp r6, 0x3
- bgt _082E1016
- movs r0, 0x8
- ldrb r2, [r4, 0x1]
- ands r0, r2
- cmp r0, 0
- beq _082E1016
- ldr r0, _082E1000
- ldrb r0, [r0]
- cmp r0, 0x3F
- bgt _082E1008
- ldr r0, [r4, 0x20]
- adds r0, 0x2
- ldr r1, _082E1004
- b _082E1012
- .align 2, 0
-_082E1000: .4byte 0x04000089
-_082E1004: .4byte 0x000007fc
-_082E1008:
- cmp r0, 0x7F
- bgt _082E1016
- ldr r0, [r4, 0x20]
- adds r0, 0x1
- ldr r1, _082E1024
-_082E1012:
- ands r0, r1
- str r0, [r4, 0x20]
-_082E1016:
- cmp r6, 0x4
- beq _082E1028
- ldr r0, [r4, 0x20]
- ldr r1, [sp, 0x10]
- strb r0, [r1]
- b _082E1036
- .align 2, 0
-_082E1024: .4byte 0x000007fe
-_082E1028:
- ldr r2, [sp, 0x10]
- ldrb r0, [r2]
- movs r1, 0x8
- ands r1, r0
- ldr r0, [r4, 0x20]
- orrs r0, r1
- strb r0, [r2]
-_082E1036:
- movs r0, 0xC0
- ldrb r1, [r4, 0x1A]
- ands r0, r1
- adds r1, r4, 0
- adds r1, 0x21
- ldrb r1, [r1]
- adds r0, r1, r0
- strb r0, [r4, 0x1A]
- movs r2, 0xFF
- ands r0, r2
- ldr r1, [sp, 0x14]
- strb r0, [r1]
-_082E104E:
- movs r0, 0x1
- ldrb r2, [r4, 0x1D]
- ands r0, r2
- cmp r0, 0
- beq _082E10D4
- ldr r1, _082E1098
- ldrb r0, [r1]
- ldrb r2, [r4, 0x1C]
- bics r0, r2
- ldrb r2, [r4, 0x1B]
- orrs r0, r2
- strb r0, [r1]
- cmp r6, 0x3
- bne _082E10A0
- ldr r0, _082E109C
- ldrb r1, [r4, 0x9]
- adds r0, r1, r0
- ldrb r0, [r0]
- ldr r2, [sp, 0xC]
- strb r0, [r2]
- movs r1, 0x80
- adds r0, r1, 0
- ldrb r2, [r4, 0x1A]
- ands r0, r2
- cmp r0, 0
- beq _082E10D4
- ldr r0, [sp, 0x8]
- strb r1, [r0]
- ldrb r0, [r4, 0x1A]
- ldr r1, [sp, 0x14]
- strb r0, [r1]
- movs r0, 0x7F
- ldrb r2, [r4, 0x1A]
- ands r0, r2
- strb r0, [r4, 0x1A]
- b _082E10D4
- .align 2, 0
-_082E1098: .4byte 0x04000081
-_082E109C: .4byte 0x08675c54
-_082E10A0:
- movs r0, 0xF
- mov r1, r8
- ands r1, r0
- mov r8, r1
- ldrb r2, [r4, 0x9]
- lsls r0, r2, 4
- add r0, r8
- ldr r1, [sp, 0xC]
- strb r0, [r1]
- movs r2, 0x80
- ldrb r0, [r4, 0x1A]
- orrs r0, r2
- ldr r1, [sp, 0x14]
- strb r0, [r1]
- cmp r6, 0x1
- bne _082E10D4
- ldr r0, [sp, 0x8]
- ldrb r1, [r0]
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- bne _082E10D4
- ldrb r0, [r4, 0x1A]
- orrs r0, r2
- ldr r1, [sp, 0x14]
- strb r0, [r1]
-_082E10D4:
- movs r0, 0
- strb r0, [r4, 0x1D]
-_082E10D8:
- mov r6, r10
- mov r4, r9
- cmp r6, 0x4
- bgt _082E10E2
- b _082E0CD8
-_082E10E2:
- add sp, 0x1C
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end CgbSound
-
- thumb_func_start MPlayTempoControl
-MPlayTempoControl: @ 82E10F4
- push {r4,lr}
- adds r2, r0, 0
- lsls r1, 16
- lsrs r1, 16
- ldr r3, [r2, 0x34]
- ldr r0, _082E1118
- cmp r3, r0
- bne _082E1110
- strh r1, [r2, 0x1E]
- ldrh r4, [r2, 0x1C]
- adds r0, r1, 0
- muls r0, r4
- asrs r0, 8
- strh r0, [r2, 0x20]
-_082E1110:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_082E1118: .4byte 0x68736d53
- thumb_func_end MPlayTempoControl
-
- thumb_func_start MPlayVolumeControl
-MPlayVolumeControl: @ 82E111C
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- adds r4, r0, 0
- lsls r1, 16
- lsrs r7, r1, 16
- lsls r6, r2, 16
- ldr r3, [r4, 0x34]
- ldr r0, _082E1180
- cmp r3, r0
- bne _082E1174
- adds r0, r3, 0x1
- str r0, [r4, 0x34]
- ldrb r2, [r4, 0x8]
- ldr r1, [r4, 0x2C]
- movs r5, 0x1
- cmp r2, 0
- ble _082E1170
- movs r0, 0x80
- mov r8, r0
- lsrs r6, 18
- movs r0, 0x3
- mov r12, r0
-_082E114C:
- adds r0, r7, 0
- ands r0, r5
- cmp r0, 0
- beq _082E1166
- ldrb r3, [r1]
- mov r0, r8
- ands r0, r3
- cmp r0, 0
- beq _082E1166
- strb r6, [r1, 0x13]
- mov r0, r12
- orrs r0, r3
- strb r0, [r1]
-_082E1166:
- subs r2, 0x1
- adds r1, 0x50
- lsls r5, 1
- cmp r2, 0
- bgt _082E114C
-_082E1170:
- ldr r0, _082E1180
- str r0, [r4, 0x34]
-_082E1174:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_082E1180: .4byte 0x68736d53
- thumb_func_end MPlayVolumeControl
-
- thumb_func_start MPlayPitchControl
-MPlayPitchControl: @ 82E1184
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- adds r4, r0, 0
- lsls r1, 16
- lsrs r1, 16
- mov r12, r1
- lsls r2, 16
- lsrs r6, r2, 16
- ldr r3, [r4, 0x34]
- ldr r0, _082E11F4
- cmp r3, r0
- bne _082E11E6
- adds r0, r3, 0x1
- str r0, [r4, 0x34]
- ldrb r2, [r4, 0x8]
- ldr r3, [r4, 0x2C]
- movs r5, 0x1
- cmp r2, 0
- ble _082E11E2
- movs r0, 0x80
- mov r9, r0
- lsls r0, r6, 16
- asrs r7, r0, 24
- movs r0, 0xC
- mov r8, r0
-_082E11BC:
- mov r0, r12
- ands r0, r5
- cmp r0, 0
- beq _082E11D8
- ldrb r1, [r3]
- mov r0, r9
- ands r0, r1
- cmp r0, 0
- beq _082E11D8
- strb r7, [r3, 0xB]
- strb r6, [r3, 0xD]
- mov r0, r8
- orrs r0, r1
- strb r0, [r3]
-_082E11D8:
- subs r2, 0x1
- adds r3, 0x50
- lsls r5, 1
- cmp r2, 0
- bgt _082E11BC
-_082E11E2:
- ldr r0, _082E11F4
- str r0, [r4, 0x34]
-_082E11E6:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_082E11F4: .4byte 0x68736d53
- thumb_func_end MPlayPitchControl
-
- thumb_func_start MPlayPanpotControl
-MPlayPanpotControl: @ 82E11F8
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- adds r4, r0, 0
- lsls r1, 16
- lsrs r7, r1, 16
- lsls r2, 24
- lsrs r6, r2, 24
- ldr r3, [r4, 0x34]
- ldr r0, _082E125C
- cmp r3, r0
- bne _082E1250
- adds r0, r3, 0x1
- str r0, [r4, 0x34]
- ldrb r2, [r4, 0x8]
- ldr r1, [r4, 0x2C]
- movs r5, 0x1
- cmp r2, 0
- ble _082E124C
- movs r0, 0x80
- mov r8, r0
- movs r0, 0x3
- mov r12, r0
-_082E1228:
- adds r0, r7, 0
- ands r0, r5
- cmp r0, 0
- beq _082E1242
- ldrb r3, [r1]
- mov r0, r8
- ands r0, r3
- cmp r0, 0
- beq _082E1242
- strb r6, [r1, 0x15]
- mov r0, r12
- orrs r0, r3
- strb r0, [r1]
-_082E1242:
- subs r2, 0x1
- adds r1, 0x50
- lsls r5, 1
- cmp r2, 0
- bgt _082E1228
-_082E124C:
- ldr r0, _082E125C
- str r0, [r4, 0x34]
-_082E1250:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_082E125C: .4byte 0x68736d53
- thumb_func_end MPlayPanpotControl
-
- thumb_func_start MP_clear_modM
-MP_clear_modM: @ 82E1260
- adds r1, r0, 0
- movs r2, 0
- movs r0, 0
- strb r0, [r1, 0x1A]
- strb r0, [r1, 0x16]
- ldrb r0, [r1, 0x18]
- cmp r0, 0
- bne _082E1274
- movs r0, 0xC
- b _082E1276
-_082E1274:
- movs r0, 0x3
-_082E1276:
- ldrb r2, [r1]
- orrs r0, r2
- strb r0, [r1]
- bx lr
- thumb_func_end MP_clear_modM
-
- thumb_func_start MPlayModDepthSet
-MPlayModDepthSet: @ 82E1280
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- adds r6, r0, 0
- lsls r1, 16
- lsrs r1, 16
- mov r10, r1
- lsls r2, 24
- lsrs r2, 24
- mov r8, r2
- ldr r1, [r6, 0x34]
- ldr r0, _082E12F0
- cmp r1, r0
- bne _082E12E0
- adds r0, r1, 0x1
- str r0, [r6, 0x34]
- ldrb r5, [r6, 0x8]
- ldr r4, [r6, 0x2C]
- movs r7, 0x1
- cmp r5, 0
- ble _082E12DC
- mov r9, r8
-_082E12B0:
- mov r0, r10
- ands r0, r7
- cmp r0, 0
- beq _082E12D2
- movs r0, 0x80
- ldrb r1, [r4]
- ands r0, r1
- cmp r0, 0
- beq _082E12D2
- mov r0, r8
- strb r0, [r4, 0x17]
- mov r1, r9
- cmp r1, 0
- bne _082E12D2
- adds r0, r4, 0
- bl MP_clear_modM
-_082E12D2:
- subs r5, 0x1
- adds r4, 0x50
- lsls r7, 1
- cmp r5, 0
- bgt _082E12B0
-_082E12DC:
- ldr r0, _082E12F0
- str r0, [r6, 0x34]
-_082E12E0:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_082E12F0: .4byte 0x68736d53
- thumb_func_end MPlayModDepthSet
-
- thumb_func_start MPlayLFOSpeedSet
-MPlayLFOSpeedSet: @ 82E12F4
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- adds r6, r0, 0
- lsls r1, 16
- lsrs r1, 16
- mov r10, r1
- lsls r2, 24
- lsrs r2, 24
- mov r8, r2
- ldr r1, [r6, 0x34]
- ldr r0, _082E1364
- cmp r1, r0
- bne _082E1354
- adds r0, r1, 0x1
- str r0, [r6, 0x34]
- ldrb r5, [r6, 0x8]
- ldr r4, [r6, 0x2C]
- movs r7, 0x1
- cmp r5, 0
- ble _082E1350
- mov r9, r8
-_082E1324:
- mov r0, r10
- ands r0, r7
- cmp r0, 0
- beq _082E1346
- movs r0, 0x80
- ldrb r1, [r4]
- ands r0, r1
- cmp r0, 0
- beq _082E1346
- mov r0, r8
- strb r0, [r4, 0x19]
- mov r1, r9
- cmp r1, 0
- bne _082E1346
- adds r0, r4, 0
- bl MP_clear_modM
-_082E1346:
- subs r5, 0x1
- adds r4, 0x50
- lsls r7, 1
- cmp r5, 0
- bgt _082E1324
-_082E1350:
- ldr r0, _082E1364
- str r0, [r6, 0x34]
-_082E1354:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_082E1364: .4byte 0x68736d53
- thumb_func_end MPlayLFOSpeedSet
-
- thumb_func_start ply_memacc
-ply_memacc: @ 82E1368
- push {r4-r6,lr}
- adds r4, r0, 0
- adds r6, r1, 0
- ldr r1, [r6, 0x40]
- ldrb r5, [r1]
- adds r2, r1, 0x1
- str r2, [r6, 0x40]
- ldr r0, [r4, 0x18]
- ldrb r1, [r1, 0x1]
- adds r3, r1, r0
- adds r0, r2, 0x1
- str r0, [r6, 0x40]
- ldrb r2, [r2, 0x1]
- adds r0, 0x1
- str r0, [r6, 0x40]
- cmp r5, 0x11
- bls _082E138C
- b _082E14BA
-_082E138C:
- lsls r0, r5, 2
- ldr r1, _082E1398
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_082E1398: .4byte _082E139C
- .align 2, 0
-_082E139C:
- .4byte _082E13E4
- .4byte _082E13E8
- .4byte _082E13F0
- .4byte _082E13F8
- .4byte _082E1402
- .4byte _082E1410
- .4byte _082E141E
- .4byte _082E1426
- .4byte _082E142E
- .4byte _082E1436
- .4byte _082E143E
- .4byte _082E1446
- .4byte _082E144E
- .4byte _082E145C
- .4byte _082E146A
- .4byte _082E1478
- .4byte _082E1486
- .4byte _082E1494
-_082E13E4:
- strb r2, [r3]
- b _082E14BA
-_082E13E8:
- ldrb r1, [r3]
- adds r0, r1, r2
- strb r0, [r3]
- b _082E14BA
-_082E13F0:
- ldrb r1, [r3]
- subs r0, r1, r2
- strb r0, [r3]
- b _082E14BA
-_082E13F8:
- ldr r0, [r4, 0x18]
- adds r0, r2
- ldrb r0, [r0]
- strb r0, [r3]
- b _082E14BA
-_082E1402:
- ldr r0, [r4, 0x18]
- adds r0, r2
- ldrb r1, [r3]
- ldrb r0, [r0]
- adds r0, r1, r0
- strb r0, [r3]
- b _082E14BA
-_082E1410:
- ldr r0, [r4, 0x18]
- adds r0, r2
- ldrb r1, [r3]
- ldrb r0, [r0]
- subs r0, r1, r0
- strb r0, [r3]
- b _082E14BA
-_082E141E:
- ldrb r3, [r3]
- cmp r3, r2
- beq _082E14A0
- b _082E14B4
-_082E1426:
- ldrb r3, [r3]
- cmp r3, r2
- bne _082E14A0
- b _082E14B4
-_082E142E:
- ldrb r3, [r3]
- cmp r3, r2
- bhi _082E14A0
- b _082E14B4
-_082E1436:
- ldrb r3, [r3]
- cmp r3, r2
- bcs _082E14A0
- b _082E14B4
-_082E143E:
- ldrb r3, [r3]
- cmp r3, r2
- bls _082E14A0
- b _082E14B4
-_082E1446:
- ldrb r3, [r3]
- cmp r3, r2
- bcc _082E14A0
- b _082E14B4
-_082E144E:
- ldr r0, [r4, 0x18]
- adds r0, r2
- ldrb r3, [r3]
- ldrb r0, [r0]
- cmp r3, r0
- beq _082E14A0
- b _082E14B4
-_082E145C:
- ldr r0, [r4, 0x18]
- adds r0, r2
- ldrb r3, [r3]
- ldrb r0, [r0]
- cmp r3, r0
- bne _082E14A0
- b _082E14B4
-_082E146A:
- ldr r0, [r4, 0x18]
- adds r0, r2
- ldrb r3, [r3]
- ldrb r0, [r0]
- cmp r3, r0
- bhi _082E14A0
- b _082E14B4
-_082E1478:
- ldr r0, [r4, 0x18]
- adds r0, r2
- ldrb r3, [r3]
- ldrb r0, [r0]
- cmp r3, r0
- bcs _082E14A0
- b _082E14B4
-_082E1486:
- ldr r0, [r4, 0x18]
- adds r0, r2
- ldrb r3, [r3]
- ldrb r0, [r0]
- cmp r3, r0
- bls _082E14A0
- b _082E14B4
-_082E1494:
- ldr r0, [r4, 0x18]
- adds r0, r2
- ldrb r3, [r3]
- ldrb r0, [r0]
- cmp r3, r0
- bcs _082E14B4
-_082E14A0:
- ldr r0, _082E14B0
- ldr r2, [r0]
- adds r0, r4, 0
- adds r1, r6, 0
- bl _call_via_r2
- b _082E14BA
- .align 2, 0
-_082E14B0: .4byte 0x03007464
-_082E14B4:
- ldr r0, [r6, 0x40]
- adds r0, 0x4
- str r0, [r6, 0x40]
-_082E14BA:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end ply_memacc
-
- thumb_func_start ply_xcmd
-ply_xcmd: @ 82E14C0
- push {lr}
- ldr r2, [r1, 0x40]
- ldrb r3, [r2]
- adds r2, 0x1
- str r2, [r1, 0x40]
- ldr r2, _082E14DC
- lsls r3, 2
- adds r3, r2
- ldr r2, [r3]
- bl _call_via_r2
- pop {r0}
- bx r0
- .align 2, 0
-_082E14DC: .4byte 0x08675ccc
- thumb_func_end ply_xcmd
-
- thumb_func_start ply_xxx
-ply_xxx: @ 82E14E0
- push {lr}
- ldr r2, _082E14F0
- ldr r2, [r2]
- bl _call_via_r2
- pop {r0}
- bx r0
- .align 2, 0
-_082E14F0: .4byte 0x03007460
- thumb_func_end ply_xxx
-
- thumb_func_start ply_xwave
-ply_xwave: @ 82E14F4
- push {r4,lr}
- ldr r2, [r1, 0x40]
- ldr r0, _082E152C
- ands r4, r0
- ldrb r0, [r2]
- orrs r4, r0
- ldrb r0, [r2, 0x1]
- lsls r3, r0, 8
- ldr r0, _082E1530
- ands r4, r0
- orrs r4, r3
- ldrb r0, [r2, 0x2]
- lsls r3, r0, 16
- ldr r0, _082E1534
- ands r4, r0
- orrs r4, r3
- ldrb r0, [r2, 0x3]
- lsls r3, r0, 24
- ldr r0, _082E1538
- ands r4, r0
- orrs r4, r3
- str r4, [r1, 0x28]
- adds r2, 0x4
- str r2, [r1, 0x40]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_082E152C: .4byte 0xffffff00
-_082E1530: .4byte 0xffff00ff
-_082E1534: .4byte 0xff00ffff
-_082E1538: .4byte 0x00ffffff
- thumb_func_end ply_xwave
-
- thumb_func_start ply_xtype
-ply_xtype: @ 82E153C
- ldr r0, [r1, 0x40]
- ldrb r2, [r0]
- adds r0, r1, 0
- adds r0, 0x24
- strb r2, [r0]
- ldr r0, [r1, 0x40]
- adds r0, 0x1
- str r0, [r1, 0x40]
- bx lr
- thumb_func_end ply_xtype
-
- thumb_func_start ply_xatta
-ply_xatta: @ 82E1550
- ldr r0, [r1, 0x40]
- ldrb r2, [r0]
- adds r0, r1, 0
- adds r0, 0x2C
- strb r2, [r0]
- ldr r0, [r1, 0x40]
- adds r0, 0x1
- str r0, [r1, 0x40]
- bx lr
- thumb_func_end ply_xatta
-
- thumb_func_start ply_xdeca
-ply_xdeca: @ 82E1564
- ldr r0, [r1, 0x40]
- ldrb r0, [r0]
- adds r2, r1, 0
- adds r2, 0x2D
- strb r0, [r2]
- ldr r0, [r1, 0x40]
- adds r0, 0x1
- str r0, [r1, 0x40]
- bx lr
- thumb_func_end ply_xdeca
-
- thumb_func_start ply_xsust
-ply_xsust: @ 82E1578
- ldr r0, [r1, 0x40]
- ldrb r0, [r0]
- adds r2, r1, 0
- adds r2, 0x2E
- strb r0, [r2]
- ldr r0, [r1, 0x40]
- adds r0, 0x1
- str r0, [r1, 0x40]
- bx lr
- thumb_func_end ply_xsust
-
- thumb_func_start ply_xrele
-ply_xrele: @ 82E158C
- ldr r0, [r1, 0x40]
- ldrb r0, [r0]
- adds r2, r1, 0
- adds r2, 0x2F
- strb r0, [r2]
- ldr r0, [r1, 0x40]
- adds r0, 0x1
- str r0, [r1, 0x40]
- bx lr
- thumb_func_end ply_xrele
-
- thumb_func_start ply_xiecv
-ply_xiecv: @ 82E15A0
- ldr r0, [r1, 0x40]
- ldrb r2, [r0]
- strb r2, [r1, 0x1E]
- adds r0, 0x1
- str r0, [r1, 0x40]
- bx lr
- thumb_func_end ply_xiecv
-
- thumb_func_start ply_xiecl
-ply_xiecl: @ 82E15AC
- ldr r0, [r1, 0x40]
- ldrb r2, [r0]
- strb r2, [r1, 0x1F]
- adds r0, 0x1
- str r0, [r1, 0x40]
- bx lr
- thumb_func_end ply_xiecl
-
- thumb_func_start ply_xleng
-ply_xleng: @ 82E15B8
- ldr r0, [r1, 0x40]
- ldrb r0, [r0]
- adds r2, r1, 0
- adds r2, 0x26
- strb r0, [r2]
- ldr r0, [r1, 0x40]
- adds r0, 0x1
- str r0, [r1, 0x40]
- bx lr
- thumb_func_end ply_xleng
-
- thumb_func_start ply_xswee
-ply_xswee: @ 82E15CC
- ldr r0, [r1, 0x40]
- ldrb r0, [r0]
- adds r2, r1, 0
- adds r2, 0x27
- strb r0, [r2]
- ldr r0, [r1, 0x40]
- adds r0, 0x1
- str r0, [r1, 0x40]
- bx lr
- thumb_func_end ply_xswee
-
- thumb_func_start ply_xcmd0C
-ply_xcmd0C: @ 82E15E0
- push {r4,lr}
- adds r3, r1, 0
- ldr r4, [r3, 0x40]
- ldr r0, _082E1610
- ands r2, r0
- ldrb r0, [r4]
- orrs r2, r0
- ldrb r0, [r4, 0x1]
- lsls r1, r0, 8
- ldr r0, _082E1614
- ands r2, r0
- orrs r2, r1
- ldrh r1, [r3, 0x3A]
- lsls r0, r2, 16
- lsrs r0, 16
- cmp r1, r0
- bcs _082E1618
- adds r0, r1, 0x1
- strh r0, [r3, 0x3A]
- subs r0, r4, 0x2
- str r0, [r3, 0x40]
- movs r0, 0x1
- strb r0, [r3, 0x1]
- b _082E1620
- .align 2, 0
-_082E1610: .4byte 0xffffff00
-_082E1614: .4byte 0xffff00ff
-_082E1618:
- movs r0, 0
- strh r0, [r3, 0x3A]
- adds r0, r4, 0x2
- str r0, [r3, 0x40]
-_082E1620:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end ply_xcmd0C
-
- thumb_func_start ply_xcmd0D
-ply_xcmd0D: @ 82E1628
- push {r4,lr}
- ldr r2, [r1, 0x40]
- ldr r0, _082E1660
- ands r4, r0
- ldrb r0, [r2]
- orrs r4, r0
- ldrb r0, [r2, 0x1]
- lsls r3, r0, 8
- ldr r0, _082E1664
- ands r4, r0
- orrs r4, r3
- ldrb r0, [r2, 0x2]
- lsls r3, r0, 16
- ldr r0, _082E1668
- ands r4, r0
- orrs r4, r3
- ldrb r0, [r2, 0x3]
- lsls r3, r0, 24
- ldr r0, _082E166C
- ands r4, r0
- orrs r4, r3
- str r4, [r1, 0x3C]
- adds r2, 0x4
- str r2, [r1, 0x40]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_082E1660: .4byte 0xffffff00
-_082E1664: .4byte 0xffff00ff
-_082E1668: .4byte 0xff00ffff
-_082E166C: .4byte 0x00ffffff
- thumb_func_end ply_xcmd0D
-
- thumb_func_start DummyFunc_rev
-DummyFunc_rev: @ 82E1670
- bx lr
- thumb_func_end DummyFunc_rev
-
- thumb_func_start sub_82E1674
-sub_82E1674: @ 82E1674
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- mov r9, r0
- movs r6, 0
- movs r1, 0
- movs r4, 0
- ldr r0, _082E1730
- mov r8, r0
- ldr r7, _082E1734
- ldr r0, _082E1738
- mov r10, r0
- mov r5, r8
- adds r5, 0xC
- movs r3, 0
- ldr r0, _082E173C
- mov r12, r0
-_082E169A:
- mov r0, r12
- adds r2, r3, r0
- ldrb r0, [r2]
- cmp r0, 0
- bne _082E16B0
- ldr r0, [r2, 0x20]
- cmp r0, 0
- beq _082E16C6
- ldr r0, [r0, 0x2C]
- cmp r0, r2
- bne _082E16C6
-_082E16B0:
- ldr r0, [r5]
- cmp r6, r0
- bcs _082E16BA
- adds r6, r0, 0
- adds r1, r4, 0
-_082E16BA:
- adds r5, 0x40
- adds r3, 0xA0
- adds r4, 0x1
- cmp r4, 0x1
- ble _082E169A
- adds r4, r1, 0
-_082E16C6:
- lsls r5, r4, 6
- add r5, r8
- ldr r0, [r5, 0x34]
- adds r0, 0x1
- str r0, [r5, 0x34]
- movs r0, 0x34
- muls r4, r0
- adds r6, r4, r7
- adds r0, r6, 0
- mov r1, r10
- movs r2, 0x34
- bl memcpy
- adds r0, r7, 0x4
- adds r0, r4, r0
- mov r1, r9
- str r1, [r0]
- adds r1, r7, 0
- adds r1, 0x8
- adds r1, r4, r1
- adds r0, r7, 0
- adds r0, 0x11
- adds r0, r4, r0
- str r0, [r1]
- adds r1, r7, 0
- adds r1, 0xC
- adds r1, r4, r1
- adds r0, r7, 0
- adds r0, 0x18
- adds r0, r4, r0
- str r0, [r1]
- adds r0, r7, 0
- adds r0, 0x14
- adds r0, r4, r0
- adds r1, r7, 0
- adds r1, 0x1A
- adds r4, r1
- str r4, [r0]
- ldr r0, _082E1740
- str r0, [r5, 0x34]
- adds r0, r5, 0
- adds r1, r6, 0
- bl MPlayStart_rev01
- adds r0, r5, 0
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_082E1730: .4byte 0x030073a0
-_082E1734: .4byte 0x03007330
-_082E1738: .4byte 0x030077b0
-_082E173C: .4byte 0x03007670
-_082E1740: .4byte 0x68736d53
- thumb_func_end sub_82E1674
-
- thumb_func_start sub_82E1744
-sub_82E1744: @ 82E1744
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _082E1754
- movs r1, 0x7F
- ands r0, r1
- strb r0, [r2, 0x1D]
- bx lr
- .align 2, 0
-_082E1754: .4byte 0x030077b0
- thumb_func_end sub_82E1744
-
- thumb_func_start sub_82E1758
-sub_82E1758: @ 82E1758
- ldr r2, _082E176C
- lsls r0, 24
- asrs r0, 24
- adds r0, 0x40
- movs r1, 0x7F
- ands r0, r1
- adds r2, 0x28
- strb r0, [r2]
- bx lr
- .align 2, 0
-_082E176C: .4byte 0x030077b0
- thumb_func_end sub_82E1758
-
- thumb_func_start sub_82E1770
-sub_82E1770: @ 82E1770
- push {r4-r6,lr}
- lsls r0, 16
- ldr r3, _082E17A4
- ldrb r2, [r3, 0x19]
- ldrb r4, [r3, 0x12]
- subs r1, r2, r4
- lsls r1, 24
- lsrs r1, 24
- movs r6, 0x80
- lsls r6, 16
- adds r0, r6
- asrs r2, r0, 24
- movs r5, 0x7F
- movs r4, 0x7F
- ands r2, r4
- movs r6, 0x2A
- strb r2, [r6, r3]
- asrs r0, 17
- ands r0, r4
- strb r0, [r3, 0x12]
- adds r1, r0
- ands r1, r5
- strb r1, [r3, 0x19]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_082E17A4: .4byte 0x030077b0
- thumb_func_end sub_82E1770
-
- thumb_func_start sub_82E17A8
-sub_82E17A8: @ 82E17A8
- ldr r1, _082E17B0
- strh r0, [r1, 0x2E]
- bx lr
- .align 2, 0
-_082E17B0: .4byte 0x030077b0
- thumb_func_end sub_82E17A8
-
- thumb_func_start sub_82E17B4
-sub_82E17B4: @ 82E17B4
- ldr r1, _082E17BC
- adds r1, 0x26
- strb r0, [r1]
- bx lr
- .align 2, 0
-_082E17BC: .4byte 0x030077b0
- thumb_func_end sub_82E17B4
-
- thumb_func_start sub_82E17C0
-sub_82E17C0: @ 82E17C0
- ldr r1, _082E17C8
- str r0, [r1, 0x20]
- bx lr
- .align 2, 0
-_082E17C8: .4byte 0x030077b0
- thumb_func_end sub_82E17C0
-
- thumb_func_start sub_82E17CC
-sub_82E17CC: @ 82E17CC
- ldr r1, [r0, 0x2C]
- ldr r0, [r1, 0x20]
- cmp r0, 0
- beq _082E17DE
- ldr r0, [r0, 0x2C]
- cmp r0, r1
- bne _082E17DE
- movs r0, 0x1
- b _082E17E0
-_082E17DE:
- movs r0, 0
-_082E17E0:
- bx lr
- thumb_func_end sub_82E17CC
-
- thumb_func_start sub_82E17E4
-sub_82E17E4: @ 82E17E4
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r0, 0
- beq _082E1804
- ldr r2, _082E1800
- movs r0, 0x2
- strb r0, [r2]
- ldrb r3, [r2, 0x12]
- adds r0, r3, r1
- movs r1, 0x7F
- ands r0, r1
- strb r0, [r2, 0x19]
- b _082E180A
- .align 2, 0
-_082E1800: .4byte 0x030077b0
-_082E1804:
- ldr r1, _082E180C
- movs r0, 0x1
- strb r0, [r1]
-_082E180A:
- bx lr
- .align 2, 0
-_082E180C: .4byte 0x030077b0
- thumb_func_end sub_82E17E4
-
- thumb_func_start sub_82E1810
-sub_82E1810: @ 82E1810
- ldr r1, _082E1828
- ldr r2, [r1]
- cmp r0, 0
- beq _082E1834
- ldr r1, _082E182C
- ldr r3, _082E1830
- adds r0, r3, 0
- strh r0, [r1]
- movs r0, 0xFE
- ldrb r1, [r2, 0x9]
- ands r0, r1
- b _082E1842
- .align 2, 0
-_082E1828: .4byte 0x03007ff0
-_082E182C: .4byte 0x04000082
-_082E1830: .4byte 0x0000210e
-_082E1834:
- ldr r1, _082E1848
- ldr r3, _082E184C
- adds r0, r3, 0
- strh r0, [r1]
- movs r0, 0x1
- ldrb r1, [r2, 0x9]
- orrs r0, r1
-_082E1842:
- strb r0, [r2, 0x9]
- bx lr
- .align 2, 0
-_082E1848: .4byte 0x04000082
-_082E184C: .4byte 0x00003302
- thumb_func_end sub_82E1810
-
- thumb_func_start sub_82E1850
-sub_82E1850: @ 82E1850
- ldr r1, _082E1858
- strb r0, [r1, 0x2]
- bx lr
- .align 2, 0
-_082E1858: .4byte 0x030077b0
- thumb_func_end sub_82E1850
-
- thumb_func_start SwitchFlashBank
-SwitchFlashBank: @ 82E185C
- lsls r0, 24
- lsrs r0, 24
- ldr r3, _082E1878
- movs r1, 0xAA
- strb r1, [r3]
- ldr r2, _082E187C
- movs r1, 0x55
- strb r1, [r2]
- movs r1, 0xB0
- strb r1, [r3]
- movs r1, 0xE0
- lsls r1, 20
- strb r0, [r1]
- bx lr
- .align 2, 0
-_082E1878: .4byte 0x0e005555
-_082E187C: .4byte 0x0e002aaa
- thumb_func_end SwitchFlashBank
-
- thumb_func_start ReadFlashID
-ReadFlashID: @ 82E1880
- push {r4,r5,lr}
- sub sp, 0x44
- mov r0, sp
- bl SetReadFlash1
- mov r5, sp
- adds r5, 0x1
- ldr r2, _082E18A8
- movs r0, 0xAA
- strb r0, [r2]
- ldr r1, _082E18AC
- movs r0, 0x55
- strb r0, [r1]
- movs r0, 0x90
- strb r0, [r2]
- add r1, sp, 0x40
- ldr r2, _082E18B0
- adds r0, r2, 0
- b _082E18B8
- .align 2, 0
-_082E18A8: .4byte 0x0e005555
-_082E18AC: .4byte 0x0e002aaa
-_082E18B0: .4byte 0x00004e20
-_082E18B4:
- ldrh r0, [r1]
- subs r0, 0x1
-_082E18B8:
- strh r0, [r1]
- ldrh r0, [r1]
- cmp r0, 0
- bne _082E18B4
- ldr r0, _082E18F4
- bl _call_via_r5
- lsls r0, 24
- lsrs r4, r0, 16
- movs r0, 0xE0
- lsls r0, 20
- bl _call_via_r5
- lsls r0, 24
- lsrs r0, 24
- orrs r4, r0
- ldr r1, _082E18F8
- movs r0, 0xAA
- strb r0, [r1]
- ldr r2, _082E18FC
- movs r0, 0x55
- strb r0, [r2]
- movs r0, 0xF0
- strb r0, [r1]
- strb r0, [r1]
- add r1, sp, 0x40
- ldr r2, _082E1900
- adds r0, r2, 0
- b _082E1908
- .align 2, 0
-_082E18F4: .4byte 0x0e000001
-_082E18F8: .4byte 0x0e005555
-_082E18FC: .4byte 0x0e002aaa
-_082E1900: .4byte 0x00004e20
-_082E1904:
- ldrh r0, [r1]
- subs r0, 0x1
-_082E1908:
- strh r0, [r1]
- ldrh r0, [r1]
- cmp r0, 0
- bne _082E1904
- adds r0, r4, 0
- add sp, 0x44
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end ReadFlashID
-
- thumb_func_start FlashTimerIntr
-FlashTimerIntr: @ 82E191C
- push {lr}
- ldr r1, _082E193C
- ldrh r0, [r1]
- cmp r0, 0
- beq _082E1938
- ldrh r0, [r1]
- subs r0, 0x1
- strh r0, [r1]
- lsls r0, 16
- cmp r0, 0
- bne _082E1938
- ldr r1, _082E1940
- movs r0, 0x1
- strb r0, [r1]
-_082E1938:
- pop {r0}
- bx r0
- .align 2, 0
-_082E193C: .4byte 0x03001a72
-_082E1940: .4byte 0x03007840
- thumb_func_end FlashTimerIntr
-
- thumb_func_start SetFlashTimerIntr
-SetFlashTimerIntr: @ 82E1944
- push {lr}
- adds r2, r1, 0
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x3
- bhi _082E1978
- ldr r0, _082E1968
- strb r1, [r0]
- ldr r1, _082E196C
- ldrb r0, [r0]
- lsls r0, 2
- ldr r3, _082E1970
- adds r0, r3
- str r0, [r1]
- ldr r0, _082E1974
- str r0, [r2]
- movs r0, 0
- b _082E197A
- .align 2, 0
-_082E1968: .4byte 0x03001a70
-_082E196C: .4byte 0x03001a74
-_082E1970: .4byte 0x04000100
-_082E1974: .4byte FlashTimerIntr + 1
-_082E1978:
- movs r0, 0x1
-_082E197A:
- pop {r1}
- bx r1
- thumb_func_end SetFlashTimerIntr
-
- thumb_func_start StartFlashTimer
-StartFlashTimer: @ 82E1980
- push {r4-r6,lr}
- mov r6, r10
- mov r5, r9
- mov r4, r8
- push {r4-r6}
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _082E1A04
- lsls r2, r0, 1
- adds r2, r0
- lsls r2, 1
- ldr r0, [r1]
- adds r2, r0
- ldr r1, _082E1A08
- ldr r0, _082E1A0C
- mov r9, r0
- ldrh r0, [r0]
- strh r0, [r1]
- movs r3, 0
- mov r1, r9
- strh r3, [r1]
- ldr r0, _082E1A10
- mov r8, r0
- ldr r4, [r0]
- strh r3, [r4, 0x2]
- ldr r6, _082E1A14
- ldr r1, _082E1A18
- mov r10, r1
- ldrb r1, [r1]
- movs r5, 0x8
- adds r0, r5, 0
- lsls r0, r1
- adds r1, r0, 0
- ldrh r0, [r6]
- orrs r0, r1
- strh r0, [r6]
- ldr r0, _082E1A1C
- strb r3, [r0]
- ldr r1, _082E1A20
- ldrh r0, [r2]
- strh r0, [r1]
- adds r2, 0x2
- ldrh r0, [r2]
- strh r0, [r4]
- adds r0, r4, 0x2
- mov r1, r8
- str r0, [r1]
- ldrh r0, [r2, 0x2]
- strh r0, [r4, 0x2]
- str r4, [r1]
- ldr r1, _082E1A24
- mov r2, r10
- ldrb r0, [r2]
- lsls r5, r0
- strh r5, [r1]
- movs r0, 0x1
- mov r3, r9
- strh r0, [r3]
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_082E1A04: .4byte 0x03007864
-_082E1A08: .4byte 0x03001a78
-_082E1A0C: .4byte 0x04000208
-_082E1A10: .4byte 0x03001a74
-_082E1A14: .4byte 0x04000200
-_082E1A18: .4byte 0x03001a70
-_082E1A1C: .4byte 0x03007840
-_082E1A20: .4byte 0x03001a72
-_082E1A24: .4byte 0x04000202
- thumb_func_end StartFlashTimer
-
- thumb_func_start StopFlashTimer
-StopFlashTimer: @ 82E1A28
- ldr r3, _082E1A58
- movs r1, 0
- strh r1, [r3]
- ldr r2, _082E1A5C
- ldr r0, [r2]
- strh r1, [r0]
- adds r0, 0x2
- str r0, [r2]
- strh r1, [r0]
- subs r0, 0x2
- str r0, [r2]
- ldr r2, _082E1A60
- ldr r0, _082E1A64
- ldrb r0, [r0]
- movs r1, 0x8
- lsls r1, r0
- ldrh r0, [r2]
- bics r0, r1
- strh r0, [r2]
- ldr r0, _082E1A68
- ldrh r0, [r0]
- strh r0, [r3]
- bx lr
- .align 2, 0
-_082E1A58: .4byte 0x04000208
-_082E1A5C: .4byte 0x03001a74
-_082E1A60: .4byte 0x04000200
-_082E1A64: .4byte 0x03001a70
-_082E1A68: .4byte 0x03001a78
- thumb_func_end StopFlashTimer
-
- thumb_func_start ReadFlash1
-ReadFlash1: @ 82E1A6C
- ldrb r0, [r0]
- bx lr
- thumb_func_end ReadFlash1
-
- thumb_func_start SetReadFlash1
-SetReadFlash1: @ 82E1A70
- push {lr}
- adds r2, r0, 0
- ldr r1, _082E1A8C
- adds r0, r2, 0x1
- str r0, [r1]
- ldr r3, _082E1A90
- movs r0, 0x1
- eors r3, r0
- ldr r0, _082E1A94
- ldr r1, _082E1A90
- subs r0, r1
- lsls r0, 15
- b _082E1AA4
- .align 2, 0
-_082E1A8C: .4byte 0x03007844
-_082E1A90: .4byte ReadFlash1 + 1
-_082E1A94: .4byte SetReadFlash1 + 1
-_082E1A98:
- ldrh r0, [r3]
- strh r0, [r2]
- adds r3, 0x2
- adds r2, 0x2
- subs r0, r1, 0x1
- lsls r0, 16
-_082E1AA4:
- lsrs r1, r0, 16
- cmp r1, 0
- bne _082E1A98
- pop {r0}
- bx r0
- thumb_func_end SetReadFlash1
-
- thumb_func_start ReadFlash_Core
-ReadFlash_Core: @ 82E1AB0
- push {r4,lr}
- adds r4, r0, 0
- subs r3, r2, 0x1
- cmp r2, 0
- beq _082E1ACC
- movs r2, 0x1
- negs r2, r2
-_082E1ABE:
- ldrb r0, [r4]
- strb r0, [r1]
- adds r4, 0x1
- adds r1, 0x1
- subs r3, 0x1
- cmp r3, r2
- bne _082E1ABE
-_082E1ACC:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end ReadFlash_Core
-
- thumb_func_start ReadFlash
-ReadFlash: @ 82E1AD4
- push {r4-r7,lr}
- sub sp, 0x80
- adds r5, r1, 0
- adds r6, r2, 0
- adds r7, r3, 0
- lsls r3, r0, 16
- lsrs r4, r3, 16
- ldr r2, _082E1B20
- ldrh r0, [r2]
- ldr r1, _082E1B24
- ands r0, r1
- movs r1, 0x3
- orrs r0, r1
- strh r0, [r2]
- ldr r0, _082E1B28
- ldr r0, [r0]
- ldr r1, [r0]
- movs r0, 0x80
- lsls r0, 10
- cmp r1, r0
- bne _082E1B0C
- lsrs r0, r3, 20
- lsls r0, 24
- lsrs r0, 24
- bl SwitchFlashBank
- movs r0, 0xF
- ands r4, r0
-_082E1B0C:
- ldr r3, _082E1B2C
- movs r0, 0x1
- eors r3, r0
- mov r2, sp
- ldr r0, _082E1B30
- ldr r1, _082E1B2C
- subs r0, r1
- lsls r0, 15
- b _082E1B40
- .align 2, 0
-_082E1B20: .4byte 0x04000204
-_082E1B24: .4byte 0x0000fffc
-_082E1B28: .4byte 0x03007850
-_082E1B2C: .4byte ReadFlash_Core + 1
-_082E1B30: .4byte ReadFlash + 1
-_082E1B34:
- ldrh r0, [r3]
- strh r0, [r2]
- adds r3, 0x2
- adds r2, 0x2
- subs r0, r1, 0x1
- lsls r0, 16
-_082E1B40:
- lsrs r1, r0, 16
- cmp r1, 0
- bne _082E1B34
- mov r3, sp
- adds r3, 0x1
- ldr r0, _082E1B6C
- ldr r0, [r0]
- ldrb r0, [r0, 0x8]
- lsls r4, r0
- adds r0, r4, 0
- movs r2, 0xE0
- lsls r2, 20
- adds r1, r5, r2
- adds r0, r1
- adds r1, r6, 0
- adds r2, r7, 0
- bl _call_via_r3
- add sp, 0x80
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_082E1B6C: .4byte 0x03007850
- thumb_func_end ReadFlash
-
- thumb_func_start VerifyFlashSector_Core
-VerifyFlashSector_Core: @ 82E1B70
- push {r4,r5,lr}
- adds r5, r0, 0
- adds r3, r1, 0
- subs r4, r2, 0x1
- cmp r2, 0
- beq _082E1B96
- movs r2, 0x1
- negs r2, r2
-_082E1B80:
- ldrb r1, [r3]
- ldrb r0, [r5]
- adds r5, 0x1
- adds r3, 0x1
- cmp r1, r0
- beq _082E1B90
- subs r0, r3, 0x1
- b _082E1B98
-_082E1B90:
- subs r4, 0x1
- cmp r4, r2
- bne _082E1B80
-_082E1B96:
- movs r0, 0
-_082E1B98:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end VerifyFlashSector_Core
-
- thumb_func_start VerifyFlashSector
-VerifyFlashSector: @ 82E1BA0
- push {r4,r5,lr}
- sub sp, 0x100
- adds r5, r1, 0
- lsls r3, r0, 16
- lsrs r4, r3, 16
- ldr r2, _082E1BE8
- ldrh r0, [r2]
- ldr r1, _082E1BEC
- ands r0, r1
- movs r1, 0x3
- orrs r0, r1
- strh r0, [r2]
- ldr r0, _082E1BF0
- ldr r0, [r0]
- ldr r1, [r0]
- movs r0, 0x80
- lsls r0, 10
- cmp r1, r0
- bne _082E1BD4
- lsrs r0, r3, 20
- lsls r0, 24
- lsrs r0, 24
- bl SwitchFlashBank
- movs r0, 0xF
- ands r4, r0
-_082E1BD4:
- ldr r3, _082E1BF4
- movs r0, 0x1
- eors r3, r0
- mov r2, sp
- ldr r0, _082E1BF8
- ldr r1, _082E1BF4
- subs r0, r1
- lsls r0, 15
- b _082E1C08
- .align 2, 0
-_082E1BE8: .4byte 0x04000204
-_082E1BEC: .4byte 0x0000fffc
-_082E1BF0: .4byte 0x03007850
-_082E1BF4: .4byte VerifyFlashSector_Core + 1
-_082E1BF8: .4byte VerifyFlashSector + 1
-_082E1BFC:
- ldrh r0, [r3]
- strh r0, [r2]
- adds r3, 0x2
- adds r2, 0x2
- subs r0, r1, 0x1
- lsls r0, 16
-_082E1C08:
- lsrs r1, r0, 16
- cmp r1, 0
- bne _082E1BFC
- mov r3, sp
- adds r3, 0x1
- ldr r0, _082E1C34
- ldr r0, [r0]
- ldrb r1, [r0, 0x8]
- lsls r4, r1
- adds r1, r4, 0
- movs r2, 0xE0
- lsls r2, 20
- adds r1, r2
- ldrh r2, [r0, 0x4]
- adds r0, r5, 0
- bl _call_via_r3
- add sp, 0x100
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_082E1C34: .4byte 0x03007850
- thumb_func_end VerifyFlashSector
-
- thumb_func_start VerifyFlashSectorFirstNBytes
-VerifyFlashSectorFirstNBytes: @ 82E1C38
- push {r4-r6,lr}
- sub sp, 0x100
- adds r5, r1, 0
- adds r6, r2, 0
- lsls r2, r0, 16
- lsrs r4, r2, 16
- ldr r0, _082E1C80
- ldr r0, [r0]
- ldr r1, [r0]
- movs r0, 0x80
- lsls r0, 10
- cmp r1, r0
- bne _082E1C60
- lsrs r0, r2, 20
- lsls r0, 24
- lsrs r0, 24
- bl SwitchFlashBank
- movs r0, 0xF
- ands r4, r0
-_082E1C60:
- ldr r2, _082E1C84
- ldrh r0, [r2]
- ldr r1, _082E1C88
- ands r0, r1
- movs r1, 0x3
- orrs r0, r1
- strh r0, [r2]
- ldr r3, _082E1C8C
- movs r0, 0x1
- eors r3, r0
- mov r2, sp
- ldr r0, _082E1C90
- ldr r1, _082E1C8C
- subs r0, r1
- lsls r0, 15
- b _082E1CA0
- .align 2, 0
-_082E1C80: .4byte 0x03007850
-_082E1C84: .4byte 0x04000204
-_082E1C88: .4byte 0x0000fffc
-_082E1C8C: .4byte VerifyFlashSector_Core + 1
-_082E1C90: .4byte VerifyFlashSector + 1
-_082E1C94:
- ldrh r0, [r3]
- strh r0, [r2]
- adds r3, 0x2
- adds r2, 0x2
- subs r0, r1, 0x1
- lsls r0, 16
-_082E1CA0:
- lsrs r1, r0, 16
- cmp r1, 0
- bne _082E1C94
- mov r3, sp
- adds r3, 0x1
- ldr r0, _082E1CCC
- ldr r0, [r0]
- ldrb r1, [r0, 0x8]
- lsls r4, r1
- adds r1, r4, 0
- movs r0, 0xE0
- lsls r0, 20
- adds r1, r0
- adds r0, r5, 0
- adds r2, r6, 0
- bl _call_via_r3
- add sp, 0x100
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_082E1CCC: .4byte 0x03007850
- thumb_func_end VerifyFlashSectorFirstNBytes
-
- thumb_func_start ProgramFlashSectorsAndVerify
-ProgramFlashSectorsAndVerify: @ 82E1CD0
- push {r4-r6,lr}
- adds r5, r1, 0
- lsls r0, 16
- lsrs r4, r0, 16
- movs r6, 0
- b _082E1CE2
-_082E1CDC:
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
-_082E1CE2:
- cmp r6, 0x2
- bhi _082E1D08
- ldr r0, _082E1D10
- ldr r2, [r0]
- adds r0, r4, 0
- adds r1, r5, 0
- bl _call_via_r2
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, 0
- bne _082E1CDC
- adds r0, r4, 0
- adds r1, r5, 0
- bl VerifyFlashSector
- adds r2, r0, 0
- cmp r2, 0
- bne _082E1CDC
-_082E1D08:
- adds r0, r2, 0
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_082E1D10: .4byte 0x0300784c
- thumb_func_end ProgramFlashSectorsAndVerify
-
- thumb_func_start ProgramFlashSectorsVerifyFirstNBytes
-ProgramFlashSectorsVerifyFirstNBytes: @ 82E1D14
- push {r4-r7,lr}
- adds r5, r1, 0
- adds r7, r2, 0
- lsls r0, 16
- lsrs r4, r0, 16
- movs r6, 0
- b _082E1D28
-_082E1D22:
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
-_082E1D28:
- cmp r6, 0x2
- bhi _082E1D50
- ldr r0, _082E1D58
- ldr r2, [r0]
- adds r0, r4, 0
- adds r1, r5, 0
- bl _call_via_r2
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0
- bne _082E1D22
- adds r0, r4, 0
- adds r1, r5, 0
- adds r2, r7, 0
- bl VerifyFlashSectorFirstNBytes
- adds r3, r0, 0
- cmp r3, 0
- bne _082E1D22
-_082E1D50:
- adds r0, r3, 0
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_082E1D58: .4byte 0x0300784c
- thumb_func_end ProgramFlashSectorsVerifyFirstNBytes
-
- thumb_func_start IdentifyFlash
-IdentifyFlash: @ 82E1D5C
- push {r4,lr}
- ldr r2, _082E1D7C
- ldrh r0, [r2]
- ldr r1, _082E1D80
- ands r0, r1
- movs r1, 0x3
- orrs r0, r1
- strh r0, [r2]
- bl ReadFlashID
- lsls r0, 16
- lsrs r3, r0, 16
- ldr r2, _082E1D84
- movs r4, 0x1
- b _082E1D8A
- .align 2, 0
-_082E1D7C: .4byte 0x04000204
-_082E1D80: .4byte 0x0000fffc
-_082E1D84: .4byte 0x089a30d0
-_082E1D88:
- adds r2, 0x4
-_082E1D8A:
- ldr r1, [r2]
- adds r0, r1, 0
- adds r0, 0x2C
- ldrb r0, [r0]
- cmp r0, 0
- beq _082E1D9E
- ldrh r0, [r1, 0x2C]
- cmp r3, r0
- bne _082E1D88
- movs r4, 0
-_082E1D9E:
- ldr r1, _082E1DE0
- ldr r0, [r2]
- ldr r0, [r0]
- str r0, [r1]
- ldr r1, _082E1DE4
- ldr r0, [r2]
- ldr r0, [r0, 0x4]
- str r0, [r1]
- ldr r1, _082E1DE8
- ldr r0, [r2]
- ldr r0, [r0, 0x8]
- str r0, [r1]
- ldr r1, _082E1DEC
- ldr r0, [r2]
- ldr r0, [r0, 0xC]
- str r0, [r1]
- ldr r1, _082E1DF0
- ldr r0, [r2]
- ldr r0, [r0, 0x10]
- str r0, [r1]
- ldr r1, _082E1DF4
- ldr r0, [r2]
- ldr r0, [r0, 0x14]
- str r0, [r1]
- ldr r1, _082E1DF8
- ldr r0, [r2]
- adds r0, 0x18
- str r0, [r1]
- adds r0, r4, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_082E1DE0: .4byte 0x03007854
-_082E1DE4: .4byte 0x0300784c
-_082E1DE8: .4byte 0x0300785c
-_082E1DEC: .4byte 0x03007860
-_082E1DF0: .4byte 0x03007848
-_082E1DF4: .4byte 0x03007864
-_082E1DF8: .4byte 0x03007850
- thumb_func_end IdentifyFlash
-
- thumb_func_start PollingSR_COMMON
-PollingSR_COMMON: @ 82E1DFC
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- adds r4, r1, 0
- lsls r0, 24
- lsrs r7, r0, 24
- lsls r2, 24
- lsrs r5, r2, 24
- movs r0, 0
- mov r8, r0
- adds r0, r7, 0
- bl StartFlashTimer
- ldr r6, _082E1E20
- ldr r1, _082E1E24
- mov r9, r1
- b _082E1E60
- .align 2, 0
-_082E1E20: .4byte 0x03007844
-_082E1E24: .4byte 0x0e005555
-_082E1E28:
- movs r0, 0xF0
- mov r1, r9
- strb r0, [r1]
- movs r0, 0xA0
- lsls r0, 8
- b _082E1E56
-_082E1E34:
- ldr r0, _082E1E5C
- ldrb r0, [r0]
- cmp r0, 0
- beq _082E1E60
- ldr r1, [r6]
- adds r0, r4, 0
- bl _call_via_r1
- lsls r0, 24
- lsrs r0, 24
- cmp r0, r5
- beq _082E1E88
- movs r0, 0xF0
- mov r1, r9
- strb r0, [r1]
- movs r0, 0xC0
- lsls r0, 8
-_082E1E56:
- orrs r7, r0
- mov r8, r7
- b _082E1E88
- .align 2, 0
-_082E1E5C: .4byte 0x03007840
-_082E1E60:
- ldr r1, [r6]
- adds r0, r4, 0
- bl _call_via_r1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, r5
- beq _082E1E88
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _082E1E34
- ldr r1, [r6]
- adds r0, r4, 0
- bl _call_via_r1
- lsls r0, 24
- lsrs r0, 24
- cmp r0, r5
- bne _082E1E28
-_082E1E88:
- bl StopFlashTimer
- mov r0, r8
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end PollingSR_COMMON
-
- thumb_func_start EraseFlashChip
-EraseFlashChip: @ 82E1E9C
- push {r4-r6,lr}
- sub sp, 0x40
- ldr r5, _082E1EF8
- ldrh r1, [r5]
- ldr r6, _082E1EFC
- ands r1, r6
- ldr r0, _082E1F00
- ldr r0, [r0]
- ldrh r0, [r0, 0x10]
- orrs r1, r0
- strh r1, [r5]
- ldr r1, _082E1F04
- movs r4, 0xAA
- strb r4, [r1]
- ldr r3, _082E1F08
- movs r2, 0x55
- strb r2, [r3]
- movs r0, 0x80
- strb r0, [r1]
- strb r4, [r1]
- strb r2, [r3]
- movs r0, 0x10
- strb r0, [r1]
- mov r0, sp
- bl SetReadFlash1
- ldr r0, _082E1F0C
- movs r1, 0xE0
- lsls r1, 20
- ldr r3, [r0]
- movs r0, 0x3
- movs r2, 0xFF
- bl _call_via_r3
- lsls r0, 16
- lsrs r0, 16
- ldrh r1, [r5]
- ands r1, r6
- movs r2, 0x3
- orrs r1, r2
- strh r1, [r5]
- add sp, 0x40
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_082E1EF8: .4byte 0x04000204
-_082E1EFC: .4byte 0x0000fffc
-_082E1F00: .4byte 0x03007850
-_082E1F04: .4byte 0x0e005555
-_082E1F08: .4byte 0x0e002aaa
-_082E1F0C: .4byte 0x03007848
- thumb_func_end EraseFlashChip
-
- thumb_func_start EraseFlashSector
-EraseFlashSector: @ 82E1F10
- push {r4-r7,lr}
- sub sp, 0x40
- lsls r0, 16
- lsrs r6, r0, 16
- ldr r0, _082E1F28
- ldr r0, [r0]
- ldrh r0, [r0, 0xA]
- cmp r6, r0
- bcc _082E1F30
- ldr r0, _082E1F2C
- b _082E1FD0
- .align 2, 0
-_082E1F28: .4byte 0x03007850
-_082E1F2C: .4byte 0x000080ff
-_082E1F30:
- lsrs r0, r6, 4
- lsls r0, 24
- lsrs r0, 24
- bl SwitchFlashBank
- movs r0, 0xF
- ands r6, r0
- movs r7, 0
-_082E1F40:
- ldr r3, _082E1FA8
- ldrh r1, [r3]
- ldr r0, _082E1FAC
- ands r1, r0
- ldr r0, _082E1FB0
- ldr r2, [r0]
- ldrh r0, [r2, 0x10]
- orrs r1, r0
- strh r1, [r3]
- ldrb r4, [r2, 0x8]
- adds r0, r6, 0
- lsls r0, r4
- adds r4, r0, 0
- movs r0, 0xE0
- lsls r0, 20
- adds r4, r0
- ldr r1, _082E1FB4
- movs r5, 0xAA
- strb r5, [r1]
- ldr r3, _082E1FB8
- movs r2, 0x55
- strb r2, [r3]
- movs r0, 0x80
- strb r0, [r1]
- strb r5, [r1]
- strb r2, [r3]
- movs r0, 0x30
- strb r0, [r4]
- mov r0, sp
- bl SetReadFlash1
- ldr r0, _082E1FBC
- ldr r3, [r0]
- movs r0, 0x2
- adds r1, r4, 0
- movs r2, 0xFF
- bl _call_via_r3
- lsls r0, 16
- lsrs r3, r0, 16
- movs r0, 0xA0
- lsls r0, 8
- ands r0, r3
- cmp r0, 0
- beq _082E1FC0
- cmp r7, 0x3
- bhi _082E1FC0
- adds r0, r7, 0x1
- lsls r0, 16
- lsrs r7, r0, 16
- b _082E1F40
- .align 2, 0
-_082E1FA8: .4byte 0x04000204
-_082E1FAC: .4byte 0x0000fffc
-_082E1FB0: .4byte 0x03007850
-_082E1FB4: .4byte 0x0e005555
-_082E1FB8: .4byte 0x0e002aaa
-_082E1FBC: .4byte 0x03007848
-_082E1FC0:
- ldr r2, _082E1FD8
- ldrh r0, [r2]
- ldr r1, _082E1FDC
- ands r0, r1
- movs r1, 0x3
- orrs r0, r1
- strh r0, [r2]
- adds r0, r3, 0
-_082E1FD0:
- add sp, 0x40
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_082E1FD8: .4byte 0x04000204
-_082E1FDC: .4byte 0x0000fffc
- thumb_func_end EraseFlashSector
-
- thumb_func_start ProgramFlashByte
-ProgramFlashByte: @ 82E1FE0
- push {r4-r7,lr}
- sub sp, 0x40
- adds r6, r1, 0
- lsls r1, r0, 16
- lsrs r4, r1, 16
- lsls r2, 24
- lsrs r7, r2, 24
- ldr r5, _082E2050
- ldr r0, [r5]
- ldr r0, [r0, 0x4]
- cmp r6, r0
- bcs _082E2068
- lsrs r0, r1, 20
- lsls r0, 24
- lsrs r0, 24
- bl SwitchFlashBank
- movs r0, 0xF
- ldr r1, [r5]
- ands r4, r0
- ldrb r1, [r1, 0x8]
- lsls r4, r1
- movs r1, 0xE0
- lsls r1, 20
- adds r0, r6, r1
- adds r4, r0
- mov r0, sp
- bl SetReadFlash1
- ldr r2, _082E2054
- ldrh r0, [r2]
- ldr r1, _082E2058
- ands r0, r1
- ldr r1, [r5]
- ldrh r1, [r1, 0x10]
- orrs r0, r1
- strh r0, [r2]
- ldr r2, _082E205C
- movs r0, 0xAA
- strb r0, [r2]
- ldr r1, _082E2060
- movs r0, 0x55
- strb r0, [r1]
- movs r0, 0xA0
- strb r0, [r2]
- strb r7, [r4]
- ldr r0, _082E2064
- ldr r3, [r0]
- movs r0, 0x1
- adds r1, r4, 0
- adds r2, r7, 0
- bl _call_via_r3
- lsls r0, 16
- lsrs r0, 16
- b _082E206C
- .align 2, 0
-_082E2050: .4byte 0x03007850
-_082E2054: .4byte 0x04000204
-_082E2058: .4byte 0x0000fffc
-_082E205C: .4byte 0x0e005555
-_082E2060: .4byte 0x0e002aaa
-_082E2064: .4byte 0x03007848
-_082E2068:
- movs r0, 0x80
- lsls r0, 8
-_082E206C:
- add sp, 0x40
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end ProgramFlashByte
-
- thumb_func_start ProgramFlashByteInternal
-ProgramFlashByteInternal: @ 82E2074
- push {r4,lr}
- ldr r4, _082E20A0
- movs r2, 0xAA
- strb r2, [r4]
- ldr r3, _082E20A4
- movs r2, 0x55
- strb r2, [r3]
- movs r2, 0xA0
- strb r2, [r4]
- ldrb r2, [r0]
- strb r2, [r1]
- ldr r3, _082E20A8
- ldrb r2, [r0]
- ldr r3, [r3]
- movs r0, 0x1
- bl _call_via_r3
- lsls r0, 16
- lsrs r0, 16
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_082E20A0: .4byte 0x0e005555
-_082E20A4: .4byte 0x0e002aaa
-_082E20A8: .4byte 0x03007848
- thumb_func_end ProgramFlashByteInternal
-
- thumb_func_start ProgramFlashSector
-ProgramFlashSector: @ 82E20AC
- push {r4-r7,lr}
- sub sp, 0x40
- adds r7, r1, 0
- lsls r0, 16
- lsrs r4, r0, 16
- ldr r0, _082E20C4
- ldr r0, [r0]
- ldrh r0, [r0, 0xA]
- cmp r4, r0
- bcc _082E20CC
- ldr r0, _082E20C8
- b _082E2146
- .align 2, 0
-_082E20C4: .4byte 0x03007850
-_082E20C8: .4byte 0x000080ff
-_082E20CC:
- adds r0, r4, 0
- bl EraseFlashSector
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0
- bne _082E2144
- lsrs r0, r4, 4
- lsls r0, 24
- lsrs r0, 24
- bl SwitchFlashBank
- movs r0, 0xF
- ands r4, r0
- mov r0, sp
- bl SetReadFlash1
- ldr r3, _082E2114
- ldrh r1, [r3]
- ldr r0, _082E2118
- ands r1, r0
- ldr r0, _082E211C
- ldr r2, [r0]
- ldrh r0, [r2, 0x10]
- orrs r1, r0
- strh r1, [r3]
- ldr r1, _082E2120
- ldr r0, [r2, 0x4]
- strh r0, [r1]
- ldrb r0, [r2, 0x8]
- lsls r4, r0
- movs r0, 0xE0
- lsls r0, 20
- adds r4, r0
- adds r6, r1, 0
- b _082E212E
- .align 2, 0
-_082E2114: .4byte 0x04000204
-_082E2118: .4byte 0x0000fffc
-_082E211C: .4byte 0x03007850
-_082E2120: .4byte 0x03007858
-_082E2124:
- ldrh r0, [r6]
- subs r0, 0x1
- strh r0, [r6]
- adds r7, 0x1
- adds r4, 0x1
-_082E212E:
- ldrh r0, [r6]
- cmp r0, 0
- beq _082E2144
- adds r0, r7, 0
- adds r1, r4, 0
- bl ProgramFlashByteInternal
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0
- beq _082E2124
-_082E2144:
- adds r0, r5, 0
-_082E2146:
- add sp, 0x40
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end ProgramFlashSector
-
- thumb_func_start sub_82E2150
-sub_82E2150: @ 82E2150
- push {r7,lr}
- mov r7, sp
- bl sub_82E29F0
- ldr r0, _082E2164
- movs r1, 0
- strb r1, [r0]
- pop {r7}
- pop {r0}
- bx r0
- .align 2, 0
-_082E2164: .4byte 0x03001a7e
- thumb_func_end sub_82E2150
-
- thumb_func_start sub_82E2168
-sub_82E2168: @ 82E2168
- push {r7,lr}
- mov r7, sp
- bl sub_82E2A04
- ldr r0, _082E217C
- movs r1, 0x1
- strb r1, [r0]
- pop {r7}
- pop {r0}
- bx r0
- .align 2, 0
-_082E217C: .4byte 0x03001a7e
- thumb_func_end sub_82E2168
-
- thumb_func_start sub_82E2180
-sub_82E2180: @ 82E2180
- push {r7,lr}
- sub sp, 0x10
- mov r7, sp
- adds r1, r7, 0x4
- adds r0, r1, 0
- bl sub_82E22DC
- lsls r1, r0, 24
- lsrs r0, r1, 24
- cmp r0, 0
- bne _082E219A
- movs r0, 0
- b _082E224E
-_082E219A:
- adds r0, r7, 0
- movs r1, 0
- strb r1, [r0]
- adds r0, r7, 0x4
- ldrb r1, [r0, 0x7]
- movs r2, 0xC0
- adds r0, r1, 0
- ands r0, r2
- adds r2, r0, 0
- lsls r1, r2, 24
- lsrs r0, r1, 24
- cmp r0, 0x80
- beq _082E21CA
- adds r0, r7, 0x4
- ldrb r1, [r0, 0x7]
- movs r2, 0xC0
- adds r0, r1, 0
- ands r0, r2
- adds r2, r0, 0
- lsls r1, r2, 24
- lsrs r0, r1, 24
- cmp r0, 0
- bne _082E21E8
- b _082E21CA
-_082E21CA:
- bl sub_82E2258
- lsls r1, r0, 24
- lsrs r0, r1, 24
- cmp r0, 0
- bne _082E21DA
- movs r0, 0
- b _082E224E
-_082E21DA:
- adds r1, r7, 0
- adds r0, r7, 0
- adds r1, r7, 0
- ldrb r2, [r1]
- adds r1, r2, 0x1
- adds r2, r1, 0
- strb r2, [r0]
-_082E21E8:
- adds r1, r7, 0x4
- adds r0, r1, 0
- bl sub_82E259C
- adds r0, r7, 0x4
- ldrb r1, [r0, 0x6]
- movs r2, 0x80
- adds r0, r1, 0
- ands r0, r2
- adds r2, r0, 0
- lsls r1, r2, 24
- lsrs r0, r1, 24
- cmp r0, 0
- beq _082E2236
- bl sub_82E2258
- lsls r1, r0, 24
- lsrs r0, r1, 24
- cmp r0, 0
- bne _082E2228
- adds r0, r7, 0
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r1, r0, 0
- movs r2, 0xF
- adds r0, r1, 0
- bics r0, r2
- adds r1, r0, 0
- lsls r0, r1, 24
- lsrs r1, r0, 24
- adds r0, r1, 0
- b _082E224E
-_082E2228:
- adds r1, r7, 0
- adds r0, r7, 0
- adds r1, r7, 0
- ldrb r2, [r1]
- adds r1, r2, 0x1
- adds r2, r1, 0
- strb r2, [r0]
-_082E2236:
- adds r0, r7, 0
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r1, r0, 0
- movs r2, 0x1
- adds r0, r1, 0
- orrs r0, r2
- adds r1, r0, 0
- lsls r0, r1, 24
- lsrs r1, r0, 24
- adds r0, r1, 0
- b _082E224E
-_082E224E:
- add sp, 0x10
- pop {r7}
- pop {r1}
- bx r1
- thumb_func_end sub_82E2180
-
- thumb_func_start sub_82E2258
-sub_82E2258: @ 82E2258
- push {r7,lr}
- sub sp, 0x10
- mov r7, sp
- ldr r0, _082E226C
- ldrb r1, [r0]
- cmp r1, 0x1
- bne _082E2270
- movs r0, 0
- b _082E22D4
- .align 2, 0
-_082E226C: .4byte 0x03001a7e
-_082E2270:
- ldr r0, _082E22C8
- movs r1, 0x1
- strb r1, [r0]
- ldr r0, _082E22CC
- movs r1, 0x1
- strh r1, [r0]
- ldr r0, _082E22CC
- movs r1, 0x5
- strh r1, [r0]
- ldr r0, _082E22D0
- movs r1, 0x7
- strh r1, [r0]
- movs r0, 0x60
- bl sub_82E2820
- ldr r0, _082E22CC
- movs r1, 0x1
- strh r1, [r0]
- ldr r0, _082E22CC
- movs r1, 0x1
- strh r1, [r0]
- ldr r0, _082E22C8
- movs r1, 0
- strb r1, [r0]
- adds r0, r7, 0x4
- ldrb r1, [r0, 0x7]
- movs r2, 0
- ands r1, r2
- adds r2, r1, 0
- movs r3, 0x40
- adds r1, r2, 0
- orrs r1, r3
- adds r2, r1, 0
- strb r2, [r0, 0x7]
- adds r1, r7, 0x4
- adds r0, r1, 0
- bl sub_82E23A8
- adds r1, r7, 0
- strb r0, [r1]
- adds r0, r7, 0
- ldrb r1, [r0]
- adds r0, r1, 0
- b _082E22D4
- .align 2, 0
-_082E22C8: .4byte 0x03001a7e
-_082E22CC: .4byte _080000C4
-_082E22D0: .4byte _080000C6
-_082E22D4:
- add sp, 0x10
- pop {r7}
- pop {r1}
- bx r1
- thumb_func_end sub_82E2258
-
- thumb_func_start sub_82E22DC
-sub_82E22DC: @ 82E22DC
- push {r4,r7,lr}
- sub sp, 0x8
- mov r7, sp
- str r0, [r7]
- ldr r0, _082E22F0
- ldrb r1, [r0]
- cmp r1, 0x1
- bne _082E22F4
- movs r0, 0
- b _082E23A0
- .align 2, 0
-_082E22F0: .4byte 0x03001a7e
-_082E22F4:
- ldr r0, _082E2394
- movs r1, 0x1
- strb r1, [r0]
- ldr r0, _082E2398
- movs r1, 0x1
- strh r1, [r0]
- ldr r0, _082E2398
- movs r1, 0x5
- strh r1, [r0]
- ldr r0, _082E239C
- movs r1, 0x7
- strh r1, [r0]
- movs r0, 0x63
- bl sub_82E2820
- ldr r0, _082E239C
- movs r1, 0x5
- strh r1, [r0]
- bl sub_82E2964
- adds r1, r7, 0x4
- strb r0, [r1]
- ldr r0, [r7]
- adds r1, r7, 0x4
- ldrb r2, [r1]
- movs r3, 0xC0
- adds r1, r2, 0
- ands r1, r3
- adds r2, r7, 0x4
- ldrb r3, [r2]
- movs r4, 0x20
- adds r2, r3, 0
- ands r2, r4
- adds r4, r2, 0
- lsls r3, r4, 24
- lsrs r2, r3, 24
- lsrs r3, r2, 3
- adds r2, r3, 0
- orrs r1, r2
- adds r2, r7, 0x4
- ldrb r3, [r2]
- movs r4, 0x8
- adds r2, r3, 0
- ands r2, r4
- adds r4, r2, 0
- lsls r3, r4, 24
- lsrs r2, r3, 24
- lsrs r3, r2, 2
- adds r2, r3, 0
- orrs r1, r2
- adds r2, r7, 0x4
- ldrb r3, [r2]
- movs r4, 0x2
- adds r2, r3, 0
- ands r2, r4
- adds r4, r2, 0
- lsls r3, r4, 24
- lsrs r2, r3, 24
- lsrs r3, r2, 1
- adds r2, r3, 0
- orrs r1, r2
- ldrb r2, [r0, 0x7]
- movs r3, 0
- ands r2, r3
- adds r3, r2, 0
- adds r2, r3, 0
- orrs r2, r1
- adds r1, r2, 0
- strb r1, [r0, 0x7]
- ldr r0, _082E2398
- movs r1, 0x1
- strh r1, [r0]
- ldr r0, _082E2398
- movs r1, 0x1
- strh r1, [r0]
- ldr r0, _082E2394
- movs r1, 0
- strb r1, [r0]
- movs r0, 0x1
- b _082E23A0
- .align 2, 0
-_082E2394: .4byte 0x03001a7e
-_082E2398: .4byte _080000C4
-_082E239C: .4byte _080000C6
-_082E23A0:
- add sp, 0x8
- pop {r4,r7}
- pop {r1}
- bx r1
- thumb_func_end sub_82E22DC
-
- thumb_func_start sub_82E23A8
-sub_82E23A8: @ 82E23A8
- push {r4,r7,lr}
- sub sp, 0x8
- mov r7, sp
- str r0, [r7]
- ldr r0, _082E23BC
- ldrb r1, [r0]
- cmp r1, 0x1
- bne _082E23C0
- movs r0, 0
- b _082E2448
- .align 2, 0
-_082E23BC: .4byte 0x03001a7e
-_082E23C0:
- ldr r0, _082E243C
- movs r1, 0x1
- strb r1, [r0]
- ldr r0, _082E2440
- movs r1, 0x1
- strh r1, [r0]
- ldr r0, _082E2440
- movs r1, 0x5
- strh r1, [r0]
- adds r0, r7, 0x4
- ldr r1, [r7]
- ldrb r2, [r1, 0x7]
- movs r3, 0x4
- adds r1, r2, 0
- ands r1, r3
- adds r2, r1, 0
- lsls r1, r2, 3
- ldr r2, [r7]
- ldrb r3, [r2, 0x7]
- movs r4, 0x2
- adds r2, r3, 0
- ands r2, r4
- adds r3, r2, 0
- lsls r2, r3, 2
- adds r3, r2, 0
- movs r4, 0x40
- adds r2, r3, 0
- orrs r2, r4
- orrs r1, r2
- ldr r2, [r7]
- ldrb r3, [r2, 0x7]
- movs r4, 0x1
- adds r2, r3, 0
- ands r2, r4
- adds r3, r2, 0
- lsls r2, r3, 1
- orrs r1, r2
- adds r2, r1, 0
- strb r2, [r0]
- ldr r0, _082E2444
- movs r1, 0x7
- strh r1, [r0]
- movs r0, 0x62
- bl sub_82E2820
- adds r0, r7, 0x4
- ldrb r1, [r0]
- adds r0, r1, 0
- bl sub_82E28C4
- ldr r0, _082E2440
- movs r1, 0x1
- strh r1, [r0]
- ldr r0, _082E2440
- movs r1, 0x1
- strh r1, [r0]
- ldr r0, _082E243C
- movs r1, 0
- strb r1, [r0]
- movs r0, 0x1
- b _082E2448
- .align 2, 0
-_082E243C: .4byte 0x03001a7e
-_082E2440: .4byte _080000C4
-_082E2444: .4byte _080000C6
-_082E2448:
- add sp, 0x8
- pop {r4,r7}
- pop {r1}
- bx r1
- thumb_func_end sub_82E23A8
-
- thumb_func_start sub_82E2450
-sub_82E2450: @ 82E2450
- push {r7,lr}
- sub sp, 0x8
- mov r7, sp
- str r0, [r7]
- ldr r0, _082E2464
- ldrb r1, [r0]
- cmp r1, 0x1
- bne _082E2468
- movs r0, 0
- b _082E24F8
- .align 2, 0
-_082E2464: .4byte 0x03001a7e
-_082E2468:
- ldr r0, _082E249C
- movs r1, 0x1
- strb r1, [r0]
- ldr r0, _082E24A0
- movs r1, 0x1
- strh r1, [r0]
- ldr r0, _082E24A0
- movs r1, 0x5
- strh r1, [r0]
- ldr r0, _082E24A4
- movs r1, 0x7
- strh r1, [r0]
- movs r0, 0x65
- bl sub_82E2820
- ldr r0, _082E24A4
- movs r1, 0x5
- strh r1, [r0]
- adds r0, r7, 0x4
- movs r1, 0
- strb r1, [r0]
-_082E2492:
- adds r0, r7, 0x4
- ldrb r1, [r0]
- cmp r1, 0x6
- bls _082E24A8
- b _082E24C6
- .align 2, 0
-_082E249C: .4byte 0x03001a7e
-_082E24A0: .4byte _080000C4
-_082E24A4: .4byte _080000C6
-_082E24A8:
- bl sub_82E2964
- adds r1, r7, 0x4
- ldrb r2, [r1]
- ldr r3, [r7]
- adds r1, r2, r3
- strb r0, [r1]
- adds r1, r7, 0x4
- adds r0, r7, 0x4
- adds r1, r7, 0x4
- ldrb r2, [r1]
- adds r1, r2, 0x1
- adds r2, r1, 0
- strb r2, [r0]
- b _082E2492
-_082E24C6:
- ldr r1, [r7]
- adds r0, r1, 0x4
- ldr r2, [r7]
- adds r1, r2, 0x4
- ldrb r2, [r1]
- movs r3, 0x7F
- adds r1, r2, 0
- ands r1, r3
- adds r2, r1, 0
- strb r2, [r0]
- ldr r0, _082E24F0
- movs r1, 0x1
- strh r1, [r0]
- ldr r0, _082E24F0
- movs r1, 0x1
- strh r1, [r0]
- ldr r0, _082E24F4
- movs r1, 0
- strb r1, [r0]
- movs r0, 0x1
- b _082E24F8
- .align 2, 0
-_082E24F0: .4byte _080000C4
-_082E24F4: .4byte 0x03001a7e
-_082E24F8:
- add sp, 0x8
- pop {r7}
- pop {r1}
- bx r1
- thumb_func_end sub_82E2450
-
- thumb_func_start sub_82E2500
-sub_82E2500: @ 82E2500
- push {r7,lr}
- sub sp, 0x8
- mov r7, sp
- str r0, [r7]
- ldr r0, _082E2514
- ldrb r1, [r0]
- cmp r1, 0x1
- bne _082E2518
- movs r0, 0
- b _082E2594
- .align 2, 0
-_082E2514: .4byte 0x03001a7e
-_082E2518:
- ldr r0, _082E2548
- movs r1, 0x1
- strb r1, [r0]
- ldr r0, _082E254C
- movs r1, 0x1
- strh r1, [r0]
- ldr r0, _082E254C
- movs r1, 0x5
- strh r1, [r0]
- ldr r0, _082E2550
- movs r1, 0x7
- strh r1, [r0]
- movs r0, 0x64
- bl sub_82E2820
- adds r0, r7, 0x4
- movs r1, 0
- strb r1, [r0]
-_082E253C:
- adds r0, r7, 0x4
- ldrb r1, [r0]
- cmp r1, 0x6
- bls _082E2554
- b _082E2574
- .align 2, 0
-_082E2548: .4byte 0x03001a7e
-_082E254C: .4byte _080000C4
-_082E2550: .4byte _080000C6
-_082E2554:
- adds r0, r7, 0x4
- ldrb r1, [r0]
- ldr r2, [r7]
- adds r0, r1, r2
- ldrb r1, [r0]
- adds r0, r1, 0
- bl sub_82E28C4
- adds r1, r7, 0x4
- adds r0, r7, 0x4
- adds r1, r7, 0x4
- ldrb r2, [r1]
- adds r1, r2, 0x1
- adds r2, r1, 0
- strb r2, [r0]
- b _082E253C
-_082E2574:
- ldr r0, _082E258C
- movs r1, 0x1
- strh r1, [r0]
- ldr r0, _082E258C
- movs r1, 0x1
- strh r1, [r0]
- ldr r0, _082E2590
- movs r1, 0
- strb r1, [r0]
- movs r0, 0x1
- b _082E2594
- .align 2, 0
-_082E258C: .4byte _080000C4
-_082E2590: .4byte 0x03001a7e
-_082E2594:
- add sp, 0x8
- pop {r7}
- pop {r1}
- bx r1
- thumb_func_end sub_82E2500
-
- thumb_func_start sub_82E259C
-sub_82E259C: @ 82E259C
- push {r7,lr}
- sub sp, 0x8
- mov r7, sp
- str r0, [r7]
- ldr r0, _082E25B0
- ldrb r1, [r0]
- cmp r1, 0x1
- bne _082E25B4
- movs r0, 0
- b _082E2648
- .align 2, 0
-_082E25B0: .4byte 0x03001a7e
-_082E25B4:
- ldr r0, _082E25E8
- movs r1, 0x1
- strb r1, [r0]
- ldr r0, _082E25EC
- movs r1, 0x1
- strh r1, [r0]
- ldr r0, _082E25EC
- movs r1, 0x5
- strh r1, [r0]
- ldr r0, _082E25F0
- movs r1, 0x7
- strh r1, [r0]
- movs r0, 0x67
- bl sub_82E2820
- ldr r0, _082E25F0
- movs r1, 0x5
- strh r1, [r0]
- adds r0, r7, 0x4
- movs r1, 0
- strb r1, [r0]
-_082E25DE:
- adds r0, r7, 0x4
- ldrb r1, [r0]
- cmp r1, 0x2
- bls _082E25F4
- b _082E2614
- .align 2, 0
-_082E25E8: .4byte 0x03001a7e
-_082E25EC: .4byte _080000C4
-_082E25F0: .4byte _080000C6
-_082E25F4:
- bl sub_82E2964
- adds r1, r7, 0x4
- ldrb r2, [r1]
- ldr r3, [r7]
- adds r1, r2, r3
- adds r2, r1, 0x4
- strb r0, [r2]
- adds r1, r7, 0x4
- adds r0, r7, 0x4
- adds r1, r7, 0x4
- ldrb r2, [r1]
- adds r1, r2, 0x1
- adds r2, r1, 0
- strb r2, [r0]
- b _082E25DE
-_082E2614:
- ldr r1, [r7]
- adds r0, r1, 0x4
- ldr r2, [r7]
- adds r1, r2, 0x4
- ldrb r2, [r1]
- movs r3, 0x7F
- adds r1, r2, 0
- ands r1, r3
- adds r2, r1, 0
- strb r2, [r0]
- ldr r0, _082E2640
- movs r1, 0x1
- strh r1, [r0]
- ldr r0, _082E2640
- movs r1, 0x1
- strh r1, [r0]
- ldr r0, _082E2644
- movs r1, 0
- strb r1, [r0]
- movs r0, 0x1
- b _082E2648
- .align 2, 0
-_082E2640: .4byte _080000C4
-_082E2644: .4byte 0x03001a7e
-_082E2648:
- add sp, 0x8
- pop {r7}
- pop {r1}
- bx r1
- thumb_func_end sub_82E259C
-
- thumb_func_start sub_82E2650
-sub_82E2650: @ 82E2650
- push {r7,lr}
- sub sp, 0x8
- mov r7, sp
- str r0, [r7]
- ldr r0, _082E2664
- ldrb r1, [r0]
- cmp r1, 0x1
- bne _082E2668
- movs r0, 0
- b _082E26E4
- .align 2, 0
-_082E2664: .4byte 0x03001a7e
-_082E2668:
- ldr r0, _082E2698
- movs r1, 0x1
- strb r1, [r0]
- ldr r0, _082E269C
- movs r1, 0x1
- strh r1, [r0]
- ldr r0, _082E269C
- movs r1, 0x5
- strh r1, [r0]
- ldr r0, _082E26A0
- movs r1, 0x7
- strh r1, [r0]
- movs r0, 0x66
- bl sub_82E2820
- adds r0, r7, 0x4
- movs r1, 0
- strb r1, [r0]
-_082E268C:
- adds r0, r7, 0x4
- ldrb r1, [r0]
- cmp r1, 0x2
- bls _082E26A4
- b _082E26C6
- .align 2, 0
-_082E2698: .4byte 0x03001a7e
-_082E269C: .4byte _080000C4
-_082E26A0: .4byte _080000C6
-_082E26A4:
- adds r0, r7, 0x4
- ldrb r1, [r0]
- ldr r2, [r7]
- adds r0, r1, r2
- adds r1, r0, 0x4
- ldrb r2, [r1]
- adds r0, r2, 0
- bl sub_82E28C4
- adds r1, r7, 0x4
- adds r0, r7, 0x4
- adds r1, r7, 0x4
- ldrb r2, [r1]
- adds r1, r2, 0x1
- adds r2, r1, 0
- strb r2, [r0]
- b _082E268C
-_082E26C6:
- ldr r0, _082E26DC
- movs r1, 0x1
- strh r1, [r0]
- ldr r0, _082E26DC
- movs r1, 0x1
- strh r1, [r0]
- ldr r0, _082E26E0
- movs r1, 0
- strb r1, [r0]
- movs r0, 0x1
- b _082E26E4
- .align 2, 0
-_082E26DC: .4byte _080000C4
-_082E26E0: .4byte 0x03001a7e
-_082E26E4:
- add sp, 0x8
- pop {r7}
- pop {r1}
- bx r1
- thumb_func_end sub_82E2650
-
- thumb_func_start sub_82E26EC
-sub_82E26EC: @ 82E26EC
- push {r4,r7,lr}
- sub sp, 0xC
- mov r7, sp
- str r0, [r7]
- ldr r0, _082E2700
- ldrb r1, [r0]
- cmp r1, 0x1
- bne _082E2704
- movs r0, 0
- b _082E2818
- .align 2, 0
-_082E2700: .4byte 0x03001a7e
-_082E2704:
- ldr r0, _082E276C
- movs r1, 0x1
- strb r1, [r0]
- adds r0, r7, 0
- adds r0, 0x8
- ldr r1, [r7]
- ldrb r2, [r1, 0x8]
- movs r3, 0xF
- adds r1, r2, 0
- ands r1, r3
- ldr r2, [r7]
- ldrb r3, [r2, 0x8]
- lsrs r2, r3, 4
- adds r3, r2, 0
- movs r4, 0xF
- adds r2, r3, 0
- ands r2, r4
- adds r4, r2, 0
- lsls r3, r4, 24
- lsrs r2, r3, 24
- adds r4, r2, 0
- lsls r3, r4, 2
- adds r3, r2
- lsls r2, r3, 1
- adds r1, r2
- ldrb r2, [r0]
- movs r3, 0
- ands r2, r3
- adds r3, r2, 0
- adds r2, r3, 0
- orrs r2, r1
- adds r1, r2, 0
- strb r1, [r0]
- adds r0, r7, 0
- adds r0, 0x8
- ldrb r1, [r0]
- cmp r1, 0xB
- bhi _082E2770
- adds r0, r7, 0
- adds r0, 0x8
- ldr r1, [r7]
- ldrb r2, [r0]
- movs r3, 0
- ands r2, r3
- adds r3, r2, 0
- ldrb r1, [r1, 0x8]
- adds r2, r3, 0
- orrs r2, r1
- adds r1, r2, 0
- strb r1, [r0]
- b _082E278E
- .align 2, 0
-_082E276C: .4byte 0x03001a7e
-_082E2770:
- adds r0, r7, 0
- adds r0, 0x8
- ldr r1, [r7]
- ldrb r2, [r1, 0x8]
- movs r3, 0x80
- adds r1, r2, 0
- orrs r1, r3
- ldrb r2, [r0]
- movs r3, 0
- ands r2, r3
- adds r3, r2, 0
- adds r2, r3, 0
- orrs r2, r1
- adds r1, r2, 0
- strb r1, [r0]
-_082E278E:
- adds r0, r7, 0
- adds r0, 0x8
- ldr r1, [r7]
- ldrb r2, [r0, 0x1]
- movs r3, 0
- ands r2, r3
- adds r3, r2, 0
- ldrb r1, [r1, 0x9]
- adds r2, r3, 0
- orrs r2, r1
- adds r1, r2, 0
- strb r1, [r0, 0x1]
- ldr r0, _082E27D0
- movs r1, 0x1
- strh r1, [r0]
- ldr r0, _082E27D0
- movs r1, 0x5
- strh r1, [r0]
- ldr r0, _082E27D4
- movs r1, 0x7
- strh r1, [r0]
- movs r0, 0x68
- bl sub_82E2820
- adds r0, r7, 0x4
- movs r1, 0
- strb r1, [r0]
-_082E27C4:
- adds r0, r7, 0x4
- ldrb r1, [r0]
- cmp r1, 0x1
- bls _082E27D8
- b _082E27FA
- .align 2, 0
-_082E27D0: .4byte _080000C4
-_082E27D4: .4byte _080000C6
-_082E27D8:
- adds r0, r7, 0
- adds r0, 0x8
- adds r1, r7, 0x4
- ldrb r2, [r1]
- adds r0, r2
- ldrb r1, [r0]
- adds r0, r1, 0
- bl sub_82E28C4
- adds r1, r7, 0x4
- adds r0, r7, 0x4
- adds r1, r7, 0x4
- ldrb r2, [r1]
- adds r1, r2, 0x1
- adds r2, r1, 0
- strb r2, [r0]
- b _082E27C4
-_082E27FA:
- ldr r0, _082E2810
- movs r1, 0x1
- strh r1, [r0]
- ldr r0, _082E2810
- movs r1, 0x1
- strh r1, [r0]
- ldr r0, _082E2814
- movs r1, 0
- strb r1, [r0]
- movs r0, 0x1
- b _082E2818
- .align 2, 0
-_082E2810: .4byte _080000C4
-_082E2814: .4byte 0x03001a7e
-_082E2818:
- add sp, 0xC
- pop {r4,r7}
- pop {r1}
- bx r1
- thumb_func_end sub_82E26EC
-
- thumb_func_start sub_82E2820
-sub_82E2820: @ 82E2820
- push {r4,r5,r7,lr}
- sub sp, 0x4
- mov r7, sp
- adds r1, r0, 0
- adds r2, r7, 0
- strb r1, [r2]
- adds r1, r7, 0x1
- movs r2, 0
- strb r2, [r1]
-_082E2832:
- adds r1, r7, 0x1
- ldrb r2, [r1]
- cmp r2, 0x7
- bls _082E283C
- b _082E28BC
-_082E283C:
- adds r1, r7, 0x2
- adds r3, r7, 0
- ldrb r2, [r3]
- adds r3, r7, 0x1
- ldrb r4, [r3]
- movs r5, 0x7
- subs r3, r5, r4
- asrs r2, r3
- adds r3, r2, 0
- movs r4, 0x1
- adds r2, r3, 0
- ands r2, r4
- adds r3, r2, 0
- strb r3, [r1]
- ldr r1, _082E28B8
- adds r2, r7, 0x2
- ldrb r3, [r2]
- adds r2, r3, 0
- lsls r3, r2, 1
- adds r2, r3, 0
- movs r3, 0x4
- orrs r2, r3
- adds r3, r2, 0
- strh r3, [r1]
- ldr r1, _082E28B8
- adds r2, r7, 0x2
- ldrb r3, [r2]
- adds r2, r3, 0
- lsls r3, r2, 1
- adds r2, r3, 0
- movs r3, 0x4
- orrs r2, r3
- adds r3, r2, 0
- strh r3, [r1]
- ldr r1, _082E28B8
- adds r2, r7, 0x2
- ldrb r3, [r2]
- adds r2, r3, 0
- lsls r3, r2, 1
- adds r2, r3, 0
- movs r3, 0x4
- orrs r2, r3
- adds r3, r2, 0
- strh r3, [r1]
- ldr r1, _082E28B8
- adds r2, r7, 0x2
- ldrb r3, [r2]
- adds r2, r3, 0
- lsls r3, r2, 1
- adds r2, r3, 0
- movs r3, 0x5
- orrs r2, r3
- adds r3, r2, 0
- strh r3, [r1]
- adds r2, r7, 0x1
- adds r1, r7, 0x1
- adds r2, r7, 0x1
- ldrb r3, [r2]
- adds r2, r3, 0x1
- adds r3, r2, 0
- strb r3, [r1]
- b _082E2832
- .align 2, 0
-_082E28B8: .4byte _080000C4
-_082E28BC:
- add sp, 0x4
- pop {r4,r5,r7}
- pop {r1}
- bx r1
- thumb_func_end sub_82E2820
-
- thumb_func_start sub_82E28C4
-sub_82E28C4: @ 82E28C4
- push {r4,r7,lr}
- sub sp, 0x4
- mov r7, sp
- adds r1, r0, 0
- adds r2, r7, 0
- strb r1, [r2]
- adds r1, r7, 0x1
- movs r2, 0
- strb r2, [r1]
-_082E28D6:
- adds r1, r7, 0x1
- ldrb r2, [r1]
- cmp r2, 0x7
- bls _082E28E0
- b _082E295C
-_082E28E0:
- adds r1, r7, 0x2
- adds r3, r7, 0
- ldrb r2, [r3]
- adds r3, r7, 0x1
- ldrb r4, [r3]
- asrs r2, r4
- adds r3, r2, 0
- movs r4, 0x1
- adds r2, r3, 0
- ands r2, r4
- adds r3, r2, 0
- strb r3, [r1]
- ldr r1, _082E2958
- adds r2, r7, 0x2
- ldrb r3, [r2]
- adds r2, r3, 0
- lsls r3, r2, 1
- adds r2, r3, 0
- movs r3, 0x4
- orrs r2, r3
- adds r3, r2, 0
- strh r3, [r1]
- ldr r1, _082E2958
- adds r2, r7, 0x2
- ldrb r3, [r2]
- adds r2, r3, 0
- lsls r3, r2, 1
- adds r2, r3, 0
- movs r3, 0x4
- orrs r2, r3
- adds r3, r2, 0
- strh r3, [r1]
- ldr r1, _082E2958
- adds r2, r7, 0x2
- ldrb r3, [r2]
- adds r2, r3, 0
- lsls r3, r2, 1
- adds r2, r3, 0
- movs r3, 0x4
- orrs r2, r3
- adds r3, r2, 0
- strh r3, [r1]
- ldr r1, _082E2958
- adds r2, r7, 0x2
- ldrb r3, [r2]
- adds r2, r3, 0
- lsls r3, r2, 1
- adds r2, r3, 0
- movs r3, 0x5
- orrs r2, r3
- adds r3, r2, 0
- strh r3, [r1]
- adds r2, r7, 0x1
- adds r1, r7, 0x1
- adds r2, r7, 0x1
- ldrb r3, [r2]
- adds r2, r3, 0x1
- adds r3, r2, 0
- strb r3, [r1]
- b _082E28D6
- .align 2, 0
-_082E2958: .4byte _080000C4
-_082E295C:
- add sp, 0x4
- pop {r4,r7}
- pop {r1}
- bx r1
- thumb_func_end sub_82E28C4
-
- thumb_func_start sub_82E2964
-sub_82E2964: @ 82E2964
- push {r7,lr}
- sub sp, 0x4
- mov r7, sp
- adds r0, r7, 0
- movs r1, 0
- strb r1, [r0]
-_082E2970:
- adds r0, r7, 0
- ldrb r1, [r0]
- cmp r1, 0x7
- bls _082E297A
- b _082E29E0
-_082E297A:
- ldr r0, _082E29DC
- movs r1, 0x4
- strh r1, [r0]
- ldr r0, _082E29DC
- movs r1, 0x4
- strh r1, [r0]
- ldr r0, _082E29DC
- movs r1, 0x4
- strh r1, [r0]
- ldr r0, _082E29DC
- movs r1, 0x4
- strh r1, [r0]
- ldr r0, _082E29DC
- movs r1, 0x4
- strh r1, [r0]
- ldr r0, _082E29DC
- movs r1, 0x5
- strh r1, [r0]
- adds r0, r7, 0x1
- ldr r1, _082E29DC
- ldrh r2, [r1]
- movs r3, 0x2
- adds r1, r2, 0
- ands r1, r3
- adds r3, r1, 0
- lsls r2, r3, 16
- lsrs r1, r2, 16
- lsrs r2, r1, 1
- adds r1, r2, 0
- strb r1, [r0]
- adds r0, r7, 0x2
- adds r1, r7, 0x2
- ldrb r2, [r1]
- lsrs r1, r2, 1
- adds r2, r7, 0x1
- ldrb r3, [r2]
- lsls r2, r3, 7
- orrs r1, r2
- adds r2, r1, 0
- strb r2, [r0]
- adds r1, r7, 0
- adds r0, r7, 0
- adds r1, r7, 0
- ldrb r2, [r1]
- adds r1, r2, 0x1
- adds r2, r1, 0
- strb r2, [r0]
- b _082E2970
- .align 2, 0
-_082E29DC: .4byte _080000C4
-_082E29E0:
- adds r0, r7, 0x2
- ldrb r1, [r0]
- adds r0, r1, 0
- b _082E29E8
-_082E29E8:
- add sp, 0x4
- pop {r7}
- pop {r1}
- bx r1
- thumb_func_end sub_82E2964
-
- thumb_func_start sub_82E29F0
-sub_82E29F0: @ 82E29F0
- push {r7,lr}
- mov r7, sp
- ldr r0, _082E2A00
- movs r1, 0x1
- strh r1, [r0]
- pop {r7}
- pop {r0}
- bx r0
- .align 2, 0
-_082E2A00: .4byte _080000C8
- thumb_func_end sub_82E29F0
-
- thumb_func_start sub_82E2A04
-sub_82E2A04: @ 82E2A04
- push {r7,lr}
- mov r7, sp
- ldr r0, _082E2A14
- movs r1, 0
- strh r1, [r0]
- pop {r7}
- pop {r0}
- bx r0
- .align 2, 0
-_082E2A14: .4byte _080000C8
- thumb_func_end sub_82E2A04
-
- thumb_func_start STWI_init_all
-STWI_init_all: @ 82E2A18
- push {r4,lr}
- adds r3, r0, 0
- lsls r2, 24
- lsrs r2, 24
- cmp r2, 0x1
- bne _082E2A54
- adds r2, r3, 0
- adds r2, 0xE8
- str r2, [r1]
- ldr r1, _082E2A40
- ldr r0, _082E2A44
- str r0, [r1]
- str r2, [r1, 0x4]
- ldr r0, _082E2A48
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- ldr r1, _082E2A4C
- ldr r2, _082E2A50
- adds r0, r3, r2
- b _082E2A5E
- .align 2, 0
-_082E2A40: .4byte 0x040000d4
-_082E2A44: .4byte IntrSIO32
-_082E2A48: .4byte 0x800004b0
-_082E2A4C: .4byte 0x03007868
-_082E2A50: .4byte 0x00000a48
-_082E2A54:
- ldr r0, _082E2AD8
- str r0, [r1]
- ldr r1, _082E2ADC
- adds r0, r3, 0
- adds r0, 0xE8
-_082E2A5E:
- str r0, [r1]
- adds r2, r1, 0
- ldr r1, [r2]
- str r3, [r1, 0x28]
- adds r0, r3, 0
- adds r0, 0x74
- str r0, [r1, 0x24]
- ldrb r0, [r1, 0x14]
- movs r4, 0
- movs r0, 0x1
- strb r0, [r1, 0x14]
- ldr r0, [r2]
- str r4, [r0]
- strb r4, [r0, 0x4]
- ldr r0, [r2]
- strb r4, [r0, 0x5]
- ldr r0, [r2]
- strb r4, [r0, 0x7]
- ldr r0, [r2]
- strb r4, [r0, 0x8]
- ldr r0, [r2]
- strb r4, [r0, 0x9]
- ldr r0, [r2]
- str r4, [r0, 0xC]
- ldrb r1, [r0, 0x10]
- strb r4, [r0, 0x10]
- ldr r0, [r2]
- ldrh r1, [r0, 0x12]
- movs r1, 0
- strh r4, [r0, 0x12]
- strb r1, [r0, 0x15]
- ldr r0, [r2]
- adds r0, 0x2C
- ldrb r2, [r0]
- strb r1, [r0]
- ldr r1, _082E2AE0
- movs r2, 0x80
- lsls r2, 1
- adds r0, r2, 0
- strh r0, [r1]
- subs r1, 0xC
- ldr r2, _082E2AE4
- adds r0, r2, 0
- strh r0, [r1]
- bl STWI_init_Callback_M
- bl STWI_init_Callback_S
- ldr r3, _082E2AE8
- ldrh r2, [r3]
- strh r4, [r3]
- ldr r4, _082E2AEC
- ldrh r0, [r4]
- movs r1, 0x80
- orrs r0, r1
- strh r0, [r4]
- strh r2, [r3]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_082E2AD8: .4byte IntrSIO32
-_082E2ADC: .4byte 0x03007868
-_082E2AE0: .4byte 0x04000134
-_082E2AE4: .4byte 0x00005003
-_082E2AE8: .4byte 0x04000208
-_082E2AEC: .4byte 0x04000200
- thumb_func_end STWI_init_all
-
- thumb_func_start STWI_init_timer
-STWI_init_timer: @ 82E2AF0
- push {r4,r5,lr}
- ldr r2, _082E2B1C
- str r2, [r0]
- ldr r5, _082E2B20
- ldr r0, [r5]
- movs r4, 0
- strb r1, [r0, 0xA]
- ldr r3, _082E2B24
- ldrh r2, [r3]
- strh r4, [r3]
- ldr r4, _082E2B28
- ldr r1, [r5]
- movs r0, 0x8
- ldrb r1, [r1, 0xA]
- lsls r0, r1
- ldrh r1, [r4]
- orrs r0, r1
- strh r0, [r4]
- strh r2, [r3]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_082E2B1C: .4byte STWI_intr_timer + 1
-_082E2B20: .4byte 0x03007868
-_082E2B24: .4byte 0x04000208
-_082E2B28: .4byte 0x04000200
- thumb_func_end STWI_init_timer
-
- thumb_func_start AgbRFU_SoftReset
-AgbRFU_SoftReset: @ 82E2B2C
- push {r4,r5,lr}
- ldr r5, _082E2BC4
- movs r1, 0x80
- lsls r1, 8
- adds r0, r1, 0
- strh r0, [r5]
- ldr r2, _082E2BC8
- adds r0, r2, 0
- strh r0, [r5]
- ldr r1, _082E2BCC
- ldr r0, [r1]
- ldrb r0, [r0, 0xA]
- lsls r0, 2
- ldr r3, _082E2BD0
- adds r2, r0, r3
- ldr r4, _082E2BD4
- adds r3, r0, r4
- movs r0, 0
- strh r0, [r3]
- strh r0, [r2]
- movs r0, 0x83
- strh r0, [r3]
- ldrh r0, [r2]
- adds r4, r1, 0
- cmp r0, 0x11
- bhi _082E2B6C
- ldr r0, _082E2BD8
- adds r1, r0, 0
-_082E2B64:
- strh r1, [r5]
- ldrh r0, [r2]
- cmp r0, 0x11
- bls _082E2B64
-_082E2B6C:
- movs r0, 0x3
- strh r0, [r3]
- ldr r1, _082E2BC4
- ldr r2, _082E2BC8
- adds r0, r2, 0
- strh r0, [r1]
- subs r1, 0xC
- ldr r3, _082E2BDC
- adds r0, r3, 0
- strh r0, [r1]
- ldr r0, [r4]
- movs r2, 0
- str r2, [r0]
- strb r2, [r0, 0x4]
- ldr r0, [r4]
- strb r2, [r0, 0x5]
- ldr r0, [r4]
- strb r2, [r0, 0x6]
- ldr r0, [r4]
- strb r2, [r0, 0x7]
- ldr r0, [r4]
- strb r2, [r0, 0x8]
- ldr r0, [r4]
- strb r2, [r0, 0x9]
- ldr r0, [r4]
- str r2, [r0, 0xC]
- ldrb r1, [r0, 0x10]
- strb r2, [r0, 0x10]
- ldr r1, [r4]
- ldrh r0, [r1, 0x12]
- movs r3, 0
- strh r2, [r1, 0x12]
- ldrb r0, [r1, 0x14]
- movs r0, 0x1
- strb r0, [r1, 0x14]
- ldr r0, [r4]
- strb r3, [r0, 0x15]
- ldr r0, [r4]
- adds r0, 0x2C
- ldrb r1, [r0]
- strb r3, [r0]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_082E2BC4: .4byte 0x04000134
-_082E2BC8: .4byte 0x000080a0
-_082E2BCC: .4byte 0x03007868
-_082E2BD0: .4byte 0x04000100
-_082E2BD4: .4byte 0x04000102
-_082E2BD8: .4byte 0x000080a2
-_082E2BDC: .4byte 0x00005003
- thumb_func_end AgbRFU_SoftReset
-
- thumb_func_start STWI_set_MS_mode
-STWI_set_MS_mode: @ 82E2BE0
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _082E2BF0
- ldr r1, [r1]
- ldrb r2, [r1, 0x14]
- strb r0, [r1, 0x14]
- bx lr
- .align 2, 0
-_082E2BF0: .4byte 0x03007868
- thumb_func_end STWI_set_MS_mode
-
- thumb_func_start STWI_read_status
-STWI_read_status: @ 82E2BF4
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- adds r1, r0, 0
- cmp r0, 0x1
- beq _082E2C20
- cmp r0, 0x1
- bgt _082E2C0A
- cmp r0, 0
- beq _082E2C14
- b _082E2C48
-_082E2C0A:
- cmp r1, 0x2
- beq _082E2C2C
- cmp r1, 0x3
- beq _082E2C3C
- b _082E2C48
-_082E2C14:
- ldr r0, _082E2C1C
- ldr r0, [r0]
- ldrh r0, [r0, 0x12]
- b _082E2C4A
- .align 2, 0
-_082E2C1C: .4byte 0x03007868
-_082E2C20:
- ldr r0, _082E2C28
- ldr r0, [r0]
- ldrb r0, [r0, 0x14]
- b _082E2C4A
- .align 2, 0
-_082E2C28: .4byte 0x03007868
-_082E2C2C:
- ldr r0, _082E2C38
- ldr r0, [r0]
- ldr r0, [r0]
- lsls r0, 16
- lsrs r0, 16
- b _082E2C4A
- .align 2, 0
-_082E2C38: .4byte 0x03007868
-_082E2C3C:
- ldr r0, _082E2C44
- ldr r0, [r0]
- ldrb r0, [r0, 0x6]
- b _082E2C4A
- .align 2, 0
-_082E2C44: .4byte 0x03007868
-_082E2C48:
- ldr r0, _082E2C50
-_082E2C4A:
- pop {r1}
- bx r1
- .align 2, 0
-_082E2C50: .4byte 0x0000ffff
- thumb_func_end STWI_read_status
-
- thumb_func_start STWI_init_Callback_M
-STWI_init_Callback_M: @ 82E2C54
- push {lr}
- movs r0, 0
- bl STWI_set_Callback_M
- pop {r0}
- bx r0
- thumb_func_end STWI_init_Callback_M
-
- thumb_func_start STWI_init_Callback_S
-STWI_init_Callback_S: @ 82E2C60
- push {lr}
- movs r0, 0
- bl STWI_set_Callback_S
- pop {r0}
- bx r0
- thumb_func_end STWI_init_Callback_S
-
- thumb_func_start STWI_set_Callback_M
-STWI_set_Callback_M: @ 82E2C6C
- ldr r1, _082E2C74
- ldr r1, [r1]
- str r0, [r1, 0x18]
- bx lr
- .align 2, 0
-_082E2C74: .4byte 0x03007868
- thumb_func_end STWI_set_Callback_M
-
- thumb_func_start STWI_set_Callback_S
-STWI_set_Callback_S: @ 82E2C78
- ldr r1, _082E2C80
- ldr r1, [r1]
- str r0, [r1, 0x1C]
- bx lr
- .align 2, 0
-_082E2C80: .4byte 0x03007868
- thumb_func_end STWI_set_Callback_S
-
- thumb_func_start STWI_set_Callback_ID
-STWI_set_Callback_ID: @ 82E2C84
- ldr r1, _082E2C8C
- ldr r1, [r1]
- str r0, [r1, 0x20]
- bx lr
- .align 2, 0
-_082E2C8C: .4byte 0x03007868
- thumb_func_end STWI_set_Callback_ID
-
- thumb_func_start STWI_poll_CommandEnd
-STWI_poll_CommandEnd: @ 82E2C90
- push {lr}
- ldr r0, _082E2CB4
- ldr r1, [r0]
- adds r2, r1, 0
- adds r2, 0x2C
- ldrb r1, [r2]
- adds r3, r0, 0
- cmp r1, 0x1
- bne _082E2CAA
- adds r1, r2, 0
-_082E2CA4:
- ldrb r0, [r1]
- cmp r0, 0x1
- beq _082E2CA4
-_082E2CAA:
- ldr r0, [r3]
- ldrh r0, [r0, 0x12]
- pop {r1}
- bx r1
- .align 2, 0
-_082E2CB4: .4byte 0x03007868
- thumb_func_end STWI_poll_CommandEnd
-
- thumb_func_start STWI_send_ResetREQ
-STWI_send_ResetREQ: @ 82E2CB8
- push {lr}
- movs r0, 0x10
- bl STWI_init
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0
- bne _082E2CD2
- ldr r0, _082E2CD8
- ldr r0, [r0]
- strb r1, [r0, 0x4]
- bl STWI_start_Command
-_082E2CD2:
- pop {r0}
- bx r0
- .align 2, 0
-_082E2CD8: .4byte 0x03007868
- thumb_func_end STWI_send_ResetREQ
-
- thumb_func_start STWI_send_LinkStatusREQ
-STWI_send_LinkStatusREQ: @ 82E2CDC
- push {lr}
- movs r0, 0x11
- bl STWI_init
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0
- bne _082E2CF6
- ldr r0, _082E2CFC
- ldr r0, [r0]
- strb r1, [r0, 0x4]
- bl STWI_start_Command
-_082E2CF6:
- pop {r0}
- bx r0
- .align 2, 0
-_082E2CFC: .4byte 0x03007868
- thumb_func_end STWI_send_LinkStatusREQ
-
- thumb_func_start STWI_send_VersionStatusREQ
-STWI_send_VersionStatusREQ: @ 82E2D00
- push {lr}
- movs r0, 0x12
- bl STWI_init
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0
- bne _082E2D1A
- ldr r0, _082E2D20
- ldr r0, [r0]
- strb r1, [r0, 0x4]
- bl STWI_start_Command
-_082E2D1A:
- pop {r0}
- bx r0
- .align 2, 0
-_082E2D20: .4byte 0x03007868
- thumb_func_end STWI_send_VersionStatusREQ
-
- thumb_func_start STWI_send_SystemStatusREQ
-STWI_send_SystemStatusREQ: @ 82E2D24
- push {lr}
- movs r0, 0x13
- bl STWI_init
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0
- bne _082E2D3E
- ldr r0, _082E2D44
- ldr r0, [r0]
- strb r1, [r0, 0x4]
- bl STWI_start_Command
-_082E2D3E:
- pop {r0}
- bx r0
- .align 2, 0
-_082E2D44: .4byte 0x03007868
- thumb_func_end STWI_send_SystemStatusREQ
-
- thumb_func_start STWI_send_SlotStatusREQ
-STWI_send_SlotStatusREQ: @ 82E2D48
- push {lr}
- movs r0, 0x14
- bl STWI_init
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0
- bne _082E2D62
- ldr r0, _082E2D68
- ldr r0, [r0]
- strb r1, [r0, 0x4]
- bl STWI_start_Command
-_082E2D62:
- pop {r0}
- bx r0
- .align 2, 0
-_082E2D68: .4byte 0x03007868
- thumb_func_end STWI_send_SlotStatusREQ
-
- thumb_func_start STWI_send_ConfigStatusREQ
-STWI_send_ConfigStatusREQ: @ 82E2D6C
- push {lr}
- movs r0, 0x15
- bl STWI_init
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0
- bne _082E2D86
- ldr r0, _082E2D8C
- ldr r0, [r0]
- strb r1, [r0, 0x4]
- bl STWI_start_Command
-_082E2D86:
- pop {r0}
- bx r0
- .align 2, 0
-_082E2D8C: .4byte 0x03007868
- thumb_func_end STWI_send_ConfigStatusREQ
-
- thumb_func_start STWI_send_GameConfigREQ
-STWI_send_GameConfigREQ: @ 82E2D90
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- movs r0, 0x16
- bl STWI_init
- lsls r0, 16
- cmp r0, 0
- bne _082E2DDC
- ldr r2, _082E2DE4
- ldr r1, [r2]
- movs r0, 0x6
- strb r0, [r1, 0x4]
- ldr r0, [r2]
- ldr r1, [r0, 0x24]
- adds r1, 0x4
- ldrh r0, [r4]
- strh r0, [r1]
- adds r1, 0x2
- adds r4, 0x2
- movs r2, 0xD
-_082E2DBA:
- ldrb r0, [r4]
- strb r0, [r1]
- adds r1, 0x1
- adds r4, 0x1
- subs r2, 0x1
- cmp r2, 0
- bge _082E2DBA
- movs r2, 0x7
-_082E2DCA:
- ldrb r0, [r5]
- strb r0, [r1]
- adds r1, 0x1
- adds r5, 0x1
- subs r2, 0x1
- cmp r2, 0
- bge _082E2DCA
- bl STWI_start_Command
-_082E2DDC:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_082E2DE4: .4byte 0x03007868
- thumb_func_end STWI_send_GameConfigREQ
-
- thumb_func_start STWI_send_SystemConfigREQ
-STWI_send_SystemConfigREQ: @ 82E2DE8
- push {r4-r6,lr}
- lsls r0, 16
- lsrs r6, r0, 16
- lsls r1, 24
- lsrs r5, r1, 24
- lsls r2, 24
- lsrs r4, r2, 24
- movs r0, 0x17
- bl STWI_init
- lsls r0, 16
- cmp r0, 0
- bne _082E2E1E
- ldr r2, _082E2E24
- ldr r1, [r2]
- movs r0, 0x1
- strb r0, [r1, 0x4]
- ldr r0, [r2]
- ldr r0, [r0, 0x24]
- adds r0, 0x4
- strb r4, [r0]
- adds r0, 0x1
- strb r5, [r0]
- adds r0, 0x1
- strh r6, [r0]
- bl STWI_start_Command
-_082E2E1E:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_082E2E24: .4byte 0x03007868
- thumb_func_end STWI_send_SystemConfigREQ
-
- thumb_func_start STWI_send_SC_StartREQ
-STWI_send_SC_StartREQ: @ 82E2E28
- push {lr}
- movs r0, 0x19
- bl STWI_init
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0
- bne _082E2E42
- ldr r0, _082E2E48
- ldr r0, [r0]
- strb r1, [r0, 0x4]
- bl STWI_start_Command
-_082E2E42:
- pop {r0}
- bx r0
- .align 2, 0
-_082E2E48: .4byte 0x03007868
- thumb_func_end STWI_send_SC_StartREQ
-
- thumb_func_start STWI_send_SC_PollingREQ
-STWI_send_SC_PollingREQ: @ 82E2E4C
- push {lr}
- movs r0, 0x1A
- bl STWI_init
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0
- bne _082E2E66
- ldr r0, _082E2E6C
- ldr r0, [r0]
- strb r1, [r0, 0x4]
- bl STWI_start_Command
-_082E2E66:
- pop {r0}
- bx r0
- .align 2, 0
-_082E2E6C: .4byte 0x03007868
- thumb_func_end STWI_send_SC_PollingREQ
-
- thumb_func_start STWI_send_SC_EndREQ
-STWI_send_SC_EndREQ: @ 82E2E70
- push {lr}
- movs r0, 0x1B
- bl STWI_init
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0
- bne _082E2E8A
- ldr r0, _082E2E90
- ldr r0, [r0]
- strb r1, [r0, 0x4]
- bl STWI_start_Command
-_082E2E8A:
- pop {r0}
- bx r0
- .align 2, 0
-_082E2E90: .4byte 0x03007868
- thumb_func_end STWI_send_SC_EndREQ
-
- thumb_func_start STWI_send_SP_StartREQ
-STWI_send_SP_StartREQ: @ 82E2E94
- push {lr}
- movs r0, 0x1C
- bl STWI_init
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0
- bne _082E2EAE
- ldr r0, _082E2EB4
- ldr r0, [r0]
- strb r1, [r0, 0x4]
- bl STWI_start_Command
-_082E2EAE:
- pop {r0}
- bx r0
- .align 2, 0
-_082E2EB4: .4byte 0x03007868
- thumb_func_end STWI_send_SP_StartREQ
-
- thumb_func_start STWI_send_SP_PollingREQ
-STWI_send_SP_PollingREQ: @ 82E2EB8
- push {lr}
- movs r0, 0x1D
- bl STWI_init
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0
- bne _082E2ED2
- ldr r0, _082E2ED8
- ldr r0, [r0]
- strb r1, [r0, 0x4]
- bl STWI_start_Command
-_082E2ED2:
- pop {r0}
- bx r0
- .align 2, 0
-_082E2ED8: .4byte 0x03007868
- thumb_func_end STWI_send_SP_PollingREQ
-
- thumb_func_start STWI_send_SP_EndREQ
-STWI_send_SP_EndREQ: @ 82E2EDC
- push {lr}
- movs r0, 0x1E
- bl STWI_init
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0
- bne _082E2EF6
- ldr r0, _082E2EFC
- ldr r0, [r0]
- strb r1, [r0, 0x4]
- bl STWI_start_Command
-_082E2EF6:
- pop {r0}
- bx r0
- .align 2, 0
-_082E2EFC: .4byte 0x03007868
- thumb_func_end STWI_send_SP_EndREQ
-
- thumb_func_start STWI_send_CP_StartREQ
-STWI_send_CP_StartREQ: @ 82E2F00
- push {r4,lr}
- lsls r0, 16
- lsrs r4, r0, 16
- movs r0, 0x1F
- bl STWI_init
- lsls r0, 16
- cmp r0, 0
- bne _082E2F24
- ldr r2, _082E2F2C
- ldr r1, [r2]
- movs r0, 0x1
- strb r0, [r1, 0x4]
- ldr r0, [r2]
- ldr r0, [r0, 0x24]
- str r4, [r0, 0x4]
- bl STWI_start_Command
-_082E2F24:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_082E2F2C: .4byte 0x03007868
- thumb_func_end STWI_send_CP_StartREQ
-
- thumb_func_start STWI_send_CP_PollingREQ
-STWI_send_CP_PollingREQ: @ 82E2F30
- push {lr}
- movs r0, 0x20
- bl STWI_init
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0
- bne _082E2F4A
- ldr r0, _082E2F50
- ldr r0, [r0]
- strb r1, [r0, 0x4]
- bl STWI_start_Command
-_082E2F4A:
- pop {r0}
- bx r0
- .align 2, 0
-_082E2F50: .4byte 0x03007868
- thumb_func_end STWI_send_CP_PollingREQ
-
- thumb_func_start STWI_send_CP_EndREQ
-STWI_send_CP_EndREQ: @ 82E2F54
- push {lr}
- movs r0, 0x21
- bl STWI_init
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0
- bne _082E2F6E
- ldr r0, _082E2F74
- ldr r0, [r0]
- strb r1, [r0, 0x4]
- bl STWI_start_Command
-_082E2F6E:
- pop {r0}
- bx r0
- .align 2, 0
-_082E2F74: .4byte 0x03007868
- thumb_func_end STWI_send_CP_EndREQ
-
- thumb_func_start STWI_send_DataTxREQ
-STWI_send_DataTxREQ: @ 82E2F78
- push {r4-r6,lr}
- adds r6, r0, 0
- lsls r4, r1, 24
- lsrs r5, r4, 24
- movs r0, 0x24
- bl STWI_init
- lsls r0, 16
- cmp r0, 0
- bne _082E2FB6
- lsrs r2, r4, 26
- movs r0, 0x3
- ands r0, r5
- cmp r0, 0
- beq _082E2F98
- adds r2, 0x1
-_082E2F98:
- ldr r1, _082E2FBC
- ldr r0, [r1]
- strb r2, [r0, 0x4]
- ldr r0, [r1]
- ldr r1, [r0, 0x24]
- adds r1, 0x4
- ldrb r2, [r0, 0x4]
- movs r0, 0x80
- lsls r0, 19
- orrs r2, r0
- adds r0, r6, 0
- bl CpuSet
- bl STWI_start_Command
-_082E2FB6:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_082E2FBC: .4byte 0x03007868
- thumb_func_end STWI_send_DataTxREQ
-
- thumb_func_start STWI_send_DataTxAndChangeREQ
-STWI_send_DataTxAndChangeREQ: @ 82E2FC0
- push {r4-r6,lr}
- adds r6, r0, 0
- lsls r4, r1, 24
- lsrs r5, r4, 24
- movs r0, 0x25
- bl STWI_init
- lsls r0, 16
- cmp r0, 0
- bne _082E2FFE
- lsrs r2, r4, 26
- movs r0, 0x3
- ands r0, r5
- cmp r0, 0
- beq _082E2FE0
- adds r2, 0x1
-_082E2FE0:
- ldr r1, _082E3004
- ldr r0, [r1]
- strb r2, [r0, 0x4]
- ldr r0, [r1]
- ldr r1, [r0, 0x24]
- adds r1, 0x4
- ldrb r2, [r0, 0x4]
- movs r0, 0x80
- lsls r0, 19
- orrs r2, r0
- adds r0, r6, 0
- bl CpuSet
- bl STWI_start_Command
-_082E2FFE:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_082E3004: .4byte 0x03007868
- thumb_func_end STWI_send_DataTxAndChangeREQ
-
- thumb_func_start STWI_send_DataRxREQ
-STWI_send_DataRxREQ: @ 82E3008
- push {lr}
- movs r0, 0x26
- bl STWI_init
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0
- bne _082E3022
- ldr r0, _082E3028
- ldr r0, [r0]
- strb r1, [r0, 0x4]
- bl STWI_start_Command
-_082E3022:
- pop {r0}
- bx r0
- .align 2, 0
-_082E3028: .4byte 0x03007868
- thumb_func_end STWI_send_DataRxREQ
-
- thumb_func_start STWI_send_MS_ChangeREQ
-STWI_send_MS_ChangeREQ: @ 82E302C
- push {lr}
- movs r0, 0x27
- bl STWI_init
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0
- bne _082E3046
- ldr r0, _082E304C
- ldr r0, [r0]
- strb r1, [r0, 0x4]
- bl STWI_start_Command
-_082E3046:
- pop {r0}
- bx r0
- .align 2, 0
-_082E304C: .4byte 0x03007868
- thumb_func_end STWI_send_MS_ChangeREQ
-
- thumb_func_start STWI_send_DataReadyAndChangeREQ
-STWI_send_DataReadyAndChangeREQ: @ 82E3050
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- adds r5, r4, 0
- movs r0, 0x28
- bl STWI_init
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0
- bne _082E3096
- cmp r4, 0
- bne _082E3078
- ldr r0, _082E3074
- ldr r0, [r0]
- strb r3, [r0, 0x4]
- b _082E3092
- .align 2, 0
-_082E3074: .4byte 0x03007868
-_082E3078:
- ldr r2, _082E309C
- ldr r1, [r2]
- movs r0, 0x1
- strb r0, [r1, 0x4]
- ldr r0, [r2]
- ldr r0, [r0, 0x24]
- adds r0, 0x4
- strb r5, [r0]
- adds r0, 0x1
- strb r3, [r0]
- adds r0, 0x1
- strb r3, [r0]
- strb r3, [r0, 0x1]
-_082E3092:
- bl STWI_start_Command
-_082E3096:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_082E309C: .4byte 0x03007868
- thumb_func_end STWI_send_DataReadyAndChangeREQ
-
- thumb_func_start STWI_send_DisconnectedAndChangeREQ
-STWI_send_DisconnectedAndChangeREQ: @ 82E30A0
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r1, 24
- lsrs r5, r1, 24
- movs r0, 0x29
- bl STWI_init
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0
- bne _082E30D6
- ldr r2, _082E30DC
- ldr r1, [r2]
- movs r0, 0x1
- strb r0, [r1, 0x4]
- ldr r0, [r2]
- ldr r0, [r0, 0x24]
- adds r0, 0x4
- strb r4, [r0]
- adds r0, 0x1
- strb r5, [r0]
- adds r0, 0x1
- strb r3, [r0]
- strb r3, [r0, 0x1]
- bl STWI_start_Command
-_082E30D6:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_082E30DC: .4byte 0x03007868
- thumb_func_end STWI_send_DisconnectedAndChangeREQ
-
- thumb_func_start STWI_send_ResumeRetransmitAndChangeREQ
-STWI_send_ResumeRetransmitAndChangeREQ: @ 82E30E0
- push {lr}
- movs r0, 0x37
- bl STWI_init
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0
- bne _082E30FA
- ldr r0, _082E3100
- ldr r0, [r0]
- strb r1, [r0, 0x4]
- bl STWI_start_Command
-_082E30FA:
- pop {r0}
- bx r0
- .align 2, 0
-_082E3100: .4byte 0x03007868
- thumb_func_end STWI_send_ResumeRetransmitAndChangeREQ
-
- thumb_func_start STWI_send_DisconnectREQ
-STWI_send_DisconnectREQ: @ 82E3104
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- movs r0, 0x30
- bl STWI_init
- lsls r0, 16
- cmp r0, 0
- bne _082E3128
- ldr r2, _082E3130
- ldr r1, [r2]
- movs r0, 0x1
- strb r0, [r1, 0x4]
- ldr r0, [r2]
- ldr r0, [r0, 0x24]
- str r4, [r0, 0x4]
- bl STWI_start_Command
-_082E3128:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_082E3130: .4byte 0x03007868
- thumb_func_end STWI_send_DisconnectREQ
-
- thumb_func_start STWI_send_TestModeREQ
-STWI_send_TestModeREQ: @ 82E3134
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r1, 24
- lsrs r4, r1, 24
- movs r0, 0x31
- bl STWI_init
- lsls r0, 16
- cmp r0, 0
- bne _082E3160
- ldr r2, _082E3168
- ldr r1, [r2]
- movs r0, 0x1
- strb r0, [r1, 0x4]
- ldr r0, [r2]
- ldr r1, [r0, 0x24]
- lsls r0, r4, 8
- orrs r0, r5
- str r0, [r1, 0x4]
- bl STWI_start_Command
-_082E3160:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_082E3168: .4byte 0x03007868
- thumb_func_end STWI_send_TestModeREQ
-
- thumb_func_start STWI_send_CPR_StartREQ
-STWI_send_CPR_StartREQ: @ 82E316C
- push {r4-r6,lr}
- lsls r0, 16
- lsrs r5, r0, 16
- lsls r1, 16
- lsrs r4, r1, 16
- lsls r2, 24
- lsrs r6, r2, 24
- movs r0, 0x32
- bl STWI_init
- lsls r0, 16
- cmp r0, 0
- bne _082E319E
- ldr r2, _082E31A4
- ldr r1, [r2]
- movs r0, 0x2
- strb r0, [r1, 0x4]
- lsls r0, r5, 16
- orrs r0, r4
- ldr r1, [r2]
- ldr r1, [r1, 0x24]
- str r0, [r1, 0x4]
- str r6, [r1, 0x8]
- bl STWI_start_Command
-_082E319E:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_082E31A4: .4byte 0x03007868
- thumb_func_end STWI_send_CPR_StartREQ
-
- thumb_func_start STWI_send_CPR_PollingREQ
-STWI_send_CPR_PollingREQ: @ 82E31A8
- push {lr}
- movs r0, 0x33
- bl STWI_init
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0
- bne _082E31C2
- ldr r0, _082E31C8
- ldr r0, [r0]
- strb r1, [r0, 0x4]
- bl STWI_start_Command
-_082E31C2:
- pop {r0}
- bx r0
- .align 2, 0
-_082E31C8: .4byte 0x03007868
- thumb_func_end STWI_send_CPR_PollingREQ
-
- thumb_func_start STWI_send_CPR_EndREQ
-STWI_send_CPR_EndREQ: @ 82E31CC
- push {lr}
- movs r0, 0x34
- bl STWI_init
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0
- bne _082E31E6
- ldr r0, _082E31EC
- ldr r0, [r0]
- strb r1, [r0, 0x4]
- bl STWI_start_Command
-_082E31E6:
- pop {r0}
- bx r0
- .align 2, 0
-_082E31EC: .4byte 0x03007868
- thumb_func_end STWI_send_CPR_EndREQ
-
- thumb_func_start STWI_send_StopModeREQ
-STWI_send_StopModeREQ: @ 82E31F0
- push {lr}
- movs r0, 0x3D
- bl STWI_init
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0
- bne _082E320A
- ldr r0, _082E3210
- ldr r0, [r0]
- strb r1, [r0, 0x4]
- bl STWI_start_Command
-_082E320A:
- pop {r0}
- bx r0
- .align 2, 0
-_082E3210: .4byte 0x03007868
- thumb_func_end STWI_send_StopModeREQ
-
- thumb_func_start STWI_intr_timer
-STWI_intr_timer: @ 82E3214
- push {r4,lr}
- ldr r4, _082E322C
- ldr r1, [r4]
- ldr r0, [r1, 0xC]
- cmp r0, 0x2
- beq _082E323A
- cmp r0, 0x2
- bgt _082E3230
- cmp r0, 0x1
- beq _082E3248
- b _082E3270
- .align 2, 0
-_082E322C: .4byte 0x03007868
-_082E3230:
- cmp r0, 0x3
- beq _082E3252
- cmp r0, 0x4
- beq _082E3248
- b _082E3270
-_082E323A:
- ldrb r0, [r1, 0x10]
- movs r0, 0x1
- strb r0, [r1, 0x10]
- movs r0, 0x32
- bl STWI_set_timer
- b _082E3270
-_082E3248:
- bl STWI_stop_timer
- bl STWI_restart_Command
- b _082E3270
-_082E3252:
- ldrb r0, [r1, 0x10]
- movs r0, 0x1
- strb r0, [r1, 0x10]
- bl STWI_stop_timer
- bl STWI_reset_ClockCounter
- ldr r0, [r4]
- ldr r2, [r0, 0x18]
- cmp r2, 0
- beq _082E3270
- movs r0, 0xFF
- movs r1, 0
- bl _call_via_r2
-_082E3270:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end STWI_intr_timer
-
- thumb_func_start STWI_set_timer
-STWI_set_timer: @ 82E3278
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r3, r0, 24
- adds r5, r3, 0
- ldr r2, _082E32A8
- ldr r0, [r2]
- ldrb r0, [r0, 0xA]
- lsls r0, 2
- ldr r1, _082E32AC
- adds r4, r0, r1
- adds r1, 0x2
- adds r7, r0, r1
- ldr r1, _082E32B0
- movs r0, 0
- strh r0, [r1]
- adds r6, r2, 0
- cmp r3, 0x50
- beq _082E32D0
- cmp r3, 0x50
- bgt _082E32B4
- cmp r3, 0x32
- beq _082E32BE
- b _082E32FC
- .align 2, 0
-_082E32A8: .4byte 0x03007868
-_082E32AC: .4byte 0x04000100
-_082E32B0: .4byte 0x04000208
-_082E32B4:
- cmp r5, 0x64
- beq _082E32E0
- cmp r5, 0x82
- beq _082E32F0
- b _082E32FC
-_082E32BE:
- ldr r1, _082E32CC
- adds r0, r1, 0
- strh r0, [r4]
- ldr r1, [r6]
- movs r0, 0x1
- b _082E32FA
- .align 2, 0
-_082E32CC: .4byte 0x0000fccb
-_082E32D0:
- ldr r1, _082E32DC
- adds r0, r1, 0
- strh r0, [r4]
- ldr r1, [r6]
- movs r0, 0x2
- b _082E32FA
- .align 2, 0
-_082E32DC: .4byte 0x0000fae0
-_082E32E0:
- ldr r1, _082E32EC
- adds r0, r1, 0
- strh r0, [r4]
- ldr r1, [r6]
- movs r0, 0x3
- b _082E32FA
- .align 2, 0
-_082E32EC: .4byte 0x0000f996
-_082E32F0:
- ldr r1, _082E3318
- adds r0, r1, 0
- strh r0, [r4]
- ldr r1, [r6]
- movs r0, 0x4
-_082E32FA:
- str r0, [r1, 0xC]
-_082E32FC:
- movs r0, 0xC3
- strh r0, [r7]
- ldr r2, _082E331C
- ldr r1, [r6]
- movs r0, 0x8
- ldrb r1, [r1, 0xA]
- lsls r0, r1
- strh r0, [r2]
- ldr r1, _082E3320
- movs r0, 0x1
- strh r0, [r1]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_082E3318: .4byte 0x0000f7ad
-_082E331C: .4byte 0x04000202
-_082E3320: .4byte 0x04000208
- thumb_func_end STWI_set_timer
-
- thumb_func_start STWI_stop_timer
-STWI_stop_timer: @ 82E3324
- ldr r2, _082E3344
- ldr r0, [r2]
- movs r1, 0
- str r1, [r0, 0xC]
- ldrb r0, [r0, 0xA]
- lsls r0, 2
- ldr r3, _082E3348
- adds r0, r3
- strh r1, [r0]
- ldr r0, [r2]
- ldrb r0, [r0, 0xA]
- lsls r0, 2
- ldr r2, _082E334C
- adds r0, r2
- strh r1, [r0]
- bx lr
- .align 2, 0
-_082E3344: .4byte 0x03007868
-_082E3348: .4byte 0x04000100
-_082E334C: .4byte 0x04000102
- thumb_func_end STWI_stop_timer
-
- thumb_func_start STWI_init
-STWI_init: @ 82E3350
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- adds r6, r5, 0
- ldr r0, _082E337C
- ldrh r0, [r0]
- cmp r0, 0
- bne _082E3384
- ldr r0, _082E3380
- ldr r1, [r0]
- ldrh r0, [r1, 0x12]
- movs r0, 0x6
- strh r0, [r1, 0x12]
- ldr r2, [r1, 0x18]
- cmp r2, 0
- beq _082E33CE
- ldrh r1, [r1, 0x12]
- adds r0, r5, 0
- bl _call_via_r2
- b _082E33CE
- .align 2, 0
-_082E337C: .4byte 0x04000208
-_082E3380: .4byte 0x03007868
-_082E3384:
- ldr r4, _082E33B0
- ldr r2, [r4]
- adds r3, r2, 0
- adds r3, 0x2C
- ldrb r0, [r3]
- cmp r0, 0x1
- bne _082E33B4
- ldrh r0, [r2, 0x12]
- movs r1, 0
- movs r0, 0x2
- strh r0, [r2, 0x12]
- ldrb r0, [r3]
- strb r1, [r3]
- ldr r0, [r4]
- ldr r2, [r0, 0x18]
- cmp r2, 0
- beq _082E33CE
- ldrh r1, [r0, 0x12]
- adds r0, r5, 0
- bl _call_via_r2
- b _082E33CE
- .align 2, 0
-_082E33B0: .4byte 0x03007868
-_082E33B4:
- ldrb r0, [r2, 0x14]
- cmp r0, 0
- bne _082E33D2
- ldrh r0, [r2, 0x12]
- movs r0, 0x4
- strh r0, [r2, 0x12]
- ldr r3, [r2, 0x18]
- cmp r3, 0
- beq _082E33CE
- ldrh r1, [r2, 0x12]
- adds r0, r5, 0
- bl _call_via_r3
-_082E33CE:
- movs r0, 0x1
- b _082E341A
-_082E33D2:
- ldrb r0, [r3]
- movs r1, 0
- movs r0, 0x1
- strb r0, [r3]
- ldr r0, [r4]
- strb r6, [r0, 0x6]
- ldr r0, [r4]
- str r1, [r0]
- strb r1, [r0, 0x4]
- ldr r0, [r4]
- strb r1, [r0, 0x5]
- ldr r0, [r4]
- strb r1, [r0, 0x7]
- ldr r0, [r4]
- strb r1, [r0, 0x8]
- ldr r0, [r4]
- strb r1, [r0, 0x9]
- ldr r0, [r4]
- str r1, [r0, 0xC]
- ldrb r2, [r0, 0x10]
- strb r1, [r0, 0x10]
- ldr r0, [r4]
- ldrh r2, [r0, 0x12]
- movs r2, 0
- strh r1, [r0, 0x12]
- strb r2, [r0, 0x15]
- ldr r1, _082E3420
- movs r2, 0x80
- lsls r2, 1
- adds r0, r2, 0
- strh r0, [r1]
- subs r1, 0xC
- ldr r2, _082E3424
- adds r0, r2, 0
- strh r0, [r1]
- movs r0, 0
-_082E341A:
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_082E3420: .4byte 0x04000134
-_082E3424: .4byte 0x00005003
- thumb_func_end STWI_init
-
- thumb_func_start STWI_start_Command
-STWI_start_Command: @ 82E3428
- push {r4,r5,lr}
- ldr r5, _082E3480
- ldr r0, [r5]
- ldr r3, [r0, 0x24]
- ldrb r1, [r0, 0x4]
- lsls r1, 8
- ldrb r0, [r0, 0x6]
- ldr r2, _082E3484
- orrs r0, r2
- orrs r1, r0
- str r1, [r3]
- ldr r2, _082E3488
- ldr r1, [r5]
- ldr r0, [r1, 0x24]
- ldr r0, [r0]
- str r0, [r2]
- movs r2, 0
- str r2, [r1]
- movs r0, 0x1
- strb r0, [r1, 0x5]
- ldr r4, _082E348C
- ldrh r3, [r4]
- strh r2, [r4]
- ldr r2, _082E3490
- ldr r1, [r5]
- movs r0, 0x8
- ldrb r1, [r1, 0xA]
- lsls r0, r1
- ldrh r1, [r2]
- orrs r0, r1
- strh r0, [r2]
- ldrh r0, [r2]
- movs r1, 0x80
- orrs r0, r1
- strh r0, [r2]
- strh r3, [r4]
- ldr r1, _082E3494
- ldr r2, _082E3498
- adds r0, r2, 0
- strh r0, [r1]
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_082E3480: .4byte 0x03007868
-_082E3484: .4byte 0x99660000
-_082E3488: .4byte 0x04000120
-_082E348C: .4byte 0x04000208
-_082E3490: .4byte 0x04000200
-_082E3494: .4byte 0x04000128
-_082E3498: .4byte 0x00005083
- thumb_func_end STWI_start_Command
-
- thumb_func_start STWI_restart_Command
-STWI_restart_Command: @ 82E349C
- push {r4,lr}
- ldr r4, _082E34B4
- ldr r2, [r4]
- ldrb r0, [r2, 0x15]
- adds r3, r4, 0
- cmp r0, 0x1
- bhi _082E34B8
- adds r0, 0x1
- strb r0, [r2, 0x15]
- bl STWI_start_Command
- b _082E3512
- .align 2, 0
-_082E34B4: .4byte 0x03007868
-_082E34B8:
- ldrb r0, [r2, 0x6]
- cmp r0, 0x27
- beq _082E34CA
- cmp r0, 0x25
- beq _082E34CA
- cmp r0, 0x35
- beq _082E34CA
- cmp r0, 0x37
- bne _082E34EC
-_082E34CA:
- ldr r0, [r3]
- ldrh r1, [r0, 0x12]
- movs r2, 0
- movs r1, 0x1
- strh r1, [r0, 0x12]
- adds r0, 0x2C
- ldrb r1, [r0]
- strb r2, [r0]
- ldr r1, [r3]
- ldr r2, [r1, 0x18]
- cmp r2, 0
- beq _082E3512
- ldrb r0, [r1, 0x6]
- ldrh r1, [r1, 0x12]
- bl _call_via_r2
- b _082E3512
-_082E34EC:
- ldrh r0, [r2, 0x12]
- movs r1, 0
- movs r0, 0x1
- strh r0, [r2, 0x12]
- adds r0, r2, 0
- adds r0, 0x2C
- ldrb r2, [r0]
- strb r1, [r0]
- ldr r1, [r4]
- ldr r2, [r1, 0x18]
- cmp r2, 0
- beq _082E350C
- ldrb r0, [r1, 0x6]
- ldrh r1, [r1, 0x12]
- bl _call_via_r2
-_082E350C:
- ldr r1, [r4]
- movs r0, 0x4
- str r0, [r1]
-_082E3512:
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end STWI_restart_Command
-
- thumb_func_start STWI_reset_ClockCounter
-STWI_reset_ClockCounter: @ 82E351C
- ldr r3, _082E3548
- ldr r1, [r3]
- movs r0, 0x5
- str r0, [r1]
- movs r2, 0
- strb r2, [r1, 0x4]
- ldr r0, [r3]
- strb r2, [r0, 0x5]
- ldr r1, _082E354C
- movs r0, 0x80
- lsls r0, 24
- str r0, [r1]
- adds r1, 0x8
- strh r2, [r1]
- ldr r2, _082E3550
- adds r0, r2, 0
- strh r0, [r1]
- adds r2, 0x7F
- adds r0, r2, 0
- strh r0, [r1]
- movs r0, 0
- bx lr
- .align 2, 0
-_082E3548: .4byte 0x03007868
-_082E354C: .4byte 0x04000120
-_082E3550: .4byte 0x00005003
- thumb_func_end STWI_reset_ClockCounter
-
- .arm
- arm_func_start IntrSIO32
-IntrSIO32: @ 82E3554
- mov r12, sp
- stmdb sp!, {r11,r12,lr,pc}
- ldr r3, _082E35B4
- ldr r0, [r3]
- ldr r2, [r0]
- sub r11, r12, 0x4
- cmp r2, 0xA
- bne _082E3590
- ldr r0, [r0, 0x20]
- cmp r0, 0
- ldmdbeq r11, {r11,sp,lr}
- bxeq lr
- bl sub_82E3EB0
- ldmdb r11, {r11,sp,lr}
- bx lr
-_082E3590:
- ldrb r3, [r0, 0x14]
- cmp r3, 0x1
- bne _082E35A8
- bl sio32intr_clock_master
- ldmdb r11, {r11,sp,lr}
- bx lr
-_082E35A8:
- bl sio32intr_clock_slave
- ldmdb r11, {r11,sp,lr}
- bx lr
- .align 2, 0
-_082E35B4: .4byte 0x03007868
- arm_func_end IntrSIO32
-
- arm_func_start sio32intr_clock_master
-sio32intr_clock_master: @ 82E35B8
- mov r12, sp
- stmdb sp!, {r4-r6,r11,r12,lr,pc}
- mov r0, 0x50
- sub r11, r12, 0x4
- bl STWI_set_timer_in_RAM
- mov r4, 0x120
- ldr r2, _082E382C
- add r4, r4, 0x4000000
- ldr lr, [r4]
- ldr r12, [r2]
- ldr r3, [r12]
- mov r6, r2
- cmp r3, 0
- bne _082E3638
- cmp lr, 0x80000000
- bne _082E36B8
- ldrb r2, [r12, 0x5]
- ldrb r3, [r12, 0x4]
- cmp r2, r3
- bhi _082E3628
- ldr r3, [r12, 0x24]
- mov r1, r2
- ldr r2, [r3, r1, lsl 2]
- str r2, [r4]
- ldrb r3, [r12, 0x5]
- add r3, r3, 0x1
- strb r3, [r12, 0x5]
- b _082E3714
-_082E3628:
- mov r3, 0x1
- str r3, [r12]
- str lr, [r4]
- b _082E3714
-_082E3638:
- ldr r3, [r12]
- cmp r3, 0x1
- bne _082E36C8
- mov r3, 0x99000000
- add r3, r3, 0x660000
- mov r5, 0x80000000
- and r2, lr, r5, asr 15
- cmp r2, r3
- bne _082E36B8
- mov r3, 0
- strb r3, [r12, 0x8]
- ldr r1, [r6]
- ldrb r0, [r1, 0x8]
- ldr r2, [r1, 0x28]
- str lr, [r2, r0, lsl 2]
- ldrb r3, [r1, 0x8]
- add r3, r3, 0x1
- strb r3, [r1, 0x8]
- ldr r2, [r6]
- strb lr, [r2, 0x9]
- ldr r3, [r6]
- mov r2, lr, lsr 8
- strb r2, [r3, 0x7]
- ldr r1, [r6]
- ldrb r2, [r1, 0x7]
- ldrb r3, [r1, 0x8]
- cmp r2, r3
- bcc _082E3700
- mov r3, 0x2
- str r3, [r1]
- str r5, [r4]
- b _082E3714
-_082E36B8:
- bl STWI_stop_timer_in_RAM
- mov r0, 0x82
- bl STWI_set_timer_in_RAM
- b _082E3840
-_082E36C8:
- ldr r3, [r12]
- cmp r3, 0x2
- bne _082E3714
- ldrb r1, [r12, 0x8]
- ldr r2, [r12, 0x28]
- str lr, [r2, r1, lsl 2]
- ldrb r3, [r12, 0x8]
- add r3, r3, 0x1
- strb r3, [r12, 0x8]
- ldr r1, [r6]
- ldrb r2, [r1, 0x7]
- ldrb r3, [r1, 0x8]
- cmp r2, r3
- bcs _082E370C
-_082E3700:
- mov r3, 0x3
- str r3, [r1]
- b _082E3714
-_082E370C:
- mov r3, 0x80000000
- str r3, [r4]
-_082E3714:
- mov r0, 0x1
- bl handshake_wait
- mov r0, r0, lsl 16
- cmp r0, 0x10000
- beq _082E3840
- mov r4, 0x128
- add r4, r4, 0x4000000
- mov r5, 0x5000
- add r3, r5, 0xB
- strh r3, [r4]
- mov r0, 0
- bl handshake_wait
- mov r0, r0, lsl 16
- cmp r0, 0x10000
- beq _082E3840
- bl STWI_stop_timer_in_RAM
- ldr r1, [r6]
- ldr r0, [r1]
- cmp r0, 0x3
- bne _082E3830
- ldrb r3, [r1, 0x9]
- cmp r3, 0xA5
- cmpne r3, 0xA7
- beq _082E3788
- and r3, r3, 0xFF
- cmp r3, 0xB5
- beq _082E3788
- cmp r3, 0xB7
- bne _082E37D0
-_082E3788:
- mov r1, 0x120
- add r1, r1, 0x4000000
- mov r12, 0x128
- add r12, r12, 0x4000000
- ldr r0, [r6]
- mov r3, 0
- strb r3, [r0, 0x14]
- mov r2, 0x80000000
- str r2, [r1]
- add r3, r3, 0x5000
- add r2, r3, 0x2
- strh r2, [r12]
- add r3, r3, 0x82
- strh r3, [r12]
- ldr r2, [r6]
- mov r3, 0x5
- str r3, [r2]
- b _082E3800
-_082E37D0:
- cmp r3, 0xEE
- bne _082E37F0
- add r3, r5, 0x3
- strh r3, [r4]
- mov r2, 0x4
- str r2, [r1]
- strh r0, [r1, 0x12]
- b _082E3800
-_082E37F0:
- add r3, r5, 0x3
- strh r3, [r4]
- mov r2, 0x4
- str r2, [r1]
-_082E3800:
- ldr r2, [r6]
- mov r3, 0
- strb r3, [r2, 0x2C]
- ldr r0, [r6]
- ldr r2, [r0, 0x18]
- cmp r2, r3
- beq _082E3840
- ldrh r1, [r0, 0x12]
- ldrb r0, [r0, 0x6]
- bl sub_82E3EA8
- b _082E3840
- .align 2, 0
-_082E382C: .4byte 0x03007868
-_082E3830:
- add r3, r5, 0x3
- strh r3, [r4]
- add r2, r5, 0x83
- strh r2, [r4]
-_082E3840:
- ldmdb r11, {r4-r6,r11,sp,lr}
- bx lr
- arm_func_end sio32intr_clock_master
-
- arm_func_start sio32intr_clock_slave
-sio32intr_clock_slave: @ 82E3848
- mov r12, sp
- stmdb sp!, {r4-r6,r11,r12,lr,pc}
- ldr r4, _082E3BF4
- mov r0, 0x64
- ldr r3, [r4]
- mov r6, 0
- strb r6, [r3, 0x10]
- sub r11, r12, 0x4
- bl STWI_set_timer_in_RAM
- mov r0, r6
- bl handshake_wait
- mov r0, r0, lsl 16
- cmp r0, 0x10000
- mov r5, r4
- beq _082E3C4C
- mov r3, 0x128
- add r3, r3, 0x4000000
- mov r2, 0x5000
- add r2, r2, 0xA
- strh r2, [r3]
- mov lr, 0x120
- ldr r0, [r5]
- add lr, lr, 0x4000000
- ldr r12, [lr]
- ldr r3, [r0]
- cmp r3, 0x5
- bne _082E3978
- ldr r3, [r0, 0x28]
- mov r4, 0x1
- mov r0, 0x99000000
- str r12, [r3]
- add r0, r0, 0x660000
- ldr r2, [r5]
- mov r3, r0, lsr 16
- strb r4, [r2, 0x5]
- cmp r3, r12, lsr 16
- bne _082E3AC4
- ldr r3, [r5]
- mov r2, r12, lsr 8
- strb r2, [r3, 0x4]
- ldr r2, [r5]
- strb r12, [r2, 0x6]
- ldr r1, [r5]
- ldrb r3, [r1, 0x4]
- cmp r3, r6
- bne _082E395C
- ldrb r2, [r1, 0x6]
- sub r3, r2, 0x27
- cmp r2, 0x36
- cmpne r3, 0x2
- bhi _082E3930
- add r3, r2, 0x80
- strb r3, [r1, 0x9]
- ldr r2, [r5]
- ldrb r3, [r2, 0x9]
- ldr r1, [r2, 0x24]
- add r3, r3, r0
- b _082E39E0
-_082E3930:
- ldr r2, [r1, 0x24]
- ldr r3, _082E3BF8
- str r3, [r2]
- ldr r2, [r5]
- ldrb r3, [r2, 0x6]
- sub r3, r3, 0x10
- cmp r3, 0x2D
- bhi _082E3A18
- ldr r3, [r2, 0x24]
- str r4, [r3, 0x4]
- b _082E3A24
-_082E395C:
- mov r3, 0x80000000
- str r3, [lr]
- strb r4, [r1, 0x5]
- ldr r2, [r5]
- add r3, r3, 0x80000006
- str r3, [r2]
- b _082E3AD4
-_082E3978:
- ldr r3, [r0]
- cmp r3, 0x6
- bne _082E3A78
- ldrb r1, [r0, 0x5]
- ldr r2, [r0, 0x28]
- str r12, [r2, r1, lsl 2]
- ldrb r3, [r0, 0x5]
- add r3, r3, 0x1
- strb r3, [r0, 0x5]
- ldr r1, [r5]
- ldrb r2, [r1, 0x4]
- ldrb r3, [r1, 0x5]
- cmp r2, r3
- bcs _082E3A6C
- ldrb r2, [r1, 0x6]
- sub r3, r2, 0x28
- cmp r2, 0x36
- cmpne r3, 0x1
- bhi _082E39F0
- add r3, r2, 0x80
- strb r3, [r1, 0x9]
- ldr r2, [r5]
- ldrb r3, [r2, 0x9]
- ldr r1, [r2, 0x24]
- orr r3, r3, 0x99000000
- orr r3, r3, 0x660000
-_082E39E0:
- str r3, [r1]
- ldr r2, [r5]
- strb r6, [r2, 0x7]
- b _082E3A3C
-_082E39F0:
- ldr r2, [r1, 0x24]
- ldr r3, _082E3BF8
- str r3, [r2]
- ldr r2, [r5]
- ldrb r3, [r2, 0x6]
- sub r3, r3, 0x10
- cmp r3, 0x2D
- ldrls r2, [r2, 0x24]
- movls r3, 0x1
- bls _082E3A20
-_082E3A18:
- ldr r2, [r2, 0x24]
- mov r3, 0x2
-_082E3A20:
- str r3, [r2, 0x4]
-_082E3A24:
- ldr r2, [r5]
- mov r3, 0x1
- strb r3, [r2, 0x7]
- ldr r1, [r5]
- add r3, r3, 0x2
- strh r3, [r1, 0x12]
-_082E3A3C:
- ldr r0, [r5]
- ldr r2, [r0, 0x24]
- mov r3, 0x120
- ldr r1, [r2]
- add r3, r3, 0x4000000
- str r1, [r3]
- mov r2, 0x1
- strb r2, [r0, 0x8]
- ldr r1, [r5]
- mov r3, 0x7
- str r3, [r1]
- b _082E3AD4
-_082E3A6C:
- mov r3, 0x80000000
- str r3, [lr]
- b _082E3AD4
-_082E3A78:
- ldr r3, [r0]
- cmp r3, 0x7
- bne _082E3AD4
- cmp r12, 0x80000000
- bne _082E3AC4
- ldrb r2, [r0, 0x7]
- ldrb r3, [r0, 0x8]
- cmp r2, r3
- movcc r3, 0x8
- strcc r3, [r0]
- bcc _082E3AD4
- ldrb r1, [r0, 0x8]
- ldr r3, [r0, 0x24]
- ldr r2, [r3, r1, lsl 2]
- str r2, [lr]
- ldrb r3, [r0, 0x8]
- add r3, r3, 0x1
- strb r3, [r0, 0x8]
- b _082E3AD4
-_082E3AC4:
- bl STWI_stop_timer_in_RAM
- mov r0, 0x64
- bl STWI_set_timer_in_RAM
- b _082E3C4C
-_082E3AD4:
- mov r0, 0x1
- bl handshake_wait
- mov r0, r0, lsl 16
- cmp r0, 0x10000
- beq _082E3C4C
- mov r6, r5
- ldr r3, [r6]
- ldr r2, [r3]
- cmp r2, 0x8
- bne _082E3B9C
- mov r4, 0x128
- add r4, r4, 0x4000000
- mov r3, 0x5000
- add r3, r3, 0x2
- strh r3, [r4]
- bl STWI_stop_timer_in_RAM
- ldr r0, [r6]
- ldrh r3, [r0, 0x12]
- cmp r3, 0x3
- bne _082E3B48
- bl STWI_init_slave
- ldr r3, [r6]
- ldr r1, [r3, 0x1C]
- cmp r1, 0
- beq _082E3C4C
- mov r0, 0x1EC
- add r0, r0, 0x2
- bl sub_82E3EAC
- b _082E3C4C
-_082E3B48:
- mov r3, 0x120
- add r3, r3, 0x4000000
- mov r1, 0
- str r1, [r3]
- mov r2, 0x5000
- strh r1, [r4]
- add r2, r2, 0x3
- strh r2, [r4]
- mov r3, 0x1
- strb r3, [r0, 0x14]
- ldr r0, [r5]
- ldr r2, [r0, 0x1C]
- str r1, [r0]
- cmp r2, r1
- beq _082E3C4C
- ldrb r3, [r0, 0x4]
- ldrb r0, [r0, 0x6]
- mov r1, r2
- orr r0, r0, r3, lsl 8
- bl sub_82E3EAC
- b _082E3C4C
-_082E3B9C:
- mov r3, 0x208
- add r3, r3, 0x4000000
- mov r2, 0
- strh r2, [r3]
- mov r1, 0x100
- add r2, r1, 0x4000002
- ldrh r3, [r2]
- tst r3, 0x80
- beq _082E3C20
- ldrh r3, [r2]
- tst r3, 0x3
- bne _082E3BFC
- mov r2, 0xFF00
- add r1, r1, 0x4000000
- ldrh r3, [r1]
- add r2, r2, 0x9B
- cmp r3, r2
- bls _082E3C20
-_082E3BE4:
- ldrh r3, [r1]
- cmp r3, r2
- bhi _082E3BE4
- b _082E3C20
- .align 2, 0
-_082E3BF4: .4byte 0x03007868
-_082E3BF8: .4byte 0x996601ee
-_082E3BFC:
- mov r2, 0xFF00
- add r1, r1, 0x4000000
- ldrh r3, [r1]
- add r2, r2, 0xFE
- cmp r3, r2
- bls _082E3C20
-_082E3C14:
- ldrh r3, [r1]
- cmp r3, r2
- bhi _082E3C14
-_082E3C20:
- mov r1, 0x128
- add r1, r1, 0x4000000
- mov r0, 0x208
- add r0, r0, 0x4000000
- mov r3, 0x5000
- add r2, r3, 0x2
- strh r2, [r1]
- add r3, r3, 0x82
- strh r3, [r1]
- mov r2, 0x1
- strh r2, [r0]
-_082E3C4C:
- ldmdb r11, {r4-r6,r11,sp,lr}
- bx lr
- arm_func_end sio32intr_clock_slave
-
- arm_func_start handshake_wait
-handshake_wait: @ 82E3C54
- mov r12, sp
- stmdb sp!, {r11,r12,lr,pc}
- mov r1, 0x128
- add r1, r1, 0x4000000
- mov r0, r0, lsl 16
- ldr r2, _082E3CB8
- sub r11, r12, 0x4
- mov lr, r0, lsr 14
- ldr r12, [r2]
-_082E3C78:
- ldrb r3, [r12, 0x10]
- and r0, r3, 0xFF
- cmp r0, 0x1
- beq _082E3CA4
- ldrh r3, [r1]
- and r3, r3, 0x4
- cmp r3, lr
- bne _082E3C78
- mov r0, 0
- ldmdb r11, {r11,sp,lr}
- bx lr
-_082E3CA4:
- ldr r2, [r2]
- mov r3, 0
- strb r3, [r2, 0x10]
- ldmdb r11, {r11,sp,lr}
- bx lr
- .align 2, 0
-_082E3CB8: .4byte 0x03007868
- arm_func_end handshake_wait
-
- arm_func_start STWI_set_timer_in_RAM
-STWI_set_timer_in_RAM: @ 82E3CBC
- mov r12, sp
- stmdb sp!, {r4,r5,r11,r12,lr,pc}
- mov r1, 0x208
- add r1, r1, 0x4000000
- mov r3, 0
- sub r11, r12, 0x4
- ldr r12, _082E3D74
- and lr, r0, 0xFF
- ldr r2, [r12]
- cmp lr, 0x50
- ldrb r0, [r2, 0xA]
- mov r4, r12
- mov r2, lr
- strh r3, [r1]
- mov r0, r0, lsl 2
- add r3, r3, 0x100
- add r1, r3, 0x4000000
- add r3, r3, 0x4000002
- add r5, r0, r3
- beq _082E3D44
- bgt _082E3D1C
- cmp lr, 0x32
- beq _082E3D30
- b _082E3D90
-_082E3D1C:
- cmp r2, 0x64
- beq _082E3D5C
- cmp r2, 0x82
- beq _082E3D78
- b _082E3D90
-_082E3D30:
- mvn r3, 0x334
- strh r3, [r0, r1]
- ldr r2, [r4]
- mov r3, 0x1
- b _082E3D8C
-_082E3D44:
- mov r3, 0xAE000000
- mov r3, r3, asr 20
- strh r3, [r0, r1]
- ldr r2, [r4]
- mov r3, 0x2
- b _082E3D8C
-_082E3D5C:
- mvn r3, 0x660
- sub r3, r3, 0x9
- strh r3, [r0, r1]
- ldr r2, [r4]
- mov r3, 0x3
- b _082E3D8C
- .align 2, 0
-_082E3D74: .4byte 0x03007868
-_082E3D78:
- mvn r3, 0x850
- sub r3, r3, 0x2
- strh r3, [r0, r1]
- ldr r2, [r4]
- mov r3, 0x4
-_082E3D8C:
- str r3, [r2, 0xC]
-_082E3D90:
- mov r12, 0x200
- add r12, r12, 0x4000002
- mov r3, 0xC3
- strh r3, [r5]
- mov r1, 0x208
- ldr r2, [r4]
- add r1, r1, 0x4000000
- ldrb r0, [r2, 0xA]
- sub r3, r3, 0xBB
- mov r3, r3, lsl r0
- strh r3, [r12]
- mov r2, 0x1
- strh r2, [r1]
- ldmdb r11, {r4,r5,r11,sp,lr}
- bx lr
- arm_func_end STWI_set_timer_in_RAM
-
- arm_func_start STWI_stop_timer_in_RAM
-STWI_stop_timer_in_RAM: @ 82E3DCC
- mov r12, sp
- stmdb sp!, {r11,r12,lr,pc}
- mov r1, 0x100
- ldr lr, _082E3E18
- add r0, r1, 0x4000000
- ldr r2, [lr]
- sub r11, r12, 0x4
- ldrb r3, [r2, 0xA]
- mov r12, 0
- str r12, [r2, 0xC]
- mov r3, r3, lsl 2
- strh r12, [r3, r0]
- ldr r2, [lr]
- ldrb r3, [r2, 0xA]
- add r1, r1, 0x4000002
- mov r3, r3, lsl 2
- strh r12, [r3, r1]
- ldmdb r11, {r11,sp,lr}
- bx lr
- .align 2, 0
-_082E3E18: .4byte 0x03007868
- arm_func_end STWI_stop_timer_in_RAM
-
- arm_func_start STWI_init_slave
-STWI_init_slave: @ 82E3E1C
- mov r12, sp
- stmdb sp!, {r11,r12,lr,pc}
- ldr r0, _082E3EA4
- ldr r2, [r0]
- mov r3, 0x5
- str r3, [r2]
- mov r1, 0
- strb r1, [r2, 0x14]
- ldr r3, [r0]
- strb r1, [r3, 0x4]
- ldr r2, [r0]
- strb r1, [r2, 0x5]
- ldr r3, [r0]
- strb r1, [r3, 0x6]
- ldr r2, [r0]
- strb r1, [r2, 0x7]
- ldr r3, [r0]
- strb r1, [r3, 0x8]
- ldr r2, [r0]
- strb r1, [r2, 0x9]
- ldr r3, [r0]
- str r1, [r3, 0xC]
- sub r11, r12, 0x4
- strb r1, [r3, 0x10]
- mov r2, 0x128
- ldr r12, [r0]
- add r2, r2, 0x4000000
- strh r1, [r12, 0x12]
- mov r3, 0x5000
- strb r1, [r12, 0x15]
- add r3, r3, 0x82
- strh r3, [r2]
- ldmdb r11, {r11,sp,lr}
- bx lr
- .align 2, 0
-_082E3EA4: .4byte 0x03007868
- arm_func_end STWI_init_slave
-
- arm_func_start sub_82E3EA8
-sub_82E3EA8: @ 82E3EA8
- bx r2
- arm_func_end sub_82E3EA8
-
- arm_func_start sub_82E3EAC
-sub_82E3EAC: @ 82E3EAC
- bx r1
- arm_func_end sub_82E3EAC
-
- arm_func_start sub_82E3EB0
-sub_82E3EB0: @ 82E3EB0
- bx r0
- arm_func_end sub_82E3EB0
-
- .thumb
- thumb_func_start rfu_initializeAPI
-rfu_initializeAPI: @ 82E3EB4
- push {r4-r7,lr}
- adds r4, r0, 0
- mov r12, r2
- lsls r1, 16
- lsrs r2, r1, 16
- lsls r3, 24
- lsrs r7, r3, 24
- movs r0, 0xF0
- lsls r0, 20
- ands r0, r4
- movs r1, 0x80
- lsls r1, 18
- cmp r0, r1
- bne _082E3ED4
- cmp r7, 0
- bne _082E3EDC
-_082E3ED4:
- movs r0, 0x3
- ands r0, r4
- cmp r0, 0
- beq _082E3EE0
-_082E3EDC:
- movs r0, 0x2
- b _082E3FB8
-_082E3EE0:
- cmp r7, 0
- beq _082E3EEC
- ldr r3, _082E3EE8
- b _082E3EEE
- .align 2, 0
-_082E3EE8: .4byte 0x00000e64
-_082E3EEC:
- ldr r3, _082E3EF8
-_082E3EEE:
- cmp r2, r3
- bcs _082E3EFC
- movs r0, 0x1
- b _082E3FB8
- .align 2, 0
-_082E3EF8: .4byte 0x00000504
-_082E3EFC:
- ldr r0, _082E3FC0
- str r4, [r0]
- ldr r1, _082E3FC4
- adds r0, r4, 0
- adds r0, 0xB4
- str r0, [r1]
- ldr r1, _082E3FC8
- adds r0, 0x28
- str r0, [r1]
- ldr r2, _082E3FCC
- movs r1, 0xDE
- lsls r1, 1
- adds r0, r4, r1
- str r0, [r2]
- ldr r1, _082E3FD0
- movs r3, 0xDF
- lsls r3, 2
- adds r0, r4, r3
- str r0, [r1]
- movs r5, 0x1
- adds r6, r2, 0
- adds r4, r1, 0
-_082E3F28:
- lsls r2, r5, 2
- adds r3, r2, r6
- subs r1, r5, 0x1
- lsls r1, 2
- adds r0, r1, r6
- ldr r0, [r0]
- adds r0, 0x70
- str r0, [r3]
- adds r2, r4
- adds r1, r4
- ldr r0, [r1]
- adds r0, 0x1C
- str r0, [r2]
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0x3
- bls _082E3F28
- ldr r0, _082E3FC8
- ldr r1, [r0]
- adds r1, 0xDC
- ldr r4, _082E3FD0
- ldr r0, [r4, 0xC]
- adds r0, 0x1C
- str r0, [r1]
- mov r1, r12
- adds r2, r7, 0
- bl STWI_init_all
- bl rfu_STC_clearAPIVariables
- movs r5, 0
- ldr r3, _082E3FCC
- movs r2, 0
-_082E3F6C:
- lsls r1, r5, 2
- adds r0, r1, r3
- ldr r0, [r0]
- str r2, [r0, 0x68]
- str r2, [r0, 0x6C]
- adds r1, r4
- ldr r0, [r1]
- str r2, [r0, 0x14]
- str r2, [r0, 0x18]
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0x3
- bls _082E3F6C
- ldr r4, _082E3FD4
- movs r0, 0x2
- negs r0, r0
- ands r4, r0
- ldr r1, _082E3FC8
- ldr r0, [r1]
- adds r2, r0, 0
- adds r2, 0x8
- movs r3, 0x2F
- ldr r5, _082E3FD8
-_082E3F9C:
- ldrh r0, [r4]
- strh r0, [r2]
- adds r4, 0x2
- adds r2, 0x2
- subs r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, r5
- bne _082E3F9C
- ldr r1, [r1]
- adds r0, r1, 0
- adds r0, 0x9
- str r0, [r1, 0x4]
- movs r0, 0
-_082E3FB8:
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_082E3FC0: .4byte 0x03007890
-_082E3FC4: .4byte 0x03007894
-_082E3FC8: .4byte 0x03007898
-_082E3FCC: .4byte 0x03007880
-_082E3FD0: .4byte 0x03007870
-_082E3FD4: .4byte sub_82E53F4 + 1
-_082E3FD8: .4byte 0x0000ffff
- thumb_func_end rfu_initializeAPI
-
- thumb_func_start rfu_STC_clearAPIVariables
-rfu_STC_clearAPIVariables: @ 82E3FDC
- push {r4-r7,lr}
- sub sp, 0x4
- ldr r1, _082E4050
- ldrh r0, [r1]
- adds r7, r0, 0
- movs r6, 0
- strh r6, [r1]
- ldr r5, _082E4054
- ldr r1, [r5]
- ldrb r4, [r1]
- mov r0, sp
- strh r6, [r0]
- ldr r2, _082E4058
- bl CpuSet
- ldr r2, [r5]
- movs r0, 0x8
- ands r4, r0
- movs r1, 0
- strb r4, [r2]
- mov r0, sp
- adds r0, 0x2
- strh r1, [r0]
- ldr r4, _082E405C
- ldr r1, [r4]
- ldr r2, _082E4060
- bl CpuSet
- ldr r1, [r4]
- movs r0, 0x4
- strb r0, [r1, 0x9]
- ldr r0, [r5]
- strb r6, [r0, 0x6]
- ldr r1, [r4]
- movs r0, 0xFF
- strb r0, [r1]
- bl rfu_clearAllSlot
- ldr r0, [r5]
- strb r6, [r0, 0x9]
- movs r2, 0
- movs r3, 0
-_082E4030:
- ldr r0, [r5]
- lsls r1, r2, 1
- adds r0, 0x12
- adds r0, r1
- strh r3, [r0]
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x3
- bls _082E4030
- ldr r0, _082E4050
- strh r7, [r0]
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_082E4050: .4byte 0x04000208
-_082E4054: .4byte 0x03007894
-_082E4058: .4byte 0x01000014
-_082E405C: .4byte 0x03007890
-_082E4060: .4byte 0x0100005a
- thumb_func_end rfu_STC_clearAPIVariables
-
- thumb_func_start rfu_REQ_PARENT_resumeRetransmitAndChange
-rfu_REQ_PARENT_resumeRetransmitAndChange: @ 82E4064
- push {lr}
- ldr r0, _082E4074
- bl STWI_set_Callback_M
- bl STWI_send_ResumeRetransmitAndChangeREQ
- pop {r0}
- bx r0
- .align 2, 0
-_082E4074: .4byte rfu_STC_REQ_callback + 1
- thumb_func_end rfu_REQ_PARENT_resumeRetransmitAndChange
-
- thumb_func_start rfu_UNI_PARENT_getDRAC_ACK
-rfu_UNI_PARENT_getDRAC_ACK: @ 82E4078
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r0, 0
- strb r0, [r4]
- ldr r5, _082E4090
- ldr r0, [r5]
- ldrb r0, [r0]
- cmp r0, 0x1
- beq _082E4094
- movs r0, 0xC0
- lsls r0, 2
- b _082E40BA
- .align 2, 0
-_082E4090: .4byte 0x03007890
-_082E4094:
- bl rfu_getSTWIRecvBuffer
- adds r1, r0, 0
- ldrb r0, [r1]
- cmp r0, 0x28
- beq _082E40A4
- cmp r0, 0x36
- bne _082E40B8
-_082E40A4:
- ldrb r0, [r1, 0x1]
- cmp r0, 0
- bne _082E40B0
- ldr r0, [r5]
- ldrb r0, [r0, 0x2]
- b _082E40B2
-_082E40B0:
- ldrb r0, [r1, 0x4]
-_082E40B2:
- strb r0, [r4]
- movs r0, 0
- b _082E40BA
-_082E40B8:
- movs r0, 0x10
-_082E40BA:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end rfu_UNI_PARENT_getDRAC_ACK
-
- thumb_func_start rfu_setTimerInterrupt
-rfu_setTimerInterrupt: @ 82E40C0
- push {lr}
- adds r2, r0, 0
- adds r0, r1, 0
- lsls r2, 24
- lsrs r2, 24
- adds r1, r2, 0
- bl STWI_init_timer
- pop {r0}
- bx r0
- thumb_func_end rfu_setTimerInterrupt
-
- thumb_func_start rfu_getSTWIRecvBuffer
-rfu_getSTWIRecvBuffer: @ 82E40D4
- ldr r0, _082E40E0
- ldr r0, [r0]
- adds r0, 0xDC
- ldr r0, [r0]
- bx lr
- .align 2, 0
-_082E40E0: .4byte 0x03007898
- thumb_func_end rfu_getSTWIRecvBuffer
-
- thumb_func_start rfu_setMSCCallback
-rfu_setMSCCallback: @ 82E40E4
- push {lr}
- bl STWI_set_Callback_S
- pop {r0}
- bx r0
- thumb_func_end rfu_setMSCCallback
-
- thumb_func_start rfu_setREQCallback
-rfu_setREQCallback: @ 82E40F0
- push {lr}
- adds r1, r0, 0
- ldr r0, _082E4108
- ldr r0, [r0]
- str r1, [r0]
- negs r0, r1
- orrs r0, r1
- lsrs r0, 31
- bl rfu_enableREQCallback
- pop {r0}
- bx r0
- .align 2, 0
-_082E4108: .4byte 0x03007898
- thumb_func_end rfu_setREQCallback
-
- thumb_func_start rfu_enableREQCallback
-rfu_enableREQCallback: @ 82E410C
- push {lr}
- lsls r0, 24
- cmp r0, 0
- beq _082E4124
- ldr r0, _082E4120
- ldr r2, [r0]
- ldrb r1, [r2]
- movs r0, 0x8
- orrs r0, r1
- b _082E412E
- .align 2, 0
-_082E4120: .4byte 0x03007894
-_082E4124:
- ldr r0, _082E4134
- ldr r2, [r0]
- ldrb r1, [r2]
- movs r0, 0xF7
- ands r0, r1
-_082E412E:
- strb r0, [r2]
- pop {r0}
- bx r0
- .align 2, 0
-_082E4134: .4byte 0x03007894
- thumb_func_end rfu_enableREQCallback
-
- thumb_func_start rfu_STC_REQ_callback
-rfu_STC_REQ_callback: @ 82E4138
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r1, 16
- lsrs r4, r1, 16
- ldr r0, _082E416C
- bl STWI_set_Callback_M
- ldr r0, _082E4170
- ldr r0, [r0]
- strh r4, [r0, 0x1C]
- ldrb r1, [r0]
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- beq _082E4166
- ldr r0, _082E4174
- ldr r0, [r0]
- ldr r2, [r0]
- adds r0, r5, 0
- adds r1, r4, 0
- bl _call_via_r2
-_082E4166:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_082E416C: .4byte rfu_CB_defaultCallback + 1
-_082E4170: .4byte 0x03007894
-_082E4174: .4byte 0x03007898
- thumb_func_end rfu_STC_REQ_callback
-
- thumb_func_start rfu_CB_defaultCallback
-rfu_CB_defaultCallback: @ 82E4178
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 16
- lsrs r3, r1, 16
- cmp r0, 0xFF
- bne _082E41D4
- ldr r0, _082E41DC
- ldr r0, [r0]
- ldrb r1, [r0]
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- beq _082E41A2
- ldr r0, _082E41E0
- ldr r0, [r0]
- ldr r2, [r0]
- movs r0, 0xFF
- adds r1, r3, 0
- bl _call_via_r2
-_082E41A2:
- ldr r0, _082E41E4
- ldr r0, [r0]
- ldrb r1, [r0, 0x2]
- ldrb r0, [r0, 0x3]
- adds r5, r0, 0
- orrs r5, r1
- movs r4, 0
-_082E41B0:
- adds r0, r5, 0
- asrs r0, r4
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _082E41C2
- adds r0, r4, 0
- bl rfu_STC_removeLinkData
-_082E41C2:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x3
- bls _082E41B0
- ldr r0, _082E41E4
- ldr r1, [r0]
- movs r0, 0xFF
- strb r0, [r1]
-_082E41D4:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_082E41DC: .4byte 0x03007894
-_082E41E0: .4byte 0x03007898
-_082E41E4: .4byte 0x03007890
- thumb_func_end rfu_CB_defaultCallback
-
- thumb_func_start rfu_waitREQComplete
-rfu_waitREQComplete: @ 82E41E8
- push {lr}
- bl STWI_poll_CommandEnd
- ldr r0, _082E41F8
- ldr r0, [r0]
- ldrh r0, [r0, 0x1C]
- pop {r1}
- bx r1
- .align 2, 0
-_082E41F8: .4byte 0x03007894
- thumb_func_end rfu_waitREQComplete
-
- thumb_func_start rfu_REQ_RFUStatus
-rfu_REQ_RFUStatus: @ 82E41FC
- push {lr}
- ldr r0, _082E420C
- bl STWI_set_Callback_M
- bl STWI_send_SystemStatusREQ
- pop {r0}
- bx r0
- .align 2, 0
-_082E420C: .4byte rfu_STC_REQ_callback + 1
- thumb_func_end rfu_REQ_RFUStatus
-
- thumb_func_start rfu_getRFUStatus
-rfu_getRFUStatus: @ 82E4210
- push {r4,r5,lr}
- adds r4, r0, 0
- ldr r5, _082E4228
- ldr r0, [r5]
- adds r0, 0xDC
- ldr r0, [r0]
- ldrb r0, [r0]
- cmp r0, 0x93
- beq _082E422C
- movs r0, 0x10
- b _082E4246
- .align 2, 0
-_082E4228: .4byte 0x03007898
-_082E422C:
- bl STWI_poll_CommandEnd
- lsls r0, 16
- cmp r0, 0
- bne _082E4240
- ldr r0, [r5]
- adds r0, 0xDC
- ldr r0, [r0]
- ldrb r0, [r0, 0x7]
- b _082E4242
-_082E4240:
- movs r0, 0xFF
-_082E4242:
- strb r0, [r4]
- movs r0, 0
-_082E4246:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end rfu_getRFUStatus
-
- thumb_func_start sub_82E424C
-sub_82E424C: @ 82E424C
- push {lr}
- ldr r2, _082E4254
- ldr r3, _082E4258
- b _082E4266
- .align 2, 0
-_082E4254: .4byte 0x089a324c
-_082E4258: .4byte 0x030000f0
- thumb_func_end sub_82E424C
-
- thumb_func_start sub_82E425C
-sub_82E425C: @ 82E425C
- ldrb r0, [r3]
- adds r3, 0x1
- adds r2, 0x1
- cmp r1, r0
- bne _082E42BC
-_082E4266:
- ldrb r1, [r2]
- cmp r1, 0
- bne sub_82E425C
- movs r2, 0xC0
- lsls r2, 18
- movs r3, 0
- movs r1, 0
-_082E4274:
- ldrh r0, [r2]
- adds r0, r3, r0
- lsls r0, 16
- lsrs r3, r0, 16
- adds r2, 0x2
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x59
- bls _082E4274
- ldr r0, _082E42B0
- ldrh r0, [r0]
- cmp r3, r0
- bne _082E42BC
- movs r0, 0xC0
- lsls r0, 18
- ldr r1, _082E42B4
- ldr r1, [r1]
- movs r2, 0x5A
- bl CpuSet
- ldr r0, _082E42B8
- ldr r2, [r0]
- ldrb r1, [r2]
- movs r0, 0x80
- orrs r0, r1
- strb r0, [r2]
- movs r0, 0
- b _082E42BE
- .align 2, 0
-_082E42B0: .4byte 0x030000fa
-_082E42B4: .4byte 0x03007890
-_082E42B8: .4byte 0x03007894
-_082E42BC:
- movs r0, 0x1
-_082E42BE:
- pop {r1}
- bx r1
- thumb_func_end sub_82E425C
-
- thumb_func_start rfu_REQ_stopMode
-rfu_REQ_stopMode: @ 82E42C4
- push {lr}
- ldr r0, _082E42E4
- ldrh r0, [r0]
- cmp r0, 0
- bne _082E42EC
- movs r0, 0x3D
- movs r1, 0x6
- bl rfu_STC_REQ_callback
- ldr r0, _082E42E8
- ldr r1, [r0]
- ldrh r0, [r1, 0x12]
- movs r0, 0x6
- strh r0, [r1, 0x12]
- b _082E4362
- .align 2, 0
-_082E42E4: .4byte 0x04000208
-_082E42E8: .4byte 0x03007868
-_082E42EC:
- bl AgbRFU_SoftReset
- bl rfu_STC_clearAPIVariables
- movs r0, 0x8
- bl sub_82E6D6C
- ldr r1, _082E433C
- cmp r0, r1
- bne _082E4350
- ldr r0, _082E4340
- ldr r0, [r0]
- ldrb r0, [r0, 0xA]
- lsls r0, 2
- ldr r2, _082E4344
- adds r1, r0, r2
- movs r0, 0
- str r0, [r1]
- movs r0, 0x83
- lsls r0, 16
- str r0, [r1]
- ldr r0, [r1]
- lsls r0, 16
- ldr r2, _082E4348
- ldr r3, _082E434C
- cmp r0, r2
- bhi _082E432A
-_082E4322:
- ldr r0, [r1]
- lsls r0, 16
- cmp r0, r2
- bls _082E4322
-_082E432A:
- movs r0, 0
- str r0, [r1]
- adds r0, r3, 0
- bl STWI_set_Callback_M
- bl STWI_send_StopModeREQ
- b _082E4362
- .align 2, 0
-_082E433C: .4byte 0x00008001
-_082E4340: .4byte 0x03007868
-_082E4344: .4byte 0x04000100
-_082E4348: .4byte 0x0105ffff
-_082E434C: .4byte rfu_CB_stopMode + 1
-_082E4350:
- ldr r1, _082E4368
- movs r2, 0x80
- lsls r2, 6
- adds r0, r2, 0
- strh r0, [r1]
- movs r0, 0x3D
- movs r1, 0
- bl rfu_STC_REQ_callback
-_082E4362:
- pop {r0}
- bx r0
- .align 2, 0
-_082E4368: .4byte 0x04000128
- thumb_func_end rfu_REQ_stopMode
-
- thumb_func_start rfu_CB_stopMode
-rfu_CB_stopMode: @ 82E436C
- push {r4,lr}
- lsls r0, 24
- lsrs r3, r0, 24
- lsls r1, 16
- lsrs r1, 16
- adds r2, r1, 0
- cmp r2, 0
- bne _082E4386
- ldr r1, _082E4394
- movs r4, 0x80
- lsls r4, 6
- adds r0, r4, 0
- strh r0, [r1]
-_082E4386:
- adds r0, r3, 0
- adds r1, r2, 0
- bl rfu_STC_REQ_callback
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_082E4394: .4byte 0x04000128
- thumb_func_end rfu_CB_stopMode
-
- thumb_func_start rfu_REQBN_softReset_and_checkID
-rfu_REQBN_softReset_and_checkID: @ 82E4398
- push {lr}
- ldr r0, _082E43A8
- ldrh r0, [r0]
- cmp r0, 0
- bne _082E43AC
- movs r0, 0x1
- negs r0, r0
- b _082E43CC
- .align 2, 0
-_082E43A8: .4byte 0x04000208
-_082E43AC:
- bl AgbRFU_SoftReset
- bl rfu_STC_clearAPIVariables
- movs r0, 0x1E
- bl sub_82E6D6C
- adds r2, r0, 0
- cmp r2, 0
- bne _082E43CA
- ldr r1, _082E43D0
- movs r3, 0x80
- lsls r3, 6
- adds r0, r3, 0
- strh r0, [r1]
-_082E43CA:
- adds r0, r2, 0
-_082E43CC:
- pop {r1}
- bx r1
- .align 2, 0
-_082E43D0: .4byte 0x04000128
- thumb_func_end rfu_REQBN_softReset_and_checkID
-
- thumb_func_start rfu_REQ_reset
-rfu_REQ_reset: @ 82E43D4
- push {lr}
- ldr r0, _082E43E4
- bl STWI_set_Callback_M
- bl STWI_send_ResetREQ
- pop {r0}
- bx r0
- .align 2, 0
-_082E43E4: .4byte rfu_CB_reset + 1
- thumb_func_end rfu_REQ_reset
-
- thumb_func_start rfu_CB_reset
-rfu_CB_reset: @ 82E43E8
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r1, 16
- lsrs r1, 16
- adds r4, r1, 0
- cmp r4, 0
- bne _082E43FC
- bl rfu_STC_clearAPIVariables
-_082E43FC:
- adds r0, r5, 0
- adds r1, r4, 0
- bl rfu_STC_REQ_callback
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end rfu_CB_reset
-
- thumb_func_start rfu_REQ_configSystem
-rfu_REQ_configSystem: @ 82E440C
- push {r4-r6,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- lsls r4, 16
- lsrs r4, 16
- lsls r5, 24
- lsrs r5, 24
- lsls r2, 24
- lsrs r6, r2, 24
- ldr r0, _082E4444
- bl STWI_set_Callback_M
- movs r0, 0x3
- ands r4, r0
- movs r0, 0x3C
- orrs r4, r0
- adds r0, r4, 0
- adds r1, r5, 0
- adds r2, r6, 0
- bl STWI_send_SystemConfigREQ
- cmp r6, 0
- bne _082E444C
- ldr r0, _082E4448
- ldr r1, [r0]
- movs r0, 0x1
- strh r0, [r1, 0x1A]
- b _082E4466
- .align 2, 0
-_082E4444: .4byte rfu_STC_REQ_callback + 1
-_082E4448: .4byte 0x03007894
-_082E444C:
- ldr r5, _082E446C
- ldrh r4, [r5]
- movs r0, 0
- strh r0, [r5]
- movs r0, 0x96
- lsls r0, 2
- adds r1, r6, 0
- bl Div
- ldr r1, _082E4470
- ldr r1, [r1]
- strh r0, [r1, 0x1A]
- strh r4, [r5]
-_082E4466:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_082E446C: .4byte 0x04000208
-_082E4470: .4byte 0x03007894
- thumb_func_end rfu_REQ_configSystem
-
- thumb_func_start rfu_REQ_configGameData
-rfu_REQ_configGameData: @ 82E4474
- push {r4-r7,lr}
- sub sp, 0x10
- adds r4, r2, 0
- adds r7, r3, 0
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r2, r1, 16
- adds r5, r4, 0
- mov r0, sp
- strb r1, [r0]
- lsrs r2, 24
- strb r2, [r0, 0x1]
- cmp r6, 0
- beq _082E449A
- movs r1, 0x80
- orrs r2, r1
- movs r1, 0
- orrs r2, r1
- strb r2, [r0, 0x1]
-_082E449A:
- movs r2, 0x2
- ldr r0, _082E44FC
- mov r12, r0
-_082E44A0:
- mov r3, sp
- adds r1, r3, r2
- ldrb r0, [r4]
- strb r0, [r1]
- adds r4, 0x1
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0xE
- bls _082E44A0
- movs r3, 0
- adds r1, r7, 0
- movs r2, 0
-_082E44BA:
- ldrb r0, [r1]
- adds r0, r3, r0
- lsls r0, 24
- adds r1, 0x1
- lsrs r0, 24
- ldrb r3, [r5]
- adds r0, r3
- lsls r0, 24
- lsrs r3, r0, 24
- adds r5, 0x1
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x7
- bls _082E44BA
- mov r1, sp
- mvns r0, r3
- strb r0, [r1, 0xF]
- cmp r6, 0
- beq _082E44E6
- movs r0, 0
- strb r0, [r1, 0xE]
-_082E44E6:
- mov r0, r12
- bl STWI_set_Callback_M
- mov r0, sp
- adds r1, r7, 0
- bl STWI_send_GameConfigREQ
- add sp, 0x10
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_082E44FC: .4byte rfu_CB_configGameData + 1
- thumb_func_end rfu_REQ_configGameData
-
- thumb_func_start rfu_CB_configGameData
-rfu_CB_configGameData: @ 82E4500
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r0, 24
- mov r12, r0
- lsls r1, 16
- lsrs r7, r1, 16
- cmp r7, 0
- bne _082E458A
- ldr r0, _082E4544
- ldr r0, [r0]
- ldr r1, [r0, 0x24]
- ldr r0, _082E4548
- ldr r6, [r0]
- ldrb r2, [r1, 0x4]
- adds r5, r6, 0
- adds r5, 0x98
- strh r2, [r5]
- ldrb r0, [r1, 0x5]
- lsls r3, r0, 8
- orrs r3, r2
- strh r3, [r5]
- adds r4, r1, 0x6
- movs r1, 0x80
- lsls r1, 8
- adds r0, r3, 0
- ands r0, r1
- cmp r0, 0
- beq _082E454C
- eors r3, r1
- strh r3, [r5]
- adds r1, r6, 0
- adds r1, 0x97
- movs r0, 0x1
- b _082E4552
- .align 2, 0
-_082E4544: .4byte 0x03007868
-_082E4548: .4byte 0x03007890
-_082E454C:
- adds r1, r6, 0
- adds r1, 0x97
- movs r0, 0
-_082E4552:
- strb r0, [r1]
- movs r2, 0
- ldr r3, _082E4598
-_082E4558:
- ldr r0, [r3]
- adds r0, 0x9A
- adds r0, r2
- ldrb r1, [r4]
- strb r1, [r0]
- adds r4, 0x1
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0xC
- bls _082E4558
- adds r4, 0x1
- movs r2, 0
- ldr r3, _082E4598
-_082E4574:
- ldr r0, [r3]
- adds r0, 0xA9
- adds r0, r2
- ldrb r1, [r4]
- strb r1, [r0]
- adds r4, 0x1
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x7
- bls _082E4574
-_082E458A:
- mov r0, r12
- adds r1, r7, 0
- bl rfu_STC_REQ_callback
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_082E4598: .4byte 0x03007890
- thumb_func_end rfu_CB_configGameData
-
- thumb_func_start rfu_REQ_startSearchChild
-rfu_REQ_startSearchChild: @ 82E459C
- push {r4,lr}
- movs r1, 0
- ldr r4, _082E45E4
- ldr r3, _082E45E8
- movs r2, 0
-_082E45A6:
- ldr r0, [r3]
- adds r0, 0xE
- adds r0, r1
- strb r2, [r0]
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0x3
- bls _082E45A6
- adds r0, r4, 0
- bl STWI_set_Callback_M
- bl STWI_send_SystemStatusREQ
- bl STWI_poll_CommandEnd
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0
- bne _082E45F0
- ldr r0, _082E45EC
- ldr r0, [r0]
- adds r0, 0xDC
- ldr r0, [r0]
- ldrb r0, [r0, 0x7]
- cmp r0, 0
- bne _082E45F6
- movs r0, 0x1
- bl rfu_STC_clearLinkStatus
- b _082E45F6
- .align 2, 0
-_082E45E4: .4byte rfu_CB_defaultCallback + 1
-_082E45E8: .4byte 0x03007894
-_082E45EC: .4byte 0x03007898
-_082E45F0:
- movs r0, 0x19
- bl rfu_STC_REQ_callback
-_082E45F6:
- ldr r0, _082E4608
- bl STWI_set_Callback_M
- bl STWI_send_SC_StartREQ
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_082E4608: .4byte rfu_CB_startSearchChild + 1
- thumb_func_end rfu_REQ_startSearchChild
-
- thumb_func_start rfu_CB_startSearchChild
-rfu_CB_startSearchChild: @ 82E460C
- push {lr}
- lsls r0, 24
- lsrs r3, r0, 24
- lsls r1, 16
- lsrs r1, 16
- adds r2, r1, 0
- cmp r2, 0
- bne _082E4624
- ldr r0, _082E4630
- ldr r1, [r0]
- movs r0, 0x1
- strb r0, [r1, 0x9]
-_082E4624:
- adds r0, r3, 0
- adds r1, r2, 0
- bl rfu_STC_REQ_callback
- pop {r0}
- bx r0
- .align 2, 0
-_082E4630: .4byte 0x03007894
- thumb_func_end rfu_CB_startSearchChild
-
- thumb_func_start rfu_STC_clearLinkStatus
-rfu_STC_clearLinkStatus: @ 82E4634
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl rfu_clearAllSlot
- cmp r4, 0
- beq _082E465C
- mov r0, sp
- movs r5, 0
- strh r5, [r0]
- ldr r4, _082E4690
- ldr r1, [r4]
- adds r1, 0x14
- ldr r2, _082E4694
- bl CpuSet
- ldr r0, [r4]
- strb r5, [r0, 0x8]
-_082E465C:
- movs r1, 0
- ldr r2, _082E4690
- adds r4, r2, 0
- movs r3, 0
-_082E4664:
- ldr r0, [r4]
- adds r0, 0xA
- adds r0, r1
- strb r3, [r0]
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x3
- bls _082E4664
- ldr r0, [r2]
- movs r1, 0
- strb r1, [r0, 0x1]
- ldr r0, [r2]
- strb r1, [r0, 0x2]
- ldr r0, [r2]
- strb r1, [r0, 0x3]
- ldr r0, [r2]
- strb r1, [r0, 0x7]
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_082E4690: .4byte 0x03007890
-_082E4694: .4byte 0x01000040
- thumb_func_end rfu_STC_clearLinkStatus
-
- thumb_func_start rfu_REQ_pollSearchChild
-rfu_REQ_pollSearchChild: @ 82E4698
- push {lr}
- ldr r0, _082E46A8
- bl STWI_set_Callback_M
- bl STWI_send_SC_PollingREQ
- pop {r0}
- bx r0
- .align 2, 0
-_082E46A8: .4byte rfu_CB_pollAndEndSearchChild + 1
- thumb_func_end rfu_REQ_pollSearchChild
-
- thumb_func_start rfu_REQ_endSearchChild
-rfu_REQ_endSearchChild: @ 82E46AC
- push {lr}
- ldr r0, _082E46BC
- bl STWI_set_Callback_M
- bl STWI_send_SC_EndREQ
- pop {r0}
- bx r0
- .align 2, 0
-_082E46BC: .4byte rfu_CB_pollAndEndSearchChild + 1
- thumb_func_end rfu_REQ_endSearchChild
-
- thumb_func_start rfu_CB_pollAndEndSearchChild
-rfu_CB_pollAndEndSearchChild: @ 82E46C0
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r1, 16
- lsrs r6, r1, 16
- cmp r6, 0
- bne _082E46D2
- bl rfu_STC_readChildList
-_082E46D2:
- cmp r4, 0x1A
- bne _082E4714
- ldr r5, _082E4708
- ldr r0, [r5]
- adds r0, 0x94
- ldrh r0, [r0]
- cmp r0, 0
- bne _082E4730
- ldr r0, _082E470C
- bl STWI_set_Callback_M
- bl STWI_send_SystemStatusREQ
- bl STWI_poll_CommandEnd
- lsls r0, 16
- cmp r0, 0
- bne _082E4730
- ldr r1, [r5]
- ldr r0, _082E4710
- ldr r0, [r0]
- adds r0, 0xDC
- ldr r0, [r0]
- ldrh r0, [r0, 0x4]
- adds r1, 0x94
- strh r0, [r1]
- b _082E4730
- .align 2, 0
-_082E4708: .4byte 0x03007890
-_082E470C: .4byte rfu_CB_defaultCallback + 1
-_082E4710: .4byte 0x03007898
-_082E4714:
- cmp r4, 0x1B
- bne _082E4730
- ldr r0, _082E4740
- ldr r1, [r0]
- ldrb r0, [r1]
- cmp r0, 0xFF
- bne _082E4728
- adds r1, 0x94
- movs r0, 0
- strh r0, [r1]
-_082E4728:
- ldr r0, _082E4744
- ldr r1, [r0]
- movs r0, 0
- strb r0, [r1, 0x9]
-_082E4730:
- adds r0, r4, 0
- adds r1, r6, 0
- bl rfu_STC_REQ_callback
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_082E4740: .4byte 0x03007890
-_082E4744: .4byte 0x03007894
- thumb_func_end rfu_CB_pollAndEndSearchChild
-
- thumb_func_start rfu_STC_readChildList
-rfu_STC_readChildList: @ 82E4748
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- ldr r0, _082E47F8
- ldr r0, [r0]
- adds r0, 0xDC
- ldr r0, [r0]
- ldrb r7, [r0, 0x1]
- adds r6, r0, 0x4
- cmp r7, 0
- beq _082E47EE
- ldr r0, _082E47FC
- mov r8, r0
- ldr r1, _082E4800
- mov r12, r1
-_082E4766:
- ldrb r4, [r6, 0x2]
- cmp r4, 0x3
- bhi _082E47E2
- mov r2, r12
- ldr r1, [r2]
- ldrb r0, [r1, 0x2]
- asrs r0, r4
- movs r5, 0x1
- ands r0, r5
- cmp r0, 0
- bne _082E47E2
- ldrb r0, [r1, 0x3]
- asrs r0, r4
- ands r0, r5
- cmp r0, 0
- bne _082E47E2
- mov r1, r8
- ldr r0, [r1]
- adds r0, 0xE
- adds r0, r4
- movs r1, 0xF0
- strb r1, [r0]
- ldr r0, [r2]
- adds r0, 0xA
- adds r0, r4
- movs r1, 0x10
- strb r1, [r0]
- ldr r2, [r2]
- adds r0, r5, 0
- lsls r0, r4
- ldrb r1, [r2, 0x2]
- orrs r0, r1
- strb r0, [r2, 0x2]
- mov r2, r12
- ldr r1, [r2]
- ldrb r0, [r1, 0x1]
- adds r0, 0x1
- strb r0, [r1, 0x1]
- ldr r1, [r2]
- lsls r3, r4, 5
- adds r1, r3
- ldrh r0, [r6]
- strh r0, [r1, 0x14]
- strb r4, [r1, 0x16]
- ldr r0, [r2]
- strb r5, [r0]
- mov r0, r8
- ldr r2, [r0]
- ldrb r1, [r2]
- movs r0, 0x7F
- ands r0, r1
- strb r0, [r2]
- mov r2, r8
- ldr r1, [r2]
- lsls r0, r4, 1
- adds r1, 0x12
- adds r1, r0
- mov r2, r12
- ldr r0, [r2]
- adds r0, r3
- ldrh r0, [r0, 0x14]
- strh r0, [r1]
-_082E47E2:
- subs r0, r7, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
- adds r6, 0x4
- cmp r7, 0
- bne _082E4766
-_082E47EE:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_082E47F8: .4byte 0x03007898
-_082E47FC: .4byte 0x03007894
-_082E4800: .4byte 0x03007890
- thumb_func_end rfu_STC_readChildList
-
- thumb_func_start rfu_REQ_startSearchParent
-rfu_REQ_startSearchParent: @ 82E4804
- push {lr}
- ldr r0, _082E4814
- bl STWI_set_Callback_M
- bl STWI_send_SP_StartREQ
- pop {r0}
- bx r0
- .align 2, 0
-_082E4814: .4byte rfu_CB_startSearchParent + 1
- thumb_func_end rfu_REQ_startSearchParent
-
- thumb_func_start rfu_CB_startSearchParent
-rfu_CB_startSearchParent: @ 82E4818
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r1, 16
- lsrs r1, 16
- adds r4, r1, 0
- cmp r4, 0
- bne _082E482E
- movs r0, 0
- bl rfu_STC_clearLinkStatus
-_082E482E:
- adds r0, r5, 0
- adds r1, r4, 0
- bl rfu_STC_REQ_callback
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end rfu_CB_startSearchParent
-
- thumb_func_start rfu_REQ_pollSearchParent
-rfu_REQ_pollSearchParent: @ 82E483C
- push {lr}
- ldr r0, _082E484C
- bl STWI_set_Callback_M
- bl STWI_send_SP_PollingREQ
- pop {r0}
- bx r0
- .align 2, 0
-_082E484C: .4byte sub_82E4850 + 1
- thumb_func_end rfu_REQ_pollSearchParent
-
- thumb_func_start sub_82E4850
-sub_82E4850: @ 82E4850
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r1, 16
- lsrs r1, 16
- adds r4, r1, 0
- cmp r4, 0
- bne _082E4864
- bl rfu_STC_readParentCandidateList
-_082E4864:
- adds r0, r5, 0
- adds r1, r4, 0
- bl rfu_STC_REQ_callback
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_82E4850
-
- thumb_func_start rfu_REQ_endSearchParent
-rfu_REQ_endSearchParent: @ 82E4874
- push {lr}
- ldr r0, _082E4884
- bl STWI_set_Callback_M
- bl STWI_send_SP_EndREQ
- pop {r0}
- bx r0
- .align 2, 0
-_082E4884: .4byte rfu_STC_REQ_callback + 1
- thumb_func_end rfu_REQ_endSearchParent
-
- thumb_func_start rfu_STC_readParentCandidateList
-rfu_STC_readParentCandidateList: @ 82E4888
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- mov r0, sp
- movs r4, 0
- strh r4, [r0]
- ldr r5, _082E4930
- ldr r1, [r5]
- adds r1, 0x14
- ldr r2, _082E4934
- bl CpuSet
- ldr r0, _082E4938
- ldr r0, [r0]
- adds r0, 0xDC
- ldr r2, [r0]
- ldrb r7, [r2, 0x1]
- adds r2, 0x4
- ldr r0, [r5]
- strb r4, [r0, 0x8]
- movs r6, 0
- cmp r7, 0
- beq _082E498C
- mov r12, r5
- ldr r0, _082E493C
- mov r8, r0
-_082E48BE:
- subs r0, r7, 0x7
- lsls r0, 24
- lsrs r7, r0, 24
- adds r1, r2, 0x6
- adds r2, 0x13
- ldrb r0, [r2]
- mvns r0, r0
- lsls r0, 24
- lsrs r5, r0, 24
- adds r2, 0x1
- movs r4, 0
- movs r3, 0
- adds r6, 0x1
-_082E48D8:
- ldrb r0, [r2]
- adds r0, r4, r0
- lsls r0, 24
- adds r2, 0x1
- lsrs r0, 24
- ldrb r4, [r1]
- adds r0, r4
- lsls r0, 24
- lsrs r4, r0, 24
- adds r1, 0x1
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0x7
- bls _082E48D8
- cmp r4, r5
- bne _082E4980
- subs r2, 0x1C
- mov r0, r12
- ldr r1, [r0]
- ldrb r0, [r1, 0x8]
- lsls r0, 5
- adds r0, 0x14
- adds r4, r1, r0
- ldrh r0, [r2]
- movs r3, 0
- strh r0, [r4]
- adds r2, 0x2
- ldrb r0, [r2]
- strb r0, [r4, 0x2]
- adds r2, 0x2
- ldrh r1, [r2]
- mov r0, r8
- ands r0, r1
- strh r0, [r4, 0x4]
- ldrh r1, [r2]
- movs r0, 0x80
- lsls r0, 8
- ands r0, r1
- cmp r0, 0
- beq _082E4940
- movs r0, 0x1
- strb r0, [r4, 0x3]
- b _082E4942
- .align 2, 0
-_082E4930: .4byte 0x03007890
-_082E4934: .4byte 0x01000040
-_082E4938: .4byte 0x03007898
-_082E493C: .4byte 0x00007fff
-_082E4940:
- strb r3, [r4, 0x3]
-_082E4942:
- adds r2, 0x2
- movs r3, 0
- adds r5, r4, 0
- adds r5, 0x15
- adds r4, 0x6
-_082E494C:
- adds r1, r4, r3
- ldrb r0, [r2]
- strb r0, [r1]
- adds r2, 0x1
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0xC
- bls _082E494C
- adds r2, 0x1
- movs r3, 0
- adds r4, r5, 0
-_082E4964:
- adds r1, r4, r3
- ldrb r0, [r2]
- strb r0, [r1]
- adds r2, 0x1
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0x7
- bls _082E4964
- mov r4, r12
- ldr r1, [r4]
- ldrb r0, [r1, 0x8]
- adds r0, 0x1
- strb r0, [r1, 0x8]
-_082E4980:
- lsls r0, r6, 24
- lsrs r6, r0, 24
- cmp r6, 0x3
- bhi _082E498C
- cmp r7, 0
- bne _082E48BE
-_082E498C:
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end rfu_STC_readParentCandidateList
-
- thumb_func_start rfu_REQ_startConnectParent
-rfu_REQ_startConnectParent: @ 82E4998
- push {r4,r5,lr}
- lsls r0, 16
- lsrs r4, r0, 16
- movs r3, 0
- movs r2, 0
- ldr r1, _082E49E4
- ldr r0, [r1]
- ldrh r0, [r0, 0x14]
- cmp r0, r4
- beq _082E49C4
- adds r5, r1, 0
-_082E49AE:
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x3
- bhi _082E49C4
- ldr r0, [r5]
- lsls r1, r2, 5
- adds r0, r1
- ldrh r0, [r0, 0x14]
- cmp r0, r4
- bne _082E49AE
-_082E49C4:
- cmp r2, 0x4
- bne _082E49CC
- movs r3, 0x80
- lsls r3, 1
-_082E49CC:
- cmp r3, 0
- bne _082E49F0
- ldr r0, _082E49E8
- ldr r0, [r0]
- strh r4, [r0, 0x1E]
- ldr r0, _082E49EC
- bl STWI_set_Callback_M
- adds r0, r4, 0
- bl STWI_send_CP_StartREQ
- b _082E49F8
- .align 2, 0
-_082E49E4: .4byte 0x03007890
-_082E49E8: .4byte 0x03007894
-_082E49EC: .4byte rfu_STC_REQ_callback + 1
-_082E49F0:
- movs r0, 0x1F
- adds r1, r3, 0
- bl rfu_STC_REQ_callback
-_082E49F8:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end rfu_REQ_startConnectParent
-
- thumb_func_start rfu_REQ_pollConnectParent
-rfu_REQ_pollConnectParent: @ 82E4A00
- push {lr}
- ldr r0, _082E4A10
- bl STWI_set_Callback_M
- bl STWI_send_CP_PollingREQ
- pop {r0}
- bx r0
- .align 2, 0
-_082E4A10: .4byte rfu_CB_pollConnectParent + 1
- thumb_func_end rfu_REQ_pollConnectParent
-
- thumb_func_start rfu_CB_pollConnectParent
-rfu_CB_pollConnectParent: @ 82E4A14
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x2C
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x24]
- lsls r1, 16
- lsrs r1, 16
- str r1, [sp, 0x28]
- cmp r1, 0
- bne _082E4B16
- ldr r0, _082E4AD0
- ldr r0, [r0]
- adds r0, 0xDC
- ldr r0, [r0]
- ldrh r5, [r0, 0x4]
- ldrb r1, [r0, 0x6]
- mov r10, r1
- ldrb r0, [r0, 0x7]
- cmp r0, 0
- bne _082E4B16
- movs r0, 0x80
- lsls r0, 17
- lsls r0, r1
- lsrs r2, r0, 24
- ldr r4, _082E4AD4
- ldr r3, [r4]
- ldrb r1, [r3, 0x2]
- adds r0, r2, 0
- ands r0, r1
- cmp r0, 0
- bne _082E4B16
- adds r0, r2, 0
- orrs r0, r1
- strb r0, [r3, 0x2]
- ldr r1, [r4]
- ldrb r0, [r1, 0x3]
- bics r0, r2
- strb r0, [r1, 0x3]
- ldr r1, [r4]
- adds r0, r1, 0
- adds r0, 0x94
- movs r2, 0
- strh r5, [r0]
- ldrb r0, [r1, 0x1]
- adds r0, 0x1
- strb r0, [r1, 0x1]
- ldr r0, [r4]
- strb r2, [r0]
- ldr r3, _082E4AD8
- ldr r2, [r3]
- ldrb r1, [r2]
- movs r0, 0x80
- orrs r0, r1
- strb r0, [r2]
- movs r5, 0
- adds r7, r4, 0
- add r6, sp, 0x20
- movs r0, 0
- mov r8, r0
-_082E4A92:
- ldr r2, [r7]
- lsls r4, r5, 5
- adds r0, r2, r4
- ldr r1, [r3]
- ldrh r0, [r0, 0x14]
- ldrh r1, [r1, 0x1E]
- cmp r0, r1
- bne _082E4AEA
- ldrb r0, [r2, 0x8]
- cmp r0, 0
- beq _082E4AE0
- mov r9, sp
- adds r0, r4, 0
- adds r0, 0x14
- adds r0, r2, r0
- mov r1, sp
- movs r2, 0x10
- bl CpuSet
- mov r1, r8
- strh r1, [r6]
- ldr r1, [r7]
- adds r1, 0x14
- adds r0, r6, 0
- ldr r2, _082E4ADC
- bl CpuSet
- ldr r0, [r7]
- mov r1, r8
- strb r1, [r0, 0x8]
- b _082E4AF4
- .align 2, 0
-_082E4AD0: .4byte 0x03007898
-_082E4AD4: .4byte 0x03007890
-_082E4AD8: .4byte 0x03007894
-_082E4ADC: .4byte 0x01000040
-_082E4AE0:
- adds r0, r4, 0
- adds r0, 0x14
- adds r2, r0
- mov r9, r2
- b _082E4AF4
-_082E4AEA:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x3
- bls _082E4A92
-_082E4AF4:
- cmp r5, 0x3
- bhi _082E4B16
- ldr r4, _082E4B30
- mov r0, r10
- lsls r5, r0, 5
- adds r0, r5, 0
- adds r0, 0x14
- ldr r1, [r4]
- adds r1, r0
- mov r0, r9
- movs r2, 0x10
- bl CpuSet
- ldr r0, [r4]
- adds r0, r5
- mov r1, r10
- strb r1, [r0, 0x16]
-_082E4B16:
- ldr r0, [sp, 0x24]
- ldr r1, [sp, 0x28]
- bl rfu_STC_REQ_callback
- add sp, 0x2C
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_082E4B30: .4byte 0x03007890
- thumb_func_end rfu_CB_pollConnectParent
-
- thumb_func_start rfu_getConnectParentStatus
-rfu_getConnectParentStatus: @ 82E4B34
- push {lr}
- adds r3, r0, 0
- movs r0, 0xFF
- strb r0, [r3]
- ldr r0, _082E4B54
- ldr r0, [r0]
- adds r0, 0xDC
- ldr r2, [r0]
- ldrb r0, [r2]
- adds r0, 0x60
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bls _082E4B58
- movs r0, 0x10
- b _082E4B64
- .align 2, 0
-_082E4B54: .4byte 0x03007898
-_082E4B58:
- adds r2, 0x6
- ldrb r0, [r2]
- strb r0, [r1]
- ldrb r0, [r2, 0x1]
- strb r0, [r3]
- movs r0, 0
-_082E4B64:
- pop {r1}
- bx r1
- thumb_func_end rfu_getConnectParentStatus
-
- thumb_func_start rfu_REQ_endConnectParent
-rfu_REQ_endConnectParent: @ 82E4B68
- push {lr}
- ldr r0, _082E4B94
- bl STWI_set_Callback_M
- bl STWI_send_CP_EndREQ
- ldr r0, _082E4B98
- ldr r0, [r0]
- adds r0, 0xDC
- ldr r1, [r0]
- ldrb r0, [r1, 0x6]
- cmp r0, 0x3
- bhi _082E4B90
- ldr r0, _082E4B9C
- ldr r0, [r0]
- adds r0, 0xA
- ldrb r1, [r1, 0x6]
- adds r0, r1
- movs r1, 0
- strb r1, [r0]
-_082E4B90:
- pop {r0}
- bx r0
- .align 2, 0
-_082E4B94: .4byte rfu_CB_pollConnectParent + 1
-_082E4B98: .4byte 0x03007898
-_082E4B9C: .4byte 0x03007894
- thumb_func_end rfu_REQ_endConnectParent
-
- thumb_func_start rfu_syncVBlank
-rfu_syncVBlank: @ 82E4BA0
- push {r4,r5,lr}
- bl rfu_NI_checkCommFailCounter
- ldr r0, _082E4BE8
- ldr r0, [r0]
- ldrb r0, [r0]
- cmp r0, 0xFF
- beq _082E4C78
- ldr r4, _082E4BEC
- ldr r1, [r4]
- ldrb r0, [r1, 0x6]
- cmp r0, 0
- beq _082E4BBE
- subs r0, 0x1
- strb r0, [r1, 0x6]
-_082E4BBE:
- bl rfu_getMasterSlave
- lsls r0, 24
- lsrs r3, r0, 24
- ldr r2, [r4]
- ldrb r1, [r2]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- bne _082E4BF0
- cmp r3, 0
- bne _082E4BFE
- movs r0, 0x4
- orrs r0, r1
- strb r0, [r2]
- ldr r1, [r4]
- movs r0, 0xB4
- lsls r0, 1
- strh r0, [r1, 0x20]
- b _082E4BFA
- .align 2, 0
-_082E4BE8: .4byte 0x03007890
-_082E4BEC: .4byte 0x03007894
-_082E4BF0:
- cmp r3, 0
- beq _082E4C10
- movs r0, 0xFB
- ands r0, r1
- strb r0, [r2]
-_082E4BFA:
- cmp r3, 0
- beq _082E4C10
-_082E4BFE:
- ldr r3, _082E4C0C
- ldr r2, [r3]
- ldrb r1, [r2]
- movs r0, 0xFD
- ands r0, r1
- b _082E4C1A
- .align 2, 0
-_082E4C0C: .4byte 0x03007894
-_082E4C10:
- ldr r3, _082E4C6C
- ldr r2, [r3]
- ldrb r1, [r2]
- movs r0, 0x2
- orrs r0, r1
-_082E4C1A:
- strb r0, [r2]
- ldr r3, [r3]
- ldrb r1, [r3]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _082E4C78
- ldrh r0, [r3, 0x20]
- cmp r0, 0
- bne _082E4C74
- movs r0, 0xFB
- ands r0, r1
- strb r0, [r3]
- ldr r0, _082E4C70
- ldr r0, [r0]
- ldrb r1, [r0, 0x2]
- ldrb r0, [r0, 0x3]
- adds r5, r0, 0
- orrs r5, r1
- movs r4, 0
-_082E4C42:
- adds r0, r5, 0
- asrs r0, r4
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _082E4C54
- adds r0, r4, 0
- bl rfu_STC_removeLinkData
-_082E4C54:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x3
- bls _082E4C42
- ldr r0, _082E4C70
- ldr r1, [r0]
- movs r0, 0xFF
- strb r0, [r1]
- movs r0, 0x1
- b _082E4C7A
- .align 2, 0
-_082E4C6C: .4byte 0x03007894
-_082E4C70: .4byte 0x03007890
-_082E4C74:
- subs r0, 0x1
- strh r0, [r3, 0x20]
-_082E4C78:
- movs r0, 0
-_082E4C7A:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end rfu_syncVBlank
-
- thumb_func_start rfu_REQBN_watchLink
-rfu_REQBN_watchLink: @ 82E4C80
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x18
- mov r8, r1
- str r2, [sp]
- str r3, [sp, 0x4]
- lsls r0, 16
- lsrs r6, r0, 16
- movs r0, 0
- str r0, [sp, 0x8]
- movs r1, 0
- str r1, [sp, 0xC]
- mov r2, r8
- strb r1, [r2]
- mov r0, sp
- ldrb r1, [r0, 0xC]
- ldr r0, [sp]
- strb r1, [r0]
- mov r2, sp
- ldrb r0, [r2, 0xC]
- ldr r2, [sp, 0x4]
- strb r0, [r2]
- ldr r5, _082E4D20
- ldr r0, [r5]
- ldrb r0, [r0]
- cmp r0, 0xFF
- bne _082E4CBE
- b _082E504E
-_082E4CBE:
- ldr r0, _082E4D24
- ldr r0, [r0]
- ldrb r0, [r0, 0x14]
- cmp r0, 0
- bne _082E4CCA
- b _082E504E
-_082E4CCA:
- ldr r3, _082E4D28
- ldr r2, [r3]
- ldrb r1, [r2]
- movs r4, 0x4
- adds r0, r4, 0
- ands r0, r1
- cmp r0, 0
- beq _082E4CE0
- movs r0, 0xB4
- lsls r0, 1
- strh r0, [r2, 0x20]
-_082E4CE0:
- ldr r1, [r3]
- ldrb r0, [r1, 0x6]
- cmp r0, 0
- bne _082E4CEE
- strb r4, [r1, 0x6]
- movs r1, 0x1
- str r1, [sp, 0x8]
-_082E4CEE:
- lsls r0, r6, 24
- lsrs r0, 24
- cmp r0, 0x29
- bne _082E4D30
- ldr r0, _082E4D2C
- ldr r0, [r0]
- adds r0, 0xDC
- ldr r1, [r0]
- ldrb r0, [r1, 0x4]
- mov r2, r8
- strb r0, [r2]
- ldrb r0, [r1, 0x5]
- ldr r1, [sp]
- strb r0, [r1]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _082E4D18
- ldr r0, [r5]
- ldrb r0, [r0, 0x2]
- strb r0, [r2]
-_082E4D18:
- movs r2, 0x2
- str r2, [sp, 0x8]
- b _082E4D88
- .align 2, 0
-_082E4D20: .4byte 0x03007890
-_082E4D24: .4byte 0x03007868
-_082E4D28: .4byte 0x03007894
-_082E4D2C: .4byte 0x03007898
-_082E4D30:
- movs r0, 0x9B
- lsls r0, 1
- cmp r6, r0
- bne _082E4D80
- ldr r0, _082E4DDC
- ldr r0, [r0]
- adds r0, 0xDC
- ldr r0, [r0]
- ldrb r6, [r0, 0x5]
- ldr r0, [r5]
- ldrb r0, [r0, 0x2]
- eors r6, r0
- ands r6, r0
- mov r0, r8
- strb r6, [r0]
- movs r0, 0x1
- ldr r1, [sp]
- strb r0, [r1]
- movs r5, 0
-_082E4D56:
- mov r2, r8
- ldrb r0, [r2]
- asrs r0, r5
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _082E4D76
- ldr r0, _082E4DE0
- ldr r0, [r0]
- adds r0, 0xA
- adds r0, r5
- movs r1, 0
- strb r1, [r0]
- adds r0, r5, 0
- bl rfu_STC_removeLinkData
-_082E4D76:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x3
- bls _082E4D56
-_082E4D80:
- ldr r0, [sp, 0x8]
- cmp r0, 0
- bne _082E4D88
- b _082E504E
-_082E4D88:
- ldr r4, _082E4DDC
- ldr r0, [r4]
- adds r0, 0xDC
- ldr r0, [r0]
- ldr r1, [r0]
- str r1, [sp, 0x10]
- ldr r0, [r0, 0x4]
- str r0, [sp, 0x14]
- ldr r0, _082E4DE4
- bl STWI_set_Callback_M
- bl STWI_send_LinkStatusREQ
- bl STWI_poll_CommandEnd
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0xC]
- cmp r0, 0
- bne _082E4DE8
- ldr r0, [r4]
- adds r0, 0xDC
- ldr r0, [r0]
- adds r2, r0, 0x4
- movs r5, 0
- ldr r3, _082E4DE0
-_082E4DBC:
- ldr r0, [r3]
- adds r0, 0xA
- adds r0, r5
- ldrb r1, [r2]
- strb r1, [r0]
- adds r2, 0x1
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x3
- bls _082E4DBC
- movs r2, 0
- mov r9, r2
- movs r5, 0
- b _082E4DF4
- .align 2, 0
-_082E4DDC: .4byte 0x03007898
-_082E4DE0: .4byte 0x03007890
-_082E4DE4: .4byte rfu_CB_defaultCallback + 1
-_082E4DE8:
- movs r0, 0x11
- ldr r1, [sp, 0xC]
- bl rfu_STC_REQ_callback
- ldr r0, [sp, 0xC]
- b _082E5050
-_082E4DF4:
- ldr r1, _082E4E7C
- ldr r0, [r1]
- adds r0, 0xE
- adds r2, r0, r5
- ldrb r0, [r2]
- adds r3, r1, 0
- cmp r0, 0
- beq _082E4E1A
- subs r0, 0x4
- strb r0, [r2]
- ldr r0, _082E4E80
- ldr r0, [r0]
- adds r0, 0xA
- adds r1, r0, r5
- ldrb r0, [r1]
- cmp r0, 0xF
- bhi _082E4E1A
- movs r0, 0x10
- strb r0, [r1]
-_082E4E1A:
- movs r0, 0x80
- lsls r0, 17
- lsls r0, r5
- lsrs r6, r0, 24
- adds r0, r5, 0x1
- mov r10, r0
- ldr r1, [sp, 0xC]
- cmp r1, 0
- beq _082E4E2E
- b _082E5002
-_082E4E2E:
- ldr r2, [sp, 0x8]
- cmp r2, 0x1
- bne _082E4F10
- ldr r4, _082E4E80
- ldr r1, [r4]
- ldrb r0, [r1, 0x2]
- ands r0, r6
- cmp r0, 0
- beq _082E4F10
- adds r0, r1, 0
- adds r0, 0xA
- adds r0, r5
- ldrb r0, [r0]
- cmp r0, 0
- bne _082E4F04
- ldrb r0, [r1]
- cmp r0, 0x1
- bne _082E4E84
- ldr r1, [r3]
- adds r1, 0xA
- adds r1, r5
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- ldr r0, [r3]
- adds r0, 0xA
- adds r0, r5
- ldrb r0, [r0]
- cmp r0, 0x3
- bls _082E4F10
- mov r0, r8
- ldrb r1, [r0]
- adds r0, r6, 0
- orrs r0, r1
- mov r1, r8
- strb r0, [r1]
- ldr r0, [sp]
- strb r2, [r0]
- b _082E4F10
- .align 2, 0
-_082E4E7C: .4byte 0x03007894
-_082E4E80: .4byte 0x03007890
-_082E4E84:
- bl STWI_send_SystemStatusREQ
- bl STWI_poll_CommandEnd
- lsls r0, 16
- cmp r0, 0
- bne _082E4F10
- ldr r0, _082E4EB4
- ldr r0, [r0]
- adds r0, 0xDC
- ldr r0, [r0]
- ldrb r0, [r0, 0x7]
- cmp r0, 0
- bne _082E4EB8
- mov r2, r8
- ldrb r1, [r2]
- adds r0, r6, 0
- orrs r0, r1
- strb r0, [r2]
- mov r0, sp
- ldrb r1, [r0, 0x8]
- ldr r0, [sp]
- b _082E4F0E
- .align 2, 0
-_082E4EB4: .4byte 0x03007898
-_082E4EB8:
- ldr r2, _082E4F00
- ldr r1, [r2]
- adds r1, 0xA
- adds r1, r5
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- lsls r0, 24
- ldr r2, [r2]
- lsrs r0, 24
- ldrh r1, [r2, 0x1A]
- cmp r0, r1
- bls _082E4F10
- adds r0, r2, 0
- adds r0, 0xA
- adds r0, r5
- mov r2, sp
- ldrb r2, [r2, 0xC]
- strb r2, [r0]
- ldr r0, [r4]
- ldrb r0, [r0, 0x2]
- bl STWI_send_DisconnectREQ
- bl STWI_poll_CommandEnd
- mov r0, r8
- ldrb r1, [r0]
- adds r0, r6, 0
- orrs r0, r1
- mov r1, r8
- strb r0, [r1]
- mov r2, sp
- ldrb r0, [r2, 0x8]
- ldr r2, [sp]
- strb r0, [r2]
- b _082E4F10
- .align 2, 0
-_082E4F00: .4byte 0x03007894
-_082E4F04:
- ldr r0, [r3]
- adds r0, 0xA
- adds r0, r5
- mov r1, sp
- ldrb r1, [r1, 0xC]
-_082E4F0E:
- strb r1, [r0]
-_082E4F10:
- ldr r2, _082E4F70
- mov r12, r2
- ldr r1, [r2]
- ldrb r7, [r1]
- adds r0, r5, 0x1
- mov r10, r0
- cmp r7, 0x1
- bne _082E5002
- adds r0, r1, 0
- adds r0, 0xA
- adds r4, r0, r5
- ldrb r3, [r4]
- cmp r3, 0
- beq _082E5002
- ldrb r2, [r1, 0x3]
- adds r0, r6, 0
- ands r0, r2
- cmp r0, 0
- beq _082E4F7E
- cmp r3, 0xA
- bls _082E4F78
- ldr r2, [sp, 0x4]
- ldrb r1, [r2]
- adds r0, r6, 0
- orrs r0, r1
- strb r0, [r2]
- mov r0, r12
- ldr r2, [r0]
- ldrb r1, [r2, 0x2]
- adds r0, r6, 0
- orrs r0, r1
- movs r3, 0
- strb r0, [r2, 0x2]
- mov r2, r12
- ldr r1, [r2]
- ldrb r0, [r1, 0x3]
- bics r0, r6
- strb r0, [r1, 0x3]
- ldr r1, [r2]
- ldrb r0, [r1, 0x1]
- adds r0, 0x1
- strb r0, [r1, 0x1]
- ldr r0, _082E4F74
- ldr r0, [r0]
- adds r0, 0xA
- adds r0, r5
- strb r3, [r0]
- b _082E5002
- .align 2, 0
-_082E4F70: .4byte 0x03007890
-_082E4F74: .4byte 0x03007894
-_082E4F78:
- movs r0, 0
- strb r0, [r4]
- b _082E5002
-_082E4F7E:
- ldrb r0, [r1, 0x2]
- orrs r0, r2
- ands r0, r6
- cmp r0, 0
- bne _082E5002
- bl STWI_send_SlotStatusREQ
- bl STWI_poll_CommandEnd
- ldr r0, _082E4FC8
- ldr r0, [r0]
- adds r0, 0xDC
- ldr r2, [r0]
- ldrb r0, [r2, 0x1]
- subs r0, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- adds r2, 0x8
- cmp r3, 0
- beq _082E5002
- ldrh r4, [r2]
- ldrb r0, [r2, 0x2]
- cmp r0, r5
- bne _082E4FD0
- ldr r0, _082E4FCC
- ldr r0, [r0]
- lsls r1, r5, 1
- adds r0, 0x12
- adds r0, r1
- ldrh r0, [r0]
- cmp r4, r0
- bne _082E4FD0
- lsls r7, r5
- mov r0, r9
- orrs r0, r7
- lsls r0, 24
- b _082E4FFE
- .align 2, 0
-_082E4FC8: .4byte 0x03007898
-_082E4FCC: .4byte 0x03007894
-_082E4FD0:
- adds r2, 0x4
- subs r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0
- beq _082E5002
- ldrh r4, [r2]
- ldrb r0, [r2, 0x2]
- cmp r0, r5
- bne _082E4FD0
- ldr r0, _082E5060
- ldr r0, [r0]
- lsls r1, r5, 1
- adds r0, 0x12
- adds r0, r1
- ldrh r0, [r0]
- cmp r4, r0
- bne _082E4FD0
- movs r0, 0x1
- lsls r0, r5
- mov r1, r9
- orrs r1, r0
- lsls r0, r1, 24
-_082E4FFE:
- lsrs r0, 24
- mov r9, r0
-_082E5002:
- ldr r0, _082E5064
- ldr r0, [r0]
- ldrb r1, [r0, 0x2]
- mov r2, r8
- ldrb r0, [r2]
- ands r0, r1
- ands r6, r0
- cmp r6, 0
- beq _082E501C
- adds r0, r5, 0
- movs r1, 0
- bl rfu_STC_removeLinkData
-_082E501C:
- mov r1, r10
- lsls r0, r1, 24
- lsrs r5, r0, 24
- cmp r5, 0x3
- bhi _082E5028
- b _082E4DF4
-_082E5028:
- mov r2, r9
- cmp r2, 0
- beq _082E5038
- mov r0, r9
- bl STWI_send_DisconnectREQ
- bl STWI_poll_CommandEnd
-_082E5038:
- ldr r1, _082E5068
- ldr r0, [r1]
- adds r0, 0xDC
- ldr r0, [r0]
- ldr r2, [sp, 0x10]
- str r2, [r0]
- ldr r0, [r1]
- adds r0, 0xDC
- ldr r0, [r0]
- ldr r1, [sp, 0x14]
- str r1, [r0, 0x4]
-_082E504E:
- movs r0, 0
-_082E5050:
- add sp, 0x18
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_082E5060: .4byte 0x03007894
-_082E5064: .4byte 0x03007890
-_082E5068: .4byte 0x03007898
- thumb_func_end rfu_REQBN_watchLink
-
- thumb_func_start rfu_STC_removeLinkData
-rfu_STC_removeLinkData: @ 82E506C
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- lsls r0, 24
- lsrs r7, r0, 24
- lsls r1, 24
- lsrs r1, 24
- mov r12, r1
- movs r0, 0x80
- lsls r0, 17
- lsls r0, r7
- lsrs r6, r0, 24
- ldr r0, _082E511C
- ldr r0, [r0]
- adds r0, 0xE
- adds r0, r7
- movs r1, 0
- strb r1, [r0]
- ldr r1, _082E5120
- ldr r4, [r1]
- ldrb r0, [r4, 0x2]
- ands r0, r6
- mov r8, r1
- cmp r0, 0
- beq _082E50AA
- ldrb r0, [r4, 0x1]
- cmp r0, 0
- beq _082E50AA
- subs r0, 0x1
- strb r0, [r4, 0x1]
-_082E50AA:
- mov r3, r8
- ldr r2, [r3]
- mvns r5, r6
- ldrb r1, [r2, 0x2]
- adds r0, r5, 0
- ands r0, r1
- strb r0, [r2, 0x2]
- ldr r2, [r3]
- ldrb r1, [r2, 0x3]
- adds r0, r6, 0
- orrs r0, r1
- strb r0, [r2, 0x3]
- ldr r3, [r3]
- ldr r0, [r3]
- ldr r1, _082E5124
- ands r0, r1
- cmp r0, 0
- bne _082E50D2
- movs r0, 0xFF
- strb r0, [r3]
-_082E50D2:
- mov r0, r12
- cmp r0, 0
- beq _082E5110
- mov r1, sp
- movs r4, 0
- movs r0, 0
- strh r0, [r1]
- lsls r0, r7, 5
- adds r0, 0x14
- mov r2, r8
- ldr r1, [r2]
- adds r1, r0
- ldr r2, _082E5128
- mov r0, sp
- bl CpuSet
- mov r0, r8
- ldr r2, [r0]
- ldrb r1, [r2, 0x3]
- adds r0, r5, 0
- ands r0, r1
- strb r0, [r2, 0x3]
- mov r2, r8
- ldr r1, [r2]
- ldrb r0, [r1, 0x7]
- ands r5, r0
- strb r5, [r1, 0x7]
- ldr r0, [r2]
- adds r0, 0xA
- adds r0, r7
- strb r4, [r0]
-_082E5110:
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_082E511C: .4byte 0x03007894
-_082E5120: .4byte 0x03007890
-_082E5124: .4byte 0x00ff00ff
-_082E5128: .4byte 0x01000010
- thumb_func_end rfu_STC_removeLinkData
-
- thumb_func_start rfu_REQ_disconnect
-rfu_REQ_disconnect: @ 82E512C
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r2, _082E5170
- ldr r1, [r2]
- ldrb r0, [r1, 0x2]
- ldrb r1, [r1, 0x3]
- orrs r0, r1
- ands r0, r4
- cmp r0, 0
- beq _082E51B0
- ldr r0, _082E5174
- ldr r1, [r0]
- strb r4, [r1, 0x5]
- ldr r2, [r2]
- ldrb r1, [r2]
- adds r3, r0, 0
- cmp r1, 0xFF
- bne _082E5178
- ldr r0, [r3]
- ldrb r1, [r0]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _082E5178
- ldrb r0, [r2, 0x3]
- ands r0, r4
- cmp r0, 0
- beq _082E51B0
- movs r0, 0x30
- movs r1, 0
- bl rfu_CB_disconnect
- b _082E51B0
- .align 2, 0
-_082E5170: .4byte 0x03007890
-_082E5174: .4byte 0x03007894
-_082E5178:
- ldr r0, [r3]
- ldrb r0, [r0, 0x9]
- cmp r0, 0
- beq _082E51A4
- ldr r0, _082E51A0
- bl STWI_set_Callback_M
- bl STWI_send_SC_EndREQ
- bl STWI_poll_CommandEnd
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0
- beq _082E51A4
- movs r0, 0x1B
- bl rfu_STC_REQ_callback
- b _082E51B0
- .align 2, 0
-_082E51A0: .4byte rfu_CB_defaultCallback + 1
-_082E51A4:
- ldr r0, _082E51B8
- bl STWI_set_Callback_M
- adds r0, r4, 0
- bl STWI_send_DisconnectREQ
-_082E51B0:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_082E51B8: .4byte rfu_CB_disconnect + 1
- thumb_func_end rfu_REQ_disconnect
-
- thumb_func_start rfu_CB_disconnect
-rfu_CB_disconnect: @ 82E51BC
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r1, 16
- lsrs r5, r1, 16
- cmp r5, 0x3
- bne _082E51F8
- ldr r0, _082E528C
- ldr r0, [r0]
- ldrb r0, [r0]
- cmp r0, 0
- bne _082E51F8
- ldr r0, _082E5290
- bl STWI_set_Callback_M
- bl STWI_send_SystemStatusREQ
- bl STWI_poll_CommandEnd
- lsls r0, 16
- cmp r0, 0
- bne _082E51F8
- ldr r0, _082E5294
- ldr r0, [r0]
- adds r0, 0xDC
- ldr r0, [r0]
- ldrb r0, [r0, 0x7]
- cmp r0, 0
- bne _082E51F8
- movs r5, 0
-_082E51F8:
- ldr r3, _082E5298
- ldr r2, [r3]
- ldr r0, _082E528C
- ldr r1, [r0]
- ldrb r0, [r1, 0x2]
- ldrb r1, [r1, 0x3]
- orrs r0, r1
- ldrb r1, [r2, 0x5]
- ands r0, r1
- strb r0, [r2, 0x5]
- ldr r0, _082E5294
- ldr r0, [r0]
- adds r0, 0xDC
- ldr r1, [r0]
- ldr r0, [r3]
- ldrb r0, [r0, 0x5]
- strb r0, [r1, 0x8]
- cmp r5, 0
- bne _082E5246
- movs r4, 0
-_082E5220:
- movs r0, 0x80
- lsls r0, 17
- lsls r0, r4
- lsrs r0, 24
- ldr r1, _082E5298
- ldr r1, [r1]
- ldrb r1, [r1, 0x5]
- ands r0, r1
- cmp r0, 0
- beq _082E523C
- adds r0, r4, 0
- movs r1, 0x1
- bl rfu_STC_removeLinkData
-_082E523C:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x3
- bls _082E5220
-_082E5246:
- ldr r0, _082E528C
- ldr r2, [r0]
- ldrb r1, [r2, 0x2]
- ldrb r0, [r2, 0x3]
- orrs r0, r1
- cmp r0, 0
- bne _082E5258
- movs r0, 0xFF
- strb r0, [r2]
-_082E5258:
- adds r0, r6, 0
- adds r1, r5, 0
- bl rfu_STC_REQ_callback
- ldr r0, _082E5298
- ldr r0, [r0]
- ldrb r0, [r0, 0x9]
- cmp r0, 0
- beq _082E5286
- ldr r0, _082E5290
- bl STWI_set_Callback_M
- bl STWI_send_SC_StartREQ
- bl STWI_poll_CommandEnd
- adds r5, r0, 0
- cmp r5, 0
- beq _082E5286
- movs r0, 0x19
- adds r1, r5, 0
- bl rfu_STC_REQ_callback
-_082E5286:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_082E528C: .4byte 0x03007890
-_082E5290: .4byte rfu_CB_defaultCallback + 1
-_082E5294: .4byte 0x03007898
-_082E5298: .4byte 0x03007894
- thumb_func_end rfu_CB_disconnect
-
- thumb_func_start rfu_REQ_CHILD_startConnectRecovery
-rfu_REQ_CHILD_startConnectRecovery: @ 82E529C
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, _082E52EC
- ldr r0, [r0]
- strb r5, [r0, 0x5]
- movs r4, 0
- movs r0, 0x1
- ands r0, r5
- ldr r2, _082E52F0
- cmp r0, 0
- bne _082E52CA
- movs r1, 0x1
-_082E52B6:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x3
- bhi _082E52CA
- adds r0, r5, 0
- asrs r0, r4
- ands r0, r1
- cmp r0, 0
- beq _082E52B6
-_082E52CA:
- adds r0, r2, 0
- bl STWI_set_Callback_M
- ldr r0, _082E52F4
- ldr r1, [r0]
- lsls r0, r4, 5
- adds r0, r1, r0
- ldrh r0, [r0, 0x14]
- adds r1, 0x94
- ldrh r1, [r1]
- adds r2, r5, 0
- bl STWI_send_CPR_StartREQ
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_082E52EC: .4byte 0x03007894
-_082E52F0: .4byte rfu_STC_REQ_callback + 1
-_082E52F4: .4byte 0x03007890
- thumb_func_end rfu_REQ_CHILD_startConnectRecovery
-
- thumb_func_start rfu_REQ_CHILD_pollConnectRecovery
-rfu_REQ_CHILD_pollConnectRecovery: @ 82E52F8
- push {lr}
- ldr r0, _082E5308
- bl STWI_set_Callback_M
- bl STWI_send_CPR_PollingREQ
- pop {r0}
- bx r0
- .align 2, 0
-_082E5308: .4byte rfu_CB_CHILD_pollConnectRecovery + 1
- thumb_func_end rfu_REQ_CHILD_pollConnectRecovery
-
- thumb_func_start rfu_CB_CHILD_pollConnectRecovery
-rfu_CB_CHILD_pollConnectRecovery: @ 82E530C
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- lsls r1, 16
- lsrs r7, r1, 16
- cmp r7, 0
- bne _082E5390
- ldr r0, _082E53A4
- ldr r0, [r0]
- adds r0, 0xDC
- ldr r0, [r0]
- ldrb r0, [r0, 0x4]
- cmp r0, 0
- bne _082E5390
- ldr r0, _082E53A8
- ldr r1, [r0]
- ldrb r1, [r1, 0x5]
- adds r6, r0, 0
- cmp r1, 0
- beq _082E5390
- ldr r1, _082E53AC
- ldr r0, [r1]
- strb r7, [r0]
- movs r4, 0
- adds r5, r1, 0
- mov r12, r4
-_082E5346:
- movs r0, 0x80
- lsls r0, 17
- lsls r0, r4
- lsrs r3, r0, 24
- ldr r2, [r5]
- ldr r0, [r6]
- ldrb r0, [r0, 0x5]
- ands r0, r3
- ldrb r1, [r2, 0x3]
- ands r0, r1
- cmp r0, 0
- beq _082E5380
- ldrb r1, [r2, 0x2]
- adds r0, r3, 0
- orrs r0, r1
- strb r0, [r2, 0x2]
- ldr r1, [r5]
- ldrb r0, [r1, 0x3]
- bics r0, r3
- strb r0, [r1, 0x3]
- ldr r1, [r5]
- ldrb r0, [r1, 0x1]
- adds r0, 0x1
- strb r0, [r1, 0x1]
- ldr r0, [r6]
- adds r0, 0xA
- adds r0, r4
- mov r1, r12
- strb r1, [r0]
-_082E5380:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x3
- bls _082E5346
- ldr r1, [r6]
- movs r0, 0
- strb r0, [r1, 0x5]
-_082E5390:
- mov r0, r8
- adds r1, r7, 0
- bl rfu_STC_REQ_callback
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_082E53A4: .4byte 0x03007898
-_082E53A8: .4byte 0x03007894
-_082E53AC: .4byte 0x03007890
- thumb_func_end rfu_CB_CHILD_pollConnectRecovery
-
- thumb_func_start rfu_CHILD_getConnectRecoveryStatus
-rfu_CHILD_getConnectRecoveryStatus: @ 82E53B0
- push {lr}
- adds r2, r0, 0
- movs r0, 0xFF
- strb r0, [r2]
- ldr r0, _082E53D0
- ldr r0, [r0]
- adds r0, 0xDC
- ldr r1, [r0]
- ldrb r0, [r1]
- adds r0, 0x4D
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bls _082E53D4
- movs r0, 0x10
- b _082E53DA
- .align 2, 0
-_082E53D0: .4byte 0x03007898
-_082E53D4:
- ldrb r0, [r1, 0x4]
- strb r0, [r2]
- movs r0, 0
-_082E53DA:
- pop {r1}
- bx r1
- thumb_func_end rfu_CHILD_getConnectRecoveryStatus
-
- thumb_func_start rfu_REQ_CHILD_endConnectRecovery
-rfu_REQ_CHILD_endConnectRecovery: @ 82E53E0
- push {lr}
- ldr r0, _082E53F0
- bl STWI_set_Callback_M
- bl STWI_send_CPR_EndREQ
- pop {r0}
- bx r0
- .align 2, 0
-_082E53F0: .4byte rfu_CB_CHILD_pollConnectRecovery + 1
- thumb_func_end rfu_REQ_CHILD_endConnectRecovery
-
- thumb_func_start sub_82E53F4
-sub_82E53F4: @ 82E53F4
- push {r4-r6,lr}
- adds r5, r0, 0
- adds r6, r1, 0
- ldr r3, [r5]
- ldr r1, [r6]
- subs r2, 0x1
- movs r0, 0x1
- negs r0, r0
- cmp r2, r0
- beq _082E5418
- adds r4, r0, 0
- thumb_func_end sub_82E53F4
-
- non_word_aligned_thumb_func_start sub_82E540A
-sub_82E540A: @ 82E540A
- ldrb r0, [r3]
- strb r0, [r1]
- adds r3, 0x1
- adds r1, 0x1
- subs r2, 0x1
- cmp r2, r4
- bne sub_82E540A
-_082E5418:
- str r3, [r5]
- str r1, [r6]
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_82E540A
-
- thumb_func_start rfu_REQ_changeMasterSlave
-rfu_REQ_changeMasterSlave: @ 82E5424
- push {lr}
- movs r0, 0x1
- bl STWI_read_status
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x1
- bne _082E5444
- ldr r0, _082E5440
- bl STWI_set_Callback_M
- bl STWI_send_MS_ChangeREQ
- b _082E544C
- .align 2, 0
-_082E5440: .4byte rfu_STC_REQ_callback + 1
-_082E5444:
- movs r0, 0x27
- movs r1, 0
- bl rfu_STC_REQ_callback
-_082E544C:
- pop {r0}
- bx r0
- thumb_func_end rfu_REQ_changeMasterSlave
-
- thumb_func_start rfu_getMasterSlave
-rfu_getMasterSlave: @ 82E5450
- push {lr}
- movs r0, 0x1
- bl STWI_read_status
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x1
- bne _082E547E
- ldr r0, _082E5484
- ldr r1, [r0]
- adds r0, r1, 0
- adds r0, 0x2C
- ldrb r0, [r0]
- cmp r0, 0
- beq _082E547E
- ldrb r0, [r1, 0x6]
- cmp r0, 0x27
- beq _082E547C
- cmp r0, 0x25
- beq _082E547C
- cmp r0, 0x37
- bne _082E547E
-_082E547C:
- movs r2, 0
-_082E547E:
- adds r0, r2, 0
- pop {r1}
- bx r1
- .align 2, 0
-_082E5484: .4byte 0x03007868
- thumb_func_end rfu_getMasterSlave
-
- thumb_func_start rfu_clearAllSlot
-rfu_clearAllSlot: @ 82E5488
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- ldr r1, _082E550C
- ldrh r0, [r1]
- mov r8, r0
- movs r0, 0
- strh r0, [r1]
- movs r5, 0
- mov r0, sp
- adds r0, 0x2
- movs r7, 0
- adds r6, r0, 0
-_082E54A4:
- mov r0, sp
- strh r7, [r0]
- ldr r0, _082E5510
- lsls r4, r5, 2
- adds r0, r4, r0
- ldr r1, [r0]
- mov r0, sp
- ldr r2, _082E5514
- bl CpuSet
- strh r7, [r6]
- ldr r0, _082E5518
- adds r4, r0
- ldr r1, [r4]
- adds r0, r6, 0
- ldr r2, _082E551C
- bl CpuSet
- ldr r3, _082E5520
- ldr r0, [r3]
- adds r0, 0x10
- adds r0, r5
- movs r1, 0x10
- strb r1, [r0]
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0x3
- bls _082E54A4
- ldr r2, [r3]
- movs r1, 0
- movs r0, 0x57
- strb r0, [r2, 0xF]
- ldr r0, [r3]
- strb r1, [r0, 0x4]
- ldr r0, [r3]
- strb r1, [r0, 0x5]
- ldr r0, [r3]
- strb r1, [r0, 0x6]
- ldr r0, _082E5524
- ldr r0, [r0]
- strb r1, [r0, 0x2]
- ldr r0, _082E550C
- mov r1, r8
- strh r1, [r0]
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_082E550C: .4byte 0x04000208
-_082E5510: .4byte 0x03007880
-_082E5514: .4byte 0x01000034
-_082E5518: .4byte 0x03007870
-_082E551C: .4byte 0x0100000a
-_082E5520: .4byte 0x03007890
-_082E5524: .4byte 0x03007894
- thumb_func_end rfu_clearAllSlot
-
- thumb_func_start rfu_STC_releaseFrame
-rfu_STC_releaseFrame: @ 82E5528
- push {r4-r6,lr}
- adds r4, r2, 0
- lsls r0, 24
- lsrs r2, r0, 24
- adds r5, r2, 0
- lsls r1, 24
- lsrs r3, r1, 24
- ldr r0, _082E5560
- ldr r0, [r0]
- ldrb r1, [r0]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _082E5568
- ldr r6, _082E5564
- cmp r3, 0
- bne _082E5554
- ldr r1, [r6]
- ldrb r0, [r1, 0xF]
- ldrh r4, [r4, 0x2E]
- adds r0, r4
- strb r0, [r1, 0xF]
-_082E5554:
- ldr r1, [r6]
- ldrb r0, [r1, 0xF]
- adds r0, 0x3
- strb r0, [r1, 0xF]
- b _082E5588
- .align 2, 0
-_082E5560: .4byte 0x03007894
-_082E5564: .4byte 0x03007890
-_082E5568:
- ldr r6, _082E5590
- cmp r3, 0
- bne _082E557C
- ldr r1, [r6]
- adds r1, 0x10
- adds r1, r2
- ldrb r0, [r1]
- ldrh r4, [r4, 0x2E]
- adds r0, r4
- strb r0, [r1]
-_082E557C:
- ldr r1, [r6]
- adds r1, 0x10
- adds r1, r5
- ldrb r0, [r1]
- adds r0, 0x2
- strb r0, [r1]
-_082E5588:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_082E5590: .4byte 0x03007890
- thumb_func_end rfu_STC_releaseFrame
-
- thumb_func_start rfu_clearSlot
-rfu_clearSlot: @ 82E5594
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- lsls r1, 24
- lsrs r7, r1, 24
- cmp r7, 0x3
- bls _082E55B4
- movs r0, 0x80
- lsls r0, 3
- b _082E572C
-_082E55B4:
- movs r0, 0xF
- mov r1, r8
- ands r0, r1
- cmp r0, 0
- bne _082E55C4
- movs r0, 0xC0
- lsls r0, 3
- b _082E572C
-_082E55C4:
- ldr r1, _082E5608
- ldrh r0, [r1]
- mov r10, r0
- movs r0, 0
- strh r0, [r1]
- movs r0, 0xC
- mov r2, r8
- ands r0, r2
- cmp r0, 0
- beq _082E568C
- movs r3, 0
- ldr r1, _082E560C
- lsls r0, r7, 2
- adds r0, r1
- mov r9, r0
-_082E55E2:
- movs r4, 0
- cmp r3, 0
- bne _082E5614
- movs r0, 0x4
- mov r1, r8
- ands r0, r1
- cmp r0, 0
- beq _082E5634
- mov r2, r9
- ldr r4, [r2]
- ldr r0, _082E5610
- ldr r2, [r0]
- adds r0, r4, 0
- adds r0, 0x2C
- ldrb r1, [r0]
- ldrb r0, [r2, 0x4]
- bics r0, r1
- strb r0, [r2, 0x4]
- b _082E5634
- .align 2, 0
-_082E5608: .4byte 0x04000208
-_082E560C: .4byte 0x03007880
-_082E5610: .4byte 0x03007890
-_082E5614:
- movs r0, 0x8
- mov r1, r8
- ands r0, r1
- cmp r0, 0
- beq _082E5634
- mov r2, r9
- ldr r0, [r2]
- adds r4, r0, 0
- adds r4, 0x34
- ldr r0, _082E56C8
- ldr r2, [r0]
- movs r1, 0x1
- lsls r1, r7
- ldrb r0, [r2, 0x5]
- bics r0, r1
- strb r0, [r2, 0x5]
-_082E5634:
- adds r6, r3, 0x1
- cmp r4, 0
- beq _082E5684
- ldrh r0, [r4]
- movs r2, 0x80
- lsls r2, 8
- adds r1, r2, 0
- ands r0, r1
- cmp r0, 0
- beq _082E5674
- lsls r1, r3, 24
- lsrs r1, 24
- adds r0, r7, 0
- adds r2, r4, 0
- bl rfu_STC_releaseFrame
- movs r1, 0
- adds r2, r4, 0
- adds r2, 0x2C
- movs r5, 0x1
- movs r3, 0
-_082E565E:
- ldrb r0, [r2]
- asrs r0, r1
- ands r0, r5
- cmp r0, 0
- beq _082E566A
- strh r3, [r4, 0x2]
-_082E566A:
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0x3
- bls _082E565E
-_082E5674:
- mov r1, sp
- movs r0, 0
- strh r0, [r1]
- mov r0, sp
- adds r1, r4, 0
- ldr r2, _082E56CC
- bl CpuSet
-_082E5684:
- lsls r0, r6, 16
- lsrs r3, r0, 16
- cmp r3, 0x1
- bls _082E55E2
-_082E568C:
- movs r0, 0x1
- mov r4, r8
- ands r0, r4
- cmp r0, 0
- beq _082E5702
- ldr r1, _082E56D0
- lsls r0, r7, 2
- adds r0, r1
- ldr r3, [r0]
- ldrh r1, [r3]
- movs r0, 0x80
- lsls r0, 8
- ands r0, r1
- cmp r0, 0
- beq _082E56F4
- ldr r0, _082E56D4
- ldr r0, [r0]
- ldrb r1, [r0]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _082E56D8
- ldr r2, _082E56C8
- ldr r1, [r2]
- ldrb r0, [r1, 0xF]
- adds r0, 0x3
- ldrb r4, [r3, 0x4]
- adds r0, r4
- strb r0, [r1, 0xF]
- b _082E56EA
- .align 2, 0
-_082E56C8: .4byte 0x03007890
-_082E56CC: .4byte 0x0100001a
-_082E56D0: .4byte 0x03007870
-_082E56D4: .4byte 0x03007894
-_082E56D8:
- ldr r2, _082E573C
- ldr r1, [r2]
- adds r1, 0x10
- adds r1, r7
- ldrb r0, [r1]
- adds r0, 0x2
- ldrb r4, [r3, 0x4]
- adds r0, r4
- strb r0, [r1]
-_082E56EA:
- ldr r2, [r2]
- ldrb r1, [r3, 0x3]
- ldrb r0, [r2, 0x6]
- bics r0, r1
- strb r0, [r2, 0x6]
-_082E56F4:
- mov r0, sp
- movs r1, 0
- strh r1, [r0]
- ldr r2, _082E5740
- adds r1, r3, 0
- bl CpuSet
-_082E5702:
- movs r0, 0x2
- mov r1, r8
- ands r0, r1
- cmp r0, 0
- beq _082E5724
- mov r1, sp
- movs r0, 0
- strh r0, [r1]
- ldr r1, _082E5744
- lsls r0, r7, 2
- adds r0, r1
- ldr r1, [r0]
- adds r1, 0xC
- ldr r2, _082E5748
- mov r0, sp
- bl CpuSet
-_082E5724:
- ldr r0, _082E574C
- mov r2, r10
- strh r2, [r0]
- movs r0, 0
-_082E572C:
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_082E573C: .4byte 0x03007890
-_082E5740: .4byte 0x01000006
-_082E5744: .4byte 0x03007870
-_082E5748: .4byte 0x01000004
-_082E574C: .4byte 0x04000208
- thumb_func_end rfu_clearSlot
-
- thumb_func_start rfu_setRecvBuffer
-rfu_setRecvBuffer: @ 82E5750
- push {r4-r6,lr}
- adds r5, r2, 0
- adds r6, r3, 0
- lsls r0, 24
- lsrs r3, r0, 24
- adds r2, r3, 0
- lsls r1, 24
- lsrs r1, 24
- adds r4, r1, 0
- cmp r1, 0x3
- bls _082E576C
- movs r0, 0x80
- lsls r0, 3
- b _082E57A4
-_082E576C:
- movs r0, 0x20
- ands r0, r3
- cmp r0, 0
- beq _082E5788
- ldr r0, _082E5784
- lsls r1, 2
- adds r1, r0
- ldr r0, [r1]
- str r5, [r0, 0x68]
- str r6, [r0, 0x6C]
- b _082E57A2
- .align 2, 0
-_082E5784: .4byte 0x03007880
-_082E5788:
- movs r0, 0x10
- ands r2, r0
- cmp r2, 0
- bne _082E5796
- movs r0, 0xC0
- lsls r0, 3
- b _082E57A4
-_082E5796:
- ldr r0, _082E57AC
- lsls r1, r4, 2
- adds r1, r0
- ldr r0, [r1]
- str r5, [r0, 0x14]
- str r6, [r0, 0x18]
-_082E57A2:
- movs r0, 0
-_082E57A4:
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_082E57AC: .4byte 0x03007870
- thumb_func_end rfu_setRecvBuffer
-
- thumb_func_start rfu_NI_setSendData
-rfu_NI_setSendData: @ 82E57B0
- push {r4-r6,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- adds r6, r2, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r5, 24
- lsrs r5, 24
- str r3, [sp]
- movs r0, 0x20
- adds r1, r4, 0
- adds r2, r5, 0
- adds r3, r6, 0
- bl rfu_STC_setSendData_org
- lsls r0, 16
- lsrs r0, 16
- add sp, 0x4
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end rfu_NI_setSendData
-
- thumb_func_start rfu_UNI_setSendData
-rfu_UNI_setSendData: @ 82E57DC
- push {lr}
- sub sp, 0x4
- adds r3, r1, 0
- lsls r0, 24
- lsrs r1, r0, 24
- lsls r2, 24
- lsrs r2, 24
- ldr r0, _082E57F8
- ldr r0, [r0]
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _082E57FC
- adds r0, r2, 0x3
- b _082E57FE
- .align 2, 0
-_082E57F8: .4byte 0x03007890
-_082E57FC:
- adds r0, r2, 0x2
-_082E57FE:
- lsls r0, 24
- lsrs r2, r0, 24
- movs r0, 0
- str r0, [sp]
- movs r0, 0x10
- bl rfu_STC_setSendData_org
- lsls r0, 16
- lsrs r0, 16
- add sp, 0x4
- pop {r1}
- bx r1
- thumb_func_end rfu_UNI_setSendData
-
- thumb_func_start rfu_NI_CHILD_setSendGameName
-rfu_NI_CHILD_setSendGameName: @ 82E5818
- push {lr}
- sub sp, 0x4
- adds r2, r1, 0
- lsls r0, 24
- lsrs r0, 24
- lsls r2, 24
- lsrs r2, 24
- movs r1, 0x80
- lsls r1, 17
- lsls r1, r0
- lsrs r1, 24
- ldr r0, _082E5848
- ldr r3, [r0]
- adds r3, 0x98
- movs r0, 0x1A
- str r0, [sp]
- movs r0, 0x40
- bl rfu_STC_setSendData_org
- lsls r0, 16
- lsrs r0, 16
- add sp, 0x4
- pop {r1}
- bx r1
- .align 2, 0
-_082E5848: .4byte 0x03007890
- thumb_func_end rfu_NI_CHILD_setSendGameName
-
- thumb_func_start rfu_STC_setSendData_org
-rfu_STC_setSendData_org: @ 82E584C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- str r3, [sp]
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r1, 24
- lsrs r3, r1, 24
- lsls r2, 24
- lsrs r2, 24
- mov r8, r2
- ldr r0, _082E5878
- ldr r2, [r0]
- ldrb r1, [r2]
- mov r10, r0
- cmp r1, 0xFF
- bne _082E5880
- ldr r0, _082E587C
- b _082E5A36
- .align 2, 0
-_082E5878: .4byte 0x03007890
-_082E587C: .4byte 0x00000301
-_082E5880:
- movs r0, 0xF
- ands r0, r3
- cmp r0, 0
- bne _082E588E
- movs r0, 0x80
- lsls r0, 3
- b _082E5A36
-_082E588E:
- ldrb r0, [r2, 0x2]
- ldrb r1, [r2, 0x3]
- orrs r0, r1
- ands r0, r3
- cmp r0, r3
- beq _082E58A4
- ldr r0, _082E58A0
- b _082E5A36
- .align 2, 0
-_082E58A0: .4byte 0x00000401
-_082E58A4:
- movs r0, 0x10
- ands r0, r6
- cmp r0, 0
- beq _082E58B0
- ldrb r0, [r2, 0x6]
- b _082E58B2
-_082E58B0:
- ldrb r0, [r2, 0x4]
-_082E58B2:
- ands r0, r3
- cmp r0, 0
- beq _082E58C0
- ldr r0, _082E58BC
- b _082E5A36
- .align 2, 0
-_082E58BC: .4byte 0x00000402
-_082E58C0:
- movs r2, 0
- movs r0, 0x1
- ands r0, r3
- ldr r4, _082E58F0
- cmp r0, 0
- bne _082E58E2
- movs r1, 0x1
-_082E58CE:
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x3
- bhi _082E58E2
- adds r0, r3, 0
- asrs r0, r2
- ands r0, r1
- cmp r0, 0
- beq _082E58CE
-_082E58E2:
- mov r0, r10
- ldr r1, [r0]
- ldrb r0, [r1]
- cmp r0, 0x1
- bne _082E58F4
- adds r1, 0xF
- b _082E58FE
- .align 2, 0
-_082E58F0: .4byte 0x089a3220
-_082E58F4:
- cmp r0, 0
- bne _082E5900
- adds r0, r2, 0
- adds r0, 0x10
- adds r1, r0
-_082E58FE:
- mov r9, r1
-_082E5900:
- mov r1, r10
- ldr r0, [r1]
- ldrb r0, [r0]
- lsls r0, 4
- adds r0, r4
- ldrb r4, [r0]
- mov r0, r9
- ldrb r0, [r0]
- cmp r8, r0
- bhi _082E5918
- cmp r8, r4
- bhi _082E591E
-_082E5918:
- movs r0, 0xA0
- lsls r0, 3
- b _082E5A36
-_082E591E:
- ldr r1, _082E596C
- ldrh r0, [r1]
- str r0, [sp, 0x4]
- movs r7, 0
- strh r7, [r1]
- movs r0, 0x20
- ands r0, r6
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0
- bne _082E5938
- cmp r6, 0x40
- bne _082E59F4
-_082E5938:
- ldr r1, _082E5970
- lsls r0, r2, 2
- adds r0, r1
- ldr r0, [r0]
- mov r12, r0
- movs r1, 0
- strh r1, [r0, 0x18]
- mov r1, r12
- adds r1, 0x2D
- mov r2, r12
- str r1, [r2, 0x4]
- movs r0, 0x7
- str r0, [r2, 0x14]
- mov r0, r12
- adds r0, 0x2C
- strb r3, [r0]
- strb r3, [r2, 0x1A]
- mov r2, r8
- subs r0, r2, r4
- mov r2, r12
- strh r0, [r2, 0x2E]
- cmp r5, 0
- beq _082E5974
- strb r7, [r1]
- b _082E5978
- .align 2, 0
-_082E596C: .4byte 0x04000208
-_082E5970: .4byte 0x03007880
-_082E5974:
- movs r0, 0x1
- strb r0, [r1]
-_082E5978:
- ldr r0, [sp, 0x28]
- mov r1, r12
- str r0, [r1, 0x30]
- ldr r2, [sp]
- str r2, [r1, 0x28]
- movs r1, 0
- mov r0, r12
- strb r1, [r0, 0x1F]
- adds r0, 0x20
- strb r1, [r0]
- mov r4, r12
- adds r4, 0x1B
- movs r6, 0
- mov r2, r12
- adds r2, 0x21
- movs r5, 0x1
-_082E5998:
- adds r0, r4, r1
- strb r6, [r0]
- adds r0, r2, r1
- strb r5, [r0]
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x3
- bls _082E5998
- movs r2, 0
- movs r5, 0x1
- ldr r4, _082E59EC
- movs r1, 0
-_082E59B2:
- adds r0, r3, 0
- asrs r0, r2
- ands r0, r5
- cmp r0, 0
- beq _082E59C4
- lsls r0, r2, 2
- adds r0, r4
- ldr r0, [r0]
- strh r1, [r0, 0x2]
-_082E59C4:
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x3
- bls _082E59B2
- mov r1, r10
- ldr r2, [r1]
- ldrb r1, [r2, 0x4]
- adds r0, r3, 0
- orrs r0, r1
- strb r0, [r2, 0x4]
- mov r2, r9
- ldrb r0, [r2]
- mov r1, r8
- subs r0, r1
- strb r0, [r2]
- ldr r0, _082E59F0
- mov r2, r12
- strh r0, [r2]
- b _082E5A2C
- .align 2, 0
-_082E59EC: .4byte 0x03007880
-_082E59F0: .4byte 0x00008021
-_082E59F4:
- movs r0, 0x10
- ands r0, r6
- cmp r0, 0
- beq _082E5A2C
- ldr r1, _082E5A48
- lsls r0, r2, 2
- adds r0, r1
- ldr r1, [r0]
- strb r3, [r1, 0x3]
- ldr r0, [sp]
- str r0, [r1, 0x8]
- mov r2, r8
- subs r0, r2, r4
- strh r0, [r1, 0x4]
- mov r2, r9
- ldrb r0, [r2]
- mov r2, r8
- subs r0, r2
- mov r2, r9
- strb r0, [r2]
- ldr r0, _082E5A4C
- strh r0, [r1]
- mov r0, r10
- ldr r2, [r0]
- ldrb r1, [r2, 0x6]
- adds r0, r3, 0
- orrs r0, r1
- strb r0, [r2, 0x6]
-_082E5A2C:
- ldr r0, _082E5A50
- mov r1, sp
- ldrh r1, [r1, 0x4]
- strh r1, [r0]
- movs r0, 0
-_082E5A36:
- add sp, 0x8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_082E5A48: .4byte 0x03007870
-_082E5A4C: .4byte 0x00008024
-_082E5A50: .4byte 0x04000208
- thumb_func_end rfu_STC_setSendData_org
-
- thumb_func_start rfu_changeSendTarget
-rfu_changeSendTarget: @ 82E5A54
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- adds r3, r0, 0
- lsls r1, 24
- lsrs r7, r1, 24
- lsls r2, 24
- lsrs r6, r2, 24
- cmp r7, 0x3
- bls _082E5A78
- movs r0, 0x80
- lsls r0, 3
- b _082E5BAC
-_082E5A78:
- cmp r0, 0x20
- bne _082E5B18
- ldr r0, _082E5B08
- mov r12, r0
- lsls r0, r7, 2
- add r0, r12
- ldr r5, [r0]
- ldrh r2, [r5]
- ldr r1, _082E5B0C
- adds r0, r1, 0
- ands r0, r2
- cmp r0, r1
- bne _082E5B2E
- ldrb r0, [r5, 0x1A]
- adds r3, r6, 0
- eors r3, r0
- adds r2, r3, 0
- ands r2, r6
- cmp r2, 0
- bne _082E5B66
- cmp r3, 0
- bne _082E5AA6
- b _082E5BAA
-_082E5AA6:
- ldr r1, _082E5B10
- ldrh r0, [r1]
- mov r8, r0
- strh r2, [r1]
- movs r2, 0
- mvns r1, r3
- str r1, [sp]
- lsls r4, r6, 24
- mov r10, r4
- movs r0, 0x1
- mov r9, r0
- movs r1, 0
-_082E5ABE:
- adds r0, r3, 0
- asrs r0, r2
- mov r4, r9
- ands r0, r4
- cmp r0, 0
- beq _082E5AD2
- lsls r0, r2, 2
- add r0, r12
- ldr r0, [r0]
- strh r1, [r0, 0x2]
-_082E5AD2:
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x3
- bls _082E5ABE
- ldr r0, _082E5B14
- ldr r1, [r0]
- ldrb r0, [r1, 0x4]
- ldr r2, [sp]
- ands r2, r0
- strb r2, [r1, 0x4]
- strb r6, [r5, 0x1A]
- mov r0, r10
- cmp r0, 0
- bne _082E5AFE
- adds r0, r7, 0
- movs r1, 0
- adds r2, r5, 0
- bl rfu_STC_releaseFrame
- movs r0, 0x27
- strh r0, [r5]
-_082E5AFE:
- ldr r0, _082E5B10
- mov r1, r8
- strh r1, [r0]
- b _082E5BAA
- .align 2, 0
-_082E5B08: .4byte 0x03007880
-_082E5B0C: .4byte 0x00008020
-_082E5B10: .4byte 0x04000208
-_082E5B14: .4byte 0x03007890
-_082E5B18:
- cmp r3, 0x10
- bne _082E5BA4
- ldr r3, _082E5B34
- lsls r1, r7, 2
- adds r0, r1, r3
- ldr r0, [r0]
- ldrh r2, [r0]
- ldr r0, _082E5B38
- adds r5, r3, 0
- cmp r2, r0
- beq _082E5B40
-_082E5B2E:
- ldr r0, _082E5B3C
- b _082E5BAC
- .align 2, 0
-_082E5B34: .4byte 0x03007870
-_082E5B38: .4byte 0x00008024
-_082E5B3C: .4byte 0x00000403
-_082E5B40:
- movs r3, 0
- movs r2, 0
- adds r4, r5, 0
-_082E5B46:
- cmp r2, r7
- beq _082E5B54
- lsls r0, r2, 2
- adds r0, r4
- ldr r0, [r0]
- ldrb r0, [r0, 0x3]
- orrs r3, r0
-_082E5B54:
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x3
- bls _082E5B46
- adds r2, r6, 0
- ands r2, r3
- cmp r2, 0
- beq _082E5B70
-_082E5B66:
- ldr r0, _082E5B6C
- b _082E5BAC
- .align 2, 0
-_082E5B6C: .4byte 0x00000404
-_082E5B70:
- ldr r3, _082E5B9C
- ldrh r0, [r3]
- mov r8, r0
- strh r2, [r3]
- ldr r4, _082E5BA0
- ldr r2, [r4]
- adds r5, r1, r5
- ldr r0, [r5]
- ldrb r1, [r0, 0x3]
- ldrb r0, [r2, 0x6]
- bics r0, r1
- strb r0, [r2, 0x6]
- ldr r2, [r4]
- ldrb r1, [r2, 0x6]
- adds r0, r6, 0
- orrs r0, r1
- strb r0, [r2, 0x6]
- ldr r0, [r5]
- strb r6, [r0, 0x3]
- mov r2, r8
- strh r2, [r3]
- b _082E5BAA
- .align 2, 0
-_082E5B9C: .4byte 0x04000208
-_082E5BA0: .4byte 0x03007890
-_082E5BA4:
- movs r0, 0xC0
- lsls r0, 3
- b _082E5BAC
-_082E5BAA:
- movs r0, 0
-_082E5BAC:
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end rfu_changeSendTarget
-
- thumb_func_start rfu_NI_stopReceivingData
-rfu_NI_stopReceivingData: @ 82E5BBC
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0x3
- bls _082E5BCC
- movs r0, 0x80
- lsls r0, 3
- b _082E5C26
-_082E5BCC:
- ldr r1, _082E5BF8
- lsls r0, r3, 2
- adds r0, r1
- ldr r2, [r0]
- adds r5, r2, 0
- adds r5, 0x34
- ldr r1, _082E5BFC
- ldrh r0, [r1]
- adds r4, r0, 0
- movs r0, 0
- strh r0, [r1]
- ldrh r1, [r2, 0x34]
- movs r0, 0x80
- lsls r0, 8
- ands r0, r1
- cmp r0, 0
- beq _082E5C20
- ldr r0, _082E5C00
- cmp r1, r0
- bne _082E5C04
- movs r0, 0x48
- b _082E5C06
- .align 2, 0
-_082E5BF8: .4byte 0x03007880
-_082E5BFC: .4byte 0x04000208
-_082E5C00: .4byte 0x00008043
-_082E5C04:
- movs r0, 0x47
-_082E5C06:
- strh r0, [r2, 0x34]
- ldr r0, _082E5C2C
- ldr r2, [r0]
- movs r1, 0x1
- lsls r1, r3
- ldrb r0, [r2, 0x5]
- bics r0, r1
- strb r0, [r2, 0x5]
- adds r0, r3, 0
- movs r1, 0x1
- adds r2, r5, 0
- bl rfu_STC_releaseFrame
-_082E5C20:
- ldr r0, _082E5C30
- strh r4, [r0]
- movs r0, 0
-_082E5C26:
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_082E5C2C: .4byte 0x03007890
-_082E5C30: .4byte 0x04000208
- thumb_func_end rfu_NI_stopReceivingData
-
- thumb_func_start rfu_UNI_changeAndReadySendData
-rfu_UNI_changeAndReadySendData: @ 82E5C34
- push {r4-r7,lr}
- adds r7, r1, 0
- lsls r0, 24
- lsrs r0, 24
- adds r3, r0, 0
- lsls r2, 24
- lsrs r5, r2, 24
- cmp r0, 0x3
- bls _082E5C4C
- movs r0, 0x80
- lsls r0, 3
- b _082E5CC0
-_082E5C4C:
- ldr r1, _082E5C60
- lsls r0, 2
- adds r0, r1
- ldr r4, [r0]
- ldrh r1, [r4]
- ldr r0, _082E5C64
- cmp r1, r0
- beq _082E5C6C
- ldr r0, _082E5C68
- b _082E5CC0
- .align 2, 0
-_082E5C60: .4byte 0x03007870
-_082E5C64: .4byte 0x00008024
-_082E5C68: .4byte 0x00000403
-_082E5C6C:
- ldr r0, _082E5C80
- ldr r1, [r0]
- ldrb r0, [r1]
- cmp r0, 0x1
- bne _082E5C84
- adds r6, r1, 0
- adds r6, 0xF
- ldrb r0, [r4, 0x4]
- ldrb r1, [r1, 0xF]
- b _082E5C92
- .align 2, 0
-_082E5C80: .4byte 0x03007890
-_082E5C84:
- adds r0, r3, 0
- adds r0, 0x10
- adds r6, r1, r0
- adds r1, 0x10
- adds r1, r3
- ldrb r0, [r4, 0x4]
- ldrb r1, [r1]
-_082E5C92:
- adds r0, r1
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, r5
- bcc _082E5CBC
- ldr r2, _082E5CB8
- ldrh r1, [r2]
- movs r0, 0
- strh r0, [r2]
- str r7, [r4, 0x8]
- subs r0, r3, r5
- strb r0, [r6]
- strh r5, [r4, 0x4]
- movs r0, 0x1
- strb r0, [r4, 0x2]
- strh r1, [r2]
- movs r0, 0
- b _082E5CC0
- .align 2, 0
-_082E5CB8: .4byte 0x04000208
-_082E5CBC:
- movs r0, 0xA0
- lsls r0, 3
-_082E5CC0:
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end rfu_UNI_changeAndReadySendData
-
- thumb_func_start rfu_UNI_readySendData
-rfu_UNI_readySendData: @ 82E5CC8
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x3
- bhi _082E5CE6
- ldr r1, _082E5CEC
- lsls r0, 2
- adds r0, r1
- ldr r2, [r0]
- ldrh r1, [r2]
- ldr r0, _082E5CF0
- cmp r1, r0
- bne _082E5CE6
- movs r0, 0x1
- strb r0, [r2, 0x2]
-_082E5CE6:
- pop {r0}
- bx r0
- .align 2, 0
-_082E5CEC: .4byte 0x03007870
-_082E5CF0: .4byte 0x00008024
- thumb_func_end rfu_UNI_readySendData
-
- thumb_func_start rfu_UNI_clearRecvNewDataFlag
-rfu_UNI_clearRecvNewDataFlag: @ 82E5CF4
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x3
- bhi _082E5D0A
- ldr r1, _082E5D10
- lsls r0, 2
- adds r0, r1
- ldr r1, [r0]
- movs r0, 0
- strb r0, [r1, 0x12]
-_082E5D0A:
- pop {r0}
- bx r0
- .align 2, 0
-_082E5D10: .4byte 0x03007870
- thumb_func_end rfu_UNI_clearRecvNewDataFlag
-
- thumb_func_start rfu_REQ_sendData
-rfu_REQ_sendData: @ 82E5D14
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, _082E5D60
- ldr r2, [r0]
- ldrb r1, [r2]
- adds r4, r0, 0
- cmp r1, 0xFF
- bne _082E5D28
- b _082E5E4E
-_082E5D28:
- cmp r1, 0x1
- bne _082E5DB8
- ldrb r0, [r2, 0x4]
- ldrb r1, [r2, 0x5]
- adds r3, r0, 0
- orrs r3, r1
- ldrb r0, [r2, 0x6]
- orrs r3, r0
- cmp r3, 0
- bne _082E5DB8
- ldr r0, _082E5D64
- ldr r2, [r0]
- ldrb r1, [r2, 0x3]
- adds r4, r0, 0
- cmp r1, 0
- beq _082E5D50
- movs r0, 0x10
- strb r0, [r2, 0x8]
- ldr r0, [r4]
- strb r3, [r0, 0x7]
-_082E5D50:
- ldr r1, [r4]
- ldrb r0, [r1, 0x8]
- cmp r0, 0
- beq _082E5D68
- subs r0, 0x1
- strb r0, [r1, 0x8]
- b _082E5D6E
- .align 2, 0
-_082E5D60: .4byte 0x03007890
-_082E5D64: .4byte 0x03007894
-_082E5D68:
- ldrb r0, [r1, 0x7]
- adds r0, 0x1
- strb r0, [r1, 0x7]
-_082E5D6E:
- ldr r1, [r4]
- ldrb r0, [r1, 0x8]
- cmp r0, 0
- bne _082E5D80
- ldrb r1, [r1, 0x7]
- movs r0, 0xF
- ands r0, r1
- cmp r0, 0
- bne _082E5E12
-_082E5D80:
- ldr r4, _082E5DA4
- ldr r1, [r4]
- movs r0, 0x1
- str r0, [r1, 0x68]
- movs r0, 0xFF
- str r0, [r1, 0x78]
- ldr r0, _082E5DA8
- bl STWI_set_Callback_M
- cmp r5, 0
- bne _082E5DAC
- ldr r0, [r4]
- adds r0, 0x68
- movs r1, 0x1
- bl STWI_send_DataTxREQ
- b _082E5E4E
- .align 2, 0
-_082E5DA4: .4byte 0x03007898
-_082E5DA8: .4byte sub_82E5F00 + 1
-_082E5DAC:
- ldr r0, [r4]
- adds r0, 0x68
- movs r1, 0x1
- bl STWI_send_DataTxAndChangeREQ
- b _082E5E4E
-_082E5DB8:
- ldr r0, [r4]
- ldrb r0, [r0, 0xE]
- cmp r0, 0
- bne _082E5DC4
- bl rfu_constructSendLLFrame
-_082E5DC4:
- ldr r0, [r4]
- ldrb r0, [r0, 0xE]
- cmp r0, 0
- beq _082E5E12
- ldr r0, _082E5DF0
- bl STWI_set_Callback_M
- cmp r5, 0
- beq _082E5DFC
- ldr r0, _082E5DF4
- ldr r0, [r0]
- adds r0, 0x68
- ldr r1, _082E5DF8
- ldr r1, [r1]
- ldr r1, [r1, 0x24]
- adds r1, 0x4
- lsls r1, 24
- lsrs r1, 24
- bl STWI_send_DataTxAndChangeREQ
- b _082E5E4E
- .align 2, 0
-_082E5DF0: .4byte rfu_CB_sendData + 1
-_082E5DF4: .4byte 0x03007898
-_082E5DF8: .4byte 0x03007894
-_082E5DFC:
- ldr r0, _082E5E34
- ldr r0, [r0]
- adds r0, 0x68
- ldr r1, _082E5E38
- ldr r1, [r1]
- ldr r1, [r1, 0x24]
- adds r1, 0x4
- lsls r1, 24
- lsrs r1, 24
- bl STWI_send_DataTxREQ
-_082E5E12:
- cmp r5, 0
- beq _082E5E4E
- ldr r0, _082E5E3C
- ldr r0, [r0]
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _082E5E44
- ldr r0, _082E5E40
- ldr r0, [r0]
- ldr r1, [r0, 0x1C]
- cmp r1, 0
- beq _082E5E4E
- movs r0, 0x27
- bl _call_via_r1
- b _082E5E4E
- .align 2, 0
-_082E5E34: .4byte 0x03007898
-_082E5E38: .4byte 0x03007894
-_082E5E3C: .4byte 0x03007890
-_082E5E40: .4byte 0x03007868
-_082E5E44:
- ldr r0, _082E5E54
- bl STWI_set_Callback_M
- bl STWI_send_MS_ChangeREQ
-_082E5E4E:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_082E5E54: .4byte rfu_CB_sendData2 + 1
- thumb_func_end rfu_REQ_sendData
-
- thumb_func_start rfu_CB_sendData
-rfu_CB_sendData: @ 82E5E58
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r1, 16
- lsrs r7, r1, 16
- cmp r7, 0
- bne _082E5EC2
- movs r6, 0
- ldr r0, _082E5EE0
- mov r8, r0
-_082E5E6C:
- ldr r0, _082E5EE4
- lsls r2, r6, 2
- adds r0, r2, r0
- ldr r1, [r0]
- ldrb r0, [r1, 0x2]
- cmp r0, 0
- beq _082E5E7E
- movs r0, 0
- strb r0, [r1, 0x2]
-_082E5E7E:
- ldr r0, _082E5EE8
- adds r0, r2, r0
- ldr r4, [r0]
- ldrh r0, [r4]
- cmp r0, r8
- bne _082E5EB8
- adds r0, r6, 0
- movs r1, 0
- adds r2, r4, 0
- bl rfu_STC_releaseFrame
- ldr r5, _082E5EEC
- ldr r2, [r5]
- ldrb r1, [r4, 0x1A]
- ldrb r0, [r2, 0x4]
- bics r0, r1
- strb r0, [r2, 0x4]
- adds r0, r4, 0
- adds r0, 0x2D
- ldrb r3, [r0]
- cmp r3, 0x1
- bne _082E5EB4
- ldr r1, [r5]
- lsls r3, r6
- ldrb r0, [r1, 0x7]
- orrs r3, r0
- strb r3, [r1, 0x7]
-_082E5EB4:
- movs r0, 0x26
- strh r0, [r4]
-_082E5EB8:
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, 0x3
- bls _082E5E6C
-_082E5EC2:
- ldr r0, _082E5EEC
- ldr r1, [r0]
- ldrb r0, [r1, 0xE]
- movs r0, 0
- strb r0, [r1, 0xE]
- movs r0, 0x24
- adds r1, r7, 0
- bl rfu_STC_REQ_callback
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_082E5EE0: .4byte 0x00008020
-_082E5EE4: .4byte 0x03007870
-_082E5EE8: .4byte 0x03007880
-_082E5EEC: .4byte 0x03007890
- thumb_func_end rfu_CB_sendData
-
- thumb_func_start rfu_CB_sendData2
-rfu_CB_sendData2: @ 82E5EF0
- push {lr}
- lsls r1, 16
- lsrs r1, 16
- movs r0, 0x24
- bl rfu_STC_REQ_callback
- pop {r0}
- bx r0
- thumb_func_end rfu_CB_sendData2
-
- thumb_func_start sub_82E5F00
-sub_82E5F00: @ 82E5F00
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 16
- lsrs r1, 16
- cmp r1, 0
- beq _082E5F16
- movs r0, 0x24
- bl rfu_STC_REQ_callback
- b _082E5F22
-_082E5F16:
- cmp r0, 0xFF
- bne _082E5F22
- movs r0, 0xFF
- movs r1, 0
- bl rfu_STC_REQ_callback
-_082E5F22:
- pop {r0}
- bx r0
- thumb_func_end sub_82E5F00
-
- thumb_func_start rfu_constructSendLLFrame
-rfu_constructSendLLFrame: @ 82E5F28
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- ldr r0, _082E5FD4
- ldr r2, [r0]
- ldrb r0, [r2]
- cmp r0, 0xFF
- bne _082E5F40
- b _082E6044
-_082E5F40:
- ldrb r0, [r2, 0x4]
- ldrb r1, [r2, 0x5]
- orrs r0, r1
- ldrb r1, [r2, 0x6]
- orrs r0, r1
- cmp r0, 0
- beq _082E6044
- ldrb r0, [r2, 0xE]
- movs r0, 0
- strb r0, [r2, 0xE]
- mov r8, r0
- ldr r0, _082E5FD8
- ldr r0, [r0]
- adds r0, 0x6C
- str r0, [sp]
- movs r6, 0
- movs r0, 0x80
- lsls r0, 8
- mov r9, r0
- ldr r1, _082E5FDC
- mov r10, r1
-_082E5F6A:
- movs r5, 0
- ldr r0, _082E5FE0
- lsls r7, r6, 2
- adds r4, r7, r0
- ldr r2, [r4]
- ldrh r1, [r2]
- mov r0, r9
- ands r0, r1
- cmp r0, 0
- beq _082E5F8A
- adds r0, r6, 0
- mov r1, sp
- bl rfu_STC_NI_constructLLSF
- lsls r0, 16
- lsrs r5, r0, 16
-_082E5F8A:
- ldr r2, [r4]
- ldrh r1, [r2, 0x34]
- mov r0, r9
- ands r0, r1
- cmp r0, 0
- beq _082E5FA6
- adds r2, 0x34
- adds r0, r6, 0
- mov r1, sp
- bl rfu_STC_NI_constructLLSF
- lsls r0, 16
- lsrs r0, 16
- adds r5, r0
-_082E5FA6:
- ldr r0, _082E5FE4
- adds r0, r7, r0
- ldr r0, [r0]
- ldrh r0, [r0]
- cmp r0, r10
- bne _082E5FC0
- adds r0, r6, 0
- mov r1, sp
- bl rfu_STC_UNI_constructLLSF
- lsls r0, 16
- lsrs r0, 16
- adds r5, r0
-_082E5FC0:
- cmp r5, 0
- beq _082E5FF4
- ldr r0, _082E5FD4
- ldr r0, [r0]
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _082E5FE8
- add r8, r5
- b _082E5FF4
- .align 2, 0
-_082E5FD4: .4byte 0x03007890
-_082E5FD8: .4byte 0x03007898
-_082E5FDC: .4byte 0x00008024
-_082E5FE0: .4byte 0x03007880
-_082E5FE4: .4byte 0x03007870
-_082E5FE8:
- adds r0, r7, r6
- adds r0, 0x8
- lsls r5, r0
- mov r2, r8
- orrs r2, r5
- mov r8, r2
-_082E5FF4:
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, 0x3
- bls _082E5F6A
- ldr r6, _082E6054
- mov r0, r8
- cmp r0, 0
- beq _082E603E
- ldr r2, [sp]
- movs r0, 0x3
- ands r0, r2
- ldr r5, _082E6058
- ldr r1, _082E605C
- cmp r0, 0
- beq _082E6026
- movs r4, 0
- movs r3, 0x3
-_082E6018:
- strb r4, [r2]
- adds r0, r2, 0x1
- str r0, [sp]
- adds r2, r0, 0
- ands r0, r3
- cmp r0, 0
- bne _082E6018
-_082E6026:
- ldr r0, [r1]
- mov r2, r8
- str r2, [r0, 0x68]
- ldr r0, [r5]
- ldrb r0, [r0]
- cmp r0, 0
- bne _082E603E
- ldr r0, [sp]
- subs r0, 0x6C
- ldr r1, [r1]
- subs r0, r1
- mov r8, r0
-_082E603E:
- ldr r0, [r6]
- mov r1, r8
- str r1, [r0, 0x24]
-_082E6044:
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_082E6054: .4byte 0x03007894
-_082E6058: .4byte 0x03007890
-_082E605C: .4byte 0x03007898
- thumb_func_end rfu_constructSendLLFrame
-
- thumb_func_start rfu_STC_NI_constructLLSF
-rfu_STC_NI_constructLLSF: @ 82E6060
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- mov r12, r1
- adds r4, r2, 0
- lsls r0, 24
- lsrs r0, 24
- mov r10, r0
- ldr r2, _082E60DC
- ldr r0, [r2]
- ldrb r0, [r0]
- lsls r0, 4
- ldr r1, _082E60E0
- adds r0, r1
- mov r8, r0
- ldrh r1, [r4]
- ldr r0, _082E60E4
- cmp r1, r0
- bne _082E60CA
- adds r3, r4, 0
- adds r3, 0x20
- ldrb r1, [r3]
- lsls r1, 2
- adds r5, r4, 0x4
- adds r1, r5, r1
- ldr r2, [r4, 0x28]
- ldr r0, [r4, 0x30]
- adds r2, r0
- ldr r0, [r1]
- adds r6, r3, 0
- cmp r0, r2
- bcc _082E60CA
- movs r7, 0
-_082E60A8:
- ldrb r0, [r3]
- adds r0, 0x1
- strb r0, [r3]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x4
- bne _082E60B8
- strb r7, [r6]
-_082E60B8:
- ldrb r1, [r3]
- lsls r1, 2
- adds r1, r5, r1
- ldr r2, [r4, 0x28]
- ldr r0, [r4, 0x30]
- adds r2, r0
- ldr r0, [r1]
- cmp r0, r2
- bcs _082E60A8
-_082E60CA:
- ldrh r1, [r4]
- movs r0, 0x40
- ands r0, r1
- mov r9, r1
- cmp r0, 0
- beq _082E60E8
- movs r5, 0
- b _082E612C
- .align 2, 0
-_082E60DC: .4byte 0x03007890
-_082E60E0: .4byte 0x089a3220
-_082E60E4: .4byte 0x00008022
-_082E60E8:
- ldr r0, _082E6114
- cmp r9, r0
- bne _082E611C
- adds r3, r4, 0
- adds r3, 0x20
- ldrb r0, [r3]
- lsls r0, 2
- adds r1, r4, 0x4
- adds r1, r0
- ldrh r7, [r4, 0x2E]
- ldr r5, [r1]
- adds r2, r5, r7
- ldr r1, [r4, 0x28]
- ldr r0, [r4, 0x30]
- adds r0, r1, r0
- adds r6, r3, 0
- cmp r2, r0
- bls _082E6118
- subs r0, r5
- lsls r0, 16
- lsrs r5, r0, 16
- b _082E6130
- .align 2, 0
-_082E6114: .4byte 0x00008022
-_082E6118:
- adds r5, r7, 0
- b _082E6130
-_082E611C:
- ldrh r2, [r4, 0x2E]
- ldr r0, [r4, 0x14]
- cmp r0, r2
- bcc _082E6128
- adds r5, r2, 0
- b _082E612C
-_082E6128:
- lsls r0, 16
- lsrs r5, r0, 16
-_082E612C:
- adds r6, r4, 0
- adds r6, 0x20
-_082E6130:
- movs r3, 0xF
- mov r0, r9
- ands r3, r0
- mov r1, r8
- ldrb r1, [r1, 0x3]
- lsls r3, r1
- ldrb r0, [r4, 0x1F]
- mov r2, r8
- ldrb r2, [r2, 0x4]
- lsls r0, r2
- orrs r3, r0
- ldrb r1, [r6]
- adds r0, r1, 0
- mov r7, r8
- ldrb r7, [r7, 0x5]
- lsls r0, r7
- orrs r3, r0
- adds r0, r4, 0
- adds r0, 0x21
- adds r0, r1
- ldrb r0, [r0]
- mov r1, r8
- ldrb r1, [r1, 0x6]
- lsls r0, r1
- orrs r3, r0
- orrs r3, r5
- str r3, [sp]
- ldr r2, _082E61EC
- ldr r0, [r2]
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _082E6178
- ldrb r0, [r4, 0x1A]
- lsls r0, 18
- orrs r3, r0
- str r3, [sp]
-_082E6178:
- mov r2, sp
- movs r3, 0
- mov r7, r8
- ldrb r7, [r7]
- cmp r3, r7
- bcs _082E61A2
-_082E6184:
- mov r0, r12
- ldr r1, [r0]
- ldrb r0, [r2]
- strb r0, [r1]
- adds r2, 0x1
- adds r1, 0x1
- mov r7, r12
- str r1, [r7]
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- mov r0, r8
- ldrb r0, [r0]
- cmp r3, r0
- bcc _082E6184
-_082E61A2:
- cmp r5, 0
- beq _082E61C2
- ldrb r1, [r6]
- lsls r1, 2
- adds r0, r4, 0x4
- adds r0, r1
- ldr r0, [r0]
- str r0, [sp, 0x4]
- ldr r0, _082E61F0
- ldr r1, [r0]
- add r0, sp, 0x4
- ldr r3, [r1, 0x4]
- mov r1, r12
- adds r2, r5, 0
- bl _call_via_r3
-_082E61C2:
- ldrh r1, [r4]
- ldr r0, _082E61F4
- cmp r1, r0
- bne _082E61DC
- ldrb r0, [r6]
- adds r0, 0x1
- strb r0, [r6]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x4
- bne _082E61DC
- movs r0, 0
- strb r0, [r6]
-_082E61DC:
- ldr r0, _082E61EC
- ldr r2, [r0]
- ldrb r1, [r2]
- cmp r1, 0x1
- bne _082E61F8
- ldrb r0, [r2, 0xE]
- strb r1, [r2, 0xE]
- b _082E6206
- .align 2, 0
-_082E61EC: .4byte 0x03007890
-_082E61F0: .4byte 0x03007898
-_082E61F4: .4byte 0x00008022
-_082E61F8:
- movs r0, 0x1
- mov r1, r10
- lsls r0, r1
- ldrb r1, [r2, 0xE]
- orrs r0, r1
- ldrb r1, [r2, 0xE]
- strb r0, [r2, 0xE]
-_082E6206:
- mov r2, r8
- ldrb r0, [r2]
- adds r0, r5, r0
- lsls r0, 16
- lsrs r0, 16
- add sp, 0x8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end rfu_STC_NI_constructLLSF
-
- thumb_func_start rfu_STC_UNI_constructLLSF
-rfu_STC_UNI_constructLLSF: @ 82E6220
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x8
- adds r6, r1, 0
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- ldr r1, _082E6248
- lsls r0, 2
- adds r0, r1
- ldr r4, [r0]
- ldrb r0, [r4, 0x2]
- cmp r0, 0
- beq _082E6244
- ldrb r0, [r4, 0x3]
- cmp r0, 0
- bne _082E624C
-_082E6244:
- movs r0, 0
- b _082E62E8
- .align 2, 0
-_082E6248: .4byte 0x03007870
-_082E624C:
- ldr r0, _082E62C4
- ldr r2, [r0]
- ldrb r0, [r2]
- lsls r0, 4
- ldr r1, _082E62C8
- adds r5, r0, r1
- ldrh r0, [r4]
- movs r1, 0xF
- ands r1, r0
- ldrb r0, [r5, 0x3]
- lsls r1, r0
- ldrh r0, [r4, 0x4]
- orrs r1, r0
- str r1, [sp]
- ldrb r0, [r2]
- cmp r0, 0x1
- bne _082E6276
- ldrb r0, [r4, 0x3]
- lsls r0, 18
- orrs r1, r0
- str r1, [sp]
-_082E6276:
- mov r2, sp
- movs r3, 0
- ldr r1, _082E62CC
- mov r12, r1
- add r7, sp, 0x4
- ldrb r0, [r5]
- cmp r3, r0
- bcs _082E629E
-_082E6286:
- ldr r1, [r6]
- ldrb r0, [r2]
- strb r0, [r1]
- adds r2, 0x1
- adds r1, 0x1
- str r1, [r6]
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- ldrb r1, [r5]
- cmp r3, r1
- bcc _082E6286
-_082E629E:
- ldr r0, [r4, 0x8]
- str r0, [sp, 0x4]
- mov r2, r12
- ldr r0, [r2]
- ldrh r2, [r4, 0x4]
- ldr r3, [r0, 0x4]
- adds r0, r7, 0
- adds r1, r6, 0
- bl _call_via_r3
- ldr r0, _082E62C4
- ldr r2, [r0]
- ldrb r0, [r2]
- cmp r0, 0x1
- bne _082E62D0
- ldrb r0, [r2, 0xE]
- movs r0, 0x10
- b _082E62DC
- .align 2, 0
-_082E62C4: .4byte 0x03007890
-_082E62C8: .4byte 0x089a3220
-_082E62CC: .4byte 0x03007898
-_082E62D0:
- movs r0, 0x10
- mov r1, r8
- lsls r0, r1
- ldrb r1, [r2, 0xE]
- orrs r0, r1
- ldrb r1, [r2, 0xE]
-_082E62DC:
- strb r0, [r2, 0xE]
- ldrh r0, [r4, 0x4]
- ldrb r5, [r5]
- adds r0, r5
- lsls r0, 16
- lsrs r0, 16
-_082E62E8:
- add sp, 0x8
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end rfu_STC_UNI_constructLLSF
-
- thumb_func_start rfu_REQ_recvData
-rfu_REQ_recvData: @ 82E62F4
- push {r4,lr}
- ldr r0, _082E6328
- ldr r4, [r0]
- ldrb r0, [r4]
- cmp r0, 0xFF
- beq _082E6320
- ldr r2, _082E632C
- ldr r3, [r2]
- ldrb r0, [r4, 0x4]
- ldrb r1, [r4, 0x5]
- orrs r0, r1
- ldrb r1, [r4, 0x6]
- orrs r0, r1
- movs r1, 0
- strb r0, [r3, 0x3]
- ldr r0, [r2]
- strb r1, [r0, 0x4]
- ldr r0, _082E6330
- bl STWI_set_Callback_M
- bl STWI_send_DataRxREQ
-_082E6320:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_082E6328: .4byte 0x03007890
-_082E632C: .4byte 0x03007894
-_082E6330: .4byte rfu_CB_recvData + 1
- thumb_func_end rfu_REQ_recvData
-
- thumb_func_start rfu_CB_recvData
-rfu_CB_recvData: @ 82E6334
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- lsls r1, 16
- lsrs r7, r1, 16
- cmp r7, 0
- bne _082E63F8
- ldr r0, _082E6370
- ldr r0, [r0]
- adds r0, 0xDC
- ldr r0, [r0]
- ldrb r0, [r0, 0x1]
- cmp r0, 0
- beq _082E63F8
- ldr r0, _082E6374
- ldr r0, [r0]
- strb r7, [r0, 0x1]
- ldr r0, _082E6378
- ldr r0, [r0]
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _082E637C
- bl rfu_STC_PARENT_analyzeRecvPacket
- b _082E6380
- .align 2, 0
-_082E6370: .4byte 0x03007898
-_082E6374: .4byte 0x03007894
-_082E6378: .4byte 0x03007890
-_082E637C:
- bl rfu_STC_CHILD_analyzeRecvPacket
-_082E6380:
- movs r6, 0
- ldr r0, _082E6410
- mov r8, r0
- ldr r3, _082E6414
-_082E6388:
- ldr r0, _082E6418
- lsls r1, r6, 2
- adds r1, r0
- ldr r4, [r1]
- ldrh r0, [r4, 0x34]
- cmp r0, r8
- bne _082E63DA
- ldr r0, _082E641C
- ldr r0, [r0]
- ldrb r0, [r0, 0x1]
- asrs r0, r6
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- bne _082E63DA
- adds r5, r4, 0
- adds r5, 0x34
- adds r0, r4, 0
- adds r0, 0x61
- ldrb r2, [r0]
- cmp r2, 0x1
- bne _082E63BE
- ldr r1, [r3]
- lsls r2, r6
- ldrb r0, [r1, 0x7]
- orrs r2, r0
- strb r2, [r1, 0x7]
-_082E63BE:
- adds r0, r6, 0
- movs r1, 0x1
- adds r2, r5, 0
- str r3, [sp]
- bl rfu_STC_releaseFrame
- ldr r3, [sp]
- ldr r2, [r3]
- ldrb r1, [r5, 0x1A]
- ldrb r0, [r2, 0x5]
- bics r0, r1
- strb r0, [r2, 0x5]
- movs r0, 0x46
- strh r0, [r4, 0x34]
-_082E63DA:
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, 0x3
- bls _082E6388
- ldr r0, _082E641C
- ldr r1, [r0]
- ldrb r0, [r1, 0x4]
- cmp r0, 0
- beq _082E63F8
- adds r7, r0, 0
- movs r1, 0xE0
- lsls r1, 3
- adds r0, r1, 0
- orrs r7, r0
-_082E63F8:
- mov r0, r9
- adds r1, r7, 0
- bl rfu_STC_REQ_callback
- add sp, 0x4
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_082E6410: .4byte 0x00008043
-_082E6414: .4byte 0x03007890
-_082E6418: .4byte 0x03007880
-_082E641C: .4byte 0x03007894
- thumb_func_end rfu_CB_recvData
-
- thumb_func_start rfu_STC_PARENT_analyzeRecvPacket
-rfu_STC_PARENT_analyzeRecvPacket: @ 82E6420
- push {r4-r7,lr}
- sub sp, 0x4
- ldr r1, _082E64B0
- ldr r0, [r1]
- adds r0, 0xDC
- ldr r0, [r0]
- ldr r0, [r0, 0x4]
- lsrs r3, r0, 8
- movs r5, 0
- mov r12, r1
- movs r7, 0x1F
- ldr r4, _082E64B4
- movs r6, 0x1
-_082E643A:
- mov r0, sp
- adds r1, r0, r5
- adds r0, r3, 0
- ands r0, r7
- strb r0, [r1]
- lsrs r3, 5
- cmp r0, 0
- bne _082E6456
- ldr r0, [r4]
- adds r1, r6, 0
- lsls r1, r5
- ldrb r2, [r0, 0x1]
- orrs r1, r2
- strb r1, [r0, 0x1]
-_082E6456:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x3
- bls _082E643A
- mov r1, r12
- ldr r0, [r1]
- adds r0, 0xDC
- ldr r0, [r0]
- adds r6, r0, 0
- adds r6, 0x8
- movs r5, 0
-_082E646E:
- mov r0, sp
- adds r1, r0, r5
- ldrb r0, [r1]
- adds r7, r5, 0x1
- cmp r0, 0
- beq _082E64A0
- adds r4, r1, 0
-_082E647C:
- ldrb r2, [r4]
- adds r0, r5, 0
- adds r1, r6, 0
- bl rfu_STC_analyzeLLSF
- lsls r0, 24
- lsrs r0, 24
- adds r6, r0
- ldrb r1, [r4]
- subs r1, r0
- strb r1, [r4]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _082E64A0
- lsls r0, r1, 24
- cmp r0, 0
- bne _082E647C
-_082E64A0:
- lsls r0, r7, 24
- lsrs r5, r0, 24
- cmp r5, 0x3
- bls _082E646E
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_082E64B0: .4byte 0x03007898
-_082E64B4: .4byte 0x03007894
- thumb_func_end rfu_STC_PARENT_analyzeRecvPacket
-
- thumb_func_start rfu_STC_CHILD_analyzeRecvPacket
-rfu_STC_CHILD_analyzeRecvPacket: @ 82E64B8
- push {r4-r6,lr}
- ldr r0, _082E6508
- ldr r0, [r0]
- adds r0, 0xDC
- ldr r1, [r0]
- ldrh r0, [r1, 0x4]
- movs r4, 0x7F
- ands r4, r0
- adds r5, r1, 0
- adds r5, 0x8
- cmp r4, 0
- bne _082E64D8
- ldr r0, _082E650C
- ldr r1, [r0]
- movs r0, 0xF
- strb r0, [r1, 0x1]
-_082E64D8:
- movs r0, 0x80
- lsls r0, 8
- adds r6, r0, 0
-_082E64DE:
- cmp r4, 0
- beq _082E6500
- movs r0, 0
- adds r1, r5, 0
- adds r2, r4, 0
- bl rfu_STC_analyzeLLSF
- lsls r0, 16
- lsrs r0, 16
- adds r5, r0
- subs r0, r4, r0
- lsls r0, 16
- lsrs r4, r0, 16
- adds r0, r4, 0
- ands r0, r6
- cmp r0, 0
- beq _082E64DE
-_082E6500:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_082E6508: .4byte 0x03007898
-_082E650C: .4byte 0x03007894
- thumb_func_end rfu_STC_CHILD_analyzeRecvPacket
-
- thumb_func_start rfu_STC_analyzeLLSF
-rfu_STC_analyzeLLSF: @ 82E6510
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- adds r7, r1, 0
- lsls r0, 24
- lsrs r0, 24
- mov r12, r0
- lsls r2, 16
- lsrs r3, r2, 16
- ldr r2, _082E6544
- ldr r0, [r2]
- ldrb r0, [r0]
- mvns r0, r0
- movs r1, 0x1
- ands r0, r1
- lsls r0, 4
- ldr r1, _082E6548
- adds r6, r0, r1
- ldrb r0, [r6]
- cmp r3, r0
- bcs _082E654C
- adds r0, r3, 0
- b _082E673E
- .align 2, 0
-_082E6544: .4byte 0x03007890
-_082E6548: .4byte 0x089a3220
-_082E654C:
- movs r5, 0
- movs r4, 0
- ldrb r3, [r6, 0x1]
- ldrb r1, [r6, 0x7]
- mov r8, r1
- ldr r2, [sp]
- mov r9, r2
- cmp r4, r0
- bcs _082E6574
- adds r2, r0, 0
-_082E6560:
- ldrb r0, [r7]
- lsls r1, r4, 3
- lsls r0, r1
- orrs r5, r0
- adds r7, 0x1
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, r2
- bcc _082E6560
-_082E6574:
- adds r0, r5, 0
- lsrs r0, r3
- mov r3, r8
- ands r0, r3
- ldr r1, _082E664C
- mov r10, r1
- mov r3, r10
- mov r2, r9
- ands r3, r2
- orrs r3, r0
- str r3, [sp]
- adds r0, r5, 0
- ldrb r1, [r6, 0x2]
- lsrs r0, r1
- ldrb r1, [r6, 0x8]
- ands r0, r1
- lsls r0, 8
- ldr r4, _082E6650
- adds r2, r4, 0
- ands r2, r3
- orrs r2, r0
- str r2, [sp]
- adds r0, r5, 0
- ldrb r3, [r6, 0x3]
- lsrs r0, r3
- ldrb r1, [r6, 0x9]
- ands r0, r1
- lsls r0, 16
- ldr r3, _082E6654
- ands r3, r2
- orrs r3, r0
- str r3, [sp]
- adds r0, r5, 0
- ldrb r1, [r6, 0x4]
- lsrs r0, r1
- ldrb r1, [r6, 0xA]
- ands r0, r1
- lsls r0, 24
- ldr r2, _082E6658
- mov r8, r2
- mov r1, r8
- ands r1, r3
- orrs r1, r0
- mov r8, r1
- str r1, [sp]
- adds r1, r5, 0
- ldrb r2, [r6, 0x5]
- lsrs r1, r2
- ldrb r0, [r6, 0xB]
- ands r1, r0
- mov r9, sp
- ldr r2, [sp, 0x4]
- mov r3, r10
- ands r2, r3
- orrs r2, r1
- str r2, [sp, 0x4]
- adds r0, r5, 0
- ldrb r1, [r6, 0x6]
- lsrs r0, r1
- ldrb r1, [r6, 0xC]
- ands r0, r1
- lsls r0, 8
- ands r4, r2
- orrs r4, r0
- str r4, [sp, 0x4]
- ldrh r0, [r6, 0xE]
- ands r5, r0
- lsls r1, r5, 16
- ldr r0, _082E665C
- ands r0, r4
- orrs r0, r1
- str r0, [sp, 0x4]
- lsrs r0, 16
- ldrb r6, [r6]
- adds r0, r6
- lsls r0, 16
- lsrs r0, 16
- mov r10, r0
- mov r0, sp
- ldrb r0, [r0]
- cmp r0, 0
- beq _082E661A
- b _082E673C
-_082E661A:
- ldr r2, _082E6660
- ldr r3, [r2]
- ldrb r2, [r3]
- cmp r2, 0x1
- bne _082E66D8
- ldrb r0, [r3, 0x2]
- mov r5, r12
- asrs r0, r5
- ands r0, r2
- cmp r0, 0
- bne _082E6632
- b _082E673C
-_082E6632:
- mov r1, r8
- lsrs r0, r1, 16
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x4
- bne _082E6664
- mov r0, r12
- mov r1, sp
- adds r2, r7, 0
- bl rfu_STC_UNI_receive
- b _082E673C
- .align 2, 0
-_082E664C: .4byte 0xffffff00
-_082E6650: .4byte 0xffff00ff
-_082E6654: .4byte 0xff00ffff
-_082E6658: .4byte 0x00ffffff
-_082E665C: .4byte 0x0000ffff
-_082E6660: .4byte 0x03007890
-_082E6664:
- mov r5, r9
- ldrb r0, [r5, 0x3]
- cmp r0, 0
- bne _082E6678
- mov r0, r12
- mov r1, sp
- adds r2, r7, 0
- bl rfu_STC_NI_receive_Receiver
- b _082E673C
-_082E6678:
- movs r4, 0
- ldr r1, _082E6690
- ldr r0, [r1]
- ldrb r0, [r0, 0x1A]
- mov r5, r12
- asrs r0, r5
- ands r0, r2
- cmp r0, 0
- beq _082E6694
- ldrb r0, [r3, 0x4]
- b _082E66BA
- .align 2, 0
-_082E6690: .4byte 0x03007880
-_082E6694:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x3
- bhi _082E673C
- lsls r0, r4, 2
- adds r0, r1
- ldr r0, [r0]
- ldrb r0, [r0, 0x1A]
- mov r2, r12
- asrs r0, r2
- movs r2, 0x1
- ands r0, r2
- cmp r0, 0
- beq _082E6694
- ldr r3, _082E66D4
- ldr r0, [r3]
- ldrb r0, [r0, 0x4]
- mov r5, r12
-_082E66BA:
- asrs r0, r5
- ands r0, r2
- cmp r0, 0
- beq _082E6694
- cmp r4, 0x3
- bhi _082E673C
- adds r0, r4, 0
- mov r1, r12
- mov r2, sp
- adds r3, r7, 0
- bl rfu_STC_NI_receive_Sender
- b _082E673C
- .align 2, 0
-_082E66D4: .4byte 0x03007890
-_082E66D8:
- ldrb r1, [r3, 0x2]
- mov r2, r9
- ldrb r0, [r2, 0x1]
- adds r5, r1, 0
- ands r5, r0
- cmp r5, 0
- beq _082E673C
- movs r4, 0
- movs r6, 0x1
-_082E66EA:
- adds r0, r5, 0
- asrs r0, r4
- ands r0, r6
- cmp r0, 0
- beq _082E6732
- mov r1, sp
- ldrb r0, [r1, 0x2]
- cmp r0, 0x4
- bne _082E6706
- adds r0, r4, 0
- adds r2, r7, 0
- bl rfu_STC_UNI_receive
- b _082E6732
-_082E6706:
- ldrb r0, [r1, 0x3]
- cmp r0, 0
- bne _082E6718
- adds r0, r4, 0
- mov r1, sp
- adds r2, r7, 0
- bl rfu_STC_NI_receive_Receiver
- b _082E6732
-_082E6718:
- ldr r0, _082E6750
- ldr r0, [r0]
- ldrb r0, [r0, 0x4]
- asrs r0, r4
- ands r0, r6
- cmp r0, 0
- beq _082E6732
- adds r0, r4, 0
- adds r1, r4, 0
- mov r2, sp
- adds r3, r7, 0
- bl rfu_STC_NI_receive_Sender
-_082E6732:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x3
- bls _082E66EA
-_082E673C:
- mov r0, r10
-_082E673E:
- add sp, 0x8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_082E6750: .4byte 0x03007890
- thumb_func_end rfu_STC_analyzeLLSF
-
- thumb_func_start rfu_STC_UNI_receive
-rfu_STC_UNI_receive: @ 82E6754
- push {r4-r7,lr}
- sub sp, 0x8
- adds r6, r1, 0
- str r2, [sp]
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r2, _082E6788
- lsls r1, r7, 2
- adds r1, r2
- ldr r3, [r1]
- adds r5, r3, 0
- adds r5, 0xC
- movs r4, 0
- movs r0, 0
- strh r0, [r5, 0x2]
- ldr r0, [r1]
- ldr r0, [r0, 0x18]
- adds r1, r2, 0
- ldrh r2, [r6, 0x6]
- cmp r0, r2
- bcs _082E6790
- movs r0, 0x49
- strh r0, [r3, 0xC]
- ldr r0, _082E678C
- strh r0, [r5, 0x2]
- b _082E67DE
- .align 2, 0
-_082E6788: .4byte 0x03007870
-_082E678C: .4byte 0x00000701
-_082E6790:
- ldrb r0, [r5, 0x7]
- cmp r0, 0
- beq _082E67A8
- ldrb r0, [r5, 0x6]
- cmp r0, 0
- beq _082E67B4
- ldr r0, _082E67A4
- strh r0, [r5, 0x2]
- b _082E67DE
- .align 2, 0
-_082E67A4: .4byte 0x00000709
-_082E67A8:
- ldrb r0, [r5, 0x6]
- cmp r0, 0
- beq _082E67B4
- movs r0, 0xE1
- lsls r0, 3
- strh r0, [r5, 0x2]
-_082E67B4:
- movs r4, 0
- ldr r0, _082E67FC
- strh r0, [r5]
- ldrh r0, [r6, 0x6]
- strh r0, [r5, 0x4]
- ldrh r2, [r6, 0x6]
- lsls r0, r7, 2
- adds r0, r1
- ldr r0, [r0]
- ldr r0, [r0, 0x14]
- str r0, [sp, 0x4]
- ldr r0, _082E6800
- ldr r0, [r0]
- add r1, sp, 0x4
- ldr r3, [r0, 0x4]
- mov r0, sp
- bl _call_via_r3
- movs r0, 0x1
- strb r0, [r5, 0x6]
- strh r4, [r5]
-_082E67DE:
- ldrh r0, [r5, 0x2]
- cmp r0, 0
- beq _082E67F2
- ldr r0, _082E6804
- ldr r2, [r0]
- movs r0, 0x10
- lsls r0, r7
- ldrb r1, [r2, 0x4]
- orrs r0, r1
- strb r0, [r2, 0x4]
-_082E67F2:
- add sp, 0x8
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_082E67FC: .4byte 0x00008042
-_082E6800: .4byte 0x03007898
-_082E6804: .4byte 0x03007894
- thumb_func_end rfu_STC_UNI_receive
-
- thumb_func_start rfu_STC_NI_receive_Sender
-rfu_STC_NI_receive_Sender: @ 82E6808
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- adds r6, r2, 0
- lsls r0, 24
- lsls r1, 24
- lsrs r1, 24
- mov r10, r1
- ldr r1, _082E68D4
- lsrs r0, 22
- adds r0, r1
- ldr r0, [r0]
- mov r12, r0
- ldrh r0, [r0]
- mov r9, r0
- mov r0, r12
- adds r0, 0x21
- ldrb r2, [r6, 0x4]
- adds r0, r2
- ldrb r0, [r0]
- str r0, [sp]
- ldrb r2, [r6, 0x2]
- cmp r2, 0x2
- bne _082E6844
- ldr r0, _082E68D8
- cmp r9, r0
- beq _082E685E
-_082E6844:
- cmp r2, 0x1
- bne _082E684E
- ldr r0, _082E68DC
- cmp r9, r0
- beq _082E685E
-_082E684E:
- movs r3, 0x1B
- add r3, r12
- mov r8, r3
- cmp r2, 0x3
- bne _082E6882
- ldr r0, _082E68E0
- cmp r9, r0
- bne _082E6882
-_082E685E:
- ldrb r1, [r6, 0x4]
- mov r0, r12
- adds r0, 0x21
- adds r0, r1
- ldrb r0, [r0]
- movs r7, 0x1B
- add r7, r12
- mov r8, r7
- ldrb r2, [r6, 0x5]
- cmp r0, r2
- bne _082E6882
- adds r0, r7, r1
- movs r1, 0x1
- mov r3, r10
- lsls r1, r3
- ldrb r2, [r0]
- orrs r1, r2
- strb r1, [r0]
-_082E6882:
- ldrb r2, [r6, 0x4]
- mov r7, r8
- adds r0, r7, r2
- ldrb r0, [r0]
- mov r3, r12
- ldrb r1, [r3, 0x1A]
- ands r0, r1
- cmp r0, r1
- bne _082E697E
- adds r3, 0x21
- adds r2, r3, r2
- ldrb r0, [r2]
- adds r0, 0x1
- movs r1, 0x3
- ands r0, r1
- movs r1, 0
- strb r0, [r2]
- ldrb r0, [r6, 0x4]
- add r0, r8
- strb r1, [r0]
- mov r7, r12
- ldrh r1, [r7]
- ldr r2, _082E68E4
- adds r0, r1, r2
- lsls r0, 16
- lsrs r0, 16
- adds r5, r3, 0
- cmp r0, 0x1
- bhi _082E6970
- ldr r0, _082E68DC
- cmp r1, r0
- bne _082E68E8
- ldrb r1, [r6, 0x4]
- lsls r1, 2
- subs r3, 0x1D
- adds r1, r3, r1
- ldrh r2, [r7, 0x2E]
- ldr r0, [r1]
- adds r0, r2
- str r0, [r1]
- b _082E68FE
- .align 2, 0
-_082E68D4: .4byte 0x03007880
-_082E68D8: .4byte 0x00008022
-_082E68DC: .4byte 0x00008021
-_082E68E0: .4byte 0x00008023
-_082E68E4: .4byte 0x00007fdf
-_082E68E8:
- ldrb r2, [r6, 0x4]
- lsls r2, 2
- mov r3, r12
- adds r3, 0x4
- adds r2, r3, r2
- mov r7, r12
- ldrh r1, [r7, 0x2E]
- lsls r1, 2
- ldr r0, [r2]
- adds r0, r1
- str r0, [r2]
-_082E68FE:
- mov r0, r12
- ldrh r1, [r0, 0x2E]
- ldr r0, [r0, 0x14]
- subs r0, r1
- mov r1, r12
- str r0, [r1, 0x14]
- cmp r0, 0
- beq _082E6912
- cmp r0, 0
- bge _082E697E
-_082E6912:
- mov r0, r12
- adds r0, 0x20
- movs r2, 0
- strb r2, [r0]
- mov r7, r12
- ldrh r1, [r7]
- ldr r0, _082E6954
- cmp r1, r0
- bne _082E695C
- movs r4, 0
-_082E6926:
- adds r0, r5, r4
- movs r1, 0x1
- strb r1, [r0]
- lsls r1, r4, 2
- adds r1, r3, r1
- mov r2, r12
- ldrh r0, [r2, 0x2E]
- adds r2, r0, 0
- muls r2, r4
- mov r7, r12
- ldr r0, [r7, 0x28]
- adds r0, r2
- str r0, [r1]
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x3
- bls _082E6926
- ldr r0, [r7, 0x30]
- str r0, [r7, 0x14]
- ldr r0, _082E6958
- strh r0, [r7]
- b _082E697E
- .align 2, 0
-_082E6954: .4byte 0x00008021
-_082E6958: .4byte 0x00008022
-_082E695C:
- strb r2, [r5]
- mov r0, r12
- str r2, [r0, 0x14]
- ldr r0, _082E696C
- mov r1, r12
- strh r0, [r1]
- b _082E697E
- .align 2, 0
-_082E696C: .4byte 0x00008023
-_082E6970:
- lsls r1, 16
- ldr r0, _082E69E0
- cmp r1, r0
- bne _082E697E
- ldr r0, _082E69E4
- mov r2, r12
- strh r0, [r2]
-_082E697E:
- mov r3, r12
- ldrh r0, [r3]
- cmp r0, r9
- bne _082E69A8
- ldrb r2, [r6, 0x4]
- mov r0, r12
- adds r0, 0x21
- adds r0, r2
- ldrb r0, [r0]
- ldr r7, [sp]
- cmp r0, r7
- bne _082E69A8
- mov r1, r8
- adds r0, r1, r2
- ldrb r0, [r0]
- mov r2, r10
- asrs r0, r2
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _082E69CE
-_082E69A8:
- ldr r4, _082E69E8
- ldrh r2, [r4]
- movs r0, 0
- strh r0, [r4]
- ldr r0, _082E69EC
- ldr r3, [r0]
- movs r0, 0x10
- mov r7, r10
- lsls r0, r7
- ldrb r1, [r3, 0x2]
- orrs r0, r1
- movs r1, 0
- strb r0, [r3, 0x2]
- lsls r0, r7, 2
- ldr r3, _082E69F0
- adds r0, r3
- ldr r0, [r0]
- strh r1, [r0, 0x2]
- strh r2, [r4]
-_082E69CE:
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_082E69E0: .4byte 0x80230000
-_082E69E4: .4byte 0x00008020
-_082E69E8: .4byte 0x04000208
-_082E69EC: .4byte 0x03007894
-_082E69F0: .4byte 0x03007880
- thumb_func_end rfu_STC_NI_receive_Sender
-
- thumb_func_start rfu_STC_NI_receive_Receiver
-rfu_STC_NI_receive_Receiver: @ 82E69F4
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- adds r6, r1, 0
- str r2, [sp]
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- movs r7, 0
- ldr r1, _082E6A54
- lsls r0, 2
- adds r0, r1
- ldr r4, [r0]
- adds r5, r4, 0
- adds r5, 0x34
- ldrh r0, [r4, 0x34]
- mov r9, r0
- ldrb r0, [r6, 0x4]
- adds r3, r4, 0
- adds r3, 0x55
- adds r0, r3, r0
- ldrb r0, [r0]
- mov r10, r0
- ldrb r0, [r6, 0x2]
- cmp r0, 0x3
- bne _082E6A64
- ldr r0, _082E6A58
- ldr r2, [r0]
- movs r0, 0x1
- mov r1, r8
- lsls r0, r1
- ldrb r1, [r2, 0x1]
- orrs r0, r1
- strb r0, [r2, 0x1]
- ldrh r1, [r4, 0x34]
- ldr r0, _082E6A5C
- cmp r1, r0
- bne _082E6AAA
- adds r0, r4, 0
- adds r0, 0x54
- strb r7, [r0]
- strb r7, [r3]
- ldr r0, _082E6A60
- strh r0, [r4, 0x34]
- b _082E6AAA
- .align 2, 0
-_082E6A54: .4byte 0x03007880
-_082E6A58: .4byte 0x03007894
-_082E6A5C: .4byte 0x00008042
-_082E6A60: .4byte 0x00008043
-_082E6A64:
- cmp r0, 0x2
- bne _082E6A90
- ldr r0, _082E6A88
- cmp r9, r0
- bne _082E6A7C
- ldr r0, [r5, 0x14]
- cmp r0, 0
- bne _082E6A7C
- mov r0, r8
- adds r1, r5, 0
- bl rfu_STC_NI_initSlot_asRecvDataEntity
-_082E6A7C:
- ldrh r1, [r5]
- ldr r0, _082E6A8C
- cmp r1, r0
- bne _082E6AAA
- b _082E6AAE
- .align 2, 0
-_082E6A88: .4byte 0x00008041
-_082E6A8C: .4byte 0x00008042
-_082E6A90:
- cmp r0, 0x1
- bne _082E6AAA
- ldr r7, _082E6B5C
- cmp r9, r7
- beq _082E6AAE
- mov r0, r8
- adds r1, r5, 0
- bl rfu_STC_NI_initSlot_asRecvControllData
- ldrh r0, [r4, 0x34]
- cmp r0, r7
- bne _082E6B4A
- movs r7, 0x1
-_082E6AAA:
- cmp r7, 0
- beq _082E6B04
-_082E6AAE:
- ldrb r2, [r6, 0x5]
- ldrb r3, [r6, 0x4]
- adds r4, r5, 0
- adds r4, 0x21
- adds r0, r4, r3
- ldrb r0, [r0]
- adds r0, 0x1
- movs r1, 0x3
- ands r0, r1
- cmp r2, r0
- bne _082E6B04
- ldr r0, _082E6B60
- ldr r0, [r0]
- lsls r1, r3, 2
- adds r1, 0x4
- adds r1, r5, r1
- ldrh r2, [r6, 0x6]
- ldr r3, [r0, 0x4]
- mov r0, sp
- bl _call_via_r3
- ldrh r1, [r5]
- ldr r0, _082E6B64
- cmp r1, r0
- bne _082E6AF4
- ldrb r0, [r6, 0x4]
- lsls r0, 2
- adds r2, r5, 0x4
- adds r2, r0
- ldrh r0, [r5, 0x2E]
- lsls r1, r0, 1
- adds r1, r0
- ldr r0, [r2]
- adds r0, r1
- str r0, [r2]
-_082E6AF4:
- ldrh r1, [r6, 0x6]
- ldr r0, [r5, 0x14]
- subs r0, r1
- str r0, [r5, 0x14]
- ldrb r0, [r6, 0x4]
- adds r0, r4, r0
- ldrb r1, [r6, 0x5]
- strb r1, [r0]
-_082E6B04:
- ldrh r0, [r5, 0x18]
- cmp r0, 0
- bne _082E6B4A
- ldrb r0, [r6, 0x4]
- adds r1, r5, 0
- adds r1, 0x20
- strb r0, [r1]
- ldrh r0, [r5]
- cmp r0, r9
- bne _082E6B2C
- adds r0, r5, 0
- adds r0, 0x21
- ldrb r2, [r6, 0x4]
- adds r0, r2
- ldrb r0, [r0]
- cmp r0, r10
- bne _082E6B2C
- ldrb r6, [r6, 0x5]
- cmp r0, r6
- bne _082E6B4A
-_082E6B2C:
- ldr r3, _082E6B68
- ldrh r2, [r3]
- movs r0, 0
- strh r0, [r3]
- ldr r0, _082E6B6C
- ldr r4, [r0]
- movs r0, 0x1
- mov r1, r8
- lsls r0, r1
- ldrb r1, [r4, 0x2]
- orrs r0, r1
- movs r1, 0
- strb r0, [r4, 0x2]
- strh r1, [r5, 0x2]
- strh r2, [r3]
-_082E6B4A:
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_082E6B5C: .4byte 0x00008041
-_082E6B60: .4byte 0x03007898
-_082E6B64: .4byte 0x00008042
-_082E6B68: .4byte 0x04000208
-_082E6B6C: .4byte 0x03007894
- thumb_func_end rfu_STC_NI_receive_Receiver
-
- thumb_func_start rfu_STC_NI_initSlot_asRecvControllData
-rfu_STC_NI_initSlot_asRecvControllData: @ 82E6B70
- push {r4-r7,lr}
- adds r2, r1, 0
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _082E6B8C
- ldr r3, [r0]
- ldrb r1, [r3]
- mov r12, r0
- cmp r1, 0x1
- bne _082E6B90
- movs r5, 0x3
- adds r1, r3, 0
- adds r1, 0xF
- b _082E6B98
- .align 2, 0
-_082E6B8C: .4byte 0x03007890
-_082E6B90:
- movs r5, 0x2
- adds r0, r4, 0
- adds r0, 0x10
- adds r1, r3, r0
-_082E6B98:
- movs r7, 0x1
- adds r0, r7, 0
- lsls r0, r4
- lsls r0, 24
- lsrs r6, r0, 24
- adds r4, r6, 0
- ldrh r3, [r2]
- cmp r3, 0
- bne _082E6BF6
- ldrb r0, [r1]
- cmp r0, r5
- bcs _082E6BD0
- movs r0, 0x49
- strh r0, [r2]
- ldr r0, _082E6BC8
- strh r0, [r2, 0x18]
- ldr r0, _082E6BCC
- ldr r2, [r0]
- ldrb r1, [r2, 0x4]
- adds r0, r6, 0
- orrs r0, r1
- strb r0, [r2, 0x4]
- b _082E6BF6
- .align 2, 0
-_082E6BC8: .4byte 0x00000702
-_082E6BCC: .4byte 0x03007894
-_082E6BD0:
- strh r3, [r2, 0x18]
- ldrb r0, [r1]
- subs r0, r5
- strb r0, [r1]
- adds r0, r2, 0
- adds r0, 0x2D
- str r0, [r2, 0x4]
- movs r0, 0x7
- str r0, [r2, 0x14]
- strb r7, [r2, 0x1F]
- strh r3, [r2, 0x2E]
- strb r4, [r2, 0x1A]
- ldr r0, _082E6BFC
- strh r0, [r2]
- mov r0, r12
- ldr r1, [r0]
- ldrb r0, [r1, 0x5]
- orrs r4, r0
- strb r4, [r1, 0x5]
-_082E6BF6:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_082E6BFC: .4byte 0x00008041
- thumb_func_end rfu_STC_NI_initSlot_asRecvControllData
-
- thumb_func_start rfu_STC_NI_initSlot_asRecvDataEntity
-rfu_STC_NI_initSlot_asRecvDataEntity: @ 82E6C00
- push {r4-r7,lr}
- adds r4, r1, 0
- lsls r0, 24
- lsrs r5, r0, 24
- adds r0, r4, 0
- adds r0, 0x2D
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _082E6C24
- ldr r0, _082E6C20
- lsls r1, r5, 5
- adds r1, 0x14
- ldr r0, [r0]
- adds r0, r1
- adds r0, 0x4
- b _082E6C7A
- .align 2, 0
-_082E6C20: .4byte 0x03007890
-_082E6C24:
- ldr r1, _082E6C68
- lsls r0, r5, 2
- adds r0, r1
- ldr r2, [r0]
- ldr r1, [r4, 0x30]
- ldr r0, [r2, 0x6C]
- cmp r1, r0
- bls _082E6C78
- movs r1, 0x80
- lsls r1, 17
- lsls r1, r5
- lsrs r1, 24
- ldr r0, _082E6C6C
- ldr r3, [r0]
- ldrb r2, [r3, 0x4]
- adds r0, r1, 0
- orrs r0, r2
- strb r0, [r3, 0x4]
- ldr r0, _082E6C70
- ldr r2, [r0]
- ldrb r0, [r2, 0x5]
- bics r0, r1
- strb r0, [r2, 0x5]
- ldr r0, _082E6C74
- strh r0, [r4, 0x18]
- movs r0, 0x47
- strh r0, [r4]
- adds r0, r5, 0
- movs r1, 0x1
- adds r2, r4, 0
- bl rfu_STC_releaseFrame
- b _082E6CAC
- .align 2, 0
-_082E6C68: .4byte 0x03007880
-_082E6C6C: .4byte 0x03007894
-_082E6C70: .4byte 0x03007890
-_082E6C74: .4byte 0x00000701
-_082E6C78:
- ldr r0, [r2, 0x68]
-_082E6C7A:
- str r0, [r4, 0x4]
- movs r3, 0
- adds r6, r4, 0
- adds r6, 0x21
- movs r7, 0
- adds r5, r4, 0x4
-_082E6C86:
- adds r0, r6, r3
- strb r7, [r0]
- lsls r1, r3, 2
- adds r1, r5, r1
- ldrh r0, [r4, 0x2E]
- adds r2, r0, 0
- muls r2, r3
- ldr r0, [r4, 0x4]
- adds r0, r2
- str r0, [r1]
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0x3
- bls _082E6C86
- ldr r0, [r4, 0x30]
- str r0, [r4, 0x14]
- ldr r0, _082E6CB4
- strh r0, [r4]
-_082E6CAC:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_082E6CB4: .4byte 0x00008042
- thumb_func_end rfu_STC_NI_initSlot_asRecvDataEntity
-
- thumb_func_start rfu_NI_checkCommFailCounter
-rfu_NI_checkCommFailCounter: @ 82E6CB8
- push {r4-r7,lr}
- ldr r2, _082E6D44
- ldr r0, [r2]
- ldrb r1, [r0, 0x4]
- ldrb r0, [r0, 0x5]
- orrs r0, r1
- cmp r0, 0
- beq _082E6D3E
- ldr r1, _082E6D48
- ldrh r0, [r1]
- mov r12, r0
- movs r0, 0
- strh r0, [r1]
- ldr r1, _082E6D4C
- ldr r0, [r1]
- ldrb r0, [r0, 0x2]
- lsrs r7, r0, 4
- movs r3, 0
- adds r6, r1, 0
- adds r5, r2, 0
- ldr r4, _082E6D50
-_082E6CE2:
- movs r0, 0x80
- lsls r0, 17
- lsls r0, r3
- lsrs r2, r0, 24
- ldr r0, [r5]
- ldrb r0, [r0, 0x4]
- ands r0, r2
- cmp r0, 0
- beq _082E6D0A
- ldr r0, [r6]
- ldrb r0, [r0, 0x2]
- ands r0, r2
- cmp r0, 0
- bne _082E6D0A
- lsls r0, r3, 2
- adds r0, r4
- ldr r1, [r0]
- ldrh r0, [r1, 0x2]
- adds r0, 0x1
- strh r0, [r1, 0x2]
-_082E6D0A:
- ldr r0, [r5]
- ldrb r0, [r0, 0x5]
- ands r0, r2
- cmp r0, 0
- beq _082E6D28
- adds r0, r7, 0
- ands r0, r2
- cmp r0, 0
- bne _082E6D28
- lsls r0, r3, 2
- adds r0, r4
- ldr r1, [r0]
- ldrh r0, [r1, 0x36]
- adds r0, 0x1
- strh r0, [r1, 0x36]
-_082E6D28:
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0x3
- bls _082E6CE2
- ldr r0, [r6]
- movs r1, 0
- strb r1, [r0, 0x2]
- ldr r0, _082E6D48
- mov r1, r12
- strh r1, [r0]
-_082E6D3E:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_082E6D44: .4byte 0x03007890
-_082E6D48: .4byte 0x04000208
-_082E6D4C: .4byte 0x03007894
-_082E6D50: .4byte 0x03007880
- thumb_func_end rfu_NI_checkCommFailCounter
-
- thumb_func_start rfu_REQ_noise
-rfu_REQ_noise: @ 82E6D54
- push {lr}
- ldr r0, _082E6D68
- bl STWI_set_Callback_M
- movs r0, 0x1
- movs r1, 0
- bl STWI_send_TestModeREQ
- pop {r0}
- bx r0
- .align 2, 0
-_082E6D68: .4byte rfu_STC_REQ_callback + 1
- thumb_func_end rfu_REQ_noise
-
- thumb_func_start sub_82E6D6C
-sub_82E6D6C: @ 82E6D6C
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, _082E6D84
- ldrh r0, [r0]
- cmp r0, 0
- bne _082E6D88
- movs r0, 0x1
- negs r0, r0
- b _082E6E08
- .align 2, 0
-_082E6D84: .4byte 0x04000208
-_082E6D88:
- ldr r0, _082E6DB4
- ldrh r0, [r0]
- mov r8, r0
- ldr r4, _082E6DB8
- ldr r1, [r4]
- movs r0, 0xA
- str r0, [r1]
- ldr r0, _082E6DBC
- bl STWI_set_Callback_ID
- bl sub_82E6E20
- ldr r0, [r4]
- ldrb r0, [r0, 0xA]
- lsls r0, 2
- ldr r1, _082E6DC0
- adds r4, r0, r1
- lsls r0, r5, 27
- lsrs r5, r0, 24
- movs r7, 0
- b _082E6DD6
- .align 2, 0
-_082E6DB4: .4byte 0x04000200
-_082E6DB8: .4byte 0x03007868
-_082E6DBC: .4byte sub_82E6F88 + 1
-_082E6DC0: .4byte 0x04000100
-_082E6DC4:
- strh r6, [r4, 0x2]
- strh r6, [r4]
- movs r0, 0x83
- strh r0, [r4, 0x2]
-_082E6DCC:
- ldrh r0, [r4]
- cmp r0, 0x1F
- bls _082E6DCC
- strh r7, [r4, 0x2]
- strh r7, [r4]
-_082E6DD6:
- subs r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0xFF
- beq _082E6DEA
- bl sub_82E6E94
- adds r6, r0, 0
- cmp r6, 0
- beq _082E6DC4
-_082E6DEA:
- ldr r1, _082E6E14
- movs r0, 0
- strh r0, [r1]
- ldr r0, _082E6E18
- mov r2, r8
- strh r2, [r0]
- movs r0, 0x1
- strh r0, [r1]
- ldr r0, _082E6E1C
- ldr r1, [r0]
- movs r0, 0
- str r0, [r1]
- bl STWI_set_Callback_ID
- adds r0, r6, 0
-_082E6E08:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_082E6E14: .4byte 0x04000208
-_082E6E18: .4byte 0x04000200
-_082E6E1C: .4byte 0x03007868
- thumb_func_end sub_82E6D6C
-
- thumb_func_start sub_82E6E20
-sub_82E6E20: @ 82E6E20
- push {r4,r5,lr}
- sub sp, 0x4
- ldr r3, _082E6E78
- movs r4, 0
- strh r4, [r3]
- ldr r2, _082E6E7C
- ldr r0, _082E6E80
- ldr r0, [r0]
- movs r1, 0x8
- ldrb r0, [r0, 0xA]
- lsls r1, r0
- movs r5, 0x80
- orrs r1, r5
- ldrh r0, [r2]
- bics r0, r1
- strh r0, [r2]
- movs r0, 0x1
- strh r0, [r3]
- ldr r0, _082E6E84
- strh r4, [r0]
- subs r2, 0xD8
- movs r1, 0x80
- lsls r1, 5
- adds r0, r1, 0
- strh r0, [r2]
- ldrh r0, [r2]
- movs r3, 0x81
- lsls r3, 7
- adds r1, r3, 0
- orrs r0, r1
- strh r0, [r2]
- movs r0, 0
- str r0, [sp]
- ldr r1, _082E6E88
- ldr r2, _082E6E8C
- mov r0, sp
- bl CpuSet
- ldr r0, _082E6E90
- strh r5, [r0]
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_082E6E78: .4byte 0x04000208
-_082E6E7C: .4byte 0x04000200
-_082E6E80: .4byte 0x03007868
-_082E6E84: .4byte 0x04000134
-_082E6E88: .4byte 0x030078a0
-_082E6E8C: .4byte 0x05000003
-_082E6E90: .4byte 0x04000202
- thumb_func_end sub_82E6E20
-
- thumb_func_start sub_82E6E94
-sub_82E6E94: @ 82E6E94
- push {r4-r7,lr}
- ldr r0, _082E6EA8
- ldrb r1, [r0, 0x1]
- mov r12, r1
- adds r7, r0, 0
- cmp r1, 0
- beq _082E6EAC
- cmp r1, 0x1
- beq _082E6EE4
- b _082E6F7C
- .align 2, 0
-_082E6EA8: .4byte 0x030078a0
-_082E6EAC:
- movs r6, 0x1
- strb r6, [r7]
- ldr r3, _082E6ED8
- ldrh r0, [r3]
- movs r5, 0x1
- orrs r0, r5
- strh r0, [r3]
- ldr r4, _082E6EDC
- mov r0, r12
- strh r0, [r4]
- ldr r2, _082E6EE0
- ldrh r0, [r2]
- movs r1, 0x80
- orrs r0, r1
- strh r0, [r2]
- strh r6, [r4]
- strb r5, [r7, 0x1]
- ldrb r0, [r3]
- orrs r0, r1
- strb r0, [r3]
- b _082E6F80
- .align 2, 0
-_082E6ED8: .4byte 0x04000128
-_082E6EDC: .4byte 0x04000208
-_082E6EE0: .4byte 0x04000200
-_082E6EE4:
- ldrh r0, [r7, 0xA]
- cmp r0, 0
- bne _082E6F78
- ldrb r0, [r7]
- cmp r0, 0x1
- bne _082E6F14
- ldrh r0, [r7, 0x2]
- cmp r0, 0
- bne _082E6F80
- ldr r3, _082E6F0C
- strh r0, [r3]
- ldr r2, _082E6F10
- ldrh r0, [r2]
- movs r1, 0x80
- orrs r0, r1
- strh r0, [r2]
- mov r1, r12
- strh r1, [r3]
- b _082E6F80
- .align 2, 0
-_082E6F0C: .4byte 0x04000208
-_082E6F10: .4byte 0x04000128
-_082E6F14:
- ldrh r1, [r7, 0x4]
- ldr r0, _082E6F60
- cmp r1, r0
- beq _082E6F80
- ldrh r6, [r7, 0x2]
- cmp r6, 0
- bne _082E6F80
- ldr r4, _082E6F64
- strh r6, [r4]
- ldr r3, _082E6F68
- ldrh r1, [r3]
- ldr r0, _082E6F6C
- ands r0, r1
- strh r0, [r3]
- mov r7, r12
- strh r7, [r4]
- ldr r2, _082E6F70
- strh r6, [r2]
- movs r1, 0x80
- lsls r1, 5
- adds r0, r1, 0
- strh r0, [r2]
- ldr r0, _082E6F74
- movs r5, 0x80
- strh r5, [r0]
- ldrh r0, [r2]
- movs r7, 0x81
- lsls r7, 7
- adds r1, r7, 0
- orrs r0, r1
- strh r0, [r2]
- strh r6, [r4]
- ldrh r0, [r3]
- orrs r0, r5
- strh r0, [r3]
- mov r0, r12
- strh r0, [r4]
- b _082E6F80
- .align 2, 0
-_082E6F60: .4byte 0x00008001
-_082E6F64: .4byte 0x04000208
-_082E6F68: .4byte 0x04000200
-_082E6F6C: .4byte 0x0000ff7f
-_082E6F70: .4byte 0x04000128
-_082E6F74: .4byte 0x04000202
-_082E6F78:
- movs r0, 0x2
- strb r0, [r7, 0x1]
-_082E6F7C:
- ldrh r0, [r7, 0xA]
- b _082E6F82
-_082E6F80:
- movs r0, 0
-_082E6F82:
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_82E6E94
-
- thumb_func_start sub_82E6F88
-sub_82E6F88: @ 82E6F88
- push {r4,r5,lr}
- ldr r0, _082E6FD0
- ldr r5, [r0]
- ldr r0, _082E6FD4
- ldrb r1, [r0]
- adds r4, r0, 0
- cmp r1, 0x1
- beq sub_82E6FA2
- ldr r0, _082E6FD8
- ldrh r1, [r0]
- movs r2, 0x80
- orrs r1, r2
- strh r1, [r0]
- thumb_func_end sub_82E6F88
-
- non_word_aligned_thumb_func_start sub_82E6FA2
-sub_82E6FA2: @ 82E6FA2
- ldrb r2, [r4]
- lsls r1, r2, 4
- adds r0, r5, 0
- lsls r0, r1
- lsrs r1, r0, 16
- movs r0, 0x1
- subs r0, r2
- lsls r0, 4
- lsls r5, r0
- adds r0, r5, 0
- lsrs r5, r0, 16
- ldrh r0, [r4, 0xA]
- cmp r0, 0
- bne _082E6FF6
- ldrh r2, [r4, 0x6]
- cmp r1, r2
- bne _082E6FF4
- ldrh r3, [r4, 0x2]
- cmp r3, 0x3
- bls _082E6FDC
- strh r5, [r4, 0xA]
- b _082E6FF6
- .align 2, 0
-_082E6FD0: .4byte 0x04000120
-_082E6FD4: .4byte 0x030078a0
-_082E6FD8: .4byte 0x04000128
-_082E6FDC:
- ldrh r0, [r4, 0x4]
- mvns r0, r0
- lsls r0, 16
- lsrs r0, 16
- cmp r1, r0
- bne _082E6FF6
- mvns r0, r2
- lsls r0, 16
- lsrs r0, 16
- cmp r5, r0
- bne _082E6FF6
- adds r0, r3, 0x1
-_082E6FF4:
- strh r0, [r4, 0x2]
-_082E6FF6:
- ldrh r0, [r4, 0x2]
- cmp r0, 0x3
- bhi _082E700C
- lsls r0, 1
- ldr r1, _082E7008
- adds r0, r1
- ldrh r0, [r0]
- b _082E700E
- .align 2, 0
-_082E7008: .4byte 0x089a3258
-_082E700C:
- ldr r0, _082E7064
-_082E700E:
- strh r0, [r4, 0x4]
- mvns r0, r5
- strh r0, [r4, 0x6]
- ldr r3, _082E7068
- ldrh r2, [r4, 0x4]
- ldrb r1, [r4]
- movs r0, 0x1
- subs r0, r1
- lsls r0, 4
- lsls r2, r0
- ldrh r0, [r4, 0x6]
- lsls r1, 4
- lsls r0, r1
- adds r2, r0
- str r2, [r3]
- ldrb r0, [r4]
- cmp r0, 0x1
- bne _082E705C
- ldrh r0, [r4, 0x2]
- cmp r0, 0
- bne _082E703E
- ldr r0, _082E706C
- cmp r5, r0
- bne _082E705C
-_082E703E:
- movs r0, 0
- ldr r1, _082E7070
-_082E7042:
- adds r0, 0x1
- lsls r0, 16
- lsrs r0, 16
- cmp r0, r1
- bls _082E7042
- ldrh r0, [r4, 0xA]
- cmp r0, 0
- bne _082E705C
- ldr r0, _082E7074
- ldrh r1, [r0]
- movs r2, 0x80
- orrs r1, r2
- strh r1, [r0]
-_082E705C:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_082E7064: .4byte 0x00008001
-_082E7068: .4byte 0x04000120
-_082E706C: .4byte 0x0000494e
-_082E7070: .4byte 0x00000257
-_082E7074: .4byte 0x04000128
- thumb_func_end sub_82E6FA2
-
- thumb_func_start ArcTan2
-ArcTan2: @ 82E7078
- swi 0xA
- bx lr
- thumb_func_end ArcTan2
-
- thumb_func_start BgAffineSet
-BgAffineSet: @ 82E707C
- swi 0xE
- bx lr
- thumb_func_end BgAffineSet
-
- thumb_func_start CpuFastSet
-CpuFastSet: @ 82E7080
- swi 0xC
- bx lr
- thumb_func_end CpuFastSet
-
- thumb_func_start CpuSet
-CpuSet: @ 82E7084
- swi 0xB
- bx lr
- thumb_func_end CpuSet
-
- thumb_func_start Div
-Div: @ 82E7088
- swi 0x6
- bx lr
- thumb_func_end Div
-
- thumb_func_start LZ77UnCompVram
-LZ77UnCompVram: @ 82E708C
- swi 0x12
- bx lr
- thumb_func_end LZ77UnCompVram
-
- thumb_func_start LZ77UnCompWram
-LZ77UnCompWram: @ 82E7090
- swi 0x11
- bx lr
- thumb_func_end LZ77UnCompWram
-
- thumb_func_start MultiBoot
-MultiBoot: @ 82E7094
- movs r1, 0x1
- swi 0x25
- bx lr
- thumb_func_end MultiBoot
-
- thumb_func_start ObjAffineSet
-ObjAffineSet: @ 82E709A
-_082E709C:
- swi 0xF
- bx lr
- thumb_func_end ObjAffineSet
-
- thumb_func_start RLUnCompVram
-RLUnCompVram: @ 82E70A0
- swi 0x15
- bx lr
- thumb_func_end RLUnCompVram
-
- thumb_func_start RLUnCompWram
-RLUnCompWram: @ 82E70A4
- swi 0x14
- bx lr
- thumb_func_end RLUnCompWram
-
- thumb_func_start RegisterRamReset
-RegisterRamReset: @ 82E70A8
- swi 0x1
- bx lr
- thumb_func_end RegisterRamReset
-
- thumb_func_start SoftReset
-SoftReset: @ 82E70AC
- ldr r3, _082E70BC
- movs r2, 0
- strb r2, [r3]
- ldr r1, _082E70C0
- mov sp, r1
- swi 0x1
- swi 0
- .align 2, 0
-_082E70BC: .4byte 0x04000208
-_082E70C0: .4byte 0x03007f00
- thumb_func_end SoftReset
-
- thumb_func_start Sqrt
-Sqrt: @ 82E70C4
- swi 0x8
- bx lr
- thumb_func_end Sqrt
-
- thumb_func_start VBlankIntrWait
-VBlankIntrWait: @ 82E70C8
- movs r2, 0
- swi 0x5
- bx lr
- thumb_func_end VBlankIntrWait
-
- thumb_func_start _call_via_r0
-_call_via_r0: @ 82E70D0
- bx r0
- mov r8, r8
- thumb_func_end _call_via_r0
-
- thumb_func_start _call_via_r1
-_call_via_r1: @ 82E70D4
- bx r1
- mov r8, r8
- thumb_func_end _call_via_r1
-
- thumb_func_start _call_via_r2
-_call_via_r2: @ 82E70D8
- bx r2
- mov r8, r8
- thumb_func_end _call_via_r2
-
- thumb_func_start _call_via_r3
-_call_via_r3: @ 82E70DC
- bx r3
- mov r8, r8
- thumb_func_end _call_via_r3
-
- thumb_func_start _call_via_r4
-_call_via_r4: @ 82E70E0
- bx r4
- mov r8, r8
- thumb_func_end _call_via_r4
-
- thumb_func_start _call_via_r5
-_call_via_r5: @ 82E70E4
- bx r5
- mov r8, r8
- thumb_func_end _call_via_r5
-
- thumb_func_start _call_via_r6
-_call_via_r6: @ 82E70E8
- bx r6
- mov r8, r8
- thumb_func_end _call_via_r6
-
- thumb_func_start _call_via_r7
-_call_via_r7: @ 82E70EC
- bx r7
- mov r8, r8
- thumb_func_end _call_via_r7
-
- thumb_func_start _call_via_r8
-_call_via_r8: @ 82E70F0
- bx r8
- mov r8, r8
- thumb_func_end _call_via_r8
-
- thumb_func_start _call_via_r9
-_call_via_r9: @ 82E70F4
- bx r9
- mov r8, r8
- thumb_func_end _call_via_r9
-
- thumb_func_start _call_via_sl
-_call_via_sl: @ 82E70F8
- bx r10
- mov r8, r8
- thumb_func_end _call_via_sl
-
- thumb_func_start _call_via_fp
-_call_via_fp: @ 82E70FC
- bx r11
- mov r8, r8
- thumb_func_end _call_via_fp
-
- thumb_func_start _call_via_ip
-_call_via_ip: @ 82E7100
- bx r12
- mov r8, r8
- thumb_func_end _call_via_ip
-
- thumb_func_start _call_via_sp
-_call_via_sp: @ 82E7104
- bx sp
- mov r8, r8
- thumb_func_end _call_via_sp
-
- thumb_func_start _call_via_lr
-_call_via_lr: @ 82E7108
- bx lr
- mov r8, r8
- thumb_func_end _call_via_lr
-
- thumb_func_start __divdi3
-__divdi3: @ 82E710C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x34
- movs r4, 0
- str r4, [sp]
- adds r5, r1, 0
- adds r4, r0, 0
- cmp r5, 0
- bge _082E713C
- ldr r0, [sp]
- mvns r0, r0
- str r0, [sp]
- negs r0, r4
- adds r6, r0, 0
- negs r1, r5
- cmp r0, 0
- beq _082E7136
- subs r1, 0x1
-_082E7136:
- adds r7, r1, 0
- adds r5, r7, 0
- adds r4, r6, 0
-_082E713C:
- cmp r3, 0
- bge _082E7158
- ldr r1, [sp]
- mvns r1, r1
- str r1, [sp]
- negs r0, r2
- str r0, [sp, 0x4]
- negs r2, r3
- cmp r0, 0
- beq _082E7152
- subs r2, 0x1
-_082E7152:
- str r2, [sp, 0x8]
- ldr r2, [sp, 0x4]
- ldr r3, [sp, 0x8]
-_082E7158:
- adds r7, r2, 0
- adds r6, r3, 0
- mov r10, r4
- mov r8, r5
- cmp r6, 0
- beq _082E7166
- b _082E73B4
-_082E7166:
- cmp r7, r8
- bls _082E7240
- ldr r0, _082E717C
- cmp r7, r0
- bhi _082E7180
- movs r1, 0
- cmp r7, 0xFF
- bls _082E718A
- movs r1, 0x8
- b _082E718A
- .align 2, 0
-_082E717C: .4byte 0x0000ffff
-_082E7180:
- ldr r0, _082E7234
- movs r1, 0x18
- cmp r7, r0
- bhi _082E718A
- movs r1, 0x10
-_082E718A:
- ldr r0, _082E7238
- lsrs r2, r1
- adds r0, r2, r0
- ldrb r0, [r0]
- adds r0, r1
- movs r1, 0x20
- subs r2, r1, r0
- cmp r2, 0
- beq _082E71B2
- lsls r7, r2
- mov r3, r8
- lsls r3, r2
- subs r1, r2
- mov r0, r10
- lsrs r0, r1
- orrs r3, r0
- mov r8, r3
- mov r4, r10
- lsls r4, r2
- mov r10, r4
-_082E71B2:
- lsrs r0, r7, 16
- mov r9, r0
- ldr r1, _082E723C
- ands r1, r7
- str r1, [sp, 0xC]
- mov r0, r8
- mov r1, r9
- bl __umodsi3
- adds r4, r0, 0
- mov r0, r8
- mov r1, r9
- bl __udivsi3
- adds r6, r0, 0
- ldr r3, [sp, 0xC]
- adds r2, r6, 0
- muls r2, r3
- lsls r4, 16
- mov r1, r10
- lsrs r0, r1, 16
- orrs r4, r0
- cmp r4, r2
- bcs _082E71F2
- subs r6, 0x1
- adds r4, r7
- cmp r4, r7
- bcc _082E71F2
- cmp r4, r2
- bcs _082E71F2
- subs r6, 0x1
- adds r4, r7
-_082E71F2:
- subs r4, r2
- adds r0, r4, 0
- mov r1, r9
- bl __umodsi3
- adds r5, r0, 0
- adds r0, r4, 0
- mov r1, r9
- bl __udivsi3
- adds r1, r0, 0
- ldr r3, [sp, 0xC]
- adds r2, r1, 0
- muls r2, r3
- lsls r5, 16
- ldr r0, _082E723C
- mov r4, r10
- ands r4, r0
- orrs r5, r4
- cmp r5, r2
- bcs _082E722A
- subs r1, 0x1
- adds r5, r7
- cmp r5, r7
- bcc _082E722A
- cmp r5, r2
- bcs _082E722A
- subs r1, 0x1
-_082E722A:
- lsls r6, 16
- orrs r6, r1
- movs r0, 0
- str r0, [sp, 0x10]
- b _082E750A
- .align 2, 0
-_082E7234: .4byte 0x00ffffff
-_082E7238: .4byte 0x089a3270
-_082E723C: .4byte 0x0000ffff
-_082E7240:
- cmp r2, 0
- bne _082E724E
- movs r0, 0x1
- movs r1, 0
- bl __udivsi3
- adds r7, r0, 0
-_082E724E:
- adds r1, r7, 0
- ldr r0, _082E7260
- cmp r7, r0
- bhi _082E7264
- movs r2, 0
- cmp r7, 0xFF
- bls _082E726E
- movs r2, 0x8
- b _082E726E
- .align 2, 0
-_082E7260: .4byte 0x0000ffff
-_082E7264:
- ldr r0, _082E728C
- movs r2, 0x18
- cmp r7, r0
- bhi _082E726E
- movs r2, 0x10
-_082E726E:
- ldr r0, _082E7290
- lsrs r1, r2
- adds r0, r1, r0
- ldrb r0, [r0]
- adds r0, r2
- movs r1, 0x20
- subs r2, r1, r0
- cmp r2, 0
- bne _082E7294
- mov r1, r8
- subs r1, r7
- mov r8, r1
- movs r2, 0x1
- str r2, [sp, 0x10]
- b _082E7332
- .align 2, 0
-_082E728C: .4byte 0x00ffffff
-_082E7290: .4byte 0x089a3270
-_082E7294:
- subs r1, r2
- lsls r7, r2
- mov r5, r8
- lsrs r5, r1
- mov r3, r8
- lsls r3, r2
- mov r0, r10
- lsrs r0, r1
- orrs r3, r0
- mov r8, r3
- mov r4, r10
- lsls r4, r2
- mov r10, r4
- lsrs r0, r7, 16
- mov r9, r0
- ldr r1, _082E73B0
- ands r1, r7
- str r1, [sp, 0x14]
- adds r0, r5, 0
- mov r1, r9
- bl __umodsi3
- adds r4, r0, 0
- adds r0, r5, 0
- mov r1, r9
- bl __udivsi3
- adds r6, r0, 0
- ldr r2, [sp, 0x14]
- adds r1, r6, 0
- muls r1, r2
- lsls r4, 16
- mov r3, r8
- lsrs r0, r3, 16
- orrs r4, r0
- cmp r4, r1
- bcs _082E72EE
- subs r6, 0x1
- adds r4, r7
- cmp r4, r7
- bcc _082E72EE
- cmp r4, r1
- bcs _082E72EE
- subs r6, 0x1
- adds r4, r7
-_082E72EE:
- subs r4, r1
- adds r0, r4, 0
- mov r1, r9
- bl __umodsi3
- adds r5, r0, 0
- adds r0, r4, 0
- mov r1, r9
- bl __udivsi3
- adds r2, r0, 0
- ldr r4, [sp, 0x14]
- adds r1, r2, 0
- muls r1, r4
- lsls r5, 16
- ldr r0, _082E73B0
- mov r3, r8
- ands r3, r0
- orrs r5, r3
- cmp r5, r1
- bcs _082E7328
- subs r2, 0x1
- adds r5, r7
- cmp r5, r7
- bcc _082E7328
- cmp r5, r1
- bcs _082E7328
- subs r2, 0x1
- adds r5, r7
-_082E7328:
- lsls r6, 16
- orrs r6, r2
- str r6, [sp, 0x10]
- subs r1, r5, r1
- mov r8, r1
-_082E7332:
- lsrs r4, r7, 16
- mov r9, r4
- ldr r0, _082E73B0
- ands r0, r7
- str r0, [sp, 0x18]
- mov r0, r8
- mov r1, r9
- bl __umodsi3
- adds r4, r0, 0
- mov r0, r8
- mov r1, r9
- bl __udivsi3
- adds r6, r0, 0
- ldr r1, [sp, 0x18]
- adds r2, r6, 0
- muls r2, r1
- lsls r4, 16
- mov r3, r10
- lsrs r0, r3, 16
- orrs r4, r0
- cmp r4, r2
- bcs _082E7372
- subs r6, 0x1
- adds r4, r7
- cmp r4, r7
- bcc _082E7372
- cmp r4, r2
- bcs _082E7372
- subs r6, 0x1
- adds r4, r7
-_082E7372:
- subs r4, r2
- adds r0, r4, 0
- mov r1, r9
- bl __umodsi3
- adds r5, r0, 0
- adds r0, r4, 0
- mov r1, r9
- bl __udivsi3
- adds r1, r0, 0
- ldr r4, [sp, 0x18]
- adds r2, r1, 0
- muls r2, r4
- lsls r5, 16
- ldr r0, _082E73B0
- mov r3, r10
- ands r3, r0
- orrs r5, r3
- cmp r5, r2
- bcs _082E73AA
- subs r1, 0x1
- adds r5, r7
- cmp r5, r7
- bcc _082E73AA
- cmp r5, r2
- bcs _082E73AA
- subs r1, 0x1
-_082E73AA:
- lsls r6, 16
- orrs r6, r1
- b _082E750A
- .align 2, 0
-_082E73B0: .4byte 0x0000ffff
-_082E73B4:
- cmp r6, r8
- bls _082E73C0
- movs r6, 0
- movs r4, 0
- str r4, [sp, 0x10]
- b _082E750A
-_082E73C0:
- adds r1, r6, 0
- ldr r0, _082E73D4
- cmp r6, r0
- bhi _082E73D8
- movs r2, 0
- cmp r6, 0xFF
- bls _082E73E2
- movs r2, 0x8
- b _082E73E2
- .align 2, 0
-_082E73D4: .4byte 0x0000ffff
-_082E73D8:
- ldr r0, _082E7404
- movs r2, 0x18
- cmp r6, r0
- bhi _082E73E2
- movs r2, 0x10
-_082E73E2:
- ldr r0, _082E7408
- lsrs r1, r2
- adds r0, r1, r0
- ldrb r0, [r0]
- adds r0, r2
- movs r1, 0x20
- subs r2, r1, r0
- cmp r2, 0
- bne _082E7410
- cmp r8, r6
- bhi _082E73FC
- cmp r10, r7
- bcc _082E740C
-_082E73FC:
- movs r6, 0x1
- mov r1, r10
- b _082E7504
- .align 2, 0
-_082E7404: .4byte 0x00ffffff
-_082E7408: .4byte 0x089a3270
-_082E740C:
- movs r6, 0
- b _082E7506
-_082E7410:
- subs r1, r2
- lsls r6, r2
- adds r0, r7, 0
- lsrs r0, r1
- orrs r6, r0
- lsls r7, r2
- mov r5, r8
- lsrs r5, r1
- mov r3, r8
- lsls r3, r2
- mov r0, r10
- lsrs r0, r1
- orrs r3, r0
- mov r8, r3
- mov r4, r10
- lsls r4, r2
- mov r10, r4
- lsrs r0, r6, 16
- mov r9, r0
- ldr r1, _082E753C
- ands r1, r6
- str r1, [sp, 0x1C]
- adds r0, r5, 0
- mov r1, r9
- bl __umodsi3
- adds r4, r0, 0
- adds r0, r5, 0
- mov r1, r9
- bl __udivsi3
- adds r3, r0, 0
- ldr r2, [sp, 0x1C]
- adds r1, r3, 0
- muls r1, r2
- lsls r4, 16
- mov r2, r8
- lsrs r0, r2, 16
- orrs r4, r0
- cmp r4, r1
- bcs _082E7472
- subs r3, 0x1
- adds r4, r6
- cmp r4, r6
- bcc _082E7472
- cmp r4, r1
- bcs _082E7472
- subs r3, 0x1
- adds r4, r6
-_082E7472:
- subs r4, r1
- adds r0, r4, 0
- mov r1, r9
- str r3, [sp, 0x30]
- bl __umodsi3
- adds r5, r0, 0
- adds r0, r4, 0
- mov r1, r9
- bl __udivsi3
- adds r2, r0, 0
- ldr r4, [sp, 0x1C]
- adds r1, r2, 0
- muls r1, r4
- lsls r5, 16
- ldr r0, _082E753C
- mov r4, r8
- ands r4, r0
- orrs r5, r4
- ldr r3, [sp, 0x30]
- cmp r5, r1
- bcs _082E74B0
- subs r2, 0x1
- adds r5, r6
- cmp r5, r6
- bcc _082E74B0
- cmp r5, r1
- bcs _082E74B0
- subs r2, 0x1
- adds r5, r6
-_082E74B0:
- lsls r6, r3, 16
- orrs r6, r2
- subs r1, r5, r1
- mov r8, r1
- ldr r0, _082E753C
- mov r9, r0
- adds r1, r6, 0
- ands r1, r0
- lsrs r3, r6, 16
- adds r0, r7, 0
- mov r2, r9
- ands r0, r2
- lsrs r2, r7, 16
- adds r5, r1, 0
- muls r5, r0
- adds r4, r1, 0
- muls r4, r2
- adds r1, r3, 0
- muls r1, r0
- muls r3, r2
- lsrs r0, r5, 16
- adds r4, r0
- adds r4, r1
- cmp r4, r1
- bcs _082E74E8
- movs r0, 0x80
- lsls r0, 9
- adds r3, r0
-_082E74E8:
- lsrs r0, r4, 16
- adds r3, r0
- mov r1, r9
- ands r4, r1
- lsls r0, r4, 16
- ands r5, r1
- adds r1, r0, r5
- cmp r3, r8
- bhi _082E7502
- cmp r3, r8
- bne _082E7506
- cmp r1, r10
- bls _082E7506
-_082E7502:
- subs r6, 0x1
-_082E7504:
- subs r0, r1, r7
-_082E7506:
- movs r2, 0
- str r2, [sp, 0x10]
-_082E750A:
- str r6, [sp, 0x20]
- ldr r3, [sp, 0x10]
- str r3, [sp, 0x24]
- ldr r1, [sp, 0x20]
- ldr r2, [sp, 0x24]
- ldr r4, [sp]
- cmp r4, 0
- beq _082E752C
- negs r0, r1
- str r0, [sp, 0x28]
- negs r1, r2
- cmp r0, 0
- beq _082E7526
- subs r1, 0x1
-_082E7526:
- str r1, [sp, 0x2C]
- ldr r1, [sp, 0x28]
- ldr r2, [sp, 0x2C]
-_082E752C:
- adds r0, r1, 0
- adds r1, r2, 0
- add sp, 0x34
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7,pc}
- .align 2, 0
-_082E753C: .4byte 0x0000ffff
- thumb_func_end __divdi3
-
- thumb_func_start __divsi3
-__divsi3: @ 82E7540
- cmp r1, 0
- beq _082E75C8
- push {r4}
- adds r4, r0, 0
- eors r4, r1
- mov r12, r4
- movs r3, 0x1
- movs r2, 0
- cmp r1, 0
- bpl _082E7556
- negs r1, r1
-_082E7556:
- cmp r0, 0
- bpl _082E755C
- negs r0, r0
-_082E755C:
- cmp r0, r1
- bcc _082E75BA
- movs r4, 0x1
- lsls r4, 28
-_082E7564:
- cmp r1, r4
- bcs _082E7572
- cmp r1, r0
- bcs _082E7572
- lsls r1, 4
- lsls r3, 4
- b _082E7564
-_082E7572:
- lsls r4, 3
-_082E7574:
- cmp r1, r4
- bcs _082E7582
- cmp r1, r0
- bcs _082E7582
- lsls r1, 1
- lsls r3, 1
- b _082E7574
-_082E7582:
- cmp r0, r1
- bcc _082E758A
- subs r0, r1
- orrs r2, r3
-_082E758A:
- lsrs r4, r1, 1
- cmp r0, r4
- bcc _082E7596
- subs r0, r4
- lsrs r4, r3, 1
- orrs r2, r4
-_082E7596:
- lsrs r4, r1, 2
- cmp r0, r4
- bcc _082E75A2
- subs r0, r4
- lsrs r4, r3, 2
- orrs r2, r4
-_082E75A2:
- lsrs r4, r1, 3
- cmp r0, r4
- bcc _082E75AE
- subs r0, r4
- lsrs r4, r3, 3
- orrs r2, r4
-_082E75AE:
- cmp r0, 0
- beq _082E75BA
- lsrs r3, 4
- beq _082E75BA
- lsrs r1, 4
- b _082E7582
-_082E75BA:
- adds r0, r2, 0
- mov r4, r12
- cmp r4, 0
- bpl _082E75C4
- negs r0, r0
-_082E75C4:
- pop {r4}
- mov pc, lr
-_082E75C8:
- push {lr}
- bl nullsub_1
- movs r0, 0
- pop {pc}
- thumb_func_end __divsi3
-
- thumb_func_start nullsub_1
-nullsub_1: @ 82E75D4
- mov pc, lr
- thumb_func_end nullsub_1
-
- thumb_func_start __fixunsdfsi
-__fixunsdfsi: @ 82E75D8
- push {r4,r5,lr}
- adds r5, r1, 0
- adds r4, r0, 0
- ldr r3, _082E75F8
- ldr r2, _082E75F4
- bl __gedf2
- cmp r0, 0
- bge _082E75FC
- adds r1, r5, 0
- adds r0, r4, 0
- bl __fixdfsi
- b _082E7612
- .align 2, 0
-_082E75F4: .4byte 0x41e00000
-_082E75F8: .4byte 0x00000000
-_082E75FC:
- ldr r3, _082E7618
- ldr r2, _082E7614
- adds r1, r5, 0
- adds r0, r4, 0
- bl __adddf3
- bl __fixdfsi
- movs r1, 0x80
- lsls r1, 24
- adds r0, r1
-_082E7612:
- pop {r4,r5,pc}
- .align 2, 0
-_082E7614: .4byte 0xc1e00000
-_082E7618: .4byte 0x00000000
- thumb_func_end __fixunsdfsi
-
- thumb_func_start __fixunssfsi
-__fixunssfsi: @ 82E761C
- push {r4,lr}
- adds r4, r0, 0
- ldr r1, _082E7634
- bl __gesf2
- cmp r0, 0
- bge _082E7638
- adds r0, r4, 0
- bl __fixsfsi
- b _082E764A
- .align 2, 0
-_082E7634: .4byte 0x4f000000
-_082E7638:
- ldr r1, _082E764C
- adds r0, r4, 0
- bl __addsf3
- bl __fixsfsi
- movs r1, 0x80
- lsls r1, 24
- adds r0, r1
-_082E764A:
- pop {r4,pc}
- .align 2, 0
-_082E764C: .4byte 0xcf000000
- thumb_func_end __fixunssfsi
-
- thumb_func_start __modsi3
-__modsi3: @ 82E7650
- movs r3, 0x1
- cmp r1, 0
- beq _082E7714
- bpl _082E765A
- negs r1, r1
-_082E765A:
- push {r4}
- push {r0}
- cmp r0, 0
- bpl _082E7664
- negs r0, r0
-_082E7664:
- cmp r0, r1
- bcc _082E7708
- movs r4, 0x1
- lsls r4, 28
-_082E766C:
- cmp r1, r4
- bcs _082E767A
- cmp r1, r0
- bcs _082E767A
- lsls r1, 4
- lsls r3, 4
- b _082E766C
-_082E767A:
- lsls r4, 3
-_082E767C:
- cmp r1, r4
- bcs _082E768A
- cmp r1, r0
- bcs _082E768A
- lsls r1, 1
- lsls r3, 1
- b _082E767C
-_082E768A:
- movs r2, 0
- cmp r0, r1
- bcc _082E7692
- subs r0, r1
-_082E7692:
- lsrs r4, r1, 1
- cmp r0, r4
- bcc _082E76A4
- subs r0, r4
- mov r12, r3
- movs r4, 0x1
- rors r3, r4
- orrs r2, r3
- mov r3, r12
-_082E76A4:
- lsrs r4, r1, 2
- cmp r0, r4
- bcc _082E76B6
- subs r0, r4
- mov r12, r3
- movs r4, 0x2
- rors r3, r4
- orrs r2, r3
- mov r3, r12
-_082E76B6:
- lsrs r4, r1, 3
- cmp r0, r4
- bcc _082E76C8
- subs r0, r4
- mov r12, r3
- movs r4, 0x3
- rors r3, r4
- orrs r2, r3
- mov r3, r12
-_082E76C8:
- mov r12, r3
- cmp r0, 0
- beq _082E76D6
- lsrs r3, 4
- beq _082E76D6
- lsrs r1, 4
- b _082E768A
-_082E76D6:
- movs r4, 0xE
- lsls r4, 28
- ands r2, r4
- beq _082E7708
- mov r3, r12
- movs r4, 0x3
- rors r3, r4
- tst r2, r3
- beq _082E76EC
- lsrs r4, r1, 3
- adds r0, r4
-_082E76EC:
- mov r3, r12
- movs r4, 0x2
- rors r3, r4
- tst r2, r3
- beq _082E76FA
- lsrs r4, r1, 2
- adds r0, r4
-_082E76FA:
- mov r3, r12
- movs r4, 0x1
- rors r3, r4
- tst r2, r3
- beq _082E7708
- lsrs r4, r1, 1
- adds r0, r4
-_082E7708:
- pop {r4}
- cmp r4, 0
- bpl _082E7710
- negs r0, r0
-_082E7710:
- pop {r4}
- mov pc, lr
-_082E7714:
- push {lr}
- bl nullsub_1
- movs r0, 0
- pop {pc}
- thumb_func_end __modsi3
-
- thumb_func_start __muldi3
-__muldi3: @ 82E7720
- push {r4-r7,lr}
- sub sp, 0x10
- str r0, [sp]
- str r1, [sp, 0x4]
- str r2, [sp, 0x8]
- str r3, [sp, 0xC]
- ldr r3, [sp]
- ldr r0, _082E778C
- mov r12, r0
- adds r2, r3, 0
- ands r2, r0
- lsrs r3, 16
- ldr r1, [sp, 0x8]
- adds r0, r1, 0
- mov r4, r12
- ands r0, r4
- lsrs r1, 16
- adds r5, r2, 0
- muls r5, r0
- adds r4, r2, 0
- muls r4, r1
- adds r2, r3, 0
- muls r2, r0
- muls r3, r1
- lsrs r0, r5, 16
- adds r4, r0
- adds r4, r2
- cmp r4, r2
- bcs _082E7760
- movs r0, 0x80
- lsls r0, 9
- adds r3, r0
-_082E7760:
- lsrs r0, r4, 16
- adds r7, r3, r0
- mov r1, r12
- ands r4, r1
- lsls r0, r4, 16
- ands r5, r1
- adds r6, r0, 0
- orrs r6, r5
- adds r1, r7, 0
- adds r0, r6, 0
- ldr r3, [sp]
- ldr r4, [sp, 0xC]
- adds r2, r3, 0
- muls r2, r4
- ldr r5, [sp, 0x4]
- ldr r4, [sp, 0x8]
- adds r3, r5, 0
- muls r3, r4
- adds r2, r3
- adds r1, r7, r2
- add sp, 0x10
- pop {r4-r7,pc}
- .align 2, 0
-_082E778C: .4byte 0x0000ffff
- thumb_func_end __muldi3
-
- thumb_func_start __udivdi3
-__udivdi3: @ 82E7790
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x20
- adds r7, r2, 0
- adds r6, r3, 0
- mov r10, r0
- mov r8, r1
- cmp r6, 0
- beq _082E77AA
- b _082E79F8
-_082E77AA:
- cmp r7, r8
- bls _082E7884
- ldr r0, _082E77C0
- cmp r7, r0
- bhi _082E77C4
- movs r1, 0
- cmp r7, 0xFF
- bls _082E77CE
- movs r1, 0x8
- b _082E77CE
- .align 2, 0
-_082E77C0: .4byte 0x0000ffff
-_082E77C4:
- ldr r0, _082E7878
- movs r1, 0x18
- cmp r7, r0
- bhi _082E77CE
- movs r1, 0x10
-_082E77CE:
- ldr r0, _082E787C
- lsrs r2, r1
- adds r0, r2, r0
- ldrb r0, [r0]
- adds r0, r1
- movs r1, 0x20
- subs r2, r1, r0
- cmp r2, 0
- beq _082E77FA
- lsls r7, r2
- mov r0, r8
- lsls r0, r2
- mov r8, r0
- subs r1, r2
- mov r0, r10
- lsrs r0, r1
- mov r1, r8
- orrs r1, r0
- mov r8, r1
- mov r3, r10
- lsls r3, r2
- mov r10, r3
-_082E77FA:
- lsrs r4, r7, 16
- mov r9, r4
- ldr r0, _082E7880
- ands r0, r7
- str r0, [sp]
- mov r0, r8
- mov r1, r9
- bl __umodsi3
- adds r4, r0, 0
- mov r0, r8
- mov r1, r9
- bl __udivsi3
- adds r6, r0, 0
- ldr r1, [sp]
- adds r2, r6, 0
- muls r2, r1
- lsls r4, 16
- mov r3, r10
- lsrs r0, r3, 16
- orrs r4, r0
- cmp r4, r2
- bcs _082E783A
- subs r6, 0x1
- adds r4, r7
- cmp r4, r7
- bcc _082E783A
- cmp r4, r2
- bcs _082E783A
- subs r6, 0x1
- adds r4, r7
-_082E783A:
- subs r4, r2
- adds r0, r4, 0
- mov r1, r9
- bl __umodsi3
- adds r5, r0, 0
- adds r0, r4, 0
- mov r1, r9
- bl __udivsi3
- adds r1, r0, 0
- ldr r4, [sp]
- adds r2, r1, 0
- muls r2, r4
- lsls r5, 16
- ldr r0, _082E7880
- mov r3, r10
- ands r3, r0
- orrs r5, r3
- cmp r5, r2
- bcs _082E7872
- subs r1, 0x1
- adds r5, r7
- cmp r5, r7
- bcc _082E7872
- cmp r5, r2
- bcs _082E7872
- subs r1, 0x1
-_082E7872:
- lsls r6, 16
- orrs r6, r1
- b _082E79FE
- .align 2, 0
-_082E7878: .4byte 0x00ffffff
-_082E787C: .4byte 0x089a3370
-_082E7880: .4byte 0x0000ffff
-_082E7884:
- cmp r2, 0
- bne _082E7892
- movs r0, 0x1
- movs r1, 0
- bl __udivsi3
- adds r7, r0, 0
-_082E7892:
- adds r1, r7, 0
- ldr r0, _082E78A4
- cmp r7, r0
- bhi _082E78A8
- movs r2, 0
- cmp r7, 0xFF
- bls _082E78B2
- movs r2, 0x8
- b _082E78B2
- .align 2, 0
-_082E78A4: .4byte 0x0000ffff
-_082E78A8:
- ldr r0, _082E78D0
- movs r2, 0x18
- cmp r7, r0
- bhi _082E78B2
- movs r2, 0x10
-_082E78B2:
- ldr r0, _082E78D4
- lsrs r1, r2
- adds r0, r1, r0
- ldrb r0, [r0]
- adds r0, r2
- movs r1, 0x20
- subs r2, r1, r0
- cmp r2, 0
- bne _082E78D8
- mov r0, r8
- subs r0, r7
- mov r8, r0
- movs r1, 0x1
- str r1, [sp, 0x4]
- b _082E7976
- .align 2, 0
-_082E78D0: .4byte 0x00ffffff
-_082E78D4: .4byte 0x089a3370
-_082E78D8:
- subs r1, r2
- lsls r7, r2
- mov r5, r8
- lsrs r5, r1
- mov r3, r8
- lsls r3, r2
- mov r0, r10
- lsrs r0, r1
- orrs r3, r0
- mov r8, r3
- mov r4, r10
- lsls r4, r2
- mov r10, r4
- lsrs r0, r7, 16
- mov r9, r0
- ldr r1, _082E79F4
- ands r1, r7
- str r1, [sp, 0x8]
- adds r0, r5, 0
- mov r1, r9
- bl __umodsi3
- adds r4, r0, 0
- adds r0, r5, 0
- mov r1, r9
- bl __udivsi3
- adds r6, r0, 0
- ldr r2, [sp, 0x8]
- adds r1, r6, 0
- muls r1, r2
- lsls r4, 16
- mov r3, r8
- lsrs r0, r3, 16
- orrs r4, r0
- cmp r4, r1
- bcs _082E7932
- subs r6, 0x1
- adds r4, r7
- cmp r4, r7
- bcc _082E7932
- cmp r4, r1
- bcs _082E7932
- subs r6, 0x1
- adds r4, r7
-_082E7932:
- subs r4, r1
- adds r0, r4, 0
- mov r1, r9
- bl __umodsi3
- adds r5, r0, 0
- adds r0, r4, 0
- mov r1, r9
- bl __udivsi3
- adds r2, r0, 0
- ldr r4, [sp, 0x8]
- adds r1, r2, 0
- muls r1, r4
- lsls r5, 16
- ldr r0, _082E79F4
- mov r3, r8
- ands r3, r0
- orrs r5, r3
- cmp r5, r1
- bcs _082E796C
- subs r2, 0x1
- adds r5, r7
- cmp r5, r7
- bcc _082E796C
- cmp r5, r1
- bcs _082E796C
- subs r2, 0x1
- adds r5, r7
-_082E796C:
- lsls r6, 16
- orrs r6, r2
- str r6, [sp, 0x4]
- subs r1, r5, r1
- mov r8, r1
-_082E7976:
- lsrs r4, r7, 16
- mov r9, r4
- ldr r0, _082E79F4
- ands r0, r7
- str r0, [sp, 0xC]
- mov r0, r8
- mov r1, r9
- bl __umodsi3
- adds r4, r0, 0
- mov r0, r8
- mov r1, r9
- bl __udivsi3
- adds r6, r0, 0
- ldr r1, [sp, 0xC]
- adds r2, r6, 0
- muls r2, r1
- lsls r4, 16
- mov r3, r10
- lsrs r0, r3, 16
- orrs r4, r0
- cmp r4, r2
- bcs _082E79B6
- subs r6, 0x1
- adds r4, r7
- cmp r4, r7
- bcc _082E79B6
- cmp r4, r2
- bcs _082E79B6
- subs r6, 0x1
- adds r4, r7
-_082E79B6:
- subs r4, r2
- adds r0, r4, 0
- mov r1, r9
- bl __umodsi3
- adds r5, r0, 0
- adds r0, r4, 0
- mov r1, r9
- bl __udivsi3
- adds r1, r0, 0
- ldr r4, [sp, 0xC]
- adds r2, r1, 0
- muls r2, r4
- lsls r5, 16
- ldr r0, _082E79F4
- mov r3, r10
- ands r3, r0
- orrs r5, r3
- cmp r5, r2
- bcs _082E79EE
- subs r1, 0x1
- adds r5, r7
- cmp r5, r7
- bcc _082E79EE
- cmp r5, r2
- bcs _082E79EE
- subs r1, 0x1
-_082E79EE:
- lsls r6, 16
- orrs r6, r1
- b _082E7B4E
- .align 2, 0
-_082E79F4: .4byte 0x0000ffff
-_082E79F8:
- cmp r6, r8
- bls _082E7A04
- movs r6, 0
-_082E79FE:
- movs r4, 0
- str r4, [sp, 0x4]
- b _082E7B4E
-_082E7A04:
- adds r1, r6, 0
- ldr r0, _082E7A18
- cmp r6, r0
- bhi _082E7A1C
- movs r2, 0
- cmp r6, 0xFF
- bls _082E7A26
- movs r2, 0x8
- b _082E7A26
- .align 2, 0
-_082E7A18: .4byte 0x0000ffff
-_082E7A1C:
- ldr r0, _082E7A48
- movs r2, 0x18
- cmp r6, r0
- bhi _082E7A26
- movs r2, 0x10
-_082E7A26:
- ldr r0, _082E7A4C
- lsrs r1, r2
- adds r0, r1, r0
- ldrb r0, [r0]
- adds r0, r2
- movs r1, 0x20
- subs r2, r1, r0
- cmp r2, 0
- bne _082E7A54
- cmp r8, r6
- bhi _082E7A40
- cmp r10, r7
- bcc _082E7A50
-_082E7A40:
- movs r6, 0x1
- mov r1, r10
- b _082E7B48
- .align 2, 0
-_082E7A48: .4byte 0x00ffffff
-_082E7A4C: .4byte 0x089a3370
-_082E7A50:
- movs r6, 0
- b _082E7B4A
-_082E7A54:
- subs r1, r2
- lsls r6, r2
- adds r0, r7, 0
- lsrs r0, r1
- orrs r6, r0
- lsls r7, r2
- mov r5, r8
- lsrs r5, r1
- mov r3, r8
- lsls r3, r2
- mov r0, r10
- lsrs r0, r1
- orrs r3, r0
- mov r8, r3
- mov r4, r10
- lsls r4, r2
- mov r10, r4
- lsrs r0, r6, 16
- mov r9, r0
- ldr r1, _082E7B64
- ands r1, r6
- str r1, [sp, 0x10]
- adds r0, r5, 0
- mov r1, r9
- bl __umodsi3
- adds r4, r0, 0
- adds r0, r5, 0
- mov r1, r9
- bl __udivsi3
- adds r3, r0, 0
- ldr r2, [sp, 0x10]
- adds r1, r3, 0
- muls r1, r2
- lsls r4, 16
- mov r2, r8
- lsrs r0, r2, 16
- orrs r4, r0
- cmp r4, r1
- bcs _082E7AB6
- subs r3, 0x1
- adds r4, r6
- cmp r4, r6
- bcc _082E7AB6
- cmp r4, r1
- bcs _082E7AB6
- subs r3, 0x1
- adds r4, r6
-_082E7AB6:
- subs r4, r1
- adds r0, r4, 0
- mov r1, r9
- str r3, [sp, 0x1C]
- bl __umodsi3
- adds r5, r0, 0
- adds r0, r4, 0
- mov r1, r9
- bl __udivsi3
- adds r2, r0, 0
- ldr r4, [sp, 0x10]
- adds r1, r2, 0
- muls r1, r4
- lsls r5, 16
- ldr r0, _082E7B64
- mov r4, r8
- ands r4, r0
- orrs r5, r4
- ldr r3, [sp, 0x1C]
- cmp r5, r1
- bcs _082E7AF4
- subs r2, 0x1
- adds r5, r6
- cmp r5, r6
- bcc _082E7AF4
- cmp r5, r1
- bcs _082E7AF4
- subs r2, 0x1
- adds r5, r6
-_082E7AF4:
- lsls r6, r3, 16
- orrs r6, r2
- subs r1, r5, r1
- mov r8, r1
- ldr r0, _082E7B64
- mov r9, r0
- adds r1, r6, 0
- ands r1, r0
- lsrs r3, r6, 16
- adds r0, r7, 0
- mov r2, r9
- ands r0, r2
- lsrs r2, r7, 16
- adds r5, r1, 0
- muls r5, r0
- adds r4, r1, 0
- muls r4, r2
- adds r1, r3, 0
- muls r1, r0
- muls r3, r2
- lsrs r0, r5, 16
- adds r4, r0
- adds r4, r1
- cmp r4, r1
- bcs _082E7B2C
- movs r0, 0x80
- lsls r0, 9
- adds r3, r0
-_082E7B2C:
- lsrs r0, r4, 16
- adds r3, r0
- mov r1, r9
- ands r4, r1
- lsls r0, r4, 16
- ands r5, r1
- adds r1, r0, r5
- cmp r3, r8
- bhi _082E7B46
- cmp r3, r8
- bne _082E7B4A
- cmp r1, r10
- bls _082E7B4A
-_082E7B46:
- subs r6, 0x1
-_082E7B48:
- subs r0, r1, r7
-_082E7B4A:
- movs r2, 0
- str r2, [sp, 0x4]
-_082E7B4E:
- str r6, [sp, 0x14]
- ldr r3, [sp, 0x4]
- str r3, [sp, 0x18]
- ldr r0, [sp, 0x14]
- ldr r1, [sp, 0x18]
- add sp, 0x20
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7,pc}
- .align 2, 0
-_082E7B64: .4byte 0x0000ffff
- thumb_func_end __udivdi3
-
- thumb_func_start __udivsi3
-__udivsi3: @ 82E7B68
- cmp r1, 0
- beq _082E7BD6
- movs r3, 0x1
- movs r2, 0
- push {r4}
- cmp r0, r1
- bcc _082E7BD0
- movs r4, 0x1
- lsls r4, 28
-_082E7B7A:
- cmp r1, r4
- bcs _082E7B88
- cmp r1, r0
- bcs _082E7B88
- lsls r1, 4
- lsls r3, 4
- b _082E7B7A
-_082E7B88:
- lsls r4, 3
-_082E7B8A:
- cmp r1, r4
- bcs _082E7B98
- cmp r1, r0
- bcs _082E7B98
- lsls r1, 1
- lsls r3, 1
- b _082E7B8A
-_082E7B98:
- cmp r0, r1
- bcc _082E7BA0
- subs r0, r1
- orrs r2, r3
-_082E7BA0:
- lsrs r4, r1, 1
- cmp r0, r4
- bcc _082E7BAC
- subs r0, r4
- lsrs r4, r3, 1
- orrs r2, r4
-_082E7BAC:
- lsrs r4, r1, 2
- cmp r0, r4
- bcc _082E7BB8
- subs r0, r4
- lsrs r4, r3, 2
- orrs r2, r4
-_082E7BB8:
- lsrs r4, r1, 3
- cmp r0, r4
- bcc _082E7BC4
- subs r0, r4
- lsrs r4, r3, 3
- orrs r2, r4
-_082E7BC4:
- cmp r0, 0
- beq _082E7BD0
- lsrs r3, 4
- beq _082E7BD0
- lsrs r1, 4
- b _082E7B98
-_082E7BD0:
- adds r0, r2, 0
- pop {r4}
- mov pc, lr
-_082E7BD6:
- push {lr}
- bl nullsub_1
- movs r0, 0
- pop {pc}
- thumb_func_end __udivsi3
-
- thumb_func_start __umodsi3
-__umodsi3: @ 82E7BE0
- cmp r1, 0
- beq _082E7C96
- movs r3, 0x1
- cmp r0, r1
- bcs _082E7BEC
- mov pc, lr
-_082E7BEC:
- push {r4}
- movs r4, 0x1
- lsls r4, 28
-_082E7BF2:
- cmp r1, r4
- bcs _082E7C00
- cmp r1, r0
- bcs _082E7C00
- lsls r1, 4
- lsls r3, 4
- b _082E7BF2
-_082E7C00:
- lsls r4, 3
-_082E7C02:
- cmp r1, r4
- bcs _082E7C10
- cmp r1, r0
- bcs _082E7C10
- lsls r1, 1
- lsls r3, 1
- b _082E7C02
-_082E7C10:
- movs r2, 0
- cmp r0, r1
- bcc _082E7C18
- subs r0, r1
-_082E7C18:
- lsrs r4, r1, 1
- cmp r0, r4
- bcc _082E7C2A
- subs r0, r4
- mov r12, r3
- movs r4, 0x1
- rors r3, r4
- orrs r2, r3
- mov r3, r12
-_082E7C2A:
- lsrs r4, r1, 2
- cmp r0, r4
- bcc _082E7C3C
- subs r0, r4
- mov r12, r3
- movs r4, 0x2
- rors r3, r4
- orrs r2, r3
- mov r3, r12
-_082E7C3C:
- lsrs r4, r1, 3
- cmp r0, r4
- bcc _082E7C4E
- subs r0, r4
- mov r12, r3
- movs r4, 0x3
- rors r3, r4
- orrs r2, r3
- mov r3, r12
-_082E7C4E:
- mov r12, r3
- cmp r0, 0
- beq _082E7C5C
- lsrs r3, 4
- beq _082E7C5C
- lsrs r1, 4
- b _082E7C10
-_082E7C5C:
- movs r4, 0xE
- lsls r4, 28
- ands r2, r4
- bne _082E7C68
- pop {r4}
- mov pc, lr
-_082E7C68:
- mov r3, r12
- movs r4, 0x3
- rors r3, r4
- tst r2, r3
- beq _082E7C76
- lsrs r4, r1, 3
- adds r0, r4
-_082E7C76:
- mov r3, r12
- movs r4, 0x2
- rors r3, r4
- tst r2, r3
- beq _082E7C84
- lsrs r4, r1, 2
- adds r0, r4
-_082E7C84:
- mov r3, r12
- movs r4, 0x1
- rors r3, r4
- tst r2, r3
- beq _082E7C92
- lsrs r4, r1, 1
- adds r0, r4
-_082E7C92:
- pop {r4}
- mov pc, lr
-_082E7C96:
- push {lr}
- bl nullsub_1
- movs r0, 0
- pop {pc}
- thumb_func_end __umodsi3
-
- thumb_func_start __pack_d
-__pack_d: @ 82E7CA0
- push {r4-r7,lr}
- sub sp, 0x8
- adds r1, r0, 0
- ldr r4, [r1, 0xC]
- ldr r5, [r1, 0x10]
- ldr r7, [r1, 0x4]
- movs r6, 0
- movs r2, 0
- ldr r0, [r1]
- cmp r0, 0x1
- bhi _082E7CB8
- movs r2, 0x1
-_082E7CB8:
- cmp r2, 0
- beq _082E7CD8
- ldr r6, _082E7CCC
- ldr r2, _082E7CD0
- ldr r3, _082E7CD4
- adds r0, r4, 0
- adds r1, r5, 0
- orrs r1, r3
- b _082E7D90
- .align 2, 0
-_082E7CCC: .4byte 0x000007ff
-_082E7CD0: .4byte 0x00000000
-_082E7CD4: .4byte 0x00080000
-_082E7CD8:
- movs r2, 0
- cmp r0, 0x4
- bne _082E7CE0
- movs r2, 0x1
-_082E7CE0:
- cmp r2, 0
- bne _082E7D2C
- movs r2, 0
- cmp r0, 0x2
- bne _082E7CEC
- movs r2, 0x1
-_082E7CEC:
- cmp r2, 0
- beq _082E7CF6
- movs r4, 0
- movs r5, 0
- b _082E7D94
-_082E7CF6:
- adds r0, r5, 0
- orrs r0, r4
- cmp r0, 0
- beq _082E7D94
- ldr r2, [r1, 0x8]
- ldr r0, _082E7D14
- cmp r2, r0
- bge _082E7D26
- subs r2, r0, r2
- cmp r2, 0x38
- ble _082E7D18
- movs r4, 0
- movs r5, 0
- b _082E7D86
- .align 2, 0
-_082E7D14: .4byte 0xfffffc02
-_082E7D18:
- adds r1, r5, 0
- adds r0, r4, 0
- bl __lshrdi3
- adds r5, r1, 0
- adds r4, r0, 0
- b _082E7D86
-_082E7D26:
- ldr r0, _082E7D34
- cmp r2, r0
- ble _082E7D3C
-_082E7D2C:
- ldr r6, _082E7D38
- movs r4, 0
- movs r5, 0
- b _082E7D94
- .align 2, 0
-_082E7D34: .4byte 0x000003ff
-_082E7D38: .4byte 0x000007ff
-_082E7D3C:
- ldr r0, _082E7D64
- adds r6, r2, r0
- movs r0, 0xFF
- adds r1, r4, 0
- ands r1, r0
- movs r2, 0
- cmp r1, 0x80
- bne _082E7D68
- cmp r2, 0
- bne _082E7D68
- adds r0, 0x1
- adds r1, r4, 0
- ands r1, r0
- adds r0, r2, 0
- orrs r0, r1
- cmp r0, 0
- beq _082E7D70
- movs r0, 0x80
- movs r1, 0
- b _082E7D6C
- .align 2, 0
-_082E7D64: .4byte 0x000003ff
-_082E7D68:
- movs r0, 0x7F
- movs r1, 0
-_082E7D6C:
- adds r4, r0
- adcs r5, r1
-_082E7D70:
- ldr r0, _082E7DD4
- cmp r5, r0
- bls _082E7D86
- lsls r3, r5, 31
- lsrs r2, r4, 1
- adds r0, r3, 0
- orrs r0, r2
- lsrs r1, r5, 1
- adds r5, r1, 0
- adds r4, r0, 0
- adds r6, 0x1
-_082E7D86:
- lsls r3, r5, 24
- lsrs r2, r4, 8
- adds r0, r3, 0
- orrs r0, r2
- lsrs r1, r5, 8
-_082E7D90:
- adds r5, r1, 0
- adds r4, r0, 0
-_082E7D94:
- str r4, [sp]
- ldr r2, _082E7DD8
- ands r2, r5
- ldr r0, [sp, 0x4]
- ldr r1, _082E7DDC
- ands r0, r1
- orrs r0, r2
- str r0, [sp, 0x4]
- mov r2, sp
- ldr r1, _082E7DE0
- adds r0, r1, 0
- ands r6, r0
- lsls r1, r6, 4
- ldr r0, _082E7DE4
- ldrh r3, [r2, 0x6]
- ands r0, r3
- orrs r0, r1
- strh r0, [r2, 0x6]
- lsls r1, r7, 7
- movs r0, 0x7F
- ldrb r3, [r2, 0x7]
- ands r0, r3
- orrs r0, r1
- strb r0, [r2, 0x7]
- ldr r1, [sp]
- ldr r0, [sp, 0x4]
- str r0, [sp]
- str r1, [sp, 0x4]
- ldr r0, [sp]
- ldr r1, [sp, 0x4]
- add sp, 0x8
- pop {r4-r7,pc}
- .align 2, 0
-_082E7DD4: .4byte 0x1fffffff
-_082E7DD8: .4byte 0x000fffff
-_082E7DDC: .4byte 0xfff00000
-_082E7DE0: .4byte 0x000007ff
-_082E7DE4: .4byte 0xffff800f
- thumb_func_end __pack_d
-
- thumb_func_start __unpack_d
-__unpack_d: @ 82E7DE8
- push {r4-r7,lr}
- sub sp, 0x8
- adds r2, r0, 0
- adds r6, r1, 0
- ldr r1, [r2, 0x4]
- str r1, [sp]
- ldr r0, [r2]
- str r0, [sp, 0x4]
- mov r2, sp
- adds r4, r1, 0
- lsls r0, 12
- lsrs r5, r0, 12
- ldrh r3, [r2, 0x6]
- lsls r0, r3, 17
- lsrs r3, r0, 21
- ldrb r2, [r2, 0x7]
- lsrs r0, r2, 7
- str r0, [r6, 0x4]
- cmp r3, 0
- bne _082E7E5C
- orrs r1, r5
- cmp r1, 0
- bne _082E7E1C
- movs r0, 0x2
- str r0, [r6]
- b _082E7EB0
-_082E7E1C:
- ldr r0, _082E7E54
- str r0, [r6, 0x8]
- lsrs r3, r4, 24
- lsls r2, r5, 8
- adds r1, r3, 0
- orrs r1, r2
- lsls r0, r4, 8
- adds r5, r1, 0
- adds r4, r0, 0
- movs r0, 0x3
- str r0, [r6]
- ldr r0, _082E7E58
- cmp r5, r0
- bhi _082E7E8C
- adds r7, r0, 0
-_082E7E3A:
- lsrs r3, r4, 31
- lsls r2, r5, 1
- adds r1, r3, 0
- orrs r1, r2
- lsls r0, r4, 1
- adds r5, r1, 0
- adds r4, r0, 0
- ldr r0, [r6, 0x8]
- subs r0, 0x1
- str r0, [r6, 0x8]
- cmp r5, r7
- bls _082E7E3A
- b _082E7E8C
- .align 2, 0
-_082E7E54: .4byte 0xfffffc02
-_082E7E58: .4byte 0x0fffffff
-_082E7E5C:
- ldr r0, _082E7E70
- cmp r3, r0
- bne _082E7E92
- orrs r1, r5
- cmp r1, 0
- bne _082E7E74
- movs r0, 0x4
- str r0, [r6]
- b _082E7EB0
- .align 2, 0
-_082E7E70: .4byte 0x000007ff
-_082E7E74:
- movs r2, 0x80
- lsls r2, 12
- movs r0, 0
- adds r1, r5, 0
- ands r1, r2
- orrs r1, r0
- cmp r1, 0
- beq _082E7E8A
- movs r0, 0x1
- str r0, [r6]
- b _082E7E8C
-_082E7E8A:
- str r1, [r6]
-_082E7E8C:
- str r4, [r6, 0xC]
- str r5, [r6, 0x10]
- b _082E7EB0
-_082E7E92:
- ldr r1, _082E7EB4
- adds r0, r3, r1
- str r0, [r6, 0x8]
- movs r0, 0x3
- str r0, [r6]
- lsrs r3, r4, 24
- lsls r2, r5, 8
- adds r1, r3, 0
- orrs r1, r2
- lsls r0, r4, 8
- ldr r2, _082E7EB8
- ldr r3, _082E7EBC
- orrs r1, r3
- str r0, [r6, 0xC]
- str r1, [r6, 0x10]
-_082E7EB0:
- add sp, 0x8
- pop {r4-r7,pc}
- .align 2, 0
-_082E7EB4: .4byte 0xfffffc01
-_082E7EB8: .4byte 0x00000000
-_082E7EBC: .4byte 0x10000000
- thumb_func_end __unpack_d
-
- thumb_func_start __fpadd_parts_d
-__fpadd_parts_d: @ 82E7EC0
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0xC
- adds r3, r0, 0
- adds r4, r1, 0
- mov r10, r2
- movs r0, 0
- ldr r2, [r3]
- cmp r2, 0x1
- bhi _082E7EDC
- movs r0, 0x1
-_082E7EDC:
- cmp r0, 0
- beq _082E7EE4
-_082E7EE0:
- adds r0, r3, 0
- b _082E811C
-_082E7EE4:
- movs r1, 0
- ldr r0, [r4]
- cmp r0, 0x1
- bhi _082E7EEE
- movs r1, 0x1
-_082E7EEE:
- cmp r1, 0
- bne _082E7F66
- movs r1, 0
- cmp r2, 0x4
- bne _082E7EFA
- movs r1, 0x1
-_082E7EFA:
- cmp r1, 0
- beq _082E7F1C
- movs r1, 0
- cmp r0, 0x4
- bne _082E7F06
- movs r1, 0x1
-_082E7F06:
- cmp r1, 0
- beq _082E7EE0
- ldr r1, [r3, 0x4]
- ldr r0, [r4, 0x4]
- cmp r1, r0
- beq _082E7EE0
- ldr r0, _082E7F18
- b _082E811C
- .align 2, 0
-_082E7F18: .4byte 0x03001a80
-_082E7F1C:
- movs r1, 0
- cmp r0, 0x4
- bne _082E7F24
- movs r1, 0x1
-_082E7F24:
- cmp r1, 0
- bne _082E7F66
- movs r1, 0
- cmp r0, 0x2
- bne _082E7F30
- movs r1, 0x1
-_082E7F30:
- cmp r1, 0
- beq _082E7F58
- movs r0, 0
- cmp r2, 0x2
- bne _082E7F3C
- movs r0, 0x1
-_082E7F3C:
- cmp r0, 0
- beq _082E7EE0
- mov r1, r10
- adds r0, r3, 0
- ldm r0!, {r2,r5,r6}
- stm r1!, {r2,r5,r6}
- ldm r0!, {r2,r5}
- stm r1!, {r2,r5}
- ldr r0, [r3, 0x4]
- ldr r1, [r4, 0x4]
- ands r0, r1
- mov r6, r10
- str r0, [r6, 0x4]
- b _082E811A
-_082E7F58:
- movs r1, 0
- ldr r0, [r3]
- cmp r0, 0x2
- bne _082E7F62
- movs r1, 0x1
-_082E7F62:
- cmp r1, 0
- beq _082E7F6A
-_082E7F66:
- adds r0, r4, 0
- b _082E811C
-_082E7F6A:
- ldr r0, [r3, 0x8]
- mov r9, r0
- ldr r1, [r4, 0x8]
- mov r8, r1
- ldr r6, [r3, 0xC]
- ldr r7, [r3, 0x10]
- ldr r0, [r4, 0xC]
- ldr r1, [r4, 0x10]
- str r0, [sp]
- str r1, [sp, 0x4]
- mov r1, r9
- mov r2, r8
- subs r0, r1, r2
- cmp r0, 0
- bge _082E7F8A
- negs r0, r0
-_082E7F8A:
- cmp r0, 0x3F
- bgt _082E8008
- ldr r3, [r3, 0x4]
- mov r12, r3
- ldr r4, [r4, 0x4]
- str r4, [sp, 0x8]
- cmp r9, r8
- ble _082E7FD4
- mov r3, r9
- mov r4, r8
- subs r3, r4
- mov r8, r3
-_082E7FA2:
- movs r5, 0x1
- negs r5, r5
- add r8, r5
- ldr r2, [sp]
- movs r0, 0x1
- ands r2, r0
- movs r3, 0
- ldr r1, [sp, 0x4]
- lsls r5, r1, 31
- ldr r0, [sp]
- lsrs r4, r0, 1
- adds r0, r5, 0
- orrs r0, r4
- adds r4, r1, 0
- lsrs r1, r4, 1
- adds r5, r2, 0
- orrs r5, r0
- str r5, [sp]
- adds r4, r3, 0
- orrs r4, r1
- str r4, [sp, 0x4]
- mov r5, r8
- cmp r5, 0
- bne _082E7FA2
- mov r8, r9
-_082E7FD4:
- cmp r8, r9
- ble _082E8024
- mov r0, r8
- mov r1, r9
- subs r0, r1
- mov r9, r0
-_082E7FE0:
- movs r2, 0x1
- negs r2, r2
- add r9, r2
- movs r2, 0x1
- ands r2, r6
- movs r3, 0
- lsls r5, r7, 31
- lsrs r4, r6, 1
- adds r0, r5, 0
- orrs r0, r4
- lsrs r1, r7, 1
- adds r6, r2, 0
- orrs r6, r0
- adds r7, r3, 0
- orrs r7, r1
- mov r3, r9
- cmp r3, 0
- bne _082E7FE0
- mov r9, r8
- b _082E8024
-_082E8008:
- cmp r9, r8
- ble _082E8016
- movs r0, 0
- movs r1, 0
- str r0, [sp]
- str r1, [sp, 0x4]
- b _082E801C
-_082E8016:
- mov r9, r8
- movs r6, 0
- movs r7, 0
-_082E801C:
- ldr r3, [r3, 0x4]
- mov r12, r3
- ldr r4, [r4, 0x4]
- str r4, [sp, 0x8]
-_082E8024:
- ldr r1, [sp, 0x8]
- cmp r12, r1
- beq _082E80CC
- mov r2, r12
- cmp r2, 0
- beq _082E8046
- adds r1, r7, 0
- adds r0, r6, 0
- bl __negdi2
- adds r3, r1, 0
- adds r2, r0, 0
- ldr r4, [sp]
- ldr r5, [sp, 0x4]
- adds r2, r4
- adcs r3, r5
- b _082E8052
-_082E8046:
- adds r3, r7, 0
- adds r2, r6, 0
- ldr r0, [sp]
- ldr r1, [sp, 0x4]
- subs r2, r0
- sbcs r3, r1
-_082E8052:
- cmp r3, 0
- blt _082E8068
- movs r0, 0
- mov r1, r10
- str r0, [r1, 0x4]
- mov r4, r9
- str r4, [r1, 0x8]
- mov r5, r10
- str r2, [r5, 0xC]
- str r3, [r5, 0x10]
- b _082E8080
-_082E8068:
- movs r0, 0x1
- mov r6, r10
- str r0, [r6, 0x4]
- mov r0, r9
- str r0, [r6, 0x8]
- adds r1, r3, 0
- adds r0, r2, 0
- bl __negdi2
- mov r2, r10
- str r0, [r2, 0xC]
- str r1, [r2, 0x10]
-_082E8080:
- mov r4, r10
- ldr r2, [r4, 0xC]
- ldr r3, [r4, 0x10]
- movs r0, 0x1
- negs r0, r0
- asrs r1, r0, 31
-_082E808C:
- adds r2, r0
- adcs r3, r1
- ldr r0, _082E80C8
- cmp r3, r0
- bhi _082E80E4
- cmp r3, r0
- bne _082E80A2
- movs r0, 0x2
- negs r0, r0
- cmp r2, r0
- bhi _082E80E4
-_082E80A2:
- mov r5, r10
- ldr r0, [r5, 0xC]
- ldr r1, [r5, 0x10]
- lsrs r3, r0, 31
- lsls r2, r1, 1
- adds r1, r3, 0
- orrs r1, r2
- lsls r0, 1
- mov r6, r10
- str r0, [r6, 0xC]
- str r1, [r6, 0x10]
- ldr r2, [r6, 0x8]
- subs r2, 0x1
- str r2, [r6, 0x8]
- movs r2, 0x1
- negs r2, r2
- asrs r3, r2, 31
- b _082E808C
- .align 2, 0
-_082E80C8: .4byte 0x0fffffff
-_082E80CC:
- mov r0, r12
- mov r1, r10
- str r0, [r1, 0x4]
- mov r2, r9
- str r2, [r1, 0x8]
- ldr r3, [sp]
- ldr r4, [sp, 0x4]
- adds r6, r3
- adcs r7, r4
- mov r4, r10
- str r6, [r4, 0xC]
- str r7, [r4, 0x10]
-_082E80E4:
- movs r0, 0x3
- mov r5, r10
- str r0, [r5]
- ldr r1, [r5, 0x10]
- ldr r0, _082E8128
- cmp r1, r0
- bls _082E811A
- ldr r4, [r5, 0xC]
- ldr r5, [r5, 0x10]
- movs r2, 0x1
- adds r0, r4, 0
- ands r0, r2
- movs r1, 0
- lsls r6, r5, 31
- mov r8, r6
- lsrs r6, r4, 1
- mov r2, r8
- orrs r2, r6
- lsrs r3, r5, 1
- orrs r0, r2
- orrs r1, r3
- mov r2, r10
- str r0, [r2, 0xC]
- str r1, [r2, 0x10]
- ldr r0, [r2, 0x8]
- adds r0, 0x1
- str r0, [r2, 0x8]
-_082E811A:
- mov r0, r10
-_082E811C:
- add sp, 0xC
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7,pc}
- .align 2, 0
-_082E8128: .4byte 0x1fffffff
- thumb_func_end __fpadd_parts_d
-
- thumb_func_start __adddf3
-__adddf3: @ 82E812C
- push {r4,lr}
- sub sp, 0x4C
- str r0, [sp, 0x3C]
- str r1, [sp, 0x40]
- str r2, [sp, 0x44]
- str r3, [sp, 0x48]
- add r0, sp, 0x3C
- mov r1, sp
- bl __unpack_d
- add r0, sp, 0x44
- add r4, sp, 0x14
- adds r1, r4, 0
- bl __unpack_d
- add r2, sp, 0x28
- mov r0, sp
- adds r1, r4, 0
- bl __fpadd_parts_d
- bl __pack_d
- add sp, 0x4C
- pop {r4,pc}
- thumb_func_end __adddf3
-
- thumb_func_start __subdf3
-__subdf3: @ 82E815C
- push {r4,lr}
- sub sp, 0x4C
- str r0, [sp, 0x3C]
- str r1, [sp, 0x40]
- str r2, [sp, 0x44]
- str r3, [sp, 0x48]
- add r0, sp, 0x3C
- mov r1, sp
- bl __unpack_d
- add r0, sp, 0x44
- add r4, sp, 0x14
- adds r1, r4, 0
- bl __unpack_d
- ldr r0, [r4, 0x4]
- movs r1, 0x1
- eors r0, r1
- str r0, [r4, 0x4]
- add r2, sp, 0x28
- mov r0, sp
- adds r1, r4, 0
- bl __fpadd_parts_d
- bl __pack_d
- add sp, 0x4C
- pop {r4,pc}
- thumb_func_end __subdf3
-
- thumb_func_start __muldf3
-__muldf3: @ 82E8194
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x74
- str r0, [sp, 0x3C]
- str r1, [sp, 0x40]
- str r2, [sp, 0x44]
- str r3, [sp, 0x48]
- add r0, sp, 0x3C
- mov r1, sp
- bl __unpack_d
- add r0, sp, 0x44
- add r4, sp, 0x14
- adds r1, r4, 0
- bl __unpack_d
- mov r8, sp
- add r0, sp, 0x28
- mov r10, r0
- movs r0, 0
- ldr r1, [sp]
- cmp r1, 0x1
- bhi _082E81CA
- movs r0, 0x1
-_082E81CA:
- cmp r0, 0
- bne _082E822E
- movs r2, 0
- ldr r0, [sp, 0x14]
- cmp r0, 0x1
- bhi _082E81D8
- movs r2, 0x1
-_082E81D8:
- cmp r2, 0
- beq _082E81E0
- ldr r0, [sp, 0x4]
- b _082E8250
-_082E81E0:
- movs r2, 0
- cmp r1, 0x4
- bne _082E81E8
- movs r2, 0x1
-_082E81E8:
- cmp r2, 0
- beq _082E81FA
- movs r1, 0
- cmp r0, 0x2
- bne _082E81F4
- movs r1, 0x1
-_082E81F4:
- cmp r1, 0
- bne _082E8212
- b _082E822E
-_082E81FA:
- movs r2, 0
- cmp r0, 0x4
- bne _082E8202
- movs r2, 0x1
-_082E8202:
- cmp r2, 0
- beq _082E8222
- movs r0, 0
- cmp r1, 0x2
- bne _082E820E
- movs r0, 0x1
-_082E820E:
- cmp r0, 0
- beq _082E821C
-_082E8212:
- ldr r0, _082E8218
- b _082E841A
- .align 2, 0
-_082E8218: .4byte 0x03001a80
-_082E821C:
- mov r1, r8
- ldr r0, [r1, 0x4]
- b _082E8250
-_082E8222:
- movs r2, 0
- cmp r1, 0x2
- bne _082E822A
- movs r2, 0x1
-_082E822A:
- cmp r2, 0
- beq _082E8240
-_082E822E:
- ldr r0, [sp, 0x4]
- ldr r1, [sp, 0x18]
- eors r0, r1
- negs r1, r0
- orrs r1, r0
- lsrs r1, 31
- str r1, [sp, 0x4]
- mov r0, sp
- b _082E841A
-_082E8240:
- movs r1, 0
- cmp r0, 0x2
- bne _082E8248
- movs r1, 0x1
-_082E8248:
- cmp r1, 0
- beq _082E8260
- mov r2, r8
- ldr r0, [r2, 0x4]
-_082E8250:
- ldr r1, [sp, 0x18]
- eors r0, r1
- negs r1, r0
- orrs r1, r0
- lsrs r1, 31
- str r1, [sp, 0x18]
- adds r0, r4, 0
- b _082E841A
-_082E8260:
- mov r4, r8
- ldr r0, [r4, 0xC]
- ldr r1, [r4, 0x10]
- adds r6, r0, 0
- movs r7, 0
- str r1, [sp, 0x4C]
- movs r5, 0
- str r5, [sp, 0x50]
- ldr r0, [sp, 0x20]
- ldr r1, [sp, 0x24]
- adds r4, r0, 0
- str r1, [sp, 0x54]
- movs r0, 0
- str r0, [sp, 0x58]
- adds r1, r5, 0
- adds r0, r4, 0
- adds r3, r7, 0
- adds r2, r6, 0
- bl __muldi3
- str r0, [sp, 0x5C]
- str r1, [sp, 0x60]
- ldr r0, [sp, 0x54]
- ldr r1, [sp, 0x58]
- adds r3, r7, 0
- adds r2, r6, 0
- bl __muldi3
- adds r7, r1, 0
- adds r6, r0, 0
- adds r1, r5, 0
- adds r0, r4, 0
- ldr r2, [sp, 0x4C]
- ldr r3, [sp, 0x50]
- bl __muldi3
- adds r5, r1, 0
- adds r4, r0, 0
- ldr r0, [sp, 0x54]
- ldr r1, [sp, 0x58]
- ldr r2, [sp, 0x4C]
- ldr r3, [sp, 0x50]
- bl __muldi3
- str r0, [sp, 0x64]
- str r1, [sp, 0x68]
- movs r1, 0
- movs r2, 0
- str r1, [sp, 0x6C]
- str r2, [sp, 0x70]
- adds r3, r7, 0
- adds r2, r6, 0
- adds r2, r4
- adcs r3, r5
- cmp r7, r3
- bhi _082E82D8
- cmp r7, r3
- bne _082E82E0
- cmp r6, r2
- bls _082E82E0
-_082E82D8:
- ldr r5, _082E8430
- ldr r4, _082E842C
- str r4, [sp, 0x6C]
- str r5, [sp, 0x70]
-_082E82E0:
- adds r1, r2, 0
- movs r6, 0
- adds r7, r1, 0
- ldr r0, [sp, 0x5C]
- ldr r1, [sp, 0x60]
- adds r6, r0
- adcs r7, r1
- cmp r1, r7
- bhi _082E82FC
- ldr r1, [sp, 0x60]
- cmp r1, r7
- bne _082E830C
- cmp r0, r6
- bls _082E830C
-_082E82FC:
- movs r0, 0x1
- movs r1, 0
- ldr r4, [sp, 0x6C]
- ldr r5, [sp, 0x70]
- adds r4, r0
- adcs r5, r1
- str r4, [sp, 0x6C]
- str r5, [sp, 0x70]
-_082E830C:
- adds r0, r3, 0
- adds r2, r0, 0
- movs r3, 0
- adds r5, r3, 0
- adds r4, r2, 0
- ldr r0, [sp, 0x64]
- ldr r1, [sp, 0x68]
- adds r4, r0
- adcs r5, r1
- ldr r1, [sp, 0x6C]
- ldr r2, [sp, 0x70]
- adds r4, r1
- adcs r5, r2
- mov r0, r8
- ldr r2, [r0, 0x8]
- ldr r0, [sp, 0x1C]
- adds r2, r0
- str r2, [sp, 0x30]
- mov r0, r8
- ldr r1, [r0, 0x4]
- ldr r0, [sp, 0x18]
- eors r1, r0
- negs r0, r1
- orrs r0, r1
- lsrs r0, 31
- str r0, [sp, 0x2C]
- adds r2, 0x4
- str r2, [sp, 0x30]
- ldr r0, _082E8434
- cmp r5, r0
- bls _082E838E
- movs r1, 0x1
- mov r9, r1
- mov r8, r0
- mov r12, r2
-_082E8352:
- movs r2, 0x1
- add r12, r2
- mov r0, r9
- ands r0, r4
- cmp r0, 0
- beq _082E8378
- lsls r3, r7, 31
- lsrs r2, r6, 1
- adds r0, r3, 0
- orrs r0, r2
- lsrs r1, r7, 1
- adds r7, r1, 0
- adds r6, r0, 0
- adds r0, r6, 0
- movs r1, 0x80
- lsls r1, 24
- orrs r1, r7
- adds r7, r1, 0
- adds r6, r0, 0
-_082E8378:
- lsls r3, r5, 31
- lsrs r2, r4, 1
- adds r0, r3, 0
- orrs r0, r2
- lsrs r1, r5, 1
- adds r5, r1, 0
- adds r4, r0, 0
- cmp r5, r8
- bhi _082E8352
- mov r0, r12
- str r0, [sp, 0x30]
-_082E838E:
- ldr r0, _082E8438
- cmp r5, r0
- bhi _082E83E0
- movs r1, 0x80
- lsls r1, 24
- mov r9, r1
- mov r8, r0
- ldr r2, [sp, 0x30]
- mov r12, r2
-_082E83A0:
- movs r0, 0x1
- negs r0, r0
- add r12, r0
- lsrs r3, r4, 31
- lsls r2, r5, 1
- adds r1, r3, 0
- orrs r1, r2
- lsls r0, r4, 1
- adds r5, r1, 0
- adds r4, r0, 0
- movs r0, 0
- mov r1, r9
- ands r1, r7
- orrs r0, r1
- cmp r0, 0
- beq _082E83CA
- movs r0, 0x1
- orrs r0, r4
- adds r1, r5, 0
- adds r5, r1, 0
- adds r4, r0, 0
-_082E83CA:
- lsrs r3, r6, 31
- lsls r2, r7, 1
- adds r1, r3, 0
- orrs r1, r2
- lsls r0, r6, 1
- adds r7, r1, 0
- adds r6, r0, 0
- cmp r5, r8
- bls _082E83A0
- mov r1, r12
- str r1, [sp, 0x30]
-_082E83E0:
- movs r0, 0xFF
- adds r1, r4, 0
- ands r1, r0
- movs r2, 0
- cmp r1, 0x80
- bne _082E840E
- cmp r2, 0
- bne _082E840E
- adds r0, 0x1
- adds r1, r4, 0
- ands r1, r0
- adds r0, r2, 0
- orrs r0, r1
- cmp r0, 0
- bne _082E8406
- adds r0, r7, 0
- orrs r0, r6
- cmp r0, 0
- beq _082E840E
-_082E8406:
- movs r0, 0x80
- movs r1, 0
- adds r4, r0
- adcs r5, r1
-_082E840E:
- str r4, [sp, 0x34]
- str r5, [sp, 0x38]
- movs r0, 0x3
- mov r2, r10
- str r0, [r2]
- add r0, sp, 0x28
-_082E841A:
- bl __pack_d
- add sp, 0x74
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7,pc}
- .align 2, 0
-_082E842C: .4byte 0x00000000
-_082E8430: .4byte 0x00000001
-_082E8434: .4byte 0x1fffffff
-_082E8438: .4byte 0x0fffffff
- thumb_func_end __muldf3
-
- thumb_func_start __divdf3
-__divdf3: @ 82E843C
- push {r4-r7,lr}
- sub sp, 0x48
- str r0, [sp, 0x28]
- str r1, [sp, 0x2C]
- str r2, [sp, 0x30]
- str r3, [sp, 0x34]
- add r0, sp, 0x28
- mov r1, sp
- bl __unpack_d
- add r0, sp, 0x30
- add r4, sp, 0x14
- adds r1, r4, 0
- bl __unpack_d
- mov r12, sp
- movs r0, 0
- ldr r3, [sp]
- cmp r3, 0x1
- bhi _082E8466
- movs r0, 0x1
-_082E8466:
- cmp r0, 0
- beq _082E846E
- mov r1, sp
- b _082E85B0
-_082E846E:
- movs r0, 0
- ldr r2, [sp, 0x14]
- adds r5, r2, 0
- cmp r2, 0x1
- bhi _082E847A
- movs r0, 0x1
-_082E847A:
- cmp r0, 0
- beq _082E8482
- adds r1, r4, 0
- b _082E85B0
-_082E8482:
- ldr r0, [sp, 0x4]
- ldr r1, [sp, 0x18]
- eors r0, r1
- str r0, [sp, 0x4]
- movs r0, 0
- cmp r3, 0x4
- bne _082E8492
- movs r0, 0x1
-_082E8492:
- cmp r0, 0
- bne _082E84A2
- movs r4, 0
- cmp r3, 0x2
- bne _082E849E
- movs r4, 0x1
-_082E849E:
- cmp r4, 0
- beq _082E84B4
-_082E84A2:
- mov r1, r12
- ldr r0, [r1]
- cmp r0, r5
- beq _082E84AC
- b _082E85B0
-_082E84AC:
- ldr r1, _082E84B0
- b _082E85B0
- .align 2, 0
-_082E84B0: .4byte 0x03001a80
-_082E84B4:
- movs r0, 0
- cmp r2, 0x4
- bne _082E84BC
- movs r0, 0x1
-_082E84BC:
- cmp r0, 0
- beq _082E84CE
- movs r0, 0
- movs r1, 0
- str r0, [sp, 0xC]
- str r1, [sp, 0x10]
- str r4, [sp, 0x8]
- mov r1, sp
- b _082E85B0
-_082E84CE:
- movs r0, 0
- cmp r2, 0x2
- bne _082E84D6
- movs r0, 0x1
-_082E84D6:
- cmp r0, 0
- beq _082E84E2
- movs r0, 0x4
- mov r2, r12
- str r0, [r2]
- b _082E85AE
-_082E84E2:
- mov r3, r12
- ldr r1, [r3, 0x8]
- ldr r0, [sp, 0x1C]
- subs r6, r1, r0
- str r6, [r3, 0x8]
- ldr r4, [r3, 0xC]
- ldr r5, [r3, 0x10]
- ldr r0, [sp, 0x20]
- ldr r1, [sp, 0x24]
- str r0, [sp, 0x38]
- str r1, [sp, 0x3C]
- cmp r1, r5
- bhi _082E8506
- ldr r1, [sp, 0x3C]
- cmp r1, r5
- bne _082E851A
- cmp r0, r4
- bls _082E851A
-_082E8506:
- lsrs r3, r4, 31
- lsls r2, r5, 1
- adds r1, r3, 0
- orrs r1, r2
- lsls r0, r4, 1
- adds r5, r1, 0
- adds r4, r0, 0
- subs r0, r6, 0x1
- mov r2, r12
- str r0, [r2, 0x8]
-_082E851A:
- ldr r7, _082E85C0
- ldr r6, _082E85BC
- movs r0, 0
- movs r1, 0
- str r0, [sp, 0x40]
- str r1, [sp, 0x44]
-_082E8526:
- ldr r1, [sp, 0x3C]
- cmp r1, r5
- bhi _082E854A
- cmp r1, r5
- bne _082E8536
- ldr r2, [sp, 0x38]
- cmp r2, r4
- bhi _082E854A
-_082E8536:
- ldr r0, [sp, 0x40]
- orrs r0, r6
- ldr r1, [sp, 0x44]
- orrs r1, r7
- str r0, [sp, 0x40]
- str r1, [sp, 0x44]
- ldr r0, [sp, 0x38]
- ldr r1, [sp, 0x3C]
- subs r4, r0
- sbcs r5, r1
-_082E854A:
- lsls r3, r7, 31
- lsrs r2, r6, 1
- adds r0, r3, 0
- orrs r0, r2
- lsrs r1, r7, 1
- adds r7, r1, 0
- adds r6, r0, 0
- lsrs r3, r4, 31
- lsls r2, r5, 1
- adds r1, r3, 0
- orrs r1, r2
- lsls r0, r4, 1
- adds r5, r1, 0
- adds r4, r0, 0
- adds r0, r7, 0
- orrs r0, r6
- cmp r0, 0
- bne _082E8526
- movs r0, 0xFF
- ldr r1, [sp, 0x40]
- ands r1, r0
- movs r2, 0
- cmp r1, 0x80
- bne _082E85A4
- cmp r2, 0
- bne _082E85A4
- adds r0, 0x1
- ldr r1, [sp, 0x40]
- ands r1, r0
- adds r0, r2, 0
- orrs r0, r1
- cmp r0, 0
- bne _082E8594
- adds r0, r5, 0
- orrs r0, r4
- cmp r0, 0
- beq _082E85A4
-_082E8594:
- movs r0, 0x80
- movs r1, 0
- ldr r2, [sp, 0x40]
- ldr r3, [sp, 0x44]
- adds r2, r0
- adcs r3, r1
- str r2, [sp, 0x40]
- str r3, [sp, 0x44]
-_082E85A4:
- ldr r0, [sp, 0x40]
- ldr r1, [sp, 0x44]
- mov r2, r12
- str r0, [r2, 0xC]
- str r1, [r2, 0x10]
-_082E85AE:
- mov r1, r12
-_082E85B0:
- adds r0, r1, 0
- bl __pack_d
- add sp, 0x48
- pop {r4-r7,pc}
- .align 2, 0
-_082E85BC: .4byte 0x00000000
-_082E85C0: .4byte 0x10000000
- thumb_func_end __divdf3
-
- thumb_func_start __fpcmp_parts_d
-__fpcmp_parts_d: @ 82E85C4
- push {r4-r6,lr}
- adds r5, r0, 0
- adds r6, r1, 0
- movs r0, 0
- ldr r1, [r5]
- cmp r1, 0x1
- bhi _082E85D4
- movs r0, 0x1
-_082E85D4:
- cmp r0, 0
- bne _082E85E6
- movs r0, 0
- ldr r2, [r6]
- cmp r2, 0x1
- bhi _082E85E2
- movs r0, 0x1
-_082E85E2:
- cmp r0, 0
- beq _082E85EA
-_082E85E6:
- movs r0, 0x1
- b _082E86C0
-_082E85EA:
- movs r0, 0
- cmp r1, 0x4
- bne _082E85F2
- movs r0, 0x1
-_082E85F2:
- cmp r0, 0
- beq _082E860A
- movs r0, 0
- cmp r2, 0x4
- bne _082E85FE
- movs r0, 0x1
-_082E85FE:
- cmp r0, 0
- beq _082E860A
- ldr r0, [r6, 0x4]
- ldr r1, [r5, 0x4]
- subs r0, r1
- b _082E86C0
-_082E860A:
- movs r1, 0
- ldr r0, [r5]
- cmp r0, 0x4
- bne _082E8614
- movs r1, 0x1
-_082E8614:
- cmp r1, 0
- bne _082E8662
- movs r1, 0
- cmp r2, 0x4
- bne _082E8620
- movs r1, 0x1
-_082E8620:
- cmp r1, 0
- beq _082E8632
-_082E8624:
- ldr r0, [r6, 0x4]
- movs r1, 0x1
- negs r1, r1
- cmp r0, 0
- beq _082E866C
- movs r1, 0x1
- b _082E866C
-_082E8632:
- movs r1, 0
- cmp r0, 0x2
- bne _082E863A
- movs r1, 0x1
-_082E863A:
- cmp r1, 0
- beq _082E864A
- movs r1, 0
- cmp r2, 0x2
- bne _082E8646
- movs r1, 0x1
-_082E8646:
- cmp r1, 0
- bne _082E86BE
-_082E864A:
- movs r1, 0
- cmp r0, 0x2
- bne _082E8652
- movs r1, 0x1
-_082E8652:
- cmp r1, 0
- bne _082E8624
- movs r0, 0
- cmp r2, 0x2
- bne _082E865E
- movs r0, 0x1
-_082E865E:
- cmp r0, 0
- beq _082E8670
-_082E8662:
- ldr r0, [r5, 0x4]
- movs r1, 0x1
- cmp r0, 0
- beq _082E866C
- subs r1, 0x2
-_082E866C:
- adds r0, r1, 0
- b _082E86C0
-_082E8670:
- ldr r0, [r6, 0x4]
- ldr r4, [r5, 0x4]
- cmp r4, r0
- beq _082E8682
-_082E8678:
- movs r0, 0x1
- cmp r4, 0
- beq _082E86C0
- subs r0, 0x2
- b _082E86C0
-_082E8682:
- ldr r1, [r5, 0x8]
- ldr r0, [r6, 0x8]
- cmp r1, r0
- bgt _082E8678
- cmp r1, r0
- bge _082E869A
-_082E868E:
- movs r0, 0x1
- negs r0, r0
- cmp r4, 0
- beq _082E86C0
- movs r0, 0x1
- b _082E86C0
-_082E869A:
- ldr r3, [r5, 0x10]
- ldr r2, [r6, 0x10]
- cmp r3, r2
- bhi _082E8678
- cmp r3, r2
- bne _082E86AE
- ldr r1, [r5, 0xC]
- ldr r0, [r6, 0xC]
- cmp r1, r0
- bhi _082E8678
-_082E86AE:
- cmp r2, r3
- bhi _082E868E
- cmp r2, r3
- bne _082E86BE
- ldr r1, [r6, 0xC]
- ldr r0, [r5, 0xC]
- cmp r1, r0
- bhi _082E868E
-_082E86BE:
- movs r0, 0
-_082E86C0:
- pop {r4-r6,pc}
- thumb_func_end __fpcmp_parts_d
-
- thumb_func_start __cmpdf2
-__cmpdf2: @ 82E86C4
- push {r4,lr}
- sub sp, 0x38
- str r0, [sp, 0x28]
- str r1, [sp, 0x2C]
- str r2, [sp, 0x30]
- str r3, [sp, 0x34]
- add r0, sp, 0x28
- mov r1, sp
- bl __unpack_d
- add r0, sp, 0x30
- add r4, sp, 0x14
- adds r1, r4, 0
- bl __unpack_d
- mov r0, sp
- adds r1, r4, 0
- bl __fpcmp_parts_d
- add sp, 0x38
- pop {r4,pc}
- thumb_func_end __cmpdf2
-
- thumb_func_start __eqdf2
-__eqdf2: @ 82E86F0
- push {r4,lr}
- sub sp, 0x38
- str r0, [sp, 0x28]
- str r1, [sp, 0x2C]
- str r2, [sp, 0x30]
- str r3, [sp, 0x34]
- add r0, sp, 0x28
- mov r1, sp
- bl __unpack_d
- add r0, sp, 0x30
- add r4, sp, 0x14
- adds r1, r4, 0
- bl __unpack_d
- movs r1, 0
- ldr r0, [sp]
- cmp r0, 0x1
- bhi _082E8718
- movs r1, 0x1
-_082E8718:
- cmp r1, 0
- bne _082E872A
- movs r1, 0
- ldr r0, [sp, 0x14]
- cmp r0, 0x1
- bhi _082E8726
- movs r1, 0x1
-_082E8726:
- cmp r1, 0
- beq _082E872E
-_082E872A:
- movs r0, 0x1
- b _082E8736
-_082E872E:
- mov r0, sp
- adds r1, r4, 0
- bl __fpcmp_parts_d
-_082E8736:
- add sp, 0x38
- pop {r4,pc}
- thumb_func_end __eqdf2
-
- thumb_func_start __nedf2
-__nedf2: @ 82E873C
- push {r4,lr}
- sub sp, 0x38
- str r0, [sp, 0x28]
- str r1, [sp, 0x2C]
- str r2, [sp, 0x30]
- str r3, [sp, 0x34]
- add r0, sp, 0x28
- mov r1, sp
- bl __unpack_d
- add r0, sp, 0x30
- add r4, sp, 0x14
- adds r1, r4, 0
- bl __unpack_d
- movs r1, 0
- ldr r0, [sp]
- cmp r0, 0x1
- bhi _082E8764
- movs r1, 0x1
-_082E8764:
- cmp r1, 0
- bne _082E8776
- movs r1, 0
- ldr r0, [sp, 0x14]
- cmp r0, 0x1
- bhi _082E8772
- movs r1, 0x1
-_082E8772:
- cmp r1, 0
- beq _082E877A
-_082E8776:
- movs r0, 0x1
- b _082E8782
-_082E877A:
- mov r0, sp
- adds r1, r4, 0
- bl __fpcmp_parts_d
-_082E8782:
- add sp, 0x38
- pop {r4,pc}
- thumb_func_end __nedf2
-
- thumb_func_start __gtdf2
-__gtdf2: @ 82E8788
- push {r4,lr}
- sub sp, 0x38
- str r0, [sp, 0x28]
- str r1, [sp, 0x2C]
- str r2, [sp, 0x30]
- str r3, [sp, 0x34]
- add r0, sp, 0x28
- mov r1, sp
- bl __unpack_d
- add r0, sp, 0x30
- add r4, sp, 0x14
- adds r1, r4, 0
- bl __unpack_d
- movs r1, 0
- ldr r0, [sp]
- cmp r0, 0x1
- bhi _082E87B0
- movs r1, 0x1
-_082E87B0:
- cmp r1, 0
- bne _082E87C2
- movs r1, 0
- ldr r0, [sp, 0x14]
- cmp r0, 0x1
- bhi _082E87BE
- movs r1, 0x1
-_082E87BE:
- cmp r1, 0
- beq _082E87C8
-_082E87C2:
- movs r0, 0x1
- negs r0, r0
- b _082E87D0
-_082E87C8:
- mov r0, sp
- adds r1, r4, 0
- bl __fpcmp_parts_d
-_082E87D0:
- add sp, 0x38
- pop {r4,pc}
- thumb_func_end __gtdf2
-
- thumb_func_start __gedf2
-__gedf2: @ 82E87D4
- push {r4,lr}
- sub sp, 0x38
- str r0, [sp, 0x28]
- str r1, [sp, 0x2C]
- str r2, [sp, 0x30]
- str r3, [sp, 0x34]
- add r0, sp, 0x28
- mov r1, sp
- bl __unpack_d
- add r0, sp, 0x30
- add r4, sp, 0x14
- adds r1, r4, 0
- bl __unpack_d
- movs r1, 0
- ldr r0, [sp]
- cmp r0, 0x1
- bhi _082E87FC
- movs r1, 0x1
-_082E87FC:
- cmp r1, 0
- bne _082E880E
- movs r1, 0
- ldr r0, [sp, 0x14]
- cmp r0, 0x1
- bhi _082E880A
- movs r1, 0x1
-_082E880A:
- cmp r1, 0
- beq _082E8814
-_082E880E:
- movs r0, 0x1
- negs r0, r0
- b _082E881C
-_082E8814:
- mov r0, sp
- adds r1, r4, 0
- bl __fpcmp_parts_d
-_082E881C:
- add sp, 0x38
- pop {r4,pc}
- thumb_func_end __gedf2
-
- thumb_func_start __ltdf2
-__ltdf2: @ 82E8820
- push {r4,lr}
- sub sp, 0x38
- str r0, [sp, 0x28]
- str r1, [sp, 0x2C]
- str r2, [sp, 0x30]
- str r3, [sp, 0x34]
- add r0, sp, 0x28
- mov r1, sp
- bl __unpack_d
- add r0, sp, 0x30
- add r4, sp, 0x14
- adds r1, r4, 0
- bl __unpack_d
- movs r1, 0
- ldr r0, [sp]
- cmp r0, 0x1
- bhi _082E8848
- movs r1, 0x1
-_082E8848:
- cmp r1, 0
- bne _082E885A
- movs r1, 0
- ldr r0, [sp, 0x14]
- cmp r0, 0x1
- bhi _082E8856
- movs r1, 0x1
-_082E8856:
- cmp r1, 0
- beq _082E885E
-_082E885A:
- movs r0, 0x1
- b _082E8866
-_082E885E:
- mov r0, sp
- adds r1, r4, 0
- bl __fpcmp_parts_d
-_082E8866:
- add sp, 0x38
- pop {r4,pc}
- thumb_func_end __ltdf2
-
- thumb_func_start __ledf2
-__ledf2: @ 82E886C
- push {r4,lr}
- sub sp, 0x38
- str r0, [sp, 0x28]
- str r1, [sp, 0x2C]
- str r2, [sp, 0x30]
- str r3, [sp, 0x34]
- add r0, sp, 0x28
- mov r1, sp
- bl __unpack_d
- add r0, sp, 0x30
- add r4, sp, 0x14
- adds r1, r4, 0
- bl __unpack_d
- movs r1, 0
- ldr r0, [sp]
- cmp r0, 0x1
- bhi _082E8894
- movs r1, 0x1
-_082E8894:
- cmp r1, 0
- bne _082E88A6
- movs r1, 0
- ldr r0, [sp, 0x14]
- cmp r0, 0x1
- bhi _082E88A2
- movs r1, 0x1
-_082E88A2:
- cmp r1, 0
- beq _082E88AA
-_082E88A6:
- movs r0, 0x1
- b _082E88B2
-_082E88AA:
- mov r0, sp
- adds r1, r4, 0
- bl __fpcmp_parts_d
-_082E88B2:
- add sp, 0x38
- pop {r4,pc}
- thumb_func_end __ledf2
-
- thumb_func_start __floatsidf
-__floatsidf: @ 82E88B8
- push {r4,r5,lr}
- sub sp, 0x14
- adds r2, r0, 0
- movs r0, 0x3
- str r0, [sp]
- lsrs r1, r2, 31
- str r1, [sp, 0x4]
- cmp r2, 0
- bne _082E88D0
- movs r0, 0x2
- str r0, [sp]
- b _082E8926
-_082E88D0:
- movs r0, 0x3C
- str r0, [sp, 0x8]
- cmp r1, 0
- beq _082E88F6
- movs r0, 0x80
- lsls r0, 24
- cmp r2, r0
- bne _082E88F0
- ldr r1, _082E88EC
- ldr r0, _082E88E8
- b _082E892C
- .align 2, 0
-_082E88E8: .4byte 0xc1e00000
-_082E88EC: .4byte 0x00000000
-_082E88F0:
- negs r0, r2
- asrs r1, r0, 31
- b _082E88FA
-_082E88F6:
- adds r0, r2, 0
- asrs r1, r2, 31
-_082E88FA:
- str r0, [sp, 0xC]
- str r1, [sp, 0x10]
- ldr r0, [sp, 0x10]
- ldr r1, _082E8930
- cmp r0, r1
- bhi _082E8926
- adds r5, r1, 0
- ldr r4, [sp, 0x8]
-_082E890A:
- ldr r0, [sp, 0xC]
- ldr r1, [sp, 0x10]
- lsrs r3, r0, 31
- lsls r2, r1, 1
- adds r1, r3, 0
- orrs r1, r2
- lsls r0, 1
- str r0, [sp, 0xC]
- str r1, [sp, 0x10]
- subs r4, 0x1
- ldr r0, [sp, 0x10]
- cmp r0, r5
- bls _082E890A
- str r4, [sp, 0x8]
-_082E8926:
- mov r0, sp
- bl __pack_d
-_082E892C:
- add sp, 0x14
- pop {r4,r5,pc}
- .align 2, 0
-_082E8930: .4byte 0x0fffffff
- thumb_func_end __floatsidf
-
- thumb_func_start __fixdfsi
-__fixdfsi: @ 82E8934
- push {lr}
- sub sp, 0x1C
- str r0, [sp, 0x14]
- str r1, [sp, 0x18]
- add r0, sp, 0x14
- mov r1, sp
- bl __unpack_d
- movs r1, 0
- ldr r0, [sp]
- cmp r0, 0x2
- bne _082E894E
- movs r1, 0x1
-_082E894E:
- cmp r1, 0
- bne _082E8982
- movs r1, 0
- cmp r0, 0x1
- bhi _082E895A
- movs r1, 0x1
-_082E895A:
- cmp r1, 0
- bne _082E8982
- movs r1, 0
- cmp r0, 0x4
- bne _082E8966
- movs r1, 0x1
-_082E8966:
- cmp r1, 0
- beq _082E897C
-_082E896A:
- ldr r0, [sp, 0x4]
- ldr r1, _082E8978
- cmp r0, 0
- beq _082E89A0
- adds r1, 0x1
- b _082E89A0
- .align 2, 0
-_082E8978: .4byte 0x7fffffff
-_082E897C:
- ldr r0, [sp, 0x8]
- cmp r0, 0
- bge _082E8986
-_082E8982:
- movs r0, 0
- b _082E89A2
-_082E8986:
- cmp r0, 0x1E
- bgt _082E896A
- movs r2, 0x3C
- subs r2, r0
- ldr r0, [sp, 0xC]
- ldr r1, [sp, 0x10]
- bl __lshrdi3
- adds r1, r0, 0
- ldr r0, [sp, 0x4]
- cmp r0, 0
- beq _082E89A0
- negs r1, r1
-_082E89A0:
- adds r0, r1, 0
-_082E89A2:
- add sp, 0x1C
- pop {pc}
- thumb_func_end __fixdfsi
-
- thumb_func_start __negdf2
-__negdf2: @ 82E89A8
- push {lr}
- sub sp, 0x1C
- str r0, [sp, 0x14]
- str r1, [sp, 0x18]
- add r0, sp, 0x14
- mov r1, sp
- bl __unpack_d
- movs r1, 0
- ldr r0, [sp, 0x4]
- cmp r0, 0
- bne _082E89C2
- movs r1, 0x1
-_082E89C2:
- str r1, [sp, 0x4]
- mov r0, sp
- bl __pack_d
- add sp, 0x1C
- pop {pc}
- thumb_func_end __negdf2
-
- thumb_func_start __make_dp
-__make_dp: @ 82E89D0
- sub sp, 0x4
- push {r4,lr}
- sub sp, 0x14
- str r3, [sp, 0x1C]
- ldr r3, [sp, 0x1C]
- ldr r4, [sp, 0x20]
- str r0, [sp]
- str r1, [sp, 0x4]
- str r2, [sp, 0x8]
- str r3, [sp, 0xC]
- str r4, [sp, 0x10]
- mov r0, sp
- bl __pack_d
- add sp, 0x14
- pop {r4}
- pop {r3}
- add sp, 0x4
- bx r3
- thumb_func_end __make_dp
-
- thumb_func_start __truncdfsf2
-__truncdfsf2: @ 82E89F8
- push {r4,r5,lr}
- sub sp, 0x1C
- str r0, [sp, 0x14]
- str r1, [sp, 0x18]
- add r0, sp, 0x14
- mov r1, sp
- bl __unpack_d
- ldr r2, [sp, 0xC]
- ldr r3, [sp, 0x10]
- lsls r5, r3, 2
- lsrs r4, r2, 30
- adds r0, r5, 0
- orrs r0, r4
- adds r5, r0, 0
- ldr r4, _082E8A38
- adds r0, r2, 0
- ands r0, r4
- movs r1, 0
- orrs r0, r1
- cmp r0, 0
- beq _082E8A28
- movs r0, 0x1
- orrs r5, r0
-_082E8A28:
- ldr r0, [sp]
- ldr r1, [sp, 0x4]
- ldr r2, [sp, 0x8]
- adds r3, r5, 0
- bl __make_fp
- add sp, 0x1C
- pop {r4,r5,pc}
- .align 2, 0
-_082E8A38: .4byte 0x3fffffff
- thumb_func_end __truncdfsf2
-
- thumb_func_start __pack_f
-__pack_f: @ 82E8A3C
- push {r4-r6,lr}
- ldr r2, [r0, 0xC]
- ldr r6, [r0, 0x4]
- movs r5, 0
- movs r1, 0
- ldr r3, [r0]
- cmp r3, 0x1
- bhi _082E8A4E
- movs r1, 0x1
-_082E8A4E:
- cmp r1, 0
- beq _082E8A5C
- movs r5, 0xFF
- movs r0, 0x80
- lsls r0, 13
- orrs r2, r0
- b _082E8AC2
-_082E8A5C:
- movs r1, 0
- cmp r3, 0x4
- bne _082E8A64
- movs r1, 0x1
-_082E8A64:
- cmp r1, 0
- bne _082E8A98
- movs r1, 0
- cmp r3, 0x2
- bne _082E8A70
- movs r1, 0x1
-_082E8A70:
- cmp r1, 0
- beq _082E8A78
- movs r2, 0
- b _082E8AC2
-_082E8A78:
- cmp r2, 0
- beq _082E8AC2
- ldr r0, [r0, 0x8]
- movs r3, 0x7E
- negs r3, r3
- cmp r0, r3
- bge _082E8A94
- subs r0, r3, r0
- cmp r0, 0x19
- ble _082E8A90
- movs r2, 0
- b _082E8AC0
-_082E8A90:
- lsrs r2, r0
- b _082E8AC0
-_082E8A94:
- cmp r0, 0x7F
- ble _082E8A9E
-_082E8A98:
- movs r5, 0xFF
- movs r2, 0
- b _082E8AC2
-_082E8A9E:
- adds r5, r0, 0
- adds r5, 0x7F
- movs r0, 0x7F
- ands r0, r2
- cmp r0, 0x40
- bne _082E8AB6
- movs r0, 0x80
- ands r0, r2
- cmp r0, 0
- beq _082E8AB8
- adds r2, 0x40
- b _082E8AB8
-_082E8AB6:
- adds r2, 0x3F
-_082E8AB8:
- cmp r2, 0
- bge _082E8AC0
- lsrs r2, 1
- adds r5, 0x1
-_082E8AC0:
- lsrs r2, 7
-_082E8AC2:
- ldr r0, _082E8AE4
- ands r2, r0
- ldr r0, _082E8AE8
- ands r4, r0
- orrs r4, r2
- movs r0, 0xFF
- ands r5, r0
- lsls r1, r5, 23
- ldr r0, _082E8AEC
- ands r4, r0
- orrs r4, r1
- lsls r1, r6, 31
- ldr r0, _082E8AF0
- ands r4, r0
- orrs r4, r1
- adds r0, r4, 0
- pop {r4-r6,pc}
- .align 2, 0
-_082E8AE4: .4byte 0x007fffff
-_082E8AE8: .4byte 0xff800000
-_082E8AEC: .4byte 0x807fffff
-_082E8AF0: .4byte 0x7fffffff
- thumb_func_end __pack_f
-
- thumb_func_start __unpack_f
-__unpack_f: @ 82E8AF4
- push {r4,lr}
- adds r3, r1, 0
- ldr r0, [r0]
- lsls r1, r0, 9
- lsrs r2, r1, 9
- lsls r1, r0, 1
- lsrs r1, 24
- lsrs r0, 31
- str r0, [r3, 0x4]
- cmp r1, 0
- bne _082E8B38
- cmp r2, 0
- bne _082E8B14
- movs r0, 0x2
- str r0, [r3]
- b _082E8B6C
-_082E8B14:
- adds r4, r1, 0
- subs r4, 0x7E
- str r4, [r3, 0x8]
- lsls r2, 7
- movs r0, 0x3
- str r0, [r3]
- ldr r1, _082E8B34
- cmp r2, r1
- bhi _082E8B54
- adds r0, r4, 0
-_082E8B28:
- lsls r2, 1
- subs r0, 0x1
- cmp r2, r1
- bls _082E8B28
- str r0, [r3, 0x8]
- b _082E8B54
- .align 2, 0
-_082E8B34: .4byte 0x3fffffff
-_082E8B38:
- cmp r1, 0xFF
- bne _082E8B58
- cmp r2, 0
- bne _082E8B46
- movs r0, 0x4
- str r0, [r3]
- b _082E8B6C
-_082E8B46:
- movs r0, 0x80
- lsls r0, 13
- ands r0, r2
- cmp r0, 0
- beq _082E8B52
- movs r0, 0x1
-_082E8B52:
- str r0, [r3]
-_082E8B54:
- str r2, [r3, 0xC]
- b _082E8B6C
-_082E8B58:
- adds r0, r1, 0
- subs r0, 0x7F
- str r0, [r3, 0x8]
- movs r0, 0x3
- str r0, [r3]
- lsls r0, r2, 7
- movs r1, 0x80
- lsls r1, 23
- orrs r0, r1
- str r0, [r3, 0xC]
-_082E8B6C:
- pop {r4,pc}
- thumb_func_end __unpack_f
-
- thumb_func_start __fpadd_parts_f
-__fpadd_parts_f: @ 82E8B70
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r6, r0, 0
- adds r7, r1, 0
- adds r5, r2, 0
- movs r0, 0
- ldr r2, [r6]
- cmp r2, 0x1
- bhi _082E8B86
- movs r0, 0x1
-_082E8B86:
- cmp r0, 0
- beq _082E8B8E
-_082E8B8A:
- adds r0, r6, 0
- b _082E8CE4
-_082E8B8E:
- movs r1, 0
- ldr r0, [r7]
- cmp r0, 0x1
- bhi _082E8B98
- movs r1, 0x1
-_082E8B98:
- cmp r1, 0
- bne _082E8C0C
- movs r1, 0
- cmp r2, 0x4
- bne _082E8BA4
- movs r1, 0x1
-_082E8BA4:
- cmp r1, 0
- beq _082E8BC4
- movs r1, 0
- cmp r0, 0x4
- bne _082E8BB0
- movs r1, 0x1
-_082E8BB0:
- cmp r1, 0
- beq _082E8B8A
- ldr r1, [r6, 0x4]
- ldr r0, [r7, 0x4]
- cmp r1, r0
- beq _082E8B8A
- ldr r0, _082E8BC0
- b _082E8CE4
- .align 2, 0
-_082E8BC0: .4byte 0x03001a98
-_082E8BC4:
- movs r1, 0
- cmp r0, 0x4
- bne _082E8BCC
- movs r1, 0x1
-_082E8BCC:
- cmp r1, 0
- bne _082E8C0C
- movs r1, 0
- cmp r0, 0x2
- bne _082E8BD8
- movs r1, 0x1
-_082E8BD8:
- cmp r1, 0
- beq _082E8BFE
- movs r0, 0
- cmp r2, 0x2
- bne _082E8BE4
- movs r0, 0x1
-_082E8BE4:
- cmp r0, 0
- beq _082E8B8A
- adds r1, r5, 0
- adds r0, r6, 0
- ldm r0!, {r2-r4}
- stm r1!, {r2-r4}
- ldr r0, [r0]
- str r0, [r1]
- ldr r0, [r6, 0x4]
- ldr r1, [r7, 0x4]
- ands r0, r1
- str r0, [r5, 0x4]
- b _082E8CE2
-_082E8BFE:
- movs r1, 0
- ldr r0, [r6]
- cmp r0, 0x2
- bne _082E8C08
- movs r1, 0x1
-_082E8C08:
- cmp r1, 0
- beq _082E8C10
-_082E8C0C:
- adds r0, r7, 0
- b _082E8CE4
-_082E8C10:
- ldr r1, [r6, 0x8]
- ldr r3, [r7, 0x8]
- ldr r2, [r6, 0xC]
- ldr r4, [r7, 0xC]
- subs r0, r1, r3
- cmp r0, 0
- bge _082E8C20
- negs r0, r0
-_082E8C20:
- cmp r0, 0x1F
- bgt _082E8C64
- ldr r6, [r6, 0x4]
- ldr r7, [r7, 0x4]
- mov r8, r7
- cmp r1, r3
- ble _082E8C46
- movs r7, 0x1
- mov r12, r7
- subs r3, r1, r3
-_082E8C34:
- subs r3, 0x1
- adds r0, r4, 0
- mov r7, r12
- ands r0, r7
- lsrs r4, 1
- orrs r4, r0
- cmp r3, 0
- bne _082E8C34
- adds r3, r1, 0
-_082E8C46:
- cmp r3, r1
- ble _082E8C76
- movs r0, 0x1
- mov r12, r0
- subs r1, r3, r1
-_082E8C50:
- subs r1, 0x1
- adds r0, r2, 0
- mov r7, r12
- ands r0, r7
- lsrs r2, 1
- orrs r2, r0
- cmp r1, 0
- bne _082E8C50
- adds r1, r3, 0
- b _082E8C76
-_082E8C64:
- cmp r1, r3
- ble _082E8C6C
- movs r4, 0
- b _082E8C70
-_082E8C6C:
- adds r1, r3, 0
- movs r2, 0
-_082E8C70:
- ldr r6, [r6, 0x4]
- ldr r7, [r7, 0x4]
- mov r8, r7
-_082E8C76:
- cmp r6, r8
- beq _082E8CC0
- cmp r6, 0
- beq _082E8C82
- subs r3, r4, r2
- b _082E8C84
-_082E8C82:
- subs r3, r2, r4
-_082E8C84:
- cmp r3, 0
- blt _082E8C92
- movs r0, 0
- str r0, [r5, 0x4]
- str r1, [r5, 0x8]
- str r3, [r5, 0xC]
- b _082E8C9C
-_082E8C92:
- movs r0, 0x1
- str r0, [r5, 0x4]
- str r1, [r5, 0x8]
- negs r0, r3
- str r0, [r5, 0xC]
-_082E8C9C:
- ldr r1, [r5, 0xC]
- subs r0, r1, 0x1
- ldr r2, _082E8CBC
- cmp r0, r2
- bhi _082E8CC8
-_082E8CA6:
- lsls r0, r1, 1
- str r0, [r5, 0xC]
- ldr r1, [r5, 0x8]
- subs r1, 0x1
- str r1, [r5, 0x8]
- adds r1, r0, 0
- subs r0, r1, 0x1
- cmp r0, r2
- bls _082E8CA6
- b _082E8CC8
- .align 2, 0
-_082E8CBC: .4byte 0x3ffffffe
-_082E8CC0:
- str r6, [r5, 0x4]
- str r1, [r5, 0x8]
- adds r0, r2, r4
- str r0, [r5, 0xC]
-_082E8CC8:
- movs r0, 0x3
- str r0, [r5]
- ldr r1, [r5, 0xC]
- cmp r1, 0
- bge _082E8CE2
- movs r0, 0x1
- ands r0, r1
- lsrs r1, 1
- orrs r0, r1
- str r0, [r5, 0xC]
- ldr r0, [r5, 0x8]
- adds r0, 0x1
- str r0, [r5, 0x8]
-_082E8CE2:
- adds r0, r5, 0
-_082E8CE4:
- pop {r3}
- mov r8, r3
- pop {r4-r7,pc}
- thumb_func_end __fpadd_parts_f
-
- thumb_func_start __addsf3
-__addsf3: @ 82E8CEC
- push {r4,lr}
- sub sp, 0x38
- str r0, [sp, 0x30]
- str r1, [sp, 0x34]
- add r0, sp, 0x30
- mov r1, sp
- bl __unpack_f
- add r0, sp, 0x34
- add r4, sp, 0x10
- adds r1, r4, 0
- bl __unpack_f
- add r2, sp, 0x20
- mov r0, sp
- adds r1, r4, 0
- bl __fpadd_parts_f
- bl __pack_f
- add sp, 0x38
- pop {r4,pc}
- thumb_func_end __addsf3
-
- thumb_func_start __subsf3
-__subsf3: @ 82E8D18
- push {r4,lr}
- sub sp, 0x38
- str r0, [sp, 0x30]
- str r1, [sp, 0x34]
- add r0, sp, 0x30
- mov r1, sp
- bl __unpack_f
- add r0, sp, 0x34
- add r4, sp, 0x10
- adds r1, r4, 0
- bl __unpack_f
- ldr r0, [r4, 0x4]
- movs r1, 0x1
- eors r0, r1
- str r0, [r4, 0x4]
- add r2, sp, 0x20
- mov r0, sp
- adds r1, r4, 0
- bl __fpadd_parts_f
- bl __pack_f
- add sp, 0x38
- pop {r4,pc}
- thumb_func_end __subsf3
-
- thumb_func_start __mulsf3
-__mulsf3: @ 82E8D4C
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x38
- str r0, [sp, 0x30]
- str r1, [sp, 0x34]
- add r0, sp, 0x30
- mov r1, sp
- bl __unpack_f
- add r0, sp, 0x34
- add r4, sp, 0x10
- adds r1, r4, 0
- bl __unpack_f
- mov r7, sp
- add r0, sp, 0x20
- mov r8, r0
- movs r0, 0
- ldr r1, [sp]
- mov r9, r8
- cmp r1, 0x1
- bhi _082E8D7E
- movs r0, 0x1
-_082E8D7E:
- cmp r0, 0
- bne _082E8DDC
- movs r2, 0
- ldr r0, [sp, 0x10]
- cmp r0, 0x1
- bhi _082E8D8C
- movs r2, 0x1
-_082E8D8C:
- cmp r2, 0
- beq _082E8D94
- ldr r0, [sp, 0x4]
- b _082E8DFC
-_082E8D94:
- movs r2, 0
- cmp r1, 0x4
- bne _082E8D9C
- movs r2, 0x1
-_082E8D9C:
- cmp r2, 0
- beq _082E8DAE
- movs r1, 0
- cmp r0, 0x2
- bne _082E8DA8
- movs r1, 0x1
-_082E8DA8:
- cmp r1, 0
- bne _082E8DC6
- b _082E8DDC
-_082E8DAE:
- movs r2, 0
- cmp r0, 0x4
- bne _082E8DB6
- movs r2, 0x1
-_082E8DB6:
- cmp r2, 0
- beq _082E8DD0
- movs r0, 0
- cmp r1, 0x2
- bne _082E8DC2
- movs r0, 0x1
-_082E8DC2:
- cmp r0, 0
- beq _082E8DFA
-_082E8DC6:
- ldr r0, _082E8DCC
- b _082E8E9E
- .align 2, 0
-_082E8DCC: .4byte 0x03001a98
-_082E8DD0:
- movs r2, 0
- cmp r1, 0x2
- bne _082E8DD8
- movs r2, 0x1
-_082E8DD8:
- cmp r2, 0
- beq _082E8DEE
-_082E8DDC:
- ldr r0, [sp, 0x4]
- ldr r1, [sp, 0x14]
- eors r0, r1
- negs r1, r0
- orrs r1, r0
- lsrs r1, 31
- str r1, [sp, 0x4]
- mov r0, sp
- b _082E8E9E
-_082E8DEE:
- movs r1, 0
- cmp r0, 0x2
- bne _082E8DF6
- movs r1, 0x1
-_082E8DF6:
- cmp r1, 0
- beq _082E8E0C
-_082E8DFA:
- ldr r0, [r7, 0x4]
-_082E8DFC:
- ldr r1, [sp, 0x14]
- eors r0, r1
- negs r1, r0
- orrs r1, r0
- lsrs r1, 31
- str r1, [sp, 0x14]
- adds r0, r4, 0
- b _082E8E9E
-_082E8E0C:
- ldr r0, [r7, 0xC]
- movs r1, 0
- ldr r2, [sp, 0x1C]
- movs r3, 0
- bl __muldi3
- adds r2, r1, 0
- adds r5, r2, 0
- adds r6, r0, 0
- ldr r4, [r7, 0x8]
- ldr r0, [sp, 0x18]
- adds r4, r0
- str r4, [sp, 0x28]
- ldr r1, [r7, 0x4]
- ldr r0, [sp, 0x14]
- eors r1, r0
- negs r0, r1
- orrs r0, r1
- lsrs r0, 31
- str r0, [sp, 0x24]
- adds r4, 0x2
- str r4, [sp, 0x28]
- cmp r2, 0
- bge _082E8E58
- movs r2, 0x1
- movs r1, 0x80
- lsls r1, 24
-_082E8E42:
- adds r4, 0x1
- adds r0, r5, 0
- ands r0, r2
- cmp r0, 0
- beq _082E8E50
- lsrs r6, 1
- orrs r6, r1
-_082E8E50:
- lsrs r5, 1
- cmp r5, 0
- blt _082E8E42
- str r4, [sp, 0x28]
-_082E8E58:
- ldr r0, _082E8EAC
- cmp r5, r0
- bhi _082E8E7E
- movs r4, 0x80
- lsls r4, 24
- movs r3, 0x1
- adds r2, r0, 0
- ldr r1, [sp, 0x28]
-_082E8E68:
- subs r1, 0x1
- lsls r5, 1
- adds r0, r6, 0
- ands r0, r4
- cmp r0, 0
- beq _082E8E76
- orrs r5, r3
-_082E8E76:
- lsls r6, 1
- cmp r5, r2
- bls _082E8E68
- str r1, [sp, 0x28]
-_082E8E7E:
- movs r0, 0x7F
- ands r0, r5
- cmp r0, 0x40
- bne _082E8E94
- movs r0, 0x80
- ands r0, r5
- cmp r0, 0
- bne _082E8E92
- cmp r6, 0
- beq _082E8E94
-_082E8E92:
- adds r5, 0x40
-_082E8E94:
- str r5, [sp, 0x2C]
- movs r0, 0x3
- mov r1, r8
- str r0, [r1]
- mov r0, r9
-_082E8E9E:
- bl __pack_f
- add sp, 0x38
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7,pc}
- .align 2, 0
-_082E8EAC: .4byte 0x3fffffff
- thumb_func_end __mulsf3
-
- thumb_func_start __divsf3
-__divsf3: @ 82E8EB0
- push {r4-r6,lr}
- sub sp, 0x28
- str r0, [sp, 0x20]
- str r1, [sp, 0x24]
- add r0, sp, 0x20
- mov r1, sp
- bl __unpack_f
- add r0, sp, 0x24
- add r5, sp, 0x10
- adds r1, r5, 0
- bl __unpack_f
- mov r4, sp
- movs r0, 0
- ldr r3, [sp]
- cmp r3, 0x1
- bhi _082E8ED6
- movs r0, 0x1
-_082E8ED6:
- cmp r0, 0
- beq _082E8EDE
- mov r1, sp
- b _082E8F90
-_082E8EDE:
- movs r0, 0
- ldr r2, [sp, 0x10]
- adds r6, r2, 0
- cmp r2, 0x1
- bhi _082E8EEA
- movs r0, 0x1
-_082E8EEA:
- cmp r0, 0
- beq _082E8EF2
- adds r1, r5, 0
- b _082E8F90
-_082E8EF2:
- ldr r0, [sp, 0x4]
- ldr r1, [sp, 0x14]
- eors r0, r1
- str r0, [sp, 0x4]
- movs r0, 0
- cmp r3, 0x4
- bne _082E8F02
- movs r0, 0x1
-_082E8F02:
- cmp r0, 0
- bne _082E8F12
- movs r0, 0
- cmp r3, 0x2
- bne _082E8F0E
- movs r0, 0x1
-_082E8F0E:
- cmp r0, 0
- beq _082E8F24
-_082E8F12:
- ldr r0, [r4]
- adds r1, r4, 0
- cmp r0, r6
- bne _082E8F90
- ldr r1, _082E8F20
- b _082E8F90
- .align 2, 0
-_082E8F20: .4byte 0x03001a98
-_082E8F24:
- movs r1, 0
- cmp r2, 0x4
- bne _082E8F2C
- movs r1, 0x1
-_082E8F2C:
- cmp r1, 0
- beq _082E8F38
- str r0, [sp, 0xC]
- str r0, [sp, 0x8]
- mov r1, sp
- b _082E8F90
-_082E8F38:
- movs r0, 0
- cmp r2, 0x2
- bne _082E8F40
- movs r0, 0x1
-_082E8F40:
- cmp r0, 0
- beq _082E8F4A
- movs r0, 0x4
- str r0, [r4]
- b _082E8F8E
-_082E8F4A:
- ldr r1, [r4, 0x8]
- ldr r0, [sp, 0x18]
- subs r0, r1, r0
- str r0, [r4, 0x8]
- ldr r2, [r4, 0xC]
- ldr r3, [sp, 0x1C]
- cmp r2, r3
- bcs _082E8F60
- lsls r2, 1
- subs r0, 0x1
- str r0, [r4, 0x8]
-_082E8F60:
- movs r0, 0x80
- lsls r0, 23
- movs r1, 0
-_082E8F66:
- cmp r2, r3
- bcc _082E8F6E
- orrs r1, r0
- subs r2, r3
-_082E8F6E:
- lsrs r0, 1
- lsls r2, 1
- cmp r0, 0
- bne _082E8F66
- movs r0, 0x7F
- ands r0, r1
- cmp r0, 0x40
- bne _082E8F8C
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _082E8F8A
- cmp r2, 0
- beq _082E8F8C
-_082E8F8A:
- adds r1, 0x40
-_082E8F8C:
- str r1, [r4, 0xC]
-_082E8F8E:
- adds r1, r4, 0
-_082E8F90:
- adds r0, r1, 0
- bl __pack_f
- add sp, 0x28
- pop {r4-r6,pc}
- thumb_func_end __divsf3
-
- thumb_func_start __fpcmp_parts_f
-__fpcmp_parts_f: @ 82E8F9C
- push {r4,lr}
- adds r4, r0, 0
- movs r0, 0
- ldr r2, [r4]
- cmp r2, 0x1
- bhi _082E8FAA
- movs r0, 0x1
-_082E8FAA:
- cmp r0, 0
- bne _082E8FBC
- movs r0, 0
- ldr r3, [r1]
- cmp r3, 0x1
- bhi _082E8FB8
- movs r0, 0x1
-_082E8FB8:
- cmp r0, 0
- beq _082E8FC0
-_082E8FBC:
- movs r0, 0x1
- b _082E907E
-_082E8FC0:
- movs r0, 0
- cmp r2, 0x4
- bne _082E8FC8
- movs r0, 0x1
-_082E8FC8:
- cmp r0, 0
- beq _082E8FE0
- movs r0, 0
- cmp r3, 0x4
- bne _082E8FD4
- movs r0, 0x1
-_082E8FD4:
- cmp r0, 0
- beq _082E8FE0
- ldr r0, [r1, 0x4]
- ldr r1, [r4, 0x4]
- subs r0, r1
- b _082E907E
-_082E8FE0:
- movs r2, 0
- ldr r0, [r4]
- cmp r0, 0x4
- bne _082E8FEA
- movs r2, 0x1
-_082E8FEA:
- cmp r2, 0
- bne _082E9038
- movs r2, 0
- cmp r3, 0x4
- bne _082E8FF6
- movs r2, 0x1
-_082E8FF6:
- cmp r2, 0
- beq _082E9008
-_082E8FFA:
- ldr r0, [r1, 0x4]
- movs r1, 0x1
- negs r1, r1
- cmp r0, 0
- beq _082E9042
- movs r1, 0x1
- b _082E9042
-_082E9008:
- movs r2, 0
- cmp r0, 0x2
- bne _082E9010
- movs r2, 0x1
-_082E9010:
- cmp r2, 0
- beq _082E9020
- movs r2, 0
- cmp r3, 0x2
- bne _082E901C
- movs r2, 0x1
-_082E901C:
- cmp r2, 0
- bne _082E907C
-_082E9020:
- movs r2, 0
- cmp r0, 0x2
- bne _082E9028
- movs r2, 0x1
-_082E9028:
- cmp r2, 0
- bne _082E8FFA
- movs r0, 0
- cmp r3, 0x2
- bne _082E9034
- movs r0, 0x1
-_082E9034:
- cmp r0, 0
- beq _082E9046
-_082E9038:
- ldr r0, [r4, 0x4]
- movs r1, 0x1
- cmp r0, 0
- beq _082E9042
- subs r1, 0x2
-_082E9042:
- adds r0, r1, 0
- b _082E907E
-_082E9046:
- ldr r3, [r4, 0x4]
- ldr r0, [r1, 0x4]
- cmp r3, r0
- beq _082E9058
-_082E904E:
- movs r0, 0x1
- cmp r3, 0
- beq _082E907E
- subs r0, 0x2
- b _082E907E
-_082E9058:
- ldr r2, [r4, 0x8]
- ldr r0, [r1, 0x8]
- cmp r2, r0
- bgt _082E904E
- cmp r2, r0
- bge _082E9070
-_082E9064:
- movs r0, 0x1
- negs r0, r0
- cmp r3, 0
- beq _082E907E
- movs r0, 0x1
- b _082E907E
-_082E9070:
- ldr r0, [r4, 0xC]
- ldr r1, [r1, 0xC]
- cmp r0, r1
- bhi _082E904E
- cmp r0, r1
- bcc _082E9064
-_082E907C:
- movs r0, 0
-_082E907E:
- pop {r4,pc}
- thumb_func_end __fpcmp_parts_f
-
- thumb_func_start __cmpsf2
-__cmpsf2: @ 82E9080
- push {r4,lr}
- sub sp, 0x28
- str r0, [sp, 0x20]
- str r1, [sp, 0x24]
- add r0, sp, 0x20
- mov r1, sp
- bl __unpack_f
- add r0, sp, 0x24
- add r4, sp, 0x10
- adds r1, r4, 0
- bl __unpack_f
- mov r0, sp
- adds r1, r4, 0
- bl __fpcmp_parts_f
- add sp, 0x28
- pop {r4,pc}
- thumb_func_end __cmpsf2
-
- thumb_func_start __eqsf2
-__eqsf2: @ 82E90A8
- push {r4,lr}
- sub sp, 0x28
- str r0, [sp, 0x20]
- str r1, [sp, 0x24]
- add r0, sp, 0x20
- mov r1, sp
- bl __unpack_f
- add r0, sp, 0x24
- add r4, sp, 0x10
- adds r1, r4, 0
- bl __unpack_f
- movs r1, 0
- ldr r0, [sp]
- cmp r0, 0x1
- bhi _082E90CC
- movs r1, 0x1
-_082E90CC:
- cmp r1, 0
- bne _082E90DE
- movs r1, 0
- ldr r0, [sp, 0x10]
- cmp r0, 0x1
- bhi _082E90DA
- movs r1, 0x1
-_082E90DA:
- cmp r1, 0
- beq _082E90E2
-_082E90DE:
- movs r0, 0x1
- b _082E90EA
-_082E90E2:
- mov r0, sp
- adds r1, r4, 0
- bl __fpcmp_parts_f
-_082E90EA:
- add sp, 0x28
- pop {r4,pc}
- thumb_func_end __eqsf2
-
- thumb_func_start __nesf2
-__nesf2: @ 82E90F0
- push {r4,lr}
- sub sp, 0x28
- str r0, [sp, 0x20]
- str r1, [sp, 0x24]
- add r0, sp, 0x20
- mov r1, sp
- bl __unpack_f
- add r0, sp, 0x24
- add r4, sp, 0x10
- adds r1, r4, 0
- bl __unpack_f
- movs r1, 0
- ldr r0, [sp]
- cmp r0, 0x1
- bhi _082E9114
- movs r1, 0x1
-_082E9114:
- cmp r1, 0
- bne _082E9126
- movs r1, 0
- ldr r0, [sp, 0x10]
- cmp r0, 0x1
- bhi _082E9122
- movs r1, 0x1
-_082E9122:
- cmp r1, 0
- beq _082E912A
-_082E9126:
- movs r0, 0x1
- b _082E9132
-_082E912A:
- mov r0, sp
- adds r1, r4, 0
- bl __fpcmp_parts_f
-_082E9132:
- add sp, 0x28
- pop {r4,pc}
- thumb_func_end __nesf2
-
- thumb_func_start __gtsf2
-__gtsf2: @ 82E9138
- push {r4,lr}
- sub sp, 0x28
- str r0, [sp, 0x20]
- str r1, [sp, 0x24]
- add r0, sp, 0x20
- mov r1, sp
- bl __unpack_f
- add r0, sp, 0x24
- add r4, sp, 0x10
- adds r1, r4, 0
- bl __unpack_f
- movs r1, 0
- ldr r0, [sp]
- cmp r0, 0x1
- bhi _082E915C
- movs r1, 0x1
-_082E915C:
- cmp r1, 0
- bne _082E916E
- movs r1, 0
- ldr r0, [sp, 0x10]
- cmp r0, 0x1
- bhi _082E916A
- movs r1, 0x1
-_082E916A:
- cmp r1, 0
- beq _082E9174
-_082E916E:
- movs r0, 0x1
- negs r0, r0
- b _082E917C
-_082E9174:
- mov r0, sp
- adds r1, r4, 0
- bl __fpcmp_parts_f
-_082E917C:
- add sp, 0x28
- pop {r4,pc}
- thumb_func_end __gtsf2
-
- thumb_func_start __gesf2
-__gesf2: @ 82E9180
- push {r4,lr}
- sub sp, 0x28
- str r0, [sp, 0x20]
- str r1, [sp, 0x24]
- add r0, sp, 0x20
- mov r1, sp
- bl __unpack_f
- add r0, sp, 0x24
- add r4, sp, 0x10
- adds r1, r4, 0
- bl __unpack_f
- movs r1, 0
- ldr r0, [sp]
- cmp r0, 0x1
- bhi _082E91A4
- movs r1, 0x1
-_082E91A4:
- cmp r1, 0
- bne _082E91B6
- movs r1, 0
- ldr r0, [sp, 0x10]
- cmp r0, 0x1
- bhi _082E91B2
- movs r1, 0x1
-_082E91B2:
- cmp r1, 0
- beq _082E91BC
-_082E91B6:
- movs r0, 0x1
- negs r0, r0
- b _082E91C4
-_082E91BC:
- mov r0, sp
- adds r1, r4, 0
- bl __fpcmp_parts_f
-_082E91C4:
- add sp, 0x28
- pop {r4,pc}
- thumb_func_end __gesf2
-
- thumb_func_start __ltsf2
-__ltsf2: @ 82E91C8
- push {r4,lr}
- sub sp, 0x28
- str r0, [sp, 0x20]
- str r1, [sp, 0x24]
- add r0, sp, 0x20
- mov r1, sp
- bl __unpack_f
- add r0, sp, 0x24
- add r4, sp, 0x10
- adds r1, r4, 0
- bl __unpack_f
- movs r1, 0
- ldr r0, [sp]
- cmp r0, 0x1
- bhi _082E91EC
- movs r1, 0x1
-_082E91EC:
- cmp r1, 0
- bne _082E91FE
- movs r1, 0
- ldr r0, [sp, 0x10]
- cmp r0, 0x1
- bhi _082E91FA
- movs r1, 0x1
-_082E91FA:
- cmp r1, 0
- beq _082E9202
-_082E91FE:
- movs r0, 0x1
- b _082E920A
-_082E9202:
- mov r0, sp
- adds r1, r4, 0
- bl __fpcmp_parts_f
-_082E920A:
- add sp, 0x28
- pop {r4,pc}
- thumb_func_end __ltsf2
-
- thumb_func_start __lesf2
-__lesf2: @ 82E9210
- push {r4,lr}
- sub sp, 0x28
- str r0, [sp, 0x20]
- str r1, [sp, 0x24]
- add r0, sp, 0x20
- mov r1, sp
- bl __unpack_f
- add r0, sp, 0x24
- add r4, sp, 0x10
- adds r1, r4, 0
- bl __unpack_f
- movs r1, 0
- ldr r0, [sp]
- cmp r0, 0x1
- bhi _082E9234
- movs r1, 0x1
-_082E9234:
- cmp r1, 0
- bne _082E9246
- movs r1, 0
- ldr r0, [sp, 0x10]
- cmp r0, 0x1
- bhi _082E9242
- movs r1, 0x1
-_082E9242:
- cmp r1, 0
- beq _082E924A
-_082E9246:
- movs r0, 0x1
- b _082E9252
-_082E924A:
- mov r0, sp
- adds r1, r4, 0
- bl __fpcmp_parts_f
-_082E9252:
- add sp, 0x28
- pop {r4,pc}
- thumb_func_end __lesf2
-
- thumb_func_start __floatsisf
-__floatsisf: @ 82E9258
- push {lr}
- sub sp, 0x10
- adds r1, r0, 0
- movs r0, 0x3
- str r0, [sp]
- lsrs r2, r1, 31
- str r2, [sp, 0x4]
- cmp r1, 0
- bne _082E9270
- movs r0, 0x2
- str r0, [sp]
- b _082E92A8
-_082E9270:
- movs r0, 0x1E
- str r0, [sp, 0x8]
- cmp r2, 0
- beq _082E928E
- movs r0, 0x80
- lsls r0, 24
- cmp r1, r0
- bne _082E9288
- ldr r0, _082E9284
- b _082E92AE
- .align 2, 0
-_082E9284: .4byte 0xcf000000
-_082E9288:
- negs r0, r1
- str r0, [sp, 0xC]
- b _082E9290
-_082E928E:
- str r1, [sp, 0xC]
-_082E9290:
- ldr r2, [sp, 0xC]
- ldr r3, _082E92B4
- cmp r2, r3
- bhi _082E92A8
- ldr r1, [sp, 0x8]
-_082E929A:
- lsls r0, r2, 1
- subs r1, 0x1
- adds r2, r0, 0
- cmp r0, r3
- bls _082E929A
- str r1, [sp, 0x8]
- str r0, [sp, 0xC]
-_082E92A8:
- mov r0, sp
- bl __pack_f
-_082E92AE:
- add sp, 0x10
- pop {pc}
- .align 2, 0
-_082E92B4: .4byte 0x3fffffff
- thumb_func_end __floatsisf
-
- thumb_func_start __fixsfsi
-__fixsfsi: @ 82E92B8
- push {lr}
- sub sp, 0x14
- str r0, [sp, 0x10]
- add r0, sp, 0x10
- mov r1, sp
- bl __unpack_f
- movs r1, 0
- ldr r0, [sp]
- cmp r0, 0x2
- bne _082E92D0
- movs r1, 0x1
-_082E92D0:
- cmp r1, 0
- bne _082E9302
- movs r1, 0
- cmp r0, 0x1
- bhi _082E92DC
- movs r1, 0x1
-_082E92DC:
- cmp r1, 0
- bne _082E9302
- movs r1, 0
- cmp r0, 0x4
- bne _082E92E8
- movs r1, 0x1
-_082E92E8:
- cmp r1, 0
- beq _082E92FC
-_082E92EC:
- ldr r0, [sp, 0x4]
- ldr r1, _082E92F8
- cmp r0, 0
- beq _082E931A
- adds r1, 0x1
- b _082E931A
- .align 2, 0
-_082E92F8: .4byte 0x7fffffff
-_082E92FC:
- ldr r1, [sp, 0x8]
- cmp r1, 0
- bge _082E9306
-_082E9302:
- movs r0, 0
- b _082E931C
-_082E9306:
- cmp r1, 0x1E
- bgt _082E92EC
- movs r0, 0x1E
- subs r0, r1
- ldr r1, [sp, 0xC]
- lsrs r1, r0
- ldr r0, [sp, 0x4]
- cmp r0, 0
- beq _082E931A
- negs r1, r1
-_082E931A:
- adds r0, r1, 0
-_082E931C:
- add sp, 0x14
- pop {pc}
- thumb_func_end __fixsfsi
-
- thumb_func_start __negsf2
-__negsf2: @ 82E9320
- push {lr}
- sub sp, 0x14
- str r0, [sp, 0x10]
- add r0, sp, 0x10
- mov r1, sp
- bl __unpack_f
- movs r1, 0
- ldr r0, [sp, 0x4]
- cmp r0, 0
- bne _082E9338
- movs r1, 0x1
-_082E9338:
- str r1, [sp, 0x4]
- mov r0, sp
- bl __pack_f
- add sp, 0x14
- pop {pc}
- thumb_func_end __negsf2
-
- thumb_func_start __make_fp
-__make_fp: @ 82E9344
- push {lr}
- sub sp, 0x10
- str r0, [sp]
- str r1, [sp, 0x4]
- str r2, [sp, 0x8]
- str r3, [sp, 0xC]
- mov r0, sp
- bl __pack_f
- add sp, 0x10
- pop {pc}
- thumb_func_end __make_fp
-
- thumb_func_start __extendsfdf2
-__extendsfdf2: @ 82E935C
- push {r4-r6,lr}
- sub sp, 0x18
- str r0, [sp, 0x14]
- add r0, sp, 0x14
- add r1, sp, 0x4
- bl __unpack_f
- ldr r0, [sp, 0x4]
- ldr r1, [sp, 0x8]
- ldr r2, [sp, 0xC]
- ldr r3, [sp, 0x10]
- movs r4, 0
- lsrs r6, r3, 2
- lsls r5, r4, 30
- adds r4, r6, 0
- orrs r4, r5
- lsls r3, 30
- str r4, [sp]
- bl __make_dp
- add sp, 0x18
- pop {r4-r6,pc}
- thumb_func_end __extendsfdf2
-
- thumb_func_start __lshrdi3
-__lshrdi3: @ 82E9388
- push {r4-r6,lr}
- adds r6, r1, 0
- adds r5, r0, 0
- cmp r2, 0
- beq _082E93B8
- movs r0, 0x20
- subs r0, r2
- cmp r0, 0
- bgt _082E93A4
- movs r4, 0
- negs r0, r0
- adds r3, r6, 0
- lsrs r3, r0
- b _082E93B4
-_082E93A4:
- adds r1, r6, 0
- lsls r1, r0
- adds r4, r6, 0
- lsrs r4, r2
- adds r0, r5, 0
- lsrs r0, r2
- adds r3, r0, 0
- orrs r3, r1
-_082E93B4:
- adds r1, r4, 0
- adds r0, r3, 0
-_082E93B8:
- pop {r4-r6,pc}
- thumb_func_end __lshrdi3
-
- thumb_func_start __negdi2
-__negdi2: @ 82E93BC
- push {r4,lr}
- negs r2, r0
- adds r3, r2, 0
- negs r1, r1
- cmp r2, 0
- beq _082E93CA
- subs r1, 0x1
-_082E93CA:
- adds r4, r1, 0
- adds r1, r4, 0
- adds r0, r3, 0
- pop {r4,pc}
- thumb_func_end __negdi2
-
- thumb_func_start memcpy
-memcpy: @ 82E93D4
- push {r4,r5,lr}
- adds r5, r0, 0
- adds r4, r5, 0
- adds r3, r1, 0
- cmp r2, 0xF
- bls _082E9414
- adds r0, r3, 0
- orrs r0, r5
- movs r1, 0x3
- ands r0, r1
- cmp r0, 0
- bne _082E9414
- adds r1, r5, 0
-_082E93EE:
- ldm r3!, {r0}
- stm r1!, {r0}
- ldm r3!, {r0}
- stm r1!, {r0}
- ldm r3!, {r0}
- stm r1!, {r0}
- ldm r3!, {r0}
- stm r1!, {r0}
- subs r2, 0x10
- cmp r2, 0xF
- bhi _082E93EE
- cmp r2, 0x3
- bls _082E9412
-_082E9408:
- ldm r3!, {r0}
- stm r1!, {r0}
- subs r2, 0x4
- cmp r2, 0x3
- bhi _082E9408
-_082E9412:
- adds r4, r1, 0
-_082E9414:
- subs r2, 0x1
- movs r0, 0x1
- negs r0, r0
- cmp r2, r0
- beq _082E942E
- adds r1, r0, 0
-_082E9420:
- ldrb r0, [r3]
- strb r0, [r4]
- adds r3, 0x1
- adds r4, 0x1
- subs r2, 0x1
- cmp r2, r1
- bne _082E9420
-_082E942E:
- adds r0, r5, 0
- pop {r4,r5,pc}
- thumb_func_end memcpy
-
- thumb_func_start memset
-memset: @ 82E9434
- push {r4,r5,lr}
- adds r5, r0, 0
- adds r4, r1, 0
- adds r3, r5, 0
- cmp r2, 0x3
- bls _082E947A
- movs r0, 0x3
- ands r0, r5
- cmp r0, 0
- bne _082E947A
- adds r1, r5, 0
- movs r0, 0xFF
- ands r4, r0
- lsls r3, r4, 8
- orrs r3, r4
- lsls r0, r3, 16
- orrs r3, r0
- cmp r2, 0xF
- bls _082E946E
-_082E945A:
- stm r1!, {r3}
- stm r1!, {r3}
- stm r1!, {r3}
- stm r1!, {r3}
- subs r2, 0x10
- cmp r2, 0xF
- bhi _082E945A
- b _082E946E
-_082E946A:
- stm r1!, {r3}
- subs r2, 0x4
-_082E946E:
- cmp r2, 0x3
- bhi _082E946A
- adds r3, r1, 0
- b _082E947A
-_082E9476:
- strb r4, [r3]
- adds r3, 0x1
-_082E947A:
- adds r0, r2, 0
- subs r2, 0x1
- cmp r0, 0
- bne _082E9476
- adds r0, r5, 0
- pop {r4,r5,pc}
- thumb_func_end memset
-
- thumb_func_start strcmp
-strcmp: @ 82E9488
- push {r4,r5,lr}
- adds r2, r0, 0
- adds r3, r1, 0
- orrs r0, r3
- movs r1, 0x3
- ands r0, r1
- cmp r0, 0
- bne _082E94CE
- ldr r1, [r2]
- ldr r0, [r3]
- cmp r1, r0
- bne _082E94CE
- ldr r5, _082E94B4
- ldr r4, _082E94B8
-_082E94A4:
- ldr r1, [r2]
- adds r0, r1, r5
- bics r0, r1
- ands r0, r4
- cmp r0, 0
- beq _082E94BC
- movs r0, 0
- b _082E94E0
- .align 2, 0
-_082E94B4: .4byte 0xfefefeff
-_082E94B8: .4byte 0x80808080
-_082E94BC:
- adds r2, 0x4
- adds r3, 0x4
- ldr r1, [r2]
- ldr r0, [r3]
- cmp r1, r0
- beq _082E94A4
- b _082E94CE
-_082E94CA:
- adds r2, 0x1
- adds r3, 0x1
-_082E94CE:
- ldrb r0, [r2]
- cmp r0, 0
- beq _082E94DA
- ldrb r1, [r3]
- cmp r0, r1
- beq _082E94CA
-_082E94DA:
- ldrb r2, [r2]
- ldrb r3, [r3]
- subs r0, r2, r3
-_082E94E0:
- pop {r4,r5,pc}
- thumb_func_end strcmp
-
- thumb_func_start strcat
-strcat: @ 82E94E4
- push {r4-r6,lr}
- adds r6, r0, 0
- adds r3, r6, 0
- adds r2, r1, 0
- adds r0, r2, 0
- orrs r0, r6
- movs r1, 0x3
- ands r0, r1
- cmp r0, 0
- bne _082E951C
- ldr r1, [r2]
- ldr r5, _082E9504
- adds r0, r1, r5
- bics r0, r1
- ldr r4, _082E9508
- b _082E9516
- .align 2, 0
-_082E9504: .4byte 0xfefefeff
-_082E9508: .4byte 0x80808080
-_082E950C:
- ldm r2!, {r0}
- stm r3!, {r0}
- ldr r1, [r2]
- adds r0, r1, r5
- bics r0, r1
-_082E9516:
- ands r0, r4
- cmp r0, 0
- beq _082E950C
-_082E951C:
- ldrb r0, [r2]
- strb r0, [r3]
- lsls r0, 24
- adds r2, 0x1
- adds r3, 0x1
- cmp r0, 0
- bne _082E951C
- adds r0, r6, 0
- pop {r4-r6,pc}
-
- .incbin "base_emerald.gba", 0x2e952e
+ .include "data1.s"
+ .include "unknown_lib_1.s"
+ .include "libmks4agb.s"
+ .include "libagbbackup.s"
+ .include "unknown_lib_2.s"
+ .include "librfu.s"
+ .include "libagbsyscall.s"
+ .include "libgcc.s"
+ .include "data2.s"
diff --git a/asm/libagbbackup.s b/asm/libagbbackup.s
new file mode 100644
index 000000000..3104489b1
--- /dev/null
+++ b/asm/libagbbackup.s
@@ -0,0 +1,1161 @@
+ thumb_func_start SwitchFlashBank
+SwitchFlashBank: @ 82E185C
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r3, _082E1878
+ movs r1, 0xAA
+ strb r1, [r3]
+ ldr r2, _082E187C
+ movs r1, 0x55
+ strb r1, [r2]
+ movs r1, 0xB0
+ strb r1, [r3]
+ movs r1, 0xE0
+ lsls r1, 20
+ strb r0, [r1]
+ bx lr
+ .align 2, 0
+_082E1878: .4byte 0x0e005555
+_082E187C: .4byte 0x0e002aaa
+ thumb_func_end SwitchFlashBank
+
+ thumb_func_start ReadFlashID
+ReadFlashID: @ 82E1880
+ push {r4,r5,lr}
+ sub sp, 0x44
+ mov r0, sp
+ bl SetReadFlash1
+ mov r5, sp
+ adds r5, 0x1
+ ldr r2, _082E18A8
+ movs r0, 0xAA
+ strb r0, [r2]
+ ldr r1, _082E18AC
+ movs r0, 0x55
+ strb r0, [r1]
+ movs r0, 0x90
+ strb r0, [r2]
+ add r1, sp, 0x40
+ ldr r2, _082E18B0
+ adds r0, r2, 0
+ b _082E18B8
+ .align 2, 0
+_082E18A8: .4byte 0x0e005555
+_082E18AC: .4byte 0x0e002aaa
+_082E18B0: .4byte 0x00004e20
+_082E18B4:
+ ldrh r0, [r1]
+ subs r0, 0x1
+_082E18B8:
+ strh r0, [r1]
+ ldrh r0, [r1]
+ cmp r0, 0
+ bne _082E18B4
+ ldr r0, _082E18F4
+ bl _call_via_r5
+ lsls r0, 24
+ lsrs r4, r0, 16
+ movs r0, 0xE0
+ lsls r0, 20
+ bl _call_via_r5
+ lsls r0, 24
+ lsrs r0, 24
+ orrs r4, r0
+ ldr r1, _082E18F8
+ movs r0, 0xAA
+ strb r0, [r1]
+ ldr r2, _082E18FC
+ movs r0, 0x55
+ strb r0, [r2]
+ movs r0, 0xF0
+ strb r0, [r1]
+ strb r0, [r1]
+ add r1, sp, 0x40
+ ldr r2, _082E1900
+ adds r0, r2, 0
+ b _082E1908
+ .align 2, 0
+_082E18F4: .4byte 0x0e000001
+_082E18F8: .4byte 0x0e005555
+_082E18FC: .4byte 0x0e002aaa
+_082E1900: .4byte 0x00004e20
+_082E1904:
+ ldrh r0, [r1]
+ subs r0, 0x1
+_082E1908:
+ strh r0, [r1]
+ ldrh r0, [r1]
+ cmp r0, 0
+ bne _082E1904
+ adds r0, r4, 0
+ add sp, 0x44
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end ReadFlashID
+
+ thumb_func_start FlashTimerIntr
+FlashTimerIntr: @ 82E191C
+ push {lr}
+ ldr r1, _082E193C
+ ldrh r0, [r1]
+ cmp r0, 0
+ beq _082E1938
+ ldrh r0, [r1]
+ subs r0, 0x1
+ strh r0, [r1]
+ lsls r0, 16
+ cmp r0, 0
+ bne _082E1938
+ ldr r1, _082E1940
+ movs r0, 0x1
+ strb r0, [r1]
+_082E1938:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_082E193C: .4byte 0x03001a72
+_082E1940: .4byte 0x03007840
+ thumb_func_end FlashTimerIntr
+
+ thumb_func_start SetFlashTimerIntr
+SetFlashTimerIntr: @ 82E1944
+ push {lr}
+ adds r2, r1, 0
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x3
+ bhi _082E1978
+ ldr r0, _082E1968
+ strb r1, [r0]
+ ldr r1, _082E196C
+ ldrb r0, [r0]
+ lsls r0, 2
+ ldr r3, _082E1970
+ adds r0, r3
+ str r0, [r1]
+ ldr r0, _082E1974
+ str r0, [r2]
+ movs r0, 0
+ b _082E197A
+ .align 2, 0
+_082E1968: .4byte 0x03001a70
+_082E196C: .4byte 0x03001a74
+_082E1970: .4byte 0x04000100
+_082E1974: .4byte FlashTimerIntr + 1
+_082E1978:
+ movs r0, 0x1
+_082E197A:
+ pop {r1}
+ bx r1
+ thumb_func_end SetFlashTimerIntr
+
+ thumb_func_start StartFlashTimer
+StartFlashTimer: @ 82E1980
+ push {r4-r6,lr}
+ mov r6, r10
+ mov r5, r9
+ mov r4, r8
+ push {r4-r6}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _082E1A04
+ lsls r2, r0, 1
+ adds r2, r0
+ lsls r2, 1
+ ldr r0, [r1]
+ adds r2, r0
+ ldr r1, _082E1A08
+ ldr r0, _082E1A0C
+ mov r9, r0
+ ldrh r0, [r0]
+ strh r0, [r1]
+ movs r3, 0
+ mov r1, r9
+ strh r3, [r1]
+ ldr r0, _082E1A10
+ mov r8, r0
+ ldr r4, [r0]
+ strh r3, [r4, 0x2]
+ ldr r6, _082E1A14
+ ldr r1, _082E1A18
+ mov r10, r1
+ ldrb r1, [r1]
+ movs r5, 0x8
+ adds r0, r5, 0
+ lsls r0, r1
+ adds r1, r0, 0
+ ldrh r0, [r6]
+ orrs r0, r1
+ strh r0, [r6]
+ ldr r0, _082E1A1C
+ strb r3, [r0]
+ ldr r1, _082E1A20
+ ldrh r0, [r2]
+ strh r0, [r1]
+ adds r2, 0x2
+ ldrh r0, [r2]
+ strh r0, [r4]
+ adds r0, r4, 0x2
+ mov r1, r8
+ str r0, [r1]
+ ldrh r0, [r2, 0x2]
+ strh r0, [r4, 0x2]
+ str r4, [r1]
+ ldr r1, _082E1A24
+ mov r2, r10
+ ldrb r0, [r2]
+ lsls r5, r0
+ strh r5, [r1]
+ movs r0, 0x1
+ mov r3, r9
+ strh r0, [r3]
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_082E1A04: .4byte 0x03007864
+_082E1A08: .4byte 0x03001a78
+_082E1A0C: .4byte 0x04000208
+_082E1A10: .4byte 0x03001a74
+_082E1A14: .4byte 0x04000200
+_082E1A18: .4byte 0x03001a70
+_082E1A1C: .4byte 0x03007840
+_082E1A20: .4byte 0x03001a72
+_082E1A24: .4byte 0x04000202
+ thumb_func_end StartFlashTimer
+
+ thumb_func_start StopFlashTimer
+StopFlashTimer: @ 82E1A28
+ ldr r3, _082E1A58
+ movs r1, 0
+ strh r1, [r3]
+ ldr r2, _082E1A5C
+ ldr r0, [r2]
+ strh r1, [r0]
+ adds r0, 0x2
+ str r0, [r2]
+ strh r1, [r0]
+ subs r0, 0x2
+ str r0, [r2]
+ ldr r2, _082E1A60
+ ldr r0, _082E1A64
+ ldrb r0, [r0]
+ movs r1, 0x8
+ lsls r1, r0
+ ldrh r0, [r2]
+ bics r0, r1
+ strh r0, [r2]
+ ldr r0, _082E1A68
+ ldrh r0, [r0]
+ strh r0, [r3]
+ bx lr
+ .align 2, 0
+_082E1A58: .4byte 0x04000208
+_082E1A5C: .4byte 0x03001a74
+_082E1A60: .4byte 0x04000200
+_082E1A64: .4byte 0x03001a70
+_082E1A68: .4byte 0x03001a78
+ thumb_func_end StopFlashTimer
+
+ thumb_func_start ReadFlash1
+ReadFlash1: @ 82E1A6C
+ ldrb r0, [r0]
+ bx lr
+ thumb_func_end ReadFlash1
+
+ thumb_func_start SetReadFlash1
+SetReadFlash1: @ 82E1A70
+ push {lr}
+ adds r2, r0, 0
+ ldr r1, _082E1A8C
+ adds r0, r2, 0x1
+ str r0, [r1]
+ ldr r3, _082E1A90
+ movs r0, 0x1
+ eors r3, r0
+ ldr r0, _082E1A94
+ ldr r1, _082E1A90
+ subs r0, r1
+ lsls r0, 15
+ b _082E1AA4
+ .align 2, 0
+_082E1A8C: .4byte 0x03007844
+_082E1A90: .4byte ReadFlash1 + 1
+_082E1A94: .4byte SetReadFlash1 + 1
+_082E1A98:
+ ldrh r0, [r3]
+ strh r0, [r2]
+ adds r3, 0x2
+ adds r2, 0x2
+ subs r0, r1, 0x1
+ lsls r0, 16
+_082E1AA4:
+ lsrs r1, r0, 16
+ cmp r1, 0
+ bne _082E1A98
+ pop {r0}
+ bx r0
+ thumb_func_end SetReadFlash1
+
+ thumb_func_start ReadFlash_Core
+ReadFlash_Core: @ 82E1AB0
+ push {r4,lr}
+ adds r4, r0, 0
+ subs r3, r2, 0x1
+ cmp r2, 0
+ beq _082E1ACC
+ movs r2, 0x1
+ negs r2, r2
+_082E1ABE:
+ ldrb r0, [r4]
+ strb r0, [r1]
+ adds r4, 0x1
+ adds r1, 0x1
+ subs r3, 0x1
+ cmp r3, r2
+ bne _082E1ABE
+_082E1ACC:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end ReadFlash_Core
+
+ thumb_func_start ReadFlash
+ReadFlash: @ 82E1AD4
+ push {r4-r7,lr}
+ sub sp, 0x80
+ adds r5, r1, 0
+ adds r6, r2, 0
+ adds r7, r3, 0
+ lsls r3, r0, 16
+ lsrs r4, r3, 16
+ ldr r2, _082E1B20
+ ldrh r0, [r2]
+ ldr r1, _082E1B24
+ ands r0, r1
+ movs r1, 0x3
+ orrs r0, r1
+ strh r0, [r2]
+ ldr r0, _082E1B28
+ ldr r0, [r0]
+ ldr r1, [r0]
+ movs r0, 0x80
+ lsls r0, 10
+ cmp r1, r0
+ bne _082E1B0C
+ lsrs r0, r3, 20
+ lsls r0, 24
+ lsrs r0, 24
+ bl SwitchFlashBank
+ movs r0, 0xF
+ ands r4, r0
+_082E1B0C:
+ ldr r3, _082E1B2C
+ movs r0, 0x1
+ eors r3, r0
+ mov r2, sp
+ ldr r0, _082E1B30
+ ldr r1, _082E1B2C
+ subs r0, r1
+ lsls r0, 15
+ b _082E1B40
+ .align 2, 0
+_082E1B20: .4byte 0x04000204
+_082E1B24: .4byte 0x0000fffc
+_082E1B28: .4byte 0x03007850
+_082E1B2C: .4byte ReadFlash_Core + 1
+_082E1B30: .4byte ReadFlash + 1
+_082E1B34:
+ ldrh r0, [r3]
+ strh r0, [r2]
+ adds r3, 0x2
+ adds r2, 0x2
+ subs r0, r1, 0x1
+ lsls r0, 16
+_082E1B40:
+ lsrs r1, r0, 16
+ cmp r1, 0
+ bne _082E1B34
+ mov r3, sp
+ adds r3, 0x1
+ ldr r0, _082E1B6C
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x8]
+ lsls r4, r0
+ adds r0, r4, 0
+ movs r2, 0xE0
+ lsls r2, 20
+ adds r1, r5, r2
+ adds r0, r1
+ adds r1, r6, 0
+ adds r2, r7, 0
+ bl _call_via_r3
+ add sp, 0x80
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_082E1B6C: .4byte 0x03007850
+ thumb_func_end ReadFlash
+
+ thumb_func_start VerifyFlashSector_Core
+VerifyFlashSector_Core: @ 82E1B70
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ adds r3, r1, 0
+ subs r4, r2, 0x1
+ cmp r2, 0
+ beq _082E1B96
+ movs r2, 0x1
+ negs r2, r2
+_082E1B80:
+ ldrb r1, [r3]
+ ldrb r0, [r5]
+ adds r5, 0x1
+ adds r3, 0x1
+ cmp r1, r0
+ beq _082E1B90
+ subs r0, r3, 0x1
+ b _082E1B98
+_082E1B90:
+ subs r4, 0x1
+ cmp r4, r2
+ bne _082E1B80
+_082E1B96:
+ movs r0, 0
+_082E1B98:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end VerifyFlashSector_Core
+
+ thumb_func_start VerifyFlashSector
+VerifyFlashSector: @ 82E1BA0
+ push {r4,r5,lr}
+ sub sp, 0x100
+ adds r5, r1, 0
+ lsls r3, r0, 16
+ lsrs r4, r3, 16
+ ldr r2, _082E1BE8
+ ldrh r0, [r2]
+ ldr r1, _082E1BEC
+ ands r0, r1
+ movs r1, 0x3
+ orrs r0, r1
+ strh r0, [r2]
+ ldr r0, _082E1BF0
+ ldr r0, [r0]
+ ldr r1, [r0]
+ movs r0, 0x80
+ lsls r0, 10
+ cmp r1, r0
+ bne _082E1BD4
+ lsrs r0, r3, 20
+ lsls r0, 24
+ lsrs r0, 24
+ bl SwitchFlashBank
+ movs r0, 0xF
+ ands r4, r0
+_082E1BD4:
+ ldr r3, _082E1BF4
+ movs r0, 0x1
+ eors r3, r0
+ mov r2, sp
+ ldr r0, _082E1BF8
+ ldr r1, _082E1BF4
+ subs r0, r1
+ lsls r0, 15
+ b _082E1C08
+ .align 2, 0
+_082E1BE8: .4byte 0x04000204
+_082E1BEC: .4byte 0x0000fffc
+_082E1BF0: .4byte 0x03007850
+_082E1BF4: .4byte VerifyFlashSector_Core + 1
+_082E1BF8: .4byte VerifyFlashSector + 1
+_082E1BFC:
+ ldrh r0, [r3]
+ strh r0, [r2]
+ adds r3, 0x2
+ adds r2, 0x2
+ subs r0, r1, 0x1
+ lsls r0, 16
+_082E1C08:
+ lsrs r1, r0, 16
+ cmp r1, 0
+ bne _082E1BFC
+ mov r3, sp
+ adds r3, 0x1
+ ldr r0, _082E1C34
+ ldr r0, [r0]
+ ldrb r1, [r0, 0x8]
+ lsls r4, r1
+ adds r1, r4, 0
+ movs r2, 0xE0
+ lsls r2, 20
+ adds r1, r2
+ ldrh r2, [r0, 0x4]
+ adds r0, r5, 0
+ bl _call_via_r3
+ add sp, 0x100
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_082E1C34: .4byte 0x03007850
+ thumb_func_end VerifyFlashSector
+
+ thumb_func_start VerifyFlashSectorFirstNBytes
+VerifyFlashSectorFirstNBytes: @ 82E1C38
+ push {r4-r6,lr}
+ sub sp, 0x100
+ adds r5, r1, 0
+ adds r6, r2, 0
+ lsls r2, r0, 16
+ lsrs r4, r2, 16
+ ldr r0, _082E1C80
+ ldr r0, [r0]
+ ldr r1, [r0]
+ movs r0, 0x80
+ lsls r0, 10
+ cmp r1, r0
+ bne _082E1C60
+ lsrs r0, r2, 20
+ lsls r0, 24
+ lsrs r0, 24
+ bl SwitchFlashBank
+ movs r0, 0xF
+ ands r4, r0
+_082E1C60:
+ ldr r2, _082E1C84
+ ldrh r0, [r2]
+ ldr r1, _082E1C88
+ ands r0, r1
+ movs r1, 0x3
+ orrs r0, r1
+ strh r0, [r2]
+ ldr r3, _082E1C8C
+ movs r0, 0x1
+ eors r3, r0
+ mov r2, sp
+ ldr r0, _082E1C90
+ ldr r1, _082E1C8C
+ subs r0, r1
+ lsls r0, 15
+ b _082E1CA0
+ .align 2, 0
+_082E1C80: .4byte 0x03007850
+_082E1C84: .4byte 0x04000204
+_082E1C88: .4byte 0x0000fffc
+_082E1C8C: .4byte VerifyFlashSector_Core + 1
+_082E1C90: .4byte VerifyFlashSector + 1
+_082E1C94:
+ ldrh r0, [r3]
+ strh r0, [r2]
+ adds r3, 0x2
+ adds r2, 0x2
+ subs r0, r1, 0x1
+ lsls r0, 16
+_082E1CA0:
+ lsrs r1, r0, 16
+ cmp r1, 0
+ bne _082E1C94
+ mov r3, sp
+ adds r3, 0x1
+ ldr r0, _082E1CCC
+ ldr r0, [r0]
+ ldrb r1, [r0, 0x8]
+ lsls r4, r1
+ adds r1, r4, 0
+ movs r0, 0xE0
+ lsls r0, 20
+ adds r1, r0
+ adds r0, r5, 0
+ adds r2, r6, 0
+ bl _call_via_r3
+ add sp, 0x100
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_082E1CCC: .4byte 0x03007850
+ thumb_func_end VerifyFlashSectorFirstNBytes
+
+ thumb_func_start ProgramFlashSectorsAndVerify
+ProgramFlashSectorsAndVerify: @ 82E1CD0
+ push {r4-r6,lr}
+ adds r5, r1, 0
+ lsls r0, 16
+ lsrs r4, r0, 16
+ movs r6, 0
+ b _082E1CE2
+_082E1CDC:
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+_082E1CE2:
+ cmp r6, 0x2
+ bhi _082E1D08
+ ldr r0, _082E1D10
+ ldr r2, [r0]
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl _call_via_r2
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r2, 0
+ bne _082E1CDC
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl VerifyFlashSector
+ adds r2, r0, 0
+ cmp r2, 0
+ bne _082E1CDC
+_082E1D08:
+ adds r0, r2, 0
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_082E1D10: .4byte 0x0300784c
+ thumb_func_end ProgramFlashSectorsAndVerify
+
+ thumb_func_start ProgramFlashSectorsVerifyFirstNBytes
+ProgramFlashSectorsVerifyFirstNBytes: @ 82E1D14
+ push {r4-r7,lr}
+ adds r5, r1, 0
+ adds r7, r2, 0
+ lsls r0, 16
+ lsrs r4, r0, 16
+ movs r6, 0
+ b _082E1D28
+_082E1D22:
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+_082E1D28:
+ cmp r6, 0x2
+ bhi _082E1D50
+ ldr r0, _082E1D58
+ ldr r2, [r0]
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl _call_via_r2
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r3, 0
+ bne _082E1D22
+ adds r0, r4, 0
+ adds r1, r5, 0
+ adds r2, r7, 0
+ bl VerifyFlashSectorFirstNBytes
+ adds r3, r0, 0
+ cmp r3, 0
+ bne _082E1D22
+_082E1D50:
+ adds r0, r3, 0
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_082E1D58: .4byte 0x0300784c
+ thumb_func_end ProgramFlashSectorsVerifyFirstNBytes
+
+ thumb_func_start IdentifyFlash
+IdentifyFlash: @ 82E1D5C
+ push {r4,lr}
+ ldr r2, _082E1D7C
+ ldrh r0, [r2]
+ ldr r1, _082E1D80
+ ands r0, r1
+ movs r1, 0x3
+ orrs r0, r1
+ strh r0, [r2]
+ bl ReadFlashID
+ lsls r0, 16
+ lsrs r3, r0, 16
+ ldr r2, _082E1D84
+ movs r4, 0x1
+ b _082E1D8A
+ .align 2, 0
+_082E1D7C: .4byte 0x04000204
+_082E1D80: .4byte 0x0000fffc
+_082E1D84: .4byte 0x089a30d0
+_082E1D88:
+ adds r2, 0x4
+_082E1D8A:
+ ldr r1, [r2]
+ adds r0, r1, 0
+ adds r0, 0x2C
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _082E1D9E
+ ldrh r0, [r1, 0x2C]
+ cmp r3, r0
+ bne _082E1D88
+ movs r4, 0
+_082E1D9E:
+ ldr r1, _082E1DE0
+ ldr r0, [r2]
+ ldr r0, [r0]
+ str r0, [r1]
+ ldr r1, _082E1DE4
+ ldr r0, [r2]
+ ldr r0, [r0, 0x4]
+ str r0, [r1]
+ ldr r1, _082E1DE8
+ ldr r0, [r2]
+ ldr r0, [r0, 0x8]
+ str r0, [r1]
+ ldr r1, _082E1DEC
+ ldr r0, [r2]
+ ldr r0, [r0, 0xC]
+ str r0, [r1]
+ ldr r1, _082E1DF0
+ ldr r0, [r2]
+ ldr r0, [r0, 0x10]
+ str r0, [r1]
+ ldr r1, _082E1DF4
+ ldr r0, [r2]
+ ldr r0, [r0, 0x14]
+ str r0, [r1]
+ ldr r1, _082E1DF8
+ ldr r0, [r2]
+ adds r0, 0x18
+ str r0, [r1]
+ adds r0, r4, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_082E1DE0: .4byte 0x03007854
+_082E1DE4: .4byte 0x0300784c
+_082E1DE8: .4byte 0x0300785c
+_082E1DEC: .4byte 0x03007860
+_082E1DF0: .4byte 0x03007848
+_082E1DF4: .4byte 0x03007864
+_082E1DF8: .4byte 0x03007850
+ thumb_func_end IdentifyFlash
+
+ thumb_func_start PollingSR_COMMON
+PollingSR_COMMON: @ 82E1DFC
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ adds r4, r1, 0
+ lsls r0, 24
+ lsrs r7, r0, 24
+ lsls r2, 24
+ lsrs r5, r2, 24
+ movs r0, 0
+ mov r8, r0
+ adds r0, r7, 0
+ bl StartFlashTimer
+ ldr r6, _082E1E20
+ ldr r1, _082E1E24
+ mov r9, r1
+ b _082E1E60
+ .align 2, 0
+_082E1E20: .4byte 0x03007844
+_082E1E24: .4byte 0x0e005555
+_082E1E28:
+ movs r0, 0xF0
+ mov r1, r9
+ strb r0, [r1]
+ movs r0, 0xA0
+ lsls r0, 8
+ b _082E1E56
+_082E1E34:
+ ldr r0, _082E1E5C
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _082E1E60
+ ldr r1, [r6]
+ adds r0, r4, 0
+ bl _call_via_r1
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, r5
+ beq _082E1E88
+ movs r0, 0xF0
+ mov r1, r9
+ strb r0, [r1]
+ movs r0, 0xC0
+ lsls r0, 8
+_082E1E56:
+ orrs r7, r0
+ mov r8, r7
+ b _082E1E88
+ .align 2, 0
+_082E1E5C: .4byte 0x03007840
+_082E1E60:
+ ldr r1, [r6]
+ adds r0, r4, 0
+ bl _call_via_r1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, r5
+ beq _082E1E88
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _082E1E34
+ ldr r1, [r6]
+ adds r0, r4, 0
+ bl _call_via_r1
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, r5
+ bne _082E1E28
+_082E1E88:
+ bl StopFlashTimer
+ mov r0, r8
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end PollingSR_COMMON
+
+ thumb_func_start EraseFlashChip
+EraseFlashChip: @ 82E1E9C
+ push {r4-r6,lr}
+ sub sp, 0x40
+ ldr r5, _082E1EF8
+ ldrh r1, [r5]
+ ldr r6, _082E1EFC
+ ands r1, r6
+ ldr r0, _082E1F00
+ ldr r0, [r0]
+ ldrh r0, [r0, 0x10]
+ orrs r1, r0
+ strh r1, [r5]
+ ldr r1, _082E1F04
+ movs r4, 0xAA
+ strb r4, [r1]
+ ldr r3, _082E1F08
+ movs r2, 0x55
+ strb r2, [r3]
+ movs r0, 0x80
+ strb r0, [r1]
+ strb r4, [r1]
+ strb r2, [r3]
+ movs r0, 0x10
+ strb r0, [r1]
+ mov r0, sp
+ bl SetReadFlash1
+ ldr r0, _082E1F0C
+ movs r1, 0xE0
+ lsls r1, 20
+ ldr r3, [r0]
+ movs r0, 0x3
+ movs r2, 0xFF
+ bl _call_via_r3
+ lsls r0, 16
+ lsrs r0, 16
+ ldrh r1, [r5]
+ ands r1, r6
+ movs r2, 0x3
+ orrs r1, r2
+ strh r1, [r5]
+ add sp, 0x40
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_082E1EF8: .4byte 0x04000204
+_082E1EFC: .4byte 0x0000fffc
+_082E1F00: .4byte 0x03007850
+_082E1F04: .4byte 0x0e005555
+_082E1F08: .4byte 0x0e002aaa
+_082E1F0C: .4byte 0x03007848
+ thumb_func_end EraseFlashChip
+
+ thumb_func_start EraseFlashSector
+EraseFlashSector: @ 82E1F10
+ push {r4-r7,lr}
+ sub sp, 0x40
+ lsls r0, 16
+ lsrs r6, r0, 16
+ ldr r0, _082E1F28
+ ldr r0, [r0]
+ ldrh r0, [r0, 0xA]
+ cmp r6, r0
+ bcc _082E1F30
+ ldr r0, _082E1F2C
+ b _082E1FD0
+ .align 2, 0
+_082E1F28: .4byte 0x03007850
+_082E1F2C: .4byte 0x000080ff
+_082E1F30:
+ lsrs r0, r6, 4
+ lsls r0, 24
+ lsrs r0, 24
+ bl SwitchFlashBank
+ movs r0, 0xF
+ ands r6, r0
+ movs r7, 0
+_082E1F40:
+ ldr r3, _082E1FA8
+ ldrh r1, [r3]
+ ldr r0, _082E1FAC
+ ands r1, r0
+ ldr r0, _082E1FB0
+ ldr r2, [r0]
+ ldrh r0, [r2, 0x10]
+ orrs r1, r0
+ strh r1, [r3]
+ ldrb r4, [r2, 0x8]
+ adds r0, r6, 0
+ lsls r0, r4
+ adds r4, r0, 0
+ movs r0, 0xE0
+ lsls r0, 20
+ adds r4, r0
+ ldr r1, _082E1FB4
+ movs r5, 0xAA
+ strb r5, [r1]
+ ldr r3, _082E1FB8
+ movs r2, 0x55
+ strb r2, [r3]
+ movs r0, 0x80
+ strb r0, [r1]
+ strb r5, [r1]
+ strb r2, [r3]
+ movs r0, 0x30
+ strb r0, [r4]
+ mov r0, sp
+ bl SetReadFlash1
+ ldr r0, _082E1FBC
+ ldr r3, [r0]
+ movs r0, 0x2
+ adds r1, r4, 0
+ movs r2, 0xFF
+ bl _call_via_r3
+ lsls r0, 16
+ lsrs r3, r0, 16
+ movs r0, 0xA0
+ lsls r0, 8
+ ands r0, r3
+ cmp r0, 0
+ beq _082E1FC0
+ cmp r7, 0x3
+ bhi _082E1FC0
+ adds r0, r7, 0x1
+ lsls r0, 16
+ lsrs r7, r0, 16
+ b _082E1F40
+ .align 2, 0
+_082E1FA8: .4byte 0x04000204
+_082E1FAC: .4byte 0x0000fffc
+_082E1FB0: .4byte 0x03007850
+_082E1FB4: .4byte 0x0e005555
+_082E1FB8: .4byte 0x0e002aaa
+_082E1FBC: .4byte 0x03007848
+_082E1FC0:
+ ldr r2, _082E1FD8
+ ldrh r0, [r2]
+ ldr r1, _082E1FDC
+ ands r0, r1
+ movs r1, 0x3
+ orrs r0, r1
+ strh r0, [r2]
+ adds r0, r3, 0
+_082E1FD0:
+ add sp, 0x40
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_082E1FD8: .4byte 0x04000204
+_082E1FDC: .4byte 0x0000fffc
+ thumb_func_end EraseFlashSector
+
+ thumb_func_start ProgramFlashByte
+ProgramFlashByte: @ 82E1FE0
+ push {r4-r7,lr}
+ sub sp, 0x40
+ adds r6, r1, 0
+ lsls r1, r0, 16
+ lsrs r4, r1, 16
+ lsls r2, 24
+ lsrs r7, r2, 24
+ ldr r5, _082E2050
+ ldr r0, [r5]
+ ldr r0, [r0, 0x4]
+ cmp r6, r0
+ bcs _082E2068
+ lsrs r0, r1, 20
+ lsls r0, 24
+ lsrs r0, 24
+ bl SwitchFlashBank
+ movs r0, 0xF
+ ldr r1, [r5]
+ ands r4, r0
+ ldrb r1, [r1, 0x8]
+ lsls r4, r1
+ movs r1, 0xE0
+ lsls r1, 20
+ adds r0, r6, r1
+ adds r4, r0
+ mov r0, sp
+ bl SetReadFlash1
+ ldr r2, _082E2054
+ ldrh r0, [r2]
+ ldr r1, _082E2058
+ ands r0, r1
+ ldr r1, [r5]
+ ldrh r1, [r1, 0x10]
+ orrs r0, r1
+ strh r0, [r2]
+ ldr r2, _082E205C
+ movs r0, 0xAA
+ strb r0, [r2]
+ ldr r1, _082E2060
+ movs r0, 0x55
+ strb r0, [r1]
+ movs r0, 0xA0
+ strb r0, [r2]
+ strb r7, [r4]
+ ldr r0, _082E2064
+ ldr r3, [r0]
+ movs r0, 0x1
+ adds r1, r4, 0
+ adds r2, r7, 0
+ bl _call_via_r3
+ lsls r0, 16
+ lsrs r0, 16
+ b _082E206C
+ .align 2, 0
+_082E2050: .4byte 0x03007850
+_082E2054: .4byte 0x04000204
+_082E2058: .4byte 0x0000fffc
+_082E205C: .4byte 0x0e005555
+_082E2060: .4byte 0x0e002aaa
+_082E2064: .4byte 0x03007848
+_082E2068:
+ movs r0, 0x80
+ lsls r0, 8
+_082E206C:
+ add sp, 0x40
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end ProgramFlashByte
+
+ thumb_func_start ProgramFlashByteInternal
+ProgramFlashByteInternal: @ 82E2074
+ push {r4,lr}
+ ldr r4, _082E20A0
+ movs r2, 0xAA
+ strb r2, [r4]
+ ldr r3, _082E20A4
+ movs r2, 0x55
+ strb r2, [r3]
+ movs r2, 0xA0
+ strb r2, [r4]
+ ldrb r2, [r0]
+ strb r2, [r1]
+ ldr r3, _082E20A8
+ ldrb r2, [r0]
+ ldr r3, [r3]
+ movs r0, 0x1
+ bl _call_via_r3
+ lsls r0, 16
+ lsrs r0, 16
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_082E20A0: .4byte 0x0e005555
+_082E20A4: .4byte 0x0e002aaa
+_082E20A8: .4byte 0x03007848
+ thumb_func_end ProgramFlashByteInternal
+
+ thumb_func_start ProgramFlashSector
+ProgramFlashSector: @ 82E20AC
+ push {r4-r7,lr}
+ sub sp, 0x40
+ adds r7, r1, 0
+ lsls r0, 16
+ lsrs r4, r0, 16
+ ldr r0, _082E20C4
+ ldr r0, [r0]
+ ldrh r0, [r0, 0xA]
+ cmp r4, r0
+ bcc _082E20CC
+ ldr r0, _082E20C8
+ b _082E2146
+ .align 2, 0
+_082E20C4: .4byte 0x03007850
+_082E20C8: .4byte 0x000080ff
+_082E20CC:
+ adds r0, r4, 0
+ bl EraseFlashSector
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0
+ bne _082E2144
+ lsrs r0, r4, 4
+ lsls r0, 24
+ lsrs r0, 24
+ bl SwitchFlashBank
+ movs r0, 0xF
+ ands r4, r0
+ mov r0, sp
+ bl SetReadFlash1
+ ldr r3, _082E2114
+ ldrh r1, [r3]
+ ldr r0, _082E2118
+ ands r1, r0
+ ldr r0, _082E211C
+ ldr r2, [r0]
+ ldrh r0, [r2, 0x10]
+ orrs r1, r0
+ strh r1, [r3]
+ ldr r1, _082E2120
+ ldr r0, [r2, 0x4]
+ strh r0, [r1]
+ ldrb r0, [r2, 0x8]
+ lsls r4, r0
+ movs r0, 0xE0
+ lsls r0, 20
+ adds r4, r0
+ adds r6, r1, 0
+ b _082E212E
+ .align 2, 0
+_082E2114: .4byte 0x04000204
+_082E2118: .4byte 0x0000fffc
+_082E211C: .4byte 0x03007850
+_082E2120: .4byte 0x03007858
+_082E2124:
+ ldrh r0, [r6]
+ subs r0, 0x1
+ strh r0, [r6]
+ adds r7, 0x1
+ adds r4, 0x1
+_082E212E:
+ ldrh r0, [r6]
+ cmp r0, 0
+ beq _082E2144
+ adds r0, r7, 0
+ adds r1, r4, 0
+ bl ProgramFlashByteInternal
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0
+ beq _082E2124
+_082E2144:
+ adds r0, r5, 0
+_082E2146:
+ add sp, 0x40
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end ProgramFlashSector
diff --git a/asm/libagbsyscall.s b/asm/libagbsyscall.s
new file mode 100644
index 000000000..529e2dd92
--- /dev/null
+++ b/asm/libagbsyscall.s
@@ -0,0 +1,100 @@
+ thumb_func_start ArcTan2
+ArcTan2: @ 82E7078
+ swi 0xA
+ bx lr
+ thumb_func_end ArcTan2
+
+ thumb_func_start BgAffineSet
+BgAffineSet: @ 82E707C
+ swi 0xE
+ bx lr
+ thumb_func_end BgAffineSet
+
+ thumb_func_start CpuFastSet
+CpuFastSet: @ 82E7080
+ swi 0xC
+ bx lr
+ thumb_func_end CpuFastSet
+
+ thumb_func_start CpuSet
+CpuSet: @ 82E7084
+ swi 0xB
+ bx lr
+ thumb_func_end CpuSet
+
+ thumb_func_start Div
+Div: @ 82E7088
+ swi 0x6
+ bx lr
+ thumb_func_end Div
+
+ thumb_func_start LZ77UnCompVram
+LZ77UnCompVram: @ 82E708C
+ swi 0x12
+ bx lr
+ thumb_func_end LZ77UnCompVram
+
+ thumb_func_start LZ77UnCompWram
+LZ77UnCompWram: @ 82E7090
+ swi 0x11
+ bx lr
+ thumb_func_end LZ77UnCompWram
+
+ thumb_func_start MultiBoot
+MultiBoot: @ 82E7094
+ movs r1, 0x1
+ swi 0x25
+ bx lr
+ thumb_func_end MultiBoot
+
+ thumb_func_start ObjAffineSet
+ObjAffineSet: @ 82E709A
+_082E709C:
+ swi 0xF
+ bx lr
+ thumb_func_end ObjAffineSet
+
+ thumb_func_start RLUnCompVram
+RLUnCompVram: @ 82E70A0
+ swi 0x15
+ bx lr
+ thumb_func_end RLUnCompVram
+
+ thumb_func_start RLUnCompWram
+RLUnCompWram: @ 82E70A4
+ swi 0x14
+ bx lr
+ thumb_func_end RLUnCompWram
+
+ thumb_func_start RegisterRamReset
+RegisterRamReset: @ 82E70A8
+ swi 0x1
+ bx lr
+ thumb_func_end RegisterRamReset
+
+ thumb_func_start SoftReset
+SoftReset: @ 82E70AC
+ ldr r3, _082E70BC
+ movs r2, 0
+ strb r2, [r3]
+ ldr r1, _082E70C0
+ mov sp, r1
+ swi 0x1
+ swi 0
+ .align 2, 0
+_082E70BC: .4byte 0x04000208
+_082E70C0: .4byte 0x03007f00
+ thumb_func_end SoftReset
+
+ thumb_func_start Sqrt
+Sqrt: @ 82E70C4
+ swi 0x8
+ bx lr
+ thumb_func_end Sqrt
+
+ thumb_func_start VBlankIntrWait
+VBlankIntrWait: @ 82E70C8
+ movs r2, 0
+ swi 0x5
+ bx lr
+ thumb_func_end VBlankIntrWait
diff --git a/asm/libgcc.s b/asm/libgcc.s
new file mode 100644
index 000000000..44ebe86b9
--- /dev/null
+++ b/asm/libgcc.s
@@ -0,0 +1,5221 @@
+ thumb_func_start _call_via_r0
+_call_via_r0: @ 82E70D0
+ bx r0
+ mov r8, r8
+ thumb_func_end _call_via_r0
+
+ thumb_func_start _call_via_r1
+_call_via_r1: @ 82E70D4
+ bx r1
+ mov r8, r8
+ thumb_func_end _call_via_r1
+
+ thumb_func_start _call_via_r2
+_call_via_r2: @ 82E70D8
+ bx r2
+ mov r8, r8
+ thumb_func_end _call_via_r2
+
+ thumb_func_start _call_via_r3
+_call_via_r3: @ 82E70DC
+ bx r3
+ mov r8, r8
+ thumb_func_end _call_via_r3
+
+ thumb_func_start _call_via_r4
+_call_via_r4: @ 82E70E0
+ bx r4
+ mov r8, r8
+ thumb_func_end _call_via_r4
+
+ thumb_func_start _call_via_r5
+_call_via_r5: @ 82E70E4
+ bx r5
+ mov r8, r8
+ thumb_func_end _call_via_r5
+
+ thumb_func_start _call_via_r6
+_call_via_r6: @ 82E70E8
+ bx r6
+ mov r8, r8
+ thumb_func_end _call_via_r6
+
+ thumb_func_start _call_via_r7
+_call_via_r7: @ 82E70EC
+ bx r7
+ mov r8, r8
+ thumb_func_end _call_via_r7
+
+ thumb_func_start _call_via_r8
+_call_via_r8: @ 82E70F0
+ bx r8
+ mov r8, r8
+ thumb_func_end _call_via_r8
+
+ thumb_func_start _call_via_r9
+_call_via_r9: @ 82E70F4
+ bx r9
+ mov r8, r8
+ thumb_func_end _call_via_r9
+
+ thumb_func_start _call_via_sl
+_call_via_sl: @ 82E70F8
+ bx r10
+ mov r8, r8
+ thumb_func_end _call_via_sl
+
+ thumb_func_start _call_via_fp
+_call_via_fp: @ 82E70FC
+ bx r11
+ mov r8, r8
+ thumb_func_end _call_via_fp
+
+ thumb_func_start _call_via_ip
+_call_via_ip: @ 82E7100
+ bx r12
+ mov r8, r8
+ thumb_func_end _call_via_ip
+
+ thumb_func_start _call_via_sp
+_call_via_sp: @ 82E7104
+ bx sp
+ mov r8, r8
+ thumb_func_end _call_via_sp
+
+ thumb_func_start _call_via_lr
+_call_via_lr: @ 82E7108
+ bx lr
+ mov r8, r8
+ thumb_func_end _call_via_lr
+
+ thumb_func_start __divdi3
+__divdi3: @ 82E710C
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x34
+ movs r4, 0
+ str r4, [sp]
+ adds r5, r1, 0
+ adds r4, r0, 0
+ cmp r5, 0
+ bge _082E713C
+ ldr r0, [sp]
+ mvns r0, r0
+ str r0, [sp]
+ negs r0, r4
+ adds r6, r0, 0
+ negs r1, r5
+ cmp r0, 0
+ beq _082E7136
+ subs r1, 0x1
+_082E7136:
+ adds r7, r1, 0
+ adds r5, r7, 0
+ adds r4, r6, 0
+_082E713C:
+ cmp r3, 0
+ bge _082E7158
+ ldr r1, [sp]
+ mvns r1, r1
+ str r1, [sp]
+ negs r0, r2
+ str r0, [sp, 0x4]
+ negs r2, r3
+ cmp r0, 0
+ beq _082E7152
+ subs r2, 0x1
+_082E7152:
+ str r2, [sp, 0x8]
+ ldr r2, [sp, 0x4]
+ ldr r3, [sp, 0x8]
+_082E7158:
+ adds r7, r2, 0
+ adds r6, r3, 0
+ mov r10, r4
+ mov r8, r5
+ cmp r6, 0
+ beq _082E7166
+ b _082E73B4
+_082E7166:
+ cmp r7, r8
+ bls _082E7240
+ ldr r0, _082E717C
+ cmp r7, r0
+ bhi _082E7180
+ movs r1, 0
+ cmp r7, 0xFF
+ bls _082E718A
+ movs r1, 0x8
+ b _082E718A
+ .align 2, 0
+_082E717C: .4byte 0x0000ffff
+_082E7180:
+ ldr r0, _082E7234
+ movs r1, 0x18
+ cmp r7, r0
+ bhi _082E718A
+ movs r1, 0x10
+_082E718A:
+ ldr r0, _082E7238
+ lsrs r2, r1
+ adds r0, r2, r0
+ ldrb r0, [r0]
+ adds r0, r1
+ movs r1, 0x20
+ subs r2, r1, r0
+ cmp r2, 0
+ beq _082E71B2
+ lsls r7, r2
+ mov r3, r8
+ lsls r3, r2
+ subs r1, r2
+ mov r0, r10
+ lsrs r0, r1
+ orrs r3, r0
+ mov r8, r3
+ mov r4, r10
+ lsls r4, r2
+ mov r10, r4
+_082E71B2:
+ lsrs r0, r7, 16
+ mov r9, r0
+ ldr r1, _082E723C
+ ands r1, r7
+ str r1, [sp, 0xC]
+ mov r0, r8
+ mov r1, r9
+ bl __umodsi3
+ adds r4, r0, 0
+ mov r0, r8
+ mov r1, r9
+ bl __udivsi3
+ adds r6, r0, 0
+ ldr r3, [sp, 0xC]
+ adds r2, r6, 0
+ muls r2, r3
+ lsls r4, 16
+ mov r1, r10
+ lsrs r0, r1, 16
+ orrs r4, r0
+ cmp r4, r2
+ bcs _082E71F2
+ subs r6, 0x1
+ adds r4, r7
+ cmp r4, r7
+ bcc _082E71F2
+ cmp r4, r2
+ bcs _082E71F2
+ subs r6, 0x1
+ adds r4, r7
+_082E71F2:
+ subs r4, r2
+ adds r0, r4, 0
+ mov r1, r9
+ bl __umodsi3
+ adds r5, r0, 0
+ adds r0, r4, 0
+ mov r1, r9
+ bl __udivsi3
+ adds r1, r0, 0
+ ldr r3, [sp, 0xC]
+ adds r2, r1, 0
+ muls r2, r3
+ lsls r5, 16
+ ldr r0, _082E723C
+ mov r4, r10
+ ands r4, r0
+ orrs r5, r4
+ cmp r5, r2
+ bcs _082E722A
+ subs r1, 0x1
+ adds r5, r7
+ cmp r5, r7
+ bcc _082E722A
+ cmp r5, r2
+ bcs _082E722A
+ subs r1, 0x1
+_082E722A:
+ lsls r6, 16
+ orrs r6, r1
+ movs r0, 0
+ str r0, [sp, 0x10]
+ b _082E750A
+ .align 2, 0
+_082E7234: .4byte 0x00ffffff
+_082E7238: .4byte 0x089a3270
+_082E723C: .4byte 0x0000ffff
+_082E7240:
+ cmp r2, 0
+ bne _082E724E
+ movs r0, 0x1
+ movs r1, 0
+ bl __udivsi3
+ adds r7, r0, 0
+_082E724E:
+ adds r1, r7, 0
+ ldr r0, _082E7260
+ cmp r7, r0
+ bhi _082E7264
+ movs r2, 0
+ cmp r7, 0xFF
+ bls _082E726E
+ movs r2, 0x8
+ b _082E726E
+ .align 2, 0
+_082E7260: .4byte 0x0000ffff
+_082E7264:
+ ldr r0, _082E728C
+ movs r2, 0x18
+ cmp r7, r0
+ bhi _082E726E
+ movs r2, 0x10
+_082E726E:
+ ldr r0, _082E7290
+ lsrs r1, r2
+ adds r0, r1, r0
+ ldrb r0, [r0]
+ adds r0, r2
+ movs r1, 0x20
+ subs r2, r1, r0
+ cmp r2, 0
+ bne _082E7294
+ mov r1, r8
+ subs r1, r7
+ mov r8, r1
+ movs r2, 0x1
+ str r2, [sp, 0x10]
+ b _082E7332
+ .align 2, 0
+_082E728C: .4byte 0x00ffffff
+_082E7290: .4byte 0x089a3270
+_082E7294:
+ subs r1, r2
+ lsls r7, r2
+ mov r5, r8
+ lsrs r5, r1
+ mov r3, r8
+ lsls r3, r2
+ mov r0, r10
+ lsrs r0, r1
+ orrs r3, r0
+ mov r8, r3
+ mov r4, r10
+ lsls r4, r2
+ mov r10, r4
+ lsrs r0, r7, 16
+ mov r9, r0
+ ldr r1, _082E73B0
+ ands r1, r7
+ str r1, [sp, 0x14]
+ adds r0, r5, 0
+ mov r1, r9
+ bl __umodsi3
+ adds r4, r0, 0
+ adds r0, r5, 0
+ mov r1, r9
+ bl __udivsi3
+ adds r6, r0, 0
+ ldr r2, [sp, 0x14]
+ adds r1, r6, 0
+ muls r1, r2
+ lsls r4, 16
+ mov r3, r8
+ lsrs r0, r3, 16
+ orrs r4, r0
+ cmp r4, r1
+ bcs _082E72EE
+ subs r6, 0x1
+ adds r4, r7
+ cmp r4, r7
+ bcc _082E72EE
+ cmp r4, r1
+ bcs _082E72EE
+ subs r6, 0x1
+ adds r4, r7
+_082E72EE:
+ subs r4, r1
+ adds r0, r4, 0
+ mov r1, r9
+ bl __umodsi3
+ adds r5, r0, 0
+ adds r0, r4, 0
+ mov r1, r9
+ bl __udivsi3
+ adds r2, r0, 0
+ ldr r4, [sp, 0x14]
+ adds r1, r2, 0
+ muls r1, r4
+ lsls r5, 16
+ ldr r0, _082E73B0
+ mov r3, r8
+ ands r3, r0
+ orrs r5, r3
+ cmp r5, r1
+ bcs _082E7328
+ subs r2, 0x1
+ adds r5, r7
+ cmp r5, r7
+ bcc _082E7328
+ cmp r5, r1
+ bcs _082E7328
+ subs r2, 0x1
+ adds r5, r7
+_082E7328:
+ lsls r6, 16
+ orrs r6, r2
+ str r6, [sp, 0x10]
+ subs r1, r5, r1
+ mov r8, r1
+_082E7332:
+ lsrs r4, r7, 16
+ mov r9, r4
+ ldr r0, _082E73B0
+ ands r0, r7
+ str r0, [sp, 0x18]
+ mov r0, r8
+ mov r1, r9
+ bl __umodsi3
+ adds r4, r0, 0
+ mov r0, r8
+ mov r1, r9
+ bl __udivsi3
+ adds r6, r0, 0
+ ldr r1, [sp, 0x18]
+ adds r2, r6, 0
+ muls r2, r1
+ lsls r4, 16
+ mov r3, r10
+ lsrs r0, r3, 16
+ orrs r4, r0
+ cmp r4, r2
+ bcs _082E7372
+ subs r6, 0x1
+ adds r4, r7
+ cmp r4, r7
+ bcc _082E7372
+ cmp r4, r2
+ bcs _082E7372
+ subs r6, 0x1
+ adds r4, r7
+_082E7372:
+ subs r4, r2
+ adds r0, r4, 0
+ mov r1, r9
+ bl __umodsi3
+ adds r5, r0, 0
+ adds r0, r4, 0
+ mov r1, r9
+ bl __udivsi3
+ adds r1, r0, 0
+ ldr r4, [sp, 0x18]
+ adds r2, r1, 0
+ muls r2, r4
+ lsls r5, 16
+ ldr r0, _082E73B0
+ mov r3, r10
+ ands r3, r0
+ orrs r5, r3
+ cmp r5, r2
+ bcs _082E73AA
+ subs r1, 0x1
+ adds r5, r7
+ cmp r5, r7
+ bcc _082E73AA
+ cmp r5, r2
+ bcs _082E73AA
+ subs r1, 0x1
+_082E73AA:
+ lsls r6, 16
+ orrs r6, r1
+ b _082E750A
+ .align 2, 0
+_082E73B0: .4byte 0x0000ffff
+_082E73B4:
+ cmp r6, r8
+ bls _082E73C0
+ movs r6, 0
+ movs r4, 0
+ str r4, [sp, 0x10]
+ b _082E750A
+_082E73C0:
+ adds r1, r6, 0
+ ldr r0, _082E73D4
+ cmp r6, r0
+ bhi _082E73D8
+ movs r2, 0
+ cmp r6, 0xFF
+ bls _082E73E2
+ movs r2, 0x8
+ b _082E73E2
+ .align 2, 0
+_082E73D4: .4byte 0x0000ffff
+_082E73D8:
+ ldr r0, _082E7404
+ movs r2, 0x18
+ cmp r6, r0
+ bhi _082E73E2
+ movs r2, 0x10
+_082E73E2:
+ ldr r0, _082E7408
+ lsrs r1, r2
+ adds r0, r1, r0
+ ldrb r0, [r0]
+ adds r0, r2
+ movs r1, 0x20
+ subs r2, r1, r0
+ cmp r2, 0
+ bne _082E7410
+ cmp r8, r6
+ bhi _082E73FC
+ cmp r10, r7
+ bcc _082E740C
+_082E73FC:
+ movs r6, 0x1
+ mov r1, r10
+ b _082E7504
+ .align 2, 0
+_082E7404: .4byte 0x00ffffff
+_082E7408: .4byte 0x089a3270
+_082E740C:
+ movs r6, 0
+ b _082E7506
+_082E7410:
+ subs r1, r2
+ lsls r6, r2
+ adds r0, r7, 0
+ lsrs r0, r1
+ orrs r6, r0
+ lsls r7, r2
+ mov r5, r8
+ lsrs r5, r1
+ mov r3, r8
+ lsls r3, r2
+ mov r0, r10
+ lsrs r0, r1
+ orrs r3, r0
+ mov r8, r3
+ mov r4, r10
+ lsls r4, r2
+ mov r10, r4
+ lsrs r0, r6, 16
+ mov r9, r0
+ ldr r1, _082E753C
+ ands r1, r6
+ str r1, [sp, 0x1C]
+ adds r0, r5, 0
+ mov r1, r9
+ bl __umodsi3
+ adds r4, r0, 0
+ adds r0, r5, 0
+ mov r1, r9
+ bl __udivsi3
+ adds r3, r0, 0
+ ldr r2, [sp, 0x1C]
+ adds r1, r3, 0
+ muls r1, r2
+ lsls r4, 16
+ mov r2, r8
+ lsrs r0, r2, 16
+ orrs r4, r0
+ cmp r4, r1
+ bcs _082E7472
+ subs r3, 0x1
+ adds r4, r6
+ cmp r4, r6
+ bcc _082E7472
+ cmp r4, r1
+ bcs _082E7472
+ subs r3, 0x1
+ adds r4, r6
+_082E7472:
+ subs r4, r1
+ adds r0, r4, 0
+ mov r1, r9
+ str r3, [sp, 0x30]
+ bl __umodsi3
+ adds r5, r0, 0
+ adds r0, r4, 0
+ mov r1, r9
+ bl __udivsi3
+ adds r2, r0, 0
+ ldr r4, [sp, 0x1C]
+ adds r1, r2, 0
+ muls r1, r4
+ lsls r5, 16
+ ldr r0, _082E753C
+ mov r4, r8
+ ands r4, r0
+ orrs r5, r4
+ ldr r3, [sp, 0x30]
+ cmp r5, r1
+ bcs _082E74B0
+ subs r2, 0x1
+ adds r5, r6
+ cmp r5, r6
+ bcc _082E74B0
+ cmp r5, r1
+ bcs _082E74B0
+ subs r2, 0x1
+ adds r5, r6
+_082E74B0:
+ lsls r6, r3, 16
+ orrs r6, r2
+ subs r1, r5, r1
+ mov r8, r1
+ ldr r0, _082E753C
+ mov r9, r0
+ adds r1, r6, 0
+ ands r1, r0
+ lsrs r3, r6, 16
+ adds r0, r7, 0
+ mov r2, r9
+ ands r0, r2
+ lsrs r2, r7, 16
+ adds r5, r1, 0
+ muls r5, r0
+ adds r4, r1, 0
+ muls r4, r2
+ adds r1, r3, 0
+ muls r1, r0
+ muls r3, r2
+ lsrs r0, r5, 16
+ adds r4, r0
+ adds r4, r1
+ cmp r4, r1
+ bcs _082E74E8
+ movs r0, 0x80
+ lsls r0, 9
+ adds r3, r0
+_082E74E8:
+ lsrs r0, r4, 16
+ adds r3, r0
+ mov r1, r9
+ ands r4, r1
+ lsls r0, r4, 16
+ ands r5, r1
+ adds r1, r0, r5
+ cmp r3, r8
+ bhi _082E7502
+ cmp r3, r8
+ bne _082E7506
+ cmp r1, r10
+ bls _082E7506
+_082E7502:
+ subs r6, 0x1
+_082E7504:
+ subs r0, r1, r7
+_082E7506:
+ movs r2, 0
+ str r2, [sp, 0x10]
+_082E750A:
+ str r6, [sp, 0x20]
+ ldr r3, [sp, 0x10]
+ str r3, [sp, 0x24]
+ ldr r1, [sp, 0x20]
+ ldr r2, [sp, 0x24]
+ ldr r4, [sp]
+ cmp r4, 0
+ beq _082E752C
+ negs r0, r1
+ str r0, [sp, 0x28]
+ negs r1, r2
+ cmp r0, 0
+ beq _082E7526
+ subs r1, 0x1
+_082E7526:
+ str r1, [sp, 0x2C]
+ ldr r1, [sp, 0x28]
+ ldr r2, [sp, 0x2C]
+_082E752C:
+ adds r0, r1, 0
+ adds r1, r2, 0
+ add sp, 0x34
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7,pc}
+ .align 2, 0
+_082E753C: .4byte 0x0000ffff
+ thumb_func_end __divdi3
+
+ thumb_func_start __divsi3
+__divsi3: @ 82E7540
+ cmp r1, 0
+ beq _082E75C8
+ push {r4}
+ adds r4, r0, 0
+ eors r4, r1
+ mov r12, r4
+ movs r3, 0x1
+ movs r2, 0
+ cmp r1, 0
+ bpl _082E7556
+ negs r1, r1
+_082E7556:
+ cmp r0, 0
+ bpl _082E755C
+ negs r0, r0
+_082E755C:
+ cmp r0, r1
+ bcc _082E75BA
+ movs r4, 0x1
+ lsls r4, 28
+_082E7564:
+ cmp r1, r4
+ bcs _082E7572
+ cmp r1, r0
+ bcs _082E7572
+ lsls r1, 4
+ lsls r3, 4
+ b _082E7564
+_082E7572:
+ lsls r4, 3
+_082E7574:
+ cmp r1, r4
+ bcs _082E7582
+ cmp r1, r0
+ bcs _082E7582
+ lsls r1, 1
+ lsls r3, 1
+ b _082E7574
+_082E7582:
+ cmp r0, r1
+ bcc _082E758A
+ subs r0, r1
+ orrs r2, r3
+_082E758A:
+ lsrs r4, r1, 1
+ cmp r0, r4
+ bcc _082E7596
+ subs r0, r4
+ lsrs r4, r3, 1
+ orrs r2, r4
+_082E7596:
+ lsrs r4, r1, 2
+ cmp r0, r4
+ bcc _082E75A2
+ subs r0, r4
+ lsrs r4, r3, 2
+ orrs r2, r4
+_082E75A2:
+ lsrs r4, r1, 3
+ cmp r0, r4
+ bcc _082E75AE
+ subs r0, r4
+ lsrs r4, r3, 3
+ orrs r2, r4
+_082E75AE:
+ cmp r0, 0
+ beq _082E75BA
+ lsrs r3, 4
+ beq _082E75BA
+ lsrs r1, 4
+ b _082E7582
+_082E75BA:
+ adds r0, r2, 0
+ mov r4, r12
+ cmp r4, 0
+ bpl _082E75C4
+ negs r0, r0
+_082E75C4:
+ pop {r4}
+ mov pc, lr
+_082E75C8:
+ push {lr}
+ bl nullsub_1
+ movs r0, 0
+ pop {pc}
+ thumb_func_end __divsi3
+
+ thumb_func_start nullsub_1
+nullsub_1: @ 82E75D4
+ mov pc, lr
+ thumb_func_end nullsub_1
+
+ thumb_func_start __fixunsdfsi
+__fixunsdfsi: @ 82E75D8
+ push {r4,r5,lr}
+ adds r5, r1, 0
+ adds r4, r0, 0
+ ldr r3, _082E75F8
+ ldr r2, _082E75F4
+ bl __gedf2
+ cmp r0, 0
+ bge _082E75FC
+ adds r1, r5, 0
+ adds r0, r4, 0
+ bl __fixdfsi
+ b _082E7612
+ .align 2, 0
+_082E75F4: .4byte 0x41e00000
+_082E75F8: .4byte 0x00000000
+_082E75FC:
+ ldr r3, _082E7618
+ ldr r2, _082E7614
+ adds r1, r5, 0
+ adds r0, r4, 0
+ bl __adddf3
+ bl __fixdfsi
+ movs r1, 0x80
+ lsls r1, 24
+ adds r0, r1
+_082E7612:
+ pop {r4,r5,pc}
+ .align 2, 0
+_082E7614: .4byte 0xc1e00000
+_082E7618: .4byte 0x00000000
+ thumb_func_end __fixunsdfsi
+
+ thumb_func_start __fixunssfsi
+__fixunssfsi: @ 82E761C
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r1, _082E7634
+ bl __gesf2
+ cmp r0, 0
+ bge _082E7638
+ adds r0, r4, 0
+ bl __fixsfsi
+ b _082E764A
+ .align 2, 0
+_082E7634: .4byte 0x4f000000
+_082E7638:
+ ldr r1, _082E764C
+ adds r0, r4, 0
+ bl __addsf3
+ bl __fixsfsi
+ movs r1, 0x80
+ lsls r1, 24
+ adds r0, r1
+_082E764A:
+ pop {r4,pc}
+ .align 2, 0
+_082E764C: .4byte 0xcf000000
+ thumb_func_end __fixunssfsi
+
+ thumb_func_start __modsi3
+__modsi3: @ 82E7650
+ movs r3, 0x1
+ cmp r1, 0
+ beq _082E7714
+ bpl _082E765A
+ negs r1, r1
+_082E765A:
+ push {r4}
+ push {r0}
+ cmp r0, 0
+ bpl _082E7664
+ negs r0, r0
+_082E7664:
+ cmp r0, r1
+ bcc _082E7708
+ movs r4, 0x1
+ lsls r4, 28
+_082E766C:
+ cmp r1, r4
+ bcs _082E767A
+ cmp r1, r0
+ bcs _082E767A
+ lsls r1, 4
+ lsls r3, 4
+ b _082E766C
+_082E767A:
+ lsls r4, 3
+_082E767C:
+ cmp r1, r4
+ bcs _082E768A
+ cmp r1, r0
+ bcs _082E768A
+ lsls r1, 1
+ lsls r3, 1
+ b _082E767C
+_082E768A:
+ movs r2, 0
+ cmp r0, r1
+ bcc _082E7692
+ subs r0, r1
+_082E7692:
+ lsrs r4, r1, 1
+ cmp r0, r4
+ bcc _082E76A4
+ subs r0, r4
+ mov r12, r3
+ movs r4, 0x1
+ rors r3, r4
+ orrs r2, r3
+ mov r3, r12
+_082E76A4:
+ lsrs r4, r1, 2
+ cmp r0, r4
+ bcc _082E76B6
+ subs r0, r4
+ mov r12, r3
+ movs r4, 0x2
+ rors r3, r4
+ orrs r2, r3
+ mov r3, r12
+_082E76B6:
+ lsrs r4, r1, 3
+ cmp r0, r4
+ bcc _082E76C8
+ subs r0, r4
+ mov r12, r3
+ movs r4, 0x3
+ rors r3, r4
+ orrs r2, r3
+ mov r3, r12
+_082E76C8:
+ mov r12, r3
+ cmp r0, 0
+ beq _082E76D6
+ lsrs r3, 4
+ beq _082E76D6
+ lsrs r1, 4
+ b _082E768A
+_082E76D6:
+ movs r4, 0xE
+ lsls r4, 28
+ ands r2, r4
+ beq _082E7708
+ mov r3, r12
+ movs r4, 0x3
+ rors r3, r4
+ tst r2, r3
+ beq _082E76EC
+ lsrs r4, r1, 3
+ adds r0, r4
+_082E76EC:
+ mov r3, r12
+ movs r4, 0x2
+ rors r3, r4
+ tst r2, r3
+ beq _082E76FA
+ lsrs r4, r1, 2
+ adds r0, r4
+_082E76FA:
+ mov r3, r12
+ movs r4, 0x1
+ rors r3, r4
+ tst r2, r3
+ beq _082E7708
+ lsrs r4, r1, 1
+ adds r0, r4
+_082E7708:
+ pop {r4}
+ cmp r4, 0
+ bpl _082E7710
+ negs r0, r0
+_082E7710:
+ pop {r4}
+ mov pc, lr
+_082E7714:
+ push {lr}
+ bl nullsub_1
+ movs r0, 0
+ pop {pc}
+ thumb_func_end __modsi3
+
+ thumb_func_start __muldi3
+__muldi3: @ 82E7720
+ push {r4-r7,lr}
+ sub sp, 0x10
+ str r0, [sp]
+ str r1, [sp, 0x4]
+ str r2, [sp, 0x8]
+ str r3, [sp, 0xC]
+ ldr r3, [sp]
+ ldr r0, _082E778C
+ mov r12, r0
+ adds r2, r3, 0
+ ands r2, r0
+ lsrs r3, 16
+ ldr r1, [sp, 0x8]
+ adds r0, r1, 0
+ mov r4, r12
+ ands r0, r4
+ lsrs r1, 16
+ adds r5, r2, 0
+ muls r5, r0
+ adds r4, r2, 0
+ muls r4, r1
+ adds r2, r3, 0
+ muls r2, r0
+ muls r3, r1
+ lsrs r0, r5, 16
+ adds r4, r0
+ adds r4, r2
+ cmp r4, r2
+ bcs _082E7760
+ movs r0, 0x80
+ lsls r0, 9
+ adds r3, r0
+_082E7760:
+ lsrs r0, r4, 16
+ adds r7, r3, r0
+ mov r1, r12
+ ands r4, r1
+ lsls r0, r4, 16
+ ands r5, r1
+ adds r6, r0, 0
+ orrs r6, r5
+ adds r1, r7, 0
+ adds r0, r6, 0
+ ldr r3, [sp]
+ ldr r4, [sp, 0xC]
+ adds r2, r3, 0
+ muls r2, r4
+ ldr r5, [sp, 0x4]
+ ldr r4, [sp, 0x8]
+ adds r3, r5, 0
+ muls r3, r4
+ adds r2, r3
+ adds r1, r7, r2
+ add sp, 0x10
+ pop {r4-r7,pc}
+ .align 2, 0
+_082E778C: .4byte 0x0000ffff
+ thumb_func_end __muldi3
+
+ thumb_func_start __udivdi3
+__udivdi3: @ 82E7790
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x20
+ adds r7, r2, 0
+ adds r6, r3, 0
+ mov r10, r0
+ mov r8, r1
+ cmp r6, 0
+ beq _082E77AA
+ b _082E79F8
+_082E77AA:
+ cmp r7, r8
+ bls _082E7884
+ ldr r0, _082E77C0
+ cmp r7, r0
+ bhi _082E77C4
+ movs r1, 0
+ cmp r7, 0xFF
+ bls _082E77CE
+ movs r1, 0x8
+ b _082E77CE
+ .align 2, 0
+_082E77C0: .4byte 0x0000ffff
+_082E77C4:
+ ldr r0, _082E7878
+ movs r1, 0x18
+ cmp r7, r0
+ bhi _082E77CE
+ movs r1, 0x10
+_082E77CE:
+ ldr r0, _082E787C
+ lsrs r2, r1
+ adds r0, r2, r0
+ ldrb r0, [r0]
+ adds r0, r1
+ movs r1, 0x20
+ subs r2, r1, r0
+ cmp r2, 0
+ beq _082E77FA
+ lsls r7, r2
+ mov r0, r8
+ lsls r0, r2
+ mov r8, r0
+ subs r1, r2
+ mov r0, r10
+ lsrs r0, r1
+ mov r1, r8
+ orrs r1, r0
+ mov r8, r1
+ mov r3, r10
+ lsls r3, r2
+ mov r10, r3
+_082E77FA:
+ lsrs r4, r7, 16
+ mov r9, r4
+ ldr r0, _082E7880
+ ands r0, r7
+ str r0, [sp]
+ mov r0, r8
+ mov r1, r9
+ bl __umodsi3
+ adds r4, r0, 0
+ mov r0, r8
+ mov r1, r9
+ bl __udivsi3
+ adds r6, r0, 0
+ ldr r1, [sp]
+ adds r2, r6, 0
+ muls r2, r1
+ lsls r4, 16
+ mov r3, r10
+ lsrs r0, r3, 16
+ orrs r4, r0
+ cmp r4, r2
+ bcs _082E783A
+ subs r6, 0x1
+ adds r4, r7
+ cmp r4, r7
+ bcc _082E783A
+ cmp r4, r2
+ bcs _082E783A
+ subs r6, 0x1
+ adds r4, r7
+_082E783A:
+ subs r4, r2
+ adds r0, r4, 0
+ mov r1, r9
+ bl __umodsi3
+ adds r5, r0, 0
+ adds r0, r4, 0
+ mov r1, r9
+ bl __udivsi3
+ adds r1, r0, 0
+ ldr r4, [sp]
+ adds r2, r1, 0
+ muls r2, r4
+ lsls r5, 16
+ ldr r0, _082E7880
+ mov r3, r10
+ ands r3, r0
+ orrs r5, r3
+ cmp r5, r2
+ bcs _082E7872
+ subs r1, 0x1
+ adds r5, r7
+ cmp r5, r7
+ bcc _082E7872
+ cmp r5, r2
+ bcs _082E7872
+ subs r1, 0x1
+_082E7872:
+ lsls r6, 16
+ orrs r6, r1
+ b _082E79FE
+ .align 2, 0
+_082E7878: .4byte 0x00ffffff
+_082E787C: .4byte 0x089a3370
+_082E7880: .4byte 0x0000ffff
+_082E7884:
+ cmp r2, 0
+ bne _082E7892
+ movs r0, 0x1
+ movs r1, 0
+ bl __udivsi3
+ adds r7, r0, 0
+_082E7892:
+ adds r1, r7, 0
+ ldr r0, _082E78A4
+ cmp r7, r0
+ bhi _082E78A8
+ movs r2, 0
+ cmp r7, 0xFF
+ bls _082E78B2
+ movs r2, 0x8
+ b _082E78B2
+ .align 2, 0
+_082E78A4: .4byte 0x0000ffff
+_082E78A8:
+ ldr r0, _082E78D0
+ movs r2, 0x18
+ cmp r7, r0
+ bhi _082E78B2
+ movs r2, 0x10
+_082E78B2:
+ ldr r0, _082E78D4
+ lsrs r1, r2
+ adds r0, r1, r0
+ ldrb r0, [r0]
+ adds r0, r2
+ movs r1, 0x20
+ subs r2, r1, r0
+ cmp r2, 0
+ bne _082E78D8
+ mov r0, r8
+ subs r0, r7
+ mov r8, r0
+ movs r1, 0x1
+ str r1, [sp, 0x4]
+ b _082E7976
+ .align 2, 0
+_082E78D0: .4byte 0x00ffffff
+_082E78D4: .4byte 0x089a3370
+_082E78D8:
+ subs r1, r2
+ lsls r7, r2
+ mov r5, r8
+ lsrs r5, r1
+ mov r3, r8
+ lsls r3, r2
+ mov r0, r10
+ lsrs r0, r1
+ orrs r3, r0
+ mov r8, r3
+ mov r4, r10
+ lsls r4, r2
+ mov r10, r4
+ lsrs r0, r7, 16
+ mov r9, r0
+ ldr r1, _082E79F4
+ ands r1, r7
+ str r1, [sp, 0x8]
+ adds r0, r5, 0
+ mov r1, r9
+ bl __umodsi3
+ adds r4, r0, 0
+ adds r0, r5, 0
+ mov r1, r9
+ bl __udivsi3
+ adds r6, r0, 0
+ ldr r2, [sp, 0x8]
+ adds r1, r6, 0
+ muls r1, r2
+ lsls r4, 16
+ mov r3, r8
+ lsrs r0, r3, 16
+ orrs r4, r0
+ cmp r4, r1
+ bcs _082E7932
+ subs r6, 0x1
+ adds r4, r7
+ cmp r4, r7
+ bcc _082E7932
+ cmp r4, r1
+ bcs _082E7932
+ subs r6, 0x1
+ adds r4, r7
+_082E7932:
+ subs r4, r1
+ adds r0, r4, 0
+ mov r1, r9
+ bl __umodsi3
+ adds r5, r0, 0
+ adds r0, r4, 0
+ mov r1, r9
+ bl __udivsi3
+ adds r2, r0, 0
+ ldr r4, [sp, 0x8]
+ adds r1, r2, 0
+ muls r1, r4
+ lsls r5, 16
+ ldr r0, _082E79F4
+ mov r3, r8
+ ands r3, r0
+ orrs r5, r3
+ cmp r5, r1
+ bcs _082E796C
+ subs r2, 0x1
+ adds r5, r7
+ cmp r5, r7
+ bcc _082E796C
+ cmp r5, r1
+ bcs _082E796C
+ subs r2, 0x1
+ adds r5, r7
+_082E796C:
+ lsls r6, 16
+ orrs r6, r2
+ str r6, [sp, 0x4]
+ subs r1, r5, r1
+ mov r8, r1
+_082E7976:
+ lsrs r4, r7, 16
+ mov r9, r4
+ ldr r0, _082E79F4
+ ands r0, r7
+ str r0, [sp, 0xC]
+ mov r0, r8
+ mov r1, r9
+ bl __umodsi3
+ adds r4, r0, 0
+ mov r0, r8
+ mov r1, r9
+ bl __udivsi3
+ adds r6, r0, 0
+ ldr r1, [sp, 0xC]
+ adds r2, r6, 0
+ muls r2, r1
+ lsls r4, 16
+ mov r3, r10
+ lsrs r0, r3, 16
+ orrs r4, r0
+ cmp r4, r2
+ bcs _082E79B6
+ subs r6, 0x1
+ adds r4, r7
+ cmp r4, r7
+ bcc _082E79B6
+ cmp r4, r2
+ bcs _082E79B6
+ subs r6, 0x1
+ adds r4, r7
+_082E79B6:
+ subs r4, r2
+ adds r0, r4, 0
+ mov r1, r9
+ bl __umodsi3
+ adds r5, r0, 0
+ adds r0, r4, 0
+ mov r1, r9
+ bl __udivsi3
+ adds r1, r0, 0
+ ldr r4, [sp, 0xC]
+ adds r2, r1, 0
+ muls r2, r4
+ lsls r5, 16
+ ldr r0, _082E79F4
+ mov r3, r10
+ ands r3, r0
+ orrs r5, r3
+ cmp r5, r2
+ bcs _082E79EE
+ subs r1, 0x1
+ adds r5, r7
+ cmp r5, r7
+ bcc _082E79EE
+ cmp r5, r2
+ bcs _082E79EE
+ subs r1, 0x1
+_082E79EE:
+ lsls r6, 16
+ orrs r6, r1
+ b _082E7B4E
+ .align 2, 0
+_082E79F4: .4byte 0x0000ffff
+_082E79F8:
+ cmp r6, r8
+ bls _082E7A04
+ movs r6, 0
+_082E79FE:
+ movs r4, 0
+ str r4, [sp, 0x4]
+ b _082E7B4E
+_082E7A04:
+ adds r1, r6, 0
+ ldr r0, _082E7A18
+ cmp r6, r0
+ bhi _082E7A1C
+ movs r2, 0
+ cmp r6, 0xFF
+ bls _082E7A26
+ movs r2, 0x8
+ b _082E7A26
+ .align 2, 0
+_082E7A18: .4byte 0x0000ffff
+_082E7A1C:
+ ldr r0, _082E7A48
+ movs r2, 0x18
+ cmp r6, r0
+ bhi _082E7A26
+ movs r2, 0x10
+_082E7A26:
+ ldr r0, _082E7A4C
+ lsrs r1, r2
+ adds r0, r1, r0
+ ldrb r0, [r0]
+ adds r0, r2
+ movs r1, 0x20
+ subs r2, r1, r0
+ cmp r2, 0
+ bne _082E7A54
+ cmp r8, r6
+ bhi _082E7A40
+ cmp r10, r7
+ bcc _082E7A50
+_082E7A40:
+ movs r6, 0x1
+ mov r1, r10
+ b _082E7B48
+ .align 2, 0
+_082E7A48: .4byte 0x00ffffff
+_082E7A4C: .4byte 0x089a3370
+_082E7A50:
+ movs r6, 0
+ b _082E7B4A
+_082E7A54:
+ subs r1, r2
+ lsls r6, r2
+ adds r0, r7, 0
+ lsrs r0, r1
+ orrs r6, r0
+ lsls r7, r2
+ mov r5, r8
+ lsrs r5, r1
+ mov r3, r8
+ lsls r3, r2
+ mov r0, r10
+ lsrs r0, r1
+ orrs r3, r0
+ mov r8, r3
+ mov r4, r10
+ lsls r4, r2
+ mov r10, r4
+ lsrs r0, r6, 16
+ mov r9, r0
+ ldr r1, _082E7B64
+ ands r1, r6
+ str r1, [sp, 0x10]
+ adds r0, r5, 0
+ mov r1, r9
+ bl __umodsi3
+ adds r4, r0, 0
+ adds r0, r5, 0
+ mov r1, r9
+ bl __udivsi3
+ adds r3, r0, 0
+ ldr r2, [sp, 0x10]
+ adds r1, r3, 0
+ muls r1, r2
+ lsls r4, 16
+ mov r2, r8
+ lsrs r0, r2, 16
+ orrs r4, r0
+ cmp r4, r1
+ bcs _082E7AB6
+ subs r3, 0x1
+ adds r4, r6
+ cmp r4, r6
+ bcc _082E7AB6
+ cmp r4, r1
+ bcs _082E7AB6
+ subs r3, 0x1
+ adds r4, r6
+_082E7AB6:
+ subs r4, r1
+ adds r0, r4, 0
+ mov r1, r9
+ str r3, [sp, 0x1C]
+ bl __umodsi3
+ adds r5, r0, 0
+ adds r0, r4, 0
+ mov r1, r9
+ bl __udivsi3
+ adds r2, r0, 0
+ ldr r4, [sp, 0x10]
+ adds r1, r2, 0
+ muls r1, r4
+ lsls r5, 16
+ ldr r0, _082E7B64
+ mov r4, r8
+ ands r4, r0
+ orrs r5, r4
+ ldr r3, [sp, 0x1C]
+ cmp r5, r1
+ bcs _082E7AF4
+ subs r2, 0x1
+ adds r5, r6
+ cmp r5, r6
+ bcc _082E7AF4
+ cmp r5, r1
+ bcs _082E7AF4
+ subs r2, 0x1
+ adds r5, r6
+_082E7AF4:
+ lsls r6, r3, 16
+ orrs r6, r2
+ subs r1, r5, r1
+ mov r8, r1
+ ldr r0, _082E7B64
+ mov r9, r0
+ adds r1, r6, 0
+ ands r1, r0
+ lsrs r3, r6, 16
+ adds r0, r7, 0
+ mov r2, r9
+ ands r0, r2
+ lsrs r2, r7, 16
+ adds r5, r1, 0
+ muls r5, r0
+ adds r4, r1, 0
+ muls r4, r2
+ adds r1, r3, 0
+ muls r1, r0
+ muls r3, r2
+ lsrs r0, r5, 16
+ adds r4, r0
+ adds r4, r1
+ cmp r4, r1
+ bcs _082E7B2C
+ movs r0, 0x80
+ lsls r0, 9
+ adds r3, r0
+_082E7B2C:
+ lsrs r0, r4, 16
+ adds r3, r0
+ mov r1, r9
+ ands r4, r1
+ lsls r0, r4, 16
+ ands r5, r1
+ adds r1, r0, r5
+ cmp r3, r8
+ bhi _082E7B46
+ cmp r3, r8
+ bne _082E7B4A
+ cmp r1, r10
+ bls _082E7B4A
+_082E7B46:
+ subs r6, 0x1
+_082E7B48:
+ subs r0, r1, r7
+_082E7B4A:
+ movs r2, 0
+ str r2, [sp, 0x4]
+_082E7B4E:
+ str r6, [sp, 0x14]
+ ldr r3, [sp, 0x4]
+ str r3, [sp, 0x18]
+ ldr r0, [sp, 0x14]
+ ldr r1, [sp, 0x18]
+ add sp, 0x20
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7,pc}
+ .align 2, 0
+_082E7B64: .4byte 0x0000ffff
+ thumb_func_end __udivdi3
+
+ thumb_func_start __udivsi3
+__udivsi3: @ 82E7B68
+ cmp r1, 0
+ beq _082E7BD6
+ movs r3, 0x1
+ movs r2, 0
+ push {r4}
+ cmp r0, r1
+ bcc _082E7BD0
+ movs r4, 0x1
+ lsls r4, 28
+_082E7B7A:
+ cmp r1, r4
+ bcs _082E7B88
+ cmp r1, r0
+ bcs _082E7B88
+ lsls r1, 4
+ lsls r3, 4
+ b _082E7B7A
+_082E7B88:
+ lsls r4, 3
+_082E7B8A:
+ cmp r1, r4
+ bcs _082E7B98
+ cmp r1, r0
+ bcs _082E7B98
+ lsls r1, 1
+ lsls r3, 1
+ b _082E7B8A
+_082E7B98:
+ cmp r0, r1
+ bcc _082E7BA0
+ subs r0, r1
+ orrs r2, r3
+_082E7BA0:
+ lsrs r4, r1, 1
+ cmp r0, r4
+ bcc _082E7BAC
+ subs r0, r4
+ lsrs r4, r3, 1
+ orrs r2, r4
+_082E7BAC:
+ lsrs r4, r1, 2
+ cmp r0, r4
+ bcc _082E7BB8
+ subs r0, r4
+ lsrs r4, r3, 2
+ orrs r2, r4
+_082E7BB8:
+ lsrs r4, r1, 3
+ cmp r0, r4
+ bcc _082E7BC4
+ subs r0, r4
+ lsrs r4, r3, 3
+ orrs r2, r4
+_082E7BC4:
+ cmp r0, 0
+ beq _082E7BD0
+ lsrs r3, 4
+ beq _082E7BD0
+ lsrs r1, 4
+ b _082E7B98
+_082E7BD0:
+ adds r0, r2, 0
+ pop {r4}
+ mov pc, lr
+_082E7BD6:
+ push {lr}
+ bl nullsub_1
+ movs r0, 0
+ pop {pc}
+ thumb_func_end __udivsi3
+
+ thumb_func_start __umodsi3
+__umodsi3: @ 82E7BE0
+ cmp r1, 0
+ beq _082E7C96
+ movs r3, 0x1
+ cmp r0, r1
+ bcs _082E7BEC
+ mov pc, lr
+_082E7BEC:
+ push {r4}
+ movs r4, 0x1
+ lsls r4, 28
+_082E7BF2:
+ cmp r1, r4
+ bcs _082E7C00
+ cmp r1, r0
+ bcs _082E7C00
+ lsls r1, 4
+ lsls r3, 4
+ b _082E7BF2
+_082E7C00:
+ lsls r4, 3
+_082E7C02:
+ cmp r1, r4
+ bcs _082E7C10
+ cmp r1, r0
+ bcs _082E7C10
+ lsls r1, 1
+ lsls r3, 1
+ b _082E7C02
+_082E7C10:
+ movs r2, 0
+ cmp r0, r1
+ bcc _082E7C18
+ subs r0, r1
+_082E7C18:
+ lsrs r4, r1, 1
+ cmp r0, r4
+ bcc _082E7C2A
+ subs r0, r4
+ mov r12, r3
+ movs r4, 0x1
+ rors r3, r4
+ orrs r2, r3
+ mov r3, r12
+_082E7C2A:
+ lsrs r4, r1, 2
+ cmp r0, r4
+ bcc _082E7C3C
+ subs r0, r4
+ mov r12, r3
+ movs r4, 0x2
+ rors r3, r4
+ orrs r2, r3
+ mov r3, r12
+_082E7C3C:
+ lsrs r4, r1, 3
+ cmp r0, r4
+ bcc _082E7C4E
+ subs r0, r4
+ mov r12, r3
+ movs r4, 0x3
+ rors r3, r4
+ orrs r2, r3
+ mov r3, r12
+_082E7C4E:
+ mov r12, r3
+ cmp r0, 0
+ beq _082E7C5C
+ lsrs r3, 4
+ beq _082E7C5C
+ lsrs r1, 4
+ b _082E7C10
+_082E7C5C:
+ movs r4, 0xE
+ lsls r4, 28
+ ands r2, r4
+ bne _082E7C68
+ pop {r4}
+ mov pc, lr
+_082E7C68:
+ mov r3, r12
+ movs r4, 0x3
+ rors r3, r4
+ tst r2, r3
+ beq _082E7C76
+ lsrs r4, r1, 3
+ adds r0, r4
+_082E7C76:
+ mov r3, r12
+ movs r4, 0x2
+ rors r3, r4
+ tst r2, r3
+ beq _082E7C84
+ lsrs r4, r1, 2
+ adds r0, r4
+_082E7C84:
+ mov r3, r12
+ movs r4, 0x1
+ rors r3, r4
+ tst r2, r3
+ beq _082E7C92
+ lsrs r4, r1, 1
+ adds r0, r4
+_082E7C92:
+ pop {r4}
+ mov pc, lr
+_082E7C96:
+ push {lr}
+ bl nullsub_1
+ movs r0, 0
+ pop {pc}
+ thumb_func_end __umodsi3
+
+ thumb_func_start __pack_d
+__pack_d: @ 82E7CA0
+ push {r4-r7,lr}
+ sub sp, 0x8
+ adds r1, r0, 0
+ ldr r4, [r1, 0xC]
+ ldr r5, [r1, 0x10]
+ ldr r7, [r1, 0x4]
+ movs r6, 0
+ movs r2, 0
+ ldr r0, [r1]
+ cmp r0, 0x1
+ bhi _082E7CB8
+ movs r2, 0x1
+_082E7CB8:
+ cmp r2, 0
+ beq _082E7CD8
+ ldr r6, _082E7CCC
+ ldr r2, _082E7CD0
+ ldr r3, _082E7CD4
+ adds r0, r4, 0
+ adds r1, r5, 0
+ orrs r1, r3
+ b _082E7D90
+ .align 2, 0
+_082E7CCC: .4byte 0x000007ff
+_082E7CD0: .4byte 0x00000000
+_082E7CD4: .4byte 0x00080000
+_082E7CD8:
+ movs r2, 0
+ cmp r0, 0x4
+ bne _082E7CE0
+ movs r2, 0x1
+_082E7CE0:
+ cmp r2, 0
+ bne _082E7D2C
+ movs r2, 0
+ cmp r0, 0x2
+ bne _082E7CEC
+ movs r2, 0x1
+_082E7CEC:
+ cmp r2, 0
+ beq _082E7CF6
+ movs r4, 0
+ movs r5, 0
+ b _082E7D94
+_082E7CF6:
+ adds r0, r5, 0
+ orrs r0, r4
+ cmp r0, 0
+ beq _082E7D94
+ ldr r2, [r1, 0x8]
+ ldr r0, _082E7D14
+ cmp r2, r0
+ bge _082E7D26
+ subs r2, r0, r2
+ cmp r2, 0x38
+ ble _082E7D18
+ movs r4, 0
+ movs r5, 0
+ b _082E7D86
+ .align 2, 0
+_082E7D14: .4byte 0xfffffc02
+_082E7D18:
+ adds r1, r5, 0
+ adds r0, r4, 0
+ bl __lshrdi3
+ adds r5, r1, 0
+ adds r4, r0, 0
+ b _082E7D86
+_082E7D26:
+ ldr r0, _082E7D34
+ cmp r2, r0
+ ble _082E7D3C
+_082E7D2C:
+ ldr r6, _082E7D38
+ movs r4, 0
+ movs r5, 0
+ b _082E7D94
+ .align 2, 0
+_082E7D34: .4byte 0x000003ff
+_082E7D38: .4byte 0x000007ff
+_082E7D3C:
+ ldr r0, _082E7D64
+ adds r6, r2, r0
+ movs r0, 0xFF
+ adds r1, r4, 0
+ ands r1, r0
+ movs r2, 0
+ cmp r1, 0x80
+ bne _082E7D68
+ cmp r2, 0
+ bne _082E7D68
+ adds r0, 0x1
+ adds r1, r4, 0
+ ands r1, r0
+ adds r0, r2, 0
+ orrs r0, r1
+ cmp r0, 0
+ beq _082E7D70
+ movs r0, 0x80
+ movs r1, 0
+ b _082E7D6C
+ .align 2, 0
+_082E7D64: .4byte 0x000003ff
+_082E7D68:
+ movs r0, 0x7F
+ movs r1, 0
+_082E7D6C:
+ adds r4, r0
+ adcs r5, r1
+_082E7D70:
+ ldr r0, _082E7DD4
+ cmp r5, r0
+ bls _082E7D86
+ lsls r3, r5, 31
+ lsrs r2, r4, 1
+ adds r0, r3, 0
+ orrs r0, r2
+ lsrs r1, r5, 1
+ adds r5, r1, 0
+ adds r4, r0, 0
+ adds r6, 0x1
+_082E7D86:
+ lsls r3, r5, 24
+ lsrs r2, r4, 8
+ adds r0, r3, 0
+ orrs r0, r2
+ lsrs r1, r5, 8
+_082E7D90:
+ adds r5, r1, 0
+ adds r4, r0, 0
+_082E7D94:
+ str r4, [sp]
+ ldr r2, _082E7DD8
+ ands r2, r5
+ ldr r0, [sp, 0x4]
+ ldr r1, _082E7DDC
+ ands r0, r1
+ orrs r0, r2
+ str r0, [sp, 0x4]
+ mov r2, sp
+ ldr r1, _082E7DE0
+ adds r0, r1, 0
+ ands r6, r0
+ lsls r1, r6, 4
+ ldr r0, _082E7DE4
+ ldrh r3, [r2, 0x6]
+ ands r0, r3
+ orrs r0, r1
+ strh r0, [r2, 0x6]
+ lsls r1, r7, 7
+ movs r0, 0x7F
+ ldrb r3, [r2, 0x7]
+ ands r0, r3
+ orrs r0, r1
+ strb r0, [r2, 0x7]
+ ldr r1, [sp]
+ ldr r0, [sp, 0x4]
+ str r0, [sp]
+ str r1, [sp, 0x4]
+ ldr r0, [sp]
+ ldr r1, [sp, 0x4]
+ add sp, 0x8
+ pop {r4-r7,pc}
+ .align 2, 0
+_082E7DD4: .4byte 0x1fffffff
+_082E7DD8: .4byte 0x000fffff
+_082E7DDC: .4byte 0xfff00000
+_082E7DE0: .4byte 0x000007ff
+_082E7DE4: .4byte 0xffff800f
+ thumb_func_end __pack_d
+
+ thumb_func_start __unpack_d
+__unpack_d: @ 82E7DE8
+ push {r4-r7,lr}
+ sub sp, 0x8
+ adds r2, r0, 0
+ adds r6, r1, 0
+ ldr r1, [r2, 0x4]
+ str r1, [sp]
+ ldr r0, [r2]
+ str r0, [sp, 0x4]
+ mov r2, sp
+ adds r4, r1, 0
+ lsls r0, 12
+ lsrs r5, r0, 12
+ ldrh r3, [r2, 0x6]
+ lsls r0, r3, 17
+ lsrs r3, r0, 21
+ ldrb r2, [r2, 0x7]
+ lsrs r0, r2, 7
+ str r0, [r6, 0x4]
+ cmp r3, 0
+ bne _082E7E5C
+ orrs r1, r5
+ cmp r1, 0
+ bne _082E7E1C
+ movs r0, 0x2
+ str r0, [r6]
+ b _082E7EB0
+_082E7E1C:
+ ldr r0, _082E7E54
+ str r0, [r6, 0x8]
+ lsrs r3, r4, 24
+ lsls r2, r5, 8
+ adds r1, r3, 0
+ orrs r1, r2
+ lsls r0, r4, 8
+ adds r5, r1, 0
+ adds r4, r0, 0
+ movs r0, 0x3
+ str r0, [r6]
+ ldr r0, _082E7E58
+ cmp r5, r0
+ bhi _082E7E8C
+ adds r7, r0, 0
+_082E7E3A:
+ lsrs r3, r4, 31
+ lsls r2, r5, 1
+ adds r1, r3, 0
+ orrs r1, r2
+ lsls r0, r4, 1
+ adds r5, r1, 0
+ adds r4, r0, 0
+ ldr r0, [r6, 0x8]
+ subs r0, 0x1
+ str r0, [r6, 0x8]
+ cmp r5, r7
+ bls _082E7E3A
+ b _082E7E8C
+ .align 2, 0
+_082E7E54: .4byte 0xfffffc02
+_082E7E58: .4byte 0x0fffffff
+_082E7E5C:
+ ldr r0, _082E7E70
+ cmp r3, r0
+ bne _082E7E92
+ orrs r1, r5
+ cmp r1, 0
+ bne _082E7E74
+ movs r0, 0x4
+ str r0, [r6]
+ b _082E7EB0
+ .align 2, 0
+_082E7E70: .4byte 0x000007ff
+_082E7E74:
+ movs r2, 0x80
+ lsls r2, 12
+ movs r0, 0
+ adds r1, r5, 0
+ ands r1, r2
+ orrs r1, r0
+ cmp r1, 0
+ beq _082E7E8A
+ movs r0, 0x1
+ str r0, [r6]
+ b _082E7E8C
+_082E7E8A:
+ str r1, [r6]
+_082E7E8C:
+ str r4, [r6, 0xC]
+ str r5, [r6, 0x10]
+ b _082E7EB0
+_082E7E92:
+ ldr r1, _082E7EB4
+ adds r0, r3, r1
+ str r0, [r6, 0x8]
+ movs r0, 0x3
+ str r0, [r6]
+ lsrs r3, r4, 24
+ lsls r2, r5, 8
+ adds r1, r3, 0
+ orrs r1, r2
+ lsls r0, r4, 8
+ ldr r2, _082E7EB8
+ ldr r3, _082E7EBC
+ orrs r1, r3
+ str r0, [r6, 0xC]
+ str r1, [r6, 0x10]
+_082E7EB0:
+ add sp, 0x8
+ pop {r4-r7,pc}
+ .align 2, 0
+_082E7EB4: .4byte 0xfffffc01
+_082E7EB8: .4byte 0x00000000
+_082E7EBC: .4byte 0x10000000
+ thumb_func_end __unpack_d
+
+ thumb_func_start __fpadd_parts_d
+__fpadd_parts_d: @ 82E7EC0
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0xC
+ adds r3, r0, 0
+ adds r4, r1, 0
+ mov r10, r2
+ movs r0, 0
+ ldr r2, [r3]
+ cmp r2, 0x1
+ bhi _082E7EDC
+ movs r0, 0x1
+_082E7EDC:
+ cmp r0, 0
+ beq _082E7EE4
+_082E7EE0:
+ adds r0, r3, 0
+ b _082E811C
+_082E7EE4:
+ movs r1, 0
+ ldr r0, [r4]
+ cmp r0, 0x1
+ bhi _082E7EEE
+ movs r1, 0x1
+_082E7EEE:
+ cmp r1, 0
+ bne _082E7F66
+ movs r1, 0
+ cmp r2, 0x4
+ bne _082E7EFA
+ movs r1, 0x1
+_082E7EFA:
+ cmp r1, 0
+ beq _082E7F1C
+ movs r1, 0
+ cmp r0, 0x4
+ bne _082E7F06
+ movs r1, 0x1
+_082E7F06:
+ cmp r1, 0
+ beq _082E7EE0
+ ldr r1, [r3, 0x4]
+ ldr r0, [r4, 0x4]
+ cmp r1, r0
+ beq _082E7EE0
+ ldr r0, _082E7F18
+ b _082E811C
+ .align 2, 0
+_082E7F18: .4byte 0x03001a80
+_082E7F1C:
+ movs r1, 0
+ cmp r0, 0x4
+ bne _082E7F24
+ movs r1, 0x1
+_082E7F24:
+ cmp r1, 0
+ bne _082E7F66
+ movs r1, 0
+ cmp r0, 0x2
+ bne _082E7F30
+ movs r1, 0x1
+_082E7F30:
+ cmp r1, 0
+ beq _082E7F58
+ movs r0, 0
+ cmp r2, 0x2
+ bne _082E7F3C
+ movs r0, 0x1
+_082E7F3C:
+ cmp r0, 0
+ beq _082E7EE0
+ mov r1, r10
+ adds r0, r3, 0
+ ldm r0!, {r2,r5,r6}
+ stm r1!, {r2,r5,r6}
+ ldm r0!, {r2,r5}
+ stm r1!, {r2,r5}
+ ldr r0, [r3, 0x4]
+ ldr r1, [r4, 0x4]
+ ands r0, r1
+ mov r6, r10
+ str r0, [r6, 0x4]
+ b _082E811A
+_082E7F58:
+ movs r1, 0
+ ldr r0, [r3]
+ cmp r0, 0x2
+ bne _082E7F62
+ movs r1, 0x1
+_082E7F62:
+ cmp r1, 0
+ beq _082E7F6A
+_082E7F66:
+ adds r0, r4, 0
+ b _082E811C
+_082E7F6A:
+ ldr r0, [r3, 0x8]
+ mov r9, r0
+ ldr r1, [r4, 0x8]
+ mov r8, r1
+ ldr r6, [r3, 0xC]
+ ldr r7, [r3, 0x10]
+ ldr r0, [r4, 0xC]
+ ldr r1, [r4, 0x10]
+ str r0, [sp]
+ str r1, [sp, 0x4]
+ mov r1, r9
+ mov r2, r8
+ subs r0, r1, r2
+ cmp r0, 0
+ bge _082E7F8A
+ negs r0, r0
+_082E7F8A:
+ cmp r0, 0x3F
+ bgt _082E8008
+ ldr r3, [r3, 0x4]
+ mov r12, r3
+ ldr r4, [r4, 0x4]
+ str r4, [sp, 0x8]
+ cmp r9, r8
+ ble _082E7FD4
+ mov r3, r9
+ mov r4, r8
+ subs r3, r4
+ mov r8, r3
+_082E7FA2:
+ movs r5, 0x1
+ negs r5, r5
+ add r8, r5
+ ldr r2, [sp]
+ movs r0, 0x1
+ ands r2, r0
+ movs r3, 0
+ ldr r1, [sp, 0x4]
+ lsls r5, r1, 31
+ ldr r0, [sp]
+ lsrs r4, r0, 1
+ adds r0, r5, 0
+ orrs r0, r4
+ adds r4, r1, 0
+ lsrs r1, r4, 1
+ adds r5, r2, 0
+ orrs r5, r0
+ str r5, [sp]
+ adds r4, r3, 0
+ orrs r4, r1
+ str r4, [sp, 0x4]
+ mov r5, r8
+ cmp r5, 0
+ bne _082E7FA2
+ mov r8, r9
+_082E7FD4:
+ cmp r8, r9
+ ble _082E8024
+ mov r0, r8
+ mov r1, r9
+ subs r0, r1
+ mov r9, r0
+_082E7FE0:
+ movs r2, 0x1
+ negs r2, r2
+ add r9, r2
+ movs r2, 0x1
+ ands r2, r6
+ movs r3, 0
+ lsls r5, r7, 31
+ lsrs r4, r6, 1
+ adds r0, r5, 0
+ orrs r0, r4
+ lsrs r1, r7, 1
+ adds r6, r2, 0
+ orrs r6, r0
+ adds r7, r3, 0
+ orrs r7, r1
+ mov r3, r9
+ cmp r3, 0
+ bne _082E7FE0
+ mov r9, r8
+ b _082E8024
+_082E8008:
+ cmp r9, r8
+ ble _082E8016
+ movs r0, 0
+ movs r1, 0
+ str r0, [sp]
+ str r1, [sp, 0x4]
+ b _082E801C
+_082E8016:
+ mov r9, r8
+ movs r6, 0
+ movs r7, 0
+_082E801C:
+ ldr r3, [r3, 0x4]
+ mov r12, r3
+ ldr r4, [r4, 0x4]
+ str r4, [sp, 0x8]
+_082E8024:
+ ldr r1, [sp, 0x8]
+ cmp r12, r1
+ beq _082E80CC
+ mov r2, r12
+ cmp r2, 0
+ beq _082E8046
+ adds r1, r7, 0
+ adds r0, r6, 0
+ bl __negdi2
+ adds r3, r1, 0
+ adds r2, r0, 0
+ ldr r4, [sp]
+ ldr r5, [sp, 0x4]
+ adds r2, r4
+ adcs r3, r5
+ b _082E8052
+_082E8046:
+ adds r3, r7, 0
+ adds r2, r6, 0
+ ldr r0, [sp]
+ ldr r1, [sp, 0x4]
+ subs r2, r0
+ sbcs r3, r1
+_082E8052:
+ cmp r3, 0
+ blt _082E8068
+ movs r0, 0
+ mov r1, r10
+ str r0, [r1, 0x4]
+ mov r4, r9
+ str r4, [r1, 0x8]
+ mov r5, r10
+ str r2, [r5, 0xC]
+ str r3, [r5, 0x10]
+ b _082E8080
+_082E8068:
+ movs r0, 0x1
+ mov r6, r10
+ str r0, [r6, 0x4]
+ mov r0, r9
+ str r0, [r6, 0x8]
+ adds r1, r3, 0
+ adds r0, r2, 0
+ bl __negdi2
+ mov r2, r10
+ str r0, [r2, 0xC]
+ str r1, [r2, 0x10]
+_082E8080:
+ mov r4, r10
+ ldr r2, [r4, 0xC]
+ ldr r3, [r4, 0x10]
+ movs r0, 0x1
+ negs r0, r0
+ asrs r1, r0, 31
+_082E808C:
+ adds r2, r0
+ adcs r3, r1
+ ldr r0, _082E80C8
+ cmp r3, r0
+ bhi _082E80E4
+ cmp r3, r0
+ bne _082E80A2
+ movs r0, 0x2
+ negs r0, r0
+ cmp r2, r0
+ bhi _082E80E4
+_082E80A2:
+ mov r5, r10
+ ldr r0, [r5, 0xC]
+ ldr r1, [r5, 0x10]
+ lsrs r3, r0, 31
+ lsls r2, r1, 1
+ adds r1, r3, 0
+ orrs r1, r2
+ lsls r0, 1
+ mov r6, r10
+ str r0, [r6, 0xC]
+ str r1, [r6, 0x10]
+ ldr r2, [r6, 0x8]
+ subs r2, 0x1
+ str r2, [r6, 0x8]
+ movs r2, 0x1
+ negs r2, r2
+ asrs r3, r2, 31
+ b _082E808C
+ .align 2, 0
+_082E80C8: .4byte 0x0fffffff
+_082E80CC:
+ mov r0, r12
+ mov r1, r10
+ str r0, [r1, 0x4]
+ mov r2, r9
+ str r2, [r1, 0x8]
+ ldr r3, [sp]
+ ldr r4, [sp, 0x4]
+ adds r6, r3
+ adcs r7, r4
+ mov r4, r10
+ str r6, [r4, 0xC]
+ str r7, [r4, 0x10]
+_082E80E4:
+ movs r0, 0x3
+ mov r5, r10
+ str r0, [r5]
+ ldr r1, [r5, 0x10]
+ ldr r0, _082E8128
+ cmp r1, r0
+ bls _082E811A
+ ldr r4, [r5, 0xC]
+ ldr r5, [r5, 0x10]
+ movs r2, 0x1
+ adds r0, r4, 0
+ ands r0, r2
+ movs r1, 0
+ lsls r6, r5, 31
+ mov r8, r6
+ lsrs r6, r4, 1
+ mov r2, r8
+ orrs r2, r6
+ lsrs r3, r5, 1
+ orrs r0, r2
+ orrs r1, r3
+ mov r2, r10
+ str r0, [r2, 0xC]
+ str r1, [r2, 0x10]
+ ldr r0, [r2, 0x8]
+ adds r0, 0x1
+ str r0, [r2, 0x8]
+_082E811A:
+ mov r0, r10
+_082E811C:
+ add sp, 0xC
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7,pc}
+ .align 2, 0
+_082E8128: .4byte 0x1fffffff
+ thumb_func_end __fpadd_parts_d
+
+ thumb_func_start __adddf3
+__adddf3: @ 82E812C
+ push {r4,lr}
+ sub sp, 0x4C
+ str r0, [sp, 0x3C]
+ str r1, [sp, 0x40]
+ str r2, [sp, 0x44]
+ str r3, [sp, 0x48]
+ add r0, sp, 0x3C
+ mov r1, sp
+ bl __unpack_d
+ add r0, sp, 0x44
+ add r4, sp, 0x14
+ adds r1, r4, 0
+ bl __unpack_d
+ add r2, sp, 0x28
+ mov r0, sp
+ adds r1, r4, 0
+ bl __fpadd_parts_d
+ bl __pack_d
+ add sp, 0x4C
+ pop {r4,pc}
+ thumb_func_end __adddf3
+
+ thumb_func_start __subdf3
+__subdf3: @ 82E815C
+ push {r4,lr}
+ sub sp, 0x4C
+ str r0, [sp, 0x3C]
+ str r1, [sp, 0x40]
+ str r2, [sp, 0x44]
+ str r3, [sp, 0x48]
+ add r0, sp, 0x3C
+ mov r1, sp
+ bl __unpack_d
+ add r0, sp, 0x44
+ add r4, sp, 0x14
+ adds r1, r4, 0
+ bl __unpack_d
+ ldr r0, [r4, 0x4]
+ movs r1, 0x1
+ eors r0, r1
+ str r0, [r4, 0x4]
+ add r2, sp, 0x28
+ mov r0, sp
+ adds r1, r4, 0
+ bl __fpadd_parts_d
+ bl __pack_d
+ add sp, 0x4C
+ pop {r4,pc}
+ thumb_func_end __subdf3
+
+ thumb_func_start __muldf3
+__muldf3: @ 82E8194
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x74
+ str r0, [sp, 0x3C]
+ str r1, [sp, 0x40]
+ str r2, [sp, 0x44]
+ str r3, [sp, 0x48]
+ add r0, sp, 0x3C
+ mov r1, sp
+ bl __unpack_d
+ add r0, sp, 0x44
+ add r4, sp, 0x14
+ adds r1, r4, 0
+ bl __unpack_d
+ mov r8, sp
+ add r0, sp, 0x28
+ mov r10, r0
+ movs r0, 0
+ ldr r1, [sp]
+ cmp r1, 0x1
+ bhi _082E81CA
+ movs r0, 0x1
+_082E81CA:
+ cmp r0, 0
+ bne _082E822E
+ movs r2, 0
+ ldr r0, [sp, 0x14]
+ cmp r0, 0x1
+ bhi _082E81D8
+ movs r2, 0x1
+_082E81D8:
+ cmp r2, 0
+ beq _082E81E0
+ ldr r0, [sp, 0x4]
+ b _082E8250
+_082E81E0:
+ movs r2, 0
+ cmp r1, 0x4
+ bne _082E81E8
+ movs r2, 0x1
+_082E81E8:
+ cmp r2, 0
+ beq _082E81FA
+ movs r1, 0
+ cmp r0, 0x2
+ bne _082E81F4
+ movs r1, 0x1
+_082E81F4:
+ cmp r1, 0
+ bne _082E8212
+ b _082E822E
+_082E81FA:
+ movs r2, 0
+ cmp r0, 0x4
+ bne _082E8202
+ movs r2, 0x1
+_082E8202:
+ cmp r2, 0
+ beq _082E8222
+ movs r0, 0
+ cmp r1, 0x2
+ bne _082E820E
+ movs r0, 0x1
+_082E820E:
+ cmp r0, 0
+ beq _082E821C
+_082E8212:
+ ldr r0, _082E8218
+ b _082E841A
+ .align 2, 0
+_082E8218: .4byte 0x03001a80
+_082E821C:
+ mov r1, r8
+ ldr r0, [r1, 0x4]
+ b _082E8250
+_082E8222:
+ movs r2, 0
+ cmp r1, 0x2
+ bne _082E822A
+ movs r2, 0x1
+_082E822A:
+ cmp r2, 0
+ beq _082E8240
+_082E822E:
+ ldr r0, [sp, 0x4]
+ ldr r1, [sp, 0x18]
+ eors r0, r1
+ negs r1, r0
+ orrs r1, r0
+ lsrs r1, 31
+ str r1, [sp, 0x4]
+ mov r0, sp
+ b _082E841A
+_082E8240:
+ movs r1, 0
+ cmp r0, 0x2
+ bne _082E8248
+ movs r1, 0x1
+_082E8248:
+ cmp r1, 0
+ beq _082E8260
+ mov r2, r8
+ ldr r0, [r2, 0x4]
+_082E8250:
+ ldr r1, [sp, 0x18]
+ eors r0, r1
+ negs r1, r0
+ orrs r1, r0
+ lsrs r1, 31
+ str r1, [sp, 0x18]
+ adds r0, r4, 0
+ b _082E841A
+_082E8260:
+ mov r4, r8
+ ldr r0, [r4, 0xC]
+ ldr r1, [r4, 0x10]
+ adds r6, r0, 0
+ movs r7, 0
+ str r1, [sp, 0x4C]
+ movs r5, 0
+ str r5, [sp, 0x50]
+ ldr r0, [sp, 0x20]
+ ldr r1, [sp, 0x24]
+ adds r4, r0, 0
+ str r1, [sp, 0x54]
+ movs r0, 0
+ str r0, [sp, 0x58]
+ adds r1, r5, 0
+ adds r0, r4, 0
+ adds r3, r7, 0
+ adds r2, r6, 0
+ bl __muldi3
+ str r0, [sp, 0x5C]
+ str r1, [sp, 0x60]
+ ldr r0, [sp, 0x54]
+ ldr r1, [sp, 0x58]
+ adds r3, r7, 0
+ adds r2, r6, 0
+ bl __muldi3
+ adds r7, r1, 0
+ adds r6, r0, 0
+ adds r1, r5, 0
+ adds r0, r4, 0
+ ldr r2, [sp, 0x4C]
+ ldr r3, [sp, 0x50]
+ bl __muldi3
+ adds r5, r1, 0
+ adds r4, r0, 0
+ ldr r0, [sp, 0x54]
+ ldr r1, [sp, 0x58]
+ ldr r2, [sp, 0x4C]
+ ldr r3, [sp, 0x50]
+ bl __muldi3
+ str r0, [sp, 0x64]
+ str r1, [sp, 0x68]
+ movs r1, 0
+ movs r2, 0
+ str r1, [sp, 0x6C]
+ str r2, [sp, 0x70]
+ adds r3, r7, 0
+ adds r2, r6, 0
+ adds r2, r4
+ adcs r3, r5
+ cmp r7, r3
+ bhi _082E82D8
+ cmp r7, r3
+ bne _082E82E0
+ cmp r6, r2
+ bls _082E82E0
+_082E82D8:
+ ldr r5, _082E8430
+ ldr r4, _082E842C
+ str r4, [sp, 0x6C]
+ str r5, [sp, 0x70]
+_082E82E0:
+ adds r1, r2, 0
+ movs r6, 0
+ adds r7, r1, 0
+ ldr r0, [sp, 0x5C]
+ ldr r1, [sp, 0x60]
+ adds r6, r0
+ adcs r7, r1
+ cmp r1, r7
+ bhi _082E82FC
+ ldr r1, [sp, 0x60]
+ cmp r1, r7
+ bne _082E830C
+ cmp r0, r6
+ bls _082E830C
+_082E82FC:
+ movs r0, 0x1
+ movs r1, 0
+ ldr r4, [sp, 0x6C]
+ ldr r5, [sp, 0x70]
+ adds r4, r0
+ adcs r5, r1
+ str r4, [sp, 0x6C]
+ str r5, [sp, 0x70]
+_082E830C:
+ adds r0, r3, 0
+ adds r2, r0, 0
+ movs r3, 0
+ adds r5, r3, 0
+ adds r4, r2, 0
+ ldr r0, [sp, 0x64]
+ ldr r1, [sp, 0x68]
+ adds r4, r0
+ adcs r5, r1
+ ldr r1, [sp, 0x6C]
+ ldr r2, [sp, 0x70]
+ adds r4, r1
+ adcs r5, r2
+ mov r0, r8
+ ldr r2, [r0, 0x8]
+ ldr r0, [sp, 0x1C]
+ adds r2, r0
+ str r2, [sp, 0x30]
+ mov r0, r8
+ ldr r1, [r0, 0x4]
+ ldr r0, [sp, 0x18]
+ eors r1, r0
+ negs r0, r1
+ orrs r0, r1
+ lsrs r0, 31
+ str r0, [sp, 0x2C]
+ adds r2, 0x4
+ str r2, [sp, 0x30]
+ ldr r0, _082E8434
+ cmp r5, r0
+ bls _082E838E
+ movs r1, 0x1
+ mov r9, r1
+ mov r8, r0
+ mov r12, r2
+_082E8352:
+ movs r2, 0x1
+ add r12, r2
+ mov r0, r9
+ ands r0, r4
+ cmp r0, 0
+ beq _082E8378
+ lsls r3, r7, 31
+ lsrs r2, r6, 1
+ adds r0, r3, 0
+ orrs r0, r2
+ lsrs r1, r7, 1
+ adds r7, r1, 0
+ adds r6, r0, 0
+ adds r0, r6, 0
+ movs r1, 0x80
+ lsls r1, 24
+ orrs r1, r7
+ adds r7, r1, 0
+ adds r6, r0, 0
+_082E8378:
+ lsls r3, r5, 31
+ lsrs r2, r4, 1
+ adds r0, r3, 0
+ orrs r0, r2
+ lsrs r1, r5, 1
+ adds r5, r1, 0
+ adds r4, r0, 0
+ cmp r5, r8
+ bhi _082E8352
+ mov r0, r12
+ str r0, [sp, 0x30]
+_082E838E:
+ ldr r0, _082E8438
+ cmp r5, r0
+ bhi _082E83E0
+ movs r1, 0x80
+ lsls r1, 24
+ mov r9, r1
+ mov r8, r0
+ ldr r2, [sp, 0x30]
+ mov r12, r2
+_082E83A0:
+ movs r0, 0x1
+ negs r0, r0
+ add r12, r0
+ lsrs r3, r4, 31
+ lsls r2, r5, 1
+ adds r1, r3, 0
+ orrs r1, r2
+ lsls r0, r4, 1
+ adds r5, r1, 0
+ adds r4, r0, 0
+ movs r0, 0
+ mov r1, r9
+ ands r1, r7
+ orrs r0, r1
+ cmp r0, 0
+ beq _082E83CA
+ movs r0, 0x1
+ orrs r0, r4
+ adds r1, r5, 0
+ adds r5, r1, 0
+ adds r4, r0, 0
+_082E83CA:
+ lsrs r3, r6, 31
+ lsls r2, r7, 1
+ adds r1, r3, 0
+ orrs r1, r2
+ lsls r0, r6, 1
+ adds r7, r1, 0
+ adds r6, r0, 0
+ cmp r5, r8
+ bls _082E83A0
+ mov r1, r12
+ str r1, [sp, 0x30]
+_082E83E0:
+ movs r0, 0xFF
+ adds r1, r4, 0
+ ands r1, r0
+ movs r2, 0
+ cmp r1, 0x80
+ bne _082E840E
+ cmp r2, 0
+ bne _082E840E
+ adds r0, 0x1
+ adds r1, r4, 0
+ ands r1, r0
+ adds r0, r2, 0
+ orrs r0, r1
+ cmp r0, 0
+ bne _082E8406
+ adds r0, r7, 0
+ orrs r0, r6
+ cmp r0, 0
+ beq _082E840E
+_082E8406:
+ movs r0, 0x80
+ movs r1, 0
+ adds r4, r0
+ adcs r5, r1
+_082E840E:
+ str r4, [sp, 0x34]
+ str r5, [sp, 0x38]
+ movs r0, 0x3
+ mov r2, r10
+ str r0, [r2]
+ add r0, sp, 0x28
+_082E841A:
+ bl __pack_d
+ add sp, 0x74
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7,pc}
+ .align 2, 0
+_082E842C: .4byte 0x00000000
+_082E8430: .4byte 0x00000001
+_082E8434: .4byte 0x1fffffff
+_082E8438: .4byte 0x0fffffff
+ thumb_func_end __muldf3
+
+ thumb_func_start __divdf3
+__divdf3: @ 82E843C
+ push {r4-r7,lr}
+ sub sp, 0x48
+ str r0, [sp, 0x28]
+ str r1, [sp, 0x2C]
+ str r2, [sp, 0x30]
+ str r3, [sp, 0x34]
+ add r0, sp, 0x28
+ mov r1, sp
+ bl __unpack_d
+ add r0, sp, 0x30
+ add r4, sp, 0x14
+ adds r1, r4, 0
+ bl __unpack_d
+ mov r12, sp
+ movs r0, 0
+ ldr r3, [sp]
+ cmp r3, 0x1
+ bhi _082E8466
+ movs r0, 0x1
+_082E8466:
+ cmp r0, 0
+ beq _082E846E
+ mov r1, sp
+ b _082E85B0
+_082E846E:
+ movs r0, 0
+ ldr r2, [sp, 0x14]
+ adds r5, r2, 0
+ cmp r2, 0x1
+ bhi _082E847A
+ movs r0, 0x1
+_082E847A:
+ cmp r0, 0
+ beq _082E8482
+ adds r1, r4, 0
+ b _082E85B0
+_082E8482:
+ ldr r0, [sp, 0x4]
+ ldr r1, [sp, 0x18]
+ eors r0, r1
+ str r0, [sp, 0x4]
+ movs r0, 0
+ cmp r3, 0x4
+ bne _082E8492
+ movs r0, 0x1
+_082E8492:
+ cmp r0, 0
+ bne _082E84A2
+ movs r4, 0
+ cmp r3, 0x2
+ bne _082E849E
+ movs r4, 0x1
+_082E849E:
+ cmp r4, 0
+ beq _082E84B4
+_082E84A2:
+ mov r1, r12
+ ldr r0, [r1]
+ cmp r0, r5
+ beq _082E84AC
+ b _082E85B0
+_082E84AC:
+ ldr r1, _082E84B0
+ b _082E85B0
+ .align 2, 0
+_082E84B0: .4byte 0x03001a80
+_082E84B4:
+ movs r0, 0
+ cmp r2, 0x4
+ bne _082E84BC
+ movs r0, 0x1
+_082E84BC:
+ cmp r0, 0
+ beq _082E84CE
+ movs r0, 0
+ movs r1, 0
+ str r0, [sp, 0xC]
+ str r1, [sp, 0x10]
+ str r4, [sp, 0x8]
+ mov r1, sp
+ b _082E85B0
+_082E84CE:
+ movs r0, 0
+ cmp r2, 0x2
+ bne _082E84D6
+ movs r0, 0x1
+_082E84D6:
+ cmp r0, 0
+ beq _082E84E2
+ movs r0, 0x4
+ mov r2, r12
+ str r0, [r2]
+ b _082E85AE
+_082E84E2:
+ mov r3, r12
+ ldr r1, [r3, 0x8]
+ ldr r0, [sp, 0x1C]
+ subs r6, r1, r0
+ str r6, [r3, 0x8]
+ ldr r4, [r3, 0xC]
+ ldr r5, [r3, 0x10]
+ ldr r0, [sp, 0x20]
+ ldr r1, [sp, 0x24]
+ str r0, [sp, 0x38]
+ str r1, [sp, 0x3C]
+ cmp r1, r5
+ bhi _082E8506
+ ldr r1, [sp, 0x3C]
+ cmp r1, r5
+ bne _082E851A
+ cmp r0, r4
+ bls _082E851A
+_082E8506:
+ lsrs r3, r4, 31
+ lsls r2, r5, 1
+ adds r1, r3, 0
+ orrs r1, r2
+ lsls r0, r4, 1
+ adds r5, r1, 0
+ adds r4, r0, 0
+ subs r0, r6, 0x1
+ mov r2, r12
+ str r0, [r2, 0x8]
+_082E851A:
+ ldr r7, _082E85C0
+ ldr r6, _082E85BC
+ movs r0, 0
+ movs r1, 0
+ str r0, [sp, 0x40]
+ str r1, [sp, 0x44]
+_082E8526:
+ ldr r1, [sp, 0x3C]
+ cmp r1, r5
+ bhi _082E854A
+ cmp r1, r5
+ bne _082E8536
+ ldr r2, [sp, 0x38]
+ cmp r2, r4
+ bhi _082E854A
+_082E8536:
+ ldr r0, [sp, 0x40]
+ orrs r0, r6
+ ldr r1, [sp, 0x44]
+ orrs r1, r7
+ str r0, [sp, 0x40]
+ str r1, [sp, 0x44]
+ ldr r0, [sp, 0x38]
+ ldr r1, [sp, 0x3C]
+ subs r4, r0
+ sbcs r5, r1
+_082E854A:
+ lsls r3, r7, 31
+ lsrs r2, r6, 1
+ adds r0, r3, 0
+ orrs r0, r2
+ lsrs r1, r7, 1
+ adds r7, r1, 0
+ adds r6, r0, 0
+ lsrs r3, r4, 31
+ lsls r2, r5, 1
+ adds r1, r3, 0
+ orrs r1, r2
+ lsls r0, r4, 1
+ adds r5, r1, 0
+ adds r4, r0, 0
+ adds r0, r7, 0
+ orrs r0, r6
+ cmp r0, 0
+ bne _082E8526
+ movs r0, 0xFF
+ ldr r1, [sp, 0x40]
+ ands r1, r0
+ movs r2, 0
+ cmp r1, 0x80
+ bne _082E85A4
+ cmp r2, 0
+ bne _082E85A4
+ adds r0, 0x1
+ ldr r1, [sp, 0x40]
+ ands r1, r0
+ adds r0, r2, 0
+ orrs r0, r1
+ cmp r0, 0
+ bne _082E8594
+ adds r0, r5, 0
+ orrs r0, r4
+ cmp r0, 0
+ beq _082E85A4
+_082E8594:
+ movs r0, 0x80
+ movs r1, 0
+ ldr r2, [sp, 0x40]
+ ldr r3, [sp, 0x44]
+ adds r2, r0
+ adcs r3, r1
+ str r2, [sp, 0x40]
+ str r3, [sp, 0x44]
+_082E85A4:
+ ldr r0, [sp, 0x40]
+ ldr r1, [sp, 0x44]
+ mov r2, r12
+ str r0, [r2, 0xC]
+ str r1, [r2, 0x10]
+_082E85AE:
+ mov r1, r12
+_082E85B0:
+ adds r0, r1, 0
+ bl __pack_d
+ add sp, 0x48
+ pop {r4-r7,pc}
+ .align 2, 0
+_082E85BC: .4byte 0x00000000
+_082E85C0: .4byte 0x10000000
+ thumb_func_end __divdf3
+
+ thumb_func_start __fpcmp_parts_d
+__fpcmp_parts_d: @ 82E85C4
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ adds r6, r1, 0
+ movs r0, 0
+ ldr r1, [r5]
+ cmp r1, 0x1
+ bhi _082E85D4
+ movs r0, 0x1
+_082E85D4:
+ cmp r0, 0
+ bne _082E85E6
+ movs r0, 0
+ ldr r2, [r6]
+ cmp r2, 0x1
+ bhi _082E85E2
+ movs r0, 0x1
+_082E85E2:
+ cmp r0, 0
+ beq _082E85EA
+_082E85E6:
+ movs r0, 0x1
+ b _082E86C0
+_082E85EA:
+ movs r0, 0
+ cmp r1, 0x4
+ bne _082E85F2
+ movs r0, 0x1
+_082E85F2:
+ cmp r0, 0
+ beq _082E860A
+ movs r0, 0
+ cmp r2, 0x4
+ bne _082E85FE
+ movs r0, 0x1
+_082E85FE:
+ cmp r0, 0
+ beq _082E860A
+ ldr r0, [r6, 0x4]
+ ldr r1, [r5, 0x4]
+ subs r0, r1
+ b _082E86C0
+_082E860A:
+ movs r1, 0
+ ldr r0, [r5]
+ cmp r0, 0x4
+ bne _082E8614
+ movs r1, 0x1
+_082E8614:
+ cmp r1, 0
+ bne _082E8662
+ movs r1, 0
+ cmp r2, 0x4
+ bne _082E8620
+ movs r1, 0x1
+_082E8620:
+ cmp r1, 0
+ beq _082E8632
+_082E8624:
+ ldr r0, [r6, 0x4]
+ movs r1, 0x1
+ negs r1, r1
+ cmp r0, 0
+ beq _082E866C
+ movs r1, 0x1
+ b _082E866C
+_082E8632:
+ movs r1, 0
+ cmp r0, 0x2
+ bne _082E863A
+ movs r1, 0x1
+_082E863A:
+ cmp r1, 0
+ beq _082E864A
+ movs r1, 0
+ cmp r2, 0x2
+ bne _082E8646
+ movs r1, 0x1
+_082E8646:
+ cmp r1, 0
+ bne _082E86BE
+_082E864A:
+ movs r1, 0
+ cmp r0, 0x2
+ bne _082E8652
+ movs r1, 0x1
+_082E8652:
+ cmp r1, 0
+ bne _082E8624
+ movs r0, 0
+ cmp r2, 0x2
+ bne _082E865E
+ movs r0, 0x1
+_082E865E:
+ cmp r0, 0
+ beq _082E8670
+_082E8662:
+ ldr r0, [r5, 0x4]
+ movs r1, 0x1
+ cmp r0, 0
+ beq _082E866C
+ subs r1, 0x2
+_082E866C:
+ adds r0, r1, 0
+ b _082E86C0
+_082E8670:
+ ldr r0, [r6, 0x4]
+ ldr r4, [r5, 0x4]
+ cmp r4, r0
+ beq _082E8682
+_082E8678:
+ movs r0, 0x1
+ cmp r4, 0
+ beq _082E86C0
+ subs r0, 0x2
+ b _082E86C0
+_082E8682:
+ ldr r1, [r5, 0x8]
+ ldr r0, [r6, 0x8]
+ cmp r1, r0
+ bgt _082E8678
+ cmp r1, r0
+ bge _082E869A
+_082E868E:
+ movs r0, 0x1
+ negs r0, r0
+ cmp r4, 0
+ beq _082E86C0
+ movs r0, 0x1
+ b _082E86C0
+_082E869A:
+ ldr r3, [r5, 0x10]
+ ldr r2, [r6, 0x10]
+ cmp r3, r2
+ bhi _082E8678
+ cmp r3, r2
+ bne _082E86AE
+ ldr r1, [r5, 0xC]
+ ldr r0, [r6, 0xC]
+ cmp r1, r0
+ bhi _082E8678
+_082E86AE:
+ cmp r2, r3
+ bhi _082E868E
+ cmp r2, r3
+ bne _082E86BE
+ ldr r1, [r6, 0xC]
+ ldr r0, [r5, 0xC]
+ cmp r1, r0
+ bhi _082E868E
+_082E86BE:
+ movs r0, 0
+_082E86C0:
+ pop {r4-r6,pc}
+ thumb_func_end __fpcmp_parts_d
+
+ thumb_func_start __cmpdf2
+__cmpdf2: @ 82E86C4
+ push {r4,lr}
+ sub sp, 0x38
+ str r0, [sp, 0x28]
+ str r1, [sp, 0x2C]
+ str r2, [sp, 0x30]
+ str r3, [sp, 0x34]
+ add r0, sp, 0x28
+ mov r1, sp
+ bl __unpack_d
+ add r0, sp, 0x30
+ add r4, sp, 0x14
+ adds r1, r4, 0
+ bl __unpack_d
+ mov r0, sp
+ adds r1, r4, 0
+ bl __fpcmp_parts_d
+ add sp, 0x38
+ pop {r4,pc}
+ thumb_func_end __cmpdf2
+
+ thumb_func_start __eqdf2
+__eqdf2: @ 82E86F0
+ push {r4,lr}
+ sub sp, 0x38
+ str r0, [sp, 0x28]
+ str r1, [sp, 0x2C]
+ str r2, [sp, 0x30]
+ str r3, [sp, 0x34]
+ add r0, sp, 0x28
+ mov r1, sp
+ bl __unpack_d
+ add r0, sp, 0x30
+ add r4, sp, 0x14
+ adds r1, r4, 0
+ bl __unpack_d
+ movs r1, 0
+ ldr r0, [sp]
+ cmp r0, 0x1
+ bhi _082E8718
+ movs r1, 0x1
+_082E8718:
+ cmp r1, 0
+ bne _082E872A
+ movs r1, 0
+ ldr r0, [sp, 0x14]
+ cmp r0, 0x1
+ bhi _082E8726
+ movs r1, 0x1
+_082E8726:
+ cmp r1, 0
+ beq _082E872E
+_082E872A:
+ movs r0, 0x1
+ b _082E8736
+_082E872E:
+ mov r0, sp
+ adds r1, r4, 0
+ bl __fpcmp_parts_d
+_082E8736:
+ add sp, 0x38
+ pop {r4,pc}
+ thumb_func_end __eqdf2
+
+ thumb_func_start __nedf2
+__nedf2: @ 82E873C
+ push {r4,lr}
+ sub sp, 0x38
+ str r0, [sp, 0x28]
+ str r1, [sp, 0x2C]
+ str r2, [sp, 0x30]
+ str r3, [sp, 0x34]
+ add r0, sp, 0x28
+ mov r1, sp
+ bl __unpack_d
+ add r0, sp, 0x30
+ add r4, sp, 0x14
+ adds r1, r4, 0
+ bl __unpack_d
+ movs r1, 0
+ ldr r0, [sp]
+ cmp r0, 0x1
+ bhi _082E8764
+ movs r1, 0x1
+_082E8764:
+ cmp r1, 0
+ bne _082E8776
+ movs r1, 0
+ ldr r0, [sp, 0x14]
+ cmp r0, 0x1
+ bhi _082E8772
+ movs r1, 0x1
+_082E8772:
+ cmp r1, 0
+ beq _082E877A
+_082E8776:
+ movs r0, 0x1
+ b _082E8782
+_082E877A:
+ mov r0, sp
+ adds r1, r4, 0
+ bl __fpcmp_parts_d
+_082E8782:
+ add sp, 0x38
+ pop {r4,pc}
+ thumb_func_end __nedf2
+
+ thumb_func_start __gtdf2
+__gtdf2: @ 82E8788
+ push {r4,lr}
+ sub sp, 0x38
+ str r0, [sp, 0x28]
+ str r1, [sp, 0x2C]
+ str r2, [sp, 0x30]
+ str r3, [sp, 0x34]
+ add r0, sp, 0x28
+ mov r1, sp
+ bl __unpack_d
+ add r0, sp, 0x30
+ add r4, sp, 0x14
+ adds r1, r4, 0
+ bl __unpack_d
+ movs r1, 0
+ ldr r0, [sp]
+ cmp r0, 0x1
+ bhi _082E87B0
+ movs r1, 0x1
+_082E87B0:
+ cmp r1, 0
+ bne _082E87C2
+ movs r1, 0
+ ldr r0, [sp, 0x14]
+ cmp r0, 0x1
+ bhi _082E87BE
+ movs r1, 0x1
+_082E87BE:
+ cmp r1, 0
+ beq _082E87C8
+_082E87C2:
+ movs r0, 0x1
+ negs r0, r0
+ b _082E87D0
+_082E87C8:
+ mov r0, sp
+ adds r1, r4, 0
+ bl __fpcmp_parts_d
+_082E87D0:
+ add sp, 0x38
+ pop {r4,pc}
+ thumb_func_end __gtdf2
+
+ thumb_func_start __gedf2
+__gedf2: @ 82E87D4
+ push {r4,lr}
+ sub sp, 0x38
+ str r0, [sp, 0x28]
+ str r1, [sp, 0x2C]
+ str r2, [sp, 0x30]
+ str r3, [sp, 0x34]
+ add r0, sp, 0x28
+ mov r1, sp
+ bl __unpack_d
+ add r0, sp, 0x30
+ add r4, sp, 0x14
+ adds r1, r4, 0
+ bl __unpack_d
+ movs r1, 0
+ ldr r0, [sp]
+ cmp r0, 0x1
+ bhi _082E87FC
+ movs r1, 0x1
+_082E87FC:
+ cmp r1, 0
+ bne _082E880E
+ movs r1, 0
+ ldr r0, [sp, 0x14]
+ cmp r0, 0x1
+ bhi _082E880A
+ movs r1, 0x1
+_082E880A:
+ cmp r1, 0
+ beq _082E8814
+_082E880E:
+ movs r0, 0x1
+ negs r0, r0
+ b _082E881C
+_082E8814:
+ mov r0, sp
+ adds r1, r4, 0
+ bl __fpcmp_parts_d
+_082E881C:
+ add sp, 0x38
+ pop {r4,pc}
+ thumb_func_end __gedf2
+
+ thumb_func_start __ltdf2
+__ltdf2: @ 82E8820
+ push {r4,lr}
+ sub sp, 0x38
+ str r0, [sp, 0x28]
+ str r1, [sp, 0x2C]
+ str r2, [sp, 0x30]
+ str r3, [sp, 0x34]
+ add r0, sp, 0x28
+ mov r1, sp
+ bl __unpack_d
+ add r0, sp, 0x30
+ add r4, sp, 0x14
+ adds r1, r4, 0
+ bl __unpack_d
+ movs r1, 0
+ ldr r0, [sp]
+ cmp r0, 0x1
+ bhi _082E8848
+ movs r1, 0x1
+_082E8848:
+ cmp r1, 0
+ bne _082E885A
+ movs r1, 0
+ ldr r0, [sp, 0x14]
+ cmp r0, 0x1
+ bhi _082E8856
+ movs r1, 0x1
+_082E8856:
+ cmp r1, 0
+ beq _082E885E
+_082E885A:
+ movs r0, 0x1
+ b _082E8866
+_082E885E:
+ mov r0, sp
+ adds r1, r4, 0
+ bl __fpcmp_parts_d
+_082E8866:
+ add sp, 0x38
+ pop {r4,pc}
+ thumb_func_end __ltdf2
+
+ thumb_func_start __ledf2
+__ledf2: @ 82E886C
+ push {r4,lr}
+ sub sp, 0x38
+ str r0, [sp, 0x28]
+ str r1, [sp, 0x2C]
+ str r2, [sp, 0x30]
+ str r3, [sp, 0x34]
+ add r0, sp, 0x28
+ mov r1, sp
+ bl __unpack_d
+ add r0, sp, 0x30
+ add r4, sp, 0x14
+ adds r1, r4, 0
+ bl __unpack_d
+ movs r1, 0
+ ldr r0, [sp]
+ cmp r0, 0x1
+ bhi _082E8894
+ movs r1, 0x1
+_082E8894:
+ cmp r1, 0
+ bne _082E88A6
+ movs r1, 0
+ ldr r0, [sp, 0x14]
+ cmp r0, 0x1
+ bhi _082E88A2
+ movs r1, 0x1
+_082E88A2:
+ cmp r1, 0
+ beq _082E88AA
+_082E88A6:
+ movs r0, 0x1
+ b _082E88B2
+_082E88AA:
+ mov r0, sp
+ adds r1, r4, 0
+ bl __fpcmp_parts_d
+_082E88B2:
+ add sp, 0x38
+ pop {r4,pc}
+ thumb_func_end __ledf2
+
+ thumb_func_start __floatsidf
+__floatsidf: @ 82E88B8
+ push {r4,r5,lr}
+ sub sp, 0x14
+ adds r2, r0, 0
+ movs r0, 0x3
+ str r0, [sp]
+ lsrs r1, r2, 31
+ str r1, [sp, 0x4]
+ cmp r2, 0
+ bne _082E88D0
+ movs r0, 0x2
+ str r0, [sp]
+ b _082E8926
+_082E88D0:
+ movs r0, 0x3C
+ str r0, [sp, 0x8]
+ cmp r1, 0
+ beq _082E88F6
+ movs r0, 0x80
+ lsls r0, 24
+ cmp r2, r0
+ bne _082E88F0
+ ldr r1, _082E88EC
+ ldr r0, _082E88E8
+ b _082E892C
+ .align 2, 0
+_082E88E8: .4byte 0xc1e00000
+_082E88EC: .4byte 0x00000000
+_082E88F0:
+ negs r0, r2
+ asrs r1, r0, 31
+ b _082E88FA
+_082E88F6:
+ adds r0, r2, 0
+ asrs r1, r2, 31
+_082E88FA:
+ str r0, [sp, 0xC]
+ str r1, [sp, 0x10]
+ ldr r0, [sp, 0x10]
+ ldr r1, _082E8930
+ cmp r0, r1
+ bhi _082E8926
+ adds r5, r1, 0
+ ldr r4, [sp, 0x8]
+_082E890A:
+ ldr r0, [sp, 0xC]
+ ldr r1, [sp, 0x10]
+ lsrs r3, r0, 31
+ lsls r2, r1, 1
+ adds r1, r3, 0
+ orrs r1, r2
+ lsls r0, 1
+ str r0, [sp, 0xC]
+ str r1, [sp, 0x10]
+ subs r4, 0x1
+ ldr r0, [sp, 0x10]
+ cmp r0, r5
+ bls _082E890A
+ str r4, [sp, 0x8]
+_082E8926:
+ mov r0, sp
+ bl __pack_d
+_082E892C:
+ add sp, 0x14
+ pop {r4,r5,pc}
+ .align 2, 0
+_082E8930: .4byte 0x0fffffff
+ thumb_func_end __floatsidf
+
+ thumb_func_start __fixdfsi
+__fixdfsi: @ 82E8934
+ push {lr}
+ sub sp, 0x1C
+ str r0, [sp, 0x14]
+ str r1, [sp, 0x18]
+ add r0, sp, 0x14
+ mov r1, sp
+ bl __unpack_d
+ movs r1, 0
+ ldr r0, [sp]
+ cmp r0, 0x2
+ bne _082E894E
+ movs r1, 0x1
+_082E894E:
+ cmp r1, 0
+ bne _082E8982
+ movs r1, 0
+ cmp r0, 0x1
+ bhi _082E895A
+ movs r1, 0x1
+_082E895A:
+ cmp r1, 0
+ bne _082E8982
+ movs r1, 0
+ cmp r0, 0x4
+ bne _082E8966
+ movs r1, 0x1
+_082E8966:
+ cmp r1, 0
+ beq _082E897C
+_082E896A:
+ ldr r0, [sp, 0x4]
+ ldr r1, _082E8978
+ cmp r0, 0
+ beq _082E89A0
+ adds r1, 0x1
+ b _082E89A0
+ .align 2, 0
+_082E8978: .4byte 0x7fffffff
+_082E897C:
+ ldr r0, [sp, 0x8]
+ cmp r0, 0
+ bge _082E8986
+_082E8982:
+ movs r0, 0
+ b _082E89A2
+_082E8986:
+ cmp r0, 0x1E
+ bgt _082E896A
+ movs r2, 0x3C
+ subs r2, r0
+ ldr r0, [sp, 0xC]
+ ldr r1, [sp, 0x10]
+ bl __lshrdi3
+ adds r1, r0, 0
+ ldr r0, [sp, 0x4]
+ cmp r0, 0
+ beq _082E89A0
+ negs r1, r1
+_082E89A0:
+ adds r0, r1, 0
+_082E89A2:
+ add sp, 0x1C
+ pop {pc}
+ thumb_func_end __fixdfsi
+
+ thumb_func_start __negdf2
+__negdf2: @ 82E89A8
+ push {lr}
+ sub sp, 0x1C
+ str r0, [sp, 0x14]
+ str r1, [sp, 0x18]
+ add r0, sp, 0x14
+ mov r1, sp
+ bl __unpack_d
+ movs r1, 0
+ ldr r0, [sp, 0x4]
+ cmp r0, 0
+ bne _082E89C2
+ movs r1, 0x1
+_082E89C2:
+ str r1, [sp, 0x4]
+ mov r0, sp
+ bl __pack_d
+ add sp, 0x1C
+ pop {pc}
+ thumb_func_end __negdf2
+
+ thumb_func_start __make_dp
+__make_dp: @ 82E89D0
+ sub sp, 0x4
+ push {r4,lr}
+ sub sp, 0x14
+ str r3, [sp, 0x1C]
+ ldr r3, [sp, 0x1C]
+ ldr r4, [sp, 0x20]
+ str r0, [sp]
+ str r1, [sp, 0x4]
+ str r2, [sp, 0x8]
+ str r3, [sp, 0xC]
+ str r4, [sp, 0x10]
+ mov r0, sp
+ bl __pack_d
+ add sp, 0x14
+ pop {r4}
+ pop {r3}
+ add sp, 0x4
+ bx r3
+ thumb_func_end __make_dp
+
+ thumb_func_start __truncdfsf2
+__truncdfsf2: @ 82E89F8
+ push {r4,r5,lr}
+ sub sp, 0x1C
+ str r0, [sp, 0x14]
+ str r1, [sp, 0x18]
+ add r0, sp, 0x14
+ mov r1, sp
+ bl __unpack_d
+ ldr r2, [sp, 0xC]
+ ldr r3, [sp, 0x10]
+ lsls r5, r3, 2
+ lsrs r4, r2, 30
+ adds r0, r5, 0
+ orrs r0, r4
+ adds r5, r0, 0
+ ldr r4, _082E8A38
+ adds r0, r2, 0
+ ands r0, r4
+ movs r1, 0
+ orrs r0, r1
+ cmp r0, 0
+ beq _082E8A28
+ movs r0, 0x1
+ orrs r5, r0
+_082E8A28:
+ ldr r0, [sp]
+ ldr r1, [sp, 0x4]
+ ldr r2, [sp, 0x8]
+ adds r3, r5, 0
+ bl __make_fp
+ add sp, 0x1C
+ pop {r4,r5,pc}
+ .align 2, 0
+_082E8A38: .4byte 0x3fffffff
+ thumb_func_end __truncdfsf2
+
+ thumb_func_start __pack_f
+__pack_f: @ 82E8A3C
+ push {r4-r6,lr}
+ ldr r2, [r0, 0xC]
+ ldr r6, [r0, 0x4]
+ movs r5, 0
+ movs r1, 0
+ ldr r3, [r0]
+ cmp r3, 0x1
+ bhi _082E8A4E
+ movs r1, 0x1
+_082E8A4E:
+ cmp r1, 0
+ beq _082E8A5C
+ movs r5, 0xFF
+ movs r0, 0x80
+ lsls r0, 13
+ orrs r2, r0
+ b _082E8AC2
+_082E8A5C:
+ movs r1, 0
+ cmp r3, 0x4
+ bne _082E8A64
+ movs r1, 0x1
+_082E8A64:
+ cmp r1, 0
+ bne _082E8A98
+ movs r1, 0
+ cmp r3, 0x2
+ bne _082E8A70
+ movs r1, 0x1
+_082E8A70:
+ cmp r1, 0
+ beq _082E8A78
+ movs r2, 0
+ b _082E8AC2
+_082E8A78:
+ cmp r2, 0
+ beq _082E8AC2
+ ldr r0, [r0, 0x8]
+ movs r3, 0x7E
+ negs r3, r3
+ cmp r0, r3
+ bge _082E8A94
+ subs r0, r3, r0
+ cmp r0, 0x19
+ ble _082E8A90
+ movs r2, 0
+ b _082E8AC0
+_082E8A90:
+ lsrs r2, r0
+ b _082E8AC0
+_082E8A94:
+ cmp r0, 0x7F
+ ble _082E8A9E
+_082E8A98:
+ movs r5, 0xFF
+ movs r2, 0
+ b _082E8AC2
+_082E8A9E:
+ adds r5, r0, 0
+ adds r5, 0x7F
+ movs r0, 0x7F
+ ands r0, r2
+ cmp r0, 0x40
+ bne _082E8AB6
+ movs r0, 0x80
+ ands r0, r2
+ cmp r0, 0
+ beq _082E8AB8
+ adds r2, 0x40
+ b _082E8AB8
+_082E8AB6:
+ adds r2, 0x3F
+_082E8AB8:
+ cmp r2, 0
+ bge _082E8AC0
+ lsrs r2, 1
+ adds r5, 0x1
+_082E8AC0:
+ lsrs r2, 7
+_082E8AC2:
+ ldr r0, _082E8AE4
+ ands r2, r0
+ ldr r0, _082E8AE8
+ ands r4, r0
+ orrs r4, r2
+ movs r0, 0xFF
+ ands r5, r0
+ lsls r1, r5, 23
+ ldr r0, _082E8AEC
+ ands r4, r0
+ orrs r4, r1
+ lsls r1, r6, 31
+ ldr r0, _082E8AF0
+ ands r4, r0
+ orrs r4, r1
+ adds r0, r4, 0
+ pop {r4-r6,pc}
+ .align 2, 0
+_082E8AE4: .4byte 0x007fffff
+_082E8AE8: .4byte 0xff800000
+_082E8AEC: .4byte 0x807fffff
+_082E8AF0: .4byte 0x7fffffff
+ thumb_func_end __pack_f
+
+ thumb_func_start __unpack_f
+__unpack_f: @ 82E8AF4
+ push {r4,lr}
+ adds r3, r1, 0
+ ldr r0, [r0]
+ lsls r1, r0, 9
+ lsrs r2, r1, 9
+ lsls r1, r0, 1
+ lsrs r1, 24
+ lsrs r0, 31
+ str r0, [r3, 0x4]
+ cmp r1, 0
+ bne _082E8B38
+ cmp r2, 0
+ bne _082E8B14
+ movs r0, 0x2
+ str r0, [r3]
+ b _082E8B6C
+_082E8B14:
+ adds r4, r1, 0
+ subs r4, 0x7E
+ str r4, [r3, 0x8]
+ lsls r2, 7
+ movs r0, 0x3
+ str r0, [r3]
+ ldr r1, _082E8B34
+ cmp r2, r1
+ bhi _082E8B54
+ adds r0, r4, 0
+_082E8B28:
+ lsls r2, 1
+ subs r0, 0x1
+ cmp r2, r1
+ bls _082E8B28
+ str r0, [r3, 0x8]
+ b _082E8B54
+ .align 2, 0
+_082E8B34: .4byte 0x3fffffff
+_082E8B38:
+ cmp r1, 0xFF
+ bne _082E8B58
+ cmp r2, 0
+ bne _082E8B46
+ movs r0, 0x4
+ str r0, [r3]
+ b _082E8B6C
+_082E8B46:
+ movs r0, 0x80
+ lsls r0, 13
+ ands r0, r2
+ cmp r0, 0
+ beq _082E8B52
+ movs r0, 0x1
+_082E8B52:
+ str r0, [r3]
+_082E8B54:
+ str r2, [r3, 0xC]
+ b _082E8B6C
+_082E8B58:
+ adds r0, r1, 0
+ subs r0, 0x7F
+ str r0, [r3, 0x8]
+ movs r0, 0x3
+ str r0, [r3]
+ lsls r0, r2, 7
+ movs r1, 0x80
+ lsls r1, 23
+ orrs r0, r1
+ str r0, [r3, 0xC]
+_082E8B6C:
+ pop {r4,pc}
+ thumb_func_end __unpack_f
+
+ thumb_func_start __fpadd_parts_f
+__fpadd_parts_f: @ 82E8B70
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ adds r6, r0, 0
+ adds r7, r1, 0
+ adds r5, r2, 0
+ movs r0, 0
+ ldr r2, [r6]
+ cmp r2, 0x1
+ bhi _082E8B86
+ movs r0, 0x1
+_082E8B86:
+ cmp r0, 0
+ beq _082E8B8E
+_082E8B8A:
+ adds r0, r6, 0
+ b _082E8CE4
+_082E8B8E:
+ movs r1, 0
+ ldr r0, [r7]
+ cmp r0, 0x1
+ bhi _082E8B98
+ movs r1, 0x1
+_082E8B98:
+ cmp r1, 0
+ bne _082E8C0C
+ movs r1, 0
+ cmp r2, 0x4
+ bne _082E8BA4
+ movs r1, 0x1
+_082E8BA4:
+ cmp r1, 0
+ beq _082E8BC4
+ movs r1, 0
+ cmp r0, 0x4
+ bne _082E8BB0
+ movs r1, 0x1
+_082E8BB0:
+ cmp r1, 0
+ beq _082E8B8A
+ ldr r1, [r6, 0x4]
+ ldr r0, [r7, 0x4]
+ cmp r1, r0
+ beq _082E8B8A
+ ldr r0, _082E8BC0
+ b _082E8CE4
+ .align 2, 0
+_082E8BC0: .4byte 0x03001a98
+_082E8BC4:
+ movs r1, 0
+ cmp r0, 0x4
+ bne _082E8BCC
+ movs r1, 0x1
+_082E8BCC:
+ cmp r1, 0
+ bne _082E8C0C
+ movs r1, 0
+ cmp r0, 0x2
+ bne _082E8BD8
+ movs r1, 0x1
+_082E8BD8:
+ cmp r1, 0
+ beq _082E8BFE
+ movs r0, 0
+ cmp r2, 0x2
+ bne _082E8BE4
+ movs r0, 0x1
+_082E8BE4:
+ cmp r0, 0
+ beq _082E8B8A
+ adds r1, r5, 0
+ adds r0, r6, 0
+ ldm r0!, {r2-r4}
+ stm r1!, {r2-r4}
+ ldr r0, [r0]
+ str r0, [r1]
+ ldr r0, [r6, 0x4]
+ ldr r1, [r7, 0x4]
+ ands r0, r1
+ str r0, [r5, 0x4]
+ b _082E8CE2
+_082E8BFE:
+ movs r1, 0
+ ldr r0, [r6]
+ cmp r0, 0x2
+ bne _082E8C08
+ movs r1, 0x1
+_082E8C08:
+ cmp r1, 0
+ beq _082E8C10
+_082E8C0C:
+ adds r0, r7, 0
+ b _082E8CE4
+_082E8C10:
+ ldr r1, [r6, 0x8]
+ ldr r3, [r7, 0x8]
+ ldr r2, [r6, 0xC]
+ ldr r4, [r7, 0xC]
+ subs r0, r1, r3
+ cmp r0, 0
+ bge _082E8C20
+ negs r0, r0
+_082E8C20:
+ cmp r0, 0x1F
+ bgt _082E8C64
+ ldr r6, [r6, 0x4]
+ ldr r7, [r7, 0x4]
+ mov r8, r7
+ cmp r1, r3
+ ble _082E8C46
+ movs r7, 0x1
+ mov r12, r7
+ subs r3, r1, r3
+_082E8C34:
+ subs r3, 0x1
+ adds r0, r4, 0
+ mov r7, r12
+ ands r0, r7
+ lsrs r4, 1
+ orrs r4, r0
+ cmp r3, 0
+ bne _082E8C34
+ adds r3, r1, 0
+_082E8C46:
+ cmp r3, r1
+ ble _082E8C76
+ movs r0, 0x1
+ mov r12, r0
+ subs r1, r3, r1
+_082E8C50:
+ subs r1, 0x1
+ adds r0, r2, 0
+ mov r7, r12
+ ands r0, r7
+ lsrs r2, 1
+ orrs r2, r0
+ cmp r1, 0
+ bne _082E8C50
+ adds r1, r3, 0
+ b _082E8C76
+_082E8C64:
+ cmp r1, r3
+ ble _082E8C6C
+ movs r4, 0
+ b _082E8C70
+_082E8C6C:
+ adds r1, r3, 0
+ movs r2, 0
+_082E8C70:
+ ldr r6, [r6, 0x4]
+ ldr r7, [r7, 0x4]
+ mov r8, r7
+_082E8C76:
+ cmp r6, r8
+ beq _082E8CC0
+ cmp r6, 0
+ beq _082E8C82
+ subs r3, r4, r2
+ b _082E8C84
+_082E8C82:
+ subs r3, r2, r4
+_082E8C84:
+ cmp r3, 0
+ blt _082E8C92
+ movs r0, 0
+ str r0, [r5, 0x4]
+ str r1, [r5, 0x8]
+ str r3, [r5, 0xC]
+ b _082E8C9C
+_082E8C92:
+ movs r0, 0x1
+ str r0, [r5, 0x4]
+ str r1, [r5, 0x8]
+ negs r0, r3
+ str r0, [r5, 0xC]
+_082E8C9C:
+ ldr r1, [r5, 0xC]
+ subs r0, r1, 0x1
+ ldr r2, _082E8CBC
+ cmp r0, r2
+ bhi _082E8CC8
+_082E8CA6:
+ lsls r0, r1, 1
+ str r0, [r5, 0xC]
+ ldr r1, [r5, 0x8]
+ subs r1, 0x1
+ str r1, [r5, 0x8]
+ adds r1, r0, 0
+ subs r0, r1, 0x1
+ cmp r0, r2
+ bls _082E8CA6
+ b _082E8CC8
+ .align 2, 0
+_082E8CBC: .4byte 0x3ffffffe
+_082E8CC0:
+ str r6, [r5, 0x4]
+ str r1, [r5, 0x8]
+ adds r0, r2, r4
+ str r0, [r5, 0xC]
+_082E8CC8:
+ movs r0, 0x3
+ str r0, [r5]
+ ldr r1, [r5, 0xC]
+ cmp r1, 0
+ bge _082E8CE2
+ movs r0, 0x1
+ ands r0, r1
+ lsrs r1, 1
+ orrs r0, r1
+ str r0, [r5, 0xC]
+ ldr r0, [r5, 0x8]
+ adds r0, 0x1
+ str r0, [r5, 0x8]
+_082E8CE2:
+ adds r0, r5, 0
+_082E8CE4:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7,pc}
+ thumb_func_end __fpadd_parts_f
+
+ thumb_func_start __addsf3
+__addsf3: @ 82E8CEC
+ push {r4,lr}
+ sub sp, 0x38
+ str r0, [sp, 0x30]
+ str r1, [sp, 0x34]
+ add r0, sp, 0x30
+ mov r1, sp
+ bl __unpack_f
+ add r0, sp, 0x34
+ add r4, sp, 0x10
+ adds r1, r4, 0
+ bl __unpack_f
+ add r2, sp, 0x20
+ mov r0, sp
+ adds r1, r4, 0
+ bl __fpadd_parts_f
+ bl __pack_f
+ add sp, 0x38
+ pop {r4,pc}
+ thumb_func_end __addsf3
+
+ thumb_func_start __subsf3
+__subsf3: @ 82E8D18
+ push {r4,lr}
+ sub sp, 0x38
+ str r0, [sp, 0x30]
+ str r1, [sp, 0x34]
+ add r0, sp, 0x30
+ mov r1, sp
+ bl __unpack_f
+ add r0, sp, 0x34
+ add r4, sp, 0x10
+ adds r1, r4, 0
+ bl __unpack_f
+ ldr r0, [r4, 0x4]
+ movs r1, 0x1
+ eors r0, r1
+ str r0, [r4, 0x4]
+ add r2, sp, 0x20
+ mov r0, sp
+ adds r1, r4, 0
+ bl __fpadd_parts_f
+ bl __pack_f
+ add sp, 0x38
+ pop {r4,pc}
+ thumb_func_end __subsf3
+
+ thumb_func_start __mulsf3
+__mulsf3: @ 82E8D4C
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x38
+ str r0, [sp, 0x30]
+ str r1, [sp, 0x34]
+ add r0, sp, 0x30
+ mov r1, sp
+ bl __unpack_f
+ add r0, sp, 0x34
+ add r4, sp, 0x10
+ adds r1, r4, 0
+ bl __unpack_f
+ mov r7, sp
+ add r0, sp, 0x20
+ mov r8, r0
+ movs r0, 0
+ ldr r1, [sp]
+ mov r9, r8
+ cmp r1, 0x1
+ bhi _082E8D7E
+ movs r0, 0x1
+_082E8D7E:
+ cmp r0, 0
+ bne _082E8DDC
+ movs r2, 0
+ ldr r0, [sp, 0x10]
+ cmp r0, 0x1
+ bhi _082E8D8C
+ movs r2, 0x1
+_082E8D8C:
+ cmp r2, 0
+ beq _082E8D94
+ ldr r0, [sp, 0x4]
+ b _082E8DFC
+_082E8D94:
+ movs r2, 0
+ cmp r1, 0x4
+ bne _082E8D9C
+ movs r2, 0x1
+_082E8D9C:
+ cmp r2, 0
+ beq _082E8DAE
+ movs r1, 0
+ cmp r0, 0x2
+ bne _082E8DA8
+ movs r1, 0x1
+_082E8DA8:
+ cmp r1, 0
+ bne _082E8DC6
+ b _082E8DDC
+_082E8DAE:
+ movs r2, 0
+ cmp r0, 0x4
+ bne _082E8DB6
+ movs r2, 0x1
+_082E8DB6:
+ cmp r2, 0
+ beq _082E8DD0
+ movs r0, 0
+ cmp r1, 0x2
+ bne _082E8DC2
+ movs r0, 0x1
+_082E8DC2:
+ cmp r0, 0
+ beq _082E8DFA
+_082E8DC6:
+ ldr r0, _082E8DCC
+ b _082E8E9E
+ .align 2, 0
+_082E8DCC: .4byte 0x03001a98
+_082E8DD0:
+ movs r2, 0
+ cmp r1, 0x2
+ bne _082E8DD8
+ movs r2, 0x1
+_082E8DD8:
+ cmp r2, 0
+ beq _082E8DEE
+_082E8DDC:
+ ldr r0, [sp, 0x4]
+ ldr r1, [sp, 0x14]
+ eors r0, r1
+ negs r1, r0
+ orrs r1, r0
+ lsrs r1, 31
+ str r1, [sp, 0x4]
+ mov r0, sp
+ b _082E8E9E
+_082E8DEE:
+ movs r1, 0
+ cmp r0, 0x2
+ bne _082E8DF6
+ movs r1, 0x1
+_082E8DF6:
+ cmp r1, 0
+ beq _082E8E0C
+_082E8DFA:
+ ldr r0, [r7, 0x4]
+_082E8DFC:
+ ldr r1, [sp, 0x14]
+ eors r0, r1
+ negs r1, r0
+ orrs r1, r0
+ lsrs r1, 31
+ str r1, [sp, 0x14]
+ adds r0, r4, 0
+ b _082E8E9E
+_082E8E0C:
+ ldr r0, [r7, 0xC]
+ movs r1, 0
+ ldr r2, [sp, 0x1C]
+ movs r3, 0
+ bl __muldi3
+ adds r2, r1, 0
+ adds r5, r2, 0
+ adds r6, r0, 0
+ ldr r4, [r7, 0x8]
+ ldr r0, [sp, 0x18]
+ adds r4, r0
+ str r4, [sp, 0x28]
+ ldr r1, [r7, 0x4]
+ ldr r0, [sp, 0x14]
+ eors r1, r0
+ negs r0, r1
+ orrs r0, r1
+ lsrs r0, 31
+ str r0, [sp, 0x24]
+ adds r4, 0x2
+ str r4, [sp, 0x28]
+ cmp r2, 0
+ bge _082E8E58
+ movs r2, 0x1
+ movs r1, 0x80
+ lsls r1, 24
+_082E8E42:
+ adds r4, 0x1
+ adds r0, r5, 0
+ ands r0, r2
+ cmp r0, 0
+ beq _082E8E50
+ lsrs r6, 1
+ orrs r6, r1
+_082E8E50:
+ lsrs r5, 1
+ cmp r5, 0
+ blt _082E8E42
+ str r4, [sp, 0x28]
+_082E8E58:
+ ldr r0, _082E8EAC
+ cmp r5, r0
+ bhi _082E8E7E
+ movs r4, 0x80
+ lsls r4, 24
+ movs r3, 0x1
+ adds r2, r0, 0
+ ldr r1, [sp, 0x28]
+_082E8E68:
+ subs r1, 0x1
+ lsls r5, 1
+ adds r0, r6, 0
+ ands r0, r4
+ cmp r0, 0
+ beq _082E8E76
+ orrs r5, r3
+_082E8E76:
+ lsls r6, 1
+ cmp r5, r2
+ bls _082E8E68
+ str r1, [sp, 0x28]
+_082E8E7E:
+ movs r0, 0x7F
+ ands r0, r5
+ cmp r0, 0x40
+ bne _082E8E94
+ movs r0, 0x80
+ ands r0, r5
+ cmp r0, 0
+ bne _082E8E92
+ cmp r6, 0
+ beq _082E8E94
+_082E8E92:
+ adds r5, 0x40
+_082E8E94:
+ str r5, [sp, 0x2C]
+ movs r0, 0x3
+ mov r1, r8
+ str r0, [r1]
+ mov r0, r9
+_082E8E9E:
+ bl __pack_f
+ add sp, 0x38
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7,pc}
+ .align 2, 0
+_082E8EAC: .4byte 0x3fffffff
+ thumb_func_end __mulsf3
+
+ thumb_func_start __divsf3
+__divsf3: @ 82E8EB0
+ push {r4-r6,lr}
+ sub sp, 0x28
+ str r0, [sp, 0x20]
+ str r1, [sp, 0x24]
+ add r0, sp, 0x20
+ mov r1, sp
+ bl __unpack_f
+ add r0, sp, 0x24
+ add r5, sp, 0x10
+ adds r1, r5, 0
+ bl __unpack_f
+ mov r4, sp
+ movs r0, 0
+ ldr r3, [sp]
+ cmp r3, 0x1
+ bhi _082E8ED6
+ movs r0, 0x1
+_082E8ED6:
+ cmp r0, 0
+ beq _082E8EDE
+ mov r1, sp
+ b _082E8F90
+_082E8EDE:
+ movs r0, 0
+ ldr r2, [sp, 0x10]
+ adds r6, r2, 0
+ cmp r2, 0x1
+ bhi _082E8EEA
+ movs r0, 0x1
+_082E8EEA:
+ cmp r0, 0
+ beq _082E8EF2
+ adds r1, r5, 0
+ b _082E8F90
+_082E8EF2:
+ ldr r0, [sp, 0x4]
+ ldr r1, [sp, 0x14]
+ eors r0, r1
+ str r0, [sp, 0x4]
+ movs r0, 0
+ cmp r3, 0x4
+ bne _082E8F02
+ movs r0, 0x1
+_082E8F02:
+ cmp r0, 0
+ bne _082E8F12
+ movs r0, 0
+ cmp r3, 0x2
+ bne _082E8F0E
+ movs r0, 0x1
+_082E8F0E:
+ cmp r0, 0
+ beq _082E8F24
+_082E8F12:
+ ldr r0, [r4]
+ adds r1, r4, 0
+ cmp r0, r6
+ bne _082E8F90
+ ldr r1, _082E8F20
+ b _082E8F90
+ .align 2, 0
+_082E8F20: .4byte 0x03001a98
+_082E8F24:
+ movs r1, 0
+ cmp r2, 0x4
+ bne _082E8F2C
+ movs r1, 0x1
+_082E8F2C:
+ cmp r1, 0
+ beq _082E8F38
+ str r0, [sp, 0xC]
+ str r0, [sp, 0x8]
+ mov r1, sp
+ b _082E8F90
+_082E8F38:
+ movs r0, 0
+ cmp r2, 0x2
+ bne _082E8F40
+ movs r0, 0x1
+_082E8F40:
+ cmp r0, 0
+ beq _082E8F4A
+ movs r0, 0x4
+ str r0, [r4]
+ b _082E8F8E
+_082E8F4A:
+ ldr r1, [r4, 0x8]
+ ldr r0, [sp, 0x18]
+ subs r0, r1, r0
+ str r0, [r4, 0x8]
+ ldr r2, [r4, 0xC]
+ ldr r3, [sp, 0x1C]
+ cmp r2, r3
+ bcs _082E8F60
+ lsls r2, 1
+ subs r0, 0x1
+ str r0, [r4, 0x8]
+_082E8F60:
+ movs r0, 0x80
+ lsls r0, 23
+ movs r1, 0
+_082E8F66:
+ cmp r2, r3
+ bcc _082E8F6E
+ orrs r1, r0
+ subs r2, r3
+_082E8F6E:
+ lsrs r0, 1
+ lsls r2, 1
+ cmp r0, 0
+ bne _082E8F66
+ movs r0, 0x7F
+ ands r0, r1
+ cmp r0, 0x40
+ bne _082E8F8C
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _082E8F8A
+ cmp r2, 0
+ beq _082E8F8C
+_082E8F8A:
+ adds r1, 0x40
+_082E8F8C:
+ str r1, [r4, 0xC]
+_082E8F8E:
+ adds r1, r4, 0
+_082E8F90:
+ adds r0, r1, 0
+ bl __pack_f
+ add sp, 0x28
+ pop {r4-r6,pc}
+ thumb_func_end __divsf3
+
+ thumb_func_start __fpcmp_parts_f
+__fpcmp_parts_f: @ 82E8F9C
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r0, 0
+ ldr r2, [r4]
+ cmp r2, 0x1
+ bhi _082E8FAA
+ movs r0, 0x1
+_082E8FAA:
+ cmp r0, 0
+ bne _082E8FBC
+ movs r0, 0
+ ldr r3, [r1]
+ cmp r3, 0x1
+ bhi _082E8FB8
+ movs r0, 0x1
+_082E8FB8:
+ cmp r0, 0
+ beq _082E8FC0
+_082E8FBC:
+ movs r0, 0x1
+ b _082E907E
+_082E8FC0:
+ movs r0, 0
+ cmp r2, 0x4
+ bne _082E8FC8
+ movs r0, 0x1
+_082E8FC8:
+ cmp r0, 0
+ beq _082E8FE0
+ movs r0, 0
+ cmp r3, 0x4
+ bne _082E8FD4
+ movs r0, 0x1
+_082E8FD4:
+ cmp r0, 0
+ beq _082E8FE0
+ ldr r0, [r1, 0x4]
+ ldr r1, [r4, 0x4]
+ subs r0, r1
+ b _082E907E
+_082E8FE0:
+ movs r2, 0
+ ldr r0, [r4]
+ cmp r0, 0x4
+ bne _082E8FEA
+ movs r2, 0x1
+_082E8FEA:
+ cmp r2, 0
+ bne _082E9038
+ movs r2, 0
+ cmp r3, 0x4
+ bne _082E8FF6
+ movs r2, 0x1
+_082E8FF6:
+ cmp r2, 0
+ beq _082E9008
+_082E8FFA:
+ ldr r0, [r1, 0x4]
+ movs r1, 0x1
+ negs r1, r1
+ cmp r0, 0
+ beq _082E9042
+ movs r1, 0x1
+ b _082E9042
+_082E9008:
+ movs r2, 0
+ cmp r0, 0x2
+ bne _082E9010
+ movs r2, 0x1
+_082E9010:
+ cmp r2, 0
+ beq _082E9020
+ movs r2, 0
+ cmp r3, 0x2
+ bne _082E901C
+ movs r2, 0x1
+_082E901C:
+ cmp r2, 0
+ bne _082E907C
+_082E9020:
+ movs r2, 0
+ cmp r0, 0x2
+ bne _082E9028
+ movs r2, 0x1
+_082E9028:
+ cmp r2, 0
+ bne _082E8FFA
+ movs r0, 0
+ cmp r3, 0x2
+ bne _082E9034
+ movs r0, 0x1
+_082E9034:
+ cmp r0, 0
+ beq _082E9046
+_082E9038:
+ ldr r0, [r4, 0x4]
+ movs r1, 0x1
+ cmp r0, 0
+ beq _082E9042
+ subs r1, 0x2
+_082E9042:
+ adds r0, r1, 0
+ b _082E907E
+_082E9046:
+ ldr r3, [r4, 0x4]
+ ldr r0, [r1, 0x4]
+ cmp r3, r0
+ beq _082E9058
+_082E904E:
+ movs r0, 0x1
+ cmp r3, 0
+ beq _082E907E
+ subs r0, 0x2
+ b _082E907E
+_082E9058:
+ ldr r2, [r4, 0x8]
+ ldr r0, [r1, 0x8]
+ cmp r2, r0
+ bgt _082E904E
+ cmp r2, r0
+ bge _082E9070
+_082E9064:
+ movs r0, 0x1
+ negs r0, r0
+ cmp r3, 0
+ beq _082E907E
+ movs r0, 0x1
+ b _082E907E
+_082E9070:
+ ldr r0, [r4, 0xC]
+ ldr r1, [r1, 0xC]
+ cmp r0, r1
+ bhi _082E904E
+ cmp r0, r1
+ bcc _082E9064
+_082E907C:
+ movs r0, 0
+_082E907E:
+ pop {r4,pc}
+ thumb_func_end __fpcmp_parts_f
+
+ thumb_func_start __cmpsf2
+__cmpsf2: @ 82E9080
+ push {r4,lr}
+ sub sp, 0x28
+ str r0, [sp, 0x20]
+ str r1, [sp, 0x24]
+ add r0, sp, 0x20
+ mov r1, sp
+ bl __unpack_f
+ add r0, sp, 0x24
+ add r4, sp, 0x10
+ adds r1, r4, 0
+ bl __unpack_f
+ mov r0, sp
+ adds r1, r4, 0
+ bl __fpcmp_parts_f
+ add sp, 0x28
+ pop {r4,pc}
+ thumb_func_end __cmpsf2
+
+ thumb_func_start __eqsf2
+__eqsf2: @ 82E90A8
+ push {r4,lr}
+ sub sp, 0x28
+ str r0, [sp, 0x20]
+ str r1, [sp, 0x24]
+ add r0, sp, 0x20
+ mov r1, sp
+ bl __unpack_f
+ add r0, sp, 0x24
+ add r4, sp, 0x10
+ adds r1, r4, 0
+ bl __unpack_f
+ movs r1, 0
+ ldr r0, [sp]
+ cmp r0, 0x1
+ bhi _082E90CC
+ movs r1, 0x1
+_082E90CC:
+ cmp r1, 0
+ bne _082E90DE
+ movs r1, 0
+ ldr r0, [sp, 0x10]
+ cmp r0, 0x1
+ bhi _082E90DA
+ movs r1, 0x1
+_082E90DA:
+ cmp r1, 0
+ beq _082E90E2
+_082E90DE:
+ movs r0, 0x1
+ b _082E90EA
+_082E90E2:
+ mov r0, sp
+ adds r1, r4, 0
+ bl __fpcmp_parts_f
+_082E90EA:
+ add sp, 0x28
+ pop {r4,pc}
+ thumb_func_end __eqsf2
+
+ thumb_func_start __nesf2
+__nesf2: @ 82E90F0
+ push {r4,lr}
+ sub sp, 0x28
+ str r0, [sp, 0x20]
+ str r1, [sp, 0x24]
+ add r0, sp, 0x20
+ mov r1, sp
+ bl __unpack_f
+ add r0, sp, 0x24
+ add r4, sp, 0x10
+ adds r1, r4, 0
+ bl __unpack_f
+ movs r1, 0
+ ldr r0, [sp]
+ cmp r0, 0x1
+ bhi _082E9114
+ movs r1, 0x1
+_082E9114:
+ cmp r1, 0
+ bne _082E9126
+ movs r1, 0
+ ldr r0, [sp, 0x10]
+ cmp r0, 0x1
+ bhi _082E9122
+ movs r1, 0x1
+_082E9122:
+ cmp r1, 0
+ beq _082E912A
+_082E9126:
+ movs r0, 0x1
+ b _082E9132
+_082E912A:
+ mov r0, sp
+ adds r1, r4, 0
+ bl __fpcmp_parts_f
+_082E9132:
+ add sp, 0x28
+ pop {r4,pc}
+ thumb_func_end __nesf2
+
+ thumb_func_start __gtsf2
+__gtsf2: @ 82E9138
+ push {r4,lr}
+ sub sp, 0x28
+ str r0, [sp, 0x20]
+ str r1, [sp, 0x24]
+ add r0, sp, 0x20
+ mov r1, sp
+ bl __unpack_f
+ add r0, sp, 0x24
+ add r4, sp, 0x10
+ adds r1, r4, 0
+ bl __unpack_f
+ movs r1, 0
+ ldr r0, [sp]
+ cmp r0, 0x1
+ bhi _082E915C
+ movs r1, 0x1
+_082E915C:
+ cmp r1, 0
+ bne _082E916E
+ movs r1, 0
+ ldr r0, [sp, 0x10]
+ cmp r0, 0x1
+ bhi _082E916A
+ movs r1, 0x1
+_082E916A:
+ cmp r1, 0
+ beq _082E9174
+_082E916E:
+ movs r0, 0x1
+ negs r0, r0
+ b _082E917C
+_082E9174:
+ mov r0, sp
+ adds r1, r4, 0
+ bl __fpcmp_parts_f
+_082E917C:
+ add sp, 0x28
+ pop {r4,pc}
+ thumb_func_end __gtsf2
+
+ thumb_func_start __gesf2
+__gesf2: @ 82E9180
+ push {r4,lr}
+ sub sp, 0x28
+ str r0, [sp, 0x20]
+ str r1, [sp, 0x24]
+ add r0, sp, 0x20
+ mov r1, sp
+ bl __unpack_f
+ add r0, sp, 0x24
+ add r4, sp, 0x10
+ adds r1, r4, 0
+ bl __unpack_f
+ movs r1, 0
+ ldr r0, [sp]
+ cmp r0, 0x1
+ bhi _082E91A4
+ movs r1, 0x1
+_082E91A4:
+ cmp r1, 0
+ bne _082E91B6
+ movs r1, 0
+ ldr r0, [sp, 0x10]
+ cmp r0, 0x1
+ bhi _082E91B2
+ movs r1, 0x1
+_082E91B2:
+ cmp r1, 0
+ beq _082E91BC
+_082E91B6:
+ movs r0, 0x1
+ negs r0, r0
+ b _082E91C4
+_082E91BC:
+ mov r0, sp
+ adds r1, r4, 0
+ bl __fpcmp_parts_f
+_082E91C4:
+ add sp, 0x28
+ pop {r4,pc}
+ thumb_func_end __gesf2
+
+ thumb_func_start __ltsf2
+__ltsf2: @ 82E91C8
+ push {r4,lr}
+ sub sp, 0x28
+ str r0, [sp, 0x20]
+ str r1, [sp, 0x24]
+ add r0, sp, 0x20
+ mov r1, sp
+ bl __unpack_f
+ add r0, sp, 0x24
+ add r4, sp, 0x10
+ adds r1, r4, 0
+ bl __unpack_f
+ movs r1, 0
+ ldr r0, [sp]
+ cmp r0, 0x1
+ bhi _082E91EC
+ movs r1, 0x1
+_082E91EC:
+ cmp r1, 0
+ bne _082E91FE
+ movs r1, 0
+ ldr r0, [sp, 0x10]
+ cmp r0, 0x1
+ bhi _082E91FA
+ movs r1, 0x1
+_082E91FA:
+ cmp r1, 0
+ beq _082E9202
+_082E91FE:
+ movs r0, 0x1
+ b _082E920A
+_082E9202:
+ mov r0, sp
+ adds r1, r4, 0
+ bl __fpcmp_parts_f
+_082E920A:
+ add sp, 0x28
+ pop {r4,pc}
+ thumb_func_end __ltsf2
+
+ thumb_func_start __lesf2
+__lesf2: @ 82E9210
+ push {r4,lr}
+ sub sp, 0x28
+ str r0, [sp, 0x20]
+ str r1, [sp, 0x24]
+ add r0, sp, 0x20
+ mov r1, sp
+ bl __unpack_f
+ add r0, sp, 0x24
+ add r4, sp, 0x10
+ adds r1, r4, 0
+ bl __unpack_f
+ movs r1, 0
+ ldr r0, [sp]
+ cmp r0, 0x1
+ bhi _082E9234
+ movs r1, 0x1
+_082E9234:
+ cmp r1, 0
+ bne _082E9246
+ movs r1, 0
+ ldr r0, [sp, 0x10]
+ cmp r0, 0x1
+ bhi _082E9242
+ movs r1, 0x1
+_082E9242:
+ cmp r1, 0
+ beq _082E924A
+_082E9246:
+ movs r0, 0x1
+ b _082E9252
+_082E924A:
+ mov r0, sp
+ adds r1, r4, 0
+ bl __fpcmp_parts_f
+_082E9252:
+ add sp, 0x28
+ pop {r4,pc}
+ thumb_func_end __lesf2
+
+ thumb_func_start __floatsisf
+__floatsisf: @ 82E9258
+ push {lr}
+ sub sp, 0x10
+ adds r1, r0, 0
+ movs r0, 0x3
+ str r0, [sp]
+ lsrs r2, r1, 31
+ str r2, [sp, 0x4]
+ cmp r1, 0
+ bne _082E9270
+ movs r0, 0x2
+ str r0, [sp]
+ b _082E92A8
+_082E9270:
+ movs r0, 0x1E
+ str r0, [sp, 0x8]
+ cmp r2, 0
+ beq _082E928E
+ movs r0, 0x80
+ lsls r0, 24
+ cmp r1, r0
+ bne _082E9288
+ ldr r0, _082E9284
+ b _082E92AE
+ .align 2, 0
+_082E9284: .4byte 0xcf000000
+_082E9288:
+ negs r0, r1
+ str r0, [sp, 0xC]
+ b _082E9290
+_082E928E:
+ str r1, [sp, 0xC]
+_082E9290:
+ ldr r2, [sp, 0xC]
+ ldr r3, _082E92B4
+ cmp r2, r3
+ bhi _082E92A8
+ ldr r1, [sp, 0x8]
+_082E929A:
+ lsls r0, r2, 1
+ subs r1, 0x1
+ adds r2, r0, 0
+ cmp r0, r3
+ bls _082E929A
+ str r1, [sp, 0x8]
+ str r0, [sp, 0xC]
+_082E92A8:
+ mov r0, sp
+ bl __pack_f
+_082E92AE:
+ add sp, 0x10
+ pop {pc}
+ .align 2, 0
+_082E92B4: .4byte 0x3fffffff
+ thumb_func_end __floatsisf
+
+ thumb_func_start __fixsfsi
+__fixsfsi: @ 82E92B8
+ push {lr}
+ sub sp, 0x14
+ str r0, [sp, 0x10]
+ add r0, sp, 0x10
+ mov r1, sp
+ bl __unpack_f
+ movs r1, 0
+ ldr r0, [sp]
+ cmp r0, 0x2
+ bne _082E92D0
+ movs r1, 0x1
+_082E92D0:
+ cmp r1, 0
+ bne _082E9302
+ movs r1, 0
+ cmp r0, 0x1
+ bhi _082E92DC
+ movs r1, 0x1
+_082E92DC:
+ cmp r1, 0
+ bne _082E9302
+ movs r1, 0
+ cmp r0, 0x4
+ bne _082E92E8
+ movs r1, 0x1
+_082E92E8:
+ cmp r1, 0
+ beq _082E92FC
+_082E92EC:
+ ldr r0, [sp, 0x4]
+ ldr r1, _082E92F8
+ cmp r0, 0
+ beq _082E931A
+ adds r1, 0x1
+ b _082E931A
+ .align 2, 0
+_082E92F8: .4byte 0x7fffffff
+_082E92FC:
+ ldr r1, [sp, 0x8]
+ cmp r1, 0
+ bge _082E9306
+_082E9302:
+ movs r0, 0
+ b _082E931C
+_082E9306:
+ cmp r1, 0x1E
+ bgt _082E92EC
+ movs r0, 0x1E
+ subs r0, r1
+ ldr r1, [sp, 0xC]
+ lsrs r1, r0
+ ldr r0, [sp, 0x4]
+ cmp r0, 0
+ beq _082E931A
+ negs r1, r1
+_082E931A:
+ adds r0, r1, 0
+_082E931C:
+ add sp, 0x14
+ pop {pc}
+ thumb_func_end __fixsfsi
+
+ thumb_func_start __negsf2
+__negsf2: @ 82E9320
+ push {lr}
+ sub sp, 0x14
+ str r0, [sp, 0x10]
+ add r0, sp, 0x10
+ mov r1, sp
+ bl __unpack_f
+ movs r1, 0
+ ldr r0, [sp, 0x4]
+ cmp r0, 0
+ bne _082E9338
+ movs r1, 0x1
+_082E9338:
+ str r1, [sp, 0x4]
+ mov r0, sp
+ bl __pack_f
+ add sp, 0x14
+ pop {pc}
+ thumb_func_end __negsf2
+
+ thumb_func_start __make_fp
+__make_fp: @ 82E9344
+ push {lr}
+ sub sp, 0x10
+ str r0, [sp]
+ str r1, [sp, 0x4]
+ str r2, [sp, 0x8]
+ str r3, [sp, 0xC]
+ mov r0, sp
+ bl __pack_f
+ add sp, 0x10
+ pop {pc}
+ thumb_func_end __make_fp
+
+ thumb_func_start __extendsfdf2
+__extendsfdf2: @ 82E935C
+ push {r4-r6,lr}
+ sub sp, 0x18
+ str r0, [sp, 0x14]
+ add r0, sp, 0x14
+ add r1, sp, 0x4
+ bl __unpack_f
+ ldr r0, [sp, 0x4]
+ ldr r1, [sp, 0x8]
+ ldr r2, [sp, 0xC]
+ ldr r3, [sp, 0x10]
+ movs r4, 0
+ lsrs r6, r3, 2
+ lsls r5, r4, 30
+ adds r4, r6, 0
+ orrs r4, r5
+ lsls r3, 30
+ str r4, [sp]
+ bl __make_dp
+ add sp, 0x18
+ pop {r4-r6,pc}
+ thumb_func_end __extendsfdf2
+
+ thumb_func_start __lshrdi3
+__lshrdi3: @ 82E9388
+ push {r4-r6,lr}
+ adds r6, r1, 0
+ adds r5, r0, 0
+ cmp r2, 0
+ beq _082E93B8
+ movs r0, 0x20
+ subs r0, r2
+ cmp r0, 0
+ bgt _082E93A4
+ movs r4, 0
+ negs r0, r0
+ adds r3, r6, 0
+ lsrs r3, r0
+ b _082E93B4
+_082E93A4:
+ adds r1, r6, 0
+ lsls r1, r0
+ adds r4, r6, 0
+ lsrs r4, r2
+ adds r0, r5, 0
+ lsrs r0, r2
+ adds r3, r0, 0
+ orrs r3, r1
+_082E93B4:
+ adds r1, r4, 0
+ adds r0, r3, 0
+_082E93B8:
+ pop {r4-r6,pc}
+ thumb_func_end __lshrdi3
+
+ thumb_func_start __negdi2
+__negdi2: @ 82E93BC
+ push {r4,lr}
+ negs r2, r0
+ adds r3, r2, 0
+ negs r1, r1
+ cmp r2, 0
+ beq _082E93CA
+ subs r1, 0x1
+_082E93CA:
+ adds r4, r1, 0
+ adds r1, r4, 0
+ adds r0, r3, 0
+ pop {r4,pc}
+ thumb_func_end __negdi2
+
+ thumb_func_start memcpy
+memcpy: @ 82E93D4
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ adds r4, r5, 0
+ adds r3, r1, 0
+ cmp r2, 0xF
+ bls _082E9414
+ adds r0, r3, 0
+ orrs r0, r5
+ movs r1, 0x3
+ ands r0, r1
+ cmp r0, 0
+ bne _082E9414
+ adds r1, r5, 0
+_082E93EE:
+ ldm r3!, {r0}
+ stm r1!, {r0}
+ ldm r3!, {r0}
+ stm r1!, {r0}
+ ldm r3!, {r0}
+ stm r1!, {r0}
+ ldm r3!, {r0}
+ stm r1!, {r0}
+ subs r2, 0x10
+ cmp r2, 0xF
+ bhi _082E93EE
+ cmp r2, 0x3
+ bls _082E9412
+_082E9408:
+ ldm r3!, {r0}
+ stm r1!, {r0}
+ subs r2, 0x4
+ cmp r2, 0x3
+ bhi _082E9408
+_082E9412:
+ adds r4, r1, 0
+_082E9414:
+ subs r2, 0x1
+ movs r0, 0x1
+ negs r0, r0
+ cmp r2, r0
+ beq _082E942E
+ adds r1, r0, 0
+_082E9420:
+ ldrb r0, [r3]
+ strb r0, [r4]
+ adds r3, 0x1
+ adds r4, 0x1
+ subs r2, 0x1
+ cmp r2, r1
+ bne _082E9420
+_082E942E:
+ adds r0, r5, 0
+ pop {r4,r5,pc}
+ thumb_func_end memcpy
+
+ thumb_func_start memset
+memset: @ 82E9434
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ adds r4, r1, 0
+ adds r3, r5, 0
+ cmp r2, 0x3
+ bls _082E947A
+ movs r0, 0x3
+ ands r0, r5
+ cmp r0, 0
+ bne _082E947A
+ adds r1, r5, 0
+ movs r0, 0xFF
+ ands r4, r0
+ lsls r3, r4, 8
+ orrs r3, r4
+ lsls r0, r3, 16
+ orrs r3, r0
+ cmp r2, 0xF
+ bls _082E946E
+_082E945A:
+ stm r1!, {r3}
+ stm r1!, {r3}
+ stm r1!, {r3}
+ stm r1!, {r3}
+ subs r2, 0x10
+ cmp r2, 0xF
+ bhi _082E945A
+ b _082E946E
+_082E946A:
+ stm r1!, {r3}
+ subs r2, 0x4
+_082E946E:
+ cmp r2, 0x3
+ bhi _082E946A
+ adds r3, r1, 0
+ b _082E947A
+_082E9476:
+ strb r4, [r3]
+ adds r3, 0x1
+_082E947A:
+ adds r0, r2, 0
+ subs r2, 0x1
+ cmp r0, 0
+ bne _082E9476
+ adds r0, r5, 0
+ pop {r4,r5,pc}
+ thumb_func_end memset
+
+ thumb_func_start strcmp
+strcmp: @ 82E9488
+ push {r4,r5,lr}
+ adds r2, r0, 0
+ adds r3, r1, 0
+ orrs r0, r3
+ movs r1, 0x3
+ ands r0, r1
+ cmp r0, 0
+ bne _082E94CE
+ ldr r1, [r2]
+ ldr r0, [r3]
+ cmp r1, r0
+ bne _082E94CE
+ ldr r5, _082E94B4
+ ldr r4, _082E94B8
+_082E94A4:
+ ldr r1, [r2]
+ adds r0, r1, r5
+ bics r0, r1
+ ands r0, r4
+ cmp r0, 0
+ beq _082E94BC
+ movs r0, 0
+ b _082E94E0
+ .align 2, 0
+_082E94B4: .4byte 0xfefefeff
+_082E94B8: .4byte 0x80808080
+_082E94BC:
+ adds r2, 0x4
+ adds r3, 0x4
+ ldr r1, [r2]
+ ldr r0, [r3]
+ cmp r1, r0
+ beq _082E94A4
+ b _082E94CE
+_082E94CA:
+ adds r2, 0x1
+ adds r3, 0x1
+_082E94CE:
+ ldrb r0, [r2]
+ cmp r0, 0
+ beq _082E94DA
+ ldrb r1, [r3]
+ cmp r0, r1
+ beq _082E94CA
+_082E94DA:
+ ldrb r2, [r2]
+ ldrb r3, [r3]
+ subs r0, r2, r3
+_082E94E0:
+ pop {r4,r5,pc}
+ thumb_func_end strcmp
+
+ thumb_func_start strcat
+strcat: @ 82E94E4
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ adds r3, r6, 0
+ adds r2, r1, 0
+ adds r0, r2, 0
+ orrs r0, r6
+ movs r1, 0x3
+ ands r0, r1
+ cmp r0, 0
+ bne _082E951C
+ ldr r1, [r2]
+ ldr r5, _082E9504
+ adds r0, r1, r5
+ bics r0, r1
+ ldr r4, _082E9508
+ b _082E9516
+ .align 2, 0
+_082E9504: .4byte 0xfefefeff
+_082E9508: .4byte 0x80808080
+_082E950C:
+ ldm r2!, {r0}
+ stm r3!, {r0}
+ ldr r1, [r2]
+ adds r0, r1, r5
+ bics r0, r1
+_082E9516:
+ ands r0, r4
+ cmp r0, 0
+ beq _082E950C
+_082E951C:
+ ldrb r0, [r2]
+ strb r0, [r3]
+ lsls r0, 24
+ adds r2, 0x1
+ adds r3, 0x1
+ cmp r0, 0
+ bne _082E951C
+ adds r0, r6, 0
+ pop {r4-r6,pc}
diff --git a/asm/libmks4agb.s b/asm/libmks4agb.s
new file mode 100644
index 000000000..006f6da5c
--- /dev/null
+++ b/asm/libmks4agb.s
@@ -0,0 +1,5283 @@
+ thumb_func_start umul3232H32
+umul3232H32: @ 82DF04C
+ adr r2, _082DF050
+ bx r2
+ .arm
+_082DF050:
+ umull r2, r3, r0, r1
+ add r0, r3, 0
+ bx lr
+ thumb_func_end umul3232H32
+
+ .thumb
+ thumb_func_start SoundMain
+SoundMain: @ 82DF05C
+ ldr r0, _082DF0C8
+ ldr r0, [r0]
+ ldr r2, _082DF0CC
+ ldr r3, [r0]
+ cmp r2, r3
+ beq _082DF06A
+ bx lr
+_082DF06A:
+ adds r3, 0x1
+ str r3, [r0]
+ push {r4-r7,lr}
+ mov r1, r8
+ mov r2, r9
+ mov r3, r10
+ mov r4, r11
+ push {r0-r4}
+ sub sp, 0x18
+ ldrb r1, [r0, 0xC]
+ cmp r1, 0
+ beq _082DF08E
+ ldr r2, _082DF0D4
+ ldrb r2, [r2]
+ cmp r2, 0xA0
+ bcs _082DF08C
+ adds r2, 0xE4
+_082DF08C:
+ adds r1, r2
+_082DF08E:
+ str r1, [sp, 0x14]
+ ldr r3, [r0, 0x20]
+ cmp r3, 0
+ beq _082DF09E
+ ldr r0, [r0, 0x24]
+ bl _082DF496
+ ldr r0, [sp, 0x18]
+_082DF09E:
+ ldr r3, [r0, 0x28]
+ bl _082DF496
+ ldr r0, [sp, 0x18]
+ ldr r3, [r0, 0x10]
+ mov r8, r3
+ ldr r5, _082DF0D8
+ adds r5, r0
+ ldrb r4, [r0, 0x4]
+ subs r7, r4, 0x1
+ bls _082DF0BE
+ ldrb r1, [r0, 0xB]
+ subs r1, r7
+ mov r2, r8
+ muls r2, r1
+ adds r5, r2
+_082DF0BE:
+ str r5, [sp, 0x8]
+ ldr r6, _082DF0DC
+ ldr r3, _082DF0D0
+ bx r3
+ .align 2, 0
+_082DF0C8: .4byte 0x03007ff0
+_082DF0CC: .4byte 0x68736d53
+_082DF0D0: .4byte 0x03001aa9
+_082DF0D4: .4byte 0x04000006
+_082DF0D8: .4byte 0x00000350
+_082DF0DC: .4byte 0x00000630
+ thumb_func_end SoundMain
+
+ thumb_func_start SoundMainRAM
+SoundMainRAM: @ 82DF0E0
+ ldrb r3, [r0, 0x5]
+ cmp r3, 0
+ beq _082DF140
+ adr r1, _082DF0EC
+ bx r1
+ .arm
+_082DF0EC:
+ cmp r4, 0x2
+ addeq r7, r0, 0x350
+ addne r7, r5, r8
+ mov r4, r8
+_082DF0FC:
+ ldrsb r0, [r5, r6]
+ ldrsb r1, [r5]
+ add r0, r0, r1
+ ldrsb r1, [r7, r6]
+ add r0, r0, r1
+ ldrsb r1, [r7], 0x1
+ add r0, r0, r1
+ mul r1, r0, r3
+ mov r0, r1, asr 9
+ tst r0, 0x80
+ addne r0, r0, 0x1
+ strb r0, [r5, r6]
+ strb r0, [r5], 0x1
+ subs r4, r4, 0x1
+ bgt _082DF0FC
+ add r0, pc, 0x2F
+ bx r0
+ .thumb
+_082DF140:
+ movs r0, 0
+ mov r1, r8
+ adds r6, r5
+ lsrs r1, 3
+ bcc _082DF14E
+ stm r5!, {r0}
+ stm r6!, {r0}
+_082DF14E:
+ lsrs r1, 1
+ bcc _082DF15A
+ stm r5!, {r0}
+ stm r6!, {r0}
+ stm r5!, {r0}
+ stm r6!, {r0}
+_082DF15A:
+ stm r5!, {r0}
+ stm r6!, {r0}
+ stm r5!, {r0}
+ stm r6!, {r0}
+ stm r5!, {r0}
+ stm r6!, {r0}
+ stm r5!, {r0}
+ stm r6!, {r0}
+ subs r1, 0x1
+ bgt _082DF15A
+ ldr r4, [sp, 0x18]
+ ldr r0, [r4, 0x18]
+ mov r12, r0
+ ldrb r0, [r4, 0x6]
+ adds r4, 0x50
+_082DF178:
+ str r0, [sp, 0x4]
+ ldr r3, [r4, 0x24]
+ ldr r0, [sp, 0x14]
+ cmp r0, 0
+ beq _082DF198
+ ldr r1, _082DF194
+ ldrb r1, [r1]
+ cmp r1, 0xA0
+ bcs _082DF18C
+ adds r1, 0xE4
+_082DF18C:
+ cmp r1, r0
+ bcc _082DF198
+ b _082DF482
+ .align 2, 0
+_082DF194: .4byte 0x04000006
+_082DF198:
+ ldrb r6, [r4]
+ movs r0, 0xC7
+ tst r0, r6
+ bne _082DF1A2
+ b _082DF478
+_082DF1A2:
+ movs r0, 0x80
+ tst r0, r6
+ beq _082DF1D8
+ movs r0, 0x40
+ tst r0, r6
+ bne _082DF1E8
+ movs r6, 0x3
+ strb r6, [r4]
+ adds r0, r3, 0
+ adds r0, 0x10
+ ldr r1, [r4, 0x18]
+ adds r0, r1
+ str r0, [r4, 0x28]
+ ldr r0, [r3, 0xC]
+ subs r0, r1
+ str r0, [r4, 0x18]
+ movs r5, 0
+ strb r5, [r4, 0x9]
+ str r5, [r4, 0x1C]
+ ldrb r2, [r3, 0x3]
+ movs r0, 0xC0
+ tst r0, r2
+ beq _082DF230
+ movs r0, 0x10
+ orrs r6, r0
+ strb r6, [r4]
+ b _082DF230
+_082DF1D8:
+ ldrb r5, [r4, 0x9]
+ movs r0, 0x4
+ tst r0, r6
+ beq _082DF1EE
+ ldrb r0, [r4, 0xD]
+ subs r0, 0x1
+ strb r0, [r4, 0xD]
+ bhi _082DF23E
+_082DF1E8:
+ movs r0, 0
+ strb r0, [r4]
+ b _082DF478
+_082DF1EE:
+ movs r0, 0x40
+ tst r0, r6
+ beq _082DF20E
+ ldrb r0, [r4, 0x7]
+ muls r5, r0
+ lsrs r5, 8
+ ldrb r0, [r4, 0xC]
+ cmp r5, r0
+ bhi _082DF23E
+_082DF200:
+ ldrb r5, [r4, 0xC]
+ cmp r5, 0
+ beq _082DF1E8
+ movs r0, 0x4
+ orrs r6, r0
+ strb r6, [r4]
+ b _082DF23E
+_082DF20E:
+ movs r2, 0x3
+ ands r2, r6
+ cmp r2, 0x2
+ bne _082DF22C
+ ldrb r0, [r4, 0x5]
+ muls r5, r0
+ lsrs r5, 8
+ ldrb r0, [r4, 0x6]
+ cmp r5, r0
+ bhi _082DF23E
+ adds r5, r0, 0
+ beq _082DF200
+ subs r6, 0x1
+ strb r6, [r4]
+ b _082DF23E
+_082DF22C:
+ cmp r2, 0x3
+ bne _082DF23E
+_082DF230:
+ ldrb r0, [r4, 0x4]
+ adds r5, r0
+ cmp r5, 0xFF
+ bcc _082DF23E
+ movs r5, 0xFF
+ subs r6, 0x1
+ strb r6, [r4]
+_082DF23E:
+ strb r5, [r4, 0x9]
+ ldr r0, [sp, 0x18]
+ ldrb r0, [r0, 0x7]
+ adds r0, 0x1
+ muls r0, r5
+ lsrs r5, r0, 4
+ ldrb r0, [r4, 0x2]
+ muls r0, r5
+ lsrs r0, 8
+ strb r0, [r4, 0xA]
+ ldrb r0, [r4, 0x3]
+ muls r0, r5
+ lsrs r0, 8
+ strb r0, [r4, 0xB]
+ movs r0, 0x10
+ ands r0, r6
+ str r0, [sp, 0x10]
+ beq _082DF272
+ adds r0, r3, 0
+ adds r0, 0x10
+ ldr r1, [r3, 0x8]
+ adds r0, r1
+ str r0, [sp, 0xC]
+ ldr r0, [r3, 0xC]
+ subs r0, r1
+ str r0, [sp, 0x10]
+_082DF272:
+ ldr r5, [sp, 0x8]
+ ldr r2, [r4, 0x18]
+ ldr r3, [r4, 0x28]
+ adr r0, _082DF27C
+ bx r0
+ .arm
+_082DF27C:
+ str r8, [sp]
+ ldr r9, [r4, 0x1C]
+ ldrb r10, [r4, 0xA]
+ ldrb r11, [r4, 0xB]
+ ldrb r0, [r4, 0x1]
+ tst r0, 0x30
+ beq _082DF2A0
+ bl sub_82DF49C
+ b _082DF460
+_082DF2A0:
+ mov r10, r10, lsl 16
+ mov r11, r11, lsl 16
+ ldrb r0, [r4, 0x1]
+ tst r0, 0x8
+ beq _082DF3D4
+_082DF2B4:
+ cmp r2, 0x4
+ ble _082DF324
+ subs r2, r2, r8
+ movgt r9, 0
+ bgt _082DF2E0
+ mov r9, r8
+ add r2, r2, r8
+ sub r8, r2, 0x4
+ sub r9, r9, r8
+ ands r2, r2, 0x3
+ moveq r2, 0x4
+_082DF2E0:
+ ldr r6, [r5]
+ ldr r7, [r5, 0x630]
+_082DF2E8:
+ ldrsb r0, [r3], 0x1
+ mul r1, r10, r0
+ bic r1, r1, 0xFF0000
+ add r6, r1, r6, ror 8
+ mul r1, r11, r0
+ bic r1, r1, 0xFF0000
+ add r7, r1, r7, ror 8
+ adds r5, r5, 0x40000000
+ bcc _082DF2E8
+ str r7, [r5, 0x630]
+ str r6, [r5], 0x4
+ subs r8, r8, 0x4
+ bgt _082DF2E0
+ adds r8, r8, r9
+ beq _082DF464
+_082DF324:
+ ldr r6, [r5]
+ ldr r7, [r5, 0x630]
+_082DF32C:
+ ldrsb r0, [r3], 0x1
+ mul r1, r10, r0
+ bic r1, r1, 0xFF0000
+ add r6, r1, r6, ror 8
+ mul r1, r11, r0
+ bic r1, r1, 0xFF0000
+ add r7, r1, r7, ror 8
+ subs r2, r2, 0x1
+ beq _082DF39C
+_082DF350:
+ adds r5, r5, 0x40000000
+ bcc _082DF32C
+ str r7, [r5, 0x630]
+ str r6, [r5], 0x4
+ subs r8, r8, 0x4
+ bgt _082DF2B4
+ b _082DF464
+_082DF36C:
+ ldr r0, [sp, 0x18]
+ cmp r0, 0
+ beq _082DF390
+ ldr r3, [sp, 0x14]
+ rsb lr, r2, 0
+_082DF380:
+ adds r2, r0, r2
+ bgt _082DF434
+ sub lr, lr, r0
+ b _082DF380
+_082DF390:
+ ldmia sp!, {r4,r12}
+ mov r2, 0
+ b _082DF3AC
+_082DF39C:
+ ldr r2, [sp, 0x10]
+ cmp r2, 0
+ ldrne r3, [sp, 0xC]
+ bne _082DF350
+_082DF3AC:
+ strb r2, [r4]
+ mov r0, r5, lsr 30
+ bic r5, r5, 0xC0000000
+ rsb r0, r0, 0x3
+ mov r0, r0, lsl 3
+ mov r6, r6, ror r0
+ mov r7, r7, ror r0
+ str r7, [r5, 0x630]
+ str r6, [r5], 0x4
+ b _082DF46C
+_082DF3D4:
+ stmdb sp!, {r4,r12}
+ ldr r1, [r4, 0x20]
+ mul r4, r12, r1
+ ldrsb r0, [r3]
+ ldrsb r1, [r3, 0x1]!
+ sub r1, r1, r0
+_082DF3EC:
+ ldr r6, [r5]
+ ldr r7, [r5, 0x630]
+_082DF3F4:
+ mul lr, r9, r1
+ add lr, r0, lr, asr 23
+ mul r12, r10, lr
+ bic r12, r12, 0xFF0000
+ add r6, r12, r6, ror 8
+ mul r12, r11, lr
+ bic r12, r12, 0xFF0000
+ add r7, r12, r7, ror 8
+ add r9, r9, r4
+ movs lr, r9, lsr 23
+ beq _082DF440
+ bic r9, r9, 0x3F800000
+ subs r2, r2, lr
+ ble _082DF36C
+ subs lr, lr, 0x1
+ addeq r0, r0, r1
+_082DF434:
+ ldrsbne r0, [r3, lr]!
+ ldrsb r1, [r3, 0x1]!
+ sub r1, r1, r0
+_082DF440:
+ adds r5, r5, 0x40000000
+ bcc _082DF3F4
+ str r7, [r5, 0x630]
+ str r6, [r5], 0x4
+ subs r8, r8, 0x4
+ bgt _082DF3EC
+ sub r3, r3, 0x1
+ ldmia sp!, {r4,r12}
+_082DF460:
+ str r9, [r4, 0x1C]
+_082DF464:
+ str r2, [r4, 0x18]
+ str r3, [r4, 0x28]
+_082DF46C:
+ ldr r8, [sp]
+ add r0, pc, 0x1
+ bx r0
+ .thumb
+_082DF478:
+ ldr r0, [sp, 0x4]
+ subs r0, 0x1
+ ble _082DF482
+ adds r4, 0x40
+ b _082DF178
+_082DF482:
+ ldr r0, [sp, 0x18]
+ ldr r3, _082DF498
+ str r3, [r0]
+ add sp, 0x1C
+ pop {r0-r7}
+ mov r8, r0
+ mov r9, r1
+ mov r10, r2
+ mov r11, r3
+ pop {r3}
+_082DF496:
+ bx r3
+ .align 2, 0
+_082DF498: .4byte 0x68736d53
+ thumb_func_end SoundMainRAM
+
+ .arm
+ arm_func_start sub_82DF49C
+sub_82DF49C: @ 82DF49C
+ ldr r6, [r4, 0x24]
+ ldrb r0, [r4]
+ tst r0, 0x20
+ bne _082DF4EC
+ orr r0, r0, 0x20
+ strb r0, [r4]
+ ldrb r0, [r4, 0x1]
+ tst r0, 0x10
+ beq _082DF4D4
+ ldr r1, [r6, 0xC]
+ add r1, r1, r6, lsl 1
+ add r1, r1, 0x20
+ sub r3, r1, r3
+ str r3, [r4, 0x28]
+_082DF4D4:
+ ldrh r0, [r6]
+ cmp r0, 0
+ beq _082DF4EC
+ sub r3, r3, r6
+ sub r3, r3, 0x10
+ str r3, [r4, 0x28]
+_082DF4EC:
+ stmdb sp!, {r8,r12,lr}
+ mov r10, r10, lsl 16
+ mov r11, r11, lsl 16
+ ldr r1, [r4, 0x20]
+ ldrb r0, [r4, 0x1]
+ tst r0, 0x8
+ movne r8, 0x800000
+ muleq r8, r12, r1
+ ldrh r0, [r6]
+ cmp r0, 0
+ beq _082DF6A0
+ mov r0, 0xFF000000
+ str r0, [r4, 0x3C]
+ ldrb r0, [r4, 0x1]
+ tst r0, 0x10
+ bne _082DF5F8
+ bl sub_82DF758
+ mov r0, r1
+ add r3, r3, 0x1
+ bl sub_82DF758
+ sub r1, r1, r0
+_082DF540:
+ ldr r6, [r5]
+ ldr r7, [r5, 0x630]
+_082DF548:
+ mul lr, r9, r1
+ add lr, r0, lr, asr 23
+ mul r12, r10, lr
+ bic r12, r12, 0xFF0000
+ add r6, r12, r6, ror 8
+ mul r12, r11, lr
+ bic r12, r12, 0xFF0000
+ add r7, r12, r7, ror 8
+ add r9, r9, r8
+ movs lr, r9, lsr 23
+ beq _082DF5A8
+ bic r9, r9, 0x3F800000
+ subs r2, r2, lr
+ ble _082DF5D0
+ subs lr, lr, 0x1
+ bne _082DF590
+ add r0, r0, r1
+ b _082DF59C
+_082DF590:
+ add r3, r3, lr
+ bl sub_82DF758
+ mov r0, r1
+_082DF59C:
+ add r3, r3, 0x1
+ bl sub_82DF758
+ sub r1, r1, r0
+_082DF5A8:
+ adds r5, r5, 0x40000000
+ bcc _082DF548
+ str r7, [r5, 0x630]
+ str r6, [r5], 0x4
+ ldr r6, [sp]
+ subs r6, r6, 0x4
+ str r6, [sp]
+ bgt _082DF540
+ sub r3, r3, 0x1
+ b _082DF728
+_082DF5D0:
+ ldr r0, [sp, 0x1C]
+ cmp r0, 0
+ beq _082DF72C
+ ldr r3, [r4, 0x24]
+ ldr r3, [r3, 0x8]
+ rsb lr, r2, 0
+_082DF5E8:
+ adds r2, r2, r0
+ bgt _082DF590
+ sub lr, lr, r0
+ b _082DF5E8
+_082DF5F8:
+ sub r3, r3, 0x1
+ bl sub_82DF758
+ mov r0, r1
+ sub r3, r3, 0x1
+ bl sub_82DF758
+ sub r1, r1, r0
+_082DF610:
+ ldr r6, [r5]
+ ldr r7, [r5, 0x630]
+_082DF618:
+ mul lr, r9, r1
+ add lr, r0, lr, asr 23
+ mul r12, r10, lr
+ bic r12, r12, 0xFF0000
+ add r6, r12, r6, ror 8
+ mul r12, r11, lr
+ bic r12, r12, 0xFF0000
+ add r7, r12, r7, ror 8
+ add r9, r9, r8
+ movs lr, r9, lsr 23
+ beq _082DF678
+ bic r9, r9, 0x3F800000
+ subs r2, r2, lr
+ ble _082DF72C
+ subs lr, lr, 0x1
+ bne _082DF660
+ add r0, r0, r1
+ b _082DF66C
+_082DF660:
+ sub r3, r3, lr
+ bl sub_82DF758
+ mov r0, r1
+_082DF66C:
+ sub r3, r3, 0x1
+ bl sub_82DF758
+ sub r1, r1, r0
+_082DF678:
+ adds r5, r5, 0x40000000
+ bcc _082DF618
+ str r7, [r5, 0x630]
+ str r6, [r5], 0x4
+ ldr r6, [sp]
+ subs r6, r6, 0x4
+ str r6, [sp]
+ bgt _082DF610
+ add r3, r3, 0x2
+ b _082DF728
+_082DF6A0:
+ ldrb r0, [r4, 0x1]
+ tst r0, 0x10
+ beq _082DF728
+ ldrsb r0, [r3, -0x1]!
+ ldrsb r1, [r3, -0x1]
+ sub r1, r1, r0
+_082DF6B8:
+ ldr r6, [r5]
+ ldr r7, [r5, 0x630]
+_082DF6C0:
+ mul lr, r9, r1
+ add lr, r0, lr, asr 23
+ mul r12, r10, lr
+ bic r12, r12, 0xFF0000
+ add r6, r12, r6, ror 8
+ mul r12, r11, lr
+ bic r12, r12, 0xFF0000
+ add r7, r12, r7, ror 8
+ add r9, r9, r8
+ movs lr, r9, lsr 23
+ beq _082DF704
+ bic r9, r9, 0x3F800000
+ subs r2, r2, lr
+ ble _082DF72C
+ ldrsb r0, [r3, -lr]!
+ ldrsb r1, [r3, -0x1]
+ sub r1, r1, r0
+_082DF704:
+ adds r5, r5, 0x40000000
+ bcc _082DF6C0
+ str r7, [r5, 0x630]
+ str r6, [r5], 0x4
+ ldr r6, [sp]
+ subs r6, r6, 0x4
+ str r6, [sp]
+ bgt _082DF6B8
+ add r3, r3, 0x1
+_082DF728:
+ ldmia sp!, {r8,r12,pc}
+_082DF72C:
+ mov r2, 0
+ strb r2, [r4]
+ mov r0, r5, lsr 30
+ bic r5, r5, 0xC0000000
+ rsb r0, r0, 0x3
+ mov r0, r0, lsl 3
+ mov r6, r6, ror r0
+ mov r7, r7, ror r0
+ str r7, [r5, 0x630]
+ str r6, [r5], 0x4
+ ldmia sp!, {r8,r12,pc}
+ arm_func_end sub_82DF49C
+
+ arm_func_start sub_82DF758
+sub_82DF758: @ 82DF758
+ stmdb sp!, {r0,r2,r5-r7,lr}
+ mov r0, r3, lsr 6
+ ldr r1, [r4, 0x3C]
+ cmp r0, r1
+ beq _082DF7CC
+ str r0, [r4, 0x3C]
+ mov r1, 0x21
+ mul r2, r1, r0
+ ldr r1, [r4, 0x24]
+ add r2, r2, r1
+ add r2, r2, 0x10
+ ldr r5, _082DF7DC
+ ldr r6, _082DF7E0
+ mov r7, 0x40
+ ldrb lr, [r2], 0x1
+ strb lr, [r5], 0x1
+ ldrb r1, [r2], 0x1
+ b _082DF7B4
+_082DF7A0:
+ ldrb r1, [r2], 0x1
+ mov r0, r1, lsr 4
+ ldrsb r0, [r6, r0]
+ add lr, lr, r0
+ strb lr, [r5], 0x1
+_082DF7B4:
+ and r0, r1, 0xF
+ ldrsb r0, [r6, r0]
+ add lr, lr, r0
+ strb lr, [r5], 0x1
+ subs r7, r7, 0x2
+ bgt _082DF7A0
+_082DF7CC:
+ ldr r5, _082DF7DC
+ and r0, r3, 0x3F
+ ldrsb r1, [r5, r0]
+ ldmia sp!, {r0,r2,r5-r7,pc}
+ .align 2, 0
+_082DF7DC: .4byte 0x03001300
+_082DF7E0: .4byte 0x08675a70
+ arm_func_end sub_82DF758
+
+ .thumb
+ thumb_func_start SoundMainBTM
+SoundMainBTM: @ 82DF7E4
+ mov r12, r4
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0
+ movs r4, 0
+ stm r0!, {r1-r4}
+ stm r0!, {r1-r4}
+ stm r0!, {r1-r4}
+ stm r0!, {r1-r4}
+ mov r4, r12
+ bx lr
+ thumb_func_end SoundMainBTM
+
+ thumb_func_start ClearChain
+ClearChain: @ 82DF7FC
+ ldr r3, [r0, 0x2C]
+ cmp r3, 0
+ beq _082DF81A
+ ldr r1, [r0, 0x34]
+ ldr r2, [r0, 0x30]
+ cmp r2, 0
+ beq _082DF80E
+ str r1, [r2, 0x34]
+ b _082DF810
+_082DF80E:
+ str r1, [r3, 0x20]
+_082DF810:
+ cmp r1, 0
+ beq _082DF816
+ str r2, [r1, 0x30]
+_082DF816:
+ movs r1, 0
+ str r1, [r0, 0x2C]
+_082DF81A:
+ bx lr
+ thumb_func_end ClearChain
+
+ thumb_func_start ply_fine
+ply_fine: @ 82DF81C
+ push {r4,r5,lr}
+ adds r5, r1, 0
+ ldr r4, [r5, 0x20]
+ cmp r4, 0
+ beq _082DF840
+_082DF826:
+ ldrb r1, [r4]
+ movs r0, 0xC7
+ tst r0, r1
+ beq _082DF834
+ movs r0, 0x40
+ orrs r1, r0
+ strb r1, [r4]
+_082DF834:
+ adds r0, r4, 0
+ bl ClearChain
+ ldr r4, [r4, 0x34]
+ cmp r4, 0
+ bne _082DF826
+_082DF840:
+ movs r0, 0
+ strb r0, [r5]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end ply_fine
+
+ thumb_func_start MPlyJmpTblCopy
+MPlyJmpTblCopy: @ 82DF84C
+ mov r12, lr
+ movs r1, 0x24
+ ldr r2, _082DF87C
+_082DF852:
+ ldr r3, [r2]
+ bl chk_adr_r2
+ stm r0!, {r3}
+ adds r2, 0x4
+ subs r1, 0x1
+ bgt _082DF852
+ bx r12
+ thumb_func_end MPlyJmpTblCopy
+
+ thumb_func_start ldrb_r3_r2
+ldrb_r3_r2: @ 82DF864
+ ldrb r3, [r2]
+ thumb_func_end ldrb_r3_r2
+
+ non_word_aligned_thumb_func_start chk_adr_r2
+chk_adr_r2: @ 82DF866
+ push {r0}
+ lsrs r0, r2, 25
+ bne _082DF878
+ ldr r0, _082DF87C
+ cmp r2, r0
+ bcc _082DF876
+ lsrs r0, r2, 14
+ beq _082DF878
+_082DF876:
+ movs r3, 0
+_082DF878:
+ pop {r0}
+ bx lr
+ .align 2, 0
+_082DF87C: .4byte 0x086759e0
+ thumb_func_end chk_adr_r2
+
+ thumb_func_start ld_r3_tp_adr_i
+ld_r3_tp_adr_i: @ 82DF880
+ ldr r2, [r1, 0x40]
+_082DF882:
+ adds r3, r2, 0x1
+ str r3, [r1, 0x40]
+ ldrb r3, [r2]
+ b chk_adr_r2
+ thumb_func_end ld_r3_tp_adr_i
+
+ thumb_func_start ply_goto
+ply_goto: @ 82DF88C
+ push {lr}
+_082DF88E:
+ ldr r2, [r1, 0x40]
+ ldrb r0, [r2, 0x3]
+ lsls r0, 8
+ ldrb r3, [r2, 0x2]
+ orrs r0, r3
+ lsls r0, 8
+ ldrb r3, [r2, 0x1]
+ orrs r0, r3
+ lsls r0, 8
+ bl ldrb_r3_r2
+ orrs r0, r3
+ str r0, [r1, 0x40]
+ pop {r0}
+ bx r0
+ thumb_func_end ply_goto
+
+ thumb_func_start ply_patt
+ply_patt: @ 82DF8AC
+ ldrb r2, [r1, 0x2]
+ cmp r2, 0x3
+ bcs _082DF8C4
+ lsls r2, 2
+ adds r3, r1, r2
+ ldr r2, [r1, 0x40]
+ adds r2, 0x4
+ str r2, [r3, 0x44]
+ ldrb r2, [r1, 0x2]
+ adds r2, 0x1
+ strb r2, [r1, 0x2]
+ b ply_goto
+_082DF8C4:
+ b ply_fine
+ thumb_func_end ply_patt
+
+ thumb_func_start play_pend
+play_pend: @ 82DF8C8
+ ldrb r2, [r1, 0x2]
+ cmp r2, 0
+ beq _082DF8DA
+ subs r2, 0x1
+ strb r2, [r1, 0x2]
+ lsls r2, 2
+ adds r3, r1, r2
+ ldr r2, [r3, 0x44]
+ str r2, [r1, 0x40]
+_082DF8DA:
+ bx lr
+ thumb_func_end play_pend
+
+ thumb_func_start ply_rept
+ply_rept: @ 82DF8DC
+ push {lr}
+ ldr r2, [r1, 0x40]
+ ldrb r3, [r2]
+ cmp r3, 0
+ bne _082DF8EC
+ adds r2, 0x1
+ str r2, [r1, 0x40]
+ b _082DF88E
+_082DF8EC:
+ ldrb r3, [r1, 0x3]
+ adds r3, 0x1
+ strb r3, [r1, 0x3]
+ mov r12, r3
+ bl ld_r3_tp_adr_i
+ cmp r12, r3
+ bcs _082DF8FE
+ b _082DF88E
+_082DF8FE:
+ movs r3, 0
+ strb r3, [r1, 0x3]
+ adds r2, 0x5
+ str r2, [r1, 0x40]
+ pop {r0}
+ bx r0
+ thumb_func_end ply_rept
+
+ thumb_func_start ply_prio
+ply_prio: @ 82DF90C
+ mov r12, lr
+ bl ld_r3_tp_adr_i
+ strb r3, [r1, 0x1D]
+ bx r12
+ thumb_func_end ply_prio
+
+ thumb_func_start ply_tempo
+ply_tempo: @ 82DF918
+ mov r12, lr
+ bl ld_r3_tp_adr_i
+ lsls r3, 1
+ strh r3, [r0, 0x1C]
+ ldrh r2, [r0, 0x1E]
+ muls r3, r2
+ lsrs r3, 8
+ strh r3, [r0, 0x20]
+ bx r12
+ thumb_func_end ply_tempo
+
+ thumb_func_start ply_keysh
+ply_keysh: @ 82DF92C
+ mov r12, lr
+ bl ld_r3_tp_adr_i
+ strb r3, [r1, 0xA]
+ ldrb r3, [r1]
+ movs r2, 0xC
+ orrs r3, r2
+ strb r3, [r1]
+ bx r12
+ thumb_func_end ply_keysh
+
+ thumb_func_start ply_voice
+ply_voice: @ 82DF940
+ mov r12, lr
+ ldr r2, [r1, 0x40]
+ ldrb r3, [r2]
+ adds r2, 0x1
+ str r2, [r1, 0x40]
+ lsls r2, r3, 1
+ adds r2, r3
+ lsls r2, 2
+ ldr r3, [r0, 0x30]
+ adds r2, r3
+ ldr r3, [r2]
+ bl chk_adr_r2
+ str r3, [r1, 0x24]
+ ldr r3, [r2, 0x4]
+ bl chk_adr_r2
+ str r3, [r1, 0x28]
+ ldr r3, [r2, 0x8]
+ bl chk_adr_r2
+ str r3, [r1, 0x2C]
+ bx r12
+ thumb_func_end ply_voice
+
+ thumb_func_start ply_vol
+ply_vol: @ 82DF970
+ mov r12, lr
+ bl ld_r3_tp_adr_i
+ strb r3, [r1, 0x12]
+ ldrb r3, [r1]
+ movs r2, 0x3
+ orrs r3, r2
+ strb r3, [r1]
+ bx r12
+ thumb_func_end ply_vol
+
+ thumb_func_start ply_pan
+ply_pan: @ 82DF984
+ mov r12, lr
+ bl ld_r3_tp_adr_i
+ subs r3, 0x40
+ strb r3, [r1, 0x14]
+ ldrb r3, [r1]
+ movs r2, 0x3
+ orrs r3, r2
+ strb r3, [r1]
+ bx r12
+ thumb_func_end ply_pan
+
+ thumb_func_start ply_bend
+ply_bend: @ 82DF998
+ mov r12, lr
+ bl ld_r3_tp_adr_i
+ subs r3, 0x40
+ strb r3, [r1, 0xE]
+ ldrb r3, [r1]
+ movs r2, 0xC
+ orrs r3, r2
+ strb r3, [r1]
+ bx r12
+ thumb_func_end ply_bend
+
+ thumb_func_start ply_bendr
+ply_bendr: @ 82DF9AC
+ mov r12, lr
+ bl ld_r3_tp_adr_i
+ strb r3, [r1, 0xF]
+ ldrb r3, [r1]
+ movs r2, 0xC
+ orrs r3, r2
+ strb r3, [r1]
+ bx r12
+ thumb_func_end ply_bendr
+
+ thumb_func_start ply_lfodl
+ply_lfodl: @ 82DF9C0
+ mov r12, lr
+ bl ld_r3_tp_adr_i
+ strb r3, [r1, 0x1B]
+ bx r12
+ thumb_func_end ply_lfodl
+
+ thumb_func_start ply_modt
+ply_modt: @ 82DF9CC
+ mov r12, lr
+ bl ld_r3_tp_adr_i
+ ldrb r0, [r1, 0x18]
+ cmp r0, r3
+ beq _082DF9E2
+ strb r3, [r1, 0x18]
+ ldrb r3, [r1]
+ movs r2, 0xF
+ orrs r3, r2
+ strb r3, [r1]
+_082DF9E2:
+ bx r12
+ thumb_func_end ply_modt
+
+ thumb_func_start ply_tune
+ply_tune: @ 82DF9E4
+ mov r12, lr
+ bl ld_r3_tp_adr_i
+ subs r3, 0x40
+ strb r3, [r1, 0xC]
+ ldrb r3, [r1]
+ movs r2, 0xC
+ orrs r3, r2
+ strb r3, [r1]
+ bx r12
+ thumb_func_end ply_tune
+
+ thumb_func_start ply_port
+ply_port: @ 82DF9F8
+ mov r12, lr
+ ldr r2, [r1, 0x40]
+ ldrb r3, [r2]
+ adds r2, 0x1
+ ldr r0, _082DFA0C
+ adds r0, r3
+ bl _082DF882
+ strb r3, [r0]
+ bx r12
+ .align 2, 0
+_082DFA0C: .4byte 0x04000060
+ thumb_func_end ply_port
+
+ thumb_func_start SoundVSync_rev01
+SoundVSync_rev01: @ 82DFA10
+ ldr r0, _082DFCBC
+ ldr r0, [r0]
+ ldr r2, _082DFCC0
+ ldr r3, [r0]
+ subs r3, r2
+ cmp r3, 0x1
+ bhi _082DFA50
+ ldrb r1, [r0, 0x4]
+ subs r1, 0x1
+ strb r1, [r0, 0x4]
+ bgt _082DFA50
+ ldrb r1, [r0, 0xB]
+ strb r1, [r0, 0x4]
+ ldr r2, _082DFA54
+ ldr r1, [r2, 0x8]
+ lsls r1, 7
+ bcc _082DFA36
+ ldr r1, _082DFA58
+ str r1, [r2, 0x8]
+_082DFA36:
+ ldr r1, [r2, 0x14]
+ lsls r1, 7
+ bcc _082DFA40
+ ldr r1, _082DFA58
+ str r1, [r2, 0x14]
+_082DFA40:
+ movs r1, 0x4
+ lsls r1, 8
+ strh r1, [r2, 0xA]
+ strh r1, [r2, 0x16]
+ movs r1, 0xB6
+ lsls r1, 8
+ strh r1, [r2, 0xA]
+ strh r1, [r2, 0x16]
+_082DFA50:
+ bx lr
+ .align 2, 0
+_082DFA54: .4byte 0x040000bc
+_082DFA58: .4byte 0x84400004
+ thumb_func_end SoundVSync_rev01
+
+ thumb_func_start MPlayMain_rev01
+MPlayMain_rev01: @ 82DFA5C
+ ldr r2, _082DFCC0
+ ldr r3, [r0, 0x34]
+ cmp r2, r3
+ beq _082DFA66
+ bx lr
+_082DFA66:
+ adds r3, 0x1
+ str r3, [r0, 0x34]
+ push {r0,lr}
+ ldr r3, [r0, 0x38]
+ cmp r3, 0
+ beq _082DFA78
+ ldr r0, [r0, 0x3C]
+ bl _082DFCB4
+_082DFA78:
+ pop {r0}
+ push {r4-r7}
+ mov r4, r8
+ mov r5, r9
+ mov r6, r10
+ mov r7, r11
+ push {r4-r7}
+ adds r7, r0, 0
+ ldr r0, [r7, 0x4]
+ cmp r0, 0
+ bge _082DFA90
+ b _082DFCA4
+_082DFA90:
+ ldr r0, _082DFCBC
+ ldr r0, [r0]
+ mov r8, r0
+ adds r0, r7, 0
+ bl FadeOutBody_rev01
+ ldr r0, [r7, 0x4]
+ cmp r0, 0
+ bge _082DFAA4
+ b _082DFCA4
+_082DFAA4:
+ ldrh r0, [r7, 0x22]
+ ldrh r1, [r7, 0x20]
+ adds r0, r1
+ b _082DFBF4
+_082DFAAC:
+ ldrb r6, [r7, 0x8]
+ ldr r5, [r7, 0x2C]
+ movs r3, 0x1
+ movs r4, 0
+_082DFAB4:
+ ldrb r0, [r5]
+ movs r1, 0x80
+ tst r1, r0
+ bne _082DFABE
+ b _082DFBD0
+_082DFABE:
+ mov r10, r3
+ orrs r4, r3
+ mov r11, r4
+ ldr r4, [r5, 0x20]
+ cmp r4, 0
+ beq _082DFAF2
+_082DFACA:
+ ldrb r1, [r4]
+ movs r0, 0xC7
+ tst r0, r1
+ beq _082DFAE6
+ ldrb r0, [r4, 0x10]
+ cmp r0, 0
+ beq _082DFAEC
+ subs r0, 0x1
+ strb r0, [r4, 0x10]
+ bne _082DFAEC
+ movs r0, 0x40
+ orrs r1, r0
+ strb r1, [r4]
+ b _082DFAEC
+_082DFAE6:
+ adds r0, r4, 0
+ bl ClearChain_rev
+_082DFAEC:
+ ldr r4, [r4, 0x34]
+ cmp r4, 0
+ bne _082DFACA
+_082DFAF2:
+ ldrb r3, [r5]
+ movs r0, 0x40
+ tst r0, r3
+ beq _082DFB70
+ adds r0, r5, 0
+ bl Clear64byte_rev
+ movs r0, 0x80
+ strb r0, [r5]
+ movs r0, 0x2
+ strb r0, [r5, 0xF]
+ movs r0, 0x40
+ strb r0, [r5, 0x13]
+ movs r0, 0x16
+ strb r0, [r5, 0x19]
+ movs r0, 0x1
+ adds r1, r5, 0x6
+ strb r0, [r1, 0x1E]
+ b _082DFB70
+_082DFB18:
+ ldr r2, [r5, 0x40]
+ ldrb r1, [r2]
+ cmp r1, 0x80
+ bcs _082DFB24
+ ldrb r1, [r5, 0x7]
+ b _082DFB2E
+_082DFB24:
+ adds r2, 0x1
+ str r2, [r5, 0x40]
+ cmp r1, 0xBD
+ bcc _082DFB2E
+ strb r1, [r5, 0x7]
+_082DFB2E:
+ cmp r1, 0xCF
+ bcc _082DFB44
+ mov r0, r8
+ ldr r3, [r0, 0x38]
+ adds r0, r1, 0
+ subs r0, 0xCF
+ adds r1, r7, 0
+ adds r2, r5, 0
+ bl _082DFCB4
+ b _082DFB70
+_082DFB44:
+ cmp r1, 0xB0
+ bls _082DFB66
+ adds r0, r1, 0
+ subs r0, 0xB1
+ strb r0, [r7, 0xA]
+ mov r3, r8
+ ldr r3, [r3, 0x34]
+ lsls r0, 2
+ ldr r3, [r3, r0]
+ adds r0, r7, 0
+ adds r1, r5, 0
+ bl _082DFCB4
+ ldrb r0, [r5]
+ cmp r0, 0
+ beq _082DFBCC
+ b _082DFB70
+_082DFB66:
+ ldr r0, _082DFCB8
+ subs r1, 0x80
+ adds r1, r0
+ ldrb r0, [r1]
+ strb r0, [r5, 0x1]
+_082DFB70:
+ ldrb r0, [r5, 0x1]
+ cmp r0, 0
+ beq _082DFB18
+ subs r0, 0x1
+ strb r0, [r5, 0x1]
+ ldrb r1, [r5, 0x19]
+ cmp r1, 0
+ beq _082DFBCC
+ ldrb r0, [r5, 0x17]
+ cmp r0, 0
+ beq _082DFBCC
+ ldrb r0, [r5, 0x1C]
+ cmp r0, 0
+ beq _082DFB92
+ subs r0, 0x1
+ strb r0, [r5, 0x1C]
+ b _082DFBCC
+_082DFB92:
+ ldrb r0, [r5, 0x1A]
+ adds r0, r1
+ strb r0, [r5, 0x1A]
+ adds r1, r0, 0
+ subs r0, 0x40
+ lsls r0, 24
+ bpl _082DFBA6
+ lsls r2, r1, 24
+ asrs r2, 24
+ b _082DFBAA
+_082DFBA6:
+ movs r0, 0x80
+ subs r2, r0, r1
+_082DFBAA:
+ ldrb r0, [r5, 0x17]
+ muls r0, r2
+ asrs r2, r0, 6
+ ldrb r0, [r5, 0x16]
+ eors r0, r2
+ lsls r0, 24
+ beq _082DFBCC
+ strb r2, [r5, 0x16]
+ ldrb r0, [r5]
+ ldrb r1, [r5, 0x18]
+ cmp r1, 0
+ bne _082DFBC6
+ movs r1, 0xC
+ b _082DFBC8
+_082DFBC6:
+ movs r1, 0x3
+_082DFBC8:
+ orrs r0, r1
+ strb r0, [r5]
+_082DFBCC:
+ mov r3, r10
+ mov r4, r11
+_082DFBD0:
+ subs r6, 0x1
+ ble _082DFBDC
+ movs r0, 0x50
+ adds r5, r0
+ lsls r3, 1
+ b _082DFAB4
+_082DFBDC:
+ ldr r0, [r7, 0xC]
+ adds r0, 0x1
+ str r0, [r7, 0xC]
+ cmp r4, 0
+ bne _082DFBEE
+ movs r0, 0x80
+ lsls r0, 24
+ str r0, [r7, 0x4]
+ b _082DFCA4
+_082DFBEE:
+ str r4, [r7, 0x4]
+ ldrh r0, [r7, 0x22]
+ subs r0, 0x96
+_082DFBF4:
+ strh r0, [r7, 0x22]
+ cmp r0, 0x96
+ bcc _082DFBFC
+ b _082DFAAC
+_082DFBFC:
+ ldrb r2, [r7, 0x8]
+ ldr r5, [r7, 0x2C]
+_082DFC00:
+ ldrb r0, [r5]
+ movs r1, 0x80
+ tst r1, r0
+ beq _082DFC9A
+ movs r1, 0xF
+ tst r1, r0
+ beq _082DFC9A
+ mov r9, r2
+ adds r0, r7, 0
+ adds r1, r5, 0
+ bl TrkVolPitSet_rev01
+ ldr r4, [r5, 0x20]
+ cmp r4, 0
+ beq _082DFC90
+_082DFC1E:
+ ldrb r1, [r4]
+ movs r0, 0xC7
+ tst r0, r1
+ bne _082DFC2E
+ adds r0, r4, 0
+ bl ClearChain_rev
+ b _082DFC8A
+_082DFC2E:
+ ldrb r0, [r4, 0x1]
+ movs r6, 0x7
+ ands r6, r0
+ ldrb r3, [r5]
+ movs r0, 0x3
+ tst r0, r3
+ beq _082DFC4C
+ bl ChnVolSetAsm
+ cmp r6, 0
+ beq _082DFC4C
+ ldrb r0, [r4, 0x1D]
+ movs r1, 0x1
+ orrs r0, r1
+ strb r0, [r4, 0x1D]
+_082DFC4C:
+ ldrb r3, [r5]
+ movs r0, 0xC
+ tst r0, r3
+ beq _082DFC8A
+ ldrb r1, [r4, 0x8]
+ movs r0, 0x8
+ ldrsb r0, [r5, r0]
+ adds r2, r1, r0
+ bpl _082DFC60
+ movs r2, 0
+_082DFC60:
+ cmp r6, 0
+ beq _082DFC7E
+ mov r0, r8
+ ldr r3, [r0, 0x30]
+ adds r1, r2, 0
+ ldrb r2, [r5, 0x9]
+ adds r0, r6, 0
+ bl _082DFCB4
+ str r0, [r4, 0x20]
+ ldrb r0, [r4, 0x1D]
+ movs r1, 0x2
+ orrs r0, r1
+ strb r0, [r4, 0x1D]
+ b _082DFC8A
+_082DFC7E:
+ adds r1, r2, 0
+ ldrb r2, [r5, 0x9]
+ ldr r0, [r4, 0x24]
+ bl MidiKey2fr
+ str r0, [r4, 0x20]
+_082DFC8A:
+ ldr r4, [r4, 0x34]
+ cmp r4, 0
+ bne _082DFC1E
+_082DFC90:
+ ldrb r0, [r5]
+ movs r1, 0xF0
+ ands r0, r1
+ strb r0, [r5]
+ mov r2, r9
+_082DFC9A:
+ subs r2, 0x1
+ ble _082DFCA4
+ movs r0, 0x50
+ adds r5, r0
+ bgt _082DFC00
+_082DFCA4:
+ ldr r0, _082DFCC0
+ str r0, [r7, 0x34]
+ pop {r0-r7}
+ mov r8, r0
+ mov r9, r1
+ mov r10, r2
+ mov r11, r3
+ pop {r3}
+_082DFCB4:
+ bx r3
+ .align 2, 0
+_082DFCB8: .4byte 0x08675c64
+_082DFCBC: .4byte 0x03007ff0
+_082DFCC0: .4byte 0x68736d53
+ thumb_func_end MPlayMain_rev01
+
+ thumb_func_start TrackStop_rev01
+TrackStop_rev01: @ 82DFCC4
+ push {r4-r6,lr}
+ adds r5, r1, 0
+ ldrb r1, [r5]
+ movs r0, 0x80
+ tst r0, r1
+ beq _082DFCFC
+ ldr r4, [r5, 0x20]
+ cmp r4, 0
+ beq _082DFCFA
+ movs r6, 0
+_082DFCD8:
+ ldrb r0, [r4]
+ cmp r0, 0
+ beq _082DFCF2
+ ldrb r0, [r4, 0x1]
+ movs r3, 0x7
+ ands r0, r3
+ beq _082DFCF0
+ ldr r3, _082DFD04
+ ldr r3, [r3]
+ ldr r3, [r3, 0x2C]
+ bl _082DFCB4
+_082DFCF0:
+ strb r6, [r4]
+_082DFCF2:
+ str r6, [r4, 0x2C]
+ ldr r4, [r4, 0x34]
+ cmp r4, 0
+ bne _082DFCD8
+_082DFCFA:
+ str r4, [r5, 0x20]
+_082DFCFC:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_082DFD04: .4byte 0x03007ff0
+ thumb_func_end TrackStop_rev01
+
+ thumb_func_start ChnVolSetAsm
+ChnVolSetAsm: @ 82DFD08
+ ldrb r1, [r4, 0x12]
+ movs r0, 0x14
+ ldrsb r2, [r4, r0]
+ movs r3, 0x80
+ adds r3, r2
+ muls r3, r1
+ ldrb r0, [r5, 0x10]
+ muls r0, r3
+ asrs r0, 14
+ cmp r0, 0xFF
+ bls _082DFD20
+ movs r0, 0xFF
+_082DFD20:
+ strb r0, [r4, 0x2]
+ movs r3, 0x7F
+ subs r3, r2
+ muls r3, r1
+ ldrb r0, [r5, 0x11]
+ muls r0, r3
+ asrs r0, 14
+ cmp r0, 0xFF
+ bls _082DFD34
+ movs r0, 0xFF
+_082DFD34:
+ strb r0, [r4, 0x3]
+ bx lr
+ thumb_func_end ChnVolSetAsm
+
+ thumb_func_start ply_note_rev01
+ply_note_rev01: @ 82DFD38
+ push {r4-r7,lr}
+ mov r4, r8
+ mov r5, r9
+ mov r6, r10
+ mov r7, r11
+ push {r4-r7}
+ sub sp, 0x18
+ str r1, [sp]
+ adds r5, r2, 0
+ ldr r1, _082DFF34
+ ldr r1, [r1]
+ str r1, [sp, 0x4]
+ ldr r1, _082DFF38
+ adds r0, r1
+ ldrb r0, [r0]
+ strb r0, [r5, 0x4]
+ ldr r3, [r5, 0x40]
+ ldrb r0, [r3]
+ cmp r0, 0x80
+ bcs _082DFD7E
+ strb r0, [r5, 0x5]
+ adds r3, 0x1
+ ldrb r0, [r3]
+ cmp r0, 0x80
+ bcs _082DFD7C
+ strb r0, [r5, 0x6]
+ adds r3, 0x1
+ ldrb r0, [r3]
+ cmp r0, 0x80
+ bcs _082DFD7C
+ ldrb r1, [r5, 0x4]
+ adds r1, r0
+ strb r1, [r5, 0x4]
+ adds r3, 0x1
+_082DFD7C:
+ str r3, [r5, 0x40]
+_082DFD7E:
+ movs r0, 0
+ str r0, [sp, 0x14]
+ adds r4, r5, 0
+ adds r4, 0x24
+ ldrb r2, [r4]
+ movs r0, 0xC0
+ tst r0, r2
+ beq _082DFDD0
+ ldrb r3, [r5, 0x5]
+ movs r0, 0x40
+ tst r0, r2
+ beq _082DFD9E
+ ldr r1, [r5, 0x2C]
+ adds r1, r3
+ ldrb r0, [r1]
+ b _082DFDA0
+_082DFD9E:
+ adds r0, r3, 0
+_082DFDA0:
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 2
+ ldr r0, [r5, 0x28]
+ adds r1, r0
+ mov r9, r1
+ mov r6, r9
+ ldrb r1, [r6]
+ movs r0, 0xC0
+ tst r0, r1
+ beq _082DFDB8
+ b _082DFF22
+_082DFDB8:
+ movs r0, 0x80
+ tst r0, r2
+ beq _082DFDD4
+ ldrb r1, [r6, 0x3]
+ movs r0, 0x80
+ tst r0, r1
+ beq _082DFDCC
+ subs r1, 0xC0
+ lsls r1, 1
+ str r1, [sp, 0x14]
+_082DFDCC:
+ ldrb r3, [r6, 0x1]
+ b _082DFDD4
+_082DFDD0:
+ mov r9, r4
+ ldrb r3, [r5, 0x5]
+_082DFDD4:
+ str r3, [sp, 0x8]
+ ldr r6, [sp]
+ ldrb r1, [r6, 0x9]
+ ldrb r0, [r5, 0x1D]
+ adds r0, r1
+ cmp r0, 0xFF
+ bls _082DFDE4
+ movs r0, 0xFF
+_082DFDE4:
+ str r0, [sp, 0x10]
+ mov r6, r9
+ ldrb r0, [r6]
+ movs r6, 0x7
+ ands r6, r0
+ str r6, [sp, 0xC]
+ beq _082DFE24
+ ldr r0, [sp, 0x4]
+ ldr r4, [r0, 0x1C]
+ cmp r4, 0
+ bne _082DFDFC
+ b _082DFF22
+_082DFDFC:
+ subs r6, 0x1
+ lsls r0, r6, 6
+ adds r4, r0
+ ldrb r1, [r4]
+ movs r0, 0xC7
+ tst r0, r1
+ beq _082DFE78
+ movs r0, 0x40
+ tst r0, r1
+ bne _082DFE78
+ ldrb r1, [r4, 0x13]
+ ldr r0, [sp, 0x10]
+ cmp r1, r0
+ bcc _082DFE78
+ beq _082DFE1C
+ b _082DFF22
+_082DFE1C:
+ ldr r0, [r4, 0x2C]
+ cmp r0, r5
+ bcs _082DFE78
+ b _082DFF22
+_082DFE24:
+ ldr r6, [sp, 0x10]
+ adds r7, r5, 0
+ movs r2, 0
+ mov r8, r2
+ ldr r4, [sp, 0x4]
+ ldrb r3, [r4, 0x6]
+ adds r4, 0x50
+_082DFE32:
+ ldrb r1, [r4]
+ movs r0, 0xC7
+ tst r0, r1
+ beq _082DFE78
+ movs r0, 0x40
+ tst r0, r1
+ beq _082DFE4C
+ cmp r2, 0
+ bne _082DFE50
+ adds r2, 0x1
+ ldrb r6, [r4, 0x13]
+ ldr r7, [r4, 0x2C]
+ b _082DFE6A
+_082DFE4C:
+ cmp r2, 0
+ bne _082DFE6C
+_082DFE50:
+ ldrb r0, [r4, 0x13]
+ cmp r0, r6
+ bcs _082DFE5C
+ adds r6, r0, 0
+ ldr r7, [r4, 0x2C]
+ b _082DFE6A
+_082DFE5C:
+ bhi _082DFE6C
+ ldr r0, [r4, 0x2C]
+ cmp r0, r7
+ bls _082DFE68
+ adds r7, r0, 0
+ b _082DFE6A
+_082DFE68:
+ bcc _082DFE6C
+_082DFE6A:
+ mov r8, r4
+_082DFE6C:
+ adds r4, 0x40
+ subs r3, 0x1
+ bgt _082DFE32
+ mov r4, r8
+ cmp r4, 0
+ beq _082DFF22
+_082DFE78:
+ adds r0, r4, 0
+ bl ClearChain_rev
+ movs r1, 0
+ str r1, [r4, 0x30]
+ ldr r3, [r5, 0x20]
+ str r3, [r4, 0x34]
+ cmp r3, 0
+ beq _082DFE8C
+ str r4, [r3, 0x30]
+_082DFE8C:
+ str r4, [r5, 0x20]
+ str r5, [r4, 0x2C]
+ ldrb r0, [r5, 0x1B]
+ strb r0, [r5, 0x1C]
+ cmp r0, r1
+ beq _082DFE9E
+ adds r1, r5, 0
+ bl clear_modM
+_082DFE9E:
+ ldr r0, [sp]
+ adds r1, r5, 0
+ bl TrkVolPitSet_rev01
+ ldr r0, [r5, 0x4]
+ str r0, [r4, 0x10]
+ ldr r0, [sp, 0x10]
+ strb r0, [r4, 0x13]
+ ldr r0, [sp, 0x8]
+ strb r0, [r4, 0x8]
+ ldr r0, [sp, 0x14]
+ strb r0, [r4, 0x14]
+ mov r6, r9
+ ldrb r0, [r6]
+ strb r0, [r4, 0x1]
+ ldr r7, [r6, 0x4]
+ str r7, [r4, 0x24]
+ ldr r0, [r6, 0x8]
+ str r0, [r4, 0x4]
+ ldrh r0, [r5, 0x1E]
+ strh r0, [r4, 0xC]
+ bl ChnVolSetAsm
+ ldrb r1, [r4, 0x8]
+ movs r0, 0x8
+ ldrsb r0, [r5, r0]
+ adds r3, r1, r0
+ bpl _082DFED8
+ movs r3, 0
+_082DFED8:
+ ldr r6, [sp, 0xC]
+ cmp r6, 0
+ beq _082DFF06
+ mov r6, r9
+ ldrb r0, [r6, 0x2]
+ strb r0, [r4, 0x1E]
+ ldrb r1, [r6, 0x3]
+ movs r0, 0x80
+ tst r0, r1
+ bne _082DFEF2
+ movs r0, 0x70
+ tst r0, r1
+ bne _082DFEF4
+_082DFEF2:
+ movs r1, 0x8
+_082DFEF4:
+ strb r1, [r4, 0x1F]
+ ldrb r2, [r5, 0x9]
+ adds r1, r3, 0
+ ldr r0, [sp, 0xC]
+ ldr r3, [sp, 0x4]
+ ldr r3, [r3, 0x30]
+ bl _082DFCB4
+ b _082DFF14
+_082DFF06:
+ ldr r0, [r5, 0x3C]
+ str r0, [r4, 0x18]
+ ldrb r2, [r5, 0x9]
+ adds r1, r3, 0
+ adds r0, r7, 0
+ bl MidiKey2fr
+_082DFF14:
+ str r0, [r4, 0x20]
+ movs r0, 0x80
+ strb r0, [r4]
+ ldrb r1, [r5]
+ movs r0, 0xF0
+ ands r0, r1
+ strb r0, [r5]
+_082DFF22:
+ add sp, 0x18
+ pop {r0-r7}
+ mov r8, r0
+ mov r9, r1
+ mov r10, r2
+ mov r11, r3
+ pop {r0}
+ bx r0
+ .align 2, 0
+_082DFF34: .4byte 0x03007ff0
+_082DFF38: .4byte 0x08675c64
+ thumb_func_end ply_note_rev01
+
+ thumb_func_start ply_endtie_rev01
+ply_endtie_rev01: @ 82DFF3C
+ push {r4,r5}
+ ldr r2, [r1, 0x40]
+ ldrb r3, [r2]
+ cmp r3, 0x80
+ bcs _082DFF4E
+ strb r3, [r1, 0x5]
+ adds r2, 0x1
+ str r2, [r1, 0x40]
+ b _082DFF50
+_082DFF4E:
+ ldrb r3, [r1, 0x5]
+_082DFF50:
+ ldr r1, [r1, 0x20]
+ cmp r1, 0
+ beq _082DFF78
+ movs r4, 0x83
+ movs r5, 0x40
+_082DFF5A:
+ ldrb r2, [r1]
+ tst r2, r4
+ beq _082DFF72
+ tst r2, r5
+ bne _082DFF72
+ ldrb r0, [r1, 0x11]
+ cmp r0, r3
+ bne _082DFF72
+ movs r0, 0x40
+ orrs r2, r0
+ strb r2, [r1]
+ b _082DFF78
+_082DFF72:
+ ldr r1, [r1, 0x34]
+ cmp r1, 0
+ bne _082DFF5A
+_082DFF78:
+ pop {r4,r5}
+ bx lr
+ thumb_func_end ply_endtie_rev01
+
+ thumb_func_start clear_modM
+clear_modM: @ 82DFF7C
+ movs r2, 0
+ strb r2, [r1, 0x16]
+ strb r2, [r1, 0x1A]
+ ldrb r2, [r1, 0x18]
+ cmp r2, 0
+ bne _082DFF8C
+ movs r2, 0xC
+ b _082DFF8E
+_082DFF8C:
+ movs r2, 0x3
+_082DFF8E:
+ ldrb r3, [r1]
+ orrs r3, r2
+ strb r3, [r1]
+ bx lr
+ thumb_func_end clear_modM
+
+ thumb_func_start ld_r3_tp_adr_i_rev
+ld_r3_tp_adr_i_rev: @ 82DFF98
+ ldr r2, [r1, 0x40]
+ adds r3, r2, 0x1
+ str r3, [r1, 0x40]
+ ldrb r3, [r2]
+ bx lr
+ thumb_func_end ld_r3_tp_adr_i_rev
+
+ thumb_func_start ply_lfos_rev01
+ply_lfos_rev01: @ 82DFFA4
+ mov r12, lr
+ bl ld_r3_tp_adr_i_rev
+ strb r3, [r1, 0x19]
+ cmp r3, 0
+ bne _082DFFB4
+ bl clear_modM
+_082DFFB4:
+ bx r12
+ thumb_func_end ply_lfos_rev01
+
+ thumb_func_start ply_mod_rev01
+ply_mod_rev01: @ 82DFFB8
+ mov r12, lr
+ bl ld_r3_tp_adr_i_rev
+ strb r3, [r1, 0x17]
+ cmp r3, 0
+ bne _082DFFC8
+ bl clear_modM
+_082DFFC8:
+ bx r12
+ thumb_func_end ply_mod_rev01
+
+ thumb_func_start MidiKey2fr
+MidiKey2fr: @ 82DFFCC
+ push {r4-r7,lr}
+ mov r12, r0
+ lsls r1, 24
+ lsrs r6, r1, 24
+ lsls r7, r2, 24
+ cmp r6, 0xB2
+ bls _082DFFE0
+ movs r6, 0xB2
+ movs r7, 0xFF
+ lsls r7, 24
+_082DFFE0:
+ ldr r3, _082E0028
+ adds r0, r6, r3
+ ldrb r5, [r0]
+ ldr r4, _082E002C
+ movs r2, 0xF
+ adds r0, r5, 0
+ ands r0, r2
+ lsls r0, 2
+ adds r0, r4
+ lsrs r1, r5, 4
+ ldr r5, [r0]
+ lsrs r5, r1
+ adds r0, r6, 0x1
+ adds r0, r3
+ ldrb r1, [r0]
+ adds r0, r1, 0
+ ands r0, r2
+ lsls r0, 2
+ adds r0, r4
+ lsrs r1, 4
+ ldr r0, [r0]
+ lsrs r0, r1
+ mov r1, r12
+ ldr r4, [r1, 0x4]
+ subs r0, r5
+ adds r1, r7, 0
+ bl umul3232H32
+ adds r1, r0, 0
+ adds r1, r5, r1
+ adds r0, r4, 0
+ bl umul3232H32
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_082E0028: .4byte 0x08675a80
+_082E002C: .4byte 0x08675b34
+ thumb_func_end MidiKey2fr
+
+ thumb_func_start DummyFunc
+DummyFunc: @ 82E0030
+ bx lr
+ thumb_func_end DummyFunc
+
+ thumb_func_start MPlayContinue
+MPlayContinue: @ 82E0034
+ adds r2, r0, 0
+ ldr r3, [r2, 0x34]
+ ldr r0, _082E0048
+ cmp r3, r0
+ bne _082E0046
+ ldr r0, [r2, 0x4]
+ ldr r1, _082E004C
+ ands r0, r1
+ str r0, [r2, 0x4]
+_082E0046:
+ bx lr
+ .align 2, 0
+_082E0048: .4byte 0x68736d53
+_082E004C: .4byte 0x7fffffff
+ thumb_func_end MPlayContinue
+
+ thumb_func_start MPlayFadeOut
+MPlayFadeOut: @ 82E0050
+ adds r2, r0, 0
+ lsls r1, 16
+ lsrs r1, 16
+ ldr r3, [r2, 0x34]
+ ldr r0, _082E006C
+ cmp r3, r0
+ bne _082E0068
+ strh r1, [r2, 0x26]
+ strh r1, [r2, 0x24]
+ movs r0, 0x80
+ lsls r0, 1
+ strh r0, [r2, 0x28]
+_082E0068:
+ bx lr
+ .align 2, 0
+_082E006C: .4byte 0x68736d53
+ thumb_func_end MPlayFadeOut
+
+ thumb_func_start m4aSoundInit
+m4aSoundInit: @ 82E0070
+ push {r4-r6,lr}
+ ldr r0, _082E00F0
+ movs r1, 0x2
+ negs r1, r1
+ ands r0, r1
+ ldr r1, _082E00F4
+ ldr r2, _082E00F8
+ bl CpuSet
+ ldr r0, _082E00FC
+ bl SoundInit_rev01
+ ldr r0, _082E0100
+ bl MPlayExtender
+ ldr r0, _082E0104
+ bl SoundMode_rev01
+ ldr r0, _082E0108
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0
+ beq _082E00BE
+ ldr r6, _082E010C
+ adds r5, r0, 0
+_082E00A2:
+ ldr r4, [r6]
+ ldr r1, [r6, 0x4]
+ ldrb r2, [r6, 0x8]
+ adds r0, r4, 0
+ bl MPlayOpen_rev01
+ ldrh r0, [r6, 0xA]
+ strb r0, [r4, 0xB]
+ ldr r0, _082E0110
+ str r0, [r4, 0x18]
+ adds r6, 0xC
+ subs r5, 0x1
+ cmp r5, 0
+ bne _082E00A2
+_082E00BE:
+ ldr r0, _082E0114
+ ldr r1, _082E0118
+ movs r2, 0x34
+ bl memcpy
+ movs r5, 0
+ movs r6, 0
+_082E00CC:
+ lsls r0, r5, 6
+ ldr r1, _082E011C
+ adds r0, r1
+ ldr r4, _082E0120
+ adds r4, r6, r4
+ adds r1, r4, 0
+ movs r2, 0x2
+ bl MPlayOpen_rev01
+ movs r0, 0
+ str r0, [r4, 0x20]
+ adds r6, 0xA0
+ adds r5, 0x1
+ cmp r5, 0x1
+ ble _082E00CC
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_082E00F0: .4byte SoundMainRAM + 1
+_082E00F4: .4byte 0x03001aa8
+_082E00F8: .4byte 0x04000200
+_082E00FC: .4byte 0x03006380
+_082E0100: .4byte 0x030074f0
+_082E0104: .4byte 0x0094c500
+_082E0108: .4byte 0x00000004
+_082E010C: .4byte 0x086b49c0
+_082E0110: .4byte 0x030077f0
+_082E0114: .4byte 0x030077b0
+_082E0118: .4byte 0x08675c98
+_082E011C: .4byte 0x030073a0
+_082E0120: .4byte 0x03007670
+ thumb_func_end m4aSoundInit
+
+ thumb_func_start m4aSoundMain
+m4aSoundMain: @ 82E0124
+ push {lr}
+ bl SoundMain
+ pop {r0}
+ bx r0
+ thumb_func_end m4aSoundMain
+
+ thumb_func_start m4aSongNumStart
+m4aSongNumStart: @ 82E0130
+ push {lr}
+ lsls r0, 16
+ ldr r2, _082E0154
+ ldr r1, _082E0158
+ lsrs r0, 13
+ adds r0, r1
+ ldrh r3, [r0, 0x4]
+ lsls r1, r3, 1
+ adds r1, r3
+ lsls r1, 2
+ adds r1, r2
+ ldr r2, [r1]
+ ldr r1, [r0]
+ adds r0, r2, 0
+ bl MPlayStart_rev01
+ pop {r0}
+ bx r0
+ .align 2, 0
+_082E0154: .4byte 0x086b49c0
+_082E0158: .4byte 0x086b49f0
+ thumb_func_end m4aSongNumStart
+
+ thumb_func_start m4aSongNumStartOrChange
+m4aSongNumStartOrChange: @ 82E015C
+ push {lr}
+ lsls r0, 16
+ ldr r2, _082E0188
+ ldr r1, _082E018C
+ lsrs r0, 13
+ adds r0, r1
+ ldrh r3, [r0, 0x4]
+ lsls r1, r3, 1
+ adds r1, r3
+ lsls r1, 2
+ adds r1, r2
+ ldr r1, [r1]
+ ldr r3, [r1]
+ ldr r2, [r0]
+ cmp r3, r2
+ beq _082E0190
+ adds r0, r1, 0
+ adds r1, r2, 0
+ bl MPlayStart_rev01
+ b _082E01A4
+ .align 2, 0
+_082E0188: .4byte 0x086b49c0
+_082E018C: .4byte 0x086b49f0
+_082E0190:
+ ldr r2, [r1, 0x4]
+ ldrh r0, [r1, 0x4]
+ cmp r0, 0
+ beq _082E019C
+ cmp r2, 0
+ bge _082E01A4
+_082E019C:
+ adds r0, r1, 0
+ adds r1, r3, 0
+ bl MPlayStart_rev01
+_082E01A4:
+ pop {r0}
+ bx r0
+ thumb_func_end m4aSongNumStartOrChange
+
+ thumb_func_start m4aSongNumStartOrContinue
+m4aSongNumStartOrContinue: @ 82E01A8
+ push {lr}
+ lsls r0, 16
+ ldr r2, _082E01D4
+ ldr r1, _082E01D8
+ lsrs r0, 13
+ adds r0, r1
+ ldrh r3, [r0, 0x4]
+ lsls r1, r3, 1
+ adds r1, r3
+ lsls r1, 2
+ adds r1, r2
+ ldr r1, [r1]
+ ldr r3, [r1]
+ ldr r2, [r0]
+ cmp r3, r2
+ beq _082E01DC
+ adds r0, r1, 0
+ adds r1, r2, 0
+ bl MPlayStart_rev01
+ b _082E01F8
+ .align 2, 0
+_082E01D4: .4byte 0x086b49c0
+_082E01D8: .4byte 0x086b49f0
+_082E01DC:
+ ldr r2, [r1, 0x4]
+ ldrh r0, [r1, 0x4]
+ cmp r0, 0
+ bne _082E01EE
+ adds r0, r1, 0
+ adds r1, r3, 0
+ bl MPlayStart_rev01
+ b _082E01F8
+_082E01EE:
+ cmp r2, 0
+ bge _082E01F8
+ adds r0, r1, 0
+ bl MPlayContinue
+_082E01F8:
+ pop {r0}
+ bx r0
+ thumb_func_end m4aSongNumStartOrContinue
+
+ thumb_func_start m4aSongNumStop
+m4aSongNumStop: @ 82E01FC
+ push {lr}
+ lsls r0, 16
+ ldr r2, _082E0228
+ ldr r1, _082E022C
+ lsrs r0, 13
+ adds r0, r1
+ ldrh r3, [r0, 0x4]
+ lsls r1, r3, 1
+ adds r1, r3
+ lsls r1, 2
+ adds r1, r2
+ ldr r2, [r1]
+ ldr r1, [r2]
+ ldr r0, [r0]
+ cmp r1, r0
+ bne _082E0222
+ adds r0, r2, 0
+ bl MPlayStop_rev01
+_082E0222:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_082E0228: .4byte 0x086b49c0
+_082E022C: .4byte 0x086b49f0
+ thumb_func_end m4aSongNumStop
+
+ thumb_func_start m4aSongNumContinue
+m4aSongNumContinue: @ 82E0230
+ push {lr}
+ lsls r0, 16
+ ldr r2, _082E025C
+ ldr r1, _082E0260
+ lsrs r0, 13
+ adds r0, r1
+ ldrh r3, [r0, 0x4]
+ lsls r1, r3, 1
+ adds r1, r3
+ lsls r1, 2
+ adds r1, r2
+ ldr r2, [r1]
+ ldr r1, [r2]
+ ldr r0, [r0]
+ cmp r1, r0
+ bne _082E0256
+ adds r0, r2, 0
+ bl MPlayContinue
+_082E0256:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_082E025C: .4byte 0x086b49c0
+_082E0260: .4byte 0x086b49f0
+ thumb_func_end m4aSongNumContinue
+
+ thumb_func_start m4aMPlayAllStop
+m4aMPlayAllStop: @ 82E0264
+ push {r4,r5,lr}
+ ldr r0, _082E029C
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0
+ beq _082E0282
+ ldr r5, _082E02A0
+ adds r4, r0, 0
+_082E0274:
+ ldr r0, [r5]
+ bl MPlayStop_rev01
+ adds r5, 0xC
+ subs r4, 0x1
+ cmp r4, 0
+ bne _082E0274
+_082E0282:
+ ldr r5, _082E02A4
+ movs r4, 0x1
+_082E0286:
+ adds r0, r5, 0
+ bl MPlayStop_rev01
+ adds r5, 0x40
+ subs r4, 0x1
+ cmp r4, 0
+ bge _082E0286
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_082E029C: .4byte 0x00000004
+_082E02A0: .4byte 0x086b49c0
+_082E02A4: .4byte 0x030073a0
+ thumb_func_end m4aMPlayAllStop
+
+ thumb_func_start m4aMPlayContinue
+m4aMPlayContinue: @ 82E02A8
+ push {lr}
+ bl MPlayContinue
+ pop {r0}
+ bx r0
+ thumb_func_end m4aMPlayContinue
+
+ thumb_func_start m4aMPlayAllContinue
+m4aMPlayAllContinue: @ 82E02B2
+ push {r4,r5,lr}
+ ldr r0, _082E02EC
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0
+ beq _082E02D2
+ ldr r5, _082E02F0
+ adds r4, r0, 0
+_082E02C4:
+ ldr r0, [r5]
+ bl MPlayContinue
+ adds r5, 0xC
+ subs r4, 0x1
+ cmp r4, 0
+ bne _082E02C4
+_082E02D2:
+ ldr r5, _082E02F4
+ movs r4, 0x1
+_082E02D6:
+ adds r0, r5, 0
+ bl MPlayContinue
+ adds r5, 0x40
+ subs r4, 0x1
+ cmp r4, 0
+ bge _082E02D6
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_082E02EC: .4byte 0x00000004
+_082E02F0: .4byte 0x086b49c0
+_082E02F4: .4byte 0x030073a0
+ thumb_func_end m4aMPlayAllContinue
+
+ thumb_func_start m4aMPlayFadeOut
+m4aMPlayFadeOut: @ 82E02F8
+ push {lr}
+ lsls r1, 16
+ lsrs r1, 16
+ bl MPlayFadeOut
+ pop {r0}
+ bx r0
+ thumb_func_end m4aMPlayFadeOut
+
+ thumb_func_start sub_82E0308
+sub_82E0308: @ 82E0308
+ adds r2, r0, 0
+ lsls r1, 16
+ lsrs r1, 16
+ ldr r3, [r2, 0x34]
+ ldr r0, _082E0320
+ cmp r3, r0
+ bne _082E031E
+ strh r1, [r2, 0x26]
+ strh r1, [r2, 0x24]
+ ldr r0, _082E0324
+ strh r0, [r2, 0x28]
+_082E031E:
+ bx lr
+ .align 2, 0
+_082E0320: .4byte 0x68736d53
+_082E0324: .4byte 0x00000101
+ thumb_func_end sub_82E0308
+
+ thumb_func_start sub_82E0328
+sub_82E0328: @ 82E0328
+ adds r2, r0, 0
+ lsls r1, 16
+ lsrs r1, 16
+ ldr r3, [r2, 0x34]
+ ldr r0, _082E0348
+ cmp r3, r0
+ bne _082E0346
+ strh r1, [r2, 0x26]
+ strh r1, [r2, 0x24]
+ movs r0, 0x2
+ strh r0, [r2, 0x28]
+ ldr r0, [r2, 0x4]
+ ldr r1, _082E034C
+ ands r0, r1
+ str r0, [r2, 0x4]
+_082E0346:
+ bx lr
+ .align 2, 0
+_082E0348: .4byte 0x68736d53
+_082E034C: .4byte 0x7fffffff
+ thumb_func_end sub_82E0328
+
+ thumb_func_start m4aMPlayImmInit
+m4aMPlayImmInit: @ 82E0350
+ push {r4-r7,lr}
+ ldrb r5, [r0, 0x8]
+ ldr r4, [r0, 0x2C]
+ cmp r5, 0
+ ble _082E0392
+ movs r7, 0x80
+_082E035C:
+ ldrb r1, [r4]
+ adds r0, r7, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _082E038A
+ movs r6, 0x40
+ adds r0, r6, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _082E038A
+ adds r0, r4, 0
+ bl Clear64byte_rev
+ strb r7, [r4]
+ movs r0, 0x2
+ strb r0, [r4, 0xF]
+ strb r6, [r4, 0x13]
+ movs r0, 0x16
+ strb r0, [r4, 0x19]
+ adds r1, r4, 0
+ adds r1, 0x24
+ movs r0, 0x1
+ strb r0, [r1]
+_082E038A:
+ subs r5, 0x1
+ adds r4, 0x50
+ cmp r5, 0
+ bgt _082E035C
+_082E0392:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end m4aMPlayImmInit
+
+ thumb_func_start MPlayExtender
+MPlayExtender: @ 82E0398
+ push {r4-r6,lr}
+ sub sp, 0x4
+ adds r5, r0, 0
+ ldr r1, _082E0460
+ movs r0, 0x8F
+ strh r0, [r1]
+ ldr r3, _082E0464
+ movs r2, 0
+ strh r2, [r3]
+ ldr r0, _082E0468
+ movs r1, 0x8
+ strb r1, [r0]
+ adds r0, 0x6
+ strb r1, [r0]
+ adds r0, 0x10
+ strb r1, [r0]
+ subs r0, 0x14
+ movs r1, 0x80
+ strb r1, [r0]
+ adds r0, 0x8
+ strb r1, [r0]
+ adds r0, 0x10
+ strb r1, [r0]
+ subs r0, 0xD
+ strb r2, [r0]
+ movs r0, 0x77
+ strb r0, [r3]
+ ldr r0, _082E046C
+ ldr r4, [r0]
+ ldr r6, [r4]
+ ldr r0, _082E0470
+ cmp r6, r0
+ bne _082E0458
+ adds r0, r6, 0x1
+ str r0, [r4]
+ ldr r1, _082E0474
+ ldr r0, _082E0478
+ str r0, [r1, 0x20]
+ ldr r0, _082E047C
+ str r0, [r1, 0x44]
+ ldr r0, _082E0480
+ str r0, [r1, 0x4C]
+ ldr r0, _082E0484
+ str r0, [r1, 0x70]
+ ldr r0, _082E0488
+ str r0, [r1, 0x74]
+ ldr r0, _082E048C
+ str r0, [r1, 0x78]
+ ldr r0, _082E0490
+ str r0, [r1, 0x7C]
+ adds r2, r1, 0
+ adds r2, 0x80
+ ldr r0, _082E0494
+ str r0, [r2]
+ adds r1, 0x84
+ ldr r0, _082E0498
+ str r0, [r1]
+ str r5, [r4, 0x1C]
+ ldr r0, _082E049C
+ str r0, [r4, 0x28]
+ ldr r0, _082E04A0
+ str r0, [r4, 0x2C]
+ ldr r0, _082E04A4
+ str r0, [r4, 0x30]
+ ldr r0, _082E04A8
+ movs r1, 0
+ strb r0, [r4, 0xC]
+ str r1, [sp]
+ ldr r2, _082E04AC
+ mov r0, sp
+ adds r1, r5, 0
+ bl CpuSet
+ movs r0, 0x1
+ strb r0, [r5, 0x1]
+ movs r0, 0x11
+ strb r0, [r5, 0x1C]
+ adds r1, r5, 0
+ adds r1, 0x41
+ movs r0, 0x2
+ strb r0, [r1]
+ adds r1, 0x1B
+ movs r0, 0x22
+ strb r0, [r1]
+ adds r1, 0x25
+ movs r0, 0x3
+ strb r0, [r1]
+ adds r1, 0x1B
+ movs r0, 0x44
+ strb r0, [r1]
+ adds r1, 0x24
+ movs r0, 0x4
+ strb r0, [r1, 0x1]
+ movs r0, 0x88
+ strb r0, [r1, 0x1C]
+ str r6, [r4]
+_082E0458:
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_082E0460: .4byte 0x04000084
+_082E0464: .4byte 0x04000080
+_082E0468: .4byte 0x04000063
+_082E046C: .4byte 0x03007ff0
+_082E0470: .4byte 0x68736d53
+_082E0474: .4byte 0x03007460
+_082E0478: .4byte ply_memacc + 1
+_082E047C: .4byte ply_lfos_rev01 + 1
+_082E0480: .4byte ply_mod_rev01 + 1
+_082E0484: .4byte ply_xcmd + 1
+_082E0488: .4byte ply_endtie_rev01 + 1
+_082E048C: .4byte SampFreqSet_rev01 + 1
+_082E0490: .4byte TrackStop_rev01 + 1
+_082E0494: .4byte FadeOutBody_rev01 + 1
+_082E0498: .4byte TrkVolPitSet_rev01 + 1
+_082E049C: .4byte CgbSound + 1
+_082E04A0: .4byte CgbOscOff + 1
+_082E04A4: .4byte MidiKey2CgbFr + 1
+_082E04A8: .4byte 0x00000000
+_082E04AC: .4byte 0x05000040
+ thumb_func_end MPlayExtender
+
+ thumb_func_start MusicPlayerJumpTableCopy
+MusicPlayerJumpTableCopy: @ 82E04B0
+ swi 0x2A
+ bx lr
+ thumb_func_end MusicPlayerJumpTableCopy
+
+ thumb_func_start ClearChain_rev
+ClearChain_rev: @ 82E04B4
+ push {lr}
+ ldr r1, _082E04C4
+ ldr r1, [r1]
+ bl _call_via_r1
+ pop {r0}
+ bx r0
+ .align 2, 0
+_082E04C4: .4byte 0x030074e8
+ thumb_func_end ClearChain_rev
+
+ thumb_func_start Clear64byte_rev
+Clear64byte_rev: @ 82E04C8
+ push {lr}
+ ldr r1, _082E04D8
+ ldr r1, [r1]
+ bl _call_via_r1
+ pop {r0}
+ bx r0
+ .align 2, 0
+_082E04D8: .4byte 0x030074ec
+ thumb_func_end Clear64byte_rev
+
+ thumb_func_start SoundInit_rev01
+SoundInit_rev01: @ 82E04DC
+ push {r4,r5,lr}
+ sub sp, 0x4
+ adds r5, r0, 0
+ movs r3, 0
+ str r3, [r5]
+ ldr r1, _082E0594
+ ldr r0, [r1]
+ movs r2, 0x80
+ lsls r2, 18
+ ands r0, r2
+ cmp r0, 0
+ beq _082E04F8
+ ldr r0, _082E0598
+ str r0, [r1]
+_082E04F8:
+ ldr r1, _082E059C
+ ldr r0, [r1]
+ ands r0, r2
+ cmp r0, 0
+ beq _082E0506
+ ldr r0, _082E0598
+ str r0, [r1]
+_082E0506:
+ ldr r0, _082E05A0
+ movs r2, 0x80
+ lsls r2, 3
+ adds r1, r2, 0
+ strh r1, [r0]
+ adds r0, 0xC
+ strh r1, [r0]
+ ldr r1, _082E05A4
+ movs r0, 0x8F
+ strh r0, [r1]
+ subs r1, 0x2
+ ldr r2, _082E05A8
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r2, _082E05AC
+ ldrb r1, [r2]
+ movs r0, 0x3F
+ ands r0, r1
+ movs r1, 0x40
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r1, _082E05B0
+ movs r2, 0xD4
+ lsls r2, 2
+ adds r0, r5, r2
+ str r0, [r1]
+ adds r1, 0x4
+ ldr r0, _082E05B4
+ str r0, [r1]
+ adds r1, 0x8
+ movs r2, 0x98
+ lsls r2, 4
+ adds r0, r5, r2
+ str r0, [r1]
+ adds r1, 0x4
+ ldr r0, _082E05B8
+ str r0, [r1]
+ ldr r0, _082E05BC
+ str r5, [r0]
+ str r3, [sp]
+ ldr r2, _082E05C0
+ mov r0, sp
+ adds r1, r5, 0
+ bl CpuSet
+ movs r0, 0x8
+ strb r0, [r5, 0x6]
+ movs r0, 0xF
+ strb r0, [r5, 0x7]
+ ldr r0, _082E05C4
+ str r0, [r5, 0x38]
+ ldr r0, _082E05C8
+ str r0, [r5, 0x28]
+ str r0, [r5, 0x2C]
+ str r0, [r5, 0x30]
+ str r0, [r5, 0x3C]
+ ldr r4, _082E05CC
+ adds r0, r4, 0
+ bl MPlyJmpTblCopy
+ str r4, [r5, 0x34]
+ movs r0, 0x80
+ lsls r0, 11
+ bl SampFreqSet_rev01
+ ldr r0, _082E05D0
+ str r0, [r5]
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_082E0594: .4byte 0x040000c4
+_082E0598: .4byte 0x84400004
+_082E059C: .4byte 0x040000d0
+_082E05A0: .4byte 0x040000c6
+_082E05A4: .4byte 0x04000084
+_082E05A8: .4byte 0x0000a90e
+_082E05AC: .4byte 0x04000089
+_082E05B0: .4byte 0x040000bc
+_082E05B4: .4byte 0x040000a0
+_082E05B8: .4byte 0x040000a4
+_082E05BC: .4byte 0x03007ff0
+_082E05C0: .4byte 0x050003ec
+_082E05C4: .4byte ply_note_rev01 + 1
+_082E05C8: .4byte DummyFunc_rev + 1
+_082E05CC: .4byte 0x03007460
+_082E05D0: .4byte 0x68736d53
+ thumb_func_end SoundInit_rev01
+
+ thumb_func_start SampFreqSet_rev01
+SampFreqSet_rev01: @ 82E05D4
+ push {r4-r6,lr}
+ adds r2, r0, 0
+ ldr r0, _082E0654
+ ldr r4, [r0]
+ movs r0, 0xF0
+ lsls r0, 12
+ ands r0, r2
+ lsrs r2, r0, 16
+ movs r6, 0
+ strb r2, [r4, 0x8]
+ ldr r1, _082E0658
+ subs r0, r2, 0x1
+ lsls r0, 1
+ adds r0, r1
+ ldrh r5, [r0]
+ str r5, [r4, 0x10]
+ movs r0, 0xC6
+ lsls r0, 3
+ adds r1, r5, 0
+ bl __divsi3
+ strb r0, [r4, 0xB]
+ ldr r0, _082E065C
+ muls r0, r5
+ ldr r1, _082E0660
+ adds r0, r1
+ ldr r1, _082E0664
+ bl __divsi3
+ adds r1, r0, 0
+ str r1, [r4, 0x14]
+ movs r0, 0x80
+ lsls r0, 17
+ bl __divsi3
+ adds r0, 0x1
+ asrs r0, 1
+ str r0, [r4, 0x18]
+ ldr r0, _082E0668
+ strh r6, [r0]
+ ldr r4, _082E066C
+ ldr r0, _082E0670
+ adds r1, r5, 0
+ bl __divsi3
+ negs r0, r0
+ strh r0, [r4]
+ bl SoundVSyncOn_rev01
+ ldr r1, _082E0674
+_082E0638:
+ ldrb r0, [r1]
+ cmp r0, 0x9F
+ beq _082E0638
+ ldr r1, _082E0674
+_082E0640:
+ ldrb r0, [r1]
+ cmp r0, 0x9F
+ bne _082E0640
+ ldr r1, _082E0668
+ movs r0, 0x80
+ strh r0, [r1]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_082E0654: .4byte 0x03007ff0
+_082E0658: .4byte 0x08675b64
+_082E065C: .4byte 0x00091d1b
+_082E0660: .4byte 0x00001388
+_082E0664: .4byte 0x00002710
+_082E0668: .4byte 0x04000102
+_082E066C: .4byte 0x04000100
+_082E0670: .4byte 0x00044940
+_082E0674: .4byte 0x04000006
+ thumb_func_end SampFreqSet_rev01
+
+ thumb_func_start SoundMode_rev01
+SoundMode_rev01: @ 82E0678
+ push {r4,r5,lr}
+ adds r3, r0, 0
+ ldr r0, _082E0704
+ ldr r5, [r0]
+ ldr r1, [r5]
+ ldr r0, _082E0708
+ cmp r1, r0
+ bne _082E06FE
+ adds r0, r1, 0x1
+ str r0, [r5]
+ movs r4, 0xFF
+ ands r4, r3
+ cmp r4, 0
+ beq _082E069A
+ movs r0, 0x7F
+ ands r4, r0
+ strb r4, [r5, 0x5]
+_082E069A:
+ movs r4, 0xF0
+ lsls r4, 4
+ ands r4, r3
+ cmp r4, 0
+ beq _082E06BA
+ lsrs r0, r4, 8
+ strb r0, [r5, 0x6]
+ movs r4, 0xC
+ adds r0, r5, 0
+ adds r0, 0x50
+ movs r1, 0
+_082E06B0:
+ strb r1, [r0]
+ subs r4, 0x1
+ adds r0, 0x40
+ cmp r4, 0
+ bne _082E06B0
+_082E06BA:
+ movs r4, 0xF0
+ lsls r4, 8
+ ands r4, r3
+ cmp r4, 0
+ beq _082E06C8
+ lsrs r0, r4, 12
+ strb r0, [r5, 0x7]
+_082E06C8:
+ movs r4, 0xB0
+ lsls r4, 16
+ ands r4, r3
+ cmp r4, 0
+ beq _082E06E6
+ movs r0, 0xC0
+ lsls r0, 14
+ ands r0, r4
+ lsrs r4, r0, 14
+ ldr r2, _082E070C
+ ldrb r1, [r2]
+ movs r0, 0x3F
+ ands r0, r1
+ orrs r0, r4
+ strb r0, [r2]
+_082E06E6:
+ movs r4, 0xF0
+ lsls r4, 12
+ ands r4, r3
+ cmp r4, 0
+ beq _082E06FA
+ bl SoundVSyncOff_rev01
+ adds r0, r4, 0
+ bl SampFreqSet_rev01
+_082E06FA:
+ ldr r0, _082E0708
+ str r0, [r5]
+_082E06FE:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_082E0704: .4byte 0x03007ff0
+_082E0708: .4byte 0x68736d53
+_082E070C: .4byte 0x04000089
+ thumb_func_end SoundMode_rev01
+
+ thumb_func_start SoundClear_rev01
+SoundClear_rev01: @ 82E0710
+ push {r4-r7,lr}
+ ldr r0, _082E075C
+ ldr r6, [r0]
+ ldr r1, [r6]
+ ldr r0, _082E0760
+ cmp r1, r0
+ bne _082E0756
+ adds r0, r1, 0x1
+ str r0, [r6]
+ movs r5, 0xC
+ adds r4, r6, 0
+ adds r4, 0x50
+ movs r0, 0
+_082E072A:
+ strb r0, [r4]
+ subs r5, 0x1
+ adds r4, 0x40
+ cmp r5, 0
+ bgt _082E072A
+ ldr r4, [r6, 0x1C]
+ cmp r4, 0
+ beq _082E0752
+ movs r5, 0x1
+ movs r7, 0
+_082E073E:
+ lsls r0, r5, 24
+ lsrs r0, 24
+ ldr r1, [r6, 0x2C]
+ bl _call_via_r1
+ strb r7, [r4]
+ adds r5, 0x1
+ adds r4, 0x40
+ cmp r5, 0x4
+ ble _082E073E
+_082E0752:
+ ldr r0, _082E0760
+ str r0, [r6]
+_082E0756:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_082E075C: .4byte 0x03007ff0
+_082E0760: .4byte 0x68736d53
+ thumb_func_end SoundClear_rev01
+
+ thumb_func_start SoundVSyncOff_rev01
+SoundVSyncOff_rev01: @ 82E0764
+ push {lr}
+ sub sp, 0x4
+ ldr r0, _082E07C4
+ ldr r2, [r0]
+ ldr r1, [r2]
+ ldr r3, _082E07C8
+ adds r0, r1, r3
+ cmp r0, 0x1
+ bhi _082E07BC
+ adds r0, r1, 0
+ adds r0, 0xA
+ str r0, [r2]
+ ldr r1, _082E07CC
+ ldr r0, [r1]
+ movs r3, 0x80
+ lsls r3, 18
+ ands r0, r3
+ cmp r0, 0
+ beq _082E078E
+ ldr r0, _082E07D0
+ str r0, [r1]
+_082E078E:
+ ldr r1, _082E07D4
+ ldr r0, [r1]
+ ands r0, r3
+ cmp r0, 0
+ beq _082E079C
+ ldr r0, _082E07D0
+ str r0, [r1]
+_082E079C:
+ ldr r0, _082E07D8
+ movs r3, 0x80
+ lsls r3, 3
+ adds r1, r3, 0
+ strh r1, [r0]
+ adds r0, 0xC
+ strh r1, [r0]
+ movs r0, 0
+ str r0, [sp]
+ movs r0, 0xD4
+ lsls r0, 2
+ adds r1, r2, r0
+ ldr r2, _082E07DC
+ mov r0, sp
+ bl CpuSet
+_082E07BC:
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ .align 2, 0
+_082E07C4: .4byte 0x03007ff0
+_082E07C8: .4byte 0x978c92ad
+_082E07CC: .4byte 0x040000c4
+_082E07D0: .4byte 0x84400004
+_082E07D4: .4byte 0x040000d0
+_082E07D8: .4byte 0x040000c6
+_082E07DC: .4byte 0x05000318
+ thumb_func_end SoundVSyncOff_rev01
+
+ thumb_func_start SoundVSyncOn_rev01
+SoundVSyncOn_rev01: @ 82E07E0
+ push {r4,lr}
+ ldr r0, _082E0810
+ ldr r2, [r0]
+ ldr r3, [r2]
+ ldr r0, _082E0814
+ cmp r3, r0
+ beq _082E0808
+ ldr r0, _082E0818
+ movs r4, 0xB6
+ lsls r4, 8
+ adds r1, r4, 0
+ strh r1, [r0]
+ adds r0, 0xC
+ strh r1, [r0]
+ ldrb r0, [r2, 0x4]
+ movs r0, 0
+ strb r0, [r2, 0x4]
+ adds r0, r3, 0
+ subs r0, 0xA
+ str r0, [r2]
+_082E0808:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_082E0810: .4byte 0x03007ff0
+_082E0814: .4byte 0x68736d53
+_082E0818: .4byte 0x040000c6
+ thumb_func_end SoundVSyncOn_rev01
+
+ thumb_func_start MPlayOpen_rev01
+MPlayOpen_rev01: @ 82E081C
+ push {r4-r7,lr}
+ adds r7, r0, 0
+ adds r6, r1, 0
+ lsls r2, 24
+ lsrs r4, r2, 24
+ cmp r4, 0
+ beq _082E0880
+ cmp r4, 0x10
+ bls _082E0830
+ movs r4, 0x10
+_082E0830:
+ ldr r0, _082E0888
+ ldr r5, [r0]
+ ldr r1, [r5]
+ ldr r0, _082E088C
+ cmp r1, r0
+ bne _082E0880
+ adds r0, r1, 0x1
+ str r0, [r5]
+ adds r0, r7, 0
+ bl Clear64byte_rev
+ str r6, [r7, 0x2C]
+ strb r4, [r7, 0x8]
+ movs r0, 0x80
+ lsls r0, 24
+ str r0, [r7, 0x4]
+ cmp r4, 0
+ beq _082E0864
+ movs r1, 0
+_082E0856:
+ strb r1, [r6]
+ subs r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r6, 0x50
+ cmp r4, 0
+ bne _082E0856
+_082E0864:
+ ldr r0, [r5, 0x20]
+ cmp r0, 0
+ beq _082E0874
+ str r0, [r7, 0x38]
+ ldr r0, [r5, 0x24]
+ str r0, [r7, 0x3C]
+ movs r0, 0
+ str r0, [r5, 0x20]
+_082E0874:
+ str r7, [r5, 0x24]
+ ldr r0, _082E0890
+ str r0, [r5, 0x20]
+ ldr r0, _082E088C
+ str r0, [r5]
+ str r0, [r7, 0x34]
+_082E0880:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_082E0888: .4byte 0x03007ff0
+_082E088C: .4byte 0x68736d53
+_082E0890: .4byte MPlayMain_rev01 + 1
+ thumb_func_end MPlayOpen_rev01
+
+ thumb_func_start MPlayStart_rev01
+MPlayStart_rev01: @ 82E0894
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ adds r5, r0, 0
+ adds r7, r1, 0
+ ldr r1, [r5, 0x34]
+ ldr r0, _082E0974
+ cmp r1, r0
+ bne _082E096A
+ ldrb r0, [r5, 0xB]
+ ldrb r2, [r7, 0x2]
+ cmp r0, 0
+ beq _082E08D6
+ ldr r0, [r5]
+ cmp r0, 0
+ beq _082E08C0
+ ldr r1, [r5, 0x2C]
+ movs r0, 0x40
+ ldrb r1, [r1]
+ ands r0, r1
+ cmp r0, 0
+ bne _082E08CC
+_082E08C0:
+ ldr r1, [r5, 0x4]
+ ldrh r0, [r5, 0x4]
+ cmp r0, 0
+ beq _082E08D6
+ cmp r1, 0
+ blt _082E08D6
+_082E08CC:
+ ldrb r0, [r7, 0x2]
+ adds r2, r0, 0
+ ldrb r0, [r5, 0x9]
+ cmp r0, r2
+ bhi _082E096A
+_082E08D6:
+ ldr r0, [r5, 0x34]
+ adds r0, 0x1
+ str r0, [r5, 0x34]
+ movs r1, 0
+ str r1, [r5, 0x4]
+ str r7, [r5]
+ ldr r0, [r7, 0x4]
+ str r0, [r5, 0x30]
+ strb r2, [r5, 0x9]
+ str r1, [r5, 0xC]
+ movs r0, 0x96
+ strh r0, [r5, 0x1C]
+ strh r0, [r5, 0x20]
+ adds r0, 0x6A
+ strh r0, [r5, 0x1E]
+ strh r1, [r5, 0x22]
+ strh r1, [r5, 0x24]
+ movs r6, 0
+ ldr r4, [r5, 0x2C]
+ ldrb r1, [r7]
+ cmp r6, r1
+ bge _082E0936
+ ldrb r0, [r5, 0x8]
+ cmp r6, r0
+ bge _082E0956
+ mov r8, r6
+_082E090A:
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl TrackStop_rev01
+ movs r0, 0xC0
+ strb r0, [r4]
+ mov r1, r8
+ str r1, [r4, 0x20]
+ lsls r1, r6, 2
+ adds r0, r7, 0
+ adds r0, 0x8
+ adds r0, r1
+ ldr r0, [r0]
+ str r0, [r4, 0x40]
+ adds r6, 0x1
+ adds r4, 0x50
+ ldrb r0, [r7]
+ cmp r6, r0
+ bge _082E0936
+ ldrb r1, [r5, 0x8]
+ cmp r6, r1
+ blt _082E090A
+_082E0936:
+ ldrb r0, [r5, 0x8]
+ cmp r6, r0
+ bge _082E0956
+ movs r1, 0
+ mov r8, r1
+_082E0940:
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl TrackStop_rev01
+ mov r0, r8
+ strb r0, [r4]
+ adds r6, 0x1
+ adds r4, 0x50
+ ldrb r1, [r5, 0x8]
+ cmp r6, r1
+ blt _082E0940
+_082E0956:
+ movs r0, 0x80
+ ldrb r1, [r7, 0x3]
+ ands r0, r1
+ cmp r0, 0
+ beq _082E0966
+ ldrb r0, [r7, 0x3]
+ bl SoundMode_rev01
+_082E0966:
+ ldr r0, _082E0974
+ str r0, [r5, 0x34]
+_082E096A:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_082E0974: .4byte 0x68736d53
+ thumb_func_end MPlayStart_rev01
+
+ thumb_func_start MPlayStop_rev01
+MPlayStop_rev01: @ 82E0978
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ ldr r1, [r6, 0x34]
+ ldr r0, _082E09B4
+ cmp r1, r0
+ bne _082E09AE
+ adds r0, r1, 0x1
+ str r0, [r6, 0x34]
+ ldr r0, [r6, 0x4]
+ movs r1, 0x80
+ lsls r1, 24
+ orrs r0, r1
+ str r0, [r6, 0x4]
+ ldrb r4, [r6, 0x8]
+ ldr r5, [r6, 0x2C]
+ cmp r4, 0
+ ble _082E09AA
+_082E099A:
+ adds r0, r6, 0
+ adds r1, r5, 0
+ bl TrackStop_rev01
+ subs r4, 0x1
+ adds r5, 0x50
+ cmp r4, 0
+ bgt _082E099A
+_082E09AA:
+ ldr r0, _082E09B4
+ str r0, [r6, 0x34]
+_082E09AE:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_082E09B4: .4byte 0x68736d53
+ thumb_func_end MPlayStop_rev01
+
+ thumb_func_start FadeOutBody_rev01
+FadeOutBody_rev01: @ 82E09B8
+ push {r4-r7,lr}
+ adds r6, r0, 0
+ ldrh r1, [r6, 0x24]
+ cmp r1, 0
+ beq _082E0A7A
+ ldrh r0, [r6, 0x26]
+ subs r0, 0x1
+ strh r0, [r6, 0x26]
+ ldr r3, _082E09F8
+ adds r2, r3, 0
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r3, 0
+ bne _082E0A7A
+ strh r1, [r6, 0x26]
+ ldrh r1, [r6, 0x28]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _082E09FC
+ adds r0, r1, 0
+ adds r0, 0x10
+ strh r0, [r6, 0x28]
+ ands r0, r2
+ cmp r0, 0xFF
+ bls _082E0A4E
+ movs r0, 0x80
+ lsls r0, 1
+ strh r0, [r6, 0x28]
+ strh r3, [r6, 0x24]
+ b _082E0A4E
+ .align 2, 0
+_082E09F8: .4byte 0x0000ffff
+_082E09FC:
+ adds r0, r1, 0
+ subs r0, 0x10
+ strh r0, [r6, 0x28]
+ ands r0, r2
+ lsls r0, 16
+ cmp r0, 0
+ bgt _082E0A4E
+ ldrb r5, [r6, 0x8]
+ ldr r4, [r6, 0x2C]
+ cmp r5, 0
+ ble _082E0A2E
+_082E0A12:
+ adds r0, r6, 0
+ adds r1, r4, 0
+ bl TrackStop_rev01
+ movs r0, 0x1
+ ldrh r7, [r6, 0x28]
+ ands r0, r7
+ cmp r0, 0
+ bne _082E0A26
+ strb r0, [r4]
+_082E0A26:
+ subs r5, 0x1
+ adds r4, 0x50
+ cmp r5, 0
+ bgt _082E0A12
+_082E0A2E:
+ movs r0, 0x1
+ ldrh r1, [r6, 0x28]
+ ands r0, r1
+ cmp r0, 0
+ beq _082E0A42
+ ldr r0, [r6, 0x4]
+ movs r1, 0x80
+ lsls r1, 24
+ orrs r0, r1
+ b _082E0A46
+_082E0A42:
+ movs r0, 0x80
+ lsls r0, 24
+_082E0A46:
+ str r0, [r6, 0x4]
+ movs r0, 0
+ strh r0, [r6, 0x24]
+ b _082E0A7A
+_082E0A4E:
+ ldrb r5, [r6, 0x8]
+ ldr r4, [r6, 0x2C]
+ cmp r5, 0
+ ble _082E0A7A
+ movs r3, 0x80
+ movs r7, 0
+ movs r2, 0x3
+_082E0A5C:
+ ldrb r1, [r4]
+ adds r0, r3, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _082E0A72
+ ldrh r7, [r6, 0x28]
+ lsrs r0, r7, 2
+ strb r0, [r4, 0x13]
+ adds r0, r1, 0
+ orrs r0, r2
+ strb r0, [r4]
+_082E0A72:
+ subs r5, 0x1
+ adds r4, 0x50
+ cmp r5, 0
+ bgt _082E0A5C
+_082E0A7A:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end FadeOutBody_rev01
+
+ thumb_func_start TrkVolPitSet_rev01
+TrkVolPitSet_rev01: @ 82E0A80
+ push {r4,lr}
+ adds r2, r1, 0
+ movs r0, 0x1
+ ldrb r1, [r2]
+ ands r0, r1
+ cmp r0, 0
+ beq _082E0AE4
+ ldrb r3, [r2, 0x13]
+ ldrb r1, [r2, 0x12]
+ adds r0, r3, 0
+ muls r0, r1
+ lsrs r3, r0, 5
+ ldrb r4, [r2, 0x18]
+ cmp r4, 0x1
+ bne _082E0AA8
+ movs r0, 0x16
+ ldrsb r0, [r2, r0]
+ adds r0, 0x80
+ muls r0, r3
+ lsrs r3, r0, 7
+_082E0AA8:
+ movs r0, 0x14
+ ldrsb r0, [r2, r0]
+ lsls r0, 1
+ movs r1, 0x15
+ ldrsb r1, [r2, r1]
+ adds r1, r0, r1
+ cmp r4, 0x2
+ bne _082E0ABE
+ movs r0, 0x16
+ ldrsb r0, [r2, r0]
+ adds r1, r0
+_082E0ABE:
+ movs r0, 0x80
+ negs r0, r0
+ cmp r1, r0
+ bge _082E0ACA
+ adds r1, r0, 0
+ b _082E0AD0
+_082E0ACA:
+ cmp r1, 0x7F
+ ble _082E0AD0
+ movs r1, 0x7F
+_082E0AD0:
+ adds r0, r1, 0
+ adds r0, 0x80
+ muls r0, r3
+ lsrs r0, 8
+ strb r0, [r2, 0x10]
+ movs r0, 0x7F
+ subs r0, r1
+ muls r0, r3
+ lsrs r0, 8
+ strb r0, [r2, 0x11]
+_082E0AE4:
+ ldrb r1, [r2]
+ movs r0, 0x4
+ ands r0, r1
+ adds r3, r1, 0
+ cmp r0, 0
+ beq _082E0B28
+ movs r0, 0xE
+ ldrsb r0, [r2, r0]
+ ldrb r1, [r2, 0xF]
+ muls r0, r1
+ movs r1, 0xC
+ ldrsb r1, [r2, r1]
+ adds r1, r0
+ lsls r1, 2
+ movs r0, 0xA
+ ldrsb r0, [r2, r0]
+ lsls r0, 8
+ adds r1, r0
+ movs r0, 0xB
+ ldrsb r0, [r2, r0]
+ lsls r0, 8
+ adds r1, r0
+ ldrb r0, [r2, 0xD]
+ adds r1, r0, r1
+ ldrb r0, [r2, 0x18]
+ cmp r0, 0
+ bne _082E0B22
+ movs r0, 0x16
+ ldrsb r0, [r2, r0]
+ lsls r0, 4
+ adds r1, r0
+_082E0B22:
+ asrs r0, r1, 8
+ strb r0, [r2, 0x8]
+ strb r1, [r2, 0x9]
+_082E0B28:
+ movs r0, 0xFA
+ ands r0, r3
+ strb r0, [r2]
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end TrkVolPitSet_rev01
+
+ thumb_func_start MidiKey2CgbFr
+MidiKey2CgbFr: @ 82E0B34
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 24
+ lsrs r5, r1, 24
+ lsls r2, 24
+ lsrs r2, 24
+ mov r12, r2
+ cmp r0, 0x4
+ bne _082E0B6C
+ cmp r5, 0x14
+ bhi _082E0B50
+ movs r5, 0
+ b _082E0B5E
+_082E0B50:
+ adds r0, r5, 0
+ subs r0, 0x15
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x3B
+ bls _082E0B5E
+ movs r5, 0x3B
+_082E0B5E:
+ ldr r0, _082E0B68
+ adds r0, r5, r0
+ ldrb r0, [r0]
+ b _082E0BCE
+ .align 2, 0
+_082E0B68: .4byte 0x08675c18
+_082E0B6C:
+ cmp r5, 0x23
+ bhi _082E0B78
+ movs r0, 0
+ mov r12, r0
+ movs r5, 0
+ b _082E0B8A
+_082E0B78:
+ adds r0, r5, 0
+ subs r0, 0x24
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x82
+ bls _082E0B8A
+ movs r5, 0x82
+ movs r1, 0xFF
+ mov r12, r1
+_082E0B8A:
+ ldr r3, _082E0BD4
+ adds r0, r5, r3
+ ldrb r6, [r0]
+ ldr r4, _082E0BD8
+ movs r2, 0xF
+ adds r0, r6, 0
+ ands r0, r2
+ lsls r0, 1
+ adds r0, r4
+ movs r7, 0
+ ldrsh r1, [r0, r7]
+ asrs r0, r6, 4
+ adds r6, r1, 0
+ asrs r6, r0
+ adds r0, r5, 0x1
+ adds r0, r3
+ ldrb r1, [r0]
+ adds r0, r1, 0
+ ands r0, r2
+ lsls r0, 1
+ adds r0, r4
+ movs r2, 0
+ ldrsh r0, [r0, r2]
+ asrs r1, 4
+ asrs r0, r1
+ subs r0, r6
+ mov r7, r12
+ muls r7, r0
+ adds r0, r7, 0
+ asrs r0, 8
+ adds r0, r6, r0
+ movs r1, 0x80
+ lsls r1, 4
+ adds r0, r1
+_082E0BCE:
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_082E0BD4: .4byte 0x08675b7c
+_082E0BD8: .4byte 0x08675c00
+ thumb_func_end MidiKey2CgbFr
+
+ thumb_func_start CgbOscOff
+CgbOscOff: @ 82E0BDC
+ lsls r0, 24
+ lsrs r0, 24
+ adds r1, r0, 0
+ cmp r0, 0x2
+ beq _082E0C04
+ cmp r0, 0x2
+ bgt _082E0BF0
+ cmp r0, 0x1
+ beq _082E0BF6
+ b _082E0C18
+_082E0BF0:
+ cmp r1, 0x3
+ beq _082E0C0C
+ b _082E0C18
+_082E0BF6:
+ ldr r1, _082E0C00
+ movs r0, 0x8
+ strb r0, [r1]
+ adds r1, 0x2
+ b _082E0C20
+ .align 2, 0
+_082E0C00: .4byte 0x04000063
+_082E0C04:
+ ldr r1, _082E0C08
+ b _082E0C1A
+ .align 2, 0
+_082E0C08: .4byte 0x04000069
+_082E0C0C:
+ ldr r1, _082E0C14
+ movs r0, 0
+ b _082E0C22
+ .align 2, 0
+_082E0C14: .4byte 0x04000070
+_082E0C18:
+ ldr r1, _082E0C28
+_082E0C1A:
+ movs r0, 0x8
+ strb r0, [r1]
+ adds r1, 0x4
+_082E0C20:
+ movs r0, 0x80
+_082E0C22:
+ strb r0, [r1]
+ bx lr
+ .align 2, 0
+_082E0C28: .4byte 0x04000079
+ thumb_func_end CgbOscOff
+
+ thumb_func_start CgbModVol
+CgbModVol: @ 82E0C2C
+ push {r4,lr}
+ adds r2, r0, 0
+ ldr r0, _082E0C5C
+ ldr r1, [r0]
+ movs r0, 0x1
+ ldrb r1, [r1, 0x9]
+ ands r0, r1
+ cmp r0, 0
+ bne _082E0C6C
+ ldrb r0, [r2, 0x2]
+ lsls r1, r0, 24
+ lsrs r4, r1, 24
+ ldrb r3, [r2, 0x3]
+ lsls r0, r3, 24
+ lsrs r3, r0, 24
+ cmp r4, r3
+ bcc _082E0C60
+ lsrs r0, r1, 25
+ cmp r0, r3
+ bcc _082E0C6C
+ movs r0, 0xF
+ strb r0, [r2, 0x1B]
+ b _082E0C7A
+ .align 2, 0
+_082E0C5C: .4byte 0x03007ff0
+_082E0C60:
+ lsrs r0, 25
+ cmp r0, r4
+ bcc _082E0C6C
+ movs r0, 0xF0
+ strb r0, [r2, 0x1B]
+ b _082E0C7A
+_082E0C6C:
+ movs r0, 0xFF
+ strb r0, [r2, 0x1B]
+ ldrb r1, [r2, 0x3]
+ ldrb r3, [r2, 0x2]
+ adds r0, r1, r3
+ lsrs r0, 4
+ b _082E0C8A
+_082E0C7A:
+ ldrb r1, [r2, 0x3]
+ ldrb r3, [r2, 0x2]
+ adds r0, r1, r3
+ lsrs r0, 4
+ strb r0, [r2, 0xA]
+ cmp r0, 0xF
+ bls _082E0C8C
+ movs r0, 0xF
+_082E0C8A:
+ strb r0, [r2, 0xA]
+_082E0C8C:
+ ldrb r1, [r2, 0x6]
+ ldrb r3, [r2, 0xA]
+ adds r0, r1, 0
+ muls r0, r3
+ adds r0, 0xF
+ asrs r0, 4
+ strb r0, [r2, 0x19]
+ ldrb r0, [r2, 0x1C]
+ ldrb r1, [r2, 0x1B]
+ ands r0, r1
+ strb r0, [r2, 0x1B]
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end CgbModVol
+
+ thumb_func_start CgbSound
+CgbSound: @ 82E0CA8
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x1C
+ ldr r0, _082E0CC8
+ ldr r0, [r0]
+ str r0, [sp, 0x4]
+ ldrb r0, [r0, 0xA]
+ cmp r0, 0
+ beq _082E0CCC
+ subs r0, 0x1
+ ldr r1, [sp, 0x4]
+ strb r0, [r1, 0xA]
+ b _082E0CD2
+ .align 2, 0
+_082E0CC8: .4byte 0x03007ff0
+_082E0CCC:
+ movs r0, 0xE
+ ldr r2, [sp, 0x4]
+ strb r0, [r2, 0xA]
+_082E0CD2:
+ movs r6, 0x1
+ ldr r0, [sp, 0x4]
+ ldr r4, [r0, 0x1C]
+_082E0CD8:
+ ldrb r1, [r4]
+ movs r0, 0xC7
+ ands r0, r1
+ adds r2, r6, 0x1
+ mov r10, r2
+ movs r2, 0x40
+ adds r2, r4
+ mov r9, r2
+ cmp r0, 0
+ bne _082E0CEE
+ b _082E10D8
+_082E0CEE:
+ cmp r6, 0x2
+ beq _082E0D20
+ cmp r6, 0x2
+ bgt _082E0CFC
+ cmp r6, 0x1
+ beq _082E0D02
+ b _082E0D58
+_082E0CFC:
+ cmp r6, 0x3
+ beq _082E0D38
+ b _082E0D58
+_082E0D02:
+ ldr r0, _082E0D14
+ str r0, [sp, 0x8]
+ ldr r7, _082E0D18
+ ldr r2, _082E0D1C
+ str r2, [sp, 0xC]
+ adds r0, 0x4
+ str r0, [sp, 0x10]
+ adds r2, 0x2
+ b _082E0D68
+ .align 2, 0
+_082E0D14: .4byte 0x04000060
+_082E0D18: .4byte 0x04000062
+_082E0D1C: .4byte 0x04000063
+_082E0D20:
+ ldr r0, _082E0D2C
+ str r0, [sp, 0x8]
+ ldr r7, _082E0D30
+ ldr r2, _082E0D34
+ b _082E0D60
+ .align 2, 0
+_082E0D2C: .4byte 0x04000061
+_082E0D30: .4byte 0x04000068
+_082E0D34: .4byte 0x04000069
+_082E0D38:
+ ldr r0, _082E0D4C
+ str r0, [sp, 0x8]
+ ldr r7, _082E0D50
+ ldr r2, _082E0D54
+ str r2, [sp, 0xC]
+ adds r0, 0x4
+ str r0, [sp, 0x10]
+ adds r2, 0x2
+ b _082E0D68
+ .align 2, 0
+_082E0D4C: .4byte 0x04000070
+_082E0D50: .4byte 0x04000072
+_082E0D54: .4byte 0x04000073
+_082E0D58:
+ ldr r0, _082E0DB8
+ str r0, [sp, 0x8]
+ ldr r7, _082E0DBC
+ ldr r2, _082E0DC0
+_082E0D60:
+ str r2, [sp, 0xC]
+ adds r0, 0xB
+ str r0, [sp, 0x10]
+ adds r2, 0x4
+_082E0D68:
+ str r2, [sp, 0x14]
+ ldr r0, [sp, 0x4]
+ ldrb r0, [r0, 0xA]
+ str r0, [sp]
+ ldr r2, [sp, 0xC]
+ ldrb r0, [r2]
+ mov r8, r0
+ adds r2, r1, 0
+ movs r0, 0x80
+ ands r0, r2
+ cmp r0, 0
+ beq _082E0E5E
+ movs r3, 0x40
+ adds r0, r3, 0
+ ands r0, r2
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r0, r6, 0x1
+ mov r10, r0
+ movs r1, 0x40
+ adds r1, r4
+ mov r9, r1
+ cmp r5, 0
+ bne _082E0E82
+ movs r0, 0x3
+ strb r0, [r4]
+ strb r0, [r4, 0x1D]
+ adds r0, r4, 0
+ str r3, [sp, 0x18]
+ bl CgbModVol
+ ldr r3, [sp, 0x18]
+ cmp r6, 0x2
+ beq _082E0DD0
+ cmp r6, 0x2
+ bgt _082E0DC4
+ cmp r6, 0x1
+ beq _082E0DCA
+ b _082E0E24
+ .align 2, 0
+_082E0DB8: .4byte 0x04000071
+_082E0DBC: .4byte 0x04000078
+_082E0DC0: .4byte 0x04000079
+_082E0DC4:
+ cmp r6, 0x3
+ beq _082E0DDC
+ b _082E0E24
+_082E0DCA:
+ ldrb r0, [r4, 0x1F]
+ ldr r2, [sp, 0x8]
+ strb r0, [r2]
+_082E0DD0:
+ ldr r0, [r4, 0x24]
+ lsls r0, 6
+ ldrb r1, [r4, 0x1E]
+ adds r0, r1, r0
+ strb r0, [r7]
+ b _082E0E30
+_082E0DDC:
+ ldr r1, [r4, 0x24]
+ ldr r0, [r4, 0x28]
+ cmp r1, r0
+ beq _082E0E04
+ ldr r2, [sp, 0x8]
+ strb r3, [r2]
+ ldr r1, _082E0E18
+ ldr r2, [r4, 0x24]
+ ldr r0, [r2]
+ str r0, [r1]
+ adds r1, 0x4
+ ldr r0, [r2, 0x4]
+ str r0, [r1]
+ adds r1, 0x4
+ ldr r0, [r2, 0x8]
+ str r0, [r1]
+ adds r1, 0x4
+ ldr r0, [r2, 0xC]
+ str r0, [r1]
+ str r2, [r4, 0x28]
+_082E0E04:
+ ldr r0, [sp, 0x8]
+ strb r5, [r0]
+ ldrb r0, [r4, 0x1E]
+ strb r0, [r7]
+ ldrb r0, [r4, 0x1E]
+ cmp r0, 0
+ beq _082E0E1C
+ movs r0, 0xC0
+ b _082E0E3E
+ .align 2, 0
+_082E0E18: .4byte 0x04000090
+_082E0E1C:
+ movs r1, 0x80
+ negs r1, r1
+ strb r1, [r4, 0x1A]
+ b _082E0E40
+_082E0E24:
+ ldrb r0, [r4, 0x1E]
+ strb r0, [r7]
+ ldr r0, [r4, 0x24]
+ lsls r0, 3
+ ldr r2, [sp, 0x10]
+ strb r0, [r2]
+_082E0E30:
+ ldrb r0, [r4, 0x4]
+ adds r0, 0x8
+ mov r8, r0
+ ldrb r0, [r4, 0x1E]
+ cmp r0, 0
+ beq _082E0E3E
+ movs r0, 0x40
+_082E0E3E:
+ strb r0, [r4, 0x1A]
+_082E0E40:
+ ldrb r1, [r4, 0x4]
+ movs r2, 0
+ strb r1, [r4, 0xB]
+ movs r0, 0xFF
+ ands r0, r1
+ adds r1, r6, 0x1
+ mov r10, r1
+ movs r1, 0x40
+ adds r1, r4
+ mov r9, r1
+ cmp r0, 0
+ bne _082E0E5A
+ b _082E0F96
+_082E0E5A:
+ strb r2, [r4, 0x9]
+ b _082E0FC4
+_082E0E5E:
+ movs r0, 0x4
+ ands r0, r2
+ cmp r0, 0
+ beq _082E0E90
+ ldrb r0, [r4, 0xD]
+ subs r0, 0x1
+ strb r0, [r4, 0xD]
+ movs r2, 0xFF
+ ands r0, r2
+ lsls r0, 24
+ adds r1, r6, 0x1
+ mov r10, r1
+ movs r2, 0x40
+ adds r2, r4
+ mov r9, r2
+ cmp r0, 0
+ ble _082E0E82
+ b _082E0FD6
+_082E0E82:
+ lsls r0, r6, 24
+ lsrs r0, 24
+ bl CgbOscOff
+ movs r0, 0
+ strb r0, [r4]
+ b _082E10D4
+_082E0E90:
+ movs r0, 0x40
+ ands r0, r1
+ adds r2, r6, 0x1
+ mov r10, r2
+ movs r2, 0x40
+ adds r2, r4
+ mov r9, r2
+ cmp r0, 0
+ beq _082E0ED0
+ movs r0, 0x3
+ ands r0, r1
+ cmp r0, 0
+ beq _082E0ED0
+ movs r0, 0xFC
+ ands r0, r1
+ movs r2, 0
+ strb r0, [r4]
+ ldrb r1, [r4, 0x7]
+ strb r1, [r4, 0xB]
+ movs r0, 0xFF
+ ands r0, r1
+ cmp r0, 0
+ beq _082E0F02
+ movs r0, 0x1
+ ldrb r1, [r4, 0x1D]
+ orrs r0, r1
+ strb r0, [r4, 0x1D]
+ cmp r6, 0x3
+ beq _082E0FC4
+ ldrb r2, [r4, 0x7]
+ mov r8, r2
+ b _082E0FC4
+_082E0ED0:
+ ldrb r0, [r4, 0xB]
+ cmp r0, 0
+ bne _082E0FC4
+ cmp r6, 0x3
+ bne _082E0EE2
+ movs r0, 0x1
+ ldrb r1, [r4, 0x1D]
+ orrs r0, r1
+ strb r0, [r4, 0x1D]
+_082E0EE2:
+ adds r0, r4, 0
+ bl CgbModVol
+ movs r0, 0x3
+ ldrb r2, [r4]
+ ands r0, r2
+ cmp r0, 0
+ bne _082E0F36
+ ldrb r0, [r4, 0x9]
+ subs r0, 0x1
+ strb r0, [r4, 0x9]
+ movs r1, 0xFF
+ ands r0, r1
+ lsls r0, 24
+ cmp r0, 0
+ bgt _082E0F32
+_082E0F02:
+ ldrb r2, [r4, 0xC]
+ ldrb r1, [r4, 0xA]
+ adds r0, r2, 0
+ muls r0, r1
+ adds r0, 0xFF
+ asrs r0, 8
+ movs r1, 0
+ strb r0, [r4, 0x9]
+ lsls r0, 24
+ cmp r0, 0
+ beq _082E0E82
+ movs r0, 0x4
+ ldrb r2, [r4]
+ orrs r0, r2
+ strb r0, [r4]
+ movs r0, 0x1
+ ldrb r1, [r4, 0x1D]
+ orrs r0, r1
+ strb r0, [r4, 0x1D]
+ cmp r6, 0x3
+ beq _082E0FD6
+ movs r2, 0x8
+ mov r8, r2
+ b _082E0FD6
+_082E0F32:
+ ldrb r0, [r4, 0x7]
+ b _082E0FC2
+_082E0F36:
+ cmp r0, 0x1
+ bne _082E0F42
+_082E0F3A:
+ ldrb r0, [r4, 0x19]
+ strb r0, [r4, 0x9]
+ movs r0, 0x7
+ b _082E0FC2
+_082E0F42:
+ cmp r0, 0x2
+ bne _082E0F86
+ ldrb r0, [r4, 0x9]
+ subs r0, 0x1
+ strb r0, [r4, 0x9]
+ movs r1, 0xFF
+ ands r0, r1
+ lsls r0, 24
+ ldrb r2, [r4, 0x19]
+ lsls r1, r2, 24
+ cmp r0, r1
+ bgt _082E0F82
+_082E0F5A:
+ ldrb r0, [r4, 0x6]
+ cmp r0, 0
+ bne _082E0F6A
+ movs r0, 0xFC
+ ldrb r1, [r4]
+ ands r0, r1
+ strb r0, [r4]
+ b _082E0F02
+_082E0F6A:
+ ldrb r0, [r4]
+ subs r0, 0x1
+ strb r0, [r4]
+ movs r0, 0x1
+ ldrb r2, [r4, 0x1D]
+ orrs r0, r2
+ strb r0, [r4, 0x1D]
+ cmp r6, 0x3
+ beq _082E0F3A
+ movs r0, 0x8
+ mov r8, r0
+ b _082E0F3A
+_082E0F82:
+ ldrb r0, [r4, 0x5]
+ b _082E0FC2
+_082E0F86:
+ ldrb r0, [r4, 0x9]
+ adds r0, 0x1
+ strb r0, [r4, 0x9]
+ movs r1, 0xFF
+ ands r0, r1
+ ldrb r2, [r4, 0xA]
+ cmp r0, r2
+ bcc _082E0FC0
+_082E0F96:
+ ldrb r0, [r4]
+ subs r0, 0x1
+ movs r2, 0
+ strb r0, [r4]
+ ldrb r1, [r4, 0x5]
+ strb r1, [r4, 0xB]
+ movs r0, 0xFF
+ ands r0, r1
+ cmp r0, 0
+ beq _082E0F5A
+ movs r0, 0x1
+ ldrb r1, [r4, 0x1D]
+ orrs r0, r1
+ strb r0, [r4, 0x1D]
+ ldrb r0, [r4, 0xA]
+ strb r0, [r4, 0x9]
+ cmp r6, 0x3
+ beq _082E0FC4
+ ldrb r2, [r4, 0x5]
+ mov r8, r2
+ b _082E0FC4
+_082E0FC0:
+ ldrb r0, [r4, 0x4]
+_082E0FC2:
+ strb r0, [r4, 0xB]
+_082E0FC4:
+ ldrb r0, [r4, 0xB]
+ subs r0, 0x1
+ strb r0, [r4, 0xB]
+ ldr r0, [sp]
+ cmp r0, 0
+ bne _082E0FD6
+ subs r0, 0x1
+ str r0, [sp]
+ b _082E0ED0
+_082E0FD6:
+ movs r0, 0x2
+ ldrb r1, [r4, 0x1D]
+ ands r0, r1
+ cmp r0, 0
+ beq _082E104E
+ cmp r6, 0x3
+ bgt _082E1016
+ movs r0, 0x8
+ ldrb r2, [r4, 0x1]
+ ands r0, r2
+ cmp r0, 0
+ beq _082E1016
+ ldr r0, _082E1000
+ ldrb r0, [r0]
+ cmp r0, 0x3F
+ bgt _082E1008
+ ldr r0, [r4, 0x20]
+ adds r0, 0x2
+ ldr r1, _082E1004
+ b _082E1012
+ .align 2, 0
+_082E1000: .4byte 0x04000089
+_082E1004: .4byte 0x000007fc
+_082E1008:
+ cmp r0, 0x7F
+ bgt _082E1016
+ ldr r0, [r4, 0x20]
+ adds r0, 0x1
+ ldr r1, _082E1024
+_082E1012:
+ ands r0, r1
+ str r0, [r4, 0x20]
+_082E1016:
+ cmp r6, 0x4
+ beq _082E1028
+ ldr r0, [r4, 0x20]
+ ldr r1, [sp, 0x10]
+ strb r0, [r1]
+ b _082E1036
+ .align 2, 0
+_082E1024: .4byte 0x000007fe
+_082E1028:
+ ldr r2, [sp, 0x10]
+ ldrb r0, [r2]
+ movs r1, 0x8
+ ands r1, r0
+ ldr r0, [r4, 0x20]
+ orrs r0, r1
+ strb r0, [r2]
+_082E1036:
+ movs r0, 0xC0
+ ldrb r1, [r4, 0x1A]
+ ands r0, r1
+ adds r1, r4, 0
+ adds r1, 0x21
+ ldrb r1, [r1]
+ adds r0, r1, r0
+ strb r0, [r4, 0x1A]
+ movs r2, 0xFF
+ ands r0, r2
+ ldr r1, [sp, 0x14]
+ strb r0, [r1]
+_082E104E:
+ movs r0, 0x1
+ ldrb r2, [r4, 0x1D]
+ ands r0, r2
+ cmp r0, 0
+ beq _082E10D4
+ ldr r1, _082E1098
+ ldrb r0, [r1]
+ ldrb r2, [r4, 0x1C]
+ bics r0, r2
+ ldrb r2, [r4, 0x1B]
+ orrs r0, r2
+ strb r0, [r1]
+ cmp r6, 0x3
+ bne _082E10A0
+ ldr r0, _082E109C
+ ldrb r1, [r4, 0x9]
+ adds r0, r1, r0
+ ldrb r0, [r0]
+ ldr r2, [sp, 0xC]
+ strb r0, [r2]
+ movs r1, 0x80
+ adds r0, r1, 0
+ ldrb r2, [r4, 0x1A]
+ ands r0, r2
+ cmp r0, 0
+ beq _082E10D4
+ ldr r0, [sp, 0x8]
+ strb r1, [r0]
+ ldrb r0, [r4, 0x1A]
+ ldr r1, [sp, 0x14]
+ strb r0, [r1]
+ movs r0, 0x7F
+ ldrb r2, [r4, 0x1A]
+ ands r0, r2
+ strb r0, [r4, 0x1A]
+ b _082E10D4
+ .align 2, 0
+_082E1098: .4byte 0x04000081
+_082E109C: .4byte 0x08675c54
+_082E10A0:
+ movs r0, 0xF
+ mov r1, r8
+ ands r1, r0
+ mov r8, r1
+ ldrb r2, [r4, 0x9]
+ lsls r0, r2, 4
+ add r0, r8
+ ldr r1, [sp, 0xC]
+ strb r0, [r1]
+ movs r2, 0x80
+ ldrb r0, [r4, 0x1A]
+ orrs r0, r2
+ ldr r1, [sp, 0x14]
+ strb r0, [r1]
+ cmp r6, 0x1
+ bne _082E10D4
+ ldr r0, [sp, 0x8]
+ ldrb r1, [r0]
+ movs r0, 0x8
+ ands r0, r1
+ cmp r0, 0
+ bne _082E10D4
+ ldrb r0, [r4, 0x1A]
+ orrs r0, r2
+ ldr r1, [sp, 0x14]
+ strb r0, [r1]
+_082E10D4:
+ movs r0, 0
+ strb r0, [r4, 0x1D]
+_082E10D8:
+ mov r6, r10
+ mov r4, r9
+ cmp r6, 0x4
+ bgt _082E10E2
+ b _082E0CD8
+_082E10E2:
+ add sp, 0x1C
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end CgbSound
+
+ thumb_func_start MPlayTempoControl
+MPlayTempoControl: @ 82E10F4
+ push {r4,lr}
+ adds r2, r0, 0
+ lsls r1, 16
+ lsrs r1, 16
+ ldr r3, [r2, 0x34]
+ ldr r0, _082E1118
+ cmp r3, r0
+ bne _082E1110
+ strh r1, [r2, 0x1E]
+ ldrh r4, [r2, 0x1C]
+ adds r0, r1, 0
+ muls r0, r4
+ asrs r0, 8
+ strh r0, [r2, 0x20]
+_082E1110:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_082E1118: .4byte 0x68736d53
+ thumb_func_end MPlayTempoControl
+
+ thumb_func_start MPlayVolumeControl
+MPlayVolumeControl: @ 82E111C
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ adds r4, r0, 0
+ lsls r1, 16
+ lsrs r7, r1, 16
+ lsls r6, r2, 16
+ ldr r3, [r4, 0x34]
+ ldr r0, _082E1180
+ cmp r3, r0
+ bne _082E1174
+ adds r0, r3, 0x1
+ str r0, [r4, 0x34]
+ ldrb r2, [r4, 0x8]
+ ldr r1, [r4, 0x2C]
+ movs r5, 0x1
+ cmp r2, 0
+ ble _082E1170
+ movs r0, 0x80
+ mov r8, r0
+ lsrs r6, 18
+ movs r0, 0x3
+ mov r12, r0
+_082E114C:
+ adds r0, r7, 0
+ ands r0, r5
+ cmp r0, 0
+ beq _082E1166
+ ldrb r3, [r1]
+ mov r0, r8
+ ands r0, r3
+ cmp r0, 0
+ beq _082E1166
+ strb r6, [r1, 0x13]
+ mov r0, r12
+ orrs r0, r3
+ strb r0, [r1]
+_082E1166:
+ subs r2, 0x1
+ adds r1, 0x50
+ lsls r5, 1
+ cmp r2, 0
+ bgt _082E114C
+_082E1170:
+ ldr r0, _082E1180
+ str r0, [r4, 0x34]
+_082E1174:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_082E1180: .4byte 0x68736d53
+ thumb_func_end MPlayVolumeControl
+
+ thumb_func_start MPlayPitchControl
+MPlayPitchControl: @ 82E1184
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ adds r4, r0, 0
+ lsls r1, 16
+ lsrs r1, 16
+ mov r12, r1
+ lsls r2, 16
+ lsrs r6, r2, 16
+ ldr r3, [r4, 0x34]
+ ldr r0, _082E11F4
+ cmp r3, r0
+ bne _082E11E6
+ adds r0, r3, 0x1
+ str r0, [r4, 0x34]
+ ldrb r2, [r4, 0x8]
+ ldr r3, [r4, 0x2C]
+ movs r5, 0x1
+ cmp r2, 0
+ ble _082E11E2
+ movs r0, 0x80
+ mov r9, r0
+ lsls r0, r6, 16
+ asrs r7, r0, 24
+ movs r0, 0xC
+ mov r8, r0
+_082E11BC:
+ mov r0, r12
+ ands r0, r5
+ cmp r0, 0
+ beq _082E11D8
+ ldrb r1, [r3]
+ mov r0, r9
+ ands r0, r1
+ cmp r0, 0
+ beq _082E11D8
+ strb r7, [r3, 0xB]
+ strb r6, [r3, 0xD]
+ mov r0, r8
+ orrs r0, r1
+ strb r0, [r3]
+_082E11D8:
+ subs r2, 0x1
+ adds r3, 0x50
+ lsls r5, 1
+ cmp r2, 0
+ bgt _082E11BC
+_082E11E2:
+ ldr r0, _082E11F4
+ str r0, [r4, 0x34]
+_082E11E6:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_082E11F4: .4byte 0x68736d53
+ thumb_func_end MPlayPitchControl
+
+ thumb_func_start MPlayPanpotControl
+MPlayPanpotControl: @ 82E11F8
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ adds r4, r0, 0
+ lsls r1, 16
+ lsrs r7, r1, 16
+ lsls r2, 24
+ lsrs r6, r2, 24
+ ldr r3, [r4, 0x34]
+ ldr r0, _082E125C
+ cmp r3, r0
+ bne _082E1250
+ adds r0, r3, 0x1
+ str r0, [r4, 0x34]
+ ldrb r2, [r4, 0x8]
+ ldr r1, [r4, 0x2C]
+ movs r5, 0x1
+ cmp r2, 0
+ ble _082E124C
+ movs r0, 0x80
+ mov r8, r0
+ movs r0, 0x3
+ mov r12, r0
+_082E1228:
+ adds r0, r7, 0
+ ands r0, r5
+ cmp r0, 0
+ beq _082E1242
+ ldrb r3, [r1]
+ mov r0, r8
+ ands r0, r3
+ cmp r0, 0
+ beq _082E1242
+ strb r6, [r1, 0x15]
+ mov r0, r12
+ orrs r0, r3
+ strb r0, [r1]
+_082E1242:
+ subs r2, 0x1
+ adds r1, 0x50
+ lsls r5, 1
+ cmp r2, 0
+ bgt _082E1228
+_082E124C:
+ ldr r0, _082E125C
+ str r0, [r4, 0x34]
+_082E1250:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_082E125C: .4byte 0x68736d53
+ thumb_func_end MPlayPanpotControl
+
+ thumb_func_start MP_clear_modM
+MP_clear_modM: @ 82E1260
+ adds r1, r0, 0
+ movs r2, 0
+ movs r0, 0
+ strb r0, [r1, 0x1A]
+ strb r0, [r1, 0x16]
+ ldrb r0, [r1, 0x18]
+ cmp r0, 0
+ bne _082E1274
+ movs r0, 0xC
+ b _082E1276
+_082E1274:
+ movs r0, 0x3
+_082E1276:
+ ldrb r2, [r1]
+ orrs r0, r2
+ strb r0, [r1]
+ bx lr
+ thumb_func_end MP_clear_modM
+
+ thumb_func_start MPlayModDepthSet
+MPlayModDepthSet: @ 82E1280
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ adds r6, r0, 0
+ lsls r1, 16
+ lsrs r1, 16
+ mov r10, r1
+ lsls r2, 24
+ lsrs r2, 24
+ mov r8, r2
+ ldr r1, [r6, 0x34]
+ ldr r0, _082E12F0
+ cmp r1, r0
+ bne _082E12E0
+ adds r0, r1, 0x1
+ str r0, [r6, 0x34]
+ ldrb r5, [r6, 0x8]
+ ldr r4, [r6, 0x2C]
+ movs r7, 0x1
+ cmp r5, 0
+ ble _082E12DC
+ mov r9, r8
+_082E12B0:
+ mov r0, r10
+ ands r0, r7
+ cmp r0, 0
+ beq _082E12D2
+ movs r0, 0x80
+ ldrb r1, [r4]
+ ands r0, r1
+ cmp r0, 0
+ beq _082E12D2
+ mov r0, r8
+ strb r0, [r4, 0x17]
+ mov r1, r9
+ cmp r1, 0
+ bne _082E12D2
+ adds r0, r4, 0
+ bl MP_clear_modM
+_082E12D2:
+ subs r5, 0x1
+ adds r4, 0x50
+ lsls r7, 1
+ cmp r5, 0
+ bgt _082E12B0
+_082E12DC:
+ ldr r0, _082E12F0
+ str r0, [r6, 0x34]
+_082E12E0:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_082E12F0: .4byte 0x68736d53
+ thumb_func_end MPlayModDepthSet
+
+ thumb_func_start MPlayLFOSpeedSet
+MPlayLFOSpeedSet: @ 82E12F4
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ adds r6, r0, 0
+ lsls r1, 16
+ lsrs r1, 16
+ mov r10, r1
+ lsls r2, 24
+ lsrs r2, 24
+ mov r8, r2
+ ldr r1, [r6, 0x34]
+ ldr r0, _082E1364
+ cmp r1, r0
+ bne _082E1354
+ adds r0, r1, 0x1
+ str r0, [r6, 0x34]
+ ldrb r5, [r6, 0x8]
+ ldr r4, [r6, 0x2C]
+ movs r7, 0x1
+ cmp r5, 0
+ ble _082E1350
+ mov r9, r8
+_082E1324:
+ mov r0, r10
+ ands r0, r7
+ cmp r0, 0
+ beq _082E1346
+ movs r0, 0x80
+ ldrb r1, [r4]
+ ands r0, r1
+ cmp r0, 0
+ beq _082E1346
+ mov r0, r8
+ strb r0, [r4, 0x19]
+ mov r1, r9
+ cmp r1, 0
+ bne _082E1346
+ adds r0, r4, 0
+ bl MP_clear_modM
+_082E1346:
+ subs r5, 0x1
+ adds r4, 0x50
+ lsls r7, 1
+ cmp r5, 0
+ bgt _082E1324
+_082E1350:
+ ldr r0, _082E1364
+ str r0, [r6, 0x34]
+_082E1354:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_082E1364: .4byte 0x68736d53
+ thumb_func_end MPlayLFOSpeedSet
+
+ thumb_func_start ply_memacc
+ply_memacc: @ 82E1368
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ adds r6, r1, 0
+ ldr r1, [r6, 0x40]
+ ldrb r5, [r1]
+ adds r2, r1, 0x1
+ str r2, [r6, 0x40]
+ ldr r0, [r4, 0x18]
+ ldrb r1, [r1, 0x1]
+ adds r3, r1, r0
+ adds r0, r2, 0x1
+ str r0, [r6, 0x40]
+ ldrb r2, [r2, 0x1]
+ adds r0, 0x1
+ str r0, [r6, 0x40]
+ cmp r5, 0x11
+ bls _082E138C
+ b _082E14BA
+_082E138C:
+ lsls r0, r5, 2
+ ldr r1, _082E1398
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_082E1398: .4byte _082E139C
+ .align 2, 0
+_082E139C:
+ .4byte _082E13E4
+ .4byte _082E13E8
+ .4byte _082E13F0
+ .4byte _082E13F8
+ .4byte _082E1402
+ .4byte _082E1410
+ .4byte _082E141E
+ .4byte _082E1426
+ .4byte _082E142E
+ .4byte _082E1436
+ .4byte _082E143E
+ .4byte _082E1446
+ .4byte _082E144E
+ .4byte _082E145C
+ .4byte _082E146A
+ .4byte _082E1478
+ .4byte _082E1486
+ .4byte _082E1494
+_082E13E4:
+ strb r2, [r3]
+ b _082E14BA
+_082E13E8:
+ ldrb r1, [r3]
+ adds r0, r1, r2
+ strb r0, [r3]
+ b _082E14BA
+_082E13F0:
+ ldrb r1, [r3]
+ subs r0, r1, r2
+ strb r0, [r3]
+ b _082E14BA
+_082E13F8:
+ ldr r0, [r4, 0x18]
+ adds r0, r2
+ ldrb r0, [r0]
+ strb r0, [r3]
+ b _082E14BA
+_082E1402:
+ ldr r0, [r4, 0x18]
+ adds r0, r2
+ ldrb r1, [r3]
+ ldrb r0, [r0]
+ adds r0, r1, r0
+ strb r0, [r3]
+ b _082E14BA
+_082E1410:
+ ldr r0, [r4, 0x18]
+ adds r0, r2
+ ldrb r1, [r3]
+ ldrb r0, [r0]
+ subs r0, r1, r0
+ strb r0, [r3]
+ b _082E14BA
+_082E141E:
+ ldrb r3, [r3]
+ cmp r3, r2
+ beq _082E14A0
+ b _082E14B4
+_082E1426:
+ ldrb r3, [r3]
+ cmp r3, r2
+ bne _082E14A0
+ b _082E14B4
+_082E142E:
+ ldrb r3, [r3]
+ cmp r3, r2
+ bhi _082E14A0
+ b _082E14B4
+_082E1436:
+ ldrb r3, [r3]
+ cmp r3, r2
+ bcs _082E14A0
+ b _082E14B4
+_082E143E:
+ ldrb r3, [r3]
+ cmp r3, r2
+ bls _082E14A0
+ b _082E14B4
+_082E1446:
+ ldrb r3, [r3]
+ cmp r3, r2
+ bcc _082E14A0
+ b _082E14B4
+_082E144E:
+ ldr r0, [r4, 0x18]
+ adds r0, r2
+ ldrb r3, [r3]
+ ldrb r0, [r0]
+ cmp r3, r0
+ beq _082E14A0
+ b _082E14B4
+_082E145C:
+ ldr r0, [r4, 0x18]
+ adds r0, r2
+ ldrb r3, [r3]
+ ldrb r0, [r0]
+ cmp r3, r0
+ bne _082E14A0
+ b _082E14B4
+_082E146A:
+ ldr r0, [r4, 0x18]
+ adds r0, r2
+ ldrb r3, [r3]
+ ldrb r0, [r0]
+ cmp r3, r0
+ bhi _082E14A0
+ b _082E14B4
+_082E1478:
+ ldr r0, [r4, 0x18]
+ adds r0, r2
+ ldrb r3, [r3]
+ ldrb r0, [r0]
+ cmp r3, r0
+ bcs _082E14A0
+ b _082E14B4
+_082E1486:
+ ldr r0, [r4, 0x18]
+ adds r0, r2
+ ldrb r3, [r3]
+ ldrb r0, [r0]
+ cmp r3, r0
+ bls _082E14A0
+ b _082E14B4
+_082E1494:
+ ldr r0, [r4, 0x18]
+ adds r0, r2
+ ldrb r3, [r3]
+ ldrb r0, [r0]
+ cmp r3, r0
+ bcs _082E14B4
+_082E14A0:
+ ldr r0, _082E14B0
+ ldr r2, [r0]
+ adds r0, r4, 0
+ adds r1, r6, 0
+ bl _call_via_r2
+ b _082E14BA
+ .align 2, 0
+_082E14B0: .4byte 0x03007464
+_082E14B4:
+ ldr r0, [r6, 0x40]
+ adds r0, 0x4
+ str r0, [r6, 0x40]
+_082E14BA:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end ply_memacc
+
+ thumb_func_start ply_xcmd
+ply_xcmd: @ 82E14C0
+ push {lr}
+ ldr r2, [r1, 0x40]
+ ldrb r3, [r2]
+ adds r2, 0x1
+ str r2, [r1, 0x40]
+ ldr r2, _082E14DC
+ lsls r3, 2
+ adds r3, r2
+ ldr r2, [r3]
+ bl _call_via_r2
+ pop {r0}
+ bx r0
+ .align 2, 0
+_082E14DC: .4byte 0x08675ccc
+ thumb_func_end ply_xcmd
+
+ thumb_func_start ply_xxx
+ply_xxx: @ 82E14E0
+ push {lr}
+ ldr r2, _082E14F0
+ ldr r2, [r2]
+ bl _call_via_r2
+ pop {r0}
+ bx r0
+ .align 2, 0
+_082E14F0: .4byte 0x03007460
+ thumb_func_end ply_xxx
+
+ thumb_func_start ply_xwave
+ply_xwave: @ 82E14F4
+ push {r4,lr}
+ ldr r2, [r1, 0x40]
+ ldr r0, _082E152C
+ ands r4, r0
+ ldrb r0, [r2]
+ orrs r4, r0
+ ldrb r0, [r2, 0x1]
+ lsls r3, r0, 8
+ ldr r0, _082E1530
+ ands r4, r0
+ orrs r4, r3
+ ldrb r0, [r2, 0x2]
+ lsls r3, r0, 16
+ ldr r0, _082E1534
+ ands r4, r0
+ orrs r4, r3
+ ldrb r0, [r2, 0x3]
+ lsls r3, r0, 24
+ ldr r0, _082E1538
+ ands r4, r0
+ orrs r4, r3
+ str r4, [r1, 0x28]
+ adds r2, 0x4
+ str r2, [r1, 0x40]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_082E152C: .4byte 0xffffff00
+_082E1530: .4byte 0xffff00ff
+_082E1534: .4byte 0xff00ffff
+_082E1538: .4byte 0x00ffffff
+ thumb_func_end ply_xwave
+
+ thumb_func_start ply_xtype
+ply_xtype: @ 82E153C
+ ldr r0, [r1, 0x40]
+ ldrb r2, [r0]
+ adds r0, r1, 0
+ adds r0, 0x24
+ strb r2, [r0]
+ ldr r0, [r1, 0x40]
+ adds r0, 0x1
+ str r0, [r1, 0x40]
+ bx lr
+ thumb_func_end ply_xtype
+
+ thumb_func_start ply_xatta
+ply_xatta: @ 82E1550
+ ldr r0, [r1, 0x40]
+ ldrb r2, [r0]
+ adds r0, r1, 0
+ adds r0, 0x2C
+ strb r2, [r0]
+ ldr r0, [r1, 0x40]
+ adds r0, 0x1
+ str r0, [r1, 0x40]
+ bx lr
+ thumb_func_end ply_xatta
+
+ thumb_func_start ply_xdeca
+ply_xdeca: @ 82E1564
+ ldr r0, [r1, 0x40]
+ ldrb r0, [r0]
+ adds r2, r1, 0
+ adds r2, 0x2D
+ strb r0, [r2]
+ ldr r0, [r1, 0x40]
+ adds r0, 0x1
+ str r0, [r1, 0x40]
+ bx lr
+ thumb_func_end ply_xdeca
+
+ thumb_func_start ply_xsust
+ply_xsust: @ 82E1578
+ ldr r0, [r1, 0x40]
+ ldrb r0, [r0]
+ adds r2, r1, 0
+ adds r2, 0x2E
+ strb r0, [r2]
+ ldr r0, [r1, 0x40]
+ adds r0, 0x1
+ str r0, [r1, 0x40]
+ bx lr
+ thumb_func_end ply_xsust
+
+ thumb_func_start ply_xrele
+ply_xrele: @ 82E158C
+ ldr r0, [r1, 0x40]
+ ldrb r0, [r0]
+ adds r2, r1, 0
+ adds r2, 0x2F
+ strb r0, [r2]
+ ldr r0, [r1, 0x40]
+ adds r0, 0x1
+ str r0, [r1, 0x40]
+ bx lr
+ thumb_func_end ply_xrele
+
+ thumb_func_start ply_xiecv
+ply_xiecv: @ 82E15A0
+ ldr r0, [r1, 0x40]
+ ldrb r2, [r0]
+ strb r2, [r1, 0x1E]
+ adds r0, 0x1
+ str r0, [r1, 0x40]
+ bx lr
+ thumb_func_end ply_xiecv
+
+ thumb_func_start ply_xiecl
+ply_xiecl: @ 82E15AC
+ ldr r0, [r1, 0x40]
+ ldrb r2, [r0]
+ strb r2, [r1, 0x1F]
+ adds r0, 0x1
+ str r0, [r1, 0x40]
+ bx lr
+ thumb_func_end ply_xiecl
+
+ thumb_func_start ply_xleng
+ply_xleng: @ 82E15B8
+ ldr r0, [r1, 0x40]
+ ldrb r0, [r0]
+ adds r2, r1, 0
+ adds r2, 0x26
+ strb r0, [r2]
+ ldr r0, [r1, 0x40]
+ adds r0, 0x1
+ str r0, [r1, 0x40]
+ bx lr
+ thumb_func_end ply_xleng
+
+ thumb_func_start ply_xswee
+ply_xswee: @ 82E15CC
+ ldr r0, [r1, 0x40]
+ ldrb r0, [r0]
+ adds r2, r1, 0
+ adds r2, 0x27
+ strb r0, [r2]
+ ldr r0, [r1, 0x40]
+ adds r0, 0x1
+ str r0, [r1, 0x40]
+ bx lr
+ thumb_func_end ply_xswee
+
+ thumb_func_start ply_xcmd0C
+ply_xcmd0C: @ 82E15E0
+ push {r4,lr}
+ adds r3, r1, 0
+ ldr r4, [r3, 0x40]
+ ldr r0, _082E1610
+ ands r2, r0
+ ldrb r0, [r4]
+ orrs r2, r0
+ ldrb r0, [r4, 0x1]
+ lsls r1, r0, 8
+ ldr r0, _082E1614
+ ands r2, r0
+ orrs r2, r1
+ ldrh r1, [r3, 0x3A]
+ lsls r0, r2, 16
+ lsrs r0, 16
+ cmp r1, r0
+ bcs _082E1618
+ adds r0, r1, 0x1
+ strh r0, [r3, 0x3A]
+ subs r0, r4, 0x2
+ str r0, [r3, 0x40]
+ movs r0, 0x1
+ strb r0, [r3, 0x1]
+ b _082E1620
+ .align 2, 0
+_082E1610: .4byte 0xffffff00
+_082E1614: .4byte 0xffff00ff
+_082E1618:
+ movs r0, 0
+ strh r0, [r3, 0x3A]
+ adds r0, r4, 0x2
+ str r0, [r3, 0x40]
+_082E1620:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end ply_xcmd0C
+
+ thumb_func_start ply_xcmd0D
+ply_xcmd0D: @ 82E1628
+ push {r4,lr}
+ ldr r2, [r1, 0x40]
+ ldr r0, _082E1660
+ ands r4, r0
+ ldrb r0, [r2]
+ orrs r4, r0
+ ldrb r0, [r2, 0x1]
+ lsls r3, r0, 8
+ ldr r0, _082E1664
+ ands r4, r0
+ orrs r4, r3
+ ldrb r0, [r2, 0x2]
+ lsls r3, r0, 16
+ ldr r0, _082E1668
+ ands r4, r0
+ orrs r4, r3
+ ldrb r0, [r2, 0x3]
+ lsls r3, r0, 24
+ ldr r0, _082E166C
+ ands r4, r0
+ orrs r4, r3
+ str r4, [r1, 0x3C]
+ adds r2, 0x4
+ str r2, [r1, 0x40]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_082E1660: .4byte 0xffffff00
+_082E1664: .4byte 0xffff00ff
+_082E1668: .4byte 0xff00ffff
+_082E166C: .4byte 0x00ffffff
+ thumb_func_end ply_xcmd0D
+
+ thumb_func_start DummyFunc_rev
+DummyFunc_rev: @ 82E1670
+ bx lr
+ thumb_func_end DummyFunc_rev
+
+ thumb_func_start sub_82E1674
+sub_82E1674: @ 82E1674
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ mov r9, r0
+ movs r6, 0
+ movs r1, 0
+ movs r4, 0
+ ldr r0, _082E1730
+ mov r8, r0
+ ldr r7, _082E1734
+ ldr r0, _082E1738
+ mov r10, r0
+ mov r5, r8
+ adds r5, 0xC
+ movs r3, 0
+ ldr r0, _082E173C
+ mov r12, r0
+_082E169A:
+ mov r0, r12
+ adds r2, r3, r0
+ ldrb r0, [r2]
+ cmp r0, 0
+ bne _082E16B0
+ ldr r0, [r2, 0x20]
+ cmp r0, 0
+ beq _082E16C6
+ ldr r0, [r0, 0x2C]
+ cmp r0, r2
+ bne _082E16C6
+_082E16B0:
+ ldr r0, [r5]
+ cmp r6, r0
+ bcs _082E16BA
+ adds r6, r0, 0
+ adds r1, r4, 0
+_082E16BA:
+ adds r5, 0x40
+ adds r3, 0xA0
+ adds r4, 0x1
+ cmp r4, 0x1
+ ble _082E169A
+ adds r4, r1, 0
+_082E16C6:
+ lsls r5, r4, 6
+ add r5, r8
+ ldr r0, [r5, 0x34]
+ adds r0, 0x1
+ str r0, [r5, 0x34]
+ movs r0, 0x34
+ muls r4, r0
+ adds r6, r4, r7
+ adds r0, r6, 0
+ mov r1, r10
+ movs r2, 0x34
+ bl memcpy
+ adds r0, r7, 0x4
+ adds r0, r4, r0
+ mov r1, r9
+ str r1, [r0]
+ adds r1, r7, 0
+ adds r1, 0x8
+ adds r1, r4, r1
+ adds r0, r7, 0
+ adds r0, 0x11
+ adds r0, r4, r0
+ str r0, [r1]
+ adds r1, r7, 0
+ adds r1, 0xC
+ adds r1, r4, r1
+ adds r0, r7, 0
+ adds r0, 0x18
+ adds r0, r4, r0
+ str r0, [r1]
+ adds r0, r7, 0
+ adds r0, 0x14
+ adds r0, r4, r0
+ adds r1, r7, 0
+ adds r1, 0x1A
+ adds r4, r1
+ str r4, [r0]
+ ldr r0, _082E1740
+ str r0, [r5, 0x34]
+ adds r0, r5, 0
+ adds r1, r6, 0
+ bl MPlayStart_rev01
+ adds r0, r5, 0
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_082E1730: .4byte 0x030073a0
+_082E1734: .4byte 0x03007330
+_082E1738: .4byte 0x030077b0
+_082E173C: .4byte 0x03007670
+_082E1740: .4byte 0x68736d53
+ thumb_func_end sub_82E1674
+
+ thumb_func_start sub_82E1744
+sub_82E1744: @ 82E1744
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _082E1754
+ movs r1, 0x7F
+ ands r0, r1
+ strb r0, [r2, 0x1D]
+ bx lr
+ .align 2, 0
+_082E1754: .4byte 0x030077b0
+ thumb_func_end sub_82E1744
+
+ thumb_func_start sub_82E1758
+sub_82E1758: @ 82E1758
+ ldr r2, _082E176C
+ lsls r0, 24
+ asrs r0, 24
+ adds r0, 0x40
+ movs r1, 0x7F
+ ands r0, r1
+ adds r2, 0x28
+ strb r0, [r2]
+ bx lr
+ .align 2, 0
+_082E176C: .4byte 0x030077b0
+ thumb_func_end sub_82E1758
+
+ thumb_func_start sub_82E1770
+sub_82E1770: @ 82E1770
+ push {r4-r6,lr}
+ lsls r0, 16
+ ldr r3, _082E17A4
+ ldrb r2, [r3, 0x19]
+ ldrb r4, [r3, 0x12]
+ subs r1, r2, r4
+ lsls r1, 24
+ lsrs r1, 24
+ movs r6, 0x80
+ lsls r6, 16
+ adds r0, r6
+ asrs r2, r0, 24
+ movs r5, 0x7F
+ movs r4, 0x7F
+ ands r2, r4
+ movs r6, 0x2A
+ strb r2, [r6, r3]
+ asrs r0, 17
+ ands r0, r4
+ strb r0, [r3, 0x12]
+ adds r1, r0
+ ands r1, r5
+ strb r1, [r3, 0x19]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_082E17A4: .4byte 0x030077b0
+ thumb_func_end sub_82E1770
+
+ thumb_func_start sub_82E17A8
+sub_82E17A8: @ 82E17A8
+ ldr r1, _082E17B0
+ strh r0, [r1, 0x2E]
+ bx lr
+ .align 2, 0
+_082E17B0: .4byte 0x030077b0
+ thumb_func_end sub_82E17A8
+
+ thumb_func_start sub_82E17B4
+sub_82E17B4: @ 82E17B4
+ ldr r1, _082E17BC
+ adds r1, 0x26
+ strb r0, [r1]
+ bx lr
+ .align 2, 0
+_082E17BC: .4byte 0x030077b0
+ thumb_func_end sub_82E17B4
+
+ thumb_func_start sub_82E17C0
+sub_82E17C0: @ 82E17C0
+ ldr r1, _082E17C8
+ str r0, [r1, 0x20]
+ bx lr
+ .align 2, 0
+_082E17C8: .4byte 0x030077b0
+ thumb_func_end sub_82E17C0
+
+ thumb_func_start sub_82E17CC
+sub_82E17CC: @ 82E17CC
+ ldr r1, [r0, 0x2C]
+ ldr r0, [r1, 0x20]
+ cmp r0, 0
+ beq _082E17DE
+ ldr r0, [r0, 0x2C]
+ cmp r0, r1
+ bne _082E17DE
+ movs r0, 0x1
+ b _082E17E0
+_082E17DE:
+ movs r0, 0
+_082E17E0:
+ bx lr
+ thumb_func_end sub_82E17CC
+
+ thumb_func_start sub_82E17E4
+sub_82E17E4: @ 82E17E4
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r0, 0
+ beq _082E1804
+ ldr r2, _082E1800
+ movs r0, 0x2
+ strb r0, [r2]
+ ldrb r3, [r2, 0x12]
+ adds r0, r3, r1
+ movs r1, 0x7F
+ ands r0, r1
+ strb r0, [r2, 0x19]
+ b _082E180A
+ .align 2, 0
+_082E1800: .4byte 0x030077b0
+_082E1804:
+ ldr r1, _082E180C
+ movs r0, 0x1
+ strb r0, [r1]
+_082E180A:
+ bx lr
+ .align 2, 0
+_082E180C: .4byte 0x030077b0
+ thumb_func_end sub_82E17E4
+
+ thumb_func_start sub_82E1810
+sub_82E1810: @ 82E1810
+ ldr r1, _082E1828
+ ldr r2, [r1]
+ cmp r0, 0
+ beq _082E1834
+ ldr r1, _082E182C
+ ldr r3, _082E1830
+ adds r0, r3, 0
+ strh r0, [r1]
+ movs r0, 0xFE
+ ldrb r1, [r2, 0x9]
+ ands r0, r1
+ b _082E1842
+ .align 2, 0
+_082E1828: .4byte 0x03007ff0
+_082E182C: .4byte 0x04000082
+_082E1830: .4byte 0x0000210e
+_082E1834:
+ ldr r1, _082E1848
+ ldr r3, _082E184C
+ adds r0, r3, 0
+ strh r0, [r1]
+ movs r0, 0x1
+ ldrb r1, [r2, 0x9]
+ orrs r0, r1
+_082E1842:
+ strb r0, [r2, 0x9]
+ bx lr
+ .align 2, 0
+_082E1848: .4byte 0x04000082
+_082E184C: .4byte 0x00003302
+ thumb_func_end sub_82E1810
+
+ thumb_func_start sub_82E1850
+sub_82E1850: @ 82E1850
+ ldr r1, _082E1858
+ strb r0, [r1, 0x2]
+ bx lr
+ .align 2, 0
+_082E1858: .4byte 0x030077b0
+ thumb_func_end sub_82E1850
diff --git a/asm/librfu.s b/asm/librfu.s
new file mode 100644
index 000000000..0ba27165b
--- /dev/null
+++ b/asm/librfu.s
@@ -0,0 +1,8917 @@
+ thumb_func_start STWI_init_all
+STWI_init_all: @ 82E2A18
+ push {r4,lr}
+ adds r3, r0, 0
+ lsls r2, 24
+ lsrs r2, 24
+ cmp r2, 0x1
+ bne _082E2A54
+ adds r2, r3, 0
+ adds r2, 0xE8
+ str r2, [r1]
+ ldr r1, _082E2A40
+ ldr r0, _082E2A44
+ str r0, [r1]
+ str r2, [r1, 0x4]
+ ldr r0, _082E2A48
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ ldr r1, _082E2A4C
+ ldr r2, _082E2A50
+ adds r0, r3, r2
+ b _082E2A5E
+ .align 2, 0
+_082E2A40: .4byte 0x040000d4
+_082E2A44: .4byte IntrSIO32
+_082E2A48: .4byte 0x800004b0
+_082E2A4C: .4byte 0x03007868
+_082E2A50: .4byte 0x00000a48
+_082E2A54:
+ ldr r0, _082E2AD8
+ str r0, [r1]
+ ldr r1, _082E2ADC
+ adds r0, r3, 0
+ adds r0, 0xE8
+_082E2A5E:
+ str r0, [r1]
+ adds r2, r1, 0
+ ldr r1, [r2]
+ str r3, [r1, 0x28]
+ adds r0, r3, 0
+ adds r0, 0x74
+ str r0, [r1, 0x24]
+ ldrb r0, [r1, 0x14]
+ movs r4, 0
+ movs r0, 0x1
+ strb r0, [r1, 0x14]
+ ldr r0, [r2]
+ str r4, [r0]
+ strb r4, [r0, 0x4]
+ ldr r0, [r2]
+ strb r4, [r0, 0x5]
+ ldr r0, [r2]
+ strb r4, [r0, 0x7]
+ ldr r0, [r2]
+ strb r4, [r0, 0x8]
+ ldr r0, [r2]
+ strb r4, [r0, 0x9]
+ ldr r0, [r2]
+ str r4, [r0, 0xC]
+ ldrb r1, [r0, 0x10]
+ strb r4, [r0, 0x10]
+ ldr r0, [r2]
+ ldrh r1, [r0, 0x12]
+ movs r1, 0
+ strh r4, [r0, 0x12]
+ strb r1, [r0, 0x15]
+ ldr r0, [r2]
+ adds r0, 0x2C
+ ldrb r2, [r0]
+ strb r1, [r0]
+ ldr r1, _082E2AE0
+ movs r2, 0x80
+ lsls r2, 1
+ adds r0, r2, 0
+ strh r0, [r1]
+ subs r1, 0xC
+ ldr r2, _082E2AE4
+ adds r0, r2, 0
+ strh r0, [r1]
+ bl STWI_init_Callback_M
+ bl STWI_init_Callback_S
+ ldr r3, _082E2AE8
+ ldrh r2, [r3]
+ strh r4, [r3]
+ ldr r4, _082E2AEC
+ ldrh r0, [r4]
+ movs r1, 0x80
+ orrs r0, r1
+ strh r0, [r4]
+ strh r2, [r3]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_082E2AD8: .4byte IntrSIO32
+_082E2ADC: .4byte 0x03007868
+_082E2AE0: .4byte 0x04000134
+_082E2AE4: .4byte 0x00005003
+_082E2AE8: .4byte 0x04000208
+_082E2AEC: .4byte 0x04000200
+ thumb_func_end STWI_init_all
+
+ thumb_func_start STWI_init_timer
+STWI_init_timer: @ 82E2AF0
+ push {r4,r5,lr}
+ ldr r2, _082E2B1C
+ str r2, [r0]
+ ldr r5, _082E2B20
+ ldr r0, [r5]
+ movs r4, 0
+ strb r1, [r0, 0xA]
+ ldr r3, _082E2B24
+ ldrh r2, [r3]
+ strh r4, [r3]
+ ldr r4, _082E2B28
+ ldr r1, [r5]
+ movs r0, 0x8
+ ldrb r1, [r1, 0xA]
+ lsls r0, r1
+ ldrh r1, [r4]
+ orrs r0, r1
+ strh r0, [r4]
+ strh r2, [r3]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_082E2B1C: .4byte STWI_intr_timer + 1
+_082E2B20: .4byte 0x03007868
+_082E2B24: .4byte 0x04000208
+_082E2B28: .4byte 0x04000200
+ thumb_func_end STWI_init_timer
+
+ thumb_func_start AgbRFU_SoftReset
+AgbRFU_SoftReset: @ 82E2B2C
+ push {r4,r5,lr}
+ ldr r5, _082E2BC4
+ movs r1, 0x80
+ lsls r1, 8
+ adds r0, r1, 0
+ strh r0, [r5]
+ ldr r2, _082E2BC8
+ adds r0, r2, 0
+ strh r0, [r5]
+ ldr r1, _082E2BCC
+ ldr r0, [r1]
+ ldrb r0, [r0, 0xA]
+ lsls r0, 2
+ ldr r3, _082E2BD0
+ adds r2, r0, r3
+ ldr r4, _082E2BD4
+ adds r3, r0, r4
+ movs r0, 0
+ strh r0, [r3]
+ strh r0, [r2]
+ movs r0, 0x83
+ strh r0, [r3]
+ ldrh r0, [r2]
+ adds r4, r1, 0
+ cmp r0, 0x11
+ bhi _082E2B6C
+ ldr r0, _082E2BD8
+ adds r1, r0, 0
+_082E2B64:
+ strh r1, [r5]
+ ldrh r0, [r2]
+ cmp r0, 0x11
+ bls _082E2B64
+_082E2B6C:
+ movs r0, 0x3
+ strh r0, [r3]
+ ldr r1, _082E2BC4
+ ldr r2, _082E2BC8
+ adds r0, r2, 0
+ strh r0, [r1]
+ subs r1, 0xC
+ ldr r3, _082E2BDC
+ adds r0, r3, 0
+ strh r0, [r1]
+ ldr r0, [r4]
+ movs r2, 0
+ str r2, [r0]
+ strb r2, [r0, 0x4]
+ ldr r0, [r4]
+ strb r2, [r0, 0x5]
+ ldr r0, [r4]
+ strb r2, [r0, 0x6]
+ ldr r0, [r4]
+ strb r2, [r0, 0x7]
+ ldr r0, [r4]
+ strb r2, [r0, 0x8]
+ ldr r0, [r4]
+ strb r2, [r0, 0x9]
+ ldr r0, [r4]
+ str r2, [r0, 0xC]
+ ldrb r1, [r0, 0x10]
+ strb r2, [r0, 0x10]
+ ldr r1, [r4]
+ ldrh r0, [r1, 0x12]
+ movs r3, 0
+ strh r2, [r1, 0x12]
+ ldrb r0, [r1, 0x14]
+ movs r0, 0x1
+ strb r0, [r1, 0x14]
+ ldr r0, [r4]
+ strb r3, [r0, 0x15]
+ ldr r0, [r4]
+ adds r0, 0x2C
+ ldrb r1, [r0]
+ strb r3, [r0]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_082E2BC4: .4byte 0x04000134
+_082E2BC8: .4byte 0x000080a0
+_082E2BCC: .4byte 0x03007868
+_082E2BD0: .4byte 0x04000100
+_082E2BD4: .4byte 0x04000102
+_082E2BD8: .4byte 0x000080a2
+_082E2BDC: .4byte 0x00005003
+ thumb_func_end AgbRFU_SoftReset
+
+ thumb_func_start STWI_set_MS_mode
+STWI_set_MS_mode: @ 82E2BE0
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _082E2BF0
+ ldr r1, [r1]
+ ldrb r2, [r1, 0x14]
+ strb r0, [r1, 0x14]
+ bx lr
+ .align 2, 0
+_082E2BF0: .4byte 0x03007868
+ thumb_func_end STWI_set_MS_mode
+
+ thumb_func_start STWI_read_status
+STWI_read_status: @ 82E2BF4
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ adds r1, r0, 0
+ cmp r0, 0x1
+ beq _082E2C20
+ cmp r0, 0x1
+ bgt _082E2C0A
+ cmp r0, 0
+ beq _082E2C14
+ b _082E2C48
+_082E2C0A:
+ cmp r1, 0x2
+ beq _082E2C2C
+ cmp r1, 0x3
+ beq _082E2C3C
+ b _082E2C48
+_082E2C14:
+ ldr r0, _082E2C1C
+ ldr r0, [r0]
+ ldrh r0, [r0, 0x12]
+ b _082E2C4A
+ .align 2, 0
+_082E2C1C: .4byte 0x03007868
+_082E2C20:
+ ldr r0, _082E2C28
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x14]
+ b _082E2C4A
+ .align 2, 0
+_082E2C28: .4byte 0x03007868
+_082E2C2C:
+ ldr r0, _082E2C38
+ ldr r0, [r0]
+ ldr r0, [r0]
+ lsls r0, 16
+ lsrs r0, 16
+ b _082E2C4A
+ .align 2, 0
+_082E2C38: .4byte 0x03007868
+_082E2C3C:
+ ldr r0, _082E2C44
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x6]
+ b _082E2C4A
+ .align 2, 0
+_082E2C44: .4byte 0x03007868
+_082E2C48:
+ ldr r0, _082E2C50
+_082E2C4A:
+ pop {r1}
+ bx r1
+ .align 2, 0
+_082E2C50: .4byte 0x0000ffff
+ thumb_func_end STWI_read_status
+
+ thumb_func_start STWI_init_Callback_M
+STWI_init_Callback_M: @ 82E2C54
+ push {lr}
+ movs r0, 0
+ bl STWI_set_Callback_M
+ pop {r0}
+ bx r0
+ thumb_func_end STWI_init_Callback_M
+
+ thumb_func_start STWI_init_Callback_S
+STWI_init_Callback_S: @ 82E2C60
+ push {lr}
+ movs r0, 0
+ bl STWI_set_Callback_S
+ pop {r0}
+ bx r0
+ thumb_func_end STWI_init_Callback_S
+
+ thumb_func_start STWI_set_Callback_M
+STWI_set_Callback_M: @ 82E2C6C
+ ldr r1, _082E2C74
+ ldr r1, [r1]
+ str r0, [r1, 0x18]
+ bx lr
+ .align 2, 0
+_082E2C74: .4byte 0x03007868
+ thumb_func_end STWI_set_Callback_M
+
+ thumb_func_start STWI_set_Callback_S
+STWI_set_Callback_S: @ 82E2C78
+ ldr r1, _082E2C80
+ ldr r1, [r1]
+ str r0, [r1, 0x1C]
+ bx lr
+ .align 2, 0
+_082E2C80: .4byte 0x03007868
+ thumb_func_end STWI_set_Callback_S
+
+ thumb_func_start STWI_set_Callback_ID
+STWI_set_Callback_ID: @ 82E2C84
+ ldr r1, _082E2C8C
+ ldr r1, [r1]
+ str r0, [r1, 0x20]
+ bx lr
+ .align 2, 0
+_082E2C8C: .4byte 0x03007868
+ thumb_func_end STWI_set_Callback_ID
+
+ thumb_func_start STWI_poll_CommandEnd
+STWI_poll_CommandEnd: @ 82E2C90
+ push {lr}
+ ldr r0, _082E2CB4
+ ldr r1, [r0]
+ adds r2, r1, 0
+ adds r2, 0x2C
+ ldrb r1, [r2]
+ adds r3, r0, 0
+ cmp r1, 0x1
+ bne _082E2CAA
+ adds r1, r2, 0
+_082E2CA4:
+ ldrb r0, [r1]
+ cmp r0, 0x1
+ beq _082E2CA4
+_082E2CAA:
+ ldr r0, [r3]
+ ldrh r0, [r0, 0x12]
+ pop {r1}
+ bx r1
+ .align 2, 0
+_082E2CB4: .4byte 0x03007868
+ thumb_func_end STWI_poll_CommandEnd
+
+ thumb_func_start STWI_send_ResetREQ
+STWI_send_ResetREQ: @ 82E2CB8
+ push {lr}
+ movs r0, 0x10
+ bl STWI_init
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, 0
+ bne _082E2CD2
+ ldr r0, _082E2CD8
+ ldr r0, [r0]
+ strb r1, [r0, 0x4]
+ bl STWI_start_Command
+_082E2CD2:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_082E2CD8: .4byte 0x03007868
+ thumb_func_end STWI_send_ResetREQ
+
+ thumb_func_start STWI_send_LinkStatusREQ
+STWI_send_LinkStatusREQ: @ 82E2CDC
+ push {lr}
+ movs r0, 0x11
+ bl STWI_init
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, 0
+ bne _082E2CF6
+ ldr r0, _082E2CFC
+ ldr r0, [r0]
+ strb r1, [r0, 0x4]
+ bl STWI_start_Command
+_082E2CF6:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_082E2CFC: .4byte 0x03007868
+ thumb_func_end STWI_send_LinkStatusREQ
+
+ thumb_func_start STWI_send_VersionStatusREQ
+STWI_send_VersionStatusREQ: @ 82E2D00
+ push {lr}
+ movs r0, 0x12
+ bl STWI_init
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, 0
+ bne _082E2D1A
+ ldr r0, _082E2D20
+ ldr r0, [r0]
+ strb r1, [r0, 0x4]
+ bl STWI_start_Command
+_082E2D1A:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_082E2D20: .4byte 0x03007868
+ thumb_func_end STWI_send_VersionStatusREQ
+
+ thumb_func_start STWI_send_SystemStatusREQ
+STWI_send_SystemStatusREQ: @ 82E2D24
+ push {lr}
+ movs r0, 0x13
+ bl STWI_init
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, 0
+ bne _082E2D3E
+ ldr r0, _082E2D44
+ ldr r0, [r0]
+ strb r1, [r0, 0x4]
+ bl STWI_start_Command
+_082E2D3E:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_082E2D44: .4byte 0x03007868
+ thumb_func_end STWI_send_SystemStatusREQ
+
+ thumb_func_start STWI_send_SlotStatusREQ
+STWI_send_SlotStatusREQ: @ 82E2D48
+ push {lr}
+ movs r0, 0x14
+ bl STWI_init
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, 0
+ bne _082E2D62
+ ldr r0, _082E2D68
+ ldr r0, [r0]
+ strb r1, [r0, 0x4]
+ bl STWI_start_Command
+_082E2D62:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_082E2D68: .4byte 0x03007868
+ thumb_func_end STWI_send_SlotStatusREQ
+
+ thumb_func_start STWI_send_ConfigStatusREQ
+STWI_send_ConfigStatusREQ: @ 82E2D6C
+ push {lr}
+ movs r0, 0x15
+ bl STWI_init
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, 0
+ bne _082E2D86
+ ldr r0, _082E2D8C
+ ldr r0, [r0]
+ strb r1, [r0, 0x4]
+ bl STWI_start_Command
+_082E2D86:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_082E2D8C: .4byte 0x03007868
+ thumb_func_end STWI_send_ConfigStatusREQ
+
+ thumb_func_start STWI_send_GameConfigREQ
+STWI_send_GameConfigREQ: @ 82E2D90
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ adds r5, r1, 0
+ movs r0, 0x16
+ bl STWI_init
+ lsls r0, 16
+ cmp r0, 0
+ bne _082E2DDC
+ ldr r2, _082E2DE4
+ ldr r1, [r2]
+ movs r0, 0x6
+ strb r0, [r1, 0x4]
+ ldr r0, [r2]
+ ldr r1, [r0, 0x24]
+ adds r1, 0x4
+ ldrh r0, [r4]
+ strh r0, [r1]
+ adds r1, 0x2
+ adds r4, 0x2
+ movs r2, 0xD
+_082E2DBA:
+ ldrb r0, [r4]
+ strb r0, [r1]
+ adds r1, 0x1
+ adds r4, 0x1
+ subs r2, 0x1
+ cmp r2, 0
+ bge _082E2DBA
+ movs r2, 0x7
+_082E2DCA:
+ ldrb r0, [r5]
+ strb r0, [r1]
+ adds r1, 0x1
+ adds r5, 0x1
+ subs r2, 0x1
+ cmp r2, 0
+ bge _082E2DCA
+ bl STWI_start_Command
+_082E2DDC:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_082E2DE4: .4byte 0x03007868
+ thumb_func_end STWI_send_GameConfigREQ
+
+ thumb_func_start STWI_send_SystemConfigREQ
+STWI_send_SystemConfigREQ: @ 82E2DE8
+ push {r4-r6,lr}
+ lsls r0, 16
+ lsrs r6, r0, 16
+ lsls r1, 24
+ lsrs r5, r1, 24
+ lsls r2, 24
+ lsrs r4, r2, 24
+ movs r0, 0x17
+ bl STWI_init
+ lsls r0, 16
+ cmp r0, 0
+ bne _082E2E1E
+ ldr r2, _082E2E24
+ ldr r1, [r2]
+ movs r0, 0x1
+ strb r0, [r1, 0x4]
+ ldr r0, [r2]
+ ldr r0, [r0, 0x24]
+ adds r0, 0x4
+ strb r4, [r0]
+ adds r0, 0x1
+ strb r5, [r0]
+ adds r0, 0x1
+ strh r6, [r0]
+ bl STWI_start_Command
+_082E2E1E:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_082E2E24: .4byte 0x03007868
+ thumb_func_end STWI_send_SystemConfigREQ
+
+ thumb_func_start STWI_send_SC_StartREQ
+STWI_send_SC_StartREQ: @ 82E2E28
+ push {lr}
+ movs r0, 0x19
+ bl STWI_init
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, 0
+ bne _082E2E42
+ ldr r0, _082E2E48
+ ldr r0, [r0]
+ strb r1, [r0, 0x4]
+ bl STWI_start_Command
+_082E2E42:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_082E2E48: .4byte 0x03007868
+ thumb_func_end STWI_send_SC_StartREQ
+
+ thumb_func_start STWI_send_SC_PollingREQ
+STWI_send_SC_PollingREQ: @ 82E2E4C
+ push {lr}
+ movs r0, 0x1A
+ bl STWI_init
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, 0
+ bne _082E2E66
+ ldr r0, _082E2E6C
+ ldr r0, [r0]
+ strb r1, [r0, 0x4]
+ bl STWI_start_Command
+_082E2E66:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_082E2E6C: .4byte 0x03007868
+ thumb_func_end STWI_send_SC_PollingREQ
+
+ thumb_func_start STWI_send_SC_EndREQ
+STWI_send_SC_EndREQ: @ 82E2E70
+ push {lr}
+ movs r0, 0x1B
+ bl STWI_init
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, 0
+ bne _082E2E8A
+ ldr r0, _082E2E90
+ ldr r0, [r0]
+ strb r1, [r0, 0x4]
+ bl STWI_start_Command
+_082E2E8A:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_082E2E90: .4byte 0x03007868
+ thumb_func_end STWI_send_SC_EndREQ
+
+ thumb_func_start STWI_send_SP_StartREQ
+STWI_send_SP_StartREQ: @ 82E2E94
+ push {lr}
+ movs r0, 0x1C
+ bl STWI_init
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, 0
+ bne _082E2EAE
+ ldr r0, _082E2EB4
+ ldr r0, [r0]
+ strb r1, [r0, 0x4]
+ bl STWI_start_Command
+_082E2EAE:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_082E2EB4: .4byte 0x03007868
+ thumb_func_end STWI_send_SP_StartREQ
+
+ thumb_func_start STWI_send_SP_PollingREQ
+STWI_send_SP_PollingREQ: @ 82E2EB8
+ push {lr}
+ movs r0, 0x1D
+ bl STWI_init
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, 0
+ bne _082E2ED2
+ ldr r0, _082E2ED8
+ ldr r0, [r0]
+ strb r1, [r0, 0x4]
+ bl STWI_start_Command
+_082E2ED2:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_082E2ED8: .4byte 0x03007868
+ thumb_func_end STWI_send_SP_PollingREQ
+
+ thumb_func_start STWI_send_SP_EndREQ
+STWI_send_SP_EndREQ: @ 82E2EDC
+ push {lr}
+ movs r0, 0x1E
+ bl STWI_init
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, 0
+ bne _082E2EF6
+ ldr r0, _082E2EFC
+ ldr r0, [r0]
+ strb r1, [r0, 0x4]
+ bl STWI_start_Command
+_082E2EF6:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_082E2EFC: .4byte 0x03007868
+ thumb_func_end STWI_send_SP_EndREQ
+
+ thumb_func_start STWI_send_CP_StartREQ
+STWI_send_CP_StartREQ: @ 82E2F00
+ push {r4,lr}
+ lsls r0, 16
+ lsrs r4, r0, 16
+ movs r0, 0x1F
+ bl STWI_init
+ lsls r0, 16
+ cmp r0, 0
+ bne _082E2F24
+ ldr r2, _082E2F2C
+ ldr r1, [r2]
+ movs r0, 0x1
+ strb r0, [r1, 0x4]
+ ldr r0, [r2]
+ ldr r0, [r0, 0x24]
+ str r4, [r0, 0x4]
+ bl STWI_start_Command
+_082E2F24:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_082E2F2C: .4byte 0x03007868
+ thumb_func_end STWI_send_CP_StartREQ
+
+ thumb_func_start STWI_send_CP_PollingREQ
+STWI_send_CP_PollingREQ: @ 82E2F30
+ push {lr}
+ movs r0, 0x20
+ bl STWI_init
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, 0
+ bne _082E2F4A
+ ldr r0, _082E2F50
+ ldr r0, [r0]
+ strb r1, [r0, 0x4]
+ bl STWI_start_Command
+_082E2F4A:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_082E2F50: .4byte 0x03007868
+ thumb_func_end STWI_send_CP_PollingREQ
+
+ thumb_func_start STWI_send_CP_EndREQ
+STWI_send_CP_EndREQ: @ 82E2F54
+ push {lr}
+ movs r0, 0x21
+ bl STWI_init
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, 0
+ bne _082E2F6E
+ ldr r0, _082E2F74
+ ldr r0, [r0]
+ strb r1, [r0, 0x4]
+ bl STWI_start_Command
+_082E2F6E:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_082E2F74: .4byte 0x03007868
+ thumb_func_end STWI_send_CP_EndREQ
+
+ thumb_func_start STWI_send_DataTxREQ
+STWI_send_DataTxREQ: @ 82E2F78
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ lsls r4, r1, 24
+ lsrs r5, r4, 24
+ movs r0, 0x24
+ bl STWI_init
+ lsls r0, 16
+ cmp r0, 0
+ bne _082E2FB6
+ lsrs r2, r4, 26
+ movs r0, 0x3
+ ands r0, r5
+ cmp r0, 0
+ beq _082E2F98
+ adds r2, 0x1
+_082E2F98:
+ ldr r1, _082E2FBC
+ ldr r0, [r1]
+ strb r2, [r0, 0x4]
+ ldr r0, [r1]
+ ldr r1, [r0, 0x24]
+ adds r1, 0x4
+ ldrb r2, [r0, 0x4]
+ movs r0, 0x80
+ lsls r0, 19
+ orrs r2, r0
+ adds r0, r6, 0
+ bl CpuSet
+ bl STWI_start_Command
+_082E2FB6:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_082E2FBC: .4byte 0x03007868
+ thumb_func_end STWI_send_DataTxREQ
+
+ thumb_func_start STWI_send_DataTxAndChangeREQ
+STWI_send_DataTxAndChangeREQ: @ 82E2FC0
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ lsls r4, r1, 24
+ lsrs r5, r4, 24
+ movs r0, 0x25
+ bl STWI_init
+ lsls r0, 16
+ cmp r0, 0
+ bne _082E2FFE
+ lsrs r2, r4, 26
+ movs r0, 0x3
+ ands r0, r5
+ cmp r0, 0
+ beq _082E2FE0
+ adds r2, 0x1
+_082E2FE0:
+ ldr r1, _082E3004
+ ldr r0, [r1]
+ strb r2, [r0, 0x4]
+ ldr r0, [r1]
+ ldr r1, [r0, 0x24]
+ adds r1, 0x4
+ ldrb r2, [r0, 0x4]
+ movs r0, 0x80
+ lsls r0, 19
+ orrs r2, r0
+ adds r0, r6, 0
+ bl CpuSet
+ bl STWI_start_Command
+_082E2FFE:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_082E3004: .4byte 0x03007868
+ thumb_func_end STWI_send_DataTxAndChangeREQ
+
+ thumb_func_start STWI_send_DataRxREQ
+STWI_send_DataRxREQ: @ 82E3008
+ push {lr}
+ movs r0, 0x26
+ bl STWI_init
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, 0
+ bne _082E3022
+ ldr r0, _082E3028
+ ldr r0, [r0]
+ strb r1, [r0, 0x4]
+ bl STWI_start_Command
+_082E3022:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_082E3028: .4byte 0x03007868
+ thumb_func_end STWI_send_DataRxREQ
+
+ thumb_func_start STWI_send_MS_ChangeREQ
+STWI_send_MS_ChangeREQ: @ 82E302C
+ push {lr}
+ movs r0, 0x27
+ bl STWI_init
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, 0
+ bne _082E3046
+ ldr r0, _082E304C
+ ldr r0, [r0]
+ strb r1, [r0, 0x4]
+ bl STWI_start_Command
+_082E3046:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_082E304C: .4byte 0x03007868
+ thumb_func_end STWI_send_MS_ChangeREQ
+
+ thumb_func_start STWI_send_DataReadyAndChangeREQ
+STWI_send_DataReadyAndChangeREQ: @ 82E3050
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r5, r4, 0
+ movs r0, 0x28
+ bl STWI_init
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r3, 0
+ bne _082E3096
+ cmp r4, 0
+ bne _082E3078
+ ldr r0, _082E3074
+ ldr r0, [r0]
+ strb r3, [r0, 0x4]
+ b _082E3092
+ .align 2, 0
+_082E3074: .4byte 0x03007868
+_082E3078:
+ ldr r2, _082E309C
+ ldr r1, [r2]
+ movs r0, 0x1
+ strb r0, [r1, 0x4]
+ ldr r0, [r2]
+ ldr r0, [r0, 0x24]
+ adds r0, 0x4
+ strb r5, [r0]
+ adds r0, 0x1
+ strb r3, [r0]
+ adds r0, 0x1
+ strb r3, [r0]
+ strb r3, [r0, 0x1]
+_082E3092:
+ bl STWI_start_Command
+_082E3096:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_082E309C: .4byte 0x03007868
+ thumb_func_end STWI_send_DataReadyAndChangeREQ
+
+ thumb_func_start STWI_send_DisconnectedAndChangeREQ
+STWI_send_DisconnectedAndChangeREQ: @ 82E30A0
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r1, 24
+ lsrs r5, r1, 24
+ movs r0, 0x29
+ bl STWI_init
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r3, 0
+ bne _082E30D6
+ ldr r2, _082E30DC
+ ldr r1, [r2]
+ movs r0, 0x1
+ strb r0, [r1, 0x4]
+ ldr r0, [r2]
+ ldr r0, [r0, 0x24]
+ adds r0, 0x4
+ strb r4, [r0]
+ adds r0, 0x1
+ strb r5, [r0]
+ adds r0, 0x1
+ strb r3, [r0]
+ strb r3, [r0, 0x1]
+ bl STWI_start_Command
+_082E30D6:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_082E30DC: .4byte 0x03007868
+ thumb_func_end STWI_send_DisconnectedAndChangeREQ
+
+ thumb_func_start STWI_send_ResumeRetransmitAndChangeREQ
+STWI_send_ResumeRetransmitAndChangeREQ: @ 82E30E0
+ push {lr}
+ movs r0, 0x37
+ bl STWI_init
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, 0
+ bne _082E30FA
+ ldr r0, _082E3100
+ ldr r0, [r0]
+ strb r1, [r0, 0x4]
+ bl STWI_start_Command
+_082E30FA:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_082E3100: .4byte 0x03007868
+ thumb_func_end STWI_send_ResumeRetransmitAndChangeREQ
+
+ thumb_func_start STWI_send_DisconnectREQ
+STWI_send_DisconnectREQ: @ 82E3104
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ movs r0, 0x30
+ bl STWI_init
+ lsls r0, 16
+ cmp r0, 0
+ bne _082E3128
+ ldr r2, _082E3130
+ ldr r1, [r2]
+ movs r0, 0x1
+ strb r0, [r1, 0x4]
+ ldr r0, [r2]
+ ldr r0, [r0, 0x24]
+ str r4, [r0, 0x4]
+ bl STWI_start_Command
+_082E3128:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_082E3130: .4byte 0x03007868
+ thumb_func_end STWI_send_DisconnectREQ
+
+ thumb_func_start STWI_send_TestModeREQ
+STWI_send_TestModeREQ: @ 82E3134
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r1, 24
+ lsrs r4, r1, 24
+ movs r0, 0x31
+ bl STWI_init
+ lsls r0, 16
+ cmp r0, 0
+ bne _082E3160
+ ldr r2, _082E3168
+ ldr r1, [r2]
+ movs r0, 0x1
+ strb r0, [r1, 0x4]
+ ldr r0, [r2]
+ ldr r1, [r0, 0x24]
+ lsls r0, r4, 8
+ orrs r0, r5
+ str r0, [r1, 0x4]
+ bl STWI_start_Command
+_082E3160:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_082E3168: .4byte 0x03007868
+ thumb_func_end STWI_send_TestModeREQ
+
+ thumb_func_start STWI_send_CPR_StartREQ
+STWI_send_CPR_StartREQ: @ 82E316C
+ push {r4-r6,lr}
+ lsls r0, 16
+ lsrs r5, r0, 16
+ lsls r1, 16
+ lsrs r4, r1, 16
+ lsls r2, 24
+ lsrs r6, r2, 24
+ movs r0, 0x32
+ bl STWI_init
+ lsls r0, 16
+ cmp r0, 0
+ bne _082E319E
+ ldr r2, _082E31A4
+ ldr r1, [r2]
+ movs r0, 0x2
+ strb r0, [r1, 0x4]
+ lsls r0, r5, 16
+ orrs r0, r4
+ ldr r1, [r2]
+ ldr r1, [r1, 0x24]
+ str r0, [r1, 0x4]
+ str r6, [r1, 0x8]
+ bl STWI_start_Command
+_082E319E:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_082E31A4: .4byte 0x03007868
+ thumb_func_end STWI_send_CPR_StartREQ
+
+ thumb_func_start STWI_send_CPR_PollingREQ
+STWI_send_CPR_PollingREQ: @ 82E31A8
+ push {lr}
+ movs r0, 0x33
+ bl STWI_init
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, 0
+ bne _082E31C2
+ ldr r0, _082E31C8
+ ldr r0, [r0]
+ strb r1, [r0, 0x4]
+ bl STWI_start_Command
+_082E31C2:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_082E31C8: .4byte 0x03007868
+ thumb_func_end STWI_send_CPR_PollingREQ
+
+ thumb_func_start STWI_send_CPR_EndREQ
+STWI_send_CPR_EndREQ: @ 82E31CC
+ push {lr}
+ movs r0, 0x34
+ bl STWI_init
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, 0
+ bne _082E31E6
+ ldr r0, _082E31EC
+ ldr r0, [r0]
+ strb r1, [r0, 0x4]
+ bl STWI_start_Command
+_082E31E6:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_082E31EC: .4byte 0x03007868
+ thumb_func_end STWI_send_CPR_EndREQ
+
+ thumb_func_start STWI_send_StopModeREQ
+STWI_send_StopModeREQ: @ 82E31F0
+ push {lr}
+ movs r0, 0x3D
+ bl STWI_init
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, 0
+ bne _082E320A
+ ldr r0, _082E3210
+ ldr r0, [r0]
+ strb r1, [r0, 0x4]
+ bl STWI_start_Command
+_082E320A:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_082E3210: .4byte 0x03007868
+ thumb_func_end STWI_send_StopModeREQ
+
+ thumb_func_start STWI_intr_timer
+STWI_intr_timer: @ 82E3214
+ push {r4,lr}
+ ldr r4, _082E322C
+ ldr r1, [r4]
+ ldr r0, [r1, 0xC]
+ cmp r0, 0x2
+ beq _082E323A
+ cmp r0, 0x2
+ bgt _082E3230
+ cmp r0, 0x1
+ beq _082E3248
+ b _082E3270
+ .align 2, 0
+_082E322C: .4byte 0x03007868
+_082E3230:
+ cmp r0, 0x3
+ beq _082E3252
+ cmp r0, 0x4
+ beq _082E3248
+ b _082E3270
+_082E323A:
+ ldrb r0, [r1, 0x10]
+ movs r0, 0x1
+ strb r0, [r1, 0x10]
+ movs r0, 0x32
+ bl STWI_set_timer
+ b _082E3270
+_082E3248:
+ bl STWI_stop_timer
+ bl STWI_restart_Command
+ b _082E3270
+_082E3252:
+ ldrb r0, [r1, 0x10]
+ movs r0, 0x1
+ strb r0, [r1, 0x10]
+ bl STWI_stop_timer
+ bl STWI_reset_ClockCounter
+ ldr r0, [r4]
+ ldr r2, [r0, 0x18]
+ cmp r2, 0
+ beq _082E3270
+ movs r0, 0xFF
+ movs r1, 0
+ bl _call_via_r2
+_082E3270:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end STWI_intr_timer
+
+ thumb_func_start STWI_set_timer
+STWI_set_timer: @ 82E3278
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r3, r0, 24
+ adds r5, r3, 0
+ ldr r2, _082E32A8
+ ldr r0, [r2]
+ ldrb r0, [r0, 0xA]
+ lsls r0, 2
+ ldr r1, _082E32AC
+ adds r4, r0, r1
+ adds r1, 0x2
+ adds r7, r0, r1
+ ldr r1, _082E32B0
+ movs r0, 0
+ strh r0, [r1]
+ adds r6, r2, 0
+ cmp r3, 0x50
+ beq _082E32D0
+ cmp r3, 0x50
+ bgt _082E32B4
+ cmp r3, 0x32
+ beq _082E32BE
+ b _082E32FC
+ .align 2, 0
+_082E32A8: .4byte 0x03007868
+_082E32AC: .4byte 0x04000100
+_082E32B0: .4byte 0x04000208
+_082E32B4:
+ cmp r5, 0x64
+ beq _082E32E0
+ cmp r5, 0x82
+ beq _082E32F0
+ b _082E32FC
+_082E32BE:
+ ldr r1, _082E32CC
+ adds r0, r1, 0
+ strh r0, [r4]
+ ldr r1, [r6]
+ movs r0, 0x1
+ b _082E32FA
+ .align 2, 0
+_082E32CC: .4byte 0x0000fccb
+_082E32D0:
+ ldr r1, _082E32DC
+ adds r0, r1, 0
+ strh r0, [r4]
+ ldr r1, [r6]
+ movs r0, 0x2
+ b _082E32FA
+ .align 2, 0
+_082E32DC: .4byte 0x0000fae0
+_082E32E0:
+ ldr r1, _082E32EC
+ adds r0, r1, 0
+ strh r0, [r4]
+ ldr r1, [r6]
+ movs r0, 0x3
+ b _082E32FA
+ .align 2, 0
+_082E32EC: .4byte 0x0000f996
+_082E32F0:
+ ldr r1, _082E3318
+ adds r0, r1, 0
+ strh r0, [r4]
+ ldr r1, [r6]
+ movs r0, 0x4
+_082E32FA:
+ str r0, [r1, 0xC]
+_082E32FC:
+ movs r0, 0xC3
+ strh r0, [r7]
+ ldr r2, _082E331C
+ ldr r1, [r6]
+ movs r0, 0x8
+ ldrb r1, [r1, 0xA]
+ lsls r0, r1
+ strh r0, [r2]
+ ldr r1, _082E3320
+ movs r0, 0x1
+ strh r0, [r1]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_082E3318: .4byte 0x0000f7ad
+_082E331C: .4byte 0x04000202
+_082E3320: .4byte 0x04000208
+ thumb_func_end STWI_set_timer
+
+ thumb_func_start STWI_stop_timer
+STWI_stop_timer: @ 82E3324
+ ldr r2, _082E3344
+ ldr r0, [r2]
+ movs r1, 0
+ str r1, [r0, 0xC]
+ ldrb r0, [r0, 0xA]
+ lsls r0, 2
+ ldr r3, _082E3348
+ adds r0, r3
+ strh r1, [r0]
+ ldr r0, [r2]
+ ldrb r0, [r0, 0xA]
+ lsls r0, 2
+ ldr r2, _082E334C
+ adds r0, r2
+ strh r1, [r0]
+ bx lr
+ .align 2, 0
+_082E3344: .4byte 0x03007868
+_082E3348: .4byte 0x04000100
+_082E334C: .4byte 0x04000102
+ thumb_func_end STWI_stop_timer
+
+ thumb_func_start STWI_init
+STWI_init: @ 82E3350
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r6, r5, 0
+ ldr r0, _082E337C
+ ldrh r0, [r0]
+ cmp r0, 0
+ bne _082E3384
+ ldr r0, _082E3380
+ ldr r1, [r0]
+ ldrh r0, [r1, 0x12]
+ movs r0, 0x6
+ strh r0, [r1, 0x12]
+ ldr r2, [r1, 0x18]
+ cmp r2, 0
+ beq _082E33CE
+ ldrh r1, [r1, 0x12]
+ adds r0, r5, 0
+ bl _call_via_r2
+ b _082E33CE
+ .align 2, 0
+_082E337C: .4byte 0x04000208
+_082E3380: .4byte 0x03007868
+_082E3384:
+ ldr r4, _082E33B0
+ ldr r2, [r4]
+ adds r3, r2, 0
+ adds r3, 0x2C
+ ldrb r0, [r3]
+ cmp r0, 0x1
+ bne _082E33B4
+ ldrh r0, [r2, 0x12]
+ movs r1, 0
+ movs r0, 0x2
+ strh r0, [r2, 0x12]
+ ldrb r0, [r3]
+ strb r1, [r3]
+ ldr r0, [r4]
+ ldr r2, [r0, 0x18]
+ cmp r2, 0
+ beq _082E33CE
+ ldrh r1, [r0, 0x12]
+ adds r0, r5, 0
+ bl _call_via_r2
+ b _082E33CE
+ .align 2, 0
+_082E33B0: .4byte 0x03007868
+_082E33B4:
+ ldrb r0, [r2, 0x14]
+ cmp r0, 0
+ bne _082E33D2
+ ldrh r0, [r2, 0x12]
+ movs r0, 0x4
+ strh r0, [r2, 0x12]
+ ldr r3, [r2, 0x18]
+ cmp r3, 0
+ beq _082E33CE
+ ldrh r1, [r2, 0x12]
+ adds r0, r5, 0
+ bl _call_via_r3
+_082E33CE:
+ movs r0, 0x1
+ b _082E341A
+_082E33D2:
+ ldrb r0, [r3]
+ movs r1, 0
+ movs r0, 0x1
+ strb r0, [r3]
+ ldr r0, [r4]
+ strb r6, [r0, 0x6]
+ ldr r0, [r4]
+ str r1, [r0]
+ strb r1, [r0, 0x4]
+ ldr r0, [r4]
+ strb r1, [r0, 0x5]
+ ldr r0, [r4]
+ strb r1, [r0, 0x7]
+ ldr r0, [r4]
+ strb r1, [r0, 0x8]
+ ldr r0, [r4]
+ strb r1, [r0, 0x9]
+ ldr r0, [r4]
+ str r1, [r0, 0xC]
+ ldrb r2, [r0, 0x10]
+ strb r1, [r0, 0x10]
+ ldr r0, [r4]
+ ldrh r2, [r0, 0x12]
+ movs r2, 0
+ strh r1, [r0, 0x12]
+ strb r2, [r0, 0x15]
+ ldr r1, _082E3420
+ movs r2, 0x80
+ lsls r2, 1
+ adds r0, r2, 0
+ strh r0, [r1]
+ subs r1, 0xC
+ ldr r2, _082E3424
+ adds r0, r2, 0
+ strh r0, [r1]
+ movs r0, 0
+_082E341A:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_082E3420: .4byte 0x04000134
+_082E3424: .4byte 0x00005003
+ thumb_func_end STWI_init
+
+ thumb_func_start STWI_start_Command
+STWI_start_Command: @ 82E3428
+ push {r4,r5,lr}
+ ldr r5, _082E3480
+ ldr r0, [r5]
+ ldr r3, [r0, 0x24]
+ ldrb r1, [r0, 0x4]
+ lsls r1, 8
+ ldrb r0, [r0, 0x6]
+ ldr r2, _082E3484
+ orrs r0, r2
+ orrs r1, r0
+ str r1, [r3]
+ ldr r2, _082E3488
+ ldr r1, [r5]
+ ldr r0, [r1, 0x24]
+ ldr r0, [r0]
+ str r0, [r2]
+ movs r2, 0
+ str r2, [r1]
+ movs r0, 0x1
+ strb r0, [r1, 0x5]
+ ldr r4, _082E348C
+ ldrh r3, [r4]
+ strh r2, [r4]
+ ldr r2, _082E3490
+ ldr r1, [r5]
+ movs r0, 0x8
+ ldrb r1, [r1, 0xA]
+ lsls r0, r1
+ ldrh r1, [r2]
+ orrs r0, r1
+ strh r0, [r2]
+ ldrh r0, [r2]
+ movs r1, 0x80
+ orrs r0, r1
+ strh r0, [r2]
+ strh r3, [r4]
+ ldr r1, _082E3494
+ ldr r2, _082E3498
+ adds r0, r2, 0
+ strh r0, [r1]
+ movs r0, 0
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_082E3480: .4byte 0x03007868
+_082E3484: .4byte 0x99660000
+_082E3488: .4byte 0x04000120
+_082E348C: .4byte 0x04000208
+_082E3490: .4byte 0x04000200
+_082E3494: .4byte 0x04000128
+_082E3498: .4byte 0x00005083
+ thumb_func_end STWI_start_Command
+
+ thumb_func_start STWI_restart_Command
+STWI_restart_Command: @ 82E349C
+ push {r4,lr}
+ ldr r4, _082E34B4
+ ldr r2, [r4]
+ ldrb r0, [r2, 0x15]
+ adds r3, r4, 0
+ cmp r0, 0x1
+ bhi _082E34B8
+ adds r0, 0x1
+ strb r0, [r2, 0x15]
+ bl STWI_start_Command
+ b _082E3512
+ .align 2, 0
+_082E34B4: .4byte 0x03007868
+_082E34B8:
+ ldrb r0, [r2, 0x6]
+ cmp r0, 0x27
+ beq _082E34CA
+ cmp r0, 0x25
+ beq _082E34CA
+ cmp r0, 0x35
+ beq _082E34CA
+ cmp r0, 0x37
+ bne _082E34EC
+_082E34CA:
+ ldr r0, [r3]
+ ldrh r1, [r0, 0x12]
+ movs r2, 0
+ movs r1, 0x1
+ strh r1, [r0, 0x12]
+ adds r0, 0x2C
+ ldrb r1, [r0]
+ strb r2, [r0]
+ ldr r1, [r3]
+ ldr r2, [r1, 0x18]
+ cmp r2, 0
+ beq _082E3512
+ ldrb r0, [r1, 0x6]
+ ldrh r1, [r1, 0x12]
+ bl _call_via_r2
+ b _082E3512
+_082E34EC:
+ ldrh r0, [r2, 0x12]
+ movs r1, 0
+ movs r0, 0x1
+ strh r0, [r2, 0x12]
+ adds r0, r2, 0
+ adds r0, 0x2C
+ ldrb r2, [r0]
+ strb r1, [r0]
+ ldr r1, [r4]
+ ldr r2, [r1, 0x18]
+ cmp r2, 0
+ beq _082E350C
+ ldrb r0, [r1, 0x6]
+ ldrh r1, [r1, 0x12]
+ bl _call_via_r2
+_082E350C:
+ ldr r1, [r4]
+ movs r0, 0x4
+ str r0, [r1]
+_082E3512:
+ movs r0, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end STWI_restart_Command
+
+ thumb_func_start STWI_reset_ClockCounter
+STWI_reset_ClockCounter: @ 82E351C
+ ldr r3, _082E3548
+ ldr r1, [r3]
+ movs r0, 0x5
+ str r0, [r1]
+ movs r2, 0
+ strb r2, [r1, 0x4]
+ ldr r0, [r3]
+ strb r2, [r0, 0x5]
+ ldr r1, _082E354C
+ movs r0, 0x80
+ lsls r0, 24
+ str r0, [r1]
+ adds r1, 0x8
+ strh r2, [r1]
+ ldr r2, _082E3550
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r2, 0x7F
+ adds r0, r2, 0
+ strh r0, [r1]
+ movs r0, 0
+ bx lr
+ .align 2, 0
+_082E3548: .4byte 0x03007868
+_082E354C: .4byte 0x04000120
+_082E3550: .4byte 0x00005003
+ thumb_func_end STWI_reset_ClockCounter
+
+ .arm
+ arm_func_start IntrSIO32
+IntrSIO32: @ 82E3554
+ mov r12, sp
+ stmdb sp!, {r11,r12,lr,pc}
+ ldr r3, _082E35B4
+ ldr r0, [r3]
+ ldr r2, [r0]
+ sub r11, r12, 0x4
+ cmp r2, 0xA
+ bne _082E3590
+ ldr r0, [r0, 0x20]
+ cmp r0, 0
+ ldmdbeq r11, {r11,sp,lr}
+ bxeq lr
+ bl sub_82E3EB0
+ ldmdb r11, {r11,sp,lr}
+ bx lr
+_082E3590:
+ ldrb r3, [r0, 0x14]
+ cmp r3, 0x1
+ bne _082E35A8
+ bl sio32intr_clock_master
+ ldmdb r11, {r11,sp,lr}
+ bx lr
+_082E35A8:
+ bl sio32intr_clock_slave
+ ldmdb r11, {r11,sp,lr}
+ bx lr
+ .align 2, 0
+_082E35B4: .4byte 0x03007868
+ arm_func_end IntrSIO32
+
+ arm_func_start sio32intr_clock_master
+sio32intr_clock_master: @ 82E35B8
+ mov r12, sp
+ stmdb sp!, {r4-r6,r11,r12,lr,pc}
+ mov r0, 0x50
+ sub r11, r12, 0x4
+ bl STWI_set_timer_in_RAM
+ mov r4, 0x120
+ ldr r2, _082E382C
+ add r4, r4, 0x4000000
+ ldr lr, [r4]
+ ldr r12, [r2]
+ ldr r3, [r12]
+ mov r6, r2
+ cmp r3, 0
+ bne _082E3638
+ cmp lr, 0x80000000
+ bne _082E36B8
+ ldrb r2, [r12, 0x5]
+ ldrb r3, [r12, 0x4]
+ cmp r2, r3
+ bhi _082E3628
+ ldr r3, [r12, 0x24]
+ mov r1, r2
+ ldr r2, [r3, r1, lsl 2]
+ str r2, [r4]
+ ldrb r3, [r12, 0x5]
+ add r3, r3, 0x1
+ strb r3, [r12, 0x5]
+ b _082E3714
+_082E3628:
+ mov r3, 0x1
+ str r3, [r12]
+ str lr, [r4]
+ b _082E3714
+_082E3638:
+ ldr r3, [r12]
+ cmp r3, 0x1
+ bne _082E36C8
+ mov r3, 0x99000000
+ add r3, r3, 0x660000
+ mov r5, 0x80000000
+ and r2, lr, r5, asr 15
+ cmp r2, r3
+ bne _082E36B8
+ mov r3, 0
+ strb r3, [r12, 0x8]
+ ldr r1, [r6]
+ ldrb r0, [r1, 0x8]
+ ldr r2, [r1, 0x28]
+ str lr, [r2, r0, lsl 2]
+ ldrb r3, [r1, 0x8]
+ add r3, r3, 0x1
+ strb r3, [r1, 0x8]
+ ldr r2, [r6]
+ strb lr, [r2, 0x9]
+ ldr r3, [r6]
+ mov r2, lr, lsr 8
+ strb r2, [r3, 0x7]
+ ldr r1, [r6]
+ ldrb r2, [r1, 0x7]
+ ldrb r3, [r1, 0x8]
+ cmp r2, r3
+ bcc _082E3700
+ mov r3, 0x2
+ str r3, [r1]
+ str r5, [r4]
+ b _082E3714
+_082E36B8:
+ bl STWI_stop_timer_in_RAM
+ mov r0, 0x82
+ bl STWI_set_timer_in_RAM
+ b _082E3840
+_082E36C8:
+ ldr r3, [r12]
+ cmp r3, 0x2
+ bne _082E3714
+ ldrb r1, [r12, 0x8]
+ ldr r2, [r12, 0x28]
+ str lr, [r2, r1, lsl 2]
+ ldrb r3, [r12, 0x8]
+ add r3, r3, 0x1
+ strb r3, [r12, 0x8]
+ ldr r1, [r6]
+ ldrb r2, [r1, 0x7]
+ ldrb r3, [r1, 0x8]
+ cmp r2, r3
+ bcs _082E370C
+_082E3700:
+ mov r3, 0x3
+ str r3, [r1]
+ b _082E3714
+_082E370C:
+ mov r3, 0x80000000
+ str r3, [r4]
+_082E3714:
+ mov r0, 0x1
+ bl handshake_wait
+ mov r0, r0, lsl 16
+ cmp r0, 0x10000
+ beq _082E3840
+ mov r4, 0x128
+ add r4, r4, 0x4000000
+ mov r5, 0x5000
+ add r3, r5, 0xB
+ strh r3, [r4]
+ mov r0, 0
+ bl handshake_wait
+ mov r0, r0, lsl 16
+ cmp r0, 0x10000
+ beq _082E3840
+ bl STWI_stop_timer_in_RAM
+ ldr r1, [r6]
+ ldr r0, [r1]
+ cmp r0, 0x3
+ bne _082E3830
+ ldrb r3, [r1, 0x9]
+ cmp r3, 0xA5
+ cmpne r3, 0xA7
+ beq _082E3788
+ and r3, r3, 0xFF
+ cmp r3, 0xB5
+ beq _082E3788
+ cmp r3, 0xB7
+ bne _082E37D0
+_082E3788:
+ mov r1, 0x120
+ add r1, r1, 0x4000000
+ mov r12, 0x128
+ add r12, r12, 0x4000000
+ ldr r0, [r6]
+ mov r3, 0
+ strb r3, [r0, 0x14]
+ mov r2, 0x80000000
+ str r2, [r1]
+ add r3, r3, 0x5000
+ add r2, r3, 0x2
+ strh r2, [r12]
+ add r3, r3, 0x82
+ strh r3, [r12]
+ ldr r2, [r6]
+ mov r3, 0x5
+ str r3, [r2]
+ b _082E3800
+_082E37D0:
+ cmp r3, 0xEE
+ bne _082E37F0
+ add r3, r5, 0x3
+ strh r3, [r4]
+ mov r2, 0x4
+ str r2, [r1]
+ strh r0, [r1, 0x12]
+ b _082E3800
+_082E37F0:
+ add r3, r5, 0x3
+ strh r3, [r4]
+ mov r2, 0x4
+ str r2, [r1]
+_082E3800:
+ ldr r2, [r6]
+ mov r3, 0
+ strb r3, [r2, 0x2C]
+ ldr r0, [r6]
+ ldr r2, [r0, 0x18]
+ cmp r2, r3
+ beq _082E3840
+ ldrh r1, [r0, 0x12]
+ ldrb r0, [r0, 0x6]
+ bl sub_82E3EA8
+ b _082E3840
+ .align 2, 0
+_082E382C: .4byte 0x03007868
+_082E3830:
+ add r3, r5, 0x3
+ strh r3, [r4]
+ add r2, r5, 0x83
+ strh r2, [r4]
+_082E3840:
+ ldmdb r11, {r4-r6,r11,sp,lr}
+ bx lr
+ arm_func_end sio32intr_clock_master
+
+ arm_func_start sio32intr_clock_slave
+sio32intr_clock_slave: @ 82E3848
+ mov r12, sp
+ stmdb sp!, {r4-r6,r11,r12,lr,pc}
+ ldr r4, _082E3BF4
+ mov r0, 0x64
+ ldr r3, [r4]
+ mov r6, 0
+ strb r6, [r3, 0x10]
+ sub r11, r12, 0x4
+ bl STWI_set_timer_in_RAM
+ mov r0, r6
+ bl handshake_wait
+ mov r0, r0, lsl 16
+ cmp r0, 0x10000
+ mov r5, r4
+ beq _082E3C4C
+ mov r3, 0x128
+ add r3, r3, 0x4000000
+ mov r2, 0x5000
+ add r2, r2, 0xA
+ strh r2, [r3]
+ mov lr, 0x120
+ ldr r0, [r5]
+ add lr, lr, 0x4000000
+ ldr r12, [lr]
+ ldr r3, [r0]
+ cmp r3, 0x5
+ bne _082E3978
+ ldr r3, [r0, 0x28]
+ mov r4, 0x1
+ mov r0, 0x99000000
+ str r12, [r3]
+ add r0, r0, 0x660000
+ ldr r2, [r5]
+ mov r3, r0, lsr 16
+ strb r4, [r2, 0x5]
+ cmp r3, r12, lsr 16
+ bne _082E3AC4
+ ldr r3, [r5]
+ mov r2, r12, lsr 8
+ strb r2, [r3, 0x4]
+ ldr r2, [r5]
+ strb r12, [r2, 0x6]
+ ldr r1, [r5]
+ ldrb r3, [r1, 0x4]
+ cmp r3, r6
+ bne _082E395C
+ ldrb r2, [r1, 0x6]
+ sub r3, r2, 0x27
+ cmp r2, 0x36
+ cmpne r3, 0x2
+ bhi _082E3930
+ add r3, r2, 0x80
+ strb r3, [r1, 0x9]
+ ldr r2, [r5]
+ ldrb r3, [r2, 0x9]
+ ldr r1, [r2, 0x24]
+ add r3, r3, r0
+ b _082E39E0
+_082E3930:
+ ldr r2, [r1, 0x24]
+ ldr r3, _082E3BF8
+ str r3, [r2]
+ ldr r2, [r5]
+ ldrb r3, [r2, 0x6]
+ sub r3, r3, 0x10
+ cmp r3, 0x2D
+ bhi _082E3A18
+ ldr r3, [r2, 0x24]
+ str r4, [r3, 0x4]
+ b _082E3A24
+_082E395C:
+ mov r3, 0x80000000
+ str r3, [lr]
+ strb r4, [r1, 0x5]
+ ldr r2, [r5]
+ add r3, r3, 0x80000006
+ str r3, [r2]
+ b _082E3AD4
+_082E3978:
+ ldr r3, [r0]
+ cmp r3, 0x6
+ bne _082E3A78
+ ldrb r1, [r0, 0x5]
+ ldr r2, [r0, 0x28]
+ str r12, [r2, r1, lsl 2]
+ ldrb r3, [r0, 0x5]
+ add r3, r3, 0x1
+ strb r3, [r0, 0x5]
+ ldr r1, [r5]
+ ldrb r2, [r1, 0x4]
+ ldrb r3, [r1, 0x5]
+ cmp r2, r3
+ bcs _082E3A6C
+ ldrb r2, [r1, 0x6]
+ sub r3, r2, 0x28
+ cmp r2, 0x36
+ cmpne r3, 0x1
+ bhi _082E39F0
+ add r3, r2, 0x80
+ strb r3, [r1, 0x9]
+ ldr r2, [r5]
+ ldrb r3, [r2, 0x9]
+ ldr r1, [r2, 0x24]
+ orr r3, r3, 0x99000000
+ orr r3, r3, 0x660000
+_082E39E0:
+ str r3, [r1]
+ ldr r2, [r5]
+ strb r6, [r2, 0x7]
+ b _082E3A3C
+_082E39F0:
+ ldr r2, [r1, 0x24]
+ ldr r3, _082E3BF8
+ str r3, [r2]
+ ldr r2, [r5]
+ ldrb r3, [r2, 0x6]
+ sub r3, r3, 0x10
+ cmp r3, 0x2D
+ ldrls r2, [r2, 0x24]
+ movls r3, 0x1
+ bls _082E3A20
+_082E3A18:
+ ldr r2, [r2, 0x24]
+ mov r3, 0x2
+_082E3A20:
+ str r3, [r2, 0x4]
+_082E3A24:
+ ldr r2, [r5]
+ mov r3, 0x1
+ strb r3, [r2, 0x7]
+ ldr r1, [r5]
+ add r3, r3, 0x2
+ strh r3, [r1, 0x12]
+_082E3A3C:
+ ldr r0, [r5]
+ ldr r2, [r0, 0x24]
+ mov r3, 0x120
+ ldr r1, [r2]
+ add r3, r3, 0x4000000
+ str r1, [r3]
+ mov r2, 0x1
+ strb r2, [r0, 0x8]
+ ldr r1, [r5]
+ mov r3, 0x7
+ str r3, [r1]
+ b _082E3AD4
+_082E3A6C:
+ mov r3, 0x80000000
+ str r3, [lr]
+ b _082E3AD4
+_082E3A78:
+ ldr r3, [r0]
+ cmp r3, 0x7
+ bne _082E3AD4
+ cmp r12, 0x80000000
+ bne _082E3AC4
+ ldrb r2, [r0, 0x7]
+ ldrb r3, [r0, 0x8]
+ cmp r2, r3
+ movcc r3, 0x8
+ strcc r3, [r0]
+ bcc _082E3AD4
+ ldrb r1, [r0, 0x8]
+ ldr r3, [r0, 0x24]
+ ldr r2, [r3, r1, lsl 2]
+ str r2, [lr]
+ ldrb r3, [r0, 0x8]
+ add r3, r3, 0x1
+ strb r3, [r0, 0x8]
+ b _082E3AD4
+_082E3AC4:
+ bl STWI_stop_timer_in_RAM
+ mov r0, 0x64
+ bl STWI_set_timer_in_RAM
+ b _082E3C4C
+_082E3AD4:
+ mov r0, 0x1
+ bl handshake_wait
+ mov r0, r0, lsl 16
+ cmp r0, 0x10000
+ beq _082E3C4C
+ mov r6, r5
+ ldr r3, [r6]
+ ldr r2, [r3]
+ cmp r2, 0x8
+ bne _082E3B9C
+ mov r4, 0x128
+ add r4, r4, 0x4000000
+ mov r3, 0x5000
+ add r3, r3, 0x2
+ strh r3, [r4]
+ bl STWI_stop_timer_in_RAM
+ ldr r0, [r6]
+ ldrh r3, [r0, 0x12]
+ cmp r3, 0x3
+ bne _082E3B48
+ bl STWI_init_slave
+ ldr r3, [r6]
+ ldr r1, [r3, 0x1C]
+ cmp r1, 0
+ beq _082E3C4C
+ mov r0, 0x1EC
+ add r0, r0, 0x2
+ bl sub_82E3EAC
+ b _082E3C4C
+_082E3B48:
+ mov r3, 0x120
+ add r3, r3, 0x4000000
+ mov r1, 0
+ str r1, [r3]
+ mov r2, 0x5000
+ strh r1, [r4]
+ add r2, r2, 0x3
+ strh r2, [r4]
+ mov r3, 0x1
+ strb r3, [r0, 0x14]
+ ldr r0, [r5]
+ ldr r2, [r0, 0x1C]
+ str r1, [r0]
+ cmp r2, r1
+ beq _082E3C4C
+ ldrb r3, [r0, 0x4]
+ ldrb r0, [r0, 0x6]
+ mov r1, r2
+ orr r0, r0, r3, lsl 8
+ bl sub_82E3EAC
+ b _082E3C4C
+_082E3B9C:
+ mov r3, 0x208
+ add r3, r3, 0x4000000
+ mov r2, 0
+ strh r2, [r3]
+ mov r1, 0x100
+ add r2, r1, 0x4000002
+ ldrh r3, [r2]
+ tst r3, 0x80
+ beq _082E3C20
+ ldrh r3, [r2]
+ tst r3, 0x3
+ bne _082E3BFC
+ mov r2, 0xFF00
+ add r1, r1, 0x4000000
+ ldrh r3, [r1]
+ add r2, r2, 0x9B
+ cmp r3, r2
+ bls _082E3C20
+_082E3BE4:
+ ldrh r3, [r1]
+ cmp r3, r2
+ bhi _082E3BE4
+ b _082E3C20
+ .align 2, 0
+_082E3BF4: .4byte 0x03007868
+_082E3BF8: .4byte 0x996601ee
+_082E3BFC:
+ mov r2, 0xFF00
+ add r1, r1, 0x4000000
+ ldrh r3, [r1]
+ add r2, r2, 0xFE
+ cmp r3, r2
+ bls _082E3C20
+_082E3C14:
+ ldrh r3, [r1]
+ cmp r3, r2
+ bhi _082E3C14
+_082E3C20:
+ mov r1, 0x128
+ add r1, r1, 0x4000000
+ mov r0, 0x208
+ add r0, r0, 0x4000000
+ mov r3, 0x5000
+ add r2, r3, 0x2
+ strh r2, [r1]
+ add r3, r3, 0x82
+ strh r3, [r1]
+ mov r2, 0x1
+ strh r2, [r0]
+_082E3C4C:
+ ldmdb r11, {r4-r6,r11,sp,lr}
+ bx lr
+ arm_func_end sio32intr_clock_slave
+
+ arm_func_start handshake_wait
+handshake_wait: @ 82E3C54
+ mov r12, sp
+ stmdb sp!, {r11,r12,lr,pc}
+ mov r1, 0x128
+ add r1, r1, 0x4000000
+ mov r0, r0, lsl 16
+ ldr r2, _082E3CB8
+ sub r11, r12, 0x4
+ mov lr, r0, lsr 14
+ ldr r12, [r2]
+_082E3C78:
+ ldrb r3, [r12, 0x10]
+ and r0, r3, 0xFF
+ cmp r0, 0x1
+ beq _082E3CA4
+ ldrh r3, [r1]
+ and r3, r3, 0x4
+ cmp r3, lr
+ bne _082E3C78
+ mov r0, 0
+ ldmdb r11, {r11,sp,lr}
+ bx lr
+_082E3CA4:
+ ldr r2, [r2]
+ mov r3, 0
+ strb r3, [r2, 0x10]
+ ldmdb r11, {r11,sp,lr}
+ bx lr
+ .align 2, 0
+_082E3CB8: .4byte 0x03007868
+ arm_func_end handshake_wait
+
+ arm_func_start STWI_set_timer_in_RAM
+STWI_set_timer_in_RAM: @ 82E3CBC
+ mov r12, sp
+ stmdb sp!, {r4,r5,r11,r12,lr,pc}
+ mov r1, 0x208
+ add r1, r1, 0x4000000
+ mov r3, 0
+ sub r11, r12, 0x4
+ ldr r12, _082E3D74
+ and lr, r0, 0xFF
+ ldr r2, [r12]
+ cmp lr, 0x50
+ ldrb r0, [r2, 0xA]
+ mov r4, r12
+ mov r2, lr
+ strh r3, [r1]
+ mov r0, r0, lsl 2
+ add r3, r3, 0x100
+ add r1, r3, 0x4000000
+ add r3, r3, 0x4000002
+ add r5, r0, r3
+ beq _082E3D44
+ bgt _082E3D1C
+ cmp lr, 0x32
+ beq _082E3D30
+ b _082E3D90
+_082E3D1C:
+ cmp r2, 0x64
+ beq _082E3D5C
+ cmp r2, 0x82
+ beq _082E3D78
+ b _082E3D90
+_082E3D30:
+ mvn r3, 0x334
+ strh r3, [r0, r1]
+ ldr r2, [r4]
+ mov r3, 0x1
+ b _082E3D8C
+_082E3D44:
+ mov r3, 0xAE000000
+ mov r3, r3, asr 20
+ strh r3, [r0, r1]
+ ldr r2, [r4]
+ mov r3, 0x2
+ b _082E3D8C
+_082E3D5C:
+ mvn r3, 0x660
+ sub r3, r3, 0x9
+ strh r3, [r0, r1]
+ ldr r2, [r4]
+ mov r3, 0x3
+ b _082E3D8C
+ .align 2, 0
+_082E3D74: .4byte 0x03007868
+_082E3D78:
+ mvn r3, 0x850
+ sub r3, r3, 0x2
+ strh r3, [r0, r1]
+ ldr r2, [r4]
+ mov r3, 0x4
+_082E3D8C:
+ str r3, [r2, 0xC]
+_082E3D90:
+ mov r12, 0x200
+ add r12, r12, 0x4000002
+ mov r3, 0xC3
+ strh r3, [r5]
+ mov r1, 0x208
+ ldr r2, [r4]
+ add r1, r1, 0x4000000
+ ldrb r0, [r2, 0xA]
+ sub r3, r3, 0xBB
+ mov r3, r3, lsl r0
+ strh r3, [r12]
+ mov r2, 0x1
+ strh r2, [r1]
+ ldmdb r11, {r4,r5,r11,sp,lr}
+ bx lr
+ arm_func_end STWI_set_timer_in_RAM
+
+ arm_func_start STWI_stop_timer_in_RAM
+STWI_stop_timer_in_RAM: @ 82E3DCC
+ mov r12, sp
+ stmdb sp!, {r11,r12,lr,pc}
+ mov r1, 0x100
+ ldr lr, _082E3E18
+ add r0, r1, 0x4000000
+ ldr r2, [lr]
+ sub r11, r12, 0x4
+ ldrb r3, [r2, 0xA]
+ mov r12, 0
+ str r12, [r2, 0xC]
+ mov r3, r3, lsl 2
+ strh r12, [r3, r0]
+ ldr r2, [lr]
+ ldrb r3, [r2, 0xA]
+ add r1, r1, 0x4000002
+ mov r3, r3, lsl 2
+ strh r12, [r3, r1]
+ ldmdb r11, {r11,sp,lr}
+ bx lr
+ .align 2, 0
+_082E3E18: .4byte 0x03007868
+ arm_func_end STWI_stop_timer_in_RAM
+
+ arm_func_start STWI_init_slave
+STWI_init_slave: @ 82E3E1C
+ mov r12, sp
+ stmdb sp!, {r11,r12,lr,pc}
+ ldr r0, _082E3EA4
+ ldr r2, [r0]
+ mov r3, 0x5
+ str r3, [r2]
+ mov r1, 0
+ strb r1, [r2, 0x14]
+ ldr r3, [r0]
+ strb r1, [r3, 0x4]
+ ldr r2, [r0]
+ strb r1, [r2, 0x5]
+ ldr r3, [r0]
+ strb r1, [r3, 0x6]
+ ldr r2, [r0]
+ strb r1, [r2, 0x7]
+ ldr r3, [r0]
+ strb r1, [r3, 0x8]
+ ldr r2, [r0]
+ strb r1, [r2, 0x9]
+ ldr r3, [r0]
+ str r1, [r3, 0xC]
+ sub r11, r12, 0x4
+ strb r1, [r3, 0x10]
+ mov r2, 0x128
+ ldr r12, [r0]
+ add r2, r2, 0x4000000
+ strh r1, [r12, 0x12]
+ mov r3, 0x5000
+ strb r1, [r12, 0x15]
+ add r3, r3, 0x82
+ strh r3, [r2]
+ ldmdb r11, {r11,sp,lr}
+ bx lr
+ .align 2, 0
+_082E3EA4: .4byte 0x03007868
+ arm_func_end STWI_init_slave
+
+ arm_func_start sub_82E3EA8
+sub_82E3EA8: @ 82E3EA8
+ bx r2
+ arm_func_end sub_82E3EA8
+
+ arm_func_start sub_82E3EAC
+sub_82E3EAC: @ 82E3EAC
+ bx r1
+ arm_func_end sub_82E3EAC
+
+ arm_func_start sub_82E3EB0
+sub_82E3EB0: @ 82E3EB0
+ bx r0
+ arm_func_end sub_82E3EB0
+
+ .thumb
+ thumb_func_start rfu_initializeAPI
+rfu_initializeAPI: @ 82E3EB4
+ push {r4-r7,lr}
+ adds r4, r0, 0
+ mov r12, r2
+ lsls r1, 16
+ lsrs r2, r1, 16
+ lsls r3, 24
+ lsrs r7, r3, 24
+ movs r0, 0xF0
+ lsls r0, 20
+ ands r0, r4
+ movs r1, 0x80
+ lsls r1, 18
+ cmp r0, r1
+ bne _082E3ED4
+ cmp r7, 0
+ bne _082E3EDC
+_082E3ED4:
+ movs r0, 0x3
+ ands r0, r4
+ cmp r0, 0
+ beq _082E3EE0
+_082E3EDC:
+ movs r0, 0x2
+ b _082E3FB8
+_082E3EE0:
+ cmp r7, 0
+ beq _082E3EEC
+ ldr r3, _082E3EE8
+ b _082E3EEE
+ .align 2, 0
+_082E3EE8: .4byte 0x00000e64
+_082E3EEC:
+ ldr r3, _082E3EF8
+_082E3EEE:
+ cmp r2, r3
+ bcs _082E3EFC
+ movs r0, 0x1
+ b _082E3FB8
+ .align 2, 0
+_082E3EF8: .4byte 0x00000504
+_082E3EFC:
+ ldr r0, _082E3FC0
+ str r4, [r0]
+ ldr r1, _082E3FC4
+ adds r0, r4, 0
+ adds r0, 0xB4
+ str r0, [r1]
+ ldr r1, _082E3FC8
+ adds r0, 0x28
+ str r0, [r1]
+ ldr r2, _082E3FCC
+ movs r1, 0xDE
+ lsls r1, 1
+ adds r0, r4, r1
+ str r0, [r2]
+ ldr r1, _082E3FD0
+ movs r3, 0xDF
+ lsls r3, 2
+ adds r0, r4, r3
+ str r0, [r1]
+ movs r5, 0x1
+ adds r6, r2, 0
+ adds r4, r1, 0
+_082E3F28:
+ lsls r2, r5, 2
+ adds r3, r2, r6
+ subs r1, r5, 0x1
+ lsls r1, 2
+ adds r0, r1, r6
+ ldr r0, [r0]
+ adds r0, 0x70
+ str r0, [r3]
+ adds r2, r4
+ adds r1, r4
+ ldr r0, [r1]
+ adds r0, 0x1C
+ str r0, [r2]
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0x3
+ bls _082E3F28
+ ldr r0, _082E3FC8
+ ldr r1, [r0]
+ adds r1, 0xDC
+ ldr r4, _082E3FD0
+ ldr r0, [r4, 0xC]
+ adds r0, 0x1C
+ str r0, [r1]
+ mov r1, r12
+ adds r2, r7, 0
+ bl STWI_init_all
+ bl rfu_STC_clearAPIVariables
+ movs r5, 0
+ ldr r3, _082E3FCC
+ movs r2, 0
+_082E3F6C:
+ lsls r1, r5, 2
+ adds r0, r1, r3
+ ldr r0, [r0]
+ str r2, [r0, 0x68]
+ str r2, [r0, 0x6C]
+ adds r1, r4
+ ldr r0, [r1]
+ str r2, [r0, 0x14]
+ str r2, [r0, 0x18]
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0x3
+ bls _082E3F6C
+ ldr r4, _082E3FD4
+ movs r0, 0x2
+ negs r0, r0
+ ands r4, r0
+ ldr r1, _082E3FC8
+ ldr r0, [r1]
+ adds r2, r0, 0
+ adds r2, 0x8
+ movs r3, 0x2F
+ ldr r5, _082E3FD8
+_082E3F9C:
+ ldrh r0, [r4]
+ strh r0, [r2]
+ adds r4, 0x2
+ adds r2, 0x2
+ subs r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r3, r5
+ bne _082E3F9C
+ ldr r1, [r1]
+ adds r0, r1, 0
+ adds r0, 0x9
+ str r0, [r1, 0x4]
+ movs r0, 0
+_082E3FB8:
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_082E3FC0: .4byte 0x03007890
+_082E3FC4: .4byte 0x03007894
+_082E3FC8: .4byte 0x03007898
+_082E3FCC: .4byte 0x03007880
+_082E3FD0: .4byte 0x03007870
+_082E3FD4: .4byte sub_82E53F4 + 1
+_082E3FD8: .4byte 0x0000ffff
+ thumb_func_end rfu_initializeAPI
+
+ thumb_func_start rfu_STC_clearAPIVariables
+rfu_STC_clearAPIVariables: @ 82E3FDC
+ push {r4-r7,lr}
+ sub sp, 0x4
+ ldr r1, _082E4050
+ ldrh r0, [r1]
+ adds r7, r0, 0
+ movs r6, 0
+ strh r6, [r1]
+ ldr r5, _082E4054
+ ldr r1, [r5]
+ ldrb r4, [r1]
+ mov r0, sp
+ strh r6, [r0]
+ ldr r2, _082E4058
+ bl CpuSet
+ ldr r2, [r5]
+ movs r0, 0x8
+ ands r4, r0
+ movs r1, 0
+ strb r4, [r2]
+ mov r0, sp
+ adds r0, 0x2
+ strh r1, [r0]
+ ldr r4, _082E405C
+ ldr r1, [r4]
+ ldr r2, _082E4060
+ bl CpuSet
+ ldr r1, [r4]
+ movs r0, 0x4
+ strb r0, [r1, 0x9]
+ ldr r0, [r5]
+ strb r6, [r0, 0x6]
+ ldr r1, [r4]
+ movs r0, 0xFF
+ strb r0, [r1]
+ bl rfu_clearAllSlot
+ ldr r0, [r5]
+ strb r6, [r0, 0x9]
+ movs r2, 0
+ movs r3, 0
+_082E4030:
+ ldr r0, [r5]
+ lsls r1, r2, 1
+ adds r0, 0x12
+ adds r0, r1
+ strh r3, [r0]
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x3
+ bls _082E4030
+ ldr r0, _082E4050
+ strh r7, [r0]
+ add sp, 0x4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_082E4050: .4byte 0x04000208
+_082E4054: .4byte 0x03007894
+_082E4058: .4byte 0x01000014
+_082E405C: .4byte 0x03007890
+_082E4060: .4byte 0x0100005a
+ thumb_func_end rfu_STC_clearAPIVariables
+
+ thumb_func_start rfu_REQ_PARENT_resumeRetransmitAndChange
+rfu_REQ_PARENT_resumeRetransmitAndChange: @ 82E4064
+ push {lr}
+ ldr r0, _082E4074
+ bl STWI_set_Callback_M
+ bl STWI_send_ResumeRetransmitAndChangeREQ
+ pop {r0}
+ bx r0
+ .align 2, 0
+_082E4074: .4byte rfu_STC_REQ_callback + 1
+ thumb_func_end rfu_REQ_PARENT_resumeRetransmitAndChange
+
+ thumb_func_start rfu_UNI_PARENT_getDRAC_ACK
+rfu_UNI_PARENT_getDRAC_ACK: @ 82E4078
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r0, 0
+ strb r0, [r4]
+ ldr r5, _082E4090
+ ldr r0, [r5]
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ beq _082E4094
+ movs r0, 0xC0
+ lsls r0, 2
+ b _082E40BA
+ .align 2, 0
+_082E4090: .4byte 0x03007890
+_082E4094:
+ bl rfu_getSTWIRecvBuffer
+ adds r1, r0, 0
+ ldrb r0, [r1]
+ cmp r0, 0x28
+ beq _082E40A4
+ cmp r0, 0x36
+ bne _082E40B8
+_082E40A4:
+ ldrb r0, [r1, 0x1]
+ cmp r0, 0
+ bne _082E40B0
+ ldr r0, [r5]
+ ldrb r0, [r0, 0x2]
+ b _082E40B2
+_082E40B0:
+ ldrb r0, [r1, 0x4]
+_082E40B2:
+ strb r0, [r4]
+ movs r0, 0
+ b _082E40BA
+_082E40B8:
+ movs r0, 0x10
+_082E40BA:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end rfu_UNI_PARENT_getDRAC_ACK
+
+ thumb_func_start rfu_setTimerInterrupt
+rfu_setTimerInterrupt: @ 82E40C0
+ push {lr}
+ adds r2, r0, 0
+ adds r0, r1, 0
+ lsls r2, 24
+ lsrs r2, 24
+ adds r1, r2, 0
+ bl STWI_init_timer
+ pop {r0}
+ bx r0
+ thumb_func_end rfu_setTimerInterrupt
+
+ thumb_func_start rfu_getSTWIRecvBuffer
+rfu_getSTWIRecvBuffer: @ 82E40D4
+ ldr r0, _082E40E0
+ ldr r0, [r0]
+ adds r0, 0xDC
+ ldr r0, [r0]
+ bx lr
+ .align 2, 0
+_082E40E0: .4byte 0x03007898
+ thumb_func_end rfu_getSTWIRecvBuffer
+
+ thumb_func_start rfu_setMSCCallback
+rfu_setMSCCallback: @ 82E40E4
+ push {lr}
+ bl STWI_set_Callback_S
+ pop {r0}
+ bx r0
+ thumb_func_end rfu_setMSCCallback
+
+ thumb_func_start rfu_setREQCallback
+rfu_setREQCallback: @ 82E40F0
+ push {lr}
+ adds r1, r0, 0
+ ldr r0, _082E4108
+ ldr r0, [r0]
+ str r1, [r0]
+ negs r0, r1
+ orrs r0, r1
+ lsrs r0, 31
+ bl rfu_enableREQCallback
+ pop {r0}
+ bx r0
+ .align 2, 0
+_082E4108: .4byte 0x03007898
+ thumb_func_end rfu_setREQCallback
+
+ thumb_func_start rfu_enableREQCallback
+rfu_enableREQCallback: @ 82E410C
+ push {lr}
+ lsls r0, 24
+ cmp r0, 0
+ beq _082E4124
+ ldr r0, _082E4120
+ ldr r2, [r0]
+ ldrb r1, [r2]
+ movs r0, 0x8
+ orrs r0, r1
+ b _082E412E
+ .align 2, 0
+_082E4120: .4byte 0x03007894
+_082E4124:
+ ldr r0, _082E4134
+ ldr r2, [r0]
+ ldrb r1, [r2]
+ movs r0, 0xF7
+ ands r0, r1
+_082E412E:
+ strb r0, [r2]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_082E4134: .4byte 0x03007894
+ thumb_func_end rfu_enableREQCallback
+
+ thumb_func_start rfu_STC_REQ_callback
+rfu_STC_REQ_callback: @ 82E4138
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r1, 16
+ lsrs r4, r1, 16
+ ldr r0, _082E416C
+ bl STWI_set_Callback_M
+ ldr r0, _082E4170
+ ldr r0, [r0]
+ strh r4, [r0, 0x1C]
+ ldrb r1, [r0]
+ movs r0, 0x8
+ ands r0, r1
+ cmp r0, 0
+ beq _082E4166
+ ldr r0, _082E4174
+ ldr r0, [r0]
+ ldr r2, [r0]
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl _call_via_r2
+_082E4166:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_082E416C: .4byte rfu_CB_defaultCallback + 1
+_082E4170: .4byte 0x03007894
+_082E4174: .4byte 0x03007898
+ thumb_func_end rfu_STC_REQ_callback
+
+ thumb_func_start rfu_CB_defaultCallback
+rfu_CB_defaultCallback: @ 82E4178
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 16
+ lsrs r3, r1, 16
+ cmp r0, 0xFF
+ bne _082E41D4
+ ldr r0, _082E41DC
+ ldr r0, [r0]
+ ldrb r1, [r0]
+ movs r0, 0x8
+ ands r0, r1
+ cmp r0, 0
+ beq _082E41A2
+ ldr r0, _082E41E0
+ ldr r0, [r0]
+ ldr r2, [r0]
+ movs r0, 0xFF
+ adds r1, r3, 0
+ bl _call_via_r2
+_082E41A2:
+ ldr r0, _082E41E4
+ ldr r0, [r0]
+ ldrb r1, [r0, 0x2]
+ ldrb r0, [r0, 0x3]
+ adds r5, r0, 0
+ orrs r5, r1
+ movs r4, 0
+_082E41B0:
+ adds r0, r5, 0
+ asrs r0, r4
+ movs r1, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _082E41C2
+ adds r0, r4, 0
+ bl rfu_STC_removeLinkData
+_082E41C2:
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x3
+ bls _082E41B0
+ ldr r0, _082E41E4
+ ldr r1, [r0]
+ movs r0, 0xFF
+ strb r0, [r1]
+_082E41D4:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_082E41DC: .4byte 0x03007894
+_082E41E0: .4byte 0x03007898
+_082E41E4: .4byte 0x03007890
+ thumb_func_end rfu_CB_defaultCallback
+
+ thumb_func_start rfu_waitREQComplete
+rfu_waitREQComplete: @ 82E41E8
+ push {lr}
+ bl STWI_poll_CommandEnd
+ ldr r0, _082E41F8
+ ldr r0, [r0]
+ ldrh r0, [r0, 0x1C]
+ pop {r1}
+ bx r1
+ .align 2, 0
+_082E41F8: .4byte 0x03007894
+ thumb_func_end rfu_waitREQComplete
+
+ thumb_func_start rfu_REQ_RFUStatus
+rfu_REQ_RFUStatus: @ 82E41FC
+ push {lr}
+ ldr r0, _082E420C
+ bl STWI_set_Callback_M
+ bl STWI_send_SystemStatusREQ
+ pop {r0}
+ bx r0
+ .align 2, 0
+_082E420C: .4byte rfu_STC_REQ_callback + 1
+ thumb_func_end rfu_REQ_RFUStatus
+
+ thumb_func_start rfu_getRFUStatus
+rfu_getRFUStatus: @ 82E4210
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldr r5, _082E4228
+ ldr r0, [r5]
+ adds r0, 0xDC
+ ldr r0, [r0]
+ ldrb r0, [r0]
+ cmp r0, 0x93
+ beq _082E422C
+ movs r0, 0x10
+ b _082E4246
+ .align 2, 0
+_082E4228: .4byte 0x03007898
+_082E422C:
+ bl STWI_poll_CommandEnd
+ lsls r0, 16
+ cmp r0, 0
+ bne _082E4240
+ ldr r0, [r5]
+ adds r0, 0xDC
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x7]
+ b _082E4242
+_082E4240:
+ movs r0, 0xFF
+_082E4242:
+ strb r0, [r4]
+ movs r0, 0
+_082E4246:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end rfu_getRFUStatus
+
+ thumb_func_start sub_82E424C
+sub_82E424C: @ 82E424C
+ push {lr}
+ ldr r2, _082E4254
+ ldr r3, _082E4258
+ b _082E4266
+ .align 2, 0
+_082E4254: .4byte 0x089a324c
+_082E4258: .4byte 0x030000f0
+ thumb_func_end sub_82E424C
+
+ thumb_func_start sub_82E425C
+sub_82E425C: @ 82E425C
+ ldrb r0, [r3]
+ adds r3, 0x1
+ adds r2, 0x1
+ cmp r1, r0
+ bne _082E42BC
+_082E4266:
+ ldrb r1, [r2]
+ cmp r1, 0
+ bne sub_82E425C
+ movs r2, 0xC0
+ lsls r2, 18
+ movs r3, 0
+ movs r1, 0
+_082E4274:
+ ldrh r0, [r2]
+ adds r0, r3, r0
+ lsls r0, 16
+ lsrs r3, r0, 16
+ adds r2, 0x2
+ adds r0, r1, 0x1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x59
+ bls _082E4274
+ ldr r0, _082E42B0
+ ldrh r0, [r0]
+ cmp r3, r0
+ bne _082E42BC
+ movs r0, 0xC0
+ lsls r0, 18
+ ldr r1, _082E42B4
+ ldr r1, [r1]
+ movs r2, 0x5A
+ bl CpuSet
+ ldr r0, _082E42B8
+ ldr r2, [r0]
+ ldrb r1, [r2]
+ movs r0, 0x80
+ orrs r0, r1
+ strb r0, [r2]
+ movs r0, 0
+ b _082E42BE
+ .align 2, 0
+_082E42B0: .4byte 0x030000fa
+_082E42B4: .4byte 0x03007890
+_082E42B8: .4byte 0x03007894
+_082E42BC:
+ movs r0, 0x1
+_082E42BE:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_82E425C
+
+ thumb_func_start rfu_REQ_stopMode
+rfu_REQ_stopMode: @ 82E42C4
+ push {lr}
+ ldr r0, _082E42E4
+ ldrh r0, [r0]
+ cmp r0, 0
+ bne _082E42EC
+ movs r0, 0x3D
+ movs r1, 0x6
+ bl rfu_STC_REQ_callback
+ ldr r0, _082E42E8
+ ldr r1, [r0]
+ ldrh r0, [r1, 0x12]
+ movs r0, 0x6
+ strh r0, [r1, 0x12]
+ b _082E4362
+ .align 2, 0
+_082E42E4: .4byte 0x04000208
+_082E42E8: .4byte 0x03007868
+_082E42EC:
+ bl AgbRFU_SoftReset
+ bl rfu_STC_clearAPIVariables
+ movs r0, 0x8
+ bl sub_82E6D6C
+ ldr r1, _082E433C
+ cmp r0, r1
+ bne _082E4350
+ ldr r0, _082E4340
+ ldr r0, [r0]
+ ldrb r0, [r0, 0xA]
+ lsls r0, 2
+ ldr r2, _082E4344
+ adds r1, r0, r2
+ movs r0, 0
+ str r0, [r1]
+ movs r0, 0x83
+ lsls r0, 16
+ str r0, [r1]
+ ldr r0, [r1]
+ lsls r0, 16
+ ldr r2, _082E4348
+ ldr r3, _082E434C
+ cmp r0, r2
+ bhi _082E432A
+_082E4322:
+ ldr r0, [r1]
+ lsls r0, 16
+ cmp r0, r2
+ bls _082E4322
+_082E432A:
+ movs r0, 0
+ str r0, [r1]
+ adds r0, r3, 0
+ bl STWI_set_Callback_M
+ bl STWI_send_StopModeREQ
+ b _082E4362
+ .align 2, 0
+_082E433C: .4byte 0x00008001
+_082E4340: .4byte 0x03007868
+_082E4344: .4byte 0x04000100
+_082E4348: .4byte 0x0105ffff
+_082E434C: .4byte rfu_CB_stopMode + 1
+_082E4350:
+ ldr r1, _082E4368
+ movs r2, 0x80
+ lsls r2, 6
+ adds r0, r2, 0
+ strh r0, [r1]
+ movs r0, 0x3D
+ movs r1, 0
+ bl rfu_STC_REQ_callback
+_082E4362:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_082E4368: .4byte 0x04000128
+ thumb_func_end rfu_REQ_stopMode
+
+ thumb_func_start rfu_CB_stopMode
+rfu_CB_stopMode: @ 82E436C
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r3, r0, 24
+ lsls r1, 16
+ lsrs r1, 16
+ adds r2, r1, 0
+ cmp r2, 0
+ bne _082E4386
+ ldr r1, _082E4394
+ movs r4, 0x80
+ lsls r4, 6
+ adds r0, r4, 0
+ strh r0, [r1]
+_082E4386:
+ adds r0, r3, 0
+ adds r1, r2, 0
+ bl rfu_STC_REQ_callback
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_082E4394: .4byte 0x04000128
+ thumb_func_end rfu_CB_stopMode
+
+ thumb_func_start rfu_REQBN_softReset_and_checkID
+rfu_REQBN_softReset_and_checkID: @ 82E4398
+ push {lr}
+ ldr r0, _082E43A8
+ ldrh r0, [r0]
+ cmp r0, 0
+ bne _082E43AC
+ movs r0, 0x1
+ negs r0, r0
+ b _082E43CC
+ .align 2, 0
+_082E43A8: .4byte 0x04000208
+_082E43AC:
+ bl AgbRFU_SoftReset
+ bl rfu_STC_clearAPIVariables
+ movs r0, 0x1E
+ bl sub_82E6D6C
+ adds r2, r0, 0
+ cmp r2, 0
+ bne _082E43CA
+ ldr r1, _082E43D0
+ movs r3, 0x80
+ lsls r3, 6
+ adds r0, r3, 0
+ strh r0, [r1]
+_082E43CA:
+ adds r0, r2, 0
+_082E43CC:
+ pop {r1}
+ bx r1
+ .align 2, 0
+_082E43D0: .4byte 0x04000128
+ thumb_func_end rfu_REQBN_softReset_and_checkID
+
+ thumb_func_start rfu_REQ_reset
+rfu_REQ_reset: @ 82E43D4
+ push {lr}
+ ldr r0, _082E43E4
+ bl STWI_set_Callback_M
+ bl STWI_send_ResetREQ
+ pop {r0}
+ bx r0
+ .align 2, 0
+_082E43E4: .4byte rfu_CB_reset + 1
+ thumb_func_end rfu_REQ_reset
+
+ thumb_func_start rfu_CB_reset
+rfu_CB_reset: @ 82E43E8
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r1, 16
+ lsrs r1, 16
+ adds r4, r1, 0
+ cmp r4, 0
+ bne _082E43FC
+ bl rfu_STC_clearAPIVariables
+_082E43FC:
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl rfu_STC_REQ_callback
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end rfu_CB_reset
+
+ thumb_func_start rfu_REQ_configSystem
+rfu_REQ_configSystem: @ 82E440C
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ adds r5, r1, 0
+ lsls r4, 16
+ lsrs r4, 16
+ lsls r5, 24
+ lsrs r5, 24
+ lsls r2, 24
+ lsrs r6, r2, 24
+ ldr r0, _082E4444
+ bl STWI_set_Callback_M
+ movs r0, 0x3
+ ands r4, r0
+ movs r0, 0x3C
+ orrs r4, r0
+ adds r0, r4, 0
+ adds r1, r5, 0
+ adds r2, r6, 0
+ bl STWI_send_SystemConfigREQ
+ cmp r6, 0
+ bne _082E444C
+ ldr r0, _082E4448
+ ldr r1, [r0]
+ movs r0, 0x1
+ strh r0, [r1, 0x1A]
+ b _082E4466
+ .align 2, 0
+_082E4444: .4byte rfu_STC_REQ_callback + 1
+_082E4448: .4byte 0x03007894
+_082E444C:
+ ldr r5, _082E446C
+ ldrh r4, [r5]
+ movs r0, 0
+ strh r0, [r5]
+ movs r0, 0x96
+ lsls r0, 2
+ adds r1, r6, 0
+ bl Div
+ ldr r1, _082E4470
+ ldr r1, [r1]
+ strh r0, [r1, 0x1A]
+ strh r4, [r5]
+_082E4466:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_082E446C: .4byte 0x04000208
+_082E4470: .4byte 0x03007894
+ thumb_func_end rfu_REQ_configSystem
+
+ thumb_func_start rfu_REQ_configGameData
+rfu_REQ_configGameData: @ 82E4474
+ push {r4-r7,lr}
+ sub sp, 0x10
+ adds r4, r2, 0
+ adds r7, r3, 0
+ lsls r0, 24
+ lsrs r6, r0, 24
+ lsls r2, r1, 16
+ adds r5, r4, 0
+ mov r0, sp
+ strb r1, [r0]
+ lsrs r2, 24
+ strb r2, [r0, 0x1]
+ cmp r6, 0
+ beq _082E449A
+ movs r1, 0x80
+ orrs r2, r1
+ movs r1, 0
+ orrs r2, r1
+ strb r2, [r0, 0x1]
+_082E449A:
+ movs r2, 0x2
+ ldr r0, _082E44FC
+ mov r12, r0
+_082E44A0:
+ mov r3, sp
+ adds r1, r3, r2
+ ldrb r0, [r4]
+ strb r0, [r1]
+ adds r4, 0x1
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0xE
+ bls _082E44A0
+ movs r3, 0
+ adds r1, r7, 0
+ movs r2, 0
+_082E44BA:
+ ldrb r0, [r1]
+ adds r0, r3, r0
+ lsls r0, 24
+ adds r1, 0x1
+ lsrs r0, 24
+ ldrb r3, [r5]
+ adds r0, r3
+ lsls r0, 24
+ lsrs r3, r0, 24
+ adds r5, 0x1
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x7
+ bls _082E44BA
+ mov r1, sp
+ mvns r0, r3
+ strb r0, [r1, 0xF]
+ cmp r6, 0
+ beq _082E44E6
+ movs r0, 0
+ strb r0, [r1, 0xE]
+_082E44E6:
+ mov r0, r12
+ bl STWI_set_Callback_M
+ mov r0, sp
+ adds r1, r7, 0
+ bl STWI_send_GameConfigREQ
+ add sp, 0x10
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_082E44FC: .4byte rfu_CB_configGameData + 1
+ thumb_func_end rfu_REQ_configGameData
+
+ thumb_func_start rfu_CB_configGameData
+rfu_CB_configGameData: @ 82E4500
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ mov r12, r0
+ lsls r1, 16
+ lsrs r7, r1, 16
+ cmp r7, 0
+ bne _082E458A
+ ldr r0, _082E4544
+ ldr r0, [r0]
+ ldr r1, [r0, 0x24]
+ ldr r0, _082E4548
+ ldr r6, [r0]
+ ldrb r2, [r1, 0x4]
+ adds r5, r6, 0
+ adds r5, 0x98
+ strh r2, [r5]
+ ldrb r0, [r1, 0x5]
+ lsls r3, r0, 8
+ orrs r3, r2
+ strh r3, [r5]
+ adds r4, r1, 0x6
+ movs r1, 0x80
+ lsls r1, 8
+ adds r0, r3, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _082E454C
+ eors r3, r1
+ strh r3, [r5]
+ adds r1, r6, 0
+ adds r1, 0x97
+ movs r0, 0x1
+ b _082E4552
+ .align 2, 0
+_082E4544: .4byte 0x03007868
+_082E4548: .4byte 0x03007890
+_082E454C:
+ adds r1, r6, 0
+ adds r1, 0x97
+ movs r0, 0
+_082E4552:
+ strb r0, [r1]
+ movs r2, 0
+ ldr r3, _082E4598
+_082E4558:
+ ldr r0, [r3]
+ adds r0, 0x9A
+ adds r0, r2
+ ldrb r1, [r4]
+ strb r1, [r0]
+ adds r4, 0x1
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0xC
+ bls _082E4558
+ adds r4, 0x1
+ movs r2, 0
+ ldr r3, _082E4598
+_082E4574:
+ ldr r0, [r3]
+ adds r0, 0xA9
+ adds r0, r2
+ ldrb r1, [r4]
+ strb r1, [r0]
+ adds r4, 0x1
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x7
+ bls _082E4574
+_082E458A:
+ mov r0, r12
+ adds r1, r7, 0
+ bl rfu_STC_REQ_callback
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_082E4598: .4byte 0x03007890
+ thumb_func_end rfu_CB_configGameData
+
+ thumb_func_start rfu_REQ_startSearchChild
+rfu_REQ_startSearchChild: @ 82E459C
+ push {r4,lr}
+ movs r1, 0
+ ldr r4, _082E45E4
+ ldr r3, _082E45E8
+ movs r2, 0
+_082E45A6:
+ ldr r0, [r3]
+ adds r0, 0xE
+ adds r0, r1
+ strb r2, [r0]
+ adds r0, r1, 0x1
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, 0x3
+ bls _082E45A6
+ adds r0, r4, 0
+ bl STWI_set_Callback_M
+ bl STWI_send_SystemStatusREQ
+ bl STWI_poll_CommandEnd
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, 0
+ bne _082E45F0
+ ldr r0, _082E45EC
+ ldr r0, [r0]
+ adds r0, 0xDC
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x7]
+ cmp r0, 0
+ bne _082E45F6
+ movs r0, 0x1
+ bl rfu_STC_clearLinkStatus
+ b _082E45F6
+ .align 2, 0
+_082E45E4: .4byte rfu_CB_defaultCallback + 1
+_082E45E8: .4byte 0x03007894
+_082E45EC: .4byte 0x03007898
+_082E45F0:
+ movs r0, 0x19
+ bl rfu_STC_REQ_callback
+_082E45F6:
+ ldr r0, _082E4608
+ bl STWI_set_Callback_M
+ bl STWI_send_SC_StartREQ
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_082E4608: .4byte rfu_CB_startSearchChild + 1
+ thumb_func_end rfu_REQ_startSearchChild
+
+ thumb_func_start rfu_CB_startSearchChild
+rfu_CB_startSearchChild: @ 82E460C
+ push {lr}
+ lsls r0, 24
+ lsrs r3, r0, 24
+ lsls r1, 16
+ lsrs r1, 16
+ adds r2, r1, 0
+ cmp r2, 0
+ bne _082E4624
+ ldr r0, _082E4630
+ ldr r1, [r0]
+ movs r0, 0x1
+ strb r0, [r1, 0x9]
+_082E4624:
+ adds r0, r3, 0
+ adds r1, r2, 0
+ bl rfu_STC_REQ_callback
+ pop {r0}
+ bx r0
+ .align 2, 0
+_082E4630: .4byte 0x03007894
+ thumb_func_end rfu_CB_startSearchChild
+
+ thumb_func_start rfu_STC_clearLinkStatus
+rfu_STC_clearLinkStatus: @ 82E4634
+ push {r4,r5,lr}
+ sub sp, 0x4
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ bl rfu_clearAllSlot
+ cmp r4, 0
+ beq _082E465C
+ mov r0, sp
+ movs r5, 0
+ strh r5, [r0]
+ ldr r4, _082E4690
+ ldr r1, [r4]
+ adds r1, 0x14
+ ldr r2, _082E4694
+ bl CpuSet
+ ldr r0, [r4]
+ strb r5, [r0, 0x8]
+_082E465C:
+ movs r1, 0
+ ldr r2, _082E4690
+ adds r4, r2, 0
+ movs r3, 0
+_082E4664:
+ ldr r0, [r4]
+ adds r0, 0xA
+ adds r0, r1
+ strb r3, [r0]
+ adds r0, r1, 0x1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x3
+ bls _082E4664
+ ldr r0, [r2]
+ movs r1, 0
+ strb r1, [r0, 0x1]
+ ldr r0, [r2]
+ strb r1, [r0, 0x2]
+ ldr r0, [r2]
+ strb r1, [r0, 0x3]
+ ldr r0, [r2]
+ strb r1, [r0, 0x7]
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_082E4690: .4byte 0x03007890
+_082E4694: .4byte 0x01000040
+ thumb_func_end rfu_STC_clearLinkStatus
+
+ thumb_func_start rfu_REQ_pollSearchChild
+rfu_REQ_pollSearchChild: @ 82E4698
+ push {lr}
+ ldr r0, _082E46A8
+ bl STWI_set_Callback_M
+ bl STWI_send_SC_PollingREQ
+ pop {r0}
+ bx r0
+ .align 2, 0
+_082E46A8: .4byte rfu_CB_pollAndEndSearchChild + 1
+ thumb_func_end rfu_REQ_pollSearchChild
+
+ thumb_func_start rfu_REQ_endSearchChild
+rfu_REQ_endSearchChild: @ 82E46AC
+ push {lr}
+ ldr r0, _082E46BC
+ bl STWI_set_Callback_M
+ bl STWI_send_SC_EndREQ
+ pop {r0}
+ bx r0
+ .align 2, 0
+_082E46BC: .4byte rfu_CB_pollAndEndSearchChild + 1
+ thumb_func_end rfu_REQ_endSearchChild
+
+ thumb_func_start rfu_CB_pollAndEndSearchChild
+rfu_CB_pollAndEndSearchChild: @ 82E46C0
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r1, 16
+ lsrs r6, r1, 16
+ cmp r6, 0
+ bne _082E46D2
+ bl rfu_STC_readChildList
+_082E46D2:
+ cmp r4, 0x1A
+ bne _082E4714
+ ldr r5, _082E4708
+ ldr r0, [r5]
+ adds r0, 0x94
+ ldrh r0, [r0]
+ cmp r0, 0
+ bne _082E4730
+ ldr r0, _082E470C
+ bl STWI_set_Callback_M
+ bl STWI_send_SystemStatusREQ
+ bl STWI_poll_CommandEnd
+ lsls r0, 16
+ cmp r0, 0
+ bne _082E4730
+ ldr r1, [r5]
+ ldr r0, _082E4710
+ ldr r0, [r0]
+ adds r0, 0xDC
+ ldr r0, [r0]
+ ldrh r0, [r0, 0x4]
+ adds r1, 0x94
+ strh r0, [r1]
+ b _082E4730
+ .align 2, 0
+_082E4708: .4byte 0x03007890
+_082E470C: .4byte rfu_CB_defaultCallback + 1
+_082E4710: .4byte 0x03007898
+_082E4714:
+ cmp r4, 0x1B
+ bne _082E4730
+ ldr r0, _082E4740
+ ldr r1, [r0]
+ ldrb r0, [r1]
+ cmp r0, 0xFF
+ bne _082E4728
+ adds r1, 0x94
+ movs r0, 0
+ strh r0, [r1]
+_082E4728:
+ ldr r0, _082E4744
+ ldr r1, [r0]
+ movs r0, 0
+ strb r0, [r1, 0x9]
+_082E4730:
+ adds r0, r4, 0
+ adds r1, r6, 0
+ bl rfu_STC_REQ_callback
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_082E4740: .4byte 0x03007890
+_082E4744: .4byte 0x03007894
+ thumb_func_end rfu_CB_pollAndEndSearchChild
+
+ thumb_func_start rfu_STC_readChildList
+rfu_STC_readChildList: @ 82E4748
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ ldr r0, _082E47F8
+ ldr r0, [r0]
+ adds r0, 0xDC
+ ldr r0, [r0]
+ ldrb r7, [r0, 0x1]
+ adds r6, r0, 0x4
+ cmp r7, 0
+ beq _082E47EE
+ ldr r0, _082E47FC
+ mov r8, r0
+ ldr r1, _082E4800
+ mov r12, r1
+_082E4766:
+ ldrb r4, [r6, 0x2]
+ cmp r4, 0x3
+ bhi _082E47E2
+ mov r2, r12
+ ldr r1, [r2]
+ ldrb r0, [r1, 0x2]
+ asrs r0, r4
+ movs r5, 0x1
+ ands r0, r5
+ cmp r0, 0
+ bne _082E47E2
+ ldrb r0, [r1, 0x3]
+ asrs r0, r4
+ ands r0, r5
+ cmp r0, 0
+ bne _082E47E2
+ mov r1, r8
+ ldr r0, [r1]
+ adds r0, 0xE
+ adds r0, r4
+ movs r1, 0xF0
+ strb r1, [r0]
+ ldr r0, [r2]
+ adds r0, 0xA
+ adds r0, r4
+ movs r1, 0x10
+ strb r1, [r0]
+ ldr r2, [r2]
+ adds r0, r5, 0
+ lsls r0, r4
+ ldrb r1, [r2, 0x2]
+ orrs r0, r1
+ strb r0, [r2, 0x2]
+ mov r2, r12
+ ldr r1, [r2]
+ ldrb r0, [r1, 0x1]
+ adds r0, 0x1
+ strb r0, [r1, 0x1]
+ ldr r1, [r2]
+ lsls r3, r4, 5
+ adds r1, r3
+ ldrh r0, [r6]
+ strh r0, [r1, 0x14]
+ strb r4, [r1, 0x16]
+ ldr r0, [r2]
+ strb r5, [r0]
+ mov r0, r8
+ ldr r2, [r0]
+ ldrb r1, [r2]
+ movs r0, 0x7F
+ ands r0, r1
+ strb r0, [r2]
+ mov r2, r8
+ ldr r1, [r2]
+ lsls r0, r4, 1
+ adds r1, 0x12
+ adds r1, r0
+ mov r2, r12
+ ldr r0, [r2]
+ adds r0, r3
+ ldrh r0, [r0, 0x14]
+ strh r0, [r1]
+_082E47E2:
+ subs r0, r7, 0x1
+ lsls r0, 24
+ lsrs r7, r0, 24
+ adds r6, 0x4
+ cmp r7, 0
+ bne _082E4766
+_082E47EE:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_082E47F8: .4byte 0x03007898
+_082E47FC: .4byte 0x03007894
+_082E4800: .4byte 0x03007890
+ thumb_func_end rfu_STC_readChildList
+
+ thumb_func_start rfu_REQ_startSearchParent
+rfu_REQ_startSearchParent: @ 82E4804
+ push {lr}
+ ldr r0, _082E4814
+ bl STWI_set_Callback_M
+ bl STWI_send_SP_StartREQ
+ pop {r0}
+ bx r0
+ .align 2, 0
+_082E4814: .4byte rfu_CB_startSearchParent + 1
+ thumb_func_end rfu_REQ_startSearchParent
+
+ thumb_func_start rfu_CB_startSearchParent
+rfu_CB_startSearchParent: @ 82E4818
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r1, 16
+ lsrs r1, 16
+ adds r4, r1, 0
+ cmp r4, 0
+ bne _082E482E
+ movs r0, 0
+ bl rfu_STC_clearLinkStatus
+_082E482E:
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl rfu_STC_REQ_callback
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end rfu_CB_startSearchParent
+
+ thumb_func_start rfu_REQ_pollSearchParent
+rfu_REQ_pollSearchParent: @ 82E483C
+ push {lr}
+ ldr r0, _082E484C
+ bl STWI_set_Callback_M
+ bl STWI_send_SP_PollingREQ
+ pop {r0}
+ bx r0
+ .align 2, 0
+_082E484C: .4byte sub_82E4850 + 1
+ thumb_func_end rfu_REQ_pollSearchParent
+
+ thumb_func_start sub_82E4850
+sub_82E4850: @ 82E4850
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r1, 16
+ lsrs r1, 16
+ adds r4, r1, 0
+ cmp r4, 0
+ bne _082E4864
+ bl rfu_STC_readParentCandidateList
+_082E4864:
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl rfu_STC_REQ_callback
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_82E4850
+
+ thumb_func_start rfu_REQ_endSearchParent
+rfu_REQ_endSearchParent: @ 82E4874
+ push {lr}
+ ldr r0, _082E4884
+ bl STWI_set_Callback_M
+ bl STWI_send_SP_EndREQ
+ pop {r0}
+ bx r0
+ .align 2, 0
+_082E4884: .4byte rfu_STC_REQ_callback + 1
+ thumb_func_end rfu_REQ_endSearchParent
+
+ thumb_func_start rfu_STC_readParentCandidateList
+rfu_STC_readParentCandidateList: @ 82E4888
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x4
+ mov r0, sp
+ movs r4, 0
+ strh r4, [r0]
+ ldr r5, _082E4930
+ ldr r1, [r5]
+ adds r1, 0x14
+ ldr r2, _082E4934
+ bl CpuSet
+ ldr r0, _082E4938
+ ldr r0, [r0]
+ adds r0, 0xDC
+ ldr r2, [r0]
+ ldrb r7, [r2, 0x1]
+ adds r2, 0x4
+ ldr r0, [r5]
+ strb r4, [r0, 0x8]
+ movs r6, 0
+ cmp r7, 0
+ beq _082E498C
+ mov r12, r5
+ ldr r0, _082E493C
+ mov r8, r0
+_082E48BE:
+ subs r0, r7, 0x7
+ lsls r0, 24
+ lsrs r7, r0, 24
+ adds r1, r2, 0x6
+ adds r2, 0x13
+ ldrb r0, [r2]
+ mvns r0, r0
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r2, 0x1
+ movs r4, 0
+ movs r3, 0
+ adds r6, 0x1
+_082E48D8:
+ ldrb r0, [r2]
+ adds r0, r4, r0
+ lsls r0, 24
+ adds r2, 0x1
+ lsrs r0, 24
+ ldrb r4, [r1]
+ adds r0, r4
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r1, 0x1
+ adds r0, r3, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0x7
+ bls _082E48D8
+ cmp r4, r5
+ bne _082E4980
+ subs r2, 0x1C
+ mov r0, r12
+ ldr r1, [r0]
+ ldrb r0, [r1, 0x8]
+ lsls r0, 5
+ adds r0, 0x14
+ adds r4, r1, r0
+ ldrh r0, [r2]
+ movs r3, 0
+ strh r0, [r4]
+ adds r2, 0x2
+ ldrb r0, [r2]
+ strb r0, [r4, 0x2]
+ adds r2, 0x2
+ ldrh r1, [r2]
+ mov r0, r8
+ ands r0, r1
+ strh r0, [r4, 0x4]
+ ldrh r1, [r2]
+ movs r0, 0x80
+ lsls r0, 8
+ ands r0, r1
+ cmp r0, 0
+ beq _082E4940
+ movs r0, 0x1
+ strb r0, [r4, 0x3]
+ b _082E4942
+ .align 2, 0
+_082E4930: .4byte 0x03007890
+_082E4934: .4byte 0x01000040
+_082E4938: .4byte 0x03007898
+_082E493C: .4byte 0x00007fff
+_082E4940:
+ strb r3, [r4, 0x3]
+_082E4942:
+ adds r2, 0x2
+ movs r3, 0
+ adds r5, r4, 0
+ adds r5, 0x15
+ adds r4, 0x6
+_082E494C:
+ adds r1, r4, r3
+ ldrb r0, [r2]
+ strb r0, [r1]
+ adds r2, 0x1
+ adds r0, r3, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0xC
+ bls _082E494C
+ adds r2, 0x1
+ movs r3, 0
+ adds r4, r5, 0
+_082E4964:
+ adds r1, r4, r3
+ ldrb r0, [r2]
+ strb r0, [r1]
+ adds r2, 0x1
+ adds r0, r3, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0x7
+ bls _082E4964
+ mov r4, r12
+ ldr r1, [r4]
+ ldrb r0, [r1, 0x8]
+ adds r0, 0x1
+ strb r0, [r1, 0x8]
+_082E4980:
+ lsls r0, r6, 24
+ lsrs r6, r0, 24
+ cmp r6, 0x3
+ bhi _082E498C
+ cmp r7, 0
+ bne _082E48BE
+_082E498C:
+ add sp, 0x4
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end rfu_STC_readParentCandidateList
+
+ thumb_func_start rfu_REQ_startConnectParent
+rfu_REQ_startConnectParent: @ 82E4998
+ push {r4,r5,lr}
+ lsls r0, 16
+ lsrs r4, r0, 16
+ movs r3, 0
+ movs r2, 0
+ ldr r1, _082E49E4
+ ldr r0, [r1]
+ ldrh r0, [r0, 0x14]
+ cmp r0, r4
+ beq _082E49C4
+ adds r5, r1, 0
+_082E49AE:
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x3
+ bhi _082E49C4
+ ldr r0, [r5]
+ lsls r1, r2, 5
+ adds r0, r1
+ ldrh r0, [r0, 0x14]
+ cmp r0, r4
+ bne _082E49AE
+_082E49C4:
+ cmp r2, 0x4
+ bne _082E49CC
+ movs r3, 0x80
+ lsls r3, 1
+_082E49CC:
+ cmp r3, 0
+ bne _082E49F0
+ ldr r0, _082E49E8
+ ldr r0, [r0]
+ strh r4, [r0, 0x1E]
+ ldr r0, _082E49EC
+ bl STWI_set_Callback_M
+ adds r0, r4, 0
+ bl STWI_send_CP_StartREQ
+ b _082E49F8
+ .align 2, 0
+_082E49E4: .4byte 0x03007890
+_082E49E8: .4byte 0x03007894
+_082E49EC: .4byte rfu_STC_REQ_callback + 1
+_082E49F0:
+ movs r0, 0x1F
+ adds r1, r3, 0
+ bl rfu_STC_REQ_callback
+_082E49F8:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end rfu_REQ_startConnectParent
+
+ thumb_func_start rfu_REQ_pollConnectParent
+rfu_REQ_pollConnectParent: @ 82E4A00
+ push {lr}
+ ldr r0, _082E4A10
+ bl STWI_set_Callback_M
+ bl STWI_send_CP_PollingREQ
+ pop {r0}
+ bx r0
+ .align 2, 0
+_082E4A10: .4byte rfu_CB_pollConnectParent + 1
+ thumb_func_end rfu_REQ_pollConnectParent
+
+ thumb_func_start rfu_CB_pollConnectParent
+rfu_CB_pollConnectParent: @ 82E4A14
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x2C
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp, 0x24]
+ lsls r1, 16
+ lsrs r1, 16
+ str r1, [sp, 0x28]
+ cmp r1, 0
+ bne _082E4B16
+ ldr r0, _082E4AD0
+ ldr r0, [r0]
+ adds r0, 0xDC
+ ldr r0, [r0]
+ ldrh r5, [r0, 0x4]
+ ldrb r1, [r0, 0x6]
+ mov r10, r1
+ ldrb r0, [r0, 0x7]
+ cmp r0, 0
+ bne _082E4B16
+ movs r0, 0x80
+ lsls r0, 17
+ lsls r0, r1
+ lsrs r2, r0, 24
+ ldr r4, _082E4AD4
+ ldr r3, [r4]
+ ldrb r1, [r3, 0x2]
+ adds r0, r2, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _082E4B16
+ adds r0, r2, 0
+ orrs r0, r1
+ strb r0, [r3, 0x2]
+ ldr r1, [r4]
+ ldrb r0, [r1, 0x3]
+ bics r0, r2
+ strb r0, [r1, 0x3]
+ ldr r1, [r4]
+ adds r0, r1, 0
+ adds r0, 0x94
+ movs r2, 0
+ strh r5, [r0]
+ ldrb r0, [r1, 0x1]
+ adds r0, 0x1
+ strb r0, [r1, 0x1]
+ ldr r0, [r4]
+ strb r2, [r0]
+ ldr r3, _082E4AD8
+ ldr r2, [r3]
+ ldrb r1, [r2]
+ movs r0, 0x80
+ orrs r0, r1
+ strb r0, [r2]
+ movs r5, 0
+ adds r7, r4, 0
+ add r6, sp, 0x20
+ movs r0, 0
+ mov r8, r0
+_082E4A92:
+ ldr r2, [r7]
+ lsls r4, r5, 5
+ adds r0, r2, r4
+ ldr r1, [r3]
+ ldrh r0, [r0, 0x14]
+ ldrh r1, [r1, 0x1E]
+ cmp r0, r1
+ bne _082E4AEA
+ ldrb r0, [r2, 0x8]
+ cmp r0, 0
+ beq _082E4AE0
+ mov r9, sp
+ adds r0, r4, 0
+ adds r0, 0x14
+ adds r0, r2, r0
+ mov r1, sp
+ movs r2, 0x10
+ bl CpuSet
+ mov r1, r8
+ strh r1, [r6]
+ ldr r1, [r7]
+ adds r1, 0x14
+ adds r0, r6, 0
+ ldr r2, _082E4ADC
+ bl CpuSet
+ ldr r0, [r7]
+ mov r1, r8
+ strb r1, [r0, 0x8]
+ b _082E4AF4
+ .align 2, 0
+_082E4AD0: .4byte 0x03007898
+_082E4AD4: .4byte 0x03007890
+_082E4AD8: .4byte 0x03007894
+_082E4ADC: .4byte 0x01000040
+_082E4AE0:
+ adds r0, r4, 0
+ adds r0, 0x14
+ adds r2, r0
+ mov r9, r2
+ b _082E4AF4
+_082E4AEA:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x3
+ bls _082E4A92
+_082E4AF4:
+ cmp r5, 0x3
+ bhi _082E4B16
+ ldr r4, _082E4B30
+ mov r0, r10
+ lsls r5, r0, 5
+ adds r0, r5, 0
+ adds r0, 0x14
+ ldr r1, [r4]
+ adds r1, r0
+ mov r0, r9
+ movs r2, 0x10
+ bl CpuSet
+ ldr r0, [r4]
+ adds r0, r5
+ mov r1, r10
+ strb r1, [r0, 0x16]
+_082E4B16:
+ ldr r0, [sp, 0x24]
+ ldr r1, [sp, 0x28]
+ bl rfu_STC_REQ_callback
+ add sp, 0x2C
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_082E4B30: .4byte 0x03007890
+ thumb_func_end rfu_CB_pollConnectParent
+
+ thumb_func_start rfu_getConnectParentStatus
+rfu_getConnectParentStatus: @ 82E4B34
+ push {lr}
+ adds r3, r0, 0
+ movs r0, 0xFF
+ strb r0, [r3]
+ ldr r0, _082E4B54
+ ldr r0, [r0]
+ adds r0, 0xDC
+ ldr r2, [r0]
+ ldrb r0, [r2]
+ adds r0, 0x60
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bls _082E4B58
+ movs r0, 0x10
+ b _082E4B64
+ .align 2, 0
+_082E4B54: .4byte 0x03007898
+_082E4B58:
+ adds r2, 0x6
+ ldrb r0, [r2]
+ strb r0, [r1]
+ ldrb r0, [r2, 0x1]
+ strb r0, [r3]
+ movs r0, 0
+_082E4B64:
+ pop {r1}
+ bx r1
+ thumb_func_end rfu_getConnectParentStatus
+
+ thumb_func_start rfu_REQ_endConnectParent
+rfu_REQ_endConnectParent: @ 82E4B68
+ push {lr}
+ ldr r0, _082E4B94
+ bl STWI_set_Callback_M
+ bl STWI_send_CP_EndREQ
+ ldr r0, _082E4B98
+ ldr r0, [r0]
+ adds r0, 0xDC
+ ldr r1, [r0]
+ ldrb r0, [r1, 0x6]
+ cmp r0, 0x3
+ bhi _082E4B90
+ ldr r0, _082E4B9C
+ ldr r0, [r0]
+ adds r0, 0xA
+ ldrb r1, [r1, 0x6]
+ adds r0, r1
+ movs r1, 0
+ strb r1, [r0]
+_082E4B90:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_082E4B94: .4byte rfu_CB_pollConnectParent + 1
+_082E4B98: .4byte 0x03007898
+_082E4B9C: .4byte 0x03007894
+ thumb_func_end rfu_REQ_endConnectParent
+
+ thumb_func_start rfu_syncVBlank
+rfu_syncVBlank: @ 82E4BA0
+ push {r4,r5,lr}
+ bl rfu_NI_checkCommFailCounter
+ ldr r0, _082E4BE8
+ ldr r0, [r0]
+ ldrb r0, [r0]
+ cmp r0, 0xFF
+ beq _082E4C78
+ ldr r4, _082E4BEC
+ ldr r1, [r4]
+ ldrb r0, [r1, 0x6]
+ cmp r0, 0
+ beq _082E4BBE
+ subs r0, 0x1
+ strb r0, [r1, 0x6]
+_082E4BBE:
+ bl rfu_getMasterSlave
+ lsls r0, 24
+ lsrs r3, r0, 24
+ ldr r2, [r4]
+ ldrb r1, [r2]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ bne _082E4BF0
+ cmp r3, 0
+ bne _082E4BFE
+ movs r0, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r1, [r4]
+ movs r0, 0xB4
+ lsls r0, 1
+ strh r0, [r1, 0x20]
+ b _082E4BFA
+ .align 2, 0
+_082E4BE8: .4byte 0x03007890
+_082E4BEC: .4byte 0x03007894
+_082E4BF0:
+ cmp r3, 0
+ beq _082E4C10
+ movs r0, 0xFB
+ ands r0, r1
+ strb r0, [r2]
+_082E4BFA:
+ cmp r3, 0
+ beq _082E4C10
+_082E4BFE:
+ ldr r3, _082E4C0C
+ ldr r2, [r3]
+ ldrb r1, [r2]
+ movs r0, 0xFD
+ ands r0, r1
+ b _082E4C1A
+ .align 2, 0
+_082E4C0C: .4byte 0x03007894
+_082E4C10:
+ ldr r3, _082E4C6C
+ ldr r2, [r3]
+ ldrb r1, [r2]
+ movs r0, 0x2
+ orrs r0, r1
+_082E4C1A:
+ strb r0, [r2]
+ ldr r3, [r3]
+ ldrb r1, [r3]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _082E4C78
+ ldrh r0, [r3, 0x20]
+ cmp r0, 0
+ bne _082E4C74
+ movs r0, 0xFB
+ ands r0, r1
+ strb r0, [r3]
+ ldr r0, _082E4C70
+ ldr r0, [r0]
+ ldrb r1, [r0, 0x2]
+ ldrb r0, [r0, 0x3]
+ adds r5, r0, 0
+ orrs r5, r1
+ movs r4, 0
+_082E4C42:
+ adds r0, r5, 0
+ asrs r0, r4
+ movs r1, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _082E4C54
+ adds r0, r4, 0
+ bl rfu_STC_removeLinkData
+_082E4C54:
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x3
+ bls _082E4C42
+ ldr r0, _082E4C70
+ ldr r1, [r0]
+ movs r0, 0xFF
+ strb r0, [r1]
+ movs r0, 0x1
+ b _082E4C7A
+ .align 2, 0
+_082E4C6C: .4byte 0x03007894
+_082E4C70: .4byte 0x03007890
+_082E4C74:
+ subs r0, 0x1
+ strh r0, [r3, 0x20]
+_082E4C78:
+ movs r0, 0
+_082E4C7A:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end rfu_syncVBlank
+
+ thumb_func_start rfu_REQBN_watchLink
+rfu_REQBN_watchLink: @ 82E4C80
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x18
+ mov r8, r1
+ str r2, [sp]
+ str r3, [sp, 0x4]
+ lsls r0, 16
+ lsrs r6, r0, 16
+ movs r0, 0
+ str r0, [sp, 0x8]
+ movs r1, 0
+ str r1, [sp, 0xC]
+ mov r2, r8
+ strb r1, [r2]
+ mov r0, sp
+ ldrb r1, [r0, 0xC]
+ ldr r0, [sp]
+ strb r1, [r0]
+ mov r2, sp
+ ldrb r0, [r2, 0xC]
+ ldr r2, [sp, 0x4]
+ strb r0, [r2]
+ ldr r5, _082E4D20
+ ldr r0, [r5]
+ ldrb r0, [r0]
+ cmp r0, 0xFF
+ bne _082E4CBE
+ b _082E504E
+_082E4CBE:
+ ldr r0, _082E4D24
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x14]
+ cmp r0, 0
+ bne _082E4CCA
+ b _082E504E
+_082E4CCA:
+ ldr r3, _082E4D28
+ ldr r2, [r3]
+ ldrb r1, [r2]
+ movs r4, 0x4
+ adds r0, r4, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _082E4CE0
+ movs r0, 0xB4
+ lsls r0, 1
+ strh r0, [r2, 0x20]
+_082E4CE0:
+ ldr r1, [r3]
+ ldrb r0, [r1, 0x6]
+ cmp r0, 0
+ bne _082E4CEE
+ strb r4, [r1, 0x6]
+ movs r1, 0x1
+ str r1, [sp, 0x8]
+_082E4CEE:
+ lsls r0, r6, 24
+ lsrs r0, 24
+ cmp r0, 0x29
+ bne _082E4D30
+ ldr r0, _082E4D2C
+ ldr r0, [r0]
+ adds r0, 0xDC
+ ldr r1, [r0]
+ ldrb r0, [r1, 0x4]
+ mov r2, r8
+ strb r0, [r2]
+ ldrb r0, [r1, 0x5]
+ ldr r1, [sp]
+ strb r0, [r1]
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _082E4D18
+ ldr r0, [r5]
+ ldrb r0, [r0, 0x2]
+ strb r0, [r2]
+_082E4D18:
+ movs r2, 0x2
+ str r2, [sp, 0x8]
+ b _082E4D88
+ .align 2, 0
+_082E4D20: .4byte 0x03007890
+_082E4D24: .4byte 0x03007868
+_082E4D28: .4byte 0x03007894
+_082E4D2C: .4byte 0x03007898
+_082E4D30:
+ movs r0, 0x9B
+ lsls r0, 1
+ cmp r6, r0
+ bne _082E4D80
+ ldr r0, _082E4DDC
+ ldr r0, [r0]
+ adds r0, 0xDC
+ ldr r0, [r0]
+ ldrb r6, [r0, 0x5]
+ ldr r0, [r5]
+ ldrb r0, [r0, 0x2]
+ eors r6, r0
+ ands r6, r0
+ mov r0, r8
+ strb r6, [r0]
+ movs r0, 0x1
+ ldr r1, [sp]
+ strb r0, [r1]
+ movs r5, 0
+_082E4D56:
+ mov r2, r8
+ ldrb r0, [r2]
+ asrs r0, r5
+ movs r1, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _082E4D76
+ ldr r0, _082E4DE0
+ ldr r0, [r0]
+ adds r0, 0xA
+ adds r0, r5
+ movs r1, 0
+ strb r1, [r0]
+ adds r0, r5, 0
+ bl rfu_STC_removeLinkData
+_082E4D76:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x3
+ bls _082E4D56
+_082E4D80:
+ ldr r0, [sp, 0x8]
+ cmp r0, 0
+ bne _082E4D88
+ b _082E504E
+_082E4D88:
+ ldr r4, _082E4DDC
+ ldr r0, [r4]
+ adds r0, 0xDC
+ ldr r0, [r0]
+ ldr r1, [r0]
+ str r1, [sp, 0x10]
+ ldr r0, [r0, 0x4]
+ str r0, [sp, 0x14]
+ ldr r0, _082E4DE4
+ bl STWI_set_Callback_M
+ bl STWI_send_LinkStatusREQ
+ bl STWI_poll_CommandEnd
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp, 0xC]
+ cmp r0, 0
+ bne _082E4DE8
+ ldr r0, [r4]
+ adds r0, 0xDC
+ ldr r0, [r0]
+ adds r2, r0, 0x4
+ movs r5, 0
+ ldr r3, _082E4DE0
+_082E4DBC:
+ ldr r0, [r3]
+ adds r0, 0xA
+ adds r0, r5
+ ldrb r1, [r2]
+ strb r1, [r0]
+ adds r2, 0x1
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x3
+ bls _082E4DBC
+ movs r2, 0
+ mov r9, r2
+ movs r5, 0
+ b _082E4DF4
+ .align 2, 0
+_082E4DDC: .4byte 0x03007898
+_082E4DE0: .4byte 0x03007890
+_082E4DE4: .4byte rfu_CB_defaultCallback + 1
+_082E4DE8:
+ movs r0, 0x11
+ ldr r1, [sp, 0xC]
+ bl rfu_STC_REQ_callback
+ ldr r0, [sp, 0xC]
+ b _082E5050
+_082E4DF4:
+ ldr r1, _082E4E7C
+ ldr r0, [r1]
+ adds r0, 0xE
+ adds r2, r0, r5
+ ldrb r0, [r2]
+ adds r3, r1, 0
+ cmp r0, 0
+ beq _082E4E1A
+ subs r0, 0x4
+ strb r0, [r2]
+ ldr r0, _082E4E80
+ ldr r0, [r0]
+ adds r0, 0xA
+ adds r1, r0, r5
+ ldrb r0, [r1]
+ cmp r0, 0xF
+ bhi _082E4E1A
+ movs r0, 0x10
+ strb r0, [r1]
+_082E4E1A:
+ movs r0, 0x80
+ lsls r0, 17
+ lsls r0, r5
+ lsrs r6, r0, 24
+ adds r0, r5, 0x1
+ mov r10, r0
+ ldr r1, [sp, 0xC]
+ cmp r1, 0
+ beq _082E4E2E
+ b _082E5002
+_082E4E2E:
+ ldr r2, [sp, 0x8]
+ cmp r2, 0x1
+ bne _082E4F10
+ ldr r4, _082E4E80
+ ldr r1, [r4]
+ ldrb r0, [r1, 0x2]
+ ands r0, r6
+ cmp r0, 0
+ beq _082E4F10
+ adds r0, r1, 0
+ adds r0, 0xA
+ adds r0, r5
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _082E4F04
+ ldrb r0, [r1]
+ cmp r0, 0x1
+ bne _082E4E84
+ ldr r1, [r3]
+ adds r1, 0xA
+ adds r1, r5
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ ldr r0, [r3]
+ adds r0, 0xA
+ adds r0, r5
+ ldrb r0, [r0]
+ cmp r0, 0x3
+ bls _082E4F10
+ mov r0, r8
+ ldrb r1, [r0]
+ adds r0, r6, 0
+ orrs r0, r1
+ mov r1, r8
+ strb r0, [r1]
+ ldr r0, [sp]
+ strb r2, [r0]
+ b _082E4F10
+ .align 2, 0
+_082E4E7C: .4byte 0x03007894
+_082E4E80: .4byte 0x03007890
+_082E4E84:
+ bl STWI_send_SystemStatusREQ
+ bl STWI_poll_CommandEnd
+ lsls r0, 16
+ cmp r0, 0
+ bne _082E4F10
+ ldr r0, _082E4EB4
+ ldr r0, [r0]
+ adds r0, 0xDC
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x7]
+ cmp r0, 0
+ bne _082E4EB8
+ mov r2, r8
+ ldrb r1, [r2]
+ adds r0, r6, 0
+ orrs r0, r1
+ strb r0, [r2]
+ mov r0, sp
+ ldrb r1, [r0, 0x8]
+ ldr r0, [sp]
+ b _082E4F0E
+ .align 2, 0
+_082E4EB4: .4byte 0x03007898
+_082E4EB8:
+ ldr r2, _082E4F00
+ ldr r1, [r2]
+ adds r1, 0xA
+ adds r1, r5
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ lsls r0, 24
+ ldr r2, [r2]
+ lsrs r0, 24
+ ldrh r1, [r2, 0x1A]
+ cmp r0, r1
+ bls _082E4F10
+ adds r0, r2, 0
+ adds r0, 0xA
+ adds r0, r5
+ mov r2, sp
+ ldrb r2, [r2, 0xC]
+ strb r2, [r0]
+ ldr r0, [r4]
+ ldrb r0, [r0, 0x2]
+ bl STWI_send_DisconnectREQ
+ bl STWI_poll_CommandEnd
+ mov r0, r8
+ ldrb r1, [r0]
+ adds r0, r6, 0
+ orrs r0, r1
+ mov r1, r8
+ strb r0, [r1]
+ mov r2, sp
+ ldrb r0, [r2, 0x8]
+ ldr r2, [sp]
+ strb r0, [r2]
+ b _082E4F10
+ .align 2, 0
+_082E4F00: .4byte 0x03007894
+_082E4F04:
+ ldr r0, [r3]
+ adds r0, 0xA
+ adds r0, r5
+ mov r1, sp
+ ldrb r1, [r1, 0xC]
+_082E4F0E:
+ strb r1, [r0]
+_082E4F10:
+ ldr r2, _082E4F70
+ mov r12, r2
+ ldr r1, [r2]
+ ldrb r7, [r1]
+ adds r0, r5, 0x1
+ mov r10, r0
+ cmp r7, 0x1
+ bne _082E5002
+ adds r0, r1, 0
+ adds r0, 0xA
+ adds r4, r0, r5
+ ldrb r3, [r4]
+ cmp r3, 0
+ beq _082E5002
+ ldrb r2, [r1, 0x3]
+ adds r0, r6, 0
+ ands r0, r2
+ cmp r0, 0
+ beq _082E4F7E
+ cmp r3, 0xA
+ bls _082E4F78
+ ldr r2, [sp, 0x4]
+ ldrb r1, [r2]
+ adds r0, r6, 0
+ orrs r0, r1
+ strb r0, [r2]
+ mov r0, r12
+ ldr r2, [r0]
+ ldrb r1, [r2, 0x2]
+ adds r0, r6, 0
+ orrs r0, r1
+ movs r3, 0
+ strb r0, [r2, 0x2]
+ mov r2, r12
+ ldr r1, [r2]
+ ldrb r0, [r1, 0x3]
+ bics r0, r6
+ strb r0, [r1, 0x3]
+ ldr r1, [r2]
+ ldrb r0, [r1, 0x1]
+ adds r0, 0x1
+ strb r0, [r1, 0x1]
+ ldr r0, _082E4F74
+ ldr r0, [r0]
+ adds r0, 0xA
+ adds r0, r5
+ strb r3, [r0]
+ b _082E5002
+ .align 2, 0
+_082E4F70: .4byte 0x03007890
+_082E4F74: .4byte 0x03007894
+_082E4F78:
+ movs r0, 0
+ strb r0, [r4]
+ b _082E5002
+_082E4F7E:
+ ldrb r0, [r1, 0x2]
+ orrs r0, r2
+ ands r0, r6
+ cmp r0, 0
+ bne _082E5002
+ bl STWI_send_SlotStatusREQ
+ bl STWI_poll_CommandEnd
+ ldr r0, _082E4FC8
+ ldr r0, [r0]
+ adds r0, 0xDC
+ ldr r2, [r0]
+ ldrb r0, [r2, 0x1]
+ subs r0, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ adds r2, 0x8
+ cmp r3, 0
+ beq _082E5002
+ ldrh r4, [r2]
+ ldrb r0, [r2, 0x2]
+ cmp r0, r5
+ bne _082E4FD0
+ ldr r0, _082E4FCC
+ ldr r0, [r0]
+ lsls r1, r5, 1
+ adds r0, 0x12
+ adds r0, r1
+ ldrh r0, [r0]
+ cmp r4, r0
+ bne _082E4FD0
+ lsls r7, r5
+ mov r0, r9
+ orrs r0, r7
+ lsls r0, 24
+ b _082E4FFE
+ .align 2, 0
+_082E4FC8: .4byte 0x03007898
+_082E4FCC: .4byte 0x03007894
+_082E4FD0:
+ adds r2, 0x4
+ subs r0, r3, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0
+ beq _082E5002
+ ldrh r4, [r2]
+ ldrb r0, [r2, 0x2]
+ cmp r0, r5
+ bne _082E4FD0
+ ldr r0, _082E5060
+ ldr r0, [r0]
+ lsls r1, r5, 1
+ adds r0, 0x12
+ adds r0, r1
+ ldrh r0, [r0]
+ cmp r4, r0
+ bne _082E4FD0
+ movs r0, 0x1
+ lsls r0, r5
+ mov r1, r9
+ orrs r1, r0
+ lsls r0, r1, 24
+_082E4FFE:
+ lsrs r0, 24
+ mov r9, r0
+_082E5002:
+ ldr r0, _082E5064
+ ldr r0, [r0]
+ ldrb r1, [r0, 0x2]
+ mov r2, r8
+ ldrb r0, [r2]
+ ands r0, r1
+ ands r6, r0
+ cmp r6, 0
+ beq _082E501C
+ adds r0, r5, 0
+ movs r1, 0
+ bl rfu_STC_removeLinkData
+_082E501C:
+ mov r1, r10
+ lsls r0, r1, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x3
+ bhi _082E5028
+ b _082E4DF4
+_082E5028:
+ mov r2, r9
+ cmp r2, 0
+ beq _082E5038
+ mov r0, r9
+ bl STWI_send_DisconnectREQ
+ bl STWI_poll_CommandEnd
+_082E5038:
+ ldr r1, _082E5068
+ ldr r0, [r1]
+ adds r0, 0xDC
+ ldr r0, [r0]
+ ldr r2, [sp, 0x10]
+ str r2, [r0]
+ ldr r0, [r1]
+ adds r0, 0xDC
+ ldr r0, [r0]
+ ldr r1, [sp, 0x14]
+ str r1, [r0, 0x4]
+_082E504E:
+ movs r0, 0
+_082E5050:
+ add sp, 0x18
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_082E5060: .4byte 0x03007894
+_082E5064: .4byte 0x03007890
+_082E5068: .4byte 0x03007898
+ thumb_func_end rfu_REQBN_watchLink
+
+ thumb_func_start rfu_STC_removeLinkData
+rfu_STC_removeLinkData: @ 82E506C
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r7, r0, 24
+ lsls r1, 24
+ lsrs r1, 24
+ mov r12, r1
+ movs r0, 0x80
+ lsls r0, 17
+ lsls r0, r7
+ lsrs r6, r0, 24
+ ldr r0, _082E511C
+ ldr r0, [r0]
+ adds r0, 0xE
+ adds r0, r7
+ movs r1, 0
+ strb r1, [r0]
+ ldr r1, _082E5120
+ ldr r4, [r1]
+ ldrb r0, [r4, 0x2]
+ ands r0, r6
+ mov r8, r1
+ cmp r0, 0
+ beq _082E50AA
+ ldrb r0, [r4, 0x1]
+ cmp r0, 0
+ beq _082E50AA
+ subs r0, 0x1
+ strb r0, [r4, 0x1]
+_082E50AA:
+ mov r3, r8
+ ldr r2, [r3]
+ mvns r5, r6
+ ldrb r1, [r2, 0x2]
+ adds r0, r5, 0
+ ands r0, r1
+ strb r0, [r2, 0x2]
+ ldr r2, [r3]
+ ldrb r1, [r2, 0x3]
+ adds r0, r6, 0
+ orrs r0, r1
+ strb r0, [r2, 0x3]
+ ldr r3, [r3]
+ ldr r0, [r3]
+ ldr r1, _082E5124
+ ands r0, r1
+ cmp r0, 0
+ bne _082E50D2
+ movs r0, 0xFF
+ strb r0, [r3]
+_082E50D2:
+ mov r0, r12
+ cmp r0, 0
+ beq _082E5110
+ mov r1, sp
+ movs r4, 0
+ movs r0, 0
+ strh r0, [r1]
+ lsls r0, r7, 5
+ adds r0, 0x14
+ mov r2, r8
+ ldr r1, [r2]
+ adds r1, r0
+ ldr r2, _082E5128
+ mov r0, sp
+ bl CpuSet
+ mov r0, r8
+ ldr r2, [r0]
+ ldrb r1, [r2, 0x3]
+ adds r0, r5, 0
+ ands r0, r1
+ strb r0, [r2, 0x3]
+ mov r2, r8
+ ldr r1, [r2]
+ ldrb r0, [r1, 0x7]
+ ands r5, r0
+ strb r5, [r1, 0x7]
+ ldr r0, [r2]
+ adds r0, 0xA
+ adds r0, r7
+ strb r4, [r0]
+_082E5110:
+ add sp, 0x4
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_082E511C: .4byte 0x03007894
+_082E5120: .4byte 0x03007890
+_082E5124: .4byte 0x00ff00ff
+_082E5128: .4byte 0x01000010
+ thumb_func_end rfu_STC_removeLinkData
+
+ thumb_func_start rfu_REQ_disconnect
+rfu_REQ_disconnect: @ 82E512C
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r2, _082E5170
+ ldr r1, [r2]
+ ldrb r0, [r1, 0x2]
+ ldrb r1, [r1, 0x3]
+ orrs r0, r1
+ ands r0, r4
+ cmp r0, 0
+ beq _082E51B0
+ ldr r0, _082E5174
+ ldr r1, [r0]
+ strb r4, [r1, 0x5]
+ ldr r2, [r2]
+ ldrb r1, [r2]
+ adds r3, r0, 0
+ cmp r1, 0xFF
+ bne _082E5178
+ ldr r0, [r3]
+ ldrb r1, [r0]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _082E5178
+ ldrb r0, [r2, 0x3]
+ ands r0, r4
+ cmp r0, 0
+ beq _082E51B0
+ movs r0, 0x30
+ movs r1, 0
+ bl rfu_CB_disconnect
+ b _082E51B0
+ .align 2, 0
+_082E5170: .4byte 0x03007890
+_082E5174: .4byte 0x03007894
+_082E5178:
+ ldr r0, [r3]
+ ldrb r0, [r0, 0x9]
+ cmp r0, 0
+ beq _082E51A4
+ ldr r0, _082E51A0
+ bl STWI_set_Callback_M
+ bl STWI_send_SC_EndREQ
+ bl STWI_poll_CommandEnd
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, 0
+ beq _082E51A4
+ movs r0, 0x1B
+ bl rfu_STC_REQ_callback
+ b _082E51B0
+ .align 2, 0
+_082E51A0: .4byte rfu_CB_defaultCallback + 1
+_082E51A4:
+ ldr r0, _082E51B8
+ bl STWI_set_Callback_M
+ adds r0, r4, 0
+ bl STWI_send_DisconnectREQ
+_082E51B0:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_082E51B8: .4byte rfu_CB_disconnect + 1
+ thumb_func_end rfu_REQ_disconnect
+
+ thumb_func_start rfu_CB_disconnect
+rfu_CB_disconnect: @ 82E51BC
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ lsls r1, 16
+ lsrs r5, r1, 16
+ cmp r5, 0x3
+ bne _082E51F8
+ ldr r0, _082E528C
+ ldr r0, [r0]
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _082E51F8
+ ldr r0, _082E5290
+ bl STWI_set_Callback_M
+ bl STWI_send_SystemStatusREQ
+ bl STWI_poll_CommandEnd
+ lsls r0, 16
+ cmp r0, 0
+ bne _082E51F8
+ ldr r0, _082E5294
+ ldr r0, [r0]
+ adds r0, 0xDC
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x7]
+ cmp r0, 0
+ bne _082E51F8
+ movs r5, 0
+_082E51F8:
+ ldr r3, _082E5298
+ ldr r2, [r3]
+ ldr r0, _082E528C
+ ldr r1, [r0]
+ ldrb r0, [r1, 0x2]
+ ldrb r1, [r1, 0x3]
+ orrs r0, r1
+ ldrb r1, [r2, 0x5]
+ ands r0, r1
+ strb r0, [r2, 0x5]
+ ldr r0, _082E5294
+ ldr r0, [r0]
+ adds r0, 0xDC
+ ldr r1, [r0]
+ ldr r0, [r3]
+ ldrb r0, [r0, 0x5]
+ strb r0, [r1, 0x8]
+ cmp r5, 0
+ bne _082E5246
+ movs r4, 0
+_082E5220:
+ movs r0, 0x80
+ lsls r0, 17
+ lsls r0, r4
+ lsrs r0, 24
+ ldr r1, _082E5298
+ ldr r1, [r1]
+ ldrb r1, [r1, 0x5]
+ ands r0, r1
+ cmp r0, 0
+ beq _082E523C
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl rfu_STC_removeLinkData
+_082E523C:
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x3
+ bls _082E5220
+_082E5246:
+ ldr r0, _082E528C
+ ldr r2, [r0]
+ ldrb r1, [r2, 0x2]
+ ldrb r0, [r2, 0x3]
+ orrs r0, r1
+ cmp r0, 0
+ bne _082E5258
+ movs r0, 0xFF
+ strb r0, [r2]
+_082E5258:
+ adds r0, r6, 0
+ adds r1, r5, 0
+ bl rfu_STC_REQ_callback
+ ldr r0, _082E5298
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x9]
+ cmp r0, 0
+ beq _082E5286
+ ldr r0, _082E5290
+ bl STWI_set_Callback_M
+ bl STWI_send_SC_StartREQ
+ bl STWI_poll_CommandEnd
+ adds r5, r0, 0
+ cmp r5, 0
+ beq _082E5286
+ movs r0, 0x19
+ adds r1, r5, 0
+ bl rfu_STC_REQ_callback
+_082E5286:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_082E528C: .4byte 0x03007890
+_082E5290: .4byte rfu_CB_defaultCallback + 1
+_082E5294: .4byte 0x03007898
+_082E5298: .4byte 0x03007894
+ thumb_func_end rfu_CB_disconnect
+
+ thumb_func_start rfu_REQ_CHILD_startConnectRecovery
+rfu_REQ_CHILD_startConnectRecovery: @ 82E529C
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r0, _082E52EC
+ ldr r0, [r0]
+ strb r5, [r0, 0x5]
+ movs r4, 0
+ movs r0, 0x1
+ ands r0, r5
+ ldr r2, _082E52F0
+ cmp r0, 0
+ bne _082E52CA
+ movs r1, 0x1
+_082E52B6:
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x3
+ bhi _082E52CA
+ adds r0, r5, 0
+ asrs r0, r4
+ ands r0, r1
+ cmp r0, 0
+ beq _082E52B6
+_082E52CA:
+ adds r0, r2, 0
+ bl STWI_set_Callback_M
+ ldr r0, _082E52F4
+ ldr r1, [r0]
+ lsls r0, r4, 5
+ adds r0, r1, r0
+ ldrh r0, [r0, 0x14]
+ adds r1, 0x94
+ ldrh r1, [r1]
+ adds r2, r5, 0
+ bl STWI_send_CPR_StartREQ
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_082E52EC: .4byte 0x03007894
+_082E52F0: .4byte rfu_STC_REQ_callback + 1
+_082E52F4: .4byte 0x03007890
+ thumb_func_end rfu_REQ_CHILD_startConnectRecovery
+
+ thumb_func_start rfu_REQ_CHILD_pollConnectRecovery
+rfu_REQ_CHILD_pollConnectRecovery: @ 82E52F8
+ push {lr}
+ ldr r0, _082E5308
+ bl STWI_set_Callback_M
+ bl STWI_send_CPR_PollingREQ
+ pop {r0}
+ bx r0
+ .align 2, 0
+_082E5308: .4byte rfu_CB_CHILD_pollConnectRecovery + 1
+ thumb_func_end rfu_REQ_CHILD_pollConnectRecovery
+
+ thumb_func_start rfu_CB_CHILD_pollConnectRecovery
+rfu_CB_CHILD_pollConnectRecovery: @ 82E530C
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ lsls r1, 16
+ lsrs r7, r1, 16
+ cmp r7, 0
+ bne _082E5390
+ ldr r0, _082E53A4
+ ldr r0, [r0]
+ adds r0, 0xDC
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x4]
+ cmp r0, 0
+ bne _082E5390
+ ldr r0, _082E53A8
+ ldr r1, [r0]
+ ldrb r1, [r1, 0x5]
+ adds r6, r0, 0
+ cmp r1, 0
+ beq _082E5390
+ ldr r1, _082E53AC
+ ldr r0, [r1]
+ strb r7, [r0]
+ movs r4, 0
+ adds r5, r1, 0
+ mov r12, r4
+_082E5346:
+ movs r0, 0x80
+ lsls r0, 17
+ lsls r0, r4
+ lsrs r3, r0, 24
+ ldr r2, [r5]
+ ldr r0, [r6]
+ ldrb r0, [r0, 0x5]
+ ands r0, r3
+ ldrb r1, [r2, 0x3]
+ ands r0, r1
+ cmp r0, 0
+ beq _082E5380
+ ldrb r1, [r2, 0x2]
+ adds r0, r3, 0
+ orrs r0, r1
+ strb r0, [r2, 0x2]
+ ldr r1, [r5]
+ ldrb r0, [r1, 0x3]
+ bics r0, r3
+ strb r0, [r1, 0x3]
+ ldr r1, [r5]
+ ldrb r0, [r1, 0x1]
+ adds r0, 0x1
+ strb r0, [r1, 0x1]
+ ldr r0, [r6]
+ adds r0, 0xA
+ adds r0, r4
+ mov r1, r12
+ strb r1, [r0]
+_082E5380:
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x3
+ bls _082E5346
+ ldr r1, [r6]
+ movs r0, 0
+ strb r0, [r1, 0x5]
+_082E5390:
+ mov r0, r8
+ adds r1, r7, 0
+ bl rfu_STC_REQ_callback
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_082E53A4: .4byte 0x03007898
+_082E53A8: .4byte 0x03007894
+_082E53AC: .4byte 0x03007890
+ thumb_func_end rfu_CB_CHILD_pollConnectRecovery
+
+ thumb_func_start rfu_CHILD_getConnectRecoveryStatus
+rfu_CHILD_getConnectRecoveryStatus: @ 82E53B0
+ push {lr}
+ adds r2, r0, 0
+ movs r0, 0xFF
+ strb r0, [r2]
+ ldr r0, _082E53D0
+ ldr r0, [r0]
+ adds r0, 0xDC
+ ldr r1, [r0]
+ ldrb r0, [r1]
+ adds r0, 0x4D
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bls _082E53D4
+ movs r0, 0x10
+ b _082E53DA
+ .align 2, 0
+_082E53D0: .4byte 0x03007898
+_082E53D4:
+ ldrb r0, [r1, 0x4]
+ strb r0, [r2]
+ movs r0, 0
+_082E53DA:
+ pop {r1}
+ bx r1
+ thumb_func_end rfu_CHILD_getConnectRecoveryStatus
+
+ thumb_func_start rfu_REQ_CHILD_endConnectRecovery
+rfu_REQ_CHILD_endConnectRecovery: @ 82E53E0
+ push {lr}
+ ldr r0, _082E53F0
+ bl STWI_set_Callback_M
+ bl STWI_send_CPR_EndREQ
+ pop {r0}
+ bx r0
+ .align 2, 0
+_082E53F0: .4byte rfu_CB_CHILD_pollConnectRecovery + 1
+ thumb_func_end rfu_REQ_CHILD_endConnectRecovery
+
+ thumb_func_start sub_82E53F4
+sub_82E53F4: @ 82E53F4
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ adds r6, r1, 0
+ ldr r3, [r5]
+ ldr r1, [r6]
+ subs r2, 0x1
+ movs r0, 0x1
+ negs r0, r0
+ cmp r2, r0
+ beq _082E5418
+ adds r4, r0, 0
+ thumb_func_end sub_82E53F4
+
+ non_word_aligned_thumb_func_start sub_82E540A
+sub_82E540A: @ 82E540A
+ ldrb r0, [r3]
+ strb r0, [r1]
+ adds r3, 0x1
+ adds r1, 0x1
+ subs r2, 0x1
+ cmp r2, r4
+ bne sub_82E540A
+_082E5418:
+ str r3, [r5]
+ str r1, [r6]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_82E540A
+
+ thumb_func_start rfu_REQ_changeMasterSlave
+rfu_REQ_changeMasterSlave: @ 82E5424
+ push {lr}
+ movs r0, 0x1
+ bl STWI_read_status
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x1
+ bne _082E5444
+ ldr r0, _082E5440
+ bl STWI_set_Callback_M
+ bl STWI_send_MS_ChangeREQ
+ b _082E544C
+ .align 2, 0
+_082E5440: .4byte rfu_STC_REQ_callback + 1
+_082E5444:
+ movs r0, 0x27
+ movs r1, 0
+ bl rfu_STC_REQ_callback
+_082E544C:
+ pop {r0}
+ bx r0
+ thumb_func_end rfu_REQ_changeMasterSlave
+
+ thumb_func_start rfu_getMasterSlave
+rfu_getMasterSlave: @ 82E5450
+ push {lr}
+ movs r0, 0x1
+ bl STWI_read_status
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x1
+ bne _082E547E
+ ldr r0, _082E5484
+ ldr r1, [r0]
+ adds r0, r1, 0
+ adds r0, 0x2C
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _082E547E
+ ldrb r0, [r1, 0x6]
+ cmp r0, 0x27
+ beq _082E547C
+ cmp r0, 0x25
+ beq _082E547C
+ cmp r0, 0x37
+ bne _082E547E
+_082E547C:
+ movs r2, 0
+_082E547E:
+ adds r0, r2, 0
+ pop {r1}
+ bx r1
+ .align 2, 0
+_082E5484: .4byte 0x03007868
+ thumb_func_end rfu_getMasterSlave
+
+ thumb_func_start rfu_clearAllSlot
+rfu_clearAllSlot: @ 82E5488
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x4
+ ldr r1, _082E550C
+ ldrh r0, [r1]
+ mov r8, r0
+ movs r0, 0
+ strh r0, [r1]
+ movs r5, 0
+ mov r0, sp
+ adds r0, 0x2
+ movs r7, 0
+ adds r6, r0, 0
+_082E54A4:
+ mov r0, sp
+ strh r7, [r0]
+ ldr r0, _082E5510
+ lsls r4, r5, 2
+ adds r0, r4, r0
+ ldr r1, [r0]
+ mov r0, sp
+ ldr r2, _082E5514
+ bl CpuSet
+ strh r7, [r6]
+ ldr r0, _082E5518
+ adds r4, r0
+ ldr r1, [r4]
+ adds r0, r6, 0
+ ldr r2, _082E551C
+ bl CpuSet
+ ldr r3, _082E5520
+ ldr r0, [r3]
+ adds r0, 0x10
+ adds r0, r5
+ movs r1, 0x10
+ strb r1, [r0]
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0x3
+ bls _082E54A4
+ ldr r2, [r3]
+ movs r1, 0
+ movs r0, 0x57
+ strb r0, [r2, 0xF]
+ ldr r0, [r3]
+ strb r1, [r0, 0x4]
+ ldr r0, [r3]
+ strb r1, [r0, 0x5]
+ ldr r0, [r3]
+ strb r1, [r0, 0x6]
+ ldr r0, _082E5524
+ ldr r0, [r0]
+ strb r1, [r0, 0x2]
+ ldr r0, _082E550C
+ mov r1, r8
+ strh r1, [r0]
+ add sp, 0x4
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_082E550C: .4byte 0x04000208
+_082E5510: .4byte 0x03007880
+_082E5514: .4byte 0x01000034
+_082E5518: .4byte 0x03007870
+_082E551C: .4byte 0x0100000a
+_082E5520: .4byte 0x03007890
+_082E5524: .4byte 0x03007894
+ thumb_func_end rfu_clearAllSlot
+
+ thumb_func_start rfu_STC_releaseFrame
+rfu_STC_releaseFrame: @ 82E5528
+ push {r4-r6,lr}
+ adds r4, r2, 0
+ lsls r0, 24
+ lsrs r2, r0, 24
+ adds r5, r2, 0
+ lsls r1, 24
+ lsrs r3, r1, 24
+ ldr r0, _082E5560
+ ldr r0, [r0]
+ ldrb r1, [r0]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _082E5568
+ ldr r6, _082E5564
+ cmp r3, 0
+ bne _082E5554
+ ldr r1, [r6]
+ ldrb r0, [r1, 0xF]
+ ldrh r4, [r4, 0x2E]
+ adds r0, r4
+ strb r0, [r1, 0xF]
+_082E5554:
+ ldr r1, [r6]
+ ldrb r0, [r1, 0xF]
+ adds r0, 0x3
+ strb r0, [r1, 0xF]
+ b _082E5588
+ .align 2, 0
+_082E5560: .4byte 0x03007894
+_082E5564: .4byte 0x03007890
+_082E5568:
+ ldr r6, _082E5590
+ cmp r3, 0
+ bne _082E557C
+ ldr r1, [r6]
+ adds r1, 0x10
+ adds r1, r2
+ ldrb r0, [r1]
+ ldrh r4, [r4, 0x2E]
+ adds r0, r4
+ strb r0, [r1]
+_082E557C:
+ ldr r1, [r6]
+ adds r1, 0x10
+ adds r1, r5
+ ldrb r0, [r1]
+ adds r0, 0x2
+ strb r0, [r1]
+_082E5588:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_082E5590: .4byte 0x03007890
+ thumb_func_end rfu_STC_releaseFrame
+
+ thumb_func_start rfu_clearSlot
+rfu_clearSlot: @ 82E5594
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ lsls r1, 24
+ lsrs r7, r1, 24
+ cmp r7, 0x3
+ bls _082E55B4
+ movs r0, 0x80
+ lsls r0, 3
+ b _082E572C
+_082E55B4:
+ movs r0, 0xF
+ mov r1, r8
+ ands r0, r1
+ cmp r0, 0
+ bne _082E55C4
+ movs r0, 0xC0
+ lsls r0, 3
+ b _082E572C
+_082E55C4:
+ ldr r1, _082E5608
+ ldrh r0, [r1]
+ mov r10, r0
+ movs r0, 0
+ strh r0, [r1]
+ movs r0, 0xC
+ mov r2, r8
+ ands r0, r2
+ cmp r0, 0
+ beq _082E568C
+ movs r3, 0
+ ldr r1, _082E560C
+ lsls r0, r7, 2
+ adds r0, r1
+ mov r9, r0
+_082E55E2:
+ movs r4, 0
+ cmp r3, 0
+ bne _082E5614
+ movs r0, 0x4
+ mov r1, r8
+ ands r0, r1
+ cmp r0, 0
+ beq _082E5634
+ mov r2, r9
+ ldr r4, [r2]
+ ldr r0, _082E5610
+ ldr r2, [r0]
+ adds r0, r4, 0
+ adds r0, 0x2C
+ ldrb r1, [r0]
+ ldrb r0, [r2, 0x4]
+ bics r0, r1
+ strb r0, [r2, 0x4]
+ b _082E5634
+ .align 2, 0
+_082E5608: .4byte 0x04000208
+_082E560C: .4byte 0x03007880
+_082E5610: .4byte 0x03007890
+_082E5614:
+ movs r0, 0x8
+ mov r1, r8
+ ands r0, r1
+ cmp r0, 0
+ beq _082E5634
+ mov r2, r9
+ ldr r0, [r2]
+ adds r4, r0, 0
+ adds r4, 0x34
+ ldr r0, _082E56C8
+ ldr r2, [r0]
+ movs r1, 0x1
+ lsls r1, r7
+ ldrb r0, [r2, 0x5]
+ bics r0, r1
+ strb r0, [r2, 0x5]
+_082E5634:
+ adds r6, r3, 0x1
+ cmp r4, 0
+ beq _082E5684
+ ldrh r0, [r4]
+ movs r2, 0x80
+ lsls r2, 8
+ adds r1, r2, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _082E5674
+ lsls r1, r3, 24
+ lsrs r1, 24
+ adds r0, r7, 0
+ adds r2, r4, 0
+ bl rfu_STC_releaseFrame
+ movs r1, 0
+ adds r2, r4, 0
+ adds r2, 0x2C
+ movs r5, 0x1
+ movs r3, 0
+_082E565E:
+ ldrb r0, [r2]
+ asrs r0, r1
+ ands r0, r5
+ cmp r0, 0
+ beq _082E566A
+ strh r3, [r4, 0x2]
+_082E566A:
+ adds r0, r1, 0x1
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, 0x3
+ bls _082E565E
+_082E5674:
+ mov r1, sp
+ movs r0, 0
+ strh r0, [r1]
+ mov r0, sp
+ adds r1, r4, 0
+ ldr r2, _082E56CC
+ bl CpuSet
+_082E5684:
+ lsls r0, r6, 16
+ lsrs r3, r0, 16
+ cmp r3, 0x1
+ bls _082E55E2
+_082E568C:
+ movs r0, 0x1
+ mov r4, r8
+ ands r0, r4
+ cmp r0, 0
+ beq _082E5702
+ ldr r1, _082E56D0
+ lsls r0, r7, 2
+ adds r0, r1
+ ldr r3, [r0]
+ ldrh r1, [r3]
+ movs r0, 0x80
+ lsls r0, 8
+ ands r0, r1
+ cmp r0, 0
+ beq _082E56F4
+ ldr r0, _082E56D4
+ ldr r0, [r0]
+ ldrb r1, [r0]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _082E56D8
+ ldr r2, _082E56C8
+ ldr r1, [r2]
+ ldrb r0, [r1, 0xF]
+ adds r0, 0x3
+ ldrb r4, [r3, 0x4]
+ adds r0, r4
+ strb r0, [r1, 0xF]
+ b _082E56EA
+ .align 2, 0
+_082E56C8: .4byte 0x03007890
+_082E56CC: .4byte 0x0100001a
+_082E56D0: .4byte 0x03007870
+_082E56D4: .4byte 0x03007894
+_082E56D8:
+ ldr r2, _082E573C
+ ldr r1, [r2]
+ adds r1, 0x10
+ adds r1, r7
+ ldrb r0, [r1]
+ adds r0, 0x2
+ ldrb r4, [r3, 0x4]
+ adds r0, r4
+ strb r0, [r1]
+_082E56EA:
+ ldr r2, [r2]
+ ldrb r1, [r3, 0x3]
+ ldrb r0, [r2, 0x6]
+ bics r0, r1
+ strb r0, [r2, 0x6]
+_082E56F4:
+ mov r0, sp
+ movs r1, 0
+ strh r1, [r0]
+ ldr r2, _082E5740
+ adds r1, r3, 0
+ bl CpuSet
+_082E5702:
+ movs r0, 0x2
+ mov r1, r8
+ ands r0, r1
+ cmp r0, 0
+ beq _082E5724
+ mov r1, sp
+ movs r0, 0
+ strh r0, [r1]
+ ldr r1, _082E5744
+ lsls r0, r7, 2
+ adds r0, r1
+ ldr r1, [r0]
+ adds r1, 0xC
+ ldr r2, _082E5748
+ mov r0, sp
+ bl CpuSet
+_082E5724:
+ ldr r0, _082E574C
+ mov r2, r10
+ strh r2, [r0]
+ movs r0, 0
+_082E572C:
+ add sp, 0x4
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_082E573C: .4byte 0x03007890
+_082E5740: .4byte 0x01000006
+_082E5744: .4byte 0x03007870
+_082E5748: .4byte 0x01000004
+_082E574C: .4byte 0x04000208
+ thumb_func_end rfu_clearSlot
+
+ thumb_func_start rfu_setRecvBuffer
+rfu_setRecvBuffer: @ 82E5750
+ push {r4-r6,lr}
+ adds r5, r2, 0
+ adds r6, r3, 0
+ lsls r0, 24
+ lsrs r3, r0, 24
+ adds r2, r3, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r4, r1, 0
+ cmp r1, 0x3
+ bls _082E576C
+ movs r0, 0x80
+ lsls r0, 3
+ b _082E57A4
+_082E576C:
+ movs r0, 0x20
+ ands r0, r3
+ cmp r0, 0
+ beq _082E5788
+ ldr r0, _082E5784
+ lsls r1, 2
+ adds r1, r0
+ ldr r0, [r1]
+ str r5, [r0, 0x68]
+ str r6, [r0, 0x6C]
+ b _082E57A2
+ .align 2, 0
+_082E5784: .4byte 0x03007880
+_082E5788:
+ movs r0, 0x10
+ ands r2, r0
+ cmp r2, 0
+ bne _082E5796
+ movs r0, 0xC0
+ lsls r0, 3
+ b _082E57A4
+_082E5796:
+ ldr r0, _082E57AC
+ lsls r1, r4, 2
+ adds r1, r0
+ ldr r0, [r1]
+ str r5, [r0, 0x14]
+ str r6, [r0, 0x18]
+_082E57A2:
+ movs r0, 0
+_082E57A4:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_082E57AC: .4byte 0x03007870
+ thumb_func_end rfu_setRecvBuffer
+
+ thumb_func_start rfu_NI_setSendData
+rfu_NI_setSendData: @ 82E57B0
+ push {r4-r6,lr}
+ sub sp, 0x4
+ adds r4, r0, 0
+ adds r5, r1, 0
+ adds r6, r2, 0
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r5, 24
+ lsrs r5, 24
+ str r3, [sp]
+ movs r0, 0x20
+ adds r1, r4, 0
+ adds r2, r5, 0
+ adds r3, r6, 0
+ bl rfu_STC_setSendData_org
+ lsls r0, 16
+ lsrs r0, 16
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end rfu_NI_setSendData
+
+ thumb_func_start rfu_UNI_setSendData
+rfu_UNI_setSendData: @ 82E57DC
+ push {lr}
+ sub sp, 0x4
+ adds r3, r1, 0
+ lsls r0, 24
+ lsrs r1, r0, 24
+ lsls r2, 24
+ lsrs r2, 24
+ ldr r0, _082E57F8
+ ldr r0, [r0]
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bne _082E57FC
+ adds r0, r2, 0x3
+ b _082E57FE
+ .align 2, 0
+_082E57F8: .4byte 0x03007890
+_082E57FC:
+ adds r0, r2, 0x2
+_082E57FE:
+ lsls r0, 24
+ lsrs r2, r0, 24
+ movs r0, 0
+ str r0, [sp]
+ movs r0, 0x10
+ bl rfu_STC_setSendData_org
+ lsls r0, 16
+ lsrs r0, 16
+ add sp, 0x4
+ pop {r1}
+ bx r1
+ thumb_func_end rfu_UNI_setSendData
+
+ thumb_func_start rfu_NI_CHILD_setSendGameName
+rfu_NI_CHILD_setSendGameName: @ 82E5818
+ push {lr}
+ sub sp, 0x4
+ adds r2, r1, 0
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r2, 24
+ lsrs r2, 24
+ movs r1, 0x80
+ lsls r1, 17
+ lsls r1, r0
+ lsrs r1, 24
+ ldr r0, _082E5848
+ ldr r3, [r0]
+ adds r3, 0x98
+ movs r0, 0x1A
+ str r0, [sp]
+ movs r0, 0x40
+ bl rfu_STC_setSendData_org
+ lsls r0, 16
+ lsrs r0, 16
+ add sp, 0x4
+ pop {r1}
+ bx r1
+ .align 2, 0
+_082E5848: .4byte 0x03007890
+ thumb_func_end rfu_NI_CHILD_setSendGameName
+
+ thumb_func_start rfu_STC_setSendData_org
+rfu_STC_setSendData_org: @ 82E584C
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x8
+ str r3, [sp]
+ lsls r0, 24
+ lsrs r6, r0, 24
+ lsls r1, 24
+ lsrs r3, r1, 24
+ lsls r2, 24
+ lsrs r2, 24
+ mov r8, r2
+ ldr r0, _082E5878
+ ldr r2, [r0]
+ ldrb r1, [r2]
+ mov r10, r0
+ cmp r1, 0xFF
+ bne _082E5880
+ ldr r0, _082E587C
+ b _082E5A36
+ .align 2, 0
+_082E5878: .4byte 0x03007890
+_082E587C: .4byte 0x00000301
+_082E5880:
+ movs r0, 0xF
+ ands r0, r3
+ cmp r0, 0
+ bne _082E588E
+ movs r0, 0x80
+ lsls r0, 3
+ b _082E5A36
+_082E588E:
+ ldrb r0, [r2, 0x2]
+ ldrb r1, [r2, 0x3]
+ orrs r0, r1
+ ands r0, r3
+ cmp r0, r3
+ beq _082E58A4
+ ldr r0, _082E58A0
+ b _082E5A36
+ .align 2, 0
+_082E58A0: .4byte 0x00000401
+_082E58A4:
+ movs r0, 0x10
+ ands r0, r6
+ cmp r0, 0
+ beq _082E58B0
+ ldrb r0, [r2, 0x6]
+ b _082E58B2
+_082E58B0:
+ ldrb r0, [r2, 0x4]
+_082E58B2:
+ ands r0, r3
+ cmp r0, 0
+ beq _082E58C0
+ ldr r0, _082E58BC
+ b _082E5A36
+ .align 2, 0
+_082E58BC: .4byte 0x00000402
+_082E58C0:
+ movs r2, 0
+ movs r0, 0x1
+ ands r0, r3
+ ldr r4, _082E58F0
+ cmp r0, 0
+ bne _082E58E2
+ movs r1, 0x1
+_082E58CE:
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x3
+ bhi _082E58E2
+ adds r0, r3, 0
+ asrs r0, r2
+ ands r0, r1
+ cmp r0, 0
+ beq _082E58CE
+_082E58E2:
+ mov r0, r10
+ ldr r1, [r0]
+ ldrb r0, [r1]
+ cmp r0, 0x1
+ bne _082E58F4
+ adds r1, 0xF
+ b _082E58FE
+ .align 2, 0
+_082E58F0: .4byte 0x089a3220
+_082E58F4:
+ cmp r0, 0
+ bne _082E5900
+ adds r0, r2, 0
+ adds r0, 0x10
+ adds r1, r0
+_082E58FE:
+ mov r9, r1
+_082E5900:
+ mov r1, r10
+ ldr r0, [r1]
+ ldrb r0, [r0]
+ lsls r0, 4
+ adds r0, r4
+ ldrb r4, [r0]
+ mov r0, r9
+ ldrb r0, [r0]
+ cmp r8, r0
+ bhi _082E5918
+ cmp r8, r4
+ bhi _082E591E
+_082E5918:
+ movs r0, 0xA0
+ lsls r0, 3
+ b _082E5A36
+_082E591E:
+ ldr r1, _082E596C
+ ldrh r0, [r1]
+ str r0, [sp, 0x4]
+ movs r7, 0
+ strh r7, [r1]
+ movs r0, 0x20
+ ands r0, r6
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0
+ bne _082E5938
+ cmp r6, 0x40
+ bne _082E59F4
+_082E5938:
+ ldr r1, _082E5970
+ lsls r0, r2, 2
+ adds r0, r1
+ ldr r0, [r0]
+ mov r12, r0
+ movs r1, 0
+ strh r1, [r0, 0x18]
+ mov r1, r12
+ adds r1, 0x2D
+ mov r2, r12
+ str r1, [r2, 0x4]
+ movs r0, 0x7
+ str r0, [r2, 0x14]
+ mov r0, r12
+ adds r0, 0x2C
+ strb r3, [r0]
+ strb r3, [r2, 0x1A]
+ mov r2, r8
+ subs r0, r2, r4
+ mov r2, r12
+ strh r0, [r2, 0x2E]
+ cmp r5, 0
+ beq _082E5974
+ strb r7, [r1]
+ b _082E5978
+ .align 2, 0
+_082E596C: .4byte 0x04000208
+_082E5970: .4byte 0x03007880
+_082E5974:
+ movs r0, 0x1
+ strb r0, [r1]
+_082E5978:
+ ldr r0, [sp, 0x28]
+ mov r1, r12
+ str r0, [r1, 0x30]
+ ldr r2, [sp]
+ str r2, [r1, 0x28]
+ movs r1, 0
+ mov r0, r12
+ strb r1, [r0, 0x1F]
+ adds r0, 0x20
+ strb r1, [r0]
+ mov r4, r12
+ adds r4, 0x1B
+ movs r6, 0
+ mov r2, r12
+ adds r2, 0x21
+ movs r5, 0x1
+_082E5998:
+ adds r0, r4, r1
+ strb r6, [r0]
+ adds r0, r2, r1
+ strb r5, [r0]
+ adds r0, r1, 0x1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x3
+ bls _082E5998
+ movs r2, 0
+ movs r5, 0x1
+ ldr r4, _082E59EC
+ movs r1, 0
+_082E59B2:
+ adds r0, r3, 0
+ asrs r0, r2
+ ands r0, r5
+ cmp r0, 0
+ beq _082E59C4
+ lsls r0, r2, 2
+ adds r0, r4
+ ldr r0, [r0]
+ strh r1, [r0, 0x2]
+_082E59C4:
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x3
+ bls _082E59B2
+ mov r1, r10
+ ldr r2, [r1]
+ ldrb r1, [r2, 0x4]
+ adds r0, r3, 0
+ orrs r0, r1
+ strb r0, [r2, 0x4]
+ mov r2, r9
+ ldrb r0, [r2]
+ mov r1, r8
+ subs r0, r1
+ strb r0, [r2]
+ ldr r0, _082E59F0
+ mov r2, r12
+ strh r0, [r2]
+ b _082E5A2C
+ .align 2, 0
+_082E59EC: .4byte 0x03007880
+_082E59F0: .4byte 0x00008021
+_082E59F4:
+ movs r0, 0x10
+ ands r0, r6
+ cmp r0, 0
+ beq _082E5A2C
+ ldr r1, _082E5A48
+ lsls r0, r2, 2
+ adds r0, r1
+ ldr r1, [r0]
+ strb r3, [r1, 0x3]
+ ldr r0, [sp]
+ str r0, [r1, 0x8]
+ mov r2, r8
+ subs r0, r2, r4
+ strh r0, [r1, 0x4]
+ mov r2, r9
+ ldrb r0, [r2]
+ mov r2, r8
+ subs r0, r2
+ mov r2, r9
+ strb r0, [r2]
+ ldr r0, _082E5A4C
+ strh r0, [r1]
+ mov r0, r10
+ ldr r2, [r0]
+ ldrb r1, [r2, 0x6]
+ adds r0, r3, 0
+ orrs r0, r1
+ strb r0, [r2, 0x6]
+_082E5A2C:
+ ldr r0, _082E5A50
+ mov r1, sp
+ ldrh r1, [r1, 0x4]
+ strh r1, [r0]
+ movs r0, 0
+_082E5A36:
+ add sp, 0x8
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_082E5A48: .4byte 0x03007870
+_082E5A4C: .4byte 0x00008024
+_082E5A50: .4byte 0x04000208
+ thumb_func_end rfu_STC_setSendData_org
+
+ thumb_func_start rfu_changeSendTarget
+rfu_changeSendTarget: @ 82E5A54
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r0, 24
+ adds r3, r0, 0
+ lsls r1, 24
+ lsrs r7, r1, 24
+ lsls r2, 24
+ lsrs r6, r2, 24
+ cmp r7, 0x3
+ bls _082E5A78
+ movs r0, 0x80
+ lsls r0, 3
+ b _082E5BAC
+_082E5A78:
+ cmp r0, 0x20
+ bne _082E5B18
+ ldr r0, _082E5B08
+ mov r12, r0
+ lsls r0, r7, 2
+ add r0, r12
+ ldr r5, [r0]
+ ldrh r2, [r5]
+ ldr r1, _082E5B0C
+ adds r0, r1, 0
+ ands r0, r2
+ cmp r0, r1
+ bne _082E5B2E
+ ldrb r0, [r5, 0x1A]
+ adds r3, r6, 0
+ eors r3, r0
+ adds r2, r3, 0
+ ands r2, r6
+ cmp r2, 0
+ bne _082E5B66
+ cmp r3, 0
+ bne _082E5AA6
+ b _082E5BAA
+_082E5AA6:
+ ldr r1, _082E5B10
+ ldrh r0, [r1]
+ mov r8, r0
+ strh r2, [r1]
+ movs r2, 0
+ mvns r1, r3
+ str r1, [sp]
+ lsls r4, r6, 24
+ mov r10, r4
+ movs r0, 0x1
+ mov r9, r0
+ movs r1, 0
+_082E5ABE:
+ adds r0, r3, 0
+ asrs r0, r2
+ mov r4, r9
+ ands r0, r4
+ cmp r0, 0
+ beq _082E5AD2
+ lsls r0, r2, 2
+ add r0, r12
+ ldr r0, [r0]
+ strh r1, [r0, 0x2]
+_082E5AD2:
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x3
+ bls _082E5ABE
+ ldr r0, _082E5B14
+ ldr r1, [r0]
+ ldrb r0, [r1, 0x4]
+ ldr r2, [sp]
+ ands r2, r0
+ strb r2, [r1, 0x4]
+ strb r6, [r5, 0x1A]
+ mov r0, r10
+ cmp r0, 0
+ bne _082E5AFE
+ adds r0, r7, 0
+ movs r1, 0
+ adds r2, r5, 0
+ bl rfu_STC_releaseFrame
+ movs r0, 0x27
+ strh r0, [r5]
+_082E5AFE:
+ ldr r0, _082E5B10
+ mov r1, r8
+ strh r1, [r0]
+ b _082E5BAA
+ .align 2, 0
+_082E5B08: .4byte 0x03007880
+_082E5B0C: .4byte 0x00008020
+_082E5B10: .4byte 0x04000208
+_082E5B14: .4byte 0x03007890
+_082E5B18:
+ cmp r3, 0x10
+ bne _082E5BA4
+ ldr r3, _082E5B34
+ lsls r1, r7, 2
+ adds r0, r1, r3
+ ldr r0, [r0]
+ ldrh r2, [r0]
+ ldr r0, _082E5B38
+ adds r5, r3, 0
+ cmp r2, r0
+ beq _082E5B40
+_082E5B2E:
+ ldr r0, _082E5B3C
+ b _082E5BAC
+ .align 2, 0
+_082E5B34: .4byte 0x03007870
+_082E5B38: .4byte 0x00008024
+_082E5B3C: .4byte 0x00000403
+_082E5B40:
+ movs r3, 0
+ movs r2, 0
+ adds r4, r5, 0
+_082E5B46:
+ cmp r2, r7
+ beq _082E5B54
+ lsls r0, r2, 2
+ adds r0, r4
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x3]
+ orrs r3, r0
+_082E5B54:
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x3
+ bls _082E5B46
+ adds r2, r6, 0
+ ands r2, r3
+ cmp r2, 0
+ beq _082E5B70
+_082E5B66:
+ ldr r0, _082E5B6C
+ b _082E5BAC
+ .align 2, 0
+_082E5B6C: .4byte 0x00000404
+_082E5B70:
+ ldr r3, _082E5B9C
+ ldrh r0, [r3]
+ mov r8, r0
+ strh r2, [r3]
+ ldr r4, _082E5BA0
+ ldr r2, [r4]
+ adds r5, r1, r5
+ ldr r0, [r5]
+ ldrb r1, [r0, 0x3]
+ ldrb r0, [r2, 0x6]
+ bics r0, r1
+ strb r0, [r2, 0x6]
+ ldr r2, [r4]
+ ldrb r1, [r2, 0x6]
+ adds r0, r6, 0
+ orrs r0, r1
+ strb r0, [r2, 0x6]
+ ldr r0, [r5]
+ strb r6, [r0, 0x3]
+ mov r2, r8
+ strh r2, [r3]
+ b _082E5BAA
+ .align 2, 0
+_082E5B9C: .4byte 0x04000208
+_082E5BA0: .4byte 0x03007890
+_082E5BA4:
+ movs r0, 0xC0
+ lsls r0, 3
+ b _082E5BAC
+_082E5BAA:
+ movs r0, 0
+_082E5BAC:
+ add sp, 0x4
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end rfu_changeSendTarget
+
+ thumb_func_start rfu_NI_stopReceivingData
+rfu_NI_stopReceivingData: @ 82E5BBC
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0x3
+ bls _082E5BCC
+ movs r0, 0x80
+ lsls r0, 3
+ b _082E5C26
+_082E5BCC:
+ ldr r1, _082E5BF8
+ lsls r0, r3, 2
+ adds r0, r1
+ ldr r2, [r0]
+ adds r5, r2, 0
+ adds r5, 0x34
+ ldr r1, _082E5BFC
+ ldrh r0, [r1]
+ adds r4, r0, 0
+ movs r0, 0
+ strh r0, [r1]
+ ldrh r1, [r2, 0x34]
+ movs r0, 0x80
+ lsls r0, 8
+ ands r0, r1
+ cmp r0, 0
+ beq _082E5C20
+ ldr r0, _082E5C00
+ cmp r1, r0
+ bne _082E5C04
+ movs r0, 0x48
+ b _082E5C06
+ .align 2, 0
+_082E5BF8: .4byte 0x03007880
+_082E5BFC: .4byte 0x04000208
+_082E5C00: .4byte 0x00008043
+_082E5C04:
+ movs r0, 0x47
+_082E5C06:
+ strh r0, [r2, 0x34]
+ ldr r0, _082E5C2C
+ ldr r2, [r0]
+ movs r1, 0x1
+ lsls r1, r3
+ ldrb r0, [r2, 0x5]
+ bics r0, r1
+ strb r0, [r2, 0x5]
+ adds r0, r3, 0
+ movs r1, 0x1
+ adds r2, r5, 0
+ bl rfu_STC_releaseFrame
+_082E5C20:
+ ldr r0, _082E5C30
+ strh r4, [r0]
+ movs r0, 0
+_082E5C26:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_082E5C2C: .4byte 0x03007890
+_082E5C30: .4byte 0x04000208
+ thumb_func_end rfu_NI_stopReceivingData
+
+ thumb_func_start rfu_UNI_changeAndReadySendData
+rfu_UNI_changeAndReadySendData: @ 82E5C34
+ push {r4-r7,lr}
+ adds r7, r1, 0
+ lsls r0, 24
+ lsrs r0, 24
+ adds r3, r0, 0
+ lsls r2, 24
+ lsrs r5, r2, 24
+ cmp r0, 0x3
+ bls _082E5C4C
+ movs r0, 0x80
+ lsls r0, 3
+ b _082E5CC0
+_082E5C4C:
+ ldr r1, _082E5C60
+ lsls r0, 2
+ adds r0, r1
+ ldr r4, [r0]
+ ldrh r1, [r4]
+ ldr r0, _082E5C64
+ cmp r1, r0
+ beq _082E5C6C
+ ldr r0, _082E5C68
+ b _082E5CC0
+ .align 2, 0
+_082E5C60: .4byte 0x03007870
+_082E5C64: .4byte 0x00008024
+_082E5C68: .4byte 0x00000403
+_082E5C6C:
+ ldr r0, _082E5C80
+ ldr r1, [r0]
+ ldrb r0, [r1]
+ cmp r0, 0x1
+ bne _082E5C84
+ adds r6, r1, 0
+ adds r6, 0xF
+ ldrb r0, [r4, 0x4]
+ ldrb r1, [r1, 0xF]
+ b _082E5C92
+ .align 2, 0
+_082E5C80: .4byte 0x03007890
+_082E5C84:
+ adds r0, r3, 0
+ adds r0, 0x10
+ adds r6, r1, r0
+ adds r1, 0x10
+ adds r1, r3
+ ldrb r0, [r4, 0x4]
+ ldrb r1, [r1]
+_082E5C92:
+ adds r0, r1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, r5
+ bcc _082E5CBC
+ ldr r2, _082E5CB8
+ ldrh r1, [r2]
+ movs r0, 0
+ strh r0, [r2]
+ str r7, [r4, 0x8]
+ subs r0, r3, r5
+ strb r0, [r6]
+ strh r5, [r4, 0x4]
+ movs r0, 0x1
+ strb r0, [r4, 0x2]
+ strh r1, [r2]
+ movs r0, 0
+ b _082E5CC0
+ .align 2, 0
+_082E5CB8: .4byte 0x04000208
+_082E5CBC:
+ movs r0, 0xA0
+ lsls r0, 3
+_082E5CC0:
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end rfu_UNI_changeAndReadySendData
+
+ thumb_func_start rfu_UNI_readySendData
+rfu_UNI_readySendData: @ 82E5CC8
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x3
+ bhi _082E5CE6
+ ldr r1, _082E5CEC
+ lsls r0, 2
+ adds r0, r1
+ ldr r2, [r0]
+ ldrh r1, [r2]
+ ldr r0, _082E5CF0
+ cmp r1, r0
+ bne _082E5CE6
+ movs r0, 0x1
+ strb r0, [r2, 0x2]
+_082E5CE6:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_082E5CEC: .4byte 0x03007870
+_082E5CF0: .4byte 0x00008024
+ thumb_func_end rfu_UNI_readySendData
+
+ thumb_func_start rfu_UNI_clearRecvNewDataFlag
+rfu_UNI_clearRecvNewDataFlag: @ 82E5CF4
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x3
+ bhi _082E5D0A
+ ldr r1, _082E5D10
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, [r0]
+ movs r0, 0
+ strb r0, [r1, 0x12]
+_082E5D0A:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_082E5D10: .4byte 0x03007870
+ thumb_func_end rfu_UNI_clearRecvNewDataFlag
+
+ thumb_func_start rfu_REQ_sendData
+rfu_REQ_sendData: @ 82E5D14
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r0, _082E5D60
+ ldr r2, [r0]
+ ldrb r1, [r2]
+ adds r4, r0, 0
+ cmp r1, 0xFF
+ bne _082E5D28
+ b _082E5E4E
+_082E5D28:
+ cmp r1, 0x1
+ bne _082E5DB8
+ ldrb r0, [r2, 0x4]
+ ldrb r1, [r2, 0x5]
+ adds r3, r0, 0
+ orrs r3, r1
+ ldrb r0, [r2, 0x6]
+ orrs r3, r0
+ cmp r3, 0
+ bne _082E5DB8
+ ldr r0, _082E5D64
+ ldr r2, [r0]
+ ldrb r1, [r2, 0x3]
+ adds r4, r0, 0
+ cmp r1, 0
+ beq _082E5D50
+ movs r0, 0x10
+ strb r0, [r2, 0x8]
+ ldr r0, [r4]
+ strb r3, [r0, 0x7]
+_082E5D50:
+ ldr r1, [r4]
+ ldrb r0, [r1, 0x8]
+ cmp r0, 0
+ beq _082E5D68
+ subs r0, 0x1
+ strb r0, [r1, 0x8]
+ b _082E5D6E
+ .align 2, 0
+_082E5D60: .4byte 0x03007890
+_082E5D64: .4byte 0x03007894
+_082E5D68:
+ ldrb r0, [r1, 0x7]
+ adds r0, 0x1
+ strb r0, [r1, 0x7]
+_082E5D6E:
+ ldr r1, [r4]
+ ldrb r0, [r1, 0x8]
+ cmp r0, 0
+ bne _082E5D80
+ ldrb r1, [r1, 0x7]
+ movs r0, 0xF
+ ands r0, r1
+ cmp r0, 0
+ bne _082E5E12
+_082E5D80:
+ ldr r4, _082E5DA4
+ ldr r1, [r4]
+ movs r0, 0x1
+ str r0, [r1, 0x68]
+ movs r0, 0xFF
+ str r0, [r1, 0x78]
+ ldr r0, _082E5DA8
+ bl STWI_set_Callback_M
+ cmp r5, 0
+ bne _082E5DAC
+ ldr r0, [r4]
+ adds r0, 0x68
+ movs r1, 0x1
+ bl STWI_send_DataTxREQ
+ b _082E5E4E
+ .align 2, 0
+_082E5DA4: .4byte 0x03007898
+_082E5DA8: .4byte sub_82E5F00 + 1
+_082E5DAC:
+ ldr r0, [r4]
+ adds r0, 0x68
+ movs r1, 0x1
+ bl STWI_send_DataTxAndChangeREQ
+ b _082E5E4E
+_082E5DB8:
+ ldr r0, [r4]
+ ldrb r0, [r0, 0xE]
+ cmp r0, 0
+ bne _082E5DC4
+ bl rfu_constructSendLLFrame
+_082E5DC4:
+ ldr r0, [r4]
+ ldrb r0, [r0, 0xE]
+ cmp r0, 0
+ beq _082E5E12
+ ldr r0, _082E5DF0
+ bl STWI_set_Callback_M
+ cmp r5, 0
+ beq _082E5DFC
+ ldr r0, _082E5DF4
+ ldr r0, [r0]
+ adds r0, 0x68
+ ldr r1, _082E5DF8
+ ldr r1, [r1]
+ ldr r1, [r1, 0x24]
+ adds r1, 0x4
+ lsls r1, 24
+ lsrs r1, 24
+ bl STWI_send_DataTxAndChangeREQ
+ b _082E5E4E
+ .align 2, 0
+_082E5DF0: .4byte rfu_CB_sendData + 1
+_082E5DF4: .4byte 0x03007898
+_082E5DF8: .4byte 0x03007894
+_082E5DFC:
+ ldr r0, _082E5E34
+ ldr r0, [r0]
+ adds r0, 0x68
+ ldr r1, _082E5E38
+ ldr r1, [r1]
+ ldr r1, [r1, 0x24]
+ adds r1, 0x4
+ lsls r1, 24
+ lsrs r1, 24
+ bl STWI_send_DataTxREQ
+_082E5E12:
+ cmp r5, 0
+ beq _082E5E4E
+ ldr r0, _082E5E3C
+ ldr r0, [r0]
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bne _082E5E44
+ ldr r0, _082E5E40
+ ldr r0, [r0]
+ ldr r1, [r0, 0x1C]
+ cmp r1, 0
+ beq _082E5E4E
+ movs r0, 0x27
+ bl _call_via_r1
+ b _082E5E4E
+ .align 2, 0
+_082E5E34: .4byte 0x03007898
+_082E5E38: .4byte 0x03007894
+_082E5E3C: .4byte 0x03007890
+_082E5E40: .4byte 0x03007868
+_082E5E44:
+ ldr r0, _082E5E54
+ bl STWI_set_Callback_M
+ bl STWI_send_MS_ChangeREQ
+_082E5E4E:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_082E5E54: .4byte rfu_CB_sendData2 + 1
+ thumb_func_end rfu_REQ_sendData
+
+ thumb_func_start rfu_CB_sendData
+rfu_CB_sendData: @ 82E5E58
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ lsls r1, 16
+ lsrs r7, r1, 16
+ cmp r7, 0
+ bne _082E5EC2
+ movs r6, 0
+ ldr r0, _082E5EE0
+ mov r8, r0
+_082E5E6C:
+ ldr r0, _082E5EE4
+ lsls r2, r6, 2
+ adds r0, r2, r0
+ ldr r1, [r0]
+ ldrb r0, [r1, 0x2]
+ cmp r0, 0
+ beq _082E5E7E
+ movs r0, 0
+ strb r0, [r1, 0x2]
+_082E5E7E:
+ ldr r0, _082E5EE8
+ adds r0, r2, r0
+ ldr r4, [r0]
+ ldrh r0, [r4]
+ cmp r0, r8
+ bne _082E5EB8
+ adds r0, r6, 0
+ movs r1, 0
+ adds r2, r4, 0
+ bl rfu_STC_releaseFrame
+ ldr r5, _082E5EEC
+ ldr r2, [r5]
+ ldrb r1, [r4, 0x1A]
+ ldrb r0, [r2, 0x4]
+ bics r0, r1
+ strb r0, [r2, 0x4]
+ adds r0, r4, 0
+ adds r0, 0x2D
+ ldrb r3, [r0]
+ cmp r3, 0x1
+ bne _082E5EB4
+ ldr r1, [r5]
+ lsls r3, r6
+ ldrb r0, [r1, 0x7]
+ orrs r3, r0
+ strb r3, [r1, 0x7]
+_082E5EB4:
+ movs r0, 0x26
+ strh r0, [r4]
+_082E5EB8:
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+ cmp r6, 0x3
+ bls _082E5E6C
+_082E5EC2:
+ ldr r0, _082E5EEC
+ ldr r1, [r0]
+ ldrb r0, [r1, 0xE]
+ movs r0, 0
+ strb r0, [r1, 0xE]
+ movs r0, 0x24
+ adds r1, r7, 0
+ bl rfu_STC_REQ_callback
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_082E5EE0: .4byte 0x00008020
+_082E5EE4: .4byte 0x03007870
+_082E5EE8: .4byte 0x03007880
+_082E5EEC: .4byte 0x03007890
+ thumb_func_end rfu_CB_sendData
+
+ thumb_func_start rfu_CB_sendData2
+rfu_CB_sendData2: @ 82E5EF0
+ push {lr}
+ lsls r1, 16
+ lsrs r1, 16
+ movs r0, 0x24
+ bl rfu_STC_REQ_callback
+ pop {r0}
+ bx r0
+ thumb_func_end rfu_CB_sendData2
+
+ thumb_func_start sub_82E5F00
+sub_82E5F00: @ 82E5F00
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 16
+ lsrs r1, 16
+ cmp r1, 0
+ beq _082E5F16
+ movs r0, 0x24
+ bl rfu_STC_REQ_callback
+ b _082E5F22
+_082E5F16:
+ cmp r0, 0xFF
+ bne _082E5F22
+ movs r0, 0xFF
+ movs r1, 0
+ bl rfu_STC_REQ_callback
+_082E5F22:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_82E5F00
+
+ thumb_func_start rfu_constructSendLLFrame
+rfu_constructSendLLFrame: @ 82E5F28
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ ldr r0, _082E5FD4
+ ldr r2, [r0]
+ ldrb r0, [r2]
+ cmp r0, 0xFF
+ bne _082E5F40
+ b _082E6044
+_082E5F40:
+ ldrb r0, [r2, 0x4]
+ ldrb r1, [r2, 0x5]
+ orrs r0, r1
+ ldrb r1, [r2, 0x6]
+ orrs r0, r1
+ cmp r0, 0
+ beq _082E6044
+ ldrb r0, [r2, 0xE]
+ movs r0, 0
+ strb r0, [r2, 0xE]
+ mov r8, r0
+ ldr r0, _082E5FD8
+ ldr r0, [r0]
+ adds r0, 0x6C
+ str r0, [sp]
+ movs r6, 0
+ movs r0, 0x80
+ lsls r0, 8
+ mov r9, r0
+ ldr r1, _082E5FDC
+ mov r10, r1
+_082E5F6A:
+ movs r5, 0
+ ldr r0, _082E5FE0
+ lsls r7, r6, 2
+ adds r4, r7, r0
+ ldr r2, [r4]
+ ldrh r1, [r2]
+ mov r0, r9
+ ands r0, r1
+ cmp r0, 0
+ beq _082E5F8A
+ adds r0, r6, 0
+ mov r1, sp
+ bl rfu_STC_NI_constructLLSF
+ lsls r0, 16
+ lsrs r5, r0, 16
+_082E5F8A:
+ ldr r2, [r4]
+ ldrh r1, [r2, 0x34]
+ mov r0, r9
+ ands r0, r1
+ cmp r0, 0
+ beq _082E5FA6
+ adds r2, 0x34
+ adds r0, r6, 0
+ mov r1, sp
+ bl rfu_STC_NI_constructLLSF
+ lsls r0, 16
+ lsrs r0, 16
+ adds r5, r0
+_082E5FA6:
+ ldr r0, _082E5FE4
+ adds r0, r7, r0
+ ldr r0, [r0]
+ ldrh r0, [r0]
+ cmp r0, r10
+ bne _082E5FC0
+ adds r0, r6, 0
+ mov r1, sp
+ bl rfu_STC_UNI_constructLLSF
+ lsls r0, 16
+ lsrs r0, 16
+ adds r5, r0
+_082E5FC0:
+ cmp r5, 0
+ beq _082E5FF4
+ ldr r0, _082E5FD4
+ ldr r0, [r0]
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bne _082E5FE8
+ add r8, r5
+ b _082E5FF4
+ .align 2, 0
+_082E5FD4: .4byte 0x03007890
+_082E5FD8: .4byte 0x03007898
+_082E5FDC: .4byte 0x00008024
+_082E5FE0: .4byte 0x03007880
+_082E5FE4: .4byte 0x03007870
+_082E5FE8:
+ adds r0, r7, r6
+ adds r0, 0x8
+ lsls r5, r0
+ mov r2, r8
+ orrs r2, r5
+ mov r8, r2
+_082E5FF4:
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+ cmp r6, 0x3
+ bls _082E5F6A
+ ldr r6, _082E6054
+ mov r0, r8
+ cmp r0, 0
+ beq _082E603E
+ ldr r2, [sp]
+ movs r0, 0x3
+ ands r0, r2
+ ldr r5, _082E6058
+ ldr r1, _082E605C
+ cmp r0, 0
+ beq _082E6026
+ movs r4, 0
+ movs r3, 0x3
+_082E6018:
+ strb r4, [r2]
+ adds r0, r2, 0x1
+ str r0, [sp]
+ adds r2, r0, 0
+ ands r0, r3
+ cmp r0, 0
+ bne _082E6018
+_082E6026:
+ ldr r0, [r1]
+ mov r2, r8
+ str r2, [r0, 0x68]
+ ldr r0, [r5]
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _082E603E
+ ldr r0, [sp]
+ subs r0, 0x6C
+ ldr r1, [r1]
+ subs r0, r1
+ mov r8, r0
+_082E603E:
+ ldr r0, [r6]
+ mov r1, r8
+ str r1, [r0, 0x24]
+_082E6044:
+ add sp, 0x4
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_082E6054: .4byte 0x03007894
+_082E6058: .4byte 0x03007890
+_082E605C: .4byte 0x03007898
+ thumb_func_end rfu_constructSendLLFrame
+
+ thumb_func_start rfu_STC_NI_constructLLSF
+rfu_STC_NI_constructLLSF: @ 82E6060
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x8
+ mov r12, r1
+ adds r4, r2, 0
+ lsls r0, 24
+ lsrs r0, 24
+ mov r10, r0
+ ldr r2, _082E60DC
+ ldr r0, [r2]
+ ldrb r0, [r0]
+ lsls r0, 4
+ ldr r1, _082E60E0
+ adds r0, r1
+ mov r8, r0
+ ldrh r1, [r4]
+ ldr r0, _082E60E4
+ cmp r1, r0
+ bne _082E60CA
+ adds r3, r4, 0
+ adds r3, 0x20
+ ldrb r1, [r3]
+ lsls r1, 2
+ adds r5, r4, 0x4
+ adds r1, r5, r1
+ ldr r2, [r4, 0x28]
+ ldr r0, [r4, 0x30]
+ adds r2, r0
+ ldr r0, [r1]
+ adds r6, r3, 0
+ cmp r0, r2
+ bcc _082E60CA
+ movs r7, 0
+_082E60A8:
+ ldrb r0, [r3]
+ adds r0, 0x1
+ strb r0, [r3]
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x4
+ bne _082E60B8
+ strb r7, [r6]
+_082E60B8:
+ ldrb r1, [r3]
+ lsls r1, 2
+ adds r1, r5, r1
+ ldr r2, [r4, 0x28]
+ ldr r0, [r4, 0x30]
+ adds r2, r0
+ ldr r0, [r1]
+ cmp r0, r2
+ bcs _082E60A8
+_082E60CA:
+ ldrh r1, [r4]
+ movs r0, 0x40
+ ands r0, r1
+ mov r9, r1
+ cmp r0, 0
+ beq _082E60E8
+ movs r5, 0
+ b _082E612C
+ .align 2, 0
+_082E60DC: .4byte 0x03007890
+_082E60E0: .4byte 0x089a3220
+_082E60E4: .4byte 0x00008022
+_082E60E8:
+ ldr r0, _082E6114
+ cmp r9, r0
+ bne _082E611C
+ adds r3, r4, 0
+ adds r3, 0x20
+ ldrb r0, [r3]
+ lsls r0, 2
+ adds r1, r4, 0x4
+ adds r1, r0
+ ldrh r7, [r4, 0x2E]
+ ldr r5, [r1]
+ adds r2, r5, r7
+ ldr r1, [r4, 0x28]
+ ldr r0, [r4, 0x30]
+ adds r0, r1, r0
+ adds r6, r3, 0
+ cmp r2, r0
+ bls _082E6118
+ subs r0, r5
+ lsls r0, 16
+ lsrs r5, r0, 16
+ b _082E6130
+ .align 2, 0
+_082E6114: .4byte 0x00008022
+_082E6118:
+ adds r5, r7, 0
+ b _082E6130
+_082E611C:
+ ldrh r2, [r4, 0x2E]
+ ldr r0, [r4, 0x14]
+ cmp r0, r2
+ bcc _082E6128
+ adds r5, r2, 0
+ b _082E612C
+_082E6128:
+ lsls r0, 16
+ lsrs r5, r0, 16
+_082E612C:
+ adds r6, r4, 0
+ adds r6, 0x20
+_082E6130:
+ movs r3, 0xF
+ mov r0, r9
+ ands r3, r0
+ mov r1, r8
+ ldrb r1, [r1, 0x3]
+ lsls r3, r1
+ ldrb r0, [r4, 0x1F]
+ mov r2, r8
+ ldrb r2, [r2, 0x4]
+ lsls r0, r2
+ orrs r3, r0
+ ldrb r1, [r6]
+ adds r0, r1, 0
+ mov r7, r8
+ ldrb r7, [r7, 0x5]
+ lsls r0, r7
+ orrs r3, r0
+ adds r0, r4, 0
+ adds r0, 0x21
+ adds r0, r1
+ ldrb r0, [r0]
+ mov r1, r8
+ ldrb r1, [r1, 0x6]
+ lsls r0, r1
+ orrs r3, r0
+ orrs r3, r5
+ str r3, [sp]
+ ldr r2, _082E61EC
+ ldr r0, [r2]
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bne _082E6178
+ ldrb r0, [r4, 0x1A]
+ lsls r0, 18
+ orrs r3, r0
+ str r3, [sp]
+_082E6178:
+ mov r2, sp
+ movs r3, 0
+ mov r7, r8
+ ldrb r7, [r7]
+ cmp r3, r7
+ bcs _082E61A2
+_082E6184:
+ mov r0, r12
+ ldr r1, [r0]
+ ldrb r0, [r2]
+ strb r0, [r1]
+ adds r2, 0x1
+ adds r1, 0x1
+ mov r7, r12
+ str r1, [r7]
+ adds r0, r3, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ mov r0, r8
+ ldrb r0, [r0]
+ cmp r3, r0
+ bcc _082E6184
+_082E61A2:
+ cmp r5, 0
+ beq _082E61C2
+ ldrb r1, [r6]
+ lsls r1, 2
+ adds r0, r4, 0x4
+ adds r0, r1
+ ldr r0, [r0]
+ str r0, [sp, 0x4]
+ ldr r0, _082E61F0
+ ldr r1, [r0]
+ add r0, sp, 0x4
+ ldr r3, [r1, 0x4]
+ mov r1, r12
+ adds r2, r5, 0
+ bl _call_via_r3
+_082E61C2:
+ ldrh r1, [r4]
+ ldr r0, _082E61F4
+ cmp r1, r0
+ bne _082E61DC
+ ldrb r0, [r6]
+ adds r0, 0x1
+ strb r0, [r6]
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x4
+ bne _082E61DC
+ movs r0, 0
+ strb r0, [r6]
+_082E61DC:
+ ldr r0, _082E61EC
+ ldr r2, [r0]
+ ldrb r1, [r2]
+ cmp r1, 0x1
+ bne _082E61F8
+ ldrb r0, [r2, 0xE]
+ strb r1, [r2, 0xE]
+ b _082E6206
+ .align 2, 0
+_082E61EC: .4byte 0x03007890
+_082E61F0: .4byte 0x03007898
+_082E61F4: .4byte 0x00008022
+_082E61F8:
+ movs r0, 0x1
+ mov r1, r10
+ lsls r0, r1
+ ldrb r1, [r2, 0xE]
+ orrs r0, r1
+ ldrb r1, [r2, 0xE]
+ strb r0, [r2, 0xE]
+_082E6206:
+ mov r2, r8
+ ldrb r0, [r2]
+ adds r0, r5, r0
+ lsls r0, 16
+ lsrs r0, 16
+ add sp, 0x8
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end rfu_STC_NI_constructLLSF
+
+ thumb_func_start rfu_STC_UNI_constructLLSF
+rfu_STC_UNI_constructLLSF: @ 82E6220
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x8
+ adds r6, r1, 0
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ ldr r1, _082E6248
+ lsls r0, 2
+ adds r0, r1
+ ldr r4, [r0]
+ ldrb r0, [r4, 0x2]
+ cmp r0, 0
+ beq _082E6244
+ ldrb r0, [r4, 0x3]
+ cmp r0, 0
+ bne _082E624C
+_082E6244:
+ movs r0, 0
+ b _082E62E8
+ .align 2, 0
+_082E6248: .4byte 0x03007870
+_082E624C:
+ ldr r0, _082E62C4
+ ldr r2, [r0]
+ ldrb r0, [r2]
+ lsls r0, 4
+ ldr r1, _082E62C8
+ adds r5, r0, r1
+ ldrh r0, [r4]
+ movs r1, 0xF
+ ands r1, r0
+ ldrb r0, [r5, 0x3]
+ lsls r1, r0
+ ldrh r0, [r4, 0x4]
+ orrs r1, r0
+ str r1, [sp]
+ ldrb r0, [r2]
+ cmp r0, 0x1
+ bne _082E6276
+ ldrb r0, [r4, 0x3]
+ lsls r0, 18
+ orrs r1, r0
+ str r1, [sp]
+_082E6276:
+ mov r2, sp
+ movs r3, 0
+ ldr r1, _082E62CC
+ mov r12, r1
+ add r7, sp, 0x4
+ ldrb r0, [r5]
+ cmp r3, r0
+ bcs _082E629E
+_082E6286:
+ ldr r1, [r6]
+ ldrb r0, [r2]
+ strb r0, [r1]
+ adds r2, 0x1
+ adds r1, 0x1
+ str r1, [r6]
+ adds r0, r3, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ ldrb r1, [r5]
+ cmp r3, r1
+ bcc _082E6286
+_082E629E:
+ ldr r0, [r4, 0x8]
+ str r0, [sp, 0x4]
+ mov r2, r12
+ ldr r0, [r2]
+ ldrh r2, [r4, 0x4]
+ ldr r3, [r0, 0x4]
+ adds r0, r7, 0
+ adds r1, r6, 0
+ bl _call_via_r3
+ ldr r0, _082E62C4
+ ldr r2, [r0]
+ ldrb r0, [r2]
+ cmp r0, 0x1
+ bne _082E62D0
+ ldrb r0, [r2, 0xE]
+ movs r0, 0x10
+ b _082E62DC
+ .align 2, 0
+_082E62C4: .4byte 0x03007890
+_082E62C8: .4byte 0x089a3220
+_082E62CC: .4byte 0x03007898
+_082E62D0:
+ movs r0, 0x10
+ mov r1, r8
+ lsls r0, r1
+ ldrb r1, [r2, 0xE]
+ orrs r0, r1
+ ldrb r1, [r2, 0xE]
+_082E62DC:
+ strb r0, [r2, 0xE]
+ ldrh r0, [r4, 0x4]
+ ldrb r5, [r5]
+ adds r0, r5
+ lsls r0, 16
+ lsrs r0, 16
+_082E62E8:
+ add sp, 0x8
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end rfu_STC_UNI_constructLLSF
+
+ thumb_func_start rfu_REQ_recvData
+rfu_REQ_recvData: @ 82E62F4
+ push {r4,lr}
+ ldr r0, _082E6328
+ ldr r4, [r0]
+ ldrb r0, [r4]
+ cmp r0, 0xFF
+ beq _082E6320
+ ldr r2, _082E632C
+ ldr r3, [r2]
+ ldrb r0, [r4, 0x4]
+ ldrb r1, [r4, 0x5]
+ orrs r0, r1
+ ldrb r1, [r4, 0x6]
+ orrs r0, r1
+ movs r1, 0
+ strb r0, [r3, 0x3]
+ ldr r0, [r2]
+ strb r1, [r0, 0x4]
+ ldr r0, _082E6330
+ bl STWI_set_Callback_M
+ bl STWI_send_DataRxREQ
+_082E6320:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_082E6328: .4byte 0x03007890
+_082E632C: .4byte 0x03007894
+_082E6330: .4byte rfu_CB_recvData + 1
+ thumb_func_end rfu_REQ_recvData
+
+ thumb_func_start rfu_CB_recvData
+rfu_CB_recvData: @ 82E6334
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+ lsls r1, 16
+ lsrs r7, r1, 16
+ cmp r7, 0
+ bne _082E63F8
+ ldr r0, _082E6370
+ ldr r0, [r0]
+ adds r0, 0xDC
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x1]
+ cmp r0, 0
+ beq _082E63F8
+ ldr r0, _082E6374
+ ldr r0, [r0]
+ strb r7, [r0, 0x1]
+ ldr r0, _082E6378
+ ldr r0, [r0]
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bne _082E637C
+ bl rfu_STC_PARENT_analyzeRecvPacket
+ b _082E6380
+ .align 2, 0
+_082E6370: .4byte 0x03007898
+_082E6374: .4byte 0x03007894
+_082E6378: .4byte 0x03007890
+_082E637C:
+ bl rfu_STC_CHILD_analyzeRecvPacket
+_082E6380:
+ movs r6, 0
+ ldr r0, _082E6410
+ mov r8, r0
+ ldr r3, _082E6414
+_082E6388:
+ ldr r0, _082E6418
+ lsls r1, r6, 2
+ adds r1, r0
+ ldr r4, [r1]
+ ldrh r0, [r4, 0x34]
+ cmp r0, r8
+ bne _082E63DA
+ ldr r0, _082E641C
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x1]
+ asrs r0, r6
+ movs r1, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _082E63DA
+ adds r5, r4, 0
+ adds r5, 0x34
+ adds r0, r4, 0
+ adds r0, 0x61
+ ldrb r2, [r0]
+ cmp r2, 0x1
+ bne _082E63BE
+ ldr r1, [r3]
+ lsls r2, r6
+ ldrb r0, [r1, 0x7]
+ orrs r2, r0
+ strb r2, [r1, 0x7]
+_082E63BE:
+ adds r0, r6, 0
+ movs r1, 0x1
+ adds r2, r5, 0
+ str r3, [sp]
+ bl rfu_STC_releaseFrame
+ ldr r3, [sp]
+ ldr r2, [r3]
+ ldrb r1, [r5, 0x1A]
+ ldrb r0, [r2, 0x5]
+ bics r0, r1
+ strb r0, [r2, 0x5]
+ movs r0, 0x46
+ strh r0, [r4, 0x34]
+_082E63DA:
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+ cmp r6, 0x3
+ bls _082E6388
+ ldr r0, _082E641C
+ ldr r1, [r0]
+ ldrb r0, [r1, 0x4]
+ cmp r0, 0
+ beq _082E63F8
+ adds r7, r0, 0
+ movs r1, 0xE0
+ lsls r1, 3
+ adds r0, r1, 0
+ orrs r7, r0
+_082E63F8:
+ mov r0, r9
+ adds r1, r7, 0
+ bl rfu_STC_REQ_callback
+ add sp, 0x4
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_082E6410: .4byte 0x00008043
+_082E6414: .4byte 0x03007890
+_082E6418: .4byte 0x03007880
+_082E641C: .4byte 0x03007894
+ thumb_func_end rfu_CB_recvData
+
+ thumb_func_start rfu_STC_PARENT_analyzeRecvPacket
+rfu_STC_PARENT_analyzeRecvPacket: @ 82E6420
+ push {r4-r7,lr}
+ sub sp, 0x4
+ ldr r1, _082E64B0
+ ldr r0, [r1]
+ adds r0, 0xDC
+ ldr r0, [r0]
+ ldr r0, [r0, 0x4]
+ lsrs r3, r0, 8
+ movs r5, 0
+ mov r12, r1
+ movs r7, 0x1F
+ ldr r4, _082E64B4
+ movs r6, 0x1
+_082E643A:
+ mov r0, sp
+ adds r1, r0, r5
+ adds r0, r3, 0
+ ands r0, r7
+ strb r0, [r1]
+ lsrs r3, 5
+ cmp r0, 0
+ bne _082E6456
+ ldr r0, [r4]
+ adds r1, r6, 0
+ lsls r1, r5
+ ldrb r2, [r0, 0x1]
+ orrs r1, r2
+ strb r1, [r0, 0x1]
+_082E6456:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x3
+ bls _082E643A
+ mov r1, r12
+ ldr r0, [r1]
+ adds r0, 0xDC
+ ldr r0, [r0]
+ adds r6, r0, 0
+ adds r6, 0x8
+ movs r5, 0
+_082E646E:
+ mov r0, sp
+ adds r1, r0, r5
+ ldrb r0, [r1]
+ adds r7, r5, 0x1
+ cmp r0, 0
+ beq _082E64A0
+ adds r4, r1, 0
+_082E647C:
+ ldrb r2, [r4]
+ adds r0, r5, 0
+ adds r1, r6, 0
+ bl rfu_STC_analyzeLLSF
+ lsls r0, 24
+ lsrs r0, 24
+ adds r6, r0
+ ldrb r1, [r4]
+ subs r1, r0
+ strb r1, [r4]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _082E64A0
+ lsls r0, r1, 24
+ cmp r0, 0
+ bne _082E647C
+_082E64A0:
+ lsls r0, r7, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x3
+ bls _082E646E
+ add sp, 0x4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_082E64B0: .4byte 0x03007898
+_082E64B4: .4byte 0x03007894
+ thumb_func_end rfu_STC_PARENT_analyzeRecvPacket
+
+ thumb_func_start rfu_STC_CHILD_analyzeRecvPacket
+rfu_STC_CHILD_analyzeRecvPacket: @ 82E64B8
+ push {r4-r6,lr}
+ ldr r0, _082E6508
+ ldr r0, [r0]
+ adds r0, 0xDC
+ ldr r1, [r0]
+ ldrh r0, [r1, 0x4]
+ movs r4, 0x7F
+ ands r4, r0
+ adds r5, r1, 0
+ adds r5, 0x8
+ cmp r4, 0
+ bne _082E64D8
+ ldr r0, _082E650C
+ ldr r1, [r0]
+ movs r0, 0xF
+ strb r0, [r1, 0x1]
+_082E64D8:
+ movs r0, 0x80
+ lsls r0, 8
+ adds r6, r0, 0
+_082E64DE:
+ cmp r4, 0
+ beq _082E6500
+ movs r0, 0
+ adds r1, r5, 0
+ adds r2, r4, 0
+ bl rfu_STC_analyzeLLSF
+ lsls r0, 16
+ lsrs r0, 16
+ adds r5, r0
+ subs r0, r4, r0
+ lsls r0, 16
+ lsrs r4, r0, 16
+ adds r0, r4, 0
+ ands r0, r6
+ cmp r0, 0
+ beq _082E64DE
+_082E6500:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_082E6508: .4byte 0x03007898
+_082E650C: .4byte 0x03007894
+ thumb_func_end rfu_STC_CHILD_analyzeRecvPacket
+
+ thumb_func_start rfu_STC_analyzeLLSF
+rfu_STC_analyzeLLSF: @ 82E6510
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x8
+ adds r7, r1, 0
+ lsls r0, 24
+ lsrs r0, 24
+ mov r12, r0
+ lsls r2, 16
+ lsrs r3, r2, 16
+ ldr r2, _082E6544
+ ldr r0, [r2]
+ ldrb r0, [r0]
+ mvns r0, r0
+ movs r1, 0x1
+ ands r0, r1
+ lsls r0, 4
+ ldr r1, _082E6548
+ adds r6, r0, r1
+ ldrb r0, [r6]
+ cmp r3, r0
+ bcs _082E654C
+ adds r0, r3, 0
+ b _082E673E
+ .align 2, 0
+_082E6544: .4byte 0x03007890
+_082E6548: .4byte 0x089a3220
+_082E654C:
+ movs r5, 0
+ movs r4, 0
+ ldrb r3, [r6, 0x1]
+ ldrb r1, [r6, 0x7]
+ mov r8, r1
+ ldr r2, [sp]
+ mov r9, r2
+ cmp r4, r0
+ bcs _082E6574
+ adds r2, r0, 0
+_082E6560:
+ ldrb r0, [r7]
+ lsls r1, r4, 3
+ lsls r0, r1
+ orrs r5, r0
+ adds r7, 0x1
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, r2
+ bcc _082E6560
+_082E6574:
+ adds r0, r5, 0
+ lsrs r0, r3
+ mov r3, r8
+ ands r0, r3
+ ldr r1, _082E664C
+ mov r10, r1
+ mov r3, r10
+ mov r2, r9
+ ands r3, r2
+ orrs r3, r0
+ str r3, [sp]
+ adds r0, r5, 0
+ ldrb r1, [r6, 0x2]
+ lsrs r0, r1
+ ldrb r1, [r6, 0x8]
+ ands r0, r1
+ lsls r0, 8
+ ldr r4, _082E6650
+ adds r2, r4, 0
+ ands r2, r3
+ orrs r2, r0
+ str r2, [sp]
+ adds r0, r5, 0
+ ldrb r3, [r6, 0x3]
+ lsrs r0, r3
+ ldrb r1, [r6, 0x9]
+ ands r0, r1
+ lsls r0, 16
+ ldr r3, _082E6654
+ ands r3, r2
+ orrs r3, r0
+ str r3, [sp]
+ adds r0, r5, 0
+ ldrb r1, [r6, 0x4]
+ lsrs r0, r1
+ ldrb r1, [r6, 0xA]
+ ands r0, r1
+ lsls r0, 24
+ ldr r2, _082E6658
+ mov r8, r2
+ mov r1, r8
+ ands r1, r3
+ orrs r1, r0
+ mov r8, r1
+ str r1, [sp]
+ adds r1, r5, 0
+ ldrb r2, [r6, 0x5]
+ lsrs r1, r2
+ ldrb r0, [r6, 0xB]
+ ands r1, r0
+ mov r9, sp
+ ldr r2, [sp, 0x4]
+ mov r3, r10
+ ands r2, r3
+ orrs r2, r1
+ str r2, [sp, 0x4]
+ adds r0, r5, 0
+ ldrb r1, [r6, 0x6]
+ lsrs r0, r1
+ ldrb r1, [r6, 0xC]
+ ands r0, r1
+ lsls r0, 8
+ ands r4, r2
+ orrs r4, r0
+ str r4, [sp, 0x4]
+ ldrh r0, [r6, 0xE]
+ ands r5, r0
+ lsls r1, r5, 16
+ ldr r0, _082E665C
+ ands r0, r4
+ orrs r0, r1
+ str r0, [sp, 0x4]
+ lsrs r0, 16
+ ldrb r6, [r6]
+ adds r0, r6
+ lsls r0, 16
+ lsrs r0, 16
+ mov r10, r0
+ mov r0, sp
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _082E661A
+ b _082E673C
+_082E661A:
+ ldr r2, _082E6660
+ ldr r3, [r2]
+ ldrb r2, [r3]
+ cmp r2, 0x1
+ bne _082E66D8
+ ldrb r0, [r3, 0x2]
+ mov r5, r12
+ asrs r0, r5
+ ands r0, r2
+ cmp r0, 0
+ bne _082E6632
+ b _082E673C
+_082E6632:
+ mov r1, r8
+ lsrs r0, r1, 16
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x4
+ bne _082E6664
+ mov r0, r12
+ mov r1, sp
+ adds r2, r7, 0
+ bl rfu_STC_UNI_receive
+ b _082E673C
+ .align 2, 0
+_082E664C: .4byte 0xffffff00
+_082E6650: .4byte 0xffff00ff
+_082E6654: .4byte 0xff00ffff
+_082E6658: .4byte 0x00ffffff
+_082E665C: .4byte 0x0000ffff
+_082E6660: .4byte 0x03007890
+_082E6664:
+ mov r5, r9
+ ldrb r0, [r5, 0x3]
+ cmp r0, 0
+ bne _082E6678
+ mov r0, r12
+ mov r1, sp
+ adds r2, r7, 0
+ bl rfu_STC_NI_receive_Receiver
+ b _082E673C
+_082E6678:
+ movs r4, 0
+ ldr r1, _082E6690
+ ldr r0, [r1]
+ ldrb r0, [r0, 0x1A]
+ mov r5, r12
+ asrs r0, r5
+ ands r0, r2
+ cmp r0, 0
+ beq _082E6694
+ ldrb r0, [r3, 0x4]
+ b _082E66BA
+ .align 2, 0
+_082E6690: .4byte 0x03007880
+_082E6694:
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x3
+ bhi _082E673C
+ lsls r0, r4, 2
+ adds r0, r1
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x1A]
+ mov r2, r12
+ asrs r0, r2
+ movs r2, 0x1
+ ands r0, r2
+ cmp r0, 0
+ beq _082E6694
+ ldr r3, _082E66D4
+ ldr r0, [r3]
+ ldrb r0, [r0, 0x4]
+ mov r5, r12
+_082E66BA:
+ asrs r0, r5
+ ands r0, r2
+ cmp r0, 0
+ beq _082E6694
+ cmp r4, 0x3
+ bhi _082E673C
+ adds r0, r4, 0
+ mov r1, r12
+ mov r2, sp
+ adds r3, r7, 0
+ bl rfu_STC_NI_receive_Sender
+ b _082E673C
+ .align 2, 0
+_082E66D4: .4byte 0x03007890
+_082E66D8:
+ ldrb r1, [r3, 0x2]
+ mov r2, r9
+ ldrb r0, [r2, 0x1]
+ adds r5, r1, 0
+ ands r5, r0
+ cmp r5, 0
+ beq _082E673C
+ movs r4, 0
+ movs r6, 0x1
+_082E66EA:
+ adds r0, r5, 0
+ asrs r0, r4
+ ands r0, r6
+ cmp r0, 0
+ beq _082E6732
+ mov r1, sp
+ ldrb r0, [r1, 0x2]
+ cmp r0, 0x4
+ bne _082E6706
+ adds r0, r4, 0
+ adds r2, r7, 0
+ bl rfu_STC_UNI_receive
+ b _082E6732
+_082E6706:
+ ldrb r0, [r1, 0x3]
+ cmp r0, 0
+ bne _082E6718
+ adds r0, r4, 0
+ mov r1, sp
+ adds r2, r7, 0
+ bl rfu_STC_NI_receive_Receiver
+ b _082E6732
+_082E6718:
+ ldr r0, _082E6750
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x4]
+ asrs r0, r4
+ ands r0, r6
+ cmp r0, 0
+ beq _082E6732
+ adds r0, r4, 0
+ adds r1, r4, 0
+ mov r2, sp
+ adds r3, r7, 0
+ bl rfu_STC_NI_receive_Sender
+_082E6732:
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x3
+ bls _082E66EA
+_082E673C:
+ mov r0, r10
+_082E673E:
+ add sp, 0x8
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_082E6750: .4byte 0x03007890
+ thumb_func_end rfu_STC_analyzeLLSF
+
+ thumb_func_start rfu_STC_UNI_receive
+rfu_STC_UNI_receive: @ 82E6754
+ push {r4-r7,lr}
+ sub sp, 0x8
+ adds r6, r1, 0
+ str r2, [sp]
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r2, _082E6788
+ lsls r1, r7, 2
+ adds r1, r2
+ ldr r3, [r1]
+ adds r5, r3, 0
+ adds r5, 0xC
+ movs r4, 0
+ movs r0, 0
+ strh r0, [r5, 0x2]
+ ldr r0, [r1]
+ ldr r0, [r0, 0x18]
+ adds r1, r2, 0
+ ldrh r2, [r6, 0x6]
+ cmp r0, r2
+ bcs _082E6790
+ movs r0, 0x49
+ strh r0, [r3, 0xC]
+ ldr r0, _082E678C
+ strh r0, [r5, 0x2]
+ b _082E67DE
+ .align 2, 0
+_082E6788: .4byte 0x03007870
+_082E678C: .4byte 0x00000701
+_082E6790:
+ ldrb r0, [r5, 0x7]
+ cmp r0, 0
+ beq _082E67A8
+ ldrb r0, [r5, 0x6]
+ cmp r0, 0
+ beq _082E67B4
+ ldr r0, _082E67A4
+ strh r0, [r5, 0x2]
+ b _082E67DE
+ .align 2, 0
+_082E67A4: .4byte 0x00000709
+_082E67A8:
+ ldrb r0, [r5, 0x6]
+ cmp r0, 0
+ beq _082E67B4
+ movs r0, 0xE1
+ lsls r0, 3
+ strh r0, [r5, 0x2]
+_082E67B4:
+ movs r4, 0
+ ldr r0, _082E67FC
+ strh r0, [r5]
+ ldrh r0, [r6, 0x6]
+ strh r0, [r5, 0x4]
+ ldrh r2, [r6, 0x6]
+ lsls r0, r7, 2
+ adds r0, r1
+ ldr r0, [r0]
+ ldr r0, [r0, 0x14]
+ str r0, [sp, 0x4]
+ ldr r0, _082E6800
+ ldr r0, [r0]
+ add r1, sp, 0x4
+ ldr r3, [r0, 0x4]
+ mov r0, sp
+ bl _call_via_r3
+ movs r0, 0x1
+ strb r0, [r5, 0x6]
+ strh r4, [r5]
+_082E67DE:
+ ldrh r0, [r5, 0x2]
+ cmp r0, 0
+ beq _082E67F2
+ ldr r0, _082E6804
+ ldr r2, [r0]
+ movs r0, 0x10
+ lsls r0, r7
+ ldrb r1, [r2, 0x4]
+ orrs r0, r1
+ strb r0, [r2, 0x4]
+_082E67F2:
+ add sp, 0x8
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_082E67FC: .4byte 0x00008042
+_082E6800: .4byte 0x03007898
+_082E6804: .4byte 0x03007894
+ thumb_func_end rfu_STC_UNI_receive
+
+ thumb_func_start rfu_STC_NI_receive_Sender
+rfu_STC_NI_receive_Sender: @ 82E6808
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ adds r6, r2, 0
+ lsls r0, 24
+ lsls r1, 24
+ lsrs r1, 24
+ mov r10, r1
+ ldr r1, _082E68D4
+ lsrs r0, 22
+ adds r0, r1
+ ldr r0, [r0]
+ mov r12, r0
+ ldrh r0, [r0]
+ mov r9, r0
+ mov r0, r12
+ adds r0, 0x21
+ ldrb r2, [r6, 0x4]
+ adds r0, r2
+ ldrb r0, [r0]
+ str r0, [sp]
+ ldrb r2, [r6, 0x2]
+ cmp r2, 0x2
+ bne _082E6844
+ ldr r0, _082E68D8
+ cmp r9, r0
+ beq _082E685E
+_082E6844:
+ cmp r2, 0x1
+ bne _082E684E
+ ldr r0, _082E68DC
+ cmp r9, r0
+ beq _082E685E
+_082E684E:
+ movs r3, 0x1B
+ add r3, r12
+ mov r8, r3
+ cmp r2, 0x3
+ bne _082E6882
+ ldr r0, _082E68E0
+ cmp r9, r0
+ bne _082E6882
+_082E685E:
+ ldrb r1, [r6, 0x4]
+ mov r0, r12
+ adds r0, 0x21
+ adds r0, r1
+ ldrb r0, [r0]
+ movs r7, 0x1B
+ add r7, r12
+ mov r8, r7
+ ldrb r2, [r6, 0x5]
+ cmp r0, r2
+ bne _082E6882
+ adds r0, r7, r1
+ movs r1, 0x1
+ mov r3, r10
+ lsls r1, r3
+ ldrb r2, [r0]
+ orrs r1, r2
+ strb r1, [r0]
+_082E6882:
+ ldrb r2, [r6, 0x4]
+ mov r7, r8
+ adds r0, r7, r2
+ ldrb r0, [r0]
+ mov r3, r12
+ ldrb r1, [r3, 0x1A]
+ ands r0, r1
+ cmp r0, r1
+ bne _082E697E
+ adds r3, 0x21
+ adds r2, r3, r2
+ ldrb r0, [r2]
+ adds r0, 0x1
+ movs r1, 0x3
+ ands r0, r1
+ movs r1, 0
+ strb r0, [r2]
+ ldrb r0, [r6, 0x4]
+ add r0, r8
+ strb r1, [r0]
+ mov r7, r12
+ ldrh r1, [r7]
+ ldr r2, _082E68E4
+ adds r0, r1, r2
+ lsls r0, 16
+ lsrs r0, 16
+ adds r5, r3, 0
+ cmp r0, 0x1
+ bhi _082E6970
+ ldr r0, _082E68DC
+ cmp r1, r0
+ bne _082E68E8
+ ldrb r1, [r6, 0x4]
+ lsls r1, 2
+ subs r3, 0x1D
+ adds r1, r3, r1
+ ldrh r2, [r7, 0x2E]
+ ldr r0, [r1]
+ adds r0, r2
+ str r0, [r1]
+ b _082E68FE
+ .align 2, 0
+_082E68D4: .4byte 0x03007880
+_082E68D8: .4byte 0x00008022
+_082E68DC: .4byte 0x00008021
+_082E68E0: .4byte 0x00008023
+_082E68E4: .4byte 0x00007fdf
+_082E68E8:
+ ldrb r2, [r6, 0x4]
+ lsls r2, 2
+ mov r3, r12
+ adds r3, 0x4
+ adds r2, r3, r2
+ mov r7, r12
+ ldrh r1, [r7, 0x2E]
+ lsls r1, 2
+ ldr r0, [r2]
+ adds r0, r1
+ str r0, [r2]
+_082E68FE:
+ mov r0, r12
+ ldrh r1, [r0, 0x2E]
+ ldr r0, [r0, 0x14]
+ subs r0, r1
+ mov r1, r12
+ str r0, [r1, 0x14]
+ cmp r0, 0
+ beq _082E6912
+ cmp r0, 0
+ bge _082E697E
+_082E6912:
+ mov r0, r12
+ adds r0, 0x20
+ movs r2, 0
+ strb r2, [r0]
+ mov r7, r12
+ ldrh r1, [r7]
+ ldr r0, _082E6954
+ cmp r1, r0
+ bne _082E695C
+ movs r4, 0
+_082E6926:
+ adds r0, r5, r4
+ movs r1, 0x1
+ strb r1, [r0]
+ lsls r1, r4, 2
+ adds r1, r3, r1
+ mov r2, r12
+ ldrh r0, [r2, 0x2E]
+ adds r2, r0, 0
+ muls r2, r4
+ mov r7, r12
+ ldr r0, [r7, 0x28]
+ adds r0, r2
+ str r0, [r1]
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x3
+ bls _082E6926
+ ldr r0, [r7, 0x30]
+ str r0, [r7, 0x14]
+ ldr r0, _082E6958
+ strh r0, [r7]
+ b _082E697E
+ .align 2, 0
+_082E6954: .4byte 0x00008021
+_082E6958: .4byte 0x00008022
+_082E695C:
+ strb r2, [r5]
+ mov r0, r12
+ str r2, [r0, 0x14]
+ ldr r0, _082E696C
+ mov r1, r12
+ strh r0, [r1]
+ b _082E697E
+ .align 2, 0
+_082E696C: .4byte 0x00008023
+_082E6970:
+ lsls r1, 16
+ ldr r0, _082E69E0
+ cmp r1, r0
+ bne _082E697E
+ ldr r0, _082E69E4
+ mov r2, r12
+ strh r0, [r2]
+_082E697E:
+ mov r3, r12
+ ldrh r0, [r3]
+ cmp r0, r9
+ bne _082E69A8
+ ldrb r2, [r6, 0x4]
+ mov r0, r12
+ adds r0, 0x21
+ adds r0, r2
+ ldrb r0, [r0]
+ ldr r7, [sp]
+ cmp r0, r7
+ bne _082E69A8
+ mov r1, r8
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ mov r2, r10
+ asrs r0, r2
+ movs r1, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _082E69CE
+_082E69A8:
+ ldr r4, _082E69E8
+ ldrh r2, [r4]
+ movs r0, 0
+ strh r0, [r4]
+ ldr r0, _082E69EC
+ ldr r3, [r0]
+ movs r0, 0x10
+ mov r7, r10
+ lsls r0, r7
+ ldrb r1, [r3, 0x2]
+ orrs r0, r1
+ movs r1, 0
+ strb r0, [r3, 0x2]
+ lsls r0, r7, 2
+ ldr r3, _082E69F0
+ adds r0, r3
+ ldr r0, [r0]
+ strh r1, [r0, 0x2]
+ strh r2, [r4]
+_082E69CE:
+ add sp, 0x4
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_082E69E0: .4byte 0x80230000
+_082E69E4: .4byte 0x00008020
+_082E69E8: .4byte 0x04000208
+_082E69EC: .4byte 0x03007894
+_082E69F0: .4byte 0x03007880
+ thumb_func_end rfu_STC_NI_receive_Sender
+
+ thumb_func_start rfu_STC_NI_receive_Receiver
+rfu_STC_NI_receive_Receiver: @ 82E69F4
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ adds r6, r1, 0
+ str r2, [sp]
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ movs r7, 0
+ ldr r1, _082E6A54
+ lsls r0, 2
+ adds r0, r1
+ ldr r4, [r0]
+ adds r5, r4, 0
+ adds r5, 0x34
+ ldrh r0, [r4, 0x34]
+ mov r9, r0
+ ldrb r0, [r6, 0x4]
+ adds r3, r4, 0
+ adds r3, 0x55
+ adds r0, r3, r0
+ ldrb r0, [r0]
+ mov r10, r0
+ ldrb r0, [r6, 0x2]
+ cmp r0, 0x3
+ bne _082E6A64
+ ldr r0, _082E6A58
+ ldr r2, [r0]
+ movs r0, 0x1
+ mov r1, r8
+ lsls r0, r1
+ ldrb r1, [r2, 0x1]
+ orrs r0, r1
+ strb r0, [r2, 0x1]
+ ldrh r1, [r4, 0x34]
+ ldr r0, _082E6A5C
+ cmp r1, r0
+ bne _082E6AAA
+ adds r0, r4, 0
+ adds r0, 0x54
+ strb r7, [r0]
+ strb r7, [r3]
+ ldr r0, _082E6A60
+ strh r0, [r4, 0x34]
+ b _082E6AAA
+ .align 2, 0
+_082E6A54: .4byte 0x03007880
+_082E6A58: .4byte 0x03007894
+_082E6A5C: .4byte 0x00008042
+_082E6A60: .4byte 0x00008043
+_082E6A64:
+ cmp r0, 0x2
+ bne _082E6A90
+ ldr r0, _082E6A88
+ cmp r9, r0
+ bne _082E6A7C
+ ldr r0, [r5, 0x14]
+ cmp r0, 0
+ bne _082E6A7C
+ mov r0, r8
+ adds r1, r5, 0
+ bl rfu_STC_NI_initSlot_asRecvDataEntity
+_082E6A7C:
+ ldrh r1, [r5]
+ ldr r0, _082E6A8C
+ cmp r1, r0
+ bne _082E6AAA
+ b _082E6AAE
+ .align 2, 0
+_082E6A88: .4byte 0x00008041
+_082E6A8C: .4byte 0x00008042
+_082E6A90:
+ cmp r0, 0x1
+ bne _082E6AAA
+ ldr r7, _082E6B5C
+ cmp r9, r7
+ beq _082E6AAE
+ mov r0, r8
+ adds r1, r5, 0
+ bl rfu_STC_NI_initSlot_asRecvControllData
+ ldrh r0, [r4, 0x34]
+ cmp r0, r7
+ bne _082E6B4A
+ movs r7, 0x1
+_082E6AAA:
+ cmp r7, 0
+ beq _082E6B04
+_082E6AAE:
+ ldrb r2, [r6, 0x5]
+ ldrb r3, [r6, 0x4]
+ adds r4, r5, 0
+ adds r4, 0x21
+ adds r0, r4, r3
+ ldrb r0, [r0]
+ adds r0, 0x1
+ movs r1, 0x3
+ ands r0, r1
+ cmp r2, r0
+ bne _082E6B04
+ ldr r0, _082E6B60
+ ldr r0, [r0]
+ lsls r1, r3, 2
+ adds r1, 0x4
+ adds r1, r5, r1
+ ldrh r2, [r6, 0x6]
+ ldr r3, [r0, 0x4]
+ mov r0, sp
+ bl _call_via_r3
+ ldrh r1, [r5]
+ ldr r0, _082E6B64
+ cmp r1, r0
+ bne _082E6AF4
+ ldrb r0, [r6, 0x4]
+ lsls r0, 2
+ adds r2, r5, 0x4
+ adds r2, r0
+ ldrh r0, [r5, 0x2E]
+ lsls r1, r0, 1
+ adds r1, r0
+ ldr r0, [r2]
+ adds r0, r1
+ str r0, [r2]
+_082E6AF4:
+ ldrh r1, [r6, 0x6]
+ ldr r0, [r5, 0x14]
+ subs r0, r1
+ str r0, [r5, 0x14]
+ ldrb r0, [r6, 0x4]
+ adds r0, r4, r0
+ ldrb r1, [r6, 0x5]
+ strb r1, [r0]
+_082E6B04:
+ ldrh r0, [r5, 0x18]
+ cmp r0, 0
+ bne _082E6B4A
+ ldrb r0, [r6, 0x4]
+ adds r1, r5, 0
+ adds r1, 0x20
+ strb r0, [r1]
+ ldrh r0, [r5]
+ cmp r0, r9
+ bne _082E6B2C
+ adds r0, r5, 0
+ adds r0, 0x21
+ ldrb r2, [r6, 0x4]
+ adds r0, r2
+ ldrb r0, [r0]
+ cmp r0, r10
+ bne _082E6B2C
+ ldrb r6, [r6, 0x5]
+ cmp r0, r6
+ bne _082E6B4A
+_082E6B2C:
+ ldr r3, _082E6B68
+ ldrh r2, [r3]
+ movs r0, 0
+ strh r0, [r3]
+ ldr r0, _082E6B6C
+ ldr r4, [r0]
+ movs r0, 0x1
+ mov r1, r8
+ lsls r0, r1
+ ldrb r1, [r4, 0x2]
+ orrs r0, r1
+ movs r1, 0
+ strb r0, [r4, 0x2]
+ strh r1, [r5, 0x2]
+ strh r2, [r3]
+_082E6B4A:
+ add sp, 0x4
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_082E6B5C: .4byte 0x00008041
+_082E6B60: .4byte 0x03007898
+_082E6B64: .4byte 0x00008042
+_082E6B68: .4byte 0x04000208
+_082E6B6C: .4byte 0x03007894
+ thumb_func_end rfu_STC_NI_receive_Receiver
+
+ thumb_func_start rfu_STC_NI_initSlot_asRecvControllData
+rfu_STC_NI_initSlot_asRecvControllData: @ 82E6B70
+ push {r4-r7,lr}
+ adds r2, r1, 0
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _082E6B8C
+ ldr r3, [r0]
+ ldrb r1, [r3]
+ mov r12, r0
+ cmp r1, 0x1
+ bne _082E6B90
+ movs r5, 0x3
+ adds r1, r3, 0
+ adds r1, 0xF
+ b _082E6B98
+ .align 2, 0
+_082E6B8C: .4byte 0x03007890
+_082E6B90:
+ movs r5, 0x2
+ adds r0, r4, 0
+ adds r0, 0x10
+ adds r1, r3, r0
+_082E6B98:
+ movs r7, 0x1
+ adds r0, r7, 0
+ lsls r0, r4
+ lsls r0, 24
+ lsrs r6, r0, 24
+ adds r4, r6, 0
+ ldrh r3, [r2]
+ cmp r3, 0
+ bne _082E6BF6
+ ldrb r0, [r1]
+ cmp r0, r5
+ bcs _082E6BD0
+ movs r0, 0x49
+ strh r0, [r2]
+ ldr r0, _082E6BC8
+ strh r0, [r2, 0x18]
+ ldr r0, _082E6BCC
+ ldr r2, [r0]
+ ldrb r1, [r2, 0x4]
+ adds r0, r6, 0
+ orrs r0, r1
+ strb r0, [r2, 0x4]
+ b _082E6BF6
+ .align 2, 0
+_082E6BC8: .4byte 0x00000702
+_082E6BCC: .4byte 0x03007894
+_082E6BD0:
+ strh r3, [r2, 0x18]
+ ldrb r0, [r1]
+ subs r0, r5
+ strb r0, [r1]
+ adds r0, r2, 0
+ adds r0, 0x2D
+ str r0, [r2, 0x4]
+ movs r0, 0x7
+ str r0, [r2, 0x14]
+ strb r7, [r2, 0x1F]
+ strh r3, [r2, 0x2E]
+ strb r4, [r2, 0x1A]
+ ldr r0, _082E6BFC
+ strh r0, [r2]
+ mov r0, r12
+ ldr r1, [r0]
+ ldrb r0, [r1, 0x5]
+ orrs r4, r0
+ strb r4, [r1, 0x5]
+_082E6BF6:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_082E6BFC: .4byte 0x00008041
+ thumb_func_end rfu_STC_NI_initSlot_asRecvControllData
+
+ thumb_func_start rfu_STC_NI_initSlot_asRecvDataEntity
+rfu_STC_NI_initSlot_asRecvDataEntity: @ 82E6C00
+ push {r4-r7,lr}
+ adds r4, r1, 0
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r0, r4, 0
+ adds r0, 0x2D
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bne _082E6C24
+ ldr r0, _082E6C20
+ lsls r1, r5, 5
+ adds r1, 0x14
+ ldr r0, [r0]
+ adds r0, r1
+ adds r0, 0x4
+ b _082E6C7A
+ .align 2, 0
+_082E6C20: .4byte 0x03007890
+_082E6C24:
+ ldr r1, _082E6C68
+ lsls r0, r5, 2
+ adds r0, r1
+ ldr r2, [r0]
+ ldr r1, [r4, 0x30]
+ ldr r0, [r2, 0x6C]
+ cmp r1, r0
+ bls _082E6C78
+ movs r1, 0x80
+ lsls r1, 17
+ lsls r1, r5
+ lsrs r1, 24
+ ldr r0, _082E6C6C
+ ldr r3, [r0]
+ ldrb r2, [r3, 0x4]
+ adds r0, r1, 0
+ orrs r0, r2
+ strb r0, [r3, 0x4]
+ ldr r0, _082E6C70
+ ldr r2, [r0]
+ ldrb r0, [r2, 0x5]
+ bics r0, r1
+ strb r0, [r2, 0x5]
+ ldr r0, _082E6C74
+ strh r0, [r4, 0x18]
+ movs r0, 0x47
+ strh r0, [r4]
+ adds r0, r5, 0
+ movs r1, 0x1
+ adds r2, r4, 0
+ bl rfu_STC_releaseFrame
+ b _082E6CAC
+ .align 2, 0
+_082E6C68: .4byte 0x03007880
+_082E6C6C: .4byte 0x03007894
+_082E6C70: .4byte 0x03007890
+_082E6C74: .4byte 0x00000701
+_082E6C78:
+ ldr r0, [r2, 0x68]
+_082E6C7A:
+ str r0, [r4, 0x4]
+ movs r3, 0
+ adds r6, r4, 0
+ adds r6, 0x21
+ movs r7, 0
+ adds r5, r4, 0x4
+_082E6C86:
+ adds r0, r6, r3
+ strb r7, [r0]
+ lsls r1, r3, 2
+ adds r1, r5, r1
+ ldrh r0, [r4, 0x2E]
+ adds r2, r0, 0
+ muls r2, r3
+ ldr r0, [r4, 0x4]
+ adds r0, r2
+ str r0, [r1]
+ adds r0, r3, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0x3
+ bls _082E6C86
+ ldr r0, [r4, 0x30]
+ str r0, [r4, 0x14]
+ ldr r0, _082E6CB4
+ strh r0, [r4]
+_082E6CAC:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_082E6CB4: .4byte 0x00008042
+ thumb_func_end rfu_STC_NI_initSlot_asRecvDataEntity
+
+ thumb_func_start rfu_NI_checkCommFailCounter
+rfu_NI_checkCommFailCounter: @ 82E6CB8
+ push {r4-r7,lr}
+ ldr r2, _082E6D44
+ ldr r0, [r2]
+ ldrb r1, [r0, 0x4]
+ ldrb r0, [r0, 0x5]
+ orrs r0, r1
+ cmp r0, 0
+ beq _082E6D3E
+ ldr r1, _082E6D48
+ ldrh r0, [r1]
+ mov r12, r0
+ movs r0, 0
+ strh r0, [r1]
+ ldr r1, _082E6D4C
+ ldr r0, [r1]
+ ldrb r0, [r0, 0x2]
+ lsrs r7, r0, 4
+ movs r3, 0
+ adds r6, r1, 0
+ adds r5, r2, 0
+ ldr r4, _082E6D50
+_082E6CE2:
+ movs r0, 0x80
+ lsls r0, 17
+ lsls r0, r3
+ lsrs r2, r0, 24
+ ldr r0, [r5]
+ ldrb r0, [r0, 0x4]
+ ands r0, r2
+ cmp r0, 0
+ beq _082E6D0A
+ ldr r0, [r6]
+ ldrb r0, [r0, 0x2]
+ ands r0, r2
+ cmp r0, 0
+ bne _082E6D0A
+ lsls r0, r3, 2
+ adds r0, r4
+ ldr r1, [r0]
+ ldrh r0, [r1, 0x2]
+ adds r0, 0x1
+ strh r0, [r1, 0x2]
+_082E6D0A:
+ ldr r0, [r5]
+ ldrb r0, [r0, 0x5]
+ ands r0, r2
+ cmp r0, 0
+ beq _082E6D28
+ adds r0, r7, 0
+ ands r0, r2
+ cmp r0, 0
+ bne _082E6D28
+ lsls r0, r3, 2
+ adds r0, r4
+ ldr r1, [r0]
+ ldrh r0, [r1, 0x36]
+ adds r0, 0x1
+ strh r0, [r1, 0x36]
+_082E6D28:
+ adds r0, r3, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0x3
+ bls _082E6CE2
+ ldr r0, [r6]
+ movs r1, 0
+ strb r1, [r0, 0x2]
+ ldr r0, _082E6D48
+ mov r1, r12
+ strh r1, [r0]
+_082E6D3E:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_082E6D44: .4byte 0x03007890
+_082E6D48: .4byte 0x04000208
+_082E6D4C: .4byte 0x03007894
+_082E6D50: .4byte 0x03007880
+ thumb_func_end rfu_NI_checkCommFailCounter
+
+ thumb_func_start rfu_REQ_noise
+rfu_REQ_noise: @ 82E6D54
+ push {lr}
+ ldr r0, _082E6D68
+ bl STWI_set_Callback_M
+ movs r0, 0x1
+ movs r1, 0
+ bl STWI_send_TestModeREQ
+ pop {r0}
+ bx r0
+ .align 2, 0
+_082E6D68: .4byte rfu_STC_REQ_callback + 1
+ thumb_func_end rfu_REQ_noise
+
+ thumb_func_start sub_82E6D6C
+sub_82E6D6C: @ 82E6D6C
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r0, _082E6D84
+ ldrh r0, [r0]
+ cmp r0, 0
+ bne _082E6D88
+ movs r0, 0x1
+ negs r0, r0
+ b _082E6E08
+ .align 2, 0
+_082E6D84: .4byte 0x04000208
+_082E6D88:
+ ldr r0, _082E6DB4
+ ldrh r0, [r0]
+ mov r8, r0
+ ldr r4, _082E6DB8
+ ldr r1, [r4]
+ movs r0, 0xA
+ str r0, [r1]
+ ldr r0, _082E6DBC
+ bl STWI_set_Callback_ID
+ bl sub_82E6E20
+ ldr r0, [r4]
+ ldrb r0, [r0, 0xA]
+ lsls r0, 2
+ ldr r1, _082E6DC0
+ adds r4, r0, r1
+ lsls r0, r5, 27
+ lsrs r5, r0, 24
+ movs r7, 0
+ b _082E6DD6
+ .align 2, 0
+_082E6DB4: .4byte 0x04000200
+_082E6DB8: .4byte 0x03007868
+_082E6DBC: .4byte sub_82E6F88 + 1
+_082E6DC0: .4byte 0x04000100
+_082E6DC4:
+ strh r6, [r4, 0x2]
+ strh r6, [r4]
+ movs r0, 0x83
+ strh r0, [r4, 0x2]
+_082E6DCC:
+ ldrh r0, [r4]
+ cmp r0, 0x1F
+ bls _082E6DCC
+ strh r7, [r4, 0x2]
+ strh r7, [r4]
+_082E6DD6:
+ subs r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0xFF
+ beq _082E6DEA
+ bl sub_82E6E94
+ adds r6, r0, 0
+ cmp r6, 0
+ beq _082E6DC4
+_082E6DEA:
+ ldr r1, _082E6E14
+ movs r0, 0
+ strh r0, [r1]
+ ldr r0, _082E6E18
+ mov r2, r8
+ strh r2, [r0]
+ movs r0, 0x1
+ strh r0, [r1]
+ ldr r0, _082E6E1C
+ ldr r1, [r0]
+ movs r0, 0
+ str r0, [r1]
+ bl STWI_set_Callback_ID
+ adds r0, r6, 0
+_082E6E08:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_082E6E14: .4byte 0x04000208
+_082E6E18: .4byte 0x04000200
+_082E6E1C: .4byte 0x03007868
+ thumb_func_end sub_82E6D6C
+
+ thumb_func_start sub_82E6E20
+sub_82E6E20: @ 82E6E20
+ push {r4,r5,lr}
+ sub sp, 0x4
+ ldr r3, _082E6E78
+ movs r4, 0
+ strh r4, [r3]
+ ldr r2, _082E6E7C
+ ldr r0, _082E6E80
+ ldr r0, [r0]
+ movs r1, 0x8
+ ldrb r0, [r0, 0xA]
+ lsls r1, r0
+ movs r5, 0x80
+ orrs r1, r5
+ ldrh r0, [r2]
+ bics r0, r1
+ strh r0, [r2]
+ movs r0, 0x1
+ strh r0, [r3]
+ ldr r0, _082E6E84
+ strh r4, [r0]
+ subs r2, 0xD8
+ movs r1, 0x80
+ lsls r1, 5
+ adds r0, r1, 0
+ strh r0, [r2]
+ ldrh r0, [r2]
+ movs r3, 0x81
+ lsls r3, 7
+ adds r1, r3, 0
+ orrs r0, r1
+ strh r0, [r2]
+ movs r0, 0
+ str r0, [sp]
+ ldr r1, _082E6E88
+ ldr r2, _082E6E8C
+ mov r0, sp
+ bl CpuSet
+ ldr r0, _082E6E90
+ strh r5, [r0]
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_082E6E78: .4byte 0x04000208
+_082E6E7C: .4byte 0x04000200
+_082E6E80: .4byte 0x03007868
+_082E6E84: .4byte 0x04000134
+_082E6E88: .4byte 0x030078a0
+_082E6E8C: .4byte 0x05000003
+_082E6E90: .4byte 0x04000202
+ thumb_func_end sub_82E6E20
+
+ thumb_func_start sub_82E6E94
+sub_82E6E94: @ 82E6E94
+ push {r4-r7,lr}
+ ldr r0, _082E6EA8
+ ldrb r1, [r0, 0x1]
+ mov r12, r1
+ adds r7, r0, 0
+ cmp r1, 0
+ beq _082E6EAC
+ cmp r1, 0x1
+ beq _082E6EE4
+ b _082E6F7C
+ .align 2, 0
+_082E6EA8: .4byte 0x030078a0
+_082E6EAC:
+ movs r6, 0x1
+ strb r6, [r7]
+ ldr r3, _082E6ED8
+ ldrh r0, [r3]
+ movs r5, 0x1
+ orrs r0, r5
+ strh r0, [r3]
+ ldr r4, _082E6EDC
+ mov r0, r12
+ strh r0, [r4]
+ ldr r2, _082E6EE0
+ ldrh r0, [r2]
+ movs r1, 0x80
+ orrs r0, r1
+ strh r0, [r2]
+ strh r6, [r4]
+ strb r5, [r7, 0x1]
+ ldrb r0, [r3]
+ orrs r0, r1
+ strb r0, [r3]
+ b _082E6F80
+ .align 2, 0
+_082E6ED8: .4byte 0x04000128
+_082E6EDC: .4byte 0x04000208
+_082E6EE0: .4byte 0x04000200
+_082E6EE4:
+ ldrh r0, [r7, 0xA]
+ cmp r0, 0
+ bne _082E6F78
+ ldrb r0, [r7]
+ cmp r0, 0x1
+ bne _082E6F14
+ ldrh r0, [r7, 0x2]
+ cmp r0, 0
+ bne _082E6F80
+ ldr r3, _082E6F0C
+ strh r0, [r3]
+ ldr r2, _082E6F10
+ ldrh r0, [r2]
+ movs r1, 0x80
+ orrs r0, r1
+ strh r0, [r2]
+ mov r1, r12
+ strh r1, [r3]
+ b _082E6F80
+ .align 2, 0
+_082E6F0C: .4byte 0x04000208
+_082E6F10: .4byte 0x04000128
+_082E6F14:
+ ldrh r1, [r7, 0x4]
+ ldr r0, _082E6F60
+ cmp r1, r0
+ beq _082E6F80
+ ldrh r6, [r7, 0x2]
+ cmp r6, 0
+ bne _082E6F80
+ ldr r4, _082E6F64
+ strh r6, [r4]
+ ldr r3, _082E6F68
+ ldrh r1, [r3]
+ ldr r0, _082E6F6C
+ ands r0, r1
+ strh r0, [r3]
+ mov r7, r12
+ strh r7, [r4]
+ ldr r2, _082E6F70
+ strh r6, [r2]
+ movs r1, 0x80
+ lsls r1, 5
+ adds r0, r1, 0
+ strh r0, [r2]
+ ldr r0, _082E6F74
+ movs r5, 0x80
+ strh r5, [r0]
+ ldrh r0, [r2]
+ movs r7, 0x81
+ lsls r7, 7
+ adds r1, r7, 0
+ orrs r0, r1
+ strh r0, [r2]
+ strh r6, [r4]
+ ldrh r0, [r3]
+ orrs r0, r5
+ strh r0, [r3]
+ mov r0, r12
+ strh r0, [r4]
+ b _082E6F80
+ .align 2, 0
+_082E6F60: .4byte 0x00008001
+_082E6F64: .4byte 0x04000208
+_082E6F68: .4byte 0x04000200
+_082E6F6C: .4byte 0x0000ff7f
+_082E6F70: .4byte 0x04000128
+_082E6F74: .4byte 0x04000202
+_082E6F78:
+ movs r0, 0x2
+ strb r0, [r7, 0x1]
+_082E6F7C:
+ ldrh r0, [r7, 0xA]
+ b _082E6F82
+_082E6F80:
+ movs r0, 0
+_082E6F82:
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_82E6E94
+
+ thumb_func_start sub_82E6F88
+sub_82E6F88: @ 82E6F88
+ push {r4,r5,lr}
+ ldr r0, _082E6FD0
+ ldr r5, [r0]
+ ldr r0, _082E6FD4
+ ldrb r1, [r0]
+ adds r4, r0, 0
+ cmp r1, 0x1
+ beq sub_82E6FA2
+ ldr r0, _082E6FD8
+ ldrh r1, [r0]
+ movs r2, 0x80
+ orrs r1, r2
+ strh r1, [r0]
+ thumb_func_end sub_82E6F88
+
+ non_word_aligned_thumb_func_start sub_82E6FA2
+sub_82E6FA2: @ 82E6FA2
+ ldrb r2, [r4]
+ lsls r1, r2, 4
+ adds r0, r5, 0
+ lsls r0, r1
+ lsrs r1, r0, 16
+ movs r0, 0x1
+ subs r0, r2
+ lsls r0, 4
+ lsls r5, r0
+ adds r0, r5, 0
+ lsrs r5, r0, 16
+ ldrh r0, [r4, 0xA]
+ cmp r0, 0
+ bne _082E6FF6
+ ldrh r2, [r4, 0x6]
+ cmp r1, r2
+ bne _082E6FF4
+ ldrh r3, [r4, 0x2]
+ cmp r3, 0x3
+ bls _082E6FDC
+ strh r5, [r4, 0xA]
+ b _082E6FF6
+ .align 2, 0
+_082E6FD0: .4byte 0x04000120
+_082E6FD4: .4byte 0x030078a0
+_082E6FD8: .4byte 0x04000128
+_082E6FDC:
+ ldrh r0, [r4, 0x4]
+ mvns r0, r0
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r1, r0
+ bne _082E6FF6
+ mvns r0, r2
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r5, r0
+ bne _082E6FF6
+ adds r0, r3, 0x1
+_082E6FF4:
+ strh r0, [r4, 0x2]
+_082E6FF6:
+ ldrh r0, [r4, 0x2]
+ cmp r0, 0x3
+ bhi _082E700C
+ lsls r0, 1
+ ldr r1, _082E7008
+ adds r0, r1
+ ldrh r0, [r0]
+ b _082E700E
+ .align 2, 0
+_082E7008: .4byte 0x089a3258
+_082E700C:
+ ldr r0, _082E7064
+_082E700E:
+ strh r0, [r4, 0x4]
+ mvns r0, r5
+ strh r0, [r4, 0x6]
+ ldr r3, _082E7068
+ ldrh r2, [r4, 0x4]
+ ldrb r1, [r4]
+ movs r0, 0x1
+ subs r0, r1
+ lsls r0, 4
+ lsls r2, r0
+ ldrh r0, [r4, 0x6]
+ lsls r1, 4
+ lsls r0, r1
+ adds r2, r0
+ str r2, [r3]
+ ldrb r0, [r4]
+ cmp r0, 0x1
+ bne _082E705C
+ ldrh r0, [r4, 0x2]
+ cmp r0, 0
+ bne _082E703E
+ ldr r0, _082E706C
+ cmp r5, r0
+ bne _082E705C
+_082E703E:
+ movs r0, 0
+ ldr r1, _082E7070
+_082E7042:
+ adds r0, 0x1
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, r1
+ bls _082E7042
+ ldrh r0, [r4, 0xA]
+ cmp r0, 0
+ bne _082E705C
+ ldr r0, _082E7074
+ ldrh r1, [r0]
+ movs r2, 0x80
+ orrs r1, r2
+ strh r1, [r0]
+_082E705C:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_082E7064: .4byte 0x00008001
+_082E7068: .4byte 0x04000120
+_082E706C: .4byte 0x0000494e
+_082E7070: .4byte 0x00000257
+_082E7074: .4byte 0x04000128
+ thumb_func_end sub_82E6FA2
diff --git a/asm/unknown_lib_1.s b/asm/unknown_lib_1.s
new file mode 100644
index 000000000..ae53b2a1b
--- /dev/null
+++ b/asm/unknown_lib_1.s
@@ -0,0 +1,448 @@
+ thumb_func_start sub_82DED70
+sub_82DED70: @ 82DED70
+ push {r4,lr}
+ ldr r4, _082DEE78
+ eors r3, r1
+ movs r2, 0x20
+_082DED78:
+ lsrs r3, 1
+ bcc _082DED7E
+ eors r3, r4
+_082DED7E:
+ subs r2, 0x1
+ bne _082DED78
+ pop {r4,pc}
+ thumb_func_end sub_82DED70
+
+ thumb_func_start sub_82DED84
+sub_82DED84: @ 82DED84
+ ldr r1, [r0, 0x28]
+ cmp r1, 0
+ beq _082DEDAA
+ ldrb r1, [r0, 0x1]
+ adds r1, 0x1
+ strb r1, [r0, 0x1]
+ ldrb r1, [r0, 0x2]
+ cmp r1, 0x2
+ beq _082DEDF4
+ ldr r3, _082DF038
+ ldrh r2, [r3, 0x8]
+ movs r1, 0
+ strh r1, [r3, 0x8]
+ ldrb r1, [r0]
+ cmp r1, 0xA
+ bgt _082DEDA8
+ adds r1, 0x1
+ strb r1, [r0]
+_082DEDA8:
+ strh r2, [r3, 0x8]
+_082DEDAA:
+ bcs sub_82DEE98
+ ldrb r1, [r0, 0x2]
+ cmp r1, 0
+ bne _082DEDF6
+ ldr r1, [r0, 0x24]
+ ldr r2, [r0, 0x20]
+ subs r1, r2
+ beq _082DEE76
+ cmp r1, 0xA0
+ bcc _082DEE76
+ push {r4-r6}
+ movs r1, 0x98
+ adds r2, 0x4
+ ldr r4, _082DEE80
+_082DEDC6:
+ ldm r2!, {r5}
+ ldm r4!, {r6}
+ cmp r5, r6
+ bne _082DEDDC
+ subs r1, 0x4
+ bne _082DEDC6
+ ldm r2!, {r5}
+ ldm r4!, {r6}
+ eors r5, r6
+ lsrs r5, 8
+ str r2, [r0, 0x20]
+_082DEDDC:
+ pop {r4-r6}
+ bne sub_82DEE98
+ movs r1, 0x1
+ strb r1, [r0, 0x2]
+ ldr r1, [r0, 0x4]
+ ldr r2, [r0, 0x8]
+ eors r1, r2
+ str r1, [r0, 0x18]
+ ldr r2, _082DEE7C
+ muls r1, r2
+ adds r1, 0x1
+ str r1, [r0, 0x14]
+_082DEDF4:
+ bx lr
+_082DEDF6:
+ ldr r1, [r0, 0x24]
+ mov r12, r1
+ ldr r3, [r0, 0x18]
+ push {r4-r7}
+ ldr r4, [r0, 0x20]
+ ldr r5, _082DEE7C
+ ldr r6, [r0, 0x14]
+ ldr r7, _082DEE78
+_082DEE06:
+ cmp r4, r12
+ bcs _082DEE26
+ ldr r1, [r4]
+ eors r1, r6
+ adds r1, r3
+ stm r4!, {r1}
+ eors r3, r1
+ movs r2, 0x20
+_082DEE16:
+ lsrs r3, 1
+ bcc _082DEE1C
+ eors r3, r7
+_082DEE1C:
+ subs r2, 0x1
+ bne _082DEE16
+ muls r6, r5
+ adds r6, 0x1
+ b _082DEE06
+_082DEE26:
+ str r4, [r0, 0x20]
+ str r6, [r0, 0x14]
+ pop {r4-r7}
+ str r3, [r0, 0x18]
+ ldrh r1, [r0, 0x12]
+ cmp r1, 0
+ bne _082DEE76
+ ldr r1, [r0, 0x24]
+ ldr r2, [r0, 0x20]
+ cmp r1, r2
+ bne _082DEE76
+ ldr r1, [r0, 0xC]
+ cmp r1, 0
+ beq _082DEE60
+ ldrh r1, [r0, 0x10]
+ cmp r1, 0
+ beq _082DEDF4
+ mov r12, lr
+ movs r1, 0xBB
+ ldr r3, [r0, 0xC]
+ bl sub_82DED70
+ ldrh r1, [r0, 0x10]
+ mov lr, r12
+ subs r1, r3
+ bne sub_82DEE98
+ movs r1, 0x2
+ strb r1, [r0, 0x2]
+ bx lr
+_082DEE60:
+ mov r12, lr
+ ldrb r1, [r0, 0x3]
+ lsls r1, 24
+ subs r1, 0x1
+ str r1, [r0, 0xC]
+ bl sub_82DED70
+ lsls r3, 8
+ adds r3, 0xFF
+ str r3, [r0, 0x1C]
+ bx r12
+_082DEE76:
+ bx lr
+ .align 2, 0
+_082DEE78: .4byte 0x0000a1c1
+_082DEE7C: .4byte 0x6177614b
+_082DEE80: .4byte RomHeaderNintendoLogo
+ thumb_func_end sub_82DED84
+
+ thumb_func_start sub_82DEE84
+sub_82DEE84: @ 82DEE84
+ ldrb r1, [r0, 0x2]
+ cmp r1, 0x2
+ bne _082DEE96
+ ldr r3, _082DF038
+ movs r1, 0
+ strh r1, [r3, 0x8]
+ ldr r1, _082DF048
+ adds r1, 0xC0
+ bx r1
+_082DEE96:
+ bx lr
+ thumb_func_end sub_82DEE84
+
+ thumb_func_start sub_82DEE98
+sub_82DEE98: @ 82DEE98
+ ldr r3, _082DF038
+ ldrh r2, [r3, 0x8]
+ movs r1, 0
+ strh r1, [r3, 0x8]
+ adr r3, _082DEEF8
+ str r3, [r0, 0x28]
+ ldrb r3, [r0, 0x3]
+ push {r3}
+ ldrb r3, [r0, 0x1]
+ push {r0,r3}
+ adds r3, r0, 0
+ adds r3, 0x20
+_082DEEB0:
+ stm r0!, {r1}
+ cmp r0, r3
+ bcc _082DEEB0
+ pop {r0,r3}
+ lsrs r3, 1
+ strb r3, [r0, 0x3]
+ pop {r3}
+ strb r3, [r0, 0x1]
+ ldr r3, _082DF03C
+ lsls r0, r3, 10
+ strh r0, [r3, 0x14]
+ movs r0, 0xC0
+ lsls r0, 8
+ strh r0, [r3, 0x14]
+ movs r0, 0x47
+ strh r0, [r3, 0x20]
+ strh r1, [r3, 0x38]
+ ldr r3, _082DF038
+ movs r0, 0x80
+ strh r0, [r3, 0x2]
+ ldrh r1, [r3]
+ orrs r1, r0
+ strh r1, [r3]
+ strh r2, [r3, 0x8]
+ bx lr
+ thumb_func_end sub_82DEE98
+
+ non_word_aligned_thumb_func_start sub_82DEEE2
+sub_82DEEE2: @ 82DEEE2
+ ldr r3, _082DF03C
+ ldrh r1, [r3, 0x20]
+ strh r1, [r3, 0x20]
+ movs r2, 0
+ strb r2, [r0]
+ ldr r2, [r0, 0x28]
+ cmp r2, 0
+ beq _082DEF04
+ lsrs r1, 1
+ bcs _082DEF06
+ mov pc, r2
+_082DEEF8:
+ movs r2, 0
+ strh r2, [r3, 0x38]
+_082DEEFC:
+ str r2, [r0, 0x28]
+_082DEEFE:
+ ldr r3, _082DF040
+ ldrh r1, [r3, 0x2]
+ strb r1, [r0, 0x3]
+_082DEF04:
+ bx lr
+_082DEF06:
+ ldr r1, [r3, 0x30]
+ ldr r1, _082DF044
+ str r1, [r3, 0x34]
+ movs r1, 0x10
+ strh r1, [r3, 0x38]
+ ldrb r1, [r0, 0x3]
+ strb r1, [r0, 0x9]
+ ldrb r1, [r0, 0x2]
+ cmp r1, 0
+ bne _082DEEF8
+ ldr r1, _082DF048
+ str r1, [r0, 0x20]
+ str r1, [r0, 0x24]
+ adr r2, .Lsub_82DEF24
+ b _082DEEFC
+ thumb_func_end sub_82DEEE2
+
+ thumb_func_start sub_82DEF24
+.Lsub_82DEF24:
+sub_82DEF24: @ 82DEF24
+ lsls r1, 31
+ bcc _082DEEF8
+ bmi _082DEF34
+ adr r2, .Lsub_82DEF30
+ b _082DEEFC
+ thumb_func_end sub_82DEF24
+
+ thumb_func_start sub_82DEF30
+.Lsub_82DEF30:
+sub_82DEF30: @ 82DEF30
+ lsrs r1, 1
+ bcc _082DEEF8
+_082DEF34:
+ ldr r1, [r3, 0x30]
+ ldr r2, _082DF044
+ cmp r1, r2
+ bne _082DEEF8
+ ldrb r1, [r0, 0x3]
+ strb r1, [r0, 0xB]
+ adr r2, .Lsub_82DEF44
+ b _082DEEFC
+ thumb_func_end sub_82DEF30
+
+ thumb_func_start sub_82DEF44
+.Lsub_82DEF44:
+sub_82DEF44: @ 82DEF44
+ lsrs r1, 1
+ bcc _082DEEF8
+ ldr r1, [r3, 0x30]
+ lsrs r2, r1, 24
+ cmp r2, 0xDD
+ bne _082DEEF8
+ str r1, [r0, 0x4]
+ ldrb r1, [r0, 0x1]
+ strb r1, [r0, 0xA]
+ movs r2, 0
+ movs r3, 0
+ ldr r1, [r0, 0x8]
+ lsrs r1, 8
+_082DEF5E:
+ lsrs r1, 1
+ adcs r2, r3
+ cmp r1, 0
+ bne _082DEF5E
+ cmp r2, 0xE
+ bgt _082DEF70
+ cmp r2, 0x7
+ bge _082DEF72
+ movs r1, 0xFF
+_082DEF70:
+ strb r1, [r0, 0xA]
+_082DEF72:
+ ldr r1, [r0, 0x8]
+ adds r1, 0xEE
+ ldr r3, _082DF03C
+ str r1, [r3, 0x34]
+ movs r1, 0x30
+ strh r1, [r3, 0x38]
+ adr r2, .Lsub_82DEF84
+ b _082DEEFC
+ thumb_func_end sub_82DEF44
+
+ thumb_func_start sub_82DEF84
+.Lsub_82DEF84:
+sub_82DEF84: @ 82DEF84
+ lsls r1, 31
+ bcc _082DEEF8
+ bmi _082DEF94
+ adr r2, .Lsub_82DEF90
+ b _082DEEFC
+ thumb_func_end sub_82DEF84
+
+ thumb_func_start sub_82DEF90
+.Lsub_82DEF90:
+sub_82DEF90: @ 82DEF90
+ lsrs r1, 1
+ bcc _082DEEF8
+_082DEF94:
+ ldr r1, [r3, 0x30]
+ ldr r2, _082DF034
+ cmp r1, r2
+ bcs _082DEEF8
+ adds r1, 0x1
+ adds r1, r1
+ strh r1, [r0, 0x12]
+ ldrb r1, [r0, 0x2]
+ cmp r1, 0
+_082DEFA6:
+ bne _082DEEF8
+ ldr r1, _082DF048
+ str r1, [r0, 0x20]
+ str r1, [r0, 0x24]
+ adr r2, .Lsub_82DEFB4
+ b _082DEEFC
+ thumb_func_end sub_82DEF90
+
+ thumb_func_start sub_82DEFB4
+.Lsub_82DEFB4:
+sub_82DEFB4: @ 82DEFB4
+ lsrs r1, 1
+ bcc _082DEEF8
+ ldr r2, [r0, 0x24]
+ movs r1, 0x4
+ ands r1, r2
+ adds r1, 0x8
+ lsls r1, 2
+ strh r1, [r3, 0x38]
+ ldr r1, [r3, 0x30]
+ stm r2!, {r1}
+ str r2, [r0, 0x24]
+ ldrh r1, [r0, 0x12]
+ subs r1, 0x1
+ strh r1, [r0, 0x12]
+ bne _082DEEFE
+_082DEFD2:
+ ldrb r1, [r0, 0x1]
+ lsls r1, 8
+ adds r1, 0xCC
+ str r1, [r3, 0x34]
+ adr r2, _082DEFE0
+ b _082DEEFC
+ .align 2, 0
+_082DEFE0:
+ lsls r1, 31
+_082DEFE2:
+ bcc _082DEEF8
+ ldr r1, [r0, 0x1C]
+ cmp r1, 0
+ beq _082DEFD2
+ str r1, [r3, 0x34]
+ adr r2, .Lsub_82DEFF0
+ b _082DEEFC
+ thumb_func_end sub_82DEFB4
+
+ thumb_func_start sub_82DEFF0
+.Lsub_82DEFF0:
+sub_82DEFF0: @ 82DEFF0
+ lsls r1, 31
+ bcc _082DEFE2
+ bmi _082DF000
+ adr r2, .L_082DEFFC
+ b _082DEEFC
+ .align 2, 0
+.L_082DEFFC:
+_082DEFFC:
+ lsrs r1, 1
+ bcc _082DEFE2
+_082DF000:
+ ldr r1, [r3, 0x30]
+ lsrs r2, r1, 24
+ cmp r2, 0xBB
+ bne _082DEFA6
+ strh r1, [r0, 0x10]
+ adr r2, .Lsub_82DF010
+ b _082DEEFC
+ thumb_func_end sub_82DEFF0
+
+ thumb_func_start sub_82DF010
+.Lsub_82DF010:
+sub_82DF010: @ 82DF010
+ b _082DEEF8
+ thumb_func_end sub_82DF010
+
+ non_word_aligned_thumb_func_start sub_82DF012
+sub_82DF012: @ 82DF012
+ ldr r3, _082DF038
+ ldrh r2, [r3, 0x8]
+ movs r1, 0
+ strh r1, [r3, 0x8]
+ ldr r3, _082DF03C
+ movs r0, 0x7
+ strh r0, [r3, 0x20]
+ lsls r0, r3, 10
+ strh r0, [r3, 0x14]
+ ldr r3, _082DF038
+ movs r0, 0x80
+ strh r0, [r3, 0x2]
+ ldrh r1, [r3]
+ bics r1, r0
+ strh r1, [r3]
+ strh r2, [r3, 0x8]
+ bx lr
+ .align 2, 0
+_082DF034: .4byte 0x00004000
+_082DF038: .4byte 0x04000200
+_082DF03C: .4byte 0x04000120
+_082DF040: .4byte 0x04000004
+_082DF044: .4byte 0x45565841
+_082DF048: .4byte 0x02000000
+ thumb_func_end sub_82DF012
diff --git a/asm/unknown_lib_2.s b/asm/unknown_lib_2.s
new file mode 100644
index 000000000..915b87ebb
--- /dev/null
+++ b/asm/unknown_lib_2.s
@@ -0,0 +1,1185 @@
+ thumb_func_start sub_82E2150
+sub_82E2150: @ 82E2150
+ push {r7,lr}
+ mov r7, sp
+ bl sub_82E29F0
+ ldr r0, _082E2164
+ movs r1, 0
+ strb r1, [r0]
+ pop {r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_082E2164: .4byte 0x03001a7e
+ thumb_func_end sub_82E2150
+
+ thumb_func_start sub_82E2168
+sub_82E2168: @ 82E2168
+ push {r7,lr}
+ mov r7, sp
+ bl sub_82E2A04
+ ldr r0, _082E217C
+ movs r1, 0x1
+ strb r1, [r0]
+ pop {r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_082E217C: .4byte 0x03001a7e
+ thumb_func_end sub_82E2168
+
+ thumb_func_start sub_82E2180
+sub_82E2180: @ 82E2180
+ push {r7,lr}
+ sub sp, 0x10
+ mov r7, sp
+ adds r1, r7, 0x4
+ adds r0, r1, 0
+ bl sub_82E22DC
+ lsls r1, r0, 24
+ lsrs r0, r1, 24
+ cmp r0, 0
+ bne _082E219A
+ movs r0, 0
+ b _082E224E
+_082E219A:
+ adds r0, r7, 0
+ movs r1, 0
+ strb r1, [r0]
+ adds r0, r7, 0x4
+ ldrb r1, [r0, 0x7]
+ movs r2, 0xC0
+ adds r0, r1, 0
+ ands r0, r2
+ adds r2, r0, 0
+ lsls r1, r2, 24
+ lsrs r0, r1, 24
+ cmp r0, 0x80
+ beq _082E21CA
+ adds r0, r7, 0x4
+ ldrb r1, [r0, 0x7]
+ movs r2, 0xC0
+ adds r0, r1, 0
+ ands r0, r2
+ adds r2, r0, 0
+ lsls r1, r2, 24
+ lsrs r0, r1, 24
+ cmp r0, 0
+ bne _082E21E8
+ b _082E21CA
+_082E21CA:
+ bl sub_82E2258
+ lsls r1, r0, 24
+ lsrs r0, r1, 24
+ cmp r0, 0
+ bne _082E21DA
+ movs r0, 0
+ b _082E224E
+_082E21DA:
+ adds r1, r7, 0
+ adds r0, r7, 0
+ adds r1, r7, 0
+ ldrb r2, [r1]
+ adds r1, r2, 0x1
+ adds r2, r1, 0
+ strb r2, [r0]
+_082E21E8:
+ adds r1, r7, 0x4
+ adds r0, r1, 0
+ bl sub_82E259C
+ adds r0, r7, 0x4
+ ldrb r1, [r0, 0x6]
+ movs r2, 0x80
+ adds r0, r1, 0
+ ands r0, r2
+ adds r2, r0, 0
+ lsls r1, r2, 24
+ lsrs r0, r1, 24
+ cmp r0, 0
+ beq _082E2236
+ bl sub_82E2258
+ lsls r1, r0, 24
+ lsrs r0, r1, 24
+ cmp r0, 0
+ bne _082E2228
+ adds r0, r7, 0
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r1, r0, 0
+ movs r2, 0xF
+ adds r0, r1, 0
+ bics r0, r2
+ adds r1, r0, 0
+ lsls r0, r1, 24
+ lsrs r1, r0, 24
+ adds r0, r1, 0
+ b _082E224E
+_082E2228:
+ adds r1, r7, 0
+ adds r0, r7, 0
+ adds r1, r7, 0
+ ldrb r2, [r1]
+ adds r1, r2, 0x1
+ adds r2, r1, 0
+ strb r2, [r0]
+_082E2236:
+ adds r0, r7, 0
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r1, r0, 0
+ movs r2, 0x1
+ adds r0, r1, 0
+ orrs r0, r2
+ adds r1, r0, 0
+ lsls r0, r1, 24
+ lsrs r1, r0, 24
+ adds r0, r1, 0
+ b _082E224E
+_082E224E:
+ add sp, 0x10
+ pop {r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_82E2180
+
+ thumb_func_start sub_82E2258
+sub_82E2258: @ 82E2258
+ push {r7,lr}
+ sub sp, 0x10
+ mov r7, sp
+ ldr r0, _082E226C
+ ldrb r1, [r0]
+ cmp r1, 0x1
+ bne _082E2270
+ movs r0, 0
+ b _082E22D4
+ .align 2, 0
+_082E226C: .4byte 0x03001a7e
+_082E2270:
+ ldr r0, _082E22C8
+ movs r1, 0x1
+ strb r1, [r0]
+ ldr r0, _082E22CC
+ movs r1, 0x1
+ strh r1, [r0]
+ ldr r0, _082E22CC
+ movs r1, 0x5
+ strh r1, [r0]
+ ldr r0, _082E22D0
+ movs r1, 0x7
+ strh r1, [r0]
+ movs r0, 0x60
+ bl sub_82E2820
+ ldr r0, _082E22CC
+ movs r1, 0x1
+ strh r1, [r0]
+ ldr r0, _082E22CC
+ movs r1, 0x1
+ strh r1, [r0]
+ ldr r0, _082E22C8
+ movs r1, 0
+ strb r1, [r0]
+ adds r0, r7, 0x4
+ ldrb r1, [r0, 0x7]
+ movs r2, 0
+ ands r1, r2
+ adds r2, r1, 0
+ movs r3, 0x40
+ adds r1, r2, 0
+ orrs r1, r3
+ adds r2, r1, 0
+ strb r2, [r0, 0x7]
+ adds r1, r7, 0x4
+ adds r0, r1, 0
+ bl sub_82E23A8
+ adds r1, r7, 0
+ strb r0, [r1]
+ adds r0, r7, 0
+ ldrb r1, [r0]
+ adds r0, r1, 0
+ b _082E22D4
+ .align 2, 0
+_082E22C8: .4byte 0x03001a7e
+_082E22CC: .4byte _080000C4
+_082E22D0: .4byte _080000C6
+_082E22D4:
+ add sp, 0x10
+ pop {r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_82E2258
+
+ thumb_func_start sub_82E22DC
+sub_82E22DC: @ 82E22DC
+ push {r4,r7,lr}
+ sub sp, 0x8
+ mov r7, sp
+ str r0, [r7]
+ ldr r0, _082E22F0
+ ldrb r1, [r0]
+ cmp r1, 0x1
+ bne _082E22F4
+ movs r0, 0
+ b _082E23A0
+ .align 2, 0
+_082E22F0: .4byte 0x03001a7e
+_082E22F4:
+ ldr r0, _082E2394
+ movs r1, 0x1
+ strb r1, [r0]
+ ldr r0, _082E2398
+ movs r1, 0x1
+ strh r1, [r0]
+ ldr r0, _082E2398
+ movs r1, 0x5
+ strh r1, [r0]
+ ldr r0, _082E239C
+ movs r1, 0x7
+ strh r1, [r0]
+ movs r0, 0x63
+ bl sub_82E2820
+ ldr r0, _082E239C
+ movs r1, 0x5
+ strh r1, [r0]
+ bl sub_82E2964
+ adds r1, r7, 0x4
+ strb r0, [r1]
+ ldr r0, [r7]
+ adds r1, r7, 0x4
+ ldrb r2, [r1]
+ movs r3, 0xC0
+ adds r1, r2, 0
+ ands r1, r3
+ adds r2, r7, 0x4
+ ldrb r3, [r2]
+ movs r4, 0x20
+ adds r2, r3, 0
+ ands r2, r4
+ adds r4, r2, 0
+ lsls r3, r4, 24
+ lsrs r2, r3, 24
+ lsrs r3, r2, 3
+ adds r2, r3, 0
+ orrs r1, r2
+ adds r2, r7, 0x4
+ ldrb r3, [r2]
+ movs r4, 0x8
+ adds r2, r3, 0
+ ands r2, r4
+ adds r4, r2, 0
+ lsls r3, r4, 24
+ lsrs r2, r3, 24
+ lsrs r3, r2, 2
+ adds r2, r3, 0
+ orrs r1, r2
+ adds r2, r7, 0x4
+ ldrb r3, [r2]
+ movs r4, 0x2
+ adds r2, r3, 0
+ ands r2, r4
+ adds r4, r2, 0
+ lsls r3, r4, 24
+ lsrs r2, r3, 24
+ lsrs r3, r2, 1
+ adds r2, r3, 0
+ orrs r1, r2
+ ldrb r2, [r0, 0x7]
+ movs r3, 0
+ ands r2, r3
+ adds r3, r2, 0
+ adds r2, r3, 0
+ orrs r2, r1
+ adds r1, r2, 0
+ strb r1, [r0, 0x7]
+ ldr r0, _082E2398
+ movs r1, 0x1
+ strh r1, [r0]
+ ldr r0, _082E2398
+ movs r1, 0x1
+ strh r1, [r0]
+ ldr r0, _082E2394
+ movs r1, 0
+ strb r1, [r0]
+ movs r0, 0x1
+ b _082E23A0
+ .align 2, 0
+_082E2394: .4byte 0x03001a7e
+_082E2398: .4byte _080000C4
+_082E239C: .4byte _080000C6
+_082E23A0:
+ add sp, 0x8
+ pop {r4,r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_82E22DC
+
+ thumb_func_start sub_82E23A8
+sub_82E23A8: @ 82E23A8
+ push {r4,r7,lr}
+ sub sp, 0x8
+ mov r7, sp
+ str r0, [r7]
+ ldr r0, _082E23BC
+ ldrb r1, [r0]
+ cmp r1, 0x1
+ bne _082E23C0
+ movs r0, 0
+ b _082E2448
+ .align 2, 0
+_082E23BC: .4byte 0x03001a7e
+_082E23C0:
+ ldr r0, _082E243C
+ movs r1, 0x1
+ strb r1, [r0]
+ ldr r0, _082E2440
+ movs r1, 0x1
+ strh r1, [r0]
+ ldr r0, _082E2440
+ movs r1, 0x5
+ strh r1, [r0]
+ adds r0, r7, 0x4
+ ldr r1, [r7]
+ ldrb r2, [r1, 0x7]
+ movs r3, 0x4
+ adds r1, r2, 0
+ ands r1, r3
+ adds r2, r1, 0
+ lsls r1, r2, 3
+ ldr r2, [r7]
+ ldrb r3, [r2, 0x7]
+ movs r4, 0x2
+ adds r2, r3, 0
+ ands r2, r4
+ adds r3, r2, 0
+ lsls r2, r3, 2
+ adds r3, r2, 0
+ movs r4, 0x40
+ adds r2, r3, 0
+ orrs r2, r4
+ orrs r1, r2
+ ldr r2, [r7]
+ ldrb r3, [r2, 0x7]
+ movs r4, 0x1
+ adds r2, r3, 0
+ ands r2, r4
+ adds r3, r2, 0
+ lsls r2, r3, 1
+ orrs r1, r2
+ adds r2, r1, 0
+ strb r2, [r0]
+ ldr r0, _082E2444
+ movs r1, 0x7
+ strh r1, [r0]
+ movs r0, 0x62
+ bl sub_82E2820
+ adds r0, r7, 0x4
+ ldrb r1, [r0]
+ adds r0, r1, 0
+ bl sub_82E28C4
+ ldr r0, _082E2440
+ movs r1, 0x1
+ strh r1, [r0]
+ ldr r0, _082E2440
+ movs r1, 0x1
+ strh r1, [r0]
+ ldr r0, _082E243C
+ movs r1, 0
+ strb r1, [r0]
+ movs r0, 0x1
+ b _082E2448
+ .align 2, 0
+_082E243C: .4byte 0x03001a7e
+_082E2440: .4byte _080000C4
+_082E2444: .4byte _080000C6
+_082E2448:
+ add sp, 0x8
+ pop {r4,r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_82E23A8
+
+ thumb_func_start sub_82E2450
+sub_82E2450: @ 82E2450
+ push {r7,lr}
+ sub sp, 0x8
+ mov r7, sp
+ str r0, [r7]
+ ldr r0, _082E2464
+ ldrb r1, [r0]
+ cmp r1, 0x1
+ bne _082E2468
+ movs r0, 0
+ b _082E24F8
+ .align 2, 0
+_082E2464: .4byte 0x03001a7e
+_082E2468:
+ ldr r0, _082E249C
+ movs r1, 0x1
+ strb r1, [r0]
+ ldr r0, _082E24A0
+ movs r1, 0x1
+ strh r1, [r0]
+ ldr r0, _082E24A0
+ movs r1, 0x5
+ strh r1, [r0]
+ ldr r0, _082E24A4
+ movs r1, 0x7
+ strh r1, [r0]
+ movs r0, 0x65
+ bl sub_82E2820
+ ldr r0, _082E24A4
+ movs r1, 0x5
+ strh r1, [r0]
+ adds r0, r7, 0x4
+ movs r1, 0
+ strb r1, [r0]
+_082E2492:
+ adds r0, r7, 0x4
+ ldrb r1, [r0]
+ cmp r1, 0x6
+ bls _082E24A8
+ b _082E24C6
+ .align 2, 0
+_082E249C: .4byte 0x03001a7e
+_082E24A0: .4byte _080000C4
+_082E24A4: .4byte _080000C6
+_082E24A8:
+ bl sub_82E2964
+ adds r1, r7, 0x4
+ ldrb r2, [r1]
+ ldr r3, [r7]
+ adds r1, r2, r3
+ strb r0, [r1]
+ adds r1, r7, 0x4
+ adds r0, r7, 0x4
+ adds r1, r7, 0x4
+ ldrb r2, [r1]
+ adds r1, r2, 0x1
+ adds r2, r1, 0
+ strb r2, [r0]
+ b _082E2492
+_082E24C6:
+ ldr r1, [r7]
+ adds r0, r1, 0x4
+ ldr r2, [r7]
+ adds r1, r2, 0x4
+ ldrb r2, [r1]
+ movs r3, 0x7F
+ adds r1, r2, 0
+ ands r1, r3
+ adds r2, r1, 0
+ strb r2, [r0]
+ ldr r0, _082E24F0
+ movs r1, 0x1
+ strh r1, [r0]
+ ldr r0, _082E24F0
+ movs r1, 0x1
+ strh r1, [r0]
+ ldr r0, _082E24F4
+ movs r1, 0
+ strb r1, [r0]
+ movs r0, 0x1
+ b _082E24F8
+ .align 2, 0
+_082E24F0: .4byte _080000C4
+_082E24F4: .4byte 0x03001a7e
+_082E24F8:
+ add sp, 0x8
+ pop {r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_82E2450
+
+ thumb_func_start sub_82E2500
+sub_82E2500: @ 82E2500
+ push {r7,lr}
+ sub sp, 0x8
+ mov r7, sp
+ str r0, [r7]
+ ldr r0, _082E2514
+ ldrb r1, [r0]
+ cmp r1, 0x1
+ bne _082E2518
+ movs r0, 0
+ b _082E2594
+ .align 2, 0
+_082E2514: .4byte 0x03001a7e
+_082E2518:
+ ldr r0, _082E2548
+ movs r1, 0x1
+ strb r1, [r0]
+ ldr r0, _082E254C
+ movs r1, 0x1
+ strh r1, [r0]
+ ldr r0, _082E254C
+ movs r1, 0x5
+ strh r1, [r0]
+ ldr r0, _082E2550
+ movs r1, 0x7
+ strh r1, [r0]
+ movs r0, 0x64
+ bl sub_82E2820
+ adds r0, r7, 0x4
+ movs r1, 0
+ strb r1, [r0]
+_082E253C:
+ adds r0, r7, 0x4
+ ldrb r1, [r0]
+ cmp r1, 0x6
+ bls _082E2554
+ b _082E2574
+ .align 2, 0
+_082E2548: .4byte 0x03001a7e
+_082E254C: .4byte _080000C4
+_082E2550: .4byte _080000C6
+_082E2554:
+ adds r0, r7, 0x4
+ ldrb r1, [r0]
+ ldr r2, [r7]
+ adds r0, r1, r2
+ ldrb r1, [r0]
+ adds r0, r1, 0
+ bl sub_82E28C4
+ adds r1, r7, 0x4
+ adds r0, r7, 0x4
+ adds r1, r7, 0x4
+ ldrb r2, [r1]
+ adds r1, r2, 0x1
+ adds r2, r1, 0
+ strb r2, [r0]
+ b _082E253C
+_082E2574:
+ ldr r0, _082E258C
+ movs r1, 0x1
+ strh r1, [r0]
+ ldr r0, _082E258C
+ movs r1, 0x1
+ strh r1, [r0]
+ ldr r0, _082E2590
+ movs r1, 0
+ strb r1, [r0]
+ movs r0, 0x1
+ b _082E2594
+ .align 2, 0
+_082E258C: .4byte _080000C4
+_082E2590: .4byte 0x03001a7e
+_082E2594:
+ add sp, 0x8
+ pop {r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_82E2500
+
+ thumb_func_start sub_82E259C
+sub_82E259C: @ 82E259C
+ push {r7,lr}
+ sub sp, 0x8
+ mov r7, sp
+ str r0, [r7]
+ ldr r0, _082E25B0
+ ldrb r1, [r0]
+ cmp r1, 0x1
+ bne _082E25B4
+ movs r0, 0
+ b _082E2648
+ .align 2, 0
+_082E25B0: .4byte 0x03001a7e
+_082E25B4:
+ ldr r0, _082E25E8
+ movs r1, 0x1
+ strb r1, [r0]
+ ldr r0, _082E25EC
+ movs r1, 0x1
+ strh r1, [r0]
+ ldr r0, _082E25EC
+ movs r1, 0x5
+ strh r1, [r0]
+ ldr r0, _082E25F0
+ movs r1, 0x7
+ strh r1, [r0]
+ movs r0, 0x67
+ bl sub_82E2820
+ ldr r0, _082E25F0
+ movs r1, 0x5
+ strh r1, [r0]
+ adds r0, r7, 0x4
+ movs r1, 0
+ strb r1, [r0]
+_082E25DE:
+ adds r0, r7, 0x4
+ ldrb r1, [r0]
+ cmp r1, 0x2
+ bls _082E25F4
+ b _082E2614
+ .align 2, 0
+_082E25E8: .4byte 0x03001a7e
+_082E25EC: .4byte _080000C4
+_082E25F0: .4byte _080000C6
+_082E25F4:
+ bl sub_82E2964
+ adds r1, r7, 0x4
+ ldrb r2, [r1]
+ ldr r3, [r7]
+ adds r1, r2, r3
+ adds r2, r1, 0x4
+ strb r0, [r2]
+ adds r1, r7, 0x4
+ adds r0, r7, 0x4
+ adds r1, r7, 0x4
+ ldrb r2, [r1]
+ adds r1, r2, 0x1
+ adds r2, r1, 0
+ strb r2, [r0]
+ b _082E25DE
+_082E2614:
+ ldr r1, [r7]
+ adds r0, r1, 0x4
+ ldr r2, [r7]
+ adds r1, r2, 0x4
+ ldrb r2, [r1]
+ movs r3, 0x7F
+ adds r1, r2, 0
+ ands r1, r3
+ adds r2, r1, 0
+ strb r2, [r0]
+ ldr r0, _082E2640
+ movs r1, 0x1
+ strh r1, [r0]
+ ldr r0, _082E2640
+ movs r1, 0x1
+ strh r1, [r0]
+ ldr r0, _082E2644
+ movs r1, 0
+ strb r1, [r0]
+ movs r0, 0x1
+ b _082E2648
+ .align 2, 0
+_082E2640: .4byte _080000C4
+_082E2644: .4byte 0x03001a7e
+_082E2648:
+ add sp, 0x8
+ pop {r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_82E259C
+
+ thumb_func_start sub_82E2650
+sub_82E2650: @ 82E2650
+ push {r7,lr}
+ sub sp, 0x8
+ mov r7, sp
+ str r0, [r7]
+ ldr r0, _082E2664
+ ldrb r1, [r0]
+ cmp r1, 0x1
+ bne _082E2668
+ movs r0, 0
+ b _082E26E4
+ .align 2, 0
+_082E2664: .4byte 0x03001a7e
+_082E2668:
+ ldr r0, _082E2698
+ movs r1, 0x1
+ strb r1, [r0]
+ ldr r0, _082E269C
+ movs r1, 0x1
+ strh r1, [r0]
+ ldr r0, _082E269C
+ movs r1, 0x5
+ strh r1, [r0]
+ ldr r0, _082E26A0
+ movs r1, 0x7
+ strh r1, [r0]
+ movs r0, 0x66
+ bl sub_82E2820
+ adds r0, r7, 0x4
+ movs r1, 0
+ strb r1, [r0]
+_082E268C:
+ adds r0, r7, 0x4
+ ldrb r1, [r0]
+ cmp r1, 0x2
+ bls _082E26A4
+ b _082E26C6
+ .align 2, 0
+_082E2698: .4byte 0x03001a7e
+_082E269C: .4byte _080000C4
+_082E26A0: .4byte _080000C6
+_082E26A4:
+ adds r0, r7, 0x4
+ ldrb r1, [r0]
+ ldr r2, [r7]
+ adds r0, r1, r2
+ adds r1, r0, 0x4
+ ldrb r2, [r1]
+ adds r0, r2, 0
+ bl sub_82E28C4
+ adds r1, r7, 0x4
+ adds r0, r7, 0x4
+ adds r1, r7, 0x4
+ ldrb r2, [r1]
+ adds r1, r2, 0x1
+ adds r2, r1, 0
+ strb r2, [r0]
+ b _082E268C
+_082E26C6:
+ ldr r0, _082E26DC
+ movs r1, 0x1
+ strh r1, [r0]
+ ldr r0, _082E26DC
+ movs r1, 0x1
+ strh r1, [r0]
+ ldr r0, _082E26E0
+ movs r1, 0
+ strb r1, [r0]
+ movs r0, 0x1
+ b _082E26E4
+ .align 2, 0
+_082E26DC: .4byte _080000C4
+_082E26E0: .4byte 0x03001a7e
+_082E26E4:
+ add sp, 0x8
+ pop {r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_82E2650
+
+ thumb_func_start sub_82E26EC
+sub_82E26EC: @ 82E26EC
+ push {r4,r7,lr}
+ sub sp, 0xC
+ mov r7, sp
+ str r0, [r7]
+ ldr r0, _082E2700
+ ldrb r1, [r0]
+ cmp r1, 0x1
+ bne _082E2704
+ movs r0, 0
+ b _082E2818
+ .align 2, 0
+_082E2700: .4byte 0x03001a7e
+_082E2704:
+ ldr r0, _082E276C
+ movs r1, 0x1
+ strb r1, [r0]
+ adds r0, r7, 0
+ adds r0, 0x8
+ ldr r1, [r7]
+ ldrb r2, [r1, 0x8]
+ movs r3, 0xF
+ adds r1, r2, 0
+ ands r1, r3
+ ldr r2, [r7]
+ ldrb r3, [r2, 0x8]
+ lsrs r2, r3, 4
+ adds r3, r2, 0
+ movs r4, 0xF
+ adds r2, r3, 0
+ ands r2, r4
+ adds r4, r2, 0
+ lsls r3, r4, 24
+ lsrs r2, r3, 24
+ adds r4, r2, 0
+ lsls r3, r4, 2
+ adds r3, r2
+ lsls r2, r3, 1
+ adds r1, r2
+ ldrb r2, [r0]
+ movs r3, 0
+ ands r2, r3
+ adds r3, r2, 0
+ adds r2, r3, 0
+ orrs r2, r1
+ adds r1, r2, 0
+ strb r1, [r0]
+ adds r0, r7, 0
+ adds r0, 0x8
+ ldrb r1, [r0]
+ cmp r1, 0xB
+ bhi _082E2770
+ adds r0, r7, 0
+ adds r0, 0x8
+ ldr r1, [r7]
+ ldrb r2, [r0]
+ movs r3, 0
+ ands r2, r3
+ adds r3, r2, 0
+ ldrb r1, [r1, 0x8]
+ adds r2, r3, 0
+ orrs r2, r1
+ adds r1, r2, 0
+ strb r1, [r0]
+ b _082E278E
+ .align 2, 0
+_082E276C: .4byte 0x03001a7e
+_082E2770:
+ adds r0, r7, 0
+ adds r0, 0x8
+ ldr r1, [r7]
+ ldrb r2, [r1, 0x8]
+ movs r3, 0x80
+ adds r1, r2, 0
+ orrs r1, r3
+ ldrb r2, [r0]
+ movs r3, 0
+ ands r2, r3
+ adds r3, r2, 0
+ adds r2, r3, 0
+ orrs r2, r1
+ adds r1, r2, 0
+ strb r1, [r0]
+_082E278E:
+ adds r0, r7, 0
+ adds r0, 0x8
+ ldr r1, [r7]
+ ldrb r2, [r0, 0x1]
+ movs r3, 0
+ ands r2, r3
+ adds r3, r2, 0
+ ldrb r1, [r1, 0x9]
+ adds r2, r3, 0
+ orrs r2, r1
+ adds r1, r2, 0
+ strb r1, [r0, 0x1]
+ ldr r0, _082E27D0
+ movs r1, 0x1
+ strh r1, [r0]
+ ldr r0, _082E27D0
+ movs r1, 0x5
+ strh r1, [r0]
+ ldr r0, _082E27D4
+ movs r1, 0x7
+ strh r1, [r0]
+ movs r0, 0x68
+ bl sub_82E2820
+ adds r0, r7, 0x4
+ movs r1, 0
+ strb r1, [r0]
+_082E27C4:
+ adds r0, r7, 0x4
+ ldrb r1, [r0]
+ cmp r1, 0x1
+ bls _082E27D8
+ b _082E27FA
+ .align 2, 0
+_082E27D0: .4byte _080000C4
+_082E27D4: .4byte _080000C6
+_082E27D8:
+ adds r0, r7, 0
+ adds r0, 0x8
+ adds r1, r7, 0x4
+ ldrb r2, [r1]
+ adds r0, r2
+ ldrb r1, [r0]
+ adds r0, r1, 0
+ bl sub_82E28C4
+ adds r1, r7, 0x4
+ adds r0, r7, 0x4
+ adds r1, r7, 0x4
+ ldrb r2, [r1]
+ adds r1, r2, 0x1
+ adds r2, r1, 0
+ strb r2, [r0]
+ b _082E27C4
+_082E27FA:
+ ldr r0, _082E2810
+ movs r1, 0x1
+ strh r1, [r0]
+ ldr r0, _082E2810
+ movs r1, 0x1
+ strh r1, [r0]
+ ldr r0, _082E2814
+ movs r1, 0
+ strb r1, [r0]
+ movs r0, 0x1
+ b _082E2818
+ .align 2, 0
+_082E2810: .4byte _080000C4
+_082E2814: .4byte 0x03001a7e
+_082E2818:
+ add sp, 0xC
+ pop {r4,r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_82E26EC
+
+ thumb_func_start sub_82E2820
+sub_82E2820: @ 82E2820
+ push {r4,r5,r7,lr}
+ sub sp, 0x4
+ mov r7, sp
+ adds r1, r0, 0
+ adds r2, r7, 0
+ strb r1, [r2]
+ adds r1, r7, 0x1
+ movs r2, 0
+ strb r2, [r1]
+_082E2832:
+ adds r1, r7, 0x1
+ ldrb r2, [r1]
+ cmp r2, 0x7
+ bls _082E283C
+ b _082E28BC
+_082E283C:
+ adds r1, r7, 0x2
+ adds r3, r7, 0
+ ldrb r2, [r3]
+ adds r3, r7, 0x1
+ ldrb r4, [r3]
+ movs r5, 0x7
+ subs r3, r5, r4
+ asrs r2, r3
+ adds r3, r2, 0
+ movs r4, 0x1
+ adds r2, r3, 0
+ ands r2, r4
+ adds r3, r2, 0
+ strb r3, [r1]
+ ldr r1, _082E28B8
+ adds r2, r7, 0x2
+ ldrb r3, [r2]
+ adds r2, r3, 0
+ lsls r3, r2, 1
+ adds r2, r3, 0
+ movs r3, 0x4
+ orrs r2, r3
+ adds r3, r2, 0
+ strh r3, [r1]
+ ldr r1, _082E28B8
+ adds r2, r7, 0x2
+ ldrb r3, [r2]
+ adds r2, r3, 0
+ lsls r3, r2, 1
+ adds r2, r3, 0
+ movs r3, 0x4
+ orrs r2, r3
+ adds r3, r2, 0
+ strh r3, [r1]
+ ldr r1, _082E28B8
+ adds r2, r7, 0x2
+ ldrb r3, [r2]
+ adds r2, r3, 0
+ lsls r3, r2, 1
+ adds r2, r3, 0
+ movs r3, 0x4
+ orrs r2, r3
+ adds r3, r2, 0
+ strh r3, [r1]
+ ldr r1, _082E28B8
+ adds r2, r7, 0x2
+ ldrb r3, [r2]
+ adds r2, r3, 0
+ lsls r3, r2, 1
+ adds r2, r3, 0
+ movs r3, 0x5
+ orrs r2, r3
+ adds r3, r2, 0
+ strh r3, [r1]
+ adds r2, r7, 0x1
+ adds r1, r7, 0x1
+ adds r2, r7, 0x1
+ ldrb r3, [r2]
+ adds r2, r3, 0x1
+ adds r3, r2, 0
+ strb r3, [r1]
+ b _082E2832
+ .align 2, 0
+_082E28B8: .4byte _080000C4
+_082E28BC:
+ add sp, 0x4
+ pop {r4,r5,r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_82E2820
+
+ thumb_func_start sub_82E28C4
+sub_82E28C4: @ 82E28C4
+ push {r4,r7,lr}
+ sub sp, 0x4
+ mov r7, sp
+ adds r1, r0, 0
+ adds r2, r7, 0
+ strb r1, [r2]
+ adds r1, r7, 0x1
+ movs r2, 0
+ strb r2, [r1]
+_082E28D6:
+ adds r1, r7, 0x1
+ ldrb r2, [r1]
+ cmp r2, 0x7
+ bls _082E28E0
+ b _082E295C
+_082E28E0:
+ adds r1, r7, 0x2
+ adds r3, r7, 0
+ ldrb r2, [r3]
+ adds r3, r7, 0x1
+ ldrb r4, [r3]
+ asrs r2, r4
+ adds r3, r2, 0
+ movs r4, 0x1
+ adds r2, r3, 0
+ ands r2, r4
+ adds r3, r2, 0
+ strb r3, [r1]
+ ldr r1, _082E2958
+ adds r2, r7, 0x2
+ ldrb r3, [r2]
+ adds r2, r3, 0
+ lsls r3, r2, 1
+ adds r2, r3, 0
+ movs r3, 0x4
+ orrs r2, r3
+ adds r3, r2, 0
+ strh r3, [r1]
+ ldr r1, _082E2958
+ adds r2, r7, 0x2
+ ldrb r3, [r2]
+ adds r2, r3, 0
+ lsls r3, r2, 1
+ adds r2, r3, 0
+ movs r3, 0x4
+ orrs r2, r3
+ adds r3, r2, 0
+ strh r3, [r1]
+ ldr r1, _082E2958
+ adds r2, r7, 0x2
+ ldrb r3, [r2]
+ adds r2, r3, 0
+ lsls r3, r2, 1
+ adds r2, r3, 0
+ movs r3, 0x4
+ orrs r2, r3
+ adds r3, r2, 0
+ strh r3, [r1]
+ ldr r1, _082E2958
+ adds r2, r7, 0x2
+ ldrb r3, [r2]
+ adds r2, r3, 0
+ lsls r3, r2, 1
+ adds r2, r3, 0
+ movs r3, 0x5
+ orrs r2, r3
+ adds r3, r2, 0
+ strh r3, [r1]
+ adds r2, r7, 0x1
+ adds r1, r7, 0x1
+ adds r2, r7, 0x1
+ ldrb r3, [r2]
+ adds r2, r3, 0x1
+ adds r3, r2, 0
+ strb r3, [r1]
+ b _082E28D6
+ .align 2, 0
+_082E2958: .4byte _080000C4
+_082E295C:
+ add sp, 0x4
+ pop {r4,r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_82E28C4
+
+ thumb_func_start sub_82E2964
+sub_82E2964: @ 82E2964
+ push {r7,lr}
+ sub sp, 0x4
+ mov r7, sp
+ adds r0, r7, 0
+ movs r1, 0
+ strb r1, [r0]
+_082E2970:
+ adds r0, r7, 0
+ ldrb r1, [r0]
+ cmp r1, 0x7
+ bls _082E297A
+ b _082E29E0
+_082E297A:
+ ldr r0, _082E29DC
+ movs r1, 0x4
+ strh r1, [r0]
+ ldr r0, _082E29DC
+ movs r1, 0x4
+ strh r1, [r0]
+ ldr r0, _082E29DC
+ movs r1, 0x4
+ strh r1, [r0]
+ ldr r0, _082E29DC
+ movs r1, 0x4
+ strh r1, [r0]
+ ldr r0, _082E29DC
+ movs r1, 0x4
+ strh r1, [r0]
+ ldr r0, _082E29DC
+ movs r1, 0x5
+ strh r1, [r0]
+ adds r0, r7, 0x1
+ ldr r1, _082E29DC
+ ldrh r2, [r1]
+ movs r3, 0x2
+ adds r1, r2, 0
+ ands r1, r3
+ adds r3, r1, 0
+ lsls r2, r3, 16
+ lsrs r1, r2, 16
+ lsrs r2, r1, 1
+ adds r1, r2, 0
+ strb r1, [r0]
+ adds r0, r7, 0x2
+ adds r1, r7, 0x2
+ ldrb r2, [r1]
+ lsrs r1, r2, 1
+ adds r2, r7, 0x1
+ ldrb r3, [r2]
+ lsls r2, r3, 7
+ orrs r1, r2
+ adds r2, r1, 0
+ strb r2, [r0]
+ adds r1, r7, 0
+ adds r0, r7, 0
+ adds r1, r7, 0
+ ldrb r2, [r1]
+ adds r1, r2, 0x1
+ adds r2, r1, 0
+ strb r2, [r0]
+ b _082E2970
+ .align 2, 0
+_082E29DC: .4byte _080000C4
+_082E29E0:
+ adds r0, r7, 0x2
+ ldrb r1, [r0]
+ adds r0, r1, 0
+ b _082E29E8
+_082E29E8:
+ add sp, 0x4
+ pop {r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_82E2964
+
+ thumb_func_start sub_82E29F0
+sub_82E29F0: @ 82E29F0
+ push {r7,lr}
+ mov r7, sp
+ ldr r0, _082E2A00
+ movs r1, 0x1
+ strh r1, [r0]
+ pop {r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_082E2A00: .4byte _080000C8
+ thumb_func_end sub_82E29F0
+
+ thumb_func_start sub_82E2A04
+sub_82E2A04: @ 82E2A04
+ push {r7,lr}
+ mov r7, sp
+ ldr r0, _082E2A14
+ movs r1, 0
+ strh r1, [r0]
+ pop {r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_082E2A14: .4byte _080000C8
+ thumb_func_end sub_82E2A04