diff options
author | sceptillion <33798691+sceptillion@users.noreply.github.com> | 2017-12-16 23:54:22 -0800 |
---|---|---|
committer | sceptillion <33798691+sceptillion@users.noreply.github.com> | 2017-12-16 23:54:22 -0800 |
commit | 670fef77ac4d9116d5fdc28c0da40622919a062b (patch) | |
tree | 61c0e925f059404473826ac775305ba5e2706ab1 /asm/string_util.s |
first commit
Diffstat (limited to 'asm/string_util.s')
-rw-r--r-- | asm/string_util.s | 1168 |
1 files changed, 1168 insertions, 0 deletions
diff --git a/asm/string_util.s b/asm/string_util.s new file mode 100644 index 000000000..4f7c45243 --- /dev/null +++ b/asm/string_util.s @@ -0,0 +1,1168 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .syntax unified + + .text + + thumb_func_start sub_8008CF4 +sub_8008CF4: @ 8008CF4 + push {r4,r5,lr} + adds r4, r0, 0 + movs r5, 0xA + movs r3, 0 +_08008CFC: + adds r2, r4, r3 + adds r0, r1, r3 + ldrb r0, [r0] + strb r0, [r2] + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0xFF + bne _08008D10 + adds r0, r2, 0 + b _08008D20 +_08008D10: + adds r0, r3, 0x1 + lsls r0, 24 + lsrs r3, r0, 24 + cmp r3, r5 + bcc _08008CFC + adds r0, r4, r3 + movs r1, 0xFF + strb r1, [r0] +_08008D20: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_8008CF4 + + thumb_func_start sub_8008D28 +sub_8008D28: @ 8008D28 + push {r4,lr} + adds r3, r0, 0 + movs r4, 0xA + movs r2, 0 +_08008D30: + adds r1, r3, r2 + ldrb r0, [r1] + cmp r0, 0xFF + bne _08008D3C + adds r0, r1, 0 + b _08008D4C +_08008D3C: + adds r0, r2, 0x1 + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, r4 + bcc _08008D30 + adds r0, r3, r2 + movs r1, 0xFF + strb r1, [r0] +_08008D4C: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_8008D28 + + thumb_func_start sub_8008D54 +sub_8008D54: @ 8008D54 + push {r4,r5,lr} + adds r4, r0, 0 + movs r5, 0x7 + movs r3, 0 +_08008D5C: + adds r2, r4, r3 + adds r0, r1, r3 + ldrb r0, [r0] + strb r0, [r2] + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0xFF + bne _08008D70 + adds r0, r2, 0 + b _08008D7C +_08008D70: + adds r3, 0x1 + cmp r3, r5 + blt _08008D5C + adds r0, r4, r3 + movs r1, 0xFF + strb r1, [r0] +_08008D7C: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_8008D54 + + thumb_func_start sub_8008D84 +sub_8008D84: @ 8008D84 + push {lr} + adds r3, r0, 0 + b _08008D90 +_08008D8A: + strb r2, [r3] + adds r3, 0x1 + adds r1, 0x1 +_08008D90: + ldrb r2, [r1] + adds r0, r2, 0 + cmp r0, 0xFF + bne _08008D8A + movs r0, 0xFF + strb r0, [r3] + adds r0, r3, 0 + pop {r1} + bx r1 + thumb_func_end sub_8008D84 + + thumb_func_start sub_8008DA4 +sub_8008DA4: @ 8008DA4 + push {lr} + adds r2, r0, 0 + b _08008DAC +_08008DAA: + adds r2, 0x1 +_08008DAC: + ldrb r0, [r2] + cmp r0, 0xFF + bne _08008DAA + adds r0, r2, 0 + bl sub_8008D84 + pop {r1} + bx r1 + thumb_func_end sub_8008DA4 + + thumb_func_start sub_8008DBC +sub_8008DBC: @ 8008DBC + push {r4-r6,lr} + adds r4, r0, 0 + adds r6, r1, 0 + lsls r2, 24 + lsrs r5, r2, 24 + movs r3, 0 + adds r0, r5, 0 + cmp r3, r0 + bcs _08008DE2 + adds r2, r0, 0 +_08008DD0: + adds r1, r4, r3 + adds r0, r6, r3 + ldrb r0, [r0] + strb r0, [r1] + adds r0, r3, 0x1 + lsls r0, 16 + lsrs r3, r0, 16 + cmp r3, r2 + bcc _08008DD0 +_08008DE2: + adds r0, r4, r5 + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end sub_8008DBC + + thumb_func_start sub_8008DEC +sub_8008DEC: @ 8008DEC + push {lr} + adds r3, r0, 0 + lsls r2, 24 + lsrs r2, 24 + b _08008DF8 +_08008DF6: + adds r3, 0x1 +_08008DF8: + ldrb r0, [r3] + cmp r0, 0xFF + bne _08008DF6 + adds r0, r3, 0 + bl sub_8008DBC + pop {r1} + bx r1 + thumb_func_end sub_8008DEC + + thumb_func_start sub_8008E08 +sub_8008E08: @ 8008E08 + push {lr} + adds r2, r0, 0 + movs r1, 0 + ldrb r0, [r2] + cmp r0, 0xFF + beq _08008E22 +_08008E14: + adds r0, r1, 0x1 + lsls r0, 16 + lsrs r1, r0, 16 + adds r0, r2, r1 + ldrb r0, [r0] + cmp r0, 0xFF + bne _08008E14 +_08008E22: + adds r0, r1, 0 + pop {r1} + bx r1 + thumb_func_end sub_8008E08 + + thumb_func_start sub_8008E28 +sub_8008E28: @ 8008E28 + push {lr} + adds r2, r0, 0 + b _08008E3A +_08008E2E: + cmp r0, 0xFF + bne _08008E36 + movs r0, 0 + b _08008E48 +_08008E36: + adds r2, 0x1 + adds r1, 0x1 +_08008E3A: + ldrb r0, [r2] + ldrb r3, [r1] + cmp r0, r3 + beq _08008E2E + ldrb r0, [r2] + ldrb r1, [r1] + subs r0, r1 +_08008E48: + pop {r1} + bx r1 + thumb_func_end sub_8008E28 + + thumb_func_start sub_8008E4C +sub_8008E4C: @ 8008E4C + push {r4,lr} + adds r3, r0, 0 + b _08008E64 +_08008E52: + cmp r0, 0xFF + beq _08008E60 + adds r3, 0x1 + adds r1, 0x1 + subs r2, 0x1 + cmp r2, 0 + bne _08008E64 +_08008E60: + movs r0, 0 + b _08008E72 +_08008E64: + ldrb r0, [r3] + ldrb r4, [r1] + cmp r0, r4 + beq _08008E52 + ldrb r0, [r3] + ldrb r1, [r1] + subs r0, r1 +_08008E72: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_8008E4C + + thumb_func_start sub_8008E78 +sub_8008E78: @ 8008E78 + push {r4-r7,lr} + mov r7, r8 + push {r7} + adds r4, r0, 0 + adds r6, r1, 0 + lsls r3, 24 + ldr r0, _08008EC8 @ =gUnknown_8231E3C + lsrs r3, 22 + subs r3, 0x4 + adds r3, r0 + ldr r0, [r3] + movs r7, 0 + cmp r2, 0x1 + bne _08008E96 + movs r7, 0x2 +_08008E96: + cmp r2, 0x2 + bne _08008E9C + movs r7, 0x1 +_08008E9C: + adds r5, r0, 0 + cmp r5, 0 + ble _08008F08 + ldr r0, _08008ECC @ =gUnknown_8231E2C + mov r8, r0 +_08008EA6: + adds r0, r6, 0 + adds r1, r5, 0 + bl __divsi3 + lsls r0, 16 + lsrs r2, r0, 16 + adds r0, r5, 0 + muls r0, r2 + subs r1, r6, r0 + cmp r7, 0x1 + bne _08008ED0 + adds r3, r4, 0 + adds r4, 0x1 + cmp r2, 0x9 + bls _08008EE2 + b _08008EEA + .align 2, 0 +_08008EC8: .4byte gUnknown_8231E3C +_08008ECC: .4byte gUnknown_8231E2C +_08008ED0: + cmp r2, 0 + bne _08008ED8 + cmp r5, 0x1 + bne _08008EF0 +_08008ED8: + movs r7, 0x1 + adds r3, r4, 0 + adds r4, 0x1 + cmp r2, 0x9 + bhi _08008EEA +_08008EE2: + mov r6, r8 + adds r0, r2, r6 + ldrb r0, [r0] + b _08008EEC +_08008EEA: + movs r0, 0xAC +_08008EEC: + strb r0, [r3] + b _08008EF8 +_08008EF0: + cmp r7, 0x2 + bne _08008EF8 + strb r2, [r4] + adds r4, 0x1 +_08008EF8: + adds r6, r1, 0 + adds r0, r5, 0 + movs r1, 0xA + bl __divsi3 + adds r5, r0, 0 + cmp r5, 0 + bgt _08008EA6 +_08008F08: + movs r0, 0xFF + strb r0, [r4] + adds r0, r4, 0 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_8008E78 + + thumb_func_start sub_8008F18 +sub_8008F18: @ 8008F18 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x4 + adds r6, r0, 0 + adds r7, r1, 0 + lsls r3, 24 + lsrs r3, 24 + movs r1, 0x1 + movs r0, 0x1 + cmp r1, r3 + bcs _08008F3C +_08008F30: + lsls r1, 4 + adds r0, 0x1 + lsls r0, 24 + lsrs r0, 24 + cmp r0, r3 + bcc _08008F30 +_08008F3C: + movs r3, 0 + cmp r2, 0x1 + bne _08008F44 + movs r3, 0x2 +_08008F44: + cmp r2, 0x2 + bne _08008F4A + movs r3, 0x1 +_08008F4A: + adds r5, r1, 0 + cmp r5, 0 + ble _08008FB8 + ldr r0, _08008F7C @ =gUnknown_8231E2C + mov r8, r0 +_08008F54: + adds r0, r7, 0 + adds r1, r5, 0 + str r3, [sp] + bl __divsi3 + adds r4, r0, 0 + adds r0, r7, 0 + adds r1, r5, 0 + bl __modsi3 + adds r1, r0, 0 + ldr r3, [sp] + cmp r3, 0x1 + bne _08008F80 + adds r2, r6, 0 + adds r6, 0x1 + cmp r4, 0xF + bls _08008F92 + b _08008F9A + .align 2, 0 +_08008F7C: .4byte gUnknown_8231E2C +_08008F80: + cmp r4, 0 + bne _08008F88 + cmp r5, 0x1 + bne _08008FA0 +_08008F88: + movs r3, 0x1 + adds r2, r6, 0 + adds r6, 0x1 + cmp r4, 0xF + bhi _08008F9A +_08008F92: + mov r7, r8 + adds r0, r4, r7 + ldrb r0, [r0] + b _08008F9C +_08008F9A: + movs r0, 0xAC +_08008F9C: + strb r0, [r2] + b _08008FA8 +_08008FA0: + cmp r3, 0x2 + bne _08008FA8 + strb r4, [r6] + adds r6, 0x1 +_08008FA8: + adds r7, r1, 0 + adds r0, r5, 0 + cmp r5, 0 + bge _08008FB2 + adds r0, 0xF +_08008FB2: + asrs r5, r0, 4 + cmp r5, 0 + bgt _08008F54 +_08008FB8: + movs r0, 0xFF + strb r0, [r6] + adds r0, r6, 0 + add sp, 0x4 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_8008F18 + + thumb_func_start sub_8008FCC +sub_8008FCC: @ 8008FCC + push {r4,r5,lr} + adds r4, r0, 0 + adds r5, r1, 0 +_08008FD2: + ldrb r2, [r5] + adds r5, 0x1 + adds r0, r2, 0 + subs r0, 0xFA + cmp r0, 0x5 + bhi _080090A6 + lsls r0, 2 + ldr r1, _08008FE8 @ =_08008FEC + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08008FE8: .4byte _08008FEC + .align 2, 0 +_08008FEC: + .4byte _080090A6 + .4byte _080090A6 + .4byte _08009018 + .4byte _08009004 + .4byte _080090A6 + .4byte _080090AC +_08009004: + ldrb r0, [r5] + adds r5, 0x1 + bl sub_80091E0 + adds r1, r0, 0 + adds r0, r4, 0 + bl sub_8008FCC + adds r4, r0, 0 + b _08008FD2 +_08009018: + strb r2, [r4] + adds r4, 0x1 + ldrb r2, [r5] + adds r5, 0x1 + strb r2, [r4] + adds r4, 0x1 + subs r0, r2, 0x4 + cmp r0, 0x14 + bhi _0800909C + lsls r0, 2 + ldr r1, _08009034 @ =_08009038 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08009034: .4byte _08009038 + .align 2, 0 +_08009038: + .4byte _0800908C + .4byte _0800909C + .4byte _0800909C + .4byte _08008FD2 + .4byte _0800909C + .4byte _08008FD2 + .4byte _0800909C + .4byte _08009094 + .4byte _0800909C + .4byte _0800909C + .4byte _0800909C + .4byte _08008FD2 + .4byte _0800909C + .4byte _0800909C + .4byte _0800909C + .4byte _0800909C + .4byte _0800909C + .4byte _08008FD2 + .4byte _08008FD2 + .4byte _08008FD2 + .4byte _08008FD2 +_0800908C: + ldrb r0, [r5] + strb r0, [r4] + adds r5, 0x1 + adds r4, 0x1 +_08009094: + ldrb r0, [r5] + strb r0, [r4] + adds r5, 0x1 + adds r4, 0x1 +_0800909C: + ldrb r0, [r5] + strb r0, [r4] + adds r5, 0x1 + adds r4, 0x1 + b _08008FD2 +_080090A6: + strb r2, [r4] + adds r4, 0x1 + b _08008FD2 +_080090AC: + movs r0, 0xFF + strb r0, [r4] + adds r0, r4, 0 + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_8008FCC + + thumb_func_start sub_80090B8 +sub_80090B8: @ 80090B8 + push {r4-r6,lr} + sub sp, 0xC + adds r5, r0, 0 + adds r6, r1, 0 + ldr r1, _080090F0 @ =gUnknown_8231E64 + mov r0, sp + movs r2, 0x4 + bl memcpy + add r4, sp, 0x4 + ldr r1, _080090F4 @ =gUnknown_8231E68 + adds r0, r4, 0 + movs r2, 0x5 + bl memcpy + adds r0, r5, 0 + mov r1, sp +_080090DA: + bl sub_8008D84 + adds r5, r0, 0 +_080090E0: + ldrb r0, [r6] + adds r6, 0x1 + cmp r0, 0xFE + beq _080090F8 + cmp r0, 0xFF + bne _080090FE + b _0800910A + .align 2, 0 +_080090F0: .4byte gUnknown_8231E64 +_080090F4: .4byte gUnknown_8231E68 +_080090F8: + adds r0, r5, 0 + adds r1, r4, 0 + b _080090DA +_080090FE: + strb r0, [r5] + adds r5, 0x1 + adds r0, 0x40 + strb r0, [r5] + adds r5, 0x1 + b _080090E0 +_0800910A: + strb r0, [r5] + adds r0, r5, 0 + add sp, 0xC + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end sub_80090B8 + + thumb_func_start sub_8009118 +sub_8009118: @ 8009118 + ldr r0, _0800911C @ =gUnknown_2022100 + bx lr + .align 2, 0 +_0800911C: .4byte gUnknown_2022100 + thumb_func_end sub_8009118 + + thumb_func_start sub_8009120 +sub_8009120: @ 8009120 + ldr r0, _08009128 @ =gUnknown_300500C + ldr r0, [r0] + bx lr + .align 2, 0 +_08009128: .4byte gUnknown_300500C + thumb_func_end sub_8009120 + + thumb_func_start sub_800912C +sub_800912C: @ 800912C + ldr r0, _08009130 @ =gUnknown_2021CD0 + bx lr + .align 2, 0 +_08009130: .4byte gUnknown_2021CD0 + thumb_func_end sub_800912C + + thumb_func_start sub_8009134 +sub_8009134: @ 8009134 + ldr r0, _08009138 @ =gUnknown_2021CF0 + bx lr + .align 2, 0 +_08009138: .4byte gUnknown_2021CF0 + thumb_func_end sub_8009134 + + thumb_func_start sub_800913C +sub_800913C: @ 800913C + ldr r0, _08009140 @ =gUnknown_2021D04 + bx lr + .align 2, 0 +_08009140: .4byte gUnknown_2021D04 + thumb_func_end sub_800913C + + thumb_func_start sub_8009144 +sub_8009144: @ 8009144 + push {lr} + ldr r0, _08009154 @ =gUnknown_300500C + ldr r0, [r0] + ldrb r0, [r0, 0x8] + cmp r0, 0 + beq _0800915C + ldr r0, _08009158 @ =gUnknown_8415A22 + b _0800915E + .align 2, 0 +_08009154: .4byte gUnknown_300500C +_08009158: .4byte gUnknown_8415A22 +_0800915C: + ldr r0, _08009164 @ =gUnknown_8415A21 +_0800915E: + pop {r1} + bx r1 + .align 2, 0 +_08009164: .4byte gUnknown_8415A21 + thumb_func_end sub_8009144 + + thumb_func_start sub_8009168 +sub_8009168: @ 8009168 + push {lr} + ldr r0, _08009188 @ =gUnknown_3005008 + ldr r0, [r0] + ldr r2, _0800918C @ =0x00003a4c + adds r1, r0, r2 + ldrb r0, [r1] + cmp r0, 0xFF + bne _080091A0 + ldr r0, _08009190 @ =gUnknown_300500C + ldr r0, [r0] + ldrb r0, [r0, 0x8] + cmp r0, 0 + bne _08009198 + ldr r0, _08009194 @ =gUnknown_8415A5C + b _080091A2 + .align 2, 0 +_08009188: .4byte gUnknown_3005008 +_0800918C: .4byte 0x00003a4c +_08009190: .4byte gUnknown_300500C +_08009194: .4byte gUnknown_8415A5C +_08009198: + ldr r0, _0800919C @ =gUnknown_8415A58 + b _080091A2 + .align 2, 0 +_0800919C: .4byte gUnknown_8415A58 +_080091A0: + adds r0, r1, 0 +_080091A2: + pop {r1} + bx r1 + thumb_func_end sub_8009168 + + thumb_func_start sub_80091A8 +sub_80091A8: @ 80091A8 + ldr r0, _080091AC @ =gUnknown_8415A2C + bx lr + .align 2, 0 +_080091AC: .4byte gUnknown_8415A2C + thumb_func_end sub_80091A8 + + thumb_func_start sub_80091B0 +sub_80091B0: @ 80091B0 + ldr r0, _080091B4 @ =gUnknown_8415A36 + bx lr + .align 2, 0 +_080091B4: .4byte gUnknown_8415A36 + thumb_func_end sub_80091B0 + + thumb_func_start sub_80091B8 +sub_80091B8: @ 80091B8 + ldr r0, _080091BC @ =gUnknown_8415A31 + bx lr + .align 2, 0 +_080091BC: .4byte gUnknown_8415A31 + thumb_func_end sub_80091B8 + + thumb_func_start sub_80091C0 +sub_80091C0: @ 80091C0 + ldr r0, _080091C4 @ =gUnknown_8415A43 + bx lr + .align 2, 0 +_080091C4: .4byte gUnknown_8415A43 + thumb_func_end sub_80091C0 + + thumb_func_start sub_80091C8 +sub_80091C8: @ 80091C8 + ldr r0, _080091CC @ =gUnknown_8415A3C + bx lr + .align 2, 0 +_080091CC: .4byte gUnknown_8415A3C + thumb_func_end sub_80091C8 + + thumb_func_start sub_80091D0 +sub_80091D0: @ 80091D0 + ldr r0, _080091D4 @ =gUnknown_8415A50 + bx lr + .align 2, 0 +_080091D4: .4byte gUnknown_8415A50 + thumb_func_end sub_80091D0 + + thumb_func_start sub_80091D8 +sub_80091D8: @ 80091D8 + ldr r0, _080091DC @ =gUnknown_8415A49 + bx lr + .align 2, 0 +_080091DC: .4byte gUnknown_8415A49 + thumb_func_end sub_80091D8 + + thumb_func_start sub_80091E0 +sub_80091E0: @ 80091E0 + push {lr} + cmp r0, 0xD + bhi _080091F8 + ldr r1, _080091F4 @ =gUnknown_8231E70 + lsls r0, 2 + adds r0, r1 + ldr r0, [r0] + bl _call_via_r0 + b _080091FA + .align 2, 0 +_080091F4: .4byte gUnknown_8231E70 +_080091F8: + ldr r0, _08009200 @ =gUnknown_8415A20 +_080091FA: + pop {r1} + bx r1 + .align 2, 0 +_08009200: .4byte gUnknown_8415A20 + thumb_func_end sub_80091E0 + + thumb_func_start sub_8009204 +sub_8009204: @ 8009204 + push {lr} + adds r3, r0, 0 + lsls r1, 24 + lsrs r1, 24 + lsls r2, 16 + lsrs r2, 16 + movs r0, 0 + cmp r0, r2 + bcs _08009224 +_08009216: + strb r1, [r3] + adds r3, 0x1 + adds r0, 0x1 + lsls r0, 16 + lsrs r0, 16 + cmp r0, r2 + bcc _08009216 +_08009224: + movs r0, 0xFF + strb r0, [r3] + adds r0, r3, 0 + pop {r1} + bx r1 + thumb_func_end sub_8009204 + + thumb_func_start sub_8009230 +sub_8009230: @ 8009230 + push {r4,r5,lr} + adds r4, r0, 0 + adds r5, r1, 0 + lsls r2, 24 + lsrs r2, 24 + lsls r3, 16 + lsrs r3, 16 + b _08009250 +_08009240: + strb r1, [r4] + adds r5, 0x1 + adds r4, 0x1 + cmp r3, 0 + beq _08009250 + subs r0, r3, 0x1 + lsls r0, 16 + lsrs r3, r0, 16 +_08009250: + ldrb r1, [r5] + adds r0, r1, 0 + cmp r0, 0xFF + bne _08009240 + subs r0, r3, 0x1 + lsls r0, 16 + lsrs r3, r0, 16 + ldr r0, _08009280 @ =0x0000ffff + cmp r3, r0 + beq _08009274 + adds r1, r0, 0 +_08009266: + strb r2, [r4] + adds r4, 0x1 + subs r0, r3, 0x1 + lsls r0, 16 + lsrs r3, r0, 16 + cmp r3, r1 + bne _08009266 +_08009274: + movs r0, 0xFF + strb r0, [r4] + adds r0, r4, 0 + pop {r4,r5} + pop {r1} + bx r1 + .align 2, 0 +_08009280: .4byte 0x0000ffff + thumb_func_end sub_8009230 + + thumb_func_start sub_8009284 +sub_8009284: @ 8009284 + push {lr} + lsls r2, r1, 16 + lsrs r2, 16 + movs r1, 0xFF + bl sub_8009204 + pop {r1} + bx r1 + thumb_func_end sub_8009284 + + thumb_func_start sub_8009294 +sub_8009294: @ 8009294 + push {r4,r5,lr} + adds r4, r0, 0 + adds r3, r1, 0 + subs r2, 0x1 + movs r5, 0x1 + negs r5, r5 + b _080092BA +_080092A2: + strb r0, [r4] + adds r3, 0x1 + adds r4, 0x1 + subs r0, r3, 0x1 + ldrb r0, [r0] + cmp r0, 0xF9 + bne _080092B8 + ldrb r0, [r3] + strb r0, [r4] + adds r3, 0x1 + adds r4, 0x1 +_080092B8: + subs r2, 0x1 +_080092BA: + cmp r2, r5 + beq _080092C6 + ldrb r0, [r3] + adds r1, r0, 0 + cmp r1, 0xFF + bne _080092A2 +_080092C6: + movs r0, 0xFF + strb r0, [r4] + adds r0, r4, 0 + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_8009294 + + thumb_func_start sub_80092D4 +sub_80092D4: @ 80092D4 + push {lr} + adds r2, r0, 0 + movs r3, 0 + b _080092E6 +_080092DC: + cmp r1, 0xF9 + bne _080092E2 + adds r2, 0x1 +_080092E2: + adds r2, 0x1 + adds r3, 0x1 +_080092E6: + ldrb r1, [r2] + adds r0, r1, 0 + cmp r0, 0xFF + bne _080092DC + adds r0, r3, 0 + pop {r1} + bx r1 + thumb_func_end sub_80092D4 + + thumb_func_start sub_80092F4 +sub_80092F4: @ 80092F4 + push {lr} + adds r3, r0, 0 + lsls r2, 24 + lsrs r2, 24 + movs r0, 0xFC + strb r0, [r3] + adds r3, 0x1 + cmp r1, 0x1 + beq _08009316 + cmp r1, 0x1 + bcc _08009310 + cmp r1, 0x2 + beq _0800931C + b _08009320 +_08009310: + movs r0, 0x1 + strb r0, [r3] + b _0800931E +_08009316: + movs r0, 0x3 + strb r0, [r3] + b _0800931E +_0800931C: + strb r1, [r3] +_0800931E: + adds r3, 0x1 +_08009320: + strb r2, [r3] + adds r3, 0x1 + movs r0, 0xFF + strb r0, [r3] + adds r0, r3, 0 + pop {r1} + bx r1 + thumb_func_end sub_80092F4 + + thumb_func_start sub_8009330 +sub_8009330: @ 8009330 + push {lr} + lsls r0, 24 + lsrs r1, r0, 24 + movs r0, 0 + cmp r1, 0x18 + bhi _08009342 + ldr r0, _08009348 @ =gUnknown_8231EA8 + adds r0, r1, r0 + ldrb r0, [r0] +_08009342: + pop {r1} + bx r1 + .align 2, 0 +_08009348: .4byte gUnknown_8231EA8 + thumb_func_end sub_8009330 + + thumb_func_start sub_800934C +sub_800934C: @ 800934C + push {r4,lr} + adds r4, r0, 0 + b _08009360 +_08009352: + adds r4, 0x1 + ldrb r0, [r4] + bl sub_8009330 + lsls r0, 24 + lsrs r0, 24 + adds r4, r0 +_08009360: + ldrb r0, [r4] + cmp r0, 0xFC + beq _08009352 + adds r0, r4, 0 + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_800934C + + thumb_func_start sub_8009370 +sub_8009370: @ 8009370 + push {r4-r6,lr} + adds r4, r0, 0 + adds r5, r1, 0 + movs r6, 0 + b _08009392 +_0800937A: + cmp r1, r0 + bcs _08009388 + movs r6, 0x1 + negs r6, r6 + cmp r0, 0xFF + bne _08009388 + movs r6, 0x1 +_08009388: + ldrb r0, [r4] + cmp r0, 0xFF + beq _080093B2 + adds r4, 0x1 + adds r5, 0x1 +_08009392: + adds r0, r4, 0 + bl sub_800934C + adds r4, r0, 0 + adds r0, r5, 0 + bl sub_800934C + adds r5, r0, 0 + ldrb r1, [r4] + ldrb r0, [r5] + cmp r1, r0 + bls _0800937A + movs r6, 0x1 + cmp r1, 0xFF + bne _080093B2 + subs r6, 0x2 +_080093B2: + adds r0, r6, 0 + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end sub_8009370 + + thumb_func_start sub_80093BC +sub_80093BC: @ 80093BC + push {r4,lr} + adds r4, r0, 0 + lsls r1, 24 + lsrs r1, 24 + cmp r1, 0x1 + bne _0800941C + bl sub_8009424 + adds r0, r4, 0 + bl sub_8008E08 + lsls r0, 24 + lsrs r2, r0, 24 + adds r1, r2, 0 + adds r0, r1, 0x1 + lsls r0, 24 + lsrs r2, r0, 24 + adds r3, r2, 0 + adds r1, r4, r1 + movs r0, 0xFC + strb r0, [r1] + adds r0, r3, 0x1 + lsls r0, 24 + lsrs r2, r0, 24 + adds r3, r4, r3 + movs r0, 0x16 + strb r0, [r3] + adds r0, r2, 0x1 + lsls r0, 24 + adds r2, r4, r2 + movs r1, 0xFF + strb r1, [r2] + movs r1, 0xFF + lsls r1, 24 + adds r0, r1 + b _0800940E +_08009404: + adds r1, r2, r4 + ldrb r0, [r1] + strb r0, [r1, 0x2] + subs r0, r2, 0x1 + lsls r0, 24 +_0800940E: + lsrs r2, r0, 24 + cmp r2, 0xFF + bne _08009404 + movs r0, 0xFC + strb r0, [r4] + movs r0, 0x15 + strb r0, [r4, 0x1] +_0800941C: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80093BC + + thumb_func_start sub_8009424 +sub_8009424: @ 8009424 + push {r4-r6,lr} + adds r5, r0, 0 + movs r4, 0 + movs r6, 0 + ldrb r0, [r5] + cmp r0, 0xFF + beq _08009474 +_08009432: + adds r0, r5, r4 + ldrb r0, [r0] + cmp r0, 0xFC + bne _08009454 + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + adds r0, r5, r4 + ldrb r0, [r0] + bl sub_8009330 + lsls r0, 24 + lsrs r0, 24 + adds r0, r4, r0 + lsls r0, 16 + lsrs r4, r0, 16 + b _0800946C +_08009454: + adds r2, r6, 0 + adds r0, r2, 0x1 + lsls r0, 16 + lsrs r6, r0, 16 + adds r2, r5, r2 + adds r1, r4, 0 + adds r0, r1, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + adds r1, r5, r1 + ldrb r0, [r1] + strb r0, [r2] +_0800946C: + adds r0, r5, r4 + ldrb r0, [r0] + cmp r0, 0xFF + bne _08009432 +_08009474: + adds r1, r5, r6 + movs r0, 0xFF + strb r0, [r1] + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_8009424 + + .align 2, 0 @ Don't pad with nop. |