diff options
author | YamaArashi <shadow962@live.com> | 2015-10-06 07:00:49 -0700 |
---|---|---|
committer | YamaArashi <shadow962@live.com> | 2015-10-06 07:00:49 -0700 |
commit | 61abdbe445f42994abbd253fc437cd3c9988c83f (patch) | |
tree | 694049559b889194fc2f1df477d9dd1470a79409 | |
parent | 25342bcf33e2662a916b93e47e405df6024e30bd (diff) |
split out libraries
-rw-r--r-- | asm/data1.s | 2 | ||||
-rw-r--r-- | asm/data2.s | 2 | ||||
-rw-r--r-- | asm/emerald.s | 22333 | ||||
-rw-r--r-- | asm/libagbbackup.s | 1161 | ||||
-rw-r--r-- | asm/libagbsyscall.s | 100 | ||||
-rw-r--r-- | asm/libgcc.s | 5221 | ||||
-rw-r--r-- | asm/libmks4agb.s | 5283 | ||||
-rw-r--r-- | asm/librfu.s | 8917 | ||||
-rw-r--r-- | asm/unknown_lib_1.s | 448 | ||||
-rw-r--r-- | asm/unknown_lib_2.s | 1185 |
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 |