diff options
Diffstat (limited to 'asm/contest.s')
-rw-r--r-- | asm/contest.s | 15732 |
1 files changed, 15732 insertions, 0 deletions
diff --git a/asm/contest.s b/asm/contest.s new file mode 100644 index 000000000..447f5cf1d --- /dev/null +++ b/asm/contest.s @@ -0,0 +1,15732 @@ + .include "constants/gba_constants.s" + .include "constants/species_constants.s" + .include "asm/macros.s" + + .syntax unified + + .text + + thumb_func_start nullsub_89 +nullsub_89: @ 80AB1AC + bx lr + thumb_func_end nullsub_89 + + thumb_func_start sub_80AB1B0 +sub_80AB1B0: @ 80AB1B0 + ldr r1, _080AB1B8 @ =gUnknown_0203869A + movs r0, 0 + strb r0, [r1] + bx lr + .align 2, 0 +_080AB1B8: .4byte gUnknown_0203869A + thumb_func_end sub_80AB1B0 + + thumb_func_start sub_80AB1BC +sub_80AB1BC: @ 80AB1BC + push {r4-r6,lr} + movs r6, 0x80 + lsls r6, 19 + movs r0, 0x40 + strh r0, [r6] + ldr r4, _080AB260 @ =0x04000208 + ldrh r3, [r4] + movs r2, 0 + strh r2, [r4] + ldr r5, _080AB264 @ =0x04000200 + ldrh r0, [r5] + movs r1, 0x1 + orrs r0, r1 + strh r0, [r5] + strh r3, [r4] + ldr r1, _080AB268 @ =REG_DISPSTAT + movs r0, 0x8 + strh r0, [r1] + adds r1, 0x4 + movs r3, 0x98 + lsls r3, 8 + adds r0, r3, 0 + strh r0, [r1] + adds r1, 0x2 + ldr r3, _080AB26C @ =0x00009e09 + adds r0, r3, 0 + strh r0, [r1] + adds r1, 0x2 + movs r3, 0x9C + lsls r3, 8 + adds r0, r3, 0 + strh r0, [r1] + adds r1, 0x2 + ldr r3, _080AB270 @ =0x00003a03 + adds r0, r3, 0 + strh r0, [r1] + ldr r0, _080AB274 @ =REG_BLDCNT + strh r2, [r0] + adds r0, 0x2 + strh r2, [r0] + adds r0, 0x2 + strh r2, [r0] + subs r0, 0xC + ldr r3, _080AB278 @ =0x00003f3f + adds r1, r3, 0 + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + ldrh r0, [r6] + movs r3, 0xFE + lsls r3, 7 + adds r1, r3, 0 + orrs r0, r1 + strh r0, [r6] + ldr r0, _080AB27C @ =gUnknown_030042A4 + strh r2, [r0] + ldr r0, _080AB280 @ =gUnknown_030042A0 + strh r2, [r0] + ldr r0, _080AB284 @ =gUnknown_030042C0 + strh r2, [r0] + ldr r0, _080AB288 @ =gUnknown_030041B4 + strh r2, [r0] + ldr r0, _080AB28C @ =gUnknown_03004288 + strh r2, [r0] + ldr r0, _080AB290 @ =gUnknown_03004280 + strh r2, [r0] + ldr r0, _080AB294 @ =gUnknown_030041B0 + strh r2, [r0] + ldr r0, _080AB298 @ =gUnknown_030041B8 + strh r2, [r0] + ldr r0, _080AB29C @ =gUnknown_030042C4 + strh r2, [r0] + ldr r0, _080AB2A0 @ =gUnknown_03004240 + strh r2, [r0] + ldr r0, _080AB2A4 @ =gUnknown_03004200 + strh r2, [r0] + ldr r0, _080AB2A8 @ =gUnknown_03004244 + strh r2, [r0] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080AB260: .4byte 0x04000208 +_080AB264: .4byte 0x04000200 +_080AB268: .4byte REG_DISPSTAT +_080AB26C: .4byte 0x00009e09 +_080AB270: .4byte 0x00003a03 +_080AB274: .4byte REG_BLDCNT +_080AB278: .4byte 0x00003f3f +_080AB27C: .4byte gUnknown_030042A4 +_080AB280: .4byte gUnknown_030042A0 +_080AB284: .4byte gUnknown_030042C0 +_080AB288: .4byte gUnknown_030041B4 +_080AB28C: .4byte gUnknown_03004288 +_080AB290: .4byte gUnknown_03004280 +_080AB294: .4byte gUnknown_030041B0 +_080AB298: .4byte gUnknown_030041B8 +_080AB29C: .4byte gUnknown_030042C4 +_080AB2A0: .4byte gUnknown_03004240 +_080AB2A4: .4byte gUnknown_03004200 +_080AB2A8: .4byte gUnknown_03004244 + thumb_func_end sub_80AB1BC + + thumb_func_start sub_80AB2AC +sub_80AB2AC: @ 80AB2AC + push {r4,r5,lr} + ldr r0, _080AB300 @ =gContestMiscGfx + movs r1, 0xC0 + lsls r1, 19 + bl LZDecompressVram + ldr r0, _080AB304 @ =gContestAudienceGfx + ldr r1, _080AB308 @ =0x06002000 + bl LZDecompressVram + ldr r0, _080AB30C @ =gUnknown_08D1725C + ldr r1, _080AB310 @ =0x0600d000 + bl LZDecompressVram + ldr r0, _080AB314 @ =gUnknown_08D17144 + movs r2, 0x80 + lsls r2, 2 + movs r1, 0 + bl LoadCompressedPalette + bl sub_80AB350 + movs r4, 0 + movs r5, 0xA0 +_080AB2DC: + ldr r0, _080AB318 @ =0x02018004 + adds r0, r5, r0 + ldr r1, _080AB31C @ =gUnknown_02038696 + adds r1, r4, r1 + ldrb r1, [r1] + adds r1, 0x5 + lsls r1, 4 + movs r2, 0x20 + bl LoadPalette + adds r5, 0x20 + adds r4, 0x1 + cmp r4, 0x3 + ble _080AB2DC + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080AB300: .4byte gContestMiscGfx +_080AB304: .4byte gContestAudienceGfx +_080AB308: .4byte 0x06002000 +_080AB30C: .4byte gUnknown_08D1725C +_080AB310: .4byte 0x0600d000 +_080AB314: .4byte gUnknown_08D17144 +_080AB318: .4byte 0x02018004 +_080AB31C: .4byte gUnknown_02038696 + thumb_func_end sub_80AB2AC + + thumb_func_start sub_80AB320 +sub_80AB320: @ 80AB320 + push {r4,lr} + ldr r4, _080AB340 @ =gWindowConfig_81E6FD8 + adds r0, r4, 0 + bl SetUpWindowConfig + ldr r0, _080AB344 @ =gUnknown_03004210 + adds r1, r4, 0 + bl InitWindowFromConfig + ldr r0, _080AB348 @ =gMenuWindow + ldr r1, _080AB34C @ =gWindowConfig_81E6FF4 + bl InitWindowFromConfig + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080AB340: .4byte gWindowConfig_81E6FD8 +_080AB344: .4byte gUnknown_03004210 +_080AB348: .4byte gMenuWindow +_080AB34C: .4byte gWindowConfig_81E6FF4 + thumb_func_end sub_80AB320 + + thumb_func_start sub_80AB350 +sub_80AB350: @ 80AB350 + push {r4,lr} + ldr r0, _080AB38C @ =gWindowConfig_81E6FD8 + bl LoadFontDefaultPalette + movs r0, 0 + movs r1, 0 + movs r2, 0x2 + bl FillPalette + movs r4, 0xA +_080AB364: + adds r1, r4, 0 + adds r1, 0xF0 + ldr r0, _080AB390 @ =gPlttBufferUnfaded + 0x1E2 + movs r2, 0x2 + bl LoadPalette + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0xD + bls _080AB364 + ldr r0, _080AB394 @ =0x00007e3f + movs r1, 0xF3 + movs r2, 0x2 + bl FillPalette + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080AB38C: .4byte gWindowConfig_81E6FD8 +_080AB390: .4byte gPlttBufferUnfaded + 0x1E2 +_080AB394: .4byte 0x00007e3f + thumb_func_end sub_80AB350 + + thumb_func_start sub_80AB398 +sub_80AB398: @ 80AB398 + push {r4-r6,lr} + ldr r4, _080AB468 @ =0x02019204 + adds r0, r4, 0 + movs r1, 0 + movs r2, 0x5C + bl memset + movs r5, 0 + adds r4, 0x2 + movs r2, 0xFF +_080AB3AC: + adds r1, r5, r4 + ldrb r0, [r1] + orrs r0, r2 + strb r0, [r1] + adds r5, 0x1 + cmp r5, 0x3 + ble _080AB3AC + ldr r4, _080AB46C @ =0x02019260 + movs r5, 0x3 +_080AB3BE: + adds r0, r4, 0 + movs r1, 0 + movs r2, 0x1C + bl memset + adds r4, 0x1C + subs r5, 0x1 + cmp r5, 0 + bge _080AB3BE + ldr r4, _080AB470 @ =0x020192d0 + movs r6, 0x4 + negs r6, r6 + movs r3, 0xFF + adds r2, r4, 0 + subs r2, 0x65 + movs r5, 0x3 +_080AB3DE: + ldrb r1, [r2] + adds r0, r6, 0 + ands r0, r1 + strb r0, [r2] + ldrb r0, [r2, 0x8] + orrs r0, r3 + strb r0, [r2, 0x8] + ldrb r0, [r2, 0x9] + orrs r0, r3 + strb r0, [r2, 0x9] + adds r2, 0x1C + subs r5, 0x1 + cmp r5, 0 + bge _080AB3DE + adds r0, r4, 0 + movs r1, 0 + movs r2, 0x14 + bl memset + adds r0, r4, 0 + adds r0, 0x14 + movs r1, 0 + movs r2, 0x44 + bl memset + adds r0, r4, 0 + adds r0, 0x58 + movs r1, 0 + movs r2, 0x4 + bl memset + adds r0, r4, 0 + adds r0, 0x68 + movs r1, 0 + movs r2, 0x10 + bl memset + ldr r0, _080AB474 @ =gUnknown_0203869A + ldrb r1, [r0] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + bne _080AB43A + movs r0, 0 + bl sub_80B0F28 +_080AB43A: + movs r5, 0 + movs r6, 0xFF + adds r3, r4, 0 + subs r3, 0xB8 + adds r2, r4, 0 + subs r2, 0x57 + ldr r4, _080AB478 @ =gUnknown_02038696 +_080AB448: + ldrb r0, [r2] + orrs r0, r6 + strb r0, [r2] + adds r1, r3, r5 + adds r0, r5, r4 + ldrb r0, [r0] + strb r0, [r1] + adds r2, 0x1C + adds r5, 0x1 + cmp r5, 0x3 + ble _080AB448 + bl sub_80B159C + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080AB468: .4byte 0x02019204 +_080AB46C: .4byte 0x02019260 +_080AB470: .4byte 0x020192d0 +_080AB474: .4byte gUnknown_0203869A +_080AB478: .4byte gUnknown_02038696 + thumb_func_end sub_80AB398 + + thumb_func_start sub_80AB47C +sub_80AB47C: @ 80AB47C + push {r4-r7,lr} + sub sp, 0x4 + ldr r0, _080AB498 @ =gMain + ldr r1, _080AB49C @ =0x0000043c + adds r4, r0, r1 + ldrb r0, [r4] + cmp r0, 0x1 + beq _080AB554 + cmp r0, 0x1 + bgt _080AB4A0 + cmp r0, 0 + beq _080AB4AA + b _080AB5AE + .align 2, 0 +_080AB498: .4byte gMain +_080AB49C: .4byte 0x0000043c +_080AB4A0: + cmp r0, 0x2 + beq _080AB55A + cmp r0, 0x3 + beq _080AB578 + b _080AB5AE +_080AB4AA: + movs r0, 0 + bl SetVBlankCallback + bl sub_80AB320 + bl sub_80AB1BC + bl dp12_8087EA4 + bl ResetPaletteFade + ldr r0, _080AB538 @ =gPaletteFade + ldrb r1, [r0, 0x8] + movs r2, 0x80 + orrs r1, r2 + strb r1, [r0, 0x8] + movs r2, 0xC0 + lsls r2, 19 + movs r3, 0xC0 + lsls r3, 9 + movs r5, 0 + ldr r1, _080AB53C @ =0x040000d4 + movs r4, 0x80 + lsls r4, 5 + ldr r6, _080AB540 @ =0x85000400 + movs r7, 0x85 + lsls r7, 24 +_080AB4E0: + str r5, [sp] + mov r0, sp + str r0, [r1] + str r2, [r1, 0x4] + str r6, [r1, 0x8] + ldr r0, [r1, 0x8] + adds r2, r4 + subs r3, r4 + cmp r3, r4 + bhi _080AB4E0 + str r5, [sp] + mov r0, sp + str r0, [r1] + str r2, [r1, 0x4] + lsrs r0, r3, 2 + orrs r0, r7 + str r0, [r1, 0x8] + ldr r0, [r1, 0x8] + bl ResetSpriteData + bl ResetTasks + bl FreeAllSpritePalettes + ldr r1, _080AB544 @ =gReservedSpritePaletteCount + movs r0, 0x4 + strb r0, [r1] + ldr r0, _080AB548 @ =0x02000000 + movs r1, 0xC0 + lsls r1, 9 + adds r0, r1 + movs r1, 0 + strb r1, [r0] + bl sub_8040710 + bl sub_80AB398 + ldr r1, _080AB54C @ =gMain + ldr r0, _080AB550 @ =0x0000043c + adds r1, r0 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + b _080AB5AE + .align 2, 0 +_080AB538: .4byte gPaletteFade +_080AB53C: .4byte 0x040000d4 +_080AB540: .4byte 0x85000400 +_080AB544: .4byte gReservedSpritePaletteCount +_080AB548: .4byte 0x02000000 +_080AB54C: .4byte gMain +_080AB550: .4byte 0x0000043c +_080AB554: + bl sub_80AB350 + b _080AB56C +_080AB55A: + ldr r5, _080AB574 @ =0x0201925d + adds r0, r5, 0 + bl sub_80AB70C + lsls r0, 24 + cmp r0, 0 + beq _080AB5AE + movs r0, 0 + strb r0, [r5] +_080AB56C: + ldrb r0, [r4] + adds r0, 0x1 + strb r0, [r4] + b _080AB5AE + .align 2, 0 +_080AB574: .4byte 0x0201925d +_080AB578: + bl sub_80B2184 + ldr r0, _080AB5B8 @ =gUnknown_030042C0 + movs r1, 0 + strh r1, [r0] + ldr r0, _080AB5BC @ =gUnknown_030041B4 + strh r1, [r0] + movs r0, 0x2 + bl BeginFastPaletteFade + ldr r2, _080AB5C0 @ =gPaletteFade + ldrb r1, [r2, 0x8] + movs r0, 0x7F + ands r0, r1 + strb r0, [r2, 0x8] + ldr r0, _080AB5C4 @ =sub_80ABAC4 + bl SetVBlankCallback + ldr r0, _080AB5C8 @ =sub_80AB5D4 + movs r1, 0xA + bl CreateTask + ldr r1, _080AB5CC @ =0x02019204 + strb r0, [r1, 0x8] + ldr r0, _080AB5D0 @ =sub_80ABAAC + bl SetMainCallback2 +_080AB5AE: + add sp, 0x4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080AB5B8: .4byte gUnknown_030042C0 +_080AB5BC: .4byte gUnknown_030041B4 +_080AB5C0: .4byte gPaletteFade +_080AB5C4: .4byte sub_80ABAC4 +_080AB5C8: .4byte sub_80AB5D4 +_080AB5CC: .4byte 0x02019204 +_080AB5D0: .4byte sub_80ABAAC + thumb_func_end sub_80AB47C + + thumb_func_start sub_80AB5D4 +sub_80AB5D4: @ 80AB5D4 + push {lr} + lsls r0, 24 + lsrs r2, r0, 24 + ldr r0, _080AB5F8 @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _080AB5F4 + ldr r0, _080AB5FC @ =gTasks + lsls r1, r2, 2 + adds r1, r2 + lsls r1, 3 + adds r1, r0 + ldr r0, _080AB600 @ =sub_80AB604 + str r0, [r1] +_080AB5F4: + pop {r0} + bx r0 + .align 2, 0 +_080AB5F8: .4byte gPaletteFade +_080AB5FC: .4byte gTasks +_080AB600: .4byte sub_80AB604 + thumb_func_end sub_80AB5D4 + + thumb_func_start sub_80AB604 +sub_80AB604: @ 80AB604 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, _080AB648 @ =gUnknown_0203869A + ldrb r1, [r0] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080AB65C + ldr r2, _080AB64C @ =gPaletteFade + ldrb r1, [r2, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _080AB66A + ldrb r1, [r2, 0x8] + movs r0, 0x7F + ands r0, r1 + strb r0, [r2, 0x8] + bl sub_80AF860 + ldr r0, _080AB650 @ =sub_80AB678 + movs r1, 0 + bl CreateTask + ldr r1, _080AB654 @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, _080AB658 @ =nullsub_89 + str r1, [r0] + b _080AB66A + .align 2, 0 +_080AB648: .4byte gUnknown_0203869A +_080AB64C: .4byte gPaletteFade +_080AB650: .4byte sub_80AB678 +_080AB654: .4byte gTasks +_080AB658: .4byte nullsub_89 +_080AB65C: + ldr r0, _080AB670 @ =gTasks + lsls r1, r4, 2 + adds r1, r4 + lsls r1, 3 + adds r1, r0 + ldr r0, _080AB674 @ =sub_80AB960 + str r0, [r1] +_080AB66A: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080AB670: .4byte gTasks +_080AB674: .4byte sub_80AB960 + thumb_func_end sub_80AB604 + + thumb_func_start sub_80AB678 +sub_80AB678: @ 80AB678 + push {lr} + lsls r0, 24 + lsrs r0, 24 + ldr r1, _080AB68C @ =sub_80C89DC + ldr r2, _080AB690 @ =sub_80AB694 + bl SetTaskFuncWithFollowupFunc + pop {r0} + bx r0 + .align 2, 0 +_080AB68C: .4byte sub_80C89DC +_080AB690: .4byte sub_80AB694 + thumb_func_end sub_80AB678 + + thumb_func_start sub_80AB694 +sub_80AB694: @ 80AB694 + lsls r0, 24 + lsrs r0, 24 + movs r3, 0x1 + ldr r2, _080AB6AC @ =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + strh r3, [r1, 0x8] + ldr r0, _080AB6B0 @ =sub_80AB6B4 + str r0, [r1] + bx lr + .align 2, 0 +_080AB6AC: .4byte gTasks +_080AB6B0: .4byte sub_80AB6B4 + thumb_func_end sub_80AB694 + + thumb_func_start sub_80AB6B4 +sub_80AB6B4: @ 80AB6B4 + push {r4,r5,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r5, _080AB6F8 @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r5 + ldrh r1, [r0, 0x8] + subs r1, 0x1 + strh r1, [r0, 0x8] + lsls r1, 16 + cmp r1, 0 + bgt _080AB6F2 + bl GetMultiplayerId + adds r0, r4, 0 + bl DestroyTask + ldr r0, _080AB6FC @ =0x02019204 + ldrb r1, [r0, 0x8] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r5 + ldr r1, _080AB700 @ =sub_80AB960 + str r1, [r0] + ldr r1, _080AB704 @ =gRngValue + ldr r0, _080AB708 @ =gUnknown_03005D28 + ldr r0, [r0] + str r0, [r1] +_080AB6F2: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080AB6F8: .4byte gTasks +_080AB6FC: .4byte 0x02019204 +_080AB700: .4byte sub_80AB960 +_080AB704: .4byte gRngValue +_080AB708: .4byte gUnknown_03005D28 + thumb_func_end sub_80AB6B4 + + thumb_func_start sub_80AB70C +sub_80AB70C: @ 80AB70C + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x44 + mov r10, r0 + ldrb r0, [r0] + cmp r0, 0x6 + bls _080AB722 + b _080AB93C +_080AB722: + lsls r0, 2 + ldr r1, _080AB72C @ =_080AB730 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080AB72C: .4byte _080AB730 + .align 2, 0 +_080AB730: + .4byte _080AB74C + .4byte _080AB7A0 + .4byte _080AB7B0 + .4byte _080AB800 + .4byte _080AB814 + .4byte _080AB844 + .4byte _080AB8CC +_080AB74C: + ldr r0, _080AB794 @ =gPaletteFade + ldrb r1, [r0, 0x8] + movs r2, 0x80 + orrs r1, r2 + strb r1, [r0, 0x8] + movs r2, 0xC0 + lsls r2, 19 + movs r3, 0xC0 + lsls r3, 9 + add r5, sp, 0x40 + movs r6, 0 + ldr r1, _080AB798 @ =0x040000d4 + movs r4, 0x80 + lsls r4, 5 + mov r8, r5 + ldr r7, _080AB79C @ =0x85000400 + movs r0, 0x85 + lsls r0, 24 + mov r9, r0 +_080AB772: + str r6, [sp, 0x40] + mov r0, r8 + str r0, [r1] + str r2, [r1, 0x4] + str r7, [r1, 0x8] + ldr r0, [r1, 0x8] + adds r2, r4 + subs r3, r4 + cmp r3, r4 + bhi _080AB772 + str r6, [sp, 0x40] + str r5, [r1] + str r2, [r1, 0x4] + lsrs r0, r3, 2 + mov r2, r9 + orrs r0, r2 + b _080AB7E6 + .align 2, 0 +_080AB794: .4byte gPaletteFade +_080AB798: .4byte 0x040000d4 +_080AB79C: .4byte 0x85000400 +_080AB7A0: + ldr r0, _080AB7AC @ =gContestMiscGfx + movs r1, 0xC0 + lsls r1, 19 + bl LZDecompressVram + b _080AB946 + .align 2, 0 +_080AB7AC: .4byte gContestMiscGfx +_080AB7B0: + ldr r0, _080AB7EC @ =gContestAudienceGfx + ldr r4, _080AB7F0 @ =0x06002000 + adds r1, r4, 0 + bl LZDecompressVram + ldr r3, _080AB7F4 @ =0x02015800 + movs r5, 0x80 + lsls r5, 6 + ldr r1, _080AB7F8 @ =0x040000d4 + ldr r6, _080AB7FC @ =0x84000400 + movs r2, 0x80 + lsls r2, 5 + movs r7, 0x84 + lsls r7, 24 +_080AB7CC: + str r4, [r1] + str r3, [r1, 0x4] + str r6, [r1, 0x8] + ldr r0, [r1, 0x8] + adds r4, r2 + adds r3, r2 + subs r5, r2 + cmp r5, r2 + bhi _080AB7CC + str r4, [r1] + str r3, [r1, 0x4] + lsrs r0, r5, 2 + orrs r0, r7 +_080AB7E6: + str r0, [r1, 0x8] + ldr r0, [r1, 0x8] + b _080AB946 + .align 2, 0 +_080AB7EC: .4byte gContestAudienceGfx +_080AB7F0: .4byte 0x06002000 +_080AB7F4: .4byte 0x02015800 +_080AB7F8: .4byte 0x040000d4 +_080AB7FC: .4byte 0x84000400 +_080AB800: + ldr r0, _080AB80C @ =gUnknown_08D1725C + ldr r1, _080AB810 @ =0x0600d000 + bl LZDecompressVram + b _080AB946 + .align 2, 0 +_080AB80C: .4byte gUnknown_08D1725C +_080AB810: .4byte 0x0600d000 +_080AB814: + ldr r0, _080AB830 @ =gUnknown_08D17424 + ldr r4, _080AB834 @ =0x0600e000 + adds r1, r4, 0 + bl LZDecompressVram + ldr r1, _080AB838 @ =0x02018a04 + ldr r0, _080AB83C @ =0x040000d4 + str r4, [r0] + str r1, [r0, 0x4] + ldr r1, _080AB840 @ =0x84000200 + str r1, [r0, 0x8] + ldr r0, [r0, 0x8] + b _080AB946 + .align 2, 0 +_080AB830: .4byte gUnknown_08D17424 +_080AB834: .4byte 0x0600e000 +_080AB838: .4byte 0x02018a04 +_080AB83C: .4byte 0x040000d4 +_080AB840: .4byte 0x84000200 +_080AB844: + ldr r0, _080AB8AC @ =gUnknown_08D17144 + movs r2, 0x80 + lsls r2, 2 + movs r1, 0 + bl LoadCompressedPalette + ldr r5, _080AB8B0 @ =gPlttBufferUnfaded + 0x100 + ldr r6, _080AB8B4 @ =REG_BG0CNT + adds r0, r5, 0 + mov r1, sp + adds r2, r6, 0 + bl CpuSet + ldr r0, _080AB8B8 @ =gUnknown_02038695 + mov r9, r0 + ldrb r0, [r0] + adds r0, 0x5 + lsls r0, 5 + ldr r1, _080AB8BC @ =0xffffff00 + adds r1, r5 + mov r8, r1 + add r0, r8 + add r4, sp, 0x20 + adds r1, r4, 0 + adds r2, r6, 0 + bl CpuSet + adds r0, r4, 0 + adds r1, r5, 0 + adds r2, r6, 0 + bl CpuSet + mov r2, r9 + ldrb r1, [r2] + adds r1, 0x5 + lsls r1, 5 + add r1, r8 + mov r0, sp + adds r2, r6, 0 + bl CpuSet + ldr r1, _080AB8C0 @ =0x02018004 + ldr r0, _080AB8C4 @ =0x040000d4 + mov r2, r8 + str r2, [r0] + str r1, [r0, 0x4] + ldr r1, _080AB8C8 @ =0x84000080 + str r1, [r0, 0x8] + ldr r0, [r0, 0x8] + bl sub_80AB350 + b _080AB946 + .align 2, 0 +_080AB8AC: .4byte gUnknown_08D17144 +_080AB8B0: .4byte gPlttBufferUnfaded + 0x100 +_080AB8B4: .4byte REG_BG0CNT +_080AB8B8: .4byte gUnknown_02038695 +_080AB8BC: .4byte 0xffffff00 +_080AB8C0: .4byte 0x02018004 +_080AB8C4: .4byte 0x040000d4 +_080AB8C8: .4byte 0x84000080 +_080AB8CC: + bl sub_80B1118 + bl sub_80AFA5C + bl sub_80AEB30 + bl sub_80AE8B4 + ldr r1, _080AB924 @ =0x02019204 + movs r4, 0 + strb r0, [r1, 0x12] + bl sub_80AFE30 + bl sub_80B0034 + bl sub_80B00C8 + bl sub_80B0324 + bl sub_80B0518 + ldr r1, _080AB928 @ =gUnknown_02024A72 + strb r4, [r1] + movs r0, 0x1 + strb r0, [r1, 0x1] + movs r3, 0x3 + strb r3, [r1, 0x2] + movs r2, 0x2 + strb r2, [r1, 0x3] + ldr r0, _080AB92C @ =gUnknown_020239F8 + strh r4, [r0] + ldr r4, _080AB930 @ =gUnknown_02024C07 + strb r2, [r4] + ldr r0, _080AB934 @ =gUnknown_02024C08 + strb r3, [r0] + bl sub_80AE858 + ldr r2, _080AB938 @ =gUnknown_02024BE0 + ldrb r1, [r4] + adds r1, r2 + strb r0, [r1] + bl sub_80B292C + b _080AB946 + .align 2, 0 +_080AB924: .4byte 0x02019204 +_080AB928: .4byte gUnknown_02024A72 +_080AB92C: .4byte gUnknown_020239F8 +_080AB930: .4byte gUnknown_02024C07 +_080AB934: .4byte gUnknown_02024C08 +_080AB938: .4byte gUnknown_02024BE0 +_080AB93C: + movs r0, 0 + mov r1, r10 + strb r0, [r1] + movs r0, 0x1 + b _080AB950 +_080AB946: + mov r2, r10 + ldrb r0, [r2] + adds r0, 0x1 + strb r0, [r2] + movs r0, 0 +_080AB950: + add sp, 0x44 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_80AB70C + + thumb_func_start sub_80AB960 +sub_80AB960: @ 80AB960 + push {lr} + lsls r0, 24 + lsrs r3, r0, 24 + ldr r1, _080AB994 @ =gPaletteFade + ldrb r2, [r1, 0x8] + movs r0, 0x7F + ands r0, r2 + strb r0, [r1, 0x8] + ldrb r1, [r1, 0x7] + movs r0, 0x80 + ands r0, r1 + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0 + bne _080AB990 + ldr r0, _080AB998 @ =gTasks + lsls r1, r3, 2 + adds r1, r3 + lsls r1, 3 + adds r1, r0 + strh r2, [r1, 0x8] + strh r2, [r1, 0xA] + ldr r0, _080AB99C @ =sub_80AB9A0 + str r0, [r1] +_080AB990: + pop {r0} + bx r0 + .align 2, 0 +_080AB994: .4byte gPaletteFade +_080AB998: .4byte gTasks +_080AB99C: .4byte sub_80AB9A0 + thumb_func_end sub_80AB960 + + thumb_func_start sub_80AB9A0 +sub_80AB9A0: @ 80AB9A0 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r1, _080AB9C4 @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + movs r2, 0x8 + ldrsh r0, [r0, r2] + adds r2, r1, 0 + cmp r0, 0x4 + bhi _080ABA7C + lsls r0, 2 + ldr r1, _080AB9C8 @ =_080AB9CC + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080AB9C4: .4byte gTasks +_080AB9C8: .4byte _080AB9CC + .align 2, 0 +_080AB9CC: + .4byte _080AB9E0 + .4byte _080ABA0A + .4byte _080ABA28 + .4byte _080ABA44 + .4byte _080ABA7C +_080AB9E0: + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r4, r0, r2 + ldrh r0, [r4, 0xA] + adds r1, r0, 0x1 + strh r1, [r4, 0xA] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x3C + ble _080ABA9C + movs r0, 0 + strh r0, [r4, 0xA] + movs r0, 0x61 + movs r1, 0 + bl PlaySE12WithPanning + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + b _080ABA9C +_080ABA0A: + ldr r1, _080ABA24 @ =gUnknown_030041B4 + ldrh r0, [r1] + adds r0, 0x7 + strh r0, [r1] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0xA0 + ble _080ABA9C + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r2 + b _080ABA68 + .align 2, 0 +_080ABA24: .4byte gUnknown_030041B4 +_080ABA28: + bl sub_80B2280 + ldr r0, _080ABA40 @ =gTasks + lsls r1, r4, 2 + adds r1, r4 + lsls r1, 3 + adds r1, r0 + ldrh r0, [r1, 0x8] + adds r0, 0x1 + strh r0, [r1, 0x8] + b _080ABA9C + .align 2, 0 +_080ABA40: .4byte gTasks +_080ABA44: + ldr r3, _080ABA70 @ =REG_BG0CNT + ldrb r2, [r3] + movs r1, 0x4 + negs r1, r1 + adds r0, r1, 0 + ands r0, r2 + strb r0, [r3] + ldr r2, _080ABA74 @ =REG_BG2CNT + ldrb r0, [r2] + ands r1, r0 + strb r1, [r2] + bl sub_80B1B14 + ldr r1, _080ABA78 @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 +_080ABA68: + ldrh r1, [r0, 0x8] + adds r1, 0x1 + strh r1, [r0, 0x8] + b _080ABA9C + .align 2, 0 +_080ABA70: .4byte REG_BG0CNT +_080ABA74: .4byte REG_BG2CNT +_080ABA78: .4byte gTasks +_080ABA7C: + ldr r0, _080ABAA4 @ =0x02019204 + ldrb r1, [r0, 0x6] + movs r0, 0x40 + ands r0, r1 + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0 + bne _080ABA9C + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r2 + strh r1, [r0, 0x8] + strh r1, [r0, 0xA] + ldr r1, _080ABAA8 @ =sub_80ABB70 + str r1, [r0] +_080ABA9C: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080ABAA4: .4byte 0x02019204 +_080ABAA8: .4byte sub_80ABB70 + thumb_func_end sub_80AB9A0 + + thumb_func_start sub_80ABAAC +sub_80ABAAC: @ 80ABAAC + push {lr} + bl AnimateSprites + bl RunTasks + bl BuildOamBuffer + bl UpdatePaletteFade + pop {r0} + bx r0 + thumb_func_end sub_80ABAAC + + thumb_func_start sub_80ABAC4 +sub_80ABAC4: @ 80ABAC4 + push {lr} + ldr r1, _080ABB3C @ =REG_BG0HOFS + ldr r0, _080ABB40 @ =gUnknown_030042A4 + ldrh r0, [r0] + strh r0, [r1] + adds r1, 0x2 + ldr r0, _080ABB44 @ =gUnknown_030042A0 + ldrh r0, [r0] + strh r0, [r1] + adds r1, 0x2 + ldr r0, _080ABB48 @ =gUnknown_030042C0 + ldrh r0, [r0] + strh r0, [r1] + adds r1, 0x2 + ldr r0, _080ABB4C @ =gUnknown_030041B4 + ldrh r0, [r0] + strh r0, [r1] + adds r1, 0x2 + ldr r0, _080ABB50 @ =gUnknown_03004288 + ldrh r0, [r0] + strh r0, [r1] + adds r1, 0x2 + ldr r0, _080ABB54 @ =gUnknown_03004280 + ldrh r0, [r0] + strh r0, [r1] + adds r1, 0x2 + ldr r0, _080ABB58 @ =gUnknown_030041B0 + ldrh r0, [r0] + strh r0, [r1] + adds r1, 0x2 + ldr r0, _080ABB5C @ =gUnknown_030041B8 + ldrh r0, [r0] + strh r0, [r1] + adds r1, 0x22 + ldr r0, _080ABB60 @ =gUnknown_030042C4 + ldrh r0, [r0] + strh r0, [r1] + adds r1, 0x4 + ldr r0, _080ABB64 @ =gUnknown_03004240 + ldrh r0, [r0] + strh r0, [r1] + subs r1, 0x2 + ldr r0, _080ABB68 @ =gUnknown_03004200 + ldrh r0, [r0] + strh r0, [r1] + adds r1, 0x4 + ldr r0, _080ABB6C @ =gUnknown_03004244 + ldrh r0, [r0] + strh r0, [r1] + bl TransferPlttBuffer + bl LoadOam + bl ProcessSpriteCopyRequests + bl sub_8089668 + pop {r0} + bx r0 + .align 2, 0 +_080ABB3C: .4byte REG_BG0HOFS +_080ABB40: .4byte gUnknown_030042A4 +_080ABB44: .4byte gUnknown_030042A0 +_080ABB48: .4byte gUnknown_030042C0 +_080ABB4C: .4byte gUnknown_030041B4 +_080ABB50: .4byte gUnknown_03004288 +_080ABB54: .4byte gUnknown_03004280 +_080ABB58: .4byte gUnknown_030041B0 +_080ABB5C: .4byte gUnknown_030041B8 +_080ABB60: .4byte gUnknown_030042C4 +_080ABB64: .4byte gUnknown_03004240 +_080ABB68: .4byte gUnknown_03004200 +_080ABB6C: .4byte gUnknown_03004244 + thumb_func_end sub_80ABAC4 + + thumb_func_start sub_80ABB70 +sub_80ABB70: @ 80ABB70 + push {r4-r6,lr} + sub sp, 0x4 + lsls r0, 24 + lsrs r6, r0, 24 + ldr r0, _080ABBB0 @ =gUnknown_030042A0 + movs r1, 0 + strh r1, [r0] + ldr r0, _080ABBB4 @ =gUnknown_03004280 + strh r1, [r0] + bl sub_80B0D7C + ldr r1, _080ABBB8 @ =gPlttBufferUnfaded + ldr r2, _080ABBBC @ =0x02018204 + ldr r0, _080ABBC0 @ =0x040000d4 + str r1, [r0] + str r2, [r0, 0x4] + ldr r1, _080ABBC4 @ =0x84000100 + str r1, [r0, 0x8] + ldr r0, [r0, 0x8] + ldr r0, _080ABBC8 @ =gUnknown_02038695 + ldrb r0, [r0] + bl sub_80AF59C + lsls r0, 24 + cmp r0, 0 + bne _080ABBD4 + ldr r0, _080ABBCC @ =gUnknown_020238CC + ldr r1, _080ABBD0 @ =gUnknown_083CAF84 + bl StringCopy + b _080ABBDC + .align 2, 0 +_080ABBB0: .4byte gUnknown_030042A0 +_080ABBB4: .4byte gUnknown_03004280 +_080ABBB8: .4byte gPlttBufferUnfaded +_080ABBBC: .4byte 0x02018204 +_080ABBC0: .4byte 0x040000d4 +_080ABBC4: .4byte 0x84000100 +_080ABBC8: .4byte gUnknown_02038695 +_080ABBCC: .4byte gUnknown_020238CC +_080ABBD0: .4byte gUnknown_083CAF84 +_080ABBD4: + ldr r0, _080ABC20 @ =gUnknown_020238CC + ldr r1, _080ABC24 @ =gUnknown_083CAFAE + bl StringCopy +_080ABBDC: + ldr r5, _080ABC20 @ =gUnknown_020238CC + ldr r0, _080ABC28 @ =0x02019204 + ldrb r1, [r0, 0x1] + adds r1, 0x1 + adds r0, r5, 0 + bl sub_80AE020 + bl sub_80AF138 + ldr r4, _080ABC2C @ =gStringVar4 + adds r0, r4, 0 + adds r1, r5, 0 + bl StringExpandPlaceholders + ldr r0, _080ABC30 @ =gMenuWindow + movs r2, 0xC2 + lsls r2, 2 + movs r1, 0xF + str r1, [sp] + adds r1, r4, 0 + movs r3, 0x1 + bl sub_8002EB0 + ldr r1, _080ABC34 @ =gTasks + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 3 + adds r0, r1 + ldr r1, _080ABC38 @ =sub_80ABC3C + str r1, [r0] + add sp, 0x4 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080ABC20: .4byte gUnknown_020238CC +_080ABC24: .4byte gUnknown_083CAFAE +_080ABC28: .4byte 0x02019204 +_080ABC2C: .4byte gStringVar4 +_080ABC30: .4byte gMenuWindow +_080ABC34: .4byte gTasks +_080ABC38: .4byte sub_80ABC3C + thumb_func_end sub_80ABB70 + + thumb_func_start sub_80ABC3C +sub_80ABC3C: @ 80ABC3C + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, _080ABC64 @ =gMenuWindow + bl sub_80037A0 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080ABC5E + ldr r0, _080ABC68 @ =gTasks + lsls r1, r4, 2 + adds r1, r4 + lsls r1, 3 + adds r1, r0 + ldr r0, _080ABC6C @ =sub_80ABC70 + str r0, [r1] +_080ABC5E: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080ABC64: .4byte gMenuWindow +_080ABC68: .4byte gTasks +_080ABC6C: .4byte sub_80ABC70 + thumb_func_end sub_80ABC3C + + thumb_func_start sub_80ABC70 +sub_80ABC70: @ 80ABC70 + push {r4,r5,lr} + lsls r0, 24 + lsrs r4, r0, 24 + adds r5, r4, 0 + ldr r0, _080ABCB0 @ =gMain + ldrh r1, [r0, 0x2E] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + bne _080ABC88 + cmp r1, 0x2 + bne _080ABCCE +_080ABC88: + movs r0, 0x5 + bl PlaySE + ldr r0, _080ABCB4 @ =gUnknown_02038695 + ldrb r0, [r0] + bl sub_80AF59C + lsls r0, 24 + cmp r0, 0 + bne _080ABCC0 + movs r0, 0x1 + bl sub_80AFFE0 + ldr r0, _080ABCB8 @ =gTasks + lsls r1, r4, 2 + adds r1, r4 + lsls r1, 3 + adds r1, r0 + ldr r0, _080ABCBC @ =sub_80ABCDC + b _080ABCCC + .align 2, 0 +_080ABCB0: .4byte gMain +_080ABCB4: .4byte gUnknown_02038695 +_080ABCB8: .4byte gTasks +_080ABCBC: .4byte sub_80ABCDC +_080ABCC0: + ldr r0, _080ABCD4 @ =gTasks + lsls r1, r5, 2 + adds r1, r5 + lsls r1, 3 + adds r1, r0 + ldr r0, _080ABCD8 @ =sub_80AC0C8 +_080ABCCC: + str r0, [r1] +_080ABCCE: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080ABCD4: .4byte gTasks +_080ABCD8: .4byte sub_80AC0C8 + thumb_func_end sub_80ABC70 + + thumb_func_start sub_80ABCDC +sub_80ABCDC: @ 80ABCDC + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x2C + lsls r0, 24 + lsrs r0, 24 + str r0, [sp, 0x28] + ldr r0, _080ABD80 @ =gUnknown_030042A0 + movs r1, 0xA0 + strh r1, [r0] + ldr r0, _080ABD84 @ =gUnknown_03004280 + strh r1, [r0] + ldr r5, _080ABD88 @ =gUnknown_03004210 + ldr r4, _080ABD8C @ =gUnknown_083CA340 + ldrb r2, [r4] + ldrb r3, [r4, 0x1] + ldrb r0, [r4, 0x2] + str r0, [sp] + ldrb r0, [r4, 0x3] + str r0, [sp, 0x4] + adds r0, r5, 0 + movs r1, 0 + bl FillWindowRect_DefaultPalette + movs r6, 0 + ldr r0, _080ABD90 @ =gUnknown_02038695 + mov r8, r0 + ldr r7, _080ABD94 @ =0x02019260 + mov r9, r5 + mov r10, r4 +_080ABD1C: + lsls r1, r6, 1 + mov r3, r8 + ldrb r2, [r3] + lsls r0, r2, 6 + adds r1, r0 + ldr r0, _080ABD98 @ =gUnknown_0203858E + adds r1, r0 + ldrh r4, [r1] + add r5, sp, 0x8 + lsls r0, r2, 3 + subs r0, r2 + lsls r0, 2 + adds r0, r7 + ldrh r0, [r0, 0x8] + cmp r0, 0 + beq _080ABDA0 + adds r0, r2, 0 + bl sub_80B214C + lsls r0, 24 + cmp r0, 0 + beq _080ABDA0 + mov r2, r8 + ldrb r1, [r2] + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + adds r0, r7 + ldrh r0, [r0, 0x8] + adds r1, r4, 0 + bl AreMovesContestCombo + lsls r0, 24 + cmp r0, 0 + beq _080ABDA0 + mov r3, r8 + ldrb r1, [r3] + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + adds r0, r7 + ldrb r1, [r0, 0x15] + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + beq _080ABDA0 + add r0, sp, 0x8 + ldr r1, _080ABD9C @ =gUnknownText_UnknownFormatting2 + b _080ABDC6 + .align 2, 0 +_080ABD80: .4byte gUnknown_030042A0 +_080ABD84: .4byte gUnknown_03004280 +_080ABD88: .4byte gUnknown_03004210 +_080ABD8C: .4byte gUnknown_083CA340 +_080ABD90: .4byte gUnknown_02038695 +_080ABD94: .4byte 0x02019260 +_080ABD98: .4byte gUnknown_0203858E +_080ABD9C: .4byte gUnknownText_UnknownFormatting2 +_080ABDA0: + cmp r4, 0 + beq _080ABDCC + mov r1, r8 + ldrb r0, [r1] + lsls r1, r0, 3 + subs r1, r0 + lsls r1, 2 + adds r1, r7 + ldrh r0, [r1, 0x8] + cmp r0, r4 + bne _080ABDCC + ldr r0, _080ABE74 @ =gContestMoves + lsls r1, r4, 3 + adds r1, r0 + ldrb r0, [r1] + cmp r0, 0x3 + beq _080ABDCC + add r0, sp, 0x8 + ldr r1, _080ABE78 @ =gUnknownText_UnknownFormatting3 +_080ABDC6: + bl StringCopy + adds r5, r0, 0 +_080ABDCC: + movs r0, 0xD + adds r1, r4, 0 + muls r1, r0 + ldr r0, _080ABE7C @ =gMoveNames + adds r1, r0 + adds r0, r5, 0 + bl StringCopy + lsls r1, r6, 2 + adds r2, r1, r6 + lsls r2, 18 + movs r3, 0xC2 + lsls r3, 18 + adds r2, r3 + lsrs r2, 16 + mov r3, r10 + adds r0, r1, r3 + ldrb r3, [r0] + lsls r3, 3 + adds r3, 0x4 + lsls r3, 24 + lsrs r3, 24 + ldr r0, _080ABE80 @ =gUnknown_083CA340 + 0x1 + adds r1, r0 + ldrb r0, [r1] + lsls r0, 3 + str r0, [sp] + movs r0, 0x1 + str r0, [sp, 0x4] + mov r0, r9 + add r1, sp, 0x8 + bl sub_8002E4C + mov r0, r9 + bl sub_8002F44 + adds r0, r6, 0x1 + lsls r0, 24 + lsrs r6, r0, 24 + cmp r6, 0x3 + bhi _080ABE20 + b _080ABD1C +_080ABE20: + ldr r1, _080ABE84 @ =0x0000ffff + ldr r3, _080ABE88 @ =0x00002d9f + movs r0, 0x48 + str r0, [sp] + movs r0, 0 + movs r2, 0xC + bl sub_814A5C0 + ldr r4, _080ABE8C @ =0x02019204 + movs r0, 0 + ldrsb r0, [r4, r0] + bl sub_80AC0AC + ldr r2, _080ABE90 @ =gUnknown_02038570 + ldrb r1, [r4] + lsls r1, 1 + ldr r0, _080ABE94 @ =gUnknown_02038695 + ldrb r0, [r0] + lsls r0, 6 + adds r1, r0 + adds r2, 0x1E + adds r1, r2 + ldrh r0, [r1] + bl sub_80AEBEC + ldr r1, _080ABE98 @ =gTasks + ldr r2, [sp, 0x28] + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + adds r0, r1 + ldr r1, _080ABE9C @ =sub_80ABEA0 + str r1, [r0] + add sp, 0x2C + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080ABE74: .4byte gContestMoves +_080ABE78: .4byte gUnknownText_UnknownFormatting3 +_080ABE7C: .4byte gMoveNames +_080ABE80: .4byte gUnknown_083CA340 + 0x1 +_080ABE84: .4byte 0x0000ffff +_080ABE88: .4byte 0x00002d9f +_080ABE8C: .4byte 0x02019204 +_080ABE90: .4byte gUnknown_02038570 +_080ABE94: .4byte gUnknown_02038695 +_080ABE98: .4byte gTasks +_080ABE9C: .4byte sub_80ABEA0 + thumb_func_end sub_80ABCDC + + thumb_func_start sub_80ABEA0 +sub_80ABEA0: @ 80ABEA0 + push {r4-r7,lr} + sub sp, 0x8 + lsls r0, 24 + lsrs r7, r0, 24 + movs r6, 0 + ldr r3, _080ABEF4 @ =gMain + ldr r1, _080ABEF8 @ =gUnknown_02038570 + ldr r0, _080ABEFC @ =gUnknown_02038695 + ldrb r0, [r0] + lsls r0, 6 + adds r1, 0x1E + adds r1, r0, r1 + movs r2, 0x3 +_080ABEBA: + ldrh r0, [r1] + cmp r0, 0 + beq _080ABEC6 + adds r0, r6, 0x1 + lsls r0, 24 + lsrs r6, r0, 24 +_080ABEC6: + adds r1, 0x2 + subs r2, 0x1 + cmp r2, 0 + bge _080ABEBA + ldrh r0, [r3, 0x2E] + movs r5, 0x1 + ands r5, r0 + cmp r5, 0 + beq _080ABF08 + bl sub_814A7FC + movs r0, 0x5 + bl PlaySE + ldr r0, _080ABF00 @ =gTasks + lsls r1, r7, 2 + adds r1, r7 + lsls r1, 3 + adds r1, r0 + ldr r0, _080ABF04 @ =sub_80AC0C8 + str r0, [r1] + b _080AC098 + .align 2, 0 +_080ABEF4: .4byte gMain +_080ABEF8: .4byte gUnknown_02038570 +_080ABEFC: .4byte gUnknown_02038695 +_080ABF00: .4byte gTasks +_080ABF04: .4byte sub_80AC0C8 +_080ABF08: + ldrh r0, [r3, 0x30] + cmp r0, 0x20 + bne _080ABF10 + b _080AC098 +_080ABF10: + cmp r0, 0x20 + bgt _080ABF1A + cmp r0, 0x2 + beq _080ABF26 + b _080AC098 +_080ABF1A: + cmp r0, 0x40 + beq _080ABFEC + cmp r0, 0x80 + bne _080ABF24 + b _080AC048 +_080ABF24: + b _080AC098 +_080ABF26: + bl sub_814A904 + movs r0, 0x5 + bl PlaySE + movs r0, 0 + bl sub_80AFFE0 + ldr r0, _080ABF64 @ =gUnknown_03004210 + ldr r1, _080ABF68 @ =gUnknown_083CA340 + ldrb r2, [r1] + ldrb r3, [r1, 0x1] + ldrb r4, [r1, 0x2] + str r4, [sp] + ldrb r1, [r1, 0x3] + str r1, [sp, 0x4] + movs r1, 0 + bl FillWindowRect_DefaultPalette + ldr r0, _080ABF6C @ =gUnknown_02038695 + ldrb r0, [r0] + bl sub_80AF59C + lsls r0, 24 + cmp r0, 0 + bne _080ABF78 + ldr r0, _080ABF70 @ =gUnknown_020238CC + ldr r1, _080ABF74 @ =gUnknown_083CAF84 + bl StringCopy + b _080ABF80 + .align 2, 0 +_080ABF64: .4byte gUnknown_03004210 +_080ABF68: .4byte gUnknown_083CA340 +_080ABF6C: .4byte gUnknown_02038695 +_080ABF70: .4byte gUnknown_020238CC +_080ABF74: .4byte gUnknown_083CAF84 +_080ABF78: + ldr r0, _080ABFC8 @ =gUnknown_020238CC + ldr r1, _080ABFCC @ =gUnknown_083CAFAE + bl StringCopy +_080ABF80: + ldr r5, _080ABFC8 @ =gUnknown_020238CC + ldr r0, _080ABFD0 @ =0x02019204 + ldrb r1, [r0, 0x1] + adds r1, 0x1 + adds r0, r5, 0 + bl sub_80AE020 + bl sub_80AF138 + ldr r4, _080ABFD4 @ =gStringVar4 + adds r0, r4, 0 + adds r1, r5, 0 + bl StringExpandPlaceholders + ldr r0, _080ABFD8 @ =gMenuWindow + movs r2, 0xC2 + lsls r2, 2 + movs r1, 0xF + str r1, [sp] + adds r1, r4, 0 + movs r3, 0x1 + bl sub_8003460 + ldr r0, _080ABFDC @ =gUnknown_030042A0 + movs r1, 0 + strh r1, [r0] + ldr r0, _080ABFE0 @ =gUnknown_03004280 + strh r1, [r0] + ldr r1, _080ABFE4 @ =gTasks + lsls r0, r7, 2 + adds r0, r7 + lsls r0, 3 + adds r0, r1 + ldr r1, _080ABFE8 @ =sub_80ABC70 + str r1, [r0] + b _080AC098 + .align 2, 0 +_080ABFC8: .4byte gUnknown_020238CC +_080ABFCC: .4byte gUnknown_083CAFAE +_080ABFD0: .4byte 0x02019204 +_080ABFD4: .4byte gStringVar4 +_080ABFD8: .4byte gMenuWindow +_080ABFDC: .4byte gUnknown_030042A0 +_080ABFE0: .4byte gUnknown_03004280 +_080ABFE4: .4byte gTasks +_080ABFE8: .4byte sub_80ABC70 +_080ABFEC: + ldr r4, _080AC000 @ =0x02019204 + movs r0, 0 + ldrsb r0, [r4, r0] + bl nullsub_17 + ldrb r0, [r4] + cmp r0, 0 + bne _080AC004 + subs r0, r6, 0x1 + b _080AC006 + .align 2, 0 +_080AC000: .4byte 0x02019204 +_080AC004: + subs r0, 0x1 +_080AC006: + strb r0, [r4] + ldr r4, _080AC03C @ =0x02019204 + movs r0, 0 + ldrsb r0, [r4, r0] + bl sub_80AC0AC + bl sub_80AED58 + ldr r2, _080AC040 @ =gUnknown_02038570 + ldrb r1, [r4] + lsls r1, 1 + ldr r0, _080AC044 @ =gUnknown_02038695 + ldrb r0, [r0] + lsls r0, 6 + adds r1, r0 + adds r2, 0x1E + adds r1, r2 + ldrh r0, [r1] + bl sub_80AEBEC + cmp r6, 0x1 + bls _080AC098 + movs r0, 0x5 + bl PlaySE + b _080AC098 + .align 2, 0 +_080AC03C: .4byte 0x02019204 +_080AC040: .4byte gUnknown_02038570 +_080AC044: .4byte gUnknown_02038695 +_080AC048: + ldr r4, _080AC060 @ =0x02019204 + movs r0, 0 + ldrsb r0, [r4, r0] + bl nullsub_17 + ldrb r1, [r4] + subs r0, r6, 0x1 + cmp r1, r0 + bne _080AC064 + strb r5, [r4] + b _080AC068 + .align 2, 0 +_080AC060: .4byte 0x02019204 +_080AC064: + adds r0, r1, 0x1 + strb r0, [r4] +_080AC068: + ldr r4, _080AC0A0 @ =0x02019204 + movs r0, 0 + ldrsb r0, [r4, r0] + bl sub_80AC0AC + bl sub_80AED58 + ldr r2, _080AC0A4 @ =gUnknown_02038570 + ldrb r1, [r4] + lsls r1, 1 + ldr r0, _080AC0A8 @ =gUnknown_02038695 + ldrb r0, [r0] + lsls r0, 6 + adds r1, r0 + adds r2, 0x1E + adds r1, r2 + ldrh r0, [r1] + bl sub_80AEBEC + cmp r6, 0x1 + bls _080AC098 + movs r0, 0x5 + bl PlaySE +_080AC098: + add sp, 0x8 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080AC0A0: .4byte 0x02019204 +_080AC0A4: .4byte gUnknown_02038570 +_080AC0A8: .4byte gUnknown_02038695 + thumb_func_end sub_80ABEA0 + + thumb_func_start sub_80AC0AC +sub_80AC0AC: @ 80AC0AC + push {lr} + adds r1, r0, 0 + lsls r1, 28 + movs r0, 0xB0 + lsls r0, 23 + adds r1, r0 + lsrs r1, 24 + movs r0, 0x4 + bl sub_814A880 + pop {r0} + bx r0 + thumb_func_end sub_80AC0AC + + thumb_func_start nullsub_17 +nullsub_17: @ 80AC0C4 + bx lr + thumb_func_end nullsub_17 + + thumb_func_start sub_80AC0C8 +sub_80AC0C8: @ 80AC0C8 + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + ldr r0, _080AC120 @ =gUnknown_0203869A + ldrb r1, [r0] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080AC13C + ldr r4, _080AC124 @ =gUnknown_02038695 + ldrb r0, [r4] + bl sub_80AF15C + ldrb r2, [r4] + lsls r1, r2, 3 + subs r1, r2 + lsls r1, 2 + ldr r2, _080AC128 @ =0x02019260 + adds r1, r2 + strh r0, [r1, 0x6] + ldr r4, _080AC12C @ =sub_80C8A38 + adds r0, r4, 0 + movs r1, 0 + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080AC130 @ =sub_80AC15C + adds r1, r4, 0 + bl SetTaskFuncWithFollowupFunc + ldr r1, _080AC134 @ =gTasks + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r0, r1 + ldr r1, _080AC138 @ =nullsub_89 + str r1, [r0] + bl sub_80AF860 + movs r0, 0 + bl sub_80AFFE0 + b _080AC14E + .align 2, 0 +_080AC120: .4byte gUnknown_0203869A +_080AC124: .4byte gUnknown_02038695 +_080AC128: .4byte 0x02019260 +_080AC12C: .4byte sub_80C8A38 +_080AC130: .4byte sub_80AC15C +_080AC134: .4byte gTasks +_080AC138: .4byte nullsub_89 +_080AC13C: + bl sub_80AF1B8 + ldr r0, _080AC154 @ =gTasks + lsls r1, r5, 2 + adds r1, r5 + lsls r1, 3 + adds r1, r0 + ldr r0, _080AC158 @ =sub_80AC188 + str r0, [r1] +_080AC14E: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080AC154: .4byte gTasks +_080AC158: .4byte sub_80AC188 + thumb_func_end sub_80AC0C8 + + thumb_func_start sub_80AC15C +sub_80AC15C: @ 80AC15C + push {lr} + lsls r0, 24 + lsrs r0, 24 + bl DestroyTask + ldr r2, _080AC17C @ =gTasks + ldr r0, _080AC180 @ =0x02019204 + ldrb r1, [r0, 0x8] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r2 + ldr r1, _080AC184 @ =sub_80AC188 + str r1, [r0] + pop {r0} + bx r0 + .align 2, 0 +_080AC17C: .4byte gTasks +_080AC180: .4byte 0x02019204 +_080AC184: .4byte sub_80AC188 + thumb_func_end sub_80AC15C + + thumb_func_start sub_80AC188 +sub_80AC188: @ 80AC188 + push {r4,r5,lr} + adds r5, r0, 0 + lsls r5, 24 + lsrs r5, 24 + bl sub_80AF138 + ldr r0, _080AC1E4 @ =gUnknown_030042A0 + movs r1, 0 + strh r1, [r0] + ldr r0, _080AC1E8 @ =gUnknown_03004280 + strh r1, [r0] + movs r0, 0 + bl sub_80AFFE0 + ldr r1, _080AC1EC @ =gPlttBufferFaded + ldr r0, _080AC1F0 @ =0x02018604 + movs r2, 0x80 + lsls r2, 3 + ldr r4, _080AC1F4 @ =0x040000d4 + str r1, [r4] + str r0, [r4, 0x4] + lsrs r1, r2, 2 + movs r3, 0x84 + lsls r3, 24 + orrs r1, r3 + str r1, [r4, 0x8] + ldr r1, [r4, 0x8] + ldr r1, _080AC1F8 @ =0xfffffc00 + adds r0, r1 + movs r1, 0 + bl LoadPalette + ldr r1, _080AC1FC @ =gTasks + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r0, r1 + movs r1, 0 + strh r1, [r0, 0x8] + strh r1, [r0, 0xA] + ldr r1, _080AC200 @ =sub_80AC204 + str r1, [r0] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080AC1E4: .4byte gUnknown_030042A0 +_080AC1E8: .4byte gUnknown_03004280 +_080AC1EC: .4byte gPlttBufferFaded +_080AC1F0: .4byte 0x02018604 +_080AC1F4: .4byte 0x040000d4 +_080AC1F8: .4byte 0xfffffc00 +_080AC1FC: .4byte gTasks +_080AC200: .4byte sub_80AC204 + thumb_func_end sub_80AC188 + + thumb_func_start sub_80AC204 +sub_80AC204: @ 80AC204 + push {r4,lr} + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080AC248 @ =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r4, r1, r2 + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x2 + ble _080AC242 + movs r0, 0 + strh r0, [r4, 0x8] + ldrh r0, [r4, 0xA] + adds r0, 0x1 + strh r0, [r4, 0xA] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x2 + bne _080AC242 + bl sub_80B1BDC + movs r0, 0x1 + bl sub_80B25E4 + ldr r0, _080AC24C @ =sub_80AC250 + str r0, [r4] +_080AC242: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080AC248: .4byte gTasks +_080AC24C: .4byte sub_80AC250 + thumb_func_end sub_80AC204 + + thumb_func_start sub_80AC250 +sub_80AC250: @ 80AC250 + push {lr} + lsls r0, 24 + lsrs r2, r0, 24 + ldr r0, _080AC278 @ =0x02019204 + ldrh r1, [r0, 0x6] + movs r0, 0x90 + lsls r0, 2 + ands r0, r1 + cmp r0, 0 + bne _080AC272 + ldr r0, _080AC27C @ =gTasks + lsls r1, r2, 2 + adds r1, r2 + lsls r1, 3 + adds r1, r0 + ldr r0, _080AC280 @ =sub_80AC284 + str r0, [r1] +_080AC272: + pop {r0} + bx r0 + .align 2, 0 +_080AC278: .4byte 0x02019204 +_080AC27C: .4byte gTasks +_080AC280: .4byte sub_80AC284 + thumb_func_end sub_80AC250 + + thumb_func_start sub_80AC284 +sub_80AC284: @ 80AC284 + push {lr} + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080AC2BC @ =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r2, r1, r2 + ldrh r0, [r2, 0x8] + adds r0, 0x1 + strh r0, [r2, 0x8] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x13 + ble _080AC2B6 + ldr r1, _080AC2C0 @ =0x02019204 + movs r0, 0 + strb r0, [r1, 0x10] + ldr r0, _080AC2C4 @ =gRngValue + ldr r0, [r0] + str r0, [r1, 0x18] + movs r0, 0 + strh r0, [r2, 0x8] + ldr r0, _080AC2C8 @ =sub_80AC2CC + str r0, [r2] +_080AC2B6: + pop {r0} + bx r0 + .align 2, 0 +_080AC2BC: .4byte gTasks +_080AC2C0: .4byte 0x02019204 +_080AC2C4: .4byte gRngValue +_080AC2C8: .4byte sub_80AC2CC + thumb_func_end sub_80AC284 + + thumb_func_start sub_80AC2CC +sub_80AC2CC: @ 80AC2CC + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x8 + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + ldr r2, _080AC308 @ =0x02019204 + ldrb r7, [r2, 0x11] + ldr r1, _080AC30C @ =gTasks + lsls r0, 2 + add r0, r8 + lsls r0, 3 + adds r0, r1 + movs r3, 0x8 + ldrsh r0, [r0, r3] + adds r6, r2, 0 + mov r12, r1 + cmp r0, 0x3B + bls _080AC2FC + bl _080AD8CA +_080AC2FC: + lsls r0, 2 + ldr r1, _080AC310 @ =_080AC314 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080AC308: .4byte 0x02019204 +_080AC30C: .4byte gTasks +_080AC310: .4byte _080AC314 + .align 2, 0 +_080AC314: + .4byte _080AC404 + .4byte _080AC4B4 + .4byte _080AC4D4 + .4byte _080AC534 + .4byte _080AC5E8 + .4byte _080AC638 + .4byte _080AC6F8 + .4byte _080AC730 + .4byte _080AC77C + .4byte _080AC7F4 + .4byte _080AD750 + .4byte _080AD77C + .4byte _080AC98C + .4byte _080AC9C0 + .4byte _080ACEC0 + .4byte _080ACFD4 + .4byte _080AD040 + .4byte _080AD070 + .4byte _080AD168 + .4byte _080AD11A + .4byte _080AD7B8 + .4byte _080AD868 + .4byte _080AD88C + .4byte _080AC81E + .4byte _080AC8CC + .4byte _080ACAD8 + .4byte _080ACAEE + .4byte _080ACBB0 + .4byte _080ACBDC + .4byte _080ACC44 + .4byte _080ACD2A + .4byte _080AD7E8 + .4byte _080AD840 + .4byte _080AD648 + .4byte _080AD6D8 + .4byte _080AC9EC + .4byte _080ACA24 + .4byte _080ACA44 + .4byte _080ACA84 + .4byte _080ACC98 + .4byte _080ACD00 + .4byte _080AD1A4 + .4byte _080AD8CA + .4byte _080AD514 + .4byte _080AD8CA + .4byte _080ACFA8 + .4byte _080AD0FA + .4byte _080AC96C + .4byte _080AC8F8 + .4byte _080AC94C + .4byte _080ACAAE + .4byte _080ACDC8 + .4byte _080ACE64 + .4byte _080AD316 + .4byte _080AD3D0 + .4byte _080AD700 + .4byte _080AD71C + .4byte _080AD53C + .4byte _080AD5D0 + .4byte _080AD624 +_080AC404: + bl sub_80B0D7C + movs r6, 0 + ldr r0, _080AC484 @ =0x02019204 + adds r1, r0, 0 + adds r1, 0xCC + ldrb r0, [r0, 0x10] + mov r4, r8 + lsls r4, 2 + mov r9, r4 + ldrb r5, [r1] + cmp r0, r5 + beq _080AC42C + adds r2, r1, 0 + adds r1, r0, 0 +_080AC422: + adds r6, 0x1 + adds r0, r6, r2 + ldrb r0, [r0] + cmp r1, r0 + bne _080AC422 +_080AC42C: + ldr r4, _080AC484 @ =0x02019204 + strb r6, [r4, 0x11] + ldrb r7, [r4, 0x11] + ldr r0, _080AC488 @ =gUnknown_0203869A + ldrb r1, [r0] + movs r5, 0x1 + adds r0, r5, 0 + ands r0, r1 + cmp r0, 0 + beq _080AC498 + ldrb r0, [r4, 0x7] + movs r1, 0x4 + orrs r0, r1 + strb r0, [r4, 0x7] + bl sub_80AE074 + lsls r0, 24 + cmp r0, 0 + beq _080AC458 + ldrb r0, [r4, 0x11] + bl sub_80B114C +_080AC458: + ldr r4, _080AC48C @ =sub_80C8C80 + adds r0, r4, 0 + movs r1, 0 + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080AC490 @ =sub_80AD8DC + adds r1, r4, 0 + bl SetTaskFuncWithFollowupFunc + bl sub_80AF860 + ldr r1, _080AC494 @ =gTasks + mov r0, r9 + add r0, r8 + lsls r0, 3 + adds r0, r1 + strh r5, [r0, 0x8] + bl _080AD8CA + .align 2, 0 +_080AC484: .4byte 0x02019204 +_080AC488: .4byte gUnknown_0203869A +_080AC48C: .4byte sub_80C8C80 +_080AC490: .4byte sub_80AD8DC +_080AC494: .4byte gTasks +_080AC498: + adds r0, r7, 0 + bl sub_80B114C + ldr r0, _080AC4B0 @ =gTasks + mov r1, r9 + add r1, r8 + lsls r1, 3 + adds r1, r0 + movs r0, 0x2 + strh r0, [r1, 0x8] + bl _080AD8CA + .align 2, 0 +_080AC4B0: .4byte gTasks +_080AC4B4: + ldrb r1, [r6, 0x7] + movs r0, 0x4 + ands r0, r1 + cmp r0, 0 + beq _080AC4C2 + bl _080AD8CA +_080AC4C2: + mov r1, r8 + lsls r0, r1, 2 + add r0, r8 + lsls r0, 3 + add r0, r12 + movs r1, 0x2 + strh r1, [r0, 0x8] + bl _080AD8CA +_080AC4D4: + lsls r0, r7, 3 + subs r0, r7 + lsls r0, 2 + ldr r1, _080AC508 @ =0x02019260 + adds r2, r0, r1 + ldrb r1, [r2, 0xC] + movs r0, 0x6 + ands r0, r1 + cmp r0, 0 + bne _080AC4F6 + ldrb r1, [r2, 0xB] + movs r0, 0x80 + ands r0, r1 + lsls r0, 24 + lsrs r6, r0, 24 + cmp r6, 0 + beq _080AC50C +_080AC4F6: + mov r2, r8 + lsls r0, r2, 2 + add r0, r8 + lsls r0, 3 + add r0, r12 + movs r1, 0x1F + strh r1, [r0, 0x8] + bl _080AD8CA + .align 2, 0 +_080AC508: .4byte 0x02019260 +_080AC50C: + bl sub_80AF138 + adds r0, r7, 0 + movs r1, 0 + bl sub_80B0CDC + ldr r0, _080AC530 @ =gTasks + mov r3, r8 + lsls r1, r3, 2 + add r1, r8 + lsls r1, 3 + adds r1, r0 + strh r6, [r1, 0x1C] + movs r0, 0x3 + strh r0, [r1, 0x8] + bl _080AD8CA + .align 2, 0 +_080AC530: .4byte gTasks +_080AC534: + mov r4, r8 + lsls r4, 2 + mov r9, r4 + ldr r4, _080AC5C4 @ =0x02019348 + ldr r1, _080AC5C8 @ =gUnknown_02024E84 + movs r2, 0 + adds r0, r1, 0x3 +_080AC542: + strb r2, [r0] + subs r0, 0x1 + cmp r0, r1 + bge _080AC542 + movs r6, 0x4 + adds r0, r4, 0 + movs r1, 0 + movs r2, 0x14 + bl memset + ldr r5, _080AC5CC @ =0xfffffebc + adds r7, r4, r5 + ldrb r0, [r7, 0x11] + bl sub_80B28F0 + ldr r3, _080AC5D0 @ =gUnknown_02038570 + ldrb r2, [r7, 0x11] + lsls r2, 6 + adds r0, r2, r3 + ldrh r0, [r0] + adds r1, r3, 0 + adds r1, 0x3C + adds r1, r2, r1 + ldr r1, [r1] + adds r3, 0x38 + adds r2, r3 + ldr r2, [r2] + bl sub_80AE9FC + lsls r0, 24 + lsrs r5, r0, 24 + ldr r2, _080AC5D4 @ =gSprites + lsls r0, r5, 4 + adds r0, r5 + lsls r0, 2 + adds r3, r0, r2 + movs r1, 0x78 + strh r1, [r3, 0x24] + adds r2, 0x1C + adds r0, r2 + ldr r1, _080AC5D8 @ =sub_80AD8FC + str r1, [r0] + ldr r0, _080AC5DC @ =gTasks + mov r4, r9 + add r4, r8 + lsls r4, 3 + adds r4, r0 + strh r5, [r4, 0xC] + ldr r1, _080AC5E0 @ =gUnknown_02024BE0 + ldr r0, _080AC5E4 @ =gUnknown_02024C07 + ldrb r0, [r0] + adds r0, r1 + strb r5, [r0] + ldrb r0, [r7, 0x11] + bl sub_80B09E4 + lsls r0, 24 + lsrs r0, 24 + movs r1, 0 + bl sub_80B0BC4 + strh r6, [r4, 0x8] + bl _080AD8CA + .align 2, 0 +_080AC5C4: .4byte 0x02019348 +_080AC5C8: .4byte gUnknown_02024E84 +_080AC5CC: .4byte 0xfffffebc +_080AC5D0: .4byte gUnknown_02038570 +_080AC5D4: .4byte gSprites +_080AC5D8: .4byte sub_80AD8FC +_080AC5DC: .4byte gTasks +_080AC5E0: .4byte gUnknown_02024BE0 +_080AC5E4: .4byte gUnknown_02024C07 +_080AC5E8: + mov r1, r8 + lsls r0, r1, 2 + add r0, r8 + lsls r0, 3 + mov r3, r12 + adds r2, r0, r3 + ldrb r5, [r2, 0xC] + ldr r1, _080AC62C @ =gSprites + lsls r0, r5, 4 + adds r0, r5 + lsls r0, 2 + adds r1, 0x1C + adds r0, r1 + ldr r1, [r0] + ldr r0, _080AC630 @ =SpriteCallbackDummy + cmp r1, r0 + beq _080AC60E + bl _080AD8CA +_080AC60E: + lsls r0, r7, 2 + ldr r1, _080AC634 @ =0x02019338 + adds r0, r1 + ldrb r1, [r0, 0x2] + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _080AC622 + bl _080AD8CA +_080AC622: + movs r0, 0x5 + strh r0, [r2, 0x8] + bl _080AD8CA + .align 2, 0 +_080AC62C: .4byte gSprites +_080AC630: .4byte SpriteCallbackDummy +_080AC634: .4byte 0x02019338 +_080AC638: + lsls r0, r7, 3 + subs r0, r7 + lsls r0, 2 + ldr r1, _080AC660 @ =0x02019260 + adds r5, r0, r1 + ldrb r1, [r5, 0xC] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080AC664 + mov r4, r8 + lsls r0, r4, 2 + add r0, r8 + lsls r0, 3 + add r0, r12 + movs r1, 0x21 + strh r1, [r0, 0x8] + bl _080AD8CA + .align 2, 0 +_080AC660: .4byte 0x02019260 +_080AC664: + bl sub_80AF138 + ldr r0, _080AC690 @ =gStringVar1 + lsls r1, r7, 6 + ldr r2, _080AC694 @ =gUnknown_02038572 + adds r1, r2 + bl StringCopy + ldrh r1, [r5, 0x6] + movs r0, 0xB1 + lsls r0, 1 + cmp r1, r0 + bhi _080AC6A0 + ldr r0, _080AC698 @ =gStringVar2 + adds r2, r1, 0 + movs r1, 0xD + muls r1, r2 + ldr r2, _080AC69C @ =gMoveNames + adds r1, r2 + bl StringCopy + b _080AC6B0 + .align 2, 0 +_080AC690: .4byte gStringVar1 +_080AC694: .4byte gUnknown_02038572 +_080AC698: .4byte gStringVar2 +_080AC69C: .4byte gMoveNames +_080AC6A0: + ldr r0, _080AC6E0 @ =gStringVar2 + ldr r2, _080AC6E4 @ =gUnknown_083CC330 + ldrb r1, [r5, 0xA] + lsls r1, 2 + adds r1, r2 + ldr r1, [r1] + bl StringCopy +_080AC6B0: + ldr r4, _080AC6E8 @ =gStringVar4 + ldr r1, _080AC6EC @ =gUnknown_083CAFD7 + adds r0, r4, 0 + bl StringExpandPlaceholders + ldr r0, _080AC6F0 @ =gMenuWindow + movs r2, 0xC2 + lsls r2, 2 + movs r1, 0xF + str r1, [sp] + adds r1, r4, 0 + movs r3, 0x1 + bl sub_8002EB0 + ldr r1, _080AC6F4 @ =gTasks + mov r5, r8 + lsls r0, r5, 2 + add r0, r8 + lsls r0, 3 + adds r0, r1 + movs r1, 0x6 + strh r1, [r0, 0x8] + bl _080AD8CA + .align 2, 0 +_080AC6E0: .4byte gStringVar2 +_080AC6E4: .4byte gUnknown_083CC330 +_080AC6E8: .4byte gStringVar4 +_080AC6EC: .4byte gUnknown_083CAFD7 +_080AC6F0: .4byte gMenuWindow +_080AC6F4: .4byte gTasks +_080AC6F8: + ldr r0, _080AC724 @ =gMenuWindow + bl sub_80037A0 + lsls r0, 24 + cmp r0, 0 + bne _080AC708 + bl _080AD8CA +_080AC708: + ldr r0, _080AC728 @ =0x02019204 + adds r0, 0x5A + movs r1, 0 + strb r1, [r0] + ldr r1, _080AC72C @ =gTasks + mov r2, r8 + lsls r0, r2, 2 + add r0, r8 + lsls r0, 3 + adds r0, r1 + movs r1, 0x7 + strh r1, [r0, 0x8] + bl _080AD8CA + .align 2, 0 +_080AC724: .4byte gMenuWindow +_080AC728: .4byte 0x02019204 +_080AC72C: .4byte gTasks +_080AC730: + ldrb r1, [r6, 0x11] + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + adds r1, r6, 0 + adds r1, 0x5C + adds r0, r1 + ldrh r0, [r0, 0x6] + bl sub_80B2760 + adds r4, r0, 0 + lsls r4, 16 + lsrs r4, 16 + ldrb r0, [r6, 0x11] + bl sub_80B2790 + ldrb r0, [r6, 0x11] + bl sub_80B28F0 + adds r0, r4, 0 + bl sub_80B29B4 + adds r0, r4, 0 + bl move_anim_start_t1 + ldr r1, _080AC778 @ =gTasks + mov r3, r8 + lsls r0, r3, 2 + add r0, r8 + lsls r0, 3 + adds r0, r1 + movs r1, 0x8 + strh r1, [r0, 0x8] + bl _080AD8CA + .align 2, 0 +_080AC778: .4byte gTasks +_080AC77C: + ldr r0, _080AC7B8 @ =gUnknown_0202F7AC + ldr r0, [r0] + bl _call_via_r0 + ldr r0, _080AC7BC @ =gUnknown_0202F7B1 + ldrb r4, [r0] + cmp r4, 0 + beq _080AC790 + bl _080AD8CA +_080AC790: + adds r0, r7, 0 + bl unref_sub_80B28CC + ldr r1, _080AC7C0 @ =0x02019204 + adds r0, r1, 0 + adds r0, 0x5A + ldrb r0, [r0] + cmp r0, 0 + beq _080AC7C8 + ldr r0, _080AC7C4 @ =gTasks + mov r5, r8 + lsls r1, r5, 2 + add r1, r8 + lsls r1, 3 + adds r1, r0 + strh r4, [r1, 0x1C] + movs r0, 0x9 + strh r0, [r1, 0x8] + bl _080AD8CA + .align 2, 0 +_080AC7B8: .4byte gUnknown_0202F7AC +_080AC7BC: .4byte gUnknown_0202F7B1 +_080AC7C0: .4byte 0x02019204 +_080AC7C4: .4byte gTasks +_080AC7C8: + lsls r0, r7, 3 + subs r0, r7 + lsls r0, 2 + adds r1, 0x5C + adds r0, r1 + ldrb r1, [r0, 0x15] + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + bne _080AC7E2 + adds r0, r7, 0 + bl sub_80B03A8 +_080AC7E2: + bl unref_sub_80B20C4 + ldr r0, _080AC7F0 @ =gTasks + mov r2, r8 + lsls r1, r2, 2 + b _080AC8E2 + .align 2, 0 +_080AC7F0: .4byte gTasks +_080AC7F4: + mov r3, r8 + lsls r0, r3, 2 + add r0, r8 + lsls r0, 3 + mov r4, r12 + adds r2, r0, r4 + ldrh r0, [r2, 0x1C] + adds r1, r0, 0x1 + strh r1, [r2, 0x1C] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1E + bgt _080AC812 + bl _080AD8CA +_080AC812: + movs r0, 0 + strh r0, [r2, 0x1C] + movs r0, 0x7 + strh r0, [r2, 0x8] + bl _080AD8CA +_080AC81E: + mov r5, r8 + lsls r3, r5, 2 + adds r0, r3, r5 + lsls r0, 3 + mov r1, r12 + adds r4, r0, r1 + movs r0, 0 + strh r0, [r4, 0xA] + lsls r2, r7, 3 + subs r0, r2, r7 + lsls r0, 2 + ldr r1, _080AC858 @ =0x02019260 + adds r6, r0, r1 + ldrb r0, [r6, 0x13] + mov r9, r3 + mov r10, r2 + adds r3, r1, 0 + cmp r0, 0xFF + beq _080AC85C + adds r1, r0, 0 + adds r0, r7, 0 + bl sub_80B146C + movs r0, 0xFF + strb r0, [r6, 0x13] + movs r0, 0x18 + strh r0, [r4, 0x8] + bl _080AD8CA + .align 2, 0 +_080AC858: .4byte 0x02019260 +_080AC85C: + ldrb r0, [r6, 0x14] + cmp r0, 0xFF + beq _080AC8C4 + movs r6, 0 + cmp r6, r7 + beq _080AC86E + ldrb r0, [r3, 0x13] + cmp r0, 0xFF + bne _080AC886 +_080AC86E: + adds r6, 0x1 + cmp r6, 0x3 + bgt _080AC886 + cmp r6, r7 + beq _080AC86E + lsls r0, r6, 3 + subs r0, r6 + lsls r0, 2 + adds r0, r3 + ldrb r0, [r0, 0x13] + cmp r0, 0xFF + beq _080AC86E +_080AC886: + cmp r6, 0x4 + bne _080AC8B4 + mov r2, r10 + subs r4, r2, r7 + lsls r4, 2 + adds r4, r3 + ldrb r1, [r4, 0x14] + adds r0, r7, 0 + bl sub_80B146C + movs r0, 0xFF + strb r0, [r4, 0x14] + ldr r1, _080AC8B0 @ =gTasks + mov r0, r9 + add r0, r8 + lsls r0, 3 + adds r0, r1 + movs r1, 0x18 + strh r1, [r0, 0x8] + bl _080AD8CA + .align 2, 0 +_080AC8B0: .4byte gTasks +_080AC8B4: + mov r0, r9 + add r0, r8 + lsls r0, 3 + add r0, r12 + movs r1, 0x30 + strh r1, [r0, 0x8] + bl _080AD8CA +_080AC8C4: + movs r0, 0x30 + strh r0, [r4, 0x8] + bl _080AD8CA +_080AC8CC: + ldr r0, _080AC8F0 @ =gMenuWindow + bl sub_80037A0 + lsls r0, 24 + cmp r0, 0 + bne _080AC8DC + bl _080AD8CA +_080AC8DC: + ldr r0, _080AC8F4 @ =gTasks + mov r3, r8 + lsls r1, r3, 2 +_080AC8E2: + add r1, r8 + lsls r1, 3 + adds r1, r0 + movs r0, 0x17 + strh r0, [r1, 0x8] + bl _080AD8CA + .align 2, 0 +_080AC8F0: .4byte gMenuWindow +_080AC8F4: .4byte gTasks +_080AC8F8: + lsls r0, r7, 3 + subs r0, r7 + lsls r0, 2 + ldr r1, _080AC914 @ =0x02019260 + adds r0, r1 + ldrb r0, [r0, 0x11] + movs r3, 0x3 + ands r3, r0 + cmp r3, 0x1 + bne _080AC918 + movs r0, 0x5 + bl sub_80B1710 + b _080AC934 + .align 2, 0 +_080AC914: .4byte 0x02019260 +_080AC918: + cmp r3, 0x2 + bne _080AC924 + movs r0, 0x6 + bl sub_80B1710 + b _080AC934 +_080AC924: + cmp r3, 0x3 + beq _080AC92E + mov r4, r8 + lsls r0, r4, 2 + b _080AC95E +_080AC92E: + movs r0, 0x7 + bl sub_80B1710 +_080AC934: + ldr r0, _080AC948 @ =gTasks + mov r5, r8 + lsls r1, r5, 2 + add r1, r8 + lsls r1, 3 + adds r1, r0 + movs r0, 0x31 + strh r0, [r1, 0x8] + bl _080AD8CA + .align 2, 0 +_080AC948: .4byte gTasks +_080AC94C: + ldrb r1, [r6, 0x6] + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + beq _080AC95A + bl _080AD8CA +_080AC95A: + mov r1, r8 + lsls r0, r1, 2 +_080AC95E: + add r0, r8 + lsls r0, 3 + add r0, r12 + movs r1, 0x2F + strh r1, [r0, 0x8] + bl _080AD8CA +_080AC96C: + movs r0, 0x1 + bl sub_80B1FD0 + ldr r0, _080AC988 @ =gTasks + mov r2, r8 + lsls r1, r2, 2 + add r1, r8 + lsls r1, 3 + adds r1, r0 + movs r0, 0xC + strh r0, [r1, 0x8] + bl _080AD8CA + .align 2, 0 +_080AC988: .4byte gTasks +_080AC98C: + lsls r0, r7, 3 + subs r0, r7 + lsls r0, 2 + ldr r1, _080AC9B8 @ =0x02019260 + adds r0, r1 + movs r3, 0x2 + ldrsh r1, [r0, r3] + movs r0, 0 + adds r2, r7, 0 + bl sub_80AFBA0 + ldr r1, _080AC9BC @ =gTasks + mov r4, r8 + lsls r0, r4, 2 + add r0, r8 + lsls r0, 3 + adds r0, r1 + movs r1, 0xD + strh r1, [r0, 0x8] + bl _080AD8CA + .align 2, 0 +_080AC9B8: .4byte 0x02019260 +_080AC9BC: .4byte gTasks +_080AC9C0: + ldrb r0, [r6, 0x11] + lsls r0, 2 + movs r5, 0x9A + lsls r5, 1 + adds r1, r6, r5 + adds r0, r1 + ldrb r1, [r0, 0x2] + movs r0, 0x4 + ands r0, r1 + cmp r0, 0 + beq _080AC9DA + bl _080AD8CA +_080AC9DA: + mov r1, r8 + lsls r0, r1, 2 + add r0, r8 + lsls r0, 3 + add r0, r12 + movs r1, 0x23 + strh r1, [r0, 0x8] + bl _080AD8CA +_080AC9EC: + lsls r0, r7, 3 + subs r0, r7 + lsls r0, 2 + ldr r1, _080ACA1C @ =0x02019260 + adds r0, r1 + ldrb r1, [r0, 0x10] + movs r0, 0x30 + ands r0, r1 + cmp r0, 0x10 + bne _080ACA06 + movs r0, 0x8 + bl sub_80B1710 +_080ACA06: + ldr r0, _080ACA20 @ =gTasks + mov r2, r8 + lsls r1, r2, 2 + add r1, r8 + lsls r1, 3 + adds r1, r0 + movs r0, 0x24 + strh r0, [r1, 0x8] + bl _080AD8CA + .align 2, 0 +_080ACA1C: .4byte 0x02019260 +_080ACA20: .4byte gTasks +_080ACA24: + ldrb r1, [r6, 0x6] + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + beq _080ACA32 + bl _080AD8CA +_080ACA32: + mov r3, r8 + lsls r0, r3, 2 + add r0, r8 + lsls r0, 3 + add r0, r12 + movs r1, 0x25 + strh r1, [r0, 0x8] + bl _080AD8CA +_080ACA44: + adds r0, r7, 0 + movs r1, 0x1 + bl sub_80AEE54 + lsls r0, 24 + cmp r0, 0 + beq _080ACA70 + ldr r1, _080ACA6C @ =gTasks + mov r4, r8 + lsls r0, r4, 2 + add r0, r8 + lsls r0, 3 + adds r0, r1 + movs r1, 0 + strh r1, [r0, 0x1C] + movs r1, 0x26 + strh r1, [r0, 0x8] + bl _080AD8CA + .align 2, 0 +_080ACA6C: .4byte gTasks +_080ACA70: + ldr r0, _080ACA80 @ =gTasks + mov r5, r8 + lsls r1, r5, 2 + add r1, r8 + lsls r1, 3 + adds r1, r0 + b _080ACAA6 + .align 2, 0 +_080ACA80: .4byte gTasks +_080ACA84: + mov r1, r8 + lsls r0, r1, 2 + add r0, r8 + lsls r0, 3 + mov r2, r12 + adds r1, r0, r2 + ldrh r0, [r1, 0x1C] + adds r0, 0x1 + strh r0, [r1, 0x1C] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x14 + bgt _080ACAA2 + bl _080AD8CA +_080ACAA2: + movs r0, 0 + strh r0, [r1, 0x1C] +_080ACAA6: + movs r0, 0x32 + strh r0, [r1, 0x8] + bl _080AD8CA +_080ACAAE: + adds r0, r7, 0 + bl sub_80AF038 + lsls r0, 24 + cmp r0, 0 + beq _080ACAC0 + movs r0, 0x63 + bl PlaySE +_080ACAC0: + ldr r0, _080ACAD4 @ =gTasks + mov r3, r8 + lsls r1, r3, 2 + add r1, r8 + lsls r1, 3 + adds r1, r0 + movs r0, 0x19 + strh r0, [r1, 0x8] + bl _080AD8CA + .align 2, 0 +_080ACAD4: .4byte gTasks +_080ACAD8: + mov r4, r8 + lsls r0, r4, 2 + add r0, r8 + lsls r0, 3 + add r0, r12 + movs r1, 0 + strh r1, [r0, 0xA] + movs r1, 0x1A + strh r1, [r0, 0x8] + bl _080AD8CA +_080ACAEE: + movs r2, 0 + movs r4, 0 + mov r5, r8 + lsls r1, r5, 2 + adds r0, r1, r5 + lsls r0, 3 + add r0, r12 + movs r3, 0xA + ldrsh r6, [r0, r3] + mov r9, r1 + cmp r6, 0x3 + bgt _080ACB58 + ldr r3, _080ACB24 @ =gUnknown_02038696 + ldr r1, _080ACB28 @ =0x02019260 +_080ACB0A: + movs r4, 0 + movs r2, 0 + cmp r4, r7 + beq _080ACB2C + ldrb r0, [r3] + cmp r0, r6 + bne _080ACB2C + ldrb r0, [r1, 0x13] + cmp r0, 0xFF + beq _080ACB2C + movs r4, 0x1 + b _080ACB60 + .align 2, 0 +_080ACB24: .4byte gUnknown_02038696 +_080ACB28: .4byte 0x02019260 +_080ACB2C: + adds r2, 0x1 + cmp r2, 0x3 + bgt _080ACB4E + cmp r2, r7 + beq _080ACB2C + adds r0, r2, r3 + ldrb r0, [r0] + cmp r0, r6 + bne _080ACB2C + lsls r0, r2, 3 + subs r0, r2 + lsls r0, 2 + adds r0, r1 + ldrb r0, [r0, 0x13] + cmp r0, 0xFF + beq _080ACB2C + movs r4, 0x1 +_080ACB4E: + cmp r4, 0 + bne _080ACB60 + adds r6, 0x1 + cmp r6, 0x3 + ble _080ACB0A +_080ACB58: + lsls r0, r4, 24 + asrs r1, r0, 24 + cmp r1, 0 + beq _080ACB98 +_080ACB60: + mov r5, r9 + add r5, r8 + lsls r5, 3 + add r5, r12 + ldr r0, _080ACB90 @ =gUnknown_02038696 + adds r0, r2, r0 + ldrb r0, [r0] + strh r0, [r5, 0xA] + lsls r0, r2, 24 + lsrs r0, 24 + lsls r4, r2, 3 + subs r4, r2 + lsls r4, 2 + ldr r1, _080ACB94 @ =0x02019260 + adds r4, r1 + ldrb r1, [r4, 0x13] + bl sub_80B146C + movs r0, 0xFF + strb r0, [r4, 0x13] + movs r0, 0x1B + strh r0, [r5, 0x8] + bl _080AD8CA + .align 2, 0 +_080ACB90: .4byte gUnknown_02038696 +_080ACB94: .4byte 0x02019260 +_080ACB98: + mov r0, r9 + add r0, r8 + lsls r0, 3 + add r0, r12 + strh r1, [r0, 0xA] + strh r1, [r0, 0x1C] + movs r1, 0x33 + strh r1, [r0, 0x8] + bl sub_80AF120 + bl _080AD8CA +_080ACBB0: + ldr r0, _080ACBD4 @ =gMenuWindow + bl sub_80037A0 + lsls r0, 24 + cmp r0, 0 + bne _080ACBC0 + bl _080AD8CA +_080ACBC0: + ldr r0, _080ACBD8 @ =gTasks + mov r4, r8 + lsls r1, r4, 2 + add r1, r8 + lsls r1, 3 + adds r1, r0 + movs r0, 0x1C + strh r0, [r1, 0x8] + bl _080AD8CA + .align 2, 0 +_080ACBD4: .4byte gMenuWindow +_080ACBD8: .4byte gTasks +_080ACBDC: + movs r6, 0 + mov r5, r8 + lsls r0, r5, 2 + adds r1, r0, r5 + lsls r1, 3 + add r1, r12 + movs r3, 0xA + ldrsh r2, [r1, r3] + ldr r1, _080ACC38 @ =gUnknown_02038696 + mov r9, r0 + ldr r3, _080ACC3C @ =0x02019260 + adds r5, r1, 0 + ldrb r4, [r5] + cmp r2, r4 + beq _080ACC08 + adds r1, r2, 0 + adds r2, r5, 0 +_080ACBFE: + adds r6, 0x1 + adds r0, r6, r2 + ldrb r0, [r0] + cmp r1, r0 + bne _080ACBFE +_080ACC08: + lsls r0, r6, 3 + subs r0, r6 + lsls r0, 2 + adds r0, r3 + ldrb r1, [r0, 0xE] + ldrh r0, [r0, 0x2] + adds r0, r1 + lsls r0, 16 + asrs r0, 16 + negs r1, r1 + lsls r2, r6, 24 + lsrs r2, 24 + bl sub_80AFBA0 + ldr r1, _080ACC40 @ =gTasks + mov r0, r9 + add r0, r8 + lsls r0, 3 + adds r0, r1 + movs r1, 0x1D + strh r1, [r0, 0x8] + bl _080AD8CA + .align 2, 0 +_080ACC38: .4byte gUnknown_02038696 +_080ACC3C: .4byte 0x02019260 +_080ACC40: .4byte gTasks +_080ACC44: + movs r6, 0 + mov r5, r8 + lsls r0, r5, 2 + adds r1, r0, r5 + lsls r1, 3 + add r1, r12 + movs r2, 0xA + ldrsh r3, [r1, r2] + ldr r1, _080ACC90 @ =gUnknown_02038696 + mov r9, r0 + ldr r2, _080ACC94 @ =0x02019338 + adds r5, r1, 0 + ldrb r4, [r5] + cmp r3, r4 + beq _080ACC6C +_080ACC62: + adds r6, 0x1 + adds r0, r6, r1 + ldrb r0, [r0] + cmp r3, r0 + bne _080ACC62 +_080ACC6C: + lsls r0, r6, 2 + adds r0, r2 + ldrb r1, [r0, 0x2] + movs r0, 0x4 + ands r0, r1 + cmp r0, 0 + beq _080ACC7E + bl _080AD8CA +_080ACC7E: + mov r0, r9 + add r0, r8 + lsls r0, 3 + add r0, r12 + movs r1, 0x27 + strh r1, [r0, 0x8] + bl _080AD8CA + .align 2, 0 +_080ACC90: .4byte gUnknown_02038696 +_080ACC94: .4byte 0x02019338 +_080ACC98: + movs r6, 0 + mov r5, r8 + lsls r0, r5, 2 + adds r1, r0, r5 + lsls r1, 3 + add r1, r12 + movs r3, 0xA + ldrsh r2, [r1, r3] + ldr r1, _080ACCE8 @ =gUnknown_02038696 + mov r9, r0 + adds r5, r1, 0 + ldrb r4, [r5] + cmp r2, r4 + beq _080ACCC2 + adds r1, r2, 0 + adds r2, r5, 0 +_080ACCB8: + adds r6, 0x1 + adds r0, r6, r2 + ldrb r0, [r0] + cmp r1, r0 + bne _080ACCB8 +_080ACCC2: + lsls r0, r6, 24 + lsrs r0, 24 + movs r1, 0x1 + bl sub_80AEE54 + lsls r0, 24 + cmp r0, 0 + beq _080ACCF0 + ldr r1, _080ACCEC @ =gTasks + mov r0, r9 + add r0, r8 + lsls r0, 3 + adds r0, r1 + movs r1, 0 + strh r1, [r0, 0x1C] + movs r1, 0x28 + strh r1, [r0, 0x8] + bl _080AD8CA + .align 2, 0 +_080ACCE8: .4byte gUnknown_02038696 +_080ACCEC: .4byte gTasks +_080ACCF0: + ldr r0, _080ACCFC @ =gTasks + mov r1, r9 + add r1, r8 + lsls r1, 3 + adds r1, r0 + b _080ACD22 + .align 2, 0 +_080ACCFC: .4byte gTasks +_080ACD00: + mov r5, r8 + lsls r0, r5, 2 + add r0, r8 + lsls r0, 3 + mov r2, r12 + adds r1, r0, r2 + ldrh r0, [r1, 0x1C] + adds r0, 0x1 + strh r0, [r1, 0x1C] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x14 + bgt _080ACD1E + bl _080AD8CA +_080ACD1E: + movs r0, 0 + strh r0, [r1, 0x1C] +_080ACD22: + movs r0, 0x1E + strh r0, [r1, 0x8] + bl _080AD8CA +_080ACD2A: + movs r6, 0 + ldr r2, _080ACD78 @ =gUnknown_02038696 + ldrb r3, [r2] + mov r4, r8 + lsls r1, r4, 2 + adds r0, r1, r4 + lsls r0, 3 + mov r5, r12 + adds r4, r0, r5 + movs r5, 0xA + ldrsh r0, [r4, r5] + mov r9, r1 + adds r5, r2, 0 + cmp r3, r0 + beq _080ACD5E + adds r3, r5, 0 + adds r2, r4, 0 +_080ACD4C: + adds r6, 0x1 + cmp r6, 0x3 + bgt _080ACD5E + adds r0, r6, r3 + ldrb r1, [r0] + movs r4, 0xA + ldrsh r0, [r2, r4] + cmp r1, r0 + bne _080ACD4C +_080ACD5E: + lsls r4, r6, 24 + lsrs r0, r4, 24 + bl sub_80AF038 + lsls r0, 24 + adds r5, r4, 0 + cmp r0, 0 + beq _080ACD7C + movs r0, 0x63 + bl PlaySE + b _080ACD82 + .align 2, 0 +_080ACD78: .4byte gUnknown_02038696 +_080ACD7C: + movs r0, 0x64 + bl PlaySE +_080ACD82: + lsls r0, r6, 3 + subs r0, r6 + lsls r0, 2 + ldr r1, _080ACDC0 @ =0x02019260 + adds r4, r0, r1 + ldrb r1, [r4, 0x15] + movs r0, 0x20 + ands r0, r1 + cmp r0, 0 + beq _080ACDA6 + lsrs r0, r5, 24 + bl sub_80B03A8 + ldrb r1, [r4, 0x15] + movs r0, 0x21 + negs r0, r0 + ands r0, r1 + strb r0, [r4, 0x15] +_080ACDA6: + ldr r0, _080ACDC4 @ =gTasks + mov r1, r9 + add r1, r8 + lsls r1, 3 + adds r1, r0 + ldrh r0, [r1, 0xA] + adds r0, 0x1 + strh r0, [r1, 0xA] + movs r0, 0x1A + strh r0, [r1, 0x8] + bl _080AD8CA + .align 2, 0 +_080ACDC0: .4byte 0x02019260 +_080ACDC4: .4byte gTasks +_080ACDC8: + mov r5, r8 + lsls r2, r5, 2 + adds r0, r2, r5 + lsls r0, 3 + mov r1, r12 + adds r3, r0, r1 + ldrh r0, [r3, 0x1C] + adds r1, r0, 0x1 + strh r1, [r3, 0x1C] + lsls r0, 16 + asrs r0, 16 + mov r9, r2 + cmp r0, 0x9 + bgt _080ACDE8 + bl _080AD8CA +_080ACDE8: + movs r0, 0 + strh r0, [r3, 0x1C] + lsls r0, r7, 3 + subs r0, r7 + lsls r0, 2 + ldr r1, _080ACE48 @ =0x02019260 + adds r2, r0, r1 + ldrb r1, [r2, 0xC] + movs r0, 0x6 + ands r0, r1 + cmp r0, 0 + bne _080ACE0A + ldrb r1, [r2, 0x11] + movs r0, 0x4 + ands r0, r1 + cmp r0, 0 + beq _080ACE36 +_080ACE0A: + bl sub_80AF138 + ldr r0, _080ACE4C @ =gStringVar1 + lsls r1, r7, 6 + ldr r2, _080ACE50 @ =gUnknown_02038572 + adds r1, r2 + bl StringCopy + ldr r4, _080ACE54 @ =gStringVar4 + ldr r1, _080ACE58 @ =gUnknown_083CC103 + adds r0, r4, 0 + bl StringExpandPlaceholders + ldr r0, _080ACE5C @ =gMenuWindow + movs r2, 0xC2 + lsls r2, 2 + movs r1, 0xF + str r1, [sp] + adds r1, r4, 0 + movs r3, 0x1 + bl sub_8002EB0 +_080ACE36: + ldr r0, _080ACE60 @ =gTasks + mov r1, r9 + add r1, r8 + lsls r1, 3 + adds r1, r0 + movs r0, 0x34 + strh r0, [r1, 0x8] + bl _080AD8CA + .align 2, 0 +_080ACE48: .4byte 0x02019260 +_080ACE4C: .4byte gStringVar1 +_080ACE50: .4byte gUnknown_02038572 +_080ACE54: .4byte gStringVar4 +_080ACE58: .4byte gUnknown_083CC103 +_080ACE5C: .4byte gMenuWindow +_080ACE60: .4byte gTasks +_080ACE64: + ldr r0, _080ACE9C @ =gMenuWindow + bl sub_80037A0 + lsls r0, 24 + cmp r0, 0 + bne _080ACE74 + bl _080AD8CA +_080ACE74: + lsls r0, r7, 3 + subs r0, r7 + lsls r0, 2 + ldr r1, _080ACEA0 @ =0x02019260 + adds r0, r1 + ldrb r1, [r0, 0x15] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + bne _080ACEA8 + ldr r0, _080ACEA4 @ =gTasks + mov r2, r8 + lsls r1, r2, 2 + add r1, r8 + lsls r1, 3 + adds r1, r0 + movs r0, 0x11 + strh r0, [r1, 0x8] + bl _080AD8CA + .align 2, 0 +_080ACE9C: .4byte gMenuWindow +_080ACEA0: .4byte 0x02019260 +_080ACEA4: .4byte gTasks +_080ACEA8: + ldr r0, _080ACEBC @ =gTasks + mov r3, r8 + lsls r1, r3, 2 + add r1, r8 + lsls r1, 3 + adds r1, r0 + movs r0, 0xE + strh r0, [r1, 0x8] + bl _080AD8CA + .align 2, 0 +_080ACEBC: .4byte gTasks +_080ACEC0: + lsls r0, r7, 3 + subs r0, r7 + lsls r0, 2 + ldr r1, _080ACEE4 @ =0x02019260 + adds r0, r1 + ldrb r4, [r0, 0x16] + lsls r4, 24 + lsrs r5, r4, 24 + cmp r5, 0 + beq _080ACF48 + bl sub_80AF138 + asrs r0, r4, 24 + cmp r0, 0x1 + bne _080ACEF0 + ldr r0, _080ACEE8 @ =gMenuWindow + ldr r1, _080ACEEC @ =gUnknown_083CBD79 + b _080ACEF8 + .align 2, 0 +_080ACEE4: .4byte 0x02019260 +_080ACEE8: .4byte gMenuWindow +_080ACEEC: .4byte gUnknown_083CBD79 +_080ACEF0: + cmp r0, 0x2 + bne _080ACF10 + ldr r0, _080ACF08 @ =gMenuWindow + ldr r1, _080ACF0C @ =gUnknown_083CBD9D +_080ACEF8: + movs r2, 0xC2 + lsls r2, 2 + movs r3, 0xF + str r3, [sp] + movs r3, 0x1 + bl sub_8002EB0 + b _080ACF22 + .align 2, 0 +_080ACF08: .4byte gMenuWindow +_080ACF0C: .4byte gUnknown_083CBD9D +_080ACF10: + ldr r0, _080ACF3C @ =gMenuWindow + ldr r1, _080ACF40 @ =gUnknown_083CBDC6 + movs r2, 0xC2 + lsls r2, 2 + movs r3, 0xF + str r3, [sp] + movs r3, 0x1 + bl sub_8002EB0 +_080ACF22: + movs r0, 0x3 + bl sub_80B1710 + ldr r1, _080ACF44 @ =gTasks + mov r4, r8 + lsls r0, r4, 2 + add r0, r8 + lsls r0, 3 + adds r0, r1 + movs r1, 0 + strh r1, [r0, 0x1C] + b _080ACF88 + .align 2, 0 +_080ACF3C: .4byte gMenuWindow +_080ACF40: .4byte gUnknown_083CBDC6 +_080ACF44: .4byte gTasks +_080ACF48: + bl sub_80AF138 + ldr r0, _080ACF90 @ =gStringVar1 + lsls r1, r7, 6 + ldr r2, _080ACF94 @ =gUnknown_02038572 + adds r1, r2 + bl StringCopy + ldr r4, _080ACF98 @ =gStringVar4 + ldr r1, _080ACF9C @ =gUnknown_083CBD52 + adds r0, r4, 0 + bl StringExpandPlaceholders + ldr r0, _080ACFA0 @ =gMenuWindow + movs r2, 0xC2 + lsls r2, 2 + movs r1, 0xF + str r1, [sp] + adds r1, r4, 0 + movs r3, 0x1 + bl sub_8002EB0 + movs r0, 0x2 + bl sub_80B1710 + ldr r1, _080ACFA4 @ =gTasks + mov r2, r8 + lsls r0, r2, 2 + add r0, r8 + lsls r0, 3 + adds r0, r1 + strh r5, [r0, 0x1C] +_080ACF88: + movs r1, 0x2D + strh r1, [r0, 0x8] + bl _080AD8CA + .align 2, 0 +_080ACF90: .4byte gStringVar1 +_080ACF94: .4byte gUnknown_02038572 +_080ACF98: .4byte gStringVar4 +_080ACF9C: .4byte gUnknown_083CBD52 +_080ACFA0: .4byte gMenuWindow +_080ACFA4: .4byte gTasks +_080ACFA8: + ldrb r1, [r6, 0x6] + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + beq _080ACFB6 + bl _080AD8CA +_080ACFB6: + ldrb r0, [r6, 0x11] + bl sub_80B09B0 + ldr r1, _080ACFD0 @ =gTasks + mov r3, r8 + lsls r0, r3, 2 + add r0, r8 + lsls r0, 3 + adds r0, r1 + movs r1, 0xF + strh r1, [r0, 0x8] + bl _080AD8CA + .align 2, 0 +_080ACFD0: .4byte gTasks +_080ACFD4: + ldr r0, _080AD034 @ =gMenuWindow + bl sub_80037A0 + lsls r0, 24 + cmp r0, 0 + bne _080ACFE4 + bl _080AD8CA +_080ACFE4: + ldr r1, _080AD038 @ =gTasks + mov r4, r8 + lsls r0, r4, 2 + add r0, r8 + lsls r0, 3 + adds r4, r0, r1 + ldrh r0, [r4, 0x1C] + adds r0, 0x1 + strh r0, [r4, 0x1C] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x32 + bgt _080AD002 + bl _080AD8CA +_080AD002: + lsls r0, r7, 3 + subs r0, r7 + lsls r0, 2 + ldr r1, _080AD03C @ =0x02019260 + adds r6, r0, r1 + ldrb r1, [r6, 0x15] + movs r5, 0x10 + adds r0, r5, 0 + ands r0, r1 + cmp r0, 0 + bne _080AD02C + movs r1, 0x2 + ldrsh r0, [r6, r1] + ldrb r1, [r6, 0x17] + adds r2, r7, 0 + bl sub_80AFBA0 + ldrh r0, [r6, 0x2] + ldrb r2, [r6, 0x17] + adds r0, r2 + strh r0, [r6, 0x2] +_080AD02C: + strh r5, [r4, 0x8] + bl _080AD8CA + .align 2, 0 +_080AD034: .4byte gMenuWindow +_080AD038: .4byte gTasks +_080AD03C: .4byte 0x02019260 +_080AD040: + lsls r0, r7, 2 + ldr r1, _080AD06C @ =0x02019338 + adds r0, r1 + ldrb r1, [r0, 0x2] + movs r0, 0x4 + ands r0, r1 + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0 + beq _080AD058 + bl _080AD8CA +_080AD058: + mov r3, r8 + lsls r0, r3, 2 + add r0, r8 + lsls r0, 3 + add r0, r12 + strh r1, [r0, 0x1C] + movs r1, 0x11 + strh r1, [r0, 0x8] + bl _080AD8CA + .align 2, 0 +_080AD06C: .4byte 0x02019338 +_080AD070: + lsls r0, r7, 3 + subs r0, r7 + lsls r0, 2 + ldr r1, _080AD0CC @ =0x02019260 + adds r0, r1 + ldrb r1, [r0, 0x15] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080AD0E8 + bl sub_80AF138 + ldr r0, _080AD0D0 @ =gStringVar1 + lsls r1, r7, 6 + ldr r2, _080AD0D4 @ =gUnknown_02038572 + adds r1, r2 + bl StringCopy + ldr r4, _080AD0D8 @ =gStringVar4 + ldr r1, _080AD0DC @ =gUnknown_083CC075 + adds r0, r4, 0 + bl StringExpandPlaceholders + ldr r0, _080AD0E0 @ =gMenuWindow + movs r2, 0xC2 + lsls r2, 2 + movs r1, 0xF + str r1, [sp] + adds r1, r4, 0 + movs r3, 0x1 + bl sub_8002EB0 + ldr r0, _080AD0E4 @ =gTasks + mov r5, r8 + lsls r4, r5, 2 + add r4, r8 + lsls r4, 3 + adds r4, r0 + movs r0, 0 + strh r0, [r4, 0x1C] + bl sub_80B1710 + movs r0, 0x2E + strh r0, [r4, 0x8] + bl _080AD8CA + .align 2, 0 +_080AD0CC: .4byte 0x02019260 +_080AD0D0: .4byte gStringVar1 +_080AD0D4: .4byte gUnknown_02038572 +_080AD0D8: .4byte gStringVar4 +_080AD0DC: .4byte gUnknown_083CC075 +_080AD0E0: .4byte gMenuWindow +_080AD0E4: .4byte gTasks +_080AD0E8: + mov r1, r8 + lsls r0, r1, 2 + add r0, r8 + lsls r0, 3 + add r0, r12 + movs r1, 0x29 + strh r1, [r0, 0x8] + bl _080AD8CA +_080AD0FA: + ldrb r1, [r6, 0x6] + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + beq _080AD108 + bl _080AD8CA +_080AD108: + mov r2, r8 + lsls r0, r2, 2 + add r0, r8 + lsls r0, 3 + add r0, r12 + movs r1, 0x13 + strh r1, [r0, 0x8] + bl _080AD8CA +_080AD11A: + ldr r0, _080AD15C @ =gMenuWindow + bl sub_80037A0 + lsls r0, 24 + cmp r0, 0 + bne _080AD12A + bl _080AD8CA +_080AD12A: + lsls r4, r7, 3 + subs r4, r7 + lsls r4, 2 + ldr r0, _080AD160 @ =0x02019260 + adds r4, r0 + movs r3, 0x2 + ldrsh r0, [r4, r3] + ldrb r1, [r4, 0x18] + negs r1, r1 + adds r2, r7, 0 + bl sub_80AFBA0 + ldrb r1, [r4, 0x18] + ldrh r0, [r4, 0x2] + subs r0, r1 + strh r0, [r4, 0x2] + ldr r1, _080AD164 @ =gTasks + mov r4, r8 + lsls r0, r4, 2 + add r0, r8 + lsls r0, 3 + adds r0, r1 + movs r1, 0x12 + strh r1, [r0, 0x8] + b _080AD8CA + .align 2, 0 +_080AD15C: .4byte gMenuWindow +_080AD160: .4byte 0x02019260 +_080AD164: .4byte gTasks +_080AD168: + bl sub_80B0D7C + lsls r0, r7, 2 + ldr r1, _080AD19C @ =0x02019338 + adds r0, r1 + ldrb r1, [r0, 0x2] + movs r0, 0x4 + ands r0, r1 + lsls r0, 24 + lsrs r6, r0, 24 + cmp r6, 0 + beq _080AD182 + b _080AD8CA +_080AD182: + ldr r0, _080AD1A0 @ =gTasks + mov r5, r8 + lsls r4, r5, 2 + add r4, r8 + lsls r4, 3 + adds r4, r0 + strh r6, [r4, 0x1C] + bl sub_80AF138 + movs r0, 0x29 + strh r0, [r4, 0x8] + b _080AD8CA + .align 2, 0 +_080AD19C: .4byte 0x02019338 +_080AD1A0: .4byte gTasks +_080AD1A4: + ldr r2, _080AD1CC @ =0x02019328 + ldrb r1, [r2, 0x1] + movs r0, 0x1 + ands r0, r1 + adds r1, r2, 0 + cmp r0, 0 + beq _080AD1D0 + ldr r0, [r1] + lsls r0, 20 + lsrs r0, 29 + cmp r7, r0 + beq _080AD1D0 + mov r1, r8 + lsls r0, r1, 2 + add r0, r8 + lsls r0, 3 + add r0, r12 + movs r1, 0x39 + strh r1, [r0, 0x8] + b _080AD8CA + .align 2, 0 +_080AD1CC: .4byte 0x02019328 +_080AD1D0: + ldrb r4, [r1] + lsls r2, r7, 3 + subs r0, r2, r7 + lsls r0, 2 + subs r1, 0xC8 + adds r5, r0, r1 + ldrb r1, [r5, 0x11] + movs r0, 0x10 + ands r0, r1 + mov r10, r2 + cmp r0, 0 + beq _080AD204 + movs r4, 0x1 + ldr r0, _080AD1FC @ =gStringVar3 + ldrh r2, [r5, 0x6] + movs r1, 0xD + muls r1, r2 + ldr r2, _080AD200 @ =gMoveNames + adds r1, r2 + bl StringCopy + b _080AD21E + .align 2, 0 +_080AD1FC: .4byte gStringVar3 +_080AD200: .4byte gMoveNames +_080AD204: + ldr r0, _080AD270 @ =gStringVar3 + ldr r3, _080AD274 @ =gUnknown_083CC2D8 + ldr r2, _080AD278 @ =gContestMoves + ldrh r1, [r5, 0x6] + lsls r1, 3 + adds r1, r2 + ldrb r1, [r1, 0x1] + lsls r1, 29 + lsrs r1, 27 + adds r1, r3 + ldr r1, [r1] + bl StringCopy +_080AD21E: + lsls r0, r4, 24 + cmp r0, 0 + ble _080AD23A + mov r2, r10 + subs r0, r2, r7 + lsls r0, 2 + ldr r1, _080AD27C @ =0x02019260 + adds r0, r1 + ldrb r1, [r0, 0x15] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080AD23A + movs r4, 0 +_080AD23A: + bl sub_80AF138 + ldr r0, _080AD280 @ =gStringVar1 + lsls r1, r7, 6 + ldr r2, _080AD284 @ =gUnknown_02038572 + adds r1, r2 + bl StringCopy + ldr r3, _080AD288 @ =0x02019204 + ldrb r0, [r3, 0x13] + lsls r1, r4, 24 + asrs r2, r1, 24 + adds r0, r2, r0 + strb r0, [r3, 0x13] + lsls r0, 24 + adds r4, r1, 0 + cmp r0, 0 + bge _080AD262 + movs r0, 0 + strb r0, [r3, 0x13] +_080AD262: + cmp r2, 0 + bne _080AD290 + ldr r0, _080AD28C @ =gTasks + mov r3, r8 + lsls r1, r3, 2 + b _080AD6EC + .align 2, 0 +_080AD270: .4byte gStringVar3 +_080AD274: .4byte gUnknown_083CC2D8 +_080AD278: .4byte gContestMoves +_080AD27C: .4byte 0x02019260 +_080AD280: .4byte gStringVar1 +_080AD284: .4byte gUnknown_02038572 +_080AD288: .4byte 0x02019204 +_080AD28C: .4byte gTasks +_080AD290: + cmp r2, 0 + bge _080AD2A8 + ldr r0, _080AD2A0 @ =gStringVar4 + ldr r1, _080AD2A4 @ =gUnknown_083CC0BC + bl StringExpandPlaceholders + b _080AD2D0 + .align 2, 0 +_080AD2A0: .4byte gStringVar4 +_080AD2A4: .4byte gUnknown_083CC0BC +_080AD2A8: + cmp r2, 0 + ble _080AD2C8 + movs r0, 0x13 + ldrsb r0, [r3, r0] + cmp r0, 0x4 + bgt _080AD2C8 + ldr r0, _080AD2C0 @ =gStringVar4 + ldr r1, _080AD2C4 @ =gUnknown_083CC0A0 + bl StringExpandPlaceholders + b _080AD2D0 + .align 2, 0 +_080AD2C0: .4byte gStringVar4 +_080AD2C4: .4byte gUnknown_083CC0A0 +_080AD2C8: + ldr r0, _080AD300 @ =gStringVar4 + ldr r1, _080AD304 @ =gUnknown_083CC0E3 + bl StringExpandPlaceholders +_080AD2D0: + ldr r0, _080AD308 @ =gMenuWindow + ldr r1, _080AD300 @ =gStringVar4 + movs r2, 0xC2 + lsls r2, 2 + movs r3, 0xF + str r3, [sp] + movs r3, 0x1 + bl sub_8002EB0 + ldr r1, _080AD30C @ =gTasks + mov r5, r8 + lsls r0, r5, 2 + add r0, r8 + lsls r0, 3 + adds r1, r0, r1 + movs r0, 0 + strh r0, [r1, 0x1C] + strh r0, [r1, 0x1E] + cmp r4, 0 + bge _080AD310 + movs r0, 0x35 + strh r0, [r1, 0x8] + b _080AD8CA + .align 2, 0 +_080AD300: .4byte gStringVar4 +_080AD304: .4byte gUnknown_083CC0E3 +_080AD308: .4byte gMenuWindow +_080AD30C: .4byte gTasks +_080AD310: + movs r0, 0x36 + strh r0, [r1, 0x8] + b _080AD8CA +_080AD316: + mov r1, r8 + lsls r0, r1, 2 + add r0, r8 + lsls r0, 3 + mov r2, r12 + adds r4, r0, r2 + movs r3, 0x1C + ldrsh r2, [r4, r3] + cmp r2, 0x1 + beq _080AD354 + cmp r2, 0x1 + bgt _080AD334 + cmp r2, 0 + beq _080AD33E + b _080AD8CA +_080AD334: + cmp r2, 0x2 + beq _080AD37C + cmp r2, 0x3 + beq _080AD3B0 + b _080AD8CA +_080AD33E: + movs r0, 0x1 + negs r0, r0 + movs r1, 0x1 + bl sub_80B1EA8 + ldr r0, _080AD350 @ =0x00000187 + bl PlayFanfare + b _080AD3A8 + .align 2, 0 +_080AD350: .4byte 0x00000187 +_080AD354: + ldrb r0, [r6, 0x7] + ands r2, r0 + cmp r2, 0 + beq _080AD35E + b _080AD8CA +_080AD35E: + ldr r0, _080AD378 @ =gMenuWindow + bl sub_80037A0 + lsls r0, 24 + cmp r0, 0 + bne _080AD36C + b _080AD8CA +_080AD36C: + movs r0, 0x1 + negs r0, r0 + bl sub_80B1CBC + b _080AD3A8 + .align 2, 0 +_080AD378: .4byte gMenuWindow +_080AD37C: + ldrb r1, [r6, 0x6] + movs r0, 0x20 + ands r0, r1 + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0 + beq _080AD38C + b _080AD8CA +_080AD38C: + ldrh r0, [r4, 0x1E] + adds r1, r0, 0x1 + strh r1, [r4, 0x1E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1D + bgt _080AD39C + b _080AD8CA +_080AD39C: + strh r2, [r4, 0x1E] + movs r1, 0x1 + negs r1, r1 + adds r0, r1, 0 + bl sub_80B1EA8 +_080AD3A8: + ldrh r0, [r4, 0x1C] + adds r0, 0x1 + strh r0, [r4, 0x1C] + b _080AD8CA +_080AD3B0: + ldr r0, _080AD3CC @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0 + beq _080AD3C2 + b _080AD8CA +_080AD3C2: + strh r0, [r4, 0x1C] + strh r0, [r4, 0x1E] + movs r0, 0x2B + strh r0, [r4, 0x8] + b _080AD8CA + .align 2, 0 +_080AD3CC: .4byte gPaletteFade +_080AD3D0: + mov r4, r8 + lsls r1, r4, 2 + adds r0, r1, r4 + lsls r0, 3 + add r0, r12 + movs r5, 0x1C + ldrsh r0, [r0, r5] + mov r9, r1 + cmp r0, 0x4 + bls _080AD3E6 + b _080AD8CA +_080AD3E6: + lsls r0, 2 + ldr r1, _080AD3F0 @ =_080AD3F4 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080AD3F0: .4byte _080AD3F4 + .align 2, 0 +_080AD3F4: + .4byte _080AD408 + .4byte _080AD420 + .4byte _080AD43E + .4byte _080AD4A0 + .4byte _080AD4EC +_080AD408: + ldr r0, _080AD41C @ =gMenuWindow + bl sub_80037A0 + lsls r0, 24 + cmp r0, 0 + bne _080AD416 + b _080AD8CA +_080AD416: + movs r0, 0x1 + movs r1, 0x1 + b _080AD4C8 + .align 2, 0 +_080AD41C: .4byte gMenuWindow +_080AD420: + ldrb r1, [r6, 0x7] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080AD42C + b _080AD8CA +_080AD42C: + bl sub_80B1DDC + movs r0, 0xDF + bl PlaySE + movs r0, 0x1 + bl sub_80B1CBC + b _080AD4CC +_080AD43E: + ldrb r1, [r6, 0x6] + movs r0, 0x20 + ands r0, r1 + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0 + beq _080AD44E + b _080AD8CA +_080AD44E: + mov r0, r9 + add r0, r8 + lsls r0, 3 + mov r1, r12 + adds r3, r0, r1 + ldrh r0, [r3, 0x1E] + adds r1, r0, 0x1 + strh r1, [r3, 0x1E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1D + bgt _080AD468 + b _080AD8CA +_080AD468: + strh r2, [r3, 0x1E] + lsls r4, r7, 3 + subs r4, r7 + lsls r4, 2 + adds r0, r6, 0 + adds r0, 0x5C + adds r4, r0 + movs r2, 0x2 + ldrsh r0, [r4, r2] + movs r1, 0x92 + lsls r1, 1 + adds r5, r6, r1 + movs r1, 0x2 + ldrsb r1, [r5, r1] + adds r2, r7, 0 + str r3, [sp, 0x4] + bl sub_80AFBA0 + movs r0, 0x2 + ldrsb r0, [r5, r0] + ldrh r2, [r4, 0x2] + adds r0, r2 + strh r0, [r4, 0x2] + ldr r3, [sp, 0x4] + ldrh r0, [r3, 0x1C] + adds r0, 0x1 + strh r0, [r3, 0x1C] + b _080AD8CA +_080AD4A0: + lsls r0, r7, 2 + ldr r2, _080AD4E0 @ =0x02019338 + adds r0, r2 + ldrb r1, [r0, 0x2] + movs r0, 0x4 + ands r0, r1 + cmp r0, 0 + beq _080AD4B2 + b _080AD8CA +_080AD4B2: + ldr r3, _080AD4E4 @ =0xfffffecc + adds r0, r2, r3 + ldrb r1, [r0, 0x6] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _080AD4C2 + b _080AD8CA +_080AD4C2: + movs r1, 0x1 + negs r1, r1 + movs r0, 0x1 +_080AD4C8: + bl sub_80B1EA8 +_080AD4CC: + ldr r0, _080AD4E8 @ =gTasks + mov r1, r9 + add r1, r8 + lsls r1, 3 + adds r1, r0 + ldrh r0, [r1, 0x1C] + adds r0, 0x1 + strh r0, [r1, 0x1C] + b _080AD8CA + .align 2, 0 +_080AD4E0: .4byte 0x02019338 +_080AD4E4: .4byte 0xfffffecc +_080AD4E8: .4byte gTasks +_080AD4EC: + ldr r0, _080AD510 @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0 + beq _080AD4FE + b _080AD8CA +_080AD4FE: + mov r0, r9 + add r0, r8 + lsls r0, 3 + add r0, r12 + strh r1, [r0, 0x1C] + strh r1, [r0, 0x1E] + movs r1, 0x2B + strh r1, [r0, 0x8] + b _080AD8CA + .align 2, 0 +_080AD510: .4byte gPaletteFade +_080AD514: + lsls r0, r7, 2 + ldr r1, _080AD534 @ =0x02019338 + adds r0, r1 + ldrb r1, [r0, 0x2] + movs r0, 0x4 + ands r0, r1 + cmp r0, 0 + beq _080AD526 + b _080AD8CA +_080AD526: + bl sub_80AF138 + ldr r0, _080AD538 @ =gTasks + mov r4, r8 + lsls r1, r4, 2 + b _080AD6EC + .align 2, 0 +_080AD534: .4byte 0x02019338 +_080AD538: .4byte gTasks +_080AD53C: + bl sub_80AF138 + ldr r0, _080AD5A8 @ =gStringVar3 + ldr r4, _080AD5AC @ =0x02019328 + ldr r1, [r4] + lsls r1, 20 + lsrs r1, 29 + lsls r1, 6 + ldr r5, _080AD5B0 @ =gUnknown_02038572 + adds r1, r5 + bl StringCopy + ldr r0, _080AD5B4 @ =gStringVar1 + lsls r1, r7, 6 + adds r1, r5 + bl StringCopy + ldr r0, _080AD5B8 @ =gStringVar2 + lsls r1, r7, 3 + subs r1, r7 + lsls r1, 2 + subs r4, 0xC8 + adds r1, r4 + ldrh r2, [r1, 0x6] + movs r1, 0xD + muls r1, r2 + ldr r2, _080AD5BC @ =gMoveNames + adds r1, r2 + bl StringCopy + ldr r4, _080AD5C0 @ =gStringVar4 + ldr r1, _080AD5C4 @ =gUnknown_083CC14A + adds r0, r4, 0 + bl StringExpandPlaceholders + ldr r0, _080AD5C8 @ =gMenuWindow + movs r2, 0xC2 + lsls r2, 2 + movs r1, 0xF + str r1, [sp] + adds r1, r4, 0 + movs r3, 0x1 + bl sub_8002EB0 + ldr r1, _080AD5CC @ =gTasks + mov r5, r8 + lsls r0, r5, 2 + add r0, r8 + lsls r0, 3 + adds r0, r1 + movs r1, 0x3A + strh r1, [r0, 0x8] + b _080AD8CA + .align 2, 0 +_080AD5A8: .4byte gStringVar3 +_080AD5AC: .4byte 0x02019328 +_080AD5B0: .4byte gUnknown_02038572 +_080AD5B4: .4byte gStringVar1 +_080AD5B8: .4byte gStringVar2 +_080AD5BC: .4byte gMoveNames +_080AD5C0: .4byte gStringVar4 +_080AD5C4: .4byte gUnknown_083CC14A +_080AD5C8: .4byte gMenuWindow +_080AD5CC: .4byte gTasks +_080AD5D0: + ldr r5, _080AD614 @ =gMenuWindow + adds r0, r5, 0 + bl sub_80037A0 + lsls r0, 24 + cmp r0, 0 + bne _080AD5E0 + b _080AD8CA +_080AD5E0: + bl sub_80AF138 + ldr r4, _080AD618 @ =gStringVar4 + ldr r1, _080AD61C @ =gUnknown_083CC16E + adds r0, r4, 0 + bl StringExpandPlaceholders + movs r2, 0xC2 + lsls r2, 2 + movs r0, 0xF + str r0, [sp] + adds r0, r5, 0 + adds r1, r4, 0 + movs r3, 0x1 + bl sub_8002EB0 + ldr r1, _080AD620 @ =gTasks + mov r2, r8 + lsls r0, r2, 2 + add r0, r8 + lsls r0, 3 + adds r0, r1 + movs r1, 0x3B + strh r1, [r0, 0x8] + b _080AD8CA + .align 2, 0 +_080AD614: .4byte gMenuWindow +_080AD618: .4byte gStringVar4 +_080AD61C: .4byte gUnknown_083CC16E +_080AD620: .4byte gTasks +_080AD624: + ldr r0, _080AD640 @ =gMenuWindow + bl sub_80037A0 + lsls r0, 24 + cmp r0, 0 + bne _080AD632 + b _080AD8CA +_080AD632: + bl sub_80AF138 + ldr r0, _080AD644 @ =gTasks + mov r3, r8 + lsls r1, r3, 2 + b _080AD6EC + .align 2, 0 +_080AD640: .4byte gMenuWindow +_080AD644: .4byte gTasks +_080AD648: + lsls r0, r7, 3 + subs r0, r7 + lsls r0, 2 + ldr r1, _080AD6B4 @ =0x02019260 + adds r4, r0, r1 + ldrb r1, [r4, 0x15] + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + beq _080AD664 + movs r0, 0x11 + negs r0, r0 + ands r0, r1 + strb r0, [r4, 0x15] +_080AD664: + adds r0, r7, 0 + bl sub_80B09B0 + ldr r0, _080AD6B8 @ =gStringVar1 + lsls r1, r7, 6 + ldr r2, _080AD6BC @ =gUnknown_02038572 + adds r1, r2 + bl StringCopy + ldr r0, _080AD6C0 @ =gStringVar2 + ldrh r2, [r4, 0x6] + movs r1, 0xD + muls r1, r2 + ldr r2, _080AD6C4 @ =gMoveNames + adds r1, r2 + bl StringCopy + ldr r4, _080AD6C8 @ =gStringVar4 + ldr r1, _080AD6CC @ =gUnknown_083CBF60 + adds r0, r4, 0 + bl StringExpandPlaceholders + ldr r0, _080AD6D0 @ =gMenuWindow + movs r2, 0xC2 + lsls r2, 2 + movs r1, 0xF + str r1, [sp] + adds r1, r4, 0 + movs r3, 0x1 + bl sub_8002EB0 + ldr r1, _080AD6D4 @ =gTasks + mov r4, r8 + lsls r0, r4, 2 + add r0, r8 + lsls r0, 3 + adds r0, r1 + movs r1, 0x22 + strh r1, [r0, 0x8] + b _080AD8CA + .align 2, 0 +_080AD6B4: .4byte 0x02019260 +_080AD6B8: .4byte gStringVar1 +_080AD6BC: .4byte gUnknown_02038572 +_080AD6C0: .4byte gStringVar2 +_080AD6C4: .4byte gMoveNames +_080AD6C8: .4byte gStringVar4 +_080AD6CC: .4byte gUnknown_083CBF60 +_080AD6D0: .4byte gMenuWindow +_080AD6D4: .4byte gTasks +_080AD6D8: + ldr r0, _080AD6F8 @ =gMenuWindow + bl sub_80037A0 + lsls r0, 24 + cmp r0, 0 + bne _080AD6E6 + b _080AD8CA +_080AD6E6: + ldr r0, _080AD6FC @ =gTasks + mov r5, r8 + lsls r1, r5, 2 +_080AD6EC: + add r1, r8 + lsls r1, 3 + adds r1, r0 + movs r0, 0x37 + strh r0, [r1, 0x8] + b _080AD8CA + .align 2, 0 +_080AD6F8: .4byte gMenuWindow +_080AD6FC: .4byte gTasks +_080AD700: + bl sub_80B1BDC + ldr r0, _080AD718 @ =gTasks + mov r2, r8 + lsls r1, r2, 2 + add r1, r8 + lsls r1, 3 + adds r1, r0 + movs r0, 0x38 + strh r0, [r1, 0x8] + b _080AD8CA + .align 2, 0 +_080AD718: .4byte gTasks +_080AD71C: + ldrb r1, [r6, 0x6] + movs r0, 0x40 + ands r0, r1 + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0 + beq _080AD72C + b _080AD8CA +_080AD72C: + movs r0, 0x13 + ldrsb r0, [r6, r0] + cmp r0, 0x4 + ble _080AD73A + strb r1, [r6, 0x13] + bl sub_80B1928 +_080AD73A: + ldr r0, _080AD74C @ =gTasks + mov r3, r8 + lsls r1, r3, 2 + add r1, r8 + lsls r1, 3 + adds r1, r0 + movs r0, 0xA + strh r0, [r1, 0x8] + b _080AD8CA + .align 2, 0 +_080AD74C: .4byte gTasks +_080AD750: + mov r4, r8 + lsls r2, r4, 2 + add r2, r8 + lsls r2, 3 + add r2, r12 + ldrb r5, [r2, 0xC] + ldr r1, _080AD774 @ =gSprites + lsls r0, r5, 4 + adds r0, r5 + lsls r0, 2 + adds r1, 0x1C + adds r0, r1 + ldr r1, _080AD778 @ =sub_80AD92C + str r1, [r0] + movs r0, 0xB + strh r0, [r2, 0x8] + b _080AD8CA + .align 2, 0 +_080AD774: .4byte gSprites +_080AD778: .4byte sub_80AD92C +_080AD77C: + mov r5, r8 + lsls r0, r5, 2 + add r0, r8 + lsls r0, 3 + mov r1, r12 + adds r4, r0, r1 + ldrb r5, [r4, 0xC] + ldr r1, _080AD7B4 @ =gSprites + lsls r0, r5, 4 + adds r0, r5 + lsls r0, 2 + adds r6, r0, r1 + adds r0, r6, 0 + adds r0, 0x3E + ldrb r0, [r0] + lsls r0, 29 + cmp r0, 0 + blt _080AD7A2 + b _080AD8CA +_080AD7A2: + adds r0, r6, 0 + bl FreeSpriteOamMatrix + adds r0, r6, 0 + bl DestroySprite + movs r0, 0x14 + strh r0, [r4, 0x8] + b _080AD8CA + .align 2, 0 +_080AD7B4: .4byte gSprites +_080AD7B8: + movs r6, 0 + mov r2, r8 + lsls r2, 2 + mov r9, r2 +_080AD7C0: + lsls r0, r6, 24 + lsrs r0, 24 + movs r1, 0x1 + bl sub_80B0CDC + adds r6, 0x1 + cmp r6, 0x3 + ble _080AD7C0 + ldr r1, _080AD7E4 @ =gTasks + mov r0, r9 + add r0, r8 + lsls r0, 3 + adds r0, r1 + movs r1, 0 + strh r1, [r0, 0x1C] + movs r1, 0x15 + strh r1, [r0, 0x8] + b _080AD8CA + .align 2, 0 +_080AD7E4: .4byte gTasks +_080AD7E8: + bl sub_80AF138 + ldr r0, _080AD828 @ =gStringVar1 + lsls r1, r7, 6 + ldr r2, _080AD82C @ =gUnknown_02038572 + adds r1, r2 + bl StringCopy + ldr r4, _080AD830 @ =gStringVar4 + ldr r1, _080AD834 @ =gUnknown_083CB00D + adds r0, r4, 0 + bl StringExpandPlaceholders + ldr r0, _080AD838 @ =gMenuWindow + movs r2, 0xC2 + lsls r2, 2 + movs r1, 0xF + str r1, [sp] + adds r1, r4, 0 + movs r3, 0x1 + bl sub_8002EB0 + ldr r1, _080AD83C @ =gTasks + mov r3, r8 + lsls r0, r3, 2 + add r0, r8 + lsls r0, 3 + adds r0, r1 + movs r1, 0x20 + strh r1, [r0, 0x8] + b _080AD8CA + .align 2, 0 +_080AD828: .4byte gStringVar1 +_080AD82C: .4byte gUnknown_02038572 +_080AD830: .4byte gStringVar4 +_080AD834: .4byte gUnknown_083CB00D +_080AD838: .4byte gMenuWindow +_080AD83C: .4byte gTasks +_080AD840: + ldr r0, _080AD860 @ =gMenuWindow + bl sub_80037A0 + lsls r0, 24 + cmp r0, 0 + beq _080AD8CA + ldr r0, _080AD864 @ =gTasks + mov r4, r8 + lsls r1, r4, 2 + add r1, r8 + lsls r1, 3 + adds r1, r0 + movs r0, 0x15 + strh r0, [r1, 0x8] + b _080AD8CA + .align 2, 0 +_080AD860: .4byte gMenuWindow +_080AD864: .4byte gTasks +_080AD868: + mov r5, r8 + lsls r0, r5, 2 + add r0, r8 + lsls r0, 3 + mov r2, r12 + adds r1, r0, r2 + ldrh r0, [r1, 0x1C] + adds r0, 0x1 + strh r0, [r1, 0x1C] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1D + ble _080AD8CA + movs r0, 0 + strh r0, [r1, 0x1C] + movs r0, 0x16 + strh r0, [r1, 0x8] + b _080AD8CA +_080AD88C: + ldrb r0, [r6, 0x10] + adds r0, 0x1 + movs r1, 0 + strb r0, [r6, 0x10] + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x4 + bne _080AD8B8 + mov r3, r8 + lsls r0, r3, 2 + add r0, r8 + lsls r0, 3 + add r0, r12 + strh r1, [r0, 0x8] + strh r1, [r0, 0xA] + strh r1, [r0, 0xC] + ldr r1, _080AD8B4 @ =sub_80AD960 + str r1, [r0] + b _080AD8C4 + .align 2, 0 +_080AD8B4: .4byte sub_80AD960 +_080AD8B8: + mov r4, r8 + lsls r0, r4, 2 + add r0, r8 + lsls r0, 3 + add r0, r12 + strh r1, [r0, 0x8] +_080AD8C4: + movs r0, 0 + bl nullsub_18 +_080AD8CA: + 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_80AC2CC + + thumb_func_start sub_80AD8DC +sub_80AD8DC: @ 80AD8DC + push {lr} + lsls r0, 24 + lsrs r0, 24 + ldr r3, _080AD8F8 @ =0x02019204 + ldrb r2, [r3, 0x7] + movs r1, 0x5 + negs r1, r1 + ands r1, r2 + strb r1, [r3, 0x7] + bl DestroyTask + pop {r0} + bx r0 + .align 2, 0 +_080AD8F8: .4byte 0x02019204 + thumb_func_end sub_80AD8DC + + thumb_func_start sub_80AD8FC +sub_80AD8FC: @ 80AD8FC + push {lr} + adds r1, r0, 0 + ldrh r0, [r1, 0x24] + movs r3, 0x24 + ldrsh r2, [r1, r3] + cmp r2, 0 + beq _080AD910 + subs r0, 0x2 + strh r0, [r1, 0x24] + b _080AD924 +_080AD910: + ldrh r0, [r1, 0x2E] + adds r0, 0x1 + strh r0, [r1, 0x2E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1F + bne _080AD924 + strh r2, [r1, 0x2E] + ldr r0, _080AD928 @ =SpriteCallbackDummy + str r0, [r1, 0x1C] +_080AD924: + pop {r0} + bx r0 + .align 2, 0 +_080AD928: .4byte SpriteCallbackDummy + thumb_func_end sub_80AD8FC + + thumb_func_start sub_80AD92C +sub_80AD92C: @ 80AD92C + push {lr} + adds r2, r0, 0 + ldrh r0, [r2, 0x24] + subs r0, 0x6 + strh r0, [r2, 0x24] + movs r1, 0x20 + ldrsh r0, [r2, r1] + movs r3, 0x24 + ldrsh r1, [r2, r3] + adds r0, r1 + movs r1, 0x20 + negs r1, r1 + cmp r0, r1 + bge _080AD956 + ldr r0, _080AD95C @ =SpriteCallbackDummy + str r0, [r2, 0x1C] + adds r2, 0x3E + ldrb r0, [r2] + movs r1, 0x4 + orrs r0, r1 + strb r0, [r2] +_080AD956: + pop {r0} + bx r0 + .align 2, 0 +_080AD95C: .4byte SpriteCallbackDummy + thumb_func_end sub_80AD92C + + thumb_func_start sub_80AD960 +sub_80AD960: @ 80AD960 + push {r4-r6,lr} + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080AD984 @ =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r5, r1, r2 + movs r1, 0x8 + ldrsh r0, [r5, r1] + cmp r0, 0x1 + beq _080AD9F2 + cmp r0, 0x1 + bgt _080AD988 + cmp r0, 0 + beq _080AD98E + b _080ADA10 + .align 2, 0 +_080AD984: .4byte gTasks +_080AD988: + cmp r0, 0x2 + beq _080ADA08 + b _080ADA10 +_080AD98E: + ldr r0, _080AD9D8 @ =gUnknown_0203869A + ldrb r1, [r0] + movs r6, 0x1 + adds r0, r6, 0 + ands r0, r1 + cmp r0, 0 + beq _080AD9E8 + ldr r2, _080AD9DC @ =0x02019204 + ldrb r0, [r2, 0x7] + movs r1, 0x4 + orrs r0, r1 + strb r0, [r2, 0x7] + bl sub_80AE074 + lsls r0, 24 + cmp r0, 0 + beq _080AD9B8 + bl sub_80AF2FC + bl sub_80AF3C0 +_080AD9B8: + ldr r4, _080AD9E0 @ =sub_80C8C80 + adds r0, r4, 0 + movs r1, 0 + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080AD9E4 @ =sub_80AD8DC + adds r1, r4, 0 + bl SetTaskFuncWithFollowupFunc + bl sub_80AF860 + strh r6, [r5, 0x8] + b _080ADA10 + .align 2, 0 +_080AD9D8: .4byte gUnknown_0203869A +_080AD9DC: .4byte 0x02019204 +_080AD9E0: .4byte sub_80C8C80 +_080AD9E4: .4byte sub_80AD8DC +_080AD9E8: + bl sub_80AF2FC + bl sub_80AF3C0 + b _080AD9FE +_080AD9F2: + ldr r0, _080ADA04 @ =0x02019204 + ldrb r1, [r0, 0x7] + movs r0, 0x4 + ands r0, r1 + cmp r0, 0 + bne _080ADA10 +_080AD9FE: + movs r0, 0x2 + strh r0, [r5, 0x8] + b _080ADA10 + .align 2, 0 +_080ADA04: .4byte 0x02019204 +_080ADA08: + movs r0, 0 + strh r0, [r5, 0x8] + ldr r0, _080ADA18 @ =sub_80ADA1C + str r0, [r5] +_080ADA10: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080ADA18: .4byte sub_80ADA1C + thumb_func_end sub_80AD960 + + thumb_func_start sub_80ADA1C +sub_80ADA1C: @ 80ADA1C + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + movs r0, 0 + bl sub_80B1FD0 + ldr r1, _080ADA44 @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + movs r1, 0 + strh r1, [r0, 0x8] + strh r1, [r0, 0xA] + ldr r1, _080ADA48 @ =sub_80ADA4C + str r1, [r0] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080ADA44: .4byte gTasks +_080ADA48: .4byte sub_80ADA4C + thumb_func_end sub_80ADA1C + + thumb_func_start sub_80ADA4C +sub_80ADA4C: @ 80ADA4C + push {r4,r5,lr} + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080ADA70 @ =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r4, r1, r2 + movs r0, 0x8 + ldrsh r5, [r4, r0] + cmp r5, 0x1 + beq _080ADA92 + cmp r5, 0x1 + bgt _080ADA74 + cmp r5, 0 + beq _080ADA7A + b _080ADACE + .align 2, 0 +_080ADA70: .4byte gTasks +_080ADA74: + cmp r5, 0x2 + beq _080ADAC0 + b _080ADACE +_080ADA7A: + ldrh r0, [r4, 0xA] + adds r0, 0x1 + strh r0, [r4, 0xA] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x14 + ble _080ADACE + movs r0, 0x2 + bl sub_80B25E4 + strh r5, [r4, 0xA] + b _080ADAB2 +_080ADA92: + ldr r0, _080ADABC @ =0x02019204 + ldrb r1, [r0, 0x7] + movs r0, 0x2 + ands r0, r1 + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0 + bne _080ADACE + ldrh r0, [r4, 0xA] + adds r0, 0x1 + strh r0, [r4, 0xA] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x14 + ble _080ADACE + strh r1, [r4, 0xA] +_080ADAB2: + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + b _080ADACE + .align 2, 0 +_080ADABC: .4byte 0x02019204 +_080ADAC0: + bl sub_80AFF10 + movs r0, 0 + strh r0, [r4, 0x8] + strh r0, [r4, 0xA] + ldr r0, _080ADAD4 @ =sub_80ADAD8 + str r0, [r4] +_080ADACE: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080ADAD4: .4byte sub_80ADAD8 + thumb_func_end sub_80ADA4C + + thumb_func_start sub_80ADAD8 +sub_80ADAD8: @ 80ADAD8 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + bl sub_80AFF28 + lsls r0, 24 + cmp r0, 0 + beq _080ADAF6 + ldr r0, _080ADAFC @ =gTasks + lsls r1, r4, 2 + adds r1, r4 + lsls r1, 3 + adds r1, r0 + ldr r0, _080ADB00 @ =sub_80ADB04 + str r0, [r1] +_080ADAF6: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080ADAFC: .4byte gTasks +_080ADB00: .4byte sub_80ADB04 + thumb_func_end sub_80ADAD8 + + thumb_func_start sub_80ADB04 +sub_80ADB04: @ 80ADB04 + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080ADB30 @ =0x02018204 + ldr r3, _080ADB34 @ =gPlttBufferUnfaded + ldr r1, _080ADB38 @ =0x040000d4 + str r2, [r1] + str r3, [r1, 0x4] + ldr r2, _080ADB3C @ =0x84000100 + str r2, [r1, 0x8] + ldr r1, [r1, 0x8] + ldr r2, _080ADB40 @ =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + movs r0, 0 + strh r0, [r1, 0x8] + movs r0, 0x2 + strh r0, [r1, 0xA] + ldr r0, _080ADB44 @ =sub_80ADB48 + str r0, [r1] + bx lr + .align 2, 0 +_080ADB30: .4byte 0x02018204 +_080ADB34: .4byte gPlttBufferUnfaded +_080ADB38: .4byte 0x040000d4 +_080ADB3C: .4byte 0x84000100 +_080ADB40: .4byte gTasks +_080ADB44: .4byte sub_80ADB48 + thumb_func_end sub_80ADB04 + + thumb_func_start sub_80ADB48 +sub_80ADB48: @ 80ADB48 + push {lr} + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080ADB80 @ =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + ldrh r0, [r1, 0x8] + adds r0, 0x1 + strh r0, [r1, 0x8] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x2 + ble _080ADB7A + movs r0, 0 + strh r0, [r1, 0x8] + ldrh r0, [r1, 0xA] + subs r0, 0x1 + strh r0, [r1, 0xA] + lsls r0, 16 + cmp r0, 0 + bne _080ADB7A + ldr r0, _080ADB84 @ =sub_80ADB88 + str r0, [r1] +_080ADB7A: + pop {r0} + bx r0 + .align 2, 0 +_080ADB80: .4byte gTasks +_080ADB84: .4byte sub_80ADB88 + thumb_func_end sub_80ADB48 + + thumb_func_start sub_80ADB88 +sub_80ADB88: @ 80ADB88 + push {r4-r6,lr} + sub sp, 0x4 + adds r5, r0, 0 + lsls r5, 24 + lsrs r5, 24 + ldr r6, _080ADBEC @ =gUnknown_02038695 + ldrb r1, [r6] + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + ldr r1, _080ADBF0 @ =0x02019260 + adds r0, r1 + ldrb r4, [r0, 0x1A] + bl sub_80AF138 + ldr r0, _080ADBF4 @ =gStringVar1 + ldrb r1, [r6] + lsls r1, 6 + ldr r2, _080ADBF8 @ =gUnknown_02038572 + adds r1, r2 + bl StringCopy + ldr r6, _080ADBFC @ =gStringVar4 + ldr r0, _080ADC00 @ =gUnknown_083CB2F0 + lsls r4, 2 + adds r4, r0 + ldr r1, [r4] + adds r0, r6, 0 + bl StringExpandPlaceholders + ldr r0, _080ADC04 @ =gMenuWindow + movs r2, 0xC2 + lsls r2, 2 + movs r1, 0xF + str r1, [sp] + adds r1, r6, 0 + movs r3, 0x1 + bl sub_8002EB0 + ldr r1, _080ADC08 @ =gTasks + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r0, r1 + ldr r1, _080ADC0C @ =sub_80ADC10 + str r1, [r0] + add sp, 0x4 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080ADBEC: .4byte gUnknown_02038695 +_080ADBF0: .4byte 0x02019260 +_080ADBF4: .4byte gStringVar1 +_080ADBF8: .4byte gUnknown_02038572 +_080ADBFC: .4byte gStringVar4 +_080ADC00: .4byte gUnknown_083CB2F0 +_080ADC04: .4byte gMenuWindow +_080ADC08: .4byte gTasks +_080ADC0C: .4byte sub_80ADC10 + thumb_func_end sub_80ADB88 + + thumb_func_start sub_80ADC10 +sub_80ADC10: @ 80ADC10 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, _080ADC40 @ =gMenuWindow + bl sub_80037A0 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080ADC3A + ldr r1, _080ADC44 @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + movs r1, 0 + strh r1, [r0, 0x8] + ldr r1, _080ADC48 @ =sub_80ADC4C + str r1, [r0] + bl sub_80B0D7C +_080ADC3A: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080ADC40: .4byte gMenuWindow +_080ADC44: .4byte gTasks +_080ADC48: .4byte sub_80ADC4C + thumb_func_end sub_80ADC10 + + thumb_func_start sub_80ADC4C +sub_80ADC4C: @ 80ADC4C + push {r4,lr} + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080ADC7C @ =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r4, r1, r2 + ldrh r0, [r4, 0x8] + adds r1, r0, 0x1 + strh r1, [r4, 0x8] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1D + ble _080ADC76 + movs r0, 0 + strh r0, [r4, 0x8] + bl sub_80AFF10 + ldr r0, _080ADC80 @ =sub_80ADC84 + str r0, [r4] +_080ADC76: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080ADC7C: .4byte gTasks +_080ADC80: .4byte sub_80ADC84 + thumb_func_end sub_80ADC4C + + thumb_func_start sub_80ADC84 +sub_80ADC84: @ 80ADC84 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + bl sub_80AFF28 + lsls r0, 24 + cmp r0, 0 + beq _080ADCA6 + ldr r1, _080ADCAC @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + movs r1, 0 + strh r1, [r0, 0x8] + ldr r1, _080ADCB0 @ =sub_80ADCB4 + str r1, [r0] +_080ADCA6: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080ADCAC: .4byte gTasks +_080ADCB0: .4byte sub_80ADCB4 + thumb_func_end sub_80ADC84 + + thumb_func_start sub_80ADCB4 +sub_80ADCB4: @ 80ADCB4 + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + bl sub_80B2184 + ldr r1, _080ADCD4 @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, _080ADCD8 @ =sub_80B237C + str r1, [r0] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080ADCD4: .4byte gTasks +_080ADCD8: .4byte sub_80B237C + thumb_func_end sub_80ADCB4 + + thumb_func_start sub_80ADCDC +sub_80ADCDC: @ 80ADCDC + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + bl sub_80B2280 + ldr r1, _080ADCFC @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, _080ADD00 @ =sub_80ADD04 + str r1, [r0] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080ADCFC: .4byte gTasks +_080ADD00: .4byte sub_80ADD04 + thumb_func_end sub_80ADCDC + + thumb_func_start sub_80ADD04 +sub_80ADD04: @ 80ADD04 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r3, _080ADD40 @ =REG_BG0CNT + ldrb r2, [r3] + movs r1, 0x4 + negs r1, r1 + adds r0, r1, 0 + ands r0, r2 + strb r0, [r3] + ldr r2, _080ADD44 @ =REG_BG2CNT + ldrb r0, [r2] + ands r1, r0 + strb r1, [r2] + ldr r1, _080ADD48 @ =0x02019204 + ldrb r0, [r1, 0x1] + adds r0, 0x1 + strb r0, [r1, 0x1] + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x5 + bne _080ADD54 + ldr r0, _080ADD4C @ =gTasks + lsls r1, r4, 2 + adds r1, r4 + lsls r1, 3 + adds r1, r0 + ldr r0, _080ADD50 @ =sub_80ADDA4 + b _080ADD64 + .align 2, 0 +_080ADD40: .4byte REG_BG0CNT +_080ADD44: .4byte REG_BG2CNT +_080ADD48: .4byte 0x02019204 +_080ADD4C: .4byte gTasks +_080ADD50: .4byte sub_80ADDA4 +_080ADD54: + bl sub_80B1B14 + ldr r0, _080ADD6C @ =gTasks + lsls r1, r4, 2 + adds r1, r4 + lsls r1, 3 + adds r1, r0 + ldr r0, _080ADD70 @ =sub_80ADD74 +_080ADD64: + str r0, [r1] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080ADD6C: .4byte gTasks +_080ADD70: .4byte sub_80ADD74 + thumb_func_end sub_80ADD04 + + thumb_func_start sub_80ADD74 +sub_80ADD74: @ 80ADD74 + push {lr} + lsls r0, 24 + lsrs r2, r0, 24 + ldr r0, _080ADD98 @ =0x02019204 + ldrb r1, [r0, 0x6] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + bne _080ADD94 + ldr r0, _080ADD9C @ =gTasks + lsls r1, r2, 2 + adds r1, r2 + lsls r1, 3 + adds r1, r0 + ldr r0, _080ADDA0 @ =sub_80ABB70 + str r0, [r1] +_080ADD94: + pop {r0} + bx r0 + .align 2, 0 +_080ADD98: .4byte 0x02019204 +_080ADD9C: .4byte gTasks +_080ADDA0: .4byte sub_80ABB70 + thumb_func_end sub_80ADD74 + + thumb_func_start sub_80ADDA4 +sub_80ADDA4: @ 80ADDA4 + push {r4-r6,lr} + sub sp, 0x4 + lsls r0, 24 + lsrs r6, r0, 24 + ldr r0, _080ADE24 @ =gUnknown_030042A0 + movs r1, 0 + strh r1, [r0] + ldr r0, _080ADE28 @ =gUnknown_03004280 + strh r1, [r0] + ldr r3, _080ADE2C @ =0x02019260 + ldr r2, _080ADE30 @ =gUnknown_02038680 + movs r1, 0x3 +_080ADDBC: + ldrh r0, [r3, 0x4] + strh r0, [r2] + adds r3, 0x1C + adds r2, 0x2 + subs r1, 0x1 + cmp r1, 0 + bge _080ADDBC + movs r5, 0 + bl sub_80AF668 + bl sub_80AF138 + ldr r0, _080ADE34 @ =gUnknown_02038695 + ldrb r1, [r0] + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + ldr r1, _080ADE2C @ =0x02019260 + adds r0, r1 + ldrh r0, [r0, 0x8] + bl sub_80BE23C + ldr r1, _080ADE38 @ =gUnknown_03005D28 + ldr r0, _080ADE3C @ =gRngValue + ldr r0, [r0] + str r0, [r1] + ldr r4, _080ADE40 @ =gStringVar4 + ldr r1, _080ADE44 @ =gUnknown_083CB02C + adds r0, r4, 0 + bl StringExpandPlaceholders + ldr r0, _080ADE48 @ =gMenuWindow + movs r2, 0xC2 + lsls r2, 2 + movs r1, 0xF + str r1, [sp] + adds r1, r4, 0 + movs r3, 0x1 + bl sub_8002EB0 + ldr r1, _080ADE4C @ =gTasks + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 3 + adds r0, r1 + strh r5, [r0, 0xC] + ldr r1, _080ADE50 @ =sub_80ADE54 + str r1, [r0] + add sp, 0x4 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080ADE24: .4byte gUnknown_030042A0 +_080ADE28: .4byte gUnknown_03004280 +_080ADE2C: .4byte 0x02019260 +_080ADE30: .4byte gUnknown_02038680 +_080ADE34: .4byte gUnknown_02038695 +_080ADE38: .4byte gUnknown_03005D28 +_080ADE3C: .4byte gRngValue +_080ADE40: .4byte gStringVar4 +_080ADE44: .4byte gUnknown_083CB02C +_080ADE48: .4byte gMenuWindow +_080ADE4C: .4byte gTasks +_080ADE50: .4byte sub_80ADE54 + thumb_func_end sub_80ADDA4 + + thumb_func_start sub_80ADE54 +sub_80ADE54: @ 80ADE54 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, _080ADE98 @ =gMenuWindow + bl sub_80037A0 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080ADE92 + bl sub_80B2184 + ldr r1, _080ADE9C @ =gUnknown_030042C0 + movs r0, 0 + strh r0, [r1] + ldr r1, _080ADEA0 @ =gUnknown_030041B4 + movs r0, 0xA0 + strh r0, [r1] + movs r0, 0x62 + movs r1, 0 + bl PlaySE12WithPanning + ldr r1, _080ADEA4 @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + movs r1, 0 + strh r1, [r0, 0x8] + ldr r1, _080ADEA8 @ =sub_80ADEAC + str r1, [r0] +_080ADE92: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080ADE98: .4byte gMenuWindow +_080ADE9C: .4byte gUnknown_030042C0 +_080ADEA0: .4byte gUnknown_030041B4 +_080ADEA4: .4byte gTasks +_080ADEA8: .4byte sub_80ADEAC + thumb_func_end sub_80ADE54 + + thumb_func_start sub_80ADEAC +sub_80ADEAC: @ 80ADEAC + push {lr} + lsls r0, 24 + lsrs r3, r0, 24 + ldr r1, _080ADEE0 @ =gUnknown_030041B4 + ldrh r0, [r1] + subs r0, 0x7 + strh r0, [r1] + lsls r0, 16 + cmp r0, 0 + bge _080ADEC4 + movs r0, 0 + strh r0, [r1] +_080ADEC4: + ldrh r2, [r1] + cmp r2, 0 + bne _080ADEDA + ldr r0, _080ADEE4 @ =gTasks + lsls r1, r3, 2 + adds r1, r3 + lsls r1, 3 + adds r1, r0 + ldr r0, _080ADEE8 @ =sub_80ADEEC + str r0, [r1] + strh r2, [r1, 0x8] +_080ADEDA: + pop {r0} + bx r0 + .align 2, 0 +_080ADEE0: .4byte gUnknown_030041B4 +_080ADEE4: .4byte gTasks +_080ADEE8: .4byte sub_80ADEEC + thumb_func_end sub_80ADEAC + + thumb_func_start sub_80ADEEC +sub_80ADEEC: @ 80ADEEC + push {r4,lr} + sub sp, 0x4 + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080ADF20 @ =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r4, r1, r2 + ldrh r0, [r4, 0x8] + adds r1, r0, 0x1 + strh r1, [r4, 0x8] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x31 + ble _080ADF40 + movs r0, 0 + strh r0, [r4, 0x8] + ldr r0, _080ADF24 @ =gUnknown_0203869A + ldrb r0, [r0] + movs r1, 0x1 + ands r1, r0 + cmp r1, 0 + beq _080ADF2C + ldr r0, _080ADF28 @ =sub_80ADF4C + b _080ADF3E + .align 2, 0 +_080ADF20: .4byte gTasks +_080ADF24: .4byte gUnknown_0203869A +_080ADF28: .4byte sub_80ADF4C +_080ADF2C: + movs r0, 0x1 + negs r0, r0 + str r1, [sp] + movs r1, 0 + movs r2, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade + ldr r0, _080ADF48 @ =sub_80ADFD8 +_080ADF3E: + str r0, [r4] +_080ADF40: + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080ADF48: .4byte sub_80ADFD8 + thumb_func_end sub_80ADEEC + + thumb_func_start sub_80ADF4C +sub_80ADF4C: @ 80ADF4C + push {r4,r5,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldr r5, _080ADF88 @ =sub_80C8AD0 + adds r0, r5, 0 + movs r1, 0 + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080ADF8C @ =sub_80ADF98 + adds r1, r5, 0 + bl SetTaskFuncWithFollowupFunc + ldr r1, _080ADF90 @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, _080ADF94 @ =nullsub_89 + str r1, [r0] + bl sub_80AF860 + movs r0, 0 + bl sub_80AFFE0 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080ADF88: .4byte sub_80C8AD0 +_080ADF8C: .4byte sub_80ADF98 +_080ADF90: .4byte gTasks +_080ADF94: .4byte nullsub_89 + thumb_func_end sub_80ADF4C + + thumb_func_start sub_80ADF98 +sub_80ADF98: @ 80ADF98 + push {lr} + sub sp, 0x4 + lsls r0, 24 + lsrs r0, 24 + bl DestroyTask + movs r0, 0x1 + negs r0, r0 + movs r1, 0 + str r1, [sp] + movs r2, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade + ldr r2, _080ADFCC @ =gTasks + ldr r0, _080ADFD0 @ =0x02019204 + ldrb r1, [r0, 0x8] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r2 + ldr r1, _080ADFD4 @ =sub_80ADFD8 + str r1, [r0] + add sp, 0x4 + pop {r0} + bx r0 + .align 2, 0 +_080ADFCC: .4byte gTasks +_080ADFD0: .4byte 0x02019204 +_080ADFD4: .4byte sub_80ADFD8 + thumb_func_end sub_80ADF98 + + thumb_func_start sub_80ADFD8 +sub_80ADFD8: @ 80ADFD8 + push {lr} + lsls r0, 24 + lsrs r2, r0, 24 + ldr r0, _080AE000 @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _080ADFFC + adds r0, r2, 0 + bl DestroyTask + ldr r0, _080AE004 @ =gUnknown_0300485C + ldr r1, _080AE008 @ =sub_80AE010 + str r1, [r0] + ldr r0, _080AE00C @ =c2_exit_to_overworld_2_switch + bl SetMainCallback2 +_080ADFFC: + pop {r0} + bx r0 + .align 2, 0 +_080AE000: .4byte gPaletteFade +_080AE004: .4byte gUnknown_0300485C +_080AE008: .4byte sub_80AE010 +_080AE00C: .4byte c2_exit_to_overworld_2_switch + thumb_func_end sub_80ADFD8 + + thumb_func_start sub_80AE010 +sub_80AE010: @ 80AE010 + push {lr} + bl ScriptContext2_Disable + bl EnableBothScriptContexts + pop {r0} + bx r0 + thumb_func_end sub_80AE010 + + thumb_func_start sub_80AE020 +sub_80AE020: @ 80AE020 + push {r4,lr} + adds r4, r0, 0 + b _080AE028 +_080AE026: + adds r4, 0x1 +_080AE028: + ldrb r0, [r4] + cmp r0, 0xFF + beq _080AE04C + cmp r0, 0xFC + bne _080AE026 + ldrb r0, [r4, 0x1] + cmp r0, 0 + bne _080AE026 + adds r0, r4, 0 + movs r2, 0 + movs r3, 0x1 + bl ConvertIntToDecimalStringN + movs r1, 0xFF + strb r1, [r0] + adds r1, r4, 0x2 + bl StringAppend +_080AE04C: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80AE020 + + thumb_func_start sub_80AE054 +sub_80AE054: @ 80AE054 + push {lr} + ldr r0, _080AE06C @ =gUnknown_0203869A + ldrb r1, [r0] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + bne _080AE068 + ldr r1, _080AE070 @ =gUnknown_02038695 + movs r0, 0x3 + strb r0, [r1] +_080AE068: + pop {r0} + bx r0 + .align 2, 0 +_080AE06C: .4byte gUnknown_0203869A +_080AE070: .4byte gUnknown_02038695 + thumb_func_end sub_80AE054 + + thumb_func_start sub_80AE074 +sub_80AE074: @ 80AE074 + push {lr} + ldr r0, _080AE088 @ =gUnknown_02038695 + ldr r1, _080AE08C @ =gUnknown_0203869B + ldrb r0, [r0] + ldrb r1, [r1] + cmp r0, r1 + beq _080AE090 + movs r0, 0 + b _080AE092 + .align 2, 0 +_080AE088: .4byte gUnknown_02038695 +_080AE08C: .4byte gUnknown_0203869B +_080AE090: + movs r0, 0x1 +_080AE092: + pop {r1} + bx r1 + thumb_func_end sub_80AE074 + + thumb_func_start sub_80AE098 +sub_80AE098: @ 80AE098 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x14 + lsls r0, 24 + lsrs r7, r0, 24 + ldr r6, _080AE0F0 @ =gSaveBlock2 + mov r0, sp + adds r1, r6, 0 + bl StringCopy + mov r0, sp + bl StripExtCtrlCodes + ldr r0, _080AE0F4 @ =gUnknown_0203869A + ldrb r1, [r0] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080AE0CE + mov r0, sp + ldrb r2, [r0, 0x5] + mov r1, sp + movs r0, 0xFF + strb r0, [r1, 0x5] + mov r0, sp + strb r2, [r0, 0x7] +_080AE0CE: + ldr r5, _080AE0F8 @ =gUnknown_02038695 + ldrb r0, [r5] + lsls r0, 6 + ldr r4, _080AE0FC @ =gUnknown_0203857D + adds r0, r4 + mov r1, sp + movs r2, 0x8 + bl memcpy + ldrb r0, [r6, 0x8] + cmp r0, 0 + bne _080AE100 + ldrb r0, [r5] + lsls r0, 6 + adds r0, r4, r0 + movs r1, 0xD8 + b _080AE108 + .align 2, 0 +_080AE0F0: .4byte gSaveBlock2 +_080AE0F4: .4byte gUnknown_0203869A +_080AE0F8: .4byte gUnknown_02038695 +_080AE0FC: .4byte gUnknown_0203857D +_080AE100: + ldrb r0, [r5] + lsls r0, 6 + adds r0, r4, r0 + movs r1, 0xD9 +_080AE108: + strb r1, [r0, 0x8] + ldr r5, _080AE17C @ =gUnknown_02038570 + ldr r4, _080AE180 @ =gUnknown_02038695 + ldrb r0, [r4] + lsls r0, 6 + adds r1, r5, 0 + adds r1, 0x18 + adds r0, r1 + movs r1, 0 + str r1, [r0] + ldrb r0, [r4] + lsls r0, 6 + adds r0, r5 + adds r0, 0x2C + strb r1, [r0] + movs r0, 0x64 + adds r1, r7, 0 + muls r1, r0 + ldr r0, _080AE184 @ =gPlayerParty + adds r6, r1, r0 + adds r0, r6, 0 + movs r1, 0xB + bl GetMonData + ldrb r1, [r4] + lsls r1, 6 + adds r1, r5 + strh r0, [r1] + adds r0, r6, 0 + movs r1, 0x2 + mov r2, sp + bl GetMonData + mov r0, sp + bl StringGetEnd10 + ldr r0, _080AE188 @ =gUnknown_0203869A + ldrb r1, [r0] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080AE19A + mov r0, sp + bl StripExtCtrlCodes + adds r0, r6, 0 + movs r1, 0x3 + bl GetMonData + cmp r0, 0x1 + bne _080AE18C + mov r1, sp + movs r0, 0xFF + strb r0, [r1, 0x5] + movs r0, 0xFC + strb r0, [r1, 0xA] + b _080AE19A + .align 2, 0 +_080AE17C: .4byte gUnknown_02038570 +_080AE180: .4byte gUnknown_02038695 +_080AE184: .4byte gPlayerParty +_080AE188: .4byte gUnknown_0203869A +_080AE18C: + mov r0, sp + ldrb r2, [r0, 0x5] + mov r1, sp + movs r0, 0xFF + strb r0, [r1, 0x5] + mov r0, sp + strb r2, [r0, 0xA] +_080AE19A: + ldr r5, _080AE2C4 @ =gUnknown_02038695 + ldrb r0, [r5] + lsls r0, 6 + ldr r1, _080AE2C8 @ =gUnknown_02038572 + mov r8, r1 + add r0, r8 + mov r1, sp + movs r2, 0xB + bl memcpy + movs r0, 0x64 + adds r4, r7, 0 + muls r4, r0 + ldr r0, _080AE2CC @ =gPlayerParty + adds r4, r0 + adds r0, r4, 0 + movs r1, 0x16 + bl GetMonData + mov r6, r8 + subs r6, 0x2 + ldrb r1, [r5] + lsls r1, 6 + adds r1, r6 + adds r1, 0x26 + strb r0, [r1] + adds r0, r4, 0 + movs r1, 0x17 + bl GetMonData + ldrb r1, [r5] + lsls r1, 6 + adds r1, r6 + adds r1, 0x27 + strb r0, [r1] + adds r0, r4, 0 + movs r1, 0x18 + bl GetMonData + ldrb r1, [r5] + lsls r1, 6 + adds r1, r6 + adds r1, 0x28 + strb r0, [r1] + adds r0, r4, 0 + movs r1, 0x21 + bl GetMonData + ldrb r1, [r5] + lsls r1, 6 + adds r1, r6 + adds r1, 0x29 + strb r0, [r1] + adds r0, r4, 0 + movs r1, 0x2F + bl GetMonData + ldrb r1, [r5] + lsls r1, 6 + adds r1, r6 + adds r1, 0x2A + strb r0, [r1] + adds r0, r4, 0 + movs r1, 0x30 + bl GetMonData + ldrb r1, [r5] + lsls r1, 6 + adds r1, r6 + adds r1, 0x2B + strb r0, [r1] + adds r0, r4, 0 + movs r1, 0xD + bl GetMonData + ldrb r1, [r5] + lsls r1, 6 + adds r1, r6 + strh r0, [r1, 0x1E] + adds r0, r4, 0 + movs r1, 0xE + bl GetMonData + ldrb r1, [r5] + lsls r1, 6 + adds r1, r6 + strh r0, [r1, 0x20] + adds r0, r4, 0 + movs r1, 0xF + bl GetMonData + ldrb r1, [r5] + lsls r1, 6 + adds r1, r6 + strh r0, [r1, 0x22] + adds r0, r4, 0 + movs r1, 0x10 + bl GetMonData + ldrb r1, [r5] + lsls r1, 6 + adds r1, r6 + strh r0, [r1, 0x24] + adds r0, r4, 0 + movs r1, 0 + bl GetMonData + ldrb r1, [r5] + lsls r1, 6 + mov r2, r8 + adds r2, 0x36 + adds r1, r2 + str r0, [r1] + adds r0, r4, 0 + movs r1, 0x1 + bl GetMonData + ldrb r1, [r5] + lsls r1, 6 + movs r2, 0x3A + add r8, r2 + add r1, r8 + str r0, [r1] + adds r0, r4, 0 + movs r1, 0xC + bl GetMonData + lsls r0, 16 + lsrs r2, r0, 16 + mov r8, r2 + ldrb r0, [r5] + lsls r0, 6 + adds r1, r0, r6 + adds r0, r1, 0 + adds r0, 0x26 + ldrb r3, [r0] + adds r0, 0x1 + ldrb r4, [r0] + adds r0, 0x1 + ldrb r5, [r0] + adds r0, 0x1 + ldrb r6, [r0] + adds r0, 0x1 + ldrb r7, [r0] + cmp r2, 0xFE + bne _080AE2D0 + adds r3, 0x14 + b _080AE31E + .align 2, 0 +_080AE2C4: .4byte gUnknown_02038695 +_080AE2C8: .4byte gUnknown_02038572 +_080AE2CC: .4byte gPlayerParty +_080AE2D0: + cmp r2, 0xFF + bne _080AE2E0 + lsls r0, r4, 16 + movs r1, 0xA0 + lsls r1, 13 + adds r0, r1 + lsrs r4, r0, 16 + b _080AE31E +_080AE2E0: + movs r0, 0x80 + lsls r0, 1 + cmp r2, r0 + bne _080AE2F4 + lsls r0, r5, 16 + movs r2, 0xA0 + lsls r2, 13 + adds r0, r2 + lsrs r5, r0, 16 + b _080AE31E +_080AE2F4: + ldr r0, _080AE308 @ =0x00000101 + cmp r2, r0 + bne _080AE30C + lsls r0, r6, 16 + movs r1, 0xA0 + lsls r1, 13 + adds r0, r1 + lsrs r6, r0, 16 + b _080AE31E + .align 2, 0 +_080AE308: .4byte 0x00000101 +_080AE30C: + movs r0, 0x81 + lsls r0, 1 + cmp r8, r0 + bne _080AE31E + lsls r0, r7, 16 + movs r2, 0xA0 + lsls r2, 13 + adds r0, r2 + lsrs r7, r0, 16 +_080AE31E: + cmp r3, 0xFF + ble _080AE324 + movs r3, 0xFF +_080AE324: + lsls r0, r4, 16 + asrs r0, 16 + cmp r0, 0xFF + ble _080AE32E + movs r4, 0xFF +_080AE32E: + lsls r0, r5, 16 + asrs r0, 16 + cmp r0, 0xFF + ble _080AE338 + movs r5, 0xFF +_080AE338: + lsls r0, r6, 16 + asrs r0, 16 + cmp r0, 0xFF + ble _080AE342 + movs r6, 0xFF +_080AE342: + lsls r0, r7, 16 + asrs r0, 16 + cmp r0, 0xFF + ble _080AE34C + movs r7, 0xFF +_080AE34C: + ldr r2, _080AE390 @ =gUnknown_02038570 + ldr r1, _080AE394 @ =gUnknown_02038695 + ldrb r0, [r1] + lsls r0, 6 + adds r0, r2 + adds r0, 0x26 + strb r3, [r0] + ldrb r0, [r1] + lsls r0, 6 + adds r0, r2 + adds r0, 0x27 + strb r4, [r0] + ldrb r0, [r1] + lsls r0, 6 + adds r0, r2 + adds r0, 0x28 + strb r5, [r0] + ldrb r0, [r1] + lsls r0, 6 + adds r0, r2 + adds r0, 0x29 + strb r6, [r0] + ldrb r0, [r1] + lsls r0, 6 + adds r0, r2 + adds r0, 0x2A + strb r7, [r0] + add sp, 0x14 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080AE390: .4byte gUnknown_02038570 +_080AE394: .4byte gUnknown_02038695 + thumb_func_end sub_80AE098 + + thumb_func_start sub_80AE398 +sub_80AE398: @ 80AE398 + push {r4-r7,lr} + sub sp, 0x40 + lsls r0, 24 + lsrs r4, r0, 24 + lsls r1, 24 + lsrs r7, r1, 24 + movs r6, 0 + bl sub_80AE054 + movs r5, 0 + ldr r2, _080AE470 @ =gUnknown_083C9408 +_080AE3AE: + ldrb r1, [r2, 0x1C] + lsls r0, r1, 30 + lsrs r0, 30 + cmp r7, r0 + bne _080AE3FE + cmp r4, 0 + bne _080AE3C2 + lsls r0, r1, 29 + cmp r0, 0 + blt _080AE3F2 +_080AE3C2: + cmp r4, 0x1 + bne _080AE3CE + ldrb r0, [r2, 0x1C] + lsls r0, 28 + cmp r0, 0 + blt _080AE3F2 +_080AE3CE: + cmp r4, 0x2 + bne _080AE3DA + ldrb r0, [r2, 0x1C] + lsls r0, 27 + cmp r0, 0 + blt _080AE3F2 +_080AE3DA: + cmp r4, 0x3 + bne _080AE3E6 + ldrb r0, [r2, 0x1C] + lsls r0, 26 + cmp r0, 0 + blt _080AE3F2 +_080AE3E6: + cmp r4, 0x4 + bne _080AE3FE + ldrb r0, [r2, 0x1C] + lsls r0, 25 + cmp r0, 0 + bge _080AE3FE +_080AE3F2: + adds r0, r6, 0 + adds r1, r0, 0x1 + lsls r1, 24 + lsrs r6, r1, 24 + add r0, sp + strb r5, [r0] +_080AE3FE: + adds r2, 0x40 + adds r5, 0x1 + cmp r5, 0x3B + ble _080AE3AE + mov r0, sp + adds r1, r0, r6 + movs r0, 0xFF + strb r0, [r1] + movs r5, 0 + ldr r7, _080AE470 @ =gUnknown_083C9408 +_080AE412: + bl Random + lsls r0, 16 + lsrs r0, 16 + adds r1, r6, 0 + bl __modsi3 + lsls r0, 16 + lsrs r0, 16 + ldr r1, _080AE474 @ =gUnknown_02038570 + lsls r2, r5, 6 + adds r2, r1 + mov r1, sp + adds r4, r1, r0 + ldrb r1, [r4] + lsls r1, 6 + adds r1, r7 + adds r0, r2, 0 + movs r2, 0x40 + bl memcpy + ldrb r0, [r4] + adds r2, r5, 0x1 + subs r1, r6, 0x1 + cmp r0, 0xFF + beq _080AE454 + adds r3, r4, 0 +_080AE448: + ldrb r0, [r3, 0x1] + strb r0, [r3] + adds r3, 0x1 + ldrb r0, [r3] + cmp r0, 0xFF + bne _080AE448 +_080AE454: + lsls r0, r1, 24 + lsrs r6, r0, 24 + adds r5, r2, 0 + cmp r5, 0x2 + ble _080AE412 + ldr r0, _080AE478 @ =gUnknown_02038694 + ldrb r0, [r0] + bl sub_80AE098 + add sp, 0x40 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080AE470: .4byte gUnknown_083C9408 +_080AE474: .4byte gUnknown_02038570 +_080AE478: .4byte gUnknown_02038694 + thumb_func_end sub_80AE398 + + thumb_func_start sub_80AE47C +sub_80AE47C: @ 80AE47C + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x2D + bl GetMonData + cmp r0, 0 + beq _080AE48E + movs r0, 0x3 + b _080AE50A +_080AE48E: + adds r0, r4, 0 + movs r1, 0x39 + bl GetMonData + cmp r0, 0 + bne _080AE49E + movs r0, 0x4 + b _080AE50A +_080AE49E: + ldr r0, _080AE4B0 @ =gUnknown_0203869C + ldrh r0, [r0] + cmp r0, 0x4 + bhi _080AE4F2 + lsls r0, 2 + ldr r1, _080AE4B4 @ =_080AE4B8 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080AE4B0: .4byte gUnknown_0203869C +_080AE4B4: .4byte _080AE4B8 + .align 2, 0 +_080AE4B8: + .4byte _080AE4CC + .4byte _080AE4D2 + .4byte _080AE4D8 + .4byte _080AE4DE + .4byte _080AE4E4 +_080AE4CC: + adds r0, r4, 0 + movs r1, 0x32 + b _080AE4E8 +_080AE4D2: + adds r0, r4, 0 + movs r1, 0x33 + b _080AE4E8 +_080AE4D8: + adds r0, r4, 0 + movs r1, 0x34 + b _080AE4E8 +_080AE4DE: + adds r0, r4, 0 + movs r1, 0x35 + b _080AE4E8 +_080AE4E4: + adds r0, r4, 0 + movs r1, 0x36 +_080AE4E8: + bl GetMonData + lsls r0, 24 + lsrs r1, r0, 24 + b _080AE4F6 +_080AE4F2: + movs r0, 0 + b _080AE50A +_080AE4F6: + ldr r0, _080AE510 @ =gUnknown_0203869E + adds r2, r1, 0 + ldrh r1, [r0] + movs r0, 0x2 + cmp r2, r1 + bhi _080AE50A + movs r0, 0 + cmp r2, r1 + bcc _080AE50A + movs r0, 0x1 +_080AE50A: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_080AE510: .4byte gUnknown_0203869E + thumb_func_end sub_80AE47C + + thumb_func_start sub_80AE514 +sub_80AE514: @ 80AE514 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0x8 + movs r5, 0 + ldr r7, _080AE588 @ =gUnknown_083CA308 + adds r0, r7, 0x1 + mov r9, r0 + ldr r6, _080AE58C @ =gUnknown_083CA310 + adds r3, r6, 0x1 + mov r8, r3 +_080AE52C: + ldr r4, _080AE590 @ =gUnknown_02038696 + adds r4, r5, r4 + ldrb r0, [r4] + lsls r0, 1 + adds r1, r0, r7 + ldrb r2, [r1] + mov r3, r9 + adds r1, r0, r3 + ldrb r3, [r1] + adds r0, r6 + ldrb r0, [r0] + adds r0, 0x5 + lsls r0, 24 + lsrs r0, 24 + str r0, [sp] + ldrb r0, [r4] + lsls r0, 1 + add r0, r8 + ldrb r0, [r0] + adds r0, 0x1 + lsls r0, 24 + lsrs r0, 24 + str r0, [sp, 0x4] + ldr r0, _080AE594 @ =gUnknown_03004210 + movs r1, 0 + bl FillWindowRect_DefaultPalette + adds r0, r5, 0 + bl sub_80AE5BC + adds r0, r5, 0 + bl sub_80AE6CC + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0x3 + bls _080AE52C + add sp, 0x8 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080AE588: .4byte gUnknown_083CA308 +_080AE58C: .4byte gUnknown_083CA310 +_080AE590: .4byte gUnknown_02038696 +_080AE594: .4byte gUnknown_03004210 + thumb_func_end sub_80AE514 + + thumb_func_start sub_80AE598 +sub_80AE598: @ 80AE598 + push {r4,r5,lr} + adds r5, r1, 0 + lsls r4, r2, 24 + lsrs r4, 24 + ldr r1, _080AE5B8 @ =gUnknown_083CC59C + bl StringCopy + strb r4, [r0] + adds r0, 0x1 + adds r1, r5, 0 + bl StringCopy + pop {r4,r5} + pop {r1} + bx r1 + .align 2, 0 +_080AE5B8: .4byte gUnknown_083CC59C + thumb_func_end sub_80AE598 + + thumb_func_start sub_80AE5BC +sub_80AE5BC: @ 80AE5BC + push {lr} + adds r1, r0, 0 + lsls r1, 24 + lsrs r0, r1, 24 + movs r2, 0xA0 + lsls r2, 20 + adds r1, r2 + lsrs r1, 24 + bl sub_80AE5D4 + pop {r0} + bx r0 + thumb_func_end sub_80AE5BC + + thumb_func_start sub_80AE5D4 +sub_80AE5D4: @ 80AE5D4 + push {r4-r7,lr} + sub sp, 0x8 + adds r2, r1, 0 + lsls r0, 24 + lsrs r4, r0, 24 + lsls r2, 24 + lsrs r2, 24 + ldr r3, _080AE660 @ =gUnknown_020238CC + ldr r1, _080AE664 @ =gEmptyString_81E72B0 + adds r0, r3, 0 + bl sub_80AE598 + adds r3, r0, 0 + movs r0, 0xFC + strb r0, [r3] + movs r0, 0x6 + strb r0, [r3, 0x1] + movs r0, 0x4 + strb r0, [r3, 0x2] + adds r3, 0x3 + movs r0, 0xBA + strb r0, [r3] + adds r3, 0x1 + ldr r0, _080AE668 @ =gUnknown_0203869A + ldrb r1, [r0] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080AE67C + ldr r1, _080AE66C @ =gLinkPlayers + lsls r0, r4, 3 + subs r0, r4 + lsls r2, r0, 2 + adds r0, r2, r1 + ldrh r6, [r0, 0x1A] + cmp r6, 0x1 + bne _080AE67C + adds r1, 0x8 + adds r1, r2, r1 + adds r0, r3, 0 + bl StringCopy + ldr r0, _080AE670 @ =gUnknown_03004210 + ldr r1, _080AE660 @ =gUnknown_020238CC + ldr r2, _080AE674 @ =gUnknown_02038696 + adds r2, r4, r2 + ldrb r4, [r2] + movs r2, 0x16 + muls r2, r4 + movs r3, 0x94 + lsls r3, 2 + adds r2, r3 + ldr r5, _080AE678 @ =gUnknown_083CA310 + lsls r4, 1 + adds r3, r4, r5 + ldrb r3, [r3] + lsls r3, 27 + movs r7, 0xFB + lsls r7, 24 + adds r3, r7 + lsrs r3, 24 + adds r5, 0x1 + adds r4, r5 + ldrb r4, [r4] + lsls r4, 3 + str r4, [sp] + str r6, [sp, 0x4] + bl sub_8004D04 + b _080AE6B0 + .align 2, 0 +_080AE660: .4byte gUnknown_020238CC +_080AE664: .4byte gEmptyString_81E72B0 +_080AE668: .4byte gUnknown_0203869A +_080AE66C: .4byte gLinkPlayers +_080AE670: .4byte gUnknown_03004210 +_080AE674: .4byte gUnknown_02038696 +_080AE678: .4byte gUnknown_083CA310 +_080AE67C: + lsls r1, r4, 6 + ldr r0, _080AE6B8 @ =gUnknown_0203857D + adds r1, r0 + adds r0, r3, 0 + bl StringCopy + ldr r0, _080AE6BC @ =gUnknown_03004210 + ldr r1, _080AE6C0 @ =gUnknown_020238CC + ldr r2, _080AE6C4 @ =gUnknown_02038696 + adds r2, r4, r2 + ldrb r4, [r2] + movs r2, 0x16 + muls r2, r4 + movs r3, 0x94 + lsls r3, 2 + adds r2, r3 + ldr r5, _080AE6C8 @ =gUnknown_083CA310 + lsls r4, 1 + adds r3, r4, r5 + ldrb r3, [r3] + adds r5, 0x1 + adds r4, r5 + ldrb r4, [r4] + str r4, [sp] + bl sub_8003460 +_080AE6B0: + add sp, 0x8 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080AE6B8: .4byte gUnknown_0203857D +_080AE6BC: .4byte gUnknown_03004210 +_080AE6C0: .4byte gUnknown_020238CC +_080AE6C4: .4byte gUnknown_02038696 +_080AE6C8: .4byte gUnknown_083CA310 + thumb_func_end sub_80AE5D4 + + thumb_func_start sub_80AE6CC +sub_80AE6CC: @ 80AE6CC + push {lr} + adds r1, r0, 0 + lsls r1, 24 + lsrs r0, r1, 24 + movs r2, 0xA0 + lsls r2, 20 + adds r1, r2 + lsrs r1, 24 + bl sub_80AE6E4 + pop {r0} + bx r0 + thumb_func_end sub_80AE6CC + + thumb_func_start sub_80AE6E4 +sub_80AE6E4: @ 80AE6E4 + push {r4-r6,lr} + sub sp, 0x8 + adds r4, r0, 0 + adds r2, r1, 0 + lsls r4, 24 + lsrs r4, 24 + lsls r2, 24 + lsrs r2, 24 + ldr r3, _080AE75C @ =gUnknown_020238CC + movs r0, 0xFC + strb r0, [r3] + movs r0, 0x6 + strb r0, [r3, 0x1] + movs r0, 0x4 + strb r0, [r3, 0x2] + adds r3, 0x3 + lsls r1, r4, 6 + ldr r0, _080AE760 @ =gUnknown_02038572 + adds r1, r0 + adds r0, r3, 0 + bl sub_80AE598 + adds r3, r0, 0 + movs r0, 0xFF + strb r0, [r3] + ldr r0, _080AE764 @ =gUnknown_03004210 + ldr r1, _080AE75C @ =gUnknown_020238CC + ldr r2, _080AE768 @ =gUnknown_02038696 + adds r4, r2 + ldrb r4, [r4] + lsls r2, r4, 2 + adds r2, r4 + lsls r2, 18 + movs r3, 0x80 + lsls r3, 18 + adds r2, r3 + lsrs r2, 16 + ldr r5, _080AE76C @ =gUnknown_083CA308 + lsls r4, 1 + adds r3, r4, r5 + ldrb r3, [r3] + lsls r3, 27 + movs r6, 0xFD + lsls r6, 24 + adds r3, r6 + lsrs r3, 24 + adds r5, 0x1 + adds r4, r5 + ldrb r4, [r4] + lsls r4, 3 + str r4, [sp] + movs r4, 0x1 + str r4, [sp, 0x4] + bl sub_8004D04 + add sp, 0x8 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080AE75C: .4byte gUnknown_020238CC +_080AE760: .4byte gUnknown_02038572 +_080AE764: .4byte gUnknown_03004210 +_080AE768: .4byte gUnknown_02038696 +_080AE76C: .4byte gUnknown_083CA308 + thumb_func_end sub_80AE6E4 + + thumb_func_start sub_80AE770 +sub_80AE770: @ 80AE770 + push {r4,r5,lr} + lsls r0, 24 + lsrs r2, r0, 24 + lsls r1, 24 + lsrs r0, r1, 24 + cmp r0, 0x4 + bhi _080AE7FC + lsls r0, 2 + ldr r1, _080AE788 @ =_080AE78C + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080AE788: .4byte _080AE78C + .align 2, 0 +_080AE78C: + .4byte _080AE7A0 + .4byte _080AE7B8 + .4byte _080AE7D0 + .4byte _080AE7E0 + .4byte _080AE7FC +_080AE7A0: + ldr r0, _080AE7B4 @ =gUnknown_02038570 + lsls r2, 6 + adds r1, r2, r0 + adds r3, r1, 0 + adds r3, 0x26 + ldrb r5, [r3] + adds r3, 0x4 + ldrb r4, [r3] + adds r1, 0x27 + b _080AE80E + .align 2, 0 +_080AE7B4: .4byte gUnknown_02038570 +_080AE7B8: + ldr r0, _080AE7CC @ =gUnknown_02038570 + lsls r2, 6 + adds r1, r2, r0 + adds r3, r1, 0 + adds r3, 0x27 + ldrb r5, [r3] + subs r3, 0x1 + ldrb r4, [r3] + adds r1, 0x28 + b _080AE80E + .align 2, 0 +_080AE7CC: .4byte gUnknown_02038570 +_080AE7D0: + ldr r1, _080AE7DC @ =gUnknown_02038570 + lsls r2, 6 + adds r3, r2, r1 + adds r0, r3, 0 + adds r0, 0x28 + b _080AE7EA + .align 2, 0 +_080AE7DC: .4byte gUnknown_02038570 +_080AE7E0: + ldr r1, _080AE7F8 @ =gUnknown_02038570 + lsls r2, 6 + adds r3, r2, r1 + adds r0, r3, 0 + adds r0, 0x29 +_080AE7EA: + ldrb r5, [r0] + subs r0, 0x1 + ldrb r4, [r0] + adds r0, 0x2 + ldrb r3, [r0] + adds r0, r1, 0 + b _080AE810 + .align 2, 0 +_080AE7F8: .4byte gUnknown_02038570 +_080AE7FC: + ldr r0, _080AE828 @ =gUnknown_02038570 + lsls r2, 6 + adds r1, r2, r0 + adds r3, r1, 0 + adds r3, 0x2A + ldrb r5, [r3] + subs r3, 0x1 + ldrb r4, [r3] + adds r1, 0x26 +_080AE80E: + ldrb r3, [r1] +_080AE810: + adds r1, r2, r0 + adds r1, 0x2B + adds r0, r4, r3 + ldrb r1, [r1] + adds r0, r1 + asrs r0, 1 + adds r0, r5, r0 + lsls r0, 16 + lsrs r0, 16 + pop {r4,r5} + pop {r1} + bx r1 + .align 2, 0 +_080AE828: .4byte gUnknown_02038570 + thumb_func_end sub_80AE770 + + thumb_func_start sub_80AE82C +sub_80AE82C: @ 80AE82C + push {r4-r6,lr} + lsls r0, 24 + lsrs r5, r0, 24 + movs r4, 0 + ldr r6, _080AE854 @ =gUnknown_02038670 +_080AE836: + adds r0, r4, 0 + adds r1, r5, 0 + bl sub_80AE770 + lsls r1, r4, 1 + adds r1, r6 + strh r0, [r1] + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x3 + bls _080AE836 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080AE854: .4byte gUnknown_02038670 + thumb_func_end sub_80AE82C + + thumb_func_start sub_80AE858 +sub_80AE858: @ 80AE858 + push {r4,r5,lr} + ldr r0, _080AE8A0 @ =gUnknown_083CA4BC + bl LoadCompressedObjectPic + ldr r0, _080AE8A4 @ =gContest2Pal + movs r1, 0x88 + lsls r1, 1 + movs r2, 0x20 + bl LoadCompressedPalette + ldr r0, _080AE8A8 @ =gSpriteTemplate_83CA4A4 + movs r1, 0x70 + movs r2, 0x24 + movs r3, 0x1E + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + ldr r4, _080AE8AC @ =gSprites + lsls r2, r0, 4 + adds r2, r0 + lsls r2, 2 + adds r5, r2, r4 + ldrb r3, [r5, 0x5] + movs r1, 0xF + ands r1, r3 + movs r3, 0x10 + orrs r1, r3 + strb r1, [r5, 0x5] + adds r4, 0x1C + adds r2, r4 + ldr r1, _080AE8B0 @ =SpriteCallbackDummy + str r1, [r2] + pop {r4,r5} + pop {r1} + bx r1 + .align 2, 0 +_080AE8A0: .4byte gUnknown_083CA4BC +_080AE8A4: .4byte gContest2Pal +_080AE8A8: .4byte gSpriteTemplate_83CA4A4 +_080AE8AC: .4byte gSprites +_080AE8B0: .4byte SpriteCallbackDummy + thumb_func_end sub_80AE858 + + thumb_func_start sub_80AE8B4 +sub_80AE8B4: @ 80AE8B4 + push {lr} + ldr r0, _080AE8F8 @ =gUnknown_083CA4C4 + bl LoadCompressedObjectPic + ldr r0, _080AE8FC @ =gUnknown_083CA4CC + bl LoadCompressedObjectPalette + ldr r0, _080AE900 @ =gUnknown_083CA4D4 + movs r1, 0x60 + movs r2, 0xA + movs r3, 0x1D + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + ldr r1, _080AE904 @ =gSprites + lsls r2, r0, 4 + adds r2, r0 + lsls r2, 2 + adds r2, r1 + movs r1, 0x3E + adds r1, r2 + mov r12, r1 + ldrb r1, [r1] + movs r3, 0x4 + orrs r1, r3 + mov r3, r12 + strb r1, [r3] + ldrh r1, [r2, 0x4] + lsls r1, 22 + lsrs r1, 22 + strh r1, [r2, 0x2E] + pop {r1} + bx r1 + .align 2, 0 +_080AE8F8: .4byte gUnknown_083CA4C4 +_080AE8FC: .4byte gUnknown_083CA4CC +_080AE900: .4byte gUnknown_083CA4D4 +_080AE904: .4byte gSprites + thumb_func_end sub_80AE8B4 + + thumb_func_start unref_sub_80AE908 +unref_sub_80AE908: @ 80AE908 + push {r4-r6,lr} + mov r6, r10 + mov r5, r9 + mov r4, r8 + push {r4-r6} + sub sp, 0x8 + ldr r0, _080AE9D4 @ =gUnknown_02038570 + mov r9, r0 + ldr r1, _080AE9D8 @ =gUnknown_02038695 + mov r8, r1 + ldrb r0, [r1] + lsls r0, 6 + add r0, r9 + ldrh r5, [r0] + lsls r6, r5, 3 + ldr r0, _080AE9DC @ =gMonFrontPicTable + adds r0, r6, r0 + ldr r2, _080AE9E0 @ =gMonFrontPicCoords + mov r10, r2 + lsls r2, r5, 2 + add r2, r10 + ldrb r1, [r2] + ldrb r2, [r2, 0x1] + movs r3, 0x80 + lsls r3, 18 + ldr r4, _080AE9E4 @ =gUnknown_081FAF4C + ldr r4, [r4, 0x4] + str r4, [sp] + str r5, [sp, 0x4] + bl DecompressPicFromTable_2 + ldr r0, _080AE9E8 @ =gMonPaletteTable + adds r6, r0 + ldr r0, [r6] + movs r1, 0x88 + lsls r1, 1 + movs r2, 0x20 + bl LoadCompressedPalette + mov r1, r8 + ldrb r0, [r1] + lsls r0, 6 + add r0, r9 + ldrh r0, [r0] + movs r1, 0x1 + bl GetMonSpriteTemplate_803C56C + ldr r0, _080AE9EC @ =gUnknown_02024E8C + mov r2, r8 + ldrb r1, [r2] + lsls r1, 6 + add r1, r9 + ldrh r1, [r1] + lsls r1, 2 + add r1, r10 + ldrb r1, [r1] + movs r2, 0x8 + subs r2, r1 + lsls r2, 18 + movs r1, 0xA0 + lsls r1, 15 + adds r2, r1 + asrs r2, 16 + movs r1, 0x70 + movs r3, 0x1E + bl CreateSprite + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldr r5, _080AE9F0 @ =gSprites + lsls r3, r4, 4 + adds r3, r4 + lsls r3, 2 + adds r0, r3, r5 + ldrb r2, [r0, 0x5] + movs r1, 0xF + ands r1, r2 + movs r2, 0x10 + orrs r1, r2 + strb r1, [r0, 0x5] + adds r1, r5, 0 + adds r1, 0x1C + adds r1, r3, r1 + ldr r2, _080AE9F4 @ =SpriteCallbackDummy + str r2, [r1] + adds r5, 0x10 + adds r3, r5 + ldr r1, _080AE9F8 @ =gSpriteAffineAnimTable_81E7C18 + str r1, [r3] + movs r1, 0 + bl StartSpriteAffineAnim + adds r0, r4, 0 + add sp, 0x8 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r6} + pop {r1} + bx r1 + .align 2, 0 +_080AE9D4: .4byte gUnknown_02038570 +_080AE9D8: .4byte gUnknown_02038695 +_080AE9DC: .4byte gMonFrontPicTable +_080AE9E0: .4byte gMonFrontPicCoords +_080AE9E4: .4byte gUnknown_081FAF4C +_080AE9E8: .4byte gMonPaletteTable +_080AE9EC: .4byte gUnknown_02024E8C +_080AE9F0: .4byte gSprites +_080AE9F4: .4byte SpriteCallbackDummy +_080AE9F8: .4byte gSpriteAffineAnimTable_81E7C18 + thumb_func_end unref_sub_80AE908 + + thumb_func_start sub_80AE9FC +sub_80AE9FC: @ 80AE9FC + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0xC + mov r8, r1 + adds r6, r2, 0 + lsls r0, 16 + lsrs r0, 16 + bl sub_80B2778 + mov r9, r0 + mov r5, r9 + lsls r0, r5, 3 + ldr r1, _080AEACC @ =gMonBackPicTable + adds r0, r1 + ldr r1, _080AEAD0 @ =gMonBackPicCoords + lsls r2, r5, 2 + adds r2, r1 + ldrb r1, [r2] + ldrb r2, [r2, 0x1] + movs r3, 0x80 + lsls r3, 18 + ldr r4, _080AEAD4 @ =gUnknown_081FAF4C + ldr r4, [r4] + str r4, [sp] + str r5, [sp, 0x4] + str r6, [sp, 0x8] + bl sub_800D334 + adds r0, r5, 0 + mov r1, r8 + adds r2, r6, 0 + bl species_and_otid_get_pal + movs r1, 0x90 + lsls r1, 1 + movs r2, 0x20 + bl LoadCompressedPalette + adds r0, r5, 0 + movs r1, 0 + bl GetMonSpriteTemplate_803C56C + ldr r4, _080AEAD8 @ =gUnknown_02024E8C + movs r0, 0x2 + adds r1, r5, 0 + movs r2, 0 + bl sub_8077E44 + adds r2, r0, 0 + lsls r2, 24 + lsrs r2, 24 + adds r0, r4, 0 + movs r1, 0x70 + movs r3, 0x1E + bl CreateSprite + lsls r0, 24 + lsrs r7, r0, 24 + ldr r0, _080AEADC @ =gSprites + mov r8, r0 + lsls r0, r7, 4 + adds r0, r7 + lsls r6, r0, 2 + mov r0, r8 + adds r4, r6, r0 + ldrb r1, [r4, 0x5] + movs r0, 0xF + ands r0, r1 + movs r1, 0x20 + orrs r0, r1 + movs r1, 0xD + negs r1, r1 + ands r0, r1 + movs r1, 0x8 + orrs r0, r1 + strb r0, [r4, 0x5] + movs r0, 0x2 + bl sub_8079E90 + adds r1, r4, 0 + adds r1, 0x43 + strb r0, [r1] + mov r0, r8 + adds r0, 0x1C + adds r0, r6, r0 + ldr r1, _080AEAE0 @ =SpriteCallbackDummy + str r1, [r0] + ldrb r0, [r4, 0x5] + lsrs r0, 4 + strh r0, [r4, 0x2E] + strh r5, [r4, 0x32] + adds r0, r5, 0 + bl sub_80AEB1C + lsls r0, 24 + cmp r0, 0 + beq _080AEAE8 + mov r0, r8 + adds r0, 0x10 + adds r0, r6, r0 + ldr r1, _080AEAE4 @ =gSpriteAffineAnimTable_81E7C18 + b _080AEAF0 + .align 2, 0 +_080AEACC: .4byte gMonBackPicTable +_080AEAD0: .4byte gMonBackPicCoords +_080AEAD4: .4byte gUnknown_081FAF4C +_080AEAD8: .4byte gUnknown_02024E8C +_080AEADC: .4byte gSprites +_080AEAE0: .4byte SpriteCallbackDummy +_080AEAE4: .4byte gSpriteAffineAnimTable_81E7C18 +_080AEAE8: + mov r0, r8 + adds r0, 0x10 + adds r0, r6, r0 + ldr r1, _080AEB14 @ =gSpriteAffineAnimTable_81E7BEC +_080AEAF0: + str r1, [r0] + lsls r0, r7, 4 + adds r0, r7 + lsls r0, 2 + ldr r1, _080AEB18 @ =gSprites + adds r0, r1 + movs r1, 0 + bl StartSpriteAffineAnim + adds r0, r7, 0 + add sp, 0xC + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_080AEB14: .4byte gSpriteAffineAnimTable_81E7BEC +_080AEB18: .4byte gSprites + thumb_func_end sub_80AE9FC + + thumb_func_start sub_80AEB1C +sub_80AEB1C: @ 80AEB1C + push {lr} + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0xC9 + beq _080AEB2A + movs r0, 0x1 + b _080AEB2C +_080AEB2A: + movs r0, 0 +_080AEB2C: + pop {r1} + bx r1 + thumb_func_end sub_80AEB1C + + thumb_func_start sub_80AEB30 +sub_80AEB30: @ 80AEB30 + push {lr} + ldr r0, _080AEB44 @ =0x0600c000 + bl sub_80AEB4C + ldr r0, _080AEB48 @ =0x0600e000 + bl sub_80AEB4C + pop {r0} + bx r0 + .align 2, 0 +_080AEB44: .4byte 0x0600c000 +_080AEB48: .4byte 0x0600e000 + thumb_func_end sub_80AEB30 + + thumb_func_start sub_80AEB4C +sub_80AEB4C: @ 80AEB4C + movs r1, 0xA0 + lsls r1, 3 + adds r2, r0, r1 + ldr r1, _080AEB60 @ =0x040000d4 + str r0, [r1] + str r2, [r1, 0x4] + ldr r0, _080AEB64 @ =0x80000140 + str r0, [r1, 0x8] + ldr r0, [r1, 0x8] + bx lr + .align 2, 0 +_080AEB60: .4byte 0x040000d4 +_080AEB64: .4byte 0x80000140 + thumb_func_end sub_80AEB4C + + thumb_func_start sub_80AEB68 +sub_80AEB68: @ 80AEB68 + push {lr} + lsls r0, 16 + lsls r1, 24 + lsrs r3, r1, 24 + ldr r2, _080AEB90 @ =gContestEffects + ldr r1, _080AEB94 @ =gContestMoves + lsrs r0, 13 + adds r0, r1 + ldrb r0, [r0] + lsls r0, 2 + adds r0, r2 + ldrb r0, [r0] + cmp r0, 0x8 + bhi _080AEBD0 + lsls r0, 2 + ldr r1, _080AEB98 @ =_080AEB9C + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080AEB90: .4byte gContestEffects +_080AEB94: .4byte gContestMoves +_080AEB98: .4byte _080AEB9C + .align 2, 0 +_080AEB9C: + .4byte _080AEBC0 + .4byte _080AEBC0 + .4byte _080AEBC8 + .4byte _080AEBC8 + .4byte _080AEBD0 + .4byte _080AEBD0 + .4byte _080AEBD0 + .4byte _080AEBD0 + .4byte _080AEBC0 +_080AEBC0: + ldr r0, _080AEBC4 @ =0x00009082 + b _080AEBD2 + .align 2, 0 +_080AEBC4: .4byte 0x00009082 +_080AEBC8: + ldr r0, _080AEBCC @ =0x00009088 + b _080AEBD2 + .align 2, 0 +_080AEBCC: .4byte 0x00009088 +_080AEBD0: + ldr r0, _080AEBE8 @ =0x00009086 +_080AEBD2: + lsls r1, r3, 12 + movs r2, 0x90 + lsls r2, 8 + adds r1, r2 + lsls r0, 16 + asrs r0, 16 + adds r0, r1 + lsls r0, 16 + lsrs r0, 16 + pop {r1} + bx r1 + .align 2, 0 +_080AEBE8: .4byte 0x00009086 + thumb_func_end sub_80AEB68 + + thumb_func_start sub_80AEBEC +sub_80AEBEC: @ 80AEBEC + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0x8 + lsls r0, 16 + lsrs r4, r0, 16 + ldr r0, _080AEC74 @ =gUnknown_03004210 + movs r1, 0x10 + str r1, [sp] + movs r1, 0x22 + str r1, [sp, 0x4] + movs r1, 0 + movs r2, 0xB + movs r3, 0x1F + bl FillWindowRect_DefaultPalette + ldr r1, _080AEC78 @ =gContestMoves + lsls r0, r4, 3 + adds r0, r1 + ldrb r0, [r0, 0x1] + lsls r0, 29 + lsrs r0, 29 + ldr r1, _080AEC7C @ =0x00004040 + cmp r0, 0 + beq _080AEC34 + adds r1, 0x5 + cmp r0, 0x1 + beq _080AEC34 + adds r1, 0x5 + cmp r0, 0x2 + beq _080AEC34 + adds r1, 0x40 + cmp r0, 0x3 + bne _080AEC34 + subs r1, 0x20 +_080AEC34: + ldr r0, _080AEC74 @ =gUnknown_03004210 + mov r8, r0 + ldr r6, _080AEC78 @ =gContestMoves + lsls r5, r4, 3 + ldr r7, _080AEC80 @ =gContestEffects + ldr r0, _080AEC84 @ =gUnknown_083CADD4 + mov r9, r0 + ldr r4, _080AEC88 @ =0x0600c816 + ldr r3, _080AEC8C @ =0x0600c7d6 + movs r2, 0x4 +_080AEC48: + strh r1, [r3] + adds r0, r1, 0 + adds r0, 0x10 + strh r0, [r4] + adds r0, r1, 0x1 + lsls r0, 16 + lsrs r1, r0, 16 + adds r4, 0x2 + adds r3, 0x2 + subs r2, 0x1 + cmp r2, 0 + bge _080AEC48 + adds r0, r5, r6 + ldrb r0, [r0] + lsls r0, 2 + adds r1, r0, r7 + ldrb r0, [r1, 0x1] + cmp r0, 0xFF + bne _080AEC90 + movs r0, 0 + b _080AEC9C + .align 2, 0 +_080AEC74: .4byte gUnknown_03004210 +_080AEC78: .4byte gContestMoves +_080AEC7C: .4byte 0x00004040 +_080AEC80: .4byte gContestEffects +_080AEC84: .4byte gUnknown_083CADD4 +_080AEC88: .4byte 0x0600c816 +_080AEC8C: .4byte 0x0600c7d6 +_080AEC90: + ldrb r0, [r1, 0x1] + movs r1, 0xA + bl __udivsi3 + lsls r0, 24 + lsrs r0, 24 +_080AEC9C: + cmp r0, 0x8 + bls _080AECA2 + movs r0, 0x8 +_080AECA2: + movs r2, 0 + ldr r1, _080AECB8 @ =0x00005012 + adds r4, r1, 0 + adds r1, 0x23 + adds r3, r1, 0 + ldr r1, _080AECBC @ =0x0600c7ea +_080AECAE: + cmp r2, r0 + bge _080AECC0 + strh r4, [r1] + b _080AECC2 + .align 2, 0 +_080AECB8: .4byte 0x00005012 +_080AECBC: .4byte 0x0600c7ea +_080AECC0: + strh r3, [r1] +_080AECC2: + adds r1, 0x2 + adds r2, 0x1 + cmp r2, 0x7 + ble _080AECAE + adds r0, r5, r6 + ldrb r0, [r0] + lsls r0, 2 + adds r1, r0, r7 + ldrb r0, [r1, 0x2] + cmp r0, 0xFF + bne _080AECDC + movs r0, 0 + b _080AECE8 +_080AECDC: + ldrb r0, [r1, 0x2] + movs r1, 0xA + bl __udivsi3 + lsls r0, 24 + lsrs r0, 24 +_080AECE8: + cmp r0, 0x8 + bls _080AECEE + movs r0, 0x8 +_080AECEE: + movs r2, 0 + ldr r1, _080AED04 @ =0x00005014 + adds r4, r1, 0 + adds r1, 0x22 + adds r3, r1, 0 + ldr r1, _080AED08 @ =0x0600c82a +_080AECFA: + cmp r2, r0 + bge _080AED0C + strh r4, [r1] + b _080AED0E + .align 2, 0 +_080AED04: .4byte 0x00005014 +_080AED08: .4byte 0x0600c82a +_080AED0C: + strh r3, [r1] +_080AED0E: + adds r1, 0x2 + adds r2, 0x1 + cmp r2, 0x7 + ble _080AECFA + adds r0, r5, r6 + ldrb r0, [r0] + lsls r0, 2 + add r0, r9 + ldr r1, [r0] + movs r2, 0xD9 + lsls r2, 2 + movs r0, 0x23 + str r0, [sp] + mov r0, r8 + movs r3, 0xB + bl sub_8003460 + ldr r1, _080AED50 @ =gUnknown_083CC5A2 + ldr r2, _080AED54 @ =0x00000362 + movs r0, 0x1F + str r0, [sp] + mov r0, r8 + movs r3, 0x10 + bl sub_8003460 + add sp, 0x8 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080AED50: .4byte gUnknown_083CC5A2 +_080AED54: .4byte 0x00000362 + thumb_func_end sub_80AEBEC + + thumb_func_start sub_80AED58 +sub_80AED58: @ 80AED58 + push {lr} + sub sp, 0x8 + ldr r0, _080AED78 @ =gUnknown_03004210 + movs r1, 0x1C + str r1, [sp] + movs r1, 0x28 + str r1, [sp, 0x4] + movs r1, 0 + movs r2, 0xB + movs r3, 0x23 + bl FillWindowRect_DefaultPalette + add sp, 0x8 + pop {r0} + bx r0 + .align 2, 0 +_080AED78: .4byte gUnknown_03004210 + thumb_func_end sub_80AED58 + + thumb_func_start sub_80AED7C +sub_80AED7C: @ 80AED7C + push {r4-r6,lr} + lsls r0, 16 + lsrs r6, r0, 16 + lsls r1, 24 + lsrs r4, r1, 24 + ldr r0, _080AEDD8 @ =gUnknown_02038696 + adds r0, r4, r0 + ldrb r1, [r0] + lsls r0, r1, 2 + adds r0, r1 + adds r0, 0x2 + lsls r0, 24 + lsrs r5, r0, 24 + adds r0, r4, 0 + bl sub_80AF59C + lsls r0, 24 + cmp r0, 0 + bne _080AEDEC + cmp r6, 0 + beq _080AEDEC + adds r0, r6, 0 + adds r1, r4, 0 + bl sub_80AEB68 + lsls r0, 16 + lsrs r0, 16 + lsls r3, r5, 6 + ldr r1, _080AEDDC @ =0x0600c028 + adds r1, r3, r1 + strh r0, [r1] + ldr r1, _080AEDE0 @ =0x0600c02a + adds r1, r3, r1 + adds r2, r0, 0x1 + strh r2, [r1] + ldr r1, _080AEDE4 @ =0x0600c068 + adds r2, r3, r1 + adds r1, r0, 0 + adds r1, 0x10 + strh r1, [r2] + ldr r1, _080AEDE8 @ =0x0600c06a + adds r3, r1 + adds r0, 0x11 + strh r0, [r3] + b _080AEE08 + .align 2, 0 +_080AEDD8: .4byte gUnknown_02038696 +_080AEDDC: .4byte 0x0600c028 +_080AEDE0: .4byte 0x0600c02a +_080AEDE4: .4byte 0x0600c068 +_080AEDE8: .4byte 0x0600c06a +_080AEDEC: + lsls r1, r5, 6 + ldr r0, _080AEE10 @ =0x0600c028 + adds r0, r1, r0 + movs r2, 0 + strh r2, [r0] + ldr r0, _080AEE14 @ =0x0600c02a + adds r0, r1, r0 + strh r2, [r0] + ldr r3, _080AEE18 @ =0x0600c068 + adds r0, r1, r3 + strh r2, [r0] + ldr r0, _080AEE1C @ =0x0600c06a + adds r1, r0 + strh r2, [r1] +_080AEE08: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080AEE10: .4byte 0x0600c028 +_080AEE14: .4byte 0x0600c02a +_080AEE18: .4byte 0x0600c068 +_080AEE1C: .4byte 0x0600c06a + thumb_func_end sub_80AED7C + + thumb_func_start unref_sub_80AEE20 +unref_sub_80AEE20: @ 80AEE20 + push {r4,lr} + movs r4, 0 +_080AEE24: + lsls r0, r4, 3 + subs r0, r4 + lsls r0, 2 + ldr r1, _080AEE48 @ =0x02019260 + adds r0, r1 + ldrh r0, [r0, 0x6] + adds r1, r4, 0 + bl sub_80AED7C + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x3 + bls _080AEE24 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080AEE48: .4byte 0x02019260 + thumb_func_end unref_sub_80AEE20 + + thumb_func_start sub_80AEE4C +sub_80AEE4C: @ 80AEE4C + ldr r0, _080AEE50 @ =0x00002034 + bx lr + .align 2, 0 +_080AEE50: .4byte 0x00002034 + thumb_func_end sub_80AEE4C + + thumb_func_start sub_80AEE54 +sub_80AEE54: @ 80AEE54 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x4 + lsls r0, 24 + lsrs r7, r0, 24 + lsls r1, 24 + lsrs r1, 24 + str r1, [sp] + lsls r5, r7, 3 + subs r0, r5, r7 + lsls r0, 2 + ldr r1, _080AEE84 @ =0x02019260 + adds r0, r1 + ldrb r0, [r0, 0x10] + movs r2, 0x30 + ands r2, r0 + mov r10, r1 + cmp r2, 0 + bne _080AEE88 + movs r0, 0 + b _080AEF3C + .align 2, 0 +_080AEE84: .4byte 0x02019260 +_080AEE88: + ldr r0, _080AEEB0 @ =gUnknown_02038696 + adds r0, r7, r0 + ldrb r1, [r0] + lsls r0, r1, 2 + adds r0, r1 + adds r0, 0x2 + lsls r0, 24 + lsrs r0, 24 + mov r9, r0 + cmp r2, 0x10 + bne _080AEEF0 + adds r0, r7, 0 + bl sub_80AEE4C + lsls r0, 16 + lsrs r0, 16 + mov r8, r0 + movs r4, 0 + adds r6, r5, 0 + b _080AEEC4 + .align 2, 0 +_080AEEB0: .4byte gUnknown_02038696 +_080AEEB4: + mov r1, r9 + adds r0, r1, r4 + lsls r0, 6 + ldr r1, _080AEEE8 @ =0x0600c026 + adds r0, r1 + mov r1, r8 + strh r1, [r0] + adds r4, 0x1 +_080AEEC4: + subs r0, r6, r7 + lsls r0, 2 + ldr r1, _080AEEEC @ =0x02019260 + adds r5, r0, r1 + movs r0, 0xD + ldrsb r0, [r5, r0] + movs r1, 0xA + bl __divsi3 + lsls r0, 24 + asrs r0, 24 + cmp r0, r4 + bgt _080AEEB4 + ldr r0, [sp] + cmp r0, 0 + beq _080AEF3A + movs r0, 0x5B + b _080AEF2C + .align 2, 0 +_080AEEE8: .4byte 0x0600c026 +_080AEEEC: .4byte 0x02019260 +_080AEEF0: + movs r1, 0 + mov r8, r1 + movs r4, 0x3 + adds r6, r5, 0 + b _080AEF0A +_080AEEFA: + mov r1, r9 + adds r0, r1, r4 + lsls r0, 6 + ldr r1, _080AEF4C @ =0x0600bfe6 + adds r0, r1 + mov r1, r8 + strh r1, [r0] + subs r4, 0x1 +_080AEF0A: + subs r0, r6, r7 + lsls r0, 2 + mov r1, r10 + adds r5, r0, r1 + movs r0, 0xD + ldrsb r0, [r5, r0] + movs r1, 0xA + bl __divsi3 + lsls r0, 24 + asrs r0, 24 + cmp r0, r4 + blt _080AEEFA + ldr r0, [sp] + cmp r0, 0 + beq _080AEF3A + movs r0, 0x26 +_080AEF2C: + bl PlaySE + ldrb r1, [r5, 0x10] + movs r0, 0x31 + negs r0, r0 + ands r0, r1 + strb r0, [r5, 0x10] +_080AEF3A: + movs r0, 0x1 +_080AEF3C: + 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 +_080AEF4C: .4byte 0x0600bfe6 + thumb_func_end sub_80AEE54 + + thumb_func_start sub_80AEF50 +sub_80AEF50: @ 80AEF50 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x4 + movs r5, 0 +_080AEF5A: + ldr r0, _080AEF80 @ =gUnknown_02038696 + adds r0, r5, r0 + ldrb r1, [r0] + lsls r0, r1, 2 + adds r0, r1 + adds r0, 0x2 + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + lsls r0, r5, 24 + lsrs r0, 24 + bl sub_80AEE4C + lsls r0, 16 + lsrs r6, r0, 16 + movs r4, 0 + lsls r7, r5, 3 + adds r2, r5, 0x1 + b _080AEF92 + .align 2, 0 +_080AEF80: .4byte gUnknown_02038696 +_080AEF84: + mov r1, r8 + adds r0, r1, r4 + lsls r0, 6 + ldr r3, _080AEFE0 @ =0x0600c026 + adds r0, r3 + strh r6, [r0] + adds r4, 0x1 +_080AEF92: + subs r0, r7, r5 + lsls r0, 2 + ldr r1, _080AEFE4 @ =0x02019260 + adds r0, r1 + ldrb r0, [r0, 0xD] + lsls r0, 24 + asrs r0, 24 + movs r1, 0xA + str r2, [sp] + bl __divsi3 + lsls r0, 24 + asrs r0, 24 + ldr r2, [sp] + cmp r4, r0 + blt _080AEF84 + movs r6, 0 + cmp r4, 0x2 + bgt _080AEFCE + lsls r0, r4, 6 + ldr r1, _080AEFE0 @ =0x0600c026 + adds r0, r1 + mov r3, r8 + lsls r1, r3, 6 + adds r0, r1 +_080AEFC4: + strh r6, [r0] + adds r0, 0x40 + adds r4, 0x1 + cmp r4, 0x2 + ble _080AEFC4 +_080AEFCE: + adds r5, r2, 0 + cmp r5, 0x3 + ble _080AEF5A + add sp, 0x4 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080AEFE0: .4byte 0x0600c026 +_080AEFE4: .4byte 0x02019260 + thumb_func_end sub_80AEF50 + + thumb_func_start sub_80AEFE8 +sub_80AEFE8: @ 80AEFE8 + push {lr} + lsls r1, 24 + lsrs r1, 24 + movs r0, 0 + cmp r1, 0x4 + bhi _080AF02A + lsls r0, r1, 2 + ldr r1, _080AF000 @ =_080AF004 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080AF000: .4byte _080AF004 + .align 2, 0 +_080AF004: + .4byte _080AF018 + .4byte _080AF01C + .4byte _080AF020 + .4byte _080AF024 + .4byte _080AF028 +_080AF018: + movs r0, 0x80 + b _080AF02A +_080AF01C: + movs r0, 0x84 + b _080AF02A +_080AF020: + movs r0, 0x86 + b _080AF02A +_080AF024: + movs r0, 0x88 + b _080AF02A +_080AF028: + movs r0, 0x82 +_080AF02A: + movs r1, 0x90 + lsls r1, 8 + adds r0, r1 + lsls r0, 16 + lsrs r0, 16 + pop {r1} + bx r1 + thumb_func_end sub_80AEFE8 + + thumb_func_start sub_80AF038 +sub_80AF038: @ 80AF038 + push {r4-r6,lr} + lsls r0, 24 + lsrs r3, r0, 24 + movs r5, 0x1 + movs r4, 0 + ldr r0, _080AF074 @ =gUnknown_02038696 + adds r0, r3, r0 + ldrb r1, [r0] + lsls r0, r1, 2 + adds r0, r1 + adds r0, 0x2 + lsls r0, 24 + lsrs r6, r0, 24 + lsls r0, r3, 3 + subs r0, r3 + lsls r0, 2 + ldr r1, _080AF078 @ =0x02019260 + adds r2, r0, r1 + ldr r0, [r2, 0x10] + ldr r1, _080AF07C @ =0x00ff0003 + ands r0, r1 + cmp r0, 0 + bne _080AF06C + ldrb r0, [r2, 0xF] + cmp r0, 0 + beq _080AF080 +_080AF06C: + adds r0, r3, 0 + movs r1, 0 + b _080AF0A6 + .align 2, 0 +_080AF074: .4byte gUnknown_02038696 +_080AF078: .4byte 0x02019260 +_080AF07C: .4byte 0x00ff0003 +_080AF080: + ldrb r1, [r2, 0xC] + adds r0, r5, 0 + ands r0, r1 + cmp r0, 0 + beq _080AF090 + adds r0, r3, 0 + movs r1, 0x1 + b _080AF0A6 +_080AF090: + movs r0, 0x6 + ands r0, r1 + cmp r0, 0 + bne _080AF0A2 + ldrb r1, [r2, 0xB] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _080AF0B0 +_080AF0A2: + adds r0, r3, 0 + movs r1, 0x2 +_080AF0A6: + bl sub_80AEFE8 + lsls r0, 16 + lsrs r4, r0, 16 + b _080AF0B2 +_080AF0B0: + movs r5, 0 +_080AF0B2: + cmp r5, 0 + beq _080AF0EC + lsls r2, r6, 6 + ldr r0, _080AF0DC @ =0x0600c028 + adds r0, r2, r0 + strh r4, [r0] + ldr r0, _080AF0E0 @ =0x0600c02a + adds r0, r2, r0 + adds r1, r4, 0x1 + strh r1, [r0] + ldr r0, _080AF0E4 @ =0x0600c068 + adds r1, r2, r0 + adds r0, r4, 0 + adds r0, 0x10 + strh r0, [r1] + ldr r0, _080AF0E8 @ =0x0600c06a + adds r2, r0 + adds r0, r4, 0 + adds r0, 0x11 + strh r0, [r2] + b _080AF106 + .align 2, 0 +_080AF0DC: .4byte 0x0600c028 +_080AF0E0: .4byte 0x0600c02a +_080AF0E4: .4byte 0x0600c068 +_080AF0E8: .4byte 0x0600c06a +_080AF0EC: + lsls r1, r6, 6 + ldr r0, _080AF110 @ =0x0600c028 + adds r0, r1, r0 + strh r5, [r0] + ldr r0, _080AF114 @ =0x0600c02a + adds r0, r1, r0 + strh r5, [r0] + ldr r2, _080AF118 @ =0x0600c068 + adds r0, r1, r2 + strh r5, [r0] + ldr r0, _080AF11C @ =0x0600c06a + adds r1, r0 + strh r5, [r1] +_080AF106: + adds r0, r5, 0 + pop {r4-r6} + pop {r1} + bx r1 + .align 2, 0 +_080AF110: .4byte 0x0600c028 +_080AF114: .4byte 0x0600c02a +_080AF118: .4byte 0x0600c068 +_080AF11C: .4byte 0x0600c06a + thumb_func_end sub_80AF038 + + thumb_func_start sub_80AF120 +sub_80AF120: @ 80AF120 + push {r4,lr} + movs r4, 0 +_080AF124: + lsls r0, r4, 24 + lsrs r0, 24 + bl sub_80AF038 + adds r4, 0x1 + cmp r4, 0x3 + ble _080AF124 + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80AF120 + + thumb_func_start sub_80AF138 +sub_80AF138: @ 80AF138 + push {lr} + sub sp, 0x8 + ldr r0, _080AF158 @ =gUnknown_03004210 + movs r1, 0x11 + str r1, [sp] + movs r1, 0x12 + str r1, [sp, 0x4] + movs r1, 0 + movs r2, 0x1 + movs r3, 0xF + bl FillWindowRect_DefaultPalette + add sp, 0x8 + pop {r0} + bx r0 + .align 2, 0 +_080AF158: .4byte gUnknown_03004210 + thumb_func_end sub_80AF138 + + thumb_func_start sub_80AF15C +sub_80AF15C: @ 80AF15C + push {r4,r5,lr} + lsls r0, 24 + lsrs r4, r0, 24 + adds r5, r4, 0 + adds r0, r4, 0 + bl sub_80AF59C + lsls r0, 24 + cmp r0, 0 + beq _080AF174 + movs r0, 0 + b _080AF1AA +_080AF174: + ldr r0, _080AF190 @ =gUnknown_02038695 + ldrb r0, [r0] + cmp r4, r0 + beq _080AF198 + adds r0, r4, 0 + bl sub_81288F4 + bl sub_8128944 + lsls r0, 24 + ldr r2, _080AF194 @ =gUnknown_02038570 + lsrs r0, 23 + lsls r1, r4, 6 + b _080AF1A2 + .align 2, 0 +_080AF190: .4byte gUnknown_02038695 +_080AF194: .4byte gUnknown_02038570 +_080AF198: + ldr r2, _080AF1B0 @ =gUnknown_02038570 + ldr r0, _080AF1B4 @ =0x02019204 + ldrb r0, [r0] + lsls r0, 1 + lsls r1, r5, 6 +_080AF1A2: + adds r0, r1 + adds r2, 0x1E + adds r0, r2 + ldrh r0, [r0] +_080AF1AA: + pop {r4,r5} + pop {r1} + bx r1 + .align 2, 0 +_080AF1B0: .4byte gUnknown_02038570 +_080AF1B4: .4byte 0x02019204 + thumb_func_end sub_80AF15C + + thumb_func_start sub_80AF1B8 +sub_80AF1B8: @ 80AF1B8 + push {r4,lr} + movs r4, 0 +_080AF1BC: + adds r0, r4, 0 + bl sub_80AF15C + lsls r1, r4, 3 + subs r1, r4 + lsls r1, 2 + ldr r2, _080AF1E0 @ =0x02019260 + adds r1, r2 + strh r0, [r1, 0x6] + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x3 + bls _080AF1BC + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080AF1E0: .4byte 0x02019260 + thumb_func_end sub_80AF1B8 + + thumb_func_start sub_80AF1E4 +sub_80AF1E4: @ 80AF1E4 + push {r4,r5,lr} + sub sp, 0x4 + lsls r0, 24 + lsrs r5, r0, 24 + lsls r1, 24 + cmp r1, 0 + bne _080AF1FC + adds r0, r5, 0 + adds r0, 0xA + lsls r0, 24 + lsrs r3, r0, 24 + b _080AF1FE +_080AF1FC: + movs r3, 0xE +_080AF1FE: + lsls r0, r5, 3 + subs r0, r5 + lsls r0, 2 + ldr r1, _080AF21C @ =0x02019260 + adds r1, r0, r1 + ldrh r0, [r1, 0x6] + cmp r0, 0 + bne _080AF228 + ldr r0, _080AF220 @ =gUnknown_020238CC + ldr r1, _080AF224 @ =gUnknownText_MissedTurn + adds r2, r3, 0 + bl sub_80AE598 + b _080AF23A + .align 2, 0 +_080AF21C: .4byte 0x02019260 +_080AF220: .4byte gUnknown_020238CC +_080AF224: .4byte gUnknownText_MissedTurn +_080AF228: + ldr r0, _080AF270 @ =gUnknown_020238CC + ldrh r2, [r1, 0x6] + movs r1, 0xD + muls r1, r2 + ldr r2, _080AF274 @ =gMoveNames + adds r1, r2 + adds r2, r3, 0 + bl sub_80AE598 +_080AF23A: + adds r0, r5, 0 + bl sub_80AF2A0 + ldr r0, _080AF278 @ =gUnknown_03004210 + ldr r1, _080AF270 @ =gUnknown_020238CC + lsls r2, r5, 2 + adds r2, r5 + lsls r2, 18 + movs r3, 0xAE + lsls r3, 18 + adds r2, r3 + lsrs r2, 16 + ldr r4, _080AF27C @ =gUnknown_083CA318 + lsls r5, 1 + adds r3, r5, r4 + ldrb r3, [r3] + adds r4, 0x1 + adds r5, r4 + ldrb r4, [r5] + str r4, [sp] + bl sub_8003460 + add sp, 0x4 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080AF270: .4byte gUnknown_020238CC +_080AF274: .4byte gMoveNames +_080AF278: .4byte gUnknown_03004210 +_080AF27C: .4byte gUnknown_083CA318 + thumb_func_end sub_80AF1E4 + + thumb_func_start unref_sub_80AF280 +unref_sub_80AF280: @ 80AF280 + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + movs r4, 0 +_080AF288: + adds r0, r4, 0 + adds r1, r5, 0 + bl sub_80AF1E4 + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x3 + bls _080AF288 + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end unref_sub_80AF280 + + thumb_func_start sub_80AF2A0 +sub_80AF2A0: @ 80AF2A0 + push {r4,lr} + sub sp, 0x8 + lsls r0, 24 + ldr r4, _080AF2D8 @ =gUnknown_03004210 + ldr r1, _080AF2DC @ =gUnknown_083CA318 + lsrs r0, 23 + adds r2, r0, r1 + ldrb r2, [r2] + adds r1, 0x1 + adds r0, r1 + ldrb r3, [r0] + adds r0, r2, 0x7 + lsls r0, 24 + lsrs r0, 24 + str r0, [sp] + adds r0, r3, 0x1 + lsls r0, 24 + lsrs r0, 24 + str r0, [sp, 0x4] + adds r0, r4, 0 + movs r1, 0 + bl FillWindowRect_DefaultPalette + add sp, 0x8 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080AF2D8: .4byte gUnknown_03004210 +_080AF2DC: .4byte gUnknown_083CA318 + thumb_func_end sub_80AF2A0 + + thumb_func_start unref_sub_80AF2E0 +unref_sub_80AF2E0: @ 80AF2E0 + push {r4,lr} + movs r4, 0 +_080AF2E4: + adds r0, r4, 0 + bl sub_80AF2A0 + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x3 + bls _080AF2E4 + pop {r4} + pop {r0} + bx r0 + thumb_func_end unref_sub_80AF2E0 + + thumb_func_start sub_80AF2FC +sub_80AF2FC: @ 80AF2FC + push {r4-r7,lr} + sub sp, 0x8 + movs r4, 0 + ldr r2, _080AF398 @ =0x02019260 +_080AF304: + lsls r0, r4, 3 + subs r0, r4 + lsls r0, 2 + adds r0, r2 + ldrh r1, [r0, 0x2] + ldrh r3, [r0, 0x4] + adds r1, r3 + strh r1, [r0, 0x4] + lsls r0, r4, 1 + add r0, sp + strh r1, [r0] + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x3 + bls _080AF304 + movs r4, 0 +_080AF326: + movs r2, 0x3 + cmp r2, r4 + bls _080AF354 +_080AF32C: + subs r5, r2, 0x1 + lsls r0, r5, 1 + mov r7, sp + adds r3, r7, r0 + lsls r0, r2, 1 + adds r2, r7, r0 + ldrh r6, [r3] + movs r0, 0 + ldrsh r1, [r3, r0] + movs r7, 0 + ldrsh r0, [r2, r7] + cmp r1, r0 + bge _080AF34C + ldrh r0, [r2] + strh r6, [r2] + strh r0, [r3] +_080AF34C: + lsls r0, r5, 24 + lsrs r2, r0, 24 + cmp r2, r4 + bhi _080AF32C +_080AF354: + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x2 + bls _080AF326 + movs r4, 0 + ldr r0, _080AF398 @ =0x02019260 + mov r12, r0 + movs r7, 0x4 + negs r7, r7 + movs r6, 0x3 +_080AF36A: + movs r2, 0 + lsls r0, r4, 3 + adds r5, r4, 0x1 + subs r0, r4 + lsls r0, 2 + mov r1, r12 + adds r3, r0, r1 + movs r4, 0x4 + ldrsh r1, [r3, r4] +_080AF37C: + lsls r0, r2, 1 + add r0, sp + movs r4, 0 + ldrsh r0, [r0, r4] + cmp r1, r0 + bne _080AF39C + ands r2, r6 + ldrb r1, [r3, 0xB] + adds r0, r7, 0 + ands r0, r1 + orrs r0, r2 + strb r0, [r3, 0xB] + b _080AF3A6 + .align 2, 0 +_080AF398: .4byte 0x02019260 +_080AF39C: + adds r0, r2, 0x1 + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0x3 + bls _080AF37C +_080AF3A6: + lsls r0, r5, 24 + lsrs r4, r0, 24 + cmp r4, 0x3 + bls _080AF36A + movs r0, 0x1 + bl sub_80B0F28 + bl sub_80B159C + add sp, 0x8 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80AF2FC + + thumb_func_start sub_80AF3C0 +sub_80AF3C0: @ 80AF3C0 + push {lr} + ldr r2, _080AF3D0 @ =0x02019260 + adds r3, r2, 0 +_080AF3C6: + ldrh r0, [r2, 0x6] + cmp r0, 0 + bne _080AF3D4 + movs r1, 0x5 + b _080AF3F2 + .align 2, 0 +_080AF3D0: .4byte 0x02019260 +_080AF3D4: + movs r1, 0x2 + ldrsh r0, [r2, r1] + movs r1, 0 + cmp r0, 0 + ble _080AF3F2 + movs r1, 0x1 + cmp r0, 0x1D + ble _080AF3F2 + movs r1, 0x2 + cmp r0, 0x3B + ble _080AF3F2 + movs r1, 0x4 + cmp r0, 0x4F + bgt _080AF3F2 + movs r1, 0x3 +_080AF3F2: + strb r1, [r2, 0x1A] + adds r2, 0x1C + adds r0, r3, 0 + adds r0, 0x54 + cmp r2, r0 + ble _080AF3C6 + pop {r0} + bx r0 + thumb_func_end sub_80AF3C0 + + thumb_func_start sub_80AF404 +sub_80AF404: @ 80AF404 + push {lr} + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 3 + subs r1, r0 + lsls r1, 2 + ldr r0, _080AF42C @ =0x02019260 + adds r2, r1, r0 + ldrb r1, [r2, 0xC] + movs r0, 0x6 + ands r0, r1 + cmp r0, 0 + bne _080AF428 + ldrb r1, [r2, 0xB] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _080AF430 +_080AF428: + movs r0, 0 + b _080AF432 + .align 2, 0 +_080AF42C: .4byte 0x02019260 +_080AF430: + movs r0, 0x1 +_080AF432: + pop {r1} + bx r1 + thumb_func_end sub_80AF404 + + thumb_func_start sub_80AF438 +sub_80AF438: @ 80AF438 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + movs r5, 0 + ldr r0, _080AF594 @ =0x02019260 + mov r10, r0 + movs r1, 0 + mov r12, r1 + movs r0, 0x7 + negs r0, r0 + mov r9, r0 + movs r1, 0x2 + negs r1, r1 + mov r8, r1 +_080AF458: + lsls r0, r5, 3 + subs r0, r5 + lsls r0, 2 + mov r1, r10 + adds r3, r0, r1 + movs r0, 0 + strh r0, [r3, 0x2] + strh r0, [r3] + mov r0, r12 + strb r0, [r3, 0x12] + ldrb r2, [r3, 0xC] + movs r0, 0x6 + ands r0, r2 + cmp r0, 0 + beq _080AF48A + lsls r0, r2, 29 + lsrs r0, 30 + subs r0, 0x1 + movs r1, 0x3 + ands r0, r1 + lsls r0, 1 + mov r1, r9 + ands r1, r2 + orrs r1, r0 + strb r1, [r3, 0xC] +_080AF48A: + mov r1, r12 + strb r1, [r3, 0xE] + ldrb r0, [r3, 0x10] + mov r1, r8 + ands r1, r0 + mov r0, r12 + strb r0, [r3, 0xF] + movs r0, 0x3 + negs r0, r0 + ands r1, r0 + movs r6, 0x5 + negs r6, r6 + ands r1, r6 + movs r7, 0x9 + negs r7, r7 + ands r1, r7 + ldrb r0, [r3, 0xC] + mov r4, r8 + ands r4, r0 + strb r4, [r3, 0xC] + movs r0, 0xFF + strb r0, [r3, 0x13] + movs r0, 0x1 + negs r0, r0 + strb r0, [r3, 0x14] + subs r0, 0x30 + ands r1, r0 + strb r1, [r3, 0x10] + ldrb r2, [r3, 0x15] + lsls r1, r2, 31 + lsrs r1, 31 + lsls r1, 2 + adds r0, r6, 0 + ands r0, r2 + orrs r0, r1 + mov r1, r8 + ands r0, r1 + strb r0, [r3, 0x15] + ldrb r0, [r3, 0x11] + movs r2, 0x4 + negs r2, r2 + ands r2, r0 + movs r0, 0x21 + negs r0, r0 + ands r2, r0 + strb r2, [r3, 0x11] + movs r0, 0x4 + ands r0, r2 + cmp r0, 0 + beq _080AF500 + adds r0, r4, 0 + mov r1, r9 + ands r0, r1 + movs r1, 0x2 + orrs r0, r1 + strb r0, [r3, 0xC] + adds r0, r2, 0 + ands r0, r6 + strb r0, [r3, 0x11] +_080AF500: + ldrb r2, [r3, 0x11] + movs r0, 0x8 + ands r0, r2 + cmp r0, 0 + beq _080AF518 + ldrb r0, [r3, 0xB] + movs r1, 0x80 + orrs r0, r1 + strb r0, [r3, 0xB] + adds r0, r7, 0 + ands r0, r2 + strb r0, [r3, 0x11] +_080AF518: + ldrb r0, [r3, 0x11] + movs r1, 0x11 + negs r1, r1 + ands r1, r0 + strb r1, [r3, 0x11] + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0x3 + bls _080AF458 + movs r5, 0 + mov r6, r10 + mov r9, r5 + adds r7, r6, 0 + subs r7, 0x5C + movs r0, 0x18 + negs r0, r0 + adds r0, r6 + mov r8, r0 +_080AF53E: + lsls r4, r5, 3 + subs r4, r5 + lsls r4, 2 + adds r4, r6 + ldrh r2, [r4, 0x6] + strh r2, [r4, 0x8] + lsls r1, r5, 1 + ldrb r0, [r7, 0x1] + lsls r0, 3 + adds r1, r0 + adds r0, r6, 0 + subs r0, 0x40 + adds r0, r1 + strh r2, [r0] + ldrh r0, [r4, 0x6] + bl contest_get_move_excitement + ldrb r1, [r7, 0x1] + lsls r1, 2 + adds r1, r5, r1 + add r1, r8 + strb r0, [r1] + mov r1, r9 + strh r1, [r4, 0x6] + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0x3 + bls _080AF53E + ldr r2, _080AF598 @ =0x02019328 + ldrb r1, [r2, 0x1] + movs r0, 0x2 + negs r0, r0 + ands r0, r1 + strb r0, [r2, 0x1] + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080AF594: .4byte 0x02019260 +_080AF598: .4byte 0x02019328 + thumb_func_end sub_80AF438 + + thumb_func_start sub_80AF59C +sub_80AF59C: @ 80AF59C + push {lr} + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 3 + subs r1, r0 + lsls r1, 2 + ldr r0, _080AF5C4 @ =0x02019260 + adds r2, r1, r0 + ldrb r1, [r2, 0xC] + movs r0, 0x6 + ands r0, r1 + cmp r0, 0 + bne _080AF5C0 + ldrb r1, [r2, 0xB] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _080AF5C8 +_080AF5C0: + movs r0, 0x1 + b _080AF5CA + .align 2, 0 +_080AF5C4: .4byte 0x02019260 +_080AF5C8: + movs r0, 0 +_080AF5CA: + pop {r1} + bx r1 + thumb_func_end sub_80AF59C + + thumb_func_start unref_sub_80AF5D0 +unref_sub_80AF5D0: @ 80AF5D0 + push {r4,r5,lr} + lsls r0, 24 + lsrs r0, 24 + lsls r1, 24 + lsrs r3, r1, 24 + ldr r1, _080AF5E8 @ =gUnknown_02038695 + ldrb r1, [r1] + cmp r0, r1 + beq _080AF600 +_080AF5E2: + movs r0, 0x1 + b _080AF626 + .align 2, 0 +_080AF5E8: .4byte gUnknown_02038695 +_080AF5EC: + ldrb r0, [r4, 0x6] + movs r1, 0x1 + b _080AF5F6 +_080AF5F2: + ldrb r0, [r4, 0x6] + movs r1, 0x2 +_080AF5F6: + orrs r0, r1 + strb r0, [r4, 0x6] + b _080AF5E2 +_080AF5FC: + strb r3, [r2] + b _080AF5E2 +_080AF600: + movs r0, 0 + ldr r4, _080AF62C @ =0x02019204 + adds r5, r4, 0x2 +_080AF606: + cmp r3, 0x3 + beq _080AF5EC + cmp r3, 0x4 + beq _080AF5F2 + adds r2, r0, r5 + ldrb r1, [r2] + cmp r1, r3 + beq _080AF5E2 + cmp r1, 0xFF + beq _080AF5FC + adds r0, 0x1 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x3 + bls _080AF606 + movs r0, 0 +_080AF626: + pop {r4,r5} + pop {r1} + bx r1 + .align 2, 0 +_080AF62C: .4byte 0x02019204 + thumb_func_end unref_sub_80AF5D0 + + thumb_func_start sub_80AF630 +sub_80AF630: @ 80AF630 + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + adds r0, r4, 0 + bl sub_80AF688 + ldr r1, _080AF65C @ =gUnknown_02038688 + lsls r4, 1 + adds r1, r4, r1 + strh r0, [r1] + ldr r2, _080AF660 @ =gUnknown_02038678 + adds r2, r4, r2 + ldr r1, _080AF664 @ =gUnknown_02038670 + adds r4, r1 + ldrh r4, [r4] + adds r0, r4 + strh r0, [r2] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080AF65C: .4byte gUnknown_02038688 +_080AF660: .4byte gUnknown_02038678 +_080AF664: .4byte gUnknown_02038670 + thumb_func_end sub_80AF630 + + thumb_func_start sub_80AF668 +sub_80AF668: @ 80AF668 + push {r4,lr} + movs r4, 0 +_080AF66C: + adds r0, r4, 0 + bl sub_80AF630 + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x3 + bls _080AF66C + bl sub_80AF6A0 + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80AF668 + + thumb_func_start sub_80AF688 +sub_80AF688: @ 80AF688 + lsls r0, 24 + ldr r1, _080AF69C @ =gUnknown_02038680 + lsrs r0, 23 + adds r0, r1 + movs r1, 0 + ldrsh r0, [r0, r1] + lsls r0, 17 + asrs r0, 16 + bx lr + .align 2, 0 +_080AF69C: .4byte gUnknown_02038680 + thumb_func_end sub_80AF688 + + thumb_func_start sub_80AF6A0 +sub_80AF6A0: @ 80AF6A0 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x70 + mov r0, sp + movs r1, 0 + movs r2, 0x8 + bl memset + movs r0, 0 + mov r9, r0 + mov r1, sp + adds r1, 0x8 + str r1, [sp, 0x64] + mov r3, sp + adds r3, 0xC + str r3, [sp, 0x68] + mov r6, sp + adds r6, 0x14 + str r6, [sp, 0x6C] + mov r4, sp +_080AF6CE: + bl Random + strh r0, [r4] + movs r2, 0 + cmp r2, r9 + bge _080AF70C + mov r1, sp + lsls r0, 16 + lsrs r0, 16 + ldrh r1, [r1] + cmp r0, r1 + bne _080AF6F0 + subs r4, 0x2 + movs r7, 0x1 + negs r7, r7 + add r9, r7 + b _080AF70C +_080AF6F0: + adds r2, 0x1 + cmp r2, r9 + bge _080AF70C + lsls r0, r2, 1 + mov r3, sp + adds r1, r3, r0 + ldrh r0, [r4] + ldrh r1, [r1] + cmp r0, r1 + bne _080AF6F0 + subs r4, 0x2 + movs r6, 0x1 + negs r6, r6 + add r9, r6 +_080AF70C: + adds r4, 0x2 + movs r7, 0x1 + add r9, r7 + mov r0, r9 + cmp r0, 0x3 + ble _080AF6CE + movs r1, 0 + mov r9, r1 + mov r4, sp + ldr r6, _080AF81C @ =gUnknown_02038678 + ldr r2, [sp, 0x64] + ldr r5, _080AF820 @ =gUnknown_02038670 + ldr r3, [sp, 0x68] +_080AF726: + mov r7, r9 + lsls r1, r7, 4 + movs r7, 0 + ldrsh r0, [r6, r7] + str r0, [r2] + movs r7, 0 + ldrsh r0, [r5, r7] + str r0, [r3] + ldrh r0, [r4] + str r0, [r2, 0x8] + ldr r0, [sp, 0x6C] + adds r1, r0, r1 + mov r7, r9 + str r7, [r1] + adds r4, 0x2 + adds r6, 0x2 + adds r2, 0x10 + adds r5, 0x2 + adds r3, 0x10 + movs r0, 0x1 + add r9, r0 + mov r1, r9 + cmp r1, 0x3 + ble _080AF726 + movs r3, 0 + mov r9, r3 +_080AF75A: + movs r4, 0x3 + cmp r4, r9 + ble _080AF7E4 + add r7, sp, 0x48 + ldr r6, [sp, 0x68] + str r6, [sp, 0x58] + ldr r0, [sp, 0x64] + adds r0, 0x8 + str r0, [sp, 0x5C] + ldr r1, [sp, 0x6C] + str r1, [sp, 0x60] +_080AF770: + subs r3, r4, 0x1 + mov r10, r3 + mov r0, r10 + adds r1, r4, 0 + ldr r2, [sp, 0x64] + bl sub_80AF828 + lsls r0, 24 + cmp r0, 0 + beq _080AF7DE + mov r6, r10 + lsls r2, r6, 4 + ldr r0, [sp, 0x64] + adds r3, r0, r2 + ldr r0, [r3] + str r0, [sp, 0x48] + ldr r1, [sp, 0x58] + adds r6, r1, r2 + ldr r0, [r6] + str r0, [r7, 0x4] + ldr r0, [sp, 0x5C] + adds r0, r2 + mov r8, r0 + ldr r0, [r0] + str r0, [r7, 0x8] + ldr r1, [sp, 0x60] + adds r2, r1, r2 + ldr r0, [r2] + str r0, [r7, 0xC] + lsls r1, r4, 4 + ldr r0, [sp, 0x64] + adds r5, r0, r1 + ldr r0, [r5] + str r0, [r3] + ldr r3, [sp, 0x58] + adds r4, r3, r1 + ldr r0, [r4] + str r0, [r6] + ldr r6, [sp, 0x5C] + adds r3, r6, r1 + ldr r0, [r3] + mov r6, r8 + str r0, [r6] + ldr r0, [sp, 0x60] + adds r1, r0, r1 + ldr r0, [r1] + str r0, [r2] + ldr r0, [sp, 0x48] + str r0, [r5] + ldr r0, [r7, 0x4] + str r0, [r4] + ldr r0, [r7, 0x8] + str r0, [r3] + ldr r0, [r7, 0xC] + str r0, [r1] +_080AF7DE: + mov r4, r10 + cmp r4, r9 + bgt _080AF770 +_080AF7E4: + movs r1, 0x1 + add r9, r1 + mov r3, r9 + cmp r3, 0x2 + ble _080AF75A + movs r6, 0 + mov r9, r6 + ldr r2, _080AF824 @ =gUnknown_02038690 + ldr r1, [sp, 0x6C] +_080AF7F6: + ldr r0, [r1] + adds r0, r2 + mov r7, r9 + strb r7, [r0] + adds r1, 0x10 + movs r0, 0x1 + add r9, r0 + mov r3, r9 + cmp r3, 0x3 + ble _080AF7F6 + add sp, 0x70 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080AF81C: .4byte gUnknown_02038678 +_080AF820: .4byte gUnknown_02038670 +_080AF824: .4byte gUnknown_02038690 + thumb_func_end sub_80AF6A0 + + thumb_func_start sub_80AF828 +sub_80AF828: @ 80AF828 + push {lr} + lsls r0, 4 + adds r0, r2 + lsls r1, 4 + adds r3, r1, r2 + ldr r2, [r0] + ldr r1, [r3] + cmp r2, r1 + blt _080AF858 + cmp r2, r1 + bgt _080AF84A + ldr r2, [r0, 0x4] + ldr r1, [r3, 0x4] + cmp r2, r1 + blt _080AF858 + cmp r2, r1 + ble _080AF84E +_080AF84A: + movs r2, 0 + b _080AF85A +_080AF84E: + ldr r1, [r0, 0x8] + ldr r0, [r3, 0x8] + movs r2, 0 + cmp r1, r0 + bge _080AF85A +_080AF858: + movs r2, 0x1 +_080AF85A: + adds r0, r2, 0 + pop {r1} + bx r1 + thumb_func_end sub_80AF828 + + thumb_func_start sub_80AF860 +sub_80AF860: @ 80AF860 + push {lr} + sub sp, 0x4 + ldr r0, _080AF88C @ =gUnknown_030042A0 + movs r1, 0 + strh r1, [r0] + ldr r0, _080AF890 @ =gUnknown_03004280 + strh r1, [r0] + bl sub_80AF138 + ldr r0, _080AF894 @ =gMenuWindow + ldr r1, _080AF898 @ =gUnknownText_LinkStandbyAndWinner + movs r2, 0xC2 + lsls r2, 2 + movs r3, 0xF + str r3, [sp] + movs r3, 0x1 + bl sub_8003460 + add sp, 0x4 + pop {r0} + bx r0 + .align 2, 0 +_080AF88C: .4byte gUnknown_030042A0 +_080AF890: .4byte gUnknown_03004280 +_080AF894: .4byte gMenuWindow +_080AF898: .4byte gUnknownText_LinkStandbyAndWinner + thumb_func_end sub_80AF860 + + thumb_func_start unref_sub_80AF89C +unref_sub_80AF89C: @ 80AF89C + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + adds r4, r0, 0 + adds r6, r1, 0 + mov r8, r2 + lsls r4, 16 + lsrs r4, 16 + lsls r6, 16 + lsrs r6, 16 + mov r0, r8 + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + lsls r3, 24 + lsrs r3, 24 + mov r9, r3 + lsls r2, r3, 2 + ldr r0, _080AF940 @ =0x02019338 + adds r2, r0 + ldrb r0, [r2, 0x2] + movs r1, 0x4 + orrs r0, r1 + strb r0, [r2, 0x2] + ldr r0, _080AF944 @ =sub_80AF94C + movs r1, 0x14 + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + adds r7, r0, 0 + lsls r4, 16 + asrs r4, 16 + adds r0, r4, 0 + bl sub_80AFB74 + adds r5, r0, 0 + lsls r5, 24 + lsrs r5, 24 + lsls r6, 16 + asrs r6, 16 + adds r4, r6 + lsls r4, 16 + asrs r4, 16 + adds r0, r4, 0 + bl sub_80AFB74 + adds r4, r0, 0 + subs r4, r5 + lsls r4, 24 + lsrs r4, 24 + mov r0, r9 + bl sub_80AFB40 + lsls r0, 16 + lsrs r0, 16 + ldr r2, _080AF948 @ =gTasks + lsls r1, r7, 2 + adds r1, r7 + lsls r1, 3 + adds r1, r2 + strh r5, [r1, 0x8] + lsls r4, 24 + asrs r4, 24 + strh r4, [r1, 0xA] + add r0, r8 + strh r0, [r1, 0xC] + mov r0, r9 + strh r0, [r1, 0xE] + cmp r6, 0 + bge _080AF932 + mov r0, r9 + bl nullsub_19 +_080AF932: + adds r0, r7, 0 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_080AF940: .4byte 0x02019338 +_080AF944: .4byte sub_80AF94C +_080AF948: .4byte gTasks + thumb_func_end unref_sub_80AF89C + + thumb_func_start sub_80AF94C +sub_80AF94C: @ 80AF94C + push {r4-r7,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r1, _080AF988 @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r2, r0, r1 + ldrb r5, [r2, 0xE] + ldrh r3, [r2, 0xA] + movs r0, 0xA + ldrsh r1, [r2, r0] + cmp r1, 0 + bne _080AF990 + adds r0, r5, 0 + bl nullsub_19 + adds r0, r4, 0 + bl DestroyTask + lsls r1, r5, 2 + ldr r0, _080AF98C @ =0x02019338 + adds r1, r0 + ldrb r2, [r1, 0x2] + movs r0, 0x5 + negs r0, r0 + ands r0, r2 + strb r0, [r1, 0x2] + b _080AFA56 + .align 2, 0 +_080AF988: .4byte gTasks +_080AF98C: .4byte 0x02019338 +_080AF990: + ldrh r0, [r2, 0x1C] + adds r0, 0x1 + strh r0, [r2, 0x1C] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1D + ble _080AFA56 + movs r0, 0 + strh r0, [r2, 0x1C] + cmp r1, 0 + bge _080AF9BC + ldrh r0, [r2, 0x8] + subs r1, r0, 0x1 + strh r1, [r2, 0x8] + lsls r0, 24 + lsrs r6, r0, 24 + adds r0, r3, 0x1 + strh r0, [r2, 0xA] + movs r0, 0x16 + bl PlaySE + b _080AF9D0 +_080AF9BC: + ldrh r0, [r2, 0x8] + adds r0, 0x1 + strh r0, [r2, 0x8] + lsls r0, 24 + lsrs r6, r0, 24 + subs r0, r3, 0x1 + strh r0, [r2, 0xA] + movs r0, 0x15 + bl PlaySE +_080AF9D0: + ldr r3, _080AFA00 @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r2, r0, 3 + adds r0, r2, r3 + ldrh r1, [r0, 0xC] + ldr r0, _080AFA04 @ =0x0000ffff + cmp r1, r0 + beq _080AFA38 + adds r0, r3, r2 + adds r0, 0xC + lsls r1, r5, 2 + adds r1, r5 + lsls r1, 5 + adds r1, 0x93 + adds r1, r6, r1 + lsls r1, 1 + ldr r2, _080AFA08 @ =0x0600c000 + adds r1, r2 + movs r2, 0x2 + bl RequestSpriteCopy + b _080AFA56 + .align 2, 0 +_080AFA00: .4byte gTasks +_080AFA04: .4byte 0x0000ffff +_080AFA08: .4byte 0x0600c000 +_080AFA0C: + adds r0, r2, r3 + lsls r1, 1 + adds r1, 0xE + adds r0, r1 + lsls r1, r5, 2 + adds r1, r5 + lsls r1, 5 + adds r1, 0x93 + adds r1, r6, r1 + lsls r1, 1 + ldr r7, _080AFA34 @ =0x0600c000 + adds r1, r7 + movs r2, 0x2 + bl RequestSpriteCopy + ldrh r0, [r4] + adds r0, 0x1 + strh r0, [r4] + b _080AFA56 + .align 2, 0 +_080AFA34: .4byte 0x0600c000 +_080AFA38: + movs r1, 0 + adds r3, 0x8 +_080AFA3C: + adds r0, r1, 0x4 + lsls r0, 1 + adds r0, r2 + adds r4, r0, r3 + movs r7, 0 + ldrsh r0, [r4, r7] + cmp r0, 0 + blt _080AFA0C + adds r0, r1, 0x1 + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0x2 + bls _080AFA3C +_080AFA56: + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80AF94C + + thumb_func_start sub_80AFA5C +sub_80AFA5C: @ 80AFA5C + push {r4-r7,lr} + sub sp, 0x4 + movs r3, 0 + ldr r0, _080AFAAC @ =0x0600c000 + mov r12, r0 + mov r4, sp + movs r6, 0 + ldr r2, _080AFAB0 @ =0x040000d4 + ldr r5, _080AFAB4 @ =0x81000008 +_080AFA6E: + lsls r1, r3, 2 + adds r1, r3 + lsls r1, 5 + adds r0, r1, 0 + adds r0, 0x56 + lsls r0, 1 + add r0, r12 + strh r6, [r4] + mov r7, sp + str r7, [r2] + str r0, [r2, 0x4] + str r5, [r2, 0x8] + ldr r0, [r2, 0x8] + adds r1, 0x76 + lsls r1, 1 + add r1, r12 + strh r6, [r4] + str r7, [r2] + str r1, [r2, 0x4] + str r5, [r2, 0x8] + ldr r0, [r2, 0x8] + adds r0, r3, 0x1 + lsls r0, 24 + lsrs r3, r0, 24 + cmp r3, 0x3 + bls _080AFA6E + add sp, 0x4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080AFAAC: .4byte 0x0600c000 +_080AFAB0: .4byte 0x040000d4 +_080AFAB4: .4byte 0x81000008 + thumb_func_end sub_80AFA5C + + thumb_func_start unref_sub_80AFAB8 +unref_sub_80AFAB8: @ 80AFAB8 + push {r4-r6,lr} + sub sp, 0x14 + lsls r1, 24 + lsrs r4, r1, 24 + lsls r0, 16 + asrs r0, 16 + bl sub_80AFB74 + lsls r0, 24 + lsrs r5, r0, 24 + ldr r2, _080AFAF4 @ =0x000050a2 + cmp r4, 0 + beq _080AFAE0 + ldr r2, _080AFAF8 @ =0x000060a2 + cmp r4, 0x1 + beq _080AFAE0 + ldr r2, _080AFAFC @ =0x000080a2 + cmp r4, 0x2 + bne _080AFAE0 + ldr r2, _080AFB00 @ =0x000070a2 +_080AFAE0: + movs r1, 0 + lsls r3, r4, 2 + movs r6, 0 +_080AFAE6: + cmp r1, r5 + bcs _080AFB04 + lsls r0, r1, 1 + add r0, sp + strh r2, [r0] + b _080AFB0A + .align 2, 0 +_080AFAF4: .4byte 0x000050a2 +_080AFAF8: .4byte 0x000060a2 +_080AFAFC: .4byte 0x000080a2 +_080AFB00: .4byte 0x000070a2 +_080AFB04: + lsls r0, r1, 1 + add r0, sp + strh r6, [r0] +_080AFB0A: + adds r0, r1, 0x1 + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0x8 + bls _080AFAE6 + adds r0, r3, r4 + lsls r0, 6 + ldr r1, _080AFB34 @ =0x0600c128 + adds r0, r1 + ldr r1, _080AFB38 @ =0x040000d4 + mov r2, sp + str r2, [r1] + str r0, [r1, 0x4] + ldr r0, _080AFB3C @ =0x80000009 + str r0, [r1, 0x8] + ldr r0, [r1, 0x8] + add sp, 0x14 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080AFB34: .4byte 0x0600c128 +_080AFB38: .4byte 0x040000d4 +_080AFB3C: .4byte 0x80000009 + thumb_func_end unref_sub_80AFAB8 + + thumb_func_start sub_80AFB40 +sub_80AFB40: @ 80AFB40 + push {lr} + lsls r0, 24 + lsrs r0, 24 + ldr r1, _080AFB64 @ =0x00005011 + cmp r0, 0 + beq _080AFB5A + ldr r1, _080AFB68 @ =0x00006011 + cmp r0, 0x1 + beq _080AFB5A + ldr r1, _080AFB6C @ =0x00008011 + cmp r0, 0x2 + bne _080AFB5A + ldr r1, _080AFB70 @ =0x00007011 +_080AFB5A: + adds r0, r1, 0x1 + lsls r0, 16 + lsrs r0, 16 + pop {r1} + bx r1 + .align 2, 0 +_080AFB64: .4byte 0x00005011 +_080AFB68: .4byte 0x00006011 +_080AFB6C: .4byte 0x00008011 +_080AFB70: .4byte 0x00007011 + thumb_func_end sub_80AFB40 + + thumb_func_start sub_80AFB74 +sub_80AFB74: @ 80AFB74 + push {lr} + lsls r0, 16 + asrs r0, 16 + movs r1, 0xA + bl __divsi3 + lsls r0, 24 + lsrs r1, r0, 24 + asrs r2, r0, 24 + cmp r2, 0x10 + ble _080AFB8E + movs r1, 0x10 + b _080AFB98 +_080AFB8E: + movs r0, 0x10 + negs r0, r0 + cmp r2, r0 + bge _080AFB98 + movs r1, 0xF0 +_080AFB98: + lsls r0, r1, 24 + asrs r0, 24 + pop {r1} + bx r1 + thumb_func_end sub_80AFB74 + + thumb_func_start sub_80AFBA0 +sub_80AFBA0: @ 80AFBA0 + push {r4-r7,lr} + mov r7, r8 + push {r7} + adds r5, r0, 0 + lsls r5, 16 + lsrs r5, 16 + lsls r1, 16 + lsrs r1, 16 + mov r8, r1 + lsls r2, 24 + lsrs r7, r2, 24 + lsls r2, r7, 2 + ldr r0, _080AFC30 @ =0x02019338 + adds r2, r0 + ldrb r0, [r2, 0x2] + movs r1, 0x4 + orrs r0, r1 + strb r0, [r2, 0x2] + ldr r0, _080AFC34 @ =sub_80AFC74 + movs r1, 0x14 + bl CreateTask + lsls r0, 24 + lsrs r6, r0, 24 + lsls r5, 16 + asrs r5, 16 + adds r0, r5, 0 + bl sub_80AFB74 + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + mov r1, r8 + lsls r0, r1, 16 + asrs r0, 16 + adds r5, r0 + lsls r5, 16 + asrs r5, 16 + adds r0, r5, 0 + bl sub_80AFB74 + lsls r4, 24 + asrs r4, 24 + subs r0, r4 + lsls r0, 24 + lsrs r5, r0, 24 + adds r0, r7, 0 + bl sub_80AFB40 + ldr r2, _080AFC38 @ =gTasks + lsls r3, r6, 2 + adds r0, r3, r6 + lsls r0, 3 + adds r1, r0, r2 + adds r0, r4, 0 + cmp r4, 0 + bge _080AFC14 + negs r0, r4 +_080AFC14: + strh r0, [r1, 0x8] + lsls r0, r5, 24 + asrs r0, 24 + strh r0, [r1, 0xA] + cmp r4, 0 + bgt _080AFC28 + cmp r4, 0 + bne _080AFC3C + cmp r0, 0 + ble _080AFC3C +_080AFC28: + movs r0, 0x1 + strh r0, [r1, 0xC] + b _080AFC4A + .align 2, 0 +_080AFC30: .4byte 0x02019338 +_080AFC34: .4byte sub_80AFC74 +_080AFC38: .4byte gTasks +_080AFC3C: + ldr r2, _080AFC6C @ =gTasks + lsls r3, r6, 2 + adds r0, r3, r6 + lsls r0, 3 + adds r0, r2 + ldr r1, _080AFC70 @ =0x0000ffff + strh r1, [r0, 0xC] +_080AFC4A: + adds r0, r3, r6 + lsls r0, 3 + adds r0, r2 + strh r7, [r0, 0xE] + mov r1, r8 + lsls r0, r1, 16 + cmp r0, 0 + bge _080AFC60 + adds r0, r7, 0 + bl nullsub_19 +_080AFC60: + adds r0, r6, 0 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_080AFC6C: .4byte gTasks +_080AFC70: .4byte 0x0000ffff + thumb_func_end sub_80AFBA0 + + thumb_func_start sub_80AFC74 +sub_80AFC74: @ 80AFC74 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x4 + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + ldr r1, _080AFCD4 @ =gTasks + lsls r0, 2 + add r0, r8 + lsls r0, 3 + adds r4, r0, r1 + ldrb r7, [r4, 0xE] + ldrh r3, [r4, 0x8] + ldrh r1, [r4, 0xA] + ldrh r0, [r4, 0x1C] + adds r0, 0x1 + strh r0, [r4, 0x1C] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0xE + bgt _080AFCA6 + b _080AFE1C +_080AFCA6: + movs r0, 0 + strh r0, [r4, 0x1C] + ldrh r2, [r4, 0xA] + movs r5, 0xA + ldrsh r0, [r4, r5] + cmp r0, 0 + bne _080AFCDC + adds r0, r7, 0 + bl nullsub_19 + mov r0, r8 + bl DestroyTask + lsls r1, r7, 2 + ldr r0, _080AFCD8 @ =0x02019338 + adds r1, r0 + ldrb r2, [r1, 0x2] + movs r0, 0x5 + negs r0, r0 + ands r0, r2 + strb r0, [r1, 0x2] + b _080AFE1C + .align 2, 0 +_080AFCD4: .4byte gTasks +_080AFCD8: .4byte 0x02019338 +_080AFCDC: + cmp r3, 0 + bne _080AFD28 + lsls r0, r1, 16 + mov r9, r0 + cmp r0, 0 + bge _080AFCFA + adds r0, r7, 0 + bl sub_80AFB40 + adds r0, 0x2 + lsls r0, 16 + lsrs r6, r0, 16 + ldrh r0, [r4, 0xA] + adds r0, 0x1 + b _080AFD08 +_080AFCFA: + adds r0, r7, 0 + bl sub_80AFB40 + lsls r0, 16 + lsrs r6, r0, 16 + ldrh r0, [r4, 0xA] + subs r0, 0x1 +_080AFD08: + strh r0, [r4, 0xA] + ldr r1, _080AFD24 @ =gTasks + mov r2, r8 + lsls r0, r2, 2 + add r0, r8 + lsls r0, 3 + adds r0, r1 + ldrh r1, [r0, 0x8] + adds r2, r1, 0x1 + strh r2, [r0, 0x8] + lsls r1, 24 + lsrs r5, r1, 24 + b _080AFD94 + .align 2, 0 +_080AFD24: .4byte gTasks +_080AFD28: + movs r3, 0xC + ldrsh r0, [r4, r3] + cmp r0, 0 + bge _080AFD62 + lsls r0, r1, 16 + mov r9, r0 + cmp r0, 0 + bge _080AFD50 + ldrh r0, [r4, 0x8] + adds r1, r0, 0x1 + strh r1, [r4, 0x8] + lsls r0, 24 + lsrs r5, r0, 24 + adds r0, r2, 0x1 + strh r0, [r4, 0xA] + adds r0, r7, 0 + bl sub_80AFB40 + adds r0, 0x2 + b _080AFD90 +_080AFD50: + ldrh r0, [r4, 0x8] + subs r0, 0x1 + strh r0, [r4, 0x8] + lsls r0, 24 + lsrs r5, r0, 24 + movs r6, 0 + subs r0, r2, 0x1 + strh r0, [r4, 0xA] + b _080AFD94 +_080AFD62: + lsls r0, r1, 16 + mov r9, r0 + cmp r0, 0 + bge _080AFD7C + ldrh r0, [r4, 0x8] + subs r0, 0x1 + strh r0, [r4, 0x8] + lsls r0, 24 + lsrs r5, r0, 24 + movs r6, 0 + adds r0, r2, 0x1 + strh r0, [r4, 0xA] + b _080AFD94 +_080AFD7C: + ldrh r0, [r4, 0x8] + adds r1, r0, 0x1 + strh r1, [r4, 0x8] + lsls r0, 24 + lsrs r5, r0, 24 + subs r0, r2, 0x1 + strh r0, [r4, 0xA] + adds r0, r7, 0 + bl sub_80AFB40 +_080AFD90: + lsls r0, 16 + lsrs r6, r0, 16 +_080AFD94: + mov r10, r5 + cmp r5, 0x7 + bls _080AFDA2 + adds r0, r5, 0 + adds r0, 0x18 + lsls r0, 24 + lsrs r5, r0, 24 +_080AFDA2: + mov r0, sp + strh r6, [r0] + ldr r0, _080AFDE8 @ =gUnknown_02038696 + adds r0, r7, r0 + ldrb r0, [r0] + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 5 + adds r1, 0x56 + adds r1, r5, r1 + lsls r1, 1 + ldr r0, _080AFDEC @ =0x0600c000 + adds r1, r0 + ldr r2, _080AFDF0 @ =0x01000001 + mov r0, sp + bl CpuSet + mov r2, r9 + cmp r2, 0 + ble _080AFDFC + movs r0, 0x60 + bl PlaySE + ldr r4, _080AFDF4 @ =gMPlay_SE1 + adds r0, r4, 0 + bl m4aMPlayImmInit + ldr r1, _080AFDF8 @ =0x0000ffff + mov r3, r10 + lsls r2, r3, 24 + asrs r2, 16 + adds r0, r4, 0 + bl m4aMPlayPitchControl + b _080AFE02 + .align 2, 0 +_080AFDE8: .4byte gUnknown_02038696 +_080AFDEC: .4byte 0x0600c000 +_080AFDF0: .4byte 0x01000001 +_080AFDF4: .4byte gMPlay_SE1 +_080AFDF8: .4byte 0x0000ffff +_080AFDFC: + movs r0, 0x16 + bl PlaySE +_080AFE02: + cmp r5, 0 + bne _080AFE1C + cmp r6, 0 + bne _080AFE1C + ldr r0, _080AFE2C @ =gTasks + mov r5, r8 + lsls r1, r5, 2 + add r1, r8 + lsls r1, 3 + adds r1, r0 + ldrh r0, [r1, 0xC] + negs r0, r0 + strh r0, [r1, 0xC] +_080AFE1C: + 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 +_080AFE2C: .4byte gTasks + thumb_func_end sub_80AFC74 + + thumb_func_start sub_80AFE30 +sub_80AFE30: @ 80AFE30 + push {r4,r5,lr} + ldr r0, _080AFE64 @ =gUnknown_083CA350 + bl LoadSpriteSheet + movs r4, 0 + ldr r5, _080AFE68 @ =gUnknown_083CA338 +_080AFE3C: + ldr r0, _080AFE6C @ =gUnknown_02038696 + adds r0, r4, r0 + ldrb r0, [r0] + adds r0, r5 + ldrb r2, [r0] + ldr r0, _080AFE70 @ =gSpriteTemplate_83CA3AC + movs r1, 0xB4 + movs r3, 0x1 + bl CreateSprite + lsls r1, r4, 2 + ldr r2, _080AFE74 @ =0x02019338 + adds r1, r2 + strb r0, [r1] + adds r4, 0x1 + cmp r4, 0x3 + ble _080AFE3C + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080AFE64: .4byte gUnknown_083CA350 +_080AFE68: .4byte gUnknown_083CA338 +_080AFE6C: .4byte gUnknown_02038696 +_080AFE70: .4byte gSpriteTemplate_83CA3AC +_080AFE74: .4byte 0x02019338 + thumb_func_end sub_80AFE30 + + thumb_func_start sub_80AFE78 +sub_80AFE78: @ 80AFE78 + push {r4-r7,lr} + lsls r0, 24 + lsrs r6, r0, 24 + lsls r2, r6, 2 + ldr r3, _080AFEB0 @ =0x02019338 + adds r2, r3 + ldrb r0, [r2, 0x2] + movs r1, 0x1 + orrs r0, r1 + strb r0, [r2, 0x2] + ldrb r7, [r2] + lsls r0, r6, 3 + subs r0, r6 + lsls r0, 2 + subs r3, 0xD8 + adds r0, r3 + movs r1, 0x4 + ldrsh r0, [r0, r1] + movs r1, 0xA + bl __divsi3 + lsls r0, 17 + lsrs r5, r0, 16 + asrs r0, 16 + cmp r0, 0x38 + ble _080AFEB4 + movs r5, 0x38 + b _080AFEBA + .align 2, 0 +_080AFEB0: .4byte 0x02019338 +_080AFEB4: + cmp r0, 0 + bge _080AFEBA + movs r5, 0 +_080AFEBA: + ldr r2, _080AFEEC @ =gSprites + lsls r3, r7, 4 + adds r0, r3, r7 + lsls r0, 2 + adds r4, r0, r2 + movs r0, 0x3E + adds r0, r4 + mov r12, r0 + ldrb r1, [r0] + movs r0, 0x5 + negs r0, r0 + ands r0, r1 + mov r1, r12 + strb r0, [r1] + strh r6, [r4, 0x2E] + strh r5, [r4, 0x30] + lsls r0, r5, 16 + asrs r0, 16 + movs r5, 0x24 + ldrsh r1, [r4, r5] + cmp r0, r1 + ble _080AFEF0 + movs r0, 0x1 + b _080AFEF2 + .align 2, 0 +_080AFEEC: .4byte gSprites +_080AFEF0: + ldr r0, _080AFF08 @ =0x0000ffff +_080AFEF2: + strh r0, [r4, 0x32] + adds r0, r3, r7 + lsls r0, 2 + adds r1, r2, 0 + adds r1, 0x1C + adds r0, r1 + ldr r1, _080AFF0C @ =sub_80AFF60 + str r1, [r0] + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080AFF08: .4byte 0x0000ffff +_080AFF0C: .4byte sub_80AFF60 + thumb_func_end sub_80AFE78 + + thumb_func_start sub_80AFF10 +sub_80AFF10: @ 80AFF10 + push {r4,lr} + movs r4, 0 +_080AFF14: + lsls r0, r4, 24 + lsrs r0, 24 + bl sub_80AFE78 + adds r4, 0x1 + cmp r4, 0x3 + ble _080AFF14 + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80AFF10 + + thumb_func_start sub_80AFF28 +sub_80AFF28: @ 80AFF28 + push {r4,lr} + movs r3, 0 + ldr r2, _080AFF54 @ =0x02019338 + ldrb r1, [r2, 0x2] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + bne _080AFF4C + movs r4, 0x1 +_080AFF3A: + adds r2, 0x4 + adds r3, 0x1 + cmp r3, 0x3 + bgt _080AFF4C + ldrb r1, [r2, 0x2] + adds r0, r4, 0 + ands r0, r1 + cmp r0, 0 + beq _080AFF3A +_080AFF4C: + cmp r3, 0x4 + beq _080AFF58 + movs r0, 0 + b _080AFF5A + .align 2, 0 +_080AFF54: .4byte 0x02019338 +_080AFF58: + movs r0, 0x1 +_080AFF5A: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_80AFF28 + + thumb_func_start sub_80AFF60 +sub_80AFF60: @ 80AFF60 + push {r4,lr} + adds r3, r0, 0 + ldrh r2, [r3, 0x24] + movs r0, 0x24 + ldrsh r1, [r3, r0] + movs r4, 0x30 + ldrsh r0, [r3, r4] + cmp r1, r0 + bne _080AFF94 + movs r0, 0x2E + ldrsh r1, [r3, r0] + lsls r1, 2 + ldr r0, _080AFF8C @ =0x02019338 + adds r1, r0 + ldrb r2, [r1, 0x2] + movs r0, 0x2 + negs r0, r0 + ands r0, r2 + strb r0, [r1, 0x2] + ldr r0, _080AFF90 @ =SpriteCallbackDummy + str r0, [r3, 0x1C] + b _080AFF9A + .align 2, 0 +_080AFF8C: .4byte 0x02019338 +_080AFF90: .4byte SpriteCallbackDummy +_080AFF94: + ldrh r0, [r3, 0x32] + adds r0, r2, r0 + strh r0, [r3, 0x24] +_080AFF9A: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80AFF60 + + thumb_func_start sub_80AFFA0 +sub_80AFFA0: @ 80AFFA0 + push {r4-r6,lr} + movs r2, 0 + ldr r6, _080AFFD0 @ =gSprites + ldr r5, _080AFFD4 @ =gUnknown_083CA338 + ldr r3, _080AFFD8 @ =0x02019338 + ldr r4, _080AFFDC @ =gUnknown_02038696 +_080AFFAC: + ldrb r0, [r3] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r6 + adds r0, r2, r4 + ldrb r0, [r0] + adds r0, r5 + ldrb r0, [r0] + strh r0, [r1, 0x22] + adds r3, 0x4 + adds r2, 0x1 + cmp r2, 0x3 + ble _080AFFAC + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080AFFD0: .4byte gSprites +_080AFFD4: .4byte gUnknown_083CA338 +_080AFFD8: .4byte 0x02019338 +_080AFFDC: .4byte gUnknown_02038696 + thumb_func_end sub_80AFFA0 + + thumb_func_start sub_80AFFE0 +sub_80AFFE0: @ 80AFFE0 + push {r4-r6,lr} + lsls r0, 24 + lsrs r5, r0, 24 + movs r3, 0 + ldr r6, _080B0008 @ =gUnknown_02038696 + ldr r4, _080B000C @ =gSprites + ldr r2, _080B0010 @ =0x02019338 +_080AFFEE: + adds r0, r3, r6 + ldrb r0, [r0] + cmp r0, 0x1 + bls _080B0024 + cmp r5, 0 + bne _080B0014 + ldrb r0, [r2] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r4 + movs r0, 0xB4 + b _080B0022 + .align 2, 0 +_080B0008: .4byte gUnknown_02038696 +_080B000C: .4byte gSprites +_080B0010: .4byte 0x02019338 +_080B0014: + ldrb r0, [r2] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r4 + movs r0, 0x80 + lsls r0, 1 +_080B0022: + strh r0, [r1, 0x20] +_080B0024: + adds r2, 0x4 + adds r3, 0x1 + cmp r3, 0x3 + ble _080AFFEE + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_80AFFE0 + + thumb_func_start sub_80B0034 +sub_80B0034: @ 80B0034 + push {r4-r7,lr} + mov r7, r8 + push {r7} + ldr r0, _080B00A8 @ =gUnknown_083CA3E4 + bl LoadSpritePalette + movs r5, 0 + ldr r0, _080B00AC @ =gUnknown_083CA33C + mov r8, r0 + ldr r7, _080B00B0 @ =gSprites + movs r6, 0 +_080B004A: + lsls r0, r5, 3 + ldr r1, _080B00B4 @ =gUnknown_083CA3C4 + adds r0, r1 + bl LoadCompressedObjectPic + ldr r0, _080B00B8 @ =gSpriteTemplate_83CA3F4 + adds r0, r6, r0 + ldr r1, _080B00BC @ =gUnknown_02038696 + adds r1, r5, r1 + ldrb r1, [r1] + add r1, r8 + ldrb r2, [r1] + movs r1, 0xCC + movs r3, 0 + bl CreateSprite + lsls r4, r5, 2 + ldr r1, _080B00C0 @ =0x02019338 + adds r4, r1 + strb r0, [r4, 0x1] + ldrb r1, [r4, 0x1] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r7 + ldr r1, _080B00C4 @ =gUnknown_083CA464 + bl SetSubspriteTables + ldrb r1, [r4, 0x1] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r7 + adds r0, 0x3E + ldrb r1, [r0] + movs r2, 0x4 + orrs r1, r2 + strb r1, [r0] + adds r6, 0x18 + adds r5, 0x1 + cmp r5, 0x3 + ble _080B004A + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080B00A8: .4byte gUnknown_083CA3E4 +_080B00AC: .4byte gUnknown_083CA33C +_080B00B0: .4byte gSprites +_080B00B4: .4byte gUnknown_083CA3C4 +_080B00B8: .4byte gSpriteTemplate_83CA3F4 +_080B00BC: .4byte gUnknown_02038696 +_080B00C0: .4byte 0x02019338 +_080B00C4: .4byte gUnknown_083CA464 + thumb_func_end sub_80B0034 + + thumb_func_start sub_80B00C8 +sub_80B00C8: @ 80B00C8 + push {lr} + ldr r0, _080B0104 @ =gUnknown_083CA46C + bl LoadCompressedObjectPic + ldr r0, _080B0108 @ =gUnknown_083CA474 + bl LoadSpritePalette + ldr r0, _080B010C @ =gSpriteTemplate_83CA484 + movs r1, 0x1E + movs r2, 0x2C + movs r3, 0x1 + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080B0110 @ =gSprites + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r2 + adds r1, 0x3E + ldrb r2, [r1] + movs r3, 0x4 + orrs r2, r3 + strb r2, [r1] + ldr r1, _080B0114 @ =0x02019204 + adds r1, 0x58 + strb r0, [r1] + pop {r0} + bx r0 + .align 2, 0 +_080B0104: .4byte gUnknown_083CA46C +_080B0108: .4byte gUnknown_083CA474 +_080B010C: .4byte gSpriteTemplate_83CA484 +_080B0110: .4byte gSprites +_080B0114: .4byte 0x02019204 + thumb_func_end sub_80B00C8 + + thumb_func_start nullsub_18 +nullsub_18: @ 80B0118 + bx lr + thumb_func_end nullsub_18 + + thumb_func_start unref_sub_80B011C +unref_sub_80B011C: @ 80B011C + push {r4-r7,lr} + mov r7, r8 + push {r7} + ldr r0, _080B0198 @ =gUnknown_083CC3AC + bl LoadCompressedObjectPic + movs r4, 0 + ldr r5, _080B019C @ =gUnknown_083CC3B4 +_080B012C: + lsls r0, r4, 3 + adds r0, r5 + bl LoadCompressedObjectPalette + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x3 + bls _080B012C + movs r4, 0 + ldr r5, _080B01A0 @ =gUnknown_083CA330 + adds r0, r5, 0x1 + mov r8, r0 + ldr r7, _080B01A4 @ =gSprites + ldr r6, _080B01A8 @ =0x0201920d +_080B014A: + lsls r2, r4, 1 + adds r0, r2, r4 + lsls r0, 3 + ldr r1, _080B01AC @ =gSpriteTemplate_83CC454 + adds r0, r1 + adds r1, r2, r5 + ldrb r1, [r1] + add r2, r8 + ldrb r2, [r2] + movs r3, 0x5 + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r7 + movs r2, 0x3E + adds r2, r1 + mov r12, r2 + ldrb r2, [r2] + movs r3, 0x4 + orrs r2, r3 + mov r3, r12 + strb r2, [r3] + strh r4, [r1, 0x2E] + adds r1, r4, r6 + strb r0, [r1] + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x3 + bls _080B014A + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080B0198: .4byte gUnknown_083CC3AC +_080B019C: .4byte gUnknown_083CC3B4 +_080B01A0: .4byte gUnknown_083CA330 +_080B01A4: .4byte gSprites +_080B01A8: .4byte 0x0201920d +_080B01AC: .4byte gSpriteTemplate_83CC454 + thumb_func_end unref_sub_80B011C + + thumb_func_start unref_sub_80B01B0 +unref_sub_80B01B0: @ 80B01B0 + push {r4,r5,lr} + movs r2, 0 + ldr r5, _080B01D4 @ =0x0201920d + ldr r4, _080B01D8 @ =gSprites + 0x1C + ldr r3, _080B01DC @ =ObjectCB_SwitchPocketRotatingBallInit +_080B01BA: + adds r0, r2, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + str r3, [r0] + adds r2, 0x1 + cmp r2, 0x3 + ble _080B01BA + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080B01D4: .4byte 0x0201920d +_080B01D8: .4byte gSprites + 0x1C +_080B01DC: .4byte sub_80B0238 + thumb_func_end unref_sub_80B01B0 + + thumb_func_start unref_sub_80B01E0 +unref_sub_80B01E0: @ 80B01E0 + push {r4,r5,lr} + movs r3, 0 + ldr r2, _080B0224 @ =gSprites + ldr r4, _080B0228 @ =0x02019204 + ldrb r1, [r4, 0x9] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r2, 0x1C + adds r0, r2 + ldr r1, [r0] + ldr r0, _080B022C @ =SpriteCallbackDummy + cmp r1, r0 + bne _080B021A + adds r5, r4, 0 + adds r5, 0x9 + adds r4, r1, 0 +_080B0202: + adds r3, 0x1 + cmp r3, 0x3 + bgt _080B021A + adds r0, r3, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldr r0, [r0] + cmp r0, r4 + beq _080B0202 +_080B021A: + cmp r3, 0x4 + beq _080B0230 + movs r0, 0 + b _080B0232 + .align 2, 0 +_080B0224: .4byte gSprites +_080B0228: .4byte 0x02019204 +_080B022C: .4byte SpriteCallbackDummy +_080B0230: + movs r0, 0x1 +_080B0232: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end unref_sub_80B01E0 + + thumb_func_start sub_80B0238 +sub_80B0238: @ 80B0238 + push {r4,lr} + adds r4, r0, 0 + ldrb r1, [r4, 0x1] + movs r0, 0x4 + negs r0, r0 + ands r0, r1 + movs r1, 0x1 + orrs r0, r1 + strb r0, [r4, 0x1] + adds r0, r4, 0 + bl InitSpriteAffineAnim + adds r0, r4, 0 + adds r0, 0x3E + ldrb r1, [r0] + movs r0, 0x4 + ands r0, r1 + cmp r0, 0 + beq _080B0268 + ldr r0, _080B0264 @ =sub_80B02A8 + b _080B0272 + .align 2, 0 +_080B0264: .4byte sub_80B02A8 +_080B0268: + adds r0, r4, 0 + movs r1, 0x1 + bl StartSpriteAffineAnim + ldr r0, _080B027C @ =sub_80B0280 +_080B0272: + str r0, [r4, 0x1C] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080B027C: .4byte sub_80B0280 + thumb_func_end sub_80B0238 + + thumb_func_start sub_80B0280 +sub_80B0280: @ 80B0280 + push {lr} + adds r3, r0, 0 + adds r0, 0x3F + ldrb r1, [r0] + movs r0, 0x20 + ands r0, r1 + cmp r0, 0 + beq _080B02A0 + adds r2, r3, 0 + adds r2, 0x3E + ldrb r0, [r2] + movs r1, 0x4 + orrs r0, r1 + strb r0, [r2] + ldr r0, _080B02A4 @ =sub_80B02A8 + str r0, [r3, 0x1C] +_080B02A0: + pop {r0} + bx r0 + .align 2, 0 +_080B02A4: .4byte sub_80B02A8 + thumb_func_end sub_80B0280 + + thumb_func_start sub_80B02A8 +sub_80B02A8: @ 80B02A8 + push {r4,lr} + adds r4, r0, 0 + adds r2, r4, 0 + adds r2, 0x3E + ldrb r1, [r2] + movs r0, 0x5 + negs r0, r0 + ands r0, r1 + strb r0, [r2] + movs r0, 0x2E + ldrsh r1, [r4, r0] + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + ldr r1, _080B02EC @ =0x02019260 + adds r0, r1 + ldrb r1, [r0, 0xB] + lsls r1, 30 + lsrs r1, 30 + adds r0, r4, 0 + bl StartSpriteAnim + adds r0, r4, 0 + movs r1, 0x2 + bl StartSpriteAffineAnim + ldr r0, _080B02F0 @ =sub_80B02F4 + str r0, [r4, 0x1C] + movs r0, 0x18 + bl PlaySE + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080B02EC: .4byte 0x02019260 +_080B02F0: .4byte sub_80B02F4 + thumb_func_end sub_80B02A8 + + thumb_func_start sub_80B02F4 +sub_80B02F4: @ 80B02F4 + push {r4,lr} + adds r4, r0, 0 + adds r0, 0x3F + ldrb r1, [r0] + movs r0, 0x20 + ands r0, r1 + cmp r0, 0 + beq _080B0318 + adds r0, r4, 0 + bl FreeSpriteOamMatrix + ldrb r0, [r4, 0x1] + movs r1, 0x4 + negs r1, r1 + ands r1, r0 + strb r1, [r4, 0x1] + ldr r0, _080B0320 @ =SpriteCallbackDummy + str r0, [r4, 0x1C] +_080B0318: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080B0320: .4byte SpriteCallbackDummy + thumb_func_end sub_80B02F4 + + thumb_func_start sub_80B0324 +sub_80B0324: @ 80B0324 + push {r4,lr} + ldr r0, _080B035C @ =sub_80B0458 + movs r1, 0x1E + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + ldr r1, _080B0360 @ =0x02019204 + strb r0, [r1, 0xD] + movs r2, 0 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + ldr r4, _080B0364 @ =gTasks + 0x8 + movs r3, 0xFF +_080B0342: + lsls r0, r2, 3 + adds r0, r1 + adds r0, r4 + strh r3, [r0] + adds r0, r2, 0x1 + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0x3 + bls _080B0342 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080B035C: .4byte sub_80B0458 +_080B0360: .4byte 0x02019204 +_080B0364: .4byte gTasks + 0x8 + thumb_func_end sub_80B0324 + + thumb_func_start sub_80B0368 +sub_80B0368: @ 80B0368 + push {r4,r5,lr} + lsls r0, 24 + lsrs r0, 24 + ldr r3, _080B03A0 @ =gTasks + ldr r5, _080B03A4 @ =0x02019204 + ldrb r2, [r5, 0xD] + lsls r1, r2, 2 + adds r1, r2 + adds r1, r0 + lsls r1, 3 + adds r3, 0x8 + adds r1, r3 + movs r4, 0 + strh r4, [r1] + lsls r0, 2 + adds r0, 0x1 + lsls r0, 1 + ldrb r2, [r5, 0xD] + lsls r1, r2, 2 + adds r1, r2 + lsls r1, 3 + adds r0, r1 + adds r0, r3 + strh r4, [r0] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080B03A0: .4byte gTasks +_080B03A4: .4byte 0x02019204 + thumb_func_end sub_80B0368 + + thumb_func_start sub_80B03A8 +sub_80B03A8: @ 80B03A8 + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldr r0, _080B03D0 @ =sub_80B03D8 + movs r1, 0x1F + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080B03D4 @ =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + strh r4, [r1, 0x8] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080B03D0: .4byte sub_80B03D8 +_080B03D4: .4byte gTasks + thumb_func_end sub_80B03A8 + + thumb_func_start sub_80B03D8 +sub_80B03D8: @ 80B03D8 + push {r4-r7,lr} + lsls r0, 24 + lsrs r0, 24 + adds r5, r0, 0 + ldr r2, _080B044C @ =gTasks + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r0, r2 + ldrb r0, [r0, 0x8] + adds r4, r0, 0 + ldr r6, _080B0450 @ =0x02019204 + ldrb r1, [r6, 0xD] + lsls r0, r1, 2 + adds r0, r1 + adds r0, r4 + lsls r0, 3 + adds r7, r2, 0 + adds r7, 0x8 + adds r1, r0, r7 + movs r2, 0 + ldrsh r0, [r1, r2] + cmp r0, 0 + beq _080B040C + cmp r0, 0xFF + bne _080B0444 +_080B040C: + movs r3, 0 + movs r0, 0xFF + strh r0, [r1] + lsls r1, r4, 2 + adds r1, 0x1 + lsls r1, 1 + ldrb r2, [r6, 0xD] + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + adds r1, r0 + adds r1, r7 + strh r3, [r1] + adds r0, r6, 0 + adds r0, 0x14 + adds r0, r4, r0 + ldrb r0, [r0] + adds r0, 0x5 + lsls r0, 4 + adds r0, 0x6 + ldr r3, _080B0454 @ =0x00004bff + movs r1, 0x2 + movs r2, 0 + bl BlendPalette + adds r0, r5, 0 + bl DestroyTask +_080B0444: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080B044C: .4byte gTasks +_080B0450: .4byte 0x02019204 +_080B0454: .4byte 0x00004bff + thumb_func_end sub_80B03D8 + + thumb_func_start sub_80B0458 +sub_80B0458: @ 80B0458 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + lsls r0, 24 + lsrs r0, 24 + movs r6, 0 + lsls r1, r0, 2 + adds r1, r0 + mov r9, r1 + lsls r7, r1, 3 + ldr r0, _080B04A8 @ =gTasks + 0x8 + mov r8, r0 + movs r1, 0x8 + negs r1, r1 + add r1, r8 + mov r10, r1 +_080B047C: + lsls r0, r6, 26 + lsrs r3, r0, 24 + lsls r0, r3, 1 + adds r0, r7 + mov r4, r8 + adds r2, r0, r4 + ldrh r4, [r2] + movs r5, 0 + ldrsh r0, [r2, r5] + cmp r0, 0xFF + beq _080B04F6 + adds r0, r3, 0x1 + lsls r1, r0, 1 + adds r1, r7 + add r1, r8 + movs r5, 0 + ldrsh r1, [r1, r5] + adds r5, r0, 0 + cmp r1, 0 + bne _080B04AC + adds r0, r4, 0x1 + b _080B04AE + .align 2, 0 +_080B04A8: .4byte gTasks + 0x8 +_080B04AC: + subs r0, r4, 0x1 +_080B04AE: + strh r0, [r2] + lsls r1, r3, 1 + mov r0, r9 + lsls r2, r0, 3 + adds r0, r1, r2 + mov r3, r10 + adds r3, 0x8 + adds r0, r3 + movs r4, 0 + ldrsh r0, [r0, r4] + adds r4, r1, 0 + cmp r0, 0x10 + beq _080B04CC + cmp r0, 0 + bne _080B04DA +_080B04CC: + lsls r0, r5, 1 + adds r0, r2 + adds r0, r3 + ldrh r1, [r0] + movs r2, 0x1 + eors r1, r2 + strh r1, [r0] +_080B04DA: + ldr r0, _080B0510 @ =0x02019204 + adds r0, 0x14 + adds r0, r6, r0 + ldrb r0, [r0] + adds r0, 0x5 + lsls r0, 4 + adds r0, 0x6 + adds r1, r4, r7 + add r1, r8 + ldrb r2, [r1] + movs r1, 0x2 + ldr r3, _080B0514 @ =0x00004bff + bl BlendPalette +_080B04F6: + adds r0, r6, 0x1 + lsls r0, 24 + lsrs r6, r0, 24 + cmp r6, 0x3 + bls _080B047C + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080B0510: .4byte 0x02019204 +_080B0514: .4byte 0x00004bff + thumb_func_end sub_80B0458 + + thumb_func_start sub_80B0518 +sub_80B0518: @ 80B0518 + push {r4,lr} + ldr r0, _080B0540 @ =sub_80B05FC + movs r1, 0x1E + bl CreateTask + ldr r1, _080B0544 @ =0x02019204 + strb r0, [r1, 0xE] + movs r4, 0 +_080B0528: + adds r0, r4, 0 + bl sub_80B0548 + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x3 + bls _080B0528 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080B0540: .4byte sub_80B05FC +_080B0544: .4byte 0x02019204 + thumb_func_end sub_80B0518 + + thumb_func_start sub_80B0548 +sub_80B0548: @ 80B0548 + push {r4,r5,lr} + lsls r0, 24 + lsrs r0, 24 + ldr r3, _080B0580 @ =gTasks + ldr r4, _080B0584 @ =0x02019204 + ldrb r2, [r4, 0xE] + lsls r1, r2, 2 + adds r1, r2 + adds r1, r0 + lsls r1, 3 + adds r3, 0x8 + adds r1, r3 + movs r5, 0 + movs r2, 0xFF + strh r2, [r1] + lsls r0, 2 + adds r0, 0x1 + lsls r0, 1 + ldrb r2, [r4, 0xE] + lsls r1, r2, 2 + adds r1, r2 + lsls r1, 3 + adds r0, r1 + adds r0, r3 + strh r5, [r0] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080B0580: .4byte gTasks +_080B0584: .4byte 0x02019204 + thumb_func_end sub_80B0548 + + thumb_func_start sub_80B0588 +sub_80B0588: @ 80B0588 + push {r4,lr} + movs r4, 0 +_080B058C: + adds r0, r4, 0 + bl sub_80B05A4 + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x3 + bls _080B058C + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80B0588 + + thumb_func_start sub_80B05A4 +sub_80B05A4: @ 80B05A4 + push {r4-r6,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + adds r0, r4, 0 + bl sub_80B0548 + adds r0, r4, 0x5 + lsls r2, r0, 5 + ldr r3, _080B05E8 @ =gPlttBufferUnfaded + 0x14 + adds r6, r2, r3 + ldr r5, _080B05EC @ =gPlttBufferFaded + 0x14 + adds r2, r5 + ldr r1, _080B05F0 @ =0x040000d4 + str r6, [r1] + str r2, [r1, 0x4] + ldr r2, _080B05F4 @ =0x80000001 + str r2, [r1, 0x8] + ldr r6, [r1, 0x8] + lsls r0, 4 + adds r4, 0xC + adds r0, r4 + lsls r0, 1 + subs r3, 0x14 + adds r3, r0, r3 + subs r5, 0x14 + adds r0, r5 + str r3, [r1] + str r0, [r1, 0x4] + str r2, [r1, 0x8] + ldr r0, [r1, 0x8] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080B05E8: .4byte gPlttBufferUnfaded + 0x14 +_080B05EC: .4byte gPlttBufferFaded + 0x14 +_080B05F0: .4byte 0x040000d4 +_080B05F4: .4byte 0x80000001 + thumb_func_end sub_80B05A4 + + thumb_func_start nullsub_19 +nullsub_19: @ 80B05F8 + bx lr + thumb_func_end nullsub_19 + + thumb_func_start sub_80B05FC +sub_80B05FC: @ 80B05FC + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + lsls r0, 24 + lsrs r0, 24 + movs r7, 0 + lsls r1, r0, 2 + adds r1, r0 + mov r9, r1 + lsls r6, r1, 3 + ldr r0, _080B0664 @ =gTasks + 0x8 + mov r8, r0 + ldr r1, _080B0668 @ =0x00004bff + mov r10, r1 +_080B061C: + lsls r0, r7, 26 + lsrs r3, r0, 24 + lsls r0, r3, 1 + adds r0, r6 + mov r4, r8 + adds r2, r0, r4 + movs r5, 0 + ldrsh r0, [r2, r5] + cmp r0, 0xFF + beq _080B06C2 + adds r0, r3, 0x2 + lsls r0, 1 + adds r0, r6 + adds r1, r0, r4 + ldrh r0, [r1] + adds r0, 0x1 + movs r4, 0 + strh r0, [r1] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x2 + ble _080B06C2 + strh r4, [r1] + adds r0, r3, 0x1 + lsls r1, r0, 1 + adds r1, r6 + add r1, r8 + movs r4, 0 + ldrsh r1, [r1, r4] + adds r4, r0, 0 + cmp r1, 0 + bne _080B066C + ldrh r0, [r2] + adds r0, 0x1 + b _080B0670 + .align 2, 0 +_080B0664: .4byte gTasks + 0x8 +_080B0668: .4byte 0x00004bff +_080B066C: + ldrh r0, [r2] + subs r0, 0x1 +_080B0670: + strh r0, [r2] + lsls r1, r3, 1 + mov r5, r9 + lsls r2, r5, 3 + adds r0, r1, r2 + ldr r3, _080B06DC @ =gTasks + adds r3, 0x8 + adds r0, r3 + movs r5, 0 + ldrsh r0, [r0, r5] + adds r5, r1, 0 + cmp r0, 0x10 + beq _080B068E + cmp r0, 0 + bne _080B069C +_080B068E: + lsls r0, r4, 1 + adds r0, r2 + adds r0, r3 + ldrh r1, [r0] + movs r2, 0x1 + eors r1, r2 + strh r1, [r0] +_080B069C: + adds r4, r7, 0x5 + lsls r4, 4 + adds r0, r4, 0 + adds r0, 0xA + adds r5, r6 + add r5, r8 + ldrb r2, [r5] + movs r1, 0x1 + mov r3, r10 + bl BlendPalette + adds r4, 0xC + adds r4, r7 + ldrb r2, [r5] + adds r0, r4, 0 + movs r1, 0x1 + mov r3, r10 + bl BlendPalette +_080B06C2: + adds r0, r7, 0x1 + lsls r0, 24 + lsrs r7, r0, 24 + cmp r7, 0x3 + bls _080B061C + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080B06DC: .4byte gTasks + thumb_func_end sub_80B05FC + + thumb_func_start unref_sub_80B06E0 +unref_sub_80B06E0: @ 80B06E0 + push {r4-r7,lr} + mov r7, r8 + push {r7} + adds r7, r0, 0 + ldr r0, _080B073C @ =sub_80B0748 + movs r1, 0xA + bl CreateTask + lsls r0, 24 + lsrs r5, r0, 24 + movs r3, 0 + lsls r0, r5, 2 + adds r0, r5 + lsls r6, r0, 3 + ldr r0, _080B0740 @ =gTasks + 0x8 + mov r8, r0 + ldr r1, _080B0744 @ =0x02019338 + mov r12, r1 +_080B0704: + lsls r4, r3, 2 + lsls r0, r3, 26 + lsrs r0, 23 + adds r0, r6 + add r0, r8 + adds r2, r7, r3 + ldrb r1, [r2] + strh r1, [r0] + ldrb r0, [r2] + cmp r0, 0 + beq _080B0726 + mov r1, r12 + adds r0, r4, r1 + ldrb r1, [r0, 0x2] + movs r2, 0x2 + orrs r1, r2 + strb r1, [r0, 0x2] +_080B0726: + adds r0, r3, 0x1 + lsls r0, 24 + lsrs r3, r0, 24 + cmp r3, 0x3 + bls _080B0704 + adds r0, r5, 0 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_080B073C: .4byte sub_80B0748 +_080B0740: .4byte gTasks + 0x8 +_080B0744: .4byte 0x02019338 + thumb_func_end unref_sub_80B06E0 + + thumb_func_start sub_80B0748 +sub_80B0748: @ 80B0748 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x20 + lsls r0, 24 + lsrs r0, 24 + str r0, [sp] + movs r0, 0 + str r0, [sp, 0x4] + ldr r2, _080B07F4 @ =gTasks + movs r1, 0x8 + adds r1, r2 + mov r10, r1 + ldr r3, [sp] + lsls r3, 2 + str r3, [sp, 0x1C] + ldr r1, [sp] + adds r0, r3, r1 + lsls r0, 3 + str r0, [sp, 0xC] +_080B0774: + ldr r0, _080B07F8 @ =gUnknown_02038696 + ldr r3, [sp, 0x4] + adds r0, r3, r0 + ldrb r4, [r0] + lsls r0, r4, 26 + lsrs r1, r0, 24 + lsls r0, r1, 1 + str r0, [sp, 0x8] + ldr r3, [sp] + lsls r0, r3, 2 + adds r0, r3 + lsls r6, r0, 3 + ldr r3, [sp, 0x8] + adds r0, r3, r6 + add r0, r10 + mov r9, r0 + ldrb r7, [r0] + cmp r7, 0 + bne _080B079C + b _080B0910 +_080B079C: + adds r3, r1, 0x1 + lsls r0, r3, 1 + adds r0, r6 + add r0, r10 + ldrb r0, [r0] + mov r8, r0 + adds r2, r1, 0x2 + lsls r0, r2, 1 + adds r0, r6 + add r0, r10 + ldrb r5, [r0] + adds r1, 0x3 + lsls r0, r1, 1 + adds r0, r6 + add r0, r10 + ldrb r6, [r0] + str r3, [sp, 0x10] + str r2, [sp, 0x14] + str r1, [sp, 0x18] + cmp r7, 0x1 + bne _080B0818 + adds r0, r6, 0x1 + lsls r0, 24 + lsrs r6, r0, 24 + cmp r6, 0x1 + beq _080B07D2 + b _080B08EA +_080B07D2: + movs r6, 0 + adds r0, r4, 0x5 + lsls r0, 4 + adds r0, 0x1 + movs r1, 0x3 + adds r2, r5, 0 + ldr r3, _080B07FC @ =0x00007fff + bl BlendPalette + cmp r5, 0 + bne _080B0800 + mov r0, r8 + cmp r0, 0x4 + bne _080B0800 + mov r1, r9 + strh r6, [r1] + b _080B08EA + .align 2, 0 +_080B07F4: .4byte gTasks +_080B07F8: .4byte gUnknown_02038696 +_080B07FC: .4byte 0x00007fff +_080B0800: + adds r0, r5, 0x2 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0xD + bls _080B08EA + movs r5, 0 + mov r0, r8 + adds r0, 0x1 + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + b _080B08EA +_080B0818: + cmp r7, 0x2 + beq _080B0820 + cmp r7, 0x4 + bne _080B0896 +_080B0820: + adds r0, r6, 0x1 + lsls r0, 24 + lsrs r6, r0, 24 + cmp r6, 0x3 + bne _080B08EA + movs r6, 0 + adds r0, r4, 0x5 + lsls r0, 4 + adds r0, 0x1 + ldr r2, _080B0854 @ =gUnknown_083CC5A4 + lsls r1, r4, 1 + adds r1, r2 + ldrh r3, [r1] + movs r1, 0x3 + adds r2, r5, 0 + bl BlendPalette + cmp r5, 0 + bne _080B0858 + mov r2, r8 + cmp r2, 0x2 + bne _080B0858 + mov r3, r9 + strh r6, [r3] + b _080B08EA + .align 2, 0 +_080B0854: .4byte gUnknown_083CC5A4 +_080B0858: + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0xE + bne _080B08EA + movs r5, 0 + mov r0, r8 + adds r0, 0x1 + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + cmp r7, 0x4 + bne _080B08EA + cmp r0, 0x1 + bne _080B08EA + adds r4, 0x9 + lsls r4, 4 + adds r0, r4, 0x2 + movs r1, 0x1 + movs r2, 0x4 + movs r3, 0 + bl BlendPalette + adds r4, 0x5 + adds r0, r4, 0 + movs r1, 0x1 + movs r2, 0x4 + movs r3, 0 + bl BlendPalette + b _080B08EA +_080B0896: + cmp r7, 0x3 + bne _080B08EA + adds r0, r6, 0x1 + lsls r0, 24 + lsrs r6, r0, 24 + cmp r6, 0xC + bne _080B08EA + movs r6, 0 + adds r0, r4, 0x5 + lsls r0, 4 + adds r4, r0, 0x1 + adds r0, r4, 0 + movs r1, 0x3 + adds r2, r5, 0 + movs r3, 0 + bl BlendPalette + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0x5 + bne _080B08EA + ldr r0, _080B0930 @ =gPlttBufferFaded + lsls r1, r4, 1 + adds r0, r1, r0 + ldrh r2, [r0] + ldr r0, _080B0934 @ =gPlttBufferUnfaded + adds r1, r0 + ldrh r0, [r1] + ldr r1, _080B0938 @ =0x040000d4 + str r2, [r1] + str r0, [r1, 0x4] + movs r0, 0x80 + lsls r0, 24 + orrs r7, r0 + str r7, [r1, 0x8] + ldr r0, [r1, 0x8] + ldr r1, [sp, 0x8] + ldr r2, [sp, 0xC] + adds r0, r1, r2 + add r0, r10 + strh r6, [r0] +_080B08EA: + ldr r3, [sp, 0x10] + lsls r0, r3, 1 + ldr r1, [sp, 0xC] + adds r0, r1 + add r0, r10 + mov r2, r8 + strh r2, [r0] + ldr r3, [sp, 0x14] + lsls r0, r3, 1 + adds r0, r1 + add r0, r10 + strh r5, [r0] + ldr r1, [sp, 0x18] + lsls r0, r1, 1 + ldr r2, [sp, 0xC] + adds r0, r2 + add r0, r10 + strh r6, [r0] + ldr r2, _080B093C @ =gTasks +_080B0910: + ldr r0, [sp, 0x4] + adds r0, 0x1 + lsls r0, 24 + lsrs r0, 24 + str r0, [sp, 0x4] + cmp r0, 0x3 + bhi _080B0920 + b _080B0774 +_080B0920: + movs r4, 0 + ldr r3, [sp, 0x1C] + ldr r1, [sp] + adds r0, r3, r1 + lsls r1, r0, 3 + adds r2, 0x8 + adds r0, r1, r2 + b _080B0950 + .align 2, 0 +_080B0930: .4byte gPlttBufferFaded +_080B0934: .4byte gPlttBufferUnfaded +_080B0938: .4byte 0x040000d4 +_080B093C: .4byte gTasks +_080B0940: + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x3 + bhi _080B0958 + lsls r0, r4, 3 + adds r0, r1 + adds r0, r2 +_080B0950: + movs r3, 0 + ldrsh r0, [r0, r3] + cmp r0, 0 + beq _080B0940 +_080B0958: + cmp r4, 0x4 + bne _080B0980 + movs r4, 0 + ldr r3, _080B0990 @ =0x02019338 + movs r5, 0x3 + negs r5, r5 +_080B0964: + lsls r1, r4, 2 + adds r1, r3 + ldrb r2, [r1, 0x2] + adds r0, r5, 0 + ands r0, r2 + strb r0, [r1, 0x2] + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x3 + bls _080B0964 + ldr r0, [sp] + bl DestroyTask +_080B0980: + add sp, 0x20 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080B0990: .4byte 0x02019338 + thumb_func_end sub_80B0748 + + thumb_func_start unref_sub_80B0994 +unref_sub_80B0994: @ 80B0994 + push {lr} + lsls r0, 24 + cmp r0, 0 + beq _080B09A6 + ldr r0, _080B09AC @ =0x02019204 + ldrb r1, [r0, 0x6] + movs r2, 0x4 + orrs r1, r2 + strb r1, [r0, 0x6] +_080B09A6: + pop {r0} + bx r0 + .align 2, 0 +_080B09AC: .4byte 0x02019204 + thumb_func_end unref_sub_80B0994 + + thumb_func_start sub_80B09B0 +sub_80B09B0: @ 80B09B0 + push {lr} + lsls r0, 24 + lsrs r2, r0, 24 + lsls r0, r2, 3 + subs r0, r2 + lsls r0, 2 + ldr r1, _080B09D4 @ =0x02019260 + adds r0, r1 + ldrb r1, [r0, 0x15] + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + beq _080B09D8 + adds r0, r2, 0 + bl sub_80B0368 + b _080B09DE + .align 2, 0 +_080B09D4: .4byte 0x02019260 +_080B09D8: + adds r0, r2, 0 + bl sub_80B03A8 +_080B09DE: + pop {r0} + bx r0 + thumb_func_end sub_80B09B0 + + thumb_func_start sub_80B09E4 +sub_80B09E4: @ 80B09E4 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0xC + mov r9, r0 + lsls r0, 24 + lsrs r0, 24 + mov r9, r0 + ldr r0, _080B0B2C @ =gUnknown_02038696 + mov r1, r9 + adds r7, r1, r0 + ldrb r0, [r7] + lsls r5, r0, 2 + adds r5, r0 + lsls r5, 27 + movs r2, 0x80 + lsls r2, 22 + adds r5, r2 + lsrs r5, 24 + lsls r4, r1, 3 + ldr r0, _080B0B30 @ =gUnknown_083CC4B4 + adds r0, r4, r0 + bl LoadCompressedObjectPic + ldr r0, _080B0B34 @ =gUnknown_083CC4D4 + adds r4, r0 + adds r0, r4, 0 + bl LoadSpritePalette + mov r3, r9 + lsls r4, r3, 1 + add r4, r9 + lsls r4, 3 + ldr r0, _080B0B38 @ =gSpriteTemplate_83CC53C + adds r4, r0 + adds r0, r4, 0 + movs r1, 0xB8 + adds r2, r5, 0 + movs r3, 0x1D + bl CreateSprite + mov r8, r0 + mov r0, r8 + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + adds r0, r4, 0 + movs r1, 0xF8 + adds r2, r5, 0 + movs r3, 0x1D + bl CreateSprite + adds r6, r0, 0 + lsls r6, 24 + lsrs r6, 24 + ldr r1, _080B0B3C @ =gSprites + mov r10, r1 + lsls r5, r6, 4 + adds r5, r6 + lsls r5, 2 + add r5, r10 + ldrh r2, [r5, 0x4] + lsls r1, r2, 22 + lsrs r1, 22 + adds r1, 0x40 + ldr r3, _080B0B40 @ =0x000003ff + adds r0, r3, 0 + ands r1, r0 + ldr r0, _080B0B44 @ =0xfffffc00 + ands r0, r2 + orrs r0, r1 + strh r0, [r5, 0x4] + ldrb r0, [r7] + lsls r3, r0, 2 + adds r3, r0 + lsls r3, 6 + ldr r0, _080B0B48 @ =0x0600e026 + adds r3, r0 + mov r1, r8 + lsls r4, r1, 4 + add r4, r8 + lsls r4, 2 + add r4, r10 + ldrh r0, [r4, 0x4] + lsls r0, 22 + lsrs r0, 17 + ldr r2, _080B0B4C @ =0x06010000 + mov r10, r2 + add r0, r10 + str r0, [sp] + movs r0, 0 + movs r1, 0x3 + movs r2, 0xC0 + lsls r2, 19 + bl sub_8040F80 + ldrb r0, [r7] + lsls r3, r0, 2 + adds r3, r0 + lsls r3, 6 + ldr r7, _080B0B50 @ =0x0600e036 + adds r3, r7 + ldrh r0, [r5, 0x4] + lsls r0, 22 + lsrs r0, 17 + add r0, r10 + str r0, [sp] + movs r0, 0 + movs r1, 0x3 + movs r2, 0xC0 + lsls r2, 19 + bl sub_8040F80 + ldrh r0, [r4, 0x4] + lsls r0, 22 + lsrs r0, 17 + movs r1, 0xA0 + lsls r1, 3 + adds r0, r1 + add r0, r10 + movs r2, 0 + str r2, [sp, 0x8] + ldr r1, _080B0B54 @ =0x040000d4 + add r3, sp, 0x8 + mov r12, r3 + str r3, [r1] + str r0, [r1, 0x4] + ldr r3, _080B0B58 @ =0x850000c0 + str r3, [r1, 0x8] + ldr r0, [r1, 0x8] + add r0, sp, 0x4 + strb r2, [r0] + strb r2, [r0] + ldrh r0, [r5, 0x4] + lsls r0, 22 + lsrs r0, 17 + movs r7, 0xA0 + lsls r7, 3 + adds r0, r7 + add r0, r10 + str r2, [sp, 0x8] + mov r2, r12 + str r2, [r1] + str r0, [r1, 0x4] + str r3, [r1, 0x8] + ldr r0, [r1, 0x8] + strh r6, [r4, 0x2E] + mov r3, r8 + strh r3, [r5, 0x2E] + mov r7, r9 + strh r7, [r4, 0x30] + mov r0, r9 + strh r0, [r5, 0x30] + mov r0, r8 + add sp, 0xC + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_080B0B2C: .4byte gUnknown_02038696 +_080B0B30: .4byte gUnknown_083CC4B4 +_080B0B34: .4byte gUnknown_083CC4D4 +_080B0B38: .4byte gSpriteTemplate_83CC53C +_080B0B3C: .4byte gSprites +_080B0B40: .4byte 0x000003ff +_080B0B44: .4byte 0xfffffc00 +_080B0B48: .4byte 0x0600e026 +_080B0B4C: .4byte 0x06010000 +_080B0B50: .4byte 0x0600e036 +_080B0B54: .4byte 0x040000d4 +_080B0B58: .4byte 0x850000c0 + thumb_func_end sub_80B09E4 + + thumb_func_start sub_80B0B5C +sub_80B0B5C: @ 80B0B5C + push {r4,r5,lr} + lsls r0, 24 + lsrs r0, 24 + ldr r1, _080B0B94 @ =gSprites + lsls r5, r0, 4 + adds r5, r0 + lsls r5, 2 + adds r5, r1 + ldrh r0, [r5, 0x2E] + lsls r0, 24 + lsrs r0, 24 + lsls r4, r0, 4 + adds r4, r0 + lsls r4, 2 + adds r4, r1 + adds r0, r4, 0 + bl FreeSpriteOamMatrix + adds r0, r4, 0 + bl DestroySprite + adds r0, r5, 0 + bl DestroySpriteAndFreeResources + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080B0B94: .4byte gSprites + thumb_func_end sub_80B0B5C + + thumb_func_start sub_80B0B98 +sub_80B0B98: @ 80B0B98 + ldr r1, _080B0BAC @ =REG_BLDCNT + movs r2, 0xFD + lsls r2, 6 + adds r0, r2, 0 + strh r0, [r1] + adds r1, 0x2 + ldr r2, _080B0BB0 @ =0x00000907 + adds r0, r2, 0 + strh r0, [r1] + bx lr + .align 2, 0 +_080B0BAC: .4byte REG_BLDCNT +_080B0BB0: .4byte 0x00000907 + thumb_func_end sub_80B0B98 + + thumb_func_start sub_80B0BB4 +sub_80B0BB4: @ 80B0BB4 + ldr r0, _080B0BC0 @ =REG_BLDCNT + movs r1, 0 + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + bx lr + .align 2, 0 +_080B0BC0: .4byte REG_BLDCNT + thumb_func_end sub_80B0BB4 + + thumb_func_start sub_80B0BC4 +sub_80B0BC4: @ 80B0BC4 + push {r4-r6,lr} + mov r6, r9 + mov r5, r8 + push {r5,r6} + adds r4, r0, 0 + mov r9, r1 + lsls r4, 24 + lsrs r4, 24 + mov r0, r9 + lsls r0, 24 + lsrs r0, 24 + mov r9, r0 + bl sub_80B0B98 + ldr r1, _080B0C38 @ =gSprites + mov r8, r1 + lsls r6, r4, 4 + adds r6, r4 + lsls r6, 2 + adds r0, r6, r1 + movs r1, 0x30 + ldrsh r2, [r0, r1] + lsls r2, 2 + ldr r1, _080B0C3C @ =0x02019338 + adds r2, r1 + ldrb r1, [r2, 0x2] + movs r3, 0x2 + orrs r1, r3 + strb r1, [r2, 0x2] + ldrh r5, [r0, 0x2E] + lsls r5, 24 + lsrs r5, 24 + movs r1, 0x1 + bl StartSpriteAffineAnim + lsls r4, r5, 4 + adds r4, r5 + lsls r4, 2 + mov r1, r8 + adds r0, r4, r1 + movs r1, 0x1 + bl StartSpriteAffineAnim + movs r0, 0x1C + add r8, r0 + add r6, r8 + ldr r0, _080B0C40 @ =sub_80B0C5C + str r0, [r6] + add r4, r8 + ldr r0, _080B0C44 @ =SpriteCallbackDummy + str r0, [r4] + mov r1, r9 + cmp r1, 0 + bne _080B0C48 + movs r0, 0x65 + bl PlaySE + b _080B0C4E + .align 2, 0 +_080B0C38: .4byte gSprites +_080B0C3C: .4byte 0x02019338 +_080B0C40: .4byte sub_80B0C5C +_080B0C44: .4byte SpriteCallbackDummy +_080B0C48: + movs r0, 0x2 + bl PlaySE +_080B0C4E: + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_80B0BC4 + + thumb_func_start sub_80B0C5C +sub_80B0C5C: @ 80B0C5C + push {lr} + mov r12, r0 + adds r0, 0x3F + ldrb r1, [r0] + movs r0, 0x20 + ands r0, r1 + cmp r0, 0 + beq _080B0CA4 + mov r0, r12 + ldrh r1, [r0, 0x2E] + lsls r1, 24 + lsrs r1, 24 + ldr r2, _080B0CA8 @ =gSprites + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r1, r0, r2 + adds r0, r1, 0 + adds r0, 0x3F + ldrb r0, [r0] + lsls r0, 26 + cmp r0, 0 + bge _080B0CA4 + mov r3, r12 + adds r3, 0x3E + ldrb r0, [r3] + movs r2, 0x4 + orrs r0, r2 + strb r0, [r3] + adds r1, 0x3E + ldrb r0, [r1] + orrs r0, r2 + strb r0, [r1] + ldr r0, _080B0CAC @ =sub_80B0CB0 + mov r1, r12 + str r0, [r1, 0x1C] +_080B0CA4: + pop {r0} + bx r0 + .align 2, 0 +_080B0CA8: .4byte gSprites +_080B0CAC: .4byte sub_80B0CB0 + thumb_func_end sub_80B0C5C + + thumb_func_start sub_80B0CB0 +sub_80B0CB0: @ 80B0CB0 + push {lr} + movs r1, 0x30 + ldrsh r2, [r0, r1] + lsls r2, 2 + ldr r1, _080B0CD8 @ =0x02019338 + adds r2, r1 + ldrb r3, [r2, 0x2] + movs r1, 0x3 + negs r1, r1 + ands r1, r3 + strb r1, [r2, 0x2] + ldrh r0, [r0, 0x2E] + lsls r0, 24 + lsrs r0, 24 + bl sub_80B0B5C + bl sub_80B0BB4 + pop {r0} + bx r0 + .align 2, 0 +_080B0CD8: .4byte 0x02019338 + thumb_func_end sub_80B0CB0 + + thumb_func_start sub_80B0CDC +sub_80B0CDC: @ 80B0CDC + lsls r0, 24 + lsrs r0, 22 + ldr r1, _080B0CF0 @ =0x02019338 + adds r0, r1 + ldrb r2, [r0, 0x2] + movs r1, 0x3 + negs r1, r1 + ands r1, r2 + strb r1, [r0, 0x2] + bx lr + .align 2, 0 +_080B0CF0: .4byte 0x02019338 + thumb_func_end sub_80B0CDC + + thumb_func_start unref_sub_80B0CF4 +unref_sub_80B0CF4: @ 80B0CF4 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x8 + ldr r0, _080B0D5C @ =0x02000000 + movs r1, 0xC0 + lsls r1, 9 + adds r0, r1 + ldrb r1, [r0] + movs r2, 0x1 + eors r1, r2 + strb r1, [r0] + cmp r1, 0 + bne _080B0D6C + movs r4, 0 + ldr r6, _080B0D60 @ =gUnknown_083CA308 + adds r3, r6, 0x1 + mov r8, r3 + ldr r5, _080B0D64 @ =gUnknown_083CA310 + adds r7, r5, 0x1 +_080B0D1C: + lsls r1, r4, 1 + adds r0, r1, r6 + ldrb r2, [r0] + mov r3, r8 + adds r0, r1, r3 + ldrb r3, [r0] + adds r0, r1, r5 + ldrb r0, [r0] + adds r0, 0x5 + lsls r0, 24 + lsrs r0, 24 + str r0, [sp] + adds r1, r7 + ldrb r0, [r1] + adds r0, 0x1 + lsls r0, 24 + lsrs r0, 24 + str r0, [sp, 0x4] + ldr r0, _080B0D68 @ =gUnknown_03004210 + movs r1, 0 + bl FillWindowRect_DefaultPalette + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x3 + bls _080B0D1C + bl sub_80AE514 + bl sub_80AEB30 + b _080B0D70 + .align 2, 0 +_080B0D5C: .4byte 0x02000000 +_080B0D60: .4byte gUnknown_083CA308 +_080B0D64: .4byte gUnknown_083CA310 +_080B0D68: .4byte gUnknown_03004210 +_080B0D6C: + bl sub_80B0D7C +_080B0D70: + add sp, 0x8 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end unref_sub_80B0CF4 + + thumb_func_start sub_80B0D7C +sub_80B0D7C: @ 80B0D7C + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0x10 + movs r5, 0 + ldr r0, _080B0ED0 @ =0x02000000 + movs r1, 0xC0 + lsls r1, 9 + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0 + bne _080B0D98 + b _080B0EC2 +_080B0D98: + movs r4, 0 + ldr r7, _080B0ED4 @ =gUnknown_083CA308 + adds r3, r7, 0x1 + mov r9, r3 + ldr r6, _080B0ED8 @ =gUnknown_083CA310 + adds r0, r6, 0x1 + mov r8, r0 +_080B0DA6: + lsls r1, r4, 1 + adds r0, r1, r7 + ldrb r2, [r0] + mov r3, r9 + adds r0, r1, r3 + ldrb r3, [r0] + adds r0, r1, r6 + ldrb r0, [r0] + adds r0, 0x5 + lsls r0, 24 + lsrs r0, 24 + str r0, [sp] + add r1, r8 + ldrb r0, [r1] + adds r0, 0x1 + lsls r0, 24 + lsrs r0, 24 + str r0, [sp, 0x4] + ldr r0, _080B0EDC @ =gUnknown_03004210 + movs r1, 0 + bl FillWindowRect_DefaultPalette + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x3 + bls _080B0DA6 + movs r4, 0 + ldr r6, _080B0ED8 @ =gUnknown_083CA310 + adds r7, r6, 0x1 +_080B0DE2: + lsls r0, r4, 3 + subs r0, r4 + lsls r0, 2 + ldr r1, _080B0EE0 @ =0x02019260 + adds r0, r1 + ldrh r2, [r0, 0x4] + movs r1, 0x4 + ldrsh r0, [r0, r1] + cmp r0, 0 + bge _080B0E08 + negs r0, r0 + lsls r0, 16 + lsrs r2, r0, 16 + add r1, sp, 0x8 + movs r0, 0xAE + strb r0, [r1] + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 +_080B0E08: + mov r0, sp + adds r0, r5 + adds r0, 0x8 + lsls r1, r2, 16 + asrs r1, 16 + movs r2, 0 + movs r3, 0x4 + bl ConvertIntToDecimalStringN + ldr r0, _080B0EE4 @ =gUnknown_02038696 + adds r0, r4, r0 + ldrb r0, [r0] + movs r1, 0x16 + adds r2, r0, 0 + muls r2, r1 + movs r3, 0x94 + lsls r3, 2 + adds r2, r3 + lsls r0, 1 + adds r1, r0, r6 + ldrb r3, [r1] + adds r0, r7 + ldrb r0, [r0] + str r0, [sp] + ldr r0, _080B0EDC @ =gUnknown_03004210 + add r1, sp, 0x8 + bl sub_8003460 + movs r5, 0 + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x3 + bls _080B0DE2 + movs r4, 0 + ldr r6, _080B0ED4 @ =gUnknown_083CA308 + adds r7, r6, 0x1 +_080B0E52: + lsls r0, r4, 3 + subs r0, r4 + lsls r0, 2 + ldr r1, _080B0EE0 @ =0x02019260 + adds r0, r1 + ldrh r2, [r0, 0x2] + movs r1, 0x2 + ldrsh r0, [r0, r1] + cmp r0, 0 + bge _080B0E78 + negs r0, r0 + lsls r0, 16 + lsrs r2, r0, 16 + add r1, sp, 0x8 + movs r0, 0xAE + strb r0, [r1] + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 +_080B0E78: + mov r0, sp + adds r0, r5 + adds r0, 0x8 + lsls r1, r2, 16 + asrs r1, 16 + movs r2, 0 + movs r3, 0x4 + bl ConvertIntToDecimalStringN + ldr r0, _080B0EE4 @ =gUnknown_02038696 + adds r0, r4, r0 + ldrb r1, [r0] + lsls r2, r1, 2 + adds r2, r1 + lsls r2, 18 + movs r3, 0x80 + lsls r3, 18 + adds r2, r3 + lsrs r2, 16 + lsls r1, 1 + adds r0, r1, r6 + ldrb r3, [r0] + adds r1, r7 + ldrb r0, [r1] + str r0, [sp] + ldr r0, _080B0EDC @ =gUnknown_03004210 + add r1, sp, 0x8 + bl sub_8003460 + movs r5, 0 + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x3 + bls _080B0E52 + bl sub_80AEB30 +_080B0EC2: + add sp, 0x10 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080B0ED0: .4byte 0x02000000 +_080B0ED4: .4byte gUnknown_083CA308 +_080B0ED8: .4byte gUnknown_083CA310 +_080B0EDC: .4byte gUnknown_03004210 +_080B0EE0: .4byte 0x02019260 +_080B0EE4: .4byte gUnknown_02038696 + thumb_func_end sub_80B0D7C + + thumb_func_start unref_sub_80B0EE8 +unref_sub_80B0EE8: @ 80B0EE8 + push {r4-r7,lr} + adds r7, r0, 0 + movs r4, 0 + subs r0, r1, 0x1 + cmp r4, r0 + bge _080B0F20 + adds r6, r0, 0 +_080B0EF6: + adds r3, r0, 0 + adds r5, r4, 0x1 + cmp r0, r4 + ble _080B0F18 + lsls r0, 2 + subs r0, 0x4 + adds r0, r7 +_080B0F04: + ldr r1, [r0] + ldr r2, [r0, 0x4] + cmp r1, r2 + ble _080B0F10 + str r1, [r0, 0x4] + str r2, [r0] +_080B0F10: + subs r0, 0x4 + subs r3, 0x1 + cmp r3, r4 + bgt _080B0F04 +_080B0F18: + adds r4, r5, 0 + adds r0, r6, 0 + cmp r4, r0 + blt _080B0EF6 +_080B0F20: + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end unref_sub_80B0EE8 + + thumb_func_start sub_80B0F28 +sub_80B0F28: @ 80B0F28 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x14 + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + add r4, sp, 0x4 + adds r0, r4, 0 + movs r1, 0 + movs r2, 0x8 + bl memset + movs r5, 0 + add r4, sp, 0x4 + adds r6, r4, 0 + movs r7, 0 +_080B0F4E: + bl Random + adds r1, r0, 0 + mov r0, sp + adds r0, r7 + adds r0, 0x4 + strh r1, [r0] + movs r2, 0 + cmp r2, r5 + bge _080B0F86 + lsls r0, r1, 16 + lsrs r0, 16 + mov r1, sp + ldrh r1, [r1, 0x4] + cmp r0, r1 + beq _080B0F80 +_080B0F6E: + adds r2, 0x1 + cmp r2, r5 + bge _080B0F86 + lsls r0, r2, 1 + adds r0, r4, r0 + ldrh r1, [r6] + ldrh r0, [r0] + cmp r1, r0 + bne _080B0F6E +_080B0F80: + subs r6, 0x2 + subs r7, 0x2 + subs r5, 0x1 +_080B0F86: + adds r6, 0x2 + adds r7, 0x2 + adds r5, 0x1 + cmp r5, 0x3 + ble _080B0F4E + mov r2, r8 + cmp r2, 0 + bne _080B1050 + movs r5, 0 + ldr r3, _080B1008 @ =gUnknown_02038696 + mov r8, r3 +_080B0F9C: + mov r6, r8 + strb r5, [r6] + movs r4, 0 + cmp r4, r5 + bge _080B1018 + ldr r7, _080B100C @ =gUnknown_02038670 + mov r9, r7 + lsls r0, r5, 1 + adds r1, r0, 0 + add r1, r9 + mov r12, r1 + mov r2, sp + adds r2, 0x4 + str r2, [sp, 0xC] + add r0, sp + adds r0, 0x4 + str r0, [sp, 0x10] + ldr r3, _080B1008 @ =gUnknown_02038696 + adds r6, r3, 0 + mov r10, r6 +_080B0FC4: + ldrb r0, [r3] + lsls r2, r0, 1 + mov r7, r9 + adds r0, r2, r7 + movs r6, 0 + ldrsh r1, [r0, r6] + mov r7, r12 + movs r6, 0 + ldrsh r0, [r7, r6] + cmp r1, r0 + blt _080B0FEC + cmp r1, r0 + bne _080B1010 + ldr r7, [sp, 0xC] + adds r0, r7, r2 + ldrh r0, [r0] + ldr r1, [sp, 0x10] + ldrh r1, [r1] + cmp r0, r1 + bcs _080B1010 +_080B0FEC: + adds r2, r5, 0 + cmp r5, r4 + ble _080B1004 + subs r0, r5, 0x1 + mov r6, r10 + adds r1, r0, r6 +_080B0FF8: + ldrb r0, [r1] + strb r0, [r1, 0x1] + subs r1, 0x1 + subs r2, 0x1 + cmp r2, r4 + bgt _080B0FF8 +_080B1004: + strb r5, [r3] + b _080B1018 + .align 2, 0 +_080B1008: .4byte gUnknown_02038696 +_080B100C: .4byte gUnknown_02038670 +_080B1010: + adds r3, 0x1 + adds r4, 0x1 + cmp r4, r5 + blt _080B0FC4 +_080B1018: + cmp r4, r5 + bne _080B1020 + mov r7, r8 + strb r5, [r7] +_080B1020: + movs r0, 0x1 + add r8, r0 + adds r5, 0x1 + cmp r5, 0x3 + ble _080B0F9C + ldr r4, _080B104C @ =gUnknown_02038696 + mov r0, sp + adds r1, r4, 0 + movs r2, 0x4 + bl memcpy + movs r5, 0 +_080B1038: + mov r1, sp + adds r0, r1, r5 + ldrb r0, [r0] + adds r0, r4 + strb r5, [r0] + adds r5, 0x1 + cmp r5, 0x3 + ble _080B1038 + b _080B10FC + .align 2, 0 +_080B104C: .4byte gUnknown_02038696 +_080B1050: + mov r0, sp + movs r1, 0xFF + movs r2, 0x4 + bl memset + movs r5, 0 + ldr r3, _080B1070 @ =gUnknown_02038696 + movs r6, 0 +_080B1060: + ldr r0, _080B1074 @ =0x02019260 + adds r0, r6, r0 + ldrb r0, [r0, 0xB] + lsls r0, 30 + lsrs r2, r0, 30 + mov r7, sp + adds r1, r7, r2 + b _080B1082 + .align 2, 0 +_080B1070: .4byte gUnknown_02038696 +_080B1074: .4byte 0x02019260 +_080B1078: + adds r0, r2, 0x1 + lsls r0, 24 + lsrs r2, r0, 24 + mov r0, sp + adds r1, r0, r2 +_080B1082: + ldrb r0, [r1] + cmp r0, 0xFF + bne _080B1078 + strb r5, [r1] + strb r2, [r3] + adds r3, 0x1 + adds r6, 0x1C + adds r5, 0x1 + cmp r5, 0x3 + ble _080B1060 + movs r5, 0 +_080B1098: + movs r4, 0x3 + adds r1, r5, 0x1 + mov r10, r1 + cmp r4, r5 + ble _080B10F6 + mov r9, r4 + ldr r2, _080B110C @ =gUnknown_02038696 + mov r8, r2 + add r3, sp, 0x4 + mov r12, r3 +_080B10AC: + lsls r0, r4, 3 + subs r0, r4 + lsls r0, 2 + ldr r6, _080B1110 @ =0x02019244 + adds r1, r0, r6 + ldrb r2, [r1, 0xB] + ldr r7, _080B1114 @ =0x02019260 + adds r0, r7 + ldrb r3, [r0, 0xB] + mov r1, r9 + ands r1, r2 + mov r0, r9 + ands r0, r3 + subs r3, r4, 0x1 + cmp r1, r0 + bne _080B10F0 + mov r0, r8 + adds r7, r3, r0 + adds r2, r4, r0 + ldrb r6, [r7] + ldrb r1, [r2] + cmp r6, r1 + bcs _080B10F0 + lsls r0, r3, 1 + add r0, r12 + lsls r1, r4, 1 + add r1, r12 + ldrh r0, [r0] + ldrh r1, [r1] + cmp r0, r1 + bcs _080B10F0 + ldrb r0, [r2] + strb r6, [r2] + strb r0, [r7] +_080B10F0: + adds r4, r3, 0 + cmp r4, r5 + bgt _080B10AC +_080B10F6: + mov r5, r10 + cmp r5, 0x2 + ble _080B1098 +_080B10FC: + add sp, 0x14 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080B110C: .4byte gUnknown_02038696 +_080B1110: .4byte 0x02019244 +_080B1114: .4byte 0x02019260 + thumb_func_end sub_80B0F28 + + thumb_func_start sub_80B1118 +sub_80B1118: @ 80B1118 + push {r4,r5,lr} + movs r4, 0 + movs r5, 0xA0 +_080B111E: + ldr r0, _080B1144 @ =0x02018004 + adds r0, r5, r0 + ldr r1, _080B1148 @ =gUnknown_02038696 + adds r1, r4, r1 + ldrb r1, [r1] + adds r1, 0x5 + lsls r1, 4 + movs r2, 0x20 + bl LoadPalette + adds r5, 0x20 + adds r4, 0x1 + cmp r4, 0x3 + ble _080B111E + bl sub_80AE514 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080B1144: .4byte 0x02018004 +_080B1148: .4byte gUnknown_02038696 + thumb_func_end sub_80B1118 + + thumb_func_start sub_80B114C +sub_80B114C: @ 80B114C + push {r4-r7,lr} + mov r7, r8 + push {r7} + lsls r0, 24 + lsrs r6, r0, 24 + lsls r7, r6, 3 + subs r0, r7, r6 + lsls r0, 2 + ldr r4, _080B11B8 @ =0x02019260 + adds r5, r0, r4 + movs r0, 0 + strh r0, [r5, 0x2] + strh r0, [r5] + adds r0, r6, 0 + bl sub_80AF404 + lsls r0, 24 + mov r8, r4 + cmp r0, 0 + bne _080B1176 + b _080B13DC +_080B1176: + ldrh r0, [r5, 0x6] + ldr r1, _080B11BC @ =gContestMoves + lsls r0, 3 + adds r0, r1 + ldrb r1, [r0] + mov r12, r1 + ldrb r0, [r0, 0x1] + lsls r0, 29 + lsrs r0, 29 + strb r0, [r5, 0xA] + ldrh r0, [r5, 0x6] + ldrh r1, [r5, 0x8] + cmp r0, r1 + bne _080B11C0 + cmp r0, 0 + beq _080B11C0 + ldrb r0, [r5, 0x15] + movs r1, 0x1 + orrs r0, r1 + strb r0, [r5, 0x15] + ldrb r2, [r5, 0xB] + lsls r1, r2, 25 + lsrs r1, 29 + adds r1, 0x1 + movs r0, 0x7 + ands r1, r0 + lsls r1, 4 + movs r0, 0x71 + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r5, 0xB] + b _080B11D8 + .align 2, 0 +_080B11B8: .4byte 0x02019260 +_080B11BC: .4byte gContestMoves +_080B11C0: + lsls r4, r6, 3 + subs r1, r4, r6 + lsls r1, 2 + ldr r3, _080B1264 @ =0x02019260 + adds r1, r3 + ldrb r2, [r1, 0xB] + movs r0, 0x71 + negs r0, r0 + ands r0, r2 + strb r0, [r1, 0xB] + adds r7, r4, 0 + mov r8, r3 +_080B11D8: + subs r0, r7, r6 + lsls r0, 2 + add r0, r8 + ldr r2, _080B1268 @ =gContestEffects + mov r1, r12 + lsls r3, r1, 2 + adds r2, r3, r2 + ldrb r1, [r2, 0x1] + strh r1, [r0] + strh r1, [r0, 0x2] + mov r0, r8 + adds r0, 0x70 + ldrb r1, [r2, 0x2] + strh r1, [r0, 0x4] + strh r1, [r0, 0x6] + strb r6, [r0, 0x11] + movs r2, 0 + adds r4, r3, 0 + movs r1, 0 + mov r5, r8 + adds r5, 0x7D + mov r3, r8 +_080B1204: + strb r1, [r3, 0xE] + adds r0, r5, r2 + strb r1, [r0] + adds r3, 0x1C + adds r2, 0x1 + cmp r2, 0x3 + ble _080B1204 + subs r0, r7, r6 + lsls r0, 2 + ldr r1, _080B1264 @ =0x02019260 + adds r5, r0, r1 + ldrb r1, [r5, 0x15] + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + beq _080B123C + ldrh r0, [r5, 0x8] + ldrh r1, [r5, 0x6] + bl AreMovesContestCombo + lsls r0, 24 + cmp r0, 0 + bne _080B123C + ldrb r1, [r5, 0x15] + movs r0, 0x11 + negs r0, r0 + ands r0, r1 + strb r0, [r5, 0x15] +_080B123C: + ldr r0, _080B126C @ =gContestEffectFuncs + adds r0, r4, r0 + ldr r0, [r0] + bl _call_via_r0 + subs r0, r7, r6 + lsls r0, 2 + ldr r1, _080B1264 @ =0x02019260 + adds r2, r0, r1 + ldrb r1, [r2, 0x10] + movs r0, 0x30 + ands r0, r1 + cmp r0, 0x10 + bne _080B1270 + ldrh r1, [r2, 0x2] + subs r1, 0xA + movs r0, 0xD + ldrsb r0, [r2, r0] + b _080B128A + .align 2, 0 +_080B1264: .4byte 0x02019260 +_080B1268: .4byte gContestEffects +_080B126C: .4byte gContestEffectFuncs +_080B1270: + ldrb r1, [r2, 0x11] + movs r0, 0x20 + ands r0, r1 + cmp r0, 0 + beq _080B1284 + movs r1, 0xD + ldrsb r1, [r2, r1] + lsls r0, r1, 1 + adds r0, r1 + b _080B1288 +_080B1284: + movs r0, 0xD + ldrsb r0, [r2, r0] +_080B1288: + ldrh r1, [r2, 0x2] +_080B128A: + adds r0, r1 + strh r0, [r2, 0x2] + subs r0, r7, r6 + lsls r0, 2 + ldr r1, _080B12E8 @ =0x02019260 + adds r4, r0, r1 + movs r0, 0 + strb r0, [r4, 0x16] + ldrb r1, [r4, 0x15] + subs r0, 0x41 + ands r0, r1 + strb r0, [r4, 0x15] + adds r0, r6, 0 + bl sub_80B214C + lsls r0, 24 + cmp r0, 0 + beq _080B1322 + ldrh r0, [r4, 0x8] + ldrh r1, [r4, 0x6] + bl AreMovesContestCombo + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0 + beq _080B12EC + ldrb r1, [r4, 0x15] + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + beq _080B12EC + strb r2, [r4, 0x16] + movs r0, 0x40 + orrs r1, r0 + movs r0, 0x11 + negs r0, r0 + ands r1, r0 + movs r0, 0 + ldrsh r2, [r4, r0] + ldrb r0, [r4, 0x16] + muls r0, r2 + strb r0, [r4, 0x17] + movs r0, 0x8 + orrs r1, r0 + strb r1, [r4, 0x15] + b _080B1322 + .align 2, 0 +_080B12E8: .4byte 0x02019260 +_080B12EC: + ldr r2, _080B1310 @ =gContestMoves + subs r0, r7, r6 + lsls r0, 2 + ldr r1, _080B1314 @ =0x02019260 + adds r3, r0, r1 + ldrh r0, [r3, 0x6] + lsls r0, 3 + adds r0, r2 + ldrb r0, [r0, 0x2] + cmp r0, 0 + beq _080B1318 + ldrb r0, [r3, 0x15] + movs r1, 0x10 + orrs r0, r1 + movs r1, 0x40 + orrs r0, r1 + b _080B1320 + .align 2, 0 +_080B1310: .4byte gContestMoves +_080B1314: .4byte 0x02019260 +_080B1318: + ldrb r1, [r3, 0x15] + movs r0, 0x11 + negs r0, r0 + ands r0, r1 +_080B1320: + strb r0, [r3, 0x15] +_080B1322: + subs r0, r7, r6 + lsls r0, 2 + ldr r1, _080B139C @ =0x02019260 + mov r8, r1 + adds r4, r0, r1 + ldrb r1, [r4, 0x15] + movs r5, 0x1 + adds r0, r5, 0 + ands r0, r1 + cmp r0, 0 + beq _080B1348 + ldrb r0, [r4, 0xB] + lsls r0, 25 + lsrs r0, 29 + adds r0, 0x1 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 1 + strb r1, [r4, 0x18] +_080B1348: + ldrb r1, [r4, 0xC] + adds r0, r5, 0 + ands r0, r1 + cmp r0, 0 + beq _080B1362 + ldrb r0, [r4, 0x15] + movs r1, 0x11 + negs r1, r1 + ands r1, r0 + strb r1, [r4, 0x15] + movs r0, 0 + strh r0, [r4, 0x2] + strh r0, [r4] +_080B1362: + ldrh r0, [r4, 0x6] + bl contest_get_move_excitement + mov r2, r8 + adds r2, 0xC8 + strb r0, [r2] + ldrb r1, [r4, 0x11] + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + beq _080B137A + strb r5, [r2] +_080B137A: + movs r0, 0 + ldrsb r0, [r2, r0] + cmp r0, 0 + ble _080B13A4 + mov r0, r8 + subs r0, 0x5C + ldrb r0, [r0, 0x13] + lsls r0, 24 + asrs r0, 24 + movs r1, 0 + ldrsb r1, [r2, r1] + adds r0, r1 + cmp r0, 0x4 + ble _080B13A0 + movs r0, 0x3C + b _080B13A6 + .align 2, 0 +_080B139C: .4byte 0x02019260 +_080B13A0: + movs r0, 0xA + b _080B13A6 +_080B13A4: + movs r0, 0 +_080B13A6: + strb r0, [r2, 0x2] + bl Random + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x3 + bl __umodsi3 + lsls r0, 24 + lsrs r0, 24 + movs r2, 0 + b _080B13CA +_080B13BE: + subs r0, 0x1 + lsls r0, 24 + lsrs r0, 24 +_080B13C4: + adds r2, 0x1 + cmp r2, 0x3 + bgt _080B13D2 +_080B13CA: + cmp r2, r6 + beq _080B13C4 + cmp r0, 0 + bne _080B13BE +_080B13D2: + subs r0, r7, r6 + lsls r0, 2 + ldr r1, _080B13E8 @ =0x02019260 + adds r0, r1 + strb r2, [r0, 0x1B] +_080B13DC: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080B13E8: .4byte 0x02019260 + thumb_func_end sub_80B114C + + thumb_func_start sub_80B13EC +sub_80B13EC: @ 80B13EC + lsls r0, 24 + lsrs r0, 24 + lsls r2, r0, 3 + subs r2, r0 + lsls r2, 2 + ldr r0, _080B1400 @ =0x02019260 + adds r2, r0 + strb r1, [r2, 0x13] + bx lr + .align 2, 0 +_080B1400: .4byte 0x02019260 + thumb_func_end sub_80B13EC + + thumb_func_start sub_80B1404 +sub_80B1404: @ 80B1404 + lsls r0, 24 + lsrs r0, 24 + lsls r2, r0, 3 + subs r2, r0 + lsls r2, 2 + ldr r0, _080B1418 @ =0x02019260 + adds r2, r0 + strb r1, [r2, 0x14] + bx lr + .align 2, 0 +_080B1418: .4byte 0x02019260 + thumb_func_end sub_80B1404 + + thumb_func_start sub_80B141C +sub_80B141C: @ 80B141C + push {lr} + lsls r0, 24 + lsrs r0, 24 + adds r3, r0, 0 + lsls r1, 24 + lsrs r1, 24 + adds r2, r1, 0 + cmp r1, 0x3B + bls _080B1436 + movs r1, 0x35 + bl sub_80B13EC + b _080B1466 +_080B1436: + cmp r1, 0x27 + bls _080B1442 + movs r1, 0x34 + bl sub_80B13EC + b _080B1466 +_080B1442: + cmp r1, 0x1D + bls _080B144E + movs r1, 0x33 + bl sub_80B13EC + b _080B1466 +_080B144E: + cmp r1, 0x13 + bls _080B145A + movs r1, 0x32 + bl sub_80B13EC + b _080B1466 +_080B145A: + cmp r2, 0x9 + bls _080B1466 + adds r0, r3, 0 + movs r1, 0x31 + bl sub_80B13EC +_080B1466: + pop {r0} + bx r0 + thumb_func_end sub_80B141C + + thumb_func_start sub_80B146C +sub_80B146C: @ 80B146C + push {r4,r5,lr} + sub sp, 0x4 + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + lsls r1, 24 + lsrs r5, r1, 24 + ldr r0, _080B14C8 @ =gStringVar1 + lsls r1, r4, 6 + ldr r2, _080B14CC @ =gUnknown_02038572 + adds r1, r2 + bl StringCopy + ldr r0, _080B14D0 @ =gStringVar2 + lsls r1, r4, 3 + subs r1, r4 + lsls r1, 2 + ldr r4, _080B14D4 @ =0x02019260 + adds r1, r4 + ldrh r2, [r1, 0x6] + movs r1, 0xD + muls r1, r2 + ldr r2, _080B14D8 @ =gMoveNames + adds r1, r2 + bl StringCopy + ldr r2, _080B14DC @ =gContestMoves + adds r0, r4, 0 + adds r0, 0x70 + ldrb r1, [r0, 0x11] + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + adds r0, r4 + ldrh r0, [r0, 0x6] + lsls r0, 3 + adds r0, r2 + ldrb r0, [r0, 0x1] + lsls r1, r0, 29 + cmp r1, 0 + bne _080B14E8 + ldr r0, _080B14E0 @ =gStringVar3 + ldr r1, _080B14E4 @ =gUnknown_083CC280 + bl StringCopy + b _080B1538 + .align 2, 0 +_080B14C8: .4byte gStringVar1 +_080B14CC: .4byte gUnknown_02038572 +_080B14D0: .4byte gStringVar2 +_080B14D4: .4byte 0x02019260 +_080B14D8: .4byte gMoveNames +_080B14DC: .4byte gContestMoves +_080B14E0: .4byte gStringVar3 +_080B14E4: .4byte gUnknown_083CC280 +_080B14E8: + lsrs r0, r1, 29 + cmp r0, 0x1 + bne _080B1500 + ldr r0, _080B14F8 @ =gStringVar3 + ldr r1, _080B14FC @ =gUnknown_083CC288 + bl StringCopy + b _080B1538 + .align 2, 0 +_080B14F8: .4byte gStringVar3 +_080B14FC: .4byte gUnknown_083CC288 +_080B1500: + lsrs r0, r1, 29 + cmp r0, 0x2 + bne _080B1518 + ldr r0, _080B1510 @ =gStringVar3 + ldr r1, _080B1514 @ =gUnknown_083CC290 + bl StringCopy + b _080B1538 + .align 2, 0 +_080B1510: .4byte gStringVar3 +_080B1514: .4byte gUnknown_083CC290 +_080B1518: + lsrs r0, r1, 29 + cmp r0, 0x3 + bne _080B1530 + ldr r0, _080B1528 @ =gStringVar3 + ldr r1, _080B152C @ =gUnknown_083CC299 + bl StringCopy + b _080B1538 + .align 2, 0 +_080B1528: .4byte gStringVar3 +_080B152C: .4byte gUnknown_083CC299 +_080B1530: + ldr r0, _080B1568 @ =gStringVar3 + ldr r1, _080B156C @ =gUnknown_083CC2A3 + bl StringCopy +_080B1538: + ldr r4, _080B1570 @ =gStringVar4 + ldr r1, _080B1574 @ =gUnknown_083CC188 + lsls r0, r5, 2 + adds r0, r1 + ldr r1, [r0] + adds r0, r4, 0 + bl StringExpandPlaceholders + bl sub_80AF138 + ldr r0, _080B1578 @ =gMenuWindow + movs r2, 0xC2 + lsls r2, 2 + movs r1, 0xF + str r1, [sp] + adds r1, r4, 0 + movs r3, 0x1 + bl sub_8002EB0 + add sp, 0x4 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080B1568: .4byte gStringVar3 +_080B156C: .4byte gUnknown_083CC2A3 +_080B1570: .4byte gStringVar4 +_080B1574: .4byte gUnknown_083CC188 +_080B1578: .4byte gMenuWindow + thumb_func_end sub_80B146C + + thumb_func_start sub_80B157C +sub_80B157C: @ 80B157C + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 3 + subs r1, r0 + lsls r1, 2 + ldr r0, _080B1598 @ =0x02019260 + adds r1, r0 + ldrb r0, [r1, 0xC] + movs r2, 0x1 + orrs r0, r2 + strb r0, [r1, 0xC] + movs r0, 0 + strh r0, [r1, 0x6] + bx lr + .align 2, 0 +_080B1598: .4byte 0x02019260 + thumb_func_end sub_80B157C + + thumb_func_start sub_80B159C +sub_80B159C: @ 80B159C + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0x8 + movs r0, 0 + mov r12, r0 + movs r4, 0 + ldr r1, _080B1600 @ =gUnknown_02038696 + mov r9, r1 + add r2, sp, 0x4 + mov r6, r9 + movs r5, 0 + adds r3, r2, 0 +_080B15B8: + mov r0, sp + adds r1, r0, r4 + adds r0, r4, r6 + ldrb r0, [r0] + strb r0, [r1] + adds r0, r3, r4 + strb r5, [r0] + adds r4, 0x1 + cmp r4, 0x3 + ble _080B15B8 + movs r4, 0 + ldr r7, _080B1604 @ =0x02019260 + adds r5, r2, 0 + movs r1, 0x1 + mov r8, r1 +_080B15D6: + movs r2, 0 + adds r1, r7, 0 +_080B15DA: + ldrb r0, [r1, 0x19] + cmp r0, r4 + beq _080B1608 + adds r1, 0x1C + adds r2, 0x1 + cmp r2, 0x3 + ble _080B15DA +_080B15E8: + cmp r2, 0x4 + bne _080B1680 + movs r2, 0 + ldrb r0, [r5] + cmp r0, 0 + bne _080B1616 + ldrb r0, [r7, 0x19] + cmp r0, 0xFF + bne _080B1616 + mov r12, r2 + movs r2, 0x1 + b _080B163A + .align 2, 0 +_080B1600: .4byte gUnknown_02038696 +_080B1604: .4byte 0x02019260 +_080B1608: + mov r1, sp + adds r0, r1, r2 + strb r4, [r0] + adds r0, r5, r2 + mov r1, r8 + strb r1, [r0] + b _080B15E8 +_080B1616: + adds r2, 0x1 + cmp r2, 0x3 + bgt _080B1672 + adds r0, r5, r2 + ldrb r0, [r0] + cmp r0, 0 + bne _080B1616 + lsls r0, r2, 3 + subs r0, r2 + lsls r0, 2 + adds r0, r7 + ldrb r0, [r0, 0x19] + cmp r0, 0xFF + bne _080B1616 + lsls r0, r2, 24 + lsrs r0, 24 + mov r12, r0 + adds r2, 0x1 +_080B163A: + cmp r2, 0x3 + bgt _080B1672 + ldr r6, _080B16C8 @ =gUnknown_02038696 + lsls r0, r2, 3 + subs r0, r2 + lsls r3, r0, 2 +_080B1646: + adds r0, r5, r2 + ldrb r0, [r0] + cmp r0, 0 + bne _080B166A + adds r0, r3, r7 + ldrb r0, [r0, 0x19] + cmp r0, 0xFF + bne _080B166A + mov r1, r12 + adds r0, r1, r6 + adds r1, r2, r6 + ldrb r0, [r0] + ldrb r1, [r1] + cmp r0, r1 + bls _080B166A + lsls r0, r2, 24 + lsrs r0, 24 + mov r12, r0 +_080B166A: + adds r3, 0x1C + adds r2, 0x1 + cmp r2, 0x3 + ble _080B1646 +_080B1672: + mov r0, sp + add r0, r12 + strb r4, [r0] + mov r1, r12 + adds r0, r5, r1 + mov r1, r8 + strb r1, [r0] +_080B1680: + adds r4, 0x1 + cmp r4, 0x3 + ble _080B15D6 + movs r4, 0 + ldr r5, _080B16CC @ =0x020192d0 + adds r3, r5, 0 + subs r3, 0x60 + movs r6, 0xFF + movs r7, 0x3F +_080B1692: + adds r1, r4, r5 + mov r0, sp + adds r2, r0, r4 + ldrb r0, [r2] + strb r0, [r1] + ldrb r0, [r3, 0x9] + orrs r0, r6 + strb r0, [r3, 0x9] + ldrb r1, [r3] + adds r0, r7, 0 + ands r0, r1 + strb r0, [r3] + mov r0, r9 + adds r1, r4, r0 + ldrb r0, [r2] + strb r0, [r1] + adds r3, 0x1C + adds r4, 0x1 + cmp r4, 0x3 + ble _080B1692 + add sp, 0x8 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080B16C8: .4byte gUnknown_02038696 +_080B16CC: .4byte 0x020192d0 + thumb_func_end sub_80B159C + + thumb_func_start sub_80B16D0 +sub_80B16D0: @ 80B16D0 + push {lr} + adds r2, r0, 0 + ldrh r0, [r2, 0x30] + adds r1, r0, 0x1 + strh r1, [r2, 0x30] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x54 + ble _080B1702 + movs r0, 0 + strh r0, [r2, 0x30] + adds r3, r2, 0 + adds r3, 0x3E + ldrb r0, [r3] + movs r1, 0x4 + orrs r0, r1 + strb r0, [r3] + ldr r0, _080B1708 @ =SpriteCallbackDummy + str r0, [r2, 0x1C] + ldr r2, _080B170C @ =0x02019204 + ldrb r1, [r2, 0x6] + movs r0, 0x11 + negs r0, r0 + ands r0, r1 + strb r0, [r2, 0x6] +_080B1702: + pop {r0} + bx r0 + .align 2, 0 +_080B1708: .4byte SpriteCallbackDummy +_080B170C: .4byte 0x02019204 + thumb_func_end sub_80B16D0 + + thumb_func_start sub_80B1710 +sub_80B1710: @ 80B1710 + push {r4,r5,lr} + lsls r0, 24 + lsrs r1, r0, 24 + ldr r0, _080B172C @ =0x02019204 + ldrb r5, [r0, 0x12] + cmp r1, 0x8 + bls _080B1720 + b _080B18C0 +_080B1720: + lsls r0, r1, 2 + ldr r1, _080B1730 @ =_080B1734 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080B172C: .4byte 0x02019204 +_080B1730: .4byte _080B1734 + .align 2, 0 +_080B1734: + .4byte _080B1758 + .4byte _080B1758 + .4byte _080B1788 + .4byte _080B17BC + .4byte _080B17F0 + .4byte _080B1824 + .4byte _080B1858 + .4byte _080B18C0 + .4byte _080B188C +_080B1758: + ldr r0, _080B177C @ =gSprites + lsls r4, r5, 4 + adds r1, r4, r5 + lsls r1, 2 + adds r1, r0 + ldrh r0, [r1, 0x2E] + ldr r2, _080B1780 @ =0x000003ff + ands r2, r0 + ldrh r3, [r1, 0x4] + ldr r0, _080B1784 @ =0xfffffc00 + ands r0, r3 + orrs r0, r2 + strh r0, [r1, 0x4] + movs r0, 0x20 + bl PlaySE + b _080B18E4 + .align 2, 0 +_080B177C: .4byte gSprites +_080B1780: .4byte 0x000003ff +_080B1784: .4byte 0xfffffc00 +_080B1788: + ldr r0, _080B17B0 @ =gSprites + lsls r4, r5, 4 + adds r1, r4, r5 + lsls r1, 2 + adds r1, r0 + ldrh r2, [r1, 0x2E] + adds r2, 0x4 + ldr r3, _080B17B4 @ =0x000003ff + adds r0, r3, 0 + ands r2, r0 + ldrh r3, [r1, 0x4] + ldr r0, _080B17B8 @ =0xfffffc00 + ands r0, r3 + orrs r0, r2 + strh r0, [r1, 0x4] + movs r0, 0x1F + bl PlaySE + b _080B18E4 + .align 2, 0 +_080B17B0: .4byte gSprites +_080B17B4: .4byte 0x000003ff +_080B17B8: .4byte 0xfffffc00 +_080B17BC: + ldr r0, _080B17E4 @ =gSprites + lsls r4, r5, 4 + adds r1, r4, r5 + lsls r1, 2 + adds r1, r0 + ldrh r2, [r1, 0x2E] + adds r2, 0x8 + ldr r3, _080B17E8 @ =0x000003ff + adds r0, r3, 0 + ands r2, r0 + ldrh r3, [r1, 0x4] + ldr r0, _080B17EC @ =0xfffffc00 + ands r0, r3 + orrs r0, r2 + strh r0, [r1, 0x4] + movs r0, 0x1F + bl PlaySE + b _080B18E4 + .align 2, 0 +_080B17E4: .4byte gSprites +_080B17E8: .4byte 0x000003ff +_080B17EC: .4byte 0xfffffc00 +_080B17F0: + ldr r0, _080B1818 @ =gSprites + lsls r4, r5, 4 + adds r1, r4, r5 + lsls r1, 2 + adds r1, r0 + ldrh r2, [r1, 0x2E] + adds r2, 0xC + ldr r3, _080B181C @ =0x000003ff + adds r0, r3, 0 + ands r2, r0 + ldrh r3, [r1, 0x4] + ldr r0, _080B1820 @ =0xfffffc00 + ands r0, r3 + orrs r0, r2 + strh r0, [r1, 0x4] + movs r0, 0x2D + bl PlaySE + b _080B18E4 + .align 2, 0 +_080B1818: .4byte gSprites +_080B181C: .4byte 0x000003ff +_080B1820: .4byte 0xfffffc00 +_080B1824: + ldr r0, _080B184C @ =gSprites + lsls r4, r5, 4 + adds r1, r4, r5 + lsls r1, 2 + adds r1, r0 + ldrh r2, [r1, 0x2E] + adds r2, 0xC + ldr r3, _080B1850 @ =0x000003ff + adds r0, r3, 0 + ands r2, r0 + ldrh r3, [r1, 0x4] + ldr r0, _080B1854 @ =0xfffffc00 + ands r0, r3 + orrs r0, r2 + strh r0, [r1, 0x4] + movs r0, 0x2D + bl PlaySE + b _080B18E4 + .align 2, 0 +_080B184C: .4byte gSprites +_080B1850: .4byte 0x000003ff +_080B1854: .4byte 0xfffffc00 +_080B1858: + ldr r0, _080B1880 @ =gSprites + lsls r4, r5, 4 + adds r1, r4, r5 + lsls r1, 2 + adds r1, r0 + ldrh r2, [r1, 0x2E] + adds r2, 0x10 + ldr r3, _080B1884 @ =0x000003ff + adds r0, r3, 0 + ands r2, r0 + ldrh r3, [r1, 0x4] + ldr r0, _080B1888 @ =0xfffffc00 + ands r0, r3 + orrs r0, r2 + strh r0, [r1, 0x4] + movs r0, 0x2D + bl PlaySE + b _080B18E4 + .align 2, 0 +_080B1880: .4byte gSprites +_080B1884: .4byte 0x000003ff +_080B1888: .4byte 0xfffffc00 +_080B188C: + ldr r0, _080B18B4 @ =gSprites + lsls r4, r5, 4 + adds r1, r4, r5 + lsls r1, 2 + adds r1, r0 + ldrh r2, [r1, 0x2E] + adds r2, 0x18 + ldr r3, _080B18B8 @ =0x000003ff + adds r0, r3, 0 + ands r2, r0 + ldrh r3, [r1, 0x4] + ldr r0, _080B18BC @ =0xfffffc00 + ands r0, r3 + orrs r0, r2 + strh r0, [r1, 0x4] + movs r0, 0xC3 + bl PlaySE + b _080B18E4 + .align 2, 0 +_080B18B4: .4byte gSprites +_080B18B8: .4byte 0x000003ff +_080B18BC: .4byte 0xfffffc00 +_080B18C0: + ldr r0, _080B1914 @ =gSprites + lsls r4, r5, 4 + adds r1, r4, r5 + lsls r1, 2 + adds r1, r0 + ldrh r2, [r1, 0x2E] + adds r2, 0x14 + ldr r3, _080B1918 @ =0x000003ff + adds r0, r3, 0 + ands r2, r0 + ldrh r3, [r1, 0x4] + ldr r0, _080B191C @ =0xfffffc00 + ands r0, r3 + orrs r0, r2 + strh r0, [r1, 0x4] + movs r0, 0x2D + bl PlaySE +_080B18E4: + adds r2, r4, 0 + ldr r4, _080B1914 @ =gSprites + adds r2, r5 + lsls r2, 2 + adds r1, r2, r4 + movs r0, 0 + strh r0, [r1, 0x30] + adds r1, 0x3E + ldrb r3, [r1] + subs r0, 0x5 + ands r0, r3 + strb r0, [r1] + adds r4, 0x1C + adds r2, r4 + ldr r0, _080B1920 @ =sub_80B16D0 + str r0, [r2] + ldr r2, _080B1924 @ =0x02019204 + ldrb r0, [r2, 0x6] + movs r1, 0x10 + orrs r0, r1 + strb r0, [r2, 0x6] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080B1914: .4byte gSprites +_080B1918: .4byte 0x000003ff +_080B191C: .4byte 0xfffffc00 +_080B1920: .4byte sub_80B16D0 +_080B1924: .4byte 0x02019204 + thumb_func_end sub_80B1710 + + thumb_func_start sub_80B1928 +sub_80B1928: @ 80B1928 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + movs r5, 0 + ldr r6, _080B19BC @ =0x02019204 + ldr r0, _080B19C0 @ =gSprites + mov r10, r0 + movs r1, 0x58 + adds r1, r6 + mov r9, r1 + ldr r0, _080B19C4 @ =0x06010000 + mov r8, r0 + ldr r7, _080B19C8 @ =REG_BG0CNT +_080B1946: + movs r0, 0x13 + ldrsb r0, [r6, r0] + ldr r4, _080B19CC @ =gContestApplauseMeterGfx + cmp r5, r0 + bge _080B1952 + adds r4, 0x40 +_080B1952: + mov r0, r9 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + add r0, r10 + ldrh r1, [r0, 0x4] + lsls r1, 22 + lsrs r1, 22 + adds r0, r5, 0 + adds r0, 0x11 + adds r1, r0 + lsls r1, 5 + add r1, r8 + adds r0, r4, 0 + adds r2, r7, 0 + bl CpuSet + adds r0, r4, 0 + adds r0, 0x20 + mov r1, r9 + ldrb r2, [r1] + lsls r1, r2, 4 + adds r1, r2 + lsls r1, 2 + add r1, r10 + ldrh r1, [r1, 0x4] + lsls r1, 22 + lsrs r1, 22 + adds r2, r5, 0 + adds r2, 0x19 + adds r1, r2 + lsls r1, 5 + add r1, r8 + adds r2, r7, 0 + bl CpuSet + movs r0, 0x13 + ldrsb r0, [r6, r0] + cmp r0, 0x4 + ble _080B19A8 + bl sub_80B1A2C +_080B19A8: + adds r5, 0x1 + cmp r5, 0x4 + ble _080B1946 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080B19BC: .4byte 0x02019204 +_080B19C0: .4byte gSprites +_080B19C4: .4byte 0x06010000 +_080B19C8: .4byte REG_BG0CNT +_080B19CC: .4byte gContestApplauseMeterGfx + thumb_func_end sub_80B1928 + + thumb_func_start unref_sub_80B19D0 +unref_sub_80B19D0: @ 80B19D0 + push {lr} + sub sp, 0x18 + ldr r1, _080B19F4 @ =gUnknown_083CC2EC + add r0, sp, 0x4 + bl StringCopy + ldr r0, _080B19F8 @ =gUnknown_03004210 + movs r2, 0xAA + lsls r2, 2 + movs r1, 0 + str r1, [sp] + add r1, sp, 0x4 + movs r3, 0 + bl sub_8003460 + add sp, 0x18 + pop {r0} + bx r0 + .align 2, 0 +_080B19F4: .4byte gUnknown_083CC2EC +_080B19F8: .4byte gUnknown_03004210 + thumb_func_end unref_sub_80B19D0 + + thumb_func_start contest_get_move_excitement +contest_get_move_excitement: @ 80B19FC + lsls r0, 16 + ldr r3, _080B1A20 @ =gContestExcitementTable + ldr r1, _080B1A24 @ =gContestMoves + lsrs r0, 13 + adds r0, r1 + ldrb r1, [r0, 0x1] + lsls r1, 29 + lsrs r1, 29 + ldr r0, _080B1A28 @ =gUnknown_0203869C + ldrh r2, [r0] + lsls r0, r2, 2 + adds r0, r2 + adds r1, r0 + adds r1, r3 + movs r0, 0 + ldrsb r0, [r1, r0] + bx lr + .align 2, 0 +_080B1A20: .4byte gContestExcitementTable +_080B1A24: .4byte gContestMoves +_080B1A28: .4byte gUnknown_0203869C + thumb_func_end contest_get_move_excitement + + thumb_func_start sub_80B1A2C +sub_80B1A2C: @ 80B1A2C + push {r4,r5,lr} + ldr r0, _080B1A60 @ =c3_08130B10 + movs r1, 0xA + bl CreateTask + adds r5, r0, 0 + lsls r5, 24 + lsrs r5, 24 + ldr r0, _080B1A64 @ =gTasks + lsls r4, r5, 2 + adds r4, r5 + lsls r4, 3 + adds r4, r0 + movs r0, 0x1 + strh r0, [r4, 0xA] + ldr r0, _080B1A68 @ =0x0000abe2 + bl IndexOfSpritePaletteTag + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0xC] + adds r0, r5, 0 + pop {r4,r5} + pop {r1} + bx r1 + .align 2, 0 +_080B1A60: .4byte c3_08130B10 +_080B1A64: .4byte gTasks +_080B1A68: .4byte 0x0000abe2 + thumb_func_end sub_80B1A2C + + thumb_func_start c3_08130B10 +c3_08130B10: @ 80B1A6C + push {r4-r6,lr} + lsls r0, 24 + lsrs r5, r0, 24 + ldr r1, _080B1A9C @ =gTasks + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r2, r0, r1 + ldrh r0, [r2, 0x8] + adds r0, 0x1 + strh r0, [r2, 0x8] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + bne _080B1B06 + movs r0, 0 + strh r0, [r2, 0x8] + movs r3, 0xE + ldrsh r0, [r2, r3] + cmp r0, 0 + bne _080B1AA0 + ldrh r0, [r2, 0x10] + adds r0, 0x1 + b _080B1AA4 + .align 2, 0 +_080B1A9C: .4byte gTasks +_080B1AA0: + ldrh r0, [r2, 0x10] + subs r0, 0x1 +_080B1AA4: + strh r0, [r2, 0x10] + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r4, r0, r1 + movs r1, 0xC + ldrsh r0, [r4, r1] + lsls r0, 4 + movs r3, 0x84 + lsls r3, 1 + adds r6, r3, 0 + adds r0, r6 + lsls r0, 16 + lsrs r0, 16 + ldrb r2, [r4, 0x10] + ldr r3, _080B1B0C @ =0x00007fff + movs r1, 0x1 + bl BlendPalette + movs r1, 0x10 + ldrsh r0, [r4, r1] + cmp r0, 0 + beq _080B1AD6 + cmp r0, 0x10 + bne _080B1B06 +_080B1AD6: + ldrh r0, [r4, 0xE] + movs r1, 0x1 + eors r0, r1 + strh r0, [r4, 0xE] + ldr r0, _080B1B10 @ =0x02019204 + ldrb r0, [r0, 0x13] + lsls r0, 24 + asrs r0, 24 + cmp r0, 0x4 + bgt _080B1B06 + movs r3, 0xC + ldrsh r0, [r4, r3] + lsls r0, 4 + adds r0, r6 + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x1 + movs r2, 0 + movs r3, 0x1F + bl BlendPalette + adds r0, r5, 0 + bl DestroyTask +_080B1B06: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080B1B0C: .4byte 0x00007fff +_080B1B10: .4byte 0x02019204 + thumb_func_end c3_08130B10 + + thumb_func_start sub_80B1B14 +sub_80B1B14: @ 80B1B14 + push {r4,lr} + ldr r0, _080B1B58 @ =sub_80B1B68 + movs r1, 0xA + bl CreateTask + ldr r4, _080B1B5C @ =gSprites + ldr r3, _080B1B60 @ =0x02019204 + adds r2, r3, 0 + adds r2, 0x58 + ldrb r1, [r2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + ldr r1, _080B1B64 @ =0x0000ffba + strh r1, [r0, 0x24] + ldrb r1, [r2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + adds r0, 0x3E + ldrb r2, [r0] + movs r1, 0x5 + negs r1, r1 + ands r1, r2 + strb r1, [r0] + ldrb r0, [r3, 0x6] + movs r1, 0x40 + orrs r0, r1 + strb r0, [r3, 0x6] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080B1B58: .4byte sub_80B1B68 +_080B1B5C: .4byte gSprites +_080B1B60: .4byte 0x02019204 +_080B1B64: .4byte 0x0000ffba + thumb_func_end sub_80B1B14 + + thumb_func_start sub_80B1B68 +sub_80B1B68: @ 80B1B68 + push {r4,r5,lr} + lsls r0, 24 + lsrs r0, 24 + adds r3, r0, 0 + ldr r4, _080B1BD0 @ =0x02019204 + adds r0, r4, 0 + adds r0, 0x58 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _080B1BD4 @ =gSprites + adds r2, r0, r1 + ldr r0, _080B1BD8 @ =gTasks + lsls r1, r3, 2 + adds r1, r3 + lsls r1, 3 + adds r1, r0 + movs r5, 0xD0 + lsls r5, 3 + adds r0, r5, 0 + ldrh r5, [r1, 0x1C] + adds r0, r5 + strh r0, [r1, 0x1C] + lsls r0, 16 + asrs r0, 24 + ldrh r5, [r2, 0x24] + adds r0, r5 + strh r0, [r2, 0x24] + ldrb r0, [r1, 0x1C] + strh r0, [r1, 0x1C] + movs r1, 0x24 + ldrsh r0, [r2, r1] + cmp r0, 0 + ble _080B1BB2 + movs r0, 0 + strh r0, [r2, 0x24] +_080B1BB2: + movs r5, 0x24 + ldrsh r0, [r2, r5] + cmp r0, 0 + bne _080B1BCA + ldrb r1, [r4, 0x6] + movs r0, 0x41 + negs r0, r0 + ands r0, r1 + strb r0, [r4, 0x6] + adds r0, r3, 0 + bl DestroyTask +_080B1BCA: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080B1BD0: .4byte 0x02019204 +_080B1BD4: .4byte gSprites +_080B1BD8: .4byte gTasks + thumb_func_end sub_80B1B68 + + thumb_func_start sub_80B1BDC +sub_80B1BDC: @ 80B1BDC + push {r4-r6,lr} + ldr r6, _080B1C04 @ =gSprites + ldr r4, _080B1C08 @ =0x02019204 + adds r5, r4, 0 + adds r5, 0x58 + ldrb r0, [r5] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r6 + adds r1, 0x3E + ldrb r0, [r1] + lsls r0, 29 + cmp r0, 0 + bge _080B1C0C + ldrb r1, [r4, 0x6] + movs r0, 0x41 + negs r0, r0 + ands r0, r1 + b _080B1C28 + .align 2, 0 +_080B1C04: .4byte gSprites +_080B1C08: .4byte 0x02019204 +_080B1C0C: + ldr r0, _080B1C30 @ =sub_80B1C34 + movs r1, 0xA + bl CreateTask + ldrb r1, [r5] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + movs r1, 0 + strh r1, [r0, 0x24] + ldrb r0, [r4, 0x6] + movs r1, 0x40 + orrs r0, r1 +_080B1C28: + strb r0, [r4, 0x6] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080B1C30: .4byte sub_80B1C34 + thumb_func_end sub_80B1BDC + + thumb_func_start sub_80B1C34 +sub_80B1C34: @ 80B1C34 + push {r4,r5,lr} + lsls r0, 24 + lsrs r0, 24 + adds r4, r0, 0 + ldr r5, _080B1CAC @ =0x02019204 + adds r0, r5, 0 + adds r0, 0x58 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _080B1CB0 @ =gSprites + adds r3, r0, r1 + ldr r0, _080B1CB4 @ =gTasks + lsls r2, r4, 2 + adds r2, r4 + lsls r2, 3 + adds r2, r0 + movs r1, 0xD0 + lsls r1, 3 + adds r0, r1, 0 + ldrh r1, [r2, 0x1C] + adds r0, r1 + strh r0, [r2, 0x1C] + lsls r0, 16 + asrs r0, 24 + ldrh r1, [r3, 0x24] + subs r1, r0 + strh r1, [r3, 0x24] + ldrb r0, [r2, 0x1C] + strh r0, [r2, 0x1C] + movs r2, 0x24 + ldrsh r0, [r3, r2] + movs r1, 0x46 + negs r1, r1 + cmp r0, r1 + bge _080B1C82 + ldr r0, _080B1CB8 @ =0x0000ffba + strh r0, [r3, 0x24] +_080B1C82: + movs r2, 0x24 + ldrsh r0, [r3, r2] + cmp r0, r1 + bne _080B1CA6 + adds r2, r3, 0 + adds r2, 0x3E + ldrb r0, [r2] + movs r1, 0x4 + orrs r0, r1 + strb r0, [r2] + ldrb r1, [r5, 0x6] + movs r0, 0x41 + negs r0, r0 + ands r0, r1 + strb r0, [r5, 0x6] + adds r0, r4, 0 + bl DestroyTask +_080B1CA6: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080B1CAC: .4byte 0x02019204 +_080B1CB0: .4byte gSprites +_080B1CB4: .4byte gTasks +_080B1CB8: .4byte 0x0000ffba + thumb_func_end sub_80B1C34 + + thumb_func_start sub_80B1CBC +sub_80B1CBC: @ 80B1CBC + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldr r0, _080B1CF0 @ =sub_80B1CFC + movs r1, 0x5 + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080B1CF4 @ =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + lsls r4, 24 + asrs r4, 24 + strh r4, [r1, 0x8] + ldr r2, _080B1CF8 @ =0x02019204 + ldrb r0, [r2, 0x6] + movs r1, 0x20 + orrs r0, r1 + strb r0, [r2, 0x6] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080B1CF0: .4byte sub_80B1CFC +_080B1CF4: .4byte gTasks +_080B1CF8: .4byte 0x02019204 + thumb_func_end sub_80B1CBC + + thumb_func_start sub_80B1CFC +sub_80B1CFC: @ 80B1CFC + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + ldr r1, _080B1D20 @ =gTasks + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r4, r0, r1 + movs r1, 0x1C + ldrsh r0, [r4, r1] + cmp r0, 0x1 + beq _080B1D30 + cmp r0, 0x1 + bgt _080B1D24 + cmp r0, 0 + beq _080B1D2A + b _080B1D78 + .align 2, 0 +_080B1D20: .4byte gTasks +_080B1D24: + cmp r0, 0x2 + beq _080B1D50 + b _080B1D78 +_080B1D2A: + bl sub_80B1B14 + b _080B1D44 +_080B1D30: + ldr r0, _080B1D4C @ =0x02019204 + ldrb r1, [r0, 0x6] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + bne _080B1D78 + movs r0, 0x8 + ldrsb r0, [r4, r0] + bl nullsub_18 +_080B1D44: + ldrh r0, [r4, 0x1C] + adds r0, 0x1 + strh r0, [r4, 0x1C] + b _080B1D78 + .align 2, 0 +_080B1D4C: .4byte 0x02019204 +_080B1D50: + ldrh r0, [r4, 0x1E] + adds r1, r0, 0x1 + strh r1, [r4, 0x1E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x14 + ble _080B1D78 + movs r0, 0 + strh r0, [r4, 0x1E] + bl sub_80B1928 + ldr r2, _080B1D80 @ =0x02019204 + ldrb r1, [r2, 0x6] + movs r0, 0x21 + negs r0, r0 + ands r0, r1 + strb r0, [r2, 0x6] + adds r0, r5, 0 + bl DestroyTask +_080B1D78: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080B1D80: .4byte 0x02019204 + thumb_func_end sub_80B1CFC + + thumb_func_start unref_sub_80B1D84 +unref_sub_80B1D84: @ 80B1D84 + ldr r3, _080B1DB0 @ =gSprites + ldr r2, _080B1DB4 @ =0x02019204 + adds r2, 0x58 + ldrb r1, [r2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + movs r1, 0 + strh r1, [r0, 0x24] + ldrb r1, [r2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + adds r0, 0x3E + ldrb r2, [r0] + movs r1, 0x5 + negs r1, r1 + ands r1, r2 + strb r1, [r0] + bx lr + .align 2, 0 +_080B1DB0: .4byte gSprites +_080B1DB4: .4byte 0x02019204 + thumb_func_end unref_sub_80B1D84 + + thumb_func_start unref_sub_80B1DB8 +unref_sub_80B1DB8: @ 80B1DB8 + ldr r2, _080B1DD4 @ =gSprites + ldr r0, _080B1DD8 @ =0x02019204 + adds r0, 0x58 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + adds r0, 0x3E + ldrb r1, [r0] + movs r2, 0x4 + orrs r1, r2 + strb r1, [r0] + bx lr + .align 2, 0 +_080B1DD4: .4byte gSprites +_080B1DD8: .4byte 0x02019204 + thumb_func_end unref_sub_80B1DB8 + + thumb_func_start sub_80B1DDC +sub_80B1DDC: @ 80B1DDC + push {lr} + ldr r0, _080B1DF4 @ =sub_80B1DFC + movs r1, 0xF + bl CreateTask + ldr r2, _080B1DF8 @ =0x02019204 + ldrb r0, [r2, 0x6] + movs r1, 0x80 + orrs r0, r1 + strb r0, [r2, 0x6] + pop {r0} + bx r0 + .align 2, 0 +_080B1DF4: .4byte sub_80B1DFC +_080B1DF8: .4byte 0x02019204 + thumb_func_end sub_80B1DDC + + thumb_func_start sub_80B1DFC +sub_80B1DFC: @ 80B1DFC + push {r4-r6,lr} + lsls r0, 24 + lsrs r5, r0, 24 + ldr r2, _080B1E3C @ =gTasks + lsls r4, r5, 2 + adds r0, r4, r5 + lsls r0, 3 + adds r3, r0, r2 + ldrh r0, [r3, 0x1C] + adds r1, r0, 0x1 + strh r1, [r3, 0x1C] + lsls r0, 16 + asrs r0, 16 + adds r6, r2, 0 + cmp r0, 0x6 + ble _080B1E8E + movs r0, 0 + strh r0, [r3, 0x1C] + movs r1, 0x1E + ldrsh r0, [r3, r1] + cmp r0, 0 + bne _080B1E50 + ldr r1, _080B1E40 @ =0x02016800 + ldr r2, _080B1E44 @ =0x06002000 + ldr r0, _080B1E48 @ =0x040000d4 + str r1, [r0] + str r2, [r0, 0x4] + ldr r1, _080B1E4C @ =0x84000400 + str r1, [r0, 0x8] + ldr r0, [r0, 0x8] + b _080B1E66 + .align 2, 0 +_080B1E3C: .4byte gTasks +_080B1E40: .4byte 0x02016800 +_080B1E44: .4byte 0x06002000 +_080B1E48: .4byte 0x040000d4 +_080B1E4C: .4byte 0x84000400 +_080B1E50: + ldr r1, _080B1E94 @ =0x02015800 + ldr r2, _080B1E98 @ =0x06002000 + ldr r0, _080B1E9C @ =0x040000d4 + str r1, [r0] + str r2, [r0, 0x4] + ldr r1, _080B1EA0 @ =0x84000400 + str r1, [r0, 0x8] + ldr r0, [r0, 0x8] + ldrh r0, [r3, 0x20] + adds r0, 0x1 + strh r0, [r3, 0x20] +_080B1E66: + adds r0, r4, 0 + adds r0, r5 + lsls r0, 3 + adds r0, r6 + ldrh r1, [r0, 0x1E] + movs r2, 0x1 + eors r1, r2 + strh r1, [r0, 0x1E] + movs r1, 0x20 + ldrsh r0, [r0, r1] + cmp r0, 0x9 + bne _080B1E8E + ldr r2, _080B1EA4 @ =0x02019204 + ldrb r1, [r2, 0x6] + movs r0, 0x7F + ands r0, r1 + strb r0, [r2, 0x6] + adds r0, r5, 0 + bl DestroyTask +_080B1E8E: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080B1E94: .4byte 0x02015800 +_080B1E98: .4byte 0x06002000 +_080B1E9C: .4byte 0x040000d4 +_080B1EA0: .4byte 0x84000400 +_080B1EA4: .4byte 0x02019204 + thumb_func_end sub_80B1DFC + + thumb_func_start sub_80B1EA8 +sub_80B1EA8: @ 80B1EA8 + push {r4-r7,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + lsls r1, 24 + lsrs r5, r1, 24 + ldr r0, _080B1EE4 @ =sub_80B1F4C + movs r1, 0xA + bl CreateTask + lsls r0, 24 + lsrs r6, r0, 24 + lsls r4, 24 + cmp r4, 0 + ble _080B1F08 + ldr r7, _080B1EE8 @ =0x0000237e + lsls r0, r5, 24 + adds r4, r0, 0 + cmp r4, 0 + ble _080B1EF0 + movs r5, 0 + ldr r2, _080B1EEC @ =0x02019204 + movs r1, 0x13 + ldrsb r1, [r2, r1] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 24 + lsrs r3, r0, 24 + b _080B1F1E + .align 2, 0 +_080B1EE4: .4byte sub_80B1F4C +_080B1EE8: .4byte 0x0000237e +_080B1EEC: .4byte 0x02019204 +_080B1EF0: + ldr r2, _080B1F04 @ =0x02019204 + movs r1, 0x13 + ldrsb r1, [r2, r1] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 24 + lsrs r5, r0, 24 + movs r3, 0 + b _080B1F1E + .align 2, 0 +_080B1F04: .4byte 0x02019204 +_080B1F08: + movs r7, 0 + lsls r0, r5, 24 + adds r4, r0, 0 + cmp r4, 0 + ble _080B1F18 + movs r5, 0 + movs r3, 0xC + b _080B1F1C +_080B1F18: + movs r5, 0xC + movs r3, 0 +_080B1F1C: + ldr r2, _080B1F44 @ =0x02019204 +_080B1F1E: + ldr r1, _080B1F48 @ =gTasks + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 3 + adds r0, r1 + strh r7, [r0, 0x8] + strh r5, [r0, 0xA] + asrs r1, r4, 24 + strh r1, [r0, 0xC] + strh r3, [r0, 0xE] + ldrb r1, [r2, 0x7] + movs r0, 0x2 + negs r0, r0 + ands r0, r1 + strb r0, [r2, 0x7] + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080B1F44: .4byte 0x02019204 +_080B1F48: .4byte gTasks + thumb_func_end sub_80B1EA8 + + thumb_func_start sub_80B1F4C +sub_80B1F4C: @ 80B1F4C + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + ldr r2, _080B1F7C @ =gTasks + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r3, r0, r2 + ldrh r0, [r3, 0x1C] + adds r1, r0, 0x1 + strh r1, [r3, 0x1C] + lsls r0, 16 + cmp r0, 0 + blt _080B1FC4 + movs r0, 0 + strh r0, [r3, 0x1C] + movs r1, 0xC + ldrsh r0, [r3, r1] + cmp r0, 0 + ble _080B1F80 + ldrh r0, [r3, 0xA] + adds r0, 0x1 + b _080B1F84 + .align 2, 0 +_080B1F7C: .4byte gTasks +_080B1F80: + ldrh r0, [r3, 0xA] + subs r0, 0x1 +_080B1F84: + strh r0, [r3, 0xA] + lsls r4, r5, 2 + adds r4, r5 + lsls r4, 3 + adds r4, r2 + ldrb r2, [r4, 0xA] + ldrh r3, [r4, 0x8] + movs r0, 0x11 + movs r1, 0x1 + bl BlendPalette + ldrb r2, [r4, 0xA] + ldrh r3, [r4, 0x8] + movs r0, 0x1A + movs r1, 0x1 + bl BlendPalette + movs r2, 0xA + ldrsh r1, [r4, r2] + movs r2, 0xE + ldrsh r0, [r4, r2] + cmp r1, r0 + bne _080B1FC4 + adds r0, r5, 0 + bl DestroyTask + ldr r2, _080B1FCC @ =0x02019204 + ldrb r1, [r2, 0x7] + movs r0, 0x2 + negs r0, r0 + ands r0, r1 + strb r0, [r2, 0x7] +_080B1FC4: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080B1FCC: .4byte 0x02019204 + thumb_func_end sub_80B1F4C + + thumb_func_start sub_80B1FD0 +sub_80B1FD0: @ 80B1FD0 + push {r4-r7,lr} + mov r7, r8 + push {r7} + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + movs r5, 0 + ldr r0, _080B204C @ =0x02019260 + ldr r6, _080B2050 @ =gSprites + adds r4, r0, 0 + adds r4, 0xD8 + adds r7, r0, 0 +_080B1FE8: + ldrb r1, [r7, 0x10] + movs r0, 0xC0 + ands r0, r1 + cmp r0, 0 + beq _080B2064 + mov r0, r8 + cmp r0, 0 + beq _080B2064 + lsls r0, r5, 24 + lsrs r0, 24 + bl sub_80B208C + ldrb r2, [r4, 0x1] + lsls r1, r2, 4 + adds r1, r2 + lsls r1, 2 + adds r1, r6 + ldrh r1, [r1, 0x4] + lsls r1, 22 + lsrs r1, 17 + ldr r2, _080B2054 @ =0x060100a0 + adds r1, r2 + ldr r2, _080B2058 @ =REG_BG0HOFS + bl CpuSet + ldrb r0, [r4, 0x1] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r6 + ldr r2, _080B205C @ =gUnknown_083CA33C + ldr r0, _080B2060 @ =gUnknown_02038696 + adds r0, r5, r0 + ldrb r0, [r0] + adds r0, r2 + ldrb r0, [r0] + strh r0, [r1, 0x22] + ldrb r1, [r4, 0x1] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + adds r0, 0x3E + ldrb r1, [r0] + movs r3, 0x5 + negs r3, r3 + adds r2, r3, 0 + ands r1, r2 + b _080B2076 + .align 2, 0 +_080B204C: .4byte 0x02019260 +_080B2050: .4byte gSprites +_080B2054: .4byte 0x060100a0 +_080B2058: .4byte REG_BG0HOFS +_080B205C: .4byte gUnknown_083CA33C +_080B2060: .4byte gUnknown_02038696 +_080B2064: + ldrb r1, [r4, 0x1] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + adds r0, 0x3E + ldrb r1, [r0] + movs r2, 0x4 + orrs r1, r2 +_080B2076: + strb r1, [r0] + adds r4, 0x4 + adds r7, 0x1C + adds r5, 0x1 + cmp r5, 0x3 + ble _080B1FE8 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80B1FD0 + + thumb_func_start sub_80B208C +sub_80B208C: @ 80B208C + push {lr} + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 3 + subs r1, r0 + lsls r1, 2 + ldr r0, _080B20B0 @ =0x02019260 + adds r2, r1, r0 + ldrb r1, [r2, 0x10] + movs r0, 0xC0 + ands r0, r1 + cmp r0, 0x40 + bne _080B20B8 + ldrb r0, [r2, 0x19] + lsls r0, 6 + ldr r1, _080B20B4 @ =gContestNextTurnNumbersGfx + adds r0, r1 + b _080B20BA + .align 2, 0 +_080B20B0: .4byte 0x02019260 +_080B20B4: .4byte gContestNextTurnNumbersGfx +_080B20B8: + ldr r0, _080B20C0 @ =gContestNextTurnRandomGfx +_080B20BA: + pop {r1} + bx r1 + .align 2, 0 +_080B20C0: .4byte gContestNextTurnRandomGfx + thumb_func_end sub_80B208C + + thumb_func_start unref_sub_80B20C4 +unref_sub_80B20C4: @ 80B20C4 + push {r4-r7,lr} + movs r6, 0 + ldr r7, _080B2134 @ =0x020192dd +_080B20CA: + adds r0, r6, r7 + ldrb r0, [r0] + cmp r0, 0 + beq _080B2126 + lsls r0, r6, 24 + lsrs r5, r0, 24 + adds r0, r5, 0 + bl sub_80AF59C + lsls r0, 24 + cmp r0, 0 + bne _080B2126 + ldr r0, _080B2138 @ =gUnknown_02038696 + adds r0, r6, r0 + ldrb r0, [r0] + lsls r4, r0, 2 + adds r4, r0 + adds r4, 0x2 + lsls r4, 24 + lsrs r4, 24 + adds r0, r5, 0 + movs r1, 0x3 + bl sub_80AEFE8 + lsls r0, 16 + lsrs r0, 16 + lsls r4, 6 + ldr r2, _080B213C @ =0x0600c028 + adds r1, r4, r2 + strh r0, [r1] + ldr r1, _080B2140 @ =0x0600c02a + adds r2, r4, r1 + adds r1, r0, 0x1 + strh r1, [r2] + ldr r1, _080B2144 @ =0x0600c068 + adds r2, r4, r1 + adds r1, r0, 0 + adds r1, 0x10 + strh r1, [r2] + ldr r2, _080B2148 @ =0x0600c06a + adds r4, r2 + adds r0, 0x11 + strh r0, [r4] + movs r0, 0x63 + bl PlaySE +_080B2126: + adds r6, 0x1 + cmp r6, 0x3 + ble _080B20CA + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080B2134: .4byte 0x020192dd +_080B2138: .4byte gUnknown_02038696 +_080B213C: .4byte 0x0600c028 +_080B2140: .4byte 0x0600c02a +_080B2144: .4byte 0x0600c068 +_080B2148: .4byte 0x0600c06a + thumb_func_end unref_sub_80B20C4 + + thumb_func_start sub_80B214C +sub_80B214C: @ 80B214C + push {lr} + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 3 + subs r1, r0 + lsls r1, 2 + ldr r0, _080B2178 @ =0x02019260 + adds r2, r1, r0 + ldrb r1, [r2, 0x15] + movs r3, 0x1 + adds r0, r3, 0 + ands r0, r1 + cmp r0, 0 + bne _080B2172 + ldrb r1, [r2, 0xC] + adds r0, r3, 0 + ands r0, r1 + cmp r0, 0 + beq _080B217C +_080B2172: + movs r0, 0 + b _080B217E + .align 2, 0 +_080B2178: .4byte 0x02019260 +_080B217C: + movs r0, 0x1 +_080B217E: + pop {r1} + bx r1 + thumb_func_end sub_80B214C + + thumb_func_start sub_80B2184 +sub_80B2184: @ 80B2184 + push {r4-r7,lr} + sub sp, 0x4 + ldr r4, _080B2250 @ =REG_BG1CNT + ldrb r1, [r4] + movs r0, 0x4 + negs r0, r0 + ands r0, r1 + strb r0, [r4] + ldrb r1, [r4, 0x1] + movs r0, 0x3F + ands r0, r1 + movs r1, 0x40 + orrs r0, r1 + strb r0, [r4, 0x1] + ldrb r1, [r4, 0x1] + movs r0, 0x21 + negs r0, r0 + ands r0, r1 + strb r0, [r4, 0x1] + ldr r0, _080B2254 @ =gUnknown_030042C0 + movs r2, 0xF0 + strh r2, [r0] + ldr r0, _080B2258 @ =gUnknown_030041B4 + movs r1, 0xA0 + strh r1, [r0] + ldr r0, _080B225C @ =REG_BG1HOFS + strh r2, [r0] + adds r0, 0x2 + strh r1, [r0] + ldr r1, _080B2260 @ =0x0600f000 + movs r0, 0 + str r0, [sp] + ldr r0, _080B2264 @ =0x040000d4 + mov r2, sp + str r2, [r0] + str r1, [r0, 0x4] + ldr r2, _080B2268 @ =0x85000400 + str r2, [r0, 0x8] + ldr r0, [r0, 0x8] + ldr r0, _080B226C @ =gUnknown_08D17C3C + bl LZDecompressVram + ldrb r1, [r4] + movs r2, 0xD + negs r2, r2 + adds r0, r2, 0 + ands r0, r1 + strb r0, [r4] + movs r4, 0 + ldr r6, _080B2270 @ =gSprites + adds r7, r2, 0 + movs r5, 0x4 + ldr r3, _080B2274 @ =0x02019338 +_080B21EE: + ldrb r0, [r3] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r6 + ldrb r2, [r1, 0x5] + adds r0, r7, 0 + ands r0, r2 + orrs r0, r5 + strb r0, [r1, 0x5] + ldrb r0, [r3, 0x1] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r6 + ldrb r2, [r1, 0x5] + adds r0, r7, 0 + ands r0, r2 + orrs r0, r5 + strb r0, [r1, 0x5] + adds r3, 0x4 + adds r4, 0x1 + cmp r4, 0x3 + ble _080B21EE + ldr r3, _080B2278 @ =REG_BG2CNT + ldrb r2, [r3] + movs r1, 0x4 + negs r1, r1 + adds r0, r1, 0 + ands r0, r2 + movs r4, 0x1 + orrs r0, r4 + strb r0, [r3] + ldr r2, _080B227C @ =REG_BG0CNT + ldrb r0, [r2] + ands r1, r0 + orrs r1, r4 + strb r1, [r2] + adds r2, 0x2 + ldrb r1, [r2, 0x1] + movs r0, 0x3F + ands r0, r1 + movs r1, 0x80 + orrs r0, r1 + strb r0, [r2, 0x1] + add sp, 0x4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080B2250: .4byte REG_BG1CNT +_080B2254: .4byte gUnknown_030042C0 +_080B2258: .4byte gUnknown_030041B4 +_080B225C: .4byte REG_BG1HOFS +_080B2260: .4byte 0x0600f000 +_080B2264: .4byte 0x040000d4 +_080B2268: .4byte 0x85000400 +_080B226C: .4byte gUnknown_08D17C3C +_080B2270: .4byte gSprites +_080B2274: .4byte 0x02019338 +_080B2278: .4byte REG_BG2CNT +_080B227C: .4byte REG_BG0CNT + thumb_func_end sub_80B2184 + + thumb_func_start sub_80B2280 +sub_80B2280: @ 80B2280 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x4 + ldr r2, _080B2358 @ =0x06008000 + movs r3, 0x80 + lsls r3, 6 + ldr r0, _080B235C @ =gUnknown_030042C0 + mov r12, r0 + ldr r0, _080B2360 @ =gUnknown_030041B4 + mov r8, r0 + movs r5, 0 + ldr r1, _080B2364 @ =0x040000d4 + movs r4, 0x80 + lsls r4, 5 + ldr r6, _080B2368 @ =0x85000400 + movs r7, 0x85 + lsls r7, 24 +_080B22A4: + str r5, [sp] + mov r0, sp + str r0, [r1] + str r2, [r1, 0x4] + str r6, [r1, 0x8] + ldr r0, [r1, 0x8] + adds r2, r4 + subs r3, r4 + cmp r3, r4 + bhi _080B22A4 + str r5, [sp] + mov r0, sp + str r0, [r1] + str r2, [r1, 0x4] + lsrs r0, r3, 2 + orrs r0, r7 + str r0, [r1, 0x8] + ldr r0, [r1, 0x8] + ldr r1, _080B236C @ =0x0600f000 + movs r2, 0 + str r2, [sp] + ldr r0, _080B2364 @ =0x040000d4 + mov r3, sp + str r3, [r0] + str r1, [r0, 0x4] + ldr r1, _080B2368 @ =0x85000400 + str r1, [r0, 0x8] + ldr r0, [r0, 0x8] + mov r0, r12 + strh r2, [r0] + mov r3, r8 + strh r2, [r3] + ldr r2, _080B2370 @ =REG_BG1CNT + ldrb r1, [r2] + movs r0, 0x4 + negs r0, r0 + ands r0, r1 + movs r1, 0x1 + orrs r0, r1 + strb r0, [r2] + ldrb r1, [r2, 0x1] + movs r0, 0x3F + ands r0, r1 + strb r0, [r2, 0x1] + ldrb r1, [r2, 0x1] + movs r0, 0x21 + negs r0, r0 + ands r0, r1 + strb r0, [r2, 0x1] + ldrb r1, [r2] + movs r3, 0xD + negs r3, r3 + adds r0, r3, 0 + ands r0, r1 + movs r1, 0x8 + orrs r0, r1 + strb r0, [r2] + movs r4, 0 + ldr r5, _080B2374 @ =gSprites + adds r6, r3, 0 + ldr r3, _080B2378 @ =0x02019338 +_080B231E: + ldrb r0, [r3] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r5 + ldrb r2, [r1, 0x5] + adds r0, r6, 0 + ands r0, r2 + strb r0, [r1, 0x5] + ldrb r0, [r3, 0x1] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r5 + ldrb r2, [r1, 0x5] + adds r0, r6, 0 + ands r0, r2 + strb r0, [r1, 0x5] + adds r3, 0x4 + adds r4, 0x1 + cmp r4, 0x3 + ble _080B231E + add sp, 0x4 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080B2358: .4byte 0x06008000 +_080B235C: .4byte gUnknown_030042C0 +_080B2360: .4byte gUnknown_030041B4 +_080B2364: .4byte 0x040000d4 +_080B2368: .4byte 0x85000400 +_080B236C: .4byte 0x0600f000 +_080B2370: .4byte REG_BG1CNT +_080B2374: .4byte gSprites +_080B2378: .4byte 0x02019338 + thumb_func_end sub_80B2280 + + thumb_func_start sub_80B237C +sub_80B237C: @ 80B237C + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldr r1, _080B23AC @ =gUnknown_030042C0 + movs r0, 0 + strh r0, [r1] + ldr r1, _080B23B0 @ =gUnknown_030041B4 + movs r0, 0xA0 + strh r0, [r1] + movs r0, 0x62 + movs r1, 0 + bl PlaySE12WithPanning + ldr r1, _080B23B4 @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, _080B23B8 @ =sub_80B23BC + str r1, [r0] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080B23AC: .4byte gUnknown_030042C0 +_080B23B0: .4byte gUnknown_030041B4 +_080B23B4: .4byte gTasks +_080B23B8: .4byte sub_80B23BC + thumb_func_end sub_80B237C + + thumb_func_start sub_80B23BC +sub_80B23BC: @ 80B23BC + push {lr} + lsls r0, 24 + lsrs r3, r0, 24 + ldr r1, _080B23F4 @ =gUnknown_030041B4 + ldrh r0, [r1] + subs r0, 0x7 + strh r0, [r1] + lsls r0, 16 + cmp r0, 0 + bge _080B23D4 + movs r0, 0 + strh r0, [r1] +_080B23D4: + ldrh r2, [r1] + cmp r2, 0 + bne _080B23EE + ldr r0, _080B23F8 @ =gTasks + lsls r1, r3, 2 + adds r1, r3 + lsls r1, 3 + adds r1, r0 + strh r2, [r1, 0x8] + strh r2, [r1, 0xA] + strh r2, [r1, 0xC] + ldr r0, _080B23FC @ =sub_80B2400 + str r0, [r1] +_080B23EE: + pop {r0} + bx r0 + .align 2, 0 +_080B23F4: .4byte gUnknown_030041B4 +_080B23F8: .4byte gTasks +_080B23FC: .4byte sub_80B2400 + thumb_func_end sub_80B23BC + + thumb_func_start sub_80B2400 +sub_80B2400: @ 80B2400 + push {r4-r6,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r1, _080B2424 @ =gTasks + lsls r3, r4, 2 + adds r0, r3, r4 + lsls r0, 3 + adds r5, r0, r1 + movs r0, 0x8 + ldrsh r1, [r5, r0] + cmp r1, 0x1 + beq _080B247C + cmp r1, 0x1 + bgt _080B2428 + cmp r1, 0 + beq _080B2432 + b _080B24FC + .align 2, 0 +_080B2424: .4byte gTasks +_080B2428: + cmp r1, 0x2 + beq _080B24D6 + cmp r1, 0x3 + beq _080B24EC + b _080B24FC +_080B2432: + movs r2, 0 + adds r6, r3, 0 + ldr r5, _080B2470 @ =0x02019218 + ldr r3, _080B2474 @ =gUnknown_02038696 +_080B243A: + adds r0, r2, r5 + adds r1, r2, r3 + ldrb r1, [r1] + strb r1, [r0] + adds r2, 0x1 + cmp r2, 0x3 + ble _080B243A + bl sub_80AFA5C + bl sub_80B0588 + bl sub_80AEF50 + bl sub_80B1118 + movs r0, 0x1 + bl sub_80B1FD0 + bl sub_80AFFA0 + ldr r0, _080B2478 @ =gTasks + adds r1, r6, r4 + lsls r1, 3 + adds r1, r0 + movs r0, 0x1 + strh r0, [r1, 0x8] + b _080B24FC + .align 2, 0 +_080B2470: .4byte 0x02019218 +_080B2474: .4byte gUnknown_02038696 +_080B2478: .4byte gTasks +_080B247C: + ldr r0, _080B24C0 @ =gUnknown_0203869A + ldrb r0, [r0] + ands r1, r0 + cmp r1, 0 + beq _080B24D0 + ldr r2, _080B24C4 @ =0x02019204 + ldrb r0, [r2, 0x7] + movs r1, 0x4 + orrs r0, r1 + strb r0, [r2, 0x7] + bl sub_80AE074 + lsls r0, 24 + cmp r0, 0 + beq _080B249E + bl sub_80AF438 +_080B249E: + ldr r4, _080B24C8 @ =sub_80C8C80 + adds r0, r4, 0 + movs r1, 0 + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080B24CC @ =sub_80AD8DC + adds r1, r4, 0 + bl SetTaskFuncWithFollowupFunc + bl sub_80AF860 + movs r0, 0x2 + strh r0, [r5, 0x8] + b _080B24FC + .align 2, 0 +_080B24C0: .4byte gUnknown_0203869A +_080B24C4: .4byte 0x02019204 +_080B24C8: .4byte sub_80C8C80 +_080B24CC: .4byte sub_80AD8DC +_080B24D0: + bl sub_80AF438 + b _080B24E2 +_080B24D6: + ldr r0, _080B24E8 @ =0x02019204 + ldrb r1, [r0, 0x7] + movs r0, 0x4 + ands r0, r1 + cmp r0, 0 + bne _080B24FC +_080B24E2: + movs r0, 0x3 + strh r0, [r5, 0x8] + b _080B24FC + .align 2, 0 +_080B24E8: .4byte 0x02019204 +_080B24EC: + bl sub_80AF120 + bl sub_80AEB30 + movs r0, 0 + strh r0, [r5, 0x8] + ldr r0, _080B2504 @ =sub_80B253C + str r0, [r5] +_080B24FC: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080B2504: .4byte sub_80B253C + thumb_func_end sub_80B2400 + + thumb_func_start sub_80B2508 +sub_80B2508: @ 80B2508 + push {lr} + lsls r0, 24 + lsrs r2, r0, 24 + ldr r1, _080B2530 @ =gUnknown_030041B4 + ldrh r0, [r1] + adds r0, 0x7 + strh r0, [r1] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0xA0 + ble _080B252C + ldr r0, _080B2534 @ =gTasks + lsls r1, r2, 2 + adds r1, r2 + lsls r1, 3 + adds r1, r0 + ldr r0, _080B2538 @ =sub_80ADCDC + str r0, [r1] +_080B252C: + pop {r0} + bx r0 + .align 2, 0 +_080B2530: .4byte gUnknown_030041B4 +_080B2534: .4byte gTasks +_080B2538: .4byte sub_80ADCDC + thumb_func_end sub_80B2508 + + thumb_func_start sub_80B253C +sub_80B253C: @ 80B253C + push {r4,lr} + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080B255C @ =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + ldrh r2, [r1, 0xC] + movs r3, 0xC + ldrsh r0, [r1, r3] + cmp r0, 0x9 + bgt _080B2560 + adds r0, r2, 0x1 + strh r0, [r1, 0xC] + b _080B259C + .align 2, 0 +_080B255C: .4byte gTasks +_080B2560: + ldrh r3, [r1, 0xA] + movs r4, 0xA + ldrsh r0, [r1, r4] + cmp r0, 0 + bne _080B257E + ldrh r2, [r1, 0x8] + movs r4, 0x8 + ldrsh r0, [r1, r4] + cmp r0, 0x10 + bne _080B257A + adds r0, r3, 0x1 + strh r0, [r1, 0xA] + b _080B259C +_080B257A: + adds r0, r2, 0x1 + b _080B259A +_080B257E: + ldrh r0, [r1, 0x8] + movs r3, 0x8 + ldrsh r2, [r1, r3] + cmp r2, 0 + bne _080B2598 + strh r2, [r1, 0xA] + strh r2, [r1, 0xC] + ldr r0, _080B2594 @ =sub_80B25A4 + str r0, [r1] + b _080B259C + .align 2, 0 +_080B2594: .4byte sub_80B25A4 +_080B2598: + subs r0, 0x1 +_080B259A: + strh r0, [r1, 0x8] +_080B259C: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80B253C + + thumb_func_start sub_80B25A4 +sub_80B25A4: @ 80B25A4 + push {r4,lr} + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080B25C4 @ =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r4, r1, r2 + ldrh r1, [r4, 0xC] + movs r2, 0xC + ldrsh r0, [r4, r2] + cmp r0, 0x9 + bgt _080B25C8 + adds r0, r1, 0x1 + strh r0, [r4, 0xC] + b _080B25D8 + .align 2, 0 +_080B25C4: .4byte gTasks +_080B25C8: + movs r0, 0 + strh r0, [r4, 0xC] + movs r0, 0x61 + movs r1, 0 + bl PlaySE12WithPanning + ldr r0, _080B25E0 @ =sub_80B2508 + str r0, [r4] +_080B25D8: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080B25E0: .4byte sub_80B2508 + thumb_func_end sub_80B25A4 + + thumb_func_start sub_80B25E4 +sub_80B25E4: @ 80B25E4 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + lsls r0, 24 + lsrs r0, 24 + mov r9, r0 + movs r6, 0 + ldr r5, _080B26B4 @ =gSprites +_080B25F6: + bl AllocOamMatrix + lsls r1, r6, 2 + ldr r2, _080B26B8 @ =0x02019338 + mov r8, r2 + adds r4, r1, r2 + ldrb r1, [r4] + lsls r3, r1, 4 + adds r3, r1 + lsls r3, 2 + adds r3, r5 + lsls r0, 24 + lsrs r0, 24 + movs r1, 0x1F + ands r0, r1 + lsls r0, 1 + ldrb r1, [r3, 0x3] + movs r7, 0x3F + negs r7, r7 + adds r2, r7, 0 + ands r1, r2 + orrs r1, r0 + strb r1, [r3, 0x3] + ldrb r1, [r4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + ldrb r2, [r0, 0x1] + movs r3, 0x4 + negs r3, r3 + adds r1, r3, 0 + ands r2, r1 + movs r1, 0x1 + orrs r2, r1 + strb r2, [r0, 0x1] + ldrb r1, [r4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + mov r1, r9 + bl StartSpriteAffineAnim + mov r7, r9 + cmp r7, 0x2 + bne _080B267A + ldrb r1, [r4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + bl AnimateSprite + ldrb r1, [r4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + adds r0, 0x3E + ldrb r1, [r0] + movs r3, 0x5 + negs r3, r3 + adds r2, r3, 0 + ands r1, r2 + strb r1, [r0] +_080B267A: + adds r6, 0x1 + cmp r6, 0x3 + ble _080B25F6 + ldr r0, _080B26BC @ =sub_80B26C8 + movs r1, 0x5 + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080B26C0 @ =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + mov r7, r9 + strh r7, [r1, 0x8] + ldr r2, _080B26C4 @ =0xfffffecc + add r2, r8 + ldrb r0, [r2, 0x7] + movs r1, 0x2 + orrs r0, r1 + strb r0, [r2, 0x7] + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080B26B4: .4byte gSprites +_080B26B8: .4byte 0x02019338 +_080B26BC: .4byte sub_80B26C8 +_080B26C0: .4byte gTasks +_080B26C4: .4byte 0xfffffecc + thumb_func_end sub_80B25E4 + + thumb_func_start sub_80B26C8 +sub_80B26C8: @ 80B26C8 + push {r4-r6,lr} + lsls r0, 24 + lsrs r6, r0, 24 + ldr r2, _080B2750 @ =gSprites + ldr r4, _080B2754 @ =0x02019338 + ldrb r1, [r4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + adds r0, 0x3F + ldrb r0, [r0] + lsls r0, 26 + cmp r0, 0 + bge _080B274A + ldr r0, _080B2758 @ =gTasks + lsls r1, r6, 2 + adds r1, r6 + lsls r1, 3 + adds r1, r0 + ldrb r0, [r1, 0x8] + cmp r0, 0x1 + bne _080B2718 + adds r5, r2, 0 + movs r3, 0x4 + adds r2, r4, 0 + movs r4, 0x3 +_080B26FE: + ldrb r0, [r2] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r5 + adds r1, 0x3E + ldrb r0, [r1] + orrs r0, r3 + strb r0, [r1] + adds r2, 0x4 + subs r4, 0x1 + cmp r4, 0 + bge _080B26FE +_080B2718: + movs r4, 0 +_080B271A: + lsls r0, r4, 2 + ldr r5, _080B2754 @ =0x02019338 + adds r0, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _080B2750 @ =gSprites + adds r0, r1 + bl FreeSpriteOamMatrix + adds r4, 0x1 + cmp r4, 0x3 + ble _080B271A + ldr r0, _080B275C @ =0xfffffecc + adds r2, r5, r0 + ldrb r1, [r2, 0x7] + movs r0, 0x3 + negs r0, r0 + ands r0, r1 + strb r0, [r2, 0x7] + adds r0, r6, 0 + bl DestroyTask +_080B274A: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080B2750: .4byte gSprites +_080B2754: .4byte 0x02019338 +_080B2758: .4byte gTasks +_080B275C: .4byte 0xfffffecc + thumb_func_end sub_80B26C8 + + thumb_func_start sub_80B2760 +sub_80B2760: @ 80B2760 + push {lr} + lsls r0, 16 + lsrs r1, r0, 16 + movs r0, 0xB1 + lsls r0, 1 + cmp r1, r0 + bls _080B2770 + movs r1, 0x1 +_080B2770: + adds r0, r1, 0 + pop {r1} + bx r1 + thumb_func_end sub_80B2760 + + thumb_func_start sub_80B2778 +sub_80B2778: @ 80B2778 + push {lr} + lsls r0, 16 + lsrs r1, r0, 16 + ldr r0, _080B278C @ =0x0000019b + cmp r1, r0 + bls _080B2786 + movs r1, 0 +_080B2786: + adds r0, r1, 0 + pop {r1} + bx r1 + .align 2, 0 +_080B278C: .4byte 0x0000019b + thumb_func_end sub_80B2778 + + thumb_func_start sub_80B2790 +sub_80B2790: @ 80B2790 + push {r4-r7,lr} + lsls r0, 24 + lsrs r6, r0, 24 + lsls r0, r6, 3 + subs r0, r6 + lsls r0, 2 + ldr r4, _080B27F0 @ =0x02019260 + adds r0, r4 + ldrh r0, [r0, 0x6] + bl sub_80B2760 + lsls r0, 16 + lsrs r5, r0, 16 + ldr r1, _080B27F4 @ =gUnknown_02038570 + lsls r0, r6, 6 + adds r0, r1 + ldrh r0, [r0] + bl sub_80B2778 + lsls r0, 16 + lsrs r7, r0, 16 + adds r4, 0xE8 + adds r0, r4, 0 + movs r1, 0 + movs r2, 0x14 + bl memset + bl sub_8075624 + ldr r1, _080B27F8 @ =gUnknown_02024E84 + movs r2, 0 + adds r0, r1, 0x3 +_080B27D0: + strb r2, [r0] + subs r0, 0x1 + cmp r0, r1 + bge _080B27D0 + cmp r5, 0x90 + beq _080B2848 + cmp r5, 0x90 + bgt _080B2806 + cmp r5, 0x4C + beq _080B2898 + cmp r5, 0x4C + bgt _080B27FC + cmp r5, 0xD + beq _080B2898 + b _080B28BE + .align 2, 0 +_080B27F0: .4byte 0x02019260 +_080B27F4: .4byte gUnknown_02038570 +_080B27F8: .4byte gUnknown_02024E84 +_080B27FC: + cmp r5, 0x82 + beq _080B2898 + cmp r5, 0x8F + beq _080B2898 + b _080B28BE +_080B2806: + cmp r5, 0xD8 + beq _080B2880 + cmp r5, 0xD8 + bgt _080B2814 + cmp r5, 0xAE + beq _080B2822 + b _080B28BE +_080B2814: + cmp r5, 0xDA + beq _080B288C + movs r0, 0x88 + lsls r0, 1 + cmp r5, r0 + beq _080B2848 + b _080B28BE +_080B2822: + ldr r0, _080B2840 @ =gBaseStats + lsls r1, r7, 3 + subs r1, r7 + lsls r1, 2 + adds r1, r0 + ldrb r0, [r1, 0x6] + cmp r0, 0x7 + beq _080B2838 + ldrb r0, [r1, 0x7] + cmp r0, 0x7 + bne _080B28B8 +_080B2838: + ldr r1, _080B2844 @ =gUnknown_0202F7C4 + movs r0, 0 + b _080B28BC + .align 2, 0 +_080B2840: .4byte gBaseStats +_080B2844: .4byte gUnknown_0202F7C4 +_080B2848: + lsls r0, r6, 3 + subs r0, r6 + lsls r0, 2 + ldr r4, _080B2878 @ =0x02019260 + adds r0, r4 + ldrb r5, [r0, 0x1B] + ldr r6, _080B287C @ =gUnknown_02038570 + lsls r5, 6 + adds r0, r5, r6 + ldrh r0, [r0] + bl sub_80B2778 + adds r4, 0xE8 + strh r0, [r4, 0x2] + adds r6, 0x38 + adds r5, r6 + ldr r0, [r5] + str r0, [r4, 0x10] + ldrb r0, [r4, 0x4] + movs r1, 0x1 + orrs r0, r1 + strb r0, [r4, 0x4] + b _080B28BE + .align 2, 0 +_080B2878: .4byte 0x02019260 +_080B287C: .4byte gUnknown_02038570 +_080B2880: + ldr r1, _080B2888 @ =gUnknown_0202F7BE + movs r0, 0xFF + b _080B28BC + .align 2, 0 +_080B2888: .4byte gUnknown_0202F7BE +_080B288C: + ldr r1, _080B2894 @ =gUnknown_0202F7BE + movs r0, 0 + b _080B28BC + .align 2, 0 +_080B2894: .4byte gUnknown_0202F7BE +_080B2898: + ldr r0, _080B28B0 @ =0x02019204 + adds r2, r0, 0 + adds r2, 0x5A + ldrb r1, [r2] + cmp r1, 0 + bne _080B28B8 + movs r0, 0x2 + strb r0, [r2] + ldr r0, _080B28B4 @ =gUnknown_0202F7C4 + strb r1, [r0] + b _080B28BE + .align 2, 0 +_080B28B0: .4byte 0x02019204 +_080B28B4: .4byte gUnknown_0202F7C4 +_080B28B8: + ldr r1, _080B28C8 @ =gUnknown_0202F7C4 + movs r0, 0x1 +_080B28BC: + strb r0, [r1] +_080B28BE: + bl sub_80B2968 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080B28C8: .4byte gUnknown_0202F7C4 + thumb_func_end sub_80B2790 + + thumb_func_start unref_sub_80B28CC +unref_sub_80B28CC: @ 80B28CC + push {r4,lr} + ldr r4, _080B28EC @ =0x02019348 + adds r0, r4, 0 + movs r1, 0 + movs r2, 0x14 + bl memset + subs r4, 0xEA + ldrb r0, [r4] + cmp r0, 0 + beq _080B28E6 + subs r0, 0x1 + strb r0, [r4] +_080B28E6: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080B28EC: .4byte 0x02019348 + thumb_func_end unref_sub_80B28CC + + thumb_func_start sub_80B28F0 +sub_80B28F0: @ 80B28F0 + push {r4-r6,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldr r6, _080B2924 @ =0x02019348 + strb r4, [r6, 0x5] + ldr r5, _080B2928 @ =gUnknown_02038570 + lsls r4, 6 + adds r0, r4, r5 + ldrh r0, [r0] + bl sub_80B2778 + strh r0, [r6] + adds r0, r5, 0 + adds r0, 0x38 + adds r0, r4, r0 + ldr r0, [r0] + str r0, [r6, 0x8] + adds r5, 0x3C + adds r4, r5 + ldr r0, [r4] + str r0, [r6, 0xC] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080B2924: .4byte 0x02019348 +_080B2928: .4byte gUnknown_02038570 + thumb_func_end sub_80B28F0 + + thumb_func_start sub_80B292C +sub_80B292C: @ 80B292C + push {lr} + ldr r0, _080B2958 @ =SpriteCallbackDummy + bl object_new_hidden_with_callback + ldr r1, _080B295C @ =gUnknown_02024BE0 + strb r0, [r1, 0x3] + ldr r0, _080B2960 @ =gUnknown_02024C08 + ldrb r0, [r0] + adds r0, r1 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _080B2964 @ =gSprites + adds r0, r1 + bl InitSpriteAffineAnim + bl sub_80B2968 + pop {r0} + bx r0 + .align 2, 0 +_080B2958: .4byte SpriteCallbackDummy +_080B295C: .4byte gUnknown_02024BE0 +_080B2960: .4byte gUnknown_02024C08 +_080B2964: .4byte gSprites + thumb_func_end sub_80B292C + + thumb_func_start sub_80B2968 +sub_80B2968: @ 80B2968 + push {r4,lr} + ldr r0, _080B29AC @ =gUnknown_02024BE0 + ldrb r0, [r0, 0x3] + lsls r4, r0, 4 + adds r4, r0 + lsls r4, 2 + ldr r0, _080B29B0 @ =gSprites + adds r4, r0 + movs r0, 0 + strh r0, [r4, 0x24] + strh r0, [r4, 0x26] + movs r0, 0x3 + movs r1, 0 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x20] + movs r0, 0x3 + movs r1, 0x1 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x22] + adds r4, 0x3E + ldrb r0, [r4] + movs r1, 0x4 + orrs r0, r1 + strb r0, [r4] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080B29AC: .4byte gUnknown_02024BE0 +_080B29B0: .4byte gSprites + thumb_func_end sub_80B2968 + + thumb_func_start sub_80B29B4 +sub_80B29B4: @ 80B29B4 + push {lr} + lsls r0, 16 + lsrs r0, 16 + ldr r2, _080B29D4 @ =gBattleMoves + lsls r1, r0, 1 + adds r1, r0 + lsls r1, 2 + adds r1, r2 + ldrb r0, [r1, 0x6] + cmp r0, 0x20 + bhi _080B2A6C + lsls r0, 2 + ldr r1, _080B29D8 @ =_080B29DC + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080B29D4: .4byte gBattleMoves +_080B29D8: .4byte _080B29DC + .align 2, 0 +_080B29DC: + .4byte _080B2A6C + .4byte _080B2A6C + .4byte _080B2A60 + .4byte _080B2A6C + .4byte _080B2A6C + .4byte _080B2A6C + .4byte _080B2A6C + .4byte _080B2A6C + .4byte _080B2A6C + .4byte _080B2A6C + .4byte _080B2A6C + .4byte _080B2A6C + .4byte _080B2A6C + .4byte _080B2A6C + .4byte _080B2A6C + .4byte _080B2A6C + .4byte _080B2A60 + .4byte _080B2A6C + .4byte _080B2A6C + .4byte _080B2A6C + .4byte _080B2A6C + .4byte _080B2A6C + .4byte _080B2A6C + .4byte _080B2A6C + .4byte _080B2A6C + .4byte _080B2A6C + .4byte _080B2A6C + .4byte _080B2A6C + .4byte _080B2A6C + .4byte _080B2A6C + .4byte _080B2A6C + .4byte _080B2A6C + .4byte _080B2A6C +_080B2A60: + ldr r1, _080B2A68 @ =gUnknown_02024C08 + movs r0, 0x2 + b _080B2A70 + .align 2, 0 +_080B2A68: .4byte gUnknown_02024C08 +_080B2A6C: + ldr r1, _080B2A78 @ =gUnknown_02024C08 + movs r0, 0x3 +_080B2A70: + strb r0, [r1] + pop {r0} + bx r0 + .align 2, 0 +_080B2A78: .4byte gUnknown_02024C08 + thumb_func_end sub_80B29B4 + + thumb_func_start sub_80B2A7C +sub_80B2A7C: @ 80B2A7C + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0x4 + lsls r0, 24 + lsrs r0, 24 + mov r9, r0 + bl Random + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x3 + bl __umodsi3 + lsls r0, 24 + lsrs r7, r0, 24 + movs r6, 0 + ldr r1, _080B2AC8 @ =gUnknown_02038690 + ldrb r0, [r1] + cmp r0, 0 + beq _080B2AB6 +_080B2AA8: + adds r6, 0x1 + cmp r6, 0x2 + bgt _080B2AB6 + adds r0, r6, r1 + ldrb r0, [r0] + cmp r0, 0 + bne _080B2AA8 +_080B2AB6: + mov r0, r9 + cmp r0, 0xFF + bne _080B2AD0 + ldr r0, _080B2ACC @ =gUnknown_02038695 + ldrb r0, [r0] + cmp r6, r0 + beq _080B2AD0 + movs r0, 0 + b _080B2C38 + .align 2, 0 +_080B2AC8: .4byte gUnknown_02038690 +_080B2ACC: .4byte gUnknown_02038695 +_080B2AD0: + ldr r0, _080B2AE4 @ =gUnknown_0203869C + ldrh r0, [r0] + cmp r0, 0x4 + bhi _080B2B16 + lsls r0, 2 + ldr r1, _080B2AE8 @ =_080B2AEC + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080B2AE4: .4byte gUnknown_0203869C +_080B2AE8: .4byte _080B2AEC + .align 2, 0 +_080B2AEC: + .4byte _080B2B16 + .4byte _080B2B00 + .4byte _080B2B04 + .4byte _080B2B08 + .4byte _080B2B0E +_080B2B00: + adds r0, r7, 0x3 + b _080B2B12 +_080B2B04: + adds r0, r7, 0x6 + b _080B2B12 +_080B2B08: + adds r0, r7, 0 + adds r0, 0x9 + b _080B2B12 +_080B2B0E: + adds r0, r7, 0 + adds r0, 0xC +_080B2B12: + lsls r0, 24 + lsrs r7, r0, 24 +_080B2B16: + mov r1, r9 + cmp r1, 0xFE + beq _080B2BC4 + mov r0, r9 + movs r1, 0x1 + bl sub_80B2C4C + adds r4, r0, 0 + lsls r4, 24 + ldr r2, _080B2B98 @ =gSaveBlock1 + lsrs r4, 19 + ldr r0, _080B2B9C @ =0x00002dfc + adds r1, r2, r0 + adds r1, r4, r1 + ldr r5, _080B2BA0 @ =gUnknown_02038570 + lsls r6, 6 + adds r0, r5, 0 + adds r0, 0x38 + adds r0, r6, r0 + ldr r0, [r0] + str r0, [r1] + adds r1, r4, r2 + mov r8, r1 + adds r0, r6, r5 + ldrh r1, [r0] + ldr r0, _080B2BA4 @ =0x00002e04 + add r0, r8 + strh r1, [r0] + movs r0, 0xB8 + lsls r0, 6 + adds r1, r2, r0 + adds r1, r4, r1 + adds r0, r5, 0 + adds r0, 0x3C + adds r0, r6, r0 + ldr r0, [r0] + str r0, [r1] + ldr r1, _080B2BA8 @ =0x00002e07 + adds r0, r2, r1 + adds r0, r4, r0 + adds r1, r5, 0x2 + adds r1, r6, r1 + str r2, [sp] + bl StringCopy + ldr r2, [sp] + ldr r0, _080B2BAC @ =0x00002e12 + adds r2, r0 + adds r4, r2 + adds r5, 0xD + adds r6, r5 + adds r0, r4, 0 + adds r1, r6, 0 + bl StringCopy + mov r1, r9 + cmp r1, 0xFF + beq _080B2BB8 + ldr r0, _080B2BB0 @ =gUnknown_0203869C + ldrh r1, [r0] + ldr r0, _080B2BB4 @ =0x00002e06 + add r0, r8 + strb r1, [r0] + b _080B2C36 + .align 2, 0 +_080B2B98: .4byte gSaveBlock1 +_080B2B9C: .4byte 0x00002dfc +_080B2BA0: .4byte gUnknown_02038570 +_080B2BA4: .4byte 0x00002e04 +_080B2BA8: .4byte 0x00002e07 +_080B2BAC: .4byte 0x00002e12 +_080B2BB0: .4byte gUnknown_0203869C +_080B2BB4: .4byte 0x00002e06 +_080B2BB8: + ldr r0, _080B2BC0 @ =0x00002e06 + add r0, r8 + strb r7, [r0] + b _080B2C36 + .align 2, 0 +_080B2BC0: .4byte 0x00002e06 +_080B2BC4: + ldr r5, _080B2C14 @ =0x02015de0 + ldr r2, _080B2C18 @ =gUnknown_02038570 + lsls r4, r6, 6 + adds r0, r2, 0 + adds r0, 0x38 + adds r0, r4, r0 + ldr r0, [r0] + str r0, [r5] + adds r0, r2, 0 + adds r0, 0x3C + adds r0, r4, r0 + ldr r0, [r0] + str r0, [r5, 0x4] + adds r0, r4, r2 + ldrh r0, [r0] + strh r0, [r5, 0x8] + adds r0, r5, 0 + adds r0, 0xB + adds r1, r2, 0x2 + adds r1, r4, r1 + str r2, [sp] + bl StringCopy + ldr r0, _080B2C1C @ =gUnknown_0203869A + ldrb r1, [r0] + movs r0, 0x1 + ands r0, r1 + ldr r2, [sp] + cmp r0, 0 + beq _080B2C24 + adds r0, r5, 0 + adds r0, 0x16 + lsls r1, r6, 3 + subs r1, r6 + lsls r1, 2 + ldr r2, _080B2C20 @ =gLinkPlayers + 0x8 + adds r1, r2 + bl StringCopy + b _080B2C32 + .align 2, 0 +_080B2C14: .4byte 0x02015de0 +_080B2C18: .4byte gUnknown_02038570 +_080B2C1C: .4byte gUnknown_0203869A +_080B2C20: .4byte gLinkPlayers + 0x8 +_080B2C24: + adds r0, r5, 0 + adds r0, 0x16 + adds r1, r2, 0 + adds r1, 0xD + adds r1, r4, r1 + bl StringCopy +_080B2C32: + ldr r0, _080B2C48 @ =0x02015de0 + strb r7, [r0, 0xA] +_080B2C36: + movs r0, 0x1 +_080B2C38: + add sp, 0x4 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_080B2C48: .4byte 0x02015de0 + thumb_func_end sub_80B2A7C + + thumb_func_start sub_80B2C4C +sub_80B2C4C: @ 80B2C4C + push {r4-r7,lr} + lsls r0, 24 + lsrs r0, 24 + adds r2, r0, 0 + lsls r1, 24 + lsrs r1, 24 + cmp r0, 0x2 + beq _080B2C6E + cmp r0, 0x2 + ble _080B2C66 + cmp r0, 0x3 + beq _080B2CA0 + b _080B2CD4 +_080B2C66: + cmp r2, 0 + blt _080B2CD4 + adds r0, r2, 0 + b _080B2D16 +_080B2C6E: + cmp r1, 0 + beq _080B2C98 + movs r2, 0x4 + ldr r0, _080B2C9C @ =gSaveBlock1 + 0x2DFC + adds r4, r0, 0 + adds r4, 0x60 + adds r3, r0, 0 + adds r3, 0x80 +_080B2C7E: + adds r1, r3, 0 + adds r0, r4, 0 + ldm r0!, {r5-r7} + stm r1!, {r5-r7} + ldm r0!, {r5-r7} + stm r1!, {r5-r7} + ldm r0!, {r5,r6} + stm r1!, {r5,r6} + subs r4, 0x20 + subs r3, 0x20 + subs r2, 0x1 + cmp r2, 0x2 + bgt _080B2C7E +_080B2C98: + movs r0, 0x2 + b _080B2D16 + .align 2, 0 +_080B2C9C: .4byte gSaveBlock1 + 0x2DFC +_080B2CA0: + cmp r1, 0 + beq _080B2CCA + movs r2, 0x7 + ldr r0, _080B2CD0 @ =gSaveBlock1 + 0x2DFC + adds r4, r0, 0 + adds r4, 0xC0 + adds r3, r0, 0 + adds r3, 0xE0 +_080B2CB0: + adds r1, r3, 0 + adds r0, r4, 0 + ldm r0!, {r5-r7} + stm r1!, {r5-r7} + ldm r0!, {r5-r7} + stm r1!, {r5-r7} + ldm r0!, {r5,r7} + stm r1!, {r5,r7} + subs r4, 0x20 + subs r3, 0x20 + subs r2, 0x1 + cmp r2, 0x5 + bgt _080B2CB0 +_080B2CCA: + movs r0, 0x5 + b _080B2D16 + .align 2, 0 +_080B2CD0: .4byte gSaveBlock1 + 0x2DFC +_080B2CD4: + ldr r0, _080B2CE8 @ =gUnknown_0203869C + ldrh r0, [r0] + cmp r0, 0x4 + bhi _080B2D14 + lsls r0, 2 + ldr r1, _080B2CEC @ =_080B2CF0 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080B2CE8: .4byte gUnknown_0203869C +_080B2CEC: .4byte _080B2CF0 + .align 2, 0 +_080B2CF0: + .4byte _080B2D04 + .4byte _080B2D08 + .4byte _080B2D0C + .4byte _080B2D10 + .4byte _080B2D14 +_080B2D04: + movs r0, 0x8 + b _080B2D16 +_080B2D08: + movs r0, 0x9 + b _080B2D16 +_080B2D0C: + movs r0, 0xA + b _080B2D16 +_080B2D10: + movs r0, 0xB + b _080B2D16 +_080B2D14: + movs r0, 0xC +_080B2D16: + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_80B2C4C + + thumb_func_start sub_80B2D1C +sub_80B2D1C: @ 80B2D1C + push {r4-r7,lr} + ldr r0, _080B2D48 @ =gSaveBlock1 + ldr r4, _080B2D4C @ =gUnknown_083CC5D0 + ldr r1, _080B2D50 @ =0x00002dfc + adds r3, r0, r1 + movs r2, 0x7 +_080B2D28: + adds r1, r3, 0 + adds r0, r4, 0 + ldm r0!, {r5-r7} + stm r1!, {r5-r7} + ldm r0!, {r5-r7} + stm r1!, {r5-r7} + ldm r0!, {r5,r6} + stm r1!, {r5,r6} + adds r4, 0x20 + adds r3, 0x20 + subs r2, 0x1 + cmp r2, 0 + bge _080B2D28 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080B2D48: .4byte gSaveBlock1 +_080B2D4C: .4byte gUnknown_083CC5D0 +_080B2D50: .4byte 0x00002dfc + thumb_func_end sub_80B2D1C + + .align 2, 0 @ Don't pad with nop. |