.include "constants/gba_constants.inc" .include "constants/species_constants.inc" .include "asm/macros.inc" .syntax unified .text thumb_func_start sub_809D844 sub_809D844: @ 809D844 push {lr} bl RunTasks bl AnimateSprites bl BuildOamBuffer bl UpdatePaletteFade pop {r0} bx r0 thumb_func_end sub_809D844 thumb_func_start sub_809D85C sub_809D85C: @ 809D85C push {lr} ldr r1, _0809D8A0 @ =REG_BG1HOFS ldr r0, _0809D8A4 @ =gUnknown_030042C0 ldrh r0, [r0] strh r0, [r1] adds r1, 0x2 ldr r0, _0809D8A8 @ =gUnknown_030041B4 ldrh r0, [r0] strh r0, [r1] adds r1, 0x2 ldr r0, _0809D8AC @ =gUnknown_03004288 ldrh r0, [r0] strh r0, [r1] adds r1, 0x2 ldr r0, _0809D8B0 @ =gUnknown_03004280 ldrh r0, [r0] strh r0, [r1] adds r1, 0x2 ldr r0, _0809D8B4 @ =gUnknown_030041B0 ldrh r0, [r0] strh r0, [r1] adds r1, 0x2 ldr r0, _0809D8B8 @ =gUnknown_030041B8 ldrh r0, [r0] strh r0, [r1] bl LoadOam bl ProcessSpriteCopyRequests bl TransferPlttBuffer pop {r0} bx r0 .align 2, 0 _0809D8A0: .4byte REG_BG1HOFS _0809D8A4: .4byte gUnknown_030042C0 _0809D8A8: .4byte gUnknown_030041B4 _0809D8AC: .4byte gUnknown_03004288 _0809D8B0: .4byte gUnknown_03004280 _0809D8B4: .4byte gUnknown_030041B0 _0809D8B8: .4byte gUnknown_030041B8 thumb_func_end sub_809D85C thumb_func_start ShowPokemonSummaryScreen ShowPokemonSummaryScreen: @ 809D8BC push {r4-r7,lr} ldr r4, [sp, 0x14] lsls r4, 24 lsrs r7, r4, 24 ldr r6, _0809D904 @ =gPaletteFade ldrb r4, [r6, 0x8] movs r5, 0x80 orrs r4, r5 strb r4, [r6, 0x8] ldr r5, _0809D908 @ =0x02018000 str r0, [r5] movs r4, 0 strb r7, [r5, 0x8] strb r1, [r5, 0x9] strb r2, [r5, 0xA] str r3, [r5, 0x4] adds r0, r5, 0 adds r0, 0x74 strb r4, [r0] adds r1, r5, 0 adds r1, 0x79 movs r0, 0x4 strb r0, [r1] adds r0, r5, 0 adds r0, 0x7C movs r1, 0 strh r4, [r0] adds r0, 0x4 strb r1, [r0] subs r0, 0x5 strb r1, [r0] cmp r7, 0x4 bls _0809D90C movs r0, 0x1 strb r0, [r5, 0xE] b _0809D90E .align 2, 0 _0809D904: .4byte gPaletteFade _0809D908: .4byte 0x02018000 _0809D90C: strb r1, [r5, 0xE] _0809D90E: cmp r7, 0x6 bhi _0809D9D6 lsls r0, r7, 2 ldr r1, _0809D91C @ =_0809D920 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0809D91C: .4byte _0809D920 .align 2, 0 _0809D920: .4byte _0809D93C .4byte _0809D9BC .4byte _0809D992 .4byte _0809D9D6 .4byte _0809D966 .4byte _0809D93C .4byte _0809D9BC _0809D93C: adds r0, r5, 0 adds r0, 0x75 movs r1, 0 strb r1, [r0] adds r2, r5, 0 adds r2, 0x76 movs r0, 0x3 strb r0, [r2] adds r0, r5, 0 adds r0, 0x77 strb r1, [r0] adds r0, 0x1 strb r1, [r0] adds r1, r5, 0 adds r1, 0x7E movs r0, 0x1 strb r0, [r1] adds r1, 0x1 movs r0, 0x7 strb r0, [r1] b _0809D9D6 _0809D966: adds r0, r5, 0 adds r0, 0x75 movs r1, 0 strb r1, [r0] adds r2, r5, 0 adds r2, 0x76 movs r0, 0x3 strb r0, [r2] adds r0, r5, 0 adds r0, 0x77 strb r1, [r0] adds r0, 0x1 strb r1, [r0] adds r0, 0x6 movs r1, 0x1 strb r1, [r0] adds r2, 0x9 movs r0, 0x7 strb r0, [r2] adds r0, r5, 0 adds r0, 0x7B b _0809D9D4 _0809D992: adds r1, r5, 0 adds r1, 0x75 movs r3, 0 movs r0, 0x2 strb r0, [r1] adds r0, r5, 0 adds r0, 0x76 movs r2, 0x3 strb r2, [r0] adds r0, 0x1 movs r1, 0x1 strb r1, [r0] adds r0, 0x1 strb r1, [r0] adds r0, 0x6 strb r2, [r0] adds r0, 0x1 strb r3, [r0] subs r0, 0x6 strb r3, [r0] b _0809D9D6 _0809D9BC: adds r1, r5, 0 adds r1, 0x75 movs r0, 0x2 strb r0, [r1] adds r1, 0x1 movs r0, 0x3 strb r0, [r1] adds r0, r5, 0 adds r0, 0x77 movs r1, 0x1 strb r1, [r0] adds r0, 0x1 _0809D9D4: strb r1, [r0] _0809D9D6: adds r0, r5, 0 adds r0, 0x75 ldrb r0, [r0] strb r0, [r5, 0xB] ldr r0, _0809D9EC @ =sub_809DE44 bl SetMainCallback2 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0809D9EC: .4byte sub_809DE44 thumb_func_end ShowPokemonSummaryScreen thumb_func_start sub_809D9F0 sub_809D9F0: @ 809D9F0 push {r4,r5,lr} sub sp, 0x4 ldr r5, [sp, 0x10] lsls r1, 24 lsrs r1, 24 lsls r2, 24 lsrs r2, 24 lsls r5, 16 lsrs r5, 16 movs r4, 0x2 str r4, [sp] bl ShowPokemonSummaryScreen ldr r0, _0809DA18 @ =0x02018000 adds r0, 0x7C strh r5, [r0] add sp, 0x4 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0809DA18: .4byte 0x02018000 thumb_func_end sub_809D9F0 thumb_func_start sub_809DA1C sub_809DA1C: @ 809DA1C push {lr} ldr r0, _0809DA30 @ =0x02018000 ldrb r0, [r0, 0x8] cmp r0, 0x6 bhi _0809DA78 lsls r0, 2 ldr r1, _0809DA34 @ =_0809DA38 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0809DA30: .4byte 0x02018000 _0809DA34: .4byte _0809DA38 .align 2, 0 _0809DA38: .4byte _0809DA54 .4byte _0809DA6C .4byte _0809DA64 .4byte _0809DA64 .4byte _0809DA5C .4byte _0809DA54 .4byte _0809DA6C _0809DA54: ldr r0, _0809DA58 @ =SummaryScreenHandleKeyInput b _0809DA6E .align 2, 0 _0809DA58: .4byte SummaryScreenHandleKeyInput _0809DA5C: ldr r0, _0809DA60 @ =SummaryScreenHandleKeyInput b _0809DA6E .align 2, 0 _0809DA60: .4byte SummaryScreenHandleKeyInput _0809DA64: ldr r0, _0809DA68 @ =sub_809EB40 b _0809DA6E .align 2, 0 _0809DA68: .4byte sub_809EB40 _0809DA6C: ldr r0, _0809DA7C @ =sub_809E3FC _0809DA6E: movs r1, 0 bl CreateTask ldr r1, _0809DA80 @ =0x02018000 strb r0, [r1, 0xF] _0809DA78: pop {r0} bx r0 .align 2, 0 _0809DA7C: .4byte sub_809E3FC _0809DA80: .4byte 0x02018000 thumb_func_end sub_809DA1C thumb_func_start sub_809DA84 sub_809DA84: @ 809DA84 push {r4-r7,lr} sub sp, 0x8 ldr r1, _0809DAA4 @ =gMain ldr r2, _0809DAA8 @ =0x0000043c adds r0, r1, r2 ldrb r0, [r0] mov r12, r1 cmp r0, 0x16 bls _0809DA98 b _0809DE00 _0809DA98: lsls r0, 2 ldr r1, _0809DAAC @ =_0809DAB0 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0809DAA4: .4byte gMain _0809DAA8: .4byte 0x0000043c _0809DAAC: .4byte _0809DAB0 .align 2, 0 _0809DAB0: .4byte _0809DB0C .4byte _0809DB18 .4byte _0809DB2C .4byte _0809DB32 .4byte _0809DB80 .4byte _0809DB94 .4byte _0809DBA0 .4byte _0809DBBC .4byte _0809DBC8 .4byte _0809DBDC .4byte _0809DC2C .4byte _0809DC48 .4byte _0809DC5C .4byte _0809DC90 .4byte _0809DCB0 .4byte _0809DCC4 .4byte _0809DCF8 .4byte _0809DD02 .4byte _0809DD30 .4byte _0809DD3C .4byte _0809DD68 .4byte _0809DD98 .4byte _0809DDE0 _0809DB0C: movs r0, 0 bl SetVBlankCallback bl ResetSpriteData b _0809DDE8 _0809DB18: bl remove_some_task ldr r1, _0809DB24 @ =gMain ldr r2, _0809DB28 @ =0x0000043c adds r1, r2 b _0809DDEE .align 2, 0 _0809DB24: .4byte gMain _0809DB28: .4byte 0x0000043c _0809DB2C: bl FreeAllSpritePalettes b _0809DDE8 _0809DB32: movs r2, 0xC0 lsls r2, 19 movs r3, 0x80 lsls r3, 9 movs r5, 0 ldr r1, _0809DB74 @ =0x040000d4 movs r4, 0x80 lsls r4, 5 ldr r6, _0809DB78 @ =0x85000400 movs r7, 0x85 lsls r7, 24 _0809DB48: str r5, [sp, 0x4] add r0, sp, 0x4 str r0, [r1] str r2, [r1, 0x4] str r6, [r1, 0x8] ldr r0, [r1, 0x8] adds r2, r4 subs r3, r4 cmp r3, r4 bhi _0809DB48 str r5, [sp, 0x4] add r0, sp, 0x4 str r0, [r1] str r2, [r1, 0x4] lsrs r0, r3, 2 orrs r0, r7 str r0, [r1, 0x8] ldr r0, [r1, 0x8] ldr r1, _0809DB7C @ =0x0000043c add r1, r12 b _0809DDEE .align 2, 0 _0809DB74: .4byte 0x040000d4 _0809DB78: .4byte 0x85000400 _0809DB7C: .4byte 0x0000043c _0809DB80: bl sub_809DE64 ldr r1, _0809DB8C @ =gMain ldr r2, _0809DB90 @ =0x0000043c adds r1, r2 b _0809DDEE .align 2, 0 _0809DB8C: .4byte gMain _0809DB90: .4byte 0x0000043c _0809DB94: ldr r0, _0809DB9C @ =gWindowConfig_81E6E6C bl SetUpWindowConfig b _0809DDE8 .align 2, 0 _0809DB9C: .4byte gWindowConfig_81E6E6C _0809DBA0: ldr r0, _0809DBB0 @ =gWindowConfig_81E6E6C bl MultistepInitMenuWindowBegin ldr r1, _0809DBB4 @ =gMain ldr r2, _0809DBB8 @ =0x0000043c adds r1, r2 b _0809DDEE .align 2, 0 _0809DBB0: .4byte gWindowConfig_81E6E6C _0809DBB4: .4byte gMain _0809DBB8: .4byte 0x0000043c _0809DBBC: bl MultistepInitMenuWindowContinue cmp r0, 0 bne _0809DBC6 b _0809DE38 _0809DBC6: b _0809DDE8 _0809DBC8: bl sub_809DA1C ldr r1, _0809DBD4 @ =gMain ldr r2, _0809DBD8 @ =0x0000043c adds r1, r2 b _0809DDEE .align 2, 0 _0809DBD4: .4byte gMain _0809DBD8: .4byte 0x0000043c _0809DBDC: ldr r1, _0809DC08 @ =gSummaryScreenTextTiles ldr r2, _0809DC0C @ =0x0600d000 ldr r0, _0809DC10 @ =0x040000d4 str r1, [r0] str r2, [r0, 0x4] ldr r1, _0809DC14 @ =0x800000a0 str r1, [r0, 0x8] ldr r1, [r0, 0x8] ldr r1, _0809DC18 @ =gSummaryScreenButtonTiles ldr r2, _0809DC1C @ =0x0600d140 str r1, [r0] str r2, [r0, 0x4] ldr r1, _0809DC20 @ =0x80000080 str r1, [r0, 0x8] ldr r0, [r0, 0x8] ldr r0, _0809DC24 @ =0x02018000 adds r0, 0x74 movs r1, 0 strb r1, [r0] ldr r1, _0809DC28 @ =0x0000043c add r1, r12 b _0809DDEE .align 2, 0 _0809DC08: .4byte gSummaryScreenTextTiles _0809DC0C: .4byte 0x0600d000 _0809DC10: .4byte 0x040000d4 _0809DC14: .4byte 0x800000a0 _0809DC18: .4byte gSummaryScreenButtonTiles _0809DC1C: .4byte 0x0600d140 _0809DC20: .4byte 0x80000080 _0809DC24: .4byte 0x02018000 _0809DC28: .4byte 0x0000043c _0809DC2C: bl sub_809DF00 lsls r0, 24 cmp r0, 0 bne _0809DC38 b _0809DE38 _0809DC38: ldr r0, _0809DC44 @ =0x02018000 adds r0, 0x74 movs r1, 0 strb r1, [r0] b _0809DDE8 .align 2, 0 _0809DC44: .4byte 0x02018000 _0809DC48: bl sub_80A18C4 ldr r1, _0809DC54 @ =gMain ldr r2, _0809DC58 @ =0x0000043c adds r1, r2 b _0809DDEE .align 2, 0 _0809DC54: .4byte gMain _0809DC58: .4byte 0x0000043c _0809DC5C: ldr r4, _0809DC78 @ =0x02018010 adds r0, r4, 0 bl sub_809F678 adds r0, r4, 0 bl GetMonStatusAndPokerus lsls r0, 24 cmp r0, 0 bne _0809DC7C movs r0, 0 bl sub_80A12D0 b _0809DC82 .align 2, 0 _0809DC78: .4byte 0x02018010 _0809DC7C: movs r0, 0xA bl sub_80A12D0 _0809DC82: ldr r0, _0809DC8C @ =0x02018010 bl sub_80A0EA4 b _0809DDE8 .align 2, 0 _0809DC8C: .4byte 0x02018010 _0809DC90: bl sub_80A1950 ldr r0, _0809DCA4 @ =0x02018010 bl sub_80A1D84 ldr r1, _0809DCA8 @ =gMain ldr r2, _0809DCAC @ =0x0000043c adds r1, r2 b _0809DDEE .align 2, 0 _0809DCA4: .4byte 0x02018010 _0809DCA8: .4byte gMain _0809DCAC: .4byte 0x0000043c _0809DCB0: ldr r4, _0809DCC0 @ =0x02018010 adds r0, r4, 0 bl sub_80A1DE8 adds r4, 0x64 movs r0, 0 strb r0, [r4] b _0809DDE8 .align 2, 0 _0809DCC0: .4byte 0x02018010 _0809DCC4: ldr r4, _0809DCEC @ =0x02018010 adds r5, r4, 0 adds r5, 0x64 adds r0, r4, 0 adds r1, r5, 0 bl sub_809F6B4 subs r4, 0x10 strb r0, [r4, 0xC] lsls r0, 24 lsrs r0, 24 cmp r0, 0xFF bne _0809DCE0 b _0809DE38 _0809DCE0: movs r0, 0 strb r0, [r5] ldr r1, _0809DCF0 @ =gMain ldr r2, _0809DCF4 @ =0x0000043c adds r1, r2 b _0809DDEE .align 2, 0 _0809DCEC: .4byte 0x02018010 _0809DCF0: .4byte gMain _0809DCF4: .4byte 0x0000043c _0809DCF8: bl sub_809E044 bl sub_80A0EE8 b _0809DDE8 _0809DD02: ldr r1, _0809DD20 @ =0x02018000 ldrb r0, [r1, 0xB] cmp r0, 0x1 bhi _0809DD18 ldr r0, _0809DD24 @ =gUnknown_083C1580 ldrb r1, [r1, 0xB] lsls r1, 2 adds r1, r0 ldr r0, [r1] bl _call_via_r0 _0809DD18: ldr r1, _0809DD28 @ =gMain ldr r2, _0809DD2C @ =0x0000043c adds r1, r2 b _0809DDEE .align 2, 0 _0809DD20: .4byte 0x02018000 _0809DD24: .4byte gUnknown_083C1580 _0809DD28: .4byte gMain _0809DD2C: .4byte 0x0000043c _0809DD30: ldr r0, _0809DD38 @ =0x02018010 bl sub_809FAC8 b _0809DDE8 .align 2, 0 _0809DD38: .4byte 0x02018010 _0809DD3C: ldr r2, _0809DD58 @ =gUnknown_083C1598 ldr r0, _0809DD5C @ =0x02018000 ldrb r1, [r0, 0xB] lsls r1, 2 adds r1, r2 adds r0, 0x10 ldr r1, [r1] bl _call_via_r1 ldr r1, _0809DD60 @ =gMain ldr r2, _0809DD64 @ =0x0000043c adds r1, r2 b _0809DDEE .align 2, 0 _0809DD58: .4byte gUnknown_083C1598 _0809DD5C: .4byte 0x02018000 _0809DD60: .4byte gMain _0809DD64: .4byte 0x0000043c _0809DD68: ldr r0, _0809DD84 @ =0x02018010 movs r1, 0x2D bl GetMonData adds r1, r0, 0 cmp r1, 0 beq _0809DD8C ldr r1, _0809DD88 @ =gUnknown_030041B0 movs r2, 0x80 lsls r2, 1 adds r0, r2, 0 strh r0, [r1] b _0809DDE8 .align 2, 0 _0809DD84: .4byte 0x02018010 _0809DD88: .4byte gUnknown_030041B0 _0809DD8C: ldr r0, _0809DD94 @ =gUnknown_030041B0 strh r1, [r0] b _0809DDE8 .align 2, 0 _0809DD94: .4byte gUnknown_030041B0 _0809DD98: bl sub_809EBC4 ldr r0, _0809DDB8 @ =0x02018000 adds r0, 0x79 ldrb r0, [r0] cmp r0, 0 beq _0809DDBC movs r0, 0 movs r1, 0 bl sub_80A1488 movs r0, 0 movs r1, 0 bl sub_80A1654 b _0809DDCC .align 2, 0 _0809DDB8: .4byte 0x02018000 _0809DDBC: movs r0, 0xA movs r1, 0 bl sub_80A1488 movs r0, 0xA movs r1, 0 bl sub_80A1654 _0809DDCC: bl sub_80A0DD0 ldr r1, _0809DDD8 @ =gMain ldr r2, _0809DDDC @ =0x0000043c adds r1, r2 b _0809DDEE .align 2, 0 _0809DDD8: .4byte gMain _0809DDDC: .4byte 0x0000043c _0809DDE0: bl sub_8055870 cmp r0, 0x1 beq _0809DE38 _0809DDE8: ldr r1, _0809DDF8 @ =gMain ldr r0, _0809DDFC @ =0x0000043c adds r1, r0 _0809DDEE: ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] b _0809DE38 .align 2, 0 _0809DDF8: .4byte gMain _0809DDFC: .4byte 0x0000043c _0809DE00: ldr r0, _0809DE2C @ =sub_809D85C bl SetVBlankCallback movs r0, 0x1 str r0, [sp] movs r0, 0xFF movs r1, 0 movs r2, 0x10 movs r3, 0 bl BeginHardwarePaletteFade ldr r0, _0809DE30 @ =sub_809D844 bl SetMainCallback2 ldr r2, _0809DE34 @ =gPaletteFade ldrb r1, [r2, 0x8] movs r0, 0x7F ands r0, r1 strb r0, [r2, 0x8] movs r0, 0x1 b _0809DE3A .align 2, 0 _0809DE2C: .4byte sub_809D85C _0809DE30: .4byte sub_809D844 _0809DE34: .4byte gPaletteFade _0809DE38: movs r0, 0 _0809DE3A: add sp, 0x8 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_809DA84 thumb_func_start sub_809DE44 sub_809DE44: @ 809DE44 push {lr} _0809DE46: bl sub_809DA84 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _0809DE5E bl sub_80F9344 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _0809DE46 _0809DE5E: pop {r0} bx r0 thumb_func_end sub_809DE44 thumb_func_start sub_809DE64 sub_809DE64: @ 809DE64 ldr r1, _0809DED0 @ =REG_BG0CNT ldr r2, _0809DED4 @ =0x00001e08 adds r0, r2, 0 strh r0, [r1] adds r1, 0x2 ldr r2, _0809DED8 @ =0x00004801 adds r0, r2, 0 strh r0, [r1] adds r1, 0x2 ldr r2, _0809DEDC @ =0x00004a02 adds r0, r2, 0 strh r0, [r1] adds r1, 0x2 ldr r2, _0809DEE0 @ =0x00005c03 adds r0, r2, 0 strh r0, [r1] ldr r1, _0809DEE4 @ =gUnknown_030042C0 movs r0, 0 strh r0, [r1] ldr r1, _0809DEE8 @ =gUnknown_030041B4 strh r0, [r1] ldr r1, _0809DEEC @ =gUnknown_03004288 strh r0, [r1] ldr r1, _0809DEF0 @ =gUnknown_03004280 strh r0, [r1] ldr r1, _0809DEF4 @ =gUnknown_030041B0 strh r0, [r1] ldr r1, _0809DEF8 @ =gUnknown_030041B8 strh r0, [r1] ldr r1, _0809DEFC @ =REG_BG0HOFS strh r0, [r1] adds r1, 0x2 strh r0, [r1] adds r1, 0x2 strh r0, [r1] adds r1, 0x2 strh r0, [r1] adds r1, 0x2 strh r0, [r1] adds r1, 0x2 strh r0, [r1] adds r1, 0x2 strh r0, [r1] adds r1, 0x2 strh r0, [r1] adds r1, 0x32 strh r0, [r1] subs r1, 0x50 movs r2, 0xFA lsls r2, 5 adds r0, r2, 0 strh r0, [r1] bx lr .align 2, 0 _0809DED0: .4byte REG_BG0CNT _0809DED4: .4byte 0x00001e08 _0809DED8: .4byte 0x00004801 _0809DEDC: .4byte 0x00004a02 _0809DEE0: .4byte 0x00005c03 _0809DEE4: .4byte gUnknown_030042C0 _0809DEE8: .4byte gUnknown_030041B4 _0809DEEC: .4byte gUnknown_03004288 _0809DEF0: .4byte gUnknown_03004280 _0809DEF4: .4byte gUnknown_030041B0 _0809DEF8: .4byte gUnknown_030041B8 _0809DEFC: .4byte REG_BG0HOFS thumb_func_end sub_809DE64 thumb_func_start sub_809DF00 sub_809DF00: @ 809DF00 push {lr} ldr r0, _0809DF18 @ =0x02018000 adds r0, 0x74 ldrb r0, [r0] cmp r0, 0xC bls _0809DF0E b _0809E030 _0809DF0E: lsls r0, 2 ldr r1, _0809DF1C @ =_0809DF20 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0809DF18: .4byte 0x02018000 _0809DF1C: .4byte _0809DF20 .align 2, 0 _0809DF20: .4byte _0809DF54 .4byte _0809DF64 .4byte _0809DF74 .4byte _0809DF88 .4byte _0809DF9C .4byte _0809DFAC .4byte _0809DFC4 .4byte _0809DFD4 .4byte _0809DFE0 .4byte _0809DFEC .4byte _0809DFF8 .4byte _0809E004 .4byte _0809E010 _0809DF54: ldr r0, _0809DF60 @ =gStatusScreen_Gfx movs r1, 0xC0 lsls r1, 19 bl LZDecompressVram b _0809E030 .align 2, 0 _0809DF60: .4byte gStatusScreen_Gfx _0809DF64: ldr r0, _0809DF6C @ =gUnknown_08E73508 ldr r1, _0809DF70 @ =0x0600e000 b _0809DFB0 .align 2, 0 _0809DF6C: .4byte gUnknown_08E73508 _0809DF70: .4byte 0x0600e000 _0809DF74: ldr r0, _0809DF80 @ =gUnknown_08E74E88 ldr r1, _0809DF84 @ =0x0600e800 bl LZDecompressVram b _0809E030 .align 2, 0 _0809DF80: .4byte gUnknown_08E74E88 _0809DF84: .4byte 0x0600e800 _0809DF88: ldr r0, _0809DF94 @ =gStatusScreen_Tilemap ldr r1, _0809DF98 @ =0x06004800 bl LZDecompressVram b _0809E030 .align 2, 0 _0809DF94: .4byte gStatusScreen_Tilemap _0809DF98: .4byte 0x06004800 _0809DF9C: ldr r0, _0809DFA4 @ =gUnknown_08E73E88 ldr r1, _0809DFA8 @ =0x06005800 b _0809DFB0 .align 2, 0 _0809DFA4: .4byte gUnknown_08E73E88 _0809DFA8: .4byte 0x06005800 _0809DFAC: ldr r0, _0809DFBC @ =gUnknown_08E74688 ldr r1, _0809DFC0 @ =0x06006800 _0809DFB0: movs r2, 0x80 lsls r2, 3 bl CpuSet b _0809E030 .align 2, 0 _0809DFBC: .4byte gUnknown_08E74688 _0809DFC0: .4byte 0x06006800 _0809DFC4: ldr r0, _0809DFD0 @ =gStatusScreen_Pal movs r1, 0 movs r2, 0xA0 bl LoadCompressedPalette b _0809E030 .align 2, 0 _0809DFD0: .4byte gStatusScreen_Pal _0809DFD4: ldr r0, _0809DFDC @ =gUnknown_083C11B8 bl LoadCompressedObjectPic b _0809E030 .align 2, 0 _0809DFDC: .4byte gUnknown_083C11B8 _0809DFE0: ldr r0, _0809DFE8 @ =gUnknown_083C1270 bl LoadCompressedObjectPic b _0809E030 .align 2, 0 _0809DFE8: .4byte gUnknown_083C1270 _0809DFEC: ldr r0, _0809DFF4 @ =gUnknown_083C12F4 bl LoadCompressedObjectPic b _0809E030 .align 2, 0 _0809DFF4: .4byte gUnknown_083C12F4 _0809DFF8: ldr r0, _0809E000 @ =gUnknown_083C12FC bl LoadCompressedObjectPalette b _0809E030 .align 2, 0 _0809E000: .4byte gUnknown_083C12FC _0809E004: ldr r0, _0809E00C @ =gUnknown_083C1278 bl LoadCompressedObjectPalette b _0809E030 .align 2, 0 _0809E00C: .4byte gUnknown_083C1278 _0809E010: ldr r0, _0809E028 @ =gMoveTypes_Pal movs r1, 0xE8 lsls r1, 1 movs r2, 0x60 bl LoadCompressedPalette ldr r0, _0809E02C @ =0x02018000 adds r0, 0x74 movs r1, 0 strb r1, [r0] movs r0, 0x1 b _0809E03C .align 2, 0 _0809E028: .4byte gMoveTypes_Pal _0809E02C: .4byte 0x02018000 _0809E030: ldr r1, _0809E040 @ =0x02018000 adds r1, 0x74 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] movs r0, 0 _0809E03C: pop {r1} bx r1 .align 2, 0 _0809E040: .4byte 0x02018000 thumb_func_end sub_809DF00 thumb_func_start sub_809E044 sub_809E044: @ 809E044 push {r4,r5,lr} ldr r4, _0809E0F4 @ =gUnknownPalette_81E6692+0x1C adds r0, r4, 0 movs r1, 0x81 movs r2, 0x2 bl LoadPalette adds r5, r4, 0x2 adds r0, r5, 0 movs r1, 0x88 movs r2, 0x2 bl LoadPalette adds r0, r4, 0 movs r1, 0x8F movs r2, 0x2 bl LoadPalette adds r0, r5, 0 movs r1, 0x89 movs r2, 0x2 bl LoadPalette subs r5, 0x12 adds r0, r5, 0 movs r1, 0xD1 movs r2, 0x4 bl LoadPalette adds r0, r4, 0 subs r0, 0x8 movs r1, 0xD3 movs r2, 0x4 bl LoadPalette adds r0, r4, 0 movs r1, 0xD5 movs r2, 0x4 bl LoadPalette adds r0, r5, 0 movs r1, 0xD7 movs r2, 0x4 bl LoadPalette adds r0, r4, 0 subs r0, 0x14 movs r1, 0xD9 movs r2, 0x4 bl LoadPalette adds r0, r4, 0 subs r0, 0xC movs r1, 0xDB movs r2, 0x4 bl LoadPalette adds r0, r4, 0 subs r0, 0x18 movs r1, 0xDD movs r2, 0x2 bl LoadPalette subs r5, 0x6 adds r0, r5, 0 movs r1, 0xDE movs r2, 0x2 bl LoadPalette subs r4, 0x1A adds r0, r4, 0 movs r1, 0xDF movs r2, 0x2 bl LoadPalette ldr r0, _0809E0F8 @ =gFontDefaultPalette movs r1, 0xF0 movs r2, 0x20 bl LoadPalette adds r0, r5, 0 movs r1, 0xF9 movs r2, 0x2 bl LoadPalette pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0809E0F4: .4byte gUnknownPalette_81E6692+0x1C _0809E0F8: .4byte gFontDefaultPalette thumb_func_end sub_809E044 thumb_func_start SummaryScreenExit SummaryScreenExit: @ 809E0FC push {r4,lr} sub sp, 0x4 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 movs r0, 0x5 bl PlaySE movs r0, 0x1 negs r0, r0 movs r1, 0 str r1, [sp] movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade ldr r1, _0809E134 @ =gTasks lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _0809E138 @ =sub_809E13C str r1, [r0] add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _0809E134: .4byte gTasks _0809E138: .4byte sub_809E13C thumb_func_end SummaryScreenExit thumb_func_start sub_809E13C sub_809E13C: @ 809E13C push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 bl sub_8055870 cmp r0, 0x1 beq _0809E182 ldr r0, _0809E188 @ =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _0809E182 ldr r1, _0809E18C @ =gUnknown_020384F0 ldr r4, _0809E190 @ =0x02018000 ldrb r0, [r4, 0x9] strb r0, [r1] bl ResetSpriteData bl FreeAllSpritePalettes bl StopCryAndClearCrySongs ldr r0, _0809E194 @ =gMPlay_BGM ldr r1, _0809E198 @ =0x0000ffff movs r2, 0x80 lsls r2, 1 bl m4aMPlayVolumeControl ldr r0, [r4, 0x4] bl SetMainCallback2 adds r0, r5, 0 bl DestroyTask _0809E182: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0809E188: .4byte gPaletteFade _0809E18C: .4byte gUnknown_020384F0 _0809E190: .4byte 0x02018000 _0809E194: .4byte gMPlay_BGM _0809E198: .4byte 0x0000ffff thumb_func_end sub_809E13C thumb_func_start SummaryScreenHandleKeyInput SummaryScreenHandleKeyInput: @ 809E19C push {r4,r5,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, _0809E1C8 @ =gPaletteFade ldrb r1, [r0, 0x7] movs r2, 0x80 adds r0, r2, 0 ands r0, r1 cmp r0, 0 bne _0809E25A ldr r5, _0809E1CC @ =gMain ldrh r1, [r5, 0x2E] movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _0809E1D0 movs r1, 0x1 negs r1, r1 adds r0, r4, 0 bl SummaryScreenHandleUpDownInput b _0809E25A .align 2, 0 _0809E1C8: .4byte gPaletteFade _0809E1CC: .4byte gMain _0809E1D0: adds r0, r2, 0 ands r0, r1 cmp r0, 0 beq _0809E1E2 adds r0, r4, 0 movs r1, 0x1 bl SummaryScreenHandleUpDownInput b _0809E25A _0809E1E2: movs r0, 0x20 ands r0, r1 cmp r0, 0 bne _0809E1F6 bl sub_80F9284 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _0809E202 _0809E1F6: movs r1, 0x1 negs r1, r1 adds r0, r4, 0 bl SummaryScreenHandleLeftRightInput b _0809E25A _0809E202: ldrh r1, [r5, 0x2E] movs r0, 0x10 ands r0, r1 cmp r0, 0 bne _0809E218 bl sub_80F9284 lsls r0, 24 lsrs r0, 24 cmp r0, 0x2 bne _0809E222 _0809E218: adds r0, r4, 0 movs r1, 0x1 bl SummaryScreenHandleLeftRightInput b _0809E25A _0809E222: ldrh r1, [r5, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _0809E24C ldr r5, _0809E248 @ =0x02018000 ldrb r0, [r5, 0xB] cmp r0, 0x1 bls _0809E23A adds r0, r4, 0 bl SummaryScreenHandleAButton _0809E23A: ldrb r0, [r5, 0xB] cmp r0, 0 bne _0809E25A adds r0, r4, 0 bl SummaryScreenExit b _0809E25A .align 2, 0 _0809E248: .4byte 0x02018000 _0809E24C: movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _0809E25A adds r0, r4, 0 bl SummaryScreenExit _0809E25A: pop {r4,r5} pop {r0} bx r0 thumb_func_end SummaryScreenHandleKeyInput thumb_func_start sub_809E260 sub_809E260: @ 809E260 push {r4,r5,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, _0809E29C @ =gPaletteFade ldrb r1, [r0, 0x7] movs r2, 0x80 adds r0, r2, 0 ands r0, r1 cmp r0, 0 beq _0809E276 b _0809E3EE _0809E276: ldr r5, _0809E2A0 @ =gMain ldrh r1, [r5, 0x2E] movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _0809E2AC ldr r1, _0809E2A4 @ =gTasks lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 movs r1, 0x4 strh r1, [r0, 0x8] subs r1, 0x5 ldr r2, _0809E2A8 @ =0x02018079 adds r0, r4, 0 bl sub_809E8F0 b _0809E3EE .align 2, 0 _0809E29C: .4byte gPaletteFade _0809E2A0: .4byte gMain _0809E2A4: .4byte gTasks _0809E2A8: .4byte 0x02018079 _0809E2AC: adds r0, r2, 0 ands r0, r1 cmp r0, 0 beq _0809E2D8 ldr r1, _0809E2D0 @ =gTasks lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 movs r1, 0x4 strh r1, [r0, 0x8] ldr r2, _0809E2D4 @ =0x02018079 adds r0, r4, 0 movs r1, 0x1 bl sub_809E8F0 b _0809E3EE .align 2, 0 _0809E2D0: .4byte gTasks _0809E2D4: .4byte 0x02018079 _0809E2D8: movs r0, 0x20 ands r0, r1 cmp r0, 0 bne _0809E2EC bl sub_80F9284 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _0809E324 _0809E2EC: ldr r1, _0809E320 @ =0x02018000 ldrb r0, [r1, 0xB] cmp r0, 0x3 bne _0809E314 adds r0, r1, 0 adds r0, 0x79 ldrb r0, [r0] cmp r0, 0x4 bne _0809E308 adds r0, r1, 0 adds r0, 0x7C ldrh r0, [r0] cmp r0, 0 beq _0809E314 _0809E308: movs r0, 0 movs r1, 0xE movs r2, 0x9 movs r3, 0x12 bl MenuZeroFillWindowRect _0809E314: movs r1, 0x1 negs r1, r1 adds r0, r4, 0 bl SummaryScreenHandleLeftRightInput b _0809E3EE .align 2, 0 _0809E320: .4byte 0x02018000 _0809E324: ldrh r1, [r5, 0x2E] movs r0, 0x10 ands r0, r1 cmp r0, 0 bne _0809E33A bl sub_80F9284 lsls r0, 24 lsrs r0, 24 cmp r0, 0x2 bne _0809E37C _0809E33A: ldr r1, _0809E378 @ =0x02018000 adds r2, r1, 0 adds r2, 0x76 ldrb r0, [r1, 0xB] ldrb r2, [r2] cmp r0, r2 beq _0809E3EE cmp r0, 0x2 bne _0809E36C adds r0, r1, 0 adds r0, 0x79 ldrb r0, [r0] cmp r0, 0x4 bne _0809E360 adds r0, r1, 0 adds r0, 0x7C ldrh r0, [r0] cmp r0, 0 beq _0809E36C _0809E360: movs r0, 0 movs r1, 0xE movs r2, 0x9 movs r3, 0x12 bl MenuZeroFillWindowRect _0809E36C: adds r0, r4, 0 movs r1, 0x1 bl SummaryScreenHandleLeftRightInput b _0809E3EE .align 2, 0 _0809E378: .4byte 0x02018000 _0809E37C: ldrh r1, [r5, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _0809E3D4 adds r0, r4, 0 bl sub_809F7D0 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _0809E3A0 ldr r0, _0809E3BC @ =0x02018000 adds r5, r0, 0 adds r5, 0x79 ldrb r0, [r5] cmp r0, 0x4 bne _0809E3C4 _0809E3A0: ldr r0, _0809E3BC @ =0x02018000 adds r1, r0, 0 adds r1, 0x79 ldrb r1, [r1] adds r0, 0x7A strb r1, [r0] ldr r1, _0809E3C0 @ =gSpecialVar_0x8005 ldrb r0, [r0] strh r0, [r1] adds r0, r4, 0 bl SummaryScreenExit b _0809E3EE .align 2, 0 _0809E3BC: .4byte 0x02018000 _0809E3C0: .4byte gSpecialVar_0x8005 _0809E3C4: movs r0, 0x20 bl PlaySE ldrb r1, [r5] adds r0, r4, 0 bl sub_809F9D0 b _0809E3EE _0809E3D4: movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _0809E3EE ldr r0, _0809E3F4 @ =0x02018000 adds r0, 0x7A movs r1, 0x4 strb r1, [r0] ldr r0, _0809E3F8 @ =gSpecialVar_0x8005 strh r1, [r0] adds r0, r4, 0 bl SummaryScreenExit _0809E3EE: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0809E3F4: .4byte 0x02018000 _0809E3F8: .4byte gSpecialVar_0x8005 thumb_func_end sub_809E260 thumb_func_start sub_809E3FC sub_809E3FC: @ 809E3FC push {r4-r7,lr} lsls r0, 24 lsrs r5, r0, 24 adds r7, r5, 0 ldr r0, _0809E438 @ =gPaletteFade ldrb r1, [r0, 0x7] movs r2, 0x80 adds r0, r2, 0 ands r0, r1 cmp r0, 0 bne _0809E502 ldr r0, _0809E43C @ =gMain ldrh r1, [r0, 0x2E] movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _0809E448 ldr r1, _0809E440 @ =gTasks lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r1 movs r1, 0x4 strh r1, [r0, 0x8] subs r1, 0x5 ldr r2, _0809E444 @ =0x02018079 adds r0, r5, 0 bl sub_809E8F0 b _0809E502 .align 2, 0 _0809E438: .4byte gPaletteFade _0809E43C: .4byte gMain _0809E440: .4byte gTasks _0809E444: .4byte 0x02018079 _0809E448: adds r0, r2, 0 ands r0, r1 cmp r0, 0 beq _0809E474 ldr r1, _0809E46C @ =gTasks lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r1 movs r1, 0x4 strh r1, [r0, 0x8] ldr r2, _0809E470 @ =0x02018079 adds r0, r5, 0 movs r1, 0x1 bl sub_809E8F0 b _0809E502 .align 2, 0 _0809E46C: .4byte gTasks _0809E470: .4byte 0x02018079 _0809E474: movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _0809E4EE ldr r4, _0809E4A8 @ =0x02018000 adds r6, r4, 0 adds r6, 0x79 ldrb r0, [r6] cmp r0, 0x4 beq _0809E4E0 adds r0, r4, 0 adds r0, 0x7B ldrb r0, [r0] cmp r0, 0 bne _0809E4E0 adds r0, r4, 0 adds r0, 0x10 bl sub_809E508 lsls r0, 24 cmp r0, 0 bne _0809E4AC movs r0, 0x20 bl PlaySE b _0809E502 .align 2, 0 _0809E4A8: .4byte 0x02018000 _0809E4AC: movs r0, 0x5 bl PlaySE ldrb r1, [r6] adds r0, r4, 0 adds r0, 0x7A strb r1, [r0] movs r0, 0x1 bl sub_80A1B40 movs r0, 0x13 bl sub_80A1A30 ldr r1, _0809E4D8 @ =gTasks lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r1 ldr r1, _0809E4DC @ =sub_809E534 str r1, [r0] b _0809E502 .align 2, 0 _0809E4D8: .4byte gTasks _0809E4DC: .4byte sub_809E534 _0809E4E0: movs r0, 0x5 bl PlaySE adds r0, r7, 0 bl sub_809EAC8 b _0809E502 _0809E4EE: movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _0809E502 movs r0, 0x5 bl PlaySE adds r0, r7, 0 bl sub_809EAC8 _0809E502: pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_809E3FC thumb_func_start sub_809E508 sub_809E508: @ 809E508 push {r4,r5,lr} adds r5, r0, 0 movs r4, 0x1 _0809E50E: adds r0, r5, 0 adds r1, r4, 0 bl sub_809F760 lsls r0, 16 cmp r0, 0 beq _0809E520 movs r0, 0x1 b _0809E52C _0809E520: adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x3 bls _0809E50E movs r0, 0 _0809E52C: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_809E508 thumb_func_start sub_809E534 sub_809E534: @ 809E534 push {lr} lsls r0, 24 lsrs r3, r0, 24 adds r2, r3, 0 ldr r0, _0809E564 @ =gMain ldrh r1, [r0, 0x2E] movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _0809E570 ldr r1, _0809E568 @ =gTasks lsls r0, r3, 2 adds r0, r3 lsls r0, 3 adds r0, r1 movs r1, 0x3 strh r1, [r0, 0x8] subs r1, 0x4 ldr r2, _0809E56C @ =0x0201807a adds r0, r3, 0 bl sub_809E8F0 b _0809E5C0 .align 2, 0 _0809E564: .4byte gMain _0809E568: .4byte gTasks _0809E56C: .4byte 0x0201807a _0809E570: movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _0809E59C ldr r1, _0809E594 @ =gTasks lsls r0, r3, 2 adds r0, r3 lsls r0, 3 adds r0, r1 movs r1, 0x3 strh r1, [r0, 0x8] ldr r2, _0809E598 @ =0x0201807a adds r0, r3, 0 movs r1, 0x1 bl sub_809E8F0 b _0809E5C0 .align 2, 0 _0809E594: .4byte gTasks _0809E598: .4byte 0x0201807a _0809E59C: movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _0809E5AE adds r0, r3, 0 movs r1, 0x1 bl sub_809E83C b _0809E5C0 _0809E5AE: movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _0809E5C0 movs r1, 0x1 negs r1, r1 adds r0, r2, 0 bl sub_809E83C _0809E5C0: pop {r0} bx r0 thumb_func_end sub_809E534 thumb_func_start sub_809E5C4 sub_809E5C4: @ 809E5C4 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x20 ldr r1, _0809E6D0 @ =0x02018000 ldr r5, [r1] ldrb r2, [r1, 0x9] movs r0, 0x64 muls r0, r2 adds r5, r0 adds r0, r1, 0 adds r0, 0x79 ldrb r0, [r0] mov r8, r0 adds r1, 0x7A ldrb r6, [r1] adds r0, 0xD str r0, [sp, 0x8] adds r0, r5, 0 ldr r1, [sp, 0x8] bl GetMonData mov r1, sp adds r1, 0x2 str r1, [sp, 0x14] strh r0, [r1] adds r2, r6, 0 adds r2, 0xD str r2, [sp, 0xC] adds r0, r5, 0 adds r1, r2, 0 bl GetMonData mov r1, sp strh r0, [r1] mov r3, r8 adds r3, 0x11 str r3, [sp, 0x10] adds r0, r5, 0 adds r1, r3, 0 bl GetMonData mov r7, sp adds r7, 0x5 str r7, [sp, 0x18] strb r0, [r7] adds r0, r6, 0 adds r0, 0x11 str r0, [sp, 0x1C] adds r0, r5, 0 ldr r1, [sp, 0x1C] bl GetMonData add r1, sp, 0x4 mov r10, r1 strb r0, [r1] adds r0, r5, 0 movs r1, 0x15 bl GetMonData mov r4, sp adds r4, 0x6 strb r0, [r4] ldr r1, _0809E6D4 @ =gUnknown_08208238 mov r2, r8 adds r0, r2, r1 ldrb r0, [r0] mov r9, r0 ldrb r0, [r4] adds r2, r0, 0 mov r3, r9 ands r2, r3 mov r7, r8 lsls r7, 1 mov r8, r7 asrs r2, r7 lsls r2, 24 lsrs r2, 24 adds r1, r6, r1 ldrb r3, [r1] adds r1, r0, 0 ands r1, r3 lsls r6, 1 asrs r1, r6 lsls r1, 24 lsrs r1, 24 mov r7, r9 bics r0, r7 strb r0, [r4] ldrb r0, [r4] bics r0, r3 strb r0, [r4] lsls r2, r6 mov r0, r8 lsls r1, r0 adds r2, r1 ldrb r0, [r4] orrs r0, r2 strb r0, [r4] adds r0, r5, 0 ldr r1, [sp, 0x8] mov r2, sp bl SetMonData adds r0, r5, 0 ldr r1, [sp, 0xC] ldr r2, [sp, 0x14] bl SetMonData adds r0, r5, 0 ldr r1, [sp, 0x10] mov r2, r10 bl SetMonData adds r0, r5, 0 ldr r1, [sp, 0x1C] ldr r2, [sp, 0x18] bl SetMonData adds r0, r5, 0 movs r1, 0x15 adds r2, r4, 0 bl SetMonData 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 _0809E6D0: .4byte 0x02018000 _0809E6D4: .4byte gUnknown_08208238 thumb_func_end sub_809E5C4 thumb_func_start sub_809E6D8 sub_809E6D8: @ 809E6D8 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x20 ldr r2, _0809E7E8 @ =0x02018000 ldr r5, [r2] ldrb r1, [r2, 0x9] lsls r0, r1, 2 adds r0, r1 lsls r0, 4 adds r5, r0 adds r0, r2, 0 adds r0, 0x79 ldrb r0, [r0] mov r8, r0 adds r2, 0x7A ldrb r6, [r2] adds r0, 0xD str r0, [sp, 0x8] adds r0, r5, 0 ldr r1, [sp, 0x8] bl GetBoxMonData mov r1, sp adds r1, 0x2 str r1, [sp, 0x14] strh r0, [r1] adds r2, r6, 0 adds r2, 0xD str r2, [sp, 0xC] adds r0, r5, 0 adds r1, r2, 0 bl GetBoxMonData mov r1, sp strh r0, [r1] mov r3, r8 adds r3, 0x11 str r3, [sp, 0x10] adds r0, r5, 0 adds r1, r3, 0 bl GetBoxMonData mov r7, sp adds r7, 0x5 str r7, [sp, 0x18] strb r0, [r7] adds r0, r6, 0 adds r0, 0x11 str r0, [sp, 0x1C] adds r0, r5, 0 ldr r1, [sp, 0x1C] bl GetBoxMonData add r1, sp, 0x4 mov r10, r1 strb r0, [r1] adds r0, r5, 0 movs r1, 0x15 bl GetBoxMonData mov r4, sp adds r4, 0x6 strb r0, [r4] ldr r1, _0809E7EC @ =gUnknown_08208238 mov r2, r8 adds r0, r2, r1 ldrb r0, [r0] mov r9, r0 ldrb r0, [r4] adds r2, r0, 0 mov r3, r9 ands r2, r3 mov r7, r8 lsls r7, 1 mov r8, r7 asrs r2, r7 lsls r2, 24 lsrs r2, 24 adds r1, r6, r1 ldrb r3, [r1] adds r1, r0, 0 ands r1, r3 lsls r6, 1 asrs r1, r6 lsls r1, 24 lsrs r1, 24 mov r7, r9 bics r0, r7 strb r0, [r4] ldrb r0, [r4] bics r0, r3 strb r0, [r4] lsls r2, r6 mov r0, r8 lsls r1, r0 adds r2, r1 ldrb r0, [r4] orrs r0, r2 strb r0, [r4] adds r0, r5, 0 ldr r1, [sp, 0x8] mov r2, sp bl SetBoxMonData adds r0, r5, 0 ldr r1, [sp, 0xC] ldr r2, [sp, 0x14] bl SetBoxMonData adds r0, r5, 0 ldr r1, [sp, 0x10] mov r2, r10 bl SetBoxMonData adds r0, r5, 0 ldr r1, [sp, 0x1C] ldr r2, [sp, 0x18] bl SetBoxMonData adds r0, r5, 0 movs r1, 0x15 adds r2, r4, 0 bl SetBoxMonData 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 _0809E7E8: .4byte 0x02018000 _0809E7EC: .4byte gUnknown_08208238 thumb_func_end sub_809E6D8 thumb_func_start sub_809E7F0 sub_809E7F0: @ 809E7F0 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 bl sub_809F5F8 lsls r0, 24 cmp r0, 0 beq _0809E828 ldr r1, _0809E830 @ =0x02018000 adds r2, r1, 0 adds r2, 0x74 movs r0, 0 strb r0, [r2] adds r0, r1, 0 adds r0, 0x10 adds r1, 0x79 bl sub_80A0428 ldr r1, _0809E834 @ =gTasks lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _0809E838 @ =sub_809E3FC str r1, [r0] adds r0, r4, 0 bl sub_80A2078 _0809E828: pop {r4} pop {r0} bx r0 .align 2, 0 _0809E830: .4byte 0x02018000 _0809E834: .4byte gTasks _0809E838: .4byte sub_809E3FC thumb_func_end sub_809E7F0 thumb_func_start sub_809E83C sub_809E83C: @ 809E83C push {r4,r5,lr} adds r4, r1, 0 lsls r0, 24 lsrs r5, r0, 24 lsls r4, 24 lsrs r4, 24 movs r0, 0x5 bl PlaySE movs r0, 0x13 bl sub_80A1B1C movs r0, 0 bl sub_80A1B40 cmp r4, 0x1 bne _0809E8C0 ldr r1, _0809E87C @ =0x02018000 adds r0, r1, 0 adds r0, 0x79 adds r2, r1, 0 adds r2, 0x7A ldrb r0, [r0] ldrb r2, [r2] cmp r0, r2 beq _0809E8CA ldrb r0, [r1, 0xE] cmp r0, 0 bne _0809E880 bl sub_809E5C4 b _0809E884 .align 2, 0 _0809E87C: .4byte 0x02018000 _0809E880: bl sub_809E6D8 _0809E884: ldr r4, _0809E8B4 @ =0x02018000 adds r0, r4, 0 adds r0, 0x7A ldrb r0, [r0] adds r1, r4, 0 adds r1, 0x79 strb r0, [r1] adds r0, r4, 0 adds r0, 0x10 bl sub_809F678 adds r1, r4, 0 adds r1, 0x74 movs r0, 0x1 strb r0, [r1] ldr r1, _0809E8B8 @ =gTasks lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r1 ldr r1, _0809E8BC @ =sub_809E7F0 str r1, [r0] b _0809E8DE .align 2, 0 _0809E8B4: .4byte 0x02018000 _0809E8B8: .4byte gTasks _0809E8BC: .4byte sub_809E7F0 _0809E8C0: ldr r0, _0809E8E4 @ =0x02018010 adds r1, r0, 0 adds r1, 0x69 bl sub_80A0428 _0809E8CA: ldr r0, _0809E8E8 @ =gTasks lsls r1, r5, 2 adds r1, r5 lsls r1, 3 adds r1, r0 ldr r0, _0809E8EC @ =sub_809E3FC str r0, [r1] adds r0, r5, 0 bl sub_80A2078 _0809E8DE: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0809E8E4: .4byte 0x02018010 _0809E8E8: .4byte gTasks _0809E8EC: .4byte sub_809E3FC thumb_func_end sub_809E83C thumb_func_start sub_809E8F0 sub_809E8F0: @ 809E8F0 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x8 adds r4, r1, 0 mov r9, r2 lsls r0, 24 lsrs r0, 24 mov r8, r0 lsls r4, 24 lsrs r4, 24 movs r0, 0x1 str r0, [sp] movs r0, 0x5 bl PlaySE mov r1, r9 ldrb r6, [r1] ldr r1, _0809E944 @ =gTasks mov r2, r8 lsls r0, r2, 2 add r0, r8 lsls r0, 3 adds r0, r1 ldrb r0, [r0, 0x8] movs r2, 0 lsls r4, 24 asrs r4, 24 mov r10, r4 lsls r7, r0, 24 _0809E930: lsls r0, r6, 24 asrs r0, 24 add r0, r10 lsls r0, 24 lsrs r6, r0, 24 asrs r1, r0, 24 cmp r0, r7 ble _0809E948 movs r6, 0 b _0809E94E .align 2, 0 _0809E944: .4byte gTasks _0809E948: cmp r1, 0 bge _0809E94E lsrs r6, r7, 24 _0809E94E: lsls r4, r6, 24 lsrs r1, r4, 24 ldr r0, _0809EA10 @ =0x02018010 str r2, [sp, 0x4] bl sub_809F760 lsls r0, 16 adds r5, r4, 0 ldr r2, [sp, 0x4] cmp r0, 0 bne _0809E97A asrs r0, r5, 24 cmp r0, 0x4 beq _0809E97A lsls r0, r2, 24 movs r3, 0x80 lsls r3, 17 adds r0, r3 lsrs r2, r0, 24 asrs r0, 24 cmp r0, 0x3 ble _0809E930 _0809E97A: mov r1, r9 ldrb r0, [r1] cmp r0, 0x4 bne _0809E996 asrs r0, r5, 24 cmp r0, 0x4 beq _0809E996 ldr r0, _0809EA14 @ =0x02018000 adds r0, 0x7C ldrh r0, [r0] mov r2, r8 lsls r7, r2, 2 cmp r0, 0 beq _0809E9AC _0809E996: ldr r2, _0809EA18 @ =gTasks mov r3, r8 lsls r1, r3, 2 adds r0, r1, r3 lsls r0, 3 adds r0, r2 movs r2, 0x22 ldrsh r0, [r0, r2] adds r7, r1, 0 cmp r0, 0x1 bne _0809E9D0 _0809E9AC: lsrs r4, r5, 24 movs r0, 0x2 adds r1, r4, 0 bl sub_80A1488 movs r0, 0x2 adds r1, r4, 0 bl sub_80A1654 ldr r1, _0809EA18 @ =gTasks mov r3, r8 adds r0, r7, r3 lsls r0, 3 adds r0, r1 movs r1, 0 strh r1, [r0, 0x22] movs r0, 0 str r0, [sp] _0809E9D0: mov r1, r9 ldrb r0, [r1] cmp r0, 0x4 beq _0809E9FE asrs r0, r5, 24 cmp r0, 0x4 bne _0809E9FE ldr r0, _0809EA14 @ =0x02018000 adds r0, 0x7C ldrh r0, [r0] cmp r0, 0 bne _0809E9FE movs r4, 0x2 negs r4, r4 lsrs r5, 24 adds r0, r4, 0 adds r1, r5, 0 bl sub_80A1488 adds r0, r4, 0 adds r1, r5, 0 bl sub_80A1654 _0809E9FE: mov r2, r9 strb r6, [r2] ldr r0, _0809EA1C @ =0x02018079 cmp r9, r0 bne _0809EA20 movs r0, 0 bl sub_80A1C30 b _0809EA26 .align 2, 0 _0809EA10: .4byte 0x02018010 _0809EA14: .4byte 0x02018000 _0809EA18: .4byte gTasks _0809EA1C: .4byte 0x02018079 _0809EA20: movs r0, 0x1 bl sub_80A1C30 _0809EA26: ldr r3, [sp] cmp r3, 0 beq _0809EA34 ldr r0, _0809EA4C @ =0x02018010 mov r1, r9 bl sub_80A0428 _0809EA34: mov r0, r8 bl sub_80A2078 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 _0809EA4C: .4byte 0x02018010 thumb_func_end sub_809E8F0 thumb_func_start SummaryScreenHandleAButton SummaryScreenHandleAButton: @ 809EA50 push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 movs r0, 0x5 bl PlaySE ldr r4, _0809EABC @ =0x02018000 adds r1, r4, 0 adds r1, 0x79 movs r0, 0 strb r0, [r1] movs r0, 0x2 movs r1, 0 bl sub_80A1488 movs r0, 0x2 movs r1, 0 bl sub_80A1654 adds r0, r4, 0 adds r0, 0x7B ldrb r0, [r0] cmp r0, 0 bne _0809EA8C adds r1, r4, 0 adds r1, 0x7F movs r0, 0x5 strb r0, [r1] bl sub_80A0DD0 _0809EA8C: movs r0, 0 bl sub_80A16CC adds r0, r4, 0 adds r0, 0x10 bl sub_80A029C movs r0, 0x9 bl sub_80A1A30 ldr r1, _0809EAC0 @ =gTasks lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r1 ldr r1, _0809EAC4 @ =sub_809E3FC str r1, [r0] adds r0, r5, 0 bl sub_80A2078 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0809EABC: .4byte 0x02018000 _0809EAC0: .4byte gTasks _0809EAC4: .4byte sub_809E3FC thumb_func_end SummaryScreenHandleAButton thumb_func_start sub_809EAC8 sub_809EAC8: @ 809EAC8 push {r4-r6,lr} lsls r0, 24 lsrs r5, r0, 24 ldr r6, _0809EB34 @ =0x02018000 adds r0, r6, 0 adds r0, 0x79 ldrb r0, [r0] cmp r0, 0x4 beq _0809EAEE movs r4, 0x2 negs r4, r4 adds r0, r4, 0 movs r1, 0 bl sub_80A1488 adds r0, r4, 0 movs r1, 0 bl sub_80A1654 _0809EAEE: movs r0, 0x9 bl sub_80A1B1C movs r0, 0x1 bl sub_80A16CC movs r0, 0xF movs r1, 0xC movs r2, 0x1C movs r3, 0xD bl MenuZeroFillWindowRect movs r0, 0xB movs r1, 0xF movs r2, 0x1C movs r3, 0x12 bl MenuZeroFillWindowRect adds r1, r6, 0 adds r1, 0x7F movs r0, 0x6 strb r0, [r1] bl sub_80A0DD0 ldr r1, _0809EB38 @ =gTasks lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r1 ldr r1, _0809EB3C @ =SummaryScreenHandleKeyInput str r1, [r0] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0809EB34: .4byte 0x02018000 _0809EB38: .4byte gTasks _0809EB3C: .4byte SummaryScreenHandleKeyInput thumb_func_end sub_809EAC8 thumb_func_start sub_809EB40 sub_809EB40: @ 809EB40 push {r4-r6,lr} lsls r0, 24 lsrs r5, r0, 24 ldr r1, _0809EB6C @ =gTasks lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r4, r0, r1 movs r1, 0x8 ldrsh r0, [r4, r1] cmp r0, 0 beq _0809EB74 cmp r0, 0x5 bne _0809EBA4 movs r0, 0x9 bl sub_80A1A30 movs r0, 0 strh r0, [r4, 0x8] ldr r0, _0809EB70 @ =sub_809E260 str r0, [r4] b _0809EBB4 .align 2, 0 _0809EB6C: .4byte gTasks _0809EB70: .4byte sub_809E260 _0809EB74: ldr r4, _0809EBBC @ =0x02018000 adds r6, r4, 0 adds r6, 0x79 strb r0, [r6] adds r0, r4, 0 adds r0, 0x7C ldrh r0, [r0] cmp r0, 0 beq _0809EB96 movs r0, 0xA movs r1, 0 bl sub_80A1488 ldrb r1, [r6] movs r0, 0xA bl sub_80A1654 _0809EB96: movs r0, 0 bl sub_80A16CC adds r0, r4, 0 adds r0, 0x10 bl sub_80A029C _0809EBA4: ldr r0, _0809EBC0 @ =gTasks lsls r1, r5, 2 adds r1, r5 lsls r1, 3 adds r1, r0 ldrh r0, [r1, 0x8] adds r0, 0x1 strh r0, [r1, 0x8] _0809EBB4: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0809EBBC: .4byte 0x02018000 _0809EBC0: .4byte gTasks thumb_func_end sub_809EB40 thumb_func_start sub_809EBC4 sub_809EBC4: @ 809EBC4 push {r4,lr} ldr r4, _0809EC28 @ =0x02018000 ldrb r0, [r4, 0xB] cmp r0, 0 beq _0809EC22 bl sub_80A0EE8 ldr r0, _0809EC2C @ =gUnknown_030042C0 movs r2, 0x80 lsls r2, 1 adds r1, r2, 0 strh r1, [r0] ldrb r0, [r4, 0xB] cmp r0, 0x1 bne _0809EBF4 ldr r2, _0809EC30 @ =REG_BG1CNT ldrh r1, [r2] ldr r0, _0809EC34 @ =0x0000e0ff ands r0, r1 movs r3, 0x80 lsls r3, 4 adds r1, r3, 0 adds r0, r1 strh r0, [r2] _0809EBF4: ldrb r3, [r4, 0xB] cmp r3, 0x2 bne _0809EC0C ldr r2, _0809EC30 @ =REG_BG1CNT ldrh r1, [r2] ldr r0, _0809EC34 @ =0x0000e0ff ands r0, r1 movs r4, 0xA0 lsls r4, 4 adds r1, r4, 0 adds r0, r1 strh r0, [r2] _0809EC0C: cmp r3, 0x3 bne _0809EC22 ldr r2, _0809EC30 @ =REG_BG1CNT ldrh r1, [r2] ldr r0, _0809EC34 @ =0x0000e0ff ands r0, r1 movs r3, 0xC0 lsls r3, 4 adds r1, r3, 0 adds r0, r1 strh r0, [r2] _0809EC22: pop {r4} pop {r0} bx r0 .align 2, 0 _0809EC28: .4byte 0x02018000 _0809EC2C: .4byte gUnknown_030042C0 _0809EC30: .4byte REG_BG1CNT _0809EC34: .4byte 0x0000e0ff thumb_func_end sub_809EBC4 thumb_func_start sub_809EC38 sub_809EC38: @ 809EC38 push {r4-r6,lr} lsls r0, 24 lsrs r4, r0, 24 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 ldr r1, _0809EC5C @ =gTasks + 0x8 adds r6, r0, r1 movs r1, 0 ldrsh r0, [r6, r1] cmp r0, 0x5 bls _0809EC52 b _0809EE64 _0809EC52: lsls r0, 2 ldr r1, _0809EC60 @ =_0809EC64 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0809EC5C: .4byte gTasks + 0x8 _0809EC60: .4byte _0809EC64 .align 2, 0 _0809EC64: .4byte _0809EC7C .4byte _0809ED14 .4byte _0809ED98 .4byte _0809EE12 .4byte _0809EE1C .4byte _0809EE4C _0809EC7C: ldr r1, _0809ECB8 @ =0x02018000 adds r0, r1, 0 adds r0, 0x80 ldrb r0, [r0] cmp r0, 0 bne _0809ECC8 ldrb r3, [r1, 0xB] cmp r3, 0 beq _0809EC98 ldr r1, _0809ECBC @ =gUnknown_03004288 movs r2, 0x80 lsls r2, 1 adds r0, r2, 0 strh r0, [r1] _0809EC98: cmp r3, 0x1 bne _0809ECAE ldr r2, _0809ECC0 @ =REG_BG2CNT ldrh r1, [r2] ldr r0, _0809ECC4 @ =0x0000e0ff ands r0, r1 movs r4, 0x80 lsls r4, 4 adds r1, r4, 0 adds r0, r1 strh r0, [r2] _0809ECAE: cmp r3, 0x2 beq _0809ECB4 b _0809EE3A _0809ECB4: ldr r2, _0809ECC0 @ =REG_BG2CNT b _0809ECF6 .align 2, 0 _0809ECB8: .4byte 0x02018000 _0809ECBC: .4byte gUnknown_03004288 _0809ECC0: .4byte REG_BG2CNT _0809ECC4: .4byte 0x0000e0ff _0809ECC8: ldrb r3, [r1, 0xB] cmp r3, 0 beq _0809ECD8 ldr r1, _0809ED08 @ =gUnknown_030042C0 movs r4, 0x80 lsls r4, 1 adds r0, r4, 0 strh r0, [r1] _0809ECD8: cmp r3, 0x1 bne _0809ECEE ldr r2, _0809ED0C @ =REG_BG1CNT ldrh r1, [r2] ldr r0, _0809ED10 @ =0x0000e0ff ands r0, r1 movs r4, 0x80 lsls r4, 4 adds r1, r4, 0 adds r0, r1 strh r0, [r2] _0809ECEE: cmp r3, 0x2 beq _0809ECF4 b _0809EE3A _0809ECF4: ldr r2, _0809ED0C @ =REG_BG1CNT _0809ECF6: ldrh r1, [r2] ldr r0, _0809ED10 @ =0x0000e0ff ands r0, r1 movs r3, 0xA0 lsls r3, 4 adds r1, r3, 0 adds r0, r1 strh r0, [r2] b _0809EE3A .align 2, 0 _0809ED08: .4byte gUnknown_030042C0 _0809ED0C: .4byte REG_BG1CNT _0809ED10: .4byte 0x0000e0ff _0809ED14: ldr r0, _0809ED48 @ =0x02018000 adds r0, 0x80 ldrb r0, [r0] cmp r0, 0 bne _0809ED5C ldr r1, _0809ED4C @ =gUnknown_030042C0 ldrh r0, [r1] subs r0, 0x20 strh r0, [r1] lsls r0, 16 cmp r0, 0 beq _0809ED2E b _0809EE64 _0809ED2E: ldr r3, _0809ED50 @ =REG_BG1CNT ldrh r2, [r3] ldr r1, _0809ED54 @ =0x0000fffc adds r0, r1, 0 ands r0, r2 adds r0, 0x2 strh r0, [r3] ldr r2, _0809ED58 @ =REG_BG2CNT ldrh r0, [r2] ands r1, r0 adds r1, 0x1 strh r1, [r2] b _0809EE3A .align 2, 0 _0809ED48: .4byte 0x02018000 _0809ED4C: .4byte gUnknown_030042C0 _0809ED50: .4byte REG_BG1CNT _0809ED54: .4byte 0x0000fffc _0809ED58: .4byte REG_BG2CNT _0809ED5C: ldr r1, _0809ED88 @ =gUnknown_03004288 ldrh r0, [r1] subs r0, 0x20 strh r0, [r1] lsls r0, 16 cmp r0, 0 beq _0809ED6C b _0809EE64 _0809ED6C: ldr r3, _0809ED8C @ =REG_BG1CNT ldrh r2, [r3] ldr r1, _0809ED90 @ =0x0000fffc adds r0, r1, 0 ands r0, r2 adds r0, 0x1 strh r0, [r3] ldr r2, _0809ED94 @ =REG_BG2CNT ldrh r0, [r2] ands r1, r0 adds r1, 0x2 strh r1, [r2] b _0809EE3A .align 2, 0 _0809ED88: .4byte gUnknown_03004288 _0809ED8C: .4byte REG_BG1CNT _0809ED90: .4byte 0x0000fffc _0809ED94: .4byte REG_BG2CNT _0809ED98: ldr r1, _0809EDD4 @ =0x02018000 ldrb r3, [r1, 0xB] adds r0, r3, 0x1 adds r2, r1, 0 adds r2, 0x7E strb r0, [r2] ldrb r2, [r1, 0x8] subs r0, r2, 0x2 lsls r0, 24 lsrs r0, 24 adds r5, r1, 0 cmp r0, 0x1 bhi _0809EDD8 adds r1, 0x7F movs r0, 0 strb r0, [r1] adds r4, r5, 0 adds r4, 0x10 adds r0, r4, 0 bl sub_80A029C adds r5, 0x79 adds r0, r4, 0 adds r1, r5, 0 bl sub_80A0428 ldrb r0, [r5] bl sub_80A00F4 b _0809EE3A .align 2, 0 _0809EDD4: .4byte 0x02018000 _0809EDD8: lsls r0, r3, 24 lsrs r0, 24 cmp r0, 0x1 bls _0809EDFA adds r0, r5, 0 adds r0, 0x7B ldrb r0, [r0] cmp r0, 0 beq _0809EDF2 lsls r0, r2, 24 lsrs r0, 24 cmp r0, 0x4 bne _0809EDFA _0809EDF2: adds r1, r5, 0 adds r1, 0x7F movs r0, 0x6 b _0809EE0E _0809EDFA: ldrb r0, [r5, 0xB] cmp r0, 0 bne _0809EE08 adds r1, r5, 0 adds r1, 0x7F movs r0, 0x7 b _0809EE0E _0809EE08: adds r1, r5, 0 adds r1, 0x7F movs r0, 0 _0809EE0E: strb r0, [r1] b _0809EE3A _0809EE12: bl sub_80A0EE8 bl sub_80A0DD0 b _0809EE3A _0809EE1C: ldr r0, _0809EE44 @ =gUnknown_083C1598 ldr r4, _0809EE48 @ =0x02018000 ldrb r1, [r4, 0xB] lsls r1, 2 adds r1, r0 adds r0, r4, 0 adds r0, 0x10 ldr r1, [r1] bl _call_via_r1 adds r4, 0x80 ldrb r0, [r4] movs r1, 0x1 eors r0, r1 strb r0, [r4] _0809EE3A: ldrh r0, [r6] adds r0, 0x1 strh r0, [r6] b _0809EE64 .align 2, 0 _0809EE44: .4byte gUnknown_083C1598 _0809EE48: .4byte 0x02018000 _0809EE4C: bl sub_8055870 cmp r0, 0x1 beq _0809EE64 ldr r1, _0809EE6C @ =gTasks lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _0809EE70 @ =gUnknown_03005CF0 ldr r1, [r1] str r1, [r0] _0809EE64: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0809EE6C: .4byte gTasks _0809EE70: .4byte gUnknown_03005CF0 thumb_func_end sub_809EC38 thumb_func_start sub_809EE74 sub_809EE74: @ 809EE74 push {r4-r6,lr} lsls r0, 24 lsrs r4, r0, 24 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 ldr r1, _0809EE98 @ =gTasks + 0x8 adds r6, r0, r1 movs r1, 0 ldrsh r0, [r6, r1] cmp r0, 0x6 bls _0809EE8E b _0809F0C0 _0809EE8E: lsls r0, 2 ldr r1, _0809EE9C @ =_0809EEA0 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0809EE98: .4byte gTasks + 0x8 _0809EE9C: .4byte _0809EEA0 .align 2, 0 _0809EEA0: .4byte _0809EEBC .4byte _0809EEE0 .4byte _0809EFB4 .4byte _0809EFF4 .4byte _0809F06E .4byte _0809F078 .4byte _0809F0A8 _0809EEBC: ldr r0, _0809EECC @ =0x02018000 adds r0, 0x80 ldrb r1, [r0] cmp r1, 0 bne _0809EED4 ldr r0, _0809EED0 @ =gUnknown_03004288 strh r1, [r0] b _0809F096 .align 2, 0 _0809EECC: .4byte 0x02018000 _0809EED0: .4byte gUnknown_03004288 _0809EED4: ldr r1, _0809EEDC @ =gUnknown_030042C0 movs r0, 0 strh r0, [r1] b _0809F096 .align 2, 0 _0809EEDC: .4byte gUnknown_030042C0 _0809EEE0: ldr r1, _0809EF30 @ =0x02018000 adds r0, r1, 0 adds r0, 0x80 ldrb r0, [r0] cmp r0, 0 bne _0809EF4C ldrb r3, [r1, 0xB] cmp r3, 0x1 bne _0809EF02 ldr r2, _0809EF34 @ =REG_BG2CNT ldrh r1, [r2] ldr r0, _0809EF38 @ =0x0000e0fc ands r0, r1 ldr r4, _0809EF3C @ =0x00000801 adds r1, r4, 0 adds r0, r1 strh r0, [r2] _0809EF02: cmp r3, 0x2 bne _0809EF16 ldr r2, _0809EF34 @ =REG_BG2CNT ldrh r1, [r2] ldr r0, _0809EF38 @ =0x0000e0fc ands r0, r1 ldr r4, _0809EF40 @ =0x00000a01 adds r1, r4, 0 adds r0, r1 strh r0, [r2] _0809EF16: cmp r3, 0x3 bne _0809EF2A ldr r2, _0809EF34 @ =REG_BG2CNT ldrh r1, [r2] ldr r0, _0809EF38 @ =0x0000e0fc ands r0, r1 ldr r3, _0809EF44 @ =0x00000c01 adds r1, r3, 0 adds r0, r1 strh r0, [r2] _0809EF2A: ldr r2, _0809EF48 @ =REG_BG1CNT b _0809EF8C .align 2, 0 _0809EF30: .4byte 0x02018000 _0809EF34: .4byte REG_BG2CNT _0809EF38: .4byte 0x0000e0fc _0809EF3C: .4byte 0x00000801 _0809EF40: .4byte 0x00000a01 _0809EF44: .4byte 0x00000c01 _0809EF48: .4byte REG_BG1CNT _0809EF4C: ldrb r3, [r1, 0xB] cmp r3, 0x1 bne _0809EF62 ldr r2, _0809EF98 @ =REG_BG1CNT ldrh r1, [r2] ldr r0, _0809EF9C @ =0x0000e0fc ands r0, r1 ldr r4, _0809EFA0 @ =0x00000801 adds r1, r4, 0 adds r0, r1 strh r0, [r2] _0809EF62: cmp r3, 0x2 bne _0809EF76 ldr r2, _0809EF98 @ =REG_BG1CNT ldrh r1, [r2] ldr r0, _0809EF9C @ =0x0000e0fc ands r0, r1 ldr r4, _0809EFA4 @ =0x00000a01 adds r1, r4, 0 adds r0, r1 strh r0, [r2] _0809EF76: cmp r3, 0x3 bne _0809EF8A ldr r2, _0809EF98 @ =REG_BG1CNT ldrh r1, [r2] ldr r0, _0809EF9C @ =0x0000e0fc ands r0, r1 ldr r3, _0809EFA8 @ =0x00000c01 adds r1, r3, 0 adds r0, r1 strh r0, [r2] _0809EF8A: ldr r2, _0809EFAC @ =REG_BG2CNT _0809EF8C: ldrh r1, [r2] ldr r0, _0809EFB0 @ =0x0000fffc ands r0, r1 adds r0, 0x2 strh r0, [r2] b _0809F096 .align 2, 0 _0809EF98: .4byte REG_BG1CNT _0809EF9C: .4byte 0x0000e0fc _0809EFA0: .4byte 0x00000801 _0809EFA4: .4byte 0x00000a01 _0809EFA8: .4byte 0x00000c01 _0809EFAC: .4byte REG_BG2CNT _0809EFB0: .4byte 0x0000fffc _0809EFB4: ldr r0, _0809EFD4 @ =0x02018000 adds r0, 0x80 ldrb r0, [r0] cmp r0, 0 bne _0809EFDC ldr r0, _0809EFD8 @ =gUnknown_03004288 ldrh r1, [r0] adds r1, 0x20 strh r1, [r0] lsls r1, 16 movs r0, 0x80 lsls r0, 17 cmp r1, r0 bne _0809F0C0 b _0809F096 .align 2, 0 _0809EFD4: .4byte 0x02018000 _0809EFD8: .4byte gUnknown_03004288 _0809EFDC: ldr r0, _0809EFF0 @ =gUnknown_030042C0 ldrh r1, [r0] adds r1, 0x20 strh r1, [r0] lsls r1, 16 movs r0, 0x80 lsls r0, 17 cmp r1, r0 bne _0809F0C0 b _0809F096 .align 2, 0 _0809EFF0: .4byte gUnknown_030042C0 _0809EFF4: ldr r1, _0809F030 @ =0x02018000 ldrb r3, [r1, 0xB] adds r0, r3, 0x1 adds r2, r1, 0 adds r2, 0x7E strb r0, [r2] ldrb r2, [r1, 0x8] subs r0, r2, 0x2 lsls r0, 24 lsrs r0, 24 adds r5, r1, 0 cmp r0, 0x1 bhi _0809F034 adds r1, 0x7F movs r0, 0 strb r0, [r1] adds r4, r5, 0 adds r4, 0x10 adds r0, r4, 0 bl sub_80A029C adds r5, 0x79 adds r0, r4, 0 adds r1, r5, 0 bl sub_80A0428 ldrb r0, [r5] bl sub_80A00F4 b _0809F096 .align 2, 0 _0809F030: .4byte 0x02018000 _0809F034: lsls r0, r3, 24 lsrs r0, 24 cmp r0, 0x1 bls _0809F056 adds r0, r5, 0 adds r0, 0x7B ldrb r0, [r0] cmp r0, 0 beq _0809F04E lsls r0, r2, 24 lsrs r0, 24 cmp r0, 0x4 bne _0809F056 _0809F04E: adds r1, r5, 0 adds r1, 0x7F movs r0, 0x6 b _0809F06A _0809F056: ldrb r0, [r5, 0xB] cmp r0, 0 bne _0809F064 adds r1, r5, 0 adds r1, 0x7F movs r0, 0x7 b _0809F06A _0809F064: adds r1, r5, 0 adds r1, 0x7F movs r0, 0 _0809F06A: strb r0, [r1] b _0809F096 _0809F06E: bl sub_80A0EE8 bl sub_80A0DD0 b _0809F096 _0809F078: ldr r0, _0809F0A0 @ =gUnknown_083C1598 ldr r4, _0809F0A4 @ =0x02018000 ldrb r1, [r4, 0xB] lsls r1, 2 adds r1, r0 adds r0, r4, 0 adds r0, 0x10 ldr r1, [r1] bl _call_via_r1 adds r4, 0x80 ldrb r0, [r4] movs r1, 0x1 eors r0, r1 strb r0, [r4] _0809F096: ldrh r0, [r6] adds r0, 0x1 strh r0, [r6] b _0809F0C0 .align 2, 0 _0809F0A0: .4byte gUnknown_083C1598 _0809F0A4: .4byte 0x02018000 _0809F0A8: bl sub_8055870 cmp r0, 0x1 beq _0809F0C0 ldr r1, _0809F0C8 @ =gTasks lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _0809F0CC @ =gUnknown_03005CF0 ldr r1, [r1] str r1, [r0] _0809F0C0: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0809F0C8: .4byte gTasks _0809F0CC: .4byte gUnknown_03005CF0 thumb_func_end sub_809EE74 thumb_func_start sub_809F0D0 sub_809F0D0: @ 809F0D0 push {r4-r7,lr} adds r4, r1, 0 lsls r0, 24 lsrs r7, r0, 24 lsls r4, 24 lsrs r4, 24 ldr r1, _0809F110 @ =0x02018000 ldrb r0, [r1, 0xB] adds r0, r4 movs r5, 0 strb r0, [r1, 0xB] ldr r2, _0809F114 @ =gUnknown_03005CF0 ldr r1, _0809F118 @ =gTasks lsls r0, r7, 2 adds r0, r7 lsls r0, 3 adds r6, r0, r1 ldr r0, [r6] str r0, [r2] bl sub_809FBE4 strh r5, [r6, 0x8] lsls r4, 24 asrs r4, 24 movs r0, 0x1 negs r0, r0 cmp r4, r0 bne _0809F120 ldr r0, _0809F11C @ =sub_809EC38 str r0, [r6] b _0809F12A .align 2, 0 _0809F110: .4byte 0x02018000 _0809F114: .4byte gUnknown_03005CF0 _0809F118: .4byte gTasks _0809F11C: .4byte sub_809EC38 _0809F120: ldr r1, _0809F130 @ =sub_809EE74 str r1, [r6] adds r0, r7, 0 bl _call_via_r1 _0809F12A: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0809F130: .4byte sub_809EE74 thumb_func_end sub_809F0D0 thumb_func_start SummaryScreenHandleLeftRightInput SummaryScreenHandleLeftRightInput: @ 809F134 push {r4-r6,lr} lsls r0, 24 lsrs r6, r0, 24 lsls r1, 24 lsrs r5, r1, 24 ldr r4, _0809F1AC @ =0x02018010 adds r0, r4, 0 movs r1, 0x2D bl GetMonData cmp r0, 0 bne _0809F1A6 lsls r0, r5, 24 asrs r5, r0, 24 movs r0, 0x1 negs r0, r0 cmp r5, r0 bne _0809F168 adds r0, r4, 0 subs r0, 0x10 adds r1, r4, 0 adds r1, 0x65 ldrb r0, [r0, 0xB] ldrb r1, [r1] cmp r0, r1 beq _0809F1A6 _0809F168: cmp r5, 0x1 bne _0809F17C adds r0, r4, 0 subs r0, 0x10 adds r1, r4, 0 adds r1, 0x66 ldrb r0, [r0, 0xB] ldrb r1, [r1] cmp r0, r1 beq _0809F1A6 _0809F17C: ldr r0, _0809F1B0 @ =sub_80A1334 bl FindTaskIdByFunc lsls r0, 24 lsrs r0, 24 cmp r0, 0xFF bne _0809F1A6 ldr r0, _0809F1B4 @ =sub_80A1500 bl FindTaskIdByFunc lsls r0, 24 lsrs r0, 24 cmp r0, 0xFF bne _0809F1A6 movs r0, 0x5 bl PlaySE adds r0, r6, 0 adds r1, r5, 0 bl sub_809F0D0 _0809F1A6: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0809F1AC: .4byte 0x02018010 _0809F1B0: .4byte sub_80A1334 _0809F1B4: .4byte sub_80A1500 thumb_func_end SummaryScreenHandleLeftRightInput thumb_func_start SummaryScreenHandleUpDownInput SummaryScreenHandleUpDownInput: @ 809F1B8 push {r4-r6,lr} lsls r0, 24 lsrs r6, r0, 24 lsls r1, 24 lsrs r4, r1, 24 ldr r0, _0809F1E4 @ =0x02018000 ldrb r1, [r0, 0xE] adds r2, r0, 0 cmp r1, 0x1 bne _0809F202 ldrb r0, [r2, 0xB] cmp r0, 0 beq _0809F1E8 lsls r1, r4, 24 asrs r1, 24 movs r4, 0x1 eors r1, r4 negs r0, r1 orrs r0, r1 lsrs r4, r0, 31 b _0809F1F4 .align 2, 0 _0809F1E4: .4byte 0x02018000 _0809F1E8: lsls r0, r4, 24 asrs r0, 24 movs r4, 0x3 cmp r0, 0x1 bne _0809F1F4 movs r4, 0x2 _0809F1F4: ldr r0, [r2] ldrb r1, [r2, 0x9] ldrb r2, [r2, 0xA] adds r3, r4, 0 bl StorageSystemGetNextMonIndex b _0809F22C _0809F202: bl sub_80F9344 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _0809F224 bl IsLinkDoubleBattle lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _0809F224 lsls r0, r4, 24 asrs r0, 24 bl sub_809F3CC b _0809F22C _0809F224: lsls r0, r4, 24 asrs r0, 24 bl sub_809F284 _0809F22C: lsls r0, 24 lsrs r4, r0, 24 lsls r0, r4, 24 asrs r0, 24 movs r1, 0x1 negs r1, r1 cmp r0, r1 beq _0809F270 movs r0, 0x5 bl PlaySE ldr r5, _0809F278 @ =0x02018010 adds r0, r5, 0 bl GetMonStatusAndPokerus lsls r0, 24 cmp r0, 0 beq _0809F258 movs r0, 0x2 negs r0, r0 bl sub_80A12D0 _0809F258: adds r0, r5, 0 subs r0, 0x10 strb r4, [r0, 0x9] ldr r1, _0809F27C @ =gTasks lsls r0, r6, 2 adds r0, r6 lsls r0, 3 adds r0, r1 ldr r1, [r0] str r1, [r5, 0x74] ldr r1, _0809F280 @ =sub_809F43C str r1, [r0] _0809F270: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0809F278: .4byte 0x02018010 _0809F27C: .4byte gTasks _0809F280: .4byte sub_809F43C thumb_func_end SummaryScreenHandleUpDownInput thumb_func_start sub_809F284 sub_809F284: @ 809F284 push {r4-r7,lr} lsls r0, 24 lsrs r3, r0, 24 ldr r0, _0809F2C0 @ =0x02018000 ldr r7, [r0] movs r6, 0 ldrb r1, [r0, 0xB] adds r4, r0, 0 cmp r1, 0 bne _0809F2C4 lsls r0, r3, 24 asrs r2, r0, 24 movs r1, 0x1 negs r1, r1 adds r5, r0, 0 cmp r2, r1 bne _0809F2AC ldrb r0, [r4, 0x9] cmp r0, 0 beq _0809F2E4 _0809F2AC: asrs r0, r5, 24 cmp r0, 0x1 bne _0809F2BA ldrb r0, [r4, 0x9] ldrb r1, [r4, 0xA] cmp r0, r1 bcs _0809F2E4 _0809F2BA: ldrb r0, [r4, 0x9] adds r0, r3 b _0809F304 .align 2, 0 _0809F2C0: .4byte 0x02018000 _0809F2C4: lsls r5, r3, 24 _0809F2C6: lsls r0, r6, 24 asrs r0, 24 asrs r1, r5, 24 adds r0, r1 lsls r0, 24 ldr r4, _0809F2EC @ =0x02018000 lsrs r6, r0, 24 asrs r0, 24 ldrb r2, [r4, 0x9] adds r1, r0, r2 cmp r1, 0 blt _0809F2E4 ldrb r0, [r4, 0xA] cmp r1, r0 ble _0809F2F0 _0809F2E4: movs r0, 0x1 negs r0, r0 b _0809F308 .align 2, 0 _0809F2EC: .4byte 0x02018000 _0809F2F0: movs r0, 0x64 muls r0, r1 adds r0, r7, r0 movs r1, 0x2D bl GetMonData cmp r0, 0 bne _0809F2C6 ldrb r0, [r4, 0x9] adds r0, r6 _0809F304: lsls r0, 24 asrs r0, 24 _0809F308: pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_809F284 thumb_func_start sub_809F310 sub_809F310: @ 809F310 push {r4,lr} adds r4, r0, 0 movs r1, 0xB bl GetMonData cmp r0, 0 beq _0809F33C ldr r0, _0809F338 @ =0x02018000 ldrb r0, [r0, 0xB] cmp r0, 0 bne _0809F332 adds r0, r4, 0 movs r1, 0x2D bl GetMonData cmp r0, 0 bne _0809F33C _0809F332: movs r0, 0x1 b _0809F33E .align 2, 0 _0809F338: .4byte 0x02018000 _0809F33C: movs r0, 0 _0809F33E: pop {r4} pop {r1} bx r1 thumb_func_end sub_809F310 thumb_func_start sub_809F344 sub_809F344: @ 809F344 push {r4,r5,lr} lsls r0, 24 lsrs r4, r0, 24 _0809F34A: adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x6 beq _0809F37C ldr r0, _0809F374 @ =gUnknown_083C15A8 adds r5, r4, r0 ldrb r1, [r5] movs r0, 0x64 muls r0, r1 ldr r1, _0809F378 @ =gPlayerParty adds r0, r1 bl sub_809F310 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _0809F34A movs r0, 0 ldrsb r0, [r5, r0] b _0809F380 .align 2, 0 _0809F374: .4byte gUnknown_083C15A8 _0809F378: .4byte gPlayerParty _0809F37C: movs r0, 0x1 negs r0, r0 _0809F380: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_809F344 thumb_func_start sub_809F388 sub_809F388: @ 809F388 push {r4,r5,lr} lsls r0, 24 lsrs r4, r0, 24 _0809F38E: cmp r4, 0 beq _0809F3C0 subs r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 ldr r0, _0809F3B8 @ =gUnknown_083C15A8 adds r5, r4, r0 ldrb r1, [r5] movs r0, 0x64 muls r0, r1 ldr r1, _0809F3BC @ =gPlayerParty adds r0, r1 bl sub_809F310 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _0809F38E movs r0, 0 ldrsb r0, [r5, r0] b _0809F3C4 .align 2, 0 _0809F3B8: .4byte gUnknown_083C15A8 _0809F3BC: .4byte gPlayerParty _0809F3C0: movs r0, 0x1 negs r0, r0 _0809F3C4: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_809F388 thumb_func_start sub_809F3CC sub_809F3CC: @ 809F3CC push {r4-r6,lr} lsls r0, 24 lsrs r6, r0, 24 movs r2, 0 movs r1, 0 ldr r3, _0809F41C @ =gUnknown_083C15A8 ldr r4, _0809F420 @ =0x02018000 ldrb r0, [r3] ldrb r5, [r4, 0x9] cmp r0, r5 beq _0809F3FC adds r5, r3, 0 adds r3, r4, 0 _0809F3E6: adds r0, r1, 0x1 lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0x5 bhi _0809F3FC adds r0, r1, r5 ldrb r0, [r0] ldrb r4, [r3, 0x9] cmp r0, r4 bne _0809F3E6 adds r2, r1, 0 _0809F3FC: lsls r0, r6, 24 asrs r1, r0, 24 movs r0, 0x1 negs r0, r0 cmp r1, r0 bne _0809F40C cmp r2, 0 beq _0809F414 _0809F40C: cmp r1, 0x1 bne _0809F424 cmp r2, 0x5 bne _0809F42C _0809F414: movs r0, 0x1 negs r0, r0 b _0809F436 .align 2, 0 _0809F41C: .4byte gUnknown_083C15A8 _0809F420: .4byte 0x02018000 _0809F424: adds r0, r2, 0 bl sub_809F388 b _0809F432 _0809F42C: adds r0, r2, 0 bl sub_809F344 _0809F432: lsls r0, 24 asrs r0, 24 _0809F436: pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_809F3CC thumb_func_start sub_809F43C sub_809F43C: @ 809F43C push {r4,r5,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, _0809F45C @ =gMain ldr r1, _0809F460 @ =0x0000043c adds r5, r0, r1 ldrb r2, [r5] adds r3, r0, 0 cmp r2, 0x8 bls _0809F452 b _0809F5CC _0809F452: lsls r0, r2, 2 ldr r1, _0809F464 @ =_0809F468 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0809F45C: .4byte gMain _0809F460: .4byte 0x0000043c _0809F464: .4byte _0809F468 .align 2, 0 _0809F468: .4byte _0809F48C .4byte _0809F492 .4byte _0809F4BC .4byte _0809F4D8 .4byte _0809F4F4 .4byte _0809F51C .4byte _0809F578 .4byte _0809F584 .4byte _0809F5A0 _0809F48C: bl StopCryAndClearCrySongs b _0809F5B2 _0809F492: ldr r0, _0809F4AC @ =0x02018000 ldrb r1, [r0, 0xC] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _0809F4B0 @ =gSprites adds r0, r1 bl DestroySpriteAndFreeResources ldr r1, _0809F4B4 @ =gMain ldr r0, _0809F4B8 @ =0x0000043c adds r1, r0 b _0809F5B8 .align 2, 0 _0809F4AC: .4byte 0x02018000 _0809F4B0: .4byte gSprites _0809F4B4: .4byte gMain _0809F4B8: .4byte 0x0000043c _0809F4BC: ldr r0, _0809F4D0 @ =0x02018000 ldrb r1, [r0, 0xD] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _0809F4D4 @ =gSprites adds r0, r1 bl DestroySpriteAndFreeResources b _0809F5B2 .align 2, 0 _0809F4D0: .4byte 0x02018000 _0809F4D4: .4byte gSprites _0809F4D8: ldr r0, _0809F4EC @ =0x02018000 adds r1, r0, 0 adds r1, 0x74 movs r2, 0 strb r2, [r1] adds r0, 0x79 strb r2, [r0] ldr r0, _0809F4F0 @ =0x0000043c adds r1, r3, r0 b _0809F5B8 .align 2, 0 _0809F4EC: .4byte 0x02018000 _0809F4F0: .4byte 0x0000043c _0809F4F4: ldr r4, _0809F518 @ =0x02018010 adds r0, r4, 0 bl sub_809F678 adds r0, r4, 0 bl GetMonStatusAndPokerus lsls r0, 24 cmp r0, 0 beq _0809F50E movs r0, 0x2 bl sub_80A12D0 _0809F50E: adds r0, r4, 0 bl sub_80A0EA4 b _0809F5B2 .align 2, 0 _0809F518: .4byte 0x02018010 _0809F51C: ldr r4, _0809F558 @ =0x02018010 adds r5, r4, 0 adds r5, 0x64 adds r0, r4, 0 adds r1, r5, 0 bl sub_809F6B4 adds r1, r4, 0 subs r1, 0x10 strb r0, [r1, 0xC] lsls r0, 24 lsrs r0, 24 cmp r0, 0xFF beq _0809F5EA movs r0, 0 strb r0, [r5] adds r0, r4, 0 movs r1, 0x2D bl GetMonData adds r1, r0, 0 cmp r1, 0 beq _0809F560 ldr r1, _0809F55C @ =gUnknown_030041B0 movs r2, 0x80 lsls r2, 1 adds r0, r2, 0 strh r0, [r1] b _0809F564 .align 2, 0 _0809F558: .4byte 0x02018010 _0809F55C: .4byte gUnknown_030041B0 _0809F560: ldr r0, _0809F56C @ =gUnknown_030041B0 strh r1, [r0] _0809F564: ldr r1, _0809F570 @ =gMain ldr r0, _0809F574 @ =0x0000043c adds r1, r0 b _0809F5B8 .align 2, 0 _0809F56C: .4byte gUnknown_030041B0 _0809F570: .4byte gMain _0809F574: .4byte 0x0000043c _0809F578: ldr r0, _0809F580 @ =0x02018010 bl sub_80A1DCC b _0809F5B2 .align 2, 0 _0809F580: .4byte 0x02018010 _0809F584: ldr r0, _0809F594 @ =0x02018010 bl sub_80A1DE8 ldr r1, _0809F598 @ =gMain ldr r0, _0809F59C @ =0x0000043c adds r1, r0 b _0809F5B8 .align 2, 0 _0809F594: .4byte 0x02018010 _0809F598: .4byte gMain _0809F59C: .4byte 0x0000043c _0809F5A0: bl sub_809F5F8 lsls r0, 24 cmp r0, 0 beq _0809F5EA ldr r0, _0809F5C0 @ =0x02018000 adds r0, 0x74 movs r1, 0 strb r1, [r0] _0809F5B2: ldr r1, _0809F5C4 @ =gMain ldr r2, _0809F5C8 @ =0x0000043c adds r1, r2 _0809F5B8: ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] b _0809F5EA .align 2, 0 _0809F5C0: .4byte 0x02018000 _0809F5C4: .4byte gMain _0809F5C8: .4byte 0x0000043c _0809F5CC: bl sub_8055870 cmp r0, 0x1 beq _0809F5EA movs r0, 0 strb r0, [r5] ldr r0, _0809F5F0 @ =gTasks lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 ldr r0, _0809F5F4 @ =0x02018000 adds r0, 0x84 ldr r0, [r0] str r0, [r1] _0809F5EA: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0809F5F0: .4byte gTasks _0809F5F4: .4byte 0x02018000 thumb_func_end sub_809F43C thumb_func_start sub_809F5F8 sub_809F5F8: @ 809F5F8 push {r4,lr} ldr r2, _0809F61C @ =0x02018000 adds r4, r2, 0 adds r4, 0x74 ldrb r0, [r4] cmp r0, 0 beq _0809F624 ldr r0, _0809F620 @ =gUnknown_083C1588 ldrb r1, [r2, 0xB] lsls r1, 2 adds r1, r0 adds r0, r2, 0 adds r0, 0x10 ldr r1, [r1] bl _call_via_r1 movs r0, 0x1 b _0809F634 .align 2, 0 _0809F61C: .4byte 0x02018000 _0809F620: .4byte gUnknown_083C1588 _0809F624: adds r0, r2, 0 adds r0, 0x10 bl sub_809FAC8 ldrb r0, [r4] adds r0, 0x1 strb r0, [r4] movs r0, 0 _0809F634: pop {r4} pop {r1} bx r1 thumb_func_end sub_809F5F8 thumb_func_start sub_809F63C sub_809F63C: @ 809F63C push {r4,lr} adds r4, r0, 0 bl sub_809FE80 adds r0, r4, 0 bl sub_809FC34 pop {r4} pop {r0} bx r0 thumb_func_end sub_809F63C thumb_func_start sub_809F650 sub_809F650: @ 809F650 push {r4,lr} adds r4, r0, 0 bl sub_80A00A4 adds r0, r4, 0 bl sub_809FF64 pop {r4} pop {r0} bx r0 thumb_func_end sub_809F650 thumb_func_start sub_809F664 sub_809F664: @ 809F664 push {r4,lr} adds r4, r0, 0 bl sub_80A0390 adds r0, r4, 0 bl sub_80A015C pop {r4} pop {r0} bx r0 thumb_func_end sub_809F664 thumb_func_start sub_809F678 sub_809F678: @ 809F678 push {lr} adds r3, r0, 0 ldr r1, _0809F698 @ =0x02018000 ldrb r0, [r1, 0xE] cmp r0, 0 bne _0809F69C ldr r2, [r1] ldrb r1, [r1, 0x9] movs r0, 0x64 muls r1, r0 adds r1, r2 adds r0, r3, 0 movs r2, 0x64 bl memcpy b _0809F6AE .align 2, 0 _0809F698: .4byte 0x02018000 _0809F69C: ldr r0, [r1] ldrb r2, [r1, 0x9] lsls r1, r2, 2 adds r1, r2 lsls r1, 4 adds r0, r1 adds r1, r3, 0 bl sub_803B4B4 _0809F6AE: pop {r0} bx r0 thumb_func_end sub_809F678 thumb_func_start sub_809F6B4 sub_809F6B4: @ 809F6B4 push {r4-r7,lr} sub sp, 0xC adds r4, r0, 0 adds r7, r1, 0 ldrb r0, [r7] cmp r0, 0 beq _0809F6D2 cmp r0, 0x1 beq _0809F718 adds r0, r4, 0 bl sub_80A1808 lsls r0, 24 lsrs r0, 24 b _0809F756 _0809F6D2: adds r0, r4, 0 movs r1, 0x41 bl GetMonData lsls r0, 16 lsrs r5, r0, 16 adds r0, r4, 0 movs r1, 0 bl GetMonData adds r6, r0, 0 lsls r0, r5, 3 ldr r1, _0809F70C @ =gMonFrontPicTable adds r0, r1 ldr r1, _0809F710 @ =gMonFrontPicCoords lsls r2, r5, 2 adds r2, r1 ldrb r1, [r2] ldrb r2, [r2, 0x1] movs r3, 0x80 lsls r3, 18 ldr r4, _0809F714 @ =gUnknown_081FAF4C ldr r4, [r4, 0x4] str r4, [sp] str r5, [sp, 0x4] str r6, [sp, 0x8] bl HandleLoadSpecialPokePic b _0809F74E .align 2, 0 _0809F70C: .4byte gMonFrontPicTable _0809F710: .4byte gMonFrontPicCoords _0809F714: .4byte gUnknown_081FAF4C _0809F718: adds r0, r4, 0 movs r1, 0x41 bl GetMonData lsls r0, 16 lsrs r5, r0, 16 adds r0, r4, 0 movs r1, 0 bl GetMonData adds r6, r0, 0 adds r0, r4, 0 movs r1, 0x1 bl GetMonData adds r1, r0, 0 adds r0, r5, 0 adds r2, r6, 0 bl sub_80409C8 adds r4, r0, 0 bl LoadCompressedObjectPalette ldrh r0, [r4, 0x4] movs r1, 0x1 bl GetMonSpriteTemplate_803C56C _0809F74E: ldrb r0, [r7] adds r0, 0x1 strb r0, [r7] movs r0, 0xFF _0809F756: add sp, 0xC pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_809F6B4 thumb_func_start sub_809F760 sub_809F760: @ 809F760 push {lr} lsls r1, 24 lsrs r1, 24 adds r2, r1, 0 cmp r1, 0x1 beq _0809F780 cmp r1, 0x1 bgt _0809F776 cmp r1, 0 beq _0809F77C b _0809F788 _0809F776: cmp r2, 0x2 beq _0809F784 b _0809F788 _0809F77C: movs r1, 0xD b _0809F78A _0809F780: movs r1, 0xE b _0809F78A _0809F784: movs r1, 0xF b _0809F78A _0809F788: movs r1, 0x10 _0809F78A: bl GetMonData lsls r0, 16 lsrs r0, 16 pop {r1} bx r1 thumb_func_end sub_809F760 thumb_func_start sub_809F798 sub_809F798: @ 809F798 push {lr} lsls r1, 24 lsrs r1, 24 adds r2, r1, 0 cmp r1, 0x1 beq _0809F7B8 cmp r1, 0x1 bgt _0809F7AE cmp r1, 0 beq _0809F7B4 b _0809F7C0 _0809F7AE: cmp r2, 0x2 beq _0809F7BC b _0809F7C0 _0809F7B4: movs r1, 0x11 b _0809F7C2 _0809F7B8: movs r1, 0x12 b _0809F7C2 _0809F7BC: movs r1, 0x13 b _0809F7C2 _0809F7C0: movs r1, 0x14 _0809F7C2: bl GetMonData lsls r0, 16 lsrs r0, 16 pop {r1} bx r1 thumb_func_end sub_809F798 thumb_func_start sub_809F7D0 sub_809F7D0: @ 809F7D0 push {r4,lr} sub sp, 0x64 mov r0, sp bl sub_809F678 ldr r4, _0809F804 @ =0x02018000 adds r0, r4, 0 adds r0, 0x79 ldrb r1, [r0] mov r0, sp bl sub_809F760 lsls r0, 16 lsrs r0, 16 bl IsHMMove lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _0809F808 ldrb r0, [r4, 0x8] cmp r0, 0x3 beq _0809F808 movs r0, 0 b _0809F80A .align 2, 0 _0809F804: .4byte 0x02018000 _0809F808: movs r0, 0x1 _0809F80A: add sp, 0x64 pop {r4} pop {r1} bx r1 thumb_func_end sub_809F7D0 thumb_func_start sub_809F814 sub_809F814: @ 809F814 push {r4-r7,lr} mov r7, r8 push {r7} lsls r0, 24 lsrs r5, r0, 24 lsls r0, r5, 2 adds r0, r5 lsls r6, r0, 3 ldr r0, _0809F83C @ =gTasks + 0x8 mov r8, r0 adds r4, r6, r0 ldrh r1, [r4, 0x1C] movs r2, 0x1C ldrsh r0, [r4, r2] cmp r0, 0x3 bgt _0809F840 adds r0, r1, 0x1 strh r0, [r4, 0x1C] b _0809F9C0 .align 2, 0 _0809F83C: .4byte gTasks + 0x8 _0809F840: ldr r7, _0809F874 @ =gMain ldrh r1, [r7, 0x2E] movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _0809F880 mov r0, r8 subs r0, 0x8 adds r0, r6, r0 ldr r1, _0809F878 @ =sub_809E260 str r1, [r0] movs r0, 0x4 strh r0, [r4] movs r0, 0x1 strh r0, [r4, 0x1A] ldr r2, _0809F87C @ =0x02018000 ldrh r0, [r4, 0x1E] adds r2, 0x79 strb r0, [r2] movs r1, 0x1 negs r1, r1 adds r0, r5, 0 bl sub_809E8F0 b _0809F9C0 .align 2, 0 _0809F874: .4byte gMain _0809F878: .4byte sub_809E260 _0809F87C: .4byte 0x02018000 _0809F880: movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _0809F8B4 mov r0, r8 subs r0, 0x8 adds r0, r6, r0 ldr r1, _0809F8AC @ =sub_809E260 str r1, [r0] movs r0, 0x4 strh r0, [r4] movs r0, 0x1 strh r0, [r4, 0x1A] ldr r2, _0809F8B0 @ =0x02018000 ldrh r0, [r4, 0x1E] adds r2, 0x79 strb r0, [r2] adds r0, r5, 0 movs r1, 0x1 bl sub_809E8F0 b _0809F9C0 .align 2, 0 _0809F8AC: .4byte sub_809E260 _0809F8B0: .4byte 0x02018000 _0809F8B4: movs r0, 0x20 ands r0, r1 cmp r0, 0 bne _0809F8C8 bl sub_80F9284 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _0809F918 _0809F8C8: ldr r1, _0809F90C @ =0x02018000 ldrb r0, [r1, 0xB] cmp r0, 0x2 beq _0809F9C0 cmp r0, 0x3 bne _0809F8F4 adds r0, r1, 0 adds r0, 0x79 ldrb r0, [r0] cmp r0, 0x4 bne _0809F8E8 adds r0, r1, 0 adds r0, 0x7C ldrh r0, [r0] cmp r0, 0 beq _0809F8F4 _0809F8E8: movs r0, 0 movs r1, 0xE movs r2, 0x9 movs r3, 0x12 bl MenuZeroFillWindowRect _0809F8F4: ldr r1, _0809F910 @ =gTasks lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r1 ldr r1, _0809F914 @ =sub_809E260 str r1, [r0] movs r1, 0x1 negs r1, r1 adds r0, r5, 0 b _0809F972 .align 2, 0 _0809F90C: .4byte 0x02018000 _0809F910: .4byte gTasks _0809F914: .4byte sub_809E260 _0809F918: ldrh r1, [r7, 0x2E] movs r0, 0x10 ands r0, r1 cmp r0, 0 bne _0809F92E bl sub_80F9284 lsls r0, 24 lsrs r0, 24 cmp r0, 0x2 bne _0809F994 _0809F92E: ldr r1, _0809F988 @ =0x02018000 adds r2, r1, 0 adds r2, 0x76 ldrb r0, [r1, 0xB] ldrb r2, [r2] cmp r0, r2 beq _0809F9C0 cmp r0, 0x2 bne _0809F960 adds r0, r1, 0 adds r0, 0x79 ldrb r0, [r0] cmp r0, 0x4 bne _0809F954 adds r0, r1, 0 adds r0, 0x7C ldrh r0, [r0] cmp r0, 0 beq _0809F960 _0809F954: movs r0, 0 movs r1, 0xE movs r2, 0x9 movs r3, 0x12 bl MenuZeroFillWindowRect _0809F960: ldr r1, _0809F98C @ =gTasks lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r1 ldr r1, _0809F990 @ =sub_809E260 str r1, [r0] adds r0, r5, 0 movs r1, 0x1 _0809F972: bl SummaryScreenHandleLeftRightInput ldrb r1, [r4, 0x1E] movs r0, 0x1 bl sub_80A1488 ldrb r1, [r4, 0x1E] movs r0, 0x1 bl sub_80A1654 b _0809F9C0 .align 2, 0 _0809F988: .4byte 0x02018000 _0809F98C: .4byte gTasks _0809F990: .4byte sub_809E260 _0809F994: ldrh r1, [r7, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _0809F9A6 movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _0809F9C0 _0809F9A6: ldrb r1, [r4, 0x1E] movs r0, 0x2 bl sub_80A1488 ldrb r1, [r4, 0x1E] movs r0, 0x2 bl sub_80A1654 mov r0, r8 subs r0, 0x8 adds r0, r6, r0 ldr r1, _0809F9CC @ =sub_809E260 str r1, [r0] _0809F9C0: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0809F9CC: .4byte sub_809E260 thumb_func_end sub_809F814 thumb_func_start sub_809F9D0 sub_809F9D0: @ 809F9D0 push {r4-r6,lr} lsls r0, 24 lsrs r0, 24 lsls r1, 24 lsrs r1, 24 lsls r4, r0, 2 adds r4, r0 lsls r4, 3 ldr r6, _0809FA24 @ =gTasks + 0x8 adds r2, r4, r6 movs r0, 0 strh r0, [r2, 0x1C] strh r1, [r2, 0x1E] movs r5, 0x2 negs r5, r5 adds r0, r5, 0 movs r1, 0x4 bl sub_80A1488 adds r0, r5, 0 movs r1, 0x4 bl sub_80A1654 movs r0, 0xB movs r1, 0xF movs r2, 0x1C movs r3, 0x12 bl MenuZeroFillWindowRect ldr r0, _0809FA28 @ =gOtherText_CantForgetHMs movs r1, 0xB movs r2, 0xF bl MenuPrint subs r6, 0x8 adds r4, r6 ldr r0, _0809FA2C @ =sub_809F814 str r0, [r4] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0809FA24: .4byte gTasks + 0x8 _0809FA28: .4byte gOtherText_CantForgetHMs _0809FA2C: .4byte sub_809F814 thumb_func_end sub_809F9D0 thumb_func_start sub_809FA30 sub_809FA30: @ 809FA30 ldr r0, _0809FA38 @ =0x02018000 adds r0, 0x7A ldrb r0, [r0] bx lr .align 2, 0 _0809FA38: .4byte 0x02018000 thumb_func_end sub_809FA30 thumb_func_start GetStringCenterAlignXOffsetWithLetterSpacing GetStringCenterAlignXOffsetWithLetterSpacing: @ 809FA3C push {r4,lr} lsls r0, 24 lsls r1, 24 lsls r2, 24 lsls r3, 24 lsrs r2, 23 lsrs r3, 18 ldr r4, _0809FA70 @ =0x0600f000 adds r3, r4 adds r2, r3 lsrs r1, 12 lsrs r0, 23 movs r4, 0x80 lsls r4, 2 adds r3, r4, 0 adds r0, r3 adds r1, r0 adds r0, r1, 0 adds r0, 0x80 strh r0, [r2] adds r2, 0x40 adds r1, 0x81 strh r1, [r2] pop {r4} pop {r0} bx r0 .align 2, 0 _0809FA70: .4byte 0x0600f000 thumb_func_end GetStringCenterAlignXOffsetWithLetterSpacing thumb_func_start GetStringCenterAlignXOffset GetStringCenterAlignXOffset: @ 809FA74 push {r4,lr} adds r4, r1, 0 adds r3, r2, 0 lsls r0, 24 lsrs r0, 24 lsls r4, 24 lsrs r4, 24 lsls r3, 24 lsrs r3, 24 movs r1, 0xF adds r2, r4, 0 bl GetStringCenterAlignXOffsetWithLetterSpacing pop {r4} pop {r0} bx r0 thumb_func_end GetStringCenterAlignXOffset thumb_func_start sub_809FA94 sub_809FA94: @ 809FA94 push {lr} bl IsShiny lsls r0, 24 cmp r0, 0 beq _0809FAB4 ldr r0, _0809FAB0 @ =gUnknown_083C157E movs r1, 0x4 movs r2, 0x2 bl LoadPalette movs r0, 0x1 b _0809FAC0 .align 2, 0 _0809FAB0: .4byte gUnknown_083C157E _0809FAB4: ldr r0, _0809FAC4 @ =gUnknown_083C157C movs r1, 0x4 movs r2, 0x2 bl LoadPalette movs r0, 0 _0809FAC0: pop {r1} bx r1 .align 2, 0 _0809FAC4: .4byte gUnknown_083C157C thumb_func_end sub_809FA94 thumb_func_start sub_809FAC8 sub_809FAC8: @ 809FAC8 push {r4-r6,lr} sub sp, 0xC adds r5, r0, 0 movs r1, 0x2D bl GetMonData cmp r0, 0 beq _0809FB28 movs r0, 0x1 movs r1, 0x2 movs r2, 0x4 movs r3, 0x3 bl MenuZeroFillWindowRect movs r0, 0x3 movs r1, 0x10 movs r2, 0x9 movs r3, 0x11 bl MenuZeroFillWindowRect movs r0, 0 movs r1, 0xC movs r2, 0xB movs r3, 0xF bl MenuZeroFillWindowRect ldr r4, _0809FB20 @ =gStringVar1 adds r0, r5, 0 adds r1, r4, 0 bl GetMonNickname adds r0, r4, 0 movs r1, 0xD movs r2, 0x3 movs r3, 0x10 bl sub_80A1FF8 ldr r0, _0809FB24 @ =gUnknown_083C157C movs r1, 0x4 movs r2, 0x2 bl LoadPalette b _0809FBD6 .align 2, 0 _0809FB20: .4byte gStringVar1 _0809FB24: .4byte gUnknown_083C157C _0809FB28: adds r0, r5, 0 bl sub_809FA94 lsls r0, 24 lsrs r6, r0, 24 adds r0, r5, 0 movs r1, 0xB bl GetMonData lsls r0, 16 lsrs r0, 16 bl SpeciesToPokedexNum lsls r0, 16 lsrs r4, r0, 16 ldr r0, _0809FB6C @ =0x0000ffff cmp r4, r0 beq _0809FB96 cmp r6, 0 bne _0809FB70 movs r0, 0x2 movs r1, 0x1 movs r2, 0x2 bl GetStringCenterAlignXOffset movs r0, 0x11 str r0, [sp] movs r0, 0x10 str r0, [sp, 0x4] movs r0, 0x1 str r0, [sp, 0x8] adds r0, r4, 0 movs r1, 0xD b _0809FB8C .align 2, 0 _0809FB6C: .4byte 0x0000ffff _0809FB70: movs r0, 0x2 movs r1, 0x8 movs r2, 0x1 movs r3, 0x2 bl GetStringCenterAlignXOffsetWithLetterSpacing movs r0, 0x11 str r0, [sp] movs r0, 0x10 str r0, [sp, 0x4] movs r0, 0x1 str r0, [sp, 0x8] adds r0, r4, 0 movs r1, 0x8 _0809FB8C: movs r2, 0x3 movs r3, 0x2 bl sub_80A1F98 b _0809FBA2 _0809FB96: movs r0, 0x1 movs r1, 0x2 movs r2, 0x4 movs r3, 0x3 bl MenuZeroFillWindowRect _0809FBA2: ldr r1, _0809FBE0 @ =gStringVar1 adds r0, r1, 0 movs r1, 0xD bl sub_80A1E58 adds r1, r0, 0 adds r0, r5, 0 bl GetMonNickname adds r1, r0, 0 movs r0, 0xFC strb r0, [r1] movs r0, 0x13 strb r0, [r1, 0x1] movs r0, 0x3C strb r0, [r1, 0x2] movs r0, 0xFF strb r0, [r1, 0x3] ldr r0, _0809FBE0 @ =gStringVar1 movs r1, 0x1 movs r2, 0xC bl MenuPrint adds r0, r5, 0 bl sub_80A0958 _0809FBD6: add sp, 0xC pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0809FBE0: .4byte gStringVar1 thumb_func_end sub_809FAC8 thumb_func_start sub_809FBE4 sub_809FBE4: @ 809FBE4 push {r4,lr} movs r4, 0 _0809FBE8: adds r0, r4, 0 movs r1, 0x1 bl sub_80A1918 adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x1B bls _0809FBE8 movs r0, 0xB movs r1, 0x4 movs r2, 0x1D movs r3, 0x12 bl MenuZeroFillWindowRect pop {r4} pop {r0} bx r0 thumb_func_end sub_809FBE4 thumb_func_start sub_809FC0C sub_809FC0C: @ 809FC0C push {lr} ldr r0, _0809FC30 @ =gOtherText_Type2 movs r1, 0xB movs r2, 0x6 bl MenuPrint movs r0, 0 movs r1, 0x16 movs r2, 0x4 bl GetStringCenterAlignXOffset movs r0, 0x2 movs r1, 0x17 movs r2, 0x4 bl GetStringCenterAlignXOffset pop {r0} bx r0 .align 2, 0 _0809FC30: .4byte gOtherText_Type2 thumb_func_end sub_809FC0C thumb_func_start sub_809FC34 sub_809FC34: @ 809FC34 push {r4-r6,lr} sub sp, 0xC adds r6, r0, 0 movs r4, 0 _0809FC3C: adds r0, r4, 0 movs r1, 0x1 bl sub_80A1918 adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x4 bls _0809FC3C movs r0, 0xB movs r1, 0x9 movs r2, 0x1C movs r3, 0xC bl MenuZeroFillWindowRect adds r0, r6, 0 movs r1, 0x2D bl GetMonData cmp r0, 0 beq _0809FD1C ldr r5, _0809FCD0 @ =gStringVar1 adds r0, r5, 0 movs r1, 0xD bl sub_80A1E58 adds r5, r0, 0 ldr r1, _0809FCD4 @ =gOtherText_OriginalTrainer bl StringCopy adds r5, r0, 0 ldr r4, _0809FCD8 @ =gOtherText_FiveQuestionsAndSlash adds r1, r4, 0 bl StringCopy adds r5, r0, 0 movs r0, 0xFC strb r0, [r5] movs r0, 0x13 strb r0, [r5, 0x1] movs r0, 0x4E strb r0, [r5, 0x2] movs r0, 0xFF strb r0, [r5, 0x3] ldr r0, _0809FCD0 @ =gStringVar1 movs r1, 0xB movs r2, 0x4 bl MenuPrint movs r0, 0x1 str r0, [sp] adds r0, r4, 0 movs r1, 0xD movs r2, 0xC1 movs r3, 0x20 bl sub_80A1EF8 movs r0, 0x9 movs r1, 0x78 movs r2, 0x30 movs r3, 0 bl sub_80A198C adds r0, r6, 0 movs r1, 0x20 bl GetMonData lsls r0, 16 lsrs r0, 16 adds r1, r0, 0 cmp r0, 0x5 bhi _0809FCE0 ldr r0, _0809FCDC @ =gOtherText_EggAbout b _0809FCF2 .align 2, 0 _0809FCD0: .4byte gStringVar1 _0809FCD4: .4byte gOtherText_OriginalTrainer _0809FCD8: .4byte gOtherText_FiveQuestionsAndSlash _0809FCDC: .4byte gOtherText_EggAbout _0809FCE0: cmp r0, 0xA bhi _0809FCEC ldr r0, _0809FCE8 @ =gOtherText_EggSoon b _0809FCF2 .align 2, 0 _0809FCE8: .4byte gOtherText_EggSoon _0809FCEC: cmp r1, 0x28 bhi _0809FD00 ldr r0, _0809FCFC @ =gOtherText_EggSomeTime _0809FCF2: movs r1, 0xB movs r2, 0x9 bl MenuPrint b _0809FD0A .align 2, 0 _0809FCFC: .4byte gOtherText_EggSomeTime _0809FD00: ldr r0, _0809FD18 @ =gOtherText_EggLongTime movs r1, 0xB movs r2, 0x9 bl MenuPrint _0809FD0A: adds r0, r6, 0 movs r1, 0xB movs r2, 0xE bl PokemonSummaryScreen_PrintEggTrainerMemo b _0809FE4C .align 2, 0 _0809FD18: .4byte gOtherText_EggLongTime _0809FD1C: ldr r4, _0809FD64 @ =gStringVar2 adds r0, r6, 0 movs r1, 0x7 adds r2, r4, 0 bl GetMonData adds r0, r6, 0 movs r1, 0x3 bl GetMonData adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 bl ConvertInternationalString ldr r5, _0809FD68 @ =gStringVar1 adds r0, r5, 0 movs r1, 0xD bl sub_80A1E58 adds r5, r0, 0 ldr r1, _0809FD6C @ =gOtherText_OriginalTrainer bl StringCopy adds r5, r0, 0 adds r0, r6, 0 movs r1, 0x31 bl GetMonData cmp r0, 0 bne _0809FD70 adds r0, r5, 0 movs r1, 0x9 b _0809FD74 .align 2, 0 _0809FD64: .4byte gStringVar2 _0809FD68: .4byte gStringVar1 _0809FD6C: .4byte gOtherText_OriginalTrainer _0809FD70: adds r0, r5, 0 movs r1, 0xA _0809FD74: bl sub_80A1E58 adds r5, r0, 0 ldr r1, _0809FE54 @ =gStringVar2 adds r0, r5, 0 bl StringCopy adds r5, r0, 0 movs r0, 0xFC strb r0, [r5] movs r0, 0x13 strb r0, [r5, 0x1] movs r0, 0x4E strb r0, [r5, 0x2] movs r0, 0xFF strb r0, [r5, 0x3] ldr r0, _0809FE58 @ =gStringVar1 movs r1, 0xB movs r2, 0x4 bl MenuPrint adds r0, r6, 0 movs r1, 0x1 bl GetMonData ldr r1, _0809FE5C @ =0x0000ffff ands r1, r0 movs r0, 0xC1 str r0, [sp] movs r0, 0x20 str r0, [sp, 0x4] movs r0, 0x1 str r0, [sp, 0x8] adds r0, r1, 0 movs r1, 0xD movs r2, 0x5 movs r3, 0x2 bl sub_80A1F98 adds r0, r6, 0 movs r1, 0xB bl GetMonData lsls r0, 16 lsrs r0, 16 ldr r2, _0809FE60 @ =gBaseStats lsls r1, r0, 3 subs r1, r0 lsls r1, 2 adds r5, r1, r2 ldrb r4, [r5, 0x6] adds r0, r4, 0 movs r1, 0x78 movs r2, 0x30 movs r3, 0 bl sub_80A198C ldrb r0, [r5, 0x7] cmp r4, r0 beq _0809FDF8 ldrb r0, [r5, 0x7] movs r1, 0xA0 movs r2, 0x30 movs r3, 0x1 bl sub_80A198C _0809FDF8: adds r0, r6, 0 movs r1, 0xB bl GetMonData adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 adds r0, r6, 0 movs r1, 0x2E bl GetMonData adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 bl GetAbilityBySpecies adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 movs r0, 0xD muls r0, r4 ldr r1, _0809FE64 @ =gAbilityNames adds r0, r1 movs r1, 0xD movs r2, 0xB movs r3, 0x9 bl sub_80A1FF8 ldr r0, _0809FE68 @ =gAbilityDescriptions lsls r4, 2 adds r4, r0 ldr r0, [r4] movs r1, 0xB movs r2, 0xB bl MenuPrint adds r0, r6, 0 movs r1, 0xB movs r2, 0xE bl PokemonSummaryScreen_PrintTrainerMemo _0809FE4C: add sp, 0xC pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0809FE54: .4byte gStringVar2 _0809FE58: .4byte gStringVar1 _0809FE5C: .4byte 0x0000ffff _0809FE60: .4byte gBaseStats _0809FE64: .4byte gAbilityNames _0809FE68: .4byte gAbilityDescriptions thumb_func_end sub_809FC34 thumb_func_start sub_809FE6C sub_809FE6C: @ 809FE6C push {r4,lr} adds r4, r0, 0 bl sub_809FC0C adds r0, r4, 0 bl sub_809FC34 pop {r4} pop {r0} bx r0 thumb_func_end sub_809FE6C thumb_func_start sub_809FE80 sub_809FE80: @ 809FE80 push {lr} movs r0, 0xE movs r1, 0x4 movs r2, 0x12 movs r3, 0x5 bl MenuZeroFillWindowRect movs r0, 0x19 movs r1, 0x4 movs r2, 0x1E movs r3, 0x5 bl MenuZeroFillWindowRect movs r0, 0xB movs r1, 0x9 movs r2, 0x1C movs r3, 0xC bl MenuZeroFillWindowRect movs r0, 0xB movs r1, 0xE movs r2, 0x1C movs r3, 0x11 bl MenuZeroFillWindowRect pop {r0} bx r0 thumb_func_end sub_809FE80 thumb_func_start sub_809FEB8 sub_809FEB8: @ 809FEB8 push {r4,lr} sub sp, 0x4 ldr r0, _0809FF40 @ =gOtherText_ExpPoints movs r1, 0xD movs r2, 0xB movs r3, 0xE bl sub_80A1FF8 ldr r0, _0809FF44 @ =gOtherText_NextLv movs r1, 0xD movs r2, 0xB movs r3, 0x10 bl sub_80A1FF8 ldr r0, _0809FF48 @ =gOtherText_Terminator18 movs r1, 0x15 movs r2, 0x10 bl MenuPrint ldr r0, _0809FF4C @ =gOtherText_HP movs r4, 0x2A str r4, [sp] movs r1, 0xD movs r2, 0xB movs r3, 0x7 bl sub_80A1F48 ldr r0, _0809FF50 @ =gOtherText_Attack str r4, [sp] movs r1, 0xD movs r2, 0xB movs r3, 0x9 bl sub_80A1F48 ldr r0, _0809FF54 @ =gOtherText_Defense str r4, [sp] movs r1, 0xD movs r2, 0xB movs r3, 0xB bl sub_80A1F48 ldr r0, _0809FF58 @ =gOtherText_SpAtk movs r4, 0x24 str r4, [sp] movs r1, 0xD movs r2, 0x16 movs r3, 0x7 bl sub_80A1F48 ldr r0, _0809FF5C @ =gOtherText_SpDef str r4, [sp] movs r1, 0xD movs r2, 0x16 movs r3, 0x9 bl sub_80A1F48 ldr r0, _0809FF60 @ =gOtherText_Speed str r4, [sp] movs r1, 0xD movs r2, 0x16 movs r3, 0xB bl sub_80A1F48 add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _0809FF40: .4byte gOtherText_ExpPoints _0809FF44: .4byte gOtherText_NextLv _0809FF48: .4byte gOtherText_Terminator18 _0809FF4C: .4byte gOtherText_HP _0809FF50: .4byte gOtherText_Attack _0809FF54: .4byte gOtherText_Defense _0809FF58: .4byte gOtherText_SpAtk _0809FF5C: .4byte gOtherText_SpDef _0809FF60: .4byte gOtherText_Speed thumb_func_end sub_809FEB8 thumb_func_start sub_809FF64 sub_809FF64: @ 809FF64 push {r4,r5,lr} adds r5, r0, 0 movs r4, 0 _0809FF6A: adds r0, r4, 0 movs r1, 0x1 bl sub_80A1918 adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x4 bls _0809FF6A adds r0, r5, 0 movs r1, 0xC bl GetMonData lsls r0, 16 lsrs r0, 16 movs r1, 0xB movs r2, 0x4 bl sub_80A0BF4 adds r0, r5, 0 bl sub_80A0B88 ldr r4, _080A008C @ =gStringVar1 adds r0, r5, 0 movs r1, 0x19 bl GetMonData adds r1, r0, 0 adds r0, r4, 0 bl ConvertIntToDecimalString adds r0, r4, 0 movs r1, 0x1D movs r2, 0xE bl MenuPrint_RightAligned adds r0, r5, 0 movs r1, 0x17 movs r2, 0x10 bl sub_80A0C80 adds r0, r5, 0 movs r1, 0x3B bl GetMonData adds r1, r0, 0 adds r0, r4, 0 bl ConvertIntToDecimalString adds r0, r4, 0 movs r1, 0x10 movs r2, 0x9 movs r3, 0x32 bl sub_8072BD8 adds r0, r5, 0 movs r1, 0x3C bl GetMonData adds r1, r0, 0 adds r0, r4, 0 bl ConvertIntToDecimalString adds r0, r4, 0 movs r1, 0x10 movs r2, 0xB movs r3, 0x32 bl sub_8072BD8 adds r0, r5, 0 movs r1, 0x3E bl GetMonData adds r1, r0, 0 adds r0, r4, 0 bl ConvertIntToDecimalString adds r0, r4, 0 movs r1, 0x1B movs r2, 0x7 movs r3, 0x12 bl sub_8072BD8 adds r0, r5, 0 movs r1, 0x3F bl GetMonData adds r1, r0, 0 adds r0, r4, 0 bl ConvertIntToDecimalString adds r0, r4, 0 movs r1, 0x1B movs r2, 0x9 movs r3, 0x12 bl sub_8072BD8 adds r0, r5, 0 movs r1, 0x3D bl GetMonData adds r1, r0, 0 adds r0, r4, 0 bl ConvertIntToDecimalString adds r0, r4, 0 movs r1, 0x1B movs r2, 0xB movs r3, 0x12 bl sub_8072BD8 adds r0, r5, 0 movs r1, 0x39 bl GetMonData adds r1, r0, 0 adds r0, r4, 0 movs r2, 0x18 movs r3, 0x1 bl sub_8072C14 adds r4, r0, 0 movs r0, 0xBA strb r0, [r4] adds r4, 0x1 adds r0, r5, 0 movs r1, 0x3A bl GetMonData adds r1, r0, 0 adds r0, r4, 0 movs r2, 0x30 movs r3, 0x1 bl sub_8072C14 ldr r0, _080A008C @ =gStringVar1 movs r1, 0x7E movs r2, 0x38 movs r3, 0x1 bl MenuPrint_PixelCoords pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080A008C: .4byte gStringVar1 thumb_func_end sub_809FF64 thumb_func_start sub_80A0090 sub_80A0090: @ 80A0090 push {r4,lr} adds r4, r0, 0 bl sub_809FEB8 adds r0, r4, 0 bl sub_809FF64 pop {r4} pop {r0} bx r0 thumb_func_end sub_80A0090 thumb_func_start sub_80A00A4 sub_80A00A4: @ 80A00A4 push {lr} movs r0, 0xB movs r1, 0x4 movs r2, 0x13 movs r3, 0x5 bl MenuZeroFillWindowRect movs r0, 0x10 movs r1, 0x7 movs r2, 0x15 movs r3, 0x8 bl MenuZeroFillWindowRect movs r0, 0x11 movs r1, 0x9 movs r2, 0x15 movs r3, 0xC bl MenuZeroFillWindowRect movs r0, 0x1B movs r1, 0x7 movs r2, 0x1D movs r3, 0xC bl MenuZeroFillWindowRect movs r0, 0x16 movs r1, 0xE movs r2, 0x1C movs r3, 0xF bl MenuZeroFillWindowRect movs r0, 0x17 movs r1, 0x10 movs r2, 0x1C movs r3, 0x11 bl MenuZeroFillWindowRect pop {r0} bx r0 thumb_func_end sub_80A00A4 thumb_func_start sub_80A00F4 sub_80A00F4: @ 80A00F4 push {lr} lsls r0, 24 lsrs r1, r0, 24 ldr r2, _080A012C @ =0x02018000 adds r0, r2, 0 adds r0, 0x7C ldrh r0, [r0] cmp r0, 0 bne _080A010A cmp r1, 0x4 beq _080A0150 _080A010A: ldrb r0, [r2, 0xB] cmp r0, 0x2 bne _080A0138 ldr r0, _080A0130 @ =gOtherText_Power2 movs r1, 0xD movs r2, 0x1 movs r3, 0xF bl sub_80A1FF8 ldr r0, _080A0134 @ =gOtherText_Accuracy2 movs r1, 0xD movs r2, 0x1 movs r3, 0x11 bl sub_80A1FF8 b _080A0150 .align 2, 0 _080A012C: .4byte 0x02018000 _080A0130: .4byte gOtherText_Power2 _080A0134: .4byte gOtherText_Accuracy2 _080A0138: ldr r0, _080A0154 @ =gOtherText_Appeal2 movs r1, 0xD movs r2, 0x1 movs r3, 0xF bl sub_80A1FF8 ldr r0, _080A0158 @ =gOtherText_Jam2 movs r1, 0xD movs r2, 0x1 movs r3, 0x11 bl sub_80A1FF8 _080A0150: pop {r0} bx r0 .align 2, 0 _080A0154: .4byte gOtherText_Appeal2 _080A0158: .4byte gOtherText_Jam2 thumb_func_end sub_80A00F4 thumb_func_start sub_80A015C sub_80A015C: @ 80A015C push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} mov r8, r0 movs r7, 0 _080A0168: mov r0, r8 adds r1, r7, 0 bl sub_809F760 lsls r0, 16 lsrs r6, r0, 16 mov r0, r8 adds r1, r7, 0 bl sub_809F798 lsls r0, 16 lsrs r0, 16 mov r9, r0 cmp r6, 0 bne _080A01B8 adds r0, r7, 0 movs r1, 0x1 bl sub_80A1918 lsls r4, r7, 25 movs r0, 0x80 lsls r0, 19 adds r4, r0 lsrs r4, 24 ldr r0, _080A01B0 @ =gOtherText_OneDash movs r1, 0xD movs r2, 0xF adds r3, r4, 0 bl sub_80A1FF8 ldr r0, _080A01B4 @ =gOtherText_TwoDashes movs r1, 0x1A adds r2, r4, 0 bl MenuPrint b _080A0276 .align 2, 0 _080A01B0: .4byte gOtherText_OneDash _080A01B4: .4byte gOtherText_TwoDashes _080A01B8: ldr r0, _080A01E0 @ =0x02018000 ldrb r0, [r0, 0xB] cmp r0, 0x2 bne _080A01E8 ldr r1, _080A01E4 @ =gBattleMoves lsls r0, r6, 1 adds r0, r6 lsls r0, 2 adds r0, r1 ldrb r0, [r0, 0x2] lsls r4, r7, 1 adds r2, r4, 0x4 lsls r2, 27 lsrs r2, 24 movs r1, 0x57 adds r3, r7, 0 bl sub_80A198C b _080A020C .align 2, 0 _080A01E0: .4byte 0x02018000 _080A01E4: .4byte gBattleMoves _080A01E8: ldr r1, _080A0290 @ =gContestMoves lsls r0, r6, 3 adds r0, r1 ldrb r0, [r0, 0x1] lsls r0, 29 lsrs r0, 5 movs r1, 0x90 lsls r1, 21 adds r0, r1 lsrs r0, 24 lsls r4, r7, 1 adds r2, r4, 0x4 lsls r2, 27 lsrs r2, 24 movs r1, 0x57 adds r3, r7, 0 bl sub_80A198C _080A020C: movs r0, 0xD muls r0, r6 ldr r1, _080A0294 @ =gMoveNames adds r0, r1 adds r5, r4, 0x4 lsls r5, 24 lsrs r5, 24 movs r1, 0xD movs r2, 0xF adds r3, r5, 0 bl sub_80A1FF8 movs r0, 0x1 movs r1, 0x18 adds r2, r5, 0 bl GetStringCenterAlignXOffset mov r0, r8 movs r1, 0x15 bl GetMonData adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r6, 0 adds r2, r7, 0 bl CalculatePPWithBonus adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldr r1, _080A0298 @ =gStringVar1 adds r0, r1, 0 mov r1, r9 movs r2, 0xE movs r3, 0x1 bl sub_8072C14 adds r1, r0, 0 movs r0, 0xBA strb r0, [r1] adds r1, 0x1 adds r0, r1, 0 adds r1, r4, 0 movs r2, 0x20 movs r3, 0x1 bl sub_8072C14 ldr r0, _080A0298 @ =gStringVar1 movs r1, 0x19 adds r2, r5, 0 bl MenuPrint _080A0276: adds r0, r7, 0x1 lsls r0, 24 lsrs r7, r0, 24 cmp r7, 0x3 bhi _080A0282 b _080A0168 _080A0282: pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080A0290: .4byte gContestMoves _080A0294: .4byte gMoveNames _080A0298: .4byte gStringVar1 thumb_func_end sub_80A015C thumb_func_start sub_80A029C sub_80A029C: @ 80A029C push {r4,r5,lr} ldr r1, _080A02B8 @ =0x02018000 adds r4, r1, 0 adds r4, 0x7C ldrh r0, [r4] cmp r0, 0 bne _080A02C0 ldr r0, _080A02BC @ =gOtherText_CancelNoTerminator movs r1, 0xD movs r2, 0xF movs r3, 0xC bl sub_80A1FF8 b _080A037E .align 2, 0 _080A02B8: .4byte 0x02018000 _080A02BC: .4byte gOtherText_CancelNoTerminator _080A02C0: ldrh r5, [r4] ldrb r0, [r1, 0xB] cmp r0, 0x2 bne _080A02E4 ldr r1, _080A02E0 @ =gBattleMoves lsls r4, r5, 1 adds r0, r4, r5 lsls r0, 2 adds r0, r1 ldrb r0, [r0, 0x2] movs r1, 0x57 movs r2, 0x60 movs r3, 0x4 bl sub_80A198C b _080A0304 .align 2, 0 _080A02E0: .4byte gBattleMoves _080A02E4: ldr r1, _080A0320 @ =gContestMoves lsls r0, r5, 3 adds r0, r1 ldrb r0, [r0, 0x1] lsls r0, 29 lsrs r0, 5 movs r1, 0x90 lsls r1, 21 adds r0, r1 lsrs r0, 24 movs r1, 0x57 movs r2, 0x60 movs r3, 0x4 bl sub_80A198C lsls r4, r5, 1 _080A0304: ldr r0, _080A0324 @ =0x02018000 ldrb r0, [r0, 0xB] cmp r0, 0x2 bne _080A032C movs r0, 0xD muls r0, r5 ldr r1, _080A0328 @ =gMoveNames adds r0, r1 movs r1, 0xA movs r2, 0xF movs r3, 0xC bl sub_80A1FF8 b _080A033E .align 2, 0 _080A0320: .4byte gContestMoves _080A0324: .4byte 0x02018000 _080A0328: .4byte gMoveNames _080A032C: movs r0, 0xD muls r0, r5 ldr r1, _080A0384 @ =gMoveNames adds r0, r1 movs r1, 0x9 movs r2, 0xF movs r3, 0xC bl sub_80A1FF8 _080A033E: movs r0, 0x1 movs r1, 0x18 movs r2, 0xC bl GetStringCenterAlignXOffset ldr r2, _080A0388 @ =gStringVar1 ldr r1, _080A038C @ =gBattleMoves adds r0, r4, r5 lsls r0, 2 adds r0, r1 ldrb r4, [r0, 0x4] adds r0, r2, 0 adds r1, r4, 0 movs r2, 0xE movs r3, 0x1 bl sub_8072C14 adds r2, r0, 0 movs r0, 0xBA strb r0, [r2] adds r2, 0x1 adds r0, r2, 0 adds r1, r4, 0 movs r2, 0x20 movs r3, 0x1 bl sub_8072C14 ldr r0, _080A0388 @ =gStringVar1 movs r1, 0x19 movs r2, 0xC bl MenuPrint _080A037E: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080A0384: .4byte gMoveNames _080A0388: .4byte gStringVar1 _080A038C: .4byte gBattleMoves thumb_func_end sub_80A029C thumb_func_start sub_80A0390 sub_80A0390: @ 80A0390 push {r4,lr} movs r4, 0 _080A0394: lsls r3, r4, 1 adds r1, r3, 0x4 lsls r1, 24 lsrs r1, 24 adds r3, 0x5 lsls r3, 24 lsrs r3, 24 movs r0, 0xF movs r2, 0x1C bl MenuZeroFillWindowRect adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x3 bls _080A0394 pop {r4} pop {r0} bx r0 thumb_func_end sub_80A0390 thumb_func_start sub_80A03BC sub_80A03BC: @ 80A03BC push {lr} lsls r1, 24 lsrs r1, 24 cmp r1, 0x4 beq _080A03D0 bl sub_809F760 lsls r0, 16 lsrs r1, r0, 16 b _080A03E0 _080A03D0: ldr r0, _080A03E8 @ =0x02018000 adds r2, r0, 0 adds r2, 0x7C ldrh r0, [r2] ldr r1, _080A03EC @ =0x0000ffff cmp r0, 0 beq _080A03E0 adds r1, r0, 0 _080A03E0: adds r0, r1, 0 pop {r1} bx r1 .align 2, 0 _080A03E8: .4byte 0x02018000 _080A03EC: .4byte 0x0000ffff thumb_func_end sub_80A03BC thumb_func_start sub_80A03F0 sub_80A03F0: @ 80A03F0 push {lr} ldrb r1, [r1] bl sub_80A03BC lsls r0, 16 lsrs r1, r0, 16 ldr r0, _080A0414 @ =0x02018000 ldrb r0, [r0, 0xB] cmp r0, 0x2 bne _080A041C adds r0, r1, 0 bl sub_80A04CC ldr r0, _080A0418 @ =0x0000ffff bl sub_80A057C b _080A0422 .align 2, 0 _080A0414: .4byte 0x02018000 _080A0418: .4byte 0x0000ffff _080A041C: adds r0, r1, 0 bl sub_80A057C _080A0422: pop {r0} bx r0 thumb_func_end sub_80A03F0 thumb_func_start sub_80A0428 sub_80A0428: @ 80A0428 push {r4-r6,lr} adds r5, r0, 0 adds r6, r1, 0 ldrb r1, [r6] bl sub_80A03BC lsls r0, 16 lsrs r4, r0, 16 movs r0, 0xB movs r1, 0xF movs r2, 0x1C movs r3, 0x12 bl MenuZeroFillWindowRect ldr r0, _080A0454 @ =0x02018000 ldrb r0, [r0, 0xB] cmp r0, 0x2 bne _080A0458 adds r0, r4, 0 bl sub_80A046C b _080A045E .align 2, 0 _080A0454: .4byte 0x02018000 _080A0458: adds r0, r4, 0 bl sub_80A0498 _080A045E: adds r0, r5, 0 adds r1, r6, 0 bl sub_80A03F0 pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_80A0428 thumb_func_start sub_80A046C sub_80A046C: @ 80A046C push {lr} lsls r0, 16 lsrs r1, r0, 16 ldr r0, _080A0490 @ =0x0000ffff cmp r1, r0 beq _080A048A ldr r0, _080A0494 @ =gMoveDescriptions subs r1, 0x1 lsls r1, 2 adds r1, r0 ldr r0, [r1] movs r1, 0xB movs r2, 0xF bl MenuPrint _080A048A: pop {r0} bx r0 .align 2, 0 _080A0490: .4byte 0x0000ffff _080A0494: .4byte gMoveDescriptions thumb_func_end sub_80A046C thumb_func_start sub_80A0498 sub_80A0498: @ 80A0498 push {lr} lsls r0, 16 lsrs r3, r0, 16 ldr r0, _080A04C0 @ =0x0000ffff cmp r3, r0 beq _080A04BC ldr r2, _080A04C4 @ =gUnknown_083CADD4 ldr r1, _080A04C8 @ =gContestMoves lsls r0, r3, 3 adds r0, r1 ldrb r0, [r0] lsls r0, 2 adds r0, r2 ldr r0, [r0] movs r1, 0xB movs r2, 0xF bl MenuPrint _080A04BC: pop {r0} bx r0 .align 2, 0 _080A04C0: .4byte 0x0000ffff _080A04C4: .4byte gUnknown_083CADD4 _080A04C8: .4byte gContestMoves thumb_func_end sub_80A0498 thumb_func_start sub_80A04CC sub_80A04CC: @ 80A04CC push {r4,r5,lr} lsls r0, 16 lsrs r4, r0, 16 ldr r0, _080A0504 @ =0x0000ffff cmp r4, r0 beq _080A0572 ldr r2, _080A0508 @ =gBattleMoves lsls r1, r4, 1 adds r0, r1, r4 lsls r0, 2 adds r2, r0, r2 ldrb r0, [r2, 0x1] adds r5, r1, 0 cmp r0, 0x1 bhi _080A0514 ldr r0, _080A050C @ =gStringVar1 ldr r1, _080A0510 @ =gOtherText_ThreeDashes2 movs r2, 0x15 movs r3, 0x1 bl sub_8072C74 ldr r0, _080A050C @ =gStringVar1 movs r1, 0x7 movs r2, 0xF bl MenuPrint b _080A052A .align 2, 0 _080A0504: .4byte 0x0000ffff _080A0508: .4byte gBattleMoves _080A050C: .4byte gStringVar1 _080A0510: .4byte gOtherText_ThreeDashes2 _080A0514: ldr r0, _080A0550 @ =gStringVar1 ldrb r1, [r2, 0x1] movs r2, 0x15 movs r3, 0x1 bl sub_8072C14 ldr r0, _080A0550 @ =gStringVar1 movs r1, 0x7 movs r2, 0xF bl MenuPrint _080A052A: ldr r0, _080A0554 @ =gBattleMoves adds r1, r5, r4 lsls r1, 2 adds r1, r0 ldrb r0, [r1, 0x3] cmp r0, 0 bne _080A055C ldr r0, _080A0550 @ =gStringVar1 ldr r1, _080A0558 @ =gOtherText_ThreeDashes2 movs r2, 0x15 movs r3, 0x1 bl sub_8072C74 ldr r0, _080A0550 @ =gStringVar1 movs r1, 0x7 movs r2, 0x11 bl MenuPrint b _080A0572 .align 2, 0 _080A0550: .4byte gStringVar1 _080A0554: .4byte gBattleMoves _080A0558: .4byte gOtherText_ThreeDashes2 _080A055C: ldr r0, _080A0578 @ =gStringVar1 ldrb r1, [r1, 0x3] movs r2, 0x15 movs r3, 0x1 bl sub_8072C14 ldr r0, _080A0578 @ =gStringVar1 movs r1, 0x7 movs r2, 0x11 bl MenuPrint _080A0572: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080A0578: .4byte gStringVar1 thumb_func_end sub_80A04CC thumb_func_start sub_80A057C sub_80A057C: @ 80A057C push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} lsls r0, 16 lsrs r5, r0, 16 ldr r0, _080A0648 @ =0x06006800 mov r8, r0 ldr r0, _080A064C @ =0x0000ffff cmp r5, r0 beq _080A063A ldr r1, _080A0650 @ =gContestEffects ldr r2, _080A0654 @ =gContestMoves lsls r3, r5, 3 adds r0, r3, r2 ldrb r0, [r0] lsls r0, 2 adds r0, r1 ldrb r4, [r0, 0x1] mov r10, r2 mov r9, r3 cmp r4, 0xFF beq _080A05B8 adds r0, r4, 0 movs r1, 0xA bl __udivsi3 lsls r0, 24 lsrs r4, r0, 24 _080A05B8: movs r2, 0 movs r7, 0x3 movs r6, 0xF3 lsls r6, 2 _080A05C0: ldr r3, _080A0658 @ =0x00001039 cmp r4, 0xFF beq _080A05CC cmp r2, r4 bcs _080A05CC adds r3, 0x1 _080A05CC: lsrs r0, r2, 2 lsls r0, 5 adds r1, r2, 0 ands r1, r7 adds r1, r0 lsls r1, 1 add r1, r8 adds r1, r6 strh r3, [r1] adds r0, r2, 0x1 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0x7 bls _080A05C0 ldr r0, _080A064C @ =0x0000ffff cmp r5, r0 beq _080A063A mov r0, r9 add r0, r10 ldrb r0, [r0] lsls r0, 2 ldr r1, _080A0650 @ =gContestEffects adds r0, r1 ldrb r4, [r0, 0x2] cmp r4, 0xFF beq _080A060C adds r0, r4, 0 movs r1, 0xA bl __udivsi3 lsls r0, 24 lsrs r4, r0, 24 _080A060C: movs r2, 0 movs r6, 0x3 ldr r5, _080A065C @ =0x0000044c _080A0612: ldr r3, _080A0660 @ =0x0000103d cmp r4, 0xFF beq _080A061E cmp r2, r4 bcs _080A061E subs r3, 0x1 _080A061E: lsrs r0, r2, 2 lsls r0, 5 adds r1, r2, 0 ands r1, r6 adds r1, r0 lsls r1, 1 add r1, r8 adds r1, r5 strh r3, [r1] adds r0, r2, 0x1 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0x7 bls _080A0612 _080A063A: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080A0648: .4byte 0x06006800 _080A064C: .4byte 0x0000ffff _080A0650: .4byte gContestEffects _080A0654: .4byte gContestMoves _080A0658: .4byte 0x00001039 _080A065C: .4byte 0x0000044c _080A0660: .4byte 0x0000103d thumb_func_end sub_80A057C .section .text_80A0958 thumb_func_start sub_80A0958 sub_80A0958: @ 80A0958 push {r4-r6,lr} mov r6, r10 mov r5, r9 mov r4, r8 push {r4-r6} mov r8, r0 movs r1, 0xB bl GetMonData adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 ldr r2, _080A0A24 @ =gStringVar1 adds r0, r2, 0 movs r1, 0xD bl sub_80A1E58 adds r2, r0, 0 movs r6, 0xFC strb r6, [r2] movs r0, 0x11 strb r0, [r2, 0x1] movs r0, 0x7 strb r0, [r2, 0x2] movs r0, 0xBA strb r0, [r2, 0x3] adds r2, 0x4 movs r0, 0xB adds r1, r4, 0 muls r1, r0 ldr r0, _080A0A28 @ =gSpeciesNames adds r1, r0 adds r0, r2, 0 bl StringCopy adds r2, r0, 0 strb r6, [r2] movs r0, 0x13 mov r10, r0 strb r0, [r2, 0x1] movs r0, 0x50 strb r0, [r2, 0x2] movs r0, 0xFF mov r9, r0 strb r0, [r2, 0x3] ldr r5, _080A0A24 @ =gStringVar1 adds r0, r5, 0 movs r1, 0 movs r2, 0xE bl MenuPrint movs r0, 0x3 movs r1, 0x10 movs r2, 0x9 movs r3, 0x11 bl MenuZeroFillWindowRect mov r0, r8 movs r1, 0x38 bl GetMonData adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 adds r0, r5, 0 movs r1, 0xD bl sub_80A1E58 adds r2, r0, 0 movs r0, 0x34 strb r0, [r2] adds r2, 0x1 adds r0, r2, 0 adds r1, r4, 0 bl ConvertIntToDecimalString adds r2, r0, 0 strb r6, [r2] mov r0, r10 strb r0, [r2, 0x1] movs r0, 0x20 strb r0, [r2, 0x2] mov r0, r9 strb r0, [r2, 0x3] adds r0, r5, 0 movs r1, 0x3 movs r2, 0x10 bl MenuPrint mov r0, r8 movs r1, 0x7 movs r2, 0x10 bl sub_80A0A2C pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080A0A24: .4byte gStringVar1 _080A0A28: .4byte gSpeciesNames thumb_func_end sub_80A0958 thumb_func_start sub_80A0A2C sub_80A0A2C: @ 80A0A2C push {r4-r6,lr} adds r6, r0, 0 lsls r1, 24 lsrs r5, r1, 24 lsls r2, 24 lsrs r4, r2, 24 movs r1, 0x41 bl GetMonData lsls r0, 16 lsrs r0, 16 cmp r0, 0x20 beq _080A0A84 cmp r0, 0x1D beq _080A0A84 adds r0, r6, 0 bl GetMonGender lsls r0, 24 lsrs r0, 24 cmp r0, 0 beq _080A0A6E cmp r0, 0xFE beq _080A0A78 adds r3, r4, 0x1 lsls r3, 24 lsrs r3, 24 adds r0, r5, 0 adds r1, r4, 0 adds r2, r5, 0 bl MenuZeroFillWindowRect b _080A0A84 _080A0A6E: ldr r0, _080A0A74 @ =gOtherText_MaleSymbol2 movs r1, 0xB b _080A0A7C .align 2, 0 _080A0A74: .4byte gOtherText_MaleSymbol2 _080A0A78: ldr r0, _080A0A8C @ =gOtherText_FemaleSymbolAndLv movs r1, 0xC _080A0A7C: adds r2, r5, 0 adds r3, r4, 0 bl sub_80A1FF8 _080A0A84: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080A0A8C: .4byte gOtherText_FemaleSymbolAndLv thumb_func_end sub_80A0A2C thumb_func_start sub_80A0A90 sub_80A0A90: @ 80A0A90 push {r4,r5,lr} adds r5, r0, 0 movs r1, 0x32 bl GetMonData adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 adds r0, r5, 0 movs r1, 0x33 bl GetMonData adds r4, r0 lsls r4, 24 lsrs r4, 24 adds r0, r5, 0 movs r1, 0x34 bl GetMonData adds r4, r0 lsls r4, 24 lsrs r4, 24 adds r0, r5, 0 movs r1, 0x35 bl GetMonData adds r4, r0 lsls r4, 24 lsrs r4, 24 adds r0, r5, 0 movs r1, 0x36 bl GetMonData adds r4, r0 lsls r4, 24 lsrs r4, 24 adds r0, r5, 0 movs r1, 0x43 bl GetMonData adds r4, r0 lsls r4, 24 lsrs r4, 24 adds r0, r5, 0 movs r1, 0x44 bl GetMonData adds r4, r0 lsls r4, 24 lsrs r4, 24 adds r0, r5, 0 movs r1, 0x45 bl GetMonData adds r4, r0 lsls r4, 24 lsrs r4, 24 adds r0, r5, 0 movs r1, 0x46 bl GetMonData adds r4, r0 lsls r4, 24 lsrs r4, 24 adds r0, r5, 0 movs r1, 0x47 bl GetMonData adds r4, r0 lsls r4, 24 lsrs r4, 24 adds r0, r5, 0 movs r1, 0x48 bl GetMonData adds r4, r0 lsls r4, 24 lsrs r4, 24 adds r0, r5, 0 movs r1, 0x49 bl GetMonData adds r4, r0 lsls r4, 24 lsrs r4, 24 adds r0, r5, 0 movs r1, 0x4A bl GetMonData adds r4, r0 lsls r4, 24 lsrs r4, 24 adds r0, r5, 0 movs r1, 0x4B bl GetMonData adds r4, r0 lsls r4, 24 lsrs r4, 24 adds r0, r5, 0 movs r1, 0x4C bl GetMonData adds r4, r0 lsls r4, 24 lsrs r4, 24 adds r0, r5, 0 movs r1, 0x4D bl GetMonData adds r4, r0 lsls r4, 24 lsrs r4, 24 adds r0, r5, 0 movs r1, 0x4E bl GetMonData adds r4, r0 lsls r4, 24 lsrs r4, 24 adds r0, r4, 0 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_80A0A90 thumb_func_start sub_80A0B88 sub_80A0B88: @ 80A0B88 push {r4,r5,lr} bl sub_80A0A90 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0 bne _080A0BA8 ldr r0, _080A0BA0 @ =gStringVar1 ldr r1, _080A0BA4 @ =gOtherText_None bl StringCopy b _080A0BD8 .align 2, 0 _080A0BA0: .4byte gStringVar1 _080A0BA4: .4byte gOtherText_None _080A0BA8: ldr r4, _080A0BE8 @ =gStringVar1 ldr r1, _080A0BEC @ =gOtherText_Ribbons00 adds r0, r4, 0 bl StringCopy adds r0, r4, 0 bl StringLength lsls r0, 24 lsrs r0, 24 subs r4, 0x2 adds r0, r4 movs r1, 0xFC strb r1, [r0] movs r1, 0x14 strb r1, [r0, 0x1] movs r1, 0x6 strb r1, [r0, 0x2] adds r0, 0x3 adds r1, r5, 0 movs r2, 0x1 movs r3, 0x2 bl ConvertIntToDecimalStringN _080A0BD8: ldr r0, _080A0BF0 @ =gUnknown_083C15AE movs r1, 0x15 movs r2, 0x4 bl MenuPrint pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080A0BE8: .4byte gStringVar1 _080A0BEC: .4byte gOtherText_Ribbons00 _080A0BF0: .4byte gUnknown_083C15AE thumb_func_end sub_80A0B88 thumb_func_start sub_80A0BF4 sub_80A0BF4: @ 80A0BF4 push {r4-r7,lr} lsls r0, 16 lsrs r5, r0, 16 lsls r1, 24 lsrs r7, r1, 24 lsls r2, 24 lsrs r6, r2, 24 cmp r5, 0xAF bne _080A0C48 bl sub_80F9344 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080A0C48 bl IsLinkDoubleBattle lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080A0C48 ldr r0, _080A0C40 @ =0x02018000 ldrb r0, [r0, 0x9] cmp r0, 0x1 beq _080A0C2E cmp r0, 0x4 beq _080A0C2E cmp r0, 0x5 bne _080A0C48 _080A0C2E: ldr r4, _080A0C44 @ =gStringVar1 adds r0, r5, 0 bl ItemId_GetItem adds r1, r0, 0 adds r0, r4, 0 bl StringCopy b _080A0C68 .align 2, 0 _080A0C40: .4byte 0x02018000 _080A0C44: .4byte gStringVar1 _080A0C48: cmp r5, 0 bne _080A0C60 ldr r0, _080A0C58 @ =gStringVar1 ldr r1, _080A0C5C @ =gOtherText_None bl StringCopy b _080A0C68 .align 2, 0 _080A0C58: .4byte gStringVar1 _080A0C5C: .4byte gOtherText_None _080A0C60: ldr r1, _080A0C78 @ =gStringVar1 adds r0, r5, 0 bl CopyItemName _080A0C68: ldr r0, _080A0C7C @ =gUnknown_083C15B4 adds r1, r7, 0 adds r2, r6, 0 bl MenuPrint pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080A0C78: .4byte gStringVar1 _080A0C7C: .4byte gUnknown_083C15B4 thumb_func_end sub_80A0BF4 thumb_func_start sub_80A0C80 sub_80A0C80: @ 80A0C80 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x4 adds r4, r0, 0 lsls r1, 24 lsrs r1, 24 mov r10, r1 lsls r2, 24 lsrs r2, 24 str r2, [sp] movs r0, 0 mov r9, r0 movs r6, 0 movs r7, 0 adds r0, r4, 0 movs r1, 0x19 bl GetMonData mov r8, r0 adds r0, r4, 0 movs r1, 0x38 bl GetMonData lsls r0, 24 lsrs r5, r0, 24 adds r0, r4, 0 movs r1, 0xB bl GetMonData lsls r0, 16 lsrs r4, r0, 16 cmp r5, 0x63 bhi _080A0D14 ldr r3, _080A0D4C @ =gExperienceTables adds r1, r5, 0x1 lsls r1, 2 ldr r2, _080A0D50 @ =gBaseStats lsls r0, r4, 3 subs r0, r4 lsls r0, 2 adds r0, r2 ldrb r2, [r0, 0x13] movs r0, 0xCA lsls r0, 1 muls r2, r0 adds r1, r2 adds r1, r3 ldr r1, [r1] mov r0, r8 subs r0, r1, r0 mov r9, r0 lsls r0, r5, 2 adds r0, r2 adds r0, r3 ldr r0, [r0] subs r1, r0 mov r2, r8 subs r4, r2, r0 lsls r0, r4, 6 bl __udivsi3 adds r6, r0, 0 movs r7, 0 adds r0, r7, 0 orrs r0, r6 cmp r0, 0 bne _080A0D14 cmp r4, 0 beq _080A0D14 movs r6, 0x1 movs r7, 0 _080A0D14: ldr r4, _080A0D54 @ =gStringVar1 adds r0, r4, 0 mov r1, r9 bl ConvertIntToDecimalString mov r1, r10 adds r1, 0x6 lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 ldr r2, [sp] bl MenuPrint_RightAligned ldr r0, _080A0D58 @ =0x06004caa mov r9, r0 movs r2, 0 mov r12, r2 ldr r0, _080A0D5C @ =0x00002062 mov r8, r0 _080A0D3A: cmp r7, 0 bgt _080A0D46 cmp r7, 0 bne _080A0D64 cmp r6, 0x7 bls _080A0D64 _080A0D46: ldr r1, _080A0D60 @ =0x0000206a b _080A0D96 .align 2, 0 _080A0D4C: .4byte gExperienceTables _080A0D50: .4byte gBaseStats _080A0D54: .4byte gStringVar1 _080A0D58: .4byte 0x06004caa _080A0D5C: .4byte 0x00002062 _080A0D60: .4byte 0x0000206a _080A0D64: adds r5, r7, 0 adds r4, r6, 0 cmp r7, 0 bge _080A0D74 movs r4, 0x7 movs r5, 0 adds r4, r6 adcs r5, r7 _080A0D74: lsls r3, r5, 29 lsrs r2, r4, 3 adds r0, r3, 0 orrs r0, r2 asrs r1, r5, 3 lsrs r5, r0, 29 lsls r4, r1, 3 adds r3, r5, 0 orrs r3, r4 lsls r2, r0, 3 adds r1, r7, 0 adds r0, r6, 0 subs r0, r2 sbcs r1, r3 add r0, r8 lsls r0, 16 lsrs r1, r0, 16 _080A0D96: mov r2, r12 lsls r0, r2, 1 add r0, r9 strh r1, [r0] movs r0, 0x8 negs r0, r0 asrs r1, r0, 31 adds r6, r0 adcs r7, r1 cmp r7, 0 bge _080A0DB0 movs r6, 0 movs r7, 0 _080A0DB0: mov r0, r12 adds r0, 0x1 lsls r0, 24 lsrs r0, 24 mov r12, r0 cmp r0, 0x7 bls _080A0D3A add sp, 0x4 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_80A0C80 thumb_func_start sub_80A0DD0 sub_80A0DD0: @ 80A0DD0 push {r4,r5,lr} ldr r2, _080A0E3C @ =gStringVar1 movs r5, 0xFC strb r5, [r2] movs r0, 0x12 strb r0, [r2, 0x1] movs r0, 0x2 strb r0, [r2, 0x2] adds r2, 0x3 adds r0, r2, 0 movs r1, 0xD bl sub_80A1E58 adds r2, r0, 0 ldr r1, _080A0E40 @ =gUnknown_083C1068 ldr r4, _080A0E44 @ =0x02018000 adds r0, r4, 0 adds r0, 0x7E ldrb r0, [r0] lsls r0, 2 adds r0, r1 ldr r1, [r0] adds r0, r2, 0 bl StringCopy adds r2, r0, 0 strb r5, [r2] movs r0, 0x13 strb r0, [r2, 0x1] movs r0, 0x58 strb r0, [r2, 0x2] movs r0, 0xFF strb r0, [r2, 0x3] ldr r0, _080A0E3C @ =gStringVar1 movs r1, 0 movs r2, 0 bl MenuPrint adds r4, 0x7F ldrb r0, [r4] cmp r0, 0 beq _080A0E48 movs r0, 0x5 movs r1, 0x17 movs r2, 0 bl GetStringCenterAlignXOffset movs r0, 0x6 movs r1, 0x18 movs r2, 0 bl GetStringCenterAlignXOffset b _080A0E54 .align 2, 0 _080A0E3C: .4byte gStringVar1 _080A0E40: .4byte gUnknown_083C1068 _080A0E44: .4byte 0x02018000 _080A0E48: movs r0, 0x17 movs r1, 0 movs r2, 0x18 movs r3, 0x1 bl MenuZeroFillWindowRect _080A0E54: ldr r2, _080A0E98 @ =gStringVar1 adds r0, r2, 0 movs r1, 0xD bl sub_80A1E58 adds r2, r0, 0 ldr r1, _080A0E9C @ =gUnknown_083C1068 ldr r0, _080A0EA0 @ =0x02018000 adds r0, 0x7F ldrb r0, [r0] lsls r0, 2 adds r0, r1 ldr r1, [r0] adds r0, r2, 0 bl StringCopy adds r2, r0, 0 movs r0, 0xFC strb r0, [r2] movs r0, 0x13 strb r0, [r2, 0x1] movs r0, 0x28 strb r0, [r2, 0x2] movs r0, 0xFF strb r0, [r2, 0x3] ldr r0, _080A0E98 @ =gStringVar1 movs r1, 0x19 movs r2, 0 bl MenuPrint pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080A0E98: .4byte gStringVar1 _080A0E9C: .4byte gUnknown_083C1068 _080A0EA0: .4byte 0x02018000 thumb_func_end sub_80A0DD0 thumb_func_start sub_80A0EA4 sub_80A0EA4: @ 80A0EA4 push {r4-r6,lr} adds r4, r0, 0 ldr r5, _080A0ECC @ =0x0600e444 ldr r6, _080A0ED0 @ =0x0600ec44 movs r1, 0 bl CheckPartyPokerus lsls r0, 24 cmp r0, 0 bne _080A0ED4 adds r0, r4, 0 movs r1, 0 bl CheckPartyHasHadPokerus lsls r0, 24 cmp r0, 0 beq _080A0ED4 movs r0, 0x2C b _080A0ED8 .align 2, 0 _080A0ECC: .4byte 0x0600e444 _080A0ED0: .4byte 0x0600ec44 _080A0ED4: ldr r1, _080A0EE4 @ =0x0000081a adds r0, r1, 0 _080A0ED8: strh r0, [r5] strh r0, [r6] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080A0EE4: .4byte 0x0000081a thumb_func_end sub_80A0EA4 thumb_func_start sub_80A0EE8 sub_80A0EE8: @ 80A0EE8 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x10 movs r3, 0 ldr r6, _080A0F24 @ =0x02018000 adds r5, r6, 0 ldr r1, _080A0F28 @ =0x00004040 mov r8, r1 ldr r2, _080A0F2C @ =0x0000404a mov r10, r2 _080A0F02: adds r0, r5, 0 adds r0, 0x75 ldrb r0, [r0] cmp r3, r0 bcs _080A0F30 lsls r1, r3, 1 lsls r0, r3, 2 add r0, sp mov r4, r8 strh r4, [r0] adds r1, 0x1 lsls r1, 1 mov r7, sp adds r0, r7, r1 strh r4, [r0] b _080A0FE2 .align 2, 0 _080A0F24: .4byte 0x02018000 _080A0F28: .4byte 0x00004040 _080A0F2C: .4byte 0x0000404a _080A0F30: movs r0, 0x76 adds r0, r6 mov r12, r0 ldrb r1, [r0] cmp r3, r1 bls _080A0F52 lsls r1, r3, 1 lsls r0, r3, 2 add r0, sp mov r2, r10 strh r2, [r0] adds r1, 0x1 lsls r1, 1 mov r4, sp adds r0, r4, r1 strh r2, [r0] b _080A0FE2 _080A0F52: ldrb r4, [r5, 0xB] cmp r3, r4 bcs _080A0F6E lsls r1, r3, 1 lsls r0, r3, 2 mov r7, sp adds r2, r7, r0 ldr r0, _080A0F88 @ =0x00004046 strh r0, [r2] adds r1, 0x1 lsls r1, 1 add r1, sp adds r0, 0x1 strh r0, [r1] _080A0F6E: cmp r3, r4 bne _080A0FA6 mov r0, r12 ldrb r0, [r0] cmp r3, r0 beq _080A0F90 lsls r1, r3, 1 lsls r0, r3, 2 mov r4, sp adds r2, r4, r0 ldr r0, _080A0F8C @ =0x00004041 b _080A0F9A .align 2, 0 _080A0F88: .4byte 0x00004046 _080A0F8C: .4byte 0x00004041 _080A0F90: lsls r1, r3, 1 lsls r0, r3, 2 mov r7, sp adds r2, r7, r0 ldr r0, _080A0FC4 @ =0x0000404b _080A0F9A: strh r0, [r2] adds r1, 0x1 lsls r1, 1 add r1, sp adds r0, 0x1 strh r0, [r1] _080A0FA6: ldrb r0, [r5, 0xB] cmp r3, r0 bls _080A0FE2 adds r0, r6, 0 adds r0, 0x76 ldrb r0, [r0] cmp r3, r0 beq _080A0FCC lsls r1, r3, 1 lsls r0, r3, 2 mov r4, sp adds r2, r4, r0 ldr r0, _080A0FC8 @ =0x00004043 b _080A0FD6 .align 2, 0 _080A0FC4: .4byte 0x0000404b _080A0FC8: .4byte 0x00004043 _080A0FCC: lsls r1, r3, 1 lsls r0, r3, 2 mov r7, sp adds r2, r7, r0 ldr r0, _080A1034 @ =0x00004048 _080A0FD6: strh r0, [r2] adds r1, 0x1 lsls r1, 1 add r1, sp adds r0, 0x1 strh r0, [r1] _080A0FE2: adds r0, r3, 0x1 lsls r0, 24 lsrs r3, r0, 24 cmp r3, 0x3 bls _080A0F02 ldr r1, _080A1038 @ =0x0600e016 ldr r0, _080A103C @ =0x040000d4 mov r2, sp str r2, [r0] str r1, [r0, 0x4] ldr r1, _080A1040 @ =0x80000008 str r1, [r0, 0x8] ldr r0, [r0, 0x8] movs r3, 0 _080A0FFE: lsls r0, r3, 1 mov r4, sp adds r1, r4, r0 ldrh r0, [r1] adds r0, 0x10 strh r0, [r1] adds r0, r3, 0x1 lsls r0, 24 lsrs r3, r0, 24 cmp r3, 0x7 bls _080A0FFE ldr r1, _080A1044 @ =0x0600e056 ldr r0, _080A103C @ =0x040000d4 str r4, [r0] str r1, [r0, 0x4] ldr r1, _080A1040 @ =0x80000008 str r1, [r0, 0x8] ldr r0, [r0, 0x8] 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 _080A1034: .4byte 0x00004048 _080A1038: .4byte 0x0600e016 _080A103C: .4byte 0x040000d4 _080A1040: .4byte 0x80000008 _080A1044: .4byte 0x0600e056 thumb_func_end sub_80A0EE8 thumb_func_start sub_80A1048 sub_80A1048: @ 80A1048 push {r4-r7,lr} mov r7, r8 push {r7} lsls r0, 24 lsrs r0, 24 mov r8, r0 lsls r0, 2 add r0, r8 lsls r0, 3 ldr r1, _080A10A0 @ =gTasks + 0x8 adds r6, r0, r1 ldrh r0, [r6] ldrh r1, [r6, 0x2] adds r0, r1 strh r0, [r6, 0x2] lsls r0, 16 cmp r0, 0 bne _080A106E b _080A1224 _080A106E: movs r5, 0x2 ldrsh r2, [r6, r5] ldr r0, _080A10A4 @ =0x0000024a subs r0, r2 lsls r0, 1 ldr r1, _080A10A8 @ =gUnknown_08E73508 adds r4, r0, r1 ldr r5, _080A10AC @ =0x0600e480 lsls r2, 1 movs r0, 0x80 lsls r0, 5 adds r7, r1, 0 cmp r2, r0 bhi _080A10B4 ldr r0, _080A10B0 @ =0x040000d4 str r4, [r0] str r5, [r0, 0x4] lsrs r1, r2, 1 movs r2, 0x80 lsls r2, 24 orrs r1, r2 str r1, [r0, 0x8] ldr r0, [r0, 0x8] b _080A10E0 .align 2, 0 _080A10A0: .4byte gTasks + 0x8 _080A10A4: .4byte 0x0000024a _080A10A8: .4byte gUnknown_08E73508 _080A10AC: .4byte 0x0600e480 _080A10B0: .4byte 0x040000d4 _080A10B4: ldr r3, _080A110C @ =0x040000d4 str r4, [r3] str r5, [r3, 0x4] ldr r0, _080A1110 @ =0x80000800 str r0, [r3, 0x8] ldr r0, [r3, 0x8] movs r0, 0x80 lsls r0, 5 adds r4, r0 adds r5, r0 ldr r1, _080A1114 @ =0xfffff000 adds r2, r1 cmp r2, r0 bhi _080A10B4 str r4, [r3] str r5, [r3, 0x4] lsrs r0, r2, 1 movs r1, 0x80 lsls r1, 24 orrs r0, r1 str r0, [r3, 0x8] ldr r0, [r3, 0x8] _080A10E0: movs r5, 0x2 ldrsh r0, [r6, r5] ldr r1, _080A1118 @ =0x0000026a subs r1, r0 lsls r1, 1 adds r3, r1, r7 ldr r4, _080A111C @ =0x0600e4c0 lsls r1, r0, 1 movs r0, 0x80 lsls r0, 5 cmp r1, r0 bhi _080A1120 ldr r0, _080A110C @ =0x040000d4 str r3, [r0] str r4, [r0, 0x4] lsrs r1, 1 movs r2, 0x80 lsls r2, 24 orrs r1, r2 str r1, [r0, 0x8] ldr r0, [r0, 0x8] b _080A114C .align 2, 0 _080A110C: .4byte 0x040000d4 _080A1110: .4byte 0x80000800 _080A1114: .4byte 0xfffff000 _080A1118: .4byte 0x0000026a _080A111C: .4byte 0x0600e4c0 _080A1120: ldr r2, _080A1178 @ =0x040000d4 str r3, [r2] str r4, [r2, 0x4] ldr r0, _080A117C @ =0x80000800 str r0, [r2, 0x8] ldr r0, [r2, 0x8] movs r0, 0x80 lsls r0, 5 adds r3, r0 adds r4, r0 ldr r5, _080A1180 @ =0xfffff000 adds r1, r5 cmp r1, r0 bhi _080A1120 str r3, [r2] str r4, [r2, 0x4] lsrs r0, r1, 1 movs r1, 0x80 lsls r1, 24 orrs r0, r1 str r0, [r2, 0x8] ldr r0, [r2, 0x8] _080A114C: movs r1, 0x2 ldrsh r0, [r6, r1] ldr r1, _080A1184 @ =0x0000024a subs r1, r0 lsls r1, 1 adds r3, r1, r7 ldr r4, _080A1188 @ =0x0600ec80 lsls r1, r0, 1 movs r0, 0x80 lsls r0, 5 cmp r1, r0 bhi _080A118C ldr r0, _080A1178 @ =0x040000d4 str r3, [r0] str r4, [r0, 0x4] lsrs r1, 1 movs r2, 0x80 lsls r2, 24 orrs r1, r2 str r1, [r0, 0x8] ldr r0, [r0, 0x8] b _080A11B8 .align 2, 0 _080A1178: .4byte 0x040000d4 _080A117C: .4byte 0x80000800 _080A1180: .4byte 0xfffff000 _080A1184: .4byte 0x0000024a _080A1188: .4byte 0x0600ec80 _080A118C: ldr r2, _080A11E4 @ =0x040000d4 str r3, [r2] str r4, [r2, 0x4] ldr r0, _080A11E8 @ =0x80000800 str r0, [r2, 0x8] ldr r0, [r2, 0x8] movs r0, 0x80 lsls r0, 5 adds r3, r0 adds r4, r0 ldr r5, _080A11EC @ =0xfffff000 adds r1, r5 cmp r1, r0 bhi _080A118C str r3, [r2] str r4, [r2, 0x4] lsrs r0, r1, 1 movs r1, 0x80 lsls r1, 24 orrs r0, r1 str r0, [r2, 0x8] ldr r0, [r2, 0x8] _080A11B8: movs r1, 0x2 ldrsh r0, [r6, r1] ldr r1, _080A11F0 @ =0x0000026a subs r1, r0 lsls r1, 1 adds r3, r1, r7 ldr r4, _080A11F4 @ =0x0600ecc0 lsls r1, r0, 1 movs r0, 0x80 lsls r0, 5 cmp r1, r0 bhi _080A11F8 ldr r0, _080A11E4 @ =0x040000d4 str r3, [r0] str r4, [r0, 0x4] lsrs r1, 1 movs r2, 0x80 lsls r2, 24 orrs r1, r2 str r1, [r0, 0x8] ldr r0, [r0, 0x8] b _080A1224 .align 2, 0 _080A11E4: .4byte 0x040000d4 _080A11E8: .4byte 0x80000800 _080A11EC: .4byte 0xfffff000 _080A11F0: .4byte 0x0000026a _080A11F4: .4byte 0x0600ecc0 _080A11F8: ldr r2, _080A12B0 @ =0x040000d4 str r3, [r2] str r4, [r2, 0x4] ldr r0, _080A12B4 @ =0x80000800 str r0, [r2, 0x8] ldr r0, [r2, 0x8] movs r0, 0x80 lsls r0, 5 adds r3, r0 adds r4, r0 ldr r5, _080A12B8 @ =0xfffff000 adds r1, r5 cmp r1, r0 bhi _080A11F8 str r3, [r2] str r4, [r2, 0x4] lsrs r0, r1, 1 movs r1, 0x80 lsls r1, 24 orrs r0, r1 str r0, [r2, 0x8] ldr r0, [r2, 0x8] _080A1224: ldrb r4, [r6, 0x2] ldrh r7, [r6, 0x2] ldrh r0, [r6] mov r12, r0 cmp r4, 0x9 bhi _080A1272 adds r3, r6, 0x4 ldr r2, _080A12B0 @ =0x040000d4 ldr r5, _080A12BC @ =0x80000001 _080A1236: lsls r1, r4, 1 ldr r6, _080A12C0 @ =0x0600e480 adds r0, r1, r6 str r3, [r2] str r0, [r2, 0x4] str r5, [r2, 0x8] ldr r0, [r2, 0x8] adds r6, 0x40 adds r0, r1, r6 str r3, [r2] str r0, [r2, 0x4] str r5, [r2, 0x8] ldr r0, [r2, 0x8] ldr r6, _080A12C4 @ =0x0600ec80 adds r0, r1, r6 str r3, [r2] str r0, [r2, 0x4] str r5, [r2, 0x8] ldr r0, [r2, 0x8] ldr r0, _080A12C8 @ =0x0600ecc0 adds r1, r0 str r3, [r2] str r1, [r2, 0x4] str r5, [r2, 0x8] ldr r0, [r2, 0x8] adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x9 bls _080A1236 _080A1272: mov r1, r12 lsls r0, r1, 16 cmp r0, 0 beq _080A1286 lsls r0, r7, 16 asrs r0, 16 cmp r0, 0 ble _080A1286 cmp r0, 0x9 ble _080A12A4 _080A1286: lsls r0, r7, 16 asrs r0, 16 cmp r0, 0x9 ble _080A129A ldr r0, _080A12CC @ =gOtherText_Status movs r1, 0xD movs r2, 0x1 movs r3, 0x12 bl sub_80A1FF8 _080A129A: bl sub_80A1D18 mov r0, r8 bl DestroyTask _080A12A4: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080A12B0: .4byte 0x040000d4 _080A12B4: .4byte 0x80000800 _080A12B8: .4byte 0xfffff000 _080A12BC: .4byte 0x80000001 _080A12C0: .4byte 0x0600e480 _080A12C4: .4byte 0x0600ec80 _080A12C8: .4byte 0x0600ecc0 _080A12CC: .4byte gOtherText_Status thumb_func_end sub_80A1048 thumb_func_start sub_80A12D0 sub_80A12D0: @ 80A12D0 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 movs r0, 0x1 movs r1, 0x12 movs r2, 0x5 movs r3, 0x13 bl MenuZeroFillWindowRect movs r0, 0x1D bl sub_80A18E4 ldr r0, _080A1310 @ =sub_80A1048 movs r1, 0 bl CreateTask lsls r0, 24 lsrs r2, r0, 24 ldr r1, _080A1314 @ =gTasks lsls r0, r2, 2 adds r0, r2 lsls r0, 3 adds r1, r0, r1 lsls r4, 24 asrs r4, 24 strh r4, [r1, 0x8] cmp r4, 0 bge _080A1318 movs r0, 0xA b _080A131A .align 2, 0 _080A1310: .4byte sub_80A1048 _080A1314: .4byte gTasks _080A1318: movs r0, 0 _080A131A: strh r0, [r1, 0xA] ldr r0, _080A1330 @ =gTasks lsls r1, r2, 2 adds r1, r2 lsls r1, 3 adds r1, r0 movs r0, 0x1 strh r0, [r1, 0xC] pop {r4} pop {r0} bx r0 .align 2, 0 _080A1330: .4byte gTasks thumb_func_end sub_80A12D0 thumb_func_start sub_80A1334 sub_80A1334: @ 80A1334 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x4 lsls r0, 24 lsrs r0, 24 mov r10, r0 lsls r0, 2 add r0, r10 lsls r0, 3 ldr r1, _080A13E4 @ =gTasks + 0x8 adds r7, r0, r1 ldrh r0, [r7] ldrh r1, [r7, 0x2] adds r0, r1 strh r0, [r7, 0x2] lsls r0, 16 asrs r1, r0, 16 movs r0, 0 cmp r1, 0 blt _080A136A movs r0, 0xA cmp r1, 0xA bgt _080A136A ldrh r0, [r7, 0x2] _080A136A: lsls r0, 16 asrs r2, r0, 16 mov r9, r0 cmp r2, 0 ble _080A13A6 movs r0, 0xA subs r0, r2 lsls r0, 1 ldr r1, _080A13E8 @ =0x06005b40 adds r4, r0, r1 movs r5, 0 adds r6, r2, 0 ldr r0, _080A13EC @ =0x001fffff mov r8, r0 _080A1386: adds r0, r5, 0 adds r0, 0xD lsls r0, 6 ldr r1, _080A13F0 @ =gUnknown_08E73E88 adds r0, r1 adds r1, r4, 0 mov r2, r8 ands r2, r6 bl CpuSet adds r4, 0x40 adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0x6 bls _080A1386 _080A13A6: mov r1, r9 asrs r2, r1, 16 cmp r2, 0x9 bgt _080A13F4 ldr r4, _080A13E8 @ =0x06005b40 movs r5, 0 mov r8, sp movs r0, 0xA subs r6, r0, r2 ldr r0, _080A13EC @ =0x001fffff ands r6, r0 movs r0, 0x80 lsls r0, 17 mov r9, r0 _080A13C2: ldrh r0, [r7, 0x4] mov r1, r8 strh r0, [r1] mov r0, sp adds r1, r4, 0 mov r2, r9 orrs r2, r6 bl CpuSet adds r4, 0x40 adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0x6 bls _080A13C2 b _080A1400 .align 2, 0 _080A13E4: .4byte gTasks + 0x8 _080A13E8: .4byte 0x06005b40 _080A13EC: .4byte 0x001fffff _080A13F0: .4byte gUnknown_08E73E88 _080A13F4: movs r0, 0 movs r1, 0x13 movs r2, 0x9 movs r3, 0x13 bl MenuZeroFillWindowRect _080A1400: movs r1, 0 ldrsh r0, [r7, r1] cmp r0, 0 beq _080A1410 movs r1, 0x2 ldrsh r0, [r7, r1] cmp r0, 0 bge _080A144A _080A1410: ldr r4, _080A1480 @ =0x02018000 ldrb r0, [r4, 0xB] cmp r0, 0x2 bne _080A1444 movs r0, 0 movs r1, 0xE movs r2, 0x9 movs r3, 0x12 bl MenuZeroFillWindowRect adds r4, 0x10 adds r0, r4, 0 bl sub_80A0958 adds r0, r4, 0 bl GetMonStatusAndPokerus lsls r0, 24 cmp r0, 0 beq _080A1444 ldr r0, _080A1484 @ =gOtherText_Status movs r1, 0xD movs r2, 0x1 movs r3, 0x12 bl sub_80A1FF8 _080A1444: mov r0, r10 bl DestroyTask _080A144A: movs r1, 0x2 ldrsh r0, [r7, r1] cmp r0, 0x9 ble _080A1470 ldr r4, _080A1480 @ =0x02018000 ldrb r0, [r4, 0xB] cmp r0, 0x2 bne _080A1460 ldrb r0, [r7, 0x6] bl sub_80A00F4 _080A1460: adds r0, r4, 0 adds r0, 0x10 adds r1, r7, 0x6 bl sub_80A0428 mov r0, r10 bl DestroyTask _080A1470: 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 _080A1480: .4byte 0x02018000 _080A1484: .4byte gOtherText_Status thumb_func_end sub_80A1334 thumb_func_start sub_80A1488 sub_80A1488: @ 80A1488 push {r4-r7,lr} lsls r0, 24 lsrs r6, r0, 24 lsls r1, 24 lsrs r7, r1, 24 ldr r0, _080A14DC @ =0x02018000 ldrb r0, [r0, 0xB] cmp r0, 0x2 bne _080A14A6 movs r0, 0 movs r1, 0xE movs r2, 0x9 movs r3, 0x13 bl MenuZeroFillWindowRect _080A14A6: ldr r5, _080A14E0 @ =sub_80A1334 adds r0, r5, 0 bl FindTaskIdByFunc lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0xFF bne _080A14C2 adds r0, r5, 0 movs r1, 0 bl CreateTask lsls r0, 24 lsrs r4, r0, 24 _080A14C2: ldr r1, _080A14E4 @ =gTasks lsls r2, r4, 2 adds r0, r2, r4 lsls r0, 3 adds r3, r0, r1 lsls r0, r6, 24 asrs r0, 24 strh r0, [r3, 0x8] cmp r0, 0 bge _080A14E8 movs r0, 0xA b _080A14EA .align 2, 0 _080A14DC: .4byte 0x02018000 _080A14E0: .4byte sub_80A1334 _080A14E4: .4byte gTasks _080A14E8: movs r0, 0 _080A14EA: strh r0, [r3, 0xA] adds r0, r2, r4 lsls r0, 3 adds r0, r1 movs r1, 0 strh r1, [r0, 0xC] strh r7, [r0, 0xE] pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_80A1488 thumb_func_start sub_80A1500 sub_80A1500: @ 80A1500 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x4 lsls r0, 24 lsrs r0, 24 mov r10, r0 lsls r0, 2 add r0, r10 lsls r0, 3 ldr r1, _080A15B0 @ =gTasks + 0x8 adds r7, r0, r1 ldrh r0, [r7] ldrh r1, [r7, 0x2] adds r0, r1 strh r0, [r7, 0x2] lsls r0, 16 asrs r1, r0, 16 movs r0, 0 cmp r1, 0 blt _080A1536 movs r0, 0xA cmp r1, 0xA bgt _080A1536 ldrh r0, [r7, 0x2] _080A1536: lsls r0, 16 asrs r2, r0, 16 mov r9, r0 cmp r2, 0 ble _080A1572 movs r0, 0xA subs r0, r2 lsls r0, 1 ldr r1, _080A15B4 @ =0x06006b40 adds r4, r0, r1 movs r5, 0 adds r6, r2, 0 ldr r0, _080A15B8 @ =0x001fffff mov r8, r0 _080A1552: adds r0, r5, 0 adds r0, 0xD lsls r0, 6 ldr r1, _080A15BC @ =gUnknown_08E74688 adds r0, r1 adds r1, r4, 0 mov r2, r8 ands r2, r6 bl CpuSet adds r4, 0x40 adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0x6 bls _080A1552 _080A1572: mov r1, r9 asrs r2, r1, 16 cmp r2, 0x9 bgt _080A15C0 ldr r4, _080A15B4 @ =0x06006b40 movs r5, 0 mov r8, sp movs r0, 0xA subs r6, r0, r2 ldr r0, _080A15B8 @ =0x001fffff ands r6, r0 movs r0, 0x80 lsls r0, 17 mov r9, r0 _080A158E: ldrh r0, [r7, 0x4] mov r1, r8 strh r0, [r1] mov r0, sp adds r1, r4, 0 mov r2, r9 orrs r2, r6 bl CpuSet adds r4, 0x40 adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0x6 bls _080A158E b _080A15CC .align 2, 0 _080A15B0: .4byte gTasks + 0x8 _080A15B4: .4byte 0x06006b40 _080A15B8: .4byte 0x001fffff _080A15BC: .4byte gUnknown_08E74688 _080A15C0: movs r0, 0 movs r1, 0x13 movs r2, 0x9 movs r3, 0x13 bl MenuZeroFillWindowRect _080A15CC: movs r1, 0 ldrsh r0, [r7, r1] cmp r0, 0 beq _080A15DC movs r1, 0x2 ldrsh r0, [r7, r1] cmp r0, 0 bge _080A1616 _080A15DC: ldr r4, _080A164C @ =0x02018000 ldrb r0, [r4, 0xB] cmp r0, 0x3 bne _080A1610 movs r0, 0 movs r1, 0xE movs r2, 0x9 movs r3, 0x12 bl MenuZeroFillWindowRect adds r4, 0x10 adds r0, r4, 0 bl sub_80A0958 adds r0, r4, 0 bl GetMonStatusAndPokerus lsls r0, 24 cmp r0, 0 beq _080A1610 ldr r0, _080A1650 @ =gOtherText_Status movs r1, 0xD movs r2, 0x1 movs r3, 0x12 bl sub_80A1FF8 _080A1610: mov r0, r10 bl DestroyTask _080A1616: movs r1, 0x2 ldrsh r0, [r7, r1] cmp r0, 0x9 ble _080A163C ldr r4, _080A164C @ =0x02018000 ldrb r0, [r4, 0xB] cmp r0, 0x3 bne _080A162C ldrb r0, [r7, 0x6] bl sub_80A00F4 _080A162C: adds r0, r4, 0 adds r0, 0x10 adds r1, r7, 0x6 bl sub_80A0428 mov r0, r10 bl DestroyTask _080A163C: 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 _080A164C: .4byte 0x02018000 _080A1650: .4byte gOtherText_Status thumb_func_end sub_80A1500 thumb_func_start sub_80A1654 sub_80A1654: @ 80A1654 push {r4-r7,lr} lsls r0, 24 lsrs r6, r0, 24 lsls r1, 24 lsrs r7, r1, 24 ldr r0, _080A16A8 @ =0x02018000 ldrb r0, [r0, 0xB] cmp r0, 0x3 bne _080A1672 movs r0, 0 movs r1, 0xE movs r2, 0x9 movs r3, 0x13 bl MenuZeroFillWindowRect _080A1672: ldr r5, _080A16AC @ =sub_80A1500 adds r0, r5, 0 bl FindTaskIdByFunc lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0xFF bne _080A168E adds r0, r5, 0 movs r1, 0 bl CreateTask lsls r0, 24 lsrs r4, r0, 24 _080A168E: ldr r1, _080A16B0 @ =gTasks lsls r2, r4, 2 adds r0, r2, r4 lsls r0, 3 adds r3, r0, r1 lsls r0, r6, 24 asrs r0, 24 strh r0, [r3, 0x8] cmp r0, 0 bge _080A16B4 movs r0, 0xA b _080A16B6 .align 2, 0 _080A16A8: .4byte 0x02018000 _080A16AC: .4byte sub_80A1500 _080A16B0: .4byte gTasks _080A16B4: movs r0, 0 _080A16B6: strh r0, [r3, 0xA] adds r0, r2, r4 lsls r0, 3 adds r0, r1 movs r1, 0 strh r1, [r0, 0xC] strh r7, [r0, 0xE] pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_80A1654 thumb_func_start sub_80A16CC sub_80A16CC: @ 80A16CC push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} lsls r0, 24 lsrs r0, 24 mov r9, r0 ldr r0, _080A1724 @ =0x06006ad4 mov r12, r0 mov r1, r9 cmp r1, 0 bne _080A172C movs r5, 0 ldr r7, _080A1728 @ =gUnknown_08E94510 movs r0, 0x80 lsls r0, 5 adds r6, r0, 0 movs r1, 0x40 adds r1, r7 mov r8, r1 _080A16F4: lsls r2, r5, 1 mov r0, r12 adds r3, r2, r0 adds r4, r2, r7 ldrh r1, [r4] adds r0, r6, r1 strh r0, [r3] adds r1, r3, 0 adds r1, 0x40 ldrh r4, [r4] adds r0, r6, r4 strh r0, [r1] adds r3, 0x80 add r2, r8 ldrh r2, [r2] adds r0, r6, r2 strh r0, [r3] adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0x13 bls _080A16F4 b _080A1768 .align 2, 0 _080A1724: .4byte 0x06006ad4 _080A1728: .4byte gUnknown_08E94510 _080A172C: movs r5, 0 ldr r6, _080A17B0 @ =gUnknown_08E94550 movs r7, 0x80 lsls r7, 5 adds r4, r7, 0 movs r0, 0x40 adds r0, r6 mov r8, r0 _080A173C: lsls r1, r5, 1 mov r7, r12 adds r2, r1, r7 adds r0, r1, r6 ldrh r0, [r0] adds r0, r4, r0 strh r0, [r2] adds r3, r2, 0 adds r3, 0x40 add r1, r8 ldrh r7, [r1] adds r0, r4, r7 strh r0, [r3] adds r2, 0x80 ldrh r1, [r1] adds r0, r4, r1 strh r0, [r2] adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0x13 bls _080A173C _080A1768: ldr r0, _080A17B4 @ =0x06005ad4 mov r12, r0 mov r1, r9 cmp r1, 0 bne _080A17BC movs r5, 0 ldr r7, _080A17B8 @ =gUnknown_08E94510 movs r0, 0xC0 lsls r0, 6 adds r6, r0, 0 movs r1, 0x40 adds r1, r7 mov r8, r1 _080A1782: lsls r2, r5, 1 mov r0, r12 adds r3, r2, r0 adds r4, r2, r7 ldrh r1, [r4] adds r0, r6, r1 strh r0, [r3] adds r1, r3, 0 adds r1, 0x40 ldrh r4, [r4] adds r0, r6, r4 strh r0, [r1] adds r3, 0x80 add r2, r8 ldrh r2, [r2] adds r0, r6, r2 strh r0, [r3] adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0x13 bls _080A1782 b _080A17F8 .align 2, 0 _080A17B0: .4byte gUnknown_08E94550 _080A17B4: .4byte 0x06005ad4 _080A17B8: .4byte gUnknown_08E94510 _080A17BC: movs r5, 0 ldr r6, _080A1804 @ =gUnknown_08E94550 movs r7, 0xC0 lsls r7, 6 adds r4, r7, 0 movs r0, 0x40 adds r0, r6 mov r8, r0 _080A17CC: lsls r1, r5, 1 mov r7, r12 adds r2, r1, r7 adds r0, r1, r6 ldrh r0, [r0] adds r0, r4, r0 strh r0, [r2] adds r3, r2, 0 adds r3, 0x40 add r1, r8 ldrh r7, [r1] adds r0, r4, r7 strh r0, [r3] adds r2, 0x80 ldrh r1, [r1] adds r0, r4, r1 strh r0, [r2] adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0x13 bls _080A17CC _080A17F8: pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080A1804: .4byte gUnknown_08E94550 thumb_func_end sub_80A16CC thumb_func_start sub_80A1808 sub_80A1808: @ 80A1808 push {r4-r7,lr} mov r7, r8 push {r7} movs r1, 0x41 bl GetMonData adds r6, r0, 0 lsls r6, 16 lsrs r6, 16 ldr r0, _080A1860 @ =gUnknown_02024E8C movs r1, 0x28 movs r2, 0x40 movs r3, 0x5 bl CreateSprite lsls r0, 24 lsrs r0, 24 mov r8, r0 lsls r4, r0, 4 add r4, r8 lsls r4, 2 ldr r5, _080A1864 @ =gSprites adds r7, r4, r5 adds r0, r7, 0 bl FreeSpriteOamMatrix strh r6, [r7, 0x2E] adds r5, 0x1C adds r4, r5 ldr r0, _080A1868 @ =sub_80A1888 str r0, [r4] adds r0, r6, 0 bl sub_8040A3C lsls r0, 24 cmp r0, 0 bne _080A186C adds r0, r7, 0 adds r0, 0x3F ldrb r1, [r0] movs r2, 0x1 orrs r1, r2 strb r1, [r0] b _080A187A .align 2, 0 _080A1860: .4byte gUnknown_02024E8C _080A1864: .4byte gSprites _080A1868: .4byte sub_80A1888 _080A186C: adds r2, r7, 0 adds r2, 0x3F ldrb r1, [r2] movs r0, 0x2 negs r0, r0 ands r0, r1 strb r0, [r2] _080A187A: mov r0, r8 pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_80A1808 thumb_func_start sub_80A1888 sub_80A1888: @ 80A1888 push {r4,lr} adds r4, r0, 0 ldr r0, _080A18B8 @ =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _080A18B0 ldr r0, _080A18BC @ =SpriteCallbackDummy str r0, [r4, 0x1C] ldr r0, _080A18C0 @ =0x02018010 movs r1, 0x2D bl GetMonData cmp r0, 0 bne _080A18B0 ldrh r0, [r4, 0x2E] movs r1, 0 bl PlayCry1 _080A18B0: pop {r4} pop {r0} bx r0 .align 2, 0 _080A18B8: .4byte gPaletteFade _080A18BC: .4byte SpriteCallbackDummy _080A18C0: .4byte 0x02018010 thumb_func_end sub_80A1888 thumb_func_start sub_80A18C4 sub_80A18C4: @ 80A18C4 push {lr} movs r1, 0 ldr r3, _080A18E0 @ =0x0201a000 movs r2, 0xFF _080A18CC: adds r0, r1, r3 strb r2, [r0] adds r0, r1, 0x1 lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0x1D bls _080A18CC pop {r0} bx r0 .align 2, 0 _080A18E0: .4byte 0x0201a000 thumb_func_end sub_80A18C4 thumb_func_start sub_80A18E4 sub_80A18E4: @ 80A18E4 push {r4,lr} lsls r0, 24 lsrs r0, 24 ldr r1, _080A1910 @ =0x0201a000 adds r4, r0, r1 ldrb r0, [r4] cmp r0, 0xFF beq _080A1908 adds r1, r0, 0 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _080A1914 @ =gSprites adds r0, r1 bl DestroySprite movs r0, 0xFF strb r0, [r4] _080A1908: pop {r4} pop {r0} bx r0 .align 2, 0 _080A1910: .4byte 0x0201a000 _080A1914: .4byte gSprites thumb_func_end sub_80A18E4 thumb_func_start sub_80A1918 sub_80A1918: @ 80A1918 lsls r0, 24 lsrs r0, 24 lsls r1, 24 lsrs r1, 24 ldr r3, _080A1948 @ =gSprites ldr r2, _080A194C @ =0x0201a000 adds r0, r2 ldrb r0, [r0] lsls r2, r0, 4 adds r2, r0 lsls r2, 2 adds r2, r3 adds r2, 0x3E movs r0, 0x1 ands r1, r0 lsls r1, 2 ldrb r3, [r2] movs r0, 0x5 negs r0, r0 ands r0, r3 orrs r0, r1 strb r0, [r2] bx lr .align 2, 0 _080A1948: .4byte gSprites _080A194C: .4byte 0x0201a000 thumb_func_end sub_80A1918 thumb_func_start sub_80A1950 sub_80A1950: @ 80A1950 push {r4,r5,lr} movs r5, 0 _080A1954: ldr r0, _080A1984 @ =0x0201a000 adds r4, r5, r0 ldrb r0, [r4] cmp r0, 0xFF bne _080A196C ldr r0, _080A1988 @ =gSpriteTemplate_83C11C0 movs r1, 0 movs r2, 0 movs r3, 0x2 bl CreateSprite strb r0, [r4] _080A196C: adds r0, r5, 0 movs r1, 0x1 bl sub_80A1918 adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0x4 bls _080A1954 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080A1984: .4byte 0x0201a000 _080A1988: .4byte gSpriteTemplate_83C11C0 thumb_func_end sub_80A1950 thumb_func_start sub_80A198C sub_80A198C: @ 80A198C push {r4-r6,lr} mov r6, r10 mov r5, r9 mov r4, r8 push {r4-r6} adds r4, r0, 0 adds r5, r1, 0 adds r6, r2, 0 mov r10, r3 lsls r4, 24 lsrs r4, 24 lsls r5, 24 lsrs r5, 24 lsls r6, 24 lsrs r6, 24 mov r0, r10 lsls r0, 24 lsrs r0, 24 mov r10, r0 ldr r1, _080A1A24 @ =0x0201a000 mov r8, r1 add r8, r10 mov r0, r8 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _080A1A28 @ =gSprites mov r9, r1 add r0, r9 adds r1, r4, 0 bl StartSpriteAnim mov r1, r8 ldrb r0, [r1] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 add r1, r9 ldr r0, _080A1A2C @ =gUnknown_083C11D8 adds r4, r0 ldrb r2, [r4] lsls r2, 4 ldrb r3, [r1, 0x5] movs r0, 0xF ands r0, r3 orrs r0, r2 strb r0, [r1, 0x5] mov r0, r8 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 add r0, r9 adds r5, 0x10 strh r5, [r0, 0x20] mov r0, r8 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 add r0, r9 adds r6, 0x8 strh r6, [r0, 0x22] mov r0, r10 movs r1, 0 bl sub_80A1918 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080A1A24: .4byte 0x0201a000 _080A1A28: .4byte gSprites _080A1A2C: .4byte gUnknown_083C11D8 thumb_func_end sub_80A198C thumb_func_start sub_80A1A30 sub_80A1A30: @ 80A1A30 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} lsls r0, 24 lsrs r4, r0, 24 movs r0, 0 mov r9, r0 ldr r1, _080A1A98 @ =0x02018000 ldrb r0, [r1, 0xB] cmp r0, 0x1 bls _080A1B0A cmp r4, 0x9 bne _080A1A52 movs r3, 0x1 mov r9, r3 _080A1A52: movs r5, 0 movs r0, 0x80 lsls r0, 6 adds r0, r1 mov r8, r0 ldr r6, _080A1A9C @ =gSprites mov r10, r5 _080A1A60: lsls r1, r5, 20 movs r3, 0xB0 lsls r3, 15 adds r1, r3 asrs r1, 16 ldr r0, _080A1AA0 @ =gSpriteTemplate_83C1280 movs r2, 0x28 mov r3, r9 bl CreateSprite adds r1, r4, r5 mov r3, r8 adds r2, r1, r3 strb r0, [r2] adds r7, r1, 0 cmp r5, 0 bne _080A1AA4 adds r0, r4, r3 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r6 movs r1, 0x4 bl StartSpriteAnim b _080A1AD0 .align 2, 0 _080A1A98: .4byte 0x02018000 _080A1A9C: .4byte gSprites _080A1AA0: .4byte gSpriteTemplate_83C1280 _080A1AA4: cmp r5, 0x9 bne _080A1AC0 adds r0, r4, 0 adds r0, 0x9 add r0, r8 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r6 movs r1, 0x5 bl StartSpriteAnim b _080A1AD0 _080A1AC0: ldrb r1, [r2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r6 movs r1, 0x6 bl StartSpriteAnim _080A1AD0: mov r0, r8 adds r2, r7, r0 ldrb r1, [r2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r1, r6, 0 adds r1, 0x1C adds r0, r1 ldr r1, _080A1B18 @ =sub_80A1BC0 str r1, [r0] ldrb r1, [r2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r6 strh r4, [r0, 0x2E] ldrb r1, [r2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r6 mov r1, r10 strh r1, [r0, 0x30] adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0x9 bls _080A1A60 _080A1B0A: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080A1B18: .4byte sub_80A1BC0 thumb_func_end sub_80A1A30 thumb_func_start sub_80A1B1C sub_80A1B1C: @ 80A1B1C push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 movs r4, 0 _080A1B24: adds r0, r5, r4 lsls r0, 24 lsrs r0, 24 bl sub_80A18E4 adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x9 bls _080A1B24 pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_80A1B1C thumb_func_start sub_80A1B40 sub_80A1B40: @ 80A1B40 push {r4-r7,lr} mov r7, r8 push {r7} lsls r0, 24 lsrs r7, r0, 24 lsls r1, r7, 1 adds r1, r7 lsls r1, 24 ldr r0, _080A1BB4 @ =0x0201a009 ldrb r2, [r0] lsls r0, r2, 4 adds r0, r2 lsls r0, 2 ldr r2, _080A1BB8 @ =gSprites adds r0, r2 lsrs r7, r1, 24 movs r2, 0x80 lsls r2, 19 adds r1, r2 lsrs r1, 24 bl StartSpriteAnim movs r4, 0 adds r0, r7, 0x6 lsls r0, 24 mov r8, r0 _080A1B74: ldr r6, _080A1BBC @ =0x0201a00a adds r0, r4, r6 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r5, _080A1BB8 @ =gSprites adds r0, r5 mov r2, r8 lsrs r1, r2, 24 bl StartSpriteAnim adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x7 bls _080A1B74 ldrb r1, [r6, 0x8] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 adds r1, r7, 0x5 lsls r1, 24 lsrs r1, 24 bl StartSpriteAnim pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080A1BB4: .4byte 0x0201a009 _080A1BB8: .4byte gSprites _080A1BBC: .4byte 0x0201a00a thumb_func_end sub_80A1B40 thumb_func_start sub_80A1BC0 sub_80A1BC0: @ 80A1BC0 push {lr} adds r2, r0, 0 adds r0, 0x2A ldrb r0, [r0] subs r0, 0x4 lsls r0, 24 lsrs r0, 24 cmp r0, 0x2 bhi _080A1BF8 ldrh r0, [r2, 0x30] adds r0, 0x1 movs r1, 0x1F ands r0, r1 strh r0, [r2, 0x30] cmp r0, 0x18 ble _080A1BEC adds r3, r2, 0 adds r3, 0x3E ldrb r0, [r3] movs r1, 0x4 orrs r0, r1 b _080A1C06 _080A1BEC: adds r3, r2, 0 adds r3, 0x3E ldrb r1, [r3] movs r0, 0x5 negs r0, r0 b _080A1C04 _080A1BF8: movs r0, 0 strh r0, [r2, 0x30] adds r3, r2, 0 adds r3, 0x3E ldrb r1, [r3] subs r0, 0x5 _080A1C04: ands r0, r1 _080A1C06: strb r0, [r3] movs r1, 0x2E ldrsh r0, [r2, r1] cmp r0, 0x9 bne _080A1C1C ldr r0, _080A1C18 @ =0x02018000 adds r0, 0x79 b _080A1C20 .align 2, 0 _080A1C18: .4byte 0x02018000 _080A1C1C: ldr r0, _080A1C2C @ =0x02018000 adds r0, 0x7A _080A1C20: ldrb r0, [r0] lsls r0, 4 strh r0, [r2, 0x26] pop {r0} bx r0 .align 2, 0 _080A1C2C: .4byte 0x02018000 thumb_func_end sub_80A1BC0 thumb_func_start sub_80A1C30 sub_80A1C30: @ 80A1C30 push {r4-r7,lr} lsls r0, 24 lsrs r4, r0, 24 lsls r0, r4, 2 adds r0, r4 lsls r0, 25 lsrs r3, r0, 24 adds r4, r3, 0 adds r0, r3, 0 adds r0, 0xA cmp r3, r0 bge _080A1C82 ldr r5, _080A1C88 @ =gSprites movs r7, 0x5 negs r7, r7 ldr r6, _080A1C8C @ =0x0201a009 _080A1C50: adds r2, r3, r6 ldrb r1, [r2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 movs r1, 0 strh r1, [r0, 0x30] ldrb r0, [r2] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r5 adds r1, 0x3E ldrb r2, [r1] adds r0, r7, 0 ands r0, r2 strb r0, [r1] adds r0, r3, 0x1 lsls r0, 24 lsrs r3, r0, 24 adds r0, r4, 0 adds r0, 0xA cmp r3, r0 blt _080A1C50 _080A1C82: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080A1C88: .4byte gSprites _080A1C8C: .4byte 0x0201a009 thumb_func_end sub_80A1C30 thumb_func_start pokemon_ailments_get_primary pokemon_ailments_get_primary: @ 80A1C90 push {lr} adds r1, r0, 0 movs r0, 0x88 ands r0, r1 cmp r0, 0 beq _080A1CA0 movs r0, 0x1 b _080A1CD2 _080A1CA0: movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _080A1CAC movs r0, 0x2 b _080A1CD2 _080A1CAC: movs r0, 0x7 ands r0, r1 cmp r0, 0 beq _080A1CB8 movs r0, 0x3 b _080A1CD2 _080A1CB8: movs r0, 0x20 ands r0, r1 cmp r0, 0 beq _080A1CC4 movs r0, 0x4 b _080A1CD2 _080A1CC4: movs r0, 0x10 ands r0, r1 cmp r0, 0 bne _080A1CD0 movs r0, 0 b _080A1CD2 _080A1CD0: movs r0, 0x5 _080A1CD2: pop {r1} bx r1 thumb_func_end pokemon_ailments_get_primary thumb_func_start GetMonStatusAndPokerus GetMonStatusAndPokerus: @ 80A1CD8 push {r4,lr} adds r4, r0, 0 movs r1, 0x39 bl GetMonData cmp r0, 0 bne _080A1CEA movs r0, 0x7 b _080A1D12 _080A1CEA: adds r0, r4, 0 movs r1, 0x37 bl GetMonData bl pokemon_ailments_get_primary lsls r0, 24 lsrs r0, 24 cmp r0, 0 bne _080A1D12 adds r0, r4, 0 movs r1, 0 bl CheckPartyPokerus lsls r0, 24 cmp r0, 0 bne _080A1D10 movs r0, 0 b _080A1D12 _080A1D10: movs r0, 0x6 _080A1D12: pop {r4} pop {r1} bx r1 thumb_func_end GetMonStatusAndPokerus thumb_func_start sub_80A1D18 sub_80A1D18: @ 80A1D18 push {r4,r5,lr} sub sp, 0x64 mov r0, sp bl sub_809F678 mov r0, sp bl GetMonStatusAndPokerus lsls r0, 24 lsrs r0, 24 cmp r0, 0 beq _080A1D58 subs r0, 0x1 lsls r0, 24 lsrs r5, r0, 24 ldr r4, _080A1D50 @ =0x0201a01d ldrb r0, [r4] cmp r0, 0xFF bne _080A1D60 ldr r0, _080A1D54 @ =gSpriteTemplate_83C1304 movs r1, 0x40 movs r2, 0x98 movs r3, 0 bl CreateSprite strb r0, [r4] b _080A1D60 .align 2, 0 _080A1D50: .4byte 0x0201a01d _080A1D54: .4byte gSpriteTemplate_83C1304 _080A1D58: movs r0, 0x1D bl sub_80A18E4 b _080A1D74 _080A1D60: ldr r0, _080A1D7C @ =0x0201a01d ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _080A1D80 @ =gSprites adds r0, r1 adds r1, r5, 0 bl StartSpriteAnim _080A1D74: add sp, 0x64 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080A1D7C: .4byte 0x0201a01d _080A1D80: .4byte gSprites thumb_func_end sub_80A1D18 thumb_func_start sub_80A1D84 sub_80A1D84: @ 80A1D84 push {r4-r6,lr} adds r5, r0, 0 ldr r1, _080A1DC0 @ =0x00007533 ldr r2, _080A1DC4 @ =gSummaryScreenMonMarkingsPalette adds r0, r1, 0 bl sub_80F7920 adds r4, r0, 0 ldr r6, _080A1DC8 @ =gUnknown_020384F4 str r4, [r6] cmp r4, 0 beq _080A1DBA adds r0, r5, 0 movs r1, 0x8 bl GetMonData adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 bl StartSpriteAnim ldr r1, [r6] movs r0, 0x3C strh r0, [r1, 0x20] movs r0, 0x1A strh r0, [r1, 0x22] _080A1DBA: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080A1DC0: .4byte 0x00007533 _080A1DC4: .4byte gSummaryScreenMonMarkingsPalette _080A1DC8: .4byte gUnknown_020384F4 thumb_func_end sub_80A1D84 thumb_func_start sub_80A1DCC sub_80A1DCC: @ 80A1DCC push {r4,lr} adds r4, r0, 0 ldr r0, _080A1DE4 @ =gUnknown_020384F4 ldr r0, [r0] bl DestroySprite adds r0, r4, 0 bl sub_80A1D84 pop {r4} pop {r0} bx r0 .align 2, 0 _080A1DE4: .4byte gUnknown_020384F4 thumb_func_end sub_80A1DCC thumb_func_start sub_80A1DE8 sub_80A1DE8: @ 80A1DE8 push {r4,lr} movs r1, 0x26 bl GetMonData lsls r0, 16 lsrs r0, 16 bl ball_number_to_ball_processing_index adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 adds r0, r4, 0 bl sub_80478DC lsls r0, r4, 1 adds r0, r4 lsls r0, 3 ldr r1, _080A1E48 @ =gSpriteTemplate_820AAB4 adds r0, r1 movs r1, 0x6 movs r2, 0x88 movs r3, 0 bl CreateSprite ldr r2, _080A1E4C @ =0x02018000 strb r0, [r2, 0xD] ldr r3, _080A1E50 @ =gSprites ldrb r1, [r2, 0xD] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r1, r3, 0 adds r1, 0x1C adds r0, r1 ldr r1, _080A1E54 @ =SpriteCallbackDummy str r1, [r0] ldrb r1, [r2, 0xD] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 ldrb r1, [r0, 0x5] movs r2, 0xC orrs r1, r2 strb r1, [r0, 0x5] pop {r4} pop {r0} bx r0 .align 2, 0 _080A1E48: .4byte gSpriteTemplate_820AAB4 _080A1E4C: .4byte 0x02018000 _080A1E50: .4byte gSprites _080A1E54: .4byte SpriteCallbackDummy thumb_func_end sub_80A1DE8 thumb_func_start sub_80A1E58 sub_80A1E58: @ 80A1E58 push {r4,lr} adds r2, r0, 0 lsls r1, 24 lsrs r1, 24 cmp r1, 0xFF beq _080A1E92 ldr r3, _080A1E6C @ =gUnknown_083C15BC ldrb r0, [r3] adds r4, r2, 0x5 b _080A1E74 .align 2, 0 _080A1E6C: .4byte gUnknown_083C15BC _080A1E70: adds r3, 0x4 ldrb r0, [r3] _080A1E74: cmp r0, 0xFF beq _080A1E7C cmp r0, r1 bne _080A1E70 _080A1E7C: movs r0, 0xFC strb r0, [r2] movs r0, 0x4 strb r0, [r2, 0x1] ldrb r0, [r3, 0x1] strb r0, [r2, 0x2] ldrb r0, [r3, 0x2] strb r0, [r2, 0x3] ldrb r0, [r3, 0x3] strb r0, [r2, 0x4] adds r2, r4, 0 _080A1E92: adds r0, r2, 0 pop {r4} pop {r1} bx r1 thumb_func_end sub_80A1E58 thumb_func_start sub_80A1E9C sub_80A1E9C: @ 80A1E9C push {r4-r6,lr} sub sp, 0x4 adds r6, r0, 0 adds r5, r1, 0 lsls r4, r2, 24 lsrs r4, 24 mov r1, sp adds r1, 0x1 mov r2, sp adds r2, 0x2 mov r0, sp bl sub_8072CD4 adds r0, r6, 0 adds r1, r4, 0 bl sub_80A1E58 adds r6, r0, 0 adds r1, r5, 0 bl StringCopy adds r6, r0, 0 cmp r4, 0xFF beq _080A1EEC movs r0, 0xFC strb r0, [r6] movs r0, 0x4 strb r0, [r6, 0x1] mov r0, sp ldrb r0, [r0] strb r0, [r6, 0x2] mov r0, sp ldrb r0, [r0, 0x1] strb r0, [r6, 0x3] mov r0, sp ldrb r0, [r0, 0x2] strb r0, [r6, 0x4] movs r0, 0xFF strb r0, [r6, 0x5] adds r6, 0x5 _080A1EEC: adds r0, r6, 0 add sp, 0x4 pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_80A1E9C thumb_func_start sub_80A1EF8 sub_80A1EF8: @ 80A1EF8 push {r4-r6,lr} mov r6, r9 mov r5, r8 push {r5,r6} sub sp, 0x4 mov r9, r0 adds r4, r1, 0 adds r5, r2, 0 adds r6, r3, 0 ldr r3, [sp, 0x1C] lsls r4, 24 lsrs r4, 24 lsls r5, 24 lsrs r5, 24 lsls r6, 16 lsrs r6, 16 ldr r0, _080A1F44 @ =gStringVar4 mov r8, r0 mov r1, r9 adds r2, r4, 0 str r3, [sp] bl sub_80A1E9C ldr r3, [sp] lsls r3, 24 lsrs r3, 24 mov r0, r8 adds r1, r5, 0 adds r2, r6, 0 bl MenuPrint_PixelCoords add sp, 0x4 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080A1F44: .4byte gStringVar4 thumb_func_end sub_80A1EF8 thumb_func_start sub_80A1F48 sub_80A1F48: @ 80A1F48 push {r4-r6,lr} mov r6, r9 mov r5, r8 push {r5,r6} sub sp, 0x4 mov r9, r0 adds r4, r1, 0 adds r5, r2, 0 adds r6, r3, 0 ldr r3, [sp, 0x1C] lsls r4, 24 lsrs r4, 24 lsls r5, 24 lsrs r5, 24 lsls r6, 24 lsrs r6, 24 lsls r3, 16 lsrs r3, 16 ldr r0, _080A1F94 @ =gStringVar4 mov r8, r0 mov r1, r9 adds r2, r4, 0 str r3, [sp] bl sub_80A1E9C mov r0, r8 adds r1, r5, 0 adds r2, r6, 0 ldr r3, [sp] bl sub_8072BD8 add sp, 0x4 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080A1F94: .4byte gStringVar4 thumb_func_end sub_80A1F48 thumb_func_start sub_80A1F98 sub_80A1F98: @ 80A1F98 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x4 mov r10, r0 mov r8, r1 adds r4, r2, 0 adds r2, r3, 0 ldr r5, [sp, 0x24] ldr r6, [sp, 0x28] ldr r7, [sp, 0x2C] mov r0, r8 lsls r0, 24 lsrs r0, 24 mov r8, r0 lsls r4, 24 lsrs r4, 24 lsls r2, 24 lsrs r2, 24 lsls r5, 24 lsrs r5, 24 lsls r6, 16 lsrs r6, 16 ldr r0, _080A1FF4 @ =gStringVar1 mov r9, r0 mov r1, r10 adds r3, r4, 0 bl ConvertIntToDecimalStringN str r7, [sp] mov r0, r9 mov r1, r8 adds r2, r5, 0 adds r3, r6, 0 bl sub_80A1EF8 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 _080A1FF4: .4byte gStringVar1 thumb_func_end sub_80A1F98 thumb_func_start sub_80A1FF8 sub_80A1FF8: @ 80A1FF8 push {r4-r6,lr} mov r6, r9 mov r5, r8 push {r5,r6} mov r9, r0 adds r4, r1, 0 adds r5, r2, 0 adds r6, r3, 0 lsls r4, 24 lsrs r4, 24 lsls r5, 24 lsrs r5, 24 lsls r6, 24 lsrs r6, 24 ldr r0, _080A2038 @ =gStringVar4 mov r8, r0 mov r1, r9 adds r2, r4, 0 bl sub_80A1E9C mov r0, r8 adds r1, r5, 0 adds r2, r6, 0 bl MenuPrint pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080A2038: .4byte gStringVar4 thumb_func_end sub_80A1FF8 thumb_func_start PokemonSummaryScreen_CopyPokemonLevel PokemonSummaryScreen_CopyPokemonLevel: @ 80A203C push {r4,lr} sub sp, 0xC adds r4, r0, 0 lsls r1, 24 lsrs r1, 24 movs r0, 0x34 strb r0, [r4] adds r4, 0x1 cmp r1, 0 bne _080A2052 movs r1, 0x5 _080A2052: mov r0, sp bl ConvertIntToDecimalString adds r0, r4, 0 mov r1, sp movs r2, 0xE bl sub_80A1E9C adds r4, r0, 0 ldr r1, _080A2074 @ =gOtherText_Comma bl StringCopy adds r4, r0, 0 add sp, 0xC pop {r4} pop {r1} bx r1 .align 2, 0 _080A2074: .4byte gOtherText_Comma thumb_func_end PokemonSummaryScreen_CopyPokemonLevel thumb_func_start sub_80A2078 sub_80A2078: @ 80A2078 push {lr} ldr r3, _080A209C @ =gUnknown_03005CF0 ldr r2, _080A20A0 @ =gTasks lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 ldr r2, [r1] str r2, [r3] ldr r2, _080A20A4 @ =sub_80A20A8 str r2, [r1] lsls r0, 24 lsrs r0, 24 bl _call_via_r2 pop {r0} bx r0 .align 2, 0 _080A209C: .4byte gUnknown_03005CF0 _080A20A0: .4byte gTasks _080A20A4: .4byte sub_80A20A8 thumb_func_end sub_80A2078 thumb_func_start sub_80A20A8 sub_80A20A8: @ 80A20A8 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 bl sub_8055870 cmp r0, 0x1 beq _080A20C6 ldr r1, _080A20CC @ =gTasks lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _080A20D0 @ =gUnknown_03005CF0 ldr r1, [r1] str r1, [r0] _080A20C6: pop {r4} pop {r0} bx r0 .align 2, 0 _080A20CC: .4byte gTasks _080A20D0: .4byte gUnknown_03005CF0 thumb_func_end sub_80A20A8 .align 2, 0 @ Don't pad with nop.