.include "constants/gba_constants.inc" .include "asm/macros.inc" .syntax unified .text thumb_func_start sub_80001DC sub_80001DC: mov r0, sp bx lr thumb_func_end sub_80001DC thumb_func_start sub_80001E0 sub_80001E0: ldr r0, _080001E4 bx lr .align 2, 0 _080001E4: .4byte gUnknown_3004000 thumb_func_end sub_80001E0 arm_func_start sub_80001E8 sub_80001E8: stmdb sp!, {r4-r11} mov r12, 0x4000000 ldr r11, _08000224 add r10, r11, 0x40 mov r9, 0x1 mov r8, 0 strb r8, [r12, 0x208] ldmia r10, {r0-r7} stmia r10!, {r4-r7} stmia r10!, {r0-r3} ldr r0, [r11, 0x4] str r8, [r11, 0x4] strb r9, [r12, 0x208] ldmia sp!, {r4-r11} bx lr .align 2, 0 _08000224: .4byte gUnknown_202DCF8 arm_func_end sub_80001E8 arm_func_start sub_8000228 sub_8000228: mov r12, 0x4000000 add r12, r12, 0x120 ldmia r12, {r0,r1} stmdb sp!, {r7-r11} ldr r11, _08000340 mov r9, 0xFE add r9, r9, 0xFE00 ldrh r3, [r12, 0x8] and r3, r3, 0x40 strb r3, [r11, 0x9] ldr r10, [r11, 0x14] adds r3, r10, 0x1 blt _08000284 bne _08000278 strh r9, [r12, 0xA] add r8, r11, 0x28 ldmia r8, {r2,r3} mov r7, r2 stmia r8, {r3,r7} b _08000284 _08000278: ldr r3, [r11, 0x2C] ldr r2, [r3, r10, lsl 1] strh r2, [r12, 0xA] _08000284: cmp r10, 0xB addlt r10, r10, 0x1 strlt r10, [r11, 0x14] stmdb sp!, {r0,r1,r5,r6} mov r6, 0x3 _08000298: add r8, r11, 0x18 add r8, r8, r6, lsl 2 ldr r10, [r8] mov r3, r6, lsl 1 ldrh r5, [sp, r3] cmp r5, r9 bne _080002C8 cmp r10, 0x9 ble _080002C8 mov r0, 0x1 sub r10, r0, 0x2 b _080002F4 _080002C8: ldr r0, [r8, 0x18] mov r3, r10, lsl 1 strh r5, [r0, r3] cmp r10, 0x9 bne _080002F4 ldr r1, [r8, 0x28] str r0, [r8, 0x28] str r1, [r8, 0x18] add r3, r11, 0x4 mov r0, 0x1 strb r0, [r3, r6] _080002F4: cmp r10, 0xB addlt r10, r10, 0x1 str r10, [r8] subs r6, r6, 0x1 bge _08000298 ldrb r0, [r11] cmp r0, 0 beq _08000334 ldr r7, _08000344 mov r0, 0 strh r0, [r7] ldrh r0, [r12, 0x8] orr r0, r0, 0x80 strh r0, [r12, 0x8] mov r0, 0xC0 strh r0, [r7] _08000334: add sp, sp, 0x8 ldmia sp!, {r5-r11} bx lr .align 2, 0 _08000340: .4byte gUnknown_202DCF8 _08000344: .4byte 0x0400010e arm_func_end sub_8000228 thumb_func_start GameLoop GameLoop: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x4 movs r0, 0x1 mov r9, r0 bl InitHeap bl sub_8011A38 bl sub_801180C bl nullsub_1 bl sub_8014144 bl sub_808CDC0 bl sub_8097670 bl sub_8094F88 bl sub_8094980 bl sub_8094C14 bl sub_8097F5C bl sub_80923A0 bl sub_8090998 bl sub_809207C bl sub_8092848 bl sub_80950BC bl sub_80958E8 movs r0, 0x80 lsls r0, 8 movs r1, 0 bl sub_800CD64 bl sub_8012284 movs r0, 0x1 bl sub_8094998 ldr r0, _08000498 bl nullsub_22 bl sub_800DAAC movs r0, 0 bl SetSavingIconCoords movs r0, 0 str r0, [sp] mov r0, sp bl sub_8011DAC cmp r0, 0 beq _080003D2 bl sub_800135C _080003D2: movs r0, 0xE bl sub_8001334 movs r0, 0xF bl sub_8001334 movs r0, 0 movs r1, 0x39 bl sub_80015C0 movs r0, 0x10 bl sub_8001334 movs r0, 0 movs r1, 0x39 bl sub_8001658 cmp r0, 0 bne _080003FE movs r0, 0x11 bl sub_8001334 _080003FE: movs r1, 0 mov r10, r1 ldr r2, _0800049C mov r8, r2 _08000406: ldr r0, _080004A0 mov r1, r10 str r1, [r0] movs r0, 0x2 bl sub_800A8F8 movs r0, 0x1 bl sub_8004D8C movs r0, 0 bl xxx_update_some_bg_tiles bl sub_80097B0 movs r0, 0x2 bl sub_800CDA8 movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r1, _080004A4 movs r2, 0x80 lsls r2, 5 adds r0, r2, 0 strh r0, [r1] bl sub_8000634 movs r0, 0 movs r1, 0 bl sub_800CCA0 movs r0, 0 movs r1, 0 bl sub_800CCAC mov r0, r10 mov r1, r8 str r0, [r1] _08000456: mov r2, r8 ldr r0, [r2] adds r0, 0x1 str r0, [r2] movs r4, 0 _08000460: ldr r0, _080004A8 ldr r0, [r0] lsls r2, r4, 2 ldr r1, [r0, 0x4] adds r1, r2 mov r0, r8 ldr r2, [r0] adds r0, r4, 0 movs r3, 0 bl SetBGPaletteBufferColorRGB adds r4, 0x1 cmp r4, 0xEF ble _08000460 movs r0, 0 bl xxx_update_stuff mov r1, r8 ldr r0, [r1] cmp r0, 0x1F ble _08000456 mov r2, r9 cmp r2, 0 beq _080004C0 bl sub_8012468 b _080004B2 .align 2, 0 _08000498: .4byte gUnknown_80B69BC _0800049C: .4byte gUnknown_2000A80 _080004A0: .4byte gUnknown_203B03C _080004A4: .4byte gUnknown_2026E4E _080004A8: .4byte gUnknown_203B038 _080004AC: movs r0, 0 bl xxx_update_stuff _080004B2: bl sub_8012484 lsls r0, 24 cmp r0, 0 bne _080004AC bl sub_8012558 _080004C0: movs r0, 0x1 mov r9, r0 movs r0, 0x8 bl sub_800BDFC movs r4, 0x1 movs r0, 0 movs r1, 0x14 bl sub_80095CC bl InitMainMenu _080004D8: bl sub_80363E0 lsls r0, 24 cmp r0, 0 beq _08000522 ldr r3, _080004FC ldrh r1, [r3, 0x2] movs r2, 0x80 lsls r2, 2 adds r0, r2, 0 ands r0, r1 cmp r0, 0 beq _08000500 movs r4, 0 movs r0, 0x13 bl SetBGOBJEnableFlags b _08000516 .align 2, 0 _080004FC: .4byte gUnknown_20255F0 _08000500: cmp r4, 0 bne _08000522 ldrh r1, [r3] adds r0, r2, 0 ands r0, r1 cmp r0, 0 bne _08000516 movs r4, 0x1 movs r0, 0 bl SetBGOBJEnableFlags _08000516: cmp r4, 0 bne _08000522 movs r0, 0 bl xxx_update_stuff b _080004D8 _08000522: bl SetUpMenu movs r0, 0 bl xxx_update_stuff bl UpdateMenu adds r5, r0, 0 bl CleanUpMenu cmp r5, 0x2 beq _08000542 cmp r5, 0x4 beq _08000542 cmp r5, 0x3 bne _080004D8 _08000542: bl sub_80357D0 mov r1, r8 ldr r0, [r1] cmp r0, 0 ble _08000580 ldr r7, _08000598 adds r6, r7, 0 _08000552: ldr r0, [r6] subs r0, 0x1 str r0, [r6] movs r4, 0 _0800055A: ldr r0, _0800059C ldr r0, [r0] lsls r2, r4, 2 ldr r1, [r0, 0x4] adds r1, r2 ldr r2, [r6] adds r0, r4, 0 movs r3, 0 bl SetBGPaletteBufferColorRGB adds r4, 0x1 cmp r4, 0xEF ble _0800055A movs r0, 0 bl xxx_update_stuff ldr r0, [r7] cmp r0, 0 bgt _08000552 _08000580: ldr r0, _0800059C ldr r0, [r0] bl sub_800AA14 cmp r5, 0x3 beq _080005CA cmp r5, 0x3 bhi _080005A0 cmp r5, 0x2 beq _080005A6 b _08000406 .align 2, 0 _08000598: .4byte gUnknown_2000A80 _0800059C: .4byte gUnknown_203B038 _080005A0: cmp r5, 0x4 beq _080005C6 b _08000406 _080005A6: movs r0, 0x7 bl sub_80953D4 adds r1, r0, 0 movs r0, 0x1 negs r0, r0 cmp r1, r0 beq _080005C2 lsls r0, r1, 24 lsrs r0, 24 bl sub_8095240 movs r0, 0x2 b _080005D4 _080005C2: movs r0, 0x1 b _080005D4 _080005C6: movs r0, 0x3 b _080005D4 _080005CA: bl sub_80122A8 bl nullsub_33 movs r0, 0 _080005D4: bl sub_80009D0 lsls r0, 24 lsrs r0, 24 mov r9, r0 b _08000406 thumb_func_end GameLoop thumb_func_start xxx_update_stuff xxx_update_stuff: push {lr} bl sub_80144C4 movs r0, 0 movs r1, 0 bl sub_8005838 ldr r0, _08000630 ldr r0, [r0] ldrb r0, [r0, 0xA] bl nullsub_8 bl sub_8005180 bl sub_80060EC bl sub_8011860 bl sub_800CB20 bl sub_800485C bl CopySpritesToOam bl sub_8005304 bl TransferBGPaletteBuffer bl xxx_call_update_bg_vram bl sub_8009908 bl xxx_call_update_bg_sound_input movs r0, 0 bl sub_8004D8C pop {r0} bx r0 .align 2, 0 _08000630: .4byte gUnknown_203B46C thumb_func_end xxx_update_stuff thumb_func_start sub_8000634 sub_8000634: push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x18 mov r1, sp ldr r0, _08000708 ldm r0!, {r2-r4} stm r1!, {r2-r4} add r5, sp, 0xC adds r1, r5, 0 ldr r0, _0800070C ldm r0!, {r2-r4} stm r1!, {r2-r4} ldr r0, _08000710 movs r1, 0 bl MemoryAlloc adds r7, r0, 0 movs r0, 0x3 bl RandomCapped adds r4, r0, 0 lsls r4, 2 adds r5, r4 ldr r0, [r5] ldr r5, _08000714 adds r1, r5, 0 bl sub_800A9EC ldr r1, _08000718 str r0, [r1] mov r1, sp adds r0, r1, r4 ldr r0, [r0] adds r1, r5, 0 bl sub_800A9EC mov r8, r0 adds r0, r7, 0 movs r1, 0 mov r2, r8 bl sub_800AAA8 movs r2, 0 ldr r0, _0800071C movs r3, 0xC0 lsls r3, 5 adds r3, r0 mov r9, r3 movs r4, 0x80 lsls r4, 5 adds r4, r0 mov r12, r4 _080006A0: movs r5, 0 lsls r1, r2, 6 adds r6, r2, 0x1 mov r0, r9 adds r4, r1, r0 mov r2, r12 adds r3, r1, r2 movs r2, 0x80 lsls r2, 4 adds r0, r7, r2 adds r2, r1, r0 adds r1, r7 _080006B8: ldrh r0, [r1] strh r0, [r3] ldrh r0, [r2] strh r0, [r4] adds r4, 0x2 adds r3, 0x2 adds r2, 0x2 adds r1, 0x2 adds r5, 0x1 cmp r5, 0x1F ble _080006B8 adds r2, r6, 0 cmp r2, 0x1F ble _080006A0 movs r0, 0x2 bl sub_80098F8 movs r0, 0x3 bl sub_80098F8 ldr r0, _08000720 movs r3, 0x80 lsls r3, 5 adds r1, r7, r3 ldr r2, _08000724 bl CpuCopy mov r0, r8 bl sub_800AA14 adds r0, r7, 0 bl MemoryFree add sp, 0x18 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08000708: .4byte gUnknown_80B69F8 _0800070C: .4byte gUnknown_80B6A28 _08000710: .4byte 0x00005b20 _08000714: .4byte gUnknown_8380000 _08000718: .4byte gUnknown_203B038 _0800071C: .4byte gUnknown_202B038 _08000720: .4byte 0x06008000 _08000724: .4byte 0x00004b20 thumb_func_end sub_8000634 thumb_func_start sub_8000728 sub_8000728: ldr r0, _08000730 ldr r0, [r0] bx lr .align 2, 0 _08000730: .4byte gUnknown_203B03C thumb_func_end sub_8000728 thumb_func_start sub_8000734 sub_8000734: push {r4-r6,lr} sub sp, 0xC adds r5, r0, 0 movs r4, 0 movs r6, 0 movs r0, 0 bl xxx_update_some_bg_tiles bl sub_8014144 bl sub_80097B0 movs r0, 0x2 bl sub_800CDA8 movs r0, 0 movs r1, 0x14 bl sub_80095CC movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C movs r0, 0 movs r1, 0x14 bl sub_8009408 ldr r0, _080007AC movs r2, 0x80 lsls r2, 5 adds r1, r2, 0 strh r1, [r0] bl sub_8099648 bl sub_8094C14 movs r0, 0 bl sub_8099690 bl sub_8099744 bl sub_8099750 movs r0, 0x3 bl sub_80063D8 movs r0, 0 movs r1, 0 bl sub_8005838 bl sub_80060EC ldr r0, _080007B0 movs r1, 0 movs r2, 0 movs r3, 0x20 bl sub_80141B4 b _08000892 .align 2, 0 _080007AC: .4byte gUnknown_2026E4E _080007B0: .4byte gUnknown_80B6A34 _080007B4: cmp r4, 0x1 beq _0800086C cmp r4, 0x1 bgt _080007C2 cmp r4, 0 beq _080007CC b _0800088E _080007C2: cmp r4, 0x2 beq _08000884 cmp r4, 0x3 beq _08000892 b _0800088E _080007CC: str r4, [sp, 0x4] movs r0, 0x3F str r0, [sp] mov r0, sp bl sub_8097688 bl sub_80140DC cmp r5, 0x3 bhi _080007EC add r0, sp, 0x4 movs r1, 0x1 bl sub_801203C adds r4, r0, 0 b _080007EE _080007EC: movs r4, 0x2 _080007EE: cmp r4, 0 bne _080007FA ldr r0, _08000818 bl sub_80121E0 adds r4, r0, 0 _080007FA: bl sub_8014114 cmp r4, 0 bne _0800083C cmp r5, 0x1 beq _08000812 cmp r5, 0x1 bcc _08000820 cmp r5, 0x2 beq _08000820 cmp r5, 0x3 bne _08000820 _08000812: ldr r0, _0800081C b _08000822 .align 2, 0 _08000818: .4byte 0x000f1206 _0800081C: .4byte gUnknown_80B6A7C _08000820: ldr r0, _08000834 _08000822: movs r1, 0 movs r2, 0 ldr r3, _08000838 bl sub_80141B4 movs r6, 0x3C movs r4, 0x1 b _08000892 .align 2, 0 _08000834: .4byte gUnknown_80B6AA0 _08000838: .4byte 0x00000321 _0800083C: cmp r4, 0x1 bne _08000854 ldr r0, _08000850 movs r1, 0 movs r2, 0 movs r3, 0 bl sub_80141B4 movs r4, 0x3 b _08000892 .align 2, 0 _08000850: .4byte gUnknown_80B6B14 _08000854: ldr r0, _08000864 movs r1, 0 movs r2, 0 ldr r3, _08000868 bl sub_80141B4 _08000860: movs r4, 0x2 b _08000892 .align 2, 0 _08000864: .4byte gUnknown_80B6B78 _08000868: .4byte 0x00000301 _0800086C: cmp r6, 0 ble _08000860 ldr r0, _08000880 ldrh r1, [r0, 0x2] subs r6, 0x1 movs r0, 0x3 ands r1, r0 cmp r1, 0 beq _08000892 b _08000860 .align 2, 0 _08000880: .4byte gUnknown_20255F0 _08000884: add r0, sp, 0x8 bl sub_80144A4 cmp r0, 0 bne _08000892 _0800088E: movs r4, 0x1 negs r4, r4 _08000892: movs r0, 0 bl xxx_update_stuff cmp r4, 0 bge _080007B4 bl sub_8014490 movs r0, 0 bl xxx_update_stuff movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C movs r0, 0 bl xxx_update_stuff add sp, 0xC pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_8000734 thumb_func_start sub_80008C0 sub_80008C0: push {r4-r6,lr} sub sp, 0x4 adds r5, r0, 0 movs r4, 0 movs r6, 0 movs r0, 0 bl xxx_update_some_bg_tiles bl sub_8014144 bl sub_80097B0 movs r0, 0x2 bl sub_800CDA8 movs r0, 0 movs r1, 0x14 bl sub_80095CC movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C movs r0, 0 movs r1, 0x14 bl sub_8009408 ldr r1, _08000930 movs r2, 0x80 lsls r2, 5 adds r0, r2, 0 strh r0, [r1] bl sub_8099648 bl sub_8094C14 movs r0, 0 bl sub_8099690 bl sub_8099744 bl sub_8099750 movs r0, 0x3 bl sub_80063D8 cmp r5, 0x1 beq _08000948 cmp r5, 0x1 bcc _08000934 cmp r5, 0x2 beq _08000950 cmp r5, 0x3 beq _08000950 b _080009A2 .align 2, 0 _08000930: .4byte gUnknown_2026E4E _08000934: ldr r0, _08000944 movs r1, 0 movs r2, 0 movs r3, 0x20 bl sub_80141B4 movs r4, 0x2 b _080009A2 .align 2, 0 _08000944: .4byte gUnknown_80B6B88 _08000948: ldr r0, _0800094C b _08000952 .align 2, 0 _0800094C: .4byte gUnknown_80B6BDC _08000950: ldr r0, _08000960 _08000952: ldr r3, _08000964 movs r1, 0 movs r2, 0 bl sub_80141B4 _0800095C: movs r4, 0x1 b _080009A2 .align 2, 0 _08000960: .4byte gUnknown_80B6CB8 _08000964: .4byte 0x00000301 _08000968: cmp r4, 0x1 beq _08000994 cmp r4, 0x1 bgt _08000976 cmp r4, 0 beq _0800097C b _0800099E _08000976: cmp r4, 0x2 beq _080009A2 b _0800099E _0800097C: cmp r6, 0 ble _0800095C ldr r0, _08000990 ldrh r1, [r0, 0x2] subs r6, 0x1 movs r0, 0x3 ands r1, r0 cmp r1, 0 beq _080009A2 b _0800095C .align 2, 0 _08000990: .4byte gUnknown_20255F0 _08000994: mov r0, sp bl sub_80144A4 cmp r0, 0 bne _080009A2 _0800099E: movs r4, 0x1 negs r4, r4 _080009A2: movs r0, 0 bl xxx_update_stuff cmp r4, 0 bge _08000968 bl sub_8014490 movs r0, 0 bl xxx_update_stuff movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C movs r0, 0 bl xxx_update_stuff add sp, 0x4 pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_80008C0 thumb_func_start sub_80009D0 sub_80009D0: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} ldr r4, _08000A04 add sp, r4 adds r4, r0, 0 movs r0, 0 movs r1, 0x18 bl sub_8001658 adds r7, r0, 0 movs r0, 0 mov r10, r0 bl sub_801180C movs r0, 0x10 bl sub_80118C4 cmp r7, 0x7 bne _08000A30 cmp r4, 0x2 bne _08000A08 movs r7, 0x8 b _08000A3A .align 2, 0 _08000A04: .4byte 0xfffffdd4 _08000A08: cmp r4, 0x3 bne _08000A3A movs r7, 0xB movs r0, 0 movs r1, 0x18 movs r2, 0xB bl sub_80018D8 bl sub_8096BD0 movs r0, 0x3 bl sub_8000734 b _08000A3A _08000A24: movs r3, 0x1 mov r10, r3 b _08000EC6 _08000A2A: movs r0, 0x1 mov r10, r0 b _08000EC6 _08000A30: cmp r7, 0 beq _08000A3A cmp r7, 0xB beq _08000A3A movs r7, 0x1 _08000A3A: movs r0, 0 movs r1, 0x41 bl sub_80015C0 _08000A42: cmp r7, 0x4 bne _08000AB6 movs r0, 0 movs r1, 0xD bl sub_8001658 lsls r0, 16 asrs r0, 16 bl sub_8002658 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldr r0, _08000A9C movs r1, 0x8 bl MemoryAlloc str r0, [sp, 0x8] mov r0, sp strb r4, [r0, 0x4] movs r0, 0x9 bl sub_80023E4 mov r1, sp strb r0, [r1, 0x5] mov r0, sp bl sub_800F990 ldr r0, [sp, 0x8] bl MemoryFree mov r0, sp ldrb r0, [r0, 0xC] cmp r0, 0x3A beq _08000B70 mov r0, sp ldrb r0, [r0, 0xC] cmp r0, 0 beq _08000AA0 bl sub_8002694 lsls r0, 16 asrs r2, r0, 16 b _08000AA2 .align 2, 0 _08000A9C: .4byte 0x00004e30 _08000AA0: movs r2, 0x9 _08000AA2: movs r0, 0 movs r1, 0xD bl sub_80018D8 movs r0, 0 movs r1, 0xE movs r2, 0 bl sub_80018D8 b _08000B70 _08000AB6: cmp r7, 0x5 bne _08000B9C movs r0, 0 movs r1, 0x12 bl sub_8001658 lsls r0, 16 asrs r0, 16 mov r8, r0 bl sub_80A2740 lsls r0, 24 lsrs r6, r0, 24 movs r4, 0 ldr r5, _08000B18 add r5, sp _08000AD6: lsls r0, r4, 24 lsrs r0, 24 bl sub_80A28F0 adds r1, r5, r4 strb r0, [r1] adds r4, 0x1 cmp r4, 0x3E ble _08000AD6 cmp r6, 0x63 beq _08000B70 add r4, sp, 0xB8 movs r0, 0x3F strb r0, [r4, 0x4] add r0, sp, 0xC0 adds r1, r6, 0 bl sub_80011CC ldrb r1, [r4, 0xD] add r0, sp, 0x128 strb r1, [r0] mov r0, r8 bl sub_80A2750 lsls r0, 16 asrs r0, 16 adds r5, r4, 0 cmp r0, 0x1 beq _08000B1C cmp r0, 0x2 beq _08000B3C b _08000B50 .align 2, 0 _08000B18: .4byte 0x00000129 _08000B1C: add r4, sp, 0x170 add r0, sp, 0x174 mov r1, r8 bl sub_80990EC lsls r0, 24 cmp r0, 0 beq _08000B50 ldrb r0, [r4, 0x10] strb r0, [r5, 0x14] add r0, sp, 0xD0 add r1, sp, 0x18C movs r2, 0x58 bl memcpy b _08000B50 _08000B3C: ldrb r0, [r5, 0x8] add r1, sp, 0xD0 bl sub_8096A08 lsls r0, 24 lsrs r0, 24 cmp r0, 0 beq _08000B4E movs r0, 0x1 _08000B4E: strb r0, [r5, 0x14] _08000B50: ldr r0, _08000B74 movs r1, 0x8 bl MemoryAlloc add r4, sp, 0x168 str r0, [r4] adds r0, r5, 0 bl sub_8010268 ldr r0, [r4] bl MemoryFree add r0, sp, 0x16C ldrb r0, [r0] cmp r0, 0 bne _08000B78 _08000B70: movs r7, 0x2 b _08000A42 .align 2, 0 _08000B74: .4byte 0x00006474 _08000B78: movs r0, 0 movs r1, 0x13 mov r2, r8 bl sub_80018D8 ldr r1, _08000B98 movs r0, 0x2 str r0, [r1] movs r0, 0x4 bl sub_800A8F8 movs r0, 0x5 bl sub_8001334 adds r5, r0, 0 b _08000BEC .align 2, 0 _08000B98: .4byte gUnknown_203B03C _08000B9C: cmp r7, 0x8 bne _08000BA4 movs r5, 0 b _08000BEC _08000BA4: cmp r7, 0x7 bne _08000BAC movs r5, 0x2 b _08000BEC _08000BAC: cmp r7, 0xB bne _08000BB6 bl sub_80012C0 b _08000BBE _08000BB6: cmp r7, 0xC bne _08000BBE bl sub_8001248 _08000BBE: ldr r1, _08000BE0 movs r0, 0x2 str r0, [r1] movs r0, 0x4 bl sub_800A8F8 adds r0, r7, 0 bl sub_8001334 adds r5, r0, 0 cmp r5, 0xE bne _08000BD8 b _08000EC6 _08000BD8: cmp r5, 0x5 bne _08000BE4 movs r7, 0x4 b _08000A42 .align 2, 0 _08000BE0: .4byte gUnknown_203B03C _08000BE4: cmp r5, 0x6 bne _08000BEC movs r7, 0x5 b _08000A42 _08000BEC: add r6, sp, 0x170 movs r4, 0 strb r4, [r6, 0x11] strb r4, [r6, 0x10] movs r3, 0xC6 lsls r3, 1 add r3, sp mov r8, r3 mov r0, r8 movs r1, 0 movs r2, 0x58 bl MemoryFill8 movs r0, 0 mov r9, r0 strh r4, [r6, 0x24] cmp r5, 0x7 beq _08000C3C cmp r5, 0x8 bne _08000C38 add r0, sp, 0x174 add r1, sp, 0x228 bl sub_80991E0 lsls r0, 24 cmp r0, 0 beq _08000C4C ldrb r0, [r6, 0x4] mov r1, r8 bl sub_8096A08 lsls r0, 24 cmp r0, 0 bne _08000C32 b _08000D98 _08000C32: movs r0, 0x1 strb r0, [r6, 0x10] b _08000D98 _08000C38: cmp r5, 0xA bne _08000C52 _08000C3C: add r0, sp, 0x174 add r1, sp, 0x228 bl sub_80991E0 lsls r0, 24 cmp r0, 0 beq _08000C4C b _08000D98 _08000C4C: movs r5, 0xD movs r7, 0x9 b _08000D98 _08000C52: cmp r5, 0x9 bne _08000C6C add r0, sp, 0x174 add r1, sp, 0x228 bl sub_80991E0 lsls r0, 24 cmp r0, 0 beq _08000C66 b _08000D98 _08000C66: movs r5, 0xB movs r7, 0xC b _08000D98 _08000C6C: cmp r5, 0 bne _08000D04 bl sub_8011FA8 adds r1, r0, 0 ldr r0, _08000CA0 cmp r1, r0 bne _08000CC8 movs r2, 0x1 strb r2, [r6, 0x11] strb r2, [r6, 0x8] mov r3, r9 strb r3, [r6, 0xF] ldr r0, _08000CA4 ldr r1, [r0] movs r3, 0xC ldrsh r0, [r1, r3] cmp r0, 0 beq _08000CA8 strb r2, [r6, 0x10] adds r1, 0x4 mov r0, r8 movs r2, 0x58 bl memcpy b _08000CAC .align 2, 0 _08000CA0: .4byte 0x000f1207 _08000CA4: .4byte gUnknown_203B484 _08000CA8: mov r0, r9 strb r0, [r6, 0x10] _08000CAC: ldr r4, _08000CC4 ldr r0, [r4] adds r0, 0x4 movs r1, 0 movs r2, 0x58 bl MemoryFill8 ldr r1, [r4] movs r0, 0 strh r0, [r1, 0xC] b _08000CE4 .align 2, 0 _08000CC4: .4byte gUnknown_203B484 _08000CC8: ldr r0, _08000CD8 cmp r1, r0 bne _08000CDC movs r5, 0x1 movs r7, 0xB bl sub_8096BD0 b _08000CE4 .align 2, 0 _08000CD8: .4byte 0x000f1208 _08000CDC: movs r5, 0x1 movs r7, 0xB bl sub_8096BD0 _08000CE4: cmp r5, 0x1 bne _08000D98 ldr r4, _08000D00 ldr r0, [r4] adds r0, 0x4 movs r1, 0 movs r2, 0x58 bl MemoryFill8 ldr r1, [r4] movs r0, 0 strh r0, [r1, 0xC] b _08000D98 .align 2, 0 _08000D00: .4byte gUnknown_203B484 _08000D04: cmp r5, 0x2 bne _08000D98 bl sub_8011C1C cmp r0, 0x2 bne _08000D34 bl sub_8011FA8 adds r1, r0, 0 movs r0, 0x1 strb r0, [r6, 0x8] mov r3, r9 strb r3, [r6, 0x11] ldr r0, _08000D30 cmp r1, r0 beq _08000D36 adds r0, 0x1 movs r5, 0x1 movs r7, 0xB bl sub_8096BD0 b _08000D36 .align 2, 0 _08000D30: .4byte 0x000f1207 _08000D34: movs r5, 0x3 _08000D36: cmp r5, 0x3 bne _08000D7A bl sub_8001170 lsls r0, 24 lsrs r4, r0, 24 movs r5, 0x1 movs r7, 0xB bl sub_8096BD0 cmp r4, 0x3F beq _08000D70 cmp r4, 0x63 beq _08000D70 adds r0, r4, 0 bl sub_80900E4 lsls r0, 24 cmp r0, 0 beq _08000D70 bl sub_8011C1C cmp r0, 0x2 bne _08000D6C movs r5, 0x3 movs r7, 0x7 b _08000D70 _08000D6C: movs r5, 0xC movs r7, 0xA _08000D70: cmp r5, 0x1 bne _08000D98 bl sub_8011C1C b _08000D98 _08000D7A: cmp r5, 0x4 bne _08000D8E movs r5, 0x1 movs r7, 0xB bl sub_8096BD0 movs r0, 0x1 bl sub_80008C0 b _08000D98 _08000D8E: cmp r5, 0x1 bne _08000D98 movs r7, 0xB bl sub_8096BD0 _08000D98: subs r0, r5, 0x7 cmp r0, 0x3 bls _08000DAC cmp r5, 0 beq _08000E1E cmp r5, 0x2 beq _08000DAC cmp r5, 0x3 beq _08000DAC b _08000A42 _08000DAC: cmp r5, 0 beq _08000E1E cmp r5, 0x2 beq _08000E1E cmp r5, 0x3 beq _08000E1E bl sub_8001170 lsls r0, 24 lsrs r6, r0, 24 bl sub_8097758 cmp r5, 0x9 bne _08000E00 ldr r4, _08000DF4 add r4, sp adds r0, r4, 0 bl sub_8099394 lsls r0, 24 cmp r0, 0 beq _08000E00 ldrb r0, [r4] bl sub_8095228 adds r2, r0, 0 adds r0, 0x2C ldrb r1, [r0] ldrb r0, [r0] lsls r0, 24 asrs r0, 24 cmp r0, 0x1 ble _08000DF8 subs r1, 0x1 b _08000DFA .align 2, 0 _08000DF4: .4byte 0x0000022a _08000DF8: movs r1, 0 _08000DFA: adds r0, r2, 0 adds r0, 0x2C strb r1, [r0] _08000E00: cmp r6, 0x3F bne _08000E0C movs r0, 0 bl sub_8000734 b _08000E1E _08000E0C: adds r0, r6, 0 bl sub_80900E4 lsls r0, 24 cmp r0, 0 bne _08000E1E movs r0, 0 bl sub_8000734 _08000E1E: ldr r0, _08000E70 movs r4, 0x1 str r4, [r0] movs r0, 0x3 bl sub_800A8F8 add r5, sp, 0x170 str r4, [r5] add r0, sp, 0x174 bl sub_80011E8 adds r0, r5, 0 bl sub_8000EDC add r4, sp, 0x1EC movs r0, 0 ldrsh r1, [r4, r0] cmp r1, 0x3 bne _08000E46 b _08000A24 _08000E46: movs r0, 0x2 negs r0, r0 cmp r1, r0 bne _08000E50 b _08000A2A _08000E50: movs r0, 0 movs r1, 0x41 bl sub_80015C0 ldrh r0, [r4] adds r0, 0x1 lsls r0, 16 asrs r0, 16 cmp r0, 0x6 bhi _08000EBE lsls r0, 2 ldr r1, _08000E74 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08000E70: .4byte gUnknown_203B03C _08000E74: .4byte _08000E78 .align 2, 0 _08000E78: .4byte _08000EB6 .4byte _08000EBE .4byte _08000E94 .4byte _08000EB2 .4byte _08000EBE .4byte _08000E94 .4byte _08000EBE _08000E94: movs r7, 0x9 movs r0, 0xF7 lsls r0, 1 add r0, sp ldrb r0, [r0] movs r3, 0x1 cmp r0, 0 beq _08000EA6 movs r3, 0x2 _08000EA6: movs r0, 0 movs r1, 0x41 movs r2, 0 bl sub_800199C b _08000A42 _08000EB2: movs r7, 0xA b _08000A42 _08000EB6: movs r7, 0xC bl sub_8096BD0 b _08000A42 _08000EBE: movs r7, 0xB bl sub_8096BD0 b _08000A42 _08000EC6: mov r0, r10 movs r3, 0x8B lsls r3, 2 add sp, r3 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_80009D0 thumb_func_start sub_8000EDC sub_8000EDC: push {r4-r7,lr} sub sp, 0x8 adds r4, r0, 0 movs r5, 0x1 ldr r0, _08000F24 str r5, [r0] movs r0, 0x3 bl sub_800A8F8 bl sub_8014144 add r1, sp, 0x4 mov r0, sp bl sub_8043D50 ldr r0, [sp] movs r1, 0x7 bl MemoryAlloc str r0, [r4, 0x74] ldr r0, [sp, 0x4] movs r1, 0x7 bl MemoryAlloc str r0, [r4, 0x78] ldrb r0, [r4, 0x8] cmp r0, 0 beq _08000F68 ldr r0, [r4, 0x74] ldr r1, [sp] bl sub_801277C adds r7, r4, 0 adds r7, 0x7C b _08000F2E .align 2, 0 _08000F24: .4byte gUnknown_203B03C _08000F28: movs r0, 0 bl xxx_update_stuff _08000F2E: bl sub_80127A8 lsls r0, 24 cmp r0, 0 bne _08000F28 bl sub_8012828 lsls r0, 24 lsrs r5, r0, 24 bl sub_8012834 bl sub_8011830 cmp r5, 0 beq _08000F58 ldr r0, _08000F54 bl sub_80121E0 b _08000F5E .align 2, 0 _08000F54: .4byte 0x000f1208 _08000F58: ldr r0, _08000F64 bl sub_80121E0 _08000F5E: bl sub_8011854 b _08000F78 .align 2, 0 _08000F64: .4byte 0x000f1209 _08000F68: bl sub_809674C bl sub_80961B4 bl sub_808ED00 adds r7, r4, 0 adds r7, 0x7C _08000F78: cmp r5, 0 beq _08000F92 adds r0, r4, 0 bl sub_8001340 bl sub_8099648 bl sub_8094C14 movs r0, 0 bl sub_8099690 b _08000F96 _08000F92: movs r0, 0x5 strh r0, [r7] _08000F96: adds r5, r7, 0 movs r1, 0 ldrsh r0, [r5, r1] movs r6, 0x2 negs r6, r6 cmp r0, r6 bne _08000FAC adds r0, r4, 0 adds r0, 0x84 bl sub_809542C _08000FAC: movs r1, 0 ldrsh r0, [r5, r1] cmp r0, 0x3 beq _08000FB8 cmp r0, r6 bne _0800100C _08000FB8: adds r0, r4, 0 adds r0, 0x80 bl sub_8097688 bl sub_8011924 movs r1, 0 ldrsh r0, [r7, r1] cmp r0, r6 bne _08000FD8 ldr r0, [r4, 0x74] ldr r1, [sp] movs r2, 0x1 bl sub_8012850 b _08000FFA _08000FD8: ldr r0, [r4, 0x74] ldr r1, [sp] movs r2, 0 bl sub_8012850 b _08000FFA _08000FE4: cmp r0, 0x1 bne _08000FF4 ldr r0, [r4, 0x78] bl MemoryFree ldr r0, [r4, 0x74] bl MemoryFree _08000FF4: movs r0, 0 bl xxx_update_stuff _08000FFA: bl sub_80128B0 cmp r0, 0x2 beq _08001006 cmp r0, 0x3 bne _08000FE4 _08001006: bl sub_80129FC b _0800101C _0800100C: bl sub_808ED00 ldr r0, [r4, 0x78] bl MemoryFree ldr r0, [r4, 0x74] bl MemoryFree _0800101C: add sp, 0x8 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8000EDC thumb_func_start sub_8001024 sub_8001024: push {r4,lr} ldr r1, _08001040 ldm r1!, {r2-r4} stm r0!, {r2-r4} ldm r1!, {r2-r4} stm r0!, {r2-r4} ldm r1!, {r2-r4} stm r0!, {r2-r4} ldm r1!, {r2-r4} stm r0!, {r2-r4} pop {r4} pop {r0} bx r0 .align 2, 0 _08001040: .4byte gUnknown_203B040 thumb_func_end sub_8001024 thumb_func_start sub_8001044 sub_8001044: push {r4,lr} ldr r1, _08001060 ldm r0!, {r2-r4} stm r1!, {r2-r4} ldm r0!, {r2-r4} stm r1!, {r2-r4} ldm r0!, {r2-r4} stm r1!, {r2-r4} ldm r0!, {r2-r4} stm r1!, {r2-r4} pop {r4} pop {r0} bx r0 .align 2, 0 _08001060: .4byte gUnknown_203B040 thumb_func_end sub_8001044 thumb_func_start sub_8001064 sub_8001064: push {r4,r5,lr} sub sp, 0x28 bl sub_808D33C cmp r0, 0 bne _080010AE ldr r5, _0800109C ldrb r0, [r5, 0x8] cmp r0, 0 bne _080010A0 add r4, sp, 0x14 movs r0, 0x4 ldrsh r1, [r5, r0] adds r0, r4, 0 bl sub_808D8BC mov r0, sp adds r1, r4, 0 bl sub_80922F4 movs r1, 0x4 ldrsh r0, [r5, r1] movs r1, 0x1 mov r2, sp bl sub_808CE74 b _080010AE .align 2, 0 _0800109C: .4byte gUnknown_203B040 _080010A0: movs r4, 0x4 ldrsh r0, [r5, r4] adds r2, r5, 0 adds r2, 0x8 movs r1, 0x1 bl sub_808CE74 _080010AE: bl sub_808D378 cmp r0, 0 bne _080010F2 ldr r5, _080010E0 ldrb r0, [r5, 0x1C] cmp r0, 0 bne _080010E4 add r4, sp, 0x14 movs r0, 0x6 ldrsh r1, [r5, r0] adds r0, r4, 0 bl sub_808D8BC mov r0, sp adds r1, r4, 0 bl sub_80922F4 movs r1, 0x6 ldrsh r0, [r5, r1] movs r1, 0 mov r2, sp bl sub_808CE74 b _080010F2 .align 2, 0 _080010E0: .4byte gUnknown_203B040 _080010E4: movs r4, 0x6 ldrsh r0, [r5, r4] adds r2, r5, 0 adds r2, 0x1C movs r1, 0 bl sub_808CE74 _080010F2: ldr r3, _08001164 movs r0, 0x4 ldrsh r1, [r3, r0] cmp r1, 0 beq _08001126 ldr r2, _08001168 movs r4, 0x4 ldrsh r0, [r2, r4] cmp r0, 0 beq _0800111C cmp r1, r0 beq _0800111C _0800110A: adds r2, 0x8 movs r0, 0x4 ldrsh r1, [r2, r0] cmp r1, 0 beq _0800111C movs r4, 0x4 ldrsh r0, [r3, r4] cmp r0, r1 bne _0800110A _0800111C: ldr r2, [r2] movs r0, 0 movs r1, 0x27 bl sub_80018D8 _08001126: ldr r3, _08001164 movs r0, 0x6 ldrsh r1, [r3, r0] cmp r1, 0 beq _0800115A ldr r2, _0800116C movs r4, 0x4 ldrsh r0, [r2, r4] cmp r0, 0 beq _08001150 cmp r1, r0 beq _08001150 _0800113E: adds r2, 0x8 movs r0, 0x4 ldrsh r1, [r2, r0] cmp r1, 0 beq _08001150 movs r4, 0x6 ldrsh r0, [r3, r4] cmp r0, r1 bne _0800113E _08001150: ldr r2, [r2] movs r0, 0 movs r1, 0x26 bl sub_80018D8 _0800115A: add sp, 0x28 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08001164: .4byte gUnknown_203B040 _08001168: .4byte gUnknown_80B690C _0800116C: .4byte gUnknown_80B6994 thumb_func_end sub_8001064 thumb_func_start sub_8001170 sub_8001170: push {r4,lr} sub sp, 0x8 add r4, sp, 0x4 movs r0, 0x63 strb r0, [r4] mov r1, sp adds r1, 0x2 mov r0, sp bl sub_80992E0 lsls r0, 24 cmp r0, 0 beq _08001196 mov r0, sp movs r1, 0 ldrsh r0, [r0, r1] bl sub_80A2740 b _080011BE _08001196: adds r0, r4, 0 bl sub_8099328 lsls r0, 24 cmp r0, 0 bne _080011C0 adds r0, r4, 0 bl sub_8099360 lsls r0, 24 cmp r0, 0 bne _080011C0 mov r0, sp adds r0, 0x5 bl sub_8099394 lsls r0, 24 cmp r0, 0 beq _080011C0 movs r0, 0x3F _080011BE: strb r0, [r4] _080011C0: ldrb r0, [r4] add sp, 0x8 pop {r4} pop {r1} bx r1 thumb_func_end sub_8001170 thumb_func_start sub_80011CC sub_80011CC: push {r4,r5,lr} adds r4, r0, 0 movs r5, 0 strb r1, [r4] strb r5, [r4, 0x1] bl sub_80011E8 strb r5, [r4, 0xB] strb r5, [r4, 0x4] strb r5, [r4, 0xC] strb r5, [r4, 0xD] pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_80011CC thumb_func_start sub_80011E8 sub_80011E8: push {r4,lr} adds r4, r0, 0 movs r0, 0x8 bl sub_80023E4 strb r0, [r4, 0x5] movs r0, 0x3 bl sub_80023E4 strb r0, [r4, 0x6] movs r0, 0x7 bl sub_80023E4 strb r0, [r4, 0x8] movs r0, 0 bl sub_80023E4 strb r0, [r4, 0x9] movs r0, 0x5 bl sub_80023E4 strb r0, [r4, 0xA] movs r0, 0x18 bl sub_80023E4 lsls r0, 24 cmp r0, 0 beq _0800123C movs r0, 0x19 bl sub_80023E4 lsls r0, 24 cmp r0, 0 beq _0800123C movs r0, 0x1A bl sub_80023E4 lsls r0, 24 cmp r0, 0 beq _0800123C movs r0, 0x1 b _0800123E _0800123C: movs r0, 0 _0800123E: strb r0, [r4, 0x7] pop {r4} pop {r0} bx r0 thumb_func_end sub_80011E8 thumb_func_start sub_8001248 sub_8001248: push {r4,r5,lr} movs r4, 0 movs r5, 0 _0800124E: movs r0, 0x64 bl RandomCapped cmp r0, 0x31 bgt _08001266 lsls r0, r4, 2 ldr r1, _080012B8 ldr r1, [r1] adds r0, r1 strb r5, [r0, 0x2] strb r5, [r0, 0x1] strb r5, [r0] _08001266: adds r4, 0x1 cmp r4, 0x13 ble _0800124E bl sub_80910B4 movs r4, 0 ldr r5, _080012BC movs r3, 0x1 _08001276: movs r0, 0x58 adds r1, r4, 0 muls r1, r0 ldr r0, [r5] adds r1, r0, r1 ldrh r2, [r1] adds r0, r3, 0 ands r0, r2 cmp r0, 0 beq _08001298 lsrs r0, r2, 1 ands r0, r3 cmp r0, 0 beq _08001298 adds r1, 0x28 movs r0, 0 strb r0, [r1] _08001298: adds r4, 0x1 movs r0, 0xCE lsls r0, 1 cmp r4, r0 ble _08001276 ldr r0, _080012B8 ldr r0, [r0] movs r1, 0x98 lsls r1, 2 adds r0, r1 movs r1, 0 str r1, [r0] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080012B8: .4byte gUnknown_203B460 _080012BC: .4byte gUnknown_203B45C thumb_func_end sub_8001248 thumb_func_start sub_80012C0 sub_80012C0: push {r4,r5,lr} movs r3, 0 ldr r4, _08001324 movs r2, 0 _080012C8: lsls r1, r3, 2 ldr r0, [r4] adds r1, r0 strb r2, [r1, 0x2] strb r2, [r1, 0x1] strb r2, [r1] adds r3, 0x1 cmp r3, 0x13 ble _080012C8 bl sub_80910B4 movs r3, 0 ldr r5, _08001328 movs r4, 0x1 _080012E4: movs r0, 0x58 adds r1, r3, 0 muls r1, r0 ldr r0, [r5] adds r1, r0, r1 ldrh r2, [r1] adds r0, r4, 0 ands r0, r2 cmp r0, 0 beq _08001306 lsrs r0, r2, 1 ands r0, r4 cmp r0, 0 beq _08001306 adds r1, 0x28 movs r0, 0 strb r0, [r1] _08001306: adds r3, 0x1 movs r0, 0xCE lsls r0, 1 cmp r3, r0 ble _080012E4 ldr r0, _08001324 ldr r0, [r0] movs r1, 0x98 lsls r1, 2 adds r0, r1 movs r1, 0 str r1, [r0] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08001324: .4byte gUnknown_203B460 _08001328: .4byte gUnknown_203B45C thumb_func_end sub_80012C0 thumb_func_start nullsub_1 nullsub_1: bx lr thumb_func_end nullsub_1 thumb_func_start nullsub_2 nullsub_2: bx lr thumb_func_end nullsub_2 thumb_func_start sub_8001334 sub_8001334: push {lr} bl sub_8098468 pop {r1} bx r1 thumb_func_end sub_8001334 thumb_func_start sub_8001340 sub_8001340: push {r4,lr} adds r4, r0, 0 bl nullsub_2 adds r0, r4, 0 bl sub_8042F6C bl nullsub_1 pop {r4} pop {r0} bx r0 thumb_func_end sub_8001340 thumb_func_start nullsub_3 nullsub_3: bx lr thumb_func_end nullsub_3 thumb_func_start sub_800135C sub_800135C: push {r4-r7,lr} movs r1, 0 ldr r4, _0800138C ldr r3, _08001390 movs r2, 0 _08001366: adds r0, r1, r3 strb r2, [r0] adds r1, 0x1 cmp r1, r4 ble _08001366 movs r6, 0 _08001372: lsls r1, r6, 4 ldr r0, _08001394 adds r5, r1, r0 movs r1, 0 ldrsh r0, [r5, r1] adds r7, r6, 0x1 cmp r0, 0 beq _080013B4 cmp r0, 0x8 beq _080013B4 movs r4, 0 b _080013AC .align 2, 0 _0800138C: .4byte 0x000003ff _08001390: .4byte gUnknown_2000A88 _08001394: .4byte gUnknown_80B7394 _08001398: movs r0, 0xA ldrsh r3, [r5, r0] movs r0, 0 adds r1, r6, 0 adds r2, r4, 0 bl sub_800199C adds r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 _080013AC: movs r1, 0x8 ldrsh r0, [r5, r1] cmp r4, r0 blt _08001398 _080013B4: lsls r0, r7, 16 asrs r6, r0, 16 cmp r6, 0x50 ble _08001372 movs r0, 0 movs r1, 0x1 bl sub_80015C0 movs r0, 0x2 movs r1, 0 movs r2, 0 bl sub_8001BB4 movs r0, 0x3 movs r1, 0 movs r2, 0 bl sub_8001BB4 movs r0, 0x4 movs r1, 0 movs r2, 0 bl sub_8001BB4 movs r0, 0x5 movs r1, 0 movs r2, 0 bl sub_8001BB4 movs r0, 0x6 movs r1, 0 movs r2, 0 bl sub_8001BB4 movs r0, 0x7 movs r1, 0 movs r2, 0 bl sub_8001BB4 movs r0, 0x8 movs r1, 0 movs r2, 0 bl sub_8001BB4 movs r0, 0x9 movs r1, 0 movs r2, 0 bl sub_8001BB4 movs r0, 0xA movs r1, 0 movs r2, 0 bl sub_8001BB4 movs r0, 0xB movs r1, 0 movs r2, 0 bl sub_8001BB4 movs r0, 0xC movs r1, 0 movs r2, 0 bl sub_8001BB4 movs r0, 0 movs r1, 0xD movs r2, 0xA2 bl sub_80018D8 movs r0, 0 movs r1, 0xE movs r2, 0 bl sub_80018D8 movs r0, 0 movs r1, 0xF movs r2, 0xA2 bl sub_80018D8 movs r4, 0x1 negs r4, r4 movs r0, 0 movs r1, 0x10 adds r2, r4, 0 bl sub_80018D8 movs r0, 0 movs r1, 0x11 movs r2, 0x24 bl sub_80018D8 movs r0, 0 movs r1, 0x12 adds r2, r4, 0 bl sub_80018D8 movs r0, 0 movs r1, 0x13 movs r2, 0 bl sub_80018D8 movs r0, 0 movs r1, 0x14 adds r2, r4, 0 bl sub_80018D8 movs r0, 0 movs r1, 0x16 movs r2, 0 bl sub_80018D8 movs r0, 0 movs r1, 0x18 movs r2, 0 bl sub_80018D8 movs r0, 0 movs r1, 0x19 movs r2, 0 bl sub_80018D8 movs r0, 0 movs r1, 0x1B adds r2, r4, 0 bl sub_80018D8 movs r0, 0 movs r1, 0x1C movs r2, 0 bl sub_80018D8 movs r0, 0 movs r1, 0x1D movs r2, 0 bl sub_80018D8 movs r0, 0 movs r1, 0x1E movs r2, 0 bl sub_80018D8 movs r0, 0 movs r1, 0x1F movs r2, 0 bl sub_80018D8 movs r0, 0 movs r1, 0x24 bl sub_80015C0 movs r0, 0 movs r1, 0x25 movs r2, 0 bl sub_80018D8 movs r0, 0 movs r1, 0x26 movs r2, 0 bl sub_80018D8 movs r0, 0 movs r1, 0x27 movs r2, 0 bl sub_80018D8 movs r0, 0 movs r1, 0x28 movs r2, 0 bl sub_80018D8 movs r0, 0 movs r1, 0x29 movs r2, 0 bl sub_80018D8 movs r0, 0 movs r1, 0x2A movs r2, 0 bl sub_80018D8 movs r0, 0 movs r1, 0x2B bl sub_80015C0 movs r0, 0 movs r1, 0x2C bl sub_80015C0 movs r0, 0 movs r1, 0x2D bl sub_80015C0 movs r0, 0 movs r1, 0x2E bl sub_80015C0 movs r0, 0 movs r1, 0x2F bl sub_80015C0 movs r0, 0 movs r1, 0x30 bl sub_80015C0 movs r0, 0 movs r1, 0x31 bl sub_80015C0 movs r0, 0 movs r1, 0x41 bl sub_80015C0 bl sub_80972F4 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_800135C thumb_func_start sub_8001564 sub_8001564: push {lr} bl nullsub_128 pop {r0} bx r0 thumb_func_end sub_8001564 thumb_func_start sub_8001570 sub_8001570: push {r4-r7,lr} adds r7, r0, 0 lsls r1, 16 asrs r6, r1, 16 ldr r0, _08001584 cmp r6, r0 bgt _0800158C lsls r1, r6, 4 ldr r0, _08001588 b _08001590 .align 2, 0 _08001584: .4byte 0x000003ff _08001588: .4byte gUnknown_80B7394 _0800158C: lsls r1, r6, 4 ldr r0, _08001598 _08001590: adds r5, r1, r0 movs r4, 0 b _080015B0 .align 2, 0 _08001598: .4byte 0x080b2d30 _0800159C: movs r0, 0xA ldrsh r3, [r5, r0] adds r0, r7, 0 adds r1, r6, 0 adds r2, r4, 0 bl sub_800199C adds r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 _080015B0: movs r1, 0x8 ldrsh r0, [r5, r1] cmp r4, r0 blt _0800159C pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8001570 thumb_func_start sub_80015C0 sub_80015C0: push {r4-r7,lr} adds r7, r0, 0 lsls r1, 16 asrs r6, r1, 16 ldr r0, _080015D4 cmp r6, r0 bgt _080015DC lsls r1, r6, 4 ldr r0, _080015D8 b _080015E0 .align 2, 0 _080015D4: .4byte 0x000003ff _080015D8: .4byte gUnknown_80B7394 _080015DC: lsls r1, r6, 4 ldr r0, _080015E8 _080015E0: adds r5, r1, r0 movs r4, 0 b _080015FE .align 2, 0 _080015E8: .4byte 0x080b2d30 _080015EC: adds r0, r7, 0 adds r1, r6, 0 adds r2, r4, 0 movs r3, 0 bl sub_800199C adds r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 _080015FE: movs r1, 0x8 ldrsh r0, [r5, r1] cmp r4, r0 blt _080015EC pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_80015C0 thumb_func_start sub_800160C sub_800160C: push {r4,lr} adds r3, r0, 0 adds r4, r1, 0 lsls r2, 16 asrs r1, r2, 16 ldr r0, _08001630 cmp r1, r0 bgt _0800163C lsls r1, 4 ldr r0, _08001634 adds r1, r0 str r1, [r3] movs r2, 0x4 ldrsh r0, [r1, r2] ldr r1, _08001638 adds r0, r1 b _0800164C .align 2, 0 _08001630: .4byte 0x000003ff _08001634: .4byte gUnknown_80B7394 _08001638: .4byte gUnknown_2000A88 _0800163C: lsls r1, 4 ldr r0, _08001654 adds r1, r0 str r1, [r3] movs r2, 0x4 ldrsh r0, [r1, r2] lsls r0, 2 adds r0, r4, r0 _0800164C: str r0, [r3, 0x4] pop {r4} pop {r0} bx r0 .align 2, 0 _08001654: .4byte 0x080b2d30 thumb_func_end sub_800160C thumb_func_start sub_8001658 sub_8001658: push {r4,lr} sub sp, 0x8 adds r2, r0, 0 lsls r1, 16 asrs r4, r1, 16 mov r0, sp adds r1, r2, 0 adds r2, r4, 0 bl sub_800160C ldr r0, [sp] ldrh r0, [r0] subs r0, 0x1 lsls r0, 16 asrs r0, 16 cmp r0, 0x7 bls _0800167C b _08001778 _0800167C: lsls r0, 2 ldr r1, _08001688 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08001688: .4byte _0800168C .align 2, 0 _0800168C: .4byte _080016AC .4byte _080016C2 .4byte _080016C8 .4byte _080016D2 .4byte _080016D8 .4byte _080016E0 .4byte _080016C2 .4byte _080016E6 _080016AC: ldr r0, [sp] movs r1, 0x6 ldrsh r0, [r0, r1] movs r1, 0x80 lsls r1, 17 lsls r1, r0 lsrs r1, 24 ldr r0, [sp, 0x4] ldrb r0, [r0] ands r1, r0 b _0800173E _080016C2: ldr r0, [sp, 0x4] ldrb r0, [r0] b _0800177A _080016C8: ldr r0, [sp, 0x4] ldrb r0, [r0] lsls r0, 24 asrs r0, 24 b _0800177A _080016D2: ldr r0, [sp, 0x4] ldrh r0, [r0] b _0800177A _080016D8: ldr r0, [sp, 0x4] movs r1, 0 ldrsh r0, [r0, r1] b _0800177A _080016E0: ldr r0, [sp, 0x4] ldr r0, [r0] b _0800177A _080016E6: adds r0, r4, 0 subs r0, 0x17 lsls r0, 16 asrs r0, 16 cmp r0, 0xC bhi _08001778 lsls r0, 2 ldr r1, _080016FC adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080016FC: .4byte _08001700 .align 2, 0 _08001700: .4byte _08001734 .4byte _08001778 .4byte _08001778 .4byte _08001778 .4byte _08001778 .4byte _08001778 .4byte _08001778 .4byte _08001778 .4byte _08001778 .4byte _08001746 .4byte _0800174C .4byte _08001754 .4byte _08001764 _08001734: bl sub_8098F94 adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 _0800173E: negs r0, r1 orrs r0, r1 lsrs r0, 31 b _0800177A _08001746: bl sub_808D480 b _0800177A _0800174C: movs r0, 0 bl sub_808D544 b _0800177A _08001754: ldr r0, _08001760 ldr r0, [r0] movs r1, 0x98 lsls r1, 2 b _0800176C .align 2, 0 _08001760: .4byte gUnknown_203B460 _08001764: ldr r0, _08001774 ldr r0, [r0] movs r1, 0x99 lsls r1, 2 _0800176C: adds r0, r1 ldr r0, [r0] b _0800177A .align 2, 0 _08001774: .4byte gUnknown_203B460 _08001778: movs r0, 0 _0800177A: add sp, 0x8 pop {r4} pop {r1} bx r1 thumb_func_end sub_8001658 thumb_func_start sub_8001784 sub_8001784: push {r4,r5,lr} sub sp, 0x8 adds r3, r0, 0 lsls r1, 16 asrs r5, r1, 16 lsls r2, 16 lsrs r4, r2, 16 mov r0, sp adds r1, r3, 0 adds r2, r5, 0 bl sub_800160C ldr r0, [sp] ldrh r0, [r0] subs r0, 0x1 lsls r0, 16 asrs r0, 16 cmp r0, 0x7 bls _080017AC b _080018CC _080017AC: lsls r0, 2 ldr r1, _080017B8 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080017B8: .4byte _080017BC .align 2, 0 _080017BC: .4byte _080017DC .4byte _08001800 .4byte _08001808 .4byte _08001814 .4byte _0800181E .4byte _0800182A .4byte _08001800 .4byte _08001834 _080017DC: ldr r0, [sp] ldrh r1, [r0, 0x6] adds r1, r4, r1 lsls r1, 16 lsrs r0, r1, 19 ldr r2, [sp, 0x4] adds r2, r0 movs r0, 0xE0 lsls r0, 11 ands r0, r1 lsrs r0, 16 movs r1, 0x80 lsls r1, 17 lsls r1, r0 lsrs r1, 24 ldrb r0, [r2] ands r1, r0 b _0800188E _08001800: ldr r0, [sp, 0x4] adds r0, r4 ldrb r0, [r0] b _080018CE _08001808: ldr r0, [sp, 0x4] adds r0, r4 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 b _080018CE _08001814: ldr r0, [sp, 0x4] lsls r1, r4, 1 adds r1, r0 ldrh r0, [r1] b _080018CE _0800181E: ldr r0, [sp, 0x4] lsls r1, r4, 1 adds r1, r0 movs r2, 0 ldrsh r0, [r1, r2] b _080018CE _0800182A: ldr r0, [sp, 0x4] lsls r1, r4, 2 adds r1, r0 ldr r0, [r1] b _080018CE _08001834: adds r0, r5, 0 subs r0, 0x17 lsls r0, 16 asrs r0, 16 cmp r0, 0xC bhi _080018CC lsls r0, 2 ldr r1, _0800184C adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0800184C: .4byte _08001850 .align 2, 0 _08001850: .4byte _08001884 .4byte _080018CC .4byte _080018CC .4byte _080018CC .4byte _080018CC .4byte _080018CC .4byte _080018CC .4byte _080018CC .4byte _080018CC .4byte _08001896 .4byte _0800189C .4byte _080018A4 .4byte _080018B8 _08001884: bl sub_8098F94 adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 _0800188E: negs r0, r1 orrs r0, r1 lsrs r0, 31 b _080018CE _08001896: bl sub_808D480 b _080018CE _0800189C: movs r0, 0 bl sub_808D544 b _080018CE _080018A4: ldr r0, _080018B4 ldr r0, [r0] movs r1, 0x98 lsls r1, 2 adds r0, r1 ldr r0, [r0] b _080018CE .align 2, 0 _080018B4: .4byte gUnknown_203B460 _080018B8: ldr r0, _080018C8 ldr r0, [r0] movs r2, 0x99 lsls r2, 2 adds r0, r2 ldr r0, [r0] b _080018CE .align 2, 0 _080018C8: .4byte gUnknown_203B460 _080018CC: movs r0, 0 _080018CE: add sp, 0x8 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_8001784 thumb_func_start sub_80018D8 sub_80018D8: push {r4,r5,lr} sub sp, 0x8 adds r3, r0, 0 adds r4, r2, 0 lsls r1, 16 asrs r5, r1, 16 mov r0, sp adds r1, r3, 0 adds r2, r5, 0 bl sub_800160C ldr r0, [sp] ldrh r0, [r0] subs r0, 0x1 lsls r0, 16 asrs r0, 16 cmp r0, 0x7 bhi _08001990 lsls r0, 2 ldr r1, _08001908 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08001908: .4byte _0800190C .align 2, 0 _0800190C: .4byte _0800192C .4byte _08001958 .4byte _08001958 .4byte _0800195E .4byte _0800195E .4byte _08001964 .4byte _08001958 .4byte _08001968 _0800192C: ldr r0, [sp] movs r2, 0x6 ldrsh r1, [r0, r2] movs r0, 0x80 lsls r0, 17 lsls r0, r1 lsrs r3, r0, 24 cmp r4, 0 beq _0800194A ldr r2, [sp, 0x4] ldrb r1, [r2] adds r0, r3, 0 orrs r0, r1 strb r0, [r2] b _08001990 _0800194A: ldr r2, [sp, 0x4] ldrb r1, [r2] adds r0, r3, 0 orrs r0, r1 eors r0, r3 strb r0, [r2] b _08001990 _08001958: ldr r0, [sp, 0x4] strb r4, [r0] b _08001990 _0800195E: ldr r0, [sp, 0x4] strh r4, [r0] b _08001990 _08001964: ldr r0, [sp, 0x4] b _0800198E _08001968: cmp r5, 0x22 beq _08001972 cmp r5, 0x23 beq _08001984 b _08001990 _08001972: ldr r0, _08001980 ldr r0, [r0] movs r1, 0x98 lsls r1, 2 adds r0, r1 b _0800198E .align 2, 0 _08001980: .4byte gUnknown_203B460 _08001984: ldr r0, _08001998 ldr r0, [r0] movs r2, 0x99 lsls r2, 2 adds r0, r2 _0800198E: str r4, [r0] _08001990: add sp, 0x8 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08001998: .4byte gUnknown_203B460 thumb_func_end sub_80018D8 thumb_func_start sub_800199C sub_800199C: push {r4-r7,lr} sub sp, 0x8 adds r4, r0, 0 adds r6, r3, 0 lsls r1, 16 asrs r7, r1, 16 lsls r2, 16 lsrs r5, r2, 16 mov r0, sp adds r1, r4, 0 adds r2, r7, 0 bl sub_800160C ldr r0, [sp] ldrh r0, [r0] subs r0, 0x1 lsls r0, 16 asrs r0, 16 cmp r0, 0x7 bhi _08001A68 lsls r0, 2 ldr r1, _080019D0 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080019D0: .4byte _080019D4 .align 2, 0 _080019D4: .4byte _080019F4 .4byte _08001A2C .4byte _08001A2C .4byte _08001A34 .4byte _08001A34 .4byte _08001A3E .4byte _08001A2C .4byte _08001A44 _080019F4: ldr r0, [sp] ldrh r0, [r0, 0x6] adds r0, r5, r0 lsls r0, 16 lsrs r2, r0, 19 ldr r1, [sp, 0x4] adds r3, r1, r2 movs r1, 0xE0 lsls r1, 11 ands r1, r0 lsrs r1, 16 movs r0, 0x80 lsls r0, 17 lsls r0, r1 lsrs r2, r0, 24 cmp r6, 0 beq _08001A20 ldrb r1, [r3] adds r0, r2, 0 orrs r0, r1 strb r0, [r3] b _08001A68 _08001A20: ldrb r1, [r3] adds r0, r2, 0 orrs r0, r1 eors r0, r2 strb r0, [r3] b _08001A68 _08001A2C: ldr r0, [sp, 0x4] adds r0, r5 strb r6, [r0] b _08001A68 _08001A34: ldr r1, [sp, 0x4] lsls r0, r5, 1 adds r0, r1 strh r6, [r0] b _08001A68 _08001A3E: ldr r1, [sp, 0x4] lsls r0, r5, 2 b _08001A64 _08001A44: cmp r7, 0x22 beq _08001A4E cmp r7, 0x23 beq _08001A5C b _08001A68 _08001A4E: ldr r0, _08001A58 ldr r0, [r0] movs r1, 0x98 lsls r1, 2 b _08001A64 .align 2, 0 _08001A58: .4byte gUnknown_203B460 _08001A5C: ldr r0, _08001A70 ldr r0, [r0] movs r1, 0x99 lsls r1, 2 _08001A64: adds r0, r1 str r6, [r0] _08001A68: add sp, 0x8 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08001A70: .4byte gUnknown_203B460 thumb_func_end sub_800199C thumb_func_start sub_8001A74 sub_8001A74: push {lr} sub sp, 0x8 adds r2, r0, 0 lsls r2, 16 asrs r2, 16 mov r0, sp movs r1, 0 bl sub_800160C ldr r0, [sp, 0x4] add sp, 0x8 pop {r1} bx r1 thumb_func_end sub_8001A74 thumb_func_start sub_8001A90 sub_8001A90: push {lr} sub sp, 0x8 adds r2, r0, 0 lsls r2, 16 asrs r2, 16 mov r0, sp movs r1, 0 bl sub_800160C ldr r0, [sp] movs r1, 0x8 ldrsh r0, [r0, r1] add sp, 0x8 pop {r1} bx r1 thumb_func_end sub_8001A90 thumb_func_start sub_8001AB0 sub_8001AB0: push {r4-r7,lr} sub sp, 0x8 adds r7, r0, 0 lsls r1, 16 asrs r5, r1, 16 movs r6, 0 mov r0, sp movs r1, 0 adds r2, r5, 0 bl sub_800160C movs r4, 0 ldr r0, [sp] movs r1, 0x8 ldrsh r0, [r0, r1] cmp r6, r0 bge _08001AEC _08001AD2: lsls r2, r4, 16 lsrs r2, 16 adds r0, r7, 0 adds r1, r5, 0 bl sub_8001784 adds r6, r0 adds r4, 0x1 ldr r0, [sp] movs r1, 0x8 ldrsh r0, [r0, r1] cmp r4, r0 blt _08001AD2 _08001AEC: adds r0, r6, 0 add sp, 0x8 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_8001AB0 thumb_func_start sub_8001AF8 sub_8001AF8: push {r4,r5,lr} sub sp, 0x8 adds r3, r0, 0 adds r4, r1, 0 adds r5, r2, 0 lsls r3, 16 asrs r3, 16 mov r0, sp movs r1, 0 adds r2, r3, 0 bl sub_800160C ldr r1, [sp, 0x4] movs r2, 0 b _08001B1C _08001B16: strb r0, [r4] adds r4, 0x1 adds r2, 0x1 _08001B1C: cmp r2, r5 bge _08001B28 ldrb r0, [r1] adds r1, 0x1 cmp r0, 0 bne _08001B16 _08001B28: movs r0, 0 strb r0, [r4] add sp, 0x8 pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_8001AF8 thumb_func_start sub_8001B34 sub_8001B34: push {r4,lr} sub sp, 0x8 adds r3, r0, 0 adds r4, r2, 0 lsls r3, 16 asrs r3, 16 mov r0, sp movs r1, 0 adds r2, r3, 0 bl sub_800160C ldr r1, [sp, 0x4] movs r2, 0 b _08001B56 _08001B50: strb r0, [r1] adds r1, 0x1 adds r2, 0x1 _08001B56: cmp r2, r4 bge _08001B62 ldrb r0, [r1] adds r1, 0x1 cmp r0, 0 bne _08001B50 _08001B62: ldr r0, [sp] movs r3, 0x8 ldrsh r0, [r0, r3] cmp r2, r0 bge _08001B7E movs r3, 0 _08001B6E: strb r3, [r1] adds r1, 0x1 adds r2, 0x1 ldr r0, [sp] movs r4, 0x8 ldrsh r0, [r0, r4] cmp r2, r0 blt _08001B6E _08001B7E: add sp, 0x8 pop {r4} pop {r0} bx r0 thumb_func_end sub_8001B34 thumb_func_start sub_8001B88 sub_8001B88: push {r4-r6,lr} adds r4, r0, 0 adds r5, r1, 0 adds r6, r2, 0 lsls r4, 16 asrs r4, 16 movs r0, 0 adds r1, r4, 0 movs r2, 0 bl sub_8001784 str r0, [r5] movs r0, 0 adds r1, r4, 0 movs r2, 0x1 bl sub_8001784 str r0, [r6] pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_8001B88 thumb_func_start sub_8001BB4 sub_8001BB4: push {r4-r6,lr} sub sp, 0x14 adds r5, r1, 0 adds r6, r2, 0 lsls r0, 16 asrs r4, r0, 16 add r2, sp, 0x10 adds r0, r4, 0 add r1, sp, 0xC bl sub_8001B88 ldr r1, _08001C20 ldr r3, [sp, 0xC] ldr r0, [sp, 0x10] str r0, [sp] str r5, [sp, 0x4] str r6, [sp, 0x8] movs r0, 0x6 adds r2, r4, 0 bl Log cmp r4, 0x3 bne _08001BF8 ldr r0, [sp, 0xC] cmp r5, r0 bne _08001BEE ldr r0, [sp, 0x10] cmp r6, r0 beq _08001BF8 _08001BEE: movs r0, 0 movs r1, 0x19 movs r2, 0 bl sub_80018D8 _08001BF8: movs r0, 0 adds r1, r4, 0 movs r2, 0 adds r3, r5, 0 bl sub_800199C movs r0, 0 adds r1, r4, 0 movs r2, 0x1 adds r3, r6, 0 bl sub_800199C cmp r4, 0x4 beq _08001C76 cmp r4, 0x4 bgt _08001C24 cmp r4, 0x3 beq _08001C2A b _08001CBA .align 2, 0 _08001C20: .4byte gUnknown_80B72CC _08001C24: cmp r4, 0xC beq _08001CA4 b _08001CBA _08001C2A: subs r0, r5, 0x1 cmp r0, 0x1A bhi _08001CBA movs r2, 0x1 negs r2, r2 movs r0, 0x3 movs r1, 0x8 bl sub_8001D44 lsls r0, 24 cmp r0, 0 beq _08001C48 movs r0, 0 bl sub_80976F8 _08001C48: movs r0, 0x3 movs r1, 0xB movs r2, 0x3 bl sub_8001D44 lsls r0, 24 cmp r0, 0 beq _08001C5E movs r0, 0x1 bl sub_80976F8 _08001C5E: movs r0, 0x3 movs r1, 0x11 movs r2, 0 bl sub_8001D44 lsls r0, 24 cmp r0, 0 beq _08001CBA movs r0, 0x2 bl sub_80976F8 b _08001CBA _08001C76: movs r0, 0x4 movs r1, 0x1F movs r2, 0 bl sub_8001CC4 lsls r0, 24 cmp r0, 0 bne _08001C8C movs r0, 0x4 bl sub_80976F8 _08001C8C: movs r0, 0x4 movs r1, 0x20 movs r2, 0 bl sub_8001CC4 lsls r0, 24 cmp r0, 0 bne _08001CBA movs r0, 0x5 bl sub_80976F8 b _08001CBA _08001CA4: movs r0, 0xC movs r1, 0x37 movs r2, 0x2 bl sub_8001CC4 lsls r0, 24 cmp r0, 0 bne _08001CBA movs r0, 0x3 bl sub_80976F8 _08001CBA: add sp, 0x14 pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_8001BB4 thumb_func_start sub_8001CC4 sub_8001CC4: push {r4-r7,lr} adds r4, r0, 0 adds r6, r1, 0 adds r7, r2, 0 lsls r4, 16 asrs r4, 16 movs r0, 0 adds r1, r4, 0 movs r2, 0 bl sub_8001784 adds r5, r0, 0 movs r0, 0 adds r1, r4, 0 movs r2, 0x1 bl sub_8001784 cmp r5, 0x3A beq _08001CFE cmp r5, r6 bcc _08001CFA cmp r7, 0 blt _08001CFE cmp r5, r6 bne _08001CFE cmp r0, r7 bge _08001CFE _08001CFA: movs r0, 0x1 b _08001D00 _08001CFE: movs r0, 0 _08001D00: pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_8001CC4 thumb_func_start sub_8001D08 sub_8001D08: push {r4-r7,lr} adds r4, r0, 0 adds r6, r1, 0 adds r7, r2, 0 lsls r4, 16 asrs r4, 16 movs r0, 0 adds r1, r4, 0 movs r2, 0 bl sub_8001784 adds r5, r0, 0 movs r0, 0 adds r1, r4, 0 movs r2, 0x1 bl sub_8001784 cmp r5, r6 bne _08001D3A cmp r7, 0 blt _08001D36 cmp r0, r7 bne _08001D3A _08001D36: movs r0, 0x1 b _08001D3C _08001D3A: movs r0, 0 _08001D3C: pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_8001D08 thumb_func_start sub_8001D44 sub_8001D44: push {r4-r7,lr} adds r4, r0, 0 adds r6, r1, 0 adds r7, r2, 0 lsls r4, 16 asrs r4, 16 movs r0, 0 adds r1, r4, 0 movs r2, 0 bl sub_8001784 adds r5, r0, 0 movs r0, 0 adds r1, r4, 0 movs r2, 0x1 bl sub_8001784 cmp r5, 0x3A beq _08001D7E cmp r5, r6 bhi _08001D7A cmp r7, 0 blt _08001D7E cmp r5, r6 bne _08001D7E cmp r0, r7 ble _08001D7E _08001D7A: movs r0, 0x1 b _08001D80 _08001D7E: movs r0, 0 _08001D80: pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_8001D44 thumb_func_start sub_8001D88 sub_8001D88: push {lr} sub sp, 0x8 add r2, sp, 0x4 movs r0, 0x3 mov r1, sp bl sub_8001B88 ldr r0, [sp] subs r0, 0x1 cmp r0, 0x1A bls _08001DA0 b _080020D4 _08001DA0: movs r0, 0x4 movs r1, 0x1F movs r2, 0 bl sub_8001CC4 lsls r0, 24 cmp r0, 0 beq _08001E08 movs r0, 0x3 movs r1, 0xF movs r2, 0x7 bl sub_8001D44 lsls r0, 24 cmp r0, 0 beq _08001DDE movs r0, 0x4 movs r1, 0x1F movs r2, 0 bl sub_8001BB4 movs r0, 0xE movs r1, 0x1 bl sub_8097418 movs r0, 0 movs r1, 0x28 movs r2, 0x2 bl sub_80018D8 b _08001E08 _08001DDE: movs r0, 0x4 movs r1, 0 movs r2, 0 bl sub_8001D08 lsls r0, 24 cmp r0, 0 beq _08001E08 movs r0, 0x3 movs r1, 0xF movs r2, 0x3 bl sub_8001D44 lsls r0, 24 cmp r0, 0 beq _08001E08 movs r0, 0x4 movs r1, 0x1D movs r2, 0x1 bl sub_8001BB4 _08001E08: movs r0, 0x4 movs r1, 0x1F movs r2, 0 bl sub_8001D08 lsls r0, 24 cmp r0, 0 beq _08001E36 movs r0, 0xE bl sub_8092600 lsls r0, 24 cmp r0, 0 beq _08001E36 movs r0, 0x4 movs r1, 0x1F movs r2, 0x1 bl sub_8001BB4 movs r0, 0xF movs r1, 0x1 bl sub_809733C _08001E36: ldr r0, [sp] cmp r0, 0x11 bhi _08001E3E b _080020D4 _08001E3E: movs r0, 0x25 movs r1, 0x1 bl sub_80973A8 movs r0, 0xE7 bl sub_8091130 movs r1, 0x1 negs r1, r1 cmp r0, r1 bne _08001E72 ldr r0, _080020DC ldr r0, [r0] ldr r1, _080020E0 adds r0, r1 ldrh r0, [r0] cmp r0, 0 bne _08001E72 movs r0, 0x5 movs r1, 0x21 movs r2, 0x3 bl sub_8001D44 lsls r0, 24 cmp r0, 0 beq _08001E7A _08001E72: movs r0, 0x22 movs r1, 0x1 bl sub_80973A8 _08001E7A: movs r0, 0x2B bl sub_8092600 lsls r0, 24 cmp r0, 0 beq _08001E8E movs r0, 0x1F movs r1, 0x1 bl sub_80973A8 _08001E8E: movs r0, 0x24 bl sub_8092600 lsls r0, 24 cmp r0, 0 beq _08001EA2 movs r0, 0x20 movs r1, 0x1 bl sub_80973A8 _08001EA2: movs r0, 0x23 bl sub_8092600 lsls r0, 24 cmp r0, 0 beq _08001EB6 movs r0, 0x21 movs r1, 0x1 bl sub_80973A8 _08001EB6: movs r0, 0x19 bl sub_8092600 lsls r0, 24 cmp r0, 0 beq _08001ECA movs r0, 0x23 movs r1, 0x1 bl sub_80973A8 _08001ECA: movs r0, 0x3 bl sub_8092600 lsls r0, 24 cmp r0, 0 beq _08001EE6 movs r0, 0x24 movs r1, 0x1 bl sub_80973A8 movs r0, 0x28 movs r1, 0x1 bl sub_80973A8 _08001EE6: movs r0, 0x2C bl sub_8092600 lsls r0, 24 cmp r0, 0 beq _08001F06 movs r0, 0x2D bl sub_8092600 lsls r0, 24 cmp r0, 0 beq _08001F06 movs r0, 0x26 movs r1, 0x1 bl sub_80973A8 _08001F06: movs r0, 0x5 movs r1, 0 movs r2, 0 bl sub_8001D08 lsls r0, 24 cmp r0, 0 beq _08001F20 movs r0, 0x5 movs r1, 0x21 movs r2, 0x1 bl sub_8001BB4 _08001F20: movs r0, 0xE2 bl sub_8091130 movs r1, 0x1 negs r1, r1 cmp r0, r1 bne _08001F3E ldr r0, _080020DC ldr r0, [r0] movs r1, 0x85 lsls r1, 2 adds r0, r1 ldrh r0, [r0] cmp r0, 0 beq _08001F7E _08001F3E: movs r0, 0x7 movs r1, 0 movs r2, 0 bl sub_8001D08 lsls r0, 24 cmp r0, 0 beq _08001F58 movs r0, 0x7 movs r1, 0x26 movs r2, 0x1 bl sub_8001BB4 _08001F58: movs r0, 0x9 movs r1, 0 movs r2, 0 bl sub_8001D08 lsls r0, 24 cmp r0, 0 beq _08001F7E movs r0, 0x37 bl sub_8092600 lsls r0, 24 cmp r0, 0 beq _08001F7E movs r0, 0x9 movs r1, 0x2E movs r2, 0x1 bl sub_8001BB4 _08001F7E: movs r0, 0x9 movs r1, 0x30 movs r2, 0 bl sub_8001CC4 lsls r0, 24 cmp r0, 0 bne _0800202A movs r0, 0x5 movs r1, 0x22 movs r2, 0 bl sub_8001D08 lsls r0, 24 cmp r0, 0 beq _08001FCC movs r0, 0x90 bl sub_808E734 lsls r0, 24 cmp r0, 0 beq _08001FCC movs r0, 0x91 bl sub_808E734 lsls r0, 24 cmp r0, 0 beq _08001FCC movs r0, 0x92 bl sub_808E734 lsls r0, 24 cmp r0, 0 beq _08001FCC movs r0, 0x5 movs r1, 0x22 movs r2, 0x1 bl sub_8001BB4 _08001FCC: movs r0, 0xB movs r1, 0 movs r2, 0 bl sub_8001D08 lsls r0, 24 cmp r0, 0 beq _08002002 movs r0, 0x5 movs r1, 0x21 movs r2, 0x3 bl sub_8001D44 lsls r0, 24 cmp r0, 0 beq _08002002 movs r0, 0xE bl sub_8092600 lsls r0, 24 cmp r0, 0 beq _08002002 movs r0, 0xB movs r1, 0x33 movs r2, 0x1 bl sub_8001BB4 _08002002: movs r0, 0xE bl sub_8092600 lsls r0, 24 cmp r0, 0 beq _08002016 movs r0, 0x27 movs r1, 0x1 bl sub_80973A8 _08002016: movs r0, 0xE bl sub_8092600 lsls r0, 24 cmp r0, 0 beq _0800202A movs r0, 0x29 movs r1, 0x1 bl sub_80973A8 _0800202A: movs r0, 0x5 movs r1, 0x22 movs r2, 0 bl sub_8001CC4 lsls r0, 24 cmp r0, 0 bne _08002086 movs r0, 0xA movs r1, 0 movs r2, 0 bl sub_8001D08 lsls r0, 24 cmp r0, 0 beq _0800205C movs r0, 0xA movs r1, 0x31 movs r2, 0x1 bl sub_8001BB4 movs r0, 0x1B movs r1, 0x1 bl sub_809733C _0800205C: movs r0, 0xC movs r1, 0 movs r2, 0 bl sub_8001D08 lsls r0, 24 cmp r0, 0 beq _08002086 movs r0, 0xB movs r1, 0x34 movs r2, 0 bl sub_8001CC4 lsls r0, 24 cmp r0, 0 bne _08002086 movs r0, 0xC movs r1, 0x35 movs r2, 0x1 bl sub_8001BB4 _08002086: movs r0, 0x6 movs r1, 0 movs r2, 0 bl sub_8001D08 lsls r0, 24 cmp r0, 0 beq _080020AE movs r0, 0x89 lsls r0, 1 bl sub_808E734 lsls r0, 24 cmp r0, 0 beq _080020AE movs r0, 0x6 movs r1, 0x24 movs r2, 0x1 bl sub_8001BB4 _080020AE: movs r0, 0x8 movs r1, 0 movs r2, 0 bl sub_8001D08 lsls r0, 24 cmp r0, 0 beq _080020D4 ldr r0, _080020E4 bl sub_808E734 lsls r0, 24 cmp r0, 0 beq _080020D4 movs r0, 0x8 movs r1, 0x2C movs r2, 0x1 bl sub_8001BB4 _080020D4: add sp, 0x8 pop {r0} bx r0 .align 2, 0 _080020DC: .4byte gUnknown_203B460 _080020E0: .4byte 0x0000021e _080020E4: .4byte 0x00000113 thumb_func_end sub_8001D88 thumb_func_start sub_80020E8 sub_80020E8: push {r4,lr} adds r3, r0, 0 adds r4, r1, 0 cmp r2, 0xB bhi _08002182 lsls r0, r2, 2 ldr r1, _080020FC adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080020FC: .4byte _08002100 .align 2, 0 _08002100: .4byte _08002130 .4byte _08002134 .4byte _08002138 .4byte _0800213C .4byte _08002142 .4byte _0800214C .4byte _08002156 .4byte _0800215C .4byte _08002162 .4byte _08002168 .4byte _08002170 .4byte _0800217A _08002130: adds r0, r4, 0 b _08002194 _08002134: subs r0, r3, r4 b _08002194 _08002138: adds r0, r3, r4 b _08002194 _0800213C: adds r0, r3, 0 muls r0, r4 b _08002194 _08002142: adds r0, r3, 0 adds r1, r4, 0 bl __divsi3 b _08002194 _0800214C: adds r0, r3, 0 adds r1, r4, 0 bl __modsi3 b _08002194 _08002156: ands r3, r4 adds r0, r3, 0 b _08002194 _0800215C: orrs r3, r4 adds r0, r3, 0 b _08002194 _08002162: eors r3, r4 adds r0, r3, 0 b _08002194 _08002168: movs r0, 0x1 lsls r0, r4 orrs r0, r3 b _08002194 _08002170: movs r0, 0x1 lsls r0, r4 bics r3, r0 adds r0, r3, 0 b _08002194 _0800217A: adds r0, r4, 0 bl sub_800451C b _08002194 _08002182: ldr r0, _0800218C ldr r1, _08002190 bl FatalError .align 2, 0 _0800218C: .4byte gUnknown_80B7318 _08002190: .4byte gUnknown_80B7324 _08002194: pop {r4} pop {r1} bx r1 thumb_func_end sub_80020E8 thumb_func_start sub_800219C sub_800219C: push {r4,lr} adds r3, r0, 0 adds r4, r1, 0 cmp r2, 0xA bhi _08002248 lsls r0, r2, 2 ldr r1, _080021B0 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080021B0: .4byte _080021B4 .align 2, 0 _080021B4: .4byte _080021E0 .4byte _080021E4 .4byte _080021E8 .4byte _080021FE .4byte _08002212 .4byte _08002208 .4byte _0800221C .4byte _080021F2 .4byte _08002226 .4byte _08002232 .4byte _0800223E _080021E0: movs r0, 0x1 b _08002258 _080021E4: movs r0, 0 b _08002258 _080021E8: movs r0, 0 cmp r3, r4 bne _08002258 movs r0, 0x1 b _08002258 _080021F2: adds r1, r3, 0 eors r1, r4 negs r0, r1 orrs r0, r1 lsrs r0, 31 b _08002258 _080021FE: movs r0, 0 cmp r3, r4 ble _08002258 movs r0, 0x1 b _08002258 _08002208: movs r0, 0 cmp r3, r4 blt _08002258 movs r0, 0x1 b _08002258 _08002212: movs r0, 0 cmp r3, r4 bge _08002258 movs r0, 0x1 b _08002258 _0800221C: movs r0, 0 cmp r3, r4 bgt _08002258 movs r0, 0x1 b _08002258 _08002226: adds r0, r3, 0 ands r0, r4 cmp r0, 0 beq _08002258 movs r0, 0x1 b _08002258 _08002232: adds r0, r3, 0 eors r0, r4 cmp r0, 0 beq _08002258 movs r0, 0x1 b _08002258 _0800223E: asrs r3, r4 movs r0, 0x1 ands r3, r0 adds r0, r3, 0 b _08002258 _08002248: ldr r0, _08002250 ldr r1, _08002254 bl FatalError .align 2, 0 _08002250: .4byte gUnknown_80B7350 _08002254: .4byte gUnknown_80B735C _08002258: pop {r4} pop {r1} bx r1 thumb_func_end sub_800219C thumb_func_start sub_8002260 sub_8002260: push {lr} bl sub_80020E8 pop {r1} bx r1 thumb_func_end sub_8002260 thumb_func_start sub_800226C sub_800226C: push {r4-r6,lr} mov r6, r8 push {r6} mov r8, r0 adds r4, r1, 0 adds r5, r2, 0 adds r6, r3, 0 lsls r4, 16 asrs r4, 16 adds r1, r4, 0 bl sub_8001658 adds r1, r5, 0 adds r2, r6, 0 bl sub_80020E8 adds r2, r0, 0 mov r0, r8 adds r1, r4, 0 bl sub_80018D8 pop {r3} mov r8, r3 pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_800226C thumb_func_start sub_80022A0 sub_80022A0: push {r4-r6,lr} mov r6, r9 mov r5, r8 push {r5,r6} mov r8, r0 adds r5, r1, 0 adds r4, r2, 0 mov r9, r3 lsls r5, 16 asrs r5, 16 lsls r4, 16 asrs r4, 16 adds r1, r5, 0 bl sub_8001658 adds r6, r0, 0 mov r0, r8 adds r1, r4, 0 bl sub_8001658 adds r1, r0, 0 adds r0, r6, 0 mov r2, r9 bl sub_80020E8 adds r2, r0, 0 mov r0, r8 adds r1, r5, 0 bl sub_80018D8 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_80022A0 thumb_func_start sub_80022E8 sub_80022E8: push {lr} bl sub_800219C lsls r0, 24 lsrs r0, 24 pop {r1} bx r1 thumb_func_end sub_80022E8 thumb_func_start sub_80022F8 sub_80022F8: push {r4,r5,lr} adds r4, r2, 0 adds r5, r3, 0 lsls r1, 16 asrs r1, 16 bl sub_8001658 adds r1, r4, 0 adds r2, r5, 0 bl sub_800219C lsls r0, 24 lsrs r0, 24 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_80022F8 thumb_func_start sub_8002318 sub_8002318: push {r4-r6,lr} mov r6, r8 push {r6} adds r6, r0, 0 adds r4, r2, 0 mov r8, r3 lsls r1, 16 asrs r1, 16 lsls r4, 16 asrs r4, 16 bl sub_8001658 adds r5, r0, 0 adds r0, r6, 0 adds r1, r4, 0 bl sub_8001658 adds r1, r0, 0 adds r0, r5, 0 mov r2, r8 bl sub_800219C lsls r0, 24 lsrs r0, 24 pop {r3} mov r8, r3 pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_8002318 thumb_func_start sub_8002354 sub_8002354: push {lr} adds r1, r0, 0 cmp r1, 0x3A bls _08002362 movs r0, 0x1 negs r0, r0 b _0800236C _08002362: ldr r0, _08002370 lsls r1, 3 adds r0, 0x4 adds r1, r0 ldr r0, [r1] _0800236C: pop {r1} bx r1 .align 2, 0 _08002370: .4byte gUnknown_80B6D90 thumb_func_end sub_8002354 thumb_func_start sub_8002374 sub_8002374: push {lr} adds r1, r0, 0 cmp r1, 0x3A bls _08002384 ldr r0, _08002380 b _0800238C .align 2, 0 _08002380: .4byte gUnknown_80B7378 _08002384: ldr r0, _08002390 lsls r1, 3 adds r1, r0 ldr r0, [r1] _0800238C: pop {r1} bx r1 .align 2, 0 _08002390: .4byte gUnknown_80B6D90 thumb_func_end sub_8002374 thumb_func_start sub_8002394 sub_8002394: push {lr} adds r1, r0, 0 subs r1, 0x12 cmp r1, 0x8 bhi _080023AC ldr r0, _080023A8 lsls r1, 2 adds r1, r0 ldr r0, [r1] b _080023BA .align 2, 0 _080023A8: .4byte gUnknown_80B714C _080023AC: cmp r0, 0xF beq _080023B8 ldr r0, _080023B4 b _080023BA .align 2, 0 _080023B4: .4byte gUnknown_80B7144 _080023B8: ldr r0, _080023C0 _080023BA: pop {r1} bx r1 .align 2, 0 _080023C0: .4byte gUnknown_80B7388 thumb_func_end sub_8002394 thumb_func_start sub_80023C4 sub_80023C4: push {lr} adds r1, r0, 0 cmp r1, 0x3 bls _080023D4 ldr r0, _080023D0 b _080023DC .align 2, 0 _080023D0: .4byte gUnknown_80B7144 _080023D4: ldr r0, _080023E0 lsls r1, 2 adds r1, r0 ldr r0, [r1] _080023DC: pop {r1} bx r1 .align 2, 0 _080023E0: .4byte gUnknown_80B71A0 thumb_func_end sub_80023C4 thumb_func_start sub_80023E4 sub_80023E4: push {r4,lr} cmp r0, 0x1D bls _080023EC b _0800264E _080023EC: lsls r0, 2 ldr r1, _080023F8 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080023F8: .4byte _080023FC .align 2, 0 _080023FC: .4byte _08002474 .4byte _08002482 .4byte _0800248E .4byte _0800249A .4byte _080024A6 .4byte _080024BE .4byte _080024E6 .4byte _080024F4 .4byte _08002500 .4byte _0800250C .4byte _0800251A .4byte _08002526 .4byte _08002532 .4byte _0800255A .4byte _08002566 .4byte _0800257A .4byte _0800258E .4byte _0800259C .4byte _080025AA .4byte _080025B8 .4byte _080025C6 .4byte _080025D4 .4byte _080025E2 .4byte _080025F0 .4byte _080025FE .4byte _0800260C .4byte _0800261A .4byte _08002628 .4byte _08002630 .4byte _08002644 _08002474: movs r2, 0x1 negs r2, r2 movs r0, 0x3 movs r1, 0x2 bl sub_8001D44 b _08002648 _08002482: movs r0, 0x3 movs r1, 0x3 movs r2, 0x3 bl sub_8001D44 b _08002648 _0800248E: movs r0, 0x3 movs r1, 0x4 movs r2, 0x3 bl sub_8001D44 b _08002648 _0800249A: movs r0, 0x3 movs r1, 0x5 movs r2, 0 bl sub_8001D44 b _08002648 _080024A6: movs r4, 0 movs r0, 0x3 movs r1, 0xB movs r2, 0 bl sub_8001D44 lsls r0, 24 cmp r0, 0 beq _08002556 movs r0, 0x3 movs r1, 0xD b _080024D4 _080024BE: movs r4, 0 movs r0, 0x3 movs r1, 0xB movs r2, 0x3 bl sub_8001D44 lsls r0, 24 cmp r0, 0 beq _08002556 movs r0, 0x3 movs r1, 0xF _080024D4: movs r2, 0 bl sub_8001CC4 lsls r0, 24 lsrs r0, 24 negs r1, r0 orrs r1, r0 lsrs r4, r1, 31 b _08002556 _080024E6: movs r2, 0x1 negs r2, r2 movs r0, 0x3 movs r1, 0x11 bl sub_8001D44 b _08002648 _080024F4: movs r0, 0x3 movs r1, 0x12 movs r2, 0x2 bl sub_8001D44 b _08002648 _08002500: movs r0, 0x3 movs r1, 0x12 movs r2, 0x3 bl sub_8001D44 b _08002648 _0800250C: movs r2, 0x1 negs r2, r2 movs r0, 0x3 movs r1, 0x12 bl sub_8001D44 b _08002648 _0800251A: movs r0, 0x3 movs r1, 0x5 movs r2, 0x4 bl sub_8001D44 b _08002648 _08002526: movs r0, 0x3 movs r1, 0x5 movs r2, 0x4 bl sub_8001D44 b _08002648 _08002532: movs r4, 0 movs r0, 0x3 movs r1, 0xB movs r2, 0x2 bl sub_8001D08 lsls r0, 24 cmp r0, 0 bne _08002556 movs r0, 0x3 movs r1, 0xB movs r2, 0x3 bl sub_8001D08 lsls r0, 24 cmp r0, 0 bne _08002556 movs r4, 0x1 _08002556: adds r0, r4, 0 b _08002650 _0800255A: movs r0, 0x3 movs r1, 0x10 movs r2, 0x2 bl sub_8001D08 b _08002648 _08002566: movs r0, 0x3 movs r1, 0x5 movs r2, 0x7 bl sub_8001CC4 movs r1, 0 lsls r0, 24 cmp r0, 0 bne _08002640 b _0800263E _0800257A: movs r0, 0x3 movs r1, 0xF movs r2, 0 bl sub_8001CC4 movs r1, 0 lsls r0, 24 cmp r0, 0 bne _08002640 b _0800263E _0800258E: movs r2, 0x1 negs r2, r2 movs r0, 0x3 movs r1, 0x7 bl sub_8001D44 b _08002648 _0800259C: movs r2, 0x1 negs r2, r2 movs r0, 0x3 movs r1, 0xC bl sub_8001D44 b _08002648 _080025AA: movs r2, 0x1 negs r2, r2 movs r0, 0x3 movs r1, 0xD bl sub_8001D44 b _08002648 _080025B8: movs r2, 0x1 negs r2, r2 movs r0, 0x3 movs r1, 0xF bl sub_8001D44 b _08002648 _080025C6: movs r2, 0x1 negs r2, r2 movs r0, 0x3 movs r1, 0x10 bl sub_8001D44 b _08002648 _080025D4: movs r2, 0x1 negs r2, r2 movs r0, 0x5 movs r1, 0x21 bl sub_8001D44 b _08002648 _080025E2: movs r2, 0x1 negs r2, r2 movs r0, 0x5 movs r1, 0x22 bl sub_8001D44 b _08002648 _080025F0: movs r2, 0x1 negs r2, r2 movs r0, 0x6 movs r1, 0x24 bl sub_8001D44 b _08002648 _080025FE: movs r2, 0x1 negs r2, r2 movs r0, 0x7 movs r1, 0x2A bl sub_8001D44 b _08002648 _0800260C: movs r2, 0x1 negs r2, r2 movs r0, 0x8 movs r1, 0x2C bl sub_8001D44 b _08002648 _0800261A: movs r2, 0x1 negs r2, r2 movs r0, 0xA movs r1, 0x31 bl sub_8001D44 b _08002648 _08002628: movs r0, 0x29 bl sub_80973F4 b _08002648 _08002630: bl sub_8092178 movs r1, 0 lsls r0, 24 lsrs r0, 24 cmp r0, 0x6 bne _08002640 _0800263E: movs r1, 0x1 _08002640: adds r0, r1, 0 b _08002650 _08002644: bl sub_809761C _08002648: lsls r0, 24 lsrs r0, 24 b _08002650 _0800264E: movs r0, 0 _08002650: pop {r4} pop {r1} bx r1 thumb_func_end sub_80023E4 thumb_func_start sub_8002658 sub_8002658: push {r4,r5,lr} lsls r0, 16 asrs r4, r0, 16 ldr r1, _0800267C ldrh r2, [r1] movs r3, 0 ldrsh r0, [r1, r3] movs r3, 0x1 negs r3, r3 cmp r0, r3 beq _0800268C _0800266E: lsls r0, r2, 16 asrs r0, 16 cmp r0, r4 bne _08002680 ldrb r0, [r1, 0x2] b _0800268E .align 2, 0 _0800267C: .4byte gUnknown_80B71E4 _08002680: adds r1, 0x4 ldrh r2, [r1] movs r5, 0 ldrsh r0, [r1, r5] cmp r0, r3 bne _0800266E _0800268C: movs r0, 0 _0800268E: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_8002658 thumb_func_start sub_8002694 sub_8002694: push {r4,lr} lsls r0, 24 lsrs r3, r0, 24 ldr r1, _080026B4 movs r2, 0 ldrsh r0, [r1, r2] movs r2, 0x1 negs r2, r2 cmp r0, r2 beq _080026C2 _080026A8: ldrb r0, [r1, 0x2] cmp r0, r3 bne _080026B8 movs r4, 0 ldrsh r0, [r1, r4] b _080026C6 .align 2, 0 _080026B4: .4byte gUnknown_80B71E4 _080026B8: adds r1, 0x4 movs r4, 0 ldrsh r0, [r1, r4] cmp r0, r2 bne _080026A8 _080026C2: movs r0, 0x1 negs r0, r0 _080026C6: pop {r4} pop {r1} bx r1 thumb_func_end sub_8002694 thumb_func_start sub_80026CC sub_80026CC: push {lr} lsls r0, 16 asrs r0, 16 bl sub_8002658 lsls r0, 24 lsrs r0, 24 bl sub_8092600 lsls r0, 24 lsrs r0, 24 pop {r1} bx r1 thumb_func_end sub_80026CC thumb_func_start sub_80026E8 sub_80026E8: push {lr} lsls r0, 16 asrs r0, 16 bl sub_8002658 lsls r0, 24 lsrs r0, 24 bl sub_80925EC pop {r0} bx r0 thumb_func_end sub_80026E8 thumb_func_start sub_8002700 sub_8002700: push {lr} ldr r1, _08002714 movs r2, 0x80 lsls r2, 3 bl MemoryCopy8 movs r0, 0x1 pop {r1} bx r1 .align 2, 0 _08002714: .4byte gUnknown_2000A88 thumb_func_end sub_8002700 thumb_func_start sub_8002718 sub_8002718: push {r4,lr} sub sp, 0x8 adds r4, r0, 0 mov r0, sp movs r1, 0 movs r2, 0 bl sub_800160C ldr r0, _08002748 movs r2, 0x80 lsls r2, 3 adds r1, r4, 0 bl MemoryCopy8 ldr r0, [sp] movs r2, 0xA ldrsh r1, [r0, r2] ldr r0, [sp, 0x4] ldr r0, [r0] cmp r1, r0 bne _0800274C movs r0, 0x1 b _0800274E .align 2, 0 _08002748: .4byte gUnknown_2000A88 _0800274C: movs r0, 0 _0800274E: add sp, 0x8 pop {r4} pop {r1} bx r1 thumb_func_end sub_8002718 thumb_func_start sub_8002758 sub_8002758: push {lr} adds r2, r0, 0 movs r0, 0 movs r1, 0x1 movs r3, 0x9 bl sub_800226C pop {r0} bx r0 thumb_func_end sub_8002758 thumb_func_start sub_800276C sub_800276C: movs r0, 0 bx lr thumb_func_end sub_800276C thumb_func_start nullsub_140 nullsub_140: bx lr thumb_func_end nullsub_140 thumb_func_start sub_8002774 sub_8002774: sub sp, 0x4 str r0, [sp] mov r0, sp ldrb r1, [r0, 0x2] movs r0, 0xF8 adds r2, r0, 0 ands r2, r1 lsls r2, 7 mov r1, sp ldrb r3, [r1, 0x1] adds r1, r0, 0 ands r1, r3 lsls r1, 2 orrs r2, r1 mov r1, sp ldrb r1, [r1] ands r0, r1 lsrs r0, 3 orrs r0, r2 add sp, 0x4 bx lr thumb_func_end sub_8002774 thumb_func_start sub_80027A0 sub_80027A0: push {r4,lr} sub sp, 0x4 lsls r0, 16 lsrs r2, r0, 16 adds r3, r2, 0 mov r4, sp movs r0, 0x1F ands r0, r2 lsls r1, r0, 3 movs r0, 0x1 ands r0, r2 cmp r0, 0 beq _080027BE movs r0, 0x7 orrs r1, r0 _080027BE: strb r1, [r4] mov r4, sp movs r0, 0xF8 lsls r0, 2 ands r0, r2 lsrs r1, r0, 2 movs r0, 0x20 ands r0, r2 cmp r0, 0 beq _080027D6 movs r0, 0x7 orrs r1, r0 _080027D6: strb r1, [r4, 0x1] mov r2, sp movs r0, 0xF8 lsls r0, 7 ands r0, r3 lsrs r1, r0, 7 movs r0, 0x80 lsls r0, 3 ands r3, r0 cmp r3, 0 beq _080027F0 movs r0, 0x7 orrs r1, r0 _080027F0: strb r1, [r2, 0x2] mov r0, sp movs r1, 0 strb r1, [r0, 0x3] ldr r0, [sp] add sp, 0x4 pop {r4} pop {r1} bx r1 thumb_func_end sub_80027A0 thumb_func_start sub_8002804 sub_8002804: push {r4,r5,lr} adds r5, r0, 0 adds r4, r1, 0 movs r3, 0 _0800280C: adds r1, r5, r3 adds r0, r2, r3 ldrb r0, [r0] muls r0, r4 cmp r0, 0 bge _0800281A adds r0, 0xFF _0800281A: asrs r0, 8 strb r0, [r1] adds r3, 0x1 cmp r3, 0x3 ble _0800280C pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_8002804 thumb_func_start sub_800282C sub_800282C: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x38 mov r9, r0 str r1, [sp, 0x20] adds r7, r2, 0 mov r8, r3 adds r0, r1, 0 bl __floatsisf adds r1, r0, 0 ldr r0, _08002904 bl __divsf3 str r0, [sp, 0x24] movs r5, 0 mov r0, sp adds r0, 0x10 str r0, [sp, 0x2C] str r0, [sp, 0x34] mov r10, sp _0800285C: adds r6, r7, r5 movs r4, 0 ldrsb r4, [r6, r4] adds r0, r4, 0 bl __floatsisf cmp r4, 0 bge _08002872 ldr r1, _08002908 bl __addsf3 _08002872: mov r1, r10 adds r1, 0x4 mov r10, r1 subs r1, 0x4 stm r1!, {r0} mov r1, r8 adds r0, r1, r5 ldrb r0, [r0] ldrb r1, [r6] subs r0, r1 bl __floatsisf ldr r1, [sp, 0x24] bl __mulsf3 ldr r1, [sp, 0x34] stm r1!, {r0} str r1, [sp, 0x34] adds r5, 0x1 cmp r5, 0x3 ble _0800285C ldr r0, [r7] mov r1, r9 adds r1, 0x4 mov r9, r1 subs r1, 0x4 stm r1!, {r0} movs r5, 0x1 ldr r0, [sp, 0x20] subs r0, 0x1 str r0, [sp, 0x28] mov r1, r8 ldr r1, [r1] str r1, [sp, 0x30] cmp r5, r0 bge _080028EE _080028BA: movs r6, 0 adds r5, 0x1 mov r10, r5 movs r0, 0x4 add r0, r9 mov r8, r0 mov r5, sp ldr r7, [sp, 0x2C] _080028CA: mov r1, r9 adds r4, r1, r6 ldr r0, [r5] ldm r7!, {r1} bl __addsf3 stm r5!, {r0} bl __fixunssfsi strb r0, [r4] adds r6, 0x1 cmp r6, 0x3 ble _080028CA mov r9, r8 mov r5, r10 ldr r0, [sp, 0x28] cmp r5, r0 blt _080028BA _080028EE: ldr r1, [sp, 0x30] mov r0, r9 str r1, [r0] add sp, 0x38 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08002904: .4byte 0x3f800000 _08002908: .4byte 0x43800000 thumb_func_end sub_800282C thumb_func_start sub_800290C sub_800290C: push {lr} ldr r3, [r0] cmp r3, r1 ble _08002918 str r1, [r0] b _08002920 _08002918: negs r2, r1 cmp r3, r2 bge _08002920 str r2, [r0] _08002920: ldr r2, [r0, 0x4] cmp r2, r1 bgt _0800292C negs r1, r1 cmp r2, r1 bge _0800292E _0800292C: str r1, [r0, 0x4] _0800292E: pop {r0} bx r0 thumb_func_end sub_800290C thumb_func_start sub_8002934 sub_8002934: push {r4-r6,lr} mov r6, r10 mov r5, r9 mov r4, r8 push {r4-r6} mov r10, r0 adds r6, r1, 0 mov r8, r2 adds r4, r3, 0 ldr r5, [sp, 0x1C] adds r0, r4, r5 mov r9, r0 ldr r0, [r6] muls r0, r4 ldr r1, [r2] muls r1, r5 adds r0, r1 mov r1, r9 bl __divsi3 mov r1, r10 str r0, [r1] ldr r0, [r6, 0x4] muls r0, r4 mov r2, r8 ldr r1, [r2, 0x4] muls r1, r5 adds r0, r1 mov r1, r9 bl __divsi3 mov r1, r10 str r0, [r1, 0x4] pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_8002934 thumb_func_start sub_8002984 sub_8002984: push {r4,lr} lsls r0, 24 asrs r4, r0, 24 lsls r1, 24 lsrs r1, 24 subs r0, r1, 0x1 cmp r0, 0x8 bhi _08002A68 lsls r0, 2 ldr r1, _080029A0 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080029A0: .4byte _080029A4 .align 2, 0 _080029A4: .4byte _080029C8 .4byte _080029D0 .4byte _080029D8 .4byte _080029E0 .4byte _080029E8 .4byte _080029F4 .4byte _08002A34 .4byte _08002A4E .4byte _08002A5E _080029C8: cmp r4, 0 blt _08002A68 adds r4, 0x7 b _080029EE _080029D0: cmp r4, 0 blt _08002A68 adds r4, 0x1 b _080029EE _080029D8: cmp r4, 0 blt _08002A68 adds r4, 0x6 b _080029EE _080029E0: cmp r4, 0 blt _08002A68 adds r4, 0x2 b _080029EE _080029E8: cmp r4, 0 blt _08002A68 adds r4, 0x4 _080029EE: movs r0, 0x7 ands r4, r0 b _08002A68 _080029F4: movs r0, 0x1 ands r0, r4 cmp r0, 0 beq _08002A18 movs r0, 0x2 bl sub_800451C adds r1, r4, 0x7 lsls r0, 1 adds r1, r0 adds r0, r1, 0 cmp r1, 0 bge _08002A10 adds r0, r1, 0x7 _08002A10: asrs r0, 3 lsls r0, 3 subs r0, r1, r0 b _08002A64 _08002A18: movs r0, 0x3 bl sub_800451C adds r1, r4, 0x6 lsls r0, 1 adds r1, r0 adds r0, r1, 0 cmp r1, 0 bge _08002A2C adds r0, r1, 0x7 _08002A2C: asrs r0, 3 lsls r0, 3 subs r0, r1, r0 b _08002A64 _08002A34: movs r0, 0x3 bl sub_800451C adds r1, r4, 0x7 adds r1, r0 adds r0, r1, 0 cmp r1, 0 bge _08002A46 adds r0, r1, 0x7 _08002A46: asrs r0, 3 lsls r0, 3 subs r0, r1, r0 b _08002A64 _08002A4E: movs r0, 0x8 bl sub_800451C movs r2, 0x2 negs r2, r2 adds r1, r2, 0 ands r0, r1 b _08002A64 _08002A5E: movs r0, 0x8 bl sub_800451C _08002A64: lsls r0, 24 asrs r4, r0, 24 _08002A68: adds r0, r4, 0 pop {r4} pop {r1} bx r1 thumb_func_end sub_8002984 thumb_func_start sub_8002A70 sub_8002A70: push {r4,lr} lsls r0, 24 asrs r3, r0, 24 lsls r1, 24 asrs r4, r1, 24 lsls r2, 24 lsrs r0, r2, 24 cmp r3, r4 beq _08002AFC subs r0, 0x1 cmp r0, 0xA bhi _08002AFC lsls r0, 2 ldr r1, _08002A94 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08002A94: .4byte _08002A98 .align 2, 0 _08002A98: .4byte _08002AC4 .4byte _08002ACC .4byte _08002AD4 .4byte _08002ADC .4byte _08002AFC .4byte _08002AFC .4byte _08002AFC .4byte _08002AFC .4byte _08002AFC .4byte _08002AF2 .4byte _08002AE8 _08002AC4: cmp r3, 0 blt _08002AFC adds r3, 0x7 b _08002AE2 _08002ACC: cmp r3, 0 blt _08002AFC adds r3, 0x1 b _08002AE2 _08002AD4: cmp r3, 0 blt _08002AFC adds r3, 0x6 b _08002AE2 _08002ADC: cmp r3, 0 blt _08002AFC adds r3, 0x2 _08002AE2: movs r0, 0x7 ands r3, r0 b _08002AFC _08002AE8: adds r0, r3, 0 adds r1, r4, 0 bl sub_8002B04 adds r3, r0, 0 _08002AF2: adds r0, r3, 0 adds r1, r4, 0 bl sub_8002B04 adds r3, r0, 0 _08002AFC: adds r0, r3, 0 pop {r4} pop {r1} bx r1 thumb_func_end sub_8002A70 thumb_func_start sub_8002B04 sub_8002B04: push {lr} lsls r0, 24 asrs r2, r0, 24 lsls r1, 24 asrs r1, 24 movs r0, 0x1 negs r0, r0 cmp r1, r0 beq _08002B56 adds r0, r2, 0 subs r0, 0x8 subs r1, r0 adds r0, r1, 0 cmp r1, 0 bge _08002B24 adds r0, r1, 0x7 _08002B24: asrs r0, 3 lsls r0, 3 subs r0, r1, r0 cmp r0, 0 beq _08002B56 cmp r0, 0x3 bgt _08002B40 adds r1, r2, 0x1 adds r0, r1, 0 cmp r1, 0 bge _08002B4C adds r0, r2, 0 adds r0, 0x8 b _08002B4C _08002B40: adds r1, r2, 0x7 adds r0, r1, 0 cmp r1, 0 bge _08002B4C adds r0, r2, 0 adds r0, 0xE _08002B4C: asrs r0, 3 lsls r0, 3 subs r0, r1, r0 lsls r0, 24 asrs r2, r0, 24 _08002B56: adds r0, r2, 0 pop {r1} bx r1 thumb_func_end sub_8002B04 thumb_func_start sub_8002B5C sub_8002B5C: push {lr} lsls r0, 24 asrs r2, r0, 24 lsls r1, 24 asrs r1, 24 movs r0, 0x1 negs r0, r0 cmp r1, r0 beq _08002BAE adds r0, r2, 0 subs r0, 0x8 subs r1, r0 adds r0, r1, 0 cmp r1, 0 bge _08002B7C adds r0, r1, 0x7 _08002B7C: asrs r0, 3 lsls r0, 3 subs r0, r1, r0 cmp r0, 0 beq _08002BAE cmp r0, 0x3 bgt _08002B98 adds r1, r2, 0x2 adds r0, r1, 0 cmp r1, 0 bge _08002BA4 adds r0, r2, 0 adds r0, 0x9 b _08002BA4 _08002B98: adds r1, r2, 0x6 adds r0, r1, 0 cmp r1, 0 bge _08002BA4 adds r0, r2, 0 adds r0, 0xD _08002BA4: asrs r0, 3 lsls r0, 3 subs r0, r1, r0 lsls r0, 24 asrs r2, r0, 24 _08002BAE: movs r0, 0x6 ands r2, r0 adds r0, r2, 0 pop {r1} bx r1 thumb_func_end sub_8002B5C thumb_func_start sub_8002BB8 sub_8002BB8: push {r4,r5,lr} lsls r1, 24 asrs r1, 21 ldr r3, _08002BD8 adds r1, r3 ldr r5, [r1] adds r3, r5, 0 muls r3, r2 ldr r1, [r1, 0x4] adds r4, r1, 0 muls r4, r2 str r3, [r0] str r4, [r0, 0x4] pop {r4,r5} pop {r2} bx r2 .align 2, 0 _08002BD8: .4byte gUnknown_80B7E3C thumb_func_end sub_8002BB8 thumb_func_start sub_8002BDC sub_8002BDC: push {lr} ldr r1, [r0] cmp r1, 0 bge _08002BFA ldr r0, [r0, 0x4] cmp r0, 0 bge _08002BEE movs r0, 0x5 b _08002C2A _08002BEE: cmp r0, 0 ble _08002BF6 movs r0, 0x7 b _08002C2A _08002BF6: movs r0, 0x6 b _08002C2A _08002BFA: cmp r1, 0 ble _08002C14 ldr r0, [r0, 0x4] cmp r0, 0 bge _08002C08 movs r0, 0x3 b _08002C2A _08002C08: cmp r0, 0 ble _08002C10 movs r0, 0x1 b _08002C2A _08002C10: movs r0, 0x2 b _08002C2A _08002C14: ldr r0, [r0, 0x4] cmp r0, 0 bge _08002C1E movs r0, 0x4 b _08002C2A _08002C1E: cmp r0, 0 bgt _08002C28 movs r0, 0x1 negs r0, r0 b _08002C2A _08002C28: movs r0, 0 _08002C2A: pop {r1} bx r1 thumb_func_end sub_8002BDC thumb_func_start sub_8002C30 sub_8002C30: push {lr} ldr r1, [r0, 0x4] cmp r1, 0 bge _08002C3C movs r0, 0x4 b _08002C5A _08002C3C: cmp r1, 0 ble _08002C44 movs r0, 0 b _08002C5A _08002C44: ldr r0, [r0] cmp r0, 0 bge _08002C4E movs r0, 0x6 b _08002C5A _08002C4E: cmp r0, 0 bgt _08002C58 movs r0, 0x1 negs r0, r0 b _08002C5A _08002C58: movs r0, 0x2 _08002C5A: pop {r1} bx r1 thumb_func_end sub_8002C30 thumb_func_start sub_8002C60 sub_8002C60: push {r4,r5,lr} adds r4, r0, 0 ldr r0, [r4] cmp r0, 0 bge _08002C6C negs r0, r0 _08002C6C: adds r1, r0, 0 ldr r3, [r4, 0x4] adds r5, r3, 0 cmp r3, 0 bge _08002C78 negs r5, r3 _08002C78: adds r2, r5, 0 ldr r4, [r4] cmp r4, 0 bge _08002CA8 cmp r3, 0 bge _08002C94 lsls r0, 1 cmp r2, r0 bgt _08002CD8 lsls r0, r5, 1 cmp r1, r0 bgt _08002CA0 movs r0, 0x5 b _08002CE8 _08002C94: lsls r0, 1 cmp r2, r0 bgt _08002CE6 lsls r0, r5, 1 cmp r1, r0 ble _08002CA4 _08002CA0: movs r0, 0x6 b _08002CE8 _08002CA4: movs r0, 0x7 b _08002CE8 _08002CA8: cmp r4, 0 ble _08002CD4 cmp r3, 0 bge _08002CC0 lsls r0, 1 cmp r2, r0 bgt _08002CD8 lsls r0, r5, 1 cmp r1, r0 bgt _08002CCC movs r0, 0x3 b _08002CE8 _08002CC0: lsls r0, 1 cmp r2, r0 bgt _08002CE6 lsls r0, r5, 1 cmp r1, r0 ble _08002CD0 _08002CCC: movs r0, 0x2 b _08002CE8 _08002CD0: movs r0, 0x1 b _08002CE8 _08002CD4: cmp r3, 0 bge _08002CDC _08002CD8: movs r0, 0x4 b _08002CE8 _08002CDC: cmp r3, 0 bgt _08002CE6 movs r0, 0x1 negs r0, r0 b _08002CE8 _08002CE6: movs r0, 0 _08002CE8: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_8002C60 thumb_func_start sub_8002CF0 sub_8002CF0: push {r4,lr} adds r4, r0, 0 ldr r3, [r4] cmp r3, 0 bge _08002CFC negs r3, r3 _08002CFC: adds r1, r3, 0 ldr r3, [r4, 0x4] adds r0, r3, 0 cmp r3, 0 bge _08002D08 negs r0, r3 _08002D08: adds r2, r0, 0 ldr r0, [r4] cmp r0, 0 bge _08002D22 cmp r3, 0 bge _08002D1A cmp r2, r1 bgt _08002D3C b _08002D1E _08002D1A: cmp r2, r1 bgt _08002D4A _08002D1E: movs r0, 0x6 b _08002D4C _08002D22: cmp r0, 0 ble _08002D38 cmp r3, 0 bge _08002D30 cmp r2, r1 bgt _08002D3C b _08002D34 _08002D30: cmp r2, r1 bgt _08002D4A _08002D34: movs r0, 0x2 b _08002D4C _08002D38: cmp r3, 0 bge _08002D40 _08002D3C: movs r0, 0x4 b _08002D4C _08002D40: cmp r3, 0 bgt _08002D4A movs r0, 0x1 negs r0, r0 b _08002D4C _08002D4A: movs r0, 0 _08002D4C: pop {r4} pop {r1} bx r1 thumb_func_end sub_8002CF0 thumb_func_start sub_8002D54 sub_8002D54: push {r4,r5,lr} sub sp, 0x8 adds r4, r1, 0 adds r5, r3, 0 ldr r3, [r2] ldr r1, [r0] subs r3, r1 str r3, [sp] ldr r1, [r2, 0x4] ldr r0, [r0, 0x4] subs r1, r0 str r1, [sp, 0x4] adds r2, r3, 0 cmp r2, 0 blt _08002D8A adds r2, 0x1 ldr r0, [r4] ldr r1, [r5] adds r0, r1 lsrs r1, r0, 31 adds r0, r1 asrs r0, 1 subs r2, r0 str r2, [sp] cmp r2, 0 bge _08002DA4 b _08002DA0 _08002D8A: subs r2, r3, 0x1 ldr r0, [r4] ldr r1, [r5] adds r0, r1 lsrs r1, r0, 31 adds r0, r1 asrs r0, 1 adds r2, r0 str r2, [sp] cmp r2, 0 ble _08002DA4 _08002DA0: movs r0, 0 str r0, [sp] _08002DA4: ldr r2, [sp, 0x4] cmp r2, 0 blt _08002DC2 adds r2, 0x1 ldr r0, [r4, 0x4] ldr r1, [r5, 0x4] adds r0, r1 lsrs r1, r0, 31 adds r0, r1 asrs r0, 1 subs r2, r0 str r2, [sp, 0x4] cmp r2, 0 bge _08002DDC b _08002DD8 _08002DC2: subs r2, 0x1 ldr r0, [r4, 0x4] ldr r1, [r5, 0x4] adds r0, r1 lsrs r1, r0, 31 adds r0, r1 asrs r0, 1 adds r2, r0 str r2, [sp, 0x4] cmp r2, 0 ble _08002DDC _08002DD8: movs r0, 0 str r0, [sp, 0x4] _08002DDC: mov r0, sp bl sub_8002CF0 lsls r0, 24 asrs r0, 24 add sp, 0x8 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_8002D54 thumb_func_start sub_8002DF0 sub_8002DF0: push {r4,r5,lr} sub sp, 0x8 adds r4, r1, 0 adds r5, r3, 0 ldr r3, [r2] ldr r1, [r0] subs r3, r1 str r3, [sp] ldr r1, [r2, 0x4] ldr r0, [r0, 0x4] subs r1, r0 str r1, [sp, 0x4] adds r2, r3, 0 cmp r2, 0 blt _08002E26 adds r2, 0x1 ldr r0, [r4] ldr r1, [r5] adds r0, r1 lsrs r1, r0, 31 adds r0, r1 asrs r0, 1 subs r2, r0 str r2, [sp] cmp r2, 0 bge _08002E40 b _08002E3C _08002E26: subs r2, r3, 0x1 ldr r0, [r4] ldr r1, [r5] adds r0, r1 lsrs r1, r0, 31 adds r0, r1 asrs r0, 1 adds r2, r0 str r2, [sp] cmp r2, 0 ble _08002E40 _08002E3C: movs r0, 0 str r0, [sp] _08002E40: ldr r2, [sp, 0x4] cmp r2, 0 blt _08002E5E adds r2, 0x1 ldr r0, [r4, 0x4] ldr r1, [r5, 0x4] adds r0, r1 lsrs r1, r0, 31 adds r0, r1 asrs r0, 1 subs r2, r0 str r2, [sp, 0x4] cmp r2, 0 bge _08002E78 b _08002E74 _08002E5E: subs r2, 0x1 ldr r0, [r4, 0x4] ldr r1, [r5, 0x4] adds r0, r1 lsrs r1, r0, 31 adds r0, r1 asrs r0, 1 adds r2, r0 str r2, [sp, 0x4] cmp r2, 0 ble _08002E78 _08002E74: movs r0, 0 str r0, [sp, 0x4] _08002E78: mov r0, sp bl sub_8002C60 lsls r0, 24 asrs r0, 24 add sp, 0x8 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_8002DF0 thumb_func_start InitHeap InitHeap: push {lr} bl InitHeapInternal pop {r0} bx r0 thumb_func_end InitHeap thumb_func_start MemoryClear8 MemoryClear8: push {lr} cmp r1, 0 ble _08002EAA movs r2, 0 _08002EA0: subs r1, 0x1 strb r2, [r0] adds r0, 0x1 cmp r1, 0 bgt _08002EA0 _08002EAA: pop {r0} bx r0 thumb_func_end MemoryClear8 thumb_func_start MemoryClear16 MemoryClear16: push {lr} cmp r1, 0 ble _08002EC2 movs r2, 0 _08002EB8: subs r1, 0x2 strh r2, [r0] adds r0, 0x2 cmp r1, 0 bgt _08002EB8 _08002EC2: pop {r0} bx r0 thumb_func_end MemoryClear16 thumb_func_start MemoryClear32 MemoryClear32: push {lr} bl CpuClear pop {r0} bx r0 thumb_func_end MemoryClear32 thumb_func_start MemoryFill8 MemoryFill8: push {lr} lsls r1, 24 lsrs r1, 24 cmp r2, 0 ble _08002EE8 _08002EDE: subs r2, 0x1 strb r1, [r0] adds r0, 0x1 cmp r2, 0 bgt _08002EDE _08002EE8: pop {r0} bx r0 thumb_func_end MemoryFill8 thumb_func_start MemoryFill16 MemoryFill16: push {lr} lsls r1, 16 lsrs r1, 16 cmp r2, 0 ble _08002F00 _08002EF6: subs r2, 0x2 strh r1, [r0] adds r0, 0x2 cmp r2, 0 bgt _08002EF6 _08002F00: pop {r0} bx r0 thumb_func_end MemoryFill16 thumb_func_start MemoryFill32 MemoryFill32: push {lr} cmp r2, 0 ble _08002F12 _08002F0A: subs r2, 0x4 stm r0!, {r1} cmp r2, 0 bgt _08002F0A _08002F12: pop {r0} bx r0 thumb_func_end MemoryFill32 thumb_func_start MemoryCopy8 MemoryCopy8: push {lr} adds r3, r0, 0 cmp r2, 0 ble _08002F2E _08002F20: subs r2, 0x1 ldrb r0, [r1] strb r0, [r3] adds r1, 0x1 adds r3, 0x1 cmp r2, 0 bgt _08002F20 _08002F2E: pop {r0} bx r0 thumb_func_end MemoryCopy8 thumb_func_start MemoryCopy16 MemoryCopy16: push {lr} adds r3, r0, 0 cmp r2, 0 ble _08002F4A _08002F3C: subs r2, 0x2 ldrh r0, [r1] strh r0, [r3] adds r1, 0x2 adds r3, 0x2 cmp r2, 0 bgt _08002F3C _08002F4A: pop {r0} bx r0 thumb_func_end MemoryCopy16 thumb_func_start MemoryCopy32 MemoryCopy32: push {lr} adds r3, r0, 0 cmp r2, 0 ble _08002F62 _08002F58: subs r2, 0x4 ldm r1!, {r0} stm r3!, {r0} cmp r2, 0 bgt _08002F58 _08002F62: pop {r0} bx r0 thumb_func_end MemoryCopy32 thumb_func_start InitHeapInternal InitHeapInternal: push {lr} sub sp, 0x8 ldr r0, _08002F90 str r0, [sp] movs r0, 0x90 lsls r0, 10 str r0, [sp, 0x4] ldr r1, _08002F94 movs r0, 0 str r0, [r1] ldr r0, _08002F98 ldr r2, _08002F9C mov r1, sp movs r3, 0x20 bl DoInitHeap add sp, 0x8 pop {r0} bx r0 .align 2, 0 _08002F90: .4byte gUnknown_20011D0 _08002F94: .4byte gUnknown_2000EA8 _08002F98: .4byte gUnknown_2000EB0 _08002F9C: .4byte gUnknown_2000ED0 thumb_func_end InitHeapInternal thumb_func_start DoInitHeap DoInitHeap: push {r4-r6,lr} mov r6, r9 mov r5, r8 push {r5,r6} ldr r4, [r1, 0x4] mov r9, r4 movs r4, 0x4 negs r4, r4 mov r5, r9 ands r5, r4 mov r9, r5 ldr r6, _08002FFC ldr r4, _08003000 mov r8, r4 ldr r5, [r4] lsls r4, r5, 2 adds r4, r6 str r0, [r4] adds r5, 0x1 mov r4, r8 str r5, [r4] ldr r5, [r1] str r5, [r0, 0x14] mov r1, r9 str r1, [r0, 0x18] movs r1, 0x2 str r1, [r0] movs r4, 0 str r4, [r0, 0x4] str r2, [r0, 0x8] movs r1, 0x1 str r1, [r0, 0xC] str r3, [r0, 0x10] str r4, [r2] str r4, [r2, 0x4] str r5, [r2, 0xC] mov r5, r9 str r5, [r2, 0x10] str r4, [r2, 0x14] str r4, [r2, 0x8] pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08002FFC: .4byte gUnknown_2000E88 _08003000: .4byte gUnknown_2000EA8 thumb_func_end DoInitHeap thumb_func_start InitSubHeap InitSubHeap: push {r4,r5,lr} sub sp, 0x8 adds r3, r2, 0 lsls r4, r3, 1 adds r4, r3 movs r2, 0x4 negs r2, r2 lsls r4, 3 ldr r5, [r1, 0x4] subs r5, r4 ands r5, r2 ldr r2, [r1] adds r4, r2, r4 str r4, [sp] str r5, [sp, 0x4] mov r1, sp bl DoInitHeap add sp, 0x8 pop {r4,r5} pop {r0} bx r0 thumb_func_end InitSubHeap thumb_func_start xxx_memory_attr_related xxx_memory_attr_related: push {lr} adds r1, r0, 0 cmp r1, 0 bne _0800303C movs r0, 0 b _08003060 _0800303C: movs r0, 0x8 ands r0, r1 cmp r0, 0 beq _08003048 movs r0, 0x4 b _08003060 _08003048: movs r2, 0x7 ands r2, r1 movs r0, 0x1 cmp r2, 0x7 beq _08003060 movs r0, 0x2 cmp r2, 0x1 beq _08003060 movs r0, 0x5 cmp r2, 0x3 bne _08003060 movs r0, 0x3 _08003060: pop {r1} bx r1 thumb_func_end xxx_memory_attr_related thumb_func_start MemorySearchFromFront MemorySearchFromFront: push {r4-r7,lr} adds r5, r0, 0 adds r6, r2, 0 movs r0, 0x4 ands r0, r1 cmp r0, 0 beq _080030CC movs r4, 0 ldr r3, [r5, 0x8] ldr r2, [r5, 0xC] cmp r4, r2 bge _08003104 ldr r0, [r3, 0x4] movs r1, 0x1 ands r0, r1 cmp r0, 0 bne _08003090 ldr r0, [r3, 0x10] cmp r0, r6 blt _080030AC movs r0, 0 b _08003108 _08003090: adds r4, 0x1 adds r3, 0x18 cmp r4, r2 bge _08003104 ldr r0, [r3, 0x4] movs r1, 0x1 ands r0, r1 cmp r0, 0 bne _08003090 ldr r0, [r3, 0x10] cmp r0, r6 blt _080030AC _080030A8: adds r0, r4, 0 b _08003108 _080030AC: cmp r4, r2 bge _08003104 movs r5, 0x1 adds r1, r2, 0 _080030B4: ldr r0, [r3, 0x4] ands r0, r5 cmp r0, 0 bne _080030C2 ldr r0, [r3, 0x10] cmp r0, r6 bge _080030A8 _080030C2: adds r4, 0x1 adds r3, 0x18 cmp r4, r1 blt _080030B4 b _08003104 _080030CC: movs r7, 0x1 negs r7, r7 ldr r1, _08003100 movs r4, 0 ldr r3, [r5, 0x8] ldr r2, [r5, 0xC] cmp r4, r2 bge _080030FC movs r5, 0x1 _080030DE: ldr r0, [r3, 0x4] ands r0, r5 cmp r0, 0 bne _080030F4 ldr r0, [r3, 0x10] cmp r0, r6 blt _080030F4 cmp r0, r1 bge _080030F4 adds r7, r4, 0 adds r1, r0, 0 _080030F4: adds r4, 0x1 adds r3, 0x18 cmp r4, r2 blt _080030DE _080030FC: adds r0, r7, 0 b _08003108 .align 2, 0 _08003100: .4byte 0x00024001 _08003104: movs r0, 0x1 negs r0, r0 _08003108: pop {r4-r7} pop {r1} bx r1 thumb_func_end MemorySearchFromFront thumb_func_start MemorySearchFromBack MemorySearchFromBack: push {r4-r7,lr} adds r4, r0, 0 adds r5, r2, 0 movs r0, 0x4 ands r0, r1 cmp r0, 0 beq _08003168 ldr r0, [r4, 0xC] subs r3, r0, 0x1 lsls r0, r3, 1 adds r0, r3 lsls r0, 3 ldr r1, [r4, 0x8] adds r2, r1, r0 b _08003132 _0800312E: subs r3, 0x1 subs r2, 0x18 _08003132: cmp r3, 0 blt _080031A8 ldr r0, [r2, 0x4] movs r1, 0x1 ands r0, r1 cmp r0, 0 bne _0800312E ldr r0, [r2, 0x10] cmp r0, r5 blt _0800314A _08003146: adds r0, r3, 0 b _080031AC _0800314A: cmp r3, 0 blt _080031A8 movs r1, 0x1 _08003150: ldr r0, [r2, 0x4] ands r0, r1 cmp r0, 0 bne _0800315E ldr r0, [r2, 0x10] cmp r0, r5 bge _08003146 _0800315E: subs r3, 0x1 subs r2, 0x18 cmp r3, 0 bge _08003150 b _080031A8 _08003168: movs r7, 0x1 negs r7, r7 ldr r6, _080031A4 ldr r0, [r4, 0xC] subs r3, r0, 0x1 lsls r0, r3, 1 adds r0, r3 lsls r0, 3 ldr r1, [r4, 0x8] adds r2, r1, r0 cmp r3, 0 blt _080031A0 movs r1, 0x1 _08003182: ldr r0, [r2, 0x4] ands r0, r1 cmp r0, 0 bne _08003198 ldr r0, [r2, 0x10] cmp r0, r5 blt _08003198 cmp r0, r6 bge _08003198 adds r7, r3, 0 adds r6, r0, 0 _08003198: subs r3, 0x1 subs r2, 0x18 cmp r3, 0 bge _08003182 _080031A0: adds r0, r7, 0 b _080031AC .align 2, 0 _080031A4: .4byte 0x00024001 _080031A8: movs r0, 0x1 negs r0, r0 _080031AC: pop {r4-r7} pop {r1} bx r1 thumb_func_end MemorySearchFromBack thumb_func_start MemorySplitFront MemorySplitFront: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x14 str r0, [sp, 0x8] str r1, [sp, 0xC] str r2, [sp] str r3, [sp, 0x4] adds r0, r3, 0 adds r0, 0x3 str r0, [sp, 0x10] movs r0, 0x4 negs r0, r0 ldr r1, [sp, 0x10] ands r1, r0 str r1, [sp, 0x10] ldr r2, [sp, 0xC] lsls r2, 1 mov r12, r2 ldr r0, [sp, 0xC] add r0, r12 lsls r0, 3 ldr r5, [sp, 0x8] ldr r2, [r5, 0x8] adds r4, r2, r0 ldr r0, [r4, 0x10] cmp r0, r1 ble _08003260 ldr r3, [r5, 0xC] lsls r0, r3, 1 adds r0, r3 lsls r0, 3 adds r1, r2, r0 mov r9, r12 mov r10, r2 mov r12, r3 ldr r6, [r5, 0x10] mov r8, r6 ldr r7, [sp, 0xC] cmp r12, r7 ble _08003222 _0800320A: adds r2, r1, 0 subs r2, 0x18 adds r0, r2, 0 ldm r0!, {r5-r7} stm r1!, {r5-r7} ldm r0!, {r5-r7} stm r1!, {r5-r7} subs r3, 0x1 adds r1, r2, 0 ldr r0, [sp, 0xC] cmp r3, r0 bgt _0800320A _08003222: mov r2, r12 adds r2, 0x1 ldr r1, [sp, 0x8] str r2, [r1, 0xC] cmp r2, r8 ble _08003240 ldr r0, _08003238 ldr r1, _0800323C mov r3, r8 bl FatalError .align 2, 0 _08003238: .4byte gUnknown_80B7EB8 _0800323C: .4byte gUnknown_80B7EC4 _08003240: ldr r0, [sp, 0xC] add r0, r9 lsls r0, 3 adds r0, 0x18 mov r2, r10 adds r1, r2, r0 ldr r0, [r1, 0xC] ldr r5, [sp, 0x10] adds r0, r5 str r0, [r1, 0xC] ldr r0, [r1, 0x10] subs r0, r5 str r0, [r1, 0x10] str r5, [r4, 0x10] ldr r6, [sp, 0x4] str r6, [r4, 0x14] _08003260: ldr r0, [sp] bl xxx_memory_attr_related str r0, [r4] ldr r7, [sp] str r7, [r4, 0x4] ldr r0, [sp, 0x34] str r0, [r4, 0x8] adds r0, r4, 0 add sp, 0x14 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 thumb_func_end MemorySplitFront thumb_func_start MemorySplitBack MemorySplitBack: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x14 str r0, [sp, 0x8] str r1, [sp, 0xC] str r2, [sp] str r3, [sp, 0x4] adds r0, r3, 0 adds r0, 0x3 str r0, [sp, 0x10] movs r0, 0x4 negs r0, r0 ldr r1, [sp, 0x10] ands r1, r0 str r1, [sp, 0x10] ldr r2, [sp, 0xC] lsls r0, r2, 1 adds r0, r2 lsls r0, 3 ldr r5, [sp, 0x8] ldr r1, [r5, 0x8] adds r4, r1, r0 ldr r0, [r4, 0x10] ldr r6, [sp, 0x10] cmp r0, r6 ble _08003328 ldr r3, [r5, 0xC] lsls r0, r3, 1 adds r0, r3 lsls r0, 3 adds r1, r0 mov r12, r3 ldr r7, [r5, 0x10] mov r8, r7 ldr r0, [r4, 0xC] mov r9, r0 movs r2, 0x18 adds r2, r4 mov r10, r2 ldr r5, [sp, 0xC] cmp r12, r5 ble _080032F6 _080032DE: adds r2, r1, 0 subs r2, 0x18 adds r0, r2, 0 ldm r0!, {r5-r7} stm r1!, {r5-r7} ldm r0!, {r5-r7} stm r1!, {r5-r7} subs r3, 0x1 adds r1, r2, 0 ldr r6, [sp, 0xC] cmp r3, r6 bgt _080032DE _080032F6: mov r2, r12 adds r2, 0x1 ldr r7, [sp, 0x8] str r2, [r7, 0xC] cmp r2, r8 ble _08003314 ldr r0, _0800330C ldr r1, _08003310 mov r3, r8 bl FatalError .align 2, 0 _0800330C: .4byte gUnknown_80B7EFC _08003310: .4byte gUnknown_80B7EC4 _08003314: ldr r0, [r4, 0x10] ldr r1, [sp, 0x10] subs r0, r1 str r0, [r4, 0x10] add r0, r9 mov r4, r10 str r0, [r4, 0xC] str r1, [r4, 0x10] ldr r2, [sp, 0x4] str r2, [r4, 0x14] _08003328: ldr r0, [sp] bl xxx_memory_attr_related str r0, [r4] ldr r5, [sp] str r5, [r4, 0x4] ldr r0, [sp, 0x34] str r0, [r4, 0x8] adds r0, r4, 0 add sp, 0x14 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 thumb_func_end MemorySplitBack thumb_func_start MemoryLocateSet MemoryLocateSet: push {r4-r7,lr} sub sp, 0x8 adds r5, r0, 0 adds r7, r1, 0 adds r6, r2, 0 cmp r5, 0 bne _0800335C ldr r5, _08003390 _0800335C: asrs r4, r6, 8 movs r0, 0x1 orrs r4, r0 movs r0, 0xFF ands r6, r0 movs r0, 0x2 ands r0, r4 cmp r0, 0 beq _08003394 adds r0, r5, 0 adds r1, r4, 0 adds r2, r7, 0 bl MemorySearchFromFront adds r1, r0, 0 cmp r1, 0 blt _080033B4 str r6, [sp] adds r0, r5, 0 adds r2, r4, 0 adds r3, r7, 0 bl MemorySplitFront ldr r0, [r0, 0xC] b _080033CC .align 2, 0 _08003390: .4byte gUnknown_2000EB0 _08003394: adds r0, r5, 0 adds r1, r4, 0 adds r2, r7, 0 bl MemorySearchFromBack adds r1, r0, 0 cmp r1, 0 blt _080033B4 str r6, [sp] adds r0, r5, 0 adds r2, r4, 0 adds r3, r7, 0 bl MemorySplitBack ldr r0, [r0, 0xC] b _080033CC _080033B4: ldr r0, _080033C4 ldr r1, _080033C8 str r4, [sp] str r6, [sp, 0x4] adds r2, r5, 0 adds r3, r7, 0 bl FatalError .align 2, 0 _080033C4: .4byte gUnknown_80B7F14 _080033C8: .4byte gUnknown_80B7F20 _080033CC: add sp, 0x8 pop {r4-r7} pop {r1} bx r1 thumb_func_end MemoryLocateSet thumb_func_start MemoryAlloc MemoryAlloc: push {lr} adds r3, r0, 0 adds r2, r1, 0 ldr r0, _080033E8 adds r1, r3, 0 bl DoAlloc pop {r1} bx r1 .align 2, 0 _080033E8: .4byte gUnknown_2000EB0 thumb_func_end MemoryAlloc thumb_func_start MemoryFree MemoryFree: push {lr} adds r1, r0, 0 ldr r0, _080033FC bl DoFree pop {r0} bx r0 .align 2, 0 _080033FC: .4byte gUnknown_2000EB0 thumb_func_end MemoryFree thumb_func_start CreateSubHeap CreateSubHeap: push {r4-r7,lr} sub sp, 0xC adds r4, r0, 0 adds r5, r1, 0 adds r7, r2, 0 adds r6, r3, 0 cmp r4, 0 bne _08003412 ldr r4, _0800342C _08003412: adds r0, r4, 0 movs r1, 0x9 adds r2, r5, 0 bl MemorySearchFromBack adds r1, r0, 0 cmp r1, 0 bge _08003438 ldr r0, _08003430 ldr r1, _08003434 adds r2, r5, 0 bl FatalError .align 2, 0 _0800342C: .4byte gUnknown_2000EB0 _08003430: .4byte gUnknown_80B7F88 _08003434: .4byte gUnknown_80B7F94 _08003438: str r6, [sp] adds r0, r4, 0 movs r2, 0x9 adds r3, r5, 0 bl MemorySplitBack ldr r1, [r0, 0xC] str r1, [sp, 0x4] ldr r0, [r0, 0x10] str r0, [sp, 0x8] add r0, sp, 0x4 adds r1, r7, 0 bl DoCreateSubHeap str r4, [r0, 0x4] add sp, 0xC pop {r4-r7} pop {r1} bx r1 thumb_func_end CreateSubHeap thumb_func_start DoCreateSubHeap DoCreateSubHeap: push {r4,lr} sub sp, 0x8 adds r2, r1, 0 ldr r4, [r0] adds r1, r4, 0 adds r1, 0x1C str r1, [sp] ldr r0, [r0, 0x4] subs r0, 0x1C str r0, [sp, 0x4] adds r0, r4, 0 mov r1, sp bl InitSubHeap adds r0, r4, 0 add sp, 0x8 pop {r4} pop {r1} bx r1 thumb_func_end DoCreateSubHeap thumb_func_start xxx_unused_memory_free xxx_unused_memory_free: push {r4-r7,lr} adds r4, r0, 0 cmp r4, 0 beq _08003504 movs r1, 0 ldr r0, [r4, 0xC] cmp r0, 0x1 bne _080034A2 ldr r0, [r4, 0x8] ldr r0, [r0, 0x4] cmp r0, 0 bne _080034A2 movs r1, 0x1 _080034A2: cmp r1, 0 beq _08003504 movs r0, 0 mov r12, r0 movs r3, 0 ldr r6, _080034E0 ldr r0, [r6] cmp r12, r0 bge _080034F2 ldr r5, _080034E4 adds r1, r6, 0 adds r7, r5, 0 movs r2, 0 _080034BC: adds r0, r2, r5 ldr r0, [r0] cmp r0, r4 bne _080034E8 ldr r0, [r1] subs r0, 0x1 str r0, [r1] cmp r3, r0 bge _080034F8 ldr r1, _080034E0 adds r2, r7 _080034D2: ldr r0, [r2, 0x4] stm r2!, {r0} adds r3, 0x1 ldr r0, [r1] cmp r3, r0 blt _080034D2 b _080034F8 .align 2, 0 _080034E0: .4byte gUnknown_2000EA8 _080034E4: .4byte gUnknown_2000E88 _080034E8: adds r2, 0x4 adds r3, 0x1 ldr r0, [r6] cmp r3, r0 blt _080034BC _080034F2: mov r0, r12 cmp r0, 0 beq _08003504 _080034F8: ldr r0, [r4, 0x4] cmp r0, 0 beq _08003504 adds r1, r4, 0 bl DoFree _08003504: pop {r4-r7} pop {r0} bx r0 thumb_func_end xxx_unused_memory_free thumb_func_start DoAlloc DoAlloc: push {lr} movs r3, 0x80 lsls r3, 1 orrs r3, r2 adds r2, r3, 0 bl MemoryLocateSet pop {r1} bx r1 thumb_func_end DoAlloc thumb_func_start DoFree DoFree: push {r4-r7,lr} mov r7, r8 push {r7} adds r4, r0, 0 cmp r4, 0 bne _0800352E ldr r4, _080035D4 _0800352E: cmp r1, 0 beq _080035E4 movs r0, 0 mov r8, r0 ldr r3, [r4, 0x8] mov r12, r3 ldr r3, [r4, 0xC] cmp r8, r3 bge _080035E4 movs r2, 0 _08003542: mov r5, r12 ldr r0, [r5, 0xC] cmp r0, r1 bne _080035D8 str r2, [r5] str r2, [r5, 0x4] str r2, [r5, 0x14] str r2, [r5, 0x8] ldr r0, [r4, 0xC] subs r0, 0x1 cmp r8, r0 bge _08003592 mov r2, r12 adds r2, 0x18 ldr r0, [r2, 0x4] cmp r0, 0 bne _08003592 ldr r0, [r5, 0x10] ldr r1, [r2, 0x10] adds r0, r1 str r0, [r5, 0x10] ldr r0, [r4, 0xC] subs r0, 0x1 str r0, [r4, 0xC] mov r3, r8 adds r3, 0x1 cmp r3, r0 bge _08003592 _0800357A: adds r0, r2, 0 adds r1, r2, 0 adds r1, 0x18 ldm r1!, {r5-r7} stm r0!, {r5-r7} ldm r1!, {r5-r7} stm r0!, {r5-r7} adds r3, 0x1 adds r2, 0x18 ldr r0, [r4, 0xC] cmp r3, r0 blt _0800357A _08003592: mov r6, r8 cmp r6, 0 ble _080035E4 mov r2, r12 subs r2, 0x18 ldr r0, [r2, 0x4] cmp r0, 0 bne _080035E4 ldr r0, [r2, 0x10] mov r7, r12 ldr r1, [r7, 0x10] adds r0, r1 str r0, [r2, 0x10] ldr r0, [r4, 0xC] subs r0, 0x1 str r0, [r4, 0xC] mov r2, r12 mov r3, r8 cmp r3, r0 bge _080035E4 _080035BA: adds r0, r2, 0 adds r1, r2, 0 adds r1, 0x18 ldm r1!, {r5-r7} stm r0!, {r5-r7} ldm r1!, {r5-r7} stm r0!, {r5-r7} adds r3, 0x1 adds r2, 0x18 ldr r0, [r4, 0xC] cmp r3, r0 blt _080035BA b _080035E4 .align 2, 0 _080035D4: .4byte gUnknown_2000EB0 _080035D8: movs r0, 0x1 add r8, r0 movs r5, 0x18 add r12, r5 cmp r8, r3 blt _08003542 _080035E4: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 thumb_func_end DoFree thumb_func_start nullsub_141 nullsub_141: bx lr thumb_func_end nullsub_141 thumb_func_start nullsub_142 nullsub_142: bx lr thumb_func_end nullsub_142 thumb_func_start sub_80035F8 sub_80035F8: push {lr} pop {r0} bx r0 thumb_func_end sub_80035F8 thumb_func_start sub_8003600 sub_8003600: push {r4-r6,lr} ldr r1, _08003650 ldr r6, _08003654 movs r2, 0 ldr r0, _08003658 movs r3, 0x80 lsls r3, 2 _0800360E: strb r2, [r0] strb r2, [r0, 0x1] strb r2, [r0, 0x2] strb r2, [r0, 0x3] adds r0, 0x4 subs r3, 0x1 cmp r3, 0 bne _0800360E movs r0, 0 movs r5, 0x80 lsls r5, 1 ldr r4, _0800365C movs r3, 0x20 ldr r2, _08003660 _0800362A: strb r0, [r1] strh r5, [r1, 0x2] strb r0, [r1, 0x4] strb r0, [r1, 0x5] strb r0, [r1, 0x6] strb r0, [r1, 0x7] str r0, [r1, 0x8] str r4, [r1, 0xC] str r2, [r1, 0x10] subs r3, 0x1 adds r1, 0x14 cmp r3, 0 bge _0800362A movs r0, 0x1 strb r0, [r6] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08003650: .4byte gUnknown_3000C00 _08003654: .4byte gUnknown_3001B58 _08003658: .4byte gUnknown_3000400 _0800365C: .4byte sub_8003A34 _08003660: .4byte sub_8003A74 thumb_func_end sub_8003600 thumb_func_start sub_8003664 sub_8003664: push {r4,lr} lsls r0, 16 lsrs r0, 16 lsls r2, r0, 2 adds r2, r0 lsls r2, 2 ldr r0, _0800369C adds r2, r0 movs r3, 0 movs r4, 0x1 strb r4, [r2] movs r0, 0 strh r1, [r2, 0x2] strb r0, [r2, 0x4] strb r0, [r2, 0x5] strb r0, [r2, 0x6] strb r0, [r2, 0x7] str r3, [r2, 0x8] ldr r0, _080036A0 str r0, [r2, 0xC] ldr r0, _080036A4 str r0, [r2, 0x10] ldr r0, _080036A8 strb r4, [r0] pop {r4} pop {r0} bx r0 .align 2, 0 _0800369C: .4byte gUnknown_3000C00 _080036A0: .4byte sub_8003AC0 _080036A4: .4byte sub_8003B50 _080036A8: .4byte gUnknown_3001B58 thumb_func_end sub_8003664 thumb_func_start sub_80036AC sub_80036AC: push {r4,lr} sub sp, 0x4 str r2, [sp] lsls r0, 16 lsrs r0, 16 lsls r2, r0, 2 adds r2, r0 lsls r2, 2 ldr r0, _080036E4 adds r2, r0 movs r3, 0 movs r4, 0x1 strb r4, [r2] strh r1, [r2, 0x2] ldr r0, [sp] str r0, [r2, 0x4] str r3, [r2, 0x8] ldr r0, _080036E8 str r0, [r2, 0xC] ldr r0, _080036EC str r0, [r2, 0x10] ldr r0, _080036F0 strb r4, [r0] add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _080036E4: .4byte gUnknown_3000C00 _080036E8: .4byte sub_8003C18 _080036EC: .4byte sub_8003D00 _080036F0: .4byte gUnknown_3001B58 thumb_func_end sub_80036AC thumb_func_start sub_80036F4 sub_80036F4: push {r4,lr} sub sp, 0x4 str r2, [sp] lsls r0, 16 lsrs r0, 16 lsls r2, r0, 2 adds r2, r0 lsls r2, 2 ldr r0, _0800372C adds r2, r0 movs r3, 0 movs r4, 0x1 strb r4, [r2] strh r1, [r2, 0x2] ldr r0, [sp] str r0, [r2, 0x4] str r3, [r2, 0x8] ldr r0, _08003730 str r0, [r2, 0xC] ldr r0, _08003734 str r0, [r2, 0x10] ldr r0, _08003738 strb r4, [r0] add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _0800372C: .4byte gUnknown_3000C00 _08003730: .4byte sub_8003E2C _08003734: .4byte sub_8003EC0 _08003738: .4byte gUnknown_3001B58 thumb_func_end sub_80036F4 thumb_func_start sub_800373C sub_800373C: push {r4,lr} lsls r0, 16 lsrs r0, 16 lsls r3, r0, 2 adds r3, r0 lsls r3, 2 ldr r0, _08003770 adds r3, r0 movs r4, 0x1 strb r4, [r3] movs r0, 0 strh r1, [r3, 0x2] strb r0, [r3, 0x4] strb r0, [r3, 0x5] strb r0, [r3, 0x6] strb r0, [r3, 0x7] str r2, [r3, 0x8] ldr r0, _08003774 str r0, [r3, 0xC] ldr r0, _08003778 str r0, [r3, 0x10] ldr r0, _0800377C strb r4, [r0] pop {r4} pop {r0} bx r0 .align 2, 0 _08003770: .4byte gUnknown_3000C00 _08003774: .4byte sub_8003F60 _08003778: .4byte sub_8004034 _0800377C: .4byte gUnknown_3001B58 thumb_func_end sub_800373C thumb_func_start sub_8003780 sub_8003780: push {r4,lr} sub sp, 0x4 str r2, [sp] lsls r0, 16 lsrs r0, 16 lsls r2, r0, 2 adds r2, r0 lsls r2, 2 ldr r0, _080037B8 adds r2, r0 movs r3, 0 movs r4, 0x1 strb r4, [r2] strh r1, [r2, 0x2] ldr r0, [sp] str r0, [r2, 0x4] str r3, [r2, 0x8] ldr r0, _080037BC str r0, [r2, 0xC] ldr r0, _080037C0 str r0, [r2, 0x10] ldr r0, _080037C4 strb r4, [r0] add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _080037B8: .4byte gUnknown_3000C00 _080037BC: .4byte sub_8004170 _080037C0: .4byte sub_8004264 _080037C4: .4byte gUnknown_3001B58 thumb_func_end sub_8003780 thumb_func_start sub_80037C8 sub_80037C8: push {r4,lr} sub sp, 0x4 str r2, [sp] lsls r0, 16 lsrs r0, 16 lsls r2, r0, 2 adds r2, r0 lsls r2, 2 ldr r0, _08003800 adds r2, r0 movs r3, 0 movs r4, 0x1 strb r4, [r2] strh r1, [r2, 0x2] ldr r0, [sp] str r0, [r2, 0x4] str r3, [r2, 0x8] ldr r0, _08003804 str r0, [r2, 0xC] ldr r0, _08003808 str r0, [r2, 0x10] ldr r0, _0800380C strb r4, [r0] add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _08003800: .4byte gUnknown_3000C00 _08003804: .4byte sub_8004388 _08003808: .4byte sub_8004434 _0800380C: .4byte gUnknown_3001B58 thumb_func_end sub_80037C8 thumb_func_start sub_8003810 sub_8003810: sub sp, 0x4 str r1, [sp] lsls r0, 16 lsrs r2, r0, 20 lsls r1, r2, 2 adds r1, r2 lsls r1, 2 ldr r2, _08003838 adds r1, r2 movs r2, 0x1 strb r2, [r1] ldr r1, _0800383C lsrs r0, 14 adds r0, r1 ldr r1, [sp] str r1, [r0] ldr r0, _08003840 strb r2, [r0] add sp, 0x4 bx lr .align 2, 0 _08003838: .4byte gUnknown_3000C00 _0800383C: .4byte gUnknown_3000400 _08003840: .4byte gUnknown_3001B58 thumb_func_end sub_8003810 thumb_func_start sub_8003844 sub_8003844: push {r4,r5,lr} sub sp, 0x4 lsls r0, 16 lsrs r4, r0, 16 lsls r1, 16 lsrs r1, 16 lsrs r0, 20 lsls r2, r0, 2 adds r2, r0 lsls r2, 2 ldr r0, _08003880 adds r2, r0 movs r5, 0x1 strb r5, [r2] adds r0, r1, 0 bl sub_80027A0 str r0, [sp] ldr r0, _08003884 lsls r4, 2 adds r4, r0 ldr r0, [sp] str r0, [r4] ldr r0, _08003888 strb r5, [r0] add sp, 0x4 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08003880: .4byte gUnknown_3000C00 _08003884: .4byte gUnknown_3000400 _08003888: .4byte gUnknown_3001B58 thumb_func_end sub_8003844 thumb_func_start sub_800388C sub_800388C: push {r4-r7,lr} adds r6, r1, 0 lsls r0, 16 lsrs r1, r0, 16 lsrs r4, r0, 20 adds r3, r1, r2 subs r0, r3, 0x1 cmp r0, 0 bge _080038A0 adds r0, 0xF _080038A0: lsls r0, 12 lsrs r3, r0, 16 lsls r1, 2 ldr r0, _080038E4 adds r1, r0 lsls r5, r4, 2 ldr r7, _080038E8 ldr r0, _080038EC mov r12, r0 cmp r2, 0 ble _080038C0 _080038B6: ldm r6!, {r0} stm r1!, {r0} subs r2, 0x1 cmp r2, 0 bne _080038B6 _080038C0: adds r0, r5, r4 lsls r0, 2 adds r0, r7 adds r2, r4, 0 cmp r2, r3 bgt _080038D8 movs r1, 0x1 _080038CE: strb r1, [r0] adds r2, 0x1 adds r0, 0x14 cmp r2, r3 ble _080038CE _080038D8: movs r0, 0x1 mov r1, r12 strb r0, [r1] pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080038E4: .4byte gUnknown_3000400 _080038E8: .4byte gUnknown_3000C00 _080038EC: .4byte gUnknown_3001B58 thumb_func_end sub_800388C thumb_func_start sub_80038F0 sub_80038F0: push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x4 adds r5, r1, 0 lsls r0, 16 lsrs r1, r0, 16 lsrs r6, r0, 20 adds r3, r1, r2 subs r0, r3, 0x1 cmp r0, 0 bge _0800390C adds r0, 0xF _0800390C: lsls r0, 12 lsrs r7, r0, 16 lsls r1, 2 ldr r0, _0800396C adds r1, r0 mov r8, r1 lsls r0, r6, 2 mov r9, r0 cmp r2, 0 ble _0800393C adds r4, r2, 0 _08003922: ldrh r0, [r5] adds r5, 0x2 bl sub_80027A0 str r0, [sp] mov r1, r8 adds r1, 0x4 mov r8, r1 subs r1, 0x4 stm r1!, {r0} subs r4, 0x1 cmp r4, 0 bne _08003922 _0800393C: mov r1, r9 adds r0, r1, r6 lsls r0, 2 ldr r1, _08003970 adds r0, r1 adds r4, r6, 0 ldr r2, _08003974 cmp r4, r7 bgt _0800395A movs r1, 0x1 _08003950: strb r1, [r0] adds r4, 0x1 adds r0, 0x14 cmp r4, r7 ble _08003950 _0800395A: movs r0, 0x1 strb r0, [r2] add sp, 0x4 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0800396C: .4byte gUnknown_3000400 _08003970: .4byte gUnknown_3000C00 _08003974: .4byte gUnknown_3001B58 thumb_func_end sub_80038F0 thumb_func_start sub_8003978 sub_8003978: lsls r0, 16 ldr r1, _08003984 lsrs r0, 14 adds r0, r1 ldr r0, [r0] bx lr .align 2, 0 _08003984: .4byte gUnknown_3000400 thumb_func_end sub_8003978 thumb_func_start sub_8003988 sub_8003988: push {lr} lsls r0, 16 ldr r1, _080039A0 lsrs r0, 14 adds r0, r1 ldr r0, [r0] bl sub_8002774 lsls r0, 16 lsrs r0, 16 pop {r1} bx r1 .align 2, 0 _080039A0: .4byte gUnknown_3000400 thumb_func_end sub_8003988 thumb_func_start sub_80039A4 sub_80039A4: lsls r0, 16 lsrs r0, 16 ldr r2, _080039B4 ldrh r1, [r2] orrs r0, r1 strh r0, [r2] bx lr .align 2, 0 _080039B4: .4byte gUnknown_3001B5A thumb_func_end sub_80039A4 thumb_func_start sub_80039B8 sub_80039B8: push {r4,r5,lr} ldr r0, _08003A28 ldrb r0, [r0] cmp r0, 0 beq _08003A20 ldr r4, _08003A2C movs r1, 0x96 lsls r1, 1 adds r0, r4, r1 ldrb r0, [r0] cmp r0, 0 beq _080039DA movs r0, 0xA0 lsls r0, 2 adds r1, r4, r0 movs r0, 0x1 strb r0, [r1] _080039DA: movs r5, 0 _080039DC: ldrb r0, [r4] cmp r0, 0 beq _080039F0 lsls r0, r5, 16 lsrs r0, 16 ldr r1, [r4, 0x10] bl _call_via_r1 movs r0, 0 strb r0, [r4] _080039F0: adds r5, 0x1 adds r4, 0x14 cmp r5, 0x1F ble _080039DC ldr r0, _08003A2C movs r1, 0xA0 lsls r1, 2 adds r5, r0, r1 ldrb r0, [r5] cmp r0, 0 beq _08003A14 ldr r2, [r4, 0xC] movs r0, 0x20 movs r1, 0xF0 bl _call_via_r2 movs r0, 0 strb r0, [r5] _08003A14: ldr r1, _08003A30 movs r0, 0x3 strh r0, [r1] ldr r1, _08003A28 movs r0, 0 strb r0, [r1] _08003A20: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08003A28: .4byte gUnknown_3001B58 _08003A2C: .4byte gUnknown_3000C00 _08003A30: .4byte gUnknown_3001B5A thumb_func_end sub_80039B8 thumb_func_start sub_8003A34 sub_8003A34: push {r4,r5,lr} sub sp, 0x4 lsls r0, r1, 16 lsrs r0, 16 lsls r5, r0, 2 ldr r1, _08003A70 adds r5, r1 ldrb r1, [r5, 0x2] movs r2, 0xF8 adds r3, r2, 0 ands r3, r1 lsls r3, 7 ldrb r4, [r5, 0x1] adds r1, r2, 0 ands r1, r4 lsls r1, 2 orrs r3, r1 ldrb r1, [r5] ands r2, r1 lsrs r2, 3 orrs r2, r3 mov r1, sp strh r2, [r1] bl SetBGPaletteBufferColor add sp, 0x4 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08003A70: .4byte gUnknown_3000400 thumb_func_end sub_8003A34 thumb_func_start sub_8003A74 sub_8003A74: push {r4-r7,lr} sub sp, 0x4 lsls r0, 20 lsrs r6, r0, 16 lsls r1, r6, 2 ldr r0, _08003ABC adds r4, r1, r0 movs r5, 0 movs r7, 0xF8 _08003A86: ldrb r0, [r4, 0x2] adds r1, r7, 0 ands r1, r0 lsls r1, 7 ldrb r2, [r4, 0x1] adds r0, r7, 0 ands r0, r2 lsls r0, 2 orrs r1, r0 ldrb r2, [r4] adds r0, r7, 0 ands r0, r2 lsrs r0, 3 orrs r0, r1 mov r1, sp strh r0, [r1] adds r0, r6, r5 bl SetBGPaletteBufferColor adds r4, 0x4 adds r5, 0x1 cmp r5, 0xF ble _08003A86 add sp, 0x4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08003ABC: .4byte gUnknown_3000400 thumb_func_end sub_8003A74 thumb_func_start sub_8003AC0 sub_8003AC0: push {r4-r7,lr} sub sp, 0x4 lsls r0, 16 lsrs r0, 16 lsls r1, 16 lsrs r7, r1, 16 lsls r1, r0, 2 adds r1, r0 lsls r1, 2 ldr r0, _08003B04 adds r1, r0 ldrh r2, [r1, 0x2] adds r6, r2, 0 lsls r1, r7, 2 ldr r0, _08003B08 adds r4, r1, r0 cmp r2, 0xFF bls _08003B0C ldrb r0, [r4, 0x2] movs r1, 0xF8 adds r2, r1, 0 ands r2, r0 lsls r2, 7 ldrb r3, [r4, 0x1] adds r0, r1, 0 ands r0, r3 lsls r0, 2 orrs r2, r0 ldrb r0, [r4] ands r1, r0 lsrs r1, 3 orrs r1, r2 b _08003B3A .align 2, 0 _08003B04: .4byte gUnknown_3000C00 _08003B08: .4byte gUnknown_3000400 _08003B0C: cmp r2, 0 bne _08003B16 mov r0, sp strh r2, [r0] b _08003B3E _08003B16: ldrb r0, [r4, 0x2] muls r0, r2 asrs r0, 8 movs r3, 0xF8 ands r0, r3 lsls r5, r0, 7 ldrb r0, [r4, 0x1] muls r0, r2 asrs r0, 8 ands r0, r3 lsls r1, r0, 2 orrs r1, r5 ldrb r0, [r4] muls r0, r6 asrs r0, 8 ands r0, r3 lsrs r0, 3 orrs r1, r0 _08003B3A: mov r0, sp strh r1, [r0] _08003B3E: adds r0, r7, 0 mov r1, sp bl SetBGPaletteBufferColor add sp, 0x4 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8003AC0 thumb_func_start sub_8003B50 sub_8003B50: push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x4 lsls r0, 16 lsrs r0, 16 lsls r1, r0, 2 adds r1, r0 lsls r1, 2 ldr r2, _08003BAC adds r1, r2 ldrh r6, [r1, 0x2] lsls r0, 20 lsrs r7, r0, 16 lsls r1, r7, 2 ldr r0, _08003BB0 adds r4, r1, r0 cmp r6, 0xFF bls _08003BB4 movs r5, 0 movs r6, 0xF8 _08003B7A: ldrb r0, [r4, 0x2] adds r1, r6, 0 ands r1, r0 lsls r1, 7 ldrb r2, [r4, 0x1] adds r0, r6, 0 ands r0, r2 lsls r0, 2 orrs r1, r0 ldrb r2, [r4] adds r0, r6, 0 ands r0, r2 lsrs r0, 3 orrs r0, r1 mov r1, sp strh r0, [r1] adds r0, r7, r5 bl SetBGPaletteBufferColor adds r4, 0x4 adds r5, 0x1 cmp r5, 0xF ble _08003B7A b _08003C0A .align 2, 0 _08003BAC: .4byte gUnknown_3000C00 _08003BB0: .4byte gUnknown_3000400 _08003BB4: cmp r6, 0 bne _08003BCE mov r0, sp strh r6, [r0] movs r5, 0 _08003BBE: adds r0, r7, r5 mov r1, sp bl SetBGPaletteBufferColor adds r5, 0x1 cmp r5, 0xF ble _08003BBE b _08003C0A _08003BCE: movs r5, 0 mov r8, sp _08003BD2: ldrb r0, [r4, 0x2] muls r0, r6 asrs r0, 8 movs r3, 0xF8 ands r0, r3 lsls r2, r0, 7 ldrb r0, [r4, 0x1] muls r0, r6 asrs r0, 8 ands r0, r3 lsls r1, r0, 2 orrs r1, r2 ldrb r0, [r4] muls r0, r6 asrs r0, 8 ands r0, r3 lsrs r0, 3 orrs r1, r0 mov r0, r8 strh r1, [r0] adds r0, r7, r5 mov r1, sp bl SetBGPaletteBufferColor adds r4, 0x4 adds r5, 0x1 cmp r5, 0xF ble _08003BD2 _08003C0A: add sp, 0x4 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8003B50 thumb_func_start sub_8003C18 sub_8003C18: push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x8 lsls r0, 16 lsrs r0, 16 lsls r1, 16 lsrs r1, 16 mov r8, r1 lsls r1, r0, 2 adds r1, r0 lsls r1, 2 ldr r0, _08003C68 adds r1, r0 ldrh r2, [r1, 0x2] mov r12, r2 ldr r0, [r1, 0x4] str r0, [sp] mov r0, r8 lsls r1, r0, 2 ldr r0, _08003C6C adds r4, r1, r0 cmp r2, 0xFF bls _08003C70 ldrb r0, [r4, 0x2] movs r1, 0xF8 adds r2, r1, 0 ands r2, r0 lsls r2, 7 ldrb r3, [r4, 0x1] adds r0, r1, 0 ands r0, r3 lsls r0, 2 orrs r2, r0 ldrb r0, [r4] ands r1, r0 lsrs r1, 3 orrs r1, r2 b _08003CE8 .align 2, 0 _08003C68: .4byte gUnknown_3000C00 _08003C6C: .4byte gUnknown_3000400 _08003C70: cmp r2, 0 bne _08003C98 mov r0, sp ldrb r0, [r0, 0x2] movs r1, 0xF8 adds r2, r1, 0 ands r2, r0 lsls r2, 7 mov r0, sp ldrb r3, [r0, 0x1] adds r0, r1, 0 ands r0, r3 lsls r0, 2 orrs r2, r0 mov r0, sp ldrb r0, [r0] ands r1, r0 lsrs r1, 3 orrs r1, r2 b _08003CE8 _08003C98: movs r1, 0x80 lsls r1, 1 adds r0, r1, 0 subs r0, r2 lsls r0, 16 lsrs r0, 16 mov r1, sp ldrb r1, [r1] adds r7, r1, 0 muls r7, r0 mov r1, sp ldrb r1, [r1, 0x1] adds r6, r1, 0 muls r6, r0 mov r1, sp ldrb r1, [r1, 0x2] muls r1, r0 ldrb r0, [r4, 0x2] muls r0, r2 adds r0, r1 asrs r0, 8 movs r3, 0xF8 ands r0, r3 lsls r5, r0, 7 ldrb r0, [r4, 0x1] muls r0, r2 adds r0, r6 asrs r0, 8 ands r0, r3 lsls r1, r0, 2 orrs r1, r5 ldrb r0, [r4] mov r2, r12 muls r2, r0 adds r0, r2, 0 adds r0, r7 asrs r0, 8 ands r0, r3 lsrs r0, 3 orrs r1, r0 _08003CE8: add r0, sp, 0x4 strh r1, [r0] adds r1, r0, 0 mov r0, r8 bl SetBGPaletteBufferColor add sp, 0x8 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8003C18 thumb_func_start sub_8003D00 sub_8003D00: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0xC lsls r0, 16 lsrs r0, 16 lsls r1, r0, 2 adds r1, r0 lsls r1, 2 ldr r2, _08003D68 adds r1, r2 ldrh r6, [r1, 0x2] ldr r1, [r1, 0x4] str r1, [sp] lsls r0, 20 lsrs r0, 16 mov r8, r0 lsls r1, r0, 2 ldr r0, _08003D6C adds r4, r1, r0 cmp r6, 0xFF bls _08003D70 movs r5, 0 movs r7, 0xF8 add r6, sp, 0x4 _08003D36: ldrb r0, [r4, 0x2] adds r1, r7, 0 ands r1, r0 lsls r1, 7 ldrb r2, [r4, 0x1] adds r0, r7, 0 ands r0, r2 lsls r0, 2 orrs r1, r0 ldrb r2, [r4] adds r0, r7, 0 ands r0, r2 lsrs r0, 3 orrs r0, r1 strh r0, [r6] mov r1, r8 adds r0, r1, r5 adds r1, r6, 0 bl SetBGPaletteBufferColor adds r4, 0x4 adds r5, 0x1 cmp r5, 0xF ble _08003D36 b _08003E1C .align 2, 0 _08003D68: .4byte gUnknown_3000C00 _08003D6C: .4byte gUnknown_3000400 _08003D70: cmp r6, 0 bne _08003DAE add r4, sp, 0x4 mov r0, sp ldrb r0, [r0, 0x2] movs r1, 0xF8 adds r2, r1, 0 ands r2, r0 lsls r2, 7 mov r0, sp ldrb r3, [r0, 0x1] adds r0, r1, 0 ands r0, r3 lsls r0, 2 orrs r2, r0 mov r0, sp ldrb r0, [r0] ands r1, r0 lsrs r1, 3 orrs r1, r2 strh r1, [r4] movs r5, 0 _08003D9C: mov r2, r8 adds r0, r2, r5 adds r1, r4, 0 bl SetBGPaletteBufferColor adds r5, 0x1 cmp r5, 0xF ble _08003D9C b _08003E1C _08003DAE: movs r1, 0x80 lsls r1, 1 adds r0, r1, 0 subs r0, r6 lsls r0, 16 lsrs r0, 16 mov r1, sp ldrb r1, [r1] adds r2, r1, 0 muls r2, r0 str r2, [sp, 0x8] mov r1, sp ldrb r1, [r1, 0x1] adds r2, r1, 0 muls r2, r0 mov r10, r2 mov r1, sp ldrb r1, [r1, 0x2] adds r2, r1, 0 muls r2, r0 mov r9, r2 movs r5, 0 add r7, sp, 0x4 _08003DDC: ldrb r0, [r4, 0x2] muls r0, r6 add r0, r9 asrs r0, 8 movs r3, 0xF8 ands r0, r3 lsls r2, r0, 7 ldrb r0, [r4, 0x1] muls r0, r6 add r0, r10 asrs r0, 8 ands r0, r3 lsls r1, r0, 2 orrs r1, r2 ldrb r0, [r4] muls r0, r6 ldr r2, [sp, 0x8] adds r0, r2 asrs r0, 8 ands r0, r3 lsrs r0, 3 orrs r1, r0 strh r1, [r7] mov r1, r8 adds r0, r1, r5 adds r1, r7, 0 bl SetBGPaletteBufferColor adds r4, 0x4 adds r5, 0x1 cmp r5, 0xF ble _08003DDC _08003E1C: 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_8003D00 thumb_func_start sub_8003E2C sub_8003E2C: push {r4-r6,lr} sub sp, 0x8 lsls r0, 16 lsrs r0, 16 lsls r1, 16 lsrs r6, r1, 16 lsls r1, r0, 2 adds r1, r0 lsls r1, 2 ldr r0, _08003E74 adds r1, r0 ldrh r2, [r1, 0x2] adds r5, r2, 0 ldr r0, [r1, 0x4] str r0, [sp] cmp r2, 0xFF bls _08003E78 mov r0, sp ldrb r0, [r0, 0x2] movs r1, 0xF8 adds r2, r1, 0 ands r2, r0 lsls r2, 7 mov r0, sp ldrb r3, [r0, 0x1] adds r0, r1, 0 ands r0, r3 lsls r0, 2 orrs r2, r0 mov r0, sp ldrb r0, [r0] ands r1, r0 lsrs r1, 3 orrs r1, r2 b _08003EAC .align 2, 0 _08003E74: .4byte gUnknown_3000C00 _08003E78: cmp r2, 0 bne _08003E82 add r0, sp, 0x4 strh r2, [r0] b _08003EB0 _08003E82: mov r0, sp ldrb r0, [r0, 0x2] muls r0, r2 asrs r0, 8 movs r3, 0xF8 ands r0, r3 lsls r4, r0, 7 mov r0, sp ldrb r0, [r0, 0x1] muls r0, r2 asrs r0, 8 ands r0, r3 lsls r1, r0, 2 orrs r1, r4 mov r0, sp ldrb r0, [r0] muls r0, r5 asrs r0, 8 ands r0, r3 lsrs r0, 3 orrs r1, r0 _08003EAC: add r0, sp, 0x4 strh r1, [r0] _08003EB0: adds r1, r0, 0 adds r0, r6, 0 bl SetBGPaletteBufferColor add sp, 0x8 pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_8003E2C thumb_func_start sub_8003EC0 sub_8003EC0: push {r4-r6,lr} sub sp, 0x8 lsls r0, 16 lsrs r0, 16 lsls r1, r0, 2 adds r1, r0 lsls r1, 2 ldr r2, _08003F08 adds r1, r2 ldrh r2, [r1, 0x2] adds r5, r2, 0 ldr r1, [r1, 0x4] str r1, [sp] lsls r0, 20 lsrs r6, r0, 16 cmp r2, 0xFF bls _08003F0C mov r0, sp ldrb r0, [r0, 0x2] movs r1, 0xF8 adds r2, r1, 0 ands r2, r0 lsls r2, 7 mov r0, sp ldrb r3, [r0, 0x1] adds r0, r1, 0 ands r0, r3 lsls r0, 2 orrs r2, r0 mov r0, sp ldrb r0, [r0] ands r1, r0 lsrs r1, 3 orrs r1, r2 b _08003F40 .align 2, 0 _08003F08: .4byte gUnknown_3000C00 _08003F0C: cmp r2, 0 bne _08003F16 add r0, sp, 0x4 strh r2, [r0] b _08003F44 _08003F16: mov r0, sp ldrb r0, [r0, 0x2] muls r0, r2 asrs r0, 8 movs r3, 0xF8 ands r0, r3 lsls r4, r0, 7 mov r0, sp ldrb r0, [r0, 0x1] muls r0, r2 asrs r0, 8 ands r0, r3 lsls r1, r0, 2 orrs r1, r4 mov r0, sp ldrb r0, [r0] muls r0, r5 asrs r0, 8 ands r0, r3 lsrs r0, 3 orrs r1, r0 _08003F40: add r0, sp, 0x4 strh r1, [r0] _08003F44: adds r5, r0, 0 movs r4, 0 _08003F48: adds r0, r6, r4 adds r1, r5, 0 bl SetBGPaletteBufferColor adds r4, 0x1 cmp r4, 0xF ble _08003F48 add sp, 0x8 pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_8003EC0 thumb_func_start sub_8003F60 sub_8003F60: push {r4-r7,lr} sub sp, 0x4 lsls r0, 16 lsrs r0, 16 lsls r1, 16 lsrs r7, r1, 16 lsls r1, r0, 2 adds r1, r0 lsls r1, 2 ldr r0, _08003FA8 adds r1, r0 ldrh r2, [r1, 0x2] adds r3, r2, 0 movs r0, 0xF ands r0, r7 lsls r0, 2 ldr r1, [r1, 0x8] adds r5, r1, r0 lsls r1, r7, 2 ldr r0, _08003FAC adds r4, r1, r0 cmp r2, 0xFF bls _08003FB0 ldrb r0, [r4, 0x2] movs r1, 0xF8 adds r2, r1, 0 ands r2, r0 lsls r2, 7 ldrb r3, [r4, 0x1] adds r0, r1, 0 ands r0, r3 lsls r0, 2 orrs r2, r0 ldrb r0, [r4] b _08003FCA .align 2, 0 _08003FA8: .4byte gUnknown_3000C00 _08003FAC: .4byte gUnknown_3000400 _08003FB0: cmp r2, 0 bne _08003FD6 ldrb r0, [r5, 0x2] movs r1, 0xF8 adds r2, r1, 0 ands r2, r0 lsls r2, 7 ldrb r3, [r5, 0x1] adds r0, r1, 0 ands r0, r3 lsls r0, 2 orrs r2, r0 ldrb r0, [r5] _08003FCA: ands r1, r0 lsrs r1, 3 orrs r1, r2 mov r0, sp strh r1, [r0] b _08004024 _08003FD6: movs r1, 0x80 lsls r1, 1 adds r0, r1, 0 subs r0, r3 lsls r0, 16 lsrs r0, 16 ldrb r1, [r5] adds r2, r1, 0 muls r2, r0 ldrb r1, [r4] muls r1, r3 adds r6, r2, r1 ldrb r1, [r5, 0x1] adds r2, r1, 0 muls r2, r0 ldrb r1, [r4, 0x1] muls r1, r3 adds r2, r1 ldrb r1, [r5, 0x2] muls r1, r0 ldrb r0, [r4, 0x2] muls r0, r3 adds r0, r1, r0 asrs r0, 8 movs r3, 0xF8 ands r0, r3 lsls r1, r0, 7 adds r0, r2, 0 asrs r0, 8 ands r0, r3 lsls r2, r0, 2 orrs r2, r1 adds r0, r6, 0 asrs r0, 8 ands r0, r3 lsrs r0, 3 orrs r2, r0 mov r0, sp strh r2, [r0] _08004024: adds r0, r7, 0 mov r1, sp bl SetBGPaletteBufferColor add sp, 0x4 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8003F60 thumb_func_start sub_8004034 sub_8004034: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x8 lsls r0, 16 lsrs r0, 16 lsls r1, r0, 2 adds r1, r0 lsls r1, 2 ldr r2, _0800409C adds r1, r2 ldrh r2, [r1, 0x2] mov r8, r2 ldr r5, [r1, 0x8] lsls r0, 20 lsrs r0, 16 mov r10, r0 lsls r1, r0, 2 ldr r0, _080040A0 adds r4, r1, r0 cmp r2, 0xFF bls _080040A4 movs r7, 0 movs r5, 0xF8 _08004068: ldrb r0, [r4, 0x2] adds r1, r5, 0 ands r1, r0 lsls r1, 7 ldrb r2, [r4, 0x1] adds r0, r5, 0 ands r0, r2 lsls r0, 2 orrs r1, r0 ldrb r2, [r4] adds r0, r5, 0 ands r0, r2 lsrs r0, 3 orrs r0, r1 mov r1, sp strh r0, [r1] mov r1, r10 adds r0, r1, r7 mov r1, sp bl SetBGPaletteBufferColor adds r4, 0x4 adds r7, 0x1 cmp r7, 0xF ble _08004068 b _0800415E .align 2, 0 _0800409C: .4byte gUnknown_3000C00 _080040A0: .4byte gUnknown_3000400 _080040A4: mov r2, r8 cmp r2, 0 bne _080040E2 movs r7, 0 mov r6, sp movs r4, 0xF8 _080040B0: ldrb r0, [r5, 0x2] adds r1, r4, 0 ands r1, r0 lsls r1, 7 ldrb r2, [r5, 0x1] adds r0, r4, 0 ands r0, r2 lsls r0, 2 orrs r1, r0 ldrb r2, [r5] adds r0, r4, 0 ands r0, r2 lsrs r0, 3 orrs r0, r1 strh r0, [r6] mov r1, r10 adds r0, r1, r7 mov r1, sp bl SetBGPaletteBufferColor adds r5, 0x4 adds r7, 0x1 cmp r7, 0xF ble _080040B0 b _0800415E _080040E2: movs r2, 0x80 lsls r2, 1 adds r0, r2, 0 mov r1, r8 subs r0, r1 lsls r0, 16 lsrs r0, 16 mov r9, r0 movs r7, 0 mov r2, sp str r2, [sp, 0x4] _080040F8: ldrb r0, [r5] mov r1, r9 muls r1, r0 ldrb r0, [r4] mov r2, r8 muls r2, r0 adds r0, r2, 0 adds r1, r0 mov r12, r1 ldrb r0, [r5, 0x1] mov r1, r9 muls r1, r0 ldrb r0, [r4, 0x1] mov r2, r8 muls r2, r0 adds r0, r2, 0 adds r6, r1, r0 ldrb r0, [r5, 0x2] mov r1, r9 muls r1, r0 ldrb r0, [r4, 0x2] mov r2, r8 muls r2, r0 adds r0, r2, 0 adds r0, r1, r0 asrs r0, 8 movs r3, 0xF8 ands r0, r3 lsls r2, r0, 7 adds r0, r6, 0 asrs r0, 8 ands r0, r3 lsls r1, r0, 2 orrs r1, r2 mov r0, r12 asrs r0, 8 ands r0, r3 lsrs r0, 3 orrs r1, r0 ldr r0, [sp, 0x4] strh r1, [r0] mov r1, r10 adds r0, r1, r7 mov r1, sp bl SetBGPaletteBufferColor adds r4, 0x4 adds r5, 0x4 adds r7, 0x1 cmp r7, 0xF ble _080040F8 _0800415E: add sp, 0x8 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8004034 thumb_func_start sub_8004170 sub_8004170: push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x8 lsls r0, 16 lsrs r0, 16 lsls r1, 16 lsrs r1, 16 mov r9, r1 lsls r1, r0, 2 adds r1, r0 lsls r1, 2 ldr r0, _080041C4 adds r1, r0 ldrh r2, [r1, 0x2] adds r4, r2, 0 ldr r0, [r1, 0x4] str r0, [sp] mov r0, r9 lsls r1, r0, 2 ldr r0, _080041C8 adds r6, r1, r0 cmp r2, 0xFF bls _080041CC ldrb r0, [r6, 0x2] movs r1, 0xF8 adds r2, r1, 0 ands r2, r0 lsls r2, 7 ldrb r3, [r6, 0x1] adds r0, r1, 0 ands r0, r3 lsls r0, 2 orrs r2, r0 ldrb r0, [r6] ands r1, r0 lsrs r1, 3 orrs r1, r2 add r0, sp, 0x4 strh r1, [r0] b _0800424C .align 2, 0 _080041C4: .4byte gUnknown_3000C00 _080041C8: .4byte gUnknown_3000400 _080041CC: mov r0, sp ldrb r1, [r0] movs r3, 0xFF subs r0, r3, r1 muls r0, r2 cmp r0, 0 bge _080041DC adds r0, 0xFF _080041DC: asrs r0, 8 adds r0, r1, r0 lsls r0, 16 lsrs r0, 16 mov r8, r0 mov r0, sp ldrb r1, [r0, 0x1] subs r0, r3, r1 muls r0, r2 cmp r0, 0 bge _080041F4 adds r0, 0xFF _080041F4: asrs r0, 8 adds r0, r1, r0 lsls r0, 16 lsrs r7, r0, 16 mov r0, sp ldrb r1, [r0, 0x2] subs r0, r3, r1 muls r0, r4 cmp r0, 0 bge _0800420A adds r0, 0xFF _0800420A: asrs r0, 8 adds r0, r1, r0 lsls r0, 16 lsrs r0, 16 ldrb r1, [r6, 0x2] muls r0, r1 movs r1, 0xFF bl __divsi3 adds r4, r0, 0 movs r5, 0xF8 ands r4, r5 lsls r4, 7 ldrb r0, [r6, 0x1] muls r0, r7 movs r1, 0xFF bl __divsi3 ands r0, r5 lsls r0, 2 orrs r4, r0 ldrb r0, [r6] mov r1, r8 muls r1, r0 adds r0, r1, 0 movs r1, 0xFF bl __divsi3 ands r0, r5 lsrs r0, 3 orrs r4, r0 add r0, sp, 0x4 strh r4, [r0] _0800424C: adds r1, r0, 0 mov r0, r9 bl SetBGPaletteBufferColor add sp, 0x8 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8004170 thumb_func_start sub_8004264 sub_8004264: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x10 lsls r0, 16 lsrs r0, 16 lsls r1, r0, 2 adds r1, r0 lsls r1, 2 ldr r2, _080042CC adds r1, r2 ldrh r2, [r1, 0x2] ldr r1, [r1, 0x4] str r1, [sp] lsls r0, 20 lsrs r0, 16 mov r9, r0 lsls r1, r0, 2 ldr r0, _080042D0 adds r5, r1, r0 cmp r2, 0xFF bls _080042D4 movs r6, 0 movs r7, 0xF8 add r4, sp, 0x4 _0800429A: ldrb r0, [r5, 0x2] adds r1, r7, 0 ands r1, r0 lsls r1, 7 ldrb r2, [r5, 0x1] adds r0, r7, 0 ands r0, r2 lsls r0, 2 orrs r1, r0 ldrb r2, [r5] adds r0, r7, 0 ands r0, r2 lsrs r0, 3 orrs r0, r1 strh r0, [r4] mov r1, r9 adds r0, r1, r6 adds r1, r4, 0 bl SetBGPaletteBufferColor adds r5, 0x4 adds r6, 0x1 cmp r6, 0xF ble _0800429A b _08004378 .align 2, 0 _080042CC: .4byte gUnknown_3000C00 _080042D0: .4byte gUnknown_3000400 _080042D4: mov r0, sp ldrb r1, [r0] movs r3, 0xFF subs r0, r3, r1 muls r0, r2 cmp r0, 0 bge _080042E4 adds r0, 0xFF _080042E4: asrs r0, 8 adds r0, r1, r0 lsls r0, 16 lsrs r0, 16 str r0, [sp, 0x8] mov r0, sp ldrb r1, [r0, 0x1] subs r0, r3, r1 muls r0, r2 cmp r0, 0 bge _080042FC adds r0, 0xFF _080042FC: asrs r0, 8 adds r0, r1, r0 lsls r0, 16 lsrs r0, 16 str r0, [sp, 0xC] mov r0, sp ldrb r1, [r0, 0x2] subs r0, r3, r1 muls r0, r2 cmp r0, 0 bge _08004314 adds r0, 0xFF _08004314: asrs r0, 8 adds r0, r1, r0 lsls r0, 16 lsrs r0, 16 mov r10, r0 movs r6, 0 add r7, sp, 0x4 movs r0, 0xF8 mov r8, r0 _08004326: ldrb r0, [r5, 0x2] mov r1, r10 muls r1, r0 adds r0, r1, 0 movs r1, 0xFF bl __divsi3 adds r4, r0, 0 mov r0, r8 ands r4, r0 lsls r4, 7 ldrb r0, [r5, 0x1] ldr r1, [sp, 0xC] muls r0, r1 movs r1, 0xFF bl __divsi3 mov r1, r8 ands r0, r1 lsls r0, 2 orrs r4, r0 ldrb r0, [r5] ldr r1, [sp, 0x8] muls r0, r1 movs r1, 0xFF bl __divsi3 mov r1, r8 ands r0, r1 lsrs r0, 3 orrs r4, r0 strh r4, [r7] mov r1, r9 adds r0, r1, r6 adds r1, r7, 0 bl SetBGPaletteBufferColor adds r5, 0x4 adds r6, 0x1 cmp r6, 0xF ble _08004326 _08004378: 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_8004264 thumb_func_start sub_8004388 sub_8004388: push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x8 lsls r0, 16 lsrs r0, 16 lsls r1, 16 lsrs r1, 16 mov r9, r1 lsls r1, r0, 2 adds r1, r0 lsls r1, 2 ldr r0, _0800442C adds r1, r0 ldrh r2, [r1, 0x2] ldr r0, [r1, 0x4] str r0, [sp] mov r0, r9 lsls r1, r0, 2 ldr r0, _08004430 adds r6, r1, r0 cmp r2, 0xFF bls _080043BC movs r2, 0x80 lsls r2, 1 _080043BC: mov r0, sp ldrb r0, [r0] muls r0, r2 lsls r0, 8 lsrs r0, 16 mov r8, r0 mov r0, sp ldrb r0, [r0, 0x1] muls r0, r2 lsls r0, 8 lsrs r7, r0, 16 mov r0, sp ldrb r0, [r0, 0x2] muls r0, r2 lsls r0, 8 lsrs r0, 16 ldrb r1, [r6, 0x2] muls r0, r1 movs r1, 0xFF bl __divsi3 adds r4, r0, 0 movs r5, 0xF8 ands r4, r5 lsls r4, 7 ldrb r0, [r6, 0x1] muls r0, r7 movs r1, 0xFF bl __divsi3 ands r0, r5 lsls r0, 2 orrs r4, r0 ldrb r0, [r6] mov r1, r8 muls r1, r0 adds r0, r1, 0 movs r1, 0xFF bl __divsi3 ands r0, r5 lsrs r0, 3 orrs r4, r0 add r1, sp, 0x4 strh r4, [r1] mov r0, r9 bl SetBGPaletteBufferColor add sp, 0x8 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0800442C: .4byte gUnknown_3000C00 _08004430: .4byte gUnknown_3000400 thumb_func_end sub_8004388 thumb_func_start sub_8004434 sub_8004434: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x10 lsls r0, 16 lsrs r0, 16 lsls r1, r0, 2 adds r1, r0 lsls r1, 2 ldr r2, _080044F8 adds r1, r2 ldrh r2, [r1, 0x2] ldr r1, [r1, 0x4] str r1, [sp] lsls r0, 20 lsrs r0, 16 mov r9, r0 lsls r1, r0, 2 ldr r0, _080044FC adds r5, r1, r0 cmp r2, 0xFF bls _08004468 movs r2, 0x80 lsls r2, 1 _08004468: mov r0, sp ldrb r0, [r0] muls r0, r2 lsls r0, 8 lsrs r0, 16 str r0, [sp, 0x8] mov r0, sp ldrb r0, [r0, 0x1] muls r0, r2 lsls r0, 8 lsrs r0, 16 str r0, [sp, 0xC] mov r0, sp ldrb r0, [r0, 0x2] muls r0, r2 lsls r0, 8 lsrs r0, 16 mov r10, r0 movs r6, 0 movs r0, 0xF8 mov r8, r0 add r7, sp, 0x4 _08004494: ldrb r0, [r5, 0x2] mov r1, r10 muls r1, r0 adds r0, r1, 0 movs r1, 0xFF bl __divsi3 adds r4, r0, 0 mov r0, r8 ands r4, r0 lsls r4, 7 ldrb r0, [r5, 0x1] ldr r1, [sp, 0xC] muls r0, r1 movs r1, 0xFF bl __divsi3 mov r1, r8 ands r0, r1 lsls r0, 2 orrs r4, r0 ldrb r0, [r5] ldr r1, [sp, 0x8] muls r0, r1 movs r1, 0xFF bl __divsi3 mov r1, r8 ands r0, r1 lsrs r0, 3 orrs r4, r0 strh r4, [r7] mov r1, r9 adds r0, r1, r6 adds r1, r7, 0 bl SetBGPaletteBufferColor adds r5, 0x4 adds r6, 0x1 cmp r6, 0xF ble _08004494 add sp, 0x10 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080044F8: .4byte gUnknown_3000C00 _080044FC: .4byte gUnknown_3000400 thumb_func_end sub_8004434 thumb_func_start sub_8004500 sub_8004500: ldr r1, _08004514 ldrh r2, [r1] movs r0, 0x6D muls r0, r2 ldr r2, _08004518 adds r0, r2 strh r0, [r1] ldrh r0, [r1] bx lr .align 2, 0 _08004514: .4byte gUnknown_203B070 _08004518: .4byte 0x000003fd thumb_func_end sub_8004500 thumb_func_start sub_800451C sub_800451C: push {r4,lr} adds r4, r0, 0 bl sub_8004500 muls r0, r4 asrs r0, 16 pop {r4} pop {r1} bx r1 thumb_func_end sub_800451C thumb_func_start sub_8004530 sub_8004530: push {r4,lr} adds r4, r0, 0 subs r0, r1, r4 bl sub_800451C adds r0, r4 pop {r4} pop {r1} bx r1 thumb_func_end sub_8004530 thumb_func_start sub_8004544 sub_8004544: push {r4,r5,lr} adds r3, r0, 0 subs r4, r1, 0x1 adds r2, r3, r4 movs r5, 0 cmp r5, r4 bge _08004566 _08004552: ldrb r1, [r3] ldrb r0, [r2] strb r0, [r3] adds r3, 0x1 strb r1, [r2] subs r2, 0x1 adds r5, 0x1 subs r4, 0x1 cmp r5, r4 blt _08004552 _08004566: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_8004544 thumb_func_start sub_800456C sub_800456C: push {r4-r7,lr} adds r4, r1, 0 cmp r4, 0 ble _08004578 movs r7, 0x1 b _0800457E _08004578: negs r4, r4 movs r7, 0x1 negs r7, r7 _0800457E: cmp r2, 0 ble _080045A0 adds r6, r0, 0 adds r5, r2, 0 _08004586: adds r0, r4, 0 movs r1, 0xA bl __modsi3 stm r6!, {r0} adds r0, r4, 0 movs r1, 0xA bl __divsi3 adds r4, r0, 0 subs r5, 0x1 cmp r5, 0 bne _08004586 _080045A0: adds r0, r7, 0 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_800456C thumb_func_start sub_80045A8 sub_80045A8: push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 ldm r4!, {r1} movs r3, 0xA cmp r2, 0x1 ble _080045CA subs r2, 0x1 _080045B8: ldm r4!, {r0} muls r0, r3 adds r1, r0 subs r2, 0x1 lsls r0, r3, 2 adds r0, r3 lsls r3, r0, 1 cmp r2, 0 bne _080045B8 _080045CA: adds r0, r1, 0 cmp r5, 0 bge _080045D2 negs r0, r0 _080045D2: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_80045A8 thumb_func_start ConvertFromBCD ConvertFromBCD: push {r4,lr} adds r1, r0, 0 movs r2, 0x1 movs r3, 0 cmp r1, 0 ble _080045FA movs r4, 0xF _080045E6: adds r0, r1, 0 ands r0, r4 muls r0, r2 adds r3, r0 lsls r0, r2, 2 adds r0, r2 lsls r2, r0, 1 asrs r1, 4 cmp r1, 0 bgt _080045E6 _080045FA: adds r0, r3, 0 pop {r4} pop {r1} bx r1 thumb_func_end ConvertFromBCD thumb_func_start ConvertToBCD ConvertToBCD: push {r4-r6,lr} adds r4, r0, 0 movs r5, 0 movs r6, 0 cmp r4, 0 ble _0800462C _08004610: adds r0, r4, 0 movs r1, 0xA bl __modsi3 lsls r0, r5 adds r6, r0 adds r5, 0x4 adds r0, r4, 0 movs r1, 0xA bl __divsi3 adds r4, r0, 0 cmp r4, 0 bgt _08004610 _0800462C: adds r0, r6, 0 pop {r4-r6} pop {r1} bx r1 thumb_func_end ConvertToBCD thumb_func_start InitBGPaletteBuffer InitBGPaletteBuffer: push {lr} movs r2, 0 ldr r1, _0800465C movs r0, 0x80 lsls r0, 2 _0800463E: strh r2, [r1] adds r1, 0x2 subs r0, 0x1 cmp r0, 0 bne _0800463E ldr r1, _08004660 movs r2, 0x1 adds r0, r1, 0 adds r0, 0x1F _08004650: strb r2, [r0] subs r0, 0x1 cmp r0, r1 bge _08004650 pop {r0} bx r0 .align 2, 0 _0800465C: .4byte gUnknown_20251F0 _08004660: .4byte gUnknown_20251D0 thumb_func_end InitBGPaletteBuffer thumb_func_start SetBGPaletteBufferColorRGB SetBGPaletteBufferColorRGB: push {r4-r7,lr} adds r4, r0, 0 adds r5, r1, 0 cmp r2, 0 bge _08004670 movs r2, 0 _08004670: cmp r2, 0x1F ble _08004676 movs r2, 0x1F _08004676: ldr r1, _080046CC adds r0, r4, 0 cmp r4, 0 bge _08004680 adds r0, 0xF _08004680: asrs r0, 4 adds r0, r1 movs r1, 0x1 strb r1, [r0] cmp r3, 0 bne _080046D4 ldr r0, _080046D0 lsls r1, r4, 1 adds r6, r1, r0 ldrb r0, [r5, 0x2] muls r0, r2 cmp r0, 0 bge _0800469C adds r0, 0xFF _0800469C: asrs r0, 8 movs r3, 0x1F ands r0, r3 lsls r4, r0, 10 ldrb r0, [r5, 0x1] muls r0, r2 cmp r0, 0 bge _080046AE adds r0, 0xFF _080046AE: asrs r0, 8 ands r0, r3 lsls r1, r0, 5 orrs r1, r4 ldrb r0, [r5] muls r0, r2 cmp r0, 0 bge _080046C0 adds r0, 0xFF _080046C0: asrs r0, 8 ands r0, r3 orrs r1, r0 strh r1, [r6] b _08004722 .align 2, 0 _080046CC: .4byte gUnknown_20251D0 _080046D0: .4byte gUnknown_20251F0 _080046D4: ldr r1, _08004728 lsls r0, r4, 1 adds r7, r0, r1 ldrb r0, [r5, 0x2] lsls r0, 2 adds r0, r3 ldrb r0, [r0, 0x2] muls r0, r2 cmp r0, 0 bge _080046EA adds r0, 0xFF _080046EA: asrs r0, 8 movs r4, 0x1F ands r0, r4 lsls r6, r0, 10 ldrb r0, [r5, 0x1] lsls r0, 2 adds r0, r3 ldrb r0, [r0, 0x1] muls r0, r2 cmp r0, 0 bge _08004702 adds r0, 0xFF _08004702: asrs r0, 8 ands r0, r4 lsls r1, r0, 5 orrs r1, r6 ldrb r0, [r5] lsls r0, 2 adds r0, r3 ldrb r0, [r0] muls r0, r2 cmp r0, 0 bge _0800471A adds r0, 0xFF _0800471A: asrs r0, 8 ands r0, r4 orrs r1, r0 strh r1, [r7] _08004722: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08004728: .4byte gUnknown_20251F0 thumb_func_end SetBGPaletteBufferColorRGB thumb_func_start SetBGPaletteBufferColorArray SetBGPaletteBufferColorArray: push {lr} adds r2, r0, 0 adds r3, r1, 0 ldr r1, _08004764 cmp r2, 0 bge _0800473A adds r0, 0xF _0800473A: asrs r0, 4 adds r0, r1 movs r1, 0x1 strb r1, [r0] ldr r0, _08004768 lsls r2, 1 adds r2, r0 ldrb r1, [r3, 0x2] lsrs r1, 3 lsls r1, 10 ldrb r0, [r3, 0x1] lsrs r0, 3 lsls r0, 5 orrs r1, r0 ldrb r0, [r3] lsrs r0, 3 orrs r0, r1 strh r0, [r2] pop {r0} bx r0 .align 2, 0 _08004764: .4byte gUnknown_20251D0 _08004768: .4byte gUnknown_20251F0 thumb_func_end SetBGPaletteBufferColorArray thumb_func_start SetBGPaletteBufferColor SetBGPaletteBufferColor: push {lr} adds r2, r0, 0 adds r3, r1, 0 ldr r1, _08004790 cmp r2, 0 bge _0800477A adds r0, 0xF _0800477A: asrs r0, 4 adds r0, r1 movs r1, 0x1 strb r1, [r0] ldr r1, _08004794 lsls r0, r2, 1 adds r0, r1 ldrh r1, [r3] strh r1, [r0] pop {r0} bx r0 .align 2, 0 _08004790: .4byte gUnknown_20251D0 _08004794: .4byte gUnknown_20251F0 thumb_func_end SetBGPaletteBufferColor thumb_func_start nullsub_4 nullsub_4: bx lr thumb_func_end nullsub_4 thumb_func_start nullsub_5 nullsub_5: bx lr thumb_func_end nullsub_5 thumb_func_start nullsub_143 nullsub_143: bx lr thumb_func_end nullsub_143 thumb_func_start TransferBGPaletteBuffer TransferBGPaletteBuffer: push {r4-r6,lr} movs r6, 0 movs r4, 0 movs r5, 0xA0 lsls r5, 19 _080047AE: ldr r0, _080047DC adds r1, r6, r0 ldrb r0, [r1] cmp r0, 0 beq _080047CA movs r0, 0 strb r0, [r1] lsls r1, r4, 1 ldr r0, _080047E0 adds r1, r0 adds r0, r5, 0 movs r2, 0x20 bl CpuCopy _080047CA: adds r6, 0x1 adds r5, 0x20 adds r4, 0x10 ldr r0, _080047E4 cmp r4, r0 ble _080047AE pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080047DC: .4byte gUnknown_20251D0 _080047E0: .4byte gUnknown_20251F0 _080047E4: .4byte 0x000001ff thumb_func_end TransferBGPaletteBuffer thumb_func_start sub_80047E8 sub_80047E8: ldr r0, _08004840 movs r3, 0 movs r2, 0 strh r2, [r0] strh r2, [r0, 0x2] strh r2, [r0, 0x4] strh r2, [r0, 0x6] ldr r0, _08004844 strh r2, [r0] strh r2, [r0, 0x2] strh r2, [r0, 0x4] strh r2, [r0, 0x6] ldr r1, _08004848 ldr r0, _0800484C str r0, [r1] ldr r0, _08004850 str r2, [r0, 0x20] ldr r1, _08004854 strh r1, [r0] movs r1, 0x1 negs r1, r1 strh r1, [r0, 0x2] strh r1, [r0, 0x4] strh r1, [r0, 0x6] strh r1, [r0, 0x1C] strh r1, [r0, 0x1E] strh r1, [r0, 0x8] strh r1, [r0, 0xA] strh r1, [r0, 0xC] strh r1, [r0, 0xE] strh r1, [r0, 0x10] strh r1, [r0, 0x12] strh r1, [r0, 0x14] strh r1, [r0, 0x16] adds r1, r0, 0 adds r1, 0x28 strb r3, [r1] adds r0, 0x29 strb r3, [r0] ldr r0, _08004858 strh r2, [r0] strh r2, [r0, 0x2] bx lr .align 2, 0 _08004840: .4byte gUnknown_20255F0 _08004844: .4byte gUnknown_2025638 _08004848: .4byte gUnknown_202562C _0800484C: .4byte 0x004a14c1 _08004850: .4byte gUnknown_2025600 _08004854: .4byte 0x0000ffff _08004858: .4byte gUnknown_2025668 thumb_func_end sub_80047E8 thumb_func_start sub_800485C sub_800485C: push {r4,r5,lr} ldr r2, _080048A8 ldr r1, _080048AC adds r0, r2, 0 ldm r0!, {r3-r5} stm r1!, {r3-r5} ldr r0, [r0] str r0, [r1] movs r3, 0 movs r0, 0 strh r0, [r2] strh r0, [r2, 0x2] strh r0, [r2, 0x4] strh r0, [r2, 0x6] ldr r0, _080048B0 ldr r1, _080048B4 strh r1, [r0] movs r1, 0x1 negs r1, r1 strh r1, [r0, 0x2] strh r1, [r0, 0x4] strh r1, [r0, 0x6] strh r1, [r0, 0x8] strh r1, [r0, 0xA] strh r1, [r0, 0xC] strh r1, [r0, 0xE] strh r1, [r0, 0x10] strh r1, [r0, 0x12] strh r1, [r0, 0x14] strh r1, [r0, 0x16] adds r1, r0, 0 adds r1, 0x28 strb r3, [r1] adds r0, 0x29 strb r3, [r0] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080048A8: .4byte gUnknown_2025638 _080048AC: .4byte gUnknown_20255F0 _080048B0: .4byte gUnknown_2025600 _080048B4: .4byte 0x0000ffff thumb_func_end sub_800485C thumb_func_start sub_80048B8 sub_80048B8: movs r0, 0 bx lr thumb_func_end sub_80048B8 thumb_func_start sub_80048BC sub_80048BC: movs r0, 0 bx lr thumb_func_end sub_80048BC thumb_func_start sub_80048C0 sub_80048C0: movs r0, 0 bx lr thumb_func_end sub_80048C0 thumb_func_start sub_80048C4 sub_80048C4: movs r0, 0 bx lr thumb_func_end sub_80048C4 thumb_func_start sub_80048C8 sub_80048C8: movs r0, 0 bx lr thumb_func_end sub_80048C8 thumb_func_start sub_80048CC sub_80048CC: movs r0, 0 bx lr thumb_func_end sub_80048CC thumb_func_start sub_80048D0 sub_80048D0: ldr r1, _080048E8 movs r0, 0 strh r0, [r1, 0x4] ldr r1, _080048EC str r0, [r1, 0xC] strh r0, [r1, 0x8] ldr r1, _080048F0 ldr r0, _080048F4 strh r0, [r1] strh r0, [r1, 0x2] bx lr .align 2, 0 _080048E8: .4byte gUnknown_20255F0 _080048EC: .4byte gUnknown_2025648 _080048F0: .4byte gUnknown_2025668 _080048F4: .4byte 0x000003e7 thumb_func_end sub_80048D0 thumb_func_start sub_80048F8 sub_80048F8: ldr r0, _08004908 movs r1, 0 strh r1, [r0, 0x2] ldr r0, _0800490C strh r1, [r0, 0x2] ldr r0, _08004910 strh r1, [r0, 0x2] bx lr .align 2, 0 _08004908: .4byte gUnknown_20255F0 _0800490C: .4byte gUnknown_2025638 _08004910: .4byte gUnknown_2025648 thumb_func_end sub_80048F8 thumb_func_start sub_8004914 sub_8004914: ldr r0, _0800494C movs r1, 0x5 str r1, [r0, 0x20] movs r2, 0 movs r1, 0 strh r1, [r0, 0x24] ldr r1, _08004950 strh r1, [r0] movs r1, 0x1 negs r1, r1 strh r1, [r0, 0x2] strh r1, [r0, 0x4] strh r1, [r0, 0x6] strh r1, [r0, 0x8] strh r1, [r0, 0xA] strh r1, [r0, 0xC] strh r1, [r0, 0xE] strh r1, [r0, 0x10] strh r1, [r0, 0x12] strh r1, [r0, 0x14] strh r1, [r0, 0x16] adds r1, r0, 0 adds r1, 0x28 strb r2, [r1] adds r0, 0x29 strb r2, [r0] bx lr .align 2, 0 _0800494C: .4byte gUnknown_2025600 _08004950: .4byte 0x0000ffff thumb_func_end sub_8004914 thumb_func_start UpdateInput UpdateInput: push {r4-r6,lr} ldr r4, _08004998 ldr r5, _0800499C adds r1, r4, 0 adds r0, r5, 0 ldm r0!, {r2,r3,r6} stm r1!, {r2,r3,r6} ldr r0, [r0] str r0, [r1] adds r0, r5, 0 bl ReadKeyInput ldrh r0, [r4] ldrh r3, [r5] eors r0, r3 ands r0, r3 strh r0, [r5, 0x2] lsls r0, r3, 16 lsrs r0, 16 cmp r0, 0 beq _080049A8 ldrh r1, [r5, 0x8] movs r0, 0xF0 adds r2, r0, 0 ands r2, r3 ands r0, r1 cmp r0, r2 bne _080049A0 ldr r0, [r5, 0xC] cmp r0, 0x31 bgt _080049AC adds r0, 0x1 str r0, [r5, 0xC] b _080049AC .align 2, 0 _08004998: .4byte gUnknown_2025658 _0800499C: .4byte gUnknown_2025648 _080049A0: strh r2, [r5, 0x8] movs r0, 0x1 str r0, [r5, 0xC] b _080049AC _080049A8: str r0, [r5, 0xC] strh r0, [r5, 0x8] _080049AC: ldr r0, _080049C4 ldr r2, [r0, 0xC] adds r3, r0, 0 cmp r2, 0x1 bne _080049C8 ldrh r0, [r3, 0x8] movs r1, 0xF0 ands r1, r0 ldrh r0, [r3, 0x2] orrs r1, r0 strh r1, [r3, 0x4] b _080049E0 .align 2, 0 _080049C4: .4byte gUnknown_2025648 _080049C8: cmp r2, 0x30 bne _080049DC movs r0, 0x2B str r0, [r3, 0xC] ldrh r1, [r3, 0x8] movs r0, 0xF0 ands r0, r1 ldrh r1, [r3, 0x2] orrs r0, r1 b _080049DE _080049DC: movs r0, 0 _080049DE: strh r0, [r3, 0x4] _080049E0: movs r0, 0 strh r0, [r3, 0x6] ldrh r1, [r3] movs r5, 0x2 adds r0, r5, 0 ands r0, r1 lsls r0, 16 lsrs r2, r0, 16 cmp r2, 0 beq _08004A0C ldr r0, _08004A08 ldrh r2, [r0] movs r4, 0 ldrsh r1, [r0, r4] adds r4, r0, 0 cmp r1, 0x63 bgt _08004A20 adds r0, r2, 0x1 strh r0, [r4] b _08004A20 .align 2, 0 _08004A08: .4byte gUnknown_2025668 _08004A0C: ldr r1, _08004A44 ldrh r0, [r1] subs r0, 0x2 lsls r0, 16 lsrs r0, 16 adds r4, r1, 0 cmp r0, 0x9 bhi _08004A1E strh r5, [r3, 0x6] _08004A1E: strh r2, [r4] _08004A20: ldrh r1, [r3] movs r5, 0x80 lsls r5, 1 adds r0, r5, 0 ands r0, r1 lsls r0, 16 lsrs r2, r0, 16 cmp r2, 0 beq _08004A48 ldrh r1, [r4, 0x2] movs r6, 0x2 ldrsh r0, [r4, r6] cmp r0, 0x63 bgt _08004A5E adds r0, r1, 0x1 strh r0, [r4, 0x2] b _08004A5E .align 2, 0 _08004A44: .4byte gUnknown_2025668 _08004A48: ldrh r0, [r4, 0x2] subs r0, 0x2 lsls r0, 16 lsrs r0, 16 cmp r0, 0x9 bhi _08004A5C ldrh r1, [r3, 0x6] adds r0, r5, 0 orrs r0, r1 strh r0, [r3, 0x6] _08004A5C: strh r2, [r4, 0x2] _08004A5E: ldr r2, _08004A94 ldrh r0, [r2] ldrh r1, [r3] orrs r0, r1 strh r0, [r2] ldrh r0, [r2, 0x2] ldrh r1, [r3, 0x2] orrs r0, r1 strh r0, [r2, 0x2] ldrh r0, [r2, 0x4] ldrh r1, [r3, 0x4] orrs r0, r1 strh r0, [r2, 0x4] ldrh r0, [r2, 0x6] ldrh r1, [r3, 0x6] orrs r0, r1 strh r0, [r2, 0x6] ldr r2, _08004A98 ldrh r0, [r3] ldr r1, _08004A9C orrs r0, r1 ldr r1, [r2] muls r0, r1 str r0, [r2] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08004A94: .4byte gUnknown_2025638 _08004A98: .4byte gUnknown_202562C _08004A9C: .4byte 0x054a1c41 thumb_func_end UpdateInput thumb_func_start nullsub_6 nullsub_6: bx lr thumb_func_end nullsub_6 thumb_func_start sub_8004AA4 sub_8004AA4: push {r4,r5,lr} adds r3, r0, 0 ldr r4, [r1, 0x4] cmp r2, 0 ble _08004AE8 _08004AAE: ldm r4!, {r1} movs r5, 0 ldrsh r0, [r1, r5] cmp r0, 0 beq _08004ADE movs r0, 0x80 lsls r0, 24 str r0, [r3] ldrh r0, [r1, 0x2] strh r0, [r3, 0x6] ldrh r0, [r1, 0x2] strh r0, [r3, 0x4] adds r0, r1, 0x4 str r0, [r3, 0x8] str r0, [r3, 0xC] movs r5, 0 ldrsh r0, [r1, r5] lsls r0, 2 adds r0, 0x4 adds r0, r1, r0 str r0, [r3, 0x10] ldr r0, [r1, 0x4] str r0, [r3, 0x14] b _08004AE0 _08004ADE: str r0, [r3] _08004AE0: adds r3, 0x18 subs r2, 0x1 cmp r2, 0 bne _08004AAE _08004AE8: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_8004AA4 thumb_func_start sub_8004AF0 sub_8004AF0: push {r4-r7,lr} mov r7, r8 push {r7} adds r4, r1, 0 adds r6, r2, 0 lsls r0, 24 lsrs r0, 24 mov r8, r0 movs r7, 0 cmp r7, r3 bge _08004B6A adds r5, r3, 0 _08004B08: adds r0, r4, 0 movs r1, 0x1 bl sub_8004D14 lsls r0, 24 cmp r0, 0 beq _08004B60 adds r0, r4, 0 movs r1, 0x1 bl sub_8004D40 lsls r0, 24 cmp r0, 0 bne _08004B60 mov r1, r8 ldrh r0, [r4, 0x6] subs r0, 0x1 strh r0, [r4, 0x6] lsls r0, 16 cmp r0, 0 bgt _08004B4E ldrh r0, [r4, 0x4] strh r0, [r4, 0x6] ldr r1, [r4, 0xC] ldr r0, [r4, 0x10] cmp r1, r0 bcc _08004B42 ldr r0, [r4, 0x8] str r0, [r4, 0xC] _08004B42: ldr r1, [r4, 0xC] ldm r1!, {r0} str r0, [r4, 0x14] str r1, [r4, 0xC] movs r1, 0x1 movs r7, 0x1 _08004B4E: cmp r1, 0 beq _08004B60 adds r1, r4, 0 adds r1, 0x14 adds r0, r6, 0 ldr r2, [sp, 0x18] ldr r3, [sp, 0x1C] bl SetBGPaletteBufferColorRGB _08004B60: subs r5, 0x1 adds r4, 0x18 adds r6, 0x1 cmp r5, 0 bne _08004B08 _08004B6A: adds r0, r7, 0 pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_8004AF0 thumb_func_start sub_8004B78 sub_8004B78: push {r4-r7,lr} mov r7, r8 push {r7} adds r4, r1, 0 adds r6, r2, 0 lsls r0, 24 lsrs r0, 24 mov r8, r0 movs r7, 0 cmp r7, r3 bge _08004BF2 adds r5, r3, 0 _08004B90: adds r0, r4, 0 movs r1, 0x1 bl sub_8004D14 lsls r0, 24 cmp r0, 0 beq _08004BE8 adds r0, r4, 0 movs r1, 0x1 bl sub_8004D40 lsls r0, 24 cmp r0, 0 bne _08004BE8 mov r1, r8 ldrh r0, [r4, 0x6] subs r0, 0x1 strh r0, [r4, 0x6] lsls r0, 16 cmp r0, 0 bgt _08004BD6 ldrh r0, [r4, 0x4] strh r0, [r4, 0x6] ldr r1, [r4, 0xC] ldr r0, [r4, 0x10] cmp r1, r0 bcc _08004BCA ldr r0, [r4, 0x8] str r0, [r4, 0xC] _08004BCA: ldr r1, [r4, 0xC] ldm r1!, {r0} str r0, [r4, 0x14] str r1, [r4, 0xC] movs r1, 0x1 movs r7, 0x1 _08004BD6: cmp r1, 0 beq _08004BE8 adds r1, r4, 0 adds r1, 0x14 adds r0, r6, 0 ldr r2, [sp, 0x18] ldr r3, [sp, 0x1C] bl nullsub_4 _08004BE8: subs r5, 0x1 adds r4, 0x18 adds r6, 0x1 cmp r5, 0 bne _08004B90 _08004BF2: adds r0, r7, 0 pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_8004B78 thumb_func_start sub_8004C00 sub_8004C00: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x4 adds r4, r0, 0 adds r7, r1, 0 mov r10, r3 ldr r0, [sp, 0x28] mov r8, r0 movs r1, 0 mov r9, r1 cmp r9, r2 bge _08004CDC adds r6, r2, 0 _08004C20: adds r0, r4, 0 movs r1, 0x1 bl sub_8004D14 lsls r0, 24 cmp r0, 0 beq _08004CD2 adds r0, r4, 0 movs r1, 0x1 bl sub_8004D40 lsls r0, 24 cmp r0, 0 bne _08004CD2 ldrh r0, [r4, 0x6] subs r0, 0x1 strh r0, [r4, 0x6] lsls r0, 16 cmp r0, 0 bgt _08004C64 ldrh r0, [r4, 0x4] strh r0, [r4, 0x6] ldr r1, [r4, 0xC] ldr r0, [r4, 0x10] cmp r1, r0 bcc _08004C58 ldr r0, [r4, 0x8] str r0, [r4, 0xC] _08004C58: ldr r1, [r4, 0xC] ldm r1!, {r0} str r0, [r4, 0x14] str r1, [r4, 0xC] movs r2, 0x1 mov r9, r2 _08004C64: mov r3, r8 movs r5, 0 ldrsh r0, [r3, r5] ldrb r2, [r4, 0x14] adds r1, r0, r2 movs r5, 0x2 ldrsh r0, [r3, r5] ldrb r2, [r4, 0x15] adds r3, r0, r2 mov r5, r8 movs r2, 0x4 ldrsh r0, [r5, r2] ldrb r2, [r4, 0x16] adds r5, r0, r2 cmp r1, 0xFF ble _08004C86 movs r1, 0xFF _08004C86: cmp r3, 0xFF ble _08004C8C movs r3, 0xFF _08004C8C: cmp r5, 0xFF ble _08004C92 movs r5, 0xFF _08004C92: cmp r1, 0 bge _08004C98 movs r1, 0 _08004C98: cmp r3, 0 bge _08004C9E movs r3, 0 _08004C9E: cmp r5, 0 bge _08004CA4 movs r5, 0 _08004CA4: lsls r1, 24 lsrs r1, 24 ldr r2, _08004CF0 ldr r0, [sp] ands r0, r2 orrs r0, r1 lsls r2, r3, 24 lsrs r2, 16 ldr r1, _08004CF4 ands r0, r1 orrs r0, r2 lsls r2, r5, 24 lsrs r2, 8 ldr r1, _08004CF8 ands r0, r1 orrs r0, r2 str r0, [sp] adds r0, r7, 0 mov r1, sp mov r2, r10 ldr r3, [sp, 0x24] bl SetBGPaletteBufferColorRGB _08004CD2: subs r6, 0x1 adds r4, 0x18 adds r7, 0x1 cmp r6, 0 bne _08004C20 _08004CDC: mov r0, r9 add sp, 0x4 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _08004CF0: .4byte 0xffffff00 _08004CF4: .4byte 0xffff00ff _08004CF8: .4byte 0xff00ffff thumb_func_end sub_8004C00 thumb_func_start sub_8004CFC sub_8004CFC: push {lr} cmp r1, 0 ble _08004D0E movs r2, 0 _08004D04: str r2, [r0] adds r0, 0x18 subs r1, 0x1 cmp r1, 0 bne _08004D04 _08004D0E: pop {r0} bx r0 thumb_func_end sub_8004CFC thumb_func_start sub_8004D14 sub_8004D14: push {r4,lr} adds r2, r0, 0 movs r3, 0 cmp r3, r1 bge _08004D36 movs r4, 0x80 lsls r4, 24 _08004D22: ldr r0, [r2] ands r0, r4 cmp r0, 0 beq _08004D2E movs r0, 0x1 b _08004D38 _08004D2E: adds r2, 0x18 adds r3, 0x1 cmp r3, r1 blt _08004D22 _08004D36: movs r0, 0 _08004D38: pop {r4} pop {r1} bx r1 thumb_func_end sub_8004D14 thumb_func_start sub_8004D40 sub_8004D40: push {r4-r6,lr} adds r3, r0, 0 adds r4, r1, 0 movs r1, 0 cmp r1, r4 bge _08004D70 movs r6, 0x80 lsls r6, 24 movs r5, 0x80 lsls r5, 22 _08004D54: ldr r2, [r3] adds r0, r2, 0 ands r0, r6 cmp r0, 0 beq _08004D6A ands r2, r5 cmp r2, 0 bne _08004D68 movs r0, 0 b _08004D72 _08004D68: adds r3, 0x18 _08004D6A: adds r1, 0x1 cmp r1, r4 blt _08004D54 _08004D70: movs r0, 0x1 _08004D72: pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_8004D40 thumb_func_start sub_8004D78 sub_8004D78: push {lr} movs r0, 0x1 bl sub_8004D8C movs r0, 0 bl SetSavingIconCoords pop {r0} bx r0 thumb_func_end sub_8004D78 thumb_func_start sub_8004D8C sub_8004D8C: push {r4,r5,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r1, _08004E68 movs r0, 0 str r0, [r1] ldr r1, _08004E6C ldr r0, _08004E70 str r0, [r1] ldr r1, _08004E74 ldr r0, _08004E78 str r0, [r1] ldr r0, _08004E7C adds r1, r0, 0 adds r1, 0x8 adds r5, r0, 0 movs r2, 0 movs r3, 0xF0 _08004DB0: str r1, [r0] str r2, [r0, 0x4] adds r0, 0x8 adds r1, 0x8 str r1, [r0] str r2, [r0, 0x4] adds r0, 0x8 adds r1, 0x8 str r1, [r0] str r2, [r0, 0x4] adds r0, 0x8 adds r1, 0x8 str r1, [r0] str r2, [r0, 0x4] adds r0, 0x8 adds r1, 0x8 str r1, [r0] str r2, [r0, 0x4] adds r0, 0x8 adds r1, 0x8 str r1, [r0] str r2, [r0, 0x4] adds r0, 0x8 adds r1, 0x8 str r1, [r0] str r2, [r0, 0x4] adds r0, 0x8 adds r1, 0x8 str r1, [r0] str r2, [r0, 0x4] adds r0, 0x8 adds r1, 0x8 str r1, [r0] str r2, [r0, 0x4] adds r0, 0x8 adds r1, 0x8 str r1, [r0] str r2, [r0, 0x4] adds r0, 0x8 adds r1, 0x8 str r1, [r0] str r2, [r0, 0x4] adds r0, 0x8 adds r1, 0x8 str r1, [r0] str r2, [r0, 0x4] adds r0, 0x8 adds r1, 0x8 str r1, [r0] str r2, [r0, 0x4] adds r0, 0x8 adds r1, 0x8 str r1, [r0] str r2, [r0, 0x4] adds r0, 0x8 adds r1, 0x8 str r1, [r0] str r2, [r0, 0x4] adds r0, 0x8 adds r1, 0x8 str r1, [r0] str r2, [r0, 0x4] adds r0, 0x8 adds r1, 0x8 subs r3, 0x10 cmp r3, 0 bge _08004DB0 cmp r4, 0 beq _08004E50 movs r2, 0 ldr r1, _08004E80 ldr r0, _08004E84 movs r3, 0x7F _08004E42: str r2, [r0] str r1, [r0, 0x4] adds r1, 0x8 adds r0, 0x8 subs r3, 0x1 cmp r3, 0 bge _08004E42 _08004E50: movs r1, 0x80 lsls r1, 4 adds r0, r5, r1 movs r1, 0 str r1, [r0] ldr r2, _08004E88 adds r0, r5, r2 str r1, [r0] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08004E68: .4byte gUnknown_20266A8 _08004E6C: .4byte gUnknown_2026E30 _08004E70: .4byte 0x06010000 _08004E74: .4byte gUnknown_203B074 _08004E78: .4byte gUnknown_20266B0 _08004E7C: .4byte gUnknown_20256A0 _08004E80: .4byte gUnknown_20262A8 _08004E84: .4byte gUnknown_2025EA8 _08004E88: .4byte 0x00000804 thumb_func_end sub_8004D8C thumb_func_start sub_8004E8C sub_8004E8C: ldr r1, _08004EA4 strh r1, [r0] movs r1, 0x1 negs r1, r1 strh r1, [r0, 0x2] strh r1, [r0, 0x4] movs r1, 0 strh r1, [r0, 0x6] strh r1, [r0, 0x8] strh r1, [r0, 0xA] bx lr .align 2, 0 _08004EA4: .4byte 0x0000ffff thumb_func_end sub_8004E8C thumb_func_start sub_8004EA8 sub_8004EA8: push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0xC adds r5, r0, 0 mov r8, r1 adds r0, r2, 0 adds r6, r3, 0 cmp r0, 0 beq _08004EC2 bl sub_80052BC _08004EC2: ldr r0, _08004F40 ldr r7, [r0] mov r12, r0 cmp r7, 0x7F ble _08004ECE b _08005082 _08004ECE: mov r2, sp ldrh r0, [r5] strh r0, [r2] ldrh r0, [r5, 0x2] strh r0, [r2, 0x2] ldrh r4, [r5, 0x4] ldr r0, _08004F44 ands r0, r4 strh r0, [r2, 0x4] ldrh r3, [r5, 0x6] ldr r0, _08004F48 ands r0, r3 strh r0, [r2, 0x6] ldrh r0, [r5, 0x8] strh r0, [r2, 0x8] movs r1, 0xE0 lsls r1, 4 ands r1, r3 lsrs r1, 9 ldr r0, _08004F4C ands r0, r4 lsls r0, 4 orrs r1, r0 strh r1, [r2, 0xA] lsls r1, r7, 3 ldr r0, _08004F50 adds r3, r1, r0 mov r0, r8 movs r2, 0x16 ldrsh r1, [r0, r2] mov r0, sp ldrb r0, [r0, 0x3] lsls r0, 24 asrs r0, 24 adds r7, r1, r0 cmp r7, 0 bge _08004F1A movs r7, 0 _08004F1A: cmp r7, 0xFF ble _08004F20 movs r7, 0xFF _08004F20: cmp r6, 0 bne _08004F54 add r2, sp, 0x4 ldrh r0, [r2] strh r0, [r3] adds r2, 0x2 ldrh r0, [r2] strh r0, [r3, 0x2] adds r2, 0x2 adds r1, r3, 0x4 ldrh r0, [r2] strh r0, [r1] adds r2, 0x2 ldrh r0, [r2] strh r0, [r1, 0x2] b _08004F86 .align 2, 0 _08004F40: .4byte gUnknown_20266A8 _08004F44: .4byte 0x0000fcff _08004F48: .4byte 0x0000f1ff _08004F4C: .4byte 0x000003ff _08004F50: .4byte gUnknown_20262A8 _08004F54: add r4, sp, 0x4 ldrh r1, [r4] ldrh r0, [r6] ands r0, r1 ldrh r1, [r6, 0x6] orrs r0, r1 strh r0, [r3] adds r4, 0x2 ldrh r1, [r4] ldrh r0, [r6, 0x2] ands r0, r1 ldrh r1, [r6, 0x8] orrs r0, r1 strh r0, [r3, 0x2] adds r4, 0x2 adds r2, r3, 0x4 ldrh r1, [r4] ldrh r0, [r6, 0x4] ands r0, r1 ldrh r1, [r6, 0xA] orrs r0, r1 strh r0, [r2] adds r4, 0x2 ldrh r0, [r4] strh r0, [r2, 0x2] _08004F86: mov r0, sp ldrb r0, [r0, 0x2] cmp r0, 0 beq _08004FB0 ldr r1, _08004FA8 mov r0, sp ldrb r0, [r0, 0x2] lsls r0, 1 adds r1, r0, r1 movs r4, 0 ldrsh r0, [r1, r4] cmp r0, 0 beq _08004FB0 adds r1, r0, 0 ldr r0, _08004FAC ands r1, r0 b _08004FC0 .align 2, 0 _08004FA8: .4byte gUnknown_2025672 _08004FAC: .4byte 0x000003ff _08004FB0: ldrh r1, [r3, 0x4] ldr r2, _08005090 ands r1, r2 mov r6, r8 movs r4, 0x14 ldrsh r0, [r6, r4] adds r1, r0 ands r1, r2 _08004FC0: ldrh r2, [r3, 0x4] movs r0, 0xFC lsls r0, 8 ands r0, r2 orrs r0, r1 strh r0, [r3, 0x4] ldrh r4, [r3, 0x2] ldr r5, _08005094 adds r2, r5, 0 ands r2, r4 ldr r6, _08005098 adds r1, r2, r6 mov r2, r8 movs r6, 0 ldrsh r0, [r2, r6] adds r2, r1, r0 movs r0, 0x40 negs r0, r0 mov r9, r0 cmp r2, r9 blt _08005082 cmp r2, 0xEF bgt _08005082 ands r2, r5 movs r0, 0xFE lsls r0, 8 ands r0, r4 orrs r0, r2 strh r0, [r3, 0x2] ldrh r0, [r3, 0x6] lsls r4, r0, 16 ldr r1, _0800509C adds r5, r1, 0 lsrs r2, r4, 20 ldr r6, _080050A0 adds r1, r2, r6 mov r2, r8 movs r6, 0x2 ldrsh r0, [r2, r6] adds r2, r1, r0 cmp r2, r9 blt _08005082 cmp r2, 0x9F bgt _08005082 movs r0, 0xFF ands r2, r0 ldrh r1, [r3] movs r0, 0xFF lsls r0, 8 ands r0, r1 orrs r0, r2 strh r0, [r3] lsrs r0, r4, 17 movs r1, 0x1 ands r0, r1 cmp r0, 0 bne _08005044 mov r0, r8 ldrb r1, [r0, 0x1E] movs r0, 0xF ands r1, r0 lsls r1, 12 ldrh r0, [r3, 0x4] ands r0, r5 orrs r0, r1 strh r0, [r3, 0x4] _08005044: mov r0, sp ldrb r0, [r0, 0x2] cmp r0, 0 beq _08005068 ldr r1, _080050A4 mov r0, sp ldrb r0, [r0, 0x2] lsls r0, 1 adds r0, r1 movs r2, 0 ldrsh r1, [r0, r2] movs r0, 0xF ands r1, r0 lsls r1, 12 ldrh r0, [r3, 0x4] ands r0, r5 orrs r0, r1 strh r0, [r3, 0x4] _08005068: ldr r0, _080050A8 mov r4, r12 ldr r3, [r4] lsls r2, r3, 3 adds r2, r0 ldr r1, _080050AC lsls r0, r7, 3 adds r0, r1 ldr r1, [r0] str r1, [r2] str r2, [r0] adds r3, 0x1 str r3, [r4] _08005082: add sp, 0xC pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08005090: .4byte 0x000003ff _08005094: .4byte 0x000001ff _08005098: .4byte 0xffffff00 _0800509C: .4byte 0x00000fff _080050A0: .4byte 0xfffffe00 _080050A4: .4byte gUnknown_2025682 _080050A8: .4byte gUnknown_2025EA8 _080050AC: .4byte gUnknown_20256A0 thumb_func_end sub_8004EA8 thumb_func_start AddSprite AddSprite: push {r4-r7,lr} mov r7, r8 push {r7} adds r6, r0, 0 adds r7, r1, 0 mov r8, r2 adds r4, r3, 0 ldr r0, _080050F4 ldr r0, [r0] cmp r0, 0x7F bgt _08005168 lsls r1, r0, 3 ldr r0, _080050F8 adds r5, r1, r0 cmp r7, 0 bge _080050D2 movs r7, 0 _080050D2: cmp r7, 0xFF ble _080050D8 movs r7, 0xFF _080050D8: cmp r4, 0 bne _080050FC ldrh r0, [r6] strh r0, [r5] ldrh r0, [r6, 0x2] strh r0, [r5, 0x2] adds r1, r6, 0x4 adds r2, r5, 0x4 ldrh r0, [r1] strh r0, [r2] ldrh r0, [r1, 0x2] strh r0, [r2, 0x2] b _08005128 .align 2, 0 _080050F4: .4byte gUnknown_20266A8 _080050F8: .4byte gUnknown_20262A8 _080050FC: ldrh r1, [r6] ldrh r0, [r4] ands r0, r1 ldrh r1, [r4, 0x6] orrs r0, r1 strh r0, [r5] ldrh r1, [r6, 0x2] ldrh r0, [r4, 0x2] ands r0, r1 ldrh r1, [r4, 0x8] orrs r0, r1 strh r0, [r5, 0x2] adds r2, r6, 0x4 adds r3, r5, 0x4 ldrh r1, [r2] ldrh r0, [r4, 0x4] ands r0, r1 ldrh r1, [r4, 0xA] orrs r0, r1 strh r0, [r3] ldrh r0, [r2, 0x2] strh r0, [r3, 0x2] _08005128: ldrh r4, [r5, 0x6] lsrs r4, 4 adds r0, r4, 0 movs r1, 0 bl nullsub_3 movs r0, 0xFF ands r4, r0 ldrh r1, [r5] movs r0, 0xFF lsls r0, 8 ands r0, r1 orrs r0, r4 strh r0, [r5] mov r0, r8 cmp r0, 0 beq _0800514E bl sub_80052BC _0800514E: ldr r0, _08005174 ldr r4, _08005178 ldr r3, [r4] lsls r2, r3, 3 adds r2, r0 ldr r1, _0800517C lsls r0, r7, 3 adds r0, r1 ldr r1, [r0] str r1, [r2] str r2, [r0] adds r3, 0x1 str r3, [r4] _08005168: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08005174: .4byte gUnknown_2025EA8 _08005178: .4byte gUnknown_20266A8 _0800517C: .4byte gUnknown_20256A0 thumb_func_end AddSprite thumb_func_start sub_8005180 sub_8005180: push {lr} ldr r2, _080051A8 adds r1, r2, 0 cmp r2, 0 beq _0800519E _0800518A: ldr r0, [r1, 0x4] cmp r0, 0 beq _08005198 cmp r2, 0 beq _08005196 str r1, [r2] _08005196: adds r2, r1, 0 _08005198: ldr r1, [r1] cmp r1, 0 bne _0800518A _0800519E: movs r0, 0 str r0, [r2] pop {r0} bx r0 .align 2, 0 _080051A8: .4byte gUnknown_20256A0 thumb_func_end sub_8005180 thumb_func_start CopySpritesToOam CopySpritesToOam: push {r4-r6,lr} ldr r3, _08005204 ldr r2, _08005208 movs r4, 0 ldr r6, _0800520C cmp r3, 0 beq _080051E0 ldr r5, _08005210 _080051BC: ldr r1, [r3, 0x4] cmp r1, 0 beq _080051D6 subs r2, 0x4 ldrh r0, [r1, 0x4] strh r0, [r2] subs r2, 0x2 ldrh r0, [r1, 0x2] strh r0, [r2] subs r2, 0x2 ldrh r0, [r1] strh r0, [r2] adds r4, 0x1 _080051D6: ldr r3, [r3] cmp r3, 0 beq _080051E0 cmp r2, r5 bhi _080051BC _080051E0: ldr r1, _08005210 cmp r2, r1 bls _080051FA movs r0, 0 movs r3, 0xA0 _080051EA: subs r2, 0x4 strh r0, [r2] subs r2, 0x2 strh r0, [r2] subs r2, 0x2 strh r3, [r2] cmp r2, r1 bhi _080051EA _080051FA: strh r4, [r6] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08005204: .4byte gUnknown_20256A0 _08005208: .4byte 0x07000400 _0800520C: .4byte gUnknown_2025670 _08005210: .4byte 0x07000008 thumb_func_end CopySpritesToOam thumb_func_start SetSavingIconCoords SetSavingIconCoords: push {lr} adds r3, r0, 0 cmp r3, 0 bne _0800522C ldr r1, _08005228 strh r3, [r1] movs r0, 0xA0 strh r0, [r1, 0x2] b _0800523C .align 2, 0 _08005228: .4byte gUnknown_2025694 _0800522C: ldr r1, _08005240 ldrh r0, [r3] movs r2, 0 strh r0, [r1] ldrh r0, [r3, 0x2] strh r0, [r1, 0x2] ldr r0, _08005244 str r2, [r0] _0800523C: pop {r0} bx r0 .align 2, 0 _08005240: .4byte gUnknown_2025694 _08005244: .4byte gUnknown_2025698 thumb_func_end SetSavingIconCoords thumb_func_start BlinkSavingIcon BlinkSavingIcon: push {r4,lr} movs r2, 0xE0 lsls r2, 19 ldr r0, _08005280 ldr r1, [r0] adds r3, r1, 0 adds r1, 0x1 str r1, [r0] movs r0, 0x10 ands r3, r0 cmp r3, 0 beq _08005288 movs r0, 0xA0 strh r0, [r2] adds r2, 0x2 movs r1, 0x80 lsls r1, 7 adds r0, r1, 0 strh r0, [r2] adds r2, 0x2 ldr r4, _08005284 adds r0, r4, 0 strh r0, [r2] adds r2, 0x2 movs r0, 0 strh r0, [r2] b _080052A8 .align 2, 0 _08005280: .4byte gUnknown_2025698 _08005284: .4byte 0x0000f3fc _08005288: ldr r1, _080052B0 ldrh r0, [r1, 0x2] strh r0, [r2] ldr r2, _080052B4 movs r4, 0x80 lsls r4, 7 adds r0, r4, 0 ldrh r1, [r1] adds r0, r1 strh r0, [r2] adds r2, 0x2 ldr r1, _080052B8 adds r0, r1, 0 strh r0, [r2] adds r2, 0x2 strh r3, [r2] _080052A8: pop {r4} pop {r0} bx r0 .align 2, 0 _080052B0: .4byte gUnknown_2025694 _080052B4: .4byte 0x07000002 _080052B8: .4byte 0x0000f3fc thumb_func_end BlinkSavingIcon thumb_func_start sub_80052BC sub_80052BC: push {r4-r6,lr} adds r3, r0, 0 ldr r0, [r3, 0x4] cmp r0, 0 beq _080052F2 ldr r5, _080052F8 ldr r6, _080052FC ldr r4, _08005300 _080052CC: ldr r2, [r5] cmp r2, r6 bcs _080052F2 ldr r0, [r3, 0x4] str r0, [r2] ldr r0, [r3] str r0, [r2, 0x4] ldr r1, [r4] str r1, [r2, 0x8] ldr r0, [r3, 0x4] adds r1, r0 str r1, [r4] adds r0, r2, 0 adds r0, 0xC str r0, [r5] adds r3, 0x8 ldr r0, [r3, 0x4] cmp r0, 0 bne _080052CC _080052F2: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080052F8: .4byte gUnknown_203B074 _080052FC: .4byte gUnknown_2026E30 _08005300: .4byte gUnknown_2026E30 thumb_func_end sub_80052BC thumb_func_start sub_8005304 sub_8005304: push {r4,lr} ldr r4, _0800530C b _0800532A .align 2, 0 _0800530C: .4byte gUnknown_20266B0 _08005310: ldr r1, [r4, 0x4] cmp r1, 0 beq _08005320 ldr r0, [r4, 0x8] ldr r2, [r4] bl CpuCopy b _08005328 _08005320: ldr r0, [r4, 0x8] ldr r1, [r4] bl CpuClear _08005328: adds r4, 0xC _0800532A: ldr r0, _08005338 ldr r0, [r0] cmp r4, r0 bcc _08005310 pop {r4} pop {r0} bx r0 .align 2, 0 _08005338: .4byte gUnknown_203B074 thumb_func_end sub_8005304 thumb_func_start sub_800533C sub_800533C: push {r4-r7,lr} mov r7, r8 push {r7} mov r8, r1 adds r5, r2, 0 adds r7, r3, 0 ldr r1, [sp, 0x18] lsls r1, 24 lsrs r6, r1, 24 movs r2, 0x18 ldrsh r1, [r5, r2] lsls r1, 2 adds r1, r0 ldr r4, [r1] ldr r1, _08005368 movs r2, 0x14 ldrsh r0, [r5, r2] lsls r0, 5 ldr r2, _0800536C adds r0, r2 str r0, [r1] b _0800538E .align 2, 0 _08005368: .4byte gUnknown_2026E30 _0800536C: .4byte 0x06010000 _08005370: cmp r6, 0 beq _08005382 movs r1, 0 ldrsh r0, [r4, r1] cmp r0, 0 blt _08005382 lsls r0, 2 add r0, r8 ldr r2, [r0] _08005382: adds r0, r4, 0 adds r1, r5, 0 adds r3, r7, 0 bl sub_8004EA8 adds r4, 0xA _0800538E: movs r2, 0 ldrh r1, [r4] ldr r0, _080053A8 cmp r1, r0 bne _08005370 ldrh r0, [r4, 0x2] cmp r0, r1 bne _08005370 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080053A8: .4byte 0x0000ffff thumb_func_end sub_800533C thumb_func_start sub_80053AC sub_80053AC: push {r4-r6,lr} sub sp, 0xC ldr r5, [sp, 0x1C] ldr r6, [sp, 0x20] ldr r4, [sp, 0x24] lsls r4, 24 lsrs r4, 24 ldr r1, [r1, 0x4] str r5, [sp] str r6, [sp, 0x4] str r4, [sp, 0x8] bl sub_80053D0 add sp, 0xC pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_80053AC thumb_func_start sub_80053D0 sub_80053D0: push {r4-r7,lr} adds r4, r0, 0 adds r5, r1, 0 adds r6, r2, 0 adds r7, r3, 0 ldr r0, [sp, 0x1C] lsls r0, 24 movs r2, 0 movs r3, 0x80 lsls r3, 8 strh r3, [r4] cmp r0, 0 beq _080053F6 movs r0, 0x80 lsls r0, 5 adds r1, r0, 0 adds r0, r3, 0 orrs r0, r1 strh r0, [r4] _080053F6: strh r2, [r4, 0x2] ldr r0, [sp, 0x18] strh r0, [r4, 0x4] strh r2, [r4, 0xC] strh r2, [r4, 0xE] ldr r0, [sp, 0x14] strh r0, [r4, 0x1C] ldr r0, _08005438 strh r0, [r4, 0x20] movs r0, 0x1 negs r0, r0 strh r0, [r4, 0x22] str r2, [r4, 0x14] str r2, [r4, 0x18] strh r2, [r4, 0x6] ldr r1, [r5, 0x4] lsls r0, r6, 2 adds r0, r1 ldr r1, [r0] lsls r0, r7, 2 adds r0, r1 ldr r0, [r0] str r0, [r4, 0x28] str r0, [r4, 0x2C] ldr r0, [r5] str r0, [r4, 0x34] ldr r0, [r5, 0xC] str r0, [r4, 0x38] ldr r0, [r5, 0x10] str r0, [r4, 0x30] pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08005438: .4byte 0x0000ffff thumb_func_end sub_80053D0 thumb_func_start sub_800543C sub_800543C: push {r4,r5,lr} sub sp, 0x8 ldr r5, [sp, 0x14] ldr r4, [sp, 0x18] lsls r4, 24 lsrs r4, 24 ldr r1, [r1, 0x4] str r5, [sp] str r4, [sp, 0x4] bl sub_800545C add sp, 0x8 pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_800543C thumb_func_start sub_800545C sub_800545C: push {r4-r7,lr} adds r4, r0, 0 adds r6, r1, 0 adds r7, r2, 0 adds r5, r3, 0 ldr r0, [sp, 0x18] lsls r0, 24 movs r2, 0 movs r3, 0x80 lsls r3, 8 strh r3, [r4] cmp r0, 0 beq _08005482 movs r0, 0x80 lsls r0, 5 adds r1, r0, 0 adds r0, r3, 0 orrs r0, r1 strh r0, [r4] _08005482: strh r2, [r4, 0x2] ldr r0, [sp, 0x14] strh r0, [r4, 0x4] strh r2, [r4, 0xC] strh r2, [r4, 0xE] strh r5, [r4, 0x1C] ldr r0, _080054B8 strh r0, [r4, 0x20] movs r0, 0x1 negs r0, r0 strh r0, [r4, 0x22] str r2, [r4, 0x14] str r2, [r4, 0x18] strh r2, [r4, 0x6] ldr r1, [r6, 0x4] lsls r0, r7, 2 adds r0, r1 ldr r0, [r0] ldr r0, [r0] str r0, [r4, 0x28] str r0, [r4, 0x2C] ldr r0, [r6] str r0, [r4, 0x34] str r2, [r4, 0x30] pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080054B8: .4byte 0x0000ffff thumb_func_end sub_800545C thumb_func_start sub_80054BC sub_80054BC: push {r4,lr} adds r4, r0, 0 ldrh r1, [r4] movs r0, 0x80 lsls r0, 6 ands r0, r1 cmp r0, 0 beq _080054D0 movs r0, 0 b _080054D2 _080054D0: lsrs r0, r1, 15 _080054D2: cmp r0, 0 beq _08005586 movs r1, 0x20 ldrsh r0, [r4, r1] ldrh r3, [r4] cmp r0, 0 blt _08005524 movs r0, 0x80 lsls r0, 7 ands r0, r3 cmp r0, 0 bne _08005586 ldrh r2, [r4, 0x6] movs r0, 0x6 ldrsh r1, [r4, r0] ldr r0, _0800550C cmp r1, r0 bgt _080054FA adds r0, r2, 0x1 strh r0, [r4, 0x6] _080054FA: ldrh r1, [r4, 0x4] movs r2, 0x4 ldrsh r0, [r4, r2] cmp r0, 0 beq _08005510 subs r0, r1, 0x1 strh r0, [r4, 0x4] b _08005586 .align 2, 0 _0800550C: .4byte 0x0000752f _08005510: ldrh r1, [r4, 0x2] movs r2, 0x2 ldrsh r0, [r4, r2] cmp r0, 0 beq _08005524 subs r0, r1, 0x1 strh r0, [r4, 0x2] lsls r0, 16 cmp r0, 0 bgt _08005586 _08005524: ldr r0, [r4, 0x2C] ldrb r0, [r0] cmp r0, 0 bne _08005550 movs r0, 0x80 lsls r0, 5 ands r0, r3 cmp r0, 0 bne _08005542 movs r1, 0x80 lsls r1, 6 adds r0, r1, 0 orrs r0, r3 strh r0, [r4] b _08005586 _08005542: ldr r0, [r4, 0x28] str r0, [r4, 0x2C] bl Random movs r1, 0x1 ands r0, r1 strh r0, [r4, 0x4] _08005550: ldrh r1, [r4] movs r2, 0x80 lsls r2, 4 adds r0, r2, 0 orrs r0, r1 strh r0, [r4] ldr r1, [r4, 0x2C] ldrb r0, [r1] strh r0, [r4, 0x2] ldrh r0, [r1, 0x2] strh r0, [r4, 0x20] ldrh r0, [r1, 0x4] strh r0, [r4, 0xC] ldrh r0, [r1, 0x6] strh r0, [r4, 0xE] ldrh r0, [r1, 0x8] strh r0, [r4, 0x10] ldrh r0, [r1, 0xA] strh r0, [r4, 0x12] ldrb r0, [r1, 0x1] str r0, [r4, 0x14] ldrb r2, [r1, 0x1] ldr r0, [r4, 0x18] orrs r0, r2 str r0, [r4, 0x18] adds r1, 0xC str r1, [r4, 0x2C] _08005586: pop {r4} pop {r0} bx r0 thumb_func_end sub_80054BC thumb_func_start sub_800558C sub_800558C: push {r4-r7,lr} sub sp, 0x4 adds r5, r0, 0 adds r4, r1, 0 adds r6, r2, 0 adds r7, r3, 0 ldrh r0, [r5] lsrs r0, 15 cmp r0, 0 beq _08005602 movs r1, 0x20 ldrsh r0, [r5, r1] cmp r0, 0 bge _080055AE adds r0, r5, 0 bl sub_80054BC _080055AE: ldrh r0, [r5] lsrs r0, 15 cmp r0, 0 beq _08005602 ldrh r0, [r5, 0xC] adds r0, r4 strh r0, [r5, 0x8] ldrh r0, [r5, 0xE] adds r0, r6 strh r0, [r5, 0xA] adds r1, r5, 0 adds r1, 0x26 ldr r0, [sp, 0x18] strb r0, [r1] strh r7, [r5, 0x1E] ldr r0, [r5, 0x34] ldr r1, [r5, 0x38] adds r2, r5, 0 adds r2, 0x8 movs r3, 0x22 ldrsh r4, [r5, r3] movs r6, 0x20 ldrsh r3, [r5, r6] eors r4, r3 negs r3, r4 orrs r3, r4 lsrs r3, 31 str r3, [sp] ldr r3, [sp, 0x1C] bl sub_800533C ldrh r0, [r5, 0x20] strh r0, [r5, 0x22] ldrh r1, [r5] movs r0, 0x80 lsls r0, 4 ands r0, r1 cmp r0, 0 beq _08005602 ldr r0, _0800560C ands r0, r1 strh r0, [r5] _08005602: add sp, 0x4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0800560C: .4byte 0x0000f7ff thumb_func_end sub_800558C thumb_func_start sub_8005610 sub_8005610: push {lr} ldr r0, [r0, 0x4] bl sub_800561C pop {r0} bx r0 thumb_func_end sub_8005610 thumb_func_start sub_800561C sub_800561C: push {r4-r7,lr} adds r5, r0, 0 adds r0, r1, 0 adds r7, r2, 0 adds r6, r3, 0 ldr r1, [r5, 0x14] cmp r1, 0 beq _0800563A lsls r0, 5 ldr r2, _08005664 adds r0, r2 ldr r2, [r5, 0x1C] lsls r2, 5 bl CpuCopy _0800563A: ldr r0, [r5, 0x18] cmp r0, 0 beq _0800565C movs r4, 0 _08005642: movs r1, 0xF0 lsls r1, 1 adds r0, r4, r1 lsls r2, r4, 2 ldr r1, [r5, 0x18] adds r1, r2 adds r2, r7, 0 adds r3, r6, 0 bl SetBGPaletteBufferColorRGB adds r4, 0x1 cmp r4, 0xF ble _08005642 _0800565C: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08005664: .4byte 0x06010000 thumb_func_end sub_800561C thumb_func_start sub_8005668 sub_8005668: push {lr} ldr r0, [r0, 0x4] bl sub_8005674 pop {r1} bx r1 thumb_func_end sub_8005668 thumb_func_start sub_8005674 sub_8005674: push {r4,lr} adds r4, r0, 0 ldr r3, [r4, 0x14] cmp r3, 0 beq _0800568E lsls r0, r1, 5 ldr r1, _08005698 adds r0, r1 ldr r2, [r4, 0x1C] lsls r2, 5 adds r1, r3, 0 bl CpuCopy _0800568E: ldr r0, [r4, 0x18] pop {r4} pop {r1} bx r1 .align 2, 0 _08005698: .4byte 0x06010000 thumb_func_end sub_8005674 thumb_func_start sub_800569C sub_800569C: push {r4-r6,lr} adds r3, r0, 0 adds r4, r1, 0 lsls r2, 24 lsrs r2, 24 movs r0, 0 strh r0, [r3] strh r0, [r3, 0x2] ldrh r0, [r4] lsrs r0, 15 cmp r0, 0 beq _080056F8 cmp r2, 0x3 bhi _080056F8 ldr r1, [r4, 0x30] cmp r1, 0 beq _080056F2 movs r5, 0x20 ldrsh r0, [r4, r5] lsls r0, 4 adds r5, r1, r0 lsls r0, r2, 2 adds r2, r5, r0 movs r6, 0 ldrsh r1, [r2, r6] cmp r1, 0x63 bne _080056E0 movs r6, 0x2 ldrsh r1, [r2, r6] cmp r1, 0x63 bne _080056E0 strh r1, [r3] strh r1, [r3, 0x2] b _080056F8 _080056E0: adds r0, r5, r0 ldrh r1, [r0] ldrh r2, [r4, 0xC] adds r1, r2 strh r1, [r3] ldrh r0, [r0, 0x2] ldrh r4, [r4, 0xE] adds r0, r4 b _080056F6 _080056F2: movs r0, 0x63 strh r0, [r3] _080056F6: strh r0, [r3, 0x2] _080056F8: pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_800569C thumb_func_start sub_8005700 sub_8005700: push {r4,r5,lr} adds r3, r0, 0 ldrh r0, [r1] lsrs r0, 15 cmp r0, 0 beq _0800575C ldr r2, [r1, 0x30] cmp r2, 0 beq _0800574C movs r4, 0x20 ldrsh r0, [r1, r4] lsls r0, 4 adds r2, r0 adds r4, r2, 0 adds r4, 0xC _0800571E: movs r5, 0 ldrsh r0, [r2, r5] cmp r0, 0x63 bne _08005732 movs r5, 0x2 ldrsh r0, [r2, r5] cmp r0, 0x63 bne _08005732 strh r0, [r3] b _08005740 _08005732: ldrh r0, [r2] ldrh r5, [r1, 0xC] adds r0, r5 strh r0, [r3] ldrh r0, [r2, 0x2] ldrh r5, [r1, 0xE] adds r0, r5 _08005740: strh r0, [r3, 0x2] adds r3, 0x4 adds r2, 0x4 cmp r2, r4 ble _0800571E b _0800575C _0800574C: movs r1, 0x63 movs r0, 0x3 _08005750: strh r1, [r3] strh r1, [r3, 0x2] adds r3, 0x4 subs r0, 0x1 cmp r0, 0 bge _08005750 _0800575C: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_8005700 thumb_func_start sub_8005764 sub_8005764: push {lr} ldr r1, [r1, 0x4] bl sub_8005770 pop {r0} bx r0 thumb_func_end sub_8005764 thumb_func_start sub_8005770 sub_8005770: push {r4-r7,lr} mov r7, r8 push {r7} mov r8, r2 adds r7, r3, 0 movs r5, 0 adds r0, 0x10 lsls r6, r0, 4 adds r4, r1, 0 _08005782: adds r0, r6, r5 adds r1, r4, 0 mov r2, r8 adds r3, r7, 0 bl SetBGPaletteBufferColorRGB adds r4, 0x4 adds r5, 0x1 cmp r5, 0xF ble _08005782 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8005770 thumb_func_start nullsub_7 nullsub_7: bx lr thumb_func_end nullsub_7 thumb_func_start nullsub_8 nullsub_8: bx lr thumb_func_end nullsub_8 thumb_func_start nullsub_9 nullsub_9: bx lr thumb_func_end nullsub_9 thumb_func_start nullsub_10 nullsub_10: bx lr thumb_func_end nullsub_10 thumb_func_start nullsub_144 nullsub_144: bx lr thumb_func_end nullsub_144 thumb_func_start nullsub_11 nullsub_11: bx lr thumb_func_end nullsub_11 thumb_func_start nullsub_12 nullsub_12: bx lr thumb_func_end nullsub_12 thumb_func_start nullsub_13 nullsub_13: bx lr thumb_func_end nullsub_13 thumb_func_start nullsub_145 nullsub_145: bx lr thumb_func_end nullsub_145 thumb_func_start nullsub_14 nullsub_14: bx lr thumb_func_end nullsub_14 thumb_func_start nullsub_146 nullsub_146: bx lr thumb_func_end nullsub_146 thumb_func_start nullsub_147 nullsub_147: bx lr thumb_func_end nullsub_147 thumb_func_start nullsub_148 nullsub_148: bx lr thumb_func_end nullsub_148 thumb_func_start nullsub_149 nullsub_149: bx lr thumb_func_end nullsub_149 thumb_func_start sub_80057D8 sub_80057D8: movs r0, 0 bx lr thumb_func_end sub_80057D8 thumb_func_start sub_80057DC sub_80057DC: movs r0, 0 bx lr thumb_func_end sub_80057DC thumb_func_start nullsub_150 nullsub_150: bx lr thumb_func_end nullsub_150 thumb_func_start nullsub_151 nullsub_151: bx lr thumb_func_end nullsub_151 thumb_func_start sub_80057E8 sub_80057E8: ldr r1, _08005814 movs r0, 0x1 strb r0, [r1] ldr r0, _08005818 movs r2, 0 str r2, [r0] ldr r1, _0800581C movs r0, 0x1 str r0, [r1] ldr r0, _08005820 str r2, [r0] ldr r0, _08005824 str r2, [r0] ldr r0, _08005828 strb r2, [r0] ldr r1, _0800582C ldr r3, _08005830 adds r0, r3, 0 strh r0, [r1] ldr r0, _08005834 str r2, [r0] bx lr .align 2, 0 _08005814: .4byte gUnknown_2026E4C _08005818: .4byte gUnknown_2026E54 _0800581C: .4byte gUnknown_2026E50 _08005820: .4byte gUnknown_2026E58 _08005824: .4byte gUnknown_2026E3C _08005828: .4byte gUnknown_2026E38 _0800582C: .4byte gUnknown_2026E4E _08005830: .4byte 0x0000060c _08005834: .4byte gUnknown_203B078 thumb_func_end sub_80057E8 thumb_func_start sub_8005838 sub_8005838: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x18 adds r5, r0, 0 lsls r1, 24 lsrs r1, 24 ldr r0, _08005880 ldrb r0, [r0] cmp r0, 0 bne _08005854 movs r1, 0 _08005854: ldr r0, _08005884 ldr r0, [r0] ldr r3, _08005888 cmp r0, 0 bne _08005860 ldr r3, _0800588C _08005860: ldr r0, _08005890 ldr r2, [r0] cmp r2, 0 bne _0800586A ldr r2, _08005894 _0800586A: ldr r0, _08005898 str r3, [r0] cmp r1, 0x5 bls _08005876 bl _08006094 _08005876: lsls r0, r1, 2 ldr r1, _0800589C adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08005880: .4byte gUnknown_2026E4C _08005884: .4byte gUnknown_2026E54 _08005888: .4byte gUnknown_20270E8 _0800588C: .4byte gUnknown_2026E60 _08005890: .4byte gUnknown_203B078 _08005894: .4byte gUnknown_80B83EA _08005898: .4byte gUnknown_2026E58 _0800589C: .4byte _080058A0 .align 2, 0 _080058A0: .4byte _080058B8 .4byte _08005984 .4byte _08005A98 .4byte _08005BAC .4byte _08005D46 .4byte _08005E58 _080058B8: movs r1, 0 movs r7, 0x9 _080058BC: ldrh r0, [r2] strh r0, [r3] adds r2, 0x2 adds r3, 0x2 strh r1, [r3] adds r3, 0x2 ldrh r0, [r2] strh r0, [r3] adds r2, 0x2 adds r3, 0x2 strh r1, [r3] adds r3, 0x2 ldrh r0, [r2] strh r0, [r3] adds r2, 0x2 adds r3, 0x2 strh r1, [r3] adds r3, 0x2 ldrh r0, [r2] strh r0, [r3] adds r2, 0x2 adds r3, 0x2 strh r1, [r3] adds r3, 0x2 ldrh r0, [r2] strh r0, [r3] adds r2, 0x2 adds r3, 0x2 strh r1, [r3] adds r3, 0x2 ldrh r0, [r2] strh r0, [r3] adds r2, 0x2 adds r3, 0x2 strh r1, [r3] adds r3, 0x2 ldrh r0, [r2] strh r0, [r3] adds r2, 0x2 adds r3, 0x2 strh r1, [r3] adds r3, 0x2 ldrh r0, [r2] strh r0, [r3] adds r2, 0x2 adds r3, 0x2 strh r1, [r3] adds r3, 0x2 ldrh r0, [r2] strh r0, [r3] adds r2, 0x2 adds r3, 0x2 strh r1, [r3] adds r3, 0x2 ldrh r0, [r2] strh r0, [r3] adds r2, 0x2 adds r3, 0x2 strh r1, [r3] adds r3, 0x2 ldrh r0, [r2] strh r0, [r3] adds r2, 0x2 adds r3, 0x2 strh r1, [r3] adds r3, 0x2 ldrh r0, [r2] strh r0, [r3] adds r2, 0x2 adds r3, 0x2 strh r1, [r3] adds r3, 0x2 ldrh r0, [r2] strh r0, [r3] adds r2, 0x2 adds r3, 0x2 strh r1, [r3] adds r3, 0x2 ldrh r0, [r2] strh r0, [r3] adds r2, 0x2 adds r3, 0x2 strh r1, [r3] adds r3, 0x2 ldrh r0, [r2] strh r0, [r3] adds r2, 0x2 adds r3, 0x2 strh r1, [r3] adds r3, 0x2 ldrh r0, [r2] strh r0, [r3] adds r2, 0x2 adds r3, 0x2 strh r1, [r3] adds r3, 0x2 subs r7, 0x1 cmp r7, 0 bge _080058BC b _08006094 _08005984: ldr r1, _08005A94 movs r7, 0x9 _08005988: ldrh r0, [r2] strh r0, [r3] adds r2, 0x2 adds r3, 0x2 ldrh r0, [r1] strh r0, [r3] adds r1, 0x2 adds r3, 0x2 ldrh r0, [r2] strh r0, [r3] adds r2, 0x2 adds r3, 0x2 ldrh r0, [r1] strh r0, [r3] adds r1, 0x2 adds r3, 0x2 ldrh r0, [r2] strh r0, [r3] adds r2, 0x2 adds r3, 0x2 ldrh r0, [r1] strh r0, [r3] adds r1, 0x2 adds r3, 0x2 ldrh r0, [r2] strh r0, [r3] adds r2, 0x2 adds r3, 0x2 ldrh r0, [r1] strh r0, [r3] adds r1, 0x2 adds r3, 0x2 ldrh r0, [r2] strh r0, [r3] adds r2, 0x2 adds r3, 0x2 ldrh r0, [r1] strh r0, [r3] adds r1, 0x2 adds r3, 0x2 ldrh r0, [r2] strh r0, [r3] adds r2, 0x2 adds r3, 0x2 ldrh r0, [r1] strh r0, [r3] adds r1, 0x2 adds r3, 0x2 ldrh r0, [r2] strh r0, [r3] adds r2, 0x2 adds r3, 0x2 ldrh r0, [r1] strh r0, [r3] adds r1, 0x2 adds r3, 0x2 ldrh r0, [r2] strh r0, [r3] adds r2, 0x2 adds r3, 0x2 ldrh r0, [r1] strh r0, [r3] adds r1, 0x2 adds r3, 0x2 ldrh r0, [r2] strh r0, [r3] adds r2, 0x2 adds r3, 0x2 ldrh r0, [r1] strh r0, [r3] adds r1, 0x2 adds r3, 0x2 ldrh r0, [r2] strh r0, [r3] adds r2, 0x2 adds r3, 0x2 ldrh r0, [r1] strh r0, [r3] adds r1, 0x2 adds r3, 0x2 ldrh r0, [r2] strh r0, [r3] adds r2, 0x2 adds r3, 0x2 ldrh r0, [r1] strh r0, [r3] adds r1, 0x2 adds r3, 0x2 ldrh r0, [r2] strh r0, [r3] adds r2, 0x2 adds r3, 0x2 ldrh r0, [r1] strh r0, [r3] adds r1, 0x2 adds r3, 0x2 ldrh r0, [r2] strh r0, [r3] adds r2, 0x2 adds r3, 0x2 ldrh r0, [r1] strh r0, [r3] adds r1, 0x2 adds r3, 0x2 ldrh r0, [r2] strh r0, [r3] adds r2, 0x2 adds r3, 0x2 ldrh r0, [r1] strh r0, [r3] adds r1, 0x2 adds r3, 0x2 ldrh r0, [r2] strh r0, [r3] adds r2, 0x2 adds r3, 0x2 ldrh r0, [r1] strh r0, [r3] adds r1, 0x2 adds r3, 0x2 ldrh r0, [r2] strh r0, [r3] adds r2, 0x2 adds r3, 0x2 ldrh r0, [r1] strh r0, [r3] adds r1, 0x2 adds r3, 0x2 subs r7, 0x1 cmp r7, 0 blt _08005A90 b _08005988 _08005A90: b _08006094 .align 2, 0 _08005A94: .4byte gUnknown_80B816A _08005A98: ldr r1, _08005BA8 movs r7, 0x9 _08005A9C: ldrh r0, [r2] strh r0, [r3] adds r2, 0x2 adds r3, 0x2 ldrh r0, [r1] strh r0, [r3] adds r1, 0x2 adds r3, 0x2 ldrh r0, [r2] strh r0, [r3] adds r2, 0x2 adds r3, 0x2 ldrh r0, [r1] strh r0, [r3] adds r1, 0x2 adds r3, 0x2 ldrh r0, [r2] strh r0, [r3] adds r2, 0x2 adds r3, 0x2 ldrh r0, [r1] strh r0, [r3] adds r1, 0x2 adds r3, 0x2 ldrh r0, [r2] strh r0, [r3] adds r2, 0x2 adds r3, 0x2 ldrh r0, [r1] strh r0, [r3] adds r1, 0x2 adds r3, 0x2 ldrh r0, [r2] strh r0, [r3] adds r2, 0x2 adds r3, 0x2 ldrh r0, [r1] strh r0, [r3] adds r1, 0x2 adds r3, 0x2 ldrh r0, [r2] strh r0, [r3] adds r2, 0x2 adds r3, 0x2 ldrh r0, [r1] strh r0, [r3] adds r1, 0x2 adds r3, 0x2 ldrh r0, [r2] strh r0, [r3] adds r2, 0x2 adds r3, 0x2 ldrh r0, [r1] strh r0, [r3] adds r1, 0x2 adds r3, 0x2 ldrh r0, [r2] strh r0, [r3] adds r2, 0x2 adds r3, 0x2 ldrh r0, [r1] strh r0, [r3] adds r1, 0x2 adds r3, 0x2 ldrh r0, [r2] strh r0, [r3] adds r2, 0x2 adds r3, 0x2 ldrh r0, [r1] strh r0, [r3] adds r1, 0x2 adds r3, 0x2 ldrh r0, [r2] strh r0, [r3] adds r2, 0x2 adds r3, 0x2 ldrh r0, [r1] strh r0, [r3] adds r1, 0x2 adds r3, 0x2 ldrh r0, [r2] strh r0, [r3] adds r2, 0x2 adds r3, 0x2 ldrh r0, [r1] strh r0, [r3] adds r1, 0x2 adds r3, 0x2 ldrh r0, [r2] strh r0, [r3] adds r2, 0x2 adds r3, 0x2 ldrh r0, [r1] strh r0, [r3] adds r1, 0x2 adds r3, 0x2 ldrh r0, [r2] strh r0, [r3] adds r2, 0x2 adds r3, 0x2 ldrh r0, [r1] strh r0, [r3] adds r1, 0x2 adds r3, 0x2 ldrh r0, [r2] strh r0, [r3] adds r2, 0x2 adds r3, 0x2 ldrh r0, [r1] strh r0, [r3] adds r1, 0x2 adds r3, 0x2 ldrh r0, [r2] strh r0, [r3] adds r2, 0x2 adds r3, 0x2 ldrh r0, [r1] strh r0, [r3] adds r1, 0x2 adds r3, 0x2 ldrh r0, [r2] strh r0, [r3] adds r2, 0x2 adds r3, 0x2 ldrh r0, [r1] strh r0, [r3] adds r1, 0x2 adds r3, 0x2 subs r7, 0x1 cmp r7, 0 blt _08005BA4 b _08005A9C _08005BA4: b _08006094 .align 2, 0 _08005BA8: .4byte gUnknown_80B802A _08005BAC: ldr r0, [r5] mov r10, r0 cmp r0, 0 bge _08005BBA ldr r0, [r5, 0x8] cmp r0, 0 blt _08005BDC _08005BBA: ldr r1, [r5, 0x4] cmp r1, 0 bge _08005BC6 ldr r0, [r5, 0xC] cmp r0, 0 blt _08005BDC _08005BC6: mov r4, r10 cmp r4, 0xEF ble _08005BD2 ldr r0, [r5, 0x8] cmp r0, 0xEF bgt _08005BDC _08005BD2: cmp r1, 0x9F ble _08005CA8 ldr r0, [r5, 0xC] cmp r0, 0x9F ble _08005CA8 _08005BDC: movs r1, 0xF0 movs r7, 0x9 _08005BE0: ldrh r0, [r2] strh r0, [r3] adds r2, 0x2 adds r3, 0x2 strh r1, [r3] adds r3, 0x2 ldrh r0, [r2] strh r0, [r3] adds r2, 0x2 adds r3, 0x2 strh r1, [r3] adds r3, 0x2 ldrh r0, [r2] strh r0, [r3] adds r2, 0x2 adds r3, 0x2 strh r1, [r3] adds r3, 0x2 ldrh r0, [r2] strh r0, [r3] adds r2, 0x2 adds r3, 0x2 strh r1, [r3] adds r3, 0x2 ldrh r0, [r2] strh r0, [r3] adds r2, 0x2 adds r3, 0x2 strh r1, [r3] adds r3, 0x2 ldrh r0, [r2] strh r0, [r3] adds r2, 0x2 adds r3, 0x2 strh r1, [r3] adds r3, 0x2 ldrh r0, [r2] strh r0, [r3] adds r2, 0x2 adds r3, 0x2 strh r1, [r3] adds r3, 0x2 ldrh r0, [r2] strh r0, [r3] adds r2, 0x2 adds r3, 0x2 strh r1, [r3] adds r3, 0x2 ldrh r0, [r2] strh r0, [r3] adds r2, 0x2 adds r3, 0x2 strh r1, [r3] adds r3, 0x2 ldrh r0, [r2] strh r0, [r3] adds r2, 0x2 adds r3, 0x2 strh r1, [r3] adds r3, 0x2 ldrh r0, [r2] strh r0, [r3] adds r2, 0x2 adds r3, 0x2 strh r1, [r3] adds r3, 0x2 ldrh r0, [r2] strh r0, [r3] adds r2, 0x2 adds r3, 0x2 strh r1, [r3] adds r3, 0x2 ldrh r0, [r2] strh r0, [r3] adds r2, 0x2 adds r3, 0x2 strh r1, [r3] adds r3, 0x2 ldrh r0, [r2] strh r0, [r3] adds r2, 0x2 adds r3, 0x2 strh r1, [r3] adds r3, 0x2 ldrh r0, [r2] strh r0, [r3] adds r2, 0x2 adds r3, 0x2 strh r1, [r3] adds r3, 0x2 ldrh r0, [r2] strh r0, [r3] adds r2, 0x2 adds r3, 0x2 strh r1, [r3] adds r3, 0x2 subs r7, 0x1 cmp r7, 0 bge _08005BE0 b _08006094 _08005CA8: movs r7, 0 mov r8, r1 movs r6, 0x80 lsls r6, 1 mov r12, r6 lsls r0, r1, 1 ldr r1, _08005CCC subs r6, r1, r0 mov r9, r10 _08005CBA: cmp r8, r7 ble _08005CD0 ldrh r0, [r2] strh r0, [r3] adds r2, 0x2 adds r3, 0x2 mov r4, r12 strh r4, [r3] b _08005D3A .align 2, 0 _08005CCC: .4byte gUnknown_80B8008 _08005CD0: ldr r1, [r5, 0xC] cmp r1, r7 bgt _08005CE2 ldrh r0, [r2] strh r0, [r3] adds r2, 0x2 adds r3, 0x2 mov r0, r12 b _08005D38 _08005CE2: mov r4, r8 subs r0, r7, r4 cmp r0, 0xF bgt _08005CF0 movs r0, 0 ldrsh r1, [r6, r0] b _08005D00 _08005CF0: subs r0, r1, r7 cmp r0, 0xF bgt _08005D10 lsls r0, 1 ldr r1, _08005D0C adds r0, r1 movs r4, 0 ldrsh r1, [r0, r4] _08005D00: mov r0, r9 adds r4, r0, r1 ldr r0, [r5, 0x8] subs r1, r0, r1 b _08005D14 .align 2, 0 _08005D0C: .4byte gUnknown_80B8008 _08005D10: mov r4, r10 ldr r1, [r5, 0x8] _08005D14: cmp r4, 0 bge _08005D1A movs r4, 0 _08005D1A: cmp r4, 0xEF ble _08005D20 movs r4, 0xEF _08005D20: cmp r1, 0 bgt _08005D26 movs r1, 0x1 _08005D26: cmp r1, 0xF0 ble _08005D2C movs r1, 0xF0 _08005D2C: ldrh r0, [r2] strh r0, [r3] adds r2, 0x2 adds r3, 0x2 lsls r0, r1, 8 orrs r0, r4 _08005D38: strh r0, [r3] _08005D3A: adds r3, 0x2 adds r6, 0x2 adds r7, 0x1 cmp r7, 0x9F ble _08005CBA b _08006094 _08005D46: ldr r1, _08005E54 movs r7, 0xE _08005D4A: ldrh r0, [r2] strh r0, [r3] adds r2, 0x2 adds r3, 0x2 ldrh r0, [r1] strh r0, [r3] adds r1, 0x2 adds r3, 0x2 ldrh r0, [r2] strh r0, [r3] adds r2, 0x2 adds r3, 0x2 ldrh r0, [r1] strh r0, [r3] adds r1, 0x2 adds r3, 0x2 ldrh r0, [r2] strh r0, [r3] adds r2, 0x2 adds r3, 0x2 ldrh r0, [r1] strh r0, [r3] adds r1, 0x2 adds r3, 0x2 ldrh r0, [r2] strh r0, [r3] adds r2, 0x2 adds r3, 0x2 ldrh r0, [r1] strh r0, [r3] adds r1, 0x2 adds r3, 0x2 ldrh r0, [r2] strh r0, [r3] adds r2, 0x2 adds r3, 0x2 ldrh r0, [r1] strh r0, [r3] adds r1, 0x2 adds r3, 0x2 ldrh r0, [r2] strh r0, [r3] adds r2, 0x2 adds r3, 0x2 ldrh r0, [r1] strh r0, [r3] adds r1, 0x2 adds r3, 0x2 ldrh r0, [r2] strh r0, [r3] adds r2, 0x2 adds r3, 0x2 ldrh r0, [r1] strh r0, [r3] adds r1, 0x2 adds r3, 0x2 ldrh r0, [r2] strh r0, [r3] adds r2, 0x2 adds r3, 0x2 ldrh r0, [r1] strh r0, [r3] adds r1, 0x2 adds r3, 0x2 ldrh r0, [r2] strh r0, [r3] adds r2, 0x2 adds r3, 0x2 ldrh r0, [r1] strh r0, [r3] adds r1, 0x2 adds r3, 0x2 ldrh r0, [r2] strh r0, [r3] adds r2, 0x2 adds r3, 0x2 ldrh r0, [r1] strh r0, [r3] adds r1, 0x2 adds r3, 0x2 ldrh r0, [r2] strh r0, [r3] adds r2, 0x2 adds r3, 0x2 ldrh r0, [r1] strh r0, [r3] adds r1, 0x2 adds r3, 0x2 ldrh r0, [r2] strh r0, [r3] adds r2, 0x2 adds r3, 0x2 ldrh r0, [r1] strh r0, [r3] adds r1, 0x2 adds r3, 0x2 ldrh r0, [r2] strh r0, [r3] adds r2, 0x2 adds r3, 0x2 ldrh r0, [r1] strh r0, [r3] adds r1, 0x2 adds r3, 0x2 ldrh r0, [r2] strh r0, [r3] adds r2, 0x2 adds r3, 0x2 ldrh r0, [r1] strh r0, [r3] adds r1, 0x2 adds r3, 0x2 ldrh r0, [r2] strh r0, [r3] adds r2, 0x2 adds r3, 0x2 ldrh r0, [r1] strh r0, [r3] adds r1, 0x2 adds r3, 0x2 ldrh r0, [r2] strh r0, [r3] adds r2, 0x2 adds r3, 0x2 ldrh r0, [r1] strh r0, [r3] adds r1, 0x2 adds r3, 0x2 subs r7, 0x1 cmp r7, 0 blt _08005E52 b _08005D4A _08005E52: b _08006094 .align 2, 0 _08005E54: .4byte gUnknown_80B82AA _08005E58: ldr r4, _08005FF4 ldr r5, _08005FF8 ldr r6, _08005FFC movs r0, 0x80 lsls r0, 1 adds r1, r0, 0 movs r7, 0xE _08005E66: ldrh r0, [r2] strh r0, [r3] adds r2, 0x2 adds r3, 0x2 strh r1, [r3] adds r3, 0x2 ldrh r0, [r2] strh r0, [r3] adds r2, 0x2 adds r3, 0x2 strh r1, [r3] adds r3, 0x2 ldrh r0, [r2] strh r0, [r3] adds r2, 0x2 adds r3, 0x2 strh r1, [r3] adds r3, 0x2 ldrh r0, [r2] strh r0, [r3] adds r2, 0x2 adds r3, 0x2 strh r1, [r3] adds r3, 0x2 ldrh r0, [r2] strh r0, [r3] adds r2, 0x2 adds r3, 0x2 strh r1, [r3] adds r3, 0x2 ldrh r0, [r2] strh r0, [r3] adds r2, 0x2 adds r3, 0x2 strh r1, [r3] adds r3, 0x2 ldrh r0, [r2] strh r0, [r3] adds r2, 0x2 adds r3, 0x2 strh r1, [r3] adds r3, 0x2 ldrh r0, [r2] strh r0, [r3] adds r2, 0x2 adds r3, 0x2 strh r1, [r3] adds r3, 0x2 ldrh r0, [r2] strh r0, [r3] adds r2, 0x2 adds r3, 0x2 strh r1, [r3] adds r3, 0x2 ldrh r0, [r2] strh r0, [r3] adds r2, 0x2 adds r3, 0x2 strh r1, [r3] adds r3, 0x2 ldrh r0, [r2] strh r0, [r3] adds r2, 0x2 adds r3, 0x2 strh r1, [r3] adds r3, 0x2 ldrh r0, [r2] strh r0, [r3] adds r2, 0x2 adds r3, 0x2 strh r1, [r3] adds r3, 0x2 ldrh r0, [r2] strh r0, [r3] adds r2, 0x2 adds r3, 0x2 strh r1, [r3] adds r3, 0x2 ldrh r0, [r2] strh r0, [r3] adds r2, 0x2 adds r3, 0x2 strh r1, [r3] adds r3, 0x2 ldrh r0, [r2] strh r0, [r3] adds r2, 0x2 adds r3, 0x2 strh r1, [r3] adds r3, 0x2 ldrh r0, [r2] strh r0, [r3] adds r2, 0x2 adds r3, 0x2 strh r1, [r3] adds r3, 0x2 subs r7, 0x1 cmp r7, 0 bge _08005E66 ldr r4, [r4] str r4, [sp] ldr r5, [r5] str r5, [sp, 0x4] ldr r6, [r6] str r6, [sp, 0x8] adds r1, r6, 0 cmp r6, 0 bge _08005F40 adds r1, 0xFF _08005F40: asrs r1, 8 adds r1, 0x1 movs r0, 0x80 lsls r0, 3 bl __divsi3 str r0, [sp, 0xC] ldr r0, [sp, 0x4] cmp r0, 0 bge _08005F56 adds r0, 0xFF _08005F56: asrs r4, r0, 8 adds r5, r4, 0 movs r3, 0 lsls r0, r4, 2 adds r7, r0, 0x2 mov r9, r7 _08005F62: adds r0, r3, 0 str r3, [sp, 0x10] bl sub_8009C7C ldr r1, [sp, 0x8] muls r0, r1 ldr r3, [sp, 0x10] cmp r0, 0 bge _08005F76 adds r0, 0xFF _08005F76: asrs r0, 8 ldr r2, [sp, 0x4] adds r1, r2, r0 cmp r1, 0 bge _08005F82 adds r1, 0xFF _08005F82: asrs r1, 8 str r1, [sp, 0x14] ldr r6, [sp, 0x4] subs r0, r6, r0 cmp r0, 0 bge _08005F90 adds r0, 0xFF _08005F90: asrs r0, 8 mov r8, r0 ldr r0, [sp, 0x14] cmp r5, r0 blt _08005FA4 ldr r1, [sp, 0xC] adds r1, r3 mov r10, r1 cmp r4, r8 ble _0800608A _08005FA4: adds r0, r3, 0 str r3, [sp, 0x10] bl sub_8009D04 ldr r2, [sp, 0x8] muls r0, r2 ldr r3, [sp, 0x10] cmp r0, 0 bge _08005FB8 adds r0, 0xFF _08005FB8: asrs r0, 8 ldr r6, [sp] subs r1, r6, r0 cmp r1, 0 bge _08005FC4 adds r1, 0xFF _08005FC4: asrs r1, 8 ldr r2, [sp] adds r0, r2, r0 cmp r0, 0 bge _08005FD0 adds r0, 0xFF _08005FD0: asrs r0, 8 cmp r1, 0 bge _08005FD8 movs r1, 0 _08005FD8: cmp r0, 0 bge _08005FDE movs r0, 0 _08005FDE: cmp r1, 0xEF ble _08005FE4 movs r1, 0x9F _08005FE4: cmp r0, 0xEF ble _08005FEA movs r0, 0x9F _08005FEA: cmp r1, r0 ble _08006000 lsls r2, r1, 8 orrs r2, r0 b _08006004 .align 2, 0 _08005FF4: .4byte gUnknown_2026E40 _08005FF8: .4byte gUnknown_2026E44 _08005FFC: .4byte gUnknown_2026E48 _08006000: lsls r2, r0, 8 orrs r2, r1 _08006004: ldr r6, [sp, 0xC] adds r3, r6 mov r10, r3 ldr r0, [sp, 0x14] cmp r5, r0 bge _0800604E ldr r1, _08006030 mov r12, r1 ldr r3, _08006034 add r3, r9 ldr r1, _08006038 add r1, r9 _0800601C: cmp r5, 0 blt _0800603E cmp r5, 0x9F bgt _0800603E mov r6, r12 ldr r0, [r6] cmp r0, 0 bne _0800603C strh r2, [r1] b _0800603E .align 2, 0 _08006030: .4byte gUnknown_2026E54 _08006034: .4byte gUnknown_20270E8 _08006038: .4byte gUnknown_2026E60 _0800603C: strh r2, [r3] _0800603E: adds r3, 0x4 adds r1, 0x4 movs r0, 0x4 add r9, r0 adds r5, 0x1 ldr r6, [sp, 0x14] cmp r5, r6 blt _0800601C _0800604E: cmp r4, r8 ble _0800608A ldr r6, _08006070 ldr r0, _08006074 adds r3, r7, r0 ldr r0, _08006078 adds r1, r7, r0 _0800605C: cmp r4, 0 blt _0800607E cmp r4, 0x9F bgt _0800607E ldr r0, [r6] cmp r0, 0 bne _0800607C strh r2, [r1] b _0800607E .align 2, 0 _08006070: .4byte gUnknown_2026E54 _08006074: .4byte gUnknown_20270E8 _08006078: .4byte gUnknown_2026E60 _0800607C: strh r2, [r3] _0800607E: subs r3, 0x4 subs r1, 0x4 subs r7, 0x4 subs r4, 0x1 cmp r4, r8 bgt _0800605C _0800608A: mov r3, r10 ldr r0, _080060A4 cmp r3, r0 bgt _08006094 b _08005F62 _08006094: add sp, 0x18 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080060A4: .4byte 0x000003ff thumb_func_end sub_8005838 thumb_func_start sub_80060A8 sub_80060A8: push {lr} ldr r1, _080060D8 ldr r0, _080060DC ldr r0, [r0] str r0, [r1] ldr r2, _080060E0 movs r1, 0 ldr r0, [r2] cmp r0, 0 bne _080060BE movs r1, 0x1 _080060BE: str r1, [r2] ldr r2, _080060E4 movs r1, 0 ldr r0, [r2] cmp r0, 0 bne _080060CC movs r1, 0x1 _080060CC: str r1, [r2] ldr r1, _080060E8 movs r0, 0 strb r0, [r1] pop {r0} bx r0 .align 2, 0 _080060D8: .4byte gUnknown_2026E3C _080060DC: .4byte gUnknown_2026E58 _080060E0: .4byte gUnknown_2026E54 _080060E4: .4byte gUnknown_2026E50 _080060E8: .4byte gUnknown_2026E38 thumb_func_end sub_80060A8 thumb_func_start sub_80060EC sub_80060EC: push {lr} ldr r1, _08006130 ldr r0, _08006134 ldr r0, [r0] str r0, [r1] ldr r2, _08006138 movs r1, 0 ldr r0, [r2] cmp r0, 0 bne _08006102 movs r1, 0x1 _08006102: str r1, [r2] ldr r2, _0800613C movs r1, 0 ldr r0, [r2] cmp r0, 0 bne _08006110 movs r1, 0x1 _08006110: str r1, [r2] ldr r0, _08006140 ldrh r2, [r0] movs r0, 0xF8 lsls r0, 5 ands r0, r2 lsrs r0, 8 movs r1, 0x1F ands r1, r2 bl sub_800CC44 ldr r1, _08006144 movs r0, 0x1 strb r0, [r1] pop {r0} bx r0 .align 2, 0 _08006130: .4byte gUnknown_2026E3C _08006134: .4byte gUnknown_2026E58 _08006138: .4byte gUnknown_2026E54 _0800613C: .4byte gUnknown_2026E50 _08006140: .4byte gUnknown_2026E4E _08006144: .4byte gUnknown_2026E38 thumb_func_end sub_80060EC thumb_func_start SeedRng SeedRng: push {r4,lr} ldr r4, _08006170 ldrb r2, [r0] ldrb r1, [r0, 0x1] muls r2, r1 ldrb r3, [r0, 0x2] ldrb r1, [r0, 0x3] muls r1, r3 ldr r3, _08006174 adds r1, r3 adds r2, r1 ldrb r1, [r0, 0x4] ldrb r0, [r0, 0x5] muls r0, r1 adds r2, r0 str r2, [r4] pop {r4} pop {r0} bx r0 .align 2, 0 _08006170: .4byte gUnknown_203B07C _08006174: .4byte 0x0000d305 thumb_func_end SeedRng thumb_func_start Random16 Random16: ldr r2, _08006188 ldr r1, [r2] ldr r0, _0800618C muls r0, r1 adds r0, 0x1 str r0, [r2] asrs r0, 16 bx lr .align 2, 0 _08006188: .4byte gUnknown_203B07C _0800618C: .4byte 0x5d588b65 thumb_func_end Random16 thumb_func_start Random Random: push {r4,lr} bl Random16 adds r4, r0, 0 lsls r4, 16 asrs r4, 16 bl Random16 lsls r0, 16 asrs r0, 16 lsls r4, 16 orrs r4, r0 adds r0, r4, 0 pop {r4} pop {r1} bx r1 thumb_func_end Random thumb_func_start RandomCapped RandomCapped: push {r4,lr} adds r4, r0, 0 bl Random ldr r1, _080061C8 ands r0, r1 muls r0, r4 asrs r0, 16 ands r0, r1 pop {r4} pop {r1} bx r1 .align 2, 0 _080061C8: .4byte 0x0000ffff thumb_func_end RandomCapped thumb_func_start RandomRange RandomRange: push {r4,r5,lr} adds r5, r0, 0 adds r4, r1, 0 cmp r5, r4 beq _080061EC cmp r5, r4 blt _080061E4 subs r0, r5, r4 bl RandomCapped adds r0, r4 b _080061EC _080061E4: subs r0, r4, r5 bl RandomCapped adds r0, r5 _080061EC: pop {r4,r5} pop {r1} bx r1 thumb_func_end RandomRange thumb_func_start GetRngState GetRngState: ldr r0, _080061FC ldr r0, [r0] bx lr .align 2, 0 _080061FC: .4byte gUnknown_203B07C thumb_func_end GetRngState thumb_func_start ReseedRng ReseedRng: push {r4,lr} ldr r4, _08006214 str r0, [r4] bl Random str r0, [r4] pop {r4} pop {r0} bx r0 .align 2, 0 _08006214: .4byte gUnknown_203B07C thumb_func_end ReseedRng 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 sub_800A9EC ldr r4, _08006300 str r0, [r4] ldr r0, _08006304 adds r1, r5, 0 bl sub_800A9EC 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 sub_800743C sub_800743C: 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 sub_800743C 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 sub_800A9EC 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 sub_800AA14 ldr r0, _080097A4 adds r1, r4, 0 bl sub_800A9EC 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 sub_800AA14 bl sub_80097B0 ldr r0, _080097AC adds r1, r4, 0 bl sub_800A9EC 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 sub_800AA14 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 sub_800A9EC 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 sub_800AA14 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 thumb_func_start sub_800A8C4 sub_800A8C4: push {r4,lr} ldr r3, _0800A8EC ldr r4, _0800A8F0 movs r2, 0 ldr r0, _0800A8F4 movs r1, 0x3F _0800A8D0: str r2, [r0] str r2, [r0, 0x4] adds r0, 0x8 subs r1, 0x1 cmp r1, 0 bge _0800A8D0 movs r0, 0 str r0, [r3] movs r0, 0x1 str r0, [r4] pop {r4} pop {r0} bx r0 .align 2, 0 _0800A8EC: .4byte gUnknown_203B094 _0800A8F0: .4byte gUnknown_202D2A4 _0800A8F4: .4byte gUnknown_202D2A8 thumb_func_end sub_800A8C4 thumb_func_start sub_800A8F8 sub_800A8F8: ldr r1, _0800A904 ldr r2, [r1] str r0, [r1] adds r0, r2, 0 bx lr .align 2, 0 _0800A904: .4byte gUnknown_202D2A4 thumb_func_end sub_800A8F8 thumb_func_start sub_800A908 sub_800A908: push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x12C mov r8, r0 adds r4, r1, 0 ldr r1, _0800A93C adds r0, r4, 0 bl strcmp cmp r0, 0 beq _0800A922 movs r0, 0x1 _0800A922: movs r1, 0 lsls r0, 24 cmp r0, 0 bne _0800A92C movs r1, 0x1 _0800A92C: cmp r1, 0 beq _0800A9B6 ldr r7, [r4, 0xC] movs r6, 0 ldr r0, [r4, 0x8] subs r5, r0, 0x1 b _0800A94A .align 2, 0 _0800A93C: .4byte gUnknown_80B9B94 _0800A940: cmp r0, 0 bge _0800A948 adds r6, r4, 0x1 b _0800A94A _0800A948: adds r5, r4, 0 _0800A94A: cmp r6, r5 bge _0800A968 adds r0, r6, r5 lsrs r1, r0, 31 adds r0, r1 asrs r4, r0, 1 lsls r0, r4, 3 adds r0, r7 ldr r0, [r0] mov r1, r8 bl strcmp cmp r0, 0 bne _0800A940 adds r6, r4, 0 _0800A968: lsls r0, r6, 3 adds r6, r7, r0 ldr r0, [r6] mov r1, r8 bl strcmp cmp r0, 0 beq _0800A994 ldr r1, _0800A984 mov r0, sp mov r2, r8 bl sprintf b _0800A9B6 .align 2, 0 _0800A984: .4byte gUnknown_80B9B9C _0800A988: str r6, [r2] adds r0, r7, 0x4 adds r0, r3, r0 str r1, [r0] adds r0, r2, 0 b _0800A9B8 _0800A994: ldr r0, _0800A9C4 ldr r0, [r0] movs r4, 0 ldr r5, _0800A9C8 adds r7, r5, 0 _0800A99E: adds r0, 0x1 cmp r0, 0x3F ble _0800A9A6 movs r0, 0 _0800A9A6: lsls r3, r0, 3 adds r2, r3, r5 ldr r1, [r2] cmp r1, 0 beq _0800A988 adds r4, 0x1 cmp r4, 0x3F ble _0800A99E _0800A9B6: movs r0, 0 _0800A9B8: add sp, 0x12C pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0800A9C4: .4byte gUnknown_203B094 _0800A9C8: .4byte gUnknown_202D2A8 thumb_func_end sub_800A908 thumb_func_start sub_800A9CC sub_800A9CC: ldr r1, [r0] ldr r1, [r1, 0x4] str r1, [r0, 0x4] adds r0, r1, 0 bx lr thumb_func_end sub_800A9CC thumb_func_start sub_800A9D8 sub_800A9D8: push {r4,lr} adds r4, r0, 0 bl sub_800A9CC adds r0, r4, 0 bl sub_800AA48 pop {r4} pop {r1} bx r1 thumb_func_end sub_800A9D8 thumb_func_start sub_800A9EC sub_800A9EC: push {r4,lr} bl sub_800A908 adds r4, r0, 0 cmp r4, 0 beq _0800A9FE movs r1, 0 bl sub_800A9D8 _0800A9FE: adds r0, r4, 0 pop {r4} pop {r1} bx r1 thumb_func_end sub_800A9EC thumb_func_start sub_800AA08 sub_800AA08: push {lr} bl sub_800A9EC pop {r1} bx r1 thumb_func_end sub_800AA08 thumb_func_start sub_800AA14 sub_800AA14: push {r4,r5,lr} adds r4, r0, 0 movs r1, 0 ldr r0, _0800AA30 movs r3, 0 ldr r5, _0800AA34 adds r2, r0, 0x4 _0800AA22: cmp r0, r4 bne _0800AA38 str r3, [r0] str r3, [r2] str r1, [r5] b _0800AA42 .align 2, 0 _0800AA30: .4byte gUnknown_202D2A8 _0800AA34: .4byte gUnknown_203B094 _0800AA38: adds r2, 0x8 adds r0, 0x8 adds r1, 0x1 cmp r1, 0x3F ble _0800AA22 _0800AA42: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_800AA14 thumb_func_start sub_800AA48 sub_800AA48: push {r4,r5,lr} adds r5, r0, 0 ldr r4, [r5, 0x4] ldr r1, [r4] ldr r0, _0800AA60 cmp r1, r0 beq _0800AA68 ldr r0, _0800AA64 cmp r1, r0 beq _0800AA6E adds r0, r4, 0 b _0800AA72 .align 2, 0 _0800AA60: .4byte 0x30524953 _0800AA64: .4byte 0x4f524953 _0800AA68: adds r0, r4, 0 bl nullsub_15 _0800AA6E: ldr r0, [r4, 0x4] str r0, [r5, 0x4] _0800AA72: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_800AA48 thumb_func_start sub_800AA78 sub_800AA78: push {r4,lr} adds r4, r0, 0 ldr r1, [r4] ldr r0, _0800AA90 cmp r1, r0 bne _0800AA94 adds r0, r4, 0 bl nullsub_15 ldr r0, [r4, 0x4] b _0800AA96 .align 2, 0 _0800AA90: .4byte 0x30524953 _0800AA94: adds r0, r4, 0 _0800AA96: pop {r4} pop {r1} bx r1 thumb_func_end sub_800AA78 thumb_func_start nullsub_15 nullsub_15: bx lr thumb_func_end nullsub_15 thumb_func_start nullsub_16 nullsub_16: bx lr thumb_func_end nullsub_16 thumb_func_start nullsub_175 nullsub_175: bx lr thumb_func_end nullsub_175 thumb_func_start sub_800AAA8 sub_800AAA8: push {lr} ldr r2, [r2, 0x4] bl sub_800AAB4 pop {r1} bx r1 thumb_func_end sub_800AAA8 thumb_func_start sub_800AAB4 sub_800AAB4: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x2C mov r12, r0 str r1, [sp, 0x24] mov r8, r2 ldrb r0, [r2, 0x5] ldrb r1, [r2, 0x6] lsls r1, 8 adds r0, r1 str r0, [sp, 0x28] movs r6, 0 mov r10, r6 movs r0, 0x8 mov r9, r0 ldrb r0, [r2] cmp r0, 0x41 bne _0800AB04 ldrb r0, [r2, 0x1] adds r1, r0, 0 cmp r1, 0x54 bne _0800AB0C ldrb r0, [r2, 0x2] cmp r0, 0x34 bne _0800AB0C ldrb r0, [r2, 0x3] cmp r0, 0x50 bne _0800AB0C ldrb r1, [r2, 0x10] ldrb r0, [r2, 0x11] lsls r0, 8 adds r1, r0 ldr r2, [sp, 0x24] cmp r2, 0 beq _0800AB08 cmp r2, r1 beq _0800AB08 _0800AB04: movs r0, 0 b _0800AE16 _0800AB08: movs r1, 0x12 b _0800AB26 _0800AB0C: mov r3, r8 ldrb r0, [r3] cmp r0, 0x41 bne _0800AB04 cmp r1, 0x54 bne _0800AB04 ldrb r0, [r3, 0x2] cmp r0, 0x33 bne _0800AB04 ldrb r0, [r3, 0x3] cmp r0, 0x50 bne _0800AB04 movs r1, 0x10 _0800AB26: mov r2, r8 ldrb r0, [r2, 0x4] cmp r0, 0x4E bne _0800AB4A movs r7, 0 b _0800AB40 _0800AB32: mov r1, r12 adds r0, r1, r7 mov r2, r8 adds r1, r7, r2 ldrb r1, [r1, 0x7] strb r1, [r0] adds r7, 0x1 _0800AB40: ldr r3, [sp, 0x28] cmp r7, r3 blt _0800AB32 adds r0, r7, 0 b _0800AE16 _0800AB4A: mov r2, r8 ldrb r0, [r2, 0x7] adds r0, 0x3 str r0, [sp] ldrb r0, [r2, 0x8] adds r0, 0x3 str r0, [sp, 0x4] ldrb r0, [r2, 0x9] adds r0, 0x3 str r0, [sp, 0x8] ldrb r0, [r2, 0xA] adds r0, 0x3 str r0, [sp, 0xC] ldrb r0, [r2, 0xB] adds r0, 0x3 str r0, [sp, 0x10] ldrb r0, [r2, 0xC] adds r0, 0x3 str r0, [sp, 0x14] ldrb r0, [r2, 0xD] adds r0, 0x3 str r0, [sp, 0x18] ldrb r0, [r2, 0xE] adds r0, 0x3 str r0, [sp, 0x1C] ldrb r0, [r2, 0xF] adds r0, 0x3 str r0, [sp, 0x20] adds r7, r1, 0 ldr r3, [sp, 0x28] cmp r7, r3 blt _0800AB8C b _0800AE14 _0800AB8C: ldr r0, [sp, 0x24] cmp r0, 0 beq _0800AB96 cmp r6, r0 bge _0800AB04 _0800AB96: mov r1, r9 cmp r1, 0x8 bne _0800ABAA mov r2, r8 adds r0, r2, r7 ldrb r0, [r0] mov r10, r0 adds r7, 0x1 movs r3, 0 mov r9, r3 _0800ABAA: movs r0, 0x80 mov r1, r10 ands r0, r1 cmp r0, 0 beq _0800ABB6 b _0800ADF0 _0800ABB6: mov r3, r8 adds r2, r3, r7 ldrb r1, [r2] lsrs r0, r1, 4 adds r3, r0, 0x3 movs r0, 0xF ands r0, r1 lsls r5, r0, 8 ldr r0, [sp] cmp r3, r0 bne _0800ABCE movs r3, 0x1F _0800ABCE: ldr r0, [sp, 0x4] cmp r3, r0 bne _0800ABD6 movs r3, 0x1E _0800ABD6: ldr r0, [sp, 0x8] cmp r3, r0 bne _0800ABDE movs r3, 0x1D _0800ABDE: ldr r0, [sp, 0xC] cmp r3, r0 bne _0800ABE6 movs r3, 0x1C _0800ABE6: ldr r0, [sp, 0x10] cmp r3, r0 bne _0800ABEE movs r3, 0x1B _0800ABEE: ldr r0, [sp, 0x14] cmp r3, r0 bne _0800ABF6 movs r3, 0x1A _0800ABF6: ldr r0, [sp, 0x18] cmp r3, r0 bne _0800ABFE movs r3, 0x19 _0800ABFE: ldr r0, [sp, 0x1C] cmp r3, r0 bne _0800AC06 movs r3, 0x18 _0800AC06: ldr r0, [sp, 0x20] cmp r3, r0 bne _0800AC0E movs r3, 0x17 _0800AC0E: adds r0, r3, 0 subs r0, 0x17 cmp r0, 0x8 bls _0800AC18 b _0800ADB0 _0800AC18: lsls r0, 2 ldr r1, _0800AC24 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0800AC24: .4byte _0800AC28 .align 2, 0 _0800AC28: .4byte _0800AD7C .4byte _0800AD48 .4byte _0800AD20 .4byte _0800ACFA .4byte _0800ACD6 .4byte _0800ACB4 .4byte _0800AC8C .4byte _0800AC66 .4byte _0800AC4C _0800AC4C: ldrb r1, [r2] movs r0, 0xF adds r7, 0x1 mov r3, r12 adds r2, r3, r6 ands r0, r1 lsls r1, r0, 4 orrs r1, r0 strb r1, [r2] adds r6, 0x1 adds r0, r3, r6 strb r1, [r0] b _0800ADA4 _0800AC66: ldrb r0, [r2] movs r5, 0xF ands r5, r0 adds r7, 0x1 mov r1, r12 adds r3, r1, r6 movs r2, 0xF lsls r0, r5, 4 adds r1, r5, 0x1 ands r1, r2 orrs r0, r1 strb r0, [r3] adds r6, 0x1 mov r3, r12 adds r2, r3, r6 lsls r0, r1, 4 orrs r0, r1 strb r0, [r2] b _0800ADA4 _0800AC8C: ldrb r0, [r2] movs r3, 0xF movs r5, 0xF ands r5, r0 adds r7, 0x1 mov r1, r12 adds r4, r1, r6 adds r2, r5, 0 ands r2, r3 lsls r1, r2, 4 subs r0, r5, 0x1 ands r0, r3 orrs r0, r1 strb r0, [r4] adds r6, 0x1 mov r3, r12 adds r0, r3, r6 orrs r1, r2 strb r1, [r0] b _0800ADA4 _0800ACB4: ldrb r0, [r2] movs r3, 0xF movs r5, 0xF ands r5, r0 adds r7, 0x1 mov r1, r12 adds r2, r1, r6 adds r1, r5, 0 ands r1, r3 lsls r0, r1, 4 orrs r0, r1 strb r0, [r2] adds r6, 0x1 mov r0, r12 adds r2, r0, r6 subs r0, r5, 0x1 b _0800AD68 _0800ACD6: ldrb r0, [r2] movs r4, 0xF movs r5, 0xF ands r5, r0 adds r7, 0x1 mov r2, r12 adds r3, r2, r6 adds r1, r5, 0 ands r1, r4 lsls r2, r1, 4 adds r0, r2, 0 orrs r0, r1 strb r0, [r3] adds r6, 0x1 mov r3, r12 adds r1, r3, r6 subs r0, r5, 0x1 b _0800AD9E _0800ACFA: ldrb r0, [r2] movs r5, 0xF ands r5, r0 adds r7, 0x1 mov r1, r12 adds r3, r1, r6 movs r2, 0xF lsls r0, r5, 4 subs r1, r5, 0x1 ands r1, r2 orrs r0, r1 strb r0, [r3] adds r6, 0x1 mov r3, r12 adds r2, r3, r6 lsls r0, r1, 4 orrs r0, r1 strb r0, [r2] b _0800ADA4 _0800AD20: ldrb r0, [r2] movs r3, 0xF movs r5, 0xF ands r5, r0 adds r7, 0x1 mov r1, r12 adds r4, r1, r6 adds r2, r5, 0 ands r2, r3 lsls r1, r2, 4 adds r0, r5, 0x1 ands r0, r3 orrs r0, r1 strb r0, [r4] adds r6, 0x1 mov r3, r12 adds r0, r3, r6 orrs r1, r2 strb r1, [r0] b _0800ADA4 _0800AD48: ldrb r0, [r2] movs r3, 0xF movs r5, 0xF ands r5, r0 adds r7, 0x1 mov r1, r12 adds r2, r1, r6 adds r1, r5, 0 ands r1, r3 lsls r0, r1, 4 orrs r0, r1 strb r0, [r2] adds r6, 0x1 mov r0, r12 adds r2, r0, r6 adds r0, r5, 0x1 _0800AD68: ands r0, r3 lsls r0, 4 orrs r0, r1 strb r0, [r2] adds r6, 0x1 mov r4, r9 adds r4, 0x1 mov r1, r10 lsls r2, r1, 1 b _0800AE08 _0800AD7C: ldrb r0, [r2] movs r4, 0xF movs r5, 0xF ands r5, r0 adds r7, 0x1 mov r2, r12 adds r3, r2, r6 adds r1, r5, 0 ands r1, r4 lsls r2, r1, 4 adds r0, r2, 0 orrs r0, r1 strb r0, [r3] adds r6, 0x1 mov r3, r12 adds r1, r3, r6 adds r0, r5, 0x1 _0800AD9E: ands r0, r4 orrs r2, r0 strb r2, [r1] _0800ADA4: adds r6, 0x1 mov r4, r9 adds r4, 0x1 mov r0, r10 lsls r2, r0, 1 b _0800AE08 _0800ADB0: adds r7, 0x1 mov r1, r8 adds r0, r1, r7 ldrb r0, [r0] adds r5, r0 adds r7, 0x1 ldr r2, _0800ADEC adds r0, r5, r2 adds r5, r0, r6 mov r4, r9 adds r4, 0x1 mov r0, r10 lsls r2, r0, 1 cmp r3, 0 beq _0800AE08 _0800ADCE: mov r1, r12 adds r1, r6 mov r10, r1 mov r0, r12 adds r0, r5 ldrb r1, [r0] mov r0, r10 strb r1, [r0] adds r6, 0x1 adds r5, 0x1 subs r3, 0x1 cmp r3, 0 bne _0800ADCE b _0800AE08 .align 2, 0 _0800ADEC: .4byte 0xfffff000 _0800ADF0: mov r1, r12 adds r0, r1, r6 mov r2, r8 adds r1, r2, r7 ldrb r1, [r1] strb r1, [r0] adds r6, 0x1 adds r7, 0x1 mov r4, r9 adds r4, 0x1 mov r3, r10 lsls r2, r3, 1 _0800AE08: mov r9, r4 mov r10, r2 ldr r0, [sp, 0x28] cmp r7, r0 bge _0800AE14 b _0800AB8C _0800AE14: adds r0, r6, 0 _0800AE16: add sp, 0x2C pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_800AAB4 thumb_func_start sub_800AE28 sub_800AE28: push {lr} ldr r2, [r2, 0x4] bl sub_800AE34 pop {r1} bx r1 thumb_func_end sub_800AE28 thumb_func_start sub_800AE34 sub_800AE34: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x34 str r1, [sp, 0x24] mov r10, r2 ldrb r2, [r2, 0x5] mov r3, r10 ldrb r1, [r3, 0x6] lsls r1, 8 adds r2, r1 str r2, [sp, 0x28] movs r1, 0 mov r9, r1 movs r2, 0 str r2, [sp, 0x2C] movs r3, 0x8 str r3, [sp, 0x30] bl sub_800B1BC mov r1, r10 ldrb r0, [r1] cmp r0, 0x41 bne _0800AE90 ldrb r0, [r1, 0x1] adds r1, r0, 0 cmp r1, 0x54 bne _0800AE98 mov r2, r10 ldrb r0, [r2, 0x2] cmp r0, 0x34 bne _0800AE98 ldrb r0, [r2, 0x3] cmp r0, 0x50 bne _0800AE98 ldrb r1, [r2, 0x10] ldrb r0, [r2, 0x11] lsls r0, 8 adds r1, r0 ldr r3, [sp, 0x24] cmp r3, 0 beq _0800AE94 cmp r3, r1 beq _0800AE94 _0800AE90: movs r0, 0 b _0800B1AA _0800AE94: movs r1, 0x12 b _0800AEB2 _0800AE98: mov r2, r10 ldrb r0, [r2] cmp r0, 0x41 bne _0800AE90 cmp r1, 0x54 bne _0800AE90 ldrb r0, [r2, 0x2] cmp r0, 0x33 bne _0800AE90 ldrb r0, [r2, 0x3] cmp r0, 0x50 bne _0800AE90 movs r1, 0x10 _0800AEB2: mov r3, r10 ldrb r0, [r3, 0x4] cmp r0, 0x4E bne _0800AEE0 movs r0, 0 mov r8, r0 ldr r1, [sp, 0x28] cmp r8, r1 bge _0800AED8 _0800AEC4: mov r0, r8 add r0, r10 ldrb r0, [r0, 0x7] bl sub_800B220 movs r2, 0x1 add r8, r2 ldr r3, [sp, 0x28] cmp r8, r3 blt _0800AEC4 _0800AED8: bl sub_800B270 mov r0, r8 b _0800B1AA _0800AEE0: mov r2, r10 ldrb r0, [r2, 0x7] adds r0, 0x3 str r0, [sp] ldrb r0, [r2, 0x8] adds r0, 0x3 str r0, [sp, 0x4] ldrb r0, [r2, 0x9] adds r0, 0x3 str r0, [sp, 0x8] ldrb r0, [r2, 0xA] adds r0, 0x3 str r0, [sp, 0xC] ldrb r0, [r2, 0xB] adds r0, 0x3 str r0, [sp, 0x10] ldrb r0, [r2, 0xC] adds r0, 0x3 str r0, [sp, 0x14] ldrb r0, [r2, 0xD] adds r0, 0x3 str r0, [sp, 0x18] ldrb r0, [r2, 0xE] adds r0, 0x3 str r0, [sp, 0x1C] ldrb r0, [r2, 0xF] adds r0, 0x3 str r0, [sp, 0x20] mov r8, r1 ldr r3, [sp, 0x28] cmp r8, r3 blt _0800AF22 b _0800B1A4 _0800AF22: ldr r0, [sp, 0x24] cmp r0, 0 beq _0800AF2C cmp r9, r0 bge _0800AE90 _0800AF2C: ldr r1, [sp, 0x30] cmp r1, 0x8 bne _0800AF42 mov r0, r10 add r0, r8 ldrb r0, [r0] str r0, [sp, 0x2C] movs r2, 0x1 add r8, r2 movs r3, 0 str r3, [sp, 0x30] _0800AF42: movs r0, 0x80 ldr r1, [sp, 0x2C] ands r0, r1 cmp r0, 0 beq _0800AF4E b _0800B180 _0800AF4E: mov r2, r10 add r2, r8 ldrb r1, [r2] lsrs r0, r1, 4 adds r3, r0, 0x3 movs r0, 0xF ands r0, r1 lsls r7, r0, 8 ldr r0, [sp] cmp r3, r0 bne _0800AF66 movs r3, 0x1F _0800AF66: ldr r0, [sp, 0x4] cmp r3, r0 bne _0800AF6E movs r3, 0x1E _0800AF6E: ldr r0, [sp, 0x8] cmp r3, r0 bne _0800AF76 movs r3, 0x1D _0800AF76: ldr r0, [sp, 0xC] cmp r3, r0 bne _0800AF7E movs r3, 0x1C _0800AF7E: ldr r0, [sp, 0x10] cmp r3, r0 bne _0800AF86 movs r3, 0x1B _0800AF86: ldr r0, [sp, 0x14] cmp r3, r0 bne _0800AF8E movs r3, 0x1A _0800AF8E: ldr r0, [sp, 0x18] cmp r3, r0 bne _0800AF96 movs r3, 0x19 _0800AF96: ldr r0, [sp, 0x1C] cmp r3, r0 bne _0800AF9E movs r3, 0x18 _0800AF9E: ldr r0, [sp, 0x20] cmp r3, r0 bne _0800AFA6 movs r3, 0x17 _0800AFA6: adds r0, r3, 0 subs r0, 0x17 cmp r0, 0x8 bls _0800AFB0 b _0800B13C _0800AFB0: lsls r0, 2 ldr r1, _0800AFBC adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0800AFBC: .4byte _0800AFC0 .align 2, 0 _0800AFC0: .4byte _0800B104 .4byte _0800B0DE .4byte _0800B0BA .4byte _0800B090 .4byte _0800B06E .4byte _0800B048 .4byte _0800B024 .4byte _0800AFFE .4byte _0800AFE4 _0800AFE4: ldrb r0, [r2] movs r1, 0xF movs r2, 0x1 add r8, r2 ands r1, r0 lsls r4, r1, 4 orrs r4, r1 adds r0, r4, 0 bl sub_800B220 movs r3, 0x1 add r9, r3 b _0800B128 _0800AFFE: ldrb r0, [r2] movs r6, 0xF ands r6, r0 movs r2, 0x1 add r8, r2 movs r1, 0xF lsls r0, r6, 4 adds r4, r6, 0x1 ands r4, r1 orrs r0, r4 bl sub_800B220 movs r3, 0x1 add r9, r3 lsls r0, r4, 4 orrs r0, r4 lsls r0, 24 lsrs r0, 24 b _0800B12A _0800B024: ldrb r0, [r2] movs r1, 0xF movs r6, 0xF ands r6, r0 movs r2, 0x1 add r8, r2 adds r5, r6, 0 ands r5, r1 lsls r4, r5, 4 subs r0, r6, 0x1 ands r0, r1 orrs r0, r4 bl sub_800B220 movs r3, 0x1 add r9, r3 orrs r4, r5 b _0800B128 _0800B048: ldrb r0, [r2] movs r5, 0xF movs r6, 0xF ands r6, r0 movs r2, 0x1 add r8, r2 adds r4, r6, 0 ands r4, r5 lsls r0, r4, 4 orrs r0, r4 bl sub_800B220 movs r3, 0x1 add r9, r3 subs r0, r6, 0x1 ands r0, r5 lsls r0, 4 orrs r0, r4 b _0800B12A _0800B06E: ldrb r0, [r2] movs r5, 0xF movs r6, 0xF ands r6, r0 movs r2, 0x1 add r8, r2 adds r1, r6, 0 ands r1, r5 lsls r4, r1, 4 adds r0, r4, 0 orrs r0, r1 bl sub_800B220 movs r3, 0x1 add r9, r3 subs r0, r6, 0x1 b _0800B124 _0800B090: ldrb r0, [r2] movs r6, 0xF ands r6, r0 movs r2, 0x1 add r8, r2 movs r1, 0xF lsls r0, r6, 4 subs r4, r6, 0x1 ands r4, r1 orrs r0, r4 lsls r0, 24 lsrs r0, 24 bl sub_800B220 movs r3, 0x1 add r9, r3 lsls r0, r4, 4 orrs r0, r4 lsls r0, 24 lsrs r0, 24 b _0800B12A _0800B0BA: ldrb r0, [r2] movs r1, 0xF movs r6, 0xF ands r6, r0 movs r2, 0x1 add r8, r2 adds r5, r6, 0 ands r5, r1 lsls r4, r5, 4 adds r0, r6, 0x1 ands r0, r1 orrs r0, r4 bl sub_800B220 movs r3, 0x1 add r9, r3 orrs r4, r5 b _0800B128 _0800B0DE: ldrb r0, [r2] movs r5, 0xF movs r6, 0xF ands r6, r0 movs r2, 0x1 add r8, r2 adds r4, r6, 0 ands r4, r5 lsls r0, r4, 4 orrs r0, r4 bl sub_800B220 movs r3, 0x1 add r9, r3 adds r0, r6, 0x1 ands r0, r5 lsls r0, 4 orrs r0, r4 b _0800B12A _0800B104: ldrb r0, [r2] movs r5, 0xF movs r6, 0xF ands r6, r0 movs r2, 0x1 add r8, r2 adds r1, r6, 0 ands r1, r5 lsls r4, r1, 4 adds r0, r4, 0 orrs r0, r1 bl sub_800B220 movs r3, 0x1 add r9, r3 adds r0, r6, 0x1 _0800B124: ands r0, r5 orrs r4, r0 _0800B128: adds r0, r4, 0 _0800B12A: bl sub_800B220 movs r0, 0x1 add r9, r0 ldr r5, [sp, 0x30] adds r5, 0x1 ldr r1, [sp, 0x2C] lsls r4, r1, 1 b _0800B198 _0800B13C: movs r2, 0x1 add r8, r2 mov r0, r10 add r0, r8 ldrb r0, [r0] adds r7, r0 add r8, r2 ldr r1, _0800B17C adds r0, r7, r1 mov r2, r9 adds r7, r0, r2 ldr r5, [sp, 0x30] adds r5, 0x1 ldr r0, [sp, 0x2C] lsls r4, r0, 1 cmp r3, 0 beq _0800B198 adds r6, r3, 0 _0800B160: adds r0, r7, 0 bl sub_800B1E0 lsls r0, 24 lsrs r0, 24 bl sub_800B220 movs r1, 0x1 add r9, r1 adds r7, 0x1 subs r6, 0x1 cmp r6, 0 bne _0800B160 b _0800B198 .align 2, 0 _0800B17C: .4byte 0xfffff000 _0800B180: mov r0, r10 add r0, r8 ldrb r0, [r0] bl sub_800B220 movs r2, 0x1 add r9, r2 add r8, r2 ldr r5, [sp, 0x30] adds r5, 0x1 ldr r3, [sp, 0x2C] lsls r4, r3, 1 _0800B198: str r5, [sp, 0x30] str r4, [sp, 0x2C] ldr r0, [sp, 0x28] cmp r8, r0 bge _0800B1A4 b _0800AF22 _0800B1A4: bl sub_800B270 mov r0, r9 _0800B1AA: add sp, 0x34 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_800AE34 thumb_func_start sub_800B1BC sub_800B1BC: ldr r1, _0800B1D0 str r0, [r1] ldr r1, _0800B1D4 str r0, [r1] ldr r0, _0800B1D8 movs r1, 0 str r1, [r0] ldr r0, _0800B1DC str r1, [r0] bx lr .align 2, 0 _0800B1D0: .4byte gUnknown_202D4A8 _0800B1D4: .4byte gUnknown_202D4AC _0800B1D8: .4byte gUnknown_202D4B0 _0800B1DC: .4byte gUnknown_202D4B4 thumb_func_end sub_800B1BC thumb_func_start sub_800B1E0 sub_800B1E0: push {lr} adds r2, r0, 0 cmp r2, 0 bge _0800B1EA adds r0, r2, 0x3 _0800B1EA: asrs r0, 2 ldr r1, _0800B20C ldr r1, [r1] lsls r0, 2 adds r0, r1 ldr r0, [r0] movs r1, 0x3 ands r1, r2 cmp r1, 0x1 beq _0800B210 cmp r1, 0x1 ble _0800B216 cmp r1, 0x2 beq _0800B214 cmp r1, 0x3 beq _0800B218 b _0800B216 .align 2, 0 _0800B20C: .4byte gUnknown_202D4AC _0800B210: lsrs r0, 8 b _0800B216 _0800B214: lsrs r0, 16 _0800B216: lsls r0, 24 _0800B218: lsrs r0, 24 pop {r1} bx r1 thumb_func_end sub_800B1E0 thumb_func_start sub_800B220 sub_800B220: push {r4,lr} lsls r0, 24 lsrs r0, 24 ldr r4, _0800B260 ldr r2, _0800B264 ldr r3, _0800B268 ldr r1, [r3] lsls r1, 2 adds r1, r2 ldr r1, [r1] lsls r0, r1 ldr r1, [r4] orrs r1, r0 str r1, [r4] ldr r2, _0800B26C ldr r0, [r2] str r1, [r0] ldr r0, [r3] adds r0, 0x1 str r0, [r3] cmp r0, 0x4 bne _0800B258 ldr r0, [r2] adds r0, 0x4 str r0, [r2] movs r0, 0 str r0, [r4] str r0, [r3] _0800B258: pop {r4} pop {r0} bx r0 .align 2, 0 _0800B260: .4byte gUnknown_202D4B0 _0800B264: .4byte gUnknown_80B9BB8 _0800B268: .4byte gUnknown_202D4B4 _0800B26C: .4byte gUnknown_202D4A8 thumb_func_end sub_800B220 thumb_func_start sub_800B270 sub_800B270: push {lr} ldr r0, _0800B288 ldr r0, [r0] cmp r0, 0 beq _0800B284 ldr r0, _0800B28C ldr r1, [r0] ldr r0, _0800B290 ldr r0, [r0] str r0, [r1] _0800B284: pop {r0} bx r0 .align 2, 0 _0800B288: .4byte gUnknown_202D4B4 _0800B28C: .4byte gUnknown_202D4A8 _0800B290: .4byte gUnknown_202D4B0 thumb_func_end sub_800B270 thumb_func_start sub_800B294 sub_800B294: push {lr} adds r1, r0, 0 ldrb r0, [r1] cmp r0, 0x41 bne _0800B2CC ldrb r0, [r1, 0x1] adds r2, r0, 0 cmp r2, 0x54 bne _0800B2B2 ldrb r0, [r1, 0x2] cmp r0, 0x34 bne _0800B2B2 ldrb r0, [r1, 0x3] cmp r0, 0x50 beq _0800B2C8 _0800B2B2: ldrb r0, [r1] cmp r0, 0x41 bne _0800B2CC cmp r2, 0x54 bne _0800B2CC ldrb r0, [r1, 0x2] cmp r0, 0x33 bne _0800B2CC ldrb r0, [r1, 0x3] cmp r0, 0x50 bne _0800B2CC _0800B2C8: movs r0, 0x1 b _0800B2CE _0800B2CC: movs r0, 0 _0800B2CE: pop {r1} bx r1 thumb_func_end sub_800B294 thumb_func_start sub_800B2D4 sub_800B2D4: push {r4-r6,lr} adds r6, r0, 0 adds r5, r1, 0 adds r4, r2, 0 movs r2, 0 cmp r2, r4 bge _0800B324 _0800B2E2: adds r0, r6, r2 ldrb r1, [r0] adds r0, r5, r2 ldrb r3, [r0] adds r0, r1, 0 subs r0, 0x41 lsls r0, 24 lsrs r0, 24 cmp r0, 0x19 bhi _0800B2FE adds r0, r1, 0 adds r0, 0x20 lsls r0, 24 lsrs r1, r0, 24 _0800B2FE: adds r0, r3, 0 subs r0, 0x41 lsls r0, 24 lsrs r0, 24 cmp r0, 0x19 bhi _0800B312 adds r0, r3, 0 adds r0, 0x20 lsls r0, 24 lsrs r3, r0, 24 _0800B312: cmp r1, r3 beq _0800B31A movs r0, 0x1 b _0800B326 _0800B31A: cmp r1, 0 beq _0800B324 adds r2, 0x1 cmp r2, r4 blt _0800B2E2 _0800B324: movs r0, 0 _0800B326: pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_800B2D4 .align 2, 0 @ Don't pad with nop.