diff options
author | sceptillion <33798691+sceptillion@users.noreply.github.com> | 2017-12-11 16:40:00 -0800 |
---|---|---|
committer | sceptillion <33798691+sceptillion@users.noreply.github.com> | 2017-12-11 16:40:00 -0800 |
commit | 1941beb0cd4eacb2df6b2829160ffc81160502d8 (patch) | |
tree | 6e8ab8d1850ad700d3b6a9c0975bd6ead2d8f7c4 | |
parent | 194750096725003a69f623a9483fc406ddb7783b (diff) |
split text.s
-rw-r--r-- | asm/code_8009804.s | 2387 | ||||
-rw-r--r-- | asm/text.s (renamed from asm/code_8006218.s) | 2379 | ||||
-rw-r--r-- | ld_script.txt | 3 |
3 files changed, 2389 insertions, 2380 deletions
diff --git a/asm/code_8009804.s b/asm/code_8009804.s new file mode 100644 index 0000000..0167964 --- /dev/null +++ b/asm/code_8009804.s @@ -0,0 +1,2387 @@ + .include "constants/gba_constants.inc" + .include "asm/macros.inc" + + .syntax unified + + .text + + thumb_func_start sub_8009804 +sub_8009804: + push {lr} + movs r1, 0xC0 + lsls r1, 19 + movs r0, 0 + ldr r3, _0800987C + movs r2, 0 +_08009810: + stm r1!, {r2} + adds r0, 0x1 + cmp r0, r3 + bls _08009810 + ldr r1, _08009880 + movs r0, 0 + ldr r3, _08009884 + movs r2, 0 +_08009820: + stm r1!, {r2} + adds r0, 0x1 + cmp r0, r3 + bls _08009820 + ldr r1, _08009888 + movs r0, 0 + ldr r3, _0800988C + movs r2, 0 +_08009830: + stm r1!, {r2} + adds r0, 0x1 + cmp r0, r3 + bls _08009830 + ldr r1, _08009890 + movs r0, 0 + ldr r3, _08009894 + movs r2, 0 +_08009840: + stm r1!, {r2} + adds r0, 0x1 + cmp r0, r3 + bls _08009840 + movs r1, 0xA0 + lsls r1, 19 + movs r0, 0 + movs r2, 0 +_08009850: + stm r1!, {r2} + adds r0, 0x1 + cmp r0, 0x77 + bls _08009850 + ldr r1, _08009898 + movs r0, 0 + movs r2, 0 +_0800985E: + stm r1!, {r2} + adds r0, 0x1 + cmp r0, 0x77 + bls _0800985E + movs r1, 0xE0 + lsls r1, 19 + movs r0, 0 + ldr r2, _0800989C +_0800986E: + stm r1!, {r2} + adds r0, 0x1 + cmp r0, 0xFF + bls _0800986E + pop {r0} + bx r0 + .align 2, 0 +_0800987C: .4byte 0x000013bf +_08009880: .4byte 0x06007000 +_08009884: .4byte 0x000003ff +_08009888: .4byte 0x06008000 +_0800988C: .4byte 0x00001fff +_08009890: .4byte 0x06010000 +_08009894: .4byte 0x00001f7f +_08009898: .4byte 0x05000200 +_0800989C: .4byte 0x00a000a0 + thumb_func_end sub_8009804 + + thumb_func_start sub_80098A0 +sub_80098A0: + ldr r0, _080098B4 + movs r1, 0 + str r1, [r0] + ldr r0, _080098B8 + strb r1, [r0] + strb r1, [r0, 0x1] + strb r1, [r0, 0x2] + strb r1, [r0, 0x3] + bx lr + .align 2, 0 +_080098B4: .4byte gUnknown_202D23C +_080098B8: .4byte gUnknown_202D238 + thumb_func_end sub_80098A0 + + thumb_func_start sub_80098BC +sub_80098BC: + push {r4-r7,lr} + adds r4, r0, 0 + adds r5, r1, 0 + adds r6, r2, 0 + ldr r7, _080098F0 + ldr r3, [r7] + cmp r3, 0x7 + bgt _080098E8 + ldr r2, _080098F4 + lsls r1, r3, 1 + adds r1, r3 + lsls r1, 2 + adds r0, r1, r2 + str r4, [r0] + adds r0, r2, 0x4 + adds r0, r1, r0 + str r5, [r0] + adds r2, 0x8 + adds r1, r2 + str r6, [r1] + adds r0, r3, 0x1 + str r0, [r7] +_080098E8: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080098F0: .4byte gUnknown_202D23C +_080098F4: .4byte gUnknown_202D240 + thumb_func_end sub_80098BC + + thumb_func_start sub_80098F8 +sub_80098F8: + ldr r1, _08009904 + adds r0, r1 + movs r1, 0x1 + strb r1, [r0] + bx lr + .align 2, 0 +_08009904: .4byte gUnknown_202D238 + thumb_func_end sub_80098F8 + + thumb_func_start sub_8009908 +sub_8009908: + push {r4-r7,lr} + movs r5, 0 + ldr r0, _08009994 + ldr r0, [r0] + cmp r5, r0 + bge _08009936 + ldr r4, _08009998 + adds r7, r4, 0 + movs r6, 0 +_0800991A: + ldr r0, [r4] + adds r1, r7, 0x4 + adds r1, r6, r1 + ldr r1, [r1] + ldr r2, [r4, 0x8] + bl CpuCopy + adds r4, 0xC + adds r6, 0xC + adds r5, 0x1 + ldr r0, _08009994 + ldr r0, [r0] + cmp r5, r0 + blt _0800991A +_08009936: + ldr r0, _08009994 + movs r5, 0 + str r5, [r0] + ldr r4, _0800999C + ldrb r0, [r4] + cmp r0, 0 + beq _08009952 + strb r5, [r4] + ldr r0, _080099A0 + ldr r1, _080099A4 + movs r2, 0x80 + lsls r2, 4 + bl CpuCopy +_08009952: + ldrb r0, [r4, 0x1] + cmp r0, 0 + beq _08009966 + strb r5, [r4, 0x1] + ldr r0, _080099A8 + ldr r1, _080099AC + movs r2, 0x80 + lsls r2, 4 + bl CpuCopy +_08009966: + ldrb r0, [r4, 0x2] + cmp r0, 0 + beq _0800997A + strb r5, [r4, 0x2] + ldr r0, _080099B0 + ldr r1, _080099B4 + movs r2, 0x80 + lsls r2, 4 + bl CpuCopy +_0800997A: + ldrb r0, [r4, 0x3] + cmp r0, 0 + beq _0800998E + strb r5, [r4, 0x3] + ldr r0, _080099B8 + ldr r1, _080099BC + movs r2, 0x80 + lsls r2, 4 + bl CpuCopy +_0800998E: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08009994: .4byte gUnknown_202D23C +_08009998: .4byte gUnknown_202D240 +_0800999C: .4byte gUnknown_202D238 +_080099A0: .4byte 0x06006000 +_080099A4: .4byte gUnknown_202B038 +_080099A8: .4byte 0x06006800 +_080099AC: .4byte gUnknown_202B838 +_080099B0: .4byte 0x06007000 +_080099B4: .4byte gUnknown_202C038 +_080099B8: .4byte 0x06007800 +_080099BC: .4byte gUnknown_202C838 + thumb_func_end sub_8009908 + + thumb_func_start sub_80099C0 +sub_80099C0: + push {r4,r5,lr} + ldr r0, _080099E4 + ldr r4, _080099E8 + movs r5, 0x80 + lsls r5, 4 + adds r1, r4, 0 + adds r2, r5, 0 + bl CpuCopy + ldr r0, _080099EC + adds r4, r5 + adds r1, r4, 0 + adds r2, r5, 0 + bl CpuCopy + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080099E4: .4byte 0x06006000 +_080099E8: .4byte gUnknown_202B038 +_080099EC: .4byte 0x06006800 + thumb_func_end sub_80099C0 + + thumb_func_start sub_80099F0 +sub_80099F0: + push {lr} + adds r2, r0, 0 + ldr r0, _08009A0C + movs r1, 0x7 + movs r3, 0xE2 + lsls r3, 1 + adds r0, r3 +_080099FE: + str r2, [r0] + subs r0, 0x40 + subs r1, 0x1 + cmp r1, 0 + bge _080099FE + pop {r0} + bx r0 + .align 2, 0 +_08009A0C: .4byte gUnknown_202D038 + thumb_func_end sub_80099F0 + + thumb_func_start sub_8009A10 +sub_8009A10: + push {lr} + ldr r0, [r0, 0x4] + bl sub_8009A1C + pop {r0} + bx r0 + thumb_func_end sub_8009A10 + + thumb_func_start sub_8009A1C +sub_8009A1C: + push {r4-r6,lr} + adds r6, r0, 0 + ldr r0, _08009A30 + str r3, [r0] + ldr r3, [r6, 0xC] + movs r0, 0xC0 + lsls r0, 19 + adds r2, r0 + movs r5, 0 + b _08009A56 + .align 2, 0 +_08009A30: .4byte gUnknown_202D2A0 +_08009A34: + ldm r3!, {r0} + stm r2!, {r0} + ldm r3!, {r0} + stm r2!, {r0} + ldm r3!, {r0} + stm r2!, {r0} + ldm r3!, {r0} + stm r2!, {r0} + ldm r3!, {r0} + stm r2!, {r0} + ldm r3!, {r0} + stm r2!, {r0} + ldm r3!, {r0} + stm r2!, {r0} + ldm r3!, {r0} + stm r2!, {r0} + adds r5, 0x1 +_08009A56: + ldr r0, [r6, 0x8] + cmp r5, r0 + ble _08009A34 + movs r5, 0 + lsls r4, r1, 6 +_08009A60: + adds r0, r5, 0 + adds r0, 0xE0 + ldr r1, [r6, 0x10] + adds r1, r4 + bl SetBGPaletteBufferColorArray + adds r4, 0x4 + adds r5, 0x1 + cmp r5, 0xF + ble _08009A60 + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_8009A1C + + thumb_func_start sub_8009A7C +sub_8009A7C: + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x18 + str r0, [sp] + adds r5, r1, 0 + str r2, [sp, 0x4] + str r3, [sp, 0x8] + ldr r0, [sp, 0x38] + ldr r3, [sp, 0x40] + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, _08009AB4 + ldr r1, [r0] + movs r2, 0 + str r2, [sp, 0x10] + cmp r1, 0 + bne _08009AA8 + movs r7, 0x1 + str r7, [sp, 0x10] +_08009AA8: + ldr r1, [sp] + ldr r0, [r1] + cmp r5, r0 + blt _08009AB8 + movs r0, 0 + b _08009BCE + .align 2, 0 +_08009AB4: .4byte gUnknown_202D2A0 +_08009AB8: + lsls r5, 2 + mov r8, r5 + cmp r4, 0 + beq _08009AFA + movs r0, 0 + ldr r2, _08009B74 + mov r10, r2 + ldr r4, _08009B78 + mov r9, r4 + ldr r1, [sp, 0x10] + lsls r7, r1, 1 +_08009ACE: + ldr r2, [sp, 0x10] + adds r4, r0, 0x1 + mov r12, r4 + cmp r2, 0x1D + bgt _08009AF4 + mov r6, r10 + mov r5, r9 + movs r4, 0 + lsls r0, 6 + adds r1, r7, r0 +_08009AE2: + ldr r0, [r5] + lsls r0, 11 + adds r0, r1, r0 + adds r0, r6 + strh r4, [r0] + adds r1, 0x2 + adds r2, 0x1 + cmp r2, 0x1D + ble _08009AE2 +_08009AF4: + mov r0, r12 + cmp r0, 0x13 + ble _08009ACE +_08009AFA: + ldr r7, [sp] + ldr r0, [r7, 0x4] + add r0, r8 + ldr r5, [r0] + ldrh r0, [r5, 0x4] + mov r9, r0 + ldrh r1, [r5, 0x6] + str r1, [sp, 0xC] + ldr r2, [sp, 0x3C] + cmp r2, 0 + beq _08009B14 + ldrh r0, [r5, 0x8] + str r0, [r2] +_08009B14: + cmp r3, 0 + beq _08009B28 + ldrh r0, [r5, 0xA] + strh r0, [r3] + ldrh r0, [r5, 0xC] + strh r0, [r3, 0x2] + ldrh r0, [r5, 0xE] + strh r0, [r3, 0x4] + ldrh r0, [r5, 0x10] + strh r0, [r3, 0x6] +_08009B28: + adds r5, 0x14 + ldr r4, [sp, 0x8] + str r4, [sp, 0x14] + movs r6, 0 + movs r0, 0 + ldr r7, [sp, 0xC] + cmp r0, r7 + bge _08009BC4 + cmp r4, 0x13 + bgt _08009BC4 +_08009B3C: + ldr r3, [sp, 0x4] + adds r0, 0x1 + mov r12, r0 + ldr r0, [sp, 0x14] + adds r0, 0x1 + mov r8, r0 + mov r1, r9 + cmp r1, 0 + beq _08009BB4 + ldr r2, _08009B74 + mov r10, r2 + mov r2, r9 +_08009B54: + cmp r6, 0 + bne _08009B80 + ldrh r1, [r5] + adds r5, 0x2 + adds r0, r1, 0 + movs r4, 0xF0 + lsls r4, 8 + ands r0, r4 + cmp r0, 0 + bne _08009B6E + ldr r6, _08009B7C + ands r6, r1 + movs r1, 0 +_08009B6E: + adds r4, r1, 0 + b _08009B82 + .align 2, 0 +_08009B74: .4byte gUnknown_202B038 +_08009B78: .4byte gUnknown_202D2A0 +_08009B7C: .4byte 0x000003ff +_08009B80: + movs r4, 0 +_08009B82: + cmp r6, 0 + beq _08009B88 + subs r6, 0x1 +_08009B88: + ldr r7, [sp, 0x10] + cmp r3, r7 + blt _08009BAC + cmp r3, 0x1D + bgt _08009BAC + ldr r0, [sp, 0x14] + cmp r0, 0 + blt _08009BAC + lsls r0, r3, 1 + ldr r7, [sp, 0x14] + lsls r1, r7, 6 + adds r0, r1 + ldr r7, _08009BE0 + ldr r1, [r7] + lsls r1, 11 + adds r0, r1 + add r0, r10 + strh r4, [r0] +_08009BAC: + subs r2, 0x1 + adds r3, 0x1 + cmp r2, 0 + bne _08009B54 +_08009BB4: + mov r0, r12 + mov r1, r8 + str r1, [sp, 0x14] + ldr r2, [sp, 0xC] + cmp r0, r2 + bge _08009BC4 + cmp r1, 0x13 + ble _08009B3C +_08009BC4: + ldr r4, _08009BE0 + ldr r0, [r4] + bl sub_80098F8 + movs r0, 0x1 +_08009BCE: + 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 +_08009BE0: .4byte gUnknown_202D2A0 + thumb_func_end sub_8009A7C + + thumb_func_start sub_8009BE4 +sub_8009BE4: + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + movs r0, 0x20 + mov r12, r0 + ldr r0, _08009C54 + ldr r1, [r0] + movs r2, 0 + mov r10, r2 + mov r9, r0 + cmp r1, 0 + bne _08009C04 + movs r7, 0x1 + mov r10, r7 +_08009C04: + movs r0, 0 + mov r1, r10 + lsls r1, 1 + mov r8, r1 +_08009C0C: + mov r1, r10 + adds r3, r0, 0x1 + cmp r1, r12 + bge _08009C36 + ldr r6, _08009C58 + ldr r5, _08009C54 + movs r4, 0 + lsls r0, 6 + mov r7, r8 + adds r2, r7, r0 + mov r0, r12 + subs r1, r0, r1 +_08009C24: + ldr r0, [r5] + lsls r0, 11 + adds r0, r2, r0 + adds r0, r6 + strh r4, [r0] + adds r2, 0x2 + subs r1, 0x1 + cmp r1, 0 + bne _08009C24 +_08009C36: + adds r0, r3, 0 + cmp r0, 0x1F + ble _08009C0C + mov r1, r9 + ldr r0, [r1] + bl sub_80098F8 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08009C54: .4byte gUnknown_202D2A0 +_08009C58: .4byte gUnknown_202B038 + thumb_func_end sub_8009BE4 + + thumb_func_start sub_8009C5C +sub_8009C5C: + push {lr} + adds r1, r0, 0 + cmp r1, 0xFF + ble _08009C6C + movs r1, 0x3 + bl __modsi3 + b _08009C72 +_08009C6C: + ldr r0, _08009C78 + adds r0, r1, r0 + ldrb r0, [r0] +_08009C72: + pop {r1} + bx r1 + .align 2, 0 +_08009C78: .4byte gUnknown_80B88E4 + thumb_func_end sub_8009C5C + + thumb_func_start sub_8009C7C +sub_8009C7C: + push {lr} + adds r2, r0, 0 + movs r3, 0xC0 + lsls r3, 4 + adds r1, r2, 0 + ands r1, r3 + movs r0, 0x80 + lsls r0, 3 + cmp r1, r0 + beq _08009CB8 + cmp r1, r0 + bgt _08009C9A + cmp r1, 0 + beq _08009CA8 + b _08009CFC +_08009C9A: + movs r0, 0x80 + lsls r0, 4 + cmp r1, r0 + beq _08009CD0 + cmp r1, r3 + beq _08009CE0 + b _08009CFC +_08009CA8: + ldr r0, _08009CB0 + ldr r1, _08009CB4 + ands r1, r2 + b _08009CBE + .align 2, 0 +_08009CB0: .4byte gUnknown_80B8AE4 +_08009CB4: .4byte 0x000003ff +_08009CB8: + ldr r0, _08009CC8 + ldr r1, _08009CCC + bics r1, r2 +_08009CBE: + lsls r1, 1 + adds r1, r0 + movs r2, 0 + ldrsh r0, [r1, r2] + b _08009CFE + .align 2, 0 +_08009CC8: .4byte gUnknown_80B8AE4 +_08009CCC: .4byte 0x000003ff +_08009CD0: + ldr r0, _08009CD8 + ldr r1, _08009CDC + ands r1, r2 + b _08009CE6 + .align 2, 0 +_08009CD8: .4byte gUnknown_80B8AE4 +_08009CDC: .4byte 0x000003ff +_08009CE0: + ldr r0, _08009CF4 + ldr r1, _08009CF8 + bics r1, r2 +_08009CE6: + lsls r1, 1 + adds r1, r0 + movs r2, 0 + ldrsh r0, [r1, r2] + negs r0, r0 + b _08009CFE + .align 2, 0 +_08009CF4: .4byte gUnknown_80B8AE4 +_08009CF8: .4byte 0x000003ff +_08009CFC: + movs r0, 0 +_08009CFE: + pop {r1} + bx r1 + thumb_func_end sub_8009C7C + + thumb_func_start sub_8009D04 +sub_8009D04: + push {lr} + adds r2, r0, 0 + movs r3, 0xC0 + lsls r3, 4 + adds r1, r2, 0 + ands r1, r3 + movs r0, 0x80 + lsls r0, 3 + cmp r1, r0 + beq _08009D40 + cmp r1, r0 + bgt _08009D22 + cmp r1, 0 + beq _08009D30 + b _08009D84 +_08009D22: + movs r0, 0x80 + lsls r0, 4 + cmp r1, r0 + beq _08009D50 + cmp r1, r3 + beq _08009D6C + b _08009D84 +_08009D30: + ldr r0, _08009D38 + ldr r1, _08009D3C + bics r1, r2 + b _08009D72 + .align 2, 0 +_08009D38: .4byte gUnknown_80B8AE4 +_08009D3C: .4byte 0x000003ff +_08009D40: + ldr r0, _08009D48 + ldr r1, _08009D4C + ands r1, r2 + b _08009D56 + .align 2, 0 +_08009D48: .4byte gUnknown_80B8AE4 +_08009D4C: .4byte 0x000003ff +_08009D50: + ldr r0, _08009D64 + ldr r1, _08009D68 + bics r1, r2 +_08009D56: + lsls r1, 1 + adds r1, r0 + movs r2, 0 + ldrsh r0, [r1, r2] + negs r0, r0 + b _08009D86 + .align 2, 0 +_08009D64: .4byte gUnknown_80B8AE4 +_08009D68: .4byte 0x000003ff +_08009D6C: + ldr r0, _08009D7C + ldr r1, _08009D80 + ands r1, r2 +_08009D72: + lsls r1, 1 + adds r1, r0 + movs r2, 0 + ldrsh r0, [r1, r2] + b _08009D86 + .align 2, 0 +_08009D7C: .4byte gUnknown_80B8AE4 +_08009D80: .4byte 0x000003ff +_08009D84: + movs r0, 0 +_08009D86: + pop {r1} + bx r1 + thumb_func_end sub_8009D04 + + thumb_func_start sub_8009D8C +sub_8009D8C: + push {lr} + cmp r0, r2 + bcc _08009D9A + cmp r0, r2 + bhi _08009D9E + cmp r1, r3 + bcs _08009D9E +_08009D9A: + movs r0, 0x1 + b _08009DA0 +_08009D9E: + movs r0, 0 +_08009DA0: + pop {r1} + bx r1 + thumb_func_end sub_8009D8C + + thumb_func_start sub_8009DA4 +sub_8009DA4: + push {r4,r5,lr} + lsrs r2, r0, 31 + adds r5, r2, 0 + lsrs r3, r1, 31 + adds r4, r3, 0 + cmp r0, 0 + beq _08009DB6 + cmp r1, 0 + bne _08009DBA +_08009DB6: + movs r0, 0 + b _08009DD0 +_08009DBA: + cmp r2, 0 + beq _08009DC0 + negs r0, r0 +_08009DC0: + cmp r3, 0 + beq _08009DC6 + negs r1, r1 +_08009DC6: + bl sub_8009E14 + cmp r5, r4 + beq _08009DD0 + negs r0, r0 +_08009DD0: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_8009DA4 + + thumb_func_start sub_8009DD8 +sub_8009DD8: + push {r4,r5,lr} + lsrs r2, r0, 31 + adds r5, r2, 0 + lsrs r3, r1, 31 + adds r4, r3, 0 + cmp r1, 0 + bne _08009DF0 + ldr r0, _08009DEC + b _08009E0E + .align 2, 0 +_08009DEC: .4byte 0x7fffffff +_08009DF0: + cmp r0, 0 + bne _08009DF8 + movs r0, 0 + b _08009E0E +_08009DF8: + cmp r2, 0 + beq _08009DFE + negs r0, r0 +_08009DFE: + cmp r3, 0 + beq _08009E04 + negs r1, r1 +_08009E04: + bl sub_8009EA0 + cmp r5, r4 + beq _08009E0E + negs r0, r0 +_08009E0E: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_8009DD8 + + thumb_func_start sub_8009E14 +sub_8009E14: + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + cmp r0, 0 + beq _08009E24 + cmp r1, 0 + bne _08009E28 +_08009E24: + movs r0, 0 + b _08009E94 +_08009E28: + movs r5, 0 + adds r3, r0, 0 + mov r12, r5 + movs r6, 0 + movs r4, 0 + movs r0, 0x80 + lsls r0, 24 + mov r8, r0 + movs r7, 0x3F + mov r9, r7 +_08009E3C: + adds r2, r4, 0 + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _08009E50 + adds r4, r3 + adds r6, r5 + cmp r2, r4 + bls _08009E50 + adds r6, 0x1 +_08009E50: + lsrs r1, 1 + movs r2, 0x1 + mov r0, r12 + ands r0, r2 + cmp r0, 0 + beq _08009E60 + mov r0, r8 + orrs r1, r0 +_08009E60: + mov r7, r12 + lsrs r7, 1 + mov r12, r7 + lsls r5, 1 + adds r0, r3, 0 + mov r7, r8 + ands r0, r7 + cmp r0, 0 + beq _08009E74 + orrs r5, r2 +_08009E74: + lsls r3, 1 + movs r0, 0x1 + negs r0, r0 + add r9, r0 + mov r7, r9 + cmp r7, 0 + bge _08009E3C + lsrs r1, r4, 7 + ands r1, r2 + lsrs r4, 8 + lsls r0, r6, 24 + orrs r4, r0 + cmp r1, 0 + beq _08009E92 + adds r4, 0x1 +_08009E92: + adds r0, r4, 0 +_08009E94: + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_8009E14 + + thumb_func_start sub_8009EA0 +sub_8009EA0: + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x4 + cmp r1, 0 + bne _08009EB8 + ldr r0, _08009EB4 + b _08009F58 + .align 2, 0 +_08009EB4: .4byte 0x7fffffff +_08009EB8: + cmp r0, 0 + bne _08009EC0 + movs r0, 0 + b _08009F58 +_08009EC0: + lsrs r7, r0, 24 + lsls r6, r0, 8 + mov r10, r1 + movs r0, 0 + mov r9, r0 + movs r5, 0 + movs r4, 0 + movs r1, 0x1 + mov r8, r1 + movs r2, 0x3F + str r2, [sp] +_08009ED6: + lsls r5, 1 + adds r0, r4, 0 + movs r1, 0x80 + lsls r1, 24 + ands r0, r1 + cmp r0, 0 + beq _08009EE8 + mov r2, r8 + orrs r5, r2 +_08009EE8: + movs r1, 0x2 + negs r1, r1 + lsls r4, 1 + adds r0, r7, 0 + movs r2, 0x80 + lsls r2, 24 + ands r0, r2 + cmp r0, 0 + beq _08009EFE + mov r0, r8 + orrs r4, r0 +_08009EFE: + lsls r7, 1 + adds r0, r6, 0 + movs r2, 0x80 + lsls r2, 24 + ands r0, r2 + cmp r0, 0 + beq _08009F10 + mov r0, r8 + orrs r7, r0 +_08009F10: + lsls r6, 1 + ands r6, r1 + adds r0, r5, 0 + adds r1, r4, 0 + movs r2, 0 + mov r3, r10 + bl sub_8009D8C + lsls r0, 24 + cmp r0, 0 + bne _08009F3A + adds r0, r4, 0 + movs r1, 0x1 + mov r2, r10 + subs r4, r2 + movs r2, 0 + subs r5, r2 + cmp r0, r4 + bcs _08009F3C + subs r5, 0x1 + b _08009F3C +_08009F3A: + movs r1, 0 +_08009F3C: + mov r0, r9 + lsls r0, 1 + mov r9, r0 + cmp r1, 0 + beq _08009F4C + mov r1, r8 + orrs r0, r1 + mov r9, r0 +_08009F4C: + ldr r2, [sp] + subs r2, 0x1 + str r2, [sp] + cmp r2, 0 + bge _08009ED6 + mov r0, r9 +_08009F58: + 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 sub_8009EA0 + + thumb_func_start sub_8009F68 +sub_8009F68: + push {r4-r7,lr} + adds r5, r0, 0 + adds r6, r1, 0 + adds r4, r6, 0 + cmp r6, 0 + bge _08009F76 + negs r4, r6 +_08009F76: + movs r7, 0x80 + lsls r7, 1 + cmp r4, 0 + beq _08009FA0 +_08009F7E: + movs r0, 0x1 + ands r0, r4 + cmp r0, 0 + beq _08009F90 + adds r0, r7, 0 + adds r1, r5, 0 + bl sub_8009DA4 + adds r7, r0, 0 +_08009F90: + adds r0, r5, 0 + adds r1, r5, 0 + bl sub_8009DA4 + adds r5, r0, 0 + asrs r4, 1 + cmp r4, 0 + bne _08009F7E +_08009FA0: + cmp r6, 0 + bge _08009FB0 + movs r0, 0x80 + lsls r0, 1 + adds r1, r7, 0 + bl sub_8009DD8 + b _08009FB2 +_08009FB0: + adds r0, r7, 0 +_08009FB2: + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_8009F68 + + thumb_func_start sub_8009FB8 +sub_8009FB8: + push {r4-r7,lr} + adds r5, r0, 0 + adds r6, r1, 0 + cmp r5, 0 + bge _08009FC4 + negs r5, r5 +_08009FC4: + cmp r6, 0 + bge _08009FCA + negs r6, r6 +_08009FCA: + cmp r5, r6 + bge _08009FD4 + adds r4, r5, 0 + adds r5, r6, 0 + adds r6, r4, 0 +_08009FD4: + cmp r6, 0 + beq _0800A016 + movs r7, 0x2 +_08009FDA: + adds r0, r6, 0 + adds r1, r5, 0 + bl sub_8009DD8 + adds r4, r0, 0 + adds r1, r4, 0 + bl sub_8009DA4 + adds r4, r0, 0 + movs r0, 0x80 + lsls r0, 3 + adds r1, r4, r0 + adds r0, r4, 0 + bl sub_8009DD8 + adds r4, r0, 0 + adds r0, r5, 0 + adds r1, r4, 0 + bl sub_8009DA4 + lsls r0, 1 + adds r5, r0 + adds r0, r6, 0 + adds r1, r4, 0 + bl sub_8009DA4 + adds r6, r0, 0 + subs r7, 0x1 + cmp r7, 0 + bge _08009FDA +_0800A016: + adds r0, r5, 0 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_8009FB8 + + thumb_func_start sub_800A020 +sub_800A020: + push {r4,lr} + adds r3, r0, 0 + ldr r4, _0800A044 + lsrs r2, r1, 16 + str r2, [r3] + lsls r0, r1, 16 + str r0, [r3, 0x4] + movs r0, 0x80 + lsls r0, 8 + ands r0, r1 + cmp r0, 0 + beq _0800A03C + orrs r2, r4 + str r2, [r3] +_0800A03C: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0800A044: .4byte 0xffff0000 + thumb_func_end sub_800A020 + + thumb_func_start sub_800A048 +sub_800A048: + push {lr} + ldrh r1, [r0] + lsls r2, r1, 16 + ldr r0, [r0, 0x4] + lsrs r1, r0, 16 + orrs r2, r1 + movs r1, 0x80 + lsls r1, 8 + ands r0, r1 + cmp r0, 0 + beq _0800A060 + adds r2, 0x1 +_0800A060: + adds r0, r2, 0 + pop {r1} + bx r1 + thumb_func_end sub_800A048 + + thumb_func_start sub_800A068 +sub_800A068: + push {lr} + ldrb r1, [r0] + lsls r2, r1, 24 + ldr r0, [r0, 0x4] + lsrs r1, r0, 8 + orrs r2, r1 + movs r1, 0x80 + lsls r1, 8 + ands r0, r1 + cmp r0, 0 + beq _0800A080 + adds r2, 0x1 +_0800A080: + adds r0, r2, 0 + pop {r1} + bx r1 + thumb_func_end sub_800A068 + + thumb_func_start sub_800A088 +sub_800A088: + push {lr} + adds r2, r0, 0 + lsls r0, r1, 8 + str r0, [r2, 0x4] + asrs r1, 24 + str r1, [r2] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _0800A0A4 + movs r0, 0x80 + negs r0, r0 + orrs r1, r0 + b _0800A0A8 +_0800A0A4: + movs r0, 0x7F + ands r1, r0 +_0800A0A8: + str r1, [r2] + pop {r0} + bx r0 + thumb_func_end sub_800A088 + + thumb_func_start sub_800A0B0 +sub_800A0B0: + push {lr} + ldr r2, [r0, 0x4] + ldr r3, [r0] + cmp r2, 0 + bne _0800A0C2 + cmp r3, 0 + bne _0800A0C2 + movs r0, 0 + b _0800A254 +_0800A0C2: + cmp r2, 0 + ble _0800A18C + cmp r3, 0 + ble _0800A124 + cmp r2, r3 + bge _0800A0F0 + asrs r1, r3, 8 + cmp r1, 0 + beq _0800A0FE + adds r0, r2, 0 + bl __divsi3 + adds r2, r0, 0 + cmp r2, 0xFF + ble _0800A0E2 + movs r2, 0xFF +_0800A0E2: + ldr r0, _0800A0EC + lsls r1, r2, 2 + adds r1, r0 + ldr r0, [r1] + b _0800A252 + .align 2, 0 +_0800A0EC: .4byte gUnknown_80B92E4 +_0800A0F0: + adds r1, r2, 0 + cmp r2, 0 + bge _0800A0F8 + adds r1, 0xFF +_0800A0F8: + asrs r1, 8 + cmp r1, 0 + bne _0800A104 +_0800A0FE: + movs r0, 0x80 + lsls r0, 2 + b _0800A254 +_0800A104: + adds r0, r3, 0 + bl __divsi3 + adds r2, r0, 0 + cmp r2, 0xFF + ble _0800A112 + movs r2, 0xFF +_0800A112: + ldr r1, _0800A120 + lsls r0, r2, 2 + adds r0, r1 + ldr r1, [r0] + movs r0, 0x40 + b _0800A250 + .align 2, 0 +_0800A120: .4byte gUnknown_80B92E4 +_0800A124: + negs r3, r3 + cmp r2, r3 + bge _0800A158 + adds r1, r3, 0 + cmp r3, 0 + bge _0800A132 + adds r1, 0xFF +_0800A132: + asrs r1, 8 + cmp r1, 0 + beq _0800A166 + adds r0, r2, 0 + bl __divsi3 + adds r2, r0, 0 + cmp r2, 0xFF + ble _0800A146 + movs r2, 0xFF +_0800A146: + ldr r1, _0800A154 + lsls r0, r2, 2 + adds r0, r1 + ldr r1, [r0] + movs r0, 0x80 + b _0800A250 + .align 2, 0 +_0800A154: .4byte gUnknown_80B92E4 +_0800A158: + adds r1, r2, 0 + cmp r2, 0 + bge _0800A160 + adds r1, 0xFF +_0800A160: + asrs r1, 8 + cmp r1, 0 + bne _0800A16C +_0800A166: + movs r0, 0xC0 + lsls r0, 3 + b _0800A254 +_0800A16C: + adds r0, r3, 0 + bl __divsi3 + adds r2, r0, 0 + cmp r2, 0xFF + ble _0800A17A + movs r2, 0xFF +_0800A17A: + ldr r0, _0800A188 + lsls r1, r2, 2 + adds r1, r0 + ldr r0, [r1] + adds r0, 0x40 + b _0800A252 + .align 2, 0 +_0800A188: .4byte gUnknown_80B92E4 +_0800A18C: + negs r2, r2 + cmp r3, 0 + ble _0800A1F0 + cmp r2, r3 + bge _0800A1BC + asrs r1, r3, 8 + cmp r1, 0 + beq _0800A1CA + adds r0, r2, 0 + bl __divsi3 + adds r2, r0, 0 + cmp r2, 0xFF + ble _0800A1AA + movs r2, 0xFF +_0800A1AA: + ldr r1, _0800A1B8 + lsls r0, r2, 2 + adds r0, r1 + ldr r1, [r0] + movs r0, 0x80 + lsls r0, 1 + b _0800A250 + .align 2, 0 +_0800A1B8: .4byte gUnknown_80B92E4 +_0800A1BC: + adds r1, r2, 0 + cmp r2, 0 + bge _0800A1C4 + adds r1, 0xFF +_0800A1C4: + asrs r1, 8 + cmp r1, 0 + bne _0800A1D0 +_0800A1CA: + movs r0, 0xE0 + lsls r0, 4 + b _0800A254 +_0800A1D0: + adds r0, r3, 0 + bl __divsi3 + adds r2, r0, 0 + cmp r2, 0xFF + ble _0800A1DE + movs r2, 0xFF +_0800A1DE: + ldr r0, _0800A1EC + lsls r1, r2, 2 + adds r1, r0 + ldr r0, [r1] + adds r0, 0xC0 + b _0800A252 + .align 2, 0 +_0800A1EC: .4byte gUnknown_80B92E4 +_0800A1F0: + negs r3, r3 + cmp r2, r3 + bge _0800A224 + adds r1, r3, 0 + cmp r3, 0 + bge _0800A1FE + adds r1, 0xFF +_0800A1FE: + asrs r1, 8 + cmp r1, 0 + beq _0800A232 + adds r0, r2, 0 + bl __divsi3 + adds r2, r0, 0 + cmp r2, 0xFF + ble _0800A212 + movs r2, 0xFF +_0800A212: + ldr r0, _0800A220 + lsls r1, r2, 2 + adds r1, r0 + ldr r0, [r1] + adds r0, 0x80 + b _0800A252 + .align 2, 0 +_0800A220: .4byte gUnknown_80B92E4 +_0800A224: + adds r0, r2, 0 + cmp r0, 0 + bge _0800A22C + adds r0, 0xFF +_0800A22C: + asrs r1, r0, 8 + cmp r1, 0 + bne _0800A238 +_0800A232: + movs r0, 0xA0 + lsls r0, 4 + b _0800A254 +_0800A238: + adds r0, r3, 0 + bl __divsi3 + adds r2, r0, 0 + cmp r2, 0xFF + ble _0800A246 + movs r2, 0xFF +_0800A246: + ldr r1, _0800A258 + lsls r0, r2, 2 + adds r0, r1 + ldr r1, [r0] + movs r0, 0xC0 +_0800A250: + subs r0, r1 +_0800A252: + lsls r0, 4 +_0800A254: + pop {r1} + bx r1 + .align 2, 0 +_0800A258: .4byte gUnknown_80B92E4 + thumb_func_end sub_800A0B0 + + thumb_func_start sub_800A25C +sub_800A25C: + push {lr} + adds r1, r0, 0 + ldr r0, [r1] + mvns r2, r0 + str r2, [r1] + ldr r0, [r1, 0x4] + mvns r0, r0 + adds r0, 0x1 + str r0, [r1, 0x4] + cmp r0, 0 + bne _0800A276 + adds r0, r2, 0x1 + str r0, [r1] +_0800A276: + pop {r0} + bx r0 + thumb_func_end sub_800A25C + + thumb_func_start sub_800A27C +sub_800A27C: + push {lr} + adds r1, r0, 0 + ldr r0, [r1] + cmp r0, 0 + bge _0800A29A + mvns r2, r0 + str r2, [r1] + ldr r0, [r1, 0x4] + mvns r0, r0 + adds r0, 0x1 + str r0, [r1, 0x4] + cmp r0, 0 + bne _0800A29A + adds r0, r2, 0x1 + str r0, [r1] +_0800A29A: + pop {r0} + bx r0 + thumb_func_end sub_800A27C + + thumb_func_start sub_800A2A0 +sub_800A2A0: + push {lr} + adds r1, r0, 0 + ldr r0, [r1] + cmp r0, 0 + bne _0800A2B4 + ldr r0, [r1, 0x4] + cmp r0, 0 + bne _0800A2B4 + movs r0, 0x1 + b _0800A2B6 +_0800A2B4: + movs r0, 0 +_0800A2B6: + pop {r1} + bx r1 + thumb_func_end sub_800A2A0 + + thumb_func_start sub_800A2BC +sub_800A2BC: + push {lr} + adds r2, r0, 0 + adds r3, r1, 0 + ldr r1, [r2] + ldr r0, [r3] + cmp r1, r0 + bne _0800A2D6 + ldr r1, [r2, 0x4] + ldr r0, [r3, 0x4] + cmp r1, r0 + bne _0800A2D6 + movs r0, 0x1 + b _0800A2D8 +_0800A2D6: + movs r0, 0 +_0800A2D8: + pop {r1} + bx r1 + thumb_func_end sub_800A2BC + + thumb_func_start sub_800A2DC +sub_800A2DC: + push {lr} + ldr r0, [r0] + cmp r0, 0 + blt _0800A2E8 + movs r0, 0 + b _0800A2EA +_0800A2E8: + movs r0, 0x1 +_0800A2EA: + pop {r1} + bx r1 + thumb_func_end sub_800A2DC + + thumb_func_start sub_800A2F0 +sub_800A2F0: + push {r4,r5,lr} + adds r3, r0, 0 + adds r2, r1, 0 + ldr r4, [r3] + lsrs r1, r4, 31 + ldr r5, [r2] + cmp r5, 0 + bge _0800A304 + movs r0, 0x2 + orrs r1, r0 +_0800A304: + cmp r1, 0x1 + beq _0800A326 + cmp r1, 0x1 + ble _0800A314 + cmp r1, 0x2 + beq _0800A32A + cmp r1, 0x3 + beq _0800A32E +_0800A314: + ldr r1, [r3, 0x4] + ldr r3, [r2, 0x4] + adds r0, r4, 0 + adds r2, r5, 0 + bl sub_8009D8C + lsls r0, 24 + lsrs r0, 24 + b _0800A346 +_0800A326: + movs r0, 0x1 + b _0800A346 +_0800A32A: + movs r0, 0 + b _0800A346 +_0800A32E: + ldr r1, [r3, 0x4] + ldr r3, [r2, 0x4] + adds r0, r4, 0 + adds r2, r5, 0 + bl sub_8009D8C + movs r1, 0 + lsls r0, 24 + cmp r0, 0 + bne _0800A344 + movs r1, 0x1 +_0800A344: + adds r0, r1, 0 +_0800A346: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_800A2F0 + + thumb_func_start sub_800A34C +sub_800A34C: + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x18 + adds r6, r0, 0 + ldr r0, [r1] + str r0, [sp] + ldr r0, [r1, 0x4] + str r0, [sp, 0x4] + ldr r0, [r2] + str r0, [sp, 0x8] + ldr r0, [r2, 0x4] + add r5, sp, 0x8 + str r0, [r5, 0x4] + mov r0, sp + bl sub_800A2DC + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + mov r10, r8 + adds r0, r5, 0 + bl sub_800A2DC + lsls r0, 24 + lsrs r7, r0, 24 + mov r9, r7 + mov r0, sp + bl sub_800A2A0 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0 + beq _0800A39A + movs r0, 0 + str r0, [r6] + b _0800A3DE +_0800A39A: + adds r0, r5, 0 + bl sub_800A2A0 + lsls r0, 24 + cmp r0, 0 + beq _0800A3AC + str r4, [r6] + str r4, [r6, 0x4] + b _0800A3E0 +_0800A3AC: + mov r0, r8 + cmp r0, 0 + beq _0800A3B8 + mov r0, sp + bl sub_800A25C +_0800A3B8: + cmp r7, 0 + beq _0800A3C2 + adds r0, r5, 0 + bl sub_800A25C +_0800A3C2: + add r4, sp, 0x10 + adds r0, r4, 0 + mov r1, sp + adds r2, r5, 0 + bl sub_800A4E4 + cmp r10, r9 + beq _0800A3D8 + adds r0, r4, 0 + bl sub_800A25C +_0800A3D8: + ldr r0, [sp, 0x10] + str r0, [r6] + ldr r0, [r4, 0x4] +_0800A3DE: + str r0, [r6, 0x4] +_0800A3E0: + add sp, 0x18 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_800A34C + + thumb_func_start sub_800A3F0 +sub_800A3F0: + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x18 + adds r6, r0, 0 + ldr r0, [r1] + str r0, [sp] + ldr r0, [r1, 0x4] + str r0, [sp, 0x4] + ldr r0, [r2] + str r0, [sp, 0x8] + ldr r0, [r2, 0x4] + add r5, sp, 0x8 + str r0, [r5, 0x4] + mov r0, sp + bl sub_800A2DC + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + mov r10, r8 + adds r0, r5, 0 + bl sub_800A2DC + lsls r0, 24 + lsrs r7, r0, 24 + mov r9, r7 + adds r0, r5, 0 + bl sub_800A2A0 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0 + beq _0800A448 + ldr r0, _0800A444 + str r0, [r6] + movs r0, 0x1 + negs r0, r0 + b _0800A48C + .align 2, 0 +_0800A444: .4byte 0x7fffffff +_0800A448: + mov r0, sp + bl sub_800A2A0 + lsls r0, 24 + cmp r0, 0 + beq _0800A45A + str r4, [r6] + str r4, [r6, 0x4] + b _0800A48E +_0800A45A: + mov r0, r8 + cmp r0, 0 + beq _0800A466 + mov r0, sp + bl sub_800A25C +_0800A466: + cmp r7, 0 + beq _0800A470 + adds r0, r5, 0 + bl sub_800A25C +_0800A470: + add r4, sp, 0x10 + adds r0, r4, 0 + mov r1, sp + adds r2, r5, 0 + bl sub_800A5A4 + cmp r10, r9 + beq _0800A486 + adds r0, r4, 0 + bl sub_800A25C +_0800A486: + ldr r0, [sp, 0x10] + str r0, [r6] + ldr r0, [r4, 0x4] +_0800A48C: + str r0, [r6, 0x4] +_0800A48E: + add sp, 0x18 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_800A3F0 + + thumb_func_start sub_800A4A0 +sub_800A4A0: + push {r4,r5,lr} + sub sp, 0x10 + adds r5, r0, 0 + ldr r0, [r5] + str r0, [sp] + ldr r0, [r5, 0x4] + str r0, [sp, 0x4] + mov r0, sp + bl sub_800A2A0 + lsls r0, 24 + cmp r0, 0 + beq _0800A4C0 + movs r0, 0 + str r0, [r5] + b _0800A4D8 +_0800A4C0: + mov r0, sp + bl sub_800A27C + add r4, sp, 0x8 + adds r0, r4, 0 + mov r1, sp + mov r2, sp + bl sub_800A4E4 + ldr r0, [sp, 0x8] + str r0, [r5] + ldr r0, [r4, 0x4] +_0800A4D8: + str r0, [r5, 0x4] + add sp, 0x10 + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_800A4A0 + + thumb_func_start sub_800A4E4 +sub_800A4E4: + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + mov r8, r0 + adds r5, r1, 0 + adds r6, r2, 0 + adds r0, r5, 0 + bl sub_800A2A0 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0 + beq _0800A50C + movs r0, 0 + mov r1, r8 + str r0, [r1] + str r0, [r1, 0x4] + b _0800A596 +_0800A50C: + adds r0, r6, 0 + bl sub_800A2A0 + lsls r0, 24 + cmp r0, 0 + beq _0800A520 + mov r7, r8 + str r4, [r7] + str r4, [r7, 0x4] + b _0800A596 +_0800A520: + ldr r1, [r5] + ldr r4, [r5, 0x4] + ldr r0, [r6] + mov r10, r0 + ldr r2, [r6, 0x4] + movs r6, 0 + movs r5, 0 + movs r7, 0x80 + lsls r7, 24 + mov r9, r7 + movs r0, 0x3F + mov r12, r0 +_0800A538: + adds r3, r5, 0 + movs r0, 0x1 + ands r0, r2 + cmp r0, 0 + beq _0800A54C + adds r5, r4 + adds r6, r1 + cmp r3, r5 + bls _0800A54C + adds r6, 0x1 +_0800A54C: + lsrs r2, 1 + movs r3, 0x1 + mov r0, r10 + ands r0, r3 + cmp r0, 0 + beq _0800A55C + mov r7, r9 + orrs r2, r7 +_0800A55C: + mov r0, r10 + lsrs r0, 1 + mov r10, r0 + lsls r1, 1 + adds r0, r4, 0 + mov r7, r9 + ands r0, r7 + cmp r0, 0 + beq _0800A570 + orrs r1, r3 +_0800A570: + lsls r4, 1 + movs r0, 0x1 + negs r0, r0 + add r12, r0 + mov r7, r12 + cmp r7, 0 + bge _0800A538 + lsrs r1, r5, 15 + ands r1, r3 + lsrs r5, 16 + lsls r0, r6, 16 + orrs r5, r0 + lsrs r6, 16 + cmp r1, 0 + beq _0800A590 + adds r5, 0x1 +_0800A590: + mov r0, r8 + str r6, [r0] + str r5, [r0, 0x4] +_0800A596: + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_800A4E4 + + thumb_func_start sub_800A5A4 +sub_800A5A4: + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x14 + str r0, [sp] + adds r5, r1, 0 + mov r8, r2 + mov r0, r8 + bl sub_800A2A0 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0 + beq _0800A5D8 + ldr r0, _0800A5D4 + ldr r1, [sp] + str r0, [r1] + movs r0, 0x1 + negs r0, r0 + str r0, [r1, 0x4] + b _0800A6BE + .align 2, 0 +_0800A5D4: .4byte 0x7fffffff +_0800A5D8: + adds r0, r5, 0 + bl sub_800A2A0 + lsls r0, 24 + cmp r0, 0 + beq _0800A5EC + ldr r2, [sp] + str r4, [r2] + str r4, [r2, 0x4] + b _0800A6BE +_0800A5EC: + ldr r0, [r5] + lsls r7, r0, 16 + ldr r1, [r5, 0x4] + lsrs r0, r1, 16 + orrs r7, r0 + lsls r6, r1, 16 + movs r0, 0x80 + lsls r0, 8 + orrs r6, r0 + mov r0, r8 + ldr r0, [r0] + str r0, [sp, 0x4] + mov r1, r8 + ldr r1, [r1, 0x4] + str r1, [sp, 0x8] + movs r2, 0 + str r2, [sp, 0xC] + mov r9, r2 + movs r5, 0 + movs r4, 0 + movs r0, 0x80 + lsls r0, 24 + mov r10, r0 + movs r1, 0x1 + mov r8, r1 + movs r2, 0x3F + str r2, [sp, 0x10] +_0800A622: + lsls r5, 1 + adds r0, r4, 0 + mov r1, r10 + ands r0, r1 + cmp r0, 0 + beq _0800A632 + mov r2, r8 + orrs r5, r2 +_0800A632: + movs r1, 0x2 + negs r1, r1 + lsls r4, 1 + adds r0, r7, 0 + mov r2, r10 + ands r0, r2 + cmp r0, 0 + beq _0800A646 + mov r0, r8 + orrs r4, r0 +_0800A646: + lsls r7, 1 + adds r0, r6, 0 + mov r2, r10 + ands r0, r2 + cmp r0, 0 + beq _0800A656 + mov r0, r8 + orrs r7, r0 +_0800A656: + lsls r6, 1 + ands r6, r1 + adds r0, r5, 0 + adds r1, r4, 0 + ldr r2, [sp, 0x4] + ldr r3, [sp, 0x8] + bl sub_8009D8C + lsls r0, 24 + cmp r0, 0 + bne _0800A680 + adds r0, r4, 0 + movs r1, 0x1 + ldr r2, [sp, 0x8] + subs r4, r2 + ldr r2, [sp, 0x4] + subs r5, r2 + cmp r0, r4 + bcs _0800A682 + subs r5, 0x1 + b _0800A682 +_0800A680: + movs r1, 0 +_0800A682: + ldr r0, [sp, 0xC] + lsls r0, 1 + str r0, [sp, 0xC] + mov r0, r9 + mov r2, r10 + ands r0, r2 + cmp r0, 0 + beq _0800A69A + ldr r0, [sp, 0xC] + mov r2, r8 + orrs r0, r2 + str r0, [sp, 0xC] +_0800A69A: + mov r0, r9 + lsls r0, 1 + mov r9, r0 + cmp r1, 0 + beq _0800A6AA + mov r1, r8 + orrs r0, r1 + mov r9, r0 +_0800A6AA: + ldr r2, [sp, 0x10] + subs r2, 0x1 + str r2, [sp, 0x10] + cmp r2, 0 + bge _0800A622 + ldr r0, [sp, 0xC] + ldr r1, [sp] + str r0, [r1] + mov r2, r9 + str r2, [r1, 0x4] +_0800A6BE: + add sp, 0x14 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_800A5A4 + + thumb_func_start sub_800A6D0 +sub_800A6D0: + push {r4,lr} + adds r4, r0, 0 + ldr r3, [r1] + ldr r0, [r2] + adds r3, r0 + ldr r1, [r1, 0x4] + ldr r0, [r2, 0x4] + adds r0, r1, r0 + cmp r0, r1 + bcs _0800A6E6 + adds r3, 0x1 +_0800A6E6: + str r3, [r4] + str r0, [r4, 0x4] + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_800A6D0 + + thumb_func_start sub_800A6F0 +sub_800A6F0: + push {r4,lr} + adds r4, r0, 0 + ldr r3, [r1] + ldr r0, [r2] + subs r3, r0 + ldr r1, [r1, 0x4] + ldr r0, [r2, 0x4] + subs r0, r1, r0 + cmp r0, r1 + bls _0800A706 + subs r3, 0x1 +_0800A706: + str r3, [r4] + str r0, [r4, 0x4] + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_800A6F0 + + thumb_func_start sub_800A710 +sub_800A710: + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x18 + mov r8, r0 + adds r6, r2, 0 + ldr r0, [r1] + str r0, [sp] + ldr r0, [r1, 0x4] + str r0, [sp, 0x4] + adds r4, r6, 0 + cmp r6, 0 + bge _0800A72C + negs r4, r6 +_0800A72C: + movs r0, 0 + str r0, [sp, 0x8] + movs r1, 0x80 + lsls r1, 9 + add r0, sp, 0x8 + str r1, [r0, 0x4] + adds r7, r0, 0 + cmp r4, 0 + beq _0800A75E + adds r5, r7, 0 +_0800A740: + movs r0, 0x1 + ands r0, r4 + cmp r0, 0 + beq _0800A752 + adds r0, r5, 0 + adds r1, r5, 0 + mov r2, sp + bl sub_800A34C +_0800A752: + mov r0, sp + bl sub_800A4A0 + asrs r4, 1 + cmp r4, 0 + bne _0800A740 +_0800A75E: + cmp r6, 0 + bge _0800A776 + movs r0, 0 + str r0, [sp, 0x10] + movs r0, 0x80 + lsls r0, 9 + add r1, sp, 0x10 + str r0, [r1, 0x4] + adds r0, r7, 0 + adds r2, r7, 0 + bl sub_800A3F0 +_0800A776: + ldr r0, [sp, 0x8] + mov r1, r8 + str r0, [r1] + ldr r0, [r7, 0x4] + str r0, [r1, 0x4] + add sp, 0x18 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_800A710 + + thumb_func_start sub_800A78C +sub_800A78C: + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x20 + mov r10, r0 + ldr r0, [r1] + ldr r1, [r1, 0x4] + str r0, [sp] + str r1, [sp, 0x4] + ldr r0, [r2] + ldr r1, [r2, 0x4] + str r0, [sp, 0x8] + str r1, [sp, 0xC] + mov r0, sp + bl sub_800A27C + add r4, sp, 0x8 + adds r0, r4, 0 + bl sub_800A27C + mov r0, sp + adds r1, r4, 0 + bl sub_800A2F0 + lsls r0, 24 + mov r8, r4 + cmp r0, 0 + beq _0800A7DC + ldr r2, [sp] + ldr r3, [sp, 0x4] + str r2, [sp, 0x10] + str r3, [sp, 0x14] + ldr r0, [sp, 0x8] + ldr r1, [sp, 0xC] + str r0, [sp] + str r1, [sp, 0x4] + str r2, [sp, 0x8] + str r3, [sp, 0xC] +_0800A7DC: + mov r0, r8 + bl sub_800A2A0 + lsls r0, 24 + cmp r0, 0 + bne _0800A878 + movs r0, 0 + mov r9, r0 + add r7, sp, 0x10 + add r6, sp, 0x18 + b _0800A800 +_0800A7F2: + mov r0, r8 + mov r1, r8 + adds r2, r7, 0 + bl sub_800A34C + movs r2, 0x1 + add r9, r2 +_0800A800: + adds r4, r7, 0 + mov r1, r8 + adds r0, r4, 0 + mov r2, sp + bl sub_800A3F0 + adds r0, r4, 0 + bl sub_800A4A0 + ldr r0, [sp, 0x10] + str r0, [sp, 0x18] + ldr r1, [r4, 0x4] + movs r0, 0x80 + lsls r0, 11 + adds r1, r0 + adds r5, r6, 0 + str r1, [r5, 0x4] + ldr r0, [r4, 0x4] + cmp r1, r0 + bcs _0800A82E + ldr r0, [sp, 0x18] + adds r0, 0x1 + str r0, [sp, 0x18] +_0800A82E: + adds r0, r4, 0 + adds r1, r4, 0 + adds r2, r5, 0 + bl sub_800A3F0 + adds r0, r5, 0 + mov r1, sp + adds r2, r4, 0 + bl sub_800A34C + ldr r0, [sp, 0x18] + lsls r1, r0, 1 + str r1, [sp, 0x18] + ldr r0, [r5, 0x4] + cmp r0, 0 + bge _0800A854 + movs r0, 0x1 + orrs r1, r0 + str r1, [sp, 0x18] +_0800A854: + ldr r0, [r6, 0x4] + lsls r0, 1 + str r0, [r6, 0x4] + ldr r2, [sp, 0x4] + ldr r1, [sp] + ldr r0, [sp, 0x18] + adds r1, r0 + str r1, [sp] + ldr r0, [r6, 0x4] + adds r0, r2, r0 + str r0, [sp, 0x4] + cmp r2, r0 + bls _0800A872 + adds r0, r1, 0x1 + str r0, [sp] +_0800A872: + mov r2, r9 + cmp r2, 0x2 + bne _0800A7F2 +_0800A878: + ldr r0, [sp] + ldr r1, [sp, 0x4] + mov r2, r10 + str r0, [r2] + str r1, [r2, 0x4] + add sp, 0x20 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_800A78C + + thumb_func_start sub_800A894 +sub_800A894: + push {lr} + adds r2, r0, 0 + adds r0, r1, 0 + cmp r0, 0 + bgt _0800A8A0 + movs r0, 0x1 +_0800A8A0: + ldr r1, _0800A8BC + cmp r0, r1 + ble _0800A8A8 + adds r0, r1, 0 +_0800A8A8: + ldr r1, _0800A8C0 + lsls r0, 2 + adds r0, r1 + ldr r0, [r0] + str r0, [r2, 0x4] + movs r0, 0 + str r0, [r2] + pop {r0} + bx r0 + .align 2, 0 +_0800A8BC: .4byte 0x0000012b +_0800A8C0: .4byte gUnknown_80B96E4 + thumb_func_end sub_800A894 + + .align 2, 0 @ Don't pad with nop. diff --git a/asm/code_8006218.s b/asm/text.s index 86040f5..a8e6dc5 100644 --- a/asm/code_8006218.s +++ b/asm/text.s @@ -7442,2383 +7442,4 @@ _080097FC: .4byte gUnknown_8300500 _08009800: .4byte gUnknown_202D038 thumb_func_end sub_80097B0 - thumb_func_start sub_8009804 -sub_8009804: - push {lr} - movs r1, 0xC0 - lsls r1, 19 - movs r0, 0 - ldr r3, _0800987C - movs r2, 0 -_08009810: - stm r1!, {r2} - adds r0, 0x1 - cmp r0, r3 - bls _08009810 - ldr r1, _08009880 - movs r0, 0 - ldr r3, _08009884 - movs r2, 0 -_08009820: - stm r1!, {r2} - adds r0, 0x1 - cmp r0, r3 - bls _08009820 - ldr r1, _08009888 - movs r0, 0 - ldr r3, _0800988C - movs r2, 0 -_08009830: - stm r1!, {r2} - adds r0, 0x1 - cmp r0, r3 - bls _08009830 - ldr r1, _08009890 - movs r0, 0 - ldr r3, _08009894 - movs r2, 0 -_08009840: - stm r1!, {r2} - adds r0, 0x1 - cmp r0, r3 - bls _08009840 - movs r1, 0xA0 - lsls r1, 19 - movs r0, 0 - movs r2, 0 -_08009850: - stm r1!, {r2} - adds r0, 0x1 - cmp r0, 0x77 - bls _08009850 - ldr r1, _08009898 - movs r0, 0 - movs r2, 0 -_0800985E: - stm r1!, {r2} - adds r0, 0x1 - cmp r0, 0x77 - bls _0800985E - movs r1, 0xE0 - lsls r1, 19 - movs r0, 0 - ldr r2, _0800989C -_0800986E: - stm r1!, {r2} - adds r0, 0x1 - cmp r0, 0xFF - bls _0800986E - pop {r0} - bx r0 - .align 2, 0 -_0800987C: .4byte 0x000013bf -_08009880: .4byte 0x06007000 -_08009884: .4byte 0x000003ff -_08009888: .4byte 0x06008000 -_0800988C: .4byte 0x00001fff -_08009890: .4byte 0x06010000 -_08009894: .4byte 0x00001f7f -_08009898: .4byte 0x05000200 -_0800989C: .4byte 0x00a000a0 - thumb_func_end sub_8009804 - - thumb_func_start sub_80098A0 -sub_80098A0: - ldr r0, _080098B4 - movs r1, 0 - str r1, [r0] - ldr r0, _080098B8 - strb r1, [r0] - strb r1, [r0, 0x1] - strb r1, [r0, 0x2] - strb r1, [r0, 0x3] - bx lr - .align 2, 0 -_080098B4: .4byte gUnknown_202D23C -_080098B8: .4byte gUnknown_202D238 - thumb_func_end sub_80098A0 - - thumb_func_start sub_80098BC -sub_80098BC: - push {r4-r7,lr} - adds r4, r0, 0 - adds r5, r1, 0 - adds r6, r2, 0 - ldr r7, _080098F0 - ldr r3, [r7] - cmp r3, 0x7 - bgt _080098E8 - ldr r2, _080098F4 - lsls r1, r3, 1 - adds r1, r3 - lsls r1, 2 - adds r0, r1, r2 - str r4, [r0] - adds r0, r2, 0x4 - adds r0, r1, r0 - str r5, [r0] - adds r2, 0x8 - adds r1, r2 - str r6, [r1] - adds r0, r3, 0x1 - str r0, [r7] -_080098E8: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080098F0: .4byte gUnknown_202D23C -_080098F4: .4byte gUnknown_202D240 - thumb_func_end sub_80098BC - - thumb_func_start sub_80098F8 -sub_80098F8: - ldr r1, _08009904 - adds r0, r1 - movs r1, 0x1 - strb r1, [r0] - bx lr - .align 2, 0 -_08009904: .4byte gUnknown_202D238 - thumb_func_end sub_80098F8 - - thumb_func_start sub_8009908 -sub_8009908: - push {r4-r7,lr} - movs r5, 0 - ldr r0, _08009994 - ldr r0, [r0] - cmp r5, r0 - bge _08009936 - ldr r4, _08009998 - adds r7, r4, 0 - movs r6, 0 -_0800991A: - ldr r0, [r4] - adds r1, r7, 0x4 - adds r1, r6, r1 - ldr r1, [r1] - ldr r2, [r4, 0x8] - bl CpuCopy - adds r4, 0xC - adds r6, 0xC - adds r5, 0x1 - ldr r0, _08009994 - ldr r0, [r0] - cmp r5, r0 - blt _0800991A -_08009936: - ldr r0, _08009994 - movs r5, 0 - str r5, [r0] - ldr r4, _0800999C - ldrb r0, [r4] - cmp r0, 0 - beq _08009952 - strb r5, [r4] - ldr r0, _080099A0 - ldr r1, _080099A4 - movs r2, 0x80 - lsls r2, 4 - bl CpuCopy -_08009952: - ldrb r0, [r4, 0x1] - cmp r0, 0 - beq _08009966 - strb r5, [r4, 0x1] - ldr r0, _080099A8 - ldr r1, _080099AC - movs r2, 0x80 - lsls r2, 4 - bl CpuCopy -_08009966: - ldrb r0, [r4, 0x2] - cmp r0, 0 - beq _0800997A - strb r5, [r4, 0x2] - ldr r0, _080099B0 - ldr r1, _080099B4 - movs r2, 0x80 - lsls r2, 4 - bl CpuCopy -_0800997A: - ldrb r0, [r4, 0x3] - cmp r0, 0 - beq _0800998E - strb r5, [r4, 0x3] - ldr r0, _080099B8 - ldr r1, _080099BC - movs r2, 0x80 - lsls r2, 4 - bl CpuCopy -_0800998E: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08009994: .4byte gUnknown_202D23C -_08009998: .4byte gUnknown_202D240 -_0800999C: .4byte gUnknown_202D238 -_080099A0: .4byte 0x06006000 -_080099A4: .4byte gUnknown_202B038 -_080099A8: .4byte 0x06006800 -_080099AC: .4byte gUnknown_202B838 -_080099B0: .4byte 0x06007000 -_080099B4: .4byte gUnknown_202C038 -_080099B8: .4byte 0x06007800 -_080099BC: .4byte gUnknown_202C838 - thumb_func_end sub_8009908 - - thumb_func_start sub_80099C0 -sub_80099C0: - push {r4,r5,lr} - ldr r0, _080099E4 - ldr r4, _080099E8 - movs r5, 0x80 - lsls r5, 4 - adds r1, r4, 0 - adds r2, r5, 0 - bl CpuCopy - ldr r0, _080099EC - adds r4, r5 - adds r1, r4, 0 - adds r2, r5, 0 - bl CpuCopy - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080099E4: .4byte 0x06006000 -_080099E8: .4byte gUnknown_202B038 -_080099EC: .4byte 0x06006800 - thumb_func_end sub_80099C0 - - thumb_func_start sub_80099F0 -sub_80099F0: - push {lr} - adds r2, r0, 0 - ldr r0, _08009A0C - movs r1, 0x7 - movs r3, 0xE2 - lsls r3, 1 - adds r0, r3 -_080099FE: - str r2, [r0] - subs r0, 0x40 - subs r1, 0x1 - cmp r1, 0 - bge _080099FE - pop {r0} - bx r0 - .align 2, 0 -_08009A0C: .4byte gUnknown_202D038 - thumb_func_end sub_80099F0 - - thumb_func_start sub_8009A10 -sub_8009A10: - push {lr} - ldr r0, [r0, 0x4] - bl sub_8009A1C - pop {r0} - bx r0 - thumb_func_end sub_8009A10 - - thumb_func_start sub_8009A1C -sub_8009A1C: - push {r4-r6,lr} - adds r6, r0, 0 - ldr r0, _08009A30 - str r3, [r0] - ldr r3, [r6, 0xC] - movs r0, 0xC0 - lsls r0, 19 - adds r2, r0 - movs r5, 0 - b _08009A56 - .align 2, 0 -_08009A30: .4byte gUnknown_202D2A0 -_08009A34: - ldm r3!, {r0} - stm r2!, {r0} - ldm r3!, {r0} - stm r2!, {r0} - ldm r3!, {r0} - stm r2!, {r0} - ldm r3!, {r0} - stm r2!, {r0} - ldm r3!, {r0} - stm r2!, {r0} - ldm r3!, {r0} - stm r2!, {r0} - ldm r3!, {r0} - stm r2!, {r0} - ldm r3!, {r0} - stm r2!, {r0} - adds r5, 0x1 -_08009A56: - ldr r0, [r6, 0x8] - cmp r5, r0 - ble _08009A34 - movs r5, 0 - lsls r4, r1, 6 -_08009A60: - adds r0, r5, 0 - adds r0, 0xE0 - ldr r1, [r6, 0x10] - adds r1, r4 - bl SetBGPaletteBufferColorArray - adds r4, 0x4 - adds r5, 0x1 - cmp r5, 0xF - ble _08009A60 - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_8009A1C - - thumb_func_start sub_8009A7C -sub_8009A7C: - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x18 - str r0, [sp] - adds r5, r1, 0 - str r2, [sp, 0x4] - str r3, [sp, 0x8] - ldr r0, [sp, 0x38] - ldr r3, [sp, 0x40] - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _08009AB4 - ldr r1, [r0] - movs r2, 0 - str r2, [sp, 0x10] - cmp r1, 0 - bne _08009AA8 - movs r7, 0x1 - str r7, [sp, 0x10] -_08009AA8: - ldr r1, [sp] - ldr r0, [r1] - cmp r5, r0 - blt _08009AB8 - movs r0, 0 - b _08009BCE - .align 2, 0 -_08009AB4: .4byte gUnknown_202D2A0 -_08009AB8: - lsls r5, 2 - mov r8, r5 - cmp r4, 0 - beq _08009AFA - movs r0, 0 - ldr r2, _08009B74 - mov r10, r2 - ldr r4, _08009B78 - mov r9, r4 - ldr r1, [sp, 0x10] - lsls r7, r1, 1 -_08009ACE: - ldr r2, [sp, 0x10] - adds r4, r0, 0x1 - mov r12, r4 - cmp r2, 0x1D - bgt _08009AF4 - mov r6, r10 - mov r5, r9 - movs r4, 0 - lsls r0, 6 - adds r1, r7, r0 -_08009AE2: - ldr r0, [r5] - lsls r0, 11 - adds r0, r1, r0 - adds r0, r6 - strh r4, [r0] - adds r1, 0x2 - adds r2, 0x1 - cmp r2, 0x1D - ble _08009AE2 -_08009AF4: - mov r0, r12 - cmp r0, 0x13 - ble _08009ACE -_08009AFA: - ldr r7, [sp] - ldr r0, [r7, 0x4] - add r0, r8 - ldr r5, [r0] - ldrh r0, [r5, 0x4] - mov r9, r0 - ldrh r1, [r5, 0x6] - str r1, [sp, 0xC] - ldr r2, [sp, 0x3C] - cmp r2, 0 - beq _08009B14 - ldrh r0, [r5, 0x8] - str r0, [r2] -_08009B14: - cmp r3, 0 - beq _08009B28 - ldrh r0, [r5, 0xA] - strh r0, [r3] - ldrh r0, [r5, 0xC] - strh r0, [r3, 0x2] - ldrh r0, [r5, 0xE] - strh r0, [r3, 0x4] - ldrh r0, [r5, 0x10] - strh r0, [r3, 0x6] -_08009B28: - adds r5, 0x14 - ldr r4, [sp, 0x8] - str r4, [sp, 0x14] - movs r6, 0 - movs r0, 0 - ldr r7, [sp, 0xC] - cmp r0, r7 - bge _08009BC4 - cmp r4, 0x13 - bgt _08009BC4 -_08009B3C: - ldr r3, [sp, 0x4] - adds r0, 0x1 - mov r12, r0 - ldr r0, [sp, 0x14] - adds r0, 0x1 - mov r8, r0 - mov r1, r9 - cmp r1, 0 - beq _08009BB4 - ldr r2, _08009B74 - mov r10, r2 - mov r2, r9 -_08009B54: - cmp r6, 0 - bne _08009B80 - ldrh r1, [r5] - adds r5, 0x2 - adds r0, r1, 0 - movs r4, 0xF0 - lsls r4, 8 - ands r0, r4 - cmp r0, 0 - bne _08009B6E - ldr r6, _08009B7C - ands r6, r1 - movs r1, 0 -_08009B6E: - adds r4, r1, 0 - b _08009B82 - .align 2, 0 -_08009B74: .4byte gUnknown_202B038 -_08009B78: .4byte gUnknown_202D2A0 -_08009B7C: .4byte 0x000003ff -_08009B80: - movs r4, 0 -_08009B82: - cmp r6, 0 - beq _08009B88 - subs r6, 0x1 -_08009B88: - ldr r7, [sp, 0x10] - cmp r3, r7 - blt _08009BAC - cmp r3, 0x1D - bgt _08009BAC - ldr r0, [sp, 0x14] - cmp r0, 0 - blt _08009BAC - lsls r0, r3, 1 - ldr r7, [sp, 0x14] - lsls r1, r7, 6 - adds r0, r1 - ldr r7, _08009BE0 - ldr r1, [r7] - lsls r1, 11 - adds r0, r1 - add r0, r10 - strh r4, [r0] -_08009BAC: - subs r2, 0x1 - adds r3, 0x1 - cmp r2, 0 - bne _08009B54 -_08009BB4: - mov r0, r12 - mov r1, r8 - str r1, [sp, 0x14] - ldr r2, [sp, 0xC] - cmp r0, r2 - bge _08009BC4 - cmp r1, 0x13 - ble _08009B3C -_08009BC4: - ldr r4, _08009BE0 - ldr r0, [r4] - bl sub_80098F8 - movs r0, 0x1 -_08009BCE: - 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 -_08009BE0: .4byte gUnknown_202D2A0 - thumb_func_end sub_8009A7C - - thumb_func_start sub_8009BE4 -sub_8009BE4: - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - movs r0, 0x20 - mov r12, r0 - ldr r0, _08009C54 - ldr r1, [r0] - movs r2, 0 - mov r10, r2 - mov r9, r0 - cmp r1, 0 - bne _08009C04 - movs r7, 0x1 - mov r10, r7 -_08009C04: - movs r0, 0 - mov r1, r10 - lsls r1, 1 - mov r8, r1 -_08009C0C: - mov r1, r10 - adds r3, r0, 0x1 - cmp r1, r12 - bge _08009C36 - ldr r6, _08009C58 - ldr r5, _08009C54 - movs r4, 0 - lsls r0, 6 - mov r7, r8 - adds r2, r7, r0 - mov r0, r12 - subs r1, r0, r1 -_08009C24: - ldr r0, [r5] - lsls r0, 11 - adds r0, r2, r0 - adds r0, r6 - strh r4, [r0] - adds r2, 0x2 - subs r1, 0x1 - cmp r1, 0 - bne _08009C24 -_08009C36: - adds r0, r3, 0 - cmp r0, 0x1F - ble _08009C0C - mov r1, r9 - ldr r0, [r1] - bl sub_80098F8 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08009C54: .4byte gUnknown_202D2A0 -_08009C58: .4byte gUnknown_202B038 - thumb_func_end sub_8009BE4 - - thumb_func_start sub_8009C5C -sub_8009C5C: - push {lr} - adds r1, r0, 0 - cmp r1, 0xFF - ble _08009C6C - movs r1, 0x3 - bl __modsi3 - b _08009C72 -_08009C6C: - ldr r0, _08009C78 - adds r0, r1, r0 - ldrb r0, [r0] -_08009C72: - pop {r1} - bx r1 - .align 2, 0 -_08009C78: .4byte gUnknown_80B88E4 - thumb_func_end sub_8009C5C - - thumb_func_start sub_8009C7C -sub_8009C7C: - push {lr} - adds r2, r0, 0 - movs r3, 0xC0 - lsls r3, 4 - adds r1, r2, 0 - ands r1, r3 - movs r0, 0x80 - lsls r0, 3 - cmp r1, r0 - beq _08009CB8 - cmp r1, r0 - bgt _08009C9A - cmp r1, 0 - beq _08009CA8 - b _08009CFC -_08009C9A: - movs r0, 0x80 - lsls r0, 4 - cmp r1, r0 - beq _08009CD0 - cmp r1, r3 - beq _08009CE0 - b _08009CFC -_08009CA8: - ldr r0, _08009CB0 - ldr r1, _08009CB4 - ands r1, r2 - b _08009CBE - .align 2, 0 -_08009CB0: .4byte gUnknown_80B8AE4 -_08009CB4: .4byte 0x000003ff -_08009CB8: - ldr r0, _08009CC8 - ldr r1, _08009CCC - bics r1, r2 -_08009CBE: - lsls r1, 1 - adds r1, r0 - movs r2, 0 - ldrsh r0, [r1, r2] - b _08009CFE - .align 2, 0 -_08009CC8: .4byte gUnknown_80B8AE4 -_08009CCC: .4byte 0x000003ff -_08009CD0: - ldr r0, _08009CD8 - ldr r1, _08009CDC - ands r1, r2 - b _08009CE6 - .align 2, 0 -_08009CD8: .4byte gUnknown_80B8AE4 -_08009CDC: .4byte 0x000003ff -_08009CE0: - ldr r0, _08009CF4 - ldr r1, _08009CF8 - bics r1, r2 -_08009CE6: - lsls r1, 1 - adds r1, r0 - movs r2, 0 - ldrsh r0, [r1, r2] - negs r0, r0 - b _08009CFE - .align 2, 0 -_08009CF4: .4byte gUnknown_80B8AE4 -_08009CF8: .4byte 0x000003ff -_08009CFC: - movs r0, 0 -_08009CFE: - pop {r1} - bx r1 - thumb_func_end sub_8009C7C - - thumb_func_start sub_8009D04 -sub_8009D04: - push {lr} - adds r2, r0, 0 - movs r3, 0xC0 - lsls r3, 4 - adds r1, r2, 0 - ands r1, r3 - movs r0, 0x80 - lsls r0, 3 - cmp r1, r0 - beq _08009D40 - cmp r1, r0 - bgt _08009D22 - cmp r1, 0 - beq _08009D30 - b _08009D84 -_08009D22: - movs r0, 0x80 - lsls r0, 4 - cmp r1, r0 - beq _08009D50 - cmp r1, r3 - beq _08009D6C - b _08009D84 -_08009D30: - ldr r0, _08009D38 - ldr r1, _08009D3C - bics r1, r2 - b _08009D72 - .align 2, 0 -_08009D38: .4byte gUnknown_80B8AE4 -_08009D3C: .4byte 0x000003ff -_08009D40: - ldr r0, _08009D48 - ldr r1, _08009D4C - ands r1, r2 - b _08009D56 - .align 2, 0 -_08009D48: .4byte gUnknown_80B8AE4 -_08009D4C: .4byte 0x000003ff -_08009D50: - ldr r0, _08009D64 - ldr r1, _08009D68 - bics r1, r2 -_08009D56: - lsls r1, 1 - adds r1, r0 - movs r2, 0 - ldrsh r0, [r1, r2] - negs r0, r0 - b _08009D86 - .align 2, 0 -_08009D64: .4byte gUnknown_80B8AE4 -_08009D68: .4byte 0x000003ff -_08009D6C: - ldr r0, _08009D7C - ldr r1, _08009D80 - ands r1, r2 -_08009D72: - lsls r1, 1 - adds r1, r0 - movs r2, 0 - ldrsh r0, [r1, r2] - b _08009D86 - .align 2, 0 -_08009D7C: .4byte gUnknown_80B8AE4 -_08009D80: .4byte 0x000003ff -_08009D84: - movs r0, 0 -_08009D86: - pop {r1} - bx r1 - thumb_func_end sub_8009D04 - - thumb_func_start sub_8009D8C -sub_8009D8C: - push {lr} - cmp r0, r2 - bcc _08009D9A - cmp r0, r2 - bhi _08009D9E - cmp r1, r3 - bcs _08009D9E -_08009D9A: - movs r0, 0x1 - b _08009DA0 -_08009D9E: - movs r0, 0 -_08009DA0: - pop {r1} - bx r1 - thumb_func_end sub_8009D8C - - thumb_func_start sub_8009DA4 -sub_8009DA4: - push {r4,r5,lr} - lsrs r2, r0, 31 - adds r5, r2, 0 - lsrs r3, r1, 31 - adds r4, r3, 0 - cmp r0, 0 - beq _08009DB6 - cmp r1, 0 - bne _08009DBA -_08009DB6: - movs r0, 0 - b _08009DD0 -_08009DBA: - cmp r2, 0 - beq _08009DC0 - negs r0, r0 -_08009DC0: - cmp r3, 0 - beq _08009DC6 - negs r1, r1 -_08009DC6: - bl sub_8009E14 - cmp r5, r4 - beq _08009DD0 - negs r0, r0 -_08009DD0: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8009DA4 - - thumb_func_start sub_8009DD8 -sub_8009DD8: - push {r4,r5,lr} - lsrs r2, r0, 31 - adds r5, r2, 0 - lsrs r3, r1, 31 - adds r4, r3, 0 - cmp r1, 0 - bne _08009DF0 - ldr r0, _08009DEC - b _08009E0E - .align 2, 0 -_08009DEC: .4byte 0x7fffffff -_08009DF0: - cmp r0, 0 - bne _08009DF8 - movs r0, 0 - b _08009E0E -_08009DF8: - cmp r2, 0 - beq _08009DFE - negs r0, r0 -_08009DFE: - cmp r3, 0 - beq _08009E04 - negs r1, r1 -_08009E04: - bl sub_8009EA0 - cmp r5, r4 - beq _08009E0E - negs r0, r0 -_08009E0E: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8009DD8 - - thumb_func_start sub_8009E14 -sub_8009E14: - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - cmp r0, 0 - beq _08009E24 - cmp r1, 0 - bne _08009E28 -_08009E24: - movs r0, 0 - b _08009E94 -_08009E28: - movs r5, 0 - adds r3, r0, 0 - mov r12, r5 - movs r6, 0 - movs r4, 0 - movs r0, 0x80 - lsls r0, 24 - mov r8, r0 - movs r7, 0x3F - mov r9, r7 -_08009E3C: - adds r2, r4, 0 - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _08009E50 - adds r4, r3 - adds r6, r5 - cmp r2, r4 - bls _08009E50 - adds r6, 0x1 -_08009E50: - lsrs r1, 1 - movs r2, 0x1 - mov r0, r12 - ands r0, r2 - cmp r0, 0 - beq _08009E60 - mov r0, r8 - orrs r1, r0 -_08009E60: - mov r7, r12 - lsrs r7, 1 - mov r12, r7 - lsls r5, 1 - adds r0, r3, 0 - mov r7, r8 - ands r0, r7 - cmp r0, 0 - beq _08009E74 - orrs r5, r2 -_08009E74: - lsls r3, 1 - movs r0, 0x1 - negs r0, r0 - add r9, r0 - mov r7, r9 - cmp r7, 0 - bge _08009E3C - lsrs r1, r4, 7 - ands r1, r2 - lsrs r4, 8 - lsls r0, r6, 24 - orrs r4, r0 - cmp r1, 0 - beq _08009E92 - adds r4, 0x1 -_08009E92: - adds r0, r4, 0 -_08009E94: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_8009E14 - - thumb_func_start sub_8009EA0 -sub_8009EA0: - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - cmp r1, 0 - bne _08009EB8 - ldr r0, _08009EB4 - b _08009F58 - .align 2, 0 -_08009EB4: .4byte 0x7fffffff -_08009EB8: - cmp r0, 0 - bne _08009EC0 - movs r0, 0 - b _08009F58 -_08009EC0: - lsrs r7, r0, 24 - lsls r6, r0, 8 - mov r10, r1 - movs r0, 0 - mov r9, r0 - movs r5, 0 - movs r4, 0 - movs r1, 0x1 - mov r8, r1 - movs r2, 0x3F - str r2, [sp] -_08009ED6: - lsls r5, 1 - adds r0, r4, 0 - movs r1, 0x80 - lsls r1, 24 - ands r0, r1 - cmp r0, 0 - beq _08009EE8 - mov r2, r8 - orrs r5, r2 -_08009EE8: - movs r1, 0x2 - negs r1, r1 - lsls r4, 1 - adds r0, r7, 0 - movs r2, 0x80 - lsls r2, 24 - ands r0, r2 - cmp r0, 0 - beq _08009EFE - mov r0, r8 - orrs r4, r0 -_08009EFE: - lsls r7, 1 - adds r0, r6, 0 - movs r2, 0x80 - lsls r2, 24 - ands r0, r2 - cmp r0, 0 - beq _08009F10 - mov r0, r8 - orrs r7, r0 -_08009F10: - lsls r6, 1 - ands r6, r1 - adds r0, r5, 0 - adds r1, r4, 0 - movs r2, 0 - mov r3, r10 - bl sub_8009D8C - lsls r0, 24 - cmp r0, 0 - bne _08009F3A - adds r0, r4, 0 - movs r1, 0x1 - mov r2, r10 - subs r4, r2 - movs r2, 0 - subs r5, r2 - cmp r0, r4 - bcs _08009F3C - subs r5, 0x1 - b _08009F3C -_08009F3A: - movs r1, 0 -_08009F3C: - mov r0, r9 - lsls r0, 1 - mov r9, r0 - cmp r1, 0 - beq _08009F4C - mov r1, r8 - orrs r0, r1 - mov r9, r0 -_08009F4C: - ldr r2, [sp] - subs r2, 0x1 - str r2, [sp] - cmp r2, 0 - bge _08009ED6 - mov r0, r9 -_08009F58: - 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 sub_8009EA0 - - thumb_func_start sub_8009F68 -sub_8009F68: - push {r4-r7,lr} - adds r5, r0, 0 - adds r6, r1, 0 - adds r4, r6, 0 - cmp r6, 0 - bge _08009F76 - negs r4, r6 -_08009F76: - movs r7, 0x80 - lsls r7, 1 - cmp r4, 0 - beq _08009FA0 -_08009F7E: - movs r0, 0x1 - ands r0, r4 - cmp r0, 0 - beq _08009F90 - adds r0, r7, 0 - adds r1, r5, 0 - bl sub_8009DA4 - adds r7, r0, 0 -_08009F90: - adds r0, r5, 0 - adds r1, r5, 0 - bl sub_8009DA4 - adds r5, r0, 0 - asrs r4, 1 - cmp r4, 0 - bne _08009F7E -_08009FA0: - cmp r6, 0 - bge _08009FB0 - movs r0, 0x80 - lsls r0, 1 - adds r1, r7, 0 - bl sub_8009DD8 - b _08009FB2 -_08009FB0: - adds r0, r7, 0 -_08009FB2: - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_8009F68 - - thumb_func_start sub_8009FB8 -sub_8009FB8: - push {r4-r7,lr} - adds r5, r0, 0 - adds r6, r1, 0 - cmp r5, 0 - bge _08009FC4 - negs r5, r5 -_08009FC4: - cmp r6, 0 - bge _08009FCA - negs r6, r6 -_08009FCA: - cmp r5, r6 - bge _08009FD4 - adds r4, r5, 0 - adds r5, r6, 0 - adds r6, r4, 0 -_08009FD4: - cmp r6, 0 - beq _0800A016 - movs r7, 0x2 -_08009FDA: - adds r0, r6, 0 - adds r1, r5, 0 - bl sub_8009DD8 - adds r4, r0, 0 - adds r1, r4, 0 - bl sub_8009DA4 - adds r4, r0, 0 - movs r0, 0x80 - lsls r0, 3 - adds r1, r4, r0 - adds r0, r4, 0 - bl sub_8009DD8 - adds r4, r0, 0 - adds r0, r5, 0 - adds r1, r4, 0 - bl sub_8009DA4 - lsls r0, 1 - adds r5, r0 - adds r0, r6, 0 - adds r1, r4, 0 - bl sub_8009DA4 - adds r6, r0, 0 - subs r7, 0x1 - cmp r7, 0 - bge _08009FDA -_0800A016: - adds r0, r5, 0 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_8009FB8 - - thumb_func_start sub_800A020 -sub_800A020: - push {r4,lr} - adds r3, r0, 0 - ldr r4, _0800A044 - lsrs r2, r1, 16 - str r2, [r3] - lsls r0, r1, 16 - str r0, [r3, 0x4] - movs r0, 0x80 - lsls r0, 8 - ands r0, r1 - cmp r0, 0 - beq _0800A03C - orrs r2, r4 - str r2, [r3] -_0800A03C: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0800A044: .4byte 0xffff0000 - thumb_func_end sub_800A020 - - thumb_func_start sub_800A048 -sub_800A048: - push {lr} - ldrh r1, [r0] - lsls r2, r1, 16 - ldr r0, [r0, 0x4] - lsrs r1, r0, 16 - orrs r2, r1 - movs r1, 0x80 - lsls r1, 8 - ands r0, r1 - cmp r0, 0 - beq _0800A060 - adds r2, 0x1 -_0800A060: - adds r0, r2, 0 - pop {r1} - bx r1 - thumb_func_end sub_800A048 - - thumb_func_start sub_800A068 -sub_800A068: - push {lr} - ldrb r1, [r0] - lsls r2, r1, 24 - ldr r0, [r0, 0x4] - lsrs r1, r0, 8 - orrs r2, r1 - movs r1, 0x80 - lsls r1, 8 - ands r0, r1 - cmp r0, 0 - beq _0800A080 - adds r2, 0x1 -_0800A080: - adds r0, r2, 0 - pop {r1} - bx r1 - thumb_func_end sub_800A068 - - thumb_func_start sub_800A088 -sub_800A088: - push {lr} - adds r2, r0, 0 - lsls r0, r1, 8 - str r0, [r2, 0x4] - asrs r1, 24 - str r1, [r2] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _0800A0A4 - movs r0, 0x80 - negs r0, r0 - orrs r1, r0 - b _0800A0A8 -_0800A0A4: - movs r0, 0x7F - ands r1, r0 -_0800A0A8: - str r1, [r2] - pop {r0} - bx r0 - thumb_func_end sub_800A088 - - thumb_func_start sub_800A0B0 -sub_800A0B0: - push {lr} - ldr r2, [r0, 0x4] - ldr r3, [r0] - cmp r2, 0 - bne _0800A0C2 - cmp r3, 0 - bne _0800A0C2 - movs r0, 0 - b _0800A254 -_0800A0C2: - cmp r2, 0 - ble _0800A18C - cmp r3, 0 - ble _0800A124 - cmp r2, r3 - bge _0800A0F0 - asrs r1, r3, 8 - cmp r1, 0 - beq _0800A0FE - adds r0, r2, 0 - bl __divsi3 - adds r2, r0, 0 - cmp r2, 0xFF - ble _0800A0E2 - movs r2, 0xFF -_0800A0E2: - ldr r0, _0800A0EC - lsls r1, r2, 2 - adds r1, r0 - ldr r0, [r1] - b _0800A252 - .align 2, 0 -_0800A0EC: .4byte gUnknown_80B92E4 -_0800A0F0: - adds r1, r2, 0 - cmp r2, 0 - bge _0800A0F8 - adds r1, 0xFF -_0800A0F8: - asrs r1, 8 - cmp r1, 0 - bne _0800A104 -_0800A0FE: - movs r0, 0x80 - lsls r0, 2 - b _0800A254 -_0800A104: - adds r0, r3, 0 - bl __divsi3 - adds r2, r0, 0 - cmp r2, 0xFF - ble _0800A112 - movs r2, 0xFF -_0800A112: - ldr r1, _0800A120 - lsls r0, r2, 2 - adds r0, r1 - ldr r1, [r0] - movs r0, 0x40 - b _0800A250 - .align 2, 0 -_0800A120: .4byte gUnknown_80B92E4 -_0800A124: - negs r3, r3 - cmp r2, r3 - bge _0800A158 - adds r1, r3, 0 - cmp r3, 0 - bge _0800A132 - adds r1, 0xFF -_0800A132: - asrs r1, 8 - cmp r1, 0 - beq _0800A166 - adds r0, r2, 0 - bl __divsi3 - adds r2, r0, 0 - cmp r2, 0xFF - ble _0800A146 - movs r2, 0xFF -_0800A146: - ldr r1, _0800A154 - lsls r0, r2, 2 - adds r0, r1 - ldr r1, [r0] - movs r0, 0x80 - b _0800A250 - .align 2, 0 -_0800A154: .4byte gUnknown_80B92E4 -_0800A158: - adds r1, r2, 0 - cmp r2, 0 - bge _0800A160 - adds r1, 0xFF -_0800A160: - asrs r1, 8 - cmp r1, 0 - bne _0800A16C -_0800A166: - movs r0, 0xC0 - lsls r0, 3 - b _0800A254 -_0800A16C: - adds r0, r3, 0 - bl __divsi3 - adds r2, r0, 0 - cmp r2, 0xFF - ble _0800A17A - movs r2, 0xFF -_0800A17A: - ldr r0, _0800A188 - lsls r1, r2, 2 - adds r1, r0 - ldr r0, [r1] - adds r0, 0x40 - b _0800A252 - .align 2, 0 -_0800A188: .4byte gUnknown_80B92E4 -_0800A18C: - negs r2, r2 - cmp r3, 0 - ble _0800A1F0 - cmp r2, r3 - bge _0800A1BC - asrs r1, r3, 8 - cmp r1, 0 - beq _0800A1CA - adds r0, r2, 0 - bl __divsi3 - adds r2, r0, 0 - cmp r2, 0xFF - ble _0800A1AA - movs r2, 0xFF -_0800A1AA: - ldr r1, _0800A1B8 - lsls r0, r2, 2 - adds r0, r1 - ldr r1, [r0] - movs r0, 0x80 - lsls r0, 1 - b _0800A250 - .align 2, 0 -_0800A1B8: .4byte gUnknown_80B92E4 -_0800A1BC: - adds r1, r2, 0 - cmp r2, 0 - bge _0800A1C4 - adds r1, 0xFF -_0800A1C4: - asrs r1, 8 - cmp r1, 0 - bne _0800A1D0 -_0800A1CA: - movs r0, 0xE0 - lsls r0, 4 - b _0800A254 -_0800A1D0: - adds r0, r3, 0 - bl __divsi3 - adds r2, r0, 0 - cmp r2, 0xFF - ble _0800A1DE - movs r2, 0xFF -_0800A1DE: - ldr r0, _0800A1EC - lsls r1, r2, 2 - adds r1, r0 - ldr r0, [r1] - adds r0, 0xC0 - b _0800A252 - .align 2, 0 -_0800A1EC: .4byte gUnknown_80B92E4 -_0800A1F0: - negs r3, r3 - cmp r2, r3 - bge _0800A224 - adds r1, r3, 0 - cmp r3, 0 - bge _0800A1FE - adds r1, 0xFF -_0800A1FE: - asrs r1, 8 - cmp r1, 0 - beq _0800A232 - adds r0, r2, 0 - bl __divsi3 - adds r2, r0, 0 - cmp r2, 0xFF - ble _0800A212 - movs r2, 0xFF -_0800A212: - ldr r0, _0800A220 - lsls r1, r2, 2 - adds r1, r0 - ldr r0, [r1] - adds r0, 0x80 - b _0800A252 - .align 2, 0 -_0800A220: .4byte gUnknown_80B92E4 -_0800A224: - adds r0, r2, 0 - cmp r0, 0 - bge _0800A22C - adds r0, 0xFF -_0800A22C: - asrs r1, r0, 8 - cmp r1, 0 - bne _0800A238 -_0800A232: - movs r0, 0xA0 - lsls r0, 4 - b _0800A254 -_0800A238: - adds r0, r3, 0 - bl __divsi3 - adds r2, r0, 0 - cmp r2, 0xFF - ble _0800A246 - movs r2, 0xFF -_0800A246: - ldr r1, _0800A258 - lsls r0, r2, 2 - adds r0, r1 - ldr r1, [r0] - movs r0, 0xC0 -_0800A250: - subs r0, r1 -_0800A252: - lsls r0, 4 -_0800A254: - pop {r1} - bx r1 - .align 2, 0 -_0800A258: .4byte gUnknown_80B92E4 - thumb_func_end sub_800A0B0 - - thumb_func_start sub_800A25C -sub_800A25C: - push {lr} - adds r1, r0, 0 - ldr r0, [r1] - mvns r2, r0 - str r2, [r1] - ldr r0, [r1, 0x4] - mvns r0, r0 - adds r0, 0x1 - str r0, [r1, 0x4] - cmp r0, 0 - bne _0800A276 - adds r0, r2, 0x1 - str r0, [r1] -_0800A276: - pop {r0} - bx r0 - thumb_func_end sub_800A25C - - thumb_func_start sub_800A27C -sub_800A27C: - push {lr} - adds r1, r0, 0 - ldr r0, [r1] - cmp r0, 0 - bge _0800A29A - mvns r2, r0 - str r2, [r1] - ldr r0, [r1, 0x4] - mvns r0, r0 - adds r0, 0x1 - str r0, [r1, 0x4] - cmp r0, 0 - bne _0800A29A - adds r0, r2, 0x1 - str r0, [r1] -_0800A29A: - pop {r0} - bx r0 - thumb_func_end sub_800A27C - - thumb_func_start sub_800A2A0 -sub_800A2A0: - push {lr} - adds r1, r0, 0 - ldr r0, [r1] - cmp r0, 0 - bne _0800A2B4 - ldr r0, [r1, 0x4] - cmp r0, 0 - bne _0800A2B4 - movs r0, 0x1 - b _0800A2B6 -_0800A2B4: - movs r0, 0 -_0800A2B6: - pop {r1} - bx r1 - thumb_func_end sub_800A2A0 - - thumb_func_start sub_800A2BC -sub_800A2BC: - push {lr} - adds r2, r0, 0 - adds r3, r1, 0 - ldr r1, [r2] - ldr r0, [r3] - cmp r1, r0 - bne _0800A2D6 - ldr r1, [r2, 0x4] - ldr r0, [r3, 0x4] - cmp r1, r0 - bne _0800A2D6 - movs r0, 0x1 - b _0800A2D8 -_0800A2D6: - movs r0, 0 -_0800A2D8: - pop {r1} - bx r1 - thumb_func_end sub_800A2BC - - thumb_func_start sub_800A2DC -sub_800A2DC: - push {lr} - ldr r0, [r0] - cmp r0, 0 - blt _0800A2E8 - movs r0, 0 - b _0800A2EA -_0800A2E8: - movs r0, 0x1 -_0800A2EA: - pop {r1} - bx r1 - thumb_func_end sub_800A2DC - - thumb_func_start sub_800A2F0 -sub_800A2F0: - push {r4,r5,lr} - adds r3, r0, 0 - adds r2, r1, 0 - ldr r4, [r3] - lsrs r1, r4, 31 - ldr r5, [r2] - cmp r5, 0 - bge _0800A304 - movs r0, 0x2 - orrs r1, r0 -_0800A304: - cmp r1, 0x1 - beq _0800A326 - cmp r1, 0x1 - ble _0800A314 - cmp r1, 0x2 - beq _0800A32A - cmp r1, 0x3 - beq _0800A32E -_0800A314: - ldr r1, [r3, 0x4] - ldr r3, [r2, 0x4] - adds r0, r4, 0 - adds r2, r5, 0 - bl sub_8009D8C - lsls r0, 24 - lsrs r0, 24 - b _0800A346 -_0800A326: - movs r0, 0x1 - b _0800A346 -_0800A32A: - movs r0, 0 - b _0800A346 -_0800A32E: - ldr r1, [r3, 0x4] - ldr r3, [r2, 0x4] - adds r0, r4, 0 - adds r2, r5, 0 - bl sub_8009D8C - movs r1, 0 - lsls r0, 24 - cmp r0, 0 - bne _0800A344 - movs r1, 0x1 -_0800A344: - adds r0, r1, 0 -_0800A346: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_800A2F0 - - thumb_func_start sub_800A34C -sub_800A34C: - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x18 - adds r6, r0, 0 - ldr r0, [r1] - str r0, [sp] - ldr r0, [r1, 0x4] - str r0, [sp, 0x4] - ldr r0, [r2] - str r0, [sp, 0x8] - ldr r0, [r2, 0x4] - add r5, sp, 0x8 - str r0, [r5, 0x4] - mov r0, sp - bl sub_800A2DC - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - mov r10, r8 - adds r0, r5, 0 - bl sub_800A2DC - lsls r0, 24 - lsrs r7, r0, 24 - mov r9, r7 - mov r0, sp - bl sub_800A2A0 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0 - beq _0800A39A - movs r0, 0 - str r0, [r6] - b _0800A3DE -_0800A39A: - adds r0, r5, 0 - bl sub_800A2A0 - lsls r0, 24 - cmp r0, 0 - beq _0800A3AC - str r4, [r6] - str r4, [r6, 0x4] - b _0800A3E0 -_0800A3AC: - mov r0, r8 - cmp r0, 0 - beq _0800A3B8 - mov r0, sp - bl sub_800A25C -_0800A3B8: - cmp r7, 0 - beq _0800A3C2 - adds r0, r5, 0 - bl sub_800A25C -_0800A3C2: - add r4, sp, 0x10 - adds r0, r4, 0 - mov r1, sp - adds r2, r5, 0 - bl sub_800A4E4 - cmp r10, r9 - beq _0800A3D8 - adds r0, r4, 0 - bl sub_800A25C -_0800A3D8: - ldr r0, [sp, 0x10] - str r0, [r6] - ldr r0, [r4, 0x4] -_0800A3DE: - str r0, [r6, 0x4] -_0800A3E0: - add sp, 0x18 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_800A34C - - thumb_func_start sub_800A3F0 -sub_800A3F0: - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x18 - adds r6, r0, 0 - ldr r0, [r1] - str r0, [sp] - ldr r0, [r1, 0x4] - str r0, [sp, 0x4] - ldr r0, [r2] - str r0, [sp, 0x8] - ldr r0, [r2, 0x4] - add r5, sp, 0x8 - str r0, [r5, 0x4] - mov r0, sp - bl sub_800A2DC - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - mov r10, r8 - adds r0, r5, 0 - bl sub_800A2DC - lsls r0, 24 - lsrs r7, r0, 24 - mov r9, r7 - adds r0, r5, 0 - bl sub_800A2A0 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0 - beq _0800A448 - ldr r0, _0800A444 - str r0, [r6] - movs r0, 0x1 - negs r0, r0 - b _0800A48C - .align 2, 0 -_0800A444: .4byte 0x7fffffff -_0800A448: - mov r0, sp - bl sub_800A2A0 - lsls r0, 24 - cmp r0, 0 - beq _0800A45A - str r4, [r6] - str r4, [r6, 0x4] - b _0800A48E -_0800A45A: - mov r0, r8 - cmp r0, 0 - beq _0800A466 - mov r0, sp - bl sub_800A25C -_0800A466: - cmp r7, 0 - beq _0800A470 - adds r0, r5, 0 - bl sub_800A25C -_0800A470: - add r4, sp, 0x10 - adds r0, r4, 0 - mov r1, sp - adds r2, r5, 0 - bl sub_800A5A4 - cmp r10, r9 - beq _0800A486 - adds r0, r4, 0 - bl sub_800A25C -_0800A486: - ldr r0, [sp, 0x10] - str r0, [r6] - ldr r0, [r4, 0x4] -_0800A48C: - str r0, [r6, 0x4] -_0800A48E: - add sp, 0x18 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_800A3F0 - - thumb_func_start sub_800A4A0 -sub_800A4A0: - push {r4,r5,lr} - sub sp, 0x10 - adds r5, r0, 0 - ldr r0, [r5] - str r0, [sp] - ldr r0, [r5, 0x4] - str r0, [sp, 0x4] - mov r0, sp - bl sub_800A2A0 - lsls r0, 24 - cmp r0, 0 - beq _0800A4C0 - movs r0, 0 - str r0, [r5] - b _0800A4D8 -_0800A4C0: - mov r0, sp - bl sub_800A27C - add r4, sp, 0x8 - adds r0, r4, 0 - mov r1, sp - mov r2, sp - bl sub_800A4E4 - ldr r0, [sp, 0x8] - str r0, [r5] - ldr r0, [r4, 0x4] -_0800A4D8: - str r0, [r5, 0x4] - add sp, 0x10 - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_800A4A0 - - thumb_func_start sub_800A4E4 -sub_800A4E4: - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - mov r8, r0 - adds r5, r1, 0 - adds r6, r2, 0 - adds r0, r5, 0 - bl sub_800A2A0 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0 - beq _0800A50C - movs r0, 0 - mov r1, r8 - str r0, [r1] - str r0, [r1, 0x4] - b _0800A596 -_0800A50C: - adds r0, r6, 0 - bl sub_800A2A0 - lsls r0, 24 - cmp r0, 0 - beq _0800A520 - mov r7, r8 - str r4, [r7] - str r4, [r7, 0x4] - b _0800A596 -_0800A520: - ldr r1, [r5] - ldr r4, [r5, 0x4] - ldr r0, [r6] - mov r10, r0 - ldr r2, [r6, 0x4] - movs r6, 0 - movs r5, 0 - movs r7, 0x80 - lsls r7, 24 - mov r9, r7 - movs r0, 0x3F - mov r12, r0 -_0800A538: - adds r3, r5, 0 - movs r0, 0x1 - ands r0, r2 - cmp r0, 0 - beq _0800A54C - adds r5, r4 - adds r6, r1 - cmp r3, r5 - bls _0800A54C - adds r6, 0x1 -_0800A54C: - lsrs r2, 1 - movs r3, 0x1 - mov r0, r10 - ands r0, r3 - cmp r0, 0 - beq _0800A55C - mov r7, r9 - orrs r2, r7 -_0800A55C: - mov r0, r10 - lsrs r0, 1 - mov r10, r0 - lsls r1, 1 - adds r0, r4, 0 - mov r7, r9 - ands r0, r7 - cmp r0, 0 - beq _0800A570 - orrs r1, r3 -_0800A570: - lsls r4, 1 - movs r0, 0x1 - negs r0, r0 - add r12, r0 - mov r7, r12 - cmp r7, 0 - bge _0800A538 - lsrs r1, r5, 15 - ands r1, r3 - lsrs r5, 16 - lsls r0, r6, 16 - orrs r5, r0 - lsrs r6, 16 - cmp r1, 0 - beq _0800A590 - adds r5, 0x1 -_0800A590: - mov r0, r8 - str r6, [r0] - str r5, [r0, 0x4] -_0800A596: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_800A4E4 - - thumb_func_start sub_800A5A4 -sub_800A5A4: - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x14 - str r0, [sp] - adds r5, r1, 0 - mov r8, r2 - mov r0, r8 - bl sub_800A2A0 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0 - beq _0800A5D8 - ldr r0, _0800A5D4 - ldr r1, [sp] - str r0, [r1] - movs r0, 0x1 - negs r0, r0 - str r0, [r1, 0x4] - b _0800A6BE - .align 2, 0 -_0800A5D4: .4byte 0x7fffffff -_0800A5D8: - adds r0, r5, 0 - bl sub_800A2A0 - lsls r0, 24 - cmp r0, 0 - beq _0800A5EC - ldr r2, [sp] - str r4, [r2] - str r4, [r2, 0x4] - b _0800A6BE -_0800A5EC: - ldr r0, [r5] - lsls r7, r0, 16 - ldr r1, [r5, 0x4] - lsrs r0, r1, 16 - orrs r7, r0 - lsls r6, r1, 16 - movs r0, 0x80 - lsls r0, 8 - orrs r6, r0 - mov r0, r8 - ldr r0, [r0] - str r0, [sp, 0x4] - mov r1, r8 - ldr r1, [r1, 0x4] - str r1, [sp, 0x8] - movs r2, 0 - str r2, [sp, 0xC] - mov r9, r2 - movs r5, 0 - movs r4, 0 - movs r0, 0x80 - lsls r0, 24 - mov r10, r0 - movs r1, 0x1 - mov r8, r1 - movs r2, 0x3F - str r2, [sp, 0x10] -_0800A622: - lsls r5, 1 - adds r0, r4, 0 - mov r1, r10 - ands r0, r1 - cmp r0, 0 - beq _0800A632 - mov r2, r8 - orrs r5, r2 -_0800A632: - movs r1, 0x2 - negs r1, r1 - lsls r4, 1 - adds r0, r7, 0 - mov r2, r10 - ands r0, r2 - cmp r0, 0 - beq _0800A646 - mov r0, r8 - orrs r4, r0 -_0800A646: - lsls r7, 1 - adds r0, r6, 0 - mov r2, r10 - ands r0, r2 - cmp r0, 0 - beq _0800A656 - mov r0, r8 - orrs r7, r0 -_0800A656: - lsls r6, 1 - ands r6, r1 - adds r0, r5, 0 - adds r1, r4, 0 - ldr r2, [sp, 0x4] - ldr r3, [sp, 0x8] - bl sub_8009D8C - lsls r0, 24 - cmp r0, 0 - bne _0800A680 - adds r0, r4, 0 - movs r1, 0x1 - ldr r2, [sp, 0x8] - subs r4, r2 - ldr r2, [sp, 0x4] - subs r5, r2 - cmp r0, r4 - bcs _0800A682 - subs r5, 0x1 - b _0800A682 -_0800A680: - movs r1, 0 -_0800A682: - ldr r0, [sp, 0xC] - lsls r0, 1 - str r0, [sp, 0xC] - mov r0, r9 - mov r2, r10 - ands r0, r2 - cmp r0, 0 - beq _0800A69A - ldr r0, [sp, 0xC] - mov r2, r8 - orrs r0, r2 - str r0, [sp, 0xC] -_0800A69A: - mov r0, r9 - lsls r0, 1 - mov r9, r0 - cmp r1, 0 - beq _0800A6AA - mov r1, r8 - orrs r0, r1 - mov r9, r0 -_0800A6AA: - ldr r2, [sp, 0x10] - subs r2, 0x1 - str r2, [sp, 0x10] - cmp r2, 0 - bge _0800A622 - ldr r0, [sp, 0xC] - ldr r1, [sp] - str r0, [r1] - mov r2, r9 - str r2, [r1, 0x4] -_0800A6BE: - add sp, 0x14 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_800A5A4 - - thumb_func_start sub_800A6D0 -sub_800A6D0: - push {r4,lr} - adds r4, r0, 0 - ldr r3, [r1] - ldr r0, [r2] - adds r3, r0 - ldr r1, [r1, 0x4] - ldr r0, [r2, 0x4] - adds r0, r1, r0 - cmp r0, r1 - bcs _0800A6E6 - adds r3, 0x1 -_0800A6E6: - str r3, [r4] - str r0, [r4, 0x4] - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_800A6D0 - - thumb_func_start sub_800A6F0 -sub_800A6F0: - push {r4,lr} - adds r4, r0, 0 - ldr r3, [r1] - ldr r0, [r2] - subs r3, r0 - ldr r1, [r1, 0x4] - ldr r0, [r2, 0x4] - subs r0, r1, r0 - cmp r0, r1 - bls _0800A706 - subs r3, 0x1 -_0800A706: - str r3, [r4] - str r0, [r4, 0x4] - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_800A6F0 - - thumb_func_start sub_800A710 -sub_800A710: - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x18 - mov r8, r0 - adds r6, r2, 0 - ldr r0, [r1] - str r0, [sp] - ldr r0, [r1, 0x4] - str r0, [sp, 0x4] - adds r4, r6, 0 - cmp r6, 0 - bge _0800A72C - negs r4, r6 -_0800A72C: - movs r0, 0 - str r0, [sp, 0x8] - movs r1, 0x80 - lsls r1, 9 - add r0, sp, 0x8 - str r1, [r0, 0x4] - adds r7, r0, 0 - cmp r4, 0 - beq _0800A75E - adds r5, r7, 0 -_0800A740: - movs r0, 0x1 - ands r0, r4 - cmp r0, 0 - beq _0800A752 - adds r0, r5, 0 - adds r1, r5, 0 - mov r2, sp - bl sub_800A34C -_0800A752: - mov r0, sp - bl sub_800A4A0 - asrs r4, 1 - cmp r4, 0 - bne _0800A740 -_0800A75E: - cmp r6, 0 - bge _0800A776 - movs r0, 0 - str r0, [sp, 0x10] - movs r0, 0x80 - lsls r0, 9 - add r1, sp, 0x10 - str r0, [r1, 0x4] - adds r0, r7, 0 - adds r2, r7, 0 - bl sub_800A3F0 -_0800A776: - ldr r0, [sp, 0x8] - mov r1, r8 - str r0, [r1] - ldr r0, [r7, 0x4] - str r0, [r1, 0x4] - add sp, 0x18 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_800A710 - - thumb_func_start sub_800A78C -sub_800A78C: - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x20 - mov r10, r0 - ldr r0, [r1] - ldr r1, [r1, 0x4] - str r0, [sp] - str r1, [sp, 0x4] - ldr r0, [r2] - ldr r1, [r2, 0x4] - str r0, [sp, 0x8] - str r1, [sp, 0xC] - mov r0, sp - bl sub_800A27C - add r4, sp, 0x8 - adds r0, r4, 0 - bl sub_800A27C - mov r0, sp - adds r1, r4, 0 - bl sub_800A2F0 - lsls r0, 24 - mov r8, r4 - cmp r0, 0 - beq _0800A7DC - ldr r2, [sp] - ldr r3, [sp, 0x4] - str r2, [sp, 0x10] - str r3, [sp, 0x14] - ldr r0, [sp, 0x8] - ldr r1, [sp, 0xC] - str r0, [sp] - str r1, [sp, 0x4] - str r2, [sp, 0x8] - str r3, [sp, 0xC] -_0800A7DC: - mov r0, r8 - bl sub_800A2A0 - lsls r0, 24 - cmp r0, 0 - bne _0800A878 - movs r0, 0 - mov r9, r0 - add r7, sp, 0x10 - add r6, sp, 0x18 - b _0800A800 -_0800A7F2: - mov r0, r8 - mov r1, r8 - adds r2, r7, 0 - bl sub_800A34C - movs r2, 0x1 - add r9, r2 -_0800A800: - adds r4, r7, 0 - mov r1, r8 - adds r0, r4, 0 - mov r2, sp - bl sub_800A3F0 - adds r0, r4, 0 - bl sub_800A4A0 - ldr r0, [sp, 0x10] - str r0, [sp, 0x18] - ldr r1, [r4, 0x4] - movs r0, 0x80 - lsls r0, 11 - adds r1, r0 - adds r5, r6, 0 - str r1, [r5, 0x4] - ldr r0, [r4, 0x4] - cmp r1, r0 - bcs _0800A82E - ldr r0, [sp, 0x18] - adds r0, 0x1 - str r0, [sp, 0x18] -_0800A82E: - adds r0, r4, 0 - adds r1, r4, 0 - adds r2, r5, 0 - bl sub_800A3F0 - adds r0, r5, 0 - mov r1, sp - adds r2, r4, 0 - bl sub_800A34C - ldr r0, [sp, 0x18] - lsls r1, r0, 1 - str r1, [sp, 0x18] - ldr r0, [r5, 0x4] - cmp r0, 0 - bge _0800A854 - movs r0, 0x1 - orrs r1, r0 - str r1, [sp, 0x18] -_0800A854: - ldr r0, [r6, 0x4] - lsls r0, 1 - str r0, [r6, 0x4] - ldr r2, [sp, 0x4] - ldr r1, [sp] - ldr r0, [sp, 0x18] - adds r1, r0 - str r1, [sp] - ldr r0, [r6, 0x4] - adds r0, r2, r0 - str r0, [sp, 0x4] - cmp r2, r0 - bls _0800A872 - adds r0, r1, 0x1 - str r0, [sp] -_0800A872: - mov r2, r9 - cmp r2, 0x2 - bne _0800A7F2 -_0800A878: - ldr r0, [sp] - ldr r1, [sp, 0x4] - mov r2, r10 - str r0, [r2] - str r1, [r2, 0x4] - add sp, 0x20 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_800A78C - - thumb_func_start sub_800A894 -sub_800A894: - push {lr} - adds r2, r0, 0 - adds r0, r1, 0 - cmp r0, 0 - bgt _0800A8A0 - movs r0, 0x1 -_0800A8A0: - ldr r1, _0800A8BC - cmp r0, r1 - ble _0800A8A8 - adds r0, r1, 0 -_0800A8A8: - ldr r1, _0800A8C0 - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - str r0, [r2, 0x4] - movs r0, 0 - str r0, [r2] - pop {r0} - bx r0 - .align 2, 0 -_0800A8BC: .4byte 0x0000012b -_0800A8C0: .4byte gUnknown_80B96E4 - thumb_func_end sub_800A894 - .align 2, 0 @ Don't pad with nop. diff --git a/ld_script.txt b/ld_script.txt index 451c221..a350be7 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -44,7 +44,8 @@ SECTIONS { asm/bg_palette_buffer.o(.text); asm/code_80047E8.o(.text); src/random.o(.text); - asm/code_8006218.o(.text); + asm/text.o(.text); + asm/code_8009804.o(.text); asm/file_system.o(.text); asm/code_800AAA0.o(.text); src/main.o(.text); |