.include "constants/gba_constants.inc" .include "asm/macros.inc" .syntax unified .text thumb_func_start sub_8006218 sub_8006218: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} ldr r1, _080062F4 movs r0, 0 str r0, [r1] ldr r0, _080062F8 ldr r5, _080062FC adds r1, r5, 0 bl OpenFileAndGetFileDataPtr ldr r4, _08006300 str r0, [r4] ldr r0, _08006304 adds r1, r5, 0 bl OpenFileAndGetFileDataPtr str r0, [r4, 0x4] ldr r2, _08006308 ldr r1, [r4] ldr r1, [r1, 0x4] str r1, [r2] ldr r0, [r0, 0x4] str r0, [r2, 0x4] ldr r1, _0800630C movs r0, 0xB str r0, [r1] movs r0, 0xC str r0, [r1, 0x4] ldr r0, _08006310 movs r4, 0 movs r3, 0 adds r2, r0, 0 adds r2, 0x46 adds r0, 0x4 movs r1, 0x3 _08006264: strh r3, [r0] strh r3, [r0, 0x4] strb r4, [r2] adds r2, 0x48 adds r0, 0x48 subs r1, 0x1 cmp r1, 0 bge _08006264 ldr r1, _08006314 movs r0, 0 strh r0, [r1] movs r3, 0 ldr r0, _08006318 mov r9, r0 ldr r1, _0800631C mov r10, r1 ldr r7, _08006320 ldr r2, _08006324 mov r8, r2 movs r0, 0x80 lsls r0, 4 adds r6, r7, r0 ldr r4, _08006328 movs r5, 0 mov r12, r6 _08006296: lsls r0, r3, 6 adds r2, r0, r7 mov r1, r8 strh r1, [r2] adds r1, r0, r6 strh r4, [r1] adds r3, 0x1 add r0, r12 adds r0, 0x2 adds r2, 0x2 movs r1, 0x1E _080062AC: strh r5, [r2] strh r4, [r0] adds r0, 0x2 adds r2, 0x2 subs r1, 0x1 cmp r1, 0 bge _080062AC cmp r3, 0x13 ble _08006296 movs r1, 0 movs r0, 0x1 mov r2, r9 strb r0, [r2] ldr r0, _0800632C mov r2, r10 str r0, [r2] ldr r0, _08006330 str r1, [r0] ldr r2, _08006334 strb r1, [r2] movs r0, 0x1 ldr r1, _08006338 str r0, [r1] movs r0, 0x14 ldr r2, _0800633C str r0, [r2] movs r0, 0 bl xxx_update_some_bg_tiles pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080062F4: .4byte gUnknown_20274AC _080062F8: .4byte gUnknown_80B87B4 _080062FC: .4byte gUnknown_8300500 _08006300: .4byte gUnknown_202AFB4 _08006304: .4byte gUnknown_80B87BC _08006308: .4byte gUnknown_2027490 _0800630C: .4byte gUnknown_202B028 _08006310: .4byte gUnknown_2027370 _08006314: .4byte gUnknown_2027498 _08006318: .4byte gUnknown_202B034 _0800631C: .4byte gUnknown_202B030 _08006320: .4byte gUnknown_202B038 _08006324: .4byte 0x0000f279 _08006328: .4byte 0x0000f27a _0800632C: .4byte 0x88888888 _08006330: .4byte gUnknown_203B078 _08006334: .4byte gUnknown_20274A5 _08006338: .4byte gUnknown_202B020 _0800633C: .4byte gUnknown_202B024 thumb_func_end sub_8006218 thumb_func_start xxx_update_some_bg_tiles xxx_update_some_bg_tiles: push {r4,r5,lr} adds r1, r0, 0 ldr r0, _08006360 ldr r5, [r0] ldr r4, _08006364 str r1, [r0] cmp r1, 0 beq _08006354 cmp r1, 0x2 bne _0800636C _08006354: movs r0, 0x2 bl sub_800CDA8 ldr r2, _08006368 b _08006374 .align 2, 0 _08006360: .4byte gUnknown_20274B0 _08006364: .4byte 0x06004f40 _08006368: .4byte gUnknown_80B87C4 _0800636C: movs r0, 0x1 bl sub_800CDA8 ldr r2, _080063A4 _08006374: ldr r1, _080063A8 ldr r0, _080063AC str r0, [r1] ldm r2!, {r0} stm r4!, {r0} ldm r2!, {r0} stm r4!, {r0} ldm r2!, {r0} stm r4!, {r0} ldm r2!, {r0} stm r4!, {r0} ldm r2!, {r0} stm r4!, {r0} ldm r2!, {r0} stm r4!, {r0} ldm r2!, {r0} stm r4!, {r0} ldr r0, [r2] str r0, [r4] adds r0, r5, 0 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _080063A4: .4byte gUnknown_80B87E4 _080063A8: .4byte gUnknown_202B030 _080063AC: .4byte 0x88888888 thumb_func_end xxx_update_some_bg_tiles thumb_func_start sub_80063B0 sub_80063B0: ldr r0, _080063B8 ldr r0, [r0] bx lr .align 2, 0 _080063B8: .4byte gUnknown_20274B0 thumb_func_end sub_80063B0 thumb_func_start sub_80063BC sub_80063BC: ldr r1, _080063C8 ldrb r2, [r1] strb r0, [r1] adds r0, r2, 0 bx lr .align 2, 0 _080063C8: .4byte gUnknown_202B034 thumb_func_end sub_80063BC thumb_func_start sub_80063CC sub_80063CC: ldr r1, _080063D4 str r0, [r1] bx lr .align 2, 0 _080063D4: .4byte gUnknown_20274AC thumb_func_end sub_80063CC thumb_func_start sub_80063D8 sub_80063D8: push {lr} adds r1, r0, 0 cmp r1, 0 bne _080063F0 ldr r0, _080063E8 ldr r0, [r0] ldr r2, _080063EC b _08006410 .align 2, 0 _080063E8: .4byte gUnknown_20274B0 _080063EC: .4byte 0x88888888 _080063F0: movs r0, 0xF ands r0, r1 lsls r2, r0, 4 orrs r2, r0 lsls r1, r0, 8 orrs r2, r1 lsls r1, r0, 12 orrs r2, r1 lsls r1, r0, 16 orrs r2, r1 lsls r1, r0, 20 orrs r2, r1 lsls r1, r0, 24 orrs r2, r1 lsls r0, 28 orrs r2, r0 _08006410: ldr r0, _08006418 str r2, [r0] pop {r0} bx r0 .align 2, 0 _08006418: .4byte gUnknown_202B030 thumb_func_end sub_80063D8 thumb_func_start sub_800641C sub_800641C: push {lr} sub sp, 0x4 lsls r1, 24 lsrs r1, 24 lsls r2, 24 lsrs r2, 24 movs r3, 0 str r3, [sp] mov r3, sp bl sub_8006438 add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_800641C thumb_func_start sub_8006438 sub_8006438: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x1C adds r4, r0, 0 mov r8, r3 lsls r1, 24 lsrs r1, 24 mov r10, r1 lsls r2, 24 lsrs r2, 24 movs r0, 0x2 mov r9, r0 cmp r4, 0 bne _0800645C ldr r4, _080064F0 _0800645C: cmp r2, 0 beq _08006464 bl sub_8009388 _08006464: bl sub_800898C movs r6, 0 adds r5, r4, 0 adds r5, 0xC ldr r1, _080064F4 str r1, [sp, 0x18] _08006472: ldr r0, [sp, 0x18] adds r1, r4, 0 ldm r1!, {r2,r3,r7} stm r0!, {r2,r3,r7} ldm r1!, {r2,r3,r7} stm r0!, {r2,r3,r7} movs r1, 0 ldrsh r0, [r5, r1] cmp r0, 0 beq _080064C4 ldr r1, _080064F8 lsls r0, r6, 2 adds r0, r1 ldr r0, [r0] str r0, [sp] str r4, [sp, 0x4] mov r2, r10 str r2, [sp, 0x8] mov r3, r9 str r3, [sp, 0xC] mov r7, r8 str r7, [sp, 0x10] movs r0, 0 str r0, [sp, 0x14] ldr r0, _080064FC movs r1, 0xC0 lsls r1, 19 ldr r2, _08006500 ldr r3, _08006504 bl sub_8006554 adds r0, r4, 0 mov r1, r8 bl sub_80089AC movs r0, 0 ldrsh r1, [r5, r0] movs r2, 0x4 ldrsh r0, [r5, r2] muls r0, r1 add r9, r0 _080064C4: adds r5, 0x18 adds r4, 0x18 ldr r3, [sp, 0x18] adds r3, 0x18 str r3, [sp, 0x18] adds r6, 0x1 cmp r6, 0x3 ble _08006472 ldr r2, _08006508 ldr r0, _0800650C ldr r1, _08006510 str r0, [r2] movs r0, 0x1 strb r0, [r1] add sp, 0x1C pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080064F0: .4byte gUnknown_80B857C _080064F4: .4byte gUnknown_202AFC0 _080064F8: .4byte gUnknown_80B8804 _080064FC: .4byte gUnknown_2027370 _08006500: .4byte gUnknown_20274B4 _08006504: .4byte gUnknown_202B038 _08006508: .4byte gUnknown_203B078 _0800650C: .4byte gUnknown_3000E94 _08006510: .4byte gUnknown_20274A5 thumb_func_end sub_8006438 thumb_func_start nullsub_152 nullsub_152: bx lr thumb_func_end nullsub_152 thumb_func_start sub_8006518 sub_8006518: push {r4-r7,lr} ldr r4, _0800653C adds r2, r0, 0 movs r3, 0x3 _08006520: adds r1, r2, 0 adds r0, r4, 0 ldm r0!, {r5-r7} stm r1!, {r5-r7} ldm r0!, {r5-r7} stm r1!, {r5-r7} adds r4, 0x18 adds r2, 0x18 subs r3, 0x1 cmp r3, 0 bge _08006520 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0800653C: .4byte gUnknown_202AFC0 thumb_func_end sub_8006518 thumb_func_start nullsub_153 nullsub_153: bx lr thumb_func_end nullsub_153 thumb_func_start sub_8006544 sub_8006544: ldr r1, _08006550 lsls r0, 2 adds r0, r1 ldr r0, [r0] bx lr .align 2, 0 _08006550: .4byte gUnknown_80B8814 thumb_func_end sub_8006544 thumb_func_start sub_8006554 sub_8006554: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x24 str r0, [sp, 0x4] adds r7, r1, 0 adds r6, r2, 0 str r3, [sp, 0x8] ldr r1, [sp, 0x4C] ldr r3, [sp, 0x50] ldr r2, [sp, 0x54] ldr r0, [sp, 0x58] lsls r1, 24 lsrs r1, 24 str r1, [sp, 0xC] lsls r0, 24 lsrs r0, 24 str r0, [sp, 0x10] ldr r1, [sp, 0x44] lsls r0, r1, 3 adds r0, r1 lsls r0, 3 ldr r4, [sp, 0x4] adds r5, r4, r0 ldr r0, [sp, 0x48] movs r4, 0x8 ldrsh r1, [r0, r4] movs r4, 0 ldrsh r0, [r2, r4] adds r1, r0 str r1, [sp, 0x14] ldr r0, [sp, 0x48] movs r4, 0xA ldrsh r1, [r0, r4] movs r4, 0x2 ldrsh r0, [r2, r4] adds r4, r1, r0 mov r0, sp ldrh r0, [r0, 0x14] strh r0, [r5] strh r4, [r5, 0x2] ldr r1, [sp, 0x48] ldrh r0, [r1, 0xC] strh r0, [r5, 0x4] ldrh r0, [r1, 0x10] strh r0, [r5, 0x8] ldrh r0, [r1, 0xE] strh r0, [r5, 0x6] ldr r0, [r1, 0x4] str r0, [r5, 0xC] str r3, [r5, 0x10] cmp r0, 0x6 bne _080065C6 str r3, [r5, 0x14] b _080065D6 _080065C6: ldr r2, [sp, 0x48] movs r0, 0x12 ldrsh r1, [r2, r0] movs r2, 0x4 ldrsh r0, [r5, r2] muls r0, r1 adds r0, r3, r0 str r0, [r5, 0x14] _080065D6: ldr r0, [r5, 0x10] lsls r0, 5 adds r0, r6, r0 str r0, [r5, 0x18] ldr r0, [r5, 0x14] lsls r0, 5 adds r1, r6, r0 str r1, [r5, 0x1C] ldr r3, [sp, 0x48] movs r6, 0x12 ldrsh r1, [r3, r6] str r1, [r5, 0x24] adds r0, r7, r0 str r0, [r5, 0x28] ldr r3, [r5, 0xC] cmp r3, 0x6 bne _0800660C movs r7, 0x4 ldrsh r2, [r5, r7] movs r1, 0x6 ldrsh r0, [r5, r1] ldr r6, [sp, 0x48] movs r7, 0x12 ldrsh r1, [r6, r7] adds r0, r1 muls r0, r2 b _08006616 _0800660C: movs r0, 0x4 ldrsh r1, [r5, r0] movs r2, 0x6 ldrsh r0, [r5, r2] muls r0, r1 _08006616: lsls r0, 5 str r0, [r5, 0x2C] movs r0, 0 str r0, [r5, 0x30] str r0, [r5, 0x34] str r0, [r5, 0x38] movs r6, 0x4 ldrsh r0, [r5, r6] lsls r0, 3 subs r0, 0x8 str r0, [r5, 0x20] movs r1, 0 cmp r3, 0 bne _08006634 movs r1, 0x1 _08006634: adds r0, r5, 0 adds r0, 0x45 strb r1, [r0] movs r7, 0x8 ldrsh r0, [r5, r7] cmp r0, 0 bne _08006644 b _0800676C _08006644: ldr r0, [sp, 0x48] ldrb r1, [r0] movs r0, 0xA0 ands r0, r1 adds r1, r5, 0 adds r1, 0x46 str r1, [sp, 0x1C] cmp r0, 0x80 beq _08006752 subs r7, r4, 0x1 ldr r0, [r5, 0xC] cmp r0, 0x6 bne _080066A8 movs r2, 0 mov r8, r2 ldr r3, [sp, 0xC] cmp r3, 0 beq _0800666C ldr r6, [r5, 0x14] mov r8, r6 _0800666C: ldr r0, [sp, 0x48] ldr r3, [r0, 0x14] ldr r1, [sp, 0x8] str r1, [sp] adds r0, r5, 0 adds r1, r7, 0 mov r2, r8 bl sub_8006E94 adds r7, r4, 0x2 ldr r2, [sp, 0xC] cmp r2, 0 beq _0800669A movs r3, 0x4 ldrsh r1, [r5, r3] ldr r4, [sp, 0x48] movs r6, 0x12 ldrsh r0, [r4, r6] adds r0, 0x2 muls r1, r0 ldr r0, [r5, 0x14] adds r0, r1 b _0800669C _0800669A: movs r0, 0 _0800669C: mov r8, r0 movs r1, 0x6 ldrsh r0, [r5, r1] subs r0, 0x2 str r0, [sp, 0x18] b _080066CA _080066A8: adds r0, r5, 0 adds r1, r7, 0 ldr r2, [sp, 0x8] ldr r3, [sp, 0x10] bl sub_800677C adds r7, r4, 0 movs r2, 0 mov r8, r2 ldr r3, [sp, 0xC] cmp r3, 0 beq _080066C4 ldr r4, [r5, 0x14] mov r8, r4 _080066C4: movs r0, 0x6 ldrsh r6, [r5, r0] str r6, [sp, 0x18] _080066CA: movs r1, 0 mov r9, r1 adds r2, r5, 0 adds r2, 0x46 str r2, [sp, 0x1C] ldr r3, [sp, 0x18] cmp r9, r3 bge _08006746 _080066DA: ldr r4, [sp, 0x14] subs r4, 0x1 ldr r6, [sp, 0x8] str r6, [sp] adds r0, r5, 0 adds r1, r4, 0 adds r2, r7, 0 mov r3, r9 bl sub_80069CC ldr r4, [sp, 0x14] movs r6, 0 movs r1, 0x4 ldrsh r0, [r5, r1] adds r2, r7, 0x1 mov r10, r2 mov r3, r9 adds r3, 0x1 str r3, [sp, 0x20] cmp r6, r0 bge _0800672A _08006704: ldr r0, [sp, 0x8] str r0, [sp] adds r0, r5, 0 adds r1, r4, 0 adds r2, r7, 0 mov r3, r8 bl sub_8006AC4 adds r4, 0x1 ldr r1, [sp, 0xC] cmp r1, 0 beq _08006720 movs r2, 0x1 add r8, r2 _08006720: adds r6, 0x1 movs r3, 0x4 ldrsh r0, [r5, r3] cmp r6, r0 blt _08006704 _0800672A: ldr r6, [sp, 0x8] str r6, [sp] adds r0, r5, 0 adds r1, r4, 0 adds r2, r7, 0 mov r3, r9 bl sub_8006B70 mov r7, r10 ldr r0, [sp, 0x20] mov r9, r0 ldr r1, [sp, 0x18] cmp r9, r1 blt _080066DA _08006746: adds r0, r5, 0 adds r1, r7, 0 ldr r2, [sp, 0x8] ldr r3, [sp, 0x10] bl sub_8006C44 _08006752: ldr r2, [sp, 0x48] ldrb r1, [r2] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _08006766 ldr r0, [sp, 0x4] ldr r1, [sp, 0x44] bl sub_8008C6C _08006766: movs r0, 0 ldr r3, [sp, 0x1C] strb r0, [r3] _0800676C: add sp, 0x24 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8006554 thumb_func_start sub_800677C sub_800677C: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x4 adds r6, r0, 0 adds r4, r1, 0 str r2, [sp] lsls r3, 24 lsrs r3, 24 mov r9, r3 movs r1, 0 ldrsh r0, [r6, r1] subs r3, r0, 0x1 cmp r4, 0x1C ble _080067A0 b _080069AE _080067A0: cmp r4, 0 bge _080067A6 b _080069AE _080067A6: ldr r0, [r6, 0xC] cmp r0, 0x7 bls _080067AE b _080069AE _080067AE: lsls r0, 2 ldr r1, _080067B8 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080067B8: .4byte _080067BC .align 2, 0 _080067BC: .4byte _080069AE .4byte _080069AE .4byte _080069AE .4byte _080067DC .4byte _0800689C .4byte _08006920 .4byte _080069AE .4byte _0800696C _080067DC: lsls r1, r3, 1 lsls r2, r4, 6 ldr r4, [sp] adds r0, r2, r4 adds r1, r0 ldr r7, _08006800 adds r0, r7, 0 strh r0, [r1] adds r5, r2, 0 mov r0, r9 cmp r0, 0 beq _08006808 movs r2, 0x80 lsls r2, 4 adds r1, r2 ldr r4, _08006804 adds r0, r4, 0 b _08006812 .align 2, 0 _08006800: .4byte 0x0000f2d8 _08006804: .4byte 0x0000f293 _08006808: movs r7, 0x80 lsls r7, 4 adds r1, r7 ldr r2, _08006878 adds r0, r2, 0 _08006812: strh r0, [r1] adds r3, 0x1 movs r4, 0 movs r7, 0x4 ldrsh r0, [r6, r7] cmp r4, r0 bge _08006856 ldr r0, _0800687C mov r8, r0 lsls r0, r3, 1 ldr r2, [sp] movs r7, 0x80 lsls r7, 4 adds r1, r2, r7 adds r1, r5, r1 adds r2, r0, r1 ldr r7, [sp] adds r1, r5, r7 adds r1, r0, r1 ldr r0, _08006878 mov r12, r0 _0800683C: mov r7, r8 strh r7, [r1] mov r0, r12 strh r0, [r2] adds r2, 0x2 adds r1, 0x2 adds r3, 0x1 adds r4, 0x1 movs r0, 0x4 ldrsh r7, [r6, r0] mov r10, r7 cmp r4, r10 blt _0800683C _08006856: lsls r0, r3, 1 ldr r2, [sp] adds r1, r5, r2 adds r1, r0, r1 ldr r4, _08006880 adds r0, r4, 0 strh r0, [r1] mov r7, r9 cmp r7, 0 beq _08006888 movs r0, 0x80 lsls r0, 4 adds r1, r0 ldr r2, _08006884 adds r0, r2, 0 strh r0, [r1] b _080069AE .align 2, 0 _08006878: .4byte 0x0000f2db _0800687C: .4byte 0x0000f2d9 _08006880: .4byte 0x0000f6d8 _08006884: .4byte 0x0000f693 _08006888: movs r4, 0x80 lsls r4, 4 adds r1, r4 ldr r7, _08006898 adds r0, r7, 0 strh r0, [r1] b _080069AE .align 2, 0 _08006898: .4byte 0x0000f2db _0800689C: lsls r1, r3, 1 lsls r2, r4, 6 ldr r0, [sp] adds r0, r2 mov r12, r0 add r1, r12 ldr r4, _08006910 adds r0, r4, 0 strh r0, [r1] movs r7, 0x80 lsls r7, 4 mov r8, r7 add r1, r8 ldr r0, _08006914 mov r9, r0 strh r0, [r1] adds r3, 0x1 movs r4, 0 movs r1, 0x4 ldrsh r0, [r6, r1] adds r5, r2, 0 cmp r4, r0 bge _080068F6 ldr r2, _08006918 mov r10, r2 lsls r1, r3, 1 ldr r0, [sp] add r0, r8 adds r0, r5, r0 adds r2, r1, r0 add r1, r12 mov r12, r9 _080068DC: mov r7, r10 strh r7, [r1] mov r0, r12 strh r0, [r2] adds r2, 0x2 adds r1, 0x2 adds r3, 0x1 adds r4, 0x1 movs r0, 0x4 ldrsh r7, [r6, r0] mov r8, r7 cmp r4, r8 blt _080068DC _080068F6: lsls r0, r3, 1 ldr r2, [sp] adds r1, r5, r2 adds r0, r1 ldr r4, _0800691C adds r1, r4, 0 strh r1, [r0] movs r7, 0x80 lsls r7, 4 adds r0, r7 ldr r2, _08006914 adds r1, r2, 0 b _080069AC .align 2, 0 _08006910: .4byte 0x0000f2e8 _08006914: .4byte 0x0000f2db _08006918: .4byte 0x0000f2e9 _0800691C: .4byte 0x0000f6e8 _08006920: lsls r0, r3, 1 lsls r2, r4, 6 ldr r4, [sp] adds r4, r2 mov r12, r4 add r0, r12 ldr r7, _08006960 adds r1, r7, 0 strh r1, [r0] adds r3, 0x1 movs r1, 0x4 ldrsh r0, [r6, r1] adds r5, r2, 0 cmp r0, 0 ble _08006954 ldr r2, _08006964 adds r1, r2, 0 adds r4, r0, 0 lsls r0, r3, 1 add r0, r12 _08006948: strh r1, [r0] adds r0, 0x2 adds r3, 0x1 subs r4, 0x1 cmp r4, 0 bne _08006948 _08006954: lsls r0, r3, 1 ldr r4, [sp] adds r1, r5, r4 adds r0, r1 ldr r7, _08006968 b _080069AA .align 2, 0 _08006960: .4byte 0x0000f2dc _08006964: .4byte 0x0000f2dd _08006968: .4byte 0x0000f6dc _0800696C: lsls r0, r3, 1 lsls r2, r4, 6 ldr r1, [sp] adds r1, r2 mov r12, r1 add r0, r12 ldr r4, _080069C0 adds r1, r4, 0 strh r1, [r0] adds r3, 0x1 movs r7, 0x4 ldrsh r0, [r6, r7] adds r5, r2, 0 cmp r0, 0 ble _080069A0 ldr r2, _080069C4 adds r1, r2, 0 adds r4, r0, 0 lsls r0, r3, 1 add r0, r12 _08006994: strh r1, [r0] adds r0, 0x2 adds r3, 0x1 subs r4, 0x1 cmp r4, 0 bne _08006994 _080069A0: lsls r0, r3, 1 ldr r4, [sp] adds r1, r5, r4 adds r0, r1 ldr r7, _080069C8 _080069AA: adds r1, r7, 0 _080069AC: strh r1, [r0] _080069AE: add sp, 0x4 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080069C0: .4byte 0x0000f293 _080069C4: .4byte 0x0000f297 _080069C8: .4byte 0x0000f693 thumb_func_end sub_800677C thumb_func_start sub_80069CC sub_80069CC: push {r4-r6,lr} adds r6, r0, 0 adds r4, r1, 0 adds r5, r3, 0 ldr r3, [sp, 0x10] cmp r2, 0x1C bgt _08006ABA cmp r2, 0 blt _08006ABA ldr r0, [r6, 0xC] cmp r0, 0x7 bhi _08006ABA lsls r0, 2 ldr r1, _080069F0 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080069F0: .4byte _080069F4 .align 2, 0 _080069F4: .4byte _08006A14 .4byte _08006ABA .4byte _08006ABA .4byte _08006A60 .4byte _08006A7C .4byte _08006A9C .4byte _08006A60 .4byte _08006AAC _08006A14: cmp r5, 0 bne _08006A34 lsls r1, r4, 1 lsls r0, r2, 6 adds r0, r3 adds r1, r0 ldr r2, _08006A30 adds r0, r2, 0 strh r0, [r1] movs r0, 0x80 lsls r0, 4 adds r1, r0 adds r2, 0x44 b _08006A92 .align 2, 0 _08006A30: .4byte 0x0000f297 _08006A34: movs r1, 0x6 ldrsh r0, [r6, r1] subs r0, 0x1 cmp r5, r0 bne _08006A60 lsls r1, r4, 1 lsls r0, r2, 6 adds r0, r3 adds r1, r0 ldr r2, _08006A58 adds r0, r2, 0 strh r0, [r1] movs r0, 0x80 lsls r0, 4 adds r1, r0 ldr r2, _08006A5C b _08006A92 .align 2, 0 _08006A58: .4byte 0x0000fa97 _08006A5C: .4byte 0x0000f2db _08006A60: lsls r1, r4, 1 lsls r0, r2, 6 adds r0, r3 adds r1, r0 ldr r2, _08006A78 adds r0, r2, 0 strh r0, [r1] movs r0, 0x80 lsls r0, 4 adds r1, r0 adds r2, 0x1 b _08006A92 .align 2, 0 _08006A78: .4byte 0x0000f2da _08006A7C: lsls r1, r4, 1 lsls r0, r2, 6 adds r0, r3 adds r1, r0 ldr r2, _08006A98 adds r0, r2, 0 strh r0, [r1] movs r0, 0x80 lsls r0, 4 adds r1, r0 subs r2, 0xF _08006A92: adds r0, r2, 0 strh r0, [r1] b _08006ABA .align 2, 0 _08006A98: .4byte 0x0000f2ea _08006A9C: lsls r0, r4, 1 lsls r1, r2, 6 adds r1, r3 adds r0, r1 ldr r2, _08006AA8 b _08006AB6 .align 2, 0 _08006AA8: .4byte 0x0000f2de _08006AAC: lsls r0, r4, 1 lsls r1, r2, 6 adds r1, r3 adds r0, r1 ldr r2, _08006AC0 _08006AB6: adds r1, r2, 0 strh r1, [r0] _08006ABA: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08006AC0: .4byte 0x0000f2b6 thumb_func_end sub_80069CC thumb_func_start sub_8006AC4 sub_8006AC4: push {r4,r5,lr} adds r4, r1, 0 ldr r5, [sp, 0xC] cmp r2, 0x1C bgt _08006B64 cmp r2, 0 blt _08006B64 ldr r0, [r0, 0xC] cmp r0, 0x7 bhi _08006B64 lsls r0, 2 ldr r1, _08006AE4 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08006AE4: .4byte _08006AE8 .align 2, 0 _08006AE8: .4byte _08006B2C .4byte _08006B2C .4byte _08006B08 .4byte _08006B2C .4byte _08006B2C .4byte _08006B54 .4byte _08006B2C .4byte _08006B54 _08006B08: lsls r1, r4, 1 lsls r0, r2, 6 adds r0, r5 adds r1, r0 ldr r2, _08006B24 adds r0, r2, 0 orrs r3, r0 strh r3, [r1] movs r0, 0x80 lsls r0, 4 adds r1, r0 ldr r2, _08006B28 b _08006B44 .align 2, 0 _08006B24: .4byte 0xfffff000 _08006B28: .4byte 0x0000f278 _08006B2C: lsls r1, r4, 1 lsls r0, r2, 6 adds r0, r5 adds r1, r0 ldr r2, _08006B4C adds r0, r2, 0 orrs r3, r0 strh r3, [r1] movs r0, 0x80 lsls r0, 4 adds r1, r0 ldr r2, _08006B50 _08006B44: adds r0, r2, 0 strh r0, [r1] b _08006B64 .align 2, 0 _08006B4C: .4byte 0xfffff000 _08006B50: .4byte 0x0000f2db _08006B54: lsls r0, r4, 1 lsls r1, r2, 6 adds r1, r5 adds r0, r1 ldr r2, _08006B6C adds r1, r2, 0 orrs r3, r1 strh r3, [r0] _08006B64: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08006B6C: .4byte 0xfffff000 thumb_func_end sub_8006AC4 thumb_func_start sub_8006B70 sub_8006B70: push {r4-r6,lr} adds r6, r0, 0 adds r4, r1, 0 adds r5, r3, 0 ldr r3, [sp, 0x10] cmp r2, 0x1C bgt _08006C3A cmp r2, 0 blt _08006C3A ldr r0, [r6, 0xC] cmp r0, 0x7 bhi _08006C3A lsls r0, 2 ldr r1, _08006B94 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08006B94: .4byte _08006B98 .align 2, 0 _08006B98: .4byte _08006BB8 .4byte _08006C3A .4byte _08006C3A .4byte _08006BE8 .4byte _08006BF8 .4byte _08006C1C .4byte _08006BE8 .4byte _08006C2C _08006BB8: cmp r5, 0 bne _08006BCC lsls r1, r4, 1 lsls r0, r2, 6 adds r0, r3 adds r1, r0 ldr r2, _08006BC8 b _08006C02 .align 2, 0 _08006BC8: .4byte 0x0000f697 _08006BCC: movs r1, 0x6 ldrsh r0, [r6, r1] subs r0, 0x1 cmp r5, r0 bne _08006BE8 lsls r1, r4, 1 lsls r0, r2, 6 adds r0, r3 adds r1, r0 ldr r2, _08006BE4 b _08006C02 .align 2, 0 _08006BE4: .4byte 0x0000fe97 _08006BE8: lsls r1, r4, 1 lsls r0, r2, 6 adds r0, r3 adds r1, r0 ldr r2, _08006BF4 b _08006C02 .align 2, 0 _08006BF4: .4byte 0x0000f6da _08006BF8: lsls r1, r4, 1 lsls r0, r2, 6 adds r0, r3 adds r1, r0 ldr r2, _08006C14 _08006C02: adds r0, r2, 0 strh r0, [r1] movs r0, 0x80 lsls r0, 4 adds r1, r0 ldr r2, _08006C18 adds r0, r2, 0 strh r0, [r1] b _08006C3A .align 2, 0 _08006C14: .4byte 0x0000f6ea _08006C18: .4byte 0x0000f2db _08006C1C: lsls r0, r4, 1 lsls r1, r2, 6 adds r1, r3 adds r0, r1 ldr r2, _08006C28 b _08006C36 .align 2, 0 _08006C28: .4byte 0x0000f6de _08006C2C: lsls r0, r4, 1 lsls r1, r2, 6 adds r1, r3 adds r0, r1 ldr r2, _08006C40 _08006C36: adds r1, r2, 0 strh r1, [r0] _08006C3A: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08006C40: .4byte 0x0000f6b6 thumb_func_end sub_8006B70 thumb_func_start sub_8006C44 sub_8006C44: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x4 adds r6, r0, 0 adds r4, r1, 0 str r2, [sp] lsls r3, 24 lsrs r3, 24 mov r9, r3 movs r1, 0 ldrsh r0, [r6, r1] subs r3, r0, 0x1 cmp r4, 0x1C ble _08006C68 b _08006E76 _08006C68: cmp r4, 0 bge _08006C6E b _08006E76 _08006C6E: ldr r0, [r6, 0xC] cmp r0, 0x7 bls _08006C76 b _08006E76 _08006C76: lsls r0, 2 ldr r1, _08006C80 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08006C80: .4byte _08006C84 .align 2, 0 _08006C84: .4byte _08006E76 .4byte _08006E76 .4byte _08006E76 .4byte _08006CA4 .4byte _08006D64 .4byte _08006DE8 .4byte _08006CA4 .4byte _08006E34 _08006CA4: lsls r1, r3, 1 lsls r2, r4, 6 ldr r4, [sp] adds r0, r2, r4 adds r1, r0 ldr r7, _08006CC8 adds r0, r7, 0 strh r0, [r1] adds r5, r2, 0 mov r0, r9 cmp r0, 0 beq _08006CD0 movs r2, 0x80 lsls r2, 4 adds r1, r2 ldr r4, _08006CCC adds r0, r4, 0 b _08006CDA .align 2, 0 _08006CC8: .4byte 0x0000fad8 _08006CCC: .4byte 0x0000fa93 _08006CD0: movs r7, 0x80 lsls r7, 4 adds r1, r7 ldr r2, _08006D40 adds r0, r2, 0 _08006CDA: strh r0, [r1] adds r3, 0x1 movs r4, 0 movs r7, 0x4 ldrsh r0, [r6, r7] cmp r4, r0 bge _08006D1E ldr r0, _08006D44 mov r8, r0 lsls r0, r3, 1 ldr r2, [sp] movs r7, 0x80 lsls r7, 4 adds r1, r2, r7 adds r1, r5, r1 adds r2, r0, r1 ldr r7, [sp] adds r1, r5, r7 adds r1, r0, r1 ldr r0, _08006D40 mov r12, r0 _08006D04: mov r7, r8 strh r7, [r1] mov r0, r12 strh r0, [r2] adds r2, 0x2 adds r1, 0x2 adds r3, 0x1 adds r4, 0x1 movs r0, 0x4 ldrsh r7, [r6, r0] mov r10, r7 cmp r4, r10 blt _08006D04 _08006D1E: lsls r0, r3, 1 ldr r2, [sp] adds r1, r5, r2 adds r1, r0, r1 ldr r4, _08006D48 adds r0, r4, 0 strh r0, [r1] mov r7, r9 cmp r7, 0 beq _08006D50 movs r0, 0x80 lsls r0, 4 adds r1, r0 ldr r2, _08006D4C adds r0, r2, 0 strh r0, [r1] b _08006E76 .align 2, 0 _08006D40: .4byte 0x0000f2db _08006D44: .4byte 0x0000fad9 _08006D48: .4byte 0x0000fed8 _08006D4C: .4byte 0x0000fe93 _08006D50: movs r4, 0x80 lsls r4, 4 adds r1, r4 ldr r7, _08006D60 adds r0, r7, 0 strh r0, [r1] b _08006E76 .align 2, 0 _08006D60: .4byte 0x0000f2db _08006D64: lsls r1, r3, 1 lsls r2, r4, 6 ldr r0, [sp] adds r0, r2 mov r12, r0 add r1, r12 ldr r4, _08006DD8 adds r0, r4, 0 strh r0, [r1] movs r7, 0x80 lsls r7, 4 mov r8, r7 add r1, r8 ldr r0, _08006DDC mov r9, r0 strh r0, [r1] adds r3, 0x1 movs r4, 0 movs r1, 0x4 ldrsh r0, [r6, r1] adds r5, r2, 0 cmp r4, r0 bge _08006DBE ldr r2, _08006DE0 mov r10, r2 lsls r1, r3, 1 ldr r0, [sp] add r0, r8 adds r0, r5, r0 adds r2, r1, r0 add r1, r12 mov r12, r9 _08006DA4: mov r7, r10 strh r7, [r1] mov r0, r12 strh r0, [r2] adds r2, 0x2 adds r1, 0x2 adds r3, 0x1 adds r4, 0x1 movs r0, 0x4 ldrsh r7, [r6, r0] mov r8, r7 cmp r4, r8 blt _08006DA4 _08006DBE: lsls r0, r3, 1 ldr r2, [sp] adds r1, r5, r2 adds r0, r1 ldr r4, _08006DE4 adds r1, r4, 0 strh r1, [r0] movs r7, 0x80 lsls r7, 4 adds r0, r7 ldr r2, _08006DDC adds r1, r2, 0 b _08006E74 .align 2, 0 _08006DD8: .4byte 0x0000fae8 _08006DDC: .4byte 0x0000f2db _08006DE0: .4byte 0x0000fae9 _08006DE4: .4byte 0x0000fee8 _08006DE8: lsls r0, r3, 1 lsls r2, r4, 6 ldr r4, [sp] adds r4, r2 mov r12, r4 add r0, r12 ldr r7, _08006E28 adds r1, r7, 0 strh r1, [r0] adds r3, 0x1 movs r1, 0x4 ldrsh r0, [r6, r1] adds r5, r2, 0 cmp r0, 0 ble _08006E1C ldr r2, _08006E2C adds r1, r2, 0 adds r4, r0, 0 lsls r0, r3, 1 add r0, r12 _08006E10: strh r1, [r0] adds r0, 0x2 adds r3, 0x1 subs r4, 0x1 cmp r4, 0 bne _08006E10 _08006E1C: lsls r0, r3, 1 ldr r4, [sp] adds r1, r5, r4 adds r0, r1 ldr r7, _08006E30 b _08006E72 .align 2, 0 _08006E28: .4byte 0x0000fadc _08006E2C: .4byte 0x0000fadd _08006E30: .4byte 0x0000fedc _08006E34: lsls r0, r3, 1 lsls r2, r4, 6 ldr r1, [sp] adds r1, r2 mov r12, r1 add r0, r12 ldr r4, _08006E88 adds r1, r4, 0 strh r1, [r0] adds r3, 0x1 movs r7, 0x4 ldrsh r0, [r6, r7] adds r5, r2, 0 cmp r0, 0 ble _08006E68 ldr r2, _08006E8C adds r1, r2, 0 adds r4, r0, 0 lsls r0, r3, 1 add r0, r12 _08006E5C: strh r1, [r0] adds r0, 0x2 adds r3, 0x1 subs r4, 0x1 cmp r4, 0 bne _08006E5C _08006E68: lsls r0, r3, 1 ldr r4, [sp] adds r1, r5, r4 adds r0, r1 ldr r7, _08006E90 _08006E72: adds r1, r7, 0 _08006E74: strh r1, [r0] _08006E76: add sp, 0x4 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08006E88: .4byte 0x0000fa93 _08006E8C: .4byte 0x0000fa97 _08006E90: .4byte 0x0000fe93 thumb_func_end sub_8006C44 thumb_func_start sub_8006E94 sub_8006E94: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x30 str r0, [sp] adds r4, r1, 0 adds r7, r2, 0 str r3, [sp, 0x4] movs r1, 0 ldrsh r0, [r0, r1] mov r10, r0 movs r2, 0x1 negs r2, r2 add r2, r10 movs r3, 0 str r3, [sp, 0x8] cmp r4, 0x1C ble _08006EBE b _080072FE _08006EBE: cmp r4, 0 bge _08006EC4 b _080072FE _08006EC4: lsls r1, r2, 1 lsls r4, 6 ldr r6, [sp, 0x50] adds r5, r4, r6 adds r1, r5 ldr r0, _08006F9C adds r3, r0, 0 strh r3, [r1] movs r2, 0x80 lsls r2, 4 adds r0, r1, r2 ldr r6, _08006FA0 adds r2, r6, 0 strh r2, [r0] adds r0, r1, 0 adds r0, 0x40 strh r3, [r0] movs r0, 0x84 lsls r0, 4 adds r0, r1, r0 strh r2, [r0] adds r2, r1, 0 adds r2, 0x80 ldr r3, _08006FA4 adds r0, r3, 0 strh r0, [r2] movs r6, 0x88 lsls r6, 4 adds r1, r6 ldr r2, _08006FA8 adds r0, r2, 0 strh r0, [r1] mov r12, r10 movs r3, 0 str r4, [sp, 0x18] ldr r4, [sp, 0x4] ldrb r4, [r4] cmp r3, r4 blt _08006F14 b _08007238 _08006F14: adds r2, r5, 0 mov r5, r12 lsls r1, r5, 1 ldr r0, [sp, 0x50] adds r0, 0x80 ldr r6, [sp, 0x18] adds r0, r6, r0 adds r0, r1 mov r9, r0 ldr r0, [sp, 0x50] adds r0, 0x40 adds r0, r6, r0 adds r0, r1 mov r8, r0 ldr r4, [sp, 0x50] movs r5, 0x80 lsls r5, 4 adds r0, r4, r5 adds r0, r6, r0 adds r0, r1, r0 str r0, [sp, 0x20] movs r6, 0x84 lsls r6, 4 adds r0, r4, r6 ldr r4, [sp, 0x18] adds r0, r4, r0 adds r0, r1 mov r10, r0 adds r4, r1, r2 ldr r5, [sp, 0x18] str r5, [sp, 0x10] str r2, [sp, 0x1C] str r1, [sp, 0x24] _08006F56: ldr r6, [sp, 0x4] ldrb r6, [r6, 0x1] cmp r3, r6 bne _08006F60 b _080070C8 _08006F60: ldr r0, [sp, 0x8] cmp r0, 0 bne _08007008 ldr r1, [sp, 0x4] ldrb r0, [r1, 0x3] asrs r0, r3 movs r1, 0x1 ands r0, r1 cmp r0, 0 beq _08006FB8 movs r1, 0x1F cmp r3, 0 bne _08006F7C movs r1, 0x1B _08006F7C: movs r2, 0x9E lsls r2, 2 adds r0, r1, r2 ldr r5, _08006FAC adds r1, r5, 0 orrs r0, r1 strh r0, [r4] ldr r6, _08006FB0 adds r0, r6, 0 mov r1, r8 strh r0, [r1] ldr r5, _08006FB4 mov r2, r9 strh r5, [r2] b _08006FDC .align 2, 0 _08006F9C: .4byte 0x0000f278 _08006FA0: .4byte 0x0000f27a _08006FA4: .4byte 0x0000f2d8 _08006FA8: .4byte 0x0000f2db _08006FAC: .4byte 0xfffff400 _08006FB0: .4byte 0x0000f2b6 _08006FB4: .4byte 0x0000f2d9 _08006FB8: movs r1, 0x6B cmp r3, 0 bne _08006FC0 movs r1, 0x67 _08006FC0: movs r6, 0x9E lsls r6, 2 adds r0, r1, r6 ldr r2, _08006FF4 adds r1, r2, 0 orrs r0, r1 strh r0, [r4] ldr r5, _08006FF8 adds r0, r5, 0 mov r6, r8 strh r0, [r6] ldr r1, _08006FFC mov r0, r9 strh r1, [r0] _08006FDC: ldr r2, _08007000 adds r0, r2, 0 ldr r5, [sp, 0x20] strh r0, [r5] ldr r0, _08007004 mov r6, r10 strh r0, [r6] movs r1, 0x88 lsls r1, 4 adds r0, r4, r1 adds r2, 0x61 b _0800708E .align 2, 0 _08006FF4: .4byte 0xfffff400 _08006FF8: .4byte 0x0000f2ef _08006FFC: .4byte 0x0000f2d9 _08007000: .4byte 0x0000f27a _08007004: .4byte 0x0000f2db _08007008: ldr r5, [sp, 0x4] ldrb r0, [r5, 0x3] asrs r0, r3 movs r1, 0x1 ands r0, r1 cmp r0, 0 beq _0800704C ldrb r0, [r5] subs r0, 0x1 movs r1, 0x1F cmp r3, r0 bne _08007022 movs r1, 0x1B _08007022: movs r6, 0x9E lsls r6, 2 adds r0, r1, r6 ldr r2, _08007040 adds r1, r2, 0 orrs r0, r1 strh r0, [r4] ldr r5, _08007044 adds r0, r5, 0 mov r6, r8 strh r0, [r6] ldr r1, _08007048 mov r0, r9 strh r1, [r0] b _08007076 .align 2, 0 _08007040: .4byte 0xfffff000 _08007044: .4byte 0x0000f6b6 _08007048: .4byte 0x0000f2d9 _0800704C: ldr r2, [sp, 0x4] ldrb r0, [r2] subs r0, 0x1 movs r1, 0x6B cmp r3, r0 bne _0800705A movs r1, 0x67 _0800705A: movs r5, 0x9E lsls r5, 2 adds r0, r1, r5 ldr r6, _080070B0 adds r1, r6, 0 orrs r0, r1 strh r0, [r4] ldr r1, _080070B4 adds r0, r1, 0 mov r2, r8 strh r0, [r2] ldr r6, _080070B8 mov r5, r9 strh r6, [r5] _08007076: ldr r1, _080070BC adds r0, r1, 0 ldr r2, [sp, 0x20] strh r0, [r2] ldr r5, _080070C0 adds r0, r5, 0 mov r6, r10 strh r0, [r6] movs r1, 0x88 lsls r1, 4 adds r0, r4, r1 ldr r2, _080070C4 _0800708E: strh r2, [r0] movs r5, 0x2 add r9, r5 add r8, r5 ldr r6, [sp, 0x20] adds r6, 0x2 str r6, [sp, 0x20] add r10, r5 adds r4, 0x2 ldr r0, [sp, 0x24] adds r0, 0x2 str r0, [sp, 0x24] movs r1, 0x1 add r12, r1 adds r3, 0x1 str r3, [sp, 0x14] b _08007226 .align 2, 0 _080070B0: .4byte 0xfffff000 _080070B4: .4byte 0x0000f6ef _080070B8: .4byte 0x0000f2d9 _080070BC: .4byte 0x0000f27a _080070C0: .4byte 0x0000f6db _080070C4: .4byte 0x0000f2db _080070C8: movs r2, 0x1 str r2, [sp, 0x8] ldr r5, _08007128 adds r0, r5, 0 strh r0, [r4] ldr r6, _0800712C adds r0, r6, 0 ldr r1, [sp, 0x20] strh r0, [r1] ldr r2, _08007130 adds r0, r2, 0 mov r5, r8 strh r0, [r5] ldr r0, _08007134 mov r6, r10 strh r0, [r6] ldr r1, _08007138 adds r0, r1, 0 mov r2, r9 strh r0, [r2] movs r5, 0x88 lsls r5, 4 adds r0, r4, r5 ldr r6, _08007134 strh r6, [r0] movs r0, 0x2 add r9, r0 add r8, r0 ldr r1, [sp, 0x20] adds r1, 0x2 str r1, [sp, 0x20] add r10, r0 adds r4, 0x2 ldr r2, [sp, 0x24] adds r2, 0x2 str r2, [sp, 0x24] movs r5, 0x1 add r12, r5 cmp r7, 0 beq _0800713C adds r7, 0x1 cmp r7, 0 beq _0800713C ldr r6, [sp] movs r1, 0x4 ldrsh r0, [r6, r1] adds r2, r7, r0 b _0800713E .align 2, 0 _08007128: .4byte 0x0000f2e0 _0800712C: .4byte 0x0000f2e2 _08007130: .4byte 0x0000f2da _08007134: .4byte 0x0000f2db _08007138: .4byte 0x0000f6e7 _0800713C: movs r2, 0 _0800713E: movs r5, 0 str r5, [sp, 0xC] adds r3, 0x1 str r3, [sp, 0x14] ldr r6, [sp, 0x4] ldrb r6, [r6, 0x2] cmp r5, r6 bge _080071E0 ldr r0, [sp, 0x50] adds r0, 0x80 ldr r1, [sp, 0x10] adds r0, r1, r0 ldr r3, [sp, 0x24] adds r0, r3, r0 str r0, [sp, 0x2C] ldr r0, [sp, 0x50] adds r0, 0x40 adds r0, r1, r0 adds r5, r3, r0 ldr r6, [sp, 0x1C] adds r3, r6 _08007168: ldr r1, _08007310 adds r0, r1, 0 strh r0, [r3] movs r6, 0x80 lsls r6, 4 adds r6, r3, r6 str r6, [sp, 0x28] adds r1, 0x1 adds r0, r1, 0 strh r0, [r6] adds r0, r7, 0 ldr r6, _08007314 orrs r0, r6 strh r0, [r5] movs r1, 0x84 lsls r1, 4 adds r0, r3, r1 ldr r6, _08007318 strh r6, [r0] adds r0, r2, 0 ldr r1, _08007314 orrs r0, r1 ldr r6, [sp, 0x2C] strh r0, [r6] movs r1, 0x88 lsls r1, 4 adds r0, r3, r1 ldr r6, _08007318 strh r6, [r0] ldr r0, [sp, 0x2C] adds r0, 0x2 str r0, [sp, 0x2C] adds r5, 0x2 adds r3, 0x2 movs r1, 0x2 add r9, r1 add r8, r1 ldr r6, [sp, 0x20] adds r6, 0x2 str r6, [sp, 0x20] add r10, r1 adds r4, 0x2 ldr r0, [sp, 0x24] adds r0, 0x2 str r0, [sp, 0x24] movs r1, 0x1 add r12, r1 cmp r7, 0 beq _080071CC adds r7, 0x1 _080071CC: cmp r2, 0 beq _080071D2 adds r2, 0x1 _080071D2: ldr r6, [sp, 0xC] adds r6, 0x1 str r6, [sp, 0xC] ldr r0, [sp, 0x4] ldrb r0, [r0, 0x2] cmp r6, r0 blt _08007168 _080071E0: ldr r1, _0800731C adds r0, r1, 0 strh r0, [r4] ldr r2, _08007320 adds r0, r2, 0 ldr r3, [sp, 0x20] strh r0, [r3] ldr r5, _08007324 adds r0, r5, 0 mov r6, r8 strh r0, [r6] ldr r1, _08007318 mov r0, r10 strh r1, [r0] adds r2, 0x5 adds r0, r2, 0 mov r3, r9 strh r0, [r3] movs r5, 0x88 lsls r5, 4 adds r0, r4, r5 strh r1, [r0] movs r6, 0x2 add r9, r6 add r8, r6 ldr r0, [sp, 0x20] adds r0, 0x2 str r0, [sp, 0x20] add r10, r6 adds r4, 0x2 ldr r1, [sp, 0x24] adds r1, 0x2 str r1, [sp, 0x24] movs r2, 0x1 add r12, r2 _08007226: cmp r7, 0 beq _0800722C adds r7, 0x1 _0800722C: ldr r3, [sp, 0x14] ldr r5, [sp, 0x4] ldrb r5, [r5] cmp r3, r5 bge _08007238 b _08006F56 _08007238: ldr r6, [sp] movs r0, 0 ldrsh r1, [r6, r0] movs r2, 0x4 ldrsh r0, [r6, r2] adds r0, r1, r0 cmp r12, r0 bge _080072BC ldr r3, _08007328 adds r4, r3, 0 mov r8, r0 mov r5, r12 lsls r1, r5, 1 ldr r0, [sp, 0x50] adds r0, 0x80 ldr r6, [sp, 0x18] adds r0, r6, r0 adds r5, r1, r0 ldr r0, [sp, 0x50] adds r0, 0x40 adds r0, r6, r0 adds r3, r1, r0 ldr r0, [sp, 0x50] adds r6, r0 adds r2, r1, r6 movs r1, 0x80 lsls r1, 4 mov r10, r1 movs r6, 0x84 lsls r6, 4 mov r9, r6 mov r0, r8 mov r1, r12 subs r0, r1 mov r12, r0 _0800727E: strh r4, [r2] mov r6, r10 adds r0, r2, r6 ldr r1, _0800732C strh r1, [r0] strh r4, [r3] mov r6, r9 adds r0, r2, r6 strh r1, [r0] adds r1, 0x5F adds r0, r1, 0 strh r0, [r5] movs r6, 0x88 lsls r6, 4 adds r1, r2, r6 ldr r6, _08007318 adds r0, r6, 0 strh r0, [r1] adds r5, 0x2 adds r3, 0x2 adds r2, 0x2 movs r0, 0x1 negs r0, r0 add r12, r0 cmp r7, 0 beq _080072B4 adds r7, 0x1 _080072B4: mov r1, r12 cmp r1, 0 bne _0800727E mov r12, r8 _080072BC: mov r2, r12 lsls r1, r2, 1 ldr r3, [sp, 0x18] ldr r4, [sp, 0x50] adds r0, r3, r4 adds r1, r0 ldr r5, _08007328 adds r3, r5, 0 strh r3, [r1] movs r6, 0x80 lsls r6, 4 adds r0, r1, r6 ldr r4, _0800732C adds r2, r4, 0 strh r2, [r0] adds r0, r1, 0 adds r0, 0x40 strh r3, [r0] movs r5, 0x84 lsls r5, 4 adds r0, r1, r5 strh r2, [r0] adds r2, r1, 0 adds r2, 0x80 ldr r6, _08007330 adds r0, r6, 0 strh r0, [r2] movs r0, 0x88 lsls r0, 4 adds r1, r0 ldr r2, _08007318 adds r0, r2, 0 strh r0, [r1] _080072FE: add sp, 0x30 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08007310: .4byte 0x0000f2e1 _08007314: .4byte 0xfffff000 _08007318: .4byte 0x0000f2db _0800731C: .4byte 0x0000f6e0 _08007320: .4byte 0x0000f2e2 _08007324: .4byte 0x0000f6da _08007328: .4byte 0x0000f278 _0800732C: .4byte 0x0000f27a _08007330: .4byte 0x0000f6d8 thumb_func_end sub_8006E94 thumb_func_start sub_8007334 sub_8007334: push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} lsls r1, r0, 3 adds r1, r0 lsls r1, 3 ldr r0, _080073AC adds r3, r1, r0 ldr r5, [r3, 0x14] movs r0, 0x2 ldrsh r6, [r3, r0] movs r2, 0 movs r1, 0x6 ldrsh r0, [r3, r1] cmp r2, r0 bge _080073A0 ldr r7, _080073B0 mov r9, r7 _0800735A: movs r0, 0 ldrsh r1, [r3, r0] movs r4, 0 movs r7, 0x4 ldrsh r0, [r3, r7] adds r7, r6, 0x1 adds r2, 0x1 mov r12, r2 cmp r4, r0 bge _08007394 movs r0, 0xFC lsls r0, 8 mov r8, r0 lsls r1, 1 lsls r0, r6, 6 add r0, r9 adds r2, r1, r0 _0800737C: ldrh r0, [r2] mov r1, r8 ands r1, r0 orrs r1, r5 strh r1, [r2] adds r2, 0x2 adds r5, 0x1 adds r4, 0x1 movs r1, 0x4 ldrsh r0, [r3, r1] cmp r4, r0 blt _0800737C _08007394: adds r6, r7, 0 mov r2, r12 movs r7, 0x6 ldrsh r0, [r3, r7] cmp r2, r0 blt _0800735A _080073A0: pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080073AC: .4byte gUnknown_2027370 _080073B0: .4byte gUnknown_202B038 thumb_func_end sub_8007334 thumb_func_start nullsub_154 nullsub_154: bx lr thumb_func_end nullsub_154 thumb_func_start sub_80073B8 sub_80073B8: lsls r1, r0, 3 adds r1, r0 lsls r1, 3 ldr r0, _080073D8 adds r1, r0 ldr r0, [r1, 0x2C] lsrs r0, 2 lsls r0, 2 ldr r2, [r1, 0x1C] adds r0, r2, r0 str r0, [r1, 0x3C] str r2, [r1, 0x40] adds r1, 0x46 movs r0, 0x1 strb r0, [r1] bx lr .align 2, 0 _080073D8: .4byte gUnknown_2027370 thumb_func_end sub_80073B8 thumb_func_start nullsub_155 nullsub_155: bx lr thumb_func_end nullsub_155 thumb_func_start sub_80073E0 sub_80073E0: push {r4,lr} lsls r1, r0, 3 adds r1, r0 lsls r1, 3 ldr r0, _08007434 adds r3, r1, r0 adds r0, r3, 0 adds r0, 0x44 ldrb r4, [r0] cmp r4, 0 bne _08007424 ldr r2, [r3, 0x3C] ldr r0, [r3, 0x1C] subs r0, r2, r0 asrs r0, 2 lsls r0, 2 ldr r1, [r3, 0x28] adds r1, r0 str r1, [r3, 0x30] str r2, [r3, 0x34] ldr r0, [r3, 0x40] subs r0, r2 asrs r0, 2 adds r0, 0x1 lsls r0, 2 str r0, [r3, 0x38] ldr r1, [r3, 0x2C] cmp r0, r1 blt _0800741C str r1, [r3, 0x38] _0800741C: ldr r0, [r3, 0x38] cmp r0, 0 bge _08007424 str r4, [r3, 0x38] _08007424: adds r1, r3, 0 adds r1, 0x46 movs r0, 0 strb r0, [r1] pop {r4} pop {r0} bx r0 .align 2, 0 _08007434: .4byte gUnknown_2027370 thumb_func_end sub_80073E0 thumb_func_start nullsub_156 nullsub_156: bx lr thumb_func_end nullsub_156 thumb_func_start xxx_call_draw_char xxx_call_draw_char: push {r4-r6,lr} sub sp, 0x8 adds r4, r0, 0 adds r5, r1, 0 adds r6, r2, 0 ldr r1, [sp, 0x18] ldr r0, _08007460 str r3, [sp] str r1, [sp, 0x4] adds r1, r4, 0 adds r2, r5, 0 adds r3, r6, 0 bl xxx_draw_char add sp, 0x8 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _08007460: .4byte gUnknown_2027370 thumb_func_end xxx_call_draw_char thumb_func_start sub_8007464 sub_8007464: movs r0, 0 bx lr thumb_func_end sub_8007464 thumb_func_start xxx_draw_char xxx_draw_char: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x28 adds r6, r1, 0 mov r10, r2 adds r4, r3, 0 ldr r2, [sp, 0x48] ldr r3, [sp, 0x4C] lsls r1, r3, 3 adds r1, r3 lsls r1, 3 adds r5, r0, r1 ldr r1, _080074B8 movs r0, 0xF ands r2, r0 lsls r2, 2 adds r2, r1 ldr r2, [r2] str r2, [sp, 0x18] ldr r0, _080074BC ldr r0, [r0] cmp r0, 0x1 bne _080074CC cmp r4, 0x70 beq _080074B0 cmp r4, 0x6A beq _080074B0 cmp r4, 0x71 beq _080074B0 cmp r4, 0x79 beq _080074B0 cmp r4, 0x67 bne _080074C0 _080074B0: movs r0, 0x2 add r10, r0 b _080074CC .align 2, 0 _080074B8: .4byte gUnknown_80B853C _080074BC: .4byte gUnknown_20274AC _080074C0: ldr r0, _080074F8 cmp r4, r0 bne _080074CC movs r1, 0x2 negs r1, r1 add r10, r1 _080074CC: adds r0, r4, 0 bl sub_8008584 str r0, [sp] ldr r2, [r0] str r2, [sp, 0x4] str r2, [sp, 0xC] adds r3, r2, 0 subs r3, 0x6 str r3, [sp, 0x8] ldr r0, _080074FC ldrb r0, [r0] cmp r0, 0 beq _08007500 ldr r4, [sp] ldrb r1, [r4, 0xA] lsrs r7, r1, 1 movs r0, 0x1 adds r2, r7, 0 ands r2, r0 str r2, [sp, 0x1C] b _08007508 .align 2, 0 _080074F8: .4byte 0x00008199 _080074FC: .4byte gUnknown_202B034 _08007500: movs r3, 0 str r3, [sp, 0x1C] ldr r4, [sp] ldrb r1, [r4, 0xA] _08007508: movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _08007512 b _08007670 _08007512: mov r0, r10 cmp r0, 0 bge _0800751A adds r0, 0x7 _0800751A: asrs r4, r0, 3 movs r7, 0x4 ldrsh r0, [r5, r7] muls r0, r4 adds r2, r6, 0 cmp r6, 0 bge _0800752A adds r2, r6, 0x7 _0800752A: asrs r2, 3 adds r0, r2 lsls r0, 5 ldr r1, [r5, 0x18] adds r3, r1, r0 lsls r0, r4, 3 mov r1, r10 subs r0, r1, r0 lsls r0, 2 adds r3, r0 lsls r0, r2, 3 subs r0, r6, r0 lsls r0, 4 ldr r1, _08007664 adds r0, r1 mov r12, r0 mov r9, r2 str r4, [sp, 0x14] movs r2, 0x8 ldrsh r0, [r5, r2] cmp r4, r0 blt _08007558 b _0800786C _08007558: movs r4, 0 str r4, [sp, 0x10] ldr r2, _08007668 ldr r1, _0800766C ldr r0, [r1] lsls r0, 2 adds r0, r2 ldr r0, [r0] cmp r4, r0 blt _0800756E b _0800786C _0800756E: adds r4, r2, 0 _08007570: ldr r6, [sp, 0x4] ldrh r0, [r6, 0x2] lsls r2, r0, 16 ldrh r0, [r6] orrs r2, r0 cmp r2, 0 beq _080075CC movs r7, 0x4 ldrsh r0, [r5, r7] cmp r9, r0 bge _080075A6 mov r0, r12 ldr r1, [r0] ands r1, r2 ldr r0, [r0, 0x8] lsls r1, r0 ldr r0, [r3] orrs r0, r1 str r0, [r3] ldr r0, [r5, 0x3C] cmp r0, r3 bls _0800759E str r3, [r5, 0x3C] _0800759E: ldr r0, [r5, 0x40] cmp r0, r3 bcs _080075A6 str r3, [r5, 0x40] _080075A6: movs r1, 0x4 ldrsh r0, [r5, r1] subs r0, 0x1 cmp r9, r0 bge _080075CC adds r3, 0x20 mov r6, r12 ldr r0, [r6, 0x4] ands r2, r0 ldr r0, [r6, 0xC] lsrs r2, r0 ldr r0, [r3] orrs r0, r2 str r0, [r3] ldr r0, [r5, 0x40] cmp r0, r3 bcs _080075CA str r3, [r5, 0x40] _080075CA: subs r3, 0x20 _080075CC: ldr r7, [sp, 0x4] ldrh r2, [r7, 0x4] cmp r2, 0 beq _08007620 movs r1, 0x4 ldrsh r0, [r5, r1] subs r0, 0x1 cmp r9, r0 bge _080075FA adds r3, 0x20 mov r6, r12 ldr r1, [r6] ands r1, r2 ldr r0, [r6, 0x8] lsls r1, r0 ldr r0, [r3] orrs r0, r1 str r0, [r3] ldr r0, [r5, 0x40] cmp r0, r3 bcs _080075F8 str r3, [r5, 0x40] _080075F8: subs r3, 0x20 _080075FA: movs r7, 0x4 ldrsh r0, [r5, r7] subs r0, 0x2 cmp r9, r0 bge _08007620 adds r3, 0x40 mov r1, r12 ldr r0, [r1, 0x4] ands r2, r0 ldr r0, [r1, 0xC] lsrs r2, r0 ldr r0, [r3] orrs r0, r2 str r0, [r3] ldr r0, [r5, 0x40] cmp r0, r3 bcs _0800761E str r3, [r5, 0x40] _0800761E: subs r3, 0x40 _08007620: ldr r2, [sp, 0x4] adds r2, 0x6 str r2, [sp, 0x4] adds r3, 0x4 movs r6, 0x1 add r10, r6 movs r0, 0x7 mov r7, r10 ands r0, r7 cmp r0, 0 bne _0800764E ldr r0, [r5, 0x20] lsls r0, 2 adds r3, r0 ldr r0, [sp, 0x14] adds r0, 0x1 str r0, [sp, 0x14] movs r1, 0x8 ldrsh r0, [r5, r1] ldr r2, [sp, 0x14] cmp r2, r0 blt _0800764E b _0800786C _0800764E: ldr r6, [sp, 0x10] adds r6, 0x1 str r6, [sp, 0x10] ldr r7, _0800766C ldr r0, [r7] lsls r0, 2 adds r0, r4 ldr r0, [r0] cmp r6, r0 blt _08007570 b _0800786C .align 2, 0 _08007664: .4byte gUnknown_80B85DC _08007668: .4byte gUnknown_202B028 _0800766C: .4byte gUnknown_20274AC _08007670: movs r0, 0 str r0, [sp, 0x20] mov r0, r10 cmp r0, 0 bge _0800767C adds r0, 0x7 _0800767C: asrs r4, r0, 3 movs r1, 0x4 ldrsh r0, [r5, r1] adds r1, r4, 0 muls r1, r0 adds r0, r6, 0 cmp r6, 0 bge _0800768E adds r0, r6, 0x7 _0800768E: asrs r2, r0, 3 adds r0, r1, r2 lsls r0, 5 ldr r1, [r5, 0x18] adds r3, r1, r0 lsls r0, r4, 3 mov r7, r10 subs r0, r7, r0 lsls r0, 2 adds r3, r0 lsls r0, r2, 3 subs r0, r6, r0 lsls r0, 4 ldr r1, _0800788C adds r0, r1 mov r12, r0 mov r9, r2 str r4, [sp, 0x14] movs r1, 0x8 ldrsh r0, [r5, r1] cmp r4, r0 blt _080076BC b _0800786C _080076BC: movs r2, 0 str r2, [sp, 0x10] ldr r2, _08007890 ldr r1, _08007894 ldr r0, [r1] lsls r0, 2 adds r0, r2 ldr r0, [r0] ldr r4, [sp, 0x10] cmp r4, r0 blt _080076D4 b _0800786C _080076D4: ldr r6, [sp, 0x4] ldrh r0, [r6, 0x2] lsls r4, r0, 16 ldrh r0, [r6] orrs r4, r0 ldr r1, _08007898 ands r1, r4 ldr r0, [sp, 0x18] ands r0, r4 adds r2, r1, r0 ldr r7, [sp, 0x1C] cmp r7, 0 beq _08007724 ldr r1, [sp, 0xC] ldrh r0, [r1, 0x2] lsls r0, 16 ldrh r1, [r1] orrs r0, r1 lsls r1, r0, 4 mvns r6, r4 mov r8, r6 bics r1, r4 ldr r7, _0800789C ldr r6, [r7] ands r1, r6 orrs r2, r1 ldr r0, [sp, 0x20] cmp r0, 0 beq _08007724 ldr r1, [sp, 0x8] ldrh r0, [r1, 0x2] lsls r0, 16 ldrh r1, [r1] orrs r0, r1 lsls r1, r0, 4 eors r1, r4 mov r4, r8 ands r1, r4 ands r1, r6 orrs r2, r1 _08007724: cmp r2, 0 beq _08007776 movs r6, 0x4 ldrsh r0, [r5, r6] cmp r9, r0 bge _08007750 mov r7, r12 ldr r1, [r7] ands r1, r2 ldr r0, [r7, 0x8] lsls r1, r0 ldr r0, [r3] orrs r0, r1 str r0, [r3] ldr r0, [r5, 0x3C] cmp r0, r3 bls _08007748 str r3, [r5, 0x3C] _08007748: ldr r0, [r5, 0x40] cmp r0, r3 bcs _08007750 str r3, [r5, 0x40] _08007750: movs r1, 0x4 ldrsh r0, [r5, r1] subs r0, 0x1 cmp r9, r0 bge _08007776 adds r3, 0x20 mov r4, r12 ldr r0, [r4, 0x4] ands r2, r0 ldr r0, [r4, 0xC] lsrs r2, r0 ldr r0, [r3] orrs r0, r2 str r0, [r3] ldr r0, [r5, 0x40] cmp r0, r3 bcs _08007774 str r3, [r5, 0x40] _08007774: subs r3, 0x20 _08007776: ldr r6, [sp, 0x4] ldrh r4, [r6, 0x4] ldr r1, _08007898 ands r1, r4 ldr r0, [sp, 0x18] ands r0, r4 adds r2, r1, r0 ldr r7, [sp, 0x1C] cmp r7, 0 beq _080077CC ldr r1, [sp, 0xC] ldrh r0, [r1, 0x4] lsls r1, r0, 4 ldr r6, [sp, 0xC] ldrh r0, [r6, 0x2] movs r7, 0xF mov r8, r7 lsrs r0, 12 orrs r1, r0 mvns r0, r4 str r0, [sp, 0x24] bics r1, r4 ldr r7, _0800789C ldr r6, [r7] ands r1, r6 orrs r2, r1 ldr r0, [sp, 0x20] cmp r0, 0 beq _080077CC ldr r1, [sp, 0x8] ldrh r0, [r1, 0x4] lsls r1, r0, 4 ldr r7, [sp, 0x8] ldrh r0, [r7, 0x2] lsrs r0, 12 mov r7, r8 ands r0, r7 orrs r1, r0 eors r1, r4 ldr r0, [sp, 0x24] ands r1, r0 ands r1, r6 orrs r2, r1 _080077CC: cmp r2, 0 beq _0800781C movs r1, 0x4 ldrsh r0, [r5, r1] subs r0, 0x1 cmp r9, r0 bge _080077F6 adds r3, 0x20 mov r4, r12 ldr r1, [r4] ands r1, r2 ldr r0, [r4, 0x8] lsls r1, r0 ldr r0, [r3] orrs r0, r1 str r0, [r3] ldr r0, [r5, 0x40] cmp r0, r3 bcs _080077F4 str r3, [r5, 0x40] _080077F4: subs r3, 0x20 _080077F6: movs r6, 0x4 ldrsh r0, [r5, r6] subs r0, 0x2 cmp r9, r0 bge _0800781C adds r3, 0x40 mov r7, r12 ldr r0, [r7, 0x4] ands r2, r0 ldr r0, [r7, 0xC] lsrs r2, r0 ldr r0, [r3] orrs r0, r2 str r0, [r3] ldr r0, [r5, 0x40] cmp r0, r3 bcs _0800781A str r3, [r5, 0x40] _0800781A: subs r3, 0x40 _0800781C: movs r0, 0x1 str r0, [sp, 0x20] ldr r1, [sp, 0x4] adds r1, 0x6 str r1, [sp, 0x4] ldr r2, [sp, 0x8] adds r2, 0x6 str r2, [sp, 0x8] ldr r4, [sp, 0xC] adds r4, 0x6 str r4, [sp, 0xC] adds r3, 0x4 add r10, r0 movs r0, 0x7 mov r6, r10 ands r0, r6 cmp r0, 0 bne _08007854 ldr r0, [r5, 0x20] lsls r0, 2 adds r3, r0 ldr r7, [sp, 0x14] adds r7, 0x1 str r7, [sp, 0x14] movs r1, 0x8 ldrsh r0, [r5, r1] cmp r7, r0 bge _0800786C _08007854: ldr r2, [sp, 0x10] adds r2, 0x1 str r2, [sp, 0x10] ldr r4, _08007894 ldr r0, [r4] lsls r0, 2 ldr r6, _08007890 adds r0, r6 ldr r0, [r0] cmp r2, r0 bge _0800786C b _080076D4 _0800786C: ldr r7, [sp] movs r1, 0x6 ldrsh r0, [r7, r1] ldr r2, _080078A0 movs r3, 0 ldrsh r1, [r2, r3] adds r0, r1 add sp, 0x28 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0800788C: .4byte gUnknown_80B85DC _08007890: .4byte gUnknown_202B028 _08007894: .4byte gUnknown_20274AC _08007898: .4byte 0x11111111 _0800789C: .4byte gUnknown_202B030 _080078A0: .4byte gUnknown_2027498 thumb_func_end xxx_draw_char thumb_func_start sub_80078A4 sub_80078A4: push {r4-r6,lr} mov r6, r8 push {r6} sub sp, 0x4 adds r5, r0, 0 adds r6, r1, 0 adds r4, r2, 0 mov r8, r3 ldr r0, [sp, 0x18] str r0, [sp] adds r0, r5, 0 bl sub_800792C adds r4, 0x1 ldr r0, _080078E4 ldr r0, [r0] movs r1, 0xF ands r0, r1 str r0, [sp] adds r0, r5, 0 adds r1, r6, 0 adds r2, r4, 0 mov r3, r8 bl sub_800792C add sp, 0x4 pop {r3} mov r8, r3 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080078E4: .4byte gUnknown_202B030 thumb_func_end sub_80078A4 thumb_func_start sub_80078E8 sub_80078E8: push {r4-r6,lr} mov r6, r8 push {r6} sub sp, 0x4 adds r5, r0, 0 adds r6, r1, 0 adds r4, r2, 0 mov r8, r3 ldr r0, [sp, 0x18] str r0, [sp] adds r0, r5, 0 bl nullsub_129 adds r4, 0x1 ldr r0, _08007928 ldr r0, [r0] movs r1, 0xF ands r0, r1 str r0, [sp] adds r0, r5, 0 adds r1, r6, 0 adds r2, r4, 0 mov r3, r8 bl nullsub_129 add sp, 0x4 pop {r3} mov r8, r3 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08007928: .4byte gUnknown_202B030 thumb_func_end sub_80078E8 thumb_func_start sub_800792C sub_800792C: push {r4-r6,lr} sub sp, 0x8 adds r4, r0, 0 adds r5, r1, 0 adds r6, r2, 0 ldr r1, [sp, 0x18] ldr r0, _08007950 str r3, [sp] str r1, [sp, 0x4] adds r1, r4, 0 adds r2, r5, 0 adds r3, r6, 0 bl sub_8007958 add sp, 0x8 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08007950: .4byte gUnknown_2027370 thumb_func_end sub_800792C thumb_func_start nullsub_129 nullsub_129: bx lr thumb_func_end nullsub_129 thumb_func_start sub_8007958 sub_8007958: push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x24 mov r8, r2 adds r7, r3, 0 ldr r2, [sp, 0x40] mov r12, r2 ldr r3, [sp, 0x44] lsls r2, r1, 3 adds r2, r1 lsls r2, 3 adds r5, r0, r2 ldr r1, _08007A68 movs r0, 0xF ands r3, r0 lsls r3, 2 adds r3, r1 ldr r3, [r3] mov r9, r3 adds r0, r7, 0 cmp r7, 0 bge _0800798A adds r0, r7, 0x7 _0800798A: asrs r4, r0, 3 movs r1, 0x4 ldrsh r0, [r5, r1] muls r0, r4 mov r2, r8 cmp r2, 0 bge _0800799A adds r2, 0x7 _0800799A: asrs r2, 3 adds r0, r2 lsls r0, 5 ldr r1, [r5, 0x18] adds r3, r1, r0 lsls r0, r4, 3 subs r0, r7, r0 lsls r0, 2 adds r3, r0 adds r6, r2, 0 movs r2, 0x8 ldrsh r0, [r5, r2] cmp r4, r0 bge _08007A58 mov r1, sp ldr r0, _08007A6C ldm r0!, {r2,r4,r7} stm r1!, {r2,r4,r7} ldm r0!, {r2,r4,r7} stm r1!, {r2,r4,r7} ldm r0!, {r2,r4,r7} stm r1!, {r2,r4,r7} mov r4, r12 cmp r4, 0 ble _08007A58 ldr r7, _08007A70 _080079CE: mov r1, r12 cmp r1, 0x7 ble _080079D6 movs r1, 0x8 _080079D6: mov r0, r8 cmp r0, 0 bge _080079DE adds r0, 0x7 _080079DE: asrs r0, 3 lsls r0, 3 mov r2, r8 subs r0, r2, r0 lsls r0, 4 adds r4, r0, r7 lsls r0, r1, 2 add r0, sp ldr r2, [r0] ldr r1, _08007A74 ands r1, r2 mov r0, r9 ands r0, r2 adds r2, r1, r0 cmp r2, 0 beq _08007A48 movs r1, 0x4 ldrsh r0, [r5, r1] cmp r6, r0 bge _08007A24 ldr r1, [r4] ands r1, r2 ldr r0, [r4, 0x8] lsls r1, r0 ldr r0, [r3] orrs r0, r1 str r0, [r3] ldr r0, [r5, 0x3C] cmp r0, r3 bls _08007A1C str r3, [r5, 0x3C] _08007A1C: ldr r0, [r5, 0x40] cmp r0, r3 bcs _08007A24 str r3, [r5, 0x40] _08007A24: movs r1, 0x4 ldrsh r0, [r5, r1] subs r0, 0x1 cmp r6, r0 bge _08007A48 adds r3, 0x20 ldr r0, [r4, 0x4] ands r2, r0 ldr r0, [r4, 0xC] lsrs r2, r0 ldr r0, [r3] orrs r0, r2 str r0, [r3] ldr r0, [r5, 0x40] cmp r0, r3 bcs _08007A46 str r3, [r5, 0x40] _08007A46: subs r3, 0x20 _08007A48: adds r6, 0x1 adds r3, 0x20 movs r2, 0x8 negs r2, r2 add r12, r2 mov r4, r12 cmp r4, 0 bgt _080079CE _08007A58: add sp, 0x24 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08007A68: .4byte gUnknown_80B853C _08007A6C: .4byte gUnknown_80B8824 _08007A70: .4byte gUnknown_80B85DC _08007A74: .4byte 0x11111111 thumb_func_end sub_8007958 thumb_func_start sub_8007A78 sub_8007A78: push {r4-r6,lr} sub sp, 0x8 adds r4, r0, 0 adds r5, r1, 0 adds r6, r2, 0 ldr r1, [sp, 0x18] ldr r0, _08007A9C str r3, [sp] str r1, [sp, 0x4] adds r1, r4, 0 adds r2, r5, 0 adds r3, r6, 0 bl sub_8007AA4 add sp, 0x8 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08007A9C: .4byte gUnknown_2027370 thumb_func_end sub_8007A78 thumb_func_start nullsub_157 nullsub_157: bx lr thumb_func_end nullsub_157 thumb_func_start sub_8007AA4 sub_8007AA4: push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x20 mov r9, r2 adds r5, r3, 0 ldr r7, [sp, 0x3C] ldr r3, [sp, 0x40] lsls r2, r1, 3 adds r2, r1 lsls r2, 3 adds r4, r0, r2 ldr r1, _08007B28 movs r0, 0xF ands r3, r0 lsls r3, 2 adds r3, r1 ldr r0, [r3] ldr r1, _08007B2C adds r1, r0 mov r12, r1 mov r1, sp ldr r0, _08007B30 ldm r0!, {r2,r3,r6} stm r1!, {r2,r3,r6} ldm r0!, {r2,r3,r6} stm r1!, {r2,r3,r6} ldm r0!, {r2,r3} stm r1!, {r2,r3} adds r0, r5, 0 cmp r5, 0 bge _08007AE8 adds r0, r5, 0x7 _08007AE8: asrs r3, r0, 3 movs r0, 0x4 ldrsh r6, [r4, r0] mov r8, r6 mov r0, r8 muls r0, r3 mov r2, r9 cmp r2, 0 bge _08007AFC adds r2, 0x7 _08007AFC: asrs r2, 3 adds r0, r2 lsls r0, 5 ldr r1, [r4, 0x18] adds r1, r0 lsls r0, r3, 3 subs r0, r5, r0 lsls r0, 2 adds r1, r0 movs r0, 0x7 mov r6, r9 ands r0, r6 lsls r0, 2 add r0, sp ldr r0, [r0] mov r6, r12 ands r6, r0 mov r12, r6 cmp r2, r8 bge _08007B6E b _08007B48 .align 2, 0 _08007B28: .4byte gUnknown_80B853C _08007B2C: .4byte 0x11111111 _08007B30: .4byte gUnknown_80B8848 _08007B34: adds r5, 0x1 adds r1, 0x4 movs r0, 0x7 ands r0, r5 cmp r0, 0 bne _08007B46 ldr r0, [r4, 0x20] lsls r0, 2 adds r1, r0 _08007B46: subs r7, 0x1 _08007B48: cmp r7, 0 ble _08007B6E movs r2, 0x8 ldrsh r0, [r4, r2] cmp r3, r0 bge _08007B6E ldr r0, [r1] mov r6, r12 orrs r0, r6 str r0, [r1] ldr r0, [r4, 0x3C] cmp r0, r1 bls _08007B64 str r1, [r4, 0x3C] _08007B64: ldr r0, [r4, 0x40] cmp r0, r1 bcs _08007B34 str r1, [r4, 0x40] b _08007B34 _08007B6E: add sp, 0x20 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8007AA4 thumb_func_start sub_8007B7C sub_8007B7C: push {r4-r6,lr} sub sp, 0x8 adds r4, r0, 0 adds r5, r1, 0 adds r6, r2, 0 ldr r1, [sp, 0x18] ldr r0, _08007BA0 str r3, [sp] str r1, [sp, 0x4] adds r1, r4, 0 adds r2, r5, 0 adds r3, r6, 0 bl sub_8007BA8 add sp, 0x8 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08007BA0: .4byte gUnknown_2027370 thumb_func_end sub_8007B7C thumb_func_start nullsub_158 nullsub_158: bx lr thumb_func_end nullsub_158 thumb_func_start sub_8007BA8 sub_8007BA8: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x20 str r2, [sp] lsls r2, r1, 3 adds r2, r1 lsls r2, 3 adds r0, r2 mov r12, r0 adds r0, r3, 0 cmp r3, 0 bge _08007BC8 adds r0, r3, 0x7 _08007BC8: asrs r0, 3 str r0, [sp, 0x8] mov r1, r12 movs r2, 0x8 ldrsh r0, [r1, r2] ldr r4, [sp, 0x8] cmp r4, r0 bge _08007CC4 movs r7, 0x4 ldrsh r0, [r1, r7] adds r1, r4, 0 muls r1, r0 ldr r0, [sp] cmp r0, 0 bge _08007BE8 adds r0, 0x7 _08007BE8: asrs r0, 3 adds r0, r1, r0 lsls r0, 5 mov r2, r12 ldr r1, [r2, 0x18] adds r4, r1, r0 ldr r7, [sp, 0x8] lsls r0, r7, 3 subs r0, r3, r0 lsls r0, 2 adds r4, r0 movs r0, 0 str r0, [sp, 0x4] ldr r1, [sp, 0x44] cmp r0, r1 bge _08007CC4 _08007C08: adds r2, r4, 0 ldr r0, [sp] cmp r0, 0 bge _08007C12 adds r0, 0x7 _08007C12: asrs r1, r0, 3 movs r7, 0 mov r8, r7 adds r3, 0x1 str r3, [sp, 0xC] adds r4, 0x4 str r4, [sp, 0x14] ldr r0, [sp, 0x40] cmp r8, r0 bge _08007C94 _08007C26: mov r3, r12 movs r4, 0x4 ldrsh r0, [r3, r4] cmp r1, r0 bge _08007C94 movs r6, 0xF0 lsls r6, 24 movs r5, 0xE0 lsls r5, 24 movs r7, 0 str r7, [sp, 0x1C] ldr r4, [r2] adds r3, r4, 0 mov r0, r12 ldr r0, [r0, 0x3C] mov r9, r0 mov r7, r12 ldr r7, [r7, 0x40] mov r10, r7 adds r1, 0x1 str r1, [sp, 0x10] adds r0, r2, 0 adds r0, 0x20 str r0, [sp, 0x18] movs r1, 0x8 add r8, r1 movs r1, 0x7 _08007C5C: adds r0, r4, 0 ands r0, r6 cmp r0, 0 bne _08007C6A ldr r7, [sp, 0x1C] orrs r7, r5 str r7, [sp, 0x1C] _08007C6A: lsrs r6, 4 lsrs r5, 4 subs r1, 0x1 cmp r1, 0 bge _08007C5C ldr r0, [sp, 0x1C] orrs r3, r0 str r3, [r2] cmp r9, r2 bls _08007C82 mov r1, r12 str r2, [r1, 0x3C] _08007C82: cmp r10, r2 bcs _08007C8A mov r3, r12 str r2, [r3, 0x40] _08007C8A: ldr r1, [sp, 0x10] ldr r2, [sp, 0x18] ldr r4, [sp, 0x40] cmp r8, r4 blt _08007C26 _08007C94: ldr r3, [sp, 0xC] ldr r4, [sp, 0x14] movs r0, 0x7 ands r0, r3 cmp r0, 0 bne _08007CB8 mov r7, r12 ldr r0, [r7, 0x20] lsls r0, 2 adds r4, r0 ldr r0, [sp, 0x8] adds r0, 0x1 str r0, [sp, 0x8] movs r1, 0x8 ldrsh r0, [r7, r1] ldr r2, [sp, 0x8] cmp r2, r0 bge _08007CC4 _08007CB8: ldr r7, [sp, 0x4] adds r7, 0x1 str r7, [sp, 0x4] ldr r0, [sp, 0x44] cmp r7, r0 blt _08007C08 _08007CC4: 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_8007BA8 thumb_func_start sub_8007CD4 sub_8007CD4: push {r4-r6,lr} sub sp, 0x8 adds r4, r0, 0 adds r5, r1, 0 adds r6, r2, 0 ldr r1, [sp, 0x18] ldr r0, _08007CF8 str r3, [sp] str r1, [sp, 0x4] adds r1, r4, 0 adds r2, r5, 0 adds r3, r6, 0 bl sub_8007D00 add sp, 0x8 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08007CF8: .4byte gUnknown_2027370 thumb_func_end sub_8007CD4 thumb_func_start nullsub_159 nullsub_159: bx lr thumb_func_end nullsub_159 thumb_func_start sub_8007D00 sub_8007D00: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x20 str r2, [sp] lsls r2, r1, 3 adds r2, r1 lsls r2, 3 adds r0, r2 mov r12, r0 adds r0, r3, 0 cmp r3, 0 bge _08007D20 adds r0, r3, 0x7 _08007D20: asrs r0, 3 str r0, [sp, 0x8] mov r1, r12 movs r2, 0x8 ldrsh r0, [r1, r2] ldr r4, [sp, 0x8] cmp r4, r0 bge _08007E0E movs r5, 0x4 ldrsh r0, [r1, r5] adds r1, r4, 0 muls r1, r0 ldr r0, [sp] cmp r0, 0 bge _08007D40 adds r0, 0x7 _08007D40: asrs r0, 3 adds r0, r1, r0 lsls r0, 5 mov r2, r12 ldr r1, [r2, 0x18] adds r4, r1, r0 ldr r5, [sp, 0x8] lsls r0, r5, 3 subs r0, r3, r0 lsls r0, 2 adds r4, r0 movs r0, 0 b _08007E06 _08007D5A: adds r2, r4, 0 ldr r0, [sp] cmp r0, 0 bge _08007D64 adds r0, 0x7 _08007D64: asrs r1, r0, 3 movs r5, 0 mov r8, r5 adds r3, 0x1 str r3, [sp, 0xC] adds r4, 0x4 str r4, [sp, 0x14] ldr r0, [sp, 0x40] cmp r8, r0 bge _08007DE0 _08007D78: mov r3, r12 movs r4, 0x4 ldrsh r0, [r3, r4] cmp r1, r0 bge _08007DE0 movs r4, 0xF0 lsls r4, 24 movs r6, 0xE0 lsls r6, 24 movs r7, 0 ldr r5, [r2] str r5, [sp, 0x1C] adds r3, r5, 0 mov r0, r12 ldr r0, [r0, 0x3C] mov r9, r0 mov r5, r12 ldr r5, [r5, 0x40] mov r10, r5 adds r1, 0x1 str r1, [sp, 0x10] adds r0, r2, 0 adds r0, 0x20 str r0, [sp, 0x18] movs r1, 0x8 add r8, r1 movs r1, 0x7 _08007DAE: ldr r0, [sp, 0x1C] ands r0, r4 cmp r0, r6 bne _08007DB8 orrs r7, r4 _08007DB8: lsrs r4, 4 lsrs r6, 4 subs r1, 0x1 cmp r1, 0 bge _08007DAE bics r3, r7 str r3, [r2] cmp r9, r2 bls _08007DCE mov r3, r12 str r2, [r3, 0x3C] _08007DCE: cmp r10, r2 bcs _08007DD6 mov r4, r12 str r2, [r4, 0x40] _08007DD6: ldr r1, [sp, 0x10] ldr r2, [sp, 0x18] ldr r5, [sp, 0x40] cmp r8, r5 blt _08007D78 _08007DE0: ldr r3, [sp, 0xC] ldr r4, [sp, 0x14] movs r0, 0x7 ands r0, r3 cmp r0, 0 bne _08007E02 mov r1, r12 ldr r0, [r1, 0x20] lsls r0, 2 adds r4, r0 ldr r2, [sp, 0x8] adds r2, 0x1 str r2, [sp, 0x8] movs r5, 0x8 ldrsh r0, [r1, r5] cmp r2, r0 bge _08007E0E _08007E02: ldr r0, [sp, 0x4] adds r0, 0x1 _08007E06: str r0, [sp, 0x4] ldr r1, [sp, 0x44] cmp r0, r1 blt _08007D5A _08007E0E: 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_8007D00 thumb_func_start sub_8007E20 sub_8007E20: push {r4-r6,lr} mov r6, r9 mov r5, r8 push {r5,r6} sub sp, 0x14 mov r8, r0 mov r9, r1 ldr r4, [sp, 0x2C] ldr r5, [sp, 0x30] ldr r6, [sp, 0x34] ldr r0, _08007E58 ldr r1, _08007E5C str r2, [sp] str r3, [sp, 0x4] str r4, [sp, 0x8] str r5, [sp, 0xC] str r6, [sp, 0x10] mov r2, r8 mov r3, r9 bl sub_8007E64 add sp, 0x14 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08007E58: .4byte gUnknown_2027370 _08007E5C: .4byte gUnknown_202B038 thumb_func_end sub_8007E20 thumb_func_start nullsub_160 nullsub_160: bx lr thumb_func_end nullsub_160 thumb_func_start sub_8007E64 sub_8007E64: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x10 str r1, [sp] str r3, [sp, 0x4] ldr r7, [sp, 0x30] ldr r1, [sp, 0x34] mov r9, r1 ldr r1, [sp, 0x38] mov r10, r1 ldr r5, [sp, 0x3C] lsls r1, r2, 3 adds r1, r2 lsls r1, 3 adds r4, r0, r1 adds r0, r3, 0 cmp r0, 0 bge _08007E90 adds r0, 0x7 _08007E90: asrs r0, 3 str r0, [sp, 0x4] adds r0, r7, 0 cmp r7, 0 bge _08007E9C adds r0, r7, 0x7 _08007E9C: asrs r7, r0, 3 mov r0, r9 cmp r0, 0 bge _08007EA6 adds r0, 0x7 _08007EA6: asrs r0, 3 mov r9, r0 mov r0, r10 cmp r0, 0 bge _08007EB2 adds r0, 0x7 _08007EB2: asrs r0, 3 mov r10, r0 ldr r2, [sp, 0x40] lsls r2, 12 str r2, [sp, 0x40] movs r1, 0x8 ldrsh r0, [r4, r1] cmp r7, r0 bge _08007F98 movs r2, 0x4 ldrsh r0, [r4, r2] muls r0, r7 ldr r1, [sp, 0x4] adds r0, r1 lsls r0, 5 ldr r1, [r4, 0x18] adds r1, r0 mov r8, r1 movs r2, 0 b _08007F92 _08007EDA: ldr r6, [sp, 0x4] mov r3, r8 adds r0, r7, 0x1 str r0, [sp, 0xC] mov r1, r9 cmp r1, 0 ble _08007F7A mov r12, r9 _08007EEA: movs r2, 0x4 ldrsh r0, [r4, r2] cmp r6, r0 bge _08007F68 ldr r0, [r4, 0x3C] cmp r0, r3 bls _08007EFA str r3, [r4, 0x3C] _08007EFA: ldm r5!, {r0} stm r3!, {r0} ldm r5!, {r0} stm r3!, {r0} ldm r5!, {r0} stm r3!, {r0} ldm r5!, {r0} stm r3!, {r0} ldm r5!, {r0} stm r3!, {r0} ldm r5!, {r0} stm r3!, {r0} ldm r5!, {r0} stm r3!, {r0} ldr r0, [r5] stm r3!, {r0} ldr r0, [r4, 0x40] cmp r0, r3 bcs _08007F22 str r3, [r4, 0x40] _08007F22: adds r5, 0x4 movs r1, 0x2 ldrsh r0, [r4, r1] adds r0, r7 movs r2, 0 ldrsh r1, [r4, r2] adds r1, r6 lsls r1, 1 lsls r0, 6 ldr r2, [sp] adds r0, r2 adds r1, r0 ldrh r2, [r1] ldr r0, _08007F64 ands r0, r2 strh r0, [r1] movs r1, 0x2 ldrsh r0, [r4, r1] adds r0, r7 movs r2, 0 ldrsh r1, [r4, r2] adds r1, r6 lsls r1, 1 lsls r0, 6 ldr r2, [sp] adds r0, r2 adds r1, r0 ldrh r2, [r1] ldr r0, [sp, 0x40] orrs r0, r2 strh r0, [r1] b _08007F6C .align 2, 0 _08007F64: .4byte 0x00000fff _08007F68: adds r3, 0x20 adds r5, 0x20 _08007F6C: adds r6, 0x1 movs r0, 0x1 negs r0, r0 add r12, r0 mov r1, r12 cmp r1, 0 bne _08007EEA _08007F7A: ldr r7, [sp, 0xC] ldr r0, [r4, 0x20] lsls r0, 2 add r8, r0 movs r2, 0x20 add r8, r2 movs r1, 0x8 ldrsh r0, [r4, r1] cmp r7, r0 bge _08007F98 ldr r2, [sp, 0x8] adds r2, 0x1 _08007F92: str r2, [sp, 0x8] cmp r2, r10 blt _08007EDA _08007F98: add sp, 0x10 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8007E64 thumb_func_start sub_8007FA8 sub_8007FA8: adds r3, r0, 0 lsrs r0, r3, 28 lsrs r1, r3, 20 movs r2, 0xF0 ands r1, r2 orrs r0, r1 lsrs r1, r3, 12 movs r2, 0xF0 lsls r2, 4 ands r1, r2 orrs r0, r1 lsrs r1, r3, 4 movs r2, 0xF0 lsls r2, 8 ands r1, r2 orrs r0, r1 lsls r1, r3, 4 movs r2, 0xF0 lsls r2, 12 ands r1, r2 orrs r0, r1 lsls r1, r3, 12 movs r2, 0xF0 lsls r2, 16 ands r1, r2 orrs r0, r1 lsls r1, r3, 20 movs r2, 0xF0 lsls r2, 20 ands r1, r2 orrs r0, r1 lsls r3, 28 orrs r0, r3 bx lr thumb_func_end sub_8007FA8 thumb_func_start sub_8007FEC sub_8007FEC: push {r4-r6,lr} mov r6, r9 mov r5, r8 push {r5,r6} sub sp, 0x14 mov r8, r0 mov r9, r1 ldr r4, [sp, 0x2C] ldr r5, [sp, 0x30] ldr r6, [sp, 0x34] ldr r0, _08008024 ldr r1, _08008028 str r2, [sp] str r3, [sp, 0x4] str r4, [sp, 0x8] str r5, [sp, 0xC] str r6, [sp, 0x10] mov r2, r8 mov r3, r9 bl sub_8008030 add sp, 0x14 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08008024: .4byte gUnknown_2027370 _08008028: .4byte gUnknown_202B038 thumb_func_end sub_8007FEC thumb_func_start nullsub_161 nullsub_161: bx lr thumb_func_end nullsub_161 thumb_func_start sub_8008030 sub_8008030: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x10 str r1, [sp] ldr r1, [sp, 0x30] mov r8, r1 ldr r6, [sp, 0x3C] lsls r1, r2, 3 adds r1, r2 lsls r1, 3 adds r5, r0, r1 adds r0, r3, 0 cmp r3, 0 bge _08008054 adds r0, r3, 0x7 _08008054: asrs r3, r0, 3 mov r0, r8 cmp r0, 0 bge _0800805E adds r0, 0x7 _0800805E: asrs r0, 3 mov r8, r0 ldr r0, [sp, 0x34] cmp r0, 0 bge _0800806A adds r0, 0x7 _0800806A: asrs r0, 3 str r0, [sp, 0x34] ldr r0, [sp, 0x38] cmp r0, 0 bge _08008076 adds r0, 0x7 _08008076: asrs r0, 3 str r0, [sp, 0x38] ldr r2, [sp, 0x40] lsls r2, 12 str r2, [sp, 0x40] movs r1, 0x8 ldrsh r0, [r5, r1] cmp r8, r0 blt _0800808A b _08008194 _0800808A: movs r2, 0x4 ldrsh r0, [r5, r2] mov r1, r8 muls r1, r0 adds r0, r1, 0 ldr r1, [sp, 0x34] adds r2, r3, r1 adds r0, r2 lsls r0, 5 ldr r1, [r5, 0x18] adds r1, r0 mov r10, r1 movs r3, 0 str r3, [sp, 0x4] str r2, [sp, 0xC] ldr r0, [sp, 0x38] cmp r3, r0 bge _08008194 _080080AE: ldr r7, [sp, 0xC] mov r4, r10 mov r1, r8 adds r1, 0x1 str r1, [sp, 0x8] ldr r2, [sp, 0x34] cmp r2, 0 ble _08008172 mov r9, r2 _080080C0: subs r7, 0x1 subs r4, 0x20 movs r3, 0x4 ldrsh r0, [r5, r3] cmp r7, r0 bge _08008164 ldr r0, [r5, 0x3C] cmp r0, r4 bls _080080D4 str r4, [r5, 0x3C] _080080D4: ldm r6!, {r0} bl sub_8007FA8 str r0, [r4] ldm r6!, {r0} bl sub_8007FA8 str r0, [r4, 0x4] ldm r6!, {r0} bl sub_8007FA8 str r0, [r4, 0x8] ldm r6!, {r0} bl sub_8007FA8 str r0, [r4, 0xC] ldm r6!, {r0} bl sub_8007FA8 str r0, [r4, 0x10] ldm r6!, {r0} bl sub_8007FA8 str r0, [r4, 0x14] ldm r6!, {r0} bl sub_8007FA8 str r0, [r4, 0x18] ldm r6!, {r0} bl sub_8007FA8 str r0, [r4, 0x1C] adds r1, r4, 0 adds r1, 0x20 ldr r0, [r5, 0x40] cmp r0, r1 bcs _08008120 str r1, [r5, 0x40] _08008120: movs r1, 0x2 ldrsh r0, [r5, r1] add r0, r8 movs r2, 0 ldrsh r1, [r5, r2] adds r1, r7 lsls r1, 1 lsls r0, 6 ldr r3, [sp] adds r0, r3 adds r1, r0 ldrh r0, [r1] ldr r3, _08008160 adds r2, r3, 0 ands r0, r2 strh r0, [r1] movs r1, 0x2 ldrsh r0, [r5, r1] add r0, r8 movs r2, 0 ldrsh r1, [r5, r2] adds r1, r7 lsls r1, 1 lsls r0, 6 ldr r3, [sp] adds r0, r3 adds r1, r0 ldrh r2, [r1] ldr r0, [sp, 0x40] orrs r0, r2 strh r0, [r1] b _08008166 .align 2, 0 _08008160: .4byte 0x00000fff _08008164: adds r6, 0x20 _08008166: movs r0, 0x1 negs r0, r0 add r9, r0 mov r1, r9 cmp r1, 0 bne _080080C0 _08008172: ldr r2, [sp, 0x8] mov r8, r2 ldr r0, [r5, 0x20] lsls r0, 2 add r10, r0 movs r3, 0x20 add r10, r3 movs r1, 0x8 ldrsh r0, [r5, r1] cmp r8, r0 bge _08008194 ldr r2, [sp, 0x4] adds r2, 0x1 str r2, [sp, 0x4] ldr r3, [sp, 0x38] cmp r2, r3 blt _080080AE _08008194: add sp, 0x10 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8008030 thumb_func_start sub_80081A4 sub_80081A4: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x4 str r1, [sp] lsls r1, r0, 3 adds r1, r0 lsls r1, 3 ldr r0, _08008234 adds r6, r1, r0 lsls r3, 7 ldr r0, _08008238 adds r3, r0 ldr r0, [sp] cmp r0, 0 bge _080081CA adds r0, 0x7 _080081CA: asrs r0, 3 str r0, [sp] adds r0, r2, 0 cmp r2, 0 bge _080081D6 adds r0, r2, 0x7 _080081D6: asrs r2, r0, 3 movs r0, 0x2 mov r9, r0 mov r10, r0 movs r1, 0x8 ldrsh r0, [r6, r1] cmp r2, r0 bge _08008262 movs r7, 0x4 ldrsh r0, [r6, r7] muls r0, r2 ldr r1, [sp] adds r0, r1 lsls r0, 5 ldr r1, [r6, 0x28] adds r5, r1, r0 movs r7, 0 mov r8, r7 _080081FA: ldr r4, [sp] adds r1, r5, 0 adds r2, 0x1 mov r12, r2 mov r0, r9 cmp r0, 0 beq _08008248 mov r2, r9 _0800820A: movs r7, 0x4 ldrsh r0, [r6, r7] cmp r4, r0 bge _0800823C ldm r3!, {r0} stm r1!, {r0} ldm r3!, {r0} stm r1!, {r0} ldm r3!, {r0} stm r1!, {r0} ldm r3!, {r0} stm r1!, {r0} ldm r3!, {r0} stm r1!, {r0} ldm r3!, {r0} stm r1!, {r0} ldm r3!, {r0} stm r1!, {r0} ldm r3!, {r0} stm r1!, {r0} b _08008240 .align 2, 0 _08008234: .4byte gUnknown_2027370 _08008238: .4byte gUnknown_80B86B4 _0800823C: adds r1, 0x20 adds r3, 0x20 _08008240: adds r4, 0x1 subs r2, 0x1 cmp r2, 0 bne _0800820A _08008248: mov r2, r12 ldr r0, [r6, 0x20] lsls r0, 2 adds r5, r0 adds r5, 0x20 movs r1, 0x8 ldrsh r0, [r6, r1] cmp r2, r0 bge _08008262 movs r7, 0x1 add r8, r7 cmp r8, r10 blt _080081FA _08008262: add sp, 0x4 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_80081A4 thumb_func_start sub_8008274 sub_8008274: push {r4,lr} sub sp, 0x4 adds r4, r0, 0 adds r3, r1, 0 ldr r0, _08008290 ldr r1, _08008294 str r2, [sp] adds r2, r4, 0 bl sub_800829C add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _08008290: .4byte gUnknown_2027370 _08008294: .4byte gUnknown_202B038 thumb_func_end sub_8008274 thumb_func_start nullsub_162 nullsub_162: bx lr thumb_func_end nullsub_162 thumb_func_start sub_800829C sub_800829C: push {r4-r7,lr} mov r7, r8 push {r7} mov r8, r1 ldr r7, [sp, 0x18] lsls r1, r2, 3 adds r1, r2 lsls r1, 3 adds r4, r0, r1 lsls r7, 12 ldr r0, [r4, 0x18] movs r1, 0x4 ldrsh r2, [r4, r1] movs r5, 0x8 ldrsh r1, [r4, r5] lsls r1, 5 muls r1, r2 adds r2, r3, 0 bl sub_800AAB4 movs r2, 0 movs r1, 0x8 ldrsh r0, [r4, r1] cmp r2, r0 bge _08008312 movs r0, 0x4 ldrsh r5, [r4, r0] mov r12, r5 _080082D4: adds r5, r2, 0x1 mov r1, r12 cmp r1, 0 ble _08008308 movs r0, 0x2 ldrsh r1, [r4, r0] adds r1, r2 movs r2, 0 ldrsh r0, [r4, r2] lsls r1, 6 ldr r6, _08008330 lsls r0, 1 adds r0, r1 mov r1, r8 adds r2, r0, r1 movs r0, 0x4 ldrsh r3, [r4, r0] _080082F6: ldrh r1, [r2] adds r0, r6, 0 ands r0, r1 orrs r0, r7 strh r0, [r2] adds r2, 0x2 subs r3, 0x1 cmp r3, 0 bne _080082F6 _08008308: adds r2, r5, 0 movs r1, 0x8 ldrsh r0, [r4, r1] cmp r2, r0 blt _080082D4 _08008312: ldr r0, [r4, 0x28] str r0, [r4, 0x30] ldr r0, [r4, 0x1C] str r0, [r4, 0x34] ldr r0, [r4, 0x2C] str r0, [r4, 0x38] adds r1, r4, 0 adds r1, 0x44 movs r0, 0x1 strb r0, [r1] pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08008330: .4byte 0x00000fff thumb_func_end sub_800829C thumb_func_start sub_8008334 sub_8008334: push {r4-r7,lr} adds r7, r0, 0 mov r12, r1 ldr r4, [r7] ldr r1, [r1] movs r3, 0 movs r2, 0 movs r6, 0xF movs r5, 0x1C _08008346: lsls r2, 4 lsls r3, 4 adds r0, r4, 0 ands r0, r6 orrs r2, r0 adds r0, r1, 0 ands r0, r6 orrs r3, r0 lsrs r4, 4 lsrs r1, 4 subs r5, 0x4 cmp r5, 0 bge _08008346 str r3, [r7] mov r0, r12 str r2, [r0] pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8008334 thumb_func_start sub_800836C sub_800836C: push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 adds r3, r2, 0 ldr r0, _08008384 adds r1, r4, 0 adds r2, r5, 0 bl sub_800838C pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08008384: .4byte gUnknown_2027370 thumb_func_end sub_800836C thumb_func_start nullsub_163 nullsub_163: bx lr thumb_func_end nullsub_163 thumb_func_start sub_800838C sub_800838C: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} lsls r4, r1, 3 adds r4, r1 lsls r4, 3 adds r7, r0, r4 adds r0, r1, 0 adds r1, r2, 0 adds r2, r3, 0 bl sub_8008274 movs r0, 0 mov r9, r0 b _08008452 _080083AE: movs r1, 0x4 ldrsh r0, [r7, r1] lsrs r1, r0, 31 adds r0, r1 asrs r0, 1 mov r8, r0 ldrh r1, [r7, 0x4] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _080083C8 movs r0, 0x1 add r8, r0 _080083C8: movs r6, 0 movs r1, 0x1 add r1, r9 mov r10, r1 cmp r6, r8 bge _08008450 _080083D4: movs r0, 0x4 ldrsh r1, [r7, r0] mov r0, r9 muls r0, r1 adds r4, r0, r6 lsls r4, 5 ldr r5, [r7, 0x18] adds r4, r5, r4 subs r0, 0x1 subs r1, r6 adds r0, r1 lsls r0, 5 adds r5, r0 adds r0, r4, 0 adds r4, 0x4 adds r1, r5, 0 adds r5, 0x4 bl sub_8008334 adds r0, r4, 0 adds r4, 0x4 adds r1, r5, 0 adds r5, 0x4 bl sub_8008334 adds r0, r4, 0 adds r4, 0x4 adds r1, r5, 0 adds r5, 0x4 bl sub_8008334 adds r0, r4, 0 adds r4, 0x4 adds r1, r5, 0 adds r5, 0x4 bl sub_8008334 adds r0, r4, 0 adds r4, 0x4 adds r1, r5, 0 adds r5, 0x4 bl sub_8008334 adds r0, r4, 0 adds r4, 0x4 adds r1, r5, 0 adds r5, 0x4 bl sub_8008334 adds r0, r4, 0 adds r4, 0x4 adds r1, r5, 0 adds r5, 0x4 bl sub_8008334 adds r0, r4, 0 adds r1, r5, 0 bl sub_8008334 adds r6, 0x1 cmp r6, r8 blt _080083D4 _08008450: mov r9, r10 _08008452: movs r1, 0x8 ldrsh r0, [r7, r1] cmp r9, r0 blt _080083AE pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_800838C thumb_func_start sub_8008468 sub_8008468: push {r4-r6,lr} mov r6, r8 push {r6} sub sp, 0x10 adds r6, r0, 0 mov r8, r1 ldr r4, [sp, 0x24] ldr r5, [sp, 0x28] ldr r0, _08008498 ldr r1, _0800849C str r2, [sp] str r3, [sp, 0x4] str r4, [sp, 0x8] str r5, [sp, 0xC] adds r2, r6, 0 mov r3, r8 bl sub_80084A4 add sp, 0x10 pop {r3} mov r8, r3 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08008498: .4byte gUnknown_2027370 _0800849C: .4byte gUnknown_202B038 thumb_func_end sub_8008468 thumb_func_start nullsub_164 nullsub_164: bx lr thumb_func_end nullsub_164 thumb_func_start sub_80084A4 sub_80084A4: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x4 str r1, [sp] mov r10, r3 ldr r6, [sp, 0x24] ldr r7, [sp, 0x28] ldr r1, [sp, 0x2C] mov r12, r1 lsls r1, r2, 3 adds r1, r2 lsls r1, 3 adds r4, r0, r1 mov r0, r10 cmp r0, 0 bge _080084CC adds r0, 0x7 _080084CC: asrs r0, 3 mov r10, r0 adds r0, r6, 0 cmp r6, 0 bge _080084D8 adds r0, r6, 0x7 _080084D8: asrs r6, r0, 3 adds r0, r7, 0 cmp r7, 0 bge _080084E2 adds r0, r7, 0x7 _080084E2: asrs r7, r0, 3 mov r0, r12 cmp r0, 0 bge _080084EC adds r0, 0x7 _080084EC: asrs r0, 3 mov r12, r0 ldr r2, [sp, 0x30] lsls r2, 12 str r2, [sp, 0x30] movs r1, 0x8 ldrsh r0, [r4, r1] cmp r6, r0 bge _08008570 movs r2, 0 mov r8, r2 cmp r8, r12 bge _08008570 _08008506: mov r3, r10 adds r0, r6, 0x1 mov r9, r0 cmp r7, 0 ble _0800855E adds r5, r7, 0 _08008512: movs r1, 0x4 ldrsh r0, [r4, r1] cmp r3, r0 bge _08008556 movs r2, 0x2 ldrsh r0, [r4, r2] adds r0, r6 movs r2, 0 ldrsh r1, [r4, r2] adds r1, r3 lsls r1, 1 lsls r0, 6 ldr r2, [sp] adds r0, r2 adds r1, r0 ldrh r2, [r1] ldr r0, _08008580 ands r0, r2 strh r0, [r1] movs r1, 0x2 ldrsh r0, [r4, r1] adds r0, r6 movs r2, 0 ldrsh r1, [r4, r2] adds r1, r3 lsls r1, 1 lsls r0, 6 ldr r2, [sp] adds r0, r2 adds r1, r0 ldrh r2, [r1] ldr r0, [sp, 0x30] orrs r0, r2 strh r0, [r1] _08008556: adds r3, 0x1 subs r5, 0x1 cmp r5, 0 bne _08008512 _0800855E: mov r6, r9 movs r1, 0x8 ldrsh r0, [r4, r1] cmp r6, r0 bge _08008570 movs r2, 0x1 add r8, r2 cmp r8, r12 blt _08008506 _08008570: add sp, 0x4 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08008580: .4byte 0x00000fff thumb_func_end sub_80084A4 thumb_func_start sub_8008584 sub_8008584: push {r4,r5,lr} adds r3, r0, 0 ldr r1, _080085C4 ldr r0, _080085C8 ldr r0, [r0] lsls r0, 2 adds r0, r1 ldr r2, [r0] ldr r5, [r2, 0x4] ldr r0, _080085CC adds r1, r3, r0 ldr r0, _080085D0 cmp r1, r0 bhi _080085D4 movs r2, 0xFF ands r2, r3 movs r1, 0xFF lsls r1, 8 ands r1, r3 asrs r1, 8 subs r2, 0x20 subs r1, 0xF8 lsls r0, r1, 3 subs r0, r1 lsls r0, 5 adds r0, r2 lsls r1, r0, 1 adds r1, r0 lsls r1, 2 adds r1, r5, r1 b _08008624 .align 2, 0 _080085C4: .4byte gUnknown_2027490 _080085C8: .4byte gUnknown_20274AC _080085CC: .4byte 0xffff0800 _080085D0: .4byte 0x000007fe _080085D4: movs r4, 0 ldr r0, [r2] subs r2, r0, 0x1 cmp r4, r2 bge _08008614 lsrs r0, r2, 31 adds r0, r2, r0 b _08008602 _080085E4: lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r5 ldrh r0, [r0, 0x4] cmp r0, r3 bge _080085F6 adds r4, r1, 0x1 b _080085F8 _080085F6: adds r2, r1, 0 _080085F8: cmp r4, r2 bge _08008614 adds r0, r4, r2 lsrs r1, r0, 31 adds r0, r1 _08008602: asrs r1, r0, 1 lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r5 ldrh r0, [r0, 0x4] cmp r0, r3 bne _080085E4 adds r4, r1, 0 _08008614: lsls r0, r4, 1 adds r0, r4 lsls r0, 2 adds r1, r5, r0 ldrh r0, [r1, 0x4] cmp r0, r3 beq _08008624 ldr r1, _0800862C _08008624: adds r0, r1, 0 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _0800862C: .4byte gUnknown_80B86A4 thumb_func_end sub_8008584 thumb_func_start sub_8008630 sub_8008630: push {lr} lsls r0, 24 lsrs r1, r0, 24 adds r3, r1, 0 adds r2, r1, 0 subs r2, 0x30 lsls r0, r2, 24 lsrs r0, 24 cmp r0, 0x9 bhi _08008648 adds r0, r2, 0 b _0800865C _08008648: adds r0, r1, 0 subs r0, 0x61 lsls r0, 24 lsrs r0, 24 cmp r0, 0x5 bls _08008658 movs r0, 0x1 b _0800865C _08008658: adds r0, r3, 0 subs r0, 0x57 _0800865C: pop {r1} bx r1 thumb_func_end sub_8008630 thumb_func_start xxx_get_next_char_from_string xxx_get_next_char_from_string: push {r4-r6,lr} adds r5, r0, 0 adds r6, r1, 0 ldrb r1, [r5] cmp r1, 0x7E bne _08008696 adds r5, 0x1 ldrb r0, [r5] bl sub_8008630 adds r4, r0, 0 ldrb r0, [r5, 0x1] bl sub_8008630 lsls r4, 4 adds r4, r0 ldrb r0, [r5] cmp r0, 0 beq _08008690 adds r5, 0x1 ldrb r0, [r5] cmp r0, 0 beq _08008690 adds r5, 0x1 _08008690: str r4, [r6] adds r0, r5, 0 b _080086B2 _08008696: adds r0, r1, 0 subs r0, 0x81 cmp r0, 0x3 bls _080086A2 cmp r1, 0x87 bne _080086AE _080086A2: ldrb r0, [r5, 0x1] lsls r1, 8 orrs r0, r1 str r0, [r6] adds r0, r5, 0x2 b _080086B2 _080086AE: str r1, [r6] adds r0, r5, 0x1 _080086B2: pop {r4-r6} pop {r1} bx r1 thumb_func_end xxx_get_next_char_from_string thumb_func_start nullsub_165 nullsub_165: bx lr thumb_func_end nullsub_165 thumb_func_start nullsub_166 nullsub_166: bx lr thumb_func_end nullsub_166 thumb_func_start nullsub_167 nullsub_167: bx lr thumb_func_end nullsub_167 thumb_func_start nullsub_168 nullsub_168: bx lr thumb_func_end nullsub_168 thumb_func_start sub_80086C8 sub_80086C8: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0xC mov r9, r2 ldr r7, [sp, 0x30] lsls r2, r1, 3 adds r2, r1 lsls r2, 3 adds r0, r2 mov r12, r0 mov r0, r9 cmp r0, 0 bge _080086F2 ldr r1, [sp, 0x2C] add r1, r9 str r1, [sp, 0x2C] movs r2, 0 mov r9, r2 _080086F2: cmp r3, 0 bge _080086FA adds r7, r3 movs r3, 0 _080086FA: ldr r0, [sp, 0x2C] add r0, r9 mov r4, r12 movs r5, 0x4 ldrsh r2, [r4, r5] lsls r1, r2, 3 cmp r0, r1 ble _08008710 mov r0, r9 subs r0, r1, r0 str r0, [sp, 0x2C] _08008710: adds r1, r3, r7 mov r4, r12 movs r5, 0x8 ldrsh r0, [r4, r5] lsls r0, 3 cmp r1, r0 ble _08008720 subs r7, r0, r3 _08008720: adds r1, r3, 0 cmp r3, 0 bge _08008728 adds r1, r3, 0x7 _08008728: asrs r1, 3 muls r2, r1 mov r0, r9 cmp r0, 0 bge _08008734 adds r0, 0x7 _08008734: asrs r0, 3 adds r0, r2, r0 lsls r0, 3 lsls r1, 3 subs r1, r3, r1 adds r0, r1 lsls r0, 2 mov r2, r12 ldr r1, [r2, 0x18] b _080087D6 _08008748: adds r2, r5, 0 ldr r4, [sp, 0x2C] mov r6, r9 mov r1, r12 ldr r0, [r1, 0x3C] cmp r0, r5 bls _08008758 str r5, [r1, 0x3C] _08008758: subs r0, r7, 0x1 str r0, [sp, 0x4] adds r3, 0x1 str r3, [sp, 0x8] mov r1, r12 ldr r1, [r1, 0x40] str r1, [sp] adds r0, r5, 0x4 mov r10, r0 cmp r4, 0 ble _080087B6 ldr r1, _0800878C mov r8, r1 movs r7, 0x7 _08008774: cmp r4, 0x7 bgt _08008790 adds r3, r4, 0 adds r0, r4, 0 ands r0, r7 adds r0, 0x8 lsls r0, 2 add r0, r8 ldr r1, [r2] ldr r0, [r0] ands r1, r0 b _080087AA .align 2, 0 _0800878C: .4byte gUnknown_80B8868 _08008790: adds r1, r6, 0 ands r1, r7 cmp r1, 0 beq _080087A8 movs r0, 0x8 subs r3, r0, r1 lsls r0, r1, 2 add r0, r8 ldr r1, [r2] ldr r0, [r0] ands r1, r0 b _080087AA _080087A8: movs r3, 0x8 _080087AA: str r1, [r2] adds r2, 0x20 subs r4, r3 adds r6, r3 cmp r4, 0 bgt _08008774 _080087B6: ldr r7, [sp, 0x4] ldr r3, [sp, 0x8] ldr r2, [sp] cmp r2, r5 bcs _080087C4 mov r4, r12 str r5, [r4, 0x40] _080087C4: mov r5, r10 movs r0, 0x7 ands r0, r3 cmp r0, 0 bne _080087D8 mov r5, r12 ldr r0, [r5, 0x20] lsls r0, 2 mov r1, r10 _080087D6: adds r5, r1, r0 _080087D8: cmp r7, 0 bgt _08008748 add sp, 0xC pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_80086C8 thumb_func_start sub_80087EC sub_80087EC: push {r4-r6,lr} sub sp, 0x8 adds r4, r0, 0 adds r5, r1, 0 adds r6, r2, 0 ldr r1, [sp, 0x18] ldr r0, _08008810 str r3, [sp] str r1, [sp, 0x4] adds r1, r4, 0 adds r2, r5, 0 adds r3, r6, 0 bl sub_8008818 add sp, 0x8 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08008810: .4byte gUnknown_2027370 thumb_func_end sub_80087EC thumb_func_start nullsub_176 nullsub_176: bx lr thumb_func_end nullsub_176 thumb_func_start sub_8008818 sub_8008818: push {r4-r7,lr} mov r7, r8 push {r7} adds r5, r3, 0 ldr r7, [sp, 0x18] ldr r3, [sp, 0x1C] mov r12, r3 lsls r3, r1, 3 adds r3, r1 lsls r3, 3 adds r4, r0, r3 cmp r2, 0 bge _08008834 adds r2, 0x7 _08008834: asrs r2, 3 mov r8, r2 adds r3, r5, 0 cmp r3, 0 bge _08008840 adds r3, 0x7 _08008840: asrs r3, 3 movs r2, 0 cmp r2, r12 bge _08008892 _08008848: movs r1, 0x4 ldrsh r0, [r4, r1] muls r0, r3 add r0, r8 lsls r0, 5 ldr r1, [r4, 0x18] adds r1, r0 movs r5, 0 adds r3, 0x1 adds r6, r2, 0 adds r6, 0x8 cmp r5, r7 bge _0800888C movs r2, 0 _08008864: ldr r0, [r4, 0x3C] cmp r0, r1 bls _0800886C str r1, [r4, 0x3C] _0800886C: stm r1!, {r2} stm r1!, {r2} stm r1!, {r2} stm r1!, {r2} stm r1!, {r2} stm r1!, {r2} stm r1!, {r2} str r2, [r1] ldr r0, [r4, 0x40] cmp r0, r1 bcs _08008884 str r1, [r4, 0x40] _08008884: adds r1, 0x4 adds r5, 0x8 cmp r5, r7 blt _08008864 _0800888C: adds r2, r6, 0 cmp r2, r12 blt _08008848 _08008892: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8008818 thumb_func_start xxx_call_update_bg_vram xxx_call_update_bg_vram: push {lr} movs r1, 0 ldr r2, _080088C0 ldrb r0, [r2] cmp r0, 0 beq _080088AE strb r1, [r2] bl sub_80099C0 _080088AE: ldr r0, _080088C4 bl xxx_update_bg_vram lsls r0, 24 lsrs r1, r0, 24 adds r0, r1, 0 pop {r1} bx r1 .align 2, 0 _080088C0: .4byte gUnknown_20274A5 _080088C4: .4byte gUnknown_2027370 thumb_func_end xxx_call_update_bg_vram thumb_func_start xxx_update_bg_vram xxx_update_bg_vram: push {r4-r7,lr} mov r7, r8 push {r7} mov r8, r0 movs r2, 0 movs r1, 0 movs r7, 0xD0 lsls r7, 4 _080088D8: lsls r0, r1, 3 adds r0, r1 lsls r0, 3 mov r3, r8 adds r4, r3, r0 movs r5, 0x4 ldrsh r0, [r4, r5] adds r6, r1, 0x1 cmp r0, 0 beq _0800897A ldr r5, [r4, 0x38] cmp r5, 0 beq _0800897A adds r0, r4, 0 adds r0, 0x45 ldrb r0, [r0] cmp r0, 0 beq _0800894C ldr r0, [r4, 0x28] ldr r1, [r4, 0x18] adds r2, r7, 0 bl CpuCopy ldr r0, [r4, 0x18] adds r2, r0, r7 ldr r0, [r4, 0x28] adds r1, r0, r7 movs r3, 0 b _08008938 _08008912: ldm r2!, {r0} stm r1!, {r0} ldm r2!, {r0} stm r1!, {r0} ldm r2!, {r0} stm r1!, {r0} ldm r2!, {r0} stm r1!, {r0} ldm r2!, {r0} stm r1!, {r0} ldr r0, _08008944 stm r1!, {r0} ldr r0, _08008948 stm r1!, {r0} movs r0, 0x1 negs r0, r0 stm r1!, {r0} adds r2, 0xC adds r3, 0x1 _08008938: movs r5, 0x4 ldrsh r0, [r4, r5] cmp r3, r0 blt _08008912 movs r0, 0 b _0800896A .align 2, 0 _08008944: .4byte 0xdddddddd _08008948: .4byte 0xeeeeeeee _0800894C: ldr r0, [r4, 0x30] ldr r1, [r4, 0x34] adds r2, r5, 0 bl CpuCopy lsrs r1, r5, 2 lsls r1, 2 ldr r0, [r4, 0x34] adds r0, r1 str r0, [r4, 0x34] ldr r0, [r4, 0x30] adds r0, r5 str r0, [r4, 0x30] ldr r0, [r4, 0x38] subs r0, r5 _0800896A: str r0, [r4, 0x38] ldr r1, [r4, 0x38] cmp r1, 0 bne _08008978 adds r0, r4, 0 adds r0, 0x44 strb r1, [r0] _08008978: movs r2, 0x1 _0800897A: adds r1, r6, 0 cmp r1, 0x3 ble _080088D8 adds r0, r2, 0 pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 thumb_func_end xxx_update_bg_vram thumb_func_start sub_800898C sub_800898C: push {lr} ldr r1, _080089A4 ldr r2, _080089A8 movs r3, 0xA0 lsls r3, 1 adds r0, r1, r3 _08008998: strh r2, [r0] subs r0, 0x2 cmp r0, r1 bge _08008998 pop {r0} bx r0 .align 2, 0 _080089A4: .4byte gUnknown_3000E94 _080089A8: .4byte 0x0000f0f0 thumb_func_end sub_800898C thumb_func_start sub_80089AC sub_80089AC: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x4 adds r4, r0, 0 adds r5, r1, 0 ldrb r1, [r4] movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _080089C8 b _08008C44 _080089C8: ldr r6, _08008A3C ldr r7, [r4, 0x4] cmp r7, 0x1 bne _08008A60 movs r0, 0x8 ldrsh r2, [r4, r0] movs r1, 0 ldrsh r0, [r5, r1] adds r2, r0 lsls r3, r2, 3 mov r12, r3 movs r7, 0xA ldrsh r1, [r4, r7] movs r3, 0x2 ldrsh r0, [r5, r3] adds r1, r0 lsls r5, r1, 3 movs r7, 0xC ldrsh r0, [r4, r7] adds r2, r0 lsls r7, r2, 3 movs r2, 0xE ldrsh r0, [r4, r2] adds r1, r0 lsls r2, r1, 3 cmp r0, 0 bne _08008A00 b _08008C44 _08008A00: cmp r5, 0 bge _08008A06 movs r5, 0 _08008A06: cmp r2, 0 bge _08008A0C movs r2, 0 _08008A0C: cmp r5, 0xA0 ble _08008A12 movs r5, 0xA0 _08008A12: cmp r2, 0xA0 ble _08008A18 movs r2, 0xA0 _08008A18: cmp r5, r2 blt _08008A1E b _08008C44 _08008A1E: lsls r3, r5, 1 adds r1, r6, r3 ldrb r0, [r1] cmp r0, 0xF0 bne _08008A40 ldrb r0, [r1, 0x1] cmp r0, 0xF0 bne _08008A40 strb r7, [r1] adds r3, 0x1 adds r0, r6, r3 mov r1, r12 strb r1, [r0] b _08008A58 .align 2, 0 _08008A3C: .4byte gUnknown_3000E94 _08008A40: adds r1, r6, r3 ldrb r0, [r1] cmp r0, r7 bge _08008A4A strb r7, [r1] _08008A4A: adds r3, 0x1 adds r3, r6, r3 ldrb r0, [r3] cmp r0, r12 ble _08008A58 mov r0, r12 strb r0, [r3] _08008A58: adds r5, 0x1 cmp r5, r2 blt _08008A1E b _08008C44 _08008A60: cmp r7, 0x6 beq _08008A66 b _08008BA8 _08008A66: movs r2, 0x8 ldrsh r1, [r4, r2] movs r3, 0 ldrsh r0, [r5, r3] adds r1, r0 lsls r3, r1, 3 subs r7, r3, 0x5 mov r9, r7 movs r2, 0xA ldrsh r0, [r4, r2] movs r7, 0x2 ldrsh r2, [r5, r7] adds r0, r2 lsls r2, r0, 3 subs r5, r2, 0x4 movs r7, 0xC ldrsh r2, [r4, r7] adds r1, r2 lsls r1, 3 adds r1, 0x5 str r1, [sp] movs r2, 0xE ldrsh r1, [r4, r2] adds r0, r1 lsls r0, 3 adds r0, 0x5 mov r8, r0 adds r3, 0x3 mov r12, r3 ldr r2, [r4, 0x14] ldrb r1, [r2, 0x2] subs r0, r1, 0x1 ldrb r3, [r2] adds r0, r3 adds r0, 0x2 lsls r0, 3 add r0, r12 subs r0, 0x4 mov r10, r0 ldrb r0, [r2, 0x1] adds r0, 0x1 lsls r0, 3 mov r7, r9 adds r4, r7, r0 adds r1, 0x2 lsls r1, 3 adds r1, r4, r1 subs r7, r1, 0x4 cmp r5, 0 bge _08008ACC movs r5, 0 _08008ACC: mov r0, r8 cmp r0, 0 bge _08008AD6 movs r1, 0 mov r8, r1 _08008AD6: cmp r5, 0xA0 ble _08008ADC movs r5, 0xA0 _08008ADC: mov r2, r8 cmp r2, 0xA0 ble _08008AE6 movs r3, 0xA0 mov r8, r3 _08008AE6: movs r3, 0x3 _08008AE8: lsls r2, r5, 1 adds r1, r6, r2 ldrb r0, [r1] cmp r0, 0xF0 bne _08008B02 ldrb r0, [r1, 0x1] cmp r0, 0xF0 bne _08008B02 strb r7, [r1] adds r2, 0x1 adds r0, r6, r2 strb r4, [r0] b _08008B18 _08008B02: adds r1, r6, r2 ldrb r0, [r1] cmp r0, r7 bge _08008B0C strb r7, [r1] _08008B0C: adds r2, 0x1 adds r2, r6, r2 ldrb r0, [r2] cmp r0, r4 ble _08008B18 strb r4, [r2] _08008B18: adds r5, 0x1 subs r3, 0x1 cmp r3, 0 bge _08008AE8 movs r3, 0x7 _08008B22: lsls r1, r5, 1 adds r2, r6, r1 ldrb r0, [r2] cmp r0, 0xF0 bne _08008B40 ldrb r0, [r2, 0x1] cmp r0, 0xF0 bne _08008B40 mov r7, r10 strb r7, [r2] adds r1, 0x1 adds r0, r6, r1 mov r1, r12 strb r1, [r0] b _08008B5A _08008B40: adds r2, r6, r1 ldrb r0, [r2] cmp r0, r10 bge _08008B4C mov r7, r10 strb r7, [r2] _08008B4C: adds r1, 0x1 adds r1, r6, r1 ldrb r0, [r1] cmp r0, r12 ble _08008B5A mov r0, r12 strb r0, [r1] _08008B5A: adds r5, 0x1 subs r3, 0x1 cmp r3, 0 bge _08008B22 cmp r5, r8 bge _08008C44 _08008B66: lsls r1, r5, 1 adds r2, r6, r1 ldrb r0, [r2] cmp r0, 0xF0 bne _08008B86 ldrb r0, [r2, 0x1] cmp r0, 0xF0 bne _08008B86 mov r3, sp ldrb r3, [r3] strb r3, [r2] adds r1, 0x1 adds r0, r6, r1 mov r7, r9 strb r7, [r0] b _08008BA0 _08008B86: adds r2, r6, r1 ldrb r0, [r2] ldr r3, [sp] cmp r0, r3 bge _08008B92 strb r3, [r2] _08008B92: adds r1, 0x1 adds r1, r6, r1 ldrb r0, [r1] cmp r0, r9 ble _08008BA0 mov r0, r9 strb r0, [r1] _08008BA0: adds r5, 0x1 cmp r5, r8 blt _08008B66 b _08008C44 _08008BA8: movs r1, 0x8 ldrsh r0, [r4, r1] movs r2, 0 ldrsh r1, [r5, r2] adds r0, r1 lsls r1, r0, 3 subs r1, 0x5 mov r8, r1 movs r3, 0xA ldrsh r2, [r4, r3] movs r3, 0x2 ldrsh r1, [r5, r3] adds r2, r1 lsls r5, r2, 3 mov r9, r5 mov r3, r9 subs r3, 0x5 movs r5, 0xC ldrsh r1, [r4, r5] adds r0, r1 lsls r0, 3 adds r0, 0x5 mov r12, r0 movs r1, 0xE ldrsh r0, [r4, r1] adds r2, r0 lsls r1, r2, 3 adds r5, r1, 0x5 cmp r0, 0 beq _08008C44 cmp r7, 0 bne _08008BEC adds r3, 0x8 subs r5, r1, 0x3 _08008BEC: cmp r3, 0 bge _08008BF2 movs r3, 0 _08008BF2: cmp r5, 0 bge _08008BF8 movs r5, 0 _08008BF8: cmp r3, 0xA0 ble _08008BFE movs r3, 0xA0 _08008BFE: cmp r5, 0xA0 ble _08008C40 movs r5, 0xA0 b _08008C40 _08008C06: lsls r1, r3, 1 adds r2, r6, r1 ldrb r0, [r2] cmp r0, 0xF0 bne _08008C24 ldrb r0, [r2, 0x1] cmp r0, 0xF0 bne _08008C24 mov r7, r12 strb r7, [r2] adds r1, 0x1 adds r0, r6, r1 mov r1, r8 strb r1, [r0] b _08008C3E _08008C24: adds r2, r6, r1 ldrb r0, [r2] cmp r0, r12 bge _08008C30 mov r7, r12 strb r7, [r2] _08008C30: adds r1, 0x1 adds r1, r6, r1 ldrb r0, [r1] cmp r0, r8 ble _08008C3E mov r0, r8 strb r0, [r1] _08008C3E: adds r3, 0x1 _08008C40: cmp r3, r5 blt _08008C06 _08008C44: add sp, 0x4 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_80089AC thumb_func_start sub_8008C54 sub_8008C54: push {lr} adds r1, r0, 0 ldr r0, _08008C64 bl sub_8008C6C pop {r0} bx r0 .align 2, 0 _08008C64: .4byte gUnknown_2027370 thumb_func_end sub_8008C54 thumb_func_start nullsub_169 nullsub_169: bx lr thumb_func_end nullsub_169 thumb_func_start sub_8008C6C sub_8008C6C: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0xC mov r9, r0 mov r8, r1 lsls r0, r1, 3 add r0, r8 lsls r0, 3 mov r1, r9 adds r6, r1, r0 adds r0, r6, 0 adds r0, 0x45 ldrb r0, [r0] cmp r0, 0 bne _08008CBE movs r2, 0x4 ldrsh r0, [r6, r2] movs r7, 0x8 ldrsh r1, [r6, r7] muls r0, r1 lsls r4, r0, 5 movs r5, 0 movs r0, 0x44 adds r0, r6 mov r10, r0 cmp r5, r4 bge _08008D1E _08008CA8: lsrs r1, r5, 2 lsls r1, 2 ldr r0, [r6, 0x18] adds r0, r1 movs r1, 0x20 bl CpuClear adds r5, 0x20 cmp r5, r4 blt _08008CA8 b _08008D1E _08008CBE: movs r1, 0x4 ldrsh r0, [r6, r1] movs r2, 0x8 ldrsh r1, [r6, r2] subs r1, 0x1 muls r1, r0 lsls r1, 5 str r1, [sp, 0x8] ldr r4, [r6, 0x18] movs r5, 0 movs r7, 0x44 adds r7, r6 mov r10, r7 cmp r5, r0 bge _08008D04 movs r0, 0x1 negs r0, r0 mov r12, r0 movs r1, 0 ldr r3, _08008D84 ldr r2, _08008D88 _08008CE8: mov r7, r12 stm r4!, {r7} stm r4!, {r3} stm r4!, {r2} stm r4!, {r1} stm r4!, {r1} stm r4!, {r1} stm r4!, {r1} stm r4!, {r1} adds r5, 0x1 movs r7, 0x4 ldrsh r0, [r6, r7] cmp r5, r0 blt _08008CE8 _08008D04: movs r5, 0 ldr r0, [sp, 0x8] cmp r5, r0 bge _08008D1E _08008D0C: adds r0, r4, 0 movs r1, 0x20 bl CpuClear adds r4, 0x20 adds r5, 0x20 ldr r1, [sp, 0x8] cmp r5, r1 blt _08008D0C _08008D1E: ldr r0, [r6, 0xC] cmp r0, 0x6 bne _08008D60 adds r5, r6, 0 adds r5, 0x46 movs r4, 0 movs r0, 0x1 strb r0, [r5] movs r2, 0x4 ldrsh r0, [r6, r2] lsls r0, 3 str r0, [sp] movs r0, 0xE str r0, [sp, 0x4] mov r0, r9 mov r1, r8 movs r2, 0 movs r3, 0xA bl sub_8007958 movs r7, 0x4 ldrsh r0, [r6, r7] lsls r0, 3 str r0, [sp] movs r0, 0xD str r0, [sp, 0x4] mov r0, r9 mov r1, r8 movs r2, 0 movs r3, 0xB bl sub_8007958 strb r4, [r5] _08008D60: ldr r0, [r6, 0x28] str r0, [r6, 0x30] ldr r0, [r6, 0x1C] str r0, [r6, 0x34] ldr r0, [r6, 0x2C] str r0, [r6, 0x38] movs r0, 0x1 mov r1, r10 strb r0, [r1] add sp, 0xC pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08008D84: .4byte 0xeeeeeeee _08008D88: .4byte 0xdddddddd thumb_func_end sub_8008C6C thumb_func_start sub_8008D8C sub_8008D8C: push {lr} lsls r1, r0, 3 adds r1, r0 lsls r1, 3 ldr r0, _08008DA4 adds r1, r0 ldr r0, [r1, 0x38] cmp r0, 0 beq _08008DA0 movs r0, 0x1 _08008DA0: pop {r1} bx r1 .align 2, 0 _08008DA4: .4byte gUnknown_2027370 thumb_func_end sub_8008D8C thumb_func_start sub_8008DA8 sub_8008DA8: movs r0, 0 bx lr thumb_func_end sub_8008DA8 thumb_func_start sub_8008DAC sub_8008DAC: ldr r3, _08008DC0 lsls r0, 1 lsls r1, 6 adds r0, r1 adds r0, r3 strh r2, [r0] ldr r1, _08008DC4 movs r0, 0x1 strb r0, [r1] bx lr .align 2, 0 _08008DC0: .4byte gUnknown_202B038 _08008DC4: .4byte gUnknown_20274A5 thumb_func_end sub_8008DAC thumb_func_start sub_8008DC8 sub_8008DC8: push {r4,lr} ldr r4, _08008DEC lsls r0, 1 lsls r1, 6 adds r0, r1 adds r1, r0, r4 strh r2, [r1] movs r1, 0x80 lsls r1, 4 adds r4, r1 adds r0, r4 strh r3, [r0] ldr r1, _08008DF0 movs r0, 0x1 strb r0, [r1] pop {r4} pop {r0} bx r0 .align 2, 0 _08008DEC: .4byte gUnknown_202B038 _08008DF0: .4byte gUnknown_20274A5 thumb_func_end sub_8008DC8 thumb_func_start sub_8008DF4 sub_8008DF4: push {r4-r7,lr} adds r4, r0, 0 adds r5, r1, 0 adds r3, r2, 0 ldrb r0, [r3] ldr r1, _08008E4C mov r12, r1 cmp r0, 0 beq _08008E3E ldr r6, _08008E50 _08008E08: ldrb r1, [r3] adds r0, r1, 0 subs r0, 0x61 lsls r0, 24 lsrs r0, 24 cmp r0, 0x19 bhi _08008E1E adds r0, r1, 0 subs r0, 0x20 lsls r0, 24 lsrs r1, r0, 24 _08008E1E: lsls r2, r4, 1 lsls r0, r5, 6 adds r2, r0 adds r2, r6 movs r7, 0x96 lsls r7, 2 adds r0, r1, r7 ldr r7, _08008E54 adds r1, r7, 0 orrs r0, r1 strh r0, [r2] adds r3, 0x1 adds r4, 0x1 ldrb r0, [r3] cmp r0, 0 bne _08008E08 _08008E3E: movs r0, 0x1 mov r1, r12 strb r0, [r1] pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08008E4C: .4byte gUnknown_20274A5 _08008E50: .4byte gUnknown_202B038 _08008E54: .4byte 0xfffff000 thumb_func_end sub_8008DF4 thumb_func_start sub_8008E58 sub_8008E58: push {r4-r7,lr} mov r7, r8 push {r7} adds r5, r0, 0 mov r8, r1 adds r4, r2, 0 ldrb r0, [r4] ldr r7, _08008EC4 cmp r0, 0 beq _08008EB4 adds r1, r0, 0 cmp r3, 0 beq _08008EB4 ldr r0, _08008EC8 mov r12, r0 _08008E76: adds r0, r1, 0 subs r0, 0x61 lsls r0, 24 lsrs r0, 24 cmp r0, 0x19 bhi _08008E8A adds r0, r1, 0 subs r0, 0x20 lsls r0, 24 lsrs r1, r0, 24 _08008E8A: lsls r2, r5, 1 mov r6, r8 lsls r0, r6, 6 adds r2, r0 add r2, r12 movs r6, 0x96 lsls r6, 2 adds r0, r1, r6 ldr r6, _08008ECC adds r1, r6, 0 orrs r0, r1 strh r0, [r2] adds r4, 0x1 adds r5, 0x1 subs r3, 0x1 ldrb r0, [r4] cmp r0, 0 beq _08008EB4 adds r1, r0, 0 cmp r3, 0 bne _08008E76 _08008EB4: movs r0, 0x1 strb r0, [r7] pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08008EC4: .4byte gUnknown_20274A5 _08008EC8: .4byte gUnknown_202B038 _08008ECC: .4byte 0xfffff000 thumb_func_end sub_8008E58 thumb_func_start sub_8008ED0 sub_8008ED0: push {r4,r5,lr} sub sp, 0x4 adds r4, r0, 0 movs r5, 0 b _08008F64 _08008EDA: ldr r0, _08008F18 cmp r1, r0 beq _08008F64 adds r0, 0x2 cmp r1, r0 beq _08008F64 cmp r1, 0x1B beq _08008F7E cmp r1, 0x23 bne _08008F44 ldrb r0, [r2] cmp r0, 0x6E beq _08008F7E cmp r0, 0x5B beq _08008F7E cmp r0, 0x50 beq _08008F7E cmp r0, 0x57 beq _08008F40 cmp r0, 0x57 bgt _08008F22 cmp r0, 0x43 beq _08008F38 cmp r0, 0x43 bgt _08008F1C cmp r0, 0x2B beq _08008F40 cmp r0, 0x3D beq _08008F34 b _08008F64 .align 2, 0 _08008F18: .4byte 0x000082a0 _08008F1C: cmp r0, 0x52 beq _08008F3C b _08008F64 _08008F22: cmp r0, 0x72 beq _08008F3C cmp r0, 0x72 bgt _08008F30 cmp r0, 0x63 beq _08008F38 b _08008F64 _08008F30: cmp r0, 0x7E bne _08008F64 _08008F34: adds r4, r2, 0x2 b _08008F64 _08008F38: adds r4, 0x2 b _08008F64 _08008F3C: adds r4, 0x1 b _08008F64 _08008F40: adds r4, r2, 0x1 b _08008F64 _08008F44: cmp r1, 0x60 bne _08008F4C adds r5, 0x6 b _08008F64 _08008F4C: adds r0, r1, 0 bl sub_8008584 cmp r0, 0 beq _08008F64 movs r1, 0x6 ldrsh r0, [r0, r1] ldr r1, _08008F88 movs r2, 0 ldrsh r1, [r1, r2] adds r0, r1 adds r5, r0 _08008F64: adds r0, r4, 0 mov r1, sp bl xxx_get_next_char_from_string adds r2, r0, 0 adds r4, r2, 0 ldr r1, [sp] cmp r1, 0 beq _08008F7E cmp r1, 0xD beq _08008F7E cmp r1, 0xA bne _08008EDA _08008F7E: adds r0, r5, 0 add sp, 0x4 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _08008F88: .4byte gUnknown_2027498 thumb_func_end sub_8008ED0 thumb_func_start sub_8008F8C sub_8008F8C: push {r4-r6,lr} sub sp, 0x10 adds r4, r0, 0 adds r5, r1, 0 adds r6, r2, 0 ldr r1, [sp, 0x20] ldr r2, [sp, 0x24] ldr r0, _08008FB8 str r3, [sp] str r1, [sp, 0x4] movs r1, 0 str r1, [sp, 0x8] str r2, [sp, 0xC] adds r1, r4, 0 adds r2, r5, 0 adds r3, r6, 0 bl xxx_draw_string add sp, 0x10 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08008FB8: .4byte gUnknown_2027370 thumb_func_end sub_8008F8C thumb_func_start xxx_call_draw_string xxx_call_draw_string: push {r4-r6,lr} sub sp, 0x10 adds r4, r0, 0 adds r5, r1, 0 adds r6, r2, 0 ldr r1, [sp, 0x20] ldr r0, _08008FE8 str r3, [sp] str r1, [sp, 0x4] movs r1, 0 str r1, [sp, 0x8] movs r1, 0xD str r1, [sp, 0xC] adds r1, r4, 0 adds r2, r5, 0 adds r3, r6, 0 bl xxx_draw_string add sp, 0x10 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08008FE8: .4byte gUnknown_2027370 thumb_func_end xxx_call_draw_string thumb_func_start nullsub_170 nullsub_170: bx lr thumb_func_end nullsub_170 thumb_func_start sub_8008FF0 sub_8008FF0: push {r4-r6,lr} sub sp, 0x10 adds r4, r0, 0 adds r5, r1, 0 adds r6, r2, 0 ldr r1, [sp, 0x20] ldr r0, _0800901C str r3, [sp] str r1, [sp, 0x4] movs r1, 0 str r1, [sp, 0x8] movs r1, 0xD str r1, [sp, 0xC] adds r1, r4, 0 adds r2, r5, 0 adds r3, r6, 0 bl xxx_draw_string add sp, 0x10 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0800901C: .4byte gUnknown_2027370 thumb_func_end sub_8008FF0 thumb_func_start nullsub_171 nullsub_171: bx lr thumb_func_end nullsub_171 thumb_func_start xxx_draw_string xxx_draw_string: push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x40 adds r5, r0, 0 adds r4, r3, 0 ldr r0, [sp, 0x5C] mov r8, r0 ldr r7, [sp, 0x64] add r0, sp, 0x8 strh r1, [r0] strh r2, [r0, 0x2] str r1, [sp, 0x14] movs r0, 0x7 str r0, [sp, 0x18] add r2, sp, 0x3C mov r9, r2 b _08009128 _0800904A: ldr r0, _08009058 cmp r3, r0 bne _08009060 ldr r1, _0800905C movs r0, 0 str r0, [r1] b _08009128 .align 2, 0 _08009058: .4byte 0x000082a0 _0800905C: .4byte gUnknown_20274AC _08009060: ldr r0, _08009070 cmp r3, r0 bne _08009078 ldr r1, _08009074 movs r0, 0x1 str r0, [r1] b _08009128 .align 2, 0 _08009070: .4byte 0x000082a2 _08009074: .4byte gUnknown_20274AC _08009078: cmp r3, 0x1B beq _0800914A cmp r3, 0xD beq _08009084 cmp r3, 0xA bne _08009096 _08009084: add r1, sp, 0x8 ldr r0, [sp, 0x14] strh r0, [r1] adds r0, r1, 0 ldrh r0, [r0, 0x2] ldr r3, [sp, 0x68] adds r0, r3 strh r0, [r1, 0x2] b _08009128 _08009096: cmp r3, 0x1D bne _080090AA add r1, sp, 0x8 ldr r0, [sp, 0x14] strh r0, [r1] adds r0, r1, 0 ldrh r0, [r0, 0x2] adds r0, 0x5 strh r0, [r1, 0x2] b _08009128 _080090AA: cmp r3, 0x60 bne _080090B8 add r1, sp, 0x8 adds r0, r1, 0 ldrh r0, [r0] adds r0, 0x6 b _08009126 _080090B8: cmp r7, 0 bne _080090E0 add r0, sp, 0x8 movs r6, 0 ldrsh r1, [r0, r6] movs r6, 0x2 ldrsh r2, [r0, r6] ldr r0, [sp, 0x18] str r0, [sp] mov r0, r8 str r0, [sp, 0x4] adds r0, r5, 0 bl xxx_draw_char add r2, sp, 0x8 adds r1, r2, 0 ldrh r1, [r1] adds r1, r0 strh r1, [r2] b _08009128 _080090E0: adds r0, r3, 0 bl sub_8008584 adds r2, r0, 0 cmp r2, 0 beq _08009128 add r0, sp, 0x8 movs r3, 0 ldrsh r1, [r0, r3] ldr r0, _08009158 movs r6, 0 ldrsh r0, [r0, r6] adds r0, 0xA movs r3, 0x6 ldrsh r2, [r2, r3] subs r0, r2 lsrs r2, r0, 31 adds r0, r2 asrs r0, 1 adds r1, r0 add r0, sp, 0x8 movs r6, 0x2 ldrsh r2, [r0, r6] ldr r3, [sp, 0x3C] ldr r0, [sp, 0x18] str r0, [sp] mov r0, r8 str r0, [sp, 0x4] adds r0, r5, 0 bl xxx_draw_char add r1, sp, 0x8 adds r0, r1, 0 ldrh r0, [r0] adds r0, r7 _08009126: strh r0, [r1] _08009128: adds r0, r5, 0 adds r1, r4, 0 add r2, sp, 0x8 bl sub_80091AC adds r4, r0, 0 mov r1, r9 bl xxx_get_next_char_from_string adds r4, r0, 0 ldr r3, [sp, 0x3C] cmp r3, 0 beq _0800914A ldr r2, [sp, 0x60] cmp r3, r2 beq _0800914A b _0800904A _0800914A: add sp, 0x40 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08009158: .4byte gUnknown_2027498 thumb_func_end xxx_draw_string thumb_func_start sub_800915C sub_800915C: push {r4,lr} adds r3, r0, 0 movs r2, 0 _08009162: ldrb r0, [r1] cmp r0, 0x2E beq _08009184 subs r0, 0x30 lsls r0, 24 lsrs r0, 24 cmp r0, 0x9 bhi _08009186 lsls r0, r2, 2 adds r0, r2 lsls r2, r0, 1 adds r0, r2, 0 subs r0, 0x30 ldrb r4, [r1] adds r2, r0, r4 adds r1, 0x1 b _08009162 _08009184: adds r1, 0x1 _08009186: strh r2, [r3] adds r0, r1, 0 pop {r4} pop {r1} bx r1 thumb_func_end sub_800915C thumb_func_start sub_8009190 sub_8009190: push {lr} adds r3, r0, 0 adds r2, r1, 0 ldr r0, _080091A4 adds r1, r3, 0 bl sub_80091AC pop {r1} bx r1 .align 2, 0 _080091A4: .4byte gUnknown_2027370 thumb_func_end sub_8009190 thumb_func_start sub_80091A8 sub_80091A8: adds r0, 0x1 bx lr thumb_func_end sub_80091A8 thumb_func_start sub_80091AC sub_80091AC: push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} mov r8, r0 adds r4, r1, 0 adds r5, r2, 0 movs r0, 0 mov r9, r0 movs r7, 0x1 _080091C0: ldrb r0, [r4] cmp r0, 0x23 beq _080091C8 b _0800937A _080091C8: ldrb r0, [r4, 0x1] adds r1, r0, 0 cmp r1, 0x5B bne _08009216 adds r2, r4, 0 adds r4, 0x2 adds r0, r5, 0 adds r0, 0x21 mov r1, r9 strb r1, [r0] ldrb r1, [r4] adds r6, r0, 0 cmp r1, 0 beq _080091F6 cmp r1, 0x5D beq _080091F4 _080091E8: adds r4, 0x1 ldrb r0, [r4] cmp r0, 0 beq _080091F6 cmp r0, 0x5D bne _080091E8 _080091F4: adds r4, 0x1 _080091F6: ldr r3, [r5, 0x24] cmp r3, 0 beq _0800920C adds r0, r2, 0 adds r1, r4, 0 adds r2, r5, 0 bl _call_via_r3 cmp r0, 0 beq _0800920C adds r4, r0, 0 _0800920C: ldrb r0, [r6] cmp r0, 0 beq _08009214 b _0800937A _08009214: b _080091C0 _08009216: cmp r1, 0x3D bne _08009220 ldrb r0, [r4, 0x2] strh r0, [r5] b _080092BA _08009220: cmp r1, 0x79 bne _0800922A ldrb r0, [r4, 0x2] strh r0, [r5, 0x2] b _080092BA _0800922A: cmp r1, 0x3E bne _0800923A adds r1, r4, 0x2 adds r0, r5, 0 bl sub_800915C adds r4, r0, 0 b _080091C0 _0800923A: cmp r1, 0x2E bne _08009246 ldrh r0, [r5] ldrb r2, [r4, 0x2] adds r0, r2 b _0800926E _08009246: cmp r1, 0x6E bne _08009258 ldr r0, [r5, 0xC] strh r0, [r5] ldrh r0, [r5, 0x2] adds r0, 0xB strh r0, [r5, 0x2] adds r4, 0x2 b _080091C0 _08009258: cmp r1, 0x3A bne _08009264 ldrh r0, [r5] strh r0, [r5, 0x4] adds r4, 0x2 b _080091C0 _08009264: cmp r1, 0x3B bne _08009274 ldrh r0, [r5, 0x4] ldrb r3, [r4, 0x2] adds r0, r3 _0800926E: strh r0, [r5] adds r4, 0x3 b _080091C0 _08009274: cmp r1, 0x2B bne _0800929A adds r4, 0x2 adds r0, r4, 0 bl sub_8008ED0 mov r2, r8 movs r3, 0x4 ldrsh r1, [r2, r3] lsls r1, 3 subs r1, r0 strh r1, [r5] movs r1, 0 ldrsh r0, [r5, r1] lsrs r1, r0, 31 adds r0, r1 asrs r0, 1 strh r0, [r5] b _080091C0 _0800929A: cmp r1, 0x43 bne _080092A4 ldr r0, [r5, 0x10] str r0, [r5, 0x14] b _080092DC _080092A4: lsls r0, 24 lsrs r0, 24 cmp r0, 0x5F bne _080092CC ldr r0, [r5, 0x10] str r0, [r5, 0x14] ldr r1, _080092C8 ldrb r0, [r4, 0x2] adds r0, r1 ldrb r0, [r0] str r0, [r5, 0x10] _080092BA: adds r4, 0x3 ldrb r0, [r4] cmp r0, 0x2E beq _080092C4 b _080091C0 _080092C4: adds r4, 0x1 b _080091C0 .align 2, 0 _080092C8: .4byte gUnknown_202749A _080092CC: cmp r0, 0x52 bne _080092D4 ldr r0, [r5, 0x14] b _080092EE _080092D4: cmp r0, 0x63 bne _080092E8 ldr r0, [r5, 0x10] str r0, [r5, 0x18] _080092DC: ldrb r0, [r4, 0x2] bl sub_800963C str r0, [r5, 0x10] adds r4, 0x3 b _080091C0 _080092E8: cmp r0, 0x72 bne _080092F4 ldr r0, [r5, 0x18] _080092EE: str r0, [r5, 0x10] adds r4, 0x2 b _080091C0 _080092F4: cmp r0, 0x53 bne _08009314 ldr r3, _08009310 ldrb r2, [r4, 0x2] movs r0, 0x7F adds r1, r0, 0 ands r1, r2 adds r1, r3 ldrb r2, [r4, 0x3] ands r0, r2 strb r0, [r1] adds r4, 0x4 b _080091C0 .align 2, 0 _08009310: .4byte gUnknown_20274A6 _08009314: cmp r0, 0x57 bne _0800933A adds r4, 0x2 mov r2, r8 movs r3, 0 ldrsh r0, [r2, r3] lsls r0, 3 ldrh r1, [r5] adds r0, r1 subs r0, 0x2 strh r0, [r5, 0x8] movs r3, 0x2 ldrsh r0, [r2, r3] lsls r0, 3 ldrh r1, [r5, 0x2] adds r0, r1 adds r0, 0x3 strh r0, [r5, 0xA] b _0800935C _0800933A: cmp r0, 0x50 bne _08009350 adds r4, 0x2 ldr r0, _0800934C strh r0, [r5, 0x2] mov r2, r9 str r2, [r5, 0x1C] b _0800935C .align 2, 0 _0800934C: .4byte 0x0000270f _08009350: cmp r0, 0x70 bne _08009368 adds r4, 0x2 ldr r0, _08009364 strh r0, [r5, 0x2] str r7, [r5, 0x1C] _0800935C: adds r0, r5, 0 adds r0, 0x20 strb r7, [r0] b _0800937A .align 2, 0 _08009364: .4byte 0x0000270f _08009368: cmp r0, 0x7E bne _0800937A ldrb r0, [r4, 0x2] str r0, [r5, 0x2C] adds r0, r5, 0 adds r0, 0x21 strb r7, [r0] adds r4, 0x3 b _080091C0 _0800937A: adds r0, r4, 0 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_80091AC thumb_func_start sub_8009388 sub_8009388: push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} ldr r2, _080093F4 ldr r6, _080093F8 strh r6, [r2] movs r0, 0x80 lsls r0, 4 adds r5, r2, r0 ldr r4, _080093FC strh r4, [r5] ldr r0, _08009400 ldr r3, [r0] ldr r0, _08009404 ldr r1, [r0] mov r9, r0 cmp r3, r1 bge _080093E6 mov r8, r2 mov r12, r6 adds r6, r5, 0 movs r5, 0 adds r7, r6, 0 _080093B8: lsls r0, r3, 6 mov r1, r8 adds r2, r0, r1 mov r1, r12 strh r1, [r2] adds r1, r0, r6 strh r4, [r1] adds r3, 0x1 adds r0, r7 adds r0, 0x2 adds r2, 0x2 movs r1, 0x1E _080093D0: strh r5, [r2] strh r4, [r0] adds r0, 0x2 adds r2, 0x2 subs r1, 0x1 cmp r1, 0 bge _080093D0 mov r1, r9 ldr r0, [r1] cmp r3, r0 blt _080093B8 _080093E6: pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080093F4: .4byte gUnknown_202B038 _080093F8: .4byte 0x0000f279 _080093FC: .4byte 0x0000f27a _08009400: .4byte gUnknown_202B020 _08009404: .4byte gUnknown_202B024 thumb_func_end sub_8009388 thumb_func_start sub_8009408 sub_8009408: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} adds r5, r1, 0 ldr r1, _08009478 ldr r6, _0800947C strh r6, [r1] movs r2, 0x80 lsls r2, 4 adds r4, r1, r2 ldr r2, _08009480 strh r2, [r4] adds r3, r0, 0 ldr r0, _08009484 mov r10, r0 cmp r3, r5 bge _08009464 mov r9, r1 mov r8, r6 adds r7, r4, 0 adds r4, r2, 0 movs r6, 0 mov r12, r7 _0800943A: lsls r0, r3, 6 mov r1, r9 adds r2, r0, r1 mov r1, r8 strh r1, [r2] adds r1, r0, r7 strh r4, [r1] adds r3, 0x1 add r0, r12 adds r0, 0x2 adds r2, 0x2 movs r1, 0x1E _08009452: strh r6, [r2] strh r4, [r0] adds r0, 0x2 adds r2, 0x2 subs r1, 0x1 cmp r1, 0 bge _08009452 cmp r3, r5 blt _0800943A _08009464: movs r0, 0x1 mov r2, r10 strb r0, [r2] pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08009478: .4byte gUnknown_202B038 _0800947C: .4byte 0x0000f279 _08009480: .4byte 0x0000f27a _08009484: .4byte gUnknown_20274A5 thumb_func_end sub_8009408 thumb_func_start sub_8009488 sub_8009488: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} lsls r1, r0, 3 adds r1, r0 lsls r1, 3 ldr r0, _08009514 adds r4, r1, r0 movs r0, 0x2 ldrsh r1, [r4, r0] movs r3, 0 movs r2, 0x6 ldrsh r0, [r4, r2] cmp r3, r0 bge _08009506 ldr r6, _08009518 mov r9, r6 ldr r0, _0800951C mov r8, r0 movs r2, 0x80 lsls r2, 4 add r2, r8 mov r10, r2 _080094BA: movs r6, 0 ldrsh r2, [r4, r6] movs r5, 0 movs r6, 0x4 ldrsh r0, [r4, r6] adds r6, r1, 0x1 adds r7, r3, 0x1 cmp r5, r0 bge _080094FA movs r0, 0xFC lsls r0, 8 mov r12, r0 lsls r2, 1 lsls r1, 6 mov r3, r10 adds r0, r1, r3 adds r3, r2, r0 add r1, r8 adds r2, r1 _080094E0: ldrh r0, [r2] mov r1, r12 ands r1, r0 strh r1, [r2] mov r0, r9 strh r0, [r3] adds r3, 0x2 adds r2, 0x2 adds r5, 0x1 movs r1, 0x4 ldrsh r0, [r4, r1] cmp r5, r0 blt _080094E0 _080094FA: adds r1, r6, 0 adds r3, r7, 0 movs r2, 0x6 ldrsh r0, [r4, r2] cmp r3, r0 blt _080094BA _08009506: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08009514: .4byte gUnknown_2027370 _08009518: .4byte 0x0000f27a _0800951C: .4byte gUnknown_202B038 thumb_func_end sub_8009488 thumb_func_start nullsub_172 nullsub_172: bx lr thumb_func_end nullsub_172 thumb_func_start sub_8009524 sub_8009524: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} lsls r1, r0, 3 adds r1, r0 lsls r1, 3 ldr r0, _080095BC adds r4, r1, r0 movs r1, 0x2 ldrsh r0, [r4, r1] subs r1, r0, 0x1 movs r3, 0 movs r2, 0x6 ldrsh r0, [r4, r2] adds r0, 0x2 cmp r3, r0 bge _080095AE ldr r6, _080095C0 mov r9, r6 ldr r0, _080095C4 mov r8, r0 movs r2, 0x80 lsls r2, 4 add r2, r8 mov r10, r2 _0800955A: movs r6, 0 ldrsh r0, [r4, r6] subs r2, r0, 0x1 movs r5, 0 movs r6, 0x4 ldrsh r0, [r4, r6] adds r0, 0x2 adds r6, r1, 0x1 adds r7, r3, 0x1 cmp r5, r0 bge _080095A0 movs r0, 0xFC lsls r0, 8 mov r12, r0 lsls r2, 1 lsls r1, 6 mov r3, r10 adds r0, r1, r3 adds r3, r2, r0 add r1, r8 adds r2, r1 _08009584: ldrh r0, [r2] mov r1, r12 ands r1, r0 strh r1, [r2] mov r0, r9 strh r0, [r3] adds r3, 0x2 adds r2, 0x2 adds r5, 0x1 movs r1, 0x4 ldrsh r0, [r4, r1] adds r0, 0x2 cmp r5, r0 blt _08009584 _080095A0: adds r1, r6, 0 adds r3, r7, 0 movs r2, 0x6 ldrsh r0, [r4, r2] adds r0, 0x2 cmp r3, r0 blt _0800955A _080095AE: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080095BC: .4byte gUnknown_2027370 _080095C0: .4byte 0x0000f27a _080095C4: .4byte gUnknown_202B038 thumb_func_end sub_8009524 thumb_func_start nullsub_173 nullsub_173: bx lr thumb_func_end nullsub_173 thumb_func_start sub_80095CC sub_80095CC: ldr r2, _080095D8 str r0, [r2] ldr r0, _080095DC str r1, [r0] bx lr .align 2, 0 _080095D8: .4byte gUnknown_202B020 _080095DC: .4byte gUnknown_202B024 thumb_func_end sub_80095CC thumb_func_start nullsub_174 nullsub_174: bx lr thumb_func_end nullsub_174 thumb_func_start sub_80095E4 sub_80095E4: push {lr} cmp r1, 0 bne _080095EC movs r1, 0xA _080095EC: muls r1, r0 movs r0, 0x7 ands r0, r1 cmp r0, 0 beq _08009604 adds r0, r1, 0 cmp r1, 0 bge _080095FE adds r0, r1, 0x7 _080095FE: asrs r0, 3 adds r0, 0x1 b _0800960E _08009604: adds r0, r1, 0 cmp r0, 0 bge _0800960C adds r0, 0x7 _0800960C: asrs r0, 3 _0800960E: pop {r1} bx r1 thumb_func_end sub_80095E4 thumb_func_start sub_8009614 sub_8009614: push {lr} muls r1, r0 movs r0, 0x7 ands r0, r1 cmp r0, 0 beq _0800962E adds r0, r1, 0 cmp r1, 0 bge _08009628 adds r0, r1, 0x7 _08009628: asrs r0, 3 adds r0, 0x1 b _08009638 _0800962E: adds r0, r1, 0 cmp r0, 0 bge _08009636 adds r0, 0x7 _08009636: asrs r0, 3 _08009638: pop {r1} bx r1 thumb_func_end sub_8009614 thumb_func_start sub_800963C sub_800963C: push {lr} lsls r0, 24 lsrs r0, 24 adds r2, r0, 0 cmp r0, 0xF bls _080096DA adds r1, r0, 0 subs r1, 0x30 lsls r0, r1, 24 lsrs r0, 24 cmp r0, 0xF bhi _08009658 adds r0, r1, 0 b _080096DA _08009658: adds r0, r2, 0 subs r0, 0x43 cmp r0, 0x14 bhi _080096D8 lsls r0, 2 ldr r1, _0800966C adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0800966C: .4byte _08009670 .align 2, 0 _08009670: .4byte _080096D0 .4byte _080096D0 .4byte _080096C8 .4byte _080096D8 .4byte _080096CC .4byte _080096C4 .4byte _080096C4 .4byte _080096D8 .4byte _080096D8 .4byte _080096D8 .4byte _080096CC .4byte _080096D0 .4byte _080096D8 .4byte _080096D8 .4byte _080096D8 .4byte _080096D8 .4byte _080096C8 .4byte _080096C8 .4byte _080096D8 .4byte _080096D8 .4byte _080096D4 _080096C4: movs r0, 0x4 b _080096DA _080096C8: movs r0, 0xF b _080096DA _080096CC: movs r0, 0x5 b _080096DA _080096D0: movs r0, 0x6 b _080096DA _080096D4: movs r0, 0x2 b _080096DA _080096D8: movs r0, 0x7 _080096DA: pop {r1} bx r1 thumb_func_end sub_800963C thumb_func_start sub_80096E0 sub_80096E0: push {r4-r6,lr} ldr r1, _0800978C movs r0, 0x1 strb r0, [r1] movs r1, 0xC0 lsls r1, 19 movs r5, 0 ldr r3, _08009790 ldr r0, _08009794 movs r2, 0 _080096F4: stm r1!, {r2} adds r5, 0x1 cmp r5, r3 bls _080096F4 movs r1, 0xA0 lsls r1, 19 movs r5, 0 movs r2, 0 _08009704: stm r1!, {r2} adds r5, 0x1 cmp r5, 0xFF bls _08009704 movs r1, 0xE0 lsls r1, 19 movs r5, 0 ldr r2, _08009798 _08009714: stm r1!, {r2} adds r5, 0x1 cmp r5, 0xFF bls _08009714 ldr r4, _0800979C adds r1, r4, 0 bl OpenFileAndGetFileDataPtr adds r6, r0, 0 ldr r1, [r6, 0x4] ldm r1!, {r5} ldr r0, _080097A0 lsls r2, r5, 5 bl CpuCopy adds r0, r6, 0 bl CloseFile ldr r0, _080097A4 adds r1, r4, 0 bl OpenFileAndGetFileDataPtr adds r6, r0, 0 ldr r1, [r6, 0x4] ldm r1!, {r5} ldr r0, _080097A8 lsls r2, r5, 5 bl CpuCopy adds r0, r6, 0 bl CloseFile bl sub_80097B0 ldr r0, _080097AC adds r1, r4, 0 bl OpenFileAndGetFileDataPtr adds r6, r0, 0 ldr r4, [r6, 0x4] movs r5, 0 _08009766: movs r1, 0xF8 lsls r1, 1 adds r0, r5, r1 adds r1, r4, 0 bl SetBGPaletteBufferColorArray adds r4, 0x4 adds r5, 0x1 cmp r5, 0xF ble _08009766 adds r0, r6, 0 bl CloseFile bl TransferBGPaletteBuffer pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0800978C: .4byte gUnknown_203B090 _08009790: .4byte 0x00005fff _08009794: .4byte gUnknown_80B88B0 _08009798: .4byte 0x00a000a0 _0800979C: .4byte gUnknown_8300500 _080097A0: .4byte 0x06004f00 _080097A4: .4byte gUnknown_80B88B8 _080097A8: .4byte 0x06017e00 _080097AC: .4byte gUnknown_80B88C0 thumb_func_end sub_80096E0 thumb_func_start sub_80097B0 sub_80097B0: push {r4-r6,lr} ldr r0, _080097F8 ldr r1, _080097FC bl OpenFileAndGetFileDataPtr adds r6, r0, 0 ldr r4, _08009800 ldr r1, [r6, 0x4] movs r2, 0x80 lsls r2, 2 adds r0, r4, 0 bl CpuCopy bl sub_80063B0 adds r5, r4, 0 adds r5, 0x40 cmp r0, 0x1 bne _080097D8 adds r5, r4, 0 _080097D8: movs r4, 0 _080097DA: adds r0, r4, 0 adds r0, 0xF0 adds r1, r5, 0 bl SetBGPaletteBufferColorArray adds r5, 0x4 adds r4, 0x1 cmp r4, 0xF ble _080097DA adds r0, r6, 0 bl CloseFile pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080097F8: .4byte gUnknown_80B88CC _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.