.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 NDS_DebugInit bl sub_801180C bl NDS_LoadOverlay_GroundMain bl sub_8014144 bl LoadMonsterParameters 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 SetWindowTitle 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 NDS_LoadOverlay_GroundMain NDS_LoadOverlay_GroundMain: bx lr thumb_func_end NDS_LoadOverlay_GroundMain 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 NDS_LoadOverlay_GroundMain 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 .align 2, 0 @ Don't pad with nop.