diff options
Diffstat (limited to 'asm')
-rw-r--r-- | asm/pokenav.s | 16556 | ||||
-rw-r--r-- | asm/pokenav_unk_1.s | 864 | ||||
-rw-r--r-- | asm/pokenav_unk_10.s | 2185 | ||||
-rw-r--r-- | asm/pokenav_unk_2.s | 2277 | ||||
-rw-r--r-- | asm/pokenav_unk_3.s | 1036 | ||||
-rw-r--r-- | asm/pokenav_unk_4.s | 2347 | ||||
-rw-r--r-- | asm/pokenav_unk_5.s | 1396 | ||||
-rw-r--r-- | asm/pokenav_unk_6.s | 1752 | ||||
-rw-r--r-- | asm/pokenav_unk_7.s | 2001 | ||||
-rw-r--r-- | asm/pokenav_unk_8.s | 1377 | ||||
-rw-r--r-- | asm/pokenav_unk_9.s | 1393 |
11 files changed, 16628 insertions, 16556 deletions
diff --git a/asm/pokenav.s b/asm/pokenav.s deleted file mode 100644 index e453c814c..000000000 --- a/asm/pokenav.s +++ /dev/null @@ -1,16556 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - thumb_func_start sub_81C9268 -sub_81C9268: @ 81C9268 - push {r4,lr} - movs r4, 0 - movs r0, 0x98 - lsls r0, 1 - bl FlagGet - lsls r0, 24 - cmp r0, 0 - beq _081C928A - movs r4, 0x1 - ldr r0, =0x0000089b - bl FlagGet - lsls r0, 24 - cmp r0, 0 - beq _081C928A - movs r4, 0x2 -_081C928A: - adds r0, r4, 0 - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end sub_81C9268 - - thumb_func_start sub_81C9298 -sub_81C9298: @ 81C9298 - push {r4,lr} - movs r0, 0x1 - movs r1, 0x10 - bl AllocSubstruct - adds r4, r0, 0 - cmp r4, 0 - beq _081C92C4 - bl sub_81C9268 - lsls r0, 24 - lsrs r0, 24 - movs r1, 0 - strh r0, [r4] - strh r1, [r4, 0x2] - strh r1, [r4, 0x4] - strh r1, [r4, 0x6] - adds r0, r4, 0 - bl sub_81C939C - movs r0, 0x1 - b _081C92C6 -_081C92C4: - movs r0, 0 -_081C92C6: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_81C9298 - - thumb_func_start sub_81C92CC -sub_81C92CC: @ 81C92CC - push {r4,lr} - movs r0, 0x1 - movs r1, 0x10 - bl AllocSubstruct - adds r4, r0, 0 - cmp r4, 0 - beq _081C92FA - bl sub_81C9268 - lsls r0, 24 - lsrs r0, 24 - movs r1, 0 - strh r0, [r4] - movs r0, 0x2 - strh r0, [r4, 0x2] - strh r0, [r4, 0x4] - strh r1, [r4, 0x6] - adds r0, r4, 0 - bl sub_81C939C - movs r0, 0x1 - b _081C92FC -_081C92FA: - movs r0, 0 -_081C92FC: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_81C92CC - - thumb_func_start sub_81C9304 -sub_81C9304: @ 81C9304 - push {r4,lr} - movs r0, 0x1 - movs r1, 0x10 - bl AllocSubstruct - adds r4, r0, 0 - cmp r4, 0 - beq _081C932E - bl sub_81C9268 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4] - movs r0, 0x3 - strh r0, [r4, 0x2] - strh r0, [r4, 0x4] - adds r0, r4, 0 - bl sub_81C939C - movs r0, 0x1 - b _081C9330 -_081C932E: - movs r0, 0 -_081C9330: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_81C9304 - - thumb_func_start sub_81C9338 -sub_81C9338: @ 81C9338 - push {lr} - movs r0, 0x1 - movs r1, 0x10 - bl AllocSubstruct - adds r2, r0, 0 - cmp r2, 0 - beq _081C9360 - movs r0, 0 - movs r1, 0x3 - strh r1, [r2] - strh r0, [r2, 0x2] - movs r1, 0x5 - strh r1, [r2, 0x4] - strh r0, [r2, 0x6] - adds r0, r2, 0 - bl sub_81C939C - movs r0, 0x1 - b _081C9362 -_081C9360: - movs r0, 0 -_081C9362: - pop {r1} - bx r1 - thumb_func_end sub_81C9338 - - thumb_func_start sub_81C9368 -sub_81C9368: @ 81C9368 - push {r4,r5,lr} - movs r0, 0x1 - movs r1, 0x10 - bl AllocSubstruct - adds r5, r0, 0 - cmp r5, 0 - beq _081C9394 - movs r4, 0 - movs r0, 0x4 - strh r0, [r5] - bl sub_81C76AC - strh r0, [r5, 0x2] - adds r0, 0x8 - strh r0, [r5, 0x4] - strh r4, [r5, 0x6] - adds r0, r5, 0 - bl sub_81C939C - movs r0, 0x1 - b _081C9396 -_081C9394: - movs r0, 0 -_081C9396: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_81C9368 - - thumb_func_start sub_81C939C -sub_81C939C: @ 81C939C - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4] - cmp r0, 0x4 - bhi _081C93E0 - lsls r0, 2 - ldr r1, =_081C93B4 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_081C93B4: - .4byte _081C93C8 - .4byte _081C93CE - .4byte _081C93CE - .4byte _081C93D4 - .4byte _081C93DC -_081C93C8: - movs r0, 0 - bl SetPokenavMode -_081C93CE: - bl sub_81C93EC - b _081C93DE -_081C93D4: - ldr r0, =sub_81C963C - b _081C93DE - .pool -_081C93DC: - ldr r0, =sub_81C96FC -_081C93DE: - str r0, [r4, 0xC] -_081C93E0: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C939C - - thumb_func_start sub_81C93EC -sub_81C93EC: @ 81C93EC - push {lr} - bl GetPokenavMode - cmp r0, 0x1 - beq _081C9408 - cmp r0, 0x1 - bcc _081C93FE - cmp r0, 0x2 - beq _081C9410 -_081C93FE: - ldr r0, =sub_81C943C - b _081C9412 - .pool -_081C9408: - ldr r0, =sub_81C9520 - b _081C9412 - .pool -_081C9410: - ldr r0, =c2_pre_battle_1 -_081C9412: - pop {r1} - bx r1 - .pool - thumb_func_end sub_81C93EC - - thumb_func_start sub_81C941C -sub_81C941C: @ 81C941C - push {lr} - movs r0, 0x1 - bl GetSubstructPtr - ldr r1, [r0, 0xC] - bl _call_via_r1 - pop {r1} - bx r1 - thumb_func_end sub_81C941C - - thumb_func_start sub_81C9430 -sub_81C9430: @ 81C9430 - push {lr} - movs r0, 0x1 - bl FreePokenavSubstruct - pop {r0} - bx r0 - thumb_func_end sub_81C9430 - - thumb_func_start sub_81C943C -sub_81C943C: @ 81C943C - push {r4,r5,lr} - adds r4, r0, 0 - bl sub_81C9814 - cmp r0, 0 - beq _081C944C - movs r0, 0x1 - b _081C951A -_081C944C: - ldr r2, =gMain - ldrh r1, [r2, 0x2E] - movs r0, 0x1 - ands r0, r1 - adds r5, r2, 0 - cmp r0, 0 - beq _081C9508 - ldr r3, =gUnknown_0861FC59 - movs r0, 0x2 - ldrsh r1, [r4, r0] - ldrh r2, [r4] - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 1 - adds r1, r0 - adds r1, r3 - ldrb r0, [r1] - cmp r0, 0x4 - bhi _081C9508 - lsls r0, 2 - ldr r1, =_081C9488 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_081C9488: - .4byte _081C949C - .4byte _081C94BC - .4byte _081C94D4 - .4byte _081C94E0 - .4byte _081C9516 -_081C949C: - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - ldrb r1, [r0, 0x15] - movs r0, 0x8 - ands r0, r1 - movs r1, 0x1 - cmp r0, 0 - beq _081C94AE - movs r1, 0x2 -_081C94AE: - strh r1, [r4, 0x6] - ldr r1, =0x000186a6 - b _081C94EE - .pool -_081C94BC: - movs r1, 0 - movs r0, 0x3 - strh r0, [r4] - strh r1, [r4, 0x2] - ldrb r0, [r3, 0x12] - strh r0, [r4, 0x4] - ldr r0, =sub_81C963C - str r0, [r4, 0xC] - movs r0, 0x2 - b _081C951A - .pool -_081C94D4: - movs r0, 0x6 - strh r0, [r4, 0x6] - ldr r1, =0x000186ab - b _081C94EE - .pool -_081C94E0: - bl CanViewRibbonsMenu - cmp r0, 0 - beq _081C94FC - movs r0, 0x9 - strh r0, [r4, 0x6] - ldr r1, =0x000186ac -_081C94EE: - adds r0, r4, 0 - bl sub_81C97B0 - movs r0, 0x8 - b _081C951A - .pool -_081C94FC: - ldr r0, =sub_81C9600 - str r0, [r4, 0xC] - movs r0, 0x6 - b _081C951A - .pool -_081C9508: - ldrh r1, [r5, 0x2E] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - bne _081C9516 - movs r0, 0 - b _081C951A -_081C9516: - movs r0, 0x1 - negs r0, r0 -_081C951A: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_81C943C - - thumb_func_start sub_81C9520 -sub_81C9520: @ 81C9520 - push {r4,lr} - adds r4, r0, 0 - bl sub_81C9814 - cmp r0, 0 - beq _081C9530 - movs r0, 0x1 - b _081C9580 -_081C9530: - ldr r0, =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _081C9570 - ldr r3, =gUnknown_0861FC59 - movs r0, 0x2 - ldrsh r1, [r4, r0] - ldrh r2, [r4] - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 1 - adds r1, r0 - adds r1, r3 - ldrb r0, [r1] - cmp r0, 0x2 - bne _081C9578 - movs r0, 0x6 - strh r0, [r4, 0x6] - ldr r1, =0x000186ab - adds r0, r4, 0 - bl sub_81C97B0 - movs r0, 0x8 - b _081C9580 - .pool -_081C9570: - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _081C957E -_081C9578: - movs r0, 0x20 - bl PlaySE -_081C957E: - movs r0, 0 -_081C9580: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_81C9520 - - thumb_func_start c2_pre_battle_1 -c2_pre_battle_1: @ 81C9588 - push {r4,lr} - adds r4, r0, 0 - bl sub_81C9814 - cmp r0, 0 - beq _081C9598 - movs r0, 0x1 - b _081C95F8 -_081C9598: - ldr r0, =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _081C95E8 - ldr r3, =gUnknown_0861FC59 - movs r0, 0x2 - ldrsh r1, [r4, r0] - ldrh r2, [r4] - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 1 - adds r1, r0 - adds r1, r3 - ldrb r0, [r1] - cmp r0, 0x2 - beq _081C95D4 - cmp r0, 0x4 - beq _081C95F4 - movs r0, 0x20 - bl PlaySE - movs r0, 0 - b _081C95F8 - .pool -_081C95D4: - movs r0, 0x6 - strh r0, [r4, 0x6] - ldr r1, =0x000186ab - adds r0, r4, 0 - bl sub_81C97B0 - movs r0, 0x8 - b _081C95F8 - .pool -_081C95E8: - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - bne _081C95F4 - movs r0, 0 - b _081C95F8 -_081C95F4: - movs r0, 0x1 - negs r0, r0 -_081C95F8: - pop {r4} - pop {r1} - bx r1 - thumb_func_end c2_pre_battle_1 - - thumb_func_start sub_81C9600 -sub_81C9600: @ 81C9600 - push {r4,lr} - adds r4, r0, 0 - bl sub_81C9814 - cmp r0, 0 - beq _081C9616 - bl sub_81C93EC - str r0, [r4, 0xC] - movs r0, 0x1 - b _081C9634 -_081C9616: - ldr r0, =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x3 - ands r0, r1 - cmp r0, 0 - bne _081C962C - movs r0, 0 - b _081C9634 - .pool -_081C962C: - bl sub_81C93EC - str r0, [r4, 0xC] - movs r0, 0x7 -_081C9634: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_81C9600 - - thumb_func_start sub_81C963C -sub_81C963C: @ 81C963C - push {r4-r6,lr} - adds r4, r0, 0 - bl sub_81C9814 - adds r3, r0, 0 - cmp r3, 0 - beq _081C964E - movs r0, 0x1 - b _081C96F6 -_081C964E: - ldr r2, =gMain - ldrh r1, [r2, 0x2E] - movs r0, 0x1 - ands r0, r1 - adds r6, r2, 0 - cmp r0, 0 - beq _081C96B8 - ldr r5, =gUnknown_0861FC59 - movs r1, 0x2 - ldrsh r0, [r4, r1] - ldrh r2, [r4] - lsls r1, r2, 1 - adds r1, r2 - lsls r1, 1 - adds r0, r1 - adds r0, r5 - ldrb r0, [r0] - cmp r0, 0x6 - beq _081C968E - cmp r0, 0x6 - bgt _081C9688 - cmp r0, 0x5 - beq _081C96A4 - b _081C96B8 - .pool -_081C9688: - cmp r0, 0x7 - beq _081C96E4 - b _081C96B8 -_081C968E: - movs r0, 0x4 - strh r0, [r4] - strh r3, [r4, 0x2] - ldrb r0, [r5, 0x18] - strh r0, [r4, 0x4] - ldr r0, =sub_81C96FC - str r0, [r4, 0xC] - movs r0, 0x4 - b _081C96F6 - .pool -_081C96A4: - strh r3, [r4, 0x6] - ldr r1, =0x000186a7 - adds r0, r4, 0 - bl sub_81C97B0 - movs r0, 0x8 - b _081C96F6 - .pool -_081C96B8: - ldrh r1, [r6, 0x2E] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _081C96F4 - movs r0, 0x2 - ldrsh r2, [r4, r0] - ldr r1, =gUnknown_0861FC54 - ldrh r0, [r4] - adds r0, r1 - ldrb r0, [r0] - cmp r2, r0 - beq _081C96E4 - strh r0, [r4, 0x2] - ldr r0, =sub_81C9798 - str r0, [r4, 0xC] - movs r0, 0x1 - b _081C96F6 - .pool -_081C96E4: - movs r0, 0x5 - bl PlaySE - adds r0, r4, 0 - bl sub_81C97C0 - movs r0, 0x3 - b _081C96F6 -_081C96F4: - movs r0, 0 -_081C96F6: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_81C963C - - thumb_func_start sub_81C96FC -sub_81C96FC: @ 81C96FC - push {r4,lr} - adds r4, r0, 0 - bl sub_81C9814 - cmp r0, 0 - beq _081C970C - movs r0, 0x1 - b _081C9792 -_081C970C: - ldr r0, =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _081C9754 - ldr r3, =gUnknown_0861FC59 - movs r0, 0x2 - ldrsh r1, [r4, r0] - ldrh r2, [r4] - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 1 - adds r1, r0 - adds r1, r3 - ldrb r0, [r1] - cmp r0, 0xD - beq _081C9780 - subs r0, 0x8 - bl sub_81C7694 - ldr r1, =0x000186a8 - adds r0, r4, 0 - bl sub_81C97B0 - movs r0, 0x3 - strh r0, [r4, 0x6] - movs r0, 0x8 - b _081C9792 - .pool -_081C9754: - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _081C9790 - movs r0, 0x2 - ldrsh r2, [r4, r0] - ldr r1, =gUnknown_0861FC54 - ldrh r0, [r4] - adds r0, r1 - ldrb r0, [r0] - cmp r2, r0 - beq _081C9780 - strh r0, [r4, 0x2] - ldr r0, =sub_81C97A4 - str r0, [r4, 0xC] - movs r0, 0x1 - b _081C9792 - .pool -_081C9780: - movs r0, 0x5 - bl PlaySE - adds r0, r4, 0 - bl sub_81C97F8 - movs r0, 0x5 - b _081C9792 -_081C9790: - movs r0, 0 -_081C9792: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_81C96FC - - thumb_func_start sub_81C9798 -sub_81C9798: @ 81C9798 - push {lr} - bl sub_81C97C0 - movs r0, 0x3 - pop {r1} - bx r1 - thumb_func_end sub_81C9798 - - thumb_func_start sub_81C97A4 -sub_81C97A4: @ 81C97A4 - push {lr} - bl sub_81C97F8 - movs r0, 0x5 - pop {r1} - bx r1 - thumb_func_end sub_81C97A4 - - thumb_func_start sub_81C97B0 -sub_81C97B0: @ 81C97B0 - str r1, [r0, 0x8] - ldr r1, =sub_81C97BC - str r1, [r0, 0xC] - bx lr - .pool - thumb_func_end sub_81C97B0 - - thumb_func_start sub_81C97BC -sub_81C97BC: @ 81C97BC - ldr r0, [r0, 0x8] - bx lr - thumb_func_end sub_81C97BC - - thumb_func_start sub_81C97C0 -sub_81C97C0: @ 81C97C0 - push {r4,lr} - adds r4, r0, 0 - bl sub_81C9268 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4] - movs r0, 0x1 - strh r0, [r4, 0x2] - ldr r2, =gUnknown_0861FC59 - ldrh r1, [r4] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 1 - adds r0, 0x1 - adds r0, r2 - ldrb r0, [r0] - strh r0, [r4, 0x4] - ldr r0, =sub_81C943C - str r0, [r4, 0xC] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C97C0 - - thumb_func_start sub_81C97F8 -sub_81C97F8: @ 81C97F8 - movs r1, 0x3 - strh r1, [r0] - movs r1, 0x1 - strh r1, [r0, 0x2] - ldr r1, =gUnknown_0861FC59 - ldrb r1, [r1, 0x13] - strh r1, [r0, 0x4] - ldr r1, =sub_81C963C - str r1, [r0, 0xC] - bx lr - .pool - thumb_func_end sub_81C97F8 - - thumb_func_start sub_81C9814 -sub_81C9814: @ 81C9814 - push {r4,r5,lr} - adds r4, r0, 0 - ldr r0, =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x40 - ands r0, r1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0 - beq _081C9848 - ldrh r0, [r4, 0x2] - subs r0, 0x1 - strh r0, [r4, 0x2] - lsls r0, 16 - ldrh r3, [r4] - cmp r0, 0 - bge _081C986A - ldr r0, =gUnknown_0861FC54 - adds r0, r3, r0 - ldrb r0, [r0] - strh r0, [r4, 0x2] - b _081C986A - .pool -_081C9848: - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _081C988C - ldrh r0, [r4, 0x2] - adds r0, 0x1 - strh r0, [r4, 0x2] - movs r0, 0x2 - ldrsh r2, [r4, r0] - ldr r0, =gUnknown_0861FC54 - ldrh r1, [r4] - adds r0, r1, r0 - adds r3, r1, 0 - ldrb r0, [r0] - cmp r2, r0 - ble _081C986A - strh r5, [r4, 0x2] -_081C986A: - ldr r2, =gUnknown_0861FC59 - movs r0, 0x2 - ldrsh r1, [r4, r0] - lsls r0, r3, 1 - adds r0, r3 - lsls r0, 1 - adds r1, r0 - adds r1, r2 - ldrb r0, [r1] - strh r0, [r4, 0x4] - movs r0, 0x1 - b _081C988E - .pool -_081C988C: - movs r0, 0 -_081C988E: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_81C9814 - - thumb_func_start sub_81C9894 -sub_81C9894: @ 81C9894 - push {lr} - movs r0, 0x1 - bl GetSubstructPtr - ldrh r0, [r0] - pop {r1} - bx r1 - thumb_func_end sub_81C9894 - - thumb_func_start sub_81C98A4 -sub_81C98A4: @ 81C98A4 - push {lr} - movs r0, 0x1 - bl GetSubstructPtr - movs r1, 0x2 - ldrsh r0, [r0, r1] - pop {r1} - bx r1 - thumb_func_end sub_81C98A4 - - thumb_func_start sub_81C98B4 -sub_81C98B4: @ 81C98B4 - push {lr} - movs r0, 0x1 - bl GetSubstructPtr - ldrh r0, [r0, 0x4] - pop {r1} - bx r1 - thumb_func_end sub_81C98B4 - - thumb_func_start sub_81C98C4 -sub_81C98C4: @ 81C98C4 - push {lr} - movs r0, 0x1 - bl GetSubstructPtr - ldrh r0, [r0, 0x6] - pop {r1} - bx r1 - thumb_func_end sub_81C98C4 - - thumb_func_start sub_81C98D4 -sub_81C98D4: @ 81C98D4 - push {r4,lr} - movs r4, 0 -_081C98D8: - adds r0, r4, 0 - bl sub_81CB0C8 - ldr r1, =gMapHeader - lsls r0, 24 - lsrs r0, 24 - ldrb r1, [r1, 0x14] - cmp r0, r1 - bne _081C9914 - adds r0, r4, 0 - bl sub_81CAE08 - cmp r0, 0 - beq _081C9914 - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldr r1, =0x000009ca - adds r0, r1 - adds r0, r4 - ldrb r0, [r0] - cmp r0, 0 - beq _081C9914 - movs r0, 0x1 - b _081C991C - .pool -_081C9914: - adds r4, 0x1 - cmp r4, 0x4D - ble _081C98D8 - movs r0, 0 -_081C991C: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_81C98D4 - - thumb_func_start sub_81C9924 -sub_81C9924: @ 81C9924 - push {lr} - bl sub_81C9958 - adds r1, r0, 0 - cmp r1, 0 - beq _081C9938 - movs r0, 0 - strb r0, [r1, 0xD] - movs r0, 0x1 - b _081C993A -_081C9938: - movs r0, 0 -_081C993A: - pop {r1} - bx r1 - thumb_func_end sub_81C9924 - - thumb_func_start sub_81C9940 -sub_81C9940: @ 81C9940 - push {lr} - bl sub_81C9958 - adds r1, r0, 0 - cmp r1, 0 - beq _081C9952 - movs r0, 0x1 - strb r0, [r1, 0xD] - b _081C9954 -_081C9952: - movs r0, 0 -_081C9954: - pop {r1} - bx r1 - thumb_func_end sub_81C9940 - - thumb_func_start sub_81C9958 -sub_81C9958: @ 81C9958 - push {r4,lr} - ldr r1, =0x0000088c - movs r0, 0x2 - bl AllocSubstruct - adds r4, r0, 0 - cmp r4, 0 - beq _081C997A - movs r0, 0 - strb r0, [r4, 0xC] - ldr r0, =sub_81C9A10 - movs r1, 0x1 - bl CreateLoopedTask - str r0, [r4, 0x4] - ldr r0, =sub_81C99FC - str r0, [r4] -_081C997A: - adds r0, r4, 0 - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end sub_81C9958 - - thumb_func_start sub_81C9990 -sub_81C9990: @ 81C9990 - push {r4,r5,lr} - adds r4, r0, 0 - movs r0, 0x2 - bl GetSubstructPtr - adds r5, r0, 0 - ldr r0, =gUnknown_086201A0 - lsls r4, 2 - adds r4, r0 - ldr r0, [r4] - movs r1, 0x1 - bl CreateLoopedTask - str r0, [r5, 0x4] - ldr r0, =sub_81C99FC - str r0, [r5] - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C9990 - - thumb_func_start sub_81C99C0 -sub_81C99C0: @ 81C99C0 - push {lr} - movs r0, 0x2 - bl GetSubstructPtr - ldr r0, [r0] - bl _call_via_r0 - pop {r1} - bx r1 - thumb_func_end sub_81C99C0 - - thumb_func_start sub_81C99D4 -sub_81C99D4: @ 81C99D4 - push {r4,lr} - movs r0, 0x2 - bl GetSubstructPtr - adds r4, r0, 0 - bl sub_81CA7F4 - ldrb r0, [r4, 0x8] - bl RemoveWindow - bl sub_81C9FEC - bl sub_81CA994 - movs r0, 0x2 - bl FreePokenavSubstruct - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_81C99D4 - - thumb_func_start sub_81C99FC -sub_81C99FC: @ 81C99FC - push {lr} - movs r0, 0x2 - bl GetSubstructPtr - ldr r0, [r0, 0x4] - bl IsLoopedTaskActive - pop {r1} - bx r1 - thumb_func_end sub_81C99FC - - thumb_func_start sub_81C9A10 -sub_81C9A10: @ 81C9A10 - push {r4,r5,lr} - sub sp, 0x4 - adds r4, r0, 0 - movs r0, 0x2 - bl GetSubstructPtr - adds r5, r0, 0 - cmp r4, 0x9 - bls _081C9A24 - b _081C9C60 -_081C9A24: - lsls r0, r4, 2 - ldr r1, =_081C9A34 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_081C9A34: - .4byte _081C9A5C - .4byte _081C9AEC - .4byte _081C9B30 - .4byte _081C9B88 - .4byte _081C9B9E - .4byte _081C9BA4 - .4byte _081C9BB6 - .4byte _081C9BC0 - .4byte _081C9C0E - .4byte _081C9C4C -_081C9A5C: - ldr r0, =gUnknown_08620194 - movs r1, 0x3 - bl InitBgTemplates - ldr r1, =gPokenavMessageBox_Gfx - movs r0, 0 - str r0, [sp] - movs r0, 0x1 - movs r2, 0 - movs r3, 0 - bl decompress_and_copy_tile_data_to_vram - adds r1, r5, 0 - adds r1, 0x8C - movs r0, 0x1 - bl SetBgTilemapBuffer - ldr r1, =gPokenavMessageBox_Tilemap - movs r0, 0x1 - movs r2, 0 - movs r3, 0 - bl CopyToBgTilemapBuffer - movs r0, 0x1 - bl CopyBgTilemapBufferToVram - ldr r0, =gPokenavMessageBox_Pal - movs r1, 0x10 - movs r2, 0x20 - bl CopyPaletteIntoBufferUnfaded - movs r0, 0x1 - movs r1, 0 - movs r2, 0 - bl ChangeBgX - movs r0, 0x1 - movs r1, 0 - movs r2, 0 - bl ChangeBgY - movs r0, 0x2 - movs r1, 0 - movs r2, 0 - bl ChangeBgX - movs r0, 0x2 - movs r1, 0 - movs r2, 0 - bl ChangeBgY - movs r0, 0x3 - movs r1, 0 - movs r2, 0 - bl ChangeBgX - movs r0, 0x3 - movs r1, 0 - movs r2, 0 - bl ChangeBgY -_081C9AD6: - movs r0, 0 - b _081C9C62 - .pool -_081C9AEC: - bl free_temp_tile_data_buffers_if_possible - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0 - beq _081C9AFA - b _081C9C5C -_081C9AFA: - ldr r1, =gUnknown_0861FD6C - str r0, [sp] - movs r0, 0x2 - movs r2, 0 - movs r3, 0 - bl decompress_and_copy_tile_data_to_vram - ldr r1, =gUnknown_0861FFF4 - movs r0, 0x1 - str r0, [sp] - movs r0, 0x2 - movs r2, 0 - movs r3, 0 - bl decompress_and_copy_tile_data_to_vram - ldr r0, =gUnknown_0861FD4C - movs r1, 0x20 - movs r2, 0x20 - bl CopyPaletteIntoBufferUnfaded - b _081C9AD6 - .pool -_081C9B30: - bl free_temp_tile_data_buffers_if_possible - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0 - beq _081C9B3E - b _081C9C5C -_081C9B3E: - ldr r1, =gUnknown_0861FC98 - str r0, [sp] - movs r0, 0x3 - movs r2, 0 - movs r3, 0 - bl decompress_and_copy_tile_data_to_vram - ldr r1, =gUnknown_0861FCAC - movs r0, 0x1 - str r0, [sp] - movs r0, 0x3 - movs r2, 0 - movs r3, 0 - bl decompress_and_copy_tile_data_to_vram - ldr r0, =gUnknown_0861FC78 - movs r1, 0x30 - movs r2, 0x20 - bl CopyPaletteIntoBufferUnfaded - bl sub_81C9894 - cmp r0, 0x3 - beq _081C9B76 - bl sub_81C9894 - cmp r0, 0x4 - bne _081C9AD6 -_081C9B76: - bl sub_81CA850 - b _081C9AD6 - .pool -_081C9B88: - bl free_temp_tile_data_buffers_if_possible - lsls r0, 24 - cmp r0, 0 - bne _081C9C5C - bl sub_81CA6E0 - bl sub_81CA7D4 -_081C9B9A: - movs r0, 0x1 - b _081C9C62 -_081C9B9E: - bl sub_81C9FC4 - b _081C9B9A -_081C9BA4: - bl sub_81CA714 - bl sub_81CA02C - bl sub_81CA640 - bl sub_81CA0C8 - b _081C9AD6 -_081C9BB6: - bl sub_81CA7C4 - cmp r0, 0 - bne _081C9C5C - b _081C9B9A -_081C9BC0: - movs r0, 0x1 - bl ShowBg - movs r0, 0x2 - bl ShowBg - movs r0, 0x3 - bl ShowBg - ldrb r0, [r5, 0xD] - cmp r0, 0 - beq _081C9BE0 - movs r0, 0x1 - bl sub_81C7AC0 - b _081C9BEC -_081C9BE0: - movs r0, 0x6E - bl PlaySE - movs r0, 0x3 - bl sub_81C7AC0 -_081C9BEC: - bl sub_81C9894 - cmp r0, 0x3 - beq _081C9BFE - cmp r0, 0x4 - bne _081C9C06 - movs r0, 0x7 - bl LoadLeftHeaderGfxForIndex -_081C9BFE: - movs r0, 0x1 - bl LoadLeftHeaderGfxForIndex - b _081C9AD6 -_081C9C06: - movs r0, 0 - bl LoadLeftHeaderGfxForIndex - b _081C9AD6 -_081C9C0E: - bl IsPaletteFadeActive - cmp r0, 0 - bne _081C9C5C - bl sub_81C9894 - cmp r0, 0x3 - beq _081C9C2C - cmp r0, 0x4 - bne _081C9C38 - movs r0, 0x7 - movs r1, 0 - movs r2, 0 - bl sub_81C7FA0 -_081C9C2C: - movs r0, 0x1 - movs r1, 0 - movs r2, 0 - bl sub_81C7FA0 - b _081C9C42 -_081C9C38: - movs r0, 0 - movs r1, 0 - movs r2, 0 - bl sub_81C7FA0 -_081C9C42: - bl sub_81CA20C - bl titlescreen_0 - b _081C9B9A -_081C9C4C: - bl sub_81CA324 - cmp r0, 0 - bne _081C9C5C - bl sub_81C8010 - cmp r0, 0 - beq _081C9C60 -_081C9C5C: - movs r0, 0x2 - b _081C9C62 -_081C9C60: - movs r0, 0x4 -_081C9C62: - add sp, 0x4 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_81C9A10 - - thumb_func_start sub_81C9C6C -sub_81C9C6C: @ 81C9C6C - push {lr} - cmp r0, 0 - beq _081C9C78 - cmp r0, 0x1 - beq _081C9C8E - b _081C9CA2 -_081C9C78: - bl sub_81CAA3C - bl sub_81CA278 - bl sub_81CA714 - movs r0, 0x5 - bl PlaySE - movs r0, 0 - b _081C9CA4 -_081C9C8E: - bl sub_81CA324 - cmp r0, 0 - bne _081C9C9E - bl sub_81CA7C4 - cmp r0, 0 - beq _081C9CA2 -_081C9C9E: - movs r0, 0x2 - b _081C9CA4 -_081C9CA2: - movs r0, 0x4 -_081C9CA4: - pop {r1} - bx r1 - thumb_func_end sub_81C9C6C - - thumb_func_start sub_81C9CA8 -sub_81C9CA8: @ 81C9CA8 - push {lr} - cmp r0, 0x1 - beq _081C9CDC - cmp r0, 0x1 - bgt _081C9CB8 - cmp r0, 0 - beq _081C9CC2 - b _081C9D3C -_081C9CB8: - cmp r0, 0x2 - beq _081C9CFA - cmp r0, 0x3 - beq _081C9D14 - b _081C9D3C -_081C9CC2: - bl sub_81CA9C8 - bl sub_81CA2DC - movs r0, 0 - movs r1, 0 - bl sub_81C7FC4 - movs r0, 0x5 - bl PlaySE - movs r0, 0 - b _081C9D3E -_081C9CDC: - bl sub_81CA324 - cmp r0, 0 - bne _081C9D34 - bl sub_81C8010 - cmp r0, 0 - bne _081C9D34 - bl sub_81CA0C8 - movs r0, 0x1 - bl LoadLeftHeaderGfxForIndex - movs r0, 0 - b _081C9D3E -_081C9CFA: - bl sub_81CA20C - movs r0, 0x1 - movs r1, 0 - movs r2, 0 - bl sub_81C7FA0 - bl sub_81CA818 - bl sub_81CA714 - movs r0, 0 - b _081C9D3E -_081C9D14: - bl sub_81CA324 - cmp r0, 0 - bne _081C9D34 - bl sub_81C8010 - cmp r0, 0 - bne _081C9D34 - bl sub_81CA89C - cmp r0, 0 - bne _081C9D34 - bl sub_81CA7C4 - cmp r0, 0 - beq _081C9D38 -_081C9D34: - movs r0, 0x2 - b _081C9D3E -_081C9D38: - bl sub_81CA9D8 -_081C9D3C: - movs r0, 0x4 -_081C9D3E: - pop {r1} - bx r1 - thumb_func_end sub_81C9CA8 - - thumb_func_start sub_81C9D44 -sub_81C9D44: @ 81C9D44 - push {lr} - cmp r0, 0x1 - beq _081C9D72 - cmp r0, 0x1 - bgt _081C9D54 - cmp r0, 0 - beq _081C9D5E - b _081C9DD2 -_081C9D54: - cmp r0, 0x2 - beq _081C9D90 - cmp r0, 0x3 - beq _081C9DAA - b _081C9DD2 -_081C9D5E: - bl sub_81CA9C8 - bl sub_81CA2DC - movs r0, 0x1 - movs r1, 0 - bl sub_81C7FC4 - movs r0, 0 - b _081C9DD4 -_081C9D72: - bl sub_81CA324 - cmp r0, 0 - bne _081C9DCA - bl sub_81C8010 - cmp r0, 0 - bne _081C9DCA - bl sub_81CA0C8 - movs r0, 0 - bl LoadLeftHeaderGfxForIndex - movs r0, 0 - b _081C9DD4 -_081C9D90: - bl sub_81CA20C - movs r0, 0 - movs r1, 0 - movs r2, 0 - bl sub_81C7FA0 - bl sub_81CA864 - bl sub_81CA714 - movs r0, 0 - b _081C9DD4 -_081C9DAA: - bl sub_81CA324 - cmp r0, 0 - bne _081C9DCA - bl sub_81C8010 - cmp r0, 0 - bne _081C9DCA - bl sub_81CA89C - cmp r0, 0 - bne _081C9DCA - bl sub_81CA7C4 - cmp r0, 0 - beq _081C9DCE -_081C9DCA: - movs r0, 0x2 - b _081C9DD4 -_081C9DCE: - bl sub_81CA9D8 -_081C9DD2: - movs r0, 0x4 -_081C9DD4: - pop {r1} - bx r1 - thumb_func_end sub_81C9D44 - - thumb_func_start sub_81C9DD8 -sub_81C9DD8: @ 81C9DD8 - push {lr} - cmp r0, 0x1 - beq _081C9E04 - cmp r0, 0x1 - bgt _081C9DE8 - cmp r0, 0 - beq _081C9DF2 - b _081C9E50 -_081C9DE8: - cmp r0, 0x2 - beq _081C9E1A - cmp r0, 0x3 - beq _081C9E30 - b _081C9E50 -_081C9DF2: - bl sub_81CA9C8 - bl sub_81CA2DC - movs r0, 0x5 - bl PlaySE - movs r0, 0 - b _081C9E52 -_081C9E04: - bl sub_81CA324 - cmp r0, 0 - bne _081C9E48 - movs r0, 0x7 - bl LoadLeftHeaderGfxForIndex - bl sub_81CA0C8 - movs r0, 0 - b _081C9E52 -_081C9E1A: - bl sub_81CA20C - movs r0, 0x7 - movs r1, 0 - movs r2, 0 - bl sub_81C7FA0 - bl sub_81CA714 - movs r0, 0 - b _081C9E52 -_081C9E30: - bl sub_81CA324 - cmp r0, 0 - bne _081C9E48 - bl sub_81C8010 - cmp r0, 0 - bne _081C9E48 - bl sub_81CA89C - cmp r0, 0 - beq _081C9E4C -_081C9E48: - movs r0, 0x2 - b _081C9E52 -_081C9E4C: - bl sub_81CA9D8 -_081C9E50: - movs r0, 0x4 -_081C9E52: - pop {r1} - bx r1 - thumb_func_end sub_81C9DD8 - - thumb_func_start sub_81C9E58 -sub_81C9E58: @ 81C9E58 - push {lr} - cmp r0, 0x1 - beq _081C9E86 - cmp r0, 0x1 - bgt _081C9E68 - cmp r0, 0 - beq _081C9E72 - b _081C9EC2 -_081C9E68: - cmp r0, 0x2 - beq _081C9E9E - cmp r0, 0x3 - beq _081C9EAA - b _081C9EC2 -_081C9E72: - bl sub_81CA9C8 - bl sub_81CA2DC - movs r0, 0x7 - movs r1, 0 - bl sub_81C7FC4 - movs r0, 0 - b _081C9EC4 -_081C9E86: - bl sub_81CA324 - cmp r0, 0 - bne _081C9EBA - bl sub_81C8010 - cmp r0, 0 - bne _081C9EBA - bl sub_81CA0C8 - movs r0, 0 - b _081C9EC4 -_081C9E9E: - bl sub_81CA20C - bl sub_81CA714 - movs r0, 0 - b _081C9EC4 -_081C9EAA: - bl sub_81CA324 - cmp r0, 0 - bne _081C9EBA - bl sub_81CA89C - cmp r0, 0 - beq _081C9EBE -_081C9EBA: - movs r0, 0x2 - b _081C9EC4 -_081C9EBE: - bl sub_81CA9D8 -_081C9EC2: - movs r0, 0x4 -_081C9EC4: - pop {r1} - bx r1 - thumb_func_end sub_81C9E58 - - thumb_func_start sub_81C9EC8 -sub_81C9EC8: @ 81C9EC8 - push {lr} - cmp r0, 0 - beq _081C9ED4 - cmp r0, 0x1 - beq _081C9EE2 - b _081C9EF0 -_081C9ED4: - movs r0, 0x20 - bl PlaySE - bl sub_81CA770 - movs r0, 0 - b _081C9EF2 -_081C9EE2: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, 24 - cmp r0, 0 - beq _081C9EF0 - movs r0, 0x2 - b _081C9EF2 -_081C9EF0: - movs r0, 0x4 -_081C9EF2: - pop {r1} - bx r1 - thumb_func_end sub_81C9EC8 - - thumb_func_start sub_81C9EF8 -sub_81C9EF8: @ 81C9EF8 - push {lr} - cmp r0, 0 - beq _081C9F04 - cmp r0, 0x1 - beq _081C9F12 - b _081C9F20 -_081C9F04: - movs r0, 0x5 - bl PlaySE - bl sub_81CA714 - movs r0, 0 - b _081C9F22 -_081C9F12: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, 24 - cmp r0, 0 - beq _081C9F20 - movs r0, 0x2 - b _081C9F22 -_081C9F20: - movs r0, 0x4 -_081C9F22: - pop {r1} - bx r1 - thumb_func_end sub_81C9EF8 - - thumb_func_start sub_81C9F28 -sub_81C9F28: @ 81C9F28 - push {lr} - cmp r0, 0x1 - beq _081C9F52 - cmp r0, 0x1 - bgt _081C9F38 - cmp r0, 0 - beq _081C9F42 - b _081C9FBC -_081C9F38: - cmp r0, 0x2 - beq _081C9F96 - cmp r0, 0x3 - beq _081C9FB0 - b _081C9FBC -_081C9F42: - bl sub_81C98C4 - lsls r0, 16 - lsrs r0, 16 - bl sub_81C7BA4 - movs r0, 0 - b _081C9FBE -_081C9F52: - bl IsDma3ManagerBusyWithBgCopy_ - cmp r0, 0 - bne _081C9FB8 - bl sub_81C7880 - bl sub_81CA9C8 - bl sub_81CA2DC - bl sub_81C9894 - cmp r0, 0x3 - beq _081C9F7A - cmp r0, 0x4 - bne _081C9F84 - movs r0, 0x7 - movs r1, 0 - bl sub_81C7FC4 -_081C9F7A: - movs r0, 0x1 - movs r1, 0 - bl sub_81C7FC4 - b _081C9F8C -_081C9F84: - movs r0, 0 - movs r1, 0 - bl sub_81C7FC4 -_081C9F8C: - movs r0, 0x5 - bl PlaySE - movs r0, 0 - b _081C9FBE -_081C9F96: - bl sub_81CA324 - cmp r0, 0 - bne _081C9FB8 - bl sub_81C8010 - cmp r0, 0 - bne _081C9FB8 - movs r0, 0 - bl sub_81C7AC0 - movs r0, 0 - b _081C9FBE -_081C9FB0: - bl IsPaletteFadeActive - cmp r0, 0 - beq _081C9FBC -_081C9FB8: - movs r0, 0x2 - b _081C9FBE -_081C9FBC: - movs r0, 0x4 -_081C9FBE: - pop {r1} - bx r1 - thumb_func_end sub_81C9F28 - - thumb_func_start sub_81C9FC4 -sub_81C9FC4: @ 81C9FC4 - push {r4,r5,lr} - movs r5, 0 - ldr r4, =gUnknown_086201C4 -_081C9FCA: - adds r0, r4, 0 - bl LoadCompressedSpriteSheet - adds r4, 0x8 - adds r5, 0x1 - cmp r5, 0x1 - bls _081C9FCA - ldr r0, =gUnknown_086201D4 - bl Pokenav_AllocAndLoadPalettes - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C9FC4 - - thumb_func_start sub_81C9FEC -sub_81C9FEC: @ 81C9FEC - push {lr} - movs r0, 0x3 - bl FreeSpriteTilesByTag - movs r0, 0x1 - bl FreeSpriteTilesByTag - movs r0, 0x4 - bl FreeSpritePaletteByTag - movs r0, 0x5 - bl FreeSpritePaletteByTag - movs r0, 0x6 - bl FreeSpritePaletteByTag - movs r0, 0x7 - bl FreeSpritePaletteByTag - movs r0, 0x8 - bl FreeSpritePaletteByTag - movs r0, 0x3 - bl FreeSpritePaletteByTag - bl sub_81CA094 - bl sub_81CA698 - pop {r0} - bx r0 - thumb_func_end sub_81C9FEC - - thumb_func_start sub_81CA02C -sub_81CA02C: @ 81CA02C - push {r4-r7,lr} - mov r7, r8 - push {r7} - movs r0, 0x2 - bl GetSubstructPtr - movs r2, 0 - adds r0, 0x2C - mov r8, r0 -_081CA03E: - movs r4, 0 - lsls r0, r2, 2 - lsls r1, r2, 4 - adds r7, r2, 0x1 - adds r0, r2 - lsls r0, 18 - movs r2, 0xA0 - lsls r2, 14 - adds r5, r0, r2 - mov r0, r8 - adds r6, r1, r0 -_081CA054: - ldr r0, =gUnknown_0862034C - movs r1, 0x8C - asrs r2, r5, 16 - movs r3, 0x3 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - ldr r0, =gSprites - adds r1, r0 - stm r6!, {r1} - lsls r0, r4, 5 - strh r0, [r1, 0x24] - adds r4, 0x1 - cmp r4, 0x3 - ble _081CA054 - adds r2, r7, 0 - cmp r2, 0x5 - ble _081CA03E - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81CA02C - - thumb_func_start sub_81CA094 -sub_81CA094: @ 81CA094 - push {r4-r7,lr} - movs r0, 0x2 - bl GetSubstructPtr - movs r1, 0 - adds r7, r0, 0 - adds r7, 0x2C -_081CA0A2: - lsls r0, r1, 4 - adds r6, r1, 0x1 - adds r4, r0, r7 - movs r5, 0x3 -_081CA0AA: - ldr r0, [r4] - bl FreeSpriteOamMatrix - ldm r4!, {r0} - bl DestroySprite - subs r5, 0x1 - cmp r5, 0 - bge _081CA0AA - adds r1, r6, 0 - cmp r1, 0x5 - ble _081CA0A2 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_81CA094 - - thumb_func_start sub_81CA0C8 -sub_81CA0C8: @ 81CA0C8 - push {lr} - bl sub_81C9894 - lsls r2, r0, 3 - subs r2, r0 - lsls r2, 2 - ldr r1, =gUnknown_08620244 - adds r0, r2, r1 - subs r1, 0x4 - adds r2, r1 - ldrh r1, [r2] - ldrh r2, [r2, 0x2] - bl sub_81CA0EC - pop {r0} - bx r0 - .pool - thumb_func_end sub_81CA0C8 - - thumb_func_start sub_81CA0EC -sub_81CA0EC: @ 81CA0EC - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x18 - adds r6, r0, 0 - str r1, [sp, 0x14] - str r2, [sp] - movs r0, 0x2 - bl GetSubstructPtr - mov r10, r0 - movs r0, 0x3 - bl GetSpriteTileStartByTag - lsls r0, 16 - lsrs r0, 16 - str r0, [sp, 0x4] - movs r1, 0 -_081CA114: - ldr r0, [r6] - cmp r0, 0 - beq _081CA1B0 - movs r5, 0 - lsls r2, r1, 4 - mov r0, r10 - adds r0, 0x2C - lsls r3, r1, 2 - mov r9, r3 - movs r4, 0x10 - add r4, r10 - mov r8, r4 - adds r7, r6, 0x4 - str r7, [sp, 0xC] - ldr r3, [sp, 0x14] - ldr r4, [sp] - adds r3, r4 - str r3, [sp, 0x8] - adds r1, 0x1 - str r1, [sp, 0x10] - adds r4, r2, r0 -_081CA13E: - ldr r3, [r4] - ldr r0, [r6] - ldrh r2, [r0] - ldr r7, [sp, 0x4] - adds r2, r7 - lsls r0, r5, 3 - adds r2, r0 - ldr r1, =0x000003ff - adds r0, r1, 0 - ands r2, r0 - ldrh r0, [r3, 0x4] - ldr r7, =0xfffffc00 - adds r1, r7, 0 - ands r0, r1 - orrs r0, r2 - strh r0, [r3, 0x4] - ldr r0, [r6] - ldrh r0, [r0, 0x2] - adds r0, 0x4 - lsls r0, 16 - lsrs r0, 16 - bl IndexOfSpritePaletteTag - ldr r3, [r4] - lsls r0, 4 - ldrb r2, [r3, 0x5] - movs r1, 0xF - ands r1, r2 - orrs r1, r0 - strb r1, [r3, 0x5] - ldr r2, [r4] - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] - ldr r0, [r4] - mov r1, sp - ldrh r1, [r1, 0x14] - strh r1, [r0, 0x22] - ldr r1, [r4] - movs r0, 0x8C - strh r0, [r1, 0x20] - ldm r4!, {r1} - lsls r0, r5, 5 - strh r0, [r1, 0x24] - adds r5, 0x1 - cmp r5, 0x3 - ble _081CA13E - mov r1, r8 - add r1, r9 - movs r0, 0x1 - b _081CA1EC - .pool -_081CA1B0: - lsls r2, r1, 4 - mov r0, r10 - adds r0, 0x2C - lsls r3, r1, 2 - mov r9, r3 - movs r4, 0x10 - add r4, r10 - mov r8, r4 - adds r6, 0x4 - str r6, [sp, 0xC] - ldr r7, [sp, 0x14] - ldr r3, [sp] - adds r7, r3 - str r7, [sp, 0x8] - adds r1, 0x1 - str r1, [sp, 0x10] - movs r3, 0x4 - adds r2, r0 - movs r5, 0x3 -_081CA1D6: - ldm r2!, {r1} - adds r1, 0x3E - ldrb r0, [r1] - orrs r0, r3 - strb r0, [r1] - subs r5, 0x1 - cmp r5, 0 - bge _081CA1D6 - mov r1, r8 - add r1, r9 - movs r0, 0 -_081CA1EC: - str r0, [r1] - ldr r6, [sp, 0xC] - ldr r4, [sp, 0x8] - str r4, [sp, 0x14] - ldr r1, [sp, 0x10] - cmp r1, 0x5 - ble _081CA114 - add sp, 0x18 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_81CA0EC - - thumb_func_start sub_81CA20C -sub_81CA20C: @ 81CA20C - push {r4-r7,lr} - mov r7, r8 - push {r7} - movs r0, 0x2 - bl GetSubstructPtr - adds r6, r0, 0 - bl sub_81C98A4 - mov r8, r0 - movs r7, 0 - movs r5, 0 - adds r4, r6, 0 - adds r4, 0x2C -_081CA228: - lsls r0, r5, 2 - adds r1, r6, 0 - adds r1, 0x10 - adds r1, r0 - ldr r0, [r1] - cmp r0, 0 - beq _081CA25C - adds r0, r7, 0 - adds r7, 0x1 - cmp r0, r8 - bne _081CA244 - movs r2, 0x82 - strb r5, [r6, 0xB] - b _081CA246 -_081CA244: - movs r2, 0x8C -_081CA246: - adds r0, r4, 0 - movs r1, 0x80 - lsls r1, 1 - movs r3, 0xC - bl sub_81CA35C - adds r0, r4, 0 - movs r1, 0 - bl sub_81CA448 - b _081CA264 -_081CA25C: - adds r0, r4, 0 - movs r1, 0x1 - bl sub_81CA448 -_081CA264: - adds r4, 0x10 - adds r5, 0x1 - cmp r5, 0x5 - ble _081CA228 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_81CA20C - - thumb_func_start sub_81CA278 -sub_81CA278: @ 81CA278 - push {r4,r5,lr} - movs r0, 0x2 - bl GetSubstructPtr - adds r4, r0, 0 - bl sub_81C98A4 - adds r3, r0, 0 - movs r2, 0 - movs r5, 0 - ldr r0, [r4, 0x10] - cmp r0, 0 - beq _081CA298 - cmp r5, r3 - beq _081CA2B2 -_081CA296: - adds r5, 0x1 -_081CA298: - adds r2, 0x1 - cmp r2, 0x5 - bgt _081CA2B2 - lsls r0, r2, 2 - adds r1, r4, 0 - adds r1, 0x10 - adds r1, r0 - ldr r0, [r1] - cmp r0, 0 - beq _081CA298 - cmp r5, r3 - bne _081CA296 - adds r5, r2, 0 -_081CA2B2: - ldrb r0, [r4, 0xB] - lsls r0, 4 - adds r0, 0x2C - adds r0, r4, r0 - movs r1, 0x82 - movs r2, 0x8C - movs r3, 0x4 - bl sub_81CA35C - lsls r0, r5, 4 - adds r0, 0x2C - adds r0, r4, r0 - movs r1, 0x8C - movs r2, 0x82 - movs r3, 0x4 - bl sub_81CA35C - strb r5, [r4, 0xB] - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_81CA278 - - thumb_func_start sub_81CA2DC -sub_81CA2DC: @ 81CA2DC - push {r4-r6,lr} - movs r0, 0x2 - bl GetSubstructPtr - adds r6, r0, 0 - movs r5, 0 - adds r4, r6, 0 - adds r4, 0x2C -_081CA2EC: - lsls r0, r5, 2 - adds r1, r6, 0 - adds r1, 0x10 - adds r1, r0 - ldr r0, [r1] - cmp r0, 0 - beq _081CA316 - ldrb r0, [r6, 0xB] - cmp r0, r5 - beq _081CA310 - adds r0, r4, 0 - movs r1, 0x8C - movs r2, 0x80 - lsls r2, 1 - movs r3, 0x8 - bl sub_81CA35C - b _081CA316 -_081CA310: - adds r0, r4, 0 - bl sub_81CA3B4 -_081CA316: - adds r4, 0x10 - adds r5, 0x1 - cmp r5, 0x5 - ble _081CA2EC - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_81CA2DC - - thumb_func_start sub_81CA324 -sub_81CA324: @ 81CA324 - push {r4,lr} - movs r0, 0x2 - bl GetSubstructPtr - adds r3, r0, 0 - movs r2, 0 - ldr r4, =SpriteCallbackDummy - adds r1, r3, 0 - adds r1, 0x2C -_081CA336: - ldr r0, [r1] - ldr r0, [r0, 0x1C] - cmp r0, r4 - bne _081CA354 - adds r1, 0x10 - adds r2, 0x1 - cmp r2, 0x5 - ble _081CA336 - ldrb r0, [r3, 0xC] - cmp r0, 0 - bne _081CA354 - movs r0, 0 - b _081CA356 - .pool -_081CA354: - movs r0, 0x1 -_081CA356: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_81CA324 - - thumb_func_start sub_81CA35C -sub_81CA35C: @ 81CA35C - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - adds r4, r0, 0 - adds r5, r1, 0 - mov r9, r2 - adds r6, r3, 0 - ldr r0, =sub_81CA474 - mov r8, r0 - subs r0, r2, r5 - lsls r0, 4 - adds r1, r6, 0 - bl __divsi3 - adds r3, r0, 0 - movs r1, 0x3 - lsls r2, r5, 4 -_081CA380: - ldr r0, [r4] - strh r5, [r0, 0x20] - ldr r0, [r4] - strh r6, [r0, 0x2E] - ldr r0, [r4] - strh r3, [r0, 0x30] - ldr r0, [r4] - strh r2, [r0, 0x32] - ldr r0, [r4] - mov r7, r9 - strh r7, [r0, 0x3C] - ldm r4!, {r0} - mov r7, r8 - str r7, [r0, 0x1C] - subs r1, 0x1 - cmp r1, 0 - bge _081CA380 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81CA35C - - thumb_func_start sub_81CA3B4 -sub_81CA3B4: @ 81CA3B4 - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r4, r0, 0 - movs r0, 0x2 - bl GetSubstructPtr - adds r7, r0, 0 - movs r5, 0 - mov r8, r5 -_081CA3C8: - ldr r2, [r4] - ldrb r1, [r2, 0x1] - movs r3, 0xD - negs r3, r3 - adds r0, r3, 0 - ands r1, r0 - movs r0, 0x4 - orrs r1, r0 - strb r1, [r2, 0x1] - ldr r2, [r4] - ldrb r0, [r2, 0x1] - movs r1, 0x3 - orrs r0, r1 - strb r0, [r2, 0x1] - ldr r1, [r4] - ldr r0, =sub_81CA4AC - str r0, [r1, 0x1C] - movs r6, 0x8 - strh r6, [r1, 0x2E] - ldr r0, [r4] - mov r1, r8 - strh r1, [r0, 0x30] - ldr r0, [r4] - strh r5, [r0, 0x3C] - ldr r0, [r4] - bl InitSpriteAffineAnim - ldm r4!, {r0} - movs r1, 0 - bl StartSpriteAffineAnim - adds r5, 0x1 - cmp r5, 0x3 - ble _081CA3C8 - movs r0, 0x52 - movs r1, 0x10 - bl SetGpuReg - ldr r0, =sub_81CA580 - movs r1, 0x3 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - strh r6, [r1, 0x8] - ldrb r0, [r7, 0xC] - adds r0, 0x1 - strb r0, [r7, 0xC] - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81CA3B4 - - thumb_func_start sub_81CA448 -sub_81CA448: @ 81CA448 - push {r4-r6,lr} - adds r5, r0, 0 - movs r0, 0x1 - ands r1, r0 - lsls r4, r1, 2 - movs r6, 0x5 - negs r6, r6 - movs r3, 0x3 -_081CA458: - ldm r5!, {r0} - adds r0, 0x3E - ldrb r2, [r0] - adds r1, r6, 0 - ands r1, r2 - orrs r1, r4 - strb r1, [r0] - subs r3, 0x1 - cmp r3, 0 - bge _081CA458 - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_81CA448 - - thumb_func_start sub_81CA474 -sub_81CA474: @ 81CA474 - push {lr} - adds r2, r0, 0 - ldrh r0, [r2, 0x2E] - subs r0, 0x1 - strh r0, [r2, 0x2E] - lsls r0, 16 - asrs r0, 16 - movs r1, 0x1 - negs r1, r1 - cmp r0, r1 - beq _081CA49A - ldrh r0, [r2, 0x30] - ldrh r1, [r2, 0x32] - adds r0, r1 - strh r0, [r2, 0x32] - lsls r0, 16 - asrs r0, 20 - strh r0, [r2, 0x20] - b _081CA4A2 -_081CA49A: - ldrh r0, [r2, 0x3C] - strh r0, [r2, 0x20] - ldr r0, =SpriteCallbackDummy - str r0, [r2, 0x1C] -_081CA4A2: - pop {r0} - bx r0 - .pool - thumb_func_end sub_81CA474 - - thumb_func_start sub_81CA4AC -sub_81CA4AC: @ 81CA4AC - push {r4,r5,lr} - adds r4, r0, 0 - ldrh r1, [r4, 0x2E] - movs r2, 0x2E - ldrsh r0, [r4, r2] - cmp r0, 0 - bne _081CA574 - movs r0, 0x30 - ldrsh r5, [r4, r0] - cmp r5, 0 - bne _081CA4E2 - adds r0, r4, 0 - movs r1, 0x1 - bl StartSpriteAffineAnim - ldrh r0, [r4, 0x30] - adds r0, 0x1 - strh r0, [r4, 0x30] - movs r0, 0x80 - lsls r0, 1 - strh r0, [r4, 0x32] - ldrh r0, [r4, 0x24] - ldrh r1, [r4, 0x20] - adds r0, r1 - strh r0, [r4, 0x20] - strh r5, [r4, 0x24] - b _081CA578 -_081CA4E2: - ldrh r0, [r4, 0x32] - adds r0, 0x10 - strh r0, [r4, 0x32] - movs r2, 0x32 - ldrsh r0, [r4, r2] - asrs r1, r0, 3 - adds r0, r1, 0 - subs r0, 0x20 - lsrs r1, r0, 31 - adds r0, r1 - asrs r1, r0, 1 - movs r2, 0x3C - ldrsh r0, [r4, r2] - cmp r0, 0x1 - beq _081CA518 - cmp r0, 0x1 - bgt _081CA50A - cmp r0, 0 - beq _081CA514 - b _081CA526 -_081CA50A: - cmp r0, 0x2 - beq _081CA51C - cmp r0, 0x3 - beq _081CA520 - b _081CA526 -_081CA514: - negs r1, r1 - b _081CA520 -_081CA518: - negs r0, r1 - b _081CA524 -_081CA51C: - strh r1, [r4, 0x24] - b _081CA526 -_081CA520: - lsls r0, r1, 1 - adds r0, r1 -_081CA524: - strh r0, [r4, 0x24] -_081CA526: - adds r0, r4, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - beq _081CA578 - adds r2, r4, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] - ldrb r0, [r4, 0x3] - lsls r0, 26 - lsrs r0, 27 - bl FreeOamMatrix - ldrb r1, [r4, 0x1] - lsrs r1, 6 - ldrb r2, [r4, 0x3] - lsrs r2, 6 - adds r0, r4, 0 - movs r3, 0 - bl CalcCenterToCornerVec - ldrb r1, [r4, 0x1] - movs r0, 0x4 - negs r0, r0 - ands r0, r1 - movs r1, 0xD - negs r1, r1 - ands r0, r1 - strb r0, [r4, 0x1] - ldr r0, =SpriteCallbackDummy - str r0, [r4, 0x1C] - b _081CA578 - .pool -_081CA574: - subs r0, r1, 0x1 - strh r0, [r4, 0x2E] -_081CA578: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_81CA4AC - - thumb_func_start sub_81CA580 -sub_81CA580: @ 81CA580 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - ldr r1, =gTasks + 0x8 - adds r4, r0, r1 - ldrh r0, [r4] - movs r1, 0 - ldrsh r2, [r4, r1] - cmp r2, 0 - bne _081CA634 - movs r0, 0x2 - ldrsh r1, [r4, r0] - cmp r1, 0 - beq _081CA5AC - cmp r1, 0x1 - beq _081CA5CC - b _081CA638 - .pool -_081CA5AC: - movs r0, 0x10 - strh r0, [r4, 0x4] - strh r2, [r4, 0x6] - movs r1, 0xFC - lsls r1, 6 - movs r0, 0x50 - bl SetGpuReg - movs r0, 0x52 - movs r1, 0x10 - bl SetGpuReg - ldrh r0, [r4, 0x2] - adds r0, 0x1 - strh r0, [r4, 0x2] - b _081CA638 -_081CA5CC: - ldrh r0, [r4, 0x8] - ands r1, r0 - cmp r1, 0 - beq _081CA5E4 - ldrh r0, [r4, 0x4] - subs r0, 0x3 - strh r0, [r4, 0x4] - lsls r0, 16 - cmp r0, 0 - bge _081CA5F6 - strh r2, [r4, 0x4] - b _081CA5F6 -_081CA5E4: - ldrh r0, [r4, 0x6] - adds r0, 0x3 - strh r0, [r4, 0x6] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x10 - ble _081CA5F6 - movs r0, 0x10 - strh r0, [r4, 0x6] -_081CA5F6: - ldrh r1, [r4, 0x6] - lsls r1, 8 - ldrh r0, [r4, 0x4] - orrs r1, r0 - lsls r1, 16 - lsrs r1, 16 - movs r0, 0x52 - bl SetGpuReg - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0xC - bne _081CA638 - movs r0, 0x2 - bl GetSubstructPtr - ldrb r1, [r0, 0xC] - subs r1, 0x1 - strb r1, [r0, 0xC] - movs r1, 0x80 - lsls r1, 5 - movs r0, 0x52 - bl SetGpuReg - adds r0, r5, 0 - bl DestroyTask - b _081CA638 -_081CA634: - subs r0, 0x1 - strh r0, [r4] -_081CA638: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_81CA580 - - thumb_func_start sub_81CA640 -sub_81CA640: @ 81CA640 - push {r4,lr} - movs r0, 0x2 - bl GetSubstructPtr - adds r4, r0, 0 - ldr r0, =gUnknown_0862036C - movs r1, 0x10 - movs r2, 0x60 - movs r3, 0x4 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - ldr r0, =gSprites - adds r1, r0 - str r1, [r4, 0x28] - bl sub_81C98D4 - cmp r0, 0 - beq _081CA684 - ldr r1, [r4, 0x28] - ldr r0, =sub_81CA6AC - str r0, [r1, 0x1C] - b _081CA690 - .pool -_081CA684: - ldr r0, [r4, 0x28] - adds r0, 0x3E - ldrb r1, [r0] - movs r2, 0x4 - orrs r1, r2 - strb r1, [r0] -_081CA690: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_81CA640 - - thumb_func_start sub_81CA698 -sub_81CA698: @ 81CA698 - push {lr} - movs r0, 0x2 - bl GetSubstructPtr - ldr r0, [r0, 0x28] - bl DestroySprite - pop {r0} - bx r0 - thumb_func_end sub_81CA698 - - thumb_func_start sub_81CA6AC -sub_81CA6AC: @ 81CA6AC - push {lr} - adds r3, r0, 0 - ldrh r0, [r3, 0x2E] - adds r0, 0x1 - strh r0, [r3, 0x2E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x8 - ble _081CA6DA - movs r0, 0 - strh r0, [r3, 0x2E] - adds r3, 0x3E - ldrb r2, [r3] - lsls r0, r2, 29 - lsrs r0, 31 - movs r1, 0x1 - eors r1, r0 - lsls r1, 2 - movs r0, 0x5 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] -_081CA6DA: - pop {r0} - bx r0 - thumb_func_end sub_81CA6AC - - thumb_func_start sub_81CA6E0 -sub_81CA6E0: @ 81CA6E0 - push {r4,lr} - movs r0, 0x2 - bl GetSubstructPtr - adds r4, r0, 0 - ldr r0, =gUnknown_086202CC - bl AddWindow - strh r0, [r4, 0x8] - lsls r0, 24 - lsrs r0, 24 - bl PutWindowTilemap - ldrb r0, [r4, 0x8] - movs r1, 0x66 - bl FillWindowPixelBuffer - ldrb r0, [r4, 0x8] - movs r1, 0x3 - bl CopyWindowToVram - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81CA6E0 - - thumb_func_start sub_81CA714 -sub_81CA714: @ 81CA714 - push {r4-r6,lr} - sub sp, 0xC - movs r0, 0x2 - bl GetSubstructPtr - adds r5, r0, 0 - bl sub_81C98B4 - ldr r1, =gUnknown_086202D4 - lsls r0, 2 - adds r0, r1 - ldr r6, [r0] - movs r2, 0x1 - negs r2, r2 - movs r0, 0x1 - adds r1, r6, 0 - bl GetStringWidth - adds r4, r0, 0 - ldrb r0, [r5, 0x8] - movs r1, 0x66 - bl FillWindowPixelBuffer - ldrb r0, [r5, 0x8] - movs r2, 0xC0 - subs r2, r4 - lsrs r2, 1 - lsls r2, 24 - lsrs r2, 24 - ldr r1, =gUnknown_0862030C - str r1, [sp] - movs r1, 0 - str r1, [sp, 0x4] - str r6, [sp, 0x8] - movs r1, 0x1 - movs r3, 0x1 - bl AddTextPrinterParameterized3 - add sp, 0xC - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81CA714 - - thumb_func_start sub_81CA770 -sub_81CA770: @ 81CA770 - push {r4-r6,lr} - sub sp, 0xC - movs r0, 0x2 - bl GetSubstructPtr - adds r5, r0, 0 - ldr r6, =gText_NoRibbonWinners - movs r2, 0x1 - negs r2, r2 - movs r0, 0x1 - adds r1, r6, 0 - bl GetStringWidth - adds r4, r0, 0 - ldrb r0, [r5, 0x8] - movs r1, 0x66 - bl FillWindowPixelBuffer - ldrb r0, [r5, 0x8] - movs r2, 0xC0 - subs r2, r4 - lsrs r2, 1 - lsls r2, 24 - lsrs r2, 24 - ldr r1, =gUnknown_0862030F - str r1, [sp] - movs r1, 0 - str r1, [sp, 0x4] - str r6, [sp, 0x8] - movs r1, 0x1 - movs r3, 0x1 - bl AddTextPrinterParameterized3 - add sp, 0xC - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81CA770 - - thumb_func_start sub_81CA7C4 -sub_81CA7C4: @ 81CA7C4 - push {lr} - bl IsDma3ManagerBusyWithBgCopy - lsls r0, 24 - lsrs r0, 24 - pop {r1} - bx r1 - thumb_func_end sub_81CA7C4 - - thumb_func_start sub_81CA7D4 -sub_81CA7D4: @ 81CA7D4 - push {r4,lr} - movs r0, 0x2 - bl GetSubstructPtr - adds r4, r0, 0 - ldr r0, =sub_81CA808 - movs r1, 0x2 - bl CreateTask - strb r0, [r4, 0xA] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81CA7D4 - - thumb_func_start sub_81CA7F4 -sub_81CA7F4: @ 81CA7F4 - push {lr} - movs r0, 0x2 - bl GetSubstructPtr - ldrb r0, [r0, 0xA] - bl DestroyTask - pop {r0} - bx r0 - thumb_func_end sub_81CA7F4 - - thumb_func_start sub_81CA808 -sub_81CA808: @ 81CA808 - push {lr} - movs r0, 0x3 - movs r1, 0x80 - movs r2, 0x1 - bl ChangeBgX - pop {r0} - bx r0 - thumb_func_end sub_81CA808 - - thumb_func_start sub_81CA818 -sub_81CA818: @ 81CA818 - push {r4,r5,lr} - ldr r0, =sub_81CA8B0 - movs r1, 0x3 - bl CreateTask - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r5, =gUnknown_0861FC78 + 2 - adds r0, r4, 0 - movs r1, 0x1 - adds r2, r5, 0 - bl SetWordTaskArg - adds r5, 0xC - adds r0, r4, 0 - movs r1, 0x3 - adds r2, r5, 0 - bl SetWordTaskArg - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81CA818 - - thumb_func_start sub_81CA850 -sub_81CA850: @ 81CA850 - push {lr} - ldr r0, =gUnknown_0861FC78 + 0xE - movs r1, 0x31 - movs r2, 0x4 - bl CopyPaletteIntoBufferUnfaded - pop {r0} - bx r0 - .pool - thumb_func_end sub_81CA850 - - thumb_func_start sub_81CA864 -sub_81CA864: @ 81CA864 - push {r4,r5,lr} - ldr r0, =sub_81CA8B0 - movs r1, 0x3 - bl CreateTask - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r5, =gUnknown_0861FC78 + 0xE - adds r0, r4, 0 - movs r1, 0x1 - adds r2, r5, 0 - bl SetWordTaskArg - subs r5, 0xC - adds r0, r4, 0 - movs r1, 0x3 - adds r2, r5, 0 - bl SetWordTaskArg - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81CA864 - - thumb_func_start sub_81CA89C -sub_81CA89C: @ 81CA89C - push {lr} - ldr r0, =sub_81CA8B0 - bl FuncIsActiveTask - lsls r0, 24 - lsrs r0, 24 - pop {r1} - bx r1 - .pool - thumb_func_end sub_81CA89C - - thumb_func_start sub_81CA8B0 -sub_81CA8B0: @ 81CA8B0 - push {r4-r6,lr} - sub sp, 0xC - lsls r0, 24 - lsrs r6, r0, 24 - lsls r4, r6, 2 - adds r4, r6 - lsls r4, 3 - ldr r0, =gTasks + 0x8 - adds r4, r0 - adds r0, r6, 0 - movs r1, 0x1 - bl GetWordTaskArg - adds r5, r0, 0 - adds r0, r6, 0 - movs r1, 0x3 - bl GetWordTaskArg - adds r1, r0, 0 - ldrh r0, [r4] - adds r0, 0x1 - strh r0, [r4] - lsls r0, 16 - asrs r0, 16 - str r0, [sp] - add r0, sp, 0x8 - str r0, [sp, 0x4] - adds r0, r5, 0 - movs r2, 0x2 - movs r3, 0xC - bl sub_81C79BC - add r0, sp, 0x8 - movs r1, 0x31 - movs r2, 0x4 - bl LoadPalette - movs r1, 0 - ldrsh r0, [r4, r1] - cmp r0, 0xC - bne _081CA908 - adds r0, r6, 0 - bl DestroyTask -_081CA908: - add sp, 0xC - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81CA8B0 - - thumb_func_start sub_81CA914 -sub_81CA914: @ 81CA914 - push {lr} - bl TransferPlttBuffer - bl LoadOam - bl ProcessSpriteCopyRequests - bl ScanlineEffect_InitHBlankDmaTransfer - pop {r0} - bx r0 - thumb_func_end sub_81CA914 - - thumb_func_start titlescreen_0 -titlescreen_0: @ 81CA92C - push {lr} - movs r0, 0x50 - movs r1, 0x90 - bl SetGpuReg - movs r0, 0x54 - movs r1, 0 - bl SetGpuReg - movs r1, 0x80 - lsls r1, 6 - movs r0, 0 - bl SetGpuRegBits - movs r0, 0x48 - movs r1, 0x3F - bl SetGpuRegBits - movs r0, 0x4A - movs r1, 0x1F - bl SetGpuRegBits - movs r0, 0x44 - movs r1, 0xA0 - bl SetGpuRegBits - bl ScanlineEffect_Stop - bl sub_81CAA3C - ldr r2, =gUnknown_08620384 - ldr r0, [r2] - ldr r1, [r2, 0x4] - ldr r2, [r2, 0x8] - bl ScanlineEffect_SetParams - ldr r0, =sub_81CA914 - bl SetVBlankCallback_ - ldr r0, =sub_81CA9EC - movs r1, 0x3 - bl CreateTask - pop {r0} - bx r0 - .pool - thumb_func_end titlescreen_0 - - thumb_func_start sub_81CA994 -sub_81CA994: @ 81CA994 - push {lr} - movs r0, 0x50 - movs r1, 0 - bl SetGpuReg - movs r1, 0x80 - lsls r1, 6 - movs r0, 0 - bl ClearGpuRegBits - bl ScanlineEffect_Stop - ldr r0, =sub_81CA9EC - bl FindTaskIdByFunc - lsls r0, 24 - lsrs r0, 24 - bl DestroyTask - bl SetPokenavVBlankCallback - pop {r0} - bx r0 - .pool - thumb_func_end sub_81CA994 - - thumb_func_start sub_81CA9C8 -sub_81CA9C8: @ 81CA9C8 - push {lr} - movs r0, 0x50 - movs r1, 0 - bl SetGpuReg - pop {r0} - bx r0 - thumb_func_end sub_81CA9C8 - - thumb_func_start sub_81CA9D8 -sub_81CA9D8: @ 81CA9D8 - push {lr} - bl sub_81CAA3C - movs r0, 0x50 - movs r1, 0x90 - bl SetGpuReg - pop {r0} - bx r0 - thumb_func_end sub_81CA9D8 - - thumb_func_start sub_81CA9EC -sub_81CA9EC: @ 81CA9EC - push {lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, =gTasks + 0x8 - adds r2, r1, r0 - ldrh r0, [r2] - adds r0, 0x1 - strh r0, [r2] - lsls r0, 16 - cmp r0, 0 - ble _081CAA30 - movs r0, 0 - strh r0, [r2] - ldrh r0, [r2, 0x2] - adds r0, 0x3 - movs r1, 0x7F - ands r0, r1 - strh r0, [r2, 0x2] - ldr r1, =gSineTable - movs r3, 0x2 - ldrsh r0, [r2, r3] - lsls r0, 1 - adds r0, r1 - ldrh r1, [r0] - lsls r1, 16 - asrs r1, 21 - lsls r1, 16 - lsrs r1, 16 - movs r0, 0x54 - bl SetGpuReg -_081CAA30: - pop {r0} - bx r0 - .pool - thumb_func_end sub_81CA9EC - - thumb_func_start sub_81CAA3C -sub_81CAA3C: @ 81CAA3C - push {r4-r6,lr} - mov r6, r9 - mov r5, r8 - push {r5,r6} - sub sp, 0x8 - bl sub_81C9894 - adds r4, r0, 0 - bl sub_81C98A4 - ldr r2, =gUnknown_08620240 - lsls r1, r4, 3 - subs r1, r4 - lsls r1, 2 - adds r1, r2 - ldrh r2, [r1, 0x2] - adds r4, r2, 0 - muls r4, r0 - ldrh r1, [r1] - adds r4, r1 - subs r4, 0x8 - mov r0, sp - movs r6, 0 - strh r6, [r0] - ldr r5, =gScanlineEffectRegBuffers - ldr r0, =0x010000a0 - mov r8, r0 - mov r0, sp - adds r1, r5, 0 - mov r2, r8 - bl CpuSet - mov r0, sp - adds r0, 0x2 - strh r6, [r0] - movs r1, 0xF0 - lsls r1, 3 - adds r1, r5 - mov r9, r1 - mov r2, r8 - bl CpuSet - add r0, sp, 0x4 - ldr r1, =0x000072f0 - adds r6, r1, 0 - strh r6, [r0] - lsls r4, 1 - adds r5, r4, r5 - ldr r1, =0x01000010 - mov r8, r1 - adds r1, r5, 0 - mov r2, r8 - bl CpuSet - mov r0, sp - adds r0, 0x6 - strh r6, [r0] - add r4, r9 - adds r1, r4, 0 - mov r2, r8 - bl CpuSet - add sp, 0x8 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81CAA3C - - thumb_func_start sub_81CAADC -sub_81CAADC: @ 81CAADC - push {lr} - bl sub_81CA9C8 - pop {r0} - bx r0 - thumb_func_end sub_81CAADC - - thumb_func_start sub_81CAAE8 -sub_81CAAE8: @ 81CAAE8 - push {r4,lr} - movs r1, 0xD4 - lsls r1, 1 - movs r0, 0x5 - bl AllocSubstruct - adds r4, r0, 0 - cmp r4, 0 - beq _081CAB1C - ldr r0, =sub_81CAB44 - str r0, [r4, 0x18] - movs r0, 0 - strh r0, [r4, 0x8] - str r0, [r4, 0x10] - ldr r0, =sub_81CAD20 - movs r1, 0x1 - bl CreateLoopedTask - str r0, [r4, 0x14] - movs r0, 0x1 - b _081CAB1E - .pool -_081CAB1C: - movs r0, 0 -_081CAB1E: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_81CAAE8 - - thumb_func_start sub_81CAB24 -sub_81CAB24: @ 81CAB24 - push {lr} - movs r0, 0x5 - bl GetSubstructPtr - ldr r1, [r0, 0x18] - bl _call_via_r1 - pop {r1} - bx r1 - thumb_func_end sub_81CAB24 - - thumb_func_start sub_81CAB38 -sub_81CAB38: @ 81CAB38 - push {lr} - movs r0, 0x5 - bl FreePokenavSubstruct - pop {r0} - bx r0 - thumb_func_end sub_81CAB38 - - thumb_func_start sub_81CAB44 -sub_81CAB44: @ 81CAB44 - push {r4,r5,lr} - adds r4, r0, 0 - ldr r3, =gMain - ldrh r1, [r3, 0x30] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _081CAB5C - movs r0, 0x2 - b _081CABF4 - .pool -_081CAB5C: - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _081CAB68 - movs r0, 0x1 - b _081CABF4 -_081CAB68: - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - beq _081CAB74 - movs r0, 0x4 - b _081CABF4 -_081CAB74: - movs r0, 0x10 - ands r0, r1 - lsls r0, 16 - lsrs r2, r0, 16 - cmp r2, 0 - beq _081CAB84 - movs r0, 0x3 - b _081CABF4 -_081CAB84: - ldrh r1, [r3, 0x2E] - movs r5, 0x1 - adds r0, r5, 0 - ands r0, r1 - cmp r0, 0 - beq _081CABD0 - ldr r0, =sub_81CAC04 - str r0, [r4, 0x18] - strh r2, [r4] - bl GetSelectedMatchCall - lsls r0, 2 - adds r1, r4, r0 - ldrb r0, [r1, 0x1C] - cmp r0, 0 - beq _081CABAE - ldrh r0, [r1, 0x1E] - bl sub_81D17E8 - cmp r0, 0 - beq _081CABC0 -_081CABAE: - ldr r0, =gUnknown_0862250A - str r0, [r4, 0x4] - movs r0, 0x2 - strh r0, [r4, 0x2] - b _081CABC6 - .pool -_081CABC0: - ldr r0, =gUnknown_08622508 - str r0, [r4, 0x4] - strh r5, [r4, 0x2] -_081CABC6: - movs r0, 0x5 - b _081CABF4 - .pool -_081CABD0: - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _081CABF2 - bl GetPokenavMode - cmp r0, 0x1 - beq _081CABEC - ldr r0, =sub_81CABFC - str r0, [r4, 0x18] - movs r0, 0xF - b _081CABF4 - .pool -_081CABEC: - movs r0, 0x20 - bl PlaySE -_081CABF2: - movs r0, 0 -_081CABF4: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_81CAB44 - - thumb_func_start sub_81CABFC -sub_81CABFC: @ 81CABFC - ldr r0, =0x000186a4 - bx lr - .pool - thumb_func_end sub_81CABFC - - thumb_func_start sub_81CAC04 -sub_81CAC04: @ 81CAC04 - push {r4,lr} - adds r4, r0, 0 - ldr r2, =gMain - ldrh r1, [r2, 0x2E] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _081CAC24 - ldrh r0, [r4] - cmp r0, 0 - beq _081CAC24 - subs r0, 0x1 - b _081CAC38 - .pool -_081CAC24: - ldrh r1, [r2, 0x2E] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _081CAC3E - ldrh r0, [r4] - ldrh r1, [r4, 0x2] - cmp r0, r1 - bcs _081CAC3E - adds r0, 0x1 -_081CAC38: - strh r0, [r4] - movs r0, 0x6 - b _081CACAC -_081CAC3E: - ldrh r1, [r2, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _081CAC98 - ldrh r1, [r4] - ldr r0, [r4, 0x4] - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0x1 - beq _081CAC8C - cmp r0, 0x1 - bgt _081CAC5E - cmp r0, 0 - beq _081CAC64 - b _081CAC98 -_081CAC5E: - cmp r0, 0x2 - bne _081CAC98 - b _081CACA6 -_081CAC64: - bl GetPokenavMode - cmp r0, 0x1 - bne _081CAC72 - movs r0, 0x2 - bl SetPokenavMode -_081CAC72: - ldr r0, =sub_81CACF8 - str r0, [r4, 0x18] - bl sub_81CB1D0 - cmp r0, 0 - beq _081CAC88 - movs r0, 0x9 - b _081CACAC - .pool -_081CAC88: - movs r0, 0x8 - b _081CACAC -_081CAC8C: - ldr r0, =sub_81CACB8 - str r0, [r4, 0x18] - movs r0, 0xB - b _081CACAC - .pool -_081CAC98: - ldrh r1, [r2, 0x2E] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - bne _081CACA6 - movs r0, 0 - b _081CACAC -_081CACA6: - ldr r0, =sub_81CAB44 - str r0, [r4, 0x18] - movs r0, 0x7 -_081CACAC: - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end sub_81CAC04 - - thumb_func_start sub_81CACB8 -sub_81CACB8: @ 81CACB8 - push {lr} - adds r3, r0, 0 - ldr r2, =gMain - ldrh r1, [r2, 0x30] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _081CACD0 - movs r0, 0xC - b _081CACF0 - .pool -_081CACD0: - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _081CACDC - movs r0, 0xD - b _081CACF0 -_081CACDC: - ldrh r1, [r2, 0x2E] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - bne _081CACEA - movs r0, 0 - b _081CACF0 -_081CACEA: - ldr r0, =sub_81CAB44 - str r0, [r3, 0x18] - movs r0, 0xE -_081CACF0: - pop {r1} - bx r1 - .pool - thumb_func_end sub_81CACB8 - - thumb_func_start sub_81CACF8 -sub_81CACF8: @ 81CACF8 - push {lr} - adds r2, r0, 0 - ldr r0, =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x3 - ands r0, r1 - cmp r0, 0 - bne _081CAD10 - movs r0, 0 - b _081CAD16 - .pool -_081CAD10: - ldr r0, =sub_81CAB44 - str r0, [r2, 0x18] - movs r0, 0xA -_081CAD16: - pop {r1} - bx r1 - .pool - thumb_func_end sub_81CACF8 - - thumb_func_start sub_81CAD20 -sub_81CAD20: @ 81CAD20 - push {r4-r7,lr} - adds r5, r0, 0 - movs r0, 0x5 - bl GetSubstructPtr - adds r4, r0, 0 - cmp r5, 0x1 - beq _081CAD4C - cmp r5, 0x1 - bgt _081CAD3A - cmp r5, 0 - beq _081CAD44 - b _081CAE00 -_081CAD3A: - cmp r5, 0x2 - beq _081CAD9C - cmp r5, 0x3 - beq _081CADFC - b _081CAE00 -_081CAD44: - strh r5, [r4, 0x8] - strh r5, [r4, 0xA] -_081CAD48: - movs r0, 0x1 - b _081CAE02 -_081CAD4C: - movs r6, 0 - ldrh r5, [r4, 0x8] -_081CAD50: - adds r0, r5, 0 - bl MatchCallFlagGetByIndex - cmp r0, 0 - beq _081CAD80 - ldrh r0, [r4, 0xA] - lsls r0, 2 - adds r0, r4, r0 - strh r5, [r0, 0x1E] - ldrh r0, [r4, 0xA] - lsls r0, 2 - adds r0, r4, r0 - movs r1, 0x1 - strb r1, [r0, 0x1C] - adds r0, r5, 0 - bl sub_81D16DC - ldrh r1, [r4, 0xA] - lsls r1, 2 - adds r1, r4, r1 - strb r0, [r1, 0x1D] - ldrh r0, [r4, 0xA] - adds r0, 0x1 - strh r0, [r4, 0xA] -_081CAD80: - ldrh r0, [r4, 0x8] - adds r1, r0, 0x1 - movs r2, 0 - strh r1, [r4, 0x8] - lsls r0, r1, 16 - lsrs r0, 16 - cmp r0, 0x14 - bhi _081CADF6 - adds r6, 0x1 - adds r5, 0x1 - cmp r6, 0x1D - ble _081CAD50 - movs r0, 0x3 - b _081CAE02 -_081CAD9C: - movs r6, 0 - ldrh r5, [r4, 0x8] - movs r7, 0 -_081CADA2: - ldrh r0, [r4, 0x8] - bl sub_81D1BF8 - cmp r0, 0 - bne _081CADDC - ldrh r0, [r4, 0x8] - bl sub_81CAE08 - cmp r0, 0 - beq _081CADDC - ldrh r0, [r4, 0xA] - lsls r0, 2 - adds r0, r4, r0 - ldrh r1, [r4, 0x8] - strh r1, [r0, 0x1E] - ldrh r0, [r4, 0xA] - lsls r0, 2 - adds r0, r4, r0 - strb r7, [r0, 0x1C] - adds r0, r5, 0 - bl sub_81CB0C8 - ldrh r1, [r4, 0xA] - lsls r1, 2 - adds r1, r4, r1 - strb r0, [r1, 0x1D] - ldrh r0, [r4, 0xA] - adds r0, 0x1 - strh r0, [r4, 0xA] -_081CADDC: - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x4D - bhi _081CAD48 - adds r6, 0x1 - adds r5, 0x1 - cmp r6, 0x1D - ble _081CADA2 - movs r0, 0x3 - b _081CAE02 -_081CADF6: - strh r1, [r4, 0xC] - strh r2, [r4, 0x8] - b _081CAD48 -_081CADFC: - movs r0, 0x1 - str r0, [r4, 0x10] -_081CAE00: - movs r0, 0x4 -_081CAE02: - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_81CAD20 - - thumb_func_start sub_81CAE08 -sub_81CAE08: @ 81CAE08 - push {lr} - cmp r0, 0x4D - ble _081CAE12 - movs r0, 0 - b _081CAE24 -_081CAE12: - movs r1, 0xAE - lsls r1, 1 - adds r0, r1 - lsls r0, 16 - lsrs r0, 16 - bl FlagGet - lsls r0, 24 - lsrs r0, 24 -_081CAE24: - pop {r1} - bx r1 - thumb_func_end sub_81CAE08 - - thumb_func_start sub_81CAE28 -sub_81CAE28: @ 81CAE28 - push {lr} - movs r0, 0x5 - bl GetSubstructPtr - ldr r0, [r0, 0x10] - pop {r1} - bx r1 - thumb_func_end sub_81CAE28 - - thumb_func_start sub_81CAE38 -sub_81CAE38: @ 81CAE38 - push {lr} - movs r0, 0x5 - bl GetSubstructPtr - ldrh r0, [r0, 0xA] - pop {r1} - bx r1 - thumb_func_end sub_81CAE38 - - thumb_func_start sub_81CAE48 -sub_81CAE48: @ 81CAE48 - push {lr} - movs r0, 0x5 - bl GetSubstructPtr - ldrh r0, [r0, 0xC] - pop {r1} - bx r1 - thumb_func_end sub_81CAE48 - - thumb_func_start sub_81CAE58 -sub_81CAE58: @ 81CAE58 - push {lr} - movs r0, 0x5 - bl GetSubstructPtr - adds r1, r0, 0 - ldrh r0, [r1, 0xA] - ldrh r1, [r1, 0xC] - subs r0, r1 - pop {r1} - bx r1 - thumb_func_end sub_81CAE58 - - thumb_func_start sub_81CAE6C -sub_81CAE6C: @ 81CAE6C - push {r4,lr} - adds r4, r0, 0 - movs r0, 0x5 - bl GetSubstructPtr - adds r1, r0, 0 - ldrh r0, [r1, 0xC] - adds r4, r0 - ldrh r0, [r1, 0xA] - cmp r4, r0 - bge _081CAE8A - lsls r0, r4, 2 - adds r0, r1, r0 - ldrh r0, [r0, 0x1E] - b _081CAE8C -_081CAE8A: - movs r0, 0x4E -_081CAE8C: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_81CAE6C - - thumb_func_start sub_81CAE94 -sub_81CAE94: @ 81CAE94 - push {lr} - movs r0, 0x5 - bl GetSubstructPtr - adds r0, 0x1C - pop {r1} - bx r1 - thumb_func_end sub_81CAE94 - - thumb_func_start sub_81CAEA4 -sub_81CAEA4: @ 81CAEA4 - push {r4,lr} - adds r4, r0, 0 - movs r0, 0x5 - bl GetSubstructPtr - lsls r4, 2 - adds r0, r4 - ldrb r0, [r0, 0x1D] - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_81CAEA4 - - thumb_func_start sub_81CAEBC -sub_81CAEBC: @ 81CAEBC - push {r4,lr} - adds r4, r0, 0 - movs r0, 0x5 - bl GetSubstructPtr - lsls r1, r4, 2 - adds r1, r0, r1 - ldrb r0, [r1, 0x1C] - cmp r0, 0 - bne _081CAED4 - ldrh r4, [r1, 0x1E] - b _081CAEDC -_081CAED4: - ldrh r0, [r1, 0x1E] - bl MatchCall_GetRematchTableIdx - adds r4, r0, 0 -_081CAEDC: - cmp r4, 0x4E - beq _081CAEFC - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldr r1, =0x000009ca - adds r0, r1 - adds r0, r4 - ldrb r1, [r0] - negs r0, r1 - orrs r0, r1 - lsrs r0, 31 - b _081CAEFE - .pool -_081CAEFC: - movs r0, 0 -_081CAEFE: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_81CAEBC - - thumb_func_start sub_81CAF04 -sub_81CAF04: @ 81CAF04 - push {r4,r5,lr} - adds r4, r0, 0 - movs r0, 0x5 - bl GetSubstructPtr - lsls r1, r4, 2 - adds r1, r0, r1 - ldrb r0, [r1, 0x1C] - cmp r0, 0 - bne _081CAF34 - ldrh r0, [r1, 0x1E] - bl GetTrainerIdxByRematchIdx - adds r4, r0, 0 - ldr r1, =gTrainers - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldrb r0, [r0, 0x3] - b _081CAF6C - .pool -_081CAF34: - ldrh r5, [r1, 0x1E] - adds r0, r5, 0 - bl MatchCall_GetRematchTableIdx - adds r4, r0, 0 - cmp r4, 0x4E - bne _081CAF58 - adds r0, r5, 0 - bl sub_81D1BD0 - adds r4, r0, 0 - ldr r0, =gFacilityClassToPicIndex - adds r0, r4, r0 - ldrb r0, [r0] - b _081CAF6C - .pool -_081CAF58: - adds r0, r4, 0 - bl GetTrainerIdxByRematchIdx - adds r4, r0, 0 - ldr r0, =gTrainers - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - ldrb r0, [r1, 0x3] -_081CAF6C: - pop {r4,r5} - pop {r1} - bx r1 - .pool - thumb_func_end sub_81CAF04 - - thumb_func_start sub_81CAF78 -sub_81CAF78: @ 81CAF78 - push {r4-r6,lr} - adds r5, r0, 0 - adds r6, r1, 0 - movs r0, 0x5 - bl GetSubstructPtr - adds r4, r0, 0 - movs r0, 0 - strb r0, [r6] - ldr r0, =gMapHeader - ldrb r0, [r0, 0x17] - bl Overworld_MapTypeAllowsTeleportAndFly - lsls r0, 24 - cmp r0, 0 - bne _081CAFA4 - ldr r0, =gText_CallCantBeMadeHere - b _081CAFCE - .pool -_081CAFA4: - lsls r0, r5, 2 - adds r1, r4, r0 - ldrb r0, [r1, 0x1C] - cmp r0, 0 - bne _081CAFC4 - ldrh r0, [r1, 0x1E] - bl GetTrainerIdxByRematchIdx - ldr r1, =gStringVar4 - bl SelectMatchCallMessage - strb r0, [r6] - b _081CAFCC - .pool -_081CAFC4: - ldrh r0, [r1, 0x1E] - ldr r1, =gStringVar4 - bl MatchCall_GetMessage -_081CAFCC: - ldr r0, =gStringVar4 -_081CAFCE: - pop {r4-r6} - pop {r1} - bx r1 - .pool - thumb_func_end sub_81CAF78 - - thumb_func_start sub_81CAFD8 -sub_81CAFD8: @ 81CAFD8 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - movs r0, 0x5 - bl GetSubstructPtr - lsls r4, 2 - adds r4, r0, r4 - ldrb r0, [r4, 0x1C] - cmp r0, 0 - beq _081CB004 - ldrh r0, [r4, 0x1E] - bl MatchCall_GetRematchTableIdx - adds r1, r0, 0 - cmp r1, 0x4E - bne _081CB006 - ldrh r0, [r4, 0x1E] - adds r1, r5, 0 - bl sub_81D1B40 - b _081CB012 -_081CB004: - ldrh r1, [r4, 0x1E] -_081CB006: - ldr r2, =gUnknown_08622028 - lsls r0, r5, 2 - lsls r1, 4 - adds r0, r1 - adds r0, r2 - ldr r0, [r0] -_081CB012: - pop {r4,r5} - pop {r1} - bx r1 - .pool - thumb_func_end sub_81CAFD8 - - thumb_func_start sub_81CB01C -sub_81CB01C: @ 81CB01C - push {lr} - movs r0, 0x5 - bl GetSubstructPtr - ldrh r0, [r0] - pop {r1} - bx r1 - thumb_func_end sub_81CB01C - - thumb_func_start sub_81CB02C -sub_81CB02C: @ 81CB02C - push {r4,lr} - adds r4, r0, 0 - movs r0, 0x5 - bl GetSubstructPtr - adds r1, r0, 0 - ldrh r0, [r1, 0x2] - cmp r0, r4 - blt _081CB046 - ldr r0, [r1, 0x4] - adds r0, r4 - ldrb r0, [r0] - b _081CB048 -_081CB046: - movs r0, 0x3 -_081CB048: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_81CB02C - - thumb_func_start sub_81CB050 -sub_81CB050: @ 81CB050 - push {r4,lr} - sub sp, 0x8 - adds r2, r0, 0 - adds r4, r1, 0 - ldrb r0, [r2] - cmp r0, 0 - bne _081CB088 - ldrh r0, [r2, 0x2] - bl GetTrainerIdxByRematchIdx - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, =gTrainers - adds r1, r0 - ldrb r2, [r1, 0x1] - movs r0, 0xD - muls r0, r2 - ldr r2, =gTrainerClassNames - adds r0, r2 - str r0, [sp] - adds r1, 0x4 - str r1, [sp, 0x4] - b _081CB092 - .pool -_081CB088: - ldrh r0, [r2, 0x2] - add r2, sp, 0x4 - mov r1, sp - bl sub_81D1A78 -_081CB092: - ldr r2, [sp] - cmp r2, 0 - beq _081CB0B4 - ldr r0, [sp, 0x4] - cmp r0, 0 - beq _081CB0B4 - adds r0, r4, 0 - movs r1, 0x7 - movs r3, 0x45 - bl sub_81DB494 - ldr r2, [sp, 0x4] - movs r1, 0x7 - movs r3, 0x33 - bl sub_81DB494 - b _081CB0C0 -_081CB0B4: - adds r0, r4, 0 - movs r1, 0x7 - movs r2, 0 - movs r3, 0x78 - bl sub_81DB494 -_081CB0C0: - add sp, 0x8 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_81CB050 - - thumb_func_start sub_81CB0C8 -sub_81CB0C8: @ 81CB0C8 - push {lr} - ldr r1, =gRematchTable - lsls r0, 4 - adds r0, r1 - ldrh r2, [r0, 0xA] - ldrh r1, [r0, 0xC] - adds r0, r2, 0 - bl Overworld_GetMapHeaderByGroupAndId - ldrb r0, [r0, 0x14] - pop {r1} - bx r1 - .pool - thumb_func_end sub_81CB0C8 - - thumb_func_start sub_81CB0E4 -sub_81CB0E4: @ 81CB0E4 - push {r4-r7,lr} - adds r5, r0, 0 - movs r0, 0x5 - bl GetSubstructPtr - adds r7, r0, 0 - movs r6, 0x1 - adds r5, 0x1 - ldrh r0, [r7, 0xA] - cmp r5, r0 - bge _081CB120 - lsls r0, r5, 2 - adds r0, 0x1C - adds r4, r0, r7 -_081CB100: - ldrb r0, [r4] - cmp r0, 0 - beq _081CB110 - ldrh r0, [r4, 0x2] - bl sub_81D17E8 - cmp r0, 0 - beq _081CB114 -_081CB110: - adds r0, r6, 0 - b _081CB122 -_081CB114: - adds r6, 0x1 - adds r4, 0x4 - adds r5, 0x1 - ldrh r0, [r7, 0xA] - cmp r5, r0 - blt _081CB100 -_081CB120: - movs r0, 0 -_081CB122: - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_81CB0E4 - - thumb_func_start sub_81CB128 -sub_81CB128: @ 81CB128 - push {r4-r6,lr} - adds r5, r0, 0 - movs r0, 0x5 - bl GetSubstructPtr - adds r1, r0, 0 - movs r6, 0x1 - negs r6, r6 - subs r5, 0x1 - cmp r5, 0 - blt _081CB162 - lsls r0, r5, 2 - adds r0, 0x1C - adds r4, r0, r1 -_081CB144: - ldrb r0, [r4] - cmp r0, 0 - beq _081CB154 - ldrh r0, [r4, 0x2] - bl sub_81D17E8 - cmp r0, 0 - beq _081CB158 -_081CB154: - adds r0, r6, 0 - b _081CB164 -_081CB158: - subs r6, 0x1 - subs r4, 0x4 - subs r5, 0x1 - cmp r5, 0 - bge _081CB144 -_081CB162: - movs r0, 0 -_081CB164: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_81CB128 - - thumb_func_start sub_81CB16C -sub_81CB16C: @ 81CB16C - push {r4,lr} - movs r4, 0 -_081CB170: - adds r0, r4, 0 - bl sub_81CAE08 - cmp r0, 0 - beq _081CB18A - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldr r1, =0x000009ca - adds r0, r1 - adds r0, r4 - ldrb r0, [r0] - cmp r0, 0 - bne _081CB1B2 -_081CB18A: - adds r4, 0x1 - cmp r4, 0x4D - ble _081CB170 - movs r4, 0 -_081CB192: - adds r0, r4, 0 - bl MatchCallFlagGetByIndex - cmp r0, 0 - beq _081CB1C0 - adds r0, r4, 0 - bl MatchCall_GetRematchTableIdx - ldr r1, =gSaveBlock1Ptr - ldr r1, [r1] - ldr r2, =0x000009ca - adds r1, r2 - adds r1, r0 - ldrb r0, [r1] - cmp r0, 0 - beq _081CB1C0 -_081CB1B2: - movs r0, 0x1 - b _081CB1C8 - .pool -_081CB1C0: - adds r4, 0x1 - cmp r4, 0x14 - ble _081CB192 - movs r0, 0 -_081CB1C8: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_81CB16C - - thumb_func_start sub_81CB1D0 -sub_81CB1D0: @ 81CB1D0 - push {r4,lr} - movs r0, 0x5 - bl GetSubstructPtr - adds r4, r0, 0 - bl GetSelectedMatchCall - adds r1, r0, 0 - lsls r0, r1, 2 - adds r4, r0 - ldrb r0, [r4, 0x1C] - cmp r0, 0 - bne _081CB218 - adds r0, r1, 0 - bl sub_81CAEA4 - ldr r1, =gMapHeader - lsls r0, 16 - lsrs r0, 16 - ldrb r1, [r1, 0x14] - cmp r0, r1 - bne _081CB258 - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldr r1, =0x000009ca - adds r0, r1 - ldrh r4, [r4, 0x1E] - adds r0, r4 - ldrb r0, [r0] - b _081CB246 - .pool -_081CB218: - ldrh r0, [r4, 0x1E] - cmp r0, 0xB - bne _081CB258 - adds r0, r1, 0 - bl sub_81CAEA4 - ldr r1, =gMapHeader - lsls r0, 16 - lsrs r0, 16 - ldrb r1, [r1, 0x14] - cmp r0, r1 - bne _081CB258 - ldr r0, =0x0000086b - bl FlagGet - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _081CB258 - movs r0, 0x5B - bl FlagGet - lsls r0, 24 -_081CB246: - cmp r0, 0 - bne _081CB258 - movs r0, 0x1 - b _081CB25A - .pool -_081CB258: - movs r0, 0 -_081CB25A: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_81CB1D0 - - thumb_func_start sub_81CB260 -sub_81CB260: @ 81CB260 - push {r4,lr} - ldr r1, =0x00002048 - movs r0, 0x6 - bl AllocSubstruct - adds r4, r0, 0 - cmp r4, 0 - beq _081CB294 - movs r0, 0 - strb r0, [r4, 0x19] - ldr r0, =sub_81CB324 - movs r1, 0x1 - bl CreateLoopedTask - str r0, [r4, 0x4] - ldr r0, =sub_81CB310 - str r0, [r4] - movs r0, 0x1 - b _081CB296 - .pool -_081CB294: - movs r0, 0 -_081CB296: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_81CB260 - - thumb_func_start sub_81CB29C -sub_81CB29C: @ 81CB29C - push {r4,r5,lr} - adds r4, r0, 0 - movs r0, 0x6 - bl GetSubstructPtr - adds r5, r0, 0 - ldr r0, =gUnknown_08622798 - lsls r4, 2 - adds r4, r0 - ldr r0, [r4] - movs r1, 0x1 - bl CreateLoopedTask - str r0, [r5, 0x4] - ldr r0, =sub_81CB310 - str r0, [r5] - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81CB29C - - thumb_func_start sub_81CB2CC -sub_81CB2CC: @ 81CB2CC - push {lr} - movs r0, 0x6 - bl GetSubstructPtr - ldr r0, [r0] - bl _call_via_r0 - pop {r1} - bx r1 - thumb_func_end sub_81CB2CC - - thumb_func_start sub_81CB2E0 -sub_81CB2E0: @ 81CB2E0 - push {r4,lr} - movs r0, 0x6 - bl GetSubstructPtr - adds r4, r0, 0 - bl sub_81CC2B4 - bl sub_81CBC1C - ldrb r0, [r4, 0x12] - bl RemoveWindow - ldrb r0, [r4, 0x10] - bl RemoveWindow - ldrb r0, [r4, 0x14] - bl RemoveWindow - movs r0, 0x6 - bl FreePokenavSubstruct - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_81CB2E0 - - thumb_func_start sub_81CB310 -sub_81CB310: @ 81CB310 - push {lr} - movs r0, 0x6 - bl GetSubstructPtr - ldr r0, [r0, 0x4] - bl IsLoopedTaskActive - pop {r1} - bx r1 - thumb_func_end sub_81CB310 - - thumb_func_start sub_81CB324 -sub_81CB324: @ 81CB324 - push {r4,r5,lr} - sub sp, 0x8 - adds r4, r0, 0 - movs r0, 0x6 - bl GetSubstructPtr - adds r5, r0, 0 - cmp r4, 0x7 - bls _081CB338 - b _081CB504 -_081CB338: - lsls r0, r4, 2 - ldr r1, =_081CB348 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_081CB348: - .4byte _081CB368 - .4byte _081CB3D4 - .4byte _081CB424 - .4byte _081CB468 - .4byte _081CB482 - .4byte _081CB494 - .4byte _081CB4A6 - .4byte _081CB4EA -_081CB368: - ldr r0, =gUnknown_0862278C - movs r1, 0x3 - bl InitBgTemplates - movs r0, 0x2 - movs r1, 0 - movs r2, 0 - bl ChangeBgX - movs r0, 0x2 - movs r1, 0 - movs r2, 0 - bl ChangeBgY - ldr r1, =gUnknown_08622530 - movs r0, 0 - str r0, [sp] - movs r0, 0x2 - movs r2, 0 - movs r3, 0 - bl decompress_and_copy_tile_data_to_vram - ldr r0, =0x00001024 - adds r1, r5, r0 - movs r0, 0x2 - bl SetBgTilemapBuffer - ldr r1, =gUnknown_086225D4 - movs r0, 0x2 - movs r2, 0 - movs r3, 0 - bl CopyToBgTilemapBuffer - movs r0, 0x2 - bl CopyBgTilemapBufferToVram - ldr r0, =gUnknown_08622510 - movs r1, 0x20 - movs r2, 0x20 - bl CopyPaletteIntoBufferUnfaded - movs r0, 0x2 - b _081CB418 - .pool -_081CB3D4: - bl free_temp_tile_data_buffers_if_possible - lsls r0, 24 - cmp r0, 0 - beq _081CB3E0 - b _081CB4FA -_081CB3E0: - movs r0, 0x1 - movs r1, 0 - movs r2, 0 - movs r3, 0x1 - bl sub_8199DF0 - adds r1, r5, 0 - adds r1, 0x24 - movs r0, 0x1 - bl SetBgTilemapBuffer - movs r1, 0x80 - lsls r1, 5 - movs r0, 0x20 - str r0, [sp] - movs r0, 0x14 - str r0, [sp, 0x4] - movs r0, 0x1 - movs r2, 0 - movs r3, 0 - bl FillBgTilemapBufferRect_Palette0 - ldr r0, =gUnknown_086226E0 - movs r1, 0x10 - movs r2, 0x20 - bl CopyPaletteIntoBufferUnfaded - movs r0, 0x1 -_081CB418: - bl CopyBgTilemapBufferToVram - movs r0, 0 - b _081CB506 - .pool -_081CB424: - bl free_temp_tile_data_buffers_if_possible - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0 - bne _081CB4FA - adds r0, r5, 0 - bl sub_81CC034 - ldr r1, =gUnknown_08622760 - str r4, [sp] - movs r0, 0x3 - movs r2, 0 - movs r3, 0 - bl decompress_and_copy_tile_data_to_vram - ldr r0, =gUnknown_08622700 - movs r1, 0x30 - movs r2, 0x20 - bl CopyPaletteIntoBufferUnfaded - ldr r0, =gUnknown_08622720 - movs r1, 0x50 - movs r2, 0x20 - bl CopyPaletteIntoBufferUnfaded - movs r0, 0 - b _081CB506 - .pool -_081CB468: - bl free_temp_tile_data_buffers_if_possible - lsls r0, 24 - cmp r0, 0 - bne _081CB4FA - bl sub_81CAE28 - cmp r0, 0 - beq _081CB4FA - bl sub_81CBBB8 - movs r0, 0 - b _081CB506 -_081CB482: - bl sub_81C8224 - cmp r0, 0 - bne _081CB4FA - adds r0, r5, 0 - bl sub_81CBD78 - movs r0, 0 - b _081CB506 -_081CB494: - adds r0, r5, 0 - bl sub_81CBDC0 - adds r0, r5, 0 - movs r1, 0 - bl sub_81CBEF8 - movs r0, 0 - b _081CB506 -_081CB4A6: - movs r0, 0x1 - movs r1, 0 - movs r2, 0 - bl ChangeBgX - movs r0, 0x1 - movs r1, 0 - movs r2, 0 - bl ChangeBgY - movs r0, 0x2 - bl ShowBg - movs r0, 0x3 - bl ShowBg - movs r0, 0x1 - bl ShowBg - bl sub_81CC214 - movs r0, 0x3 - bl LoadLeftHeaderGfxForIndex - movs r0, 0x3 - movs r1, 0x1 - movs r2, 0 - bl sub_81C7FA0 - movs r0, 0x1 - bl sub_81C7AC0 - movs r0, 0 - b _081CB506 -_081CB4EA: - bl IsPaletteFadeActive - cmp r0, 0 - bne _081CB4FA - bl sub_81C8010 - cmp r0, 0 - beq _081CB4FE -_081CB4FA: - movs r0, 0x2 - b _081CB506 -_081CB4FE: - movs r0, 0x1 - bl sub_81CBC38 -_081CB504: - movs r0, 0x4 -_081CB506: - add sp, 0x8 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_81CB324 - - thumb_func_start sub_81CB510 -sub_81CB510: @ 81CB510 - push {r4,r5,lr} - adds r4, r0, 0 - movs r0, 0x6 - bl GetSubstructPtr - adds r5, r0, 0 - cmp r4, 0x1 - beq _081CB55E - cmp r4, 0x1 - bgt _081CB52A - cmp r4, 0 - beq _081CB534 - b _081CB580 -_081CB52A: - cmp r4, 0x2 - beq _081CB566 - cmp r4, 0x3 - beq _081CB572 - b _081CB580 -_081CB534: - bl MatchCall_MoveCursorDown - cmp r0, 0x1 - beq _081CB54C - cmp r0, 0x1 - bgt _081CB546 - cmp r0, 0 - beq _081CB580 - b _081CB56E -_081CB546: - cmp r0, 0x2 - beq _081CB556 - b _081CB56E -_081CB54C: - movs r0, 0x5 - bl PlaySE - movs r0, 0x7 - b _081CB582 -_081CB556: - movs r0, 0x5 - bl PlaySE - b _081CB56E -_081CB55E: - bl sub_81C8630 - cmp r0, 0 - bne _081CB57C -_081CB566: - adds r0, r5, 0 - movs r1, 0 - bl sub_81CBEF8 -_081CB56E: - movs r0, 0 - b _081CB582 -_081CB572: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, 24 - cmp r0, 0 - beq _081CB580 -_081CB57C: - movs r0, 0x2 - b _081CB582 -_081CB580: - movs r0, 0x4 -_081CB582: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_81CB510 - - thumb_func_start sub_81CB588 -sub_81CB588: @ 81CB588 - push {r4,r5,lr} - adds r4, r0, 0 - movs r0, 0x6 - bl GetSubstructPtr - adds r5, r0, 0 - cmp r4, 0x1 - beq _081CB5D6 - cmp r4, 0x1 - bgt _081CB5A2 - cmp r4, 0 - beq _081CB5AC - b _081CB5F8 -_081CB5A2: - cmp r4, 0x2 - beq _081CB5DE - cmp r4, 0x3 - beq _081CB5EA - b _081CB5F8 -_081CB5AC: - bl MatchCall_MoveCursorUp - cmp r0, 0x1 - beq _081CB5C4 - cmp r0, 0x1 - bgt _081CB5BE - cmp r0, 0 - beq _081CB5F8 - b _081CB5E6 -_081CB5BE: - cmp r0, 0x2 - beq _081CB5CE - b _081CB5E6 -_081CB5C4: - movs r0, 0x5 - bl PlaySE - movs r0, 0x7 - b _081CB5FA -_081CB5CE: - movs r0, 0x5 - bl PlaySE - b _081CB5E6 -_081CB5D6: - bl sub_81C8630 - cmp r0, 0 - bne _081CB5F4 -_081CB5DE: - adds r0, r5, 0 - movs r1, 0 - bl sub_81CBEF8 -_081CB5E6: - movs r0, 0 - b _081CB5FA -_081CB5EA: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, 24 - cmp r0, 0 - beq _081CB5F8 -_081CB5F4: - movs r0, 0x2 - b _081CB5FA -_081CB5F8: - movs r0, 0x4 -_081CB5FA: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_81CB588 - - thumb_func_start sub_81CB600 -sub_81CB600: @ 81CB600 - push {r4,r5,lr} - adds r4, r0, 0 - movs r0, 0x6 - bl GetSubstructPtr - adds r5, r0, 0 - cmp r4, 0x1 - beq _081CB64E - cmp r4, 0x1 - bgt _081CB61A - cmp r4, 0 - beq _081CB624 - b _081CB670 -_081CB61A: - cmp r4, 0x2 - beq _081CB656 - cmp r4, 0x3 - beq _081CB662 - b _081CB670 -_081CB624: - bl MatchCall_PageDown - cmp r0, 0x1 - beq _081CB63C - cmp r0, 0x1 - bgt _081CB636 - cmp r0, 0 - beq _081CB670 - b _081CB65E -_081CB636: - cmp r0, 0x2 - beq _081CB646 - b _081CB65E -_081CB63C: - movs r0, 0x5 - bl PlaySE - movs r0, 0x7 - b _081CB672 -_081CB646: - movs r0, 0x5 - bl PlaySE - b _081CB65E -_081CB64E: - bl sub_81C8630 - cmp r0, 0 - bne _081CB66C -_081CB656: - adds r0, r5, 0 - movs r1, 0 - bl sub_81CBEF8 -_081CB65E: - movs r0, 0 - b _081CB672 -_081CB662: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, 24 - cmp r0, 0 - beq _081CB670 -_081CB66C: - movs r0, 0x2 - b _081CB672 -_081CB670: - movs r0, 0x4 -_081CB672: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_81CB600 - - thumb_func_start sub_81CB678 -sub_81CB678: @ 81CB678 - push {r4,r5,lr} - adds r4, r0, 0 - movs r0, 0x6 - bl GetSubstructPtr - adds r5, r0, 0 - cmp r4, 0x1 - beq _081CB6C6 - cmp r4, 0x1 - bgt _081CB692 - cmp r4, 0 - beq _081CB69C - b _081CB6E8 -_081CB692: - cmp r4, 0x2 - beq _081CB6CE - cmp r4, 0x3 - beq _081CB6DA - b _081CB6E8 -_081CB69C: - bl MatchCall_PageUp - cmp r0, 0x1 - beq _081CB6B4 - cmp r0, 0x1 - bgt _081CB6AE - cmp r0, 0 - beq _081CB6E8 - b _081CB6D6 -_081CB6AE: - cmp r0, 0x2 - beq _081CB6BE - b _081CB6D6 -_081CB6B4: - movs r0, 0x5 - bl PlaySE - movs r0, 0x7 - b _081CB6EA -_081CB6BE: - movs r0, 0x5 - bl PlaySE - b _081CB6D6 -_081CB6C6: - bl sub_81C8630 - cmp r0, 0 - bne _081CB6E4 -_081CB6CE: - adds r0, r5, 0 - movs r1, 0 - bl sub_81CBEF8 -_081CB6D6: - movs r0, 0 - b _081CB6EA -_081CB6DA: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, 24 - cmp r0, 0 - beq _081CB6E8 -_081CB6E4: - movs r0, 0x2 - b _081CB6EA -_081CB6E8: - movs r0, 0x4 -_081CB6EA: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_81CB678 - - thumb_func_start sub_81CB6F0 -sub_81CB6F0: @ 81CB6F0 - push {r4,r5,lr} - adds r4, r0, 0 - movs r0, 0x6 - bl GetSubstructPtr - adds r5, r0, 0 - cmp r4, 0 - beq _081CB706 - cmp r4, 0x1 - beq _081CB71C - b _081CB72A -_081CB706: - movs r0, 0x5 - bl PlaySE - adds r0, r5, 0 - bl sub_81CBF60 - movs r0, 0x7 - bl sub_81C7BA4 - movs r0, 0 - b _081CB72C -_081CB71C: - adds r0, r5, 0 - bl sub_81CBFC4 - cmp r0, 0 - beq _081CB72A - movs r0, 0x2 - b _081CB72C -_081CB72A: - movs r0, 0x4 -_081CB72C: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_81CB6F0 - - thumb_func_start sub_81CB734 -sub_81CB734: @ 81CB734 - push {r4,lr} - movs r0, 0x5 - bl PlaySE - movs r0, 0x6 - bl GetSubstructPtr - adds r4, r0, 0 - bl sub_81CB01C - adds r1, r0, 0 - lsls r1, 16 - lsrs r1, 16 - adds r0, r4, 0 - bl sub_81CC344 - movs r0, 0x4 - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_81CB734 - - thumb_func_start sub_81CB75C -sub_81CB75C: @ 81CB75C - push {r4,r5,lr} - adds r4, r0, 0 - movs r0, 0x6 - bl GetSubstructPtr - adds r5, r0, 0 - cmp r4, 0 - beq _081CB772 - cmp r4, 0x1 - beq _081CB788 - b _081CB796 -_081CB772: - movs r0, 0x5 - bl PlaySE - adds r0, r5, 0 - bl sub_81CBFF0 - movs r0, 0x6 - bl sub_81C7BA4 - movs r0, 0 - b _081CB798 -_081CB788: - adds r0, r5, 0 - bl sub_81CC004 - cmp r0, 0 - beq _081CB796 - movs r0, 0x2 - b _081CB798 -_081CB796: - movs r0, 0x4 -_081CB798: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_81CB75C - - thumb_func_start sub_81CB7A0 -sub_81CB7A0: @ 81CB7A0 - push {r4,r5,lr} - adds r4, r0, 0 - movs r0, 0x6 - bl GetSubstructPtr - adds r5, r0, 0 - cmp r4, 0x1 - beq _081CB7D4 - cmp r4, 0x1 - bgt _081CB7BA - cmp r4, 0 - beq _081CB7C4 - b _081CB81A -_081CB7BA: - cmp r4, 0x2 - beq _081CB7F8 - cmp r4, 0x3 - beq _081CB80C - b _081CB81A -_081CB7C4: - movs r0, 0x1 - bl ToggleMatchCallVerticalArrows - adds r0, r5, 0 - bl sub_81CC058 - movs r0, 0 - b _081CB81C -_081CB7D4: - adds r0, r5, 0 - bl sub_81CC0D0 - adds r4, r0, 0 - cmp r4, 0 - bne _081CB816 - adds r0, r5, 0 - bl sub_81CC0E0 - ldr r0, =0x00000107 - bl PlaySE - strb r4, [r5, 0xE] - movs r0, 0 - b _081CB81C - .pool -_081CB7F8: - adds r0, r5, 0 - bl sub_81CC104 - cmp r0, 0 - bne _081CB816 - adds r0, r5, 0 - bl sub_81CC158 - movs r0, 0 - b _081CB81C -_081CB80C: - adds r0, r5, 0 - bl sub_81CC194 - cmp r0, 0 - beq _081CB81A -_081CB816: - movs r0, 0x2 - b _081CB81C -_081CB81A: - movs r0, 0x4 -_081CB81C: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_81CB7A0 - - thumb_func_start sub_81CB824 -sub_81CB824: @ 81CB824 - push {r4,r5,lr} - adds r4, r0, 0 - movs r0, 0x6 - bl GetSubstructPtr - adds r5, r0, 0 - cmp r4, 0x1 - beq _081CB85E - cmp r4, 0x1 - bgt _081CB83E - cmp r4, 0 - beq _081CB844 - b _081CB880 -_081CB83E: - cmp r4, 0x2 - beq _081CB872 - b _081CB880 -_081CB844: - movs r0, 0x5 - bl PlaySE - adds r0, r5, 0 - bl sub_81CC09C - movs r0, 0x1 - bl ToggleMatchCallVerticalArrows - movs r0, 0x1 - strb r0, [r5, 0xE] - movs r0, 0 - b _081CB882 -_081CB85E: - adds r0, r5, 0 - bl sub_81CC0D0 - cmp r0, 0 - bne _081CB87C - adds r0, r5, 0 - bl sub_81CC11C - movs r0, 0 - b _081CB882 -_081CB872: - adds r0, r5, 0 - bl sub_81CC140 - cmp r0, 0 - beq _081CB880 -_081CB87C: - movs r0, 0x2 - b _081CB882 -_081CB880: - movs r0, 0x4 -_081CB882: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_81CB824 - - thumb_func_start sub_81CB888 -sub_81CB888: @ 81CB888 - push {r4-r6,lr} - adds r5, r0, 0 - movs r0, 0x6 - bl GetSubstructPtr - adds r4, r0, 0 - movs r6, 0 - cmp r5, 0x6 - bhi _081CB934 - lsls r0, r5, 2 - ldr r1, =_081CB8A8 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_081CB8A8: - .4byte _081CB8C4 - .4byte _081CB8DA - .4byte _081CB8E2 - .4byte _081CB8F0 - .4byte _081CB8F8 - .4byte _081CB90C - .4byte _081CB922 -_081CB8C4: - ldrb r0, [r4, 0xE] - cmp r0, 0 - bne _081CB8D2 - movs r0, 0x84 - lsls r0, 1 - bl PlaySE -_081CB8D2: - movs r0, 0x5 - bl PlaySE - b _081CB934 -_081CB8DA: - adds r0, r4, 0 - bl sub_81CC1DC - b _081CB934 -_081CB8E2: - adds r0, r4, 0 - bl sub_81CC204 - cmp r0, 0 - beq _081CB934 -_081CB8EC: - movs r6, 0x2 - b _081CB934 -_081CB8F0: - adds r0, r4, 0 - bl sub_81CBFF0 - b _081CB934 -_081CB8F8: - adds r0, r4, 0 - bl sub_81CC004 - cmp r0, 0 - beq _081CB904 - movs r6, 0x2 -_081CB904: - movs r0, 0x6 - bl sub_81C7BA4 - b _081CB934 -_081CB90C: - bl IsDma3ManagerBusyWithBgCopy_ - cmp r0, 0 - bne _081CB8EC - ldrb r0, [r4, 0xF] - cmp r0, 0 - beq _081CB92C - bl sub_81C8838 - movs r6, 0x1 - b _081CB934 -_081CB922: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, 24 - cmp r0, 0 - bne _081CB8EC -_081CB92C: - movs r0, 0 - bl ToggleMatchCallVerticalArrows - movs r6, 0x4 -_081CB934: - adds r0, r6, 0 - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_81CB888 - - thumb_func_start sub_81CB93C -sub_81CB93C: @ 81CB93C - push {r4,r5,lr} - adds r4, r0, 0 - movs r0, 0x6 - bl GetSubstructPtr - adds r5, r0, 0 - cmp r4, 0x1 - beq _081CB974 - cmp r4, 0x1 - bgt _081CB956 - cmp r4, 0 - beq _081CB960 - b _081CB9BE -_081CB956: - cmp r4, 0x2 - beq _081CB990 - cmp r4, 0x3 - beq _081CB9A0 - b _081CB9BE -_081CB960: - movs r0, 0x5 - bl PlaySE - bl sub_81C877C - adds r0, r5, 0 - bl sub_81CC014 - movs r0, 0 - b _081CB9C0 -_081CB974: - bl sub_81C8820 - cmp r0, 0 - bne _081CB9BA - adds r0, r5, 0 - bl sub_81CC004 - cmp r0, 0 - bne _081CB9BA - movs r0, 0x8 - bl sub_81C7BA4 - movs r0, 0 - b _081CB9C0 -_081CB990: - movs r0, 0 - bl sub_81C87AC - adds r0, r5, 0 - bl sub_81CC39C - movs r0, 0 - b _081CB9C0 -_081CB9A0: - bl sub_81C8820 - cmp r0, 0 - bne _081CB9BA - adds r0, r5, 0 - bl sub_81CC42C - cmp r0, 0 - bne _081CB9BA - bl IsDma3ManagerBusyWithBgCopy_ - cmp r0, 0 - beq _081CB9BE -_081CB9BA: - movs r0, 0x2 - b _081CB9C0 -_081CB9BE: - movs r0, 0x4 -_081CB9C0: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_81CB93C - - thumb_func_start sub_81CB9C8 -sub_81CB9C8: @ 81CB9C8 - push {r4,r5,lr} - adds r5, r0, 0 - movs r0, 0x6 - bl GetSubstructPtr - adds r4, r0, 0 - cmp r5, 0x4 - bhi _081CBA60 - lsls r0, r5, 2 - ldr r1, =_081CB9E8 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_081CB9E8: - .4byte _081CB9FC - .4byte _081CBA1C - .4byte _081CBA34 - .4byte _081CBA40 - .4byte _081CBA4A -_081CB9FC: - bl GetMatchCallListTopIndex - bl sub_81CB0E4 - adds r5, r0, 0 - cmp r5, 0 - beq _081CBA60 - movs r0, 0x5 - bl PlaySE - strh r5, [r4, 0x16] - adds r0, r4, 0 - bl sub_81CC420 - movs r0, 0 - b _081CBA62 -_081CBA1C: - adds r0, r4, 0 - bl sub_81CC42C - cmp r0, 0 - bne _081CBA5C - movs r0, 0x16 - ldrsh r1, [r4, r0] - adds r0, r4, 0 - bl sub_81CBEF8 - movs r0, 0 - b _081CBA62 -_081CBA34: - movs r1, 0x16 - ldrsh r0, [r4, r1] - bl sub_81C87AC - movs r0, 0 - b _081CBA62 -_081CBA40: - adds r0, r4, 0 - bl sub_81CC39C - movs r0, 0 - b _081CBA62 -_081CBA4A: - bl sub_81C8820 - cmp r0, 0 - bne _081CBA5C - adds r0, r4, 0 - bl sub_81CC42C - cmp r0, 0 - beq _081CBA60 -_081CBA5C: - movs r0, 0x2 - b _081CBA62 -_081CBA60: - movs r0, 0x4 -_081CBA62: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_81CB9C8 - - thumb_func_start sub_81CBA68 -sub_81CBA68: @ 81CBA68 - push {r4,r5,lr} - adds r4, r0, 0 - movs r0, 0x6 - bl GetSubstructPtr - adds r5, r0, 0 - cmp r4, 0x1 - beq _081CBA9C - cmp r4, 0x1 - bgt _081CBA82 - cmp r4, 0 - beq _081CBA88 - b _081CBACC -_081CBA82: - cmp r4, 0x2 - beq _081CBABE - b _081CBACC -_081CBA88: - movs r0, 0x5 - bl PlaySE - adds r0, r5, 0 - bl sub_81CC420 - bl sub_81C87F0 - movs r0, 0 - b _081CBACE -_081CBA9C: - bl sub_81C8820 - cmp r0, 0 - bne _081CBAC8 - adds r0, r5, 0 - bl sub_81CC42C - cmp r0, 0 - bne _081CBAC8 - movs r0, 0x6 - bl sub_81C7BA4 - adds r0, r5, 0 - bl sub_81CBDC0 - movs r0, 0 - b _081CBACE -_081CBABE: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, 24 - cmp r0, 0 - beq _081CBACC -_081CBAC8: - movs r0, 0x2 - b _081CBACE -_081CBACC: - movs r0, 0x4 -_081CBACE: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_81CBA68 - - thumb_func_start sub_81CBAD4 -sub_81CBAD4: @ 81CBAD4 - push {r4,r5,lr} - adds r5, r0, 0 - movs r0, 0x6 - bl GetSubstructPtr - adds r4, r0, 0 - cmp r5, 0x4 - bhi _081CBB6C - lsls r0, r5, 2 - ldr r1, =_081CBAF4 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_081CBAF4: - .4byte _081CBB08 - .4byte _081CBB28 - .4byte _081CBB40 - .4byte _081CBB4C - .4byte _081CBB56 -_081CBB08: - bl GetMatchCallListTopIndex - bl sub_81CB128 - adds r5, r0, 0 - cmp r5, 0 - beq _081CBB6C - movs r0, 0x5 - bl PlaySE - strh r5, [r4, 0x16] - adds r0, r4, 0 - bl sub_81CC420 - movs r0, 0 - b _081CBB6E -_081CBB28: - adds r0, r4, 0 - bl sub_81CC42C - cmp r0, 0 - bne _081CBB68 - movs r0, 0x16 - ldrsh r1, [r4, r0] - adds r0, r4, 0 - bl sub_81CBEF8 - movs r0, 0 - b _081CBB6E -_081CBB40: - movs r1, 0x16 - ldrsh r0, [r4, r1] - bl sub_81C87AC - movs r0, 0 - b _081CBB6E -_081CBB4C: - adds r0, r4, 0 - bl sub_81CC39C - movs r0, 0 - b _081CBB6E -_081CBB56: - bl sub_81C8820 - cmp r0, 0 - bne _081CBB68 - adds r0, r4, 0 - bl sub_81CC42C - cmp r0, 0 - beq _081CBB6C -_081CBB68: - movs r0, 0x2 - b _081CBB6E -_081CBB6C: - movs r0, 0x4 -_081CBB6E: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_81CBAD4 - - thumb_func_start sub_81CBB74 -sub_81CBB74: @ 81CBB74 - push {lr} - cmp r0, 0 - beq _081CBB80 - cmp r0, 0x1 - beq _081CBB9A - b _081CBBB2 -_081CBB80: - movs r0, 0x5 - bl PlaySE - movs r0, 0 - bl sub_81CBC38 - movs r0, 0 - bl sub_81C7AC0 - bl sub_81C78A0 - movs r0, 0 - b _081CBBB4 -_081CBB9A: - bl IsPaletteFadeActive - cmp r0, 0 - bne _081CBBAA - bl MainMenuLoopedTaskIsBusy - cmp r0, 0 - beq _081CBBAE -_081CBBAA: - movs r0, 0x2 - b _081CBBB4 -_081CBBAE: - bl sub_81C7FDC -_081CBBB2: - movs r0, 0x4 -_081CBBB4: - pop {r1} - bx r1 - thumb_func_end sub_81CBB74 - - thumb_func_start sub_81CBBB8 -sub_81CBBB8: @ 81CBBB8 - push {lr} - sub sp, 0x18 - bl sub_81CAE94 - str r0, [sp] - bl sub_81CAE38 - mov r1, sp - movs r2, 0 - strh r0, [r1, 0x4] - movs r0, 0x4 - strb r0, [r1, 0x8] - mov r0, sp - strh r2, [r0, 0x6] - movs r0, 0xD - strb r0, [r1, 0x9] - movs r0, 0x10 - strb r0, [r1, 0xA] - movs r0, 0x1 - strb r0, [r1, 0xB] - movs r0, 0x8 - strb r0, [r1, 0xC] - movs r0, 0x3 - strb r0, [r1, 0xD] - movs r0, 0x7 - strb r0, [r1, 0xE] - ldr r0, =sub_81CB050 - str r0, [sp, 0x10] - ldr r0, =sub_81CBCEC - str r0, [sp, 0x14] - ldr r0, =gUnknown_08622794 - movs r2, 0x2 - bl sub_81C81D4 - ldr r0, =sub_81CBC64 - movs r1, 0x7 - bl CreateTask - add sp, 0x18 - pop {r0} - bx r0 - .pool - thumb_func_end sub_81CBBB8 - - thumb_func_start sub_81CBC1C -sub_81CBC1C: @ 81CBC1C - push {lr} - bl sub_81C8234 - ldr r0, =sub_81CBC64 - bl FindTaskIdByFunc - lsls r0, 24 - lsrs r0, 24 - bl DestroyTask - pop {r0} - bx r0 - .pool - thumb_func_end sub_81CBC1C - - thumb_func_start sub_81CBC38 -sub_81CBC38: @ 81CBC38 - push {r4,lr} - adds r4, r0, 0 - ldr r0, =sub_81CBC64 - bl FindTaskIdByFunc - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0xFF - beq _081CBC56 - ldr r1, =gTasks - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - adds r0, r1 - strh r4, [r0, 0x26] -_081CBC56: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81CBC38 - - thumb_func_start sub_81CBC64 -sub_81CBC64: @ 81CBC64 - push {r4,lr} - sub sp, 0x8 - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, =gTasks + 0x8 - adds r2, r1, r0 - movs r1, 0x1E - ldrsh r0, [r2, r1] - cmp r0, 0 - beq _081CBCC8 - ldrh r0, [r2] - adds r0, 0x4 - movs r1, 0x7F - ands r0, r1 - strh r0, [r2] - ldr r1, =gSineTable - movs r3, 0 - ldrsh r0, [r2, r3] - lsls r0, 1 - adds r0, r1 - ldrh r0, [r0] - lsls r0, 16 - asrs r0, 20 - strh r0, [r2, 0x2] - ldr r0, =gUnknown_08622720 - adds r1, r0, 0 - adds r1, 0x20 - movs r3, 0x2 - ldrsh r2, [r2, r3] - str r2, [sp] - ldr r4, =gPlttBufferUnfaded + 0xA0 - str r4, [sp, 0x4] - movs r2, 0x10 - movs r3, 0x10 - bl sub_81C79BC - ldr r0, =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _081CBCC8 - ldr r1, =gPlttBufferFaded + 0xA0 - ldr r2, =0x04000008 - adds r0, r4, 0 - bl CpuSet -_081CBCC8: - add sp, 0x8 - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81CBC64 - - thumb_func_start sub_81CBCEC -sub_81CBCEC: @ 81CBCEC - push {r4-r6,lr} - adds r5, r1, 0 - adds r4, r2, 0 - lsls r0, 24 - lsrs r0, 24 - movs r1, 0 - bl GetWindowAttribute - lsls r0, 24 - lsrs r0, 24 - bl GetBgTilemapBuffer - adds r6, r0, 0 - lsls r4, 7 - adds r4, 0x3A - adds r6, r4 - adds r0, r5, 0 - bl sub_81CAEBC - cmp r0, 0 - beq _081CBD30 - movs r1, 0xA0 - lsls r1, 7 - adds r0, r1, 0 - strh r0, [r6] - adds r1, r6, 0 - adds r1, 0x40 - ldr r2, =0x00005001 - adds r0, r2, 0 - strh r0, [r1] - b _081CBD3C - .pool -_081CBD30: - ldr r0, =0x00005002 - adds r1, r0, 0 - strh r1, [r6] - adds r0, r6, 0 - adds r0, 0x40 - strh r1, [r0] -_081CBD3C: - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81CBCEC - - thumb_func_start sub_81CBD48 -sub_81CBD48: @ 81CBD48 - push {r4,lr} - adds r4, r1, 0 - lsls r0, 24 - lsrs r0, 24 - movs r1, 0 - bl GetWindowAttribute - lsls r0, 24 - lsrs r0, 24 - bl GetBgTilemapBuffer - lsls r4, 7 - adds r4, 0x3A - adds r0, r4 - ldr r2, =0x00005002 - adds r1, r2, 0 - strh r1, [r0] - adds r0, 0x40 - strh r1, [r0] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81CBD48 - - thumb_func_start sub_81CBD78 -sub_81CBD78: @ 81CBD78 - push {r4,lr} - adds r4, r0, 0 - ldr r0, =gUnknown_086227D8 - bl AddWindow - strh r0, [r4, 0x10] - ldr r0, =gUnknown_086227E0 - bl AddWindow - strh r0, [r4, 0x12] - ldrb r0, [r4, 0x10] - movs r1, 0x11 - bl FillWindowPixelBuffer - ldrb r0, [r4, 0x10] - bl PutWindowTilemap - ldrb r0, [r4, 0x12] - movs r1, 0x11 - bl FillWindowPixelBuffer - ldrb r0, [r4, 0x12] - bl PutWindowTilemap - ldrb r0, [r4, 0x10] - movs r1, 0x1 - bl CopyWindowToVram - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81CBD78 - - thumb_func_start sub_81CBDC0 -sub_81CBDC0: @ 81CBDC0 - push {r4,lr} - adds r4, r0, 0 - ldrb r0, [r4, 0x12] - movs r1, 0x11 - bl FillWindowPixelBuffer - ldrh r0, [r4, 0x12] - bl sub_81CBDF4 - ldrh r0, [r4, 0x12] - bl sub_81CBE0C - ldrh r0, [r4, 0x12] - bl sub_81CBE38 - ldrh r0, [r4, 0x12] - bl sub_81CBE50 - ldrb r0, [r4, 0x12] - movs r1, 0x2 - bl CopyWindowToVram - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_81CBDC0 - - thumb_func_start sub_81CBDF4 -sub_81CBDF4: @ 81CBDF4 - push {lr} - lsls r0, 16 - lsrs r0, 16 - ldr r1, =gText_NumberRegistered - movs r2, 0 - bl sub_81CBE88 - pop {r0} - bx r0 - .pool - thumb_func_end sub_81CBDF4 - - thumb_func_start sub_81CBE0C -sub_81CBE0C: @ 81CBE0C - push {r4,lr} - sub sp, 0x4 - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - bl sub_81CAE38 - adds r1, r0, 0 - mov r0, sp - movs r2, 0 - movs r3, 0x3 - bl ConvertIntToDecimalStringN - adds r0, r4, 0 - mov r1, sp - movs r2, 0x1 - bl sub_81CBEB4 - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_81CBE0C - - thumb_func_start sub_81CBE38 -sub_81CBE38: @ 81CBE38 - push {lr} - lsls r0, 16 - lsrs r0, 16 - ldr r1, =gText_NumberOfBattles - movs r2, 0x2 - bl sub_81CBE88 - pop {r0} - bx r0 - .pool - thumb_func_end sub_81CBE38 - - thumb_func_start sub_81CBE50 -sub_81CBE50: @ 81CBE50 - push {r4,lr} - sub sp, 0x8 - lsls r0, 16 - lsrs r4, r0, 16 - movs r0, 0x9 - bl GetGameStat - adds r1, r0, 0 - ldr r0, =0x0001869f @ Note to decompiler: See UNKNOWN_OFFSET - cmp r1, r0 - ble _081CBE68 - adds r1, r0, 0 -_081CBE68: - mov r0, sp - movs r2, 0 - movs r3, 0x5 - bl ConvertIntToDecimalStringN - adds r0, r4, 0 - mov r1, sp - movs r2, 0x3 - bl sub_81CBEB4 - add sp, 0x8 - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81CBE50 - - thumb_func_start sub_81CBE88 -sub_81CBE88: @ 81CBE88 - push {lr} - sub sp, 0xC - adds r3, r1, 0 - lsls r2, 4 - adds r2, 0x1 - lsls r0, 24 - lsrs r0, 24 - lsls r2, 24 - lsrs r2, 24 - str r2, [sp] - movs r1, 0xFF - str r1, [sp, 0x4] - movs r1, 0 - str r1, [sp, 0x8] - movs r1, 0x7 - adds r2, r3, 0 - movs r3, 0x2 - bl AddTextPrinterParameterized - add sp, 0xC - pop {r0} - bx r0 - thumb_func_end sub_81CBE88 - - thumb_func_start sub_81CBEB4 -sub_81CBEB4: @ 81CBEB4 - push {r4-r6,lr} - sub sp, 0xC - adds r5, r0, 0 - adds r6, r1, 0 - adds r4, r2, 0 - lsls r5, 16 - lsrs r5, 16 - movs r0, 0x7 - movs r2, 0x56 - bl GetStringRightAlignXOffset - adds r3, r0, 0 - lsls r4, 4 - adds r4, 0x1 - lsls r5, 24 - lsrs r5, 24 - lsls r3, 24 - lsrs r3, 24 - lsls r4, 24 - lsrs r4, 24 - str r4, [sp] - movs r0, 0xFF - str r0, [sp, 0x4] - movs r0, 0 - str r0, [sp, 0x8] - adds r0, r5, 0 - movs r1, 0x7 - adds r2, r6, 0 - bl AddTextPrinterParameterized - add sp, 0xC - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_81CBEB4 - - thumb_func_start sub_81CBEF8 -sub_81CBEF8: @ 81CBEF8 - push {r4,r5,lr} - sub sp, 0x2C - adds r5, r0, 0 - adds r4, r1, 0 - bl GetSelectedMatchCall - adds r0, r4 - bl sub_81CAEA4 - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, 0xD5 - beq _081CBF1C - add r0, sp, 0xC - movs r2, 0 - bl GetMapName - b _081CBF24 -_081CBF1C: - ldr r1, =gText_Unknown - add r0, sp, 0xC - bl StringCopy -_081CBF24: - movs r0, 0x7 - add r1, sp, 0xC - movs r2, 0x58 - bl GetStringCenterAlignXOffset - adds r4, r0, 0 - ldrb r0, [r5, 0x10] - movs r1, 0x11 - bl FillWindowPixelBuffer - ldrb r0, [r5, 0x10] - lsls r4, 24 - lsrs r4, 24 - movs r1, 0x1 - str r1, [sp] - movs r1, 0 - str r1, [sp, 0x4] - str r1, [sp, 0x8] - movs r1, 0x7 - add r2, sp, 0xC - adds r3, r4, 0 - bl AddTextPrinterParameterized - add sp, 0x2C - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81CBEF8 - - thumb_func_start sub_81CBF60 -sub_81CBF60: @ 81CBF60 - push {r4-r6,lr} - sub sp, 0xC - adds r5, r0, 0 - ldrb r0, [r5, 0x12] - movs r1, 0x11 - bl FillWindowPixelBuffer - movs r4, 0 - movs r6, 0x80 - lsls r6, 17 - b _081CBF9C -_081CBF76: - ldrb r0, [r5, 0x12] - ldr r2, =gUnknown_086227E8 - lsls r1, 2 - adds r1, r2 - ldr r2, [r1] - lsrs r1, r6, 24 - str r1, [sp] - movs r1, 0xFF - str r1, [sp, 0x4] - movs r1, 0 - str r1, [sp, 0x8] - movs r1, 0x7 - movs r3, 0x10 - bl AddTextPrinterParameterized - movs r0, 0x80 - lsls r0, 21 - adds r6, r0 - adds r4, 0x1 -_081CBF9C: - cmp r4, 0x2 - bhi _081CBFAE - adds r0, r4, 0 - bl sub_81CB02C - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, 0x3 - bne _081CBF76 -_081CBFAE: - ldrb r0, [r5, 0x12] - movs r1, 0x2 - bl CopyWindowToVram - add sp, 0xC - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81CBF60 - - thumb_func_start sub_81CBFC4 -sub_81CBFC4: @ 81CBFC4 - push {r4,lr} - adds r4, r0, 0 - bl IsDma3ManagerBusyWithBgCopy - lsls r0, 24 - cmp r0, 0 - beq _081CBFD6 - movs r0, 0x1 - b _081CBFE8 -_081CBFD6: - bl sub_81CB01C - adds r1, r0, 0 - lsls r1, 16 - lsrs r1, 16 - adds r0, r4, 0 - bl sub_81CC2F0 - movs r0, 0 -_081CBFE8: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_81CBFC4 - - thumb_func_start sub_81CBFF0 -sub_81CBFF0: @ 81CBFF0 - push {r4,lr} - adds r4, r0, 0 - bl sub_81CC330 - adds r0, r4, 0 - bl sub_81CBDC0 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_81CBFF0 - - thumb_func_start sub_81CC004 -sub_81CC004: @ 81CC004 - push {lr} - bl IsDma3ManagerBusyWithBgCopy - lsls r0, 24 - lsrs r0, 24 - pop {r1} - bx r1 - thumb_func_end sub_81CC004 - - thumb_func_start sub_81CC014 -sub_81CC014: @ 81CC014 - push {r4,lr} - adds r4, r0, 0 - bl sub_81CC330 - ldrb r0, [r4, 0x12] - movs r1, 0x11 - bl FillWindowPixelBuffer - ldrb r0, [r4, 0x12] - movs r1, 0x2 - bl CopyWindowToVram - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_81CC014 - - thumb_func_start sub_81CC034 -sub_81CC034: @ 81CC034 - push {r4,lr} - adds r4, r0, 0 - ldr r0, =gUnknown_08622808 - bl AddWindow - strh r0, [r4, 0x14] - ldrh r0, [r4, 0x14] - movs r1, 0x1 - movs r2, 0x4 - bl sub_8197184 - bl sub_81C7B40 - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81CC034 - - thumb_func_start sub_81CC058 -sub_81CC058: @ 81CC058 - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x14] - movs r1, 0x1 - movs r2, 0x4 - bl sub_8197184 - ldrh r0, [r4, 0x14] - movs r1, 0x1 - movs r2, 0x4 - bl sub_81971C4 - ldrb r0, [r4, 0x14] - movs r1, 0x11 - bl FillWindowPixelBuffer - ldrb r0, [r4, 0x14] - bl PutWindowTilemap - ldrb r0, [r4, 0x14] - movs r1, 0x3 - bl CopyWindowToVram - bl PauseSpinningNavgearSprite - movs r2, 0 - movs r1, 0x18 - strh r1, [r0, 0x20] - movs r1, 0x70 - strh r1, [r0, 0x22] - strh r2, [r0, 0x26] - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_81CC058 - - thumb_func_start sub_81CC09C -sub_81CC09C: @ 81CC09C - push {r4,lr} - adds r4, r0, 0 - ldrb r0, [r4, 0x14] - movs r1, 0x1 - movs r2, 0x40 - bl LoadUserWindowBorderGfx - ldrb r0, [r4, 0x14] - movs r1, 0x1 - movs r2, 0x4 - bl DrawTextBorderOuter - ldrb r0, [r4, 0x14] - movs r1, 0x11 - bl FillWindowPixelBuffer - ldrb r0, [r4, 0x14] - bl PutWindowTilemap - ldrb r0, [r4, 0x14] - movs r1, 0x3 - bl CopyWindowToVram - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_81CC09C - - thumb_func_start sub_81CC0D0 -sub_81CC0D0: @ 81CC0D0 - push {lr} - bl IsDma3ManagerBusyWithBgCopy - lsls r0, 24 - lsrs r0, 24 - pop {r1} - bx r1 - thumb_func_end sub_81CC0D0 - - thumb_func_start sub_81CC0E0 -sub_81CC0E0: @ 81CC0E0 - push {lr} - sub sp, 0xC - ldrb r0, [r0, 0x14] - ldr r2, =gUnknown_086227F4 - movs r1, 0x1 - str r1, [sp] - str r1, [sp, 0x4] - movs r1, 0 - str r1, [sp, 0x8] - movs r1, 0x1 - movs r3, 0x20 - bl AddTextPrinterParameterized - add sp, 0xC - pop {r0} - bx r0 - .pool - thumb_func_end sub_81CC0E0 - - thumb_func_start sub_81CC104 -sub_81CC104: @ 81CC104 - push {r4,lr} - adds r4, r0, 0 - bl RunTextPrinters - ldrb r0, [r4, 0x14] - bl IsTextPrinterActive - lsls r0, 16 - lsrs r0, 16 - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_81CC104 - - thumb_func_start sub_81CC11C -sub_81CC11C: @ 81CC11C - push {lr} - sub sp, 0xC - ldrb r0, [r0, 0x14] - ldr r2, =gText_TrainerCloseBy - movs r1, 0x1 - str r1, [sp] - str r1, [sp, 0x4] - movs r1, 0 - str r1, [sp, 0x8] - movs r1, 0x1 - movs r3, 0 - bl AddTextPrinterParameterized - add sp, 0xC - pop {r0} - bx r0 - .pool - thumb_func_end sub_81CC11C - - thumb_func_start sub_81CC140 -sub_81CC140: @ 81CC140 - push {r4,lr} - adds r4, r0, 0 - bl RunTextPrinters - ldrb r0, [r4, 0x14] - bl IsTextPrinterActive - lsls r0, 16 - lsrs r0, 16 - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_81CC140 - - thumb_func_start sub_81CC158 -sub_81CC158: @ 81CC158 - push {r4,r5,lr} - sub sp, 0xC - adds r4, r0, 0 - bl GetSelectedMatchCall - adds r1, r4, 0 - adds r1, 0xF - bl sub_81CAF78 - adds r5, r0, 0 - bl GetPlayerTextSpeedDelay - lsls r0, 24 - lsrs r0, 24 - ldrb r2, [r4, 0x14] - movs r1, 0x1 - str r1, [sp] - str r0, [sp, 0x4] - movs r0, 0 - str r0, [sp, 0x8] - adds r0, r2, 0 - adds r2, r5, 0 - movs r3, 0x20 - bl AddTextPrinterParameterized - add sp, 0xC - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_81CC158 - - thumb_func_start sub_81CC194 -sub_81CC194: @ 81CC194 - push {r4,lr} - adds r4, r0, 0 - ldr r0, =gMain - ldrh r1, [r0, 0x2C] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _081CC1B8 - ldr r0, =gTextFlags - ldrb r1, [r0] - movs r2, 0x1 - orrs r1, r2 - strb r1, [r0] - b _081CC1C4 - .pool -_081CC1B8: - ldr r2, =gTextFlags - ldrb r1, [r2] - movs r0, 0x2 - negs r0, r0 - ands r0, r1 - strb r0, [r2] -_081CC1C4: - bl RunTextPrinters - ldrb r0, [r4, 0x14] - bl IsTextPrinterActive - lsls r0, 16 - lsrs r0, 16 - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end sub_81CC194 - - thumb_func_start sub_81CC1DC -sub_81CC1DC: @ 81CC1DC - push {lr} - sub sp, 0x8 - bl ResumeSpinningNavgearSprite - movs r0, 0x20 - str r0, [sp] - movs r0, 0x14 - str r0, [sp, 0x4] - movs r0, 0x1 - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl FillBgTilemapBufferRect_Palette0 - movs r0, 0x1 - bl CopyBgTilemapBufferToVram - add sp, 0x8 - pop {r0} - bx r0 - thumb_func_end sub_81CC1DC - - thumb_func_start sub_81CC204 -sub_81CC204: @ 81CC204 - push {lr} - bl IsDma3ManagerBusyWithBgCopy - lsls r0, 24 - lsrs r0, 24 - pop {r1} - bx r1 - thumb_func_end sub_81CC204 - - thumb_func_start sub_81CC214 -sub_81CC214: @ 81CC214 - push {r4-r6,lr} - sub sp, 0x8 - movs r0, 0x6 - bl GetSubstructPtr - adds r6, r0, 0 - movs r5, 0 - ldr r4, =gUnknown_08622810 -_081CC224: - adds r0, r4, 0 - bl LoadCompressedSpriteSheet - adds r4, 0x8 - adds r5, 0x1 - cmp r5, 0 - beq _081CC224 - ldr r0, =gUnknown_08622818 - bl Pokenav_AllocAndLoadPalettes - movs r0, 0 - str r0, [r6, 0x1C] - ldr r1, =0x00001828 - adds r0, r6, r1 - str r0, [sp] - ldr r1, =0xffff0000 - ldr r0, [sp, 0x4] - ands r0, r1 - movs r1, 0x80 - lsls r1, 4 - orrs r0, r1 - ldr r1, =0x0000ffff - ands r0, r1 - movs r1, 0x80 - lsls r1, 12 - orrs r0, r1 - str r0, [sp, 0x4] - mov r0, sp - bl LoadSpriteSheet - ldr r2, =0x00001824 - adds r1, r6, r2 - lsls r0, 16 - lsrs r0, 11 - ldr r2, =0x06010000 - adds r0, r2 - str r0, [r1] - movs r0, 0xD - bl AllocSpritePalette - lsls r0, 24 - lsrs r0, 20 - movs r1, 0x80 - lsls r1, 1 - adds r0, r1 - strh r0, [r6, 0x1A] - bl sub_81CC370 - str r0, [r6, 0x20] - adds r0, 0x3E - ldrb r1, [r0] - movs r2, 0x4 - orrs r1, r2 - strb r1, [r0] - add sp, 0x8 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81CC214 - - thumb_func_start sub_81CC2B4 -sub_81CC2B4: @ 81CC2B4 - push {r4,lr} - movs r0, 0x6 - bl GetSubstructPtr - adds r4, r0, 0 - ldr r0, [r4, 0x1C] - cmp r0, 0 - beq _081CC2C8 - bl DestroySprite -_081CC2C8: - ldr r0, [r4, 0x20] - cmp r0, 0 - beq _081CC2D2 - bl DestroySprite -_081CC2D2: - movs r0, 0x8 - bl FreeSpriteTilesByTag - movs r0, 0x7 - bl FreeSpriteTilesByTag - movs r0, 0xC - bl FreeSpritePaletteByTag - movs r0, 0xD - bl FreeSpritePaletteByTag - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_81CC2B4 - - thumb_func_start sub_81CC2F0 -sub_81CC2F0: @ 81CC2F0 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - ldr r0, [r4, 0x1C] - cmp r0, 0 - bne _081CC320 - ldr r0, =gUnknown_08622830 - movs r1, 0x4 - movs r2, 0x50 - movs r3, 0x5 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - ldr r0, =gSprites - adds r1, r0 - str r1, [r4, 0x1C] - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_81CC344 -_081CC320: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81CC2F0 - - thumb_func_start sub_81CC330 -sub_81CC330: @ 81CC330 - push {r4,lr} - adds r4, r0, 0 - ldr r0, [r4, 0x1C] - bl DestroySprite - movs r0, 0 - str r0, [r4, 0x1C] - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_81CC330 - - thumb_func_start sub_81CC344 -sub_81CC344: @ 81CC344 - ldr r0, [r0, 0x1C] - lsls r1, 4 - strh r1, [r0, 0x26] - bx lr - thumb_func_end sub_81CC344 - - thumb_func_start sub_81CC34C -sub_81CC34C: @ 81CC34C - push {lr} - adds r2, r0, 0 - ldrh r0, [r2, 0x2E] - adds r0, 0x1 - strh r0, [r2, 0x2E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x3 - ble _081CC36C - movs r0, 0 - strh r0, [r2, 0x2E] - ldrh r0, [r2, 0x24] - adds r0, 0x1 - movs r1, 0x7 - ands r0, r1 - strh r0, [r2, 0x24] -_081CC36C: - pop {r0} - bx r0 - thumb_func_end sub_81CC34C - - thumb_func_start sub_81CC370 -sub_81CC370: @ 81CC370 - push {lr} - ldr r0, =gUnknown_08622850 - movs r1, 0x2C - movs r2, 0x68 - movs r3, 0x6 - bl CreateSprite - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, =gSprites - adds r0, r1 - pop {r1} - bx r1 - .pool - thumb_func_end sub_81CC370 - - thumb_func_start sub_81CC39C -sub_81CC39C: @ 81CC39C - push {r4-r7,lr} - adds r7, r0, 0 - bl GetSelectedMatchCall - bl sub_81CAF04 - cmp r0, 0 - blt _081CC400 - lsls r4, r0, 3 - ldr r0, =gTrainerFrontPicTable - adds r0, r4, r0 - ldr r1, =0x00001828 - adds r5, r7, r1 - adds r1, r5, 0 - movs r2, 0 - bl DecompressPicFromTable - ldr r0, =gTrainerFrontPicPaletteTable - adds r4, r0 - ldr r0, [r4] - ldr r1, =0x00002028 - adds r6, r7, r1 - adds r1, r6, 0 - bl LZ77UnCompWram - ldr r1, =0x00001824 - adds r0, r7, r1 - ldr r1, [r0] - movs r2, 0x80 - lsls r2, 4 - adds r0, r5, 0 - movs r3, 0x1 - bl RequestDma3Copy - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - ldrh r1, [r7, 0x1A] - adds r0, r6, 0 - movs r2, 0x20 - bl LoadPalette - ldr r1, [r7, 0x20] - movs r0, 0 - strh r0, [r1, 0x2E] - ldr r0, [r7, 0x20] - strh r4, [r0, 0x3C] - ldr r1, [r7, 0x20] - ldr r0, =sub_81CC440 - str r0, [r1, 0x1C] -_081CC400: - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81CC39C - - thumb_func_start sub_81CC420 -sub_81CC420: @ 81CC420 - ldr r1, [r0, 0x20] - ldr r0, =sub_81CC4A4 - str r0, [r1, 0x1C] - bx lr - .pool - thumb_func_end sub_81CC420 - - thumb_func_start sub_81CC42C -sub_81CC42C: @ 81CC42C - ldr r0, [r0, 0x20] - ldr r1, [r0, 0x1C] - ldr r0, =SpriteCallbackDummy - eors r1, r0 - negs r0, r1 - orrs r0, r1 - lsrs r0, 31 - bx lr - .pool - thumb_func_end sub_81CC42C - - thumb_func_start sub_81CC440 -sub_81CC440: @ 81CC440 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _081CC452 - cmp r0, 0x1 - beq _081CC484 - b _081CC498 -_081CC452: - movs r1, 0x3C - ldrsh r0, [r4, r1] - bl CheckForSpaceForDma3Request - lsls r0, 16 - asrs r0, 16 - movs r1, 0x1 - negs r1, r1 - cmp r0, r1 - beq _081CC498 - ldr r0, =0x0000ffb0 - strh r0, [r4, 0x24] - adds r2, r4, 0 - adds r2, 0x3E - ldrb r1, [r2] - movs r0, 0x5 - negs r0, r0 - ands r0, r1 - strb r0, [r2] - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - b _081CC498 - .pool -_081CC484: - ldrh r0, [r4, 0x24] - adds r0, 0x8 - strh r0, [r4, 0x24] - lsls r0, 16 - cmp r0, 0 - blt _081CC498 - movs r0, 0 - strh r0, [r4, 0x24] - ldr r0, =SpriteCallbackDummy - str r0, [r4, 0x1C] -_081CC498: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81CC440 - - thumb_func_start sub_81CC4A4 -sub_81CC4A4: @ 81CC4A4 - push {lr} - adds r3, r0, 0 - ldrh r0, [r3, 0x24] - subs r0, 0x8 - strh r0, [r3, 0x24] - lsls r0, 16 - asrs r0, 16 - movs r1, 0x50 - negs r1, r1 - cmp r0, r1 - bgt _081CC4CA - adds r2, r3, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] - ldr r0, =SpriteCallbackDummy - str r0, [r3, 0x1C] -_081CC4CA: - pop {r0} - bx r0 - .pool - thumb_func_end sub_81CC4A4 - - thumb_func_start sub_81CC4D4 -sub_81CC4D4: @ 81CC4D4 - push {r4,lr} - movs r0, 0x3 - movs r1, 0x14 - bl AllocSubstruct - adds r4, r0, 0 - cmp r4, 0 - beq _081CC4F0 - ldr r1, =0x00000884 - movs r0, 0x10 - bl AllocSubstruct - cmp r0, 0 - bne _081CC4F8 -_081CC4F0: - movs r0, 0 - b _081CC51A - .pool -_081CC4F8: - ldr r0, =gMapHeader - ldrb r0, [r0, 0x14] - bl sub_8124668 - str r0, [r4, 0xC] - cmp r0, 0 - bne _081CC514 - ldr r0, =sub_81CC568 - b _081CC516 - .pool -_081CC514: - ldr r0, =sub_81CC5B4 -_081CC516: - str r0, [r4, 0x10] - movs r0, 0x1 -_081CC51A: - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end sub_81CC4D4 - - thumb_func_start sub_81CC524 -sub_81CC524: @ 81CC524 - push {lr} - bl sub_8124658 - ldr r1, =gSaveBlock2Ptr - ldr r3, [r1] - movs r1, 0x1 - ands r1, r0 - lsls r1, 3 - ldrb r2, [r3, 0x15] - movs r0, 0x9 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3, 0x15] - movs r0, 0x10 - bl FreePokenavSubstruct - movs r0, 0x3 - bl FreePokenavSubstruct - pop {r0} - bx r0 - .pool - thumb_func_end sub_81CC524 - - thumb_func_start sub_81CC554 -sub_81CC554: @ 81CC554 - push {lr} - movs r0, 0x3 - bl GetSubstructPtr - ldr r1, [r0, 0x10] - bl _call_via_r1 - pop {r1} - bx r1 - thumb_func_end sub_81CC554 - - thumb_func_start sub_81CC568 -sub_81CC568: @ 81CC568 - push {r4,lr} - adds r4, r0, 0 - bl sub_81230AC - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x4 - beq _081CC58C - cmp r0, 0x4 - bgt _081CC582 - cmp r0, 0x3 - beq _081CC588 - b _081CC5AC -_081CC582: - cmp r0, 0x5 - beq _081CC59E - b _081CC5AC -_081CC588: - movs r0, 0x1 - b _081CC5AE -_081CC58C: - bl sub_8124658 - lsls r0, 24 - cmp r0, 0 - bne _081CC59A - movs r0, 0x3 - b _081CC5AE -_081CC59A: - movs r0, 0x2 - b _081CC5AE -_081CC59E: - ldr r0, =sub_81CC5DC - str r0, [r4, 0x10] - movs r0, 0x4 - b _081CC5AE - .pool -_081CC5AC: - movs r0, 0 -_081CC5AE: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_81CC568 - - thumb_func_start sub_81CC5B4 -sub_81CC5B4: @ 81CC5B4 - push {lr} - adds r2, r0, 0 - ldr r0, =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - bne _081CC5CC - movs r0, 0 - b _081CC5D2 - .pool -_081CC5CC: - ldr r0, =sub_81CC5DC - str r0, [r2, 0x10] - movs r0, 0x4 -_081CC5D2: - pop {r1} - bx r1 - .pool - thumb_func_end sub_81CC5B4 - - thumb_func_start sub_81CC5DC -sub_81CC5DC: @ 81CC5DC - ldr r0, =0x000186a1 - bx lr - .pool - thumb_func_end sub_81CC5DC - - thumb_func_start sub_81CC5E4 -sub_81CC5E4: @ 81CC5E4 - push {lr} - movs r0, 0x3 - bl GetSubstructPtr - ldr r0, [r0, 0xC] - pop {r1} - bx r1 - thumb_func_end sub_81CC5E4 - - thumb_func_start sub_81CC5F4 -sub_81CC5F4: @ 81CC5F4 - push {r4,lr} - ldr r1, =0x00001948 - movs r0, 0x4 - bl AllocSubstruct - adds r4, r0, 0 - cmp r4, 0 - beq _081CC624 - ldr r0, =sub_81CC6F4 - movs r1, 0x1 - bl CreateLoopedTask - str r0, [r4, 0x4] - ldr r0, =sub_81CC6BC - str r0, [r4] - movs r0, 0x1 - b _081CC626 - .pool -_081CC624: - movs r0, 0 -_081CC626: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_81CC5F4 - - thumb_func_start sub_81CC62C -sub_81CC62C: @ 81CC62C - push {r4,r5,lr} - adds r4, r0, 0 - movs r0, 0x4 - bl GetSubstructPtr - adds r5, r0, 0 - ldr r0, =gUnknown_086230E4 - lsls r4, 2 - adds r4, r0 - ldr r0, [r4] - movs r1, 0x1 - bl CreateLoopedTask - str r0, [r5, 0x4] - ldr r0, =sub_81CC6BC - str r0, [r5] - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81CC62C - - thumb_func_start sub_81CC65C -sub_81CC65C: @ 81CC65C - push {lr} - movs r0, 0x4 - bl GetSubstructPtr - ldr r0, [r0] - bl _call_via_r0 - pop {r1} - bx r1 - thumb_func_end sub_81CC65C - - thumb_func_start sub_81CC670 -sub_81CC670: @ 81CC670 - push {r4,lr} - movs r0, 0x4 - bl GetSubstructPtr - adds r4, r0, 0 - bl FreeRegionMapIconResources - bl sub_81CC9EC - ldrb r0, [r4, 0x8] - bl RemoveWindow - movs r0, 0x10 - bl FreePokenavSubstruct - movs r0, 0x4 - bl FreePokenavSubstruct - bl SetPokenavVBlankCallback - movs r0, 0 - bl SetBgMode - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_81CC670 - - thumb_func_start sub_81CC6A4 -sub_81CC6A4: @ 81CC6A4 - push {lr} - bl TransferPlttBuffer - bl LoadOam - bl ProcessSpriteCopyRequests - bl UpdateRegionMapVideoRegs - pop {r0} - bx r0 - thumb_func_end sub_81CC6A4 - - thumb_func_start sub_81CC6BC -sub_81CC6BC: @ 81CC6BC - push {lr} - movs r0, 0x4 - bl GetSubstructPtr - ldr r0, [r0, 0x4] - bl IsLoopedTaskActive - pop {r1} - bx r1 - thumb_func_end sub_81CC6BC - - thumb_func_start sub_81CC6D0 -sub_81CC6D0: @ 81CC6D0 - push {lr} - bl sub_81CC5E4 - cmp r0, 0 - bne _081CC6EC - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - ldrb r0, [r0, 0x15] - lsrs r0, 3 - movs r1, 0x1 - ands r0, r1 - b _081CC6EE - .pool -_081CC6EC: - movs r0, 0 -_081CC6EE: - pop {r1} - bx r1 - thumb_func_end sub_81CC6D0 - - thumb_func_start sub_81CC6F4 -sub_81CC6F4: @ 81CC6F4 - push {r4,r5,lr} - adds r4, r0, 0 - movs r0, 0x4 - bl GetSubstructPtr - adds r5, r0, 0 - cmp r4, 0x7 - bls _081CC706 - b _081CC83E -_081CC706: - lsls r0, r4, 2 - ldr r1, =_081CC714 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_081CC714: - .4byte _081CC734 - .4byte _081CC784 - .4byte _081CC7B6 - .4byte _081CC7BE - .4byte _081CC7CE - .4byte _081CC7E2 - .4byte _081CC804 - .4byte _081CC82A -_081CC734: - movs r0, 0 - bl SetVBlankCallback_ - movs r0, 0x1 - bl HideBg - movs r0, 0x2 - bl HideBg - movs r0, 0x3 - bl HideBg - movs r0, 0x1 - bl SetBgMode - ldr r4, =gUnknown_086230D8 - adds r0, r4, 0 - movs r1, 0x2 - bl InitBgTemplates - movs r0, 0x10 - bl GetSubstructPtr - adds r5, r0, 0 - adds r4, 0x4 - bl sub_81CC6D0 - adds r2, r0, 0 - lsls r2, 24 - lsrs r2, 24 - adds r0, r5, 0 - adds r1, r4, 0 - bl sub_8122CF8 - bl sub_81CC9C0 -_081CC77C: - movs r0, 0 - b _081CC840 - .pool -_081CC784: - bl sub_8122DB0 - lsls r0, 24 - cmp r0, 0 - bne _081CC83A - bl sub_81CC5E4 - cmp r0, 0 - bne _081CC7AC - movs r0, 0x4 - movs r1, 0x9 - bl CreateRegionMapPlayerIcon - movs r0, 0x5 - movs r1, 0xA - bl CreateRegionMapCursor - bl sub_812454C - b _081CC77C -_081CC7AC: - movs r0, 0 - movs r1, 0x6 - bl sub_8123030 - b _081CC77C -_081CC7B6: - bl sub_81CCD10 -_081CC7BA: - movs r0, 0x1 - b _081CC840 -_081CC7BE: - bl sub_81CCD24 - cmp r0, 0 - bne _081CC83A - adds r0, r5, 0 - bl sub_81CCA1C - b _081CC7BA -_081CC7CE: - bl sub_81CCAFC - cmp r0, 0 - bne _081CC83A - adds r0, r5, 0 - bl sub_81CCB0C - bl sub_81C7B40 - b _081CC77C -_081CC7E2: - adds r0, r5, 0 - bl sub_81CCC4C - cmp r0, 0 - bne _081CC83A - movs r0, 0x1 - bl ShowBg - movs r0, 0x2 - bl ShowBg - ldr r0, =sub_81CC6A4 - bl SetVBlankCallback_ - b _081CC77C - .pool -_081CC804: - bl sub_81CC6D0 - lsls r0, 24 - movs r4, 0x5 - cmp r0, 0 - bne _081CC812 - movs r4, 0x4 -_081CC812: - adds r0, r4, 0 - bl LoadLeftHeaderGfxForIndex - adds r0, r4, 0 - movs r1, 0x1 - movs r2, 0x1 - bl sub_81C7FA0 - movs r0, 0x1 - bl sub_81C7AC0 - b _081CC77C -_081CC82A: - bl IsPaletteFadeActive - cmp r0, 0 - bne _081CC83A - bl sub_81C8010 - cmp r0, 0 - beq _081CC7BA -_081CC83A: - movs r0, 0x2 - b _081CC840 -_081CC83E: - movs r0, 0x4 -_081CC840: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_81CC6F4 - - thumb_func_start sub_81CC848 -sub_81CC848: @ 81CC848 - push {r4,lr} - adds r4, r0, 0 - movs r0, 0x4 - bl GetSubstructPtr - cmp r4, 0 - beq _081CC85C - cmp r4, 0x1 - beq _081CC864 - b _081CC870 -_081CC85C: - bl sub_81CCB0C - movs r0, 0 - b _081CC872 -_081CC864: - bl sub_81CCC4C - cmp r0, 0 - beq _081CC870 - movs r0, 0x2 - b _081CC872 -_081CC870: - movs r0, 0x4 -_081CC872: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_81CC848 - - thumb_func_start sub_81CC878 -sub_81CC878: @ 81CC878 - push {lr} - cmp r0, 0x1 - beq _081CC8A2 - cmp r0, 0x1 - bgt _081CC888 - cmp r0, 0 - beq _081CC88E - b _081CC8D0 -_081CC888: - cmp r0, 0x2 - beq _081CC8BE - b _081CC8D0 -_081CC88E: - movs r0, 0x5 - bl PlaySE - movs r0, 0 - bl sub_81CCC5C - bl sub_8123418 - movs r0, 0 - b _081CC8D2 -_081CC8A2: - bl sub_8123514 - lsls r0, 24 - cmp r0, 0 - bne _081CC8C6 - bl sub_81CCC88 - cmp r0, 0 - bne _081CC8C6 - movs r0, 0x1 - bl sub_81C7BA4 - movs r0, 0 - b _081CC8D2 -_081CC8BE: - bl IsDma3ManagerBusyWithBgCopy_ - cmp r0, 0 - beq _081CC8CA -_081CC8C6: - movs r0, 0x2 - b _081CC8D2 -_081CC8CA: - movs r0, 0x4 - bl sub_81C7E14 -_081CC8D0: - movs r0, 0x4 -_081CC8D2: - pop {r1} - bx r1 - thumb_func_end sub_81CC878 - - thumb_func_start sub_81CC8D8 -sub_81CC8D8: @ 81CC8D8 - push {r4,r5,lr} - adds r4, r0, 0 - movs r0, 0x4 - bl GetSubstructPtr - adds r5, r0, 0 - cmp r4, 0x1 - beq _081CC90C - cmp r4, 0x1 - bgt _081CC8F2 - cmp r4, 0 - beq _081CC8FC - b _081CC952 -_081CC8F2: - cmp r4, 0x2 - beq _081CC924 - cmp r4, 0x3 - beq _081CC940 - b _081CC952 -_081CC8FC: - movs r0, 0x5 - bl PlaySE - adds r0, r5, 0 - bl sub_81CCB0C - movs r0, 0 - b _081CC954 -_081CC90C: - adds r0, r5, 0 - bl sub_81CCC4C - cmp r0, 0 - bne _081CC948 - movs r0, 0x1 - bl sub_81CCC5C - bl sub_8123418 - movs r0, 0 - b _081CC954 -_081CC924: - bl sub_8123514 - lsls r0, 24 - cmp r0, 0 - bne _081CC948 - bl sub_81CCC88 - cmp r0, 0 - bne _081CC948 - movs r0, 0x2 - bl sub_81C7BA4 - movs r0, 0 - b _081CC954 -_081CC940: - bl IsDma3ManagerBusyWithBgCopy_ - cmp r0, 0 - beq _081CC94C -_081CC948: - movs r0, 0x2 - b _081CC954 -_081CC94C: - movs r0, 0x5 - bl sub_81C7E14 -_081CC952: - movs r0, 0x4 -_081CC954: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_81CC8D8 - - thumb_func_start sub_81CC95C -sub_81CC95C: @ 81CC95C - push {lr} - cmp r0, 0x1 - beq _081CC982 - cmp r0, 0x1 - bgt _081CC96C - cmp r0, 0 - beq _081CC972 - b _081CC9B8 -_081CC96C: - cmp r0, 0x2 - beq _081CC996 - b _081CC9B8 -_081CC972: - movs r0, 0x5 - bl PlaySE - movs r0, 0 - bl sub_81C7AC0 - movs r0, 0 - b _081CC9BA -_081CC982: - bl IsPaletteFadeActive - cmp r0, 0 - bne _081CC99E - bl sub_81C7FDC - bl sub_81C78A0 - movs r0, 0 - b _081CC9BA -_081CC996: - bl MainMenuLoopedTaskIsBusy - cmp r0, 0 - beq _081CC9A2 -_081CC99E: - movs r0, 0x2 - b _081CC9BA -_081CC9A2: - movs r0, 0x1 - bl HideBg - movs r0, 0x2 - bl HideBg - movs r0, 0x3 - bl HideBg - movs r0, 0 - b _081CC9BA -_081CC9B8: - movs r0, 0x4 -_081CC9BA: - pop {r1} - bx r1 - thumb_func_end sub_81CC95C - - thumb_func_start sub_81CC9C0 -sub_81CC9C0: @ 81CC9C0 - push {r4,r5,lr} - movs r5, 0 - ldr r4, =gUnknown_086230F8 -_081CC9C6: - adds r0, r4, 0 - bl LoadCompressedSpriteSheet - adds r4, 0x8 - adds r5, 0x1 - cmp r5, 0 - beq _081CC9C6 - ldr r0, =gUnknown_08623100 - bl Pokenav_AllocAndLoadPalettes - bl sub_81CCE58 - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81CC9C0 - - thumb_func_start sub_81CC9EC -sub_81CC9EC: @ 81CC9EC - push {r4,r5,lr} - movs r0, 0x4 - bl GetSubstructPtr - adds r4, r0, 0 - movs r0, 0x6 - bl FreeSpriteTilesByTag - movs r0, 0xB - bl FreeSpritePaletteByTag - adds r5, r4, 0 - adds r5, 0xC - movs r4, 0x2 -_081CCA08: - ldm r5!, {r0} - bl DestroySprite - subs r4, 0x1 - cmp r4, 0 - bge _081CCA08 - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_81CC9EC - - thumb_func_start sub_81CCA1C -sub_81CCA1C: @ 81CCA1C - push {r4,r5,lr} - sub sp, 0x8 - adds r5, r0, 0 - movs r0, 0x1 - movs r1, 0 - movs r2, 0x40 - movs r3, 0x1 - bl sub_8199DF0 - movs r0, 0x1 - movs r1, 0x11 - movs r2, 0x41 - movs r3, 0x1 - bl sub_8199DF0 - add r1, sp, 0x4 - movs r2, 0x82 - lsls r2, 5 - adds r0, r2, 0 - strh r0, [r1] - adds r4, r5, 0 - adds r4, 0x18 - ldr r2, =0x01000400 - adds r0, r1, 0 - adds r1, r4, 0 - bl CpuSet - movs r0, 0x1 - adds r1, r4, 0 - bl SetBgTilemapBuffer - ldr r0, =gUnknown_08623110 - bl AddWindow - movs r4, 0 - strh r0, [r5, 0x8] - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x42 - movs r2, 0x40 - bl LoadUserWindowBorderGfx_ - ldrb r0, [r5, 0x8] - movs r1, 0x42 - movs r2, 0x4 - bl DrawTextBorderOuter - ldr r1, =gUnknown_08622888 - str r4, [sp] - movs r0, 0x1 - movs r2, 0 - movs r3, 0 - bl decompress_and_copy_tile_data_to_vram - ldrb r0, [r5, 0x8] - movs r1, 0x11 - bl FillWindowPixelBuffer - ldrb r0, [r5, 0x8] - bl PutWindowTilemap - ldrb r0, [r5, 0x8] - movs r1, 0x3 - bl CopyWindowToVram - ldr r0, =gUnknown_08622868 - movs r1, 0x10 - movs r2, 0x20 - bl CopyPaletteIntoBufferUnfaded - ldr r0, =gHoennMapZoomIcons_Pal - movs r1, 0x30 - movs r2, 0x20 - bl CopyPaletteIntoBufferUnfaded - bl sub_8124658 - lsls r0, 24 - cmp r0, 0 - bne _081CCAE0 - ldr r1, =0xffffa000 - movs r0, 0x1 - movs r2, 0 - bl ChangeBgY - b _081CCAEA - .pool -_081CCAE0: - movs r0, 0x1 - movs r1, 0 - movs r2, 0 - bl ChangeBgY -_081CCAEA: - movs r0, 0x1 - movs r1, 0 - movs r2, 0 - bl ChangeBgX - add sp, 0x8 - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_81CCA1C - - thumb_func_start sub_81CCAFC -sub_81CCAFC: @ 81CCAFC - push {lr} - bl free_temp_tile_data_buffers_if_possible - lsls r0, 24 - lsrs r0, 24 - pop {r1} - bx r1 - thumb_func_end sub_81CCAFC - - thumb_func_start sub_81CCB0C -sub_81CCB0C: @ 81CCB0C - push {r4,r5,lr} - sub sp, 0xC - adds r4, r0, 0 - movs r0, 0x10 - bl GetSubstructPtr - adds r5, r0, 0 - ldrb r0, [r5, 0x2] - cmp r0, 0x4 - bls _081CCB22 - b _081CCC40 -_081CCB22: - lsls r0, 2 - ldr r1, =_081CCB30 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_081CCB30: - .4byte _081CCC1C - .4byte _081CCBDC - .4byte _081CCB44 - .4byte _081CCB8E - .4byte _081CCBDC -_081CCB44: - ldrb r0, [r4, 0x8] - movs r1, 0x11 - bl FillWindowPixelBuffer - ldrb r0, [r4, 0x8] - movs r1, 0x2 - str r1, [sp] - movs r1, 0 - movs r2, 0 - movs r3, 0xC - bl PutWindowRectTilemap - ldrb r0, [r4, 0x8] - adds r2, r5, 0x4 - movs r1, 0x1 - str r1, [sp] - movs r1, 0xFF - str r1, [sp, 0x4] - movs r1, 0 - str r1, [sp, 0x8] - movs r1, 0x7 - movs r3, 0 - bl AddTextPrinterParameterized - ldrh r1, [r5] - ldrb r2, [r5, 0x3] - adds r0, r4, 0 - bl sub_81CCD70 - ldrb r0, [r4, 0x8] - movs r1, 0x3 - bl CopyWindowToVram - movs r0, 0 - bl sub_81CCFA4 - b _081CCC40 -_081CCB8E: - ldrb r0, [r4, 0x8] - movs r1, 0x11 - bl FillWindowPixelBuffer - ldrb r0, [r4, 0x8] - movs r1, 0x2 - str r1, [sp] - movs r1, 0 - movs r2, 0 - movs r3, 0xC - bl PutWindowRectTilemap - ldrb r0, [r4, 0x8] - adds r2, r5, 0x4 - movs r1, 0x1 - str r1, [sp] - movs r1, 0xFF - str r1, [sp, 0x4] - movs r1, 0 - str r1, [sp, 0x8] - movs r1, 0x7 - movs r3, 0 - bl AddTextPrinterParameterized - ldr r1, =0x00001041 - movs r0, 0xC - str r0, [sp] - movs r0, 0xB - str r0, [sp, 0x4] - movs r0, 0x11 - str r0, [sp, 0x8] - movs r0, 0x1 - movs r2, 0x11 - movs r3, 0x6 - bl FillBgTilemapBufferRect - b _081CCC0C - .pool -_081CCBDC: - ldrb r0, [r4, 0x8] - movs r1, 0x11 - bl FillWindowPixelBuffer - ldrb r0, [r4, 0x8] - bl PutWindowTilemap - ldrb r0, [r4, 0x8] - adds r2, r5, 0x4 - movs r1, 0x1 - str r1, [sp] - movs r1, 0xFF - str r1, [sp, 0x4] - movs r1, 0 - str r1, [sp, 0x8] - movs r1, 0x7 - movs r3, 0 - bl AddTextPrinterParameterized - ldrh r1, [r5] - ldrb r2, [r5, 0x3] - adds r0, r4, 0 - bl sub_81CCDE8 -_081CCC0C: - ldrb r0, [r4, 0x8] - movs r1, 0x3 - bl CopyWindowToVram - movs r0, 0x1 - bl sub_81CCFA4 - b _081CCC40 -_081CCC1C: - ldr r1, =0x00001041 - movs r0, 0xC - str r0, [sp] - movs r0, 0xD - str r0, [sp, 0x4] - movs r0, 0x11 - str r0, [sp, 0x8] - movs r0, 0x1 - movs r2, 0x11 - movs r3, 0x4 - bl FillBgTilemapBufferRect - movs r0, 0x1 - bl CopyBgTilemapBufferToVram - movs r0, 0x1 - bl sub_81CCFA4 -_081CCC40: - add sp, 0xC - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81CCB0C - - thumb_func_start sub_81CCC4C -sub_81CCC4C: @ 81CCC4C - push {lr} - bl IsDma3ManagerBusyWithBgCopy - lsls r0, 24 - lsrs r0, 24 - pop {r1} - bx r1 - thumb_func_end sub_81CCC4C - - thumb_func_start sub_81CCC5C -sub_81CCC5C: @ 81CCC5C - push {r4,lr} - adds r4, r0, 0 - ldr r0, =sub_81CCC9C - movs r1, 0x3 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - strh r4, [r1, 0x8] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81CCC5C - - thumb_func_start sub_81CCC88 -sub_81CCC88: @ 81CCC88 - push {lr} - ldr r0, =sub_81CCC9C - bl FuncIsActiveTask - lsls r0, 24 - lsrs r0, 24 - pop {r1} - bx r1 - .pool - thumb_func_end sub_81CCC88 - - thumb_func_start sub_81CCC9C -sub_81CCC9C: @ 81CCC9C - push {r4,r5,lr} - lsls r0, 24 - lsrs r4, r0, 24 - adds r5, r4, 0 - ldr r1, =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - movs r1, 0x8 - ldrsh r0, [r0, r1] - cmp r0, 0 - beq _081CCCE0 - movs r1, 0x90 - lsls r1, 3 - movs r0, 0x1 - movs r2, 0x1 - bl ChangeBgY - cmp r0, 0 - blt _081CCCD6 - movs r0, 0x1 - movs r1, 0 - movs r2, 0 - bl ChangeBgY - adds r0, r4, 0 - bl DestroyTask -_081CCCD6: - bl sub_81CCF78 - b _081CCD04 - .pool -_081CCCE0: - movs r1, 0x90 - lsls r1, 3 - movs r0, 0x1 - movs r2, 0x2 - bl ChangeBgY - ldr r1, =0xffffa000 - cmp r0, r1 - bgt _081CCD00 - movs r0, 0x1 - movs r2, 0 - bl ChangeBgY - adds r0, r5, 0 - bl DestroyTask -_081CCD00: - bl sub_81CCF78 -_081CCD04: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81CCC9C - - thumb_func_start sub_81CCD10 -sub_81CCD10: @ 81CCD10 - push {lr} - ldr r0, =sub_81CCD34 - movs r1, 0x1 - bl CreateLoopedTask - pop {r0} - bx r0 - .pool - thumb_func_end sub_81CCD10 - - thumb_func_start sub_81CCD24 -sub_81CCD24: @ 81CCD24 - push {lr} - ldr r0, =sub_81CCD34 - bl FuncIsActiveLoopedTask - pop {r1} - bx r1 - .pool - thumb_func_end sub_81CCD24 - - thumb_func_start sub_81CCD34 -sub_81CCD34: @ 81CCD34 - push {r4,lr} - adds r4, r0, 0 - movs r0, 0x4 - bl GetSubstructPtr - adds r2, r0, 0 - cmp r4, 0x15 - ble _081CCD48 - movs r0, 0x4 - b _081CCD62 -_081CCD48: - ldr r0, =gUnknown_08623118 - lsls r1, r4, 3 - adds r0, 0x4 - adds r1, r0 - ldr r0, [r1] - movs r1, 0xC8 - muls r1, r4 - ldr r3, =0x00000818 - adds r1, r3 - adds r1, r2, r1 - bl LZ77UnCompWram - movs r0, 0x1 -_081CCD62: - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end sub_81CCD34 - - thumb_func_start sub_81CCD70 -sub_81CCD70: @ 81CCD70 - push {r4-r6,lr} - sub sp, 0x8 - adds r6, r0, 0 - adds r3, r1, 0 - movs r4, 0 - ldr r0, =gUnknown_08623118 - ldrh r1, [r0] - adds r5, r0, 0 - cmp r1, r3 - bne _081CCD8A - ldrh r0, [r5, 0x2] - cmp r0, r2 - beq _081CCDA0 -_081CCD8A: - adds r4, 0x1 - cmp r4, 0x15 - bgt _081CCDA0 - lsls r0, r4, 3 - adds r1, r0, r5 - ldrh r0, [r1] - cmp r0, r3 - bne _081CCD8A - ldrh r0, [r1, 0x2] - cmp r0, r2 - bne _081CCD8A -_081CCDA0: - cmp r4, 0x16 - beq _081CCDD4 - ldr r1, =0x00001041 - movs r0, 0xC - str r0, [sp] - movs r0, 0xB - str r0, [sp, 0x4] - movs r0, 0x1 - movs r2, 0x11 - movs r3, 0x6 - bl FillBgTilemapBufferRect_Palette0 - movs r0, 0xC8 - adds r1, r4, 0 - muls r1, r0 - ldr r0, =0x00000818 - adds r1, r0 - adds r1, r6, r1 - movs r0, 0xA - str r0, [sp] - str r0, [sp, 0x4] - movs r0, 0x1 - movs r2, 0x12 - movs r3, 0x6 - bl CopyToBgTilemapBufferRect -_081CCDD4: - add sp, 0x8 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81CCD70 - - thumb_func_start sub_81CCDE8 -sub_81CCDE8: @ 81CCDE8 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0xC - mov r9, r0 - movs r5, 0 - ldr r6, =gStringVar1 - movs r4, 0x88 - lsls r4, 21 - lsls r1, 24 - mov r8, r1 - lsls r7, r2, 24 - b _081CCE34 - .pool -_081CCE08: - adds r0, r6, 0 - movs r2, 0 - movs r3, 0xC - bl StringCopyPadded - mov r1, r9 - ldrb r0, [r1, 0x8] - lsrs r1, r4, 24 - str r1, [sp] - movs r1, 0xFF - str r1, [sp, 0x4] - movs r1, 0 - str r1, [sp, 0x8] - movs r1, 0x7 - adds r2, r6, 0 - movs r3, 0 - bl AddTextPrinterParameterized - movs r0, 0x80 - lsls r0, 21 - adds r4, r0 - adds r5, 0x1 -_081CCE34: - lsls r2, r5, 24 - lsrs r2, 24 - mov r1, r8 - lsrs r0, r1, 24 - lsrs r1, r7, 24 - bl GetLandmarkName - adds r1, r0, 0 - cmp r1, 0 - bne _081CCE08 - add sp, 0xC - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_81CCDE8 - - thumb_func_start sub_81CCE58 -sub_81CCE58: @ 81CCE58 - push {r4-r7,lr} - mov r7, r8 - push {r7} - movs r0, 0x4 - bl GetSubstructPtr - adds r4, r0, 0 - bl sub_8124658 - lsls r0, 24 - movs r2, 0x84 - cmp r0, 0 - bne _081CCE74 - movs r2, 0xE4 -_081CCE74: - movs r5, 0 - lsls r7, r2, 16 - adds r4, 0xC - mov r8, r4 - movs r6, 0x98 - lsls r6, 16 -_081CCE80: - asrs r1, r6, 16 - ldr r0, =gUnknown_086231D0 - asrs r2, r7, 16 - movs r3, 0x8 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - ldr r0, =gSprites - adds r2, r0 - movs r0, 0 - strh r0, [r2, 0x2E] - lsls r4, r5, 2 - strh r4, [r2, 0x30] - ldrh r3, [r2, 0x4] - lsls r1, r3, 22 - lsrs r0, r1, 22 - adds r1, r0, 0 - strh r0, [r2, 0x32] - movs r0, 0x96 - strh r0, [r2, 0x34] - strh r4, [r2, 0x36] - adds r1, r4 - ldr r4, =0x000003ff - adds r0, r4, 0 - ands r1, r0 - ldr r4, =0xfffffc00 - adds r0, r4, 0 - ands r3, r0 - orrs r3, r1 - strh r3, [r2, 0x4] - mov r0, r8 - adds r0, 0x4 - mov r8, r0 - subs r0, 0x4 - stm r0!, {r2} - movs r4, 0x80 - lsls r4, 14 - adds r6, r4 - adds r5, 0x1 - cmp r5, 0x2 - ble _081CCE80 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81CCE58 - - thumb_func_start sub_81CCEF4 -sub_81CCEF4: @ 81CCEF4 - push {r4,r5,lr} - adds r3, r0, 0 - ldrh r0, [r3, 0x34] - movs r1, 0x34 - ldrsh r4, [r3, r1] - cmp r4, 0 - beq _081CCF06 - subs r0, 0x1 - b _081CCF6E -_081CCF06: - ldrh r0, [r3, 0x2E] - adds r0, 0x1 - strh r0, [r3, 0x2E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0xB - ble _081CCF16 - strh r4, [r3, 0x2E] -_081CCF16: - ldrh r0, [r3, 0x30] - adds r0, 0x1 - strh r0, [r3, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x3C - ble _081CCF26 - strh r4, [r3, 0x30] -_081CCF26: - ldrh r5, [r3, 0x30] - ldrh r2, [r3, 0x32] - adds r1, r5, r2 - ldr r2, =0x000003ff - adds r0, r2, 0 - ands r1, r0 - ldrh r2, [r3, 0x4] - ldr r0, =0xfffffc00 - ands r0, r2 - orrs r0, r1 - strh r0, [r3, 0x4] - ldrh r1, [r3, 0x38] - movs r2, 0x38 - ldrsh r0, [r3, r2] - cmp r0, 0x3 - bgt _081CCF5C - movs r2, 0x2E - ldrsh r0, [r3, r2] - cmp r0, 0 - bne _081CCF70 - adds r0, r1, 0x1 - strh r0, [r3, 0x38] - b _081CCF6C - .pool -_081CCF5C: - lsls r0, r5, 16 - asrs r0, 16 - movs r2, 0x36 - ldrsh r1, [r3, r2] - cmp r0, r1 - bne _081CCF70 - strh r4, [r3, 0x38] - strh r4, [r3, 0x2E] -_081CCF6C: - movs r0, 0x78 -_081CCF6E: - strh r0, [r3, 0x34] -_081CCF70: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_81CCEF4 - - thumb_func_start sub_81CCF78 -sub_81CCF78: @ 81CCF78 - push {r4,lr} - movs r0, 0x4 - bl GetSubstructPtr - adds r4, r0, 0 - movs r0, 0x1 - bl GetBgY - asrs r0, 8 - movs r1, 0x84 - subs r1, r0 - adds r4, 0xC - movs r2, 0x2 -_081CCF92: - ldm r4!, {r0} - strh r1, [r0, 0x22] - subs r2, 0x1 - cmp r2, 0 - bge _081CCF92 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_81CCF78 - - thumb_func_start sub_81CCFA4 -sub_81CCFA4: @ 81CCFA4 - push {r4-r6,lr} - adds r4, r0, 0 - movs r0, 0x4 - bl GetSubstructPtr - movs r1, 0x1 - ands r4, r1 - lsls r5, r4, 2 - movs r6, 0x5 - negs r6, r6 - adds r4, r0, 0 - adds r4, 0xC - movs r3, 0x2 -_081CCFBE: - ldm r4!, {r0} - adds r0, 0x3E - ldrb r2, [r0] - adds r1, r6, 0 - ands r1, r2 - orrs r1, r5 - strb r1, [r0] - subs r3, 0x1 - cmp r3, 0 - bge _081CCFBE - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_81CCFA4 - - thumb_func_start sub_81CCFD8 -sub_81CCFD8: @ 81CCFD8 - push {r4,lr} - ldr r1, =0x0000678c - movs r0, 0xB - bl AllocSubstruct - adds r4, r0, 0 - cmp r4, 0 - beq _081CD01C - ldr r1, =0x00006428 - adds r0, r4, r1 - bl sub_81D1ED4 - bl sub_81CD970 - ldr r1, =gKeyRepeatStartDelay - movs r0, 0x14 - strh r0, [r1] - ldr r0, =0x00006304 - adds r1, r4, r0 - ldr r0, =sub_81CD08C - str r0, [r1] - movs r0, 0x1 - b _081CD01E - .pool -_081CD01C: - movs r0, 0 -_081CD01E: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_81CCFD8 - - thumb_func_start sub_81CD024 -sub_81CD024: @ 81CD024 - push {r4,lr} - ldr r1, =0x0000678c - movs r0, 0xB - bl AllocSubstruct - adds r4, r0, 0 - cmp r4, 0 - beq _081CD068 - ldr r1, =0x00006428 - adds r0, r4, r1 - bl sub_81D1ED4 - bl sub_81CD9F8 - ldr r1, =gKeyRepeatStartDelay - movs r0, 0x14 - strh r0, [r1] - ldr r0, =0x00006304 - adds r1, r4, r0 - ldr r0, =sub_81CD08C - str r0, [r1] - movs r0, 0x1 - b _081CD06A - .pool -_081CD068: - movs r0, 0 -_081CD06A: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_81CD024 - - thumb_func_start sub_81CD070 -sub_81CD070: @ 81CD070 - push {lr} - movs r0, 0xB - bl GetSubstructPtr - ldr r2, =0x00006304 - adds r1, r0, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {r1} - bx r1 - .pool - thumb_func_end sub_81CD070 - - thumb_func_start sub_81CD08C -sub_81CD08C: @ 81CD08C - push {r4,r5,lr} - adds r4, r0, 0 - movs r0, 0x12 - bl GetSubstructPtr - adds r5, r0, 0 - adds r0, r4, 0 - bl sub_81CD1E4 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0 - bne _081CD100 - ldr r0, =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - bne _081CD0D0 - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _081CD100 - movs r1, 0xC6 - lsls r1, 7 - adds r0, r4, r1 - ldrb r0, [r0] - cmp r0, 0 - bne _081CD0F0 - ldrh r1, [r5, 0x2] - ldrh r0, [r5] - subs r0, 0x1 - cmp r1, r0 - bne _081CD100 -_081CD0D0: - movs r0, 0x5 - bl PlaySE - ldr r0, =0x00006304 - adds r1, r4, r0 - ldr r0, =sub_81CD19C - str r0, [r1] - movs r2, 0x2 - b _081CD100 - .pool -_081CD0F0: - movs r0, 0x5 - bl PlaySE - movs r2, 0x5 - ldr r0, =0x00006304 - adds r1, r4, r0 - ldr r0, =sub_81CD110 - str r0, [r1] -_081CD100: - adds r0, r2, 0 - pop {r4,r5} - pop {r1} - bx r1 - .pool - thumb_func_end sub_81CD08C - - thumb_func_start sub_81CD110 -sub_81CD110: @ 81CD110 - push {r4-r6,lr} - sub sp, 0x4 - adds r6, r0, 0 - movs r4, 0 - bl sub_811FBA4 - lsls r0, 24 - cmp r0, 0 - bne _081CD18A - bl sub_81CEF14 - ldr r1, =0x00006786 - adds r5, r6, r1 - movs r1, 0 - ldrsb r1, [r5, r1] - ldr r2, =0x00006783 - adds r4, r6, r2 - adds r1, r4, r1 - strb r0, [r1] - movs r0, 0x12 - bl GetSubstructPtr - ldrh r1, [r0, 0x2] - lsls r1, 2 - adds r0, r1 - ldrb r2, [r0, 0x4] - ldrb r3, [r0, 0x5] - movs r0, 0 - ldrsb r0, [r5, r0] - adds r4, r0 - ldrb r1, [r4] - mov r0, sp - strb r1, [r0] - cmp r2, 0xE - bne _081CD174 - movs r0, 0x64 - muls r0, r3 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x8 - mov r2, sp - bl SetMonData - b _081CD180 - .pool -_081CD174: - adds r0, r2, 0 - adds r1, r3, 0 - movs r2, 0x8 - mov r3, sp - bl SetBoxMonDataAt -_081CD180: - ldr r0, =0x00006304 - adds r1, r6, r0 - ldr r0, =sub_81CD08C - str r0, [r1] - movs r4, 0x6 -_081CD18A: - adds r0, r4, 0 - add sp, 0x4 - pop {r4-r6} - pop {r1} - bx r1 - .pool - thumb_func_end sub_81CD110 - - thumb_func_start sub_81CD19C -sub_81CD19C: @ 81CD19C - push {lr} - movs r1, 0xC6 - lsls r1, 7 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0 - beq _081CD1B4 - ldr r0, =0x000186aa - b _081CD1B6 - .pool -_081CD1B4: - ldr r0, =0x000186a2 -_081CD1B6: - pop {r1} - bx r1 - .pool - thumb_func_end sub_81CD19C - - thumb_func_start sub_81CD1C0 -sub_81CD1C0: @ 81CD1C0 - push {lr} - movs r0, 0xB - bl GetSubstructPtr - movs r1, 0xC6 - lsls r1, 7 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0 - bne _081CD1DA - movs r0, 0x12 - bl FreePokenavSubstruct -_081CD1DA: - movs r0, 0xB - bl FreePokenavSubstruct - pop {r0} - bx r0 - thumb_func_end sub_81CD1C0 - - thumb_func_start sub_81CD1E4 -sub_81CD1E4: @ 81CD1E4 - push {r4,lr} - adds r4, r0, 0 - movs r0, 0x12 - bl GetSubstructPtr - adds r2, r0, 0 - movs r3, 0 - ldr r0, =gMain - ldrh r1, [r0, 0x2C] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _081CD220 - movs r1, 0xC6 - lsls r1, 7 - adds r0, r4, r1 - ldrb r0, [r0] - cmp r0, 0 - beq _081CD210 - ldrh r0, [r2, 0x2] - cmp r0, 0 - beq _081CD24E -_081CD210: - movs r0, 0x5 - bl PlaySE - movs r0, 0x1 - b _081CD246 - .pool -_081CD220: - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _081CD24E - movs r1, 0xC6 - lsls r1, 7 - adds r0, r4, r1 - ldrb r0, [r0] - cmp r0, 0 - beq _081CD23E - ldrh r1, [r2, 0x2] - ldrh r0, [r2] - subs r0, 0x1 - cmp r1, r0 - bge _081CD24E -_081CD23E: - movs r0, 0x5 - bl PlaySE - movs r0, 0 -_081CD246: - bl sub_81CD258 - lsls r0, 24 - lsrs r3, r0, 24 -_081CD24E: - adds r0, r3, 0 - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_81CD1E4 - - thumb_func_start sub_81CD258 -sub_81CD258: @ 81CD258 - push {r4-r7,lr} - mov r7, r8 - push {r7} - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - movs r0, 0xB - bl GetSubstructPtr - adds r4, r0, 0 - movs r0, 0x12 - bl GetSubstructPtr - adds r5, r0, 0 - mov r0, r8 - cmp r0, 0 - beq _081CD284 - ldr r1, =0x00006788 - adds r0, r4, r1 - b _081CD288 - .pool -_081CD284: - ldr r2, =0x00006787 - adds r0, r4, r2 -_081CD288: - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - lsls r0, 16 - lsrs r0, 16 - adds r7, r0, 0 - ldr r1, =0x00006428 - adds r0, r4, r1 - ldr r2, =0x00006786 - adds r1, r4, r2 - movs r2, 0 - ldrsb r2, [r1, r2] - lsls r1, r2, 2 - adds r1, r2 - lsls r1, 2 - ldr r3, =0x0000643c - adds r1, r3 - adds r1, r4, r1 - lsls r2, r7, 2 - adds r2, r7 - lsls r2, 2 - adds r2, r3 - adds r2, r4, r2 - bl sub_81D1F84 - ldrh r6, [r5, 0x2] - bl sub_81CDD5C - cmp r0, 0 - beq _081CD2D8 - ldrh r1, [r5] - b _081CD2DC - .pool -_081CD2D8: - ldrh r1, [r5] - subs r1, 0x1 -_081CD2DC: - eors r1, r6 - negs r0, r1 - orrs r0, r1 - lsrs r0, 31 - adds r6, r0, 0 - mov r0, r8 - cmp r0, 0 - beq _081CD332 - ldr r1, =0x00006787 - adds r2, r4, r1 - ldrb r0, [r2] - adds r1, 0x1 - adds r3, r4, r1 - strb r0, [r3] - ldr r0, =0x00006786 - adds r1, r4, r0 - ldrb r0, [r1] - strb r0, [r2] - strb r7, [r1] - ldrb r1, [r3] - ldr r2, =0x00006789 - adds r0, r4, r2 - strb r1, [r0] - ldrh r0, [r5, 0x2] - cmp r0, 0 - bne _081CD312 - ldrh r0, [r5] -_081CD312: - subs r1, r0, 0x1 - strh r1, [r5, 0x2] - lsls r0, r1, 16 - cmp r0, 0 - beq _081CD32C - subs r1, 0x1 - b _081CD384 - .pool -_081CD32C: - ldrh r0, [r5] - subs r1, r0, 0x1 - b _081CD384 -_081CD332: - ldr r0, =0x00006788 - adds r2, r4, r0 - ldrb r0, [r2] - ldr r1, =0x00006787 - adds r3, r4, r1 - strb r0, [r3] - ldr r0, =0x00006786 - adds r1, r4, r0 - ldrb r0, [r1] - strb r0, [r2] - strb r7, [r1] - ldrb r1, [r3] - ldr r2, =0x00006789 - adds r0, r4, r2 - strb r1, [r0] - ldrh r1, [r5, 0x2] - ldrh r0, [r5] - subs r0, 0x1 - cmp r1, r0 - bge _081CD370 - adds r0, r1, 0x1 - b _081CD372 - .pool -_081CD370: - movs r0, 0 -_081CD372: - strh r0, [r5, 0x2] - ldrh r1, [r5, 0x2] - ldrh r0, [r5] - subs r0, 0x1 - cmp r1, r0 - bge _081CD382 - adds r1, 0x1 - b _081CD384 -_081CD382: - movs r1, 0 -_081CD384: - ldr r2, =0x00006302 - adds r0, r4, r2 - strh r1, [r0] - ldrh r4, [r5, 0x2] - bl sub_81CDD5C - cmp r0, 0 - beq _081CD39C - ldrh r1, [r5] - b _081CD3A0 - .pool -_081CD39C: - ldrh r1, [r5] - subs r1, 0x1 -_081CD3A0: - eors r1, r4 - negs r0, r1 - orrs r0, r1 - lsrs r0, 31 - cmp r6, 0 - bne _081CD3B0 - movs r0, 0x3 - b _081CD3BA -_081CD3B0: - cmp r0, 0 - beq _081CD3B8 - movs r0, 0x1 - b _081CD3BA -_081CD3B8: - movs r0, 0x4 -_081CD3BA: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_81CD258 - - thumb_func_start sub_81CD3C4 -sub_81CD3C4: @ 81CD3C4 - push {r4,lr} - movs r0, 0xB - bl GetSubstructPtr - adds r4, r0, 0 - movs r0, 0x12 - bl GetSubstructPtr - adds r2, r0, 0 - ldr r1, =0x0000678a - adds r0, r4, r1 - ldrb r0, [r0] - cmp r0, 0x9 - bls _081CD3E2 - b _081CD530 -_081CD3E2: - lsls r0, 2 - ldr r1, =_081CD3F4 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_081CD3F4: - .4byte _081CD41C - .4byte _081CD428 - .4byte _081CD434 - .4byte _081CD440 - .4byte _081CD490 - .4byte _081CD4A8 - .4byte _081CD4C0 - .4byte _081CD4D8 - .4byte _081CD4F0 - .4byte _081CD508 -_081CD41C: - movs r1, 0x2 - ldrsh r0, [r2, r1] - movs r1, 0 - bl sub_81CD824 - b _081CD530 -_081CD428: - movs r1, 0x2 - ldrsh r0, [r2, r1] - movs r1, 0 - bl sub_81CDA1C - b _081CD530 -_081CD434: - movs r1, 0x2 - ldrsh r0, [r2, r1] - movs r1, 0 - bl sub_81CDB98 - b _081CD530 -_081CD440: - ldrh r0, [r2] - cmp r0, 0x1 - bne _081CD468 - ldr r2, =0x00006786 - adds r0, r4, r2 - movs r1, 0 - strb r1, [r0] - adds r2, 0x1 - adds r0, r4, r2 - strb r1, [r0] - adds r2, 0x1 - adds r0, r4, r2 - strb r1, [r0] - adds r2, 0x2 - adds r0, r4, r2 - strb r1, [r0] - movs r0, 0x1 - b _081CD53C - .pool -_081CD468: - ldr r0, =0x00006786 - adds r1, r4, r0 - movs r0, 0 - strb r0, [r1] - ldr r2, =0x00006787 - adds r1, r4, r2 - movs r0, 0x1 - strb r0, [r1] - ldr r0, =0x00006788 - adds r1, r4, r0 - movs r0, 0x2 - strb r0, [r1] - b _081CD530 - .pool -_081CD490: - ldrh r0, [r2, 0x2] - adds r0, 0x1 - ldrh r2, [r2] - cmp r0, r2 - blt _081CD49C - movs r0, 0 -_081CD49C: - lsls r0, 16 - asrs r0, 16 - movs r1, 0x1 - bl sub_81CD824 - b _081CD530 -_081CD4A8: - ldrh r0, [r2, 0x2] - adds r0, 0x1 - ldrh r2, [r2] - cmp r0, r2 - blt _081CD4B4 - movs r0, 0 -_081CD4B4: - lsls r0, 16 - asrs r0, 16 - movs r1, 0x1 - bl sub_81CDA1C - b _081CD530 -_081CD4C0: - ldrh r0, [r2, 0x2] - adds r0, 0x1 - ldrh r2, [r2] - cmp r0, r2 - blt _081CD4CC - movs r0, 0 -_081CD4CC: - lsls r0, 16 - asrs r0, 16 - movs r1, 0x1 - bl sub_81CDB98 - b _081CD530 -_081CD4D8: - ldrh r0, [r2, 0x2] - subs r0, 0x1 - cmp r0, 0 - bge _081CD4E4 - ldrh r0, [r2] - subs r0, 0x1 -_081CD4E4: - lsls r0, 16 - asrs r0, 16 - movs r1, 0x2 - bl sub_81CD824 - b _081CD530 -_081CD4F0: - ldrh r0, [r2, 0x2] - subs r0, 0x1 - cmp r0, 0 - bge _081CD4FC - ldrh r0, [r2] - subs r0, 0x1 -_081CD4FC: - lsls r0, 16 - asrs r0, 16 - movs r1, 0x2 - bl sub_81CDA1C - b _081CD530 -_081CD508: - ldrh r0, [r2, 0x2] - subs r0, 0x1 - cmp r0, 0 - bge _081CD514 - ldrh r0, [r2] - subs r0, 0x1 -_081CD514: - lsls r0, 16 - asrs r0, 16 - movs r1, 0x2 - bl sub_81CDB98 - ldr r2, =0x0000678a - adds r1, r4, r2 - movs r0, 0 - strb r0, [r1] - movs r0, 0x1 - b _081CD53C - .pool -_081CD530: - ldr r0, =0x0000678a - adds r1, r4, r0 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - movs r0, 0 -_081CD53C: - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end sub_81CD3C4 - - thumb_func_start sub_81CD548 -sub_81CD548: @ 81CD548 - push {r4,r5,lr} - lsls r0, 24 - lsrs r4, r0, 24 - adds r5, r4, 0 - movs r0, 0xB - bl GetSubstructPtr - adds r1, r0, 0 - cmp r4, 0x1 - beq _081CD588 - cmp r4, 0x1 - bgt _081CD566 - cmp r4, 0 - beq _081CD56C - b _081CD5C4 -_081CD566: - cmp r5, 0x2 - beq _081CD5A4 - b _081CD5C4 -_081CD56C: - ldr r2, =0x00006302 - adds r0, r1, r2 - movs r2, 0 - ldrsh r0, [r0, r2] - ldr r2, =0x00006789 - adds r1, r2 - ldrb r1, [r1] - bl sub_81CD824 - b _081CD5C4 - .pool -_081CD588: - ldr r2, =0x00006302 - adds r0, r1, r2 - movs r2, 0 - ldrsh r0, [r0, r2] - ldr r2, =0x00006789 - adds r1, r2 - ldrb r1, [r1] - bl sub_81CDA1C - b _081CD5C4 - .pool -_081CD5A4: - ldr r2, =0x00006302 - adds r0, r1, r2 - movs r2, 0 - ldrsh r0, [r0, r2] - ldr r2, =0x00006789 - adds r1, r2 - ldrb r1, [r1] - bl sub_81CDB98 - movs r0, 0x1 - b _081CD5C6 - .pool -_081CD5C4: - movs r0, 0 -_081CD5C6: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_81CD548 - - thumb_func_start sub_81CD5CC -sub_81CD5CC: @ 81CD5CC - push {r4,lr} - adds r4, r0, 0 - lsls r2, 16 - lsrs r2, 16 - b _081CD5E4 -_081CD5D6: - strb r3, [r4] - adds r1, 0x1 - adds r4, 0x1 - lsls r0, r2, 16 - ldr r2, =0xffff0000 - adds r0, r2 - lsrs r2, r0, 16 -_081CD5E4: - ldrb r3, [r1] - adds r0, r3, 0 - cmp r0, 0xFF - bne _081CD5D6 - adds r1, r2, 0 - lsls r0, r1, 16 - ldr r2, =0xffff0000 - adds r0, r2 - lsrs r2, r0, 16 - lsls r1, 16 - cmp r1, 0 - ble _081CD612 - movs r3, 0 -_081CD5FE: - strb r3, [r4] - adds r4, 0x1 - adds r1, r2, 0 - lsls r0, r1, 16 - ldr r2, =0xffff0000 - adds r0, r2 - lsrs r2, r0, 16 - lsls r1, 16 - cmp r1, 0 - bgt _081CD5FE -_081CD612: - movs r0, 0xFF - strb r0, [r4] - adds r0, r4, 0 - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end sub_81CD5CC - - thumb_func_start sub_81CD624 -sub_81CD624: @ 81CD624 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - adds r5, r0, 0 - adds r4, r1, 0 - lsls r4, 16 - lsrs r4, 16 - lsls r2, 24 - lsrs r2, 24 - mov r10, r2 - movs r0, 0x12 - bl GetSubstructPtr - lsls r4, 2 - adds r0, r4 - ldrb r4, [r0, 0x4] - mov r8, r4 - ldrb r6, [r0, 0x5] - mov r9, r6 - movs r0, 0xFC - strb r0, [r5] - adds r5, 0x1 - movs r0, 0x4 - strb r0, [r5] - adds r5, 0x1 - movs r0, 0x8 - strb r0, [r5] - adds r5, 0x1 - movs r0, 0 - strb r0, [r5] - adds r5, 0x1 - movs r0, 0x9 - strb r0, [r5] - adds r5, 0x1 - adds r0, r4, 0 - adds r1, r6, 0 - movs r2, 0x2D - movs r3, 0 - bl GetBoxOrPartyMonData - cmp r0, 0 - beq _081CD690 - ldr r1, =gText_EggNickname - adds r0, r5, 0 - movs r2, 0 - movs r3, 0xC - bl StringCopyPadded - b _081CD80E - .pool -_081CD690: - adds r0, r4, 0 - adds r1, r6, 0 - movs r2, 0x2 - adds r3, r5, 0 - bl GetBoxOrPartyMonData - adds r0, r5, 0 - bl StringGetEnd10 - adds r0, r4, 0 - adds r1, r6, 0 - movs r2, 0xB - movs r3, 0 - bl GetBoxOrPartyMonData - lsls r0, 16 - lsrs r7, r0, 16 - cmp r4, 0xE - bne _081CD6E0 - movs r0, 0x64 - adds r4, r6, 0 - muls r4, r0 - ldr r0, =gPlayerParty - adds r4, r0 - adds r0, r4, 0 - movs r1, 0x38 - bl GetMonData - lsls r0, 16 - lsrs r0, 16 - mov r8, r0 - adds r0, r4, 0 - bl GetMonGender - lsls r0, 24 - lsrs r6, r0, 24 - b _081CD6FE - .pool -_081CD6E0: - mov r0, r8 - mov r1, r9 - bl GetBoxedMonPtr - adds r4, r0, 0 - bl GetBoxMonGender - lsls r0, 24 - lsrs r6, r0, 24 - adds r0, r4, 0 - bl GetLevelFromBoxMonExp - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 -_081CD6FE: - cmp r7, 0x1D - beq _081CD706 - cmp r7, 0x20 - bne _081CD71C -_081CD706: - movs r0, 0xB - adds r1, r7, 0 - muls r1, r0 - ldr r0, =gSpeciesNames - adds r1, r0 - adds r0, r5, 0 - bl StringCompare - cmp r0, 0 - bne _081CD71C - movs r6, 0xFF -_081CD71C: - adds r3, r5, 0 - b _081CD726 - .pool -_081CD724: - adds r3, 0x1 -_081CD726: - ldrb r0, [r3] - cmp r0, 0xFF - bne _081CD724 - movs r1, 0xFC - strb r1, [r3] - adds r3, 0x1 - movs r0, 0x12 - strb r0, [r3] - adds r3, 0x1 - movs r0, 0x3C - strb r0, [r3] - adds r3, 0x1 - cmp r6, 0 - beq _081CD74A - cmp r6, 0xFE - beq _081CD76E - movs r0, 0x77 - b _081CD790 -_081CD74A: - strb r1, [r3] - adds r3, 0x1 - movs r0, 0x1 - strb r0, [r3] - adds r3, 0x1 - movs r0, 0x4 - strb r0, [r3] - adds r3, 0x1 - strb r1, [r3] - adds r3, 0x1 - movs r0, 0x3 - strb r0, [r3] - adds r3, 0x1 - movs r0, 0x5 - strb r0, [r3] - adds r3, 0x1 - movs r0, 0xB5 - b _081CD790 -_081CD76E: - strb r1, [r3] - adds r3, 0x1 - movs r0, 0x1 - strb r0, [r3] - adds r3, 0x1 - movs r0, 0x6 - strb r0, [r3] - adds r3, 0x1 - strb r1, [r3] - adds r3, 0x1 - movs r0, 0x3 - strb r0, [r3] - adds r3, 0x1 - movs r0, 0x7 - strb r0, [r3] - adds r3, 0x1 - movs r0, 0xB6 -_081CD790: - strb r0, [r3] - adds r3, 0x1 - movs r0, 0xFC - strb r0, [r3] - adds r3, 0x1 - movs r0, 0x4 - strb r0, [r3] - adds r3, 0x1 - movs r0, 0x8 - strb r0, [r3] - adds r3, 0x1 - movs r5, 0 - strb r5, [r3] - adds r3, 0x1 - movs r0, 0x9 - strb r0, [r3] - adds r3, 0x1 - movs r0, 0xBA - strb r0, [r3] - adds r3, 0x1 - movs r0, 0xF9 - strb r0, [r3] - adds r3, 0x1 - movs r0, 0x5 - strb r0, [r3] - adds r3, 0x1 - adds r4, r3, 0 - adds r0, r4, 0 - mov r1, r8 - movs r2, 0 - movs r3, 0x3 - bl ConvertIntToDecimalStringN - adds r3, r0, 0 - subs r4, r3, r4 - lsls r4, 16 - lsrs r4, 16 - strb r5, [r3] - adds r3, 0x1 - mov r0, r10 - cmp r0, 0 - bne _081CD808 - movs r0, 0x3 - subs r0, r4 - lsls r0, 16 - ldr r1, =0xffff0000 - adds r0, r1 - lsrs r4, r0, 16 - ldr r0, =0x0000ffff - cmp r4, r0 - beq _081CD808 - movs r2, 0 - adds r1, r0, 0 -_081CD7FA: - strb r2, [r3] - adds r3, 0x1 - subs r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, r1 - bne _081CD7FA -_081CD808: - movs r0, 0xFF - strb r0, [r3] - adds r0, r3, 0 -_081CD80E: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - .pool - thumb_func_end sub_81CD624 - - thumb_func_start sub_81CD824 -sub_81CD824: @ 81CD824 - push {r4-r7,lr} - mov r7, r8 - push {r7} - lsls r0, 16 - lsrs r0, 16 - mov r8, r0 - lsls r1, 24 - lsrs r6, r1, 24 - movs r0, 0xB - bl GetSubstructPtr - adds r5, r0, 0 - movs r0, 0x12 - bl GetSubstructPtr - adds r7, r0, 0 - mov r1, r8 - lsls r0, r1, 16 - asrs r4, r0, 16 - bl sub_81CDD5C - cmp r0, 0 - beq _081CD85A - ldrh r2, [r7] - cmp r4, r2 - bne _081CD862 - b _081CD900 -_081CD85A: - ldrh r0, [r7] - subs r0, 0x1 - cmp r4, r0 - beq _081CD900 -_081CD862: - lsls r0, r6, 6 - ldr r1, =0x00006368 - adds r0, r1 - adds r0, r5, r0 - mov r2, r8 - lsls r4, r2, 16 - lsrs r1, r4, 16 - movs r2, 0 - bl sub_81CD624 - asrs r4, 14 - adds r4, r7, r4 - ldrb r3, [r4, 0x4] - lsls r0, r6, 1 - adds r0, r6 - lsls r4, r0, 3 - ldr r1, =0x00006320 - adds r0, r5, r1 - adds r0, r4 - movs r2, 0 - movs r1, 0xFC - strb r1, [r0] - ldr r1, =0x00006321 - adds r0, r5, r1 - adds r0, r4 - movs r1, 0x4 - strb r1, [r0] - ldr r1, =0x00006322 - adds r0, r5, r1 - adds r0, r4 - movs r1, 0x8 - strb r1, [r0] - ldr r1, =0x00006323 - adds r0, r5, r1 - adds r0, r4 - strb r2, [r0] - ldr r2, =0x00006324 - adds r0, r5, r2 - adds r0, r4 - movs r1, 0x9 - strb r1, [r0] - cmp r3, 0xE - bne _081CD8E4 - adds r0, r4, r5 - ldr r1, =0x00006325 - adds r0, r1 - ldr r1, =gText_InParty - b _081CD8F4 - .pool -_081CD8E4: - adds r4, r5 - ldr r2, =0x00006325 - adds r4, r2 - adds r0, r3, 0 - bl GetBoxNamePtr - adds r1, r0, 0 - adds r0, r4, 0 -_081CD8F4: - movs r2, 0x8 - bl sub_81CD5CC - b _081CD95C - .pool -_081CD900: - movs r1, 0 - lsls r4, r6, 6 - lsls r0, r6, 1 - mov r8, r0 - adds r3, r4, 0 - ldr r0, =0x00006368 - adds r2, r5, r0 - movs r7, 0 -_081CD910: - adds r0, r1, r3 - adds r0, r2, r0 - strb r7, [r0] - adds r0, r1, 0x1 - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, 0xB - bls _081CD910 - adds r1, r4 - ldr r2, =0x00006368 - adds r0, r5, r2 - adds r0, r1 - movs r1, 0xFF - strb r1, [r0] - movs r1, 0 - mov r2, r8 - adds r0, r2, r6 - lsls r3, r0, 3 - ldr r0, =0x00006320 - adds r2, r5, r0 - movs r4, 0 -_081CD93A: - adds r0, r1, r3 - adds r0, r2, r0 - strb r4, [r0] - adds r0, r1, 0x1 - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, 0x7 - bls _081CD93A - mov r2, r8 - adds r0, r2, r6 - lsls r0, 3 - adds r0, r1, r0 - ldr r2, =0x00006320 - adds r1, r5, r2 - adds r1, r0 - movs r0, 0xFF - strb r0, [r1] -_081CD95C: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81CD824 - - thumb_func_start sub_81CD970 -sub_81CD970: @ 81CD970 - push {r4-r7,lr} - movs r0, 0xB - bl GetSubstructPtr - adds r7, r0, 0 - ldr r1, =0x000006ac - movs r0, 0x12 - bl AllocSubstruct - adds r6, r0, 0 - movs r0, 0xC6 - lsls r0, 7 - adds r1, r7, r0 - movs r0, 0 - strb r0, [r1] - movs r4, 0 - movs r5, 0 - b _081CD9C4 - .pool -_081CD998: - movs r0, 0x64 - muls r0, r4 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x2D - bl GetMonData - adds r2, r0, 0 - cmp r2, 0 - bne _081CD9BE - lsls r1, r5, 2 - adds r1, r6, r1 - movs r0, 0xE - strb r0, [r1, 0x4] - strb r4, [r1, 0x5] - strh r2, [r1, 0x6] - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 -_081CD9BE: - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 -_081CD9C4: - bl CalculatePlayerPartyCount - lsls r0, 24 - lsrs r0, 24 - cmp r4, r0 - bcc _081CD998 - lsls r0, r5, 2 - adds r0, r6, r0 - movs r1, 0 - strb r1, [r0, 0x4] - strb r1, [r0, 0x5] - movs r2, 0 - strh r1, [r0, 0x6] - strh r1, [r6, 0x2] - adds r0, r5, 0x1 - strh r0, [r6] - ldr r1, =0x0000678a - adds r0, r7, r1 - strb r2, [r0] - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81CD970 - - thumb_func_start sub_81CD9F8 -sub_81CD9F8: @ 81CD9F8 - push {lr} - movs r0, 0xB - bl GetSubstructPtr - movs r1, 0xC6 - lsls r1, 7 - adds r2, r0, r1 - movs r3, 0 - movs r1, 0x1 - strb r1, [r2] - ldr r1, =0x0000678a - adds r0, r1 - strb r3, [r0] - pop {r0} - bx r0 - .pool - thumb_func_end sub_81CD9F8 - - thumb_func_start sub_81CDA1C -sub_81CDA1C: @ 81CDA1C - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - lsls r0, 16 - lsrs r6, r0, 16 - lsls r1, 24 - lsrs r1, 24 - mov r9, r1 - movs r0, 0xB - bl GetSubstructPtr - mov r8, r0 - movs r0, 0x12 - bl GetSubstructPtr - adds r4, r0, 0 - lsls r0, r6, 16 - asrs r5, r0, 16 - bl sub_81CDD5C - cmp r0, 0 - beq _081CDA52 - ldrh r0, [r4] - cmp r5, r0 - bne _081CDA5A - b _081CDB48 -_081CDA52: - ldrh r0, [r4] - subs r0, 0x1 - cmp r5, r0 - beq _081CDB48 -_081CDA5A: - lsls r0, r6, 16 - asrs r0, 14 - adds r0, r4, r0 - ldrb r6, [r0, 0x4] - ldrb r7, [r0, 0x5] - adds r0, r6, 0 - adds r1, r7, 0 - movs r2, 0x16 - movs r3, 0 - bl GetBoxOrPartyMonData - mov r1, r9 - lsls r5, r1, 2 - adds r4, r5, r1 - ldr r1, =0x00006428 - add r1, r8 - adds r1, r4 - strb r0, [r1] - adds r0, r6, 0 - adds r1, r7, 0 - movs r2, 0x2F - movs r3, 0 - bl GetBoxOrPartyMonData - ldr r1, =0x00006429 - add r1, r8 - adds r1, r4 - strb r0, [r1] - adds r0, r6, 0 - adds r1, r7, 0 - movs r2, 0x21 - movs r3, 0 - bl GetBoxOrPartyMonData - ldr r1, =0x0000642a - add r1, r8 - adds r1, r4 - strb r0, [r1] - adds r0, r6, 0 - adds r1, r7, 0 - movs r2, 0x18 - movs r3, 0 - bl GetBoxOrPartyMonData - ldr r1, =0x0000642b - add r1, r8 - adds r1, r4 - strb r0, [r1] - adds r0, r6, 0 - adds r1, r7, 0 - movs r2, 0x17 - movs r3, 0 - bl GetBoxOrPartyMonData - ldr r1, =0x0000642c - add r1, r8 - adds r1, r4 - strb r0, [r1] - movs r0, 0xCF - lsls r0, 7 - add r0, r8 - mov r2, r9 - adds r4, r0, r2 - adds r0, r6, 0 - adds r1, r7, 0 - movs r2, 0x30 - movs r3, 0 - bl GetBoxOrPartyMonData - cmp r0, 0xFF - beq _081CDB10 - adds r0, r6, 0 - adds r1, r7, 0 - movs r2, 0x30 - movs r3, 0 - bl GetBoxOrPartyMonData - movs r1, 0x1D - bl __udivsi3 - b _081CDB12 - .pool -_081CDB10: - movs r0, 0x9 -_081CDB12: - strb r0, [r4] - adds r0, r6, 0 - adds r1, r7, 0 - movs r2, 0x8 - movs r3, 0 - bl GetBoxOrPartyMonData - ldr r1, =0x00006783 - add r1, r8 - add r1, r9 - strb r0, [r1] - mov r0, r9 - adds r1, r5, r0 - ldr r2, =0x00006428 - adds r0, r1, r2 - add r0, r8 - lsls r1, 2 - adds r2, 0x14 - adds r1, r2 - add r1, r8 - bl sub_81D2754 - b _081CDB80 - .pool -_081CDB48: - movs r2, 0 - mov r0, r9 - lsls r5, r0, 2 - add r5, r9 - ldr r4, =0x00006428 - add r4, r8 - lsls r3, r5, 2 - mov r9, r2 - ldr r7, =0x0000643c - movs r6, 0x9B -_081CDB5C: - adds r0, r2, r5 - adds r0, r4, r0 - mov r1, r9 - strb r1, [r0] - lsls r0, r2, 2 - adds r0, r3 - add r0, r8 - adds r1, r0, r7 - strh r6, [r1] - ldr r1, =0x0000643e - adds r0, r1 - movs r1, 0x5B - strh r1, [r0] - adds r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - cmp r2, 0x4 - bls _081CDB5C -_081CDB80: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81CDA1C - - thumb_func_start sub_81CDB98 -sub_81CDB98: @ 81CDB98 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x4 - lsls r0, 16 - lsrs r6, r0, 16 - lsls r1, 24 - lsrs r1, 24 - mov r9, r1 - movs r0, 0xB - bl GetSubstructPtr - adds r7, r0, 0 - movs r0, 0x12 - bl GetSubstructPtr - adds r4, r0, 0 - lsls r0, r6, 16 - asrs r5, r0, 16 - bl sub_81CDD5C - cmp r0, 0 - beq _081CDBCC - ldrh r0, [r4] - b _081CDBD0 -_081CDBCC: - ldrh r0, [r4] - subs r0, 0x1 -_081CDBD0: - cmp r5, r0 - beq _081CDC3E - lsls r0, r6, 16 - asrs r0, 14 - adds r0, r4, r0 - ldrb r5, [r0, 0x4] - ldrb r6, [r0, 0x5] - adds r0, r5, 0 - adds r1, r6, 0 - movs r2, 0x41 - movs r3, 0 - bl GetBoxOrPartyMonData - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - adds r0, r5, 0 - adds r1, r6, 0 - movs r2, 0x1 - movs r3, 0 - bl GetBoxOrPartyMonData - mov r8, r0 - adds r0, r5, 0 - adds r1, r6, 0 - movs r2, 0 - movs r3, 0 - bl GetBoxOrPartyMonData - adds r5, r0, 0 - lsls r0, r4, 3 - ldr r1, =gMonFrontPicTable - adds r0, r1 - mov r2, r9 - lsls r1, r2, 13 - movs r2, 0xC0 - lsls r2, 2 - adds r1, r2 - adds r1, r7, r1 - movs r2, 0x1 - str r2, [sp] - adds r2, r4, 0 - adds r3, r5, 0 - bl LoadSpecialPokePic - adds r0, r4, 0 - mov r1, r8 - adds r2, r5, 0 - bl GetFrontSpritePalFromSpeciesAndPersonality - mov r2, r9 - lsls r1, r2, 7 - adds r1, r7, r1 - bl LZ77UnCompWram -_081CDC3E: - add sp, 0x4 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81CDB98 - - thumb_func_start sub_81CDC50 -sub_81CDC50: @ 81CDC50 - push {lr} - movs r0, 0x12 - bl GetSubstructPtr - ldrh r0, [r0] - pop {r1} - bx r1 - thumb_func_end sub_81CDC50 - - thumb_func_start sub_81CDC60 -sub_81CDC60: @ 81CDC60 - push {lr} - movs r0, 0x12 - bl GetSubstructPtr - ldrh r0, [r0, 0x2] - pop {r1} - bx r1 - thumb_func_end sub_81CDC60 - - thumb_func_start sub_81CDC70 -sub_81CDC70: @ 81CDC70 - push {lr} - movs r0, 0xB - bl GetSubstructPtr - ldr r1, =0x00006428 - adds r0, r1 - pop {r1} - bx r1 - .pool - thumb_func_end sub_81CDC70 - - thumb_func_start sub_81CDC84 -sub_81CDC84: @ 81CDC84 - push {lr} - movs r0, 0xB - bl GetSubstructPtr - ldr r1, =0x00006786 - adds r0, r1 - ldrb r0, [r0] - pop {r1} - bx r1 - .pool - thumb_func_end sub_81CDC84 - - thumb_func_start sub_81CDC9C -sub_81CDC9C: @ 81CDC9C - push {lr} - movs r0, 0xB - bl GetSubstructPtr - ldr r1, =0x00006302 - adds r0, r1 - ldrb r0, [r0] - pop {r1} - bx r1 - .pool - thumb_func_end sub_81CDC9C - - thumb_func_start sub_81CDCB4 -sub_81CDCB4: @ 81CDCB4 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0xB - bl GetSubstructPtr - lsls r4, 13 - movs r1, 0xC0 - lsls r1, 2 - adds r4, r1 - adds r0, r4 - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_81CDCB4 - - thumb_func_start sub_81CDCD4 -sub_81CDCD4: @ 81CDCD4 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0xB - bl GetSubstructPtr - lsls r4, 7 - adds r0, r4 - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_81CDCD4 - - thumb_func_start sub_81CDCEC -sub_81CDCEC: @ 81CDCEC - push {lr} - movs r0, 0xB - bl GetSubstructPtr - ldr r1, =0x00006789 - adds r0, r1 - ldrb r0, [r0] - pop {r1} - bx r1 - .pool - thumb_func_end sub_81CDCEC - - thumb_func_start sub_81CDD04 -sub_81CDD04: @ 81CDD04 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0xB - bl GetSubstructPtr - lsls r4, 6 - ldr r1, =0x00006368 - adds r4, r1 - adds r0, r4 - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end sub_81CDD04 - - thumb_func_start sub_81CDD24 -sub_81CDD24: @ 81CDD24 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0xB - bl GetSubstructPtr - lsls r1, r4, 1 - adds r1, r4 - lsls r1, 3 - ldr r2, =0x00006320 - adds r1, r2 - adds r0, r1 - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end sub_81CDD24 - - thumb_func_start sub_81CDD48 -sub_81CDD48: @ 81CDD48 - push {lr} - movs r0, 0x12 - bl GetSubstructPtr - ldrh r1, [r0, 0x2] - lsls r1, 2 - adds r0, r1 - ldrh r0, [r0, 0x6] - pop {r1} - bx r1 - thumb_func_end sub_81CDD48 - - thumb_func_start sub_81CDD5C -sub_81CDD5C: @ 81CDD5C - push {lr} - movs r0, 0xB - bl GetSubstructPtr - movs r1, 0xC6 - lsls r1, 7 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0x1 - beq _081CDD74 - movs r0, 0 - b _081CDD76 -_081CDD74: - movs r0, 0x1 -_081CDD76: - pop {r1} - bx r1 - thumb_func_end sub_81CDD5C - - thumb_func_start sub_81CDD7C -sub_81CDD7C: @ 81CDD7C - push {lr} - movs r0, 0xB - bl GetSubstructPtr - adds r2, r0, 0 - movs r1, 0xC6 - lsls r1, 7 - adds r0, r2, r1 - ldrb r0, [r0] - cmp r0, 0x1 - beq _081CDD96 - movs r0, 0 - b _081CDDA6 -_081CDD96: - ldr r3, =0x00006786 - adds r0, r2, r3 - movs r1, 0 - ldrsb r1, [r0, r1] - subs r3, 0x3 - adds r0, r2, r3 - adds r0, r1 - ldrb r0, [r0] -_081CDDA6: - pop {r1} - bx r1 - .pool - thumb_func_end sub_81CDD7C - - thumb_func_start sub_81CDDB0 -sub_81CDDB0: @ 81CDDB0 - push {lr} - movs r0, 0xB - bl GetSubstructPtr - ldr r2, =0x00006786 - adds r1, r0, r2 - ldrb r1, [r1] - lsls r1, 24 - asrs r1, 24 - subs r2, 0x6 - adds r0, r2 - adds r0, r1 - ldrb r0, [r0] - pop {r1} - bx r1 - .pool - thumb_func_end sub_81CDDB0 - - thumb_func_start sub_81CDDD4 -sub_81CDDD4: @ 81CDDD4 - push {r4,lr} - ldr r1, =0x000038ac - movs r0, 0xC - bl AllocSubstruct - adds r4, r0, 0 - cmp r4, 0 - beq _081CDE24 - ldr r0, =0x00001816 - adds r1, r4, r0 - movs r0, 0xFF - strb r0, [r1] - ldr r0, =sub_81CDE94 - movs r1, 0x1 - bl CreateLoopedTask - str r0, [r4] - ldr r0, =0x00001810 - adds r1, r4, r0 - ldr r0, =sub_81CDE80 - str r0, [r1] - ldr r0, =0x00002908 - adds r1, r4, r0 - movs r0, 0 - strb r0, [r1] - movs r0, 0x1 - b _081CDE26 - .pool -_081CDE24: - movs r0, 0 -_081CDE26: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_81CDDD4 - - thumb_func_start sub_81CDE2C -sub_81CDE2C: @ 81CDE2C - push {r4,r5,lr} - adds r4, r0, 0 - movs r0, 0xC - bl GetSubstructPtr - adds r5, r0, 0 - ldr r0, =gUnknown_08623384 - lsls r4, 2 - adds r4, r0 - ldr r0, [r4] - movs r1, 0x1 - bl CreateLoopedTask - str r0, [r5] - ldr r0, =0x00001810 - adds r5, r0 - ldr r0, =sub_81CDE80 - str r0, [r5] - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81CDE2C - - thumb_func_start sub_81CDE64 -sub_81CDE64: @ 81CDE64 - push {lr} - movs r0, 0xC - bl GetSubstructPtr - ldr r1, =0x00001810 - adds r0, r1 - ldr r0, [r0] - bl _call_via_r0 - pop {r1} - bx r1 - .pool - thumb_func_end sub_81CDE64 - - thumb_func_start sub_81CDE80 -sub_81CDE80: @ 81CDE80 - push {lr} - movs r0, 0xC - bl GetSubstructPtr - ldr r0, [r0] - bl IsLoopedTaskActive - pop {r1} - bx r1 - thumb_func_end sub_81CDE80 - - thumb_func_start sub_81CDE94 -sub_81CDE94: @ 81CDE94 - push {r4-r6,lr} - sub sp, 0xC - adds r4, r0, 0 - movs r0, 0xC - bl GetSubstructPtr - adds r5, r0, 0 - cmp r4, 0x14 - bls _081CDEA8 - b _081CE2C4 -_081CDEA8: - lsls r0, r4, 2 - ldr r1, =_081CDEB8 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_081CDEB8: - .4byte _081CDF0C - .4byte _081CDF18 - .4byte _081CDF94 - .4byte _081CDFB8 - .4byte _081CE030 - .4byte _081CE074 - .4byte _081CE0B0 - .4byte _081CE118 - .4byte _081CE120 - .4byte _081CE126 - .4byte _081CE136 - .4byte _081CE146 - .4byte _081CE156 - .4byte _081CE16C - .4byte _081CE1C8 - .4byte _081CE1EC - .4byte _081CE218 - .4byte _081CE23C - .4byte _081CE24A - .4byte _081CE25A - .4byte _081CE262 -_081CDF0C: - bl sub_81CD3C4 - cmp r0, 0x1 - beq _081CDF16 - b _081CE2C0 -_081CDF16: - b _081CDFB0 -_081CDF18: - ldr r0, =gUnknown_08623358 - movs r1, 0x3 - bl InitBgTemplates - movs r0, 0x1 - movs r1, 0 - movs r2, 0 - bl ChangeBgX - movs r0, 0x1 - movs r1, 0 - movs r2, 0 - bl ChangeBgY - movs r0, 0x2 - movs r1, 0 - movs r2, 0 - bl ChangeBgX - movs r0, 0x2 - movs r1, 0 - movs r2, 0 - bl ChangeBgY - movs r0, 0x3 - movs r1, 0 - movs r2, 0 - bl ChangeBgX - movs r0, 0x3 - movs r1, 0 - movs r2, 0 - bl ChangeBgY - ldr r1, =0x00007940 - movs r0, 0 - bl SetGpuReg - ldr r1, =0x00000844 - movs r0, 0x50 - bl SetGpuReg - ldr r1, =0x0000040b - movs r0, 0x52 - bl SetGpuReg - ldr r1, =gPokenavCondition_Gfx - movs r0, 0 - str r0, [sp] - movs r0, 0x3 - b _081CDFA8 - .pool -_081CDF94: - bl free_temp_tile_data_buffers_if_possible - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0 - beq _081CDFA2 - b _081CE2C0 -_081CDFA2: - ldr r1, =gUnknown_08623228 - str r0, [sp] - movs r0, 0x2 -_081CDFA8: - movs r2, 0 - movs r3, 0 - bl decompress_and_copy_tile_data_to_vram -_081CDFB0: - movs r0, 0 - b _081CE2C6 - .pool -_081CDFB8: - bl free_temp_tile_data_buffers_if_possible - lsls r0, 24 - cmp r0, 0 - beq _081CDFC4 - b _081CE2C0 -_081CDFC4: - ldr r0, =gPokenavCondition_Tilemap - adds r4, r5, 0x4 - adds r1, r4, 0 - bl LZ77UnCompVram - movs r0, 0x3 - adds r1, r4, 0 - bl SetBgTilemapBuffer - bl sub_81CDD5C - cmp r0, 0x1 - bne _081CDFF2 - ldr r1, =gPokenavOptions_Tilemap - movs r0, 0x9 - str r0, [sp] - movs r0, 0x4 - str r0, [sp, 0x4] - movs r0, 0x3 - movs r2, 0 - movs r3, 0x5 - bl CopyToBgTilemapBufferRect -_081CDFF2: - movs r0, 0x3 - bl CopyBgTilemapBufferToVram - ldr r0, =gPokenavCondition_Pal - movs r1, 0x10 - movs r2, 0x20 - bl CopyPaletteIntoBufferUnfaded - ldr r0, =gUnknown_08623208 - movs r1, 0xF0 - movs r2, 0x20 - bl CopyPaletteIntoBufferUnfaded - ldr r0, =0x00001814 - adds r1, r5, r0 - ldr r0, =0x0000ffb0 - strh r0, [r1] - b _081CDFB0 - .pool -_081CE030: - bl free_temp_tile_data_buffers_if_possible - lsls r0, 24 - cmp r0, 0 - beq _081CE03C - b _081CE2C0 -_081CE03C: - ldr r0, =gUnknown_0862323C - ldr r1, =0x00001004 - adds r4, r5, r1 - adds r1, r4, 0 - bl LZ77UnCompVram - movs r0, 0x2 - adds r1, r4, 0 - bl SetBgTilemapBuffer - movs r0, 0x2 - bl CopyBgTilemapBufferToVram - ldr r0, =gUnknown_086231E8 - movs r1, 0x30 - movs r2, 0x20 - bl CopyPaletteIntoBufferUnfaded - movs r0, 0x2 - bl sub_81D21DC - b _081CDFB0 - .pool -_081CE074: - movs r0, 0x1 - movs r1, 0 - movs r2, 0 - movs r3, 0x1 - bl sub_8199DF0 - movs r0, 0x1 - movs r1, 0x11 - movs r2, 0x1 - movs r3, 0x1 - bl sub_8199DF0 - movs r0, 0 - str r0, [sp, 0x8] - ldr r2, =0x00000804 - adds r4, r5, r2 - ldr r2, =0x05000200 - add r0, sp, 0x8 - adds r1, r4, 0 - bl CpuSet - movs r0, 0x1 - adds r1, r4, 0 - bl SetBgTilemapBuffer - b _081CDFB0 - .pool -_081CE0B0: - bl free_temp_tile_data_buffers_if_possible - lsls r0, 24 - cmp r0, 0 - beq _081CE0BC - b _081CE2C0 -_081CE0BC: - ldr r0, =gUnknown_08623364 - bl AddWindow - movs r2, 0xC1 - lsls r2, 5 - adds r1, r5, r2 - strb r0, [r1] - bl sub_81CDD5C - cmp r0, 0x1 - bne _081CE0F6 - ldr r0, =gUnknown_0862336C - bl AddWindow - ldr r2, =0x00001821 - adds r1, r5, r2 - strb r0, [r1] - ldr r0, =gUnknown_08623374 - bl AddWindow - ldr r2, =0x00001822 - adds r1, r5, r2 - strb r0, [r1] - ldr r0, =gUnknown_0862337C - bl AddWindow - ldr r2, =0x00001823 - adds r1, r5, r2 - strb r0, [r1] -_081CE0F6: - bl DeactivateAllTextPrinters - b _081CDFB0 - .pool -_081CE118: - movs r0, 0 - bl sub_81CED30 - b _081CDFB0 -_081CE120: - bl sub_81CE9E4 - b _081CDFB0 -_081CE126: - bl sub_81CDD5C - cmp r0, 0x1 - beq _081CE130 - b _081CDFB0 -_081CE130: - bl sub_81CE934 - b _081CDFB0 -_081CE136: - bl sub_81CDC84 - adds r1, r0, 0 - lsls r1, 24 - asrs r1, 8 - lsrs r1, 16 - movs r0, 0 - b _081CE164 -_081CE146: - bl sub_81CDC84 - adds r1, r0, 0 - lsls r1, 24 - asrs r1, 8 - lsrs r1, 16 - movs r0, 0x1 - b _081CE164 -_081CE156: - bl sub_81CDC84 - adds r1, r0, 0 - lsls r1, 24 - asrs r1, 8 - lsrs r1, 16 - movs r0, 0x2 -_081CE164: - movs r2, 0x1 - bl sub_81CE754 - b _081CDFB0 -_081CE16C: - bl sub_81CDC84 - adds r1, r0, 0 - lsls r1, 24 - asrs r1, 8 - lsrs r1, 16 - movs r0, 0x3 - movs r2, 0x1 - bl sub_81CE754 - cmp r0, 0x1 - beq _081CE186 - b _081CE2C0 -_081CE186: - movs r1, 0xC1 - lsls r1, 5 - adds r0, r5, r1 - ldrb r0, [r0] - bl PutWindowTilemap - bl sub_81CDD5C - cmp r0, 0x1 - beq _081CE19C - b _081CDFB0 -_081CE19C: - ldr r2, =0x00001821 - adds r0, r5, r2 - ldrb r0, [r0] - bl PutWindowTilemap - ldr r1, =0x00001822 - adds r0, r5, r1 - ldrb r0, [r0] - bl PutWindowTilemap - ldr r2, =0x00001823 - adds r0, r5, r2 - ldrb r0, [r0] - bl PutWindowTilemap - b _081CDFB0 - .pool -_081CE1C8: - movs r0, 0x1 - bl ShowBg - movs r0, 0x2 - bl HideBg - movs r0, 0x3 - bl ShowBg - bl sub_81CDD5C - cmp r0, 0x1 - beq _081CE1E4 - b _081CDFB0 -_081CE1E4: - movs r0, 0x4 - bl sub_81C7BA4 - b _081CDFB0 -_081CE1EC: - movs r0, 0x1 - bl sub_81C7AC0 - bl sub_81CDD5C - cmp r0, 0 - beq _081CE1FC - b _081CDFB0 -_081CE1FC: - movs r0, 0x6 - bl LoadLeftHeaderGfxForIndex - movs r0, 0x1 - movs r1, 0x1 - movs r2, 0 - bl sub_81C7FA0 - movs r0, 0x6 - movs r1, 0x1 - movs r2, 0 - bl sub_81C7FA0 - b _081CDFB0 -_081CE218: - bl IsPaletteFadeActive - cmp r0, 0 - bne _081CE2C0 - bl sub_81CDD5C - cmp r0, 0 - bne _081CE230 - bl sub_81C8010 - cmp r0, 0 - bne _081CE2C0 -_081CE230: - ldr r0, =sub_81CEE44 - bl SetVBlankCallback_ - b _081CDFB0 - .pool -_081CE23C: - bl sub_81CEE90 - bl sub_81CDC70 - bl sub_81D20AC - b _081CDFB0 -_081CE24A: - bl sub_81CDC70 - bl sub_81D20BC - lsls r0, 24 - cmp r0, 0 - bne _081CE2C0 - b _081CDFB0 -_081CE25A: - movs r0, 0x1 - bl sub_81CEE74 - b _081CDFB0 -_081CE262: - bl sub_81CDC70 - ldr r2, =0x00001814 - adds r1, r5, r2 - bl sub_81D3178 - lsls r0, 24 - cmp r0, 0 - bne _081CE2C0 - ldr r0, =0x000028e0 - adds r6, r5, r0 - adds r0, r6, 0 - bl sub_81D3464 - bl sub_81CDD5C - cmp r0, 0x1 - beq _081CE298 - bl sub_81CDC60 - adds r4, r0, 0 - bl sub_81CDC50 - lsls r4, 16 - lsls r0, 16 - cmp r4, r0 - beq _081CE2C4 -_081CE298: - ldr r1, =0x00001816 - adds r0, r5, r1 - ldrb r4, [r0] - bl sub_81CDDB0 - adds r2, r0, 0 - lsls r2, 24 - lsrs r2, 24 - adds r0, r6, 0 - adds r1, r4, 0 - bl sub_81D3480 - b _081CE2C4 - .pool -_081CE2C0: - movs r0, 0x2 - b _081CE2C6 -_081CE2C4: - movs r0, 0x4 -_081CE2C6: - add sp, 0xC - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_81CDE94 - - thumb_func_start sub_81CE2D0 -sub_81CE2D0: @ 81CE2D0 - push {r4,r5,lr} - adds r4, r0, 0 - movs r0, 0xC - bl GetSubstructPtr - adds r5, r0, 0 - cmp r4, 0x1 - beq _081CE308 - cmp r4, 0x1 - bgt _081CE2EA - cmp r4, 0 - beq _081CE2F4 - b _081CE374 -_081CE2EA: - cmp r4, 0x2 - beq _081CE328 - cmp r4, 0x3 - beq _081CE33E - b _081CE374 -_081CE2F4: - bl sub_81CEEC8 - ldr r1, =0x000028e0 - adds r0, r5, r1 - bl sub_81D3520 - movs r0, 0x1 - b _081CE376 - .pool -_081CE308: - bl sub_81CDC70 - ldr r2, =0x00001814 - adds r1, r5, r2 - bl sub_81D31A4 - lsls r0, 24 - cmp r0, 0 - bne _081CE34E - movs r0, 0 - bl sub_81CEE74 - movs r0, 0x1 - b _081CE376 - .pool -_081CE328: - movs r0, 0 - bl sub_81C7AC0 - bl sub_81CDD5C - cmp r0, 0 - bne _081CE33A - bl sub_81C78A0 -_081CE33A: - movs r0, 0 - b _081CE376 -_081CE33E: - bl IsPaletteFadeActive - cmp r0, 0 - bne _081CE34E - bl MainMenuLoopedTaskIsBusy - cmp r0, 0 - beq _081CE352 -_081CE34E: - movs r0, 0x2 - b _081CE376 -_081CE352: - ldr r1, =0x000028e0 - adds r0, r5, r1 - bl sub_81D354C - movs r0, 0x1 - bl HideBg - movs r0, 0x2 - bl HideBg - movs r0, 0x3 - bl HideBg - movs r0, 0x1 - b _081CE376 - .pool -_081CE374: - movs r0, 0x4 -_081CE376: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_81CE2D0 - - thumb_func_start sub_81CE37C -sub_81CE37C: @ 81CE37C - push {r4-r6,lr} - adds r4, r0, 0 - movs r0, 0xC - bl GetSubstructPtr - adds r6, r0, 0 - bl sub_81CDC70 - adds r2, r0, 0 - cmp r4, 0x9 - bls _081CE394 - b _081CE4D0 -_081CE394: - lsls r0, r4, 2 - ldr r1, =_081CE3A4 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_081CE3A4: - .4byte _081CE3CC - .4byte _081CE3D0 - .4byte _081CE3DA - .4byte _081CE3F0 - .4byte _081CE3F8 - .4byte _081CE418 - .4byte _081CE428 - .4byte _081CE438 - .4byte _081CE44E - .4byte _081CE468 -_081CE3CC: - movs r0, 0 - b _081CE3D2 -_081CE3D0: - movs r0, 0x1 -_081CE3D2: - bl sub_81CD548 -_081CE3D6: - movs r0, 0x1 - b _081CE4D2 -_081CE3DA: - movs r0, 0x2 - bl sub_81CD548 - ldr r1, =0x000028e0 - adds r0, r6, r1 - bl sub_81D3520 - b _081CE3D6 - .pool -_081CE3F0: - adds r0, r2, 0 - bl sub_81D2074 - b _081CE3D6 -_081CE3F8: - ldr r1, =0x00001814 - adds r0, r6, r1 - bl sub_81D3150 - lsls r0, 24 - cmp r0, 0 - bne _081CE4CC - bl sub_81CDC84 - lsls r0, 24 - lsrs r0, 24 - bl sub_81CED30 - b _081CE3D6 - .pool -_081CE418: - bl sub_81CDC84 - adds r1, r0, 0 - lsls r1, 24 - asrs r1, 8 - lsrs r1, 16 - movs r0, 0 - b _081CE446 -_081CE428: - bl sub_81CDC84 - adds r1, r0, 0 - lsls r1, 24 - asrs r1, 8 - lsrs r1, 16 - movs r0, 0x1 - b _081CE446 -_081CE438: - bl sub_81CDC84 - adds r1, r0, 0 - lsls r1, 24 - asrs r1, 8 - lsrs r1, 16 - movs r0, 0x2 -_081CE446: - movs r2, 0 - bl sub_81CE754 - b _081CE3D6 -_081CE44E: - bl sub_81CDC84 - adds r1, r0, 0 - lsls r1, 24 - asrs r1, 8 - lsrs r1, 16 - movs r0, 0x3 - movs r2, 0 - bl sub_81CE754 - cmp r0, 0x1 - beq _081CE3D6 - b _081CE4CC -_081CE468: - bl sub_81CDC70 - adds r2, r0, 0 - ldr r0, =0x00001814 - adds r1, r6, r0 - adds r0, r2, 0 - bl sub_81D3178 - lsls r0, 24 - cmp r0, 0 - bne _081CE4CC - ldr r1, =0x000028e0 - adds r0, r6, r1 - bl sub_81D3464 - bl sub_81CDD5C - cmp r0, 0x1 - beq _081CE4A0 - bl sub_81CDC60 - adds r4, r0, 0 - bl sub_81CDC50 - lsls r4, 16 - lsls r0, 16 - cmp r4, r0 - beq _081CE3D6 -_081CE4A0: - ldr r0, =0x000028e0 - adds r5, r6, r0 - ldr r1, =0x00001816 - adds r0, r6, r1 - ldrb r4, [r0] - bl sub_81CDDB0 - adds r2, r0, 0 - lsls r2, 24 - lsrs r2, 24 - adds r0, r5, 0 - adds r1, r4, 0 - bl sub_81D3480 - b _081CE3D6 - .pool -_081CE4CC: - movs r0, 0x2 - b _081CE4D2 -_081CE4D0: - movs r0, 0x4 -_081CE4D2: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_81CE37C - - thumb_func_start sub_81CE4D8 -sub_81CE4D8: @ 81CE4D8 - push {r4,r5,lr} - adds r4, r0, 0 - movs r0, 0xC - bl GetSubstructPtr - adds r5, r0, 0 - cmp r4, 0x8 - bhi _081CE5DC - lsls r0, r4, 2 - ldr r1, =_081CE4F8 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_081CE4F8: - .4byte _081CE51C - .4byte _081CE520 - .4byte _081CE524 - .4byte _081CE52E - .4byte _081CE53E - .4byte _081CE54E - .4byte _081CE55E - .4byte _081CE576 - .4byte _081CE592 -_081CE51C: - movs r0, 0 - b _081CE526 -_081CE520: - movs r0, 0x1 - b _081CE526 -_081CE524: - movs r0, 0x2 -_081CE526: - bl sub_81CD548 - movs r0, 0x1 - b _081CE5DE -_081CE52E: - bl sub_81CDC84 - lsls r0, 24 - lsrs r0, 24 - bl sub_81CED30 - movs r0, 0x1 - b _081CE5DE -_081CE53E: - bl sub_81CDC84 - adds r1, r0, 0 - lsls r1, 24 - asrs r1, 8 - lsrs r1, 16 - movs r0, 0 - b _081CE56C -_081CE54E: - bl sub_81CDC84 - adds r1, r0, 0 - lsls r1, 24 - asrs r1, 8 - lsrs r1, 16 - movs r0, 0x1 - b _081CE56C -_081CE55E: - bl sub_81CDC84 - adds r1, r0, 0 - lsls r1, 24 - asrs r1, 8 - lsrs r1, 16 - movs r0, 0x2 -_081CE56C: - movs r2, 0 - bl sub_81CE754 - movs r0, 0x1 - b _081CE5DE -_081CE576: - bl sub_81CDC84 - adds r1, r0, 0 - lsls r1, 24 - asrs r1, 8 - lsrs r1, 16 - movs r0, 0x3 - movs r2, 0 - bl sub_81CE754 - cmp r0, 0x1 - bne _081CE5D8 - movs r0, 0x1 - b _081CE5DE -_081CE592: - bl sub_81CDC70 - ldr r2, =0x00001814 - adds r1, r5, r2 - bl sub_81D3178 - lsls r0, 24 - cmp r0, 0 - bne _081CE5D8 - ldr r0, =0x000028e0 - adds r4, r5, r0 - adds r0, r4, 0 - bl sub_81D3464 - ldr r1, =0x00001816 - adds r0, r5, r1 - ldrb r5, [r0] - bl sub_81CDDB0 - adds r2, r0, 0 - lsls r2, 24 - lsrs r2, 24 - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_81D3480 - movs r0, 0x1 - b _081CE5DE - .pool -_081CE5D8: - movs r0, 0x2 - b _081CE5DE -_081CE5DC: - movs r0, 0x4 -_081CE5DE: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_81CE4D8 - - thumb_func_start sub_81CE5E4 -sub_81CE5E4: @ 81CE5E4 - push {r4,r5,lr} - adds r4, r0, 0 - movs r0, 0xC - bl GetSubstructPtr - adds r5, r0, 0 - cmp r4, 0x7 - bhi _081CE6B2 - lsls r0, r4, 2 - ldr r1, =_081CE604 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_081CE604: - .4byte _081CE624 - .4byte _081CE628 - .4byte _081CE632 - .4byte _081CE648 - .4byte _081CE660 - .4byte _081CE670 - .4byte _081CE680 - .4byte _081CE696 -_081CE624: - movs r0, 0 - b _081CE62A -_081CE628: - movs r0, 0x1 -_081CE62A: - bl sub_81CD548 -_081CE62E: - movs r0, 0x1 - b _081CE6B4 -_081CE632: - movs r0, 0x2 - bl sub_81CD548 - ldr r1, =0x000028e0 - adds r0, r5, r1 - bl sub_81D3520 - b _081CE62E - .pool -_081CE648: - bl sub_81CDC70 - ldr r2, =0x00001814 - adds r1, r5, r2 - bl sub_81D31A4 - lsls r0, 24 - cmp r0, 0 - beq _081CE62E - b _081CE6AE - .pool -_081CE660: - bl sub_81CDC84 - adds r1, r0, 0 - lsls r1, 24 - asrs r1, 8 - lsrs r1, 16 - movs r0, 0 - b _081CE68E -_081CE670: - bl sub_81CDC84 - adds r1, r0, 0 - lsls r1, 24 - asrs r1, 8 - lsrs r1, 16 - movs r0, 0x1 - b _081CE68E -_081CE680: - bl sub_81CDC84 - adds r1, r0, 0 - lsls r1, 24 - asrs r1, 8 - lsrs r1, 16 - movs r0, 0x2 -_081CE68E: - movs r2, 0 - bl sub_81CE754 - b _081CE62E -_081CE696: - bl sub_81CDC84 - adds r1, r0, 0 - lsls r1, 24 - asrs r1, 8 - lsrs r1, 16 - movs r0, 0x3 - movs r2, 0 - bl sub_81CE754 - cmp r0, 0x1 - beq _081CE62E -_081CE6AE: - movs r0, 0x2 - b _081CE6B4 -_081CE6B2: - movs r0, 0x4 -_081CE6B4: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_81CE5E4 - - thumb_func_start sub_81CE6BC -sub_81CE6BC: @ 81CE6BC - push {lr} - cmp r0, 0x1 - beq _081CE6E6 - cmp r0, 0x1 - bgt _081CE6CC - cmp r0, 0 - beq _081CE6D2 - b _081CE6FA -_081CE6CC: - cmp r0, 0x2 - beq _081CE6EE - b _081CE6FA -_081CE6D2: - bl sub_81CDD7C - lsls r0, 24 - lsrs r0, 24 - movs r1, 0xB0 - movs r2, 0x20 - bl sub_811FAA4 -_081CE6E2: - movs r0, 0x1 - b _081CE6FC -_081CE6E6: - movs r0, 0x5 - bl sub_81C7BA4 - b _081CE6E2 -_081CE6EE: - bl IsDma3ManagerBusyWithBgCopy_ - cmp r0, 0x1 - bne _081CE6E2 - movs r0, 0x2 - b _081CE6FC -_081CE6FA: - movs r0, 0x4 -_081CE6FC: - pop {r1} - bx r1 - thumb_func_end sub_81CE6BC - - thumb_func_start sub_81CE700 -sub_81CE700: @ 81CE700 - push {lr} - cmp r0, 0x1 - beq _081CE71E - cmp r0, 0x1 - bgt _081CE710 - cmp r0, 0 - beq _081CE716 - b _081CE732 -_081CE710: - cmp r0, 0x2 - beq _081CE726 - b _081CE732 -_081CE716: - bl sub_811FAF8 -_081CE71A: - movs r0, 0x1 - b _081CE734 -_081CE71E: - movs r0, 0x4 - bl sub_81C7BA4 - b _081CE71A -_081CE726: - bl IsDma3ManagerBusyWithBgCopy_ - cmp r0, 0x1 - bne _081CE71A - movs r0, 0x2 - b _081CE734 -_081CE732: - movs r0, 0x4 -_081CE734: - pop {r1} - bx r1 - thumb_func_end sub_81CE700 - - thumb_func_start sub_81CE738 -sub_81CE738: @ 81CE738 - push {lr} - lsls r1, 16 - lsrs r1, 16 - movs r2, 0x1 - movs r3, 0x4 - bl ConvertIntToDecimalStringN - ldr r1, =gText_Number2 - bl StringCopy - pop {r1} - bx r1 - .pool - thumb_func_end sub_81CE738 - - thumb_func_start sub_81CE754 -sub_81CE754: @ 81CE754 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x2C - lsls r0, 24 - lsrs r4, r0, 24 - adds r7, r4, 0 - lsls r1, 16 - lsrs r1, 16 - mov r8, r1 - lsls r2, 24 - lsrs r5, r2, 24 - movs r0, 0xC - bl GetSubstructPtr - adds r6, r0, 0 - cmp r4, 0x1 - beq _081CE7B8 - cmp r4, 0x1 - bgt _081CE782 - cmp r4, 0 - beq _081CE78E - b _081CE924 -_081CE782: - cmp r4, 0x2 - beq _081CE800 - cmp r4, 0x3 - bne _081CE78C - b _081CE89C -_081CE78C: - b _081CE924 -_081CE78E: - movs r1, 0xC1 - lsls r1, 5 - adds r0, r6, r1 - ldrb r0, [r0] - movs r1, 0 - bl FillWindowPixelBuffer - bl sub_81CDD5C - cmp r0, 0x1 - beq _081CE7A6 - b _081CE924 -_081CE7A6: - ldr r1, =0x00001821 - adds r0, r6, r1 - ldrb r0, [r0] - movs r1, 0 - bl FillWindowPixelBuffer - b _081CE924 - .pool -_081CE7B8: - bl sub_81CDC60 - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - bl sub_81CDC50 - lsls r0, 16 - lsrs r0, 16 - subs r0, 0x1 - cmp r4, r0 - bne _081CE7DA - bl sub_81CDD5C - cmp r0, 0x1 - beq _081CE7DA - b _081CE924 -_081CE7DA: - mov r1, r8 - lsls r0, r1, 24 - lsrs r0, 24 - bl sub_81CDD04 - adds r2, r0, 0 - movs r1, 0xC1 - lsls r1, 5 - adds r0, r6, r1 - ldrb r0, [r0] - str r7, [sp] - movs r1, 0 - str r1, [sp, 0x4] - str r1, [sp, 0x8] - movs r1, 0x1 - movs r3, 0 - bl AddTextPrinterParameterized - b _081CE924 -_081CE800: - bl sub_81CDD5C - adds r7, r0, 0 - cmp r7, 0x1 - beq _081CE80C - b _081CE924 -_081CE80C: - mov r1, r8 - lsls r0, r1, 24 - lsrs r0, 24 - bl sub_81CDD24 - adds r2, r0, 0 - movs r1, 0xC1 - lsls r1, 5 - adds r0, r6, r1 - ldrb r0, [r0] - movs r1, 0x11 - str r1, [sp] - movs r4, 0 - str r4, [sp, 0x4] - str r4, [sp, 0x8] - movs r1, 0x1 - movs r3, 0 - bl AddTextPrinterParameterized - add r1, sp, 0xC - movs r0, 0xFC - strb r0, [r1] - movs r0, 0x4 - strb r0, [r1, 0x1] - movs r0, 0x8 - strb r0, [r1, 0x2] - adds r0, r1, 0 - strb r4, [r0, 0x3] - movs r0, 0x9 - strb r0, [r1, 0x4] - mov r5, sp - adds r5, 0x11 - ldr r1, =gText_Number2 - adds r0, r5, 0 - bl StringCopy - ldr r0, =0x00001821 - adds r6, r0 - ldrb r0, [r6] - str r7, [sp] - str r4, [sp, 0x4] - str r4, [sp, 0x8] - movs r1, 0x1 - add r2, sp, 0xC - movs r3, 0x4 - bl AddTextPrinterParameterized - bl sub_81CDD48 - adds r1, r0, 0 - lsls r1, 16 - lsrs r1, 16 - adds r0, r5, 0 - movs r2, 0x1 - movs r3, 0x4 - bl ConvertIntToDecimalStringN - ldrb r0, [r6] - str r7, [sp] - str r4, [sp, 0x4] - str r4, [sp, 0x8] - movs r1, 0x1 - add r2, sp, 0xC - movs r3, 0x1C - bl AddTextPrinterParameterized - b _081CE924 - .pool -_081CE89C: - ldr r1, =0x00002908 - adds r0, r6, r1 - ldrb r0, [r0] - cmp r0, 0 - beq _081CE8B0 - cmp r0, 0x1 - beq _081CE8EC - b _081CE924 - .pool -_081CE8B0: - cmp r5, 0 - beq _081CE8C4 - movs r1, 0xC1 - lsls r1, 5 - adds r0, r6, r1 - ldrb r0, [r0] - movs r1, 0x3 - bl CopyWindowToVram - b _081CE8D2 -_081CE8C4: - movs r1, 0xC1 - lsls r1, 5 - adds r0, r6, r1 - ldrb r0, [r0] - movs r1, 0x2 - bl CopyWindowToVram -_081CE8D2: - bl sub_81CDD5C - cmp r0, 0x1 - bne _081CE910 - ldr r0, =0x00002908 - adds r1, r6, r0 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - b _081CE924 - .pool -_081CE8EC: - cmp r5, 0 - beq _081CE904 - ldr r1, =0x00001821 - adds r0, r6, r1 - ldrb r0, [r0] - movs r1, 0x3 - bl CopyWindowToVram - b _081CE910 - .pool -_081CE904: - ldr r1, =0x00001821 - adds r0, r6, r1 - ldrb r0, [r0] - movs r1, 0x2 - bl CopyWindowToVram -_081CE910: - ldr r0, =0x00002908 - adds r1, r6, r0 - movs r0, 0 - strb r0, [r1] - movs r0, 0x1 - b _081CE926 - .pool -_081CE924: - movs r0, 0 -_081CE926: - add sp, 0x2C - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_81CE754 - - thumb_func_start sub_81CE934 -sub_81CE934: @ 81CE934 - push {r4,lr} - movs r0, 0xC - bl GetSubstructPtr - adds r4, r0, 0 - ldr r1, =0x00001822 - adds r0, r4, r1 - ldrb r0, [r0] - movs r1, 0x3 - bl CopyWindowToVram - ldr r0, =0x00001823 - adds r4, r0 - ldrb r0, [r4] - movs r1, 0x3 - bl CopyWindowToVram - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81CE934 - - thumb_func_start sub_81CE964 -sub_81CE964: @ 81CE964 - push {r4,r5,lr} - adds r5, r0, 0 - movs r0, 0x2E - ldrsh r4, [r5, r0] - bl sub_81CDC60 - lsls r0, 16 - lsrs r0, 16 - cmp r4, r0 - bne _081CE982 - adds r0, r5, 0 - movs r1, 0 - bl StartSpriteAnim - b _081CE98A -_081CE982: - adds r0, r5, 0 - movs r1, 0x1 - bl StartSpriteAnim -_081CE98A: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_81CE964 - - thumb_func_start sub_81CE990 -sub_81CE990: @ 81CE990 - push {r4,r5,lr} - adds r5, r0, 0 - bl sub_81CDC60 - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - bl sub_81CDC50 - lsls r0, 16 - lsrs r0, 16 - subs r0, 0x1 - cmp r4, r0 - bne _081CE9B0 - movs r0, 0x65 - b _081CE9B2 -_081CE9B0: - movs r0, 0x66 -_081CE9B2: - bl IndexOfSpritePaletteTag - lsls r0, 4 - ldrb r2, [r5, 0x5] - movs r1, 0xF - ands r1, r2 - orrs r1, r0 - strb r1, [r5, 0x5] - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_81CE990 - - thumb_func_start sub_81CE9C8 -sub_81CE9C8: @ 81CE9C8 - push {r4,lr} - adds r4, r0, 0 - bl sub_81CDD7C - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl StartSpriteAnim - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_81CE9C8 - - thumb_func_start sub_81CE9E4 -sub_81CE9E4: @ 81CE9E4 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x58 - movs r0, 0xC - bl GetSubstructPtr - adds r6, r0, 0 - add r4, sp, 0x20 - add r5, sp, 0x38 - mov r0, sp - adds r1, r4, 0 - adds r2, r5, 0 - bl sub_81D321C - bl sub_81CDD5C - adds r7, r4, 0 - mov r10, r5 - cmp r0, 0x1 - bne _081CEA78 - ldr r1, =0x00001824 - adds r0, r6, r1 - movs r2, 0x6A - strh r2, [r0] - ldr r3, =0x00001826 - adds r1, r6, r3 - strh r2, [r1] - bl sub_811F90C - bl sub_811FA90 - ldr r2, =gUnknown_08623338 - movs r0, 0x69 - movs r1, 0x69 - bl sub_811FF94 - ldrb r1, [r0, 0x5] - movs r2, 0xC - orrs r1, r2 - strb r1, [r0, 0x5] - movs r1, 0xC0 - strh r1, [r0, 0x20] - movs r1, 0x20 - strh r1, [r0, 0x22] - ldr r1, =sub_81CE9C8 - str r1, [r0, 0x1C] - ldr r2, =0x000028dc - adds r1, r6, r2 - str r0, [r1] - movs r0, 0x69 - bl IndexOfSpritePaletteTag - lsls r0, 24 - lsrs r0, 24 - movs r1, 0 - bl sub_81C7990 - add r3, sp, 0x50 - mov r8, r3 - b _081CEBC6 - .pool -_081CEA78: - mov r0, sp - bl LoadSpriteSheets - mov r0, r10 - bl Pokenav_AllocAndLoadPalettes - movs r4, 0 - add r0, sp, 0x50 - mov r8, r0 - b _081CEAE8 -_081CEA8C: - lsls r2, r4, 2 - adds r2, r4 - lsls r2, 18 - movs r1, 0x80 - lsls r1, 12 - adds r2, r1 - asrs r2, 16 - adds r0, r7, 0 - movs r1, 0xE2 - movs r3, 0 - bl CreateSprite - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0x40 - beq _081CEAD8 - ldr r2, =0x00001806 - adds r0, r6, r2 - adds r0, r4 - strb r3, [r0] - ldr r2, =gSprites - lsls r0, r3, 4 - adds r0, r3 - lsls r0, 2 - adds r1, r0, r2 - strh r4, [r1, 0x2E] - adds r2, 0x1C - adds r0, r2 - ldr r1, =sub_81CE964 - str r1, [r0] - b _081CEAE2 - .pool -_081CEAD8: - ldr r3, =0x00001806 - adds r0, r6, r3 - adds r0, r4 - movs r1, 0xFF - strb r1, [r0] -_081CEAE2: - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 -_081CEAE8: - bl sub_81CDC50 - lsls r0, 16 - lsrs r0, 16 - subs r0, 0x1 - cmp r4, r0 - blt _081CEA8C - movs r0, 0x67 - strh r0, [r7] - ldr r0, =SpriteCallbackDummy - str r0, [r7, 0x14] - cmp r4, 0x5 - bhi _081CEB5C - ldr r0, =0x00001806 - adds r5, r6, r0 - ldr r1, =gSprites - mov r9, r1 -_081CEB0A: - lsls r2, r4, 2 - adds r2, r4 - lsls r2, 18 - movs r3, 0x80 - lsls r3, 12 - adds r2, r3 - asrs r2, 16 - adds r0, r7, 0 - movs r1, 0xE6 - movs r3, 0 - bl CreateSprite - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0x40 - beq _081CEB4C - adds r0, r5, r4 - strb r3, [r0] - lsls r1, r3, 4 - adds r1, r3 - lsls r1, 2 - add r1, r9 - ldrb r2, [r1, 0x3] - movs r0, 0x3F - ands r0, r2 - strb r0, [r1, 0x3] - b _081CEB52 - .pool -_081CEB4C: - adds r1, r5, r4 - movs r0, 0xFF - strb r0, [r1] -_081CEB52: - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0x5 - bls _081CEB0A -_081CEB5C: - movs r0, 0x66 - strh r0, [r7] - ldr r0, =sub_81CE990 - str r0, [r7, 0x14] - lsls r2, r4, 2 - adds r2, r4 - lsls r2, 18 - movs r0, 0x80 - lsls r0, 12 - adds r2, r0 - asrs r2, 16 - adds r0, r7, 0 - movs r1, 0xDE - movs r3, 0 - bl CreateSprite - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0x40 - beq _081CEBBC - ldr r1, =0x00001806 - adds r0, r6, r1 - adds r0, r4 - strb r3, [r0] - ldr r0, =gSprites - lsls r2, r3, 4 - adds r2, r3 - lsls r2, 2 - adds r2, r0 - ldrb r3, [r2, 0x1] - movs r1, 0x3F - adds r0, r1, 0 - ands r0, r3 - movs r3, 0x40 - orrs r0, r3 - strb r0, [r2, 0x1] - ldrb r0, [r2, 0x3] - ands r1, r0 - movs r0, 0x80 - orrs r1, r0 - strb r1, [r2, 0x3] - b _081CEBC6 - .pool -_081CEBBC: - ldr r2, =0x00001806 - adds r0, r6, r2 - adds r0, r4 - movs r1, 0xFF - strb r1, [r0] -_081CEBC6: - mov r0, r8 - mov r1, r10 - bl sub_81D32B0 - mov r0, r8 - bl LoadSpriteSheet - movs r0, 0 - mov r3, r10 - str r0, [r3, 0x8] - mov r0, r10 - bl Pokenav_AllocAndLoadPalettes - add sp, 0x58 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81CE9E4 - - thumb_func_start sub_81CEBF4 -sub_81CEBF4: @ 81CEBF4 - push {r4,r5,lr} - adds r5, r0, 0 - bl sub_81CDD5C - cmp r0, 0x1 - bne _081CEC28 - ldr r1, =0x000028dc - adds r0, r5, r1 - ldr r0, [r0] - bl DestroySprite - movs r0, 0x6A - bl FreeSpriteTilesByTag - movs r0, 0x69 - bl FreeSpriteTilesByTag - movs r0, 0x6A - bl FreeSpritePaletteByTag - movs r0, 0x69 - bl FreeSpritePaletteByTag - b _081CEC68 - .pool -_081CEC28: - movs r4, 0 -_081CEC2A: - ldr r1, =0x00001806 - adds r0, r5, r1 - adds r0, r4 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, =gSprites - adds r0, r1 - bl DestroySprite - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x6 - bls _081CEC2A - movs r0, 0x65 - bl FreeSpriteTilesByTag - movs r0, 0x66 - bl FreeSpriteTilesByTag - movs r0, 0x67 - bl FreeSpriteTilesByTag - movs r0, 0x65 - bl FreeSpritePaletteByTag - movs r0, 0x66 - bl FreeSpritePaletteByTag -_081CEC68: - ldr r0, =0x00001816 - adds r1, r5, r0 - ldrb r0, [r1] - cmp r0, 0xFF - beq _081CEC8E - adds r1, r0, 0 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, =gSprites - adds r0, r1 - bl DestroySprite - movs r0, 0x64 - bl FreeSpriteTilesByTag - movs r0, 0x64 - bl FreeSpritePaletteByTag -_081CEC8E: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81CEBF4 - - thumb_func_start sub_81CECA0 -sub_81CECA0: @ 81CECA0 - push {r4,lr} - movs r0, 0xC - bl GetSubstructPtr - adds r4, r0, 0 - movs r1, 0xC1 - lsls r1, 5 - adds r0, r4, r1 - ldrb r0, [r0] - bl RemoveWindow - bl sub_81CDD5C - cmp r0, 0x1 - bne _081CECEC - ldr r1, =0x00001821 - adds r0, r4, r1 - ldrb r0, [r0] - bl RemoveWindow - ldr r1, =0x00001822 - adds r0, r4, r1 - ldrb r0, [r0] - bl RemoveWindow - ldr r1, =0x00001823 - adds r0, r4, r1 - ldrb r0, [r0] - bl RemoveWindow - b _081CECF0 - .pool -_081CECEC: - bl sub_81C7FDC -_081CECF0: - movs r1, 0x8A - lsls r1, 5 - movs r0, 0 - bl SetGpuReg - adds r0, r4, 0 - bl sub_81CEBF4 - bl sub_81CEE68 - movs r0, 0xC - bl FreePokenavSubstruct - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_81CECA0 - - thumb_func_start sub_81CED10 -sub_81CED10: @ 81CED10 - push {r4,lr} - adds r4, r0, 0 - movs r0, 0xC - bl GetSubstructPtr - ldr r1, =0x00001814 - adds r0, r1 - ldrh r0, [r0] - adds r0, 0x26 - strh r0, [r4, 0x20] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81CED10 - - thumb_func_start sub_81CED30 -sub_81CED30: @ 81CED30 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x28 - lsls r0, 24 - lsrs r6, r0, 24 - movs r0, 0xC - bl GetSubstructPtr - mov r8, r0 - ldr r7, =0x00001816 - add r7, r8 - ldrb r0, [r7] - cmp r0, 0xFF - bne _081CEDFC - add r5, sp, 0x18 - add r4, sp, 0x20 - adds r0, r5, 0 - mov r1, sp - adds r2, r4, 0 - bl sub_81D31D0 - adds r0, r6, 0 - bl sub_81CDCB4 - str r0, [sp, 0x18] - adds r0, r6, 0 - bl sub_81CDCD4 - str r0, [sp, 0x20] - adds r0, r4, 0 - bl LoadSpritePalette - lsls r0, 24 - lsrs r0, 24 - ldr r4, =0x00001818 - add r4, r8 - strh r0, [r4] - adds r0, r5, 0 - bl LoadSpriteSheet - ldr r5, =0x0000181a - add r5, r8 - strh r0, [r5] - mov r0, sp - movs r1, 0x26 - movs r2, 0x68 - movs r3, 0 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - strb r0, [r7] - cmp r0, 0x40 - bne _081CEDBC - movs r0, 0x64 - bl FreeSpriteTilesByTag - movs r0, 0x64 - bl FreeSpritePaletteByTag - movs r0, 0xFF - strb r0, [r7] - b _081CEE26 - .pool -_081CEDBC: - strb r0, [r7] - ldr r2, =gSprites - ldrb r1, [r7] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r2, 0x1C - adds r0, r2 - ldr r1, =sub_81CED10 - str r1, [r0] - ldr r1, =0x0000181c - add r1, r8 - ldrh r0, [r5] - lsls r0, 5 - ldr r2, =0x06010000 - adds r0, r2 - str r0, [r1] - ldrh r0, [r4] - lsls r0, 4 - movs r1, 0x80 - lsls r1, 1 - adds r0, r1 - strh r0, [r4] - b _081CEE26 - .pool -_081CEDFC: - adds r0, r6, 0 - bl sub_81CDCB4 - ldr r1, =0x0000181c - add r1, r8 - ldr r2, [r1] - ldr r1, =0x040000d4 - str r0, [r1] - str r2, [r1, 0x4] - ldr r0, =0x80000400 - str r0, [r1, 0x8] - ldr r0, [r1, 0x8] - adds r0, r6, 0 - bl sub_81CDCD4 - ldr r1, =0x00001818 - add r1, r8 - ldrh r1, [r1] - movs r2, 0x20 - bl LoadPalette -_081CEE26: - add sp, 0x28 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81CED30 - - thumb_func_start sub_81CEE44 -sub_81CEE44: @ 81CEE44 - push {r4,lr} - bl sub_81CDC70 - adds r4, r0, 0 - bl LoadOam - bl ProcessSpriteCopyRequests - bl TransferPlttBuffer - adds r0, r4, 0 - bl sub_81D2108 - bl ScanlineEffect_InitHBlankDmaTransfer - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_81CEE44 - - thumb_func_start sub_81CEE68 -sub_81CEE68: @ 81CEE68 - push {lr} - bl SetPokenavVBlankCallback - pop {r0} - bx r0 - thumb_func_end sub_81CEE68 - - thumb_func_start sub_81CEE74 -sub_81CEE74: @ 81CEE74 - push {lr} - lsls r0, 24 - cmp r0, 0 - beq _081CEE84 - movs r0, 0x2 - bl ShowBg - b _081CEE8A -_081CEE84: - movs r0, 0x2 - bl HideBg -_081CEE8A: - pop {r0} - bx r0 - thumb_func_end sub_81CEE74 - - thumb_func_start sub_81CEE90 -sub_81CEE90: @ 81CEE90 - push {r4,lr} - bl sub_81CDC70 - adds r4, r0, 0 - bl sub_81CDC84 - lsls r0, 24 - lsrs r0, 24 - ldr r1, =gUnknown_030012BC - strb r0, [r1] - adds r1, r4, 0 - adds r1, 0x50 - lsls r2, r0, 2 - adds r2, r0 - lsls r2, 2 - adds r2, 0x14 - adds r2, r4, r2 - adds r0, r4, 0 - bl sub_81D1F84 - adds r0, r4, 0 - bl sub_81D2074 - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81CEE90 - - thumb_func_start sub_81CEEC8 -sub_81CEEC8: @ 81CEEC8 - push {r4,r5,lr} - bl sub_81CDC70 - adds r5, r0, 0 - bl sub_81CDD5C - cmp r0, 0 - bne _081CEEF0 - bl sub_81CDC60 - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - bl sub_81CDC50 - lsls r0, 16 - lsrs r0, 16 - subs r0, 0x1 - cmp r4, r0 - beq _081CEF0C -_081CEEF0: - bl sub_81CDC84 - lsls r0, 24 - asrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 2 - adds r1, 0x14 - adds r1, r5, r1 - adds r2, r5, 0 - adds r2, 0x50 - adds r0, r5, 0 - bl sub_81D1F84 -_081CEF0C: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_81CEEC8 - - thumb_func_start sub_81CEF14 -sub_81CEF14: @ 81CEF14 - push {r4,lr} - movs r0, 0xC - bl GetSubstructPtr - adds r4, r0, 0 - bl sub_81CDD5C - cmp r0, 0x1 - beq _081CEF2A - movs r0, 0 - b _081CEF30 -_081CEF2A: - ldr r1, =0x00001828 - adds r0, r4, r1 - ldrb r0, [r0] -_081CEF30: - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end sub_81CEF14 - - thumb_func_start sub_81CEF3C -sub_81CEF3C: @ 81CEF3C - push {r4,lr} - movs r0, 0x7 - movs r1, 0x24 - bl AllocSubstruct - adds r4, r0, 0 - cmp r4, 0 - beq _081CEF90 - ldr r1, =0x000006ac - movs r0, 0x12 - bl AllocSubstruct - str r0, [r4, 0x20] - cmp r0, 0 - beq _081CEF90 - ldr r0, =sub_81CF010 - str r0, [r4] - ldr r0, =sub_81CF11C - movs r1, 0x1 - bl CreateLoopedTask - str r0, [r4, 0x4] - movs r0, 0 - str r0, [r4, 0x18] - bl sub_81C76AC - ldr r1, =gUnknown_086233A0 - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - str r0, [r4, 0x14] - movs r0, 0x1 - b _081CEF92 - .pool -_081CEF90: - movs r0, 0 -_081CEF92: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_81CEF3C - - thumb_func_start sub_81CEF98 -sub_81CEF98: @ 81CEF98 - push {r4,lr} - movs r0, 0x7 - movs r1, 0x24 - bl AllocSubstruct - adds r4, r0, 0 - cmp r4, 0 - beq _081CEFD4 - movs r0, 0x12 - bl GetSubstructPtr - str r0, [r4, 0x20] - ldr r0, =sub_81CF030 - str r0, [r4] - movs r0, 0x1 - str r0, [r4, 0x18] - bl sub_81C76AC - ldr r1, =gUnknown_086233A0 - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - str r0, [r4, 0x14] - movs r0, 0x1 - b _081CEFD6 - .pool -_081CEFD4: - movs r0, 0 -_081CEFD6: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_81CEF98 - - thumb_func_start sub_81CEFDC -sub_81CEFDC: @ 81CEFDC - push {lr} - movs r0, 0x7 - bl GetSubstructPtr - ldr r1, [r0] - bl _call_via_r1 - pop {r1} - bx r1 - thumb_func_end sub_81CEFDC - - thumb_func_start sub_81CEFF0 -sub_81CEFF0: @ 81CEFF0 - push {lr} - movs r0, 0x7 - bl GetSubstructPtr - ldr r0, [r0, 0x1C] - cmp r0, 0 - bne _081CF004 - movs r0, 0x12 - bl FreePokenavSubstruct -_081CF004: - movs r0, 0x7 - bl FreePokenavSubstruct - pop {r0} - bx r0 - thumb_func_end sub_81CEFF0 - - thumb_func_start sub_81CF010 -sub_81CF010: @ 81CF010 - push {r4,lr} - adds r4, r0, 0 - ldr r0, [r4, 0x4] - bl IsLoopedTaskActive - cmp r0, 0 - bne _081CF022 - ldr r0, =sub_81CF030 - str r0, [r4] -_081CF022: - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end sub_81CF010 - - thumb_func_start sub_81CF030 -sub_81CF030: @ 81CF030 - push {r4,r5,lr} - adds r4, r0, 0 - ldr r2, =gMain - ldrh r1, [r2, 0x30] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _081CF048 - movs r0, 0x1 - b _081CF0A6 - .pool -_081CF048: - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _081CF054 - movs r0, 0x2 - b _081CF0A6 -_081CF054: - ldrh r1, [r2, 0x2E] - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - beq _081CF062 - movs r0, 0x3 - b _081CF0A6 -_081CF062: - movs r0, 0x10 - ands r0, r1 - lsls r0, 16 - lsrs r2, r0, 16 - cmp r2, 0 - beq _081CF072 - movs r0, 0x4 - b _081CF0A6 -_081CF072: - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _081CF088 - str r2, [r4, 0x1C] - ldr r0, =sub_81CF0B0 - str r0, [r4] - movs r0, 0x5 - b _081CF0A6 - .pool -_081CF088: - movs r5, 0x1 - adds r0, r5, 0 - ands r0, r1 - cmp r0, 0 - bne _081CF096 - movs r0, 0 - b _081CF0A6 -_081CF096: - bl GetSelectedMatchCall - ldr r1, [r4, 0x20] - strh r0, [r1, 0x2] - str r5, [r4, 0x1C] - ldr r0, =sub_81CF0B8 - str r0, [r4] - movs r0, 0x6 -_081CF0A6: - pop {r4,r5} - pop {r1} - bx r1 - .pool - thumb_func_end sub_81CF030 - - thumb_func_start sub_81CF0B0 -sub_81CF0B0: @ 81CF0B0 - ldr r0, =0x000186a3 - bx lr - .pool - thumb_func_end sub_81CF0B0 - - thumb_func_start sub_81CF0B8 -sub_81CF0B8: @ 81CF0B8 - ldr r0, =0x000186a9 - bx lr - .pool - thumb_func_end sub_81CF0B8 - - thumb_func_start sub_81CF0C0 -sub_81CF0C0: @ 81CF0C0 - push {lr} - movs r0, 0x7 - bl GetSubstructPtr - ldr r0, [r0, 0x18] - pop {r1} - bx r1 - thumb_func_end sub_81CF0C0 - - thumb_func_start sub_81CF0D0 -sub_81CF0D0: @ 81CF0D0 - push {lr} - movs r0, 0x7 - bl GetSubstructPtr - ldr r0, [r0, 0x20] - adds r0, 0x4 - pop {r1} - bx r1 - thumb_func_end sub_81CF0D0 - - thumb_func_start sub_81CF0E0 -sub_81CF0E0: @ 81CF0E0 - push {lr} - movs r0, 0x7 - bl GetSubstructPtr - ldr r0, [r0, 0x20] - ldrh r0, [r0] - pop {r1} - bx r1 - thumb_func_end sub_81CF0E0 - - thumb_func_start sub_81CF0F0 -sub_81CF0F0: @ 81CF0F0 - push {r4,lr} - movs r0, 0x7 - bl GetSubstructPtr - adds r4, r0, 0 - bl GetSelectedMatchCall - ldr r1, [r4, 0x20] - lsls r0, 2 - adds r1, r0 - ldrh r0, [r1, 0x6] - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_81CF0F0 - - thumb_func_start sub_81CF10C -sub_81CF10C: @ 81CF10C - push {lr} - movs r0, 0x7 - bl GetSubstructPtr - ldr r0, [r0, 0x20] - ldrh r0, [r0, 0x2] - pop {r1} - bx r1 - thumb_func_end sub_81CF10C - - thumb_func_start sub_81CF11C -sub_81CF11C: @ 81CF11C - push {lr} - ldr r2, =gUnknown_086233B4 - lsls r1, r0, 2 - adds r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {r1} - bx r1 - .pool - thumb_func_end sub_81CF11C - - thumb_func_start sub_81CF134 -sub_81CF134: @ 81CF134 - push {r4-r6,lr} - sub sp, 0x4 - movs r0, 0x7 - bl GetSubstructPtr - adds r6, r0, 0 - ldr r0, [r6, 0x20] - movs r1, 0 - strh r1, [r0] - ldr r0, [r6, 0x20] - strh r1, [r0, 0x2] - ldr r1, =0xffffff00 - ldr r0, [sp] - ands r0, r1 - movs r1, 0xE - orrs r0, r1 - str r0, [sp] - movs r5, 0 -_081CF158: - movs r0, 0x64 - adds r1, r5, 0 - muls r1, r0 - ldr r0, =gPlayerParty - adds r4, r1, r0 - adds r0, r4, 0 - movs r1, 0x5 - bl GetMonData - cmp r0, 0 - beq _081CF1AA - adds r0, r4, 0 - movs r1, 0x6 - bl GetMonData - cmp r0, 0 - bne _081CF1A4 - lsls r1, r5, 24 - lsrs r1, 16 - ldr r2, =0xffff00ff - ldr r0, [sp] - ands r0, r2 - orrs r0, r1 - str r0, [sp] - ldr r1, [r6, 0x14] - adds r0, r4, 0 - bl GetMonData - lsls r0, 16 - ldr r2, =0x0000ffff - ldr r1, [sp] - ands r1, r2 - orrs r1, r0 - str r1, [sp] - adds r0, r6, 0 - mov r1, sp - bl sub_81CF2C4 -_081CF1A4: - adds r5, 0x1 - cmp r5, 0x5 - ble _081CF158 -_081CF1AA: - movs r0, 0x1 - add sp, 0x4 - pop {r4-r6} - pop {r1} - bx r1 - .pool - thumb_func_end sub_81CF134 - - thumb_func_start sub_81CF1C4 -sub_81CF1C4: @ 81CF1C4 - push {lr} - movs r0, 0x7 - bl GetSubstructPtr - movs r1, 0 - str r1, [r0, 0x10] - str r1, [r0, 0xC] - movs r0, 0x1 - pop {r1} - bx r1 - thumb_func_end sub_81CF1C4 - - thumb_func_start sub_81CF1D8 -sub_81CF1D8: @ 81CF1D8 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x4 - movs r0, 0x7 - bl GetSubstructPtr - adds r6, r0, 0 - ldr r5, [r6, 0xC] - ldr r4, [r6, 0x10] - movs r0, 0 - mov r8, r0 - cmp r5, 0xD - bgt _081CF268 -_081CF1F4: - cmp r4, 0x1D - bgt _081CF260 - lsls r0, r5, 24 - lsrs r7, r0, 24 -_081CF1FC: - adds r0, r5, 0 - adds r1, r4, 0 - bl CheckBoxMonSanityAt - cmp r0, 0 - beq _081CF23A - ldr r1, =0xffffff00 - ldr r0, [sp] - ands r0, r1 - orrs r0, r7 - lsls r1, r4, 24 - lsrs r1, 24 - lsls r3, r1, 8 - ldr r2, =0xffff00ff - ands r0, r2 - orrs r0, r3 - str r0, [sp] - ldr r2, [r6, 0x14] - adds r0, r7, 0 - bl GetBoxMonDataAt - lsls r0, 16 - ldr r2, =0x0000ffff - ldr r1, [sp] - ands r1, r2 - orrs r1, r0 - str r1, [sp] - adds r0, r6, 0 - mov r1, sp - bl sub_81CF2C4 -_081CF23A: - movs r0, 0x1 - add r8, r0 - adds r4, 0x1 - mov r0, r8 - cmp r0, 0xE - ble _081CF25C - str r5, [r6, 0xC] - str r4, [r6, 0x10] - movs r0, 0x3 - b _081CF26A - .pool -_081CF25C: - cmp r4, 0x1D - ble _081CF1FC -_081CF260: - movs r4, 0 - adds r5, 0x1 - cmp r5, 0xD - ble _081CF1F4 -_081CF268: - movs r0, 0x1 -_081CF26A: - add sp, 0x4 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_81CF1D8 - - thumb_func_start sub_81CF278 -sub_81CF278: @ 81CF278 - push {r4-r6,lr} - movs r0, 0x7 - bl GetSubstructPtr - adds r5, r0, 0 - ldr r0, [r5, 0x20] - ldrh r6, [r0] - ldrh r4, [r0, 0x6] - movs r1, 0x1 - strh r1, [r0, 0x6] - movs r3, 0x1 - cmp r3, r6 - bge _081CF2B8 -_081CF292: - ldr r2, [r5, 0x20] - lsls r0, r3, 2 - adds r1, r2, r0 - ldrh r0, [r1, 0x6] - cmp r0, r4 - bne _081CF2AC - subs r0, r3, 0x1 - lsls r0, 2 - adds r0, r2, r0 - ldrh r0, [r0, 0x6] - strh r0, [r1, 0x6] - adds r0, r3, 0x1 - b _081CF2B2 -_081CF2AC: - adds r4, r0, 0 - adds r0, r3, 0x1 - strh r0, [r1, 0x6] -_081CF2B2: - adds r3, r0, 0 - cmp r3, r6 - blt _081CF292 -_081CF2B8: - movs r0, 0x1 - str r0, [r5, 0x18] - movs r0, 0x4 - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_81CF278 - - thumb_func_start sub_81CF2C4 -sub_81CF2C4: @ 81CF2C4 - push {r4-r7,lr} - adds r5, r0, 0 - adds r7, r1, 0 - movs r1, 0 - ldr r0, [r5, 0x20] - ldrh r2, [r0] - lsrs r3, r2, 1 - cmp r2, r3 - beq _081CF2F4 - adds r6, r0, 0 - ldrh r4, [r7, 0x2] -_081CF2DA: - lsls r0, r3, 2 - adds r0, r6, r0 - ldrh r0, [r0, 0x6] - cmp r4, r0 - bls _081CF2E8 - adds r2, r3, 0 - b _081CF2EA -_081CF2E8: - adds r1, r3, 0x1 -_081CF2EA: - subs r0, r2, r1 - lsrs r0, 1 - adds r3, r1, r0 - cmp r2, r3 - bne _081CF2DA -_081CF2F4: - ldr r0, [r5, 0x20] - ldrh r2, [r0] - lsls r6, r3, 2 - cmp r2, r3 - bls _081CF318 - lsls r0, r2, 2 - subs r4, r0, 0x4 -_081CF302: - ldr r0, [r5, 0x20] - lsls r1, r2, 2 - adds r0, 0x4 - adds r1, r0, r1 - adds r0, r4 - ldr r0, [r0] - str r0, [r1] - subs r4, 0x4 - subs r2, 0x1 - cmp r2, r3 - bhi _081CF302 -_081CF318: - ldr r0, [r5, 0x20] - adds r0, 0x4 - adds r0, r6 - ldr r1, [r7] - str r1, [r0] - ldr r1, [r5, 0x20] - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_81CF2C4 - - thumb_func_start sub_81CF330 -sub_81CF330: @ 81CF330 - push {r4,lr} - movs r1, 0x81 - lsls r1, 4 - movs r0, 0x8 - bl AllocSubstruct - adds r4, r0, 0 - cmp r4, 0 - beq _081CF360 - ldr r0, =sub_81CF418 - movs r1, 0x1 - bl CreateLoopedTask - str r0, [r4, 0x4] - ldr r0, =sub_81CF3E4 - str r0, [r4] - movs r0, 0 - str r0, [r4, 0xC] - movs r0, 0x1 - b _081CF362 - .pool -_081CF360: - movs r0, 0 -_081CF362: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_81CF330 - - thumb_func_start sub_81CF368 -sub_81CF368: @ 81CF368 - push {r4,lr} - movs r1, 0x81 - lsls r1, 4 - movs r0, 0x8 - bl AllocSubstruct - adds r4, r0, 0 - cmp r4, 0 - beq _081CF398 - ldr r0, =sub_81CF418 - movs r1, 0x1 - bl CreateLoopedTask - str r0, [r4, 0x4] - ldr r0, =sub_81CF3E4 - str r0, [r4] - movs r0, 0x1 - str r0, [r4, 0xC] - b _081CF39A - .pool -_081CF398: - movs r0, 0 -_081CF39A: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_81CF368 - - thumb_func_start sub_81CF3A0 -sub_81CF3A0: @ 81CF3A0 - push {r4,r5,lr} - adds r4, r0, 0 - movs r0, 0x8 - bl GetSubstructPtr - adds r5, r0, 0 - ldr r0, =gUnknown_08623598 - lsls r4, 2 - adds r4, r0 - ldr r0, [r4] - movs r1, 0x1 - bl CreateLoopedTask - str r0, [r5, 0x4] - ldr r0, =sub_81CF3E4 - str r0, [r5] - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81CF3A0 - - thumb_func_start sub_81CF3D0 -sub_81CF3D0: @ 81CF3D0 - push {lr} - movs r0, 0x8 - bl GetSubstructPtr - ldr r0, [r0] - bl _call_via_r0 - pop {r1} - bx r1 - thumb_func_end sub_81CF3D0 - - thumb_func_start sub_81CF3E4 -sub_81CF3E4: @ 81CF3E4 - push {lr} - movs r0, 0x8 - bl GetSubstructPtr - ldr r0, [r0, 0x4] - bl IsLoopedTaskActive - pop {r1} - bx r1 - thumb_func_end sub_81CF3E4 - - thumb_func_start sub_81CF3F8 -sub_81CF3F8: @ 81CF3F8 - push {r4,lr} - movs r0, 0x8 - bl GetSubstructPtr - adds r4, r0, 0 - bl sub_81C8234 - ldrb r0, [r4, 0x8] - bl RemoveWindow - movs r0, 0x8 - bl FreePokenavSubstruct - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_81CF3F8 - - thumb_func_start sub_81CF418 -sub_81CF418: @ 81CF418 - push {r4,r5,lr} - sub sp, 0x4 - adds r4, r0, 0 - movs r0, 0x8 - bl GetSubstructPtr - adds r5, r0, 0 - cmp r4, 0x5 - bls _081CF42C - b _081CF56E -_081CF42C: - lsls r0, r4, 2 - ldr r1, =_081CF43C - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_081CF43C: - .4byte _081CF454 - .4byte _081CF4AC - .4byte _081CF4C0 - .4byte _081CF4E0 - .4byte _081CF4F6 - .4byte _081CF55A -_081CF454: - ldr r0, =gUnknown_08623590 - movs r1, 0x2 - bl InitBgTemplates - ldr r1, =gUnknown_086233E4 - movs r0, 0 - str r0, [sp] - movs r0, 0x1 - movs r2, 0 - movs r3, 0 - bl decompress_and_copy_tile_data_to_vram - adds r1, r5, 0 - adds r1, 0x10 - movs r0, 0x1 - bl SetBgTilemapBuffer - ldr r1, =gUnknown_086234AC - movs r0, 0x1 - movs r2, 0 - movs r3, 0 - bl CopyToBgTilemapBuffer - movs r0, 0x1 - bl CopyBgTilemapBufferToVram - ldr r0, =gUnknown_086233C4 - movs r1, 0x10 - movs r2, 0x20 - bl CopyPaletteIntoBufferUnfaded - movs r0, 0x1 - bl CopyBgTilemapBufferToVram -_081CF498: - movs r0, 0 - b _081CF570 - .pool -_081CF4AC: - bl free_temp_tile_data_buffers_if_possible - lsls r0, 24 - cmp r0, 0 - bne _081CF56A - bl sub_81CF0C0 - cmp r0, 0 - beq _081CF56A - b _081CF498 -_081CF4C0: - bl free_temp_tile_data_buffers_if_possible - lsls r0, 24 - cmp r0, 0 - bne _081CF56A - ldr r0, =gUnknown_08623570 - movs r1, 0x20 - movs r2, 0x20 - bl CopyPaletteIntoBufferUnfaded - bl sub_81CF88C - b _081CF498 - .pool -_081CF4E0: - bl sub_81C8224 - cmp r0, 0 - bne _081CF56A - adds r0, r5, 0 - bl sub_81CF7C8 - movs r0, 0x3 - bl sub_81C7BA4 - b _081CF498 -_081CF4F6: - bl free_temp_tile_data_buffers_if_possible - lsls r0, 24 - cmp r0, 0 - bne _081CF56A - movs r0, 0x1 - movs r1, 0 - movs r2, 0 - bl ChangeBgX - movs r0, 0x1 - movs r1, 0 - movs r2, 0 - bl ChangeBgY - movs r0, 0x1 - bl ShowBg - movs r0, 0x2 - bl ShowBg - movs r0, 0x3 - bl HideBg - ldr r0, [r5, 0xC] - cmp r0, 0 - bne _081CF552 - bl sub_81C76AC - adds r4, r0, 0 - adds r4, 0x8 - lsls r4, 24 - lsrs r4, 24 - adds r0, r4, 0 - bl LoadLeftHeaderGfxForIndex - adds r0, r4, 0 - movs r1, 0x1 - movs r2, 0 - bl sub_81C7FA0 - movs r0, 0x1 - movs r1, 0x1 - movs r2, 0 - bl sub_81C7FA0 -_081CF552: - movs r0, 0x1 - bl sub_81C7AC0 - b _081CF498 -_081CF55A: - bl IsPaletteFadeActive - cmp r0, 0 - bne _081CF56A - bl sub_81C8010 - cmp r0, 0 - beq _081CF56E -_081CF56A: - movs r0, 0x2 - b _081CF570 -_081CF56E: - movs r0, 0x4 -_081CF570: - add sp, 0x4 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_81CF418 - - thumb_func_start sub_81CF578 -sub_81CF578: @ 81CF578 - push {r4,r5,lr} - adds r4, r0, 0 - movs r0, 0x8 - bl GetSubstructPtr - adds r5, r0, 0 - cmp r4, 0x1 - beq _081CF5C6 - cmp r4, 0x1 - bgt _081CF592 - cmp r4, 0 - beq _081CF59C - b _081CF5E6 -_081CF592: - cmp r4, 0x2 - beq _081CF5CE - cmp r4, 0x3 - beq _081CF5D8 - b _081CF5E6 -_081CF59C: - bl MatchCall_MoveCursorUp - cmp r0, 0x1 - beq _081CF5B4 - cmp r0, 0x1 - bgt _081CF5AE - cmp r0, 0 - beq _081CF5E6 - b _081CF5D4 -_081CF5AE: - cmp r0, 0x2 - beq _081CF5BE - b _081CF5D4 -_081CF5B4: - movs r0, 0x5 - bl PlaySE - movs r0, 0x7 - b _081CF5E8 -_081CF5BE: - movs r0, 0x5 - bl PlaySE - b _081CF5D4 -_081CF5C6: - bl sub_81C8630 - cmp r0, 0 - bne _081CF5E2 -_081CF5CE: - adds r0, r5, 0 - bl sub_81CF7F4 -_081CF5D4: - movs r0, 0 - b _081CF5E8 -_081CF5D8: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, 24 - cmp r0, 0 - beq _081CF5E6 -_081CF5E2: - movs r0, 0x2 - b _081CF5E8 -_081CF5E6: - movs r0, 0x4 -_081CF5E8: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_81CF578 - - thumb_func_start sub_81CF5F0 -sub_81CF5F0: @ 81CF5F0 - push {r4,r5,lr} - adds r4, r0, 0 - movs r0, 0x8 - bl GetSubstructPtr - adds r5, r0, 0 - cmp r4, 0x1 - beq _081CF63E - cmp r4, 0x1 - bgt _081CF60A - cmp r4, 0 - beq _081CF614 - b _081CF65E -_081CF60A: - cmp r4, 0x2 - beq _081CF646 - cmp r4, 0x3 - beq _081CF650 - b _081CF65E -_081CF614: - bl MatchCall_MoveCursorDown - cmp r0, 0x1 - beq _081CF62C - cmp r0, 0x1 - bgt _081CF626 - cmp r0, 0 - beq _081CF65E - b _081CF64C -_081CF626: - cmp r0, 0x2 - beq _081CF636 - b _081CF64C -_081CF62C: - movs r0, 0x5 - bl PlaySE - movs r0, 0x7 - b _081CF660 -_081CF636: - movs r0, 0x5 - bl PlaySE - b _081CF64C -_081CF63E: - bl sub_81C8630 - cmp r0, 0 - bne _081CF65A -_081CF646: - adds r0, r5, 0 - bl sub_81CF7F4 -_081CF64C: - movs r0, 0 - b _081CF660 -_081CF650: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, 24 - cmp r0, 0 - beq _081CF65E -_081CF65A: - movs r0, 0x2 - b _081CF660 -_081CF65E: - movs r0, 0x4 -_081CF660: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_81CF5F0 - - thumb_func_start sub_81CF668 -sub_81CF668: @ 81CF668 - push {r4,r5,lr} - adds r4, r0, 0 - movs r0, 0x8 - bl GetSubstructPtr - adds r5, r0, 0 - cmp r4, 0x1 - beq _081CF6B6 - cmp r4, 0x1 - bgt _081CF682 - cmp r4, 0 - beq _081CF68C - b _081CF6D6 -_081CF682: - cmp r4, 0x2 - beq _081CF6BE - cmp r4, 0x3 - beq _081CF6C8 - b _081CF6D6 -_081CF68C: - bl MatchCall_PageUp - cmp r0, 0x1 - beq _081CF6A4 - cmp r0, 0x1 - bgt _081CF69E - cmp r0, 0 - beq _081CF6D6 - b _081CF6C4 -_081CF69E: - cmp r0, 0x2 - beq _081CF6AE - b _081CF6C4 -_081CF6A4: - movs r0, 0x5 - bl PlaySE - movs r0, 0x7 - b _081CF6D8 -_081CF6AE: - movs r0, 0x5 - bl PlaySE - b _081CF6C4 -_081CF6B6: - bl sub_81C8630 - cmp r0, 0 - bne _081CF6D2 -_081CF6BE: - adds r0, r5, 0 - bl sub_81CF7F4 -_081CF6C4: - movs r0, 0 - b _081CF6D8 -_081CF6C8: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, 24 - cmp r0, 0 - beq _081CF6D6 -_081CF6D2: - movs r0, 0x2 - b _081CF6D8 -_081CF6D6: - movs r0, 0x4 -_081CF6D8: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_81CF668 - - thumb_func_start sub_81CF6E0 -sub_81CF6E0: @ 81CF6E0 - push {r4,r5,lr} - adds r4, r0, 0 - movs r0, 0x8 - bl GetSubstructPtr - adds r5, r0, 0 - cmp r4, 0x1 - beq _081CF72E - cmp r4, 0x1 - bgt _081CF6FA - cmp r4, 0 - beq _081CF704 - b _081CF74E -_081CF6FA: - cmp r4, 0x2 - beq _081CF736 - cmp r4, 0x3 - beq _081CF740 - b _081CF74E -_081CF704: - bl MatchCall_PageDown - cmp r0, 0x1 - beq _081CF71C - cmp r0, 0x1 - bgt _081CF716 - cmp r0, 0 - beq _081CF74E - b _081CF73C -_081CF716: - cmp r0, 0x2 - beq _081CF726 - b _081CF73C -_081CF71C: - movs r0, 0x5 - bl PlaySE - movs r0, 0x7 - b _081CF750 -_081CF726: - movs r0, 0x5 - bl PlaySE - b _081CF73C -_081CF72E: - bl sub_81C8630 - cmp r0, 0 - bne _081CF74A -_081CF736: - adds r0, r5, 0 - bl sub_81CF7F4 -_081CF73C: - movs r0, 0 - b _081CF750 -_081CF740: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, 24 - cmp r0, 0 - beq _081CF74E -_081CF74A: - movs r0, 0x2 - b _081CF750 -_081CF74E: - movs r0, 0x4 -_081CF750: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_81CF6E0 - - thumb_func_start sub_81CF758 -sub_81CF758: @ 81CF758 - push {lr} - cmp r0, 0 - beq _081CF764 - cmp r0, 0x1 - beq _081CF778 - b _081CF790 -_081CF764: - movs r0, 0x5 - bl PlaySE - movs r0, 0 - bl sub_81C7AC0 - bl sub_81C78A0 - movs r0, 0 - b _081CF792 -_081CF778: - bl IsPaletteFadeActive - cmp r0, 0 - bne _081CF788 - bl MainMenuLoopedTaskIsBusy - cmp r0, 0 - beq _081CF78C -_081CF788: - movs r0, 0x2 - b _081CF792 -_081CF78C: - bl sub_81C7FDC -_081CF790: - movs r0, 0x4 -_081CF792: - pop {r1} - bx r1 - thumb_func_end sub_81CF758 - - thumb_func_start sub_81CF798 -sub_81CF798: @ 81CF798 - push {lr} - cmp r0, 0 - beq _081CF7A4 - cmp r0, 0x1 - beq _081CF7B4 - b _081CF7C0 -_081CF7A4: - movs r0, 0x5 - bl PlaySE - movs r0, 0 - bl sub_81C7AC0 - movs r0, 0 - b _081CF7C2 -_081CF7B4: - bl IsPaletteFadeActive - cmp r0, 0 - beq _081CF7C0 - movs r0, 0x2 - b _081CF7C2 -_081CF7C0: - movs r0, 0x4 -_081CF7C2: - pop {r1} - bx r1 - thumb_func_end sub_81CF798 - - thumb_func_start sub_81CF7C8 -sub_81CF7C8: @ 81CF7C8 - push {r4,lr} - adds r4, r0, 0 - ldr r0, =gUnknown_086235B4 - bl AddWindow - strh r0, [r4, 0x8] - lsls r0, 24 - lsrs r0, 24 - bl PutWindowTilemap - ldrb r0, [r4, 0x8] - movs r1, 0x1 - bl CopyWindowToVram - adds r0, r4, 0 - bl sub_81CF7F4 - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81CF7C8 - - thumb_func_start sub_81CF7F4 -sub_81CF7F4: @ 81CF7F4 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0xC - mov r8, r0 - bl sub_81CF0F0 - adds r7, r0, 0 - bl DynamicPlaceholderTextUtil_Reset - ldr r4, =gStringVar1 - movs r0, 0 - adds r1, r4, 0 - bl DynamicPlaceholderTextUtil_SetPlaceholderPtr - movs r0, 0xFF - strb r0, [r4] - ldr r5, =gStringVar2 - ldr r1, =gText_NumberF700 - adds r0, r5, 0 - bl DynamicPlaceholderTextUtil_ExpandPlaceholders - mov r1, r8 - ldrb r0, [r1, 0x8] - movs r1, 0x1 - mov r10, r1 - str r1, [sp] - movs r1, 0xFF - mov r9, r1 - str r1, [sp, 0x4] - movs r6, 0 - str r6, [sp, 0x8] - movs r1, 0x1 - adds r2, r5, 0 - movs r3, 0x4 - bl AddTextPrinterParameterized - adds r0, r4, 0 - adds r1, r7, 0 - movs r2, 0x1 - movs r3, 0x3 - bl ConvertIntToDecimalStringN - mov r1, r8 - ldrb r0, [r1, 0x8] - mov r1, r10 - str r1, [sp] - mov r1, r9 - str r1, [sp, 0x4] - str r6, [sp, 0x8] - movs r1, 0x1 - adds r2, r4, 0 - movs r3, 0x22 - bl AddTextPrinterParameterized - mov r1, r8 - ldrb r0, [r1, 0x8] - movs r1, 0x2 - bl CopyWindowToVram - add sp, 0xC - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81CF7F4 - - thumb_func_start sub_81CF88C -sub_81CF88C: @ 81CF88C - push {r4,lr} - sub sp, 0x18 - bl sub_81CF0D0 - str r0, [sp] - bl sub_81CF0E0 - mov r1, sp - movs r4, 0 - strh r0, [r1, 0x4] - movs r0, 0x4 - strb r0, [r1, 0x8] - bl sub_81CF10C - mov r1, sp - strh r0, [r1, 0x6] - movs r0, 0xD - strb r0, [r1, 0x9] - movs r0, 0x11 - strb r0, [r1, 0xA] - mov r0, sp - movs r2, 0x1 - strb r2, [r0, 0xB] - movs r0, 0x8 - strb r0, [r1, 0xC] - movs r0, 0x2 - strb r0, [r1, 0xD] - mov r0, sp - strb r2, [r0, 0xE] - ldr r0, =sub_81CF8E4 - str r0, [sp, 0x10] - str r4, [sp, 0x14] - ldr r0, =gUnknown_08623594 - movs r2, 0 - bl sub_81C81D4 - add sp, 0x18 - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81CF88C - - thumb_func_start sub_81CF8E4 -sub_81CF8E4: @ 81CF8E4 - push {r4-r7,lr} - adds r2, r0, 0 - adds r6, r1, 0 - ldrb r0, [r2] - cmp r0, 0xE - bne _081CF924 - ldrb r1, [r2, 0x1] - movs r0, 0x64 - adds r4, r1, 0 - muls r4, r0 - ldr r0, =gPlayerParty - adds r4, r0 - adds r0, r4, 0 - bl GetMonGender - lsls r0, 24 - lsrs r5, r0, 24 - adds r0, r4, 0 - bl GetLevelFromMonExp - lsls r0, 24 - lsrs r7, r0, 24 - ldr r2, =gStringVar3 - adds r0, r4, 0 - movs r1, 0x2 - bl GetMonData - b _081CF94A - .pool -_081CF924: - ldrb r0, [r2] - ldrb r1, [r2, 0x1] - bl GetBoxedMonPtr - adds r4, r0, 0 - bl GetBoxMonGender - lsls r0, 24 - lsrs r5, r0, 24 - adds r0, r4, 0 - bl GetLevelFromBoxMonExp - lsls r0, 24 - lsrs r7, r0, 24 - ldr r2, =gStringVar3 - adds r0, r4, 0 - movs r1, 0x2 - bl GetBoxMonData -_081CF94A: - ldr r4, =gStringVar3 - adds r0, r4, 0 - bl StringGetEnd10 - adds r0, r6, 0 - movs r1, 0x1 - adds r2, r4, 0 - movs r3, 0x3C - bl sub_81DB494 - adds r6, r0, 0 - cmp r5, 0 - beq _081CF974 - cmp r5, 0xFE - beq _081CF97C - ldr r1, =gUnknown_086235D4 - b _081CF97E - .pool -_081CF974: - ldr r1, =gUnknown_086235BC - b _081CF97E - .pool -_081CF97C: - ldr r1, =gUnknown_086235C8 -_081CF97E: - ldr r4, =gStringVar1 - adds r0, r4, 0 - bl StringCopy - movs r1, 0xBA - strb r1, [r0] - adds r0, 0x1 - movs r1, 0xF9 - strb r1, [r0] - adds r0, 0x1 - movs r1, 0x5 - strb r1, [r0] - adds r0, 0x1 - adds r1, r7, 0 - movs r2, 0 - movs r3, 0x3 - bl ConvertIntToDecimalStringN - adds r0, r6, 0 - movs r1, 0x1 - adds r2, r4, 0 - movs r3, 0x28 - bl sub_81DB494 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81CF8E4 - - thumb_func_start sub_81CF9BC -sub_81CF9BC: @ 81CF9BC - push {r4,lr} - movs r0, 0x9 - movs r1, 0x20 - bl AllocSubstruct - adds r4, r0, 0 - cmp r4, 0 - beq _081CF9FC - ldr r1, =0x000006ac - movs r0, 0x12 - bl AllocSubstruct - str r0, [r4, 0x1C] - cmp r0, 0 - beq _081CF9FC - ldr r0, =sub_81CFA68 - str r0, [r4] - ldr r0, =sub_81CFB74 - movs r1, 0x1 - bl CreateLoopedTask - str r0, [r4, 0x4] - movs r0, 0 - str r0, [r4, 0x14] - movs r0, 0x1 - b _081CF9FE - .pool -_081CF9FC: - movs r0, 0 -_081CF9FE: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_81CF9BC - - thumb_func_start sub_81CFA04 -sub_81CFA04: @ 81CFA04 - push {r4,lr} - movs r0, 0x9 - movs r1, 0x20 - bl AllocSubstruct - adds r4, r0, 0 - cmp r4, 0 - beq _081CFA2C - movs r0, 0x12 - bl GetSubstructPtr - str r0, [r4, 0x1C] - ldr r0, =sub_81CFA88 - str r0, [r4] - movs r0, 0x1 - str r0, [r4, 0x14] - b _081CFA2E - .pool -_081CFA2C: - movs r0, 0 -_081CFA2E: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_81CFA04 - - thumb_func_start sub_81CFA34 -sub_81CFA34: @ 81CFA34 - push {lr} - movs r0, 0x9 - bl GetSubstructPtr - ldr r1, [r0] - bl _call_via_r1 - pop {r1} - bx r1 - thumb_func_end sub_81CFA34 - - thumb_func_start sub_81CFA48 -sub_81CFA48: @ 81CFA48 - push {lr} - movs r0, 0x9 - bl GetSubstructPtr - ldr r0, [r0, 0x18] - cmp r0, 0 - bne _081CFA5C - movs r0, 0x12 - bl FreePokenavSubstruct -_081CFA5C: - movs r0, 0x9 - bl FreePokenavSubstruct - pop {r0} - bx r0 - thumb_func_end sub_81CFA48 - - thumb_func_start sub_81CFA68 -sub_81CFA68: @ 81CFA68 - push {r4,lr} - adds r4, r0, 0 - ldr r0, [r4, 0x4] - bl IsLoopedTaskActive - cmp r0, 0 - bne _081CFA7A - ldr r0, =sub_81CFA88 - str r0, [r4] -_081CFA7A: - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end sub_81CFA68 - - thumb_func_start sub_81CFA88 -sub_81CFA88: @ 81CFA88 - push {r4,r5,lr} - adds r4, r0, 0 - ldr r2, =gMain - ldrh r1, [r2, 0x30] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _081CFAA0 - movs r0, 0x1 - b _081CFAFE - .pool -_081CFAA0: - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _081CFAAC - movs r0, 0x2 - b _081CFAFE -_081CFAAC: - ldrh r1, [r2, 0x2E] - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - beq _081CFABA - movs r0, 0x3 - b _081CFAFE -_081CFABA: - movs r0, 0x10 - ands r0, r1 - lsls r0, 16 - lsrs r2, r0, 16 - cmp r2, 0 - beq _081CFACA - movs r0, 0x4 - b _081CFAFE -_081CFACA: - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _081CFAE0 - str r2, [r4, 0x18] - ldr r0, =sub_81CFB08 - str r0, [r4] - movs r0, 0x5 - b _081CFAFE - .pool -_081CFAE0: - movs r5, 0x1 - adds r0, r5, 0 - ands r0, r1 - cmp r0, 0 - bne _081CFAEE - movs r0, 0 - b _081CFAFE -_081CFAEE: - bl GetSelectedMatchCall - ldr r1, [r4, 0x1C] - strh r0, [r1, 0x2] - str r5, [r4, 0x18] - ldr r0, =sub_81CFB10 - str r0, [r4] - movs r0, 0x6 -_081CFAFE: - pop {r4,r5} - pop {r1} - bx r1 - .pool - thumb_func_end sub_81CFA88 - - thumb_func_start sub_81CFB08 -sub_81CFB08: @ 81CFB08 - ldr r0, =0x000186a5 - bx lr - .pool - thumb_func_end sub_81CFB08 - - thumb_func_start sub_81CFB10 -sub_81CFB10: @ 81CFB10 - ldr r0, =0x000186ad - bx lr - .pool - thumb_func_end sub_81CFB10 - - thumb_func_start sub_81CFB18 -sub_81CFB18: @ 81CFB18 - push {lr} - movs r0, 0x9 - bl GetSubstructPtr - ldr r0, [r0, 0x14] - pop {r1} - bx r1 - thumb_func_end sub_81CFB18 - - thumb_func_start sub_81CFB28 -sub_81CFB28: @ 81CFB28 - push {lr} - movs r0, 0x9 - bl GetSubstructPtr - ldr r0, [r0, 0x1C] - adds r0, 0x4 - pop {r1} - bx r1 - thumb_func_end sub_81CFB28 - - thumb_func_start sub_81CFB38 -sub_81CFB38: @ 81CFB38 - push {lr} - movs r0, 0x9 - bl GetSubstructPtr - ldr r0, [r0, 0x1C] - ldrh r0, [r0] - pop {r1} - bx r1 - thumb_func_end sub_81CFB38 - - thumb_func_start sub_81CFB48 -sub_81CFB48: @ 81CFB48 - push {r4,lr} - movs r0, 0x9 - bl GetSubstructPtr - adds r4, r0, 0 - bl GetSelectedMatchCall - ldr r1, [r4, 0x1C] - lsls r0, 2 - adds r1, r0 - ldrh r0, [r1, 0x6] - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_81CFB48 - - thumb_func_start sub_81CFB64 -sub_81CFB64: @ 81CFB64 - push {lr} - movs r0, 0x9 - bl GetSubstructPtr - ldr r0, [r0, 0x1C] - ldrh r0, [r0, 0x2] - pop {r1} - bx r1 - thumb_func_end sub_81CFB64 - - thumb_func_start sub_81CFB74 -sub_81CFB74: @ 81CFB74 - push {lr} - ldr r2, =gUnknown_086235D8 - lsls r1, r0, 2 - adds r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {r1} - bx r1 - .pool - thumb_func_end sub_81CFB74 - - thumb_func_start sub_81CFB8C -sub_81CFB8C: @ 81CFB8C - push {r4-r6,lr} - sub sp, 0x4 - movs r0, 0x9 - bl GetSubstructPtr - adds r6, r0, 0 - ldr r0, [r6, 0x1C] - movs r1, 0 - strh r1, [r0] - ldr r0, [r6, 0x1C] - strh r1, [r0, 0x2] - ldr r1, =0xffffff00 - ldr r0, [sp] - ands r0, r1 - movs r1, 0xE - orrs r0, r1 - str r0, [sp] - movs r5, 0 -_081CFBB0: - movs r0, 0x64 - adds r1, r5, 0 - muls r1, r0 - ldr r0, =gPlayerParty - adds r4, r1, r0 - adds r0, r4, 0 - movs r1, 0x5 - bl GetMonData - cmp r0, 0 - beq _081CFC10 - adds r0, r4, 0 - movs r1, 0x6 - bl GetMonData - cmp r0, 0 - bne _081CFC0A - adds r0, r4, 0 - movs r1, 0x4 - bl GetMonData - cmp r0, 0 - bne _081CFC0A - adds r0, r4, 0 - movs r1, 0x52 - bl GetMonData - adds r3, r0, 0 - cmp r3, 0 - beq _081CFC0A - lsls r1, r5, 24 - lsrs r1, 16 - ldr r2, =0xffff00ff - ldr r0, [sp] - ands r0, r2 - orrs r0, r1 - lsls r2, r3, 16 - ldr r1, =0x0000ffff - ands r0, r1 - orrs r0, r2 - str r0, [sp] - adds r0, r6, 0 - mov r1, sp - bl sub_81CFCEC -_081CFC0A: - adds r5, 0x1 - cmp r5, 0x5 - ble _081CFBB0 -_081CFC10: - movs r0, 0x1 - add sp, 0x4 - pop {r4-r6} - pop {r1} - bx r1 - .pool - thumb_func_end sub_81CFB8C - - thumb_func_start sub_81CFC2C -sub_81CFC2C: @ 81CFC2C - push {lr} - movs r0, 0x9 - bl GetSubstructPtr - movs r1, 0 - str r1, [r0, 0x10] - str r1, [r0, 0xC] - movs r0, 0x1 - pop {r1} - bx r1 - thumb_func_end sub_81CFC2C - - thumb_func_start sub_81CFC40 -sub_81CFC40: @ 81CFC40 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x4 - movs r0, 0x9 - bl GetSubstructPtr - mov r8, r0 - ldr r7, [r0, 0xC] - ldr r6, [r0, 0x10] - movs r0, 0 - mov r9, r0 - cmp r7, 0xD - bgt _081CFCD4 - b _081CFCC8 -_081CFC60: - adds r0, r7, 0 - adds r1, r6, 0 - bl CheckBoxMonSanityAt - cmp r0, 0 - beq _081CFCA6 - lsls r0, r7, 24 - lsrs r5, r0, 24 - lsls r0, r6, 24 - lsrs r4, r0, 24 - adds r0, r5, 0 - adds r1, r4, 0 - movs r2, 0x52 - bl GetBoxMonDataAt - adds r3, r0, 0 - cmp r3, 0 - beq _081CFCA6 - ldr r1, =0xffffff00 - ldr r0, [sp] - ands r0, r1 - orrs r0, r5 - lsls r2, r4, 8 - ldr r1, =0xffff00ff - ands r0, r1 - orrs r0, r2 - lsls r2, r3, 16 - ldr r1, =0x0000ffff - ands r0, r1 - orrs r0, r2 - str r0, [sp] - mov r0, r8 - mov r1, sp - bl sub_81CFCEC -_081CFCA6: - movs r1, 0x1 - add r9, r1 - adds r6, 0x1 - mov r0, r9 - cmp r0, 0xE - ble _081CFCC8 - mov r1, r8 - str r7, [r1, 0xC] - str r6, [r1, 0x10] - movs r0, 0x3 - b _081CFCDC - .pool -_081CFCC8: - cmp r6, 0x1D - ble _081CFC60 - movs r6, 0 - adds r7, 0x1 - cmp r7, 0xD - ble _081CFCC8 -_081CFCD4: - movs r0, 0x1 - mov r1, r8 - str r0, [r1, 0x14] - movs r0, 0x4 -_081CFCDC: - add sp, 0x4 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_81CFC40 - - thumb_func_start sub_81CFCEC -sub_81CFCEC: @ 81CFCEC - push {r4-r7,lr} - adds r5, r0, 0 - adds r7, r1, 0 - movs r1, 0 - ldr r0, [r5, 0x1C] - ldrh r2, [r0] - lsrs r3, r2, 1 - cmp r2, r3 - beq _081CFD1C - adds r6, r0, 0 - ldrh r4, [r7, 0x2] -_081CFD02: - lsls r0, r3, 2 - adds r0, r6, r0 - ldrh r0, [r0, 0x6] - cmp r4, r0 - bls _081CFD10 - adds r2, r3, 0 - b _081CFD12 -_081CFD10: - adds r1, r3, 0x1 -_081CFD12: - subs r0, r2, r1 - lsrs r0, 1 - adds r3, r1, r0 - cmp r2, r3 - bne _081CFD02 -_081CFD1C: - ldr r0, [r5, 0x1C] - ldrh r2, [r0] - lsls r6, r3, 2 - cmp r2, r3 - bls _081CFD40 - lsls r0, r2, 2 - subs r4, r0, 0x4 -_081CFD2A: - ldr r0, [r5, 0x1C] - lsls r1, r2, 2 - adds r0, 0x4 - adds r1, r0, r1 - adds r0, r4 - ldr r0, [r0] - str r0, [r1] - subs r4, 0x4 - subs r2, 0x1 - cmp r2, r3 - bhi _081CFD2A -_081CFD40: - ldr r0, [r5, 0x1C] - adds r0, 0x4 - adds r0, r6 - ldr r1, [r7] - str r1, [r0] - ldr r1, [r5, 0x1C] - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_81CFCEC - - thumb_func_start sub_81CFD58 -sub_81CFD58: @ 81CFD58 - push {r4-r6,lr} - movs r5, 0 -_081CFD5C: - movs r0, 0x64 - adds r1, r5, 0 - muls r1, r0 - ldr r0, =gPlayerParty - adds r4, r1, r0 - adds r0, r4, 0 - movs r1, 0x5 - bl GetMonData - cmp r0, 0 - beq _081CFD8A - adds r0, r4, 0 - movs r1, 0x6 - bl GetMonData - cmp r0, 0 - bne _081CFD8A - adds r0, r4, 0 - movs r1, 0x53 - bl GetMonData - cmp r0, 0 - bne _081CFDB2 -_081CFD8A: - adds r5, 0x1 - cmp r5, 0x5 - ble _081CFD5C - movs r5, 0 -_081CFD92: - movs r4, 0 - lsls r6, r5, 24 -_081CFD96: - adds r0, r5, 0 - adds r1, r4, 0 - bl CheckBoxMonSanityAt - cmp r0, 0 - beq _081CFDBC - lsls r1, r4, 24 - lsrs r1, 24 - lsrs r0, r6, 24 - movs r2, 0x53 - bl GetBoxMonDataAt - cmp r0, 0 - beq _081CFDBC -_081CFDB2: - movs r0, 0x1 - b _081CFDCA - .pool -_081CFDBC: - adds r4, 0x1 - cmp r4, 0x1D - ble _081CFD96 - adds r5, 0x1 - cmp r5, 0xD - ble _081CFD92 - movs r0, 0 -_081CFDCA: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_81CFD58 - - thumb_func_start sub_81CFDD0 -sub_81CFDD0: @ 81CFDD0 - push {r4,lr} - movs r1, 0x81 - lsls r1, 4 - movs r0, 0xA - bl AllocSubstruct - adds r4, r0, 0 - cmp r4, 0 - beq _081CFE00 - ldr r0, =sub_81CFEB8 - movs r1, 0x1 - bl CreateLoopedTask - str r0, [r4, 0x4] - ldr r0, =sub_81CFE84 - str r0, [r4] - movs r0, 0 - str r0, [r4, 0xC] - movs r0, 0x1 - b _081CFE02 - .pool -_081CFE00: - movs r0, 0 -_081CFE02: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_81CFDD0 - - thumb_func_start sub_81CFE08 -sub_81CFE08: @ 81CFE08 - push {r4,lr} - movs r1, 0x81 - lsls r1, 4 - movs r0, 0xA - bl AllocSubstruct - adds r4, r0, 0 - cmp r4, 0 - beq _081CFE38 - ldr r0, =sub_81CFEB8 - movs r1, 0x1 - bl CreateLoopedTask - str r0, [r4, 0x4] - ldr r0, =sub_81CFE84 - str r0, [r4] - movs r0, 0x1 - str r0, [r4, 0xC] - b _081CFE3A - .pool -_081CFE38: - movs r0, 0 -_081CFE3A: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_81CFE08 - - thumb_func_start sub_81CFE40 -sub_81CFE40: @ 81CFE40 - push {r4,r5,lr} - adds r4, r0, 0 - movs r0, 0xA - bl GetSubstructPtr - adds r5, r0, 0 - ldr r0, =gUnknown_086237B8 - lsls r4, 2 - adds r4, r0 - ldr r0, [r4] - movs r1, 0x1 - bl CreateLoopedTask - str r0, [r5, 0x4] - ldr r0, =sub_81CFE84 - str r0, [r5] - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81CFE40 - - thumb_func_start sub_81CFE70 -sub_81CFE70: @ 81CFE70 - push {lr} - movs r0, 0xA - bl GetSubstructPtr - ldr r0, [r0] - bl _call_via_r0 - pop {r1} - bx r1 - thumb_func_end sub_81CFE70 - - thumb_func_start sub_81CFE84 -sub_81CFE84: @ 81CFE84 - push {lr} - movs r0, 0xA - bl GetSubstructPtr - ldr r0, [r0, 0x4] - bl IsLoopedTaskActive - pop {r1} - bx r1 - thumb_func_end sub_81CFE84 - - thumb_func_start sub_81CFE98 -sub_81CFE98: @ 81CFE98 - push {r4,lr} - movs r0, 0xA - bl GetSubstructPtr - adds r4, r0, 0 - bl sub_81C8234 - ldrb r0, [r4, 0x8] - bl RemoveWindow - movs r0, 0xA - bl FreePokenavSubstruct - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_81CFE98 - - thumb_func_start sub_81CFEB8 -sub_81CFEB8: @ 81CFEB8 - push {r4,r5,lr} - sub sp, 0x4 - adds r4, r0, 0 - movs r0, 0xA - bl GetSubstructPtr - adds r5, r0, 0 - cmp r4, 0x5 - bls _081CFECC - b _081CFFF2 -_081CFECC: - lsls r0, r4, 2 - ldr r1, =_081CFEDC - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_081CFEDC: - .4byte _081CFEF4 - .4byte _081CFF48 - .4byte _081CFF76 - .4byte _081CFF94 - .4byte _081CFFA4 - .4byte _081CFFDE -_081CFEF4: - ldr r0, =gUnknown_086237B0 - movs r1, 0x2 - bl InitBgTemplates - ldr r1, =gUnknown_08623604 - movs r0, 0 - str r0, [sp] - movs r0, 0x1 - movs r2, 0 - movs r3, 0 - bl decompress_and_copy_tile_data_to_vram - adds r1, r5, 0 - adds r1, 0x10 - movs r0, 0x1 - bl SetBgTilemapBuffer - ldr r1, =gUnknown_086236CC - movs r0, 0x1 - movs r2, 0 - movs r3, 0 - bl CopyToBgTilemapBuffer - ldr r0, =gUnknown_086235E4 - movs r1, 0x10 - movs r2, 0x20 - bl CopyPaletteIntoBufferUnfaded - movs r0, 0x1 - bl CopyBgTilemapBufferToVram -_081CFF32: - movs r0, 0 - b _081CFFF4 - .pool -_081CFF48: - bl free_temp_tile_data_buffers_if_possible - lsls r0, 24 - cmp r0, 0 - bne _081CFFEE - bl sub_81CFB18 - cmp r0, 0 - beq _081CFFEE - movs r0, 0x1 - movs r1, 0 - movs r2, 0 - bl ChangeBgX - movs r0, 0x1 - movs r1, 0 - movs r2, 0 - bl ChangeBgY - movs r0, 0x1 - bl ShowBg - b _081CFF32 -_081CFF76: - bl free_temp_tile_data_buffers_if_possible - lsls r0, 24 - cmp r0, 0 - bne _081CFFEE - ldr r0, =gUnknown_08623790 - movs r1, 0x20 - movs r2, 0x20 - bl CopyPaletteIntoBufferUnfaded - bl sub_81D0304 - b _081CFF32 - .pool -_081CFF94: - bl sub_81C8224 - cmp r0, 0 - bne _081CFFEE - adds r0, r5, 0 - bl sub_81D024C - b _081CFF32 -_081CFFA4: - bl free_temp_tile_data_buffers_if_possible - lsls r0, 24 - cmp r0, 0 - bne _081CFFEE - movs r0, 0x2 - bl ShowBg - movs r0, 0x3 - bl HideBg - movs r0, 0x9 - bl sub_81C7BA4 - movs r0, 0x1 - bl sub_81C7AC0 - ldr r0, [r5, 0xC] - cmp r0, 0 - bne _081CFF32 - movs r0, 0x2 - bl LoadLeftHeaderGfxForIndex - movs r0, 0x2 - movs r1, 0x1 - movs r2, 0 - bl sub_81C7FA0 - b _081CFF32 -_081CFFDE: - bl IsPaletteFadeActive - cmp r0, 0 - bne _081CFFEE - bl sub_81C8010 - cmp r0, 0 - beq _081CFFF2 -_081CFFEE: - movs r0, 0x2 - b _081CFFF4 -_081CFFF2: - movs r0, 0x4 -_081CFFF4: - add sp, 0x4 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_81CFEB8 - - thumb_func_start sub_81CFFFC -sub_81CFFFC: @ 81CFFFC - push {r4,r5,lr} - adds r4, r0, 0 - movs r0, 0xA - bl GetSubstructPtr - adds r5, r0, 0 - cmp r4, 0x1 - beq _081D004A - cmp r4, 0x1 - bgt _081D0016 - cmp r4, 0 - beq _081D0020 - b _081D006A -_081D0016: - cmp r4, 0x2 - beq _081D0052 - cmp r4, 0x3 - beq _081D005C - b _081D006A -_081D0020: - bl MatchCall_MoveCursorUp - cmp r0, 0x1 - beq _081D0038 - cmp r0, 0x1 - bgt _081D0032 - cmp r0, 0 - beq _081D006A - b _081D0058 -_081D0032: - cmp r0, 0x2 - beq _081D0042 - b _081D0058 -_081D0038: - movs r0, 0x5 - bl PlaySE - movs r0, 0x7 - b _081D006C -_081D0042: - movs r0, 0x5 - bl PlaySE - b _081D0058 -_081D004A: - bl sub_81C8630 - cmp r0, 0 - bne _081D0066 -_081D0052: - adds r0, r5, 0 - bl sub_81D0288 -_081D0058: - movs r0, 0 - b _081D006C -_081D005C: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, 24 - cmp r0, 0 - beq _081D006A -_081D0066: - movs r0, 0x2 - b _081D006C -_081D006A: - movs r0, 0x4 -_081D006C: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_81CFFFC - - thumb_func_start sub_81D0074 -sub_81D0074: @ 81D0074 - push {r4,r5,lr} - adds r4, r0, 0 - movs r0, 0xA - bl GetSubstructPtr - adds r5, r0, 0 - cmp r4, 0x1 - beq _081D00C2 - cmp r4, 0x1 - bgt _081D008E - cmp r4, 0 - beq _081D0098 - b _081D00E2 -_081D008E: - cmp r4, 0x2 - beq _081D00CA - cmp r4, 0x3 - beq _081D00D4 - b _081D00E2 -_081D0098: - bl MatchCall_MoveCursorDown - cmp r0, 0x1 - beq _081D00B0 - cmp r0, 0x1 - bgt _081D00AA - cmp r0, 0 - beq _081D00E2 - b _081D00D0 -_081D00AA: - cmp r0, 0x2 - beq _081D00BA - b _081D00D0 -_081D00B0: - movs r0, 0x5 - bl PlaySE - movs r0, 0x7 - b _081D00E4 -_081D00BA: - movs r0, 0x5 - bl PlaySE - b _081D00D0 -_081D00C2: - bl sub_81C8630 - cmp r0, 0 - bne _081D00DE -_081D00CA: - adds r0, r5, 0 - bl sub_81D0288 -_081D00D0: - movs r0, 0 - b _081D00E4 -_081D00D4: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, 24 - cmp r0, 0 - beq _081D00E2 -_081D00DE: - movs r0, 0x2 - b _081D00E4 -_081D00E2: - movs r0, 0x4 -_081D00E4: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_81D0074 - - thumb_func_start sub_81D00EC -sub_81D00EC: @ 81D00EC - push {r4,r5,lr} - adds r4, r0, 0 - movs r0, 0xA - bl GetSubstructPtr - adds r5, r0, 0 - cmp r4, 0x1 - beq _081D013A - cmp r4, 0x1 - bgt _081D0106 - cmp r4, 0 - beq _081D0110 - b _081D015A -_081D0106: - cmp r4, 0x2 - beq _081D0142 - cmp r4, 0x3 - beq _081D014C - b _081D015A -_081D0110: - bl MatchCall_PageUp - cmp r0, 0x1 - beq _081D0128 - cmp r0, 0x1 - bgt _081D0122 - cmp r0, 0 - beq _081D015A - b _081D0148 -_081D0122: - cmp r0, 0x2 - beq _081D0132 - b _081D0148 -_081D0128: - movs r0, 0x5 - bl PlaySE - movs r0, 0x7 - b _081D015C -_081D0132: - movs r0, 0x5 - bl PlaySE - b _081D0148 -_081D013A: - bl sub_81C8630 - cmp r0, 0 - bne _081D0156 -_081D0142: - adds r0, r5, 0 - bl sub_81D0288 -_081D0148: - movs r0, 0 - b _081D015C -_081D014C: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, 24 - cmp r0, 0 - beq _081D015A -_081D0156: - movs r0, 0x2 - b _081D015C -_081D015A: - movs r0, 0x4 -_081D015C: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_81D00EC - - thumb_func_start sub_81D0164 -sub_81D0164: @ 81D0164 - push {r4,r5,lr} - adds r4, r0, 0 - movs r0, 0xA - bl GetSubstructPtr - adds r5, r0, 0 - cmp r4, 0x1 - beq _081D01B2 - cmp r4, 0x1 - bgt _081D017E - cmp r4, 0 - beq _081D0188 - b _081D01D2 -_081D017E: - cmp r4, 0x2 - beq _081D01BA - cmp r4, 0x3 - beq _081D01C4 - b _081D01D2 -_081D0188: - bl MatchCall_PageDown - cmp r0, 0x1 - beq _081D01A0 - cmp r0, 0x1 - bgt _081D019A - cmp r0, 0 - beq _081D01D2 - b _081D01C0 -_081D019A: - cmp r0, 0x2 - beq _081D01AA - b _081D01C0 -_081D01A0: - movs r0, 0x5 - bl PlaySE - movs r0, 0x7 - b _081D01D4 -_081D01AA: - movs r0, 0x5 - bl PlaySE - b _081D01C0 -_081D01B2: - bl sub_81C8630 - cmp r0, 0 - bne _081D01CE -_081D01BA: - adds r0, r5, 0 - bl sub_81D0288 -_081D01C0: - movs r0, 0 - b _081D01D4 -_081D01C4: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, 24 - cmp r0, 0 - beq _081D01D2 -_081D01CE: - movs r0, 0x2 - b _081D01D4 -_081D01D2: - movs r0, 0x4 -_081D01D4: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_81D0164 - - thumb_func_start sub_81D01DC -sub_81D01DC: @ 81D01DC - push {lr} - cmp r0, 0 - beq _081D01E8 - cmp r0, 0x1 - beq _081D01FC - b _081D0214 -_081D01E8: - movs r0, 0x5 - bl PlaySE - movs r0, 0 - bl sub_81C7AC0 - bl sub_81C78A0 - movs r0, 0 - b _081D0216 -_081D01FC: - bl IsPaletteFadeActive - cmp r0, 0 - bne _081D020C - bl MainMenuLoopedTaskIsBusy - cmp r0, 0 - beq _081D0210 -_081D020C: - movs r0, 0x2 - b _081D0216 -_081D0210: - bl sub_81C7FDC -_081D0214: - movs r0, 0x4 -_081D0216: - pop {r1} - bx r1 - thumb_func_end sub_81D01DC - - thumb_func_start sub_81D021C -sub_81D021C: @ 81D021C - push {lr} - cmp r0, 0 - beq _081D0228 - cmp r0, 0x1 - beq _081D0238 - b _081D0244 -_081D0228: - movs r0, 0x5 - bl PlaySE - movs r0, 0 - bl sub_81C7AC0 - movs r0, 0 - b _081D0246 -_081D0238: - bl IsPaletteFadeActive - cmp r0, 0 - beq _081D0244 - movs r0, 0x2 - b _081D0246 -_081D0244: - movs r0, 0x4 -_081D0246: - pop {r1} - bx r1 - thumb_func_end sub_81D021C - - thumb_func_start sub_81D024C -sub_81D024C: @ 81D024C - push {r4,lr} - adds r4, r0, 0 - ldr r0, =gUnknown_086237D4 - bl AddWindow - strh r0, [r4, 0x8] - lsls r0, 24 - lsrs r0, 24 - bl PutWindowTilemap - bl sub_81CFB38 - adds r2, r0, 0 - ldrh r0, [r4, 0x8] - movs r1, 0 - bl sub_81D02B0 - ldrb r0, [r4, 0x8] - movs r1, 0x1 - bl CopyWindowToVram - adds r0, r4, 0 - bl sub_81D0288 - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81D024C - - thumb_func_start sub_81D0288 -sub_81D0288: @ 81D0288 - push {r4,r5,lr} - adds r5, r0, 0 - bl GetSelectedMatchCall - adds r4, r0, 0 - bl sub_81CFB38 - adds r2, r0, 0 - ldrh r0, [r5, 0x8] - adds r4, 0x1 - adds r1, r4, 0 - bl sub_81D02B0 - ldrb r0, [r5, 0x8] - movs r1, 0x2 - bl CopyWindowToVram - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_81D0288 - - thumb_func_start sub_81D02B0 -sub_81D02B0: @ 81D02B0 - push {r4,r5,lr} - sub sp, 0x1C - adds r4, r0, 0 - adds r5, r2, 0 - add r0, sp, 0xC - movs r2, 0x1 - movs r3, 0x3 - bl ConvertIntToDecimalStringN - movs r1, 0xBA - strb r1, [r0] - adds r0, 0x1 - adds r1, r5, 0 - movs r2, 0x1 - movs r3, 0x3 - bl ConvertIntToDecimalStringN - movs r0, 0x1 - add r1, sp, 0xC - movs r2, 0x38 - bl GetStringCenterAlignXOffset - adds r3, r0, 0 - lsls r4, 24 - lsrs r4, 24 - lsls r3, 24 - lsrs r3, 24 - movs r0, 0x1 - str r0, [sp] - movs r0, 0xFF - str r0, [sp, 0x4] - movs r0, 0 - str r0, [sp, 0x8] - adds r0, r4, 0 - movs r1, 0x1 - add r2, sp, 0xC - bl AddTextPrinterParameterized - add sp, 0x1C - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_81D02B0 - - thumb_func_start sub_81D0304 -sub_81D0304: @ 81D0304 - push {r4,lr} - sub sp, 0x18 - bl sub_81CFB28 - str r0, [sp] - bl sub_81CFB38 - mov r1, sp - movs r4, 0 - strh r0, [r1, 0x4] - movs r0, 0x4 - strb r0, [r1, 0x8] - bl sub_81CFB64 - mov r1, sp - strh r0, [r1, 0x6] - movs r0, 0xD - strb r0, [r1, 0x9] - movs r0, 0x11 - strb r0, [r1, 0xA] - mov r0, sp - movs r2, 0x1 - strb r2, [r0, 0xB] - movs r0, 0x8 - strb r0, [r1, 0xC] - movs r0, 0x2 - strb r0, [r1, 0xD] - mov r0, sp - strb r2, [r0, 0xE] - ldr r0, =sub_81D035C - str r0, [sp, 0x10] - str r4, [sp, 0x14] - ldr r0, =gUnknown_086237B4 - movs r2, 0 - bl sub_81C81D4 - add sp, 0x18 - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81D0304 - - thumb_func_start sub_81D035C -sub_81D035C: @ 81D035C - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r6, r1, 0 - adds r7, r0, 0 - ldrb r0, [r7] - cmp r0, 0xE - bne _081D03A4 - ldrb r1, [r7, 0x1] - movs r0, 0x64 - adds r4, r1, 0 - muls r4, r0 - ldr r0, =gPlayerParty - adds r4, r0 - adds r0, r4, 0 - bl GetMonGender - lsls r0, 24 - lsrs r5, r0, 24 - adds r0, r4, 0 - bl GetLevelFromMonExp - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - ldr r2, =gStringVar3 - adds r0, r4, 0 - movs r1, 0x2 - bl GetMonData - b _081D03CC - .pool -_081D03A4: - ldrb r0, [r7] - ldrb r1, [r7, 0x1] - bl GetBoxedMonPtr - adds r4, r0, 0 - bl GetBoxMonGender - lsls r0, 24 - lsrs r5, r0, 24 - adds r0, r4, 0 - bl GetLevelFromBoxMonExp - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - ldr r2, =gStringVar3 - adds r0, r4, 0 - movs r1, 0x2 - bl GetBoxMonData -_081D03CC: - ldr r4, =gStringVar3 - adds r0, r4, 0 - bl StringGetEnd10 - adds r0, r6, 0 - movs r1, 0x1 - adds r2, r4, 0 - movs r3, 0x3C - bl sub_81DB494 - adds r6, r0, 0 - cmp r5, 0 - beq _081D03F8 - cmp r5, 0xFE - beq _081D0400 - ldr r1, =gUnknown_086237F4 - b _081D0402 - .pool -_081D03F8: - ldr r1, =gUnknown_086237DC - b _081D0402 - .pool -_081D0400: - ldr r1, =gUnknown_086237E8 -_081D0402: - ldr r4, =gStringVar1 - adds r0, r4, 0 - bl StringCopy - movs r1, 0xBA - strb r1, [r0] - adds r0, 0x1 - movs r1, 0xF9 - strb r1, [r0] - adds r0, 0x1 - movs r1, 0x5 - strb r1, [r0] - adds r0, 0x1 - mov r1, r8 - movs r2, 0 - movs r3, 0x3 - bl ConvertIntToDecimalStringN - adds r0, r6, 0 - movs r1, 0x1 - adds r2, r4, 0 - movs r3, 0x36 - bl sub_81DB494 - adds r6, r0, 0 - ldrh r1, [r7, 0x2] - movs r2, 0x1 - movs r3, 0x2 - bl ConvertIntToDecimalStringN - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81D035C - - thumb_func_start sub_81D0450 -sub_81D0450: @ 81D0450 - push {r4,lr} - movs r0, 0xD - movs r1, 0x9C - bl AllocSubstruct - adds r4, r0, 0 - cmp r4, 0 - beq _081D0498 - movs r0, 0x12 - bl GetSubstructPtr - str r0, [r4, 0x8] - cmp r0, 0 - beq _081D0498 - adds r0, r4, 0 - bl sub_81D0814 - adds r1, r4, 0 - adds r1, 0x98 - ldr r0, =sub_81D04C4 - str r0, [r1] - ldr r1, =gKeyRepeatContinueDelay - movs r0, 0x3 - strh r0, [r1] - ldr r1, =gKeyRepeatStartDelay - movs r0, 0xA - strh r0, [r1] - movs r0, 0x1 - b _081D049A - .pool -_081D0498: - movs r0, 0 -_081D049A: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_81D0450 - - thumb_func_start sub_81D04A0 -sub_81D04A0: @ 81D04A0 - push {lr} - movs r0, 0xD - bl GetSubstructPtr - adds r1, r0, 0 - adds r1, 0x98 - ldr r1, [r1] - bl _call_via_r1 - pop {r1} - bx r1 - thumb_func_end sub_81D04A0 - - thumb_func_start sub_81D04B8 -sub_81D04B8: @ 81D04B8 - push {lr} - movs r0, 0xD - bl FreePokenavSubstruct - pop {r0} - bx r0 - thumb_func_end sub_81D04B8 - - thumb_func_start sub_81D04C4 -sub_81D04C4: @ 81D04C4 - push {r4,lr} - adds r4, r0, 0 - ldr r2, =gMain - ldrh r1, [r2, 0x30] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _081D04E4 - ldr r3, [r4, 0x8] - ldrh r0, [r3, 0x2] - cmp r0, 0 - beq _081D04E4 - subs r0, 0x1 - b _081D04FC - .pool -_081D04E4: - ldrh r1, [r2, 0x30] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _081D050C - ldr r3, [r4, 0x8] - ldrh r1, [r3, 0x2] - ldrh r0, [r3] - subs r0, 0x1 - cmp r1, r0 - bge _081D050C - adds r0, r1, 0x1 -_081D04FC: - movs r1, 0 - strh r0, [r3, 0x2] - strh r1, [r4, 0xC] - adds r0, r4, 0 - bl sub_81D0814 - movs r0, 0x1 - b _081D053E -_081D050C: - ldrh r2, [r2, 0x2E] - movs r0, 0x1 - ands r0, r2 - cmp r0, 0 - beq _081D0528 - adds r1, r4, 0 - adds r1, 0x98 - ldr r0, =sub_81D0548 - str r0, [r1] - movs r0, 0x2 - b _081D053E - .pool -_081D0528: - movs r0, 0x2 - ands r0, r2 - cmp r0, 0 - bne _081D0534 - movs r0, 0 - b _081D053E -_081D0534: - adds r1, r4, 0 - adds r1, 0x98 - ldr r0, =sub_81D05D4 - str r0, [r1] - movs r0, 0x5 -_081D053E: - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end sub_81D04C4 - - thumb_func_start sub_81D0548 -sub_81D0548: @ 81D0548 - push {r4,lr} - adds r4, r0, 0 - ldr r0, =gMain - ldrh r1, [r0, 0x30] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _081D0562 - adds r0, r4, 0 - bl sub_81D05DC - cmp r0, 0 - bne _081D05A4 -_081D0562: - ldr r0, =gMain - ldrh r1, [r0, 0x30] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _081D0578 - adds r0, r4, 0 - bl sub_81D061C - cmp r0, 0 - bne _081D05A4 -_081D0578: - ldr r0, =gMain - ldrh r1, [r0, 0x30] - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - beq _081D058E - adds r0, r4, 0 - bl sub_81D0664 - cmp r0, 0 - bne _081D05A4 -_081D058E: - ldr r0, =gMain - ldrh r1, [r0, 0x30] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _081D05AC - adds r0, r4, 0 - bl sub_81D0688 - cmp r0, 0 - beq _081D05AC -_081D05A4: - movs r0, 0x3 - b _081D05CA - .pool -_081D05AC: - ldr r0, =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - bne _081D05C0 - movs r0, 0 - b _081D05CA - .pool -_081D05C0: - adds r1, r4, 0 - adds r1, 0x98 - ldr r0, =sub_81D04C4 - str r0, [r1] - movs r0, 0x4 -_081D05CA: - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end sub_81D0548 - - thumb_func_start sub_81D05D4 -sub_81D05D4: @ 81D05D4 - ldr r0, =0x000186ae - bx lr - .pool - thumb_func_end sub_81D05D4 - - thumb_func_start sub_81D05DC -sub_81D05DC: @ 81D05DC - push {r4,lr} - adds r1, r0, 0 - ldrh r0, [r1, 0xC] - adds r2, r0, 0 - cmp r2, 0x18 - bhi _081D05F0 - cmp r2, 0x8 - bls _081D0612 - subs r0, 0x9 - b _081D060C -_081D05F0: - ldrh r3, [r1, 0x10] - adds r2, r3, 0 - cmp r2, 0 - beq _081D0612 - ldrh r0, [r1, 0xC] - subs r0, 0x1B - ldrh r4, [r1, 0xE] - adds r0, r4 - strh r0, [r1, 0xC] - lsls r0, 16 - lsrs r0, 16 - cmp r0, r2 - bcc _081D060E - subs r0, r3, 0x1 -_081D060C: - strh r0, [r1, 0xC] -_081D060E: - movs r0, 0x1 - b _081D0614 -_081D0612: - movs r0, 0 -_081D0614: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_81D05DC - - thumb_func_start sub_81D061C -sub_81D061C: @ 81D061C - push {lr} - adds r2, r0, 0 - ldrh r0, [r2, 0xC] - adds r1, r0, 0 - cmp r1, 0x18 - bhi _081D065C - ldrh r3, [r2, 0xE] - cmp r1, r3 - bcs _081D0640 - adds r0, 0x9 - strh r0, [r2, 0xC] - ldrh r1, [r2, 0x10] - lsls r0, 16 - lsrs r0, 16 - cmp r0, r1 - bcc _081D0658 - subs r0, r1, 0x1 - b _081D0656 -_081D0640: - ldrh r0, [r2, 0x12] - cmp r0, 0 - beq _081D065C - ldrh r1, [r2, 0xC] - ldrh r0, [r2, 0xE] - subs r0, r1, r0 - ldrh r1, [r2, 0x12] - cmp r0, r1 - blt _081D0654 - subs r0, r1, 0x1 -_081D0654: - adds r0, 0x1B -_081D0656: - strh r0, [r2, 0xC] -_081D0658: - movs r0, 0x1 - b _081D065E -_081D065C: - movs r0, 0 -_081D065E: - pop {r1} - bx r1 - thumb_func_end sub_81D061C - - thumb_func_start sub_81D0664 -sub_81D0664: @ 81D0664 - push {r4,r5,lr} - adds r5, r0, 0 - ldrh r4, [r5, 0xC] - adds r0, r4, 0 - movs r1, 0x9 - bl __umodsi3 - lsls r0, 16 - cmp r0, 0 - bne _081D067C - movs r0, 0 - b _081D0682 -_081D067C: - subs r0, r4, 0x1 - strh r0, [r5, 0xC] - movs r0, 0x1 -_081D0682: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_81D0664 - - thumb_func_start sub_81D0688 -sub_81D0688: @ 81D0688 - push {r4,r5,lr} - adds r5, r0, 0 - ldrh r4, [r5, 0xC] - adds r0, r4, 0 - movs r1, 0x9 - bl __umodsi3 - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, 0x7 - bgt _081D06BC - cmp r4, 0x1A - bhi _081D06AC - ldrh r0, [r5, 0x10] - subs r0, 0x1 - cmp r4, r0 - bge _081D06BC - b _081D06B4 -_081D06AC: - ldrh r0, [r5, 0x12] - subs r0, 0x1 - cmp r1, r0 - bge _081D06BC -_081D06B4: - adds r0, r4, 0x1 - strh r0, [r5, 0xC] - movs r0, 0x1 - b _081D06BE -_081D06BC: - movs r0, 0 -_081D06BE: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_81D0688 - - thumb_func_start sub_81D06C4 -sub_81D06C4: @ 81D06C4 - push {lr} - movs r0, 0xD - bl GetSubstructPtr - ldr r0, [r0, 0x8] - ldrh r0, [r0, 0x2] - pop {r1} - bx r1 - thumb_func_end sub_81D06C4 - - thumb_func_start sub_81D06D4 -sub_81D06D4: @ 81D06D4 - push {lr} - movs r0, 0xD - bl GetSubstructPtr - ldr r0, [r0, 0x8] - ldrh r0, [r0] - pop {r1} - bx r1 - thumb_func_end sub_81D06D4 - - thumb_func_start sub_81D06E4 -sub_81D06E4: @ 81D06E4 - push {r4-r7,lr} - adds r5, r0, 0 - adds r7, r1, 0 - adds r6, r2, 0 - movs r0, 0xD - bl GetSubstructPtr - ldr r1, [r0, 0x8] - ldrh r0, [r1, 0x2] - lsls r0, 2 - adds r0, 0x4 - adds r1, r0 - ldrb r0, [r1] - cmp r0, 0xE - bne _081D0730 - ldrb r1, [r1, 0x1] - movs r0, 0x64 - adds r4, r1, 0 - muls r4, r0 - ldr r0, =gPlayerParty - adds r4, r0 - adds r0, r4, 0 - movs r1, 0x2 - adds r2, r5, 0 - bl GetMonData - adds r0, r4, 0 - bl GetLevelFromMonExp - strb r0, [r7] - adds r0, r4, 0 - bl GetMonGender - strb r0, [r6] - b _081D0752 - .pool -_081D0730: - ldrb r0, [r1] - ldrb r1, [r1, 0x1] - bl GetBoxedMonPtr - adds r4, r0, 0 - bl GetBoxMonGender - strb r0, [r6] - adds r0, r4, 0 - bl GetLevelFromBoxMonExp - strb r0, [r7] - adds r0, r4, 0 - movs r1, 0x2 - adds r2, r5, 0 - bl GetBoxMonData -_081D0752: - adds r0, r5, 0 - bl StringGetEnd10 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_81D06E4 - - thumb_func_start sub_81D0760 -sub_81D0760: @ 81D0760 - push {r4-r7,lr} - adds r5, r0, 0 - adds r6, r1, 0 - adds r7, r2, 0 - movs r0, 0xD - bl GetSubstructPtr - ldr r1, [r0, 0x8] - ldrh r0, [r1, 0x2] - lsls r0, 2 - adds r0, 0x4 - adds r1, r0 - ldrb r0, [r1] - cmp r0, 0xE - bne _081D07AC - ldrb r1, [r1, 0x1] - movs r0, 0x64 - adds r4, r1, 0 - muls r4, r0 - ldr r0, =gPlayerParty - adds r4, r0 - adds r0, r4, 0 - movs r1, 0xB - bl GetMonData - strh r0, [r5] - adds r0, r4, 0 - movs r1, 0 - bl GetMonData - str r0, [r6] - adds r0, r4, 0 - movs r1, 0x1 - bl GetMonData - b _081D07D0 - .pool -_081D07AC: - ldrb r0, [r1] - ldrb r1, [r1, 0x1] - bl GetBoxedMonPtr - adds r4, r0, 0 - movs r1, 0xB - bl GetBoxMonData - strh r0, [r5] - adds r0, r4, 0 - movs r1, 0 - bl GetBoxMonData - str r0, [r6] - adds r0, r4, 0 - movs r1, 0x1 - bl GetBoxMonData -_081D07D0: - str r0, [r7] - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_81D0760 - - thumb_func_start sub_81D07D8 -sub_81D07D8: @ 81D07D8 - push {lr} - movs r0, 0xD - bl GetSubstructPtr - ldr r1, [r0, 0x8] - ldrh r0, [r1, 0x2] - lsls r0, 2 - adds r0, 0x4 - adds r1, r0 - ldrb r0, [r1] - cmp r0, 0xE - beq _081D07FA - ldrb r1, [r1, 0x1] - movs r2, 0x52 - bl GetBoxMonDataAt - b _081D080A -_081D07FA: - ldrb r1, [r1, 0x1] - movs r0, 0x64 - muls r0, r1 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x52 - bl GetMonData -_081D080A: - pop {r1} - bx r1 - .pool - thumb_func_end sub_81D07D8 - - thumb_func_start sub_81D0814 -sub_81D0814: @ 81D0814 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - adds r5, r0, 0 - ldr r0, [r5, 0x8] - ldrh r1, [r0, 0x2] - lsls r1, 2 - adds r1, 0x4 - adds r1, r0, r1 - ldrb r0, [r1] - cmp r0, 0xE - bne _081D0848 - ldrb r1, [r1, 0x1] - movs r0, 0x64 - muls r0, r1 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x53 - bl GetMonData - b _081D0852 - .pool -_081D0848: - ldrb r0, [r1] - ldrb r1, [r1, 0x1] - movs r2, 0x53 - bl GetBoxMonDataAt -_081D0852: - mov r12, r0 - movs r0, 0 - strh r0, [r5, 0x10] - strh r0, [r5, 0x12] - movs r6, 0 - ldr r0, =gUnknown_086237F8 - mov r9, r0 - mov r10, r9 -_081D0862: - lsls r2, r6, 2 - mov r3, r9 - adds r1, r2, r3 - movs r0, 0x1 - ldrb r3, [r1] - lsls r0, r3 - subs r4, r0, 0x1 - mov r0, r12 - ands r4, r0 - ldrb r0, [r1, 0x3] - adds r7, r2, 0 - cmp r0, 0 - bne _081D08AC - movs r3, 0 - adds r6, 0x1 - mov r8, r6 - cmp r3, r4 - bge _081D08D6 - adds r6, r5, 0 - adds r6, 0x14 - mov r1, r10 - adds r0, r7, r1 - ldrb r2, [r0, 0x2] -_081D0890: - ldrh r0, [r5, 0x10] - adds r1, r0, 0x1 - strh r1, [r5, 0x10] - lsls r0, 16 - lsrs r0, 14 - adds r0, r6, r0 - adds r1, r2, r3 - str r1, [r0] - adds r3, 0x1 - cmp r3, r4 - blt _081D0890 - b _081D08D6 - .pool -_081D08AC: - movs r3, 0 - adds r6, 0x1 - mov r8, r6 - cmp r3, r4 - bge _081D08D6 - adds r6, r5, 0 - adds r6, 0x78 - mov r1, r10 - adds r0, r7, r1 - ldrb r2, [r0, 0x2] -_081D08C0: - ldrh r0, [r5, 0x12] - adds r1, r0, 0x1 - strh r1, [r5, 0x12] - lsls r0, 16 - lsrs r0, 14 - adds r0, r6, r0 - adds r1, r2, r3 - str r1, [r0] - adds r3, 0x1 - cmp r3, r4 - blt _081D08C0 -_081D08D6: - mov r3, r9 - adds r0, r7, r3 - mov r1, r12 - ldrb r0, [r0] - lsrs r1, r0 - mov r12, r1 - mov r6, r8 - cmp r6, 0x10 - bls _081D0862 - ldrh r0, [r5, 0x10] - cmp r0, 0 - beq _081D0900 - subs r0, 0x1 - movs r1, 0x9 - bl __divsi3 - lsls r1, r0, 3 - adds r1, r0 - movs r0, 0 - strh r1, [r5, 0xE] - b _081D0904 -_081D0900: - strh r0, [r5, 0xE] - movs r0, 0x1B -_081D0904: - strh r0, [r5, 0xC] - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_81D0814 - - thumb_func_start sub_81D0914 -sub_81D0914: @ 81D0914 - push {r4,lr} - adds r4, r0, 0 - movs r0, 0xD - bl GetSubstructPtr - ldrh r1, [r0, 0x10] - str r1, [r4] - adds r0, 0x14 - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_81D0914 - - thumb_func_start sub_81D092C -sub_81D092C: @ 81D092C - push {r4,lr} - adds r4, r0, 0 - movs r0, 0xD - bl GetSubstructPtr - ldrh r1, [r0, 0x12] - str r1, [r4] - adds r0, 0x78 - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_81D092C - - thumb_func_start sub_81D0944 -sub_81D0944: @ 81D0944 - push {lr} - movs r0, 0xD - bl GetSubstructPtr - ldrh r0, [r0, 0xC] - pop {r1} - bx r1 - thumb_func_end sub_81D0944 - - thumb_func_start sub_81D0954 -sub_81D0954: @ 81D0954 - push {lr} - movs r0, 0xD - bl GetSubstructPtr - adds r1, r0, 0 - ldrh r0, [r1, 0xC] - cmp r0, 0x18 - ble _081D096C - subs r0, 0x1B - lsls r0, 2 - adds r1, 0x78 - b _081D0970 -_081D096C: - lsls r0, 2 - adds r1, 0x14 -_081D0970: - adds r1, r0 - ldr r0, [r1] - pop {r1} - bx r1 - thumb_func_end sub_81D0954 - - thumb_func_start sub_81D0978 -sub_81D0978: @ 81D0978 - push {r4,lr} - ldr r1, =0x0000101c - movs r0, 0xE - bl AllocSubstruct - adds r4, r0, 0 - cmp r4, 0 - beq _081D09A8 - ldr r0, =sub_81D0A6C - movs r1, 0x1 - bl CreateLoopedTask - str r0, [r4, 0x4] - ldr r0, =sub_81D0A58 - str r0, [r4] - movs r0, 0x1 - b _081D09AA - .pool -_081D09A8: - movs r0, 0 -_081D09AA: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_81D0978 - - thumb_func_start sub_81D09B0 -sub_81D09B0: @ 81D09B0 - push {r4,r5,lr} - adds r4, r0, 0 - movs r0, 0xE - bl GetSubstructPtr - adds r5, r0, 0 - ldr r0, =gUnknown_08624BA0 - lsls r4, 2 - adds r4, r0 - ldr r0, [r4] - movs r1, 0x1 - bl CreateLoopedTask - str r0, [r5, 0x4] - ldr r0, =sub_81D0A58 - str r0, [r5] - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81D09B0 - - thumb_func_start sub_81D09E0 -sub_81D09E0: @ 81D09E0 - push {lr} - movs r0, 0xE - bl GetSubstructPtr - ldr r0, [r0] - bl _call_via_r0 - pop {r1} - bx r1 - thumb_func_end sub_81D09E0 - - thumb_func_start sub_81D09F4 -sub_81D09F4: @ 81D09F4 - push {r4,lr} - movs r0, 0xE - bl GetSubstructPtr - adds r4, r0, 0 - ldrb r0, [r4, 0xA] - bl RemoveWindow - ldrb r0, [r4, 0x8] - bl RemoveWindow - ldrb r0, [r4, 0xC] - bl RemoveWindow - ldrb r0, [r4, 0xE] - bl RemoveWindow - adds r0, r4, 0 - bl sub_81D1178 - movs r0, 0x9 - bl FreeSpriteTilesByTag - movs r0, 0xF - bl FreeSpritePaletteByTag - movs r0, 0x10 - bl FreeSpritePaletteByTag - movs r0, 0x11 - bl FreeSpritePaletteByTag - movs r0, 0x12 - bl FreeSpritePaletteByTag - movs r0, 0x13 - bl FreeSpritePaletteByTag - ldr r0, [r4, 0x14] - bl FreeSpriteOamMatrix - ldr r0, [r4, 0x14] - bl DestroySprite - movs r0, 0xE - bl FreePokenavSubstruct - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_81D09F4 - - thumb_func_start sub_81D0A58 -sub_81D0A58: @ 81D0A58 - push {lr} - movs r0, 0xE - bl GetSubstructPtr - ldr r0, [r0, 0x4] - bl IsLoopedTaskActive - pop {r1} - bx r1 - thumb_func_end sub_81D0A58 - - thumb_func_start sub_81D0A6C -sub_81D0A6C: @ 81D0A6C - push {r4,r5,lr} - sub sp, 0x8 - adds r4, r0, 0 - movs r0, 0xE - bl GetSubstructPtr - adds r5, r0, 0 - cmp r4, 0x9 - bls _081D0A80 - b _081D0C48 -_081D0A80: - lsls r0, r4, 2 - ldr r1, =_081D0A90 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_081D0A90: - .4byte _081D0AB8 - .4byte _081D0B04 - .4byte _081D0B74 - .4byte _081D0B88 - .4byte _081D0B9C - .4byte _081D0BB0 - .4byte _081D0BC4 - .4byte _081D0BD8 - .4byte _081D0BE8 - .4byte _081D0C3C -_081D0AB8: - ldr r0, =gUnknown_08624B98 - movs r1, 0x2 - bl InitBgTemplates - ldr r1, =gUnknown_08DDE030 - movs r0, 0 - str r0, [sp] - movs r0, 0x2 - movs r2, 0 - movs r3, 0 - bl decompress_and_copy_tile_data_to_vram - adds r1, r5, 0 - adds r1, 0x1C - movs r0, 0x2 - bl SetBgTilemapBuffer - ldr r1, =gUnknown_08DDE12C - movs r0, 0x2 - movs r2, 0 - movs r3, 0 - bl CopyToBgTilemapBuffer - ldr r0, =gUnknown_08DDE010 - movs r1, 0x10 - movs r2, 0x20 - bl CopyPaletteIntoBufferUnfaded - b _081D0BBA - .pool -_081D0B04: - bl free_temp_tile_data_buffers_if_possible - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0 - beq _081D0B12 - b _081D0C44 -_081D0B12: - movs r0, 0x1 - movs r1, 0 - movs r2, 0 - movs r3, 0x1 - bl sub_8199DF0 - ldr r1, =gUnknown_086240B8 - str r4, [sp] - movs r0, 0x1 - movs r2, 0 - movs r3, 0x1 - bl decompress_and_copy_tile_data_to_vram - ldr r0, =0x0000081c - adds r1, r5, r0 - movs r0, 0x1 - bl SetBgTilemapBuffer - movs r0, 0x20 - str r0, [sp] - movs r0, 0x14 - str r0, [sp, 0x4] - movs r0, 0x1 - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl FillBgTilemapBufferRect_Palette0 - ldr r0, =gUnknown_08623FF8 - movs r1, 0x20 - movs r2, 0xA0 - bl CopyPaletteIntoBufferUnfaded - ldr r0, =gUnknown_08624098 - movs r1, 0xA0 - movs r2, 0x20 - bl CopyPaletteIntoBufferUnfaded - movs r0, 0x1 - b _081D0BBC - .pool -_081D0B74: - bl free_temp_tile_data_buffers_if_possible - lsls r0, 24 - cmp r0, 0 - bne _081D0C44 - adds r0, r5, 0 - bl sub_81D0E60 - movs r0, 0 - b _081D0C4A -_081D0B88: - bl free_temp_tile_data_buffers_if_possible - lsls r0, 24 - cmp r0, 0 - bne _081D0C44 - adds r0, r5, 0 - bl sub_81D0FCC - movs r0, 0 - b _081D0C4A -_081D0B9C: - bl free_temp_tile_data_buffers_if_possible - lsls r0, 24 - cmp r0, 0 - bne _081D0C44 - adds r0, r5, 0 - bl sub_81D10A4 - movs r0, 0 - b _081D0C4A -_081D0BB0: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, 24 - cmp r0, 0 - bne _081D0C44 -_081D0BBA: - movs r0, 0x2 -_081D0BBC: - bl CopyBgTilemapBufferToVram - movs r0, 0 - b _081D0C4A -_081D0BC4: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, 24 - cmp r0, 0 - bne _081D0C44 - adds r0, r5, 0 - bl sub_81D1148 - movs r0, 0x1 - b _081D0C4A -_081D0BD8: - adds r0, r5, 0 - bl sub_81D12D8 - movs r0, 0xA - bl sub_81C7BA4 - movs r0, 0 - b _081D0C4A -_081D0BE8: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, 24 - cmp r0, 0 - bne _081D0C44 - adds r0, r5, 0 - bl sub_81D13FC - movs r0, 0x1 - movs r1, 0 - movs r2, 0 - bl ChangeBgX - movs r0, 0x1 - movs r1, 0 - movs r2, 0 - bl ChangeBgY - movs r0, 0x2 - movs r1, 0 - movs r2, 0 - bl ChangeBgX - movs r0, 0x2 - movs r1, 0 - movs r2, 0 - bl ChangeBgY - movs r0, 0x1 - bl ShowBg - movs r0, 0x2 - bl ShowBg - movs r0, 0x3 - bl HideBg - movs r0, 0x1 - bl sub_81C7AC0 - movs r0, 0 - b _081D0C4A -_081D0C3C: - bl IsPaletteFadeActive - cmp r0, 0 - beq _081D0C48 -_081D0C44: - movs r0, 0x2 - b _081D0C4A -_081D0C48: - movs r0, 0x4 -_081D0C4A: - add sp, 0x8 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_81D0A6C - - thumb_func_start sub_81D0C54 -sub_81D0C54: @ 81D0C54 - push {lr} - cmp r0, 0 - beq _081D0C60 - cmp r0, 0x1 - beq _081D0C70 - b _081D0C7C -_081D0C60: - movs r0, 0x5 - bl PlaySE - movs r0, 0 - bl sub_81C7AC0 - movs r0, 0 - b _081D0C7E -_081D0C70: - bl IsPaletteFadeActive - cmp r0, 0 - beq _081D0C7C - movs r0, 0x2 - b _081D0C7E -_081D0C7C: - movs r0, 0x4 -_081D0C7E: - pop {r1} - bx r1 - thumb_func_end sub_81D0C54 - - thumb_func_start sub_81D0C84 -sub_81D0C84: @ 81D0C84 - push {r4,r5,lr} - adds r5, r0, 0 - movs r0, 0xE - bl GetSubstructPtr - adds r4, r0, 0 - cmp r5, 0x6 - bhi _081D0D24 - lsls r0, r5, 2 - ldr r1, =_081D0CA4 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_081D0CA4: - .4byte _081D0CC0 - .4byte _081D0CD0 - .4byte _081D0CE4 - .4byte _081D0CEE - .4byte _081D0CF8 - .4byte _081D0D02 - .4byte _081D0D16 -_081D0CC0: - movs r0, 0x5 - bl PlaySE - adds r0, r4, 0 - bl sub_81D11D8 - movs r0, 0 - b _081D0D26 -_081D0CD0: - adds r0, r4, 0 - bl sub_81D1234 - cmp r0, 0 - bne _081D0D20 - adds r0, r4, 0 - bl sub_81D0FF0 - movs r0, 0x1 - b _081D0D26 -_081D0CE4: - adds r0, r4, 0 - bl sub_81D12D8 - movs r0, 0x1 - b _081D0D26 -_081D0CEE: - adds r0, r4, 0 - bl sub_81D10D0 - movs r0, 0x1 - b _081D0D26 -_081D0CF8: - adds r0, r4, 0 - bl sub_81D0E84 - movs r0, 0x1 - b _081D0D26 -_081D0D02: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, 24 - cmp r0, 0 - bne _081D0D20 - adds r0, r4, 0 - bl sub_81D11FC - movs r0, 0 - b _081D0D26 -_081D0D16: - adds r0, r4, 0 - bl sub_81D1234 - cmp r0, 0 - beq _081D0D24 -_081D0D20: - movs r0, 0x2 - b _081D0D26 -_081D0D24: - movs r0, 0x4 -_081D0D26: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_81D0C84 - - thumb_func_start sub_81D0D2C -sub_81D0D2C: @ 81D0D2C - push {r4,r5,lr} - adds r4, r0, 0 - movs r0, 0xE - bl GetSubstructPtr - adds r5, r0, 0 - cmp r4, 0x1 - beq _081D0D5C - cmp r4, 0x1 - bgt _081D0D46 - cmp r4, 0 - beq _081D0D4C - b _081D0D84 -_081D0D46: - cmp r4, 0x2 - beq _081D0D76 - b _081D0D84 -_081D0D4C: - movs r0, 0x5 - bl PlaySE - adds r0, r5, 0 - bl sub_81D1448 - movs r0, 0 - b _081D0D86 -_081D0D5C: - adds r0, r5, 0 - bl sub_81D1524 - cmp r0, 0 - bne _081D0D80 - adds r0, r5, 0 - bl sub_81D0EFC - movs r0, 0xB - bl sub_81C7BA4 - movs r0, 0 - b _081D0D86 -_081D0D76: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, 24 - cmp r0, 0 - beq _081D0D84 -_081D0D80: - movs r0, 0x2 - b _081D0D86 -_081D0D84: - movs r0, 0x4 -_081D0D86: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_81D0D2C - - thumb_func_start sub_81D0D8C -sub_81D0D8C: @ 81D0D8C - push {r4,r5,lr} - adds r4, r0, 0 - movs r0, 0xE - bl GetSubstructPtr - adds r5, r0, 0 - cmp r4, 0x1 - beq _081D0DC0 - cmp r4, 0x1 - bgt _081D0DA6 - cmp r4, 0 - beq _081D0DB0 - b _081D0DF6 -_081D0DA6: - cmp r4, 0x2 - beq _081D0DD4 - cmp r4, 0x3 - beq _081D0DE8 - b _081D0DF6 -_081D0DB0: - movs r0, 0x5 - bl PlaySE - adds r0, r5, 0 - bl sub_81D1500 - movs r0, 0 - b _081D0DF8 -_081D0DC0: - adds r0, r5, 0 - bl sub_81D1524 - cmp r0, 0 - bne _081D0DF2 - adds r0, r5, 0 - bl sub_81D1448 - movs r0, 0 - b _081D0DF8 -_081D0DD4: - adds r0, r5, 0 - bl sub_81D1524 - cmp r0, 0 - bne _081D0DF2 - adds r0, r5, 0 - bl sub_81D0EFC - movs r0, 0 - b _081D0DF8 -_081D0DE8: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, 24 - cmp r0, 0 - beq _081D0DF6 -_081D0DF2: - movs r0, 0x2 - b _081D0DF8 -_081D0DF6: - movs r0, 0x4 -_081D0DF8: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_81D0D8C - - thumb_func_start sub_81D0E00 -sub_81D0E00: @ 81D0E00 - push {r4,r5,lr} - adds r4, r0, 0 - movs r0, 0xE - bl GetSubstructPtr - adds r5, r0, 0 - cmp r4, 0x1 - beq _081D0E30 - cmp r4, 0x1 - bgt _081D0E1A - cmp r4, 0 - beq _081D0E20 - b _081D0E58 -_081D0E1A: - cmp r4, 0x2 - beq _081D0E4A - b _081D0E58 -_081D0E20: - movs r0, 0x5 - bl PlaySE - adds r0, r5, 0 - bl sub_81D1500 - movs r0, 0 - b _081D0E5A -_081D0E30: - adds r0, r5, 0 - bl sub_81D1524 - cmp r0, 0 - bne _081D0E54 - adds r0, r5, 0 - bl sub_81D0E84 - movs r0, 0xA - bl sub_81C7BA4 - movs r0, 0 - b _081D0E5A -_081D0E4A: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, 24 - cmp r0, 0 - beq _081D0E58 -_081D0E54: - movs r0, 0x2 - b _081D0E5A -_081D0E58: - movs r0, 0x4 -_081D0E5A: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_81D0E00 - - thumb_func_start sub_81D0E60 -sub_81D0E60: @ 81D0E60 - push {r4,lr} - adds r4, r0, 0 - ldr r0, =gUnknown_08624BB8 - bl AddWindow - strh r0, [r4, 0xA] - lsls r0, 24 - lsrs r0, 24 - bl PutWindowTilemap - adds r0, r4, 0 - bl sub_81D0E84 - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81D0E60 - - thumb_func_start sub_81D0E84 -sub_81D0E84: @ 81D0E84 - push {r4,r5,lr} - sub sp, 0x10 - adds r5, r0, 0 - ldr r1, =gUnknown_08624BC0 - add r0, sp, 0xC - movs r2, 0x3 - bl memcpy - ldr r4, =gStringVar1 - bl sub_81D07D8 - adds r1, r0, 0 - adds r0, r4, 0 - movs r2, 0 - movs r3, 0x2 - bl ConvertIntToDecimalStringN - bl DynamicPlaceholderTextUtil_Reset - movs r0, 0 - adds r1, r4, 0 - bl DynamicPlaceholderTextUtil_SetPlaceholderPtr - ldr r4, =gStringVar4 - ldr r1, =gText_RibbonsF700 - adds r0, r4, 0 - bl DynamicPlaceholderTextUtil_ExpandPlaceholders - ldrb r0, [r5, 0xA] - movs r1, 0x44 - bl FillWindowPixelBuffer - ldrb r0, [r5, 0xA] - add r1, sp, 0xC - str r1, [sp] - movs r1, 0x1 - negs r1, r1 - str r1, [sp, 0x4] - str r4, [sp, 0x8] - movs r1, 0x1 - movs r2, 0 - movs r3, 0x1 - bl AddTextPrinterParameterized3 - ldrb r0, [r5, 0xA] - movs r1, 0x2 - bl CopyWindowToVram - add sp, 0x10 - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81D0E84 - - thumb_func_start sub_81D0EFC -sub_81D0EFC: @ 81D0EFC - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x10 - adds r7, r0, 0 - bl sub_81D0954 - adds r5, r0, 0 - ldr r1, =gUnknown_08624BC0 - add r0, sp, 0xC - movs r2, 0x3 - bl memcpy - ldrb r0, [r7, 0xA] - movs r1, 0x44 - bl FillWindowPixelBuffer - cmp r5, 0x18 - bhi _081D0F60 - lsls r1, r5, 3 - ldr r0, =gRibbonDescriptionPointers - adds r6, r1, r0 - movs r5, 0x80 - lsls r5, 17 - movs r4, 0x1 -_081D0F2E: - ldrb r0, [r7, 0xA] - lsrs r3, r5, 24 - add r1, sp, 0xC - str r1, [sp] - movs r1, 0x1 - negs r1, r1 - str r1, [sp, 0x4] - ldm r6!, {r1} - str r1, [sp, 0x8] - movs r1, 0x1 - movs r2, 0 - bl AddTextPrinterParameterized3 - movs r0, 0x80 - lsls r0, 21 - adds r5, r0 - subs r4, 0x1 - cmp r4, 0 - bge _081D0F2E - b _081D0FAA - .pool -_081D0F60: - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - adds r0, r5 - ldr r1, =0x0000318f - adds r0, r1 - ldrb r5, [r0] - cmp r5, 0 - beq _081D0FB2 - subs r5, 0x1 - movs r4, 0 - ldr r0, =gGiftRibbonDescriptionPointers - mov r8, r0 - movs r6, 0x80 - lsls r6, 17 -_081D0F7C: - ldrb r0, [r7, 0xA] - lsrs r3, r6, 24 - add r1, sp, 0xC - str r1, [sp] - movs r1, 0x1 - negs r1, r1 - str r1, [sp, 0x4] - lsls r1, r4, 2 - lsls r2, r5, 3 - adds r1, r2 - add r1, r8 - ldr r1, [r1] - str r1, [sp, 0x8] - movs r1, 0x1 - movs r2, 0 - bl AddTextPrinterParameterized3 - movs r0, 0x80 - lsls r0, 21 - adds r6, r0 - adds r4, 0x1 - cmp r4, 0x1 - ble _081D0F7C -_081D0FAA: - ldrb r0, [r7, 0xA] - movs r1, 0x2 - bl CopyWindowToVram -_081D0FB2: - add sp, 0x10 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81D0EFC - - thumb_func_start sub_81D0FCC -sub_81D0FCC: @ 81D0FCC - push {r4,lr} - adds r4, r0, 0 - ldr r0, =gUnknown_08624BC4 - bl AddWindow - strh r0, [r4, 0x8] - lsls r0, 24 - lsrs r0, 24 - bl PutWindowTilemap - adds r0, r4, 0 - bl sub_81D0FF0 - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81D0FCC - - thumb_func_start sub_81D0FF0 -sub_81D0FF0: @ 81D0FF0 - push {r4-r7,lr} - sub sp, 0x10 - ldrh r7, [r0, 0x8] - ldrb r5, [r0, 0x8] - adds r0, r5, 0 - movs r1, 0x11 - bl FillWindowPixelBuffer - ldr r4, =gStringVar3 - mov r6, sp - adds r6, 0xD - adds r0, r4, 0 - add r1, sp, 0xC - adds r2, r6, 0 - bl sub_81D06E4 - movs r0, 0x1 - str r0, [sp] - movs r0, 0xFF - str r0, [sp, 0x4] - movs r0, 0 - str r0, [sp, 0x8] - adds r0, r5, 0 - movs r1, 0x1 - adds r2, r4, 0 - movs r3, 0 - bl AddTextPrinterParameterized - ldrb r0, [r6] - cmp r0, 0 - beq _081D1040 - cmp r0, 0xFE - beq _081D1048 - ldr r1, =gUnknown_08624BE4 - b _081D104A - .pool -_081D1040: - ldr r1, =gUnknown_08624BCC - b _081D104A - .pool -_081D1048: - ldr r1, =gUnknown_08624BD8 -_081D104A: - ldr r5, =gStringVar1 - adds r0, r5, 0 - bl StringCopy - movs r1, 0xBA - strb r1, [r0] - adds r0, 0x1 - movs r1, 0xF9 - strb r1, [r0] - adds r0, 0x1 - movs r1, 0x5 - strb r1, [r0] - adds r0, 0x1 - add r1, sp, 0xC - ldrb r1, [r1] - movs r2, 0 - movs r3, 0x3 - bl ConvertIntToDecimalStringN - lsls r4, r7, 24 - lsrs r4, 24 - movs r0, 0x1 - str r0, [sp] - movs r0, 0xFF - str r0, [sp, 0x4] - movs r0, 0 - str r0, [sp, 0x8] - adds r0, r4, 0 - movs r1, 0x1 - adds r2, r5, 0 - movs r3, 0x3C - bl AddTextPrinterParameterized - adds r0, r4, 0 - movs r1, 0x2 - bl CopyWindowToVram - add sp, 0x10 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81D0FF0 - - thumb_func_start sub_81D10A4 -sub_81D10A4: @ 81D10A4 - push {r4,lr} - adds r4, r0, 0 - ldr r0, =gUnknown_08624BE8 - bl AddWindow - strh r0, [r4, 0xC] - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x11 - bl FillWindowPixelBuffer - ldrb r0, [r4, 0xC] - bl PutWindowTilemap - adds r0, r4, 0 - bl sub_81D10D0 - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81D10A4 - - thumb_func_start sub_81D10D0 -sub_81D10D0: @ 81D10D0 - push {r4-r6,lr} - mov r6, r8 - push {r6} - sub sp, 0xC - mov r8, r0 - bl sub_81D06C4 - adds r4, r0, 0 - adds r4, 0x1 - bl sub_81D06D4 - adds r6, r0, 0 - ldr r5, =gStringVar1 - adds r0, r5, 0 - adds r1, r4, 0 - movs r2, 0x1 - movs r3, 0x3 - bl ConvertIntToDecimalStringN - movs r1, 0xBA - strb r1, [r0] - adds r0, 0x1 - adds r1, r6, 0 - movs r2, 0x1 - movs r3, 0x3 - bl ConvertIntToDecimalStringN - movs r0, 0x1 - adds r1, r5, 0 - movs r2, 0x38 - bl GetStringCenterAlignXOffset - adds r3, r0, 0 - mov r1, r8 - ldrb r0, [r1, 0xC] - lsls r3, 24 - lsrs r3, 24 - movs r1, 0x1 - str r1, [sp] - movs r1, 0xFF - str r1, [sp, 0x4] - movs r1, 0 - str r1, [sp, 0x8] - movs r1, 0x1 - adds r2, r5, 0 - bl AddTextPrinterParameterized - mov r1, r8 - ldrb r0, [r1, 0xC] - movs r1, 0x2 - bl CopyWindowToVram - add sp, 0xC - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81D10D0 - - thumb_func_start sub_81D1148 -sub_81D1148: @ 81D1148 - push {r4,lr} - sub sp, 0xC - adds r4, r0, 0 - add r1, sp, 0x4 - add r2, sp, 0x8 - mov r0, sp - bl sub_81D0760 - bl ResetAllPicSprites - movs r0, 0x28 - movs r1, 0x68 - bl sub_81D1184 - strh r0, [r4, 0x10] - movs r0, 0xF - movs r1, 0 - bl sub_81C7990 - add sp, 0xC - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_81D1148 - - thumb_func_start sub_81D1178 -sub_81D1178: @ 81D1178 - push {lr} - ldrh r0, [r0, 0x10] - bl FreeAndDestroyMonPicSprite - pop {r0} - bx r0 - thumb_func_end sub_81D1178 - - thumb_func_start sub_81D1184 -sub_81D1184: @ 81D1184 - push {lr} - sub sp, 0x1C - add r1, sp, 0x14 - add r2, sp, 0x18 - add r0, sp, 0x10 - bl sub_81D0760 - add r0, sp, 0x10 - ldrh r0, [r0] - ldr r1, [sp, 0x18] - ldr r2, [sp, 0x14] - movs r3, 0x28 - str r3, [sp] - movs r3, 0x68 - str r3, [sp, 0x4] - movs r3, 0xF - str r3, [sp, 0x8] - ldr r3, =0x0000ffff - str r3, [sp, 0xC] - movs r3, 0x1 - bl CreateMonPicSprite_HandleDeoxys - lsls r0, 16 - lsrs r0, 16 - ldr r1, =gSprites - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - adds r2, r1 - ldrb r3, [r2, 0x5] - movs r1, 0xD - negs r1, r1 - ands r1, r3 - strb r1, [r2, 0x5] - add sp, 0x1C - pop {r1} - bx r1 - .pool - thumb_func_end sub_81D1184 - - thumb_func_start sub_81D11D8 -sub_81D11D8: @ 81D11D8 - push {lr} - ldrh r1, [r0, 0x10] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, =gSprites - adds r0, r1 - movs r2, 0x20 - negs r2, r2 - movs r1, 0x28 - movs r3, 0x6 - bl sub_81D1258 - pop {r0} - bx r0 - .pool - thumb_func_end sub_81D11D8 - - thumb_func_start sub_81D11FC -sub_81D11FC: @ 81D11FC - push {r4,r5,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x10] - bl FreeAndDestroyMonPicSprite - movs r5, 0x20 - negs r5, r5 - adds r0, r5, 0 - movs r1, 0x68 - bl sub_81D1184 - strh r0, [r4, 0x10] - ldrh r1, [r4, 0x10] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, =gSprites - adds r0, r1 - adds r1, r5, 0 - movs r2, 0x28 - movs r3, 0x6 - bl sub_81D1258 - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81D11FC - - thumb_func_start sub_81D1234 -sub_81D1234: @ 81D1234 - ldr r2, =gSprites - ldrh r1, [r0, 0x10] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r2, 0x1C - adds r0, r2 - ldr r1, [r0] - ldr r0, =SpriteCallbackDummy - eors r1, r0 - negs r0, r1 - orrs r0, r1 - lsrs r0, 31 - bx lr - .pool - thumb_func_end sub_81D1234 - - thumb_func_start sub_81D1258 -sub_81D1258: @ 81D1258 - push {r4-r6,lr} - adds r4, r0, 0 - adds r6, r2, 0 - adds r5, r3, 0 - subs r0, r6, r1 - strh r1, [r4, 0x20] - lsls r1, 4 - strh r1, [r4, 0x2E] - lsls r0, 4 - adds r1, r5, 0 - bl __udivsi3 - strh r0, [r4, 0x30] - strh r5, [r4, 0x32] - strh r6, [r4, 0x34] - ldr r0, =sub_81D1284 - str r0, [r4, 0x1C] - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81D1258 - - thumb_func_start sub_81D1284 -sub_81D1284: @ 81D1284 - push {lr} - adds r2, r0, 0 - ldrh r1, [r2, 0x32] - movs r3, 0x32 - ldrsh r0, [r2, r3] - cmp r0, 0 - beq _081D12C8 - subs r0, r1, 0x1 - strh r0, [r2, 0x32] - ldrh r0, [r2, 0x30] - ldrh r1, [r2, 0x2E] - adds r0, r1 - strh r0, [r2, 0x2E] - lsls r0, 16 - asrs r0, 20 - strh r0, [r2, 0x20] - movs r1, 0x20 - negs r1, r1 - cmp r0, r1 - bgt _081D12BA - adds r0, r2, 0 - adds r0, 0x3E - ldrb r1, [r0] - movs r2, 0x4 - orrs r1, r2 - strb r1, [r0] - b _081D12D0 -_081D12BA: - adds r2, 0x3E - ldrb r1, [r2] - movs r0, 0x5 - negs r0, r0 - ands r0, r1 - strb r0, [r2] - b _081D12D0 -_081D12C8: - ldrh r0, [r2, 0x34] - strh r0, [r2, 0x20] - ldr r0, =SpriteCallbackDummy - str r0, [r2, 0x1C] -_081D12D0: - pop {r0} - bx r0 - .pool - thumb_func_end sub_81D1284 - - thumb_func_start sub_81D12D8 -sub_81D12D8: @ 81D12D8 - push {r4-r6,lr} - bl sub_81D1350 - ldr r5, =gUnknown_030012C0 - adds r0, r5, 0 - bl sub_81D0914 - adds r6, r0, 0 - ldr r2, =gUnknown_030012C4 - movs r1, 0 - str r1, [r2] - ldr r0, [r5] - cmp r1, r0 - bcs _081D130A - adds r4, r2, 0 -_081D12F6: - ldr r0, [r4] - ldm r6!, {r1} - bl sub_81D1370 - ldr r1, [r4] - adds r1, 0x1 - str r1, [r4] - ldr r0, [r5] - cmp r1, r0 - bcc _081D12F6 -_081D130A: - ldr r4, =gUnknown_030012C0 - adds r0, r4, 0 - bl sub_81D092C - adds r6, r0, 0 - ldr r2, =gUnknown_030012C4 - movs r1, 0 - str r1, [r2] - ldr r0, [r4] - cmp r1, r0 - bcs _081D133A - adds r4, r2, 0 -_081D1322: - ldr r0, [r4] - adds r0, 0x1B - ldm r6!, {r1} - bl sub_81D1370 - ldr r1, [r4] - adds r1, 0x1 - str r1, [r4] - ldr r0, =gUnknown_030012C0 - ldr r0, [r0] - cmp r1, r0 - bcc _081D1322 -_081D133A: - movs r0, 0x1 - bl CopyBgTilemapBufferToVram - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81D12D8 - - thumb_func_start sub_81D1350 -sub_81D1350: @ 81D1350 - push {lr} - sub sp, 0x8 - movs r0, 0x20 - str r0, [sp] - movs r0, 0x14 - str r0, [sp, 0x4] - movs r0, 0x1 - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl FillBgTilemapBufferRect_Palette0 - add sp, 0x8 - pop {r0} - bx r0 - thumb_func_end sub_81D1350 - - thumb_func_start sub_81D1370 -sub_81D1370: @ 81D1370 - push {r4-r6,lr} - sub sp, 0x10 - adds r4, r0, 0 - adds r6, r1, 0 - movs r1, 0x9 - bl __umodsi3 - adds r5, r0, 0 - lsls r5, 1 - adds r5, 0xB - adds r0, r4, 0 - movs r1, 0x9 - bl __udivsi3 - adds r4, r0, 0 - lsls r4, 1 - adds r4, 0x4 - add r0, sp, 0x8 - adds r1, r6, 0 - bl sub_81D13BC - lsls r5, 24 - lsrs r5, 24 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x2 - str r0, [sp] - str r0, [sp, 0x4] - movs r0, 0x1 - add r1, sp, 0x8 - adds r2, r5, 0 - adds r3, r4, 0 - bl CopyToBgTilemapBufferRect - add sp, 0x10 - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_81D1370 - - thumb_func_start sub_81D13BC -sub_81D13BC: @ 81D13BC - push {r4,r5,lr} - ldr r2, =gUnknown_08624BF8 - lsls r1, 2 - adds r1, r2 - ldrh r3, [r1, 0x2] - adds r3, 0x2 - lsls r3, 16 - ldrh r1, [r1] - lsls r1, 1 - adds r1, 0x1 - lsls r1, 16 - lsrs r1, 16 - lsrs r3, 4 - adds r2, r1, 0 - orrs r2, r3 - strh r2, [r0] - movs r5, 0x80 - lsls r5, 3 - adds r4, r5, 0 - orrs r2, r4 - strh r2, [r0, 0x2] - adds r1, 0x1 - orrs r1, r3 - strh r1, [r0, 0x4] - orrs r1, r4 - strh r1, [r0, 0x6] - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81D13BC - - thumb_func_start sub_81D13FC -sub_81D13FC: @ 81D13FC - push {r4,lr} - adds r4, r0, 0 - ldr r0, =gUnknown_08624C78 - bl LoadCompressedSpriteSheet - ldr r0, =gUnknown_08624C80 - bl Pokenav_AllocAndLoadPalettes - ldr r0, =gUnknown_08624D04 - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - ldr r0, =gSprites - adds r1, r0 - str r1, [r4, 0x14] - adds r1, 0x3E - ldrb r0, [r1] - movs r2, 0x4 - orrs r0, r2 - strb r0, [r1] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81D13FC - - thumb_func_start sub_81D1448 -sub_81D1448: @ 81D1448 - push {r4-r6,lr} - mov r6, r8 - push {r6} - adds r6, r0, 0 - bl sub_81D0944 - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - adds r0, r4, 0 - movs r1, 0x9 - bl __modsi3 - adds r5, r0, 0 - lsls r5, 4 - adds r5, 0x60 - adds r0, r4, 0 - movs r1, 0x9 - bl __divsi3 - lsls r0, 4 - adds r0, 0x28 - ldr r1, [r6, 0x14] - movs r2, 0 - mov r8, r2 - strh r5, [r1, 0x20] - ldr r1, [r6, 0x14] - strh r0, [r1, 0x22] - bl sub_81D0954 - adds r4, r0, 0 - movs r0, 0x9 - bl GetSpriteTileStartByTag - ldr r3, [r6, 0x14] - ldr r1, =gUnknown_08624BF8 - lsls r4, 2 - adds r4, r1 - ldrh r1, [r4] - lsls r1, 4 - adds r0, r1 - ldr r2, =0x000003ff - adds r1, r2, 0 - ands r0, r1 - ldrh r2, [r3, 0x4] - ldr r1, =0xfffffc00 - ands r1, r2 - orrs r1, r0 - strh r1, [r3, 0x4] - ldrh r0, [r4, 0x2] - adds r0, 0xF - lsls r0, 16 - lsrs r0, 16 - bl IndexOfSpritePaletteTag - ldr r3, [r6, 0x14] - lsls r0, 4 - ldrb r2, [r3, 0x5] - movs r1, 0xF - ands r1, r2 - orrs r1, r0 - strb r1, [r3, 0x5] - ldr r0, [r6, 0x14] - movs r1, 0x1 - bl StartSpriteAffineAnim - ldr r1, [r6, 0x14] - adds r1, 0x3E - ldrb r2, [r1] - movs r0, 0x5 - negs r0, r0 - ands r0, r2 - strb r0, [r1] - ldr r0, [r6, 0x14] - mov r1, r8 - strh r1, [r0, 0x2E] - ldr r1, [r6, 0x14] - ldr r0, =sub_81D1538 - str r0, [r1, 0x1C] - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81D1448 - - thumb_func_start sub_81D1500 -sub_81D1500: @ 81D1500 - push {r4,lr} - adds r4, r0, 0 - ldr r1, [r4, 0x14] - movs r0, 0x1 - strh r0, [r1, 0x2E] - ldr r0, [r4, 0x14] - movs r1, 0x2 - bl StartSpriteAffineAnim - ldr r1, [r4, 0x14] - ldr r0, =sub_81D1538 - str r0, [r1, 0x1C] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81D1500 - - thumb_func_start sub_81D1524 -sub_81D1524: @ 81D1524 - ldr r0, [r0, 0x14] - ldr r1, [r0, 0x1C] - ldr r0, =SpriteCallbackDummy - eors r1, r0 - negs r0, r1 - orrs r0, r1 - lsrs r0, 31 - bx lr - .pool - thumb_func_end sub_81D1524 - - thumb_func_start sub_81D1538 -sub_81D1538: @ 81D1538 - push {lr} - adds r3, r0, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - beq _081D156A - movs r0, 0x3E - adds r0, r3 - mov r12, r0 - movs r0, 0x1 - ldrh r1, [r3, 0x2E] - ands r1, r0 - lsls r1, 2 - mov r0, r12 - ldrb r2, [r0] - movs r0, 0x5 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - mov r1, r12 - strb r0, [r1] - ldr r0, =SpriteCallbackDummy - str r0, [r3, 0x1C] -_081D156A: - pop {r0} - bx r0 - .pool - thumb_func_end sub_81D1538 - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/pokenav_unk_1.s b/asm/pokenav_unk_1.s new file mode 100644 index 000000000..bc4a5968f --- /dev/null +++ b/asm/pokenav_unk_1.s @@ -0,0 +1,864 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .syntax unified + +@ File centered around AllocSubstruct(1) + + thumb_func_start sub_81C9268 +sub_81C9268: @ 81C9268 + push {r4,lr} + movs r4, 0 + movs r0, 0x98 + lsls r0, 1 + bl FlagGet + lsls r0, 24 + cmp r0, 0 + beq _081C928A + movs r4, 0x1 + ldr r0, =0x0000089b + bl FlagGet + lsls r0, 24 + cmp r0, 0 + beq _081C928A + movs r4, 0x2 +_081C928A: + adds r0, r4, 0 + pop {r4} + pop {r1} + bx r1 + .pool + thumb_func_end sub_81C9268 + + thumb_func_start sub_81C9298 +sub_81C9298: @ 81C9298 + push {r4,lr} + movs r0, 0x1 + movs r1, 0x10 + bl AllocSubstruct + adds r4, r0, 0 + cmp r4, 0 + beq _081C92C4 + bl sub_81C9268 + lsls r0, 24 + lsrs r0, 24 + movs r1, 0 + strh r0, [r4] + strh r1, [r4, 0x2] + strh r1, [r4, 0x4] + strh r1, [r4, 0x6] + adds r0, r4, 0 + bl sub_81C939C + movs r0, 0x1 + b _081C92C6 +_081C92C4: + movs r0, 0 +_081C92C6: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_81C9298 + + thumb_func_start sub_81C92CC +sub_81C92CC: @ 81C92CC + push {r4,lr} + movs r0, 0x1 + movs r1, 0x10 + bl AllocSubstruct + adds r4, r0, 0 + cmp r4, 0 + beq _081C92FA + bl sub_81C9268 + lsls r0, 24 + lsrs r0, 24 + movs r1, 0 + strh r0, [r4] + movs r0, 0x2 + strh r0, [r4, 0x2] + strh r0, [r4, 0x4] + strh r1, [r4, 0x6] + adds r0, r4, 0 + bl sub_81C939C + movs r0, 0x1 + b _081C92FC +_081C92FA: + movs r0, 0 +_081C92FC: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_81C92CC + + thumb_func_start sub_81C9304 +sub_81C9304: @ 81C9304 + push {r4,lr} + movs r0, 0x1 + movs r1, 0x10 + bl AllocSubstruct + adds r4, r0, 0 + cmp r4, 0 + beq _081C932E + bl sub_81C9268 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4] + movs r0, 0x3 + strh r0, [r4, 0x2] + strh r0, [r4, 0x4] + adds r0, r4, 0 + bl sub_81C939C + movs r0, 0x1 + b _081C9330 +_081C932E: + movs r0, 0 +_081C9330: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_81C9304 + + thumb_func_start sub_81C9338 +sub_81C9338: @ 81C9338 + push {lr} + movs r0, 0x1 + movs r1, 0x10 + bl AllocSubstruct + adds r2, r0, 0 + cmp r2, 0 + beq _081C9360 + movs r0, 0 + movs r1, 0x3 + strh r1, [r2] + strh r0, [r2, 0x2] + movs r1, 0x5 + strh r1, [r2, 0x4] + strh r0, [r2, 0x6] + adds r0, r2, 0 + bl sub_81C939C + movs r0, 0x1 + b _081C9362 +_081C9360: + movs r0, 0 +_081C9362: + pop {r1} + bx r1 + thumb_func_end sub_81C9338 + + thumb_func_start sub_81C9368 +sub_81C9368: @ 81C9368 + push {r4,r5,lr} + movs r0, 0x1 + movs r1, 0x10 + bl AllocSubstruct + adds r5, r0, 0 + cmp r5, 0 + beq _081C9394 + movs r4, 0 + movs r0, 0x4 + strh r0, [r5] + bl sub_81C76AC + strh r0, [r5, 0x2] + adds r0, 0x8 + strh r0, [r5, 0x4] + strh r4, [r5, 0x6] + adds r0, r5, 0 + bl sub_81C939C + movs r0, 0x1 + b _081C9396 +_081C9394: + movs r0, 0 +_081C9396: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_81C9368 + + thumb_func_start sub_81C939C +sub_81C939C: @ 81C939C + push {r4,lr} + adds r4, r0, 0 + ldrh r0, [r4] + cmp r0, 0x4 + bhi _081C93E0 + lsls r0, 2 + ldr r1, =_081C93B4 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .pool + .align 2, 0 +_081C93B4: + .4byte _081C93C8 + .4byte _081C93CE + .4byte _081C93CE + .4byte _081C93D4 + .4byte _081C93DC +_081C93C8: + movs r0, 0 + bl SetPokenavMode +_081C93CE: + bl sub_81C93EC + b _081C93DE +_081C93D4: + ldr r0, =sub_81C963C + b _081C93DE + .pool +_081C93DC: + ldr r0, =sub_81C96FC +_081C93DE: + str r0, [r4, 0xC] +_081C93E0: + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81C939C + + thumb_func_start sub_81C93EC +sub_81C93EC: @ 81C93EC + push {lr} + bl GetPokenavMode + cmp r0, 0x1 + beq _081C9408 + cmp r0, 0x1 + bcc _081C93FE + cmp r0, 0x2 + beq _081C9410 +_081C93FE: + ldr r0, =sub_81C943C + b _081C9412 + .pool +_081C9408: + ldr r0, =sub_81C9520 + b _081C9412 + .pool +_081C9410: + ldr r0, =c2_pre_battle_1 +_081C9412: + pop {r1} + bx r1 + .pool + thumb_func_end sub_81C93EC + + thumb_func_start sub_81C941C +sub_81C941C: @ 81C941C + push {lr} + movs r0, 0x1 + bl GetSubstructPtr + ldr r1, [r0, 0xC] + bl _call_via_r1 + pop {r1} + bx r1 + thumb_func_end sub_81C941C + + thumb_func_start sub_81C9430 +sub_81C9430: @ 81C9430 + push {lr} + movs r0, 0x1 + bl FreePokenavSubstruct + pop {r0} + bx r0 + thumb_func_end sub_81C9430 + + thumb_func_start sub_81C943C +sub_81C943C: @ 81C943C + push {r4,r5,lr} + adds r4, r0, 0 + bl sub_81C9814 + cmp r0, 0 + beq _081C944C + movs r0, 0x1 + b _081C951A +_081C944C: + ldr r2, =gMain + ldrh r1, [r2, 0x2E] + movs r0, 0x1 + ands r0, r1 + adds r5, r2, 0 + cmp r0, 0 + beq _081C9508 + ldr r3, =gUnknown_0861FC59 + movs r0, 0x2 + ldrsh r1, [r4, r0] + ldrh r2, [r4] + lsls r0, r2, 1 + adds r0, r2 + lsls r0, 1 + adds r1, r0 + adds r1, r3 + ldrb r0, [r1] + cmp r0, 0x4 + bhi _081C9508 + lsls r0, 2 + ldr r1, =_081C9488 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .pool + .align 2, 0 +_081C9488: + .4byte _081C949C + .4byte _081C94BC + .4byte _081C94D4 + .4byte _081C94E0 + .4byte _081C9516 +_081C949C: + ldr r0, =gSaveBlock2Ptr + ldr r0, [r0] + ldrb r1, [r0, 0x15] + movs r0, 0x8 + ands r0, r1 + movs r1, 0x1 + cmp r0, 0 + beq _081C94AE + movs r1, 0x2 +_081C94AE: + strh r1, [r4, 0x6] + ldr r1, =0x000186a6 + b _081C94EE + .pool +_081C94BC: + movs r1, 0 + movs r0, 0x3 + strh r0, [r4] + strh r1, [r4, 0x2] + ldrb r0, [r3, 0x12] + strh r0, [r4, 0x4] + ldr r0, =sub_81C963C + str r0, [r4, 0xC] + movs r0, 0x2 + b _081C951A + .pool +_081C94D4: + movs r0, 0x6 + strh r0, [r4, 0x6] + ldr r1, =0x000186ab + b _081C94EE + .pool +_081C94E0: + bl CanViewRibbonsMenu + cmp r0, 0 + beq _081C94FC + movs r0, 0x9 + strh r0, [r4, 0x6] + ldr r1, =0x000186ac +_081C94EE: + adds r0, r4, 0 + bl sub_81C97B0 + movs r0, 0x8 + b _081C951A + .pool +_081C94FC: + ldr r0, =sub_81C9600 + str r0, [r4, 0xC] + movs r0, 0x6 + b _081C951A + .pool +_081C9508: + ldrh r1, [r5, 0x2E] + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + bne _081C9516 + movs r0, 0 + b _081C951A +_081C9516: + movs r0, 0x1 + negs r0, r0 +_081C951A: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_81C943C + + thumb_func_start sub_81C9520 +sub_81C9520: @ 81C9520 + push {r4,lr} + adds r4, r0, 0 + bl sub_81C9814 + cmp r0, 0 + beq _081C9530 + movs r0, 0x1 + b _081C9580 +_081C9530: + ldr r0, =gMain + ldrh r1, [r0, 0x2E] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _081C9570 + ldr r3, =gUnknown_0861FC59 + movs r0, 0x2 + ldrsh r1, [r4, r0] + ldrh r2, [r4] + lsls r0, r2, 1 + adds r0, r2 + lsls r0, 1 + adds r1, r0 + adds r1, r3 + ldrb r0, [r1] + cmp r0, 0x2 + bne _081C9578 + movs r0, 0x6 + strh r0, [r4, 0x6] + ldr r1, =0x000186ab + adds r0, r4, 0 + bl sub_81C97B0 + movs r0, 0x8 + b _081C9580 + .pool +_081C9570: + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _081C957E +_081C9578: + movs r0, 0x20 + bl PlaySE +_081C957E: + movs r0, 0 +_081C9580: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_81C9520 + + thumb_func_start c2_pre_battle_1 +c2_pre_battle_1: @ 81C9588 + push {r4,lr} + adds r4, r0, 0 + bl sub_81C9814 + cmp r0, 0 + beq _081C9598 + movs r0, 0x1 + b _081C95F8 +_081C9598: + ldr r0, =gMain + ldrh r1, [r0, 0x2E] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _081C95E8 + ldr r3, =gUnknown_0861FC59 + movs r0, 0x2 + ldrsh r1, [r4, r0] + ldrh r2, [r4] + lsls r0, r2, 1 + adds r0, r2 + lsls r0, 1 + adds r1, r0 + adds r1, r3 + ldrb r0, [r1] + cmp r0, 0x2 + beq _081C95D4 + cmp r0, 0x4 + beq _081C95F4 + movs r0, 0x20 + bl PlaySE + movs r0, 0 + b _081C95F8 + .pool +_081C95D4: + movs r0, 0x6 + strh r0, [r4, 0x6] + ldr r1, =0x000186ab + adds r0, r4, 0 + bl sub_81C97B0 + movs r0, 0x8 + b _081C95F8 + .pool +_081C95E8: + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + bne _081C95F4 + movs r0, 0 + b _081C95F8 +_081C95F4: + movs r0, 0x1 + negs r0, r0 +_081C95F8: + pop {r4} + pop {r1} + bx r1 + thumb_func_end c2_pre_battle_1 + + thumb_func_start sub_81C9600 +sub_81C9600: @ 81C9600 + push {r4,lr} + adds r4, r0, 0 + bl sub_81C9814 + cmp r0, 0 + beq _081C9616 + bl sub_81C93EC + str r0, [r4, 0xC] + movs r0, 0x1 + b _081C9634 +_081C9616: + ldr r0, =gMain + ldrh r1, [r0, 0x2E] + movs r0, 0x3 + ands r0, r1 + cmp r0, 0 + bne _081C962C + movs r0, 0 + b _081C9634 + .pool +_081C962C: + bl sub_81C93EC + str r0, [r4, 0xC] + movs r0, 0x7 +_081C9634: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_81C9600 + + thumb_func_start sub_81C963C +sub_81C963C: @ 81C963C + push {r4-r6,lr} + adds r4, r0, 0 + bl sub_81C9814 + adds r3, r0, 0 + cmp r3, 0 + beq _081C964E + movs r0, 0x1 + b _081C96F6 +_081C964E: + ldr r2, =gMain + ldrh r1, [r2, 0x2E] + movs r0, 0x1 + ands r0, r1 + adds r6, r2, 0 + cmp r0, 0 + beq _081C96B8 + ldr r5, =gUnknown_0861FC59 + movs r1, 0x2 + ldrsh r0, [r4, r1] + ldrh r2, [r4] + lsls r1, r2, 1 + adds r1, r2 + lsls r1, 1 + adds r0, r1 + adds r0, r5 + ldrb r0, [r0] + cmp r0, 0x6 + beq _081C968E + cmp r0, 0x6 + bgt _081C9688 + cmp r0, 0x5 + beq _081C96A4 + b _081C96B8 + .pool +_081C9688: + cmp r0, 0x7 + beq _081C96E4 + b _081C96B8 +_081C968E: + movs r0, 0x4 + strh r0, [r4] + strh r3, [r4, 0x2] + ldrb r0, [r5, 0x18] + strh r0, [r4, 0x4] + ldr r0, =sub_81C96FC + str r0, [r4, 0xC] + movs r0, 0x4 + b _081C96F6 + .pool +_081C96A4: + strh r3, [r4, 0x6] + ldr r1, =0x000186a7 + adds r0, r4, 0 + bl sub_81C97B0 + movs r0, 0x8 + b _081C96F6 + .pool +_081C96B8: + ldrh r1, [r6, 0x2E] + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _081C96F4 + movs r0, 0x2 + ldrsh r2, [r4, r0] + ldr r1, =gUnknown_0861FC54 + ldrh r0, [r4] + adds r0, r1 + ldrb r0, [r0] + cmp r2, r0 + beq _081C96E4 + strh r0, [r4, 0x2] + ldr r0, =sub_81C9798 + str r0, [r4, 0xC] + movs r0, 0x1 + b _081C96F6 + .pool +_081C96E4: + movs r0, 0x5 + bl PlaySE + adds r0, r4, 0 + bl sub_81C97C0 + movs r0, 0x3 + b _081C96F6 +_081C96F4: + movs r0, 0 +_081C96F6: + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end sub_81C963C + + thumb_func_start sub_81C96FC +sub_81C96FC: @ 81C96FC + push {r4,lr} + adds r4, r0, 0 + bl sub_81C9814 + cmp r0, 0 + beq _081C970C + movs r0, 0x1 + b _081C9792 +_081C970C: + ldr r0, =gMain + ldrh r1, [r0, 0x2E] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _081C9754 + ldr r3, =gUnknown_0861FC59 + movs r0, 0x2 + ldrsh r1, [r4, r0] + ldrh r2, [r4] + lsls r0, r2, 1 + adds r0, r2 + lsls r0, 1 + adds r1, r0 + adds r1, r3 + ldrb r0, [r1] + cmp r0, 0xD + beq _081C9780 + subs r0, 0x8 + bl sub_81C7694 + ldr r1, =0x000186a8 + adds r0, r4, 0 + bl sub_81C97B0 + movs r0, 0x3 + strh r0, [r4, 0x6] + movs r0, 0x8 + b _081C9792 + .pool +_081C9754: + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _081C9790 + movs r0, 0x2 + ldrsh r2, [r4, r0] + ldr r1, =gUnknown_0861FC54 + ldrh r0, [r4] + adds r0, r1 + ldrb r0, [r0] + cmp r2, r0 + beq _081C9780 + strh r0, [r4, 0x2] + ldr r0, =sub_81C97A4 + str r0, [r4, 0xC] + movs r0, 0x1 + b _081C9792 + .pool +_081C9780: + movs r0, 0x5 + bl PlaySE + adds r0, r4, 0 + bl sub_81C97F8 + movs r0, 0x5 + b _081C9792 +_081C9790: + movs r0, 0 +_081C9792: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_81C96FC + + thumb_func_start sub_81C9798 +sub_81C9798: @ 81C9798 + push {lr} + bl sub_81C97C0 + movs r0, 0x3 + pop {r1} + bx r1 + thumb_func_end sub_81C9798 + + thumb_func_start sub_81C97A4 +sub_81C97A4: @ 81C97A4 + push {lr} + bl sub_81C97F8 + movs r0, 0x5 + pop {r1} + bx r1 + thumb_func_end sub_81C97A4 + + thumb_func_start sub_81C97B0 +sub_81C97B0: @ 81C97B0 + str r1, [r0, 0x8] + ldr r1, =sub_81C97BC + str r1, [r0, 0xC] + bx lr + .pool + thumb_func_end sub_81C97B0 + + thumb_func_start sub_81C97BC +sub_81C97BC: @ 81C97BC + ldr r0, [r0, 0x8] + bx lr + thumb_func_end sub_81C97BC + + thumb_func_start sub_81C97C0 +sub_81C97C0: @ 81C97C0 + push {r4,lr} + adds r4, r0, 0 + bl sub_81C9268 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4] + movs r0, 0x1 + strh r0, [r4, 0x2] + ldr r2, =gUnknown_0861FC59 + ldrh r1, [r4] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 1 + adds r0, 0x1 + adds r0, r2 + ldrb r0, [r0] + strh r0, [r4, 0x4] + ldr r0, =sub_81C943C + str r0, [r4, 0xC] + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81C97C0 + + thumb_func_start sub_81C97F8 +sub_81C97F8: @ 81C97F8 + movs r1, 0x3 + strh r1, [r0] + movs r1, 0x1 + strh r1, [r0, 0x2] + ldr r1, =gUnknown_0861FC59 + ldrb r1, [r1, 0x13] + strh r1, [r0, 0x4] + ldr r1, =sub_81C963C + str r1, [r0, 0xC] + bx lr + .pool + thumb_func_end sub_81C97F8 + + thumb_func_start sub_81C9814 +sub_81C9814: @ 81C9814 + push {r4,r5,lr} + adds r4, r0, 0 + ldr r0, =gMain + ldrh r1, [r0, 0x2E] + movs r0, 0x40 + ands r0, r1 + lsls r0, 16 + lsrs r5, r0, 16 + cmp r5, 0 + beq _081C9848 + ldrh r0, [r4, 0x2] + subs r0, 0x1 + strh r0, [r4, 0x2] + lsls r0, 16 + ldrh r3, [r4] + cmp r0, 0 + bge _081C986A + ldr r0, =gUnknown_0861FC54 + adds r0, r3, r0 + ldrb r0, [r0] + strh r0, [r4, 0x2] + b _081C986A + .pool +_081C9848: + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _081C988C + ldrh r0, [r4, 0x2] + adds r0, 0x1 + strh r0, [r4, 0x2] + movs r0, 0x2 + ldrsh r2, [r4, r0] + ldr r0, =gUnknown_0861FC54 + ldrh r1, [r4] + adds r0, r1, r0 + adds r3, r1, 0 + ldrb r0, [r0] + cmp r2, r0 + ble _081C986A + strh r5, [r4, 0x2] +_081C986A: + ldr r2, =gUnknown_0861FC59 + movs r0, 0x2 + ldrsh r1, [r4, r0] + lsls r0, r3, 1 + adds r0, r3 + lsls r0, 1 + adds r1, r0 + adds r1, r2 + ldrb r0, [r1] + strh r0, [r4, 0x4] + movs r0, 0x1 + b _081C988E + .pool +_081C988C: + movs r0, 0 +_081C988E: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_81C9814 + + thumb_func_start sub_81C9894 +sub_81C9894: @ 81C9894 + push {lr} + movs r0, 0x1 + bl GetSubstructPtr + ldrh r0, [r0] + pop {r1} + bx r1 + thumb_func_end sub_81C9894 + + thumb_func_start sub_81C98A4 +sub_81C98A4: @ 81C98A4 + push {lr} + movs r0, 0x1 + bl GetSubstructPtr + movs r1, 0x2 + ldrsh r0, [r0, r1] + pop {r1} + bx r1 + thumb_func_end sub_81C98A4 + + thumb_func_start sub_81C98B4 +sub_81C98B4: @ 81C98B4 + push {lr} + movs r0, 0x1 + bl GetSubstructPtr + ldrh r0, [r0, 0x4] + pop {r1} + bx r1 + thumb_func_end sub_81C98B4 + + thumb_func_start sub_81C98C4 +sub_81C98C4: @ 81C98C4 + push {lr} + movs r0, 0x1 + bl GetSubstructPtr + ldrh r0, [r0, 0x6] + pop {r1} + bx r1 + thumb_func_end sub_81C98C4 + + .align 2, 0 @ Don't pad with nop. diff --git a/asm/pokenav_unk_10.s b/asm/pokenav_unk_10.s new file mode 100644 index 000000000..b24f0b406 --- /dev/null +++ b/asm/pokenav_unk_10.s @@ -0,0 +1,2185 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .syntax unified + + thumb_func_start sub_81D0450 +sub_81D0450: @ 81D0450 + push {r4,lr} + movs r0, 0xD + movs r1, 0x9C + bl AllocSubstruct + adds r4, r0, 0 + cmp r4, 0 + beq _081D0498 + movs r0, 0x12 + bl GetSubstructPtr + str r0, [r4, 0x8] + cmp r0, 0 + beq _081D0498 + adds r0, r4, 0 + bl sub_81D0814 + adds r1, r4, 0 + adds r1, 0x98 + ldr r0, =sub_81D04C4 + str r0, [r1] + ldr r1, =gKeyRepeatContinueDelay + movs r0, 0x3 + strh r0, [r1] + ldr r1, =gKeyRepeatStartDelay + movs r0, 0xA + strh r0, [r1] + movs r0, 0x1 + b _081D049A + .pool +_081D0498: + movs r0, 0 +_081D049A: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_81D0450 + + thumb_func_start sub_81D04A0 +sub_81D04A0: @ 81D04A0 + push {lr} + movs r0, 0xD + bl GetSubstructPtr + adds r1, r0, 0 + adds r1, 0x98 + ldr r1, [r1] + bl _call_via_r1 + pop {r1} + bx r1 + thumb_func_end sub_81D04A0 + + thumb_func_start sub_81D04B8 +sub_81D04B8: @ 81D04B8 + push {lr} + movs r0, 0xD + bl FreePokenavSubstruct + pop {r0} + bx r0 + thumb_func_end sub_81D04B8 + + thumb_func_start sub_81D04C4 +sub_81D04C4: @ 81D04C4 + push {r4,lr} + adds r4, r0, 0 + ldr r2, =gMain + ldrh r1, [r2, 0x30] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + beq _081D04E4 + ldr r3, [r4, 0x8] + ldrh r0, [r3, 0x2] + cmp r0, 0 + beq _081D04E4 + subs r0, 0x1 + b _081D04FC + .pool +_081D04E4: + ldrh r1, [r2, 0x30] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _081D050C + ldr r3, [r4, 0x8] + ldrh r1, [r3, 0x2] + ldrh r0, [r3] + subs r0, 0x1 + cmp r1, r0 + bge _081D050C + adds r0, r1, 0x1 +_081D04FC: + movs r1, 0 + strh r0, [r3, 0x2] + strh r1, [r4, 0xC] + adds r0, r4, 0 + bl sub_81D0814 + movs r0, 0x1 + b _081D053E +_081D050C: + ldrh r2, [r2, 0x2E] + movs r0, 0x1 + ands r0, r2 + cmp r0, 0 + beq _081D0528 + adds r1, r4, 0 + adds r1, 0x98 + ldr r0, =sub_81D0548 + str r0, [r1] + movs r0, 0x2 + b _081D053E + .pool +_081D0528: + movs r0, 0x2 + ands r0, r2 + cmp r0, 0 + bne _081D0534 + movs r0, 0 + b _081D053E +_081D0534: + adds r1, r4, 0 + adds r1, 0x98 + ldr r0, =sub_81D05D4 + str r0, [r1] + movs r0, 0x5 +_081D053E: + pop {r4} + pop {r1} + bx r1 + .pool + thumb_func_end sub_81D04C4 + + thumb_func_start sub_81D0548 +sub_81D0548: @ 81D0548 + push {r4,lr} + adds r4, r0, 0 + ldr r0, =gMain + ldrh r1, [r0, 0x30] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + beq _081D0562 + adds r0, r4, 0 + bl sub_81D05DC + cmp r0, 0 + bne _081D05A4 +_081D0562: + ldr r0, =gMain + ldrh r1, [r0, 0x30] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _081D0578 + adds r0, r4, 0 + bl sub_81D061C + cmp r0, 0 + bne _081D05A4 +_081D0578: + ldr r0, =gMain + ldrh r1, [r0, 0x30] + movs r0, 0x20 + ands r0, r1 + cmp r0, 0 + beq _081D058E + adds r0, r4, 0 + bl sub_81D0664 + cmp r0, 0 + bne _081D05A4 +_081D058E: + ldr r0, =gMain + ldrh r1, [r0, 0x30] + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + beq _081D05AC + adds r0, r4, 0 + bl sub_81D0688 + cmp r0, 0 + beq _081D05AC +_081D05A4: + movs r0, 0x3 + b _081D05CA + .pool +_081D05AC: + ldr r0, =gMain + ldrh r1, [r0, 0x2E] + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + bne _081D05C0 + movs r0, 0 + b _081D05CA + .pool +_081D05C0: + adds r1, r4, 0 + adds r1, 0x98 + ldr r0, =sub_81D04C4 + str r0, [r1] + movs r0, 0x4 +_081D05CA: + pop {r4} + pop {r1} + bx r1 + .pool + thumb_func_end sub_81D0548 + + thumb_func_start sub_81D05D4 +sub_81D05D4: @ 81D05D4 + ldr r0, =0x000186ae + bx lr + .pool + thumb_func_end sub_81D05D4 + + thumb_func_start sub_81D05DC +sub_81D05DC: @ 81D05DC + push {r4,lr} + adds r1, r0, 0 + ldrh r0, [r1, 0xC] + adds r2, r0, 0 + cmp r2, 0x18 + bhi _081D05F0 + cmp r2, 0x8 + bls _081D0612 + subs r0, 0x9 + b _081D060C +_081D05F0: + ldrh r3, [r1, 0x10] + adds r2, r3, 0 + cmp r2, 0 + beq _081D0612 + ldrh r0, [r1, 0xC] + subs r0, 0x1B + ldrh r4, [r1, 0xE] + adds r0, r4 + strh r0, [r1, 0xC] + lsls r0, 16 + lsrs r0, 16 + cmp r0, r2 + bcc _081D060E + subs r0, r3, 0x1 +_081D060C: + strh r0, [r1, 0xC] +_081D060E: + movs r0, 0x1 + b _081D0614 +_081D0612: + movs r0, 0 +_081D0614: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_81D05DC + + thumb_func_start sub_81D061C +sub_81D061C: @ 81D061C + push {lr} + adds r2, r0, 0 + ldrh r0, [r2, 0xC] + adds r1, r0, 0 + cmp r1, 0x18 + bhi _081D065C + ldrh r3, [r2, 0xE] + cmp r1, r3 + bcs _081D0640 + adds r0, 0x9 + strh r0, [r2, 0xC] + ldrh r1, [r2, 0x10] + lsls r0, 16 + lsrs r0, 16 + cmp r0, r1 + bcc _081D0658 + subs r0, r1, 0x1 + b _081D0656 +_081D0640: + ldrh r0, [r2, 0x12] + cmp r0, 0 + beq _081D065C + ldrh r1, [r2, 0xC] + ldrh r0, [r2, 0xE] + subs r0, r1, r0 + ldrh r1, [r2, 0x12] + cmp r0, r1 + blt _081D0654 + subs r0, r1, 0x1 +_081D0654: + adds r0, 0x1B +_081D0656: + strh r0, [r2, 0xC] +_081D0658: + movs r0, 0x1 + b _081D065E +_081D065C: + movs r0, 0 +_081D065E: + pop {r1} + bx r1 + thumb_func_end sub_81D061C + + thumb_func_start sub_81D0664 +sub_81D0664: @ 81D0664 + push {r4,r5,lr} + adds r5, r0, 0 + ldrh r4, [r5, 0xC] + adds r0, r4, 0 + movs r1, 0x9 + bl __umodsi3 + lsls r0, 16 + cmp r0, 0 + bne _081D067C + movs r0, 0 + b _081D0682 +_081D067C: + subs r0, r4, 0x1 + strh r0, [r5, 0xC] + movs r0, 0x1 +_081D0682: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_81D0664 + + thumb_func_start sub_81D0688 +sub_81D0688: @ 81D0688 + push {r4,r5,lr} + adds r5, r0, 0 + ldrh r4, [r5, 0xC] + adds r0, r4, 0 + movs r1, 0x9 + bl __umodsi3 + lsls r0, 16 + lsrs r1, r0, 16 + cmp r1, 0x7 + bgt _081D06BC + cmp r4, 0x1A + bhi _081D06AC + ldrh r0, [r5, 0x10] + subs r0, 0x1 + cmp r4, r0 + bge _081D06BC + b _081D06B4 +_081D06AC: + ldrh r0, [r5, 0x12] + subs r0, 0x1 + cmp r1, r0 + bge _081D06BC +_081D06B4: + adds r0, r4, 0x1 + strh r0, [r5, 0xC] + movs r0, 0x1 + b _081D06BE +_081D06BC: + movs r0, 0 +_081D06BE: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_81D0688 + + thumb_func_start sub_81D06C4 +sub_81D06C4: @ 81D06C4 + push {lr} + movs r0, 0xD + bl GetSubstructPtr + ldr r0, [r0, 0x8] + ldrh r0, [r0, 0x2] + pop {r1} + bx r1 + thumb_func_end sub_81D06C4 + + thumb_func_start sub_81D06D4 +sub_81D06D4: @ 81D06D4 + push {lr} + movs r0, 0xD + bl GetSubstructPtr + ldr r0, [r0, 0x8] + ldrh r0, [r0] + pop {r1} + bx r1 + thumb_func_end sub_81D06D4 + + thumb_func_start sub_81D06E4 +sub_81D06E4: @ 81D06E4 + push {r4-r7,lr} + adds r5, r0, 0 + adds r7, r1, 0 + adds r6, r2, 0 + movs r0, 0xD + bl GetSubstructPtr + ldr r1, [r0, 0x8] + ldrh r0, [r1, 0x2] + lsls r0, 2 + adds r0, 0x4 + adds r1, r0 + ldrb r0, [r1] + cmp r0, 0xE + bne _081D0730 + ldrb r1, [r1, 0x1] + movs r0, 0x64 + adds r4, r1, 0 + muls r4, r0 + ldr r0, =gPlayerParty + adds r4, r0 + adds r0, r4, 0 + movs r1, 0x2 + adds r2, r5, 0 + bl GetMonData + adds r0, r4, 0 + bl GetLevelFromMonExp + strb r0, [r7] + adds r0, r4, 0 + bl GetMonGender + strb r0, [r6] + b _081D0752 + .pool +_081D0730: + ldrb r0, [r1] + ldrb r1, [r1, 0x1] + bl GetBoxedMonPtr + adds r4, r0, 0 + bl GetBoxMonGender + strb r0, [r6] + adds r0, r4, 0 + bl GetLevelFromBoxMonExp + strb r0, [r7] + adds r0, r4, 0 + movs r1, 0x2 + adds r2, r5, 0 + bl GetBoxMonData +_081D0752: + adds r0, r5, 0 + bl StringGetEnd10 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_81D06E4 + + thumb_func_start sub_81D0760 +sub_81D0760: @ 81D0760 + push {r4-r7,lr} + adds r5, r0, 0 + adds r6, r1, 0 + adds r7, r2, 0 + movs r0, 0xD + bl GetSubstructPtr + ldr r1, [r0, 0x8] + ldrh r0, [r1, 0x2] + lsls r0, 2 + adds r0, 0x4 + adds r1, r0 + ldrb r0, [r1] + cmp r0, 0xE + bne _081D07AC + ldrb r1, [r1, 0x1] + movs r0, 0x64 + adds r4, r1, 0 + muls r4, r0 + ldr r0, =gPlayerParty + adds r4, r0 + adds r0, r4, 0 + movs r1, 0xB + bl GetMonData + strh r0, [r5] + adds r0, r4, 0 + movs r1, 0 + bl GetMonData + str r0, [r6] + adds r0, r4, 0 + movs r1, 0x1 + bl GetMonData + b _081D07D0 + .pool +_081D07AC: + ldrb r0, [r1] + ldrb r1, [r1, 0x1] + bl GetBoxedMonPtr + adds r4, r0, 0 + movs r1, 0xB + bl GetBoxMonData + strh r0, [r5] + adds r0, r4, 0 + movs r1, 0 + bl GetBoxMonData + str r0, [r6] + adds r0, r4, 0 + movs r1, 0x1 + bl GetBoxMonData +_081D07D0: + str r0, [r7] + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_81D0760 + + thumb_func_start sub_81D07D8 +sub_81D07D8: @ 81D07D8 + push {lr} + movs r0, 0xD + bl GetSubstructPtr + ldr r1, [r0, 0x8] + ldrh r0, [r1, 0x2] + lsls r0, 2 + adds r0, 0x4 + adds r1, r0 + ldrb r0, [r1] + cmp r0, 0xE + beq _081D07FA + ldrb r1, [r1, 0x1] + movs r2, 0x52 + bl GetBoxMonDataAt + b _081D080A +_081D07FA: + ldrb r1, [r1, 0x1] + movs r0, 0x64 + muls r0, r1 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0x52 + bl GetMonData +_081D080A: + pop {r1} + bx r1 + .pool + thumb_func_end sub_81D07D8 + + thumb_func_start sub_81D0814 +sub_81D0814: @ 81D0814 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + adds r5, r0, 0 + ldr r0, [r5, 0x8] + ldrh r1, [r0, 0x2] + lsls r1, 2 + adds r1, 0x4 + adds r1, r0, r1 + ldrb r0, [r1] + cmp r0, 0xE + bne _081D0848 + ldrb r1, [r1, 0x1] + movs r0, 0x64 + muls r0, r1 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0x53 + bl GetMonData + b _081D0852 + .pool +_081D0848: + ldrb r0, [r1] + ldrb r1, [r1, 0x1] + movs r2, 0x53 + bl GetBoxMonDataAt +_081D0852: + mov r12, r0 + movs r0, 0 + strh r0, [r5, 0x10] + strh r0, [r5, 0x12] + movs r6, 0 + ldr r0, =gUnknown_086237F8 + mov r9, r0 + mov r10, r9 +_081D0862: + lsls r2, r6, 2 + mov r3, r9 + adds r1, r2, r3 + movs r0, 0x1 + ldrb r3, [r1] + lsls r0, r3 + subs r4, r0, 0x1 + mov r0, r12 + ands r4, r0 + ldrb r0, [r1, 0x3] + adds r7, r2, 0 + cmp r0, 0 + bne _081D08AC + movs r3, 0 + adds r6, 0x1 + mov r8, r6 + cmp r3, r4 + bge _081D08D6 + adds r6, r5, 0 + adds r6, 0x14 + mov r1, r10 + adds r0, r7, r1 + ldrb r2, [r0, 0x2] +_081D0890: + ldrh r0, [r5, 0x10] + adds r1, r0, 0x1 + strh r1, [r5, 0x10] + lsls r0, 16 + lsrs r0, 14 + adds r0, r6, r0 + adds r1, r2, r3 + str r1, [r0] + adds r3, 0x1 + cmp r3, r4 + blt _081D0890 + b _081D08D6 + .pool +_081D08AC: + movs r3, 0 + adds r6, 0x1 + mov r8, r6 + cmp r3, r4 + bge _081D08D6 + adds r6, r5, 0 + adds r6, 0x78 + mov r1, r10 + adds r0, r7, r1 + ldrb r2, [r0, 0x2] +_081D08C0: + ldrh r0, [r5, 0x12] + adds r1, r0, 0x1 + strh r1, [r5, 0x12] + lsls r0, 16 + lsrs r0, 14 + adds r0, r6, r0 + adds r1, r2, r3 + str r1, [r0] + adds r3, 0x1 + cmp r3, r4 + blt _081D08C0 +_081D08D6: + mov r3, r9 + adds r0, r7, r3 + mov r1, r12 + ldrb r0, [r0] + lsrs r1, r0 + mov r12, r1 + mov r6, r8 + cmp r6, 0x10 + bls _081D0862 + ldrh r0, [r5, 0x10] + cmp r0, 0 + beq _081D0900 + subs r0, 0x1 + movs r1, 0x9 + bl __divsi3 + lsls r1, r0, 3 + adds r1, r0 + movs r0, 0 + strh r1, [r5, 0xE] + b _081D0904 +_081D0900: + strh r0, [r5, 0xE] + movs r0, 0x1B +_081D0904: + strh r0, [r5, 0xC] + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_81D0814 + + thumb_func_start sub_81D0914 +sub_81D0914: @ 81D0914 + push {r4,lr} + adds r4, r0, 0 + movs r0, 0xD + bl GetSubstructPtr + ldrh r1, [r0, 0x10] + str r1, [r4] + adds r0, 0x14 + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_81D0914 + + thumb_func_start sub_81D092C +sub_81D092C: @ 81D092C + push {r4,lr} + adds r4, r0, 0 + movs r0, 0xD + bl GetSubstructPtr + ldrh r1, [r0, 0x12] + str r1, [r4] + adds r0, 0x78 + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_81D092C + + thumb_func_start sub_81D0944 +sub_81D0944: @ 81D0944 + push {lr} + movs r0, 0xD + bl GetSubstructPtr + ldrh r0, [r0, 0xC] + pop {r1} + bx r1 + thumb_func_end sub_81D0944 + + thumb_func_start sub_81D0954 +sub_81D0954: @ 81D0954 + push {lr} + movs r0, 0xD + bl GetSubstructPtr + adds r1, r0, 0 + ldrh r0, [r1, 0xC] + cmp r0, 0x18 + ble _081D096C + subs r0, 0x1B + lsls r0, 2 + adds r1, 0x78 + b _081D0970 +_081D096C: + lsls r0, 2 + adds r1, 0x14 +_081D0970: + adds r1, r0 + ldr r0, [r1] + pop {r1} + bx r1 + thumb_func_end sub_81D0954 + + thumb_func_start sub_81D0978 +sub_81D0978: @ 81D0978 + push {r4,lr} + ldr r1, =0x0000101c + movs r0, 0xE + bl AllocSubstruct + adds r4, r0, 0 + cmp r4, 0 + beq _081D09A8 + ldr r0, =sub_81D0A6C + movs r1, 0x1 + bl CreateLoopedTask + str r0, [r4, 0x4] + ldr r0, =sub_81D0A58 + str r0, [r4] + movs r0, 0x1 + b _081D09AA + .pool +_081D09A8: + movs r0, 0 +_081D09AA: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_81D0978 + + thumb_func_start sub_81D09B0 +sub_81D09B0: @ 81D09B0 + push {r4,r5,lr} + adds r4, r0, 0 + movs r0, 0xE + bl GetSubstructPtr + adds r5, r0, 0 + ldr r0, =gUnknown_08624BA0 + lsls r4, 2 + adds r4, r0 + ldr r0, [r4] + movs r1, 0x1 + bl CreateLoopedTask + str r0, [r5, 0x4] + ldr r0, =sub_81D0A58 + str r0, [r5] + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81D09B0 + + thumb_func_start sub_81D09E0 +sub_81D09E0: @ 81D09E0 + push {lr} + movs r0, 0xE + bl GetSubstructPtr + ldr r0, [r0] + bl _call_via_r0 + pop {r1} + bx r1 + thumb_func_end sub_81D09E0 + + thumb_func_start sub_81D09F4 +sub_81D09F4: @ 81D09F4 + push {r4,lr} + movs r0, 0xE + bl GetSubstructPtr + adds r4, r0, 0 + ldrb r0, [r4, 0xA] + bl RemoveWindow + ldrb r0, [r4, 0x8] + bl RemoveWindow + ldrb r0, [r4, 0xC] + bl RemoveWindow + ldrb r0, [r4, 0xE] + bl RemoveWindow + adds r0, r4, 0 + bl sub_81D1178 + movs r0, 0x9 + bl FreeSpriteTilesByTag + movs r0, 0xF + bl FreeSpritePaletteByTag + movs r0, 0x10 + bl FreeSpritePaletteByTag + movs r0, 0x11 + bl FreeSpritePaletteByTag + movs r0, 0x12 + bl FreeSpritePaletteByTag + movs r0, 0x13 + bl FreeSpritePaletteByTag + ldr r0, [r4, 0x14] + bl FreeSpriteOamMatrix + ldr r0, [r4, 0x14] + bl DestroySprite + movs r0, 0xE + bl FreePokenavSubstruct + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_81D09F4 + + thumb_func_start sub_81D0A58 +sub_81D0A58: @ 81D0A58 + push {lr} + movs r0, 0xE + bl GetSubstructPtr + ldr r0, [r0, 0x4] + bl IsLoopedTaskActive + pop {r1} + bx r1 + thumb_func_end sub_81D0A58 + + thumb_func_start sub_81D0A6C +sub_81D0A6C: @ 81D0A6C + push {r4,r5,lr} + sub sp, 0x8 + adds r4, r0, 0 + movs r0, 0xE + bl GetSubstructPtr + adds r5, r0, 0 + cmp r4, 0x9 + bls _081D0A80 + b _081D0C48 +_081D0A80: + lsls r0, r4, 2 + ldr r1, =_081D0A90 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .pool + .align 2, 0 +_081D0A90: + .4byte _081D0AB8 + .4byte _081D0B04 + .4byte _081D0B74 + .4byte _081D0B88 + .4byte _081D0B9C + .4byte _081D0BB0 + .4byte _081D0BC4 + .4byte _081D0BD8 + .4byte _081D0BE8 + .4byte _081D0C3C +_081D0AB8: + ldr r0, =gUnknown_08624B98 + movs r1, 0x2 + bl InitBgTemplates + ldr r1, =gUnknown_08DDE030 + movs r0, 0 + str r0, [sp] + movs r0, 0x2 + movs r2, 0 + movs r3, 0 + bl decompress_and_copy_tile_data_to_vram + adds r1, r5, 0 + adds r1, 0x1C + movs r0, 0x2 + bl SetBgTilemapBuffer + ldr r1, =gUnknown_08DDE12C + movs r0, 0x2 + movs r2, 0 + movs r3, 0 + bl CopyToBgTilemapBuffer + ldr r0, =gUnknown_08DDE010 + movs r1, 0x10 + movs r2, 0x20 + bl CopyPaletteIntoBufferUnfaded + b _081D0BBA + .pool +_081D0B04: + bl free_temp_tile_data_buffers_if_possible + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0 + beq _081D0B12 + b _081D0C44 +_081D0B12: + movs r0, 0x1 + movs r1, 0 + movs r2, 0 + movs r3, 0x1 + bl sub_8199DF0 + ldr r1, =gUnknown_086240B8 + str r4, [sp] + movs r0, 0x1 + movs r2, 0 + movs r3, 0x1 + bl decompress_and_copy_tile_data_to_vram + ldr r0, =0x0000081c + adds r1, r5, r0 + movs r0, 0x1 + bl SetBgTilemapBuffer + movs r0, 0x20 + str r0, [sp] + movs r0, 0x14 + str r0, [sp, 0x4] + movs r0, 0x1 + movs r1, 0 + movs r2, 0 + movs r3, 0 + bl FillBgTilemapBufferRect_Palette0 + ldr r0, =gUnknown_08623FF8 + movs r1, 0x20 + movs r2, 0xA0 + bl CopyPaletteIntoBufferUnfaded + ldr r0, =gUnknown_08624098 + movs r1, 0xA0 + movs r2, 0x20 + bl CopyPaletteIntoBufferUnfaded + movs r0, 0x1 + b _081D0BBC + .pool +_081D0B74: + bl free_temp_tile_data_buffers_if_possible + lsls r0, 24 + cmp r0, 0 + bne _081D0C44 + adds r0, r5, 0 + bl sub_81D0E60 + movs r0, 0 + b _081D0C4A +_081D0B88: + bl free_temp_tile_data_buffers_if_possible + lsls r0, 24 + cmp r0, 0 + bne _081D0C44 + adds r0, r5, 0 + bl sub_81D0FCC + movs r0, 0 + b _081D0C4A +_081D0B9C: + bl free_temp_tile_data_buffers_if_possible + lsls r0, 24 + cmp r0, 0 + bne _081D0C44 + adds r0, r5, 0 + bl sub_81D10A4 + movs r0, 0 + b _081D0C4A +_081D0BB0: + bl IsDma3ManagerBusyWithBgCopy + lsls r0, 24 + cmp r0, 0 + bne _081D0C44 +_081D0BBA: + movs r0, 0x2 +_081D0BBC: + bl CopyBgTilemapBufferToVram + movs r0, 0 + b _081D0C4A +_081D0BC4: + bl IsDma3ManagerBusyWithBgCopy + lsls r0, 24 + cmp r0, 0 + bne _081D0C44 + adds r0, r5, 0 + bl sub_81D1148 + movs r0, 0x1 + b _081D0C4A +_081D0BD8: + adds r0, r5, 0 + bl sub_81D12D8 + movs r0, 0xA + bl sub_81C7BA4 + movs r0, 0 + b _081D0C4A +_081D0BE8: + bl IsDma3ManagerBusyWithBgCopy + lsls r0, 24 + cmp r0, 0 + bne _081D0C44 + adds r0, r5, 0 + bl sub_81D13FC + movs r0, 0x1 + movs r1, 0 + movs r2, 0 + bl ChangeBgX + movs r0, 0x1 + movs r1, 0 + movs r2, 0 + bl ChangeBgY + movs r0, 0x2 + movs r1, 0 + movs r2, 0 + bl ChangeBgX + movs r0, 0x2 + movs r1, 0 + movs r2, 0 + bl ChangeBgY + movs r0, 0x1 + bl ShowBg + movs r0, 0x2 + bl ShowBg + movs r0, 0x3 + bl HideBg + movs r0, 0x1 + bl sub_81C7AC0 + movs r0, 0 + b _081D0C4A +_081D0C3C: + bl IsPaletteFadeActive + cmp r0, 0 + beq _081D0C48 +_081D0C44: + movs r0, 0x2 + b _081D0C4A +_081D0C48: + movs r0, 0x4 +_081D0C4A: + add sp, 0x8 + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_81D0A6C + + thumb_func_start sub_81D0C54 +sub_81D0C54: @ 81D0C54 + push {lr} + cmp r0, 0 + beq _081D0C60 + cmp r0, 0x1 + beq _081D0C70 + b _081D0C7C +_081D0C60: + movs r0, 0x5 + bl PlaySE + movs r0, 0 + bl sub_81C7AC0 + movs r0, 0 + b _081D0C7E +_081D0C70: + bl IsPaletteFadeActive + cmp r0, 0 + beq _081D0C7C + movs r0, 0x2 + b _081D0C7E +_081D0C7C: + movs r0, 0x4 +_081D0C7E: + pop {r1} + bx r1 + thumb_func_end sub_81D0C54 + + thumb_func_start sub_81D0C84 +sub_81D0C84: @ 81D0C84 + push {r4,r5,lr} + adds r5, r0, 0 + movs r0, 0xE + bl GetSubstructPtr + adds r4, r0, 0 + cmp r5, 0x6 + bhi _081D0D24 + lsls r0, r5, 2 + ldr r1, =_081D0CA4 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .pool + .align 2, 0 +_081D0CA4: + .4byte _081D0CC0 + .4byte _081D0CD0 + .4byte _081D0CE4 + .4byte _081D0CEE + .4byte _081D0CF8 + .4byte _081D0D02 + .4byte _081D0D16 +_081D0CC0: + movs r0, 0x5 + bl PlaySE + adds r0, r4, 0 + bl sub_81D11D8 + movs r0, 0 + b _081D0D26 +_081D0CD0: + adds r0, r4, 0 + bl sub_81D1234 + cmp r0, 0 + bne _081D0D20 + adds r0, r4, 0 + bl sub_81D0FF0 + movs r0, 0x1 + b _081D0D26 +_081D0CE4: + adds r0, r4, 0 + bl sub_81D12D8 + movs r0, 0x1 + b _081D0D26 +_081D0CEE: + adds r0, r4, 0 + bl sub_81D10D0 + movs r0, 0x1 + b _081D0D26 +_081D0CF8: + adds r0, r4, 0 + bl sub_81D0E84 + movs r0, 0x1 + b _081D0D26 +_081D0D02: + bl IsDma3ManagerBusyWithBgCopy + lsls r0, 24 + cmp r0, 0 + bne _081D0D20 + adds r0, r4, 0 + bl sub_81D11FC + movs r0, 0 + b _081D0D26 +_081D0D16: + adds r0, r4, 0 + bl sub_81D1234 + cmp r0, 0 + beq _081D0D24 +_081D0D20: + movs r0, 0x2 + b _081D0D26 +_081D0D24: + movs r0, 0x4 +_081D0D26: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_81D0C84 + + thumb_func_start sub_81D0D2C +sub_81D0D2C: @ 81D0D2C + push {r4,r5,lr} + adds r4, r0, 0 + movs r0, 0xE + bl GetSubstructPtr + adds r5, r0, 0 + cmp r4, 0x1 + beq _081D0D5C + cmp r4, 0x1 + bgt _081D0D46 + cmp r4, 0 + beq _081D0D4C + b _081D0D84 +_081D0D46: + cmp r4, 0x2 + beq _081D0D76 + b _081D0D84 +_081D0D4C: + movs r0, 0x5 + bl PlaySE + adds r0, r5, 0 + bl sub_81D1448 + movs r0, 0 + b _081D0D86 +_081D0D5C: + adds r0, r5, 0 + bl sub_81D1524 + cmp r0, 0 + bne _081D0D80 + adds r0, r5, 0 + bl sub_81D0EFC + movs r0, 0xB + bl sub_81C7BA4 + movs r0, 0 + b _081D0D86 +_081D0D76: + bl IsDma3ManagerBusyWithBgCopy + lsls r0, 24 + cmp r0, 0 + beq _081D0D84 +_081D0D80: + movs r0, 0x2 + b _081D0D86 +_081D0D84: + movs r0, 0x4 +_081D0D86: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_81D0D2C + + thumb_func_start sub_81D0D8C +sub_81D0D8C: @ 81D0D8C + push {r4,r5,lr} + adds r4, r0, 0 + movs r0, 0xE + bl GetSubstructPtr + adds r5, r0, 0 + cmp r4, 0x1 + beq _081D0DC0 + cmp r4, 0x1 + bgt _081D0DA6 + cmp r4, 0 + beq _081D0DB0 + b _081D0DF6 +_081D0DA6: + cmp r4, 0x2 + beq _081D0DD4 + cmp r4, 0x3 + beq _081D0DE8 + b _081D0DF6 +_081D0DB0: + movs r0, 0x5 + bl PlaySE + adds r0, r5, 0 + bl sub_81D1500 + movs r0, 0 + b _081D0DF8 +_081D0DC0: + adds r0, r5, 0 + bl sub_81D1524 + cmp r0, 0 + bne _081D0DF2 + adds r0, r5, 0 + bl sub_81D1448 + movs r0, 0 + b _081D0DF8 +_081D0DD4: + adds r0, r5, 0 + bl sub_81D1524 + cmp r0, 0 + bne _081D0DF2 + adds r0, r5, 0 + bl sub_81D0EFC + movs r0, 0 + b _081D0DF8 +_081D0DE8: + bl IsDma3ManagerBusyWithBgCopy + lsls r0, 24 + cmp r0, 0 + beq _081D0DF6 +_081D0DF2: + movs r0, 0x2 + b _081D0DF8 +_081D0DF6: + movs r0, 0x4 +_081D0DF8: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_81D0D8C + + thumb_func_start sub_81D0E00 +sub_81D0E00: @ 81D0E00 + push {r4,r5,lr} + adds r4, r0, 0 + movs r0, 0xE + bl GetSubstructPtr + adds r5, r0, 0 + cmp r4, 0x1 + beq _081D0E30 + cmp r4, 0x1 + bgt _081D0E1A + cmp r4, 0 + beq _081D0E20 + b _081D0E58 +_081D0E1A: + cmp r4, 0x2 + beq _081D0E4A + b _081D0E58 +_081D0E20: + movs r0, 0x5 + bl PlaySE + adds r0, r5, 0 + bl sub_81D1500 + movs r0, 0 + b _081D0E5A +_081D0E30: + adds r0, r5, 0 + bl sub_81D1524 + cmp r0, 0 + bne _081D0E54 + adds r0, r5, 0 + bl sub_81D0E84 + movs r0, 0xA + bl sub_81C7BA4 + movs r0, 0 + b _081D0E5A +_081D0E4A: + bl IsDma3ManagerBusyWithBgCopy + lsls r0, 24 + cmp r0, 0 + beq _081D0E58 +_081D0E54: + movs r0, 0x2 + b _081D0E5A +_081D0E58: + movs r0, 0x4 +_081D0E5A: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_81D0E00 + + thumb_func_start sub_81D0E60 +sub_81D0E60: @ 81D0E60 + push {r4,lr} + adds r4, r0, 0 + ldr r0, =gUnknown_08624BB8 + bl AddWindow + strh r0, [r4, 0xA] + lsls r0, 24 + lsrs r0, 24 + bl PutWindowTilemap + adds r0, r4, 0 + bl sub_81D0E84 + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81D0E60 + + thumb_func_start sub_81D0E84 +sub_81D0E84: @ 81D0E84 + push {r4,r5,lr} + sub sp, 0x10 + adds r5, r0, 0 + ldr r1, =gUnknown_08624BC0 + add r0, sp, 0xC + movs r2, 0x3 + bl memcpy + ldr r4, =gStringVar1 + bl sub_81D07D8 + adds r1, r0, 0 + adds r0, r4, 0 + movs r2, 0 + movs r3, 0x2 + bl ConvertIntToDecimalStringN + bl DynamicPlaceholderTextUtil_Reset + movs r0, 0 + adds r1, r4, 0 + bl DynamicPlaceholderTextUtil_SetPlaceholderPtr + ldr r4, =gStringVar4 + ldr r1, =gText_RibbonsF700 + adds r0, r4, 0 + bl DynamicPlaceholderTextUtil_ExpandPlaceholders + ldrb r0, [r5, 0xA] + movs r1, 0x44 + bl FillWindowPixelBuffer + ldrb r0, [r5, 0xA] + add r1, sp, 0xC + str r1, [sp] + movs r1, 0x1 + negs r1, r1 + str r1, [sp, 0x4] + str r4, [sp, 0x8] + movs r1, 0x1 + movs r2, 0 + movs r3, 0x1 + bl AddTextPrinterParameterized3 + ldrb r0, [r5, 0xA] + movs r1, 0x2 + bl CopyWindowToVram + add sp, 0x10 + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81D0E84 + + thumb_func_start sub_81D0EFC +sub_81D0EFC: @ 81D0EFC + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x10 + adds r7, r0, 0 + bl sub_81D0954 + adds r5, r0, 0 + ldr r1, =gUnknown_08624BC0 + add r0, sp, 0xC + movs r2, 0x3 + bl memcpy + ldrb r0, [r7, 0xA] + movs r1, 0x44 + bl FillWindowPixelBuffer + cmp r5, 0x18 + bhi _081D0F60 + lsls r1, r5, 3 + ldr r0, =gRibbonDescriptionPointers + adds r6, r1, r0 + movs r5, 0x80 + lsls r5, 17 + movs r4, 0x1 +_081D0F2E: + ldrb r0, [r7, 0xA] + lsrs r3, r5, 24 + add r1, sp, 0xC + str r1, [sp] + movs r1, 0x1 + negs r1, r1 + str r1, [sp, 0x4] + ldm r6!, {r1} + str r1, [sp, 0x8] + movs r1, 0x1 + movs r2, 0 + bl AddTextPrinterParameterized3 + movs r0, 0x80 + lsls r0, 21 + adds r5, r0 + subs r4, 0x1 + cmp r4, 0 + bge _081D0F2E + b _081D0FAA + .pool +_081D0F60: + ldr r0, =gSaveBlock1Ptr + ldr r0, [r0] + adds r0, r5 + ldr r1, =0x0000318f + adds r0, r1 + ldrb r5, [r0] + cmp r5, 0 + beq _081D0FB2 + subs r5, 0x1 + movs r4, 0 + ldr r0, =gGiftRibbonDescriptionPointers + mov r8, r0 + movs r6, 0x80 + lsls r6, 17 +_081D0F7C: + ldrb r0, [r7, 0xA] + lsrs r3, r6, 24 + add r1, sp, 0xC + str r1, [sp] + movs r1, 0x1 + negs r1, r1 + str r1, [sp, 0x4] + lsls r1, r4, 2 + lsls r2, r5, 3 + adds r1, r2 + add r1, r8 + ldr r1, [r1] + str r1, [sp, 0x8] + movs r1, 0x1 + movs r2, 0 + bl AddTextPrinterParameterized3 + movs r0, 0x80 + lsls r0, 21 + adds r6, r0 + adds r4, 0x1 + cmp r4, 0x1 + ble _081D0F7C +_081D0FAA: + ldrb r0, [r7, 0xA] + movs r1, 0x2 + bl CopyWindowToVram +_081D0FB2: + add sp, 0x10 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81D0EFC + + thumb_func_start sub_81D0FCC +sub_81D0FCC: @ 81D0FCC + push {r4,lr} + adds r4, r0, 0 + ldr r0, =gUnknown_08624BC4 + bl AddWindow + strh r0, [r4, 0x8] + lsls r0, 24 + lsrs r0, 24 + bl PutWindowTilemap + adds r0, r4, 0 + bl sub_81D0FF0 + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81D0FCC + + thumb_func_start sub_81D0FF0 +sub_81D0FF0: @ 81D0FF0 + push {r4-r7,lr} + sub sp, 0x10 + ldrh r7, [r0, 0x8] + ldrb r5, [r0, 0x8] + adds r0, r5, 0 + movs r1, 0x11 + bl FillWindowPixelBuffer + ldr r4, =gStringVar3 + mov r6, sp + adds r6, 0xD + adds r0, r4, 0 + add r1, sp, 0xC + adds r2, r6, 0 + bl sub_81D06E4 + movs r0, 0x1 + str r0, [sp] + movs r0, 0xFF + str r0, [sp, 0x4] + movs r0, 0 + str r0, [sp, 0x8] + adds r0, r5, 0 + movs r1, 0x1 + adds r2, r4, 0 + movs r3, 0 + bl AddTextPrinterParameterized + ldrb r0, [r6] + cmp r0, 0 + beq _081D1040 + cmp r0, 0xFE + beq _081D1048 + ldr r1, =gUnknown_08624BE4 + b _081D104A + .pool +_081D1040: + ldr r1, =gUnknown_08624BCC + b _081D104A + .pool +_081D1048: + ldr r1, =gUnknown_08624BD8 +_081D104A: + ldr r5, =gStringVar1 + adds r0, r5, 0 + bl StringCopy + movs r1, 0xBA + strb r1, [r0] + adds r0, 0x1 + movs r1, 0xF9 + strb r1, [r0] + adds r0, 0x1 + movs r1, 0x5 + strb r1, [r0] + adds r0, 0x1 + add r1, sp, 0xC + ldrb r1, [r1] + movs r2, 0 + movs r3, 0x3 + bl ConvertIntToDecimalStringN + lsls r4, r7, 24 + lsrs r4, 24 + movs r0, 0x1 + str r0, [sp] + movs r0, 0xFF + str r0, [sp, 0x4] + movs r0, 0 + str r0, [sp, 0x8] + adds r0, r4, 0 + movs r1, 0x1 + adds r2, r5, 0 + movs r3, 0x3C + bl AddTextPrinterParameterized + adds r0, r4, 0 + movs r1, 0x2 + bl CopyWindowToVram + add sp, 0x10 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81D0FF0 + + thumb_func_start sub_81D10A4 +sub_81D10A4: @ 81D10A4 + push {r4,lr} + adds r4, r0, 0 + ldr r0, =gUnknown_08624BE8 + bl AddWindow + strh r0, [r4, 0xC] + lsls r0, 24 + lsrs r0, 24 + movs r1, 0x11 + bl FillWindowPixelBuffer + ldrb r0, [r4, 0xC] + bl PutWindowTilemap + adds r0, r4, 0 + bl sub_81D10D0 + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81D10A4 + + thumb_func_start sub_81D10D0 +sub_81D10D0: @ 81D10D0 + push {r4-r6,lr} + mov r6, r8 + push {r6} + sub sp, 0xC + mov r8, r0 + bl sub_81D06C4 + adds r4, r0, 0 + adds r4, 0x1 + bl sub_81D06D4 + adds r6, r0, 0 + ldr r5, =gStringVar1 + adds r0, r5, 0 + adds r1, r4, 0 + movs r2, 0x1 + movs r3, 0x3 + bl ConvertIntToDecimalStringN + movs r1, 0xBA + strb r1, [r0] + adds r0, 0x1 + adds r1, r6, 0 + movs r2, 0x1 + movs r3, 0x3 + bl ConvertIntToDecimalStringN + movs r0, 0x1 + adds r1, r5, 0 + movs r2, 0x38 + bl GetStringCenterAlignXOffset + adds r3, r0, 0 + mov r1, r8 + ldrb r0, [r1, 0xC] + lsls r3, 24 + lsrs r3, 24 + movs r1, 0x1 + str r1, [sp] + movs r1, 0xFF + str r1, [sp, 0x4] + movs r1, 0 + str r1, [sp, 0x8] + movs r1, 0x1 + adds r2, r5, 0 + bl AddTextPrinterParameterized + mov r1, r8 + ldrb r0, [r1, 0xC] + movs r1, 0x2 + bl CopyWindowToVram + add sp, 0xC + pop {r3} + mov r8, r3 + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81D10D0 + + thumb_func_start sub_81D1148 +sub_81D1148: @ 81D1148 + push {r4,lr} + sub sp, 0xC + adds r4, r0, 0 + add r1, sp, 0x4 + add r2, sp, 0x8 + mov r0, sp + bl sub_81D0760 + bl ResetAllPicSprites + movs r0, 0x28 + movs r1, 0x68 + bl sub_81D1184 + strh r0, [r4, 0x10] + movs r0, 0xF + movs r1, 0 + bl sub_81C7990 + add sp, 0xC + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_81D1148 + + thumb_func_start sub_81D1178 +sub_81D1178: @ 81D1178 + push {lr} + ldrh r0, [r0, 0x10] + bl FreeAndDestroyMonPicSprite + pop {r0} + bx r0 + thumb_func_end sub_81D1178 + + thumb_func_start sub_81D1184 +sub_81D1184: @ 81D1184 + push {lr} + sub sp, 0x1C + add r1, sp, 0x14 + add r2, sp, 0x18 + add r0, sp, 0x10 + bl sub_81D0760 + add r0, sp, 0x10 + ldrh r0, [r0] + ldr r1, [sp, 0x18] + ldr r2, [sp, 0x14] + movs r3, 0x28 + str r3, [sp] + movs r3, 0x68 + str r3, [sp, 0x4] + movs r3, 0xF + str r3, [sp, 0x8] + ldr r3, =0x0000ffff + str r3, [sp, 0xC] + movs r3, 0x1 + bl CreateMonPicSprite_HandleDeoxys + lsls r0, 16 + lsrs r0, 16 + ldr r1, =gSprites + lsls r2, r0, 4 + adds r2, r0 + lsls r2, 2 + adds r2, r1 + ldrb r3, [r2, 0x5] + movs r1, 0xD + negs r1, r1 + ands r1, r3 + strb r1, [r2, 0x5] + add sp, 0x1C + pop {r1} + bx r1 + .pool + thumb_func_end sub_81D1184 + + thumb_func_start sub_81D11D8 +sub_81D11D8: @ 81D11D8 + push {lr} + ldrh r1, [r0, 0x10] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, =gSprites + adds r0, r1 + movs r2, 0x20 + negs r2, r2 + movs r1, 0x28 + movs r3, 0x6 + bl sub_81D1258 + pop {r0} + bx r0 + .pool + thumb_func_end sub_81D11D8 + + thumb_func_start sub_81D11FC +sub_81D11FC: @ 81D11FC + push {r4,r5,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x10] + bl FreeAndDestroyMonPicSprite + movs r5, 0x20 + negs r5, r5 + adds r0, r5, 0 + movs r1, 0x68 + bl sub_81D1184 + strh r0, [r4, 0x10] + ldrh r1, [r4, 0x10] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, =gSprites + adds r0, r1 + adds r1, r5, 0 + movs r2, 0x28 + movs r3, 0x6 + bl sub_81D1258 + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81D11FC + + thumb_func_start sub_81D1234 +sub_81D1234: @ 81D1234 + ldr r2, =gSprites + ldrh r1, [r0, 0x10] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r2, 0x1C + adds r0, r2 + ldr r1, [r0] + ldr r0, =SpriteCallbackDummy + eors r1, r0 + negs r0, r1 + orrs r0, r1 + lsrs r0, 31 + bx lr + .pool + thumb_func_end sub_81D1234 + + thumb_func_start sub_81D1258 +sub_81D1258: @ 81D1258 + push {r4-r6,lr} + adds r4, r0, 0 + adds r6, r2, 0 + adds r5, r3, 0 + subs r0, r6, r1 + strh r1, [r4, 0x20] + lsls r1, 4 + strh r1, [r4, 0x2E] + lsls r0, 4 + adds r1, r5, 0 + bl __udivsi3 + strh r0, [r4, 0x30] + strh r5, [r4, 0x32] + strh r6, [r4, 0x34] + ldr r0, =sub_81D1284 + str r0, [r4, 0x1C] + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81D1258 + + thumb_func_start sub_81D1284 +sub_81D1284: @ 81D1284 + push {lr} + adds r2, r0, 0 + ldrh r1, [r2, 0x32] + movs r3, 0x32 + ldrsh r0, [r2, r3] + cmp r0, 0 + beq _081D12C8 + subs r0, r1, 0x1 + strh r0, [r2, 0x32] + ldrh r0, [r2, 0x30] + ldrh r1, [r2, 0x2E] + adds r0, r1 + strh r0, [r2, 0x2E] + lsls r0, 16 + asrs r0, 20 + strh r0, [r2, 0x20] + movs r1, 0x20 + negs r1, r1 + cmp r0, r1 + bgt _081D12BA + adds r0, r2, 0 + adds r0, 0x3E + ldrb r1, [r0] + movs r2, 0x4 + orrs r1, r2 + strb r1, [r0] + b _081D12D0 +_081D12BA: + adds r2, 0x3E + ldrb r1, [r2] + movs r0, 0x5 + negs r0, r0 + ands r0, r1 + strb r0, [r2] + b _081D12D0 +_081D12C8: + ldrh r0, [r2, 0x34] + strh r0, [r2, 0x20] + ldr r0, =SpriteCallbackDummy + str r0, [r2, 0x1C] +_081D12D0: + pop {r0} + bx r0 + .pool + thumb_func_end sub_81D1284 + + thumb_func_start sub_81D12D8 +sub_81D12D8: @ 81D12D8 + push {r4-r6,lr} + bl sub_81D1350 + ldr r5, =gUnknown_030012C0 + adds r0, r5, 0 + bl sub_81D0914 + adds r6, r0, 0 + ldr r2, =gUnknown_030012C4 + movs r1, 0 + str r1, [r2] + ldr r0, [r5] + cmp r1, r0 + bcs _081D130A + adds r4, r2, 0 +_081D12F6: + ldr r0, [r4] + ldm r6!, {r1} + bl sub_81D1370 + ldr r1, [r4] + adds r1, 0x1 + str r1, [r4] + ldr r0, [r5] + cmp r1, r0 + bcc _081D12F6 +_081D130A: + ldr r4, =gUnknown_030012C0 + adds r0, r4, 0 + bl sub_81D092C + adds r6, r0, 0 + ldr r2, =gUnknown_030012C4 + movs r1, 0 + str r1, [r2] + ldr r0, [r4] + cmp r1, r0 + bcs _081D133A + adds r4, r2, 0 +_081D1322: + ldr r0, [r4] + adds r0, 0x1B + ldm r6!, {r1} + bl sub_81D1370 + ldr r1, [r4] + adds r1, 0x1 + str r1, [r4] + ldr r0, =gUnknown_030012C0 + ldr r0, [r0] + cmp r1, r0 + bcc _081D1322 +_081D133A: + movs r0, 0x1 + bl CopyBgTilemapBufferToVram + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81D12D8 + + thumb_func_start sub_81D1350 +sub_81D1350: @ 81D1350 + push {lr} + sub sp, 0x8 + movs r0, 0x20 + str r0, [sp] + movs r0, 0x14 + str r0, [sp, 0x4] + movs r0, 0x1 + movs r1, 0 + movs r2, 0 + movs r3, 0 + bl FillBgTilemapBufferRect_Palette0 + add sp, 0x8 + pop {r0} + bx r0 + thumb_func_end sub_81D1350 + + thumb_func_start sub_81D1370 +sub_81D1370: @ 81D1370 + push {r4-r6,lr} + sub sp, 0x10 + adds r4, r0, 0 + adds r6, r1, 0 + movs r1, 0x9 + bl __umodsi3 + adds r5, r0, 0 + lsls r5, 1 + adds r5, 0xB + adds r0, r4, 0 + movs r1, 0x9 + bl __udivsi3 + adds r4, r0, 0 + lsls r4, 1 + adds r4, 0x4 + add r0, sp, 0x8 + adds r1, r6, 0 + bl sub_81D13BC + lsls r5, 24 + lsrs r5, 24 + lsls r4, 24 + lsrs r4, 24 + movs r0, 0x2 + str r0, [sp] + str r0, [sp, 0x4] + movs r0, 0x1 + add r1, sp, 0x8 + adds r2, r5, 0 + adds r3, r4, 0 + bl CopyToBgTilemapBufferRect + add sp, 0x10 + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_81D1370 + + thumb_func_start sub_81D13BC +sub_81D13BC: @ 81D13BC + push {r4,r5,lr} + ldr r2, =gUnknown_08624BF8 + lsls r1, 2 + adds r1, r2 + ldrh r3, [r1, 0x2] + adds r3, 0x2 + lsls r3, 16 + ldrh r1, [r1] + lsls r1, 1 + adds r1, 0x1 + lsls r1, 16 + lsrs r1, 16 + lsrs r3, 4 + adds r2, r1, 0 + orrs r2, r3 + strh r2, [r0] + movs r5, 0x80 + lsls r5, 3 + adds r4, r5, 0 + orrs r2, r4 + strh r2, [r0, 0x2] + adds r1, 0x1 + orrs r1, r3 + strh r1, [r0, 0x4] + orrs r1, r4 + strh r1, [r0, 0x6] + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81D13BC + + thumb_func_start sub_81D13FC +sub_81D13FC: @ 81D13FC + push {r4,lr} + adds r4, r0, 0 + ldr r0, =gUnknown_08624C78 + bl LoadCompressedSpriteSheet + ldr r0, =gUnknown_08624C80 + bl Pokenav_AllocAndLoadPalettes + ldr r0, =gUnknown_08624D04 + movs r1, 0 + movs r2, 0 + movs r3, 0 + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + ldr r0, =gSprites + adds r1, r0 + str r1, [r4, 0x14] + adds r1, 0x3E + ldrb r0, [r1] + movs r2, 0x4 + orrs r0, r2 + strb r0, [r1] + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81D13FC + + thumb_func_start sub_81D1448 +sub_81D1448: @ 81D1448 + push {r4-r6,lr} + mov r6, r8 + push {r6} + adds r6, r0, 0 + bl sub_81D0944 + adds r4, r0, 0 + lsls r4, 16 + lsrs r4, 16 + adds r0, r4, 0 + movs r1, 0x9 + bl __modsi3 + adds r5, r0, 0 + lsls r5, 4 + adds r5, 0x60 + adds r0, r4, 0 + movs r1, 0x9 + bl __divsi3 + lsls r0, 4 + adds r0, 0x28 + ldr r1, [r6, 0x14] + movs r2, 0 + mov r8, r2 + strh r5, [r1, 0x20] + ldr r1, [r6, 0x14] + strh r0, [r1, 0x22] + bl sub_81D0954 + adds r4, r0, 0 + movs r0, 0x9 + bl GetSpriteTileStartByTag + ldr r3, [r6, 0x14] + ldr r1, =gUnknown_08624BF8 + lsls r4, 2 + adds r4, r1 + ldrh r1, [r4] + lsls r1, 4 + adds r0, r1 + ldr r2, =0x000003ff + adds r1, r2, 0 + ands r0, r1 + ldrh r2, [r3, 0x4] + ldr r1, =0xfffffc00 + ands r1, r2 + orrs r1, r0 + strh r1, [r3, 0x4] + ldrh r0, [r4, 0x2] + adds r0, 0xF + lsls r0, 16 + lsrs r0, 16 + bl IndexOfSpritePaletteTag + ldr r3, [r6, 0x14] + lsls r0, 4 + ldrb r2, [r3, 0x5] + movs r1, 0xF + ands r1, r2 + orrs r1, r0 + strb r1, [r3, 0x5] + ldr r0, [r6, 0x14] + movs r1, 0x1 + bl StartSpriteAffineAnim + ldr r1, [r6, 0x14] + adds r1, 0x3E + ldrb r2, [r1] + movs r0, 0x5 + negs r0, r0 + ands r0, r2 + strb r0, [r1] + ldr r0, [r6, 0x14] + mov r1, r8 + strh r1, [r0, 0x2E] + ldr r1, [r6, 0x14] + ldr r0, =sub_81D1538 + str r0, [r1, 0x1C] + pop {r3} + mov r8, r3 + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81D1448 + + thumb_func_start sub_81D1500 +sub_81D1500: @ 81D1500 + push {r4,lr} + adds r4, r0, 0 + ldr r1, [r4, 0x14] + movs r0, 0x1 + strh r0, [r1, 0x2E] + ldr r0, [r4, 0x14] + movs r1, 0x2 + bl StartSpriteAffineAnim + ldr r1, [r4, 0x14] + ldr r0, =sub_81D1538 + str r0, [r1, 0x1C] + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81D1500 + + thumb_func_start sub_81D1524 +sub_81D1524: @ 81D1524 + ldr r0, [r0, 0x14] + ldr r1, [r0, 0x1C] + ldr r0, =SpriteCallbackDummy + eors r1, r0 + negs r0, r1 + orrs r0, r1 + lsrs r0, 31 + bx lr + .pool + thumb_func_end sub_81D1524 + + thumb_func_start sub_81D1538 +sub_81D1538: @ 81D1538 + push {lr} + adds r3, r0, 0 + adds r0, 0x3F + ldrb r1, [r0] + movs r0, 0x20 + ands r0, r1 + cmp r0, 0 + beq _081D156A + movs r0, 0x3E + adds r0, r3 + mov r12, r0 + movs r0, 0x1 + ldrh r1, [r3, 0x2E] + ands r1, r0 + lsls r1, 2 + mov r0, r12 + ldrb r2, [r0] + movs r0, 0x5 + negs r0, r0 + ands r0, r2 + orrs r0, r1 + mov r1, r12 + strb r0, [r1] + ldr r0, =SpriteCallbackDummy + str r0, [r3, 0x1C] +_081D156A: + pop {r0} + bx r0 + .pool + thumb_func_end sub_81D1538 + + .align 2, 0 @ Don't pad with nop. diff --git a/asm/pokenav_unk_2.s b/asm/pokenav_unk_2.s new file mode 100644 index 000000000..fd076973c --- /dev/null +++ b/asm/pokenav_unk_2.s @@ -0,0 +1,2277 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .syntax unified + +@ File centered around AllocSubstruct(2) + + thumb_func_start sub_81C98D4 +sub_81C98D4: @ 81C98D4 + push {r4,lr} + movs r4, 0 +_081C98D8: + adds r0, r4, 0 + bl sub_81CB0C8 + ldr r1, =gMapHeader + lsls r0, 24 + lsrs r0, 24 + ldrb r1, [r1, 0x14] + cmp r0, r1 + bne _081C9914 + adds r0, r4, 0 + bl sub_81CAE08 + cmp r0, 0 + beq _081C9914 + ldr r0, =gSaveBlock1Ptr + ldr r0, [r0] + ldr r1, =0x000009ca + adds r0, r1 + adds r0, r4 + ldrb r0, [r0] + cmp r0, 0 + beq _081C9914 + movs r0, 0x1 + b _081C991C + .pool +_081C9914: + adds r4, 0x1 + cmp r4, 0x4D + ble _081C98D8 + movs r0, 0 +_081C991C: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_81C98D4 + + thumb_func_start sub_81C9924 +sub_81C9924: @ 81C9924 + push {lr} + bl sub_81C9958 + adds r1, r0, 0 + cmp r1, 0 + beq _081C9938 + movs r0, 0 + strb r0, [r1, 0xD] + movs r0, 0x1 + b _081C993A +_081C9938: + movs r0, 0 +_081C993A: + pop {r1} + bx r1 + thumb_func_end sub_81C9924 + + thumb_func_start sub_81C9940 +sub_81C9940: @ 81C9940 + push {lr} + bl sub_81C9958 + adds r1, r0, 0 + cmp r1, 0 + beq _081C9952 + movs r0, 0x1 + strb r0, [r1, 0xD] + b _081C9954 +_081C9952: + movs r0, 0 +_081C9954: + pop {r1} + bx r1 + thumb_func_end sub_81C9940 + + thumb_func_start sub_81C9958 +sub_81C9958: @ 81C9958 + push {r4,lr} + ldr r1, =0x0000088c + movs r0, 0x2 + bl AllocSubstruct + adds r4, r0, 0 + cmp r4, 0 + beq _081C997A + movs r0, 0 + strb r0, [r4, 0xC] + ldr r0, =sub_81C9A10 + movs r1, 0x1 + bl CreateLoopedTask + str r0, [r4, 0x4] + ldr r0, =sub_81C99FC + str r0, [r4] +_081C997A: + adds r0, r4, 0 + pop {r4} + pop {r1} + bx r1 + .pool + thumb_func_end sub_81C9958 + + thumb_func_start sub_81C9990 +sub_81C9990: @ 81C9990 + push {r4,r5,lr} + adds r4, r0, 0 + movs r0, 0x2 + bl GetSubstructPtr + adds r5, r0, 0 + ldr r0, =gUnknown_086201A0 + lsls r4, 2 + adds r4, r0 + ldr r0, [r4] + movs r1, 0x1 + bl CreateLoopedTask + str r0, [r5, 0x4] + ldr r0, =sub_81C99FC + str r0, [r5] + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81C9990 + + thumb_func_start sub_81C99C0 +sub_81C99C0: @ 81C99C0 + push {lr} + movs r0, 0x2 + bl GetSubstructPtr + ldr r0, [r0] + bl _call_via_r0 + pop {r1} + bx r1 + thumb_func_end sub_81C99C0 + + thumb_func_start sub_81C99D4 +sub_81C99D4: @ 81C99D4 + push {r4,lr} + movs r0, 0x2 + bl GetSubstructPtr + adds r4, r0, 0 + bl sub_81CA7F4 + ldrb r0, [r4, 0x8] + bl RemoveWindow + bl sub_81C9FEC + bl sub_81CA994 + movs r0, 0x2 + bl FreePokenavSubstruct + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_81C99D4 + + thumb_func_start sub_81C99FC +sub_81C99FC: @ 81C99FC + push {lr} + movs r0, 0x2 + bl GetSubstructPtr + ldr r0, [r0, 0x4] + bl IsLoopedTaskActive + pop {r1} + bx r1 + thumb_func_end sub_81C99FC + + thumb_func_start sub_81C9A10 +sub_81C9A10: @ 81C9A10 + push {r4,r5,lr} + sub sp, 0x4 + adds r4, r0, 0 + movs r0, 0x2 + bl GetSubstructPtr + adds r5, r0, 0 + cmp r4, 0x9 + bls _081C9A24 + b _081C9C60 +_081C9A24: + lsls r0, r4, 2 + ldr r1, =_081C9A34 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .pool + .align 2, 0 +_081C9A34: + .4byte _081C9A5C + .4byte _081C9AEC + .4byte _081C9B30 + .4byte _081C9B88 + .4byte _081C9B9E + .4byte _081C9BA4 + .4byte _081C9BB6 + .4byte _081C9BC0 + .4byte _081C9C0E + .4byte _081C9C4C +_081C9A5C: + ldr r0, =gUnknown_08620194 + movs r1, 0x3 + bl InitBgTemplates + ldr r1, =gPokenavMessageBox_Gfx + movs r0, 0 + str r0, [sp] + movs r0, 0x1 + movs r2, 0 + movs r3, 0 + bl decompress_and_copy_tile_data_to_vram + adds r1, r5, 0 + adds r1, 0x8C + movs r0, 0x1 + bl SetBgTilemapBuffer + ldr r1, =gPokenavMessageBox_Tilemap + movs r0, 0x1 + movs r2, 0 + movs r3, 0 + bl CopyToBgTilemapBuffer + movs r0, 0x1 + bl CopyBgTilemapBufferToVram + ldr r0, =gPokenavMessageBox_Pal + movs r1, 0x10 + movs r2, 0x20 + bl CopyPaletteIntoBufferUnfaded + movs r0, 0x1 + movs r1, 0 + movs r2, 0 + bl ChangeBgX + movs r0, 0x1 + movs r1, 0 + movs r2, 0 + bl ChangeBgY + movs r0, 0x2 + movs r1, 0 + movs r2, 0 + bl ChangeBgX + movs r0, 0x2 + movs r1, 0 + movs r2, 0 + bl ChangeBgY + movs r0, 0x3 + movs r1, 0 + movs r2, 0 + bl ChangeBgX + movs r0, 0x3 + movs r1, 0 + movs r2, 0 + bl ChangeBgY +_081C9AD6: + movs r0, 0 + b _081C9C62 + .pool +_081C9AEC: + bl free_temp_tile_data_buffers_if_possible + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0 + beq _081C9AFA + b _081C9C5C +_081C9AFA: + ldr r1, =gUnknown_0861FD6C + str r0, [sp] + movs r0, 0x2 + movs r2, 0 + movs r3, 0 + bl decompress_and_copy_tile_data_to_vram + ldr r1, =gUnknown_0861FFF4 + movs r0, 0x1 + str r0, [sp] + movs r0, 0x2 + movs r2, 0 + movs r3, 0 + bl decompress_and_copy_tile_data_to_vram + ldr r0, =gUnknown_0861FD4C + movs r1, 0x20 + movs r2, 0x20 + bl CopyPaletteIntoBufferUnfaded + b _081C9AD6 + .pool +_081C9B30: + bl free_temp_tile_data_buffers_if_possible + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0 + beq _081C9B3E + b _081C9C5C +_081C9B3E: + ldr r1, =gUnknown_0861FC98 + str r0, [sp] + movs r0, 0x3 + movs r2, 0 + movs r3, 0 + bl decompress_and_copy_tile_data_to_vram + ldr r1, =gUnknown_0861FCAC + movs r0, 0x1 + str r0, [sp] + movs r0, 0x3 + movs r2, 0 + movs r3, 0 + bl decompress_and_copy_tile_data_to_vram + ldr r0, =gUnknown_0861FC78 + movs r1, 0x30 + movs r2, 0x20 + bl CopyPaletteIntoBufferUnfaded + bl sub_81C9894 + cmp r0, 0x3 + beq _081C9B76 + bl sub_81C9894 + cmp r0, 0x4 + bne _081C9AD6 +_081C9B76: + bl sub_81CA850 + b _081C9AD6 + .pool +_081C9B88: + bl free_temp_tile_data_buffers_if_possible + lsls r0, 24 + cmp r0, 0 + bne _081C9C5C + bl sub_81CA6E0 + bl sub_81CA7D4 +_081C9B9A: + movs r0, 0x1 + b _081C9C62 +_081C9B9E: + bl sub_81C9FC4 + b _081C9B9A +_081C9BA4: + bl sub_81CA714 + bl sub_81CA02C + bl sub_81CA640 + bl sub_81CA0C8 + b _081C9AD6 +_081C9BB6: + bl sub_81CA7C4 + cmp r0, 0 + bne _081C9C5C + b _081C9B9A +_081C9BC0: + movs r0, 0x1 + bl ShowBg + movs r0, 0x2 + bl ShowBg + movs r0, 0x3 + bl ShowBg + ldrb r0, [r5, 0xD] + cmp r0, 0 + beq _081C9BE0 + movs r0, 0x1 + bl sub_81C7AC0 + b _081C9BEC +_081C9BE0: + movs r0, 0x6E + bl PlaySE + movs r0, 0x3 + bl sub_81C7AC0 +_081C9BEC: + bl sub_81C9894 + cmp r0, 0x3 + beq _081C9BFE + cmp r0, 0x4 + bne _081C9C06 + movs r0, 0x7 + bl LoadLeftHeaderGfxForIndex +_081C9BFE: + movs r0, 0x1 + bl LoadLeftHeaderGfxForIndex + b _081C9AD6 +_081C9C06: + movs r0, 0 + bl LoadLeftHeaderGfxForIndex + b _081C9AD6 +_081C9C0E: + bl IsPaletteFadeActive + cmp r0, 0 + bne _081C9C5C + bl sub_81C9894 + cmp r0, 0x3 + beq _081C9C2C + cmp r0, 0x4 + bne _081C9C38 + movs r0, 0x7 + movs r1, 0 + movs r2, 0 + bl sub_81C7FA0 +_081C9C2C: + movs r0, 0x1 + movs r1, 0 + movs r2, 0 + bl sub_81C7FA0 + b _081C9C42 +_081C9C38: + movs r0, 0 + movs r1, 0 + movs r2, 0 + bl sub_81C7FA0 +_081C9C42: + bl sub_81CA20C + bl titlescreen_0 + b _081C9B9A +_081C9C4C: + bl sub_81CA324 + cmp r0, 0 + bne _081C9C5C + bl sub_81C8010 + cmp r0, 0 + beq _081C9C60 +_081C9C5C: + movs r0, 0x2 + b _081C9C62 +_081C9C60: + movs r0, 0x4 +_081C9C62: + add sp, 0x4 + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_81C9A10 + + thumb_func_start sub_81C9C6C +sub_81C9C6C: @ 81C9C6C + push {lr} + cmp r0, 0 + beq _081C9C78 + cmp r0, 0x1 + beq _081C9C8E + b _081C9CA2 +_081C9C78: + bl sub_81CAA3C + bl sub_81CA278 + bl sub_81CA714 + movs r0, 0x5 + bl PlaySE + movs r0, 0 + b _081C9CA4 +_081C9C8E: + bl sub_81CA324 + cmp r0, 0 + bne _081C9C9E + bl sub_81CA7C4 + cmp r0, 0 + beq _081C9CA2 +_081C9C9E: + movs r0, 0x2 + b _081C9CA4 +_081C9CA2: + movs r0, 0x4 +_081C9CA4: + pop {r1} + bx r1 + thumb_func_end sub_81C9C6C + + thumb_func_start sub_81C9CA8 +sub_81C9CA8: @ 81C9CA8 + push {lr} + cmp r0, 0x1 + beq _081C9CDC + cmp r0, 0x1 + bgt _081C9CB8 + cmp r0, 0 + beq _081C9CC2 + b _081C9D3C +_081C9CB8: + cmp r0, 0x2 + beq _081C9CFA + cmp r0, 0x3 + beq _081C9D14 + b _081C9D3C +_081C9CC2: + bl sub_81CA9C8 + bl sub_81CA2DC + movs r0, 0 + movs r1, 0 + bl sub_81C7FC4 + movs r0, 0x5 + bl PlaySE + movs r0, 0 + b _081C9D3E +_081C9CDC: + bl sub_81CA324 + cmp r0, 0 + bne _081C9D34 + bl sub_81C8010 + cmp r0, 0 + bne _081C9D34 + bl sub_81CA0C8 + movs r0, 0x1 + bl LoadLeftHeaderGfxForIndex + movs r0, 0 + b _081C9D3E +_081C9CFA: + bl sub_81CA20C + movs r0, 0x1 + movs r1, 0 + movs r2, 0 + bl sub_81C7FA0 + bl sub_81CA818 + bl sub_81CA714 + movs r0, 0 + b _081C9D3E +_081C9D14: + bl sub_81CA324 + cmp r0, 0 + bne _081C9D34 + bl sub_81C8010 + cmp r0, 0 + bne _081C9D34 + bl sub_81CA89C + cmp r0, 0 + bne _081C9D34 + bl sub_81CA7C4 + cmp r0, 0 + beq _081C9D38 +_081C9D34: + movs r0, 0x2 + b _081C9D3E +_081C9D38: + bl sub_81CA9D8 +_081C9D3C: + movs r0, 0x4 +_081C9D3E: + pop {r1} + bx r1 + thumb_func_end sub_81C9CA8 + + thumb_func_start sub_81C9D44 +sub_81C9D44: @ 81C9D44 + push {lr} + cmp r0, 0x1 + beq _081C9D72 + cmp r0, 0x1 + bgt _081C9D54 + cmp r0, 0 + beq _081C9D5E + b _081C9DD2 +_081C9D54: + cmp r0, 0x2 + beq _081C9D90 + cmp r0, 0x3 + beq _081C9DAA + b _081C9DD2 +_081C9D5E: + bl sub_81CA9C8 + bl sub_81CA2DC + movs r0, 0x1 + movs r1, 0 + bl sub_81C7FC4 + movs r0, 0 + b _081C9DD4 +_081C9D72: + bl sub_81CA324 + cmp r0, 0 + bne _081C9DCA + bl sub_81C8010 + cmp r0, 0 + bne _081C9DCA + bl sub_81CA0C8 + movs r0, 0 + bl LoadLeftHeaderGfxForIndex + movs r0, 0 + b _081C9DD4 +_081C9D90: + bl sub_81CA20C + movs r0, 0 + movs r1, 0 + movs r2, 0 + bl sub_81C7FA0 + bl sub_81CA864 + bl sub_81CA714 + movs r0, 0 + b _081C9DD4 +_081C9DAA: + bl sub_81CA324 + cmp r0, 0 + bne _081C9DCA + bl sub_81C8010 + cmp r0, 0 + bne _081C9DCA + bl sub_81CA89C + cmp r0, 0 + bne _081C9DCA + bl sub_81CA7C4 + cmp r0, 0 + beq _081C9DCE +_081C9DCA: + movs r0, 0x2 + b _081C9DD4 +_081C9DCE: + bl sub_81CA9D8 +_081C9DD2: + movs r0, 0x4 +_081C9DD4: + pop {r1} + bx r1 + thumb_func_end sub_81C9D44 + + thumb_func_start sub_81C9DD8 +sub_81C9DD8: @ 81C9DD8 + push {lr} + cmp r0, 0x1 + beq _081C9E04 + cmp r0, 0x1 + bgt _081C9DE8 + cmp r0, 0 + beq _081C9DF2 + b _081C9E50 +_081C9DE8: + cmp r0, 0x2 + beq _081C9E1A + cmp r0, 0x3 + beq _081C9E30 + b _081C9E50 +_081C9DF2: + bl sub_81CA9C8 + bl sub_81CA2DC + movs r0, 0x5 + bl PlaySE + movs r0, 0 + b _081C9E52 +_081C9E04: + bl sub_81CA324 + cmp r0, 0 + bne _081C9E48 + movs r0, 0x7 + bl LoadLeftHeaderGfxForIndex + bl sub_81CA0C8 + movs r0, 0 + b _081C9E52 +_081C9E1A: + bl sub_81CA20C + movs r0, 0x7 + movs r1, 0 + movs r2, 0 + bl sub_81C7FA0 + bl sub_81CA714 + movs r0, 0 + b _081C9E52 +_081C9E30: + bl sub_81CA324 + cmp r0, 0 + bne _081C9E48 + bl sub_81C8010 + cmp r0, 0 + bne _081C9E48 + bl sub_81CA89C + cmp r0, 0 + beq _081C9E4C +_081C9E48: + movs r0, 0x2 + b _081C9E52 +_081C9E4C: + bl sub_81CA9D8 +_081C9E50: + movs r0, 0x4 +_081C9E52: + pop {r1} + bx r1 + thumb_func_end sub_81C9DD8 + + thumb_func_start sub_81C9E58 +sub_81C9E58: @ 81C9E58 + push {lr} + cmp r0, 0x1 + beq _081C9E86 + cmp r0, 0x1 + bgt _081C9E68 + cmp r0, 0 + beq _081C9E72 + b _081C9EC2 +_081C9E68: + cmp r0, 0x2 + beq _081C9E9E + cmp r0, 0x3 + beq _081C9EAA + b _081C9EC2 +_081C9E72: + bl sub_81CA9C8 + bl sub_81CA2DC + movs r0, 0x7 + movs r1, 0 + bl sub_81C7FC4 + movs r0, 0 + b _081C9EC4 +_081C9E86: + bl sub_81CA324 + cmp r0, 0 + bne _081C9EBA + bl sub_81C8010 + cmp r0, 0 + bne _081C9EBA + bl sub_81CA0C8 + movs r0, 0 + b _081C9EC4 +_081C9E9E: + bl sub_81CA20C + bl sub_81CA714 + movs r0, 0 + b _081C9EC4 +_081C9EAA: + bl sub_81CA324 + cmp r0, 0 + bne _081C9EBA + bl sub_81CA89C + cmp r0, 0 + beq _081C9EBE +_081C9EBA: + movs r0, 0x2 + b _081C9EC4 +_081C9EBE: + bl sub_81CA9D8 +_081C9EC2: + movs r0, 0x4 +_081C9EC4: + pop {r1} + bx r1 + thumb_func_end sub_81C9E58 + + thumb_func_start sub_81C9EC8 +sub_81C9EC8: @ 81C9EC8 + push {lr} + cmp r0, 0 + beq _081C9ED4 + cmp r0, 0x1 + beq _081C9EE2 + b _081C9EF0 +_081C9ED4: + movs r0, 0x20 + bl PlaySE + bl sub_81CA770 + movs r0, 0 + b _081C9EF2 +_081C9EE2: + bl IsDma3ManagerBusyWithBgCopy + lsls r0, 24 + cmp r0, 0 + beq _081C9EF0 + movs r0, 0x2 + b _081C9EF2 +_081C9EF0: + movs r0, 0x4 +_081C9EF2: + pop {r1} + bx r1 + thumb_func_end sub_81C9EC8 + + thumb_func_start sub_81C9EF8 +sub_81C9EF8: @ 81C9EF8 + push {lr} + cmp r0, 0 + beq _081C9F04 + cmp r0, 0x1 + beq _081C9F12 + b _081C9F20 +_081C9F04: + movs r0, 0x5 + bl PlaySE + bl sub_81CA714 + movs r0, 0 + b _081C9F22 +_081C9F12: + bl IsDma3ManagerBusyWithBgCopy + lsls r0, 24 + cmp r0, 0 + beq _081C9F20 + movs r0, 0x2 + b _081C9F22 +_081C9F20: + movs r0, 0x4 +_081C9F22: + pop {r1} + bx r1 + thumb_func_end sub_81C9EF8 + + thumb_func_start sub_81C9F28 +sub_81C9F28: @ 81C9F28 + push {lr} + cmp r0, 0x1 + beq _081C9F52 + cmp r0, 0x1 + bgt _081C9F38 + cmp r0, 0 + beq _081C9F42 + b _081C9FBC +_081C9F38: + cmp r0, 0x2 + beq _081C9F96 + cmp r0, 0x3 + beq _081C9FB0 + b _081C9FBC +_081C9F42: + bl sub_81C98C4 + lsls r0, 16 + lsrs r0, 16 + bl sub_81C7BA4 + movs r0, 0 + b _081C9FBE +_081C9F52: + bl IsDma3ManagerBusyWithBgCopy_ + cmp r0, 0 + bne _081C9FB8 + bl sub_81C7880 + bl sub_81CA9C8 + bl sub_81CA2DC + bl sub_81C9894 + cmp r0, 0x3 + beq _081C9F7A + cmp r0, 0x4 + bne _081C9F84 + movs r0, 0x7 + movs r1, 0 + bl sub_81C7FC4 +_081C9F7A: + movs r0, 0x1 + movs r1, 0 + bl sub_81C7FC4 + b _081C9F8C +_081C9F84: + movs r0, 0 + movs r1, 0 + bl sub_81C7FC4 +_081C9F8C: + movs r0, 0x5 + bl PlaySE + movs r0, 0 + b _081C9FBE +_081C9F96: + bl sub_81CA324 + cmp r0, 0 + bne _081C9FB8 + bl sub_81C8010 + cmp r0, 0 + bne _081C9FB8 + movs r0, 0 + bl sub_81C7AC0 + movs r0, 0 + b _081C9FBE +_081C9FB0: + bl IsPaletteFadeActive + cmp r0, 0 + beq _081C9FBC +_081C9FB8: + movs r0, 0x2 + b _081C9FBE +_081C9FBC: + movs r0, 0x4 +_081C9FBE: + pop {r1} + bx r1 + thumb_func_end sub_81C9F28 + + thumb_func_start sub_81C9FC4 +sub_81C9FC4: @ 81C9FC4 + push {r4,r5,lr} + movs r5, 0 + ldr r4, =gUnknown_086201C4 +_081C9FCA: + adds r0, r4, 0 + bl LoadCompressedSpriteSheet + adds r4, 0x8 + adds r5, 0x1 + cmp r5, 0x1 + bls _081C9FCA + ldr r0, =gUnknown_086201D4 + bl Pokenav_AllocAndLoadPalettes + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81C9FC4 + + thumb_func_start sub_81C9FEC +sub_81C9FEC: @ 81C9FEC + push {lr} + movs r0, 0x3 + bl FreeSpriteTilesByTag + movs r0, 0x1 + bl FreeSpriteTilesByTag + movs r0, 0x4 + bl FreeSpritePaletteByTag + movs r0, 0x5 + bl FreeSpritePaletteByTag + movs r0, 0x6 + bl FreeSpritePaletteByTag + movs r0, 0x7 + bl FreeSpritePaletteByTag + movs r0, 0x8 + bl FreeSpritePaletteByTag + movs r0, 0x3 + bl FreeSpritePaletteByTag + bl sub_81CA094 + bl sub_81CA698 + pop {r0} + bx r0 + thumb_func_end sub_81C9FEC + + thumb_func_start sub_81CA02C +sub_81CA02C: @ 81CA02C + push {r4-r7,lr} + mov r7, r8 + push {r7} + movs r0, 0x2 + bl GetSubstructPtr + movs r2, 0 + adds r0, 0x2C + mov r8, r0 +_081CA03E: + movs r4, 0 + lsls r0, r2, 2 + lsls r1, r2, 4 + adds r7, r2, 0x1 + adds r0, r2 + lsls r0, 18 + movs r2, 0xA0 + lsls r2, 14 + adds r5, r0, r2 + mov r0, r8 + adds r6, r1, r0 +_081CA054: + ldr r0, =gUnknown_0862034C + movs r1, 0x8C + asrs r2, r5, 16 + movs r3, 0x3 + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + ldr r0, =gSprites + adds r1, r0 + stm r6!, {r1} + lsls r0, r4, 5 + strh r0, [r1, 0x24] + adds r4, 0x1 + cmp r4, 0x3 + ble _081CA054 + adds r2, r7, 0 + cmp r2, 0x5 + ble _081CA03E + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81CA02C + + thumb_func_start sub_81CA094 +sub_81CA094: @ 81CA094 + push {r4-r7,lr} + movs r0, 0x2 + bl GetSubstructPtr + movs r1, 0 + adds r7, r0, 0 + adds r7, 0x2C +_081CA0A2: + lsls r0, r1, 4 + adds r6, r1, 0x1 + adds r4, r0, r7 + movs r5, 0x3 +_081CA0AA: + ldr r0, [r4] + bl FreeSpriteOamMatrix + ldm r4!, {r0} + bl DestroySprite + subs r5, 0x1 + cmp r5, 0 + bge _081CA0AA + adds r1, r6, 0 + cmp r1, 0x5 + ble _081CA0A2 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_81CA094 + + thumb_func_start sub_81CA0C8 +sub_81CA0C8: @ 81CA0C8 + push {lr} + bl sub_81C9894 + lsls r2, r0, 3 + subs r2, r0 + lsls r2, 2 + ldr r1, =gUnknown_08620244 + adds r0, r2, r1 + subs r1, 0x4 + adds r2, r1 + ldrh r1, [r2] + ldrh r2, [r2, 0x2] + bl sub_81CA0EC + pop {r0} + bx r0 + .pool + thumb_func_end sub_81CA0C8 + + thumb_func_start sub_81CA0EC +sub_81CA0EC: @ 81CA0EC + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x18 + adds r6, r0, 0 + str r1, [sp, 0x14] + str r2, [sp] + movs r0, 0x2 + bl GetSubstructPtr + mov r10, r0 + movs r0, 0x3 + bl GetSpriteTileStartByTag + lsls r0, 16 + lsrs r0, 16 + str r0, [sp, 0x4] + movs r1, 0 +_081CA114: + ldr r0, [r6] + cmp r0, 0 + beq _081CA1B0 + movs r5, 0 + lsls r2, r1, 4 + mov r0, r10 + adds r0, 0x2C + lsls r3, r1, 2 + mov r9, r3 + movs r4, 0x10 + add r4, r10 + mov r8, r4 + adds r7, r6, 0x4 + str r7, [sp, 0xC] + ldr r3, [sp, 0x14] + ldr r4, [sp] + adds r3, r4 + str r3, [sp, 0x8] + adds r1, 0x1 + str r1, [sp, 0x10] + adds r4, r2, r0 +_081CA13E: + ldr r3, [r4] + ldr r0, [r6] + ldrh r2, [r0] + ldr r7, [sp, 0x4] + adds r2, r7 + lsls r0, r5, 3 + adds r2, r0 + ldr r1, =0x000003ff + adds r0, r1, 0 + ands r2, r0 + ldrh r0, [r3, 0x4] + ldr r7, =0xfffffc00 + adds r1, r7, 0 + ands r0, r1 + orrs r0, r2 + strh r0, [r3, 0x4] + ldr r0, [r6] + ldrh r0, [r0, 0x2] + adds r0, 0x4 + lsls r0, 16 + lsrs r0, 16 + bl IndexOfSpritePaletteTag + ldr r3, [r4] + lsls r0, 4 + ldrb r2, [r3, 0x5] + movs r1, 0xF + ands r1, r2 + orrs r1, r0 + strb r1, [r3, 0x5] + ldr r2, [r4] + adds r2, 0x3E + ldrb r0, [r2] + movs r1, 0x4 + orrs r0, r1 + strb r0, [r2] + ldr r0, [r4] + mov r1, sp + ldrh r1, [r1, 0x14] + strh r1, [r0, 0x22] + ldr r1, [r4] + movs r0, 0x8C + strh r0, [r1, 0x20] + ldm r4!, {r1} + lsls r0, r5, 5 + strh r0, [r1, 0x24] + adds r5, 0x1 + cmp r5, 0x3 + ble _081CA13E + mov r1, r8 + add r1, r9 + movs r0, 0x1 + b _081CA1EC + .pool +_081CA1B0: + lsls r2, r1, 4 + mov r0, r10 + adds r0, 0x2C + lsls r3, r1, 2 + mov r9, r3 + movs r4, 0x10 + add r4, r10 + mov r8, r4 + adds r6, 0x4 + str r6, [sp, 0xC] + ldr r7, [sp, 0x14] + ldr r3, [sp] + adds r7, r3 + str r7, [sp, 0x8] + adds r1, 0x1 + str r1, [sp, 0x10] + movs r3, 0x4 + adds r2, r0 + movs r5, 0x3 +_081CA1D6: + ldm r2!, {r1} + adds r1, 0x3E + ldrb r0, [r1] + orrs r0, r3 + strb r0, [r1] + subs r5, 0x1 + cmp r5, 0 + bge _081CA1D6 + mov r1, r8 + add r1, r9 + movs r0, 0 +_081CA1EC: + str r0, [r1] + ldr r6, [sp, 0xC] + ldr r4, [sp, 0x8] + str r4, [sp, 0x14] + ldr r1, [sp, 0x10] + cmp r1, 0x5 + ble _081CA114 + add sp, 0x18 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_81CA0EC + + thumb_func_start sub_81CA20C +sub_81CA20C: @ 81CA20C + push {r4-r7,lr} + mov r7, r8 + push {r7} + movs r0, 0x2 + bl GetSubstructPtr + adds r6, r0, 0 + bl sub_81C98A4 + mov r8, r0 + movs r7, 0 + movs r5, 0 + adds r4, r6, 0 + adds r4, 0x2C +_081CA228: + lsls r0, r5, 2 + adds r1, r6, 0 + adds r1, 0x10 + adds r1, r0 + ldr r0, [r1] + cmp r0, 0 + beq _081CA25C + adds r0, r7, 0 + adds r7, 0x1 + cmp r0, r8 + bne _081CA244 + movs r2, 0x82 + strb r5, [r6, 0xB] + b _081CA246 +_081CA244: + movs r2, 0x8C +_081CA246: + adds r0, r4, 0 + movs r1, 0x80 + lsls r1, 1 + movs r3, 0xC + bl sub_81CA35C + adds r0, r4, 0 + movs r1, 0 + bl sub_81CA448 + b _081CA264 +_081CA25C: + adds r0, r4, 0 + movs r1, 0x1 + bl sub_81CA448 +_081CA264: + adds r4, 0x10 + adds r5, 0x1 + cmp r5, 0x5 + ble _081CA228 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_81CA20C + + thumb_func_start sub_81CA278 +sub_81CA278: @ 81CA278 + push {r4,r5,lr} + movs r0, 0x2 + bl GetSubstructPtr + adds r4, r0, 0 + bl sub_81C98A4 + adds r3, r0, 0 + movs r2, 0 + movs r5, 0 + ldr r0, [r4, 0x10] + cmp r0, 0 + beq _081CA298 + cmp r5, r3 + beq _081CA2B2 +_081CA296: + adds r5, 0x1 +_081CA298: + adds r2, 0x1 + cmp r2, 0x5 + bgt _081CA2B2 + lsls r0, r2, 2 + adds r1, r4, 0 + adds r1, 0x10 + adds r1, r0 + ldr r0, [r1] + cmp r0, 0 + beq _081CA298 + cmp r5, r3 + bne _081CA296 + adds r5, r2, 0 +_081CA2B2: + ldrb r0, [r4, 0xB] + lsls r0, 4 + adds r0, 0x2C + adds r0, r4, r0 + movs r1, 0x82 + movs r2, 0x8C + movs r3, 0x4 + bl sub_81CA35C + lsls r0, r5, 4 + adds r0, 0x2C + adds r0, r4, r0 + movs r1, 0x8C + movs r2, 0x82 + movs r3, 0x4 + bl sub_81CA35C + strb r5, [r4, 0xB] + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_81CA278 + + thumb_func_start sub_81CA2DC +sub_81CA2DC: @ 81CA2DC + push {r4-r6,lr} + movs r0, 0x2 + bl GetSubstructPtr + adds r6, r0, 0 + movs r5, 0 + adds r4, r6, 0 + adds r4, 0x2C +_081CA2EC: + lsls r0, r5, 2 + adds r1, r6, 0 + adds r1, 0x10 + adds r1, r0 + ldr r0, [r1] + cmp r0, 0 + beq _081CA316 + ldrb r0, [r6, 0xB] + cmp r0, r5 + beq _081CA310 + adds r0, r4, 0 + movs r1, 0x8C + movs r2, 0x80 + lsls r2, 1 + movs r3, 0x8 + bl sub_81CA35C + b _081CA316 +_081CA310: + adds r0, r4, 0 + bl sub_81CA3B4 +_081CA316: + adds r4, 0x10 + adds r5, 0x1 + cmp r5, 0x5 + ble _081CA2EC + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_81CA2DC + + thumb_func_start sub_81CA324 +sub_81CA324: @ 81CA324 + push {r4,lr} + movs r0, 0x2 + bl GetSubstructPtr + adds r3, r0, 0 + movs r2, 0 + ldr r4, =SpriteCallbackDummy + adds r1, r3, 0 + adds r1, 0x2C +_081CA336: + ldr r0, [r1] + ldr r0, [r0, 0x1C] + cmp r0, r4 + bne _081CA354 + adds r1, 0x10 + adds r2, 0x1 + cmp r2, 0x5 + ble _081CA336 + ldrb r0, [r3, 0xC] + cmp r0, 0 + bne _081CA354 + movs r0, 0 + b _081CA356 + .pool +_081CA354: + movs r0, 0x1 +_081CA356: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_81CA324 + + thumb_func_start sub_81CA35C +sub_81CA35C: @ 81CA35C + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + adds r4, r0, 0 + adds r5, r1, 0 + mov r9, r2 + adds r6, r3, 0 + ldr r0, =sub_81CA474 + mov r8, r0 + subs r0, r2, r5 + lsls r0, 4 + adds r1, r6, 0 + bl __divsi3 + adds r3, r0, 0 + movs r1, 0x3 + lsls r2, r5, 4 +_081CA380: + ldr r0, [r4] + strh r5, [r0, 0x20] + ldr r0, [r4] + strh r6, [r0, 0x2E] + ldr r0, [r4] + strh r3, [r0, 0x30] + ldr r0, [r4] + strh r2, [r0, 0x32] + ldr r0, [r4] + mov r7, r9 + strh r7, [r0, 0x3C] + ldm r4!, {r0} + mov r7, r8 + str r7, [r0, 0x1C] + subs r1, 0x1 + cmp r1, 0 + bge _081CA380 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81CA35C + + thumb_func_start sub_81CA3B4 +sub_81CA3B4: @ 81CA3B4 + push {r4-r7,lr} + mov r7, r8 + push {r7} + adds r4, r0, 0 + movs r0, 0x2 + bl GetSubstructPtr + adds r7, r0, 0 + movs r5, 0 + mov r8, r5 +_081CA3C8: + ldr r2, [r4] + ldrb r1, [r2, 0x1] + movs r3, 0xD + negs r3, r3 + adds r0, r3, 0 + ands r1, r0 + movs r0, 0x4 + orrs r1, r0 + strb r1, [r2, 0x1] + ldr r2, [r4] + ldrb r0, [r2, 0x1] + movs r1, 0x3 + orrs r0, r1 + strb r0, [r2, 0x1] + ldr r1, [r4] + ldr r0, =sub_81CA4AC + str r0, [r1, 0x1C] + movs r6, 0x8 + strh r6, [r1, 0x2E] + ldr r0, [r4] + mov r1, r8 + strh r1, [r0, 0x30] + ldr r0, [r4] + strh r5, [r0, 0x3C] + ldr r0, [r4] + bl InitSpriteAffineAnim + ldm r4!, {r0} + movs r1, 0 + bl StartSpriteAffineAnim + adds r5, 0x1 + cmp r5, 0x3 + ble _081CA3C8 + movs r0, 0x52 + movs r1, 0x10 + bl SetGpuReg + ldr r0, =sub_81CA580 + movs r1, 0x3 + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + ldr r2, =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + strh r6, [r1, 0x8] + ldrb r0, [r7, 0xC] + adds r0, 0x1 + strb r0, [r7, 0xC] + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81CA3B4 + + thumb_func_start sub_81CA448 +sub_81CA448: @ 81CA448 + push {r4-r6,lr} + adds r5, r0, 0 + movs r0, 0x1 + ands r1, r0 + lsls r4, r1, 2 + movs r6, 0x5 + negs r6, r6 + movs r3, 0x3 +_081CA458: + ldm r5!, {r0} + adds r0, 0x3E + ldrb r2, [r0] + adds r1, r6, 0 + ands r1, r2 + orrs r1, r4 + strb r1, [r0] + subs r3, 0x1 + cmp r3, 0 + bge _081CA458 + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_81CA448 + + thumb_func_start sub_81CA474 +sub_81CA474: @ 81CA474 + push {lr} + adds r2, r0, 0 + ldrh r0, [r2, 0x2E] + subs r0, 0x1 + strh r0, [r2, 0x2E] + lsls r0, 16 + asrs r0, 16 + movs r1, 0x1 + negs r1, r1 + cmp r0, r1 + beq _081CA49A + ldrh r0, [r2, 0x30] + ldrh r1, [r2, 0x32] + adds r0, r1 + strh r0, [r2, 0x32] + lsls r0, 16 + asrs r0, 20 + strh r0, [r2, 0x20] + b _081CA4A2 +_081CA49A: + ldrh r0, [r2, 0x3C] + strh r0, [r2, 0x20] + ldr r0, =SpriteCallbackDummy + str r0, [r2, 0x1C] +_081CA4A2: + pop {r0} + bx r0 + .pool + thumb_func_end sub_81CA474 + + thumb_func_start sub_81CA4AC +sub_81CA4AC: @ 81CA4AC + push {r4,r5,lr} + adds r4, r0, 0 + ldrh r1, [r4, 0x2E] + movs r2, 0x2E + ldrsh r0, [r4, r2] + cmp r0, 0 + bne _081CA574 + movs r0, 0x30 + ldrsh r5, [r4, r0] + cmp r5, 0 + bne _081CA4E2 + adds r0, r4, 0 + movs r1, 0x1 + bl StartSpriteAffineAnim + ldrh r0, [r4, 0x30] + adds r0, 0x1 + strh r0, [r4, 0x30] + movs r0, 0x80 + lsls r0, 1 + strh r0, [r4, 0x32] + ldrh r0, [r4, 0x24] + ldrh r1, [r4, 0x20] + adds r0, r1 + strh r0, [r4, 0x20] + strh r5, [r4, 0x24] + b _081CA578 +_081CA4E2: + ldrh r0, [r4, 0x32] + adds r0, 0x10 + strh r0, [r4, 0x32] + movs r2, 0x32 + ldrsh r0, [r4, r2] + asrs r1, r0, 3 + adds r0, r1, 0 + subs r0, 0x20 + lsrs r1, r0, 31 + adds r0, r1 + asrs r1, r0, 1 + movs r2, 0x3C + ldrsh r0, [r4, r2] + cmp r0, 0x1 + beq _081CA518 + cmp r0, 0x1 + bgt _081CA50A + cmp r0, 0 + beq _081CA514 + b _081CA526 +_081CA50A: + cmp r0, 0x2 + beq _081CA51C + cmp r0, 0x3 + beq _081CA520 + b _081CA526 +_081CA514: + negs r1, r1 + b _081CA520 +_081CA518: + negs r0, r1 + b _081CA524 +_081CA51C: + strh r1, [r4, 0x24] + b _081CA526 +_081CA520: + lsls r0, r1, 1 + adds r0, r1 +_081CA524: + strh r0, [r4, 0x24] +_081CA526: + adds r0, r4, 0 + adds r0, 0x3F + ldrb r1, [r0] + movs r0, 0x20 + ands r0, r1 + cmp r0, 0 + beq _081CA578 + adds r2, r4, 0 + adds r2, 0x3E + ldrb r0, [r2] + movs r1, 0x4 + orrs r0, r1 + strb r0, [r2] + ldrb r0, [r4, 0x3] + lsls r0, 26 + lsrs r0, 27 + bl FreeOamMatrix + ldrb r1, [r4, 0x1] + lsrs r1, 6 + ldrb r2, [r4, 0x3] + lsrs r2, 6 + adds r0, r4, 0 + movs r3, 0 + bl CalcCenterToCornerVec + ldrb r1, [r4, 0x1] + movs r0, 0x4 + negs r0, r0 + ands r0, r1 + movs r1, 0xD + negs r1, r1 + ands r0, r1 + strb r0, [r4, 0x1] + ldr r0, =SpriteCallbackDummy + str r0, [r4, 0x1C] + b _081CA578 + .pool +_081CA574: + subs r0, r1, 0x1 + strh r0, [r4, 0x2E] +_081CA578: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_81CA4AC + + thumb_func_start sub_81CA580 +sub_81CA580: @ 81CA580 + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + ldr r1, =gTasks + 0x8 + adds r4, r0, r1 + ldrh r0, [r4] + movs r1, 0 + ldrsh r2, [r4, r1] + cmp r2, 0 + bne _081CA634 + movs r0, 0x2 + ldrsh r1, [r4, r0] + cmp r1, 0 + beq _081CA5AC + cmp r1, 0x1 + beq _081CA5CC + b _081CA638 + .pool +_081CA5AC: + movs r0, 0x10 + strh r0, [r4, 0x4] + strh r2, [r4, 0x6] + movs r1, 0xFC + lsls r1, 6 + movs r0, 0x50 + bl SetGpuReg + movs r0, 0x52 + movs r1, 0x10 + bl SetGpuReg + ldrh r0, [r4, 0x2] + adds r0, 0x1 + strh r0, [r4, 0x2] + b _081CA638 +_081CA5CC: + ldrh r0, [r4, 0x8] + ands r1, r0 + cmp r1, 0 + beq _081CA5E4 + ldrh r0, [r4, 0x4] + subs r0, 0x3 + strh r0, [r4, 0x4] + lsls r0, 16 + cmp r0, 0 + bge _081CA5F6 + strh r2, [r4, 0x4] + b _081CA5F6 +_081CA5E4: + ldrh r0, [r4, 0x6] + adds r0, 0x3 + strh r0, [r4, 0x6] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x10 + ble _081CA5F6 + movs r0, 0x10 + strh r0, [r4, 0x6] +_081CA5F6: + ldrh r1, [r4, 0x6] + lsls r1, 8 + ldrh r0, [r4, 0x4] + orrs r1, r0 + lsls r1, 16 + lsrs r1, 16 + movs r0, 0x52 + bl SetGpuReg + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0xC + bne _081CA638 + movs r0, 0x2 + bl GetSubstructPtr + ldrb r1, [r0, 0xC] + subs r1, 0x1 + strb r1, [r0, 0xC] + movs r1, 0x80 + lsls r1, 5 + movs r0, 0x52 + bl SetGpuReg + adds r0, r5, 0 + bl DestroyTask + b _081CA638 +_081CA634: + subs r0, 0x1 + strh r0, [r4] +_081CA638: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_81CA580 + + thumb_func_start sub_81CA640 +sub_81CA640: @ 81CA640 + push {r4,lr} + movs r0, 0x2 + bl GetSubstructPtr + adds r4, r0, 0 + ldr r0, =gUnknown_0862036C + movs r1, 0x10 + movs r2, 0x60 + movs r3, 0x4 + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + ldr r0, =gSprites + adds r1, r0 + str r1, [r4, 0x28] + bl sub_81C98D4 + cmp r0, 0 + beq _081CA684 + ldr r1, [r4, 0x28] + ldr r0, =sub_81CA6AC + str r0, [r1, 0x1C] + b _081CA690 + .pool +_081CA684: + ldr r0, [r4, 0x28] + adds r0, 0x3E + ldrb r1, [r0] + movs r2, 0x4 + orrs r1, r2 + strb r1, [r0] +_081CA690: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_81CA640 + + thumb_func_start sub_81CA698 +sub_81CA698: @ 81CA698 + push {lr} + movs r0, 0x2 + bl GetSubstructPtr + ldr r0, [r0, 0x28] + bl DestroySprite + pop {r0} + bx r0 + thumb_func_end sub_81CA698 + + thumb_func_start sub_81CA6AC +sub_81CA6AC: @ 81CA6AC + push {lr} + adds r3, r0, 0 + ldrh r0, [r3, 0x2E] + adds r0, 0x1 + strh r0, [r3, 0x2E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x8 + ble _081CA6DA + movs r0, 0 + strh r0, [r3, 0x2E] + adds r3, 0x3E + ldrb r2, [r3] + lsls r0, r2, 29 + lsrs r0, 31 + movs r1, 0x1 + eors r1, r0 + lsls r1, 2 + movs r0, 0x5 + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] +_081CA6DA: + pop {r0} + bx r0 + thumb_func_end sub_81CA6AC + + thumb_func_start sub_81CA6E0 +sub_81CA6E0: @ 81CA6E0 + push {r4,lr} + movs r0, 0x2 + bl GetSubstructPtr + adds r4, r0, 0 + ldr r0, =gUnknown_086202CC + bl AddWindow + strh r0, [r4, 0x8] + lsls r0, 24 + lsrs r0, 24 + bl PutWindowTilemap + ldrb r0, [r4, 0x8] + movs r1, 0x66 + bl FillWindowPixelBuffer + ldrb r0, [r4, 0x8] + movs r1, 0x3 + bl CopyWindowToVram + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81CA6E0 + + thumb_func_start sub_81CA714 +sub_81CA714: @ 81CA714 + push {r4-r6,lr} + sub sp, 0xC + movs r0, 0x2 + bl GetSubstructPtr + adds r5, r0, 0 + bl sub_81C98B4 + ldr r1, =gUnknown_086202D4 + lsls r0, 2 + adds r0, r1 + ldr r6, [r0] + movs r2, 0x1 + negs r2, r2 + movs r0, 0x1 + adds r1, r6, 0 + bl GetStringWidth + adds r4, r0, 0 + ldrb r0, [r5, 0x8] + movs r1, 0x66 + bl FillWindowPixelBuffer + ldrb r0, [r5, 0x8] + movs r2, 0xC0 + subs r2, r4 + lsrs r2, 1 + lsls r2, 24 + lsrs r2, 24 + ldr r1, =gUnknown_0862030C + str r1, [sp] + movs r1, 0 + str r1, [sp, 0x4] + str r6, [sp, 0x8] + movs r1, 0x1 + movs r3, 0x1 + bl AddTextPrinterParameterized3 + add sp, 0xC + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81CA714 + + thumb_func_start sub_81CA770 +sub_81CA770: @ 81CA770 + push {r4-r6,lr} + sub sp, 0xC + movs r0, 0x2 + bl GetSubstructPtr + adds r5, r0, 0 + ldr r6, =gText_NoRibbonWinners + movs r2, 0x1 + negs r2, r2 + movs r0, 0x1 + adds r1, r6, 0 + bl GetStringWidth + adds r4, r0, 0 + ldrb r0, [r5, 0x8] + movs r1, 0x66 + bl FillWindowPixelBuffer + ldrb r0, [r5, 0x8] + movs r2, 0xC0 + subs r2, r4 + lsrs r2, 1 + lsls r2, 24 + lsrs r2, 24 + ldr r1, =gUnknown_0862030F + str r1, [sp] + movs r1, 0 + str r1, [sp, 0x4] + str r6, [sp, 0x8] + movs r1, 0x1 + movs r3, 0x1 + bl AddTextPrinterParameterized3 + add sp, 0xC + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81CA770 + + thumb_func_start sub_81CA7C4 +sub_81CA7C4: @ 81CA7C4 + push {lr} + bl IsDma3ManagerBusyWithBgCopy + lsls r0, 24 + lsrs r0, 24 + pop {r1} + bx r1 + thumb_func_end sub_81CA7C4 + + thumb_func_start sub_81CA7D4 +sub_81CA7D4: @ 81CA7D4 + push {r4,lr} + movs r0, 0x2 + bl GetSubstructPtr + adds r4, r0, 0 + ldr r0, =sub_81CA808 + movs r1, 0x2 + bl CreateTask + strb r0, [r4, 0xA] + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81CA7D4 + + thumb_func_start sub_81CA7F4 +sub_81CA7F4: @ 81CA7F4 + push {lr} + movs r0, 0x2 + bl GetSubstructPtr + ldrb r0, [r0, 0xA] + bl DestroyTask + pop {r0} + bx r0 + thumb_func_end sub_81CA7F4 + + thumb_func_start sub_81CA808 +sub_81CA808: @ 81CA808 + push {lr} + movs r0, 0x3 + movs r1, 0x80 + movs r2, 0x1 + bl ChangeBgX + pop {r0} + bx r0 + thumb_func_end sub_81CA808 + + thumb_func_start sub_81CA818 +sub_81CA818: @ 81CA818 + push {r4,r5,lr} + ldr r0, =sub_81CA8B0 + movs r1, 0x3 + bl CreateTask + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldr r5, =gUnknown_0861FC78 + 2 + adds r0, r4, 0 + movs r1, 0x1 + adds r2, r5, 0 + bl SetWordTaskArg + adds r5, 0xC + adds r0, r4, 0 + movs r1, 0x3 + adds r2, r5, 0 + bl SetWordTaskArg + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81CA818 + + thumb_func_start sub_81CA850 +sub_81CA850: @ 81CA850 + push {lr} + ldr r0, =gUnknown_0861FC78 + 0xE + movs r1, 0x31 + movs r2, 0x4 + bl CopyPaletteIntoBufferUnfaded + pop {r0} + bx r0 + .pool + thumb_func_end sub_81CA850 + + thumb_func_start sub_81CA864 +sub_81CA864: @ 81CA864 + push {r4,r5,lr} + ldr r0, =sub_81CA8B0 + movs r1, 0x3 + bl CreateTask + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldr r5, =gUnknown_0861FC78 + 0xE + adds r0, r4, 0 + movs r1, 0x1 + adds r2, r5, 0 + bl SetWordTaskArg + subs r5, 0xC + adds r0, r4, 0 + movs r1, 0x3 + adds r2, r5, 0 + bl SetWordTaskArg + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81CA864 + + thumb_func_start sub_81CA89C +sub_81CA89C: @ 81CA89C + push {lr} + ldr r0, =sub_81CA8B0 + bl FuncIsActiveTask + lsls r0, 24 + lsrs r0, 24 + pop {r1} + bx r1 + .pool + thumb_func_end sub_81CA89C + + thumb_func_start sub_81CA8B0 +sub_81CA8B0: @ 81CA8B0 + push {r4-r6,lr} + sub sp, 0xC + lsls r0, 24 + lsrs r6, r0, 24 + lsls r4, r6, 2 + adds r4, r6 + lsls r4, 3 + ldr r0, =gTasks + 0x8 + adds r4, r0 + adds r0, r6, 0 + movs r1, 0x1 + bl GetWordTaskArg + adds r5, r0, 0 + adds r0, r6, 0 + movs r1, 0x3 + bl GetWordTaskArg + adds r1, r0, 0 + ldrh r0, [r4] + adds r0, 0x1 + strh r0, [r4] + lsls r0, 16 + asrs r0, 16 + str r0, [sp] + add r0, sp, 0x8 + str r0, [sp, 0x4] + adds r0, r5, 0 + movs r2, 0x2 + movs r3, 0xC + bl sub_81C79BC + add r0, sp, 0x8 + movs r1, 0x31 + movs r2, 0x4 + bl LoadPalette + movs r1, 0 + ldrsh r0, [r4, r1] + cmp r0, 0xC + bne _081CA908 + adds r0, r6, 0 + bl DestroyTask +_081CA908: + add sp, 0xC + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81CA8B0 + + thumb_func_start sub_81CA914 +sub_81CA914: @ 81CA914 + push {lr} + bl TransferPlttBuffer + bl LoadOam + bl ProcessSpriteCopyRequests + bl ScanlineEffect_InitHBlankDmaTransfer + pop {r0} + bx r0 + thumb_func_end sub_81CA914 + + thumb_func_start titlescreen_0 +titlescreen_0: @ 81CA92C + push {lr} + movs r0, 0x50 + movs r1, 0x90 + bl SetGpuReg + movs r0, 0x54 + movs r1, 0 + bl SetGpuReg + movs r1, 0x80 + lsls r1, 6 + movs r0, 0 + bl SetGpuRegBits + movs r0, 0x48 + movs r1, 0x3F + bl SetGpuRegBits + movs r0, 0x4A + movs r1, 0x1F + bl SetGpuRegBits + movs r0, 0x44 + movs r1, 0xA0 + bl SetGpuRegBits + bl ScanlineEffect_Stop + bl sub_81CAA3C + ldr r2, =gUnknown_08620384 + ldr r0, [r2] + ldr r1, [r2, 0x4] + ldr r2, [r2, 0x8] + bl ScanlineEffect_SetParams + ldr r0, =sub_81CA914 + bl SetVBlankCallback_ + ldr r0, =sub_81CA9EC + movs r1, 0x3 + bl CreateTask + pop {r0} + bx r0 + .pool + thumb_func_end titlescreen_0 + + thumb_func_start sub_81CA994 +sub_81CA994: @ 81CA994 + push {lr} + movs r0, 0x50 + movs r1, 0 + bl SetGpuReg + movs r1, 0x80 + lsls r1, 6 + movs r0, 0 + bl ClearGpuRegBits + bl ScanlineEffect_Stop + ldr r0, =sub_81CA9EC + bl FindTaskIdByFunc + lsls r0, 24 + lsrs r0, 24 + bl DestroyTask + bl SetPokenavVBlankCallback + pop {r0} + bx r0 + .pool + thumb_func_end sub_81CA994 + + thumb_func_start sub_81CA9C8 +sub_81CA9C8: @ 81CA9C8 + push {lr} + movs r0, 0x50 + movs r1, 0 + bl SetGpuReg + pop {r0} + bx r0 + thumb_func_end sub_81CA9C8 + + thumb_func_start sub_81CA9D8 +sub_81CA9D8: @ 81CA9D8 + push {lr} + bl sub_81CAA3C + movs r0, 0x50 + movs r1, 0x90 + bl SetGpuReg + pop {r0} + bx r0 + thumb_func_end sub_81CA9D8 + + thumb_func_start sub_81CA9EC +sub_81CA9EC: @ 81CA9EC + push {lr} + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + ldr r0, =gTasks + 0x8 + adds r2, r1, r0 + ldrh r0, [r2] + adds r0, 0x1 + strh r0, [r2] + lsls r0, 16 + cmp r0, 0 + ble _081CAA30 + movs r0, 0 + strh r0, [r2] + ldrh r0, [r2, 0x2] + adds r0, 0x3 + movs r1, 0x7F + ands r0, r1 + strh r0, [r2, 0x2] + ldr r1, =gSineTable + movs r3, 0x2 + ldrsh r0, [r2, r3] + lsls r0, 1 + adds r0, r1 + ldrh r1, [r0] + lsls r1, 16 + asrs r1, 21 + lsls r1, 16 + lsrs r1, 16 + movs r0, 0x54 + bl SetGpuReg +_081CAA30: + pop {r0} + bx r0 + .pool + thumb_func_end sub_81CA9EC + + thumb_func_start sub_81CAA3C +sub_81CAA3C: @ 81CAA3C + push {r4-r6,lr} + mov r6, r9 + mov r5, r8 + push {r5,r6} + sub sp, 0x8 + bl sub_81C9894 + adds r4, r0, 0 + bl sub_81C98A4 + ldr r2, =gUnknown_08620240 + lsls r1, r4, 3 + subs r1, r4 + lsls r1, 2 + adds r1, r2 + ldrh r2, [r1, 0x2] + adds r4, r2, 0 + muls r4, r0 + ldrh r1, [r1] + adds r4, r1 + subs r4, 0x8 + mov r0, sp + movs r6, 0 + strh r6, [r0] + ldr r5, =gScanlineEffectRegBuffers + ldr r0, =0x010000a0 + mov r8, r0 + mov r0, sp + adds r1, r5, 0 + mov r2, r8 + bl CpuSet + mov r0, sp + adds r0, 0x2 + strh r6, [r0] + movs r1, 0xF0 + lsls r1, 3 + adds r1, r5 + mov r9, r1 + mov r2, r8 + bl CpuSet + add r0, sp, 0x4 + ldr r1, =0x000072f0 + adds r6, r1, 0 + strh r6, [r0] + lsls r4, 1 + adds r5, r4, r5 + ldr r1, =0x01000010 + mov r8, r1 + adds r1, r5, 0 + mov r2, r8 + bl CpuSet + mov r0, sp + adds r0, 0x6 + strh r6, [r0] + add r4, r9 + adds r1, r4, 0 + mov r2, r8 + bl CpuSet + add sp, 0x8 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81CAA3C + + thumb_func_start sub_81CAADC +sub_81CAADC: @ 81CAADC + push {lr} + bl sub_81CA9C8 + pop {r0} + bx r0 + thumb_func_end sub_81CAADC + + .align 2, 0 @ Don't pad with nop. diff --git a/asm/pokenav_unk_3.s b/asm/pokenav_unk_3.s new file mode 100644 index 000000000..d1632f7e7 --- /dev/null +++ b/asm/pokenav_unk_3.s @@ -0,0 +1,1036 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .syntax unified + +@ File centered around AllocSubstruct(5) + + thumb_func_start sub_81CAAE8 +sub_81CAAE8: @ 81CAAE8 + push {r4,lr} + movs r1, 0xD4 + lsls r1, 1 + movs r0, 0x5 + bl AllocSubstruct + adds r4, r0, 0 + cmp r4, 0 + beq _081CAB1C + ldr r0, =sub_81CAB44 + str r0, [r4, 0x18] + movs r0, 0 + strh r0, [r4, 0x8] + str r0, [r4, 0x10] + ldr r0, =sub_81CAD20 + movs r1, 0x1 + bl CreateLoopedTask + str r0, [r4, 0x14] + movs r0, 0x1 + b _081CAB1E + .pool +_081CAB1C: + movs r0, 0 +_081CAB1E: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_81CAAE8 + + thumb_func_start sub_81CAB24 +sub_81CAB24: @ 81CAB24 + push {lr} + movs r0, 0x5 + bl GetSubstructPtr + ldr r1, [r0, 0x18] + bl _call_via_r1 + pop {r1} + bx r1 + thumb_func_end sub_81CAB24 + + thumb_func_start sub_81CAB38 +sub_81CAB38: @ 81CAB38 + push {lr} + movs r0, 0x5 + bl FreePokenavSubstruct + pop {r0} + bx r0 + thumb_func_end sub_81CAB38 + + thumb_func_start sub_81CAB44 +sub_81CAB44: @ 81CAB44 + push {r4,r5,lr} + adds r4, r0, 0 + ldr r3, =gMain + ldrh r1, [r3, 0x30] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + beq _081CAB5C + movs r0, 0x2 + b _081CABF4 + .pool +_081CAB5C: + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _081CAB68 + movs r0, 0x1 + b _081CABF4 +_081CAB68: + movs r0, 0x20 + ands r0, r1 + cmp r0, 0 + beq _081CAB74 + movs r0, 0x4 + b _081CABF4 +_081CAB74: + movs r0, 0x10 + ands r0, r1 + lsls r0, 16 + lsrs r2, r0, 16 + cmp r2, 0 + beq _081CAB84 + movs r0, 0x3 + b _081CABF4 +_081CAB84: + ldrh r1, [r3, 0x2E] + movs r5, 0x1 + adds r0, r5, 0 + ands r0, r1 + cmp r0, 0 + beq _081CABD0 + ldr r0, =sub_81CAC04 + str r0, [r4, 0x18] + strh r2, [r4] + bl GetSelectedMatchCall + lsls r0, 2 + adds r1, r4, r0 + ldrb r0, [r1, 0x1C] + cmp r0, 0 + beq _081CABAE + ldrh r0, [r1, 0x1E] + bl sub_81D17E8 + cmp r0, 0 + beq _081CABC0 +_081CABAE: + ldr r0, =gUnknown_0862250A + str r0, [r4, 0x4] + movs r0, 0x2 + strh r0, [r4, 0x2] + b _081CABC6 + .pool +_081CABC0: + ldr r0, =gUnknown_08622508 + str r0, [r4, 0x4] + strh r5, [r4, 0x2] +_081CABC6: + movs r0, 0x5 + b _081CABF4 + .pool +_081CABD0: + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _081CABF2 + bl GetPokenavMode + cmp r0, 0x1 + beq _081CABEC + ldr r0, =sub_81CABFC + str r0, [r4, 0x18] + movs r0, 0xF + b _081CABF4 + .pool +_081CABEC: + movs r0, 0x20 + bl PlaySE +_081CABF2: + movs r0, 0 +_081CABF4: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_81CAB44 + + thumb_func_start sub_81CABFC +sub_81CABFC: @ 81CABFC + ldr r0, =0x000186a4 + bx lr + .pool + thumb_func_end sub_81CABFC + + thumb_func_start sub_81CAC04 +sub_81CAC04: @ 81CAC04 + push {r4,lr} + adds r4, r0, 0 + ldr r2, =gMain + ldrh r1, [r2, 0x2E] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + beq _081CAC24 + ldrh r0, [r4] + cmp r0, 0 + beq _081CAC24 + subs r0, 0x1 + b _081CAC38 + .pool +_081CAC24: + ldrh r1, [r2, 0x2E] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _081CAC3E + ldrh r0, [r4] + ldrh r1, [r4, 0x2] + cmp r0, r1 + bcs _081CAC3E + adds r0, 0x1 +_081CAC38: + strh r0, [r4] + movs r0, 0x6 + b _081CACAC +_081CAC3E: + ldrh r1, [r2, 0x2E] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _081CAC98 + ldrh r1, [r4] + ldr r0, [r4, 0x4] + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0x1 + beq _081CAC8C + cmp r0, 0x1 + bgt _081CAC5E + cmp r0, 0 + beq _081CAC64 + b _081CAC98 +_081CAC5E: + cmp r0, 0x2 + bne _081CAC98 + b _081CACA6 +_081CAC64: + bl GetPokenavMode + cmp r0, 0x1 + bne _081CAC72 + movs r0, 0x2 + bl SetPokenavMode +_081CAC72: + ldr r0, =sub_81CACF8 + str r0, [r4, 0x18] + bl sub_81CB1D0 + cmp r0, 0 + beq _081CAC88 + movs r0, 0x9 + b _081CACAC + .pool +_081CAC88: + movs r0, 0x8 + b _081CACAC +_081CAC8C: + ldr r0, =sub_81CACB8 + str r0, [r4, 0x18] + movs r0, 0xB + b _081CACAC + .pool +_081CAC98: + ldrh r1, [r2, 0x2E] + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + bne _081CACA6 + movs r0, 0 + b _081CACAC +_081CACA6: + ldr r0, =sub_81CAB44 + str r0, [r4, 0x18] + movs r0, 0x7 +_081CACAC: + pop {r4} + pop {r1} + bx r1 + .pool + thumb_func_end sub_81CAC04 + + thumb_func_start sub_81CACB8 +sub_81CACB8: @ 81CACB8 + push {lr} + adds r3, r0, 0 + ldr r2, =gMain + ldrh r1, [r2, 0x30] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + beq _081CACD0 + movs r0, 0xC + b _081CACF0 + .pool +_081CACD0: + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _081CACDC + movs r0, 0xD + b _081CACF0 +_081CACDC: + ldrh r1, [r2, 0x2E] + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + bne _081CACEA + movs r0, 0 + b _081CACF0 +_081CACEA: + ldr r0, =sub_81CAB44 + str r0, [r3, 0x18] + movs r0, 0xE +_081CACF0: + pop {r1} + bx r1 + .pool + thumb_func_end sub_81CACB8 + + thumb_func_start sub_81CACF8 +sub_81CACF8: @ 81CACF8 + push {lr} + adds r2, r0, 0 + ldr r0, =gMain + ldrh r1, [r0, 0x2E] + movs r0, 0x3 + ands r0, r1 + cmp r0, 0 + bne _081CAD10 + movs r0, 0 + b _081CAD16 + .pool +_081CAD10: + ldr r0, =sub_81CAB44 + str r0, [r2, 0x18] + movs r0, 0xA +_081CAD16: + pop {r1} + bx r1 + .pool + thumb_func_end sub_81CACF8 + + thumb_func_start sub_81CAD20 +sub_81CAD20: @ 81CAD20 + push {r4-r7,lr} + adds r5, r0, 0 + movs r0, 0x5 + bl GetSubstructPtr + adds r4, r0, 0 + cmp r5, 0x1 + beq _081CAD4C + cmp r5, 0x1 + bgt _081CAD3A + cmp r5, 0 + beq _081CAD44 + b _081CAE00 +_081CAD3A: + cmp r5, 0x2 + beq _081CAD9C + cmp r5, 0x3 + beq _081CADFC + b _081CAE00 +_081CAD44: + strh r5, [r4, 0x8] + strh r5, [r4, 0xA] +_081CAD48: + movs r0, 0x1 + b _081CAE02 +_081CAD4C: + movs r6, 0 + ldrh r5, [r4, 0x8] +_081CAD50: + adds r0, r5, 0 + bl MatchCallFlagGetByIndex + cmp r0, 0 + beq _081CAD80 + ldrh r0, [r4, 0xA] + lsls r0, 2 + adds r0, r4, r0 + strh r5, [r0, 0x1E] + ldrh r0, [r4, 0xA] + lsls r0, 2 + adds r0, r4, r0 + movs r1, 0x1 + strb r1, [r0, 0x1C] + adds r0, r5, 0 + bl sub_81D16DC + ldrh r1, [r4, 0xA] + lsls r1, 2 + adds r1, r4, r1 + strb r0, [r1, 0x1D] + ldrh r0, [r4, 0xA] + adds r0, 0x1 + strh r0, [r4, 0xA] +_081CAD80: + ldrh r0, [r4, 0x8] + adds r1, r0, 0x1 + movs r2, 0 + strh r1, [r4, 0x8] + lsls r0, r1, 16 + lsrs r0, 16 + cmp r0, 0x14 + bhi _081CADF6 + adds r6, 0x1 + adds r5, 0x1 + cmp r6, 0x1D + ble _081CAD50 + movs r0, 0x3 + b _081CAE02 +_081CAD9C: + movs r6, 0 + ldrh r5, [r4, 0x8] + movs r7, 0 +_081CADA2: + ldrh r0, [r4, 0x8] + bl sub_81D1BF8 + cmp r0, 0 + bne _081CADDC + ldrh r0, [r4, 0x8] + bl sub_81CAE08 + cmp r0, 0 + beq _081CADDC + ldrh r0, [r4, 0xA] + lsls r0, 2 + adds r0, r4, r0 + ldrh r1, [r4, 0x8] + strh r1, [r0, 0x1E] + ldrh r0, [r4, 0xA] + lsls r0, 2 + adds r0, r4, r0 + strb r7, [r0, 0x1C] + adds r0, r5, 0 + bl sub_81CB0C8 + ldrh r1, [r4, 0xA] + lsls r1, 2 + adds r1, r4, r1 + strb r0, [r1, 0x1D] + ldrh r0, [r4, 0xA] + adds r0, 0x1 + strh r0, [r4, 0xA] +_081CADDC: + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x4D + bhi _081CAD48 + adds r6, 0x1 + adds r5, 0x1 + cmp r6, 0x1D + ble _081CADA2 + movs r0, 0x3 + b _081CAE02 +_081CADF6: + strh r1, [r4, 0xC] + strh r2, [r4, 0x8] + b _081CAD48 +_081CADFC: + movs r0, 0x1 + str r0, [r4, 0x10] +_081CAE00: + movs r0, 0x4 +_081CAE02: + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_81CAD20 + + thumb_func_start sub_81CAE08 +sub_81CAE08: @ 81CAE08 + push {lr} + cmp r0, 0x4D + ble _081CAE12 + movs r0, 0 + b _081CAE24 +_081CAE12: + movs r1, 0xAE + lsls r1, 1 + adds r0, r1 + lsls r0, 16 + lsrs r0, 16 + bl FlagGet + lsls r0, 24 + lsrs r0, 24 +_081CAE24: + pop {r1} + bx r1 + thumb_func_end sub_81CAE08 + + thumb_func_start sub_81CAE28 +sub_81CAE28: @ 81CAE28 + push {lr} + movs r0, 0x5 + bl GetSubstructPtr + ldr r0, [r0, 0x10] + pop {r1} + bx r1 + thumb_func_end sub_81CAE28 + + thumb_func_start sub_81CAE38 +sub_81CAE38: @ 81CAE38 + push {lr} + movs r0, 0x5 + bl GetSubstructPtr + ldrh r0, [r0, 0xA] + pop {r1} + bx r1 + thumb_func_end sub_81CAE38 + + thumb_func_start sub_81CAE48 +sub_81CAE48: @ 81CAE48 + push {lr} + movs r0, 0x5 + bl GetSubstructPtr + ldrh r0, [r0, 0xC] + pop {r1} + bx r1 + thumb_func_end sub_81CAE48 + + thumb_func_start sub_81CAE58 +sub_81CAE58: @ 81CAE58 + push {lr} + movs r0, 0x5 + bl GetSubstructPtr + adds r1, r0, 0 + ldrh r0, [r1, 0xA] + ldrh r1, [r1, 0xC] + subs r0, r1 + pop {r1} + bx r1 + thumb_func_end sub_81CAE58 + + thumb_func_start sub_81CAE6C +sub_81CAE6C: @ 81CAE6C + push {r4,lr} + adds r4, r0, 0 + movs r0, 0x5 + bl GetSubstructPtr + adds r1, r0, 0 + ldrh r0, [r1, 0xC] + adds r4, r0 + ldrh r0, [r1, 0xA] + cmp r4, r0 + bge _081CAE8A + lsls r0, r4, 2 + adds r0, r1, r0 + ldrh r0, [r0, 0x1E] + b _081CAE8C +_081CAE8A: + movs r0, 0x4E +_081CAE8C: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_81CAE6C + + thumb_func_start sub_81CAE94 +sub_81CAE94: @ 81CAE94 + push {lr} + movs r0, 0x5 + bl GetSubstructPtr + adds r0, 0x1C + pop {r1} + bx r1 + thumb_func_end sub_81CAE94 + + thumb_func_start sub_81CAEA4 +sub_81CAEA4: @ 81CAEA4 + push {r4,lr} + adds r4, r0, 0 + movs r0, 0x5 + bl GetSubstructPtr + lsls r4, 2 + adds r0, r4 + ldrb r0, [r0, 0x1D] + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_81CAEA4 + + thumb_func_start sub_81CAEBC +sub_81CAEBC: @ 81CAEBC + push {r4,lr} + adds r4, r0, 0 + movs r0, 0x5 + bl GetSubstructPtr + lsls r1, r4, 2 + adds r1, r0, r1 + ldrb r0, [r1, 0x1C] + cmp r0, 0 + bne _081CAED4 + ldrh r4, [r1, 0x1E] + b _081CAEDC +_081CAED4: + ldrh r0, [r1, 0x1E] + bl MatchCall_GetRematchTableIdx + adds r4, r0, 0 +_081CAEDC: + cmp r4, 0x4E + beq _081CAEFC + ldr r0, =gSaveBlock1Ptr + ldr r0, [r0] + ldr r1, =0x000009ca + adds r0, r1 + adds r0, r4 + ldrb r1, [r0] + negs r0, r1 + orrs r0, r1 + lsrs r0, 31 + b _081CAEFE + .pool +_081CAEFC: + movs r0, 0 +_081CAEFE: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_81CAEBC + + thumb_func_start sub_81CAF04 +sub_81CAF04: @ 81CAF04 + push {r4,r5,lr} + adds r4, r0, 0 + movs r0, 0x5 + bl GetSubstructPtr + lsls r1, r4, 2 + adds r1, r0, r1 + ldrb r0, [r1, 0x1C] + cmp r0, 0 + bne _081CAF34 + ldrh r0, [r1, 0x1E] + bl GetTrainerIdxByRematchIdx + adds r4, r0, 0 + ldr r1, =gTrainers + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldrb r0, [r0, 0x3] + b _081CAF6C + .pool +_081CAF34: + ldrh r5, [r1, 0x1E] + adds r0, r5, 0 + bl MatchCall_GetRematchTableIdx + adds r4, r0, 0 + cmp r4, 0x4E + bne _081CAF58 + adds r0, r5, 0 + bl sub_81D1BD0 + adds r4, r0, 0 + ldr r0, =gFacilityClassToPicIndex + adds r0, r4, r0 + ldrb r0, [r0] + b _081CAF6C + .pool +_081CAF58: + adds r0, r4, 0 + bl GetTrainerIdxByRematchIdx + adds r4, r0, 0 + ldr r0, =gTrainers + lsls r1, r4, 2 + adds r1, r4 + lsls r1, 3 + adds r1, r0 + ldrb r0, [r1, 0x3] +_081CAF6C: + pop {r4,r5} + pop {r1} + bx r1 + .pool + thumb_func_end sub_81CAF04 + + thumb_func_start sub_81CAF78 +sub_81CAF78: @ 81CAF78 + push {r4-r6,lr} + adds r5, r0, 0 + adds r6, r1, 0 + movs r0, 0x5 + bl GetSubstructPtr + adds r4, r0, 0 + movs r0, 0 + strb r0, [r6] + ldr r0, =gMapHeader + ldrb r0, [r0, 0x17] + bl Overworld_MapTypeAllowsTeleportAndFly + lsls r0, 24 + cmp r0, 0 + bne _081CAFA4 + ldr r0, =gText_CallCantBeMadeHere + b _081CAFCE + .pool +_081CAFA4: + lsls r0, r5, 2 + adds r1, r4, r0 + ldrb r0, [r1, 0x1C] + cmp r0, 0 + bne _081CAFC4 + ldrh r0, [r1, 0x1E] + bl GetTrainerIdxByRematchIdx + ldr r1, =gStringVar4 + bl SelectMatchCallMessage + strb r0, [r6] + b _081CAFCC + .pool +_081CAFC4: + ldrh r0, [r1, 0x1E] + ldr r1, =gStringVar4 + bl MatchCall_GetMessage +_081CAFCC: + ldr r0, =gStringVar4 +_081CAFCE: + pop {r4-r6} + pop {r1} + bx r1 + .pool + thumb_func_end sub_81CAF78 + + thumb_func_start sub_81CAFD8 +sub_81CAFD8: @ 81CAFD8 + push {r4,r5,lr} + adds r4, r0, 0 + adds r5, r1, 0 + movs r0, 0x5 + bl GetSubstructPtr + lsls r4, 2 + adds r4, r0, r4 + ldrb r0, [r4, 0x1C] + cmp r0, 0 + beq _081CB004 + ldrh r0, [r4, 0x1E] + bl MatchCall_GetRematchTableIdx + adds r1, r0, 0 + cmp r1, 0x4E + bne _081CB006 + ldrh r0, [r4, 0x1E] + adds r1, r5, 0 + bl sub_81D1B40 + b _081CB012 +_081CB004: + ldrh r1, [r4, 0x1E] +_081CB006: + ldr r2, =gUnknown_08622028 + lsls r0, r5, 2 + lsls r1, 4 + adds r0, r1 + adds r0, r2 + ldr r0, [r0] +_081CB012: + pop {r4,r5} + pop {r1} + bx r1 + .pool + thumb_func_end sub_81CAFD8 + + thumb_func_start sub_81CB01C +sub_81CB01C: @ 81CB01C + push {lr} + movs r0, 0x5 + bl GetSubstructPtr + ldrh r0, [r0] + pop {r1} + bx r1 + thumb_func_end sub_81CB01C + + thumb_func_start sub_81CB02C +sub_81CB02C: @ 81CB02C + push {r4,lr} + adds r4, r0, 0 + movs r0, 0x5 + bl GetSubstructPtr + adds r1, r0, 0 + ldrh r0, [r1, 0x2] + cmp r0, r4 + blt _081CB046 + ldr r0, [r1, 0x4] + adds r0, r4 + ldrb r0, [r0] + b _081CB048 +_081CB046: + movs r0, 0x3 +_081CB048: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_81CB02C + + thumb_func_start sub_81CB050 +sub_81CB050: @ 81CB050 + push {r4,lr} + sub sp, 0x8 + adds r2, r0, 0 + adds r4, r1, 0 + ldrb r0, [r2] + cmp r0, 0 + bne _081CB088 + ldrh r0, [r2, 0x2] + bl GetTrainerIdxByRematchIdx + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + ldr r0, =gTrainers + adds r1, r0 + ldrb r2, [r1, 0x1] + movs r0, 0xD + muls r0, r2 + ldr r2, =gTrainerClassNames + adds r0, r2 + str r0, [sp] + adds r1, 0x4 + str r1, [sp, 0x4] + b _081CB092 + .pool +_081CB088: + ldrh r0, [r2, 0x2] + add r2, sp, 0x4 + mov r1, sp + bl sub_81D1A78 +_081CB092: + ldr r2, [sp] + cmp r2, 0 + beq _081CB0B4 + ldr r0, [sp, 0x4] + cmp r0, 0 + beq _081CB0B4 + adds r0, r4, 0 + movs r1, 0x7 + movs r3, 0x45 + bl sub_81DB494 + ldr r2, [sp, 0x4] + movs r1, 0x7 + movs r3, 0x33 + bl sub_81DB494 + b _081CB0C0 +_081CB0B4: + adds r0, r4, 0 + movs r1, 0x7 + movs r2, 0 + movs r3, 0x78 + bl sub_81DB494 +_081CB0C0: + add sp, 0x8 + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_81CB050 + + thumb_func_start sub_81CB0C8 +sub_81CB0C8: @ 81CB0C8 + push {lr} + ldr r1, =gRematchTable + lsls r0, 4 + adds r0, r1 + ldrh r2, [r0, 0xA] + ldrh r1, [r0, 0xC] + adds r0, r2, 0 + bl Overworld_GetMapHeaderByGroupAndId + ldrb r0, [r0, 0x14] + pop {r1} + bx r1 + .pool + thumb_func_end sub_81CB0C8 + + thumb_func_start sub_81CB0E4 +sub_81CB0E4: @ 81CB0E4 + push {r4-r7,lr} + adds r5, r0, 0 + movs r0, 0x5 + bl GetSubstructPtr + adds r7, r0, 0 + movs r6, 0x1 + adds r5, 0x1 + ldrh r0, [r7, 0xA] + cmp r5, r0 + bge _081CB120 + lsls r0, r5, 2 + adds r0, 0x1C + adds r4, r0, r7 +_081CB100: + ldrb r0, [r4] + cmp r0, 0 + beq _081CB110 + ldrh r0, [r4, 0x2] + bl sub_81D17E8 + cmp r0, 0 + beq _081CB114 +_081CB110: + adds r0, r6, 0 + b _081CB122 +_081CB114: + adds r6, 0x1 + adds r4, 0x4 + adds r5, 0x1 + ldrh r0, [r7, 0xA] + cmp r5, r0 + blt _081CB100 +_081CB120: + movs r0, 0 +_081CB122: + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_81CB0E4 + + thumb_func_start sub_81CB128 +sub_81CB128: @ 81CB128 + push {r4-r6,lr} + adds r5, r0, 0 + movs r0, 0x5 + bl GetSubstructPtr + adds r1, r0, 0 + movs r6, 0x1 + negs r6, r6 + subs r5, 0x1 + cmp r5, 0 + blt _081CB162 + lsls r0, r5, 2 + adds r0, 0x1C + adds r4, r0, r1 +_081CB144: + ldrb r0, [r4] + cmp r0, 0 + beq _081CB154 + ldrh r0, [r4, 0x2] + bl sub_81D17E8 + cmp r0, 0 + beq _081CB158 +_081CB154: + adds r0, r6, 0 + b _081CB164 +_081CB158: + subs r6, 0x1 + subs r4, 0x4 + subs r5, 0x1 + cmp r5, 0 + bge _081CB144 +_081CB162: + movs r0, 0 +_081CB164: + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end sub_81CB128 + + thumb_func_start sub_81CB16C +sub_81CB16C: @ 81CB16C + push {r4,lr} + movs r4, 0 +_081CB170: + adds r0, r4, 0 + bl sub_81CAE08 + cmp r0, 0 + beq _081CB18A + ldr r0, =gSaveBlock1Ptr + ldr r0, [r0] + ldr r1, =0x000009ca + adds r0, r1 + adds r0, r4 + ldrb r0, [r0] + cmp r0, 0 + bne _081CB1B2 +_081CB18A: + adds r4, 0x1 + cmp r4, 0x4D + ble _081CB170 + movs r4, 0 +_081CB192: + adds r0, r4, 0 + bl MatchCallFlagGetByIndex + cmp r0, 0 + beq _081CB1C0 + adds r0, r4, 0 + bl MatchCall_GetRematchTableIdx + ldr r1, =gSaveBlock1Ptr + ldr r1, [r1] + ldr r2, =0x000009ca + adds r1, r2 + adds r1, r0 + ldrb r0, [r1] + cmp r0, 0 + beq _081CB1C0 +_081CB1B2: + movs r0, 0x1 + b _081CB1C8 + .pool +_081CB1C0: + adds r4, 0x1 + cmp r4, 0x14 + ble _081CB192 + movs r0, 0 +_081CB1C8: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_81CB16C + + thumb_func_start sub_81CB1D0 +sub_81CB1D0: @ 81CB1D0 + push {r4,lr} + movs r0, 0x5 + bl GetSubstructPtr + adds r4, r0, 0 + bl GetSelectedMatchCall + adds r1, r0, 0 + lsls r0, r1, 2 + adds r4, r0 + ldrb r0, [r4, 0x1C] + cmp r0, 0 + bne _081CB218 + adds r0, r1, 0 + bl sub_81CAEA4 + ldr r1, =gMapHeader + lsls r0, 16 + lsrs r0, 16 + ldrb r1, [r1, 0x14] + cmp r0, r1 + bne _081CB258 + ldr r0, =gSaveBlock1Ptr + ldr r0, [r0] + ldr r1, =0x000009ca + adds r0, r1 + ldrh r4, [r4, 0x1E] + adds r0, r4 + ldrb r0, [r0] + b _081CB246 + .pool +_081CB218: + ldrh r0, [r4, 0x1E] + cmp r0, 0xB + bne _081CB258 + adds r0, r1, 0 + bl sub_81CAEA4 + ldr r1, =gMapHeader + lsls r0, 16 + lsrs r0, 16 + ldrb r1, [r1, 0x14] + cmp r0, r1 + bne _081CB258 + ldr r0, =0x0000086b + bl FlagGet + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _081CB258 + movs r0, 0x5B + bl FlagGet + lsls r0, 24 +_081CB246: + cmp r0, 0 + bne _081CB258 + movs r0, 0x1 + b _081CB25A + .pool +_081CB258: + movs r0, 0 +_081CB25A: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_81CB1D0 + + .align 2, 0 @ Don't pad with nop. diff --git a/asm/pokenav_unk_4.s b/asm/pokenav_unk_4.s new file mode 100644 index 000000000..14ab55ca9 --- /dev/null +++ b/asm/pokenav_unk_4.s @@ -0,0 +1,2347 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .syntax unified + +@ File centered around AllocSubstruct(6) + + thumb_func_start sub_81CB260 +sub_81CB260: @ 81CB260 + push {r4,lr} + ldr r1, =0x00002048 + movs r0, 0x6 + bl AllocSubstruct + adds r4, r0, 0 + cmp r4, 0 + beq _081CB294 + movs r0, 0 + strb r0, [r4, 0x19] + ldr r0, =sub_81CB324 + movs r1, 0x1 + bl CreateLoopedTask + str r0, [r4, 0x4] + ldr r0, =sub_81CB310 + str r0, [r4] + movs r0, 0x1 + b _081CB296 + .pool +_081CB294: + movs r0, 0 +_081CB296: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_81CB260 + + thumb_func_start sub_81CB29C +sub_81CB29C: @ 81CB29C + push {r4,r5,lr} + adds r4, r0, 0 + movs r0, 0x6 + bl GetSubstructPtr + adds r5, r0, 0 + ldr r0, =gUnknown_08622798 + lsls r4, 2 + adds r4, r0 + ldr r0, [r4] + movs r1, 0x1 + bl CreateLoopedTask + str r0, [r5, 0x4] + ldr r0, =sub_81CB310 + str r0, [r5] + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81CB29C + + thumb_func_start sub_81CB2CC +sub_81CB2CC: @ 81CB2CC + push {lr} + movs r0, 0x6 + bl GetSubstructPtr + ldr r0, [r0] + bl _call_via_r0 + pop {r1} + bx r1 + thumb_func_end sub_81CB2CC + + thumb_func_start sub_81CB2E0 +sub_81CB2E0: @ 81CB2E0 + push {r4,lr} + movs r0, 0x6 + bl GetSubstructPtr + adds r4, r0, 0 + bl sub_81CC2B4 + bl sub_81CBC1C + ldrb r0, [r4, 0x12] + bl RemoveWindow + ldrb r0, [r4, 0x10] + bl RemoveWindow + ldrb r0, [r4, 0x14] + bl RemoveWindow + movs r0, 0x6 + bl FreePokenavSubstruct + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_81CB2E0 + + thumb_func_start sub_81CB310 +sub_81CB310: @ 81CB310 + push {lr} + movs r0, 0x6 + bl GetSubstructPtr + ldr r0, [r0, 0x4] + bl IsLoopedTaskActive + pop {r1} + bx r1 + thumb_func_end sub_81CB310 + + thumb_func_start sub_81CB324 +sub_81CB324: @ 81CB324 + push {r4,r5,lr} + sub sp, 0x8 + adds r4, r0, 0 + movs r0, 0x6 + bl GetSubstructPtr + adds r5, r0, 0 + cmp r4, 0x7 + bls _081CB338 + b _081CB504 +_081CB338: + lsls r0, r4, 2 + ldr r1, =_081CB348 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .pool + .align 2, 0 +_081CB348: + .4byte _081CB368 + .4byte _081CB3D4 + .4byte _081CB424 + .4byte _081CB468 + .4byte _081CB482 + .4byte _081CB494 + .4byte _081CB4A6 + .4byte _081CB4EA +_081CB368: + ldr r0, =gUnknown_0862278C + movs r1, 0x3 + bl InitBgTemplates + movs r0, 0x2 + movs r1, 0 + movs r2, 0 + bl ChangeBgX + movs r0, 0x2 + movs r1, 0 + movs r2, 0 + bl ChangeBgY + ldr r1, =gUnknown_08622530 + movs r0, 0 + str r0, [sp] + movs r0, 0x2 + movs r2, 0 + movs r3, 0 + bl decompress_and_copy_tile_data_to_vram + ldr r0, =0x00001024 + adds r1, r5, r0 + movs r0, 0x2 + bl SetBgTilemapBuffer + ldr r1, =gUnknown_086225D4 + movs r0, 0x2 + movs r2, 0 + movs r3, 0 + bl CopyToBgTilemapBuffer + movs r0, 0x2 + bl CopyBgTilemapBufferToVram + ldr r0, =gUnknown_08622510 + movs r1, 0x20 + movs r2, 0x20 + bl CopyPaletteIntoBufferUnfaded + movs r0, 0x2 + b _081CB418 + .pool +_081CB3D4: + bl free_temp_tile_data_buffers_if_possible + lsls r0, 24 + cmp r0, 0 + beq _081CB3E0 + b _081CB4FA +_081CB3E0: + movs r0, 0x1 + movs r1, 0 + movs r2, 0 + movs r3, 0x1 + bl sub_8199DF0 + adds r1, r5, 0 + adds r1, 0x24 + movs r0, 0x1 + bl SetBgTilemapBuffer + movs r1, 0x80 + lsls r1, 5 + movs r0, 0x20 + str r0, [sp] + movs r0, 0x14 + str r0, [sp, 0x4] + movs r0, 0x1 + movs r2, 0 + movs r3, 0 + bl FillBgTilemapBufferRect_Palette0 + ldr r0, =gUnknown_086226E0 + movs r1, 0x10 + movs r2, 0x20 + bl CopyPaletteIntoBufferUnfaded + movs r0, 0x1 +_081CB418: + bl CopyBgTilemapBufferToVram + movs r0, 0 + b _081CB506 + .pool +_081CB424: + bl free_temp_tile_data_buffers_if_possible + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0 + bne _081CB4FA + adds r0, r5, 0 + bl sub_81CC034 + ldr r1, =gUnknown_08622760 + str r4, [sp] + movs r0, 0x3 + movs r2, 0 + movs r3, 0 + bl decompress_and_copy_tile_data_to_vram + ldr r0, =gUnknown_08622700 + movs r1, 0x30 + movs r2, 0x20 + bl CopyPaletteIntoBufferUnfaded + ldr r0, =gUnknown_08622720 + movs r1, 0x50 + movs r2, 0x20 + bl CopyPaletteIntoBufferUnfaded + movs r0, 0 + b _081CB506 + .pool +_081CB468: + bl free_temp_tile_data_buffers_if_possible + lsls r0, 24 + cmp r0, 0 + bne _081CB4FA + bl sub_81CAE28 + cmp r0, 0 + beq _081CB4FA + bl sub_81CBBB8 + movs r0, 0 + b _081CB506 +_081CB482: + bl sub_81C8224 + cmp r0, 0 + bne _081CB4FA + adds r0, r5, 0 + bl sub_81CBD78 + movs r0, 0 + b _081CB506 +_081CB494: + adds r0, r5, 0 + bl sub_81CBDC0 + adds r0, r5, 0 + movs r1, 0 + bl sub_81CBEF8 + movs r0, 0 + b _081CB506 +_081CB4A6: + movs r0, 0x1 + movs r1, 0 + movs r2, 0 + bl ChangeBgX + movs r0, 0x1 + movs r1, 0 + movs r2, 0 + bl ChangeBgY + movs r0, 0x2 + bl ShowBg + movs r0, 0x3 + bl ShowBg + movs r0, 0x1 + bl ShowBg + bl sub_81CC214 + movs r0, 0x3 + bl LoadLeftHeaderGfxForIndex + movs r0, 0x3 + movs r1, 0x1 + movs r2, 0 + bl sub_81C7FA0 + movs r0, 0x1 + bl sub_81C7AC0 + movs r0, 0 + b _081CB506 +_081CB4EA: + bl IsPaletteFadeActive + cmp r0, 0 + bne _081CB4FA + bl sub_81C8010 + cmp r0, 0 + beq _081CB4FE +_081CB4FA: + movs r0, 0x2 + b _081CB506 +_081CB4FE: + movs r0, 0x1 + bl sub_81CBC38 +_081CB504: + movs r0, 0x4 +_081CB506: + add sp, 0x8 + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_81CB324 + + thumb_func_start sub_81CB510 +sub_81CB510: @ 81CB510 + push {r4,r5,lr} + adds r4, r0, 0 + movs r0, 0x6 + bl GetSubstructPtr + adds r5, r0, 0 + cmp r4, 0x1 + beq _081CB55E + cmp r4, 0x1 + bgt _081CB52A + cmp r4, 0 + beq _081CB534 + b _081CB580 +_081CB52A: + cmp r4, 0x2 + beq _081CB566 + cmp r4, 0x3 + beq _081CB572 + b _081CB580 +_081CB534: + bl MatchCall_MoveCursorDown + cmp r0, 0x1 + beq _081CB54C + cmp r0, 0x1 + bgt _081CB546 + cmp r0, 0 + beq _081CB580 + b _081CB56E +_081CB546: + cmp r0, 0x2 + beq _081CB556 + b _081CB56E +_081CB54C: + movs r0, 0x5 + bl PlaySE + movs r0, 0x7 + b _081CB582 +_081CB556: + movs r0, 0x5 + bl PlaySE + b _081CB56E +_081CB55E: + bl sub_81C8630 + cmp r0, 0 + bne _081CB57C +_081CB566: + adds r0, r5, 0 + movs r1, 0 + bl sub_81CBEF8 +_081CB56E: + movs r0, 0 + b _081CB582 +_081CB572: + bl IsDma3ManagerBusyWithBgCopy + lsls r0, 24 + cmp r0, 0 + beq _081CB580 +_081CB57C: + movs r0, 0x2 + b _081CB582 +_081CB580: + movs r0, 0x4 +_081CB582: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_81CB510 + + thumb_func_start sub_81CB588 +sub_81CB588: @ 81CB588 + push {r4,r5,lr} + adds r4, r0, 0 + movs r0, 0x6 + bl GetSubstructPtr + adds r5, r0, 0 + cmp r4, 0x1 + beq _081CB5D6 + cmp r4, 0x1 + bgt _081CB5A2 + cmp r4, 0 + beq _081CB5AC + b _081CB5F8 +_081CB5A2: + cmp r4, 0x2 + beq _081CB5DE + cmp r4, 0x3 + beq _081CB5EA + b _081CB5F8 +_081CB5AC: + bl MatchCall_MoveCursorUp + cmp r0, 0x1 + beq _081CB5C4 + cmp r0, 0x1 + bgt _081CB5BE + cmp r0, 0 + beq _081CB5F8 + b _081CB5E6 +_081CB5BE: + cmp r0, 0x2 + beq _081CB5CE + b _081CB5E6 +_081CB5C4: + movs r0, 0x5 + bl PlaySE + movs r0, 0x7 + b _081CB5FA +_081CB5CE: + movs r0, 0x5 + bl PlaySE + b _081CB5E6 +_081CB5D6: + bl sub_81C8630 + cmp r0, 0 + bne _081CB5F4 +_081CB5DE: + adds r0, r5, 0 + movs r1, 0 + bl sub_81CBEF8 +_081CB5E6: + movs r0, 0 + b _081CB5FA +_081CB5EA: + bl IsDma3ManagerBusyWithBgCopy + lsls r0, 24 + cmp r0, 0 + beq _081CB5F8 +_081CB5F4: + movs r0, 0x2 + b _081CB5FA +_081CB5F8: + movs r0, 0x4 +_081CB5FA: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_81CB588 + + thumb_func_start sub_81CB600 +sub_81CB600: @ 81CB600 + push {r4,r5,lr} + adds r4, r0, 0 + movs r0, 0x6 + bl GetSubstructPtr + adds r5, r0, 0 + cmp r4, 0x1 + beq _081CB64E + cmp r4, 0x1 + bgt _081CB61A + cmp r4, 0 + beq _081CB624 + b _081CB670 +_081CB61A: + cmp r4, 0x2 + beq _081CB656 + cmp r4, 0x3 + beq _081CB662 + b _081CB670 +_081CB624: + bl MatchCall_PageDown + cmp r0, 0x1 + beq _081CB63C + cmp r0, 0x1 + bgt _081CB636 + cmp r0, 0 + beq _081CB670 + b _081CB65E +_081CB636: + cmp r0, 0x2 + beq _081CB646 + b _081CB65E +_081CB63C: + movs r0, 0x5 + bl PlaySE + movs r0, 0x7 + b _081CB672 +_081CB646: + movs r0, 0x5 + bl PlaySE + b _081CB65E +_081CB64E: + bl sub_81C8630 + cmp r0, 0 + bne _081CB66C +_081CB656: + adds r0, r5, 0 + movs r1, 0 + bl sub_81CBEF8 +_081CB65E: + movs r0, 0 + b _081CB672 +_081CB662: + bl IsDma3ManagerBusyWithBgCopy + lsls r0, 24 + cmp r0, 0 + beq _081CB670 +_081CB66C: + movs r0, 0x2 + b _081CB672 +_081CB670: + movs r0, 0x4 +_081CB672: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_81CB600 + + thumb_func_start sub_81CB678 +sub_81CB678: @ 81CB678 + push {r4,r5,lr} + adds r4, r0, 0 + movs r0, 0x6 + bl GetSubstructPtr + adds r5, r0, 0 + cmp r4, 0x1 + beq _081CB6C6 + cmp r4, 0x1 + bgt _081CB692 + cmp r4, 0 + beq _081CB69C + b _081CB6E8 +_081CB692: + cmp r4, 0x2 + beq _081CB6CE + cmp r4, 0x3 + beq _081CB6DA + b _081CB6E8 +_081CB69C: + bl MatchCall_PageUp + cmp r0, 0x1 + beq _081CB6B4 + cmp r0, 0x1 + bgt _081CB6AE + cmp r0, 0 + beq _081CB6E8 + b _081CB6D6 +_081CB6AE: + cmp r0, 0x2 + beq _081CB6BE + b _081CB6D6 +_081CB6B4: + movs r0, 0x5 + bl PlaySE + movs r0, 0x7 + b _081CB6EA +_081CB6BE: + movs r0, 0x5 + bl PlaySE + b _081CB6D6 +_081CB6C6: + bl sub_81C8630 + cmp r0, 0 + bne _081CB6E4 +_081CB6CE: + adds r0, r5, 0 + movs r1, 0 + bl sub_81CBEF8 +_081CB6D6: + movs r0, 0 + b _081CB6EA +_081CB6DA: + bl IsDma3ManagerBusyWithBgCopy + lsls r0, 24 + cmp r0, 0 + beq _081CB6E8 +_081CB6E4: + movs r0, 0x2 + b _081CB6EA +_081CB6E8: + movs r0, 0x4 +_081CB6EA: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_81CB678 + + thumb_func_start sub_81CB6F0 +sub_81CB6F0: @ 81CB6F0 + push {r4,r5,lr} + adds r4, r0, 0 + movs r0, 0x6 + bl GetSubstructPtr + adds r5, r0, 0 + cmp r4, 0 + beq _081CB706 + cmp r4, 0x1 + beq _081CB71C + b _081CB72A +_081CB706: + movs r0, 0x5 + bl PlaySE + adds r0, r5, 0 + bl sub_81CBF60 + movs r0, 0x7 + bl sub_81C7BA4 + movs r0, 0 + b _081CB72C +_081CB71C: + adds r0, r5, 0 + bl sub_81CBFC4 + cmp r0, 0 + beq _081CB72A + movs r0, 0x2 + b _081CB72C +_081CB72A: + movs r0, 0x4 +_081CB72C: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_81CB6F0 + + thumb_func_start sub_81CB734 +sub_81CB734: @ 81CB734 + push {r4,lr} + movs r0, 0x5 + bl PlaySE + movs r0, 0x6 + bl GetSubstructPtr + adds r4, r0, 0 + bl sub_81CB01C + adds r1, r0, 0 + lsls r1, 16 + lsrs r1, 16 + adds r0, r4, 0 + bl sub_81CC344 + movs r0, 0x4 + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_81CB734 + + thumb_func_start sub_81CB75C +sub_81CB75C: @ 81CB75C + push {r4,r5,lr} + adds r4, r0, 0 + movs r0, 0x6 + bl GetSubstructPtr + adds r5, r0, 0 + cmp r4, 0 + beq _081CB772 + cmp r4, 0x1 + beq _081CB788 + b _081CB796 +_081CB772: + movs r0, 0x5 + bl PlaySE + adds r0, r5, 0 + bl sub_81CBFF0 + movs r0, 0x6 + bl sub_81C7BA4 + movs r0, 0 + b _081CB798 +_081CB788: + adds r0, r5, 0 + bl sub_81CC004 + cmp r0, 0 + beq _081CB796 + movs r0, 0x2 + b _081CB798 +_081CB796: + movs r0, 0x4 +_081CB798: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_81CB75C + + thumb_func_start sub_81CB7A0 +sub_81CB7A0: @ 81CB7A0 + push {r4,r5,lr} + adds r4, r0, 0 + movs r0, 0x6 + bl GetSubstructPtr + adds r5, r0, 0 + cmp r4, 0x1 + beq _081CB7D4 + cmp r4, 0x1 + bgt _081CB7BA + cmp r4, 0 + beq _081CB7C4 + b _081CB81A +_081CB7BA: + cmp r4, 0x2 + beq _081CB7F8 + cmp r4, 0x3 + beq _081CB80C + b _081CB81A +_081CB7C4: + movs r0, 0x1 + bl ToggleMatchCallVerticalArrows + adds r0, r5, 0 + bl sub_81CC058 + movs r0, 0 + b _081CB81C +_081CB7D4: + adds r0, r5, 0 + bl sub_81CC0D0 + adds r4, r0, 0 + cmp r4, 0 + bne _081CB816 + adds r0, r5, 0 + bl sub_81CC0E0 + ldr r0, =0x00000107 + bl PlaySE + strb r4, [r5, 0xE] + movs r0, 0 + b _081CB81C + .pool +_081CB7F8: + adds r0, r5, 0 + bl sub_81CC104 + cmp r0, 0 + bne _081CB816 + adds r0, r5, 0 + bl sub_81CC158 + movs r0, 0 + b _081CB81C +_081CB80C: + adds r0, r5, 0 + bl sub_81CC194 + cmp r0, 0 + beq _081CB81A +_081CB816: + movs r0, 0x2 + b _081CB81C +_081CB81A: + movs r0, 0x4 +_081CB81C: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_81CB7A0 + + thumb_func_start sub_81CB824 +sub_81CB824: @ 81CB824 + push {r4,r5,lr} + adds r4, r0, 0 + movs r0, 0x6 + bl GetSubstructPtr + adds r5, r0, 0 + cmp r4, 0x1 + beq _081CB85E + cmp r4, 0x1 + bgt _081CB83E + cmp r4, 0 + beq _081CB844 + b _081CB880 +_081CB83E: + cmp r4, 0x2 + beq _081CB872 + b _081CB880 +_081CB844: + movs r0, 0x5 + bl PlaySE + adds r0, r5, 0 + bl sub_81CC09C + movs r0, 0x1 + bl ToggleMatchCallVerticalArrows + movs r0, 0x1 + strb r0, [r5, 0xE] + movs r0, 0 + b _081CB882 +_081CB85E: + adds r0, r5, 0 + bl sub_81CC0D0 + cmp r0, 0 + bne _081CB87C + adds r0, r5, 0 + bl sub_81CC11C + movs r0, 0 + b _081CB882 +_081CB872: + adds r0, r5, 0 + bl sub_81CC140 + cmp r0, 0 + beq _081CB880 +_081CB87C: + movs r0, 0x2 + b _081CB882 +_081CB880: + movs r0, 0x4 +_081CB882: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_81CB824 + + thumb_func_start sub_81CB888 +sub_81CB888: @ 81CB888 + push {r4-r6,lr} + adds r5, r0, 0 + movs r0, 0x6 + bl GetSubstructPtr + adds r4, r0, 0 + movs r6, 0 + cmp r5, 0x6 + bhi _081CB934 + lsls r0, r5, 2 + ldr r1, =_081CB8A8 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .pool + .align 2, 0 +_081CB8A8: + .4byte _081CB8C4 + .4byte _081CB8DA + .4byte _081CB8E2 + .4byte _081CB8F0 + .4byte _081CB8F8 + .4byte _081CB90C + .4byte _081CB922 +_081CB8C4: + ldrb r0, [r4, 0xE] + cmp r0, 0 + bne _081CB8D2 + movs r0, 0x84 + lsls r0, 1 + bl PlaySE +_081CB8D2: + movs r0, 0x5 + bl PlaySE + b _081CB934 +_081CB8DA: + adds r0, r4, 0 + bl sub_81CC1DC + b _081CB934 +_081CB8E2: + adds r0, r4, 0 + bl sub_81CC204 + cmp r0, 0 + beq _081CB934 +_081CB8EC: + movs r6, 0x2 + b _081CB934 +_081CB8F0: + adds r0, r4, 0 + bl sub_81CBFF0 + b _081CB934 +_081CB8F8: + adds r0, r4, 0 + bl sub_81CC004 + cmp r0, 0 + beq _081CB904 + movs r6, 0x2 +_081CB904: + movs r0, 0x6 + bl sub_81C7BA4 + b _081CB934 +_081CB90C: + bl IsDma3ManagerBusyWithBgCopy_ + cmp r0, 0 + bne _081CB8EC + ldrb r0, [r4, 0xF] + cmp r0, 0 + beq _081CB92C + bl sub_81C8838 + movs r6, 0x1 + b _081CB934 +_081CB922: + bl IsDma3ManagerBusyWithBgCopy + lsls r0, 24 + cmp r0, 0 + bne _081CB8EC +_081CB92C: + movs r0, 0 + bl ToggleMatchCallVerticalArrows + movs r6, 0x4 +_081CB934: + adds r0, r6, 0 + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end sub_81CB888 + + thumb_func_start sub_81CB93C +sub_81CB93C: @ 81CB93C + push {r4,r5,lr} + adds r4, r0, 0 + movs r0, 0x6 + bl GetSubstructPtr + adds r5, r0, 0 + cmp r4, 0x1 + beq _081CB974 + cmp r4, 0x1 + bgt _081CB956 + cmp r4, 0 + beq _081CB960 + b _081CB9BE +_081CB956: + cmp r4, 0x2 + beq _081CB990 + cmp r4, 0x3 + beq _081CB9A0 + b _081CB9BE +_081CB960: + movs r0, 0x5 + bl PlaySE + bl sub_81C877C + adds r0, r5, 0 + bl sub_81CC014 + movs r0, 0 + b _081CB9C0 +_081CB974: + bl sub_81C8820 + cmp r0, 0 + bne _081CB9BA + adds r0, r5, 0 + bl sub_81CC004 + cmp r0, 0 + bne _081CB9BA + movs r0, 0x8 + bl sub_81C7BA4 + movs r0, 0 + b _081CB9C0 +_081CB990: + movs r0, 0 + bl sub_81C87AC + adds r0, r5, 0 + bl sub_81CC39C + movs r0, 0 + b _081CB9C0 +_081CB9A0: + bl sub_81C8820 + cmp r0, 0 + bne _081CB9BA + adds r0, r5, 0 + bl sub_81CC42C + cmp r0, 0 + bne _081CB9BA + bl IsDma3ManagerBusyWithBgCopy_ + cmp r0, 0 + beq _081CB9BE +_081CB9BA: + movs r0, 0x2 + b _081CB9C0 +_081CB9BE: + movs r0, 0x4 +_081CB9C0: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_81CB93C + + thumb_func_start sub_81CB9C8 +sub_81CB9C8: @ 81CB9C8 + push {r4,r5,lr} + adds r5, r0, 0 + movs r0, 0x6 + bl GetSubstructPtr + adds r4, r0, 0 + cmp r5, 0x4 + bhi _081CBA60 + lsls r0, r5, 2 + ldr r1, =_081CB9E8 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .pool + .align 2, 0 +_081CB9E8: + .4byte _081CB9FC + .4byte _081CBA1C + .4byte _081CBA34 + .4byte _081CBA40 + .4byte _081CBA4A +_081CB9FC: + bl GetMatchCallListTopIndex + bl sub_81CB0E4 + adds r5, r0, 0 + cmp r5, 0 + beq _081CBA60 + movs r0, 0x5 + bl PlaySE + strh r5, [r4, 0x16] + adds r0, r4, 0 + bl sub_81CC420 + movs r0, 0 + b _081CBA62 +_081CBA1C: + adds r0, r4, 0 + bl sub_81CC42C + cmp r0, 0 + bne _081CBA5C + movs r0, 0x16 + ldrsh r1, [r4, r0] + adds r0, r4, 0 + bl sub_81CBEF8 + movs r0, 0 + b _081CBA62 +_081CBA34: + movs r1, 0x16 + ldrsh r0, [r4, r1] + bl sub_81C87AC + movs r0, 0 + b _081CBA62 +_081CBA40: + adds r0, r4, 0 + bl sub_81CC39C + movs r0, 0 + b _081CBA62 +_081CBA4A: + bl sub_81C8820 + cmp r0, 0 + bne _081CBA5C + adds r0, r4, 0 + bl sub_81CC42C + cmp r0, 0 + beq _081CBA60 +_081CBA5C: + movs r0, 0x2 + b _081CBA62 +_081CBA60: + movs r0, 0x4 +_081CBA62: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_81CB9C8 + + thumb_func_start sub_81CBA68 +sub_81CBA68: @ 81CBA68 + push {r4,r5,lr} + adds r4, r0, 0 + movs r0, 0x6 + bl GetSubstructPtr + adds r5, r0, 0 + cmp r4, 0x1 + beq _081CBA9C + cmp r4, 0x1 + bgt _081CBA82 + cmp r4, 0 + beq _081CBA88 + b _081CBACC +_081CBA82: + cmp r4, 0x2 + beq _081CBABE + b _081CBACC +_081CBA88: + movs r0, 0x5 + bl PlaySE + adds r0, r5, 0 + bl sub_81CC420 + bl sub_81C87F0 + movs r0, 0 + b _081CBACE +_081CBA9C: + bl sub_81C8820 + cmp r0, 0 + bne _081CBAC8 + adds r0, r5, 0 + bl sub_81CC42C + cmp r0, 0 + bne _081CBAC8 + movs r0, 0x6 + bl sub_81C7BA4 + adds r0, r5, 0 + bl sub_81CBDC0 + movs r0, 0 + b _081CBACE +_081CBABE: + bl IsDma3ManagerBusyWithBgCopy + lsls r0, 24 + cmp r0, 0 + beq _081CBACC +_081CBAC8: + movs r0, 0x2 + b _081CBACE +_081CBACC: + movs r0, 0x4 +_081CBACE: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_81CBA68 + + thumb_func_start sub_81CBAD4 +sub_81CBAD4: @ 81CBAD4 + push {r4,r5,lr} + adds r5, r0, 0 + movs r0, 0x6 + bl GetSubstructPtr + adds r4, r0, 0 + cmp r5, 0x4 + bhi _081CBB6C + lsls r0, r5, 2 + ldr r1, =_081CBAF4 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .pool + .align 2, 0 +_081CBAF4: + .4byte _081CBB08 + .4byte _081CBB28 + .4byte _081CBB40 + .4byte _081CBB4C + .4byte _081CBB56 +_081CBB08: + bl GetMatchCallListTopIndex + bl sub_81CB128 + adds r5, r0, 0 + cmp r5, 0 + beq _081CBB6C + movs r0, 0x5 + bl PlaySE + strh r5, [r4, 0x16] + adds r0, r4, 0 + bl sub_81CC420 + movs r0, 0 + b _081CBB6E +_081CBB28: + adds r0, r4, 0 + bl sub_81CC42C + cmp r0, 0 + bne _081CBB68 + movs r0, 0x16 + ldrsh r1, [r4, r0] + adds r0, r4, 0 + bl sub_81CBEF8 + movs r0, 0 + b _081CBB6E +_081CBB40: + movs r1, 0x16 + ldrsh r0, [r4, r1] + bl sub_81C87AC + movs r0, 0 + b _081CBB6E +_081CBB4C: + adds r0, r4, 0 + bl sub_81CC39C + movs r0, 0 + b _081CBB6E +_081CBB56: + bl sub_81C8820 + cmp r0, 0 + bne _081CBB68 + adds r0, r4, 0 + bl sub_81CC42C + cmp r0, 0 + beq _081CBB6C +_081CBB68: + movs r0, 0x2 + b _081CBB6E +_081CBB6C: + movs r0, 0x4 +_081CBB6E: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_81CBAD4 + + thumb_func_start sub_81CBB74 +sub_81CBB74: @ 81CBB74 + push {lr} + cmp r0, 0 + beq _081CBB80 + cmp r0, 0x1 + beq _081CBB9A + b _081CBBB2 +_081CBB80: + movs r0, 0x5 + bl PlaySE + movs r0, 0 + bl sub_81CBC38 + movs r0, 0 + bl sub_81C7AC0 + bl sub_81C78A0 + movs r0, 0 + b _081CBBB4 +_081CBB9A: + bl IsPaletteFadeActive + cmp r0, 0 + bne _081CBBAA + bl MainMenuLoopedTaskIsBusy + cmp r0, 0 + beq _081CBBAE +_081CBBAA: + movs r0, 0x2 + b _081CBBB4 +_081CBBAE: + bl sub_81C7FDC +_081CBBB2: + movs r0, 0x4 +_081CBBB4: + pop {r1} + bx r1 + thumb_func_end sub_81CBB74 + + thumb_func_start sub_81CBBB8 +sub_81CBBB8: @ 81CBBB8 + push {lr} + sub sp, 0x18 + bl sub_81CAE94 + str r0, [sp] + bl sub_81CAE38 + mov r1, sp + movs r2, 0 + strh r0, [r1, 0x4] + movs r0, 0x4 + strb r0, [r1, 0x8] + mov r0, sp + strh r2, [r0, 0x6] + movs r0, 0xD + strb r0, [r1, 0x9] + movs r0, 0x10 + strb r0, [r1, 0xA] + movs r0, 0x1 + strb r0, [r1, 0xB] + movs r0, 0x8 + strb r0, [r1, 0xC] + movs r0, 0x3 + strb r0, [r1, 0xD] + movs r0, 0x7 + strb r0, [r1, 0xE] + ldr r0, =sub_81CB050 + str r0, [sp, 0x10] + ldr r0, =sub_81CBCEC + str r0, [sp, 0x14] + ldr r0, =gUnknown_08622794 + movs r2, 0x2 + bl sub_81C81D4 + ldr r0, =sub_81CBC64 + movs r1, 0x7 + bl CreateTask + add sp, 0x18 + pop {r0} + bx r0 + .pool + thumb_func_end sub_81CBBB8 + + thumb_func_start sub_81CBC1C +sub_81CBC1C: @ 81CBC1C + push {lr} + bl sub_81C8234 + ldr r0, =sub_81CBC64 + bl FindTaskIdByFunc + lsls r0, 24 + lsrs r0, 24 + bl DestroyTask + pop {r0} + bx r0 + .pool + thumb_func_end sub_81CBC1C + + thumb_func_start sub_81CBC38 +sub_81CBC38: @ 81CBC38 + push {r4,lr} + adds r4, r0, 0 + ldr r0, =sub_81CBC64 + bl FindTaskIdByFunc + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0xFF + beq _081CBC56 + ldr r1, =gTasks + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + adds r0, r1 + strh r4, [r0, 0x26] +_081CBC56: + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81CBC38 + + thumb_func_start sub_81CBC64 +sub_81CBC64: @ 81CBC64 + push {r4,lr} + sub sp, 0x8 + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + ldr r0, =gTasks + 0x8 + adds r2, r1, r0 + movs r1, 0x1E + ldrsh r0, [r2, r1] + cmp r0, 0 + beq _081CBCC8 + ldrh r0, [r2] + adds r0, 0x4 + movs r1, 0x7F + ands r0, r1 + strh r0, [r2] + ldr r1, =gSineTable + movs r3, 0 + ldrsh r0, [r2, r3] + lsls r0, 1 + adds r0, r1 + ldrh r0, [r0] + lsls r0, 16 + asrs r0, 20 + strh r0, [r2, 0x2] + ldr r0, =gUnknown_08622720 + adds r1, r0, 0 + adds r1, 0x20 + movs r3, 0x2 + ldrsh r2, [r2, r3] + str r2, [sp] + ldr r4, =gPlttBufferUnfaded + 0xA0 + str r4, [sp, 0x4] + movs r2, 0x10 + movs r3, 0x10 + bl sub_81C79BC + ldr r0, =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _081CBCC8 + ldr r1, =gPlttBufferFaded + 0xA0 + ldr r2, =0x04000008 + adds r0, r4, 0 + bl CpuSet +_081CBCC8: + add sp, 0x8 + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81CBC64 + + thumb_func_start sub_81CBCEC +sub_81CBCEC: @ 81CBCEC + push {r4-r6,lr} + adds r5, r1, 0 + adds r4, r2, 0 + lsls r0, 24 + lsrs r0, 24 + movs r1, 0 + bl GetWindowAttribute + lsls r0, 24 + lsrs r0, 24 + bl GetBgTilemapBuffer + adds r6, r0, 0 + lsls r4, 7 + adds r4, 0x3A + adds r6, r4 + adds r0, r5, 0 + bl sub_81CAEBC + cmp r0, 0 + beq _081CBD30 + movs r1, 0xA0 + lsls r1, 7 + adds r0, r1, 0 + strh r0, [r6] + adds r1, r6, 0 + adds r1, 0x40 + ldr r2, =0x00005001 + adds r0, r2, 0 + strh r0, [r1] + b _081CBD3C + .pool +_081CBD30: + ldr r0, =0x00005002 + adds r1, r0, 0 + strh r1, [r6] + adds r0, r6, 0 + adds r0, 0x40 + strh r1, [r0] +_081CBD3C: + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81CBCEC + + thumb_func_start sub_81CBD48 +sub_81CBD48: @ 81CBD48 + push {r4,lr} + adds r4, r1, 0 + lsls r0, 24 + lsrs r0, 24 + movs r1, 0 + bl GetWindowAttribute + lsls r0, 24 + lsrs r0, 24 + bl GetBgTilemapBuffer + lsls r4, 7 + adds r4, 0x3A + adds r0, r4 + ldr r2, =0x00005002 + adds r1, r2, 0 + strh r1, [r0] + adds r0, 0x40 + strh r1, [r0] + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81CBD48 + + thumb_func_start sub_81CBD78 +sub_81CBD78: @ 81CBD78 + push {r4,lr} + adds r4, r0, 0 + ldr r0, =gUnknown_086227D8 + bl AddWindow + strh r0, [r4, 0x10] + ldr r0, =gUnknown_086227E0 + bl AddWindow + strh r0, [r4, 0x12] + ldrb r0, [r4, 0x10] + movs r1, 0x11 + bl FillWindowPixelBuffer + ldrb r0, [r4, 0x10] + bl PutWindowTilemap + ldrb r0, [r4, 0x12] + movs r1, 0x11 + bl FillWindowPixelBuffer + ldrb r0, [r4, 0x12] + bl PutWindowTilemap + ldrb r0, [r4, 0x10] + movs r1, 0x1 + bl CopyWindowToVram + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81CBD78 + + thumb_func_start sub_81CBDC0 +sub_81CBDC0: @ 81CBDC0 + push {r4,lr} + adds r4, r0, 0 + ldrb r0, [r4, 0x12] + movs r1, 0x11 + bl FillWindowPixelBuffer + ldrh r0, [r4, 0x12] + bl sub_81CBDF4 + ldrh r0, [r4, 0x12] + bl sub_81CBE0C + ldrh r0, [r4, 0x12] + bl sub_81CBE38 + ldrh r0, [r4, 0x12] + bl sub_81CBE50 + ldrb r0, [r4, 0x12] + movs r1, 0x2 + bl CopyWindowToVram + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_81CBDC0 + + thumb_func_start sub_81CBDF4 +sub_81CBDF4: @ 81CBDF4 + push {lr} + lsls r0, 16 + lsrs r0, 16 + ldr r1, =gText_NumberRegistered + movs r2, 0 + bl sub_81CBE88 + pop {r0} + bx r0 + .pool + thumb_func_end sub_81CBDF4 + + thumb_func_start sub_81CBE0C +sub_81CBE0C: @ 81CBE0C + push {r4,lr} + sub sp, 0x4 + adds r4, r0, 0 + lsls r4, 16 + lsrs r4, 16 + bl sub_81CAE38 + adds r1, r0, 0 + mov r0, sp + movs r2, 0 + movs r3, 0x3 + bl ConvertIntToDecimalStringN + adds r0, r4, 0 + mov r1, sp + movs r2, 0x1 + bl sub_81CBEB4 + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_81CBE0C + + thumb_func_start sub_81CBE38 +sub_81CBE38: @ 81CBE38 + push {lr} + lsls r0, 16 + lsrs r0, 16 + ldr r1, =gText_NumberOfBattles + movs r2, 0x2 + bl sub_81CBE88 + pop {r0} + bx r0 + .pool + thumb_func_end sub_81CBE38 + + thumb_func_start sub_81CBE50 +sub_81CBE50: @ 81CBE50 + push {r4,lr} + sub sp, 0x8 + lsls r0, 16 + lsrs r4, r0, 16 + movs r0, 0x9 + bl GetGameStat + adds r1, r0, 0 + ldr r0, =0x0001869f @ Note to decompiler: See UNKNOWN_OFFSET + cmp r1, r0 + ble _081CBE68 + adds r1, r0, 0 +_081CBE68: + mov r0, sp + movs r2, 0 + movs r3, 0x5 + bl ConvertIntToDecimalStringN + adds r0, r4, 0 + mov r1, sp + movs r2, 0x3 + bl sub_81CBEB4 + add sp, 0x8 + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81CBE50 + + thumb_func_start sub_81CBE88 +sub_81CBE88: @ 81CBE88 + push {lr} + sub sp, 0xC + adds r3, r1, 0 + lsls r2, 4 + adds r2, 0x1 + lsls r0, 24 + lsrs r0, 24 + lsls r2, 24 + lsrs r2, 24 + str r2, [sp] + movs r1, 0xFF + str r1, [sp, 0x4] + movs r1, 0 + str r1, [sp, 0x8] + movs r1, 0x7 + adds r2, r3, 0 + movs r3, 0x2 + bl AddTextPrinterParameterized + add sp, 0xC + pop {r0} + bx r0 + thumb_func_end sub_81CBE88 + + thumb_func_start sub_81CBEB4 +sub_81CBEB4: @ 81CBEB4 + push {r4-r6,lr} + sub sp, 0xC + adds r5, r0, 0 + adds r6, r1, 0 + adds r4, r2, 0 + lsls r5, 16 + lsrs r5, 16 + movs r0, 0x7 + movs r2, 0x56 + bl GetStringRightAlignXOffset + adds r3, r0, 0 + lsls r4, 4 + adds r4, 0x1 + lsls r5, 24 + lsrs r5, 24 + lsls r3, 24 + lsrs r3, 24 + lsls r4, 24 + lsrs r4, 24 + str r4, [sp] + movs r0, 0xFF + str r0, [sp, 0x4] + movs r0, 0 + str r0, [sp, 0x8] + adds r0, r5, 0 + movs r1, 0x7 + adds r2, r6, 0 + bl AddTextPrinterParameterized + add sp, 0xC + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_81CBEB4 + + thumb_func_start sub_81CBEF8 +sub_81CBEF8: @ 81CBEF8 + push {r4,r5,lr} + sub sp, 0x2C + adds r5, r0, 0 + adds r4, r1, 0 + bl GetSelectedMatchCall + adds r0, r4 + bl sub_81CAEA4 + lsls r0, 16 + lsrs r1, r0, 16 + cmp r1, 0xD5 + beq _081CBF1C + add r0, sp, 0xC + movs r2, 0 + bl GetMapName + b _081CBF24 +_081CBF1C: + ldr r1, =gText_Unknown + add r0, sp, 0xC + bl StringCopy +_081CBF24: + movs r0, 0x7 + add r1, sp, 0xC + movs r2, 0x58 + bl GetStringCenterAlignXOffset + adds r4, r0, 0 + ldrb r0, [r5, 0x10] + movs r1, 0x11 + bl FillWindowPixelBuffer + ldrb r0, [r5, 0x10] + lsls r4, 24 + lsrs r4, 24 + movs r1, 0x1 + str r1, [sp] + movs r1, 0 + str r1, [sp, 0x4] + str r1, [sp, 0x8] + movs r1, 0x7 + add r2, sp, 0xC + adds r3, r4, 0 + bl AddTextPrinterParameterized + add sp, 0x2C + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81CBEF8 + + thumb_func_start sub_81CBF60 +sub_81CBF60: @ 81CBF60 + push {r4-r6,lr} + sub sp, 0xC + adds r5, r0, 0 + ldrb r0, [r5, 0x12] + movs r1, 0x11 + bl FillWindowPixelBuffer + movs r4, 0 + movs r6, 0x80 + lsls r6, 17 + b _081CBF9C +_081CBF76: + ldrb r0, [r5, 0x12] + ldr r2, =gUnknown_086227E8 + lsls r1, 2 + adds r1, r2 + ldr r2, [r1] + lsrs r1, r6, 24 + str r1, [sp] + movs r1, 0xFF + str r1, [sp, 0x4] + movs r1, 0 + str r1, [sp, 0x8] + movs r1, 0x7 + movs r3, 0x10 + bl AddTextPrinterParameterized + movs r0, 0x80 + lsls r0, 21 + adds r6, r0 + adds r4, 0x1 +_081CBF9C: + cmp r4, 0x2 + bhi _081CBFAE + adds r0, r4, 0 + bl sub_81CB02C + lsls r0, 16 + lsrs r1, r0, 16 + cmp r1, 0x3 + bne _081CBF76 +_081CBFAE: + ldrb r0, [r5, 0x12] + movs r1, 0x2 + bl CopyWindowToVram + add sp, 0xC + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81CBF60 + + thumb_func_start sub_81CBFC4 +sub_81CBFC4: @ 81CBFC4 + push {r4,lr} + adds r4, r0, 0 + bl IsDma3ManagerBusyWithBgCopy + lsls r0, 24 + cmp r0, 0 + beq _081CBFD6 + movs r0, 0x1 + b _081CBFE8 +_081CBFD6: + bl sub_81CB01C + adds r1, r0, 0 + lsls r1, 16 + lsrs r1, 16 + adds r0, r4, 0 + bl sub_81CC2F0 + movs r0, 0 +_081CBFE8: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_81CBFC4 + + thumb_func_start sub_81CBFF0 +sub_81CBFF0: @ 81CBFF0 + push {r4,lr} + adds r4, r0, 0 + bl sub_81CC330 + adds r0, r4, 0 + bl sub_81CBDC0 + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_81CBFF0 + + thumb_func_start sub_81CC004 +sub_81CC004: @ 81CC004 + push {lr} + bl IsDma3ManagerBusyWithBgCopy + lsls r0, 24 + lsrs r0, 24 + pop {r1} + bx r1 + thumb_func_end sub_81CC004 + + thumb_func_start sub_81CC014 +sub_81CC014: @ 81CC014 + push {r4,lr} + adds r4, r0, 0 + bl sub_81CC330 + ldrb r0, [r4, 0x12] + movs r1, 0x11 + bl FillWindowPixelBuffer + ldrb r0, [r4, 0x12] + movs r1, 0x2 + bl CopyWindowToVram + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_81CC014 + + thumb_func_start sub_81CC034 +sub_81CC034: @ 81CC034 + push {r4,lr} + adds r4, r0, 0 + ldr r0, =gUnknown_08622808 + bl AddWindow + strh r0, [r4, 0x14] + ldrh r0, [r4, 0x14] + movs r1, 0x1 + movs r2, 0x4 + bl sub_8197184 + bl sub_81C7B40 + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81CC034 + + thumb_func_start sub_81CC058 +sub_81CC058: @ 81CC058 + push {r4,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x14] + movs r1, 0x1 + movs r2, 0x4 + bl sub_8197184 + ldrh r0, [r4, 0x14] + movs r1, 0x1 + movs r2, 0x4 + bl sub_81971C4 + ldrb r0, [r4, 0x14] + movs r1, 0x11 + bl FillWindowPixelBuffer + ldrb r0, [r4, 0x14] + bl PutWindowTilemap + ldrb r0, [r4, 0x14] + movs r1, 0x3 + bl CopyWindowToVram + bl PauseSpinningNavgearSprite + movs r2, 0 + movs r1, 0x18 + strh r1, [r0, 0x20] + movs r1, 0x70 + strh r1, [r0, 0x22] + strh r2, [r0, 0x26] + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_81CC058 + + thumb_func_start sub_81CC09C +sub_81CC09C: @ 81CC09C + push {r4,lr} + adds r4, r0, 0 + ldrb r0, [r4, 0x14] + movs r1, 0x1 + movs r2, 0x40 + bl LoadUserWindowBorderGfx + ldrb r0, [r4, 0x14] + movs r1, 0x1 + movs r2, 0x4 + bl DrawTextBorderOuter + ldrb r0, [r4, 0x14] + movs r1, 0x11 + bl FillWindowPixelBuffer + ldrb r0, [r4, 0x14] + bl PutWindowTilemap + ldrb r0, [r4, 0x14] + movs r1, 0x3 + bl CopyWindowToVram + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_81CC09C + + thumb_func_start sub_81CC0D0 +sub_81CC0D0: @ 81CC0D0 + push {lr} + bl IsDma3ManagerBusyWithBgCopy + lsls r0, 24 + lsrs r0, 24 + pop {r1} + bx r1 + thumb_func_end sub_81CC0D0 + + thumb_func_start sub_81CC0E0 +sub_81CC0E0: @ 81CC0E0 + push {lr} + sub sp, 0xC + ldrb r0, [r0, 0x14] + ldr r2, =gUnknown_086227F4 + movs r1, 0x1 + str r1, [sp] + str r1, [sp, 0x4] + movs r1, 0 + str r1, [sp, 0x8] + movs r1, 0x1 + movs r3, 0x20 + bl AddTextPrinterParameterized + add sp, 0xC + pop {r0} + bx r0 + .pool + thumb_func_end sub_81CC0E0 + + thumb_func_start sub_81CC104 +sub_81CC104: @ 81CC104 + push {r4,lr} + adds r4, r0, 0 + bl RunTextPrinters + ldrb r0, [r4, 0x14] + bl IsTextPrinterActive + lsls r0, 16 + lsrs r0, 16 + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_81CC104 + + thumb_func_start sub_81CC11C +sub_81CC11C: @ 81CC11C + push {lr} + sub sp, 0xC + ldrb r0, [r0, 0x14] + ldr r2, =gText_TrainerCloseBy + movs r1, 0x1 + str r1, [sp] + str r1, [sp, 0x4] + movs r1, 0 + str r1, [sp, 0x8] + movs r1, 0x1 + movs r3, 0 + bl AddTextPrinterParameterized + add sp, 0xC + pop {r0} + bx r0 + .pool + thumb_func_end sub_81CC11C + + thumb_func_start sub_81CC140 +sub_81CC140: @ 81CC140 + push {r4,lr} + adds r4, r0, 0 + bl RunTextPrinters + ldrb r0, [r4, 0x14] + bl IsTextPrinterActive + lsls r0, 16 + lsrs r0, 16 + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_81CC140 + + thumb_func_start sub_81CC158 +sub_81CC158: @ 81CC158 + push {r4,r5,lr} + sub sp, 0xC + adds r4, r0, 0 + bl GetSelectedMatchCall + adds r1, r4, 0 + adds r1, 0xF + bl sub_81CAF78 + adds r5, r0, 0 + bl GetPlayerTextSpeedDelay + lsls r0, 24 + lsrs r0, 24 + ldrb r2, [r4, 0x14] + movs r1, 0x1 + str r1, [sp] + str r0, [sp, 0x4] + movs r0, 0 + str r0, [sp, 0x8] + adds r0, r2, 0 + adds r2, r5, 0 + movs r3, 0x20 + bl AddTextPrinterParameterized + add sp, 0xC + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_81CC158 + + thumb_func_start sub_81CC194 +sub_81CC194: @ 81CC194 + push {r4,lr} + adds r4, r0, 0 + ldr r0, =gMain + ldrh r1, [r0, 0x2C] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _081CC1B8 + ldr r0, =gTextFlags + ldrb r1, [r0] + movs r2, 0x1 + orrs r1, r2 + strb r1, [r0] + b _081CC1C4 + .pool +_081CC1B8: + ldr r2, =gTextFlags + ldrb r1, [r2] + movs r0, 0x2 + negs r0, r0 + ands r0, r1 + strb r0, [r2] +_081CC1C4: + bl RunTextPrinters + ldrb r0, [r4, 0x14] + bl IsTextPrinterActive + lsls r0, 16 + lsrs r0, 16 + pop {r4} + pop {r1} + bx r1 + .pool + thumb_func_end sub_81CC194 + + thumb_func_start sub_81CC1DC +sub_81CC1DC: @ 81CC1DC + push {lr} + sub sp, 0x8 + bl ResumeSpinningNavgearSprite + movs r0, 0x20 + str r0, [sp] + movs r0, 0x14 + str r0, [sp, 0x4] + movs r0, 0x1 + movs r1, 0 + movs r2, 0 + movs r3, 0 + bl FillBgTilemapBufferRect_Palette0 + movs r0, 0x1 + bl CopyBgTilemapBufferToVram + add sp, 0x8 + pop {r0} + bx r0 + thumb_func_end sub_81CC1DC + + thumb_func_start sub_81CC204 +sub_81CC204: @ 81CC204 + push {lr} + bl IsDma3ManagerBusyWithBgCopy + lsls r0, 24 + lsrs r0, 24 + pop {r1} + bx r1 + thumb_func_end sub_81CC204 + + thumb_func_start sub_81CC214 +sub_81CC214: @ 81CC214 + push {r4-r6,lr} + sub sp, 0x8 + movs r0, 0x6 + bl GetSubstructPtr + adds r6, r0, 0 + movs r5, 0 + ldr r4, =gUnknown_08622810 +_081CC224: + adds r0, r4, 0 + bl LoadCompressedSpriteSheet + adds r4, 0x8 + adds r5, 0x1 + cmp r5, 0 + beq _081CC224 + ldr r0, =gUnknown_08622818 + bl Pokenav_AllocAndLoadPalettes + movs r0, 0 + str r0, [r6, 0x1C] + ldr r1, =0x00001828 + adds r0, r6, r1 + str r0, [sp] + ldr r1, =0xffff0000 + ldr r0, [sp, 0x4] + ands r0, r1 + movs r1, 0x80 + lsls r1, 4 + orrs r0, r1 + ldr r1, =0x0000ffff + ands r0, r1 + movs r1, 0x80 + lsls r1, 12 + orrs r0, r1 + str r0, [sp, 0x4] + mov r0, sp + bl LoadSpriteSheet + ldr r2, =0x00001824 + adds r1, r6, r2 + lsls r0, 16 + lsrs r0, 11 + ldr r2, =0x06010000 + adds r0, r2 + str r0, [r1] + movs r0, 0xD + bl AllocSpritePalette + lsls r0, 24 + lsrs r0, 20 + movs r1, 0x80 + lsls r1, 1 + adds r0, r1 + strh r0, [r6, 0x1A] + bl sub_81CC370 + str r0, [r6, 0x20] + adds r0, 0x3E + ldrb r1, [r0] + movs r2, 0x4 + orrs r1, r2 + strb r1, [r0] + add sp, 0x8 + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81CC214 + + thumb_func_start sub_81CC2B4 +sub_81CC2B4: @ 81CC2B4 + push {r4,lr} + movs r0, 0x6 + bl GetSubstructPtr + adds r4, r0, 0 + ldr r0, [r4, 0x1C] + cmp r0, 0 + beq _081CC2C8 + bl DestroySprite +_081CC2C8: + ldr r0, [r4, 0x20] + cmp r0, 0 + beq _081CC2D2 + bl DestroySprite +_081CC2D2: + movs r0, 0x8 + bl FreeSpriteTilesByTag + movs r0, 0x7 + bl FreeSpriteTilesByTag + movs r0, 0xC + bl FreeSpritePaletteByTag + movs r0, 0xD + bl FreeSpritePaletteByTag + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_81CC2B4 + + thumb_func_start sub_81CC2F0 +sub_81CC2F0: @ 81CC2F0 + push {r4,r5,lr} + adds r4, r0, 0 + adds r5, r1, 0 + ldr r0, [r4, 0x1C] + cmp r0, 0 + bne _081CC320 + ldr r0, =gUnknown_08622830 + movs r1, 0x4 + movs r2, 0x50 + movs r3, 0x5 + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + ldr r0, =gSprites + adds r1, r0 + str r1, [r4, 0x1C] + adds r0, r4, 0 + adds r1, r5, 0 + bl sub_81CC344 +_081CC320: + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81CC2F0 + + thumb_func_start sub_81CC330 +sub_81CC330: @ 81CC330 + push {r4,lr} + adds r4, r0, 0 + ldr r0, [r4, 0x1C] + bl DestroySprite + movs r0, 0 + str r0, [r4, 0x1C] + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_81CC330 + + thumb_func_start sub_81CC344 +sub_81CC344: @ 81CC344 + ldr r0, [r0, 0x1C] + lsls r1, 4 + strh r1, [r0, 0x26] + bx lr + thumb_func_end sub_81CC344 + + thumb_func_start sub_81CC34C +sub_81CC34C: @ 81CC34C + push {lr} + adds r2, r0, 0 + ldrh r0, [r2, 0x2E] + adds r0, 0x1 + strh r0, [r2, 0x2E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x3 + ble _081CC36C + movs r0, 0 + strh r0, [r2, 0x2E] + ldrh r0, [r2, 0x24] + adds r0, 0x1 + movs r1, 0x7 + ands r0, r1 + strh r0, [r2, 0x24] +_081CC36C: + pop {r0} + bx r0 + thumb_func_end sub_81CC34C + + thumb_func_start sub_81CC370 +sub_81CC370: @ 81CC370 + push {lr} + ldr r0, =gUnknown_08622850 + movs r1, 0x2C + movs r2, 0x68 + movs r3, 0x6 + bl CreateSprite + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, =gSprites + adds r0, r1 + pop {r1} + bx r1 + .pool + thumb_func_end sub_81CC370 + + thumb_func_start sub_81CC39C +sub_81CC39C: @ 81CC39C + push {r4-r7,lr} + adds r7, r0, 0 + bl GetSelectedMatchCall + bl sub_81CAF04 + cmp r0, 0 + blt _081CC400 + lsls r4, r0, 3 + ldr r0, =gTrainerFrontPicTable + adds r0, r4, r0 + ldr r1, =0x00001828 + adds r5, r7, r1 + adds r1, r5, 0 + movs r2, 0 + bl DecompressPicFromTable + ldr r0, =gTrainerFrontPicPaletteTable + adds r4, r0 + ldr r0, [r4] + ldr r1, =0x00002028 + adds r6, r7, r1 + adds r1, r6, 0 + bl LZ77UnCompWram + ldr r1, =0x00001824 + adds r0, r7, r1 + ldr r1, [r0] + movs r2, 0x80 + lsls r2, 4 + adds r0, r5, 0 + movs r3, 0x1 + bl RequestDma3Copy + adds r4, r0, 0 + lsls r4, 16 + lsrs r4, 16 + ldrh r1, [r7, 0x1A] + adds r0, r6, 0 + movs r2, 0x20 + bl LoadPalette + ldr r1, [r7, 0x20] + movs r0, 0 + strh r0, [r1, 0x2E] + ldr r0, [r7, 0x20] + strh r4, [r0, 0x3C] + ldr r1, [r7, 0x20] + ldr r0, =sub_81CC440 + str r0, [r1, 0x1C] +_081CC400: + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81CC39C + + thumb_func_start sub_81CC420 +sub_81CC420: @ 81CC420 + ldr r1, [r0, 0x20] + ldr r0, =sub_81CC4A4 + str r0, [r1, 0x1C] + bx lr + .pool + thumb_func_end sub_81CC420 + + thumb_func_start sub_81CC42C +sub_81CC42C: @ 81CC42C + ldr r0, [r0, 0x20] + ldr r1, [r0, 0x1C] + ldr r0, =SpriteCallbackDummy + eors r1, r0 + negs r0, r1 + orrs r0, r1 + lsrs r0, 31 + bx lr + .pool + thumb_func_end sub_81CC42C + + thumb_func_start sub_81CC440 +sub_81CC440: @ 81CC440 + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x2E + ldrsh r0, [r4, r1] + cmp r0, 0 + beq _081CC452 + cmp r0, 0x1 + beq _081CC484 + b _081CC498 +_081CC452: + movs r1, 0x3C + ldrsh r0, [r4, r1] + bl CheckForSpaceForDma3Request + lsls r0, 16 + asrs r0, 16 + movs r1, 0x1 + negs r1, r1 + cmp r0, r1 + beq _081CC498 + ldr r0, =0x0000ffb0 + strh r0, [r4, 0x24] + adds r2, r4, 0 + adds r2, 0x3E + ldrb r1, [r2] + movs r0, 0x5 + negs r0, r0 + ands r0, r1 + strb r0, [r2] + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x2E] + b _081CC498 + .pool +_081CC484: + ldrh r0, [r4, 0x24] + adds r0, 0x8 + strh r0, [r4, 0x24] + lsls r0, 16 + cmp r0, 0 + blt _081CC498 + movs r0, 0 + strh r0, [r4, 0x24] + ldr r0, =SpriteCallbackDummy + str r0, [r4, 0x1C] +_081CC498: + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81CC440 + + thumb_func_start sub_81CC4A4 +sub_81CC4A4: @ 81CC4A4 + push {lr} + adds r3, r0, 0 + ldrh r0, [r3, 0x24] + subs r0, 0x8 + strh r0, [r3, 0x24] + lsls r0, 16 + asrs r0, 16 + movs r1, 0x50 + negs r1, r1 + cmp r0, r1 + bgt _081CC4CA + adds r2, r3, 0 + adds r2, 0x3E + ldrb r0, [r2] + movs r1, 0x4 + orrs r0, r1 + strb r0, [r2] + ldr r0, =SpriteCallbackDummy + str r0, [r3, 0x1C] +_081CC4CA: + pop {r0} + bx r0 + .pool + thumb_func_end sub_81CC4A4 + + .align 2, 0 @ Don't pad with nop. diff --git a/asm/pokenav_unk_5.s b/asm/pokenav_unk_5.s new file mode 100644 index 000000000..add5fb189 --- /dev/null +++ b/asm/pokenav_unk_5.s @@ -0,0 +1,1396 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .syntax unified + +@ File centered around AllocSubstruct(3) + + thumb_func_start sub_81CC4D4 +sub_81CC4D4: @ 81CC4D4 + push {r4,lr} + movs r0, 0x3 + movs r1, 0x14 + bl AllocSubstruct + adds r4, r0, 0 + cmp r4, 0 + beq _081CC4F0 + ldr r1, =0x00000884 + movs r0, 0x10 + bl AllocSubstruct + cmp r0, 0 + bne _081CC4F8 +_081CC4F0: + movs r0, 0 + b _081CC51A + .pool +_081CC4F8: + ldr r0, =gMapHeader + ldrb r0, [r0, 0x14] + bl sub_8124668 + str r0, [r4, 0xC] + cmp r0, 0 + bne _081CC514 + ldr r0, =sub_81CC568 + b _081CC516 + .pool +_081CC514: + ldr r0, =sub_81CC5B4 +_081CC516: + str r0, [r4, 0x10] + movs r0, 0x1 +_081CC51A: + pop {r4} + pop {r1} + bx r1 + .pool + thumb_func_end sub_81CC4D4 + + thumb_func_start sub_81CC524 +sub_81CC524: @ 81CC524 + push {lr} + bl sub_8124658 + ldr r1, =gSaveBlock2Ptr + ldr r3, [r1] + movs r1, 0x1 + ands r1, r0 + lsls r1, 3 + ldrb r2, [r3, 0x15] + movs r0, 0x9 + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3, 0x15] + movs r0, 0x10 + bl FreePokenavSubstruct + movs r0, 0x3 + bl FreePokenavSubstruct + pop {r0} + bx r0 + .pool + thumb_func_end sub_81CC524 + + thumb_func_start sub_81CC554 +sub_81CC554: @ 81CC554 + push {lr} + movs r0, 0x3 + bl GetSubstructPtr + ldr r1, [r0, 0x10] + bl _call_via_r1 + pop {r1} + bx r1 + thumb_func_end sub_81CC554 + + thumb_func_start sub_81CC568 +sub_81CC568: @ 81CC568 + push {r4,lr} + adds r4, r0, 0 + bl sub_81230AC + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x4 + beq _081CC58C + cmp r0, 0x4 + bgt _081CC582 + cmp r0, 0x3 + beq _081CC588 + b _081CC5AC +_081CC582: + cmp r0, 0x5 + beq _081CC59E + b _081CC5AC +_081CC588: + movs r0, 0x1 + b _081CC5AE +_081CC58C: + bl sub_8124658 + lsls r0, 24 + cmp r0, 0 + bne _081CC59A + movs r0, 0x3 + b _081CC5AE +_081CC59A: + movs r0, 0x2 + b _081CC5AE +_081CC59E: + ldr r0, =sub_81CC5DC + str r0, [r4, 0x10] + movs r0, 0x4 + b _081CC5AE + .pool +_081CC5AC: + movs r0, 0 +_081CC5AE: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_81CC568 + + thumb_func_start sub_81CC5B4 +sub_81CC5B4: @ 81CC5B4 + push {lr} + adds r2, r0, 0 + ldr r0, =gMain + ldrh r1, [r0, 0x2E] + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + bne _081CC5CC + movs r0, 0 + b _081CC5D2 + .pool +_081CC5CC: + ldr r0, =sub_81CC5DC + str r0, [r2, 0x10] + movs r0, 0x4 +_081CC5D2: + pop {r1} + bx r1 + .pool + thumb_func_end sub_81CC5B4 + + thumb_func_start sub_81CC5DC +sub_81CC5DC: @ 81CC5DC + ldr r0, =0x000186a1 + bx lr + .pool + thumb_func_end sub_81CC5DC + + thumb_func_start sub_81CC5E4 +sub_81CC5E4: @ 81CC5E4 + push {lr} + movs r0, 0x3 + bl GetSubstructPtr + ldr r0, [r0, 0xC] + pop {r1} + bx r1 + thumb_func_end sub_81CC5E4 + + thumb_func_start sub_81CC5F4 +sub_81CC5F4: @ 81CC5F4 + push {r4,lr} + ldr r1, =0x00001948 + movs r0, 0x4 + bl AllocSubstruct + adds r4, r0, 0 + cmp r4, 0 + beq _081CC624 + ldr r0, =sub_81CC6F4 + movs r1, 0x1 + bl CreateLoopedTask + str r0, [r4, 0x4] + ldr r0, =sub_81CC6BC + str r0, [r4] + movs r0, 0x1 + b _081CC626 + .pool +_081CC624: + movs r0, 0 +_081CC626: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_81CC5F4 + + thumb_func_start sub_81CC62C +sub_81CC62C: @ 81CC62C + push {r4,r5,lr} + adds r4, r0, 0 + movs r0, 0x4 + bl GetSubstructPtr + adds r5, r0, 0 + ldr r0, =gUnknown_086230E4 + lsls r4, 2 + adds r4, r0 + ldr r0, [r4] + movs r1, 0x1 + bl CreateLoopedTask + str r0, [r5, 0x4] + ldr r0, =sub_81CC6BC + str r0, [r5] + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81CC62C + + thumb_func_start sub_81CC65C +sub_81CC65C: @ 81CC65C + push {lr} + movs r0, 0x4 + bl GetSubstructPtr + ldr r0, [r0] + bl _call_via_r0 + pop {r1} + bx r1 + thumb_func_end sub_81CC65C + + thumb_func_start sub_81CC670 +sub_81CC670: @ 81CC670 + push {r4,lr} + movs r0, 0x4 + bl GetSubstructPtr + adds r4, r0, 0 + bl FreeRegionMapIconResources + bl sub_81CC9EC + ldrb r0, [r4, 0x8] + bl RemoveWindow + movs r0, 0x10 + bl FreePokenavSubstruct + movs r0, 0x4 + bl FreePokenavSubstruct + bl SetPokenavVBlankCallback + movs r0, 0 + bl SetBgMode + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_81CC670 + + thumb_func_start sub_81CC6A4 +sub_81CC6A4: @ 81CC6A4 + push {lr} + bl TransferPlttBuffer + bl LoadOam + bl ProcessSpriteCopyRequests + bl UpdateRegionMapVideoRegs + pop {r0} + bx r0 + thumb_func_end sub_81CC6A4 + + thumb_func_start sub_81CC6BC +sub_81CC6BC: @ 81CC6BC + push {lr} + movs r0, 0x4 + bl GetSubstructPtr + ldr r0, [r0, 0x4] + bl IsLoopedTaskActive + pop {r1} + bx r1 + thumb_func_end sub_81CC6BC + + thumb_func_start sub_81CC6D0 +sub_81CC6D0: @ 81CC6D0 + push {lr} + bl sub_81CC5E4 + cmp r0, 0 + bne _081CC6EC + ldr r0, =gSaveBlock2Ptr + ldr r0, [r0] + ldrb r0, [r0, 0x15] + lsrs r0, 3 + movs r1, 0x1 + ands r0, r1 + b _081CC6EE + .pool +_081CC6EC: + movs r0, 0 +_081CC6EE: + pop {r1} + bx r1 + thumb_func_end sub_81CC6D0 + + thumb_func_start sub_81CC6F4 +sub_81CC6F4: @ 81CC6F4 + push {r4,r5,lr} + adds r4, r0, 0 + movs r0, 0x4 + bl GetSubstructPtr + adds r5, r0, 0 + cmp r4, 0x7 + bls _081CC706 + b _081CC83E +_081CC706: + lsls r0, r4, 2 + ldr r1, =_081CC714 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .pool + .align 2, 0 +_081CC714: + .4byte _081CC734 + .4byte _081CC784 + .4byte _081CC7B6 + .4byte _081CC7BE + .4byte _081CC7CE + .4byte _081CC7E2 + .4byte _081CC804 + .4byte _081CC82A +_081CC734: + movs r0, 0 + bl SetVBlankCallback_ + movs r0, 0x1 + bl HideBg + movs r0, 0x2 + bl HideBg + movs r0, 0x3 + bl HideBg + movs r0, 0x1 + bl SetBgMode + ldr r4, =gUnknown_086230D8 + adds r0, r4, 0 + movs r1, 0x2 + bl InitBgTemplates + movs r0, 0x10 + bl GetSubstructPtr + adds r5, r0, 0 + adds r4, 0x4 + bl sub_81CC6D0 + adds r2, r0, 0 + lsls r2, 24 + lsrs r2, 24 + adds r0, r5, 0 + adds r1, r4, 0 + bl sub_8122CF8 + bl sub_81CC9C0 +_081CC77C: + movs r0, 0 + b _081CC840 + .pool +_081CC784: + bl sub_8122DB0 + lsls r0, 24 + cmp r0, 0 + bne _081CC83A + bl sub_81CC5E4 + cmp r0, 0 + bne _081CC7AC + movs r0, 0x4 + movs r1, 0x9 + bl CreateRegionMapPlayerIcon + movs r0, 0x5 + movs r1, 0xA + bl CreateRegionMapCursor + bl sub_812454C + b _081CC77C +_081CC7AC: + movs r0, 0 + movs r1, 0x6 + bl sub_8123030 + b _081CC77C +_081CC7B6: + bl sub_81CCD10 +_081CC7BA: + movs r0, 0x1 + b _081CC840 +_081CC7BE: + bl sub_81CCD24 + cmp r0, 0 + bne _081CC83A + adds r0, r5, 0 + bl sub_81CCA1C + b _081CC7BA +_081CC7CE: + bl sub_81CCAFC + cmp r0, 0 + bne _081CC83A + adds r0, r5, 0 + bl sub_81CCB0C + bl sub_81C7B40 + b _081CC77C +_081CC7E2: + adds r0, r5, 0 + bl sub_81CCC4C + cmp r0, 0 + bne _081CC83A + movs r0, 0x1 + bl ShowBg + movs r0, 0x2 + bl ShowBg + ldr r0, =sub_81CC6A4 + bl SetVBlankCallback_ + b _081CC77C + .pool +_081CC804: + bl sub_81CC6D0 + lsls r0, 24 + movs r4, 0x5 + cmp r0, 0 + bne _081CC812 + movs r4, 0x4 +_081CC812: + adds r0, r4, 0 + bl LoadLeftHeaderGfxForIndex + adds r0, r4, 0 + movs r1, 0x1 + movs r2, 0x1 + bl sub_81C7FA0 + movs r0, 0x1 + bl sub_81C7AC0 + b _081CC77C +_081CC82A: + bl IsPaletteFadeActive + cmp r0, 0 + bne _081CC83A + bl sub_81C8010 + cmp r0, 0 + beq _081CC7BA +_081CC83A: + movs r0, 0x2 + b _081CC840 +_081CC83E: + movs r0, 0x4 +_081CC840: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_81CC6F4 + + thumb_func_start sub_81CC848 +sub_81CC848: @ 81CC848 + push {r4,lr} + adds r4, r0, 0 + movs r0, 0x4 + bl GetSubstructPtr + cmp r4, 0 + beq _081CC85C + cmp r4, 0x1 + beq _081CC864 + b _081CC870 +_081CC85C: + bl sub_81CCB0C + movs r0, 0 + b _081CC872 +_081CC864: + bl sub_81CCC4C + cmp r0, 0 + beq _081CC870 + movs r0, 0x2 + b _081CC872 +_081CC870: + movs r0, 0x4 +_081CC872: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_81CC848 + + thumb_func_start sub_81CC878 +sub_81CC878: @ 81CC878 + push {lr} + cmp r0, 0x1 + beq _081CC8A2 + cmp r0, 0x1 + bgt _081CC888 + cmp r0, 0 + beq _081CC88E + b _081CC8D0 +_081CC888: + cmp r0, 0x2 + beq _081CC8BE + b _081CC8D0 +_081CC88E: + movs r0, 0x5 + bl PlaySE + movs r0, 0 + bl sub_81CCC5C + bl sub_8123418 + movs r0, 0 + b _081CC8D2 +_081CC8A2: + bl sub_8123514 + lsls r0, 24 + cmp r0, 0 + bne _081CC8C6 + bl sub_81CCC88 + cmp r0, 0 + bne _081CC8C6 + movs r0, 0x1 + bl sub_81C7BA4 + movs r0, 0 + b _081CC8D2 +_081CC8BE: + bl IsDma3ManagerBusyWithBgCopy_ + cmp r0, 0 + beq _081CC8CA +_081CC8C6: + movs r0, 0x2 + b _081CC8D2 +_081CC8CA: + movs r0, 0x4 + bl sub_81C7E14 +_081CC8D0: + movs r0, 0x4 +_081CC8D2: + pop {r1} + bx r1 + thumb_func_end sub_81CC878 + + thumb_func_start sub_81CC8D8 +sub_81CC8D8: @ 81CC8D8 + push {r4,r5,lr} + adds r4, r0, 0 + movs r0, 0x4 + bl GetSubstructPtr + adds r5, r0, 0 + cmp r4, 0x1 + beq _081CC90C + cmp r4, 0x1 + bgt _081CC8F2 + cmp r4, 0 + beq _081CC8FC + b _081CC952 +_081CC8F2: + cmp r4, 0x2 + beq _081CC924 + cmp r4, 0x3 + beq _081CC940 + b _081CC952 +_081CC8FC: + movs r0, 0x5 + bl PlaySE + adds r0, r5, 0 + bl sub_81CCB0C + movs r0, 0 + b _081CC954 +_081CC90C: + adds r0, r5, 0 + bl sub_81CCC4C + cmp r0, 0 + bne _081CC948 + movs r0, 0x1 + bl sub_81CCC5C + bl sub_8123418 + movs r0, 0 + b _081CC954 +_081CC924: + bl sub_8123514 + lsls r0, 24 + cmp r0, 0 + bne _081CC948 + bl sub_81CCC88 + cmp r0, 0 + bne _081CC948 + movs r0, 0x2 + bl sub_81C7BA4 + movs r0, 0 + b _081CC954 +_081CC940: + bl IsDma3ManagerBusyWithBgCopy_ + cmp r0, 0 + beq _081CC94C +_081CC948: + movs r0, 0x2 + b _081CC954 +_081CC94C: + movs r0, 0x5 + bl sub_81C7E14 +_081CC952: + movs r0, 0x4 +_081CC954: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_81CC8D8 + + thumb_func_start sub_81CC95C +sub_81CC95C: @ 81CC95C + push {lr} + cmp r0, 0x1 + beq _081CC982 + cmp r0, 0x1 + bgt _081CC96C + cmp r0, 0 + beq _081CC972 + b _081CC9B8 +_081CC96C: + cmp r0, 0x2 + beq _081CC996 + b _081CC9B8 +_081CC972: + movs r0, 0x5 + bl PlaySE + movs r0, 0 + bl sub_81C7AC0 + movs r0, 0 + b _081CC9BA +_081CC982: + bl IsPaletteFadeActive + cmp r0, 0 + bne _081CC99E + bl sub_81C7FDC + bl sub_81C78A0 + movs r0, 0 + b _081CC9BA +_081CC996: + bl MainMenuLoopedTaskIsBusy + cmp r0, 0 + beq _081CC9A2 +_081CC99E: + movs r0, 0x2 + b _081CC9BA +_081CC9A2: + movs r0, 0x1 + bl HideBg + movs r0, 0x2 + bl HideBg + movs r0, 0x3 + bl HideBg + movs r0, 0 + b _081CC9BA +_081CC9B8: + movs r0, 0x4 +_081CC9BA: + pop {r1} + bx r1 + thumb_func_end sub_81CC95C + + thumb_func_start sub_81CC9C0 +sub_81CC9C0: @ 81CC9C0 + push {r4,r5,lr} + movs r5, 0 + ldr r4, =gUnknown_086230F8 +_081CC9C6: + adds r0, r4, 0 + bl LoadCompressedSpriteSheet + adds r4, 0x8 + adds r5, 0x1 + cmp r5, 0 + beq _081CC9C6 + ldr r0, =gUnknown_08623100 + bl Pokenav_AllocAndLoadPalettes + bl sub_81CCE58 + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81CC9C0 + + thumb_func_start sub_81CC9EC +sub_81CC9EC: @ 81CC9EC + push {r4,r5,lr} + movs r0, 0x4 + bl GetSubstructPtr + adds r4, r0, 0 + movs r0, 0x6 + bl FreeSpriteTilesByTag + movs r0, 0xB + bl FreeSpritePaletteByTag + adds r5, r4, 0 + adds r5, 0xC + movs r4, 0x2 +_081CCA08: + ldm r5!, {r0} + bl DestroySprite + subs r4, 0x1 + cmp r4, 0 + bge _081CCA08 + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_81CC9EC + + thumb_func_start sub_81CCA1C +sub_81CCA1C: @ 81CCA1C + push {r4,r5,lr} + sub sp, 0x8 + adds r5, r0, 0 + movs r0, 0x1 + movs r1, 0 + movs r2, 0x40 + movs r3, 0x1 + bl sub_8199DF0 + movs r0, 0x1 + movs r1, 0x11 + movs r2, 0x41 + movs r3, 0x1 + bl sub_8199DF0 + add r1, sp, 0x4 + movs r2, 0x82 + lsls r2, 5 + adds r0, r2, 0 + strh r0, [r1] + adds r4, r5, 0 + adds r4, 0x18 + ldr r2, =0x01000400 + adds r0, r1, 0 + adds r1, r4, 0 + bl CpuSet + movs r0, 0x1 + adds r1, r4, 0 + bl SetBgTilemapBuffer + ldr r0, =gUnknown_08623110 + bl AddWindow + movs r4, 0 + strh r0, [r5, 0x8] + lsls r0, 24 + lsrs r0, 24 + movs r1, 0x42 + movs r2, 0x40 + bl LoadUserWindowBorderGfx_ + ldrb r0, [r5, 0x8] + movs r1, 0x42 + movs r2, 0x4 + bl DrawTextBorderOuter + ldr r1, =gUnknown_08622888 + str r4, [sp] + movs r0, 0x1 + movs r2, 0 + movs r3, 0 + bl decompress_and_copy_tile_data_to_vram + ldrb r0, [r5, 0x8] + movs r1, 0x11 + bl FillWindowPixelBuffer + ldrb r0, [r5, 0x8] + bl PutWindowTilemap + ldrb r0, [r5, 0x8] + movs r1, 0x3 + bl CopyWindowToVram + ldr r0, =gUnknown_08622868 + movs r1, 0x10 + movs r2, 0x20 + bl CopyPaletteIntoBufferUnfaded + ldr r0, =gHoennMapZoomIcons_Pal + movs r1, 0x30 + movs r2, 0x20 + bl CopyPaletteIntoBufferUnfaded + bl sub_8124658 + lsls r0, 24 + cmp r0, 0 + bne _081CCAE0 + ldr r1, =0xffffa000 + movs r0, 0x1 + movs r2, 0 + bl ChangeBgY + b _081CCAEA + .pool +_081CCAE0: + movs r0, 0x1 + movs r1, 0 + movs r2, 0 + bl ChangeBgY +_081CCAEA: + movs r0, 0x1 + movs r1, 0 + movs r2, 0 + bl ChangeBgX + add sp, 0x8 + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_81CCA1C + + thumb_func_start sub_81CCAFC +sub_81CCAFC: @ 81CCAFC + push {lr} + bl free_temp_tile_data_buffers_if_possible + lsls r0, 24 + lsrs r0, 24 + pop {r1} + bx r1 + thumb_func_end sub_81CCAFC + + thumb_func_start sub_81CCB0C +sub_81CCB0C: @ 81CCB0C + push {r4,r5,lr} + sub sp, 0xC + adds r4, r0, 0 + movs r0, 0x10 + bl GetSubstructPtr + adds r5, r0, 0 + ldrb r0, [r5, 0x2] + cmp r0, 0x4 + bls _081CCB22 + b _081CCC40 +_081CCB22: + lsls r0, 2 + ldr r1, =_081CCB30 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .pool + .align 2, 0 +_081CCB30: + .4byte _081CCC1C + .4byte _081CCBDC + .4byte _081CCB44 + .4byte _081CCB8E + .4byte _081CCBDC +_081CCB44: + ldrb r0, [r4, 0x8] + movs r1, 0x11 + bl FillWindowPixelBuffer + ldrb r0, [r4, 0x8] + movs r1, 0x2 + str r1, [sp] + movs r1, 0 + movs r2, 0 + movs r3, 0xC + bl PutWindowRectTilemap + ldrb r0, [r4, 0x8] + adds r2, r5, 0x4 + movs r1, 0x1 + str r1, [sp] + movs r1, 0xFF + str r1, [sp, 0x4] + movs r1, 0 + str r1, [sp, 0x8] + movs r1, 0x7 + movs r3, 0 + bl AddTextPrinterParameterized + ldrh r1, [r5] + ldrb r2, [r5, 0x3] + adds r0, r4, 0 + bl sub_81CCD70 + ldrb r0, [r4, 0x8] + movs r1, 0x3 + bl CopyWindowToVram + movs r0, 0 + bl sub_81CCFA4 + b _081CCC40 +_081CCB8E: + ldrb r0, [r4, 0x8] + movs r1, 0x11 + bl FillWindowPixelBuffer + ldrb r0, [r4, 0x8] + movs r1, 0x2 + str r1, [sp] + movs r1, 0 + movs r2, 0 + movs r3, 0xC + bl PutWindowRectTilemap + ldrb r0, [r4, 0x8] + adds r2, r5, 0x4 + movs r1, 0x1 + str r1, [sp] + movs r1, 0xFF + str r1, [sp, 0x4] + movs r1, 0 + str r1, [sp, 0x8] + movs r1, 0x7 + movs r3, 0 + bl AddTextPrinterParameterized + ldr r1, =0x00001041 + movs r0, 0xC + str r0, [sp] + movs r0, 0xB + str r0, [sp, 0x4] + movs r0, 0x11 + str r0, [sp, 0x8] + movs r0, 0x1 + movs r2, 0x11 + movs r3, 0x6 + bl FillBgTilemapBufferRect + b _081CCC0C + .pool +_081CCBDC: + ldrb r0, [r4, 0x8] + movs r1, 0x11 + bl FillWindowPixelBuffer + ldrb r0, [r4, 0x8] + bl PutWindowTilemap + ldrb r0, [r4, 0x8] + adds r2, r5, 0x4 + movs r1, 0x1 + str r1, [sp] + movs r1, 0xFF + str r1, [sp, 0x4] + movs r1, 0 + str r1, [sp, 0x8] + movs r1, 0x7 + movs r3, 0 + bl AddTextPrinterParameterized + ldrh r1, [r5] + ldrb r2, [r5, 0x3] + adds r0, r4, 0 + bl sub_81CCDE8 +_081CCC0C: + ldrb r0, [r4, 0x8] + movs r1, 0x3 + bl CopyWindowToVram + movs r0, 0x1 + bl sub_81CCFA4 + b _081CCC40 +_081CCC1C: + ldr r1, =0x00001041 + movs r0, 0xC + str r0, [sp] + movs r0, 0xD + str r0, [sp, 0x4] + movs r0, 0x11 + str r0, [sp, 0x8] + movs r0, 0x1 + movs r2, 0x11 + movs r3, 0x4 + bl FillBgTilemapBufferRect + movs r0, 0x1 + bl CopyBgTilemapBufferToVram + movs r0, 0x1 + bl sub_81CCFA4 +_081CCC40: + add sp, 0xC + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81CCB0C + + thumb_func_start sub_81CCC4C +sub_81CCC4C: @ 81CCC4C + push {lr} + bl IsDma3ManagerBusyWithBgCopy + lsls r0, 24 + lsrs r0, 24 + pop {r1} + bx r1 + thumb_func_end sub_81CCC4C + + thumb_func_start sub_81CCC5C +sub_81CCC5C: @ 81CCC5C + push {r4,lr} + adds r4, r0, 0 + ldr r0, =sub_81CCC9C + movs r1, 0x3 + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + ldr r2, =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + strh r4, [r1, 0x8] + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81CCC5C + + thumb_func_start sub_81CCC88 +sub_81CCC88: @ 81CCC88 + push {lr} + ldr r0, =sub_81CCC9C + bl FuncIsActiveTask + lsls r0, 24 + lsrs r0, 24 + pop {r1} + bx r1 + .pool + thumb_func_end sub_81CCC88 + + thumb_func_start sub_81CCC9C +sub_81CCC9C: @ 81CCC9C + push {r4,r5,lr} + lsls r0, 24 + lsrs r4, r0, 24 + adds r5, r4, 0 + ldr r1, =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + movs r1, 0x8 + ldrsh r0, [r0, r1] + cmp r0, 0 + beq _081CCCE0 + movs r1, 0x90 + lsls r1, 3 + movs r0, 0x1 + movs r2, 0x1 + bl ChangeBgY + cmp r0, 0 + blt _081CCCD6 + movs r0, 0x1 + movs r1, 0 + movs r2, 0 + bl ChangeBgY + adds r0, r4, 0 + bl DestroyTask +_081CCCD6: + bl sub_81CCF78 + b _081CCD04 + .pool +_081CCCE0: + movs r1, 0x90 + lsls r1, 3 + movs r0, 0x1 + movs r2, 0x2 + bl ChangeBgY + ldr r1, =0xffffa000 + cmp r0, r1 + bgt _081CCD00 + movs r0, 0x1 + movs r2, 0 + bl ChangeBgY + adds r0, r5, 0 + bl DestroyTask +_081CCD00: + bl sub_81CCF78 +_081CCD04: + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81CCC9C + + thumb_func_start sub_81CCD10 +sub_81CCD10: @ 81CCD10 + push {lr} + ldr r0, =sub_81CCD34 + movs r1, 0x1 + bl CreateLoopedTask + pop {r0} + bx r0 + .pool + thumb_func_end sub_81CCD10 + + thumb_func_start sub_81CCD24 +sub_81CCD24: @ 81CCD24 + push {lr} + ldr r0, =sub_81CCD34 + bl FuncIsActiveLoopedTask + pop {r1} + bx r1 + .pool + thumb_func_end sub_81CCD24 + + thumb_func_start sub_81CCD34 +sub_81CCD34: @ 81CCD34 + push {r4,lr} + adds r4, r0, 0 + movs r0, 0x4 + bl GetSubstructPtr + adds r2, r0, 0 + cmp r4, 0x15 + ble _081CCD48 + movs r0, 0x4 + b _081CCD62 +_081CCD48: + ldr r0, =gUnknown_08623118 + lsls r1, r4, 3 + adds r0, 0x4 + adds r1, r0 + ldr r0, [r1] + movs r1, 0xC8 + muls r1, r4 + ldr r3, =0x00000818 + adds r1, r3 + adds r1, r2, r1 + bl LZ77UnCompWram + movs r0, 0x1 +_081CCD62: + pop {r4} + pop {r1} + bx r1 + .pool + thumb_func_end sub_81CCD34 + + thumb_func_start sub_81CCD70 +sub_81CCD70: @ 81CCD70 + push {r4-r6,lr} + sub sp, 0x8 + adds r6, r0, 0 + adds r3, r1, 0 + movs r4, 0 + ldr r0, =gUnknown_08623118 + ldrh r1, [r0] + adds r5, r0, 0 + cmp r1, r3 + bne _081CCD8A + ldrh r0, [r5, 0x2] + cmp r0, r2 + beq _081CCDA0 +_081CCD8A: + adds r4, 0x1 + cmp r4, 0x15 + bgt _081CCDA0 + lsls r0, r4, 3 + adds r1, r0, r5 + ldrh r0, [r1] + cmp r0, r3 + bne _081CCD8A + ldrh r0, [r1, 0x2] + cmp r0, r2 + bne _081CCD8A +_081CCDA0: + cmp r4, 0x16 + beq _081CCDD4 + ldr r1, =0x00001041 + movs r0, 0xC + str r0, [sp] + movs r0, 0xB + str r0, [sp, 0x4] + movs r0, 0x1 + movs r2, 0x11 + movs r3, 0x6 + bl FillBgTilemapBufferRect_Palette0 + movs r0, 0xC8 + adds r1, r4, 0 + muls r1, r0 + ldr r0, =0x00000818 + adds r1, r0 + adds r1, r6, r1 + movs r0, 0xA + str r0, [sp] + str r0, [sp, 0x4] + movs r0, 0x1 + movs r2, 0x12 + movs r3, 0x6 + bl CopyToBgTilemapBufferRect +_081CCDD4: + add sp, 0x8 + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81CCD70 + + thumb_func_start sub_81CCDE8 +sub_81CCDE8: @ 81CCDE8 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0xC + mov r9, r0 + movs r5, 0 + ldr r6, =gStringVar1 + movs r4, 0x88 + lsls r4, 21 + lsls r1, 24 + mov r8, r1 + lsls r7, r2, 24 + b _081CCE34 + .pool +_081CCE08: + adds r0, r6, 0 + movs r2, 0 + movs r3, 0xC + bl StringCopyPadded + mov r1, r9 + ldrb r0, [r1, 0x8] + lsrs r1, r4, 24 + str r1, [sp] + movs r1, 0xFF + str r1, [sp, 0x4] + movs r1, 0 + str r1, [sp, 0x8] + movs r1, 0x7 + adds r2, r6, 0 + movs r3, 0 + bl AddTextPrinterParameterized + movs r0, 0x80 + lsls r0, 21 + adds r4, r0 + adds r5, 0x1 +_081CCE34: + lsls r2, r5, 24 + lsrs r2, 24 + mov r1, r8 + lsrs r0, r1, 24 + lsrs r1, r7, 24 + bl GetLandmarkName + adds r1, r0, 0 + cmp r1, 0 + bne _081CCE08 + add sp, 0xC + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_81CCDE8 + + thumb_func_start sub_81CCE58 +sub_81CCE58: @ 81CCE58 + push {r4-r7,lr} + mov r7, r8 + push {r7} + movs r0, 0x4 + bl GetSubstructPtr + adds r4, r0, 0 + bl sub_8124658 + lsls r0, 24 + movs r2, 0x84 + cmp r0, 0 + bne _081CCE74 + movs r2, 0xE4 +_081CCE74: + movs r5, 0 + lsls r7, r2, 16 + adds r4, 0xC + mov r8, r4 + movs r6, 0x98 + lsls r6, 16 +_081CCE80: + asrs r1, r6, 16 + ldr r0, =gUnknown_086231D0 + asrs r2, r7, 16 + movs r3, 0x8 + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + lsls r2, r0, 4 + adds r2, r0 + lsls r2, 2 + ldr r0, =gSprites + adds r2, r0 + movs r0, 0 + strh r0, [r2, 0x2E] + lsls r4, r5, 2 + strh r4, [r2, 0x30] + ldrh r3, [r2, 0x4] + lsls r1, r3, 22 + lsrs r0, r1, 22 + adds r1, r0, 0 + strh r0, [r2, 0x32] + movs r0, 0x96 + strh r0, [r2, 0x34] + strh r4, [r2, 0x36] + adds r1, r4 + ldr r4, =0x000003ff + adds r0, r4, 0 + ands r1, r0 + ldr r4, =0xfffffc00 + adds r0, r4, 0 + ands r3, r0 + orrs r3, r1 + strh r3, [r2, 0x4] + mov r0, r8 + adds r0, 0x4 + mov r8, r0 + subs r0, 0x4 + stm r0!, {r2} + movs r4, 0x80 + lsls r4, 14 + adds r6, r4 + adds r5, 0x1 + cmp r5, 0x2 + ble _081CCE80 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81CCE58 + + thumb_func_start sub_81CCEF4 +sub_81CCEF4: @ 81CCEF4 + push {r4,r5,lr} + adds r3, r0, 0 + ldrh r0, [r3, 0x34] + movs r1, 0x34 + ldrsh r4, [r3, r1] + cmp r4, 0 + beq _081CCF06 + subs r0, 0x1 + b _081CCF6E +_081CCF06: + ldrh r0, [r3, 0x2E] + adds r0, 0x1 + strh r0, [r3, 0x2E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0xB + ble _081CCF16 + strh r4, [r3, 0x2E] +_081CCF16: + ldrh r0, [r3, 0x30] + adds r0, 0x1 + strh r0, [r3, 0x30] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x3C + ble _081CCF26 + strh r4, [r3, 0x30] +_081CCF26: + ldrh r5, [r3, 0x30] + ldrh r2, [r3, 0x32] + adds r1, r5, r2 + ldr r2, =0x000003ff + adds r0, r2, 0 + ands r1, r0 + ldrh r2, [r3, 0x4] + ldr r0, =0xfffffc00 + ands r0, r2 + orrs r0, r1 + strh r0, [r3, 0x4] + ldrh r1, [r3, 0x38] + movs r2, 0x38 + ldrsh r0, [r3, r2] + cmp r0, 0x3 + bgt _081CCF5C + movs r2, 0x2E + ldrsh r0, [r3, r2] + cmp r0, 0 + bne _081CCF70 + adds r0, r1, 0x1 + strh r0, [r3, 0x38] + b _081CCF6C + .pool +_081CCF5C: + lsls r0, r5, 16 + asrs r0, 16 + movs r2, 0x36 + ldrsh r1, [r3, r2] + cmp r0, r1 + bne _081CCF70 + strh r4, [r3, 0x38] + strh r4, [r3, 0x2E] +_081CCF6C: + movs r0, 0x78 +_081CCF6E: + strh r0, [r3, 0x34] +_081CCF70: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_81CCEF4 + + thumb_func_start sub_81CCF78 +sub_81CCF78: @ 81CCF78 + push {r4,lr} + movs r0, 0x4 + bl GetSubstructPtr + adds r4, r0, 0 + movs r0, 0x1 + bl GetBgY + asrs r0, 8 + movs r1, 0x84 + subs r1, r0 + adds r4, 0xC + movs r2, 0x2 +_081CCF92: + ldm r4!, {r0} + strh r1, [r0, 0x22] + subs r2, 0x1 + cmp r2, 0 + bge _081CCF92 + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_81CCF78 + + thumb_func_start sub_81CCFA4 +sub_81CCFA4: @ 81CCFA4 + push {r4-r6,lr} + adds r4, r0, 0 + movs r0, 0x4 + bl GetSubstructPtr + movs r1, 0x1 + ands r4, r1 + lsls r5, r4, 2 + movs r6, 0x5 + negs r6, r6 + adds r4, r0, 0 + adds r4, 0xC + movs r3, 0x2 +_081CCFBE: + ldm r4!, {r0} + adds r0, 0x3E + ldrb r2, [r0] + adds r1, r6, 0 + ands r1, r2 + orrs r1, r5 + strb r1, [r0] + subs r3, 0x1 + cmp r3, 0 + bge _081CCFBE + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_81CCFA4 + + .align 2, 0 @ Don't pad with nop. diff --git a/asm/pokenav_unk_6.s b/asm/pokenav_unk_6.s new file mode 100644 index 000000000..f5e017816 --- /dev/null +++ b/asm/pokenav_unk_6.s @@ -0,0 +1,1752 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .syntax unified + +@ File centered around AllocSubstruct(0xB) + + thumb_func_start sub_81CCFD8 +sub_81CCFD8: @ 81CCFD8 + push {r4,lr} + ldr r1, =0x0000678c + movs r0, 0xB + bl AllocSubstruct + adds r4, r0, 0 + cmp r4, 0 + beq _081CD01C + ldr r1, =0x00006428 + adds r0, r4, r1 + bl sub_81D1ED4 + bl sub_81CD970 + ldr r1, =gKeyRepeatStartDelay + movs r0, 0x14 + strh r0, [r1] + ldr r0, =0x00006304 + adds r1, r4, r0 + ldr r0, =sub_81CD08C + str r0, [r1] + movs r0, 0x1 + b _081CD01E + .pool +_081CD01C: + movs r0, 0 +_081CD01E: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_81CCFD8 + + thumb_func_start sub_81CD024 +sub_81CD024: @ 81CD024 + push {r4,lr} + ldr r1, =0x0000678c + movs r0, 0xB + bl AllocSubstruct + adds r4, r0, 0 + cmp r4, 0 + beq _081CD068 + ldr r1, =0x00006428 + adds r0, r4, r1 + bl sub_81D1ED4 + bl sub_81CD9F8 + ldr r1, =gKeyRepeatStartDelay + movs r0, 0x14 + strh r0, [r1] + ldr r0, =0x00006304 + adds r1, r4, r0 + ldr r0, =sub_81CD08C + str r0, [r1] + movs r0, 0x1 + b _081CD06A + .pool +_081CD068: + movs r0, 0 +_081CD06A: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_81CD024 + + thumb_func_start sub_81CD070 +sub_81CD070: @ 81CD070 + push {lr} + movs r0, 0xB + bl GetSubstructPtr + ldr r2, =0x00006304 + adds r1, r0, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {r1} + bx r1 + .pool + thumb_func_end sub_81CD070 + + thumb_func_start sub_81CD08C +sub_81CD08C: @ 81CD08C + push {r4,r5,lr} + adds r4, r0, 0 + movs r0, 0x12 + bl GetSubstructPtr + adds r5, r0, 0 + adds r0, r4, 0 + bl sub_81CD1E4 + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0 + bne _081CD100 + ldr r0, =gMain + ldrh r1, [r0, 0x2E] + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + bne _081CD0D0 + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _081CD100 + movs r1, 0xC6 + lsls r1, 7 + adds r0, r4, r1 + ldrb r0, [r0] + cmp r0, 0 + bne _081CD0F0 + ldrh r1, [r5, 0x2] + ldrh r0, [r5] + subs r0, 0x1 + cmp r1, r0 + bne _081CD100 +_081CD0D0: + movs r0, 0x5 + bl PlaySE + ldr r0, =0x00006304 + adds r1, r4, r0 + ldr r0, =sub_81CD19C + str r0, [r1] + movs r2, 0x2 + b _081CD100 + .pool +_081CD0F0: + movs r0, 0x5 + bl PlaySE + movs r2, 0x5 + ldr r0, =0x00006304 + adds r1, r4, r0 + ldr r0, =sub_81CD110 + str r0, [r1] +_081CD100: + adds r0, r2, 0 + pop {r4,r5} + pop {r1} + bx r1 + .pool + thumb_func_end sub_81CD08C + + thumb_func_start sub_81CD110 +sub_81CD110: @ 81CD110 + push {r4-r6,lr} + sub sp, 0x4 + adds r6, r0, 0 + movs r4, 0 + bl sub_811FBA4 + lsls r0, 24 + cmp r0, 0 + bne _081CD18A + bl sub_81CEF14 + ldr r1, =0x00006786 + adds r5, r6, r1 + movs r1, 0 + ldrsb r1, [r5, r1] + ldr r2, =0x00006783 + adds r4, r6, r2 + adds r1, r4, r1 + strb r0, [r1] + movs r0, 0x12 + bl GetSubstructPtr + ldrh r1, [r0, 0x2] + lsls r1, 2 + adds r0, r1 + ldrb r2, [r0, 0x4] + ldrb r3, [r0, 0x5] + movs r0, 0 + ldrsb r0, [r5, r0] + adds r4, r0 + ldrb r1, [r4] + mov r0, sp + strb r1, [r0] + cmp r2, 0xE + bne _081CD174 + movs r0, 0x64 + muls r0, r3 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0x8 + mov r2, sp + bl SetMonData + b _081CD180 + .pool +_081CD174: + adds r0, r2, 0 + adds r1, r3, 0 + movs r2, 0x8 + mov r3, sp + bl SetBoxMonDataAt +_081CD180: + ldr r0, =0x00006304 + adds r1, r6, r0 + ldr r0, =sub_81CD08C + str r0, [r1] + movs r4, 0x6 +_081CD18A: + adds r0, r4, 0 + add sp, 0x4 + pop {r4-r6} + pop {r1} + bx r1 + .pool + thumb_func_end sub_81CD110 + + thumb_func_start sub_81CD19C +sub_81CD19C: @ 81CD19C + push {lr} + movs r1, 0xC6 + lsls r1, 7 + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0 + beq _081CD1B4 + ldr r0, =0x000186aa + b _081CD1B6 + .pool +_081CD1B4: + ldr r0, =0x000186a2 +_081CD1B6: + pop {r1} + bx r1 + .pool + thumb_func_end sub_81CD19C + + thumb_func_start sub_81CD1C0 +sub_81CD1C0: @ 81CD1C0 + push {lr} + movs r0, 0xB + bl GetSubstructPtr + movs r1, 0xC6 + lsls r1, 7 + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0 + bne _081CD1DA + movs r0, 0x12 + bl FreePokenavSubstruct +_081CD1DA: + movs r0, 0xB + bl FreePokenavSubstruct + pop {r0} + bx r0 + thumb_func_end sub_81CD1C0 + + thumb_func_start sub_81CD1E4 +sub_81CD1E4: @ 81CD1E4 + push {r4,lr} + adds r4, r0, 0 + movs r0, 0x12 + bl GetSubstructPtr + adds r2, r0, 0 + movs r3, 0 + ldr r0, =gMain + ldrh r1, [r0, 0x2C] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + beq _081CD220 + movs r1, 0xC6 + lsls r1, 7 + adds r0, r4, r1 + ldrb r0, [r0] + cmp r0, 0 + beq _081CD210 + ldrh r0, [r2, 0x2] + cmp r0, 0 + beq _081CD24E +_081CD210: + movs r0, 0x5 + bl PlaySE + movs r0, 0x1 + b _081CD246 + .pool +_081CD220: + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _081CD24E + movs r1, 0xC6 + lsls r1, 7 + adds r0, r4, r1 + ldrb r0, [r0] + cmp r0, 0 + beq _081CD23E + ldrh r1, [r2, 0x2] + ldrh r0, [r2] + subs r0, 0x1 + cmp r1, r0 + bge _081CD24E +_081CD23E: + movs r0, 0x5 + bl PlaySE + movs r0, 0 +_081CD246: + bl sub_81CD258 + lsls r0, 24 + lsrs r3, r0, 24 +_081CD24E: + adds r0, r3, 0 + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_81CD1E4 + + thumb_func_start sub_81CD258 +sub_81CD258: @ 81CD258 + push {r4-r7,lr} + mov r7, r8 + push {r7} + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + movs r0, 0xB + bl GetSubstructPtr + adds r4, r0, 0 + movs r0, 0x12 + bl GetSubstructPtr + adds r5, r0, 0 + mov r0, r8 + cmp r0, 0 + beq _081CD284 + ldr r1, =0x00006788 + adds r0, r4, r1 + b _081CD288 + .pool +_081CD284: + ldr r2, =0x00006787 + adds r0, r4, r2 +_081CD288: + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + lsls r0, 16 + lsrs r0, 16 + adds r7, r0, 0 + ldr r1, =0x00006428 + adds r0, r4, r1 + ldr r2, =0x00006786 + adds r1, r4, r2 + movs r2, 0 + ldrsb r2, [r1, r2] + lsls r1, r2, 2 + adds r1, r2 + lsls r1, 2 + ldr r3, =0x0000643c + adds r1, r3 + adds r1, r4, r1 + lsls r2, r7, 2 + adds r2, r7 + lsls r2, 2 + adds r2, r3 + adds r2, r4, r2 + bl sub_81D1F84 + ldrh r6, [r5, 0x2] + bl sub_81CDD5C + cmp r0, 0 + beq _081CD2D8 + ldrh r1, [r5] + b _081CD2DC + .pool +_081CD2D8: + ldrh r1, [r5] + subs r1, 0x1 +_081CD2DC: + eors r1, r6 + negs r0, r1 + orrs r0, r1 + lsrs r0, 31 + adds r6, r0, 0 + mov r0, r8 + cmp r0, 0 + beq _081CD332 + ldr r1, =0x00006787 + adds r2, r4, r1 + ldrb r0, [r2] + adds r1, 0x1 + adds r3, r4, r1 + strb r0, [r3] + ldr r0, =0x00006786 + adds r1, r4, r0 + ldrb r0, [r1] + strb r0, [r2] + strb r7, [r1] + ldrb r1, [r3] + ldr r2, =0x00006789 + adds r0, r4, r2 + strb r1, [r0] + ldrh r0, [r5, 0x2] + cmp r0, 0 + bne _081CD312 + ldrh r0, [r5] +_081CD312: + subs r1, r0, 0x1 + strh r1, [r5, 0x2] + lsls r0, r1, 16 + cmp r0, 0 + beq _081CD32C + subs r1, 0x1 + b _081CD384 + .pool +_081CD32C: + ldrh r0, [r5] + subs r1, r0, 0x1 + b _081CD384 +_081CD332: + ldr r0, =0x00006788 + adds r2, r4, r0 + ldrb r0, [r2] + ldr r1, =0x00006787 + adds r3, r4, r1 + strb r0, [r3] + ldr r0, =0x00006786 + adds r1, r4, r0 + ldrb r0, [r1] + strb r0, [r2] + strb r7, [r1] + ldrb r1, [r3] + ldr r2, =0x00006789 + adds r0, r4, r2 + strb r1, [r0] + ldrh r1, [r5, 0x2] + ldrh r0, [r5] + subs r0, 0x1 + cmp r1, r0 + bge _081CD370 + adds r0, r1, 0x1 + b _081CD372 + .pool +_081CD370: + movs r0, 0 +_081CD372: + strh r0, [r5, 0x2] + ldrh r1, [r5, 0x2] + ldrh r0, [r5] + subs r0, 0x1 + cmp r1, r0 + bge _081CD382 + adds r1, 0x1 + b _081CD384 +_081CD382: + movs r1, 0 +_081CD384: + ldr r2, =0x00006302 + adds r0, r4, r2 + strh r1, [r0] + ldrh r4, [r5, 0x2] + bl sub_81CDD5C + cmp r0, 0 + beq _081CD39C + ldrh r1, [r5] + b _081CD3A0 + .pool +_081CD39C: + ldrh r1, [r5] + subs r1, 0x1 +_081CD3A0: + eors r1, r4 + negs r0, r1 + orrs r0, r1 + lsrs r0, 31 + cmp r6, 0 + bne _081CD3B0 + movs r0, 0x3 + b _081CD3BA +_081CD3B0: + cmp r0, 0 + beq _081CD3B8 + movs r0, 0x1 + b _081CD3BA +_081CD3B8: + movs r0, 0x4 +_081CD3BA: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_81CD258 + + thumb_func_start sub_81CD3C4 +sub_81CD3C4: @ 81CD3C4 + push {r4,lr} + movs r0, 0xB + bl GetSubstructPtr + adds r4, r0, 0 + movs r0, 0x12 + bl GetSubstructPtr + adds r2, r0, 0 + ldr r1, =0x0000678a + adds r0, r4, r1 + ldrb r0, [r0] + cmp r0, 0x9 + bls _081CD3E2 + b _081CD530 +_081CD3E2: + lsls r0, 2 + ldr r1, =_081CD3F4 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .pool + .align 2, 0 +_081CD3F4: + .4byte _081CD41C + .4byte _081CD428 + .4byte _081CD434 + .4byte _081CD440 + .4byte _081CD490 + .4byte _081CD4A8 + .4byte _081CD4C0 + .4byte _081CD4D8 + .4byte _081CD4F0 + .4byte _081CD508 +_081CD41C: + movs r1, 0x2 + ldrsh r0, [r2, r1] + movs r1, 0 + bl sub_81CD824 + b _081CD530 +_081CD428: + movs r1, 0x2 + ldrsh r0, [r2, r1] + movs r1, 0 + bl sub_81CDA1C + b _081CD530 +_081CD434: + movs r1, 0x2 + ldrsh r0, [r2, r1] + movs r1, 0 + bl sub_81CDB98 + b _081CD530 +_081CD440: + ldrh r0, [r2] + cmp r0, 0x1 + bne _081CD468 + ldr r2, =0x00006786 + adds r0, r4, r2 + movs r1, 0 + strb r1, [r0] + adds r2, 0x1 + adds r0, r4, r2 + strb r1, [r0] + adds r2, 0x1 + adds r0, r4, r2 + strb r1, [r0] + adds r2, 0x2 + adds r0, r4, r2 + strb r1, [r0] + movs r0, 0x1 + b _081CD53C + .pool +_081CD468: + ldr r0, =0x00006786 + adds r1, r4, r0 + movs r0, 0 + strb r0, [r1] + ldr r2, =0x00006787 + adds r1, r4, r2 + movs r0, 0x1 + strb r0, [r1] + ldr r0, =0x00006788 + adds r1, r4, r0 + movs r0, 0x2 + strb r0, [r1] + b _081CD530 + .pool +_081CD490: + ldrh r0, [r2, 0x2] + adds r0, 0x1 + ldrh r2, [r2] + cmp r0, r2 + blt _081CD49C + movs r0, 0 +_081CD49C: + lsls r0, 16 + asrs r0, 16 + movs r1, 0x1 + bl sub_81CD824 + b _081CD530 +_081CD4A8: + ldrh r0, [r2, 0x2] + adds r0, 0x1 + ldrh r2, [r2] + cmp r0, r2 + blt _081CD4B4 + movs r0, 0 +_081CD4B4: + lsls r0, 16 + asrs r0, 16 + movs r1, 0x1 + bl sub_81CDA1C + b _081CD530 +_081CD4C0: + ldrh r0, [r2, 0x2] + adds r0, 0x1 + ldrh r2, [r2] + cmp r0, r2 + blt _081CD4CC + movs r0, 0 +_081CD4CC: + lsls r0, 16 + asrs r0, 16 + movs r1, 0x1 + bl sub_81CDB98 + b _081CD530 +_081CD4D8: + ldrh r0, [r2, 0x2] + subs r0, 0x1 + cmp r0, 0 + bge _081CD4E4 + ldrh r0, [r2] + subs r0, 0x1 +_081CD4E4: + lsls r0, 16 + asrs r0, 16 + movs r1, 0x2 + bl sub_81CD824 + b _081CD530 +_081CD4F0: + ldrh r0, [r2, 0x2] + subs r0, 0x1 + cmp r0, 0 + bge _081CD4FC + ldrh r0, [r2] + subs r0, 0x1 +_081CD4FC: + lsls r0, 16 + asrs r0, 16 + movs r1, 0x2 + bl sub_81CDA1C + b _081CD530 +_081CD508: + ldrh r0, [r2, 0x2] + subs r0, 0x1 + cmp r0, 0 + bge _081CD514 + ldrh r0, [r2] + subs r0, 0x1 +_081CD514: + lsls r0, 16 + asrs r0, 16 + movs r1, 0x2 + bl sub_81CDB98 + ldr r2, =0x0000678a + adds r1, r4, r2 + movs r0, 0 + strb r0, [r1] + movs r0, 0x1 + b _081CD53C + .pool +_081CD530: + ldr r0, =0x0000678a + adds r1, r4, r0 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + movs r0, 0 +_081CD53C: + pop {r4} + pop {r1} + bx r1 + .pool + thumb_func_end sub_81CD3C4 + + thumb_func_start sub_81CD548 +sub_81CD548: @ 81CD548 + push {r4,r5,lr} + lsls r0, 24 + lsrs r4, r0, 24 + adds r5, r4, 0 + movs r0, 0xB + bl GetSubstructPtr + adds r1, r0, 0 + cmp r4, 0x1 + beq _081CD588 + cmp r4, 0x1 + bgt _081CD566 + cmp r4, 0 + beq _081CD56C + b _081CD5C4 +_081CD566: + cmp r5, 0x2 + beq _081CD5A4 + b _081CD5C4 +_081CD56C: + ldr r2, =0x00006302 + adds r0, r1, r2 + movs r2, 0 + ldrsh r0, [r0, r2] + ldr r2, =0x00006789 + adds r1, r2 + ldrb r1, [r1] + bl sub_81CD824 + b _081CD5C4 + .pool +_081CD588: + ldr r2, =0x00006302 + adds r0, r1, r2 + movs r2, 0 + ldrsh r0, [r0, r2] + ldr r2, =0x00006789 + adds r1, r2 + ldrb r1, [r1] + bl sub_81CDA1C + b _081CD5C4 + .pool +_081CD5A4: + ldr r2, =0x00006302 + adds r0, r1, r2 + movs r2, 0 + ldrsh r0, [r0, r2] + ldr r2, =0x00006789 + adds r1, r2 + ldrb r1, [r1] + bl sub_81CDB98 + movs r0, 0x1 + b _081CD5C6 + .pool +_081CD5C4: + movs r0, 0 +_081CD5C6: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_81CD548 + + thumb_func_start sub_81CD5CC +sub_81CD5CC: @ 81CD5CC + push {r4,lr} + adds r4, r0, 0 + lsls r2, 16 + lsrs r2, 16 + b _081CD5E4 +_081CD5D6: + strb r3, [r4] + adds r1, 0x1 + adds r4, 0x1 + lsls r0, r2, 16 + ldr r2, =0xffff0000 + adds r0, r2 + lsrs r2, r0, 16 +_081CD5E4: + ldrb r3, [r1] + adds r0, r3, 0 + cmp r0, 0xFF + bne _081CD5D6 + adds r1, r2, 0 + lsls r0, r1, 16 + ldr r2, =0xffff0000 + adds r0, r2 + lsrs r2, r0, 16 + lsls r1, 16 + cmp r1, 0 + ble _081CD612 + movs r3, 0 +_081CD5FE: + strb r3, [r4] + adds r4, 0x1 + adds r1, r2, 0 + lsls r0, r1, 16 + ldr r2, =0xffff0000 + adds r0, r2 + lsrs r2, r0, 16 + lsls r1, 16 + cmp r1, 0 + bgt _081CD5FE +_081CD612: + movs r0, 0xFF + strb r0, [r4] + adds r0, r4, 0 + pop {r4} + pop {r1} + bx r1 + .pool + thumb_func_end sub_81CD5CC + + thumb_func_start sub_81CD624 +sub_81CD624: @ 81CD624 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + adds r5, r0, 0 + adds r4, r1, 0 + lsls r4, 16 + lsrs r4, 16 + lsls r2, 24 + lsrs r2, 24 + mov r10, r2 + movs r0, 0x12 + bl GetSubstructPtr + lsls r4, 2 + adds r0, r4 + ldrb r4, [r0, 0x4] + mov r8, r4 + ldrb r6, [r0, 0x5] + mov r9, r6 + movs r0, 0xFC + strb r0, [r5] + adds r5, 0x1 + movs r0, 0x4 + strb r0, [r5] + adds r5, 0x1 + movs r0, 0x8 + strb r0, [r5] + adds r5, 0x1 + movs r0, 0 + strb r0, [r5] + adds r5, 0x1 + movs r0, 0x9 + strb r0, [r5] + adds r5, 0x1 + adds r0, r4, 0 + adds r1, r6, 0 + movs r2, 0x2D + movs r3, 0 + bl GetBoxOrPartyMonData + cmp r0, 0 + beq _081CD690 + ldr r1, =gText_EggNickname + adds r0, r5, 0 + movs r2, 0 + movs r3, 0xC + bl StringCopyPadded + b _081CD80E + .pool +_081CD690: + adds r0, r4, 0 + adds r1, r6, 0 + movs r2, 0x2 + adds r3, r5, 0 + bl GetBoxOrPartyMonData + adds r0, r5, 0 + bl StringGetEnd10 + adds r0, r4, 0 + adds r1, r6, 0 + movs r2, 0xB + movs r3, 0 + bl GetBoxOrPartyMonData + lsls r0, 16 + lsrs r7, r0, 16 + cmp r4, 0xE + bne _081CD6E0 + movs r0, 0x64 + adds r4, r6, 0 + muls r4, r0 + ldr r0, =gPlayerParty + adds r4, r0 + adds r0, r4, 0 + movs r1, 0x38 + bl GetMonData + lsls r0, 16 + lsrs r0, 16 + mov r8, r0 + adds r0, r4, 0 + bl GetMonGender + lsls r0, 24 + lsrs r6, r0, 24 + b _081CD6FE + .pool +_081CD6E0: + mov r0, r8 + mov r1, r9 + bl GetBoxedMonPtr + adds r4, r0, 0 + bl GetBoxMonGender + lsls r0, 24 + lsrs r6, r0, 24 + adds r0, r4, 0 + bl GetLevelFromBoxMonExp + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 +_081CD6FE: + cmp r7, 0x1D + beq _081CD706 + cmp r7, 0x20 + bne _081CD71C +_081CD706: + movs r0, 0xB + adds r1, r7, 0 + muls r1, r0 + ldr r0, =gSpeciesNames + adds r1, r0 + adds r0, r5, 0 + bl StringCompare + cmp r0, 0 + bne _081CD71C + movs r6, 0xFF +_081CD71C: + adds r3, r5, 0 + b _081CD726 + .pool +_081CD724: + adds r3, 0x1 +_081CD726: + ldrb r0, [r3] + cmp r0, 0xFF + bne _081CD724 + movs r1, 0xFC + strb r1, [r3] + adds r3, 0x1 + movs r0, 0x12 + strb r0, [r3] + adds r3, 0x1 + movs r0, 0x3C + strb r0, [r3] + adds r3, 0x1 + cmp r6, 0 + beq _081CD74A + cmp r6, 0xFE + beq _081CD76E + movs r0, 0x77 + b _081CD790 +_081CD74A: + strb r1, [r3] + adds r3, 0x1 + movs r0, 0x1 + strb r0, [r3] + adds r3, 0x1 + movs r0, 0x4 + strb r0, [r3] + adds r3, 0x1 + strb r1, [r3] + adds r3, 0x1 + movs r0, 0x3 + strb r0, [r3] + adds r3, 0x1 + movs r0, 0x5 + strb r0, [r3] + adds r3, 0x1 + movs r0, 0xB5 + b _081CD790 +_081CD76E: + strb r1, [r3] + adds r3, 0x1 + movs r0, 0x1 + strb r0, [r3] + adds r3, 0x1 + movs r0, 0x6 + strb r0, [r3] + adds r3, 0x1 + strb r1, [r3] + adds r3, 0x1 + movs r0, 0x3 + strb r0, [r3] + adds r3, 0x1 + movs r0, 0x7 + strb r0, [r3] + adds r3, 0x1 + movs r0, 0xB6 +_081CD790: + strb r0, [r3] + adds r3, 0x1 + movs r0, 0xFC + strb r0, [r3] + adds r3, 0x1 + movs r0, 0x4 + strb r0, [r3] + adds r3, 0x1 + movs r0, 0x8 + strb r0, [r3] + adds r3, 0x1 + movs r5, 0 + strb r5, [r3] + adds r3, 0x1 + movs r0, 0x9 + strb r0, [r3] + adds r3, 0x1 + movs r0, 0xBA + strb r0, [r3] + adds r3, 0x1 + movs r0, 0xF9 + strb r0, [r3] + adds r3, 0x1 + movs r0, 0x5 + strb r0, [r3] + adds r3, 0x1 + adds r4, r3, 0 + adds r0, r4, 0 + mov r1, r8 + movs r2, 0 + movs r3, 0x3 + bl ConvertIntToDecimalStringN + adds r3, r0, 0 + subs r4, r3, r4 + lsls r4, 16 + lsrs r4, 16 + strb r5, [r3] + adds r3, 0x1 + mov r0, r10 + cmp r0, 0 + bne _081CD808 + movs r0, 0x3 + subs r0, r4 + lsls r0, 16 + ldr r1, =0xffff0000 + adds r0, r1 + lsrs r4, r0, 16 + ldr r0, =0x0000ffff + cmp r4, r0 + beq _081CD808 + movs r2, 0 + adds r1, r0, 0 +_081CD7FA: + strb r2, [r3] + adds r3, 0x1 + subs r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, r1 + bne _081CD7FA +_081CD808: + movs r0, 0xFF + strb r0, [r3] + adds r0, r3, 0 +_081CD80E: + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + .pool + thumb_func_end sub_81CD624 + + thumb_func_start sub_81CD824 +sub_81CD824: @ 81CD824 + push {r4-r7,lr} + mov r7, r8 + push {r7} + lsls r0, 16 + lsrs r0, 16 + mov r8, r0 + lsls r1, 24 + lsrs r6, r1, 24 + movs r0, 0xB + bl GetSubstructPtr + adds r5, r0, 0 + movs r0, 0x12 + bl GetSubstructPtr + adds r7, r0, 0 + mov r1, r8 + lsls r0, r1, 16 + asrs r4, r0, 16 + bl sub_81CDD5C + cmp r0, 0 + beq _081CD85A + ldrh r2, [r7] + cmp r4, r2 + bne _081CD862 + b _081CD900 +_081CD85A: + ldrh r0, [r7] + subs r0, 0x1 + cmp r4, r0 + beq _081CD900 +_081CD862: + lsls r0, r6, 6 + ldr r1, =0x00006368 + adds r0, r1 + adds r0, r5, r0 + mov r2, r8 + lsls r4, r2, 16 + lsrs r1, r4, 16 + movs r2, 0 + bl sub_81CD624 + asrs r4, 14 + adds r4, r7, r4 + ldrb r3, [r4, 0x4] + lsls r0, r6, 1 + adds r0, r6 + lsls r4, r0, 3 + ldr r1, =0x00006320 + adds r0, r5, r1 + adds r0, r4 + movs r2, 0 + movs r1, 0xFC + strb r1, [r0] + ldr r1, =0x00006321 + adds r0, r5, r1 + adds r0, r4 + movs r1, 0x4 + strb r1, [r0] + ldr r1, =0x00006322 + adds r0, r5, r1 + adds r0, r4 + movs r1, 0x8 + strb r1, [r0] + ldr r1, =0x00006323 + adds r0, r5, r1 + adds r0, r4 + strb r2, [r0] + ldr r2, =0x00006324 + adds r0, r5, r2 + adds r0, r4 + movs r1, 0x9 + strb r1, [r0] + cmp r3, 0xE + bne _081CD8E4 + adds r0, r4, r5 + ldr r1, =0x00006325 + adds r0, r1 + ldr r1, =gText_InParty + b _081CD8F4 + .pool +_081CD8E4: + adds r4, r5 + ldr r2, =0x00006325 + adds r4, r2 + adds r0, r3, 0 + bl GetBoxNamePtr + adds r1, r0, 0 + adds r0, r4, 0 +_081CD8F4: + movs r2, 0x8 + bl sub_81CD5CC + b _081CD95C + .pool +_081CD900: + movs r1, 0 + lsls r4, r6, 6 + lsls r0, r6, 1 + mov r8, r0 + adds r3, r4, 0 + ldr r0, =0x00006368 + adds r2, r5, r0 + movs r7, 0 +_081CD910: + adds r0, r1, r3 + adds r0, r2, r0 + strb r7, [r0] + adds r0, r1, 0x1 + lsls r0, 16 + lsrs r1, r0, 16 + cmp r1, 0xB + bls _081CD910 + adds r1, r4 + ldr r2, =0x00006368 + adds r0, r5, r2 + adds r0, r1 + movs r1, 0xFF + strb r1, [r0] + movs r1, 0 + mov r2, r8 + adds r0, r2, r6 + lsls r3, r0, 3 + ldr r0, =0x00006320 + adds r2, r5, r0 + movs r4, 0 +_081CD93A: + adds r0, r1, r3 + adds r0, r2, r0 + strb r4, [r0] + adds r0, r1, 0x1 + lsls r0, 16 + lsrs r1, r0, 16 + cmp r1, 0x7 + bls _081CD93A + mov r2, r8 + adds r0, r2, r6 + lsls r0, 3 + adds r0, r1, r0 + ldr r2, =0x00006320 + adds r1, r5, r2 + adds r1, r0 + movs r0, 0xFF + strb r0, [r1] +_081CD95C: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81CD824 + + thumb_func_start sub_81CD970 +sub_81CD970: @ 81CD970 + push {r4-r7,lr} + movs r0, 0xB + bl GetSubstructPtr + adds r7, r0, 0 + ldr r1, =0x000006ac + movs r0, 0x12 + bl AllocSubstruct + adds r6, r0, 0 + movs r0, 0xC6 + lsls r0, 7 + adds r1, r7, r0 + movs r0, 0 + strb r0, [r1] + movs r4, 0 + movs r5, 0 + b _081CD9C4 + .pool +_081CD998: + movs r0, 0x64 + muls r0, r4 + ldr r1, =gPlayerParty + adds r0, r1 + movs r1, 0x2D + bl GetMonData + adds r2, r0, 0 + cmp r2, 0 + bne _081CD9BE + lsls r1, r5, 2 + adds r1, r6, r1 + movs r0, 0xE + strb r0, [r1, 0x4] + strb r4, [r1, 0x5] + strh r2, [r1, 0x6] + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 +_081CD9BE: + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 +_081CD9C4: + bl CalculatePlayerPartyCount + lsls r0, 24 + lsrs r0, 24 + cmp r4, r0 + bcc _081CD998 + lsls r0, r5, 2 + adds r0, r6, r0 + movs r1, 0 + strb r1, [r0, 0x4] + strb r1, [r0, 0x5] + movs r2, 0 + strh r1, [r0, 0x6] + strh r1, [r6, 0x2] + adds r0, r5, 0x1 + strh r0, [r6] + ldr r1, =0x0000678a + adds r0, r7, r1 + strb r2, [r0] + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81CD970 + + thumb_func_start sub_81CD9F8 +sub_81CD9F8: @ 81CD9F8 + push {lr} + movs r0, 0xB + bl GetSubstructPtr + movs r1, 0xC6 + lsls r1, 7 + adds r2, r0, r1 + movs r3, 0 + movs r1, 0x1 + strb r1, [r2] + ldr r1, =0x0000678a + adds r0, r1 + strb r3, [r0] + pop {r0} + bx r0 + .pool + thumb_func_end sub_81CD9F8 + + thumb_func_start sub_81CDA1C +sub_81CDA1C: @ 81CDA1C + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + lsls r0, 16 + lsrs r6, r0, 16 + lsls r1, 24 + lsrs r1, 24 + mov r9, r1 + movs r0, 0xB + bl GetSubstructPtr + mov r8, r0 + movs r0, 0x12 + bl GetSubstructPtr + adds r4, r0, 0 + lsls r0, r6, 16 + asrs r5, r0, 16 + bl sub_81CDD5C + cmp r0, 0 + beq _081CDA52 + ldrh r0, [r4] + cmp r5, r0 + bne _081CDA5A + b _081CDB48 +_081CDA52: + ldrh r0, [r4] + subs r0, 0x1 + cmp r5, r0 + beq _081CDB48 +_081CDA5A: + lsls r0, r6, 16 + asrs r0, 14 + adds r0, r4, r0 + ldrb r6, [r0, 0x4] + ldrb r7, [r0, 0x5] + adds r0, r6, 0 + adds r1, r7, 0 + movs r2, 0x16 + movs r3, 0 + bl GetBoxOrPartyMonData + mov r1, r9 + lsls r5, r1, 2 + adds r4, r5, r1 + ldr r1, =0x00006428 + add r1, r8 + adds r1, r4 + strb r0, [r1] + adds r0, r6, 0 + adds r1, r7, 0 + movs r2, 0x2F + movs r3, 0 + bl GetBoxOrPartyMonData + ldr r1, =0x00006429 + add r1, r8 + adds r1, r4 + strb r0, [r1] + adds r0, r6, 0 + adds r1, r7, 0 + movs r2, 0x21 + movs r3, 0 + bl GetBoxOrPartyMonData + ldr r1, =0x0000642a + add r1, r8 + adds r1, r4 + strb r0, [r1] + adds r0, r6, 0 + adds r1, r7, 0 + movs r2, 0x18 + movs r3, 0 + bl GetBoxOrPartyMonData + ldr r1, =0x0000642b + add r1, r8 + adds r1, r4 + strb r0, [r1] + adds r0, r6, 0 + adds r1, r7, 0 + movs r2, 0x17 + movs r3, 0 + bl GetBoxOrPartyMonData + ldr r1, =0x0000642c + add r1, r8 + adds r1, r4 + strb r0, [r1] + movs r0, 0xCF + lsls r0, 7 + add r0, r8 + mov r2, r9 + adds r4, r0, r2 + adds r0, r6, 0 + adds r1, r7, 0 + movs r2, 0x30 + movs r3, 0 + bl GetBoxOrPartyMonData + cmp r0, 0xFF + beq _081CDB10 + adds r0, r6, 0 + adds r1, r7, 0 + movs r2, 0x30 + movs r3, 0 + bl GetBoxOrPartyMonData + movs r1, 0x1D + bl __udivsi3 + b _081CDB12 + .pool +_081CDB10: + movs r0, 0x9 +_081CDB12: + strb r0, [r4] + adds r0, r6, 0 + adds r1, r7, 0 + movs r2, 0x8 + movs r3, 0 + bl GetBoxOrPartyMonData + ldr r1, =0x00006783 + add r1, r8 + add r1, r9 + strb r0, [r1] + mov r0, r9 + adds r1, r5, r0 + ldr r2, =0x00006428 + adds r0, r1, r2 + add r0, r8 + lsls r1, 2 + adds r2, 0x14 + adds r1, r2 + add r1, r8 + bl sub_81D2754 + b _081CDB80 + .pool +_081CDB48: + movs r2, 0 + mov r0, r9 + lsls r5, r0, 2 + add r5, r9 + ldr r4, =0x00006428 + add r4, r8 + lsls r3, r5, 2 + mov r9, r2 + ldr r7, =0x0000643c + movs r6, 0x9B +_081CDB5C: + adds r0, r2, r5 + adds r0, r4, r0 + mov r1, r9 + strb r1, [r0] + lsls r0, r2, 2 + adds r0, r3 + add r0, r8 + adds r1, r0, r7 + strh r6, [r1] + ldr r1, =0x0000643e + adds r0, r1 + movs r1, 0x5B + strh r1, [r0] + adds r0, r2, 0x1 + lsls r0, 16 + lsrs r2, r0, 16 + cmp r2, 0x4 + bls _081CDB5C +_081CDB80: + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81CDA1C + + thumb_func_start sub_81CDB98 +sub_81CDB98: @ 81CDB98 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0x4 + lsls r0, 16 + lsrs r6, r0, 16 + lsls r1, 24 + lsrs r1, 24 + mov r9, r1 + movs r0, 0xB + bl GetSubstructPtr + adds r7, r0, 0 + movs r0, 0x12 + bl GetSubstructPtr + adds r4, r0, 0 + lsls r0, r6, 16 + asrs r5, r0, 16 + bl sub_81CDD5C + cmp r0, 0 + beq _081CDBCC + ldrh r0, [r4] + b _081CDBD0 +_081CDBCC: + ldrh r0, [r4] + subs r0, 0x1 +_081CDBD0: + cmp r5, r0 + beq _081CDC3E + lsls r0, r6, 16 + asrs r0, 14 + adds r0, r4, r0 + ldrb r5, [r0, 0x4] + ldrb r6, [r0, 0x5] + adds r0, r5, 0 + adds r1, r6, 0 + movs r2, 0x41 + movs r3, 0 + bl GetBoxOrPartyMonData + adds r4, r0, 0 + lsls r4, 16 + lsrs r4, 16 + adds r0, r5, 0 + adds r1, r6, 0 + movs r2, 0x1 + movs r3, 0 + bl GetBoxOrPartyMonData + mov r8, r0 + adds r0, r5, 0 + adds r1, r6, 0 + movs r2, 0 + movs r3, 0 + bl GetBoxOrPartyMonData + adds r5, r0, 0 + lsls r0, r4, 3 + ldr r1, =gMonFrontPicTable + adds r0, r1 + mov r2, r9 + lsls r1, r2, 13 + movs r2, 0xC0 + lsls r2, 2 + adds r1, r2 + adds r1, r7, r1 + movs r2, 0x1 + str r2, [sp] + adds r2, r4, 0 + adds r3, r5, 0 + bl LoadSpecialPokePic + adds r0, r4, 0 + mov r1, r8 + adds r2, r5, 0 + bl GetFrontSpritePalFromSpeciesAndPersonality + mov r2, r9 + lsls r1, r2, 7 + adds r1, r7, r1 + bl LZ77UnCompWram +_081CDC3E: + add sp, 0x4 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81CDB98 + + thumb_func_start sub_81CDC50 +sub_81CDC50: @ 81CDC50 + push {lr} + movs r0, 0x12 + bl GetSubstructPtr + ldrh r0, [r0] + pop {r1} + bx r1 + thumb_func_end sub_81CDC50 + + thumb_func_start sub_81CDC60 +sub_81CDC60: @ 81CDC60 + push {lr} + movs r0, 0x12 + bl GetSubstructPtr + ldrh r0, [r0, 0x2] + pop {r1} + bx r1 + thumb_func_end sub_81CDC60 + + thumb_func_start sub_81CDC70 +sub_81CDC70: @ 81CDC70 + push {lr} + movs r0, 0xB + bl GetSubstructPtr + ldr r1, =0x00006428 + adds r0, r1 + pop {r1} + bx r1 + .pool + thumb_func_end sub_81CDC70 + + thumb_func_start sub_81CDC84 +sub_81CDC84: @ 81CDC84 + push {lr} + movs r0, 0xB + bl GetSubstructPtr + ldr r1, =0x00006786 + adds r0, r1 + ldrb r0, [r0] + pop {r1} + bx r1 + .pool + thumb_func_end sub_81CDC84 + + thumb_func_start sub_81CDC9C +sub_81CDC9C: @ 81CDC9C + push {lr} + movs r0, 0xB + bl GetSubstructPtr + ldr r1, =0x00006302 + adds r0, r1 + ldrb r0, [r0] + pop {r1} + bx r1 + .pool + thumb_func_end sub_81CDC9C + + thumb_func_start sub_81CDCB4 +sub_81CDCB4: @ 81CDCB4 + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + movs r0, 0xB + bl GetSubstructPtr + lsls r4, 13 + movs r1, 0xC0 + lsls r1, 2 + adds r4, r1 + adds r0, r4 + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_81CDCB4 + + thumb_func_start sub_81CDCD4 +sub_81CDCD4: @ 81CDCD4 + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + movs r0, 0xB + bl GetSubstructPtr + lsls r4, 7 + adds r0, r4 + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_81CDCD4 + + thumb_func_start sub_81CDCEC +sub_81CDCEC: @ 81CDCEC + push {lr} + movs r0, 0xB + bl GetSubstructPtr + ldr r1, =0x00006789 + adds r0, r1 + ldrb r0, [r0] + pop {r1} + bx r1 + .pool + thumb_func_end sub_81CDCEC + + thumb_func_start sub_81CDD04 +sub_81CDD04: @ 81CDD04 + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + movs r0, 0xB + bl GetSubstructPtr + lsls r4, 6 + ldr r1, =0x00006368 + adds r4, r1 + adds r0, r4 + pop {r4} + pop {r1} + bx r1 + .pool + thumb_func_end sub_81CDD04 + + thumb_func_start sub_81CDD24 +sub_81CDD24: @ 81CDD24 + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + movs r0, 0xB + bl GetSubstructPtr + lsls r1, r4, 1 + adds r1, r4 + lsls r1, 3 + ldr r2, =0x00006320 + adds r1, r2 + adds r0, r1 + pop {r4} + pop {r1} + bx r1 + .pool + thumb_func_end sub_81CDD24 + + thumb_func_start sub_81CDD48 +sub_81CDD48: @ 81CDD48 + push {lr} + movs r0, 0x12 + bl GetSubstructPtr + ldrh r1, [r0, 0x2] + lsls r1, 2 + adds r0, r1 + ldrh r0, [r0, 0x6] + pop {r1} + bx r1 + thumb_func_end sub_81CDD48 + + thumb_func_start sub_81CDD5C +sub_81CDD5C: @ 81CDD5C + push {lr} + movs r0, 0xB + bl GetSubstructPtr + movs r1, 0xC6 + lsls r1, 7 + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0x1 + beq _081CDD74 + movs r0, 0 + b _081CDD76 +_081CDD74: + movs r0, 0x1 +_081CDD76: + pop {r1} + bx r1 + thumb_func_end sub_81CDD5C + + thumb_func_start sub_81CDD7C +sub_81CDD7C: @ 81CDD7C + push {lr} + movs r0, 0xB + bl GetSubstructPtr + adds r2, r0, 0 + movs r1, 0xC6 + lsls r1, 7 + adds r0, r2, r1 + ldrb r0, [r0] + cmp r0, 0x1 + beq _081CDD96 + movs r0, 0 + b _081CDDA6 +_081CDD96: + ldr r3, =0x00006786 + adds r0, r2, r3 + movs r1, 0 + ldrsb r1, [r0, r1] + subs r3, 0x3 + adds r0, r2, r3 + adds r0, r1 + ldrb r0, [r0] +_081CDDA6: + pop {r1} + bx r1 + .pool + thumb_func_end sub_81CDD7C + + thumb_func_start sub_81CDDB0 +sub_81CDDB0: @ 81CDDB0 + push {lr} + movs r0, 0xB + bl GetSubstructPtr + ldr r2, =0x00006786 + adds r1, r0, r2 + ldrb r1, [r1] + lsls r1, 24 + asrs r1, 24 + subs r2, 0x6 + adds r0, r2 + adds r0, r1 + ldrb r0, [r0] + pop {r1} + bx r1 + .pool + thumb_func_end sub_81CDDB0 + + .align 2, 0 @ Don't pad with nop. diff --git a/asm/pokenav_unk_7.s b/asm/pokenav_unk_7.s new file mode 100644 index 000000000..6c363c01f --- /dev/null +++ b/asm/pokenav_unk_7.s @@ -0,0 +1,2001 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .syntax unified + +@ File centered around AllocSubstruct(0xC) + + thumb_func_start sub_81CDDD4 +sub_81CDDD4: @ 81CDDD4 + push {r4,lr} + ldr r1, =0x000038ac + movs r0, 0xC + bl AllocSubstruct + adds r4, r0, 0 + cmp r4, 0 + beq _081CDE24 + ldr r0, =0x00001816 + adds r1, r4, r0 + movs r0, 0xFF + strb r0, [r1] + ldr r0, =sub_81CDE94 + movs r1, 0x1 + bl CreateLoopedTask + str r0, [r4] + ldr r0, =0x00001810 + adds r1, r4, r0 + ldr r0, =sub_81CDE80 + str r0, [r1] + ldr r0, =0x00002908 + adds r1, r4, r0 + movs r0, 0 + strb r0, [r1] + movs r0, 0x1 + b _081CDE26 + .pool +_081CDE24: + movs r0, 0 +_081CDE26: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_81CDDD4 + + thumb_func_start sub_81CDE2C +sub_81CDE2C: @ 81CDE2C + push {r4,r5,lr} + adds r4, r0, 0 + movs r0, 0xC + bl GetSubstructPtr + adds r5, r0, 0 + ldr r0, =gUnknown_08623384 + lsls r4, 2 + adds r4, r0 + ldr r0, [r4] + movs r1, 0x1 + bl CreateLoopedTask + str r0, [r5] + ldr r0, =0x00001810 + adds r5, r0 + ldr r0, =sub_81CDE80 + str r0, [r5] + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81CDE2C + + thumb_func_start sub_81CDE64 +sub_81CDE64: @ 81CDE64 + push {lr} + movs r0, 0xC + bl GetSubstructPtr + ldr r1, =0x00001810 + adds r0, r1 + ldr r0, [r0] + bl _call_via_r0 + pop {r1} + bx r1 + .pool + thumb_func_end sub_81CDE64 + + thumb_func_start sub_81CDE80 +sub_81CDE80: @ 81CDE80 + push {lr} + movs r0, 0xC + bl GetSubstructPtr + ldr r0, [r0] + bl IsLoopedTaskActive + pop {r1} + bx r1 + thumb_func_end sub_81CDE80 + + thumb_func_start sub_81CDE94 +sub_81CDE94: @ 81CDE94 + push {r4-r6,lr} + sub sp, 0xC + adds r4, r0, 0 + movs r0, 0xC + bl GetSubstructPtr + adds r5, r0, 0 + cmp r4, 0x14 + bls _081CDEA8 + b _081CE2C4 +_081CDEA8: + lsls r0, r4, 2 + ldr r1, =_081CDEB8 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .pool + .align 2, 0 +_081CDEB8: + .4byte _081CDF0C + .4byte _081CDF18 + .4byte _081CDF94 + .4byte _081CDFB8 + .4byte _081CE030 + .4byte _081CE074 + .4byte _081CE0B0 + .4byte _081CE118 + .4byte _081CE120 + .4byte _081CE126 + .4byte _081CE136 + .4byte _081CE146 + .4byte _081CE156 + .4byte _081CE16C + .4byte _081CE1C8 + .4byte _081CE1EC + .4byte _081CE218 + .4byte _081CE23C + .4byte _081CE24A + .4byte _081CE25A + .4byte _081CE262 +_081CDF0C: + bl sub_81CD3C4 + cmp r0, 0x1 + beq _081CDF16 + b _081CE2C0 +_081CDF16: + b _081CDFB0 +_081CDF18: + ldr r0, =gUnknown_08623358 + movs r1, 0x3 + bl InitBgTemplates + movs r0, 0x1 + movs r1, 0 + movs r2, 0 + bl ChangeBgX + movs r0, 0x1 + movs r1, 0 + movs r2, 0 + bl ChangeBgY + movs r0, 0x2 + movs r1, 0 + movs r2, 0 + bl ChangeBgX + movs r0, 0x2 + movs r1, 0 + movs r2, 0 + bl ChangeBgY + movs r0, 0x3 + movs r1, 0 + movs r2, 0 + bl ChangeBgX + movs r0, 0x3 + movs r1, 0 + movs r2, 0 + bl ChangeBgY + ldr r1, =0x00007940 + movs r0, 0 + bl SetGpuReg + ldr r1, =0x00000844 + movs r0, 0x50 + bl SetGpuReg + ldr r1, =0x0000040b + movs r0, 0x52 + bl SetGpuReg + ldr r1, =gPokenavCondition_Gfx + movs r0, 0 + str r0, [sp] + movs r0, 0x3 + b _081CDFA8 + .pool +_081CDF94: + bl free_temp_tile_data_buffers_if_possible + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0 + beq _081CDFA2 + b _081CE2C0 +_081CDFA2: + ldr r1, =gUnknown_08623228 + str r0, [sp] + movs r0, 0x2 +_081CDFA8: + movs r2, 0 + movs r3, 0 + bl decompress_and_copy_tile_data_to_vram +_081CDFB0: + movs r0, 0 + b _081CE2C6 + .pool +_081CDFB8: + bl free_temp_tile_data_buffers_if_possible + lsls r0, 24 + cmp r0, 0 + beq _081CDFC4 + b _081CE2C0 +_081CDFC4: + ldr r0, =gPokenavCondition_Tilemap + adds r4, r5, 0x4 + adds r1, r4, 0 + bl LZ77UnCompVram + movs r0, 0x3 + adds r1, r4, 0 + bl SetBgTilemapBuffer + bl sub_81CDD5C + cmp r0, 0x1 + bne _081CDFF2 + ldr r1, =gPokenavOptions_Tilemap + movs r0, 0x9 + str r0, [sp] + movs r0, 0x4 + str r0, [sp, 0x4] + movs r0, 0x3 + movs r2, 0 + movs r3, 0x5 + bl CopyToBgTilemapBufferRect +_081CDFF2: + movs r0, 0x3 + bl CopyBgTilemapBufferToVram + ldr r0, =gPokenavCondition_Pal + movs r1, 0x10 + movs r2, 0x20 + bl CopyPaletteIntoBufferUnfaded + ldr r0, =gUnknown_08623208 + movs r1, 0xF0 + movs r2, 0x20 + bl CopyPaletteIntoBufferUnfaded + ldr r0, =0x00001814 + adds r1, r5, r0 + ldr r0, =0x0000ffb0 + strh r0, [r1] + b _081CDFB0 + .pool +_081CE030: + bl free_temp_tile_data_buffers_if_possible + lsls r0, 24 + cmp r0, 0 + beq _081CE03C + b _081CE2C0 +_081CE03C: + ldr r0, =gUnknown_0862323C + ldr r1, =0x00001004 + adds r4, r5, r1 + adds r1, r4, 0 + bl LZ77UnCompVram + movs r0, 0x2 + adds r1, r4, 0 + bl SetBgTilemapBuffer + movs r0, 0x2 + bl CopyBgTilemapBufferToVram + ldr r0, =gUnknown_086231E8 + movs r1, 0x30 + movs r2, 0x20 + bl CopyPaletteIntoBufferUnfaded + movs r0, 0x2 + bl sub_81D21DC + b _081CDFB0 + .pool +_081CE074: + movs r0, 0x1 + movs r1, 0 + movs r2, 0 + movs r3, 0x1 + bl sub_8199DF0 + movs r0, 0x1 + movs r1, 0x11 + movs r2, 0x1 + movs r3, 0x1 + bl sub_8199DF0 + movs r0, 0 + str r0, [sp, 0x8] + ldr r2, =0x00000804 + adds r4, r5, r2 + ldr r2, =0x05000200 + add r0, sp, 0x8 + adds r1, r4, 0 + bl CpuSet + movs r0, 0x1 + adds r1, r4, 0 + bl SetBgTilemapBuffer + b _081CDFB0 + .pool +_081CE0B0: + bl free_temp_tile_data_buffers_if_possible + lsls r0, 24 + cmp r0, 0 + beq _081CE0BC + b _081CE2C0 +_081CE0BC: + ldr r0, =gUnknown_08623364 + bl AddWindow + movs r2, 0xC1 + lsls r2, 5 + adds r1, r5, r2 + strb r0, [r1] + bl sub_81CDD5C + cmp r0, 0x1 + bne _081CE0F6 + ldr r0, =gUnknown_0862336C + bl AddWindow + ldr r2, =0x00001821 + adds r1, r5, r2 + strb r0, [r1] + ldr r0, =gUnknown_08623374 + bl AddWindow + ldr r2, =0x00001822 + adds r1, r5, r2 + strb r0, [r1] + ldr r0, =gUnknown_0862337C + bl AddWindow + ldr r2, =0x00001823 + adds r1, r5, r2 + strb r0, [r1] +_081CE0F6: + bl DeactivateAllTextPrinters + b _081CDFB0 + .pool +_081CE118: + movs r0, 0 + bl sub_81CED30 + b _081CDFB0 +_081CE120: + bl sub_81CE9E4 + b _081CDFB0 +_081CE126: + bl sub_81CDD5C + cmp r0, 0x1 + beq _081CE130 + b _081CDFB0 +_081CE130: + bl sub_81CE934 + b _081CDFB0 +_081CE136: + bl sub_81CDC84 + adds r1, r0, 0 + lsls r1, 24 + asrs r1, 8 + lsrs r1, 16 + movs r0, 0 + b _081CE164 +_081CE146: + bl sub_81CDC84 + adds r1, r0, 0 + lsls r1, 24 + asrs r1, 8 + lsrs r1, 16 + movs r0, 0x1 + b _081CE164 +_081CE156: + bl sub_81CDC84 + adds r1, r0, 0 + lsls r1, 24 + asrs r1, 8 + lsrs r1, 16 + movs r0, 0x2 +_081CE164: + movs r2, 0x1 + bl sub_81CE754 + b _081CDFB0 +_081CE16C: + bl sub_81CDC84 + adds r1, r0, 0 + lsls r1, 24 + asrs r1, 8 + lsrs r1, 16 + movs r0, 0x3 + movs r2, 0x1 + bl sub_81CE754 + cmp r0, 0x1 + beq _081CE186 + b _081CE2C0 +_081CE186: + movs r1, 0xC1 + lsls r1, 5 + adds r0, r5, r1 + ldrb r0, [r0] + bl PutWindowTilemap + bl sub_81CDD5C + cmp r0, 0x1 + beq _081CE19C + b _081CDFB0 +_081CE19C: + ldr r2, =0x00001821 + adds r0, r5, r2 + ldrb r0, [r0] + bl PutWindowTilemap + ldr r1, =0x00001822 + adds r0, r5, r1 + ldrb r0, [r0] + bl PutWindowTilemap + ldr r2, =0x00001823 + adds r0, r5, r2 + ldrb r0, [r0] + bl PutWindowTilemap + b _081CDFB0 + .pool +_081CE1C8: + movs r0, 0x1 + bl ShowBg + movs r0, 0x2 + bl HideBg + movs r0, 0x3 + bl ShowBg + bl sub_81CDD5C + cmp r0, 0x1 + beq _081CE1E4 + b _081CDFB0 +_081CE1E4: + movs r0, 0x4 + bl sub_81C7BA4 + b _081CDFB0 +_081CE1EC: + movs r0, 0x1 + bl sub_81C7AC0 + bl sub_81CDD5C + cmp r0, 0 + beq _081CE1FC + b _081CDFB0 +_081CE1FC: + movs r0, 0x6 + bl LoadLeftHeaderGfxForIndex + movs r0, 0x1 + movs r1, 0x1 + movs r2, 0 + bl sub_81C7FA0 + movs r0, 0x6 + movs r1, 0x1 + movs r2, 0 + bl sub_81C7FA0 + b _081CDFB0 +_081CE218: + bl IsPaletteFadeActive + cmp r0, 0 + bne _081CE2C0 + bl sub_81CDD5C + cmp r0, 0 + bne _081CE230 + bl sub_81C8010 + cmp r0, 0 + bne _081CE2C0 +_081CE230: + ldr r0, =sub_81CEE44 + bl SetVBlankCallback_ + b _081CDFB0 + .pool +_081CE23C: + bl sub_81CEE90 + bl sub_81CDC70 + bl sub_81D20AC + b _081CDFB0 +_081CE24A: + bl sub_81CDC70 + bl sub_81D20BC + lsls r0, 24 + cmp r0, 0 + bne _081CE2C0 + b _081CDFB0 +_081CE25A: + movs r0, 0x1 + bl sub_81CEE74 + b _081CDFB0 +_081CE262: + bl sub_81CDC70 + ldr r2, =0x00001814 + adds r1, r5, r2 + bl sub_81D3178 + lsls r0, 24 + cmp r0, 0 + bne _081CE2C0 + ldr r0, =0x000028e0 + adds r6, r5, r0 + adds r0, r6, 0 + bl sub_81D3464 + bl sub_81CDD5C + cmp r0, 0x1 + beq _081CE298 + bl sub_81CDC60 + adds r4, r0, 0 + bl sub_81CDC50 + lsls r4, 16 + lsls r0, 16 + cmp r4, r0 + beq _081CE2C4 +_081CE298: + ldr r1, =0x00001816 + adds r0, r5, r1 + ldrb r4, [r0] + bl sub_81CDDB0 + adds r2, r0, 0 + lsls r2, 24 + lsrs r2, 24 + adds r0, r6, 0 + adds r1, r4, 0 + bl sub_81D3480 + b _081CE2C4 + .pool +_081CE2C0: + movs r0, 0x2 + b _081CE2C6 +_081CE2C4: + movs r0, 0x4 +_081CE2C6: + add sp, 0xC + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end sub_81CDE94 + + thumb_func_start sub_81CE2D0 +sub_81CE2D0: @ 81CE2D0 + push {r4,r5,lr} + adds r4, r0, 0 + movs r0, 0xC + bl GetSubstructPtr + adds r5, r0, 0 + cmp r4, 0x1 + beq _081CE308 + cmp r4, 0x1 + bgt _081CE2EA + cmp r4, 0 + beq _081CE2F4 + b _081CE374 +_081CE2EA: + cmp r4, 0x2 + beq _081CE328 + cmp r4, 0x3 + beq _081CE33E + b _081CE374 +_081CE2F4: + bl sub_81CEEC8 + ldr r1, =0x000028e0 + adds r0, r5, r1 + bl sub_81D3520 + movs r0, 0x1 + b _081CE376 + .pool +_081CE308: + bl sub_81CDC70 + ldr r2, =0x00001814 + adds r1, r5, r2 + bl sub_81D31A4 + lsls r0, 24 + cmp r0, 0 + bne _081CE34E + movs r0, 0 + bl sub_81CEE74 + movs r0, 0x1 + b _081CE376 + .pool +_081CE328: + movs r0, 0 + bl sub_81C7AC0 + bl sub_81CDD5C + cmp r0, 0 + bne _081CE33A + bl sub_81C78A0 +_081CE33A: + movs r0, 0 + b _081CE376 +_081CE33E: + bl IsPaletteFadeActive + cmp r0, 0 + bne _081CE34E + bl MainMenuLoopedTaskIsBusy + cmp r0, 0 + beq _081CE352 +_081CE34E: + movs r0, 0x2 + b _081CE376 +_081CE352: + ldr r1, =0x000028e0 + adds r0, r5, r1 + bl sub_81D354C + movs r0, 0x1 + bl HideBg + movs r0, 0x2 + bl HideBg + movs r0, 0x3 + bl HideBg + movs r0, 0x1 + b _081CE376 + .pool +_081CE374: + movs r0, 0x4 +_081CE376: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_81CE2D0 + + thumb_func_start sub_81CE37C +sub_81CE37C: @ 81CE37C + push {r4-r6,lr} + adds r4, r0, 0 + movs r0, 0xC + bl GetSubstructPtr + adds r6, r0, 0 + bl sub_81CDC70 + adds r2, r0, 0 + cmp r4, 0x9 + bls _081CE394 + b _081CE4D0 +_081CE394: + lsls r0, r4, 2 + ldr r1, =_081CE3A4 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .pool + .align 2, 0 +_081CE3A4: + .4byte _081CE3CC + .4byte _081CE3D0 + .4byte _081CE3DA + .4byte _081CE3F0 + .4byte _081CE3F8 + .4byte _081CE418 + .4byte _081CE428 + .4byte _081CE438 + .4byte _081CE44E + .4byte _081CE468 +_081CE3CC: + movs r0, 0 + b _081CE3D2 +_081CE3D0: + movs r0, 0x1 +_081CE3D2: + bl sub_81CD548 +_081CE3D6: + movs r0, 0x1 + b _081CE4D2 +_081CE3DA: + movs r0, 0x2 + bl sub_81CD548 + ldr r1, =0x000028e0 + adds r0, r6, r1 + bl sub_81D3520 + b _081CE3D6 + .pool +_081CE3F0: + adds r0, r2, 0 + bl sub_81D2074 + b _081CE3D6 +_081CE3F8: + ldr r1, =0x00001814 + adds r0, r6, r1 + bl sub_81D3150 + lsls r0, 24 + cmp r0, 0 + bne _081CE4CC + bl sub_81CDC84 + lsls r0, 24 + lsrs r0, 24 + bl sub_81CED30 + b _081CE3D6 + .pool +_081CE418: + bl sub_81CDC84 + adds r1, r0, 0 + lsls r1, 24 + asrs r1, 8 + lsrs r1, 16 + movs r0, 0 + b _081CE446 +_081CE428: + bl sub_81CDC84 + adds r1, r0, 0 + lsls r1, 24 + asrs r1, 8 + lsrs r1, 16 + movs r0, 0x1 + b _081CE446 +_081CE438: + bl sub_81CDC84 + adds r1, r0, 0 + lsls r1, 24 + asrs r1, 8 + lsrs r1, 16 + movs r0, 0x2 +_081CE446: + movs r2, 0 + bl sub_81CE754 + b _081CE3D6 +_081CE44E: + bl sub_81CDC84 + adds r1, r0, 0 + lsls r1, 24 + asrs r1, 8 + lsrs r1, 16 + movs r0, 0x3 + movs r2, 0 + bl sub_81CE754 + cmp r0, 0x1 + beq _081CE3D6 + b _081CE4CC +_081CE468: + bl sub_81CDC70 + adds r2, r0, 0 + ldr r0, =0x00001814 + adds r1, r6, r0 + adds r0, r2, 0 + bl sub_81D3178 + lsls r0, 24 + cmp r0, 0 + bne _081CE4CC + ldr r1, =0x000028e0 + adds r0, r6, r1 + bl sub_81D3464 + bl sub_81CDD5C + cmp r0, 0x1 + beq _081CE4A0 + bl sub_81CDC60 + adds r4, r0, 0 + bl sub_81CDC50 + lsls r4, 16 + lsls r0, 16 + cmp r4, r0 + beq _081CE3D6 +_081CE4A0: + ldr r0, =0x000028e0 + adds r5, r6, r0 + ldr r1, =0x00001816 + adds r0, r6, r1 + ldrb r4, [r0] + bl sub_81CDDB0 + adds r2, r0, 0 + lsls r2, 24 + lsrs r2, 24 + adds r0, r5, 0 + adds r1, r4, 0 + bl sub_81D3480 + b _081CE3D6 + .pool +_081CE4CC: + movs r0, 0x2 + b _081CE4D2 +_081CE4D0: + movs r0, 0x4 +_081CE4D2: + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end sub_81CE37C + + thumb_func_start sub_81CE4D8 +sub_81CE4D8: @ 81CE4D8 + push {r4,r5,lr} + adds r4, r0, 0 + movs r0, 0xC + bl GetSubstructPtr + adds r5, r0, 0 + cmp r4, 0x8 + bhi _081CE5DC + lsls r0, r4, 2 + ldr r1, =_081CE4F8 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .pool + .align 2, 0 +_081CE4F8: + .4byte _081CE51C + .4byte _081CE520 + .4byte _081CE524 + .4byte _081CE52E + .4byte _081CE53E + .4byte _081CE54E + .4byte _081CE55E + .4byte _081CE576 + .4byte _081CE592 +_081CE51C: + movs r0, 0 + b _081CE526 +_081CE520: + movs r0, 0x1 + b _081CE526 +_081CE524: + movs r0, 0x2 +_081CE526: + bl sub_81CD548 + movs r0, 0x1 + b _081CE5DE +_081CE52E: + bl sub_81CDC84 + lsls r0, 24 + lsrs r0, 24 + bl sub_81CED30 + movs r0, 0x1 + b _081CE5DE +_081CE53E: + bl sub_81CDC84 + adds r1, r0, 0 + lsls r1, 24 + asrs r1, 8 + lsrs r1, 16 + movs r0, 0 + b _081CE56C +_081CE54E: + bl sub_81CDC84 + adds r1, r0, 0 + lsls r1, 24 + asrs r1, 8 + lsrs r1, 16 + movs r0, 0x1 + b _081CE56C +_081CE55E: + bl sub_81CDC84 + adds r1, r0, 0 + lsls r1, 24 + asrs r1, 8 + lsrs r1, 16 + movs r0, 0x2 +_081CE56C: + movs r2, 0 + bl sub_81CE754 + movs r0, 0x1 + b _081CE5DE +_081CE576: + bl sub_81CDC84 + adds r1, r0, 0 + lsls r1, 24 + asrs r1, 8 + lsrs r1, 16 + movs r0, 0x3 + movs r2, 0 + bl sub_81CE754 + cmp r0, 0x1 + bne _081CE5D8 + movs r0, 0x1 + b _081CE5DE +_081CE592: + bl sub_81CDC70 + ldr r2, =0x00001814 + adds r1, r5, r2 + bl sub_81D3178 + lsls r0, 24 + cmp r0, 0 + bne _081CE5D8 + ldr r0, =0x000028e0 + adds r4, r5, r0 + adds r0, r4, 0 + bl sub_81D3464 + ldr r1, =0x00001816 + adds r0, r5, r1 + ldrb r5, [r0] + bl sub_81CDDB0 + adds r2, r0, 0 + lsls r2, 24 + lsrs r2, 24 + adds r0, r4, 0 + adds r1, r5, 0 + bl sub_81D3480 + movs r0, 0x1 + b _081CE5DE + .pool +_081CE5D8: + movs r0, 0x2 + b _081CE5DE +_081CE5DC: + movs r0, 0x4 +_081CE5DE: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_81CE4D8 + + thumb_func_start sub_81CE5E4 +sub_81CE5E4: @ 81CE5E4 + push {r4,r5,lr} + adds r4, r0, 0 + movs r0, 0xC + bl GetSubstructPtr + adds r5, r0, 0 + cmp r4, 0x7 + bhi _081CE6B2 + lsls r0, r4, 2 + ldr r1, =_081CE604 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .pool + .align 2, 0 +_081CE604: + .4byte _081CE624 + .4byte _081CE628 + .4byte _081CE632 + .4byte _081CE648 + .4byte _081CE660 + .4byte _081CE670 + .4byte _081CE680 + .4byte _081CE696 +_081CE624: + movs r0, 0 + b _081CE62A +_081CE628: + movs r0, 0x1 +_081CE62A: + bl sub_81CD548 +_081CE62E: + movs r0, 0x1 + b _081CE6B4 +_081CE632: + movs r0, 0x2 + bl sub_81CD548 + ldr r1, =0x000028e0 + adds r0, r5, r1 + bl sub_81D3520 + b _081CE62E + .pool +_081CE648: + bl sub_81CDC70 + ldr r2, =0x00001814 + adds r1, r5, r2 + bl sub_81D31A4 + lsls r0, 24 + cmp r0, 0 + beq _081CE62E + b _081CE6AE + .pool +_081CE660: + bl sub_81CDC84 + adds r1, r0, 0 + lsls r1, 24 + asrs r1, 8 + lsrs r1, 16 + movs r0, 0 + b _081CE68E +_081CE670: + bl sub_81CDC84 + adds r1, r0, 0 + lsls r1, 24 + asrs r1, 8 + lsrs r1, 16 + movs r0, 0x1 + b _081CE68E +_081CE680: + bl sub_81CDC84 + adds r1, r0, 0 + lsls r1, 24 + asrs r1, 8 + lsrs r1, 16 + movs r0, 0x2 +_081CE68E: + movs r2, 0 + bl sub_81CE754 + b _081CE62E +_081CE696: + bl sub_81CDC84 + adds r1, r0, 0 + lsls r1, 24 + asrs r1, 8 + lsrs r1, 16 + movs r0, 0x3 + movs r2, 0 + bl sub_81CE754 + cmp r0, 0x1 + beq _081CE62E +_081CE6AE: + movs r0, 0x2 + b _081CE6B4 +_081CE6B2: + movs r0, 0x4 +_081CE6B4: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_81CE5E4 + + thumb_func_start sub_81CE6BC +sub_81CE6BC: @ 81CE6BC + push {lr} + cmp r0, 0x1 + beq _081CE6E6 + cmp r0, 0x1 + bgt _081CE6CC + cmp r0, 0 + beq _081CE6D2 + b _081CE6FA +_081CE6CC: + cmp r0, 0x2 + beq _081CE6EE + b _081CE6FA +_081CE6D2: + bl sub_81CDD7C + lsls r0, 24 + lsrs r0, 24 + movs r1, 0xB0 + movs r2, 0x20 + bl sub_811FAA4 +_081CE6E2: + movs r0, 0x1 + b _081CE6FC +_081CE6E6: + movs r0, 0x5 + bl sub_81C7BA4 + b _081CE6E2 +_081CE6EE: + bl IsDma3ManagerBusyWithBgCopy_ + cmp r0, 0x1 + bne _081CE6E2 + movs r0, 0x2 + b _081CE6FC +_081CE6FA: + movs r0, 0x4 +_081CE6FC: + pop {r1} + bx r1 + thumb_func_end sub_81CE6BC + + thumb_func_start sub_81CE700 +sub_81CE700: @ 81CE700 + push {lr} + cmp r0, 0x1 + beq _081CE71E + cmp r0, 0x1 + bgt _081CE710 + cmp r0, 0 + beq _081CE716 + b _081CE732 +_081CE710: + cmp r0, 0x2 + beq _081CE726 + b _081CE732 +_081CE716: + bl sub_811FAF8 +_081CE71A: + movs r0, 0x1 + b _081CE734 +_081CE71E: + movs r0, 0x4 + bl sub_81C7BA4 + b _081CE71A +_081CE726: + bl IsDma3ManagerBusyWithBgCopy_ + cmp r0, 0x1 + bne _081CE71A + movs r0, 0x2 + b _081CE734 +_081CE732: + movs r0, 0x4 +_081CE734: + pop {r1} + bx r1 + thumb_func_end sub_81CE700 + + thumb_func_start sub_81CE738 +sub_81CE738: @ 81CE738 + push {lr} + lsls r1, 16 + lsrs r1, 16 + movs r2, 0x1 + movs r3, 0x4 + bl ConvertIntToDecimalStringN + ldr r1, =gText_Number2 + bl StringCopy + pop {r1} + bx r1 + .pool + thumb_func_end sub_81CE738 + + thumb_func_start sub_81CE754 +sub_81CE754: @ 81CE754 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x2C + lsls r0, 24 + lsrs r4, r0, 24 + adds r7, r4, 0 + lsls r1, 16 + lsrs r1, 16 + mov r8, r1 + lsls r2, 24 + lsrs r5, r2, 24 + movs r0, 0xC + bl GetSubstructPtr + adds r6, r0, 0 + cmp r4, 0x1 + beq _081CE7B8 + cmp r4, 0x1 + bgt _081CE782 + cmp r4, 0 + beq _081CE78E + b _081CE924 +_081CE782: + cmp r4, 0x2 + beq _081CE800 + cmp r4, 0x3 + bne _081CE78C + b _081CE89C +_081CE78C: + b _081CE924 +_081CE78E: + movs r1, 0xC1 + lsls r1, 5 + adds r0, r6, r1 + ldrb r0, [r0] + movs r1, 0 + bl FillWindowPixelBuffer + bl sub_81CDD5C + cmp r0, 0x1 + beq _081CE7A6 + b _081CE924 +_081CE7A6: + ldr r1, =0x00001821 + adds r0, r6, r1 + ldrb r0, [r0] + movs r1, 0 + bl FillWindowPixelBuffer + b _081CE924 + .pool +_081CE7B8: + bl sub_81CDC60 + adds r4, r0, 0 + lsls r4, 16 + lsrs r4, 16 + bl sub_81CDC50 + lsls r0, 16 + lsrs r0, 16 + subs r0, 0x1 + cmp r4, r0 + bne _081CE7DA + bl sub_81CDD5C + cmp r0, 0x1 + beq _081CE7DA + b _081CE924 +_081CE7DA: + mov r1, r8 + lsls r0, r1, 24 + lsrs r0, 24 + bl sub_81CDD04 + adds r2, r0, 0 + movs r1, 0xC1 + lsls r1, 5 + adds r0, r6, r1 + ldrb r0, [r0] + str r7, [sp] + movs r1, 0 + str r1, [sp, 0x4] + str r1, [sp, 0x8] + movs r1, 0x1 + movs r3, 0 + bl AddTextPrinterParameterized + b _081CE924 +_081CE800: + bl sub_81CDD5C + adds r7, r0, 0 + cmp r7, 0x1 + beq _081CE80C + b _081CE924 +_081CE80C: + mov r1, r8 + lsls r0, r1, 24 + lsrs r0, 24 + bl sub_81CDD24 + adds r2, r0, 0 + movs r1, 0xC1 + lsls r1, 5 + adds r0, r6, r1 + ldrb r0, [r0] + movs r1, 0x11 + str r1, [sp] + movs r4, 0 + str r4, [sp, 0x4] + str r4, [sp, 0x8] + movs r1, 0x1 + movs r3, 0 + bl AddTextPrinterParameterized + add r1, sp, 0xC + movs r0, 0xFC + strb r0, [r1] + movs r0, 0x4 + strb r0, [r1, 0x1] + movs r0, 0x8 + strb r0, [r1, 0x2] + adds r0, r1, 0 + strb r4, [r0, 0x3] + movs r0, 0x9 + strb r0, [r1, 0x4] + mov r5, sp + adds r5, 0x11 + ldr r1, =gText_Number2 + adds r0, r5, 0 + bl StringCopy + ldr r0, =0x00001821 + adds r6, r0 + ldrb r0, [r6] + str r7, [sp] + str r4, [sp, 0x4] + str r4, [sp, 0x8] + movs r1, 0x1 + add r2, sp, 0xC + movs r3, 0x4 + bl AddTextPrinterParameterized + bl sub_81CDD48 + adds r1, r0, 0 + lsls r1, 16 + lsrs r1, 16 + adds r0, r5, 0 + movs r2, 0x1 + movs r3, 0x4 + bl ConvertIntToDecimalStringN + ldrb r0, [r6] + str r7, [sp] + str r4, [sp, 0x4] + str r4, [sp, 0x8] + movs r1, 0x1 + add r2, sp, 0xC + movs r3, 0x1C + bl AddTextPrinterParameterized + b _081CE924 + .pool +_081CE89C: + ldr r1, =0x00002908 + adds r0, r6, r1 + ldrb r0, [r0] + cmp r0, 0 + beq _081CE8B0 + cmp r0, 0x1 + beq _081CE8EC + b _081CE924 + .pool +_081CE8B0: + cmp r5, 0 + beq _081CE8C4 + movs r1, 0xC1 + lsls r1, 5 + adds r0, r6, r1 + ldrb r0, [r0] + movs r1, 0x3 + bl CopyWindowToVram + b _081CE8D2 +_081CE8C4: + movs r1, 0xC1 + lsls r1, 5 + adds r0, r6, r1 + ldrb r0, [r0] + movs r1, 0x2 + bl CopyWindowToVram +_081CE8D2: + bl sub_81CDD5C + cmp r0, 0x1 + bne _081CE910 + ldr r0, =0x00002908 + adds r1, r6, r0 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + b _081CE924 + .pool +_081CE8EC: + cmp r5, 0 + beq _081CE904 + ldr r1, =0x00001821 + adds r0, r6, r1 + ldrb r0, [r0] + movs r1, 0x3 + bl CopyWindowToVram + b _081CE910 + .pool +_081CE904: + ldr r1, =0x00001821 + adds r0, r6, r1 + ldrb r0, [r0] + movs r1, 0x2 + bl CopyWindowToVram +_081CE910: + ldr r0, =0x00002908 + adds r1, r6, r0 + movs r0, 0 + strb r0, [r1] + movs r0, 0x1 + b _081CE926 + .pool +_081CE924: + movs r0, 0 +_081CE926: + add sp, 0x2C + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_81CE754 + + thumb_func_start sub_81CE934 +sub_81CE934: @ 81CE934 + push {r4,lr} + movs r0, 0xC + bl GetSubstructPtr + adds r4, r0, 0 + ldr r1, =0x00001822 + adds r0, r4, r1 + ldrb r0, [r0] + movs r1, 0x3 + bl CopyWindowToVram + ldr r0, =0x00001823 + adds r4, r0 + ldrb r0, [r4] + movs r1, 0x3 + bl CopyWindowToVram + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81CE934 + + thumb_func_start sub_81CE964 +sub_81CE964: @ 81CE964 + push {r4,r5,lr} + adds r5, r0, 0 + movs r0, 0x2E + ldrsh r4, [r5, r0] + bl sub_81CDC60 + lsls r0, 16 + lsrs r0, 16 + cmp r4, r0 + bne _081CE982 + adds r0, r5, 0 + movs r1, 0 + bl StartSpriteAnim + b _081CE98A +_081CE982: + adds r0, r5, 0 + movs r1, 0x1 + bl StartSpriteAnim +_081CE98A: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_81CE964 + + thumb_func_start sub_81CE990 +sub_81CE990: @ 81CE990 + push {r4,r5,lr} + adds r5, r0, 0 + bl sub_81CDC60 + adds r4, r0, 0 + lsls r4, 16 + lsrs r4, 16 + bl sub_81CDC50 + lsls r0, 16 + lsrs r0, 16 + subs r0, 0x1 + cmp r4, r0 + bne _081CE9B0 + movs r0, 0x65 + b _081CE9B2 +_081CE9B0: + movs r0, 0x66 +_081CE9B2: + bl IndexOfSpritePaletteTag + lsls r0, 4 + ldrb r2, [r5, 0x5] + movs r1, 0xF + ands r1, r2 + orrs r1, r0 + strb r1, [r5, 0x5] + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_81CE990 + + thumb_func_start sub_81CE9C8 +sub_81CE9C8: @ 81CE9C8 + push {r4,lr} + adds r4, r0, 0 + bl sub_81CDD7C + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + adds r0, r4, 0 + bl StartSpriteAnim + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_81CE9C8 + + thumb_func_start sub_81CE9E4 +sub_81CE9E4: @ 81CE9E4 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x58 + movs r0, 0xC + bl GetSubstructPtr + adds r6, r0, 0 + add r4, sp, 0x20 + add r5, sp, 0x38 + mov r0, sp + adds r1, r4, 0 + adds r2, r5, 0 + bl sub_81D321C + bl sub_81CDD5C + adds r7, r4, 0 + mov r10, r5 + cmp r0, 0x1 + bne _081CEA78 + ldr r1, =0x00001824 + adds r0, r6, r1 + movs r2, 0x6A + strh r2, [r0] + ldr r3, =0x00001826 + adds r1, r6, r3 + strh r2, [r1] + bl sub_811F90C + bl sub_811FA90 + ldr r2, =gUnknown_08623338 + movs r0, 0x69 + movs r1, 0x69 + bl sub_811FF94 + ldrb r1, [r0, 0x5] + movs r2, 0xC + orrs r1, r2 + strb r1, [r0, 0x5] + movs r1, 0xC0 + strh r1, [r0, 0x20] + movs r1, 0x20 + strh r1, [r0, 0x22] + ldr r1, =sub_81CE9C8 + str r1, [r0, 0x1C] + ldr r2, =0x000028dc + adds r1, r6, r2 + str r0, [r1] + movs r0, 0x69 + bl IndexOfSpritePaletteTag + lsls r0, 24 + lsrs r0, 24 + movs r1, 0 + bl sub_81C7990 + add r3, sp, 0x50 + mov r8, r3 + b _081CEBC6 + .pool +_081CEA78: + mov r0, sp + bl LoadSpriteSheets + mov r0, r10 + bl Pokenav_AllocAndLoadPalettes + movs r4, 0 + add r0, sp, 0x50 + mov r8, r0 + b _081CEAE8 +_081CEA8C: + lsls r2, r4, 2 + adds r2, r4 + lsls r2, 18 + movs r1, 0x80 + lsls r1, 12 + adds r2, r1 + asrs r2, 16 + adds r0, r7, 0 + movs r1, 0xE2 + movs r3, 0 + bl CreateSprite + lsls r0, 24 + lsrs r3, r0, 24 + cmp r3, 0x40 + beq _081CEAD8 + ldr r2, =0x00001806 + adds r0, r6, r2 + adds r0, r4 + strb r3, [r0] + ldr r2, =gSprites + lsls r0, r3, 4 + adds r0, r3 + lsls r0, 2 + adds r1, r0, r2 + strh r4, [r1, 0x2E] + adds r2, 0x1C + adds r0, r2 + ldr r1, =sub_81CE964 + str r1, [r0] + b _081CEAE2 + .pool +_081CEAD8: + ldr r3, =0x00001806 + adds r0, r6, r3 + adds r0, r4 + movs r1, 0xFF + strb r1, [r0] +_081CEAE2: + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 +_081CEAE8: + bl sub_81CDC50 + lsls r0, 16 + lsrs r0, 16 + subs r0, 0x1 + cmp r4, r0 + blt _081CEA8C + movs r0, 0x67 + strh r0, [r7] + ldr r0, =SpriteCallbackDummy + str r0, [r7, 0x14] + cmp r4, 0x5 + bhi _081CEB5C + ldr r0, =0x00001806 + adds r5, r6, r0 + ldr r1, =gSprites + mov r9, r1 +_081CEB0A: + lsls r2, r4, 2 + adds r2, r4 + lsls r2, 18 + movs r3, 0x80 + lsls r3, 12 + adds r2, r3 + asrs r2, 16 + adds r0, r7, 0 + movs r1, 0xE6 + movs r3, 0 + bl CreateSprite + lsls r0, 24 + lsrs r3, r0, 24 + cmp r3, 0x40 + beq _081CEB4C + adds r0, r5, r4 + strb r3, [r0] + lsls r1, r3, 4 + adds r1, r3 + lsls r1, 2 + add r1, r9 + ldrb r2, [r1, 0x3] + movs r0, 0x3F + ands r0, r2 + strb r0, [r1, 0x3] + b _081CEB52 + .pool +_081CEB4C: + adds r1, r5, r4 + movs r0, 0xFF + strb r0, [r1] +_081CEB52: + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, 0x5 + bls _081CEB0A +_081CEB5C: + movs r0, 0x66 + strh r0, [r7] + ldr r0, =sub_81CE990 + str r0, [r7, 0x14] + lsls r2, r4, 2 + adds r2, r4 + lsls r2, 18 + movs r0, 0x80 + lsls r0, 12 + adds r2, r0 + asrs r2, 16 + adds r0, r7, 0 + movs r1, 0xDE + movs r3, 0 + bl CreateSprite + lsls r0, 24 + lsrs r3, r0, 24 + cmp r3, 0x40 + beq _081CEBBC + ldr r1, =0x00001806 + adds r0, r6, r1 + adds r0, r4 + strb r3, [r0] + ldr r0, =gSprites + lsls r2, r3, 4 + adds r2, r3 + lsls r2, 2 + adds r2, r0 + ldrb r3, [r2, 0x1] + movs r1, 0x3F + adds r0, r1, 0 + ands r0, r3 + movs r3, 0x40 + orrs r0, r3 + strb r0, [r2, 0x1] + ldrb r0, [r2, 0x3] + ands r1, r0 + movs r0, 0x80 + orrs r1, r0 + strb r1, [r2, 0x3] + b _081CEBC6 + .pool +_081CEBBC: + ldr r2, =0x00001806 + adds r0, r6, r2 + adds r0, r4 + movs r1, 0xFF + strb r1, [r0] +_081CEBC6: + mov r0, r8 + mov r1, r10 + bl sub_81D32B0 + mov r0, r8 + bl LoadSpriteSheet + movs r0, 0 + mov r3, r10 + str r0, [r3, 0x8] + mov r0, r10 + bl Pokenav_AllocAndLoadPalettes + add sp, 0x58 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81CE9E4 + + thumb_func_start sub_81CEBF4 +sub_81CEBF4: @ 81CEBF4 + push {r4,r5,lr} + adds r5, r0, 0 + bl sub_81CDD5C + cmp r0, 0x1 + bne _081CEC28 + ldr r1, =0x000028dc + adds r0, r5, r1 + ldr r0, [r0] + bl DestroySprite + movs r0, 0x6A + bl FreeSpriteTilesByTag + movs r0, 0x69 + bl FreeSpriteTilesByTag + movs r0, 0x6A + bl FreeSpritePaletteByTag + movs r0, 0x69 + bl FreeSpritePaletteByTag + b _081CEC68 + .pool +_081CEC28: + movs r4, 0 +_081CEC2A: + ldr r1, =0x00001806 + adds r0, r5, r1 + adds r0, r4 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, =gSprites + adds r0, r1 + bl DestroySprite + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x6 + bls _081CEC2A + movs r0, 0x65 + bl FreeSpriteTilesByTag + movs r0, 0x66 + bl FreeSpriteTilesByTag + movs r0, 0x67 + bl FreeSpriteTilesByTag + movs r0, 0x65 + bl FreeSpritePaletteByTag + movs r0, 0x66 + bl FreeSpritePaletteByTag +_081CEC68: + ldr r0, =0x00001816 + adds r1, r5, r0 + ldrb r0, [r1] + cmp r0, 0xFF + beq _081CEC8E + adds r1, r0, 0 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, =gSprites + adds r0, r1 + bl DestroySprite + movs r0, 0x64 + bl FreeSpriteTilesByTag + movs r0, 0x64 + bl FreeSpritePaletteByTag +_081CEC8E: + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81CEBF4 + + thumb_func_start sub_81CECA0 +sub_81CECA0: @ 81CECA0 + push {r4,lr} + movs r0, 0xC + bl GetSubstructPtr + adds r4, r0, 0 + movs r1, 0xC1 + lsls r1, 5 + adds r0, r4, r1 + ldrb r0, [r0] + bl RemoveWindow + bl sub_81CDD5C + cmp r0, 0x1 + bne _081CECEC + ldr r1, =0x00001821 + adds r0, r4, r1 + ldrb r0, [r0] + bl RemoveWindow + ldr r1, =0x00001822 + adds r0, r4, r1 + ldrb r0, [r0] + bl RemoveWindow + ldr r1, =0x00001823 + adds r0, r4, r1 + ldrb r0, [r0] + bl RemoveWindow + b _081CECF0 + .pool +_081CECEC: + bl sub_81C7FDC +_081CECF0: + movs r1, 0x8A + lsls r1, 5 + movs r0, 0 + bl SetGpuReg + adds r0, r4, 0 + bl sub_81CEBF4 + bl sub_81CEE68 + movs r0, 0xC + bl FreePokenavSubstruct + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_81CECA0 + + thumb_func_start sub_81CED10 +sub_81CED10: @ 81CED10 + push {r4,lr} + adds r4, r0, 0 + movs r0, 0xC + bl GetSubstructPtr + ldr r1, =0x00001814 + adds r0, r1 + ldrh r0, [r0] + adds r0, 0x26 + strh r0, [r4, 0x20] + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81CED10 + + thumb_func_start sub_81CED30 +sub_81CED30: @ 81CED30 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x28 + lsls r0, 24 + lsrs r6, r0, 24 + movs r0, 0xC + bl GetSubstructPtr + mov r8, r0 + ldr r7, =0x00001816 + add r7, r8 + ldrb r0, [r7] + cmp r0, 0xFF + bne _081CEDFC + add r5, sp, 0x18 + add r4, sp, 0x20 + adds r0, r5, 0 + mov r1, sp + adds r2, r4, 0 + bl sub_81D31D0 + adds r0, r6, 0 + bl sub_81CDCB4 + str r0, [sp, 0x18] + adds r0, r6, 0 + bl sub_81CDCD4 + str r0, [sp, 0x20] + adds r0, r4, 0 + bl LoadSpritePalette + lsls r0, 24 + lsrs r0, 24 + ldr r4, =0x00001818 + add r4, r8 + strh r0, [r4] + adds r0, r5, 0 + bl LoadSpriteSheet + ldr r5, =0x0000181a + add r5, r8 + strh r0, [r5] + mov r0, sp + movs r1, 0x26 + movs r2, 0x68 + movs r3, 0 + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + strb r0, [r7] + cmp r0, 0x40 + bne _081CEDBC + movs r0, 0x64 + bl FreeSpriteTilesByTag + movs r0, 0x64 + bl FreeSpritePaletteByTag + movs r0, 0xFF + strb r0, [r7] + b _081CEE26 + .pool +_081CEDBC: + strb r0, [r7] + ldr r2, =gSprites + ldrb r1, [r7] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r2, 0x1C + adds r0, r2 + ldr r1, =sub_81CED10 + str r1, [r0] + ldr r1, =0x0000181c + add r1, r8 + ldrh r0, [r5] + lsls r0, 5 + ldr r2, =0x06010000 + adds r0, r2 + str r0, [r1] + ldrh r0, [r4] + lsls r0, 4 + movs r1, 0x80 + lsls r1, 1 + adds r0, r1 + strh r0, [r4] + b _081CEE26 + .pool +_081CEDFC: + adds r0, r6, 0 + bl sub_81CDCB4 + ldr r1, =0x0000181c + add r1, r8 + ldr r2, [r1] + ldr r1, =0x040000d4 + str r0, [r1] + str r2, [r1, 0x4] + ldr r0, =0x80000400 + str r0, [r1, 0x8] + ldr r0, [r1, 0x8] + adds r0, r6, 0 + bl sub_81CDCD4 + ldr r1, =0x00001818 + add r1, r8 + ldrh r1, [r1] + movs r2, 0x20 + bl LoadPalette +_081CEE26: + add sp, 0x28 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81CED30 + + thumb_func_start sub_81CEE44 +sub_81CEE44: @ 81CEE44 + push {r4,lr} + bl sub_81CDC70 + adds r4, r0, 0 + bl LoadOam + bl ProcessSpriteCopyRequests + bl TransferPlttBuffer + adds r0, r4, 0 + bl sub_81D2108 + bl ScanlineEffect_InitHBlankDmaTransfer + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_81CEE44 + + thumb_func_start sub_81CEE68 +sub_81CEE68: @ 81CEE68 + push {lr} + bl SetPokenavVBlankCallback + pop {r0} + bx r0 + thumb_func_end sub_81CEE68 + + thumb_func_start sub_81CEE74 +sub_81CEE74: @ 81CEE74 + push {lr} + lsls r0, 24 + cmp r0, 0 + beq _081CEE84 + movs r0, 0x2 + bl ShowBg + b _081CEE8A +_081CEE84: + movs r0, 0x2 + bl HideBg +_081CEE8A: + pop {r0} + bx r0 + thumb_func_end sub_81CEE74 + + thumb_func_start sub_81CEE90 +sub_81CEE90: @ 81CEE90 + push {r4,lr} + bl sub_81CDC70 + adds r4, r0, 0 + bl sub_81CDC84 + lsls r0, 24 + lsrs r0, 24 + ldr r1, =gUnknown_030012BC + strb r0, [r1] + adds r1, r4, 0 + adds r1, 0x50 + lsls r2, r0, 2 + adds r2, r0 + lsls r2, 2 + adds r2, 0x14 + adds r2, r4, r2 + adds r0, r4, 0 + bl sub_81D1F84 + adds r0, r4, 0 + bl sub_81D2074 + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81CEE90 + + thumb_func_start sub_81CEEC8 +sub_81CEEC8: @ 81CEEC8 + push {r4,r5,lr} + bl sub_81CDC70 + adds r5, r0, 0 + bl sub_81CDD5C + cmp r0, 0 + bne _081CEEF0 + bl sub_81CDC60 + adds r4, r0, 0 + lsls r4, 16 + lsrs r4, 16 + bl sub_81CDC50 + lsls r0, 16 + lsrs r0, 16 + subs r0, 0x1 + cmp r4, r0 + beq _081CEF0C +_081CEEF0: + bl sub_81CDC84 + lsls r0, 24 + asrs r0, 24 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 2 + adds r1, 0x14 + adds r1, r5, r1 + adds r2, r5, 0 + adds r2, 0x50 + adds r0, r5, 0 + bl sub_81D1F84 +_081CEF0C: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_81CEEC8 + + thumb_func_start sub_81CEF14 +sub_81CEF14: @ 81CEF14 + push {r4,lr} + movs r0, 0xC + bl GetSubstructPtr + adds r4, r0, 0 + bl sub_81CDD5C + cmp r0, 0x1 + beq _081CEF2A + movs r0, 0 + b _081CEF30 +_081CEF2A: + ldr r1, =0x00001828 + adds r0, r4, r1 + ldrb r0, [r0] +_081CEF30: + pop {r4} + pop {r1} + bx r1 + .pool + thumb_func_end sub_81CEF14 + + .align 2, 0 @ Don't pad with nop. diff --git a/asm/pokenav_unk_8.s b/asm/pokenav_unk_8.s new file mode 100644 index 000000000..5bba161bb --- /dev/null +++ b/asm/pokenav_unk_8.s @@ -0,0 +1,1377 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .syntax unified + +@ File centered around AllocSubstruct(7) + + thumb_func_start sub_81CEF3C +sub_81CEF3C: @ 81CEF3C + push {r4,lr} + movs r0, 0x7 + movs r1, 0x24 + bl AllocSubstruct + adds r4, r0, 0 + cmp r4, 0 + beq _081CEF90 + ldr r1, =0x000006ac + movs r0, 0x12 + bl AllocSubstruct + str r0, [r4, 0x20] + cmp r0, 0 + beq _081CEF90 + ldr r0, =sub_81CF010 + str r0, [r4] + ldr r0, =sub_81CF11C + movs r1, 0x1 + bl CreateLoopedTask + str r0, [r4, 0x4] + movs r0, 0 + str r0, [r4, 0x18] + bl sub_81C76AC + ldr r1, =gUnknown_086233A0 + lsls r0, 2 + adds r0, r1 + ldr r0, [r0] + str r0, [r4, 0x14] + movs r0, 0x1 + b _081CEF92 + .pool +_081CEF90: + movs r0, 0 +_081CEF92: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_81CEF3C + + thumb_func_start sub_81CEF98 +sub_81CEF98: @ 81CEF98 + push {r4,lr} + movs r0, 0x7 + movs r1, 0x24 + bl AllocSubstruct + adds r4, r0, 0 + cmp r4, 0 + beq _081CEFD4 + movs r0, 0x12 + bl GetSubstructPtr + str r0, [r4, 0x20] + ldr r0, =sub_81CF030 + str r0, [r4] + movs r0, 0x1 + str r0, [r4, 0x18] + bl sub_81C76AC + ldr r1, =gUnknown_086233A0 + lsls r0, 2 + adds r0, r1 + ldr r0, [r0] + str r0, [r4, 0x14] + movs r0, 0x1 + b _081CEFD6 + .pool +_081CEFD4: + movs r0, 0 +_081CEFD6: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_81CEF98 + + thumb_func_start sub_81CEFDC +sub_81CEFDC: @ 81CEFDC + push {lr} + movs r0, 0x7 + bl GetSubstructPtr + ldr r1, [r0] + bl _call_via_r1 + pop {r1} + bx r1 + thumb_func_end sub_81CEFDC + + thumb_func_start sub_81CEFF0 +sub_81CEFF0: @ 81CEFF0 + push {lr} + movs r0, 0x7 + bl GetSubstructPtr + ldr r0, [r0, 0x1C] + cmp r0, 0 + bne _081CF004 + movs r0, 0x12 + bl FreePokenavSubstruct +_081CF004: + movs r0, 0x7 + bl FreePokenavSubstruct + pop {r0} + bx r0 + thumb_func_end sub_81CEFF0 + + thumb_func_start sub_81CF010 +sub_81CF010: @ 81CF010 + push {r4,lr} + adds r4, r0, 0 + ldr r0, [r4, 0x4] + bl IsLoopedTaskActive + cmp r0, 0 + bne _081CF022 + ldr r0, =sub_81CF030 + str r0, [r4] +_081CF022: + movs r0, 0 + pop {r4} + pop {r1} + bx r1 + .pool + thumb_func_end sub_81CF010 + + thumb_func_start sub_81CF030 +sub_81CF030: @ 81CF030 + push {r4,r5,lr} + adds r4, r0, 0 + ldr r2, =gMain + ldrh r1, [r2, 0x30] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + beq _081CF048 + movs r0, 0x1 + b _081CF0A6 + .pool +_081CF048: + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _081CF054 + movs r0, 0x2 + b _081CF0A6 +_081CF054: + ldrh r1, [r2, 0x2E] + movs r0, 0x20 + ands r0, r1 + cmp r0, 0 + beq _081CF062 + movs r0, 0x3 + b _081CF0A6 +_081CF062: + movs r0, 0x10 + ands r0, r1 + lsls r0, 16 + lsrs r2, r0, 16 + cmp r2, 0 + beq _081CF072 + movs r0, 0x4 + b _081CF0A6 +_081CF072: + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _081CF088 + str r2, [r4, 0x1C] + ldr r0, =sub_81CF0B0 + str r0, [r4] + movs r0, 0x5 + b _081CF0A6 + .pool +_081CF088: + movs r5, 0x1 + adds r0, r5, 0 + ands r0, r1 + cmp r0, 0 + bne _081CF096 + movs r0, 0 + b _081CF0A6 +_081CF096: + bl GetSelectedMatchCall + ldr r1, [r4, 0x20] + strh r0, [r1, 0x2] + str r5, [r4, 0x1C] + ldr r0, =sub_81CF0B8 + str r0, [r4] + movs r0, 0x6 +_081CF0A6: + pop {r4,r5} + pop {r1} + bx r1 + .pool + thumb_func_end sub_81CF030 + + thumb_func_start sub_81CF0B0 +sub_81CF0B0: @ 81CF0B0 + ldr r0, =0x000186a3 + bx lr + .pool + thumb_func_end sub_81CF0B0 + + thumb_func_start sub_81CF0B8 +sub_81CF0B8: @ 81CF0B8 + ldr r0, =0x000186a9 + bx lr + .pool + thumb_func_end sub_81CF0B8 + + thumb_func_start sub_81CF0C0 +sub_81CF0C0: @ 81CF0C0 + push {lr} + movs r0, 0x7 + bl GetSubstructPtr + ldr r0, [r0, 0x18] + pop {r1} + bx r1 + thumb_func_end sub_81CF0C0 + + thumb_func_start sub_81CF0D0 +sub_81CF0D0: @ 81CF0D0 + push {lr} + movs r0, 0x7 + bl GetSubstructPtr + ldr r0, [r0, 0x20] + adds r0, 0x4 + pop {r1} + bx r1 + thumb_func_end sub_81CF0D0 + + thumb_func_start sub_81CF0E0 +sub_81CF0E0: @ 81CF0E0 + push {lr} + movs r0, 0x7 + bl GetSubstructPtr + ldr r0, [r0, 0x20] + ldrh r0, [r0] + pop {r1} + bx r1 + thumb_func_end sub_81CF0E0 + + thumb_func_start sub_81CF0F0 +sub_81CF0F0: @ 81CF0F0 + push {r4,lr} + movs r0, 0x7 + bl GetSubstructPtr + adds r4, r0, 0 + bl GetSelectedMatchCall + ldr r1, [r4, 0x20] + lsls r0, 2 + adds r1, r0 + ldrh r0, [r1, 0x6] + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_81CF0F0 + + thumb_func_start sub_81CF10C +sub_81CF10C: @ 81CF10C + push {lr} + movs r0, 0x7 + bl GetSubstructPtr + ldr r0, [r0, 0x20] + ldrh r0, [r0, 0x2] + pop {r1} + bx r1 + thumb_func_end sub_81CF10C + + thumb_func_start sub_81CF11C +sub_81CF11C: @ 81CF11C + push {lr} + ldr r2, =gUnknown_086233B4 + lsls r1, r0, 2 + adds r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {r1} + bx r1 + .pool + thumb_func_end sub_81CF11C + + thumb_func_start sub_81CF134 +sub_81CF134: @ 81CF134 + push {r4-r6,lr} + sub sp, 0x4 + movs r0, 0x7 + bl GetSubstructPtr + adds r6, r0, 0 + ldr r0, [r6, 0x20] + movs r1, 0 + strh r1, [r0] + ldr r0, [r6, 0x20] + strh r1, [r0, 0x2] + ldr r1, =0xffffff00 + ldr r0, [sp] + ands r0, r1 + movs r1, 0xE + orrs r0, r1 + str r0, [sp] + movs r5, 0 +_081CF158: + movs r0, 0x64 + adds r1, r5, 0 + muls r1, r0 + ldr r0, =gPlayerParty + adds r4, r1, r0 + adds r0, r4, 0 + movs r1, 0x5 + bl GetMonData + cmp r0, 0 + beq _081CF1AA + adds r0, r4, 0 + movs r1, 0x6 + bl GetMonData + cmp r0, 0 + bne _081CF1A4 + lsls r1, r5, 24 + lsrs r1, 16 + ldr r2, =0xffff00ff + ldr r0, [sp] + ands r0, r2 + orrs r0, r1 + str r0, [sp] + ldr r1, [r6, 0x14] + adds r0, r4, 0 + bl GetMonData + lsls r0, 16 + ldr r2, =0x0000ffff + ldr r1, [sp] + ands r1, r2 + orrs r1, r0 + str r1, [sp] + adds r0, r6, 0 + mov r1, sp + bl sub_81CF2C4 +_081CF1A4: + adds r5, 0x1 + cmp r5, 0x5 + ble _081CF158 +_081CF1AA: + movs r0, 0x1 + add sp, 0x4 + pop {r4-r6} + pop {r1} + bx r1 + .pool + thumb_func_end sub_81CF134 + + thumb_func_start sub_81CF1C4 +sub_81CF1C4: @ 81CF1C4 + push {lr} + movs r0, 0x7 + bl GetSubstructPtr + movs r1, 0 + str r1, [r0, 0x10] + str r1, [r0, 0xC] + movs r0, 0x1 + pop {r1} + bx r1 + thumb_func_end sub_81CF1C4 + + thumb_func_start sub_81CF1D8 +sub_81CF1D8: @ 81CF1D8 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x4 + movs r0, 0x7 + bl GetSubstructPtr + adds r6, r0, 0 + ldr r5, [r6, 0xC] + ldr r4, [r6, 0x10] + movs r0, 0 + mov r8, r0 + cmp r5, 0xD + bgt _081CF268 +_081CF1F4: + cmp r4, 0x1D + bgt _081CF260 + lsls r0, r5, 24 + lsrs r7, r0, 24 +_081CF1FC: + adds r0, r5, 0 + adds r1, r4, 0 + bl CheckBoxMonSanityAt + cmp r0, 0 + beq _081CF23A + ldr r1, =0xffffff00 + ldr r0, [sp] + ands r0, r1 + orrs r0, r7 + lsls r1, r4, 24 + lsrs r1, 24 + lsls r3, r1, 8 + ldr r2, =0xffff00ff + ands r0, r2 + orrs r0, r3 + str r0, [sp] + ldr r2, [r6, 0x14] + adds r0, r7, 0 + bl GetBoxMonDataAt + lsls r0, 16 + ldr r2, =0x0000ffff + ldr r1, [sp] + ands r1, r2 + orrs r1, r0 + str r1, [sp] + adds r0, r6, 0 + mov r1, sp + bl sub_81CF2C4 +_081CF23A: + movs r0, 0x1 + add r8, r0 + adds r4, 0x1 + mov r0, r8 + cmp r0, 0xE + ble _081CF25C + str r5, [r6, 0xC] + str r4, [r6, 0x10] + movs r0, 0x3 + b _081CF26A + .pool +_081CF25C: + cmp r4, 0x1D + ble _081CF1FC +_081CF260: + movs r4, 0 + adds r5, 0x1 + cmp r5, 0xD + ble _081CF1F4 +_081CF268: + movs r0, 0x1 +_081CF26A: + add sp, 0x4 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_81CF1D8 + + thumb_func_start sub_81CF278 +sub_81CF278: @ 81CF278 + push {r4-r6,lr} + movs r0, 0x7 + bl GetSubstructPtr + adds r5, r0, 0 + ldr r0, [r5, 0x20] + ldrh r6, [r0] + ldrh r4, [r0, 0x6] + movs r1, 0x1 + strh r1, [r0, 0x6] + movs r3, 0x1 + cmp r3, r6 + bge _081CF2B8 +_081CF292: + ldr r2, [r5, 0x20] + lsls r0, r3, 2 + adds r1, r2, r0 + ldrh r0, [r1, 0x6] + cmp r0, r4 + bne _081CF2AC + subs r0, r3, 0x1 + lsls r0, 2 + adds r0, r2, r0 + ldrh r0, [r0, 0x6] + strh r0, [r1, 0x6] + adds r0, r3, 0x1 + b _081CF2B2 +_081CF2AC: + adds r4, r0, 0 + adds r0, r3, 0x1 + strh r0, [r1, 0x6] +_081CF2B2: + adds r3, r0, 0 + cmp r3, r6 + blt _081CF292 +_081CF2B8: + movs r0, 0x1 + str r0, [r5, 0x18] + movs r0, 0x4 + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end sub_81CF278 + + thumb_func_start sub_81CF2C4 +sub_81CF2C4: @ 81CF2C4 + push {r4-r7,lr} + adds r5, r0, 0 + adds r7, r1, 0 + movs r1, 0 + ldr r0, [r5, 0x20] + ldrh r2, [r0] + lsrs r3, r2, 1 + cmp r2, r3 + beq _081CF2F4 + adds r6, r0, 0 + ldrh r4, [r7, 0x2] +_081CF2DA: + lsls r0, r3, 2 + adds r0, r6, r0 + ldrh r0, [r0, 0x6] + cmp r4, r0 + bls _081CF2E8 + adds r2, r3, 0 + b _081CF2EA +_081CF2E8: + adds r1, r3, 0x1 +_081CF2EA: + subs r0, r2, r1 + lsrs r0, 1 + adds r3, r1, r0 + cmp r2, r3 + bne _081CF2DA +_081CF2F4: + ldr r0, [r5, 0x20] + ldrh r2, [r0] + lsls r6, r3, 2 + cmp r2, r3 + bls _081CF318 + lsls r0, r2, 2 + subs r4, r0, 0x4 +_081CF302: + ldr r0, [r5, 0x20] + lsls r1, r2, 2 + adds r0, 0x4 + adds r1, r0, r1 + adds r0, r4 + ldr r0, [r0] + str r0, [r1] + subs r4, 0x4 + subs r2, 0x1 + cmp r2, r3 + bhi _081CF302 +_081CF318: + ldr r0, [r5, 0x20] + adds r0, 0x4 + adds r0, r6 + ldr r1, [r7] + str r1, [r0] + ldr r1, [r5, 0x20] + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_81CF2C4 + + thumb_func_start sub_81CF330 +sub_81CF330: @ 81CF330 + push {r4,lr} + movs r1, 0x81 + lsls r1, 4 + movs r0, 0x8 + bl AllocSubstruct + adds r4, r0, 0 + cmp r4, 0 + beq _081CF360 + ldr r0, =sub_81CF418 + movs r1, 0x1 + bl CreateLoopedTask + str r0, [r4, 0x4] + ldr r0, =sub_81CF3E4 + str r0, [r4] + movs r0, 0 + str r0, [r4, 0xC] + movs r0, 0x1 + b _081CF362 + .pool +_081CF360: + movs r0, 0 +_081CF362: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_81CF330 + + thumb_func_start sub_81CF368 +sub_81CF368: @ 81CF368 + push {r4,lr} + movs r1, 0x81 + lsls r1, 4 + movs r0, 0x8 + bl AllocSubstruct + adds r4, r0, 0 + cmp r4, 0 + beq _081CF398 + ldr r0, =sub_81CF418 + movs r1, 0x1 + bl CreateLoopedTask + str r0, [r4, 0x4] + ldr r0, =sub_81CF3E4 + str r0, [r4] + movs r0, 0x1 + str r0, [r4, 0xC] + b _081CF39A + .pool +_081CF398: + movs r0, 0 +_081CF39A: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_81CF368 + + thumb_func_start sub_81CF3A0 +sub_81CF3A0: @ 81CF3A0 + push {r4,r5,lr} + adds r4, r0, 0 + movs r0, 0x8 + bl GetSubstructPtr + adds r5, r0, 0 + ldr r0, =gUnknown_08623598 + lsls r4, 2 + adds r4, r0 + ldr r0, [r4] + movs r1, 0x1 + bl CreateLoopedTask + str r0, [r5, 0x4] + ldr r0, =sub_81CF3E4 + str r0, [r5] + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81CF3A0 + + thumb_func_start sub_81CF3D0 +sub_81CF3D0: @ 81CF3D0 + push {lr} + movs r0, 0x8 + bl GetSubstructPtr + ldr r0, [r0] + bl _call_via_r0 + pop {r1} + bx r1 + thumb_func_end sub_81CF3D0 + + thumb_func_start sub_81CF3E4 +sub_81CF3E4: @ 81CF3E4 + push {lr} + movs r0, 0x8 + bl GetSubstructPtr + ldr r0, [r0, 0x4] + bl IsLoopedTaskActive + pop {r1} + bx r1 + thumb_func_end sub_81CF3E4 + + thumb_func_start sub_81CF3F8 +sub_81CF3F8: @ 81CF3F8 + push {r4,lr} + movs r0, 0x8 + bl GetSubstructPtr + adds r4, r0, 0 + bl sub_81C8234 + ldrb r0, [r4, 0x8] + bl RemoveWindow + movs r0, 0x8 + bl FreePokenavSubstruct + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_81CF3F8 + + thumb_func_start sub_81CF418 +sub_81CF418: @ 81CF418 + push {r4,r5,lr} + sub sp, 0x4 + adds r4, r0, 0 + movs r0, 0x8 + bl GetSubstructPtr + adds r5, r0, 0 + cmp r4, 0x5 + bls _081CF42C + b _081CF56E +_081CF42C: + lsls r0, r4, 2 + ldr r1, =_081CF43C + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .pool + .align 2, 0 +_081CF43C: + .4byte _081CF454 + .4byte _081CF4AC + .4byte _081CF4C0 + .4byte _081CF4E0 + .4byte _081CF4F6 + .4byte _081CF55A +_081CF454: + ldr r0, =gUnknown_08623590 + movs r1, 0x2 + bl InitBgTemplates + ldr r1, =gUnknown_086233E4 + movs r0, 0 + str r0, [sp] + movs r0, 0x1 + movs r2, 0 + movs r3, 0 + bl decompress_and_copy_tile_data_to_vram + adds r1, r5, 0 + adds r1, 0x10 + movs r0, 0x1 + bl SetBgTilemapBuffer + ldr r1, =gUnknown_086234AC + movs r0, 0x1 + movs r2, 0 + movs r3, 0 + bl CopyToBgTilemapBuffer + movs r0, 0x1 + bl CopyBgTilemapBufferToVram + ldr r0, =gUnknown_086233C4 + movs r1, 0x10 + movs r2, 0x20 + bl CopyPaletteIntoBufferUnfaded + movs r0, 0x1 + bl CopyBgTilemapBufferToVram +_081CF498: + movs r0, 0 + b _081CF570 + .pool +_081CF4AC: + bl free_temp_tile_data_buffers_if_possible + lsls r0, 24 + cmp r0, 0 + bne _081CF56A + bl sub_81CF0C0 + cmp r0, 0 + beq _081CF56A + b _081CF498 +_081CF4C0: + bl free_temp_tile_data_buffers_if_possible + lsls r0, 24 + cmp r0, 0 + bne _081CF56A + ldr r0, =gUnknown_08623570 + movs r1, 0x20 + movs r2, 0x20 + bl CopyPaletteIntoBufferUnfaded + bl sub_81CF88C + b _081CF498 + .pool +_081CF4E0: + bl sub_81C8224 + cmp r0, 0 + bne _081CF56A + adds r0, r5, 0 + bl sub_81CF7C8 + movs r0, 0x3 + bl sub_81C7BA4 + b _081CF498 +_081CF4F6: + bl free_temp_tile_data_buffers_if_possible + lsls r0, 24 + cmp r0, 0 + bne _081CF56A + movs r0, 0x1 + movs r1, 0 + movs r2, 0 + bl ChangeBgX + movs r0, 0x1 + movs r1, 0 + movs r2, 0 + bl ChangeBgY + movs r0, 0x1 + bl ShowBg + movs r0, 0x2 + bl ShowBg + movs r0, 0x3 + bl HideBg + ldr r0, [r5, 0xC] + cmp r0, 0 + bne _081CF552 + bl sub_81C76AC + adds r4, r0, 0 + adds r4, 0x8 + lsls r4, 24 + lsrs r4, 24 + adds r0, r4, 0 + bl LoadLeftHeaderGfxForIndex + adds r0, r4, 0 + movs r1, 0x1 + movs r2, 0 + bl sub_81C7FA0 + movs r0, 0x1 + movs r1, 0x1 + movs r2, 0 + bl sub_81C7FA0 +_081CF552: + movs r0, 0x1 + bl sub_81C7AC0 + b _081CF498 +_081CF55A: + bl IsPaletteFadeActive + cmp r0, 0 + bne _081CF56A + bl sub_81C8010 + cmp r0, 0 + beq _081CF56E +_081CF56A: + movs r0, 0x2 + b _081CF570 +_081CF56E: + movs r0, 0x4 +_081CF570: + add sp, 0x4 + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_81CF418 + + thumb_func_start sub_81CF578 +sub_81CF578: @ 81CF578 + push {r4,r5,lr} + adds r4, r0, 0 + movs r0, 0x8 + bl GetSubstructPtr + adds r5, r0, 0 + cmp r4, 0x1 + beq _081CF5C6 + cmp r4, 0x1 + bgt _081CF592 + cmp r4, 0 + beq _081CF59C + b _081CF5E6 +_081CF592: + cmp r4, 0x2 + beq _081CF5CE + cmp r4, 0x3 + beq _081CF5D8 + b _081CF5E6 +_081CF59C: + bl MatchCall_MoveCursorUp + cmp r0, 0x1 + beq _081CF5B4 + cmp r0, 0x1 + bgt _081CF5AE + cmp r0, 0 + beq _081CF5E6 + b _081CF5D4 +_081CF5AE: + cmp r0, 0x2 + beq _081CF5BE + b _081CF5D4 +_081CF5B4: + movs r0, 0x5 + bl PlaySE + movs r0, 0x7 + b _081CF5E8 +_081CF5BE: + movs r0, 0x5 + bl PlaySE + b _081CF5D4 +_081CF5C6: + bl sub_81C8630 + cmp r0, 0 + bne _081CF5E2 +_081CF5CE: + adds r0, r5, 0 + bl sub_81CF7F4 +_081CF5D4: + movs r0, 0 + b _081CF5E8 +_081CF5D8: + bl IsDma3ManagerBusyWithBgCopy + lsls r0, 24 + cmp r0, 0 + beq _081CF5E6 +_081CF5E2: + movs r0, 0x2 + b _081CF5E8 +_081CF5E6: + movs r0, 0x4 +_081CF5E8: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_81CF578 + + thumb_func_start sub_81CF5F0 +sub_81CF5F0: @ 81CF5F0 + push {r4,r5,lr} + adds r4, r0, 0 + movs r0, 0x8 + bl GetSubstructPtr + adds r5, r0, 0 + cmp r4, 0x1 + beq _081CF63E + cmp r4, 0x1 + bgt _081CF60A + cmp r4, 0 + beq _081CF614 + b _081CF65E +_081CF60A: + cmp r4, 0x2 + beq _081CF646 + cmp r4, 0x3 + beq _081CF650 + b _081CF65E +_081CF614: + bl MatchCall_MoveCursorDown + cmp r0, 0x1 + beq _081CF62C + cmp r0, 0x1 + bgt _081CF626 + cmp r0, 0 + beq _081CF65E + b _081CF64C +_081CF626: + cmp r0, 0x2 + beq _081CF636 + b _081CF64C +_081CF62C: + movs r0, 0x5 + bl PlaySE + movs r0, 0x7 + b _081CF660 +_081CF636: + movs r0, 0x5 + bl PlaySE + b _081CF64C +_081CF63E: + bl sub_81C8630 + cmp r0, 0 + bne _081CF65A +_081CF646: + adds r0, r5, 0 + bl sub_81CF7F4 +_081CF64C: + movs r0, 0 + b _081CF660 +_081CF650: + bl IsDma3ManagerBusyWithBgCopy + lsls r0, 24 + cmp r0, 0 + beq _081CF65E +_081CF65A: + movs r0, 0x2 + b _081CF660 +_081CF65E: + movs r0, 0x4 +_081CF660: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_81CF5F0 + + thumb_func_start sub_81CF668 +sub_81CF668: @ 81CF668 + push {r4,r5,lr} + adds r4, r0, 0 + movs r0, 0x8 + bl GetSubstructPtr + adds r5, r0, 0 + cmp r4, 0x1 + beq _081CF6B6 + cmp r4, 0x1 + bgt _081CF682 + cmp r4, 0 + beq _081CF68C + b _081CF6D6 +_081CF682: + cmp r4, 0x2 + beq _081CF6BE + cmp r4, 0x3 + beq _081CF6C8 + b _081CF6D6 +_081CF68C: + bl MatchCall_PageUp + cmp r0, 0x1 + beq _081CF6A4 + cmp r0, 0x1 + bgt _081CF69E + cmp r0, 0 + beq _081CF6D6 + b _081CF6C4 +_081CF69E: + cmp r0, 0x2 + beq _081CF6AE + b _081CF6C4 +_081CF6A4: + movs r0, 0x5 + bl PlaySE + movs r0, 0x7 + b _081CF6D8 +_081CF6AE: + movs r0, 0x5 + bl PlaySE + b _081CF6C4 +_081CF6B6: + bl sub_81C8630 + cmp r0, 0 + bne _081CF6D2 +_081CF6BE: + adds r0, r5, 0 + bl sub_81CF7F4 +_081CF6C4: + movs r0, 0 + b _081CF6D8 +_081CF6C8: + bl IsDma3ManagerBusyWithBgCopy + lsls r0, 24 + cmp r0, 0 + beq _081CF6D6 +_081CF6D2: + movs r0, 0x2 + b _081CF6D8 +_081CF6D6: + movs r0, 0x4 +_081CF6D8: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_81CF668 + + thumb_func_start sub_81CF6E0 +sub_81CF6E0: @ 81CF6E0 + push {r4,r5,lr} + adds r4, r0, 0 + movs r0, 0x8 + bl GetSubstructPtr + adds r5, r0, 0 + cmp r4, 0x1 + beq _081CF72E + cmp r4, 0x1 + bgt _081CF6FA + cmp r4, 0 + beq _081CF704 + b _081CF74E +_081CF6FA: + cmp r4, 0x2 + beq _081CF736 + cmp r4, 0x3 + beq _081CF740 + b _081CF74E +_081CF704: + bl MatchCall_PageDown + cmp r0, 0x1 + beq _081CF71C + cmp r0, 0x1 + bgt _081CF716 + cmp r0, 0 + beq _081CF74E + b _081CF73C +_081CF716: + cmp r0, 0x2 + beq _081CF726 + b _081CF73C +_081CF71C: + movs r0, 0x5 + bl PlaySE + movs r0, 0x7 + b _081CF750 +_081CF726: + movs r0, 0x5 + bl PlaySE + b _081CF73C +_081CF72E: + bl sub_81C8630 + cmp r0, 0 + bne _081CF74A +_081CF736: + adds r0, r5, 0 + bl sub_81CF7F4 +_081CF73C: + movs r0, 0 + b _081CF750 +_081CF740: + bl IsDma3ManagerBusyWithBgCopy + lsls r0, 24 + cmp r0, 0 + beq _081CF74E +_081CF74A: + movs r0, 0x2 + b _081CF750 +_081CF74E: + movs r0, 0x4 +_081CF750: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_81CF6E0 + + thumb_func_start sub_81CF758 +sub_81CF758: @ 81CF758 + push {lr} + cmp r0, 0 + beq _081CF764 + cmp r0, 0x1 + beq _081CF778 + b _081CF790 +_081CF764: + movs r0, 0x5 + bl PlaySE + movs r0, 0 + bl sub_81C7AC0 + bl sub_81C78A0 + movs r0, 0 + b _081CF792 +_081CF778: + bl IsPaletteFadeActive + cmp r0, 0 + bne _081CF788 + bl MainMenuLoopedTaskIsBusy + cmp r0, 0 + beq _081CF78C +_081CF788: + movs r0, 0x2 + b _081CF792 +_081CF78C: + bl sub_81C7FDC +_081CF790: + movs r0, 0x4 +_081CF792: + pop {r1} + bx r1 + thumb_func_end sub_81CF758 + + thumb_func_start sub_81CF798 +sub_81CF798: @ 81CF798 + push {lr} + cmp r0, 0 + beq _081CF7A4 + cmp r0, 0x1 + beq _081CF7B4 + b _081CF7C0 +_081CF7A4: + movs r0, 0x5 + bl PlaySE + movs r0, 0 + bl sub_81C7AC0 + movs r0, 0 + b _081CF7C2 +_081CF7B4: + bl IsPaletteFadeActive + cmp r0, 0 + beq _081CF7C0 + movs r0, 0x2 + b _081CF7C2 +_081CF7C0: + movs r0, 0x4 +_081CF7C2: + pop {r1} + bx r1 + thumb_func_end sub_81CF798 + + thumb_func_start sub_81CF7C8 +sub_81CF7C8: @ 81CF7C8 + push {r4,lr} + adds r4, r0, 0 + ldr r0, =gUnknown_086235B4 + bl AddWindow + strh r0, [r4, 0x8] + lsls r0, 24 + lsrs r0, 24 + bl PutWindowTilemap + ldrb r0, [r4, 0x8] + movs r1, 0x1 + bl CopyWindowToVram + adds r0, r4, 0 + bl sub_81CF7F4 + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81CF7C8 + + thumb_func_start sub_81CF7F4 +sub_81CF7F4: @ 81CF7F4 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0xC + mov r8, r0 + bl sub_81CF0F0 + adds r7, r0, 0 + bl DynamicPlaceholderTextUtil_Reset + ldr r4, =gStringVar1 + movs r0, 0 + adds r1, r4, 0 + bl DynamicPlaceholderTextUtil_SetPlaceholderPtr + movs r0, 0xFF + strb r0, [r4] + ldr r5, =gStringVar2 + ldr r1, =gText_NumberF700 + adds r0, r5, 0 + bl DynamicPlaceholderTextUtil_ExpandPlaceholders + mov r1, r8 + ldrb r0, [r1, 0x8] + movs r1, 0x1 + mov r10, r1 + str r1, [sp] + movs r1, 0xFF + mov r9, r1 + str r1, [sp, 0x4] + movs r6, 0 + str r6, [sp, 0x8] + movs r1, 0x1 + adds r2, r5, 0 + movs r3, 0x4 + bl AddTextPrinterParameterized + adds r0, r4, 0 + adds r1, r7, 0 + movs r2, 0x1 + movs r3, 0x3 + bl ConvertIntToDecimalStringN + mov r1, r8 + ldrb r0, [r1, 0x8] + mov r1, r10 + str r1, [sp] + mov r1, r9 + str r1, [sp, 0x4] + str r6, [sp, 0x8] + movs r1, 0x1 + adds r2, r4, 0 + movs r3, 0x22 + bl AddTextPrinterParameterized + mov r1, r8 + ldrb r0, [r1, 0x8] + movs r1, 0x2 + bl CopyWindowToVram + add sp, 0xC + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81CF7F4 + + thumb_func_start sub_81CF88C +sub_81CF88C: @ 81CF88C + push {r4,lr} + sub sp, 0x18 + bl sub_81CF0D0 + str r0, [sp] + bl sub_81CF0E0 + mov r1, sp + movs r4, 0 + strh r0, [r1, 0x4] + movs r0, 0x4 + strb r0, [r1, 0x8] + bl sub_81CF10C + mov r1, sp + strh r0, [r1, 0x6] + movs r0, 0xD + strb r0, [r1, 0x9] + movs r0, 0x11 + strb r0, [r1, 0xA] + mov r0, sp + movs r2, 0x1 + strb r2, [r0, 0xB] + movs r0, 0x8 + strb r0, [r1, 0xC] + movs r0, 0x2 + strb r0, [r1, 0xD] + mov r0, sp + strb r2, [r0, 0xE] + ldr r0, =sub_81CF8E4 + str r0, [sp, 0x10] + str r4, [sp, 0x14] + ldr r0, =gUnknown_08623594 + movs r2, 0 + bl sub_81C81D4 + add sp, 0x18 + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81CF88C + + thumb_func_start sub_81CF8E4 +sub_81CF8E4: @ 81CF8E4 + push {r4-r7,lr} + adds r2, r0, 0 + adds r6, r1, 0 + ldrb r0, [r2] + cmp r0, 0xE + bne _081CF924 + ldrb r1, [r2, 0x1] + movs r0, 0x64 + adds r4, r1, 0 + muls r4, r0 + ldr r0, =gPlayerParty + adds r4, r0 + adds r0, r4, 0 + bl GetMonGender + lsls r0, 24 + lsrs r5, r0, 24 + adds r0, r4, 0 + bl GetLevelFromMonExp + lsls r0, 24 + lsrs r7, r0, 24 + ldr r2, =gStringVar3 + adds r0, r4, 0 + movs r1, 0x2 + bl GetMonData + b _081CF94A + .pool +_081CF924: + ldrb r0, [r2] + ldrb r1, [r2, 0x1] + bl GetBoxedMonPtr + adds r4, r0, 0 + bl GetBoxMonGender + lsls r0, 24 + lsrs r5, r0, 24 + adds r0, r4, 0 + bl GetLevelFromBoxMonExp + lsls r0, 24 + lsrs r7, r0, 24 + ldr r2, =gStringVar3 + adds r0, r4, 0 + movs r1, 0x2 + bl GetBoxMonData +_081CF94A: + ldr r4, =gStringVar3 + adds r0, r4, 0 + bl StringGetEnd10 + adds r0, r6, 0 + movs r1, 0x1 + adds r2, r4, 0 + movs r3, 0x3C + bl sub_81DB494 + adds r6, r0, 0 + cmp r5, 0 + beq _081CF974 + cmp r5, 0xFE + beq _081CF97C + ldr r1, =gUnknown_086235D4 + b _081CF97E + .pool +_081CF974: + ldr r1, =gUnknown_086235BC + b _081CF97E + .pool +_081CF97C: + ldr r1, =gUnknown_086235C8 +_081CF97E: + ldr r4, =gStringVar1 + adds r0, r4, 0 + bl StringCopy + movs r1, 0xBA + strb r1, [r0] + adds r0, 0x1 + movs r1, 0xF9 + strb r1, [r0] + adds r0, 0x1 + movs r1, 0x5 + strb r1, [r0] + adds r0, 0x1 + adds r1, r7, 0 + movs r2, 0 + movs r3, 0x3 + bl ConvertIntToDecimalStringN + adds r0, r6, 0 + movs r1, 0x1 + adds r2, r4, 0 + movs r3, 0x28 + bl sub_81DB494 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81CF8E4 + + .align 2, 0 @ Don't pad with nop. diff --git a/asm/pokenav_unk_9.s b/asm/pokenav_unk_9.s new file mode 100644 index 000000000..7f9d5d15b --- /dev/null +++ b/asm/pokenav_unk_9.s @@ -0,0 +1,1393 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .syntax unified + +@ File centered around AllocSubstruct(9) + + thumb_func_start sub_81CF9BC +sub_81CF9BC: @ 81CF9BC + push {r4,lr} + movs r0, 0x9 + movs r1, 0x20 + bl AllocSubstruct + adds r4, r0, 0 + cmp r4, 0 + beq _081CF9FC + ldr r1, =0x000006ac + movs r0, 0x12 + bl AllocSubstruct + str r0, [r4, 0x1C] + cmp r0, 0 + beq _081CF9FC + ldr r0, =sub_81CFA68 + str r0, [r4] + ldr r0, =sub_81CFB74 + movs r1, 0x1 + bl CreateLoopedTask + str r0, [r4, 0x4] + movs r0, 0 + str r0, [r4, 0x14] + movs r0, 0x1 + b _081CF9FE + .pool +_081CF9FC: + movs r0, 0 +_081CF9FE: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_81CF9BC + + thumb_func_start sub_81CFA04 +sub_81CFA04: @ 81CFA04 + push {r4,lr} + movs r0, 0x9 + movs r1, 0x20 + bl AllocSubstruct + adds r4, r0, 0 + cmp r4, 0 + beq _081CFA2C + movs r0, 0x12 + bl GetSubstructPtr + str r0, [r4, 0x1C] + ldr r0, =sub_81CFA88 + str r0, [r4] + movs r0, 0x1 + str r0, [r4, 0x14] + b _081CFA2E + .pool +_081CFA2C: + movs r0, 0 +_081CFA2E: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_81CFA04 + + thumb_func_start sub_81CFA34 +sub_81CFA34: @ 81CFA34 + push {lr} + movs r0, 0x9 + bl GetSubstructPtr + ldr r1, [r0] + bl _call_via_r1 + pop {r1} + bx r1 + thumb_func_end sub_81CFA34 + + thumb_func_start sub_81CFA48 +sub_81CFA48: @ 81CFA48 + push {lr} + movs r0, 0x9 + bl GetSubstructPtr + ldr r0, [r0, 0x18] + cmp r0, 0 + bne _081CFA5C + movs r0, 0x12 + bl FreePokenavSubstruct +_081CFA5C: + movs r0, 0x9 + bl FreePokenavSubstruct + pop {r0} + bx r0 + thumb_func_end sub_81CFA48 + + thumb_func_start sub_81CFA68 +sub_81CFA68: @ 81CFA68 + push {r4,lr} + adds r4, r0, 0 + ldr r0, [r4, 0x4] + bl IsLoopedTaskActive + cmp r0, 0 + bne _081CFA7A + ldr r0, =sub_81CFA88 + str r0, [r4] +_081CFA7A: + movs r0, 0 + pop {r4} + pop {r1} + bx r1 + .pool + thumb_func_end sub_81CFA68 + + thumb_func_start sub_81CFA88 +sub_81CFA88: @ 81CFA88 + push {r4,r5,lr} + adds r4, r0, 0 + ldr r2, =gMain + ldrh r1, [r2, 0x30] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + beq _081CFAA0 + movs r0, 0x1 + b _081CFAFE + .pool +_081CFAA0: + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _081CFAAC + movs r0, 0x2 + b _081CFAFE +_081CFAAC: + ldrh r1, [r2, 0x2E] + movs r0, 0x20 + ands r0, r1 + cmp r0, 0 + beq _081CFABA + movs r0, 0x3 + b _081CFAFE +_081CFABA: + movs r0, 0x10 + ands r0, r1 + lsls r0, 16 + lsrs r2, r0, 16 + cmp r2, 0 + beq _081CFACA + movs r0, 0x4 + b _081CFAFE +_081CFACA: + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _081CFAE0 + str r2, [r4, 0x18] + ldr r0, =sub_81CFB08 + str r0, [r4] + movs r0, 0x5 + b _081CFAFE + .pool +_081CFAE0: + movs r5, 0x1 + adds r0, r5, 0 + ands r0, r1 + cmp r0, 0 + bne _081CFAEE + movs r0, 0 + b _081CFAFE +_081CFAEE: + bl GetSelectedMatchCall + ldr r1, [r4, 0x1C] + strh r0, [r1, 0x2] + str r5, [r4, 0x18] + ldr r0, =sub_81CFB10 + str r0, [r4] + movs r0, 0x6 +_081CFAFE: + pop {r4,r5} + pop {r1} + bx r1 + .pool + thumb_func_end sub_81CFA88 + + thumb_func_start sub_81CFB08 +sub_81CFB08: @ 81CFB08 + ldr r0, =0x000186a5 + bx lr + .pool + thumb_func_end sub_81CFB08 + + thumb_func_start sub_81CFB10 +sub_81CFB10: @ 81CFB10 + ldr r0, =0x000186ad + bx lr + .pool + thumb_func_end sub_81CFB10 + + thumb_func_start sub_81CFB18 +sub_81CFB18: @ 81CFB18 + push {lr} + movs r0, 0x9 + bl GetSubstructPtr + ldr r0, [r0, 0x14] + pop {r1} + bx r1 + thumb_func_end sub_81CFB18 + + thumb_func_start sub_81CFB28 +sub_81CFB28: @ 81CFB28 + push {lr} + movs r0, 0x9 + bl GetSubstructPtr + ldr r0, [r0, 0x1C] + adds r0, 0x4 + pop {r1} + bx r1 + thumb_func_end sub_81CFB28 + + thumb_func_start sub_81CFB38 +sub_81CFB38: @ 81CFB38 + push {lr} + movs r0, 0x9 + bl GetSubstructPtr + ldr r0, [r0, 0x1C] + ldrh r0, [r0] + pop {r1} + bx r1 + thumb_func_end sub_81CFB38 + + thumb_func_start sub_81CFB48 +sub_81CFB48: @ 81CFB48 + push {r4,lr} + movs r0, 0x9 + bl GetSubstructPtr + adds r4, r0, 0 + bl GetSelectedMatchCall + ldr r1, [r4, 0x1C] + lsls r0, 2 + adds r1, r0 + ldrh r0, [r1, 0x6] + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_81CFB48 + + thumb_func_start sub_81CFB64 +sub_81CFB64: @ 81CFB64 + push {lr} + movs r0, 0x9 + bl GetSubstructPtr + ldr r0, [r0, 0x1C] + ldrh r0, [r0, 0x2] + pop {r1} + bx r1 + thumb_func_end sub_81CFB64 + + thumb_func_start sub_81CFB74 +sub_81CFB74: @ 81CFB74 + push {lr} + ldr r2, =gUnknown_086235D8 + lsls r1, r0, 2 + adds r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {r1} + bx r1 + .pool + thumb_func_end sub_81CFB74 + + thumb_func_start sub_81CFB8C +sub_81CFB8C: @ 81CFB8C + push {r4-r6,lr} + sub sp, 0x4 + movs r0, 0x9 + bl GetSubstructPtr + adds r6, r0, 0 + ldr r0, [r6, 0x1C] + movs r1, 0 + strh r1, [r0] + ldr r0, [r6, 0x1C] + strh r1, [r0, 0x2] + ldr r1, =0xffffff00 + ldr r0, [sp] + ands r0, r1 + movs r1, 0xE + orrs r0, r1 + str r0, [sp] + movs r5, 0 +_081CFBB0: + movs r0, 0x64 + adds r1, r5, 0 + muls r1, r0 + ldr r0, =gPlayerParty + adds r4, r1, r0 + adds r0, r4, 0 + movs r1, 0x5 + bl GetMonData + cmp r0, 0 + beq _081CFC10 + adds r0, r4, 0 + movs r1, 0x6 + bl GetMonData + cmp r0, 0 + bne _081CFC0A + adds r0, r4, 0 + movs r1, 0x4 + bl GetMonData + cmp r0, 0 + bne _081CFC0A + adds r0, r4, 0 + movs r1, 0x52 + bl GetMonData + adds r3, r0, 0 + cmp r3, 0 + beq _081CFC0A + lsls r1, r5, 24 + lsrs r1, 16 + ldr r2, =0xffff00ff + ldr r0, [sp] + ands r0, r2 + orrs r0, r1 + lsls r2, r3, 16 + ldr r1, =0x0000ffff + ands r0, r1 + orrs r0, r2 + str r0, [sp] + adds r0, r6, 0 + mov r1, sp + bl sub_81CFCEC +_081CFC0A: + adds r5, 0x1 + cmp r5, 0x5 + ble _081CFBB0 +_081CFC10: + movs r0, 0x1 + add sp, 0x4 + pop {r4-r6} + pop {r1} + bx r1 + .pool + thumb_func_end sub_81CFB8C + + thumb_func_start sub_81CFC2C +sub_81CFC2C: @ 81CFC2C + push {lr} + movs r0, 0x9 + bl GetSubstructPtr + movs r1, 0 + str r1, [r0, 0x10] + str r1, [r0, 0xC] + movs r0, 0x1 + pop {r1} + bx r1 + thumb_func_end sub_81CFC2C + + thumb_func_start sub_81CFC40 +sub_81CFC40: @ 81CFC40 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0x4 + movs r0, 0x9 + bl GetSubstructPtr + mov r8, r0 + ldr r7, [r0, 0xC] + ldr r6, [r0, 0x10] + movs r0, 0 + mov r9, r0 + cmp r7, 0xD + bgt _081CFCD4 + b _081CFCC8 +_081CFC60: + adds r0, r7, 0 + adds r1, r6, 0 + bl CheckBoxMonSanityAt + cmp r0, 0 + beq _081CFCA6 + lsls r0, r7, 24 + lsrs r5, r0, 24 + lsls r0, r6, 24 + lsrs r4, r0, 24 + adds r0, r5, 0 + adds r1, r4, 0 + movs r2, 0x52 + bl GetBoxMonDataAt + adds r3, r0, 0 + cmp r3, 0 + beq _081CFCA6 + ldr r1, =0xffffff00 + ldr r0, [sp] + ands r0, r1 + orrs r0, r5 + lsls r2, r4, 8 + ldr r1, =0xffff00ff + ands r0, r1 + orrs r0, r2 + lsls r2, r3, 16 + ldr r1, =0x0000ffff + ands r0, r1 + orrs r0, r2 + str r0, [sp] + mov r0, r8 + mov r1, sp + bl sub_81CFCEC +_081CFCA6: + movs r1, 0x1 + add r9, r1 + adds r6, 0x1 + mov r0, r9 + cmp r0, 0xE + ble _081CFCC8 + mov r1, r8 + str r7, [r1, 0xC] + str r6, [r1, 0x10] + movs r0, 0x3 + b _081CFCDC + .pool +_081CFCC8: + cmp r6, 0x1D + ble _081CFC60 + movs r6, 0 + adds r7, 0x1 + cmp r7, 0xD + ble _081CFCC8 +_081CFCD4: + movs r0, 0x1 + mov r1, r8 + str r0, [r1, 0x14] + movs r0, 0x4 +_081CFCDC: + add sp, 0x4 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_81CFC40 + + thumb_func_start sub_81CFCEC +sub_81CFCEC: @ 81CFCEC + push {r4-r7,lr} + adds r5, r0, 0 + adds r7, r1, 0 + movs r1, 0 + ldr r0, [r5, 0x1C] + ldrh r2, [r0] + lsrs r3, r2, 1 + cmp r2, r3 + beq _081CFD1C + adds r6, r0, 0 + ldrh r4, [r7, 0x2] +_081CFD02: + lsls r0, r3, 2 + adds r0, r6, r0 + ldrh r0, [r0, 0x6] + cmp r4, r0 + bls _081CFD10 + adds r2, r3, 0 + b _081CFD12 +_081CFD10: + adds r1, r3, 0x1 +_081CFD12: + subs r0, r2, r1 + lsrs r0, 1 + adds r3, r1, r0 + cmp r2, r3 + bne _081CFD02 +_081CFD1C: + ldr r0, [r5, 0x1C] + ldrh r2, [r0] + lsls r6, r3, 2 + cmp r2, r3 + bls _081CFD40 + lsls r0, r2, 2 + subs r4, r0, 0x4 +_081CFD2A: + ldr r0, [r5, 0x1C] + lsls r1, r2, 2 + adds r0, 0x4 + adds r1, r0, r1 + adds r0, r4 + ldr r0, [r0] + str r0, [r1] + subs r4, 0x4 + subs r2, 0x1 + cmp r2, r3 + bhi _081CFD2A +_081CFD40: + ldr r0, [r5, 0x1C] + adds r0, 0x4 + adds r0, r6 + ldr r1, [r7] + str r1, [r0] + ldr r1, [r5, 0x1C] + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_81CFCEC + + thumb_func_start sub_81CFD58 +sub_81CFD58: @ 81CFD58 + push {r4-r6,lr} + movs r5, 0 +_081CFD5C: + movs r0, 0x64 + adds r1, r5, 0 + muls r1, r0 + ldr r0, =gPlayerParty + adds r4, r1, r0 + adds r0, r4, 0 + movs r1, 0x5 + bl GetMonData + cmp r0, 0 + beq _081CFD8A + adds r0, r4, 0 + movs r1, 0x6 + bl GetMonData + cmp r0, 0 + bne _081CFD8A + adds r0, r4, 0 + movs r1, 0x53 + bl GetMonData + cmp r0, 0 + bne _081CFDB2 +_081CFD8A: + adds r5, 0x1 + cmp r5, 0x5 + ble _081CFD5C + movs r5, 0 +_081CFD92: + movs r4, 0 + lsls r6, r5, 24 +_081CFD96: + adds r0, r5, 0 + adds r1, r4, 0 + bl CheckBoxMonSanityAt + cmp r0, 0 + beq _081CFDBC + lsls r1, r4, 24 + lsrs r1, 24 + lsrs r0, r6, 24 + movs r2, 0x53 + bl GetBoxMonDataAt + cmp r0, 0 + beq _081CFDBC +_081CFDB2: + movs r0, 0x1 + b _081CFDCA + .pool +_081CFDBC: + adds r4, 0x1 + cmp r4, 0x1D + ble _081CFD96 + adds r5, 0x1 + cmp r5, 0xD + ble _081CFD92 + movs r0, 0 +_081CFDCA: + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end sub_81CFD58 + + thumb_func_start sub_81CFDD0 +sub_81CFDD0: @ 81CFDD0 + push {r4,lr} + movs r1, 0x81 + lsls r1, 4 + movs r0, 0xA + bl AllocSubstruct + adds r4, r0, 0 + cmp r4, 0 + beq _081CFE00 + ldr r0, =sub_81CFEB8 + movs r1, 0x1 + bl CreateLoopedTask + str r0, [r4, 0x4] + ldr r0, =sub_81CFE84 + str r0, [r4] + movs r0, 0 + str r0, [r4, 0xC] + movs r0, 0x1 + b _081CFE02 + .pool +_081CFE00: + movs r0, 0 +_081CFE02: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_81CFDD0 + + thumb_func_start sub_81CFE08 +sub_81CFE08: @ 81CFE08 + push {r4,lr} + movs r1, 0x81 + lsls r1, 4 + movs r0, 0xA + bl AllocSubstruct + adds r4, r0, 0 + cmp r4, 0 + beq _081CFE38 + ldr r0, =sub_81CFEB8 + movs r1, 0x1 + bl CreateLoopedTask + str r0, [r4, 0x4] + ldr r0, =sub_81CFE84 + str r0, [r4] + movs r0, 0x1 + str r0, [r4, 0xC] + b _081CFE3A + .pool +_081CFE38: + movs r0, 0 +_081CFE3A: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_81CFE08 + + thumb_func_start sub_81CFE40 +sub_81CFE40: @ 81CFE40 + push {r4,r5,lr} + adds r4, r0, 0 + movs r0, 0xA + bl GetSubstructPtr + adds r5, r0, 0 + ldr r0, =gUnknown_086237B8 + lsls r4, 2 + adds r4, r0 + ldr r0, [r4] + movs r1, 0x1 + bl CreateLoopedTask + str r0, [r5, 0x4] + ldr r0, =sub_81CFE84 + str r0, [r5] + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81CFE40 + + thumb_func_start sub_81CFE70 +sub_81CFE70: @ 81CFE70 + push {lr} + movs r0, 0xA + bl GetSubstructPtr + ldr r0, [r0] + bl _call_via_r0 + pop {r1} + bx r1 + thumb_func_end sub_81CFE70 + + thumb_func_start sub_81CFE84 +sub_81CFE84: @ 81CFE84 + push {lr} + movs r0, 0xA + bl GetSubstructPtr + ldr r0, [r0, 0x4] + bl IsLoopedTaskActive + pop {r1} + bx r1 + thumb_func_end sub_81CFE84 + + thumb_func_start sub_81CFE98 +sub_81CFE98: @ 81CFE98 + push {r4,lr} + movs r0, 0xA + bl GetSubstructPtr + adds r4, r0, 0 + bl sub_81C8234 + ldrb r0, [r4, 0x8] + bl RemoveWindow + movs r0, 0xA + bl FreePokenavSubstruct + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_81CFE98 + + thumb_func_start sub_81CFEB8 +sub_81CFEB8: @ 81CFEB8 + push {r4,r5,lr} + sub sp, 0x4 + adds r4, r0, 0 + movs r0, 0xA + bl GetSubstructPtr + adds r5, r0, 0 + cmp r4, 0x5 + bls _081CFECC + b _081CFFF2 +_081CFECC: + lsls r0, r4, 2 + ldr r1, =_081CFEDC + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .pool + .align 2, 0 +_081CFEDC: + .4byte _081CFEF4 + .4byte _081CFF48 + .4byte _081CFF76 + .4byte _081CFF94 + .4byte _081CFFA4 + .4byte _081CFFDE +_081CFEF4: + ldr r0, =gUnknown_086237B0 + movs r1, 0x2 + bl InitBgTemplates + ldr r1, =gUnknown_08623604 + movs r0, 0 + str r0, [sp] + movs r0, 0x1 + movs r2, 0 + movs r3, 0 + bl decompress_and_copy_tile_data_to_vram + adds r1, r5, 0 + adds r1, 0x10 + movs r0, 0x1 + bl SetBgTilemapBuffer + ldr r1, =gUnknown_086236CC + movs r0, 0x1 + movs r2, 0 + movs r3, 0 + bl CopyToBgTilemapBuffer + ldr r0, =gUnknown_086235E4 + movs r1, 0x10 + movs r2, 0x20 + bl CopyPaletteIntoBufferUnfaded + movs r0, 0x1 + bl CopyBgTilemapBufferToVram +_081CFF32: + movs r0, 0 + b _081CFFF4 + .pool +_081CFF48: + bl free_temp_tile_data_buffers_if_possible + lsls r0, 24 + cmp r0, 0 + bne _081CFFEE + bl sub_81CFB18 + cmp r0, 0 + beq _081CFFEE + movs r0, 0x1 + movs r1, 0 + movs r2, 0 + bl ChangeBgX + movs r0, 0x1 + movs r1, 0 + movs r2, 0 + bl ChangeBgY + movs r0, 0x1 + bl ShowBg + b _081CFF32 +_081CFF76: + bl free_temp_tile_data_buffers_if_possible + lsls r0, 24 + cmp r0, 0 + bne _081CFFEE + ldr r0, =gUnknown_08623790 + movs r1, 0x20 + movs r2, 0x20 + bl CopyPaletteIntoBufferUnfaded + bl sub_81D0304 + b _081CFF32 + .pool +_081CFF94: + bl sub_81C8224 + cmp r0, 0 + bne _081CFFEE + adds r0, r5, 0 + bl sub_81D024C + b _081CFF32 +_081CFFA4: + bl free_temp_tile_data_buffers_if_possible + lsls r0, 24 + cmp r0, 0 + bne _081CFFEE + movs r0, 0x2 + bl ShowBg + movs r0, 0x3 + bl HideBg + movs r0, 0x9 + bl sub_81C7BA4 + movs r0, 0x1 + bl sub_81C7AC0 + ldr r0, [r5, 0xC] + cmp r0, 0 + bne _081CFF32 + movs r0, 0x2 + bl LoadLeftHeaderGfxForIndex + movs r0, 0x2 + movs r1, 0x1 + movs r2, 0 + bl sub_81C7FA0 + b _081CFF32 +_081CFFDE: + bl IsPaletteFadeActive + cmp r0, 0 + bne _081CFFEE + bl sub_81C8010 + cmp r0, 0 + beq _081CFFF2 +_081CFFEE: + movs r0, 0x2 + b _081CFFF4 +_081CFFF2: + movs r0, 0x4 +_081CFFF4: + add sp, 0x4 + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_81CFEB8 + + thumb_func_start sub_81CFFFC +sub_81CFFFC: @ 81CFFFC + push {r4,r5,lr} + adds r4, r0, 0 + movs r0, 0xA + bl GetSubstructPtr + adds r5, r0, 0 + cmp r4, 0x1 + beq _081D004A + cmp r4, 0x1 + bgt _081D0016 + cmp r4, 0 + beq _081D0020 + b _081D006A +_081D0016: + cmp r4, 0x2 + beq _081D0052 + cmp r4, 0x3 + beq _081D005C + b _081D006A +_081D0020: + bl MatchCall_MoveCursorUp + cmp r0, 0x1 + beq _081D0038 + cmp r0, 0x1 + bgt _081D0032 + cmp r0, 0 + beq _081D006A + b _081D0058 +_081D0032: + cmp r0, 0x2 + beq _081D0042 + b _081D0058 +_081D0038: + movs r0, 0x5 + bl PlaySE + movs r0, 0x7 + b _081D006C +_081D0042: + movs r0, 0x5 + bl PlaySE + b _081D0058 +_081D004A: + bl sub_81C8630 + cmp r0, 0 + bne _081D0066 +_081D0052: + adds r0, r5, 0 + bl sub_81D0288 +_081D0058: + movs r0, 0 + b _081D006C +_081D005C: + bl IsDma3ManagerBusyWithBgCopy + lsls r0, 24 + cmp r0, 0 + beq _081D006A +_081D0066: + movs r0, 0x2 + b _081D006C +_081D006A: + movs r0, 0x4 +_081D006C: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_81CFFFC + + thumb_func_start sub_81D0074 +sub_81D0074: @ 81D0074 + push {r4,r5,lr} + adds r4, r0, 0 + movs r0, 0xA + bl GetSubstructPtr + adds r5, r0, 0 + cmp r4, 0x1 + beq _081D00C2 + cmp r4, 0x1 + bgt _081D008E + cmp r4, 0 + beq _081D0098 + b _081D00E2 +_081D008E: + cmp r4, 0x2 + beq _081D00CA + cmp r4, 0x3 + beq _081D00D4 + b _081D00E2 +_081D0098: + bl MatchCall_MoveCursorDown + cmp r0, 0x1 + beq _081D00B0 + cmp r0, 0x1 + bgt _081D00AA + cmp r0, 0 + beq _081D00E2 + b _081D00D0 +_081D00AA: + cmp r0, 0x2 + beq _081D00BA + b _081D00D0 +_081D00B0: + movs r0, 0x5 + bl PlaySE + movs r0, 0x7 + b _081D00E4 +_081D00BA: + movs r0, 0x5 + bl PlaySE + b _081D00D0 +_081D00C2: + bl sub_81C8630 + cmp r0, 0 + bne _081D00DE +_081D00CA: + adds r0, r5, 0 + bl sub_81D0288 +_081D00D0: + movs r0, 0 + b _081D00E4 +_081D00D4: + bl IsDma3ManagerBusyWithBgCopy + lsls r0, 24 + cmp r0, 0 + beq _081D00E2 +_081D00DE: + movs r0, 0x2 + b _081D00E4 +_081D00E2: + movs r0, 0x4 +_081D00E4: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_81D0074 + + thumb_func_start sub_81D00EC +sub_81D00EC: @ 81D00EC + push {r4,r5,lr} + adds r4, r0, 0 + movs r0, 0xA + bl GetSubstructPtr + adds r5, r0, 0 + cmp r4, 0x1 + beq _081D013A + cmp r4, 0x1 + bgt _081D0106 + cmp r4, 0 + beq _081D0110 + b _081D015A +_081D0106: + cmp r4, 0x2 + beq _081D0142 + cmp r4, 0x3 + beq _081D014C + b _081D015A +_081D0110: + bl MatchCall_PageUp + cmp r0, 0x1 + beq _081D0128 + cmp r0, 0x1 + bgt _081D0122 + cmp r0, 0 + beq _081D015A + b _081D0148 +_081D0122: + cmp r0, 0x2 + beq _081D0132 + b _081D0148 +_081D0128: + movs r0, 0x5 + bl PlaySE + movs r0, 0x7 + b _081D015C +_081D0132: + movs r0, 0x5 + bl PlaySE + b _081D0148 +_081D013A: + bl sub_81C8630 + cmp r0, 0 + bne _081D0156 +_081D0142: + adds r0, r5, 0 + bl sub_81D0288 +_081D0148: + movs r0, 0 + b _081D015C +_081D014C: + bl IsDma3ManagerBusyWithBgCopy + lsls r0, 24 + cmp r0, 0 + beq _081D015A +_081D0156: + movs r0, 0x2 + b _081D015C +_081D015A: + movs r0, 0x4 +_081D015C: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_81D00EC + + thumb_func_start sub_81D0164 +sub_81D0164: @ 81D0164 + push {r4,r5,lr} + adds r4, r0, 0 + movs r0, 0xA + bl GetSubstructPtr + adds r5, r0, 0 + cmp r4, 0x1 + beq _081D01B2 + cmp r4, 0x1 + bgt _081D017E + cmp r4, 0 + beq _081D0188 + b _081D01D2 +_081D017E: + cmp r4, 0x2 + beq _081D01BA + cmp r4, 0x3 + beq _081D01C4 + b _081D01D2 +_081D0188: + bl MatchCall_PageDown + cmp r0, 0x1 + beq _081D01A0 + cmp r0, 0x1 + bgt _081D019A + cmp r0, 0 + beq _081D01D2 + b _081D01C0 +_081D019A: + cmp r0, 0x2 + beq _081D01AA + b _081D01C0 +_081D01A0: + movs r0, 0x5 + bl PlaySE + movs r0, 0x7 + b _081D01D4 +_081D01AA: + movs r0, 0x5 + bl PlaySE + b _081D01C0 +_081D01B2: + bl sub_81C8630 + cmp r0, 0 + bne _081D01CE +_081D01BA: + adds r0, r5, 0 + bl sub_81D0288 +_081D01C0: + movs r0, 0 + b _081D01D4 +_081D01C4: + bl IsDma3ManagerBusyWithBgCopy + lsls r0, 24 + cmp r0, 0 + beq _081D01D2 +_081D01CE: + movs r0, 0x2 + b _081D01D4 +_081D01D2: + movs r0, 0x4 +_081D01D4: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_81D0164 + + thumb_func_start sub_81D01DC +sub_81D01DC: @ 81D01DC + push {lr} + cmp r0, 0 + beq _081D01E8 + cmp r0, 0x1 + beq _081D01FC + b _081D0214 +_081D01E8: + movs r0, 0x5 + bl PlaySE + movs r0, 0 + bl sub_81C7AC0 + bl sub_81C78A0 + movs r0, 0 + b _081D0216 +_081D01FC: + bl IsPaletteFadeActive + cmp r0, 0 + bne _081D020C + bl MainMenuLoopedTaskIsBusy + cmp r0, 0 + beq _081D0210 +_081D020C: + movs r0, 0x2 + b _081D0216 +_081D0210: + bl sub_81C7FDC +_081D0214: + movs r0, 0x4 +_081D0216: + pop {r1} + bx r1 + thumb_func_end sub_81D01DC + + thumb_func_start sub_81D021C +sub_81D021C: @ 81D021C + push {lr} + cmp r0, 0 + beq _081D0228 + cmp r0, 0x1 + beq _081D0238 + b _081D0244 +_081D0228: + movs r0, 0x5 + bl PlaySE + movs r0, 0 + bl sub_81C7AC0 + movs r0, 0 + b _081D0246 +_081D0238: + bl IsPaletteFadeActive + cmp r0, 0 + beq _081D0244 + movs r0, 0x2 + b _081D0246 +_081D0244: + movs r0, 0x4 +_081D0246: + pop {r1} + bx r1 + thumb_func_end sub_81D021C + + thumb_func_start sub_81D024C +sub_81D024C: @ 81D024C + push {r4,lr} + adds r4, r0, 0 + ldr r0, =gUnknown_086237D4 + bl AddWindow + strh r0, [r4, 0x8] + lsls r0, 24 + lsrs r0, 24 + bl PutWindowTilemap + bl sub_81CFB38 + adds r2, r0, 0 + ldrh r0, [r4, 0x8] + movs r1, 0 + bl sub_81D02B0 + ldrb r0, [r4, 0x8] + movs r1, 0x1 + bl CopyWindowToVram + adds r0, r4, 0 + bl sub_81D0288 + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81D024C + + thumb_func_start sub_81D0288 +sub_81D0288: @ 81D0288 + push {r4,r5,lr} + adds r5, r0, 0 + bl GetSelectedMatchCall + adds r4, r0, 0 + bl sub_81CFB38 + adds r2, r0, 0 + ldrh r0, [r5, 0x8] + adds r4, 0x1 + adds r1, r4, 0 + bl sub_81D02B0 + ldrb r0, [r5, 0x8] + movs r1, 0x2 + bl CopyWindowToVram + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_81D0288 + + thumb_func_start sub_81D02B0 +sub_81D02B0: @ 81D02B0 + push {r4,r5,lr} + sub sp, 0x1C + adds r4, r0, 0 + adds r5, r2, 0 + add r0, sp, 0xC + movs r2, 0x1 + movs r3, 0x3 + bl ConvertIntToDecimalStringN + movs r1, 0xBA + strb r1, [r0] + adds r0, 0x1 + adds r1, r5, 0 + movs r2, 0x1 + movs r3, 0x3 + bl ConvertIntToDecimalStringN + movs r0, 0x1 + add r1, sp, 0xC + movs r2, 0x38 + bl GetStringCenterAlignXOffset + adds r3, r0, 0 + lsls r4, 24 + lsrs r4, 24 + lsls r3, 24 + lsrs r3, 24 + movs r0, 0x1 + str r0, [sp] + movs r0, 0xFF + str r0, [sp, 0x4] + movs r0, 0 + str r0, [sp, 0x8] + adds r0, r4, 0 + movs r1, 0x1 + add r2, sp, 0xC + bl AddTextPrinterParameterized + add sp, 0x1C + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_81D02B0 + + thumb_func_start sub_81D0304 +sub_81D0304: @ 81D0304 + push {r4,lr} + sub sp, 0x18 + bl sub_81CFB28 + str r0, [sp] + bl sub_81CFB38 + mov r1, sp + movs r4, 0 + strh r0, [r1, 0x4] + movs r0, 0x4 + strb r0, [r1, 0x8] + bl sub_81CFB64 + mov r1, sp + strh r0, [r1, 0x6] + movs r0, 0xD + strb r0, [r1, 0x9] + movs r0, 0x11 + strb r0, [r1, 0xA] + mov r0, sp + movs r2, 0x1 + strb r2, [r0, 0xB] + movs r0, 0x8 + strb r0, [r1, 0xC] + movs r0, 0x2 + strb r0, [r1, 0xD] + mov r0, sp + strb r2, [r0, 0xE] + ldr r0, =sub_81D035C + str r0, [sp, 0x10] + str r4, [sp, 0x14] + ldr r0, =gUnknown_086237B4 + movs r2, 0 + bl sub_81C81D4 + add sp, 0x18 + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81D0304 + + thumb_func_start sub_81D035C +sub_81D035C: @ 81D035C + push {r4-r7,lr} + mov r7, r8 + push {r7} + adds r6, r1, 0 + adds r7, r0, 0 + ldrb r0, [r7] + cmp r0, 0xE + bne _081D03A4 + ldrb r1, [r7, 0x1] + movs r0, 0x64 + adds r4, r1, 0 + muls r4, r0 + ldr r0, =gPlayerParty + adds r4, r0 + adds r0, r4, 0 + bl GetMonGender + lsls r0, 24 + lsrs r5, r0, 24 + adds r0, r4, 0 + bl GetLevelFromMonExp + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + ldr r2, =gStringVar3 + adds r0, r4, 0 + movs r1, 0x2 + bl GetMonData + b _081D03CC + .pool +_081D03A4: + ldrb r0, [r7] + ldrb r1, [r7, 0x1] + bl GetBoxedMonPtr + adds r4, r0, 0 + bl GetBoxMonGender + lsls r0, 24 + lsrs r5, r0, 24 + adds r0, r4, 0 + bl GetLevelFromBoxMonExp + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + ldr r2, =gStringVar3 + adds r0, r4, 0 + movs r1, 0x2 + bl GetBoxMonData +_081D03CC: + ldr r4, =gStringVar3 + adds r0, r4, 0 + bl StringGetEnd10 + adds r0, r6, 0 + movs r1, 0x1 + adds r2, r4, 0 + movs r3, 0x3C + bl sub_81DB494 + adds r6, r0, 0 + cmp r5, 0 + beq _081D03F8 + cmp r5, 0xFE + beq _081D0400 + ldr r1, =gUnknown_086237F4 + b _081D0402 + .pool +_081D03F8: + ldr r1, =gUnknown_086237DC + b _081D0402 + .pool +_081D0400: + ldr r1, =gUnknown_086237E8 +_081D0402: + ldr r4, =gStringVar1 + adds r0, r4, 0 + bl StringCopy + movs r1, 0xBA + strb r1, [r0] + adds r0, 0x1 + movs r1, 0xF9 + strb r1, [r0] + adds r0, 0x1 + movs r1, 0x5 + strb r1, [r0] + adds r0, 0x1 + mov r1, r8 + movs r2, 0 + movs r3, 0x3 + bl ConvertIntToDecimalStringN + adds r0, r6, 0 + movs r1, 0x1 + adds r2, r4, 0 + movs r3, 0x36 + bl sub_81DB494 + adds r6, r0, 0 + ldrh r1, [r7, 0x2] + movs r2, 0x1 + movs r3, 0x2 + bl ConvertIntToDecimalStringN + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81D035C + + .align 2, 0 @ Don't pad with nop. |