diff options
-rw-r--r-- | asm-de/easy_chat.s | 10803 | ||||
-rw-r--r-- | asm/easy_chat.s | 10732 | ||||
-rw-r--r-- | data/easy_chat.s | 477 | ||||
-rw-r--r-- | include/constants/easy_chat.h | 4 | ||||
-rw-r--r-- | include/dewford_trend.h | 1 | ||||
-rw-r--r-- | include/easy_chat.h | 120 | ||||
-rw-r--r-- | include/field_map_obj.h | 2 | ||||
-rw-r--r-- | include/global.h | 4 | ||||
-rw-r--r-- | include/graphics.h | 87 | ||||
-rw-r--r-- | ld_script.txt | 6 | ||||
-rw-r--r-- | src/easy_chat_1.c | 1742 | ||||
-rw-r--r-- | src/easy_chat_2.c | 3048 | ||||
-rw-r--r-- | src/field/easy_chat.c | 445 | ||||
-rw-r--r-- | src/field/field_map_obj.c | 4 | ||||
-rw-r--r-- | src/pokemon/pokemon_menu.c | 8 | ||||
-rw-r--r-- | src/unknown_task.c | 1 | ||||
-rw-r--r-- | sym_bss.txt | 2 |
17 files changed, 4987 insertions, 22499 deletions
diff --git a/asm-de/easy_chat.s b/asm-de/easy_chat.s deleted file mode 100644 index 89ea03b69..000000000 --- a/asm-de/easy_chat.s +++ /dev/null @@ -1,10803 +0,0 @@ - .include "constants/gba_constants.inc" - .include "asm/macros.inc" - - .syntax unified - - .text - - thumb_func_start sub_80E60D8 -sub_80E60D8: @ 80E60D8 - push {r4-r7,lr} - movs r4, 0x3 - ldr r0, _080E60F4 @ =gSpecialVar_0x8004 - ldrh r1, [r0] - adds r7, r0, 0 - cmp r1, 0xD - bls _080E60E8 - b _080E6284 -_080E60E8: - lsls r0, r1, 2 - ldr r1, _080E60F8 @ =_080E60FC - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080E60F4: .4byte gSpecialVar_0x8004 -_080E60F8: .4byte _080E60FC - .align 2, 0 -_080E60FC: - .4byte _080E6134 - .4byte _080E613C - .4byte _080E6144 - .4byte _080E614C - .4byte _080E6154 - .4byte _080E619C - .4byte _080E616C - .4byte _080E61BC - .4byte _080E61E0 - .4byte _080E61FC - .4byte _080E6200 - .4byte _080E6214 - .4byte _080E623C - .4byte _080E6260 -_080E6134: - ldr r1, _080E6138 @ =gSaveBlock1 + 0x2B1C - b _080E624C - .align 2, 0 -_080E6138: .4byte gSaveBlock1 + 0x2B1C -_080E613C: - ldr r1, _080E6140 @ =gSaveBlock1 + 0x2B28 - b _080E6276 - .align 2, 0 -_080E6140: .4byte gSaveBlock1 + 0x2B28 -_080E6144: - ldr r1, _080E6148 @ =gSaveBlock1 + 0x2B34 - b _080E624C - .align 2, 0 -_080E6148: .4byte gSaveBlock1 + 0x2B34 -_080E614C: - ldr r1, _080E6150 @ =gSaveBlock1 + 0x2B40 - b _080E6276 - .align 2, 0 -_080E6150: .4byte gSaveBlock1 + 0x2B40 -_080E6154: - ldr r0, _080E6164 @ =gSpecialVar_0x8005 - ldrh r1, [r0] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, _080E6168 @ =gSaveBlock1 + 0x2B4C - adds r1, r0, r1 - b _080E624C - .align 2, 0 -_080E6164: .4byte gSpecialVar_0x8005 -_080E6168: .4byte gSaveBlock1 + 0x2B4C -_080E616C: - ldr r0, _080E6194 @ =gSaveBlock1 + 0x2D94 - movs r2, 0 - ldr r1, _080E6198 @ =sub_80546B8 - mov r12, r1 - adds r3, r0, 0 - adds r3, 0xE - adds r5, r0, 0x2 - adds r6, r3, 0 -_080E617C: - lsls r0, r2, 1 - adds r1, r3, r0 - adds r0, r5, r0 - ldrh r0, [r0] - strh r0, [r1] - adds r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - cmp r2, 0x5 - bls _080E617C - adds r1, r6, 0 - b _080E627A - .align 2, 0 -_080E6194: .4byte gSaveBlock1 + 0x2D94 -_080E6198: .4byte sub_80546B8 -_080E619C: - ldr r0, _080E61B0 @ =gSpecialVar_0x8005 - ldrh r1, [r0] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, _080E61B4 @ =gSaveBlock1 + 0x273C - adds r1, r0, r1 - ldr r0, _080E61B8 @ =gSpecialVar_0x8006 - ldrb r4, [r0] - b _080E6276 - .align 2, 0 -_080E61B0: .4byte gSpecialVar_0x8005 -_080E61B4: .4byte gSaveBlock1 + 0x273C -_080E61B8: .4byte gSpecialVar_0x8006 -_080E61BC: - ldr r0, _080E61D4 @ =gSpecialVar_0x8005 - ldrh r0, [r0] - lsls r1, r0, 3 - adds r1, r0 - lsls r1, 2 - ldr r0, _080E61D8 @ =gSaveBlock1 + 0x2754 - adds r1, r0 - ldr r0, _080E61DC @ =gSpecialVar_0x8006 - ldrh r0, [r0] - lsls r0, 1 - adds r1, r0 - b _080E624A - .align 2, 0 -_080E61D4: .4byte gSpecialVar_0x8005 -_080E61D8: .4byte gSaveBlock1 + 0x2754 -_080E61DC: .4byte gSpecialVar_0x8006 -_080E61E0: - ldr r0, _080E61F4 @ =gSpecialVar_0x8005 - ldrh r1, [r0] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, _080E61F8 @ =gSaveBlock1 + 0x273A - adds r1, r0, r1 - movs r4, 0 - b _080E6276 - .align 2, 0 -_080E61F4: .4byte gSpecialVar_0x8005 -_080E61F8: .4byte gSaveBlock1 + 0x273A -_080E61FC: - movs r1, 0 - b _080E624C -_080E6200: - ldr r1, _080E620C @ =gSaveBlock1 + 0x2B16 - ldr r2, _080E6210 @ =0x0000ffff - adds r0, r2, 0 - strh r0, [r1] - b _080E624A - .align 2, 0 -_080E620C: .4byte gSaveBlock1 + 0x2B16 -_080E6210: .4byte 0x0000ffff -_080E6214: - ldr r0, _080E6230 @ =gSpecialVar_0x8005 - ldrh r0, [r0] - lsls r1, r0, 3 - adds r1, r0 - lsls r1, 2 - ldr r0, _080E6234 @ =gSaveBlock1 + 0x273C - adds r1, r0 - ldr r0, _080E6238 @ =gSpecialVar_0x8006 - ldrh r0, [r0] - lsls r0, 1 - adds r1, r0 - movs r4, 0 - b _080E6276 - .align 2, 0 -_080E6230: .4byte gSpecialVar_0x8005 -_080E6234: .4byte gSaveBlock1 + 0x273C -_080E6238: .4byte gSpecialVar_0x8006 -_080E623C: - ldr r0, _080E6254 @ =gSpecialVar_0x8005 - ldrh r1, [r0] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, _080E6258 @ =gSaveBlock1 + 0x2750 - adds r1, r0, r1 -_080E624A: - movs r4, 0x1 -_080E624C: - ldr r0, _080E625C @ =sub_80546B8 - mov r12, r0 - b _080E627A - .align 2, 0 -_080E6254: .4byte gSpecialVar_0x8005 -_080E6258: .4byte gSaveBlock1 + 0x2750 -_080E625C: .4byte sub_80546B8 -_080E6260: - ldr r1, _080E628C @ =gSharedMem + 0x1000 - ldr r0, _080E6290 @ =0x00009fa8 - adds r2, r1, r0 - ldr r0, _080E6294 @ =0x0000ffff - strh r0, [r2] - ldr r0, _080E6298 @ =0x00009faa - adds r1, r0 - movs r0, 0x1 - negs r0, r0 - strh r0, [r1] - adds r1, r2, 0 -_080E6276: - ldr r2, _080E629C @ =sub_80546B8 - mov r12, r2 -_080E627A: - ldrb r0, [r7] - mov r2, r12 - adds r3, r4, 0 - bl sub_80E62A0 -_080E6284: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080E628C: .4byte gSharedMem + 0x1000 -_080E6290: .4byte 0x00009fa8 -_080E6294: .4byte 0x0000ffff -_080E6298: .4byte 0x00009faa -_080E629C: .4byte sub_80546B8 - thumb_func_end sub_80E60D8 - - thumb_func_start sub_80E62A0 -sub_80E62A0: @ 80E62A0 - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r4, _080E62DC @ =gSharedMem + 0x1000 - str r2, [r4] - str r1, [r4, 0x4] - strb r0, [r4, 0x8] - strb r3, [r4, 0xB] - cmp r0, 0x9 - bne _080E62D0 - ldr r0, _080E62E0 @ =0x00009fa8 - adds r2, r4, r0 - str r2, [r4, 0x4] - ldr r0, _080E62E4 @ =gSaveBlock1 - ldr r3, _080E62E8 @ =0x00002dd8 - adds r1, r0, r3 - ldrh r1, [r1] - strh r1, [r2] - ldr r1, _080E62EC @ =0x00002dda - adds r0, r1 - ldrh r1, [r0] - ldr r2, _080E62F0 @ =0x00009faa - adds r0, r4, r2 - strh r1, [r0] -_080E62D0: - ldr r0, _080E62F4 @ =sub_80E62F8 - bl SetMainCallback2 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080E62DC: .4byte gSharedMem + 0x1000 -_080E62E0: .4byte 0x00009fa8 -_080E62E4: .4byte gSaveBlock1 -_080E62E8: .4byte 0x00002dd8 -_080E62EC: .4byte 0x00002dda -_080E62F0: .4byte 0x00009faa -_080E62F4: .4byte sub_80E62F8 - thumb_func_end sub_80E62A0 - - thumb_func_start sub_80E62F8 -sub_80E62F8: @ 80E62F8 - push {lr} - sub sp, 0x4 - ldr r0, _080E6314 @ =gMain - ldr r1, _080E6318 @ =0x0000043c - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0x8 - bhi _080E6344 - lsls r0, 2 - ldr r1, _080E631C @ =_080E6320 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080E6314: .4byte gMain -_080E6318: .4byte 0x0000043c -_080E631C: .4byte _080E6320 - .align 2, 0 -_080E6320: - .4byte _080E6344 - .4byte _080E6380 - .4byte _080E638C - .4byte _080E63A8 - .4byte _080E63AE - .4byte _080E63B4 - .4byte _080E63BE - .4byte _080E63D8 - .4byte _080E63EA -_080E6344: - movs r1, 0x80 - lsls r1, 19 - movs r0, 0 - strh r0, [r1] - movs r0, 0 - bl SetVBlankCallback - bl ResetPaletteFade - bl ResetSpriteData - bl dp12_8087EA4 - bl remove_some_task - bl sub_80EAD08 - ldr r2, _080E637C @ =gUnknown_083DB698 - ldr r0, [r2] - ldr r1, [r2, 0x4] - ldr r2, [r2, 0x8] - bl sub_80895F8 - bl FreeSpriteTileRanges - bl FreeAllSpritePalettes - b _080E6402 - .align 2, 0 -_080E637C: .4byte gUnknown_083DB698 -_080E6380: - ldr r0, _080E6388 @ =gWindowConfig_81E6DA8 - bl SetUpWindowConfig - b _080E6402 - .align 2, 0 -_080E6388: .4byte gWindowConfig_81E6DA8 -_080E638C: - ldr r0, _080E63A0 @ =gWindowConfig_81E6D54 - bl InitMenuWindow - ldr r0, _080E63A4 @ =gWindowConfig_81E6DA8 - bl InitMenuWindow - bl MenuZeroFillScreen - b _080E6402 - .align 2, 0 -_080E63A0: .4byte gWindowConfig_81E6D54 -_080E63A4: .4byte gWindowConfig_81E6DA8 -_080E63A8: - bl sub_80E6424 - b _080E6402 -_080E63AE: - bl sub_80E8DD8 - b _080E6402 -_080E63B4: - bl sub_80E8218 - bl sub_80E8CEC - b _080E6402 -_080E63BE: - bl sub_80E69F8 - ldr r0, _080E63D0 @ =sub_80E6AA8 - bl sub_80E682C - ldr r0, _080E63D4 @ =sub_80E6A6C - bl SetVBlankCallback - b _080E6402 - .align 2, 0 -_080E63D0: .4byte sub_80E6AA8 -_080E63D4: .4byte sub_80E6A6C -_080E63D8: - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - b _080E6402 -_080E63EA: - movs r1, 0x80 - lsls r1, 19 - movs r2, 0xFA - lsls r2, 5 - adds r0, r2, 0 - strh r0, [r1] - ldr r0, _080E6414 @ =sub_80E6A88 - bl SetMainCallback2 - ldr r0, _080E6418 @ =0x00000805 - bl FlagSet -_080E6402: - ldr r1, _080E641C @ =gMain - ldr r0, _080E6420 @ =0x0000043c - adds r1, r0 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - add sp, 0x4 - pop {r0} - bx r0 - .align 2, 0 -_080E6414: .4byte sub_80E6A88 -_080E6418: .4byte 0x00000805 -_080E641C: .4byte gMain -_080E6420: .4byte 0x0000043c - thumb_func_end sub_80E62F8 - - thumb_func_start sub_80E6424 -sub_80E6424: @ 80E6424 - push {lr} - ldr r2, _080E6444 @ =gSharedMem + 0x1000 - ldr r0, _080E6448 @ =gUnknown_083DB6A4 - ldrb r1, [r2, 0x8] - adds r1, r0 - ldrb r0, [r1] - strb r0, [r2, 0x9] - ldrb r0, [r2, 0x9] - adds r3, r2, 0 - cmp r0, 0x5 - bhi _080E6512 - lsls r0, 2 - ldr r1, _080E644C @ =_080E6450 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080E6444: .4byte gSharedMem + 0x1000 -_080E6448: .4byte gUnknown_083DB6A4 -_080E644C: .4byte _080E6450 - .align 2, 0 -_080E6450: - .4byte _080E64A0 - .4byte _080E64B8 - .4byte _080E64DA - .4byte _080E64F6 - .4byte _080E6468 - .4byte _080E6480 -_080E6468: - movs r2, 0x4 - strb r2, [r3, 0xA] - adds r0, r3, 0 - adds r0, 0x83 - movs r1, 0x2 - strb r1, [r0] - adds r0, 0x1 - strb r1, [r0] - adds r1, r3, 0 - adds r1, 0x88 - movs r0, 0x5 - b _080E64D0 -_080E6480: - movs r1, 0x4 - strb r1, [r3, 0xA] - adds r2, r3, 0 - adds r2, 0x83 - movs r0, 0x1 - strb r0, [r2] - adds r0, r3, 0 - adds r0, 0x84 - strb r1, [r0] - adds r1, r3, 0 - adds r1, 0x88 - movs r0, 0x10 - strh r0, [r1] - adds r1, 0x2 - movs r0, 0x2 - b _080E6510 -_080E64A0: - movs r0, 0x6 - strb r0, [r3, 0xA] - adds r1, r3, 0 - adds r1, 0x83 - movs r0, 0x2 - strb r0, [r1] - adds r0, r3, 0 - adds r0, 0x84 - movs r2, 0x3 - strb r2, [r0] - adds r1, 0x5 - b _080E64CE -_080E64B8: - movs r2, 0 - movs r0, 0x9 - strb r0, [r3, 0xA] - adds r1, r3, 0 - adds r1, 0x83 - movs r0, 0x2 - strb r0, [r1] - adds r1, 0x1 - movs r0, 0x5 - strb r0, [r1] - adds r1, 0x4 -_080E64CE: - movs r0, 0x4 -_080E64D0: - strh r0, [r1] - adds r0, r3, 0 - adds r0, 0x8A - strh r2, [r0] - b _080E6512 -_080E64DA: - movs r1, 0x1 - strb r1, [r3, 0xA] - adds r0, r3, 0 - adds r0, 0x83 - strb r1, [r0] - adds r0, 0x1 - strb r1, [r0] - adds r1, r3, 0 - adds r1, 0x88 - movs r0, 0x10 - strh r0, [r1] - adds r1, 0x2 - movs r0, 0x4 - b _080E6510 -_080E64F6: - movs r0, 0x2 - strb r0, [r3, 0xA] - adds r1, r3, 0 - adds r1, 0x83 - strb r0, [r1] - adds r1, 0x1 - movs r0, 0x1 - strb r0, [r1] - adds r1, 0x4 - movs r0, 0x5 - strh r0, [r1] - adds r1, 0x2 - movs r0, 0x3 -_080E6510: - strh r0, [r1] -_080E6512: - adds r1, r3, 0 - adds r1, 0x86 - movs r0, 0 - strb r0, [r1] - subs r1, 0x1 - strb r0, [r1] - adds r1, 0x2 - strb r0, [r1] - subs r1, 0x61 - strb r0, [r1] - movs r2, 0xDD - lsls r2, 1 - adds r1, r3, r2 - strh r0, [r1] - movs r0, 0xDF - lsls r0, 1 - adds r1, r3, r0 - movs r0, 0x2 - strb r0, [r1] - bl sub_80E6554 - bl sub_80EAECC - bl sub_80EB040 - bl sub_80E7E50 - bl sub_80E6630 - bl sub_80E6690 - pop {r0} - bx r0 - thumb_func_end sub_80E6424 - - thumb_func_start sub_80E6554 -sub_80E6554: @ 80E6554 - push {r4-r7,lr} - sub sp, 0x4 - movs r4, 0 - movs r7, 0 - ldr r0, _080E6564 @ =gSharedMem + 0x1000 - mov r12, r0 - b _080E656E - .align 2, 0 -_080E6564: .4byte gSharedMem + 0x1000 -_080E6568: - adds r0, r7, 0x1 - lsls r0, 16 - lsrs r7, r0, 16 -_080E656E: - movs r5, 0 - lsls r3, r7, 1 - mov r6, r12 - adds r6, 0x2A - adds r2, r3, r6 - adds r1, r4, 0 - adds r0, r1, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - strb r1, [r2] - cmp r4, 0x11 - beq _080E65A6 -_080E6586: - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0x1 - bhi _080E65A2 - adds r2, r5, r3 - adds r2, r6 - adds r1, r4, 0 - adds r0, r1, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - strb r1, [r2] - cmp r4, 0x11 - bne _080E6586 -_080E65A2: - cmp r4, 0x11 - bne _080E6568 -_080E65A6: - movs r0, 0x11 - mov r1, r12 - strh r0, [r1, 0x28] - cmp r4, 0x15 - bhi _080E6612 - mov r6, r12 - adds r2, r6, 0 - adds r2, 0x78 -_080E65B6: - lsls r0, r4, 24 - lsrs r0, 24 - str r2, [sp] - bl sub_80EAD7C - lsls r0, 24 - lsrs r1, r0, 24 - ldr r2, [sp] - cmp r1, 0 - beq _080E65FC - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0x1 - bls _080E65DC - adds r0, r7, 0x1 - lsls r0, 16 - lsrs r7, r0, 16 - movs r5, 0 -_080E65DC: - lsls r0, r7, 1 - adds r0, r5, r0 - adds r1, r6, 0 - adds r1, 0x2A - adds r0, r1 - strb r4, [r0] - adds r0, r4, 0 - subs r0, 0x11 - adds r0, r2 - movs r1, 0x1 - strb r1, [r0] - ldrh r0, [r6, 0x28] - adds r0, 0x1 - strh r0, [r6, 0x28] - mov r12, r6 - b _080E6608 -_080E65FC: - adds r0, r4, 0 - subs r0, 0x11 - adds r0, r2 - strb r1, [r0] - ldr r0, _080E662C @ =gSharedMem + 0x1000 - mov r12, r0 -_080E6608: - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0x15 - bls _080E65B6 -_080E6612: - mov r1, r12 - ldrh r0, [r1, 0x28] - adds r0, 0x1 - asrs r0, 1 - movs r1, 0xDB - lsls r1, 1 - add r1, r12 - strb r0, [r1] - add sp, 0x4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080E662C: .4byte gSharedMem + 0x1000 - thumb_func_end sub_80E6554 - - thumb_func_start sub_80E6630 -sub_80E6630: @ 80E6630 - push {r4-r7,lr} - movs r1, 0 - ldr r0, _080E6664 @ =gUnknown_083DB6B2 - mov r12, r0 -_080E6638: - lsls r0, r1, 4 - mov r2, r12 - adds r5, r0, r2 - movs r3, 0 - ldrb r0, [r5] - adds r7, r1, 0x1 - cmp r0, 0xFF - beq _080E6680 - lsls r0, r1, 3 - subs r0, r1 - lsls r4, r0, 1 - ldr r6, _080E6668 @ =gSharedMem + 0x1040 -_080E6650: - adds r0, r5, r3 - ldrb r1, [r0] - adds r2, r1, 0 - cmp r2, 0 - beq _080E666C - adds r0, r3, r4 - adds r0, r6 - adds r1, 0x46 - strb r1, [r0] - b _080E6672 - .align 2, 0 -_080E6664: .4byte gUnknown_083DB6B2 -_080E6668: .4byte gSharedMem + 0x1040 -_080E666C: - adds r0, r3, r4 - adds r0, r6 - strb r2, [r0] -_080E6672: - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - adds r0, r5, r3 - ldrb r0, [r0] - cmp r0, 0xFF - bne _080E6650 -_080E6680: - lsls r0, r7, 24 - lsrs r1, r0, 24 - cmp r1, 0x3 - bls _080E6638 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80E6630 - - thumb_func_start sub_80E6690 -sub_80E6690: @ 80E6690 - push {r4-r6,lr} - sub sp, 0x10 - mov r0, sp - ldr r1, _080E66E0 @ =gUnknown_083DB7DC - ldm r1!, {r2-r4} - stm r0!, {r2-r4} - ldr r1, [r1] - str r1, [r0] - movs r5, 0 - ldr r6, _080E66E4 @ =gUnknown_083DB7C0 -_080E66A4: - ldr r0, _080E66E8 @ =gSharedMem + 0x1000 - ldrb r0, [r0, 0x8] - lsls r0, 1 - adds r0, r5, r0 - adds r0, r6 - ldrb r1, [r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - ldr r1, _080E66EC @ =gUnknown_083DB6F4 - adds r4, r0, r1 - lsls r0, r5, 3 - add r0, sp - ldr r0, [r0] - ldr r1, [r4] - bl StringCopy - adds r3, r0, 0 - ldrb r0, [r4, 0x8] - cmp r0, 0 - beq _080E66F0 - lsls r0, r5, 1 - adds r0, 0x1 - lsls r0, 2 - add r0, sp - ldr r0, [r0] - ldr r1, [r4, 0x4] - bl StringCopy - b _080E670A - .align 2, 0 -_080E66E0: .4byte gUnknown_083DB7DC -_080E66E4: .4byte gUnknown_083DB7C0 -_080E66E8: .4byte gSharedMem + 0x1000 -_080E66EC: .4byte gUnknown_083DB6F4 -_080E66F0: - strb r0, [r3] - adds r3, 0x1 - ldr r1, [r4, 0x4] - adds r0, r3, 0 - bl StringCopy - lsls r0, r5, 1 - adds r0, 0x1 - lsls r0, 2 - add r0, sp - ldr r1, [r0] - movs r0, 0xFF - strb r0, [r1] -_080E670A: - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0x1 - bls _080E66A4 - movs r5, 0 - ldr r3, _080E6758 @ =gSharedMem + 0x1000 - ldr r0, _080E675C @ =0x0000a0d0 - adds r2, r3, r0 - movs r1, 0 -_080E671E: - adds r0, r5, r2 - strb r1, [r0] - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0x23 - bls _080E671E - ldr r1, _080E675C @ =0x0000a0d0 - adds r0, r3, r1 - adds r0, r5, r0 - movs r4, 0x1 - negs r4, r4 - adds r2, r4, 0 - movs r1, 0xFF - strb r1, [r0] - ldr r0, _080E6760 @ =0x0000a29a - adds r3, r0 - movs r0, 0xFC - strb r0, [r3] - movs r0, 0x11 - strb r0, [r3, 0x1] - movs r0, 0xE0 - strb r0, [r3, 0x2] - strb r2, [r3, 0x3] - add sp, 0x10 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080E6758: .4byte gSharedMem + 0x1000 -_080E675C: .4byte 0x0000a0d0 -_080E6760: .4byte 0x0000a29a - thumb_func_end sub_80E6690 - - thumb_func_start InitEasyChatPhrases -InitEasyChatPhrases: @ 80E6764 - push {r4-r6,lr} - movs r3, 0 - ldr r4, _080E680C @ =gSaveBlock1 + 0x2B1C - ldr r2, _080E6810 @ =gUnknown_083DB7EC -_080E676C: - lsls r0, r3, 1 - adds r1, r0, r4 - adds r0, r2 - ldrh r0, [r0] - strh r0, [r1] - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, 0x3 - bls _080E676C - movs r3, 0 - ldr r4, _080E6814 @ =gSaveBlock1 + 0x2B28 - ldr r2, _080E6818 @ =gUnknown_083DB7F4 -_080E6786: - lsls r0, r3, 1 - adds r1, r0, r4 - adds r0, r2 - ldrh r0, [r0] - strh r0, [r1] - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, 0x5 - bls _080E6786 - movs r3, 0 - ldr r5, _080E681C @ =gSaveBlock1 + 0x2B34 - ldr r0, _080E6820 @ =0x0000ffff - adds r4, r0, 0 - adds r6, r5, 0 - adds r6, 0xC -_080E67A6: - lsls r1, r3, 1 - adds r2, r1, r5 - ldrh r0, [r2] - orrs r0, r4 - strh r0, [r2] - adds r1, r6 - ldrh r0, [r1] - orrs r0, r4 - strh r0, [r1] - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, 0x5 - bls _080E67A6 - movs r3, 0 - ldr r6, _080E6824 @ =gSaveBlock1 + 0x2B4C - ldr r0, _080E6820 @ =0x0000ffff - adds r5, r0, 0 -_080E67CA: - movs r2, 0 - lsls r0, r3, 3 - adds r0, r3 - lsls r4, r0, 2 -_080E67D2: - lsls r0, r2, 1 - adds r0, r4 - adds r0, r6 - ldrh r1, [r0] - orrs r1, r5 - strh r1, [r0] - adds r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - cmp r2, 0x8 - bls _080E67D2 - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, 0xF - bls _080E67CA - movs r3, 0 - ldr r2, _080E6828 @ =gSaveBlock1 + 0x2D8C - movs r1, 0 -_080E67F8: - adds r0, r3, r2 - strb r1, [r0] - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, 0x3F - bls _080E67F8 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080E680C: .4byte gSaveBlock1 + 0x2B1C -_080E6810: .4byte gUnknown_083DB7EC -_080E6814: .4byte gSaveBlock1 + 0x2B28 -_080E6818: .4byte gUnknown_083DB7F4 -_080E681C: .4byte gSaveBlock1 + 0x2B34 -_080E6820: .4byte 0x0000ffff -_080E6824: .4byte gSaveBlock1 + 0x2B4C -_080E6828: .4byte gSaveBlock1 + 0x2D8C - thumb_func_end InitEasyChatPhrases - - thumb_func_start sub_80E682C -sub_80E682C: @ 80E682C - ldr r1, _080E6838 @ =gSharedMem + 0x1000 - str r0, [r1, 0x20] - movs r0, 0 - strh r0, [r1, 0x24] - bx lr - .align 2, 0 -_080E6838: .4byte gSharedMem + 0x1000 - thumb_func_end sub_80E682C - - thumb_func_start sub_80E683C -sub_80E683C: @ 80E683C - push {r4,r5,lr} - ldr r1, _080E6890 @ =gSharedMem + 0x1000 - adds r0, r1, 0 - adds r0, 0x26 - ldrb r0, [r0] - adds r2, r1, 0 - cmp r0, 0 - bne _080E6898 - movs r1, 0 - movs r0, 0xDB - lsls r0, 1 - adds r3, r2, r0 - movs r0, 0 - ldrsb r0, [r3, r0] - cmp r1, r0 - bge _080E6876 - movs r0, 0xD5 - lsls r0, 1 - adds r5, r2, r0 - movs r4, 0x2 -_080E6864: - adds r0, r1, r5 - strb r4, [r0] - adds r0, r1, 0x1 - lsls r0, 16 - lsrs r1, r0, 16 - movs r0, 0 - ldrsb r0, [r3, r0] - cmp r1, r0 - blt _080E6864 -_080E6876: - adds r0, r2, r1 - ldr r1, _080E6894 @ =0x000001a9 - adds r3, r0, r1 - ldrh r0, [r2, 0x28] - movs r1, 0x1 - ands r0, r1 - strb r0, [r3] - cmp r0, 0 - bne _080E68B8 - movs r0, 0x2 - strb r0, [r3] - b _080E68B8 - .align 2, 0 -_080E6890: .4byte gSharedMem + 0x1000 -_080E6894: .4byte 0x000001a9 -_080E6898: - movs r3, 0xD5 - lsls r3, 1 - adds r1, r2, r3 - movs r0, 0x7 - strb r0, [r1] - ldr r1, _080E68E0 @ =0x000001ab - adds r3, r2, r1 - movs r1, 0x6 - strb r1, [r3] - movs r3, 0xD6 - lsls r3, 1 - adds r1, r2, r3 - strb r0, [r1] - adds r3, 0x1 - adds r1, r2, r3 - strb r0, [r1] -_080E68B8: - movs r0, 0xD4 - lsls r0, 1 - adds r1, r2, r0 - movs r0, 0 - strb r0, [r1] - ldr r3, _080E68E4 @ =0x000001a9 - adds r1, r2, r3 - strb r0, [r1] - adds r3, 0xC - adds r1, r2, r3 - strb r0, [r1] - adds r3, 0x2 - adds r1, r2, r3 - strb r0, [r1] - bl sub_80E9A4C - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080E68E0: .4byte 0x000001ab -_080E68E4: .4byte 0x000001a9 - thumb_func_end sub_80E683C - - thumb_func_start sub_80E68E8 -sub_80E68E8: @ 80E68E8 - push {r4-r6,lr} - bl sub_80EB0B0 - ldr r3, _080E694C @ =gSharedMem + 0x1000 - adds r0, r3, 0 - adds r0, 0x26 - ldrb r0, [r0] - cmp r0, 0 - bne _080E695C - movs r1, 0xDC - lsls r1, 1 - adds r0, r3, r1 - ldrb r6, [r0] - lsls r0, r6, 1 - ldr r2, _080E6950 @ =0x000044a2 - adds r1, r3, r2 - adds r0, r1 - ldrh r0, [r0] - adds r0, 0x1 - asrs r0, 1 - ldr r1, _080E6954 @ =0x00009d54 - adds r2, r3, r1 - strb r0, [r2] - movs r1, 0 - movs r0, 0 - ldrsb r0, [r2, r0] - adds r5, r3, 0 - cmp r1, r0 - bge _080E693A - ldr r3, _080E6958 @ =0x00009cd2 - adds r4, r5, r3 - movs r3, 0x2 -_080E6928: - adds r0, r1, r4 - strb r3, [r0] - adds r0, r1, 0x1 - lsls r0, 16 - lsrs r1, r0, 16 - movs r0, 0 - ldrsb r0, [r2, r0] - cmp r1, r0 - blt _080E6928 -_080E693A: - subs r0, r1, 0x1 - lsls r0, 16 - lsrs r1, r0, 16 - ldr r2, _080E6958 @ =0x00009cd2 - adds r0, r5, r2 - adds r2, r1, r0 - lsls r0, r6, 1 - ldr r3, _080E6950 @ =0x000044a2 - b _080E69AC - .align 2, 0 -_080E694C: .4byte gSharedMem + 0x1000 -_080E6950: .4byte 0x000044a2 -_080E6954: .4byte 0x00009d54 -_080E6958: .4byte 0x00009cd2 -_080E695C: - movs r1, 0xDC - lsls r1, 1 - adds r0, r3, r1 - ldrb r6, [r0] - lsls r0, r6, 1 - ldr r2, _080E69E0 @ =0x0000446c - adds r1, r3, r2 - adds r0, r1 - ldrh r0, [r0] - adds r0, 0x1 - asrs r0, 1 - ldr r1, _080E69E4 @ =0x00009d54 - adds r2, r3, r1 - strb r0, [r2] - movs r1, 0 - movs r0, 0 - ldrsb r0, [r2, r0] - adds r5, r3, 0 - cmp r1, r0 - bge _080E699C - ldr r3, _080E69E8 @ =0x00009cd2 - adds r4, r5, r3 - movs r3, 0x2 -_080E698A: - adds r0, r1, r4 - strb r3, [r0] - adds r0, r1, 0x1 - lsls r0, 16 - lsrs r1, r0, 16 - movs r0, 0 - ldrsb r0, [r2, r0] - cmp r1, r0 - blt _080E698A -_080E699C: - subs r0, r1, 0x1 - lsls r0, 16 - lsrs r1, r0, 16 - ldr r2, _080E69E8 @ =0x00009cd2 - adds r0, r5, r2 - adds r2, r1, r0 - lsls r0, r6, 1 - ldr r3, _080E69E0 @ =0x0000446c -_080E69AC: - adds r1, r5, r3 - adds r0, r1 - ldrh r0, [r0] - movs r1, 0x1 - ands r0, r1 - strb r0, [r2] - cmp r0, 0 - bne _080E69C0 - movs r0, 0x2 - strb r0, [r2] -_080E69C0: - ldr r1, _080E69EC @ =0x00009cd0 - adds r0, r5, r1 - movs r1, 0 - strb r1, [r0] - ldr r2, _080E69F0 @ =0x00009cd1 - adds r0, r5, r2 - strb r1, [r0] - ldr r3, _080E69F4 @ =0x00009d55 - adds r0, r5, r3 - strb r1, [r0] - bl sub_80E9A4C - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080E69E0: .4byte 0x0000446c -_080E69E4: .4byte 0x00009d54 -_080E69E8: .4byte 0x00009cd2 -_080E69EC: .4byte 0x00009cd0 -_080E69F0: .4byte 0x00009cd1 -_080E69F4: .4byte 0x00009d55 - thumb_func_end sub_80E68E8 - - thumb_func_start sub_80E69F8 -sub_80E69F8: @ 80E69F8 - push {r4,lr} - ldr r0, _080E6A10 @ =gSharedMem + 0x1000 - ldrb r1, [r0, 0x8] - adds r4, r0, 0 - cmp r1, 0xD - bhi _080E6A50 - lsls r0, r1, 2 - ldr r1, _080E6A14 @ =_080E6A18 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080E6A10: .4byte gSharedMem + 0x1000 -_080E6A14: .4byte _080E6A18 - .align 2, 0 -_080E6A18: - .4byte _080E6A50 - .4byte _080E6A50 - .4byte _080E6A50 - .4byte _080E6A50 - .4byte _080E6A50 - .4byte _080E6A58 - .4byte _080E6A50 - .4byte _080E6A58 - .4byte _080E6A58 - .4byte _080E6A50 - .4byte _080E6A58 - .4byte _080E6A58 - .4byte _080E6A58 - .4byte _080E6A50 -_080E6A50: - ldrb r0, [r4, 0x8] - bl sub_80E9368 - b _080E6A66 -_080E6A58: - ldrb r0, [r4, 0x8] - bl sub_80E9368 - ldrb r0, [r4, 0xB] - ldrb r1, [r4, 0x9] - bl sub_80E8BF4 -_080E6A66: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80E69F8 - - thumb_func_start sub_80E6A6C -sub_80E6A6C: @ 80E6A6C - push {lr} - bl LoadOam - bl ProcessSpriteCopyRequests - bl sub_80EAC5C - bl TransferPlttBuffer - bl sub_8089668 - pop {r0} - bx r0 - thumb_func_end sub_80E6A6C - - thumb_func_start sub_80E6A88 -sub_80E6A88: @ 80E6A88 - push {lr} - ldr r0, _080E6AA4 @ =gSharedMem + 0x1000 - ldr r0, [r0, 0x20] - bl _call_via_r0 - bl AnimateSprites - bl BuildOamBuffer - bl sub_80EAD08 - pop {r0} - bx r0 - .align 2, 0 -_080E6AA4: .4byte gSharedMem + 0x1000 - thumb_func_end sub_80E6A88 - - thumb_func_start sub_80E6AA8 -sub_80E6AA8: @ 80E6AA8 - push {lr} - bl UpdatePaletteFade - lsls r0, 24 - cmp r0, 0 - bne _080E6ABA - ldr r0, _080E6AC0 @ =sub_80E6AC4 - bl sub_80E682C -_080E6ABA: - pop {r0} - bx r0 - .align 2, 0 -_080E6AC0: .4byte sub_80E6AC4 - thumb_func_end sub_80E6AA8 - - thumb_func_start sub_80E6AC4 -sub_80E6AC4: @ 80E6AC4 - push {lr} - bl sub_80E88F0 - movs r0, 0 - bl sub_80E8398 - movs r0, 0 - bl sub_80E91D4 - ldr r0, _080E6AE0 @ =sub_80E6AE4 - bl sub_80E682C - pop {r0} - bx r0 - .align 2, 0 -_080E6AE0: .4byte sub_80E6AE4 - thumb_func_end sub_80E6AC4 - - thumb_func_start sub_80E6AE4 -sub_80E6AE4: @ 80E6AE4 - push {r4,r5,lr} - bl sub_80E75D8 - ldr r4, _080E6B44 @ =gSharedMem + 0x1000 - adds r1, r4, 0 - adds r1, 0x87 - strb r0, [r1] - lsls r0, 24 - cmp r0, 0 - beq _080E6AFE - movs r0, 0x5 - bl PlaySE -_080E6AFE: - ldr r2, _080E6B48 @ =gMain - ldrh r1, [r2, 0x2E] - movs r0, 0x1 - ands r0, r1 - adds r5, r2, 0 - cmp r0, 0 - beq _080E6BA4 - movs r0, 0x5 - bl PlaySE - adds r1, r4, 0 - adds r1, 0x86 - adds r0, r4, 0 - adds r0, 0x84 - ldrb r2, [r1] - ldrb r1, [r1] - lsls r1, 24 - asrs r1, 24 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r1, r0 - bne _080E6B78 - adds r0, r4, 0 - adds r0, 0x85 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0x1 - beq _080E6B60 - cmp r0, 0x1 - bgt _080E6B4C - cmp r0, 0 - beq _080E6B52 - b _080E6BA4 - .align 2, 0 -_080E6B44: .4byte gSharedMem + 0x1000 -_080E6B48: .4byte gMain -_080E6B4C: - cmp r0, 0x2 - beq _080E6B6C - b _080E6BA4 -_080E6B52: - ldr r0, _080E6B5C @ =sub_80E6BC0 - bl sub_80E682C - b _080E6BB4 - .align 2, 0 -_080E6B5C: .4byte sub_80E6BC0 -_080E6B60: - ldr r0, _080E6B68 @ =sub_80E6C84 - bl sub_80E682C - b _080E6BB4 - .align 2, 0 -_080E6B68: .4byte sub_80E6C84 -_080E6B6C: - ldr r0, _080E6B74 @ =sub_80E6D7C - bl sub_80E682C - b _080E6BB4 - .align 2, 0 -_080E6B74: .4byte sub_80E6D7C -_080E6B78: - adds r0, r4, 0 - adds r0, 0x83 - ldrb r0, [r0] - adds r1, r4, 0 - adds r1, 0x85 - adds r3, r0, 0 - muls r3, r2 - adds r0, r3, 0 - ldrb r1, [r1] - adds r0, r1 - adds r1, r4, 0 - adds r1, 0x27 - strb r0, [r1] - bl sub_80E7574 - ldr r0, _080E6BA0 @ =sub_80E6F68 - bl sub_80E682C - b _080E6BB4 - .align 2, 0 -_080E6BA0: .4byte sub_80E6F68 -_080E6BA4: - ldrh r1, [r5, 0x2E] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _080E6BB4 - ldr r0, _080E6BBC @ =sub_80E6C84 - bl sub_80E682C -_080E6BB4: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080E6BBC: .4byte sub_80E6C84 - thumb_func_end sub_80E6AE4 - - thumb_func_start sub_80E6BC0 -sub_80E6BC0: @ 80E6BC0 - push {r4,lr} - ldr r4, _080E6BD4 @ =gSharedMem + 0x1000 - ldrh r0, [r4, 0x24] - cmp r0, 0x1 - beq _080E6C12 - cmp r0, 0x1 - bgt _080E6BD8 - cmp r0, 0 - beq _080E6BE2 - b _080E6C76 - .align 2, 0 -_080E6BD4: .4byte gSharedMem + 0x1000 -_080E6BD8: - cmp r0, 0x2 - beq _080E6C54 - cmp r0, 0x64 - beq _080E6C64 - b _080E6C76 -_080E6BE2: - movs r0, 0x2 - bl sub_80E8398 - ldrb r0, [r4, 0x8] - cmp r0, 0x6 - bne _080E6BFA - movs r0, 0x6 - bl sub_80E91D4 - movs r0, 0x64 - strh r0, [r4, 0x24] - b _080E6C76 -_080E6BFA: - movs r0, 0x2 - bl sub_80E91D4 - movs r0, 0x17 - movs r1, 0x8 - movs r2, 0x1 - bl DisplayYesNoMenu - movs r0, 0x1 - bl MoveMenuCursor - b _080E6C3E -_080E6C12: - bl ProcessMenuInputNoWrap_ - lsls r0, 24 - asrs r1, r0, 24 - cmp r1, 0 - beq _080E6C32 - cmp r1, 0 - bgt _080E6C2C - movs r0, 0x1 - negs r0, r0 - cmp r1, r0 - beq _080E6C46 - b _080E6C76 -_080E6C2C: - cmp r1, 0x1 - beq _080E6C46 - b _080E6C76 -_080E6C32: - bl sub_80E7D6C - bl sub_80E98C4 - bl sub_80E95A4 -_080E6C3E: - ldrh r0, [r4, 0x24] - adds r0, 0x1 - strh r0, [r4, 0x24] - b _080E6C76 -_080E6C46: - ldr r1, _080E6C50 @ =gSharedMem + 0x1000 - ldrh r0, [r1, 0x24] - adds r0, 0x1 - strh r0, [r1, 0x24] - b _080E6C76 - .align 2, 0 -_080E6C50: .4byte gSharedMem + 0x1000 -_080E6C54: - bl sub_80E81FC - ldr r0, _080E6C60 @ =sub_80E6AC4 - bl sub_80E682C - b _080E6C76 - .align 2, 0 -_080E6C60: .4byte sub_80E6AC4 -_080E6C64: - ldr r0, _080E6C7C @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x3 - ands r0, r1 - cmp r0, 0 - beq _080E6C76 - ldr r0, _080E6C80 @ =sub_80E6AC4 - bl sub_80E682C -_080E6C76: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080E6C7C: .4byte gMain -_080E6C80: .4byte sub_80E6AC4 - thumb_func_end sub_80E6BC0 - - thumb_func_start sub_80E6C84 -sub_80E6C84: @ 80E6C84 - push {r4,lr} - ldr r4, _080E6C98 @ =gSharedMem + 0x1000 - ldrh r0, [r4, 0x24] - cmp r0, 0x1 - beq _080E6CF4 - cmp r0, 0x1 - bgt _080E6C9C - cmp r0, 0 - beq _080E6CA6 - b _080E6D72 - .align 2, 0 -_080E6C98: .4byte gSharedMem + 0x1000 -_080E6C9C: - cmp r0, 0x2 - beq _080E6D24 - cmp r0, 0xFF - beq _080E6D64 - b _080E6D72 -_080E6CA6: - movs r0, 0x2 - bl sub_80E8398 - movs r0, 0x3 - bl sub_80E91D4 - movs r0, 0x17 - movs r1, 0x8 - movs r2, 0 - bl DisplayYesNoMenu - movs r0, 0x1 - bl MoveMenuCursor - ldrb r0, [r4, 0x8] - cmp r0, 0x9 - beq _080E6CE8 - cmp r0, 0x4 - beq _080E6CE8 - cmp r0, 0x7 - beq _080E6CE8 - cmp r0, 0x8 - beq _080E6CE8 - cmp r0, 0xA - beq _080E6CE8 - cmp r0, 0xB - beq _080E6CE8 - cmp r0, 0xC - beq _080E6CE8 - cmp r0, 0x5 - beq _080E6CE8 - cmp r0, 0xD - bne _080E6D1C -_080E6CE8: - ldr r1, _080E6CF0 @ =gSharedMem + 0x1000 - movs r0, 0x2 - strh r0, [r1, 0x24] - b _080E6D72 - .align 2, 0 -_080E6CF0: .4byte gSharedMem + 0x1000 -_080E6CF4: - bl ProcessMenuInputNoWrap_ - lsls r0, 24 - asrs r1, r0, 24 - cmp r1, 0 - beq _080E6D06 - cmp r1, 0 - ble _080E6D34 - b _080E6D3E -_080E6D06: - movs r0, 0x4 - bl sub_80E91D4 - movs r0, 0x17 - movs r1, 0x8 - movs r2, 0 - bl DisplayYesNoMenu - movs r0, 0x1 - bl MoveMenuCursor -_080E6D1C: - ldrh r0, [r4, 0x24] - adds r0, 0x1 - strh r0, [r4, 0x24] - b _080E6D72 -_080E6D24: - bl ProcessMenuInputNoWrap_ - lsls r0, 24 - asrs r1, r0, 24 - cmp r1, 0 - beq _080E6D44 - cmp r1, 0 - bgt _080E6D3E -_080E6D34: - movs r0, 0x1 - negs r0, r0 - cmp r1, r0 - beq _080E6D58 - b _080E6D72 -_080E6D3E: - cmp r1, 0x1 - beq _080E6D58 - b _080E6D72 -_080E6D44: - ldr r0, _080E6D50 @ =gSpecialVar_Result - strh r1, [r0] - ldr r0, _080E6D54 @ =sub_80E752C - bl sub_80E682C - b _080E6D72 - .align 2, 0 -_080E6D50: .4byte gSpecialVar_Result -_080E6D54: .4byte sub_80E752C -_080E6D58: - ldr r1, _080E6D60 @ =gSharedMem + 0x1000 - movs r0, 0xFF - strh r0, [r1, 0x24] - b _080E6D72 - .align 2, 0 -_080E6D60: .4byte gSharedMem + 0x1000 -_080E6D64: - bl HandleDestroyMenuCursors - bl sub_80E81FC - ldr r0, _080E6D78 @ =sub_80E6AC4 - bl sub_80E682C -_080E6D72: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080E6D78: .4byte sub_80E6AC4 - thumb_func_end sub_80E6C84 - - thumb_func_start sub_80E6D7C -sub_80E6D7C: @ 80E6D7C - push {r4-r7,lr} - ldr r5, _080E6D98 @ =gSharedMem + 0x1000 - ldrh r0, [r5, 0x24] - cmp r0, 0xA - bne _080E6D88 - b _080E6F06 -_080E6D88: - cmp r0, 0xA - bgt _080E6D9C - cmp r0, 0 - beq _080E6DB6 - cmp r0, 0x1 - beq _080E6E3C - b _080E6F5E - .align 2, 0 -_080E6D98: .4byte gSharedMem + 0x1000 -_080E6D9C: - cmp r0, 0x65 - bne _080E6DA2 - b _080E6F30 -_080E6DA2: - cmp r0, 0x65 - bgt _080E6DAE - cmp r0, 0x64 - bne _080E6DAC - b _080E6F24 -_080E6DAC: - b _080E6F5E -_080E6DAE: - cmp r0, 0x66 - bne _080E6DB4 - b _080E6F50 -_080E6DB4: - b _080E6F5E -_080E6DB6: - movs r0, 0x2 - bl sub_80E8398 - bl sub_80E8054 - lsls r0, 24 - cmp r0, 0 - beq _080E6DCA - movs r0, 0x5 - b _080E6DEE -_080E6DCA: - ldrb r0, [r5, 0x8] - cmp r0, 0x9 - bne _080E6DFC - bl sub_80E7FA8 - lsls r0, 24 - cmp r0, 0 - bne _080E6DDE - movs r0, 0x8 - b _080E6DEE -_080E6DDE: - ldrh r0, [r5, 0xC] - ldr r1, _080E6DF8 @ =0x0000ffff - cmp r0, r1 - beq _080E6DEC - ldrh r0, [r5, 0xE] - cmp r0, r1 - bne _080E6DFC -_080E6DEC: - movs r0, 0x9 -_080E6DEE: - bl sub_80E91D4 - movs r0, 0xA - strh r0, [r5, 0x24] - b _080E6F5E - .align 2, 0 -_080E6DF8: .4byte 0x0000ffff -_080E6DFC: - ldr r0, _080E6E18 @ =gSharedMem + 0x1000 - ldrb r0, [r0, 0x8] - cmp r0, 0x4 - bne _080E6E20 - bl sub_80E7FA8 - lsls r0, 24 - cmp r0, 0 - bne _080E6E20 - ldr r0, _080E6E1C @ =sub_80E6C84 - bl sub_80E682C - b _080E6F5E - .align 2, 0 -_080E6E18: .4byte gSharedMem + 0x1000 -_080E6E1C: .4byte sub_80E6C84 -_080E6E20: - movs r0, 0x1 - bl sub_80E91D4 - bl sub_80E9744 - movs r0, 0x17 - movs r1, 0x8 - movs r2, 0 - bl DisplayYesNoMenu - movs r0, 0 - bl MoveMenuCursor - b _080E6F3C -_080E6E3C: - bl ProcessMenuInputNoWrap_ - lsls r0, 24 - asrs r6, r0, 24 - cmp r6, 0 - beq _080E6E5C - cmp r6, 0 - bgt _080E6E56 - movs r0, 0x1 - negs r0, r0 - cmp r6, r0 - beq _080E6EDC - b _080E6F5E -_080E6E56: - cmp r6, 0x1 - beq _080E6EDC - b _080E6F5E -_080E6E5C: - ldr r7, _080E6EC8 @ =gSpecialVar_Result - bl sub_80E7FA8 - lsls r0, 24 - lsrs r0, 24 - negs r0, r0 - lsrs r0, 31 - strh r0, [r7] - bl sub_80E7D9C - ldrb r0, [r5, 0x8] - cmp r0, 0 - bne _080E6E82 - ldr r4, _080E6ECC @ =gSpecialVar_0x8004 - bl sub_80E8094 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4] -_080E6E82: - ldrb r0, [r5, 0x8] - cmp r0, 0x9 - bne _080E6E9C - bl sub_80E81C0 - ldr r4, _080E6ECC @ =gSpecialVar_0x8004 - ldr r1, _080E6ED0 @ =0x00009fa8 - adds r0, r5, r1 - bl sub_80FA364 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4] -_080E6E9C: - ldrb r0, [r5, 0x8] - cmp r0, 0xD - bne _080E6EBE - ldrh r0, [r5, 0xC] - ldr r1, _080E6ED4 @ =0x0000ffff - cmp r0, r1 - beq _080E6EB0 - ldrh r0, [r5, 0xE] - cmp r0, r1 - bne _080E6EB2 -_080E6EB0: - strh r6, [r7] -_080E6EB2: - ldr r4, _080E6ECC @ =gSpecialVar_0x8004 - bl sub_80E810C - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4] -_080E6EBE: - ldr r0, _080E6ED8 @ =sub_80E752C - bl sub_80E682C - b _080E6F5E - .align 2, 0 -_080E6EC8: .4byte gSpecialVar_Result -_080E6ECC: .4byte gSpecialVar_0x8004 -_080E6ED0: .4byte 0x00009fa8 -_080E6ED4: .4byte 0x0000ffff -_080E6ED8: .4byte sub_80E752C -_080E6EDC: - bl HandleDestroyMenuCursors - bl sub_80E81FC - ldr r4, _080E6EFC @ =gSharedMem + 0x1000 - ldrb r0, [r4, 0x8] - cmp r0, 0x6 - bne _080E6F00 - bl sub_80E7FA8 - lsls r0, 24 - cmp r0, 0 - beq _080E6F00 - movs r0, 0x64 - strh r0, [r4, 0x24] - b _080E6F5E - .align 2, 0 -_080E6EFC: .4byte gSharedMem + 0x1000 -_080E6F00: - bl sub_80E95A4 - b _080E6F12 -_080E6F06: - ldr r0, _080E6F1C @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x3 - ands r0, r1 - cmp r0, 0 - beq _080E6F5E -_080E6F12: - ldr r0, _080E6F20 @ =sub_80E6AC4 - bl sub_80E682C - b _080E6F5E - .align 2, 0 -_080E6F1C: .4byte gMain -_080E6F20: .4byte sub_80E6AC4 -_080E6F24: - movs r0, 0x7 - bl sub_80E91D4 - ldrh r0, [r5, 0x24] - adds r0, 0x1 - strh r0, [r5, 0x24] -_080E6F30: - ldr r0, _080E6F48 @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080E6F5E -_080E6F3C: - ldr r1, _080E6F4C @ =gSharedMem + 0x1000 - ldrh r0, [r1, 0x24] - adds r0, 0x1 - strh r0, [r1, 0x24] - b _080E6F5E - .align 2, 0 -_080E6F48: .4byte gMain -_080E6F4C: .4byte gSharedMem + 0x1000 -_080E6F50: - bl sub_80E7E50 - bl sub_80E95A4 - ldr r0, _080E6F64 @ =sub_80E6AC4 - bl sub_80E682C -_080E6F5E: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080E6F64: .4byte sub_80E6AC4 - thumb_func_end sub_80E6D7C - - thumb_func_start sub_80E6F68 -sub_80E6F68: @ 80E6F68 - push {r4,lr} - ldr r4, _080E6F78 @ =gSharedMem + 0x1000 - ldrh r0, [r4, 0x24] - cmp r0, 0 - beq _080E6F7C - cmp r0, 0x1 - beq _080E6F9C - b _080E6FBC - .align 2, 0 -_080E6F78: .4byte gSharedMem + 0x1000 -_080E6F7C: - movs r0, 0x1 - bl sub_80E8398 - movs r0, 0xA - bl sub_80E91D4 - bl sub_80E683C - bl sub_80E9974 - bl sub_80E9E98 - ldrh r0, [r4, 0x24] - adds r0, 0x1 - strh r0, [r4, 0x24] - b _080E6FBC -_080E6F9C: - bl sub_80E9EA8 - lsls r0, 24 - cmp r0, 0 - beq _080E6FBC - movs r0, 0x1 - bl sub_80E8D8C - bl sub_80E8420 - movs r0, 0 - bl sub_80E8958 - ldr r0, _080E6FC4 @ =sub_80E6FC8 - bl sub_80E682C -_080E6FBC: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080E6FC4: .4byte sub_80E6FC8 - thumb_func_end sub_80E6F68 - - thumb_func_start sub_80E6FC8 -sub_80E6FC8: @ 80E6FC8 - push {r4,lr} - bl sub_80E77C8 - adds r1, r0, 0 - ldr r4, _080E7000 @ =gSharedMem + 0x1000 - adds r0, r4, 0 - adds r0, 0x96 - strb r1, [r0] - movs r2, 0xE0 - lsls r2, 1 - adds r0, r4, r2 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0 - beq _080E700C - movs r0, 0x5 - bl PlaySE - movs r1, 0xE2 - lsls r1, 1 - adds r0, r4, r1 - ldr r1, _080E7004 @ =sub_80E6FC8 - str r1, [r0] - ldr r0, _080E7008 @ =sub_80E7458 - bl sub_80E682C - b _080E710A - .align 2, 0 -_080E7000: .4byte gSharedMem + 0x1000 -_080E7004: .4byte sub_80E6FC8 -_080E7008: .4byte sub_80E7458 -_080E700C: - lsls r0, r1, 24 - cmp r0, 0 - beq _080E7018 - movs r0, 0x5 - bl PlaySE -_080E7018: - ldr r0, _080E7054 @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080E70E8 - ldr r2, _080E7058 @ =0x000001b7 - adds r0, r4, r2 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0 - beq _080E7090 - movs r0, 0x5 - bl PlaySE - movs r1, 0xD4 - lsls r1, 1 - adds r0, r4, r1 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0x2 - beq _080E7070 - cmp r0, 0x2 - bgt _080E705C - cmp r0, 0x1 - beq _080E7062 - b _080E710A - .align 2, 0 -_080E7054: .4byte gMain -_080E7058: .4byte 0x000001b7 -_080E705C: - cmp r0, 0x3 - beq _080E70F0 - b _080E710A -_080E7062: - ldr r0, _080E706C @ =sub_80E718C - bl sub_80E682C - b _080E710A - .align 2, 0 -_080E706C: .4byte sub_80E718C -_080E7070: - ldrb r0, [r4, 0x8] - cmp r0, 0x6 - beq _080E710A - adds r0, r4, 0 - adds r0, 0x27 - ldrb r0, [r0] - ldr r1, _080E708C @ =0x0000ffff - bl sub_80E7F00 - bl sub_80E7574 - bl sub_80E95A4 - b _080E710A - .align 2, 0 -_080E708C: .4byte 0x0000ffff -_080E7090: - adds r0, r4, 0 - adds r0, 0x26 - ldrb r0, [r0] - cmp r0, 0 - beq _080E70CA - ldr r2, _080E70DC @ =0x000001a9 - adds r0, r4, r2 - movs r2, 0 - ldrsb r2, [r0, r2] - movs r1, 0xD4 - lsls r1, 1 - adds r0, r4, r1 - movs r1, 0 - ldrsb r1, [r0, r1] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 1 - adds r2, r0 - adds r0, r4, 0 - adds r0, 0x40 - adds r2, r0 - ldrb r0, [r2] - lsls r0, 1 - ldr r2, _080E70E0 @ =0x0000446c - adds r1, r4, r2 - adds r0, r1 - ldrh r0, [r0] - cmp r0, 0 - beq _080E710A -_080E70CA: - movs r0, 0x5 - bl PlaySE - bl sub_80E7AD4 - ldr r0, _080E70E4 @ =sub_80E7218 - bl sub_80E682C - b _080E710A - .align 2, 0 -_080E70DC: .4byte 0x000001a9 -_080E70E0: .4byte 0x0000446c -_080E70E4: .4byte sub_80E7218 -_080E70E8: - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _080E70FC -_080E70F0: - ldr r0, _080E70F8 @ =sub_80E7114 - bl sub_80E682C - b _080E710A - .align 2, 0 -_080E70F8: .4byte sub_80E7114 -_080E70FC: - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _080E710A - ldr r0, _080E7110 @ =sub_80E718C - bl sub_80E682C -_080E710A: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080E7110: .4byte sub_80E718C - thumb_func_end sub_80E6FC8 - - thumb_func_start sub_80E7114 -sub_80E7114: @ 80E7114 - push {lr} - ldr r0, _080E712C @ =gSharedMem + 0x1000 - ldrh r1, [r0, 0x24] - adds r2, r0, 0 - cmp r1, 0x4 - bhi _080E7182 - lsls r0, r1, 2 - ldr r1, _080E7130 @ =_080E7134 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080E712C: .4byte gSharedMem + 0x1000 -_080E7130: .4byte _080E7134 - .align 2, 0 -_080E7134: - .4byte _080E7148 - .4byte _080E715C - .4byte _080E715C - .4byte _080E7164 - .4byte _080E717C -_080E7148: - bl sub_80E8504 - bl sub_80E9E98 - bl sub_80E88F0 - movs r0, 0 - bl sub_80E8D8C - b _080E716E -_080E715C: - ldrh r0, [r2, 0x24] - adds r0, 0x1 - strh r0, [r2, 0x24] - b _080E7182 -_080E7164: - bl sub_80E9F50 - lsls r0, 24 - cmp r0, 0 - beq _080E7182 -_080E716E: - ldr r1, _080E7178 @ =gSharedMem + 0x1000 - ldrh r0, [r1, 0x24] - adds r0, 0x1 - strh r0, [r1, 0x24] - b _080E7182 - .align 2, 0 -_080E7178: .4byte gSharedMem + 0x1000 -_080E717C: - ldr r0, _080E7188 @ =sub_80E6AC4 - bl sub_80E682C -_080E7182: - pop {r0} - bx r0 - .align 2, 0 -_080E7188: .4byte sub_80E6AC4 - thumb_func_end sub_80E7114 - - thumb_func_start sub_80E718C -sub_80E718C: @ 80E718C - push {r4,lr} - ldr r0, _080E71A4 @ =gSharedMem + 0x1000 - ldrh r1, [r0, 0x24] - adds r4, r0, 0 - cmp r1, 0x1 - beq _080E71C6 - cmp r1, 0x1 - bgt _080E71A8 - cmp r1, 0 - beq _080E71AE - b _080E71EC - .align 2, 0 -_080E71A4: .4byte gSharedMem + 0x1000 -_080E71A8: - cmp r1, 0x8 - beq _080E71F4 - b _080E71EC -_080E71AE: - bl sub_80E8504 - bl sub_80E9E98 - bl sub_80E88F0 - ldrh r0, [r4, 0x24] - adds r0, 0x1 - strh r0, [r4, 0x24] - bl sub_80E8D54 - b _080E720E -_080E71C6: - bl sub_80E9FD4 - lsls r0, 24 - cmp r0, 0 - beq _080E720E - movs r2, 0 - adds r1, r4, 0 - adds r1, 0x26 - ldrb r0, [r1] - cmp r0, 0 - bne _080E71DE - movs r2, 0x1 -_080E71DE: - strb r2, [r1] - bl sub_80E683C - bl sub_80E9974 - bl sub_80E9E98 -_080E71EC: - ldrh r0, [r4, 0x24] - adds r0, 0x1 - strh r0, [r4, 0x24] - b _080E720E -_080E71F4: - bl sub_80EA014 - lsls r0, 24 - cmp r0, 0 - beq _080E720E - bl sub_80E8420 - movs r0, 0 - bl sub_80E8958 - ldr r0, _080E7214 @ =sub_80E6FC8 - bl sub_80E682C -_080E720E: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080E7214: .4byte sub_80E6FC8 - thumb_func_end sub_80E718C - - thumb_func_start sub_80E7218 -sub_80E7218: @ 80E7218 - push {r4,lr} - ldr r4, _080E7230 @ =gSharedMem + 0x1000 - ldrh r0, [r4, 0x24] - adds r1, r4, 0 - cmp r0, 0x9 - beq _080E7260 - cmp r0, 0x9 - bgt _080E7234 - cmp r0, 0x8 - beq _080E7244 - b _080E723C - .align 2, 0 -_080E7230: .4byte gSharedMem + 0x1000 -_080E7234: - cmp r0, 0xA - beq _080E7276 - cmp r0, 0xB - beq _080E7288 -_080E723C: - ldrh r0, [r1, 0x24] - adds r0, 0x1 - strh r0, [r1, 0x24] - b _080E7288 -_080E7244: - movs r0, 0 - bl sub_80E8D8C - bl sub_80E8504 - bl sub_80E9AD4 - bl sub_80E68E8 - bl sub_80E88F0 - bl sub_80E9E98 - b _080E726E -_080E7260: - bl sub_80EA050 - lsls r0, 24 - cmp r0, 0 - beq _080E7288 - bl sub_80E9C94 -_080E726E: - ldrh r0, [r4, 0x24] - adds r0, 0x1 - strh r0, [r4, 0x24] - b _080E7288 -_080E7276: - movs r0, 0x1 - bl sub_80E87CC - movs r0, 0x1 - bl sub_80E8958 - ldr r0, _080E7290 @ =sub_80E7294 - bl sub_80E682C -_080E7288: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080E7290: .4byte sub_80E7294 - thumb_func_end sub_80E7218 - - thumb_func_start sub_80E7294 -sub_80E7294: @ 80E7294 - push {r4,lr} - bl sub_80E7B40 - adds r1, r0, 0 - ldr r4, _080E72CC @ =gSharedMem + 0x1000 - ldr r2, _080E72D0 @ =0x000001b9 - adds r0, r4, r2 - strb r1, [r0] - adds r2, 0x7 - adds r0, r4, r2 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0 - beq _080E72DC - movs r0, 0x5 - bl PlaySE - movs r1, 0xE2 - lsls r1, 1 - adds r0, r4, r1 - ldr r1, _080E72D4 @ =sub_80E7294 - str r1, [r0] - ldr r0, _080E72D8 @ =sub_80E7458 - bl sub_80E682C - b _080E731A - .align 2, 0 -_080E72CC: .4byte gSharedMem + 0x1000 -_080E72D0: .4byte 0x000001b9 -_080E72D4: .4byte sub_80E7294 -_080E72D8: .4byte sub_80E7458 -_080E72DC: - lsls r0, r1, 24 - cmp r0, 0 - beq _080E72E8 - movs r0, 0x5 - bl PlaySE -_080E72E8: - ldr r0, _080E7304 @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080E730C - movs r0, 0x5 - bl PlaySE - ldr r0, _080E7308 @ =sub_80E7324 - bl sub_80E682C - b _080E731A - .align 2, 0 -_080E7304: .4byte gMain -_080E7308: .4byte sub_80E7324 -_080E730C: - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _080E731A - ldr r0, _080E7320 @ =sub_80E73D0 - bl sub_80E682C -_080E731A: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080E7320: .4byte sub_80E73D0 - thumb_func_end sub_80E7294 - - thumb_func_start sub_80E7324 -sub_80E7324: @ 80E7324 - push {lr} - ldr r0, _080E733C @ =gSharedMem + 0x1000 - ldrh r1, [r0, 0x24] - adds r2, r0, 0 - cmp r1, 0x4 - bhi _080E73C6 - lsls r0, r1, 2 - ldr r1, _080E7340 @ =_080E7344 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080E733C: .4byte gSharedMem + 0x1000 -_080E7340: .4byte _080E7344 - .align 2, 0 -_080E7344: - .4byte _080E7358 - .4byte _080E737C - .4byte _080E7384 - .4byte _080E738A - .4byte _080E73A4 -_080E7358: - bl sub_80E7DD0 - lsls r0, 24 - cmp r0, 0 - bne _080E7370 - ldr r0, _080E736C @ =sub_80E7294 - bl sub_80E682C - b _080E73C6 - .align 2, 0 -_080E736C: .4byte sub_80E7294 -_080E7370: - bl sub_80E88F0 - movs r0, 0 - bl sub_80E87CC - b _080E7394 -_080E737C: - ldrh r0, [r2, 0x24] - adds r0, 0x1 - strh r0, [r2, 0x24] - b _080E73C6 -_080E7384: - bl sub_80E9E98 - b _080E7394 -_080E738A: - bl sub_80EA184 - lsls r0, 24 - cmp r0, 0 - beq _080E73C6 -_080E7394: - ldr r1, _080E73A0 @ =gSharedMem + 0x1000 - ldrh r0, [r1, 0x24] - adds r0, 0x1 - strh r0, [r1, 0x24] - b _080E73C6 - .align 2, 0 -_080E73A0: .4byte gSharedMem + 0x1000 -_080E73A4: - ldrb r0, [r2, 0x8] - cmp r0, 0x6 - bne _080E73C0 - bl sub_80E7FA8 - lsls r0, 24 - cmp r0, 0 - beq _080E73C0 - ldr r0, _080E73BC @ =sub_80E6D7C - bl sub_80E682C - b _080E73C6 - .align 2, 0 -_080E73BC: .4byte sub_80E6D7C -_080E73C0: - ldr r0, _080E73CC @ =sub_80E6AC4 - bl sub_80E682C -_080E73C6: - pop {r0} - bx r0 - .align 2, 0 -_080E73CC: .4byte sub_80E6AC4 - thumb_func_end sub_80E7324 - - thumb_func_start sub_80E73D0 -sub_80E73D0: @ 80E73D0 - push {lr} - ldr r0, _080E73E4 @ =gSharedMem + 0x1000 - ldrh r0, [r0, 0x24] - cmp r0, 0x4 - bhi _080E744E - lsls r0, 2 - ldr r1, _080E73E8 @ =_080E73EC - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080E73E4: .4byte gSharedMem + 0x1000 -_080E73E8: .4byte _080E73EC - .align 2, 0 -_080E73EC: - .4byte _080E7400 - .4byte _080E740C - .4byte _080E7416 - .4byte _080E742C - .4byte _080E7444 -_080E7400: - movs r0, 0 - bl sub_80E87CC - bl sub_80E88F0 - b _080E7436 -_080E740C: - bl sub_80E9AD4 - bl sub_80E9E98 - b _080E7436 -_080E7416: - bl sub_80EA0E4 - lsls r0, 24 - cmp r0, 0 - beq _080E744E - movs r0, 0x1 - bl sub_80E8D8C - bl sub_80E9A14 - b _080E7436 -_080E742C: - bl sub_80E8420 - movs r0, 0 - bl sub_80E8958 -_080E7436: - ldr r1, _080E7440 @ =gSharedMem + 0x1000 - ldrh r0, [r1, 0x24] - adds r0, 0x1 - strh r0, [r1, 0x24] - b _080E744E - .align 2, 0 -_080E7440: .4byte gSharedMem + 0x1000 -_080E7444: - bl sub_80E9974 - ldr r0, _080E7454 @ =sub_80E6FC8 - bl sub_80E682C -_080E744E: - pop {r0} - bx r0 - .align 2, 0 -_080E7454: .4byte sub_80E6FC8 - thumb_func_end sub_80E73D0 - - thumb_func_start sub_80E7458 -sub_80E7458: @ 80E7458 - push {r4,r5,lr} - ldr r4, _080E7468 @ =gSharedMem + 0x1000 - ldrh r5, [r4, 0x24] - cmp r5, 0 - beq _080E746C - cmp r5, 0x1 - beq _080E74A4 - b _080E7518 - .align 2, 0 -_080E7468: .4byte gSharedMem + 0x1000 -_080E746C: - movs r1, 0xE2 - lsls r1, 1 - adds r0, r4, r1 - ldr r1, [r0] - ldr r0, _080E7480 @ =sub_80E6FC8 - cmp r1, r0 - bne _080E7484 - bl sub_80E9D7C - b _080E7488 - .align 2, 0 -_080E7480: .4byte sub_80E6FC8 -_080E7484: - bl sub_80E9D00 -_080E7488: - ldr r4, _080E74A0 @ =gSharedMem + 0x1000 - movs r2, 0xDF - lsls r2, 1 - adds r0, r4, r2 - ldrb r0, [r0] - bl sub_80E9E08 - ldrh r0, [r4, 0x24] - adds r0, 0x1 - strh r0, [r4, 0x24] - b _080E7518 - .align 2, 0 -_080E74A0: .4byte gSharedMem + 0x1000 -_080E74A4: - bl sub_80E9E54 - lsls r0, 24 - cmp r0, 0 - beq _080E7518 - movs r1, 0xE2 - lsls r1, 1 - adds r0, r4, r1 - ldr r1, [r0] - ldr r0, _080E74DC @ =sub_80E6FC8 - cmp r1, r0 - bne _080E74E4 - bl sub_80E9D7C - ldr r2, _080E74E0 @ =0x000001b5 - adds r1, r4, r2 - adds r2, 0xB - adds r0, r4, r2 - ldrb r0, [r0] - ldrb r2, [r1] - adds r0, r2 - strb r0, [r1] - bl sub_80E7A98 - adds r0, r4, 0 - adds r0, 0x96 - b _080E74FE - .align 2, 0 -_080E74DC: .4byte sub_80E6FC8 -_080E74E0: .4byte 0x000001b5 -_080E74E4: - ldr r0, _080E7520 @ =0x00009d55 - adds r1, r4, r0 - movs r2, 0xE0 - lsls r2, 1 - adds r0, r4, r2 - ldrb r0, [r0] - ldrb r2, [r1] - adds r0, r2 - strb r0, [r1] - bl sub_80E7D30 - ldr r1, _080E7524 @ =0x000001b9 - adds r0, r4, r1 -_080E74FE: - strb r5, [r0] - ldr r1, _080E7528 @ =gSharedMem + 0x1000 - movs r0, 0xDF - lsls r0, 1 - adds r2, r1, r0 - movs r0, 0x2 - strb r0, [r2] - movs r2, 0xE2 - lsls r2, 1 - adds r0, r1, r2 - ldr r0, [r0] - bl sub_80E682C -_080E7518: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080E7520: .4byte 0x00009d55 -_080E7524: .4byte 0x000001b9 -_080E7528: .4byte gSharedMem + 0x1000 - thumb_func_end sub_80E7458 - - thumb_func_start sub_80E752C -sub_80E752C: @ 80E752C - push {r4,lr} - sub sp, 0x4 - ldr r4, _080E7540 @ =gSharedMem + 0x1000 - ldrh r1, [r4, 0x24] - cmp r1, 0 - beq _080E7544 - cmp r1, 0x1 - beq _080E755C - b _080E756C - .align 2, 0 -_080E7540: .4byte gSharedMem + 0x1000 -_080E7544: - movs r0, 0x1 - negs r0, r0 - str r1, [sp] - movs r1, 0 - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - ldrh r0, [r4, 0x24] - adds r0, 0x1 - strh r0, [r4, 0x24] - b _080E756C -_080E755C: - bl UpdatePaletteFade - lsls r0, 24 - cmp r0, 0 - bne _080E756C - ldr r0, [r4] - bl SetMainCallback2 -_080E756C: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80E752C - - thumb_func_start sub_80E7574 -sub_80E7574: @ 80E7574 - push {r4,r5,lr} - ldr r4, _080E75B8 @ =gSharedMem + 0x1000 - ldrb r5, [r4, 0x8] - cmp r5, 0x1 - bne _080E75BC - adds r0, r4, 0 - adds r0, 0x86 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - adds r1, r4, 0 - adds r1, 0x7E - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0x2 - bne _080E75BC - adds r0, r4, 0 - adds r0, 0x27 - ldrb r0, [r0] - lsls r0, 1 - subs r1, 0x72 - adds r0, r1 - ldrh r0, [r0] - bl sub_80EB2D4 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x7 - beq _080E75BC - adds r0, r4, 0 - adds r0, 0x7D - strb r5, [r0] - adds r1, r4, 0 - b _080E75C6 - .align 2, 0 -_080E75B8: .4byte gSharedMem + 0x1000 -_080E75BC: - ldr r1, _080E75D4 @ =gSharedMem + 0x1000 - adds r2, r1, 0 - adds r2, 0x7D - movs r0, 0 - strb r0, [r2] -_080E75C6: - adds r1, 0x7D - movs r0, 0 - strb r0, [r1] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080E75D4: .4byte gSharedMem + 0x1000 - thumb_func_end sub_80E7574 - - thumb_func_start sub_80E75D8 -sub_80E75D8: @ 80E75D8 - push {r4-r6,lr} - movs r4, 0 - ldr r2, _080E75FC @ =gMain - ldrh r1, [r2, 0x2E] - movs r0, 0x8 - ands r0, r1 - cmp r0, 0 - beq _080E7604 - ldr r1, _080E7600 @ =gSharedMem + 0x1000 - adds r0, r1, 0 - adds r0, 0x84 - ldrb r0, [r0] - adds r2, r1, 0 - adds r2, 0x86 - strb r0, [r2] - adds r1, 0x85 - movs r0, 0x2 - b _080E768E - .align 2, 0 -_080E75FC: .4byte gMain -_080E7600: .4byte gSharedMem + 0x1000 -_080E7604: - ldrh r1, [r2, 0x30] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _080E7630 - ldr r2, _080E762C @ =gSharedMem + 0x1000 - adds r1, r2, 0 - adds r1, 0x86 - ldrb r0, [r1] - subs r0, 0x1 - strb r0, [r1] - lsls r0, 24 - cmp r0, 0 - bge _080E765C - adds r0, r2, 0 - adds r0, 0x84 - ldrb r0, [r0] - strb r0, [r1] - b _080E765C - .align 2, 0 -_080E762C: .4byte gSharedMem + 0x1000 -_080E7630: - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _080E7658 - ldr r0, _080E7684 @ =gSharedMem + 0x1000 - adds r3, r0, 0 - adds r3, 0x86 - ldrb r1, [r3] - adds r1, 0x1 - strb r1, [r3] - adds r0, 0x84 - lsls r1, 24 - asrs r1, 24 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r1, r0 - ble _080E7656 - strb r4, [r3] -_080E7656: - movs r4, 0x1 -_080E7658: - cmp r4, 0 - beq _080E76EA -_080E765C: - ldr r2, _080E7684 @ =gSharedMem + 0x1000 - ldrb r3, [r2, 0x9] - cmp r3, 0x2 - bne _080E7692 - adds r1, r2, 0 - adds r1, 0x86 - adds r0, r2, 0 - adds r0, 0x84 - ldrb r1, [r1] - lsls r1, 24 - asrs r1, 24 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r1, r0 - bne _080E7688 - adds r0, r2, 0 - adds r0, 0x85 - strb r3, [r0] - b _080E77BC - .align 2, 0 -_080E7684: .4byte gSharedMem + 0x1000 -_080E7688: - adds r1, r2, 0 - adds r1, 0x85 - movs r0, 0 -_080E768E: - strb r0, [r1] - b _080E77BC -_080E7692: - movs r0, 0x85 - adds r0, r2 - mov r12, r0 - adds r4, r2, 0 - adds r4, 0x83 - movs r1, 0 - ldrsb r1, [r0, r1] - ldrb r3, [r4] - movs r0, 0 - ldrsb r0, [r4, r0] - cmp r1, r0 - blt _080E76B0 - subs r0, r3, 0x1 - mov r1, r12 - strb r0, [r1] -_080E76B0: - adds r1, r2, 0 - adds r1, 0x86 - adds r0, r2, 0 - adds r0, 0x84 - ldrb r3, [r1] - ldrb r1, [r1] - lsls r1, 24 - asrs r1, 24 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r1, r0 - beq _080E77BC - ldrb r0, [r4] - adds r4, r0, 0 - muls r4, r3 - adds r0, r4, 0 - mov r5, r12 - ldrb r5, [r5] - adds r0, r5 - lsls r0, 24 - lsrs r0, 24 - ldrb r1, [r2, 0xA] - cmp r0, r1 - bcc _080E77BC - subs r0, r1 - mov r6, r12 - strb r0, [r6] - b _080E77BC -_080E76EA: - ldrh r2, [r2, 0x30] - movs r0, 0x20 - ands r0, r2 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0 - beq _080E7744 - ldr r2, _080E7728 @ =gSharedMem + 0x1000 - adds r3, r2, 0 - adds r3, 0x85 - ldrb r0, [r3] - subs r0, 0x1 - strb r0, [r3] - lsls r0, 24 - cmp r0, 0 - bge _080E77BC - adds r1, r2, 0 - adds r1, 0x86 - adds r0, r2, 0 - adds r0, 0x84 - ldrb r4, [r1] - ldrb r1, [r1] - lsls r1, 24 - asrs r1, 24 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r1, r0 - bne _080E772C - movs r0, 0x2 - b _080E77BA - .align 2, 0 -_080E7728: .4byte gSharedMem + 0x1000 -_080E772C: - adds r0, r2, 0 - adds r0, 0x83 - ldrb r0, [r0] - subs r1, r0, 0x1 - strb r1, [r3] - adds r5, r4, 0 - muls r5, r0 - adds r0, r5, 0 - adds r1, r0 - lsls r1, 24 - lsrs r0, r1, 24 - b _080E77B2 -_080E7744: - movs r0, 0x10 - ands r0, r2 - cmp r0, 0 - beq _080E77C0 - ldr r2, _080E777C @ =gSharedMem + 0x1000 - adds r5, r2, 0 - adds r5, 0x86 - adds r0, r2, 0 - adds r0, 0x84 - movs r1, 0 - ldrsb r1, [r5, r1] - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r1, r0 - bne _080E7780 - adds r1, r2, 0 - adds r1, 0x85 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0x2 - ble _080E77BC - strb r4, [r1] - b _080E77BC - .align 2, 0 -_080E777C: .4byte gSharedMem + 0x1000 -_080E7780: - adds r3, r2, 0 - adds r3, 0x85 - ldrb r0, [r3] - adds r0, 0x1 - strb r0, [r3] - movs r6, 0x83 - adds r6, r2 - mov r12, r6 - lsls r0, 24 - asrs r0, 24 - movs r1, 0 - ldrsb r1, [r6, r1] - cmp r0, r1 - blt _080E779E - strb r4, [r3] -_080E779E: - ldrb r1, [r5] - mov r4, r12 - ldrb r0, [r4] - adds r5, r0, 0 - muls r5, r1 - adds r0, r5, 0 - ldrb r6, [r3] - adds r0, r6 - lsls r0, 24 - lsrs r0, 24 -_080E77B2: - ldrb r1, [r2, 0xA] - cmp r0, r1 - bcc _080E77BC - subs r0, r1 -_080E77BA: - strb r0, [r3] -_080E77BC: - movs r0, 0x1 - b _080E77C2 -_080E77C0: - movs r0, 0 -_080E77C2: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_80E75D8 - - thumb_func_start sub_80E77C8 -sub_80E77C8: @ 80E77C8 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - movs r7, 0 - ldr r1, _080E780C @ =gSharedMem + 0x1000 - ldr r2, _080E7810 @ =0x000001b7 - adds r0, r1, r2 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - adds r3, r1, 0 - cmp r0, 0 - beq _080E783E - ldr r1, _080E7814 @ =gMain - ldrh r2, [r1, 0x30] - movs r0, 0x40 - ands r0, r2 - adds r6, r1, 0 - cmp r0, 0 - beq _080E7818 - movs r4, 0xD4 - lsls r4, 1 - adds r1, r3, r4 - ldrb r0, [r1] - subs r0, 0x1 - strb r0, [r1] - lsls r0, 24 - cmp r0, 0 - ble _080E7806 - b _080E7948 -_080E7806: - movs r0, 0x3 - strb r0, [r1] - b _080E7948 - .align 2, 0 -_080E780C: .4byte gSharedMem + 0x1000 -_080E7810: .4byte 0x000001b7 -_080E7814: .4byte gMain -_080E7818: - movs r0, 0x80 - ands r0, r2 - cmp r0, 0 - bne _080E7822 - b _080E7950 -_080E7822: - movs r5, 0xD4 - lsls r5, 1 - adds r1, r3, r5 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0x3 - bgt _080E7838 - b _080E7948 -_080E7838: - movs r0, 0x1 - strb r0, [r1] - b _080E7948 -_080E783E: - adds r0, r3, 0 - adds r0, 0x26 - ldrb r0, [r0] - cmp r0, 0x1 - bne _080E789A - movs r4, 0 - ldr r1, _080E7870 @ =gMain - ldrh r2, [r1, 0x30] - movs r0, 0x40 - ands r0, r2 - adds r6, r1, 0 - cmp r0, 0 - beq _080E7874 - movs r6, 0xD4 - lsls r6, 1 - adds r1, r3, r6 - ldrb r0, [r1] - subs r0, 0x1 - strb r0, [r1] - lsls r0, 24 - cmp r0, 0 - bge _080E7944 - movs r0, 0x3 - strb r0, [r1] - b _080E7944 - .align 2, 0 -_080E7870: .4byte gMain -_080E7874: - movs r0, 0x80 - ands r0, r2 - cmp r0, 0 - beq _080E7894 - movs r0, 0xD4 - lsls r0, 1 - adds r1, r3, r0 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0x3 - ble _080E7892 - strb r7, [r1] -_080E7892: - movs r4, 0x1 -_080E7894: - cmp r4, 0 - beq _080E7950 - b _080E7944 -_080E789A: - movs r4, 0 - movs r1, 0xE0 - lsls r1, 1 - adds r5, r3, r1 - strb r7, [r5] - ldr r1, _080E78E0 @ =gMain - ldrh r2, [r1, 0x30] - movs r0, 0x40 - ands r0, r2 - adds r6, r1, 0 - cmp r0, 0 - beq _080E78E8 - movs r2, 0xD4 - lsls r2, 1 - adds r1, r3, r2 - ldrb r2, [r1] - movs r0, 0 - ldrsb r0, [r1, r0] - cmp r0, 0 - bne _080E78C4 - b _080E7A88 -_080E78C4: - subs r0, r2, 0x1 - strb r0, [r1] - ldr r4, _080E78E4 @ =0x000001b5 - adds r1, r3, r4 - lsls r0, 24 - asrs r0, 24 - ldrb r1, [r1] - lsls r1, 24 - asrs r1, 24 - cmp r0, r1 - bge _080E7932 - movs r0, 0xFF - strb r0, [r5] - b _080E7932 - .align 2, 0 -_080E78E0: .4byte gMain -_080E78E4: .4byte 0x000001b5 -_080E78E8: - movs r0, 0x80 - ands r0, r2 - cmp r0, 0 - beq _080E792E - movs r0, 0xD4 - lsls r0, 1 - adds r2, r3, r0 - movs r1, 0 - ldrsb r1, [r2, r1] - movs r4, 0xDB - lsls r4, 1 - adds r0, r3, r4 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - subs r0, 0x1 - cmp r1, r0 - blt _080E790E - b _080E7A88 -_080E790E: - ldrb r0, [r2] - adds r0, 0x1 - strb r0, [r2] - movs r1, 0 - ldrsb r1, [r2, r1] - ldr r2, _080E794C @ =0x000001b5 - adds r0, r3, r2 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - adds r0, 0x3 - cmp r1, r0 - ble _080E792C - movs r0, 0x1 - strb r0, [r5] -_080E792C: - movs r4, 0x1 -_080E792E: - cmp r4, 0 - beq _080E7950 -_080E7932: - movs r4, 0xE0 - lsls r4, 1 - adds r0, r3, r4 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0 - beq _080E7944 - b _080E7A88 -_080E7944: - bl sub_80E7A98 -_080E7948: - movs r0, 0x1 - b _080E7A8A - .align 2, 0 -_080E794C: .4byte 0x000001b5 -_080E7950: - ldrh r1, [r6, 0x30] - movs r0, 0x20 - ands r0, r1 - lsls r0, 16 - lsrs r6, r0, 16 - cmp r6, 0 - beq _080E7992 - ldr r5, _080E7974 @ =0x000001a9 - adds r2, r3, r5 - ldrb r1, [r2] - movs r0, 0 - ldrsb r0, [r2, r0] - cmp r0, 0 - beq _080E7978 - subs r0, r1, 0x1 - strb r0, [r2] - b _080E79E6 - .align 2, 0 -_080E7974: .4byte 0x000001a9 -_080E7978: - movs r6, 0xD4 - lsls r6, 1 - adds r0, r3, r6 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - movs r4, 0xD5 - lsls r4, 1 - adds r1, r3, r4 - adds r0, r1 - ldrb r0, [r0] - strb r0, [r2] - b _080E79E6 -_080E7992: - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _080E79E2 - ldr r5, _080E79D4 @ =0x000001b7 - adds r0, r3, r5 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0 - bne _080E79CC - ldr r0, _080E79D8 @ =0x000001a9 - adds r4, r3, r0 - movs r1, 0xD4 - lsls r1, 1 - adds r0, r3, r1 - movs r1, 0 - ldrsb r1, [r0, r1] - movs r2, 0xD5 - lsls r2, 1 - adds r0, r3, r2 - adds r1, r0 - ldrb r5, [r4] - movs r2, 0 - ldrsb r2, [r4, r2] - movs r0, 0 - ldrsb r0, [r1, r0] - cmp r2, r0 - bne _080E79DC -_080E79CC: - ldr r4, _080E79D8 @ =0x000001a9 - adds r0, r3, r4 - strb r6, [r0] - b _080E79E0 - .align 2, 0 -_080E79D4: .4byte 0x000001b7 -_080E79D8: .4byte 0x000001a9 -_080E79DC: - adds r0, r5, 0x1 - strb r0, [r4] -_080E79E0: - movs r7, 0x1 -_080E79E2: - cmp r7, 0 - beq _080E7A88 -_080E79E6: - adds r2, r3, 0 - ldr r5, _080E7A48 @ =0x000001b7 - adds r7, r2, r5 - ldrb r6, [r7] - mov r9, r6 - movs r1, 0 - ldr r0, _080E7A4C @ =0x000001a9 - adds r0, r2 - mov r12, r0 - subs r5, 0xF - adds r4, r2, r5 - movs r0, 0 - ldrsb r0, [r4, r0] - movs r6, 0xD5 - lsls r6, 1 - adds r6, r2 - mov r8, r6 - add r0, r8 - mov r6, r12 - movs r5, 0 - ldrsb r5, [r6, r5] - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r5, r0 - bne _080E7A1C - movs r1, 0x1 -_080E7A1C: - strb r1, [r7] - cmp r1, 0 - beq _080E7A58 - ldr r0, _080E7A50 @ =0x000001b5 - adds r1, r2, r0 - ldrb r0, [r4] - ldrb r1, [r1] - subs r0, r1 - strb r0, [r4] - lsls r0, 24 - cmp r0, 0 - beq _080E7A36 - b _080E7948 -_080E7A36: - movs r0, 0x1 - strb r0, [r4] - ldr r1, _080E7A54 @ =0x000001ab - adds r0, r2, r1 - ldrb r0, [r0] - mov r2, r12 - strb r0, [r2] - b _080E7948 - .align 2, 0 -_080E7A48: .4byte 0x000001b7 -_080E7A4C: .4byte 0x000001a9 -_080E7A50: .4byte 0x000001b5 -_080E7A54: .4byte 0x000001ab -_080E7A58: - mov r6, r9 - cmp r6, 0 - bne _080E7A60 - b _080E7948 -_080E7A60: - ldr r1, _080E7A84 @ =0x000001b5 - adds r0, r3, r1 - ldrb r0, [r0] - ldrb r2, [r4] - adds r0, r2 - strb r0, [r4] - cmp r5, 0 - bne _080E7A72 - b _080E7948 -_080E7A72: - movs r0, 0 - ldrsb r0, [r4, r0] - add r0, r8 - ldrb r0, [r0] - subs r0, 0x1 - mov r4, r12 - strb r0, [r4] - b _080E7948 - .align 2, 0 -_080E7A84: .4byte 0x000001b5 -_080E7A88: - movs r0, 0 -_080E7A8A: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_80E77C8 - - thumb_func_start sub_80E7A98 -sub_80E7A98: @ 80E7A98 - push {lr} - ldr r1, _080E7ACC @ =gSharedMem + 0x1000 - ldr r0, _080E7AD0 @ =0x000001a9 - adds r3, r1, r0 - movs r2, 0xD4 - lsls r2, 1 - adds r0, r1, r2 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - adds r2, 0x2 - adds r1, r2 - adds r0, r1 - movs r1, 0 - ldrsb r1, [r3, r1] - ldrb r2, [r0] - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r1, r0 - blt _080E7AC6 - subs r0, r2, 0x1 - strb r0, [r3] -_080E7AC6: - pop {r0} - bx r0 - .align 2, 0 -_080E7ACC: .4byte gSharedMem + 0x1000 -_080E7AD0: .4byte 0x000001a9 - thumb_func_end sub_80E7A98 - - thumb_func_start sub_80E7AD4 -sub_80E7AD4: @ 80E7AD4 - push {lr} - ldr r3, _080E7B08 @ =gSharedMem + 0x1000 - adds r0, r3, 0 - adds r0, 0x26 - ldrb r0, [r0] - cmp r0, 0 - bne _080E7B10 - ldr r1, _080E7B0C @ =0x000001a9 - adds r0, r3, r1 - movs r1, 0 - ldrsb r1, [r0, r1] - movs r2, 0xD4 - lsls r2, 1 - adds r0, r3, r2 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - lsls r0, 1 - adds r1, r0 - adds r0, r3, 0 - adds r0, 0x2A - adds r1, r0 - ldrb r1, [r1] - adds r2, 0x10 - b _080E7B34 - .align 2, 0 -_080E7B08: .4byte gSharedMem + 0x1000 -_080E7B0C: .4byte 0x000001a9 -_080E7B10: - ldr r1, _080E7B3C @ =0x000001a9 - adds r0, r3, r1 - movs r2, 0 - ldrsb r2, [r0, r2] - subs r1, 0x1 - adds r0, r3, r1 - movs r1, 0 - ldrsb r1, [r0, r1] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 1 - adds r2, r0 - adds r0, r3, 0 - adds r0, 0x40 - adds r2, r0 - ldrb r1, [r2] - movs r2, 0xDC - lsls r2, 1 -_080E7B34: - adds r0, r3, r2 - strb r1, [r0] - pop {r0} - bx r0 - .align 2, 0 -_080E7B3C: .4byte 0x000001a9 - thumb_func_end sub_80E7AD4 - - thumb_func_start sub_80E7B40 -sub_80E7B40: @ 80E7B40 - push {r4-r7,lr} - movs r5, 0 - ldr r2, _080E7B8C @ =gSharedMem + 0x1000 - movs r0, 0xE0 - lsls r0, 1 - adds r6, r2, r0 - strb r5, [r6] - ldr r1, _080E7B90 @ =gMain - ldrh r4, [r1, 0x30] - movs r0, 0x40 - ands r0, r4 - adds r3, r2, 0 - adds r7, r1, 0 - cmp r0, 0 - beq _080E7B9C - ldr r2, _080E7B94 @ =0x00009cd0 - adds r1, r3, r2 - ldrb r2, [r1] - movs r0, 0 - ldrsb r0, [r1, r0] - cmp r0, 0 - bne _080E7B6E - b _080E7D1A -_080E7B6E: - subs r0, r2, 0x1 - strb r0, [r1] - ldr r4, _080E7B98 @ =0x00009d55 - adds r1, r3, r4 - lsls r0, 24 - asrs r0, 24 - ldrb r1, [r1] - lsls r1, 24 - asrs r1, 24 - cmp r0, r1 - bge _080E7BF2 - movs r0, 0xFF - strb r0, [r6] - b _080E7D1A - .align 2, 0 -_080E7B8C: .4byte gSharedMem + 0x1000 -_080E7B90: .4byte gMain -_080E7B94: .4byte 0x00009cd0 -_080E7B98: .4byte 0x00009d55 -_080E7B9C: - movs r0, 0x80 - ands r0, r4 - cmp r0, 0 - beq _080E7BEE - ldr r0, _080E7BE0 @ =0x00009cd0 - adds r2, r3, r0 - movs r1, 0 - ldrsb r1, [r2, r1] - ldr r4, _080E7BE4 @ =0x00009d54 - adds r0, r3, r4 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - subs r0, 0x1 - cmp r1, r0 - blt _080E7BBE - b _080E7D1A -_080E7BBE: - ldrb r0, [r2] - adds r0, 0x1 - strb r0, [r2] - movs r1, 0 - ldrsb r1, [r2, r1] - ldr r2, _080E7BE8 @ =0x00009d55 - adds r0, r3, r2 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - adds r0, 0x4 - cmp r1, r0 - blt _080E7BEC - movs r0, 0x1 - strb r0, [r6] - b _080E7D1A - .align 2, 0 -_080E7BE0: .4byte 0x00009cd0 -_080E7BE4: .4byte 0x00009d54 -_080E7BE8: .4byte 0x00009d55 -_080E7BEC: - movs r5, 0x1 -_080E7BEE: - cmp r5, 0 - beq _080E7BFA -_080E7BF2: - bl sub_80E7D30 -_080E7BF6: - movs r0, 0x1 - b _080E7D1C -_080E7BFA: - ldrh r1, [r7, 0x30] - movs r0, 0x20 - ands r0, r1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0 - beq _080E7C38 - ldr r4, _080E7C30 @ =0x00009cd1 - adds r2, r3, r4 - ldrb r0, [r2] - subs r0, 0x1 - strb r0, [r2] - lsls r0, 24 - cmp r0, 0 - bge _080E7BF6 - ldr r6, _080E7C34 @ =0x00009cd0 - adds r0, r3, r6 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - adds r4, 0x1 - adds r1, r3, r4 - adds r0, r1 - ldrb r0, [r0] - subs r0, 0x1 - strb r0, [r2] - b _080E7BF6 - .align 2, 0 -_080E7C30: .4byte 0x00009cd1 -_080E7C34: .4byte 0x00009cd0 -_080E7C38: - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _080E7C70 - ldr r6, _080E7C68 @ =0x00009cd1 - adds r4, r3, r6 - ldrb r0, [r4] - adds r0, 0x1 - strb r0, [r4] - ldr r2, _080E7C6C @ =0x00009cd0 - adds r1, r3, r2 - movs r2, 0 - ldrsb r2, [r1, r2] - adds r6, 0x1 - adds r1, r3, r6 - adds r2, r1 - lsls r0, 24 - asrs r0, 24 - movs r1, 0 - ldrsb r1, [r2, r1] - cmp r0, r1 - blt _080E7BF6 - strb r5, [r4] - b _080E7BF6 - .align 2, 0 -_080E7C68: .4byte 0x00009cd1 -_080E7C6C: .4byte 0x00009cd0 -_080E7C70: - ldrh r1, [r7, 0x2E] - movs r0, 0x8 - ands r0, r1 - cmp r0, 0 - beq _080E7CC4 - ldr r1, _080E7CBC @ =0x00009d55 - adds r0, r3, r1 - ldrb r1, [r0] - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0 - beq _080E7CA2 - negs r0, r1 - movs r4, 0xE0 - lsls r4, 1 - adds r2, r3, r4 - strb r0, [r2] - lsls r0, 24 - asrs r0, 24 - movs r1, 0x4 - negs r1, r1 - cmp r0, r1 - bge _080E7CA2 - strb r1, [r2] -_080E7CA2: - ldr r6, _080E7CC0 @ =0x00009cd0 - adds r1, r3, r6 - movs r2, 0xE0 - lsls r2, 1 - adds r0, r3, r2 - ldrb r0, [r0] - ldrb r4, [r1] - adds r0, r4 - strb r0, [r1] - movs r6, 0xDF - lsls r6, 1 - adds r1, r3, r6 - b _080E7D16 - .align 2, 0 -_080E7CBC: .4byte 0x00009d55 -_080E7CC0: .4byte 0x00009cd0 -_080E7CC4: - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _080E7D1A - ldr r0, _080E7D24 @ =0x00009d55 - adds r4, r3, r0 - movs r1, 0 - ldrsb r1, [r4, r1] - ldr r6, _080E7D28 @ =0x00009d54 - adds r2, r3, r6 - movs r0, 0 - ldrsb r0, [r2, r0] - subs r0, 0x4 - cmp r1, r0 - bge _080E7CFE - ldrb r1, [r4] - adds r1, 0x4 - ldrb r0, [r2] - subs r0, r1 - movs r2, 0xE0 - lsls r2, 1 - adds r1, r3, r2 - strb r0, [r1] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0x4 - ble _080E7CFE - movs r0, 0x4 - strb r0, [r1] -_080E7CFE: - ldr r4, _080E7D2C @ =0x00009cd0 - adds r1, r3, r4 - movs r6, 0xE0 - lsls r6, 1 - adds r0, r3, r6 - ldrb r0, [r0] - ldrb r2, [r1] - adds r0, r2 - strb r0, [r1] - movs r4, 0xDF - lsls r4, 1 - adds r1, r3, r4 -_080E7D16: - movs r0, 0x4 - strb r0, [r1] -_080E7D1A: - movs r0, 0 -_080E7D1C: - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_080E7D24: .4byte 0x00009d55 -_080E7D28: .4byte 0x00009d54 -_080E7D2C: .4byte 0x00009cd0 - thumb_func_end sub_80E7B40 - - thumb_func_start sub_80E7D30 -sub_80E7D30: @ 80E7D30 - push {r4,lr} - ldr r0, _080E7D60 @ =gSharedMem + 0x1000 - ldr r1, _080E7D64 @ =0x00009cd1 - adds r4, r0, r1 - ldr r2, _080E7D68 @ =0x00009cd0 - adds r1, r0, r2 - ldrb r1, [r1] - lsls r1, 24 - asrs r1, 24 - adds r2, 0x2 - adds r0, r2 - adds r1, r0 - movs r2, 0 - ldrsb r2, [r4, r2] - ldrb r3, [r1] - movs r0, 0 - ldrsb r0, [r1, r0] - cmp r2, r0 - blt _080E7D5A - subs r0, r3, 0x1 - strb r0, [r4] -_080E7D5A: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080E7D60: .4byte gSharedMem + 0x1000 -_080E7D64: .4byte 0x00009cd1 -_080E7D68: .4byte 0x00009cd0 - thumb_func_end sub_80E7D30 - - thumb_func_start sub_80E7D6C -sub_80E7D6C: @ 80E7D6C - push {r4,r5,lr} - movs r4, 0 - ldr r0, _080E7D94 @ =gSharedMem + 0x1000 - ldrb r1, [r0, 0xA] - cmp r4, r1 - bcs _080E7D8E - adds r5, r0, 0 -_080E7D7A: - adds r0, r4, 0 - ldr r1, _080E7D98 @ =0x0000ffff - bl sub_80E7F00 - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - ldrb r0, [r5, 0xA] - cmp r4, r0 - bcc _080E7D7A -_080E7D8E: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080E7D94: .4byte gSharedMem + 0x1000 -_080E7D98: .4byte 0x0000ffff - thumb_func_end sub_80E7D6C - - thumb_func_start sub_80E7D9C -sub_80E7D9C: @ 80E7D9C - push {r4,r5,lr} - movs r2, 0 - ldr r0, _080E7DCC @ =gSharedMem + 0x1000 - ldrb r1, [r0, 0xA] - cmp r2, r1 - bcs _080E7DC6 - adds r3, r0, 0 - ldr r4, [r3, 0x4] - adds r5, r3, 0 - adds r5, 0xC -_080E7DB0: - lsls r0, r2, 1 - adds r1, r0, r4 - adds r0, r5 - ldrh r0, [r0] - strh r0, [r1] - adds r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - ldrb r0, [r3, 0xA] - cmp r2, r0 - bcc _080E7DB0 -_080E7DC6: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080E7DCC: .4byte gSharedMem + 0x1000 - thumb_func_end sub_80E7D9C - - thumb_func_start sub_80E7DD0 -sub_80E7DD0: @ 80E7DD0 - push {r4,lr} - ldr r2, _080E7E28 @ =gSharedMem + 0x1000 - ldr r1, _080E7E2C @ =0x00009cd1 - adds r0, r2, r1 - movs r1, 0 - ldrsb r1, [r0, r1] - lsls r1, 1 - ldr r3, _080E7E30 @ =0x00009cd0 - adds r0, r2, r3 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - lsls r0, 2 - adds r1, r0 - adds r3, 0x86 - adds r0, r2, r3 - adds r1, r0 - ldrh r4, [r1] - adds r0, r2, 0 - adds r0, 0x7D - ldrb r0, [r0] - cmp r0, 0 - beq _080E7E34 - adds r0, r2, 0 - adds r0, 0x86 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - adds r1, r2, 0 - adds r1, 0x7E - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0x1 - bls _080E7E34 - adds r0, r4, 0 - bl sub_80EB2D4 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x7 - bne _080E7E34 - movs r0, 0 - b _080E7E46 - .align 2, 0 -_080E7E28: .4byte gSharedMem + 0x1000 -_080E7E2C: .4byte 0x00009cd1 -_080E7E30: .4byte 0x00009cd0 -_080E7E34: - ldr r0, _080E7E4C @ =gSharedMem + 0x1000 - adds r0, 0x27 - ldrb r0, [r0] - adds r1, r4, 0 - bl sub_80E7F00 - bl sub_80E95A4 - movs r0, 0x1 -_080E7E46: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080E7E4C: .4byte gSharedMem + 0x1000 - thumb_func_end sub_80E7DD0 - - thumb_func_start sub_80E7E50 -sub_80E7E50: @ 80E7E50 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x8 - movs r5, 0 - movs r2, 0 - ldr r1, _080E7EF0 @ =gSharedMem + 0x1000 - adds r3, r1, 0 - adds r3, 0x84 - movs r0, 0 - ldrsb r0, [r3, r0] - cmp r2, r0 - bge _080E7EDE - mov r8, r1 - adds r0, r1, 0 - str r0, [sp] -_080E7E74: - mov r0, r8 - adds r0, 0x7E - adds r0, r2, r0 - movs r1, 0 - strb r1, [r0] - movs r3, 0 - ldr r6, _080E7EF4 @ =gSharedMem + 0x1083 - movs r0, 0 - ldrsb r0, [r6, r0] - adds r1, r2, 0x1 - str r1, [sp, 0x4] - cmp r3, r0 - bge _080E7ECE - ldr r6, [sp] - mov r12, r6 - movs r0, 0 - mov r10, r0 - ldr r1, _080E7EF4 @ =gSharedMem + 0x1083 - mov r9, r1 - ldr r7, _080E7EF8 @ =gSharedMem + 0x100C - lsls r4, r2, 1 -_080E7E9E: - lsls r1, r5, 1 - adds r2, r1, r7 - mov r6, r12 - ldr r0, [r6, 0x4] - adds r1, r0 - ldrh r0, [r1] - strh r0, [r2] - adds r0, r3, r4 - mov r1, r12 - adds r1, 0x8C - adds r0, r1 - mov r1, r10 - strb r1, [r0] - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - mov r6, r9 - movs r0, 0 - ldrsb r0, [r6, r0] - cmp r3, r0 - blt _080E7E9E -_080E7ECE: - ldr r1, [sp, 0x4] - lsls r0, r1, 16 - lsrs r2, r0, 16 - ldr r6, _080E7EFC @ =gSharedMem + 0x1084 - movs r0, 0 - ldrsb r0, [r6, r0] - cmp r2, r0 - blt _080E7E74 -_080E7EDE: - add sp, 0x8 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080E7EF0: .4byte gSharedMem + 0x1000 -_080E7EF4: .4byte gSharedMem + 0x1083 -_080E7EF8: .4byte gSharedMem + 0x100C -_080E7EFC: .4byte gSharedMem + 0x1084 - thumb_func_end sub_80E7E50 - - thumb_func_start sub_80E7F00 -sub_80E7F00: @ 80E7F00 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - lsls r0, 16 - lsrs r6, r0, 16 - lsls r1, 16 - lsrs r1, 16 - mov r9, r1 - ldr r7, _080E7F68 @ =gSharedMem + 0x1000 - adds r0, r7, 0 - adds r0, 0x83 - movs r4, 0 - ldrsb r4, [r0, r4] - adds r0, r6, 0 - adds r1, r4, 0 - bl __divsi3 - lsls r0, 16 - lsrs r5, r0, 16 - adds r0, r6, 0 - adds r1, r4, 0 - bl __modsi3 - lsls r0, 16 - lsrs r0, 16 - mov r8, r0 - lsls r0, r6, 1 - adds r1, r7, 0 - adds r1, 0xC - adds r0, r1 - ldrh r0, [r0] - bl sub_80EB2D4 - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - mov r0, r9 - bl sub_80EB2D4 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r4, 0x7 - bne _080E7F6C - cmp r3, 0x7 - beq _080E7F7C - adds r1, r7, 0 - adds r1, 0x7E - adds r1, r5, r1 - ldrb r0, [r1] - subs r0, 0x1 - b _080E7F7A - .align 2, 0 -_080E7F68: .4byte gSharedMem + 0x1000 -_080E7F6C: - cmp r3, 0x7 - bne _080E7F7C - adds r1, r7, 0 - adds r1, 0x7E - adds r1, r5, r1 - ldrb r0, [r1] - adds r0, 0x1 -_080E7F7A: - strb r0, [r1] -_080E7F7C: - movs r3, 0 - ldr r2, _080E7FA4 @ =gSharedMem + 0x1000 - lsls r0, r5, 1 - add r0, r8 - adds r1, r2, 0 - adds r1, 0x8C - adds r0, r1 - strb r3, [r0] - lsls r0, r6, 1 - adds r2, 0xC - adds r0, r2 - mov r1, r9 - strh r1, [r0] - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080E7FA4: .4byte gSharedMem + 0x1000 - thumb_func_end sub_80E7F00 - - thumb_func_start sub_80E7FA8 -sub_80E7FA8: @ 80E7FA8 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - movs r0, 0 - mov r8, r0 - movs r5, 0 - ldr r0, _080E8040 @ =gSharedMem + 0x1000 - ldrb r1, [r0, 0xA] - cmp r8, r1 - bcs _080E802E - ldr r3, _080E8044 @ =0x0000a140 - adds r6, r0, r3 - ldr r1, _080E8048 @ =0x0000a16d - adds r1, r0 - mov r9, r1 -_080E7FC8: - ldr r3, _080E804C @ =0xffff5ec0 - adds r7, r6, r3 - ldr r0, [r7, 0x4] - lsls r4, r5, 1 - adds r0, r4, r0 - ldrh r1, [r0] - adds r0, r6, 0 - movs r2, 0 - bl sub_80EB218 - ldr r1, _080E8050 @ =0xffff5ecc - adds r0, r6, r1 - adds r0, r4 - ldrh r1, [r0] - mov r0, r9 - movs r2, 0 - bl sub_80EB218 - adds r1, r6, 0 - mov r2, r9 - ldrb r0, [r1] - adds r4, r5, 0x1 - ldrb r3, [r2] - cmp r0, r3 - bne _080E8018 - adds r3, r7, 0 - cmp r0, 0xFF - beq _080E8010 -_080E8000: - adds r1, 0x1 - adds r2, 0x1 - ldrb r0, [r1] - ldrb r5, [r2] - cmp r0, r5 - bne _080E8018 - cmp r0, 0xFF - bne _080E8000 -_080E8010: - ldrb r0, [r1] - ldrb r2, [r2] - cmp r0, r2 - beq _080E8024 -_080E8018: - mov r0, r8 - adds r0, 0x1 - lsls r0, 16 - lsrs r0, 16 - mov r8, r0 - ldr r3, _080E8040 @ =gSharedMem + 0x1000 -_080E8024: - lsls r0, r4, 16 - lsrs r5, r0, 16 - ldrb r3, [r3, 0xA] - cmp r5, r3 - bcc _080E7FC8 -_080E802E: - mov r1, r8 - lsls r0, r1, 24 - lsrs r0, 24 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_080E8040: .4byte gSharedMem + 0x1000 -_080E8044: .4byte 0x0000a140 -_080E8048: .4byte 0x0000a16d -_080E804C: .4byte 0xffff5ec0 -_080E8050: .4byte 0xffff5ecc - thumb_func_end sub_80E7FA8 - - thumb_func_start sub_80E8054 -sub_80E8054: @ 80E8054 - push {r4,lr} - movs r1, 0 - ldr r2, _080E8078 @ =gSharedMem + 0x1000 - ldrb r0, [r2, 0xA] - cmp r1, r0 - bcs _080E808A - adds r4, r2, 0 - adds r4, 0xC - ldr r3, _080E807C @ =0x0000ffff - adds r2, r0, 0 -_080E8068: - lsls r0, r1, 1 - adds r0, r4 - ldrh r0, [r0] - cmp r0, r3 - beq _080E8080 - movs r0, 0 - b _080E808C - .align 2, 0 -_080E8078: .4byte gSharedMem + 0x1000 -_080E807C: .4byte 0x0000ffff -_080E8080: - adds r0, r1, 0x1 - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, r2 - bcc _080E8068 -_080E808A: - movs r0, 0x1 -_080E808C: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_80E8054 - - thumb_func_start sub_80E8094 -sub_80E8094: @ 80E8094 - push {r4-r7,lr} - movs r5, 0 - ldr r6, _080E80C4 @ =gSharedMem + 0xB140 - adds r7, r6, 0 - adds r7, 0x2D -_080E809E: - lsls r4, r5, 1 - ldr r1, _080E80C8 @ =0xffff5ecc - adds r0, r6, r1 - adds r0, r4 - ldrh r1, [r0] - adds r0, r6, 0 - movs r2, 0 - bl sub_80EB218 - ldr r0, _080E80CC @ =gMysteryEventPhrase - adds r4, r0 - ldrh r1, [r4] - adds r0, r7, 0 - movs r2, 0 - bl sub_80EB218 - adds r3, r6, 0 - adds r4, r7, 0 - b _080E80D8 - .align 2, 0 -_080E80C4: .4byte gSharedMem + 0xB140 -_080E80C8: .4byte 0xffff5ecc -_080E80CC: .4byte gMysteryEventPhrase -_080E80D0: - adds r4, 0x1 - adds r3, 0x1 - cmp r2, r1 - bne _080E80F4 -_080E80D8: - ldrb r2, [r3] - adds r0, r2, 0 - cmp r0, 0xFF - beq _080E80EE - ldrb r1, [r4] - adds r0, r1, 0 - cmp r0, 0xFF - bne _080E80D0 - ldrb r0, [r3] - cmp r0, 0xFF - bne _080E80F4 -_080E80EE: - ldrb r0, [r4] - cmp r0, 0xFF - beq _080E80F8 -_080E80F4: - movs r0, 0 - b _080E8104 -_080E80F8: - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0x3 - bls _080E809E - movs r0, 0x1 -_080E8104: - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_80E8094 - - thumb_func_start sub_80E810C -sub_80E810C: @ 80E810C - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - movs r5, 0 - ldr r6, _080E8198 @ =gSharedMem + 0xB19A - ldr r0, _080E819C @ =0xffff5e66 - adds r0, r6 - mov r9, r0 - movs r1, 0 - mov r8, r1 - adds r7, r6, 0 - adds r7, 0x80 - ldr r2, _080E81A0 @ =gBerryMasterWifePhrases - mov r10, r2 -_080E812C: - mov r0, r9 - ldrh r1, [r0, 0xC] - adds r0, r6, 0 - movs r2, 0 - bl sub_80EB218 - mov r1, r8 - strb r1, [r0] - adds r0, 0x1 - mov r2, r9 - ldrh r1, [r2, 0xE] - movs r2, 0 - bl sub_80EB218 - lsls r4, r5, 2 - mov r1, r10 - adds r0, r4, r1 - ldrh r1, [r0] - adds r0, r7, 0 - movs r2, 0 - bl sub_80EB218 - mov r2, r8 - strb r2, [r0] - adds r0, 0x1 - ldr r1, _080E81A4 @ =gBerryMasterWifePhrases + 0x2 - adds r4, r1 - ldrh r1, [r4] - movs r2, 0 - bl sub_80EB218 - adds r0, r6, 0 - adds r3, r7, 0 - adds r4, r5, 0x1 -_080E8170: - ldrb r2, [r0] - cmp r2, 0xFF - beq _080E818A - ldrb r1, [r3] - cmp r1, 0xFF - beq _080E8184 - adds r3, 0x1 - adds r0, 0x1 - cmp r2, r1 - beq _080E8170 -_080E8184: - ldrb r0, [r0] - cmp r0, 0xFF - bne _080E81A8 -_080E818A: - ldrb r0, [r3] - cmp r0, 0xFF - bne _080E81A8 - lsls r0, r4, 24 - lsrs r0, 24 - b _080E81B2 - .align 2, 0 -_080E8198: .4byte gSharedMem + 0xB19A -_080E819C: .4byte 0xffff5e66 -_080E81A0: .4byte gBerryMasterWifePhrases -_080E81A4: .4byte gBerryMasterWifePhrases + 0x2 -_080E81A8: - lsls r0, r4, 16 - lsrs r5, r0, 16 - cmp r5, 0x4 - bls _080E812C - movs r0, 0 -_080E81B2: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_80E810C - - thumb_func_start sub_80E81C0 -sub_80E81C0: @ 80E81C0 - push {r4,lr} - ldr r0, _080E81EC @ =gStringVar2 - ldr r4, _080E81F0 @ =gSharedMem + 0x1000 - ldr r2, _080E81F4 @ =0x00009fa8 - adds r1, r4, r2 - ldrh r1, [r1] - movs r2, 0 - bl sub_80EB218 - movs r1, 0 - strb r1, [r0] - adds r0, 0x1 - ldr r1, _080E81F8 @ =0x00009faa - adds r4, r1 - ldrh r1, [r4] - movs r2, 0 - bl sub_80EB218 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080E81EC: .4byte gStringVar2 -_080E81F0: .4byte gSharedMem + 0x1000 -_080E81F4: .4byte 0x00009fa8 -_080E81F8: .4byte 0x00009faa - thumb_func_end sub_80E81C0 - - thumb_func_start sub_80E81FC -sub_80E81FC: @ 80E81FC - push {lr} - movs r0, 0x5 - bl PlaySE - bl sub_80E95A4 - movs r0, 0 - movs r1, 0 - movs r2, 0x1D - movs r3, 0xD - bl MenuZeroFillWindowRect - pop {r0} - bx r0 - thumb_func_end sub_80E81FC - - thumb_func_start sub_80E8218 -sub_80E8218: @ 80E8218 - push {r4,r5,lr} - sub sp, 0x40 - mov r1, sp - ldr r0, _080E8260 @ =gSpriteSheets_Interview - ldm r0!, {r2-r4} - stm r1!, {r2-r4} - ldm r0!, {r2,r3,r5} - stm r1!, {r2,r3,r5} - ldm r0!, {r2,r4,r5} - stm r1!, {r2,r4,r5} - ldr r0, [r0] - str r0, [r1] - add r4, sp, 0x28 - adds r1, r4, 0 - ldr r0, _080E8264 @ =gSpritePalettes_Interview - ldm r0!, {r2,r3,r5} - stm r1!, {r2,r3,r5} - ldm r0!, {r2,r3,r5} - stm r1!, {r2,r3,r5} - mov r0, sp - bl LoadSpriteSheets - adds r0, r4, 0 - bl LoadSpritePalettes - bl sub_80E8268 - bl sub_80E8818 - bl sub_80E8A7C - add sp, 0x40 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080E8260: .4byte gSpriteSheets_Interview -_080E8264: .4byte gSpritePalettes_Interview - thumb_func_end sub_80E8218 - - thumb_func_start sub_80E8268 -sub_80E8268: @ 80E8268 - push {lr} - ldr r0, _080E82B0 @ =gSpriteTemplate_83DBBFC - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080E82B4 @ =gSprites - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - ldr r0, _080E82B8 @ =gUnknown_083DB694 - ldr r3, [r0] - adds r0, r3, 0 - adds r0, 0x8A - ldrh r0, [r0] - lsls r0, 3 - adds r0, 0x8 - movs r2, 0 - strh r0, [r1, 0x22] - adds r0, r3, 0 - adds r0, 0x88 - ldrh r0, [r0] - lsls r0, 3 - adds r0, 0x4 - strh r0, [r1, 0x20] - strh r2, [r1, 0x2E] - strh r2, [r1, 0x30] - adds r0, r3, 0 - adds r0, 0x98 - str r1, [r0] - pop {r0} - bx r0 - .align 2, 0 -_080E82B0: .4byte gSpriteTemplate_83DBBFC -_080E82B4: .4byte gSprites -_080E82B8: .4byte gUnknown_083DB694 - thumb_func_end sub_80E8268 - - thumb_func_start sub_80E82BC -sub_80E82BC: @ 80E82BC - push {r4-r7,lr} - adds r3, r0, 0 - movs r1, 0x30 - ldrsh r0, [r3, r1] - cmp r0, 0 - bne _080E838C - ldr r0, _080E8334 @ =gUnknown_083DB694 - ldr r2, [r0] - adds r1, r2, 0 - adds r1, 0x87 - ldrb r1, [r1] - mov r12, r0 - cmp r1, 0 - beq _080E836C - adds r0, r2, 0 - adds r0, 0x86 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - lsls r0, 16 - lsrs r5, r0, 16 - adds r0, r2, 0 - adds r0, 0x85 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - lsls r0, 16 - lsrs r4, r0, 16 - movs r7, 0 - movs r1, 0 - cmp r7, r4 - bcs _080E8316 - lsls r6, r5, 1 - adds r2, 0x8C -_080E8300: - adds r0, r1, r6 - adds r0, r2, r0 - ldrb r0, [r0] - adds r0, r7, r0 - lsls r0, 16 - lsrs r7, r0, 16 - adds r0, r1, 0x1 - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, r4 - bcc _080E8300 -_080E8316: - mov r0, r12 - ldr r2, [r0] - adds r0, r2, 0 - adds r0, 0x84 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r5, r0 - bne _080E8338 - movs r0, 0x60 - strh r0, [r3, 0x22] - lsls r0, r4, 3 - subs r0, r4 - adds r0, 0x3 - b _080E8356 - .align 2, 0 -_080E8334: .4byte gUnknown_083DB694 -_080E8338: - adds r1, r2, 0 - adds r1, 0x8A - lsls r0, r5, 1 - ldrh r1, [r1] - adds r0, r1 - lsls r0, 3 - adds r0, 0x8 - strh r0, [r3, 0x22] - adds r0, r2, 0 - adds r0, 0x88 - ldrh r0, [r0] - adds r0, r7 - movs r1, 0xB - muls r1, r4 - adds r0, r1 -_080E8356: - lsls r0, 3 - adds r0, 0x4 - strh r0, [r3, 0x20] - movs r1, 0 - ldr r0, _080E8368 @ =0x0000fffa - strh r0, [r3, 0x24] - strh r1, [r3, 0x2E] - b _080E838C - .align 2, 0 -_080E8368: .4byte 0x0000fffa -_080E836C: - ldrh r0, [r3, 0x2E] - adds r0, 0x1 - strh r0, [r3, 0x2E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x2 - ble _080E838C - strh r1, [r3, 0x2E] - ldrh r0, [r3, 0x24] - adds r0, 0x1 - strh r0, [r3, 0x24] - lsls r0, 16 - cmp r0, 0 - ble _080E838C - ldr r0, _080E8394 @ =0x0000fffa - strh r0, [r3, 0x24] -_080E838C: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080E8394: .4byte 0x0000fffa - thumb_func_end sub_80E82BC - - thumb_func_start sub_80E8398 -sub_80E8398: @ 80E8398 - push {lr} - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0x1 - beq _080E83D4 - cmp r3, 0x1 - bgt _080E83AC - cmp r3, 0 - beq _080E83B2 - b _080E8416 -_080E83AC: - cmp r3, 0x2 - beq _080E83F8 - b _080E8416 -_080E83B2: - ldr r0, _080E83D0 @ =gUnknown_083DB694 - ldr r0, [r0] - adds r0, 0x98 - ldr r1, [r0] - strh r3, [r1, 0x30] - ldr r1, [r0] - strh r3, [r1, 0x24] - ldr r1, [r0] - adds r1, 0x3E - ldrb r2, [r1] - movs r0, 0x5 - negs r0, r0 - ands r0, r2 - b _080E8414 - .align 2, 0 -_080E83D0: .4byte gUnknown_083DB694 -_080E83D4: - ldr r0, _080E83F4 @ =gUnknown_083DB694 - ldr r1, [r0] - adds r1, 0x98 - ldr r0, [r1] - movs r2, 0 - strh r3, [r0, 0x30] - ldr r0, [r1] - strh r2, [r0, 0x24] - ldr r1, [r1] - adds r1, 0x3E - ldrb r2, [r1] - movs r0, 0x5 - negs r0, r0 - ands r0, r2 - b _080E8414 - .align 2, 0 -_080E83F4: .4byte gUnknown_083DB694 -_080E83F8: - ldr r0, _080E841C @ =gUnknown_083DB694 - ldr r1, [r0] - adds r1, 0x98 - ldr r2, [r1] - movs r3, 0 - movs r0, 0x1 - strh r0, [r2, 0x30] - ldr r0, [r1] - strh r3, [r0, 0x24] - ldr r1, [r1] - adds r1, 0x3E - ldrb r0, [r1] - movs r2, 0x4 - orrs r0, r2 -_080E8414: - strb r0, [r1] -_080E8416: - pop {r0} - bx r0 - .align 2, 0 -_080E841C: .4byte gUnknown_083DB694 - thumb_func_end sub_80E8398 - - thumb_func_start sub_80E8420 -sub_80E8420: @ 80E8420 - push {r4-r7,lr} - sub sp, 0x18 - mov r1, sp - ldr r0, _080E84E0 @ =gSpriteTemplate_83DBCAC - ldm r0!, {r2-r4} - stm r1!, {r2-r4} - ldm r0!, {r2-r4} - stm r1!, {r2-r4} - mov r0, sp - movs r1, 0 - movs r2, 0 - movs r3, 0x3 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - ldr r1, _080E84E4 @ =gUnknown_083DB694 - ldr r7, [r1] - adds r5, r7, 0 - adds r5, 0x9C - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - ldr r4, _080E84E8 @ =gSprites - adds r1, r4 - str r1, [r5] - ldr r0, _080E84EC @ =gSpriteAnimTable_83DBC8C - str r0, [sp, 0x8] - ldr r0, _080E84F0 @ =sub_80E872C - str r0, [sp, 0x14] - mov r0, sp - movs r1, 0 - movs r2, 0 - movs r3, 0x4 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - adds r6, r7, 0 - adds r6, 0xA0 - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r4 - str r1, [r6] - ldr r0, _080E84F4 @ =gSpriteAnimTable_83DBC9C - str r0, [sp, 0x8] - ldr r0, _080E84F8 @ =sub_80E8760 - str r0, [sp, 0x14] - mov r0, sp - movs r1, 0 - movs r2, 0 - movs r3, 0x5 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - adds r2, r7, 0 - adds r2, 0xA4 - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r4 - str r1, [r2] - ldr r0, [r5] - movs r1, 0 - strh r1, [r0, 0x2E] - ldr r0, [r6] - strh r1, [r0, 0x2E] - ldr r0, [r2] - strh r1, [r0, 0x2E] - movs r0, 0x1 - bl IndexOfSpritePaletteTag - ldr r1, [r5] - lsls r0, 24 - lsrs r0, 20 - ldr r2, _080E84FC @ =0x00000101 - adds r0, r2 - strh r0, [r1, 0x34] - bl sub_80E8534 - adds r1, r7, 0 - adds r1, 0x96 - movs r0, 0x1 - strb r0, [r1] - ldr r1, _080E8500 @ =REG_BLDCNT - movs r3, 0xFD - lsls r3, 6 - adds r0, r3, 0 - strh r0, [r1] - add sp, 0x18 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080E84E0: .4byte gSpriteTemplate_83DBCAC -_080E84E4: .4byte gUnknown_083DB694 -_080E84E8: .4byte gSprites -_080E84EC: .4byte gSpriteAnimTable_83DBC8C -_080E84F0: .4byte sub_80E872C -_080E84F4: .4byte gSpriteAnimTable_83DBC9C -_080E84F8: .4byte sub_80E8760 -_080E84FC: .4byte 0x00000101 -_080E8500: .4byte REG_BLDCNT - thumb_func_end sub_80E8420 - - thumb_func_start sub_80E8504 -sub_80E8504: @ 80E8504 - push {r4,lr} - ldr r0, _080E8530 @ =gUnknown_083DB694 - ldr r4, [r0] - adds r0, r4, 0 - adds r0, 0x9C - ldr r0, [r0] - bl DestroySprite - adds r0, r4, 0 - adds r0, 0xA0 - ldr r0, [r0] - bl DestroySprite - adds r0, r4, 0 - adds r0, 0xA4 - ldr r0, [r0] - bl DestroySprite - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080E8530: .4byte gUnknown_083DB694 - thumb_func_end sub_80E8504 - - thumb_func_start sub_80E8534 -sub_80E8534: @ 80E8534 - push {r4-r7,lr} - mov r7, r8 - push {r7} - ldr r1, _080E8554 @ =gUnknown_083DB694 - ldr r3, [r1] - ldr r2, _080E8558 @ =0x000001b7 - adds r0, r3, r2 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - adds r4, r1, 0 - cmp r0, 0 - beq _080E8560 - ldr r1, _080E855C @ =gUnknown_020388AC - movs r0, 0x1 - b _080E8598 - .align 2, 0 -_080E8554: .4byte gUnknown_083DB694 -_080E8558: .4byte 0x000001b7 -_080E855C: .4byte gUnknown_020388AC -_080E8560: - adds r0, r3, 0 - adds r0, 0x26 - ldrb r2, [r0] - cmp r2, 0 - bne _080E8578 - ldr r0, _080E8574 @ =gUnknown_020388AC - strb r2, [r0] - adds r7, r0, 0 - b _080E859C - .align 2, 0 -_080E8574: .4byte gUnknown_020388AC -_080E8578: - movs r1, 0xD4 - lsls r1, 1 - adds r0, r3, r1 - ldrh r1, [r0] - movs r0, 0xC0 - lsls r0, 3 - cmp r1, r0 - bne _080E8594 - ldr r1, _080E8590 @ =gUnknown_020388AC - movs r0, 0x2 - b _080E8598 - .align 2, 0 -_080E8590: .4byte gUnknown_020388AC -_080E8594: - ldr r1, _080E85F4 @ =gUnknown_020388AC - movs r0, 0x3 -_080E8598: - strb r0, [r1] - adds r7, r1, 0 -_080E859C: - ldr r2, [r4] - adds r4, r2, 0 - adds r4, 0x9C - ldr r1, [r4] - ldrb r0, [r7] - movs r3, 0 - mov r8, r3 - strh r0, [r1, 0x32] - adds r5, r2, 0 - adds r5, 0xA0 - ldr r1, [r5] - ldrb r0, [r7] - strh r0, [r1, 0x32] - adds r6, r2, 0 - adds r6, 0xA4 - ldr r1, [r6] - ldrb r0, [r7] - strh r0, [r1, 0x32] - ldr r0, [r4] - ldrb r1, [r7] - bl StartSpriteAnim - ldr r0, [r5] - ldrb r1, [r7] - bl StartSpriteAnim - ldr r0, [r6] - ldrb r1, [r7] - bl StartSpriteAnim - ldr r0, [r4] - movs r1, 0x8 - strh r1, [r0, 0x38] - ldr r0, [r4] - strh r1, [r0, 0x3A] - ldr r0, [r4] - mov r1, r8 - strh r1, [r0, 0x30] - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080E85F4: .4byte gUnknown_020388AC - thumb_func_end sub_80E8534 - - thumb_func_start sub_80E85F8 -sub_80E85F8: @ 80E85F8 - push {r4-r6,lr} - adds r5, r0, 0 - ldrh r0, [r5, 0x2E] - adds r0, 0x1 - strh r0, [r5, 0x2E] - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080E8624 - ldr r1, _080E8620 @ =gSineTable - movs r2, 0x30 - ldrsh r0, [r5, r2] - lsls r0, 1 - adds r0, r1 - ldrh r0, [r0] - lsls r0, 16 - asrs r0, 21 - adds r0, 0x8 - strh r0, [r5, 0x38] - b _080E863A - .align 2, 0 -_080E8620: .4byte gSineTable -_080E8624: - ldr r1, _080E8688 @ =gSineTable - movs r2, 0x30 - ldrsh r0, [r5, r2] - lsls r0, 1 - adds r0, r1 - ldrh r1, [r0] - lsls r1, 16 - asrs r1, 21 - movs r0, 0x8 - subs r0, r1 - strh r0, [r5, 0x3A] -_080E863A: - ldrh r0, [r5, 0x30] - adds r0, 0x5 - movs r1, 0xFF - ands r0, r1 - strh r0, [r5, 0x30] - ldr r2, _080E868C @ =REG_BLDALPHA - ldrh r0, [r5, 0x3A] - lsls r0, 8 - ldrh r1, [r5, 0x38] - orrs r0, r1 - strh r0, [r2] - ldr r0, _080E8690 @ =gUnknown_083DB694 - ldr r6, [r0] - adds r0, r6, 0 - adds r0, 0x96 - ldrb r0, [r0] - cmp r0, 0 - beq _080E871A - bl sub_80E8534 - adds r1, r6, 0 - adds r1, 0x9C - ldr r0, [r1] - movs r2, 0x8 - strh r2, [r0, 0x38] - ldr r0, [r1] - strh r2, [r0, 0x3A] - ldr r1, [r1] - movs r0, 0 - strh r0, [r1, 0x30] - movs r1, 0x32 - ldrsh r0, [r5, r1] - cmp r0, 0x1 - beq _080E86C4 - cmp r0, 0x1 - bgt _080E8694 - cmp r0, 0 - beq _080E869E - b _080E871A - .align 2, 0 -_080E8688: .4byte gSineTable -_080E868C: .4byte REG_BLDALPHA -_080E8690: .4byte gUnknown_083DB694 -_080E8694: - cmp r0, 0x2 - beq _080E86D6 - cmp r0, 0x3 - beq _080E86DE - b _080E871A -_080E869E: - ldr r2, _080E86C0 @ =0x000001a9 - adds r0, r6, r2 - movs r1, 0 - ldrsb r1, [r0, r1] - movs r0, 0x58 - muls r0, r1 - adds r0, 0x20 - strh r0, [r5, 0x20] - movs r1, 0xD4 - lsls r1, 1 - adds r0, r6, r1 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - adds r2, 0xC - b _080E870A - .align 2, 0 -_080E86C0: .4byte 0x000001a9 -_080E86C4: - movs r0, 0xD6 - strh r0, [r5, 0x20] - movs r1, 0xD4 - lsls r1, 1 - adds r0, r6, r1 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - b _080E8714 -_080E86D6: - movs r0, 0x97 - strh r0, [r5, 0x20] - movs r0, 0x60 - b _080E8718 -_080E86DE: - ldr r4, _080E8720 @ =gUnknown_083DBCC4 - ldr r2, _080E8724 @ =0x000001a9 - adds r0, r6, r2 - movs r1, 0 - ldrsb r1, [r0, r1] - movs r0, 0xD4 - lsls r0, 1 - adds r3, r6, r0 - movs r2, 0 - ldrsb r2, [r3, r2] - lsls r0, r2, 3 - subs r0, r2 - adds r1, r0 - adds r1, r4 - movs r0, 0 - ldrsb r0, [r1, r0] - lsls r0, 3 - adds r0, 0x1F - strh r0, [r5, 0x20] - movs r0, 0 - ldrsb r0, [r3, r0] - ldr r2, _080E8728 @ =0x000001b5 -_080E870A: - adds r1, r6, r2 - ldrb r1, [r1] - lsls r1, 24 - asrs r1, 24 - subs r0, r1 -_080E8714: - lsls r0, 4 - adds r0, 0x60 -_080E8718: - strh r0, [r5, 0x22] -_080E871A: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080E8720: .4byte gUnknown_083DBCC4 -_080E8724: .4byte 0x000001a9 -_080E8728: .4byte 0x000001b5 - thumb_func_end sub_80E85F8 - - thumb_func_start sub_80E872C -sub_80E872C: @ 80E872C - push {lr} - adds r2, r0, 0 - ldr r0, _080E875C @ =gUnknown_083DB694 - ldr r1, [r0] - adds r0, r1, 0 - adds r0, 0x96 - ldrb r0, [r0] - cmp r0, 0 - beq _080E8756 - movs r3, 0x32 - ldrsh r0, [r2, r3] - cmp r0, 0 - bne _080E8756 - adds r1, 0x9C - ldr r0, [r1] - ldrh r0, [r0, 0x20] - adds r0, 0x20 - strh r0, [r2, 0x20] - ldr r0, [r1] - ldrh r0, [r0, 0x22] - strh r0, [r2, 0x22] -_080E8756: - pop {r0} - bx r0 - .align 2, 0 -_080E875C: .4byte gUnknown_083DB694 - thumb_func_end sub_80E872C - - thumb_func_start sub_80E8760 -sub_80E8760: @ 80E8760 - push {lr} - adds r2, r0, 0 - ldr r0, _080E8784 @ =gUnknown_083DB694 - ldr r1, [r0] - adds r0, r1, 0 - adds r0, 0x96 - ldrb r0, [r0] - cmp r0, 0 - beq _080E87B2 - movs r3, 0x32 - ldrsh r0, [r2, r3] - cmp r0, 0x1 - beq _080E8798 - cmp r0, 0x1 - bgt _080E8788 - cmp r0, 0 - beq _080E878E - b _080E87B2 - .align 2, 0 -_080E8784: .4byte gUnknown_083DB694 -_080E8788: - cmp r0, 0x2 - beq _080E87A2 - b _080E87B2 -_080E878E: - adds r1, 0x9C - ldr r0, [r1] - ldrh r0, [r0, 0x20] - adds r0, 0x40 - b _080E87AA -_080E8798: - adds r1, 0x9C - ldr r0, [r1] - ldrh r0, [r0, 0x20] - adds r0, 0x1C - b _080E87AA -_080E87A2: - adds r1, 0x9C - ldr r0, [r1] - ldrh r0, [r0, 0x20] - adds r0, 0x15 -_080E87AA: - strh r0, [r2, 0x20] - ldr r0, [r1] - ldrh r0, [r0, 0x22] - strh r0, [r2, 0x22] -_080E87B2: - pop {r0} - bx r0 - thumb_func_end sub_80E8760 - - thumb_func_start sub_80E87A4 -sub_80E87A4: @ 80E87A4 - push {r4,lr} - lsls r0, 24 - ldr r1, _080E87C8 @ =gUnknown_083DB694 - ldr r1, [r1] - adds r2, r1, 0 - adds r2, 0xA8 - ldr r3, [r2] - movs r4, 0 - cmp r0, 0 - bne _080E87BA - movs r4, 0x1 -_080E87BA: - movs r1, 0 - strh r4, [r3, 0x30] - ldr r0, [r2] - strh r1, [r0, 0x24] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080E87C8: .4byte gUnknown_083DB694 - thumb_func_end sub_80E87A4 - - thumb_func_start sub_80E87CC -sub_80E87CC: @ 80E87CC - push {r4,r5,lr} - lsls r0, 24 - lsrs r0, 24 - adds r4, r0, 0 - ldr r0, _080E8810 @ =gUnknown_083DB694 - ldr r5, [r0] - adds r0, r5, 0 - adds r0, 0xA8 - ldr r0, [r0] - movs r3, 0 - cmp r4, 0 - bne _080E87E6 - movs r3, 0x1 -_080E87E6: - adds r2, r0, 0 - adds r2, 0x3E - lsls r3, 2 - ldrb r1, [r2] - movs r0, 0x5 - negs r0, r0 - ands r0, r1 - orrs r0, r3 - strb r0, [r2] - adds r0, r4, 0 - bl sub_80E87A4 - cmp r4, 0 - beq _080E880A - ldr r0, _080E8814 @ =0x000001b9 - adds r1, r5, r0 - movs r0, 0x1 - strb r0, [r1] -_080E880A: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080E8810: .4byte gUnknown_083DB694 -_080E8814: .4byte 0x000001b9 - thumb_func_end sub_80E87CC - - thumb_func_start sub_80E8818 -sub_80E8818: @ 80E8818 - push {lr} - ldr r0, _080E8850 @ =gSpriteTemplate_83DBBFC - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080E8854 @ =gSprites - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - movs r0, 0 - strh r0, [r1, 0x2E] - strh r0, [r1, 0x30] - ldr r0, _080E8858 @ =gUnknown_083DB694 - ldr r0, [r0] - adds r0, 0xA8 - str r1, [r0] - ldr r0, _080E885C @ =sub_80E8860 - str r0, [r1, 0x1C] - movs r0, 0 - bl sub_80E87CC - pop {r0} - bx r0 - .align 2, 0 -_080E8850: .4byte gSpriteTemplate_83DBBFC -_080E8854: .4byte gSprites -_080E8858: .4byte gUnknown_083DB694 -_080E885C: .4byte sub_80E8860 - thumb_func_end sub_80E8818 - - thumb_func_start sub_80E8860 -sub_80E8860: @ 80E8860 - push {r4,r5,lr} - adds r2, r0, 0 - movs r0, 0x30 - ldrsh r4, [r2, r0] - cmp r4, 0 - bne _080E88E4 - ldr r0, _080E88B0 @ =gUnknown_083DB694 - ldr r3, [r0] - ldr r1, _080E88B4 @ =0x000001b9 - adds r0, r3, r1 - ldrb r1, [r0] - cmp r1, 0 - beq _080E88C4 - ldr r5, _080E88B8 @ =0x00009cd1 - adds r0, r3, r5 - movs r1, 0 - ldrsb r1, [r0, r1] - movs r0, 0x58 - muls r0, r1 - adds r0, 0x2C - strh r0, [r2, 0x20] - ldr r1, _080E88BC @ =0x00009cd0 - adds r0, r3, r1 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - adds r5, 0x84 - adds r1, r3, r5 - ldrb r1, [r1] - lsls r1, 24 - asrs r1, 24 - subs r0, r1 - lsls r0, 4 - adds r0, 0x60 - strh r0, [r2, 0x22] - ldr r0, _080E88C0 @ =0x0000fffa - strh r0, [r2, 0x24] - strh r4, [r2, 0x2E] - b _080E88E4 - .align 2, 0 -_080E88B0: .4byte gUnknown_083DB694 -_080E88B4: .4byte 0x000001b9 -_080E88B8: .4byte 0x00009cd1 -_080E88BC: .4byte 0x00009cd0 -_080E88C0: .4byte 0x0000fffa -_080E88C4: - ldrh r0, [r2, 0x2E] - adds r0, 0x1 - strh r0, [r2, 0x2E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x2 - ble _080E88E4 - strh r1, [r2, 0x2E] - ldrh r0, [r2, 0x24] - adds r0, 0x1 - strh r0, [r2, 0x24] - lsls r0, 16 - cmp r0, 0 - ble _080E88E4 - ldr r0, _080E88EC @ =0x0000fffa - strh r0, [r2, 0x24] -_080E88E4: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080E88EC: .4byte 0x0000fffa - thumb_func_end sub_80E8860 - - thumb_func_start sub_80E88F0 -sub_80E88F0: @ 80E88F0 - push {r4-r7,lr} - mov r7, r8 - push {r7} - movs r4, 0 - ldr r0, _080E8950 @ =gUnknown_083DB694 - mov r8, r0 - ldr r0, [r0] - movs r6, 0x4 - movs r5, 0 - movs r1, 0xB4 - adds r1, r0 - mov r12, r1 - adds r7, r0, 0 - adds r7, 0xAC -_080E890C: - lsls r2, r4, 2 - adds r3, r7, r2 - ldr r1, [r3] - adds r1, 0x3E - ldrb r0, [r1] - orrs r0, r6 - strb r0, [r1] - ldr r0, [r3] - strh r5, [r0, 0x30] - add r2, r12 - ldr r1, [r2] - adds r1, 0x3E - ldrb r0, [r1] - orrs r0, r6 - strb r0, [r1] - ldr r0, [r2] - strh r5, [r0, 0x30] - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0x1 - bls _080E890C - mov r1, r8 - ldr r0, [r1] - ldr r1, _080E8954 @ =0x00009f9c - adds r0, r1 - movs r1, 0 - strb r1, [r0] - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080E8950: .4byte gUnknown_083DB694 -_080E8954: .4byte 0x00009f9c - thumb_func_end sub_80E88F0 - - thumb_func_start sub_80E8958 -sub_80E8958: @ 80E8958 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - lsls r0, 24 - lsrs r7, r0, 24 - cmp r7, 0 - bne _080E89B4 - movs r0, 0x64 - mov r9, r0 - ldr r0, _080E8998 @ =gUnknown_083DB694 - ldr r2, [r0] - ldr r3, _080E899C @ =0x00009f98 - adds r1, r2, r3 - ldr r3, _080E89A0 @ =0x000001b5 - adds r0, r2, r3 - str r0, [r1] - adds r0, r2, 0 - adds r0, 0x26 - ldrb r0, [r0] - cmp r0, 0 - bne _080E89A8 - movs r1, 0xDB - lsls r1, 1 - adds r0, r2, r1 - ldrb r0, [r0] - subs r0, 0x4 - ldr r3, _080E89A4 @ =0x00009f9d - adds r1, r2, r3 - strb r0, [r1] - b _080E8A00 - .align 2, 0 -_080E8998: .4byte gUnknown_083DB694 -_080E899C: .4byte 0x00009f98 -_080E89A0: .4byte 0x000001b5 -_080E89A4: .4byte 0x00009f9d -_080E89A8: - ldr r1, _080E89B0 @ =0x00009f9d - adds r0, r2, r1 - strb r7, [r0] - b _080E8A00 - .align 2, 0 -_080E89B0: .4byte 0x00009f9d -_080E89B4: - movs r3, 0x78 - mov r9, r3 - ldr r0, _080E8A64 @ =gUnknown_083DB694 - ldr r2, [r0] - ldr r0, _080E8A68 @ =0x00009f98 - adds r1, r2, r0 - ldr r3, _080E8A6C @ =0x00009d55 - adds r0, r2, r3 - str r0, [r1] - ldr r1, _080E8A70 @ =0x00009d54 - adds r0, r2, r1 - ldrb r0, [r0] - subs r0, 0x4 - ldr r3, _080E8A74 @ =0x00009f9d - adds r1, r2, r3 - strb r0, [r1] - movs r4, 0 - adds r5, r2, 0 - adds r5, 0xB4 - movs r0, 0x5 - negs r0, r0 - mov r12, r0 - movs r6, 0x1 -_080E89E2: - lsls r3, r4, 2 - adds r3, r5, r3 - ldr r1, [r3] - adds r1, 0x3E - ldrb r2, [r1] - mov r0, r12 - ands r0, r2 - strb r0, [r1] - ldr r0, [r3] - strh r6, [r0, 0x30] - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0x1 - bls _080E89E2 -_080E8A00: - ldr r0, _080E8A64 @ =gUnknown_083DB694 - ldr r2, [r0] - ldr r3, _080E8A74 @ =0x00009f9d - adds r1, r2, r3 - movs r0, 0 - ldrsb r0, [r1, r0] - cmp r0, 0 - bge _080E8A14 - movs r0, 0 - strb r0, [r1] -_080E8A14: - movs r4, 0 - adds r6, r2, 0 - adds r6, 0xAC - movs r0, 0x5 - negs r0, r0 - mov r8, r0 -_080E8A20: - lsls r2, r4, 2 - adds r2, r6, r2 - ldr r0, [r2] - mov r1, r9 - strh r1, [r0, 0x20] - ldr r1, [r2] - adds r1, 0x3E - ldrb r0, [r1] - mov r3, r8 - ands r0, r3 - strb r0, [r1] - ldr r0, [r2] - movs r5, 0x1 - strh r5, [r0, 0x30] - ldr r0, [r2] - adds r1, r7, 0 - bl StartSpriteAnim - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0x1 - bls _080E8A20 - ldr r0, _080E8A64 @ =gUnknown_083DB694 - ldr r0, [r0] - ldr r1, _080E8A78 @ =0x00009f9c - adds r0, r1 - strb r5, [r0] - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080E8A64: .4byte gUnknown_083DB694 -_080E8A68: .4byte 0x00009f98 -_080E8A6C: .4byte 0x00009d55 -_080E8A70: .4byte 0x00009d54 -_080E8A74: .4byte 0x00009f9d -_080E8A78: .4byte 0x00009f9c - thumb_func_end sub_80E8958 - - thumb_func_start sub_80E8A7C -sub_80E8A7C: @ 80E8A7C - push {r4-r7,lr} - sub sp, 0x18 - mov r1, sp - ldr r0, _080E8B68 @ =gSpriteTemplate_83DBD18 - ldm r0!, {r2-r4} - stm r1!, {r2-r4} - ldm r0!, {r2-r4} - stm r1!, {r2-r4} - movs r5, 0 -_080E8A8E: - lsls r2, r5, 3 - adds r2, r5 - lsls r2, 19 - movs r0, 0xA8 - lsls r0, 15 - adds r2, r0 - asrs r2, 16 - mov r0, sp - movs r1, 0 - movs r3, 0 - bl CreateSprite - lsls r0, 24 - lsrs r1, r0, 24 - ldr r0, _080E8B6C @ =gUnknown_083DB694 - ldr r2, [r0] - lsls r0, r5, 2 - adds r2, 0xAC - adds r2, r0 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _080E8B70 @ =gSprites - adds r0, r1 - str r0, [r2] - strh r5, [r0, 0x2E] - ldr r3, [r2] - adds r3, 0x3F - movs r0, 0x1 - adds r2, r5, 0 - ands r2, r0 - lsls r2, 1 - ldrb r0, [r3] - movs r4, 0x3 - negs r4, r4 - adds r1, r4, 0 - ands r0, r1 - orrs r0, r2 - strb r0, [r3] - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0x1 - bls _080E8A8E - mov r0, sp - movs r1, 0x3 - strh r1, [r0] - ldr r0, _080E8B74 @ =gSpriteAnimTable_83DBD10 - str r0, [sp, 0x8] - movs r5, 0 - movs r7, 0x3F - movs r6, 0x40 -_080E8AF6: - lsls r4, r5, 2 - adds r1, r4, r5 - lsls r1, 19 - movs r0, 0x8E - lsls r0, 16 - adds r1, r0 - asrs r1, 16 - mov r0, sp - movs r2, 0x58 - movs r3, 0 - bl CreateSprite - lsls r0, 24 - lsrs r1, r0, 24 - ldr r0, _080E8B6C @ =gUnknown_083DB694 - ldr r2, [r0] - adds r2, 0xB4 - adds r2, r4 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _080E8B70 @ =gSprites - adds r0, r1 - str r0, [r2] - strh r5, [r0, 0x2E] - ldr r3, [r2] - ldrb r1, [r3, 0x1] - adds r0, r7, 0 - ands r0, r1 - orrs r0, r6 - strb r0, [r3, 0x1] - ldr r3, [r2] - ldrb r1, [r3, 0x3] - adds r0, r7, 0 - ands r0, r1 - orrs r0, r6 - strb r0, [r3, 0x3] - ldr r0, [r2] - lsls r1, r5, 24 - lsrs r1, 24 - bl StartSpriteAnim - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0x1 - bls _080E8AF6 - movs r0, 0 - bl sub_80E8958 - bl sub_80E88F0 - add sp, 0x18 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080E8B68: .4byte gSpriteTemplate_83DBD18 -_080E8B6C: .4byte gUnknown_083DB694 -_080E8B70: .4byte gSprites -_080E8B74: .4byte gSpriteAnimTable_83DBD10 - thumb_func_end sub_80E8A7C - - thumb_func_start sub_80E8B78 -sub_80E8B78: @ 80E8B78 - push {r4,lr} - adds r3, r0, 0 - ldr r0, _080E8BB0 @ =gUnknown_083DB694 - ldr r1, [r0] - ldr r2, _080E8BB4 @ =0x00009f9c - adds r0, r1, r2 - ldrb r0, [r0] - cmp r0, 0 - beq _080E8BE8 - movs r2, 0x30 - ldrsh r0, [r3, r2] - cmp r0, 0 - beq _080E8BE8 - movs r2, 0x2E - ldrsh r0, [r3, r2] - cmp r0, 0 - bne _080E8BBC - movs r4, 0 - ldr r2, _080E8BB8 @ =0x00009f98 - adds r0, r1, r2 - ldr r0, [r0] - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0 - bne _080E8BD6 - b _080E8BD4 - .align 2, 0 -_080E8BB0: .4byte gUnknown_083DB694 -_080E8BB4: .4byte 0x00009f9c -_080E8BB8: .4byte 0x00009f98 -_080E8BBC: - movs r4, 0 - ldr r2, _080E8BF0 @ =0x00009f98 - adds r0, r1, r2 - ldr r0, [r0] - adds r2, 0x5 - adds r1, r2 - movs r2, 0 - ldrsb r2, [r0, r2] - movs r0, 0 - ldrsb r0, [r1, r0] - cmp r2, r0 - bne _080E8BD6 -_080E8BD4: - movs r4, 0x1 -_080E8BD6: - adds r2, r3, 0 - adds r2, 0x3E - lsls r3, r4, 2 - ldrb r1, [r2] - movs r0, 0x5 - negs r0, r0 - ands r0, r1 - orrs r0, r3 - strb r0, [r2] -_080E8BE8: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080E8BF0: .4byte 0x00009f98 - thumb_func_end sub_80E8B78 - - thumb_func_start sub_80E8BF4 -sub_80E8BF4: @ 80E8BF4 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x14 - lsls r0, 24 - lsrs r3, r0, 24 - lsls r1, 24 - lsrs r2, r1, 24 - ldr r0, _080E8C28 @ =gUnknown_083DBD30 - ldr r1, [r0, 0x4] - ldr r0, [r0] - str r0, [sp, 0x4] - str r1, [sp, 0x8] - ldr r0, _080E8C2C @ =gUnknown_083DBD38 - ldr r1, [r0, 0x4] - ldr r0, [r0] - str r0, [sp, 0xC] - str r1, [sp, 0x10] - cmp r2, 0x2 - beq _080E8C20 - cmp r2, 0x5 - beq _080E8C30 -_080E8C20: - movs r4, 0x40 - movs r5, 0x28 - b _080E8C34 - .align 2, 0 -_080E8C28: .4byte gUnknown_083DBD30 -_080E8C2C: .4byte gUnknown_083DBD38 -_080E8C30: - movs r4, 0x24 - movs r5, 0x30 -_080E8C34: - cmp r3, 0 - beq _080E8C3C - cmp r3, 0x1 - beq _080E8C40 -_080E8C3C: - movs r0, 0x43 - b _080E8C42 -_080E8C40: - movs r0, 0x44 -_080E8C42: - mov r8, r0 - add r0, sp, 0x4 - bl LoadCompressedObjectPic - add r0, sp, 0xC - bl LoadSpritePalette - ldr r0, _080E8CDC @ =gSpriteTemplate_83DBD48 - adds r1, r4, 0 - adds r2, r5, 0 - movs r3, 0x1 - bl CreateSprite - ldr r0, _080E8CE0 @ =gSaveBlock2 - ldrb r0, [r0, 0x8] - movs r1, 0x69 - cmp r0, 0 - bne _080E8C68 - movs r1, 0x64 -_080E8C68: - ldr r7, _080E8CE4 @ =SpriteCallbackDummy - adds r2, r4, 0 - subs r2, 0xC - movs r6, 0 - str r6, [sp] - adds r0, r1, 0 - adds r1, r7, 0 - adds r3, r5, 0 - bl AddPseudoFieldObject - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x40 - beq _080E8C9E - ldr r1, _080E8CE8 @ =gSprites - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r0, r1 - ldrb r2, [r0, 0x5] - movs r1, 0xD - negs r1, r1 - ands r1, r2 - strb r1, [r0, 0x5] - movs r1, 0x3 - bl StartSpriteAnim -_080E8C9E: - adds r2, r4, 0 - adds r2, 0xC - str r6, [sp] - mov r0, r8 - adds r1, r7, 0 - adds r3, r5, 0 - bl AddPseudoFieldObject - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x40 - beq _080E8CD0 - ldr r1, _080E8CE8 @ =gSprites - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r0, r1 - ldrb r2, [r0, 0x5] - movs r1, 0xD - negs r1, r1 - ands r1, r2 - strb r1, [r0, 0x5] - movs r1, 0x2 - bl StartSpriteAnim -_080E8CD0: - add sp, 0x14 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080E8CDC: .4byte gSpriteTemplate_83DBD48 -_080E8CE0: .4byte gSaveBlock2 -_080E8CE4: .4byte SpriteCallbackDummy -_080E8CE8: .4byte gSprites - thumb_func_end sub_80E8BF4 - - thumb_func_start sub_80E8CEC -sub_80E8CEC: @ 80E8CEC - push {lr} - ldr r0, _080E8D24 @ =gUnknown_083DBD60 - bl LoadCompressedObjectPic - ldr r0, _080E8D28 @ =gUnknown_083DBD68 - bl LoadSpritePalette - ldr r0, _080E8D2C @ =gSpriteTemplate_83DBDE4 - movs r1, 0xE0 - movs r2, 0x58 - movs r3, 0 - bl CreateSprite - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x40 - beq _080E8D3C - ldr r0, _080E8D30 @ =gUnknown_083DB694 - ldr r2, [r0] - ldr r0, _080E8D34 @ =0x00009fa0 - adds r2, r0 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _080E8D38 @ =gSprites - adds r0, r1 - str r0, [r2] - b _080E8D48 - .align 2, 0 -_080E8D24: .4byte gUnknown_083DBD60 -_080E8D28: .4byte gUnknown_083DBD68 -_080E8D2C: .4byte gSpriteTemplate_83DBDE4 -_080E8D30: .4byte gUnknown_083DB694 -_080E8D34: .4byte 0x00009fa0 -_080E8D38: .4byte gSprites -_080E8D3C: - ldr r0, _080E8D4C @ =gUnknown_083DB694 - ldr r0, [r0] - ldr r1, _080E8D50 @ =0x00009fa0 - adds r0, r1 - movs r1, 0 - str r1, [r0] -_080E8D48: - pop {r0} - bx r0 - .align 2, 0 -_080E8D4C: .4byte gUnknown_083DB694 -_080E8D50: .4byte 0x00009fa0 - thumb_func_end sub_80E8CEC - - thumb_func_start sub_80E8D54 -sub_80E8D54: @ 80E8D54 - push {lr} - ldr r0, _080E8D78 @ =gUnknown_083DB694 - ldr r2, [r0] - ldr r1, _080E8D7C @ =0x00009fa0 - adds r0, r2, r1 - ldr r1, [r0] - cmp r1, 0 - beq _080E8D88 - adds r0, r2, 0 - adds r0, 0x26 - ldrb r0, [r0] - cmp r0, 0 - bne _080E8D80 - adds r0, r1, 0 - movs r1, 0x1 - bl StartSpriteAnim - b _080E8D88 - .align 2, 0 -_080E8D78: .4byte gUnknown_083DB694 -_080E8D7C: .4byte 0x00009fa0 -_080E8D80: - adds r0, r1, 0 - movs r1, 0x2 - bl StartSpriteAnim -_080E8D88: - pop {r0} - bx r0 - thumb_func_end sub_80E8D54 - - thumb_func_start sub_80E8D8C -sub_80E8D8C: @ 80E8D8C - push {lr} - lsls r0, 24 - lsrs r3, r0, 24 - ldr r0, _080E8DB8 @ =gUnknown_083DB694 - ldr r2, [r0] - ldr r1, _080E8DBC @ =0x00009fa0 - adds r0, r2, r1 - ldr r1, [r0] - cmp r1, 0 - beq _080E8DD2 - cmp r3, 0 - beq _080E8DCA - adds r0, r2, 0 - adds r0, 0x26 - ldrb r0, [r0] - cmp r0, 0 - bne _080E8DC0 - adds r0, r1, 0 - movs r1, 0x3 - bl StartSpriteAnim - b _080E8DD2 - .align 2, 0 -_080E8DB8: .4byte gUnknown_083DB694 -_080E8DBC: .4byte 0x00009fa0 -_080E8DC0: - adds r0, r1, 0 - movs r1, 0x4 - bl StartSpriteAnim - b _080E8DD2 -_080E8DCA: - adds r0, r1, 0 - movs r1, 0x5 - bl StartSpriteAnim -_080E8DD2: - pop {r0} - bx r0 - thumb_func_end sub_80E8D8C - - thumb_func_start sub_80E8DD8 -sub_80E8DD8: @ 80E8DD8 - push {r4-r6,lr} - mov r6, r9 - mov r5, r8 - push {r5,r6} - sub sp, 0x8 - ldr r0, _080E8F2C @ =REG_BG0HOFS - movs r6, 0 - strh r6, [r0] - adds r0, 0x2 - strh r6, [r0] - adds r0, 0x2 - strh r6, [r0] - adds r0, 0x2 - strh r6, [r0] - adds r0, 0x4 - strh r6, [r0] - subs r0, 0x2 - strh r6, [r0] - adds r0, 0x4 - strh r6, [r0] - adds r0, 0x2 - strh r6, [r0] - ldr r1, _080E8F30 @ =REG_BG0CNT - movs r2, 0x8B - lsls r2, 8 - adds r0, r2, 0 - strh r0, [r1] - adds r1, 0x2 - ldr r2, _080E8F34 @ =0x00000d09 - adds r0, r2, 0 - strh r0, [r1] - ldr r0, _080E8F38 @ =gUnknown_08E945D0 - ldr r1, _080E8F3C @ =gUnknown_083DB694 - ldr r1, [r1] - mov r8, r1 - movs r4, 0xE4 - lsls r4, 1 - add r4, r8 - movs r5, 0xA0 - lsls r5, 2 - adds r1, r4, 0 - adds r2, r5, 0 - bl CpuSet - ldr r0, _080E8F40 @ =gUnknown_08E953D0 - movs r1, 0xD9 - lsls r1, 3 - add r1, r8 - bl LZ77UnCompWram - ldr r0, _080E8F44 @ =gMenuWordGroupFrame_Gfx - ldr r1, _080E8F48 @ =0x06008000 - bl LZ77UnCompVram - ldr r1, _080E8F4C @ =0x06006800 - adds r0, r4, 0 - adds r2, r5, 0 - bl CpuSet - ldr r0, _080E8F50 @ =gMenuWordGroupFrame1_Pal - movs r1, 0x40 - movs r2, 0x40 - bl LoadPalette - ldr r1, _080E8F54 @ =REG_BG2CNT - ldr r2, _080E8F58 @ =0x00000e02 - adds r0, r2, 0 - strh r0, [r1] - ldr r1, _080E8F5C @ =0x06007000 - movs r5, 0x80 - lsls r5, 4 - mov r0, sp - strh r6, [r0] - ldr r4, _080E8F60 @ =0x040000d4 - str r0, [r4] - str r1, [r4, 0x4] - lsrs r0, r5, 1 - movs r2, 0x81 - lsls r2, 24 - orrs r0, r2 - str r0, [r4, 0x8] - ldr r0, [r4, 0x8] - ldr r0, _080E8F64 @ =gUnknown_08E9AB00 - ldr r2, _080E8F68 @ =0x06006000 - str r0, [r4] - str r2, [r4, 0x4] - ldr r0, _080E8F6C @ =0x80000020 - str r0, [r4, 0x8] - ldr r0, [r4, 0x8] - ldr r0, _080E8F70 @ =gUnknown_08E9AB60 - bl LZ77UnCompVram - ldr r0, _080E8F74 @ =gUnknown_08E9AB40 - movs r1, 0 - movs r2, 0x20 - bl LoadPalette - ldr r0, _080E8F78 @ =gUnknown_083DBDFC - movs r1, 0x10 - movs r2, 0x20 - bl LoadPalette - ldr r1, _080E8F7C @ =REG_BG3CNT - ldr r2, _080E8F80 @ =0x00000f0f - adds r0, r2, 0 - strh r0, [r1] - ldr r1, _080E8F84 @ =0x06007800 - movs r0, 0 - mov r9, r0 - str r0, [sp, 0x4] - add r0, sp, 0x4 - str r0, [r4] - str r1, [r4, 0x4] - lsrs r5, 2 - movs r0, 0x85 - lsls r0, 24 - orrs r5, r0 - str r5, [r4, 0x8] - ldr r0, [r4, 0x8] - ldr r0, _080E8F88 @ =gUnknown_083DBE40 - movs r1, 0x20 - movs r2, 0x20 - bl LoadPalette - ldr r0, _080E8F8C @ =gPlttBufferUnfaded - adds r1, r0, 0 - adds r1, 0x7E - ldr r3, _080E8F90 @ =0x00007fff - strh r3, [r1] - subs r1, 0x1C - ldr r2, _080E8F94 @ =0x00006f5b - strh r2, [r1] - adds r0, 0x70 - ldr r1, _080E8F98 @ =0x0000739c - strh r1, [r0] - ldr r0, _080E8F9C @ =gPlttBufferFaded - adds r4, r0, 0 - adds r4, 0x7E - strh r3, [r4] - adds r3, r0, 0 - adds r3, 0x62 - strh r2, [r3] - adds r0, 0x70 - strh r1, [r0] - movs r1, 0xBC - add r8, r1 - mov r2, r8 - strb r6, [r2] - bl sub_80E8FA4 - bl sub_80E948C - movs r0, 0xA - bl sub_80E9198 - movs r0, 0 - bl sub_80E91D4 - bl sub_80E95A4 - ldr r0, _080E8FA0 @ =REG_BLDCNT - mov r1, r9 - strh r1, [r0] - add sp, 0x8 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080E8F2C: .4byte REG_BG0HOFS -_080E8F30: .4byte REG_BG0CNT -_080E8F34: .4byte 0x00000d09 -_080E8F38: .4byte gUnknown_08E945D0 -_080E8F3C: .4byte gUnknown_083DB694 -_080E8F40: .4byte gUnknown_08E953D0 -_080E8F44: .4byte gMenuWordGroupFrame_Gfx -_080E8F48: .4byte 0x06008000 -_080E8F4C: .4byte 0x06006800 -_080E8F50: .4byte gMenuWordGroupFrame1_Pal -_080E8F54: .4byte REG_BG2CNT -_080E8F58: .4byte 0x00000e02 -_080E8F5C: .4byte 0x06007000 -_080E8F60: .4byte 0x040000d4 -_080E8F64: .4byte gUnknown_08E9AB00 -_080E8F68: .4byte 0x06006000 -_080E8F6C: .4byte 0x80000020 -_080E8F70: .4byte gUnknown_08E9AB60 -_080E8F74: .4byte gUnknown_08E9AB40 -_080E8F78: .4byte gUnknown_083DBDFC -_080E8F7C: .4byte REG_BG3CNT -_080E8F80: .4byte 0x00000f0f -_080E8F84: .4byte 0x06007800 -_080E8F88: .4byte gUnknown_083DBE40 -_080E8F8C: .4byte gPlttBufferUnfaded -_080E8F90: .4byte 0x00007fff -_080E8F94: .4byte 0x00006f5b -_080E8F98: .4byte 0x0000739c -_080E8F9C: .4byte gPlttBufferFaded -_080E8FA0: .4byte REG_BLDCNT - thumb_func_end sub_80E8DD8 - - thumb_func_start sub_80E8FA4 -sub_80E8FA4: @ 80E8FA4 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x2C - movs r0, 0 - mov r9, r0 - mov r1, sp - adds r1, 0x18 - str r1, [sp, 0x24] - add r2, sp, 0xC - mov r12, r2 -_080E8FBE: - mov r3, r9 - lsls r1, r3, 1 - ldr r4, _080E90F4 @ =0x08e8f136 - adds r0, r1, r4 - ldrh r2, [r0] - movs r0, 0x1F - ands r0, r2 - lsls r0, 8 - str r0, [sp] - ldr r5, _080E90F8 @ =0x08e8f13c - adds r1, r5 - ldrh r1, [r1] - movs r0, 0x1F - ands r0, r1 - lsls r0, 8 - str r0, [sp, 0xC] - lsls r2, 16 - lsrs r0, r2, 21 - movs r3, 0x1F - ands r0, r3 - lsls r0, 8 - str r0, [sp, 0x4] - lsls r1, 16 - lsrs r0, r1, 21 - ands r0, r3 - lsls r0, 8 - mov r4, r12 - str r0, [r4, 0x4] - lsrs r2, 26 - ands r2, r3 - lsls r2, 8 - str r2, [sp, 0x8] - lsrs r1, 26 - ands r1, r3 - lsls r1, 8 - str r1, [r4, 0x8] - movs r3, 0 - mov r5, r9 - lsls r5, 3 - mov r10, r5 - mov r0, r9 - adds r0, 0x1 - str r0, [sp, 0x28] - ldr r4, [sp, 0x24] -_080E9016: - lsls r0, r3, 2 - adds r2, r4, r0 - mov r5, r12 - adds r1, r5, r0 - add r0, sp - ldr r1, [r1] - ldr r0, [r0] - subs r0, r1, r0 - cmp r0, 0 - bge _080E902C - adds r0, 0x7 -_080E902C: - asrs r0, 3 - str r0, [r2] - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, 0x2 - bls _080E9016 - movs r4, 0 - ldr r0, _080E90FC @ =gUnknown_083DB694 - ldr r1, [r0] - mov r0, r10 - add r0, r9 - lsls r0, 1 - mov r8, r0 - movs r5, 0x1F - ldr r6, [sp, 0x24] - ldr r0, _080E9100 @ =0x00009f60 - adds r7, r1, r0 -_080E9050: - lsls r2, r4, 1 - add r2, r8 - adds r2, r7, r2 - ldr r1, [sp, 0x8] - asrs r1, 8 - ands r1, r5 - lsls r1, 10 - ldr r0, [sp, 0x4] - asrs r0, 8 - ands r0, r5 - lsls r0, 5 - orrs r1, r0 - ldr r0, [sp] - asrs r0, 8 - ands r0, r5 - orrs r1, r0 - strh r1, [r2] - movs r3, 0 - adds r4, 0x1 -_080E9076: - lsls r0, r3, 2 - mov r1, sp - adds r2, r1, r0 - adds r0, r6, r0 - ldr r1, [r2] - ldr r0, [r0] - adds r1, r0 - str r1, [r2] - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, 0x2 - bls _080E9076 - lsls r0, r4, 16 - lsrs r4, r0, 16 - cmp r4, 0x7 - bls _080E9050 - ldr r2, _080E90FC @ =gUnknown_083DB694 - ldr r3, [r2] - mov r0, r10 - add r0, r9 - adds r0, r4 - lsls r0, 1 - ldr r4, _080E9100 @ =0x00009f60 - adds r2, r3, r4 - adds r2, r0 - mov r5, r12 - ldr r1, [r5, 0x8] - asrs r1, 8 - movs r0, 0x1F - ands r1, r0 - lsls r1, 10 - ldr r0, [r5, 0x4] - asrs r0, 8 - movs r4, 0x1F - ands r0, r4 - lsls r0, 5 - orrs r1, r0 - ldr r0, [sp, 0xC] - asrs r0, 8 - ands r0, r4 - orrs r1, r0 - strh r1, [r2] - ldr r5, [sp, 0x28] - lsls r0, r5, 16 - lsrs r0, 16 - mov r9, r0 - cmp r0, 0x2 - bhi _080E90DA - b _080E8FBE -_080E90DA: - ldr r0, _080E9104 @ =0x00009f5e - adds r1, r3, r0 - movs r0, 0 - strb r0, [r1] - add sp, 0x2C - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080E90F4: .4byte 0x08e8f136 -_080E90F8: .4byte 0x08e8f13c -_080E90FC: .4byte gUnknown_083DB694 -_080E9100: .4byte 0x00009f60 -_080E9104: .4byte 0x00009f5e - thumb_func_end sub_80E8FA4 - - thumb_func_start sub_80E9108 -sub_80E9108: @ 80E9108 - push {r4-r7,lr} - lsls r0, 24 - ldr r1, _080E9164 @ =gUnknown_083DB694 - ldr r2, [r1] - ldr r3, _080E9168 @ =0x00009f5e - adds r1, r2, r3 - lsrs r0, 24 - ldrb r3, [r1] - adds r0, r3 - strb r0, [r1] - movs r4, 0 - ldr r0, _080E916C @ =gPlttBufferUnfaded - mov r12, r0 - adds r6, r1, 0 - ldr r3, _080E9170 @ =0x00009f60 - adds r5, r2, r3 - ldr r7, _080E9174 @ =gPlttBufferFaded -_080E912A: - adds r2, r4, 0 - adds r2, 0x51 - lsls r2, 1 - mov r0, r12 - adds r3, r2, r0 - ldrb r0, [r6] - lsls r0, 1 - lsls r1, r4, 3 - adds r1, r4 - lsls r1, 1 - adds r0, r1 - adds r0, r5, r0 - ldrh r0, [r0] - strh r0, [r3] - adds r2, r7 - ldrb r0, [r6] - lsls r0, 1 - adds r0, r1 - adds r0, r5, r0 - ldrh r0, [r0] - strh r0, [r2] - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0x2 - bls _080E912A - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080E9164: .4byte gUnknown_083DB694 -_080E9168: .4byte 0x00009f5e -_080E916C: .4byte gPlttBufferUnfaded -_080E9170: .4byte 0x00009f60 -_080E9174: .4byte gPlttBufferFaded - thumb_func_end sub_80E9108 - - thumb_func_start sub_80E9178 -sub_80E9178: @ 80E9178 - push {lr} - ldr r0, _080E9190 @ =gUnknown_083DB694 - ldr r0, [r0] - ldr r1, _080E9194 @ =0x00009f5e - adds r0, r1 - movs r1, 0 - strb r1, [r0] - movs r0, 0 - bl sub_80E9108 - pop {r0} - bx r0 - .align 2, 0 -_080E9190: .4byte gUnknown_083DB694 -_080E9194: .4byte 0x00009f5e - thumb_func_end sub_80E9178 - - thumb_func_start sub_80E9198 -sub_80E9198: @ 80E9198 - ldr r1, _080E91A0 @ =gUnknown_03000740 - strb r0, [r1] - bx lr - .align 2, 0 -_080E91A0: .4byte gUnknown_03000740 - thumb_func_end sub_80E9198 - - thumb_func_start sub_80E91A4 -sub_80E91A4: @ 80E91A4 - ldr r0, _080E91AC @ =gUnknown_03000740 - ldrb r0, [r0] - bx lr - .align 2, 0 -_080E91AC: .4byte gUnknown_03000740 - thumb_func_end sub_80E91A4 - - thumb_func_start sub_80E91B0 -sub_80E91B0: @ 80E91B0 - push {lr} - sub sp, 0x8 - lsls r2, 24 - lsls r1, 27 - lsrs r1, 24 - lsrs r2, 21 - lsls r3, 27 - lsrs r3, 24 - str r3, [sp] - movs r3, 0x1 - str r3, [sp, 0x4] - movs r3, 0xB0 - bl sub_8072AB0 - add sp, 0x8 - pop {r0} - bx r0 - thumb_func_end sub_80E91B0 - - thumb_func_start sub_80E91D4 -sub_80E91D4: @ 80E91D4 - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - adds r4, r0, 0 - ldr r0, _080E91FC @ =gWindowConfig_81E6DA8 - bl BasicInitMenuWindow - cmp r4, 0xA - bne _080E9200 - movs r0, 0x3 - movs r1, 0xE - movs r2, 0x1A - movs r3, 0x13 - bl MenuZeroFillWindowRect - movs r0, 0xA - bl sub_80E9198 - b _080E935C - .align 2, 0 -_080E91FC: .4byte gWindowConfig_81E6DA8 -_080E9200: - bl sub_80E91A4 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xA - bne _080E9218 - movs r0, 0x3 - movs r1, 0xE - movs r2, 0x1A - movs r3, 0x13 - bl MenuDrawTextWindow -_080E9218: - adds r0, r4, 0 - bl sub_80E9198 - cmp r4, 0x9 - bls _080E9224 - b _080E935C -_080E9224: - lsls r0, r4, 2 - ldr r1, _080E9230 @ =_080E9234 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080E9230: .4byte _080E9234 - .align 2, 0 -_080E9234: - .4byte _080E925C - .4byte _080E9284 - .4byte _080E92AC - .4byte _080E92C4 - .4byte _080E92F0 - .4byte _080E9308 - .4byte _080E9310 - .4byte _080E9318 - .4byte _080E933C - .4byte _080E9350 -_080E925C: - ldr r0, _080E9278 @ =gUnknown_083DB694 - ldr r4, [r0] - ldr r1, _080E927C @ =0x00009fac - adds r0, r4, r1 - movs r1, 0x4 - movs r2, 0xF - movs r3, 0x2 - bl sub_80E91B0 - ldr r0, _080E9280 @ =0x00009ff5 - adds r4, r0 - adds r0, r4, 0 - b _080E9326 - .align 2, 0 -_080E9278: .4byte gUnknown_083DB694 -_080E927C: .4byte 0x00009fac -_080E9280: .4byte 0x00009ff5 -_080E9284: - ldr r0, _080E92A0 @ =gUnknown_083DB694 - ldr r4, [r0] - ldr r1, _080E92A4 @ =0x0000a03e - adds r0, r4, r1 - movs r1, 0x4 - movs r2, 0xF - movs r3, 0x2 - bl sub_80E91B0 - ldr r0, _080E92A8 @ =0x0000a087 - adds r4, r0 - adds r0, r4, 0 - b _080E9326 - .align 2, 0 -_080E92A0: .4byte gUnknown_083DB694 -_080E92A4: .4byte 0x0000a03e -_080E92A8: .4byte 0x0000a087 -_080E92AC: - ldr r0, _080E92BC @ =gOtherText_TextDeletedConfirmPage1 - movs r1, 0x4 - movs r2, 0xF - movs r3, 0x2 - bl sub_80E91B0 - ldr r0, _080E92C0 @ =gOtherText_TextDeletedConfirmPage2 - b _080E9326 - .align 2, 0 -_080E92BC: .4byte gOtherText_TextDeletedConfirmPage1 -_080E92C0: .4byte gOtherText_TextDeletedConfirmPage2 -_080E92C4: - ldr r0, _080E92D8 @ =gUnknown_083DB694 - ldr r0, [r0] - ldrb r0, [r0, 0x8] - cmp r0, 0x4 - beq _080E92E0 - cmp r0, 0x9 - bne _080E92E8 - ldr r0, _080E92DC @ =gOtherText_QuitGivingInfo - b _080E933E - .align 2, 0 -_080E92D8: .4byte gUnknown_083DB694 -_080E92DC: .4byte gOtherText_QuitGivingInfo -_080E92E0: - ldr r0, _080E92E4 @ =gOtherText_StopGivingMail - b _080E933E - .align 2, 0 -_080E92E4: .4byte gOtherText_StopGivingMail -_080E92E8: - ldr r0, _080E92EC @ =gOtherText_QuitEditing - b _080E933E - .align 2, 0 -_080E92EC: .4byte gOtherText_QuitEditing -_080E92F0: - ldr r0, _080E9300 @ =gOtherText_EditedTextNoSavePage1 - movs r1, 0x4 - movs r2, 0xF - movs r3, 0x2 - bl sub_80E91B0 - ldr r0, _080E9304 @ =gOtherText_EditedTextNoSavePage2 - b _080E9326 - .align 2, 0 -_080E9300: .4byte gOtherText_EditedTextNoSavePage1 -_080E9304: .4byte gOtherText_EditedTextNoSavePage2 -_080E9308: - ldr r0, _080E930C @ =gOtherText_EnterAPhraseOrWord - b _080E933E - .align 2, 0 -_080E930C: .4byte gOtherText_EnterAPhraseOrWord -_080E9310: - ldr r0, _080E9314 @ =gOtherText_TextNoDelete - b _080E933E - .align 2, 0 -_080E9314: .4byte gOtherText_TextNoDelete -_080E9318: - ldr r0, _080E9334 @ =gOtherText_OnlyOnePhrase - movs r1, 0x4 - movs r2, 0xF - movs r3, 0x2 - bl sub_80E91B0 - ldr r0, _080E9338 @ =gOtherText_OriginalSongRestored -_080E9326: - movs r1, 0x4 - movs r2, 0x11 - movs r3, 0x2 - bl sub_80E91B0 - b _080E935C - .align 2, 0 -_080E9334: .4byte gOtherText_OnlyOnePhrase -_080E9338: .4byte gOtherText_OriginalSongRestored -_080E933C: - ldr r0, _080E934C @ =gOtherText_TrendyAlready -_080E933E: - movs r1, 0x4 - movs r2, 0xF - movs r3, 0x4 - bl sub_80E91B0 - b _080E935C - .align 2, 0 -_080E934C: .4byte gOtherText_TrendyAlready -_080E9350: - ldr r0, _080E9364 @ =gOtherText_CombineTwoPhrases - movs r1, 0x4 - movs r2, 0xF - movs r3, 0x4 - bl sub_80E91B0 -_080E935C: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080E9364: .4byte gOtherText_CombineTwoPhrases - thumb_func_end sub_80E91D4 - - thumb_func_start sub_80E9368 -sub_80E9368: @ 80E9368 - push {r4,r5,lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xD - bhi _080E93F8 - lsls r0, 2 - ldr r1, _080E937C @ =_080E9380 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080E937C: .4byte _080E9380 - .align 2, 0 -_080E9380: - .4byte _080E93B8 - .4byte _080E93C0 - .4byte _080E93C8 - .4byte _080E93D0 - .4byte _080E93F8 - .4byte _080E93E8 - .4byte _080E93D8 - .4byte _080E93E8 - .4byte _080E93E8 - .4byte _080E93E0 - .4byte _080E93E8 - .4byte _080E93E8 - .4byte _080E93E8 - .4byte _080E93F0 -_080E93B8: - ldr r4, _080E93BC @ =gOtherText_Profile - b _080E93FA - .align 2, 0 -_080E93BC: .4byte gOtherText_Profile -_080E93C0: - ldr r4, _080E93C4 @ =gOtherText_AtBattleStart - b _080E93FA - .align 2, 0 -_080E93C4: .4byte gOtherText_AtBattleStart -_080E93C8: - ldr r4, _080E93CC @ =gOtherText_UponWinningBattle - b _080E93FA - .align 2, 0 -_080E93CC: .4byte gOtherText_UponWinningBattle -_080E93D0: - ldr r4, _080E93D4 @ =gOtherText_UponLosingBattle - b _080E93FA - .align 2, 0 -_080E93D4: .4byte gOtherText_UponLosingBattle -_080E93D8: - ldr r4, _080E93DC @ =gOtherText_TheBardsSong - b _080E93FA - .align 2, 0 -_080E93DC: .4byte gOtherText_TheBardsSong -_080E93E0: - ldr r4, _080E93E4 @ =gOtherText_WhatsHipHappening - b _080E93FA - .align 2, 0 -_080E93E4: .4byte gOtherText_WhatsHipHappening -_080E93E8: - ldr r4, _080E93EC @ =gOtherText_Interview - b _080E93FA - .align 2, 0 -_080E93EC: .4byte gOtherText_Interview -_080E93F0: - ldr r4, _080E93F4 @ =gOtherText_GoodSaying - b _080E93FA - .align 2, 0 -_080E93F4: .4byte gOtherText_GoodSaying -_080E93F8: - movs r4, 0 -_080E93FA: - ldr r0, _080E943C @ =gWindowConfig_81E6D8C - bl BasicInitMenuWindow - ldr r0, _080E9440 @ =gUnknown_083DB694 - ldr r2, [r0] - ldr r0, _080E9444 @ =0x0000a2ba - adds r5, r2, r0 - movs r3, 0xFC - strb r3, [r5] - adds r0, 0x1 - adds r1, r2, r0 - movs r0, 0x5 - strb r0, [r1] - ldr r0, _080E9448 @ =0x0000a2bc - adds r1, r2, r0 - movs r0, 0x1 - strb r0, [r1] - cmp r4, 0 - beq _080E9450 - ldr r1, _080E944C @ =0x0000a2bd - adds r0, r2, r1 - adds r1, r4, 0 - movs r2, 0xF0 - movs r3, 0x2 - bl sub_8072C74 - adds r0, r5, 0 - movs r1, 0 - movs r2, 0 - bl MenuPrint - b _080E9476 - .align 2, 0 -_080E943C: .4byte gWindowConfig_81E6D8C -_080E9440: .4byte gUnknown_083DB694 -_080E9444: .4byte 0x0000a2ba -_080E9448: .4byte 0x0000a2bc -_080E944C: .4byte 0x0000a2bd -_080E9450: - ldr r0, _080E9484 @ =0x0000a2bd - adds r1, r2, r0 - strb r3, [r1] - movs r0, 0x11 - strb r0, [r1, 0x1] - movs r0, 0x10 - strb r0, [r1, 0x2] - movs r0, 0xFF - strb r0, [r1, 0x3] - adds r0, r5, 0 - movs r1, 0 - movs r2, 0 - bl MenuPrint - adds r0, r5, 0 - movs r1, 0x1C - movs r2, 0 - bl MenuPrint -_080E9476: - ldr r0, _080E9488 @ =gWindowConfig_81E6DA8 - bl BasicInitMenuWindow - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080E9484: .4byte 0x0000a2bd -_080E9488: .4byte gWindowConfig_81E6DA8 - thumb_func_end sub_80E9368 - - thumb_func_start sub_80E948C -sub_80E948C: @ 80E948C - push {lr} - sub sp, 0x10 - ldr r0, _080E94A8 @ =gUnknown_083DB694 - ldr r0, [r0] - ldrb r0, [r0, 0x9] - cmp r0, 0x5 - bls _080E949C - b _080E9594 -_080E949C: - lsls r0, 2 - ldr r1, _080E94AC @ =_080E94B0 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080E94A8: .4byte gUnknown_083DB694 -_080E94AC: .4byte _080E94B0 - .align 2, 0 -_080E94B0: - .4byte _080E9508 - .4byte _080E9530 - .4byte _080E9554 - .4byte _080E9578 - .4byte _080E94C8 - .4byte _080E94E8 -_080E94C8: - ldr r0, _080E94E0 @ =0x06006800 - ldr r3, _080E94E4 @ =gUnknown_08E94AD0 - movs r1, 0 - str r1, [sp] - movs r1, 0x1A - str r1, [sp, 0x4] - movs r1, 0x18 - str r1, [sp, 0x8] - movs r1, 0x6 - str r1, [sp, 0xC] - movs r1, 0x3 - b _080E9568 - .align 2, 0 -_080E94E0: .4byte 0x06006800 -_080E94E4: .4byte gUnknown_08E94AD0 -_080E94E8: - ldr r0, _080E9500 @ =0x06006800 - ldr r3, _080E9504 @ =gUnknown_08E94AD0 - movs r1, 0 - str r1, [sp] - movs r1, 0x12 - str r1, [sp, 0x4] - movs r1, 0xD - str r1, [sp, 0x8] - movs r1, 0x8 - str r1, [sp, 0xC] - movs r1, 0xE - b _080E951E - .align 2, 0 -_080E9500: .4byte 0x06006800 -_080E9504: .4byte gUnknown_08E94AD0 -_080E9508: - ldr r0, _080E9528 @ =0x06006800 - ldr r3, _080E952C @ =gUnknown_08E94AD0 - movs r1, 0 - str r1, [sp] - movs r1, 0xA - str r1, [sp, 0x4] - movs r1, 0x1A - str r1, [sp, 0x8] - movs r1, 0x8 - str r1, [sp, 0xC] - movs r1, 0x2 -_080E951E: - movs r2, 0x2 - bl sub_809D104 - b _080E9594 - .align 2, 0 -_080E9528: .4byte 0x06006800 -_080E952C: .4byte gUnknown_08E94AD0 -_080E9530: - ldr r0, _080E954C @ =0x06006800 - ldr r3, _080E9550 @ =gUnknown_08E94AD0 - movs r1, 0 - str r1, [sp] - str r1, [sp, 0x4] - movs r1, 0x1A - str r1, [sp, 0x8] - movs r1, 0xA - str r1, [sp, 0xC] - movs r1, 0x2 - movs r2, 0 - bl sub_809D104 - b _080E9594 - .align 2, 0 -_080E954C: .4byte 0x06006800 -_080E9550: .4byte gUnknown_08E94AD0 -_080E9554: - ldr r0, _080E9570 @ =0x06006800 - ldr r3, _080E9574 @ =gUnknown_08E94AD0 - movs r2, 0xD - str r2, [sp] - movs r1, 0x12 - str r1, [sp, 0x4] - str r2, [sp, 0x8] - movs r1, 0x4 - str r1, [sp, 0xC] - movs r1, 0xE -_080E9568: - movs r2, 0x3 - bl sub_809D104 - b _080E9594 - .align 2, 0 -_080E9570: .4byte 0x06006800 -_080E9574: .4byte gUnknown_08E94AD0 -_080E9578: - ldr r0, _080E959C @ =0x06006800 - ldr r3, _080E95A0 @ =gUnknown_08E94AD0 - movs r1, 0 - str r1, [sp] - movs r1, 0x20 - str r1, [sp, 0x4] - movs r1, 0x18 - str r1, [sp, 0x8] - movs r1, 0x4 - str r1, [sp, 0xC] - movs r1, 0x3 - movs r2, 0x2 - bl sub_809D104 -_080E9594: - add sp, 0x10 - pop {r0} - bx r0 - .align 2, 0 -_080E959C: .4byte 0x06006800 -_080E95A0: .4byte gUnknown_08E94AD0 - thumb_func_end sub_80E948C - - thumb_func_start sub_80E95A4 -sub_80E95A4: @ 80E95A4 - push {lr} - ldr r0, _080E95C0 @ =gWindowConfig_81E6D8C - bl BasicInitMenuWindow - ldr r0, _080E95C4 @ =gUnknown_083DB694 - ldr r0, [r0] - ldrb r0, [r0, 0x9] - cmp r0, 0x5 - bhi _080E9612 - lsls r0, 2 - ldr r1, _080E95C8 @ =_080E95CC - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080E95C0: .4byte gWindowConfig_81E6D8C -_080E95C4: .4byte gUnknown_083DB694 -_080E95C8: .4byte _080E95CC - .align 2, 0 -_080E95CC: - .4byte _080E95F2 - .4byte _080E95F6 - .4byte _080E9600 - .4byte _080E960A - .4byte _080E95E4 - .4byte _080E95EE -_080E95E4: - movs r0, 0x4 - movs r1, 0x6 - bl sub_80E9620 - b _080E9612 -_080E95EE: - movs r0, 0x2 - b _080E9602 -_080E95F2: - movs r0, 0x3 - b _080E95F8 -_080E95F6: - movs r0, 0 -_080E95F8: - movs r1, 0x5 - bl sub_80E9620 - b _080E9612 -_080E9600: - movs r0, 0x4 -_080E9602: - movs r1, 0x11 - bl sub_80E9620 - b _080E9612 -_080E960A: - movs r0, 0x3 - movs r1, 0x6 - bl sub_80E9620 -_080E9612: - ldr r0, _080E961C @ =gWindowConfig_81E6DA8 - bl BasicInitMenuWindow - pop {r0} - bx r0 - .align 2, 0 -_080E961C: .4byte gWindowConfig_81E6DA8 - thumb_func_end sub_80E95A4 - - thumb_func_start sub_80E9620 -sub_80E9620: @ 80E9620 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x20 - lsls r0, 16 - lsls r1, 16 - lsrs r1, 16 - str r1, [sp, 0x14] - movs r1, 0 - mov r10, r1 - lsrs r7, r0, 16 - mov r9, r1 - ldr r0, _080E9644 @ =gUnknown_083DB694 - ldr r0, [r0] - b _080E971A - .align 2, 0 -_080E9644: .4byte gUnknown_083DB694 -_080E9648: - ldr r6, [sp, 0x14] - movs r2, 0 - mov r8, r2 - adds r0, r7, 0x2 - str r0, [sp, 0x1C] - mov r1, r9 - adds r1, 0x1 - str r1, [sp, 0x18] - b _080E96E4 -_080E965A: - mov r2, r10 - lsls r0, r2, 1 - adds r1, r5, 0 - adds r1, 0xC - adds r1, r0 - ldrh r0, [r1] - ldr r2, _080E9690 @ =0x0000ffff - cmp r0, r2 - bne _080E969C - movs r0, 0 - str r0, [sp] - str r0, [sp, 0x4] - movs r1, 0x9 - str r1, [sp, 0x8] - movs r0, 0x2 - str r0, [sp, 0xC] - str r1, [sp, 0x10] - ldr r0, _080E9694 @ =0x06007000 - adds r1, r6, 0 - adds r2, r7, 0 - ldr r3, _080E9698 @ =gUnknown_083DBE1C - bl sub_8095C8C - adds r0, r6, 0 - adds r0, 0xB - b _080E96CC - .align 2, 0 -_080E9690: .4byte 0x0000ffff -_080E9694: .4byte 0x06007000 -_080E9698: .4byte gUnknown_083DBE1C -_080E969C: - ldr r0, _080E9738 @ =0x0000a140 - adds r4, r5, r0 - ldrh r1, [r1] - adds r0, r4, 0 - movs r2, 0xB - bl sub_80EB218 - lsls r1, r6, 24 - lsrs r1, 24 - lsls r2, r7, 24 - lsrs r2, 24 - adds r0, r4, 0 - bl MenuPrint - mov r1, r9 - lsls r0, r1, 1 - add r0, r8 - adds r1, r5, 0 - adds r1, 0x8C - adds r1, r0 - adds r0, r6, 0 - adds r0, 0xB - ldrb r1, [r1] - adds r0, r1 -_080E96CC: - lsls r0, 16 - lsrs r6, r0, 16 - mov r0, r10 - adds r0, 0x1 - lsls r0, 16 - lsrs r0, 16 - mov r10, r0 - mov r0, r8 - adds r0, 0x1 - lsls r0, 16 - lsrs r0, 16 - mov r8, r0 -_080E96E4: - ldr r0, _080E973C @ =gUnknown_083DB694 - ldr r5, [r0] - adds r0, r5, 0 - adds r0, 0x83 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r8, r0 - bge _080E970A - ldrb r2, [r5, 0xA] - cmp r10, r2 - bcc _080E965A - lsls r1, r6, 24 - lsrs r1, 24 - lsls r2, r7, 24 - lsrs r2, 24 - ldr r0, _080E9740 @ =gUnknown_083DBEA8 - bl MenuPrint -_080E970A: - ldr r1, [sp, 0x1C] - lsls r0, r1, 16 - lsrs r7, r0, 16 - ldr r2, [sp, 0x18] - lsls r0, r2, 16 - lsrs r0, 16 - mov r9, r0 - adds r0, r5, 0 -_080E971A: - adds r0, 0x84 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r9, r0 - blt _080E9648 - add sp, 0x20 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080E9738: .4byte 0x0000a140 -_080E973C: .4byte gUnknown_083DB694 -_080E9740: .4byte gUnknown_083DBEA8 - thumb_func_end sub_80E9620 - - thumb_func_start sub_80E9744 -sub_80E9744: @ 80E9744 - push {lr} - ldr r0, _080E9760 @ =gWindowConfig_81E6D8C - bl BasicInitMenuWindow - ldr r0, _080E9764 @ =gUnknown_083DB694 - ldr r0, [r0] - ldrb r0, [r0, 0x9] - cmp r0, 0x5 - bhi _080E97B2 - lsls r0, 2 - ldr r1, _080E9768 @ =_080E976C - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080E9760: .4byte gWindowConfig_81E6D8C -_080E9764: .4byte gUnknown_083DB694 -_080E9768: .4byte _080E976C - .align 2, 0 -_080E976C: - .4byte _080E9792 - .4byte _080E9796 - .4byte _080E97A0 - .4byte _080E97AA - .4byte _080E9784 - .4byte _080E978E -_080E9784: - movs r0, 0x4 - movs r1, 0x6 - bl sub_80E97C0 - b _080E97B2 -_080E978E: - movs r0, 0x2 - b _080E97A2 -_080E9792: - movs r0, 0x3 - b _080E9798 -_080E9796: - movs r0, 0 -_080E9798: - movs r1, 0x5 - bl sub_80E97C0 - b _080E97B2 -_080E97A0: - movs r0, 0x4 -_080E97A2: - movs r1, 0x11 - bl sub_80E97C0 - b _080E97B2 -_080E97AA: - movs r0, 0x3 - movs r1, 0x6 - bl sub_80E97C0 -_080E97B2: - ldr r0, _080E97BC @ =gWindowConfig_81E6DA8 - bl BasicInitMenuWindow - pop {r0} - bx r0 - .align 2, 0 -_080E97BC: .4byte gWindowConfig_81E6DA8 - thumb_func_end sub_80E9744 - - thumb_func_start sub_80E97C0 -sub_80E97C0: @ 80E97C0 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x8 - lsls r0, 16 - lsrs r5, r0, 16 - lsls r1, 16 - lsrs r1, 16 - str r1, [sp] - movs r7, 0 - movs r3, 0 - ldr r1, _080E98B8 @ =gUnknown_083DB694 - ldr r0, [r1] - adds r0, 0x84 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r3, r0 - bge _080E98A6 -_080E97EA: - ldr r1, [r1] - ldr r0, _080E98BC @ =0x0000a19a - adds r2, r1, r0 - movs r6, 0 - adds r0, r1, 0 - adds r0, 0x83 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - ldr r4, [sp] - lsls r4, 24 - mov r8, r4 - lsls r4, r5, 24 - mov r9, r4 - adds r5, 0x2 - mov r10, r5 - adds r3, 0x1 - str r3, [sp, 0x4] - cmp r6, r0 - bge _080E985E - ldrb r1, [r1, 0xA] - cmp r7, r1 - bcs _080E985E - ldr r0, _080E98B8 @ =gUnknown_083DB694 - ldr r4, [r0] - ldr r5, _080E98C0 @ =0x0000ffff -_080E981E: - lsls r0, r7, 1 - adds r1, r4, 0 - adds r1, 0xC - adds r1, r0 - ldrh r0, [r1] - cmp r0, r5 - beq _080E983E - adds r1, r0, 0 - adds r0, r2, 0 - movs r2, 0 - bl sub_80EB218 - adds r2, r0, 0 - movs r0, 0 - strb r0, [r2] - adds r2, 0x1 -_080E983E: - adds r0, r7, 0x1 - lsls r0, 24 - lsrs r7, r0, 24 - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 - adds r0, r4, 0 - adds r0, 0x83 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r6, r0 - bge _080E985E - ldrb r0, [r4, 0xA] - cmp r7, r0 - bcc _080E981E -_080E985E: - ldr r1, _080E98B8 @ =gUnknown_083DB694 - ldr r4, [r1] - adds r0, r4, 0 - adds r0, 0x83 - movs r1, 0 - ldrsb r1, [r0, r1] - movs r0, 0xB - muls r1, r0 - movs r0, 0xFC - strb r0, [r2] - movs r0, 0x13 - strb r0, [r2, 0x1] - lsls r1, 3 - strb r1, [r2, 0x2] - movs r0, 0xFF - strb r0, [r2, 0x3] - ldr r2, _080E98BC @ =0x0000a19a - adds r0, r4, r2 - mov r3, r8 - lsrs r1, r3, 24 - mov r3, r9 - lsrs r2, r3, 24 - bl MenuPrint - mov r1, r10 - lsls r0, r1, 16 - lsrs r5, r0, 16 - ldr r2, [sp, 0x4] - lsls r0, r2, 24 - lsrs r3, r0, 24 - ldr r1, _080E98B8 @ =gUnknown_083DB694 - adds r4, 0x84 - movs r0, 0 - ldrsb r0, [r4, r0] - cmp r3, r0 - blt _080E97EA -_080E98A6: - add sp, 0x8 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080E98B8: .4byte gUnknown_083DB694 -_080E98BC: .4byte 0x0000a19a -_080E98C0: .4byte 0x0000ffff - thumb_func_end sub_80E97C0 - - thumb_func_start sub_80E98C4 -sub_80E98C4: @ 80E98C4 - push {lr} - ldr r0, _080E98E0 @ =gWindowConfig_81E6D8C - bl BasicInitMenuWindow - ldr r0, _080E98E4 @ =gUnknown_083DB694 - ldr r0, [r0] - ldrb r0, [r0, 0x9] - cmp r0, 0x5 - bhi _080E9936 - lsls r0, 2 - ldr r1, _080E98E8 @ =_080E98EC - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080E98E0: .4byte gWindowConfig_81E6D8C -_080E98E4: .4byte gUnknown_083DB694 -_080E98E8: .4byte _080E98EC - .align 2, 0 -_080E98EC: - .4byte _080E990A - .4byte _080E9910 - .4byte _080E9916 - .4byte _080E991A - .4byte _080E9904 - .4byte _080E990A -_080E9904: - movs r1, 0x4 - movs r3, 0x2 - b _080E991E -_080E990A: - movs r1, 0x3 - movs r3, 0x2 - b _080E991E -_080E9910: - movs r1, 0x1 - movs r3, 0x3 - b _080E991E -_080E9916: - movs r1, 0x4 - b _080E991C -_080E991A: - movs r1, 0x3 -_080E991C: - movs r3, 0x1 -_080E991E: - lsls r3, 1 - adds r3, r1, r3 - subs r3, 0x1 - lsls r3, 24 - lsrs r3, 24 - movs r0, 0x2 - movs r2, 0x1B - bl MenuFillWindowRectWithBlankTile - ldr r0, _080E993C @ =gWindowConfig_81E6DA8 - bl BasicInitMenuWindow -_080E9936: - pop {r0} - bx r0 - .align 2, 0 -_080E993C: .4byte gWindowConfig_81E6DA8 - thumb_func_end sub_80E98C4 - - thumb_func_start sub_80E9940 -sub_80E9940: @ 80E9940 - push {r4-r6,lr} - adds r6, r0, 0 - lsls r5, r1, 24 - lsrs r5, 24 - movs r4, 0x7 - ands r4, r5 - lsls r3, r4, 1 - adds r1, r3, 0 - adds r3, 0x1 - movs r0, 0x2 - movs r2, 0x1F - bl MenuFillWindowRectWithBlankTile - adds r0, r6, 0 - adds r1, r5, 0 - bl sub_80E9A7C - lsls r4, 1 - adds r0, r6, 0 - movs r1, 0x2 - adds r2, r4, 0 - bl sub_80E9A60 - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_80E9940 - - thumb_func_start sub_80E9974 -sub_80E9974: @ 80E9974 - push {r4-r6,lr} - ldr r0, _080E99C4 @ =gWindowConfig_81E6D54 - bl BasicInitMenuWindow - ldr r0, _080E99C8 @ =gUnknown_083DB694 - ldr r2, [r0] - adds r0, r2, 0 - adds r0, 0x26 - ldrb r0, [r0] - cmp r0, 0 - bne _080E99D4 - ldr r1, _080E99CC @ =0x000001b5 - adds r0, r2, r1 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - lsls r1, r0, 16 - lsrs r4, r1, 16 - adds r0, 0x4 - cmp r4, r0 - bge _080E9A02 - adds r5, r2, 0 - ldr r2, _080E99CC @ =0x000001b5 - adds r6, r5, r2 -_080E99A4: - lsls r1, r4, 24 - lsrs r1, 24 - ldr r2, _080E99D0 @ =0x0000a0f5 - adds r0, r5, r2 - bl sub_80E9940 - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - movs r0, 0 - ldrsb r0, [r6, r0] - adds r0, 0x4 - cmp r4, r0 - blt _080E99A4 - b _080E9A02 - .align 2, 0 -_080E99C4: .4byte gWindowConfig_81E6D54 -_080E99C8: .4byte gUnknown_083DB694 -_080E99CC: .4byte 0x000001b5 -_080E99D0: .4byte 0x0000a0f5 -_080E99D4: - bl sub_80E9AD4 - ldr r4, _080E9A08 @ =gUnknown_083DBEAC - ldr r0, [r4] - movs r1, 0x2 - movs r2, 0 - bl sub_80E9A60 - ldr r0, [r4, 0x4] - movs r1, 0x2 - movs r2, 0x2 - bl sub_80E9A60 - ldr r0, [r4, 0x8] - movs r1, 0x2 - movs r2, 0x4 - bl sub_80E9A60 - ldr r0, [r4, 0xC] - movs r1, 0x2 - movs r2, 0x6 - bl sub_80E9A60 -_080E9A02: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080E9A08: .4byte gUnknown_083DBEAC - thumb_func_end sub_80E9974 - - thumb_func_start sub_80E9A14 -sub_80E9A14: @ 80E9A14 - push {lr} - bl sub_80E9A4C - ldr r0, _080E9A44 @ =gUnknown_083DB694 - ldr r1, [r0] - adds r0, r1, 0 - adds r0, 0x26 - ldrb r0, [r0] - cmp r0, 0 - bne _080E9A40 - movs r0, 0xDD - lsls r0, 1 - adds r2, r1, r0 - ldr r3, _080E9A48 @ =0x000001b5 - adds r0, r1, r3 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - lsls r0, 4 - ldrh r1, [r2] - adds r0, r1 - strh r0, [r2] -_080E9A40: - pop {r0} - bx r0 - .align 2, 0 -_080E9A44: .4byte gUnknown_083DB694 -_080E9A48: .4byte 0x000001b5 - thumb_func_end sub_80E9A14 - - thumb_func_start sub_80E9A4C -sub_80E9A4C: @ 80E9A4C - ldr r0, _080E9A5C @ =gUnknown_083DB694 - ldr r0, [r0] - movs r2, 0xDD - lsls r2, 1 - adds r1, r0, r2 - movs r0, 0 - strh r0, [r1] - bx lr - .align 2, 0 -_080E9A5C: .4byte gUnknown_083DB694 - thumb_func_end sub_80E9A4C - - thumb_func_start sub_80E9A60 -sub_80E9A60: @ 80E9A60 - push {lr} - lsls r2, 16 - movs r3, 0xF0 - lsls r3, 12 - ands r3, r2 - lsls r1, 24 - lsrs r1, 24 - lsrs r3, 16 - adds r2, r3, 0 - bl MenuPrint - pop {r0} - bx r0 - thumb_func_end sub_80E9A60 - - thumb_func_start sub_80E9A7C -sub_80E9A7C: @ 80E9A7C - push {r4-r7,lr} - adds r2, r0, 0 - lsls r1, 16 - lsrs r7, r1, 16 - lsls r0, r7, 17 - lsrs r5, r0, 16 - movs r4, 0 - ldr r0, _080E9AD0 @ =gUnknown_083DB694 - ldr r6, [r0] -_080E9A8E: - movs r0, 0xFC - strb r0, [r2] - movs r0, 0x12 - strb r0, [r2, 0x1] - movs r0, 0x58 - muls r0, r4 - strb r0, [r2, 0x2] - adds r2, 0x3 - lsls r1, r7, 1 - adds r1, r4, r1 - adds r0, r6, 0 - adds r0, 0x2A - adds r0, r1 - ldrb r1, [r0] - adds r0, r2, 0 - movs r2, 0xB - bl sub_80EAD64 - adds r2, r0, 0 - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - ldrh r0, [r6, 0x28] - cmp r5, r0 - bcs _080E9ACA - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0x1 - bls _080E9A8E -_080E9ACA: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080E9AD0: .4byte gUnknown_083DB694 - thumb_func_end sub_80E9A7C - - thumb_func_start sub_80E9AD4 -sub_80E9AD4: @ 80E9AD4 - push {r4,lr} - ldr r0, _080E9AF4 @ =gWindowConfig_81E6D54 - bl BasicInitMenuWindow - movs r4, 0 -_080E9ADE: - adds r0, r4, 0 - bl sub_80E9C74 - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0xF - bls _080E9ADE - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080E9AF4: .4byte gWindowConfig_81E6D54 - thumb_func_end sub_80E9AD4 - - thumb_func_start sub_80E9AF8 -sub_80E9AF8: @ 80E9AF8 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - lsls r0, 16 - lsrs r7, r0, 16 - adds r0, r7, 0 - bl sub_80E9C74 - ldr r4, _080E9B7C @ =gUnknown_083DB694 - ldr r5, [r4] - ldr r0, _080E9B80 @ =0x0000a140 - adds r0, r5 - mov r8, r0 - movs r0, 0xFC - mov r1, r8 - strb r0, [r1] - movs r0, 0x11 - strb r0, [r1, 0x1] - movs r0, 0x10 - strb r0, [r1, 0x2] - ldr r2, _080E9B84 @ =0x0000a143 - adds r2, r5 - mov r8, r2 - adds r0, r5, 0 - adds r0, 0x7D - ldrb r0, [r0] - cmp r0, 0 - beq _080E9BF4 - movs r6, 0 - ldr r3, _080E9B88 @ =0x00009cd2 - adds r0, r5, r3 - adds r0, r7 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r6, r0 - blt _080E9B4A - b _080E9C52 -_080E9B4A: - lsls r0, r7, 2 - mov r9, r0 - ldr r1, _080E9B8C @ =0x00009d56 - adds r1, r5, r1 - str r1, [sp] - lsls r2, r7, 17 - mov r10, r2 -_080E9B58: - lsls r4, r6, 1 - mov r3, r9 - adds r0, r4, r3 - ldr r1, [sp] - adds r0, r1, r0 - ldrh r0, [r0] - bl sub_80EB2D4 - lsls r0, 16 - lsrs r0, 16 - adds r5, r4, 0 - cmp r0, 0x7 - bne _080E9B94 - ldr r0, _080E9B90 @ =gWindowConfig_81E6D70 - bl BasicInitMenuWindow - b _080E9B9A - .align 2, 0 -_080E9B7C: .4byte gUnknown_083DB694 -_080E9B80: .4byte 0x0000a140 -_080E9B84: .4byte 0x0000a143 -_080E9B88: .4byte 0x00009cd2 -_080E9B8C: .4byte 0x00009d56 -_080E9B90: .4byte gWindowConfig_81E6D70 -_080E9B94: - ldr r0, _080E9BE0 @ =gWindowConfig_81E6D54 - bl BasicInitMenuWindow -_080E9B9A: - ldr r2, _080E9BE4 @ =gUnknown_083DB694 - ldr r4, [r2] - mov r3, r9 - adds r1, r5, r3 - ldr r2, _080E9BE8 @ =0x00009d56 - adds r0, r4, r2 - adds r0, r1 - ldrh r1, [r0] - mov r0, r8 - movs r2, 0x9 - bl sub_80EB218 - ldr r3, _080E9BEC @ =0x0000a140 - adds r0, r4, r3 - movs r1, 0xB - muls r1, r6 - adds r1, 0x4 - lsls r1, 16 - lsrs r1, 16 - mov r3, r10 - lsrs r2, r3, 16 - bl sub_80E9A60 - adds r0, r6, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 - ldr r0, _080E9BF0 @ =0x00009cd2 - adds r4, r0 - adds r4, r7 - movs r0, 0 - ldrsb r0, [r4, r0] - cmp r6, r0 - blt _080E9B58 - b _080E9C52 - .align 2, 0 -_080E9BE0: .4byte gWindowConfig_81E6D54 -_080E9BE4: .4byte gUnknown_083DB694 -_080E9BE8: .4byte 0x00009d56 -_080E9BEC: .4byte 0x0000a140 -_080E9BF0: .4byte 0x00009cd2 -_080E9BF4: - ldr r0, _080E9C64 @ =gWindowConfig_81E6D54 - bl BasicInitMenuWindow - movs r6, 0 - ldr r1, _080E9C68 @ =0x00009cd2 - adds r0, r5, r1 - adds r0, r7 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r6, r0 - bge _080E9C52 - adds r4, r5, 0 - adds r0, r4, r1 - adds r0, r7 - mov r9, r0 - lsls r5, r7, 17 -_080E9C16: - lsls r1, r6, 1 - lsls r0, r7, 2 - adds r1, r0 - ldr r2, _080E9C6C @ =0x00009d56 - adds r0, r4, r2 - adds r0, r1 - ldrh r1, [r0] - mov r0, r8 - movs r2, 0x9 - bl sub_80EB218 - movs r0, 0xB - adds r1, r6, 0 - muls r1, r0 - adds r1, 0x4 - lsls r1, 16 - lsrs r1, 16 - ldr r3, _080E9C70 @ =0x0000a140 - adds r0, r4, r3 - lsrs r2, r5, 16 - bl sub_80E9A60 - adds r0, r6, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 - mov r1, r9 - movs r0, 0 - ldrsb r0, [r1, r0] - cmp r6, r0 - blt _080E9C16 -_080E9C52: - add sp, 0x4 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080E9C64: .4byte gWindowConfig_81E6D54 -_080E9C68: .4byte 0x00009cd2 -_080E9C6C: .4byte 0x00009d56 -_080E9C70: .4byte 0x0000a140 - thumb_func_end sub_80E9AF8 - - thumb_func_start sub_80E9C74 -sub_80E9C74: @ 80E9C74 - push {lr} - lsls r0, 16 - movs r1, 0xE0 - lsls r1, 11 - ands r1, r0 - lsrs r1, 16 - lsls r3, r1, 1 - adds r1, r3, 0 - adds r3, 0x1 - movs r0, 0 - movs r2, 0x1D - bl MenuFillWindowRectWithBlankTile - pop {r0} - bx r0 - thumb_func_end sub_80E9C74 - - thumb_func_start sub_80E9C94 -sub_80E9C94: @ 80E9C94 - push {r4-r6,lr} - ldr r0, _080E9CAC @ =gUnknown_083DB694 - ldr r0, [r0] - ldr r2, _080E9CB0 @ =0x00009d54 - adds r1, r0, r2 - movs r0, 0 - ldrsb r0, [r1, r0] - cmp r0, 0x3 - bgt _080E9CB4 - lsls r0, 16 - lsrs r0, 16 - b _080E9CB6 - .align 2, 0 -_080E9CAC: .4byte gUnknown_083DB694 -_080E9CB0: .4byte 0x00009d54 -_080E9CB4: - movs r0, 0x4 -_080E9CB6: - adds r5, r0, 0 - movs r4, 0 - cmp r4, r5 - bcs _080E9CF4 - ldr r0, _080E9CE0 @ =gUnknown_083DB694 - ldr r0, [r0] - ldr r1, _080E9CE4 @ =0x00009d55 - adds r6, r0, r1 -_080E9CC6: - movs r0, 0 - ldrsb r0, [r6, r0] - adds r0, r4, r0 - lsls r0, 16 - lsrs r0, 16 - bl sub_80E9AF8 - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, r5 - bcc _080E9CC6 - b _080E9CF4 - .align 2, 0 -_080E9CE0: .4byte gUnknown_083DB694 -_080E9CE4: .4byte 0x00009d55 -_080E9CE8: - adds r0, r4, 0 - adds r1, r0, 0x1 - lsls r1, 16 - lsrs r4, r1, 16 - bl sub_80E9C74 -_080E9CF4: - cmp r4, 0x3 - bls _080E9CE8 - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_80E9C94 - - thumb_func_start sub_80E9D00 -sub_80E9D00: @ 80E9D00 - push {r4-r6,lr} - ldr r0, _080E9D28 @ =gUnknown_083DB694 - ldr r2, [r0] - movs r0, 0xE0 - lsls r0, 1 - adds r1, r2, r0 - movs r0, 0 - ldrsb r0, [r1, r0] - cmp r0, 0 - ble _080E9D30 - lsls r0, 16 - lsrs r4, r0, 16 - ldr r1, _080E9D2C @ =0x00009d55 - adds r0, r2, r1 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - adds r0, 0x4 - b _080E9D46 - .align 2, 0 -_080E9D28: .4byte gUnknown_083DB694 -_080E9D2C: .4byte 0x00009d55 -_080E9D30: - movs r0, 0 - ldrsb r0, [r1, r0] - negs r0, r0 - lsls r0, 16 - lsrs r4, r0, 16 - ldr r1, _080E9D74 @ =0x00009d55 - adds r0, r2, r1 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - subs r0, r4 -_080E9D46: - lsls r0, 16 - lsrs r5, r0, 16 - subs r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - ldr r0, _080E9D78 @ =0x0000ffff - cmp r4, r0 - beq _080E9D6E - adds r6, r0, 0 -_080E9D58: - adds r0, r5, 0 - adds r1, r0, 0x1 - lsls r1, 16 - lsrs r5, r1, 16 - bl sub_80E9AF8 - subs r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, r6 - bne _080E9D58 -_080E9D6E: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080E9D74: .4byte 0x00009d55 -_080E9D78: .4byte 0x0000ffff - thumb_func_end sub_80E9D00 - - thumb_func_start sub_80E9D7C -sub_80E9D7C: @ 80E9D7C - push {r4-r7,lr} - ldr r0, _080E9DAC @ =gWindowConfig_81E6D54 - bl BasicInitMenuWindow - ldr r0, _080E9DB0 @ =gUnknown_083DB694 - ldr r2, [r0] - movs r0, 0xE0 - lsls r0, 1 - adds r1, r2, r0 - movs r0, 0 - ldrsb r0, [r1, r0] - cmp r0, 0 - bge _080E9DB8 - negs r0, r0 - lsls r0, 16 - lsrs r6, r0, 16 - ldr r1, _080E9DB4 @ =0x000001b5 - adds r0, r2, r1 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - subs r0, r6 - b _080E9DCC - .align 2, 0 -_080E9DAC: .4byte gWindowConfig_81E6D54 -_080E9DB0: .4byte gUnknown_083DB694 -_080E9DB4: .4byte 0x000001b5 -_080E9DB8: - movs r0, 0 - ldrsb r0, [r1, r0] - lsls r0, 16 - lsrs r6, r0, 16 - ldr r1, _080E9DFC @ =0x000001b5 - adds r0, r2, r1 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - adds r0, 0x4 -_080E9DCC: - lsls r0, 16 - lsrs r4, r0, 16 - movs r5, 0 - cmp r5, r6 - bcs _080E9DF6 - ldr r0, _080E9E00 @ =gUnknown_083DB694 - ldr r7, [r0] -_080E9DDA: - lsls r1, r4, 24 - lsrs r1, 24 - ldr r2, _080E9E04 @ =0x0000a0f5 - adds r0, r7, r2 - bl sub_80E9940 - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, r6 - bcc _080E9DDA -_080E9DF6: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080E9DFC: .4byte 0x000001b5 -_080E9E00: .4byte gUnknown_083DB694 -_080E9E04: .4byte 0x0000a0f5 - thumb_func_end sub_80E9D7C - - thumb_func_start sub_80E9E08 -sub_80E9E08: @ 80E9E08 - push {r4,r5,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _080E9E4C @ =gUnknown_083DB694 - ldr r3, [r0] - movs r0, 0xDD - lsls r0, 1 - adds r1, r3, r0 - movs r5, 0xE0 - lsls r5, 1 - adds r2, r3, r5 - movs r0, 0 - ldrsb r0, [r2, r0] - lsls r0, 4 - ldrh r1, [r1] - adds r0, r1 - movs r1, 0x7F - ands r0, r1 - subs r5, 0x4 - adds r1, r3, r5 - strh r0, [r1] - adds r1, r4, 0 - movs r0, 0 - ldrsb r0, [r2, r0] - cmp r0, 0 - bge _080E9E3E - negs r1, r4 -_080E9E3E: - ldr r2, _080E9E50 @ =0x000001bf - adds r0, r3, r2 - strb r1, [r0] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080E9E4C: .4byte gUnknown_083DB694 -_080E9E50: .4byte 0x000001bf - thumb_func_end sub_80E9E08 - - thumb_func_start sub_80E9E54 -sub_80E9E54: @ 80E9E54 - push {r4,lr} - ldr r0, _080E9E8C @ =gUnknown_083DB694 - ldr r2, [r0] - movs r0, 0xDD - lsls r0, 1 - adds r3, r2, r0 - ldr r1, _080E9E90 @ =0x000001bf - adds r0, r2, r1 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - ldrh r4, [r3] - adds r0, r4 - movs r1, 0x7F - ands r0, r1 - strh r0, [r3] - movs r3, 0 - movs r4, 0xDE - lsls r4, 1 - adds r1, r2, r4 - ldrh r1, [r1] - cmp r0, r1 - bne _080E9E84 - movs r3, 0x1 -_080E9E84: - adds r0, r3, 0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080E9E8C: .4byte gUnknown_083DB694 -_080E9E90: .4byte 0x000001bf - thumb_func_end sub_80E9E54 - - thumb_func_start nullsub_23 -nullsub_23: @ 80E9E94 - bx lr - thumb_func_end nullsub_23 - - thumb_func_start sub_80E9E98 -sub_80E9E98: @ 80E9E98 - ldr r0, _080E9EA4 @ =gUnknown_083DB694 - ldr r0, [r0] - adds r0, 0xBE - movs r1, 0 - strh r1, [r0] - bx lr - .align 2, 0 -_080E9EA4: .4byte gUnknown_083DB694 - thumb_func_end sub_80E9E98 - - thumb_func_start sub_80E9EA8 -sub_80E9EA8: @ 80E9EA8 - push {lr} - ldr r1, _080E9EC4 @ =gUnknown_083DB694 - ldr r0, [r1] - adds r0, 0xBE - ldrh r0, [r0] - adds r2, r1, 0 - cmp r0, 0x5 - bhi _080E9F48 - lsls r0, 2 - ldr r1, _080E9EC8 @ =_080E9ECC - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080E9EC4: .4byte gUnknown_083DB694 -_080E9EC8: .4byte _080E9ECC - .align 2, 0 -_080E9ECC: - .4byte _080E9EE4 - .4byte _080E9EF4 - .4byte _080E9F0C - .4byte _080E9F24 - .4byte _080E9F38 - .4byte _080E9F44 -_080E9EE4: - bl sub_80EA24C - ldr r0, _080E9F08 @ =gUnknown_083DB694 - ldr r1, [r0] - adds r1, 0xBE - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] -_080E9EF4: - bl sub_80EA1E0 - lsls r0, 24 - cmp r0, 0 - beq _080E9F48 - bl sub_80EA4A4 - ldr r0, _080E9F08 @ =gUnknown_083DB694 - ldr r1, [r0] - b _080E9F3A - .align 2, 0 -_080E9F08: .4byte gUnknown_083DB694 -_080E9F0C: - bl sub_80EA1E0 - lsls r0, 24 - cmp r0, 0 - beq _080E9F48 - bl sub_80EA704 - ldr r0, _080E9F20 @ =gUnknown_083DB694 - ldr r1, [r0] - b _080E9F3A - .align 2, 0 -_080E9F20: .4byte gUnknown_083DB694 -_080E9F24: - bl sub_80EA1E0 - lsls r0, 24 - cmp r0, 0 - beq _080E9F48 - ldr r0, _080E9F34 @ =gUnknown_083DB694 - ldr r1, [r0] - b _080E9F3A - .align 2, 0 -_080E9F34: .4byte gUnknown_083DB694 -_080E9F38: - ldr r1, [r2] -_080E9F3A: - adds r1, 0xBE - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] - b _080E9F48 -_080E9F44: - movs r0, 0x1 - b _080E9F4A -_080E9F48: - movs r0, 0 -_080E9F4A: - pop {r1} - bx r1 - thumb_func_end sub_80E9EA8 - - thumb_func_start sub_80E9F50 -sub_80E9F50: @ 80E9F50 - push {lr} - ldr r0, _080E9F68 @ =gUnknown_083DB694 - ldr r0, [r0] - adds r0, 0xBE - ldrh r0, [r0] - cmp r0, 0x6 - bhi _080E9FCC - lsls r0, 2 - ldr r1, _080E9F6C @ =_080E9F70 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080E9F68: .4byte gUnknown_083DB694 -_080E9F6C: .4byte _080E9F70 - .align 2, 0 -_080E9F70: - .4byte _080E9F8C - .4byte _080E9FAC - .4byte _080E9F96 - .4byte _080E9FAC - .4byte _080E9F9C - .4byte _080E9FAC - .4byte _080E9FC8 -_080E9F8C: - bl nullsub_23 - bl sub_80EA764 - b _080E9FA0 -_080E9F96: - bl sub_80EA5A0 - b _080E9FA0 -_080E9F9C: - bl sub_80EA348 -_080E9FA0: - ldr r0, _080E9FC4 @ =gUnknown_083DB694 - ldr r1, [r0] - adds r1, 0xBE - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] -_080E9FAC: - bl sub_80EA1E0 - lsls r0, 24 - cmp r0, 0 - beq _080E9FCC - ldr r0, _080E9FC4 @ =gUnknown_083DB694 - ldr r1, [r0] - adds r1, 0xBE - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] - b _080E9FCC - .align 2, 0 -_080E9FC4: .4byte gUnknown_083DB694 -_080E9FC8: - movs r0, 0x1 - b _080E9FCE -_080E9FCC: - movs r0, 0 -_080E9FCE: - pop {r1} - bx r1 - thumb_func_end sub_80E9F50 - - thumb_func_start sub_80E9FD4 -sub_80E9FD4: @ 80E9FD4 - push {r4,lr} - ldr r0, _080E9FEC @ =gUnknown_083DB694 - ldr r0, [r0] - adds r4, r0, 0 - adds r4, 0xBE - ldrh r0, [r4] - cmp r0, 0 - beq _080E9FF0 - cmp r0, 0x1 - beq _080E9FFE - b _080EA00C - .align 2, 0 -_080E9FEC: .4byte gUnknown_083DB694 -_080E9FF0: - bl nullsub_23 - bl sub_80EA5A0 - ldrh r0, [r4] - adds r0, 0x1 - strh r0, [r4] -_080E9FFE: - bl sub_80EA1E0 - lsls r0, 24 - cmp r0, 0 - beq _080EA00C - movs r0, 0x1 - b _080EA00E -_080EA00C: - movs r0, 0 -_080EA00E: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_80E9FD4 - - thumb_func_start sub_80EA014 -sub_80EA014: @ 80EA014 - push {r4,lr} - ldr r0, _080EA02C @ =gUnknown_083DB694 - ldr r0, [r0] - adds r4, r0, 0 - adds r4, 0xBE - ldrh r0, [r4] - cmp r0, 0 - beq _080EA030 - cmp r0, 0x1 - beq _080EA03A - b _080EA048 - .align 2, 0 -_080EA02C: .4byte gUnknown_083DB694 -_080EA030: - bl sub_80EA4A4 - ldrh r0, [r4] - adds r0, 0x1 - strh r0, [r4] -_080EA03A: - bl sub_80EA1E0 - lsls r0, 24 - cmp r0, 0 - beq _080EA048 - movs r0, 0x1 - b _080EA04A -_080EA048: - movs r0, 0 -_080EA04A: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_80EA014 - - thumb_func_start sub_80EA050 -sub_80EA050: @ 80EA050 - push {lr} - ldr r0, _080EA068 @ =gUnknown_083DB694 - ldr r0, [r0] - adds r0, 0xBE - ldrh r0, [r0] - cmp r0, 0x4 - bhi _080EA0DC - lsls r0, 2 - ldr r1, _080EA06C @ =_080EA070 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080EA068: .4byte gUnknown_083DB694 -_080EA06C: .4byte _080EA070 - .align 2, 0 -_080EA070: - .4byte _080EA084 - .4byte _080EA08E - .4byte _080EA09E - .4byte _080EA0B4 - .4byte _080EA0D8 -_080EA084: - bl nullsub_23 - bl sub_80EA764 - b _080EA0C4 -_080EA08E: - bl sub_80EA1E0 - lsls r0, 24 - cmp r0, 0 - beq _080EA0DC - bl sub_80EA7F4 - b _080EA0C4 -_080EA09E: - movs r0, 0x1 - bl sub_80E9108 - bl sub_80EA1E0 - lsls r0, 24 - cmp r0, 0 - beq _080EA0DC - bl sub_80EA8BC - b _080EA0C4 -_080EA0B4: - movs r0, 0x1 - bl sub_80E9108 - bl sub_80EA1E0 - lsls r0, 24 - cmp r0, 0 - beq _080EA0DC -_080EA0C4: - ldr r0, _080EA0D4 @ =gUnknown_083DB694 - ldr r1, [r0] - adds r1, 0xBE - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] - b _080EA0DC - .align 2, 0 -_080EA0D4: .4byte gUnknown_083DB694 -_080EA0D8: - movs r0, 0x1 - b _080EA0DE -_080EA0DC: - movs r0, 0 -_080EA0DE: - pop {r1} - bx r1 - thumb_func_end sub_80EA050 - - thumb_func_start sub_80EA0E4 -sub_80EA0E4: @ 80EA0E4 - push {lr} - ldr r0, _080EA0FC @ =gUnknown_083DB694 - ldr r0, [r0] - adds r0, 0xBE - ldrh r0, [r0] - cmp r0, 0x4 - bhi _080EA17C - lsls r0, 2 - ldr r1, _080EA100 @ =_080EA104 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080EA0FC: .4byte gUnknown_083DB694 -_080EA100: .4byte _080EA104 - .align 2, 0 -_080EA104: - .4byte _080EA118 - .4byte _080EA128 - .4byte _080EA144 - .4byte _080EA15C - .4byte _080EA178 -_080EA118: - bl sub_80EA948 - ldr r0, _080EA140 @ =gUnknown_083DB694 - ldr r1, [r0] - adds r1, 0xBE - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] -_080EA128: - movs r0, 0x1 - negs r0, r0 - bl sub_80E9108 - bl sub_80EA1E0 - lsls r0, 24 - cmp r0, 0 - beq _080EA17C - bl sub_80EAA44 - b _080EA166 - .align 2, 0 -_080EA140: .4byte gUnknown_083DB694 -_080EA144: - movs r0, 0x1 - negs r0, r0 - bl sub_80E9108 - bl sub_80EA1E0 - lsls r0, 24 - cmp r0, 0 - beq _080EA17C - bl sub_80EA704 - b _080EA166 -_080EA15C: - bl sub_80EA1E0 - lsls r0, 24 - cmp r0, 0 - beq _080EA17C -_080EA166: - ldr r0, _080EA174 @ =gUnknown_083DB694 - ldr r1, [r0] - adds r1, 0xBE - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] - b _080EA17C - .align 2, 0 -_080EA174: .4byte gUnknown_083DB694 -_080EA178: - movs r0, 0x1 - b _080EA17E -_080EA17C: - movs r0, 0 -_080EA17E: - pop {r1} - bx r1 - thumb_func_end sub_80EA0E4 - - thumb_func_start sub_80EA184 -sub_80EA184: @ 80EA184 - push {r4,lr} - ldr r0, _080EA1A0 @ =gUnknown_083DB694 - ldr r0, [r0] - adds r4, r0, 0 - adds r4, 0xBE - ldrh r0, [r4] - cmp r0, 0x1 - beq _080EA1B4 - cmp r0, 0x1 - bgt _080EA1A4 - cmp r0, 0 - beq _080EA1AA - b _080EA1D8 - .align 2, 0 -_080EA1A0: .4byte gUnknown_083DB694 -_080EA1A4: - cmp r0, 0x2 - beq _080EA1D0 - b _080EA1D8 -_080EA1AA: - bl sub_80EAAD4 - ldrh r0, [r4] - adds r0, 0x1 - strh r0, [r4] -_080EA1B4: - bl sub_80EA1E0 - lsls r0, 24 - cmp r0, 0 - beq _080EA1D8 - ldr r0, _080EA1CC @ =gUnknown_083DB694 - ldr r1, [r0] - adds r1, 0xBE - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] - b _080EA1D8 - .align 2, 0 -_080EA1CC: .4byte gUnknown_083DB694 -_080EA1D0: - bl sub_80E9178 - movs r0, 0x1 - b _080EA1DA -_080EA1D8: - movs r0, 0 -_080EA1DA: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_80EA184 - - thumb_func_start sub_80EA1E0 -sub_80EA1E0: @ 80EA1E0 - push {r4-r6,lr} - ldr r0, _080EA240 @ =gUnknown_083DB694 - ldr r1, [r0] - adds r0, r1, 0 - adds r0, 0xC4 - ldrh r0, [r0] - cmp r0, 0 - beq _080EA244 - movs r4, 0 - adds r0, r1, 0 - adds r0, 0xC2 - ldrh r2, [r0] - cmp r4, r2 - bcs _080EA228 - adds r5, r1, 0 - adds r6, r0, 0 -_080EA200: - lsls r0, r4, 4 - adds r0, 0xC8 - adds r0, r5, r0 - bl sub_80EAC0C - lsls r0, r4, 1 - adds r0, r4 - lsls r0, 2 - movs r1, 0xA4 - lsls r1, 1 - adds r0, r1 - adds r0, r5, r0 - bl sub_80EAC48 - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - ldrh r2, [r6] - cmp r4, r2 - bcc _080EA200 -_080EA228: - ldr r0, _080EA240 @ =gUnknown_083DB694 - ldr r1, [r0] - adds r2, r1, 0 - adds r2, 0xBC - movs r0, 0x1 - strb r0, [r2] - adds r1, 0xC4 - ldrh r0, [r1] - subs r0, 0x1 - strh r0, [r1] - movs r0, 0 - b _080EA246 - .align 2, 0 -_080EA240: .4byte gUnknown_083DB694 -_080EA244: - movs r0, 0x1 -_080EA246: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_80EA1E0 - - thumb_func_start sub_80EA24C -sub_80EA24C: @ 80EA24C - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x14 - ldr r0, _080EA340 @ =gUnknown_083DB694 - ldr r7, [r0] - adds r0, r7, 0 - adds r0, 0xC8 - movs r6, 0xF - str r6, [sp] - ldr r1, _080EA344 @ =0x0000fffe - mov r8, r1 - str r1, [sp, 0x4] - movs r4, 0 - str r4, [sp, 0x8] - str r4, [sp, 0xC] - str r4, [sp, 0x10] - movs r1, 0xD - movs r2, 0xE - movs r3, 0xD - bl sub_80EABD4 - movs r1, 0xA4 - lsls r1, 1 - adds r0, r7, r1 - str r4, [sp] - movs r1, 0xD9 - lsls r1, 3 - adds r5, r7, r1 - str r5, [sp, 0x4] - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl sub_80EAC30 - adds r0, r7, 0 - adds r0, 0xD8 - str r6, [sp] - str r4, [sp, 0x4] - str r4, [sp, 0x8] - movs r1, 0x2 - mov r9, r1 - str r1, [sp, 0xC] - str r4, [sp, 0x10] - movs r1, 0xC - movs r2, 0xE - movs r3, 0xC - bl sub_80EABD4 - movs r1, 0xAA - lsls r1, 1 - adds r0, r7, r1 - str r4, [sp] - str r5, [sp, 0x4] - movs r1, 0x1E - movs r2, 0 - mov r3, r8 - bl sub_80EAC30 - adds r0, r7, 0 - adds r0, 0xE8 - movs r6, 0x10 - str r6, [sp] - mov r1, r8 - str r1, [sp, 0x4] - str r4, [sp, 0x8] - str r4, [sp, 0xC] - str r4, [sp, 0x10] - movs r1, 0xD - movs r2, 0xF - movs r3, 0xD - bl sub_80EABD4 - movs r1, 0xB0 - lsls r1, 1 - adds r0, r7, r1 - str r4, [sp] - str r5, [sp, 0x4] - movs r1, 0 - movs r2, 0x9 - movs r3, 0 - bl sub_80EAC30 - adds r0, r7, 0 - adds r0, 0xF8 - str r6, [sp] - str r4, [sp, 0x4] - str r4, [sp, 0x8] - mov r1, r9 - str r1, [sp, 0xC] - str r4, [sp, 0x10] - movs r1, 0xC - movs r2, 0xF - movs r3, 0xC - bl sub_80EABD4 - movs r1, 0xB6 - lsls r1, 1 - adds r0, r7, r1 - str r4, [sp] - str r5, [sp, 0x4] - movs r1, 0x1E - movs r2, 0x9 - mov r3, r8 - bl sub_80EAC30 - adds r1, r7, 0 - adds r1, 0xC2 - movs r0, 0x4 - strh r0, [r1] - adds r1, 0x2 - movs r0, 0x6 - strh r0, [r1] - add sp, 0x14 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080EA340: .4byte gUnknown_083DB694 -_080EA344: .4byte 0x0000fffe - thumb_func_end sub_80EA24C - - thumb_func_start sub_80EA348 -sub_80EA348: @ 80EA348 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x14 - ldr r0, _080EA49C @ =gUnknown_083DB694 - ldr r7, [r0] - adds r0, r7, 0 - adds r0, 0xC8 - movs r5, 0xF - str r5, [sp] - movs r1, 0x2 - mov r9, r1 - str r1, [sp, 0x4] - movs r4, 0 - str r4, [sp, 0x8] - str r4, [sp, 0xC] - str r4, [sp, 0x10] - movs r1, 0x1 - movs r2, 0xE - movs r3, 0xD - bl sub_80EABD4 - movs r1, 0xA4 - lsls r1, 1 - adds r0, r7, r1 - str r4, [sp] - movs r1, 0xD9 - lsls r1, 3 - adds r6, r7, r1 - str r6, [sp, 0x4] - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl sub_80EAC30 - adds r0, r7, 0 - adds r0, 0xD8 - str r5, [sp] - str r4, [sp, 0x4] - str r4, [sp, 0x8] - ldr r1, _080EA4A0 @ =0x0000fffe - mov r8, r1 - str r1, [sp, 0xC] - str r4, [sp, 0x10] - movs r1, 0xC - movs r2, 0xE - movs r3, 0x18 - bl sub_80EABD4 - movs r1, 0xAA - lsls r1, 1 - adds r0, r7, r1 - str r4, [sp] - str r6, [sp, 0x4] - movs r1, 0x12 - movs r2, 0 - movs r3, 0x2 - bl sub_80EAC30 - adds r0, r7, 0 - adds r0, 0xE8 - movs r5, 0x10 - str r5, [sp] - mov r1, r9 - str r1, [sp, 0x4] - str r4, [sp, 0x8] - str r4, [sp, 0xC] - str r4, [sp, 0x10] - movs r1, 0x1 - movs r2, 0xF - movs r3, 0xD - bl sub_80EABD4 - movs r1, 0xB0 - lsls r1, 1 - adds r0, r7, r1 - str r4, [sp] - str r6, [sp, 0x4] - movs r1, 0 - movs r2, 0x9 - movs r3, 0 - bl sub_80EAC30 - adds r0, r7, 0 - adds r0, 0xF8 - str r5, [sp] - str r4, [sp, 0x4] - str r4, [sp, 0x8] - mov r1, r8 - str r1, [sp, 0xC] - str r4, [sp, 0x10] - movs r1, 0xC - movs r2, 0xF - movs r3, 0x18 - bl sub_80EABD4 - movs r1, 0xB6 - lsls r1, 1 - adds r0, r7, r1 - str r4, [sp] - str r6, [sp, 0x4] - movs r1, 0x12 - movs r2, 0x9 - movs r3, 0x2 - bl sub_80EAC30 - movs r1, 0x84 - lsls r1, 1 - adds r0, r7, r1 - str r5, [sp] - str r4, [sp, 0x4] - str r4, [sp, 0x8] - mov r1, r9 - str r1, [sp, 0xC] - str r4, [sp, 0x10] - movs r1, 0x1 - movs r2, 0xE - movs r3, 0x1 - bl sub_80EABD4 - movs r1, 0xBC - lsls r1, 1 - adds r0, r7, r1 - str r4, [sp] - adds r1, 0x50 - adds r6, r7, r1 - str r6, [sp, 0x4] - movs r1, 0x1 - movs r2, 0xE - movs r3, 0 - bl sub_80EAC30 - movs r1, 0x8C - lsls r1, 1 - adds r0, r7, r1 - str r5, [sp] - mov r1, r8 - str r1, [sp, 0x4] - str r4, [sp, 0x8] - str r4, [sp, 0xC] - str r4, [sp, 0x10] - movs r1, 0x18 - movs r2, 0xE - movs r3, 0x18 - bl sub_80EABD4 - movs r1, 0xC2 - lsls r1, 1 - adds r0, r7, r1 - str r4, [sp] - str r6, [sp, 0x4] - movs r1, 0x18 - movs r2, 0xE - mov r3, r8 - bl sub_80EAC30 - adds r0, r7, 0 - adds r0, 0xC2 - movs r1, 0x6 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - add sp, 0x14 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080EA49C: .4byte gUnknown_083DB694 -_080EA4A0: .4byte 0x0000fffe - thumb_func_end sub_80EA348 - - thumb_func_start sub_80EA4A4 -sub_80EA4A4: @ 80EA4A4 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x14 - ldr r0, _080EA598 @ =gUnknown_083DB694 - ldr r7, [r0] - adds r0, r7, 0 - adds r0, 0xC8 - movs r6, 0xF - str r6, [sp] - movs r4, 0 - str r4, [sp, 0x4] - ldr r1, _080EA59C @ =0x0000ffff - mov r8, r1 - str r1, [sp, 0x8] - str r4, [sp, 0xC] - str r4, [sp, 0x10] - movs r1, 0x1 - movs r2, 0xE - movs r3, 0xD - bl sub_80EABD4 - movs r1, 0xA4 - lsls r1, 1 - adds r0, r7, r1 - str r4, [sp] - movs r1, 0xD9 - lsls r1, 3 - adds r5, r7, r1 - str r5, [sp, 0x4] - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl sub_80EAC30 - adds r0, r7, 0 - adds r0, 0xD8 - str r6, [sp] - str r4, [sp, 0x4] - mov r1, r8 - str r1, [sp, 0x8] - str r4, [sp, 0xC] - str r4, [sp, 0x10] - movs r1, 0xC - movs r2, 0xE - movs r3, 0x18 - bl sub_80EABD4 - movs r1, 0xAA - lsls r1, 1 - adds r0, r7, r1 - str r4, [sp] - str r5, [sp, 0x4] - movs r1, 0x12 - movs r2, 0 - movs r3, 0 - bl sub_80EAC30 - adds r0, r7, 0 - adds r0, 0xE8 - movs r1, 0x10 - mov r9, r1 - str r1, [sp] - str r4, [sp, 0x4] - str r4, [sp, 0x8] - str r4, [sp, 0xC] - movs r6, 0x1 - str r6, [sp, 0x10] - movs r1, 0x1 - movs r2, 0xF - movs r3, 0xD - bl sub_80EABD4 - movs r1, 0xB0 - lsls r1, 1 - adds r0, r7, r1 - mov r1, r8 - str r1, [sp] - str r5, [sp, 0x4] - movs r1, 0 - movs r2, 0x9 - movs r3, 0 - bl sub_80EAC30 - adds r0, r7, 0 - adds r0, 0xF8 - mov r1, r9 - str r1, [sp] - str r4, [sp, 0x4] - str r4, [sp, 0x8] - str r4, [sp, 0xC] - str r6, [sp, 0x10] - movs r1, 0xC - movs r2, 0xF - movs r3, 0x18 - bl sub_80EABD4 - movs r1, 0xB6 - lsls r1, 1 - adds r0, r7, r1 - mov r1, r8 - str r1, [sp] - str r5, [sp, 0x4] - movs r1, 0x12 - movs r2, 0x9 - movs r3, 0 - bl sub_80EAC30 - adds r0, r7, 0 - adds r0, 0xC2 - movs r1, 0x4 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - add sp, 0x14 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080EA598: .4byte gUnknown_083DB694 -_080EA59C: .4byte 0x0000ffff - thumb_func_end sub_80EA4A4 - - thumb_func_start sub_80EA5A0 -sub_80EA5A0: @ 80EA5A0 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x14 - ldr r0, _080EA6FC @ =gUnknown_083DB694 - ldr r7, [r0] - adds r0, r7, 0 - adds r0, 0xC8 - movs r6, 0xF - str r6, [sp] - movs r4, 0 - str r4, [sp, 0x4] - movs r1, 0x1 - mov r8, r1 - str r1, [sp, 0x8] - str r4, [sp, 0xC] - str r4, [sp, 0x10] - movs r2, 0xA - movs r3, 0xD - bl sub_80EABD4 - movs r1, 0xA4 - lsls r1, 1 - adds r0, r7, r1 - str r4, [sp] - movs r1, 0xD9 - lsls r1, 3 - adds r5, r7, r1 - str r5, [sp, 0x4] - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl sub_80EAC30 - adds r0, r7, 0 - adds r0, 0xD8 - str r6, [sp] - str r4, [sp, 0x4] - mov r1, r8 - str r1, [sp, 0x8] - str r4, [sp, 0xC] - str r4, [sp, 0x10] - movs r1, 0xC - movs r2, 0xA - movs r3, 0x18 - bl sub_80EABD4 - movs r1, 0xAA - lsls r1, 1 - adds r0, r7, r1 - str r4, [sp] - str r5, [sp, 0x4] - movs r1, 0x12 - movs r2, 0 - movs r3, 0 - bl sub_80EAC30 - adds r0, r7, 0 - adds r0, 0xE8 - movs r1, 0x14 - mov r9, r1 - str r1, [sp] - str r4, [sp, 0x4] - str r4, [sp, 0x8] - str r4, [sp, 0xC] - ldr r6, _080EA700 @ =0x0000ffff - str r6, [sp, 0x10] - movs r1, 0x1 - movs r2, 0xF - movs r3, 0xD - bl sub_80EABD4 - movs r1, 0xB0 - lsls r1, 1 - adds r0, r7, r1 - mov r1, r8 - str r1, [sp] - str r5, [sp, 0x4] - movs r1, 0 - movs r2, 0x5 - movs r3, 0 - bl sub_80EAC30 - adds r0, r7, 0 - adds r0, 0xF8 - mov r1, r9 - str r1, [sp] - str r4, [sp, 0x4] - str r4, [sp, 0x8] - str r4, [sp, 0xC] - str r6, [sp, 0x10] - movs r1, 0xC - movs r2, 0xF - movs r3, 0x18 - bl sub_80EABD4 - movs r1, 0xB6 - lsls r1, 1 - adds r0, r7, r1 - mov r1, r8 - str r1, [sp] - str r5, [sp, 0x4] - movs r1, 0x12 - movs r2, 0x5 - movs r3, 0 - bl sub_80EAC30 - movs r1, 0x84 - lsls r1, 1 - adds r0, r7, r1 - movs r1, 0xA - str r1, [sp] - str r4, [sp, 0x4] - str r4, [sp, 0x8] - str r4, [sp, 0xC] - mov r1, r8 - str r1, [sp, 0x10] - movs r1, 0x1 - movs r2, 0xA - movs r3, 0x18 - bl sub_80EABD4 - movs r1, 0xBC - lsls r1, 1 - adds r0, r7, r1 - str r4, [sp] - adds r1, 0x50 - adds r5, r7, r1 - str r5, [sp, 0x4] - movs r1, 0x1 - movs r2, 0xA - movs r3, 0 - bl sub_80EAC30 - movs r1, 0x8C - lsls r1, 1 - adds r0, r7, r1 - mov r1, r9 - str r1, [sp] - str r4, [sp, 0x4] - str r6, [sp, 0x8] - str r4, [sp, 0xC] - str r4, [sp, 0x10] - movs r1, 0x1 - movs r2, 0x14 - movs r3, 0x18 - bl sub_80EABD4 - movs r1, 0xC2 - lsls r1, 1 - adds r0, r7, r1 - str r6, [sp] - str r5, [sp, 0x4] - movs r1, 0x1 - movs r2, 0x14 - movs r3, 0 - bl sub_80EAC30 - adds r1, r7, 0 - adds r1, 0xC2 - movs r0, 0x6 - strh r0, [r1] - adds r1, 0x2 - movs r0, 0x4 - strh r0, [r1] - add sp, 0x14 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080EA6FC: .4byte gUnknown_083DB694 -_080EA700: .4byte 0x0000ffff - thumb_func_end sub_80EA5A0 - - thumb_func_start sub_80EA704 -sub_80EA704: @ 80EA704 - push {r4-r6,lr} - sub sp, 0x14 - ldr r0, _080EA75C @ =gUnknown_083DB694 - ldr r6, [r0] - adds r0, r6, 0 - adds r0, 0xC8 - movs r1, 0x14 - str r1, [sp] - movs r4, 0 - str r4, [sp, 0x4] - str r4, [sp, 0x8] - movs r5, 0x1 - str r5, [sp, 0xC] - str r4, [sp, 0x10] - movs r1, 0x18 - movs r2, 0xC - movs r3, 0x19 - bl sub_80EABD4 - movs r1, 0xA4 - lsls r1, 1 - adds r0, r6, r1 - ldr r3, _080EA760 @ =0x0000ffff - str r4, [sp] - movs r2, 0xD9 - lsls r2, 3 - adds r1, r6, r2 - str r1, [sp, 0x4] - movs r1, 0x5 - movs r2, 0xA - bl sub_80EAC30 - adds r0, r6, 0 - adds r0, 0xC2 - strh r5, [r0] - adds r1, r6, 0 - adds r1, 0xC4 - movs r0, 0x5 - strh r0, [r1] - add sp, 0x14 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080EA75C: .4byte gUnknown_083DB694 -_080EA760: .4byte 0x0000ffff - thumb_func_end sub_80EA704 - - thumb_func_start sub_80EA764 -sub_80EA764: @ 80EA764 - push {r4-r7,lr} - sub sp, 0x14 - ldr r0, _080EA7EC @ =gUnknown_083DB694 - ldr r7, [r0] - adds r0, r7, 0 - adds r0, 0xC8 - movs r6, 0x14 - str r6, [sp] - movs r4, 0 - str r4, [sp, 0x4] - str r4, [sp, 0x8] - ldr r5, _080EA7F0 @ =0x0000ffff - str r5, [sp, 0xC] - str r4, [sp, 0x10] - movs r1, 0x18 - movs r2, 0xC - movs r3, 0x1E - bl sub_80EABD4 - movs r1, 0xA4 - lsls r1, 1 - adds r0, r7, r1 - str r4, [sp] - movs r2, 0xD9 - lsls r2, 3 - adds r1, r7, r2 - str r1, [sp, 0x4] - movs r1, 0 - movs r2, 0xA - movs r3, 0x1 - bl sub_80EAC30 - adds r0, r7, 0 - adds r0, 0xD8 - str r6, [sp] - str r5, [sp, 0x4] - str r4, [sp, 0x8] - str r4, [sp, 0xC] - str r4, [sp, 0x10] - movs r1, 0x1E - movs r2, 0xC - movs r3, 0x1F - bl sub_80EABD4 - movs r1, 0xAA - lsls r1, 1 - adds r0, r7, r1 - str r4, [sp] - movs r2, 0xE4 - lsls r2, 1 - adds r1, r7, r2 - str r1, [sp, 0x4] - movs r1, 0x1E - movs r2, 0xC - adds r3, r5, 0 - bl sub_80EAC30 - adds r1, r7, 0 - adds r1, 0xC2 - movs r0, 0x2 - strh r0, [r1] - adds r1, 0x2 - movs r0, 0x6 - strh r0, [r1] - add sp, 0x14 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080EA7EC: .4byte gUnknown_083DB694 -_080EA7F0: .4byte 0x0000ffff - thumb_func_end sub_80EA764 - - thumb_func_start sub_80EA7F4 -sub_80EA7F4: @ 80EA7F4 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x14 - ldr r0, _080EA8B4 @ =gUnknown_083DB694 - ldr r7, [r0] - adds r0, r7, 0 - adds r0, 0xC8 - movs r6, 0x14 - str r6, [sp] - movs r4, 0 - str r4, [sp, 0x4] - str r4, [sp, 0x8] - movs r5, 0x1 - str r5, [sp, 0xC] - str r4, [sp, 0x10] - movs r1, 0x14 - movs r2, 0xA - movs r3, 0x19 - bl sub_80EABD4 - movs r1, 0xA4 - lsls r1, 1 - adds r0, r7, r1 - ldr r3, _080EA8B8 @ =0x0000ffff - str r4, [sp] - movs r2, 0xD9 - lsls r2, 3 - adds r2, r7 - mov r8, r2 - str r2, [sp, 0x4] - movs r1, 0x19 - movs r2, 0 - bl sub_80EAC30 - adds r0, r7, 0 - adds r0, 0xD8 - str r6, [sp] - str r4, [sp, 0x4] - str r4, [sp, 0x8] - str r5, [sp, 0xC] - str r4, [sp, 0x10] - movs r1, 0 - movs r2, 0xA - movs r3, 0x1 - bl sub_80EABD4 - movs r1, 0xAA - lsls r1, 1 - adds r0, r7, r1 - str r4, [sp] - movs r2, 0xE4 - lsls r2, 1 - adds r1, r7, r2 - str r1, [sp, 0x4] - movs r1, 0 - movs r2, 0xA - movs r3, 0 - bl sub_80EAC30 - adds r0, r7, 0 - adds r0, 0xE8 - str r6, [sp] - str r5, [sp, 0x4] - str r4, [sp, 0x8] - str r4, [sp, 0xC] - str r4, [sp, 0x10] - movs r1, 0x1 - movs r2, 0xA - movs r3, 0x4 - bl sub_80EABD4 - movs r1, 0xB0 - lsls r1, 1 - adds r0, r7, r1 - str r4, [sp] - mov r2, r8 - str r2, [sp, 0x4] - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl sub_80EAC30 - adds r1, r7, 0 - adds r1, 0xC2 - movs r0, 0x3 - strh r0, [r1] - adds r1, 0x2 - movs r0, 0x2 - strh r0, [r1] - add sp, 0x14 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080EA8B4: .4byte gUnknown_083DB694 -_080EA8B8: .4byte 0x0000ffff - thumb_func_end sub_80EA7F4 - - thumb_func_start sub_80EA8BC -sub_80EA8BC: @ 80EA8BC - push {r4-r6,lr} - sub sp, 0x14 - ldr r0, _080EA944 @ =gUnknown_083DB694 - ldr r6, [r0] - adds r0, r6, 0 - adds r0, 0xC8 - movs r5, 0x14 - str r5, [sp] - movs r4, 0 - str r4, [sp, 0x4] - str r4, [sp, 0x8] - str r4, [sp, 0xC] - str r4, [sp, 0x10] - movs r1, 0x3 - movs r2, 0xA - movs r3, 0x4 - bl sub_80EABD4 - movs r1, 0xA4 - lsls r1, 1 - adds r0, r6, r1 - str r4, [sp] - movs r2, 0xD9 - lsls r2, 3 - adds r1, r6, r2 - str r1, [sp, 0x4] - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl sub_80EAC30 - adds r0, r6, 0 - adds r0, 0xD8 - str r5, [sp] - str r4, [sp, 0x4] - str r4, [sp, 0x8] - str r4, [sp, 0xC] - str r4, [sp, 0x10] - movs r1, 0 - movs r2, 0xA - movs r3, 0x2 - bl sub_80EABD4 - movs r1, 0xAA - lsls r1, 1 - adds r0, r6, r1 - str r4, [sp] - movs r2, 0xE4 - lsls r2, 1 - adds r1, r6, r2 - str r1, [sp, 0x4] - movs r1, 0 - movs r2, 0xA - movs r3, 0 - bl sub_80EAC30 - adds r1, r6, 0 - adds r1, 0xC2 - movs r0, 0x2 - strh r0, [r1] - adds r1, 0x2 - movs r0, 0x1 - strh r0, [r1] - add sp, 0x14 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080EA944: .4byte gUnknown_083DB694 - thumb_func_end sub_80EA8BC - - thumb_func_start sub_80EA948 -sub_80EA948: @ 80EA948 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x14 - ldr r0, _080EAA3C @ =gUnknown_083DB694 - ldr r7, [r0] - adds r0, r7, 0 - adds r0, 0xC8 - movs r6, 0x14 - str r6, [sp] - movs r4, 0 - str r4, [sp, 0x4] - str r4, [sp, 0x8] - ldr r5, _080EAA40 @ =0x0000ffff - str r5, [sp, 0xC] - str r4, [sp, 0x10] - movs r1, 0 - movs r2, 0xA - movs r3, 0x2 - bl sub_80EABD4 - movs r1, 0xA4 - lsls r1, 1 - adds r0, r7, r1 - str r4, [sp] - adds r1, 0x80 - adds r1, r7 - mov r9, r1 - str r1, [sp, 0x4] - movs r1, 0 - movs r2, 0xA - movs r3, 0 - bl sub_80EAC30 - adds r0, r7, 0 - adds r0, 0xD8 - str r6, [sp] - str r5, [sp, 0x4] - str r4, [sp, 0x8] - str r4, [sp, 0xC] - str r4, [sp, 0x10] - movs r1, 0x3 - movs r2, 0xA - movs r3, 0x5 - bl sub_80EABD4 - movs r1, 0xAA - lsls r1, 1 - adds r0, r7, r1 - str r4, [sp] - movs r1, 0xD9 - lsls r1, 3 - adds r1, r7 - mov r8, r1 - str r1, [sp, 0x4] - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl sub_80EAC30 - adds r0, r7, 0 - adds r0, 0xE8 - str r6, [sp] - str r5, [sp, 0x4] - str r4, [sp, 0x8] - str r4, [sp, 0xC] - str r4, [sp, 0x10] - movs r1, 0x1A - movs r2, 0xA - movs r3, 0x1E - bl sub_80EABD4 - movs r1, 0xB0 - lsls r1, 1 - adds r0, r7, r1 - str r4, [sp] - mov r1, r9 - str r1, [sp, 0x4] - movs r1, 0x1A - movs r2, 0xA - adds r3, r5, 0 - bl sub_80EAC30 - adds r0, r7, 0 - adds r0, 0xF8 - str r6, [sp] - str r5, [sp, 0x4] - str r4, [sp, 0x8] - str r5, [sp, 0xC] - str r4, [sp, 0x10] - movs r1, 0x19 - movs r2, 0xA - movs r3, 0x1A - bl sub_80EABD4 - movs r1, 0xB6 - lsls r1, 1 - adds r0, r7, r1 - str r4, [sp] - mov r1, r8 - str r1, [sp, 0x4] - movs r1, 0x1D - movs r2, 0 - movs r3, 0 - bl sub_80EAC30 - adds r1, r7, 0 - adds r1, 0xC2 - movs r0, 0x4 - strh r0, [r1] - adds r1, 0x2 - movs r0, 0x2 - strh r0, [r1] - add sp, 0x14 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080EAA3C: .4byte gUnknown_083DB694 -_080EAA40: .4byte 0x0000ffff - thumb_func_end sub_80EA948 - - thumb_func_start sub_80EAA44 -sub_80EAA44: @ 80EAA44 - push {r4-r6,lr} - sub sp, 0x14 - ldr r0, _080EAACC @ =gUnknown_083DB694 - ldr r6, [r0] - adds r0, r6, 0 - adds r0, 0xC8 - movs r5, 0x14 - str r5, [sp] - movs r4, 0 - str r4, [sp, 0x4] - str r4, [sp, 0x8] - str r4, [sp, 0xC] - str r4, [sp, 0x10] - movs r1, 0x18 - movs r2, 0xA - movs r3, 0x1E - bl sub_80EABD4 - movs r1, 0xA4 - lsls r1, 1 - adds r0, r6, r1 - str r4, [sp] - movs r2, 0xE4 - lsls r2, 1 - adds r1, r6, r2 - str r1, [sp, 0x4] - movs r1, 0x18 - movs r2, 0xA - movs r3, 0 - bl sub_80EAC30 - adds r0, r6, 0 - adds r0, 0xD8 - str r5, [sp] - str r4, [sp, 0x4] - str r4, [sp, 0x8] - ldr r1, _080EAAD0 @ =0x0000ffff - str r1, [sp, 0xC] - str r4, [sp, 0x10] - movs r1, 0x17 - movs r2, 0xA - movs r3, 0x18 - bl sub_80EABD4 - movs r1, 0xAA - lsls r1, 1 - adds r0, r6, r1 - str r4, [sp] - movs r2, 0xD9 - lsls r2, 3 - adds r1, r6, r2 - str r1, [sp, 0x4] - movs r1, 0x1D - movs r2, 0 - movs r3, 0 - bl sub_80EAC30 - adds r1, r6, 0 - adds r1, 0xC2 - movs r0, 0x2 - strh r0, [r1] - adds r1, 0x2 - movs r0, 0x1 - strh r0, [r1] - add sp, 0x14 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080EAACC: .4byte gUnknown_083DB694 -_080EAAD0: .4byte 0x0000ffff - thumb_func_end sub_80EAA44 - - thumb_func_start sub_80EAAD4 -sub_80EAAD4: @ 80EAAD4 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x14 - ldr r0, _080EABCC @ =gUnknown_083DB694 - ldr r7, [r0] - adds r0, r7, 0 - adds r0, 0xC8 - movs r1, 0xF - str r1, [sp] - movs r4, 0 - str r4, [sp, 0x4] - movs r5, 0x1 - str r5, [sp, 0x8] - str r4, [sp, 0xC] - str r4, [sp, 0x10] - movs r1, 0 - movs r2, 0xA - movs r3, 0x1E - bl sub_80EABD4 - movs r1, 0xA4 - lsls r1, 1 - adds r0, r7, r1 - str r4, [sp] - movs r1, 0xD9 - lsls r1, 3 - adds r1, r7 - mov r8, r1 - str r1, [sp, 0x4] - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl sub_80EAC30 - adds r0, r7, 0 - adds r0, 0xD8 - movs r1, 0x14 - mov r9, r1 - str r1, [sp] - str r4, [sp, 0x4] - str r4, [sp, 0x8] - str r4, [sp, 0xC] - ldr r6, _080EABD0 @ =0x0000ffff - str r6, [sp, 0x10] - movs r1, 0 - movs r2, 0xF - movs r3, 0x1E - bl sub_80EABD4 - movs r1, 0xAA - lsls r1, 1 - adds r0, r7, r1 - str r5, [sp] - mov r1, r8 - str r1, [sp, 0x4] - movs r1, 0 - movs r2, 0x5 - movs r3, 0 - bl sub_80EAC30 - adds r0, r7, 0 - adds r0, 0xE8 - movs r1, 0xA - str r1, [sp] - str r4, [sp, 0x4] - str r4, [sp, 0x8] - str r4, [sp, 0xC] - str r5, [sp, 0x10] - movs r1, 0 - movs r2, 0xA - movs r3, 0x1E - bl sub_80EABD4 - movs r1, 0xB0 - lsls r1, 1 - adds r0, r7, r1 - str r4, [sp] - adds r1, 0x68 - adds r5, r7, r1 - str r5, [sp, 0x4] - movs r1, 0 - movs r2, 0xA - movs r3, 0 - bl sub_80EAC30 - adds r0, r7, 0 - adds r0, 0xF8 - mov r1, r9 - str r1, [sp] - str r4, [sp, 0x4] - str r6, [sp, 0x8] - str r4, [sp, 0xC] - str r4, [sp, 0x10] - movs r1, 0 - movs r2, 0x14 - movs r3, 0x1E - bl sub_80EABD4 - movs r1, 0xB6 - lsls r1, 1 - adds r0, r7, r1 - str r6, [sp] - str r5, [sp, 0x4] - movs r1, 0 - movs r2, 0x14 - movs r3, 0 - bl sub_80EAC30 - adds r1, r7, 0 - adds r1, 0xC2 - movs r0, 0x4 - strh r0, [r1] - adds r1, 0x2 - movs r0, 0x5 - strh r0, [r1] - add sp, 0x14 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080EABCC: .4byte gUnknown_083DB694 -_080EABD0: .4byte 0x0000ffff - thumb_func_end sub_80EAAD4 - - thumb_func_start sub_80EABD4 -sub_80EABD4: @ 80EABD4 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - ldr r5, [sp, 0x1C] - ldr r6, [sp, 0x20] - ldr r4, [sp, 0x24] - mov r9, r4 - ldr r4, [sp, 0x28] - ldr r7, [sp, 0x2C] - mov r8, r7 - strh r1, [r0] - strh r3, [r0, 0x2] - strh r2, [r0, 0x4] - strh r5, [r0, 0x6] - strh r6, [r0, 0x8] - strh r4, [r0, 0xA] - mov r1, r9 - strh r1, [r0, 0xC] - mov r4, r8 - strh r4, [r0, 0xE] - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80EABD4 - - thumb_func_start sub_80EAC0C -sub_80EAC0C: @ 80EAC0C - ldrh r1, [r0, 0x8] - ldrh r2, [r0] - adds r1, r2 - strh r1, [r0] - ldrh r1, [r0, 0xA] - ldrh r2, [r0, 0x2] - adds r1, r2 - strh r1, [r0, 0x2] - ldrh r1, [r0, 0xC] - ldrh r2, [r0, 0x4] - adds r1, r2 - strh r1, [r0, 0x4] - ldrh r1, [r0, 0xE] - ldrh r2, [r0, 0x6] - adds r1, r2 - strh r1, [r0, 0x6] - bx lr - thumb_func_end sub_80EAC0C - - thumb_func_start sub_80EAC30 -sub_80EAC30: @ 80EAC30 - push {r4,r5,lr} - ldr r4, [sp, 0xC] - ldr r5, [sp, 0x10] - strh r1, [r0] - strh r2, [r0, 0x2] - strh r3, [r0, 0x4] - strh r4, [r0, 0x6] - str r5, [r0, 0x8] - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80EAC30 - - thumb_func_start sub_80EAC48 -sub_80EAC48: @ 80EAC48 - ldrh r1, [r0, 0x4] - ldrh r2, [r0] - adds r1, r2 - strh r1, [r0] - ldrh r1, [r0, 0x6] - ldrh r2, [r0, 0x2] - adds r1, r2 - strh r1, [r0, 0x2] - bx lr - thumb_func_end sub_80EAC48 - - thumb_func_start sub_80EAC5C -sub_80EAC5C: @ 80EAC5C - push {r4-r6,lr} - ldr r0, _080EACB4 @ =gUnknown_083DB694 - ldr r1, [r0] - adds r0, r1, 0 - adds r0, 0xBC - ldrb r0, [r0] - cmp r0, 0 - beq _080EACAC - movs r4, 0 - adds r0, r1, 0 - adds r0, 0xC2 - ldrh r2, [r0] - cmp r4, r2 - bcs _080EACA2 - adds r5, r1, 0 - adds r6, r0, 0 -_080EAC7C: - lsls r1, r4, 4 - adds r1, 0xC8 - adds r1, r5, r1 - lsls r2, r4, 1 - adds r2, r4 - lsls r2, 2 - movs r0, 0xA4 - lsls r0, 1 - adds r2, r0 - adds r2, r5, r2 - ldr r0, _080EACB8 @ =0x06006800 - bl sub_80EACBC - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - ldrh r2, [r6] - cmp r4, r2 - bcc _080EAC7C -_080EACA2: - ldr r0, _080EACB4 @ =gUnknown_083DB694 - ldr r0, [r0] - adds r0, 0xBC - movs r1, 0 - strb r1, [r0] -_080EACAC: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080EACB4: .4byte gUnknown_083DB694 -_080EACB8: .4byte 0x06006800 - thumb_func_end sub_80EAC5C - - thumb_func_start sub_80EACBC -sub_80EACBC: @ 80EACBC - push {r4-r7,lr} - sub sp, 0x10 - adds r7, r0, 0 - adds r3, r1, 0 - adds r4, r2, 0 - ldrh r2, [r3, 0x2] - ldrh r0, [r3] - subs r2, r0 - ldrh r0, [r3, 0x6] - ldrh r1, [r3, 0x4] - subs r0, r1 - lsls r0, 16 - lsrs r0, 16 - lsls r6, r2, 16 - cmp r6, 0 - ble _080EACFE - lsls r5, r0, 16 - cmp r5, 0 - ble _080EACFE - ldrh r1, [r3] - ldrh r2, [r3, 0x4] - ldr r3, [r4, 0x8] - ldrh r0, [r4] - str r0, [sp] - ldrh r0, [r4, 0x2] - str r0, [sp, 0x4] - lsrs r0, r6, 16 - str r0, [sp, 0x8] - lsrs r0, r5, 16 - str r0, [sp, 0xC] - adds r0, r7, 0 - bl sub_809D104 -_080EACFE: - add sp, 0x10 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80EACBC - - thumb_func_start sub_80EAD08 -sub_80EAD08: @ 80EAD08 - push {r4,r5,lr} - ldr r0, _080EAD58 @ =gUnknown_03004DC0 - ldrb r1, [r0, 0x14] - lsls r0, r1, 4 - subs r0, r1 - lsls r0, 7 - ldr r1, _080EAD5C @ =gUnknown_03004DE0 - adds r4, r0, r1 - adds r4, 0xB0 - ldr r0, _080EAD60 @ =gUnknown_083DB694 - ldr r1, [r0] - movs r0, 0xDD - lsls r0, 1 - adds r1, r0 - ldrh r0, [r1] - adds r2, r0, 0 - subs r2, 0x58 - movs r0, 0xFF - ands r2, r0 - movs r3, 0 - movs r5, 0xFF -_080EAD32: - ldrh r0, [r1] - adds r0, r3 - cmp r0, 0x80 - bne _080EAD42 - negs r0, r3 - adds r2, r0, 0 - subs r2, 0x58 - ands r2, r5 -_080EAD42: - strh r2, [r4] - adds r4, 0x2 - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, 0x3F - bls _080EAD32 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080EAD58: .4byte gUnknown_03004DC0 -_080EAD5C: .4byte gUnknown_03004DE0 -_080EAD60: .4byte gUnknown_083DB694 - thumb_func_end sub_80EAD08 - - thumb_func_start sub_80EAD64 -sub_80EAD64: @ 80EAD64 - push {lr} - lsls r1, 24 - ldr r2, _080EAD78 @ =gEasyChatGroupNames - lsrs r1, 22 - adds r1, r2 - ldr r1, [r1] - bl StringCopy - pop {r1} - bx r1 - .align 2, 0 -_080EAD78: .4byte gEasyChatGroupNames - thumb_func_end sub_80EAD64 - - thumb_func_start sub_80EAD7C -sub_80EAD7C: @ 80EAD7C - push {lr} - lsls r0, 24 - lsrs r0, 24 - adds r1, r0, 0 - cmp r0, 0x14 - beq _080EADA2 - cmp r0, 0x14 - bgt _080EAD9C - cmp r0, 0x11 - blt _080EADBA - ldr r0, _080EAD98 @ =0x00000804 - bl FlagGet - b _080EADB4 - .align 2, 0 -_080EAD98: .4byte 0x00000804 -_080EAD9C: - cmp r1, 0x15 - beq _080EADB0 - b _080EADBA -_080EADA2: - ldr r0, _080EADAC @ =0x00000806 - bl FlagGet - b _080EADB4 - .align 2, 0 -_080EADAC: .4byte 0x00000806 -_080EADB0: - bl sub_80EB9C8 -_080EADB4: - lsls r0, 24 - lsrs r0, 24 - b _080EADBC -_080EADBA: - movs r0, 0x1 -_080EADBC: - pop {r1} - bx r1 - thumb_func_end sub_80EAD7C - - thumb_func_start sub_80EADC0 -sub_80EADC0: @ 80EADC0 - push {lr} - lsls r0, 24 - lsrs r2, r0, 24 - lsls r1, 16 - lsrs r3, r1, 16 - cmp r2, 0x15 - bhi _080EAE82 - lsls r0, r2, 2 - ldr r1, _080EADD8 @ =_080EADDC - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080EADD8: .4byte _080EADDC - .align 2, 0 -_080EADDC: - .4byte _080EAE50 - .4byte _080EAE82 - .4byte _080EAE82 - .4byte _080EAE82 - .4byte _080EAE82 - .4byte _080EAE82 - .4byte _080EAE82 - .4byte _080EAE82 - .4byte _080EAE82 - .4byte _080EAE82 - .4byte _080EAE82 - .4byte _080EAE82 - .4byte _080EAE82 - .4byte _080EAE82 - .4byte _080EAE82 - .4byte _080EAE82 - .4byte _080EAE82 - .4byte _080EAE62 - .4byte _080EAE62 - .4byte _080EAE62 - .4byte _080EAE34 - .4byte _080EAE78 -_080EAE34: - ldr r0, _080EAE4C @ =gUnknown_083DB694 - ldr r0, [r0] - adds r0, r2 - adds r0, 0x67 - ldrb r0, [r0] - cmp r0, 0 - beq _080EAE70 - lsls r0, r3, 24 - lsrs r0, 24 - bl sub_80EB868 - b _080EAE7C - .align 2, 0 -_080EAE4C: .4byte gUnknown_083DB694 -_080EAE50: - adds r0, r3, 0 - bl SpeciesToNationalPokedexNum - lsls r0, 16 - lsrs r0, 16 - movs r1, 0 - bl GetSetPokedexFlag - b _080EAE7C -_080EAE62: - ldr r0, _080EAE74 @ =gUnknown_083DB694 - ldr r0, [r0] - adds r0, r2 - adds r0, 0x67 - ldrb r0, [r0] - cmp r0, 0 - bne _080EAE82 -_080EAE70: - movs r0, 0 - b _080EAE84 - .align 2, 0 -_080EAE74: .4byte gUnknown_083DB694 -_080EAE78: - bl sub_80EB9C8 -_080EAE7C: - lsls r0, 24 - lsrs r0, 24 - b _080EAE84 -_080EAE82: - movs r0, 0x1 -_080EAE84: - pop {r1} - bx r1 - thumb_func_end sub_80EADC0 - - thumb_func_start sub_80EAE88 -sub_80EAE88: @ 80EAE88 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0 - beq _080EAEA6 - cmp r4, 0x14 - beq _080EAEB2 - adds r0, r4, 0 - bl sub_80EAD7C - lsls r0, 24 - cmp r0, 0 - bne _080EAEBC - movs r0, 0 - b _080EAEC2 -_080EAEA6: - movs r0, 0 - bl GetHoennPokedexCount - lsls r0, 16 - lsrs r0, 16 - b _080EAEC2 -_080EAEB2: - bl sub_80EB8C0 - lsls r0, 24 - lsrs r0, 24 - b _080EAEC2 -_080EAEBC: - ldr r0, _080EAEC8 @ =gEasyChatGroupSizes - adds r0, r4, r0 - ldrb r0, [r0] -_080EAEC2: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080EAEC8: .4byte gEasyChatGroupSizes - thumb_func_end sub_80EAE88 - - thumb_func_start sub_80EAECC -sub_80EAECC: @ 80EAECC - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x10 - movs r7, 0 - ldr r1, _080EAF08 @ =gUnknown_083DB694 - ldr r0, [r1] - ldr r3, _080EAF0C @ =0x0000446c - adds r3, r0, r3 - str r3, [sp, 0x4] -_080EAEE4: - ldr r1, _080EAF10 @ =gEasyChatWordsByLetter - lsls r2, r7, 1 - adds r0, r2, r1 - ldrh r4, [r0] - adds r3, r7, 0x1 - lsls r0, r3, 1 - adds r0, r1 - ldrh r0, [r0] - str r0, [sp] - ldr r0, [sp, 0x4] - adds r1, r0, r2 - movs r0, 0 - strh r0, [r1] - mov r9, r0 - adds r6, r4, 0 - mov r10, r2 - str r3, [sp, 0x8] - b _080EB00C - .align 2, 0 -_080EAF08: .4byte gUnknown_083DB694 -_080EAF0C: .4byte 0x0000446c -_080EAF10: .4byte gEasyChatWordsByLetter -_080EAF14: - ldr r2, _080EAFAC @ =gEasyChatWordsAlphabetized - adds r0, r6, 0 - adds r1, r0, 0x1 - lsls r1, 16 - lsrs r6, r1, 16 - lsls r0, 1 - adds r0, r2 - ldrh r1, [r0] - adds r4, r1, 0 - ldr r0, _080EAFB0 @ =0x0000feff - cmp r1, r0 - bls _080EAFC8 - movs r0, 0xFF - ands r1, r0 - movs r3, 0 - subs r0, r1, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - ldr r0, _080EAFB4 @ =0x0000ffff - cmp r5, r0 - beq _080EB00C - lsls r0, r7, 4 - adds r0, r7 - lsls r0, 3 - subs r0, r7 - lsls r0, 2 - mov r8, r0 -_080EAF4A: - adds r1, r6, 0 - adds r0, r1, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 - lsls r1, 1 - ldr r0, _080EAFAC @ =gEasyChatWordsAlphabetized - adds r1, r0 - ldrh r4, [r1] - lsrs r0, r4, 9 - ldr r1, _080EAFB8 @ =0x000001ff - adds r2, r1, 0 - adds r1, r4, 0 - ands r1, r2 - str r3, [sp, 0xC] - bl sub_80EADC0 - lsls r0, 24 - ldr r3, [sp, 0xC] - cmp r0, 0 - beq _080EAF9E - cmp r3, 0 - bne _080EAF9E - ldr r3, _080EAFBC @ =gUnknown_083DB694 - ldr r2, [r3] - mov r1, r9 - adds r0, r1, 0x1 - lsls r0, 16 - lsrs r0, 16 - mov r9, r0 - lsls r1, 1 - add r1, r8 - ldr r3, _080EAFC0 @ =0x00000b78 - adds r0, r2, r3 - adds r0, r1 - strh r4, [r0] - ldr r0, _080EAFC4 @ =0x0000446c - adds r2, r0 - add r2, r10 - ldrh r0, [r2] - adds r0, 0x1 - strh r0, [r2] - movs r3, 0x1 -_080EAF9E: - subs r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - ldr r1, _080EAFB4 @ =0x0000ffff - cmp r5, r1 - bne _080EAF4A - b _080EB00C - .align 2, 0 -_080EAFAC: .4byte gEasyChatWordsAlphabetized -_080EAFB0: .4byte 0x0000feff -_080EAFB4: .4byte 0x0000ffff -_080EAFB8: .4byte 0x000001ff -_080EAFBC: .4byte gUnknown_083DB694 -_080EAFC0: .4byte 0x00000b78 -_080EAFC4: .4byte 0x0000446c -_080EAFC8: - lsrs r0, r4, 9 - ldr r3, _080EB030 @ =0x000001ff - adds r2, r3, 0 - adds r1, r4, 0 - ands r1, r2 - bl sub_80EADC0 - lsls r0, 24 - cmp r0, 0 - beq _080EB00C - ldr r0, _080EB034 @ =gUnknown_083DB694 - ldr r2, [r0] - mov r1, r9 - adds r0, r1, 0x1 - lsls r0, 16 - lsrs r0, 16 - mov r9, r0 - lsls r1, 1 - lsls r0, r7, 4 - adds r0, r7 - lsls r0, 3 - subs r0, r7 - lsls r0, 2 - adds r1, r0 - ldr r3, _080EB038 @ =0x00000b78 - adds r0, r2, r3 - adds r0, r1 - strh r4, [r0] - ldr r0, _080EB03C @ =0x0000446c - adds r2, r0 - add r2, r10 - ldrh r0, [r2] - adds r0, 0x1 - strh r0, [r2] -_080EB00C: - ldr r1, [sp] - cmp r6, r1 - bcs _080EB014 - b _080EAF14 -_080EB014: - ldr r3, [sp, 0x8] - lsls r0, r3, 16 - lsrs r7, r0, 16 - cmp r7, 0x1A - bhi _080EB020 - b _080EAEE4 -_080EB020: - add sp, 0x10 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080EB030: .4byte 0x000001ff -_080EB034: .4byte gUnknown_083DB694 -_080EB038: .4byte 0x00000b78 -_080EB03C: .4byte 0x0000446c - thumb_func_end sub_80EAECC - - thumb_func_start sub_80EB040 -sub_80EB040: @ 80EB040 - push {r4-r6,lr} - movs r3, 0 -_080EB044: - adds r6, r3, 0x1 - cmp r3, 0 - beq _080EB094 - cmp r3, 0x15 - beq _080EB094 - cmp r3, 0x12 - beq _080EB094 - cmp r3, 0x13 - beq _080EB094 - ldr r0, _080EB0A4 @ =gEasyChatGroupWords - lsls r1, r3, 2 - adds r1, r0 - ldr r2, [r1] - movs r4, 0 - ldrb r0, [r2] - cmp r0, 0xFF - beq _080EB094 - ldr r0, _080EB0A8 @ =gUnknown_083DB694 - ldr r0, [r0] - ldr r1, _080EB0AC @ =0x000044d0 - adds r5, r0, r1 -_080EB06E: - lsls r0, r4, 2 - lsls r1, r3, 10 - adds r0, r1 - adds r0, r5, r0 - str r2, [r0] - ldrb r0, [r2] - adds r1, r4, 0x1 - cmp r0, 0xFF - beq _080EB088 -_080EB080: - adds r2, 0x1 - ldrb r0, [r2] - cmp r0, 0xFF - bne _080EB080 -_080EB088: - adds r2, 0x1 - lsls r0, r1, 16 - lsrs r4, r0, 16 - ldrb r0, [r2] - cmp r0, 0xFF - bne _080EB06E -_080EB094: - lsls r0, r6, 16 - lsrs r3, r0, 16 - cmp r3, 0x15 - bls _080EB044 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080EB0A4: .4byte gEasyChatGroupWords -_080EB0A8: .4byte gUnknown_083DB694 -_080EB0AC: .4byte 0x000044d0 - thumb_func_end sub_80EB040 - - thumb_func_start sub_80EB0B0 -sub_80EB0B0: @ 80EB0B0 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x8 - ldr r3, _080EB184 @ =gUnknown_083DB694 - ldr r4, [r3] - adds r0, r4, 0 - adds r0, 0x26 - ldrb r5, [r0] - cmp r5, 0 - bne _080EB19C - movs r0, 0xDC - lsls r0, 1 - adds r2, r4, r0 - ldrb r6, [r2] - lsls r1, r6, 1 - ldr r7, _080EB188 @ =0x000044a2 - adds r0, r4, r7 - adds r0, r1 - strh r5, [r0] - movs r7, 0 - movs r0, 0 - mov r9, r0 - ldr r1, _080EB18C @ =gEasyChatGroupOrders - lsls r0, r6, 2 - adds r0, r1 - ldr r0, [r0] - str r0, [sp] - movs r1, 0 - mov r8, r1 - ldr r1, _080EB190 @ =gEasyChatGroupSizes - ldrb r0, [r2] - adds r0, r1 - ldrb r0, [r0] - cmp r8, r0 - bcc _080EB0FE - b _080EB1FE -_080EB0FE: - movs r2, 0xDC - lsls r2, 1 - adds r2, r4, r2 - str r2, [sp, 0x4] - lsls r5, r6, 24 - mov r10, r5 -_080EB10A: - mov r1, r8 - lsls r0, r1, 1 - ldr r2, [sp] - adds r5, r0, r2 - ldrh r1, [r5] - mov r2, r10 - lsrs r0, r2, 24 - bl sub_80EADC0 - lsls r0, 24 - cmp r0, 0 - beq _080EB16A - ldr r0, _080EB184 @ =gUnknown_083DB694 - ldr r3, [r0] - lsls r1, r7, 1 - mov r2, r9 - lsls r0, r2, 2 - adds r1, r0 - ldr r0, _080EB194 @ =0x00009d56 - adds r4, r3, r0 - adds r4, r1 - movs r0, 0x7F - ands r0, r6 - lsls r0, 9 - ldrh r1, [r5] - ldr r5, _080EB198 @ =0x000001ff - adds r2, r5, 0 - ands r1, r2 - orrs r0, r1 - strh r0, [r4] - lsls r0, r6, 1 - ldr r1, _080EB188 @ =0x000044a2 - adds r3, r1 - adds r3, r0 - ldrh r0, [r3] - adds r0, 0x1 - strh r0, [r3] - adds r0, r7, 0x1 - lsls r0, 16 - lsrs r7, r0, 16 - cmp r7, 0x1 - bls _080EB16A - movs r7, 0 - mov r0, r9 - adds r0, 0x1 - lsls r0, 16 - lsrs r0, 16 - mov r9, r0 -_080EB16A: - mov r0, r8 - adds r0, 0x1 - lsls r0, 16 - lsrs r0, 16 - mov r8, r0 - ldr r1, _080EB190 @ =gEasyChatGroupSizes - ldr r2, [sp, 0x4] - ldrb r0, [r2] - adds r0, r1 - ldrb r0, [r0] - cmp r8, r0 - bcc _080EB10A - b _080EB1FE - .align 2, 0 -_080EB184: .4byte gUnknown_083DB694 -_080EB188: .4byte 0x000044a2 -_080EB18C: .4byte gEasyChatGroupOrders -_080EB190: .4byte gEasyChatGroupSizes -_080EB194: .4byte 0x00009d56 -_080EB198: .4byte 0x000001ff -_080EB19C: - movs r5, 0xDC - lsls r5, 1 - adds r0, r4, r5 - ldrb r2, [r0] - movs r3, 0 - movs r6, 0 - movs r5, 0 - lsls r1, r2, 1 - ldr r7, _080EB210 @ =0x0000446c - adds r0, r4, r7 - adds r1, r0, r1 - ldrh r0, [r1] - cmp r5, r0 - bcs _080EB1FE - ldr r7, _080EB214 @ =0x00009d56 - adds r7, r4 - mov r8, r7 - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 3 - subs r0, r2 - lsls r7, r0, 2 - ldr r0, _080EB218 @ =0x00000b78 - adds r2, r4, r0 - adds r4, r1, 0 -_080EB1CE: - lsls r1, r3, 1 - lsls r0, r6, 2 - adds r1, r0 - add r1, r8 - lsls r0, r5, 1 - adds r0, r7 - adds r0, r2, r0 - ldrh r0, [r0] - strh r0, [r1] - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, 0x1 - bls _080EB1F2 - movs r3, 0 - adds r0, r6, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 -_080EB1F2: - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - ldrh r1, [r4] - cmp r5, r1 - bcc _080EB1CE -_080EB1FE: - add sp, 0x8 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080EB210: .4byte 0x0000446c -_080EB214: .4byte 0x00009d56 -_080EB218: .4byte 0x00000b78 - thumb_func_end sub_80EB0B0 - - thumb_func_start sub_80EB218 -sub_80EB218: @ 80EB218 - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r5, r0, 0 - lsls r6, r1, 16 - lsrs r4, r6, 16 - adds r7, r4, 0 - lsls r2, 16 - lsrs r2, 16 - mov r8, r2 - adds r0, r4, 0 - bl sub_80EB37C - lsls r0, 24 - cmp r0, 0 - beq _080EB240 - ldr r1, _080EB23C @ =gOtherText_ThreeQuestions - b _080EB2A2 - .align 2, 0 -_080EB23C: .4byte gOtherText_ThreeQuestions -_080EB240: - ldr r0, _080EB250 @ =0x0000ffff - cmp r4, r0 - bne _080EB254 - adds r1, r5, 0 - movs r0, 0xFF - strb r0, [r1] - b _080EB2AA - .align 2, 0 -_080EB250: .4byte 0x0000ffff -_080EB254: - lsrs r2, r6, 25 - ldr r1, _080EB268 @ =0x000001ff - ands r1, r7 - cmp r2, 0x13 - bgt _080EB26C - cmp r2, 0x12 - bge _080EB280 - cmp r2, 0 - beq _080EB270 - b _080EB290 - .align 2, 0 -_080EB268: .4byte 0x000001ff -_080EB26C: - cmp r2, 0x15 - bne _080EB290 -_080EB270: - movs r0, 0xB - muls r1, r0 - ldr r0, _080EB27C @ =gSpeciesNames - adds r1, r0 - b _080EB2A2 - .align 2, 0 -_080EB27C: .4byte gSpeciesNames -_080EB280: - movs r0, 0xD - muls r1, r0 - ldr r0, _080EB28C @ =gMoveNames - adds r1, r0 - b _080EB2A2 - .align 2, 0 -_080EB28C: .4byte gMoveNames -_080EB290: - ldr r0, _080EB2CC @ =gUnknown_083DB694 - ldr r0, [r0] - lsls r1, 2 - lsls r2, 10 - adds r1, r2 - ldr r2, _080EB2D0 @ =0x000044d0 - adds r0, r2 - adds r0, r1 - ldr r1, [r0] -_080EB2A2: - adds r0, r5, 0 - bl StringCopy - adds r1, r0, 0 -_080EB2AA: - movs r0, 0xFC - strb r0, [r1] - movs r0, 0x13 - strb r0, [r1, 0x1] - mov r2, r8 - lsls r0, r2, 3 - strb r0, [r1, 0x2] - adds r1, 0x3 - movs r0, 0xFF - strb r0, [r1] - adds r0, r1, 0 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_080EB2CC: .4byte gUnknown_083DB694 -_080EB2D0: .4byte 0x000044d0 - thumb_func_end sub_80EB218 - - thumb_func_start sub_80EB2D4 -sub_80EB2D4: @ 80EB2D4 - push {r4-r6,lr} - lsls r5, r0, 16 - lsrs r4, r5, 16 - adds r6, r4, 0 - adds r0, r4, 0 - bl sub_80EB37C - lsls r0, 24 - cmp r0, 0 - beq _080EB2F8 - ldr r0, _080EB2F4 @ =gOtherText_ThreeQuestions - bl StringLength - lsls r0, 16 - lsrs r0, 16 - b _080EB374 - .align 2, 0 -_080EB2F4: .4byte gOtherText_ThreeQuestions -_080EB2F8: - ldr r0, _080EB304 @ =0x0000ffff - cmp r4, r0 - bne _080EB308 - movs r0, 0 - b _080EB374 - .align 2, 0 -_080EB304: .4byte 0x0000ffff -_080EB308: - lsrs r2, r5, 25 - ldr r1, _080EB31C @ =0x000001ff - ands r1, r6 - cmp r2, 0x13 - bgt _080EB320 - cmp r2, 0x12 - bge _080EB334 - cmp r2, 0 - beq _080EB324 - b _080EB344 - .align 2, 0 -_080EB31C: .4byte 0x000001ff -_080EB320: - cmp r2, 0x15 - bne _080EB344 -_080EB324: - movs r0, 0xB - muls r1, r0 - ldr r0, _080EB330 @ =gSpeciesNames - adds r1, r0 - b _080EB356 - .align 2, 0 -_080EB330: .4byte gSpeciesNames -_080EB334: - movs r0, 0xD - muls r1, r0 - ldr r0, _080EB340 @ =gMoveNames - adds r1, r0 - b _080EB356 - .align 2, 0 -_080EB340: .4byte gMoveNames -_080EB344: - ldr r0, _080EB35C @ =gUnknown_083DB694 - ldr r0, [r0] - lsls r1, 2 - lsls r2, 10 - adds r1, r2 - ldr r2, _080EB360 @ =0x000044d0 - adds r0, r2 - adds r0, r1 - ldr r1, [r0] -_080EB356: - movs r2, 0 - b _080EB36C - .align 2, 0 -_080EB35C: .4byte gUnknown_083DB694 -_080EB360: .4byte 0x000044d0 -_080EB364: - adds r1, 0x1 - adds r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 -_080EB36C: - ldrb r0, [r1] - cmp r0, 0xFF - bne _080EB364 - adds r0, r2, 0 -_080EB374: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_80EB2D4 - - thumb_func_start sub_80EB37C -sub_80EB37C: @ 80EB37C - push {r4,r5,lr} - lsls r1, r0, 16 - lsrs r3, r1, 16 - ldr r0, _080EB3A0 @ =0x0000ffff - cmp r3, r0 - beq _080EB3EA - lsrs r2, r1, 25 - ldr r5, _080EB3A4 @ =0x000001ff - ands r5, r3 - cmp r2, 0x15 - bhi _080EB3F4 - cmp r2, 0x13 - bgt _080EB3A8 - cmp r2, 0x12 - bge _080EB3AC - cmp r2, 0 - beq _080EB3AC - b _080EB3E0 - .align 2, 0 -_080EB3A0: .4byte 0x0000ffff -_080EB3A4: .4byte 0x000001ff -_080EB3A8: - cmp r2, 0x15 - bne _080EB3E0 -_080EB3AC: - ldr r0, _080EB3D8 @ =gEasyChatGroupWords - lsls r1, r2, 2 - adds r1, r0 - ldr r4, [r1] - movs r3, 0 - ldr r0, _080EB3DC @ =gEasyChatGroupSizes - adds r0, r2, r0 - ldrb r0, [r0] - cmp r3, r0 - bcs _080EB3F4 - adds r1, r0, 0 -_080EB3C2: - lsls r0, r3, 1 - adds r0, r4 - ldrh r0, [r0] - cmp r5, r0 - beq _080EB3EA - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, r1 - bcc _080EB3C2 - b _080EB3F4 - .align 2, 0 -_080EB3D8: .4byte gEasyChatGroupWords -_080EB3DC: .4byte gEasyChatGroupSizes -_080EB3E0: - ldr r0, _080EB3F0 @ =gEasyChatGroupSizes - adds r0, r2, r0 - ldrb r0, [r0] - cmp r5, r0 - bcs _080EB3F4 -_080EB3EA: - movs r0, 0 - b _080EB3F6 - .align 2, 0 -_080EB3F0: .4byte gEasyChatGroupSizes -_080EB3F4: - movs r0, 0x1 -_080EB3F6: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_80EB37C - - thumb_func_start de_sub_80EB748 -de_sub_80EB748: @ 80EB3FC - push {r4-r7,lr} - adds r3, r0, 0 - adds r5, r1, 0 - movs r7, 0 - cmp r3, 0x13 - bgt _080EB412 - cmp r3, 0x12 - bge _080EB416 - cmp r3, 0 - beq _080EB416 - b _080EB458 -_080EB412: - cmp r3, 0x15 - bne _080EB458 -_080EB416: - ldr r1, _080EB438 @ =gEasyChatGroupWords - lsls r0, r3, 2 - adds r0, r1 - ldr r4, [r0] - movs r2, 0 - ldr r0, _080EB43C @ =gEasyChatGroupSizes - adds r1, r3, r0 - adds r6, r0, 0 - ldrb r1, [r1] - cmp r2, r1 - bge _080EB45A - ldrh r0, [r4] - cmp r5, r0 - bne _080EB440 - movs r7, 0 - b _080EB45A - .align 2, 0 -_080EB438: .4byte gEasyChatGroupWords -_080EB43C: .4byte gEasyChatGroupSizes -_080EB440: - adds r2, 0x1 - adds r0, r3, r6 - ldrb r0, [r0] - cmp r2, r0 - bge _080EB45A - lsls r0, r2, 1 - adds r0, r4 - ldrh r0, [r0] - cmp r5, r0 - bne _080EB440 - adds r7, r2, 0 - b _080EB45A -_080EB458: - adds r7, r5, 0 -_080EB45A: - adds r0, r7, 0 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end de_sub_80EB748 - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/easy_chat.s b/asm/easy_chat.s deleted file mode 100644 index e08d71083..000000000 --- a/asm/easy_chat.s +++ /dev/null @@ -1,10732 +0,0 @@ - .include "constants/gba_constants.inc" - .include "asm/macros.inc" - - .syntax unified - - .text - - thumb_func_start sub_80E60D8 -sub_80E60D8: @ 80E60D8 - push {r4-r7,lr} - movs r4, 0x3 - ldr r0, _080E60F4 @ =gSpecialVar_0x8004 - ldrh r1, [r0] - adds r7, r0, 0 - cmp r1, 0xD - bls _080E60E8 - b _080E6284 -_080E60E8: - lsls r0, r1, 2 - ldr r1, _080E60F8 @ =_080E60FC - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080E60F4: .4byte gSpecialVar_0x8004 -_080E60F8: .4byte _080E60FC - .align 2, 0 -_080E60FC: - .4byte _080E6134 - .4byte _080E613C - .4byte _080E6144 - .4byte _080E614C - .4byte _080E6154 - .4byte _080E619C - .4byte _080E616C - .4byte _080E61BC - .4byte _080E61E0 - .4byte _080E61FC - .4byte _080E6200 - .4byte _080E6214 - .4byte _080E623C - .4byte _080E6260 -_080E6134: - ldr r1, _080E6138 @ =gSaveBlock1 + 0x2B1C - b _080E624C - .align 2, 0 -_080E6138: .4byte gSaveBlock1 + 0x2B1C -_080E613C: - ldr r1, _080E6140 @ =gSaveBlock1 + 0x2B28 - b _080E6276 - .align 2, 0 -_080E6140: .4byte gSaveBlock1 + 0x2B28 -_080E6144: - ldr r1, _080E6148 @ =gSaveBlock1 + 0x2B34 - b _080E624C - .align 2, 0 -_080E6148: .4byte gSaveBlock1 + 0x2B34 -_080E614C: - ldr r1, _080E6150 @ =gSaveBlock1 + 0x2B40 - b _080E6276 - .align 2, 0 -_080E6150: .4byte gSaveBlock1 + 0x2B40 -_080E6154: - ldr r0, _080E6164 @ =gSpecialVar_0x8005 - ldrh r1, [r0] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, _080E6168 @ =gSaveBlock1 + 0x2B4C - adds r1, r0, r1 - b _080E624C - .align 2, 0 -_080E6164: .4byte gSpecialVar_0x8005 -_080E6168: .4byte gSaveBlock1 + 0x2B4C -_080E616C: - ldr r0, _080E6194 @ =gSaveBlock1 + 0x2D94 - movs r2, 0 - ldr r1, _080E6198 @ =sub_80546B8 - mov r12, r1 - adds r3, r0, 0 - adds r3, 0xE - adds r5, r0, 0x2 - adds r6, r3, 0 -_080E617C: - lsls r0, r2, 1 - adds r1, r3, r0 - adds r0, r5, r0 - ldrh r0, [r0] - strh r0, [r1] - adds r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - cmp r2, 0x5 - bls _080E617C - adds r1, r6, 0 - b _080E627A - .align 2, 0 -_080E6194: .4byte gSaveBlock1 + 0x2D94 -_080E6198: .4byte sub_80546B8 -_080E619C: - ldr r0, _080E61B0 @ =gSpecialVar_0x8005 - ldrh r1, [r0] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, _080E61B4 @ =gSaveBlock1 + 0x273C - adds r1, r0, r1 - ldr r0, _080E61B8 @ =gSpecialVar_0x8006 - ldrb r4, [r0] - b _080E6276 - .align 2, 0 -_080E61B0: .4byte gSpecialVar_0x8005 -_080E61B4: .4byte gSaveBlock1 + 0x273C -_080E61B8: .4byte gSpecialVar_0x8006 -_080E61BC: - ldr r0, _080E61D4 @ =gSpecialVar_0x8005 - ldrh r0, [r0] - lsls r1, r0, 3 - adds r1, r0 - lsls r1, 2 - ldr r0, _080E61D8 @ =gSaveBlock1 + 0x2754 - adds r1, r0 - ldr r0, _080E61DC @ =gSpecialVar_0x8006 - ldrh r0, [r0] - lsls r0, 1 - adds r1, r0 - b _080E624A - .align 2, 0 -_080E61D4: .4byte gSpecialVar_0x8005 -_080E61D8: .4byte gSaveBlock1 + 0x2754 -_080E61DC: .4byte gSpecialVar_0x8006 -_080E61E0: - ldr r0, _080E61F4 @ =gSpecialVar_0x8005 - ldrh r1, [r0] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, _080E61F8 @ =gSaveBlock1 + 0x273A - adds r1, r0, r1 - movs r4, 0 - b _080E6276 - .align 2, 0 -_080E61F4: .4byte gSpecialVar_0x8005 -_080E61F8: .4byte gSaveBlock1 + 0x273A -_080E61FC: - movs r1, 0 - b _080E624C -_080E6200: - ldr r1, _080E620C @ =gSaveBlock1 + 0x2B16 - ldr r2, _080E6210 @ =0x0000ffff - adds r0, r2, 0 - strh r0, [r1] - b _080E624A - .align 2, 0 -_080E620C: .4byte gSaveBlock1 + 0x2B16 -_080E6210: .4byte 0x0000ffff -_080E6214: - ldr r0, _080E6230 @ =gSpecialVar_0x8005 - ldrh r0, [r0] - lsls r1, r0, 3 - adds r1, r0 - lsls r1, 2 - ldr r0, _080E6234 @ =gSaveBlock1 + 0x273C - adds r1, r0 - ldr r0, _080E6238 @ =gSpecialVar_0x8006 - ldrh r0, [r0] - lsls r0, 1 - adds r1, r0 - movs r4, 0 - b _080E6276 - .align 2, 0 -_080E6230: .4byte gSpecialVar_0x8005 -_080E6234: .4byte gSaveBlock1 + 0x273C -_080E6238: .4byte gSpecialVar_0x8006 -_080E623C: - ldr r0, _080E6254 @ =gSpecialVar_0x8005 - ldrh r1, [r0] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, _080E6258 @ =gSaveBlock1 + 0x2750 - adds r1, r0, r1 -_080E624A: - movs r4, 0x1 -_080E624C: - ldr r0, _080E625C @ =sub_80546B8 - mov r12, r0 - b _080E627A - .align 2, 0 -_080E6254: .4byte gSpecialVar_0x8005 -_080E6258: .4byte gSaveBlock1 + 0x2750 -_080E625C: .4byte sub_80546B8 -_080E6260: - ldr r1, _080E628C @ =gSharedMem + 0x1000 - ldr r0, _080E6290 @ =0x00009c7c - adds r2, r1, r0 - ldr r0, _080E6294 @ =0x0000ffff - strh r0, [r2] - ldr r0, _080E6298 @ =0x00009c7e - adds r1, r0 - movs r0, 0x1 - negs r0, r0 - strh r0, [r1] - adds r1, r2, 0 -_080E6276: - ldr r2, _080E629C @ =sub_80546B8 - mov r12, r2 -_080E627A: - ldrb r0, [r7] - mov r2, r12 - adds r3, r4, 0 - bl sub_80E62A0 -_080E6284: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080E628C: .4byte gSharedMem + 0x1000 -_080E6290: .4byte 0x00009c7c -_080E6294: .4byte 0x0000ffff -_080E6298: .4byte 0x00009c7e -_080E629C: .4byte sub_80546B8 - thumb_func_end sub_80E60D8 - - thumb_func_start sub_80E62A0 -sub_80E62A0: @ 80E62A0 - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r4, _080E62DC @ =gSharedMem + 0x1000 - str r2, [r4] - str r1, [r4, 0x4] - strb r0, [r4, 0x8] - strb r3, [r4, 0xB] - cmp r0, 0x9 - bne _080E62D0 - ldr r0, _080E62E0 @ =0x00009c7c - adds r2, r4, r0 - str r2, [r4, 0x4] - ldr r0, _080E62E4 @ =gSaveBlock1 - ldr r3, _080E62E8 @ =0x00002dd8 - adds r1, r0, r3 - ldrh r1, [r1] - strh r1, [r2] - ldr r1, _080E62EC @ =0x00002dda - adds r0, r1 - ldrh r1, [r0] - ldr r2, _080E62F0 @ =0x00009c7e - adds r0, r4, r2 - strh r1, [r0] -_080E62D0: - ldr r0, _080E62F4 @ =sub_80E62F8 - bl SetMainCallback2 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080E62DC: .4byte gSharedMem + 0x1000 -_080E62E0: .4byte 0x00009c7c -_080E62E4: .4byte gSaveBlock1 -_080E62E8: .4byte 0x00002dd8 -_080E62EC: .4byte 0x00002dda -_080E62F0: .4byte 0x00009c7e -_080E62F4: .4byte sub_80E62F8 - thumb_func_end sub_80E62A0 - - thumb_func_start sub_80E62F8 -sub_80E62F8: @ 80E62F8 - push {lr} - sub sp, 0x4 - ldr r0, _080E6314 @ =gMain - ldr r1, _080E6318 @ =0x0000043c - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0x8 - bhi _080E6344 - lsls r0, 2 - ldr r1, _080E631C @ =_080E6320 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080E6314: .4byte gMain -_080E6318: .4byte 0x0000043c -_080E631C: .4byte _080E6320 - .align 2, 0 -_080E6320: - .4byte _080E6344 - .4byte _080E6380 - .4byte _080E638C - .4byte _080E63A8 - .4byte _080E63AE - .4byte _080E63B4 - .4byte _080E63BE - .4byte _080E63D8 - .4byte _080E63EA -_080E6344: - movs r1, 0x80 - lsls r1, 19 - movs r0, 0 - strh r0, [r1] - movs r0, 0 - bl SetVBlankCallback - bl ResetPaletteFade - bl ResetSpriteData - bl dp12_8087EA4 - bl remove_some_task - bl sub_80EAD08 - ldr r2, _080E637C @ =gUnknown_083DB698 - ldr r0, [r2] - ldr r1, [r2, 0x4] - ldr r2, [r2, 0x8] - bl sub_80895F8 - bl FreeSpriteTileRanges - bl FreeAllSpritePalettes - b _080E6402 - .align 2, 0 -_080E637C: .4byte gUnknown_083DB698 -_080E6380: - ldr r0, _080E6388 @ =gWindowConfig_81E6DA8 - bl SetUpWindowConfig - b _080E6402 - .align 2, 0 -_080E6388: .4byte gWindowConfig_81E6DA8 -_080E638C: - ldr r0, _080E63A0 @ =gWindowConfig_81E6D54 - bl InitMenuWindow - ldr r0, _080E63A4 @ =gWindowConfig_81E6DA8 - bl InitMenuWindow - bl MenuZeroFillScreen - b _080E6402 - .align 2, 0 -_080E63A0: .4byte gWindowConfig_81E6D54 -_080E63A4: .4byte gWindowConfig_81E6DA8 -_080E63A8: - bl sub_80E6424 - b _080E6402 -_080E63AE: - bl sub_80E8DD8 - b _080E6402 -_080E63B4: - bl sub_80E8218 - bl sub_80E8CEC - b _080E6402 -_080E63BE: - bl sub_80E69F8 - ldr r0, _080E63D0 @ =sub_80E6AA8 - bl sub_80E682C - ldr r0, _080E63D4 @ =sub_80E6A6C - bl SetVBlankCallback - b _080E6402 - .align 2, 0 -_080E63D0: .4byte sub_80E6AA8 -_080E63D4: .4byte sub_80E6A6C -_080E63D8: - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - b _080E6402 -_080E63EA: - movs r1, 0x80 - lsls r1, 19 - movs r2, 0xFA - lsls r2, 5 - adds r0, r2, 0 - strh r0, [r1] - ldr r0, _080E6414 @ =sub_80E6A88 - bl SetMainCallback2 - ldr r0, _080E6418 @ =0x00000805 - bl FlagSet -_080E6402: - ldr r1, _080E641C @ =gMain - ldr r0, _080E6420 @ =0x0000043c - adds r1, r0 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - add sp, 0x4 - pop {r0} - bx r0 - .align 2, 0 -_080E6414: .4byte sub_80E6A88 -_080E6418: .4byte 0x00000805 -_080E641C: .4byte gMain -_080E6420: .4byte 0x0000043c - thumb_func_end sub_80E62F8 - - thumb_func_start sub_80E6424 -sub_80E6424: @ 80E6424 - push {lr} - ldr r2, _080E6444 @ =gSharedMem + 0x1000 - ldr r0, _080E6448 @ =gUnknown_083DB6A4 - ldrb r1, [r2, 0x8] - adds r1, r0 - ldrb r0, [r1] - strb r0, [r2, 0x9] - ldrb r0, [r2, 0x9] - adds r3, r2, 0 - cmp r0, 0x5 - bhi _080E6512 - lsls r0, 2 - ldr r1, _080E644C @ =_080E6450 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080E6444: .4byte gSharedMem + 0x1000 -_080E6448: .4byte gUnknown_083DB6A4 -_080E644C: .4byte _080E6450 - .align 2, 0 -_080E6450: - .4byte _080E64A0 - .4byte _080E64B8 - .4byte _080E64DA - .4byte _080E64F6 - .4byte _080E6468 - .4byte _080E6480 -_080E6468: - movs r2, 0x4 - strb r2, [r3, 0xA] - adds r0, r3, 0 - adds r0, 0x83 - movs r1, 0x2 - strb r1, [r0] - adds r0, 0x1 - strb r1, [r0] - adds r1, r3, 0 - adds r1, 0x88 - movs r0, 0x5 - b _080E64D0 -_080E6480: - movs r1, 0x4 - strb r1, [r3, 0xA] - adds r2, r3, 0 - adds r2, 0x83 - movs r0, 0x1 - strb r0, [r2] - adds r0, r3, 0 - adds r0, 0x84 - strb r1, [r0] - adds r1, r3, 0 - adds r1, 0x88 - movs r0, 0x10 - strh r0, [r1] - adds r1, 0x2 - movs r0, 0x2 - b _080E6510 -_080E64A0: - movs r0, 0x6 - strb r0, [r3, 0xA] - adds r1, r3, 0 - adds r1, 0x83 - movs r0, 0x2 - strb r0, [r1] - adds r0, r3, 0 - adds r0, 0x84 - movs r2, 0x3 - strb r2, [r0] - adds r1, 0x5 - b _080E64CE -_080E64B8: - movs r2, 0 - movs r0, 0x9 - strb r0, [r3, 0xA] - adds r1, r3, 0 - adds r1, 0x83 - movs r0, 0x2 - strb r0, [r1] - adds r1, 0x1 - movs r0, 0x5 - strb r0, [r1] - adds r1, 0x4 -_080E64CE: - movs r0, 0x4 -_080E64D0: - strh r0, [r1] - adds r0, r3, 0 - adds r0, 0x8A - strh r2, [r0] - b _080E6512 -_080E64DA: - movs r1, 0x1 - strb r1, [r3, 0xA] - adds r0, r3, 0 - adds r0, 0x83 - strb r1, [r0] - adds r0, 0x1 - strb r1, [r0] - adds r1, r3, 0 - adds r1, 0x88 - movs r0, 0x10 - strh r0, [r1] - adds r1, 0x2 - movs r0, 0x4 - b _080E6510 -_080E64F6: - movs r0, 0x2 - strb r0, [r3, 0xA] - adds r1, r3, 0 - adds r1, 0x83 - strb r0, [r1] - adds r1, 0x1 - movs r0, 0x1 - strb r0, [r1] - adds r1, 0x4 - movs r0, 0x5 - strh r0, [r1] - adds r1, 0x2 - movs r0, 0x3 -_080E6510: - strh r0, [r1] -_080E6512: - adds r1, r3, 0 - adds r1, 0x86 - movs r0, 0 - strb r0, [r1] - subs r1, 0x1 - strb r0, [r1] - adds r1, 0x2 - strb r0, [r1] - subs r1, 0x61 - strb r0, [r1] - movs r2, 0xDD - lsls r2, 1 - adds r1, r3, r2 - strh r0, [r1] - movs r0, 0xDF - lsls r0, 1 - adds r1, r3, r0 - movs r0, 0x2 - strb r0, [r1] - bl sub_80E6554 - bl sub_80EAECC - bl sub_80EB040 - bl sub_80E7E50 - bl sub_80E6630 - bl sub_80E6690 - pop {r0} - bx r0 - thumb_func_end sub_80E6424 - - thumb_func_start sub_80E6554 -sub_80E6554: @ 80E6554 - push {r4-r7,lr} - sub sp, 0x4 - movs r4, 0 - movs r7, 0 - ldr r0, _080E6564 @ =gSharedMem + 0x1000 - mov r12, r0 - b _080E656E - .align 2, 0 -_080E6564: .4byte gSharedMem + 0x1000 -_080E6568: - adds r0, r7, 0x1 - lsls r0, 16 - lsrs r7, r0, 16 -_080E656E: - movs r5, 0 - lsls r3, r7, 1 - mov r6, r12 - adds r6, 0x2A - adds r2, r3, r6 - adds r1, r4, 0 - adds r0, r1, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - strb r1, [r2] - cmp r4, 0x11 - beq _080E65A6 -_080E6586: - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0x1 - bhi _080E65A2 - adds r2, r5, r3 - adds r2, r6 - adds r1, r4, 0 - adds r0, r1, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - strb r1, [r2] - cmp r4, 0x11 - bne _080E6586 -_080E65A2: - cmp r4, 0x11 - bne _080E6568 -_080E65A6: - movs r0, 0x11 - mov r1, r12 - strh r0, [r1, 0x28] - cmp r4, 0x15 - bhi _080E6612 - mov r6, r12 - adds r2, r6, 0 - adds r2, 0x78 -_080E65B6: - lsls r0, r4, 24 - lsrs r0, 24 - str r2, [sp] - bl sub_80EAD7C - lsls r0, 24 - lsrs r1, r0, 24 - ldr r2, [sp] - cmp r1, 0 - beq _080E65FC - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0x1 - bls _080E65DC - adds r0, r7, 0x1 - lsls r0, 16 - lsrs r7, r0, 16 - movs r5, 0 -_080E65DC: - lsls r0, r7, 1 - adds r0, r5, r0 - adds r1, r6, 0 - adds r1, 0x2A - adds r0, r1 - strb r4, [r0] - adds r0, r4, 0 - subs r0, 0x11 - adds r0, r2 - movs r1, 0x1 - strb r1, [r0] - ldrh r0, [r6, 0x28] - adds r0, 0x1 - strh r0, [r6, 0x28] - mov r12, r6 - b _080E6608 -_080E65FC: - adds r0, r4, 0 - subs r0, 0x11 - adds r0, r2 - strb r1, [r0] - ldr r0, _080E662C @ =gSharedMem + 0x1000 - mov r12, r0 -_080E6608: - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0x15 - bls _080E65B6 -_080E6612: - mov r1, r12 - ldrh r0, [r1, 0x28] - adds r0, 0x1 - asrs r0, 1 - movs r1, 0xDB - lsls r1, 1 - add r1, r12 - strb r0, [r1] - add sp, 0x4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080E662C: .4byte gSharedMem + 0x1000 - thumb_func_end sub_80E6554 - - thumb_func_start sub_80E6630 -sub_80E6630: @ 80E6630 - push {r4-r7,lr} - movs r1, 0 - ldr r0, _080E6664 @ =gUnknown_083DB6B2 - mov r12, r0 -_080E6638: - lsls r0, r1, 4 - mov r2, r12 - adds r5, r0, r2 - movs r3, 0 - ldrb r0, [r5] - adds r7, r1, 0x1 - cmp r0, 0xFF - beq _080E6680 - lsls r0, r1, 3 - subs r0, r1 - lsls r4, r0, 1 - ldr r6, _080E6668 @ =gSharedMem + 0x1040 -_080E6650: - adds r0, r5, r3 - ldrb r1, [r0] - adds r2, r1, 0 - cmp r2, 0 - beq _080E666C - adds r0, r3, r4 - adds r0, r6 - adds r1, 0x46 - strb r1, [r0] - b _080E6672 - .align 2, 0 -_080E6664: .4byte gUnknown_083DB6B2 -_080E6668: .4byte gSharedMem + 0x1040 -_080E666C: - adds r0, r3, r4 - adds r0, r6 - strb r2, [r0] -_080E6672: - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - adds r0, r5, r3 - ldrb r0, [r0] - cmp r0, 0xFF - bne _080E6650 -_080E6680: - lsls r0, r7, 24 - lsrs r1, r0, 24 - cmp r1, 0x3 - bls _080E6638 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80E6630 - - thumb_func_start sub_80E6690 -sub_80E6690: @ 80E6690 - push {r4-r6,lr} - sub sp, 0x10 - mov r0, sp - ldr r1, _080E66E0 @ =gUnknown_083DB7DC - ldm r1!, {r2-r4} - stm r0!, {r2-r4} - ldr r1, [r1] - str r1, [r0] - movs r5, 0 - ldr r6, _080E66E4 @ =gUnknown_083DB7C0 -_080E66A4: - ldr r0, _080E66E8 @ =gSharedMem + 0x1000 - ldrb r0, [r0, 0x8] - lsls r0, 1 - adds r0, r5, r0 - adds r0, r6 - ldrb r1, [r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - ldr r1, _080E66EC @ =gUnknown_083DB6F4 - adds r4, r0, r1 - lsls r0, r5, 3 - add r0, sp - ldr r0, [r0] - ldr r1, [r4] - bl StringCopy - adds r3, r0, 0 - ldrb r0, [r4, 0x8] - cmp r0, 0 - beq _080E66F0 - lsls r0, r5, 1 - adds r0, 0x1 - lsls r0, 2 - add r0, sp - ldr r0, [r0] - ldr r1, [r4, 0x4] - bl StringCopy - b _080E670A - .align 2, 0 -_080E66E0: .4byte gUnknown_083DB7DC -_080E66E4: .4byte gUnknown_083DB7C0 -_080E66E8: .4byte gSharedMem + 0x1000 -_080E66EC: .4byte gUnknown_083DB6F4 -_080E66F0: - strb r0, [r3] - adds r3, 0x1 - ldr r1, [r4, 0x4] - adds r0, r3, 0 - bl StringCopy - lsls r0, r5, 1 - adds r0, 0x1 - lsls r0, 2 - add r0, sp - ldr r1, [r0] - movs r0, 0xFF - strb r0, [r1] -_080E670A: - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0x1 - bls _080E66A4 - movs r5, 0 - ldr r3, _080E6758 @ =gSharedMem + 0x1000 - ldr r0, _080E675C @ =0x00009da4 - adds r2, r3, r0 - movs r1, 0 -_080E671E: - adds r0, r5, r2 - strb r1, [r0] - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0x23 - bls _080E671E - ldr r1, _080E675C @ =0x00009da4 - adds r0, r3, r1 - adds r0, r5, r0 - movs r4, 0x1 - negs r4, r4 - adds r2, r4, 0 - movs r1, 0xFF - strb r1, [r0] - ldr r0, _080E6760 @ =0x00009f6e - adds r3, r0 - movs r0, 0xFC - strb r0, [r3] - movs r0, 0x11 - strb r0, [r3, 0x1] - movs r0, 0xE0 - strb r0, [r3, 0x2] - strb r2, [r3, 0x3] - add sp, 0x10 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080E6758: .4byte gSharedMem + 0x1000 -_080E675C: .4byte 0x00009da4 -_080E6760: .4byte 0x00009f6e - thumb_func_end sub_80E6690 - - thumb_func_start InitEasyChatPhrases -InitEasyChatPhrases: @ 80E6764 - push {r4-r6,lr} - movs r3, 0 - ldr r4, _080E680C @ =gSaveBlock1 + 0x2B1C - ldr r2, _080E6810 @ =gUnknown_083DB7EC -_080E676C: - lsls r0, r3, 1 - adds r1, r0, r4 - adds r0, r2 - ldrh r0, [r0] - strh r0, [r1] - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, 0x3 - bls _080E676C - movs r3, 0 - ldr r4, _080E6814 @ =gSaveBlock1 + 0x2B28 - ldr r2, _080E6818 @ =gUnknown_083DB7F4 -_080E6786: - lsls r0, r3, 1 - adds r1, r0, r4 - adds r0, r2 - ldrh r0, [r0] - strh r0, [r1] - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, 0x5 - bls _080E6786 - movs r3, 0 - ldr r5, _080E681C @ =gSaveBlock1 + 0x2B34 - ldr r0, _080E6820 @ =0x0000ffff - adds r4, r0, 0 - adds r6, r5, 0 - adds r6, 0xC -_080E67A6: - lsls r1, r3, 1 - adds r2, r1, r5 - ldrh r0, [r2] - orrs r0, r4 - strh r0, [r2] - adds r1, r6 - ldrh r0, [r1] - orrs r0, r4 - strh r0, [r1] - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, 0x5 - bls _080E67A6 - movs r3, 0 - ldr r6, _080E6824 @ =gSaveBlock1 + 0x2B4C - ldr r0, _080E6820 @ =0x0000ffff - adds r5, r0, 0 -_080E67CA: - movs r2, 0 - lsls r0, r3, 3 - adds r0, r3 - lsls r4, r0, 2 -_080E67D2: - lsls r0, r2, 1 - adds r0, r4 - adds r0, r6 - ldrh r1, [r0] - orrs r1, r5 - strh r1, [r0] - adds r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - cmp r2, 0x8 - bls _080E67D2 - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, 0xF - bls _080E67CA - movs r3, 0 - ldr r2, _080E6828 @ =gSaveBlock1 + 0x2D8C - movs r1, 0 -_080E67F8: - adds r0, r3, r2 - strb r1, [r0] - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, 0x3F - bls _080E67F8 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080E680C: .4byte gSaveBlock1 + 0x2B1C -_080E6810: .4byte gUnknown_083DB7EC -_080E6814: .4byte gSaveBlock1 + 0x2B28 -_080E6818: .4byte gUnknown_083DB7F4 -_080E681C: .4byte gSaveBlock1 + 0x2B34 -_080E6820: .4byte 0x0000ffff -_080E6824: .4byte gSaveBlock1 + 0x2B4C -_080E6828: .4byte gSaveBlock1 + 0x2D8C - thumb_func_end InitEasyChatPhrases - - thumb_func_start sub_80E682C -sub_80E682C: @ 80E682C - ldr r1, _080E6838 @ =gSharedMem + 0x1000 - str r0, [r1, 0x20] - movs r0, 0 - strh r0, [r1, 0x24] - bx lr - .align 2, 0 -_080E6838: .4byte gSharedMem + 0x1000 - thumb_func_end sub_80E682C - - thumb_func_start sub_80E683C -sub_80E683C: @ 80E683C - push {r4,r5,lr} - ldr r1, _080E6890 @ =gSharedMem + 0x1000 - adds r0, r1, 0 - adds r0, 0x26 - ldrb r0, [r0] - adds r2, r1, 0 - cmp r0, 0 - bne _080E6898 - movs r1, 0 - movs r0, 0xDB - lsls r0, 1 - adds r3, r2, r0 - movs r0, 0 - ldrsb r0, [r3, r0] - cmp r1, r0 - bge _080E6876 - movs r0, 0xD5 - lsls r0, 1 - adds r5, r2, r0 - movs r4, 0x2 -_080E6864: - adds r0, r1, r5 - strb r4, [r0] - adds r0, r1, 0x1 - lsls r0, 16 - lsrs r1, r0, 16 - movs r0, 0 - ldrsb r0, [r3, r0] - cmp r1, r0 - blt _080E6864 -_080E6876: - adds r0, r2, r1 - ldr r1, _080E6894 @ =0x000001a9 - adds r3, r0, r1 - ldrh r0, [r2, 0x28] - movs r1, 0x1 - ands r0, r1 - strb r0, [r3] - cmp r0, 0 - bne _080E68B8 - movs r0, 0x2 - strb r0, [r3] - b _080E68B8 - .align 2, 0 -_080E6890: .4byte gSharedMem + 0x1000 -_080E6894: .4byte 0x000001a9 -_080E6898: - movs r3, 0xD5 - lsls r3, 1 - adds r1, r2, r3 - movs r0, 0x7 - strb r0, [r1] - ldr r1, _080E68E0 @ =0x000001ab - adds r3, r2, r1 - movs r1, 0x6 - strb r1, [r3] - movs r3, 0xD6 - lsls r3, 1 - adds r1, r2, r3 - strb r0, [r1] - adds r3, 0x1 - adds r1, r2, r3 - strb r0, [r1] -_080E68B8: - movs r0, 0xD4 - lsls r0, 1 - adds r1, r2, r0 - movs r0, 0 - strb r0, [r1] - ldr r3, _080E68E4 @ =0x000001a9 - adds r1, r2, r3 - strb r0, [r1] - adds r3, 0xC - adds r1, r2, r3 - strb r0, [r1] - adds r3, 0x2 - adds r1, r2, r3 - strb r0, [r1] - bl sub_80E9A4C - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080E68E0: .4byte 0x000001ab -_080E68E4: .4byte 0x000001a9 - thumb_func_end sub_80E683C - - thumb_func_start sub_80E68E8 -sub_80E68E8: @ 80E68E8 - push {r4-r6,lr} - bl sub_80EB0B0 - ldr r3, _080E694C @ =gSharedMem + 0x1000 - adds r0, r3, 0 - adds r0, 0x26 - ldrb r0, [r0] - cmp r0, 0 - bne _080E695C - movs r1, 0xDC - lsls r1, 1 - adds r0, r3, r1 - ldrb r6, [r0] - lsls r0, r6, 1 - ldr r2, _080E6950 @ =0x00004178 - adds r1, r3, r2 - adds r0, r1 - ldrh r0, [r0] - adds r0, 0x1 - asrs r0, 1 - ldr r1, _080E6954 @ =0x00009a28 - adds r2, r3, r1 - strb r0, [r2] - movs r1, 0 - movs r0, 0 - ldrsb r0, [r2, r0] - adds r5, r3, 0 - cmp r1, r0 - bge _080E693A - ldr r3, _080E6958 @ =0x000099a6 - adds r4, r5, r3 - movs r3, 0x2 -_080E6928: - adds r0, r1, r4 - strb r3, [r0] - adds r0, r1, 0x1 - lsls r0, 16 - lsrs r1, r0, 16 - movs r0, 0 - ldrsb r0, [r2, r0] - cmp r1, r0 - blt _080E6928 -_080E693A: - subs r0, r1, 0x1 - lsls r0, 16 - lsrs r1, r0, 16 - ldr r2, _080E6958 @ =0x000099a6 - adds r0, r5, r2 - adds r2, r1, r0 - lsls r0, r6, 1 - ldr r3, _080E6950 @ =0x00004178 - b _080E69AC - .align 2, 0 -_080E694C: .4byte gSharedMem + 0x1000 -_080E6950: .4byte 0x00004178 -_080E6954: .4byte 0x00009a28 -_080E6958: .4byte 0x000099a6 -_080E695C: - movs r1, 0xDC - lsls r1, 1 - adds r0, r3, r1 - ldrb r6, [r0] - lsls r0, r6, 1 - ldr r2, _080E69E0 @ =0x00004142 - adds r1, r3, r2 - adds r0, r1 - ldrh r0, [r0] - adds r0, 0x1 - asrs r0, 1 - ldr r1, _080E69E4 @ =0x00009a28 - adds r2, r3, r1 - strb r0, [r2] - movs r1, 0 - movs r0, 0 - ldrsb r0, [r2, r0] - adds r5, r3, 0 - cmp r1, r0 - bge _080E699C - ldr r3, _080E69E8 @ =0x000099a6 - adds r4, r5, r3 - movs r3, 0x2 -_080E698A: - adds r0, r1, r4 - strb r3, [r0] - adds r0, r1, 0x1 - lsls r0, 16 - lsrs r1, r0, 16 - movs r0, 0 - ldrsb r0, [r2, r0] - cmp r1, r0 - blt _080E698A -_080E699C: - subs r0, r1, 0x1 - lsls r0, 16 - lsrs r1, r0, 16 - ldr r2, _080E69E8 @ =0x000099a6 - adds r0, r5, r2 - adds r2, r1, r0 - lsls r0, r6, 1 - ldr r3, _080E69E0 @ =0x00004142 -_080E69AC: - adds r1, r5, r3 - adds r0, r1 - ldrh r0, [r0] - movs r1, 0x1 - ands r0, r1 - strb r0, [r2] - cmp r0, 0 - bne _080E69C0 - movs r0, 0x2 - strb r0, [r2] -_080E69C0: - ldr r1, _080E69EC @ =0x000099a4 - adds r0, r5, r1 - movs r1, 0 - strb r1, [r0] - ldr r2, _080E69F0 @ =0x000099a5 - adds r0, r5, r2 - strb r1, [r0] - ldr r3, _080E69F4 @ =0x00009a29 - adds r0, r5, r3 - strb r1, [r0] - bl sub_80E9A4C - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080E69E0: .4byte 0x00004142 -_080E69E4: .4byte 0x00009a28 -_080E69E8: .4byte 0x000099a6 -_080E69EC: .4byte 0x000099a4 -_080E69F0: .4byte 0x000099a5 -_080E69F4: .4byte 0x00009a29 - thumb_func_end sub_80E68E8 - - thumb_func_start sub_80E69F8 -sub_80E69F8: @ 80E69F8 - push {r4,lr} - ldr r0, _080E6A10 @ =gSharedMem + 0x1000 - ldrb r1, [r0, 0x8] - adds r4, r0, 0 - cmp r1, 0xD - bhi _080E6A50 - lsls r0, r1, 2 - ldr r1, _080E6A14 @ =_080E6A18 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080E6A10: .4byte gSharedMem + 0x1000 -_080E6A14: .4byte _080E6A18 - .align 2, 0 -_080E6A18: - .4byte _080E6A50 - .4byte _080E6A50 - .4byte _080E6A50 - .4byte _080E6A50 - .4byte _080E6A50 - .4byte _080E6A58 - .4byte _080E6A50 - .4byte _080E6A58 - .4byte _080E6A58 - .4byte _080E6A50 - .4byte _080E6A58 - .4byte _080E6A58 - .4byte _080E6A58 - .4byte _080E6A50 -_080E6A50: - ldrb r0, [r4, 0x8] - bl sub_80E9368 - b _080E6A66 -_080E6A58: - ldrb r0, [r4, 0x8] - bl sub_80E9368 - ldrb r0, [r4, 0xB] - ldrb r1, [r4, 0x9] - bl sub_80E8BF4 -_080E6A66: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80E69F8 - - thumb_func_start sub_80E6A6C -sub_80E6A6C: @ 80E6A6C - push {lr} - bl LoadOam - bl ProcessSpriteCopyRequests - bl sub_80EAC5C - bl TransferPlttBuffer - bl sub_8089668 - pop {r0} - bx r0 - thumb_func_end sub_80E6A6C - - thumb_func_start sub_80E6A88 -sub_80E6A88: @ 80E6A88 - push {lr} - ldr r0, _080E6AA4 @ =gSharedMem + 0x1000 - ldr r0, [r0, 0x20] - bl _call_via_r0 - bl AnimateSprites - bl BuildOamBuffer - bl sub_80EAD08 - pop {r0} - bx r0 - .align 2, 0 -_080E6AA4: .4byte gSharedMem + 0x1000 - thumb_func_end sub_80E6A88 - - thumb_func_start sub_80E6AA8 -sub_80E6AA8: @ 80E6AA8 - push {lr} - bl UpdatePaletteFade - lsls r0, 24 - cmp r0, 0 - bne _080E6ABA - ldr r0, _080E6AC0 @ =sub_80E6AC4 - bl sub_80E682C -_080E6ABA: - pop {r0} - bx r0 - .align 2, 0 -_080E6AC0: .4byte sub_80E6AC4 - thumb_func_end sub_80E6AA8 - - thumb_func_start sub_80E6AC4 -sub_80E6AC4: @ 80E6AC4 - push {lr} - bl sub_80E88F0 - movs r0, 0 - bl sub_80E8398 - movs r0, 0 - bl sub_80E91D4 - ldr r0, _080E6AE0 @ =sub_80E6AE4 - bl sub_80E682C - pop {r0} - bx r0 - .align 2, 0 -_080E6AE0: .4byte sub_80E6AE4 - thumb_func_end sub_80E6AC4 - - thumb_func_start sub_80E6AE4 -sub_80E6AE4: @ 80E6AE4 - push {r4,r5,lr} - bl sub_80E75D8 - ldr r4, _080E6B44 @ =gSharedMem + 0x1000 - adds r1, r4, 0 - adds r1, 0x87 - strb r0, [r1] - lsls r0, 24 - cmp r0, 0 - beq _080E6AFE - movs r0, 0x5 - bl PlaySE -_080E6AFE: - ldr r2, _080E6B48 @ =gMain - ldrh r1, [r2, 0x2E] - movs r0, 0x1 - ands r0, r1 - adds r5, r2, 0 - cmp r0, 0 - beq _080E6BA4 - movs r0, 0x5 - bl PlaySE - adds r1, r4, 0 - adds r1, 0x86 - adds r0, r4, 0 - adds r0, 0x84 - ldrb r2, [r1] - ldrb r1, [r1] - lsls r1, 24 - asrs r1, 24 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r1, r0 - bne _080E6B78 - adds r0, r4, 0 - adds r0, 0x85 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0x1 - beq _080E6B60 - cmp r0, 0x1 - bgt _080E6B4C - cmp r0, 0 - beq _080E6B52 - b _080E6BA4 - .align 2, 0 -_080E6B44: .4byte gSharedMem + 0x1000 -_080E6B48: .4byte gMain -_080E6B4C: - cmp r0, 0x2 - beq _080E6B6C - b _080E6BA4 -_080E6B52: - ldr r0, _080E6B5C @ =sub_80E6BC0 - bl sub_80E682C - b _080E6BB4 - .align 2, 0 -_080E6B5C: .4byte sub_80E6BC0 -_080E6B60: - ldr r0, _080E6B68 @ =sub_80E6C84 - bl sub_80E682C - b _080E6BB4 - .align 2, 0 -_080E6B68: .4byte sub_80E6C84 -_080E6B6C: - ldr r0, _080E6B74 @ =sub_80E6D7C - bl sub_80E682C - b _080E6BB4 - .align 2, 0 -_080E6B74: .4byte sub_80E6D7C -_080E6B78: - adds r0, r4, 0 - adds r0, 0x83 - ldrb r0, [r0] - adds r1, r4, 0 - adds r1, 0x85 - adds r3, r0, 0 - muls r3, r2 - adds r0, r3, 0 - ldrb r1, [r1] - adds r0, r1 - adds r1, r4, 0 - adds r1, 0x27 - strb r0, [r1] - bl sub_80E7574 - ldr r0, _080E6BA0 @ =sub_80E6F68 - bl sub_80E682C - b _080E6BB4 - .align 2, 0 -_080E6BA0: .4byte sub_80E6F68 -_080E6BA4: - ldrh r1, [r5, 0x2E] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _080E6BB4 - ldr r0, _080E6BBC @ =sub_80E6C84 - bl sub_80E682C -_080E6BB4: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080E6BBC: .4byte sub_80E6C84 - thumb_func_end sub_80E6AE4 - - thumb_func_start sub_80E6BC0 -sub_80E6BC0: @ 80E6BC0 - push {r4,lr} - ldr r4, _080E6BD4 @ =gSharedMem + 0x1000 - ldrh r0, [r4, 0x24] - cmp r0, 0x1 - beq _080E6C12 - cmp r0, 0x1 - bgt _080E6BD8 - cmp r0, 0 - beq _080E6BE2 - b _080E6C76 - .align 2, 0 -_080E6BD4: .4byte gSharedMem + 0x1000 -_080E6BD8: - cmp r0, 0x2 - beq _080E6C54 - cmp r0, 0x64 - beq _080E6C64 - b _080E6C76 -_080E6BE2: - movs r0, 0x2 - bl sub_80E8398 - ldrb r0, [r4, 0x8] - cmp r0, 0x6 - bne _080E6BFA - movs r0, 0x6 - bl sub_80E91D4 - movs r0, 0x64 - strh r0, [r4, 0x24] - b _080E6C76 -_080E6BFA: - movs r0, 0x2 - bl sub_80E91D4 - movs r0, 0x17 - movs r1, 0x8 - movs r2, 0x1 - bl DisplayYesNoMenu - movs r0, 0x1 - bl MoveMenuCursor - b _080E6C3E -_080E6C12: - bl ProcessMenuInputNoWrap_ - lsls r0, 24 - asrs r1, r0, 24 - cmp r1, 0 - beq _080E6C32 - cmp r1, 0 - bgt _080E6C2C - movs r0, 0x1 - negs r0, r0 - cmp r1, r0 - beq _080E6C46 - b _080E6C76 -_080E6C2C: - cmp r1, 0x1 - beq _080E6C46 - b _080E6C76 -_080E6C32: - bl sub_80E7D6C - bl sub_80E98C4 - bl sub_80E95A4 -_080E6C3E: - ldrh r0, [r4, 0x24] - adds r0, 0x1 - strh r0, [r4, 0x24] - b _080E6C76 -_080E6C46: - ldr r1, _080E6C50 @ =gSharedMem + 0x1000 - ldrh r0, [r1, 0x24] - adds r0, 0x1 - strh r0, [r1, 0x24] - b _080E6C76 - .align 2, 0 -_080E6C50: .4byte gSharedMem + 0x1000 -_080E6C54: - bl sub_80E81FC - ldr r0, _080E6C60 @ =sub_80E6AC4 - bl sub_80E682C - b _080E6C76 - .align 2, 0 -_080E6C60: .4byte sub_80E6AC4 -_080E6C64: - ldr r0, _080E6C7C @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x3 - ands r0, r1 - cmp r0, 0 - beq _080E6C76 - ldr r0, _080E6C80 @ =sub_80E6AC4 - bl sub_80E682C -_080E6C76: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080E6C7C: .4byte gMain -_080E6C80: .4byte sub_80E6AC4 - thumb_func_end sub_80E6BC0 - - thumb_func_start sub_80E6C84 -sub_80E6C84: @ 80E6C84 - push {r4,lr} - ldr r4, _080E6C98 @ =gSharedMem + 0x1000 - ldrh r0, [r4, 0x24] - cmp r0, 0x1 - beq _080E6CF4 - cmp r0, 0x1 - bgt _080E6C9C - cmp r0, 0 - beq _080E6CA6 - b _080E6D72 - .align 2, 0 -_080E6C98: .4byte gSharedMem + 0x1000 -_080E6C9C: - cmp r0, 0x2 - beq _080E6D24 - cmp r0, 0xFF - beq _080E6D64 - b _080E6D72 -_080E6CA6: - movs r0, 0x2 - bl sub_80E8398 - movs r0, 0x3 - bl sub_80E91D4 - movs r0, 0x17 - movs r1, 0x8 - movs r2, 0 - bl DisplayYesNoMenu - movs r0, 0x1 - bl MoveMenuCursor - ldrb r0, [r4, 0x8] - cmp r0, 0x9 - beq _080E6CE8 - cmp r0, 0x4 - beq _080E6CE8 - cmp r0, 0x7 - beq _080E6CE8 - cmp r0, 0x8 - beq _080E6CE8 - cmp r0, 0xA - beq _080E6CE8 - cmp r0, 0xB - beq _080E6CE8 - cmp r0, 0xC - beq _080E6CE8 - cmp r0, 0x5 - beq _080E6CE8 - cmp r0, 0xD - bne _080E6D1C -_080E6CE8: - ldr r1, _080E6CF0 @ =gSharedMem + 0x1000 - movs r0, 0x2 - strh r0, [r1, 0x24] - b _080E6D72 - .align 2, 0 -_080E6CF0: .4byte gSharedMem + 0x1000 -_080E6CF4: - bl ProcessMenuInputNoWrap_ - lsls r0, 24 - asrs r1, r0, 24 - cmp r1, 0 - beq _080E6D06 - cmp r1, 0 - ble _080E6D34 - b _080E6D3E -_080E6D06: - movs r0, 0x4 - bl sub_80E91D4 - movs r0, 0x17 - movs r1, 0x8 - movs r2, 0 - bl DisplayYesNoMenu - movs r0, 0x1 - bl MoveMenuCursor -_080E6D1C: - ldrh r0, [r4, 0x24] - adds r0, 0x1 - strh r0, [r4, 0x24] - b _080E6D72 -_080E6D24: - bl ProcessMenuInputNoWrap_ - lsls r0, 24 - asrs r1, r0, 24 - cmp r1, 0 - beq _080E6D44 - cmp r1, 0 - bgt _080E6D3E -_080E6D34: - movs r0, 0x1 - negs r0, r0 - cmp r1, r0 - beq _080E6D58 - b _080E6D72 -_080E6D3E: - cmp r1, 0x1 - beq _080E6D58 - b _080E6D72 -_080E6D44: - ldr r0, _080E6D50 @ =gSpecialVar_Result - strh r1, [r0] - ldr r0, _080E6D54 @ =sub_80E752C - bl sub_80E682C - b _080E6D72 - .align 2, 0 -_080E6D50: .4byte gSpecialVar_Result -_080E6D54: .4byte sub_80E752C -_080E6D58: - ldr r1, _080E6D60 @ =gSharedMem + 0x1000 - movs r0, 0xFF - strh r0, [r1, 0x24] - b _080E6D72 - .align 2, 0 -_080E6D60: .4byte gSharedMem + 0x1000 -_080E6D64: - bl HandleDestroyMenuCursors - bl sub_80E81FC - ldr r0, _080E6D78 @ =sub_80E6AC4 - bl sub_80E682C -_080E6D72: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080E6D78: .4byte sub_80E6AC4 - thumb_func_end sub_80E6C84 - - thumb_func_start sub_80E6D7C -sub_80E6D7C: @ 80E6D7C - push {r4-r7,lr} - ldr r5, _080E6D98 @ =gSharedMem + 0x1000 - ldrh r0, [r5, 0x24] - cmp r0, 0xA - bne _080E6D88 - b _080E6F06 -_080E6D88: - cmp r0, 0xA - bgt _080E6D9C - cmp r0, 0 - beq _080E6DB6 - cmp r0, 0x1 - beq _080E6E3C - b _080E6F5E - .align 2, 0 -_080E6D98: .4byte gSharedMem + 0x1000 -_080E6D9C: - cmp r0, 0x65 - bne _080E6DA2 - b _080E6F30 -_080E6DA2: - cmp r0, 0x65 - bgt _080E6DAE - cmp r0, 0x64 - bne _080E6DAC - b _080E6F24 -_080E6DAC: - b _080E6F5E -_080E6DAE: - cmp r0, 0x66 - bne _080E6DB4 - b _080E6F50 -_080E6DB4: - b _080E6F5E -_080E6DB6: - movs r0, 0x2 - bl sub_80E8398 - bl sub_80E8054 - lsls r0, 24 - cmp r0, 0 - beq _080E6DCA - movs r0, 0x5 - b _080E6DEE -_080E6DCA: - ldrb r0, [r5, 0x8] - cmp r0, 0x9 - bne _080E6DFC - bl sub_80E7FA8 - lsls r0, 24 - cmp r0, 0 - bne _080E6DDE - movs r0, 0x8 - b _080E6DEE -_080E6DDE: - ldrh r0, [r5, 0xC] - ldr r1, _080E6DF8 @ =0x0000ffff - cmp r0, r1 - beq _080E6DEC - ldrh r0, [r5, 0xE] - cmp r0, r1 - bne _080E6DFC -_080E6DEC: - movs r0, 0x9 -_080E6DEE: - bl sub_80E91D4 - movs r0, 0xA - strh r0, [r5, 0x24] - b _080E6F5E - .align 2, 0 -_080E6DF8: .4byte 0x0000ffff -_080E6DFC: - ldr r0, _080E6E18 @ =gSharedMem + 0x1000 - ldrb r0, [r0, 0x8] - cmp r0, 0x4 - bne _080E6E20 - bl sub_80E7FA8 - lsls r0, 24 - cmp r0, 0 - bne _080E6E20 - ldr r0, _080E6E1C @ =sub_80E6C84 - bl sub_80E682C - b _080E6F5E - .align 2, 0 -_080E6E18: .4byte gSharedMem + 0x1000 -_080E6E1C: .4byte sub_80E6C84 -_080E6E20: - movs r0, 0x1 - bl sub_80E91D4 - bl sub_80E9744 - movs r0, 0x17 - movs r1, 0x8 - movs r2, 0 - bl DisplayYesNoMenu - movs r0, 0 - bl MoveMenuCursor - b _080E6F3C -_080E6E3C: - bl ProcessMenuInputNoWrap_ - lsls r0, 24 - asrs r6, r0, 24 - cmp r6, 0 - beq _080E6E5C - cmp r6, 0 - bgt _080E6E56 - movs r0, 0x1 - negs r0, r0 - cmp r6, r0 - beq _080E6EDC - b _080E6F5E -_080E6E56: - cmp r6, 0x1 - beq _080E6EDC - b _080E6F5E -_080E6E5C: - ldr r7, _080E6EC8 @ =gSpecialVar_Result - bl sub_80E7FA8 - lsls r0, 24 - lsrs r0, 24 - negs r0, r0 - lsrs r0, 31 - strh r0, [r7] - bl sub_80E7D9C - ldrb r0, [r5, 0x8] - cmp r0, 0 - bne _080E6E82 - ldr r4, _080E6ECC @ =gSpecialVar_0x8004 - bl sub_80E8094 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4] -_080E6E82: - ldrb r0, [r5, 0x8] - cmp r0, 0x9 - bne _080E6E9C - bl sub_80E81C0 - ldr r4, _080E6ECC @ =gSpecialVar_0x8004 - ldr r1, _080E6ED0 @ =0x00009c7c - adds r0, r5, r1 - bl sub_80FA364 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4] -_080E6E9C: - ldrb r0, [r5, 0x8] - cmp r0, 0xD - bne _080E6EBE - ldrh r0, [r5, 0xC] - ldr r1, _080E6ED4 @ =0x0000ffff - cmp r0, r1 - beq _080E6EB0 - ldrh r0, [r5, 0xE] - cmp r0, r1 - bne _080E6EB2 -_080E6EB0: - strh r6, [r7] -_080E6EB2: - ldr r4, _080E6ECC @ =gSpecialVar_0x8004 - bl sub_80E810C - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4] -_080E6EBE: - ldr r0, _080E6ED8 @ =sub_80E752C - bl sub_80E682C - b _080E6F5E - .align 2, 0 -_080E6EC8: .4byte gSpecialVar_Result -_080E6ECC: .4byte gSpecialVar_0x8004 -_080E6ED0: .4byte 0x00009c7c -_080E6ED4: .4byte 0x0000ffff -_080E6ED8: .4byte sub_80E752C -_080E6EDC: - bl HandleDestroyMenuCursors - bl sub_80E81FC - ldr r4, _080E6EFC @ =gSharedMem + 0x1000 - ldrb r0, [r4, 0x8] - cmp r0, 0x6 - bne _080E6F00 - bl sub_80E7FA8 - lsls r0, 24 - cmp r0, 0 - beq _080E6F00 - movs r0, 0x64 - strh r0, [r4, 0x24] - b _080E6F5E - .align 2, 0 -_080E6EFC: .4byte gSharedMem + 0x1000 -_080E6F00: - bl sub_80E95A4 - b _080E6F12 -_080E6F06: - ldr r0, _080E6F1C @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x3 - ands r0, r1 - cmp r0, 0 - beq _080E6F5E -_080E6F12: - ldr r0, _080E6F20 @ =sub_80E6AC4 - bl sub_80E682C - b _080E6F5E - .align 2, 0 -_080E6F1C: .4byte gMain -_080E6F20: .4byte sub_80E6AC4 -_080E6F24: - movs r0, 0x7 - bl sub_80E91D4 - ldrh r0, [r5, 0x24] - adds r0, 0x1 - strh r0, [r5, 0x24] -_080E6F30: - ldr r0, _080E6F48 @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080E6F5E -_080E6F3C: - ldr r1, _080E6F4C @ =gSharedMem + 0x1000 - ldrh r0, [r1, 0x24] - adds r0, 0x1 - strh r0, [r1, 0x24] - b _080E6F5E - .align 2, 0 -_080E6F48: .4byte gMain -_080E6F4C: .4byte gSharedMem + 0x1000 -_080E6F50: - bl sub_80E7E50 - bl sub_80E95A4 - ldr r0, _080E6F64 @ =sub_80E6AC4 - bl sub_80E682C -_080E6F5E: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080E6F64: .4byte sub_80E6AC4 - thumb_func_end sub_80E6D7C - - thumb_func_start sub_80E6F68 -sub_80E6F68: @ 80E6F68 - push {r4,lr} - ldr r4, _080E6F78 @ =gSharedMem + 0x1000 - ldrh r0, [r4, 0x24] - cmp r0, 0 - beq _080E6F7C - cmp r0, 0x1 - beq _080E6F9C - b _080E6FBC - .align 2, 0 -_080E6F78: .4byte gSharedMem + 0x1000 -_080E6F7C: - movs r0, 0x1 - bl sub_80E8398 - movs r0, 0xA - bl sub_80E91D4 - bl sub_80E683C - bl sub_80E9974 - bl sub_80E9E98 - ldrh r0, [r4, 0x24] - adds r0, 0x1 - strh r0, [r4, 0x24] - b _080E6FBC -_080E6F9C: - bl sub_80E9EA8 - lsls r0, 24 - cmp r0, 0 - beq _080E6FBC - movs r0, 0x1 - bl sub_80E8D8C - bl sub_80E8420 - movs r0, 0 - bl sub_80E8958 - ldr r0, _080E6FC4 @ =sub_80E6FC8 - bl sub_80E682C -_080E6FBC: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080E6FC4: .4byte sub_80E6FC8 - thumb_func_end sub_80E6F68 - - thumb_func_start sub_80E6FC8 -sub_80E6FC8: @ 80E6FC8 - push {r4,lr} - bl sub_80E77C8 - adds r1, r0, 0 - ldr r4, _080E7000 @ =gSharedMem + 0x1000 - adds r0, r4, 0 - adds r0, 0x96 - strb r1, [r0] - movs r2, 0xE0 - lsls r2, 1 - adds r0, r4, r2 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0 - beq _080E700C - movs r0, 0x5 - bl PlaySE - movs r1, 0xE2 - lsls r1, 1 - adds r0, r4, r1 - ldr r1, _080E7004 @ =sub_80E6FC8 - str r1, [r0] - ldr r0, _080E7008 @ =sub_80E7458 - bl sub_80E682C - b _080E710A - .align 2, 0 -_080E7000: .4byte gSharedMem + 0x1000 -_080E7004: .4byte sub_80E6FC8 -_080E7008: .4byte sub_80E7458 -_080E700C: - lsls r0, r1, 24 - cmp r0, 0 - beq _080E7018 - movs r0, 0x5 - bl PlaySE -_080E7018: - ldr r0, _080E7054 @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080E70E8 - ldr r2, _080E7058 @ =0x000001b7 - adds r0, r4, r2 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0 - beq _080E7090 - movs r0, 0x5 - bl PlaySE - movs r1, 0xD4 - lsls r1, 1 - adds r0, r4, r1 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0x2 - beq _080E7070 - cmp r0, 0x2 - bgt _080E705C - cmp r0, 0x1 - beq _080E7062 - b _080E710A - .align 2, 0 -_080E7054: .4byte gMain -_080E7058: .4byte 0x000001b7 -_080E705C: - cmp r0, 0x3 - beq _080E70F0 - b _080E710A -_080E7062: - ldr r0, _080E706C @ =sub_80E718C - bl sub_80E682C - b _080E710A - .align 2, 0 -_080E706C: .4byte sub_80E718C -_080E7070: - ldrb r0, [r4, 0x8] - cmp r0, 0x6 - beq _080E710A - adds r0, r4, 0 - adds r0, 0x27 - ldrb r0, [r0] - ldr r1, _080E708C @ =0x0000ffff - bl sub_80E7F00 - bl sub_80E7574 - bl sub_80E95A4 - b _080E710A - .align 2, 0 -_080E708C: .4byte 0x0000ffff -_080E7090: - adds r0, r4, 0 - adds r0, 0x26 - ldrb r0, [r0] - cmp r0, 0 - beq _080E70CA - ldr r2, _080E70DC @ =0x000001a9 - adds r0, r4, r2 - movs r2, 0 - ldrsb r2, [r0, r2] - movs r1, 0xD4 - lsls r1, 1 - adds r0, r4, r1 - movs r1, 0 - ldrsb r1, [r0, r1] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 1 - adds r2, r0 - adds r0, r4, 0 - adds r0, 0x40 - adds r2, r0 - ldrb r0, [r2] - lsls r0, 1 - ldr r2, _080E70E0 @ =0x00004142 - adds r1, r4, r2 - adds r0, r1 - ldrh r0, [r0] - cmp r0, 0 - beq _080E710A -_080E70CA: - movs r0, 0x5 - bl PlaySE - bl sub_80E7AD4 - ldr r0, _080E70E4 @ =sub_80E7218 - bl sub_80E682C - b _080E710A - .align 2, 0 -_080E70DC: .4byte 0x000001a9 -_080E70E0: .4byte 0x00004142 -_080E70E4: .4byte sub_80E7218 -_080E70E8: - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _080E70FC -_080E70F0: - ldr r0, _080E70F8 @ =sub_80E7114 - bl sub_80E682C - b _080E710A - .align 2, 0 -_080E70F8: .4byte sub_80E7114 -_080E70FC: - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _080E710A - ldr r0, _080E7110 @ =sub_80E718C - bl sub_80E682C -_080E710A: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080E7110: .4byte sub_80E718C - thumb_func_end sub_80E6FC8 - - thumb_func_start sub_80E7114 -sub_80E7114: @ 80E7114 - push {lr} - ldr r0, _080E712C @ =gSharedMem + 0x1000 - ldrh r1, [r0, 0x24] - adds r2, r0, 0 - cmp r1, 0x4 - bhi _080E7182 - lsls r0, r1, 2 - ldr r1, _080E7130 @ =_080E7134 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080E712C: .4byte gSharedMem + 0x1000 -_080E7130: .4byte _080E7134 - .align 2, 0 -_080E7134: - .4byte _080E7148 - .4byte _080E715C - .4byte _080E715C - .4byte _080E7164 - .4byte _080E717C -_080E7148: - bl sub_80E8504 - bl sub_80E9E98 - bl sub_80E88F0 - movs r0, 0 - bl sub_80E8D8C - b _080E716E -_080E715C: - ldrh r0, [r2, 0x24] - adds r0, 0x1 - strh r0, [r2, 0x24] - b _080E7182 -_080E7164: - bl sub_80E9F50 - lsls r0, 24 - cmp r0, 0 - beq _080E7182 -_080E716E: - ldr r1, _080E7178 @ =gSharedMem + 0x1000 - ldrh r0, [r1, 0x24] - adds r0, 0x1 - strh r0, [r1, 0x24] - b _080E7182 - .align 2, 0 -_080E7178: .4byte gSharedMem + 0x1000 -_080E717C: - ldr r0, _080E7188 @ =sub_80E6AC4 - bl sub_80E682C -_080E7182: - pop {r0} - bx r0 - .align 2, 0 -_080E7188: .4byte sub_80E6AC4 - thumb_func_end sub_80E7114 - - thumb_func_start sub_80E718C -sub_80E718C: @ 80E718C - push {r4,lr} - ldr r0, _080E71A4 @ =gSharedMem + 0x1000 - ldrh r1, [r0, 0x24] - adds r4, r0, 0 - cmp r1, 0x1 - beq _080E71C6 - cmp r1, 0x1 - bgt _080E71A8 - cmp r1, 0 - beq _080E71AE - b _080E71EC - .align 2, 0 -_080E71A4: .4byte gSharedMem + 0x1000 -_080E71A8: - cmp r1, 0x8 - beq _080E71F4 - b _080E71EC -_080E71AE: - bl sub_80E8504 - bl sub_80E9E98 - bl sub_80E88F0 - ldrh r0, [r4, 0x24] - adds r0, 0x1 - strh r0, [r4, 0x24] - bl sub_80E8D54 - b _080E720E -_080E71C6: - bl sub_80E9FD4 - lsls r0, 24 - cmp r0, 0 - beq _080E720E - movs r2, 0 - adds r1, r4, 0 - adds r1, 0x26 - ldrb r0, [r1] - cmp r0, 0 - bne _080E71DE - movs r2, 0x1 -_080E71DE: - strb r2, [r1] - bl sub_80E683C - bl sub_80E9974 - bl sub_80E9E98 -_080E71EC: - ldrh r0, [r4, 0x24] - adds r0, 0x1 - strh r0, [r4, 0x24] - b _080E720E -_080E71F4: - bl sub_80EA014 - lsls r0, 24 - cmp r0, 0 - beq _080E720E - bl sub_80E8420 - movs r0, 0 - bl sub_80E8958 - ldr r0, _080E7214 @ =sub_80E6FC8 - bl sub_80E682C -_080E720E: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080E7214: .4byte sub_80E6FC8 - thumb_func_end sub_80E718C - - thumb_func_start sub_80E7218 -sub_80E7218: @ 80E7218 - push {r4,lr} - ldr r4, _080E7230 @ =gSharedMem + 0x1000 - ldrh r0, [r4, 0x24] - adds r1, r4, 0 - cmp r0, 0x9 - beq _080E7260 - cmp r0, 0x9 - bgt _080E7234 - cmp r0, 0x8 - beq _080E7244 - b _080E723C - .align 2, 0 -_080E7230: .4byte gSharedMem + 0x1000 -_080E7234: - cmp r0, 0xA - beq _080E7276 - cmp r0, 0xB - beq _080E7288 -_080E723C: - ldrh r0, [r1, 0x24] - adds r0, 0x1 - strh r0, [r1, 0x24] - b _080E7288 -_080E7244: - movs r0, 0 - bl sub_80E8D8C - bl sub_80E8504 - bl sub_80E9AD4 - bl sub_80E68E8 - bl sub_80E88F0 - bl sub_80E9E98 - b _080E726E -_080E7260: - bl sub_80EA050 - lsls r0, 24 - cmp r0, 0 - beq _080E7288 - bl sub_80E9C94 -_080E726E: - ldrh r0, [r4, 0x24] - adds r0, 0x1 - strh r0, [r4, 0x24] - b _080E7288 -_080E7276: - movs r0, 0x1 - bl sub_80E87CC - movs r0, 0x1 - bl sub_80E8958 - ldr r0, _080E7290 @ =sub_80E7294 - bl sub_80E682C -_080E7288: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080E7290: .4byte sub_80E7294 - thumb_func_end sub_80E7218 - - thumb_func_start sub_80E7294 -sub_80E7294: @ 80E7294 - push {r4,lr} - bl sub_80E7B40 - adds r1, r0, 0 - ldr r4, _080E72CC @ =gSharedMem + 0x1000 - ldr r2, _080E72D0 @ =0x000001b9 - adds r0, r4, r2 - strb r1, [r0] - adds r2, 0x7 - adds r0, r4, r2 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0 - beq _080E72DC - movs r0, 0x5 - bl PlaySE - movs r1, 0xE2 - lsls r1, 1 - adds r0, r4, r1 - ldr r1, _080E72D4 @ =sub_80E7294 - str r1, [r0] - ldr r0, _080E72D8 @ =sub_80E7458 - bl sub_80E682C - b _080E731A - .align 2, 0 -_080E72CC: .4byte gSharedMem + 0x1000 -_080E72D0: .4byte 0x000001b9 -_080E72D4: .4byte sub_80E7294 -_080E72D8: .4byte sub_80E7458 -_080E72DC: - lsls r0, r1, 24 - cmp r0, 0 - beq _080E72E8 - movs r0, 0x5 - bl PlaySE -_080E72E8: - ldr r0, _080E7304 @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080E730C - movs r0, 0x5 - bl PlaySE - ldr r0, _080E7308 @ =sub_80E7324 - bl sub_80E682C - b _080E731A - .align 2, 0 -_080E7304: .4byte gMain -_080E7308: .4byte sub_80E7324 -_080E730C: - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _080E731A - ldr r0, _080E7320 @ =sub_80E73D0 - bl sub_80E682C -_080E731A: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080E7320: .4byte sub_80E73D0 - thumb_func_end sub_80E7294 - - thumb_func_start sub_80E7324 -sub_80E7324: @ 80E7324 - push {lr} - ldr r0, _080E733C @ =gSharedMem + 0x1000 - ldrh r1, [r0, 0x24] - adds r2, r0, 0 - cmp r1, 0x4 - bhi _080E73C6 - lsls r0, r1, 2 - ldr r1, _080E7340 @ =_080E7344 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080E733C: .4byte gSharedMem + 0x1000 -_080E7340: .4byte _080E7344 - .align 2, 0 -_080E7344: - .4byte _080E7358 - .4byte _080E737C - .4byte _080E7384 - .4byte _080E738A - .4byte _080E73A4 -_080E7358: - bl sub_80E7DD0 - lsls r0, 24 - cmp r0, 0 - bne _080E7370 - ldr r0, _080E736C @ =sub_80E7294 - bl sub_80E682C - b _080E73C6 - .align 2, 0 -_080E736C: .4byte sub_80E7294 -_080E7370: - bl sub_80E88F0 - movs r0, 0 - bl sub_80E87CC - b _080E7394 -_080E737C: - ldrh r0, [r2, 0x24] - adds r0, 0x1 - strh r0, [r2, 0x24] - b _080E73C6 -_080E7384: - bl sub_80E9E98 - b _080E7394 -_080E738A: - bl sub_80EA184 - lsls r0, 24 - cmp r0, 0 - beq _080E73C6 -_080E7394: - ldr r1, _080E73A0 @ =gSharedMem + 0x1000 - ldrh r0, [r1, 0x24] - adds r0, 0x1 - strh r0, [r1, 0x24] - b _080E73C6 - .align 2, 0 -_080E73A0: .4byte gSharedMem + 0x1000 -_080E73A4: - ldrb r0, [r2, 0x8] - cmp r0, 0x6 - bne _080E73C0 - bl sub_80E7FA8 - lsls r0, 24 - cmp r0, 0 - beq _080E73C0 - ldr r0, _080E73BC @ =sub_80E6D7C - bl sub_80E682C - b _080E73C6 - .align 2, 0 -_080E73BC: .4byte sub_80E6D7C -_080E73C0: - ldr r0, _080E73CC @ =sub_80E6AC4 - bl sub_80E682C -_080E73C6: - pop {r0} - bx r0 - .align 2, 0 -_080E73CC: .4byte sub_80E6AC4 - thumb_func_end sub_80E7324 - - thumb_func_start sub_80E73D0 -sub_80E73D0: @ 80E73D0 - push {lr} - ldr r0, _080E73E4 @ =gSharedMem + 0x1000 - ldrh r0, [r0, 0x24] - cmp r0, 0x4 - bhi _080E744E - lsls r0, 2 - ldr r1, _080E73E8 @ =_080E73EC - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080E73E4: .4byte gSharedMem + 0x1000 -_080E73E8: .4byte _080E73EC - .align 2, 0 -_080E73EC: - .4byte _080E7400 - .4byte _080E740C - .4byte _080E7416 - .4byte _080E742C - .4byte _080E7444 -_080E7400: - movs r0, 0 - bl sub_80E87CC - bl sub_80E88F0 - b _080E7436 -_080E740C: - bl sub_80E9AD4 - bl sub_80E9E98 - b _080E7436 -_080E7416: - bl sub_80EA0E4 - lsls r0, 24 - cmp r0, 0 - beq _080E744E - movs r0, 0x1 - bl sub_80E8D8C - bl sub_80E9A14 - b _080E7436 -_080E742C: - bl sub_80E8420 - movs r0, 0 - bl sub_80E8958 -_080E7436: - ldr r1, _080E7440 @ =gSharedMem + 0x1000 - ldrh r0, [r1, 0x24] - adds r0, 0x1 - strh r0, [r1, 0x24] - b _080E744E - .align 2, 0 -_080E7440: .4byte gSharedMem + 0x1000 -_080E7444: - bl sub_80E9974 - ldr r0, _080E7454 @ =sub_80E6FC8 - bl sub_80E682C -_080E744E: - pop {r0} - bx r0 - .align 2, 0 -_080E7454: .4byte sub_80E6FC8 - thumb_func_end sub_80E73D0 - - thumb_func_start sub_80E7458 -sub_80E7458: @ 80E7458 - push {r4,r5,lr} - ldr r4, _080E7468 @ =gSharedMem + 0x1000 - ldrh r5, [r4, 0x24] - cmp r5, 0 - beq _080E746C - cmp r5, 0x1 - beq _080E74A4 - b _080E7518 - .align 2, 0 -_080E7468: .4byte gSharedMem + 0x1000 -_080E746C: - movs r1, 0xE2 - lsls r1, 1 - adds r0, r4, r1 - ldr r1, [r0] - ldr r0, _080E7480 @ =sub_80E6FC8 - cmp r1, r0 - bne _080E7484 - bl sub_80E9D7C - b _080E7488 - .align 2, 0 -_080E7480: .4byte sub_80E6FC8 -_080E7484: - bl sub_80E9D00 -_080E7488: - ldr r4, _080E74A0 @ =gSharedMem + 0x1000 - movs r2, 0xDF - lsls r2, 1 - adds r0, r4, r2 - ldrb r0, [r0] - bl sub_80E9E08 - ldrh r0, [r4, 0x24] - adds r0, 0x1 - strh r0, [r4, 0x24] - b _080E7518 - .align 2, 0 -_080E74A0: .4byte gSharedMem + 0x1000 -_080E74A4: - bl sub_80E9E54 - lsls r0, 24 - cmp r0, 0 - beq _080E7518 - movs r1, 0xE2 - lsls r1, 1 - adds r0, r4, r1 - ldr r1, [r0] - ldr r0, _080E74DC @ =sub_80E6FC8 - cmp r1, r0 - bne _080E74E4 - bl sub_80E9D7C - ldr r2, _080E74E0 @ =0x000001b5 - adds r1, r4, r2 - adds r2, 0xB - adds r0, r4, r2 - ldrb r0, [r0] - ldrb r2, [r1] - adds r0, r2 - strb r0, [r1] - bl sub_80E7A98 - adds r0, r4, 0 - adds r0, 0x96 - b _080E74FE - .align 2, 0 -_080E74DC: .4byte sub_80E6FC8 -_080E74E0: .4byte 0x000001b5 -_080E74E4: - ldr r0, _080E7520 @ =0x00009a29 - adds r1, r4, r0 - movs r2, 0xE0 - lsls r2, 1 - adds r0, r4, r2 - ldrb r0, [r0] - ldrb r2, [r1] - adds r0, r2 - strb r0, [r1] - bl sub_80E7D30 - ldr r1, _080E7524 @ =0x000001b9 - adds r0, r4, r1 -_080E74FE: - strb r5, [r0] - ldr r1, _080E7528 @ =gSharedMem + 0x1000 - movs r0, 0xDF - lsls r0, 1 - adds r2, r1, r0 - movs r0, 0x2 - strb r0, [r2] - movs r2, 0xE2 - lsls r2, 1 - adds r0, r1, r2 - ldr r0, [r0] - bl sub_80E682C -_080E7518: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080E7520: .4byte 0x00009a29 -_080E7524: .4byte 0x000001b9 -_080E7528: .4byte gSharedMem + 0x1000 - thumb_func_end sub_80E7458 - - thumb_func_start sub_80E752C -sub_80E752C: @ 80E752C - push {r4,lr} - sub sp, 0x4 - ldr r4, _080E7540 @ =gSharedMem + 0x1000 - ldrh r1, [r4, 0x24] - cmp r1, 0 - beq _080E7544 - cmp r1, 0x1 - beq _080E755C - b _080E756C - .align 2, 0 -_080E7540: .4byte gSharedMem + 0x1000 -_080E7544: - movs r0, 0x1 - negs r0, r0 - str r1, [sp] - movs r1, 0 - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - ldrh r0, [r4, 0x24] - adds r0, 0x1 - strh r0, [r4, 0x24] - b _080E756C -_080E755C: - bl UpdatePaletteFade - lsls r0, 24 - cmp r0, 0 - bne _080E756C - ldr r0, [r4] - bl SetMainCallback2 -_080E756C: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80E752C - - thumb_func_start sub_80E7574 -sub_80E7574: @ 80E7574 - push {r4,r5,lr} - ldr r4, _080E75B8 @ =gSharedMem + 0x1000 - ldrb r5, [r4, 0x8] - cmp r5, 0x1 - bne _080E75BC - adds r0, r4, 0 - adds r0, 0x86 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - adds r1, r4, 0 - adds r1, 0x7E - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0x2 - bne _080E75BC - adds r0, r4, 0 - adds r0, 0x27 - ldrb r0, [r0] - lsls r0, 1 - subs r1, 0x72 - adds r0, r1 - ldrh r0, [r0] - bl sub_80EB2D4 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x7 - beq _080E75BC - adds r0, r4, 0 - adds r0, 0x7D - strb r5, [r0] - adds r1, r4, 0 - b _080E75C6 - .align 2, 0 -_080E75B8: .4byte gSharedMem + 0x1000 -_080E75BC: - ldr r1, _080E75D4 @ =gSharedMem + 0x1000 - adds r2, r1, 0 - adds r2, 0x7D - movs r0, 0 - strb r0, [r2] -_080E75C6: - adds r1, 0x7D - movs r0, 0 - strb r0, [r1] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080E75D4: .4byte gSharedMem + 0x1000 - thumb_func_end sub_80E7574 - - thumb_func_start sub_80E75D8 -sub_80E75D8: @ 80E75D8 - push {r4-r6,lr} - movs r4, 0 - ldr r2, _080E75FC @ =gMain - ldrh r1, [r2, 0x2E] - movs r0, 0x8 - ands r0, r1 - cmp r0, 0 - beq _080E7604 - ldr r1, _080E7600 @ =gSharedMem + 0x1000 - adds r0, r1, 0 - adds r0, 0x84 - ldrb r0, [r0] - adds r2, r1, 0 - adds r2, 0x86 - strb r0, [r2] - adds r1, 0x85 - movs r0, 0x2 - b _080E768E - .align 2, 0 -_080E75FC: .4byte gMain -_080E7600: .4byte gSharedMem + 0x1000 -_080E7604: - ldrh r1, [r2, 0x30] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _080E7630 - ldr r2, _080E762C @ =gSharedMem + 0x1000 - adds r1, r2, 0 - adds r1, 0x86 - ldrb r0, [r1] - subs r0, 0x1 - strb r0, [r1] - lsls r0, 24 - cmp r0, 0 - bge _080E765C - adds r0, r2, 0 - adds r0, 0x84 - ldrb r0, [r0] - strb r0, [r1] - b _080E765C - .align 2, 0 -_080E762C: .4byte gSharedMem + 0x1000 -_080E7630: - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _080E7658 - ldr r0, _080E7684 @ =gSharedMem + 0x1000 - adds r3, r0, 0 - adds r3, 0x86 - ldrb r1, [r3] - adds r1, 0x1 - strb r1, [r3] - adds r0, 0x84 - lsls r1, 24 - asrs r1, 24 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r1, r0 - ble _080E7656 - strb r4, [r3] -_080E7656: - movs r4, 0x1 -_080E7658: - cmp r4, 0 - beq _080E76EA -_080E765C: - ldr r2, _080E7684 @ =gSharedMem + 0x1000 - ldrb r3, [r2, 0x9] - cmp r3, 0x2 - bne _080E7692 - adds r1, r2, 0 - adds r1, 0x86 - adds r0, r2, 0 - adds r0, 0x84 - ldrb r1, [r1] - lsls r1, 24 - asrs r1, 24 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r1, r0 - bne _080E7688 - adds r0, r2, 0 - adds r0, 0x85 - strb r3, [r0] - b _080E77BC - .align 2, 0 -_080E7684: .4byte gSharedMem + 0x1000 -_080E7688: - adds r1, r2, 0 - adds r1, 0x85 - movs r0, 0 -_080E768E: - strb r0, [r1] - b _080E77BC -_080E7692: - movs r0, 0x85 - adds r0, r2 - mov r12, r0 - adds r4, r2, 0 - adds r4, 0x83 - movs r1, 0 - ldrsb r1, [r0, r1] - ldrb r3, [r4] - movs r0, 0 - ldrsb r0, [r4, r0] - cmp r1, r0 - blt _080E76B0 - subs r0, r3, 0x1 - mov r1, r12 - strb r0, [r1] -_080E76B0: - adds r1, r2, 0 - adds r1, 0x86 - adds r0, r2, 0 - adds r0, 0x84 - ldrb r3, [r1] - ldrb r1, [r1] - lsls r1, 24 - asrs r1, 24 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r1, r0 - beq _080E77BC - ldrb r0, [r4] - adds r4, r0, 0 - muls r4, r3 - adds r0, r4, 0 - mov r5, r12 - ldrb r5, [r5] - adds r0, r5 - lsls r0, 24 - lsrs r0, 24 - ldrb r1, [r2, 0xA] - cmp r0, r1 - bcc _080E77BC - subs r0, r1 - mov r6, r12 - strb r0, [r6] - b _080E77BC -_080E76EA: - ldrh r2, [r2, 0x30] - movs r0, 0x20 - ands r0, r2 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0 - beq _080E7744 - ldr r2, _080E7728 @ =gSharedMem + 0x1000 - adds r3, r2, 0 - adds r3, 0x85 - ldrb r0, [r3] - subs r0, 0x1 - strb r0, [r3] - lsls r0, 24 - cmp r0, 0 - bge _080E77BC - adds r1, r2, 0 - adds r1, 0x86 - adds r0, r2, 0 - adds r0, 0x84 - ldrb r4, [r1] - ldrb r1, [r1] - lsls r1, 24 - asrs r1, 24 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r1, r0 - bne _080E772C - movs r0, 0x2 - b _080E77BA - .align 2, 0 -_080E7728: .4byte gSharedMem + 0x1000 -_080E772C: - adds r0, r2, 0 - adds r0, 0x83 - ldrb r0, [r0] - subs r1, r0, 0x1 - strb r1, [r3] - adds r5, r4, 0 - muls r5, r0 - adds r0, r5, 0 - adds r1, r0 - lsls r1, 24 - lsrs r0, r1, 24 - b _080E77B2 -_080E7744: - movs r0, 0x10 - ands r0, r2 - cmp r0, 0 - beq _080E77C0 - ldr r2, _080E777C @ =gSharedMem + 0x1000 - adds r5, r2, 0 - adds r5, 0x86 - adds r0, r2, 0 - adds r0, 0x84 - movs r1, 0 - ldrsb r1, [r5, r1] - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r1, r0 - bne _080E7780 - adds r1, r2, 0 - adds r1, 0x85 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0x2 - ble _080E77BC - strb r4, [r1] - b _080E77BC - .align 2, 0 -_080E777C: .4byte gSharedMem + 0x1000 -_080E7780: - adds r3, r2, 0 - adds r3, 0x85 - ldrb r0, [r3] - adds r0, 0x1 - strb r0, [r3] - movs r6, 0x83 - adds r6, r2 - mov r12, r6 - lsls r0, 24 - asrs r0, 24 - movs r1, 0 - ldrsb r1, [r6, r1] - cmp r0, r1 - blt _080E779E - strb r4, [r3] -_080E779E: - ldrb r1, [r5] - mov r4, r12 - ldrb r0, [r4] - adds r5, r0, 0 - muls r5, r1 - adds r0, r5, 0 - ldrb r6, [r3] - adds r0, r6 - lsls r0, 24 - lsrs r0, 24 -_080E77B2: - ldrb r1, [r2, 0xA] - cmp r0, r1 - bcc _080E77BC - subs r0, r1 -_080E77BA: - strb r0, [r3] -_080E77BC: - movs r0, 0x1 - b _080E77C2 -_080E77C0: - movs r0, 0 -_080E77C2: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_80E75D8 - - thumb_func_start sub_80E77C8 -sub_80E77C8: @ 80E77C8 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - movs r7, 0 - ldr r1, _080E780C @ =gSharedMem + 0x1000 - ldr r2, _080E7810 @ =0x000001b7 - adds r0, r1, r2 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - adds r3, r1, 0 - cmp r0, 0 - beq _080E783E - ldr r1, _080E7814 @ =gMain - ldrh r2, [r1, 0x30] - movs r0, 0x40 - ands r0, r2 - adds r6, r1, 0 - cmp r0, 0 - beq _080E7818 - movs r4, 0xD4 - lsls r4, 1 - adds r1, r3, r4 - ldrb r0, [r1] - subs r0, 0x1 - strb r0, [r1] - lsls r0, 24 - cmp r0, 0 - ble _080E7806 - b _080E7948 -_080E7806: - movs r0, 0x3 - strb r0, [r1] - b _080E7948 - .align 2, 0 -_080E780C: .4byte gSharedMem + 0x1000 -_080E7810: .4byte 0x000001b7 -_080E7814: .4byte gMain -_080E7818: - movs r0, 0x80 - ands r0, r2 - cmp r0, 0 - bne _080E7822 - b _080E7950 -_080E7822: - movs r5, 0xD4 - lsls r5, 1 - adds r1, r3, r5 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0x3 - bgt _080E7838 - b _080E7948 -_080E7838: - movs r0, 0x1 - strb r0, [r1] - b _080E7948 -_080E783E: - adds r0, r3, 0 - adds r0, 0x26 - ldrb r0, [r0] - cmp r0, 0x1 - bne _080E789A - movs r4, 0 - ldr r1, _080E7870 @ =gMain - ldrh r2, [r1, 0x30] - movs r0, 0x40 - ands r0, r2 - adds r6, r1, 0 - cmp r0, 0 - beq _080E7874 - movs r6, 0xD4 - lsls r6, 1 - adds r1, r3, r6 - ldrb r0, [r1] - subs r0, 0x1 - strb r0, [r1] - lsls r0, 24 - cmp r0, 0 - bge _080E7944 - movs r0, 0x3 - strb r0, [r1] - b _080E7944 - .align 2, 0 -_080E7870: .4byte gMain -_080E7874: - movs r0, 0x80 - ands r0, r2 - cmp r0, 0 - beq _080E7894 - movs r0, 0xD4 - lsls r0, 1 - adds r1, r3, r0 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0x3 - ble _080E7892 - strb r7, [r1] -_080E7892: - movs r4, 0x1 -_080E7894: - cmp r4, 0 - beq _080E7950 - b _080E7944 -_080E789A: - movs r4, 0 - movs r1, 0xE0 - lsls r1, 1 - adds r5, r3, r1 - strb r7, [r5] - ldr r1, _080E78E0 @ =gMain - ldrh r2, [r1, 0x30] - movs r0, 0x40 - ands r0, r2 - adds r6, r1, 0 - cmp r0, 0 - beq _080E78E8 - movs r2, 0xD4 - lsls r2, 1 - adds r1, r3, r2 - ldrb r2, [r1] - movs r0, 0 - ldrsb r0, [r1, r0] - cmp r0, 0 - bne _080E78C4 - b _080E7A88 -_080E78C4: - subs r0, r2, 0x1 - strb r0, [r1] - ldr r4, _080E78E4 @ =0x000001b5 - adds r1, r3, r4 - lsls r0, 24 - asrs r0, 24 - ldrb r1, [r1] - lsls r1, 24 - asrs r1, 24 - cmp r0, r1 - bge _080E7932 - movs r0, 0xFF - strb r0, [r5] - b _080E7932 - .align 2, 0 -_080E78E0: .4byte gMain -_080E78E4: .4byte 0x000001b5 -_080E78E8: - movs r0, 0x80 - ands r0, r2 - cmp r0, 0 - beq _080E792E - movs r0, 0xD4 - lsls r0, 1 - adds r2, r3, r0 - movs r1, 0 - ldrsb r1, [r2, r1] - movs r4, 0xDB - lsls r4, 1 - adds r0, r3, r4 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - subs r0, 0x1 - cmp r1, r0 - blt _080E790E - b _080E7A88 -_080E790E: - ldrb r0, [r2] - adds r0, 0x1 - strb r0, [r2] - movs r1, 0 - ldrsb r1, [r2, r1] - ldr r2, _080E794C @ =0x000001b5 - adds r0, r3, r2 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - adds r0, 0x3 - cmp r1, r0 - ble _080E792C - movs r0, 0x1 - strb r0, [r5] -_080E792C: - movs r4, 0x1 -_080E792E: - cmp r4, 0 - beq _080E7950 -_080E7932: - movs r4, 0xE0 - lsls r4, 1 - adds r0, r3, r4 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0 - beq _080E7944 - b _080E7A88 -_080E7944: - bl sub_80E7A98 -_080E7948: - movs r0, 0x1 - b _080E7A8A - .align 2, 0 -_080E794C: .4byte 0x000001b5 -_080E7950: - ldrh r1, [r6, 0x30] - movs r0, 0x20 - ands r0, r1 - lsls r0, 16 - lsrs r6, r0, 16 - cmp r6, 0 - beq _080E7992 - ldr r5, _080E7974 @ =0x000001a9 - adds r2, r3, r5 - ldrb r1, [r2] - movs r0, 0 - ldrsb r0, [r2, r0] - cmp r0, 0 - beq _080E7978 - subs r0, r1, 0x1 - strb r0, [r2] - b _080E79E6 - .align 2, 0 -_080E7974: .4byte 0x000001a9 -_080E7978: - movs r6, 0xD4 - lsls r6, 1 - adds r0, r3, r6 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - movs r4, 0xD5 - lsls r4, 1 - adds r1, r3, r4 - adds r0, r1 - ldrb r0, [r0] - strb r0, [r2] - b _080E79E6 -_080E7992: - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _080E79E2 - ldr r5, _080E79D4 @ =0x000001b7 - adds r0, r3, r5 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0 - bne _080E79CC - ldr r0, _080E79D8 @ =0x000001a9 - adds r4, r3, r0 - movs r1, 0xD4 - lsls r1, 1 - adds r0, r3, r1 - movs r1, 0 - ldrsb r1, [r0, r1] - movs r2, 0xD5 - lsls r2, 1 - adds r0, r3, r2 - adds r1, r0 - ldrb r5, [r4] - movs r2, 0 - ldrsb r2, [r4, r2] - movs r0, 0 - ldrsb r0, [r1, r0] - cmp r2, r0 - bne _080E79DC -_080E79CC: - ldr r4, _080E79D8 @ =0x000001a9 - adds r0, r3, r4 - strb r6, [r0] - b _080E79E0 - .align 2, 0 -_080E79D4: .4byte 0x000001b7 -_080E79D8: .4byte 0x000001a9 -_080E79DC: - adds r0, r5, 0x1 - strb r0, [r4] -_080E79E0: - movs r7, 0x1 -_080E79E2: - cmp r7, 0 - beq _080E7A88 -_080E79E6: - adds r2, r3, 0 - ldr r5, _080E7A48 @ =0x000001b7 - adds r7, r2, r5 - ldrb r6, [r7] - mov r9, r6 - movs r1, 0 - ldr r0, _080E7A4C @ =0x000001a9 - adds r0, r2 - mov r12, r0 - subs r5, 0xF - adds r4, r2, r5 - movs r0, 0 - ldrsb r0, [r4, r0] - movs r6, 0xD5 - lsls r6, 1 - adds r6, r2 - mov r8, r6 - add r0, r8 - mov r6, r12 - movs r5, 0 - ldrsb r5, [r6, r5] - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r5, r0 - bne _080E7A1C - movs r1, 0x1 -_080E7A1C: - strb r1, [r7] - cmp r1, 0 - beq _080E7A58 - ldr r0, _080E7A50 @ =0x000001b5 - adds r1, r2, r0 - ldrb r0, [r4] - ldrb r1, [r1] - subs r0, r1 - strb r0, [r4] - lsls r0, 24 - cmp r0, 0 - beq _080E7A36 - b _080E7948 -_080E7A36: - movs r0, 0x1 - strb r0, [r4] - ldr r1, _080E7A54 @ =0x000001ab - adds r0, r2, r1 - ldrb r0, [r0] - mov r2, r12 - strb r0, [r2] - b _080E7948 - .align 2, 0 -_080E7A48: .4byte 0x000001b7 -_080E7A4C: .4byte 0x000001a9 -_080E7A50: .4byte 0x000001b5 -_080E7A54: .4byte 0x000001ab -_080E7A58: - mov r6, r9 - cmp r6, 0 - bne _080E7A60 - b _080E7948 -_080E7A60: - ldr r1, _080E7A84 @ =0x000001b5 - adds r0, r3, r1 - ldrb r0, [r0] - ldrb r2, [r4] - adds r0, r2 - strb r0, [r4] - cmp r5, 0 - bne _080E7A72 - b _080E7948 -_080E7A72: - movs r0, 0 - ldrsb r0, [r4, r0] - add r0, r8 - ldrb r0, [r0] - subs r0, 0x1 - mov r4, r12 - strb r0, [r4] - b _080E7948 - .align 2, 0 -_080E7A84: .4byte 0x000001b5 -_080E7A88: - movs r0, 0 -_080E7A8A: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_80E77C8 - - thumb_func_start sub_80E7A98 -sub_80E7A98: @ 80E7A98 - push {lr} - ldr r1, _080E7ACC @ =gSharedMem + 0x1000 - ldr r0, _080E7AD0 @ =0x000001a9 - adds r3, r1, r0 - movs r2, 0xD4 - lsls r2, 1 - adds r0, r1, r2 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - adds r2, 0x2 - adds r1, r2 - adds r0, r1 - movs r1, 0 - ldrsb r1, [r3, r1] - ldrb r2, [r0] - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r1, r0 - blt _080E7AC6 - subs r0, r2, 0x1 - strb r0, [r3] -_080E7AC6: - pop {r0} - bx r0 - .align 2, 0 -_080E7ACC: .4byte gSharedMem + 0x1000 -_080E7AD0: .4byte 0x000001a9 - thumb_func_end sub_80E7A98 - - thumb_func_start sub_80E7AD4 -sub_80E7AD4: @ 80E7AD4 - push {lr} - ldr r3, _080E7B08 @ =gSharedMem + 0x1000 - adds r0, r3, 0 - adds r0, 0x26 - ldrb r0, [r0] - cmp r0, 0 - bne _080E7B10 - ldr r1, _080E7B0C @ =0x000001a9 - adds r0, r3, r1 - movs r1, 0 - ldrsb r1, [r0, r1] - movs r2, 0xD4 - lsls r2, 1 - adds r0, r3, r2 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - lsls r0, 1 - adds r1, r0 - adds r0, r3, 0 - adds r0, 0x2A - adds r1, r0 - ldrb r1, [r1] - adds r2, 0x10 - b _080E7B34 - .align 2, 0 -_080E7B08: .4byte gSharedMem + 0x1000 -_080E7B0C: .4byte 0x000001a9 -_080E7B10: - ldr r1, _080E7B3C @ =0x000001a9 - adds r0, r3, r1 - movs r2, 0 - ldrsb r2, [r0, r2] - subs r1, 0x1 - adds r0, r3, r1 - movs r1, 0 - ldrsb r1, [r0, r1] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 1 - adds r2, r0 - adds r0, r3, 0 - adds r0, 0x40 - adds r2, r0 - ldrb r1, [r2] - movs r2, 0xDC - lsls r2, 1 -_080E7B34: - adds r0, r3, r2 - strb r1, [r0] - pop {r0} - bx r0 - .align 2, 0 -_080E7B3C: .4byte 0x000001a9 - thumb_func_end sub_80E7AD4 - - thumb_func_start sub_80E7B40 -sub_80E7B40: @ 80E7B40 - push {r4-r7,lr} - movs r5, 0 - ldr r2, _080E7B8C @ =gSharedMem + 0x1000 - movs r0, 0xE0 - lsls r0, 1 - adds r6, r2, r0 - strb r5, [r6] - ldr r1, _080E7B90 @ =gMain - ldrh r4, [r1, 0x30] - movs r0, 0x40 - ands r0, r4 - adds r3, r2, 0 - adds r7, r1, 0 - cmp r0, 0 - beq _080E7B9C - ldr r2, _080E7B94 @ =0x000099a4 - adds r1, r3, r2 - ldrb r2, [r1] - movs r0, 0 - ldrsb r0, [r1, r0] - cmp r0, 0 - bne _080E7B6E - b _080E7D1A -_080E7B6E: - subs r0, r2, 0x1 - strb r0, [r1] - ldr r4, _080E7B98 @ =0x00009a29 - adds r1, r3, r4 - lsls r0, 24 - asrs r0, 24 - ldrb r1, [r1] - lsls r1, 24 - asrs r1, 24 - cmp r0, r1 - bge _080E7BF2 - movs r0, 0xFF - strb r0, [r6] - b _080E7D1A - .align 2, 0 -_080E7B8C: .4byte gSharedMem + 0x1000 -_080E7B90: .4byte gMain -_080E7B94: .4byte 0x000099a4 -_080E7B98: .4byte 0x00009a29 -_080E7B9C: - movs r0, 0x80 - ands r0, r4 - cmp r0, 0 - beq _080E7BEE - ldr r0, _080E7BE0 @ =0x000099a4 - adds r2, r3, r0 - movs r1, 0 - ldrsb r1, [r2, r1] - ldr r4, _080E7BE4 @ =0x00009a28 - adds r0, r3, r4 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - subs r0, 0x1 - cmp r1, r0 - blt _080E7BBE - b _080E7D1A -_080E7BBE: - ldrb r0, [r2] - adds r0, 0x1 - strb r0, [r2] - movs r1, 0 - ldrsb r1, [r2, r1] - ldr r2, _080E7BE8 @ =0x00009a29 - adds r0, r3, r2 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - adds r0, 0x4 - cmp r1, r0 - blt _080E7BEC - movs r0, 0x1 - strb r0, [r6] - b _080E7D1A - .align 2, 0 -_080E7BE0: .4byte 0x000099a4 -_080E7BE4: .4byte 0x00009a28 -_080E7BE8: .4byte 0x00009a29 -_080E7BEC: - movs r5, 0x1 -_080E7BEE: - cmp r5, 0 - beq _080E7BFA -_080E7BF2: - bl sub_80E7D30 -_080E7BF6: - movs r0, 0x1 - b _080E7D1C -_080E7BFA: - ldrh r1, [r7, 0x30] - movs r0, 0x20 - ands r0, r1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0 - beq _080E7C38 - ldr r4, _080E7C30 @ =0x000099a5 - adds r2, r3, r4 - ldrb r0, [r2] - subs r0, 0x1 - strb r0, [r2] - lsls r0, 24 - cmp r0, 0 - bge _080E7BF6 - ldr r6, _080E7C34 @ =0x000099a4 - adds r0, r3, r6 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - adds r4, 0x1 - adds r1, r3, r4 - adds r0, r1 - ldrb r0, [r0] - subs r0, 0x1 - strb r0, [r2] - b _080E7BF6 - .align 2, 0 -_080E7C30: .4byte 0x000099a5 -_080E7C34: .4byte 0x000099a4 -_080E7C38: - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _080E7C70 - ldr r6, _080E7C68 @ =0x000099a5 - adds r4, r3, r6 - ldrb r0, [r4] - adds r0, 0x1 - strb r0, [r4] - ldr r2, _080E7C6C @ =0x000099a4 - adds r1, r3, r2 - movs r2, 0 - ldrsb r2, [r1, r2] - adds r6, 0x1 - adds r1, r3, r6 - adds r2, r1 - lsls r0, 24 - asrs r0, 24 - movs r1, 0 - ldrsb r1, [r2, r1] - cmp r0, r1 - blt _080E7BF6 - strb r5, [r4] - b _080E7BF6 - .align 2, 0 -_080E7C68: .4byte 0x000099a5 -_080E7C6C: .4byte 0x000099a4 -_080E7C70: - ldrh r1, [r7, 0x2E] - movs r0, 0x8 - ands r0, r1 - cmp r0, 0 - beq _080E7CC4 - ldr r1, _080E7CBC @ =0x00009a29 - adds r0, r3, r1 - ldrb r1, [r0] - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0 - beq _080E7CA2 - negs r0, r1 - movs r4, 0xE0 - lsls r4, 1 - adds r2, r3, r4 - strb r0, [r2] - lsls r0, 24 - asrs r0, 24 - movs r1, 0x4 - negs r1, r1 - cmp r0, r1 - bge _080E7CA2 - strb r1, [r2] -_080E7CA2: - ldr r6, _080E7CC0 @ =0x000099a4 - adds r1, r3, r6 - movs r2, 0xE0 - lsls r2, 1 - adds r0, r3, r2 - ldrb r0, [r0] - ldrb r4, [r1] - adds r0, r4 - strb r0, [r1] - movs r6, 0xDF - lsls r6, 1 - adds r1, r3, r6 - b _080E7D16 - .align 2, 0 -_080E7CBC: .4byte 0x00009a29 -_080E7CC0: .4byte 0x000099a4 -_080E7CC4: - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _080E7D1A - ldr r0, _080E7D24 @ =0x00009a29 - adds r4, r3, r0 - movs r1, 0 - ldrsb r1, [r4, r1] - ldr r6, _080E7D28 @ =0x00009a28 - adds r2, r3, r6 - movs r0, 0 - ldrsb r0, [r2, r0] - subs r0, 0x4 - cmp r1, r0 - bge _080E7CFE - ldrb r1, [r4] - adds r1, 0x4 - ldrb r0, [r2] - subs r0, r1 - movs r2, 0xE0 - lsls r2, 1 - adds r1, r3, r2 - strb r0, [r1] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0x4 - ble _080E7CFE - movs r0, 0x4 - strb r0, [r1] -_080E7CFE: - ldr r4, _080E7D2C @ =0x000099a4 - adds r1, r3, r4 - movs r6, 0xE0 - lsls r6, 1 - adds r0, r3, r6 - ldrb r0, [r0] - ldrb r2, [r1] - adds r0, r2 - strb r0, [r1] - movs r4, 0xDF - lsls r4, 1 - adds r1, r3, r4 -_080E7D16: - movs r0, 0x4 - strb r0, [r1] -_080E7D1A: - movs r0, 0 -_080E7D1C: - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_080E7D24: .4byte 0x00009a29 -_080E7D28: .4byte 0x00009a28 -_080E7D2C: .4byte 0x000099a4 - thumb_func_end sub_80E7B40 - - thumb_func_start sub_80E7D30 -sub_80E7D30: @ 80E7D30 - push {r4,lr} - ldr r0, _080E7D60 @ =gSharedMem + 0x1000 - ldr r1, _080E7D64 @ =0x000099a5 - adds r4, r0, r1 - ldr r2, _080E7D68 @ =0x000099a4 - adds r1, r0, r2 - ldrb r1, [r1] - lsls r1, 24 - asrs r1, 24 - adds r2, 0x2 - adds r0, r2 - adds r1, r0 - movs r2, 0 - ldrsb r2, [r4, r2] - ldrb r3, [r1] - movs r0, 0 - ldrsb r0, [r1, r0] - cmp r2, r0 - blt _080E7D5A - subs r0, r3, 0x1 - strb r0, [r4] -_080E7D5A: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080E7D60: .4byte gSharedMem + 0x1000 -_080E7D64: .4byte 0x000099a5 -_080E7D68: .4byte 0x000099a4 - thumb_func_end sub_80E7D30 - - thumb_func_start sub_80E7D6C -sub_80E7D6C: @ 80E7D6C - push {r4,r5,lr} - movs r4, 0 - ldr r0, _080E7D94 @ =gSharedMem + 0x1000 - ldrb r1, [r0, 0xA] - cmp r4, r1 - bcs _080E7D8E - adds r5, r0, 0 -_080E7D7A: - adds r0, r4, 0 - ldr r1, _080E7D98 @ =0x0000ffff - bl sub_80E7F00 - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - ldrb r0, [r5, 0xA] - cmp r4, r0 - bcc _080E7D7A -_080E7D8E: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080E7D94: .4byte gSharedMem + 0x1000 -_080E7D98: .4byte 0x0000ffff - thumb_func_end sub_80E7D6C - - thumb_func_start sub_80E7D9C -sub_80E7D9C: @ 80E7D9C - push {r4,r5,lr} - movs r2, 0 - ldr r0, _080E7DCC @ =gSharedMem + 0x1000 - ldrb r1, [r0, 0xA] - cmp r2, r1 - bcs _080E7DC6 - adds r3, r0, 0 - ldr r4, [r3, 0x4] - adds r5, r3, 0 - adds r5, 0xC -_080E7DB0: - lsls r0, r2, 1 - adds r1, r0, r4 - adds r0, r5 - ldrh r0, [r0] - strh r0, [r1] - adds r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - ldrb r0, [r3, 0xA] - cmp r2, r0 - bcc _080E7DB0 -_080E7DC6: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080E7DCC: .4byte gSharedMem + 0x1000 - thumb_func_end sub_80E7D9C - - thumb_func_start sub_80E7DD0 -sub_80E7DD0: @ 80E7DD0 - push {r4,lr} - ldr r2, _080E7E28 @ =gSharedMem + 0x1000 - ldr r1, _080E7E2C @ =0x000099a5 - adds r0, r2, r1 - movs r1, 0 - ldrsb r1, [r0, r1] - lsls r1, 1 - ldr r3, _080E7E30 @ =0x000099a4 - adds r0, r2, r3 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - lsls r0, 2 - adds r1, r0 - adds r3, 0x86 - adds r0, r2, r3 - adds r1, r0 - ldrh r4, [r1] - adds r0, r2, 0 - adds r0, 0x7D - ldrb r0, [r0] - cmp r0, 0 - beq _080E7E34 - adds r0, r2, 0 - adds r0, 0x86 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - adds r1, r2, 0 - adds r1, 0x7E - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0x1 - bls _080E7E34 - adds r0, r4, 0 - bl sub_80EB2D4 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x7 - bne _080E7E34 - movs r0, 0 - b _080E7E46 - .align 2, 0 -_080E7E28: .4byte gSharedMem + 0x1000 -_080E7E2C: .4byte 0x000099a5 -_080E7E30: .4byte 0x000099a4 -_080E7E34: - ldr r0, _080E7E4C @ =gSharedMem + 0x1000 - adds r0, 0x27 - ldrb r0, [r0] - adds r1, r4, 0 - bl sub_80E7F00 - bl sub_80E95A4 - movs r0, 0x1 -_080E7E46: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080E7E4C: .4byte gSharedMem + 0x1000 - thumb_func_end sub_80E7DD0 - - thumb_func_start sub_80E7E50 -sub_80E7E50: @ 80E7E50 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x8 - movs r5, 0 - movs r2, 0 - ldr r1, _080E7EF0 @ =gSharedMem + 0x1000 - adds r3, r1, 0 - adds r3, 0x84 - movs r0, 0 - ldrsb r0, [r3, r0] - cmp r2, r0 - bge _080E7EDE - mov r8, r1 - adds r0, r1, 0 - str r0, [sp] -_080E7E74: - mov r0, r8 - adds r0, 0x7E - adds r0, r2, r0 - movs r1, 0 - strb r1, [r0] - movs r3, 0 - ldr r6, _080E7EF4 @ =gSharedMem + 0x1083 - movs r0, 0 - ldrsb r0, [r6, r0] - adds r1, r2, 0x1 - str r1, [sp, 0x4] - cmp r3, r0 - bge _080E7ECE - ldr r6, [sp] - mov r12, r6 - movs r0, 0 - mov r10, r0 - ldr r1, _080E7EF4 @ =gSharedMem + 0x1083 - mov r9, r1 - ldr r7, _080E7EF8 @ =gSharedMem + 0x100C - lsls r4, r2, 1 -_080E7E9E: - lsls r1, r5, 1 - adds r2, r1, r7 - mov r6, r12 - ldr r0, [r6, 0x4] - adds r1, r0 - ldrh r0, [r1] - strh r0, [r2] - adds r0, r3, r4 - mov r1, r12 - adds r1, 0x8C - adds r0, r1 - mov r1, r10 - strb r1, [r0] - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - mov r6, r9 - movs r0, 0 - ldrsb r0, [r6, r0] - cmp r3, r0 - blt _080E7E9E -_080E7ECE: - ldr r1, [sp, 0x4] - lsls r0, r1, 16 - lsrs r2, r0, 16 - ldr r6, _080E7EFC @ =gSharedMem + 0x1084 - movs r0, 0 - ldrsb r0, [r6, r0] - cmp r2, r0 - blt _080E7E74 -_080E7EDE: - add sp, 0x8 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080E7EF0: .4byte gSharedMem + 0x1000 -_080E7EF4: .4byte gSharedMem + 0x1083 -_080E7EF8: .4byte gSharedMem + 0x100C -_080E7EFC: .4byte gSharedMem + 0x1084 - thumb_func_end sub_80E7E50 - - thumb_func_start sub_80E7F00 -sub_80E7F00: @ 80E7F00 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - lsls r0, 16 - lsrs r6, r0, 16 - lsls r1, 16 - lsrs r1, 16 - mov r9, r1 - ldr r7, _080E7F68 @ =gSharedMem + 0x1000 - adds r0, r7, 0 - adds r0, 0x83 - movs r4, 0 - ldrsb r4, [r0, r4] - adds r0, r6, 0 - adds r1, r4, 0 - bl __divsi3 - lsls r0, 16 - lsrs r5, r0, 16 - adds r0, r6, 0 - adds r1, r4, 0 - bl __modsi3 - lsls r0, 16 - lsrs r0, 16 - mov r8, r0 - lsls r0, r6, 1 - adds r1, r7, 0 - adds r1, 0xC - adds r0, r1 - ldrh r0, [r0] - bl sub_80EB2D4 - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - mov r0, r9 - bl sub_80EB2D4 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r4, 0x7 - bne _080E7F6C - cmp r3, 0x7 - beq _080E7F7C - adds r1, r7, 0 - adds r1, 0x7E - adds r1, r5, r1 - ldrb r0, [r1] - subs r0, 0x1 - b _080E7F7A - .align 2, 0 -_080E7F68: .4byte gSharedMem + 0x1000 -_080E7F6C: - cmp r3, 0x7 - bne _080E7F7C - adds r1, r7, 0 - adds r1, 0x7E - adds r1, r5, r1 - ldrb r0, [r1] - adds r0, 0x1 -_080E7F7A: - strb r0, [r1] -_080E7F7C: - movs r3, 0 - ldr r2, _080E7FA4 @ =gSharedMem + 0x1000 - lsls r0, r5, 1 - add r0, r8 - adds r1, r2, 0 - adds r1, 0x8C - adds r0, r1 - strb r3, [r0] - lsls r0, r6, 1 - adds r2, 0xC - adds r0, r2 - mov r1, r9 - strh r1, [r0] - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080E7FA4: .4byte gSharedMem + 0x1000 - thumb_func_end sub_80E7F00 - - thumb_func_start sub_80E7FA8 -sub_80E7FA8: @ 80E7FA8 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - movs r0, 0 - mov r8, r0 - movs r5, 0 - ldr r0, _080E8040 @ =gSharedMem + 0x1000 - ldrb r1, [r0, 0xA] - cmp r8, r1 - bcs _080E802E - ldr r3, _080E8044 @ =0x00009e14 - adds r6, r0, r3 - ldr r1, _080E8048 @ =0x00009e41 - adds r1, r0 - mov r9, r1 -_080E7FC8: - ldr r3, _080E804C @ =0xffff61ec - adds r7, r6, r3 - ldr r0, [r7, 0x4] - lsls r4, r5, 1 - adds r0, r4, r0 - ldrh r1, [r0] - adds r0, r6, 0 - movs r2, 0 - bl sub_80EB218 - ldr r1, _080E8050 @ =0xffff61f8 - adds r0, r6, r1 - adds r0, r4 - ldrh r1, [r0] - mov r0, r9 - movs r2, 0 - bl sub_80EB218 - adds r1, r6, 0 - mov r2, r9 - ldrb r0, [r1] - adds r4, r5, 0x1 - ldrb r3, [r2] - cmp r0, r3 - bne _080E8018 - adds r3, r7, 0 - cmp r0, 0xFF - beq _080E8010 -_080E8000: - adds r1, 0x1 - adds r2, 0x1 - ldrb r0, [r1] - ldrb r5, [r2] - cmp r0, r5 - bne _080E8018 - cmp r0, 0xFF - bne _080E8000 -_080E8010: - ldrb r0, [r1] - ldrb r2, [r2] - cmp r0, r2 - beq _080E8024 -_080E8018: - mov r0, r8 - adds r0, 0x1 - lsls r0, 16 - lsrs r0, 16 - mov r8, r0 - ldr r3, _080E8040 @ =gSharedMem + 0x1000 -_080E8024: - lsls r0, r4, 16 - lsrs r5, r0, 16 - ldrb r3, [r3, 0xA] - cmp r5, r3 - bcc _080E7FC8 -_080E802E: - mov r1, r8 - lsls r0, r1, 24 - lsrs r0, 24 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_080E8040: .4byte gSharedMem + 0x1000 -_080E8044: .4byte 0x00009e14 -_080E8048: .4byte 0x00009e41 -_080E804C: .4byte 0xffff61ec -_080E8050: .4byte 0xffff61f8 - thumb_func_end sub_80E7FA8 - - thumb_func_start sub_80E8054 -sub_80E8054: @ 80E8054 - push {r4,lr} - movs r1, 0 - ldr r2, _080E8078 @ =gSharedMem + 0x1000 - ldrb r0, [r2, 0xA] - cmp r1, r0 - bcs _080E808A - adds r4, r2, 0 - adds r4, 0xC - ldr r3, _080E807C @ =0x0000ffff - adds r2, r0, 0 -_080E8068: - lsls r0, r1, 1 - adds r0, r4 - ldrh r0, [r0] - cmp r0, r3 - beq _080E8080 - movs r0, 0 - b _080E808C - .align 2, 0 -_080E8078: .4byte gSharedMem + 0x1000 -_080E807C: .4byte 0x0000ffff -_080E8080: - adds r0, r1, 0x1 - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, r2 - bcc _080E8068 -_080E808A: - movs r0, 0x1 -_080E808C: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_80E8054 - - thumb_func_start sub_80E8094 -sub_80E8094: @ 80E8094 - push {r4-r7,lr} - movs r5, 0 - ldr r6, _080E80C4 @ =gSharedMem + 0xAE14 - adds r7, r6, 0 - adds r7, 0x2D -_080E809E: - lsls r4, r5, 1 - ldr r1, _080E80C8 @ =0xffff61f8 - adds r0, r6, r1 - adds r0, r4 - ldrh r1, [r0] - adds r0, r6, 0 - movs r2, 0 - bl sub_80EB218 - ldr r0, _080E80CC @ =gMysteryEventPhrase - adds r4, r0 - ldrh r1, [r4] - adds r0, r7, 0 - movs r2, 0 - bl sub_80EB218 - adds r3, r6, 0 - adds r4, r7, 0 - b _080E80D8 - .align 2, 0 -_080E80C4: .4byte gSharedMem + 0xAE14 -_080E80C8: .4byte 0xffff61f8 -_080E80CC: .4byte gMysteryEventPhrase -_080E80D0: - adds r4, 0x1 - adds r3, 0x1 - cmp r2, r1 - bne _080E80F4 -_080E80D8: - ldrb r2, [r3] - adds r0, r2, 0 - cmp r0, 0xFF - beq _080E80EE - ldrb r1, [r4] - adds r0, r1, 0 - cmp r0, 0xFF - bne _080E80D0 - ldrb r0, [r3] - cmp r0, 0xFF - bne _080E80F4 -_080E80EE: - ldrb r0, [r4] - cmp r0, 0xFF - beq _080E80F8 -_080E80F4: - movs r0, 0 - b _080E8104 -_080E80F8: - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0x3 - bls _080E809E - movs r0, 0x1 -_080E8104: - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_80E8094 - - thumb_func_start sub_80E810C -sub_80E810C: @ 80E810C - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - movs r5, 0 - ldr r6, _080E8198 @ =gSharedMem + 0xAE6E - ldr r0, _080E819C @ =0xffff6192 - adds r0, r6 - mov r9, r0 - movs r1, 0 - mov r8, r1 - adds r7, r6, 0 - adds r7, 0x80 - ldr r2, _080E81A0 @ =gBerryMasterWifePhrases - mov r10, r2 -_080E812C: - mov r0, r9 - ldrh r1, [r0, 0xC] - adds r0, r6, 0 - movs r2, 0 - bl sub_80EB218 - mov r1, r8 - strb r1, [r0] - adds r0, 0x1 - mov r2, r9 - ldrh r1, [r2, 0xE] - movs r2, 0 - bl sub_80EB218 - lsls r4, r5, 2 - mov r1, r10 - adds r0, r4, r1 - ldrh r1, [r0] - adds r0, r7, 0 - movs r2, 0 - bl sub_80EB218 - mov r2, r8 - strb r2, [r0] - adds r0, 0x1 - ldr r1, _080E81A4 @ =gBerryMasterWifePhrases + 0x2 - adds r4, r1 - ldrh r1, [r4] - movs r2, 0 - bl sub_80EB218 - adds r0, r6, 0 - adds r3, r7, 0 - adds r4, r5, 0x1 -_080E8170: - ldrb r2, [r0] - cmp r2, 0xFF - beq _080E818A - ldrb r1, [r3] - cmp r1, 0xFF - beq _080E8184 - adds r3, 0x1 - adds r0, 0x1 - cmp r2, r1 - beq _080E8170 -_080E8184: - ldrb r0, [r0] - cmp r0, 0xFF - bne _080E81A8 -_080E818A: - ldrb r0, [r3] - cmp r0, 0xFF - bne _080E81A8 - lsls r0, r4, 24 - lsrs r0, 24 - b _080E81B2 - .align 2, 0 -_080E8198: .4byte gSharedMem + 0xAE6E -_080E819C: .4byte 0xffff6192 -_080E81A0: .4byte gBerryMasterWifePhrases -_080E81A4: .4byte gBerryMasterWifePhrases + 0x2 -_080E81A8: - lsls r0, r4, 16 - lsrs r5, r0, 16 - cmp r5, 0x4 - bls _080E812C - movs r0, 0 -_080E81B2: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_80E810C - - thumb_func_start sub_80E81C0 -sub_80E81C0: @ 80E81C0 - push {r4,lr} - ldr r0, _080E81EC @ =gStringVar2 - ldr r4, _080E81F0 @ =gSharedMem + 0x1000 - ldr r2, _080E81F4 @ =0x00009c7c - adds r1, r4, r2 - ldrh r1, [r1] - movs r2, 0 - bl sub_80EB218 - movs r1, 0 - strb r1, [r0] - adds r0, 0x1 - ldr r1, _080E81F8 @ =0x00009c7e - adds r4, r1 - ldrh r1, [r4] - movs r2, 0 - bl sub_80EB218 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080E81EC: .4byte gStringVar2 -_080E81F0: .4byte gSharedMem + 0x1000 -_080E81F4: .4byte 0x00009c7c -_080E81F8: .4byte 0x00009c7e - thumb_func_end sub_80E81C0 - - thumb_func_start sub_80E81FC -sub_80E81FC: @ 80E81FC - push {lr} - movs r0, 0x5 - bl PlaySE - bl sub_80E95A4 - movs r0, 0 - movs r1, 0 - movs r2, 0x1D - movs r3, 0xD - bl MenuZeroFillWindowRect - pop {r0} - bx r0 - thumb_func_end sub_80E81FC - - thumb_func_start sub_80E8218 -sub_80E8218: @ 80E8218 - push {r4,r5,lr} - sub sp, 0x40 - mov r1, sp - ldr r0, _080E8260 @ =gSpriteSheets_Interview - ldm r0!, {r2-r4} - stm r1!, {r2-r4} - ldm r0!, {r2,r3,r5} - stm r1!, {r2,r3,r5} - ldm r0!, {r2,r4,r5} - stm r1!, {r2,r4,r5} - ldr r0, [r0] - str r0, [r1] - add r4, sp, 0x28 - adds r1, r4, 0 - ldr r0, _080E8264 @ =gSpritePalettes_Interview - ldm r0!, {r2,r3,r5} - stm r1!, {r2,r3,r5} - ldm r0!, {r2,r3,r5} - stm r1!, {r2,r3,r5} - mov r0, sp - bl LoadSpriteSheets - adds r0, r4, 0 - bl LoadSpritePalettes - bl sub_80E8268 - bl sub_80E8818 - bl sub_80E8A7C - add sp, 0x40 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080E8260: .4byte gSpriteSheets_Interview -_080E8264: .4byte gSpritePalettes_Interview - thumb_func_end sub_80E8218 - - thumb_func_start sub_80E8268 -sub_80E8268: @ 80E8268 - push {lr} - ldr r0, _080E82B0 @ =gSpriteTemplate_83DBBFC - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080E82B4 @ =gSprites - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - ldr r0, _080E82B8 @ =gUnknown_083DB694 - ldr r3, [r0] - adds r0, r3, 0 - adds r0, 0x8A - ldrh r0, [r0] - lsls r0, 3 - adds r0, 0x8 - movs r2, 0 - strh r0, [r1, 0x22] - adds r0, r3, 0 - adds r0, 0x88 - ldrh r0, [r0] - lsls r0, 3 - adds r0, 0x4 - strh r0, [r1, 0x20] - strh r2, [r1, 0x2E] - strh r2, [r1, 0x30] - adds r0, r3, 0 - adds r0, 0x98 - str r1, [r0] - pop {r0} - bx r0 - .align 2, 0 -_080E82B0: .4byte gSpriteTemplate_83DBBFC -_080E82B4: .4byte gSprites -_080E82B8: .4byte gUnknown_083DB694 - thumb_func_end sub_80E8268 - - thumb_func_start sub_80E82BC -sub_80E82BC: @ 80E82BC - push {r4-r7,lr} - adds r3, r0, 0 - movs r1, 0x30 - ldrsh r0, [r3, r1] - cmp r0, 0 - bne _080E838C - ldr r0, _080E8334 @ =gUnknown_083DB694 - ldr r2, [r0] - adds r1, r2, 0 - adds r1, 0x87 - ldrb r1, [r1] - mov r12, r0 - cmp r1, 0 - beq _080E836C - adds r0, r2, 0 - adds r0, 0x86 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - lsls r0, 16 - lsrs r5, r0, 16 - adds r0, r2, 0 - adds r0, 0x85 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - lsls r0, 16 - lsrs r4, r0, 16 - movs r7, 0 - movs r1, 0 - cmp r7, r4 - bcs _080E8316 - lsls r6, r5, 1 - adds r2, 0x8C -_080E8300: - adds r0, r1, r6 - adds r0, r2, r0 - ldrb r0, [r0] - adds r0, r7, r0 - lsls r0, 16 - lsrs r7, r0, 16 - adds r0, r1, 0x1 - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, r4 - bcc _080E8300 -_080E8316: - mov r0, r12 - ldr r2, [r0] - adds r0, r2, 0 - adds r0, 0x84 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r5, r0 - bne _080E8338 - movs r0, 0x60 - strh r0, [r3, 0x22] - lsls r0, r4, 3 - subs r0, r4 - adds r0, 0x3 - b _080E8356 - .align 2, 0 -_080E8334: .4byte gUnknown_083DB694 -_080E8338: - adds r1, r2, 0 - adds r1, 0x8A - lsls r0, r5, 1 - ldrh r1, [r1] - adds r0, r1 - lsls r0, 3 - adds r0, 0x8 - strh r0, [r3, 0x22] - adds r0, r2, 0 - adds r0, 0x88 - ldrh r0, [r0] - adds r0, r7 - movs r1, 0xB - muls r1, r4 - adds r0, r1 -_080E8356: - lsls r0, 3 - adds r0, 0x4 - strh r0, [r3, 0x20] - movs r1, 0 - ldr r0, _080E8368 @ =0x0000fffa - strh r0, [r3, 0x24] - strh r1, [r3, 0x2E] - b _080E838C - .align 2, 0 -_080E8368: .4byte 0x0000fffa -_080E836C: - ldrh r0, [r3, 0x2E] - adds r0, 0x1 - strh r0, [r3, 0x2E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x2 - ble _080E838C - strh r1, [r3, 0x2E] - ldrh r0, [r3, 0x24] - adds r0, 0x1 - strh r0, [r3, 0x24] - lsls r0, 16 - cmp r0, 0 - ble _080E838C - ldr r0, _080E8394 @ =0x0000fffa - strh r0, [r3, 0x24] -_080E838C: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080E8394: .4byte 0x0000fffa - thumb_func_end sub_80E82BC - - thumb_func_start sub_80E8398 -sub_80E8398: @ 80E8398 - push {lr} - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0x1 - beq _080E83D4 - cmp r3, 0x1 - bgt _080E83AC - cmp r3, 0 - beq _080E83B2 - b _080E8416 -_080E83AC: - cmp r3, 0x2 - beq _080E83F8 - b _080E8416 -_080E83B2: - ldr r0, _080E83D0 @ =gUnknown_083DB694 - ldr r0, [r0] - adds r0, 0x98 - ldr r1, [r0] - strh r3, [r1, 0x30] - ldr r1, [r0] - strh r3, [r1, 0x24] - ldr r1, [r0] - adds r1, 0x3E - ldrb r2, [r1] - movs r0, 0x5 - negs r0, r0 - ands r0, r2 - b _080E8414 - .align 2, 0 -_080E83D0: .4byte gUnknown_083DB694 -_080E83D4: - ldr r0, _080E83F4 @ =gUnknown_083DB694 - ldr r1, [r0] - adds r1, 0x98 - ldr r0, [r1] - movs r2, 0 - strh r3, [r0, 0x30] - ldr r0, [r1] - strh r2, [r0, 0x24] - ldr r1, [r1] - adds r1, 0x3E - ldrb r2, [r1] - movs r0, 0x5 - negs r0, r0 - ands r0, r2 - b _080E8414 - .align 2, 0 -_080E83F4: .4byte gUnknown_083DB694 -_080E83F8: - ldr r0, _080E841C @ =gUnknown_083DB694 - ldr r1, [r0] - adds r1, 0x98 - ldr r2, [r1] - movs r3, 0 - movs r0, 0x1 - strh r0, [r2, 0x30] - ldr r0, [r1] - strh r3, [r0, 0x24] - ldr r1, [r1] - adds r1, 0x3E - ldrb r0, [r1] - movs r2, 0x4 - orrs r0, r2 -_080E8414: - strb r0, [r1] -_080E8416: - pop {r0} - bx r0 - .align 2, 0 -_080E841C: .4byte gUnknown_083DB694 - thumb_func_end sub_80E8398 - - thumb_func_start sub_80E8420 -sub_80E8420: @ 80E8420 - push {r4-r7,lr} - sub sp, 0x18 - mov r1, sp - ldr r0, _080E84E0 @ =gSpriteTemplate_83DBCAC - ldm r0!, {r2-r4} - stm r1!, {r2-r4} - ldm r0!, {r2-r4} - stm r1!, {r2-r4} - mov r0, sp - movs r1, 0 - movs r2, 0 - movs r3, 0x3 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - ldr r1, _080E84E4 @ =gUnknown_083DB694 - ldr r7, [r1] - adds r5, r7, 0 - adds r5, 0x9C - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - ldr r4, _080E84E8 @ =gSprites - adds r1, r4 - str r1, [r5] - ldr r0, _080E84EC @ =gSpriteAnimTable_83DBC8C - str r0, [sp, 0x8] - ldr r0, _080E84F0 @ =sub_80E872C - str r0, [sp, 0x14] - mov r0, sp - movs r1, 0 - movs r2, 0 - movs r3, 0x4 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - adds r6, r7, 0 - adds r6, 0xA0 - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r4 - str r1, [r6] - ldr r0, _080E84F4 @ =gSpriteAnimTable_83DBC9C - str r0, [sp, 0x8] - ldr r0, _080E84F8 @ =sub_80E8760 - str r0, [sp, 0x14] - mov r0, sp - movs r1, 0 - movs r2, 0 - movs r3, 0x5 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - adds r2, r7, 0 - adds r2, 0xA4 - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r4 - str r1, [r2] - ldr r0, [r5] - movs r1, 0 - strh r1, [r0, 0x2E] - ldr r0, [r6] - strh r1, [r0, 0x2E] - ldr r0, [r2] - strh r1, [r0, 0x2E] - movs r0, 0x1 - bl IndexOfSpritePaletteTag - ldr r1, [r5] - lsls r0, 24 - lsrs r0, 20 - ldr r2, _080E84FC @ =0x00000101 - adds r0, r2 - strh r0, [r1, 0x34] - bl sub_80E8534 - adds r1, r7, 0 - adds r1, 0x96 - movs r0, 0x1 - strb r0, [r1] - ldr r1, _080E8500 @ =REG_BLDCNT - movs r3, 0xFD - lsls r3, 6 - adds r0, r3, 0 - strh r0, [r1] - add sp, 0x18 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080E84E0: .4byte gSpriteTemplate_83DBCAC -_080E84E4: .4byte gUnknown_083DB694 -_080E84E8: .4byte gSprites -_080E84EC: .4byte gSpriteAnimTable_83DBC8C -_080E84F0: .4byte sub_80E872C -_080E84F4: .4byte gSpriteAnimTable_83DBC9C -_080E84F8: .4byte sub_80E8760 -_080E84FC: .4byte 0x00000101 -_080E8500: .4byte REG_BLDCNT - thumb_func_end sub_80E8420 - - thumb_func_start sub_80E8504 -sub_80E8504: @ 80E8504 - push {r4,lr} - ldr r0, _080E8530 @ =gUnknown_083DB694 - ldr r4, [r0] - adds r0, r4, 0 - adds r0, 0x9C - ldr r0, [r0] - bl DestroySprite - adds r0, r4, 0 - adds r0, 0xA0 - ldr r0, [r0] - bl DestroySprite - adds r0, r4, 0 - adds r0, 0xA4 - ldr r0, [r0] - bl DestroySprite - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080E8530: .4byte gUnknown_083DB694 - thumb_func_end sub_80E8504 - - thumb_func_start sub_80E8534 -sub_80E8534: @ 80E8534 - push {r4-r7,lr} - mov r7, r8 - push {r7} - ldr r1, _080E8554 @ =gUnknown_083DB694 - ldr r3, [r1] - ldr r2, _080E8558 @ =0x000001b7 - adds r0, r3, r2 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - adds r4, r1, 0 - cmp r0, 0 - beq _080E8560 - ldr r1, _080E855C @ =gUnknown_020388AC - movs r0, 0x1 - b _080E8598 - .align 2, 0 -_080E8554: .4byte gUnknown_083DB694 -_080E8558: .4byte 0x000001b7 -_080E855C: .4byte gUnknown_020388AC -_080E8560: - adds r0, r3, 0 - adds r0, 0x26 - ldrb r2, [r0] - cmp r2, 0 - bne _080E8578 - ldr r0, _080E8574 @ =gUnknown_020388AC - strb r2, [r0] - adds r7, r0, 0 - b _080E859C - .align 2, 0 -_080E8574: .4byte gUnknown_020388AC -_080E8578: - movs r1, 0xD4 - lsls r1, 1 - adds r0, r3, r1 - ldrh r1, [r0] - movs r0, 0xC0 - lsls r0, 3 - cmp r1, r0 - bne _080E8594 - ldr r1, _080E8590 @ =gUnknown_020388AC - movs r0, 0x2 - b _080E8598 - .align 2, 0 -_080E8590: .4byte gUnknown_020388AC -_080E8594: - ldr r1, _080E85F4 @ =gUnknown_020388AC - movs r0, 0x3 -_080E8598: - strb r0, [r1] - adds r7, r1, 0 -_080E859C: - ldr r2, [r4] - adds r4, r2, 0 - adds r4, 0x9C - ldr r1, [r4] - ldrb r0, [r7] - movs r3, 0 - mov r8, r3 - strh r0, [r1, 0x32] - adds r5, r2, 0 - adds r5, 0xA0 - ldr r1, [r5] - ldrb r0, [r7] - strh r0, [r1, 0x32] - adds r6, r2, 0 - adds r6, 0xA4 - ldr r1, [r6] - ldrb r0, [r7] - strh r0, [r1, 0x32] - ldr r0, [r4] - ldrb r1, [r7] - bl StartSpriteAnim - ldr r0, [r5] - ldrb r1, [r7] - bl StartSpriteAnim - ldr r0, [r6] - ldrb r1, [r7] - bl StartSpriteAnim - ldr r0, [r4] - movs r1, 0x8 - strh r1, [r0, 0x38] - ldr r0, [r4] - strh r1, [r0, 0x3A] - ldr r0, [r4] - mov r1, r8 - strh r1, [r0, 0x30] - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080E85F4: .4byte gUnknown_020388AC - thumb_func_end sub_80E8534 - - thumb_func_start sub_80E85F8 -sub_80E85F8: @ 80E85F8 - push {r4-r6,lr} - adds r5, r0, 0 - ldrh r0, [r5, 0x2E] - adds r0, 0x1 - strh r0, [r5, 0x2E] - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080E8624 - ldr r1, _080E8620 @ =gSineTable - movs r2, 0x30 - ldrsh r0, [r5, r2] - lsls r0, 1 - adds r0, r1 - ldrh r0, [r0] - lsls r0, 16 - asrs r0, 21 - adds r0, 0x8 - strh r0, [r5, 0x38] - b _080E863A - .align 2, 0 -_080E8620: .4byte gSineTable -_080E8624: - ldr r1, _080E8688 @ =gSineTable - movs r2, 0x30 - ldrsh r0, [r5, r2] - lsls r0, 1 - adds r0, r1 - ldrh r1, [r0] - lsls r1, 16 - asrs r1, 21 - movs r0, 0x8 - subs r0, r1 - strh r0, [r5, 0x3A] -_080E863A: - ldrh r0, [r5, 0x30] - adds r0, 0x5 - movs r1, 0xFF - ands r0, r1 - strh r0, [r5, 0x30] - ldr r2, _080E868C @ =REG_BLDALPHA - ldrh r0, [r5, 0x3A] - lsls r0, 8 - ldrh r1, [r5, 0x38] - orrs r0, r1 - strh r0, [r2] - ldr r0, _080E8690 @ =gUnknown_083DB694 - ldr r6, [r0] - adds r0, r6, 0 - adds r0, 0x96 - ldrb r0, [r0] - cmp r0, 0 - beq _080E871A - bl sub_80E8534 - adds r1, r6, 0 - adds r1, 0x9C - ldr r0, [r1] - movs r2, 0x8 - strh r2, [r0, 0x38] - ldr r0, [r1] - strh r2, [r0, 0x3A] - ldr r1, [r1] - movs r0, 0 - strh r0, [r1, 0x30] - movs r1, 0x32 - ldrsh r0, [r5, r1] - cmp r0, 0x1 - beq _080E86C4 - cmp r0, 0x1 - bgt _080E8694 - cmp r0, 0 - beq _080E869E - b _080E871A - .align 2, 0 -_080E8688: .4byte gSineTable -_080E868C: .4byte REG_BLDALPHA -_080E8690: .4byte gUnknown_083DB694 -_080E8694: - cmp r0, 0x2 - beq _080E86D6 - cmp r0, 0x3 - beq _080E86DE - b _080E871A -_080E869E: - ldr r2, _080E86C0 @ =0x000001a9 - adds r0, r6, r2 - movs r1, 0 - ldrsb r1, [r0, r1] - movs r0, 0x58 - muls r0, r1 - adds r0, 0x20 - strh r0, [r5, 0x20] - movs r1, 0xD4 - lsls r1, 1 - adds r0, r6, r1 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - adds r2, 0xC - b _080E870A - .align 2, 0 -_080E86C0: .4byte 0x000001a9 -_080E86C4: - movs r0, 0xD8 - strh r0, [r5, 0x20] - movs r1, 0xD4 - lsls r1, 1 - adds r0, r6, r1 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - b _080E8714 -_080E86D6: - movs r0, 0x97 - strh r0, [r5, 0x20] - movs r0, 0x60 - b _080E8718 -_080E86DE: - ldr r4, _080E8720 @ =gUnknown_083DBCC4 - ldr r2, _080E8724 @ =0x000001a9 - adds r0, r6, r2 - movs r1, 0 - ldrsb r1, [r0, r1] - movs r0, 0xD4 - lsls r0, 1 - adds r3, r6, r0 - movs r2, 0 - ldrsb r2, [r3, r2] - lsls r0, r2, 3 - subs r0, r2 - adds r1, r0 - adds r1, r4 - movs r0, 0 - ldrsb r0, [r1, r0] - lsls r0, 3 - adds r0, 0x1F - strh r0, [r5, 0x20] - movs r0, 0 - ldrsb r0, [r3, r0] - ldr r2, _080E8728 @ =0x000001b5 -_080E870A: - adds r1, r6, r2 - ldrb r1, [r1] - lsls r1, 24 - asrs r1, 24 - subs r0, r1 -_080E8714: - lsls r0, 4 - adds r0, 0x60 -_080E8718: - strh r0, [r5, 0x22] -_080E871A: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080E8720: .4byte gUnknown_083DBCC4 -_080E8724: .4byte 0x000001a9 -_080E8728: .4byte 0x000001b5 - thumb_func_end sub_80E85F8 - - thumb_func_start sub_80E872C -sub_80E872C: @ 80E872C - push {lr} - adds r2, r0, 0 - ldr r0, _080E875C @ =gUnknown_083DB694 - ldr r1, [r0] - adds r0, r1, 0 - adds r0, 0x96 - ldrb r0, [r0] - cmp r0, 0 - beq _080E8756 - movs r3, 0x32 - ldrsh r0, [r2, r3] - cmp r0, 0 - bne _080E8756 - adds r1, 0x9C - ldr r0, [r1] - ldrh r0, [r0, 0x20] - adds r0, 0x20 - strh r0, [r2, 0x20] - ldr r0, [r1] - ldrh r0, [r0, 0x22] - strh r0, [r2, 0x22] -_080E8756: - pop {r0} - bx r0 - .align 2, 0 -_080E875C: .4byte gUnknown_083DB694 - thumb_func_end sub_80E872C - - thumb_func_start sub_80E8760 -sub_80E8760: @ 80E8760 - push {lr} - adds r2, r0, 0 - ldr r0, _080E8780 @ =gUnknown_083DB694 - ldr r1, [r0] - adds r0, r1, 0 - adds r0, 0x96 - ldrb r0, [r0] - cmp r0, 0 - beq _080E879E - movs r3, 0x32 - ldrsh r0, [r2, r3] - cmp r0, 0 - beq _080E8784 - cmp r0, 0x2 - beq _080E878E - b _080E879E - .align 2, 0 -_080E8780: .4byte gUnknown_083DB694 -_080E8784: - adds r1, 0x9C - ldr r0, [r1] - ldrh r0, [r0, 0x20] - adds r0, 0x40 - b _080E8796 -_080E878E: - adds r1, 0x9C - ldr r0, [r1] - ldrh r0, [r0, 0x20] - adds r0, 0x15 -_080E8796: - strh r0, [r2, 0x20] - ldr r0, [r1] - ldrh r0, [r0, 0x22] - strh r0, [r2, 0x22] -_080E879E: - pop {r0} - bx r0 - thumb_func_end sub_80E8760 - - thumb_func_start sub_80E87A4 -sub_80E87A4: @ 80E87A4 - push {r4,lr} - lsls r0, 24 - ldr r1, _080E87C8 @ =gUnknown_083DB694 - ldr r1, [r1] - adds r2, r1, 0 - adds r2, 0xA8 - ldr r3, [r2] - movs r4, 0 - cmp r0, 0 - bne _080E87BA - movs r4, 0x1 -_080E87BA: - movs r1, 0 - strh r4, [r3, 0x30] - ldr r0, [r2] - strh r1, [r0, 0x24] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080E87C8: .4byte gUnknown_083DB694 - thumb_func_end sub_80E87A4 - - thumb_func_start sub_80E87CC -sub_80E87CC: @ 80E87CC - push {r4,r5,lr} - lsls r0, 24 - lsrs r0, 24 - adds r4, r0, 0 - ldr r0, _080E8810 @ =gUnknown_083DB694 - ldr r5, [r0] - adds r0, r5, 0 - adds r0, 0xA8 - ldr r0, [r0] - movs r3, 0 - cmp r4, 0 - bne _080E87E6 - movs r3, 0x1 -_080E87E6: - adds r2, r0, 0 - adds r2, 0x3E - lsls r3, 2 - ldrb r1, [r2] - movs r0, 0x5 - negs r0, r0 - ands r0, r1 - orrs r0, r3 - strb r0, [r2] - adds r0, r4, 0 - bl sub_80E87A4 - cmp r4, 0 - beq _080E880A - ldr r0, _080E8814 @ =0x000001b9 - adds r1, r5, r0 - movs r0, 0x1 - strb r0, [r1] -_080E880A: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080E8810: .4byte gUnknown_083DB694 -_080E8814: .4byte 0x000001b9 - thumb_func_end sub_80E87CC - - thumb_func_start sub_80E8818 -sub_80E8818: @ 80E8818 - push {lr} - ldr r0, _080E8850 @ =gSpriteTemplate_83DBBFC - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080E8854 @ =gSprites - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - movs r0, 0 - strh r0, [r1, 0x2E] - strh r0, [r1, 0x30] - ldr r0, _080E8858 @ =gUnknown_083DB694 - ldr r0, [r0] - adds r0, 0xA8 - str r1, [r0] - ldr r0, _080E885C @ =sub_80E8860 - str r0, [r1, 0x1C] - movs r0, 0 - bl sub_80E87CC - pop {r0} - bx r0 - .align 2, 0 -_080E8850: .4byte gSpriteTemplate_83DBBFC -_080E8854: .4byte gSprites -_080E8858: .4byte gUnknown_083DB694 -_080E885C: .4byte sub_80E8860 - thumb_func_end sub_80E8818 - - thumb_func_start sub_80E8860 -sub_80E8860: @ 80E8860 - push {r4,r5,lr} - adds r2, r0, 0 - movs r0, 0x30 - ldrsh r4, [r2, r0] - cmp r4, 0 - bne _080E88E4 - ldr r0, _080E88B0 @ =gUnknown_083DB694 - ldr r3, [r0] - ldr r1, _080E88B4 @ =0x000001b9 - adds r0, r3, r1 - ldrb r1, [r0] - cmp r1, 0 - beq _080E88C4 - ldr r5, _080E88B8 @ =0x000099a5 - adds r0, r3, r5 - movs r1, 0 - ldrsb r1, [r0, r1] - movs r0, 0x58 - muls r0, r1 - adds r0, 0x2C - strh r0, [r2, 0x20] - ldr r1, _080E88BC @ =0x000099a4 - adds r0, r3, r1 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - adds r5, 0x84 - adds r1, r3, r5 - ldrb r1, [r1] - lsls r1, 24 - asrs r1, 24 - subs r0, r1 - lsls r0, 4 - adds r0, 0x60 - strh r0, [r2, 0x22] - ldr r0, _080E88C0 @ =0x0000fffa - strh r0, [r2, 0x24] - strh r4, [r2, 0x2E] - b _080E88E4 - .align 2, 0 -_080E88B0: .4byte gUnknown_083DB694 -_080E88B4: .4byte 0x000001b9 -_080E88B8: .4byte 0x000099a5 -_080E88BC: .4byte 0x000099a4 -_080E88C0: .4byte 0x0000fffa -_080E88C4: - ldrh r0, [r2, 0x2E] - adds r0, 0x1 - strh r0, [r2, 0x2E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x2 - ble _080E88E4 - strh r1, [r2, 0x2E] - ldrh r0, [r2, 0x24] - adds r0, 0x1 - strh r0, [r2, 0x24] - lsls r0, 16 - cmp r0, 0 - ble _080E88E4 - ldr r0, _080E88EC @ =0x0000fffa - strh r0, [r2, 0x24] -_080E88E4: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080E88EC: .4byte 0x0000fffa - thumb_func_end sub_80E8860 - - thumb_func_start sub_80E88F0 -sub_80E88F0: @ 80E88F0 - push {r4-r7,lr} - mov r7, r8 - push {r7} - movs r4, 0 - ldr r0, _080E8950 @ =gUnknown_083DB694 - mov r8, r0 - ldr r0, [r0] - movs r6, 0x4 - movs r5, 0 - movs r1, 0xB4 - adds r1, r0 - mov r12, r1 - adds r7, r0, 0 - adds r7, 0xAC -_080E890C: - lsls r2, r4, 2 - adds r3, r7, r2 - ldr r1, [r3] - adds r1, 0x3E - ldrb r0, [r1] - orrs r0, r6 - strb r0, [r1] - ldr r0, [r3] - strh r5, [r0, 0x30] - add r2, r12 - ldr r1, [r2] - adds r1, 0x3E - ldrb r0, [r1] - orrs r0, r6 - strb r0, [r1] - ldr r0, [r2] - strh r5, [r0, 0x30] - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0x1 - bls _080E890C - mov r1, r8 - ldr r0, [r1] - ldr r1, _080E8954 @ =0x00009c70 - adds r0, r1 - movs r1, 0 - strb r1, [r0] - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080E8950: .4byte gUnknown_083DB694 -_080E8954: .4byte 0x00009c70 - thumb_func_end sub_80E88F0 - - thumb_func_start sub_80E8958 -sub_80E8958: @ 80E8958 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - lsls r0, 24 - lsrs r7, r0, 24 - cmp r7, 0 - bne _080E89B4 - movs r0, 0x64 - mov r9, r0 - ldr r0, _080E8998 @ =gUnknown_083DB694 - ldr r2, [r0] - ldr r3, _080E899C @ =0x00009c6c - adds r1, r2, r3 - ldr r3, _080E89A0 @ =0x000001b5 - adds r0, r2, r3 - str r0, [r1] - adds r0, r2, 0 - adds r0, 0x26 - ldrb r0, [r0] - cmp r0, 0 - bne _080E89A8 - movs r1, 0xDB - lsls r1, 1 - adds r0, r2, r1 - ldrb r0, [r0] - subs r0, 0x4 - ldr r3, _080E89A4 @ =0x00009c71 - adds r1, r2, r3 - strb r0, [r1] - b _080E8A00 - .align 2, 0 -_080E8998: .4byte gUnknown_083DB694 -_080E899C: .4byte 0x00009c6c -_080E89A0: .4byte 0x000001b5 -_080E89A4: .4byte 0x00009c71 -_080E89A8: - ldr r1, _080E89B0 @ =0x00009c71 - adds r0, r2, r1 - strb r7, [r0] - b _080E8A00 - .align 2, 0 -_080E89B0: .4byte 0x00009c71 -_080E89B4: - movs r3, 0x78 - mov r9, r3 - ldr r0, _080E8A64 @ =gUnknown_083DB694 - ldr r2, [r0] - ldr r0, _080E8A68 @ =0x00009c6c - adds r1, r2, r0 - ldr r3, _080E8A6C @ =0x00009a29 - adds r0, r2, r3 - str r0, [r1] - ldr r1, _080E8A70 @ =0x00009a28 - adds r0, r2, r1 - ldrb r0, [r0] - subs r0, 0x4 - ldr r3, _080E8A74 @ =0x00009c71 - adds r1, r2, r3 - strb r0, [r1] - movs r4, 0 - adds r5, r2, 0 - adds r5, 0xB4 - movs r0, 0x5 - negs r0, r0 - mov r12, r0 - movs r6, 0x1 -_080E89E2: - lsls r3, r4, 2 - adds r3, r5, r3 - ldr r1, [r3] - adds r1, 0x3E - ldrb r2, [r1] - mov r0, r12 - ands r0, r2 - strb r0, [r1] - ldr r0, [r3] - strh r6, [r0, 0x30] - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0x1 - bls _080E89E2 -_080E8A00: - ldr r0, _080E8A64 @ =gUnknown_083DB694 - ldr r2, [r0] - ldr r3, _080E8A74 @ =0x00009c71 - adds r1, r2, r3 - movs r0, 0 - ldrsb r0, [r1, r0] - cmp r0, 0 - bge _080E8A14 - movs r0, 0 - strb r0, [r1] -_080E8A14: - movs r4, 0 - adds r6, r2, 0 - adds r6, 0xAC - movs r0, 0x5 - negs r0, r0 - mov r8, r0 -_080E8A20: - lsls r2, r4, 2 - adds r2, r6, r2 - ldr r0, [r2] - mov r1, r9 - strh r1, [r0, 0x20] - ldr r1, [r2] - adds r1, 0x3E - ldrb r0, [r1] - mov r3, r8 - ands r0, r3 - strb r0, [r1] - ldr r0, [r2] - movs r5, 0x1 - strh r5, [r0, 0x30] - ldr r0, [r2] - adds r1, r7, 0 - bl StartSpriteAnim - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0x1 - bls _080E8A20 - ldr r0, _080E8A64 @ =gUnknown_083DB694 - ldr r0, [r0] - ldr r1, _080E8A78 @ =0x00009c70 - adds r0, r1 - strb r5, [r0] - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080E8A64: .4byte gUnknown_083DB694 -_080E8A68: .4byte 0x00009c6c -_080E8A6C: .4byte 0x00009a29 -_080E8A70: .4byte 0x00009a28 -_080E8A74: .4byte 0x00009c71 -_080E8A78: .4byte 0x00009c70 - thumb_func_end sub_80E8958 - - thumb_func_start sub_80E8A7C -sub_80E8A7C: @ 80E8A7C - push {r4-r7,lr} - sub sp, 0x18 - mov r1, sp - ldr r0, _080E8B68 @ =gSpriteTemplate_83DBD18 - ldm r0!, {r2-r4} - stm r1!, {r2-r4} - ldm r0!, {r2-r4} - stm r1!, {r2-r4} - movs r5, 0 -_080E8A8E: - lsls r2, r5, 3 - adds r2, r5 - lsls r2, 19 - movs r0, 0xA8 - lsls r0, 15 - adds r2, r0 - asrs r2, 16 - mov r0, sp - movs r1, 0 - movs r3, 0 - bl CreateSprite - lsls r0, 24 - lsrs r1, r0, 24 - ldr r0, _080E8B6C @ =gUnknown_083DB694 - ldr r2, [r0] - lsls r0, r5, 2 - adds r2, 0xAC - adds r2, r0 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _080E8B70 @ =gSprites - adds r0, r1 - str r0, [r2] - strh r5, [r0, 0x2E] - ldr r3, [r2] - adds r3, 0x3F - movs r0, 0x1 - adds r2, r5, 0 - ands r2, r0 - lsls r2, 1 - ldrb r0, [r3] - movs r4, 0x3 - negs r4, r4 - adds r1, r4, 0 - ands r0, r1 - orrs r0, r2 - strb r0, [r3] - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0x1 - bls _080E8A8E - mov r0, sp - movs r1, 0x3 - strh r1, [r0] - ldr r0, _080E8B74 @ =gSpriteAnimTable_83DBD10 - str r0, [sp, 0x8] - movs r5, 0 - movs r7, 0x3F - movs r6, 0x40 -_080E8AF6: - lsls r4, r5, 2 - adds r1, r4, r5 - lsls r1, 19 - movs r0, 0x8E - lsls r0, 16 - adds r1, r0 - asrs r1, 16 - mov r0, sp - movs r2, 0x58 - movs r3, 0 - bl CreateSprite - lsls r0, 24 - lsrs r1, r0, 24 - ldr r0, _080E8B6C @ =gUnknown_083DB694 - ldr r2, [r0] - adds r2, 0xB4 - adds r2, r4 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _080E8B70 @ =gSprites - adds r0, r1 - str r0, [r2] - strh r5, [r0, 0x2E] - ldr r3, [r2] - ldrb r1, [r3, 0x1] - adds r0, r7, 0 - ands r0, r1 - orrs r0, r6 - strb r0, [r3, 0x1] - ldr r3, [r2] - ldrb r1, [r3, 0x3] - adds r0, r7, 0 - ands r0, r1 - orrs r0, r6 - strb r0, [r3, 0x3] - ldr r0, [r2] - lsls r1, r5, 24 - lsrs r1, 24 - bl StartSpriteAnim - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0x1 - bls _080E8AF6 - movs r0, 0 - bl sub_80E8958 - bl sub_80E88F0 - add sp, 0x18 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080E8B68: .4byte gSpriteTemplate_83DBD18 -_080E8B6C: .4byte gUnknown_083DB694 -_080E8B70: .4byte gSprites -_080E8B74: .4byte gSpriteAnimTable_83DBD10 - thumb_func_end sub_80E8A7C - - thumb_func_start sub_80E8B78 -sub_80E8B78: @ 80E8B78 - push {r4,lr} - adds r3, r0, 0 - ldr r0, _080E8BB0 @ =gUnknown_083DB694 - ldr r1, [r0] - ldr r2, _080E8BB4 @ =0x00009c70 - adds r0, r1, r2 - ldrb r0, [r0] - cmp r0, 0 - beq _080E8BE8 - movs r2, 0x30 - ldrsh r0, [r3, r2] - cmp r0, 0 - beq _080E8BE8 - movs r2, 0x2E - ldrsh r0, [r3, r2] - cmp r0, 0 - bne _080E8BBC - movs r4, 0 - ldr r2, _080E8BB8 @ =0x00009c6c - adds r0, r1, r2 - ldr r0, [r0] - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0 - bne _080E8BD6 - b _080E8BD4 - .align 2, 0 -_080E8BB0: .4byte gUnknown_083DB694 -_080E8BB4: .4byte 0x00009c70 -_080E8BB8: .4byte 0x00009c6c -_080E8BBC: - movs r4, 0 - ldr r2, _080E8BF0 @ =0x00009c6c - adds r0, r1, r2 - ldr r0, [r0] - adds r2, 0x5 - adds r1, r2 - movs r2, 0 - ldrsb r2, [r0, r2] - movs r0, 0 - ldrsb r0, [r1, r0] - cmp r2, r0 - bne _080E8BD6 -_080E8BD4: - movs r4, 0x1 -_080E8BD6: - adds r2, r3, 0 - adds r2, 0x3E - lsls r3, r4, 2 - ldrb r1, [r2] - movs r0, 0x5 - negs r0, r0 - ands r0, r1 - orrs r0, r3 - strb r0, [r2] -_080E8BE8: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080E8BF0: .4byte 0x00009c6c - thumb_func_end sub_80E8B78 - - thumb_func_start sub_80E8BF4 -sub_80E8BF4: @ 80E8BF4 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x14 - lsls r0, 24 - lsrs r3, r0, 24 - lsls r1, 24 - lsrs r2, r1, 24 - ldr r0, _080E8C28 @ =gUnknown_083DBD30 - ldr r1, [r0, 0x4] - ldr r0, [r0] - str r0, [sp, 0x4] - str r1, [sp, 0x8] - ldr r0, _080E8C2C @ =gUnknown_083DBD38 - ldr r1, [r0, 0x4] - ldr r0, [r0] - str r0, [sp, 0xC] - str r1, [sp, 0x10] - cmp r2, 0x2 - beq _080E8C20 - cmp r2, 0x5 - beq _080E8C30 -_080E8C20: - movs r4, 0x40 - movs r5, 0x28 - b _080E8C34 - .align 2, 0 -_080E8C28: .4byte gUnknown_083DBD30 -_080E8C2C: .4byte gUnknown_083DBD38 -_080E8C30: - movs r4, 0x24 - movs r5, 0x30 -_080E8C34: - cmp r3, 0 - beq _080E8C3C - cmp r3, 0x1 - beq _080E8C40 -_080E8C3C: - movs r0, 0x43 - b _080E8C42 -_080E8C40: - movs r0, 0x44 -_080E8C42: - mov r8, r0 - add r0, sp, 0x4 - bl LoadCompressedObjectPic - add r0, sp, 0xC - bl LoadSpritePalette - ldr r0, _080E8CDC @ =gSpriteTemplate_83DBD48 - adds r1, r4, 0 - adds r2, r5, 0 - movs r3, 0x1 - bl CreateSprite - ldr r0, _080E8CE0 @ =gSaveBlock2 - ldrb r0, [r0, 0x8] - movs r1, 0x69 - cmp r0, 0 - bne _080E8C68 - movs r1, 0x64 -_080E8C68: - ldr r7, _080E8CE4 @ =SpriteCallbackDummy - adds r2, r4, 0 - subs r2, 0xC - movs r6, 0 - str r6, [sp] - adds r0, r1, 0 - adds r1, r7, 0 - adds r3, r5, 0 - bl AddPseudoFieldObject - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x40 - beq _080E8C9E - ldr r1, _080E8CE8 @ =gSprites - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r0, r1 - ldrb r2, [r0, 0x5] - movs r1, 0xD - negs r1, r1 - ands r1, r2 - strb r1, [r0, 0x5] - movs r1, 0x3 - bl StartSpriteAnim -_080E8C9E: - adds r2, r4, 0 - adds r2, 0xC - str r6, [sp] - mov r0, r8 - adds r1, r7, 0 - adds r3, r5, 0 - bl AddPseudoFieldObject - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x40 - beq _080E8CD0 - ldr r1, _080E8CE8 @ =gSprites - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r0, r1 - ldrb r2, [r0, 0x5] - movs r1, 0xD - negs r1, r1 - ands r1, r2 - strb r1, [r0, 0x5] - movs r1, 0x2 - bl StartSpriteAnim -_080E8CD0: - add sp, 0x14 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080E8CDC: .4byte gSpriteTemplate_83DBD48 -_080E8CE0: .4byte gSaveBlock2 -_080E8CE4: .4byte SpriteCallbackDummy -_080E8CE8: .4byte gSprites - thumb_func_end sub_80E8BF4 - - thumb_func_start sub_80E8CEC -sub_80E8CEC: @ 80E8CEC - push {lr} - ldr r0, _080E8D24 @ =gUnknown_083DBD60 - bl LoadCompressedObjectPic - ldr r0, _080E8D28 @ =gUnknown_083DBD68 - bl LoadSpritePalette - ldr r0, _080E8D2C @ =gSpriteTemplate_83DBDE4 - movs r1, 0xE0 - movs r2, 0x58 - movs r3, 0 - bl CreateSprite - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x40 - beq _080E8D3C - ldr r0, _080E8D30 @ =gUnknown_083DB694 - ldr r2, [r0] - ldr r0, _080E8D34 @ =0x00009c74 - adds r2, r0 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _080E8D38 @ =gSprites - adds r0, r1 - str r0, [r2] - b _080E8D48 - .align 2, 0 -_080E8D24: .4byte gUnknown_083DBD60 -_080E8D28: .4byte gUnknown_083DBD68 -_080E8D2C: .4byte gSpriteTemplate_83DBDE4 -_080E8D30: .4byte gUnknown_083DB694 -_080E8D34: .4byte 0x00009c74 -_080E8D38: .4byte gSprites -_080E8D3C: - ldr r0, _080E8D4C @ =gUnknown_083DB694 - ldr r0, [r0] - ldr r1, _080E8D50 @ =0x00009c74 - adds r0, r1 - movs r1, 0 - str r1, [r0] -_080E8D48: - pop {r0} - bx r0 - .align 2, 0 -_080E8D4C: .4byte gUnknown_083DB694 -_080E8D50: .4byte 0x00009c74 - thumb_func_end sub_80E8CEC - - thumb_func_start sub_80E8D54 -sub_80E8D54: @ 80E8D54 - push {lr} - ldr r0, _080E8D78 @ =gUnknown_083DB694 - ldr r2, [r0] - ldr r1, _080E8D7C @ =0x00009c74 - adds r0, r2, r1 - ldr r1, [r0] - cmp r1, 0 - beq _080E8D88 - adds r0, r2, 0 - adds r0, 0x26 - ldrb r0, [r0] - cmp r0, 0 - bne _080E8D80 - adds r0, r1, 0 - movs r1, 0x1 - bl StartSpriteAnim - b _080E8D88 - .align 2, 0 -_080E8D78: .4byte gUnknown_083DB694 -_080E8D7C: .4byte 0x00009c74 -_080E8D80: - adds r0, r1, 0 - movs r1, 0x2 - bl StartSpriteAnim -_080E8D88: - pop {r0} - bx r0 - thumb_func_end sub_80E8D54 - - thumb_func_start sub_80E8D8C -sub_80E8D8C: @ 80E8D8C - push {lr} - lsls r0, 24 - lsrs r3, r0, 24 - ldr r0, _080E8DB8 @ =gUnknown_083DB694 - ldr r2, [r0] - ldr r1, _080E8DBC @ =0x00009c74 - adds r0, r2, r1 - ldr r1, [r0] - cmp r1, 0 - beq _080E8DD2 - cmp r3, 0 - beq _080E8DCA - adds r0, r2, 0 - adds r0, 0x26 - ldrb r0, [r0] - cmp r0, 0 - bne _080E8DC0 - adds r0, r1, 0 - movs r1, 0x3 - bl StartSpriteAnim - b _080E8DD2 - .align 2, 0 -_080E8DB8: .4byte gUnknown_083DB694 -_080E8DBC: .4byte 0x00009c74 -_080E8DC0: - adds r0, r1, 0 - movs r1, 0x4 - bl StartSpriteAnim - b _080E8DD2 -_080E8DCA: - adds r0, r1, 0 - movs r1, 0x5 - bl StartSpriteAnim -_080E8DD2: - pop {r0} - bx r0 - thumb_func_end sub_80E8D8C - - thumb_func_start sub_80E8DD8 -sub_80E8DD8: @ 80E8DD8 - push {r4-r6,lr} - mov r6, r9 - mov r5, r8 - push {r5,r6} - sub sp, 0x8 - ldr r0, _080E8F2C @ =REG_BG0HOFS - movs r6, 0 - strh r6, [r0] - adds r0, 0x2 - strh r6, [r0] - adds r0, 0x2 - strh r6, [r0] - adds r0, 0x2 - strh r6, [r0] - adds r0, 0x4 - strh r6, [r0] - subs r0, 0x2 - strh r6, [r0] - adds r0, 0x4 - strh r6, [r0] - adds r0, 0x2 - strh r6, [r0] - ldr r1, _080E8F30 @ =REG_BG0CNT - movs r2, 0x8B - lsls r2, 8 - adds r0, r2, 0 - strh r0, [r1] - adds r1, 0x2 - ldr r2, _080E8F34 @ =0x00000d09 - adds r0, r2, 0 - strh r0, [r1] - ldr r0, _080E8F38 @ =gUnknown_08E945D0 - ldr r1, _080E8F3C @ =gUnknown_083DB694 - ldr r1, [r1] - mov r8, r1 - movs r4, 0xE4 - lsls r4, 1 - add r4, r8 - movs r5, 0xA0 - lsls r5, 2 - adds r1, r4, 0 - adds r2, r5, 0 - bl CpuSet - ldr r0, _080E8F40 @ =gUnknown_08E953D0 - movs r1, 0xD9 - lsls r1, 3 - add r1, r8 - bl LZ77UnCompWram - ldr r0, _080E8F44 @ =gMenuWordGroupFrame_Gfx - ldr r1, _080E8F48 @ =0x06008000 - bl LZ77UnCompVram - ldr r1, _080E8F4C @ =0x06006800 - adds r0, r4, 0 - adds r2, r5, 0 - bl CpuSet - ldr r0, _080E8F50 @ =gMenuWordGroupFrame1_Pal - movs r1, 0x40 - movs r2, 0x40 - bl LoadPalette - ldr r1, _080E8F54 @ =REG_BG2CNT - ldr r2, _080E8F58 @ =0x00000e02 - adds r0, r2, 0 - strh r0, [r1] - ldr r1, _080E8F5C @ =0x06007000 - movs r5, 0x80 - lsls r5, 4 - mov r0, sp - strh r6, [r0] - ldr r4, _080E8F60 @ =0x040000d4 - str r0, [r4] - str r1, [r4, 0x4] - lsrs r0, r5, 1 - movs r2, 0x81 - lsls r2, 24 - orrs r0, r2 - str r0, [r4, 0x8] - ldr r0, [r4, 0x8] - ldr r0, _080E8F64 @ =gUnknown_08E9AB00 - ldr r2, _080E8F68 @ =0x06006000 - str r0, [r4] - str r2, [r4, 0x4] - ldr r0, _080E8F6C @ =0x80000020 - str r0, [r4, 0x8] - ldr r0, [r4, 0x8] - ldr r0, _080E8F70 @ =gUnknown_08E9AB60 - bl LZ77UnCompVram - ldr r0, _080E8F74 @ =gUnknown_08E9AB40 - movs r1, 0 - movs r2, 0x20 - bl LoadPalette - ldr r0, _080E8F78 @ =gUnknown_083DBDFC - movs r1, 0x10 - movs r2, 0x20 - bl LoadPalette - ldr r1, _080E8F7C @ =REG_BG3CNT - ldr r2, _080E8F80 @ =0x00000f0f - adds r0, r2, 0 - strh r0, [r1] - ldr r1, _080E8F84 @ =0x06007800 - movs r0, 0 - mov r9, r0 - str r0, [sp, 0x4] - add r0, sp, 0x4 - str r0, [r4] - str r1, [r4, 0x4] - lsrs r5, 2 - movs r0, 0x85 - lsls r0, 24 - orrs r5, r0 - str r5, [r4, 0x8] - ldr r0, [r4, 0x8] - ldr r0, _080E8F88 @ =gUnknown_083DBE40 - movs r1, 0x20 - movs r2, 0x20 - bl LoadPalette - ldr r0, _080E8F8C @ =gPlttBufferUnfaded - adds r1, r0, 0 - adds r1, 0x7E - ldr r3, _080E8F90 @ =0x00007fff - strh r3, [r1] - subs r1, 0x1C - ldr r2, _080E8F94 @ =0x00006f5b - strh r2, [r1] - adds r0, 0x70 - ldr r1, _080E8F98 @ =0x0000739c - strh r1, [r0] - ldr r0, _080E8F9C @ =gPlttBufferFaded - adds r4, r0, 0 - adds r4, 0x7E - strh r3, [r4] - adds r3, r0, 0 - adds r3, 0x62 - strh r2, [r3] - adds r0, 0x70 - strh r1, [r0] - movs r1, 0xBC - add r8, r1 - mov r2, r8 - strb r6, [r2] - bl sub_80E8FA4 - bl sub_80E948C - movs r0, 0xA - bl sub_80E9198 - movs r0, 0 - bl sub_80E91D4 - bl sub_80E95A4 - ldr r0, _080E8FA0 @ =REG_BLDCNT - mov r1, r9 - strh r1, [r0] - add sp, 0x8 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080E8F2C: .4byte REG_BG0HOFS -_080E8F30: .4byte REG_BG0CNT -_080E8F34: .4byte 0x00000d09 -_080E8F38: .4byte gUnknown_08E945D0 -_080E8F3C: .4byte gUnknown_083DB694 -_080E8F40: .4byte gUnknown_08E953D0 -_080E8F44: .4byte gMenuWordGroupFrame_Gfx -_080E8F48: .4byte 0x06008000 -_080E8F4C: .4byte 0x06006800 -_080E8F50: .4byte gMenuWordGroupFrame1_Pal -_080E8F54: .4byte REG_BG2CNT -_080E8F58: .4byte 0x00000e02 -_080E8F5C: .4byte 0x06007000 -_080E8F60: .4byte 0x040000d4 -_080E8F64: .4byte gUnknown_08E9AB00 -_080E8F68: .4byte 0x06006000 -_080E8F6C: .4byte 0x80000020 -_080E8F70: .4byte gUnknown_08E9AB60 -_080E8F74: .4byte gUnknown_08E9AB40 -_080E8F78: .4byte gUnknown_083DBDFC -_080E8F7C: .4byte REG_BG3CNT -_080E8F80: .4byte 0x00000f0f -_080E8F84: .4byte 0x06007800 -_080E8F88: .4byte gUnknown_083DBE40 -_080E8F8C: .4byte gPlttBufferUnfaded -_080E8F90: .4byte 0x00007fff -_080E8F94: .4byte 0x00006f5b -_080E8F98: .4byte 0x0000739c -_080E8F9C: .4byte gPlttBufferFaded -_080E8FA0: .4byte REG_BLDCNT - thumb_func_end sub_80E8DD8 - - thumb_func_start sub_80E8FA4 -sub_80E8FA4: @ 80E8FA4 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x2C - movs r0, 0 - mov r9, r0 - mov r1, sp - adds r1, 0x18 - str r1, [sp, 0x24] - add r2, sp, 0xC - mov r12, r2 -_080E8FBE: - mov r3, r9 - lsls r1, r3, 1 - ldr r4, _080E90F4 @ =gMenuWordGroupFrame2_Pal + 0x2 - adds r0, r1, r4 - ldrh r2, [r0] - movs r0, 0x1F - ands r0, r2 - lsls r0, 8 - str r0, [sp] - ldr r5, _080E90F8 @ =gMenuWordGroupFrame2_Pal + 0x8 - adds r1, r5 - ldrh r1, [r1] - movs r0, 0x1F - ands r0, r1 - lsls r0, 8 - str r0, [sp, 0xC] - lsls r2, 16 - lsrs r0, r2, 21 - movs r3, 0x1F - ands r0, r3 - lsls r0, 8 - str r0, [sp, 0x4] - lsls r1, 16 - lsrs r0, r1, 21 - ands r0, r3 - lsls r0, 8 - mov r4, r12 - str r0, [r4, 0x4] - lsrs r2, 26 - ands r2, r3 - lsls r2, 8 - str r2, [sp, 0x8] - lsrs r1, 26 - ands r1, r3 - lsls r1, 8 - str r1, [r4, 0x8] - movs r3, 0 - mov r5, r9 - lsls r5, 3 - mov r10, r5 - mov r0, r9 - adds r0, 0x1 - str r0, [sp, 0x28] - ldr r4, [sp, 0x24] -_080E9016: - lsls r0, r3, 2 - adds r2, r4, r0 - mov r5, r12 - adds r1, r5, r0 - add r0, sp - ldr r1, [r1] - ldr r0, [r0] - subs r0, r1, r0 - cmp r0, 0 - bge _080E902C - adds r0, 0x7 -_080E902C: - asrs r0, 3 - str r0, [r2] - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, 0x2 - bls _080E9016 - movs r4, 0 - ldr r0, _080E90FC @ =gUnknown_083DB694 - ldr r1, [r0] - mov r0, r10 - add r0, r9 - lsls r0, 1 - mov r8, r0 - movs r5, 0x1F - ldr r6, [sp, 0x24] - ldr r0, _080E9100 @ =0x00009c34 - adds r7, r1, r0 -_080E9050: - lsls r2, r4, 1 - add r2, r8 - adds r2, r7, r2 - ldr r1, [sp, 0x8] - asrs r1, 8 - ands r1, r5 - lsls r1, 10 - ldr r0, [sp, 0x4] - asrs r0, 8 - ands r0, r5 - lsls r0, 5 - orrs r1, r0 - ldr r0, [sp] - asrs r0, 8 - ands r0, r5 - orrs r1, r0 - strh r1, [r2] - movs r3, 0 - adds r4, 0x1 -_080E9076: - lsls r0, r3, 2 - mov r1, sp - adds r2, r1, r0 - adds r0, r6, r0 - ldr r1, [r2] - ldr r0, [r0] - adds r1, r0 - str r1, [r2] - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, 0x2 - bls _080E9076 - lsls r0, r4, 16 - lsrs r4, r0, 16 - cmp r4, 0x7 - bls _080E9050 - ldr r2, _080E90FC @ =gUnknown_083DB694 - ldr r3, [r2] - mov r0, r10 - add r0, r9 - adds r0, r4 - lsls r0, 1 - ldr r4, _080E9100 @ =0x00009c34 - adds r2, r3, r4 - adds r2, r0 - mov r5, r12 - ldr r1, [r5, 0x8] - asrs r1, 8 - movs r0, 0x1F - ands r1, r0 - lsls r1, 10 - ldr r0, [r5, 0x4] - asrs r0, 8 - movs r4, 0x1F - ands r0, r4 - lsls r0, 5 - orrs r1, r0 - ldr r0, [sp, 0xC] - asrs r0, 8 - ands r0, r4 - orrs r1, r0 - strh r1, [r2] - ldr r5, [sp, 0x28] - lsls r0, r5, 16 - lsrs r0, 16 - mov r9, r0 - cmp r0, 0x2 - bhi _080E90DA - b _080E8FBE -_080E90DA: - ldr r0, _080E9104 @ =0x00009c32 - adds r1, r3, r0 - movs r0, 0 - strb r0, [r1] - add sp, 0x2C - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080E90F4: .4byte gMenuWordGroupFrame2_Pal + 0x2 -_080E90F8: .4byte gMenuWordGroupFrame2_Pal + 0x8 -_080E90FC: .4byte gUnknown_083DB694 -_080E9100: .4byte 0x00009c34 -_080E9104: .4byte 0x00009c32 - thumb_func_end sub_80E8FA4 - - thumb_func_start sub_80E9108 -sub_80E9108: @ 80E9108 - push {r4-r7,lr} - lsls r0, 24 - ldr r1, _080E9164 @ =gUnknown_083DB694 - ldr r2, [r1] - ldr r3, _080E9168 @ =0x00009c32 - adds r1, r2, r3 - lsrs r0, 24 - ldrb r3, [r1] - adds r0, r3 - strb r0, [r1] - movs r4, 0 - ldr r0, _080E916C @ =gPlttBufferUnfaded - mov r12, r0 - adds r6, r1, 0 - ldr r3, _080E9170 @ =0x00009c34 - adds r5, r2, r3 - ldr r7, _080E9174 @ =gPlttBufferFaded -_080E912A: - adds r2, r4, 0 - adds r2, 0x51 - lsls r2, 1 - mov r0, r12 - adds r3, r2, r0 - ldrb r0, [r6] - lsls r0, 1 - lsls r1, r4, 3 - adds r1, r4 - lsls r1, 1 - adds r0, r1 - adds r0, r5, r0 - ldrh r0, [r0] - strh r0, [r3] - adds r2, r7 - ldrb r0, [r6] - lsls r0, 1 - adds r0, r1 - adds r0, r5, r0 - ldrh r0, [r0] - strh r0, [r2] - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0x2 - bls _080E912A - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080E9164: .4byte gUnknown_083DB694 -_080E9168: .4byte 0x00009c32 -_080E916C: .4byte gPlttBufferUnfaded -_080E9170: .4byte 0x00009c34 -_080E9174: .4byte gPlttBufferFaded - thumb_func_end sub_80E9108 - - thumb_func_start sub_80E9178 -sub_80E9178: @ 80E9178 - push {lr} - ldr r0, _080E9190 @ =gUnknown_083DB694 - ldr r0, [r0] - ldr r1, _080E9194 @ =0x00009c32 - adds r0, r1 - movs r1, 0 - strb r1, [r0] - movs r0, 0 - bl sub_80E9108 - pop {r0} - bx r0 - .align 2, 0 -_080E9190: .4byte gUnknown_083DB694 -_080E9194: .4byte 0x00009c32 - thumb_func_end sub_80E9178 - - thumb_func_start sub_80E9198 -sub_80E9198: @ 80E9198 - ldr r1, _080E91A0 @ =gUnknown_03000740 - strb r0, [r1] - bx lr - .align 2, 0 -_080E91A0: .4byte gUnknown_03000740 - thumb_func_end sub_80E9198 - - thumb_func_start sub_80E91A4 -sub_80E91A4: @ 80E91A4 - ldr r0, _080E91AC @ =gUnknown_03000740 - ldrb r0, [r0] - bx lr - .align 2, 0 -_080E91AC: .4byte gUnknown_03000740 - thumb_func_end sub_80E91A4 - - thumb_func_start sub_80E91B0 -sub_80E91B0: @ 80E91B0 - push {lr} - sub sp, 0x8 - lsls r2, 24 - lsls r1, 27 - lsrs r1, 24 - lsrs r2, 21 - lsls r3, 27 - lsrs r3, 24 - str r3, [sp] - movs r3, 0x1 - str r3, [sp, 0x4] - movs r3, 0xB0 - bl sub_8072AB0 - add sp, 0x8 - pop {r0} - bx r0 - thumb_func_end sub_80E91B0 - - thumb_func_start sub_80E91D4 -sub_80E91D4: @ 80E91D4 - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - adds r4, r0, 0 - ldr r0, _080E91FC @ =gWindowConfig_81E6DA8 - bl BasicInitMenuWindow - cmp r4, 0xA - bne _080E9200 - movs r0, 0x3 - movs r1, 0xE - movs r2, 0x1A - movs r3, 0x13 - bl MenuZeroFillWindowRect - movs r0, 0xA - bl sub_80E9198 - b _080E935C - .align 2, 0 -_080E91FC: .4byte gWindowConfig_81E6DA8 -_080E9200: - bl sub_80E91A4 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xA - bne _080E9218 - movs r0, 0x3 - movs r1, 0xE - movs r2, 0x1A - movs r3, 0x13 - bl MenuDrawTextWindow -_080E9218: - adds r0, r4, 0 - bl sub_80E9198 - cmp r4, 0x9 - bls _080E9224 - b _080E935C -_080E9224: - lsls r0, r4, 2 - ldr r1, _080E9230 @ =_080E9234 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080E9230: .4byte _080E9234 - .align 2, 0 -_080E9234: - .4byte _080E925C - .4byte _080E9284 - .4byte _080E92AC - .4byte _080E92C4 - .4byte _080E92F0 - .4byte _080E9308 - .4byte _080E9310 - .4byte _080E9318 - .4byte _080E933C - .4byte _080E9350 -_080E925C: - ldr r0, _080E9278 @ =gUnknown_083DB694 - ldr r4, [r0] - ldr r1, _080E927C @ =0x00009c80 - adds r0, r4, r1 - movs r1, 0x4 - movs r2, 0xF - movs r3, 0x2 - bl sub_80E91B0 - ldr r0, _080E9280 @ =0x00009cc9 - adds r4, r0 - adds r0, r4, 0 - b _080E9326 - .align 2, 0 -_080E9278: .4byte gUnknown_083DB694 -_080E927C: .4byte 0x00009c80 -_080E9280: .4byte 0x00009cc9 -_080E9284: - ldr r0, _080E92A0 @ =gUnknown_083DB694 - ldr r4, [r0] - ldr r1, _080E92A4 @ =0x00009d12 - adds r0, r4, r1 - movs r1, 0x4 - movs r2, 0xF - movs r3, 0x2 - bl sub_80E91B0 - ldr r0, _080E92A8 @ =0x00009d5b - adds r4, r0 - adds r0, r4, 0 - b _080E9326 - .align 2, 0 -_080E92A0: .4byte gUnknown_083DB694 -_080E92A4: .4byte 0x00009d12 -_080E92A8: .4byte 0x00009d5b -_080E92AC: - ldr r0, _080E92BC @ =gOtherText_TextDeletedConfirmPage1 - movs r1, 0x4 - movs r2, 0xF - movs r3, 0x2 - bl sub_80E91B0 - ldr r0, _080E92C0 @ =gOtherText_TextDeletedConfirmPage2 - b _080E9326 - .align 2, 0 -_080E92BC: .4byte gOtherText_TextDeletedConfirmPage1 -_080E92C0: .4byte gOtherText_TextDeletedConfirmPage2 -_080E92C4: - ldr r0, _080E92D8 @ =gUnknown_083DB694 - ldr r0, [r0] - ldrb r0, [r0, 0x8] - cmp r0, 0x4 - beq _080E92E0 - cmp r0, 0x9 - bne _080E92E8 - ldr r0, _080E92DC @ =gOtherText_QuitGivingInfo - b _080E933E - .align 2, 0 -_080E92D8: .4byte gUnknown_083DB694 -_080E92DC: .4byte gOtherText_QuitGivingInfo -_080E92E0: - ldr r0, _080E92E4 @ =gOtherText_StopGivingMail - b _080E933E - .align 2, 0 -_080E92E4: .4byte gOtherText_StopGivingMail -_080E92E8: - ldr r0, _080E92EC @ =gOtherText_QuitEditing - b _080E933E - .align 2, 0 -_080E92EC: .4byte gOtherText_QuitEditing -_080E92F0: - ldr r0, _080E9300 @ =gOtherText_EditedTextNoSavePage1 - movs r1, 0x4 - movs r2, 0xF - movs r3, 0x2 - bl sub_80E91B0 - ldr r0, _080E9304 @ =gOtherText_EditedTextNoSavePage2 - b _080E9326 - .align 2, 0 -_080E9300: .4byte gOtherText_EditedTextNoSavePage1 -_080E9304: .4byte gOtherText_EditedTextNoSavePage2 -_080E9308: - ldr r0, _080E930C @ =gOtherText_EnterAPhraseOrWord - b _080E933E - .align 2, 0 -_080E930C: .4byte gOtherText_EnterAPhraseOrWord -_080E9310: - ldr r0, _080E9314 @ =gOtherText_TextNoDelete - b _080E933E - .align 2, 0 -_080E9314: .4byte gOtherText_TextNoDelete -_080E9318: - ldr r0, _080E9334 @ =gOtherText_OnlyOnePhrase - movs r1, 0x4 - movs r2, 0xF - movs r3, 0x2 - bl sub_80E91B0 - ldr r0, _080E9338 @ =gOtherText_OriginalSongRestored -_080E9326: - movs r1, 0x4 - movs r2, 0x11 - movs r3, 0x2 - bl sub_80E91B0 - b _080E935C - .align 2, 0 -_080E9334: .4byte gOtherText_OnlyOnePhrase -_080E9338: .4byte gOtherText_OriginalSongRestored -_080E933C: - ldr r0, _080E934C @ =gOtherText_TrendyAlready -_080E933E: - movs r1, 0x4 - movs r2, 0xF - movs r3, 0x4 - bl sub_80E91B0 - b _080E935C - .align 2, 0 -_080E934C: .4byte gOtherText_TrendyAlready -_080E9350: - ldr r0, _080E9364 @ =gOtherText_CombineTwoPhrases - movs r1, 0x4 - movs r2, 0xF - movs r3, 0x4 - bl sub_80E91B0 -_080E935C: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080E9364: .4byte gOtherText_CombineTwoPhrases - thumb_func_end sub_80E91D4 - - thumb_func_start sub_80E9368 -sub_80E9368: @ 80E9368 - push {r4,r5,lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xD - bhi _080E93F8 - lsls r0, 2 - ldr r1, _080E937C @ =_080E9380 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080E937C: .4byte _080E9380 - .align 2, 0 -_080E9380: - .4byte _080E93B8 - .4byte _080E93C0 - .4byte _080E93C8 - .4byte _080E93D0 - .4byte _080E93F8 - .4byte _080E93E8 - .4byte _080E93D8 - .4byte _080E93E8 - .4byte _080E93E8 - .4byte _080E93E0 - .4byte _080E93E8 - .4byte _080E93E8 - .4byte _080E93E8 - .4byte _080E93F0 -_080E93B8: - ldr r4, _080E93BC @ =gOtherText_Profile - b _080E93FA - .align 2, 0 -_080E93BC: .4byte gOtherText_Profile -_080E93C0: - ldr r4, _080E93C4 @ =gOtherText_AtBattleStart - b _080E93FA - .align 2, 0 -_080E93C4: .4byte gOtherText_AtBattleStart -_080E93C8: - ldr r4, _080E93CC @ =gOtherText_UponWinningBattle - b _080E93FA - .align 2, 0 -_080E93CC: .4byte gOtherText_UponWinningBattle -_080E93D0: - ldr r4, _080E93D4 @ =gOtherText_UponLosingBattle - b _080E93FA - .align 2, 0 -_080E93D4: .4byte gOtherText_UponLosingBattle -_080E93D8: - ldr r4, _080E93DC @ =gOtherText_TheBardsSong - b _080E93FA - .align 2, 0 -_080E93DC: .4byte gOtherText_TheBardsSong -_080E93E0: - ldr r4, _080E93E4 @ =gOtherText_WhatsHipHappening - b _080E93FA - .align 2, 0 -_080E93E4: .4byte gOtherText_WhatsHipHappening -_080E93E8: - ldr r4, _080E93EC @ =gOtherText_Interview - b _080E93FA - .align 2, 0 -_080E93EC: .4byte gOtherText_Interview -_080E93F0: - ldr r4, _080E93F4 @ =gOtherText_GoodSaying - b _080E93FA - .align 2, 0 -_080E93F4: .4byte gOtherText_GoodSaying -_080E93F8: - movs r4, 0 -_080E93FA: - ldr r0, _080E943C @ =gWindowConfig_81E6D8C - bl BasicInitMenuWindow - ldr r0, _080E9440 @ =gUnknown_083DB694 - ldr r2, [r0] - ldr r0, _080E9444 @ =0x00009f8e - adds r5, r2, r0 - movs r3, 0xFC - strb r3, [r5] - adds r0, 0x1 - adds r1, r2, r0 - movs r0, 0x5 - strb r0, [r1] - ldr r0, _080E9448 @ =0x00009f90 - adds r1, r2, r0 - movs r0, 0x1 - strb r0, [r1] - cmp r4, 0 - beq _080E9450 - ldr r1, _080E944C @ =0x00009f91 - adds r0, r2, r1 - adds r1, r4, 0 - movs r2, 0xF0 - movs r3, 0x2 - bl sub_8072C74 - adds r0, r5, 0 - movs r1, 0 - movs r2, 0 - bl MenuPrint - b _080E9476 - .align 2, 0 -_080E943C: .4byte gWindowConfig_81E6D8C -_080E9440: .4byte gUnknown_083DB694 -_080E9444: .4byte 0x00009f8e -_080E9448: .4byte 0x00009f90 -_080E944C: .4byte 0x00009f91 -_080E9450: - ldr r0, _080E9484 @ =0x00009f91 - adds r1, r2, r0 - strb r3, [r1] - movs r0, 0x11 - strb r0, [r1, 0x1] - movs r0, 0x10 - strb r0, [r1, 0x2] - movs r0, 0xFF - strb r0, [r1, 0x3] - adds r0, r5, 0 - movs r1, 0 - movs r2, 0 - bl MenuPrint - adds r0, r5, 0 - movs r1, 0x1C - movs r2, 0 - bl MenuPrint -_080E9476: - ldr r0, _080E9488 @ =gWindowConfig_81E6DA8 - bl BasicInitMenuWindow - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080E9484: .4byte 0x00009f91 -_080E9488: .4byte gWindowConfig_81E6DA8 - thumb_func_end sub_80E9368 - - thumb_func_start sub_80E948C -sub_80E948C: @ 80E948C - push {lr} - sub sp, 0x10 - ldr r0, _080E94A8 @ =gUnknown_083DB694 - ldr r0, [r0] - ldrb r0, [r0, 0x9] - cmp r0, 0x5 - bls _080E949C - b _080E9594 -_080E949C: - lsls r0, 2 - ldr r1, _080E94AC @ =_080E94B0 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080E94A8: .4byte gUnknown_083DB694 -_080E94AC: .4byte _080E94B0 - .align 2, 0 -_080E94B0: - .4byte _080E9508 - .4byte _080E9530 - .4byte _080E9554 - .4byte _080E9578 - .4byte _080E94C8 - .4byte _080E94E8 -_080E94C8: - ldr r0, _080E94E0 @ =0x06006800 - ldr r3, _080E94E4 @ =gUnknown_08E94AD0 - movs r1, 0 - str r1, [sp] - movs r1, 0x1A - str r1, [sp, 0x4] - movs r1, 0x18 - str r1, [sp, 0x8] - movs r1, 0x6 - str r1, [sp, 0xC] - movs r1, 0x3 - b _080E9568 - .align 2, 0 -_080E94E0: .4byte 0x06006800 -_080E94E4: .4byte gUnknown_08E94AD0 -_080E94E8: - ldr r0, _080E9500 @ =0x06006800 - ldr r3, _080E9504 @ =gUnknown_08E94AD0 - movs r1, 0 - str r1, [sp] - movs r1, 0x12 - str r1, [sp, 0x4] - movs r1, 0xD - str r1, [sp, 0x8] - movs r1, 0x8 - str r1, [sp, 0xC] - movs r1, 0xE - b _080E951E - .align 2, 0 -_080E9500: .4byte 0x06006800 -_080E9504: .4byte gUnknown_08E94AD0 -_080E9508: - ldr r0, _080E9528 @ =0x06006800 - ldr r3, _080E952C @ =gUnknown_08E94AD0 - movs r1, 0 - str r1, [sp] - movs r1, 0xA - str r1, [sp, 0x4] - movs r1, 0x1A - str r1, [sp, 0x8] - movs r1, 0x8 - str r1, [sp, 0xC] - movs r1, 0x2 -_080E951E: - movs r2, 0x2 - bl sub_809D104 - b _080E9594 - .align 2, 0 -_080E9528: .4byte 0x06006800 -_080E952C: .4byte gUnknown_08E94AD0 -_080E9530: - ldr r0, _080E954C @ =0x06006800 - ldr r3, _080E9550 @ =gUnknown_08E94AD0 - movs r1, 0 - str r1, [sp] - str r1, [sp, 0x4] - movs r1, 0x1A - str r1, [sp, 0x8] - movs r1, 0xA - str r1, [sp, 0xC] - movs r1, 0x2 - movs r2, 0 - bl sub_809D104 - b _080E9594 - .align 2, 0 -_080E954C: .4byte 0x06006800 -_080E9550: .4byte gUnknown_08E94AD0 -_080E9554: - ldr r0, _080E9570 @ =0x06006800 - ldr r3, _080E9574 @ =gUnknown_08E94AD0 - movs r2, 0xD - str r2, [sp] - movs r1, 0x12 - str r1, [sp, 0x4] - str r2, [sp, 0x8] - movs r1, 0x4 - str r1, [sp, 0xC] - movs r1, 0xE -_080E9568: - movs r2, 0x3 - bl sub_809D104 - b _080E9594 - .align 2, 0 -_080E9570: .4byte 0x06006800 -_080E9574: .4byte gUnknown_08E94AD0 -_080E9578: - ldr r0, _080E959C @ =0x06006800 - ldr r3, _080E95A0 @ =gUnknown_08E94AD0 - movs r1, 0 - str r1, [sp] - movs r1, 0x20 - str r1, [sp, 0x4] - movs r1, 0x18 - str r1, [sp, 0x8] - movs r1, 0x4 - str r1, [sp, 0xC] - movs r1, 0x3 - movs r2, 0x2 - bl sub_809D104 -_080E9594: - add sp, 0x10 - pop {r0} - bx r0 - .align 2, 0 -_080E959C: .4byte 0x06006800 -_080E95A0: .4byte gUnknown_08E94AD0 - thumb_func_end sub_80E948C - - thumb_func_start sub_80E95A4 -sub_80E95A4: @ 80E95A4 - push {lr} - ldr r0, _080E95C0 @ =gWindowConfig_81E6D8C - bl BasicInitMenuWindow - ldr r0, _080E95C4 @ =gUnknown_083DB694 - ldr r0, [r0] - ldrb r0, [r0, 0x9] - cmp r0, 0x5 - bhi _080E9612 - lsls r0, 2 - ldr r1, _080E95C8 @ =_080E95CC - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080E95C0: .4byte gWindowConfig_81E6D8C -_080E95C4: .4byte gUnknown_083DB694 -_080E95C8: .4byte _080E95CC - .align 2, 0 -_080E95CC: - .4byte _080E95F2 - .4byte _080E95F6 - .4byte _080E9600 - .4byte _080E960A - .4byte _080E95E4 - .4byte _080E95EE -_080E95E4: - movs r0, 0x4 - movs r1, 0x6 - bl sub_80E9620 - b _080E9612 -_080E95EE: - movs r0, 0x2 - b _080E9602 -_080E95F2: - movs r0, 0x3 - b _080E95F8 -_080E95F6: - movs r0, 0 -_080E95F8: - movs r1, 0x5 - bl sub_80E9620 - b _080E9612 -_080E9600: - movs r0, 0x4 -_080E9602: - movs r1, 0x11 - bl sub_80E9620 - b _080E9612 -_080E960A: - movs r0, 0x3 - movs r1, 0x6 - bl sub_80E9620 -_080E9612: - ldr r0, _080E961C @ =gWindowConfig_81E6DA8 - bl BasicInitMenuWindow - pop {r0} - bx r0 - .align 2, 0 -_080E961C: .4byte gWindowConfig_81E6DA8 - thumb_func_end sub_80E95A4 - - thumb_func_start sub_80E9620 -sub_80E9620: @ 80E9620 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x20 - lsls r0, 16 - lsls r1, 16 - lsrs r1, 16 - str r1, [sp, 0x14] - movs r1, 0 - mov r10, r1 - lsrs r7, r0, 16 - mov r9, r1 - ldr r0, _080E9644 @ =gUnknown_083DB694 - ldr r0, [r0] - b _080E971A - .align 2, 0 -_080E9644: .4byte gUnknown_083DB694 -_080E9648: - ldr r6, [sp, 0x14] - movs r2, 0 - mov r8, r2 - adds r0, r7, 0x2 - str r0, [sp, 0x1C] - mov r1, r9 - adds r1, 0x1 - str r1, [sp, 0x18] - b _080E96E4 -_080E965A: - mov r2, r10 - lsls r0, r2, 1 - adds r1, r5, 0 - adds r1, 0xC - adds r1, r0 - ldrh r0, [r1] - ldr r2, _080E9690 @ =0x0000ffff - cmp r0, r2 - bne _080E969C - movs r0, 0 - str r0, [sp] - str r0, [sp, 0x4] - movs r1, 0x9 - str r1, [sp, 0x8] - movs r0, 0x2 - str r0, [sp, 0xC] - str r1, [sp, 0x10] - ldr r0, _080E9694 @ =0x06007000 - adds r1, r6, 0 - adds r2, r7, 0 - ldr r3, _080E9698 @ =gUnknown_083DBE1C - bl sub_8095C8C - adds r0, r6, 0 - adds r0, 0xB - b _080E96CC - .align 2, 0 -_080E9690: .4byte 0x0000ffff -_080E9694: .4byte 0x06007000 -_080E9698: .4byte gUnknown_083DBE1C -_080E969C: - ldr r0, _080E9738 @ =0x00009e14 - adds r4, r5, r0 - ldrh r1, [r1] - adds r0, r4, 0 - movs r2, 0xB - bl sub_80EB218 - lsls r1, r6, 24 - lsrs r1, 24 - lsls r2, r7, 24 - lsrs r2, 24 - adds r0, r4, 0 - bl MenuPrint - mov r1, r9 - lsls r0, r1, 1 - add r0, r8 - adds r1, r5, 0 - adds r1, 0x8C - adds r1, r0 - adds r0, r6, 0 - adds r0, 0xB - ldrb r1, [r1] - adds r0, r1 -_080E96CC: - lsls r0, 16 - lsrs r6, r0, 16 - mov r0, r10 - adds r0, 0x1 - lsls r0, 16 - lsrs r0, 16 - mov r10, r0 - mov r0, r8 - adds r0, 0x1 - lsls r0, 16 - lsrs r0, 16 - mov r8, r0 -_080E96E4: - ldr r0, _080E973C @ =gUnknown_083DB694 - ldr r5, [r0] - adds r0, r5, 0 - adds r0, 0x83 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r8, r0 - bge _080E970A - ldrb r2, [r5, 0xA] - cmp r10, r2 - bcc _080E965A - lsls r1, r6, 24 - lsrs r1, 24 - lsls r2, r7, 24 - lsrs r2, 24 - ldr r0, _080E9740 @ =gUnknown_083DBEA8 - bl MenuPrint -_080E970A: - ldr r1, [sp, 0x1C] - lsls r0, r1, 16 - lsrs r7, r0, 16 - ldr r2, [sp, 0x18] - lsls r0, r2, 16 - lsrs r0, 16 - mov r9, r0 - adds r0, r5, 0 -_080E971A: - adds r0, 0x84 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r9, r0 - blt _080E9648 - add sp, 0x20 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080E9738: .4byte 0x00009e14 -_080E973C: .4byte gUnknown_083DB694 -_080E9740: .4byte gUnknown_083DBEA8 - thumb_func_end sub_80E9620 - - thumb_func_start sub_80E9744 -sub_80E9744: @ 80E9744 - push {lr} - ldr r0, _080E9760 @ =gWindowConfig_81E6D8C - bl BasicInitMenuWindow - ldr r0, _080E9764 @ =gUnknown_083DB694 - ldr r0, [r0] - ldrb r0, [r0, 0x9] - cmp r0, 0x5 - bhi _080E97B2 - lsls r0, 2 - ldr r1, _080E9768 @ =_080E976C - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080E9760: .4byte gWindowConfig_81E6D8C -_080E9764: .4byte gUnknown_083DB694 -_080E9768: .4byte _080E976C - .align 2, 0 -_080E976C: - .4byte _080E9792 - .4byte _080E9796 - .4byte _080E97A0 - .4byte _080E97AA - .4byte _080E9784 - .4byte _080E978E -_080E9784: - movs r0, 0x4 - movs r1, 0x6 - bl sub_80E97C0 - b _080E97B2 -_080E978E: - movs r0, 0x2 - b _080E97A2 -_080E9792: - movs r0, 0x3 - b _080E9798 -_080E9796: - movs r0, 0 -_080E9798: - movs r1, 0x5 - bl sub_80E97C0 - b _080E97B2 -_080E97A0: - movs r0, 0x4 -_080E97A2: - movs r1, 0x11 - bl sub_80E97C0 - b _080E97B2 -_080E97AA: - movs r0, 0x3 - movs r1, 0x6 - bl sub_80E97C0 -_080E97B2: - ldr r0, _080E97BC @ =gWindowConfig_81E6DA8 - bl BasicInitMenuWindow - pop {r0} - bx r0 - .align 2, 0 -_080E97BC: .4byte gWindowConfig_81E6DA8 - thumb_func_end sub_80E9744 - - thumb_func_start sub_80E97C0 -sub_80E97C0: @ 80E97C0 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x8 - lsls r0, 16 - lsrs r5, r0, 16 - lsls r1, 16 - lsrs r1, 16 - str r1, [sp] - movs r7, 0 - movs r3, 0 - ldr r1, _080E98B8 @ =gUnknown_083DB694 - ldr r0, [r1] - adds r0, 0x84 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r3, r0 - bge _080E98A6 -_080E97EA: - ldr r1, [r1] - ldr r0, _080E98BC @ =0x00009e6e - adds r2, r1, r0 - movs r6, 0 - adds r0, r1, 0 - adds r0, 0x83 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - ldr r4, [sp] - lsls r4, 24 - mov r8, r4 - lsls r4, r5, 24 - mov r9, r4 - adds r5, 0x2 - mov r10, r5 - adds r3, 0x1 - str r3, [sp, 0x4] - cmp r6, r0 - bge _080E985E - ldrb r1, [r1, 0xA] - cmp r7, r1 - bcs _080E985E - ldr r0, _080E98B8 @ =gUnknown_083DB694 - ldr r4, [r0] - ldr r5, _080E98C0 @ =0x0000ffff -_080E981E: - lsls r0, r7, 1 - adds r1, r4, 0 - adds r1, 0xC - adds r1, r0 - ldrh r0, [r1] - cmp r0, r5 - beq _080E983E - adds r1, r0, 0 - adds r0, r2, 0 - movs r2, 0 - bl sub_80EB218 - adds r2, r0, 0 - movs r0, 0 - strb r0, [r2] - adds r2, 0x1 -_080E983E: - adds r0, r7, 0x1 - lsls r0, 24 - lsrs r7, r0, 24 - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 - adds r0, r4, 0 - adds r0, 0x83 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r6, r0 - bge _080E985E - ldrb r0, [r4, 0xA] - cmp r7, r0 - bcc _080E981E -_080E985E: - ldr r1, _080E98B8 @ =gUnknown_083DB694 - ldr r4, [r1] - adds r0, r4, 0 - adds r0, 0x83 - movs r1, 0 - ldrsb r1, [r0, r1] - movs r0, 0xB - muls r1, r0 - movs r0, 0xFC - strb r0, [r2] - movs r0, 0x13 - strb r0, [r2, 0x1] - lsls r1, 3 - strb r1, [r2, 0x2] - movs r0, 0xFF - strb r0, [r2, 0x3] - ldr r2, _080E98BC @ =0x00009e6e - adds r0, r4, r2 - mov r3, r8 - lsrs r1, r3, 24 - mov r3, r9 - lsrs r2, r3, 24 - bl MenuPrint - mov r1, r10 - lsls r0, r1, 16 - lsrs r5, r0, 16 - ldr r2, [sp, 0x4] - lsls r0, r2, 24 - lsrs r3, r0, 24 - ldr r1, _080E98B8 @ =gUnknown_083DB694 - adds r4, 0x84 - movs r0, 0 - ldrsb r0, [r4, r0] - cmp r3, r0 - blt _080E97EA -_080E98A6: - add sp, 0x8 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080E98B8: .4byte gUnknown_083DB694 -_080E98BC: .4byte 0x00009e6e -_080E98C0: .4byte 0x0000ffff - thumb_func_end sub_80E97C0 - - thumb_func_start sub_80E98C4 -sub_80E98C4: @ 80E98C4 - push {lr} - ldr r0, _080E98E0 @ =gWindowConfig_81E6D8C - bl BasicInitMenuWindow - ldr r0, _080E98E4 @ =gUnknown_083DB694 - ldr r0, [r0] - ldrb r0, [r0, 0x9] - cmp r0, 0x5 - bhi _080E9936 - lsls r0, 2 - ldr r1, _080E98E8 @ =_080E98EC - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080E98E0: .4byte gWindowConfig_81E6D8C -_080E98E4: .4byte gUnknown_083DB694 -_080E98E8: .4byte _080E98EC - .align 2, 0 -_080E98EC: - .4byte _080E990A - .4byte _080E9910 - .4byte _080E9916 - .4byte _080E991A - .4byte _080E9904 - .4byte _080E990A -_080E9904: - movs r1, 0x4 - movs r3, 0x2 - b _080E991E -_080E990A: - movs r1, 0x3 - movs r3, 0x2 - b _080E991E -_080E9910: - movs r1, 0x1 - movs r3, 0x3 - b _080E991E -_080E9916: - movs r1, 0x4 - b _080E991C -_080E991A: - movs r1, 0x3 -_080E991C: - movs r3, 0x1 -_080E991E: - lsls r3, 1 - adds r3, r1, r3 - subs r3, 0x1 - lsls r3, 24 - lsrs r3, 24 - movs r0, 0x2 - movs r2, 0x1B - bl MenuFillWindowRectWithBlankTile - ldr r0, _080E993C @ =gWindowConfig_81E6DA8 - bl BasicInitMenuWindow -_080E9936: - pop {r0} - bx r0 - .align 2, 0 -_080E993C: .4byte gWindowConfig_81E6DA8 - thumb_func_end sub_80E98C4 - - thumb_func_start sub_80E9940 -sub_80E9940: @ 80E9940 - push {r4-r6,lr} - adds r6, r0, 0 - lsls r5, r1, 24 - lsrs r5, 24 - movs r4, 0x7 - ands r4, r5 - lsls r3, r4, 1 - adds r1, r3, 0 - adds r3, 0x1 - movs r0, 0x2 - movs r2, 0x1F - bl MenuFillWindowRectWithBlankTile - adds r0, r6, 0 - adds r1, r5, 0 - bl sub_80E9A7C - lsls r4, 1 - adds r0, r6, 0 - movs r1, 0x2 - adds r2, r4, 0 - bl sub_80E9A60 - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_80E9940 - - thumb_func_start sub_80E9974 -sub_80E9974: @ 80E9974 - push {r4-r6,lr} - ldr r0, _080E99C4 @ =gWindowConfig_81E6D54 - bl BasicInitMenuWindow - ldr r0, _080E99C8 @ =gUnknown_083DB694 - ldr r2, [r0] - adds r0, r2, 0 - adds r0, 0x26 - ldrb r0, [r0] - cmp r0, 0 - bne _080E99D4 - ldr r1, _080E99CC @ =0x000001b5 - adds r0, r2, r1 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - lsls r1, r0, 16 - lsrs r4, r1, 16 - adds r0, 0x4 - cmp r4, r0 - bge _080E9A08 - adds r5, r2, 0 - ldr r2, _080E99CC @ =0x000001b5 - adds r6, r5, r2 -_080E99A4: - lsls r1, r4, 24 - lsrs r1, 24 - ldr r2, _080E99D0 @ =0x00009dc9 - adds r0, r5, r2 - bl sub_80E9940 - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - movs r0, 0 - ldrsb r0, [r6, r0] - adds r0, 0x4 - cmp r4, r0 - blt _080E99A4 - b _080E9A08 - .align 2, 0 -_080E99C4: .4byte gWindowConfig_81E6D54 -_080E99C8: .4byte gUnknown_083DB694 -_080E99CC: .4byte 0x000001b5 -_080E99D0: .4byte 0x00009dc9 -_080E99D4: - bl sub_80E9AD4 - ldr r4, _080E9A10 @ =gUnknown_083DBEAC - adds r0, r4, 0 - movs r1, 0x2 - movs r2, 0 - bl sub_80E9A60 - adds r0, r4, 0 - adds r0, 0x20 - movs r1, 0x2 - movs r2, 0x2 - bl sub_80E9A60 - adds r0, r4, 0 - adds r0, 0x40 - movs r1, 0x2 - movs r2, 0x4 - bl sub_80E9A60 - adds r4, 0x60 - adds r0, r4, 0 - movs r1, 0x2 - movs r2, 0x6 - bl sub_80E9A60 -_080E9A08: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080E9A10: .4byte gUnknown_083DBEAC - thumb_func_end sub_80E9974 - - thumb_func_start sub_80E9A14 -sub_80E9A14: @ 80E9A14 - push {lr} - bl sub_80E9A4C - ldr r0, _080E9A44 @ =gUnknown_083DB694 - ldr r1, [r0] - adds r0, r1, 0 - adds r0, 0x26 - ldrb r0, [r0] - cmp r0, 0 - bne _080E9A40 - movs r0, 0xDD - lsls r0, 1 - adds r2, r1, r0 - ldr r3, _080E9A48 @ =0x000001b5 - adds r0, r1, r3 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - lsls r0, 4 - ldrh r1, [r2] - adds r0, r1 - strh r0, [r2] -_080E9A40: - pop {r0} - bx r0 - .align 2, 0 -_080E9A44: .4byte gUnknown_083DB694 -_080E9A48: .4byte 0x000001b5 - thumb_func_end sub_80E9A14 - - thumb_func_start sub_80E9A4C -sub_80E9A4C: @ 80E9A4C - ldr r0, _080E9A5C @ =gUnknown_083DB694 - ldr r0, [r0] - movs r2, 0xDD - lsls r2, 1 - adds r1, r0, r2 - movs r0, 0 - strh r0, [r1] - bx lr - .align 2, 0 -_080E9A5C: .4byte gUnknown_083DB694 - thumb_func_end sub_80E9A4C - - thumb_func_start sub_80E9A60 -sub_80E9A60: @ 80E9A60 - push {lr} - lsls r2, 16 - movs r3, 0xF0 - lsls r3, 12 - ands r3, r2 - lsls r1, 24 - lsrs r1, 24 - lsrs r3, 16 - adds r2, r3, 0 - bl MenuPrint - pop {r0} - bx r0 - thumb_func_end sub_80E9A60 - - thumb_func_start sub_80E9A7C -sub_80E9A7C: @ 80E9A7C - push {r4-r7,lr} - adds r2, r0, 0 - lsls r1, 16 - lsrs r7, r1, 16 - lsls r0, r7, 17 - lsrs r5, r0, 16 - movs r4, 0 - ldr r0, _080E9AD0 @ =gUnknown_083DB694 - ldr r6, [r0] -_080E9A8E: - movs r0, 0xFC - strb r0, [r2] - movs r0, 0x12 - strb r0, [r2, 0x1] - movs r0, 0x58 - muls r0, r4 - strb r0, [r2, 0x2] - adds r2, 0x3 - lsls r1, r7, 1 - adds r1, r4, r1 - adds r0, r6, 0 - adds r0, 0x2A - adds r0, r1 - ldrb r1, [r0] - adds r0, r2, 0 - movs r2, 0xB - bl sub_80EAD64 - adds r2, r0, 0 - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - ldrh r0, [r6, 0x28] - cmp r5, r0 - bcs _080E9ACA - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0x1 - bls _080E9A8E -_080E9ACA: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080E9AD0: .4byte gUnknown_083DB694 - thumb_func_end sub_80E9A7C - - thumb_func_start sub_80E9AD4 -sub_80E9AD4: @ 80E9AD4 - push {r4,lr} - ldr r0, _080E9AF4 @ =gWindowConfig_81E6D54 - bl BasicInitMenuWindow - movs r4, 0 -_080E9ADE: - adds r0, r4, 0 - bl sub_80E9C74 - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0xF - bls _080E9ADE - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080E9AF4: .4byte gWindowConfig_81E6D54 - thumb_func_end sub_80E9AD4 - - thumb_func_start sub_80E9AF8 -sub_80E9AF8: @ 80E9AF8 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - lsls r0, 16 - lsrs r7, r0, 16 - adds r0, r7, 0 - bl sub_80E9C74 - ldr r4, _080E9B7C @ =gUnknown_083DB694 - ldr r5, [r4] - ldr r0, _080E9B80 @ =0x00009e14 - adds r0, r5 - mov r8, r0 - movs r0, 0xFC - mov r1, r8 - strb r0, [r1] - movs r0, 0x11 - strb r0, [r1, 0x1] - movs r0, 0x10 - strb r0, [r1, 0x2] - ldr r2, _080E9B84 @ =0x00009e17 - adds r2, r5 - mov r8, r2 - adds r0, r5, 0 - adds r0, 0x7D - ldrb r0, [r0] - cmp r0, 0 - beq _080E9BF4 - movs r6, 0 - ldr r3, _080E9B88 @ =0x000099a6 - adds r0, r5, r3 - adds r0, r7 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r6, r0 - blt _080E9B4A - b _080E9C52 -_080E9B4A: - lsls r0, r7, 2 - mov r9, r0 - ldr r1, _080E9B8C @ =0x00009a2a - adds r1, r5, r1 - str r1, [sp] - lsls r2, r7, 17 - mov r10, r2 -_080E9B58: - lsls r4, r6, 1 - mov r3, r9 - adds r0, r4, r3 - ldr r1, [sp] - adds r0, r1, r0 - ldrh r0, [r0] - bl sub_80EB2D4 - lsls r0, 16 - lsrs r0, 16 - adds r5, r4, 0 - cmp r0, 0x7 - bne _080E9B94 - ldr r0, _080E9B90 @ =gWindowConfig_81E6D70 - bl BasicInitMenuWindow - b _080E9B9A - .align 2, 0 -_080E9B7C: .4byte gUnknown_083DB694 -_080E9B80: .4byte 0x00009e14 -_080E9B84: .4byte 0x00009e17 -_080E9B88: .4byte 0x000099a6 -_080E9B8C: .4byte 0x00009a2a -_080E9B90: .4byte gWindowConfig_81E6D70 -_080E9B94: - ldr r0, _080E9BE0 @ =gWindowConfig_81E6D54 - bl BasicInitMenuWindow -_080E9B9A: - ldr r2, _080E9BE4 @ =gUnknown_083DB694 - ldr r4, [r2] - mov r3, r9 - adds r1, r5, r3 - ldr r2, _080E9BE8 @ =0x00009a2a - adds r0, r4, r2 - adds r0, r1 - ldrh r1, [r0] - mov r0, r8 - movs r2, 0x9 - bl sub_80EB218 - ldr r3, _080E9BEC @ =0x00009e14 - adds r0, r4, r3 - movs r1, 0xB - muls r1, r6 - adds r1, 0x4 - lsls r1, 16 - lsrs r1, 16 - mov r3, r10 - lsrs r2, r3, 16 - bl sub_80E9A60 - adds r0, r6, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 - ldr r0, _080E9BF0 @ =0x000099a6 - adds r4, r0 - adds r4, r7 - movs r0, 0 - ldrsb r0, [r4, r0] - cmp r6, r0 - blt _080E9B58 - b _080E9C52 - .align 2, 0 -_080E9BE0: .4byte gWindowConfig_81E6D54 -_080E9BE4: .4byte gUnknown_083DB694 -_080E9BE8: .4byte 0x00009a2a -_080E9BEC: .4byte 0x00009e14 -_080E9BF0: .4byte 0x000099a6 -_080E9BF4: - ldr r0, _080E9C64 @ =gWindowConfig_81E6D54 - bl BasicInitMenuWindow - movs r6, 0 - ldr r1, _080E9C68 @ =0x000099a6 - adds r0, r5, r1 - adds r0, r7 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r6, r0 - bge _080E9C52 - adds r4, r5, 0 - adds r0, r4, r1 - adds r0, r7 - mov r9, r0 - lsls r5, r7, 17 -_080E9C16: - lsls r1, r6, 1 - lsls r0, r7, 2 - adds r1, r0 - ldr r2, _080E9C6C @ =0x00009a2a - adds r0, r4, r2 - adds r0, r1 - ldrh r1, [r0] - mov r0, r8 - movs r2, 0x9 - bl sub_80EB218 - movs r0, 0xB - adds r1, r6, 0 - muls r1, r0 - adds r1, 0x4 - lsls r1, 16 - lsrs r1, 16 - ldr r3, _080E9C70 @ =0x00009e14 - adds r0, r4, r3 - lsrs r2, r5, 16 - bl sub_80E9A60 - adds r0, r6, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 - mov r1, r9 - movs r0, 0 - ldrsb r0, [r1, r0] - cmp r6, r0 - blt _080E9C16 -_080E9C52: - add sp, 0x4 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080E9C64: .4byte gWindowConfig_81E6D54 -_080E9C68: .4byte 0x000099a6 -_080E9C6C: .4byte 0x00009a2a -_080E9C70: .4byte 0x00009e14 - thumb_func_end sub_80E9AF8 - - thumb_func_start sub_80E9C74 -sub_80E9C74: @ 80E9C74 - push {lr} - lsls r0, 16 - movs r1, 0xE0 - lsls r1, 11 - ands r1, r0 - lsrs r1, 16 - lsls r3, r1, 1 - adds r1, r3, 0 - adds r3, 0x1 - movs r0, 0 - movs r2, 0x1D - bl MenuFillWindowRectWithBlankTile - pop {r0} - bx r0 - thumb_func_end sub_80E9C74 - - thumb_func_start sub_80E9C94 -sub_80E9C94: @ 80E9C94 - push {r4-r6,lr} - ldr r0, _080E9CAC @ =gUnknown_083DB694 - ldr r0, [r0] - ldr r2, _080E9CB0 @ =0x00009a28 - adds r1, r0, r2 - movs r0, 0 - ldrsb r0, [r1, r0] - cmp r0, 0x3 - bgt _080E9CB4 - lsls r0, 16 - lsrs r0, 16 - b _080E9CB6 - .align 2, 0 -_080E9CAC: .4byte gUnknown_083DB694 -_080E9CB0: .4byte 0x00009a28 -_080E9CB4: - movs r0, 0x4 -_080E9CB6: - adds r5, r0, 0 - movs r4, 0 - cmp r4, r5 - bcs _080E9CF4 - ldr r0, _080E9CE0 @ =gUnknown_083DB694 - ldr r0, [r0] - ldr r1, _080E9CE4 @ =0x00009a29 - adds r6, r0, r1 -_080E9CC6: - movs r0, 0 - ldrsb r0, [r6, r0] - adds r0, r4, r0 - lsls r0, 16 - lsrs r0, 16 - bl sub_80E9AF8 - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, r5 - bcc _080E9CC6 - b _080E9CF4 - .align 2, 0 -_080E9CE0: .4byte gUnknown_083DB694 -_080E9CE4: .4byte 0x00009a29 -_080E9CE8: - adds r0, r4, 0 - adds r1, r0, 0x1 - lsls r1, 16 - lsrs r4, r1, 16 - bl sub_80E9C74 -_080E9CF4: - cmp r4, 0x3 - bls _080E9CE8 - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_80E9C94 - - thumb_func_start sub_80E9D00 -sub_80E9D00: @ 80E9D00 - push {r4-r6,lr} - ldr r0, _080E9D28 @ =gUnknown_083DB694 - ldr r2, [r0] - movs r0, 0xE0 - lsls r0, 1 - adds r1, r2, r0 - movs r0, 0 - ldrsb r0, [r1, r0] - cmp r0, 0 - ble _080E9D30 - lsls r0, 16 - lsrs r4, r0, 16 - ldr r1, _080E9D2C @ =0x00009a29 - adds r0, r2, r1 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - adds r0, 0x4 - b _080E9D46 - .align 2, 0 -_080E9D28: .4byte gUnknown_083DB694 -_080E9D2C: .4byte 0x00009a29 -_080E9D30: - movs r0, 0 - ldrsb r0, [r1, r0] - negs r0, r0 - lsls r0, 16 - lsrs r4, r0, 16 - ldr r1, _080E9D74 @ =0x00009a29 - adds r0, r2, r1 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - subs r0, r4 -_080E9D46: - lsls r0, 16 - lsrs r5, r0, 16 - subs r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - ldr r0, _080E9D78 @ =0x0000ffff - cmp r4, r0 - beq _080E9D6E - adds r6, r0, 0 -_080E9D58: - adds r0, r5, 0 - adds r1, r0, 0x1 - lsls r1, 16 - lsrs r5, r1, 16 - bl sub_80E9AF8 - subs r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, r6 - bne _080E9D58 -_080E9D6E: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080E9D74: .4byte 0x00009a29 -_080E9D78: .4byte 0x0000ffff - thumb_func_end sub_80E9D00 - - thumb_func_start sub_80E9D7C -sub_80E9D7C: @ 80E9D7C - push {r4-r7,lr} - ldr r0, _080E9DAC @ =gWindowConfig_81E6D54 - bl BasicInitMenuWindow - ldr r0, _080E9DB0 @ =gUnknown_083DB694 - ldr r2, [r0] - movs r0, 0xE0 - lsls r0, 1 - adds r1, r2, r0 - movs r0, 0 - ldrsb r0, [r1, r0] - cmp r0, 0 - bge _080E9DB8 - negs r0, r0 - lsls r0, 16 - lsrs r6, r0, 16 - ldr r1, _080E9DB4 @ =0x000001b5 - adds r0, r2, r1 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - subs r0, r6 - b _080E9DCC - .align 2, 0 -_080E9DAC: .4byte gWindowConfig_81E6D54 -_080E9DB0: .4byte gUnknown_083DB694 -_080E9DB4: .4byte 0x000001b5 -_080E9DB8: - movs r0, 0 - ldrsb r0, [r1, r0] - lsls r0, 16 - lsrs r6, r0, 16 - ldr r1, _080E9DFC @ =0x000001b5 - adds r0, r2, r1 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - adds r0, 0x4 -_080E9DCC: - lsls r0, 16 - lsrs r4, r0, 16 - movs r5, 0 - cmp r5, r6 - bcs _080E9DF6 - ldr r0, _080E9E00 @ =gUnknown_083DB694 - ldr r7, [r0] -_080E9DDA: - lsls r1, r4, 24 - lsrs r1, 24 - ldr r2, _080E9E04 @ =0x00009dc9 - adds r0, r7, r2 - bl sub_80E9940 - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, r6 - bcc _080E9DDA -_080E9DF6: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080E9DFC: .4byte 0x000001b5 -_080E9E00: .4byte gUnknown_083DB694 -_080E9E04: .4byte 0x00009dc9 - thumb_func_end sub_80E9D7C - - thumb_func_start sub_80E9E08 -sub_80E9E08: @ 80E9E08 - push {r4,r5,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _080E9E4C @ =gUnknown_083DB694 - ldr r3, [r0] - movs r0, 0xDD - lsls r0, 1 - adds r1, r3, r0 - movs r5, 0xE0 - lsls r5, 1 - adds r2, r3, r5 - movs r0, 0 - ldrsb r0, [r2, r0] - lsls r0, 4 - ldrh r1, [r1] - adds r0, r1 - movs r1, 0x7F - ands r0, r1 - subs r5, 0x4 - adds r1, r3, r5 - strh r0, [r1] - adds r1, r4, 0 - movs r0, 0 - ldrsb r0, [r2, r0] - cmp r0, 0 - bge _080E9E3E - negs r1, r4 -_080E9E3E: - ldr r2, _080E9E50 @ =0x000001bf - adds r0, r3, r2 - strb r1, [r0] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080E9E4C: .4byte gUnknown_083DB694 -_080E9E50: .4byte 0x000001bf - thumb_func_end sub_80E9E08 - - thumb_func_start sub_80E9E54 -sub_80E9E54: @ 80E9E54 - push {r4,lr} - ldr r0, _080E9E8C @ =gUnknown_083DB694 - ldr r2, [r0] - movs r0, 0xDD - lsls r0, 1 - adds r3, r2, r0 - ldr r1, _080E9E90 @ =0x000001bf - adds r0, r2, r1 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - ldrh r4, [r3] - adds r0, r4 - movs r1, 0x7F - ands r0, r1 - strh r0, [r3] - movs r3, 0 - movs r4, 0xDE - lsls r4, 1 - adds r1, r2, r4 - ldrh r1, [r1] - cmp r0, r1 - bne _080E9E84 - movs r3, 0x1 -_080E9E84: - adds r0, r3, 0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080E9E8C: .4byte gUnknown_083DB694 -_080E9E90: .4byte 0x000001bf - thumb_func_end sub_80E9E54 - - thumb_func_start nullsub_23 -nullsub_23: @ 80E9E94 - bx lr - thumb_func_end nullsub_23 - - thumb_func_start sub_80E9E98 -sub_80E9E98: @ 80E9E98 - ldr r0, _080E9EA4 @ =gUnknown_083DB694 - ldr r0, [r0] - adds r0, 0xBE - movs r1, 0 - strh r1, [r0] - bx lr - .align 2, 0 -_080E9EA4: .4byte gUnknown_083DB694 - thumb_func_end sub_80E9E98 - - thumb_func_start sub_80E9EA8 -sub_80E9EA8: @ 80E9EA8 - push {lr} - ldr r1, _080E9EC4 @ =gUnknown_083DB694 - ldr r0, [r1] - adds r0, 0xBE - ldrh r0, [r0] - adds r2, r1, 0 - cmp r0, 0x5 - bhi _080E9F48 - lsls r0, 2 - ldr r1, _080E9EC8 @ =_080E9ECC - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080E9EC4: .4byte gUnknown_083DB694 -_080E9EC8: .4byte _080E9ECC - .align 2, 0 -_080E9ECC: - .4byte _080E9EE4 - .4byte _080E9EF4 - .4byte _080E9F0C - .4byte _080E9F24 - .4byte _080E9F38 - .4byte _080E9F44 -_080E9EE4: - bl sub_80EA24C - ldr r0, _080E9F08 @ =gUnknown_083DB694 - ldr r1, [r0] - adds r1, 0xBE - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] -_080E9EF4: - bl sub_80EA1E0 - lsls r0, 24 - cmp r0, 0 - beq _080E9F48 - bl sub_80EA4A4 - ldr r0, _080E9F08 @ =gUnknown_083DB694 - ldr r1, [r0] - b _080E9F3A - .align 2, 0 -_080E9F08: .4byte gUnknown_083DB694 -_080E9F0C: - bl sub_80EA1E0 - lsls r0, 24 - cmp r0, 0 - beq _080E9F48 - bl sub_80EA704 - ldr r0, _080E9F20 @ =gUnknown_083DB694 - ldr r1, [r0] - b _080E9F3A - .align 2, 0 -_080E9F20: .4byte gUnknown_083DB694 -_080E9F24: - bl sub_80EA1E0 - lsls r0, 24 - cmp r0, 0 - beq _080E9F48 - ldr r0, _080E9F34 @ =gUnknown_083DB694 - ldr r1, [r0] - b _080E9F3A - .align 2, 0 -_080E9F34: .4byte gUnknown_083DB694 -_080E9F38: - ldr r1, [r2] -_080E9F3A: - adds r1, 0xBE - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] - b _080E9F48 -_080E9F44: - movs r0, 0x1 - b _080E9F4A -_080E9F48: - movs r0, 0 -_080E9F4A: - pop {r1} - bx r1 - thumb_func_end sub_80E9EA8 - - thumb_func_start sub_80E9F50 -sub_80E9F50: @ 80E9F50 - push {lr} - ldr r0, _080E9F68 @ =gUnknown_083DB694 - ldr r0, [r0] - adds r0, 0xBE - ldrh r0, [r0] - cmp r0, 0x6 - bhi _080E9FCC - lsls r0, 2 - ldr r1, _080E9F6C @ =_080E9F70 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080E9F68: .4byte gUnknown_083DB694 -_080E9F6C: .4byte _080E9F70 - .align 2, 0 -_080E9F70: - .4byte _080E9F8C - .4byte _080E9FAC - .4byte _080E9F96 - .4byte _080E9FAC - .4byte _080E9F9C - .4byte _080E9FAC - .4byte _080E9FC8 -_080E9F8C: - bl nullsub_23 - bl sub_80EA764 - b _080E9FA0 -_080E9F96: - bl sub_80EA5A0 - b _080E9FA0 -_080E9F9C: - bl sub_80EA348 -_080E9FA0: - ldr r0, _080E9FC4 @ =gUnknown_083DB694 - ldr r1, [r0] - adds r1, 0xBE - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] -_080E9FAC: - bl sub_80EA1E0 - lsls r0, 24 - cmp r0, 0 - beq _080E9FCC - ldr r0, _080E9FC4 @ =gUnknown_083DB694 - ldr r1, [r0] - adds r1, 0xBE - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] - b _080E9FCC - .align 2, 0 -_080E9FC4: .4byte gUnknown_083DB694 -_080E9FC8: - movs r0, 0x1 - b _080E9FCE -_080E9FCC: - movs r0, 0 -_080E9FCE: - pop {r1} - bx r1 - thumb_func_end sub_80E9F50 - - thumb_func_start sub_80E9FD4 -sub_80E9FD4: @ 80E9FD4 - push {r4,lr} - ldr r0, _080E9FEC @ =gUnknown_083DB694 - ldr r0, [r0] - adds r4, r0, 0 - adds r4, 0xBE - ldrh r0, [r4] - cmp r0, 0 - beq _080E9FF0 - cmp r0, 0x1 - beq _080E9FFE - b _080EA00C - .align 2, 0 -_080E9FEC: .4byte gUnknown_083DB694 -_080E9FF0: - bl nullsub_23 - bl sub_80EA5A0 - ldrh r0, [r4] - adds r0, 0x1 - strh r0, [r4] -_080E9FFE: - bl sub_80EA1E0 - lsls r0, 24 - cmp r0, 0 - beq _080EA00C - movs r0, 0x1 - b _080EA00E -_080EA00C: - movs r0, 0 -_080EA00E: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_80E9FD4 - - thumb_func_start sub_80EA014 -sub_80EA014: @ 80EA014 - push {r4,lr} - ldr r0, _080EA02C @ =gUnknown_083DB694 - ldr r0, [r0] - adds r4, r0, 0 - adds r4, 0xBE - ldrh r0, [r4] - cmp r0, 0 - beq _080EA030 - cmp r0, 0x1 - beq _080EA03A - b _080EA048 - .align 2, 0 -_080EA02C: .4byte gUnknown_083DB694 -_080EA030: - bl sub_80EA4A4 - ldrh r0, [r4] - adds r0, 0x1 - strh r0, [r4] -_080EA03A: - bl sub_80EA1E0 - lsls r0, 24 - cmp r0, 0 - beq _080EA048 - movs r0, 0x1 - b _080EA04A -_080EA048: - movs r0, 0 -_080EA04A: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_80EA014 - - thumb_func_start sub_80EA050 -sub_80EA050: @ 80EA050 - push {lr} - ldr r0, _080EA068 @ =gUnknown_083DB694 - ldr r0, [r0] - adds r0, 0xBE - ldrh r0, [r0] - cmp r0, 0x4 - bhi _080EA0DC - lsls r0, 2 - ldr r1, _080EA06C @ =_080EA070 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080EA068: .4byte gUnknown_083DB694 -_080EA06C: .4byte _080EA070 - .align 2, 0 -_080EA070: - .4byte _080EA084 - .4byte _080EA08E - .4byte _080EA09E - .4byte _080EA0B4 - .4byte _080EA0D8 -_080EA084: - bl nullsub_23 - bl sub_80EA764 - b _080EA0C4 -_080EA08E: - bl sub_80EA1E0 - lsls r0, 24 - cmp r0, 0 - beq _080EA0DC - bl sub_80EA7F4 - b _080EA0C4 -_080EA09E: - movs r0, 0x1 - bl sub_80E9108 - bl sub_80EA1E0 - lsls r0, 24 - cmp r0, 0 - beq _080EA0DC - bl sub_80EA8BC - b _080EA0C4 -_080EA0B4: - movs r0, 0x1 - bl sub_80E9108 - bl sub_80EA1E0 - lsls r0, 24 - cmp r0, 0 - beq _080EA0DC -_080EA0C4: - ldr r0, _080EA0D4 @ =gUnknown_083DB694 - ldr r1, [r0] - adds r1, 0xBE - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] - b _080EA0DC - .align 2, 0 -_080EA0D4: .4byte gUnknown_083DB694 -_080EA0D8: - movs r0, 0x1 - b _080EA0DE -_080EA0DC: - movs r0, 0 -_080EA0DE: - pop {r1} - bx r1 - thumb_func_end sub_80EA050 - - thumb_func_start sub_80EA0E4 -sub_80EA0E4: @ 80EA0E4 - push {lr} - ldr r0, _080EA0FC @ =gUnknown_083DB694 - ldr r0, [r0] - adds r0, 0xBE - ldrh r0, [r0] - cmp r0, 0x4 - bhi _080EA17C - lsls r0, 2 - ldr r1, _080EA100 @ =_080EA104 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080EA0FC: .4byte gUnknown_083DB694 -_080EA100: .4byte _080EA104 - .align 2, 0 -_080EA104: - .4byte _080EA118 - .4byte _080EA128 - .4byte _080EA144 - .4byte _080EA15C - .4byte _080EA178 -_080EA118: - bl sub_80EA948 - ldr r0, _080EA140 @ =gUnknown_083DB694 - ldr r1, [r0] - adds r1, 0xBE - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] -_080EA128: - movs r0, 0x1 - negs r0, r0 - bl sub_80E9108 - bl sub_80EA1E0 - lsls r0, 24 - cmp r0, 0 - beq _080EA17C - bl sub_80EAA44 - b _080EA166 - .align 2, 0 -_080EA140: .4byte gUnknown_083DB694 -_080EA144: - movs r0, 0x1 - negs r0, r0 - bl sub_80E9108 - bl sub_80EA1E0 - lsls r0, 24 - cmp r0, 0 - beq _080EA17C - bl sub_80EA704 - b _080EA166 -_080EA15C: - bl sub_80EA1E0 - lsls r0, 24 - cmp r0, 0 - beq _080EA17C -_080EA166: - ldr r0, _080EA174 @ =gUnknown_083DB694 - ldr r1, [r0] - adds r1, 0xBE - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] - b _080EA17C - .align 2, 0 -_080EA174: .4byte gUnknown_083DB694 -_080EA178: - movs r0, 0x1 - b _080EA17E -_080EA17C: - movs r0, 0 -_080EA17E: - pop {r1} - bx r1 - thumb_func_end sub_80EA0E4 - - thumb_func_start sub_80EA184 -sub_80EA184: @ 80EA184 - push {r4,lr} - ldr r0, _080EA1A0 @ =gUnknown_083DB694 - ldr r0, [r0] - adds r4, r0, 0 - adds r4, 0xBE - ldrh r0, [r4] - cmp r0, 0x1 - beq _080EA1B4 - cmp r0, 0x1 - bgt _080EA1A4 - cmp r0, 0 - beq _080EA1AA - b _080EA1D8 - .align 2, 0 -_080EA1A0: .4byte gUnknown_083DB694 -_080EA1A4: - cmp r0, 0x2 - beq _080EA1D0 - b _080EA1D8 -_080EA1AA: - bl sub_80EAAD4 - ldrh r0, [r4] - adds r0, 0x1 - strh r0, [r4] -_080EA1B4: - bl sub_80EA1E0 - lsls r0, 24 - cmp r0, 0 - beq _080EA1D8 - ldr r0, _080EA1CC @ =gUnknown_083DB694 - ldr r1, [r0] - adds r1, 0xBE - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] - b _080EA1D8 - .align 2, 0 -_080EA1CC: .4byte gUnknown_083DB694 -_080EA1D0: - bl sub_80E9178 - movs r0, 0x1 - b _080EA1DA -_080EA1D8: - movs r0, 0 -_080EA1DA: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_80EA184 - - thumb_func_start sub_80EA1E0 -sub_80EA1E0: @ 80EA1E0 - push {r4-r6,lr} - ldr r0, _080EA240 @ =gUnknown_083DB694 - ldr r1, [r0] - adds r0, r1, 0 - adds r0, 0xC4 - ldrh r0, [r0] - cmp r0, 0 - beq _080EA244 - movs r4, 0 - adds r0, r1, 0 - adds r0, 0xC2 - ldrh r2, [r0] - cmp r4, r2 - bcs _080EA228 - adds r5, r1, 0 - adds r6, r0, 0 -_080EA200: - lsls r0, r4, 4 - adds r0, 0xC8 - adds r0, r5, r0 - bl sub_80EAC0C - lsls r0, r4, 1 - adds r0, r4 - lsls r0, 2 - movs r1, 0xA4 - lsls r1, 1 - adds r0, r1 - adds r0, r5, r0 - bl sub_80EAC48 - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - ldrh r2, [r6] - cmp r4, r2 - bcc _080EA200 -_080EA228: - ldr r0, _080EA240 @ =gUnknown_083DB694 - ldr r1, [r0] - adds r2, r1, 0 - adds r2, 0xBC - movs r0, 0x1 - strb r0, [r2] - adds r1, 0xC4 - ldrh r0, [r1] - subs r0, 0x1 - strh r0, [r1] - movs r0, 0 - b _080EA246 - .align 2, 0 -_080EA240: .4byte gUnknown_083DB694 -_080EA244: - movs r0, 0x1 -_080EA246: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_80EA1E0 - - thumb_func_start sub_80EA24C -sub_80EA24C: @ 80EA24C - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x14 - ldr r0, _080EA340 @ =gUnknown_083DB694 - ldr r7, [r0] - adds r0, r7, 0 - adds r0, 0xC8 - movs r6, 0xF - str r6, [sp] - ldr r1, _080EA344 @ =0x0000fffe - mov r8, r1 - str r1, [sp, 0x4] - movs r4, 0 - str r4, [sp, 0x8] - str r4, [sp, 0xC] - str r4, [sp, 0x10] - movs r1, 0xD - movs r2, 0xE - movs r3, 0xD - bl sub_80EABD4 - movs r1, 0xA4 - lsls r1, 1 - adds r0, r7, r1 - str r4, [sp] - movs r1, 0xD9 - lsls r1, 3 - adds r5, r7, r1 - str r5, [sp, 0x4] - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl sub_80EAC30 - adds r0, r7, 0 - adds r0, 0xD8 - str r6, [sp] - str r4, [sp, 0x4] - str r4, [sp, 0x8] - movs r1, 0x2 - mov r9, r1 - str r1, [sp, 0xC] - str r4, [sp, 0x10] - movs r1, 0xC - movs r2, 0xE - movs r3, 0xC - bl sub_80EABD4 - movs r1, 0xAA - lsls r1, 1 - adds r0, r7, r1 - str r4, [sp] - str r5, [sp, 0x4] - movs r1, 0x1E - movs r2, 0 - mov r3, r8 - bl sub_80EAC30 - adds r0, r7, 0 - adds r0, 0xE8 - movs r6, 0x10 - str r6, [sp] - mov r1, r8 - str r1, [sp, 0x4] - str r4, [sp, 0x8] - str r4, [sp, 0xC] - str r4, [sp, 0x10] - movs r1, 0xD - movs r2, 0xF - movs r3, 0xD - bl sub_80EABD4 - movs r1, 0xB0 - lsls r1, 1 - adds r0, r7, r1 - str r4, [sp] - str r5, [sp, 0x4] - movs r1, 0 - movs r2, 0x9 - movs r3, 0 - bl sub_80EAC30 - adds r0, r7, 0 - adds r0, 0xF8 - str r6, [sp] - str r4, [sp, 0x4] - str r4, [sp, 0x8] - mov r1, r9 - str r1, [sp, 0xC] - str r4, [sp, 0x10] - movs r1, 0xC - movs r2, 0xF - movs r3, 0xC - bl sub_80EABD4 - movs r1, 0xB6 - lsls r1, 1 - adds r0, r7, r1 - str r4, [sp] - str r5, [sp, 0x4] - movs r1, 0x1E - movs r2, 0x9 - mov r3, r8 - bl sub_80EAC30 - adds r1, r7, 0 - adds r1, 0xC2 - movs r0, 0x4 - strh r0, [r1] - adds r1, 0x2 - movs r0, 0x6 - strh r0, [r1] - add sp, 0x14 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080EA340: .4byte gUnknown_083DB694 -_080EA344: .4byte 0x0000fffe - thumb_func_end sub_80EA24C - - thumb_func_start sub_80EA348 -sub_80EA348: @ 80EA348 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x14 - ldr r0, _080EA49C @ =gUnknown_083DB694 - ldr r7, [r0] - adds r0, r7, 0 - adds r0, 0xC8 - movs r5, 0xF - str r5, [sp] - movs r1, 0x2 - mov r9, r1 - str r1, [sp, 0x4] - movs r4, 0 - str r4, [sp, 0x8] - str r4, [sp, 0xC] - str r4, [sp, 0x10] - movs r1, 0x1 - movs r2, 0xE - movs r3, 0xD - bl sub_80EABD4 - movs r1, 0xA4 - lsls r1, 1 - adds r0, r7, r1 - str r4, [sp] - movs r1, 0xD9 - lsls r1, 3 - adds r6, r7, r1 - str r6, [sp, 0x4] - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl sub_80EAC30 - adds r0, r7, 0 - adds r0, 0xD8 - str r5, [sp] - str r4, [sp, 0x4] - str r4, [sp, 0x8] - ldr r1, _080EA4A0 @ =0x0000fffe - mov r8, r1 - str r1, [sp, 0xC] - str r4, [sp, 0x10] - movs r1, 0xC - movs r2, 0xE - movs r3, 0x18 - bl sub_80EABD4 - movs r1, 0xAA - lsls r1, 1 - adds r0, r7, r1 - str r4, [sp] - str r6, [sp, 0x4] - movs r1, 0x12 - movs r2, 0 - movs r3, 0x2 - bl sub_80EAC30 - adds r0, r7, 0 - adds r0, 0xE8 - movs r5, 0x10 - str r5, [sp] - mov r1, r9 - str r1, [sp, 0x4] - str r4, [sp, 0x8] - str r4, [sp, 0xC] - str r4, [sp, 0x10] - movs r1, 0x1 - movs r2, 0xF - movs r3, 0xD - bl sub_80EABD4 - movs r1, 0xB0 - lsls r1, 1 - adds r0, r7, r1 - str r4, [sp] - str r6, [sp, 0x4] - movs r1, 0 - movs r2, 0x9 - movs r3, 0 - bl sub_80EAC30 - adds r0, r7, 0 - adds r0, 0xF8 - str r5, [sp] - str r4, [sp, 0x4] - str r4, [sp, 0x8] - mov r1, r8 - str r1, [sp, 0xC] - str r4, [sp, 0x10] - movs r1, 0xC - movs r2, 0xF - movs r3, 0x18 - bl sub_80EABD4 - movs r1, 0xB6 - lsls r1, 1 - adds r0, r7, r1 - str r4, [sp] - str r6, [sp, 0x4] - movs r1, 0x12 - movs r2, 0x9 - movs r3, 0x2 - bl sub_80EAC30 - movs r1, 0x84 - lsls r1, 1 - adds r0, r7, r1 - str r5, [sp] - str r4, [sp, 0x4] - str r4, [sp, 0x8] - mov r1, r9 - str r1, [sp, 0xC] - str r4, [sp, 0x10] - movs r1, 0x1 - movs r2, 0xE - movs r3, 0x1 - bl sub_80EABD4 - movs r1, 0xBC - lsls r1, 1 - adds r0, r7, r1 - str r4, [sp] - adds r1, 0x50 - adds r6, r7, r1 - str r6, [sp, 0x4] - movs r1, 0x1 - movs r2, 0xE - movs r3, 0 - bl sub_80EAC30 - movs r1, 0x8C - lsls r1, 1 - adds r0, r7, r1 - str r5, [sp] - mov r1, r8 - str r1, [sp, 0x4] - str r4, [sp, 0x8] - str r4, [sp, 0xC] - str r4, [sp, 0x10] - movs r1, 0x18 - movs r2, 0xE - movs r3, 0x18 - bl sub_80EABD4 - movs r1, 0xC2 - lsls r1, 1 - adds r0, r7, r1 - str r4, [sp] - str r6, [sp, 0x4] - movs r1, 0x18 - movs r2, 0xE - mov r3, r8 - bl sub_80EAC30 - adds r0, r7, 0 - adds r0, 0xC2 - movs r1, 0x6 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - add sp, 0x14 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080EA49C: .4byte gUnknown_083DB694 -_080EA4A0: .4byte 0x0000fffe - thumb_func_end sub_80EA348 - - thumb_func_start sub_80EA4A4 -sub_80EA4A4: @ 80EA4A4 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x14 - ldr r0, _080EA598 @ =gUnknown_083DB694 - ldr r7, [r0] - adds r0, r7, 0 - adds r0, 0xC8 - movs r6, 0xF - str r6, [sp] - movs r4, 0 - str r4, [sp, 0x4] - ldr r1, _080EA59C @ =0x0000ffff - mov r8, r1 - str r1, [sp, 0x8] - str r4, [sp, 0xC] - str r4, [sp, 0x10] - movs r1, 0x1 - movs r2, 0xE - movs r3, 0xD - bl sub_80EABD4 - movs r1, 0xA4 - lsls r1, 1 - adds r0, r7, r1 - str r4, [sp] - movs r1, 0xD9 - lsls r1, 3 - adds r5, r7, r1 - str r5, [sp, 0x4] - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl sub_80EAC30 - adds r0, r7, 0 - adds r0, 0xD8 - str r6, [sp] - str r4, [sp, 0x4] - mov r1, r8 - str r1, [sp, 0x8] - str r4, [sp, 0xC] - str r4, [sp, 0x10] - movs r1, 0xC - movs r2, 0xE - movs r3, 0x18 - bl sub_80EABD4 - movs r1, 0xAA - lsls r1, 1 - adds r0, r7, r1 - str r4, [sp] - str r5, [sp, 0x4] - movs r1, 0x12 - movs r2, 0 - movs r3, 0 - bl sub_80EAC30 - adds r0, r7, 0 - adds r0, 0xE8 - movs r1, 0x10 - mov r9, r1 - str r1, [sp] - str r4, [sp, 0x4] - str r4, [sp, 0x8] - str r4, [sp, 0xC] - movs r6, 0x1 - str r6, [sp, 0x10] - movs r1, 0x1 - movs r2, 0xF - movs r3, 0xD - bl sub_80EABD4 - movs r1, 0xB0 - lsls r1, 1 - adds r0, r7, r1 - mov r1, r8 - str r1, [sp] - str r5, [sp, 0x4] - movs r1, 0 - movs r2, 0x9 - movs r3, 0 - bl sub_80EAC30 - adds r0, r7, 0 - adds r0, 0xF8 - mov r1, r9 - str r1, [sp] - str r4, [sp, 0x4] - str r4, [sp, 0x8] - str r4, [sp, 0xC] - str r6, [sp, 0x10] - movs r1, 0xC - movs r2, 0xF - movs r3, 0x18 - bl sub_80EABD4 - movs r1, 0xB6 - lsls r1, 1 - adds r0, r7, r1 - mov r1, r8 - str r1, [sp] - str r5, [sp, 0x4] - movs r1, 0x12 - movs r2, 0x9 - movs r3, 0 - bl sub_80EAC30 - adds r0, r7, 0 - adds r0, 0xC2 - movs r1, 0x4 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - add sp, 0x14 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080EA598: .4byte gUnknown_083DB694 -_080EA59C: .4byte 0x0000ffff - thumb_func_end sub_80EA4A4 - - thumb_func_start sub_80EA5A0 -sub_80EA5A0: @ 80EA5A0 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x14 - ldr r0, _080EA6FC @ =gUnknown_083DB694 - ldr r7, [r0] - adds r0, r7, 0 - adds r0, 0xC8 - movs r6, 0xF - str r6, [sp] - movs r4, 0 - str r4, [sp, 0x4] - movs r1, 0x1 - mov r8, r1 - str r1, [sp, 0x8] - str r4, [sp, 0xC] - str r4, [sp, 0x10] - movs r2, 0xA - movs r3, 0xD - bl sub_80EABD4 - movs r1, 0xA4 - lsls r1, 1 - adds r0, r7, r1 - str r4, [sp] - movs r1, 0xD9 - lsls r1, 3 - adds r5, r7, r1 - str r5, [sp, 0x4] - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl sub_80EAC30 - adds r0, r7, 0 - adds r0, 0xD8 - str r6, [sp] - str r4, [sp, 0x4] - mov r1, r8 - str r1, [sp, 0x8] - str r4, [sp, 0xC] - str r4, [sp, 0x10] - movs r1, 0xC - movs r2, 0xA - movs r3, 0x18 - bl sub_80EABD4 - movs r1, 0xAA - lsls r1, 1 - adds r0, r7, r1 - str r4, [sp] - str r5, [sp, 0x4] - movs r1, 0x12 - movs r2, 0 - movs r3, 0 - bl sub_80EAC30 - adds r0, r7, 0 - adds r0, 0xE8 - movs r1, 0x14 - mov r9, r1 - str r1, [sp] - str r4, [sp, 0x4] - str r4, [sp, 0x8] - str r4, [sp, 0xC] - ldr r6, _080EA700 @ =0x0000ffff - str r6, [sp, 0x10] - movs r1, 0x1 - movs r2, 0xF - movs r3, 0xD - bl sub_80EABD4 - movs r1, 0xB0 - lsls r1, 1 - adds r0, r7, r1 - mov r1, r8 - str r1, [sp] - str r5, [sp, 0x4] - movs r1, 0 - movs r2, 0x5 - movs r3, 0 - bl sub_80EAC30 - adds r0, r7, 0 - adds r0, 0xF8 - mov r1, r9 - str r1, [sp] - str r4, [sp, 0x4] - str r4, [sp, 0x8] - str r4, [sp, 0xC] - str r6, [sp, 0x10] - movs r1, 0xC - movs r2, 0xF - movs r3, 0x18 - bl sub_80EABD4 - movs r1, 0xB6 - lsls r1, 1 - adds r0, r7, r1 - mov r1, r8 - str r1, [sp] - str r5, [sp, 0x4] - movs r1, 0x12 - movs r2, 0x5 - movs r3, 0 - bl sub_80EAC30 - movs r1, 0x84 - lsls r1, 1 - adds r0, r7, r1 - movs r1, 0xA - str r1, [sp] - str r4, [sp, 0x4] - str r4, [sp, 0x8] - str r4, [sp, 0xC] - mov r1, r8 - str r1, [sp, 0x10] - movs r1, 0x1 - movs r2, 0xA - movs r3, 0x18 - bl sub_80EABD4 - movs r1, 0xBC - lsls r1, 1 - adds r0, r7, r1 - str r4, [sp] - adds r1, 0x50 - adds r5, r7, r1 - str r5, [sp, 0x4] - movs r1, 0x1 - movs r2, 0xA - movs r3, 0 - bl sub_80EAC30 - movs r1, 0x8C - lsls r1, 1 - adds r0, r7, r1 - mov r1, r9 - str r1, [sp] - str r4, [sp, 0x4] - str r6, [sp, 0x8] - str r4, [sp, 0xC] - str r4, [sp, 0x10] - movs r1, 0x1 - movs r2, 0x14 - movs r3, 0x18 - bl sub_80EABD4 - movs r1, 0xC2 - lsls r1, 1 - adds r0, r7, r1 - str r6, [sp] - str r5, [sp, 0x4] - movs r1, 0x1 - movs r2, 0x14 - movs r3, 0 - bl sub_80EAC30 - adds r1, r7, 0 - adds r1, 0xC2 - movs r0, 0x6 - strh r0, [r1] - adds r1, 0x2 - movs r0, 0x4 - strh r0, [r1] - add sp, 0x14 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080EA6FC: .4byte gUnknown_083DB694 -_080EA700: .4byte 0x0000ffff - thumb_func_end sub_80EA5A0 - - thumb_func_start sub_80EA704 -sub_80EA704: @ 80EA704 - push {r4-r6,lr} - sub sp, 0x14 - ldr r0, _080EA75C @ =gUnknown_083DB694 - ldr r6, [r0] - adds r0, r6, 0 - adds r0, 0xC8 - movs r1, 0x14 - str r1, [sp] - movs r4, 0 - str r4, [sp, 0x4] - str r4, [sp, 0x8] - movs r5, 0x1 - str r5, [sp, 0xC] - str r4, [sp, 0x10] - movs r1, 0x18 - movs r2, 0xC - movs r3, 0x19 - bl sub_80EABD4 - movs r1, 0xA4 - lsls r1, 1 - adds r0, r6, r1 - ldr r3, _080EA760 @ =0x0000ffff - str r4, [sp] - movs r2, 0xD9 - lsls r2, 3 - adds r1, r6, r2 - str r1, [sp, 0x4] - movs r1, 0x5 - movs r2, 0xA - bl sub_80EAC30 - adds r0, r6, 0 - adds r0, 0xC2 - strh r5, [r0] - adds r1, r6, 0 - adds r1, 0xC4 - movs r0, 0x5 - strh r0, [r1] - add sp, 0x14 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080EA75C: .4byte gUnknown_083DB694 -_080EA760: .4byte 0x0000ffff - thumb_func_end sub_80EA704 - - thumb_func_start sub_80EA764 -sub_80EA764: @ 80EA764 - push {r4-r7,lr} - sub sp, 0x14 - ldr r0, _080EA7EC @ =gUnknown_083DB694 - ldr r7, [r0] - adds r0, r7, 0 - adds r0, 0xC8 - movs r6, 0x14 - str r6, [sp] - movs r4, 0 - str r4, [sp, 0x4] - str r4, [sp, 0x8] - ldr r5, _080EA7F0 @ =0x0000ffff - str r5, [sp, 0xC] - str r4, [sp, 0x10] - movs r1, 0x18 - movs r2, 0xC - movs r3, 0x1E - bl sub_80EABD4 - movs r1, 0xA4 - lsls r1, 1 - adds r0, r7, r1 - str r4, [sp] - movs r2, 0xD9 - lsls r2, 3 - adds r1, r7, r2 - str r1, [sp, 0x4] - movs r1, 0 - movs r2, 0xA - movs r3, 0x1 - bl sub_80EAC30 - adds r0, r7, 0 - adds r0, 0xD8 - str r6, [sp] - str r5, [sp, 0x4] - str r4, [sp, 0x8] - str r4, [sp, 0xC] - str r4, [sp, 0x10] - movs r1, 0x1E - movs r2, 0xC - movs r3, 0x1F - bl sub_80EABD4 - movs r1, 0xAA - lsls r1, 1 - adds r0, r7, r1 - str r4, [sp] - movs r2, 0xE4 - lsls r2, 1 - adds r1, r7, r2 - str r1, [sp, 0x4] - movs r1, 0x1E - movs r2, 0xC - adds r3, r5, 0 - bl sub_80EAC30 - adds r1, r7, 0 - adds r1, 0xC2 - movs r0, 0x2 - strh r0, [r1] - adds r1, 0x2 - movs r0, 0x6 - strh r0, [r1] - add sp, 0x14 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080EA7EC: .4byte gUnknown_083DB694 -_080EA7F0: .4byte 0x0000ffff - thumb_func_end sub_80EA764 - - thumb_func_start sub_80EA7F4 -sub_80EA7F4: @ 80EA7F4 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x14 - ldr r0, _080EA8B4 @ =gUnknown_083DB694 - ldr r7, [r0] - adds r0, r7, 0 - adds r0, 0xC8 - movs r6, 0x14 - str r6, [sp] - movs r4, 0 - str r4, [sp, 0x4] - str r4, [sp, 0x8] - movs r5, 0x1 - str r5, [sp, 0xC] - str r4, [sp, 0x10] - movs r1, 0x14 - movs r2, 0xA - movs r3, 0x19 - bl sub_80EABD4 - movs r1, 0xA4 - lsls r1, 1 - adds r0, r7, r1 - ldr r3, _080EA8B8 @ =0x0000ffff - str r4, [sp] - movs r2, 0xD9 - lsls r2, 3 - adds r2, r7 - mov r8, r2 - str r2, [sp, 0x4] - movs r1, 0x19 - movs r2, 0 - bl sub_80EAC30 - adds r0, r7, 0 - adds r0, 0xD8 - str r6, [sp] - str r4, [sp, 0x4] - str r4, [sp, 0x8] - str r5, [sp, 0xC] - str r4, [sp, 0x10] - movs r1, 0 - movs r2, 0xA - movs r3, 0x1 - bl sub_80EABD4 - movs r1, 0xAA - lsls r1, 1 - adds r0, r7, r1 - str r4, [sp] - movs r2, 0xE4 - lsls r2, 1 - adds r1, r7, r2 - str r1, [sp, 0x4] - movs r1, 0 - movs r2, 0xA - movs r3, 0 - bl sub_80EAC30 - adds r0, r7, 0 - adds r0, 0xE8 - str r6, [sp] - str r5, [sp, 0x4] - str r4, [sp, 0x8] - str r4, [sp, 0xC] - str r4, [sp, 0x10] - movs r1, 0x1 - movs r2, 0xA - movs r3, 0x4 - bl sub_80EABD4 - movs r1, 0xB0 - lsls r1, 1 - adds r0, r7, r1 - str r4, [sp] - mov r2, r8 - str r2, [sp, 0x4] - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl sub_80EAC30 - adds r1, r7, 0 - adds r1, 0xC2 - movs r0, 0x3 - strh r0, [r1] - adds r1, 0x2 - movs r0, 0x2 - strh r0, [r1] - add sp, 0x14 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080EA8B4: .4byte gUnknown_083DB694 -_080EA8B8: .4byte 0x0000ffff - thumb_func_end sub_80EA7F4 - - thumb_func_start sub_80EA8BC -sub_80EA8BC: @ 80EA8BC - push {r4-r6,lr} - sub sp, 0x14 - ldr r0, _080EA944 @ =gUnknown_083DB694 - ldr r6, [r0] - adds r0, r6, 0 - adds r0, 0xC8 - movs r5, 0x14 - str r5, [sp] - movs r4, 0 - str r4, [sp, 0x4] - str r4, [sp, 0x8] - str r4, [sp, 0xC] - str r4, [sp, 0x10] - movs r1, 0x3 - movs r2, 0xA - movs r3, 0x4 - bl sub_80EABD4 - movs r1, 0xA4 - lsls r1, 1 - adds r0, r6, r1 - str r4, [sp] - movs r2, 0xD9 - lsls r2, 3 - adds r1, r6, r2 - str r1, [sp, 0x4] - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl sub_80EAC30 - adds r0, r6, 0 - adds r0, 0xD8 - str r5, [sp] - str r4, [sp, 0x4] - str r4, [sp, 0x8] - str r4, [sp, 0xC] - str r4, [sp, 0x10] - movs r1, 0 - movs r2, 0xA - movs r3, 0x2 - bl sub_80EABD4 - movs r1, 0xAA - lsls r1, 1 - adds r0, r6, r1 - str r4, [sp] - movs r2, 0xE4 - lsls r2, 1 - adds r1, r6, r2 - str r1, [sp, 0x4] - movs r1, 0 - movs r2, 0xA - movs r3, 0 - bl sub_80EAC30 - adds r1, r6, 0 - adds r1, 0xC2 - movs r0, 0x2 - strh r0, [r1] - adds r1, 0x2 - movs r0, 0x1 - strh r0, [r1] - add sp, 0x14 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080EA944: .4byte gUnknown_083DB694 - thumb_func_end sub_80EA8BC - - thumb_func_start sub_80EA948 -sub_80EA948: @ 80EA948 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x14 - ldr r0, _080EAA3C @ =gUnknown_083DB694 - ldr r7, [r0] - adds r0, r7, 0 - adds r0, 0xC8 - movs r6, 0x14 - str r6, [sp] - movs r4, 0 - str r4, [sp, 0x4] - str r4, [sp, 0x8] - ldr r5, _080EAA40 @ =0x0000ffff - str r5, [sp, 0xC] - str r4, [sp, 0x10] - movs r1, 0 - movs r2, 0xA - movs r3, 0x2 - bl sub_80EABD4 - movs r1, 0xA4 - lsls r1, 1 - adds r0, r7, r1 - str r4, [sp] - adds r1, 0x80 - adds r1, r7 - mov r9, r1 - str r1, [sp, 0x4] - movs r1, 0 - movs r2, 0xA - movs r3, 0 - bl sub_80EAC30 - adds r0, r7, 0 - adds r0, 0xD8 - str r6, [sp] - str r5, [sp, 0x4] - str r4, [sp, 0x8] - str r4, [sp, 0xC] - str r4, [sp, 0x10] - movs r1, 0x3 - movs r2, 0xA - movs r3, 0x5 - bl sub_80EABD4 - movs r1, 0xAA - lsls r1, 1 - adds r0, r7, r1 - str r4, [sp] - movs r1, 0xD9 - lsls r1, 3 - adds r1, r7 - mov r8, r1 - str r1, [sp, 0x4] - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl sub_80EAC30 - adds r0, r7, 0 - adds r0, 0xE8 - str r6, [sp] - str r5, [sp, 0x4] - str r4, [sp, 0x8] - str r4, [sp, 0xC] - str r4, [sp, 0x10] - movs r1, 0x1A - movs r2, 0xA - movs r3, 0x1E - bl sub_80EABD4 - movs r1, 0xB0 - lsls r1, 1 - adds r0, r7, r1 - str r4, [sp] - mov r1, r9 - str r1, [sp, 0x4] - movs r1, 0x1A - movs r2, 0xA - adds r3, r5, 0 - bl sub_80EAC30 - adds r0, r7, 0 - adds r0, 0xF8 - str r6, [sp] - str r5, [sp, 0x4] - str r4, [sp, 0x8] - str r5, [sp, 0xC] - str r4, [sp, 0x10] - movs r1, 0x19 - movs r2, 0xA - movs r3, 0x1A - bl sub_80EABD4 - movs r1, 0xB6 - lsls r1, 1 - adds r0, r7, r1 - str r4, [sp] - mov r1, r8 - str r1, [sp, 0x4] - movs r1, 0x1D - movs r2, 0 - movs r3, 0 - bl sub_80EAC30 - adds r1, r7, 0 - adds r1, 0xC2 - movs r0, 0x4 - strh r0, [r1] - adds r1, 0x2 - movs r0, 0x2 - strh r0, [r1] - add sp, 0x14 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080EAA3C: .4byte gUnknown_083DB694 -_080EAA40: .4byte 0x0000ffff - thumb_func_end sub_80EA948 - - thumb_func_start sub_80EAA44 -sub_80EAA44: @ 80EAA44 - push {r4-r6,lr} - sub sp, 0x14 - ldr r0, _080EAACC @ =gUnknown_083DB694 - ldr r6, [r0] - adds r0, r6, 0 - adds r0, 0xC8 - movs r5, 0x14 - str r5, [sp] - movs r4, 0 - str r4, [sp, 0x4] - str r4, [sp, 0x8] - str r4, [sp, 0xC] - str r4, [sp, 0x10] - movs r1, 0x18 - movs r2, 0xA - movs r3, 0x1E - bl sub_80EABD4 - movs r1, 0xA4 - lsls r1, 1 - adds r0, r6, r1 - str r4, [sp] - movs r2, 0xE4 - lsls r2, 1 - adds r1, r6, r2 - str r1, [sp, 0x4] - movs r1, 0x18 - movs r2, 0xA - movs r3, 0 - bl sub_80EAC30 - adds r0, r6, 0 - adds r0, 0xD8 - str r5, [sp] - str r4, [sp, 0x4] - str r4, [sp, 0x8] - ldr r1, _080EAAD0 @ =0x0000ffff - str r1, [sp, 0xC] - str r4, [sp, 0x10] - movs r1, 0x17 - movs r2, 0xA - movs r3, 0x18 - bl sub_80EABD4 - movs r1, 0xAA - lsls r1, 1 - adds r0, r6, r1 - str r4, [sp] - movs r2, 0xD9 - lsls r2, 3 - adds r1, r6, r2 - str r1, [sp, 0x4] - movs r1, 0x1D - movs r2, 0 - movs r3, 0 - bl sub_80EAC30 - adds r1, r6, 0 - adds r1, 0xC2 - movs r0, 0x2 - strh r0, [r1] - adds r1, 0x2 - movs r0, 0x1 - strh r0, [r1] - add sp, 0x14 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080EAACC: .4byte gUnknown_083DB694 -_080EAAD0: .4byte 0x0000ffff - thumb_func_end sub_80EAA44 - - thumb_func_start sub_80EAAD4 -sub_80EAAD4: @ 80EAAD4 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x14 - ldr r0, _080EABCC @ =gUnknown_083DB694 - ldr r7, [r0] - adds r0, r7, 0 - adds r0, 0xC8 - movs r1, 0xF - str r1, [sp] - movs r4, 0 - str r4, [sp, 0x4] - movs r5, 0x1 - str r5, [sp, 0x8] - str r4, [sp, 0xC] - str r4, [sp, 0x10] - movs r1, 0 - movs r2, 0xA - movs r3, 0x1E - bl sub_80EABD4 - movs r1, 0xA4 - lsls r1, 1 - adds r0, r7, r1 - str r4, [sp] - movs r1, 0xD9 - lsls r1, 3 - adds r1, r7 - mov r8, r1 - str r1, [sp, 0x4] - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl sub_80EAC30 - adds r0, r7, 0 - adds r0, 0xD8 - movs r1, 0x14 - mov r9, r1 - str r1, [sp] - str r4, [sp, 0x4] - str r4, [sp, 0x8] - str r4, [sp, 0xC] - ldr r6, _080EABD0 @ =0x0000ffff - str r6, [sp, 0x10] - movs r1, 0 - movs r2, 0xF - movs r3, 0x1E - bl sub_80EABD4 - movs r1, 0xAA - lsls r1, 1 - adds r0, r7, r1 - str r5, [sp] - mov r1, r8 - str r1, [sp, 0x4] - movs r1, 0 - movs r2, 0x5 - movs r3, 0 - bl sub_80EAC30 - adds r0, r7, 0 - adds r0, 0xE8 - movs r1, 0xA - str r1, [sp] - str r4, [sp, 0x4] - str r4, [sp, 0x8] - str r4, [sp, 0xC] - str r5, [sp, 0x10] - movs r1, 0 - movs r2, 0xA - movs r3, 0x1E - bl sub_80EABD4 - movs r1, 0xB0 - lsls r1, 1 - adds r0, r7, r1 - str r4, [sp] - adds r1, 0x68 - adds r5, r7, r1 - str r5, [sp, 0x4] - movs r1, 0 - movs r2, 0xA - movs r3, 0 - bl sub_80EAC30 - adds r0, r7, 0 - adds r0, 0xF8 - mov r1, r9 - str r1, [sp] - str r4, [sp, 0x4] - str r6, [sp, 0x8] - str r4, [sp, 0xC] - str r4, [sp, 0x10] - movs r1, 0 - movs r2, 0x14 - movs r3, 0x1E - bl sub_80EABD4 - movs r1, 0xB6 - lsls r1, 1 - adds r0, r7, r1 - str r6, [sp] - str r5, [sp, 0x4] - movs r1, 0 - movs r2, 0x14 - movs r3, 0 - bl sub_80EAC30 - adds r1, r7, 0 - adds r1, 0xC2 - movs r0, 0x4 - strh r0, [r1] - adds r1, 0x2 - movs r0, 0x5 - strh r0, [r1] - add sp, 0x14 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080EABCC: .4byte gUnknown_083DB694 -_080EABD0: .4byte 0x0000ffff - thumb_func_end sub_80EAAD4 - - thumb_func_start sub_80EABD4 -sub_80EABD4: @ 80EABD4 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - ldr r5, [sp, 0x1C] - ldr r6, [sp, 0x20] - ldr r4, [sp, 0x24] - mov r9, r4 - ldr r4, [sp, 0x28] - ldr r7, [sp, 0x2C] - mov r8, r7 - strh r1, [r0] - strh r3, [r0, 0x2] - strh r2, [r0, 0x4] - strh r5, [r0, 0x6] - strh r6, [r0, 0x8] - strh r4, [r0, 0xA] - mov r1, r9 - strh r1, [r0, 0xC] - mov r4, r8 - strh r4, [r0, 0xE] - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80EABD4 - - thumb_func_start sub_80EAC0C -sub_80EAC0C: @ 80EAC0C - ldrh r1, [r0, 0x8] - ldrh r2, [r0] - adds r1, r2 - strh r1, [r0] - ldrh r1, [r0, 0xA] - ldrh r2, [r0, 0x2] - adds r1, r2 - strh r1, [r0, 0x2] - ldrh r1, [r0, 0xC] - ldrh r2, [r0, 0x4] - adds r1, r2 - strh r1, [r0, 0x4] - ldrh r1, [r0, 0xE] - ldrh r2, [r0, 0x6] - adds r1, r2 - strh r1, [r0, 0x6] - bx lr - thumb_func_end sub_80EAC0C - - thumb_func_start sub_80EAC30 -sub_80EAC30: @ 80EAC30 - push {r4,r5,lr} - ldr r4, [sp, 0xC] - ldr r5, [sp, 0x10] - strh r1, [r0] - strh r2, [r0, 0x2] - strh r3, [r0, 0x4] - strh r4, [r0, 0x6] - str r5, [r0, 0x8] - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80EAC30 - - thumb_func_start sub_80EAC48 -sub_80EAC48: @ 80EAC48 - ldrh r1, [r0, 0x4] - ldrh r2, [r0] - adds r1, r2 - strh r1, [r0] - ldrh r1, [r0, 0x6] - ldrh r2, [r0, 0x2] - adds r1, r2 - strh r1, [r0, 0x2] - bx lr - thumb_func_end sub_80EAC48 - - thumb_func_start sub_80EAC5C -sub_80EAC5C: @ 80EAC5C - push {r4-r6,lr} - ldr r0, _080EACB4 @ =gUnknown_083DB694 - ldr r1, [r0] - adds r0, r1, 0 - adds r0, 0xBC - ldrb r0, [r0] - cmp r0, 0 - beq _080EACAC - movs r4, 0 - adds r0, r1, 0 - adds r0, 0xC2 - ldrh r2, [r0] - cmp r4, r2 - bcs _080EACA2 - adds r5, r1, 0 - adds r6, r0, 0 -_080EAC7C: - lsls r1, r4, 4 - adds r1, 0xC8 - adds r1, r5, r1 - lsls r2, r4, 1 - adds r2, r4 - lsls r2, 2 - movs r0, 0xA4 - lsls r0, 1 - adds r2, r0 - adds r2, r5, r2 - ldr r0, _080EACB8 @ =0x06006800 - bl sub_80EACBC - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - ldrh r2, [r6] - cmp r4, r2 - bcc _080EAC7C -_080EACA2: - ldr r0, _080EACB4 @ =gUnknown_083DB694 - ldr r0, [r0] - adds r0, 0xBC - movs r1, 0 - strb r1, [r0] -_080EACAC: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080EACB4: .4byte gUnknown_083DB694 -_080EACB8: .4byte 0x06006800 - thumb_func_end sub_80EAC5C - - thumb_func_start sub_80EACBC -sub_80EACBC: @ 80EACBC - push {r4-r7,lr} - sub sp, 0x10 - adds r7, r0, 0 - adds r3, r1, 0 - adds r4, r2, 0 - ldrh r2, [r3, 0x2] - ldrh r0, [r3] - subs r2, r0 - ldrh r0, [r3, 0x6] - ldrh r1, [r3, 0x4] - subs r0, r1 - lsls r0, 16 - lsrs r0, 16 - lsls r6, r2, 16 - cmp r6, 0 - ble _080EACFE - lsls r5, r0, 16 - cmp r5, 0 - ble _080EACFE - ldrh r1, [r3] - ldrh r2, [r3, 0x4] - ldr r3, [r4, 0x8] - ldrh r0, [r4] - str r0, [sp] - ldrh r0, [r4, 0x2] - str r0, [sp, 0x4] - lsrs r0, r6, 16 - str r0, [sp, 0x8] - lsrs r0, r5, 16 - str r0, [sp, 0xC] - adds r0, r7, 0 - bl sub_809D104 -_080EACFE: - add sp, 0x10 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80EACBC - - thumb_func_start sub_80EAD08 -sub_80EAD08: @ 80EAD08 - push {r4,r5,lr} - ldr r0, _080EAD58 @ =gUnknown_03004DC0 - ldrb r1, [r0, 0x14] - lsls r0, r1, 4 - subs r0, r1 - lsls r0, 7 - ldr r1, _080EAD5C @ =gUnknown_03004DE0 - adds r4, r0, r1 - adds r4, 0xB0 - ldr r0, _080EAD60 @ =gUnknown_083DB694 - ldr r1, [r0] - movs r0, 0xDD - lsls r0, 1 - adds r1, r0 - ldrh r0, [r1] - adds r2, r0, 0 - subs r2, 0x58 - movs r0, 0xFF - ands r2, r0 - movs r3, 0 - movs r5, 0xFF -_080EAD32: - ldrh r0, [r1] - adds r0, r3 - cmp r0, 0x80 - bne _080EAD42 - negs r0, r3 - adds r2, r0, 0 - subs r2, 0x58 - ands r2, r5 -_080EAD42: - strh r2, [r4] - adds r4, 0x2 - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, 0x3F - bls _080EAD32 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080EAD58: .4byte gUnknown_03004DC0 -_080EAD5C: .4byte gUnknown_03004DE0 -_080EAD60: .4byte gUnknown_083DB694 - thumb_func_end sub_80EAD08 - - thumb_func_start sub_80EAD64 -sub_80EAD64: @ 80EAD64 - push {lr} - lsls r1, 24 - ldr r2, _080EAD78 @ =gEasyChatGroupNames - lsrs r1, 22 - adds r1, r2 - ldr r1, [r1] - bl StringCopy - pop {r1} - bx r1 - .align 2, 0 -_080EAD78: .4byte gEasyChatGroupNames - thumb_func_end sub_80EAD64 - - thumb_func_start sub_80EAD7C -sub_80EAD7C: @ 80EAD7C - push {lr} - lsls r0, 24 - lsrs r0, 24 - adds r1, r0, 0 - cmp r0, 0x14 - beq _080EADA2 - cmp r0, 0x14 - bgt _080EAD9C - cmp r0, 0x11 - blt _080EADBA - ldr r0, _080EAD98 @ =0x00000804 - bl FlagGet - b _080EADB4 - .align 2, 0 -_080EAD98: .4byte 0x00000804 -_080EAD9C: - cmp r1, 0x15 - beq _080EADB0 - b _080EADBA -_080EADA2: - ldr r0, _080EADAC @ =0x00000806 - bl FlagGet - b _080EADB4 - .align 2, 0 -_080EADAC: .4byte 0x00000806 -_080EADB0: - bl sub_80EB9C8 -_080EADB4: - lsls r0, 24 - lsrs r0, 24 - b _080EADBC -_080EADBA: - movs r0, 0x1 -_080EADBC: - pop {r1} - bx r1 - thumb_func_end sub_80EAD7C - - thumb_func_start sub_80EADC0 -sub_80EADC0: @ 80EADC0 - push {lr} - lsls r0, 24 - lsrs r2, r0, 24 - lsls r1, 16 - lsrs r3, r1, 16 - cmp r2, 0x15 - bhi _080EAE82 - lsls r0, r2, 2 - ldr r1, _080EADD8 @ =_080EADDC - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080EADD8: .4byte _080EADDC - .align 2, 0 -_080EADDC: - .4byte _080EAE50 - .4byte _080EAE82 - .4byte _080EAE82 - .4byte _080EAE82 - .4byte _080EAE82 - .4byte _080EAE82 - .4byte _080EAE82 - .4byte _080EAE82 - .4byte _080EAE82 - .4byte _080EAE82 - .4byte _080EAE82 - .4byte _080EAE82 - .4byte _080EAE82 - .4byte _080EAE82 - .4byte _080EAE82 - .4byte _080EAE82 - .4byte _080EAE82 - .4byte _080EAE62 - .4byte _080EAE62 - .4byte _080EAE62 - .4byte _080EAE34 - .4byte _080EAE78 -_080EAE34: - ldr r0, _080EAE4C @ =gUnknown_083DB694 - ldr r0, [r0] - adds r0, r2 - adds r0, 0x67 - ldrb r0, [r0] - cmp r0, 0 - beq _080EAE70 - lsls r0, r3, 24 - lsrs r0, 24 - bl sub_80EB868 - b _080EAE7C - .align 2, 0 -_080EAE4C: .4byte gUnknown_083DB694 -_080EAE50: - adds r0, r3, 0 - bl SpeciesToNationalPokedexNum - lsls r0, 16 - lsrs r0, 16 - movs r1, 0 - bl GetSetPokedexFlag - b _080EAE7C -_080EAE62: - ldr r0, _080EAE74 @ =gUnknown_083DB694 - ldr r0, [r0] - adds r0, r2 - adds r0, 0x67 - ldrb r0, [r0] - cmp r0, 0 - bne _080EAE82 -_080EAE70: - movs r0, 0 - b _080EAE84 - .align 2, 0 -_080EAE74: .4byte gUnknown_083DB694 -_080EAE78: - bl sub_80EB9C8 -_080EAE7C: - lsls r0, 24 - lsrs r0, 24 - b _080EAE84 -_080EAE82: - movs r0, 0x1 -_080EAE84: - pop {r1} - bx r1 - thumb_func_end sub_80EADC0 - - thumb_func_start sub_80EAE88 -sub_80EAE88: @ 80EAE88 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0 - beq _080EAEA6 - cmp r4, 0x14 - beq _080EAEB2 - adds r0, r4, 0 - bl sub_80EAD7C - lsls r0, 24 - cmp r0, 0 - bne _080EAEBC - movs r0, 0 - b _080EAEC2 -_080EAEA6: - movs r0, 0 - bl GetHoennPokedexCount - lsls r0, 16 - lsrs r0, 16 - b _080EAEC2 -_080EAEB2: - bl sub_80EB8C0 - lsls r0, 24 - lsrs r0, 24 - b _080EAEC2 -_080EAEBC: - ldr r0, _080EAEC8 @ =gEasyChatGroupSizes - adds r0, r4, r0 - ldrb r0, [r0] -_080EAEC2: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080EAEC8: .4byte gEasyChatGroupSizes - thumb_func_end sub_80EAE88 - - thumb_func_start sub_80EAECC -sub_80EAECC: @ 80EAECC - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x10 - movs r0, 0 - mov r8, r0 - ldr r1, _080EAF10 @ =gUnknown_083DB694 - ldr r0, [r1] - ldr r3, _080EAF14 @ =0x00004142 - adds r3, r0, r3 - str r3, [sp, 0x4] -_080EAEE6: - ldr r1, _080EAF18 @ =gEasyChatWordsByLetter - mov r7, r8 - lsls r2, r7, 1 - adds r0, r2, r1 - ldrh r4, [r0] - mov r3, r8 - adds r3, 0x1 - lsls r0, r3, 1 - adds r0, r1 - ldrh r0, [r0] - str r0, [sp] - ldr r0, [sp, 0x4] - adds r1, r0, r2 - movs r0, 0 - strh r0, [r1] - mov r9, r0 - adds r6, r4, 0 - mov r10, r2 - str r3, [sp, 0x8] - b _080EB00C - .align 2, 0 -_080EAF10: .4byte gUnknown_083DB694 -_080EAF14: .4byte 0x00004142 -_080EAF18: .4byte gEasyChatWordsByLetter -_080EAF1C: - ldr r2, _080EAFB0 @ =gEasyChatWordsAlphabetized - adds r0, r6, 0 - adds r1, r0, 0x1 - lsls r1, 16 - lsrs r6, r1, 16 - lsls r0, 1 - adds r0, r2 - ldrh r1, [r0] - adds r4, r1, 0 - ldr r0, _080EAFB4 @ =0x0000feff - cmp r1, r0 - bls _080EAFCC - movs r0, 0xFF - ands r1, r0 - movs r7, 0 - subs r0, r1, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - ldr r3, _080EAFB8 @ =0x0000ffff - cmp r5, r3 - beq _080EB00C - mov r1, r8 - lsls r0, r1, 8 - subs r0, r1 - lsls r3, r0, 1 -_080EAF4E: - adds r1, r6, 0 - adds r0, r1, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 - lsls r1, 1 - ldr r0, _080EAFB0 @ =gEasyChatWordsAlphabetized - adds r1, r0 - ldrh r4, [r1] - lsrs r0, r4, 9 - ldr r1, _080EAFBC @ =0x000001ff - adds r2, r1, 0 - adds r1, r4, 0 - ands r1, r2 - str r3, [sp, 0xC] - bl sub_80EADC0 - lsls r0, 24 - ldr r3, [sp, 0xC] - cmp r0, 0 - beq _080EAFA2 - cmp r7, 0 - bne _080EAFA2 - ldr r7, _080EAFC0 @ =gUnknown_083DB694 - ldr r2, [r7] - mov r1, r9 - adds r0, r1, 0x1 - lsls r0, 16 - lsrs r0, 16 - mov r9, r0 - lsls r1, 1 - adds r1, r3 - ldr r7, _080EAFC4 @ =0x00000b78 - adds r0, r2, r7 - adds r0, r1 - strh r4, [r0] - ldr r0, _080EAFC8 @ =0x00004142 - adds r2, r0 - add r2, r10 - ldrh r0, [r2] - adds r0, 0x1 - strh r0, [r2] - movs r7, 0x1 -_080EAFA2: - subs r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - ldr r1, _080EAFB8 @ =0x0000ffff - cmp r5, r1 - bne _080EAF4E - b _080EB00C - .align 2, 0 -_080EAFB0: .4byte gEasyChatWordsAlphabetized -_080EAFB4: .4byte 0x0000feff -_080EAFB8: .4byte 0x0000ffff -_080EAFBC: .4byte 0x000001ff -_080EAFC0: .4byte gUnknown_083DB694 -_080EAFC4: .4byte 0x00000b78 -_080EAFC8: .4byte 0x00004142 -_080EAFCC: - lsrs r0, r4, 9 - ldr r3, _080EB030 @ =0x000001ff - adds r2, r3, 0 - adds r1, r4, 0 - ands r1, r2 - bl sub_80EADC0 - lsls r0, 24 - cmp r0, 0 - beq _080EB00C - ldr r7, _080EB034 @ =gUnknown_083DB694 - ldr r2, [r7] - mov r1, r9 - adds r0, r1, 0x1 - lsls r0, 16 - lsrs r0, 16 - mov r9, r0 - mov r3, r8 - lsls r0, r3, 8 - subs r0, r3 - adds r0, r1 - lsls r0, 1 - ldr r7, _080EB038 @ =0x00000b78 - adds r1, r2, r7 - adds r1, r0 - strh r4, [r1] - ldr r0, _080EB03C @ =0x00004142 - adds r2, r0 - add r2, r10 - ldrh r0, [r2] - adds r0, 0x1 - strh r0, [r2] -_080EB00C: - ldr r1, [sp] - cmp r6, r1 - bcc _080EAF1C - ldr r3, [sp, 0x8] - lsls r0, r3, 16 - lsrs r0, 16 - mov r8, r0 - cmp r0, 0x1A - bhi _080EB020 - b _080EAEE6 -_080EB020: - add sp, 0x10 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080EB030: .4byte 0x000001ff -_080EB034: .4byte gUnknown_083DB694 -_080EB038: .4byte 0x00000b78 -_080EB03C: .4byte 0x00004142 - thumb_func_end sub_80EAECC - - thumb_func_start sub_80EB040 -sub_80EB040: @ 80EB040 - push {r4-r6,lr} - movs r3, 0 -_080EB044: - adds r6, r3, 0x1 - cmp r3, 0 - beq _080EB094 - cmp r3, 0x15 - beq _080EB094 - cmp r3, 0x12 - beq _080EB094 - cmp r3, 0x13 - beq _080EB094 - ldr r0, _080EB0A4 @ =gEasyChatGroupWords - lsls r1, r3, 2 - adds r1, r0 - ldr r2, [r1] - movs r4, 0 - ldrb r0, [r2] - cmp r0, 0xFF - beq _080EB094 - ldr r0, _080EB0A8 @ =gUnknown_083DB694 - ldr r0, [r0] - ldr r1, _080EB0AC @ =0x000041a4 - adds r5, r0, r1 -_080EB06E: - lsls r0, r4, 2 - lsls r1, r3, 10 - adds r0, r1 - adds r0, r5, r0 - str r2, [r0] - ldrb r0, [r2] - adds r1, r4, 0x1 - cmp r0, 0xFF - beq _080EB088 -_080EB080: - adds r2, 0x1 - ldrb r0, [r2] - cmp r0, 0xFF - bne _080EB080 -_080EB088: - adds r2, 0x1 - lsls r0, r1, 16 - lsrs r4, r0, 16 - ldrb r0, [r2] - cmp r0, 0xFF - bne _080EB06E -_080EB094: - lsls r0, r6, 16 - lsrs r3, r0, 16 - cmp r3, 0x15 - bls _080EB044 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080EB0A4: .4byte gEasyChatGroupWords -_080EB0A8: .4byte gUnknown_083DB694 -_080EB0AC: .4byte 0x000041a4 - thumb_func_end sub_80EB040 - - thumb_func_start sub_80EB0B0 -sub_80EB0B0: @ 80EB0B0 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x8 - ldr r3, _080EB184 @ =gUnknown_083DB694 - ldr r4, [r3] - adds r0, r4, 0 - adds r0, 0x26 - ldrb r5, [r0] - cmp r5, 0 - bne _080EB19C - movs r0, 0xDC - lsls r0, 1 - adds r2, r4, r0 - ldrb r6, [r2] - lsls r1, r6, 1 - ldr r7, _080EB188 @ =0x00004178 - adds r0, r4, r7 - adds r0, r1 - strh r5, [r0] - movs r7, 0 - movs r0, 0 - mov r9, r0 - ldr r1, _080EB18C @ =gEasyChatGroupOrders - lsls r0, r6, 2 - adds r0, r1 - ldr r0, [r0] - str r0, [sp] - movs r1, 0 - mov r8, r1 - ldr r1, _080EB190 @ =gEasyChatGroupSizes - ldrb r0, [r2] - adds r0, r1 - ldrb r0, [r0] - cmp r8, r0 - bcc _080EB0FE - b _080EB1FA -_080EB0FE: - movs r2, 0xDC - lsls r2, 1 - adds r2, r4, r2 - str r2, [sp, 0x4] - lsls r5, r6, 24 - mov r10, r5 -_080EB10A: - mov r1, r8 - lsls r0, r1, 1 - ldr r2, [sp] - adds r5, r0, r2 - ldrh r1, [r5] - mov r2, r10 - lsrs r0, r2, 24 - bl sub_80EADC0 - lsls r0, 24 - cmp r0, 0 - beq _080EB16A - ldr r0, _080EB184 @ =gUnknown_083DB694 - ldr r3, [r0] - lsls r1, r7, 1 - mov r2, r9 - lsls r0, r2, 2 - adds r1, r0 - ldr r0, _080EB194 @ =0x00009a2a - adds r4, r3, r0 - adds r4, r1 - movs r0, 0x7F - ands r0, r6 - lsls r0, 9 - ldrh r1, [r5] - ldr r5, _080EB198 @ =0x000001ff - adds r2, r5, 0 - ands r1, r2 - orrs r0, r1 - strh r0, [r4] - lsls r0, r6, 1 - ldr r1, _080EB188 @ =0x00004178 - adds r3, r1 - adds r3, r0 - ldrh r0, [r3] - adds r0, 0x1 - strh r0, [r3] - adds r0, r7, 0x1 - lsls r0, 16 - lsrs r7, r0, 16 - cmp r7, 0x1 - bls _080EB16A - movs r7, 0 - mov r0, r9 - adds r0, 0x1 - lsls r0, 16 - lsrs r0, 16 - mov r9, r0 -_080EB16A: - mov r0, r8 - adds r0, 0x1 - lsls r0, 16 - lsrs r0, 16 - mov r8, r0 - ldr r1, _080EB190 @ =gEasyChatGroupSizes - ldr r2, [sp, 0x4] - ldrb r0, [r2] - adds r0, r1 - ldrb r0, [r0] - cmp r8, r0 - bcc _080EB10A - b _080EB1FA - .align 2, 0 -_080EB184: .4byte gUnknown_083DB694 -_080EB188: .4byte 0x00004178 -_080EB18C: .4byte gEasyChatGroupOrders -_080EB190: .4byte gEasyChatGroupSizes -_080EB194: .4byte 0x00009a2a -_080EB198: .4byte 0x000001ff -_080EB19C: - movs r5, 0xDC - lsls r5, 1 - adds r0, r4, r5 - ldrb r2, [r0] - movs r3, 0 - movs r6, 0 - movs r5, 0 - lsls r1, r2, 1 - ldr r7, _080EB20C @ =0x00004142 - adds r0, r4, r7 - adds r1, r0, r1 - ldrh r0, [r1] - cmp r5, r0 - bcs _080EB1FA - ldr r7, _080EB210 @ =0x00009a2a - adds r7, r4 - mov r8, r7 - lsls r0, r2, 8 - subs r0, r2 - lsls r7, r0, 1 - ldr r0, _080EB214 @ =0x00000b78 - adds r2, r4, r0 - adds r4, r1, 0 -_080EB1CA: - lsls r1, r3, 1 - lsls r0, r6, 2 - adds r1, r0 - add r1, r8 - lsls r0, r5, 1 - adds r0, r7 - adds r0, r2, r0 - ldrh r0, [r0] - strh r0, [r1] - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, 0x1 - bls _080EB1EE - movs r3, 0 - adds r0, r6, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 -_080EB1EE: - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - ldrh r1, [r4] - cmp r5, r1 - bcc _080EB1CA -_080EB1FA: - add sp, 0x8 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080EB20C: .4byte 0x00004142 -_080EB210: .4byte 0x00009a2a -_080EB214: .4byte 0x00000b78 - thumb_func_end sub_80EB0B0 - - thumb_func_start sub_80EB218 -sub_80EB218: @ 80EB218 - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r5, r0, 0 - lsls r6, r1, 16 - lsrs r4, r6, 16 - adds r7, r4, 0 - lsls r2, 16 - lsrs r2, 16 - mov r8, r2 - adds r0, r4, 0 - bl sub_80EB37C - lsls r0, 24 - cmp r0, 0 - beq _080EB240 - ldr r1, _080EB23C @ =gOtherText_ThreeQuestions - b _080EB2A2 - .align 2, 0 -_080EB23C: .4byte gOtherText_ThreeQuestions -_080EB240: - ldr r0, _080EB250 @ =0x0000ffff - cmp r4, r0 - bne _080EB254 - adds r1, r5, 0 - movs r0, 0xFF - strb r0, [r1] - b _080EB2AA - .align 2, 0 -_080EB250: .4byte 0x0000ffff -_080EB254: - lsrs r2, r6, 25 - ldr r1, _080EB268 @ =0x000001ff - ands r1, r7 - cmp r2, 0x13 - bgt _080EB26C - cmp r2, 0x12 - bge _080EB280 - cmp r2, 0 - beq _080EB270 - b _080EB290 - .align 2, 0 -_080EB268: .4byte 0x000001ff -_080EB26C: - cmp r2, 0x15 - bne _080EB290 -_080EB270: - movs r0, 0xB - muls r1, r0 - ldr r0, _080EB27C @ =gSpeciesNames - adds r1, r0 - b _080EB2A2 - .align 2, 0 -_080EB27C: .4byte gSpeciesNames -_080EB280: - movs r0, 0xD - muls r1, r0 - ldr r0, _080EB28C @ =gMoveNames - adds r1, r0 - b _080EB2A2 - .align 2, 0 -_080EB28C: .4byte gMoveNames -_080EB290: - ldr r0, _080EB2CC @ =gUnknown_083DB694 - ldr r0, [r0] - lsls r1, 2 - lsls r2, 10 - adds r1, r2 - ldr r2, _080EB2D0 @ =0x000041a4 - adds r0, r2 - adds r0, r1 - ldr r1, [r0] -_080EB2A2: - adds r0, r5, 0 - bl StringCopy - adds r1, r0, 0 -_080EB2AA: - movs r0, 0xFC - strb r0, [r1] - movs r0, 0x13 - strb r0, [r1, 0x1] - mov r2, r8 - lsls r0, r2, 3 - strb r0, [r1, 0x2] - adds r1, 0x3 - movs r0, 0xFF - strb r0, [r1] - adds r0, r1, 0 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_080EB2CC: .4byte gUnknown_083DB694 -_080EB2D0: .4byte 0x000041a4 - thumb_func_end sub_80EB218 - - thumb_func_start sub_80EB2D4 -sub_80EB2D4: @ 80EB2D4 - push {r4-r6,lr} - lsls r5, r0, 16 - lsrs r4, r5, 16 - adds r6, r4, 0 - adds r0, r4, 0 - bl sub_80EB37C - lsls r0, 24 - cmp r0, 0 - beq _080EB2F8 - ldr r0, _080EB2F4 @ =gOtherText_ThreeQuestions - bl StringLength - lsls r0, 16 - lsrs r0, 16 - b _080EB374 - .align 2, 0 -_080EB2F4: .4byte gOtherText_ThreeQuestions -_080EB2F8: - ldr r0, _080EB304 @ =0x0000ffff - cmp r4, r0 - bne _080EB308 - movs r0, 0 - b _080EB374 - .align 2, 0 -_080EB304: .4byte 0x0000ffff -_080EB308: - lsrs r2, r5, 25 - ldr r1, _080EB31C @ =0x000001ff - ands r1, r6 - cmp r2, 0x13 - bgt _080EB320 - cmp r2, 0x12 - bge _080EB334 - cmp r2, 0 - beq _080EB324 - b _080EB344 - .align 2, 0 -_080EB31C: .4byte 0x000001ff -_080EB320: - cmp r2, 0x15 - bne _080EB344 -_080EB324: - movs r0, 0xB - muls r1, r0 - ldr r0, _080EB330 @ =gSpeciesNames - adds r1, r0 - b _080EB356 - .align 2, 0 -_080EB330: .4byte gSpeciesNames -_080EB334: - movs r0, 0xD - muls r1, r0 - ldr r0, _080EB340 @ =gMoveNames - adds r1, r0 - b _080EB356 - .align 2, 0 -_080EB340: .4byte gMoveNames -_080EB344: - ldr r0, _080EB35C @ =gUnknown_083DB694 - ldr r0, [r0] - lsls r1, 2 - lsls r2, 10 - adds r1, r2 - ldr r2, _080EB360 @ =0x000041a4 - adds r0, r2 - adds r0, r1 - ldr r1, [r0] -_080EB356: - movs r2, 0 - b _080EB36C - .align 2, 0 -_080EB35C: .4byte gUnknown_083DB694 -_080EB360: .4byte 0x000041a4 -_080EB364: - adds r1, 0x1 - adds r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 -_080EB36C: - ldrb r0, [r1] - cmp r0, 0xFF - bne _080EB364 - adds r0, r2, 0 -_080EB374: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_80EB2D4 - - thumb_func_start sub_80EB37C -sub_80EB37C: @ 80EB37C - push {r4,r5,lr} - lsls r1, r0, 16 - lsrs r3, r1, 16 - ldr r0, _080EB3A0 @ =0x0000ffff - cmp r3, r0 - beq _080EB3EA - lsrs r2, r1, 25 - ldr r5, _080EB3A4 @ =0x000001ff - ands r5, r3 - cmp r2, 0x15 - bhi _080EB3F4 - cmp r2, 0x13 - bgt _080EB3A8 - cmp r2, 0x12 - bge _080EB3AC - cmp r2, 0 - beq _080EB3AC - b _080EB3E0 - .align 2, 0 -_080EB3A0: .4byte 0x0000ffff -_080EB3A4: .4byte 0x000001ff -_080EB3A8: - cmp r2, 0x15 - bne _080EB3E0 -_080EB3AC: - ldr r0, _080EB3D8 @ =gEasyChatGroupWords - lsls r1, r2, 2 - adds r1, r0 - ldr r4, [r1] - movs r3, 0 - ldr r0, _080EB3DC @ =gEasyChatGroupSizes - adds r0, r2, r0 - ldrb r0, [r0] - cmp r3, r0 - bcs _080EB3F4 - adds r1, r0, 0 -_080EB3C2: - lsls r0, r3, 1 - adds r0, r4 - ldrh r0, [r0] - cmp r5, r0 - beq _080EB3EA - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, r1 - bcc _080EB3C2 - b _080EB3F4 - .align 2, 0 -_080EB3D8: .4byte gEasyChatGroupWords -_080EB3DC: .4byte gEasyChatGroupSizes -_080EB3E0: - ldr r0, _080EB3F0 @ =gEasyChatGroupSizes - adds r0, r2, r0 - ldrb r0, [r0] - cmp r5, r0 - bcs _080EB3F4 -_080EB3EA: - movs r0, 0 - b _080EB3F6 - .align 2, 0 -_080EB3F0: .4byte gEasyChatGroupSizes -_080EB3F4: - movs r0, 0x1 -_080EB3F6: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_80EB37C - - .align 2, 0 @ Don't pad with nop. diff --git a/data/easy_chat.s b/data/easy_chat.s index 99a03f8f5..d41ffccce 100644 --- a/data/easy_chat.s +++ b/data/easy_chat.s @@ -8,483 +8,6 @@ .section .rodata - .align 1 -gMysteryEventPhrase:: @ 83DB678 - .2byte EC_WORD_MYSTERY - .2byte EC_WORD_EVENT - .2byte EC_WORD_IS - .2byte EC_WORD_EXCITING - - .align 1 -gBerryMasterWifePhrases:: @ 83DB680 -.ifdef ENGLISH - .2byte EC_WORD_GREAT - .2byte EC_WORD_BATTLE - - .2byte EC_WORD_CHALLENGE - .2byte EC_WORD_CONTEST - - .2byte EC_WORD_OVERWHELMING - .2byte EC_POKEMON(LATIAS) - - .2byte EC_WORD_COOL - .2byte EC_POKEMON(LATIOS) - - .2byte EC_WORD_SUPER - .2byte EC_WORD_HUSTLE -.else - .2byte EC_WORD_GREAT - .2byte EC_WORD_FIGHT - - .2byte EC_WORD_CONTEST - .2byte EC_WORD_CHALLENGE - - .2byte EC_POKEMON(LATIAS) - .2byte EC_WORD_OVERWHELMING - - .2byte EC_POKEMON(LATIOS) - .2byte EC_WORD_COOL - - .2byte EC_WORD_SUPER - .2byte 0xFFFF -.endif - -gUnknown_083DB694:: @ 83DB694 - .4byte gSharedMem + 0x1000 - - .align 2 -gUnknown_083DB698:: @ 83DB698 - .4byte REG_BG3VOFS - .4byte ((DMA_ENABLE | DMA_START_HBLANK | DMA_REPEAT | DMA_DEST_RELOAD) << 16) | 1 - .4byte 1 - -gUnknown_083DB6A4:: @ 83DB6A4 - .byte 4 - .byte 0 - .byte 0 - .byte 0 - .byte 1 - .byte 5 - .byte 0 - .byte 2 - .byte 2 - .byte 3 - .byte 2 - .byte 2 - .byte 2 - .byte 3 - -gUnknown_083DB6B2:: @ 83DB6B2 - .string "ABCDEF $ " - .string "GHIJKL$ " - .string "MNOPQRS$ " - .string "TUVWXYZ$ " - - .align 2 -gUnknown_083DB6F4:: @ 83DB6F4 - .4byte OtherText_MakeProfilePage1, OtherText_MakeProfilePage2, 0x1 - .4byte OtherText_MakeMessagePage1, OtherText_MakeMessagePage2, 0x1 - .4byte OtherText_CombineNinePhrasesPage1, OtherText_CombineNinePhrasesPage2, 0x1 - .4byte OtherText_DescribeFeelingsPage1, OtherText_DescribeFeelingsPage2, 0x1 - .4byte OtherText_ImproveBardSongPage1, OtherText_ImproveBardSongPage2, 0x1 - .4byte OtherText_CombineTwoPhrasesPage1, OtherText_CombineTwoPhrasesPage2, 0x1 - .4byte OtherText_YourProfile, OtherText_ConfirmTrendyPage2, 0x0 - .4byte OtherText_YourFeelingBattle, OtherText_ConfirmTrendyPage2, 0x1 - .4byte OtherText_SetWinMessage, OtherText_ConfirmTrendyPage2, 0x1 - .4byte OtherText_SetLossMessage, OtherText_ConfirmTrendyPage2, 0x1 - .4byte OtherText_MailMessage, OtherText_ConfirmTrendyPage2, 0x1 - .4byte OtherText_MailSalutation, OtherText_ConfirmTrendyPage2, 0x1 - .4byte OtherText_NewSong, OtherText_ConfirmTrendyPage2, 0x0 - .4byte OtherText_TheAnswer, OtherText_ConfirmTrendyPage2, 0x0 - .4byte OtherText_ConfirmTrendyPage1, OtherText_ConfirmTrendyPage2, 0x1 - .4byte OtherText_HipsterPage1, OtherText_HipsterPage2, 0x1 - .4byte OtherText_WithFourPhrases, OtherText_CombineNinePhrasesPage2, 0x1 - -gUnknown_083DB7C0:: @ 83DB7C0 - .byte 0, 6 - .byte 1, 7 - .byte 1, 8 - .byte 1, 9 - .byte 2, 10 - .byte 16, 13 - .byte 4, 12 - .byte 3, 13 - .byte 3, 13 - .byte 5, 14 - .byte 3, 13 - .byte 3, 13 - .byte 3, 13 - .byte 15, 13 - - .align 2 -gUnknown_083DB7DC:: @ 83DB7DC -.ifdef ENGLISH - .4byte gSharedMem + 0xAC80 - .4byte gSharedMem + 0xACC9 - .4byte gSharedMem + 0xAD12 - .4byte gSharedMem + 0xAD5B -.else - .4byte gSharedMem + 0xAFAC - .4byte gSharedMem + 0xAFF5 - .4byte gSharedMem + 0xB03E - .4byte gSharedMem + 0xB087 -.endif - - .align 1 -gUnknown_083DB7EC:: @ 83DB7EC -.ifdef ENGLISH - .2byte EC_WORD_I_AM - .2byte EC_WORD_A - .2byte EC_WORD_POKEMON - .2byte EC_WORD_GREAT -.else - .2byte EC_WORD_I_AM - .2byte EC_WORD_BIG - .2byte EC_WORD_IN - .2byte EC_WORD_POKEMON -.endif - - .align 1 -gUnknown_083DB7F4:: @ 83DB7F4 - .2byte EC_WORD_ARE - .2byte EC_WORD_YOU - .2byte EC_WORD_READY - .2byte EC_WORD_QUES - .2byte EC_WORD_HERE_I_COME - .2byte EC_WORD_EXCL - - .align 2 -InterviewPalette_0:: @ 83DB800 - .incbin "graphics/misc/interview_pal0.gbapal" - - .align 2 -InterviewPalette_1:: @ 83DB820 - .incbin "graphics/misc/interview_pal1.gbapal" - - .align 2 -InterviewArrowTiles: @ 83DB840 - .incbin "graphics/misc/interview_arrow.4bpp" - - .align 2 -InterviewButtonTiles: @ 83DB940 - .incbin "graphics/misc/interview_buttons.4bpp" - - .align 2 -gMenuInterviewFrame_Pal:: - .incbin "graphics/misc/interview_frame.gbapal" - - .align 2 -gMenuInterviewFrame_Gfx:: - .incbin "graphics/misc/interview_frame.4bpp.lz" - - .align 2 -InterviewTriangleCursorTiles: @ 83DBB94 - .incbin "graphics/misc/interview_triangle_cursor.4bpp" - - .align 2 -gSpriteSheets_Interview:: @ 83DBBB4 - obj_tiles InterviewTriangleCursorTiles, 0x20, 0 - obj_tiles gInterviewOutlineCursorTiles, 0x700, 1 - obj_tiles InterviewArrowTiles, 0x100, 2 - obj_tiles InterviewButtonTiles, 0x100, 3 - null_obj_tiles - - .align 2 -gSpritePalettes_Interview:: @ 83DBBDC - obj_pal InterviewPalette_0, 0 - obj_pal InterviewPalette_1, 1 - null_obj_pal - - .align 2 -gOamData_83DBBF4:: @ 83DBBF4 - .2byte 0x0000 - .2byte 0x0000 - .2byte 0x0000 - - .align 2 -gSpriteTemplate_83DBBFC:: @ 83DBBFC - spr_template 0, 0, gOamData_83DBBF4, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80E82BC - - .align 2 -gOamData_83DBC14:: @ 83DBC14 - .2byte 0x4400 - .2byte 0x8000 - .2byte 0x0400 - - .align 2 -gSpriteAnim_83DBC1C:: @ 83DBC1C - obj_image_anim_frame 0, 5 - obj_image_anim_end - - .align 2 -gSpriteAnim_83DBC24:: @ 83DBC24 -.ifdef ENGLISH - obj_image_anim_frame 8, 5 -.else - obj_image_anim_frame 0, 5 -.endif - obj_image_anim_end - - .align 2 -gSpriteAnim_83DBC2C:: @ 83DBC2C - obj_image_anim_frame 0, 5 - obj_image_anim_end - - .align 2 -gSpriteAnim_83DBC34:: @ 83DBC34 - obj_image_anim_frame 24, 5 - obj_image_anim_end - - .align 2 -gSpriteAnim_83DBC3C:: @ 83DBC3C - obj_image_anim_frame 32, 5 - obj_image_anim_end - - .align 2 -gSpriteAnim_83DBC44:: @ 83DBC44 - obj_image_anim_frame 40, 5 - obj_image_anim_end - - .align 2 -gSpriteAnim_83DBC4C:: @ 83DBC4C - obj_image_anim_frame 40, 5 - obj_image_anim_end - - .align 2 -gSpriteAnim_83DBC54:: @ 83DBC54 - obj_image_anim_frame 40, 5 - obj_image_anim_end - - .align 2 -gSpriteAnim_83DBC5C:: @ 83DBC5C - obj_image_anim_frame 48, 5 - obj_image_anim_end - - .align 2 -gSpriteAnim_83DBC64:: @ 83DBC64 -.ifdef ENGLISH - obj_image_anim_frame 40, 5 -.else - obj_image_anim_frame 16, 5 -.endif - obj_image_anim_end - - .align 2 -gSpriteAnim_83DBC6C:: @ 83DBC6C - obj_image_anim_frame 48, 5 - obj_image_anim_end - - .align 2 -gSpriteAnim_83DBC74:: @ 83DBC74 - obj_image_anim_frame 40, 5 - obj_image_anim_end - - .align 2 -gSpriteAnimTable_83DBC7C:: @ 83DBC7C - .4byte gSpriteAnim_83DBC1C - .4byte gSpriteAnim_83DBC24 - .4byte gSpriteAnim_83DBC2C - .4byte gSpriteAnim_83DBC34 - - .align 2 -gSpriteAnimTable_83DBC8C:: @ 83DBC8C - .4byte gSpriteAnim_83DBC3C - .4byte gSpriteAnim_83DBC44 - .4byte gSpriteAnim_83DBC4C - .4byte gSpriteAnim_83DBC54 - - .align 2 -gSpriteAnimTable_83DBC9C:: @ 83DBC9C - .4byte gSpriteAnim_83DBC5C - .4byte gSpriteAnim_83DBC64 - .4byte gSpriteAnim_83DBC6C - .4byte gSpriteAnim_83DBC74 - - .align 2 -gSpriteTemplate_83DBCAC:: @ 83DBCAC - spr_template 1, 1, gOamData_83DBC14, gSpriteAnimTable_83DBC7C, NULL, gDummySpriteAffineAnimTable, sub_80E85F8 - - .align 2 -gUnknown_083DBCC4:: @ 83DBCC4 - .byte 1, 3, 5, 8, 10, 12, 15 - .byte 1, 3, 5, 8, 10, 12, 0 - .byte 1, 3, 5, 8, 10, 12, 14 - .byte 1, 3, 5, 8, 10, 12, 14 - - .align 2 -gOamData_83DBCE0:: @ 83DBCE0 - .2byte 0x0000 - .2byte 0x4000 - .2byte 0x0400 - - .align 2 -gSpriteAnim_83DBCE8:: @ 83DBCE8 - obj_image_anim_frame 0, 5 - obj_image_anim_end - - .align 2 -gSpriteAnim_83DBCF0:: @ 83DBCF0 - obj_image_anim_frame 4, 5 - obj_image_anim_end - - .align 2 -gSpriteAnimTable_83DBCF8:: @ 83DBCF8 - .4byte gSpriteAnim_83DBCE8 - .4byte gSpriteAnim_83DBCF0 - - .align 2 -gSpriteAnim_83DBD00:: @ 83DBD00 - obj_image_anim_frame 0, 5 - obj_image_anim_end - - .align 2 -gSpriteAnim_83DBD08:: @ 83DBD08 - obj_image_anim_frame 4, 5 - obj_image_anim_end - - .align 2 -gSpriteAnimTable_83DBD10:: @ 83DBD10 - .4byte gSpriteAnim_83DBD00 - .4byte gSpriteAnim_83DBD08 - - .align 2 -gSpriteTemplate_83DBD18:: @ 83DBD18 - spr_template 2, 0, gOamData_83DBCE0, gSpriteAnimTable_83DBCF8, NULL, gDummySpriteAffineAnimTable, sub_80E8B78 - - .align 2 -gUnknown_083DBD30:: @ 83DBD30 - obj_tiles gMenuInterviewFrame_Gfx, 2048, 0x0006 - - .align 2 -gUnknown_083DBD38:: @ 83DBD38 - obj_pal gMenuInterviewFrame_Pal, 0x0004 - - .align 2 -gOamData_83DBD40:: @ 83DBD40 - .2byte 0x0000 - .2byte 0xC000 - .2byte 0x0000 - - .align 2 -gSpriteTemplate_83DBD48:: @ 83DBD48 - spr_template 6, 4, gOamData_83DBD40, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy - - .align 2 -gUnknown_083DBD60:: @ 83DBD60 - obj_tiles gMenuWordGroupIndicator_Gfx, 4096, 0x0007 - - .align 2 -gUnknown_083DBD68:: @ 83DBD68 - obj_pal gMenuWordGroupIndicator_Pal, 0x0005 - - .align 2 -gOamData_83DBD70:: @ 83DBD70 - .2byte 0x4000 - .2byte 0xC000 - .2byte 0x0000 - - .align 2 -gSpriteAnim_83DBD78:: @ 83DBD78 - obj_image_anim_frame 96, 3 - obj_image_anim_end - - .align 2 -gSpriteAnim_83DBD80:: @ 83DBD80 - obj_image_anim_frame 64, 4 - obj_image_anim_frame 96, 4 - obj_image_anim_frame 64, 4 - obj_image_anim_frame 0, 4 - obj_image_anim_end - - .align 2 -gSpriteAnim_83DBD94:: @ 83DBD94 - obj_image_anim_frame 64, 4 - obj_image_anim_frame 96, 4 - obj_image_anim_frame 64, 4 - obj_image_anim_frame 32, 4 - obj_image_anim_end - - .align 2 -gSpriteAnim_83DBDA8:: @ 83DBDA8 - obj_image_anim_frame 64, 2 - obj_image_anim_frame 32, 2 - obj_image_anim_end - - .align 2 -gSpriteAnim_83DBDB4:: @ 83DBDB4 - obj_image_anim_frame 64, 2 - obj_image_anim_frame 0, 2 - obj_image_anim_end - - .align 2 -gSpriteAnim_83DBDC0:: @ 83DBDC0 - obj_image_anim_frame 64, 2 - obj_image_anim_frame 96, 2 - obj_image_anim_end - - .align 2 -gSpriteAnimTable_83DBDCC:: @ 83DBDCC - .4byte gSpriteAnim_83DBD78 - .4byte gSpriteAnim_83DBD80 - .4byte gSpriteAnim_83DBD94 - .4byte gSpriteAnim_83DBDA8 - .4byte gSpriteAnim_83DBDB4 - .4byte gSpriteAnim_83DBDC0 - - .align 2 -gSpriteTemplate_83DBDE4:: @ 83DBDE4 - spr_template 7, 5, gOamData_83DBD70, gSpriteAnimTable_83DBDCC, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy - -gUnknown_083DBDFC:: @ 83DBDFC - .incbin "graphics/unknown/unknown_3DBDFC.gbapal" - - .align 1 -gUnknown_083DBE1C:: @ 83DBE1C - .2byte 0x300, 0x300, 0x300, 0x300, 0x300, 0x300, 0x300, 0x300, 0x300 - .2byte 0x301, 0x301, 0x301, 0x301, 0x301, 0x300, 0x300, 0x300, 0x300 - -gUnknown_083DBE40:: @ 83DBE40 - .incbin "graphics/unknown/unknown_3DBE40.gbapal" - -@ unused tilemap? - .2byte 0x5036, 0x5037, 0x5038, 0x5039, 0x503A, 0x503B - .2byte 0x5046, 0x5047, 0x5048, 0x5049, 0x504A, 0x504B - .2byte 0x5056, 0x5057, 0x5058, 0x5059, 0x505A, 0x505B - .2byte 0x5030, 0x5031, 0x5032, 0x5033, 0x5034, 0x5035 - .2byte 0x5040, 0x5041, 0x5042, 0x5043, 0x5044, 0x5045 - .2byte 0x5050, 0x5051, 0x5052, 0x5053, 0x5054, 0x5055 - -gUnknown_083DBEA8:: @ 83DBEA8 - .string "{CLEAR_TO 88}$" - -.ifdef GERMAN -unk_83E7EB0: - .string "{UNKNOWN_14 8} A B C D E F {UNKNOWN_14 0}" -unk_83E7EC5: - .string "mehr$" -unk_83E7ECA:: - .string "{UNKNOWN_14 8} G H I J K L $" -unk_83E7EE1: - .string "{UNKNOWN_14 8} M N O P Q R S $" -unk_83E7EF8: - .string "{UNKNOWN_14 8} T U V W X Y Z $" -.endif - - .align 2 -gUnknown_083DBEAC:: @ 83DBEAC -.ifdef ENGLISH - .string "{UNKNOWN_14 8} A B C D E F {UNKNOWN_14 0}others$", 0x20 - .string "{UNKNOWN_14 8} G H I J K L $", 0x20 - .string "{UNKNOWN_14 8} M N O P Q R S $", 0x20 - .string "{UNKNOWN_14 8} T U V W X Y Z $", 0x20 -.else - .4byte unk_83E7EB0 - .4byte unk_83E7ECA - .4byte unk_83E7EE1 - .4byte unk_83E7EF8 - .4byte unk_83E7EC5 -.endif - @ 83DBF2C .include "data/text/easy_chat/group_words.inc" diff --git a/include/constants/easy_chat.h b/include/constants/easy_chat.h index 12350aebe..215dac48c 100644 --- a/include/constants/easy_chat.h +++ b/include/constants/easy_chat.h @@ -1,7 +1,7 @@ #ifndef GUARD_CONSTANTS_EASY_CHAT_H #define GUARD_CONSTANTS_EASY_CHAT_H -#define EC_GROUP_POKEMON 0x0 +#define EC_GROUP_POKEMON_1 0x0 #define EC_GROUP_TRAINER 0x1 #define EC_GROUP_STATUS 0x2 #define EC_GROUP_BATTLE 0x3 @@ -1053,7 +1053,7 @@ #define EC_WORD_YOUNG (EC_GROUP_TRENDY_SAYING << 9) | 0x1f #define EC_WORD_UGLY (EC_GROUP_TRENDY_SAYING << 9) | 0x20 -#define EC_POKEMON(mon) ((EC_GROUP_POKEMON << 9) | SPECIES_##mon) +#define EC_POKEMON(mon) ((EC_GROUP_POKEMON_1 << 9) | SPECIES_##mon) #define EC_POKEMON2(mon) ((EC_GROUP_POKEMON_2 << 9) | SPECIES_##mon) #define EC_MOVE(move) ((EC_GROUP_MOVE_1 << 9) | MOVE_##move) #define EC_MOVE2(move) ((EC_GROUP_MOVE_2 << 9) | MOVE_##move) diff --git a/include/dewford_trend.h b/include/dewford_trend.h index c12d0d740..16b2bdd75 100644 --- a/include/dewford_trend.h +++ b/include/dewford_trend.h @@ -2,6 +2,7 @@ #define GUARD_DEWFORDTREND_H void InitDewfordTrend(void); +bool8 sub_80FA364(u16 *a); void sub_80FA4E4(void *, u32, u8); void UpdateDewfordTrendPerDay(u16); diff --git a/include/easy_chat.h b/include/easy_chat.h index a6277fba8..a70d7ad0c 100644 --- a/include/easy_chat.h +++ b/include/easy_chat.h @@ -1,8 +1,126 @@ #ifndef GUARD_EASYCHAT_H #define GUARD_EASYCHAT_H +struct Sprite; + +struct UnknownEasyChatStruct1 +{ + u16 unk0; + u16 unk2; + u16 unk4; + u16 unk6; + void *unk8; +}; + +struct Shared1000 +{ + void (*unk0)(void); // main cb 2 + u16 *unk4; + u8 unk8; + u8 unk9; + u8 unkA; // length of unkC array + u8 unkB; // reporter talked to (Gabby or Ty) + u16 unkC[9]; + void (*unk20)(void); + u16 unk24; + u8 unk26; + u8 unk27; + u16 unk28; + u8 unk2A[11][2]; + u8 unk40[4][14]; + u8 unk78[5]; + u8 unk7D; + u8 unk7E[5]; + s8 unk83; + s8 unk84; + s8 unk85; + s8 unk86; + bool8 unk87; + u16 unk88; + u16 unk8A; + u8 unk8C[(0x96-0x8C)/2][2]; + u8 unk96; + u8 filler97; + struct Sprite *unk98; + struct Sprite *unk9C; + struct Sprite *unkA0; + struct Sprite *unkA4; + struct Sprite *unkA8; + struct Sprite *unkAC[2]; + struct Sprite *unkB4[2]; + u8 unkBC; + u8 fillerBD; + u16 unkBE; + u8 fillerC0[2]; + u16 unkC2; // length of unkC8 and unk148 arrays + u16 unkC4; + u8 fillerC6[2]; + u16 unkC8[(0x148-0xC8)/16][8]; + struct UnknownEasyChatStruct1 unk148[(0x1A8-0x148)/12]; + s8 unk1A8; + s8 unk1A9; + s8 unk1AA[0xB5-0xAA]; + s8 unk1B5; + s8 unk1B6; + s8 unk1B7; + u8 unk1B8; + u8 unk1B9; + u16 unk1BA; + u16 unk1BC; + u8 unk1BE; + s8 unk1BF; + s8 unk1C0; + u8 filler1C1[3]; + void (*unk1C4)(void); + u8 unk1C8[0x500]; + u8 unk6C8[0xB78-0x6C8]; +#if GERMAN + u16 unkB78[27][270]; +#else + u16 unkB78[27][255]; +#endif + u16 unk4142[(0x78-0x42)/2]; //0x446C + u16 unk4178[(0x41A4-0x4178)/2]; // unknown length + const u8 *ecWordStrings[0x16][0x100]; //0x44CE in german + s8 unk99A4; + s8 unk99A5; + s8 unk99A6[130]; + s8 unk9A28; + s8 unk9A29; + u16 unk9A2A[(0x9C32-0x9A2A)/4][2]; // unknown length + u8 unk9C32; + u8 filler9C33; + u16 unk9C34[3][9]; + u8 filler9C6A[2]; + s8 *unk9C6C; + u8 unk9C70; + s8 unk9C71; + u8 filler9C72[2]; + struct Sprite *unk9C74; + u8 filler9C78[4]; + u16 unk9C7C; // this is at 0x9FA8 in German + s16 unk9C7E; + u8 unk9C80[0xC9-0x80]; + u8 unk9CC9[0xD12-0xCC9]; + u8 unk9D12[0x5B-0x12]; + u8 unk9D5B[0xA4-0x5B]; + u8 unk9DA4[0xC9-0xA4]; + u8 unk9DC9[0xE14 - 0xDC9]; + u8 unk9E14[0xE41 - 0xE14]; + u8 unk9E41[0x6E - 0x41]; + u8 unk9E6E[0xEE - 0x6E]; + u8 unk9EEE[0xF6E - 0xEEE]; + u8 unk9F6E[0x8E - 0x6E]; // unknown length + u8 unk9F8E[7]; // unknown length +}; + extern u8 gUnknown_020388AC; +extern u8 gUnknown_03000740; + +// const pointer to shared1000. easy_chat might be two separate files. +extern struct Shared1000 *const gEasyChatStruct; +void sub_80E62A0(u8 arg0, u16 *arg1, void (*arg2)(void), u8 arg3); u16 sub_80EB72C(u16 group); void sub_80EB6FC(u16 *, u16); void InitEasyChatPhrases(void); @@ -19,7 +137,7 @@ u16 sub_80EB8EC(void); u8 *sub_80EB544(u8 *dst, u16 *words, u16 arg2, u16 arg3); #if GERMAN -u32 de_sub_80EB748(u32, u32); +u32 de_sub_80EB748(s32, s32); #endif #endif // GUARD_EASYCHAT_H diff --git a/include/field_map_obj.h b/include/field_map_obj.h index f0b0bb5ab..cf3be36b2 100644 --- a/include/field_map_obj.h +++ b/include/field_map_obj.h @@ -337,7 +337,7 @@ void RemoveFieldObjectInternal(struct MapObject *); u8 SpawnSpecialFieldObject(struct MapObjectTemplate *); u8 show_sprite(u8, u8, u8); void MakeObjectTemplateFromFieldObjectTemplate(struct MapObjectTemplate *mapObjTemplate, struct SpriteTemplate *sprTemplate, const struct SubspriteTable **subspriteTables); -u8 AddPseudoFieldObject(u16 graphicsId, void (*callback)(struct Sprite *), s16 c, s16 d, u8 subpriority); +u8 AddPseudoFieldObject(u16 graphicsId, void (*callback)(struct Sprite *), s16 x, s16 y, u8 subpriority); u8 sub_805B410(u8, u8, s16, s16, u8, u8); void sub_805B55C(s16 a, s16 b); void sub_805B710(u16 i, u16 i1); diff --git a/include/global.h b/include/global.h index 76300d36d..0764718ca 100644 --- a/include/global.h +++ b/include/global.h @@ -33,7 +33,7 @@ int strcmp (const char *, const char *); #define POKEMON_NAME_LENGTH 10 #define OT_NAME_LENGTH 7 -#define min(a, b) ((a) <= (b) ? (a) : (b)) +#define min(a, b) ((a) < (b) ? (a) : (b)) #define max(a, b) ((a) >= (b) ? (a) : (b)) // why does GF hate 2d arrays @@ -682,7 +682,7 @@ struct SaveBlock1 /* 0x02025734 */ /*0x2B40*/ u16 unk2B40[6]; } easyChats; /*0x2B4C*/ struct MailStruct mail[16]; - /*0x2D8C*/ u8 unk2D8C[4]; + /*0x2D8C*/ u8 unk2D8C[4]; // What is this? Apparently it's supposed to be 64 bytes in size. /*0x2D90*/ u8 filler_2D90[0x4]; /*0x2D94*/ union MauvilleMan mauvilleMan; /*0x2DD4*/ struct EasyChatPair easyChatPairs[5]; //Dewford trend [0] and some other stuff diff --git a/include/graphics.h b/include/graphics.h index 17abb840e..42e6fd5c6 100644 --- a/include/graphics.h +++ b/include/graphics.h @@ -2656,22 +2656,33 @@ extern const u8 gNamingScreenRightPointingTriangleTiles[]; extern const u8 gNamingScreenUnderscoreTiles[]; extern const u16 gNamingScreenPalettes[][16]; -extern const u8 gSpriteImage_8E988E8[]; -extern const u8 gSpriteImage_8E98968[]; -extern const u8 gSpriteImage_8E989E8[]; -extern const u8 gSpriteImage_8E98A68[]; -extern const u8 gSpriteImage_8E98AE8[]; -extern const u8 gSpriteImage_8E98B68[]; -extern const u8 gSpriteImage_8E991E8[]; -extern const u8 gSpriteImage_8E99808[]; -extern const u8 gSpriteImage_8E98BE8[]; -extern const u8 gSpriteImage_8E98CE8[]; -extern const u8 gSpriteImage_8E993E8[]; -extern const u8 gSpriteImage_8E98DE8[]; -extern const u8 gSpriteImage_8E98FE8[]; -extern const u8 gSpriteImage_8E98848[]; -extern const u8 gSpriteImage_8E98868[]; -extern const u8 gSpriteImage_8E98828[]; +extern const u8 gMenuWordGroupIndicator_Gfx[]; +extern const u8 gMenuWordGroupFrame_Gfx[]; +extern const u16 gMenuWordGroupIndicator_Pal[]; +extern const u16 gMenuWordGroupFrame1_Pal[]; +extern const u16 gMenuWordGroupFrame2_Pal[]; + +extern const u8 gUnknown_08E94510[]; +extern const u8 gUnknown_08E94550[]; +extern const u8 gUnknown_08E94590[]; +extern const u8 gUnknown_08E945D0[]; +extern const u8 gUnknown_08E94AD0[]; +extern const u8 gUnknown_08E953D0[]; +extern const u8 gUnknown_08E954B0[]; +extern const u8 gUnknown_08E95774[]; +extern const u16 gUnknown_08E95A18[]; +extern const u16 gUnknown_08E95AB8[]; +extern const u16 gUnknown_08E95FB8[]; + +extern const u16 gSlotMachineSpritePalette0[]; +extern const u16 gSlotMachineSpritePalette1[]; +extern const u16 gSlotMachineSpritePalette2[]; +extern const u16 gSlotMachineSpritePalette3[]; +extern const u16 gSlotMachineSpritePalette4[]; +extern const u16 gSlotMachineSpritePalette5[]; +extern const u16 gSlotMachineSpritePalette6[]; +extern const u8 gSlotMachine_Gfx[]; + extern const u8 gSlotMachineReelSymbol1Tiles[]; extern const u8 gSlotMachineReelSymbol2Tiles[]; extern const u8 gSlotMachineReelSymbol3Tiles[]; @@ -2689,18 +2700,40 @@ extern const u8 gSlotMachineNumber6Tiles[]; extern const u8 gSlotMachineNumber7Tiles[]; extern const u8 gSlotMachineNumber8Tiles[]; extern const u8 gSlotMachineNumber9Tiles[]; +extern const u8 gSpriteImage_8E98828[]; +extern const u8 gSpriteImage_8E98848[]; +extern const u8 gSpriteImage_8E98868[]; +extern const u8 gSpriteImage_8E988E8[]; +extern const u8 gSpriteImage_8E98968[]; +extern const u8 gSpriteImage_8E989E8[]; +extern const u8 gSpriteImage_8E98A68[]; +extern const u8 gSpriteImage_8E98AE8[]; +extern const u8 gSpriteImage_8E98B68[]; +extern const u8 gSpriteImage_8E98BE8[]; +extern const u8 gSpriteImage_8E98CE8[]; +extern const u8 gSpriteImage_8E98DE8[]; +extern const u8 gSpriteImage_8E98FE8[]; +extern const u8 gSpriteImage_8E991E8[]; +extern const u8 gSpriteImage_8E993E8[]; extern const u8 gUnknownPalette_08E997E8[]; -extern const u16 gSlotMachineSpritePalette0[]; -extern const u16 gSlotMachineSpritePalette1[]; -extern const u16 gSlotMachineSpritePalette2[]; -extern const u16 gSlotMachineSpritePalette3[]; -extern const u16 gSlotMachineSpritePalette4[]; -extern const u16 gSlotMachineSpritePalette5[]; -extern const u16 gSlotMachineSpritePalette6[]; -extern const u8 gSlotMachine_Gfx[]; +extern const u8 gSpriteImage_8E99808[]; extern const u8 gSlotMachineReelTimeLights_Gfx[]; -extern const u16 gUnknown_08E95A18[]; -extern const u16 gUnknown_08E95AB8[]; -extern const u16 gUnknown_08E95FB8[]; +extern const u8 gUnknown_08E99FB0[]; +extern const u8 gUnknown_08E9A100[]; +extern const u8 gUnknown_08E9A300[]; +extern const u8 gUnknown_08E9AB00[]; +extern const u8 gUnknown_08E9AB40[]; +extern const u8 gUnknown_08E9AB60[]; +extern const u8 gUnknown_08E9ABB4[]; +extern const u8 gUnknown_08E9AC2C[]; +extern const u8 gUnknown_08E9AC4C[]; + +extern const u8 gInterviewOutlineCursorTiles[]; +extern const u8 gTitleScreenPressStart_Gfx[]; +extern const u16 gTitleScreenLogoShinePalette[]; +extern const u8 gUnknown_08E9D8CC[]; +extern const u8 gVersionTiles[]; +extern const u16 gUnknown_08E9F624[]; +extern const u8 gUnknown_08E9F7E4[]; #endif // GUARD_GRAPHICS_H diff --git a/ld_script.txt b/ld_script.txt index 3d63bca17..5bfc8b171 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -302,8 +302,8 @@ SECTIONS { asm/normal.o(.text); asm/battle_intro.o(.text); src/field/bike.o(.text); - asm/easy_chat.o(.text); - src/field/easy_chat.o(.text); + src/easy_chat_1.o(.text); + src/easy_chat_2.o(.text); src/pokenav_before.o(.text); asm/pokenav.o(.text); src/pokenav_after.o(.text); @@ -541,6 +541,8 @@ SECTIONS { src/field/item_use.o(.rodata); data/battle_anim_80CA710.o(.rodata); src/field/bike.o(.rodata); + src/easy_chat_1.o(.rodata); + src/easy_chat_2.o(.rodata); data/easy_chat.o(.rodata); data/pokenav.o(.rodata); src/pokemon/mon_markings.o(.rodata); diff --git a/src/easy_chat_1.c b/src/easy_chat_1.c new file mode 100644 index 000000000..a1a67152e --- /dev/null +++ b/src/easy_chat_1.c @@ -0,0 +1,1742 @@ +#include "global.h" +#include "constants/easy_chat.h" +#include "constants/songs.h" +#include "constants/species.h" +#include "dewford_trend.h" +#include "easy_chat.h" +#include "event_data.h" +#include "ewram.h" +#include "graphics.h" +#include "main.h" +#include "menu.h" +#include "palette.h" +#include "sound.h" +#include "sprite.h" +#include "string_util.h" +#include "strings.h" +#include "unknown_task.h" + +extern const struct WindowConfig gWindowConfig_81E6D54; +extern const struct WindowConfig gWindowConfig_81E6DA8; + +extern void sub_80546B8(void); + +const u16 gMysteryEventPhrase[] = {EC_WORD_MYSTERY, EC_WORD_EVENT, EC_WORD_IS, EC_WORD_EXCITING}; + +const u16 gBerryMasterWifePhrases[][2] = +{ +#if ENGLISH + {EC_WORD_GREAT, EC_WORD_BATTLE}, + {EC_WORD_CHALLENGE, EC_WORD_CONTEST}, + {EC_WORD_OVERWHELMING, EC_POKEMON(LATIAS)}, + {EC_WORD_COOL, EC_POKEMON(LATIOS)}, + {EC_WORD_SUPER, EC_WORD_HUSTLE}, +#else + {EC_WORD_GREAT, EC_WORD_FIGHT}, + {EC_WORD_CONTEST, EC_WORD_CHALLENGE}, + {EC_POKEMON(LATIAS), EC_WORD_OVERWHELMING}, + {EC_POKEMON(LATIOS), EC_WORD_COOL}, + {EC_WORD_SUPER, 0xFFFF}, +#endif +}; + +// const pointer to gEasyChatStruct-> easy_chat might be two separate files. +struct Shared1000 *const gEasyChatStruct = (struct Shared1000 *)(gSharedMem + 0x1000); + +const struct UnknownTaskStruct gUnknown_083DB698 = +{ + ®_BG3VOFS, + ((DMA_ENABLE | DMA_START_HBLANK | DMA_REPEAT | DMA_DEST_RELOAD) << 16) | 1, + 1 +}; + +const u8 gUnknown_083DB6A4[] = {4, 0, 0, 0, 1, 5, 0, 2, 2, 3, 2, 2, 2, 3}; + +// choose by alphabet keyboard +const u8 gUnknown_083DB6B2[][16] = +{ + _("ABCDEF "), + _("GHIJKL"), + _("MNOPQRS"), + _("TUVWXYZ"), +}; + +struct EasyChatPrompt +{ + const u8 *text1; + const u8 *text2; + bool8 unk8; +}; + +const struct EasyChatPrompt gUnknown_083DB6F4[] = +{ + {OtherText_MakeProfilePage1, OtherText_MakeProfilePage2, TRUE}, + {OtherText_MakeMessagePage1, OtherText_MakeMessagePage2, TRUE}, + {OtherText_CombineNinePhrasesPage1, OtherText_CombineNinePhrasesPage2, TRUE}, + {OtherText_DescribeFeelingsPage1, OtherText_DescribeFeelingsPage2, TRUE}, + {OtherText_ImproveBardSongPage1, OtherText_ImproveBardSongPage2, TRUE}, + {OtherText_CombineTwoPhrasesPage1, OtherText_CombineTwoPhrasesPage2, TRUE}, + {OtherText_YourProfile, OtherText_ConfirmTrendyPage2, FALSE}, + {OtherText_YourFeelingBattle, OtherText_ConfirmTrendyPage2, TRUE}, + {OtherText_SetWinMessage, OtherText_ConfirmTrendyPage2, TRUE}, + {OtherText_SetLossMessage, OtherText_ConfirmTrendyPage2, TRUE}, + {OtherText_MailMessage, OtherText_ConfirmTrendyPage2, TRUE}, + {OtherText_MailSalutation, OtherText_ConfirmTrendyPage2, TRUE}, + {OtherText_NewSong, OtherText_ConfirmTrendyPage2, FALSE}, + {OtherText_TheAnswer, OtherText_ConfirmTrendyPage2, FALSE}, + {OtherText_ConfirmTrendyPage1, OtherText_ConfirmTrendyPage2, TRUE}, + {OtherText_HipsterPage1, OtherText_HipsterPage2, TRUE}, + {OtherText_WithFourPhrases, OtherText_CombineNinePhrasesPage2, TRUE}, +}; + +const u8 gUnknown_083DB7C0[][2] = +{ + { 0, 6}, + { 1, 7}, + { 1, 8}, + { 1, 9}, + { 2, 10}, + {16, 13}, + { 4, 12}, + { 3, 13}, + { 3, 13}, + { 5, 14}, + { 3, 13}, + { 3, 13}, + { 3, 13}, + {15, 13}, +}; + +void sub_80E62F8(void); +void sub_80E6424(void); +void sub_80E6554(void); +void sub_80E6630(void); +void sub_80E6690(void); +void sub_80E682C(void (*)(void)); +void sub_80E69F8(void); +void sub_80E6A6C(void); +void sub_80E6A88(void); +void sub_80E6AA8(void); +void sub_80E6AC4(void); +void sub_80E6AE4(void); +void sub_80E6BC0(void); +void sub_80E6C84(void); +void sub_80E6D7C(void); +void sub_80E6F68(void); +void sub_80E6FC8(void); +void sub_80E7114(void); +void sub_80E718C(void); +void sub_80E7218(void); +void sub_80E7294(void); +void sub_80E7324(void); +void sub_80E73D0(void); +void sub_80E7458(void); +void sub_80E752C(void); +void sub_80E7574(void); +bool8 sub_80E75D8(void); +bool8 sub_80E77C8(void); +void sub_80E7A98(void); +void sub_80E7AD4(void); +bool8 sub_80E7B40(void); +void sub_80E7D30(void); +void sub_80E7D6C(void); +void sub_80E7D9C(void); +bool8 sub_80E7DD0(void); +void sub_80E7E50(void); +void sub_80E7F00(u16, u16); +u8 sub_80E7FA8(void); +bool8 sub_80E8054(void); +u8 sub_80E8094(void); +u8 sub_80E810C(void); +void sub_80E81C0(void); +void sub_80E81FC(void); +void sub_80E8218(void); + +void sub_80E8398(); +void sub_80E8420(void); +void sub_80E8504(void); +void sub_80E87CC(); + +void sub_80E88F0(void); +void sub_80E8958(); + +void sub_80E8BF4(); +void sub_80E8CEC(void); +void sub_80E8D54(void); +void sub_80E8D8C(); +void sub_80E8DD8(void); +void sub_80E91D4(); +void sub_80E9368(); +void sub_80E95A4(void); +void sub_80E9744(void); +void sub_80E98C4(void); +void sub_80E9974(void); +void sub_80E9A14(void); +void sub_80E9A4C(void); +void sub_80E9AD4(void); +void sub_80E9C94(void); +void sub_80E9D00(void); +void sub_80E9D7C(void); +void sub_80E9E08(); +bool8 sub_80E9E54(void); +void sub_80E9E98(void); +u8 sub_80E9EA8(void); +u8 sub_80E9F50(void); +u8 sub_80E9FD4(void); +u8 sub_80EA014(void); +u8 sub_80EA050(void); +u8 sub_80EA0E4(void); +u8 sub_80EA184(void); +void sub_80EAC5C(void); +void sub_80EAD08(void); +u8 sub_80EAD7C(u8); +void sub_80EAECC(void); +void LoadEasyChatStrings(void); +void sub_80EB0B0(void); +u8 *sub_80EB218(u8 *, u16, u16); +u16 sub_80EB2D4(); +bool8 sub_80EB680(u16 *, u16, u16, u16); + +void sub_80E60D8(void) +{ + u8 r4 = 3; + u16 *r1; + + switch (gSpecialVar_0x8004) + { + case 0: + r1 = gSaveBlock1.easyChats.unk2B1C; + break; + case 1: + r1 = gSaveBlock1.easyChats.unk2B28; + break; + case 2: + r1 = gSaveBlock1.easyChats.unk2B34; + break; + case 3: + r1 = gSaveBlock1.easyChats.unk2B40; + break; + case 4: + r1 = gSaveBlock1.mail[gSpecialVar_0x8005].words; + break; + case 6: + { + struct MauvilleManBard *bard = &gSaveBlock1.mauvilleMan.bard; + u16 i; + for (i = 0; i < 6; i++) + bard->temporaryLyrics[i] = bard->songLyrics[i]; + r1 = bard->temporaryLyrics; + } + break; + case 5: + // TODO: Is this the right TV show? + r1 = gSaveBlock1.tvShows[gSpecialVar_0x8005].fanclubLetter.pad04; + r4 = gSpecialVar_0x8006; + break; + case 7: + // TODO: Is this the right TV show? + r1 = &gSaveBlock1.tvShows[gSpecialVar_0x8005].fanclubOpinions.var1C[gSpecialVar_0x8006]; + r4 = 1; + break; + case 8: + // TODO: Is this the right TV show? + r1 = &gSaveBlock1.tvShows[gSpecialVar_0x8005].fanclubOpinions.var02; + r4 = 0; + break; + case 9: + r1 = NULL; + break; + case 10: + r1 = &gSaveBlock1.gabbyAndTyData.quote; + *r1 = 0xFFFF; + r4 = 1; + break; + case 11: + // TODO: Is this the right TV show? + r1 = &gSaveBlock1.tvShows[gSpecialVar_0x8005].bravoTrainer.var04[gSpecialVar_0x8006]; + r4 = 0; + break; + case 12: + // TODO: Is this the right TV show? + r1 = gSaveBlock1.tvShows[gSpecialVar_0x8005].bravoTrainerTower.var18; + r4 = 1; + break; + case 13: + gEasyChatStruct->unk9C7C = 0xFFFF; + gEasyChatStruct->unk9C7E = -1; + r1 = &gEasyChatStruct->unk9C7C; + break; + default: + return; + } + sub_80E62A0(gSpecialVar_0x8004, r1, sub_80546B8, r4); +} + +void sub_80E62A0(u8 a, u16 *b, void (*c)(void), u8 d) +{ + gEasyChatStruct->unk0 = c; + gEasyChatStruct->unk4 = b; + gEasyChatStruct->unk8 = a; + gEasyChatStruct->unkB = d; + if (a == 9) + { + gEasyChatStruct->unk4 = &gEasyChatStruct->unk9C7C; + gEasyChatStruct->unk9C7C = gSaveBlock1.easyChatPairs[0].words[0]; + gEasyChatStruct->unk9C7E = gSaveBlock1.easyChatPairs[0].words[1]; + } + SetMainCallback2(sub_80E62F8); +} + +void sub_80E62F8(void) +{ + switch (gMain.state) + { + case 0: + default: + REG_DISPCNT = 0; + SetVBlankCallback(0); + ResetPaletteFade(); + ResetSpriteData(); + dp12_8087EA4(); + remove_some_task(); + sub_80EAD08(); + sub_80895F8(gUnknown_083DB698); + FreeSpriteTileRanges(); + FreeAllSpritePalettes(); + break; + case 1: + SetUpWindowConfig(&gWindowConfig_81E6DA8); + break; + case 2: + InitMenuWindow(&gWindowConfig_81E6D54); + InitMenuWindow(&gWindowConfig_81E6DA8); + MenuZeroFillScreen(); + break; + case 3: + sub_80E6424(); + break; + case 4: + sub_80E8DD8(); + break; + case 5: + sub_80E8218(); + sub_80E8CEC(); + break; + case 6: + sub_80E69F8(); + sub_80E682C(sub_80E6AA8); + SetVBlankCallback(sub_80E6A6C); + break; + case 7: + BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, 0); + break; + case 8: + REG_DISPCNT = 0x1F40; + SetMainCallback2(sub_80E6A88); + FlagSet(FLAG_SYS_CHAT_USED); + break; + } + gMain.state++; +} + +void sub_80E6424(void) +{ + gEasyChatStruct->unk9 = gUnknown_083DB6A4[gEasyChatStruct->unk8]; + switch (gEasyChatStruct->unk9) + { + case 4: + gEasyChatStruct->unkA = 4; + gEasyChatStruct->unk83 = 2; + gEasyChatStruct->unk84 = 2; + gEasyChatStruct->unk88 = 5; + gEasyChatStruct->unk8A = 4; + break; + case 5: + gEasyChatStruct->unkA = 4; + gEasyChatStruct->unk83 = 1; + gEasyChatStruct->unk84 = 4; + gEasyChatStruct->unk88 = 16; + gEasyChatStruct->unk8A = 2; + break; + case 0: + gEasyChatStruct->unkA = 6; + gEasyChatStruct->unk83 = 2; + gEasyChatStruct->unk84 = 3; + gEasyChatStruct->unk88 = 4; + gEasyChatStruct->unk8A = 3; + break; + case 1: + gEasyChatStruct->unkA = 9; + gEasyChatStruct->unk83 = 2; + gEasyChatStruct->unk84 = 5; + gEasyChatStruct->unk88 = 4; + gEasyChatStruct->unk8A = 0; + break; + case 2: + gEasyChatStruct->unkA = 1; + gEasyChatStruct->unk83 = 1; + gEasyChatStruct->unk84 = 1; + gEasyChatStruct->unk88 = 16; + gEasyChatStruct->unk8A = 4; + break; + case 3: + gEasyChatStruct->unkA = 2; + gEasyChatStruct->unk83 = 2; + gEasyChatStruct->unk84 = 1; + gEasyChatStruct->unk88 = 5; + gEasyChatStruct->unk8A = 3; + break; + } + gEasyChatStruct->unk86 = 0; + gEasyChatStruct->unk85 = 0; + gEasyChatStruct->unk87 = 0; + gEasyChatStruct->unk26 = 0; + gEasyChatStruct->unk1BA = 0; + gEasyChatStruct->unk1BE = 2; + sub_80E6554(); + sub_80EAECC(); + LoadEasyChatStrings(); + sub_80E7E50(); + sub_80E6630(); + sub_80E6690(); +} + +void sub_80E6554(void) +{ + u16 r4 = 0; + u16 r7; + u16 r5; + + for (r7 = 0; ; r7++) + { + for (r5 = 0; r5 < 2; r5++) + { + gEasyChatStruct->unk2A[r7][r5] = r4++; + if (r4 == 17) + break; + } + if (r4 == 17) + break; + } + gEasyChatStruct->unk28 = 17; + while (r4 < 22) + { + if (sub_80EAD7C(r4) != 0) + { + r5++; + if (r5 > 1) + { + r7++; + r5 = 0; + } + gEasyChatStruct->unk2A[r7][r5] = r4; + gEasyChatStruct->unk78[r4 - 17] = 1; // hmm... + gEasyChatStruct->unk28++; + } + else + { + gEasyChatStruct->unk78[r4 - 17] = 0; + } + r4++; + } + gEasyChatStruct->unk1B6 = (gEasyChatStruct->unk28 + 1) / 2; +} + +void sub_80E6630(void) +{ + u8 i; + u8 r3; + + for (i = 0; i < 4; i++) + { + const u8 *row = gUnknown_083DB6B2[i]; + + for (r3 = 0; row[r3] != EOS; r3++) + { + if (row[r3] != CHAR_SPACE) + gEasyChatStruct->unk40[i][r3] = row[r3] + 0x46; + else + gEasyChatStruct->unk40[i][r3] = CHAR_SPACE; + } + } +} + +void sub_80E6690(void) +{ + u8 *pointers[] = + { + gEasyChatStruct->unk9C80, gEasyChatStruct->unk9CC9, + gEasyChatStruct->unk9D12, gEasyChatStruct->unk9D5B, + }; + u8 *r3; + u16 i; + + for (i = 0; i < 2; i++) + { + const struct EasyChatPrompt *prompt = &gUnknown_083DB6F4[gUnknown_083DB7C0[gEasyChatStruct->unk8][i]]; + + r3 = StringCopy(pointers[i * 2 + 0], prompt->text1); + if (prompt->unk8) + { + StringCopy(pointers[i * 2 + 1], prompt->text2); + } + else + { + *r3++ = CHAR_SPACE; + StringCopy(r3, prompt->text2); + *pointers[i * 2 + 1] = EOS; + } + } + + for (i = 0; i < 0x24; i++) + gEasyChatStruct->unk9DA4[i] = 0; + gEasyChatStruct->unk9DA4[i] = 0xFF; + + r3 = gEasyChatStruct->unk9F6E; + r3[0] = EXT_CTRL_CODE_BEGIN; + r3[1] = 0x11; + r3[2] = 0xE0; + r3[3] = 0xFF; +} + +// Default profile phrase +const u16 gUnknown_083DB7EC[] = +{ +#if ENGLISH + EC_WORD_I_AM, + EC_WORD_A, + EC_WORD_POKEMON, + EC_WORD_GREAT, +#else + EC_WORD_I_AM, + EC_WORD_BIG, + EC_WORD_IN, + EC_WORD_POKEMON, +#endif +}; + +const u16 gUnknown_083DB7F4[] = +{ + EC_WORD_ARE, + EC_WORD_YOU, + EC_WORD_READY, + EC_WORD_QUES, + EC_WORD_HERE_I_COME, + EC_WORD_EXCL, +}; + +// ResetDefaultEasyChatPhrases +void InitEasyChatPhrases(void) +{ + u16 i; + u16 j; + + for (i = 0; i < 4; i++) + gSaveBlock1.easyChats.unk2B1C[i] = gUnknown_083DB7EC[i]; + + for (i = 0; i < 6; i++) + gSaveBlock1.easyChats.unk2B28[i] = gUnknown_083DB7F4[i]; + + for (i = 0; i < 6; i++) + { + gSaveBlock1.easyChats.unk2B34[i] = 0xFFFF; + gSaveBlock1.easyChats.unk2B40[i] = 0xFFFF; + } + + for (i = 0; i < 16; i++) + { + for (j = 0; j < 9; j++) + gSaveBlock1.mail[i].words[j] = 0xFFFF; + } + + for (i = 0; i < 64; i++) + gSaveBlock1.unk2D8C[i] = 0; +} + +void sub_80E682C(void (*func)(void)) +{ + gEasyChatStruct->unk20 = func; + gEasyChatStruct->unk24 = 0; +} + +void sub_80E683C(void) +{ + u16 i; + + if (gEasyChatStruct->unk26 == 0) + { + for (i = 0; i < gEasyChatStruct->unk1B6; i++) + gEasyChatStruct->unk1AA[i] = 2; + gEasyChatStruct->unk1AA[i - 1] = gEasyChatStruct->unk28 % 2; + if (gEasyChatStruct->unk1AA[i - 1] == 0) + gEasyChatStruct->unk1AA[i - 1] = 2; + } + else + { + gEasyChatStruct->unk1AA[0] = 7; + gEasyChatStruct->unk1AA[1] = 6; + gEasyChatStruct->unk1AA[2] = 7; + gEasyChatStruct->unk1AA[3] = 7; + } + gEasyChatStruct->unk1A8 = 0; + gEasyChatStruct->unk1A9 = 0; + gEasyChatStruct->unk1B5 = 0; + gEasyChatStruct->unk1B7 = 0; + sub_80E9A4C(); +} + +void sub_80E68E8(void) +{ + sub_80EB0B0(); + if (gEasyChatStruct->unk26 == 0) + { + u16 i; + u8 r6; + + r6 = gEasyChatStruct->unk1B8; + gEasyChatStruct->unk9A28 = (gEasyChatStruct->unk4178[r6] + 1) / 2; + for (i = 0; i < gEasyChatStruct->unk9A28; i++) + gEasyChatStruct->unk99A6[i] = 2; + i--; + gEasyChatStruct->unk99A6[i] = gEasyChatStruct->unk4178[r6] % 2; + if (gEasyChatStruct->unk99A6[i] == 0) + gEasyChatStruct->unk99A6[i] = 2; + } + else + { + u16 i; + u8 r6; + + r6 = gEasyChatStruct->unk1B8; + gEasyChatStruct->unk9A28 = (gEasyChatStruct->unk4142[r6] + 1) / 2; + for (i = 0; i < gEasyChatStruct->unk9A28; i++) + gEasyChatStruct->unk99A6[i] = 2; + i--; + gEasyChatStruct->unk99A6[i] = gEasyChatStruct->unk4142[r6] % 2; + if (gEasyChatStruct->unk99A6[i] == 0) + gEasyChatStruct->unk99A6[i] = 2; + } + gEasyChatStruct->unk99A4 = 0; + gEasyChatStruct->unk99A5 = 0; + gEasyChatStruct->unk9A29 = 0; + sub_80E9A4C(); +} + +void sub_80E69F8(void) +{ + switch (gEasyChatStruct->unk8) + { + case 0: + case 1: + case 2: + case 3: + case 4: + case 6: + case 9: + case 13: + default: + sub_80E9368(gEasyChatStruct->unk8); + break; + case 5: + case 7: + case 8: + case 10: + case 11: + case 12: + sub_80E9368(gEasyChatStruct->unk8); + sub_80E8BF4(gEasyChatStruct->unkB, gEasyChatStruct->unk9); + break; + } +} + +void sub_80E6A6C(void) +{ + LoadOam(); + ProcessSpriteCopyRequests(); + sub_80EAC5C(); + TransferPlttBuffer(); + sub_8089668(); +} + +void sub_80E6A88(void) +{ + gEasyChatStruct->unk20(); + AnimateSprites(); + BuildOamBuffer(); + sub_80EAD08(); +} + +void sub_80E6AA8(void) +{ + if (!UpdatePaletteFade()) + sub_80E682C(sub_80E6AC4); +} + +void sub_80E6AC4(void) +{ + sub_80E88F0(); + sub_80E8398(0); + sub_80E91D4(0); + sub_80E682C(sub_80E6AE4); +} + +void sub_80E6AE4(void) +{ + gEasyChatStruct->unk87 = sub_80E75D8(); + if (gEasyChatStruct->unk87) + PlaySE(SE_SELECT); + if (gMain.newKeys & A_BUTTON) + { + PlaySE(SE_SELECT); + if (gEasyChatStruct->unk86 == gEasyChatStruct->unk84) + { + switch (gEasyChatStruct->unk85) + { + case 0: + sub_80E682C(sub_80E6BC0); + return; + case 1: + sub_80E682C(sub_80E6C84); + return; + case 2: + sub_80E682C(sub_80E6D7C); + return; + } + } + else + { + gEasyChatStruct->unk27 = gEasyChatStruct->unk86 * gEasyChatStruct->unk83 + gEasyChatStruct->unk85; + sub_80E7574(); + sub_80E682C(sub_80E6F68); + return; + } + } + if (gMain.newKeys & B_BUTTON) + { + sub_80E682C(sub_80E6C84); + } +} + +void sub_80E6BC0(void) +{ + switch (gEasyChatStruct->unk24) + { + case 0: + sub_80E8398(2); + if (gEasyChatStruct->unk8 == 6) + { + sub_80E91D4(6); + gEasyChatStruct->unk24 = 100; + } + else + { + sub_80E91D4(2); + DisplayYesNoMenu(23, 8, 1); + MoveMenuCursor(1); + gEasyChatStruct->unk24++; + } + break; + case 1: + switch (ProcessMenuInputNoWrap_()) + { + case 0: + sub_80E7D6C(); + sub_80E98C4(); + sub_80E95A4(); + gEasyChatStruct->unk24++; + break; + case -1: + case 1: + gEasyChatStruct->unk24++; + break; + } + break; + case 2: + sub_80E81FC(); + sub_80E682C(sub_80E6AC4); + break; + case 100: + if (gMain.newKeys & (A_BUTTON | B_BUTTON)) + sub_80E682C(sub_80E6AC4); + break; + } +} + +void sub_80E6C84(void) +{ + switch (gEasyChatStruct->unk24) + { + case 0: + sub_80E8398(2); + sub_80E91D4(3); + DisplayYesNoMenu(23, 8, 0); + MoveMenuCursor(1); + if (gEasyChatStruct->unk8 == 9 + || gEasyChatStruct->unk8 == 4 + || gEasyChatStruct->unk8 == 7 + || gEasyChatStruct->unk8 == 8 + || gEasyChatStruct->unk8 == 10 + || gEasyChatStruct->unk8 == 11 + || gEasyChatStruct->unk8 == 12 + || gEasyChatStruct->unk8 == 5 + || gEasyChatStruct->unk8 == 13) + gEasyChatStruct->unk24 = 2; + else + gEasyChatStruct->unk24++; + break; + case 1: + switch (ProcessMenuInputNoWrap_()) + { + case 0: + sub_80E91D4(4); + DisplayYesNoMenu(23, 8, 0); + MoveMenuCursor(1); + gEasyChatStruct->unk24++; + break; + case -1: + case 1: + gEasyChatStruct->unk24 = 0xFF; + break; + } + break; + case 2: + switch (ProcessMenuInputNoWrap_()) + { + case 0: + gSpecialVar_Result = 0; + sub_80E682C(sub_80E752C); + break; + case -1: + case 1: + gEasyChatStruct->unk24 = 0xFF; + break; + } + break; + case 0xFF: + HandleDestroyMenuCursors(); + sub_80E81FC(); + sub_80E682C(sub_80E6AC4); + break; + } +} + +void sub_80E6D7C(void) +{ + switch (gEasyChatStruct->unk24) + { + case 0: + sub_80E8398(2); + if (sub_80E8054()) + { + sub_80E91D4(5); + gEasyChatStruct->unk24 = 10; + break; + } + if (gEasyChatStruct->unk8 == 9) + { + if (sub_80E7FA8() == 0) + { + sub_80E91D4(8); + gEasyChatStruct->unk24 = 10; + break; + } + if (gEasyChatStruct->unkC[0] == 0xFFFF || gEasyChatStruct->unkC[1] == 0xFFFF) + { + sub_80E91D4(9); + gEasyChatStruct->unk24 = 10; + break; + } + } + if (gEasyChatStruct->unk8 == 4 && sub_80E7FA8() == 0) + { + sub_80E682C(sub_80E6C84); + } + else + { + sub_80E91D4(1); + sub_80E9744(); + DisplayYesNoMenu(23, 8, 0); + MoveMenuCursor(0); + gEasyChatStruct->unk24++; + } + break; + case 1: + switch (ProcessMenuInputNoWrap_()) + { + case 0: + gSpecialVar_Result = (sub_80E7FA8() != 0); + sub_80E7D9C(); + if (gEasyChatStruct->unk8 == 0) + gSpecialVar_0x8004 = sub_80E8094(); + if (gEasyChatStruct->unk8 == 9) // dewford trend? + { + sub_80E81C0(); + gSpecialVar_0x8004 = sub_80FA364(&gEasyChatStruct->unk9C7C); + } + if (gEasyChatStruct->unk8 == 13) + { + if (gEasyChatStruct->unkC[0] == 0xFFFF || gEasyChatStruct->unkC[1] == 0xFFFF) + gSpecialVar_Result = 0; + gSpecialVar_0x8004 = sub_80E810C(); + } + sub_80E682C(sub_80E752C); + break; + case -1: + case 1: + HandleDestroyMenuCursors(); + sub_80E81FC(); + if (gEasyChatStruct->unk8 == 6 && sub_80E7FA8() != 0) + { + gEasyChatStruct->unk24 = 100; + } + else + { + sub_80E95A4(); + sub_80E682C(sub_80E6AC4); + } + break; + } + break; + case 10: + if (gMain.newKeys & (A_BUTTON | B_BUTTON)) + sub_80E682C(sub_80E6AC4); + break; + case 100: + sub_80E91D4(7); + gEasyChatStruct->unk24++; + // fall through + case 101: + if (gMain.newKeys & A_BUTTON) + gEasyChatStruct->unk24++; + break; + case 102: + sub_80E7E50(); + sub_80E95A4(); + sub_80E682C(sub_80E6AC4); + break; + } +} + +void sub_80E6F68(void) +{ + switch (gEasyChatStruct->unk24) + { + case 0: + sub_80E8398(1); + sub_80E91D4(10); + sub_80E683C(); + sub_80E9974(); + sub_80E9E98(); + gEasyChatStruct->unk24++; + break; + case 1: + if (sub_80E9EA8() != 0) + { + sub_80E8D8C(1); + sub_80E8420(); + sub_80E8958(0); + sub_80E682C(sub_80E6FC8); + } + break; + } +} + +void sub_80E6FC8(void) +{ + gEasyChatStruct->unk96 = sub_80E77C8(); + if (gEasyChatStruct->unk1C0 != 0) + { + PlaySE(SE_SELECT); + gEasyChatStruct->unk1C4 = sub_80E6FC8; + sub_80E682C(sub_80E7458); + } + else + { + if (gEasyChatStruct->unk96) + PlaySE(SE_SELECT); + if (gMain.newKeys & A_BUTTON) + { + if (gEasyChatStruct->unk1B7 != 0) + { + PlaySE(SE_SELECT); + switch (gEasyChatStruct->unk1A8) + { + case 1: + sub_80E682C(sub_80E718C); + break; + case 2: + if (gEasyChatStruct->unk8 != 6) + { + sub_80E7F00(gEasyChatStruct->unk27, 0xFFFF); + sub_80E7574(); + sub_80E95A4(); + } + break; + case 3: + sub_80E682C(sub_80E7114); + break; + } + } + else + { + if (gEasyChatStruct->unk26 == 0 + || gEasyChatStruct->unk4142[gEasyChatStruct->unk40[gEasyChatStruct->unk1A8][gEasyChatStruct->unk1A9]] != 0) + { + PlaySE(SE_SELECT); + sub_80E7AD4(); + sub_80E682C(sub_80E7218); + } + } + } + else if (gMain.newKeys & B_BUTTON) + { + sub_80E682C(sub_80E7114); + } + else if (gMain.newKeys & SELECT_BUTTON) + { + sub_80E682C(sub_80E718C); + } + } +} + +void sub_80E7114(void) +{ + switch (gEasyChatStruct->unk24) + { + case 0: + sub_80E8504(); + sub_80E9E98(); + sub_80E88F0(); + sub_80E8D8C(0); + gEasyChatStruct->unk24++; + break; + case 1: + case 2: + gEasyChatStruct->unk24++; + break; + case 3: + if (sub_80E9F50() != 0) + gEasyChatStruct->unk24++; + break; + case 4: + sub_80E682C(sub_80E6AC4); + break; + } +} + +void sub_80E718C(void) +{ + switch (gEasyChatStruct->unk24) + { + case 0: + sub_80E8504(); + sub_80E9E98(); + sub_80E88F0(); + gEasyChatStruct->unk24++; + sub_80E8D54(); + break; + case 1: + if (sub_80E9FD4() != 0) + { + gEasyChatStruct->unk26 = !gEasyChatStruct->unk26; + sub_80E683C(); + sub_80E9974(); + sub_80E9E98(); + gEasyChatStruct->unk24++; + } + break; + default: + gEasyChatStruct->unk24++; + break; + case 8: + if (sub_80EA014() != 0) + { + sub_80E8420(); + sub_80E8958(0); + sub_80E682C(sub_80E6FC8); + } + break; + } +} + +void sub_80E7218(void) +{ + switch (gEasyChatStruct->unk24) + { + default: + gEasyChatStruct->unk24++; + break; + case 8: + sub_80E8D8C(0); + sub_80E8504(); + sub_80E9AD4(); + sub_80E68E8(); + sub_80E88F0(); + sub_80E9E98(); + gEasyChatStruct->unk24++; + break; + case 9: + if (sub_80EA050() != 0) + { + sub_80E9C94(); + gEasyChatStruct->unk24++; + } + break; + case 10: + sub_80E87CC(1); + sub_80E8958(1); + sub_80E682C(sub_80E7294); + break; + case 11: + break; + } +} + +void sub_80E7294(void) +{ + gEasyChatStruct->unk1B9 = sub_80E7B40(); + if (gEasyChatStruct->unk1C0 != 0) + { + PlaySE(SE_SELECT); + gEasyChatStruct->unk1C4 = sub_80E7294; + sub_80E682C(sub_80E7458); + } + else + { + if (gEasyChatStruct->unk1B9) + PlaySE(SE_SELECT); + if (gMain.newKeys & A_BUTTON) + { + PlaySE(SE_SELECT); + sub_80E682C(sub_80E7324); + } + else if (gMain.newKeys & B_BUTTON) + { + sub_80E682C(sub_80E73D0); + } + } +} + +void sub_80E7324(void) +{ + switch (gEasyChatStruct->unk24) + { + case 0: + if (!sub_80E7DD0()) + { + sub_80E682C(sub_80E7294); + } + else + { + sub_80E88F0(); + sub_80E87CC(0); + gEasyChatStruct->unk24++; + } + break; + case 1: + gEasyChatStruct->unk24++; + break; + case 2: + sub_80E9E98(); + gEasyChatStruct->unk24++; + break; + case 3: + if (sub_80EA184() != 0) + gEasyChatStruct->unk24++; + break; + case 4: + if (gEasyChatStruct->unk8 == 6 && sub_80E7FA8() != 0) + sub_80E682C(sub_80E6D7C); + else + sub_80E682C(sub_80E6AC4); + break; + } +} + +void sub_80E73D0(void) +{ + switch (gEasyChatStruct->unk24) + { + case 0: + sub_80E87CC(0); + sub_80E88F0(); + gEasyChatStruct->unk24++; + break; + case 1: + sub_80E9AD4(); + sub_80E9E98(); + gEasyChatStruct->unk24++; + break; + case 2: + if (sub_80EA0E4() != 0) + { + sub_80E8D8C(1); + sub_80E9A14(); + gEasyChatStruct->unk24++; + } + break; + case 3: + sub_80E8420(); + sub_80E8958(0); + gEasyChatStruct->unk24++; + break; + case 4: + sub_80E9974(); + sub_80E682C(sub_80E6FC8); + break; + } +} + +void sub_80E7458(void) +{ + switch (gEasyChatStruct->unk24) + { + case 0: + if (gEasyChatStruct->unk1C4 == sub_80E6FC8) + sub_80E9D7C(); + else + sub_80E9D00(); + sub_80E9E08(gEasyChatStruct->unk1BE); + gEasyChatStruct->unk24++; + break; + case 1: + if (sub_80E9E54()) + { + if (gEasyChatStruct->unk1C4 == sub_80E6FC8) + { + sub_80E9D7C(); + gEasyChatStruct->unk1B5 += gEasyChatStruct->unk1C0; + sub_80E7A98(); + gEasyChatStruct->unk96 = TRUE; + } + else + { + gEasyChatStruct->unk9A29 += gEasyChatStruct->unk1C0; + sub_80E7D30(); + gEasyChatStruct->unk1B9 = 1; + } + gEasyChatStruct->unk1BE = 2; + sub_80E682C(gEasyChatStruct->unk1C4); + } + break; + } +} + +void sub_80E752C(void) +{ + switch (gEasyChatStruct->unk24) + { + case 0: + BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, 0); + gEasyChatStruct->unk24++; + break; + case 1: + if (!UpdatePaletteFade()) + SetMainCallback2(gEasyChatStruct->unk0); + break; + } +} + +void sub_80E7574(void) +{ + if (gEasyChatStruct->unk8 == 1 + && gEasyChatStruct->unk7E[gEasyChatStruct->unk86] == 2 + && sub_80EB2D4(gEasyChatStruct->unkC[gEasyChatStruct->unk27]) != 7) + gEasyChatStruct->unk7D = 1; + else + gEasyChatStruct->unk7D = 0; + gEasyChatStruct->unk7D = 0; // What the hell? +} + +bool8 sub_80E75D8(void) +{ + bool8 pressedUpDown = FALSE; + u8 r0; + + if (gMain.newKeys & START_BUTTON) + { + gEasyChatStruct->unk86 = gEasyChatStruct->unk84; + gEasyChatStruct->unk85 = 2; + return TRUE; + } + + if (gMain.newAndRepeatedKeys & DPAD_UP) + { + gEasyChatStruct->unk86--; + if (gEasyChatStruct->unk86 < 0) + gEasyChatStruct->unk86 = gEasyChatStruct->unk84; + pressedUpDown = TRUE; + } + else if (gMain.newAndRepeatedKeys & DPAD_DOWN) + { + gEasyChatStruct->unk86++; + if (gEasyChatStruct->unk86 > gEasyChatStruct->unk84) + gEasyChatStruct->unk86 = 0; + pressedUpDown = TRUE; + } + + if (pressedUpDown) + { + if (gEasyChatStruct->unk9 == 2) + { + if (gEasyChatStruct->unk86 == gEasyChatStruct->unk84) + gEasyChatStruct->unk85 = 2; + else + gEasyChatStruct->unk85 = 0; + return TRUE; + } + else + { + if (gEasyChatStruct->unk85 >= gEasyChatStruct->unk83) + gEasyChatStruct->unk85 = gEasyChatStruct->unk83 - 1; + if (gEasyChatStruct->unk86 != gEasyChatStruct->unk84) + { + r0 = gEasyChatStruct->unk86 * gEasyChatStruct->unk83 + gEasyChatStruct->unk85; + if (r0 >= gEasyChatStruct->unkA) + gEasyChatStruct->unk85 = r0 - gEasyChatStruct->unkA; + } + return TRUE; + } + } + else + { + if (gMain.newAndRepeatedKeys & DPAD_LEFT) + { + if (--gEasyChatStruct->unk85 < 0) + { + if (gEasyChatStruct->unk86 == gEasyChatStruct->unk84) + { + gEasyChatStruct->unk85 = 2; + } + else + { + gEasyChatStruct->unk85 = gEasyChatStruct->unk83 - 1; + r0 = gEasyChatStruct->unk86 * gEasyChatStruct->unk83 + gEasyChatStruct->unk85; + if (r0 >= gEasyChatStruct->unkA) + gEasyChatStruct->unk85 = r0 - gEasyChatStruct->unkA; + } + } + return TRUE; + } + if (gMain.newAndRepeatedKeys & DPAD_RIGHT) + { + if (gEasyChatStruct->unk86 == gEasyChatStruct->unk84) + { + if (++gEasyChatStruct->unk85 > 2) + gEasyChatStruct->unk85 = 0; + } + else + { + if (++gEasyChatStruct->unk85 >= gEasyChatStruct->unk83) + gEasyChatStruct->unk85 = 0; + r0 = gEasyChatStruct->unk86 * gEasyChatStruct->unk83 + gEasyChatStruct->unk85; + if (r0 >= gEasyChatStruct->unkA) + gEasyChatStruct->unk85 = r0 - gEasyChatStruct->unkA; + } + return TRUE; + } + } + return FALSE; +} + +bool8 sub_80E77C8(void) +{ + bool8 pressedLeftRight = FALSE; + bool8 pressedUpDown; + + if (gEasyChatStruct->unk1B7 != 0) + { + if (gMain.newAndRepeatedKeys & DPAD_UP) + { + gEasyChatStruct->unk1A8--; + if (gEasyChatStruct->unk1A8 < 1) + gEasyChatStruct->unk1A8 = 3; + return TRUE; + } + else if (gMain.newAndRepeatedKeys & DPAD_DOWN) + { + gEasyChatStruct->unk1A8++; + if (gEasyChatStruct->unk1A8 > 3) + gEasyChatStruct->unk1A8 = 1; + return TRUE; + } + } + else + { + if (gEasyChatStruct->unk26 == 1) + { + pressedUpDown = FALSE; + + if (gMain.newAndRepeatedKeys & DPAD_UP) + { + gEasyChatStruct->unk1A8--; + if (gEasyChatStruct->unk1A8 < 0) + gEasyChatStruct->unk1A8 = 3; + pressedUpDown = TRUE; + } + else if (gMain.newAndRepeatedKeys & DPAD_DOWN) + { + gEasyChatStruct->unk1A8++; + if (gEasyChatStruct->unk1A8 > 3) + gEasyChatStruct->unk1A8 = 0; + pressedUpDown = TRUE; + } + + if (pressedUpDown) + { + sub_80E7A98(); + return TRUE; + } + } + else + { + pressedUpDown = FALSE; + gEasyChatStruct->unk1C0 = 0; + + if (gMain.newAndRepeatedKeys & DPAD_UP) + { + if (gEasyChatStruct->unk1A8 == 0) + return FALSE; + gEasyChatStruct->unk1A8--; + if (gEasyChatStruct->unk1A8 < gEasyChatStruct->unk1B5) + gEasyChatStruct->unk1C0 = -1; + pressedUpDown = TRUE; + } + else if (gMain.newAndRepeatedKeys & DPAD_DOWN) + { + if (gEasyChatStruct->unk1A8 >= gEasyChatStruct->unk1B6 - 1) + return FALSE; + gEasyChatStruct->unk1A8++; + if (gEasyChatStruct->unk1A8 > gEasyChatStruct->unk1B5 + 3) + gEasyChatStruct->unk1C0 = 1; + pressedUpDown = TRUE; + } + + if (pressedUpDown) + { + if (gEasyChatStruct->unk1C0 == 0) + { + sub_80E7A98(); + return TRUE; + } + return FALSE; + } + } + } + + if (gMain.newAndRepeatedKeys & DPAD_LEFT) + { + if (gEasyChatStruct->unk1A9 != 0) + gEasyChatStruct->unk1A9--; + else + gEasyChatStruct->unk1A9 = gEasyChatStruct->unk1AA[gEasyChatStruct->unk1A8]; + pressedLeftRight = TRUE; + } + else if (gMain.newAndRepeatedKeys & DPAD_RIGHT) + { + if (gEasyChatStruct->unk1B7 != 0 + || gEasyChatStruct->unk1A9 == gEasyChatStruct->unk1AA[gEasyChatStruct->unk1A8]) + gEasyChatStruct->unk1A9 = 0; + else + gEasyChatStruct->unk1A9++; + pressedLeftRight = TRUE; + } + + if (pressedLeftRight) + { + s8 r9 = gEasyChatStruct->unk1B7; + + gEasyChatStruct->unk1B7 = (gEasyChatStruct->unk1A9 == gEasyChatStruct->unk1AA[gEasyChatStruct->unk1A8]); + if (gEasyChatStruct->unk1B7 != 0) + { + gEasyChatStruct->unk1A8 -= gEasyChatStruct->unk1B5; + if (gEasyChatStruct->unk1A8 == 0) + { + gEasyChatStruct->unk1A8 = 1; + gEasyChatStruct->unk1A9 = gEasyChatStruct->unk1AA[gEasyChatStruct->unk1A8]; + } + } + else if (r9 != 0) + { + gEasyChatStruct->unk1A8 += gEasyChatStruct->unk1B5; + if (gEasyChatStruct->unk1A9 != 0) + gEasyChatStruct->unk1A9 = gEasyChatStruct->unk1AA[gEasyChatStruct->unk1A8] - 1; + } + return TRUE; + } + + return FALSE; +} + +void sub_80E7A98(void) +{ + if (gEasyChatStruct->unk1A9 >= gEasyChatStruct->unk1AA[gEasyChatStruct->unk1A8]) + gEasyChatStruct->unk1A9 = gEasyChatStruct->unk1AA[gEasyChatStruct->unk1A8] - 1; +} + +void sub_80E7AD4(void) +{ + if (gEasyChatStruct->unk26 == 0) + gEasyChatStruct->unk1B8 = gEasyChatStruct->unk2A[gEasyChatStruct->unk1A8][gEasyChatStruct->unk1A9]; + else + gEasyChatStruct->unk1B8 = gEasyChatStruct->unk40[gEasyChatStruct->unk1A8][gEasyChatStruct->unk1A9]; +} + +bool8 sub_80E7B40(void) +{ + bool8 pressedUpDown = FALSE; + + gEasyChatStruct->unk1C0 = 0; + if (gMain.newAndRepeatedKeys & DPAD_UP) + { + if (gEasyChatStruct->unk99A4 == 0) + return FALSE; + gEasyChatStruct->unk99A4--; + if (gEasyChatStruct->unk99A4 < gEasyChatStruct->unk9A29) + { + gEasyChatStruct->unk1C0 = -1; + return FALSE; + } + pressedUpDown = TRUE; + } + else if (gMain.newAndRepeatedKeys & DPAD_DOWN) + { + if (gEasyChatStruct->unk99A4 >= gEasyChatStruct->unk9A28 - 1) + return FALSE; + gEasyChatStruct->unk99A4++; + if (gEasyChatStruct->unk99A4 >= gEasyChatStruct->unk9A29 + 4) + { + gEasyChatStruct->unk1C0 = 1; + return FALSE; + } + pressedUpDown = TRUE; + } + + if (pressedUpDown) + { + sub_80E7D30(); + return TRUE; + } + + if (gMain.newAndRepeatedKeys & DPAD_LEFT) + { + gEasyChatStruct->unk99A5--; + if (gEasyChatStruct->unk99A5 < 0) + gEasyChatStruct->unk99A5 = gEasyChatStruct->unk99A6[gEasyChatStruct->unk99A4] - 1; + return TRUE; + } + else if (gMain.newAndRepeatedKeys & DPAD_RIGHT) + { + gEasyChatStruct->unk99A5++; + if (gEasyChatStruct->unk99A5 >= gEasyChatStruct->unk99A6[gEasyChatStruct->unk99A4]) + gEasyChatStruct->unk99A5 = 0; + return TRUE; + } + + if (gMain.newKeys & START_BUTTON) + { + if (gEasyChatStruct->unk9A29 != 0) + { + gEasyChatStruct->unk1C0 = -gEasyChatStruct->unk9A29; + if (gEasyChatStruct->unk1C0 < -4) + gEasyChatStruct->unk1C0 = -4; + } + gEasyChatStruct->unk99A4 += gEasyChatStruct->unk1C0; + gEasyChatStruct->unk1BE = 4; + } + else if (gMain.newKeys & SELECT_BUTTON) + { + if (gEasyChatStruct->unk9A29 < gEasyChatStruct->unk9A28 - 4) + { + gEasyChatStruct->unk1C0 = gEasyChatStruct->unk9A28 - 4 - gEasyChatStruct->unk9A29; + if (gEasyChatStruct->unk1C0 > 4) + gEasyChatStruct->unk1C0 = 4; + } + gEasyChatStruct->unk99A4 += gEasyChatStruct->unk1C0; + gEasyChatStruct->unk1BE = 4; + } + + return FALSE; +} + +void sub_80E7D30(void) +{ + if (gEasyChatStruct->unk99A5 >= gEasyChatStruct->unk99A6[gEasyChatStruct->unk99A4]) + gEasyChatStruct->unk99A5 = gEasyChatStruct->unk99A6[gEasyChatStruct->unk99A4] - 1; +} + +void sub_80E7D6C(void) +{ + u16 i; + + for (i = 0; i < gEasyChatStruct->unkA; i++) + sub_80E7F00(i, 0xFFFF); +} + +void sub_80E7D9C(void) +{ + u16 i; + + for (i = 0; i < gEasyChatStruct->unkA; i++) + gEasyChatStruct->unk4[i] = gEasyChatStruct->unkC[i]; +} + +bool8 sub_80E7DD0(void) +{ + u16 r4 = gEasyChatStruct->unk9A2A[gEasyChatStruct->unk99A4][gEasyChatStruct->unk99A5]; + + if (gEasyChatStruct->unk7D != 0 + && gEasyChatStruct->unk7E[gEasyChatStruct->unk86] > 1 + && sub_80EB2D4(r4) == 7) + return FALSE; + + sub_80E7F00(gEasyChatStruct->unk27, r4); + sub_80E95A4(); + return TRUE; +} + +void sub_80E7E50(void) +{ + u16 r5 = 0; + u16 i; + u16 j; + + for (i = 0; i < gEasyChatStruct->unk84; i++) + { + gEasyChatStruct->unk7E[i] = 0; + for (j = 0; j < gEasyChatStruct->unk83; j++) + { + gEasyChatStruct->unkC[r5] = gEasyChatStruct->unk4[r5]; + gEasyChatStruct->unk8C[i][j] = 0; + r5++; + } + } +} + +void sub_80E7F00(u16 a, u16 b) +{ + u16 r5 = a / gEasyChatStruct->unk83; + u16 r8 = a % gEasyChatStruct->unk83; + u16 r4 = sub_80EB2D4(gEasyChatStruct->unkC[a]); + u16 r3 = sub_80EB2D4(b); + + if (r4 == 7) + { + if (r3 != 7) + gEasyChatStruct->unk7E[r5]--; + } + else + { + if (r3 == 7) + gEasyChatStruct->unk7E[r5]++; + } + r3 = 0; + gEasyChatStruct->unk8C[r5][r8] = r3; + gEasyChatStruct->unkC[a] = b; +} + +u8 sub_80E7FA8(void) +{ + u16 r8 = 0; + u16 i; + u8 *r1; + u8 *r2; + + for (i = 0; i < gEasyChatStruct->unkA; i++) + { + sub_80EB218(gEasyChatStruct->unk9E14, gEasyChatStruct->unk4[i], 0); + sub_80EB218(gEasyChatStruct->unk9E41, gEasyChatStruct->unkC[i], 0); + r1 = gEasyChatStruct->unk9E14; + r2 = gEasyChatStruct->unk9E41; + while (*r1 == *r2 && *r1 != 0xFF) + { + r1++; + r2++; + } + if (*r1 != *r2) + r8++; + } + return r8; +} + +bool8 sub_80E8054(void) +{ + u16 i; + + for (i = 0; i < gEasyChatStruct->unkA; i++) + { + if (gEasyChatStruct->unkC[i] != 0xFFFF) + return FALSE; + } + return TRUE; +} + +// CheckMysteryEventPhrase +bool8 sub_80E8094(void) +{ + u16 i; + u8 *r3; + u8 *r4; + + for (i = 0; i < 4; i++) + { + sub_80EB218(gEasyChatStruct->unk9E14, gEasyChatStruct->unkC[i], 0); + sub_80EB218(gEasyChatStruct->unk9E41, gMysteryEventPhrase[i], 0); + r3 = gEasyChatStruct->unk9E14; + r4 = gEasyChatStruct->unk9E41; + while (*r3 != 0xFF && *r4 != 0xFF) + { + if (*r3++ != *r4++) + return FALSE; + } + if (*r3 != 0xFF || *r4 != 0xFF) + return FALSE; + } + return TRUE; +} + +u8 sub_80E810C(void) +{ + u16 i; + + for (i = 0; i < 5; i++) + { + u8 *ptr; + u8 *r3; + + ptr = sub_80EB218(gEasyChatStruct->unk9E6E, gEasyChatStruct->unkC[0], 0); + *ptr++ = CHAR_SPACE; + sub_80EB218(ptr, gEasyChatStruct->unkC[1], 0); + + ptr = sub_80EB218(gEasyChatStruct->unk9EEE, gBerryMasterWifePhrases[i][0], 0); + *ptr++ = CHAR_SPACE; + sub_80EB218(ptr, gBerryMasterWifePhrases[i][1], 0); + + ptr = gEasyChatStruct->unk9E6E; + r3 = gEasyChatStruct->unk9EEE; + while (*ptr != EOS && *r3 != EOS) + { + if (*ptr++ != *r3++) + break; + } + if (*ptr == EOS && *r3 == EOS) + return i + 1; + } + return 0; +} + +void sub_80E81C0(void) +{ + u8 *ptr; + + ptr = sub_80EB218(gStringVar2, gEasyChatStruct->unk9C7C, 0); + *ptr++ = CHAR_SPACE; + sub_80EB218(ptr, gEasyChatStruct->unk9C7E, 0); +} + +void sub_80E81FC(void) +{ + PlaySE(SE_SELECT); + sub_80E95A4(); + MenuZeroFillWindowRect(0, 0, 29, 13); +} diff --git a/src/easy_chat_2.c b/src/easy_chat_2.c new file mode 100644 index 000000000..8a3bb9ab9 --- /dev/null +++ b/src/easy_chat_2.c @@ -0,0 +1,3048 @@ +#include "global.h" +#include "constants/easy_chat.h" +#include "constants/map_objects.h" +#include "data2.h" +#include "decompress.h" +#include "easy_chat.h" +#include "event_data.h" +#include "field_map_obj.h" +#include "field_message_box.h" +#include "graphics.h" +#include "menu.h" +#include "palette.h" +#include "pokedex.h" +#include "random.h" +#include "sprite.h" +#include "string_util.h" +#include "strings.h" +#include "strings2.h" +#include "trig.h" +#include "unknown_task.h" + +extern void sub_8095C8C(); +extern void sub_809D104(void *, u16, u16, const void *, u16, u16, u16, u16); + +void sub_80E8268(void); +void sub_80E82BC(struct Sprite *); +void sub_80E8534(void); +void sub_80E85F8(struct Sprite *); +void sub_80E872C(struct Sprite *); +void sub_80E8760(struct Sprite *); +void sub_80E8818(void); +void sub_80E8860(struct Sprite *); +void sub_80E8A7C(void); +void sub_80E8B78(struct Sprite *); +void sub_80E8FA4(void); +void sub_80E9198(u8); +void sub_80E91D4(u8); +void sub_80E948C(void); +void sub_80E95A4(void); +void sub_80E9620(u16, u16); +void sub_80E97C0(u16, u16); +void sub_80E9A4C(void); +void sub_80E9A60(const u8 *, u16, u16); +void sub_80E9A7C(u8 *, u16); +void sub_80E9AD4(void); +void sub_80E9C74(u16); +u8 sub_80EA1E0(void); +void sub_80EA24C(void); +void sub_80EA348(void); +void sub_80EA4A4(void); +void sub_80EA5A0(void); +void sub_80EA704(void); +void sub_80EA764(void); +void sub_80EA7F4(void); +void sub_80EA8BC(void); +void sub_80EA948(void); +void sub_80EAA44(void); +void sub_80EAAD4(void); +void sub_80EABD4(u16 *, u16, u16, u16, u16, u16, u16, u16, u16); +void sub_80EAC0C(u16 *); +void sub_80EAC30(struct UnknownEasyChatStruct1 *, u16, u16, u16, u16, void *); +void sub_80EAC48(struct UnknownEasyChatStruct1 *); +void sub_80EACBC(void *, u16 *, struct UnknownEasyChatStruct1 *); +u8 *CopyEasyChatGroupName(u8 *, u8, int); +u8 *sub_80EB218(u8 *, u16, u16); +u16 sub_80EB2D4(u16); +bool8 sub_80EB37C(u16); +bool8 sub_80EB868(u8); +static u16 sub_80EB960(void); +u8 sub_80EB9C8(void); +static u16 sub_80EB9D8(void); + +// put this in .bss, damnit! +__attribute__((section(".bss"))) u8 gUnknown_03000740 = 0; + +const u16 InterviewPalette_0[] = INCBIN_U16("graphics/misc/interview_pal0.gbapal"); +const u16 InterviewPalette_1[] = INCBIN_U16("graphics/misc/interview_pal1.gbapal"); +const u8 InterviewArrowTiles[] = INCBIN_U8("graphics/misc/interview_arrow.4bpp"); +const u8 InterviewButtonTiles[] = INCBIN_U8("graphics/misc/interview_buttons.4bpp"); +const u16 gMenuInterviewFrame_Pal[] = INCBIN_U16("graphics/misc/interview_frame.gbapal"); +const u8 gMenuInterviewFrame_Gfx[] = INCBIN_U8("graphics/misc/interview_frame.4bpp.lz"); +const u8 InterviewTriangleCursorTiles[] = INCBIN_U8("graphics/misc/interview_triangle_cursor.4bpp"); + +void sub_80E8218(void) +{ + struct SpriteSheet interviewSpriteSheets[] = + { + {InterviewTriangleCursorTiles, 0x20, 0}, + {gInterviewOutlineCursorTiles, 0x700, 1}, + {InterviewArrowTiles, 0x100, 2}, + {InterviewButtonTiles, 0x100, 3}, + {NULL, 0, 0}, + }; + struct SpritePalette interviewSpritePalettes[] = + { + {InterviewPalette_0, 0}, + {InterviewPalette_1, 1}, + {NULL, 0}, + }; + + LoadSpriteSheets(interviewSpriteSheets); + LoadSpritePalettes(interviewSpritePalettes); + sub_80E8268(); + sub_80E8818(); + sub_80E8A7C(); +} + +const struct OamData gOamData_83DBBF4 = +{ + .y = 0, + .affineMode = 0, + .objMode = 0, + .mosaic = 0, + .bpp = 0, + .shape = 0, + .x = 0, + .matrixNum = 0, + .size = 0, + .tileNum = 0, + .priority = 0, + .paletteNum = 0, + .affineParam = 0, +}; + +const struct SpriteTemplate gSpriteTemplate_83DBBFC = +{ + .tileTag = 0, + .paletteTag = 0, + .oam = &gOamData_83DBBF4, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_80E82BC, +}; + +void sub_80E8268(void) +{ + u8 spriteId; + + spriteId = CreateSprite(&gSpriteTemplate_83DBBFC, 0, 0, 0); + gSprites[spriteId].pos1.y = gEasyChatStruct->unk8A * 8 + 8; + gSprites[spriteId].pos1.x = gEasyChatStruct->unk88 * 8 + 4; + gSprites[spriteId].data[0] = 0; + gSprites[spriteId].data[1] = 0; + gEasyChatStruct->unk98 = &gSprites[spriteId]; +} + +void sub_80E82BC(struct Sprite *sprite) +{ + if (sprite->data[1] == 0) + { + if (gEasyChatStruct->unk87) + { + u16 r5 = gEasyChatStruct->unk86; + u16 r4 = gEasyChatStruct->unk85; + u16 r7 = 0; + u16 i; + + for (i = 0; i < r4; i++) + r7 += gEasyChatStruct->unk8C[r5][i]; + + if (r5 == gEasyChatStruct->unk84) + { + sprite->pos1.y = 96; + sprite->pos1.x = (r4 * 7 + 3) * 8 + 4; + } + else + { + sprite->pos1.y = (gEasyChatStruct->unk8A + r5 * 2) * 8 + 8; + sprite->pos1.x = (gEasyChatStruct->unk88 + r7 + r4 * 11) * 8 + 4; + } + + sprite->pos2.x = -6; + sprite->data[0] = 0; + } + else + { + if (++sprite->data[0] > 2) + { + sprite->data[0] = 0; + if (++sprite->pos2.x > 0) + sprite->pos2.x = -6; + } + } + } +} + +void sub_80E8398(u8 a) +{ + switch (a) + { + case 0: + gEasyChatStruct->unk98->data[1] = a; + gEasyChatStruct->unk98->pos2.x = a; + gEasyChatStruct->unk98->invisible = FALSE; + break; + case 1: + gEasyChatStruct->unk98->data[1] = a; + gEasyChatStruct->unk98->pos2.x = 0; + gEasyChatStruct->unk98->invisible = FALSE; + break; + case 2: + gEasyChatStruct->unk98->data[1] = 1; + gEasyChatStruct->unk98->pos2.x = 0; + gEasyChatStruct->unk98->invisible = TRUE; + break; + } +} + +const struct OamData gOamData_83DBC14 = +{ + .y = 0, + .affineMode = 0, + .objMode = 1, + .mosaic = 0, + .bpp = 0, + .shape = 1, + .x = 0, + .matrixNum = 0, + .size = 2, + .tileNum = 0, + .priority = 1, + .paletteNum = 0, + .affineParam = 0, +}; + +const union AnimCmd gSpriteAnim_83DBC1C[] = +{ + ANIMCMD_FRAME(0, 5), + ANIMCMD_END, +}; + +const union AnimCmd gSpriteAnim_83DBC24[] = +{ +#if ENGLISH + ANIMCMD_FRAME(8, 5), +#else + ANIMCMD_FRAME(0, 5), +#endif + ANIMCMD_END, +}; + +const union AnimCmd gSpriteAnim_83DBC2C[] = +{ + ANIMCMD_FRAME(0, 5), + ANIMCMD_END, +}; + +const union AnimCmd gSpriteAnim_83DBC34[] = +{ + ANIMCMD_FRAME(24, 5), + ANIMCMD_END, +}; + +const union AnimCmd gSpriteAnim_83DBC3C[] = +{ + ANIMCMD_FRAME(32, 5), + ANIMCMD_END, +}; + +const union AnimCmd gSpriteAnim_83DBC44[] = +{ + ANIMCMD_FRAME(40, 5), + ANIMCMD_END, +}; + +const union AnimCmd gSpriteAnim_83DBC4C[] = +{ + ANIMCMD_FRAME(40, 5), + ANIMCMD_END, +}; + +const union AnimCmd gSpriteAnim_83DBC54[] = +{ + ANIMCMD_FRAME(40, 5), + ANIMCMD_END, +}; + +const union AnimCmd gSpriteAnim_83DBC5C[] = +{ + ANIMCMD_FRAME(48, 5), + ANIMCMD_END, +}; + +const union AnimCmd gSpriteAnim_83DBC64[] = +{ +#if ENGLISH + ANIMCMD_FRAME(40, 5), +#else + ANIMCMD_FRAME(16, 5), +#endif + ANIMCMD_END, +}; + +const union AnimCmd gSpriteAnim_83DBC6C[] = +{ + ANIMCMD_FRAME(48, 5), + ANIMCMD_END, +}; + +const union AnimCmd gSpriteAnim_83DBC74[] = +{ + ANIMCMD_FRAME(40, 5), + ANIMCMD_END, +}; + +const union AnimCmd *const gSpriteAnimTable_83DBC7C[] = +{ + gSpriteAnim_83DBC1C, + gSpriteAnim_83DBC24, + gSpriteAnim_83DBC2C, + gSpriteAnim_83DBC34, +}; + +const union AnimCmd *const gSpriteAnimTable_83DBC8C[] = +{ + gSpriteAnim_83DBC3C, + gSpriteAnim_83DBC44, + gSpriteAnim_83DBC4C, + gSpriteAnim_83DBC54, +}; + +const union AnimCmd *const gSpriteAnimTable_83DBC9C[] = +{ + gSpriteAnim_83DBC5C, + gSpriteAnim_83DBC64, + gSpriteAnim_83DBC6C, + gSpriteAnim_83DBC74, +}; + +/* +const struct SpriteTemplate gSpriteTemplate_83DBCAC = +{ + .tileTag = 1, + .paletteTag = 1, + .oam = &gOamData_83DBC14, + .anims = gSpriteAnimTable_83DBC7C, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_80E85F8, +}; +*/ + +void sub_80E8420(void) +{ + struct SpriteTemplate spriteTemplate_83DBCAC = + { + .tileTag = 1, + .paletteTag = 1, + .oam = &gOamData_83DBC14, + .anims = gSpriteAnimTable_83DBC7C, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_80E85F8, + }; + u8 spriteId; + + spriteId = CreateSprite(&spriteTemplate_83DBCAC, 0, 0, 3); + gEasyChatStruct->unk9C = &gSprites[spriteId]; + + spriteTemplate_83DBCAC.anims = gSpriteAnimTable_83DBC8C; + spriteTemplate_83DBCAC.callback = sub_80E872C; + spriteId = CreateSprite(&spriteTemplate_83DBCAC, 0, 0, 4); + gEasyChatStruct->unkA0 = &gSprites[spriteId]; + + spriteTemplate_83DBCAC.anims = gSpriteAnimTable_83DBC9C; + spriteTemplate_83DBCAC.callback = sub_80E8760; + spriteId = CreateSprite(&spriteTemplate_83DBCAC, 0, 0, 5); + gEasyChatStruct->unkA4 = &gSprites[spriteId]; + + gEasyChatStruct->unk9C->data[0] = 0; + gEasyChatStruct->unkA0->data[0] = 0; + gEasyChatStruct->unkA4->data[0] = 0; + + gEasyChatStruct->unk9C->data[3] = 0x0101 + IndexOfSpritePaletteTag(1) * 16; + sub_80E8534(); + gEasyChatStruct->unk96 = 1; + REG_BLDCNT = 0x3F40; +} + +void sub_80E8504(void) +{ + DestroySprite(gEasyChatStruct->unk9C); + DestroySprite(gEasyChatStruct->unkA0); + DestroySprite(gEasyChatStruct->unkA4); +} + +void sub_80E8534(void) +{ + if (gEasyChatStruct->unk1B7 != 0) + gUnknown_020388AC = 1; + else if (gEasyChatStruct->unk26 == 0) + gUnknown_020388AC = 0; + else if (gEasyChatStruct->unk1A8 == 0 && gEasyChatStruct->unk1A9 == 6) + gUnknown_020388AC = 2; + else + gUnknown_020388AC = 3; + + gEasyChatStruct->unk9C->data[2] = gUnknown_020388AC; + gEasyChatStruct->unkA0->data[2] = gUnknown_020388AC; + gEasyChatStruct->unkA4->data[2] = gUnknown_020388AC; + + StartSpriteAnim(gEasyChatStruct->unk9C, gUnknown_020388AC); + StartSpriteAnim(gEasyChatStruct->unkA0, gUnknown_020388AC); + StartSpriteAnim(gEasyChatStruct->unkA4, gUnknown_020388AC); + + gEasyChatStruct->unk9C->data[5] = 8; + gEasyChatStruct->unk9C->data[6] = 8; + gEasyChatStruct->unk9C->data[1] = 0; +} + +const s8 gUnknown_083DBCC4[][7] = +{ + {1, 3, 5, 8, 10, 12, 15}, + {1, 3, 5, 8, 10, 12, 0}, + {1, 3, 5, 8, 10, 12, 14}, + {1, 3, 5, 8, 10, 12, 14}, +}; + +void sub_80E85F8(struct Sprite *sprite) +{ + sprite->data[0]++; + if (sprite->data[0] & 1) + sprite->data[5] = 8 + (gSineTable[sprite->data[1]] >> 5); + else + sprite->data[6] = 8 - (gSineTable[sprite->data[1]] >> 5); + + sprite->data[1] = (sprite->data[1] + 5) & 0xFF; + + REG_BLDALPHA = (sprite->data[6] << 8) | sprite->data[5]; + + if (gEasyChatStruct->unk96 != 0) + { + sub_80E8534(); + + gEasyChatStruct->unk9C->data[5] = 8; + gEasyChatStruct->unk9C->data[6] = 8; + gEasyChatStruct->unk9C->data[1] = 0; + + switch (sprite->data[2]) + { + case 0: + sprite->pos1.x = gEasyChatStruct->unk1A9 * 88 + 32; + sprite->pos1.y = (gEasyChatStruct->unk1A8 - gEasyChatStruct->unk1B5) * 16 + 96; + break; + case 1: +#if ENGLISH + sprite->pos1.x = 216; +#else + sprite->pos1.x = 214; +#endif + sprite->pos1.y = gEasyChatStruct->unk1A8 * 16 + 96; + break; + case 2: + sprite->pos1.x = 151; + sprite->pos1.y = 96; + break; + case 3: + sprite->pos1.x = gUnknown_083DBCC4[gEasyChatStruct->unk1A8][gEasyChatStruct->unk1A9] * 8 + 31; + sprite->pos1.y = (gEasyChatStruct->unk1A8 - gEasyChatStruct->unk1B5) * 16 + 96; + break; + } + } +} + + +void sub_80E872C(struct Sprite *sprite) +{ + if (gEasyChatStruct->unk96 != 0 && sprite->data[2] == 0) + { + sprite->pos1.x = gEasyChatStruct->unk9C->pos1.x + 32; + sprite->pos1.y = gEasyChatStruct->unk9C->pos1.y; + } +} + +void sub_80E8760(struct Sprite *sprite) +{ + if (gEasyChatStruct->unk96 != 0) + { + switch (sprite->data[2]) + { + case 0: + sprite->pos1.x = gEasyChatStruct->unk9C->pos1.x + 64; + sprite->pos1.y = gEasyChatStruct->unk9C->pos1.y; + break; +#if GERMAN + case 1: + sprite->pos1.x = gEasyChatStruct->unk9C->pos1.x + 28; + sprite->pos1.y = gEasyChatStruct->unk9C->pos1.y; + break; +#endif + case 2: + sprite->pos1.x = gEasyChatStruct->unk9C->pos1.x + 21; + sprite->pos1.y = gEasyChatStruct->unk9C->pos1.y; + break; + } + } +} + +void sub_80E87A4(u8 a) +{ + gEasyChatStruct->unkA8->data[1] = (a == 0); + gEasyChatStruct->unkA8->pos2.x = 0; +} + +void sub_80E87CC(u8 a) +{ + gEasyChatStruct->unkA8->invisible = (a == 0); + sub_80E87A4(a); + if (a != 0) + gEasyChatStruct->unk1B9 = 1; +} + +void sub_80E8818(void) +{ + u8 spriteId = CreateSprite(&gSpriteTemplate_83DBBFC, 0, 0, 0); + + gSprites[spriteId].data[0] = 0; + gSprites[spriteId].data[1] = 0; + gEasyChatStruct->unkA8 = &gSprites[spriteId]; + gEasyChatStruct->unkA8->callback = sub_80E8860; + sub_80E87CC(0); +} + +void sub_80E8860(struct Sprite *sprite) +{ + if (sprite->data[1] == 0) + { + if (gEasyChatStruct->unk1B9 != 0) + { + sprite->pos1.x = gEasyChatStruct->unk99A5 * 88 + 44; + sprite->pos1.y = (gEasyChatStruct->unk99A4 - gEasyChatStruct->unk9A29) * 16 + 96; + sprite->pos2.x = -6; + sprite->data[0] = 0; + } + else + { + sprite->data[0]++; + if (sprite->data[0] > 2) + { + sprite->data[0] = 0; + sprite->pos2.x++; + if (sprite->pos2.x > 0) + sprite->pos2.x = -6; + } + } + } +} + +void sub_80E88F0(void) +{ + u16 i; + + for (i = 0; i < 2; i++) + { + gEasyChatStruct->unkAC[i]->invisible = TRUE; + gEasyChatStruct->unkAC[i]->data[1] = 0; + gEasyChatStruct->unkB4[i]->invisible = TRUE; + gEasyChatStruct->unkB4[i]->data[1] = 0; + } + gEasyChatStruct->unk9C70 = 0; +} + +void sub_80E8958(u8 animNum) +{ + s16 r9; + u16 i; + + if (animNum == 0) + { + r9 = 100; + gEasyChatStruct->unk9C6C = &gEasyChatStruct->unk1B5; + if (gEasyChatStruct->unk26 == 0) + gEasyChatStruct->unk9C71 = gEasyChatStruct->unk1B6 - 4; + else + gEasyChatStruct->unk9C71 = 0; + } + else + { + r9 = 120; + gEasyChatStruct->unk9C6C = &gEasyChatStruct->unk9A29; + gEasyChatStruct->unk9C71 = gEasyChatStruct->unk9A28 - 4; + for (i = 0; i < 2; i++) + { + gEasyChatStruct->unkB4[i]->invisible = FALSE; + gEasyChatStruct->unkB4[i]->data[1] = 1; + } + } + + if (gEasyChatStruct->unk9C71 < 0) + gEasyChatStruct->unk9C71 = 0; + + for (i = 0; i < 2; i++) + { + gEasyChatStruct->unkAC[i]->pos1.x = r9; + gEasyChatStruct->unkAC[i]->invisible = FALSE; + gEasyChatStruct->unkAC[i]->data[1] = 1; + StartSpriteAnim(gEasyChatStruct->unkAC[i], animNum); + } + + gEasyChatStruct->unk9C70 = 1; +} + +const struct OamData gOamData_83DBCE0 = +{ + .y = 0, + .affineMode = 0, + .objMode = 0, + .mosaic = 0, + .bpp = 0, + .shape = 0, + .x = 0, + .matrixNum = 0, + .size = 1, + .tileNum = 0, + .priority = 1, + .paletteNum = 0, + .affineParam = 0, +}; + +const union AnimCmd gSpriteAnim_83DBCE8[] = +{ + ANIMCMD_FRAME(0, 5), + ANIMCMD_END, +}; + +const union AnimCmd gSpriteAnim_83DBCF0[] = +{ + ANIMCMD_FRAME(4, 5), + ANIMCMD_END, +}; + +const union AnimCmd *const gSpriteAnimTable_83DBCF8[] = +{ + gSpriteAnim_83DBCE8, + gSpriteAnim_83DBCF0, +}; + +const union AnimCmd gSpriteAnim_83DBD00[] = +{ + ANIMCMD_FRAME(0, 5), + ANIMCMD_END, +}; + +const union AnimCmd gSpriteAnim_83DBD08[] = +{ + ANIMCMD_FRAME(4, 5), + ANIMCMD_END, +}; + +const union AnimCmd *const gSpriteAnimTable_83DBD10[] = +{ + gSpriteAnim_83DBD00, + gSpriteAnim_83DBD08, +}; + +void sub_80E8A7C(void) +{ + struct SpriteTemplate spriteTemplate_83DBD18 = + { + .tileTag = 2, + .paletteTag = 0, + .oam = &gOamData_83DBCE0, + .anims = gSpriteAnimTable_83DBCF8, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_80E8B78, + }; + u16 i; + u8 spriteId; + + for (i = 0; i < 2; i++) + { + spriteId = CreateSprite(&spriteTemplate_83DBD18, 0, 84 + i * 72 , 0); + gEasyChatStruct->unkAC[i] = &gSprites[spriteId]; + gEasyChatStruct->unkAC[i]->data[0] = i; + gEasyChatStruct->unkAC[i]->vFlip = i; + } + + spriteTemplate_83DBD18.tileTag = 3; + spriteTemplate_83DBD18.anims = gSpriteAnimTable_83DBD10; + + for (i = 0; i < 2; i++) + { + spriteId = CreateSprite(&spriteTemplate_83DBD18, 142 + i * 40, 88, 0); + gEasyChatStruct->unkB4[i] = &gSprites[spriteId]; + gEasyChatStruct->unkB4[i]->data[0] = i; + gEasyChatStruct->unkB4[i]->oam.shape = 1; + gEasyChatStruct->unkB4[i]->oam.size = 1; + StartSpriteAnim(gEasyChatStruct->unkB4[i], i); + } + + sub_80E8958(0); + sub_80E88F0(); +} + +void sub_80E8B78(struct Sprite *sprite) +{ + bool8 invisible; + + if (gEasyChatStruct->unk9C70 != 0 && sprite->data[1] != 0) + { + if (sprite->data[0] == 0) + { + invisible = FALSE; + if (*gEasyChatStruct->unk9C6C == 0) + invisible = TRUE; + sprite->invisible = invisible; + } + else + { + invisible = FALSE; + if (*gEasyChatStruct->unk9C6C == gEasyChatStruct->unk9C71) + invisible = TRUE; + sprite->invisible = invisible; + } + } +} + +// defined below +extern const struct SpriteTemplate gSpriteTemplate_83DBD48; + +void sub_80E8BF4(u8 reporter, u8 b) +{ + struct CompressedSpriteSheet gUnknown_083DBD30 = {gMenuInterviewFrame_Gfx, 2048, 0x0006}; + struct SpritePalette gUnknown_083DBD38 = {gMenuInterviewFrame_Pal, 0x0004}; + s16 x; + s16 y; + u16 gabbyTyGfxId; + u8 spriteId; + + switch (b) + { + case 2: + default: + x = 64; + y = 40; + break; + case 5: + x = 36; + y = 48; + break; + } + + switch (reporter) + { + case 0: // Gabby + default: + gabbyTyGfxId = MAP_OBJ_GFX_REPORTER_M; + break; + case 1: // Ty + gabbyTyGfxId = MAP_OBJ_GFX_REPORTER_F; + break; + } + + LoadCompressedObjectPic(&gUnknown_083DBD30); + LoadSpritePalette(&gUnknown_083DBD38); + CreateSprite(&gSpriteTemplate_83DBD48, x, y, 1); + + spriteId = AddPseudoFieldObject( + (gSaveBlock2.playerGender == MALE) ? MAP_OBJ_GFX_RIVAL_BRENDAN_NORMAL : MAP_OBJ_GFX_RIVAL_MAY_NORMAL, + SpriteCallbackDummy, x - 12, y, 0); + if (spriteId != MAX_SPRITES) + { + gSprites[spriteId].oam.priority = 0; + StartSpriteAnim(&gSprites[spriteId], 3); + } + + spriteId = AddPseudoFieldObject(gabbyTyGfxId, SpriteCallbackDummy, x + 12, y, 0); + if (spriteId != MAX_SPRITES) + { + gSprites[spriteId].oam.priority = 0; + StartSpriteAnim(&gSprites[spriteId], 2); + } +} + +const struct OamData gOamData_83DBD40 = +{ + .y = 0, + .affineMode = 0, + .objMode = 0, + .mosaic = 0, + .bpp = 0, + .shape = 0, + .x = 0, + .matrixNum = 0, + .size = 3, + .tileNum = 0, + .priority = 0, + .paletteNum = 0, + .affineParam = 0, +}; + +const struct SpriteTemplate gSpriteTemplate_83DBD48 = +{ + .tileTag = 6, + .paletteTag = 4, + .oam = &gOamData_83DBD40, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = SpriteCallbackDummy, +}; + +const struct CompressedSpriteSheet gUnknown_083DBD60 = {gMenuWordGroupIndicator_Gfx, 4096, 0x0007}; + +const struct SpritePalette gUnknown_083DBD68 = {gMenuWordGroupIndicator_Pal, 0x0005}; + +const struct OamData gOamData_83DBD70 = +{ + .y = 0, + .affineMode = 0, + .objMode = 0, + .mosaic = 0, + .bpp = 0, + .shape = 1, + .x = 0, + .matrixNum = 0, + .size = 3, + .tileNum = 0, + .priority = 0, + .paletteNum = 0, + .affineParam = 0, +}; + +const union AnimCmd gSpriteAnim_83DBD78[] = +{ + ANIMCMD_FRAME(96, 3), + ANIMCMD_END, +}; + +const union AnimCmd gSpriteAnim_83DBD80[] = +{ + ANIMCMD_FRAME(64, 4), + ANIMCMD_FRAME(96, 4), + ANIMCMD_FRAME(64, 4), + ANIMCMD_FRAME(0, 4), + ANIMCMD_END, +}; + +const union AnimCmd gSpriteAnim_83DBD94[] = +{ + ANIMCMD_FRAME(64, 4), + ANIMCMD_FRAME(96, 4), + ANIMCMD_FRAME(64, 4), + ANIMCMD_FRAME(32, 4), + ANIMCMD_END, +}; + +const union AnimCmd gSpriteAnim_83DBDA8[] = +{ + ANIMCMD_FRAME(64, 2), + ANIMCMD_FRAME(32, 2), + ANIMCMD_END, +}; + +const union AnimCmd gSpriteAnim_83DBDB4[] = +{ + ANIMCMD_FRAME(64, 2), + ANIMCMD_FRAME(0, 2), + ANIMCMD_END, +}; + +const union AnimCmd gSpriteAnim_83DBDC0[] = +{ + ANIMCMD_FRAME(64, 2), + ANIMCMD_FRAME(96, 2), + ANIMCMD_END, +}; + +const union AnimCmd *const gSpriteAnimTable_83DBDCC[] = +{ + gSpriteAnim_83DBD78, + gSpriteAnim_83DBD80, + gSpriteAnim_83DBD94, + gSpriteAnim_83DBDA8, + gSpriteAnim_83DBDB4, + gSpriteAnim_83DBDC0, +}; + +const struct SpriteTemplate gSpriteTemplate_83DBDE4 = +{ + .tileTag = 7, + .paletteTag = 5, + .oam = &gOamData_83DBD70, + .anims = gSpriteAnimTable_83DBDCC, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = SpriteCallbackDummy, +}; + +void sub_80E8CEC(void) +{ + u8 spriteId; + + LoadCompressedObjectPic(&gUnknown_083DBD60); + LoadSpritePalette(&gUnknown_083DBD68); + + spriteId = CreateSprite(&gSpriteTemplate_83DBDE4, 224, 88, 0); + if (spriteId != MAX_SPRITES) + gEasyChatStruct->unk9C74 = &gSprites[spriteId]; + else + gEasyChatStruct->unk9C74 = NULL; +} + +void sub_80E8D54(void) +{ + if (gEasyChatStruct->unk9C74 != NULL) + { + if (gEasyChatStruct->unk26 == 0) + StartSpriteAnim(gEasyChatStruct->unk9C74, 1); + else + StartSpriteAnim(gEasyChatStruct->unk9C74, 2); + } +} + +void sub_80E8D8C(u8 a) +{ + if (gEasyChatStruct->unk9C74 != NULL) + { + if (a != 0) + { + if (gEasyChatStruct->unk26 == 0) + StartSpriteAnim(gEasyChatStruct->unk9C74, 3); + else + StartSpriteAnim(gEasyChatStruct->unk9C74, 4); + } + else + { + StartSpriteAnim(gEasyChatStruct->unk9C74, 5); + } + } +} + +const u16 gUnknown_083DBDFC[] = INCBIN_U16("graphics/unknown/unknown_3DBDFC.gbapal"); + +const u16 gUnknown_083DBE1C[] = +{ + 0x300, 0x300, 0x300, 0x300, 0x300, 0x300, 0x300, 0x300, 0x300, + 0x301, 0x301, 0x301, 0x301, 0x301, 0x300, 0x300, 0x300, 0x300, +}; + +const u16 gUnknown_083DBE40[] = INCBIN_U16("graphics/unknown/unknown_3DBE40.gbapal"); + +// unused tilemap? +const u16 gUnused_083DBE60[] = +{ + 0x5036, 0x5037, 0x5038, 0x5039, 0x503A, 0x503B, + 0x5046, 0x5047, 0x5048, 0x5049, 0x504A, 0x504B, + 0x5056, 0x5057, 0x5058, 0x5059, 0x505A, 0x505B, + 0x5030, 0x5031, 0x5032, 0x5033, 0x5034, 0x5035, + 0x5040, 0x5041, 0x5042, 0x5043, 0x5044, 0x5045, + 0x5050, 0x5051, 0x5052, 0x5053, 0x5054, 0x5055, +}; + +const u8 gUnknown_083DBEA8[] = _("{CLEAR_TO 88}"); + +void sub_80E8DD8(void) +{ + REG_BG0HOFS = 0; + REG_BG0VOFS = 0; + REG_BG1HOFS = 0; + REG_BG1VOFS = 0; + REG_BG2VOFS = 0; + REG_BG2HOFS = 0; + REG_BG3HOFS = 0; + REG_BG3VOFS = 0; + + REG_BG0CNT = 0x8B00; + REG_BG1CNT = 0x0D09; + + CpuCopy16(gUnknown_08E945D0, gEasyChatStruct->unk1C8, 0x500); + LZ77UnCompWram(gUnknown_08E953D0, gEasyChatStruct->unk6C8); + LZ77UnCompVram(gMenuWordGroupFrame_Gfx, (void *)(VRAM + 0x8000)); + CpuCopy16(gEasyChatStruct->unk1C8, (void *)(VRAM + 0x6800), 0x500); + LoadPalette(gMenuWordGroupFrame1_Pal, 64, 64); + + REG_BG2CNT = 0x0E02; + + DmaClear16(3, (void *)(VRAM + 0x7000), 0x800); + DmaCopy16Defvars(3, gUnknown_08E9AB00, (void *)(VRAM + 0x6000), 64); + LZ77UnCompVram(gUnknown_08E9AB60, (void *)(VRAM + 0x7000)); + LoadPalette(gUnknown_08E9AB40, 0, 32); + LoadPalette(gUnknown_083DBDFC, 16, 32); + + REG_BG3CNT = 0x0F0F; + + DmaClear32(3, (void *)(VRAM + 0x7800), 0x800); + LoadPalette(gUnknown_083DBE40, 32, 32); + gPlttBufferUnfaded[63] = RGB(31, 31, 31); + gPlttBufferUnfaded[49] = RGB(27, 26, 27); + gPlttBufferUnfaded[56] = RGB(28, 28, 28); + gPlttBufferFaded[63] = RGB(31, 31, 31); + gPlttBufferFaded[49] = RGB(27, 26, 27); + gPlttBufferFaded[56] = RGB(28, 28, 28); + + gEasyChatStruct->unkBC = 0; + sub_80E8FA4(); + sub_80E948C(); + sub_80E9198(10); + sub_80E91D4(0); + sub_80E95A4(); + + REG_BLDCNT = 0; +} + +// The components are ORed in the reverse order from the normal RGB macro +#define RGB_(r, g, b) ((((b) & 0x1F) << 10) | (((g) & 0x1F) << 5) | ((r) & 0x1F)) + +#define R_VAL(color) ((color) & 0x1F) +#define G_VAL(color) (((color) >> 5) & 0x1F) +#define B_VAL(color) (((color) >> 10) & 0x1F) + +void sub_80E8FA4(void) +{ + u16 i; + u16 r3; + u16 r4; + s32 sp0[3]; + s32 spC[3]; + s32 sp18[3]; + + for (i = 0; i < 3; i++) + { + sp0[0] = R_VAL(*(gMenuWordGroupFrame2_Pal + i + 1)) << 8; + spC[0] = R_VAL(*(gMenuWordGroupFrame2_Pal + i + 4)) << 8; + sp0[1] = G_VAL(*(gMenuWordGroupFrame2_Pal + i + 1)) << 8; + spC[1] = G_VAL(*(gMenuWordGroupFrame2_Pal + i + 4)) << 8; + sp0[2] = B_VAL(*(gMenuWordGroupFrame2_Pal + i + 1)) << 8; + spC[2] = B_VAL(*(gMenuWordGroupFrame2_Pal + i + 4)) << 8; + + for (r3 = 0; r3 < 3; r3++) + sp18[r3] = (spC[r3] - sp0[r3]) / 8; + + for (r4 = 0; r4 < 8; r4++) + { + gEasyChatStruct->unk9C34[i][r4] = RGB_(sp0[0] >> 8, sp0[1] >> 8, sp0[2] >> 8); + for (r3 = 0; r3 < 3; r3++) + sp0[r3] += sp18[r3]; + } + gEasyChatStruct->unk9C34[i][r4] = RGB_(spC[0] >> 8, spC[1] >> 8, spC[2] >> 8); + } + gEasyChatStruct->unk9C32 = 0; +} + +void sub_80E9108(s8 a) +{ + u16 i; + + gEasyChatStruct->unk9C32 += a; + for (i = 0; i < 3; i++) + { + gPlttBufferUnfaded[81 + i] = gEasyChatStruct->unk9C34[i][gEasyChatStruct->unk9C32]; + gPlttBufferFaded[81 + i] = gEasyChatStruct->unk9C34[i][gEasyChatStruct->unk9C32]; + } +} + +void sub_80E9178(void) +{ + gEasyChatStruct->unk9C32 = 0; + sub_80E9108(0); +} + +void sub_80E9198(u8 a) +{ + gUnknown_03000740 = a; +} + +u8 sub_80E91A4(void) +{ + return gUnknown_03000740; +} + +void sub_80E91B0(const u8 *a, u8 b, u8 c, u8 d) +{ + sub_8072AB0(a, b * 8, c * 8, 176, d * 8, 1); +} + +void sub_80E91D4(u8 a) +{ + BasicInitMenuWindow(&gWindowConfig_81E6DA8); + + if (a == 10) + { + MenuZeroFillWindowRect(3, 14, 26, 19); + sub_80E9198(10); + return; + } + + if (sub_80E91A4() == 10) + MenuDrawTextWindow(3, 14, 26, 19); + + sub_80E9198(a); + switch (a) + { + case 0: + sub_80E91B0(gEasyChatStruct->unk9C80, 4, 15, 2); + sub_80E91B0(gEasyChatStruct->unk9CC9, 4, 17, 2); + break; + case 1: + sub_80E91B0(gEasyChatStruct->unk9D12, 4, 15, 2); + sub_80E91B0(gEasyChatStruct->unk9D5B, 4, 17, 2); + break; + case 2: + sub_80E91B0(gOtherText_TextDeletedConfirmPage1, 4, 15, 2); + sub_80E91B0(gOtherText_TextDeletedConfirmPage2, 4, 17, 2); + break; + case 3: + switch (gEasyChatStruct->unk8) + { + case 9: + sub_80E91B0(gOtherText_QuitGivingInfo, 4, 15, 4); + break; + case 4: + sub_80E91B0(gOtherText_StopGivingMail, 4, 15, 4); + break; + default: + sub_80E91B0(gOtherText_QuitEditing, 4, 15, 4); + break; + } + break; + case 4: + sub_80E91B0(gOtherText_EditedTextNoSavePage1, 4, 15, 2); + sub_80E91B0(gOtherText_EditedTextNoSavePage2, 4, 17, 2); + break; + case 5: + sub_80E91B0(gOtherText_EnterAPhraseOrWord, 4, 15, 4); + break; + case 6: + sub_80E91B0(gOtherText_TextNoDelete, 4, 15, 4); + break; + case 7: + sub_80E91B0(gOtherText_OnlyOnePhrase, 4, 15, 2); + sub_80E91B0(gOtherText_OriginalSongRestored, 4, 17, 2); + break; + case 8: + sub_80E91B0(gOtherText_TrendyAlready, 4, 15, 4); + break; + case 9: + sub_80E91B0(gOtherText_CombineTwoPhrases, 4, 15, 4); + break; + } +} + +void sub_80E9368(u8 a) +{ + const u8 *r4; + + switch (a) + { + case 0: + r4 = gOtherText_Profile; + break; + case 1: + r4 = gOtherText_AtBattleStart; + break; + case 2: + r4 = gOtherText_UponWinningBattle; + break; + case 3: + r4 = gOtherText_UponLosingBattle; + break; + case 6: + r4 = gOtherText_TheBardsSong; + break; + case 9: + r4 = gOtherText_WhatsHipHappening; + break; + case 5: + case 7: + case 8: + case 10: + case 11: + case 12: + r4 = gOtherText_Interview; + break; + case 13: + r4 = gOtherText_GoodSaying; + break; + default: + r4 = NULL; + break; + } + + BasicInitMenuWindow(&gWindowConfig_81E6D8C); + gEasyChatStruct->unk9F8E[0] = EXT_CTRL_CODE_BEGIN; + gEasyChatStruct->unk9F8E[1] = 5; + gEasyChatStruct->unk9F8E[2] = 1; + if (r4 != NULL) + { + sub_8072C74(gEasyChatStruct->unk9F8E + 3, r4, 240, 2); + MenuPrint(gEasyChatStruct->unk9F8E, 0, 0); + } + else + { + u8 *str = gEasyChatStruct->unk9F8E + 3; + + str[0] = EXT_CTRL_CODE_BEGIN; + str[1] = 0x11; + str[2] = 0x10; + str[3] = EOS; + + MenuPrint(gEasyChatStruct->unk9F8E, 0, 0); + MenuPrint(gEasyChatStruct->unk9F8E, 28, 0); + } + BasicInitMenuWindow(&gWindowConfig_81E6DA8); +} + +void sub_80E948C(void) +{ + switch (gEasyChatStruct->unk9) + { + case 4: + sub_809D104((void *)(VRAM + 0x6800), 3, 3, gUnknown_08E94AD0, 0, 26, 24, 6); + break; + case 5: + sub_809D104((void *)(VRAM + 0x6800), 14, 2, gUnknown_08E94AD0, 0, 18, 13, 8); + break; + case 0: + sub_809D104((void *)(VRAM + 0x6800), 2, 2, gUnknown_08E94AD0, 0, 10, 26, 8); + break; + case 1: + sub_809D104((void *)(VRAM + 0x6800), 2, 0, gUnknown_08E94AD0, 0, 0, 26, 10); + break; + case 2: + sub_809D104((void *)(VRAM + 0x6800), 14, 3, gUnknown_08E94AD0, 13, 18, 13, 4); + break; + case 3: + sub_809D104((void *)(VRAM + 0x6800), 3, 2, gUnknown_08E94AD0, 0, 32, 24, 4); + break; + } +} + +void sub_80E95A4(void) +{ + BasicInitMenuWindow(&gWindowConfig_81E6D8C); + switch (gEasyChatStruct->unk9) + { + case 4: + sub_80E9620(4, 6); + break; + case 5: + sub_80E9620(2, 17); + break; + case 0: + sub_80E9620(3, 5); + break; + case 1: + sub_80E9620(0, 5); + break; + case 2: + sub_80E9620(4, 17); + break; + case 3: + sub_80E9620(3, 6); + break; + } + BasicInitMenuWindow(&gWindowConfig_81E6DA8); +} + +void sub_80E9620(u16 a, u16 b) +{ + u16 i; + u16 j; + u16 r10 = 0; + u16 r7 = a; + + for (i = 0; i < gEasyChatStruct->unk84; i++) + { + u16 r6 = b; + + for (j = 0; j < gEasyChatStruct->unk83; j++) + { + if (r10 >= gEasyChatStruct->unkA) + { + MenuPrint(gUnknown_083DBEA8, r6, r7); + break; + } + if (gEasyChatStruct->unkC[r10] == 0xFFFF) + { + sub_8095C8C((void *)(VRAM + 0x7000), r6, r7, gUnknown_083DBE1C, 0, 0, 9, 2, 9); + r6 += 11; + } + else + { + sub_80EB218(gEasyChatStruct->unk9E14, gEasyChatStruct->unkC[r10], 11); + MenuPrint(gEasyChatStruct->unk9E14, r6, r7); + r6 += gEasyChatStruct->unk8C[i][j] + 11; + } + r10++; + } + r7 += 2; + } +} + +void sub_80E9744(void) +{ + BasicInitMenuWindow(&gWindowConfig_81E6D8C); + switch (gEasyChatStruct->unk9) + { + case 4: + sub_80E97C0(4, 6); + break; + case 5: + sub_80E97C0(2, 17); + break; + case 0: + sub_80E97C0(3, 5); + break; + case 1: + sub_80E97C0(0, 5); + break; + case 2: + sub_80E97C0(4, 17); + break; + case 3: + sub_80E97C0(3, 6); + break; + } + BasicInitMenuWindow(&gWindowConfig_81E6DA8); +} + +void sub_80E97C0(u16 a, u16 b) +{ + u8 i; + u8 r7 = 0; + + asm("":::"r9"); + + for (i = 0; i < gEasyChatStruct->unk84; i++) + { + u8 r6; + u8 *r2 = gEasyChatStruct->unk9E6E; + u32 r1; + + for (r6 = 0; r6 < gEasyChatStruct->unk83; r6++) + { + if (r7 >= gEasyChatStruct->unkA) + break; + if (gEasyChatStruct->unkC[r7] != 0xFFFF) + { + r2 = sub_80EB218(r2, gEasyChatStruct->unkC[r7], 0); + *r2++ = CHAR_SPACE; + } + r7++; + } + + r1 = gEasyChatStruct->unk83 * 11; + r2[0] = EXT_CTRL_CODE_BEGIN; + r2[1] = 0x13; + r2[2] = r1 * 8; + r2[3] = EOS; + + MenuPrint(gEasyChatStruct->unk9E6E, b, a); + + a += 2; + } +} + +void sub_80E98C4(void) +{ + u8 r1; + u8 r3; + + BasicInitMenuWindow(&gWindowConfig_81E6D8C); + switch (gEasyChatStruct->unk9) + { + case 4: + r1 = 4; + r3 = 2; + break; + case 5: + r1 = 3; + r3 = 2; + break; + case 0: + r1 = 3; + r3 = 2; + break; + case 1: + r1 = 1; + r3 = 3; + break; + case 2: + r1 = 4; + r3 = 1; + break; + case 3: + r1 = 3; + r3 = 1; + break; + default: + return; + } + MenuFillWindowRectWithBlankTile(2, r1, 27, r3 * 2 + r1 - 1); + BasicInitMenuWindow(&gWindowConfig_81E6DA8); +} + +void sub_80E9940(u8 *a, u8 b) +{ + u8 r4 = (b & 7); + + MenuFillWindowRectWithBlankTile(2, r4 * 2, 31, r4 * 2 + 1); + sub_80E9A7C(a, b); + sub_80E9A60(a, 2, r4 * 2); +} + +#if ENGLISH + +const u8 gUnknown_083DBEAC[][32] = +{ + _("{UNKNOWN_14 8} A B C D E F {UNKNOWN_14 0}others"), + _("{UNKNOWN_14 8} G H I J K L "), + _("{UNKNOWN_14 8} M N O P Q R S "), + _("{UNKNOWN_14 8} T U V W X Y Z "), +}; + +#else + +const u8 unk_83E7EB0[] = _("{UNKNOWN_14 8} A B C D E F {UNKNOWN_14 0}mehr"); +const u8 unk_83E7ECA[] = _("{UNKNOWN_14 8} G H I J K L "); +const u8 unk_83E7EE1[] = _("{UNKNOWN_14 8} M N O P Q R S "); +const u8 unk_83E7EF8[] = _("{UNKNOWN_14 8} T U V W X Y Z "); +const u8 *const gUnknown_083DBEAC[] = +{ + unk_83E7EB0, + unk_83E7ECA, + unk_83E7EE1, + unk_83E7EF8, + unk_83E7EB0 + 21, // pointer to "mehr". What is this for? +}; + +#endif + +void sub_80E9974(void) +{ + BasicInitMenuWindow(&gWindowConfig_81E6D54); + if (gEasyChatStruct->unk26 == 0) + { + u16 i; + + for (i = gEasyChatStruct->unk1B5; i < gEasyChatStruct->unk1B5 + 4; i++) + sub_80E9940(gEasyChatStruct->unk9DC9, i); + } + else + { + sub_80E9AD4(); + sub_80E9A60(gUnknown_083DBEAC[0], 2, 0); + sub_80E9A60(gUnknown_083DBEAC[1], 2, 2); + sub_80E9A60(gUnknown_083DBEAC[2], 2, 4); + sub_80E9A60(gUnknown_083DBEAC[3], 2, 6); + } +} + +void sub_80E9A14(void) +{ + sub_80E9A4C(); + if (gEasyChatStruct->unk26 == 0) + gEasyChatStruct->unk1BA += gEasyChatStruct->unk1B5 * 16; +} + +void sub_80E9A4C(void) +{ + gEasyChatStruct->unk1BA = 0; +} + +void sub_80E9A60(const u8 *a, u16 b, u16 c) +{ + c &= 0xF; + MenuPrint(a, b, c); +} + +void sub_80E9A7C(u8 *dest, u16 b) +{ + u16 i; + u16 r5 = b * 2; + + for (i = 0; i < 2; i++) + { + dest[0] = EXT_CTRL_CODE_BEGIN; + dest[1] = 0x12; + dest[2] = 88 * i; + dest += 3; + + dest = CopyEasyChatGroupName(dest, gEasyChatStruct->unk2A[b][i], 11); + r5++; + if (r5 >= gEasyChatStruct->unk28) + break; + } +} + +void sub_80E9AD4(void) +{ + u16 i; + + BasicInitMenuWindow(&gWindowConfig_81E6D54); + for (i = 0; i < 16; i++) + sub_80E9C74(i); +} + +void sub_80E9AF8(u16 a) +{ + u8 *r8; + u16 i; + + sub_80E9C74(a); + + r8 = gEasyChatStruct->unk9E14; + r8[0] = EXT_CTRL_CODE_BEGIN; + r8[1] = 0x11; + r8[2] = 0x10; + r8 += 3; + + if (gEasyChatStruct->unk7D != 0) + { + for (i = 0; i < gEasyChatStruct->unk99A6[a]; i++) + { + if (sub_80EB2D4(gEasyChatStruct->unk9A2A[a][i]) == 7) + BasicInitMenuWindow(&gWindowConfig_81E6D70); + else + BasicInitMenuWindow(&gWindowConfig_81E6D54); + sub_80EB218(r8, gEasyChatStruct->unk9A2A[a][i], 9); + sub_80E9A60(gEasyChatStruct->unk9E14, i * 11 + 4, a * 2); + } + } + else + { + BasicInitMenuWindow(&gWindowConfig_81E6D54); + for (i = 0; i < gEasyChatStruct->unk99A6[a]; i++) + { + sub_80EB218(r8, gEasyChatStruct->unk9A2A[a][i], 9); + sub_80E9A60(gEasyChatStruct->unk9E14, i * 11 + 4, a * 2); + } + } +} + +void sub_80E9C74(u16 a) +{ + a &= 7; + MenuFillWindowRectWithBlankTile(0, a * 2, 29, a * 2 + 1); +} + +void sub_80E9C94(void) +{ + u16 r5 = min(gEasyChatStruct->unk9A28, 4); + u16 i; + + for (i = 0; i < r5; i++) + sub_80E9AF8(gEasyChatStruct->unk9A29 + i); + while (i < 4) + sub_80E9C74(i++); +} + +void sub_80E9D00(void) +{ + u16 r4; + u16 r5; + + if (gEasyChatStruct->unk1C0 > 0) + { + r4 = gEasyChatStruct->unk1C0; + r5 = gEasyChatStruct->unk9A29 + 4; + } + else + { + r4 = -gEasyChatStruct->unk1C0; + r5 = gEasyChatStruct->unk9A29 - r4; + } + while (--r4 != 0xFFFF) + sub_80E9AF8(r5++); +} + +void sub_80E9D7C(void) +{ + u16 r6; + u16 r4; + u16 i; + + BasicInitMenuWindow(&gWindowConfig_81E6D54); + if (gEasyChatStruct->unk1C0 < 0) + { + r6 = -gEasyChatStruct->unk1C0; + r4 = gEasyChatStruct->unk1B5 - r6; + } + else + { + r6 = gEasyChatStruct->unk1C0; + r4 = gEasyChatStruct->unk1B5 + 4; + } + for (i = 0; i < r6; i++) + { + sub_80E9940(gEasyChatStruct->unk9DC9, r4); + r4++; + } +} + +void sub_80E9E08(u8 a) +{ + gEasyChatStruct->unk1BC = (gEasyChatStruct->unk1BA + gEasyChatStruct->unk1C0 * 16) & 0x7F; + gEasyChatStruct->unk1BF = (gEasyChatStruct->unk1C0 < 0) ? -a : a; +} + +bool8 sub_80E9E54(void) +{ + gEasyChatStruct->unk1BA = (gEasyChatStruct->unk1BA + gEasyChatStruct->unk1BF) & 0x7F; + return (gEasyChatStruct->unk1BA == gEasyChatStruct->unk1BC); +} + +void nullsub_23(void) +{ +} + +void sub_80E9E98(void) +{ + gEasyChatStruct->unkBE = 0; +} + +bool8 sub_80E9EA8(void) +{ + switch (gEasyChatStruct->unkBE) + { + case 0: + sub_80EA24C(); + gEasyChatStruct->unkBE++; + // fall through + case 1: + if (sub_80EA1E0() != 0) + { + sub_80EA4A4(); + gEasyChatStruct->unkBE++; + } + break; + case 2: + if (sub_80EA1E0() != 0) + { + sub_80EA704(); + gEasyChatStruct->unkBE++; + } + break; + case 3: + if (sub_80EA1E0() != 0) + gEasyChatStruct->unkBE++; + break; + case 4: + gEasyChatStruct->unkBE++; + break; + case 5: + return TRUE; + } + return FALSE; +} + +bool8 sub_80E9F50(void) +{ + switch (gEasyChatStruct->unkBE) + { + case 0: + nullsub_23(); + sub_80EA764(); + gEasyChatStruct->unkBE++; + // fall through + case 1: + if (sub_80EA1E0() != 0) + gEasyChatStruct->unkBE++; + break; + case 2: + sub_80EA5A0(); + gEasyChatStruct->unkBE++; + // fall through + case 3: + if (sub_80EA1E0() != 0) + gEasyChatStruct->unkBE++; + break; + case 4: + sub_80EA348(); + gEasyChatStruct->unkBE++; + // fall through + case 5: + if (sub_80EA1E0() != 0) + gEasyChatStruct->unkBE++; + break; + case 6: + return TRUE; + } + return FALSE; +} + +bool8 sub_80E9FD4(void) +{ + switch (gEasyChatStruct->unkBE) + { + case 0: + nullsub_23(); + sub_80EA5A0(); + gEasyChatStruct->unkBE++; + // fall through + case 1: + if (sub_80EA1E0() != 0) + return TRUE; + break; + } + return FALSE; +} + +bool8 sub_80EA014(void) +{ + switch (gEasyChatStruct->unkBE) + { + case 0: + sub_80EA4A4(); + gEasyChatStruct->unkBE++; + // fall through + case 1: + if (sub_80EA1E0() != 0) + return TRUE; + break; + } + return FALSE; +} + +bool8 sub_80EA050(void) +{ + switch (gEasyChatStruct->unkBE) + { + case 0: + nullsub_23(); + sub_80EA764(); + gEasyChatStruct->unkBE++; + break; + case 1: + if (sub_80EA1E0() != 0) + { + sub_80EA7F4(); + gEasyChatStruct->unkBE++; + } + break; + case 2: + sub_80E9108(1); + if (sub_80EA1E0() != 0) + { + sub_80EA8BC(); + gEasyChatStruct->unkBE++; + } + break; + case 3: + sub_80E9108(1); + if (sub_80EA1E0() != 0) + gEasyChatStruct->unkBE++; + break; + case 4: + return TRUE; + } + return FALSE; +} + +bool8 sub_80EA0E4(void) +{ + switch (gEasyChatStruct->unkBE) + { + case 0: + sub_80EA948(); + gEasyChatStruct->unkBE++; + // fall through + case 1: + sub_80E9108(-1); + if (sub_80EA1E0() != 0) + { + sub_80EAA44(); + gEasyChatStruct->unkBE++; + } + break; + case 2: + sub_80E9108(-1); + if (sub_80EA1E0() != 0) + { + sub_80EA704(); + gEasyChatStruct->unkBE++; + } + break; + case 3: + if (sub_80EA1E0() != 0) + gEasyChatStruct->unkBE++; + break; + case 4: + return TRUE; + } + return FALSE; +} + +bool8 sub_80EA184(void) +{ + switch (gEasyChatStruct->unkBE) + { + case 0: + sub_80EAAD4(); + gEasyChatStruct->unkBE++; + // fall through + case 1: + if (sub_80EA1E0() != 0) + gEasyChatStruct->unkBE++; + break; + case 2: + sub_80E9178(); + return TRUE; + } + return FALSE; +} + +bool8 sub_80EA1E0(void) +{ + u16 i; + + if (gEasyChatStruct->unkC4 != 0) + { + for (i = 0; i < gEasyChatStruct->unkC2; i++) + { + sub_80EAC0C(gEasyChatStruct->unkC8[i]); + sub_80EAC48(&gEasyChatStruct->unk148[i]); + } + gEasyChatStruct->unkBC = 1; + gEasyChatStruct->unkC4--; + return FALSE; + } + return TRUE; +} + +void sub_80EA24C(void) +{ + sub_80EABD4(gEasyChatStruct->unkC8[0], 13, 14, 13, 15, -2, 0, 0, 0); + sub_80EAC30(&gEasyChatStruct->unk148[0], 0, 0, 0, 0, gEasyChatStruct->unk6C8); + + sub_80EABD4(gEasyChatStruct->unkC8[1], 12, 14, 12, 15, 0, 0, 2, 0); + sub_80EAC30(&gEasyChatStruct->unk148[1], 30, 0, -2, 0, gEasyChatStruct->unk6C8); + + sub_80EABD4(gEasyChatStruct->unkC8[2], 13, 15, 13, 16, -2, 0, 0, 0); + sub_80EAC30(&gEasyChatStruct->unk148[2], 0, 9, 0, 0, gEasyChatStruct->unk6C8); + + sub_80EABD4(gEasyChatStruct->unkC8[3], 12, 15, 12, 16, 0, 0, 2, 0); + sub_80EAC30(&gEasyChatStruct->unk148[3], 30, 9, -2, 0, gEasyChatStruct->unk6C8); + + gEasyChatStruct->unkC2 = 4; + gEasyChatStruct->unkC4 = 6; +} + +void sub_80EA348(void) +{ + sub_80EABD4(gEasyChatStruct->unkC8[0], 1, 14, 13, 15, 2, 0, 0, 0); + sub_80EAC30(&gEasyChatStruct->unk148[0], 0, 0, 0, 0, gEasyChatStruct->unk6C8); + + sub_80EABD4(gEasyChatStruct->unkC8[1], 12, 14, 24, 15, 0, 0, -2, 0); + sub_80EAC30(&gEasyChatStruct->unk148[1], 18, 0, 2, 0, gEasyChatStruct->unk6C8); + + sub_80EABD4(gEasyChatStruct->unkC8[2], 1, 15, 13, 16, 2, 0, 0, 0); + sub_80EAC30(&gEasyChatStruct->unk148[2], 0, 9, 0, 0, gEasyChatStruct->unk6C8); + + sub_80EABD4(gEasyChatStruct->unkC8[3], 12, 15, 24, 16, 0, 0, -2, 0); + sub_80EAC30(&gEasyChatStruct->unk148[3], 18, 9, 2, 0, gEasyChatStruct->unk6C8); + + sub_80EABD4(gEasyChatStruct->unkC8[4], 1, 14, 1, 16, 0, 0, 2, 0); + sub_80EAC30(&gEasyChatStruct->unk148[4], 1, 14, 0, 0, gEasyChatStruct->unk1C8); + + sub_80EABD4(gEasyChatStruct->unkC8[5], 24, 14, 24, 16, -2, 0, 0, 0); + sub_80EAC30(&gEasyChatStruct->unk148[5], 24, 14, -2, 0, gEasyChatStruct->unk1C8); + + gEasyChatStruct->unkC2 = 6; + gEasyChatStruct->unkC4 = 6; +} + +void sub_80EA4A4(void) +{ + sub_80EABD4(gEasyChatStruct->unkC8[0], 1, 14, 13, 15, 0, -1, 0, 0); + sub_80EAC30(&gEasyChatStruct->unk148[0], 0, 0, 0, 0, gEasyChatStruct->unk6C8); + + sub_80EABD4(gEasyChatStruct->unkC8[1], 12, 14, 24, 15, 0, -1, 0, 0); + sub_80EAC30(&gEasyChatStruct->unk148[1], 18, 0, 0, 0, gEasyChatStruct->unk6C8); + + sub_80EABD4(gEasyChatStruct->unkC8[2], 1, 15, 13, 16, 0, 0, 0, 1); + sub_80EAC30(&gEasyChatStruct->unk148[2], 0, 9, 0, -1, gEasyChatStruct->unk6C8); + + sub_80EABD4(gEasyChatStruct->unkC8[3], 12, 15, 24, 16, 0, 0, 0, 1); + sub_80EAC30(&gEasyChatStruct->unk148[3], 18, 9, 0, -1, gEasyChatStruct->unk6C8); + + gEasyChatStruct->unkC2 = 4; + gEasyChatStruct->unkC4 = 4; +} + +void sub_80EA5A0(void) +{ + sub_80EABD4(gEasyChatStruct->unkC8[0], 1, 10, 13, 15, 0, 1, 0, 0); + sub_80EAC30(&gEasyChatStruct->unk148[0], 0, 0, 0, 0, gEasyChatStruct->unk6C8); + + sub_80EABD4(gEasyChatStruct->unkC8[1], 12, 10, 24, 15, 0, 1, 0, 0); + sub_80EAC30(&gEasyChatStruct->unk148[1], 18, 0, 0, 0, gEasyChatStruct->unk6C8); + + sub_80EABD4(gEasyChatStruct->unkC8[2], 1, 15, 13, 20, 0, 0, 0, -1); + sub_80EAC30(&gEasyChatStruct->unk148[2], 0, 5, 0, 1, gEasyChatStruct->unk6C8); + + sub_80EABD4(gEasyChatStruct->unkC8[3], 12, 15, 24, 20, 0, 0, 0, -1); + sub_80EAC30(&gEasyChatStruct->unk148[3], 18, 5, 0, 1, gEasyChatStruct->unk6C8); + + sub_80EABD4(gEasyChatStruct->unkC8[4], 1, 10, 24, 10, 0, 0, 0, 1); + sub_80EAC30(&gEasyChatStruct->unk148[4], 1, 10, 0, 0, gEasyChatStruct->unk1C8); + + sub_80EABD4(gEasyChatStruct->unkC8[5], 1, 20, 24, 20, 0, -1, 0, 0); + sub_80EAC30(&gEasyChatStruct->unk148[5], 1, 20, 0, -1, gEasyChatStruct->unk1C8); + + gEasyChatStruct->unkC2 = 6; + gEasyChatStruct->unkC4 = 4; +} + +void sub_80EA704(void) +{ + sub_80EABD4(gEasyChatStruct->unkC8[0], 24, 12, 25, 20, 0, 0, 1, 0); + sub_80EAC30(&gEasyChatStruct->unk148[0], 5, 10, -1, 0, gEasyChatStruct->unk6C8); + + gEasyChatStruct->unkC2 = 1; + gEasyChatStruct->unkC4 = 5; +} + +void sub_80EA764(void) +{ + sub_80EABD4(gEasyChatStruct->unkC8[0], 24, 12, 30, 20, 0, 0, -1, 0); + sub_80EAC30(&gEasyChatStruct->unk148[0], 0, 10, 1, 0, gEasyChatStruct->unk6C8); + + sub_80EABD4(gEasyChatStruct->unkC8[1], 30, 12, 31, 20, -1, 0, 0, 0); + sub_80EAC30(&gEasyChatStruct->unk148[1], 30, 12, -1, 0, gEasyChatStruct->unk1C8); + + gEasyChatStruct->unkC2 = 2; + gEasyChatStruct->unkC4 = 6; +} + +void sub_80EA7F4(void) +{ + sub_80EABD4(gEasyChatStruct->unkC8[0], 20, 10, 25, 20, 0, 0, 1, 0); + sub_80EAC30(&gEasyChatStruct->unk148[0], 25, 0, -1, 0, gEasyChatStruct->unk6C8); + + sub_80EABD4(gEasyChatStruct->unkC8[1], 0, 10, 1, 20, 0, 0, 1, 0); + sub_80EAC30(&gEasyChatStruct->unk148[1], 0, 10, 0, 0, gEasyChatStruct->unk1C8); + + sub_80EABD4(gEasyChatStruct->unkC8[2], 1, 10, 4, 20, 1, 0, 0, 0); + sub_80EAC30(&gEasyChatStruct->unk148[2], 0, 0, 0, 0, gEasyChatStruct->unk6C8); + + gEasyChatStruct->unkC2 = 3; + gEasyChatStruct->unkC4 = 2; +} + +void sub_80EA8BC(void) +{ + sub_80EABD4(gEasyChatStruct->unkC8[0], 3, 10, 4, 20, 0, 0, 0, 0); + sub_80EAC30(&gEasyChatStruct->unk148[0], 0, 0, 0, 0, gEasyChatStruct->unk6C8); + + sub_80EABD4(gEasyChatStruct->unkC8[1], 0, 10, 2, 20, 0, 0, 0, 0); + sub_80EAC30(&gEasyChatStruct->unk148[1], 0, 10, 0, 0, gEasyChatStruct->unk1C8); + + gEasyChatStruct->unkC2 = 2; + gEasyChatStruct->unkC4 = 1; +} + +void sub_80EA948(void) +{ + sub_80EABD4(gEasyChatStruct->unkC8[0], 0, 10, 2, 20, 0, 0, -1, 0); + sub_80EAC30(&gEasyChatStruct->unk148[0], 0, 10, 0, 0, gEasyChatStruct->unk1C8); + + sub_80EABD4(gEasyChatStruct->unkC8[1], 3, 10, 5, 20, -1, 0, 0, 0); + sub_80EAC30(&gEasyChatStruct->unk148[1], 0, 0, 0, 0, gEasyChatStruct->unk6C8); + + sub_80EABD4(gEasyChatStruct->unkC8[2], 26, 10, 30, 20, -1, 0, 0, 0); + sub_80EAC30(&gEasyChatStruct->unk148[2], 26, 10, -1, 0, gEasyChatStruct->unk1C8); + + sub_80EABD4(gEasyChatStruct->unkC8[3], 25, 10, 26, 20, -1, 0, -1, 0); + sub_80EAC30(&gEasyChatStruct->unk148[3], 29, 0, 0, 0, gEasyChatStruct->unk6C8); + + gEasyChatStruct->unkC2 = 4; + gEasyChatStruct->unkC4 = 2; +} + +void sub_80EAA44(void) +{ + sub_80EABD4(gEasyChatStruct->unkC8[0], 24, 10, 30, 20, 0, 0, 0, 0); + sub_80EAC30(&gEasyChatStruct->unk148[0], 24, 10, 0, 0, gEasyChatStruct->unk1C8); + + sub_80EABD4(gEasyChatStruct->unkC8[1], 23, 10, 24, 20, 0, 0, -1, 0); + sub_80EAC30(&gEasyChatStruct->unk148[1], 29, 0, 0, 0, gEasyChatStruct->unk6C8); + + gEasyChatStruct->unkC2 = 2; + gEasyChatStruct->unkC4 = 1; +} + +void sub_80EAAD4(void) +{ + sub_80EABD4(gEasyChatStruct->unkC8[0], 0, 10, 30, 15, 0, 1, 0, 0); + sub_80EAC30(&gEasyChatStruct->unk148[0], 0, 0, 0, 0, gEasyChatStruct->unk6C8); + + sub_80EABD4(gEasyChatStruct->unkC8[1], 0, 15, 30, 20, 0, 0, 0, -1); + sub_80EAC30(&gEasyChatStruct->unk148[1], 0, 5, 0, 1, gEasyChatStruct->unk6C8); + + sub_80EABD4(gEasyChatStruct->unkC8[2], 0, 10, 30, 10, 0, 0, 0, 1); + sub_80EAC30(&gEasyChatStruct->unk148[2], 0, 10, 0, 0, gEasyChatStruct->unk1C8); + + sub_80EABD4(gEasyChatStruct->unkC8[3], 0, 20, 30, 20, 0, -1, 0, 0); + sub_80EAC30(&gEasyChatStruct->unk148[3], 0, 20, 0, -1, gEasyChatStruct->unk1C8); + + gEasyChatStruct->unkC2 = 4; + gEasyChatStruct->unkC4 = 5; +} + +void sub_80EABD4(u16 *a, u16 b, u16 c, u16 d, u16 e, u16 f, u16 g, u16 h, u16 i) +{ + a[0] = b; + a[1] = d; + a[2] = c; + a[3] = e; + a[4] = f; + a[5] = h; + a[6] = g; + a[7] = i; +} + +void sub_80EAC0C(u16 *a) +{ + a[0] += a[4]; + a[1] += a[5]; + a[2] += a[6]; + a[3] += a[7]; +} + +void sub_80EAC30(struct UnknownEasyChatStruct1 *a, u16 b, u16 c, u16 d, u16 e, void *f) +{ + a->unk0 = b; + a->unk2 = c; + a->unk4 = d; + a->unk6 = e; + a->unk8 = f; +} + +void sub_80EAC48(struct UnknownEasyChatStruct1 *a) +{ + a->unk0 += a->unk4; + a->unk2 += a->unk6; +} + +void sub_80EAC5C(void) +{ + u16 i; + + if (gEasyChatStruct->unkBC != 0) + { + for (i = 0; i < gEasyChatStruct->unkC2; i++) + sub_80EACBC((void *)(VRAM + 0x6800), gEasyChatStruct->unkC8[i], &gEasyChatStruct->unk148[i]); + gEasyChatStruct->unkBC = 0; + } +} + +void sub_80EACBC(void *a, u16 *b, struct UnknownEasyChatStruct1 *c) +{ + s16 r6 = b[1] - b[0]; + s16 r5 = b[3] - b[2]; + + if (r6 > 0 && r5 > 0) + sub_809D104(a, b[0], b[2], c->unk8, c->unk0, c->unk2, r6, r5); +} + +// Strange... +void sub_80EAD08(void) +{ + u16 *r4; + u16 r2; + u16 i; + + r4 = gUnknown_03004DE0[gUnknown_03004DC0.srcBank]; + r4 += 88; + r2 = (gEasyChatStruct->unk1BA - 88) & 0xFF; + + for (i = 0; i < 64; i++) + { + if (gEasyChatStruct->unk1BA + i == 128) + r2 = (-i - 88) & 0xFF; + *r4++ = r2; + } +} + +extern const u8 *const gEasyChatGroupNames[]; +extern const u8 gEasyChatGroupSizes[]; +extern const u16 gEasyChatWordsByLetter[]; +extern const u16 gEasyChatWordsAlphabetized[]; + +u8 *CopyEasyChatGroupName(u8 *dest, u8 group, int unused) +{ + return StringCopy(dest, gEasyChatGroupNames[group]); +} + +bool8 sub_80EAD7C(u8 group) +{ + switch (group) + { + case EC_GROUP_TRENDY_SAYING: + return FlagGet(FLAG_SYS_HIPSTER_MEET); + case EC_GROUP_EVENTS: + case EC_GROUP_MOVE_1: + case EC_GROUP_MOVE_2: + return FlagGet(FLAG_SYS_GAME_CLEAR); + case EC_GROUP_POKEMON_2: + return sub_80EB9C8(); + default: + return TRUE; + } +} + +bool8 sub_80EADC0(u8 group, u16 word) +{ + switch (group) + { + case EC_GROUP_TRENDY_SAYING: + if (gEasyChatStruct->unk40[2][11 + group] == 0) + return FALSE; + return sub_80EB868(word); + case EC_GROUP_POKEMON_1: + return GetSetPokedexFlag(SpeciesToNationalPokedexNum(word), 0); + case EC_GROUP_EVENTS: + case EC_GROUP_MOVE_1: + case EC_GROUP_MOVE_2: + if (gEasyChatStruct->unk40[2][11 + group] == 0) + return FALSE; + return TRUE; + case EC_GROUP_POKEMON_2: + return sub_80EB9C8(); + default: + return TRUE; + } +} + +u16 sub_80EAE88(u8 group) +{ + switch (group) + { + case EC_GROUP_POKEMON_1: + return GetHoennPokedexCount(0); + case EC_GROUP_TRENDY_SAYING: + return sub_80EB8C0(); + default: + if (sub_80EAD7C(group)) + return gEasyChatGroupSizes[group]; + return FALSE; + } +} + +#if GERMAN +__attribute__((naked)) +void sub_80EAECC(void) +{ + asm(".syntax unified\n\ + push {r4-r7,lr}\n\ + mov r7, r10\n\ + mov r6, r9\n\ + mov r5, r8\n\ + push {r5-r7}\n\ + sub sp, 0x10\n\ + movs r7, 0\n\ + ldr r1, _080EAF08 @ =gEasyChatStruct\n\ + ldr r0, [r1]\n\ + ldr r3, _080EAF0C @ =0x0000446c\n\ + adds r3, r0, r3\n\ + str r3, [sp, 0x4]\n\ +_080EAEE4:\n\ + ldr r1, _080EAF10 @ =gEasyChatWordsByLetter\n\ + lsls r2, r7, 1\n\ + adds r0, r2, r1\n\ + ldrh r4, [r0]\n\ + adds r3, r7, 0x1\n\ + lsls r0, r3, 1\n\ + adds r0, r1\n\ + ldrh r0, [r0]\n\ + str r0, [sp]\n\ + ldr r0, [sp, 0x4]\n\ + adds r1, r0, r2\n\ + movs r0, 0\n\ + strh r0, [r1]\n\ + mov r9, r0\n\ + adds r6, r4, 0\n\ + mov r10, r2\n\ + str r3, [sp, 0x8]\n\ + b _080EB00C\n\ + .align 2, 0\n\ +_080EAF08: .4byte gEasyChatStruct\n\ +_080EAF0C: .4byte 0x0000446c\n\ +_080EAF10: .4byte gEasyChatWordsByLetter\n\ +_080EAF14:\n\ + ldr r2, _080EAFAC @ =gEasyChatWordsAlphabetized\n\ + adds r0, r6, 0\n\ + adds r1, r0, 0x1\n\ + lsls r1, 16\n\ + lsrs r6, r1, 16\n\ + lsls r0, 1\n\ + adds r0, r2\n\ + ldrh r1, [r0]\n\ + adds r4, r1, 0\n\ + ldr r0, _080EAFB0 @ =0x0000feff\n\ + cmp r1, r0\n\ + bls _080EAFC8\n\ + movs r0, 0xFF\n\ + ands r1, r0\n\ + movs r3, 0\n\ + subs r0, r1, 0x1\n\ + lsls r0, 16\n\ + lsrs r5, r0, 16\n\ + ldr r0, _080EAFB4 @ =0x0000ffff\n\ + cmp r5, r0\n\ + beq _080EB00C\n\ + lsls r0, r7, 4\n\ + adds r0, r7\n\ + lsls r0, 3\n\ + subs r0, r7\n\ + lsls r0, 2\n\ + mov r8, r0\n\ +_080EAF4A:\n\ + adds r1, r6, 0\n\ + adds r0, r1, 0x1\n\ + lsls r0, 16\n\ + lsrs r6, r0, 16\n\ + lsls r1, 1\n\ + ldr r0, _080EAFAC @ =gEasyChatWordsAlphabetized\n\ + adds r1, r0\n\ + ldrh r4, [r1]\n\ + lsrs r0, r4, 9\n\ + ldr r1, _080EAFB8 @ =0x000001ff\n\ + adds r2, r1, 0\n\ + adds r1, r4, 0\n\ + ands r1, r2\n\ + str r3, [sp, 0xC]\n\ + bl sub_80EADC0\n\ + lsls r0, 24\n\ + ldr r3, [sp, 0xC]\n\ + cmp r0, 0\n\ + beq _080EAF9E\n\ + cmp r3, 0\n\ + bne _080EAF9E\n\ + ldr r3, _080EAFBC @ =gEasyChatStruct\n\ + ldr r2, [r3]\n\ + mov r1, r9\n\ + adds r0, r1, 0x1\n\ + lsls r0, 16\n\ + lsrs r0, 16\n\ + mov r9, r0\n\ + lsls r1, 1\n\ + add r1, r8\n\ + ldr r3, _080EAFC0 @ =0x00000b78\n\ + adds r0, r2, r3\n\ + adds r0, r1\n\ + strh r4, [r0]\n\ + ldr r0, _080EAFC4 @ =0x0000446c\n\ + adds r2, r0\n\ + add r2, r10\n\ + ldrh r0, [r2]\n\ + adds r0, 0x1\n\ + strh r0, [r2]\n\ + movs r3, 0x1\n\ +_080EAF9E:\n\ + subs r0, r5, 0x1\n\ + lsls r0, 16\n\ + lsrs r5, r0, 16\n\ + ldr r1, _080EAFB4 @ =0x0000ffff\n\ + cmp r5, r1\n\ + bne _080EAF4A\n\ + b _080EB00C\n\ + .align 2, 0\n\ +_080EAFAC: .4byte gEasyChatWordsAlphabetized\n\ +_080EAFB0: .4byte 0x0000feff\n\ +_080EAFB4: .4byte 0x0000ffff\n\ +_080EAFB8: .4byte 0x000001ff\n\ +_080EAFBC: .4byte gEasyChatStruct\n\ +_080EAFC0: .4byte 0x00000b78\n\ +_080EAFC4: .4byte 0x0000446c\n\ +_080EAFC8:\n\ + lsrs r0, r4, 9\n\ + ldr r3, _080EB030 @ =0x000001ff\n\ + adds r2, r3, 0\n\ + adds r1, r4, 0\n\ + ands r1, r2\n\ + bl sub_80EADC0\n\ + lsls r0, 24\n\ + cmp r0, 0\n\ + beq _080EB00C\n\ + ldr r0, _080EB034 @ =gEasyChatStruct\n\ + ldr r2, [r0]\n\ + mov r1, r9\n\ + adds r0, r1, 0x1\n\ + lsls r0, 16\n\ + lsrs r0, 16\n\ + mov r9, r0\n\ + lsls r1, 1\n\ + lsls r0, r7, 4\n\ + adds r0, r7\n\ + lsls r0, 3\n\ + subs r0, r7\n\ + lsls r0, 2\n\ + adds r1, r0\n\ + ldr r3, _080EB038 @ =0x00000b78\n\ + adds r0, r2, r3\n\ + adds r0, r1\n\ + strh r4, [r0]\n\ + ldr r0, _080EB03C @ =0x0000446c\n\ + adds r2, r0\n\ + add r2, r10\n\ + ldrh r0, [r2]\n\ + adds r0, 0x1\n\ + strh r0, [r2]\n\ +_080EB00C:\n\ + ldr r1, [sp]\n\ + cmp r6, r1\n\ + bcs _080EB014\n\ + b _080EAF14\n\ +_080EB014:\n\ + ldr r3, [sp, 0x8]\n\ + lsls r0, r3, 16\n\ + lsrs r7, r0, 16\n\ + cmp r7, 0x1A\n\ + bhi _080EB020\n\ + b _080EAEE4\n\ +_080EB020:\n\ + add sp, 0x10\n\ + pop {r3-r5}\n\ + mov r8, r3\n\ + mov r9, r4\n\ + mov r10, r5\n\ + pop {r4-r7}\n\ + pop {r0}\n\ + bx r0\n\ + .align 2, 0\n\ +_080EB030: .4byte 0x000001ff\n\ +_080EB034: .4byte gEasyChatStruct\n\ +_080EB038: .4byte 0x00000b78\n\ +_080EB03C: .4byte 0x0000446c\n\ + .syntax divided\n"); +} +#else +void sub_80EAECC(void) +{ + u16 i; + u16 r9; + u16 r6; + u16 r5; + bool8 r7; + + for (i = 0; i < 27; i++) + { + u16 word = gEasyChatWordsByLetter[i]; + u16 sp0 = gEasyChatWordsByLetter[i + 1]; + + gEasyChatStruct->unk4142[i] = 0; + r9 = 0; + r6 = word; + while (r6 < sp0) + { + u16 word = gEasyChatWordsAlphabetized[r6++]; + + if (word > 0xFEFF) + { + r5 = word & 0xFF; + r7 = FALSE; + while (--r5 != 0xFFFF) + { + word = gEasyChatWordsAlphabetized[r6++]; + if (sub_80EADC0(EC_GROUP(word), EC_INDEX(word)) && !r7) + { + gEasyChatStruct->unkB78[i][r9++] = word; + gEasyChatStruct->unk4142[i]++; + r7 = TRUE; + } + } + } + else + { + if (sub_80EADC0(EC_GROUP(word), EC_INDEX(word))) + { + gEasyChatStruct->unkB78[i][r9++] = word; + gEasyChatStruct->unk4142[i]++; + } + } + } + } +} +#endif + +extern const u8 *const gEasyChatGroupWords[]; +extern const u16 *const gEasyChatGroupOrders[]; +extern const u8 gEasyChatGroupSizes[]; + +// loads strings of all easy chat words except for the species and move names. +void LoadEasyChatStrings(void) +{ + u16 group; + u16 index; + + for (group = 0; group <= EC_GROUP_POKEMON_2; group++) + { + if (group != EC_GROUP_POKEMON_1 + && group != EC_GROUP_POKEMON_2 + && group != EC_GROUP_MOVE_1 + && group != EC_GROUP_MOVE_2) + { + const u8 *wordText = gEasyChatGroupWords[group]; + + index = 0; + while (*wordText != EOS) + { + gEasyChatStruct->ecWordStrings[group][index] = wordText; + + // Find the end of the current word + while (*wordText != EOS) + wordText++; + // Skip over the EOS + wordText++; + + index++; + } + } + } +} + +void sub_80EB0B0(void) +{ + const u16 *sp0; + u16 r7; + u16 r9; + u16 r8; + + if (gEasyChatStruct->unk26 == 0) + { + u16 group = gEasyChatStruct->unk1B8; + + gEasyChatStruct->unk4178[group] = 0; + r7 = 0; + r9 = 0; + sp0 = gEasyChatGroupOrders[group]; + for (r8 = 0; r8 < gEasyChatGroupSizes[gEasyChatStruct->unk1B8]; r8++) + { + if (sub_80EADC0(group, sp0[r8])) + { + gEasyChatStruct->unk9A2A[r9][r7] = ((group & 0x7F) << 9) | (sp0[r8] & 0x1FF); + gEasyChatStruct->unk4178[group]++; + r7++; + if (r7 > 1) + { + r7 = 0; + r9++; + } + } + } + } + else + { + u8 r2 = gEasyChatStruct->unk1B8; + u16 r3 = 0; + u16 r6 = 0; + u16 r5; + + for (r5 = 0; r5 < gEasyChatStruct->unk4142[r2]; r5++) + { + gEasyChatStruct->unk9A2A[r6][r3] = gEasyChatStruct->unkB78[r2][r5]; + r3++; + if (r3 > 1) + { + r3 = 0; + r6++; + } + } + } +} + +u8 *sub_80EB218(u8 *dest, u16 word, u16 c) +{ + u8 *wordText; + + if (sub_80EB37C(word)) + { + wordText = StringCopy(dest, gOtherText_ThreeQuestions); + } + else if (word == 0xFFFF) + { + wordText = dest; + wordText[0] = EOS; // Why? It's going to get overwritten. + } + else + { + u16 group = EC_GROUP(word); + u16 index = EC_INDEX(word); + + switch (group) + { + case EC_GROUP_POKEMON_1: + case EC_GROUP_POKEMON_2: + wordText = StringCopy(dest, gSpeciesNames[index]); + break; + case EC_GROUP_MOVE_1: + case EC_GROUP_MOVE_2: + wordText = StringCopy(dest, gMoveNames[index]); + break; + default: + wordText = StringCopy(dest, gEasyChatStruct->ecWordStrings[group][index]); + break; + } + } + + wordText[0] = EXT_CTRL_CODE_BEGIN; + wordText[1] = 0x13; + wordText[2] = c * 8; + wordText += 3; + + *wordText = EOS; + + return wordText; +} + +u16 sub_80EB2D4(u16 word) +{ + const u8 *wordText; + u16 length; + + if (sub_80EB37C(word)) + { + return StringLength(gOtherText_ThreeQuestions); + } + else if (word == 0xFFFF) + { + return 0; + } + else + { + u16 group = EC_GROUP(word); + u16 index = EC_INDEX(word); + + switch (group) + { + case EC_GROUP_POKEMON_1: + case EC_GROUP_POKEMON_2: + wordText = gSpeciesNames[index]; + break; + case EC_GROUP_MOVE_1: + case EC_GROUP_MOVE_2: + wordText = gMoveNames[index]; + break; + default: + wordText = gEasyChatStruct->ecWordStrings[group][index]; + break; + } + } + + length = 0; + while (*wordText != EOS) + { + wordText++; + length++; + } + return length; +} + +bool8 sub_80EB37C(u16 word) +{ + const u16 *r4; + u16 i; + + if (word == 0xFFFF) + { + return FALSE; + } + else + { + u16 group = EC_GROUP(word); + u16 index = EC_INDEX(word); + + if (group <= EC_GROUP_POKEMON_2) + { + switch (group) + { + case EC_GROUP_POKEMON_1: + case EC_GROUP_POKEMON_2: + case EC_GROUP_MOVE_1: + case EC_GROUP_MOVE_2: + r4 = (u16 *)gEasyChatGroupWords[group]; + for (i = 0; i < gEasyChatGroupSizes[group]; i++) + { + if (index == r4[i]) + return FALSE; + } + break; + default: + if (index < gEasyChatGroupSizes[group]) + return FALSE; + break; + } + } + return TRUE; + } +} + +#if GERMAN +u32 de_sub_80EB748(s32 group, s32 index) +{ + s32 i; + u16 *words; + u32 r7 = 0; + + switch (group) + { + case EC_GROUP_POKEMON_1: + case EC_GROUP_POKEMON_2: + case EC_GROUP_MOVE_1: + case EC_GROUP_MOVE_2: + words = (u16 *)gEasyChatGroupWords[group]; + for (i = 0; i < gEasyChatGroupSizes[group]; i++) + { + if (index == words[i]) + { + r7 = i; + break; + } + } + break; + default: + r7 = index; + break; + } + + return r7; +} +#endif + +// returns the end of the destination buffer text +u8 *EasyChat_GetWordText(u8 *dst, u16 word) +{ + u16 group; + u16 wordIndex; + const u8 *src; + u16 i; + + if (sub_80EB37C(word)) + return StringCopy(dst, gOtherText_ThreeQuestions); + + if (word == 0xFFFF) + { + *dst = EOS; + return dst; + } + else + { + group = EC_GROUP(word); + wordIndex = EC_INDEX(word); + switch (group) + { + case EC_GROUP_POKEMON_1: // 0 + case EC_GROUP_POKEMON_2: // 21 + dst = StringCopy(dst, gSpeciesNames[wordIndex]); + break; + case EC_GROUP_MOVE_1: // 18 + case EC_GROUP_MOVE_2: // 19 + dst = StringCopy(dst, gMoveNames[wordIndex]); + break; + default: + src = gEasyChatGroupWords[group]; + for (i = wordIndex - 1; i != 0xFFFF; i--) + { + while (*src++ != EOS) + ; + } + dst = StringCopy(dst, src); + break; + } + *dst = EOS; + return dst; + } +} + +u8 *ConvertEasyChatWordsToString(u8 *dst, u16 *words, u16 arg2, u16 arg3) +{ + u16 i; + u16 n; + + const u16 i1 = arg2 - 1; + + for (i = 0; i < arg3; i++) + { + u16 word; + + for (n = 0; n < i1; n++) + { + dst = EasyChat_GetWordText(dst, words[0]); + + if (words[0] != 0xFFFF) + { + dst[0] = CHAR_SPACE; + dst++; + } + + words++; + } + + word = words[0]; + words++; + dst = EasyChat_GetWordText(dst, word); + + dst[0] = CHAR_NEWLINE; + dst++; + } + + dst--; + dst[0] = EOS; + + return dst; +} + +u8 *sub_80EB544(u8 *dst, u16 *words, u16 arg2, u16 arg3) +{ + u16 i; + u16 n; + + const u16 i1 = arg2 - 1; + + for (i = 0; i < arg3; i++) + { + u16 word; + + for (n = 0; n < i1; n++) + { + dst = EasyChat_GetWordText(dst, words[0]); + + if (words[0] != 0xFFFF) + { + dst[0] = CHAR_SPACE; + dst++; + } + + words++; + } + + word = words[0]; + words++; + dst = EasyChat_GetWordText(dst, word); + + // Only difference with ConvertEasyChatWordsToString + dst[0] = (i == 0) ? CHAR_NEWLINE : CHAR_PROMPT_SCROLL; + dst++; + } + + dst--; + dst[0] = EOS; + + return dst; +} + + +u16 unref_sub_80EB5E0(u16 arg0) +{ + const u8 *chars; + u16 i; + u16 length; + int group, word; + + + if (arg0 == 0xFFFF) + return 0; + + group = EC_GROUP(arg0); + word = EC_INDEX(arg0); + switch (group) + { + case EC_GROUP_POKEMON_1: // 0 + case EC_GROUP_POKEMON_2: // 21 + chars = gSpeciesNames[word]; + break; + case EC_GROUP_MOVE_1: // 18 + case EC_GROUP_MOVE_2: // 19 + chars = gMoveNames[word]; + break; + default: + chars = gEasyChatGroupWords[group]; + for (i = word - 1; i != 0xFFFF; i--) + { + while (*chars++ != EOS) + ; + } + break; + } + + length = 0; + while (*chars != EOS) + { + chars++; + length++; + } + + return length; +} + +bool8 sub_80EB680(u16 *arg0, u16 arg1, u16 arg2, u16 arg3) +{ + return FALSE; +} + +void unref_sub_80EB684(u8 arg0, u16 arg1) +{ + u16 *ptr; + u16 c; + + // FIXME: find actual tv shows used + switch (arg0) + { + case 5: + c = 6; + ptr = (u16*)((void *)&gSaveBlock1.tvShows[arg1] + 0x04); + break; + case 7: + c = 2; + ptr = (u16*)((void *)&gSaveBlock1.tvShows[arg1] + 0x1C); + break; + case 8: + c = 1; + ptr = (u16*)((void *)&gSaveBlock1.tvShows[arg1] + 0x02); + break; + default: + return; + } + + c -= 1; + while (c != 0xFFFF) + { + *ptr = -1; + ptr++; + c -= 1; + } +} + +void sub_80EB6FC(u16 *arg0, u16 arg1) +{ + u16 i; + + for (i = arg1 - 1; i != 0xFFFF; i--) + { + *arg0 = 0xFFFF; + arg0++; + } + +} + +u16 sub_80EB72C(u16 group) +{ + u16 local1 = Random() % gEasyChatGroupSizes[group]; + + if (group == EC_GROUP_POKEMON_1 + || group == EC_GROUP_POKEMON_2 + || group == EC_GROUP_MOVE_1 + || group == EC_GROUP_MOVE_2) + { + local1 = ((u16 *) gEasyChatGroupWords[group])[local1]; + } + + return ((group & 0x7F) << 9) | (local1 & 0x1FF); +} + +u16 sub_80EB784(u16 group) +{ + if (!sub_80EAD7C(group)) + return -1; + + if (group != EC_GROUP_POKEMON_1) + { + if (group == EC_GROUP_TRENDY_SAYING) + return sub_80EB960(); + } + else + { + return sub_80EB9D8(); + } + + return sub_80EB72C(group); +} + +void sub_80EB7C4(void) +{ + u16 *words; + u16 arg1, arg2; + + switch (gSpecialVar_0x8004) + { + case 0: + words = gSaveBlock1.easyChats.unk2B1C; + arg1 = 2; + arg2 = 2; + break; + case 1: + words = gSaveBlock1.easyChats.unk2B28; + if (sub_80EB680(gSaveBlock1.easyChats.unk2B28, 3, 2, 20)) + { + arg1 = 2; + arg2 = 3; + } + else + { + arg1 = 3; + arg2 = 2; + } + break; + case 2: + words = gSaveBlock1.easyChats.unk2B34; + arg1 = 3; + arg2 = 2; + break; + case 3: + words = gSaveBlock1.easyChats.unk2B40; + arg1 = 3; + arg2 = 2; + break; + default: + return; + } + + ConvertEasyChatWordsToString(gStringVar4, words, arg1, arg2); + ShowFieldAutoScrollMessage(gStringVar4); +} + +void BufferRandomHobbyOrLifestyleString(void) +{ + u16 group, local2; + + if (Random() & 1) + group = EC_GROUP_HOBBIES; + else + group = EC_GROUP_LIFESTYLE; + + local2 = sub_80EB784(group); + EasyChat_GetWordText(gStringVar2, local2); +} + +u8 sub_80EB868(u8 arg0) +{ + int offset; + int index; + + index = arg0 / 8; + offset = arg0 % 8; + return (gSaveBlock1.unk2D8C[index] >> offset) & 1; +} + +void sub_80EB890(u8 arg0) +{ + int offset; + int index; + + if (arg0 < 33) + { + index = arg0 / 8; + offset = arg0 % 8; + gSaveBlock1.unk2D8C[index] |= 1 << offset; + } +} + +u8 sub_80EB8C0(void) +{ + u8 i, count; + + for (i = 0, count = 0; i < 33; i++) + { + if (sub_80EB868(i)) + count++; + } + return count; +} + +u16 sub_80EB8EC(void) +{ + u16 i; + u16 local1, local2; + + local1 = sub_80EB8C0(); + if (local1 == 33) + return -1; + + local2 = Random() % (33 - local1); + for (i = 0; i < 33; i++) + { + if (sub_80EB868(i) == 0) + { + if (local2 == 0) + { + sub_80EB890(i); + return (i & 0x1FF) | 0x2800; + } + local2--; + } + } + return -1; +} + +static u16 sub_80EB960(void) +{ + u16 i; + u16 local1; + + local1 = sub_80EB8C0(); + if (local1 == 0) + return -1; + + local1 = Random() % local1; + for (i = 0; i < 33; i++) + { + if (sub_80EB868(i)) + { + if (local1 == 0) + return (i & 0x1FF) | 0x2800; + local1--; + } + } + + return -1; +} + +u8 sub_80EB9C8(void) +{ + return IsNationalPokedexEnabled(); +} + +static u16 sub_80EB9D8(void) +{ + u16 *speciesList; + u16 local1; + u16 i; + + local1 = sub_80EAE88(0); + + if (local1 == 0) + return -1; + + local1 = Random() % local1; + speciesList = (u16 *)gEasyChatGroupWords[EC_GROUP_POKEMON_1]; + for (i = 0; i < gEasyChatGroupSizes[EC_GROUP_POKEMON_1]; i++) + { + const u16 dexNum = SpeciesToNationalPokedexNum(*speciesList); + const u8 local2 = GetSetPokedexFlag(dexNum, 0); + + if (local2) + { + if (local1 == 0) + return *speciesList & 0x1FF; + local1--; + } + speciesList++; + } + return -1; +} diff --git a/src/field/easy_chat.c b/src/field/easy_chat.c deleted file mode 100644 index 94532506f..000000000 --- a/src/field/easy_chat.c +++ /dev/null @@ -1,445 +0,0 @@ -#include "global.h" -#include "easy_chat.h" -#include "constants/easy_chat.h" -#include "data2.h" -#include "event_data.h" -#include "field_message_box.h" -#include "pokedex.h" -#include "random.h" -#include "string_util.h" -#include "strings.h" -#include "strings2.h" -#include "text.h" - -static bool8 sub_80EB680(u16 *, u16, u16, u16); -static u16 sub_80EB9D8(void); -static u16 sub_80EB960(void); - -extern void *gEasyChatGroupWords[]; -extern const u8 gEasyChatGroupSizes[]; - -extern u16 gSpecialVar_0x8004; - -IWRAM_DATA u8 gUnknown_03000740; - -// returns the end of the destination buffer text -u8 *EasyChat_GetWordText(u8 *dst, u16 word) -{ - u16 group; - u16 wordIndex; - u8 *src; - u16 i; - - if (sub_80EB37C(word)) - return StringCopy(dst, gOtherText_ThreeQuestions); - - if (word == 0xFFFF) - { - *dst = EOS; - return dst; - } - else - { - group = EC_GROUP(word); - wordIndex = EC_INDEX(word); - switch (group) - { - case EC_GROUP_POKEMON: // 0 - case EC_GROUP_POKEMON_2: // 21 - dst = StringCopy(dst, gSpeciesNames[wordIndex]); - break; - case EC_GROUP_MOVE_1: // 18 - case EC_GROUP_MOVE_2: // 19 - dst = StringCopy(dst, gMoveNames[wordIndex]); - break; - default: - src = gEasyChatGroupWords[group]; - for (i = wordIndex - 1; i != 0xFFFF; i--) - { - while (*src++ != EOS) - ; - } - dst = StringCopy(dst, src); - break; - } - *dst = EOS; - return dst; - } -} - -u8 *ConvertEasyChatWordsToString(u8 *dst, u16 *words, u16 arg2, u16 arg3) -{ - u16 i; - u16 n; - - const u16 i1 = arg2 - 1; - - for (i = 0; i < arg3; i++) - { - u16 word; - - for (n = 0; n < i1; n++) - { - dst = EasyChat_GetWordText(dst, words[0]); - - if (words[0] != 0xFFFF) - { - dst[0] = CHAR_SPACE; - dst++; - } - - words++; - } - - word = words[0]; - words++; - dst = EasyChat_GetWordText(dst, word); - - dst[0] = CHAR_NEWLINE; - dst++; - } - - dst--; - dst[0] = EOS; - - return dst; -} - -u8 *sub_80EB544(u8 *dst, u16 *words, u16 arg2, u16 arg3) -{ - u16 i; - u16 n; - - const u16 i1 = arg2 - 1; - - for (i = 0; i < arg3; i++) - { - u16 word; - - for (n = 0; n < i1; n++) - { - dst = EasyChat_GetWordText(dst, words[0]); - - if (words[0] != 0xFFFF) - { - dst[0] = CHAR_SPACE; - dst++; - } - - words++; - } - - word = words[0]; - words++; - dst = EasyChat_GetWordText(dst, word); - - // Only difference with ConvertEasyChatWordsToString - dst[0] = (i == 0) ? CHAR_NEWLINE : CHAR_PROMPT_SCROLL; - dst++; - } - - dst--; - dst[0] = EOS; - - return dst; -} - - -u16 unref_sub_80EB5E0(u16 arg0) -{ - const u8 *chars; - u16 i; - u16 length; - int group, word; - - - if (arg0 == 0xFFFF) - return 0; - - group = EC_GROUP(arg0); - word = EC_INDEX(arg0); - switch (group) - { - case EC_GROUP_POKEMON: // 0 - case EC_GROUP_POKEMON_2: // 21 - chars = gSpeciesNames[word]; - break; - case EC_GROUP_MOVE_1: // 18 - case EC_GROUP_MOVE_2: // 19 - chars = gMoveNames[word]; - break; - default: - chars = gEasyChatGroupWords[group]; - for (i = word - 1; i != 0xFFFF; i--) - { - while (*chars++ != EOS) - ; - } - break; - } - - length = 0; - while (*chars != EOS) - { - chars++; - length++; - } - - return length; -} - -static bool8 sub_80EB680(u16 *arg0, u16 arg1, u16 arg2, u16 arg3) -{ - return FALSE; -} - -void unref_sub_80EB684(u8 arg0, u16 arg1) -{ - u16 *ptr; - u16 c; - - // FIXME: find actual tv shows used - switch (arg0) - { - case 5: - c = 6; - ptr = (u16*)((void *)&gSaveBlock1.tvShows[arg1] + 0x04); - break; - case 7: - c = 2; - ptr = (u16*)((void *)&gSaveBlock1.tvShows[arg1] + 0x1C); - break; - case 8: - c = 1; - ptr = (u16*)((void *)&gSaveBlock1.tvShows[arg1] + 0x02); - break; - default: - return; - } - - c -= 1; - while (c != 0xFFFF) - { - *ptr = -1; - ptr++; - c -= 1; - } -} - -void sub_80EB6FC(u16 *arg0, u16 arg1) -{ - u16 i; - - for (i = arg1 - 1; i != 0xFFFF; i--) - { - *arg0 = 0xFFFF; - arg0++; - } - -} - -u16 sub_80EB72C(u16 group) -{ - u16 local1 = Random() % gEasyChatGroupSizes[group]; - - if (group == EC_GROUP_POKEMON - || group == EC_GROUP_POKEMON_2 - || group == EC_GROUP_MOVE_1 - || group == EC_GROUP_MOVE_2) - { - local1 = ((u16 *) gEasyChatGroupWords[group])[local1]; - } - - return ((group & 0x7F) << 9) | (local1 & 0x1FF); -} - -u16 sub_80EB784(u16 group) -{ - if (!sub_80EAD7C(group)) - return -1; - - if (group != EC_GROUP_POKEMON) - { - if (group == EC_GROUP_TRENDY_SAYING) - return sub_80EB960(); - } - else - { - return sub_80EB9D8(); - } - - return sub_80EB72C(group); -} - -void sub_80EB7C4(void) -{ - u16 *words; - u16 arg1, arg2; - - switch (gSpecialVar_0x8004) - { - case 0: - words = gSaveBlock1.easyChats.unk2B1C; - arg1 = 2; - arg2 = 2; - break; - case 1: - words = gSaveBlock1.easyChats.unk2B28; - if (sub_80EB680(gSaveBlock1.easyChats.unk2B28, 3, 2, 20)) - { - arg1 = 2; - arg2 = 3; - } - else - { - arg1 = 3; - arg2 = 2; - } - break; - case 2: - words = gSaveBlock1.easyChats.unk2B34; - arg1 = 3; - arg2 = 2; - break; - case 3: - words = gSaveBlock1.easyChats.unk2B40; - arg1 = 3; - arg2 = 2; - break; - default: - return; - } - - ConvertEasyChatWordsToString(gStringVar4, words, arg1, arg2); - ShowFieldAutoScrollMessage(gStringVar4); -} - -void BufferRandomHobbyOrLifestyleString(void) -{ - u16 group, local2; - - if (Random() & 1) - group = EC_GROUP_HOBBIES; - else - group = EC_GROUP_LIFESTYLE; - - local2 = sub_80EB784(group); - EasyChat_GetWordText(gStringVar2, local2); -} - -u8 sub_80EB868(u8 arg0) -{ - int offset; - int index; - - index = arg0 / 8; - offset = arg0 % 8; - return (gSaveBlock1.unk2D8C[index] >> offset) & 1; -} - -void sub_80EB890(u8 arg0) -{ - int offset; - int index; - - if (arg0 < 33) - { - index = arg0 / 8; - offset = arg0 % 8; - gSaveBlock1.unk2D8C[index] |= 1 << offset; - } -} - -u8 sub_80EB8C0(void) -{ - u8 i, count; - - for (i = 0, count = 0; i < 33; i++) - { - if (sub_80EB868(i)) - count++; - } - return count; -} - -u16 sub_80EB8EC(void) -{ - u16 i; - u16 local1, local2; - - local1 = sub_80EB8C0(); - if (local1 == 33) - return -1; - - local2 = Random() % (33 - local1); - for (i = 0; i < 33; i++) - { - if (sub_80EB868(i) == 0) - { - if (local2 == 0) - { - sub_80EB890(i); - return (i & 0x1FF) | 0x2800; - } - local2--; - } - } - return -1; -} - -static u16 sub_80EB960(void) -{ - u16 i; - u16 local1; - - local1 = sub_80EB8C0(); - if (local1 == 0) - return -1; - - local1 = Random() % local1; - for (i = 0; i < 33; i++) - { - if (sub_80EB868(i)) - { - if (local1 == 0) - return (i & 0x1FF) | 0x2800; - local1--; - } - } - - return -1; -} - -u8 sub_80EB9C8(void) -{ - return IsNationalPokedexEnabled(); -} - -static u16 sub_80EB9D8(void) -{ - u16 *speciesList; - u16 local1; - u16 i; - - local1 = sub_80EAE88(0); - - if (local1 == 0) - return -1; - - local1 = Random() % local1; - speciesList = (u16 *) gEasyChatGroupWords[EC_GROUP_POKEMON]; - for (i = 0; i < gEasyChatGroupSizes[EC_GROUP_POKEMON]; i++) - { - const u16 dexNum = SpeciesToNationalPokedexNum(*speciesList); - const u8 local2 = GetSetPokedexFlag(dexNum, 0); - - if (local2) - { - if (local1 == 0) - return *speciesList & 0x1FF; - local1--; - } - speciesList++; - } - return -1; -} diff --git a/src/field/field_map_obj.c b/src/field/field_map_obj.c index ba7c3d68e..77b4c8b5c 100644 --- a/src/field/field_map_obj.c +++ b/src/field/field_map_obj.c @@ -2440,7 +2440,7 @@ void MakeObjectTemplateFromFieldObjectTemplate(struct MapObjectTemplate *mapObjT MakeObjectTemplateFromFieldObjectGraphicsInfoWithCallbackIndex(mapObjTemplate->graphicsId, mapObjTemplate->movementType, sprTemplate, subspriteTables); } -u8 AddPseudoFieldObject(u16 graphicsId, void (*callback)(struct Sprite *), s16 c, s16 d, u8 subpriority) +u8 AddPseudoFieldObject(u16 graphicsId, void (*callback)(struct Sprite *), s16 x, s16 y, u8 subpriority) { struct SpriteTemplate spriteTemplate; const struct SubspriteTable *subspriteTables; @@ -2449,7 +2449,7 @@ u8 AddPseudoFieldObject(u16 graphicsId, void (*callback)(struct Sprite *), s16 c MakeObjectTemplateFromFieldObjectGraphicsInfo(graphicsId, callback, &spriteTemplate, &subspriteTables); if (spriteTemplate.paletteTag != 0xFFFF) sub_805BDF8(spriteTemplate.paletteTag); - spriteId = CreateSprite(&spriteTemplate, c, d, subpriority); + spriteId = CreateSprite(&spriteTemplate, x, y, subpriority); if (spriteId != 64 && subspriteTables != NULL) { SetSubspriteTables(&gSprites[spriteId], subspriteTables); diff --git a/src/pokemon/pokemon_menu.c b/src/pokemon/pokemon_menu.c index d2a5197a0..6c3c6c2b8 100644 --- a/src/pokemon/pokemon_menu.c +++ b/src/pokemon/pokemon_menu.c @@ -1,4 +1,5 @@ #include "global.h" +#include "easy_chat.h" #include "pokemon.h" #include "pokemon_menu.h" #include "party_menu.h" @@ -53,7 +54,6 @@ extern u16 gUnknown_0202E8F8; extern void (*gUnknown_03004AE4)(u8 taskID, u16 itemID, TaskFunc func); extern TaskFunc gUnknown_03005CF0; -void sub_80E62A0(u8 arg0, struct MailStruct* arg1, void* arg2, u8 arg3); void sub_808A520(void); void sub_80A61D0(void); void CB2_InitFlyRegionMap(void); @@ -419,7 +419,7 @@ static void sub_808A180(u8 taskID) { u8 mailID = GetMonData(&gPlayerParty[sub_806CA38(taskID)], MON_DATA_MAIL); DestroyTask(taskID); - sub_80E62A0(4, &gSaveBlock1.mail[mailID], sub_808A520, 3); + sub_80E62A0(4, gSaveBlock1.mail[mailID].words, sub_808A520, 3); } } @@ -458,7 +458,7 @@ static void sub_808A2DC(u8 taskID) { u8 mailID = GetMonData(&gPlayerParty[sub_806CA38(taskID)], MON_DATA_MAIL); DestroyTask(taskID); - sub_80E62A0(4, &gSaveBlock1.mail[mailID], sub_808A520, 3); + sub_80E62A0(4, gSaveBlock1.mail[mailID].words, sub_808A520, 3); } static void sub_808A330(u8 taskID) @@ -1095,7 +1095,7 @@ static void sub_808B338(u8 taskID) gLastFieldPokeMenuOpened = sub_806CA38(taskID); mailID = GetMonData(&gPlayerParty[gLastFieldPokeMenuOpened], MON_DATA_MAIL); DestroyTask(taskID); - sub_80E62A0(4, &gSaveBlock1.mail[mailID], sub_808B3EC, 3); + sub_80E62A0(4, gSaveBlock1.mail[mailID].words, sub_808B3EC, 3); } } diff --git a/src/unknown_task.c b/src/unknown_task.c index c9ba95d42..62245502a 100644 --- a/src/unknown_task.c +++ b/src/unknown_task.c @@ -20,6 +20,7 @@ extern u8 gUnknown_0202FFA4; extern struct UnknownTaskStruct2 gUnknown_03004DC0; +// Is this a struct? extern u16 gUnknown_03004DE0[][0x3C0]; void remove_some_task(void) diff --git a/sym_bss.txt b/sym_bss.txt index 6587c2c39..d2d218ec4 100644 --- a/sym_bss.txt +++ b/sym_bss.txt @@ -25,7 +25,7 @@ .include "src/engine/record_mixing.o" .include "src/field/tv.o" .include "src/battle/battle_anim_80CA710.o" - .include "src/field/easy_chat.o" + .include "src/easy_chat_2.o" .include "src/pokenav_before.o" .include "src/field/mauville_man.o" .include "src/field/menu_helpers.o" |