.include "asm/macros.s" .syntax unified .text thumb_func_start CB2_MainMenu CB2_MainMenu: @ 80096C4 push {lr} bl RunTasks bl AnimateSprites bl BuildOamBuffer bl UpdatePaletteFade pop {r0} bx r0 thumb_func_end CB2_MainMenu thumb_func_start VBlankCB_MainMenu VBlankCB_MainMenu: @ 80096DC push {lr} bl LoadOam bl ProcessSpriteCopyRequests bl TransferPlttBuffer pop {r0} bx r0 thumb_func_end VBlankCB_MainMenu thumb_func_start CB2_InitMainMenu CB2_InitMainMenu: @ 80096F0 push {lr} movs r0, 0 bl InitMainMenu pop {r0} bx r0 thumb_func_end CB2_InitMainMenu thumb_func_start sub_80096FC sub_80096FC: @ 80096FC push {lr} movs r0, 0x1 bl InitMainMenu pop {r0} bx r0 thumb_func_end sub_80096FC thumb_func_start InitMainMenu InitMainMenu: @ 8009708 push {r4,r5,lr} sub sp, 0xC adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 movs r0, 0 bl SetVBlankCallback movs r0, 0x80 lsls r0, 19 movs r1, 0 strh r1, [r0] adds r0, 0xC strh r1, [r0] subs r0, 0x2 strh r1, [r0] subs r0, 0x2 strh r1, [r0] adds r0, 0x10 strh r1, [r0] adds r0, 0x2 strh r1, [r0] subs r0, 0x6 strh r1, [r0] adds r0, 0x2 strh r1, [r0] subs r0, 0x6 strh r1, [r0] adds r0, 0x2 strh r1, [r0] add r0, sp, 0x4 strh r1, [r0] ldr r1, _080097BC str r0, [r1] movs r0, 0xC0 lsls r0, 19 str r0, [r1, 0x4] ldr r0, _080097C0 str r0, [r1, 0x8] ldr r0, [r1, 0x8] movs r5, 0 str r5, [sp, 0x8] add r0, sp, 0x8 str r0, [r1] movs r0, 0xE0 lsls r0, 19 str r0, [r1, 0x4] ldr r0, _080097C4 str r0, [r1, 0x8] ldr r0, [r1, 0x8] add r0, sp, 0x4 strh r5, [r0] str r0, [r1] ldr r0, _080097C8 str r0, [r1, 0x4] ldr r0, _080097CC str r0, [r1, 0x8] ldr r0, [r1, 0x8] bl ResetPaletteFade ldr r0, _080097D0 movs r1, 0 movs r2, 0x20 bl LoadPalette bl remove_some_task bl ResetTasks bl ResetSpriteData bl FreeAllSpritePalettes ldr r0, _080097D4 bl SetUpWindowConfig ldr r0, _080097D8 bl sub_8071C4C cmp r4, 0 beq _080097DC movs r0, 0x1 negs r0, r0 str r5, [sp] movs r1, 0 movs r2, 0x10 movs r3, 0 bl BeginNormalPaletteFade b _080097EE .align 2, 0 _080097BC: .4byte 0x040000d4 _080097C0: .4byte 0x8100c000 _080097C4: .4byte 0x85000100 _080097C8: .4byte 0x05000002 _080097CC: .4byte 0x810001ff _080097D0: .4byte gUnknown_081E797C _080097D4: .4byte gWindowConfig_81E6C3C _080097D8: .4byte gWindowConfig_81E6CE4 _080097DC: movs r0, 0x1 negs r0, r0 ldr r1, _08009858 str r1, [sp] movs r1, 0 movs r2, 0x10 movs r3, 0 bl BeginNormalPaletteFade _080097EE: ldr r0, _0800985C movs r1, 0 strh r1, [r0] adds r0, 0x4 strh r1, [r0] adds r0, 0x4 strh r1, [r0] adds r0, 0x2 strh r1, [r0] adds r0, 0x6 strh r1, [r0] adds r0, 0x2 strh r1, [r0] adds r0, 0x2 strh r1, [r0] ldr r3, _08009860 ldrh r2, [r3] strh r1, [r3] ldr r4, _08009864 ldrh r0, [r4] movs r1, 0x1 orrs r0, r1 strh r0, [r4] strh r2, [r3] ldr r0, _08009868 bl SetVBlankCallback ldr r0, _0800986C bl SetMainCallback2 movs r1, 0x80 lsls r1, 19 movs r2, 0xC5 lsls r2, 6 adds r0, r2, 0 strh r0, [r1] ldr r0, _08009870 movs r1, 0 bl CreateTask lsls r0, 24 lsrs r0, 24 ldr r2, _08009874 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 movs r0, 0 strh r0, [r1, 0xA] add sp, 0xC pop {r4,r5} pop {r1} bx r1 .align 2, 0 _08009858: .4byte 0x0000ffff _0800985C: .4byte 0x04000040 _08009860: .4byte 0x04000208 _08009864: .4byte 0x04000200 _08009868: .4byte VBlankCB_MainMenu _0800986C: .4byte CB2_MainMenu _08009870: .4byte Task_CheckSave _08009874: .4byte 0x03004b20 thumb_func_end InitMainMenu thumb_func_start Task_CheckSave Task_CheckSave: @ 8009878 push {r4-r7,lr} mov r7, r8 push {r7} lsls r0, 24 lsrs r5, r0, 24 ldr r0, _080098D4 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 lsls r0, 24 lsrs r6, r0, 24 cmp r6, 0 beq _08009894 b _080099FC _08009894: ldr r7, _080098D8 strh r6, [r7] ldr r0, _080098DC mov r8, r0 strh r6, [r0] ldr r1, _080098E0 ldr r2, _080098E4 adds r0, r2, 0 strh r0, [r1] adds r1, 0x2 movs r0, 0x31 strh r0, [r1] adds r1, 0x6 movs r0, 0xF1 strh r0, [r1] ldr r0, _080098E8 strh r6, [r0] adds r1, 0x4 movs r0, 0x7 strh r0, [r1] ldr r0, _080098EC ldrh r4, [r0] cmp r4, 0x2 beq _0800993C cmp r4, 0x2 bgt _080098F0 cmp r4, 0 beq _080099AC cmp r4, 0x1 beq _080098FA b _080099AC .align 2, 0 _080098D4: .4byte 0x0202f388 _080098D8: .4byte 0x04000040 _080098DC: .4byte 0x04000044 _080098E0: .4byte 0x04000048 _080098E4: .4byte 0x00001111 _080098E8: .4byte 0x04000052 _080098EC: .4byte 0x03005eb8 _080098F0: cmp r4, 0x4 beq _080099C8 cmp r4, 0xFF beq _08009950 b _080099AC _080098FA: bl sub_806918C cmp r0, 0x1 bne _0800991C ldr r2, _08009918 lsls r3, r5, 2 adds r0, r3, r5 lsls r0, 3 adds r0, r2 movs r1, 0x2 strh r1, [r0, 0x8] adds r1, r2, 0 adds r2, r3, 0 b _0800992A .align 2, 0 _08009918: .4byte 0x03004b20 _0800991C: ldr r0, _08009934 lsls r2, r5, 2 adds r1, r2, r5 lsls r1, 3 adds r1, r0 strh r4, [r1, 0x8] adds r1, r0, 0 _0800992A: adds r0, r2, r5 lsls r0, 3 adds r0, r1 ldr r1, _08009938 b _080099FA .align 2, 0 _08009934: .4byte 0x03004b20 _08009938: .4byte Task_CheckRtc _0800993C: movs r0, 0x2 movs r1, 0xE movs r2, 0x1B movs r3, 0x13 bl DrawDefaultWindow ldr r0, _0800994C b _080099D6 .align 2, 0 _0800994C: .4byte gUnknown_0840DEC2 _08009950: movs r0, 0x2 movs r1, 0xE movs r2, 0x1B movs r3, 0x13 bl DrawDefaultWindow ldr r0, _08009994 movs r1, 0x3 movs r2, 0xF bl AddTextPrinterWithCallbackForMessage ldr r2, _08009998 adds r0, r2, 0 strh r0, [r7] ldr r1, _0800999C adds r0, r1, 0 mov r2, r8 strh r0, [r2] ldr r1, _080099A0 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r4, r0, r1 movs r5, 0x1 strh r5, [r4, 0x8] ldr r0, _080099A4 str r0, [r4] bl sub_806918C cmp r0, 0x1 bne _080099A8 movs r0, 0x2 strh r0, [r4, 0x8] b _080099FC .align 2, 0 _08009994: .4byte gUnknown_0840DE81 _08009998: .4byte 0x000011df _0800999C: .4byte 0x0000719f _080099A0: .4byte 0x03004b20 _080099A4: .4byte Task_WaitForSaveErrorAck _080099A8: strh r5, [r4, 0x8] b _080099FC _080099AC: ldr r1, _080099C0 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r1 movs r1, 0 strh r1, [r0, 0x8] ldr r1, _080099C4 b _080099FA .align 2, 0 _080099C0: .4byte 0x03004b20 _080099C4: .4byte Task_CheckRtc _080099C8: movs r0, 0x2 movs r1, 0xE movs r2, 0x1B movs r3, 0x13 bl DrawDefaultWindow ldr r0, _08009A08 _080099D6: movs r1, 0x3 movs r2, 0xF bl AddTextPrinterWithCallbackForMessage ldr r1, _08009A0C adds r0, r1, 0 strh r0, [r7] ldr r2, _08009A10 adds r0, r2, 0 mov r1, r8 strh r0, [r1] ldr r1, _08009A14 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r1 strh r6, [r0, 0x8] ldr r1, _08009A18 _080099FA: str r1, [r0] _080099FC: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08009A08: .4byte gUnknown_0840DEE5 _08009A0C: .4byte 0x000011df _08009A10: .4byte 0x0000719f _08009A14: .4byte 0x03004b20 _08009A18: .4byte Task_WaitForSaveErrorAck thumb_func_end Task_CheckSave thumb_func_start Task_WaitForSaveErrorAck Task_WaitForSaveErrorAck: @ 8009A1C push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 bl sub_8072080 lsls r0, 24 cmp r0, 0 beq _08009A52 ldr r0, _08009A58 ldrh r1, [r0, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _08009A52 movs r0, 0x2 movs r1, 0xE movs r2, 0x1B movs r3, 0x13 bl Reset ldr r0, _08009A5C lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 ldr r0, _08009A60 str r0, [r1] _08009A52: pop {r4} pop {r0} bx r0 .align 2, 0 _08009A58: .4byte 0x03001770 _08009A5C: .4byte 0x03004b20 _08009A60: .4byte Task_CheckRtc thumb_func_end Task_WaitForSaveErrorAck thumb_func_start Task_CheckRtc Task_CheckRtc: @ 8009A64 push {r4-r7,lr} lsls r0, 24 lsrs r4, r0, 24 adds r5, r4, 0 ldr r0, _08009AC0 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0 bne _08009B10 ldr r6, _08009AC4 strh r2, [r6] ldr r7, _08009AC8 strh r2, [r7] ldr r1, _08009ACC ldr r3, _08009AD0 adds r0, r3, 0 strh r0, [r1] adds r1, 0x2 movs r0, 0x31 strh r0, [r1] adds r1, 0x6 movs r0, 0xF1 strh r0, [r1] ldr r0, _08009AD4 strh r2, [r0] adds r1, 0x4 movs r0, 0x7 strh r0, [r1] bl RtcGetErrorStatus movs r1, 0xFF lsls r1, 4 ands r1, r0 cmp r1, 0 bne _08009AE0 ldr r0, _08009AD8 lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 ldr r0, _08009ADC str r0, [r1] b _08009B10 .align 2, 0 _08009AC0: .4byte 0x0202f388 _08009AC4: .4byte 0x04000040 _08009AC8: .4byte 0x04000044 _08009ACC: .4byte 0x04000048 _08009AD0: .4byte 0x00001111 _08009AD4: .4byte 0x04000052 _08009AD8: .4byte 0x03004b20 _08009ADC: .4byte Task_DrawMainMenu _08009AE0: movs r0, 0x2 movs r1, 0xE movs r2, 0x1B movs r3, 0x13 bl DrawDefaultWindow ldr r0, _08009B18 movs r1, 0x3 movs r2, 0xF bl AddTextPrinterWithCallbackForMessage ldr r1, _08009B1C adds r0, r1, 0 strh r0, [r6] ldr r3, _08009B20 adds r0, r3, 0 strh r0, [r7] ldr r1, _08009B24 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r1 ldr r1, _08009B28 str r1, [r0] _08009B10: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08009B18: .4byte gUnknown_0840DF10 _08009B1C: .4byte 0x000011df _08009B20: .4byte 0x0000719f _08009B24: .4byte 0x03004b20 _08009B28: .4byte Task_WaitForRtcErrorAck thumb_func_end Task_CheckRtc thumb_func_start Task_WaitForRtcErrorAck Task_WaitForRtcErrorAck: @ 8009B2C push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 bl sub_8072080 lsls r0, 24 cmp r0, 0 beq _08009B62 ldr r0, _08009B68 ldrh r1, [r0, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _08009B62 movs r0, 0x2 movs r1, 0xE movs r2, 0x1B movs r3, 0x13 bl Reset ldr r0, _08009B6C lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 ldr r0, _08009B70 str r0, [r1] _08009B62: pop {r4} pop {r0} bx r0 .align 2, 0 _08009B68: .4byte 0x03001770 _08009B6C: .4byte 0x03004b20 _08009B70: .4byte Task_DrawMainMenu thumb_func_end Task_WaitForRtcErrorAck thumb_func_start Task_DrawMainMenu Task_DrawMainMenu: @ 8009B74 push {r4,r5,lr} sub sp, 0x4 lsls r0, 24 lsrs r4, r0, 24 ldr r0, _08009BDC ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0 beq _08009B8E b _08009D20 _08009B8E: ldr r0, _08009BE0 strh r2, [r0] adds r0, 0x4 strh r2, [r0] ldr r1, _08009BE4 ldr r3, _08009BE8 adds r0, r3, 0 strh r0, [r1] adds r1, 0x2 movs r0, 0x31 strh r0, [r1] adds r1, 0x6 movs r0, 0xF1 strh r0, [r1] ldr r0, _08009BEC strh r2, [r0] adds r1, 0x4 movs r0, 0x7 strh r0, [r1] mov r0, sp strh r2, [r0] movs r1, 0xFE movs r2, 0x2 bl LoadPalette ldr r0, _08009BF0 ldrb r0, [r0, 0x8] cmp r0, 0 bne _08009BF8 mov r1, sp ldr r2, _08009BF4 adds r0, r2, 0 strh r0, [r1] mov r0, sp movs r1, 0xF1 movs r2, 0x2 bl LoadPalette b _08009C0A .align 2, 0 _08009BDC: .4byte 0x0202f388 _08009BE0: .4byte 0x04000040 _08009BE4: .4byte 0x04000048 _08009BE8: .4byte 0x00001111 _08009BEC: .4byte 0x04000052 _08009BF0: .4byte 0x02024ea4 _08009BF4: .4byte 0x00007e04 _08009BF8: mov r1, sp ldr r3, _08009C54 adds r0, r3, 0 strh r0, [r1] mov r0, sp movs r1, 0xF1 movs r2, 0x2 bl LoadPalette _08009C0A: ldr r2, _08009C58 lsls r1, r4, 2 adds r0, r1, r4 lsls r0, 3 adds r0, r2 movs r2, 0x8 ldrsh r0, [r0, r2] adds r5, r1, 0 cmp r0, 0x1 beq _08009C64 cmp r0, 0x1 ble _08009C26 cmp r0, 0x2 beq _08009CB8 _08009C26: movs r0, 0x1 movs r1, 0 movs r2, 0x1C movs r3, 0x3 bl DrawDefaultWindow ldr r0, _08009C5C movs r1, 0x2 movs r2, 0x1 bl PrintMainMenuItem movs r0, 0x1 movs r1, 0x4 movs r2, 0x1C movs r3, 0x7 bl DrawDefaultWindow ldr r0, _08009C60 movs r1, 0x2 movs r2, 0x5 bl PrintMainMenuItem b _08009D14 .align 2, 0 _08009C54: .4byte 0x0000547f _08009C58: .4byte 0x03004b20 _08009C5C: .4byte gUnknown_0840DCD0 _08009C60: .4byte gUnknown_0840DCE2 _08009C64: movs r0, 0x1 movs r1, 0 movs r2, 0x1C movs r3, 0x7 bl DrawDefaultWindow ldr r0, _08009CAC movs r1, 0x2 movs r2, 0x1 bl PrintMainMenuItem movs r0, 0x1 movs r1, 0x8 movs r2, 0x1C movs r3, 0xB bl DrawDefaultWindow ldr r0, _08009CB0 movs r1, 0x2 movs r2, 0x9 bl PrintMainMenuItem movs r0, 0x1 movs r1, 0xC movs r2, 0x1C movs r3, 0xF bl DrawDefaultWindow ldr r0, _08009CB4 movs r1, 0x2 movs r2, 0xD bl PrintMainMenuItem bl PrintSaveFileInfo b _08009D14 .align 2, 0 _08009CAC: .4byte gUnknown_0840DCD9 _08009CB0: .4byte gUnknown_0840DCD0 _08009CB4: .4byte gUnknown_0840DCE2 _08009CB8: movs r0, 0x1 movs r1, 0 movs r2, 0x1C movs r3, 0x7 bl DrawDefaultWindow ldr r0, _08009D28 movs r1, 0x2 movs r2, 0x1 bl PrintMainMenuItem movs r0, 0x1 movs r1, 0x8 movs r2, 0x1C movs r3, 0xB bl DrawDefaultWindow ldr r0, _08009D2C movs r1, 0x2 movs r2, 0x9 bl PrintMainMenuItem movs r0, 0x1 movs r1, 0xC movs r2, 0x1C movs r3, 0xF bl DrawDefaultWindow ldr r0, _08009D30 movs r1, 0x2 movs r2, 0xD bl PrintMainMenuItem movs r0, 0x1 movs r1, 0x10 movs r2, 0x1C movs r3, 0x13 bl DrawDefaultWindow ldr r0, _08009D34 movs r1, 0x2 movs r2, 0x11 bl PrintMainMenuItem bl PrintSaveFileInfo _08009D14: ldr r0, _08009D38 adds r1, r5, r4 lsls r1, 3 adds r1, r0 ldr r0, _08009D3C str r0, [r1] _08009D20: add sp, 0x4 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08009D28: .4byte gUnknown_0840DCD9 _08009D2C: .4byte gUnknown_0840DCD0 _08009D30: .4byte gUnknown_0840DCE9 _08009D34: .4byte gUnknown_0840DCE2 _08009D38: .4byte 0x03004b20 _08009D3C: .4byte Task_HighlightCurrentMenuItem thumb_func_end Task_DrawMainMenu thumb_func_start Task_HighlightCurrentMenuItem Task_HighlightCurrentMenuItem: @ 8009D40 push {r4,lr} lsls r0, 24 lsrs r0, 24 ldr r1, _08009D64 lsls r4, r0, 2 adds r4, r0 lsls r4, 3 adds r4, r1 ldrb r0, [r4, 0x8] ldrb r1, [r4, 0xA] bl HighlightCurrentMenuItem ldr r0, _08009D68 str r0, [r4] pop {r4} pop {r0} bx r0 .align 2, 0 _08009D64: .4byte 0x03004b20 _08009D68: .4byte Task_MainMenuProcessKeyInput thumb_func_end Task_HighlightCurrentMenuItem thumb_func_start MainMenuProcessKeyInput MainMenuProcessKeyInput: @ 8009D6C push {r4-r7,lr} sub sp, 0x4 lsls r0, 24 lsrs r4, r0, 24 ldr r1, _08009DA8 ldrh r2, [r1, 0x2E] movs r0, 0x1 ands r0, r2 mov r12, r1 cmp r0, 0 beq _08009DB4 movs r0, 0x5 bl audio_play movs r0, 0x1 negs r0, r0 movs r1, 0 str r1, [sp] movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade ldr r1, _08009DAC lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _08009DB0 str r1, [r0] b _08009E74 .align 2, 0 _08009DA8: .4byte 0x03001770 _08009DAC: .4byte 0x03004b20 _08009DB0: .4byte MainMenuPressedA _08009DB4: movs r0, 0x2 ands r0, r2 cmp r0, 0 beq _08009E00 movs r0, 0x5 bl audio_play movs r0, 0x1 negs r0, r0 ldr r1, _08009DF0 str r1, [sp] movs r1, 0 movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade ldr r1, _08009DF4 movs r0, 0xF0 strh r0, [r1] adds r1, 0x4 movs r0, 0xA0 strh r0, [r1] ldr r1, _08009DF8 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _08009DFC str r1, [r0] b _08009E74 .align 2, 0 _08009DF0: .4byte 0x0000ffff _08009DF4: .4byte 0x04000040 _08009DF8: .4byte 0x03004b20 _08009DFC: .4byte MainMenuPressedB _08009E00: ldr r0, _08009E20 lsls r2, r4, 2 adds r1, r2, r4 lsls r1, 3 adds r1, r0 movs r3, 0x8 ldrsh r1, [r1, r3] adds r6, r0, 0 cmp r1, 0x1 beq _08009E24 cmp r1, 0x1 ble _08009E1C cmp r1, 0x2 beq _08009E28 _08009E1C: movs r5, 0x2 b _08009E2A .align 2, 0 _08009E20: .4byte 0x03004b20 _08009E24: movs r5, 0x3 b _08009E2A _08009E28: movs r5, 0x4 _08009E2A: mov r7, r12 ldrh r1, [r7, 0x2E] movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _08009E4E adds r0, r2, r4 lsls r0, 3 adds r1, r0, r6 ldrh r3, [r1, 0xA] movs r7, 0xA ldrsh r0, [r1, r7] cmp r0, 0 ble _08009E4E subs r0, r3, 0x1 strh r0, [r1, 0xA] movs r0, 0x1 b _08009E76 _08009E4E: mov r0, r12 ldrh r1, [r0, 0x2E] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _08009E74 adds r0, r2, r4 lsls r0, 3 adds r2, r0, r6 movs r3, 0xA ldrsh r1, [r2, r3] subs r0, r5, 0x1 cmp r1, r0 bge _08009E74 ldrh r0, [r2, 0xA] adds r0, 0x1 strh r0, [r2, 0xA] movs r0, 0x1 b _08009E76 _08009E74: movs r0, 0 _08009E76: add sp, 0x4 pop {r4-r7} pop {r1} bx r1 thumb_func_end MainMenuProcessKeyInput thumb_func_start Task_MainMenuProcessKeyInput Task_MainMenuProcessKeyInput: @ 8009E80 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 adds r0, r4, 0 bl MainMenuProcessKeyInput lsls r0, 24 cmp r0, 0 beq _08009EA0 ldr r0, _08009EA8 lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 ldr r0, _08009EAC str r0, [r1] _08009EA0: pop {r4} pop {r0} bx r0 .align 2, 0 _08009EA8: .4byte 0x03004b20 _08009EAC: .4byte Task_HighlightCurrentMenuItem thumb_func_end Task_MainMenuProcessKeyInput thumb_func_start MainMenuPressedA MainMenuPressedA: @ 8009EB0 push {r4,r5,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, _08009EEC ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _08009FA4 ldr r0, _08009EF0 lsls r2, r4, 2 adds r1, r2, r4 lsls r1, 3 adds r1, r0 movs r5, 0x8 ldrsh r3, [r1, r5] adds r5, r0, 0 cmp r3, 0x1 beq _08009EF4 cmp r3, 0x1 ble _08009EDE cmp r3, 0x2 beq _08009F06 _08009EDE: movs r0, 0xA ldrsh r1, [r1, r0] cmp r1, 0 beq _08009F1E cmp r1, 0x1 bne _08009F1E b _08009F26 .align 2, 0 _08009EEC: .4byte 0x0202f388 _08009EF0: .4byte 0x03004b20 _08009EF4: movs r0, 0xA ldrsh r1, [r1, r0] cmp r1, 0x1 beq _08009F1E cmp r1, 0x1 ble _08009F1A cmp r1, 0x2 bne _08009F1A b _08009F26 _08009F06: movs r0, 0xA ldrsh r1, [r1, r0] cmp r1, 0x1 beq _08009F1E cmp r1, 0x1 ble _08009F1A cmp r1, 0x2 beq _08009F22 cmp r1, 0x3 beq _08009F26 _08009F1A: movs r0, 0x1 b _08009F28 _08009F1E: movs r0, 0 b _08009F28 _08009F22: movs r0, 0x3 b _08009F28 _08009F26: movs r0, 0x2 _08009F28: cmp r0, 0x1 beq _08009F5C cmp r0, 0x1 ble _08009F38 cmp r0, 0x2 beq _08009F78 cmp r0, 0x3 beq _08009F98 _08009F38: ldr r0, _08009F50 movs r1, 0 strh r1, [r0] ldr r0, _08009F54 strh r1, [r0] adds r0, r2, r4 lsls r0, 3 adds r0, r5 ldr r1, _08009F58 str r1, [r0] b _08009FA4 .align 2, 0 _08009F50: .4byte 0x0202eac8 _08009F54: .4byte 0x0202eec8 _08009F58: .4byte Task_Birch1 _08009F5C: ldr r0, _08009F6C movs r1, 0 strh r1, [r0] ldr r0, _08009F70 strh r1, [r0] ldr r0, _08009F74 b _08009F80 .align 2, 0 _08009F6C: .4byte 0x0202eac8 _08009F70: .4byte 0x0202eec8 _08009F74: .4byte CB2_ContinueSavedGame _08009F78: ldr r0, _08009F8C ldr r1, _08009F90 str r1, [r0, 0x8] ldr r0, _08009F94 _08009F80: bl SetMainCallback2 adds r0, r4, 0 bl DestroyTask b _08009FA4 .align 2, 0 _08009F8C: .4byte 0x03001770 _08009F90: .4byte sub_80096FC _08009F94: .4byte CB2_InitOptionMenu _08009F98: ldr r0, _08009FAC bl SetMainCallback2 adds r0, r4, 0 bl DestroyTask _08009FA4: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08009FAC: .4byte CB2_InitMysteryEventMenu thumb_func_end MainMenuPressedA thumb_func_start MainMenuPressedB MainMenuPressedB: @ 8009FB0 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, _08009FD4 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _08009FCE ldr r0, _08009FD8 bl SetMainCallback2 adds r0, r4, 0 bl DestroyTask _08009FCE: pop {r4} pop {r0} bx r0 .align 2, 0 _08009FD4: .4byte 0x0202f388 _08009FD8: .4byte CB2_InitTitleScreen thumb_func_end MainMenuPressedB thumb_func_start HighlightCurrentMenuItem HighlightCurrentMenuItem: @ 8009FDC push {r4,lr} lsls r0, 24 lsrs r3, r0, 24 lsls r1, 24 lsrs r2, r1, 24 ldr r1, _0800A008 ldr r4, _0800A00C adds r0, r4, 0 strh r0, [r1] cmp r3, 0x1 beq _0800A028 cmp r3, 0x1 ble _08009FFA cmp r3, 0x2 beq _0800A064 _08009FFA: cmp r2, 0 beq _0800A002 cmp r2, 0x1 beq _0800A018 _0800A002: ldr r1, _0800A010 ldr r2, _0800A014 b _0800A0A8 .align 2, 0 _0800A008: .4byte 0x04000040 _0800A00C: .4byte 0x000009e7 _0800A010: .4byte 0x04000044 _0800A014: .4byte 0x0000011f _0800A018: ldr r1, _0800A020 ldr r4, _0800A024 adds r0, r4, 0 b _0800A0AA .align 2, 0 _0800A020: .4byte 0x04000044 _0800A024: .4byte 0x0000213f _0800A028: cmp r2, 0x1 beq _0800A044 cmp r2, 0x1 ble _0800A034 cmp r2, 0x2 beq _0800A054 _0800A034: ldr r1, _0800A03C ldr r2, _0800A040 b _0800A0A8 .align 2, 0 _0800A03C: .4byte 0x04000044 _0800A040: .4byte 0x0000013f _0800A044: ldr r1, _0800A04C ldr r4, _0800A050 adds r0, r4, 0 b _0800A0AA .align 2, 0 _0800A04C: .4byte 0x04000044 _0800A050: .4byte 0x0000415f _0800A054: ldr r1, _0800A05C ldr r2, _0800A060 b _0800A0A8 .align 2, 0 _0800A05C: .4byte 0x04000044 _0800A060: .4byte 0x0000617f _0800A064: cmp r2, 0x1 beq _0800A084 cmp r2, 0x1 ble _0800A074 cmp r2, 0x2 beq _0800A094 cmp r2, 0x3 beq _0800A0A4 _0800A074: ldr r1, _0800A07C ldr r4, _0800A080 adds r0, r4, 0 b _0800A0AA .align 2, 0 _0800A07C: .4byte 0x04000044 _0800A080: .4byte 0x0000013f _0800A084: ldr r1, _0800A08C ldr r2, _0800A090 b _0800A0A8 .align 2, 0 _0800A08C: .4byte 0x04000044 _0800A090: .4byte 0x0000415f _0800A094: ldr r1, _0800A09C ldr r4, _0800A0A0 adds r0, r4, 0 b _0800A0AA .align 2, 0 _0800A09C: .4byte 0x04000044 _0800A0A0: .4byte 0x0000617f _0800A0A4: ldr r1, _0800A0B4 ldr r2, _0800A0B8 _0800A0A8: adds r0, r2, 0 _0800A0AA: strh r0, [r1] pop {r4} pop {r0} bx r0 .align 2, 0 _0800A0B4: .4byte 0x04000044 _0800A0B8: .4byte 0x0000819f thumb_func_end HighlightCurrentMenuItem thumb_func_start PrintMainMenuItem PrintMainMenuItem: @ 800A0BC push {r4-r6,lr} sub sp, 0x20 adds r4, r0, 0 lsls r1, 24 lsrs r5, r1, 24 lsls r2, 24 lsrs r2, 24 mov r1, sp movs r0, 0xFC strb r0, [r1] movs r0, 0x1 strb r0, [r1, 0x1] movs r0, 0xE strb r0, [r1, 0x2] movs r3, 0 _0800A0DA: adds r0, r3, 0x3 mov r6, sp adds r1, r6, r0 adds r0, r4, r3 ldrb r0, [r0] strb r0, [r1] adds r0, r3, 0x1 lsls r0, 24 lsrs r3, r0, 24 cmp r3, 0x19 bls _0800A0DA mov r1, sp movs r0, 0xFF strb r0, [r1, 0x1D] mov r0, sp adds r1, r5, 0 bl Print add sp, 0x20 pop {r4-r6} pop {r0} bx r0 thumb_func_end PrintMainMenuItem thumb_func_start PrintSaveFileInfo PrintSaveFileInfo: @ 800A108 push {lr} bl PrintPlayerName bl PrintPokedexCount bl PrintPlayTime bl PrintBadgeCount pop {r0} bx r0 thumb_func_end PrintSaveFileInfo thumb_func_start PrintPlayerName PrintPlayerName: @ 800A120 push {lr} ldr r0, _0800A13C movs r1, 0x2 movs r2, 0x3 bl Print ldr r0, _0800A140 movs r1, 0x9 movs r2, 0x3 bl Print pop {r0} bx r0 .align 2, 0 _0800A13C: .4byte gUnknown_0840DF7C _0800A140: .4byte 0x02024ea4 thumb_func_end PrintPlayerName thumb_func_start PrintPlayTime PrintPlayTime: @ 800A144 push {r4,lr} sub sp, 0x30 ldr r0, _0800A180 movs r1, 0x10 movs r2, 0x3 bl Print ldr r0, _0800A184 ldrh r1, [r0, 0xE] ldrb r2, [r0, 0x10] mov r0, sp movs r3, 0x1 bl FormatPlayTime add r4, sp, 0x10 adds r0, r4, 0 mov r1, sp movs r2, 0x30 movs r3, 0x1 bl sub_8072C74 adds r0, r4, 0 movs r1, 0x16 movs r2, 0x3 bl Print add sp, 0x30 pop {r4} pop {r0} bx r0 .align 2, 0 _0800A180: .4byte gUnknown_0840DF8B _0800A184: .4byte 0x02024ea4 thumb_func_end PrintPlayTime thumb_func_start PrintPokedexCount PrintPokedexCount: @ 800A188 push {lr} sub sp, 0x10 ldr r0, _0800A1BC movs r1, 0x2 movs r2, 0x5 bl Print bl GetPokedexSeenCount adds r1, r0, 0 lsls r1, 16 lsrs r1, 16 mov r0, sp movs r2, 0x12 movs r3, 0 bl sub_8072C14 mov r0, sp movs r1, 0x9 movs r2, 0x5 bl Print add sp, 0x10 pop {r0} bx r0 .align 2, 0 _0800A1BC: .4byte gUnknown_0840DF83 thumb_func_end PrintPokedexCount thumb_func_start PrintBadgeCount PrintBadgeCount: @ 800A1C0 push {lr} sub sp, 0x10 ldr r0, _0800A1F0 movs r1, 0x10 movs r2, 0x5 bl Print bl GetBadgeCount adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 mov r0, sp bl ConvertIntToDecimalString mov r0, sp movs r1, 0xCD movs r2, 0x28 movs r3, 0x1 bl sub_80729D8 add sp, 0x10 pop {r0} bx r0 .align 2, 0 _0800A1F0: .4byte gUnknown_0840DF90 thumb_func_end PrintBadgeCount thumb_func_start Task_Birch1 Task_Birch1: @ 800A1F4 push {r4,r5,lr} sub sp, 0x4 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldr r0, _0800A2B0 bl SetUpWindowConfig ldr r0, _0800A2B4 bl sub_8071C4C ldr r0, _0800A2B8 movs r1, 0 strh r1, [r0] adds r0, 0x4 strh r1, [r0] adds r0, 0x4 strh r1, [r0] adds r0, 0x2 strh r1, [r0] adds r0, 0x6 strh r1, [r0] adds r0, 0x2 strh r1, [r0] adds r0, 0x2 strh r1, [r0] ldr r0, _0800A2BC movs r1, 0xC0 lsls r1, 19 bl LZ77UnCompVram ldr r0, _0800A2C0 ldr r1, _0800A2C4 bl LZ77UnCompVram ldr r0, _0800A2C8 movs r1, 0 movs r2, 0x40 bl LoadPalette ldr r0, _0800A2CC movs r1, 0x1 movs r2, 0x10 bl LoadPalette bl remove_some_task bl ResetSpriteData bl FreeAllSpritePalettes adds r0, r4, 0 bl AddBirchSpeechObjects movs r0, 0x1 negs r0, r0 movs r5, 0 str r5, [sp] movs r1, 0 movs r2, 0x10 movs r3, 0 bl BeginNormalPaletteFade ldr r1, _0800A2D0 ldr r2, _0800A2D4 adds r0, r2, 0 strh r0, [r1] subs r1, 0xA movs r2, 0x9A lsls r2, 5 adds r0, r2, 0 strh r0, [r1] ldr r1, _0800A2D8 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 strh r5, [r0, 0x10] ldr r1, _0800A2DC str r1, [r0] movs r1, 0xFF strh r1, [r0, 0xC] strh r1, [r0, 0xE] movs r1, 0xD8 strh r1, [r0, 0x16] movs r0, 0xBB lsls r0, 1 bl sub_8075474 add sp, 0x4 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0800A2B0: .4byte gWindowConfig_81E6C3C _0800A2B4: .4byte gWindowConfig_81E6CE4 _0800A2B8: .4byte 0x04000040 _0800A2BC: .4byte gUnknown_081E768C _0800A2C0: .4byte gUnknown_081E7834 _0800A2C4: .4byte 0x06003800 _0800A2C8: .4byte gUnknown_081E764C _0800A2CC: .4byte gUnknown_081E796C _0800A2D0: .4byte 0x0400000a _0800A2D4: .4byte 0x00000703 _0800A2D8: .4byte 0x03004b20 _0800A2DC: .4byte task_new_game_prof_birch_speech_2 thumb_func_end Task_Birch1 thumb_func_start task_new_game_prof_birch_speech_2 task_new_game_prof_birch_speech_2: @ 800A2E0 push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 ldr r1, _0800A300 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r4, r0, r1 ldrh r1, [r4, 0x16] movs r2, 0x16 ldrsh r0, [r4, r2] cmp r0, 0 beq _0800A304 subs r0, r1, 0x1 strh r0, [r4, 0x16] b _0800A34A .align 2, 0 _0800A300: .4byte 0x03004b20 _0800A304: ldrb r0, [r4, 0x18] ldr r2, _0800A350 lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r2 movs r0, 0x88 strh r0, [r1, 0x20] movs r0, 0x3C strh r0, [r1, 0x22] adds r3, r1, 0 adds r3, 0x3E ldrb r2, [r3] subs r0, 0x41 ands r0, r2 strb r0, [r3] ldrb r2, [r1, 0x1] movs r0, 0xD negs r0, r0 ands r0, r2 movs r2, 0x4 orrs r0, r2 strb r0, [r1, 0x1] adds r0, r5, 0 movs r1, 0xA bl sub_800B534 adds r0, r5, 0 movs r1, 0x14 bl sub_800B6C0 movs r0, 0x50 strh r0, [r4, 0x16] ldr r0, _0800A354 str r0, [r4] _0800A34A: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0800A350: .4byte 0x02020004 _0800A354: .4byte task_new_game_prof_birch_speech_3 thumb_func_end task_new_game_prof_birch_speech_2 thumb_func_start task_new_game_prof_birch_speech_3 task_new_game_prof_birch_speech_3: @ 800A358 push {r4,lr} lsls r0, 24 lsrs r0, 24 ldr r2, _0800A398 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r4, r1, r2 movs r1, 0x12 ldrsh r0, [r4, r1] cmp r0, 0 beq _0800A3BA ldr r2, _0800A39C movs r1, 0x18 ldrsh r0, [r4, r1] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r2 ldrb r2, [r1, 0x1] movs r0, 0xD negs r0, r0 ands r0, r2 strb r0, [r1, 0x1] ldrh r1, [r4, 0x16] movs r2, 0x16 ldrsh r0, [r4, r2] cmp r0, 0 beq _0800A3A0 subs r0, r1, 0x1 strh r0, [r4, 0x16] b _0800A3BA .align 2, 0 _0800A398: .4byte 0x03004b20 _0800A39C: .4byte 0x02020004 _0800A3A0: movs r0, 0x2 movs r1, 0xD movs r2, 0x1B movs r3, 0x12 bl DrawDefaultWindow ldr r0, _0800A3C0 movs r1, 0x3 movs r2, 0xE bl AddTextPrinterWithCallbackForMessage ldr r0, _0800A3C4 str r0, [r4] _0800A3BA: pop {r4} pop {r0} bx r0 .align 2, 0 _0800A3C0: .4byte gUnknown_081C6D78 _0800A3C4: .4byte task_new_game_prof_birch_speech_4 thumb_func_end task_new_game_prof_birch_speech_3 thumb_func_start task_new_game_prof_birch_speech_4 task_new_game_prof_birch_speech_4: @ 800A3C8 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, _0800A404 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _0800A3FE movs r0, 0x18 bl sub_8072CF4 lsls r0, 24 cmp r0, 0 beq _0800A3FE ldr r1, _0800A408 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _0800A40C str r1, [r0] ldr r0, _0800A410 movs r1, 0x3 movs r2, 0xE bl AddTextPrinterWithCallbackForMessage _0800A3FE: pop {r4} pop {r0} bx r0 .align 2, 0 _0800A404: .4byte 0x0202f388 _0800A408: .4byte 0x03004b20 _0800A40C: .4byte task_new_game_prof_birch_speech_5 _0800A410: .4byte gUnknown_081C6DF8 thumb_func_end task_new_game_prof_birch_speech_4 thumb_func_start task_new_game_prof_birch_speech_5 task_new_game_prof_birch_speech_5: @ 800A414 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 movs r0, 0x18 bl sub_8072CF4 lsls r0, 24 cmp r0, 0 beq _0800A434 ldr r0, _0800A43C lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 ldr r0, _0800A440 str r0, [r1] _0800A434: pop {r4} pop {r0} bx r0 .align 2, 0 _0800A43C: .4byte 0x03004b20 _0800A440: .4byte task_new_game_prof_birch_speech_6 thumb_func_end task_new_game_prof_birch_speech_5 thumb_func_start task_new_game_prof_birch_speech_6 task_new_game_prof_birch_speech_6: @ 800A444 push {r4,r5,lr} sub sp, 0x10 lsls r0, 24 lsrs r0, 24 ldr r1, _0800A4A8 lsls r4, r0, 2 adds r4, r0 lsls r4, 3 adds r4, r1 ldrb r0, [r4, 0x1A] ldr r1, _0800A4AC lsls r2, r0, 4 adds r2, r0 lsls r2, 2 adds r2, r1 movs r5, 0 movs r1, 0x68 strh r1, [r2, 0x20] movs r1, 0x48 strh r1, [r2, 0x22] movs r1, 0x3E adds r1, r2 mov r12, r1 ldrb r3, [r1] movs r1, 0x5 negs r1, r1 ands r1, r3 mov r3, r12 strb r1, [r3] strh r5, [r2, 0x2E] ldrb r1, [r2, 0x5] lsrs r1, 4 str r5, [sp] str r5, [sp, 0x4] movs r2, 0x20 str r2, [sp, 0x8] ldr r2, _0800A4B0 str r2, [sp, 0xC] movs r2, 0x70 movs r3, 0x3A bl AddTextPrinterForMessage ldr r0, _0800A4B4 str r0, [r4] strh r5, [r4, 0x16] add sp, 0x10 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0800A4A8: .4byte 0x03004b20 _0800A4AC: .4byte 0x02020004 _0800A4B0: .4byte 0x0000ffff _0800A4B4: .4byte task_new_game_prof_birch_speech_7 thumb_func_end task_new_game_prof_birch_speech_6 thumb_func_start task_new_game_prof_birch_speech_7 task_new_game_prof_birch_speech_7: @ 800A4B8 push {r4,r5,lr} lsls r0, 24 lsrs r4, r0, 24 bl sub_8075374 lsls r0, 24 cmp r0, 0 beq _0800A4E4 ldr r0, _0800A518 lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r5, r1, r0 movs r1, 0x16 ldrsh r0, [r5, r1] cmp r0, 0x5F ble _0800A4E4 ldr r0, _0800A51C bl sub_807206C ldr r0, _0800A520 str r0, [r5] _0800A4E4: ldr r1, _0800A518 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r2, r0, r1 ldrh r3, [r2, 0x16] movs r0, 0x16 ldrsh r1, [r2, r0] ldr r0, _0800A524 cmp r1, r0 bgt _0800A510 adds r0, r3, 0x1 strh r0, [r2, 0x16] lsls r0, 16 asrs r0, 16 cmp r0, 0x20 bne _0800A510 movs r0, 0xAF lsls r0, 1 movs r1, 0 bl cry_related _0800A510: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0800A518: .4byte 0x03004b20 _0800A51C: .4byte gUnknown_0840DFF7 _0800A520: .4byte task_new_game_prof_birch_speech_8 _0800A524: .4byte 0x00003fff thumb_func_end task_new_game_prof_birch_speech_7 thumb_func_start task_new_game_prof_birch_speech_8 task_new_game_prof_birch_speech_8: @ 800A528 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 movs r0, 0x18 bl sub_8072CF4 lsls r0, 24 cmp r0, 0 beq _0800A552 ldr r0, _0800A558 movs r1, 0x3 movs r2, 0xE bl AddTextPrinterWithCallbackForMessage ldr r1, _0800A55C lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _0800A560 str r1, [r0] _0800A552: pop {r4} pop {r0} bx r0 .align 2, 0 _0800A558: .4byte gUnknown_081C6E1A _0800A55C: .4byte 0x03004b20 _0800A560: .4byte task_new_game_prof_birch_speech_9 thumb_func_end task_new_game_prof_birch_speech_8 thumb_func_start task_new_game_prof_birch_speech_9 task_new_game_prof_birch_speech_9: @ 800A564 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 movs r0, 0x18 bl sub_8072CF4 lsls r0, 24 cmp r0, 0 beq _0800A59A movs r0, 0x2 movs r1, 0xD movs r2, 0x1B movs r3, 0x12 bl DrawDefaultWindow ldr r0, _0800A5A0 movs r1, 0x3 movs r2, 0xE bl AddTextPrinterWithCallbackForMessage ldr r1, _0800A5A4 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _0800A5A8 str r1, [r0] _0800A59A: pop {r4} pop {r0} bx r0 .align 2, 0 _0800A5A0: .4byte gUnknown_081C6FCB _0800A5A4: .4byte 0x03004b20 _0800A5A8: .4byte task_new_game_prof_birch_speech_10 thumb_func_end task_new_game_prof_birch_speech_9 thumb_func_start task_new_game_prof_birch_speech_10 task_new_game_prof_birch_speech_10: @ 800A5AC push {r4-r6,lr} lsls r0, 24 lsrs r6, r0, 24 movs r0, 0x18 bl sub_8072CF4 lsls r0, 24 cmp r0, 0 beq _0800A612 ldr r5, _0800A618 ldr r0, _0800A61C lsls r4, r6, 2 adds r4, r6 lsls r4, 3 adds r4, r0 movs r1, 0x18 ldrsh r0, [r4, r1] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r5 ldrb r3, [r1, 0x1] movs r2, 0xD negs r2, r2 adds r0, r2, 0 ands r0, r3 movs r3, 0x4 orrs r0, r3 strb r0, [r1, 0x1] movs r0, 0x1A ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 ldrb r1, [r0, 0x1] ands r2, r1 orrs r2, r3 strb r2, [r0, 0x1] adds r0, r6, 0 movs r1, 0x2 bl sub_800B458 adds r0, r6, 0 movs r1, 0x1 bl sub_800B614 movs r0, 0x40 strh r0, [r4, 0x16] ldr r0, _0800A620 str r0, [r4] _0800A612: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0800A618: .4byte 0x02020004 _0800A61C: .4byte 0x03004b20 _0800A620: .4byte task_new_game_prof_birch_speech_11 thumb_func_end task_new_game_prof_birch_speech_10 thumb_func_start task_new_game_prof_birch_speech_11 task_new_game_prof_birch_speech_11: @ 800A624 push {lr} lsls r0, 24 lsrs r0, 24 ldr r2, _0800A64C lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r2, r1, r2 ldrh r3, [r2, 0x10] movs r0, 0x10 ldrsh r1, [r2, r0] movs r0, 0x3C negs r0, r0 cmp r1, r0 beq _0800A654 subs r1, r3, 0x2 strh r1, [r2, 0x10] ldr r0, _0800A650 strh r1, [r0] b _0800A65C .align 2, 0 _0800A64C: .4byte 0x03004b20 _0800A650: .4byte 0x04000014 _0800A654: ldr r0, _0800A660 strh r0, [r2, 0x10] ldr r0, _0800A664 str r0, [r2] _0800A65C: pop {r0} bx r0 .align 2, 0 _0800A660: .4byte 0x0000ffc4 _0800A664: .4byte task_new_game_prof_birch_speech_12 thumb_func_end task_new_game_prof_birch_speech_11 thumb_func_start task_new_game_prof_birch_speech_12 task_new_game_prof_birch_speech_12: @ 800A668 push {r4-r7,lr} lsls r0, 24 lsrs r0, 24 adds r5, r0, 0 ldr r1, _0800A6C0 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r4, r0, r1 movs r1, 0x12 ldrsh r0, [r4, r1] cmp r0, 0 beq _0800A70E ldr r2, _0800A6C4 movs r0, 0x18 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 adds r0, 0x3E ldrb r1, [r0] movs r7, 0x4 orrs r1, r7 strb r1, [r0] movs r0, 0x1A ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 adds r0, 0x3E ldrb r1, [r0] orrs r1, r7 strb r1, [r0] ldrh r0, [r4, 0x16] movs r1, 0x16 ldrsh r6, [r4, r1] cmp r6, 0 beq _0800A6C8 subs r0, 0x1 strh r0, [r4, 0x16] b _0800A70E .align 2, 0 _0800A6C0: .4byte 0x03004b20 _0800A6C4: .4byte 0x02020004 _0800A6C8: ldrb r3, [r4, 0x1C] lsls r1, r3, 4 adds r1, r3 lsls r1, 2 adds r1, r2 movs r0, 0xB4 strh r0, [r1, 0x20] movs r0, 0x3C strh r0, [r1, 0x22] movs r2, 0x3E adds r2, r1 mov r12, r2 ldrb r2, [r2] subs r0, 0x41 ands r0, r2 mov r2, r12 strb r0, [r2] ldrb r2, [r1, 0x1] movs r0, 0xD negs r0, r0 ands r0, r2 orrs r0, r7 strb r0, [r1, 0x1] strh r3, [r4, 0xC] strh r6, [r4, 0x14] adds r0, r5, 0 movs r1, 0x2 bl sub_800B534 adds r0, r5, 0 movs r1, 0x1 bl sub_800B6C0 ldr r0, _0800A714 str r0, [r4] _0800A70E: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0800A714: .4byte task_new_game_prof_birch_speech_13 thumb_func_end task_new_game_prof_birch_speech_12 thumb_func_start task_new_game_prof_birch_speech_13 task_new_game_prof_birch_speech_13: @ 800A718 push {lr} lsls r0, 24 lsrs r0, 24 ldr r2, _0800A750 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r3, r1, r2 movs r1, 0x12 ldrsh r0, [r3, r1] cmp r0, 0 beq _0800A74C ldr r2, _0800A754 movs r1, 0xC ldrsh r0, [r3, r1] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r2 ldrb r2, [r1, 0x1] movs r0, 0xD negs r0, r0 ands r0, r2 strb r0, [r1, 0x1] ldr r0, _0800A758 str r0, [r3] _0800A74C: pop {r0} bx r0 .align 2, 0 _0800A750: .4byte 0x03004b20 _0800A754: .4byte 0x02020004 _0800A758: .4byte task_new_game_prof_birch_speech_14 thumb_func_end task_new_game_prof_birch_speech_13 thumb_func_start task_new_game_prof_birch_speech_14 task_new_game_prof_birch_speech_14: @ 800A75C push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 movs r0, 0x2 movs r1, 0xD movs r2, 0x1B movs r3, 0x12 bl DrawDefaultWindow ldr r0, _0800A790 movs r1, 0x3 movs r2, 0xE bl AddTextPrinterWithCallbackForMessage ldr r1, _0800A794 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _0800A798 str r1, [r0] pop {r4} pop {r0} bx r0 .align 2, 0 _0800A790: .4byte gUnknown_081C6FD8 _0800A794: .4byte 0x03004b20 _0800A798: .4byte task_new_game_prof_birch_speech_15 thumb_func_end task_new_game_prof_birch_speech_14 thumb_func_start task_new_game_prof_birch_speech_15 task_new_game_prof_birch_speech_15: @ 800A79C push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 movs r0, 0x18 bl sub_8072CF4 lsls r0, 24 cmp r0, 0 beq _0800A7C4 movs r0, 0x2 movs r1, 0x4 bl CreateGenderMenu ldr r0, _0800A7CC lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 ldr r0, _0800A7D0 str r0, [r1] _0800A7C4: pop {r4} pop {r0} bx r0 .align 2, 0 _0800A7CC: .4byte 0x03004b20 _0800A7D0: .4byte task_new_game_prof_birch_speech_16 thumb_func_end task_new_game_prof_birch_speech_15 thumb_func_start task_new_game_prof_birch_speech_16 task_new_game_prof_birch_speech_16: @ 800A7D4 push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 bl GenderMenuProcessInput lsls r0, 24 asrs r4, r0, 24 cmp r4, 0 beq _0800A7EE cmp r4, 0x1 beq _0800A7EE lsls r4, r5, 2 b _0800A818 _0800A7EE: bl sub_8072DEC movs r0, 0x5 bl audio_play ldr r0, _0800A860 strb r4, [r0, 0x8] movs r0, 0x2 movs r1, 0x4 movs r2, 0x8 movs r3, 0x9 bl Reset ldr r1, _0800A864 lsls r2, r5, 2 adds r0, r2, r5 lsls r0, 3 adds r0, r1 ldr r1, _0800A868 str r1, [r0] adds r4, r2, 0 _0800A818: bl GetMenuCursorPos lsls r0, 24 lsrs r3, r0, 24 ldr r1, _0800A864 adds r0, r4, r5 lsls r0, 3 adds r4, r0, r1 movs r1, 0x14 ldrsh r0, [r4, r1] cmp r3, r0 beq _0800A85A strh r3, [r4, 0x14] ldr r2, _0800A86C movs r0, 0xC ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r2, [r0, 0x1] movs r1, 0xD negs r1, r1 ands r1, r2 movs r2, 0x4 orrs r1, r2 strb r1, [r0, 0x1] adds r0, r5, 0 movs r1, 0 bl sub_800B458 ldr r0, _0800A870 str r0, [r4] _0800A85A: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0800A860: .4byte 0x02024ea4 _0800A864: .4byte 0x03004b20 _0800A868: .4byte sub_800A974 _0800A86C: .4byte 0x02020004 _0800A870: .4byte task_new_game_prof_birch_speech_17 thumb_func_end task_new_game_prof_birch_speech_16 thumb_func_start task_new_game_prof_birch_speech_17 task_new_game_prof_birch_speech_17: @ 800A874 push {r4-r7,lr} lsls r0, 24 lsrs r6, r0, 24 ldr r1, _0800A8A4 lsls r0, r6, 2 adds r0, r6 lsls r0, 3 adds r4, r0, r1 ldrb r5, [r4, 0xC] movs r2, 0x12 ldrsh r0, [r4, r2] adds r7, r1, 0 cmp r0, 0 bne _0800A8AC ldr r0, _0800A8A8 lsls r1, r5, 4 adds r1, r5 lsls r1, 2 adds r1, r0 ldrh r0, [r1, 0x20] adds r0, 0x4 strh r0, [r1, 0x20] b _0800A912 .align 2, 0 _0800A8A4: .4byte 0x03004b20 _0800A8A8: .4byte 0x02020004 _0800A8AC: ldr r3, _0800A8CC lsls r0, r5, 4 adds r0, r5 lsls r0, 2 adds r0, r3 adds r0, 0x3E ldrb r1, [r0] movs r2, 0x4 orrs r1, r2 strb r1, [r0] movs r1, 0x14 ldrsh r0, [r4, r1] cmp r0, 0 beq _0800A8D0 ldrb r5, [r4, 0x1E] b _0800A8D2 .align 2, 0 _0800A8CC: .4byte 0x02020004 _0800A8D0: ldrb r5, [r4, 0x1C] _0800A8D2: lsls r2, r5, 4 adds r2, r5 lsls r2, 2 adds r2, r3 movs r0, 0xF0 strh r0, [r2, 0x20] movs r0, 0x3C strh r0, [r2, 0x22] adds r3, r2, 0 adds r3, 0x3E ldrb r1, [r3] subs r0, 0x41 ands r0, r1 strb r0, [r3] lsls r4, r6, 2 adds r4, r6 lsls r4, 3 adds r4, r7 strh r5, [r4, 0xC] ldrb r1, [r2, 0x1] movs r0, 0xD negs r0, r0 ands r0, r1 movs r1, 0x4 orrs r0, r1 strb r0, [r2, 0x1] adds r0, r6, 0 movs r1, 0 bl sub_800B534 ldr r0, _0800A918 str r0, [r4] _0800A912: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0800A918: .4byte task_new_game_prof_birch_speech_18 thumb_func_end task_new_game_prof_birch_speech_17 thumb_func_start task_new_game_prof_birch_speech_18 task_new_game_prof_birch_speech_18: @ 800A91C push {r4,lr} lsls r0, 24 lsrs r0, 24 ldr r2, _0800A948 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r3, r1, r2 ldrb r1, [r3, 0xC] ldr r2, _0800A94C lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r2, r0, r2 ldrh r1, [r2, 0x20] movs r4, 0x20 ldrsh r0, [r2, r4] cmp r0, 0xB4 ble _0800A950 subs r0, r1, 0x4 strh r0, [r2, 0x20] b _0800A96A .align 2, 0 _0800A948: .4byte 0x03004b20 _0800A94C: .4byte 0x02020004 _0800A950: movs r0, 0xB4 strh r0, [r2, 0x20] movs r1, 0x12 ldrsh r0, [r3, r1] cmp r0, 0 beq _0800A96A ldrb r0, [r2, 0x1] movs r1, 0xD negs r1, r1 ands r1, r0 strb r1, [r2, 0x1] ldr r0, _0800A970 str r0, [r3] _0800A96A: pop {r4} pop {r0} bx r0 .align 2, 0 _0800A970: .4byte task_new_game_prof_birch_speech_16 thumb_func_end task_new_game_prof_birch_speech_18 thumb_func_start sub_800A974 sub_800A974: @ 800A974 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 movs r0, 0x2 movs r1, 0xD movs r2, 0x1B movs r3, 0x12 bl DrawDefaultWindow ldr r0, _0800A9A8 movs r1, 0x3 movs r2, 0xE bl AddTextPrinterWithCallbackForMessage ldr r1, _0800A9AC lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _0800A9B0 str r1, [r0] pop {r4} pop {r0} bx r0 .align 2, 0 _0800A9A8: .4byte gUnknown_081C6FFA _0800A9AC: .4byte 0x03004b20 _0800A9B0: .4byte Task_800A9B4 thumb_func_end sub_800A974 thumb_func_start Task_800A9B4 Task_800A9B4: @ 800A9B4 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 movs r0, 0x18 bl sub_8072CF4 lsls r0, 24 cmp r0, 0 beq _0800A9DC movs r0, 0x2 movs r1, 0x1 bl CreateNameMenu ldr r0, _0800A9E4 lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 ldr r0, _0800A9E8 str r0, [r1] _0800A9DC: pop {r4} pop {r0} bx r0 .align 2, 0 _0800A9E4: .4byte 0x03004b20 _0800A9E8: .4byte sub_800A9EC thumb_func_end Task_800A9B4 thumb_func_start sub_800A9EC sub_800A9EC: @ 800A9EC push {r4-r6,lr} sub sp, 0x4 lsls r0, 24 lsrs r5, r0, 24 bl NameMenuProcessInput lsls r6, r0, 24 asrs r4, r6, 24 cmp r4, 0 beq _0800AA48 cmp r4, 0 bgt _0800AA0E movs r0, 0x1 negs r0, r0 cmp r4, r0 beq _0800AA78 b _0800AA9C _0800AA0E: cmp r4, 0x4 bgt _0800AA9C bl sub_8072DEC movs r0, 0x5 bl audio_play movs r0, 0x2 movs r1, 0x1 movs r2, 0x16 movs r3, 0xC bl Reset lsrs r0, r6, 24 bl set_default_player_name ldr r1, _0800AA40 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r1 ldr r1, _0800AA44 str r1, [r0] b _0800AA9C .align 2, 0 _0800AA40: .4byte 0x03004b20 _0800AA44: .4byte task_new_game_prof_birch_speech_part2_1 _0800AA48: movs r0, 0x5 bl audio_play movs r0, 0x1 negs r0, r0 str r4, [sp] movs r1, 0 movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade ldr r1, _0800AA70 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r1 ldr r1, _0800AA74 str r1, [r0] b _0800AA9C .align 2, 0 _0800AA70: .4byte 0x03004b20 _0800AA74: .4byte sub_800AAAC _0800AA78: bl sub_8072DEC movs r0, 0x5 bl audio_play movs r0, 0x2 movs r1, 0x1 movs r2, 0x16 movs r3, 0xC bl Reset ldr r0, _0800AAA4 lsls r1, r5, 2 adds r1, r5 lsls r1, 3 adds r1, r0 ldr r0, _0800AAA8 str r0, [r1] _0800AA9C: add sp, 0x4 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0800AAA4: .4byte 0x03004b20 _0800AAA8: .4byte task_new_game_prof_birch_speech_14 thumb_func_end sub_800A9EC thumb_func_start sub_800AAAC sub_800AAAC: @ 800AAAC push {r4,lr} sub sp, 0x8 ldr r0, _0800AAE0 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0 bne _0800AAD8 movs r0, 0x1 bl set_default_player_name ldr r1, _0800AAE4 ldrb r2, [r1, 0x8] str r4, [sp] ldr r0, _0800AAE8 str r0, [sp, 0x4] movs r0, 0 movs r3, 0 bl DoNamingScreen _0800AAD8: add sp, 0x8 pop {r4} pop {r0} bx r0 .align 2, 0 _0800AAE0: .4byte 0x0202f388 _0800AAE4: .4byte 0x02024ea4 _0800AAE8: .4byte new_game_prof_birch_speech_part2_start thumb_func_end sub_800AAAC thumb_func_start task_new_game_prof_birch_speech_part2_1 task_new_game_prof_birch_speech_part2_1: @ 800AAEC push {r4,r5,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 movs r0, 0x2 movs r1, 0xD movs r2, 0x1B movs r3, 0x12 bl DrawDefaultWindow ldr r5, _0800AB28 ldr r1, _0800AB2C adds r0, r5, 0 bl StringExpandPlaceholders adds r0, r5, 0 movs r1, 0x3 movs r2, 0xE bl AddTextPrinterWithCallbackForMessage ldr r1, _0800AB30 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _0800AB34 str r1, [r0] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0800AB28: .4byte 0x020234cc _0800AB2C: .4byte gUnknown_081C7017 _0800AB30: .4byte 0x03004b20 _0800AB34: .4byte sub_800AB38 thumb_func_end task_new_game_prof_birch_speech_part2_1 thumb_func_start sub_800AB38 sub_800AB38: @ 800AB38 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 movs r0, 0x18 bl sub_8072CF4 lsls r0, 24 cmp r0, 0 beq _0800AB62 movs r0, 0x2 movs r1, 0x1 movs r2, 0x1 bl sub_8072974 ldr r0, _0800AB68 lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 ldr r0, _0800AB6C str r0, [r1] _0800AB62: pop {r4} pop {r0} bx r0 .align 2, 0 _0800AB68: .4byte 0x03004b20 _0800AB6C: .4byte task_new_game_prof_birch_speech_part2_4 thumb_func_end sub_800AB38 thumb_func_start task_new_game_prof_birch_speech_part2_4 task_new_game_prof_birch_speech_part2_4: @ 800AB70 push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 bl FillWindowPixelBuffer lsls r0, 24 asrs r1, r0, 24 cmp r1, 0 beq _0800AB96 cmp r1, 0 bgt _0800AB90 movs r0, 0x1 negs r0, r0 cmp r1, r0 beq _0800ABF0 b _0800AC10 _0800AB90: cmp r1, 0x1 beq _0800ABF0 b _0800AC10 _0800AB96: movs r0, 0x5 bl audio_play movs r0, 0x2 movs r1, 0x1 movs r2, 0x8 movs r3, 0x7 bl Reset ldr r2, _0800ABE4 ldr r0, _0800ABE8 lsls r4, r5, 2 adds r4, r5 lsls r4, 3 adds r4, r0 movs r0, 0xC ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r2, [r0, 0x1] movs r1, 0xD negs r1, r1 ands r1, r2 movs r2, 0x4 orrs r1, r2 strb r1, [r0, 0x1] adds r0, r5, 0 movs r1, 0x2 bl sub_800B458 adds r0, r5, 0 movs r1, 0x1 bl sub_800B614 ldr r0, _0800ABEC str r0, [r4] b _0800AC10 .align 2, 0 _0800ABE4: .4byte 0x02020004 _0800ABE8: .4byte 0x03004b20 _0800ABEC: .4byte sub_800AC20 _0800ABF0: movs r0, 0x5 bl audio_play movs r0, 0x2 movs r1, 0x1 movs r2, 0x8 movs r3, 0x7 bl Reset ldr r0, _0800AC18 lsls r1, r5, 2 adds r1, r5 lsls r1, 3 adds r1, r0 ldr r0, _0800AC1C str r0, [r1] _0800AC10: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0800AC18: .4byte 0x03004b20 _0800AC1C: .4byte task_new_game_prof_birch_speech_14 thumb_func_end task_new_game_prof_birch_speech_part2_4 thumb_func_start sub_800AC20 sub_800AC20: @ 800AC20 push {lr} lsls r0, 24 lsrs r0, 24 ldr r2, _0800AC44 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r2, r1, r2 ldrh r1, [r2, 0x10] movs r3, 0x10 ldrsh r0, [r2, r3] cmp r0, 0 beq _0800AC4C adds r1, 0x2 strh r1, [r2, 0x10] ldr r0, _0800AC48 strh r1, [r0] b _0800AC50 .align 2, 0 _0800AC44: .4byte 0x03004b20 _0800AC48: .4byte 0x04000014 _0800AC4C: ldr r0, _0800AC54 str r0, [r2] _0800AC50: pop {r0} bx r0 .align 2, 0 _0800AC54: .4byte task_new_game_prof_birch_speech_part2_6 thumb_func_end sub_800AC20 thumb_func_start task_new_game_prof_birch_speech_part2_6 task_new_game_prof_birch_speech_part2_6: @ 800AC58 push {r4-r7,lr} lsls r0, 24 lsrs r6, r0, 24 ldr r1, _0800AD34 lsls r0, r6, 2 adds r0, r6 lsls r0, 3 adds r7, r0, r1 movs r1, 0x12 ldrsh r0, [r7, r1] cmp r0, 0 beq _0800AD2C ldr r5, _0800AD38 movs r2, 0x1C ldrsh r1, [r7, r2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 adds r0, 0x3E ldrb r1, [r0] movs r3, 0x4 mov r12, r3 mov r2, r12 orrs r1, r2 strb r1, [r0] movs r3, 0x1E ldrsh r1, [r7, r3] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 adds r0, 0x3E ldrb r1, [r0] orrs r1, r2 strb r1, [r0] ldrb r0, [r7, 0x18] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r5 movs r0, 0x88 strh r0, [r1, 0x20] movs r0, 0x40 strh r0, [r1, 0x22] adds r3, r1, 0 adds r3, 0x3E ldrb r2, [r3] movs r4, 0x5 negs r4, r4 adds r0, r4, 0 ands r0, r2 strb r0, [r3] ldrb r3, [r1, 0x1] movs r2, 0xD negs r2, r2 adds r0, r2, 0 ands r0, r3 mov r3, r12 orrs r0, r3 strb r0, [r1, 0x1] ldrb r1, [r7, 0x1A] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 movs r1, 0x68 strh r1, [r0, 0x20] movs r1, 0x48 strh r1, [r0, 0x22] adds r3, r0, 0 adds r3, 0x3E ldrb r1, [r3] ands r4, r1 strb r4, [r3] ldrb r1, [r0, 0x1] ands r2, r1 mov r1, r12 orrs r2, r1 strb r2, [r0, 0x1] adds r0, r6, 0 movs r1, 0x2 bl sub_800B534 adds r0, r6, 0 movs r1, 0x1 bl sub_800B6C0 movs r0, 0x2 movs r1, 0xD movs r2, 0x1B movs r3, 0x12 bl DrawDefaultWindow ldr r4, _0800AD3C ldr r1, _0800AD40 adds r0, r4, 0 bl StringExpandPlaceholders adds r0, r4, 0 movs r1, 0x3 movs r2, 0xE bl AddTextPrinterWithCallbackForMessage ldr r0, _0800AD44 str r0, [r7] _0800AD2C: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0800AD34: .4byte 0x03004b20 _0800AD38: .4byte 0x02020004 _0800AD3C: .4byte 0x020234cc _0800AD40: .4byte gUnknown_081C7025 _0800AD44: .4byte task_new_game_prof_birch_speech_part2_7 thumb_func_end task_new_game_prof_birch_speech_part2_6 thumb_func_start task_new_game_prof_birch_speech_part2_7 task_new_game_prof_birch_speech_part2_7: @ 800AD48 push {r4-r7,lr} lsls r0, 24 lsrs r5, r0, 24 ldr r1, _0800ADE8 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r4, r0, r1 movs r1, 0x12 ldrsh r0, [r4, r1] cmp r0, 0 beq _0800ADE0 ldr r7, _0800ADEC movs r1, 0x18 ldrsh r0, [r4, r1] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r7 ldrb r2, [r1, 0x1] movs r6, 0xD negs r6, r6 adds r0, r6, 0 ands r0, r2 strb r0, [r1, 0x1] movs r1, 0x1A ldrsh r0, [r4, r1] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r7 ldrb r2, [r1, 0x1] adds r0, r6, 0 ands r0, r2 strb r0, [r1, 0x1] movs r0, 0x18 bl sub_8072CF4 lsls r0, 24 cmp r0, 0 beq _0800ADE0 movs r0, 0x18 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r7 ldrb r2, [r0, 0x1] adds r1, r6, 0 ands r1, r2 movs r3, 0x4 orrs r1, r3 strb r1, [r0, 0x1] movs r1, 0x1A ldrsh r0, [r4, r1] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r7 ldrb r2, [r1, 0x1] adds r0, r6, 0 ands r0, r2 orrs r0, r3 strb r0, [r1, 0x1] adds r0, r5, 0 movs r1, 0x2 bl sub_800B458 adds r0, r5, 0 movs r1, 0x1 bl sub_800B614 movs r0, 0x40 strh r0, [r4, 0x16] ldr r0, _0800ADF0 str r0, [r4] _0800ADE0: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0800ADE8: .4byte 0x03004b20 _0800ADEC: .4byte 0x02020004 _0800ADF0: .4byte task_new_game_prof_birch_speech_part2_8 thumb_func_end task_new_game_prof_birch_speech_part2_7 thumb_func_start task_new_game_prof_birch_speech_part2_8 task_new_game_prof_birch_speech_part2_8: @ 800ADF4 push {r4-r7,lr} lsls r0, 24 lsrs r6, r0, 24 ldr r1, _0800AE4C lsls r0, r6, 2 adds r0, r6 lsls r0, 3 adds r4, r0, r1 movs r2, 0x12 ldrsh r0, [r4, r2] adds r7, r1, 0 cmp r0, 0 beq _0800AEC4 ldr r2, _0800AE50 movs r3, 0x18 ldrsh r1, [r4, r3] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 adds r0, 0x3E ldrb r1, [r0] movs r3, 0x4 orrs r1, r3 strb r1, [r0] movs r0, 0x1A ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 adds r0, 0x3E ldrb r1, [r0] orrs r1, r3 strb r1, [r0] ldrh r1, [r4, 0x16] movs r3, 0x16 ldrsh r0, [r4, r3] cmp r0, 0 beq _0800AE54 subs r0, r1, 0x1 strh r0, [r4, 0x16] b _0800AEC4 .align 2, 0 _0800AE4C: .4byte 0x03004b20 _0800AE50: .4byte 0x02020004 _0800AE54: ldr r0, _0800AE60 ldrb r0, [r0, 0x8] cmp r0, 0 beq _0800AE64 ldrb r5, [r4, 0x1E] b _0800AE66 .align 2, 0 _0800AE60: .4byte 0x02024ea4 _0800AE64: ldrb r5, [r4, 0x1C] _0800AE66: lsls r1, r5, 4 adds r1, r5 lsls r1, 2 adds r1, r2 movs r0, 0x78 strh r0, [r1, 0x20] movs r0, 0x3C strh r0, [r1, 0x22] adds r3, r1, 0 adds r3, 0x3E ldrb r2, [r3] subs r0, 0x41 ands r0, r2 strb r0, [r3] ldrb r2, [r1, 0x1] movs r0, 0xD negs r0, r0 ands r0, r2 movs r2, 0x4 orrs r0, r2 strb r0, [r1, 0x1] lsls r4, r6, 2 adds r4, r6 lsls r4, 3 adds r4, r7 strh r5, [r4, 0xC] adds r0, r6, 0 movs r1, 0x2 bl sub_800B534 adds r0, r6, 0 movs r1, 0x1 bl sub_800B6C0 movs r0, 0x2 movs r1, 0xD movs r2, 0x1B movs r3, 0x12 bl DrawDefaultWindow ldr r0, _0800AECC movs r1, 0x3 movs r2, 0xE bl AddTextPrinterWithCallbackForMessage ldr r0, _0800AED0 str r0, [r4] _0800AEC4: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0800AECC: .4byte gUnknown_081C7074 _0800AED0: .4byte task_new_game_prof_birch_speech_part2_9 thumb_func_end task_new_game_prof_birch_speech_part2_8 thumb_func_start task_new_game_prof_birch_speech_part2_9 task_new_game_prof_birch_speech_part2_9: @ 800AED4 push {r4-r7,lr} sub sp, 0x4 lsls r0, 24 lsrs r0, 24 ldr r2, _0800AF6C lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r6, r1, r2 movs r1, 0x12 ldrsh r0, [r6, r1] cmp r0, 0 beq _0800AF64 ldr r7, _0800AF70 movs r1, 0xC ldrsh r0, [r6, r1] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r7 ldrb r2, [r1, 0x1] movs r0, 0xD negs r0, r0 ands r0, r2 strb r0, [r1, 0x1] movs r0, 0x18 bl sub_8072CF4 lsls r0, 24 cmp r0, 0 beq _0800AF64 ldrb r0, [r6, 0xC] lsls r4, r0, 4 adds r4, r0 lsls r4, 2 adds r5, r4, r7 ldrb r1, [r5, 0x1] movs r0, 0x4 negs r0, r0 ands r0, r1 movs r1, 0x1 orrs r0, r1 strb r0, [r5, 0x1] adds r0, r7, 0 adds r0, 0x10 adds r0, r4, r0 ldr r1, _0800AF74 str r1, [r0] adds r0, r5, 0 bl InitSpriteAffineAnim adds r0, r5, 0 movs r1, 0 bl StartSpriteAffineAnim adds r0, r7, 0 adds r0, 0x1C adds r4, r0 ldr r0, _0800AF78 str r0, [r4] ldr r0, _0800AF7C movs r1, 0 str r1, [sp] movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade movs r0, 0x4 bl play_sound_effect ldr r0, _0800AF80 str r0, [r6] _0800AF64: add sp, 0x4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0800AF6C: .4byte 0x03004b20 _0800AF70: .4byte 0x02020004 _0800AF74: .4byte gSpriteAffineAnimTable_81E79AC _0800AF78: .4byte sub_800B240 _0800AF7C: .4byte 0x0000ffff _0800AF80: .4byte task_new_game_prof_birch_speech_part2_10 thumb_func_end task_new_game_prof_birch_speech_part2_9 thumb_func_start task_new_game_prof_birch_speech_part2_10 task_new_game_prof_birch_speech_part2_10: @ 800AF84 push {lr} lsls r0, 24 lsrs r0, 24 ldr r2, _0800AFB4 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r3, r1, r2 ldrb r1, [r3, 0xC] ldr r2, _0800AFB8 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 adds r0, 0x3F ldrb r0, [r0] lsls r0, 26 cmp r0, 0 bge _0800AFAE ldr r0, _0800AFBC str r0, [r3] _0800AFAE: pop {r0} bx r0 .align 2, 0 _0800AFB4: .4byte 0x03004b20 _0800AFB8: .4byte 0x02020004 _0800AFBC: .4byte sub_800AFC0 thumb_func_end task_new_game_prof_birch_speech_part2_10 thumb_func_start sub_800AFC0 sub_800AFC0: @ 800AFC0 push {r4,lr} sub sp, 0x4 lsls r0, 24 lsrs r2, r0, 24 ldr r0, _0800B018 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _0800B010 ldr r0, _0800B01C lsls r4, r2, 2 adds r4, r2 lsls r4, 3 adds r4, r0 ldrb r2, [r4, 0xC] ldr r1, _0800B020 lsls r0, r2, 4 adds r0, r2 lsls r0, 2 adds r1, 0x1C adds r0, r1 ldr r1, _0800B024 str r1, [r0] movs r1, 0x80 lsls r1, 19 movs r2, 0x82 lsls r2, 5 adds r0, r2, 0 strh r0, [r1] ldr r0, _0800B028 ldr r1, _0800B02C str r1, [sp] movs r1, 0 movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade ldr r0, _0800B030 str r0, [r4] _0800B010: add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _0800B018: .4byte 0x0202f388 _0800B01C: .4byte 0x03004b20 _0800B020: .4byte 0x02020004 _0800B024: .4byte nullsub_34 _0800B028: .4byte 0xffff0000 _0800B02C: .4byte 0x0000ffff _0800B030: .4byte sub_800B034 thumb_func_end sub_800AFC0 thumb_func_start sub_800B034 sub_800B034: @ 800B034 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, _0800B058 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _0800B052 ldr r0, _0800B05C bl SetMainCallback2 adds r0, r4, 0 bl DestroyTask _0800B052: pop {r4} pop {r0} bx r0 .align 2, 0 _0800B058: .4byte 0x0202f388 _0800B05C: .4byte c2_load_new_map_2 thumb_func_end sub_800B034 thumb_func_start new_game_prof_birch_speech_part2_start new_game_prof_birch_speech_part2_start: @ 800B060 push {r4,r5,lr} sub sp, 0xC movs r0, 0 bl SetVBlankCallback movs r0, 0x80 lsls r0, 19 movs r4, 0 strh r4, [r0] adds r0, 0xC strh r4, [r0] subs r0, 0x2 strh r4, [r0] subs r0, 0x2 strh r4, [r0] adds r0, 0x10 strh r4, [r0] adds r0, 0x2 strh r4, [r0] subs r0, 0x6 strh r4, [r0] adds r0, 0x2 strh r4, [r0] subs r0, 0x6 strh r4, [r0] adds r0, 0x2 strh r4, [r0] add r0, sp, 0x4 strh r4, [r0] ldr r1, _0800B13C str r0, [r1] movs r4, 0xC0 lsls r4, 19 str r4, [r1, 0x4] ldr r0, _0800B140 str r0, [r1, 0x8] ldr r0, [r1, 0x8] movs r2, 0 str r2, [sp, 0x8] add r0, sp, 0x8 str r0, [r1] movs r0, 0xE0 lsls r0, 19 str r0, [r1, 0x4] ldr r0, _0800B144 str r0, [r1, 0x8] ldr r0, [r1, 0x8] add r0, sp, 0x4 strh r2, [r0] str r0, [r1] movs r0, 0xA0 lsls r0, 19 str r0, [r1, 0x4] ldr r0, _0800B148 str r0, [r1, 0x8] ldr r0, [r1, 0x8] bl ResetPaletteFade ldr r0, _0800B14C adds r1, r4, 0 bl LZ77UnCompVram ldr r0, _0800B150 ldr r1, _0800B154 bl LZ77UnCompVram ldr r0, _0800B158 movs r1, 0 movs r2, 0x40 bl LoadPalette bl ResetTasks ldr r0, _0800B15C movs r1, 0 bl CreateTask lsls r0, 24 lsrs r5, r0, 24 ldr r1, _0800B160 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r4, r0, r1 ldr r0, _0800B164 strh r0, [r4, 0x10] bl remove_some_task bl ResetSpriteData bl FreeAllSpritePalettes adds r0, r5, 0 bl AddBirchSpeechObjects ldr r0, _0800B168 bl SetUpWindowConfig ldr r0, _0800B16C bl sub_8071C4C ldr r0, _0800B170 ldrb r0, [r0, 0x8] cmp r0, 0 beq _0800B174 movs r0, 0x1 strh r0, [r4, 0x14] ldrb r3, [r4, 0x1E] b _0800B178 .align 2, 0 _0800B13C: .4byte 0x040000d4 _0800B140: .4byte 0x8100c000 _0800B144: .4byte 0x85000100 _0800B148: .4byte 0x81000200 _0800B14C: .4byte gUnknown_081E768C _0800B150: .4byte gUnknown_081E7834 _0800B154: .4byte 0x06003800 _0800B158: .4byte gUnknown_081E764C _0800B15C: .4byte task_new_game_prof_birch_speech_part2_1 _0800B160: .4byte 0x03004b20 _0800B164: .4byte 0x0000ffc4 _0800B168: .4byte gWindowConfig_81E6C3C _0800B16C: .4byte gWindowConfig_81E6CE4 _0800B170: .4byte 0x02024ea4 _0800B174: strh r0, [r4, 0x14] ldrb r3, [r4, 0x1C] _0800B178: ldr r0, _0800B210 lsls r1, r3, 4 adds r1, r3 lsls r1, 2 adds r1, r0 movs r4, 0 movs r0, 0xB4 strh r0, [r1, 0x20] movs r0, 0x3C strh r0, [r1, 0x22] adds r1, 0x3E ldrb r2, [r1] subs r0, 0x41 ands r0, r2 strb r0, [r1] ldr r1, _0800B214 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r1 strh r3, [r0, 0xC] ldr r1, _0800B218 ldr r2, _0800B21C adds r0, r2, 0 strh r0, [r1] movs r0, 0x1 negs r0, r0 str r4, [sp] movs r1, 0 movs r2, 0x10 movs r3, 0 bl BeginNormalPaletteFade ldr r0, _0800B220 strh r4, [r0] adds r0, 0x4 strh r4, [r0] adds r0, 0x4 strh r4, [r0] adds r0, 0x2 strh r4, [r0] adds r0, 0x6 strh r4, [r0] adds r0, 0x2 strh r4, [r0] adds r0, 0x2 strh r4, [r0] ldr r3, _0800B224 ldrh r2, [r3] strh r4, [r3] ldr r4, _0800B228 ldrh r0, [r4] movs r1, 0x1 orrs r0, r1 strh r0, [r4] strh r2, [r3] ldr r0, _0800B22C bl SetVBlankCallback ldr r0, _0800B230 bl SetMainCallback2 ldr r1, _0800B234 ldr r2, _0800B238 adds r0, r2, 0 strh r0, [r1] subs r1, 0xA movs r2, 0x9A lsls r2, 5 adds r0, r2, 0 strh r0, [r1] add sp, 0xC pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0800B210: .4byte 0x02020004 _0800B214: .4byte 0x03004b20 _0800B218: .4byte 0x04000014 _0800B21C: .4byte 0x0000ffc4 _0800B220: .4byte 0x04000040 _0800B224: .4byte 0x04000208 _0800B228: .4byte 0x04000200 _0800B22C: .4byte VBlankCB_MainMenu _0800B230: .4byte CB2_MainMenu _0800B234: .4byte 0x0400000a _0800B238: .4byte 0x00000703 thumb_func_end new_game_prof_birch_speech_part2_start thumb_func_start nullsub_34 nullsub_34: @ 800B23C bx lr thumb_func_end nullsub_34 thumb_func_start sub_800B240 sub_800B240: @ 800B240 movs r2, 0x22 ldrsh r1, [r0, r2] lsls r1, 16 movs r3, 0x2E ldrsh r2, [r0, r3] adds r1, r2 movs r2, 0xC0 lsls r2, 8 adds r1, r2 lsrs r2, r1, 16 strh r2, [r0, 0x22] strh r1, [r0, 0x2E] bx lr thumb_func_end sub_800B240 thumb_func_start sub_800B25C sub_800B25C: @ 800B25C push {r4-r6,lr} sub sp, 0x8 adds r5, r0, 0 adds r6, r1, 0 lsls r5, 24 lsrs r5, 24 lsls r6, 24 lsrs r6, 24 ldr r0, _0800B2B8 ldr r2, _0800B2BC movs r3, 0xAF lsls r3, 3 adds r1, r2, r3 ldrb r1, [r1] adds r3, 0x1 adds r2, r3 ldrb r2, [r2] ldr r4, _0800B2C0 ldr r3, [r4] ldr r4, [r4, 0x4] str r4, [sp] movs r4, 0xAF lsls r4, 1 str r4, [sp, 0x4] bl DecompressPicFromTable_2 ldr r0, _0800B2C4 bl LoadCompressedObjectPalette adds r0, r4, 0 movs r1, 0x1 bl gpu_pal_obj_decompress_and_apply ldr r0, _0800B2C8 adds r1, r5, 0 adds r2, r6, 0 movs r3, 0 bl CreateSprite lsls r0, 24 lsrs r0, 24 add sp, 0x8 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _0800B2B8: .4byte gMonFrontPicTable + 0xAF0 _0800B2BC: .4byte gMonFrontPicCoords _0800B2C0: .4byte gUnknown_081FAF4C _0800B2C4: .4byte gMonPaletteTable + 0xAF0 _0800B2C8: .4byte 0x02024e8c thumb_func_end sub_800B25C thumb_func_start AddBirchSpeechObjects AddBirchSpeechObjects: @ 800B2CC push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x4 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 movs r0, 0x88 movs r1, 0x3C movs r2, 0x1 bl AddNewGameBirchObject lsls r0, 24 lsrs r0, 24 ldr r1, _0800B3DC mov r9, r1 lsls r2, r0, 4 adds r2, r0 lsls r2, 2 movs r3, 0x1C add r3, r9 mov r8, r3 adds r1, r2, r3 ldr r7, _0800B3E0 str r7, [r1] add r2, r9 ldrb r3, [r2, 0x5] movs r6, 0xD negs r6, r6 adds r1, r6, 0 ands r1, r3 strb r1, [r2, 0x5] adds r2, 0x3E ldrb r1, [r2] movs r3, 0x4 mov r10, r3 mov r3, r10 orrs r1, r3 strb r1, [r2] ldr r1, _0800B3E4 lsls r5, r4, 2 adds r5, r4 lsls r5, 3 adds r5, r1 strh r0, [r5, 0x18] movs r0, 0x68 movs r1, 0x48 bl sub_800B25C lsls r0, 24 lsrs r0, 24 lsls r2, r0, 4 adds r2, r0 lsls r2, 2 mov r4, r8 adds r1, r2, r4 str r7, [r1] add r2, r9 ldrb r3, [r2, 0x5] adds r1, r6, 0 ands r1, r3 strb r1, [r2, 0x5] adds r2, 0x3E ldrb r1, [r2] mov r3, r10 orrs r1, r3 strb r1, [r2] strh r0, [r5, 0x1A] ldr r4, _0800B3E8 str r4, [sp] movs r0, 0 movs r1, 0x78 movs r2, 0x3C movs r3, 0 bl sub_80859BC lsls r0, 24 lsrs r0, 24 lsls r2, r0, 4 adds r2, r0 lsls r2, 2 mov r3, r8 adds r1, r2, r3 str r7, [r1] add r2, r9 adds r3, r2, 0 adds r3, 0x3E ldrb r1, [r3] mov r4, r10 orrs r1, r4 strb r1, [r3] ldrb r3, [r2, 0x5] adds r1, r6, 0 ands r1, r3 strb r1, [r2, 0x5] strh r0, [r5, 0x1C] ldr r0, _0800B3E8 movs r1, 0x80 lsls r1, 4 adds r4, r0, r1 str r4, [sp] movs r0, 0x1 movs r1, 0x78 movs r2, 0x3C movs r3, 0 bl sub_80859BC lsls r0, 24 lsrs r0, 24 lsls r2, r0, 4 adds r2, r0 lsls r2, 2 add r8, r2 mov r3, r8 str r7, [r3] add r2, r9 adds r3, r2, 0 adds r3, 0x3E ldrb r1, [r3] mov r4, r10 orrs r1, r4 strb r1, [r3] ldrb r1, [r2, 0x5] ands r6, r1 strb r6, [r2, 0x5] strh r0, [r5, 0x1E] 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 _0800B3DC: .4byte 0x02020004 _0800B3E0: .4byte nullsub_34 _0800B3E4: .4byte 0x03004b20 _0800B3E8: .4byte 0x02000000 thumb_func_end AddBirchSpeechObjects thumb_func_start sub_800B3EC sub_800B3EC: @ 800B3EC push {r4,r5,lr} lsls r0, 24 lsrs r2, r0, 24 ldr r4, _0800B420 lsls r0, r2, 2 adds r0, r2 lsls r0, 3 adds r3, r0, r4 ldrh r1, [r3, 0xA] movs r5, 0xA ldrsh r0, [r3, r5] cmp r0, 0 bne _0800B424 movs r1, 0x8 ldrsh r0, [r3, r1] lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r4 movs r0, 0x1 strh r0, [r1, 0x12] adds r0, r2, 0 bl DestroyTask b _0800B44E .align 2, 0 _0800B420: .4byte 0x03004b20 _0800B424: ldrh r2, [r3, 0x10] movs r4, 0x10 ldrsh r0, [r3, r4] cmp r0, 0 beq _0800B434 subs r0, r2, 0x1 strh r0, [r3, 0x10] b _0800B44E _0800B434: ldrh r0, [r3, 0xE] strh r0, [r3, 0x10] subs r1, 0x1 strh r1, [r3, 0xA] ldrh r0, [r3, 0xC] adds r0, 0x1 strh r0, [r3, 0xC] ldr r2, _0800B454 movs r5, 0xC ldrsh r0, [r3, r5] lsls r0, 8 adds r1, r0 strh r1, [r2] _0800B44E: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0800B454: .4byte 0x04000052 thumb_func_end sub_800B3EC thumb_func_start sub_800B458 sub_800B458: @ 800B458 push {r4-r6,lr} mov r6, r8 push {r6} adds r4, r0, 0 adds r5, r1, 0 lsls r4, 24 lsrs r4, 24 lsls r5, 24 lsrs r5, 24 ldr r1, _0800B4BC movs r2, 0x94 lsls r2, 2 adds r0, r2, 0 strh r0, [r1] adds r1, 0x2 movs r0, 0x10 strh r0, [r1] adds r1, 0x2 movs r0, 0 strh r0, [r1] ldr r0, _0800B4C0 mov r8, r0 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 add r0, r8 movs r6, 0 strh r6, [r0, 0x12] ldr r0, _0800B4C4 movs r1, 0 bl CreateTask lsls r0, 24 lsrs r0, 24 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 add r1, r8 strh r4, [r1, 0x8] movs r0, 0x10 strh r0, [r1, 0xA] strh r6, [r1, 0xC] strh r5, [r1, 0xE] strh r5, [r1, 0x10] pop {r3} mov r8, r3 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0800B4BC: .4byte 0x04000050 _0800B4C0: .4byte 0x03004b20 _0800B4C4: .4byte sub_800B3EC thumb_func_end sub_800B458 thumb_func_start sub_800B4C8 sub_800B4C8: @ 800B4C8 push {r4,r5,lr} lsls r0, 24 lsrs r2, r0, 24 ldr r4, _0800B4FC lsls r0, r2, 2 adds r0, r2 lsls r0, 3 adds r3, r0, r4 ldrh r1, [r3, 0xA] movs r5, 0xA ldrsh r0, [r3, r5] cmp r0, 0x10 bne _0800B500 movs r1, 0x8 ldrsh r0, [r3, r1] lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r4 movs r0, 0x1 strh r0, [r1, 0x12] adds r0, r2, 0 bl DestroyTask b _0800B52A .align 2, 0 _0800B4FC: .4byte 0x03004b20 _0800B500: ldrh r2, [r3, 0x10] movs r4, 0x10 ldrsh r0, [r3, r4] cmp r0, 0 beq _0800B510 subs r0, r2, 0x1 strh r0, [r3, 0x10] b _0800B52A _0800B510: ldrh r0, [r3, 0xE] strh r0, [r3, 0x10] adds r1, 0x1 strh r1, [r3, 0xA] ldrh r0, [r3, 0xC] subs r0, 0x1 strh r0, [r3, 0xC] ldr r2, _0800B530 movs r5, 0xC ldrsh r0, [r3, r5] lsls r0, 8 adds r1, r0 strh r1, [r2] _0800B52A: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0800B530: .4byte 0x04000052 thumb_func_end sub_800B4C8 thumb_func_start sub_800B534 sub_800B534: @ 800B534 push {r4-r6,lr} mov r6, r8 push {r6} adds r4, r0, 0 adds r5, r1, 0 lsls r4, 24 lsrs r4, 24 lsls r5, 24 lsrs r5, 24 ldr r1, _0800B59C movs r2, 0x94 lsls r2, 2 adds r0, r2, 0 strh r0, [r1] adds r1, 0x2 movs r2, 0x80 lsls r2, 5 adds r0, r2, 0 strh r0, [r1] adds r1, 0x2 movs r0, 0 strh r0, [r1] ldr r0, _0800B5A0 mov r8, r0 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 add r0, r8 movs r6, 0 strh r6, [r0, 0x12] ldr r0, _0800B5A4 movs r1, 0 bl CreateTask lsls r0, 24 lsrs r0, 24 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 add r1, r8 strh r4, [r1, 0x8] strh r6, [r1, 0xA] movs r0, 0x10 strh r0, [r1, 0xC] strh r5, [r1, 0xE] strh r5, [r1, 0x10] pop {r3} mov r8, r3 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0800B59C: .4byte 0x04000050 _0800B5A0: .4byte 0x03004b20 _0800B5A4: .4byte sub_800B4C8 thumb_func_end sub_800B534 thumb_func_start sub_800B5A8 sub_800B5A8: @ 800B5A8 push {r4,lr} lsls r0, 24 lsrs r2, r0, 24 ldr r1, _0800B5C8 lsls r0, r2, 2 adds r0, r2 lsls r0, 3 adds r1, r0, r1 ldrh r3, [r1, 0xC] movs r4, 0xC ldrsh r0, [r1, r4] cmp r0, 0 beq _0800B5CC subs r0, r3, 0x1 strh r0, [r1, 0xC] b _0800B608 .align 2, 0 _0800B5C8: .4byte 0x03004b20 _0800B5CC: ldrh r3, [r1, 0xA] movs r4, 0xA ldrsh r0, [r1, r4] cmp r0, 0x8 bne _0800B5DE adds r0, r2, 0 bl DestroyTask b _0800B608 _0800B5DE: ldrh r2, [r1, 0x10] movs r4, 0x10 ldrsh r0, [r1, r4] cmp r0, 0 beq _0800B5EE subs r0, r2, 0x1 strh r0, [r1, 0x10] b _0800B608 _0800B5EE: ldrh r0, [r1, 0xE] strh r0, [r1, 0x10] adds r0, r3, 0x1 strh r0, [r1, 0xA] movs r2, 0xA ldrsh r0, [r1, r2] lsls r0, 1 ldr r1, _0800B610 adds r0, r1 movs r1, 0x1 movs r2, 0x10 bl LoadPalette _0800B608: pop {r4} pop {r0} bx r0 .align 2, 0 _0800B610: .4byte gUnknown_081E795C thumb_func_end sub_800B5A8 thumb_func_start sub_800B614 sub_800B614: @ 800B614 push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 lsls r4, 24 lsrs r4, 24 lsls r5, 24 lsrs r5, 24 ldr r0, _0800B64C movs r1, 0 bl CreateTask lsls r0, 24 lsrs r0, 24 ldr r2, _0800B650 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 movs r0, 0 strh r4, [r1, 0x8] strh r0, [r1, 0xA] movs r0, 0x8 strh r0, [r1, 0xC] strh r5, [r1, 0xE] strh r5, [r1, 0x10] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0800B64C: .4byte sub_800B5A8 _0800B650: .4byte 0x03004b20 thumb_func_end sub_800B614 thumb_func_start sub_800B654 sub_800B654: @ 800B654 push {r4,lr} lsls r0, 24 lsrs r2, r0, 24 ldr r1, _0800B674 lsls r0, r2, 2 adds r0, r2 lsls r0, 3 adds r1, r0, r1 ldrh r3, [r1, 0xC] movs r4, 0xC ldrsh r0, [r1, r4] cmp r0, 0 beq _0800B678 subs r0, r3, 0x1 strh r0, [r1, 0xC] b _0800B6B4 .align 2, 0 _0800B674: .4byte 0x03004b20 _0800B678: ldrh r3, [r1, 0xA] movs r4, 0xA ldrsh r0, [r1, r4] cmp r0, 0 bne _0800B68A adds r0, r2, 0 bl DestroyTask b _0800B6B4 _0800B68A: ldrh r2, [r1, 0x10] movs r4, 0x10 ldrsh r0, [r1, r4] cmp r0, 0 beq _0800B69A subs r0, r2, 0x1 strh r0, [r1, 0x10] b _0800B6B4 _0800B69A: ldrh r0, [r1, 0xE] strh r0, [r1, 0x10] subs r0, r3, 0x1 strh r0, [r1, 0xA] movs r2, 0xA ldrsh r0, [r1, r2] lsls r0, 1 ldr r1, _0800B6BC adds r0, r1 movs r1, 0x1 movs r2, 0x10 bl LoadPalette _0800B6B4: pop {r4} pop {r0} bx r0 .align 2, 0 _0800B6BC: .4byte gUnknown_081E795C thumb_func_end sub_800B654 thumb_func_start sub_800B6C0 sub_800B6C0: @ 800B6C0 push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 lsls r4, 24 lsrs r4, 24 lsls r5, 24 lsrs r5, 24 ldr r0, _0800B6F8 movs r1, 0 bl CreateTask lsls r0, 24 lsrs r0, 24 ldr r2, _0800B6FC lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 strh r4, [r1, 0x8] movs r0, 0x8 strh r0, [r1, 0xA] strh r0, [r1, 0xC] strh r5, [r1, 0xE] strh r5, [r1, 0x10] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0800B6F8: .4byte sub_800B654 _0800B6FC: .4byte 0x03004b20 thumb_func_end sub_800B6C0 thumb_func_start CreateGenderMenu CreateGenderMenu: @ 800B700 push {r4,r5,lr} sub sp, 0x8 adds r2, r0, 0 adds r3, r1, 0 lsls r2, 24 lsls r3, 24 lsrs r5, r2, 24 movs r0, 0xC0 lsls r0, 19 adds r2, r0 lsrs r2, 24 lsrs r4, r3, 24 movs r0, 0xA0 lsls r0, 19 adds r3, r0 lsrs r3, 24 adds r0, r5, 0 adds r1, r4, 0 bl DrawDefaultWindow adds r5, 0x1 lsls r5, 24 lsrs r5, 24 adds r4, 0x1 lsls r4, 24 lsrs r4, 24 ldr r3, _0800B75C adds r0, r5, 0 adds r1, r4, 0 movs r2, 0x2 bl PrintStringArray movs r0, 0 str r0, [sp] movs r0, 0x5 str r0, [sp, 0x4] movs r0, 0 adds r1, r5, 0 adds r2, r4, 0 movs r3, 0x2 bl InitMenu add sp, 0x8 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0800B75C: .4byte gUnknown_081E79B0 thumb_func_end CreateGenderMenu thumb_func_start GenderMenuProcessInput GenderMenuProcessInput: @ 800B760 push {lr} bl ProcessMenuInputNoWrap lsls r0, 24 asrs r0, 24 pop {r1} bx r1 thumb_func_end GenderMenuProcessInput thumb_func_start CreateNameMenu CreateNameMenu: @ 800B770 push {r4,r5,lr} sub sp, 0x8 adds r2, r0, 0 adds r3, r1, 0 lsls r2, 24 lsls r3, 24 lsrs r5, r2, 24 movs r0, 0xA0 lsls r0, 20 adds r2, r0 lsrs r2, 24 lsrs r4, r3, 24 movs r0, 0xB0 lsls r0, 20 adds r3, r0 lsrs r3, 24 adds r0, r5, 0 adds r1, r4, 0 bl DrawDefaultWindow ldr r0, _0800B7B8 ldrb r0, [r0, 0x8] cmp r0, 0 bne _0800B7C0 adds r5, 0x1 lsls r0, r5, 24 lsrs r0, 24 adds r4, 0x1 lsls r1, r4, 24 lsrs r1, 24 ldr r3, _0800B7BC movs r2, 0x5 bl PrintStringArray b _0800B7D4 .align 2, 0 _0800B7B8: .4byte 0x02024ea4 _0800B7BC: .4byte gUnknown_081E79C0 _0800B7C0: adds r5, 0x1 lsls r0, r5, 24 lsrs r0, 24 adds r4, 0x1 lsls r1, r4, 24 lsrs r1, 24 ldr r3, _0800B7F4 movs r2, 0x5 bl PrintStringArray _0800B7D4: lsls r1, r5, 24 lsrs r1, 24 lsls r2, r4, 24 lsrs r2, 24 movs r0, 0 str r0, [sp] movs r0, 0x9 str r0, [sp, 0x4] movs r0, 0 movs r3, 0x5 bl InitMenu add sp, 0x8 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0800B7F4: .4byte gUnknown_081E79E8 thumb_func_end CreateNameMenu thumb_func_start NameMenuProcessInput NameMenuProcessInput: @ 800B7F8 push {lr} bl ProcessMenuInput lsls r0, 24 asrs r0, 24 pop {r1} bx r1 thumb_func_end NameMenuProcessInput thumb_func_start set_default_player_name set_default_player_name: @ 800B808 push {r4,r5,lr} lsls r0, 24 lsrs r2, r0, 24 ldr r0, _0800B81C ldrb r1, [r0, 0x8] adds r5, r0, 0 cmp r1, 0 bne _0800B824 ldr r1, _0800B820 b _0800B826 .align 2, 0 _0800B81C: .4byte 0x02024ea4 _0800B820: .4byte gUnknown_081E79C0 _0800B824: ldr r1, _0800B850 _0800B826: lsls r0, r2, 3 adds r0, r1 ldr r3, [r0] movs r2, 0 ldr r4, _0800B854 _0800B830: adds r1, r2, r4 adds r0, r3, r2 ldrb r0, [r0] strb r0, [r1] adds r0, r2, 0x1 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0x6 bls _0800B830 adds r1, r2, r5 movs r0, 0xFF strb r0, [r1] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0800B850: .4byte gUnknown_081E79E8 _0800B854: .4byte 0x02024ea4 thumb_func_end set_default_player_name thumb_func_start sub_800B858 sub_800B858: @ 800B858 push {lr} ldr r0, _0800B87C ldrh r1, [r0] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _0800B876 bl OpenLink ldr r0, _0800B880 movs r1, 0 bl CreateTask bl sub_800BF28 _0800B876: pop {r0} bx r0 .align 2, 0 _0800B87C: .4byte 0x020239f8 _0800B880: .4byte sub_8083C50 thumb_func_end sub_800B858 thumb_func_start sub_800B884 sub_800B884: @ 800B884 push {r4-r7,lr} sub sp, 0x14 ldr r0, _0800B920 ldr r1, _0800B924 str r1, [r0] movs r0, 0 str r0, [sp, 0x10] movs r1, 0 ldr r7, _0800B928 ldr r6, _0800B92C movs r2, 0 ldr r5, _0800B930 ldr r4, _0800B934 ldr r3, _0800B938 _0800B8A0: lsls r0, r1, 2 adds r0, r7 str r4, [r0] adds r1, r3 movs r0, 0xFF strb r0, [r1] ldr r0, [sp, 0x10] adds r0, r6 strb r2, [r0] ldr r0, [sp, 0x10] adds r0, r5 strb r2, [r0] ldr r0, [sp, 0x10] adds r0, 0x1 str r0, [sp, 0x10] adds r1, r0, 0 cmp r1, 0x3 ble _0800B8A0 bl sub_800B858 ldr r0, _0800B93C movs r5, 0 str r5, [r0] bl sub_8075624 bl sub_8040710 bl sub_81070D4 ldr r0, _0800B940 ldrh r1, [r0] movs r0, 0x10 ands r0, r1 cmp r0, 0 beq _0800B90E bl zero_enemy_party_data ldr r4, _0800B944 movs r1, 0x8F lsls r1, 1 str r5, [sp] str r5, [sp, 0x4] str r5, [sp, 0x8] str r5, [sp, 0xC] adds r0, r4, 0 movs r2, 0x2 movs r3, 0x20 bl create_pokemon_set_level str r5, [sp, 0x10] adds r0, r4, 0 movs r1, 0xC add r2, sp, 0x10 bl pokemon_setattr _0800B90E: ldr r0, _0800B948 str r5, [r0] ldr r0, _0800B94C strb r5, [r0] add sp, 0x14 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0800B920: .4byte 0x030042d4 _0800B924: .4byte nullsub_41 _0800B928: .4byte 0x03004330 _0800B92C: .4byte 0x02024e60 _0800B930: .4byte 0x02024e64 _0800B934: .4byte nullsub_91 _0800B938: .4byte 0x02024a72 _0800B93C: .4byte 0x02024a64 _0800B940: .4byte 0x020239f8 _0800B944: .4byte 0x030045c0 _0800B948: .4byte 0x020239fc _0800B94C: .4byte 0x02024c78 thumb_func_end sub_800B884 thumb_func_start sub_800B950 sub_800B950: @ 800B950 push {r4,r5,lr} ldr r0, _0800B964 ldrh r1, [r0] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _0800B968 bl sub_800BA78 b _0800B96C .align 2, 0 _0800B964: .4byte 0x020239f8 _0800B968: bl sub_800B9A8 _0800B96C: bl sub_800BD54 ldr r0, _0800B9A0 ldrh r1, [r0] movs r0, 0x40 ands r0, r1 cmp r0, 0 bne _0800B99A movs r4, 0 ldr r0, _0800B9A4 ldrb r1, [r0] cmp r4, r1 bge _0800B99A adds r5, r0, 0 _0800B988: lsls r0, r4, 24 lsrs r0, 24 movs r1, 0 bl sub_8094978 adds r4, 0x1 ldrb r0, [r5] cmp r4, r0 blt _0800B988 _0800B99A: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0800B9A0: .4byte 0x020239f8 _0800B9A4: .4byte 0x02024a68 thumb_func_end sub_800B950 thumb_func_start sub_800B9A8 sub_800B9A8: @ 800B9A8 push {r4,lr} ldr r0, _0800B9CC ldrh r2, [r0] movs r0, 0x1 ands r0, r2 cmp r0, 0 bne _0800BA28 ldr r1, _0800B9D0 ldr r0, _0800B9D4 str r0, [r1] movs r0, 0x80 ands r0, r2 cmp r0, 0 beq _0800B9E0 ldr r1, _0800B9D8 ldr r0, _0800B9DC b _0800B9FC .align 2, 0 _0800B9CC: .4byte 0x020239f8 _0800B9D0: .4byte 0x030042d4 _0800B9D4: .4byte sub_8010800 _0800B9D8: .4byte 0x03004330 _0800B9DC: .4byte sub_812B468 _0800B9E0: movs r0, 0x80 lsls r0, 2 ands r0, r2 cmp r0, 0 beq _0800B9F8 ldr r1, _0800B9F0 ldr r0, _0800B9F4 b _0800B9FC .align 2, 0 _0800B9F0: .4byte 0x03004330 _0800B9F4: .4byte sub_8137224 _0800B9F8: ldr r1, _0800BA14 ldr r0, _0800BA18 _0800B9FC: str r0, [r1] adds r2, r1, 0 ldr r1, _0800BA1C movs r0, 0 strb r0, [r1] ldr r0, _0800BA20 str r0, [r2, 0x4] movs r0, 0x1 strb r0, [r1, 0x1] ldr r1, _0800BA24 movs r0, 0x2 b _0800BA52 .align 2, 0 _0800BA14: .4byte 0x03004330 _0800BA18: .4byte sub_802BF74 _0800BA1C: .4byte 0x02024a72 _0800BA20: .4byte sub_8032AE0 _0800BA24: .4byte 0x02024a68 _0800BA28: ldr r1, _0800BA5C ldr r0, _0800BA60 str r0, [r1] ldr r2, _0800BA64 ldr r4, _0800BA68 str r4, [r2] ldr r1, _0800BA6C movs r0, 0 strb r0, [r1] ldr r3, _0800BA70 str r3, [r2, 0x4] movs r0, 0x1 strb r0, [r1, 0x1] str r4, [r2, 0x8] movs r0, 0x2 strb r0, [r1, 0x2] str r3, [r2, 0xC] movs r0, 0x3 strb r0, [r1, 0x3] ldr r1, _0800BA74 movs r0, 0x4 _0800BA52: strb r0, [r1] pop {r4} pop {r0} bx r0 .align 2, 0 _0800BA5C: .4byte 0x030042d4 _0800BA60: .4byte sub_8010800 _0800BA64: .4byte 0x03004330 _0800BA68: .4byte sub_802BF74 _0800BA6C: .4byte 0x02024a72 _0800BA70: .4byte sub_8032AE0 _0800BA74: .4byte 0x02024a68 thumb_func_end sub_800B9A8 thumb_func_start sub_800BA78 sub_800BA78: @ 800BA78 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} ldr r6, _0800BAB8 ldrh r1, [r6] movs r5, 0x1 movs r4, 0x1 ands r4, r1 cmp r4, 0 bne _0800BB04 movs r0, 0x4 ands r0, r1 lsls r0, 16 lsrs r3, r0, 16 cmp r3, 0 beq _0800BAD8 ldr r1, _0800BABC ldr r0, _0800BAC0 str r0, [r1] ldr r2, _0800BAC4 ldr r0, _0800BAC8 str r0, [r2] ldr r1, _0800BACC strb r4, [r1] ldr r0, _0800BAD0 str r0, [r2, 0x4] strb r5, [r1, 0x1] ldr r1, _0800BAD4 movs r0, 0x2 b _0800BD3E .align 2, 0 _0800BAB8: .4byte 0x020239f8 _0800BABC: .4byte 0x030042d4 _0800BAC0: .4byte sub_8010800 _0800BAC4: .4byte 0x03004330 _0800BAC8: .4byte sub_802BF74 _0800BACC: .4byte 0x02024a72 _0800BAD0: .4byte sub_8037510 _0800BAD4: .4byte 0x02024a68 _0800BAD8: ldr r2, _0800BAF0 ldr r0, _0800BAF4 str r0, [r2, 0x4] ldr r1, _0800BAF8 strb r3, [r1, 0x1] ldr r0, _0800BAFC str r0, [r2] strb r5, [r1] ldr r1, _0800BB00 movs r0, 0x2 b _0800BD3E .align 2, 0 _0800BAF0: .4byte 0x03004330 _0800BAF4: .4byte sub_802BF74 _0800BAF8: .4byte 0x02024a72 _0800BAFC: .4byte sub_8037510 _0800BB00: .4byte 0x02024a68 _0800BB04: movs r0, 0x41 ands r0, r1 cmp r0, 0x1 bne _0800BB90 movs r6, 0x4 movs r0, 0x4 ands r0, r1 lsls r0, 16 lsrs r3, r0, 16 cmp r3, 0 beq _0800BB58 ldr r1, _0800BB40 ldr r0, _0800BB44 str r0, [r1] ldr r2, _0800BB48 ldr r4, _0800BB4C str r4, [r2] ldr r1, _0800BB50 movs r0, 0 strb r0, [r1] ldr r3, _0800BB54 str r3, [r2, 0x4] strb r5, [r1, 0x1] str r4, [r2, 0x8] movs r0, 0x2 strb r0, [r1, 0x2] str r3, [r2, 0xC] movs r0, 0x3 strb r0, [r1, 0x3] b _0800BB74 .align 2, 0 _0800BB40: .4byte 0x030042d4 _0800BB44: .4byte sub_8010800 _0800BB48: .4byte 0x03004330 _0800BB4C: .4byte sub_802BF74 _0800BB50: .4byte 0x02024a72 _0800BB54: .4byte sub_8037510 _0800BB58: ldr r2, _0800BB7C ldr r0, _0800BB80 str r0, [r2, 0x4] ldr r1, _0800BB84 strb r3, [r1, 0x1] ldr r3, _0800BB88 str r3, [r2] strb r5, [r1] str r0, [r2, 0xC] movs r0, 0x2 strb r0, [r1, 0x3] str r3, [r2, 0x8] movs r0, 0x3 strb r0, [r1, 0x2] _0800BB74: ldr r0, _0800BB8C strb r6, [r0] b _0800BD40 .align 2, 0 _0800BB7C: .4byte 0x03004330 _0800BB80: .4byte sub_802BF74 _0800BB84: .4byte 0x02024a72 _0800BB88: .4byte sub_8037510 _0800BB8C: .4byte 0x02024a68 _0800BB90: bl GetMultiplayerId lsls r0, 24 lsrs r5, r0, 24 ldrh r1, [r6] movs r0, 0x4 ands r0, r1 cmp r0, 0 beq _0800BBA8 ldr r1, _0800BBD0 ldr r0, _0800BBD4 str r0, [r1] _0800BBA8: movs r0, 0 mov r10, r0 ldr r1, _0800BBD8 mov r12, r1 ldr r7, _0800BBDC mov r8, r0 ldr r6, _0800BBE0 movs r4, 0 movs r2, 0x3 mov r9, r2 _0800BBBC: mov r1, r12 adds r0, r4, r1 ldrh r0, [r0, 0x18] cmp r0, 0x2 bgt _0800BBE4 cmp r0, 0x1 bge _0800BBFC cmp r0, 0 beq _0800BBE8 b _0800BC06 .align 2, 0 _0800BBD0: .4byte 0x030042d4 _0800BBD4: .4byte sub_8010800 _0800BBD8: .4byte 0x03002970 _0800BBDC: .4byte 0x02024a72 _0800BBE0: .4byte 0x02024a6a _0800BBE4: cmp r0, 0x3 bne _0800BC06 _0800BBE8: ldr r0, _0800BBF8 adds r0, r4, r0 ldrb r0, [r0, 0x18] movs r1, 0 bl sub_8094978 b _0800BC06 .align 2, 0 _0800BBF8: .4byte 0x03002970 _0800BBFC: lsls r0, 24 lsrs r0, 24 movs r1, 0x1 bl sub_8094978 _0800BC06: cmp r10, r5 bne _0800BC56 ldr r0, _0800BC2C adds r3, r4, r0 ldrh r1, [r3, 0x18] lsls r1, 2 ldr r2, _0800BC30 adds r1, r2 ldr r2, _0800BC34 str r2, [r1] ldrh r1, [r3, 0x18] mov r12, r0 cmp r1, 0x2 bgt _0800BC38 cmp r1, 0x1 bge _0800BC4C cmp r1, 0 beq _0800BC3C b _0800BD2C .align 2, 0 _0800BC2C: .4byte 0x03002970 _0800BC30: .4byte 0x03004330 _0800BC34: .4byte sub_802BF74 _0800BC38: cmp r1, 0x3 bne _0800BD2C _0800BC3C: mov r1, r12 adds r0, r4, r1 ldrh r1, [r0, 0x18] adds r1, r7 mov r2, r8 strb r2, [r1] ldrh r0, [r0, 0x18] b _0800BD12 _0800BC4C: adds r1, r7 movs r0, 0x2 strb r0, [r1] ldrh r0, [r3, 0x18] b _0800BD24 _0800BC56: ldr r2, _0800BC7C adds r0, r4, r2 ldrh r1, [r0, 0x18] movs r3, 0x1 adds r0, r3, 0 ands r0, r1 mov r12, r2 cmp r0, 0 bne _0800BC80 lsls r0, r5, 3 subs r0, r5 lsls r0, 2 add r0, r12 ldrh r1, [r0, 0x18] adds r0, r3, 0 ands r0, r1 cmp r0, 0 beq _0800BC92 b _0800BCD8 .align 2, 0 _0800BC7C: .4byte 0x03002970 _0800BC80: lsls r0, r5, 3 subs r0, r5 lsls r0, 2 add r0, r12 ldrh r1, [r0, 0x18] adds r0, r3, 0 ands r0, r1 cmp r0, 0 beq _0800BCD8 _0800BC92: mov r0, r12 adds r2, r4, r0 ldrh r0, [r2, 0x18] lsls r0, 2 ldr r1, _0800BCB4 adds r0, r1 ldr r1, _0800BCB8 str r1, [r0] ldrh r1, [r2, 0x18] cmp r1, 0x2 bgt _0800BCBC cmp r1, 0x1 bge _0800BCD0 cmp r1, 0 beq _0800BCC0 b _0800BD2C .align 2, 0 _0800BCB4: .4byte 0x03004330 _0800BCB8: .4byte sub_811DA78 _0800BCBC: cmp r1, 0x3 bne _0800BD2C _0800BCC0: mov r2, r12 adds r0, r4, r2 ldrh r1, [r0, 0x18] adds r1, r7 mov r2, r8 strb r2, [r1] ldrh r0, [r0, 0x18] b _0800BD12 _0800BCD0: adds r1, r7 movs r0, 0x2 strb r0, [r1] b _0800BD22 _0800BCD8: mov r0, r12 adds r2, r4, r0 ldrh r0, [r2, 0x18] lsls r0, 2 ldr r1, _0800BCF8 adds r0, r1 ldr r1, _0800BCFC str r1, [r0] ldrh r0, [r2, 0x18] cmp r0, 0x2 bgt _0800BD00 cmp r0, 0x1 bge _0800BD1C cmp r0, 0 beq _0800BD04 b _0800BD2C .align 2, 0 _0800BCF8: .4byte 0x03004330 _0800BCFC: .4byte sub_8037510 _0800BD00: cmp r0, 0x3 bne _0800BD2C _0800BD04: mov r0, r12 adds r2, r4, r0 ldrh r0, [r2, 0x18] adds r0, r7 movs r1, 0x1 strb r1, [r0] ldrh r0, [r2, 0x18] _0800BD12: lsls r0, 1 adds r0, r6 mov r1, r8 strh r1, [r0] b _0800BD2C _0800BD1C: adds r0, r7 mov r1, r9 strb r1, [r0] _0800BD22: ldrh r0, [r2, 0x18] _0800BD24: lsls r0, 1 adds r0, r6 mov r2, r9 strh r2, [r0] _0800BD2C: adds r4, 0x1C movs r0, 0x1 add r10, r0 mov r1, r10 cmp r1, 0x3 bgt _0800BD3A b _0800BBBC _0800BD3A: ldr r1, _0800BD50 movs r0, 0x4 _0800BD3E: strb r0, [r1] _0800BD40: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0800BD50: .4byte 0x02024a68 thumb_func_end sub_800BA78 thumb_func_start sub_800BD54 sub_800BD54: @ 800BD54 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} ldr r0, _0800BD74 ldrh r1, [r0] movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _0800BD6C b _0800BE88 _0800BD6C: movs r0, 0 mov r8, r0 b _0800BE7E .align 2, 0 _0800BD74: .4byte 0x020239f8 _0800BD78: movs r5, 0 movs r0, 0x1 add r0, r8 mov r10, r0 ldr r0, _0800BDA4 add r0, r8 mov r9, r0 mov r0, r8 lsls r6, r0, 1 movs r7, 0 _0800BD8C: mov r0, r8 cmp r0, 0x1 bgt _0800BDF4 mov r0, r9 ldrb r1, [r0] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _0800BDAC ldr r0, _0800BDA8 b _0800BDAE .align 2, 0 _0800BDA4: .4byte 0x02024a72 _0800BDA8: .4byte 0x03004360 _0800BDAC: ldr r0, _0800BDEC _0800BDAE: adds r4, r7, r0 adds r0, r4, 0 movs r1, 0x39 bl PokemonGetField cmp r0, 0 beq _0800BE74 adds r0, r4, 0 movs r1, 0x41 bl PokemonGetField cmp r0, 0 beq _0800BE74 adds r0, r4, 0 movs r1, 0x41 bl PokemonGetField movs r1, 0xCE lsls r1, 1 cmp r0, r1 beq _0800BE74 adds r0, r4, 0 movs r1, 0x2D bl PokemonGetField cmp r0, 0 bne _0800BE74 ldr r0, _0800BDF0 adds r0, r6, r0 strh r5, [r0] b _0800BE7C .align 2, 0 _0800BDEC: .4byte 0x030045c0 _0800BDF0: .4byte 0x02024a6a _0800BDF4: mov r0, r9 ldrb r1, [r0] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _0800BE1C ldr r0, _0800BE18 adds r4, r7, r0 adds r0, r4, 0 movs r1, 0x39 bl PokemonGetField cmp r0, 0 beq _0800BE74 adds r0, r4, 0 movs r1, 0xB b _0800BE30 .align 2, 0 _0800BE18: .4byte 0x03004360 _0800BE1C: ldr r0, _0800BE6C adds r4, r7, r0 adds r0, r4, 0 movs r1, 0x39 bl PokemonGetField cmp r0, 0 beq _0800BE74 adds r0, r4, 0 movs r1, 0x41 _0800BE30: bl PokemonGetField cmp r0, 0 beq _0800BE74 adds r0, r4, 0 movs r1, 0x41 bl PokemonGetField movs r1, 0xCE lsls r1, 1 cmp r0, r1 beq _0800BE74 adds r0, r4, 0 movs r1, 0x2D bl PokemonGetField cmp r0, 0 bne _0800BE74 ldr r1, _0800BE70 mov r0, r8 subs r0, 0x2 lsls r0, 1 adds r0, r1 ldrh r0, [r0] cmp r0, r5 beq _0800BE74 adds r0, r6, r1 strh r5, [r0] b _0800BE7C .align 2, 0 _0800BE6C: .4byte 0x030045c0 _0800BE70: .4byte 0x02024a6a _0800BE74: adds r7, 0x64 adds r5, 0x1 cmp r5, 0x5 ble _0800BD8C _0800BE7C: mov r8, r10 _0800BE7E: ldr r0, _0800BE98 ldrb r0, [r0] cmp r8, r0 bge _0800BE88 b _0800BD78 _0800BE88: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0800BE98: .4byte 0x02024a68 thumb_func_end sub_800BD54 thumb_func_start dp01_prepare_buffer dp01_prepare_buffer: @ 800BE9C push {r4-r6,lr} adds r4, r1, 0 lsls r0, 24 lsrs r3, r0, 24 adds r5, r3, 0 lsls r2, 16 lsrs r2, 16 ldr r0, _0800BEC4 ldrh r1, [r0] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _0800BEC8 adds r0, r3, 0 adds r1, r2, 0 adds r2, r4, 0 bl dp01_prepare_buffer_wireless_probably b _0800BF1A .align 2, 0 _0800BEC4: .4byte 0x020239f8 _0800BEC8: cmp r5, 0 beq _0800BED2 cmp r5, 0x1 beq _0800BEFC b _0800BF1A _0800BED2: movs r3, 0 cmp r3, r2 bge _0800BF1A ldr r6, _0800BEF4 ldr r5, _0800BEF8 _0800BEDC: ldrb r0, [r5] lsls r0, 9 adds r0, r3, r0 adds r0, r6 ldrb r1, [r4] strb r1, [r0] adds r4, 0x1 adds r3, 0x1 cmp r3, r2 blt _0800BEDC b _0800BF1A .align 2, 0 _0800BEF4: .4byte 0x02023a60 _0800BEF8: .4byte 0x02024a60 _0800BEFC: movs r3, 0 cmp r3, r2 bge _0800BF1A ldr r6, _0800BF20 ldr r5, _0800BF24 _0800BF06: ldrb r0, [r5] lsls r0, 9 adds r0, r3, r0 adds r0, r6 ldrb r1, [r4] strb r1, [r0] adds r4, 0x1 adds r3, 0x1 cmp r3, r2 blt _0800BF06 _0800BF1A: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0800BF20: .4byte 0x02024260 _0800BF24: .4byte 0x02024a60 thumb_func_end dp01_prepare_buffer thumb_func_start sub_800BF28 sub_800BF28: @ 800BF28 push {r4-r6,lr} sub sp, 0x4 ldr r0, _0800BFD0 movs r1, 0 bl CreateTask ldr r2, _0800BFD4 strb r0, [r2] ldr r5, _0800BFD8 ldrb r1, [r2] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r5 movs r6, 0 movs r4, 0 strh r4, [r0, 0x1E] ldrb r1, [r2] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r5 strh r4, [r0, 0x20] ldrb r1, [r2] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r5 strh r4, [r0, 0x22] ldrb r1, [r2] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r5 strh r4, [r0, 0x24] ldrb r1, [r2] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r5 strh r4, [r0, 0x26] ldr r0, _0800BFDC movs r1, 0 bl CreateTask ldr r2, _0800BFE0 strb r0, [r2] ldrb r1, [r2] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r5 strh r4, [r0, 0x20] ldrb r1, [r2] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r5 strh r4, [r0, 0x22] ldrb r1, [r2] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r5 strh r4, [r0, 0x24] ldrb r1, [r2] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r5 strh r4, [r0, 0x26] ldr r0, _0800BFE4 strb r6, [r0] mov r0, sp strh r4, [r0] ldr r1, _0800BFE8 ldr r2, _0800BFEC bl CpuSet add sp, 0x4 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0800BFD0: .4byte sub_800C1A8 _0800BFD4: .4byte 0x020238c4 _0800BFD8: .4byte 0x03004b20 _0800BFDC: .4byte sub_800C47C _0800BFE0: .4byte 0x020238c5 _0800BFE4: .4byte 0x020238c6 _0800BFE8: .4byte 0x02014000 _0800BFEC: .4byte 0x01001000 thumb_func_end sub_800BF28 thumb_func_start dp01_prepare_buffer_wireless_probably dp01_prepare_buffer_wireless_probably: @ 800BFF0 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} mov r10, r2 lsls r0, 24 lsrs r6, r0, 24 lsls r1, 16 lsrs r1, 16 mov r8, r1 movs r1, 0x3 mov r0, r8 bics r0, r1 adds r0, 0x4 mov r9, r0 ldr r2, _0800C168 ldr r3, _0800C16C ldrb r1, [r3] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r4, r0, r2 movs r1, 0x24 ldrsh r0, [r4, r1] add r0, r9 adds r0, 0x9 movs r1, 0x80 lsls r1, 5 adds r5, r2, 0 cmp r0, r1 ble _0800C042 ldrh r0, [r4, 0x24] movs r2, 0 strh r0, [r4, 0x20] ldrb r1, [r3] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r5 strh r2, [r0, 0x24] _0800C042: ldr r4, _0800C170 ldrb r1, [r3] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r5 movs r2, 0x24 ldrsh r0, [r0, r2] movs r7, 0xA0 lsls r7, 9 adds r0, r7 adds r0, r4 strb r6, [r0] ldrb r1, [r3] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r5 movs r1, 0x24 ldrsh r0, [r0, r1] ldr r2, _0800C174 adds r0, r2 adds r0, r4 ldr r1, _0800C178 ldrb r1, [r1] strb r1, [r0] ldrb r1, [r3] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r5 movs r7, 0x24 ldrsh r0, [r0, r7] ldr r1, _0800C17C adds r0, r1 adds r0, r4 ldr r1, _0800C180 ldrb r1, [r1] strb r1, [r0] ldrb r1, [r3] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r5 movs r2, 0x24 ldrsh r0, [r0, r2] ldr r7, _0800C184 adds r0, r7 adds r0, r4 ldr r1, _0800C188 ldrb r1, [r1] strb r1, [r0] ldrb r1, [r3] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r5 movs r1, 0x24 ldrsh r0, [r0, r1] ldr r2, _0800C18C adds r0, r2 adds r0, r4 mov r7, r9 strb r7, [r0] ldrb r1, [r3] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r5 movs r2, 0x24 ldrsh r1, [r0, r2] ldr r7, _0800C190 adds r1, r7 adds r1, r4 movs r0, 0xFF lsls r0, 8 mov r2, r9 ands r0, r2 asrs r0, 8 strb r0, [r1] ldrb r1, [r3] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r5 movs r7, 0x24 ldrsh r0, [r0, r7] ldr r1, _0800C194 adds r0, r1 adds r0, r4 ldr r1, _0800C198 ldrb r1, [r1] strb r1, [r0] ldrb r1, [r3] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r5 movs r2, 0x24 ldrsh r0, [r0, r2] ldr r7, _0800C19C adds r0, r7 adds r0, r4 ldr r1, _0800C1A0 ldrb r1, [r1] strb r1, [r0] movs r2, 0 cmp r2, r8 bge _0800C146 mov r12, r4 adds r6, r3, 0 ldr r4, _0800C1A4 _0800C122: ldrb r1, [r6] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 ldr r1, _0800C168 adds r0, r1 movs r7, 0x24 ldrsh r1, [r0, r7] adds r0, r2, r4 adds r1, r0 add r1, r12 mov r7, r10 adds r0, r7, r2 ldrb r0, [r0] strb r0, [r1] adds r2, 0x1 cmp r2, r8 blt _0800C122 _0800C146: ldrb r0, [r3] lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r5 ldrh r0, [r1, 0x24] add r0, r9 adds r0, 0x8 strh r0, [r1, 0x24] pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0800C168: .4byte 0x03004b20 _0800C16C: .4byte 0x020238c4 _0800C170: .4byte 0x02000000 _0800C174: .4byte 0x00014001 _0800C178: .4byte 0x02024a60 _0800C17C: .4byte 0x00014002 _0800C180: .4byte 0x02024c07 _0800C184: .4byte 0x00014003 _0800C188: .4byte 0x02024c08 _0800C18C: .4byte 0x00014004 _0800C190: .4byte 0x00014005 _0800C194: .4byte 0x00014006 _0800C198: .4byte 0x02024c0c _0800C19C: .4byte 0x00014007 _0800C1A0: .4byte 0x02024c0a _0800C1A4: .4byte 0x00014008 thumb_func_end dp01_prepare_buffer_wireless_probably thumb_func_start sub_800C1A8 sub_800C1A8: @ 800C1A8 push {r4-r7,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r1, _0800C1D0 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 movs r2, 0x1E ldrsh r0, [r0, r2] adds r7, r1, 0 cmp r0, 0x5 bls _0800C1C4 b _0800C354 _0800C1C4: lsls r0, 2 ldr r1, _0800C1D4 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0800C1D0: .4byte 0x03004b20 _0800C1D4: .4byte _0800C1D8 .align 2, 0 _0800C1D8: .4byte _0800C1F0 .4byte _0800C204 .4byte _0800C220 .4byte _0800C25C .4byte _0800C2E6 .4byte _0800C338 _0800C1F0: lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r7 movs r1, 0x64 strh r1, [r0, 0x1C] ldrh r1, [r0, 0x1E] adds r1, 0x1 strh r1, [r0, 0x1E] b _0800C354 _0800C204: lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r1, r0, r7 ldrh r0, [r1, 0x1C] subs r0, 0x1 strh r0, [r1, 0x1C] lsls r0, 16 cmp r0, 0 beq _0800C21A b _0800C354 _0800C21A: ldrh r0, [r1, 0x1E] adds r0, 0x1 b _0800C352 _0800C220: bl GetLinkPlayerCount_2 bl IsLinkMaster lsls r0, 24 cmp r0, 0 beq _0800C248 bl sub_8007F4C ldr r0, _0800C244 lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 ldrh r0, [r1, 0x1E] adds r0, 0x1 b _0800C352 .align 2, 0 _0800C244: .4byte 0x03004b20 _0800C248: ldr r0, _0800C258 lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 ldrh r0, [r1, 0x1E] adds r0, 0x1 b _0800C352 .align 2, 0 _0800C258: .4byte 0x03004b20 _0800C25C: lsls r1, r4, 2 adds r0, r1, r4 lsls r0, 3 adds r2, r0, r7 movs r5, 0x26 ldrsh r3, [r2, r5] movs r0, 0x24 ldrsh r6, [r2, r0] mov r12, r6 cmp r3, r12 beq _0800C354 ldrh r0, [r2, 0x22] movs r6, 0x22 ldrsh r5, [r2, r6] cmp r5, 0 bne _0800C2E0 cmp r3, r12 ble _0800C28C movs r6, 0x20 ldrsh r0, [r2, r6] cmp r3, r0 bne _0800C28C strh r5, [r2, 0x20] strh r5, [r2, 0x26] _0800C28C: ldr r5, _0800C2D4 adds r4, r1, r4 lsls r4, 3 adds r4, r7 movs r0, 0x26 ldrsh r2, [r4, r0] ldr r1, _0800C2D8 adds r0, r2, r1 adds r0, r5 ldrb r1, [r0] ldr r6, _0800C2DC adds r2, r6 adds r2, r5 ldrb r0, [r2] lsls r0, 8 orrs r1, r0 adds r1, 0x8 lsls r1, 16 lsrs r6, r1, 16 bl bitmask_all_link_players_but_self lsls r0, 24 lsrs r0, 24 movs r2, 0x26 ldrsh r1, [r4, r2] movs r2, 0xA0 lsls r2, 9 adds r5, r2 adds r1, r5 adds r2, r6, 0 bl SendBlock ldrh r0, [r4, 0x1E] adds r0, 0x1 strh r0, [r4, 0x1E] b _0800C354 .align 2, 0 _0800C2D4: .4byte 0x02000000 _0800C2D8: .4byte 0x00014004 _0800C2DC: .4byte 0x00014005 _0800C2E0: subs r0, 0x1 strh r0, [r2, 0x22] b _0800C354 _0800C2E6: bl sub_8007ECC lsls r0, 24 cmp r0, 0 beq _0800C354 ldr r2, _0800C328 ldr r0, _0800C32C lsls r3, r4, 2 adds r3, r4 lsls r3, 3 adds r3, r0 movs r4, 0x26 ldrsh r1, [r3, r4] ldr r5, _0800C330 adds r0, r1, r5 adds r0, r2 ldrb r0, [r0] ldr r6, _0800C334 adds r1, r6 adds r1, r2 ldrb r1, [r1] lsls r1, 8 movs r2, 0x1 strh r2, [r3, 0x22] orrs r0, r1 ldrh r1, [r3, 0x26] adds r0, r1 adds r0, 0x8 strh r0, [r3, 0x26] movs r0, 0x3 strh r0, [r3, 0x1E] b _0800C354 .align 2, 0 _0800C328: .4byte 0x02000000 _0800C32C: .4byte 0x03004b20 _0800C330: .4byte 0x00014004 _0800C334: .4byte 0x00014005 _0800C338: lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r1, r0, r7 ldrh r0, [r1, 0x22] subs r0, 0x1 strh r0, [r1, 0x22] lsls r0, 16 cmp r0, 0 bne _0800C354 movs r0, 0x1 strh r0, [r1, 0x22] movs r0, 0x3 _0800C352: strh r0, [r1, 0x1E] _0800C354: pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_800C1A8 thumb_func_start sub_800C35C sub_800C35C: @ 800C35C push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} ldr r0, _0800C38C ldrb r0, [r0] cmp r0, 0 beq _0800C458 ldr r0, _0800C390 ldrh r1, [r0] movs r0, 0x20 ands r0, r1 cmp r0, 0 beq _0800C458 ldr r0, _0800C394 ldr r1, [r0, 0x14] ldr r0, _0800C398 cmp r1, r0 bne _0800C458 movs r4, 0 ldr r0, _0800C39C mov r10, r0 b _0800C44C .align 2, 0 _0800C38C: .4byte 0x03002fa4 _0800C390: .4byte 0x020239f8 _0800C394: .4byte 0x03002970 _0800C398: .4byte 0x00002211 _0800C39C: .4byte 0x03002b80 _0800C3A0: bl GetBlockRecievedStatus lsls r0, 24 lsrs r0, 24 ldr r2, _0800C468 lsls r1, r4, 2 adds r1, r2 ldr r1, [r1] ands r0, r1 adds r1, r4, 0x1 mov r9, r1 cmp r0, 0 beq _0800C446 adds r0, r4, 0 bl ResetBlockReceivedFlag lsls r0, r4, 8 mov r2, r10 adds r3, r0, r2 ldr r1, _0800C46C adds r0, r1 ldrh r6, [r0] ldr r7, _0800C470 ldr r2, _0800C474 mov r12, r2 ldrb r1, [r2] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r2, r0, r7 movs r0, 0x24 ldrsh r1, [r2, r0] adds r0, r6, 0 adds r0, 0x9 adds r1, r0 movs r0, 0x80 lsls r0, 5 cmp r1, r0 ble _0800C402 ldrh r0, [r2, 0x24] strh r0, [r2, 0x20] mov r2, r12 ldrb r1, [r2] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r7 movs r1, 0 strh r1, [r0, 0x24] _0800C402: mov r2, r12 ldrb r1, [r2] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r7 movs r2, 0x24 ldrsh r1, [r0, r2] ldr r0, _0800C478 adds r5, r1, r0 adds r4, r3, 0 movs r2, 0 adds r3, r6, 0 adds r3, 0x8 mov r8, r7 mov r7, r12 cmp r2, r3 bge _0800C434 _0800C426: adds r0, r5, r2 adds r1, r4, r2 ldrb r1, [r1] strb r1, [r0] adds r2, 0x1 cmp r2, r3 blt _0800C426 _0800C434: ldrb r0, [r7] lsls r1, r0, 2 adds r1, r0 lsls r1, 3 add r1, r8 ldrh r0, [r1, 0x24] adds r0, r6, r0 adds r0, 0x8 strh r0, [r1, 0x24] _0800C446: mov r1, r9 lsls r0, r1, 24 lsrs r4, r0, 24 _0800C44C: bl GetLinkPlayerCount lsls r0, 24 lsrs r0, 24 cmp r4, r0 bcc _0800C3A0 _0800C458: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0800C468: .4byte gUnknown_0820872C _0800C46C: .4byte 0x03002b84 _0800C470: .4byte 0x03004b20 _0800C474: .4byte 0x020238c5 _0800C478: .4byte 0x02015000 thumb_func_end sub_800C35C thumb_func_start sub_800C47C sub_800C47C: @ 800C47C push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} lsls r0, 24 lsrs r0, 24 mov r8, r0 ldr r1, _0800C4FC lsls r0, 2 add r0, r8 lsls r0, 3 adds r3, r0, r1 movs r0, 0x26 ldrsh r2, [r3, r0] movs r4, 0x24 ldrsh r0, [r3, r4] adds r4, r1, 0 cmp r2, r0 bne _0800C4A4 b _0800C5FA _0800C4A4: cmp r2, r0 ble _0800C4B6 movs r1, 0x20 ldrsh r0, [r3, r1] cmp r2, r0 bne _0800C4B6 movs r0, 0 strh r0, [r3, 0x20] strh r0, [r3, 0x26] _0800C4B6: ldr r5, _0800C500 mov r2, r8 lsls r1, r2, 2 adds r0, r1, r2 lsls r0, 3 adds r6, r0, r4 movs r4, 0x26 ldrsh r3, [r6, r4] ldr r2, _0800C504 adds r0, r3, r2 adds r0, r5 ldrb r4, [r0] adds r2, 0x3 adds r0, r3, r2 adds r0, r5 ldrb r7, [r0] adds r2, 0x1 adds r0, r3, r2 adds r0, r5 ldrb r0, [r0] lsls r0, 8 orrs r7, r0 subs r2, 0x5 adds r0, r3, r2 adds r0, r5 ldrb r0, [r0] mov r9, r1 cmp r0, 0x1 beq _0800C5B0 cmp r0, 0x1 bgt _0800C508 cmp r0, 0 beq _0800C50E b _0800C5E8 .align 2, 0 _0800C4FC: .4byte 0x03004b20 _0800C500: .4byte 0x02000000 _0800C504: .4byte 0x00015001 _0800C508: cmp r0, 0x2 beq _0800C5CC b _0800C5E8 _0800C50E: ldr r2, _0800C588 ldr r1, _0800C58C lsls r0, r4, 2 adds r0, r1 ldr r1, [r2] ldr r0, [r0] ands r1, r0 cmp r1, 0 bne _0800C5FA lsls r0, r4, 9 ldr r1, _0800C590 adds r0, r1 ldr r2, _0800C594 adds r1, r5, r2 adds r1, r3, r1 adds r2, r7, 0 bl memcpy adds r0, r4, 0 bl sub_80155A4 ldr r0, _0800C598 ldrh r1, [r0] movs r0, 0x4 ands r0, r1 cmp r0, 0 bne _0800C5E8 ldr r1, _0800C59C movs r4, 0x26 ldrsh r0, [r6, r4] ldr r2, _0800C5A0 adds r0, r2 adds r0, r5 ldrb r0, [r0] strb r0, [r1] ldr r1, _0800C5A4 movs r4, 0x26 ldrsh r0, [r6, r4] adds r2, 0x1 adds r0, r2 adds r0, r5 ldrb r0, [r0] strb r0, [r1] ldr r1, _0800C5A8 movs r4, 0x26 ldrsh r0, [r6, r4] adds r2, 0x3 adds r0, r2 adds r0, r5 ldrb r0, [r0] strb r0, [r1] ldr r1, _0800C5AC movs r4, 0x26 ldrsh r0, [r6, r4] adds r2, 0x1 adds r0, r2 adds r0, r5 ldrb r0, [r0] strb r0, [r1] b _0800C5E8 .align 2, 0 _0800C588: .4byte 0x02024a64 _0800C58C: .4byte gUnknown_0820872C _0800C590: .4byte 0x02023a60 _0800C594: .4byte 0x00015008 _0800C598: .4byte 0x020239f8 _0800C59C: .4byte 0x02024c07 _0800C5A0: .4byte 0x00015002 _0800C5A4: .4byte 0x02024c08 _0800C5A8: .4byte 0x02024c0c _0800C5AC: .4byte 0x02024c0a _0800C5B0: lsls r0, r4, 9 ldr r1, _0800C5C4 adds r0, r1 ldr r4, _0800C5C8 adds r1, r5, r4 adds r1, r3, r1 adds r2, r7, 0 bl memcpy b _0800C5E8 .align 2, 0 _0800C5C4: .4byte 0x02024260 _0800C5C8: .4byte 0x00015008 _0800C5CC: ldr r1, _0800C608 adds r0, r3, r1 adds r0, r5 ldrb r2, [r0] ldr r3, _0800C60C ldr r1, _0800C610 lsls r0, r4, 2 adds r0, r1 lsls r2, 2 ldr r1, [r0] lsls r1, r2 ldr r0, [r3] bics r0, r1 str r0, [r3] _0800C5E8: ldr r0, _0800C614 mov r1, r9 add r1, r8 lsls r1, 3 adds r1, r0 ldrh r0, [r1, 0x26] adds r0, r7, r0 adds r0, 0x8 strh r0, [r1, 0x26] _0800C5FA: pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0800C608: .4byte 0x00015008 _0800C60C: .4byte 0x02024a64 _0800C610: .4byte gUnknown_0820872C _0800C614: .4byte 0x03004b20 thumb_func_end sub_800C47C thumb_func_start dp01_build_cmdbuf_x00_a_b_0 dp01_build_cmdbuf_x00_a_b_0: @ 800C618 push {r4,lr} adds r4, r1, 0 lsls r0, 24 lsrs r0, 24 ldr r1, _0800C638 movs r3, 0 strb r3, [r1] strb r4, [r1, 0x1] strb r2, [r1, 0x2] strb r3, [r1, 0x3] movs r2, 0x4 bl dp01_prepare_buffer pop {r4} pop {r0} bx r0 .align 2, 0 _0800C638: .4byte 0x03004040 thumb_func_end dp01_build_cmdbuf_x00_a_b_0 thumb_func_start dp01_build_cmdbuf_x01_a_b_0 dp01_build_cmdbuf_x01_a_b_0: @ 800C63C push {r4,r5,lr} adds r5, r1, 0 lsls r0, 24 lsrs r0, 24 ldr r1, _0800C660 movs r4, 0 movs r3, 0x1 strb r3, [r1] strb r5, [r1, 0x1] strb r2, [r1, 0x2] strb r4, [r1, 0x3] movs r2, 0x4 bl dp01_prepare_buffer pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0800C660: .4byte 0x03004040 thumb_func_end dp01_build_cmdbuf_x01_a_b_0 thumb_func_start dp01_build_cmdbuf_x02_a_b_varargs dp01_build_cmdbuf_x02_a_b_varargs: @ 800C664 push {r4-r6,lr} ldr r4, [sp, 0x10] lsls r0, 24 lsrs r6, r0, 24 lsls r3, 24 lsrs r5, r3, 24 ldr r0, _0800C6A0 movs r3, 0x2 strb r3, [r0] strb r1, [r0, 0x1] strb r2, [r0, 0x2] adds r1, r0, 0 cmp r5, 0 beq _0800C692 adds r3, r1, 0x3 adds r2, r5, 0 _0800C684: ldrb r0, [r4] strb r0, [r3] adds r4, 0x1 adds r3, 0x1 subs r2, 0x1 cmp r2, 0 bne _0800C684 _0800C692: adds r2, r5, 0x3 adds r0, r6, 0 bl dp01_prepare_buffer pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0800C6A0: .4byte 0x03004040 thumb_func_end dp01_build_cmdbuf_x02_a_b_varargs thumb_func_start unref_sub_800C6A4 unref_sub_800C6A4: @ 800C6A4 push {r4-r6,lr} lsls r0, 24 lsrs r6, r0, 24 lsls r2, 24 lsrs r4, r2, 24 ldr r0, _0800C6E0 movs r2, 0x3 strb r2, [r0] strb r1, [r0, 0x1] strb r4, [r0, 0x2] adds r5, r0, 0 cmp r4, 0 beq _0800C6D0 adds r1, r5, 0x3 adds r2, r4, 0 _0800C6C2: ldrb r0, [r3] strb r0, [r1] adds r3, 0x1 adds r1, 0x1 subs r2, 0x1 cmp r2, 0 bne _0800C6C2 _0800C6D0: adds r2, r4, 0x3 adds r0, r6, 0 adds r1, r5, 0 bl dp01_prepare_buffer pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0800C6E0: .4byte 0x03004040 thumb_func_end unref_sub_800C6A4 thumb_func_start dp01_build_cmdbuf_x04_4_4_4 dp01_build_cmdbuf_x04_4_4_4: @ 800C6E4 push {lr} lsls r0, 24 lsrs r0, 24 ldr r1, _0800C700 movs r2, 0x4 strb r2, [r1] strb r2, [r1, 0x1] strb r2, [r1, 0x2] strb r2, [r1, 0x3] bl dp01_prepare_buffer pop {r0} bx r0 .align 2, 0 _0800C700: .4byte 0x03004040 thumb_func_end dp01_build_cmdbuf_x04_4_4_4 thumb_func_start sub_800C704 sub_800C704: @ 800C704 push {r4,lr} adds r4, r1, 0 lsls r0, 24 lsrs r0, 24 ldr r1, _0800C724 movs r3, 0x5 strb r3, [r1] strb r4, [r1, 0x1] strb r2, [r1, 0x2] strb r3, [r1, 0x3] movs r2, 0x4 bl dp01_prepare_buffer pop {r4} pop {r0} bx r0 .align 2, 0 _0800C724: .4byte 0x03004040 thumb_func_end sub_800C704 thumb_func_start dp01_build_cmdbuf_x06_a dp01_build_cmdbuf_x06_a: @ 800C728 push {lr} adds r3, r1, 0 lsls r0, 24 lsrs r0, 24 ldr r1, _0800C744 movs r2, 0x6 strb r2, [r1] strb r3, [r1, 0x1] movs r2, 0x2 bl dp01_prepare_buffer pop {r0} bx r0 .align 2, 0 _0800C744: .4byte 0x03004040 thumb_func_end dp01_build_cmdbuf_x06_a thumb_func_start dp01_build_cmdbuf_x07_7_7_7 dp01_build_cmdbuf_x07_7_7_7: @ 800C748 push {lr} lsls r0, 24 lsrs r0, 24 ldr r1, _0800C764 movs r2, 0x7 strb r2, [r1] strb r2, [r1, 0x1] strb r2, [r1, 0x2] strb r2, [r1, 0x3] movs r2, 0x4 bl dp01_prepare_buffer pop {r0} bx r0 .align 2, 0 _0800C764: .4byte 0x03004040 thumb_func_end dp01_build_cmdbuf_x07_7_7_7 thumb_func_start dp01_build_cmdbuf_x08_8_8_8 dp01_build_cmdbuf_x08_8_8_8: @ 800C768 push {lr} lsls r0, 24 lsrs r0, 24 ldr r1, _0800C784 movs r2, 0x8 strb r2, [r1] strb r2, [r1, 0x1] strb r2, [r1, 0x2] strb r2, [r1, 0x3] movs r2, 0x4 bl dp01_prepare_buffer pop {r0} bx r0 .align 2, 0 _0800C784: .4byte 0x03004040 thumb_func_end dp01_build_cmdbuf_x08_8_8_8 thumb_func_start dp01_build_cmdbuf_x09_9_9_9 dp01_build_cmdbuf_x09_9_9_9: @ 800C788 push {lr} lsls r0, 24 lsrs r0, 24 ldr r1, _0800C7A4 movs r2, 0x9 strb r2, [r1] strb r2, [r1, 0x1] strb r2, [r1, 0x2] strb r2, [r1, 0x3] movs r2, 0x4 bl dp01_prepare_buffer pop {r0} bx r0 .align 2, 0 _0800C7A4: .4byte 0x03004040 thumb_func_end dp01_build_cmdbuf_x09_9_9_9 thumb_func_start dp01_build_cmdbuf_x0A_A_A_A dp01_build_cmdbuf_x0A_A_A_A: @ 800C7A8 push {lr} lsls r0, 24 lsrs r0, 24 ldr r1, _0800C7C4 movs r2, 0xA strb r2, [r1] strb r2, [r1, 0x1] strb r2, [r1, 0x2] strb r2, [r1, 0x3] movs r2, 0x4 bl dp01_prepare_buffer pop {r0} bx r0 .align 2, 0 _0800C7C4: .4byte 0x03004040 thumb_func_end dp01_build_cmdbuf_x0A_A_A_A thumb_func_start dp01_build_cmdbuf_x0B_B_B_B dp01_build_cmdbuf_x0B_B_B_B: @ 800C7C8 push {lr} lsls r0, 24 lsrs r0, 24 ldr r1, _0800C7E4 movs r2, 0xB strb r2, [r1] strb r2, [r1, 0x1] strb r2, [r1, 0x2] strb r2, [r1, 0x3] movs r2, 0x4 bl dp01_prepare_buffer pop {r0} bx r0 .align 2, 0 _0800C7E4: .4byte 0x03004040 thumb_func_end dp01_build_cmdbuf_x0B_B_B_B thumb_func_start dp01_build_cmdbuf_x0C_C_C_C dp01_build_cmdbuf_x0C_C_C_C: @ 800C7E8 push {lr} lsls r0, 24 lsrs r0, 24 ldr r1, _0800C804 movs r2, 0xC strb r2, [r1] strb r2, [r1, 0x1] strb r2, [r1, 0x2] strb r2, [r1, 0x3] movs r2, 0x4 bl dp01_prepare_buffer pop {r0} bx r0 .align 2, 0 _0800C804: .4byte 0x03004040 thumb_func_end dp01_build_cmdbuf_x0C_C_C_C thumb_func_start dp01_build_cmdbuf_x0D_a dp01_build_cmdbuf_x0D_a: @ 800C808 push {lr} adds r3, r1, 0 lsls r0, 24 lsrs r0, 24 ldr r1, _0800C824 movs r2, 0xD strb r2, [r1] strb r3, [r1, 0x1] movs r2, 0x2 bl dp01_prepare_buffer pop {r0} bx r0 .align 2, 0 _0800C824: .4byte 0x03004040 thumb_func_end dp01_build_cmdbuf_x0D_a thumb_func_start unref_sub_800C828 unref_sub_800C828: @ 800C828 push {r4-r6,lr} lsls r0, 24 lsrs r6, r0, 24 lsls r1, 24 lsrs r4, r1, 24 ldr r1, _0800C86C movs r0, 0xE strb r0, [r1] strb r4, [r1, 0x1] lsls r0, r4, 1 adds r0, r4 adds r5, r1, 0 cmp r0, 0 beq _0800C856 adds r1, r5, 0x2 adds r3, r0, 0 _0800C848: ldrb r0, [r2] strb r0, [r1] adds r2, 0x1 adds r1, 0x1 subs r3, 0x1 cmp r3, 0 bne _0800C848 _0800C856: lsls r2, r4, 1 adds r2, r4 adds r2, 0x2 adds r0, r6, 0 adds r1, r5, 0 bl dp01_prepare_buffer pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0800C86C: .4byte 0x03004040 thumb_func_end unref_sub_800C828 thumb_func_start dp01_build_cmdbuf_x0F_aa_b_cc_dddd_e_mlc_weather_00_x1Cbytes dp01_build_cmdbuf_x0F_aa_b_cc_dddd_e_mlc_weather_00_x1Cbytes: @ 800C870 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x4 ldr r4, [sp, 0x1C] ldr r5, [sp, 0x20] lsls r0, 24 lsrs r0, 24 mov r8, r0 lsls r1, 16 lsrs r1, 16 lsls r3, 16 lsrs r3, 16 ldr r7, _0800C904 movs r0, 0 mov r12, r0 movs r0, 0xF strb r0, [r7] strb r1, [r7, 0x1] lsrs r1, 8 strb r1, [r7, 0x2] strb r2, [r7, 0x3] strb r3, [r7, 0x4] movs r6, 0xFF lsls r6, 8 lsrs r3, 8 strb r3, [r7, 0x5] strb r4, [r7, 0x6] adds r0, r4, 0 ands r0, r6 asrs r0, 8 strb r0, [r7, 0x7] movs r0, 0xFF lsls r0, 16 ands r0, r4 asrs r0, 16 strb r0, [r7, 0x8] lsrs r4, 24 strb r4, [r7, 0x9] strb r5, [r7, 0xA] ldr r0, _0800C908 ldrb r0, [r0] strb r0, [r7, 0xB] mov r0, r12 str r0, [sp] movs r0, 0xE movs r1, 0 movs r2, 0xD movs r3, 0 bl sub_8018324 lsls r0, 24 lsrs r0, 24 cmp r0, 0 bne _0800C910 str r0, [sp] movs r0, 0xE movs r1, 0 movs r2, 0x4D movs r3, 0 bl sub_8018324 lsls r0, 24 cmp r0, 0 bne _0800C910 ldr r0, _0800C90C ldrh r0, [r0] strb r0, [r7, 0xC] ands r6, r0 lsrs r0, r6, 8 strb r0, [r7, 0xD] adds r4, r7, 0 b _0800C91A .align 2, 0 _0800C904: .4byte 0x03004040 _0800C908: .4byte 0x02024c0e _0800C90C: .4byte 0x02024db8 _0800C910: ldr r0, _0800C944 movs r1, 0 strb r1, [r0, 0xC] strb r1, [r0, 0xD] adds r4, r0, 0 _0800C91A: movs r0, 0 strb r0, [r4, 0xE] strb r0, [r4, 0xF] adds r0, r4, 0 adds r0, 0x10 ldr r1, [sp, 0x24] movs r2, 0x1C bl memcpy mov r0, r8 adds r1, r4, 0 movs r2, 0x2C bl dp01_prepare_buffer add sp, 0x4 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0800C944: .4byte 0x03004040 thumb_func_end dp01_build_cmdbuf_x0F_aa_b_cc_dddd_e_mlc_weather_00_x1Cbytes thumb_func_start dp01_build_cmdbuf_x10_TODO dp01_build_cmdbuf_x10_TODO: @ 800C948 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} lsls r0, 24 lsrs r0, 24 mov r10, r0 lsls r1, 16 lsrs r1, 16 ldr r2, _0800CA2C movs r0, 0x10 strb r0, [r2] ldr r0, _0800CA30 ldrb r0, [r0] strb r0, [r2, 0x1] strb r1, [r2, 0x2] lsrs r1, 8 strb r1, [r2, 0x3] adds r0, r2, 0x4 mov r12, r0 ldr r4, _0800CA34 ldrh r0, [r4] strh r0, [r2, 0x4] ldr r0, _0800CA38 ldrh r0, [r0] mov r1, r12 strh r0, [r1, 0x2] ldr r0, _0800CA3C ldrh r0, [r0] strh r0, [r1, 0x4] ldr r0, _0800CA40 ldrb r0, [r0] strb r0, [r1, 0x6] ldr r1, _0800CA44 ldr r3, _0800CA48 adds r0, r1, r3 ldrb r0, [r0] mov r7, r12 strb r0, [r7, 0x7] adds r3, 0x5B adds r0, r1, r3 ldrb r0, [r0] strb r0, [r7, 0x8] ldr r7, _0800CA4C adds r1, r7 ldrb r0, [r1] mov r1, r12 strb r0, [r1, 0x9] ldr r0, _0800CA50 ldrb r0, [r0] strb r0, [r1, 0xA] ldr r3, _0800CA54 ldrh r1, [r4] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r3 ldrb r0, [r0, 0x2] mov r3, r12 strb r0, [r3, 0xB] movs r3, 0 mov r9, r2 ldr r7, _0800CA58 mov r8, r7 adds r2, 0x10 ldr r0, _0800CA5C adds r4, r0, 0 adds r4, 0x20 _0800C9D2: adds r1, r2, r3 ldrb r0, [r4] strb r0, [r1] adds r4, 0x58 adds r3, 0x1 cmp r3, 0x3 ble _0800C9D2 movs r3, 0 mov r5, r12 adds r5, 0x10 mov r4, r12 adds r4, 0x20 ldr r6, _0800CA60 mov r2, r12 adds r2, 0x30 _0800C9F0: adds r1, r5, r3 ldr r7, _0800CA64 adds r0, r3, r7 ldrb r0, [r0] strb r0, [r1] adds r1, r4, r3 adds r0, r3, r6 ldrb r0, [r0] strb r0, [r1] adds r1, r2, r3 mov r7, r8 adds r0, r3, r7 ldrb r0, [r0] strb r0, [r1] adds r3, 0x1 cmp r3, 0xF ble _0800C9F0 mov r0, r10 mov r1, r9 movs r2, 0x44 bl dp01_prepare_buffer pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0800CA2C: .4byte 0x03004040 _0800CA30: .4byte 0x02024d26 _0800CA34: .4byte 0x02024be6 _0800CA38: .4byte 0x02024be8 _0800CA3C: .4byte 0x02024c04 _0800CA40: .4byte 0x02024c06 _0800CA44: .4byte 0x02000000 _0800CA48: .4byte 0x00016003 _0800CA4C: .4byte 0x000160c1 _0800CA50: .4byte 0x02024c0b _0800CA54: .4byte gBattleMoves _0800CA58: .4byte 0x030042b0 _0800CA5C: .4byte 0x02024a80 _0800CA60: .4byte 0x03004290 _0800CA64: .4byte 0x030041c0 thumb_func_end dp01_build_cmdbuf_x10_TODO thumb_func_start dp01_build_cmdbuf_x11_TODO dp01_build_cmdbuf_x11_TODO: @ 800CA68 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} lsls r0, 24 lsrs r0, 24 mov r10, r0 lsls r1, 16 lsrs r1, 16 ldr r2, _0800CB28 movs r0, 0x11 strb r0, [r2] strb r0, [r2, 0x1] strb r1, [r2, 0x2] lsrs r1, 8 strb r1, [r2, 0x3] adds r0, r2, 0x4 mov r12, r0 ldr r0, _0800CB2C ldrh r0, [r0] strh r0, [r2, 0x4] ldr r0, _0800CB30 ldrh r0, [r0] mov r1, r12 strh r0, [r1, 0x2] ldr r0, _0800CB34 ldrh r0, [r0] strh r0, [r1, 0x4] ldr r0, _0800CB38 ldrb r0, [r0] strb r0, [r1, 0x6] ldr r0, _0800CB3C ldr r3, _0800CB40 adds r1, r0, r3 ldrb r1, [r1] mov r7, r12 strb r1, [r7, 0x7] ldr r1, _0800CB44 adds r0, r1 ldrb r0, [r0] strb r0, [r7, 0x8] movs r3, 0 mov r9, r2 ldr r7, _0800CB48 mov r8, r7 mov r4, r9 adds r4, 0x10 ldr r0, _0800CB4C adds r2, r0, 0 adds r2, 0x20 _0800CACE: adds r1, r4, r3 ldrb r0, [r2] strb r0, [r1] adds r2, 0x58 adds r3, 0x1 cmp r3, 0x3 ble _0800CACE movs r3, 0 mov r5, r12 adds r5, 0x10 mov r4, r12 adds r4, 0x20 ldr r6, _0800CB50 mov r2, r12 adds r2, 0x30 _0800CAEC: adds r1, r5, r3 ldr r7, _0800CB54 adds r0, r3, r7 ldrb r0, [r0] strb r0, [r1] adds r1, r4, r3 adds r0, r3, r6 ldrb r0, [r0] strb r0, [r1] adds r1, r2, r3 mov r7, r8 adds r0, r3, r7 ldrb r0, [r0] strb r0, [r1] adds r3, 0x1 cmp r3, 0xF ble _0800CAEC mov r0, r10 mov r1, r9 movs r2, 0x44 bl dp01_prepare_buffer pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0800CB28: .4byte 0x03004040 _0800CB2C: .4byte 0x02024be6 _0800CB30: .4byte 0x02024be8 _0800CB34: .4byte 0x02024c04 _0800CB38: .4byte 0x02024c06 _0800CB3C: .4byte 0x02000000 _0800CB40: .4byte 0x00016003 _0800CB44: .4byte 0x0001605e _0800CB48: .4byte 0x030042b0 _0800CB4C: .4byte 0x02024a80 _0800CB50: .4byte 0x03004290 _0800CB54: .4byte 0x030041c0 thumb_func_end dp01_build_cmdbuf_x11_TODO thumb_func_start dp01_build_cmdbuf_x12_a_bb dp01_build_cmdbuf_x12_a_bb: @ 800CB58 push {r4,lr} adds r4, r1, 0 lsls r0, 24 lsrs r0, 24 lsls r2, 16 lsrs r2, 16 ldr r1, _0800CB80 movs r3, 0x12 strb r3, [r1] strb r4, [r1, 0x1] strb r2, [r1, 0x2] lsrs r2, 8 strb r2, [r1, 0x3] movs r2, 0x4 bl dp01_prepare_buffer pop {r4} pop {r0} bx r0 .align 2, 0 _0800CB80: .4byte 0x03004040 thumb_func_end dp01_build_cmdbuf_x12_a_bb thumb_func_start unref_sub_800CB84 unref_sub_800CB84: @ 800CB84 push {lr} adds r3, r1, 0 lsls r0, 24 lsrs r0, 24 ldr r1, _0800CBA0 movs r2, 0x13 strb r2, [r1] strb r3, [r1, 0x1] movs r2, 0x2 bl dp01_prepare_buffer pop {r0} bx r0 .align 2, 0 _0800CBA0: .4byte 0x03004040 thumb_func_end unref_sub_800CB84 thumb_func_start sub_800CBA4 sub_800CBA4: @ 800CBA4 push {r4-r6,lr} adds r5, r3, 0 lsls r0, 24 lsrs r6, r0, 24 ldr r3, _0800CBDC movs r4, 0 movs r0, 0x14 strb r0, [r3] strb r1, [r3, 0x1] strb r2, [r3, 0x2] strb r4, [r3, 0x3] movs r2, 0 adds r1, r3, 0 adds r4, r1, 0x4 _0800CBC0: adds r0, r5, r2 ldrb r0, [r0] strb r0, [r4] adds r4, 0x1 adds r2, 0x1 cmp r2, 0x13 bls _0800CBC0 adds r0, r6, 0 movs r2, 0x18 bl dp01_prepare_buffer pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0800CBDC: .4byte 0x03004040 thumb_func_end sub_800CBA4 thumb_func_start sub_800CBE0 sub_800CBE0: @ 800CBE0 push {r4,r5,lr} adds r4, r1, 0 lsls r0, 24 lsrs r5, r0, 24 ldr r1, _0800CC10 movs r0, 0x15 strb r0, [r1] movs r2, 0 adds r3, r1, 0x1 _0800CBF2: adds r0, r4, r2 ldrb r0, [r0] strb r0, [r3] adds r3, 0x1 adds r2, 0x1 cmp r2, 0x2 ble _0800CBF2 adds r0, r5, 0 movs r2, 0x4 bl dp01_prepare_buffer pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0800CC10: .4byte 0x03004040 thumb_func_end sub_800CBE0 thumb_func_start dp01_build_cmdbuf_x16_a_b_c_ptr_d_e_f dp01_build_cmdbuf_x16_a_b_c_ptr_d_e_f: @ 800CC14 push {r4-r6,lr} ldr r6, [sp, 0x10] lsls r0, 24 lsrs r5, r0, 24 ldr r4, _0800CC4C movs r0, 0x16 strb r0, [r4] strb r1, [r4, 0x1] strb r2, [r4, 0x2] strb r3, [r4, 0x3] movs r2, 0 adds r1, r4, 0 adds r3, r1, 0x4 _0800CC2E: adds r0, r6, r2 ldrb r0, [r0] strb r0, [r3] adds r3, 0x1 adds r2, 0x1 cmp r2, 0x2 ble _0800CC2E adds r0, r5, 0 movs r2, 0x8 bl dp01_prepare_buffer pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0800CC4C: .4byte 0x03004040 thumb_func_end dp01_build_cmdbuf_x16_a_b_c_ptr_d_e_f thumb_func_start dp01_build_cmdbuf_x17_17_17_17 dp01_build_cmdbuf_x17_17_17_17: @ 800CC50 push {lr} lsls r0, 24 lsrs r0, 24 ldr r1, _0800CC6C movs r2, 0x17 strb r2, [r1] strb r2, [r1, 0x1] strb r2, [r1, 0x2] strb r2, [r1, 0x3] movs r2, 0x4 bl dp01_prepare_buffer pop {r0} bx r0 .align 2, 0 _0800CC6C: .4byte 0x03004040 thumb_func_end dp01_build_cmdbuf_x17_17_17_17 thumb_func_start dp01_build_cmdbuf_x18_0_aa_health_bar_update dp01_build_cmdbuf_x18_0_aa_health_bar_update: @ 800CC70 push {r4,lr} lsls r0, 24 lsrs r0, 24 lsls r1, 16 lsrs r1, 16 ldr r3, _0800CCA4 movs r4, 0 movs r2, 0x18 strb r2, [r3] strb r4, [r3, 0x1] strb r1, [r3, 0x2] lsls r1, 16 asrs r1, 16 movs r2, 0xFF lsls r2, 8 ands r1, r2 asrs r1, 8 strb r1, [r3, 0x3] adds r1, r3, 0 movs r2, 0x4 bl dp01_prepare_buffer pop {r4} pop {r0} bx r0 .align 2, 0 _0800CCA4: .4byte 0x03004040 thumb_func_end dp01_build_cmdbuf_x18_0_aa_health_bar_update thumb_func_start dp01_build_cmdbuf_x19_a_bb dp01_build_cmdbuf_x19_a_bb: @ 800CCA8 push {r4,lr} adds r4, r1, 0 lsls r0, 24 lsrs r0, 24 lsls r2, 16 lsrs r2, 16 ldr r1, _0800CCD8 movs r3, 0x19 strb r3, [r1] strb r4, [r1, 0x1] strb r2, [r1, 0x2] lsls r2, 16 asrs r2, 16 movs r3, 0xFF lsls r3, 8 ands r2, r3 asrs r2, 8 strb r2, [r1, 0x3] movs r2, 0x4 bl dp01_prepare_buffer pop {r4} pop {r0} bx r0 .align 2, 0 _0800CCD8: .4byte 0x03004040 thumb_func_end dp01_build_cmdbuf_x19_a_bb thumb_func_start dp01_build_cmdbuf_x1A_aaaa_bbbb dp01_build_cmdbuf_x1A_aaaa_bbbb: @ 800CCDC push {r4-r6,lr} adds r4, r1, 0 lsls r0, 24 lsrs r0, 24 ldr r1, _0800CD2C movs r3, 0x1A strb r3, [r1] strb r4, [r1, 0x1] movs r6, 0xFF lsls r6, 8 adds r3, r4, 0 ands r3, r6 lsrs r3, 8 strb r3, [r1, 0x2] movs r5, 0xFF lsls r5, 16 adds r3, r4, 0 ands r3, r5 lsrs r3, 16 strb r3, [r1, 0x3] lsrs r4, 24 strb r4, [r1, 0x4] strb r2, [r1, 0x5] adds r3, r2, 0 ands r3, r6 lsrs r3, 8 strb r3, [r1, 0x6] adds r3, r2, 0 ands r3, r5 lsrs r3, 16 strb r3, [r1, 0x7] lsrs r2, 24 strb r2, [r1, 0x8] movs r2, 0x9 bl dp01_prepare_buffer pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0800CD2C: .4byte 0x03004040 thumb_func_end dp01_build_cmdbuf_x1A_aaaa_bbbb thumb_func_start dp01_build_cmdbuf_x1B_aaaa_b dp01_build_cmdbuf_x1B_aaaa_b: @ 800CD30 push {r4,lr} adds r4, r1, 0 lsls r0, 24 lsrs r0, 24 ldr r1, _0800CD68 movs r3, 0x1B strb r3, [r1] strb r4, [r1, 0x1] strb r2, [r1, 0x2] movs r3, 0xFF lsls r3, 8 ands r3, r2 lsrs r3, 8 strb r3, [r1, 0x3] movs r3, 0xFF lsls r3, 16 ands r3, r2 lsrs r3, 16 strb r3, [r1, 0x4] lsrs r2, 24 strb r2, [r1, 0x5] movs r2, 0x6 bl dp01_prepare_buffer pop {r4} pop {r0} bx r0 .align 2, 0 _0800CD68: .4byte 0x03004040 thumb_func_end dp01_build_cmdbuf_x1B_aaaa_b thumb_func_start dp01_build_cmdbuf_x1C_a dp01_build_cmdbuf_x1C_a: @ 800CD6C push {lr} adds r3, r1, 0 lsls r0, 24 lsrs r0, 24 ldr r1, _0800CD88 movs r2, 0x1C strb r2, [r1] strb r3, [r1, 0x1] movs r2, 0x2 bl dp01_prepare_buffer pop {r0} bx r0 .align 2, 0 _0800CD88: .4byte 0x03004040 thumb_func_end dp01_build_cmdbuf_x1C_a thumb_func_start dp01_build_cmdbuf_x1D_1D_numargs_varargs dp01_build_cmdbuf_x1D_1D_numargs_varargs: @ 800CD8C push {r4-r6,lr} lsls r0, 24 lsrs r6, r0, 24 lsls r1, 16 lsrs r4, r1, 16 ldr r1, _0800CDD0 movs r0, 0x1D strb r0, [r1] strb r0, [r1, 0x1] strb r4, [r1, 0x2] lsrs r0, r4, 8 strb r0, [r1, 0x3] adds r5, r1, 0 cmp r4, 0 beq _0800CDBC adds r1, r5, 0x4 adds r3, r4, 0 _0800CDAE: ldrb r0, [r2] strb r0, [r1] adds r2, 0x1 adds r1, 0x1 subs r3, 0x1 cmp r3, 0 bne _0800CDAE _0800CDBC: adds r2, r4, 0x4 lsls r2, 16 lsrs r2, 16 adds r0, r6, 0 adds r1, r5, 0 bl dp01_prepare_buffer pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0800CDD0: .4byte 0x03004040 thumb_func_end dp01_build_cmdbuf_x1D_1D_numargs_varargs thumb_func_start unref_sub_800CDD4 unref_sub_800CDD4: @ 800CDD4 push {r4-r6,lr} adds r4, r3, 0 lsls r0, 24 lsrs r6, r0, 24 lsls r2, 16 lsrs r5, r2, 16 ldr r2, _0800CE38 movs r0, 0x1E strb r0, [r2] strb r1, [r2, 0x1] movs r3, 0xFF lsls r3, 8 adds r0, r1, 0 ands r0, r3 lsrs r0, 8 strb r0, [r2, 0x2] movs r0, 0xFF lsls r0, 16 ands r0, r1 lsrs r0, 16 strb r0, [r2, 0x3] lsrs r1, 24 strb r1, [r2, 0x4] strb r5, [r2, 0x5] adds r0, r5, 0 ands r0, r3 lsrs r0, 8 strb r0, [r2, 0x6] adds r1, r2, 0 cmp r5, 0 beq _0800CE24 adds r3, r1, 0x7 adds r2, r5, 0 _0800CE16: ldrb r0, [r4] strb r0, [r3] adds r4, 0x1 adds r3, 0x1 subs r2, 0x1 cmp r2, 0 bne _0800CE16 _0800CE24: adds r2, r5, 0x7 lsls r2, 16 lsrs r2, 16 adds r0, r6, 0 bl dp01_prepare_buffer pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0800CE38: .4byte 0x03004040 thumb_func_end unref_sub_800CDD4 thumb_func_start unref_sub_800CE3C unref_sub_800CE3C: @ 800CE3C push {r4-r6,lr} lsls r0, 24 lsrs r6, r0, 24 lsls r1, 16 lsrs r4, r1, 16 ldr r1, _0800CE80 movs r0, 0x1F strb r0, [r1] strb r4, [r1, 0x1] lsrs r0, r4, 8 strb r0, [r1, 0x2] adds r5, r1, 0 cmp r4, 0 beq _0800CE6A adds r1, r5, 0x3 adds r3, r4, 0 _0800CE5C: ldrb r0, [r2] strb r0, [r1] adds r2, 0x1 adds r1, 0x1 subs r3, 0x1 cmp r3, 0 bne _0800CE5C _0800CE6A: adds r2, r4, 0x3 lsls r2, 16 lsrs r2, 16 adds r0, r6, 0 adds r1, r5, 0 bl dp01_prepare_buffer pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0800CE80: .4byte 0x03004040 thumb_func_end unref_sub_800CE3C thumb_func_start unref_sub_800CE84 unref_sub_800CE84: @ 800CE84 push {r4-r6,lr} lsls r0, 24 lsrs r6, r0, 24 lsls r1, 16 lsrs r4, r1, 16 ldr r1, _0800CEC8 movs r0, 0x20 strb r0, [r1] strb r4, [r1, 0x1] lsrs r0, r4, 8 strb r0, [r1, 0x2] adds r5, r1, 0 cmp r4, 0 beq _0800CEB2 adds r1, r5, 0x3 adds r3, r4, 0 _0800CEA4: ldrb r0, [r2] strb r0, [r1] adds r2, 0x1 adds r1, 0x1 subs r3, 0x1 cmp r3, 0 bne _0800CEA4 _0800CEB2: adds r2, r4, 0x3 lsls r2, 16 lsrs r2, 16 adds r0, r6, 0 adds r1, r5, 0 bl dp01_prepare_buffer pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0800CEC8: .4byte 0x03004040 thumb_func_end unref_sub_800CE84 thumb_func_start dp01_build_cmdbuf_x21_a_bb dp01_build_cmdbuf_x21_a_bb: @ 800CECC push {r4,lr} adds r4, r1, 0 lsls r0, 24 lsrs r0, 24 lsls r2, 16 lsrs r2, 16 ldr r1, _0800CEF4 movs r3, 0x21 strb r3, [r1] strb r4, [r1, 0x1] strb r2, [r1, 0x2] lsrs r2, 8 strb r2, [r1, 0x3] movs r2, 0x4 bl dp01_prepare_buffer pop {r4} pop {r0} bx r0 .align 2, 0 _0800CEF4: .4byte 0x03004040 thumb_func_end dp01_build_cmdbuf_x21_a_bb thumb_func_start dp01_build_cmdbuf_x22_a_three_bytes dp01_build_cmdbuf_x22_a_three_bytes: @ 800CEF8 push {r4,r5,lr} adds r4, r2, 0 lsls r0, 24 lsrs r5, r0, 24 ldr r2, _0800CF2C movs r0, 0x22 strb r0, [r2] strb r1, [r2, 0x1] movs r3, 0 adds r1, r2, 0x2 _0800CF0C: adds r0, r4, r3 ldrb r0, [r0] strb r0, [r1] adds r1, 0x1 adds r3, 0x1 cmp r3, 0x2 ble _0800CF0C adds r0, r5, 0 adds r1, r2, 0 movs r2, 0x5 bl dp01_prepare_buffer pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0800CF2C: .4byte 0x03004040 thumb_func_end dp01_build_cmdbuf_x22_a_three_bytes thumb_func_start dp01_build_cmdbuf_x23_aa_0 dp01_build_cmdbuf_x23_aa_0: @ 800CF30 push {r4,lr} lsls r0, 24 lsrs r0, 24 lsls r1, 16 lsrs r1, 16 ldr r3, _0800CF58 movs r4, 0 movs r2, 0x23 strb r2, [r3] strb r1, [r3, 0x1] lsrs r1, 8 strb r1, [r3, 0x2] strb r4, [r3, 0x3] adds r1, r3, 0 movs r2, 0x4 bl dp01_prepare_buffer pop {r4} pop {r0} bx r0 .align 2, 0 _0800CF58: .4byte 0x03004040 thumb_func_end dp01_build_cmdbuf_x23_aa_0 thumb_func_start dp01_build_cmdbuf_x24_aa_0 dp01_build_cmdbuf_x24_aa_0: @ 800CF5C push {r4,lr} lsls r0, 24 lsrs r0, 24 lsls r1, 16 lsrs r1, 16 ldr r3, _0800CF84 movs r4, 0 movs r2, 0x24 strb r2, [r3] strb r1, [r3, 0x1] lsrs r1, 8 strb r1, [r3, 0x2] strb r4, [r3, 0x3] adds r1, r3, 0 movs r2, 0x4 bl dp01_prepare_buffer pop {r4} pop {r0} bx r0 .align 2, 0 _0800CF84: .4byte 0x03004040 thumb_func_end dp01_build_cmdbuf_x24_aa_0 thumb_func_start dp01_build_cmdbuf_x25_25_25_25 dp01_build_cmdbuf_x25_25_25_25: @ 800CF88 push {lr} lsls r0, 24 lsrs r0, 24 ldr r1, _0800CFA4 movs r2, 0x25 strb r2, [r1] strb r2, [r1, 0x1] strb r2, [r1, 0x2] strb r2, [r1, 0x3] movs r2, 0x4 bl dp01_prepare_buffer pop {r0} bx r0 .align 2, 0 _0800CFA4: .4byte 0x03004040 thumb_func_end dp01_build_cmdbuf_x25_25_25_25 thumb_func_start dp01_build_cmdbuf_x26_a dp01_build_cmdbuf_x26_a: @ 800CFA8 push {lr} adds r3, r1, 0 lsls r0, 24 lsrs r0, 24 ldr r1, _0800CFC4 movs r2, 0x26 strb r2, [r1] strb r3, [r1, 0x1] movs r2, 0x2 bl dp01_prepare_buffer pop {r0} bx r0 .align 2, 0 _0800CFC4: .4byte 0x03004040 thumb_func_end dp01_build_cmdbuf_x26_a thumb_func_start dp01_build_cmdbuf_x27_27_27_27 dp01_build_cmdbuf_x27_27_27_27: @ 800CFC8 push {lr} lsls r0, 24 lsrs r0, 24 ldr r1, _0800CFE4 movs r2, 0x27 strb r2, [r1] strb r2, [r1, 0x1] strb r2, [r1, 0x2] strb r2, [r1, 0x3] movs r2, 0x4 bl dp01_prepare_buffer pop {r0} bx r0 .align 2, 0 _0800CFE4: .4byte 0x03004040 thumb_func_end dp01_build_cmdbuf_x27_27_27_27 thumb_func_start dp01_build_cmdbuf_x28_28_28_28 dp01_build_cmdbuf_x28_28_28_28: @ 800CFE8 push {lr} lsls r0, 24 lsrs r0, 24 ldr r1, _0800D004 movs r2, 0x28 strb r2, [r1] strb r2, [r1, 0x1] strb r2, [r1, 0x2] strb r2, [r1, 0x3] movs r2, 0x4 bl dp01_prepare_buffer pop {r0} bx r0 .align 2, 0 _0800D004: .4byte 0x03004040 thumb_func_end dp01_build_cmdbuf_x28_28_28_28 thumb_func_start dp01_build_cmdbuf_x29_29_29_29 dp01_build_cmdbuf_x29_29_29_29: @ 800D008 push {lr} lsls r0, 24 lsrs r0, 24 ldr r1, _0800D024 movs r2, 0x29 strb r2, [r1] strb r2, [r1, 0x1] strb r2, [r1, 0x2] strb r2, [r1, 0x3] movs r2, 0x4 bl dp01_prepare_buffer pop {r0} bx r0 .align 2, 0 _0800D024: .4byte 0x03004040 thumb_func_end dp01_build_cmdbuf_x29_29_29_29 thumb_func_start dp01_build_cmdbuf_x2A_2A_2A_2A dp01_build_cmdbuf_x2A_2A_2A_2A: @ 800D028 push {lr} lsls r0, 24 lsrs r0, 24 ldr r1, _0800D044 movs r2, 0x2A strb r2, [r1] strb r2, [r1, 0x1] strb r2, [r1, 0x2] strb r2, [r1, 0x3] movs r2, 0x4 bl dp01_prepare_buffer pop {r0} bx r0 .align 2, 0 _0800D044: .4byte 0x03004040 thumb_func_end dp01_build_cmdbuf_x2A_2A_2A_2A thumb_func_start dp01_build_cmdbuf_x2B_aa_0 dp01_build_cmdbuf_x2B_aa_0: @ 800D048 push {r4,lr} lsls r0, 24 lsrs r0, 24 lsls r1, 16 lsrs r1, 16 ldr r3, _0800D070 movs r4, 0 movs r2, 0x2B strb r2, [r3] strb r1, [r3, 0x1] lsrs r1, 8 strb r1, [r3, 0x2] strb r4, [r3, 0x3] adds r1, r3, 0 movs r2, 0x4 bl dp01_prepare_buffer pop {r4} pop {r0} bx r0 .align 2, 0 _0800D070: .4byte 0x03004040 thumb_func_end dp01_build_cmdbuf_x2B_aa_0 thumb_func_start sub_800D074 sub_800D074: @ 800D074 push {r4,lr} lsls r0, 24 lsrs r0, 24 lsls r1, 16 lsrs r1, 16 ldr r3, _0800D09C movs r4, 0 movs r2, 0x2C strb r2, [r3] strb r1, [r3, 0x1] lsrs r1, 8 strb r1, [r3, 0x2] strb r4, [r3, 0x3] adds r1, r3, 0 movs r2, 0x4 bl dp01_prepare_buffer pop {r4} pop {r0} bx r0 .align 2, 0 _0800D09C: .4byte 0x03004040 thumb_func_end sub_800D074 thumb_func_start dp01_build_cmdbuf_x2D_2D_2D_2D dp01_build_cmdbuf_x2D_2D_2D_2D: @ 800D0A0 push {lr} lsls r0, 24 lsrs r0, 24 ldr r1, _0800D0BC movs r2, 0x2D strb r2, [r1] strb r2, [r1, 0x1] strb r2, [r1, 0x2] strb r2, [r1, 0x3] movs r2, 0x4 bl dp01_prepare_buffer pop {r0} bx r0 .align 2, 0 _0800D0BC: .4byte 0x03004040 thumb_func_end dp01_build_cmdbuf_x2D_2D_2D_2D thumb_func_start dp01_build_cmdbuf_x2E_a dp01_build_cmdbuf_x2E_a: @ 800D0C0 push {lr} adds r3, r1, 0 lsls r0, 24 lsrs r0, 24 ldr r1, _0800D0DC movs r2, 0x2E strb r2, [r1] strb r3, [r1, 0x1] movs r2, 0x2 bl dp01_prepare_buffer pop {r0} bx r0 .align 2, 0 _0800D0DC: .4byte 0x03004040 thumb_func_end dp01_build_cmdbuf_x2E_a thumb_func_start dp01_build_cmdbuf_x2F_2F_2F_2F dp01_build_cmdbuf_x2F_2F_2F_2F: @ 800D0E0 push {lr} lsls r0, 24 lsrs r0, 24 ldr r1, _0800D0FC movs r2, 0x2F strb r2, [r1] strb r2, [r1, 0x1] strb r2, [r1, 0x2] strb r2, [r1, 0x3] movs r2, 0x4 bl dp01_prepare_buffer pop {r0} bx r0 .align 2, 0 _0800D0FC: .4byte 0x03004040 thumb_func_end dp01_build_cmdbuf_x2F_2F_2F_2F thumb_func_start dp01_build_cmdbuf_x30_TODO dp01_build_cmdbuf_x30_TODO: @ 800D100 push {r4,r5,lr} adds r4, r1, 0 lsls r0, 24 lsrs r5, r0, 24 lsls r2, 24 lsrs r2, 24 ldr r1, _0800D144 movs r3, 0x30 strb r3, [r1] movs r0, 0x7F ands r0, r2 strb r0, [r1, 0x1] movs r0, 0x80 ands r0, r2 lsls r0, 24 lsrs r0, 31 strb r0, [r1, 0x2] strb r3, [r1, 0x3] movs r2, 0 adds r3, r1, 0x4 _0800D128: adds r0, r4, r2 ldrb r0, [r0] strb r0, [r3] adds r3, 0x1 adds r2, 0x1 cmp r2, 0x2F ble _0800D128 adds r0, r5, 0 movs r2, 0x34 bl dp01_prepare_buffer pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0800D144: .4byte 0x03004040 thumb_func_end dp01_build_cmdbuf_x30_TODO thumb_func_start dp01_build_cmdbuf_x31_31_31_31 dp01_build_cmdbuf_x31_31_31_31: @ 800D148 push {lr} lsls r0, 24 lsrs r0, 24 ldr r1, _0800D164 movs r2, 0x31 strb r2, [r1] strb r2, [r1, 0x1] strb r2, [r1, 0x2] strb r2, [r1, 0x3] movs r2, 0x4 bl dp01_prepare_buffer pop {r0} bx r0 .align 2, 0 _0800D164: .4byte 0x03004040 thumb_func_end dp01_build_cmdbuf_x31_31_31_31 thumb_func_start dp01_build_cmdbuf_x32_32_32_32 dp01_build_cmdbuf_x32_32_32_32: @ 800D168 push {lr} lsls r0, 24 lsrs r0, 24 ldr r1, _0800D184 movs r2, 0x32 strb r2, [r1] strb r2, [r1, 0x1] strb r2, [r1, 0x2] strb r2, [r1, 0x3] movs r2, 0x4 bl dp01_prepare_buffer pop {r0} bx r0 .align 2, 0 _0800D184: .4byte 0x03004040 thumb_func_end dp01_build_cmdbuf_x32_32_32_32 thumb_func_start dp01_build_cmdbuf_x33_a_33_33 dp01_build_cmdbuf_x33_a_33_33: @ 800D188 push {lr} adds r3, r1, 0 lsls r0, 24 lsrs r0, 24 ldr r1, _0800D1A8 movs r2, 0x33 strb r2, [r1] strb r3, [r1, 0x1] strb r2, [r1, 0x2] strb r2, [r1, 0x3] movs r2, 0x4 bl dp01_prepare_buffer pop {r0} bx r0 .align 2, 0 _0800D1A8: .4byte 0x03004040 thumb_func_end dp01_build_cmdbuf_x33_a_33_33 thumb_func_start dp01_build_cmdbuf_x34_a_bb_aka_battle_anim dp01_build_cmdbuf_x34_a_bb_aka_battle_anim: @ 800D1AC push {r4,lr} adds r4, r1, 0 lsls r0, 24 lsrs r0, 24 lsls r2, 16 lsrs r2, 16 ldr r1, _0800D1D4 movs r3, 0x34 strb r3, [r1] strb r4, [r1, 0x1] strb r2, [r1, 0x2] lsrs r2, 8 strb r2, [r1, 0x3] movs r2, 0x4 bl dp01_prepare_buffer pop {r4} pop {r0} bx r0 .align 2, 0 _0800D1D4: .4byte 0x03004040 thumb_func_end dp01_build_cmdbuf_x34_a_bb_aka_battle_anim thumb_func_start sub_800D1D8 sub_800D1D8: @ 800D1D8 push {lr} adds r3, r1, 0 lsls r0, 24 lsrs r0, 24 ldr r1, _0800D1F4 movs r2, 0x35 strb r2, [r1] strb r3, [r1, 0x1] movs r2, 0x2 bl dp01_prepare_buffer pop {r0} bx r0 .align 2, 0 _0800D1F4: .4byte 0x03004040 thumb_func_end sub_800D1D8 thumb_func_start dp01_build_cmdbuf_x38_a dp01_build_cmdbuf_x38_a: @ 800D1F8 push {lr} adds r3, r1, 0 lsls r0, 24 lsrs r0, 24 ldr r1, _0800D214 movs r2, 0x36 strb r2, [r1] strb r3, [r1, 0x1] movs r2, 0x2 bl dp01_prepare_buffer pop {r0} bx r0 .align 2, 0 _0800D214: .4byte 0x03004040 thumb_func_end dp01_build_cmdbuf_x38_a thumb_func_start dp01_build_cmdbuf_x37_a dp01_build_cmdbuf_x37_a: @ 800D218 push {lr} adds r3, r1, 0 lsls r0, 24 lsrs r0, 24 ldr r1, _0800D234 movs r2, 0x37 strb r2, [r1] strb r3, [r1, 0x1] movs r2, 0x2 bl dp01_prepare_buffer pop {r0} bx r0 .align 2, 0 _0800D234: .4byte 0x03004040 thumb_func_end dp01_build_cmdbuf_x37_a thumb_func_start sub_800D238 sub_800D238: @ 800D238 push {lr} bl LZ77UnCompWram pop {r0} bx r0 thumb_func_end sub_800D238 thumb_func_start LZDecompressVram LZDecompressVram: @ 800D244 push {lr} bl LZ77UnCompVram pop {r0} bx r0 thumb_func_end LZDecompressVram thumb_func_start LoadCompressedObjectPic LoadCompressedObjectPic: @ 800D250 push {r4,r5,lr} sub sp, 0x8 adds r4, r0, 0 ldr r0, [r4] movs r5, 0x80 lsls r5, 18 adds r1, r5, 0 bl LZ77UnCompWram str r5, [sp] ldrh r1, [r4, 0x6] lsls r1, 16 ldrh r0, [r4, 0x4] orrs r0, r1 str r0, [sp, 0x4] mov r0, sp bl LoadSpriteSheet add sp, 0x8 pop {r4,r5} pop {r0} bx r0 thumb_func_end LoadCompressedObjectPic thumb_func_start LoadCompressedObjectPicOverrideBuffer LoadCompressedObjectPicOverrideBuffer: @ 800D27C push {r4,r5,lr} sub sp, 0x8 adds r4, r0, 0 adds r5, r1, 0 ldr r0, [r4] bl LZ77UnCompWram str r5, [sp] ldrh r1, [r4, 0x6] lsls r1, 16 ldrh r0, [r4, 0x4] orrs r0, r1 str r0, [sp, 0x4] mov r0, sp bl LoadSpriteSheet add sp, 0x8 pop {r4,r5} pop {r0} bx r0 thumb_func_end LoadCompressedObjectPicOverrideBuffer thumb_func_start LoadCompressedObjectPalette LoadCompressedObjectPalette: @ 800D2A4 push {r4,r5,lr} sub sp, 0x8 adds r5, r0, 0 ldr r0, [r5] movs r4, 0x80 lsls r4, 18 adds r1, r4, 0 bl LZ77UnCompWram str r4, [sp] ldrh r2, [r5, 0x4] ldr r1, _0800D2D4 ldr r0, [sp, 0x4] ands r0, r1 orrs r0, r2 str r0, [sp, 0x4] mov r0, sp bl LoadSpritePalette add sp, 0x8 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0800D2D4: .4byte 0xffff0000 thumb_func_end LoadCompressedObjectPalette thumb_func_start LoadCompressedObjectPaletteOverrideBuffer LoadCompressedObjectPaletteOverrideBuffer: @ 800D2D8 push {r4,r5,lr} sub sp, 0x8 adds r5, r0, 0 adds r4, r1, 0 ldr r0, [r5] bl LZ77UnCompWram str r4, [sp] ldrh r2, [r5, 0x4] ldr r1, _0800D304 ldr r0, [sp, 0x4] ands r0, r1 orrs r0, r2 str r0, [sp, 0x4] mov r0, sp bl LoadSpritePalette add sp, 0x8 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0800D304: .4byte 0xffff0000 thumb_func_end LoadCompressedObjectPaletteOverrideBuffer thumb_func_start DecompressPicFromTable_2 DecompressPicFromTable_2: @ 800D308 push {lr} adds r2, r0, 0 ldr r3, [sp, 0x4] ldr r1, [sp, 0x8] movs r0, 0xCE lsls r0, 1 cmp r1, r0 ble _0800D328 ldr r0, _0800D324 ldr r0, [r0] adds r1, r3, 0 bl LZ77UnCompWram b _0800D330 .align 2, 0 _0800D324: .4byte gMonFrontPicTable _0800D328: ldr r0, [r2] adds r1, r3, 0 bl LZ77UnCompWram _0800D330: pop {r0} bx r0 thumb_func_end DecompressPicFromTable_2 thumb_func_start sub_800D334 sub_800D334: @ 800D334 push {r4-r6,lr} sub sp, 0x10 adds r4, r0, 0 adds r5, r1, 0 adds r6, r2, 0 ldr r2, [sp, 0x20] ldr r1, _0800D354 ldr r0, [r1] cmp r2, r0 beq _0800D34E ldr r0, [r1, 0x8] cmp r2, r0 bne _0800D358 _0800D34E: movs r1, 0 b _0800D35A .align 2, 0 _0800D354: .4byte gUnknown_081FAF4C _0800D358: movs r1, 0x1 _0800D35A: str r2, [sp] ldr r0, [sp, 0x24] str r0, [sp, 0x4] ldr r0, [sp, 0x28] str r0, [sp, 0x8] str r1, [sp, 0xC] adds r0, r4, 0 adds r1, r5, 0 adds r2, r6, 0 bl sub_800D378 add sp, 0x10 pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_800D334 thumb_func_start sub_800D378 sub_800D378: @ 800D378 push {r4-r7,lr} adds r1, r0, 0 ldr r5, [sp, 0x14] ldr r6, [sp, 0x18] ldr r4, [sp, 0x1C] ldr r0, [sp, 0x20] lsls r0, 24 lsrs r7, r0, 24 cmp r6, 0xC9 bne _0800D3EC movs r0, 0xC0 lsls r0, 18 ands r0, r4 lsrs r0, 18 movs r1, 0xC0 lsls r1, 10 ands r1, r4 lsrs r1, 12 orrs r0, r1 movs r1, 0xC0 lsls r1, 2 ands r1, r4 lsrs r1, 6 orrs r0, r1 movs r1, 0x3 ands r1, r4 orrs r0, r1 movs r1, 0x1C bl __umodsi3 lsls r0, 16 lsrs r1, r0, 16 cmp r1, 0 bne _0800D3C0 movs r1, 0xC9 b _0800D3CA _0800D3C0: movs r2, 0xCE lsls r2, 1 adds r0, r1, r2 lsls r0, 16 lsrs r1, r0, 16 _0800D3CA: cmp r7, 0 bne _0800D3DC ldr r0, _0800D3D8 lsls r1, 3 adds r1, r0 ldr r0, [r1] b _0800D3F8 .align 2, 0 _0800D3D8: .4byte gMonBackPicTable _0800D3DC: ldr r0, _0800D3E8 lsls r1, 3 adds r1, r0 ldr r0, [r1] b _0800D3F8 .align 2, 0 _0800D3E8: .4byte gMonFrontPicTable _0800D3EC: movs r0, 0xCE lsls r0, 1 cmp r6, r0 ble _0800D404 ldr r0, _0800D400 ldr r0, [r0] _0800D3F8: adds r1, r5, 0 bl LZ77UnCompWram b _0800D40C .align 2, 0 _0800D400: .4byte gMonFrontPicTable _0800D404: ldr r0, [r1] adds r1, r5, 0 bl LZ77UnCompWram _0800D40C: lsls r0, r6, 16 lsrs r0, 16 adds r1, r4, 0 adds r2, r5, 0 adds r3, r7, 0 bl DrawSpindaSpots pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_800D378 thumb_func_start Unused_LZDecompressWramIndirect Unused_LZDecompressWramIndirect: @ 800D420 push {lr} ldr r0, [r0] bl LZ77UnCompWram pop {r0} bx r0 thumb_func_end Unused_LZDecompressWramIndirect thumb_func_start unref_sub_800D42C unref_sub_800D42C: @ 800D42C push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x24 mov r9, r0 str r1, [sp] str r2, [sp, 0x4] adds r5, r3, 0 movs r0, 0x1 mov r1, r9 ands r0, r1 cmp r0, 0 bne _0800D44C b _0800D5E4 _0800D44C: asrs r0, r1, 1 adds r0, 0x4 lsls r0, 24 lsrs r0, 24 str r0, [sp, 0x8] movs r0, 0 ldr r2, [sp] cmp r0, r2 blt _0800D460 b _0800D674 _0800D460: movs r4, 0x8 subs r1, r4, r1 str r1, [sp, 0x10] _0800D466: movs r7, 0 adds r0, 0x1 str r0, [sp, 0x14] ldr r0, [sp, 0x10] cmp r7, r0 bge _0800D4E2 ldr r1, [sp, 0x8] lsls r1, 8 str r1, [sp, 0x18] movs r2, 0 mov r10, r2 mov r0, r9 movs r4, 0x8 subs r0, r4, r0 str r0, [sp, 0xC] _0800D484: movs r3, 0 asrs r0, r7, 1 adds r1, r7, 0 movs r2, 0x1 ands r1, r2 str r1, [sp, 0x20] lsls r0, 8 mov r8, r0 mov r12, r5 _0800D496: lsls r1, r3, 5 ldr r4, [sp, 0x18] adds r0, r5, r4 adds r0, r1 mov r1, r8 adds r2, r0, r1 mov r1, r12 add r1, r8 movs r6, 0xF _0800D4A8: ldr r4, [sp, 0x20] cmp r4, 0 bne _0800D4B8 strb r4, [r1] add r4, sp, 0x20 ldrb r4, [r4] strb r4, [r2, 0x10] b _0800D4C6 _0800D4B8: mov r0, r10 strb r0, [r1, 0x10] movs r4, 0x80 lsls r4, 1 adds r4, r2, r4 str r4, [sp, 0x1C] strb r0, [r4] _0800D4C6: adds r2, 0x1 adds r1, 0x1 subs r6, 0x1 cmp r6, 0 bge _0800D4A8 movs r0, 0x20 add r12, r0 adds r3, 0x1 cmp r3, 0x7 ble _0800D496 adds r7, 0x1 ldr r1, [sp, 0xC] cmp r7, r1 blt _0800D484 _0800D4E2: movs r7, 0 movs r2, 0 _0800D4E6: movs r6, 0 adds r4, r7, 0x1 mov r8, r4 lsls r4, r7, 5 _0800D4EE: adds r0, r6, 0x1 mov r10, r0 lsls r1, r6, 8 adds r0, r1, 0 adds r0, 0xC0 adds r0, r5, r0 adds r0, r4 adds r1, r5, r1 adds r1, r4 movs r3, 0x1F _0800D502: strb r2, [r1] strb r2, [r0] adds r0, 0x1 adds r1, 0x1 subs r3, 0x1 cmp r3, 0 bge _0800D502 mov r6, r10 cmp r6, 0x7 ble _0800D4EE mov r7, r8 cmp r7, 0x1 ble _0800D4E6 mov r1, r9 cmp r1, 0x5 bne _0800D528 movs r2, 0x90 lsls r2, 1 adds r5, r2 _0800D528: movs r7, 0 cmp r7, r9 bge _0800D5BE _0800D52E: movs r3, 0 adds r7, 0x1 mov r8, r7 cmp r3, r9 bge _0800D59E _0800D538: adds r3, 0x1 mov r10, r3 ldr r4, [sp, 0x4] adds r4, 0x20 adds r7, r5, 0 adds r7, 0x20 movs r0, 0x12 adds r0, r5 mov r12, r0 ldr r2, [sp, 0x4] adds r3, r5, 0 movs r6, 0x3 _0800D550: ldrb r0, [r2] mov r1, r12 strb r0, [r1] ldrb r0, [r2, 0x1] strb r0, [r1, 0x1] ldrb r0, [r2, 0x2] strb r0, [r1, 0x1E] ldrb r0, [r2, 0x3] strb r0, [r1, 0x1F] movs r0, 0x81 lsls r0, 1 adds r1, r3, r0 ldrb r0, [r2, 0x10] strb r0, [r1] ldr r0, _0800D5A8 adds r1, r3, r0 ldrb r0, [r2, 0x11] strb r0, [r1] movs r0, 0x90 lsls r0, 1 adds r1, r3, r0 ldrb r0, [r2, 0x12] strb r0, [r1] ldr r0, _0800D5AC adds r1, r3, r0 ldrb r0, [r2, 0x13] strb r0, [r1] movs r1, 0x4 add r12, r1 adds r2, 0x4 adds r3, 0x4 subs r6, 0x1 cmp r6, 0 bge _0800D550 str r4, [sp, 0x4] adds r5, r7, 0 mov r3, r10 cmp r3, r9 blt _0800D538 _0800D59E: mov r2, r9 cmp r2, 0x7 bne _0800D5B0 adds r5, 0x20 b _0800D5B8 .align 2, 0 _0800D5A8: .4byte 0x00000103 _0800D5AC: .4byte 0x00000121 _0800D5B0: mov r4, r9 cmp r4, 0x5 bne _0800D5B8 adds r5, 0x60 _0800D5B8: mov r7, r8 cmp r7, r9 blt _0800D52E _0800D5BE: mov r0, r9 cmp r0, 0x7 bne _0800D5CC movs r1, 0x80 lsls r1, 1 adds r5, r1 b _0800D5D8 _0800D5CC: mov r2, r9 cmp r2, 0x5 bne _0800D5D8 movs r4, 0xF0 lsls r4, 1 adds r5, r4 _0800D5D8: ldr r0, [sp, 0x14] ldr r1, [sp] cmp r0, r1 bge _0800D5E2 b _0800D466 _0800D5E2: b _0800D674 _0800D5E4: movs r6, 0 ldr r2, [sp] cmp r6, r2 bge _0800D674 _0800D5EC: adds r6, 0x1 mov r10, r6 mov r4, r9 cmp r4, 0x6 bne _0800D604 movs r0, 0 movs r3, 0xFF _0800D5FA: strb r0, [r5] adds r5, 0x1 subs r3, 0x1 cmp r3, 0 bge _0800D5FA _0800D604: movs r7, 0 cmp r7, r9 bge _0800D658 _0800D60A: adds r7, 0x1 mov r8, r7 mov r1, r9 lsls r0, r1, 5 cmp r1, 0x6 bne _0800D624 movs r1, 0 movs r3, 0x1F _0800D61A: strb r1, [r5] adds r5, 0x1 subs r3, 0x1 cmp r3, 0 bge _0800D61A _0800D624: adds r1, r0, 0 cmp r1, 0 ble _0800D63E adds r3, r1, 0 _0800D62C: ldr r2, [sp, 0x4] ldrb r0, [r2] strb r0, [r5] adds r2, 0x1 str r2, [sp, 0x4] adds r5, 0x1 subs r3, 0x1 cmp r3, 0 bne _0800D62C _0800D63E: mov r4, r9 cmp r4, 0x6 bne _0800D652 movs r0, 0 movs r3, 0x1F _0800D648: strb r0, [r5] adds r5, 0x1 subs r3, 0x1 cmp r3, 0 bge _0800D648 _0800D652: mov r7, r8 cmp r7, r9 blt _0800D60A _0800D658: mov r0, r9 cmp r0, 0x6 bne _0800D66C movs r0, 0 movs r3, 0xFF _0800D662: strb r0, [r5] adds r5, 0x1 subs r3, 0x1 cmp r3, 0 bge _0800D662 _0800D66C: mov r6, r10 ldr r1, [sp] cmp r6, r1 blt _0800D5EC _0800D674: add sp, 0x24 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end unref_sub_800D42C thumb_func_start unref_sub_800D684 unref_sub_800D684: @ 800D684 push {lr} bl ResetSpriteData ldr r0, _0800D6B8 movs r1, 0 movs r2, 0 movs r3, 0 bl CreateSprite lsls r0, 24 lsrs r0, 24 ldr r2, _0800D6BC lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r2 adds r1, 0x3E ldrb r0, [r1] movs r2, 0x4 orrs r0, r2 strb r0, [r1] ldr r0, _0800D6C0 bl SetMainCallback2 pop {r0} bx r0 .align 2, 0 _0800D6B8: .4byte gSpriteTemplate_81F96D0 _0800D6BC: .4byte 0x02020004 _0800D6C0: .4byte sub_800D6C4 thumb_func_end unref_sub_800D684 thumb_func_start sub_800D6C4 sub_800D6C4: @ 800D6C4 push {lr} bl AnimateSprites bl BuildOamBuffer pop {r0} bx r0 thumb_func_end sub_800D6C4 thumb_func_start sub_800D6D4 sub_800D6D4: @ 800D6D4 push {r4,r5,lr} ldr r3, _0800D72C ldrh r2, [r3] movs r5, 0 strh r5, [r3] ldr r4, _0800D730 ldrh r0, [r4] movs r1, 0x1 orrs r0, r1 strh r0, [r4] strh r2, [r3] ldr r1, _0800D734 movs r0, 0x8 strh r0, [r1] adds r1, 0x4 movs r2, 0x98 lsls r2, 8 adds r0, r2, 0 strh r0, [r1] adds r1, 0x2 ldr r2, _0800D738 adds r0, r2, 0 strh r0, [r1] adds r1, 0x2 ldr r2, _0800D73C adds r0, r2, 0 strh r0, [r1] adds r1, 0x2 ldr r2, _0800D740 adds r0, r2, 0 strh r0, [r1] ldr r0, _0800D744 strh r5, [r0] adds r0, 0x2 strh r5, [r0] adds r0, 0x2 strh r5, [r0] subs r1, 0xE ldr r2, _0800D748 adds r0, r2, 0 strh r0, [r1] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0800D72C: .4byte 0x04000208 _0800D730: .4byte 0x04000200 _0800D734: .4byte 0x04000004 _0800D738: .4byte 0x00009c04 _0800D73C: .4byte 0x00005e05 _0800D740: .4byte 0x00005a0b _0800D744: .4byte 0x04000050 _0800D748: .4byte 0x0000bf40 thumb_func_end sub_800D6D4 thumb_func_start sub_800D74C sub_800D74C: @ 800D74C push {r4,lr} movs r0, 0x12 bl sub_8064EF4 ldr r4, _0800D79C adds r0, r4, 0 movs r1, 0x1 bl sub_8064F38 movs r0, 0x22 bl sub_8064EF4 adds r0, r4, 0 movs r1, 0x1 bl sub_8064F38 ldr r3, _0800D7A0 adds r0, r3, 0 adds r0, 0xB8 ldr r1, _0800D7A4 strh r1, [r0] adds r2, r3, 0 adds r2, 0xBA ldr r1, _0800D7A8 strh r1, [r2] adds r2, 0x2 ldr r1, _0800D7AC strh r1, [r2] adds r2, 0x2 ldr r1, _0800D7B0 strh r1, [r2] ldr r1, _0800D7B4 movs r2, 0x4 bl CpuSet bl sub_8032A38 pop {r4} pop {r0} bx r0 .align 2, 0 _0800D79C: .4byte 0x03004210 _0800D7A0: .4byte 0x0202eac8 _0800D7A4: .4byte 0x00007fe0 _0800D7A8: .4byte 0x00002529 _0800D7AC: .4byte 0x00007fff _0800D7B0: .4byte 0x0000675a _0800D7B4: .4byte 0x0202ef80 thumb_func_end sub_800D74C thumb_func_start sub_800D7B8 sub_800D7B8: @ 800D7B8 push {r4,r5,lr} ldr r0, _0800D7DC ldrh r1, [r0] ldr r0, _0800D7E0 ands r0, r1 cmp r0, 0 beq _0800D7F8 ldr r0, _0800D7E4 ldr r1, _0800D7E8 bl LZDecompressVram ldr r0, _0800D7EC ldr r1, _0800D7F0 bl LZDecompressVram ldr r0, _0800D7F4 b _0800DA66 .align 2, 0 _0800D7DC: .4byte 0x020239f8 _0800D7E0: .4byte 0x00000902 _0800D7E4: .4byte gBattleTerrainTiles_Building _0800D7E8: .4byte 0x06008000 _0800D7EC: .4byte gBattleTerrainTilemap_Building _0800D7F0: .4byte 0x0600d000 _0800D7F4: .4byte gUnknown_08E62AC0 _0800D7F8: movs r0, 0x80 lsls r0, 5 ands r0, r1 cmp r0, 0 beq _0800D860 ldr r0, _0800D820 ldrb r0, [r0] cmp r0, 0x2 bne _0800D838 ldr r0, _0800D824 ldr r1, _0800D828 bl LZDecompressVram ldr r0, _0800D82C ldr r1, _0800D830 bl LZDecompressVram ldr r0, _0800D834 b _0800DA66 .align 2, 0 _0800D820: .4byte gGameVersion _0800D824: .4byte gBattleTerrainTiles_Cave _0800D828: .4byte 0x06008000 _0800D82C: .4byte gBattleTerrainTilemap_Cave _0800D830: .4byte 0x0600d000 _0800D834: .4byte gUnknown_08E636E0 _0800D838: ldr r0, _0800D84C ldr r1, _0800D850 bl LZDecompressVram ldr r0, _0800D854 ldr r1, _0800D858 bl LZDecompressVram ldr r0, _0800D85C b _0800DA66 .align 2, 0 _0800D84C: .4byte gBattleTerrainTiles_Water _0800D850: .4byte 0x06008000 _0800D854: .4byte gBattleTerrainTilemap_Water _0800D858: .4byte 0x0600d000 _0800D85C: .4byte gUnknown_08E636A4 _0800D860: movs r0, 0x8 ands r0, r1 cmp r0, 0 beq _0800D8D8 ldr r2, _0800D890 ldr r0, _0800D894 ldrh r1, [r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r2 ldrb r0, [r0, 0x1] cmp r0, 0x19 bne _0800D8AC ldr r0, _0800D898 ldr r1, _0800D89C bl LZDecompressVram ldr r0, _0800D8A0 ldr r1, _0800D8A4 bl LZDecompressVram ldr r0, _0800D8A8 b _0800DA66 .align 2, 0 _0800D890: .4byte gTrainers _0800D894: .4byte 0x0202ff5e _0800D898: .4byte gBattleTerrainTiles_Building _0800D89C: .4byte 0x06008000 _0800D8A0: .4byte gBattleTerrainTilemap_Building _0800D8A4: .4byte 0x0600d000 _0800D8A8: .4byte gUnknown_08E63774 _0800D8AC: cmp r0, 0x20 bne _0800D8D8 ldr r0, _0800D8C4 ldr r1, _0800D8C8 bl LZDecompressVram ldr r0, _0800D8CC ldr r1, _0800D8D0 bl LZDecompressVram ldr r0, _0800D8D4 b _0800DA66 .align 2, 0 _0800D8C4: .4byte gUnknown_08E62DAC _0800D8C8: .4byte 0x06008000 _0800D8CC: .4byte gUnknown_08E633B4 _0800D8D0: .4byte 0x0600d000 _0800D8D4: .4byte gUnknown_08E639A8 _0800D8D8: bl sav1_map_get_battletype lsls r0, 24 lsrs r0, 24 cmp r0, 0x8 bls _0800D8E6 b _0800DA9E _0800D8E6: lsls r0, 2 ldr r1, _0800D8F0 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0800D8F0: .4byte _0800D8F4 .align 2, 0 _0800D8F4: .4byte _0800D918 .4byte _0800D964 .4byte _0800D98C .4byte _0800D9B4 .4byte _0800D9DC .4byte _0800DA04 .4byte _0800DA2C .4byte _0800DA54 .4byte _0800DA84 _0800D918: ldr r4, _0800D954 ldr r5, _0800D958 ldrb r1, [r5] lsls r0, r1, 2 adds r0, r1 lsls r0, 2 adds r0, r4 ldr r0, [r0] ldr r1, _0800D95C bl LZDecompressVram ldrb r1, [r5] lsls r0, r1, 2 adds r0, r1 lsls r0, 2 adds r1, r4, 0x4 adds r0, r1 ldr r0, [r0] ldr r1, _0800D960 bl LZDecompressVram ldrb r1, [r5] lsls r0, r1, 2 adds r0, r1 lsls r0, 2 adds r4, 0x10 adds r0, r4 ldr r0, [r0] b _0800DA66 .align 2, 0 _0800D954: .4byte gBattleTerrainTable _0800D958: .4byte 0x0300428c _0800D95C: .4byte 0x06008000 _0800D960: .4byte 0x0600d000 _0800D964: ldr r0, _0800D978 ldr r1, _0800D97C bl LZDecompressVram ldr r0, _0800D980 ldr r1, _0800D984 bl LZDecompressVram ldr r0, _0800D988 b _0800DA66 .align 2, 0 _0800D978: .4byte gBattleTerrainTiles_Building _0800D97C: .4byte 0x06008000 _0800D980: .4byte gBattleTerrainTilemap_Building _0800D984: .4byte 0x0600d000 _0800D988: .4byte gUnknown_08E63738 _0800D98C: ldr r0, _0800D9A0 ldr r1, _0800D9A4 bl LZDecompressVram ldr r0, _0800D9A8 ldr r1, _0800D9AC bl LZDecompressVram ldr r0, _0800D9B0 b _0800DA66 .align 2, 0 _0800D9A0: .4byte gUnknown_08E62DAC _0800D9A4: .4byte 0x06008000 _0800D9A8: .4byte gUnknown_08E633B4 _0800D9AC: .4byte 0x0600d000 _0800D9B0: .4byte gUnknown_08E63810 _0800D9B4: ldr r0, _0800D9C8 ldr r1, _0800D9CC bl LZDecompressVram ldr r0, _0800D9D0 ldr r1, _0800D9D4 bl LZDecompressVram ldr r0, _0800D9D8 b _0800DA66 .align 2, 0 _0800D9C8: .4byte gUnknown_08E62DAC _0800D9CC: .4byte 0x06008000 _0800D9D0: .4byte gUnknown_08E633B4 _0800D9D4: .4byte 0x0600d000 _0800D9D8: .4byte gUnknown_08E637B0 _0800D9DC: ldr r0, _0800D9F0 ldr r1, _0800D9F4 bl LZDecompressVram ldr r0, _0800D9F8 ldr r1, _0800D9FC bl LZDecompressVram ldr r0, _0800DA00 b _0800DA66 .align 2, 0 _0800D9F0: .4byte gUnknown_08E62DAC _0800D9F4: .4byte 0x06008000 _0800D9F8: .4byte gUnknown_08E633B4 _0800D9FC: .4byte 0x0600d000 _0800DA00: .4byte gUnknown_08E6387C _0800DA04: ldr r0, _0800DA18 ldr r1, _0800DA1C bl LZDecompressVram ldr r0, _0800DA20 ldr r1, _0800DA24 bl LZDecompressVram ldr r0, _0800DA28 b _0800DA66 .align 2, 0 _0800DA18: .4byte gUnknown_08E62DAC _0800DA1C: .4byte 0x06008000 _0800DA20: .4byte gUnknown_08E633B4 _0800DA24: .4byte 0x0600d000 _0800DA28: .4byte gUnknown_08E638CC _0800DA2C: ldr r0, _0800DA40 ldr r1, _0800DA44 bl LZDecompressVram ldr r0, _0800DA48 ldr r1, _0800DA4C bl LZDecompressVram ldr r0, _0800DA50 b _0800DA66 .align 2, 0 _0800DA40: .4byte gUnknown_08E62DAC _0800DA44: .4byte 0x06008000 _0800DA48: .4byte gUnknown_08E633B4 _0800DA4C: .4byte 0x0600d000 _0800DA50: .4byte gUnknown_08E63914 _0800DA54: ldr r0, _0800DA70 ldr r1, _0800DA74 bl LZDecompressVram ldr r0, _0800DA78 ldr r1, _0800DA7C bl LZDecompressVram ldr r0, _0800DA80 _0800DA66: movs r1, 0x20 movs r2, 0x60 bl LoadCompressedPalette b _0800DA9E .align 2, 0 _0800DA70: .4byte gUnknown_08E62DAC _0800DA74: .4byte 0x06008000 _0800DA78: .4byte gUnknown_08E633B4 _0800DA7C: .4byte 0x0600d000 _0800DA80: .4byte gUnknown_08E63958 _0800DA84: ldr r0, _0800DAA4 ldr r1, _0800DAA8 bl LZDecompressVram ldr r0, _0800DAAC ldr r1, _0800DAB0 bl LZDecompressVram ldr r0, _0800DAB4 movs r1, 0x20 movs r2, 0x60 bl LoadCompressedPalette _0800DA9E: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0800DAA4: .4byte gBattleTerrainTiles_Building _0800DAA8: .4byte 0x06008000 _0800DAAC: .4byte gBattleTerrainTilemap_Building _0800DAB0: .4byte 0x0600d000 _0800DAB4: .4byte gUnknown_08E62AC0 thumb_func_end sub_800D7B8 thumb_func_start sub_800DAB8 sub_800DAB8: @ 800DAB8 push {lr} ldr r0, _0800DAE8 movs r1, 0xC0 lsls r1, 19 bl LZDecompressVram ldr r0, _0800DAEC ldr r1, _0800DAF0 movs r2, 0x80 lsls r2, 4 bl CpuSet ldr r0, _0800DAF4 movs r1, 0 movs r2, 0x40 bl LoadCompressedPalette bl sub_800D74C bl sub_800D7B8 pop {r0} bx r0 .align 2, 0 _0800DAE8: .4byte gUnknown_08D00000 _0800DAEC: .4byte gUnknown_08D00524 _0800DAF0: .4byte 0x0600c000 _0800DAF4: .4byte gUnknown_08D004E0 thumb_func_end sub_800DAB8 thumb_func_start sub_800DAF8 sub_800DAF8: @ 800DAF8 push {r4-r7,lr} sub sp, 0xC adds r7, r2, 0 lsls r0, 24 lsrs r2, r0, 24 adds r5, r2, 0 lsls r1, 24 lsrs r3, r1, 24 movs r4, 0 ldr r0, _0800DB38 ldrh r1, [r0] movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _0800DBB4 ldr r0, _0800DB3C lsls r1, r2, 2 adds r1, r2 lsls r1, 3 adds r1, r0 movs r2, 0x12 ldrsh r0, [r1, r2] cmp r0, 0 beq _0800DB52 cmp r3, 0x1 beq _0800DB7A cmp r3, 0x1 bgt _0800DB40 cmp r3, 0 beq _0800DB4A b _0800DB84 .align 2, 0 _0800DB38: .4byte 0x020239f8 _0800DB3C: .4byte 0x03004b20 _0800DB40: cmp r3, 0x2 beq _0800DB4E cmp r3, 0x3 beq _0800DB6E b _0800DB84 _0800DB4A: ldrh r0, [r1, 0xE] b _0800DB70 _0800DB4E: ldrh r1, [r1, 0xE] b _0800DB7C _0800DB52: cmp r3, 0x1 beq _0800DB6E cmp r3, 0x1 bgt _0800DB60 cmp r3, 0 beq _0800DB6A b _0800DB84 _0800DB60: cmp r3, 0x2 beq _0800DB76 cmp r3, 0x3 beq _0800DB7A b _0800DB84 _0800DB6A: ldrh r0, [r1, 0xE] b _0800DB70 _0800DB6E: ldrh r0, [r1, 0x10] _0800DB70: movs r4, 0x3F ands r4, r0 b _0800DB84 _0800DB76: ldrh r1, [r1, 0xE] b _0800DB7C _0800DB7A: ldrh r1, [r1, 0x10] _0800DB7C: movs r0, 0xFC lsls r0, 4 ands r0, r1 lsrs r4, r0, 6 _0800DB84: movs r3, 0 movs r6, 0x3 ldr r0, _0800DBB0 adds r5, r0, 0 mov r2, sp _0800DB8E: lsls r1, r3, 1 adds r0, r6, 0 lsls r0, r1 ands r0, r4 asrs r0, r1 adds r0, r5 strh r0, [r2] adds r2, 0x2 adds r3, 0x1 cmp r3, 0x2 ble _0800DB8E mov r0, sp adds r1, r7, 0 movs r2, 0x3 bl CpuSet b _0800DC12 .align 2, 0 _0800DBB0: .4byte 0x00006001 _0800DBB4: ldr r0, _0800DBD0 ldr r1, _0800DBD4 adds r0, r1 ldrb r0, [r0] cmp r3, r0 bne _0800DBDC ldr r1, _0800DBD8 lsls r0, r2, 2 adds r0, r2 lsls r0, 3 adds r0, r1 ldrh r4, [r0, 0xE] b _0800DBE8 .align 2, 0 _0800DBD0: .4byte 0x02000000 _0800DBD4: .4byte 0x000160cb _0800DBD8: .4byte 0x03004b20 _0800DBDC: ldr r1, _0800DC1C lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r1 ldrh r4, [r0, 0x10] _0800DBE8: movs r3, 0 movs r6, 0x3 ldr r2, _0800DC20 adds r5, r2, 0 mov r2, sp _0800DBF2: lsls r1, r3, 1 adds r0, r6, 0 lsls r0, r1 ands r0, r4 asrs r0, r1 adds r0, r5 strh r0, [r2] adds r2, 0x2 adds r3, 0x1 cmp r3, 0x5 ble _0800DBF2 mov r0, sp adds r1, r7, 0 movs r2, 0x6 bl CpuSet _0800DC12: add sp, 0xC pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0800DC1C: .4byte 0x03004b20 _0800DC20: .4byte 0x00006001 thumb_func_end sub_800DAF8 thumb_func_start sub_800DC24 sub_800DC24: @ 800DC24 push {r4,r5,lr} sub sp, 0x4 ldr r0, _0800DC40 ldrb r2, [r0] cmp r2, 0x3 bne _0800DC4C ldr r4, _0800DC44 ldr r1, _0800DC48 movs r0, 0x2 str r0, [sp] adds r0, r4, 0 movs r2, 0xA0 movs r3, 0xD b _0800DDCA .align 2, 0 _0800DC40: .4byte 0x02024d26 _0800DC44: .4byte 0x03004210 _0800DC48: .4byte gUnknown_08400E57 _0800DC4C: ldr r0, _0800DC80 ldrh r1, [r0] movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _0800DD38 cmp r2, 0x1 bne _0800DCCC ldr r2, _0800DC84 ldr r0, _0800DC88 ldr r1, _0800DC8C adds r0, r1 ldrb r1, [r0] lsls r0, r1, 3 subs r0, r1 lsls r0, 2 adds r0, r2 ldrh r0, [r0, 0x18] cmp r0, 0x1 beq _0800DC9C cmp r0, 0x1 bgt _0800DC90 cmp r0, 0 bne _0800DC7E b _0800DDA8 _0800DC7E: b _0800DE1C .align 2, 0 _0800DC80: .4byte 0x020239f8 _0800DC84: .4byte 0x03002970 _0800DC88: .4byte 0x02000000 _0800DC8C: .4byte 0x000160cb _0800DC90: cmp r0, 0x2 bne _0800DC96 b _0800DDA8 _0800DC96: cmp r0, 0x3 beq _0800DC9C b _0800DE1C _0800DC9C: ldr r4, _0800DCC0 ldr r1, _0800DCC4 movs r5, 0x2 str r5, [sp] adds r0, r4, 0 movs r2, 0xA0 movs r3, 0x15 bl InitWindow adds r0, r4, 0 bl sub_8002F44 ldr r1, _0800DCC8 str r5, [sp] adds r0, r4, 0 movs r2, 0xA8 movs r3, 0x6 b _0800DDCA .align 2, 0 _0800DCC0: .4byte 0x03004210 _0800DCC4: .4byte gUnknown_08400E48 _0800DCC8: .4byte gUnknown_08400E4F _0800DCCC: ldr r2, _0800DCF0 ldr r0, _0800DCF4 ldr r1, _0800DCF8 adds r0, r1 ldrb r1, [r0] lsls r0, r1, 3 subs r0, r1 lsls r0, 2 adds r0, r2 ldrh r0, [r0, 0x18] cmp r0, 0x1 beq _0800DDA8 cmp r0, 0x1 bgt _0800DCFC cmp r0, 0 beq _0800DD08 b _0800DE1C .align 2, 0 _0800DCF0: .4byte 0x03002970 _0800DCF4: .4byte 0x02000000 _0800DCF8: .4byte 0x000160cb _0800DCFC: cmp r0, 0x2 beq _0800DD08 cmp r0, 0x3 beq _0800DD06 b _0800DE1C _0800DD06: b _0800DDA8 _0800DD08: ldr r4, _0800DD2C ldr r1, _0800DD30 movs r5, 0x2 str r5, [sp] adds r0, r4, 0 movs r2, 0xA0 movs r3, 0x15 bl InitWindow adds r0, r4, 0 bl sub_8002F44 ldr r1, _0800DD34 str r5, [sp] adds r0, r4, 0 movs r2, 0xA8 movs r3, 0x6 b _0800DDCA .align 2, 0 _0800DD2C: .4byte 0x03004210 _0800DD30: .4byte gUnknown_08400E48 _0800DD34: .4byte gUnknown_08400E4F _0800DD38: cmp r2, 0x1 bne _0800DD90 ldr r2, _0800DD78 ldr r0, _0800DD7C ldr r1, _0800DD80 adds r0, r1 ldrb r1, [r0] lsls r0, r1, 3 subs r0, r1 lsls r0, 2 adds r0, r2 ldrh r0, [r0, 0x18] cmp r0, 0 beq _0800DDA8 ldr r4, _0800DD84 ldr r1, _0800DD88 movs r5, 0x2 str r5, [sp] adds r0, r4, 0 movs r2, 0xA0 movs r3, 0x15 bl InitWindow adds r0, r4, 0 bl sub_8002F44 ldr r1, _0800DD8C str r5, [sp] adds r0, r4, 0 movs r2, 0xA8 movs r3, 0x6 b _0800DDCA .align 2, 0 _0800DD78: .4byte 0x03002970 _0800DD7C: .4byte 0x02000000 _0800DD80: .4byte 0x000160cb _0800DD84: .4byte 0x03004210 _0800DD88: .4byte gUnknown_08400E48 _0800DD8C: .4byte gUnknown_08400E4F _0800DD90: ldr r2, _0800DDD8 ldr r0, _0800DDDC ldr r1, _0800DDE0 adds r0, r1 ldrb r1, [r0] lsls r0, r1, 3 subs r0, r1 lsls r0, 2 adds r0, r2 ldrh r0, [r0, 0x18] cmp r0, 0 beq _0800DDF0 _0800DDA8: ldr r4, _0800DDE4 ldr r1, _0800DDE8 movs r5, 0x2 str r5, [sp] adds r0, r4, 0 movs r2, 0xA0 movs r3, 0x6 bl InitWindow adds r0, r4, 0 bl sub_8002F44 ldr r1, _0800DDEC str r5, [sp] adds r0, r4, 0 movs r2, 0xA8 movs r3, 0x15 _0800DDCA: bl InitWindow adds r0, r4, 0 bl sub_8002F44 b _0800DE1C .align 2, 0 _0800DDD8: .4byte 0x03002970 _0800DDDC: .4byte 0x02000000 _0800DDE0: .4byte 0x000160cb _0800DDE4: .4byte 0x03004210 _0800DDE8: .4byte gUnknown_08400E48 _0800DDEC: .4byte gUnknown_08400E4F _0800DDF0: ldr r4, _0800DE24 ldr r1, _0800DE28 movs r5, 0x2 str r5, [sp] adds r0, r4, 0 movs r2, 0xA0 movs r3, 0x15 bl InitWindow adds r0, r4, 0 bl sub_8002F44 ldr r1, _0800DE2C str r5, [sp] adds r0, r4, 0 movs r2, 0xA8 movs r3, 0x6 bl InitWindow adds r0, r4, 0 bl sub_8002F44 _0800DE1C: add sp, 0x4 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0800DE24: .4byte 0x03004210 _0800DE28: .4byte gUnknown_08400E48 _0800DE2C: .4byte gUnknown_08400E4F thumb_func_end sub_800DC24 thumb_func_start sub_800DE30 sub_800DE30: @ 800DE30 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x10 lsls r0, 24 lsrs r0, 24 mov r9, r0 ldr r1, _0800DE64 lsls r0, 2 mov r10, r0 add r0, r9 lsls r0, 3 adds r6, r0, r1 movs r1, 0x8 ldrsh r0, [r6, r1] cmp r0, 0x1 bne _0800DE58 b _0800DF9C _0800DE58: cmp r0, 0x1 bgt _0800DE68 cmp r0, 0 beq _0800DE70 b _0800E212 .align 2, 0 _0800DE64: .4byte 0x03004b20 _0800DE68: cmp r0, 0x2 bne _0800DE6E b _0800E03C _0800DE6E: b _0800E212 _0800DE70: ldr r0, _0800DED0 ldrh r1, [r0] movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _0800DEE0 ldr r0, _0800DED4 ldr r2, _0800DED8 mov r8, r2 adds r7, r0, 0 adds r7, 0x8 movs r5, 0x3 _0800DE88: ldrb r0, [r7, 0x10] movs r1, 0x3 ands r1, r0 str r1, [sp, 0x8] lsls r4, r1, 1 adds r4, r1 lsls r4, 2 mov r2, r8 adds r0, r4, r2 ldr r1, [r0] str r1, [sp, 0xC] ldrh r2, [r0, 0x4] ldrb r3, [r0, 0x6] ldrb r0, [r0, 0x7] str r0, [sp] movs r0, 0x1 str r0, [sp, 0x4] adds r0, r1, 0 adds r1, r7, 0 bl sub_8002E4C ldr r0, [sp, 0xC] bl sub_8002F44 ldr r2, _0800DEDC adds r4, r2 ldr r2, [r4] mov r0, r9 ldr r1, [sp, 0x8] bl sub_800DAF8 adds r7, 0x1C subs r5, 0x1 cmp r5, 0 bge _0800DE88 b _0800DF70 .align 2, 0 _0800DED0: .4byte 0x020239f8 _0800DED4: .4byte 0x03002970 _0800DED8: .4byte gUnknown_081F9680 _0800DEDC: .4byte gUnknown_081F9688 _0800DEE0: ldr r0, _0800DF84 ldr r5, _0800DF88 adds r0, r5 ldrb r7, [r0] movs r0, 0x1 adds r6, r7, 0 eors r6, r0 adds r1, r6, 0 ldr r2, _0800DF8C lsls r0, r7, 3 subs r0, r7 lsls r0, 2 adds r0, r2 ldrh r0, [r0, 0x18] cmp r0, 0 beq _0800DF04 adds r6, r7, 0 adds r7, r1, 0 _0800DF04: ldr r0, _0800DF90 mov r8, r0 adds r0, 0x30 mov r1, r8 ldr r4, [r1, 0x30] lsls r1, r7, 3 subs r1, r7 lsls r1, 2 ldr r2, _0800DF94 adds r1, r2 ldrh r2, [r0, 0x4] ldrb r3, [r0, 0x6] ldrb r0, [r0, 0x7] str r0, [sp] movs r5, 0x1 str r5, [sp, 0x4] adds r0, r4, 0 bl sub_8002E4C adds r0, r4, 0 bl sub_8002F44 mov r0, r8 ldr r2, [r0, 0x38] mov r0, r9 adds r1, r7, 0 bl sub_800DAF8 mov r0, r8 adds r0, 0x3C mov r1, r8 ldr r4, [r1, 0x3C] lsls r1, r6, 3 subs r1, r6 lsls r1, 2 ldr r2, _0800DF94 adds r1, r2 ldrh r2, [r0, 0x4] ldrb r3, [r0, 0x6] ldrb r0, [r0, 0x7] str r0, [sp] str r5, [sp, 0x4] adds r0, r4, 0 bl sub_8002E4C adds r0, r4, 0 bl sub_8002F44 mov r5, r8 ldr r2, [r5, 0x44] mov r0, r9 adds r1, r6, 0 bl sub_800DAF8 _0800DF70: ldr r0, _0800DF98 mov r1, r10 add r1, r9 lsls r1, 3 adds r1, r0 ldrh r0, [r1, 0x8] adds r0, 0x1 strh r0, [r1, 0x8] b _0800E212 .align 2, 0 _0800DF84: .4byte 0x02000000 _0800DF88: .4byte 0x000160cb _0800DF8C: .4byte 0x03002970 _0800DF90: .4byte gUnknown_081F9680 _0800DF94: .4byte 0x03002978 _0800DF98: .4byte 0x03004b20 _0800DF9C: ldr r0, _0800E010 bl AllocSpritePalette lsls r0, 24 ldr r2, _0800E014 lsrs r0, 19 ldr r1, _0800E018 adds r0, r1 adds r2, r0, r2 ldr r1, _0800E01C adds r0, r1 ldr r1, _0800E020 strh r1, [r0] strh r1, [r2] ldr r0, _0800E024 movs r1, 0x6C movs r2, 0x50 movs r3, 0 bl CreateSprite ldr r4, _0800E028 ldr r2, _0800E02C adds r7, r4, r2 strb r0, [r7] ldr r0, _0800E030 movs r1, 0x84 movs r2, 0x50 movs r3, 0 bl CreateSprite ldr r5, _0800E034 adds r4, r5 strb r0, [r4] ldr r3, _0800E038 ldrb r1, [r7] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 adds r0, 0x3E ldrb r1, [r0] movs r2, 0x4 orrs r1, r2 strb r1, [r0] ldrb r1, [r4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 adds r0, 0x3E ldrb r1, [r0] orrs r1, r2 strb r1, [r0] ldrh r0, [r6, 0x8] adds r0, 0x1 strh r0, [r6, 0x8] b _0800E212 .align 2, 0 _0800E010: .4byte 0x00002710 _0800E014: .4byte 0x0202eac8 _0800E018: .4byte 0x0000021e _0800E01C: .4byte 0x0202eec8 _0800E020: .4byte 0x00007fff _0800E024: .4byte gSpriteTemplate_81F9574 _0800E028: .4byte 0x02000000 _0800E02C: .4byte 0x0001608a _0800E030: .4byte gSpriteTemplate_81F958C _0800E034: .4byte 0x0001608b _0800E038: .4byte 0x02020004 _0800E03C: movs r1, 0x12 ldrsh r0, [r6, r1] cmp r0, 0 beq _0800E0A4 ldr r4, _0800E090 ldrh r0, [r6, 0xA] bl sine2 lsls r0, 16 asrs r0, 16 cmp r0, 0 bge _0800E056 adds r0, 0x1F _0800E056: asrs r1, r0, 5 movs r2, 0x14 negs r2, r2 adds r0, r2, 0 subs r0, r1 strh r0, [r4] ldr r4, _0800E094 ldrh r0, [r6, 0xC] bl sine2 lsls r0, 16 asrs r0, 16 cmp r0, 0 bge _0800E074 adds r0, 0x1F _0800E074: asrs r1, r0, 5 movs r5, 0x8C negs r5, r5 adds r0, r5, 0 subs r0, r1 strh r0, [r4] ldr r0, _0800E098 ldr r2, _0800E09C adds r1, r2, 0 strh r1, [r0] ldr r0, _0800E0A0 strh r1, [r0] b _0800E110 .align 2, 0 _0800E090: .4byte 0x030042c0 _0800E094: .4byte 0x03004288 _0800E098: .4byte 0x030041b4 _0800E09C: .4byte 0x0000ffdc _0800E0A0: .4byte 0x03004280 _0800E0A4: ldr r4, _0800E134 ldrh r0, [r6, 0xA] bl sine2 lsls r0, 16 asrs r0, 16 cmp r0, 0 bge _0800E0B6 adds r0, 0x1F _0800E0B6: asrs r1, r0, 5 movs r5, 0x14 negs r5, r5 adds r0, r5, 0 subs r0, r1 strh r0, [r4] ldr r4, _0800E138 ldrh r0, [r6, 0xA] bl cosine2 lsls r0, 16 asrs r0, 16 cmp r0, 0 bge _0800E0D4 adds r0, 0x1F _0800E0D4: asrs r0, 5 subs r0, 0xA4 strh r0, [r4] ldr r4, _0800E13C ldrh r0, [r6, 0xC] bl sine2 lsls r0, 16 asrs r0, 16 cmp r0, 0 bge _0800E0EC adds r0, 0x1F _0800E0EC: asrs r1, r0, 5 movs r2, 0x8C negs r2, r2 adds r0, r2, 0 subs r0, r1 strh r0, [r4] ldr r4, _0800E140 ldrh r0, [r6, 0xC] bl cosine2 lsls r0, 16 asrs r0, 16 cmp r0, 0 bge _0800E10A adds r0, 0x1F _0800E10A: asrs r0, 5 subs r0, 0xA4 strh r0, [r4] _0800E110: ldr r1, _0800E144 mov r5, r9 lsls r0, r5, 2 add r0, r9 lsls r0, 3 adds r1, r0, r1 ldrh r0, [r1, 0xC] movs r2, 0xC ldrsh r7, [r1, r2] cmp r7, 0 beq _0800E148 subs r0, 0x2 strh r0, [r1, 0xC] ldrh r0, [r1, 0xA] adds r0, 0x2 strh r0, [r1, 0xA] b _0800E212 .align 2, 0 _0800E134: .4byte 0x030042c0 _0800E138: .4byte 0x030041b4 _0800E13C: .4byte 0x03004288 _0800E140: .4byte 0x03004280 _0800E144: .4byte 0x03004b20 _0800E148: movs r5, 0x12 ldrsh r0, [r1, r5] cmp r0, 0 beq _0800E154 bl sub_800DC24 _0800E154: movs r0, 0x78 bl audio_play mov r0, r9 bl DestroyTask ldr r4, _0800E224 ldr r0, _0800E228 mov r8, r0 ldr r1, _0800E22C add r1, r8 mov r9, r1 ldrb r0, [r1] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r4 adds r1, 0x3E ldrb r3, [r1] movs r2, 0x5 negs r2, r2 adds r0, r2, 0 ands r0, r3 strb r0, [r1] ldr r5, _0800E230 add r8, r5 mov r0, r8 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 adds r0, 0x3E ldrb r1, [r0] ands r2, r1 strb r2, [r0] mov r1, r8 ldrb r0, [r1] lsls r2, r0, 4 adds r2, r0 lsls r2, 2 adds r2, r4 ldrh r3, [r2, 0x4] lsls r1, r3, 22 lsrs r1, 22 adds r1, 0x40 ldr r5, _0800E234 adds r0, r5, 0 ands r1, r0 ldr r0, _0800E238 ands r0, r3 orrs r0, r1 strh r0, [r2, 0x4] mov r0, r9 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 strh r7, [r0, 0x2E] mov r2, r8 ldrb r1, [r2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 movs r1, 0x1 strh r1, [r0, 0x2E] mov r5, r9 ldrb r1, [r5] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 ldrh r1, [r0, 0x20] strh r1, [r0, 0x30] ldrb r1, [r2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 ldrh r1, [r0, 0x20] strh r1, [r0, 0x30] ldrb r1, [r5] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 strh r7, [r0, 0x32] ldrb r1, [r2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 strh r7, [r0, 0x32] _0800E212: 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 _0800E224: .4byte 0x02020004 _0800E228: .4byte 0x02000000 _0800E22C: .4byte 0x0001608a _0800E230: .4byte 0x0001608b _0800E234: .4byte 0x000003ff _0800E238: .4byte 0xfffffc00 thumb_func_end sub_800DE30 thumb_func_start sub_800E23C sub_800E23C: @ 800E23C push {r4,r5,lr} ldr r0, _0800E29C ldrh r1, [r0] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _0800E2DC ldr r0, _0800E2A0 ldr r1, _0800E2A4 bl LZDecompressVram ldr r4, _0800E2A8 ldr r1, _0800E2AC adds r0, r4, 0 bl LZDecompressVram ldr r1, _0800E2B0 adds r0, r4, 0 bl LZDecompressVram ldr r0, _0800E2B4 ldr r1, _0800E2B8 bl LZDecompressVram ldr r0, _0800E2BC movs r1, 0x60 movs r2, 0x20 bl LoadCompressedPalette ldr r1, _0800E2C0 ldr r2, _0800E2C4 adds r0, r2, 0 strh r0, [r1] ldr r0, _0800E2C8 movs r1, 0x36 strh r1, [r0] adds r0, 0x2 strh r1, [r0] ldr r0, _0800E2CC ldr r2, _0800E2D0 adds r1, r2, 0 strh r1, [r0] ldr r0, _0800E2D4 strh r1, [r0] ldr r0, _0800E2D8 bl LoadCompressedObjectPic b _0800E3FC .align 2, 0 _0800E29C: .4byte 0x020239f8 _0800E2A0: .4byte gUnknown_08E5DA10 _0800E2A4: .4byte 0x06004000 _0800E2A8: .4byte gUnknown_08E5DAF8 _0800E2AC: .4byte 0x0600e000 _0800E2B0: .4byte 0x0600f000 _0800E2B4: .4byte gUnknown_08E5DC2C _0800E2B8: .4byte 0x06010000 _0800E2BC: .4byte gUnknown_08E5DC04 _0800E2C0: .4byte 0x0400000a _0800E2C4: .4byte 0x00005c04 _0800E2C8: .4byte 0x04000048 _0800E2CC: .4byte 0x030041b4 _0800E2D0: .4byte 0x0000ff5c _0800E2D4: .4byte 0x03004280 _0800E2D8: .4byte gUnknown_081F95A4 _0800E2DC: ldr r0, _0800E2F0 ands r0, r1 cmp r0, 0 beq _0800E300 ldr r0, _0800E2F4 ldr r1, _0800E2F8 bl LZDecompressVram ldr r0, _0800E2FC b _0800E3D2 .align 2, 0 _0800E2F0: .4byte 0x00000902 _0800E2F4: .4byte gBattleTerrainAnimTiles_Building _0800E2F8: .4byte 0x06004000 _0800E2FC: .4byte gBattleTerrainAnimTilemap_Building _0800E300: movs r0, 0x80 lsls r0, 5 ands r0, r1 cmp r0, 0 beq _0800E348 ldr r0, _0800E320 ldrb r0, [r0] cmp r0, 0x2 bne _0800E330 ldr r0, _0800E324 ldr r1, _0800E328 bl LZDecompressVram ldr r0, _0800E32C b _0800E3D2 .align 2, 0 _0800E320: .4byte gGameVersion _0800E324: .4byte gBattleTerrainAnimTiles_Cave _0800E328: .4byte 0x06004000 _0800E32C: .4byte gBattleTerrainAnimTilemap_Cave _0800E330: ldr r0, _0800E33C ldr r1, _0800E340 bl LZDecompressVram ldr r0, _0800E344 b _0800E3D2 .align 2, 0 _0800E33C: .4byte gBattleTerrainAnimTiles_Underwater _0800E340: .4byte 0x06004000 _0800E344: .4byte gBattleTerrainAnimTilemap_Underwater _0800E348: movs r0, 0x8 ands r0, r1 cmp r0, 0 beq _0800E3A0 ldr r2, _0800E370 ldr r0, _0800E374 ldrh r1, [r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r2 ldrb r0, [r0, 0x1] cmp r0, 0x19 bne _0800E384 ldr r0, _0800E378 ldr r1, _0800E37C bl LZDecompressVram ldr r0, _0800E380 b _0800E3D2 .align 2, 0 _0800E370: .4byte gTrainers _0800E374: .4byte 0x0202ff5e _0800E378: .4byte gBattleTerrainAnimTiles_Building _0800E37C: .4byte 0x06004000 _0800E380: .4byte gBattleTerrainAnimTilemap_Building _0800E384: cmp r0, 0x20 bne _0800E3A0 ldr r0, _0800E394 ldr r1, _0800E398 bl LZDecompressVram ldr r0, _0800E39C b _0800E3D2 .align 2, 0 _0800E394: .4byte gBattleTerrainAnimTiles_Building _0800E398: .4byte 0x06004000 _0800E39C: .4byte gBattleTerrainAnimTilemap_Building _0800E3A0: bl sav1_map_get_battletype lsls r0, 24 cmp r0, 0 bne _0800E3EC ldr r4, _0800E3DC ldr r5, _0800E3E0 ldrb r1, [r5] lsls r0, r1, 2 adds r0, r1 lsls r0, 2 adds r1, r4, 0 adds r1, 0x8 adds r0, r1 ldr r0, [r0] ldr r1, _0800E3E4 bl LZDecompressVram ldrb r1, [r5] lsls r0, r1, 2 adds r0, r1 lsls r0, 2 adds r4, 0xC adds r0, r4 ldr r0, [r0] _0800E3D2: ldr r1, _0800E3E8 bl LZDecompressVram b _0800E3FC .align 2, 0 _0800E3DC: .4byte gBattleTerrainTable _0800E3E0: .4byte 0x0300428c _0800E3E4: .4byte 0x06004000 _0800E3E8: .4byte 0x0600e000 _0800E3EC: ldr r0, _0800E404 ldr r1, _0800E408 bl LZDecompressVram ldr r0, _0800E40C ldr r1, _0800E410 bl LZDecompressVram _0800E3FC: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0800E404: .4byte gBattleTerrainAnimTiles_Building _0800E408: .4byte 0x06004000 _0800E40C: .4byte gBattleTerrainAnimTilemap_Building _0800E410: .4byte 0x0600e000 thumb_func_end sub_800E23C thumb_func_start sub_800E414 sub_800E414: @ 800E414 push {r4,lr} lsls r0, 24 lsrs r0, 24 movs r4, 0 cmp r0, 0x6 bls _0800E422 b _0800E7BA _0800E422: lsls r0, 2 ldr r1, _0800E42C adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0800E42C: .4byte _0800E430 .align 2, 0 _0800E430: .4byte _0800E44C .4byte _0800E45C .4byte _0800E474 .4byte _0800E484 .4byte _0800E590 .4byte _0800E69C .4byte _0800E7B4 _0800E44C: ldr r0, _0800E458 movs r1, 0xC0 lsls r1, 19 bl LZDecompressVram b _0800E7BC .align 2, 0 _0800E458: .4byte gUnknown_08D00000 _0800E45C: ldr r0, _0800E46C ldr r1, _0800E470 movs r2, 0x80 lsls r2, 4 bl CpuSet b _0800E7BC .align 2, 0 _0800E46C: .4byte gUnknown_08D00524 _0800E470: .4byte 0x0600c000 _0800E474: ldr r0, _0800E480 movs r1, 0 movs r2, 0x40 bl LoadCompressedPalette b _0800E7BC .align 2, 0 _0800E480: .4byte gUnknown_08D004E0 _0800E484: ldr r0, _0800E4A8 ldrh r1, [r0] ldr r0, _0800E4AC ands r0, r1 cmp r0, 0 beq _0800E492 b _0800E57C _0800E492: movs r0, 0x80 lsls r0, 5 ands r0, r1 cmp r0, 0 beq _0800E4C0 ldr r0, _0800E4B0 ldrb r0, [r0] cmp r0, 0x2 bne _0800E4B8 ldr r0, _0800E4B4 b _0800E57E .align 2, 0 _0800E4A8: .4byte 0x020239f8 _0800E4AC: .4byte 0x00000902 _0800E4B0: .4byte gGameVersion _0800E4B4: .4byte gBattleTerrainTiles_Cave _0800E4B8: ldr r0, _0800E4BC b _0800E57E .align 2, 0 _0800E4BC: .4byte gBattleTerrainTiles_Water _0800E4C0: movs r0, 0x8 ands r0, r1 cmp r0, 0 beq _0800E4F0 ldr r2, _0800E4E4 ldr r0, _0800E4E8 ldrh r1, [r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r2 ldrb r0, [r0, 0x1] cmp r0, 0x19 beq _0800E57C cmp r0, 0x20 bne _0800E4F0 ldr r0, _0800E4EC b _0800E57E .align 2, 0 _0800E4E4: .4byte gTrainers _0800E4E8: .4byte 0x0202ff5e _0800E4EC: .4byte gUnknown_08E62DAC _0800E4F0: bl sav1_map_get_battletype lsls r0, 24 lsrs r0, 24 cmp r0, 0x8 bls _0800E4FE b _0800E7BC _0800E4FE: lsls r0, 2 ldr r1, _0800E508 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0800E508: .4byte _0800E50C .align 2, 0 _0800E50C: .4byte _0800E530 .4byte _0800E57C .4byte _0800E54C .4byte _0800E554 .4byte _0800E55C .4byte _0800E564 .4byte _0800E56C .4byte _0800E574 .4byte _0800E57C _0800E530: ldr r2, _0800E544 ldr r0, _0800E548 ldrb r1, [r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 2 adds r0, r2 ldr r0, [r0] b _0800E57E .align 2, 0 _0800E544: .4byte gBattleTerrainTable _0800E548: .4byte 0x0300428c _0800E54C: ldr r0, _0800E550 b _0800E57E .align 2, 0 _0800E550: .4byte gUnknown_08E62DAC _0800E554: ldr r0, _0800E558 b _0800E57E .align 2, 0 _0800E558: .4byte gUnknown_08E62DAC _0800E55C: ldr r0, _0800E560 b _0800E57E .align 2, 0 _0800E560: .4byte gUnknown_08E62DAC _0800E564: ldr r0, _0800E568 b _0800E57E .align 2, 0 _0800E568: .4byte gUnknown_08E62DAC _0800E56C: ldr r0, _0800E570 b _0800E57E .align 2, 0 _0800E570: .4byte gUnknown_08E62DAC _0800E574: ldr r0, _0800E578 b _0800E57E .align 2, 0 _0800E578: .4byte gUnknown_08E62DAC _0800E57C: ldr r0, _0800E588 _0800E57E: ldr r1, _0800E58C bl LZDecompressVram b _0800E7BC .align 2, 0 _0800E588: .4byte gBattleTerrainTiles_Building _0800E58C: .4byte 0x06008000 _0800E590: ldr r0, _0800E5B4 ldrh r1, [r0] ldr r0, _0800E5B8 ands r0, r1 cmp r0, 0 beq _0800E59E b _0800E688 _0800E59E: movs r0, 0x80 lsls r0, 5 ands r0, r1 cmp r0, 0 beq _0800E5CC ldr r0, _0800E5BC ldrb r0, [r0] cmp r0, 0x2 bne _0800E5C4 ldr r0, _0800E5C0 b _0800E68A .align 2, 0 _0800E5B4: .4byte 0x020239f8 _0800E5B8: .4byte 0x00000902 _0800E5BC: .4byte gGameVersion _0800E5C0: .4byte gBattleTerrainTilemap_Cave _0800E5C4: ldr r0, _0800E5C8 b _0800E68A .align 2, 0 _0800E5C8: .4byte gBattleTerrainTilemap_Water _0800E5CC: movs r0, 0x8 ands r0, r1 cmp r0, 0 beq _0800E5FC ldr r2, _0800E5F0 ldr r0, _0800E5F4 ldrh r1, [r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r2 ldrb r0, [r0, 0x1] cmp r0, 0x19 beq _0800E688 cmp r0, 0x20 bne _0800E5FC ldr r0, _0800E5F8 b _0800E68A .align 2, 0 _0800E5F0: .4byte gTrainers _0800E5F4: .4byte 0x0202ff5e _0800E5F8: .4byte gUnknown_08E633B4 _0800E5FC: bl sav1_map_get_battletype lsls r0, 24 lsrs r0, 24 cmp r0, 0x8 bls _0800E60A b _0800E7BC _0800E60A: lsls r0, 2 ldr r1, _0800E614 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0800E614: .4byte _0800E618 .align 2, 0 _0800E618: .4byte _0800E63C .4byte _0800E688 .4byte _0800E658 .4byte _0800E660 .4byte _0800E668 .4byte _0800E670 .4byte _0800E678 .4byte _0800E680 .4byte _0800E688 _0800E63C: ldr r2, _0800E650 ldr r0, _0800E654 ldrb r1, [r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 2 adds r2, 0x4 adds r0, r2 ldr r0, [r0] b _0800E68A .align 2, 0 _0800E650: .4byte gBattleTerrainTable _0800E654: .4byte 0x0300428c _0800E658: ldr r0, _0800E65C b _0800E68A .align 2, 0 _0800E65C: .4byte gUnknown_08E633B4 _0800E660: ldr r0, _0800E664 b _0800E68A .align 2, 0 _0800E664: .4byte gUnknown_08E633B4 _0800E668: ldr r0, _0800E66C b _0800E68A .align 2, 0 _0800E66C: .4byte gUnknown_08E633B4 _0800E670: ldr r0, _0800E674 b _0800E68A .align 2, 0 _0800E674: .4byte gUnknown_08E633B4 _0800E678: ldr r0, _0800E67C b _0800E68A .align 2, 0 _0800E67C: .4byte gUnknown_08E633B4 _0800E680: ldr r0, _0800E684 b _0800E68A .align 2, 0 _0800E684: .4byte gUnknown_08E633B4 _0800E688: ldr r0, _0800E694 _0800E68A: ldr r1, _0800E698 bl LZDecompressVram b _0800E7BC .align 2, 0 _0800E694: .4byte gBattleTerrainTilemap_Building _0800E698: .4byte 0x0600d000 _0800E69C: ldr r0, _0800E6C0 ldrh r1, [r0] ldr r0, _0800E6C4 ands r0, r1 cmp r0, 0 beq _0800E6AA b _0800E7A4 _0800E6AA: movs r0, 0x80 lsls r0, 5 ands r0, r1 cmp r0, 0 beq _0800E6D8 ldr r0, _0800E6C8 ldrb r0, [r0] cmp r0, 0x2 bne _0800E6D0 ldr r0, _0800E6CC b _0800E7A6 .align 2, 0 _0800E6C0: .4byte 0x020239f8 _0800E6C4: .4byte 0x00000902 _0800E6C8: .4byte gGameVersion _0800E6CC: .4byte gUnknown_08E636E0 _0800E6D0: ldr r0, _0800E6D4 b _0800E7A6 .align 2, 0 _0800E6D4: .4byte gUnknown_08E636A4 _0800E6D8: movs r0, 0x8 ands r0, r1 cmp r0, 0 beq _0800E710 ldr r2, _0800E6F8 ldr r0, _0800E6FC ldrh r1, [r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r2 ldrb r0, [r0, 0x1] cmp r0, 0x19 bne _0800E704 ldr r0, _0800E700 b _0800E7A6 .align 2, 0 _0800E6F8: .4byte gTrainers _0800E6FC: .4byte 0x0202ff5e _0800E700: .4byte gUnknown_08E63774 _0800E704: cmp r0, 0x20 bne _0800E710 ldr r0, _0800E70C b _0800E7A6 .align 2, 0 _0800E70C: .4byte gUnknown_08E639A8 _0800E710: bl sav1_map_get_battletype lsls r0, 24 lsrs r0, 24 cmp r0, 0x8 bhi _0800E7BC lsls r0, 2 ldr r1, _0800E728 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0800E728: .4byte _0800E72C .align 2, 0 _0800E72C: .4byte _0800E750 .4byte _0800E76C .4byte _0800E774 .4byte _0800E77C .4byte _0800E784 .4byte _0800E78C .4byte _0800E794 .4byte _0800E79C .4byte _0800E7A4 _0800E750: ldr r2, _0800E764 ldr r0, _0800E768 ldrb r1, [r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 2 adds r2, 0x10 adds r0, r2 ldr r0, [r0] b _0800E7A6 .align 2, 0 _0800E764: .4byte gBattleTerrainTable _0800E768: .4byte 0x0300428c _0800E76C: ldr r0, _0800E770 b _0800E7A6 .align 2, 0 _0800E770: .4byte gUnknown_08E63738 _0800E774: ldr r0, _0800E778 b _0800E7A6 .align 2, 0 _0800E778: .4byte gUnknown_08E63810 _0800E77C: ldr r0, _0800E780 b _0800E7A6 .align 2, 0 _0800E780: .4byte gUnknown_08E637B0 _0800E784: ldr r0, _0800E788 b _0800E7A6 .align 2, 0 _0800E788: .4byte gUnknown_08E6387C _0800E78C: ldr r0, _0800E790 b _0800E7A6 .align 2, 0 _0800E790: .4byte gUnknown_08E638CC _0800E794: ldr r0, _0800E798 b _0800E7A6 .align 2, 0 _0800E798: .4byte gUnknown_08E63914 _0800E79C: ldr r0, _0800E7A0 b _0800E7A6 .align 2, 0 _0800E7A0: .4byte gUnknown_08E63958 _0800E7A4: ldr r0, _0800E7B0 _0800E7A6: movs r1, 0x20 movs r2, 0x60 bl LoadCompressedPalette b _0800E7BC .align 2, 0 _0800E7B0: .4byte gUnknown_08E62AC0 _0800E7B4: bl sub_800D74C b _0800E7BC _0800E7BA: movs r4, 0x1 _0800E7BC: adds r0, r4, 0 pop {r4} pop {r1} bx r1 thumb_func_end sub_800E414 thumb_func_start sub_800E7C4 sub_800E7C4: @ 800E7C4 push {lr} ldr r0, _0800E7E4 ldrh r1, [r0] movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _0800E7F0 bl sub_800B858 ldr r0, _0800E7E8 bl SetMainCallback2 ldr r1, _0800E7EC movs r0, 0 strb r0, [r1] b _0800E7F4 .align 2, 0 _0800E7E4: .4byte 0x020239f8 _0800E7E8: .4byte sub_800F104 _0800E7EC: .4byte 0x02024d1e _0800E7F0: bl sub_800E7F8 _0800E7F4: pop {r0} bx r0 thumb_func_end sub_800E7C4 thumb_func_start sub_800E7F8 sub_800E7F8: @ 800E7F8 push {r4,r5,lr} sub sp, 0x4 movs r0, 0 bl SetHBlankCallback movs r0, 0 bl SetVBlankCallback movs r4, 0 str r4, [sp] movs r1, 0xC0 lsls r1, 19 ldr r2, _0800E90C mov r0, sp bl CpuSet ldr r0, _0800E910 strh r4, [r0] subs r0, 0xC movs r2, 0xF0 strh r2, [r0] adds r0, 0x4 ldr r3, _0800E914 adds r1, r3, 0 strh r1, [r0] adds r0, 0x4 strh r4, [r0] adds r0, 0x2 strh r4, [r0] ldr r0, _0800E918 strh r2, [r0] ldr r0, _0800E91C strh r1, [r0] bl dp12_8087EA4 ldr r0, _0800E920 movs r3, 0xF0 movs r5, 0xF0 lsls r5, 3 adds r2, r0, r5 movs r1, 0x4F _0800E84A: strh r3, [r0] strh r3, [r2] adds r2, 0x2 adds r0, 0x2 subs r1, 0x1 cmp r1, 0 bge _0800E84A movs r1, 0x50 ldr r4, _0800E924 ldr r0, _0800E920 ldr r3, _0800E928 movs r5, 0x82 lsls r5, 4 adds r2, r0, r5 adds r0, 0xA0 _0800E868: strh r3, [r0] strh r3, [r2] adds r2, 0x2 adds r0, 0x2 adds r1, 0x1 cmp r1, 0x9F ble _0800E868 ldr r0, [r4] ldr r1, [r4, 0x4] ldr r2, [r4, 0x8] bl sub_80895F8 ldr r4, _0800E92C adds r0, r4, 0 bl SetUpWindowConfig bl ResetPaletteFade ldr r0, _0800E930 movs r1, 0 strh r1, [r0] ldr r0, _0800E934 strh r1, [r0] ldr r0, _0800E938 strh r1, [r0] ldr r0, _0800E93C strh r1, [r0] ldr r0, _0800E940 strh r1, [r0] ldr r0, _0800E944 strh r1, [r0] ldr r0, _0800E948 strh r1, [r0] ldr r0, _0800E94C strh r1, [r0] bl sub_8081D3C ldr r1, _0800E950 strb r0, [r1] ldr r0, _0800E954 adds r1, r4, 0 bl InitWindowFromConfig ldr r0, _0800E958 ldr r1, _0800E95C bl InitWindowFromConfig ldr r0, _0800E960 ldr r1, _0800E964 bl InitWindowFromConfig bl sub_800D6D4 bl sub_800DAB8 bl ResetSpriteData bl ResetTasks bl sub_800E23C bl FreeAllSpritePalettes ldr r1, _0800E968 movs r0, 0x4 strb r0, [r1] ldr r0, _0800E96C bl SetVBlankCallback bl sub_800B884 ldr r0, _0800E970 ldrh r1, [r0] movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _0800E978 ldr r0, _0800E974 bl SetMainCallback2 b _0800E97E .align 2, 0 _0800E90C: .4byte 0x05006000 _0800E910: .4byte 0x0400004c _0800E914: .4byte 0x00005051 _0800E918: .4byte 0x030042c4 _0800E91C: .4byte 0x03004240 _0800E920: .4byte 0x03004de0 _0800E924: .4byte gUnknown_081F9674 _0800E928: .4byte 0x0000ff10 _0800E92C: .4byte gWindowConfig_81E6C58 _0800E930: .4byte 0x030042a4 _0800E934: .4byte 0x030042a0 _0800E938: .4byte 0x030042c0 _0800E93C: .4byte 0x030041b4 _0800E940: .4byte 0x03004288 _0800E944: .4byte 0x03004280 _0800E948: .4byte 0x030041b0 _0800E94C: .4byte 0x030041b8 _0800E950: .4byte 0x0300428c _0800E954: .4byte 0x03004210 _0800E958: .4byte 0x030041d0 _0800E95C: .4byte gWindowConfig_81E71D0 _0800E960: .4byte 0x03004250 _0800E964: .4byte gWindowConfig_81E71EC _0800E968: .4byte 0x030028f8 _0800E96C: .4byte sub_800FCFC _0800E970: .4byte 0x020239f8 _0800E974: .4byte sub_800F298 _0800E978: ldr r0, _0800E9CC bl SetMainCallback2 _0800E97E: ldr r0, _0800E9D0 ldrh r1, [r0] movs r0, 0x2 ands r0, r1 cmp r0, 0 bne _0800E998 ldr r0, _0800E9D4 ldr r1, _0800E9D8 ldrh r1, [r1] bl sub_800F8E8 bl sub_8040C38 _0800E998: ldr r0, _0800E9DC ldr r1, _0800E9E0 adds r0, r1 ldrb r1, [r0] movs r2, 0x2 orrs r1, r2 strb r1, [r0] ldr r4, _0800E9E4 movs r3, 0xFA lsls r3, 1 adds r5, r4, r3 _0800E9AE: adds r0, r4, 0 movs r1, 0x3 bl sub_803FCD4 adds r4, 0x64 cmp r4, r5 ble _0800E9AE movs r1, 0 ldr r0, _0800E9E8 strb r1, [r0] add sp, 0x4 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0800E9CC: .4byte sub_800EC9C _0800E9D0: .4byte 0x020239f8 _0800E9D4: .4byte 0x030045c0 _0800E9D8: .4byte 0x0202ff5e _0800E9DC: .4byte 0x03001770 _0800E9E0: .4byte 0x0000043d _0800E9E4: .4byte 0x03004360 _0800E9E8: .4byte 0x02024d1e thumb_func_end sub_800E7F8 thumb_func_start sub_800E9EC sub_800E9EC: @ 800E9EC push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} movs r6, 0 mov r9, r6 movs r0, 0xCE lsls r0, 1 mov r10, r0 mov r8, r6 _0800EA02: movs r0, 0x64 mov r4, r9 muls r4, r0 ldr r0, _0800EAA4 adds r4, r0 adds r0, r4, 0 movs r1, 0x41 bl PokemonGetField lsls r0, 16 lsrs r5, r0, 16 adds r0, r4, 0 movs r1, 0x39 bl PokemonGetField lsls r0, 16 lsrs r7, r0, 16 adds r0, r4, 0 movs r1, 0x37 bl PokemonGetField adds r1, r0, 0 cmp r5, 0 beq _0800EA7E cmp r5, r10 beq _0800EA4A cmp r7, 0 beq _0800EA4A cmp r1, 0 bne _0800EA4A movs r0, 0x1 mov r2, r8 lsls r0, r2 orrs r6, r0 lsls r0, r6, 16 lsrs r6, r0, 16 _0800EA4A: cmp r5, 0 beq _0800EA7E cmp r7, 0 beq _0800EA66 cmp r5, r10 beq _0800EA5A cmp r1, 0 beq _0800EA66 _0800EA5A: movs r0, 0x2 mov r1, r8 lsls r0, r1 orrs r6, r0 lsls r0, r6, 16 lsrs r6, r0, 16 _0800EA66: cmp r5, 0 beq _0800EA7E cmp r5, r10 beq _0800EA7E cmp r7, 0 bne _0800EA7E movs r0, 0x3 mov r2, r8 lsls r0, r2 orrs r6, r0 lsls r0, r6, 16 lsrs r6, r0, 16 _0800EA7E: movs r0, 0x2 add r8, r0 movs r1, 0x1 add r9, r1 mov r2, r9 cmp r2, 0x5 ble _0800EA02 ldr r1, _0800EAA8 strb r6, [r1, 0x2] lsrs r0, r6, 8 strb r0, [r1, 0x3] pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0800EAA4: .4byte 0x03004360 _0800EAA8: .4byte 0x02000000 thumb_func_end sub_800E9EC thumb_func_start sub_800EAAC sub_800EAAC: @ 800EAAC push {r4-r6,lr} ldr r4, _0800EAF4 movs r2, 0 ldr r6, _0800EAF8 ldr r0, _0800EAFC adds r3, r6, r0 _0800EAB8: adds r0, r4, r2 adds r1, r2, r3 ldrb r1, [r1] strb r1, [r0] adds r2, 0x1 cmp r2, 0x6 ble _0800EAB8 movs r2, 0 adds r3, r4, 0 adds r3, 0x8 ldr r5, _0800EB00 _0800EACE: adds r0, r3, r2 adds r1, r2, r5 ldrb r1, [r1] strb r1, [r0] adds r2, 0x1 cmp r2, 0x11 ble _0800EACE ldr r1, _0800EB04 adds r0, r6, r1 ldrb r0, [r0] strb r0, [r4, 0x7] adds r1, 0x1 adds r0, r6, r1 ldrb r0, [r0] strb r0, [r4, 0x1A] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0800EAF4: .4byte 0x02000004 _0800EAF8: .4byte 0x02025734 _0800EAFC: .4byte 0x00003160 _0800EB00: .4byte 0x02028daa _0800EB04: .4byte 0x00003688 thumb_func_end sub_800EAAC thumb_func_start sub_800EB08 sub_800EB08: @ 800EB08 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} ldr r0, _0800EB84 ldrh r1, [r0] movs r0, 0x2 ands r0, r1 cmp r0, 0 bne _0800EBA4 movs r3, 0 ldr r5, _0800EB88 ldr r0, _0800EB8C mov r12, r0 adds r7, r5, 0 ldr r6, _0800EB90 add r6, r12 adds r4, r5, 0 adds r4, 0x38 _0800EB30: adds r1, r3, r7 adds r2, r3, r6 ldrb r0, [r2] strb r0, [r1] adds r1, r3, r4 ldrb r0, [r2] strb r0, [r1] adds r3, 0x1 cmp r3, 0x6 ble _0800EB30 movs r3, 0 ldr r4, _0800EB94 ldr r7, _0800EB98 adds r6, r4, 0 adds r6, 0x38 _0800EB4E: adds r1, r3, r4 adds r2, r3, r7 ldrb r0, [r2] strb r0, [r1] adds r1, r3, r6 ldrb r0, [r2] strb r0, [r1] adds r3, 0x1 cmp r3, 0x11 ble _0800EB4E ldr r1, _0800EB9C add r1, r12 ldrb r0, [r1] strb r0, [r5, 0x7] ldrb r0, [r1] adds r1, r5, 0 adds r1, 0x3F strb r0, [r1] ldr r1, _0800EBA0 add r1, r12 ldrb r0, [r1] strb r0, [r5, 0x1A] ldrb r1, [r1] adds r0, r5, 0 adds r0, 0x52 strb r1, [r0] b _0800EC28 .align 2, 0 _0800EB84: .4byte 0x020239f8 _0800EB88: .4byte 0x02024df0 _0800EB8C: .4byte 0x02025734 _0800EB90: .4byte 0x00003160 _0800EB94: .4byte 0x02024df8 _0800EB98: .4byte 0x02028daa _0800EB9C: .4byte 0x00003688 _0800EBA0: .4byte 0x00003689 _0800EBA4: movs r0, 0x40 ands r0, r1 movs r1, 0x2 mov r8, r1 cmp r0, 0 beq _0800EBB4 movs r0, 0x4 mov r8, r0 _0800EBB4: movs r3, 0 cmp r3, r8 bge _0800EC28 ldr r1, _0800EC38 mov r12, r1 ldr r0, _0800EC3C mov r10, r0 movs r1, 0x8 add r1, r12 mov r9, r1 _0800EBC8: lsls r0, r3, 8 mov r1, r10 adds r5, r0, r1 lsls r0, r3, 3 subs r0, r3 lsls r0, 2 ldr r1, _0800EC40 adds r0, r1 ldrb r4, [r0, 0x18] movs r2, 0 adds r7, r3, 0x1 lsls r1, r4, 3 subs r0, r1, r4 adds r6, r1, 0 lsls r0, 2 mov r1, r12 adds r3, r0, r1 _0800EBEA: adds r0, r5, r2 ldrb r0, [r0] strb r0, [r3] adds r3, 0x1 adds r2, 0x1 cmp r2, 0x6 ble _0800EBEA movs r2, 0 subs r0, r6, r4 lsls r0, 2 mov r1, r9 adds r3, r0, r1 adds r1, r5, 0 adds r1, 0x8 _0800EC06: adds r0, r1, r2 ldrb r0, [r0] strb r0, [r3] adds r3, 0x1 adds r2, 0x1 cmp r2, 0x11 ble _0800EC06 subs r0, r6, r4 lsls r0, 2 add r0, r12 ldrb r1, [r5, 0x7] strb r1, [r0, 0x7] ldrb r1, [r5, 0x1A] strb r1, [r0, 0x1A] adds r3, r7, 0 cmp r3, r8 blt _0800EBC8 _0800EC28: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0800EC38: .4byte 0x02024df0 _0800EC3C: .4byte 0x03002b84 _0800EC40: .4byte 0x03002970 thumb_func_end sub_800EB08 thumb_func_start shedinja_something shedinja_something: @ 800EC44 push {r4,r5,lr} sub sp, 0x10 adds r4, r0, 0 add r5, sp, 0xC movs r0, 0x1 strb r0, [r5] adds r0, r4, 0 movs r1, 0xB bl PokemonGetField ldr r1, _0800EC94 cmp r0, r1 bne _0800EC8C adds r0, r4, 0 movs r1, 0x3 bl PokemonGetField ldrb r1, [r5] cmp r0, r1 beq _0800EC8C adds r0, r4, 0 movs r1, 0x2 mov r2, sp bl PokemonGetField ldr r1, _0800EC98 mov r0, sp bl StringCompareWithoutExtCtrlCodes cmp r0, 0 bne _0800EC8C adds r0, r4, 0 movs r1, 0x3 adds r2, r5, 0 bl pokemon_setattr _0800EC8C: add sp, 0x10 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0800EC94: .4byte 0x0000012f _0800EC98: .4byte gUnknown_081F96C8 thumb_func_end shedinja_something thumb_func_start sub_800EC9C sub_800EC9C: @ 800EC9C push {r4-r7,lr} bl RunTasks bl AnimateSprites bl BuildOamBuffer bl GetMultiplayerId lsls r0, 24 lsrs r4, r0, 24 ldr r0, _0800ECD4 ldr r1, _0800ECD8 adds r0, r1 strb r4, [r0] movs r0, 0x1 adds r5, r4, 0 eors r5, r0 ldr r0, _0800ECDC ldrb r0, [r0] cmp r0, 0x9 bls _0800ECCA b _0800F008 _0800ECCA: lsls r0, 2 ldr r1, _0800ECE0 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0800ECD4: .4byte 0x02000000 _0800ECD8: .4byte 0x000160cb _0800ECDC: .4byte 0x02024d1e _0800ECE0: .4byte _0800ECE4 .align 2, 0 _0800ECE4: .4byte _0800ED0C .4byte _0800ED7C .4byte _0800EE88 .4byte _0800EEAC .4byte _0800EED8 .4byte _0800EEFC .4byte _0800EF28 .4byte _0800EF48 .4byte _0800EFB4 .4byte _0800EFCC _0800ED0C: ldr r2, _0800ED54 ldrh r1, [r2] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _0800ED64 ldr r0, _0800ED58 ldrb r0, [r0] cmp r0, 0 bne _0800ED22 b _0800F008 _0800ED22: bl sub_8007ECC lsls r0, 24 cmp r0, 0 bne _0800ED2E b _0800F008 _0800ED2E: ldr r4, _0800ED5C movs r5, 0x1 strb r5, [r4] strb r5, [r4, 0x1] bl sub_800E9EC bl sub_800EAAC bl bitmask_all_link_players_but_self lsls r0, 24 lsrs r0, 24 adds r1, r4, 0 movs r2, 0x20 bl SendBlock ldr r0, _0800ED60 strb r5, [r0] b _0800F008 .align 2, 0 _0800ED54: .4byte 0x020239f8 _0800ED58: .4byte 0x03002fa4 _0800ED5C: .4byte 0x02000000 _0800ED60: .4byte 0x02024d1e _0800ED64: movs r0, 0x4 orrs r0, r1 strh r0, [r2] ldr r1, _0800ED78 movs r0, 0x8 strb r0, [r1] bl sub_800EB08 b _0800F008 .align 2, 0 _0800ED78: .4byte 0x02024d1e _0800ED7C: bl GetBlockRecievedStatus movs r1, 0x3 ands r1, r0 cmp r1, 0x3 beq _0800ED8A b _0800F008 _0800ED8A: bl ResetBlockReceivedFlags movs r3, 0 ldr r0, _0800EDA8 ldrh r1, [r0] movs r0, 0x80 lsls r0, 1 cmp r1, r0 bne _0800EDBC cmp r4, 0 bne _0800EDB0 ldr r0, _0800EDAC ldrh r1, [r0] movs r2, 0xC b _0800EDB6 .align 2, 0 _0800EDA8: .4byte 0x03002b80 _0800EDAC: .4byte 0x020239f8 _0800EDB0: ldr r0, _0800EDE0 ldrh r1, [r0] movs r2, 0x8 _0800EDB6: orrs r1, r2 strh r1, [r0] adds r3, 0x1 _0800EDBC: lsls r7, r5, 8 cmp r3, 0 bne _0800EE38 ldr r0, _0800EDE4 movs r1, 0x80 lsls r1, 1 adds r2, r0, r1 ldrh r1, [r0] adds r6, r0, 0 ldrh r2, [r2] cmp r1, r2 bne _0800EDF4 cmp r4, 0 bne _0800EDE8 ldr r0, _0800EDE0 ldrh r1, [r0] movs r2, 0xC b _0800EDEE .align 2, 0 _0800EDE0: .4byte 0x020239f8 _0800EDE4: .4byte 0x03002b80 _0800EDE8: ldr r0, _0800EE04 ldrh r1, [r0] movs r2, 0x8 _0800EDEE: orrs r1, r2 strh r1, [r0] adds r3, 0x1 _0800EDF4: lsls r7, r5, 8 cmp r3, 0 bne _0800EE38 ldrh r1, [r6] ldr r0, _0800EE08 ldr r2, _0800EE04 b _0800EE1A .align 2, 0 _0800EE04: .4byte 0x020239f8 _0800EE08: .4byte 0x00000101 _0800EE0C: adds r3, 0x1 cmp r3, 0x1 bgt _0800EE22 lsls r0, r3, 8 adds r0, r6 ldrh r1, [r0] ldr r0, _0800EE2C _0800EE1A: cmp r1, r0 bls _0800EE0C cmp r3, r4 beq _0800EE0C _0800EE22: cmp r3, 0x2 bne _0800EE30 ldrh r0, [r2] movs r1, 0xC b _0800EE34 .align 2, 0 _0800EE2C: .4byte 0x00000101 _0800EE30: ldrh r0, [r2] movs r1, 0x8 _0800EE34: orrs r0, r1 strh r0, [r2] _0800EE38: bl sub_800EB08 ldr r0, _0800EE78 movs r1, 0 bl CreateTask lsls r0, 24 lsrs r0, 24 ldr r1, _0800EE7C lsls r2, r0, 2 adds r2, r0 lsls r2, 3 adds r2, r1 movs r1, 0 movs r0, 0x87 lsls r0, 1 strh r0, [r2, 0xA] movs r0, 0x5A strh r0, [r2, 0xC] strh r1, [r2, 0x12] ldr r0, _0800EE80 ldrb r1, [r0, 0x2] ldrb r0, [r0, 0x3] lsls r0, 8 orrs r1, r0 strh r1, [r2, 0xE] ldr r0, _0800EE84 adds r0, 0x2 adds r0, r7, r0 ldrh r0, [r0] strh r0, [r2, 0x10] b _0800EF96 .align 2, 0 _0800EE78: .4byte sub_800DE30 _0800EE7C: .4byte 0x03004b20 _0800EE80: .4byte 0x02000000 _0800EE84: .4byte 0x03002b80 _0800EE88: bl sub_8007ECC lsls r0, 24 cmp r0, 0 bne _0800EE94 b _0800F008 _0800EE94: bl bitmask_all_link_players_but_self lsls r0, 24 lsrs r0, 24 ldr r1, _0800EEA8 movs r2, 0xC8 bl SendBlock b _0800EF96 .align 2, 0 _0800EEA8: .4byte 0x03004360 _0800EEAC: bl GetBlockRecievedStatus movs r1, 0x3 ands r1, r0 cmp r1, 0x3 beq _0800EEBA b _0800F008 _0800EEBA: bl ResetBlockReceivedFlags ldr r0, _0800EED0 lsls r1, r5, 8 ldr r2, _0800EED4 adds r1, r2 movs r2, 0xC8 bl memcpy b _0800EF96 .align 2, 0 _0800EED0: .4byte 0x030045c0 _0800EED4: .4byte 0x03002b80 _0800EED8: bl sub_8007ECC lsls r0, 24 cmp r0, 0 bne _0800EEE4 b _0800F008 _0800EEE4: bl bitmask_all_link_players_but_self lsls r0, 24 lsrs r0, 24 ldr r1, _0800EEF8 movs r2, 0xC8 bl SendBlock b _0800EF96 .align 2, 0 _0800EEF8: .4byte 0x03004428 _0800EEFC: bl GetBlockRecievedStatus movs r1, 0x3 ands r1, r0 cmp r1, 0x3 beq _0800EF0A b _0800F008 _0800EF0A: bl ResetBlockReceivedFlags ldr r0, _0800EF20 lsls r1, r5, 8 ldr r2, _0800EF24 adds r1, r2 movs r2, 0xC8 bl memcpy b _0800EF96 .align 2, 0 _0800EF20: .4byte 0x03004688 _0800EF24: .4byte 0x03002b80 _0800EF28: bl sub_8007ECC lsls r0, 24 cmp r0, 0 beq _0800F008 bl bitmask_all_link_players_but_self lsls r0, 24 lsrs r0, 24 ldr r1, _0800EF44 movs r2, 0xC8 bl SendBlock b _0800EF96 .align 2, 0 _0800EF44: .4byte 0x030044f0 _0800EF48: bl GetBlockRecievedStatus movs r1, 0x3 ands r1, r0 cmp r1, 0x3 bne _0800F008 bl ResetBlockReceivedFlags ldr r4, _0800EFA0 lsls r1, r5, 8 ldr r0, _0800EFA4 adds r1, r0 adds r0, r4, 0 movs r2, 0xC8 bl memcpy ldr r1, _0800EFA8 adds r0, r4, r1 bl shedinja_something ldr r1, _0800EFAC adds r0, r4, r1 bl shedinja_something adds r0, r4, 0 subs r0, 0xC8 bl shedinja_something adds r0, r4, 0 subs r0, 0x64 bl shedinja_something adds r0, r4, 0 bl shedinja_something adds r0, r4, 0 adds r0, 0x64 bl shedinja_something _0800EF96: ldr r1, _0800EFB0 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] b _0800F008 .align 2, 0 _0800EFA0: .4byte 0x03004750 _0800EFA4: .4byte 0x03002b80 _0800EFA8: .4byte 0xfffffe70 _0800EFAC: .4byte 0xfffffed4 _0800EFB0: .4byte 0x02024d1e _0800EFB4: bl sub_800B950 ldr r0, _0800EFC8 ldrb r1, [r0] adds r1, 0x1 movs r2, 0 strb r1, [r0] strb r2, [r0, 0x1] strb r2, [r0, 0x2] b _0800F008 .align 2, 0 _0800EFC8: .4byte 0x02024d1e _0800EFCC: ldr r0, _0800F010 adds r1, r0, 0x1 bl battle_load_something lsls r0, 24 cmp r0, 0 beq _0800F008 ldr r2, _0800F014 ldr r1, _0800F018 ldr r0, [r1] str r0, [r2] ldr r0, _0800F01C str r0, [r1] ldr r0, _0800F020 bl SetMainCallback2 ldr r3, _0800F024 ldrh r2, [r3] movs r0, 0x2 ands r0, r2 cmp r0, 0 beq _0800F008 ldr r1, _0800F028 movs r4, 0x80 lsls r4, 4 adds r0, r4, 0 strh r0, [r1] movs r0, 0x20 orrs r0, r2 strh r0, [r3] _0800F008: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0800F010: .4byte 0x02024d1f _0800F014: .4byte 0x030042d0 _0800F018: .4byte 0x03001770 _0800F01C: .4byte sub_8010824 _0800F020: .4byte sub_800F808 _0800F024: .4byte 0x020239f8 _0800F028: .4byte 0x0202ff5e thumb_func_end sub_800EC9C thumb_func_start sub_800F02C sub_800F02C: @ 800F02C push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} movs r0, 0 mov r8, r0 ldr r7, _0800F0F8 mov r10, r7 _0800F03E: mov r1, r8 lsls r6, r1, 5 movs r0, 0x64 mov r4, r8 muls r4, r0 ldr r0, _0800F0FC adds r4, r0 adds r0, r4, 0 movs r1, 0xB bl PokemonGetField movs r1, 0x4 negs r1, r1 add r1, r10 mov r9, r1 adds r5, r6, r1 strh r0, [r5] adds r0, r4, 0 movs r1, 0xC bl PokemonGetField strh r0, [r5, 0x2] adds r0, r4, 0 movs r1, 0x2 adds r2, r7, 0 bl PokemonGetField adds r0, r4, 0 movs r1, 0x38 bl PokemonGetField strb r0, [r5, 0xF] adds r0, r4, 0 movs r1, 0x39 bl PokemonGetField strh r0, [r5, 0x10] adds r0, r4, 0 movs r1, 0x3A bl PokemonGetField strh r0, [r5, 0x12] adds r0, r4, 0 movs r1, 0x37 bl PokemonGetField mov r1, r10 adds r1, 0x10 adds r6, r1 str r0, [r6] adds r0, r4, 0 movs r1, 0 bl PokemonGetField str r0, [r7, 0x14] adds r0, r4, 0 bl pokemon_get_gender strb r0, [r5, 0x1C] adds r0, r7, 0 bl SkipExtCtrlCodes adds r0, r4, 0 movs r1, 0x3 bl PokemonGetField strb r0, [r5, 0x1D] lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _0800F0D4 adds r0, r7, 0 movs r1, 0 bl sub_814A518 _0800F0D4: adds r7, 0x20 movs r0, 0x1 add r8, r0 mov r1, r8 cmp r1, 0x2 ble _0800F03E ldr r0, _0800F100 mov r1, r9 movs r2, 0x60 bl memcpy pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0800F0F8: .4byte 0x02023a04 _0800F0FC: .4byte 0x03004360 _0800F100: .4byte 0x02000000 thumb_func_end sub_800F02C thumb_func_start sub_800F104 sub_800F104: @ 800F104 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} bl GetMultiplayerId lsls r0, 24 lsrs r6, r0, 24 ldr r4, _0800F148 ldr r1, _0800F14C adds r0, r4, r1 strb r6, [r0] ldr r2, _0800F150 adds r2, r4 mov r9, r2 ldr r0, _0800F154 adds r0, r4 mov r8, r0 bl RunTasks bl AnimateSprites bl BuildOamBuffer ldr r5, _0800F158 ldrb r0, [r5] cmp r0, 0x1 beq _0800F1A0 cmp r0, 0x1 bgt _0800F15C cmp r0, 0 beq _0800F168 b _0800F27A .align 2, 0 _0800F148: .4byte 0x02000000 _0800F14C: .4byte 0x000160cb _0800F150: .4byte 0x000160c4 _0800F154: .4byte 0x000160c2 _0800F158: .4byte 0x02024d1e _0800F15C: cmp r0, 0x2 beq _0800F240 cmp r0, 0x3 bne _0800F166 b _0800F25C _0800F166: b _0800F27A _0800F168: ldr r0, _0800F19C ldrb r0, [r0] cmp r0, 0 bne _0800F172 b _0800F27A _0800F172: bl sub_8007ECC lsls r0, 24 cmp r0, 0 bne _0800F17E b _0800F27A _0800F17E: bl sub_800F02C bl bitmask_all_link_players_but_self lsls r0, 24 lsrs r0, 24 adds r1, r4, 0 movs r2, 0x60 bl SendBlock ldrb r0, [r5] adds r0, 0x1 strb r0, [r5] b _0800F27A .align 2, 0 _0800F19C: .4byte 0x03002fa4 _0800F1A0: bl GetBlockRecievedStatus movs r1, 0xF ands r1, r0 cmp r1, 0xF bne _0800F27A bl ResetBlockReceivedFlags movs r4, 0 lsls r0, r6, 3 subs r0, r6 lsls r5, r0, 2 movs r7, 0 _0800F1BA: cmp r4, r6 beq _0800F1FA ldr r2, _0800F1DC adds r0, r7, r2 ldrh r1, [r0, 0x18] movs r3, 0x1 adds r0, r3, 0 ands r0, r1 cmp r0, 0 bne _0800F1E0 adds r0, r5, r2 ldrh r1, [r0, 0x18] adds r0, r3, 0 ands r0, r1 cmp r0, 0 beq _0800F1EC b _0800F1FA .align 2, 0 _0800F1DC: .4byte 0x03002970 _0800F1E0: adds r0, r5, r2 ldrh r1, [r0, 0x18] adds r0, r3, 0 ands r0, r1 cmp r0, 0 beq _0800F1FA _0800F1EC: lsls r1, r4, 8 ldr r0, _0800F228 adds r1, r0 ldr r0, _0800F22C movs r2, 0x60 bl memcpy _0800F1FA: adds r7, 0x1C adds r4, 0x1 cmp r4, 0x3 ble _0800F1BA ldr r1, _0800F230 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] ldr r1, _0800F234 ldr r0, [r1, 0x8] mov r2, r9 str r0, [r2] ldr r0, _0800F238 ldrh r0, [r0] mov r2, r8 strh r0, [r2] ldr r0, _0800F23C str r0, [r1, 0x8] movs r0, 0x5 movs r1, 0 bl sub_806AFAC b _0800F27A .align 2, 0 _0800F228: .4byte 0x03002b80 _0800F22C: .4byte 0x02023a00 _0800F230: .4byte 0x02024d1e _0800F234: .4byte 0x03001770 _0800F238: .4byte 0x020239f8 _0800F23C: .4byte sub_800F104 _0800F240: ldr r0, _0800F258 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _0800F27A movs r0, 0x3 strb r0, [r5] bl sub_800832C b _0800F27A .align 2, 0 _0800F258: .4byte 0x0202f388 _0800F25C: ldr r0, _0800F288 ldrb r0, [r0] cmp r0, 0 bne _0800F27A ldr r1, _0800F28C mov r2, r8 ldrh r0, [r2] strh r0, [r1] ldr r1, _0800F290 mov r2, r9 ldr r0, [r2] str r0, [r1, 0x8] ldr r0, _0800F294 bl SetMainCallback2 _0800F27A: pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0800F288: .4byte 0x03002fa4 _0800F28C: .4byte 0x020239f8 _0800F290: .4byte 0x03001770 _0800F294: .4byte sub_800E7F8 thumb_func_end sub_800F104 thumb_func_start sub_800F298 sub_800F298: @ 800F298 push {r4-r7,lr} mov r7, r8 push {r7} bl GetMultiplayerId lsls r0, 24 lsrs r6, r0, 24 ldr r0, _0800F2D0 ldr r1, _0800F2D4 adds r0, r1 strb r6, [r0] bl RunTasks bl AnimateSprites bl BuildOamBuffer ldr r0, _0800F2D8 ldrb r0, [r0] cmp r0, 0x7 bls _0800F2C4 b _0800F7E0 _0800F2C4: lsls r0, 2 ldr r1, _0800F2DC adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0800F2D0: .4byte 0x02000000 _0800F2D4: .4byte 0x000160cb _0800F2D8: .4byte 0x02024d1e _0800F2DC: .4byte _0800F2E0 .align 2, 0 _0800F2E0: .4byte _0800F300 .4byte _0800F340 .4byte _0800F4DE .4byte _0800F504 .4byte _0800F5F8 .4byte _0800F61C .4byte _0800F78C .4byte _0800F7A4 _0800F300: ldr r0, _0800F338 ldrb r0, [r0] cmp r0, 0 bne _0800F30A b _0800F7E0 _0800F30A: bl sub_8007ECC lsls r0, 24 cmp r0, 0 bne _0800F316 b _0800F7E0 _0800F316: ldr r4, _0800F33C movs r0, 0x1 strb r0, [r4] strb r0, [r4, 0x1] bl sub_800E9EC bl sub_800EAAC bl bitmask_all_link_players_but_self lsls r0, 24 lsrs r0, 24 adds r1, r4, 0 movs r2, 0x20 bl SendBlock b _0800F770 .align 2, 0 _0800F338: .4byte 0x03002fa4 _0800F33C: .4byte 0x02000000 _0800F340: bl GetBlockRecievedStatus movs r1, 0xF ands r1, r0 cmp r1, 0xF beq _0800F34E b _0800F7E0 _0800F34E: bl ResetBlockReceivedFlags movs r4, 0 ldr r0, _0800F36C ldrh r1, [r0] movs r0, 0x80 lsls r0, 1 cmp r1, r0 bne _0800F380 cmp r6, 0 bne _0800F374 ldr r0, _0800F370 ldrh r1, [r0] movs r2, 0xC b _0800F37A .align 2, 0 _0800F36C: .4byte 0x03002b80 _0800F370: .4byte 0x020239f8 _0800F374: ldr r0, _0800F3B0 ldrh r1, [r0] movs r2, 0x8 _0800F37A: orrs r1, r2 strh r1, [r0] adds r4, 0x1 _0800F380: cmp r4, 0 bne _0800F41C movs r2, 0 ldr r1, _0800F3B4 adds r5, r1, 0 movs r3, 0x80 lsls r3, 1 _0800F38E: adds r1, r3 adds r2, 0x1 cmp r2, 0x3 bgt _0800F39E ldrh r0, [r5] ldrh r7, [r1] cmp r0, r7 beq _0800F38E _0800F39E: cmp r2, 0x4 bne _0800F3C4 cmp r6, 0 bne _0800F3B8 ldr r0, _0800F3B0 ldrh r1, [r0] movs r2, 0xC b _0800F3BE .align 2, 0 _0800F3B0: .4byte 0x020239f8 _0800F3B4: .4byte 0x03002b80 _0800F3B8: ldr r0, _0800F408 ldrh r1, [r0] movs r2, 0x8 _0800F3BE: orrs r1, r2 strh r1, [r0] adds r4, 0x1 _0800F3C4: cmp r4, 0 bne _0800F41C ldr r0, _0800F40C ldrh r2, [r0] ldr r1, _0800F410 adds r3, r0, 0 ldr r5, _0800F408 cmp r2, r1 beq _0800F3F6 _0800F3D6: lsls r0, r4, 8 adds r0, r3 ldrh r0, [r0] ldr r1, _0800F410 cmp r0, r1 bls _0800F3E6 cmp r4, r6 bne _0800F3FE _0800F3E6: adds r4, 0x1 cmp r4, 0x3 bgt _0800F3FE lsls r0, r4, 8 adds r0, r3 ldrh r0, [r0] cmp r0, r1 bne _0800F3D6 _0800F3F6: cmp r4, r6 beq _0800F3D6 cmp r4, r6 bge _0800F3D6 _0800F3FE: cmp r4, 0x4 bne _0800F414 ldrh r0, [r5] movs r1, 0xC b _0800F418 .align 2, 0 _0800F408: .4byte 0x020239f8 _0800F40C: .4byte 0x03002b80 _0800F410: .4byte 0x00000101 _0800F414: ldrh r0, [r5] movs r1, 0x8 _0800F418: orrs r0, r1 strh r0, [r5] _0800F41C: bl sub_800EB08 ldr r0, _0800F474 ldr r1, _0800F478 movs r2, 0x96 lsls r2, 1 bl memcpy ldr r0, _0800F47C movs r1, 0 bl CreateTask lsls r0, 24 lsrs r0, 24 ldr r2, _0800F480 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 movs r2, 0 movs r0, 0x87 lsls r0, 1 strh r0, [r1, 0xA] movs r0, 0x5A strh r0, [r1, 0xC] strh r2, [r1, 0x12] strh r2, [r1, 0xE] strh r2, [r1, 0x10] adds r2, r1, 0 ldr r0, _0800F484 adds r3, r0, 0x2 ldr r6, _0800F488 movs r5, 0x3F movs r7, 0x80 lsls r7, 1 movs r4, 0x3 _0800F464: ldrh r0, [r6, 0x18] cmp r0, 0x1 beq _0800F49E cmp r0, 0x1 bgt _0800F48C cmp r0, 0 beq _0800F496 b _0800F4C4 .align 2, 0 _0800F474: .4byte 0x0201d000 _0800F478: .4byte 0x03004360 _0800F47C: .4byte sub_800DE30 _0800F480: .4byte 0x03004b20 _0800F484: .4byte 0x03002b80 _0800F488: .4byte 0x03002970 _0800F48C: cmp r0, 0x2 beq _0800F4A6 cmp r0, 0x3 beq _0800F4B6 b _0800F4C4 _0800F496: ldrh r0, [r3] adds r1, r5, 0 ands r1, r0 b _0800F4AE _0800F49E: ldrh r0, [r3] adds r1, r5, 0 ands r1, r0 b _0800F4BE _0800F4A6: ldrh r0, [r3] adds r1, r5, 0 ands r1, r0 lsls r1, 6 _0800F4AE: ldrh r0, [r2, 0xE] orrs r1, r0 strh r1, [r2, 0xE] b _0800F4C4 _0800F4B6: ldrh r0, [r3] adds r1, r5, 0 ands r1, r0 lsls r1, 6 _0800F4BE: ldrh r0, [r2, 0x10] orrs r1, r0 strh r1, [r2, 0x10] _0800F4C4: adds r3, r7 adds r6, 0x1C subs r4, 0x1 cmp r4, 0 bge _0800F464 bl zero_player_party_data bl zero_enemy_party_data ldr r1, _0800F4FC ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] _0800F4DE: bl sub_8007ECC lsls r0, 24 cmp r0, 0 bne _0800F4EA b _0800F7E0 _0800F4EA: bl bitmask_all_link_players_but_self lsls r0, 24 lsrs r0, 24 ldr r1, _0800F500 movs r2, 0xC8 bl SendBlock b _0800F770 .align 2, 0 _0800F4FC: .4byte 0x02024d1e _0800F500: .4byte 0x0201d000 _0800F504: bl GetBlockRecievedStatus movs r1, 0xF ands r1, r0 cmp r1, 0xF beq _0800F512 b _0800F7E0 _0800F512: bl ResetBlockReceivedFlags movs r4, 0 lsls r0, r6, 3 subs r0, r6 lsls r0, 2 mov r8, r0 ldr r5, _0800F53C movs r7, 0 _0800F524: cmp r4, r6 bne _0800F558 ldr r0, _0800F540 adds r0, r7, r0 ldrh r0, [r0, 0x18] cmp r0, 0x2 bgt _0800F544 cmp r0, 0x1 bge _0800F550 cmp r0, 0 beq _0800F548 b _0800F5E2 .align 2, 0 _0800F53C: .4byte 0x03002b80 _0800F540: .4byte 0x03002970 _0800F544: cmp r0, 0x3 bne _0800F5E2 _0800F548: ldr r0, _0800F54C b _0800F5C8 .align 2, 0 _0800F54C: .4byte 0x03004360 _0800F550: ldr r0, _0800F554 b _0800F5C8 .align 2, 0 _0800F554: .4byte 0x0300448c _0800F558: ldr r2, _0800F578 adds r0, r7, r2 ldrh r1, [r0, 0x18] movs r3, 0x1 adds r0, r3, 0 ands r0, r1 cmp r0, 0 bne _0800F57C mov r1, r8 adds r0, r1, r2 ldrh r1, [r0, 0x18] adds r0, r3, 0 ands r0, r1 cmp r0, 0 beq _0800F58A b _0800F5B0 .align 2, 0 _0800F578: .4byte 0x03002970 _0800F57C: mov r1, r8 adds r0, r1, r2 ldrh r1, [r0, 0x18] adds r0, r3, 0 ands r0, r1 cmp r0, 0 beq _0800F5B0 _0800F58A: adds r0, r7, r2 ldrh r2, [r0, 0x18] cmp r2, 0x2 bgt _0800F59C cmp r2, 0x1 bge _0800F5A8 cmp r2, 0 beq _0800F5A0 b _0800F5E2 _0800F59C: cmp r2, 0x3 bne _0800F5E2 _0800F5A0: ldr r0, _0800F5A4 b _0800F5C8 .align 2, 0 _0800F5A4: .4byte 0x03004360 _0800F5A8: ldr r0, _0800F5AC b _0800F5C8 .align 2, 0 _0800F5AC: .4byte 0x0300448c _0800F5B0: adds r0, r7, r2 ldrh r2, [r0, 0x18] cmp r2, 0x2 bgt _0800F5C2 cmp r2, 0x1 bge _0800F5D8 cmp r2, 0 beq _0800F5C6 b _0800F5E2 _0800F5C2: cmp r2, 0x3 bne _0800F5E2 _0800F5C6: ldr r0, _0800F5D4 _0800F5C8: adds r1, r5, 0 movs r2, 0xC8 bl memcpy b _0800F5E2 .align 2, 0 _0800F5D4: .4byte 0x030045c0 _0800F5D8: ldr r0, _0800F5F4 adds r1, r5, 0 movs r2, 0xC8 bl memcpy _0800F5E2: movs r0, 0x80 lsls r0, 1 adds r5, r0 adds r7, 0x1C adds r4, 0x1 cmp r4, 0x3 ble _0800F524 b _0800F770 .align 2, 0 _0800F5F4: .4byte 0x030046ec _0800F5F8: bl sub_8007ECC lsls r0, 24 cmp r0, 0 bne _0800F604 b _0800F7E0 _0800F604: bl bitmask_all_link_players_but_self lsls r0, 24 lsrs r0, 24 ldr r1, _0800F618 movs r2, 0x64 bl SendBlock b _0800F770 .align 2, 0 _0800F618: .4byte 0x0201d0c8 _0800F61C: bl GetBlockRecievedStatus movs r1, 0xF ands r1, r0 cmp r1, 0xF beq _0800F62A b _0800F7E0 _0800F62A: bl ResetBlockReceivedFlags movs r4, 0 lsls r0, r6, 3 subs r0, r6 lsls r0, 2 mov r8, r0 ldr r5, _0800F654 movs r7, 0 _0800F63C: cmp r4, r6 bne _0800F670 ldr r0, _0800F658 adds r0, r7, r0 ldrh r0, [r0, 0x18] cmp r0, 0x2 bgt _0800F65C cmp r0, 0x1 bge _0800F668 cmp r0, 0 beq _0800F660 b _0800F6FA .align 2, 0 _0800F654: .4byte 0x03002b80 _0800F658: .4byte 0x03002970 _0800F65C: cmp r0, 0x3 bne _0800F6FA _0800F660: ldr r0, _0800F664 b _0800F6E0 .align 2, 0 _0800F664: .4byte 0x03004428 _0800F668: ldr r0, _0800F66C b _0800F6E0 .align 2, 0 _0800F66C: .4byte 0x03004554 _0800F670: ldr r2, _0800F690 adds r0, r7, r2 ldrh r1, [r0, 0x18] movs r3, 0x1 adds r0, r3, 0 ands r0, r1 cmp r0, 0 bne _0800F694 mov r1, r8 adds r0, r1, r2 ldrh r1, [r0, 0x18] adds r0, r3, 0 ands r0, r1 cmp r0, 0 beq _0800F6A2 b _0800F6C8 .align 2, 0 _0800F690: .4byte 0x03002970 _0800F694: mov r1, r8 adds r0, r1, r2 ldrh r1, [r0, 0x18] adds r0, r3, 0 ands r0, r1 cmp r0, 0 beq _0800F6C8 _0800F6A2: adds r0, r7, r2 ldrh r2, [r0, 0x18] cmp r2, 0x2 bgt _0800F6B4 cmp r2, 0x1 bge _0800F6C0 cmp r2, 0 beq _0800F6B8 b _0800F6FA _0800F6B4: cmp r2, 0x3 bne _0800F6FA _0800F6B8: ldr r0, _0800F6BC b _0800F6E0 .align 2, 0 _0800F6BC: .4byte 0x03004428 _0800F6C0: ldr r0, _0800F6C4 b _0800F6E0 .align 2, 0 _0800F6C4: .4byte 0x03004554 _0800F6C8: adds r0, r7, r2 ldrh r2, [r0, 0x18] cmp r2, 0x2 bgt _0800F6DA cmp r2, 0x1 bge _0800F6F0 cmp r2, 0 beq _0800F6DE b _0800F6FA _0800F6DA: cmp r2, 0x3 bne _0800F6FA _0800F6DE: ldr r0, _0800F6EC _0800F6E0: adds r1, r5, 0 movs r2, 0x64 bl memcpy b _0800F6FA .align 2, 0 _0800F6EC: .4byte 0x03004688 _0800F6F0: ldr r0, _0800F77C adds r1, r5, 0 movs r2, 0x64 bl memcpy _0800F6FA: movs r0, 0x80 lsls r0, 1 adds r5, r0 adds r7, 0x1C adds r4, 0x1 cmp r4, 0x3 ble _0800F63C ldr r4, _0800F780 adds r0, r4, 0 bl shedinja_something adds r0, r4, 0 adds r0, 0x64 bl shedinja_something adds r0, r4, 0 adds r0, 0xC8 bl shedinja_something movs r1, 0x96 lsls r1, 1 adds r0, r4, r1 bl shedinja_something movs r7, 0xC8 lsls r7, 1 adds r0, r4, r7 bl shedinja_something movs r1, 0xFA lsls r1, 1 adds r0, r4, r1 bl shedinja_something ldr r4, _0800F784 adds r0, r4, 0 bl shedinja_something adds r0, r4, 0 adds r0, 0x64 bl shedinja_something adds r0, r4, 0 adds r0, 0xC8 bl shedinja_something subs r7, 0x64 adds r0, r4, r7 bl shedinja_something movs r1, 0xC8 lsls r1, 1 adds r0, r4, r1 bl shedinja_something adds r7, 0xC8 adds r0, r4, r7 bl shedinja_something _0800F770: ldr r1, _0800F788 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] b _0800F7E0 .align 2, 0 _0800F77C: .4byte 0x030047b4 _0800F780: .4byte 0x03004360 _0800F784: .4byte 0x030045c0 _0800F788: .4byte 0x02024d1e _0800F78C: bl sub_800B950 ldr r0, _0800F7A0 ldrb r1, [r0] adds r1, 0x1 movs r2, 0 strb r1, [r0] strb r2, [r0, 0x1] strb r2, [r0, 0x2] b _0800F7E0 .align 2, 0 _0800F7A0: .4byte 0x02024d1e _0800F7A4: ldr r0, _0800F7EC adds r1, r0, 0x1 bl battle_load_something lsls r0, 24 cmp r0, 0 beq _0800F7E0 ldr r2, _0800F7F0 ldr r1, _0800F7F4 ldr r0, [r1] str r0, [r2] ldr r0, _0800F7F8 str r0, [r1] ldr r0, _0800F7FC bl SetMainCallback2 ldr r3, _0800F800 ldrh r2, [r3] movs r0, 0x2 ands r0, r2 cmp r0, 0 beq _0800F7E0 ldr r1, _0800F804 movs r4, 0x80 lsls r4, 4 adds r0, r4, 0 strh r0, [r1] movs r0, 0x20 orrs r0, r2 strh r0, [r3] _0800F7E0: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0800F7EC: .4byte 0x02024d1f _0800F7F0: .4byte 0x030042d0 _0800F7F4: .4byte 0x03001770 _0800F7F8: .4byte sub_8010824 _0800F7FC: .4byte sub_800F808 _0800F800: .4byte 0x020239f8 _0800F804: .4byte 0x0202ff5e thumb_func_end sub_800F298 thumb_func_start sub_800F808 sub_800F808: @ 800F808 push {lr} bl AnimateSprites bl BuildOamBuffer ldr r0, _0800F824 bl sub_800374C bl UpdatePaletteFade bl RunTasks pop {r0} bx r0 .align 2, 0 _0800F824: .4byte 0x03004210 thumb_func_end sub_800F808 thumb_func_start sub_800F828 sub_800F828: @ 800F828 movs r1, 0 strh r1, [r0, 0x2E] ldr r1, _0800F834 str r1, [r0, 0x1C] bx lr .align 2, 0 _0800F834: .4byte sub_800F838 thumb_func_end sub_800F828 thumb_func_start sub_800F838 sub_800F838: @ 800F838 push {r4,r5,lr} adds r3, r0, 0 ldr r5, _0800F850 movs r0, 0x2E ldrsh r1, [r3, r0] cmp r1, 0x1 beq _0800F86C cmp r1, 0x1 bgt _0800F854 cmp r1, 0 beq _0800F85A b _0800F8DC .align 2, 0 _0800F850: .4byte 0x02000000 _0800F854: cmp r1, 0x2 beq _0800F8C8 b _0800F8DC _0800F85A: ldrh r0, [r3, 0x2E] adds r0, 0x1 strh r0, [r3, 0x2E] strh r1, [r3, 0x30] ldr r0, _0800F8C4 strh r0, [r3, 0x32] strh r1, [r3, 0x34] movs r0, 0x1 strh r0, [r3, 0x36] _0800F86C: ldrh r0, [r3, 0x36] subs r0, 0x1 strh r0, [r3, 0x36] lsls r0, 16 cmp r0, 0 bne _0800F8DC movs r0, 0x2 strh r0, [r3, 0x36] movs r4, 0x30 ldrsh r2, [r3, r4] movs r0, 0x34 ldrsh r1, [r3, r0] lsls r1, 5 adds r2, r1 movs r4, 0x32 ldrsh r0, [r3, r4] subs r0, r1 movs r4, 0x3D lsls r0, 1 adds r0, r5 lsls r2, 1 adds r2, r5 movs r1, 0x1C _0800F89A: strh r4, [r2] strh r4, [r0] adds r0, 0x4 adds r2, 0x4 subs r1, 0x2 cmp r1, 0 bge _0800F89A ldrh r0, [r3, 0x34] adds r0, 0x1 strh r0, [r3, 0x34] lsls r0, 16 asrs r0, 16 cmp r0, 0x15 bne _0800F8DC ldrh r0, [r3, 0x2E] adds r0, 0x1 strh r0, [r3, 0x2E] movs r0, 0x20 strh r0, [r3, 0x30] b _0800F8DC .align 2, 0 _0800F8C4: .4byte 0x00000281 _0800F8C8: ldrh r0, [r3, 0x30] subs r0, 0x1 strh r0, [r3, 0x30] lsls r0, 16 asrs r0, 16 cmp r0, 0x14 bne _0800F8DC ldr r0, _0800F8E4 bl SetMainCallback2 _0800F8DC: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0800F8E4: .4byte sub_800E7C4 thumb_func_end sub_800F838 thumb_func_start sub_800F8E8 sub_800F8E8: @ 800F8E8 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x24 str r0, [sp, 0x10] lsls r1, 16 lsrs r1, 16 str r1, [sp, 0x14] movs r0, 0 mov r9, r0 movs r0, 0x80 lsls r0, 3 cmp r1, r0 bne _0800F90C movs r0, 0 b _0800FCB4 _0800F90C: ldr r0, _0800F93C ldrh r1, [r0] ldr r0, _0800F940 ands r0, r1 ldr r1, [sp, 0x14] lsls r1, 2 str r1, [sp, 0x20] cmp r0, 0x8 beq _0800F920 b _0800FCA4 _0800F920: bl zero_enemy_party_data movs r2, 0 str r2, [sp, 0x18] ldr r2, _0800F944 ldr r1, [sp, 0x20] ldr r3, [sp, 0x14] adds r0, r1, r3 lsls r0, 3 adds r0, r2 adds r0, 0x20 ldr r4, [sp, 0x18] b _0800FC86 .align 2, 0 _0800F93C: .4byte 0x020239f8 _0800F940: .4byte 0x00000908 _0800F944: .4byte gTrainers _0800F948: ldr r3, [sp, 0x14] adds r0, r1, r3 lsls r0, 3 adds r1, r0, r2 ldrb r0, [r1, 0x18] cmp r0, 0x1 bne _0800F95C movs r4, 0x80 mov r10, r4 b _0800F96E _0800F95C: ldrb r1, [r1, 0x2] movs r0, 0x80 ands r0, r1 movs r1, 0x88 mov r10, r1 cmp r0, 0 beq _0800F96E movs r2, 0x78 mov r10, r2 _0800F96E: movs r6, 0 ldr r0, _0800F9C4 ldr r2, [sp, 0x20] ldr r3, [sp, 0x14] adds r1, r2, r3 lsls r1, 3 adds r3, r0, 0x4 adds r1, r3 ldrb r1, [r1] adds r4, r0, 0 ldr r0, [sp, 0x18] adds r0, 0x1 str r0, [sp, 0x1C] cmp r1, 0xFF beq _0800F9A6 _0800F98C: ldr r0, [sp, 0x14] adds r1, r2, r0 lsls r1, 3 adds r0, r6, r1 adds r0, r3 ldrb r0, [r0] add r9, r0 adds r6, 0x1 adds r1, r6, r1 adds r1, r3 ldrb r0, [r1] cmp r0, 0xFF bne _0800F98C _0800F9A6: adds r2, r4, 0 ldr r1, [sp, 0x20] ldr r3, [sp, 0x14] adds r0, r1, r3 lsls r1, r0, 3 adds r0, r1, r2 ldrb r0, [r0] cmp r0, 0x1 beq _0800FA5C cmp r0, 0x1 bgt _0800F9C8 cmp r0, 0 beq _0800F9D6 b _0800FC74 .align 2, 0 _0800F9C4: .4byte gTrainers _0800F9C8: cmp r0, 0x2 bne _0800F9CE b _0800FB1C _0800F9CE: cmp r0, 0x3 bne _0800F9D4 b _0800FBB0 _0800F9D4: b _0800FC74 _0800F9D6: adds r0, r2, 0 adds r0, 0x24 adds r0, r1, r0 ldr r4, [r0] movs r6, 0 ldr r0, [sp, 0x18] lsls r2, r0, 3 adds r0, r2, r4 ldrh r1, [r0, 0x4] movs r0, 0xB muls r0, r1 ldr r1, _0800FA58 adds r0, r1 ldrb r0, [r0] adds r5, r2, 0 cmp r0, 0xFF beq _0800FA18 adds r3, r1, 0 movs r7, 0xB _0800F9FC: adds r0, r2, r4 ldrh r0, [r0, 0x4] adds r1, r0, 0 muls r1, r7 adds r0, r6, r1 adds r0, r3 ldrb r0, [r0] add r9, r0 adds r6, 0x1 adds r1, r6, r1 adds r1, r3 ldrb r0, [r1] cmp r0, 0xFF bne _0800F9FC _0800FA18: mov r2, r9 lsls r0, r2, 8 add r10, r0 adds r4, r5, r4 ldrh r1, [r4] lsls r0, r1, 5 subs r0, r1 movs r1, 0xFF bl __divsi3 lsls r0, 24 lsrs r6, r0, 24 ldr r3, [sp, 0x18] movs r1, 0x64 adds r0, r3, 0 muls r0, r1 ldr r2, [sp, 0x10] adds r0, r2, r0 ldrh r1, [r4, 0x4] ldrb r2, [r4, 0x2] movs r3, 0x1 str r3, [sp] mov r3, r10 str r3, [sp, 0x4] movs r3, 0x2 str r3, [sp, 0x8] movs r3, 0 str r3, [sp, 0xC] adds r3, r6, 0 bl create_pokemon_set_level b _0800FC74 .align 2, 0 _0800FA58: .4byte gSpeciesNames _0800FA5C: adds r0, r2, 0 adds r0, 0x24 adds r0, r1, r0 ldr r7, [r0] movs r6, 0 ldr r4, [sp, 0x18] lsls r2, r4, 4 adds r0, r2, r7 ldrh r1, [r0, 0x4] movs r0, 0xB muls r0, r1 ldr r1, _0800FB14 adds r0, r1 ldrb r0, [r0] mov r8, r2 cmp r0, 0xFF beq _0800FA9E adds r3, r1, 0 movs r4, 0xB _0800FA82: adds r0, r2, r7 ldrh r0, [r0, 0x4] adds r1, r0, 0 muls r1, r4 adds r0, r6, r1 adds r0, r3 ldrb r0, [r0] add r9, r0 adds r6, 0x1 adds r1, r6, r1 adds r1, r3 ldrb r0, [r1] cmp r0, 0xFF bne _0800FA82 _0800FA9E: mov r2, r9 lsls r0, r2, 8 add r10, r0 mov r3, r8 adds r4, r3, r7 ldrh r1, [r4] lsls r0, r1, 5 subs r0, r1 movs r1, 0xFF bl __divsi3 lsls r0, 24 lsrs r6, r0, 24 ldr r0, [sp, 0x18] movs r1, 0x64 adds r5, r0, 0 muls r5, r1 ldr r2, [sp, 0x10] adds r5, r2, r5 ldrh r1, [r4, 0x4] ldrb r2, [r4, 0x2] movs r0, 0x1 str r0, [sp] mov r3, r10 str r3, [sp, 0x4] movs r0, 0x2 str r0, [sp, 0x8] movs r0, 0 str r0, [sp, 0xC] adds r0, r5, 0 adds r3, r6, 0 bl create_pokemon_set_level movs r6, 0 mov r0, r8 adds r0, 0x6 adds r4, r7, r0 _0800FAE8: adds r1, r6, 0 adds r1, 0xD adds r0, r5, 0 adds r2, r4, 0 bl pokemon_setattr adds r1, r6, 0 adds r1, 0x11 ldrh r0, [r4] lsls r2, r0, 1 adds r2, r0 lsls r2, 2 ldr r0, _0800FB18 adds r2, r0 adds r0, r5, 0 bl pokemon_setattr adds r4, 0x2 adds r6, 0x1 cmp r6, 0x3 ble _0800FAE8 b _0800FC74 .align 2, 0 _0800FB14: .4byte gSpeciesNames _0800FB18: .4byte gBattleMoves + 0x4 @ PP offset _0800FB1C: adds r0, r2, 0 adds r0, 0x24 adds r0, r1, r0 ldr r4, [r0] movs r6, 0 ldr r0, [sp, 0x18] lsls r2, r0, 3 adds r0, r2, r4 ldrh r1, [r0, 0x4] movs r0, 0xB muls r0, r1 ldr r1, _0800FBAC adds r0, r1 ldrb r0, [r0] adds r5, r2, 0 cmp r0, 0xFF beq _0800FB5E adds r3, r1, 0 movs r7, 0xB _0800FB42: adds r0, r2, r4 ldrh r0, [r0, 0x4] adds r1, r0, 0 muls r1, r7 adds r0, r6, r1 adds r0, r3 ldrb r0, [r0] add r9, r0 adds r6, 0x1 adds r1, r6, r1 adds r1, r3 ldrb r0, [r1] cmp r0, 0xFF bne _0800FB42 _0800FB5E: mov r2, r9 lsls r0, r2, 8 add r10, r0 adds r5, r4 ldrh r1, [r5] lsls r0, r1, 5 subs r0, r1 movs r1, 0xFF bl __divsi3 lsls r0, 24 lsrs r6, r0, 24 ldr r3, [sp, 0x18] movs r0, 0x64 adds r4, r3, 0 muls r4, r0 ldr r1, [sp, 0x10] adds r4, r1, r4 ldrh r1, [r5, 0x4] ldrb r2, [r5, 0x2] movs r0, 0x1 str r0, [sp] mov r3, r10 str r3, [sp, 0x4] movs r0, 0x2 str r0, [sp, 0x8] movs r0, 0 str r0, [sp, 0xC] adds r0, r4, 0 adds r3, r6, 0 bl create_pokemon_set_level adds r5, 0x6 adds r0, r4, 0 movs r1, 0xC adds r2, r5, 0 bl pokemon_setattr b _0800FC74 .align 2, 0 _0800FBAC: .4byte gSpeciesNames _0800FBB0: adds r0, r4, 0 adds r0, 0x24 adds r0, r1, r0 ldr r7, [r0] movs r6, 0 ldr r4, [sp, 0x18] lsls r2, r4, 4 adds r0, r2, r7 ldrh r1, [r0, 0x4] movs r0, 0xB muls r0, r1 ldr r1, _0800FCC4 adds r0, r1 ldrb r0, [r0] mov r8, r2 cmp r0, 0xFF beq _0800FBF2 adds r3, r1, 0 movs r4, 0xB _0800FBD6: adds r0, r2, r7 ldrh r0, [r0, 0x4] adds r1, r0, 0 muls r1, r4 adds r0, r6, r1 adds r0, r3 ldrb r0, [r0] add r9, r0 adds r6, 0x1 adds r1, r6, r1 adds r1, r3 ldrb r0, [r1] cmp r0, 0xFF bne _0800FBD6 _0800FBF2: mov r2, r9 lsls r0, r2, 8 add r10, r0 mov r3, r8 adds r5, r3, r7 ldrh r1, [r5] lsls r0, r1, 5 subs r0, r1 movs r1, 0xFF bl __divsi3 lsls r0, 24 lsrs r6, r0, 24 ldr r0, [sp, 0x18] movs r1, 0x64 adds r4, r0, 0 muls r4, r1 ldr r2, [sp, 0x10] adds r4, r2, r4 ldrh r1, [r5, 0x4] ldrb r2, [r5, 0x2] movs r0, 0x1 str r0, [sp] mov r3, r10 str r3, [sp, 0x4] movs r0, 0x2 str r0, [sp, 0x8] movs r0, 0 str r0, [sp, 0xC] adds r0, r4, 0 adds r3, r6, 0 bl create_pokemon_set_level adds r5, 0x6 adds r0, r4, 0 movs r1, 0xC adds r2, r5, 0 bl pokemon_setattr movs r6, 0 adds r5, r4, 0 mov r0, r8 adds r0, 0x8 adds r4, r7, r0 _0800FC4A: adds r1, r6, 0 adds r1, 0xD adds r0, r5, 0 adds r2, r4, 0 bl pokemon_setattr adds r1, r6, 0 adds r1, 0x11 ldrh r0, [r4] lsls r2, r0, 1 adds r2, r0 lsls r2, 2 ldr r0, _0800FCC8 adds r2, r0 adds r0, r5, 0 bl pokemon_setattr adds r4, 0x2 adds r6, 0x1 cmp r6, 0x3 ble _0800FC4A _0800FC74: ldr r4, [sp, 0x1C] str r4, [sp, 0x18] ldr r2, _0800FCCC ldr r1, [sp, 0x20] ldr r3, [sp, 0x14] adds r0, r1, r3 lsls r0, 3 adds r0, r2 adds r0, 0x20 _0800FC86: ldrb r0, [r0] cmp r4, r0 bge _0800FC8E b _0800F948 _0800FC8E: ldr r2, _0800FCD0 ldr r1, _0800FCCC ldr r4, [sp, 0x20] ldr r3, [sp, 0x14] adds r0, r4, r3 lsls r0, 3 adds r0, r1 ldrb r0, [r0, 0x18] ldrh r1, [r2] orrs r0, r1 strh r0, [r2] _0800FCA4: ldr r0, _0800FCCC ldr r4, [sp, 0x20] ldr r2, [sp, 0x14] adds r1, r4, r2 lsls r1, 3 adds r1, r0 adds r1, 0x20 ldrb r0, [r1] _0800FCB4: add sp, 0x24 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0800FCC4: .4byte gSpeciesNames _0800FCC8: .4byte gBattleMoves + 0x4 @ PP offset _0800FCCC: .4byte gTrainers _0800FCD0: .4byte 0x020239f8 thumb_func_end sub_800F8E8 thumb_func_start sub_800FCD4 sub_800FCD4: @ 800FCD4 push {lr} ldr r0, _0800FCF4 ldrh r0, [r0] subs r0, 0x6F lsls r0, 16 lsrs r0, 16 cmp r0, 0x30 bhi _0800FCEE ldr r1, _0800FCF8 movs r2, 0x98 lsls r2, 8 adds r0, r2, 0 strh r0, [r1] _0800FCEE: pop {r0} bx r0 .align 2, 0 _0800FCF4: .4byte 0x04000006 _0800FCF8: .4byte 0x04000008 thumb_func_end sub_800FCD4 thumb_func_start sub_800FCFC sub_800FCFC: @ 800FCFC push {lr} bl Random ldr r1, _0800FD78 ldr r0, _0800FD7C ldrh r0, [r0] strh r0, [r1] adds r1, 0x2 ldr r0, _0800FD80 ldrh r0, [r0] strh r0, [r1] adds r1, 0x2 ldr r0, _0800FD84 ldrh r0, [r0] strh r0, [r1] adds r1, 0x2 ldr r0, _0800FD88 ldrh r0, [r0] strh r0, [r1] adds r1, 0x2 ldr r0, _0800FD8C ldrh r0, [r0] strh r0, [r1] adds r1, 0x2 ldr r0, _0800FD90 ldrh r0, [r0] strh r0, [r1] adds r1, 0x2 ldr r0, _0800FD94 ldrh r0, [r0] strh r0, [r1] adds r1, 0x2 ldr r0, _0800FD98 ldrh r0, [r0] strh r0, [r1] adds r1, 0x22 ldr r0, _0800FD9C ldrh r0, [r0] strh r0, [r1] adds r1, 0x4 ldr r0, _0800FDA0 ldrh r0, [r0] strh r0, [r1] subs r1, 0x2 ldr r0, _0800FDA4 ldrh r0, [r0] strh r0, [r1] adds r1, 0x4 ldr r0, _0800FDA8 ldrh r0, [r0] strh r0, [r1] bl LoadOam bl ProcessSpriteCopyRequests bl TransferPlttBuffer bl sub_8089668 pop {r0} bx r0 .align 2, 0 _0800FD78: .4byte 0x04000010 _0800FD7C: .4byte 0x030042a4 _0800FD80: .4byte 0x030042a0 _0800FD84: .4byte 0x030042c0 _0800FD88: .4byte 0x030041b4 _0800FD8C: .4byte 0x03004288 _0800FD90: .4byte 0x03004280 _0800FD94: .4byte 0x030041b0 _0800FD98: .4byte 0x030041b8 _0800FD9C: .4byte 0x030042c4 _0800FDA0: .4byte 0x03004240 _0800FDA4: .4byte 0x03004200 _0800FDA8: .4byte 0x03004244 thumb_func_end sub_800FCFC thumb_func_start nullsub_36 nullsub_36: @ 800FDAC bx lr thumb_func_end nullsub_36 thumb_func_start sub_800FDB0 sub_800FDB0: @ 800FDB0 push {r4,r5,lr} adds r5, r0, 0 movs r1, 0x2E ldrsh r0, [r5, r1] cmp r0, 0 beq _0800FDD0 movs r1, 0x32 ldrsh r0, [r5, r1] movs r1, 0xFF lsls r1, 8 ands r0, r1 lsrs r0, 8 ldrh r1, [r5, 0x30] adds r0, r1 strh r0, [r5, 0x20] b _0800FDE2 _0800FDD0: movs r1, 0x32 ldrsh r0, [r5, r1] movs r1, 0xFF lsls r1, 8 ands r0, r1 asrs r0, 8 ldrh r1, [r5, 0x30] subs r1, r0 strh r1, [r5, 0x20] _0800FDE2: movs r1, 0xC0 lsls r1, 1 adds r0, r1, 0 ldrh r1, [r5, 0x32] adds r0, r1 strh r0, [r5, 0x32] adds r0, r5, 0 adds r0, 0x3F ldrb r1, [r0] movs r0, 0x20 ands r0, r1 cmp r0, 0 beq _0800FE16 ldr r4, _0800FE1C adds r0, r4, 0 bl FreeSpriteTilesByTag adds r0, r4, 0 bl FreeSpritePaletteByTag adds r0, r5, 0 bl FreeSpriteOamMatrix adds r0, r5, 0 bl DestroySprite _0800FE16: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0800FE1C: .4byte 0x00002710 thumb_func_end sub_800FDB0 thumb_func_start sub_800FE20 sub_800FE20: @ 800FE20 push {r4,lr} adds r4, r0, 0 movs r1, 0x1 bl StartSpriteAffineAnim ldr r0, _0800FE3C str r0, [r4, 0x1C] movs r0, 0x68 bl audio_play pop {r4} pop {r0} bx r0 .align 2, 0 _0800FE3C: .4byte sub_800FDB0 thumb_func_end sub_800FE20 thumb_func_start sub_800FE40 sub_800FE40: @ 800FE40 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x10 lsls r0, 24 lsrs r0, 24 str r0, [sp] movs r0, 0 str r0, [sp, 0x4] movs r1, 0 str r1, [sp, 0x8] ldr r0, _0800FE88 ldr r2, _0800FE8C adds r0, r2 ldrb r2, [r0] ldr r0, _0800FE90 ldrh r1, [r0] movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _0800FEB4 ldr r1, _0800FE94 lsls r0, r2, 3 subs r0, r2 lsls r0, 2 adds r0, r1 ldrh r0, [r0, 0x18] cmp r0, 0x1 beq _0800FEA0 cmp r0, 0x1 bgt _0800FE98 cmp r0, 0 beq _0800FEB4 b _0800FEBC .align 2, 0 _0800FE88: .4byte 0x02000000 _0800FE8C: .4byte 0x000160cb _0800FE90: .4byte 0x020239f8 _0800FE94: .4byte 0x03002970 _0800FE98: cmp r0, 0x2 beq _0800FEB4 cmp r0, 0x3 bne _0800FEBC _0800FEA0: ldr r1, _0800FEAC str r1, [sp, 0x4] ldr r2, _0800FEB0 str r2, [sp, 0x8] b _0800FEBC .align 2, 0 _0800FEAC: .4byte 0x030045c0 _0800FEB0: .4byte 0x03004360 _0800FEB4: ldr r3, _08010008 str r3, [sp, 0x4] ldr r0, _0801000C str r0, [sp, 0x8] _0800FEBC: movs r7, 0 movs r1, 0 mov r8, r1 ldr r2, [sp] lsls r2, 2 str r2, [sp, 0xC] movs r3, 0xCE lsls r3, 1 mov r10, r3 mov r9, r1 _0800FED0: movs r0, 0x64 mov r4, r8 muls r4, r0 ldr r0, [sp, 0x4] adds r4, r0, r4 adds r0, r4, 0 movs r1, 0x41 bl PokemonGetField lsls r0, 16 lsrs r5, r0, 16 adds r0, r4, 0 movs r1, 0x39 bl PokemonGetField lsls r0, 16 lsrs r6, r0, 16 adds r0, r4, 0 movs r1, 0x37 bl PokemonGetField adds r1, r0, 0 cmp r5, 0 beq _0800FF40 cmp r5, r10 beq _0800FF14 cmp r6, 0 beq _0800FF14 cmp r1, 0 bne _0800FF14 movs r0, 0x1 mov r2, r9 lsls r0, r2 orrs r7, r0 _0800FF14: cmp r5, 0 beq _0800FF40 cmp r6, 0 beq _0800FF2C cmp r5, r10 beq _0800FF24 cmp r1, 0 beq _0800FF2C _0800FF24: movs r0, 0x2 mov r3, r9 lsls r0, r3 orrs r7, r0 _0800FF2C: cmp r5, 0 beq _0800FF40 cmp r5, r10 beq _0800FF40 cmp r6, 0 bne _0800FF40 movs r0, 0x3 mov r1, r9 lsls r0, r1 orrs r7, r0 _0800FF40: movs r2, 0x2 add r9, r2 movs r3, 0x1 add r8, r3 mov r0, r8 cmp r0, 0x5 ble _0800FED0 ldr r1, _08010010 ldr r2, [sp, 0xC] ldr r3, [sp] adds r0, r2, r3 lsls r0, 3 adds r0, r1 strh r7, [r0, 0xE] movs r7, 0 movs r0, 0 mov r8, r0 movs r1, 0xCE lsls r1, 1 mov r10, r1 mov r9, r0 _0800FF6A: movs r0, 0x64 mov r4, r8 muls r4, r0 ldr r2, [sp, 0x8] adds r4, r2, r4 adds r0, r4, 0 movs r1, 0x41 bl PokemonGetField lsls r0, 16 lsrs r5, r0, 16 adds r0, r4, 0 movs r1, 0x39 bl PokemonGetField lsls r0, 16 lsrs r6, r0, 16 adds r0, r4, 0 movs r1, 0x37 bl PokemonGetField adds r1, r0, 0 cmp r5, 0 beq _0800FFDA cmp r5, r10 beq _0800FFAE cmp r6, 0 beq _0800FFAE cmp r1, 0 bne _0800FFAE movs r0, 0x1 mov r3, r9 lsls r0, r3 orrs r7, r0 _0800FFAE: cmp r5, 0 beq _0800FFDA cmp r6, 0 beq _0800FFC6 cmp r5, r10 beq _0800FFBE cmp r1, 0 beq _0800FFC6 _0800FFBE: movs r0, 0x2 mov r1, r9 lsls r0, r1 orrs r7, r0 _0800FFC6: cmp r5, 0 beq _0800FFDA cmp r5, r10 beq _0800FFDA cmp r6, 0 bne _0800FFDA movs r0, 0x3 mov r2, r9 lsls r0, r2 orrs r7, r0 _0800FFDA: movs r3, 0x2 add r9, r3 movs r0, 0x1 add r8, r0 mov r1, r8 cmp r1, 0x5 ble _0800FF6A ldr r1, _08010010 ldr r2, [sp, 0xC] ldr r3, [sp] adds r0, r2, r3 lsls r0, 3 adds r0, r1 strh r7, [r0, 0x10] 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 _08010008: .4byte 0x03004360 _0801000C: .4byte 0x030045c0 _08010010: .4byte 0x03004b20 thumb_func_end sub_800FE40 thumb_func_start c2_8011A1C c2_8011A1C: @ 8010014 push {r4,r5,lr} sub sp, 0x4 movs r0, 0 bl SetHBlankCallback movs r0, 0 bl SetVBlankCallback movs r4, 0 str r4, [sp] movs r1, 0xC0 lsls r1, 19 ldr r2, _08010144 mov r0, sp bl CpuSet ldr r0, _08010148 strh r4, [r0] subs r0, 0xC movs r2, 0xF0 strh r2, [r0] adds r0, 0x4 ldr r3, _0801014C adds r1, r3, 0 strh r1, [r0] adds r0, 0x4 strh r4, [r0] adds r0, 0x2 strh r4, [r0] ldr r0, _08010150 strh r2, [r0] ldr r0, _08010154 strh r1, [r0] bl dp12_8087EA4 ldr r0, _08010158 movs r3, 0xF0 movs r4, 0xF0 lsls r4, 3 adds r2, r0, r4 movs r1, 0x4F _08010066: strh r3, [r0] strh r3, [r2] adds r2, 0x2 adds r0, 0x2 subs r1, 0x1 cmp r1, 0 bge _08010066 movs r1, 0x50 ldr r5, _0801015C ldr r0, _08010158 ldr r3, _08010160 movs r4, 0x82 lsls r4, 4 adds r2, r0, r4 adds r0, 0xA0 _08010084: strh r3, [r0] strh r3, [r2] adds r2, 0x2 adds r0, 0x2 adds r1, 0x1 cmp r1, 0x9F ble _08010084 adds r0, r5, 0 bl SetUpWindowConfig bl ResetPaletteFade ldr r0, _08010164 movs r4, 0 strh r4, [r0] ldr r0, _08010168 strh r4, [r0] ldr r0, _0801016C strh r4, [r0] ldr r0, _08010170 strh r4, [r0] ldr r0, _08010174 strh r4, [r0] ldr r0, _08010178 strh r4, [r0] ldr r0, _0801017C strh r4, [r0] ldr r0, _08010180 strh r4, [r0] ldr r0, _08010184 adds r1, r5, 0 bl InitWindowFromConfig ldr r0, _08010188 ldr r1, _0801018C bl InitWindowFromConfig ldr r0, _08010190 ldr r1, _08010194 bl InitWindowFromConfig bl sub_800D6D4 ldr r0, _08010198 movs r1, 0 movs r2, 0x40 bl LoadCompressedPalette bl sub_800D74C bl ResetSpriteData bl ResetTasks bl sub_800E23C ldr r1, _0801019C movs r0, 0x37 strh r0, [r1] bl FreeAllSpritePalettes ldr r1, _080101A0 movs r0, 0x4 strb r0, [r1] ldr r0, _080101A4 bl SetVBlankCallback ldr r0, _080101A8 movs r1, 0 bl CreateTask lsls r0, 24 lsrs r0, 24 ldr r2, _080101AC lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 movs r2, 0x87 lsls r2, 1 strh r2, [r1, 0xA] movs r2, 0x5A strh r2, [r1, 0xC] movs r2, 0x1 strh r2, [r1, 0x12] bl sub_800FE40 ldr r0, _080101B0 bl SetMainCallback2 ldr r0, _080101B4 strb r4, [r0] add sp, 0x4 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08010144: .4byte 0x05006000 _08010148: .4byte 0x0400004c _0801014C: .4byte 0x00005051 _08010150: .4byte 0x030042c4 _08010154: .4byte 0x03004240 _08010158: .4byte 0x03004de0 _0801015C: .4byte gWindowConfig_81E6C58 _08010160: .4byte 0x0000ff10 _08010164: .4byte 0x030042a4 _08010168: .4byte 0x030042a0 _0801016C: .4byte 0x030042c0 _08010170: .4byte 0x030041b4 _08010174: .4byte 0x03004288 _08010178: .4byte 0x03004280 _0801017C: .4byte 0x030041b0 _08010180: .4byte 0x030041b8 _08010184: .4byte 0x03004210 _08010188: .4byte 0x030041d0 _0801018C: .4byte gWindowConfig_81E71D0 _08010190: .4byte 0x03004250 _08010194: .4byte gWindowConfig_81E71EC _08010198: .4byte gUnknown_08D004E0 _0801019C: .4byte 0x0400004a _080101A0: .4byte 0x030028f8 _080101A4: .4byte sub_800FCFC _080101A8: .4byte sub_800DE30 _080101AC: .4byte 0x03004b20 _080101B0: .4byte sub_80101B8 _080101B4: .4byte 0x02024d1e thumb_func_end c2_8011A1C thumb_func_start sub_80101B8 sub_80101B8: @ 80101B8 push {lr} bl c2_081284E0 bl AnimateSprites bl BuildOamBuffer bl UpdatePaletteFade bl RunTasks pop {r0} bx r0 thumb_func_end sub_80101B8 thumb_func_start c2_081284E0 c2_081284E0: @ 80101D4 push {r4,lr} sub sp, 0x4 ldr r4, _080101EC ldrb r0, [r4] cmp r0, 0x1 beq _080101FC cmp r0, 0x1 bgt _080101F0 cmp r0, 0 beq _080101F6 b _08010236 .align 2, 0 _080101EC: .4byte 0x02024d1e _080101F0: cmp r0, 0x2 beq _08010222 b _08010236 _080101F6: movs r0, 0xFF strb r0, [r4, 0x1] b _0801021A _080101FC: ldrb r0, [r4, 0x1] subs r0, 0x1 strb r0, [r4, 0x1] lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0 bne _08010236 movs r0, 0x1 negs r0, r0 str r1, [sp] movs r1, 0 movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade _0801021A: ldrb r0, [r4] adds r0, 0x1 strb r0, [r4] b _08010236 _08010222: ldr r0, _08010240 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _08010236 ldr r0, _08010244 ldr r0, [r0, 0x8] bl SetMainCallback2 _08010236: add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _08010240: .4byte 0x0202f388 _08010244: .4byte 0x03001770 thumb_func_end c2_081284E0 thumb_func_start oac_poke_opponent oac_poke_opponent: @ 8010248 push {lr} sub sp, 0x4 ldr r1, _08010270 str r1, [r0, 0x1C] movs r1, 0 bl StartSpriteAnimIfDifferent movs r0, 0x80 lsls r0, 10 ldr r1, _08010274 str r1, [sp] movs r1, 0 movs r2, 0xA movs r3, 0xA bl BeginNormalPaletteFade add sp, 0x4 pop {r0} bx r0 .align 2, 0 _08010270: .4byte sub_8010278 _08010274: .4byte 0x00003def thumb_func_end oac_poke_opponent thumb_func_start sub_8010278 sub_8010278: @ 8010278 push {lr} adds r2, r0, 0 ldr r0, _080102A4 ldrh r1, [r0] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _080102A0 ldrh r0, [r2, 0x24] adds r0, 0x2 strh r0, [r2, 0x24] lsls r0, 16 cmp r0, 0 bne _080102A0 ldr r0, _080102A8 str r0, [r2, 0x1C] ldrh r0, [r2, 0x32] movs r1, 0x19 bl cry_related _080102A0: pop {r0} bx r0 .align 2, 0 _080102A4: .4byte 0x02024de8 _080102A8: .4byte sub_80102AC thumb_func_end sub_8010278 thumb_func_start sub_80102AC sub_80102AC: @ 80102AC push {r4,lr} sub sp, 0x4 adds r4, r0, 0 adds r0, 0x3F ldrb r1, [r0] movs r0, 0x10 ands r0, r1 cmp r0, 0 beq _080102F4 ldrh r0, [r4, 0x2E] lsls r0, 24 lsrs r0, 24 bl sub_804777C ldr r1, _080102FC movs r2, 0x2E ldrsh r0, [r4, r2] adds r0, r1 ldrb r0, [r0] bl sub_8043DFC ldr r0, _08010300 str r0, [r4, 0x1C] adds r0, r4, 0 movs r1, 0 bl StartSpriteAnimIfDifferent movs r0, 0x80 lsls r0, 10 ldr r1, _08010304 str r1, [sp] movs r1, 0 movs r2, 0xA movs r3, 0 bl BeginNormalPaletteFade _080102F4: add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _080102FC: .4byte 0x03004340 _08010300: .4byte nullsub_37 _08010304: .4byte 0x00003def thumb_func_end sub_80102AC thumb_func_start nullsub_37 nullsub_37: @ 8010308 bx lr thumb_func_end nullsub_37 thumb_func_start unref_sub_801030C unref_sub_801030C: @ 801030C movs r1, 0x6 strh r1, [r0, 0x34] movs r1, 0x1 strh r1, [r0, 0x36] ldr r1, _0801031C str r1, [r0, 0x1C] bx lr .align 2, 0 _0801031C: .4byte sub_8010320 thumb_func_end unref_sub_801030C thumb_func_start sub_8010320 sub_8010320: @ 8010320 push {r4,lr} adds r3, r0, 0 ldrh r0, [r3, 0x36] subs r0, 0x1 strh r0, [r3, 0x36] lsls r0, 16 cmp r0, 0 bne _08010374 movs r0, 0x8 strh r0, [r3, 0x36] movs r0, 0x3E adds r0, r3 mov r12, r0 ldrb r2, [r0] lsls r0, r2, 29 lsrs r0, 31 movs r1, 0x1 eors r1, r0 lsls r1, 2 movs r4, 0x5 negs r4, r4 adds r0, r4, 0 ands r0, r2 orrs r0, r1 mov r1, r12 strb r0, [r1] ldrh r0, [r3, 0x34] subs r0, 0x1 strh r0, [r3, 0x34] lsls r0, 16 asrs r2, r0, 16 cmp r2, 0 bne _08010374 ldrb r1, [r1] adds r0, r4, 0 ands r0, r1 mov r1, r12 strb r0, [r1] ldr r0, _0801037C str r0, [r3, 0x1C] ldr r0, _08010380 str r2, [r0] _08010374: pop {r4} pop {r0} bx r0 .align 2, 0 _0801037C: .4byte nullsub_37 _08010380: .4byte 0x03004284 thumb_func_end sub_8010320 thumb_func_start sub_8010384 sub_8010384: @ 8010384 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} mov r9, r0 ldrh r0, [r0, 0x2E] lsls r0, 24 lsrs r6, r0, 24 lsls r1, r6, 2 ldr r0, _080103A4 adds r1, r0 ldrh r0, [r1, 0x2] cmp r0, 0 beq _080103A8 adds r4, r0, 0 b _080103AC .align 2, 0 _080103A4: .4byte 0x02017800 _080103A8: mov r0, r9 ldrh r4, [r0, 0x32] _080103AC: ldr r1, _08010414 lsls r0, r6, 1 adds r5, r0, r1 ldrh r0, [r5] movs r1, 0x64 mov r8, r1 mov r1, r8 muls r1, r0 adds r0, r1, 0 ldr r7, _08010418 adds r0, r7 movs r1, 0 bl PokemonGetField cmp r4, 0xC9 bne _08010430 ldrh r0, [r5] mov r1, r8 muls r1, r0 adds r0, r1, 0 adds r0, r7 movs r1, 0 bl PokemonGetField adds r2, r0, 0 movs r0, 0xC0 lsls r0, 18 ands r0, r2 lsrs r0, 18 movs r1, 0xC0 lsls r1, 10 ands r1, r2 lsrs r1, 12 orrs r0, r1 movs r1, 0xC0 lsls r1, 2 ands r1, r2 lsrs r1, 6 orrs r0, r1 movs r1, 0x3 ands r1, r2 orrs r0, r1 movs r1, 0x1C bl __umodsi3 lsls r0, 16 lsrs r0, 16 cmp r0, 0 bne _0801041C movs r0, 0xC9 b _08010426 .align 2, 0 _08010414: .4byte 0x02024a6a _08010418: .4byte 0x030045c0 _0801041C: movs r1, 0xCE lsls r1, 1 adds r0, r1 lsls r0, 16 lsrs r0, 16 _08010426: ldr r1, _0801042C lsls r0, 2 b _08010468 .align 2, 0 _0801042C: .4byte gMonFrontPicCoords _08010430: ldr r0, _08010448 cmp r4, r0 bne _08010454 ldr r0, _0801044C ldr r1, _08010450 adds r1, r6, r1 ldrb r1, [r1] lsls r1, 2 adds r1, r0 ldrb r0, [r1, 0x1] b _0801046C .align 2, 0 _08010448: .4byte 0x00000181 _0801044C: .4byte gUnknown_0837F598 _08010450: .4byte 0x02024e84 _08010454: movs r0, 0xCE lsls r0, 1 cmp r4, r0 bls _08010464 ldr r0, _08010460 b _0801046A .align 2, 0 _08010460: .4byte gMonFrontPicCoords _08010464: ldr r1, _0801048C lsls r0, r4, 2 _08010468: adds r0, r1 _0801046A: ldrb r0, [r0, 0x1] _0801046C: lsrs r1, r0, 3 movs r0, 0x8 subs r0, r1 mov r1, r9 strh r0, [r1, 0x34] movs r0, 0x1 strh r0, [r1, 0x36] ldr r0, _08010490 str r0, [r1, 0x1C] pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0801048C: .4byte gMonFrontPicCoords _08010490: .4byte sub_8010494 thumb_func_end sub_8010384 thumb_func_start sub_8010494 sub_8010494: @ 8010494 push {r4,lr} adds r4, r0, 0 ldrh r0, [r4, 0x36] subs r0, 0x1 strh r0, [r4, 0x36] lsls r0, 16 cmp r0, 0 bne _08010510 movs r0, 0x2 strh r0, [r4, 0x36] ldrh r0, [r4, 0x26] adds r0, 0x8 strh r0, [r4, 0x26] ldrh r0, [r4, 0x34] subs r0, 0x1 strh r0, [r4, 0x34] lsls r0, 16 cmp r0, 0 bge _080104C8 adds r0, r4, 0 bl FreeSpriteOamMatrix adds r0, r4, 0 bl DestroySprite b _08010510 _080104C8: ldrh r0, [r4, 0x2E] lsls r0, 24 lsrs r0, 24 bl battle_get_per_side_status ldr r1, _08010518 lsls r0, 24 lsrs r0, 22 adds r0, r1 ldr r2, _0801051C movs r3, 0x2E ldrsh r1, [r4, r3] adds r1, r2 ldrb r1, [r1] lsls r1, 11 ldr r2, [r0] adds r2, r1 movs r1, 0x34 ldrsh r0, [r4, r1] lsls r0, 8 adds r2, r0 movs r1, 0 movs r0, 0xFF _080104F6: strb r1, [r2] adds r2, 0x1 subs r0, 0x1 cmp r0, 0 bge _080104F6 ldr r0, _0801051C movs r2, 0x2E ldrsh r1, [r4, r2] adds r1, r0 ldrb r1, [r1] adds r0, r4, 0 bl StartSpriteAnim _08010510: pop {r4} pop {r0} bx r0 .align 2, 0 _08010518: .4byte gUnknown_081FAF4C _0801051C: .4byte 0x02024e84 thumb_func_end sub_8010494 thumb_func_start sub_8010520 sub_8010520: @ 8010520 movs r1, 0x8 strh r1, [r0, 0x34] adds r1, r0, 0 adds r1, 0x3E ldrb r1, [r1] lsls r1, 29 lsrs r1, 31 strh r1, [r0, 0x36] ldr r1, _08010538 str r1, [r0, 0x1C] bx lr .align 2, 0 _08010538: .4byte sub_801053C thumb_func_end sub_8010520 thumb_func_start sub_801053C sub_801053C: @ 801053C push {lr} adds r3, r0, 0 ldrh r0, [r3, 0x34] subs r0, 0x1 strh r0, [r3, 0x34] lsls r0, 16 cmp r0, 0 bne _0801056E movs r0, 0x3E adds r0, r3 mov r12, r0 ldrb r2, [r0] lsls r0, r2, 29 lsrs r0, 31 movs r1, 0x1 eors r1, r0 lsls r1, 2 movs r0, 0x5 negs r0, r0 ands r0, r2 orrs r0, r1 mov r1, r12 strb r0, [r1] movs r0, 0x8 strh r0, [r3, 0x34] _0801056E: pop {r0} bx r0 thumb_func_end sub_801053C thumb_func_start sub_8010574 sub_8010574: @ 8010574 movs r1, 0x3E adds r1, r0 mov r12, r1 movs r1, 0x1 ldrh r2, [r0, 0x36] ands r2, r1 lsls r2, 2 mov r1, r12 ldrb r3, [r1] movs r1, 0x5 negs r1, r1 ands r1, r3 orrs r1, r2 mov r2, r12 strb r1, [r2] movs r1, 0 strh r1, [r0, 0x36] ldr r1, _0801059C str r1, [r0, 0x1C] bx lr .align 2, 0 _0801059C: .4byte nullsub_37 thumb_func_end sub_8010574 thumb_func_start sub_80105A0 sub_80105A0: @ 80105A0 ldr r1, _080105A8 str r1, [r0, 0x1C] bx lr .align 2, 0 _080105A8: .4byte oac_poke_ally_ thumb_func_end sub_80105A0 thumb_func_start oac_poke_ally_ oac_poke_ally_: @ 80105AC push {lr} adds r2, r0, 0 ldr r0, _080105D4 ldrh r1, [r0] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _080105D0 ldrh r0, [r2, 0x24] subs r0, 0x2 strh r0, [r2, 0x24] lsls r0, 16 asrs r1, r0, 16 cmp r1, 0 bne _080105D0 ldr r0, _080105D8 str r0, [r2, 0x1C] strh r1, [r2, 0x30] _080105D0: pop {r0} bx r0 .align 2, 0 _080105D4: .4byte 0x02024de8 _080105D8: .4byte nullsub_86 thumb_func_end oac_poke_ally_ thumb_func_start sub_80105DC sub_80105DC: @ 80105DC ldr r1, _080105E4 str r1, [r0, 0x1C] bx lr .align 2, 0 _080105E4: .4byte nullsub_86 thumb_func_end sub_80105DC thumb_func_start nullsub_86 nullsub_86: @ 80105E8 bx lr thumb_func_end nullsub_86 thumb_func_start sub_80105EC sub_80105EC: @ 80105EC push {lr} adds r2, r0, 0 ldr r0, _08010610 ldrh r1, [r0] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _0801060C ldrh r0, [r2, 0x30] ldrh r1, [r2, 0x24] adds r0, r1 strh r0, [r2, 0x24] ldrh r0, [r2, 0x32] ldrh r1, [r2, 0x26] adds r0, r1 strh r0, [r2, 0x26] _0801060C: pop {r0} bx r0 .align 2, 0 _08010610: .4byte 0x02024de8 thumb_func_end sub_80105EC thumb_func_start dp11b_obj_instanciate dp11b_obj_instanciate: @ 8010614 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} lsls r0, 24 lsrs r4, r0, 24 lsls r1, 24 lsrs r1, 24 mov r8, r1 lsls r2, 24 lsrs r2, 24 mov r9, r2 lsls r3, 24 lsrs r3, 24 mov r10, r3 cmp r1, 0 beq _0801064C lsls r2, r4, 1 adds r0, r2, r4 lsls r0, 2 ldr r1, _08010648 adds r0, r1 ldrb r1, [r0] movs r0, 0x2 b _0801065A .align 2, 0 _08010648: .4byte 0x02017810 _0801064C: lsls r2, r4, 1 adds r0, r2, r4 lsls r0, 2 ldr r1, _08010698 adds r0, r1 ldrb r1, [r0] movs r0, 0x4 _0801065A: ands r0, r1 adds r6, r2, 0 cmp r0, 0 bne _080106FA ldr r0, _0801069C bl object_new_hidden_with_callback lsls r0, 24 lsrs r5, r0, 24 mov r0, r8 cmp r0, 0x1 bne _080106A8 ldr r0, _080106A0 adds r0, r4, r0 ldrb r7, [r0] adds r0, r6, r4 lsls r0, 2 ldr r1, _08010698 adds r0, r1 strb r5, [r0, 0x2] ldrb r1, [r0] movs r2, 0x2 orrs r1, r2 strb r1, [r0] ldr r2, _080106A4 lsls r3, r5, 4 adds r0, r3, r5 lsls r0, 2 adds r0, r2 movs r1, 0x80 b _080106CC .align 2, 0 _08010698: .4byte 0x02017810 _0801069C: .4byte objc_dp11b_pingpong _080106A0: .4byte 0x03004340 _080106A4: .4byte 0x02020004 _080106A8: ldr r0, _08010708 adds r0, r4, r0 ldrb r7, [r0] adds r0, r6, r4 lsls r0, 2 ldr r1, _0801070C adds r0, r1 strb r5, [r0, 0x3] ldrb r1, [r0] movs r2, 0x4 orrs r1, r2 strb r1, [r0] ldr r2, _08010710 lsls r3, r5, 4 adds r0, r3, r5 lsls r0, 2 adds r0, r2 movs r1, 0xC0 _080106CC: strh r1, [r0, 0x2E] adds r4, r2, 0 adds r1, r3, r5 lsls r1, 2 adds r1, r4 mov r2, r9 lsls r0, r2, 24 asrs r0, 24 movs r2, 0 strh r0, [r1, 0x30] mov r3, r10 lsls r0, r3, 24 asrs r0, 24 strh r0, [r1, 0x32] strh r7, [r1, 0x34] mov r0, r8 strh r0, [r1, 0x36] lsls r0, r7, 4 adds r0, r7 lsls r0, 2 adds r0, r4 strh r2, [r0, 0x24] strh r2, [r0, 0x26] _080106FA: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08010708: .4byte 0x02024be0 _0801070C: .4byte 0x02017810 _08010710: .4byte 0x02020004 thumb_func_end dp11b_obj_instanciate thumb_func_start dp11b_obj_free dp11b_obj_free: @ 8010714 push {r4,r5,lr} lsls r0, 24 lsrs r2, r0, 24 lsls r1, 24 lsrs r1, 24 cmp r1, 0x1 bne _0801075C lsls r0, r2, 1 adds r0, r2 lsls r0, 2 ldr r1, _08010754 adds r5, r0, r1 ldrb r1, [r5] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _080107A0 ldr r2, _08010758 ldrb r1, [r5, 0x2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 ldrh r1, [r0, 0x34] lsls r1, 24 lsrs r4, r1, 24 bl DestroySprite ldrb r1, [r5] movs r0, 0x3 negs r0, r0 b _0801078C .align 2, 0 _08010754: .4byte 0x02017810 _08010758: .4byte 0x02020004 _0801075C: lsls r0, r2, 1 adds r0, r2 lsls r0, 2 ldr r1, _080107A8 adds r5, r0, r1 ldrb r1, [r5] movs r0, 0x4 ands r0, r1 cmp r0, 0 beq _080107A0 ldr r2, _080107AC ldrb r1, [r5, 0x3] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 ldrh r1, [r0, 0x34] lsls r1, 24 lsrs r4, r1, 24 bl DestroySprite ldrb r1, [r5] movs r0, 0x5 negs r0, r0 _0801078C: ands r0, r1 strb r0, [r5] ldr r0, _080107AC lsls r1, r4, 4 adds r1, r4 lsls r1, 2 adds r1, r0 movs r0, 0 strh r0, [r1, 0x24] strh r0, [r1, 0x26] _080107A0: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080107A8: .4byte 0x02017810 _080107AC: .4byte 0x02020004 thumb_func_end dp11b_obj_free thumb_func_start objc_dp11b_pingpong objc_dp11b_pingpong: @ 80107B0 push {r4,r5,lr} adds r4, r0, 0 ldrh r0, [r4, 0x34] lsls r0, 24 lsrs r5, r0, 24 movs r1, 0x36 ldrsh r0, [r4, r1] cmp r0, 0x1 bne _080107C8 movs r2, 0x2E ldrsh r0, [r4, r2] b _080107CC _080107C8: movs r1, 0x2E ldrsh r0, [r4, r1] _080107CC: movs r2, 0x32 ldrsh r1, [r4, r2] bl sine ldr r2, _080107F8 lsls r1, r5, 4 adds r1, r5 lsls r1, 2 adds r1, r2 ldrh r2, [r4, 0x32] adds r0, r2 strh r0, [r1, 0x26] ldrh r0, [r4, 0x30] ldrh r1, [r4, 0x2E] adds r0, r1 movs r1, 0xFF ands r0, r1 strh r0, [r4, 0x2E] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080107F8: .4byte 0x02020004 thumb_func_end objc_dp11b_pingpong thumb_func_start nullsub_41 nullsub_41: @ 80107FC bx lr thumb_func_end nullsub_41 thumb_func_start sub_8010800 sub_8010800: @ 8010800 push {lr} bl sub_8010874 ldr r1, _08010818 movs r0, 0 strb r0, [r1, 0x1] ldr r1, _0801081C ldr r0, _08010820 str r0, [r1] pop {r0} bx r0 .align 2, 0 _08010818: .4byte 0x02024d1e _0801081C: .4byte 0x030042d4 _08010820: .4byte bc_8012FAC thumb_func_end sub_8010800 thumb_func_start sub_8010824 sub_8010824: @ 8010824 push {r4,r5,lr} ldr r0, _08010864 ldr r0, [r0] bl _call_via_r0 ldr r1, _08010868 movs r0, 0 strb r0, [r1] ldr r0, _0801086C ldrb r0, [r0] cmp r0, 0 beq _0801085E ldr r5, _08010870 adds r4, r1, 0 _08010840: ldrb r0, [r4] lsls r0, 2 adds r0, r5 ldr r0, [r0] bl _call_via_r0 ldrb r0, [r4] adds r0, 0x1 strb r0, [r4] ldr r1, _0801086C lsls r0, 24 lsrs r0, 24 ldrb r1, [r1] cmp r0, r1 bcc _08010840 _0801085E: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08010864: .4byte 0x030042d4 _08010868: .4byte 0x02024a60 _0801086C: .4byte 0x02024a68 _08010870: .4byte 0x03004330 thumb_func_end sub_8010824 thumb_func_start sub_8010874 sub_8010874: @ 8010874 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} movs r0, 0 bl sub_801365C bl sub_801377C movs r2, 0 movs r3, 0 ldr r0, _08010AC8 mov r10, r0 ldr r1, _08010ACC mov r9, r1 ldr r4, _08010AD0 mov r8, r4 ldr r0, _08010AD4 mov r12, r0 ldr r4, _08010AD8 movs r5, 0 ldr r7, _08010ADC ldr r6, _08010AE0 _080108A4: ldr r0, _08010AE4 adds r0, r5, r0 str r3, [r0] movs r1, 0 _080108AC: adds r0, r4, r1 strb r3, [r0] adds r1, 0x1 cmp r1, 0x1B bls _080108AC movs r0, 0x2 strb r0, [r4, 0x16] ldr r1, _08010AE8 adds r0, r2, r1 strb r3, [r0] mov r0, r12 strh r3, [r0] mov r1, r8 strh r3, [r1] mov r0, r9 strh r3, [r0] mov r1, r10 strh r3, [r1] ldr r0, _08010AEC adds r1, r2, r0 movs r0, 0xFF strb r0, [r1] strh r3, [r6] strh r3, [r7] ldr r1, _08010AF0 adds r0, r5, r1 str r3, [r0] movs r0, 0x2 add r10, r0 add r9, r0 add r8, r0 add r12, r0 adds r4, 0x1C adds r5, 0x4 adds r7, 0x2 adds r6, 0x2 adds r2, 0x1 cmp r2, 0x3 ble _080108A4 movs r5, 0 ldr r3, _08010AF4 ldr r4, _08010AF8 movs r2, 0x1 _08010902: strh r5, [r4] movs r1, 0 _08010906: adds r0, r3, r1 strb r5, [r0] adds r1, 0x1 cmp r1, 0xB bls _08010906 adds r3, 0xC adds r4, 0x2 subs r2, 0x1 cmp r2, 0 bge _08010902 movs r1, 0 ldr r2, _08010AFC strb r1, [r2] ldr r3, _08010B00 strb r1, [r3] ldr r4, _08010B04 strh r1, [r4] ldr r1, _08010B08 movs r2, 0 movs r3, 0 _0801092E: adds r0, r1, r2 strb r3, [r0] adds r2, 0x1 cmp r2, 0x2B bls _0801092E movs r0, 0 ldr r1, _08010B0C str r0, [r1] ldr r2, _08010B10 ldrh r1, [r2] movs r0, 0x2 ands r0, r1 cmp r0, 0 bne _0801095C ldr r3, _08010B14 ldrb r1, [r3, 0x15] movs r0, 0x4 ands r0, r1 cmp r0, 0 beq _0801095C movs r0, 0x80 ldr r4, _08010B0C str r0, [r4] _0801095C: ldr r1, _08010B14 ldrb r0, [r1, 0x15] lsls r0, 30 lsrs r0, 31 ldr r3, _08010B18 ldr r4, _08010B1C adds r2, r3, r4 movs r1, 0 strb r0, [r2] ldr r0, _08010B20 strb r1, [r0] ldr r2, _08010B24 strb r1, [r2] ldr r3, _08010B28 str r1, [r3] movs r2, 0 ldr r4, _08010B2C strh r1, [r4] ldr r1, _08010B18 ldr r3, _08010B30 adds r0, r1, r3 strb r2, [r0] ldr r4, _08010B34 adds r0, r1, r4 strb r2, [r0] ldr r1, _08010B38 movs r2, 0 adds r0, r1, 0x7 _08010994: strb r2, [r0] subs r0, 0x1 cmp r0, r1 bge _08010994 movs r5, 0 ldr r0, _08010B3C strh r5, [r0] movs r0, 0 ldr r1, _08010B40 str r0, [r1] ldr r2, _08010B44 strh r0, [r2] ldr r4, _08010B18 ldr r3, _08010B48 adds r0, r4, r3 strb r5, [r0] ldr r1, _08010B4C adds r0, r4, r1 strb r5, [r0] ldr r2, _08010B50 strb r5, [r2] ldr r3, _08010B54 strb r5, [r3] subs r1, 0x29 adds r0, r4, r1 strb r5, [r0] ldr r2, _08010B58 adds r0, r4, r2 strb r5, [r0] ldr r3, _08010B5C adds r0, r4, r3 strb r5, [r0] ldr r0, _08010B60 movs r1, 0xB bl PokemonGetField ldr r2, _08010B64 lsls r1, r0, 3 subs r1, r0 lsls r1, 2 adds r1, r2 ldrb r1, [r1, 0x8] movs r0, 0x64 muls r0, r1 ldr r1, _08010B68 bl __divsi3 ldr r2, _08010B6C adds r1, r4, r2 strb r0, [r1] ldr r3, _08010B70 adds r1, r4, r3 movs r0, 0x3 strb r0, [r1] ldr r1, _08010B74 adds r0, r4, r1 strb r5, [r0] subs r2, 0x33 adds r1, r4, r2 movs r0, 0x1 strb r0, [r1] movs r2, 0 movs r1, 0 _08010A12: ldr r3, _08010B78 adds r0, r2, r3 adds r0, r4 strb r1, [r0] adds r3, 0x20 adds r0, r2, r3 adds r0, r4 strb r1, [r0] adds r3, 0x1C adds r0, r2, r3 adds r0, r4 strb r1, [r0] adds r3, 0x8 adds r0, r2, r3 adds r0, r4 strb r1, [r0] adds r3, 0x10 adds r0, r2, r3 adds r0, r4 strb r1, [r0] adds r3, 0x8 adds r0, r2, r3 adds r0, r4 strb r1, [r0] adds r2, 0x1 cmp r2, 0x7 ble _08010A12 ldr r4, _08010B18 ldr r1, _08010B7C adds r0, r4, r1 movs r2, 0 movs r1, 0x6 strb r1, [r0] subs r3, 0x3F adds r0, r4, r3 strb r1, [r0] ldr r1, _08010B80 adds r0, r4, r1 strb r2, [r0] ldr r3, _08010B84 movs r1, 0 movs r2, 0xA adds r0, r3, 0 adds r0, 0x40 _08010A6A: strb r1, [r0] subs r0, 0x1 subs r2, 0x1 cmp r2, 0 bge _08010A6A movs r1, 0 strb r1, [r3, 0x13] strb r1, [r3] strb r1, [r3, 0x1] strb r1, [r3, 0x2] strb r1, [r3, 0x3] strb r1, [r3, 0x4] ldrb r2, [r3, 0x5] movs r0, 0x2 negs r0, r0 ands r0, r2 movs r2, 0x3 negs r2, r2 ands r0, r2 strb r0, [r3, 0x5] strh r1, [r3, 0x20] strh r1, [r3, 0x22] strh r1, [r3, 0x24] strh r1, [r3, 0x6] strh r1, [r3, 0x26] strh r1, [r3, 0x28] movs r2, 0 adds r5, r3, 0 adds r5, 0x8 movs r4, 0 adds r1, r3, 0 adds r1, 0x14 _08010AAA: adds r0, r2, r5 strb r4, [r0] strb r4, [r1] strb r4, [r1, 0x16] adds r1, 0x1 adds r2, 0x1 cmp r2, 0x9 ble _08010AAA pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08010AC8: .4byte 0x02024c4c _08010ACC: .4byte 0x02024c44 _08010AD0: .4byte 0x02024c3c _08010AD4: .4byte 0x02024c34 _08010AD8: .4byte 0x02024ca8 _08010ADC: .4byte 0x02024c2c _08010AE0: .4byte 0x02024c54 _08010AE4: .4byte 0x02024c98 _08010AE8: .4byte 0x02024c70 _08010AEC: .4byte 0x02024c5c _08010AF0: .4byte 0x02017100 _08010AF4: .4byte 0x02024c80 _08010AF8: .4byte 0x02024c7a _08010AFC: .4byte 0x02024c07 _08010B00: .4byte 0x02024c08 _08010B04: .4byte 0x02024db8 _08010B08: .4byte 0x02024dbc _08010B0C: .4byte 0x02024c6c _08010B10: .4byte 0x020239f8 _08010B14: .4byte 0x02024ea4 _08010B18: .4byte 0x02000000 _08010B1C: .4byte 0x00016084 _08010B20: .4byte 0x02024c0e _08010B24: .4byte 0x02024d26 _08010B28: .4byte 0x02024a64 _08010B2C: .4byte 0x02024d1a _08010B30: .4byte 0x00017130 _08010B34: .4byte 0x00017160 _08010B38: .4byte 0x02024d1e _08010B3C: .4byte 0x02024d18 _08010B40: .4byte 0x02024bec _08010B44: .4byte 0x02024de8 _08010B48: .4byte 0x00016002 _08010B4C: .4byte 0x000160a1 _08010B50: .4byte 0x03004324 _08010B54: .4byte 0x02024c0c _08010B58: .4byte 0x00016086 _08010B5C: .4byte 0x00016087 _08010B60: .4byte 0x030045c0 _08010B64: .4byte gBaseStats _08010B68: .4byte 0x000004fb _08010B6C: .4byte 0x00016089 _08010B70: .4byte 0x00016088 _08010B74: .4byte 0x0001601b _08010B78: .4byte 0x000160ac _08010B7C: .4byte 0x000160c8 _08010B80: .4byte 0x00016113 _08010B84: .4byte 0x030042e0 thumb_func_end sub_8010874 thumb_func_start sub_8010B88 sub_8010B88: @ 8010B88 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x24 ldr r4, _08010CEC ldr r5, _08010CF0 ldrb r1, [r5] lsls r0, r1, 3 subs r0, r1 lsls r0, 2 mov r1, sp adds r0, r4 ldm r0!, {r2,r3,r6} stm r1!, {r2,r3,r6} ldm r0!, {r2,r3,r6} stm r1!, {r2,r3,r6} ldr r0, [r0] str r0, [r1] ldr r2, _08010CF4 ldr r3, _08010CF8 ldrh r1, [r3] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r0, [r0] mov r10, r4 adds r7, r5, 0 ldr r1, _08010CFC mov r8, r1 ldr r2, _08010D00 mov r12, r2 cmp r0, 0x7F beq _08010C66 movs r5, 0 adds r4, r7, 0 movs r3, 0x58 mov r2, r8 adds r2, 0x18 movs r1, 0x6 _08010BDC: ldrb r0, [r4] muls r0, r3 adds r0, r5, r0 adds r0, r2 strb r1, [r0] adds r5, 0x1 cmp r5, 0x7 ble _08010BDC movs r5, 0 ldr r3, _08010D04 ldrb r3, [r3] cmp r5, r3 bge _08010C52 ldr r6, _08010D08 mov r9, r6 ldr r3, _08010CEC ldr r4, _08010D00 _08010BFE: movs r0, 0x58 muls r0, r5 add r0, r9 str r0, [sp, 0x20] ldr r1, [r0] movs r0, 0x80 lsls r0, 19 ands r0, r1 cmp r0, 0 beq _08010C24 ldrb r0, [r3, 0x14] ldr r2, _08010CF0 ldrb r2, [r2] cmp r0, r2 bne _08010C24 ldr r0, _08010D0C ands r1, r0 ldr r6, [sp, 0x20] str r1, [r6] _08010C24: ldr r1, [r4] movs r0, 0x18 ands r0, r1 cmp r0, 0 beq _08010C44 ldrb r0, [r3, 0x15] ldr r2, _08010CF0 ldrb r2, [r2] cmp r0, r2 bne _08010C44 movs r0, 0x19 negs r0, r0 ands r1, r0 str r1, [r4] movs r0, 0 strb r0, [r3, 0x15] _08010C44: adds r3, 0x1C adds r4, 0x4 adds r5, 0x1 ldr r6, _08010D04 ldrb r6, [r6] cmp r5, r6 blt _08010BFE _08010C52: ldr r1, _08010CF8 ldrh r0, [r1] lsls r1, r0, 1 adds r1, r0 lsls r1, 2 ldr r2, _08010CF4 adds r1, r2 ldrb r0, [r1] cmp r0, 0x7F bne _08010D18 _08010C66: ldrb r1, [r7] movs r0, 0x58 adds r2, r1, 0 muls r2, r0 mov r0, r8 adds r0, 0x50 adds r2, r0 ldr r0, [r2] ldr r1, _08010D10 ands r0, r1 str r0, [r2] ldrb r1, [r7] lsls r1, 2 add r1, r12 ldr r0, [r1] ldr r2, _08010D14 ands r0, r2 str r0, [r1] movs r5, 0 ldr r3, _08010D04 ldrb r3, [r3] cmp r5, r3 bge _08010D30 movs r6, 0 _08010C96: ldrb r0, [r7] bl battle_side_get_owner adds r4, r0, 0 lsls r0, r5, 24 lsrs r0, 24 bl battle_side_get_owner lsls r4, 24 lsls r0, 24 cmp r4, r0 beq _08010CD6 ldr r1, _08010D00 lsls r0, r5, 2 adds r2, r0, r1 ldr r1, [r2] movs r0, 0x18 ands r0, r1 cmp r0, 0 beq _08010CD6 ldr r0, _08010CEC adds r0, r6, r0 ldrb r0, [r0, 0x15] ldrb r3, [r7] cmp r0, r3 bne _08010CD6 movs r0, 0x19 negs r0, r0 ands r1, r0 movs r0, 0x10 orrs r1, r0 str r1, [r2] _08010CD6: adds r6, 0x1C adds r5, 0x1 ldr r0, _08010D04 ldrb r0, [r0] cmp r5, r0 blt _08010C96 ldr r6, _08010CEC mov r10, r6 ldr r7, _08010CF0 b _08010D30 .align 2, 0 _08010CEC: .4byte 0x02024ca8 _08010CF0: .4byte 0x02024a60 _08010CF4: .4byte gBattleMoves _08010CF8: .4byte 0x02024be6 _08010CFC: .4byte 0x02024a80 _08010D00: .4byte 0x02024c98 _08010D04: .4byte 0x02024a68 _08010D08: .4byte 0x02024ad0 _08010D0C: .4byte 0xfbffffff _08010D10: .4byte 0x15100007 _08010D14: .4byte 0x0003043f _08010D18: ldrb r1, [r7] movs r0, 0x58 muls r0, r1 mov r1, r8 adds r1, 0x50 adds r0, r1 movs r1, 0 str r1, [r0] ldrb r0, [r7] lsls r0, 2 add r0, r12 str r1, [r0] _08010D30: movs r5, 0 ldr r6, _08010EFC ldr r0, _08010F00 ldrb r0, [r0] cmp r5, r0 bge _08010D92 ldr r1, _08010F04 mov r9, r1 ldr r2, _08010F08 mov r8, r2 ldr r4, _08010F0C mov r12, r6 _08010D48: movs r0, 0x58 muls r0, r5 mov r1, r9 adds r3, r0, r1 ldrb r0, [r4] lsls r0, 2 add r0, r8 ldr r0, [r0] lsls r2, r0, 16 ldr r1, [r3] adds r0, r1, 0 ands r0, r2 cmp r0, 0 beq _08010D68 bics r1, r2 str r1, [r3] _08010D68: ldr r1, [r3] movs r0, 0xE0 lsls r0, 8 ands r0, r1 cmp r0, 0 beq _08010D88 ldr r2, _08010F10 adds r0, r5, r2 add r0, r12 ldrb r0, [r0] ldrb r2, [r4] cmp r0, r2 bne _08010D88 ldr r0, _08010F14 ands r1, r0 str r1, [r3] _08010D88: adds r5, 0x1 ldr r3, _08010F00 ldrb r3, [r3] cmp r5, r3 blt _08010D48 _08010D92: ldrb r0, [r7] ldr r1, _08010F18 adds r0, r1 movs r1, 0 strb r1, [r0] ldrb r0, [r7] ldr r2, _08010F1C adds r0, r2 strb r1, [r0] ldrb r1, [r7] lsls r0, r1, 3 subs r0, r1 lsls r0, 2 mov r3, r10 adds r1, r0, r3 movs r5, 0 movs r2, 0 _08010DB4: adds r0, r1, r5 strb r2, [r0] adds r5, 0x1 cmp r5, 0x1B bls _08010DB4 ldr r1, _08010F20 ldrh r0, [r1] lsls r1, r0, 1 adds r1, r0 lsls r1, 2 ldr r2, _08010F24 adds r1, r2 ldrb r0, [r1] cmp r0, 0x7F bne _08010E2C ldrb r1, [r7] lsls r0, r1, 3 subs r0, r1 lsls r0, 2 add r0, r10 mov r1, sp ldrb r1, [r1, 0xA] strb r1, [r0, 0xA] ldrb r1, [r7] lsls r0, r1, 3 subs r0, r1 lsls r0, 2 add r0, r10 mov r1, sp ldrb r1, [r1, 0x15] strb r1, [r0, 0x15] ldrb r0, [r7] lsls r1, r0, 3 subs r1, r0 lsls r1, 2 add r1, r10 mov r0, sp ldrb r2, [r0, 0xF] lsls r2, 28 movs r4, 0xF lsrs r2, 28 ldrb r3, [r1, 0xF] movs r0, 0x10 negs r0, r0 ands r0, r3 orrs r0, r2 strb r0, [r1, 0xF] ldrb r1, [r7] lsls r0, r1, 3 subs r0, r1 lsls r0, 2 add r0, r10 mov r1, sp ldrb r1, [r1, 0xF] lsrs r1, 4 lsls r1, 4 ldrb r2, [r0, 0xF] ands r4, r2 orrs r4, r1 strb r4, [r0, 0xF] _08010E2C: ldrb r1, [r7] lsls r0, r1, 3 subs r0, r1 lsls r0, 2 add r0, r10 movs r3, 0 movs r1, 0x2 strb r1, [r0, 0x16] ldrb r0, [r7] lsls r0, 1 ldr r1, _08010F28 adds r0, r1 movs r2, 0 strh r3, [r0] ldrb r0, [r7] lsls r0, 1 ldr r1, _08010F2C adds r0, r1 strh r3, [r0] ldrb r0, [r7] lsls r0, 1 ldr r1, _08010F30 adds r0, r1 strh r3, [r0] ldrb r0, [r7] lsls r0, 1 ldr r1, _08010F34 adds r0, r1 strh r3, [r0] ldrb r0, [r7] lsls r0, 1 ldr r1, _08010F38 adds r0, r1 strh r3, [r0] ldrb r0, [r7] ldr r1, _08010F3C adds r0, r1 movs r1, 0xFF strb r1, [r0] ldrb r0, [r7] lsls r0, 1 ldr r1, _08010F40 adds r0, r1 adds r0, r6 strb r2, [r0] ldrb r0, [r7] lsls r0, 1 adds r1, 0x1 adds r0, r1 adds r0, r6 strb r2, [r0] ldrb r0, [r7] lsls r0, 2 adds r1, 0x53 adds r0, r1 adds r0, r6 strb r2, [r0] ldrb r0, [r7] lsls r0, 2 adds r1, 0x1 adds r0, r1 adds r0, r6 strb r2, [r0] ldrb r0, [r7] lsls r0, 2 adds r1, 0x1 adds r0, r1 adds r0, r6 strb r2, [r0] ldrb r0, [r7] lsls r0, 2 adds r1, 0x1 adds r0, r1 adds r0, r6 strb r2, [r0] ldrb r0, [r7] lsls r0, 1 subs r1, 0x1B adds r0, r1 adds r0, r6 strb r2, [r0] ldrb r0, [r7] lsls r0, 1 adds r1, 0x1 adds r0, r1 adds r0, r6 strb r2, [r0] ldr r2, _08010F44 adds r1, r6, r2 ldrb r0, [r7] lsls r0, 2 adds r0, r1 str r3, [r0] ldr r6, _08010F20 strh r3, [r6] add sp, 0x24 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08010EFC: .4byte 0x02000000 _08010F00: .4byte 0x02024a68 _08010F04: .4byte 0x02024ad0 _08010F08: .4byte gUnknown_0820872C _08010F0C: .4byte 0x02024a60 _08010F10: .4byte 0x00016020 _08010F14: .4byte 0xffff1fff _08010F18: .4byte 0x02024e60 _08010F1C: .4byte 0x02024e64 _08010F20: .4byte 0x02024be6 _08010F24: .4byte gBattleMoves _08010F28: .4byte 0x02024c34 _08010F2C: .4byte 0x02024c3c _08010F30: .4byte 0x02024c44 _08010F34: .4byte 0x02024c4c _08010F38: .4byte 0x02024c2c _08010F3C: .4byte 0x02024c5c _08010F40: .4byte 0x000160ac _08010F44: .4byte 0x00017100 thumb_func_end sub_8010B88 thumb_func_start sub_8010F48 sub_8010F48: @ 8010F48 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x4 movs r4, 0 ldr r7, _08011268 ldr r0, _0801126C mov r9, r0 ldr r1, _08011270 mov r8, r1 ldr r2, _08011274 mov r12, r2 ldr r6, _08011278 adds r5, r7, 0 movs r3, 0x58 ldr r2, _0801127C adds r2, 0x18 movs r1, 0x6 _08010F70: ldrb r0, [r5] muls r0, r3 adds r0, r4, r0 adds r0, r2 strb r1, [r0] adds r4, 0x1 cmp r4, 0x7 ble _08010F70 ldrb r1, [r7] movs r0, 0x58 muls r0, r1 ldr r2, _0801127C adds r2, 0x50 adds r0, r2 movs r1, 0 str r1, [r0] ldrb r0, [r7] lsls r0, 2 add r0, r9 str r1, [r0] movs r4, 0 mov r0, r8 ldrb r0, [r0] cmp r4, r0 bge _08011012 adds r3, r2, 0 movs r5, 0 ldr r1, _08011280 mov r10, r1 ldr r2, _08011274 mov r9, r2 _08010FAE: ldr r1, [r3] movs r0, 0x80 lsls r0, 19 ands r0, r1 cmp r0, 0 beq _08010FCC ldr r2, _08011284 adds r0, r5, r2 ldrb r0, [r0, 0x14] ldrb r2, [r7] cmp r0, r2 bne _08010FCC ldr r0, _08011288 ands r1, r0 str r1, [r3] _08010FCC: ldrb r0, [r7] lsls r0, 2 add r0, r10 ldr r0, [r0] lsls r2, r0, 16 ldr r1, [r3] adds r0, r1, 0 ands r0, r2 cmp r0, 0 beq _08010FE4 bics r1, r2 str r1, [r3] _08010FE4: ldr r1, [r3] movs r0, 0xE0 lsls r0, 8 ands r0, r1 cmp r0, 0 beq _08011004 ldr r2, _0801128C adds r0, r4, r2 add r0, r9 ldrb r0, [r0] ldrb r2, [r7] cmp r0, r2 bne _08011004 ldr r0, _08011290 ands r1, r0 str r1, [r3] _08011004: adds r3, 0x58 adds r5, 0x1C adds r4, 0x1 mov r0, r8 ldrb r0, [r0] cmp r4, r0 blt _08010FAE _08011012: ldrb r0, [r7] ldr r1, _08011294 adds r0, r1 movs r1, 0 strb r1, [r0] ldrb r0, [r7] ldr r2, _08011298 adds r0, r2 strb r1, [r0] ldrb r1, [r7] lsls r0, r1, 3 subs r0, r1 lsls r0, 2 ldr r2, _08011284 adds r1, r0, r2 movs r4, 0 movs r2, 0 _08011034: adds r0, r1, r4 strb r2, [r0] adds r4, 0x1 cmp r4, 0x1B bls _08011034 ldrb r1, [r7] lsls r1, 4 adds r1, r6 ldrb r2, [r1] movs r0, 0x2 negs r0, r0 mov r9, r0 ands r0, r2 strb r0, [r1] ldrb r1, [r7] lsls r1, 4 adds r1, r6 ldrb r2, [r1] movs r0, 0x3 negs r0, r0 mov r8, r0 ands r0, r2 strb r0, [r1] ldrb r1, [r7] lsls r1, 4 adds r1, r6 ldrb r2, [r1] movs r0, 0x5 negs r0, r0 ands r0, r2 strb r0, [r1] ldrb r1, [r7] lsls r1, 4 adds r1, r6 ldrb r2, [r1] movs r0, 0x9 negs r0, r0 mov r10, r0 ands r0, r2 strb r0, [r1] ldrb r1, [r7] lsls r1, 4 adds r1, r6 ldrb r2, [r1] movs r0, 0x11 negs r0, r0 ands r0, r2 strb r0, [r1] ldrb r1, [r7] lsls r1, 4 adds r1, r6 ldrb r2, [r1] movs r5, 0x21 negs r5, r5 adds r0, r5, 0 ands r0, r2 strb r0, [r1] ldrb r1, [r7] lsls r1, 4 adds r1, r6 ldrb r2, [r1] movs r4, 0x41 negs r4, r4 adds r0, r4, 0 ands r0, r2 strb r0, [r1] ldrb r1, [r7] lsls r1, 4 adds r1, r6 ldrb r2, [r1] movs r3, 0x7F adds r0, r3, 0 ands r0, r2 strb r0, [r1] ldrb r1, [r7] lsls r1, 4 adds r1, r6 ldrb r2, [r1, 0x1] mov r0, r9 ands r0, r2 strb r0, [r1, 0x1] ldrb r1, [r7] lsls r1, 4 adds r1, r6 ldrb r2, [r1, 0x1] mov r0, r8 ands r0, r2 strb r0, [r1, 0x1] ldrb r1, [r7] lsls r1, 4 adds r1, r6 ldrb r2, [r1, 0x1] movs r0, 0x5 negs r0, r0 ands r0, r2 strb r0, [r1, 0x1] ldrb r1, [r7] lsls r1, 4 adds r1, r6 ldrb r2, [r1, 0x1] movs r0, 0x19 negs r0, r0 ands r0, r2 strb r0, [r1, 0x1] ldrb r0, [r7] lsls r0, 4 adds r0, r6 ldrb r1, [r0, 0x1] ands r5, r1 strb r5, [r0, 0x1] ldrb r0, [r7] lsls r0, 4 adds r0, r6 ldrb r1, [r0, 0x1] ands r4, r1 strb r4, [r0, 0x1] ldrb r0, [r7] lsls r0, 4 adds r0, r6 ldrb r1, [r0, 0x1] ands r3, r1 strb r3, [r0, 0x1] ldrb r0, [r7] lsls r0, 4 adds r0, r6 ldrb r1, [r0, 0x2] mov r2, r9 ands r2, r1 strb r2, [r0, 0x2] ldrb r0, [r7] lsls r0, 4 adds r0, r6 ldrb r1, [r0, 0x2] mov r2, r8 ands r2, r1 strb r2, [r0, 0x2] ldrb r0, [r7] lsls r0, 4 adds r0, r6 ldrb r1, [r0, 0x2] movs r2, 0x5 negs r2, r2 ands r2, r1 strb r2, [r0, 0x2] ldrb r0, [r7] lsls r0, 4 adds r0, r6 ldrb r1, [r0, 0x2] mov r2, r10 ands r2, r1 strb r2, [r0, 0x2] ldrb r1, [r7] lsls r0, r1, 3 subs r0, r1 lsls r0, 2 ldr r1, _08011284 adds r0, r1 movs r3, 0 movs r1, 0x2 strb r1, [r0, 0x16] ldrb r0, [r7] lsls r0, 1 ldr r2, _0801129C adds r0, r2 movs r2, 0 strh r3, [r0] ldrb r0, [r7] lsls r0, 1 ldr r1, _080112A0 adds r0, r1 strh r3, [r0] ldrb r0, [r7] lsls r0, 1 ldr r1, _080112A4 adds r0, r1 strh r3, [r0] ldrb r0, [r7] lsls r0, 1 ldr r1, _080112A8 adds r0, r1 strh r3, [r0] ldrb r0, [r7] lsls r0, 1 ldr r1, _080112AC adds r0, r1 strh r3, [r0] ldrb r0, [r7] ldr r1, _080112B0 adds r0, r1 movs r1, 0xFF strb r1, [r0] ldrb r0, [r7] lsls r0, 1 ldr r1, _080112B4 adds r0, r1 add r0, r12 strb r2, [r0] ldrb r0, [r7] lsls r0, 1 adds r1, 0x1 adds r0, r1 add r0, r12 strb r2, [r0] ldrb r0, [r7] lsls r0, 1 subs r1, 0x3D adds r0, r1 add r0, r12 strb r2, [r0] ldrb r0, [r7] lsls r0, 1 adds r1, 0x1 adds r0, r1 add r0, r12 strb r2, [r0] ldrb r0, [r7] lsls r0, 2 adds r1, 0x53 adds r0, r1 add r0, r12 strb r2, [r0] ldrb r0, [r7] lsls r0, 2 adds r1, 0x1 adds r0, r1 add r0, r12 strb r2, [r0] ldrb r0, [r7] lsls r0, 2 adds r1, 0x1 adds r0, r1 add r0, r12 strb r2, [r0] ldrb r0, [r7] lsls r0, 2 adds r1, 0x1 adds r0, r1 add r0, r12 strb r2, [r0] ldr r1, _080112B8 add r1, r12 ldrb r0, [r7] lsls r0, 2 adds r0, r1 str r3, [r0] ldrb r0, [r7] movs r3, 0x58 adds r1, r0, 0 muls r1, r3 ldr r2, _0801127C adds r1, r2 ldrh r2, [r1] lsls r0, r2, 3 subs r0, r2 lsls r0, 2 ldr r2, _080112BC adds r0, r2 ldrb r0, [r0, 0x6] adds r1, 0x21 strb r0, [r1] ldrb r0, [r7] adds r1, r0, 0 muls r1, r3 ldr r0, _0801127C adds r1, r0 ldrh r2, [r1] lsls r0, r2, 3 subs r0, r2 lsls r0, 2 ldr r2, _080112BC adds r0, r2 ldrb r0, [r0, 0x7] adds r1, 0x22 strb r0, [r1] 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 _08011268: .4byte 0x02024a60 _0801126C: .4byte 0x02024c98 _08011270: .4byte 0x02024a68 _08011274: .4byte 0x02000000 _08011278: .4byte 0x02024d28 _0801127C: .4byte 0x02024a80 _08011280: .4byte gUnknown_0820872C _08011284: .4byte 0x02024ca8 _08011288: .4byte 0xfbffffff _0801128C: .4byte 0x00016020 _08011290: .4byte 0xffff1fff _08011294: .4byte 0x02024e60 _08011298: .4byte 0x02024e64 _0801129C: .4byte 0x02024c34 _080112A0: .4byte 0x02024c3c _080112A4: .4byte 0x02024c44 _080112A8: .4byte 0x02024c4c _080112AC: .4byte 0x02024c2c _080112B0: .4byte 0x02024c5c _080112B4: .4byte 0x000160e8 _080112B8: .4byte 0x00017100 _080112BC: .4byte gBaseStats thumb_func_end sub_8010F48 thumb_func_start bc_8012FAC bc_8012FAC: @ 80112C0 push {r4,r5,lr} ldr r5, _080112D0 ldrb r0, [r5] cmp r0, 0 beq _080112D4 cmp r0, 0x1 beq _080112F8 b _0801132E .align 2, 0 _080112D0: .4byte 0x02024d1e _080112D4: ldr r4, _080112F4 ldrb r0, [r5, 0x1] strb r0, [r4] movs r0, 0 movs r1, 0 movs r2, 0 bl dp01_build_cmdbuf_x00_a_b_0 ldrb r0, [r4] bl dp01_battle_side_mark_buffer_for_execution ldrb r0, [r5] adds r0, 0x1 strb r0, [r5] b _0801132E .align 2, 0 _080112F4: .4byte 0x02024a60 _080112F8: ldr r0, _0801131C ldr r2, [r0] cmp r2, 0 bne _0801132E ldrb r0, [r5, 0x1] adds r0, 0x1 strb r0, [r5, 0x1] ldr r1, _08011320 lsls r0, 24 lsrs r0, 24 ldrb r1, [r1] cmp r0, r1 bne _0801132C ldr r1, _08011324 ldr r0, _08011328 str r0, [r1] b _0801132E .align 2, 0 _0801131C: .4byte 0x02024a64 _08011320: .4byte 0x02024a68 _08011324: .4byte 0x030042d4 _08011328: .4byte bc_load_battlefield _0801132C: strb r2, [r5] _0801132E: pop {r4,r5} pop {r0} bx r0 thumb_func_end bc_8012FAC thumb_func_start bc_load_battlefield bc_load_battlefield: @ 8011334 push {r4,r5,lr} ldr r0, _0801136C ldr r5, [r0] cmp r5, 0 bne _08011364 movs r0, 0 bl battle_get_side_with_given_state ldr r4, _08011370 strb r0, [r4] ldr r0, _08011374 ldrb r1, [r0] movs r0, 0 bl dp01_build_cmdbuf_x2E_a ldrb r0, [r4] bl dp01_battle_side_mark_buffer_for_execution ldr r1, _08011378 ldr r0, _0801137C str r0, [r1] ldr r0, _08011380 strb r5, [r0] strb r5, [r0, 0x1] _08011364: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0801136C: .4byte 0x02024a64 _08011370: .4byte 0x02024a60 _08011374: .4byte 0x0300428c _08011378: .4byte 0x030042d4 _0801137C: .4byte sub_8011384 _08011380: .4byte 0x02024d1e thumb_func_end bc_load_battlefield thumb_func_start sub_8011384 sub_8011384: @ 8011384 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} ldr r0, _080113E0 ldr r1, [r0] cmp r1, 0 beq _08011396 b _080115DA _08011396: ldr r2, _080113E4 strb r1, [r2] ldr r0, _080113E8 ldrb r0, [r0] cmp r1, r0 bcc _080113A4 b _080115D4 _080113A4: movs r7, 0x58 ldr r0, _080113EC mov r9, r0 mov r8, r2 _080113AC: ldr r0, _080113F0 ldrh r1, [r0] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _080113F4 ldr r4, _080113E4 ldrb r0, [r4] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 bne _080113F4 ldrb r0, [r4] muls r0, r7 mov r1, r9 adds r3, r0, r1 movs r2, 0 movs r1, 0 _080113D2: adds r0, r3, r2 strb r1, [r0] adds r2, 0x1 cmp r2, 0x57 bls _080113D2 b _080114BE .align 2, 0 _080113E0: .4byte 0x02024a64 _080113E4: .4byte 0x02024a60 _080113E8: .4byte 0x02024a68 _080113EC: .4byte 0x02024a80 _080113F0: .4byte 0x020239f8 _080113F4: mov r2, r8 ldrb r0, [r2] muls r0, r7 mov r1, r9 adds r3, r0, r1 movs r2, 0 ldr r6, _08011530 ldr r5, _08011534 ldr r4, _08011538 _08011406: adds r0, r3, r2 ldrb r1, [r4] lsls r1, 9 adds r1, 0x4 adds r1, r2, r1 adds r1, r5 ldrb r1, [r1] strb r1, [r0] adds r2, 0x1 cmp r2, 0x57 bls _08011406 mov r2, r8 ldrb r0, [r2] adds r2, r0, 0 muls r2, r7 add r2, r9 ldrh r1, [r2] lsls r0, r1, 3 subs r0, r1 lsls r0, 2 adds r0, r6 ldrb r0, [r0, 0x6] adds r2, 0x21 strb r0, [r2] mov r1, r8 ldrb r0, [r1] adds r2, r0, 0 muls r2, r7 add r2, r9 ldrh r1, [r2] lsls r0, r1, 3 subs r0, r1 lsls r0, 2 adds r0, r6 ldrb r0, [r0, 0x7] adds r2, 0x22 strb r0, [r2] mov r2, r8 ldrb r0, [r2] adds r1, r0, 0 muls r1, r7 add r1, r9 ldrh r0, [r1] ldrb r1, [r1, 0x17] lsrs r1, 7 bl sub_803DB14 mov r2, r8 ldrb r1, [r2] muls r1, r7 add r1, r9 adds r1, 0x20 strb r0, [r1] ldrb r0, [r2] bl battle_side_get_owner lsls r0, 24 lsrs r0, 23 ldr r1, _0801153C adds r0, r1 mov r2, r8 ldrb r1, [r2] muls r1, r7 add r1, r9 ldrh r1, [r1, 0x28] strh r1, [r0] movs r2, 0 ldr r4, _08011538 movs r5, 0x58 ldr r1, _08011540 adds r6, r4, 0 movs r0, 0x18 negs r0, r0 adds r0, r1 mov r12, r0 movs r3, 0x6 _0801149E: ldrb r0, [r4] muls r0, r5 adds r0, r2, r0 adds r0, r1 strb r3, [r0] adds r2, 0x1 cmp r2, 0x7 ble _0801149E ldrb r0, [r6] adds r1, r0, 0 muls r1, r7 mov r0, r12 adds r0, 0x50 adds r1, r0 movs r0, 0 str r0, [r1] _080114BE: ldr r4, _08011538 ldrb r0, [r4] bl battle_get_per_side_status lsls r0, 24 cmp r0, 0 bne _080114D8 movs r0, 0 bl dp01_build_cmdbuf_x07_7_7_7 ldrb r0, [r4] bl dp01_battle_side_mark_buffer_for_execution _080114D8: ldr r5, _08011544 ldrh r1, [r5] movs r0, 0x8 ands r0, r1 cmp r0, 0 beq _0801154C ldrb r0, [r4] bl battle_get_per_side_status lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080114FE movs r0, 0 bl dp01_build_cmdbuf_x07_7_7_7 ldrb r0, [r4] bl dp01_battle_side_mark_buffer_for_execution _080114FE: ldrb r0, [r4] bl battle_side_get_owner lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _08011588 ldrh r1, [r5] ldr r2, _08011548 adds r0, r2, 0 ands r0, r1 cmp r0, 0 bne _08011588 ldrb r0, [r4] muls r0, r7 add r0, r9 ldrh r0, [r0] bl SpeciesToNationalPokedexNum lsls r0, 16 lsrs r0, 16 movs r1, 0x2 bl sub_8090D90 b _08011588 .align 2, 0 _08011530: .4byte gBaseStats _08011534: .4byte 0x02024260 _08011538: .4byte 0x02024a60 _0801153C: .4byte 0x020160bc _08011540: .4byte 0x02024a98 _08011544: .4byte 0x020239f8 _08011548: .4byte 0x00000902 _0801154C: ldrb r0, [r4] bl battle_side_get_owner lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _08011588 ldrh r1, [r5] ldr r2, _080115E8 adds r0, r2, 0 ands r0, r1 cmp r0, 0 bne _08011588 ldrb r0, [r4] muls r0, r7 add r0, r9 ldrh r0, [r0] bl SpeciesToNationalPokedexNum lsls r0, 16 lsrs r0, 16 movs r1, 0x2 bl sub_8090D90 movs r0, 0 bl dp01_build_cmdbuf_x04_4_4_4 ldrb r0, [r4] bl dp01_battle_side_mark_buffer_for_execution _08011588: ldr r0, _080115EC ldrh r1, [r0] movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _080115BE ldr r4, _080115F0 ldrb r0, [r4] bl battle_get_per_side_status lsls r0, 24 lsrs r0, 24 cmp r0, 0x2 beq _080115B2 ldrb r0, [r4] bl battle_get_per_side_status lsls r0, 24 lsrs r0, 24 cmp r0, 0x3 bne _080115BE _080115B2: movs r0, 0 bl dp01_build_cmdbuf_x07_7_7_7 ldrb r0, [r4] bl dp01_battle_side_mark_buffer_for_execution _080115BE: mov r1, r8 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] ldr r1, _080115F4 lsls r0, 24 lsrs r0, 24 ldrb r1, [r1] cmp r0, r1 bcs _080115D4 b _080113AC _080115D4: ldr r1, _080115F8 ldr r0, _080115FC str r0, [r1] _080115DA: pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080115E8: .4byte 0x00000902 _080115EC: .4byte 0x020239f8 _080115F0: .4byte 0x02024a60 _080115F4: .4byte 0x02024a68 _080115F8: .4byte 0x030042d4 _080115FC: .4byte bc_801333C thumb_func_end sub_8011384 thumb_func_start bc_801333C bc_801333C: @ 8011600 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x30 ldr r0, _08011658 ldr r0, [r0] cmp r0, 0 beq _08011612 b _0801178C _08011612: ldr r0, _0801165C ldrh r1, [r0] movs r0, 0x8 ands r0, r1 cmp r0, 0 bne _08011620 b _0801172C _08011620: movs r7, 0 add r0, sp, 0x4 mov r8, r0 mov r6, r8 mov r5, sp _0801162A: movs r0, 0x64 adds r1, r7, 0 muls r1, r0 ldr r0, _08011660 adds r4, r1, r0 adds r0, r4, 0 movs r1, 0x41 bl PokemonGetField cmp r0, 0 beq _08011650 adds r0, r4, 0 movs r1, 0x41 bl PokemonGetField movs r1, 0xCE lsls r1, 1 cmp r0, r1 bne _08011668 _08011650: ldr r0, _08011664 strh r0, [r5] movs r0, 0 b _0801167A .align 2, 0 _08011658: .4byte 0x02024a64 _0801165C: .4byte 0x020239f8 _08011660: .4byte 0x030045c0 _08011664: .4byte 0x0000ffff _08011668: adds r0, r4, 0 movs r1, 0x39 bl PokemonGetField strh r0, [r5] adds r0, r4, 0 movs r1, 0x37 bl PokemonGetField _0801167A: str r0, [r6] adds r6, 0x8 adds r5, 0x8 adds r7, 0x1 cmp r7, 0x5 ble _0801162A movs r0, 0x1 bl battle_get_side_with_given_state ldr r4, _080116D4 strb r0, [r4] movs r0, 0 mov r1, sp movs r2, 0x80 bl dp01_build_cmdbuf_x30_TODO ldrb r0, [r4] bl dp01_battle_side_mark_buffer_for_execution movs r7, 0 mov r6, r8 mov r5, sp _080116A6: movs r0, 0x64 adds r1, r7, 0 muls r1, r0 ldr r0, _080116D8 adds r4, r1, r0 adds r0, r4, 0 movs r1, 0x41 bl PokemonGetField cmp r0, 0 beq _080116CC adds r0, r4, 0 movs r1, 0x41 bl PokemonGetField movs r1, 0xCE lsls r1, 1 cmp r0, r1 bne _080116E0 _080116CC: ldr r0, _080116DC strh r0, [r5] movs r0, 0 b _080116F2 .align 2, 0 _080116D4: .4byte 0x02024a60 _080116D8: .4byte 0x03004360 _080116DC: .4byte 0x0000ffff _080116E0: adds r0, r4, 0 movs r1, 0x39 bl PokemonGetField strh r0, [r5] adds r0, r4, 0 movs r1, 0x37 bl PokemonGetField _080116F2: str r0, [r6] adds r6, 0x8 adds r5, 0x8 adds r7, 0x1 cmp r7, 0x5 ble _080116A6 movs r0, 0 bl battle_get_side_with_given_state ldr r4, _08011720 strb r0, [r4] movs r0, 0 mov r1, sp movs r2, 0x80 bl dp01_build_cmdbuf_x30_TODO ldrb r0, [r4] bl dp01_battle_side_mark_buffer_for_execution ldr r1, _08011724 ldr r0, _08011728 b _0801178A .align 2, 0 _08011720: .4byte 0x02024a60 _08011724: .4byte 0x030042d4 _08011728: .4byte bc_battle_begin_message _0801172C: movs r7, 0 add r6, sp, 0x4 mov r5, sp _08011732: movs r0, 0x64 adds r1, r7, 0 muls r1, r0 ldr r0, _08011760 adds r4, r1, r0 adds r0, r4, 0 movs r1, 0x41 bl PokemonGetField cmp r0, 0 beq _08011758 adds r0, r4, 0 movs r1, 0x41 bl PokemonGetField movs r1, 0xCE lsls r1, 1 cmp r0, r1 bne _08011768 _08011758: ldr r0, _08011764 strh r0, [r5] movs r0, 0 b _0801177A .align 2, 0 _08011760: .4byte 0x03004360 _08011764: .4byte 0x0000ffff _08011768: adds r0, r4, 0 movs r1, 0x39 bl PokemonGetField strh r0, [r5] adds r0, r4, 0 movs r1, 0x37 bl PokemonGetField _0801177A: str r0, [r6] adds r6, 0x8 adds r5, 0x8 adds r7, 0x1 cmp r7, 0x5 ble _08011732 ldr r1, _08011798 ldr r0, _0801179C _0801178A: str r0, [r1] _0801178C: add sp, 0x30 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08011798: .4byte 0x030042d4 _0801179C: .4byte bc_8013568 thumb_func_end bc_801333C thumb_func_start bc_battle_begin_message bc_battle_begin_message: @ 80117A0 push {lr} ldr r0, _080117C8 ldr r0, [r0] cmp r0, 0 bne _080117C2 movs r0, 0x1 bl battle_get_side_with_given_state ldr r1, _080117CC strb r0, [r1] ldrb r1, [r1] movs r0, 0 bl b_std_message ldr r1, _080117D0 ldr r0, _080117D4 str r0, [r1] _080117C2: pop {r0} bx r0 .align 2, 0 _080117C8: .4byte 0x02024a64 _080117CC: .4byte 0x02024a60 _080117D0: .4byte 0x030042d4 _080117D4: .4byte sub_8011800 thumb_func_end bc_battle_begin_message thumb_func_start bc_8013568 bc_8013568: @ 80117D8 push {lr} ldr r0, _080117F4 ldr r0, [r0] cmp r0, 0 bne _080117F0 ldr r1, _080117F8 ldr r0, _080117FC str r0, [r1] movs r0, 0 movs r1, 0 bl b_std_message _080117F0: pop {r0} bx r0 .align 2, 0 _080117F4: .4byte 0x02024a64 _080117F8: .4byte 0x030042d4 _080117FC: .4byte sub_8011970 thumb_func_end bc_8013568 thumb_func_start sub_8011800 sub_8011800: @ 8011800 push {lr} ldr r0, _08011828 ldr r0, [r0] cmp r0, 0 bne _08011822 movs r0, 0x1 bl battle_get_side_with_given_state adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 movs r0, 0x1 bl b_std_message ldr r1, _0801182C ldr r0, _08011830 str r0, [r1] _08011822: pop {r0} bx r0 .align 2, 0 _08011828: .4byte 0x02024a64 _0801182C: .4byte 0x030042d4 _08011830: .4byte sub_8011834 thumb_func_end sub_8011800 thumb_func_start sub_8011834 sub_8011834: @ 8011834 push {r4,lr} ldr r0, _080118AC ldr r1, [r0] cmp r1, 0 bne _080118A4 ldr r2, _080118B0 strb r1, [r2] ldr r0, _080118B4 ldrb r0, [r0] cmp r1, r0 bcs _0801189E adds r4, r2, 0 _0801184C: ldrb r0, [r4] bl battle_get_per_side_status lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _08011866 movs r0, 0 bl dp01_build_cmdbuf_x2F_2F_2F_2F ldrb r0, [r4] bl dp01_battle_side_mark_buffer_for_execution _08011866: ldr r0, _080118B8 ldrh r1, [r0] movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _0801188C ldrb r0, [r4] bl battle_get_per_side_status lsls r0, 24 lsrs r0, 24 cmp r0, 0x3 bne _0801188C movs r0, 0 bl dp01_build_cmdbuf_x2F_2F_2F_2F ldrb r0, [r4] bl dp01_battle_side_mark_buffer_for_execution _0801188C: ldrb r0, [r4] adds r0, 0x1 strb r0, [r4] ldr r1, _080118B4 lsls r0, 24 lsrs r0, 24 ldrb r1, [r1] cmp r0, r1 bcc _0801184C _0801189E: ldr r1, _080118BC ldr r0, _080118C0 str r0, [r1] _080118A4: pop {r4} pop {r0} bx r0 .align 2, 0 _080118AC: .4byte 0x02024a64 _080118B0: .4byte 0x02024a60 _080118B4: .4byte 0x02024a68 _080118B8: .4byte 0x020239f8 _080118BC: .4byte 0x030042d4 _080118C0: .4byte bc_801362C thumb_func_end sub_8011834 thumb_func_start bc_801362C bc_801362C: @ 80118C4 push {r4,r5,lr} ldr r0, _08011930 ldr r1, [r0] cmp r1, 0 bne _0801192A ldr r2, _08011934 strb r1, [r2] ldr r0, _08011938 ldrb r0, [r0] cmp r1, r0 bcs _08011924 adds r4, r2, 0 ldr r5, _0801193C _080118DE: ldrb r0, [r4] bl battle_side_get_owner lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _08011912 ldr r0, _08011940 ldrh r1, [r0] ldr r2, _08011944 adds r0, r2, 0 ands r0, r1 cmp r0, 0 bne _08011912 ldrb r1, [r4] movs r0, 0x58 muls r0, r1 adds r0, r5 ldrh r0, [r0] bl SpeciesToNationalPokedexNum lsls r0, 16 lsrs r0, 16 movs r1, 0x2 bl sub_8090D90 _08011912: ldrb r0, [r4] adds r0, 0x1 strb r0, [r4] ldr r1, _08011938 lsls r0, 24 lsrs r0, 24 ldrb r1, [r1] cmp r0, r1 bcc _080118DE _08011924: ldr r1, _08011948 ldr r0, _0801194C str r0, [r1] _0801192A: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08011930: .4byte 0x02024a64 _08011934: .4byte 0x02024a60 _08011938: .4byte 0x02024a68 _0801193C: .4byte 0x02024a80 _08011940: .4byte 0x020239f8 _08011944: .4byte 0x00000902 _08011948: .4byte 0x030042d4 _0801194C: .4byte sub_8011970 thumb_func_end bc_801362C thumb_func_start unref_sub_8011950 unref_sub_8011950: @ 8011950 push {lr} ldr r0, _08011964 ldr r0, [r0] cmp r0, 0 bne _08011960 ldr r1, _08011968 ldr r0, _0801196C str r0, [r1] _08011960: pop {r0} bx r0 .align 2, 0 _08011964: .4byte 0x02024a64 _08011968: .4byte 0x030042d4 _0801196C: .4byte sub_8011970 thumb_func_end unref_sub_8011950 thumb_func_start sub_8011970 sub_8011970: @ 8011970 push {lr} ldr r0, _080119A4 ldr r0, [r0] cmp r0, 0 bne _0801199E ldr r0, _080119A8 ldrh r1, [r0] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _08011998 movs r0, 0 bl battle_get_side_with_given_state adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 movs r0, 0x1 bl b_std_message _08011998: ldr r1, _080119AC ldr r0, _080119B0 str r0, [r1] _0801199E: pop {r0} bx r0 .align 2, 0 _080119A4: .4byte 0x02024a64 _080119A8: .4byte 0x020239f8 _080119AC: .4byte 0x030042d4 _080119B0: .4byte sub_80119B4 thumb_func_end sub_8011970 thumb_func_start sub_80119B4 sub_80119B4: @ 80119B4 push {r4,lr} ldr r0, _08011A40 ldr r1, [r0] cmp r1, 0 bne _08011A38 ldr r2, _08011A44 strb r1, [r2] ldr r0, _08011A48 ldrb r0, [r0] cmp r1, r0 bcs _08011A1C adds r4, r2, 0 _080119CC: ldrb r0, [r4] bl battle_get_per_side_status lsls r0, 24 cmp r0, 0 bne _080119E4 movs r0, 0 bl dp01_build_cmdbuf_x2F_2F_2F_2F ldrb r0, [r4] bl dp01_battle_side_mark_buffer_for_execution _080119E4: ldr r0, _08011A4C ldrh r1, [r0] movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _08011A0A ldrb r0, [r4] bl battle_get_per_side_status lsls r0, 24 lsrs r0, 24 cmp r0, 0x2 bne _08011A0A movs r0, 0 bl dp01_build_cmdbuf_x2F_2F_2F_2F ldrb r0, [r4] bl dp01_battle_side_mark_buffer_for_execution _08011A0A: ldrb r0, [r4] adds r0, 0x1 strb r0, [r4] ldr r1, _08011A48 lsls r0, 24 lsrs r0, 24 ldrb r1, [r1] cmp r0, r1 bcc _080119CC _08011A1C: ldr r1, _08011A50 ldr r2, _08011A54 adds r0, r1, r2 movs r2, 0 strb r2, [r0] ldr r3, _08011A58 adds r0, r1, r3 strb r2, [r0] ldr r0, _08011A5C adds r1, r0 strb r2, [r1] ldr r1, _08011A60 ldr r0, _08011A64 str r0, [r1] _08011A38: pop {r4} pop {r0} bx r0 .align 2, 0 _08011A40: .4byte 0x02024a64 _08011A44: .4byte 0x02024a60 _08011A48: .4byte 0x02024a68 _08011A4C: .4byte 0x020239f8 _08011A50: .4byte 0x02000000 _08011A54: .4byte 0x00016058 _08011A58: .4byte 0x000160f9 _08011A5C: .4byte 0x000160e6 _08011A60: .4byte 0x030042d4 _08011A64: .4byte sub_8011B00 thumb_func_end sub_80119B4 thumb_func_start unref_sub_8011A68 unref_sub_8011A68: @ 8011A68 push {r4,r5,lr} ldr r0, _08011AD8 ldr r1, [r0] cmp r1, 0 bne _08011AD2 ldr r2, _08011ADC strb r1, [r2] ldr r0, _08011AE0 ldrb r0, [r0] cmp r1, r0 bcs _08011AB6 adds r4, r2, 0 ldr r5, _08011AE4 _08011A82: ldrb r0, [r4] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 bne _08011AA4 ldrb r0, [r4] lsls r0, 1 adds r0, r5 ldrb r1, [r0] movs r0, 0 movs r2, 0 bl sub_800C704 ldrb r0, [r4] bl dp01_battle_side_mark_buffer_for_execution _08011AA4: ldrb r0, [r4] adds r0, 0x1 strb r0, [r4] ldr r1, _08011AE0 lsls r0, 24 lsrs r0, 24 ldrb r1, [r1] cmp r0, r1 bcc _08011A82 _08011AB6: ldr r1, _08011AE8 ldr r2, _08011AEC adds r0, r1, r2 movs r2, 0 strb r2, [r0] ldr r3, _08011AF0 adds r0, r1, r3 strb r2, [r0] ldr r0, _08011AF4 adds r1, r0 strb r2, [r1] ldr r1, _08011AF8 ldr r0, _08011AFC str r0, [r1] _08011AD2: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08011AD8: .4byte 0x02024a64 _08011ADC: .4byte 0x02024a60 _08011AE0: .4byte 0x02024a68 _08011AE4: .4byte 0x02024a6a _08011AE8: .4byte 0x02000000 _08011AEC: .4byte 0x00016058 _08011AF0: .4byte 0x000160f9 _08011AF4: .4byte 0x000160e6 _08011AF8: .4byte 0x030042d4 _08011AFC: .4byte sub_8011B00 thumb_func_end unref_sub_8011A68 thumb_func_start sub_8011B00 sub_8011B00: @ 8011B00 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x8 movs r0, 0 mov r9, r0 ldr r0, _08011B44 ldr r0, [r0] cmp r0, 0 beq _08011B18 b _08011D6E _08011B18: ldr r0, _08011B48 ldr r1, _08011B4C adds r0, r1 ldrb r0, [r0] cmp r0, 0 bne _08011BA2 movs r5, 0 ldr r1, _08011B50 adds r3, r1, 0 ldrb r2, [r1] cmp r5, r2 bge _08011B3E ldr r2, _08011B54 _08011B32: adds r0, r5, r2 strb r5, [r0] adds r5, 0x1 ldrb r0, [r1] cmp r5, r0 blt _08011B32 _08011B3E: movs r5, 0 b _08011B98 .align 2, 0 _08011B44: .4byte 0x02024a64 _08011B48: .4byte 0x02000000 _08011B4C: .4byte 0x00016058 _08011B50: .4byte 0x02024a68 _08011B54: .4byte 0x02024a7a _08011B58: adds r4, r5, 0x1 mov r8, r4 ldrb r1, [r1] cmp r8, r1 bge _08011B96 ldr r6, _08011BC8 ldr r3, _08011BCC lsls r7, r5, 24 _08011B68: adds r0, r5, r6 ldrb r0, [r0] adds r1, r4, r6 ldrb r1, [r1] movs r2, 0x1 str r3, [sp, 0x4] bl b_first_side lsls r0, 24 ldr r3, [sp, 0x4] cmp r0, 0 beq _08011B8C lsls r1, r4, 24 lsrs r1, 24 lsrs r0, r7, 24 bl sub_8012FBC ldr r3, [sp, 0x4] _08011B8C: adds r4, 0x1 ldr r0, _08011BCC ldrb r0, [r0] cmp r4, r0 blt _08011B68 _08011B96: mov r5, r8 _08011B98: adds r1, r3, 0 ldrb r0, [r3] subs r0, 0x1 cmp r5, r0 blt _08011B58 _08011BA2: ldr r0, _08011BD0 ldr r1, _08011BD4 adds r4, r0, r1 ldrb r0, [r4] cmp r0, 0 bne _08011BD8 str r0, [sp] movs r0, 0 movs r1, 0 movs r2, 0 movs r3, 0xFF bl sub_8018324 lsls r0, 24 cmp r0, 0 beq _08011BD8 movs r0, 0x1 strb r0, [r4] b _08011D6E .align 2, 0 _08011BC8: .4byte 0x02024a7a _08011BCC: .4byte 0x02024a68 _08011BD0: .4byte 0x02000000 _08011BD4: .4byte 0x000160e6 _08011BD8: ldr r0, _08011D7C ldr r3, _08011D80 adds r2, r0, r3 ldr r1, _08011D84 ldrb r0, [r2] ldrb r1, [r1] cmp r0, r1 bcs _08011C28 ldr r5, _08011D88 adds r4, r2, 0 _08011BEC: ldrb r0, [r4] adds r0, r5 ldrb r1, [r0] movs r0, 0 str r0, [sp] movs r2, 0 movs r3, 0 bl sub_8018324 lsls r0, 24 cmp r0, 0 beq _08011C0E mov r0, r9 adds r0, 0x1 lsls r0, 24 lsrs r0, 24 mov r9, r0 _08011C0E: ldrb r0, [r4] adds r0, 0x1 strb r0, [r4] mov r1, r9 cmp r1, 0 beq _08011C1C b _08011D6E _08011C1C: ldr r1, _08011D84 lsls r0, 24 lsrs r0, 24 ldrb r1, [r1] cmp r0, r1 bcc _08011BEC _08011C28: movs r0, 0 str r0, [sp] movs r0, 0x9 movs r1, 0 movs r2, 0 movs r3, 0 bl sub_8018324 lsls r0, 24 lsrs r0, 24 cmp r0, 0 beq _08011C42 b _08011D6E _08011C42: str r0, [sp] movs r0, 0xB movs r1, 0 movs r2, 0 movs r3, 0 bl sub_8018324 lsls r0, 24 cmp r0, 0 beq _08011C58 b _08011D6E _08011C58: ldr r0, _08011D7C ldr r3, _08011D8C adds r2, r0, r3 ldr r0, _08011D84 ldrb r1, [r2] adds r3, r0, 0 ldrb r0, [r3] cmp r1, r0 bcs _08011CA8 ldr r5, _08011D88 adds r4, r2, 0 _08011C6E: ldrb r0, [r4] adds r0, r5 ldrb r1, [r0] movs r0, 0 movs r2, 0 str r3, [sp, 0x4] bl sub_801A02C lsls r0, 24 ldr r3, [sp, 0x4] cmp r0, 0 beq _08011C90 mov r0, r9 adds r0, 0x1 lsls r0, 24 lsrs r0, 24 mov r9, r0 _08011C90: ldrb r0, [r4] adds r0, 0x1 strb r0, [r4] mov r1, r9 cmp r1, 0 bne _08011D6E ldr r1, _08011D84 lsls r0, 24 lsrs r0, 24 ldrb r1, [r1] cmp r0, r1 bcc _08011C6E _08011CA8: ldrb r0, [r3] cmp r0, 0 beq _08011CB6 adds r5, r0, 0 _08011CB0: subs r5, 0x1 cmp r5, 0 bne _08011CB0 _08011CB6: movs r5, 0 ldr r0, _08011D7C mov r8, r5 ldr r3, _08011D90 ldr r1, _08011D94 adds r2, r0, r1 movs r7, 0x6 ldr r6, _08011D98 movs r4, 0xFF _08011CC8: strb r7, [r2] adds r1, r5, r6 ldrb r0, [r1] orrs r0, r4 strb r0, [r1] mov r0, r8 strh r0, [r3] adds r3, 0x2 adds r2, 0x1 adds r5, 0x1 cmp r5, 0x3 ble _08011CC8 movs r0, 0 bl sub_801365C bl sub_801377C ldr r0, _08011D7C ldr r1, _08011D9C ldrb r1, [r1] ldr r2, _08011DA0 adds r0, r2 strb r1, [r0] ldr r1, _08011DA4 ldr r0, _08011DA8 str r0, [r1] bl sub_80156DC ldr r1, _08011DAC movs r2, 0 adds r0, r1, 0x7 _08011D06: strb r2, [r0] subs r0, 0x1 cmp r0, r1 bge _08011D06 movs r5, 0 ldr r3, _08011D84 ldr r2, _08011D7C ldr r6, _08011DB0 ldrb r0, [r3] cmp r5, r0 bge _08011D36 ldr r0, _08011DB4 movs r4, 0x9 negs r4, r4 adds r1, r0, 0 adds r1, 0x50 _08011D26: ldr r0, [r1] ands r0, r4 str r0, [r1] adds r1, 0x58 adds r5, 0x1 ldrb r0, [r3] cmp r5, r0 blt _08011D26 _08011D36: movs r1, 0xB0 lsls r1, 9 adds r0, r2, r1 movs r1, 0 strb r1, [r0] ldr r3, _08011DB8 adds r0, r2, r3 strb r1, [r0] ldr r3, _08011DBC adds r0, r2, r3 strb r1, [r0] adds r3, 0x1 adds r0, r2, r3 strb r1, [r0] ldr r3, _08011DC0 adds r0, r2, r3 strb r1, [r0] adds r3, 0x4D adds r0, r2, r3 strb r1, [r0] subs r3, 0x4B adds r0, r2, r3 strb r1, [r0] strb r1, [r6] bl Random ldr r1, _08011DC4 strh r0, [r1] _08011D6E: add sp, 0x8 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08011D7C: .4byte 0x02000000 _08011D80: .4byte 0x00016058 _08011D84: .4byte 0x02024a68 _08011D88: .4byte 0x02024a7a _08011D8C: .4byte 0x000160f9 _08011D90: .4byte 0x02024c60 _08011D94: .4byte 0x00016068 _08011D98: .4byte 0x02024c18 _08011D9C: .4byte 0x02024c0c _08011DA0: .4byte 0x000160a6 _08011DA4: .4byte 0x030042d4 _08011DA8: .4byte sub_8012324 _08011DAC: .4byte 0x02024d1e _08011DB0: .4byte 0x02024c68 _08011DB4: .4byte 0x02024a80 _08011DB8: .4byte 0x00016001 _08011DBC: .4byte 0x00016110 _08011DC0: .4byte 0x0001600c _08011DC4: .4byte 0x02024d1c thumb_func_end sub_8011B00 thumb_func_start bc_8013B1C bc_8013B1C: @ 8011DC8 push {r4-r6,lr} ldr r0, _08011E60 ldr r0, [r0] cmp r0, 0 bne _08011E5A ldr r1, _08011E64 ldr r0, _08011E68 str r0, [r1] ldr r3, _08011E6C ldr r1, _08011E70 movs r2, 0 adds r0, r1, 0x7 _08011DE0: strb r2, [r0] subs r0, 0x1 cmp r0, r1 bge _08011DE0 movs r4, 0 ldrb r3, [r3] cmp r4, r3 bge _08011E32 ldr r5, _08011E74 adds r6, r5, 0 adds r6, 0x4C _08011DF6: movs r0, 0x58 adds r2, r4, 0 muls r2, r0 adds r1, r5, 0 adds r1, 0x50 adds r1, r2, r1 ldr r3, [r1] subs r0, 0x61 ands r3, r0 str r3, [r1] adds r2, r6 ldr r0, [r2] movs r1, 0x7 ands r0, r1 cmp r0, 0 beq _08011E28 movs r0, 0x80 lsls r0, 5 ands r3, r0 cmp r3, 0 beq _08011E28 lsls r0, r4, 24 lsrs r0, 24 bl b_cancel_multi_turn_move_maybe _08011E28: adds r4, 0x1 ldr r0, _08011E6C ldrb r0, [r0] cmp r4, r0 blt _08011DF6 _08011E32: ldr r0, _08011E78 movs r2, 0xB0 lsls r2, 9 adds r1, r0, r2 movs r2, 0 strb r2, [r1] ldr r3, _08011E7C adds r1, r0, r3 strb r2, [r1] ldr r3, _08011E80 adds r1, r0, r3 strb r2, [r1] adds r3, 0x1 adds r1, r0, r3 strb r2, [r1] ldr r1, _08011E84 adds r0, r1 strb r2, [r0] ldr r0, _08011E88 strb r2, [r0] _08011E5A: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08011E60: .4byte 0x02024a64 _08011E64: .4byte 0x030042d4 _08011E68: .4byte sub_8011E8C _08011E6C: .4byte 0x02024a68 _08011E70: .4byte 0x02024d1e _08011E74: .4byte 0x02024a80 _08011E78: .4byte 0x02000000 _08011E7C: .4byte 0x00016001 _08011E80: .4byte 0x00016110 _08011E84: .4byte 0x0001600e _08011E88: .4byte 0x02024c68 thumb_func_end bc_8013B1C thumb_func_start sub_8011E8C sub_8011E8C: @ 8011E8C push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} movs r0, 0x1 bl sub_801365C ldr r0, _08011F3C ldrb r0, [r0] cmp r0, 0 bne _08011EBC bl sub_8015DFC lsls r0, 24 cmp r0, 0 beq _08011EB0 b _08011FEE _08011EB0: bl sub_8016558 lsls r0, 24 cmp r0, 0 beq _08011EBC b _08011FEE _08011EBC: bl sub_80173A4 lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0 beq _08011ECA b _08011FEE _08011ECA: ldr r5, _08011F40 ldr r2, _08011F44 adds r0, r5, r2 strb r1, [r0] bl sub_80170DC lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0 beq _08011EE0 b _08011FEE _08011EE0: movs r0, 0 bl sub_801365C ldr r2, _08011F48 ldr r0, [r2] ldr r1, _08011F4C ands r0, r1 ldr r1, _08011F50 ands r0, r1 ldr r1, _08011F54 ands r0, r1 ldr r1, _08011F58 ands r0, r1 str r0, [r2] ldr r3, _08011F5C adds r0, r5, r3 strb r4, [r0] ldr r1, _08011F60 adds r0, r5, r1 strb r4, [r0] ldr r2, _08011F64 adds r0, r5, r2 strb r4, [r0] ldr r0, _08011F68 str r4, [r0] ldr r0, _08011F6C strb r4, [r0] ldr r1, _08011F70 movs r2, 0 adds r0, r1, 0x4 _08011F1C: strb r2, [r0] subs r0, 0x1 cmp r0, r1 bge _08011F1C ldr r0, _08011F3C ldrb r0, [r0] cmp r0, 0 beq _08011F80 ldr r1, _08011F74 movs r0, 0xC strb r0, [r1] ldr r1, _08011F78 ldr r0, _08011F7C str r0, [r1] b _08011FEE .align 2, 0 _08011F3C: .4byte 0x02024d26 _08011F40: .4byte 0x02000000 _08011F44: .4byte 0x00016059 _08011F48: .4byte 0x02024c6c _08011F4C: .4byte 0xfffffdff _08011F50: .4byte 0xfff7ffff _08011F54: .4byte 0xffbfffff _08011F58: .4byte 0xffefffff _08011F5C: .4byte 0x00016002 _08011F60: .4byte 0x000160a1 _08011F64: .4byte 0x0001600c _08011F68: .4byte 0x02024bec _08011F6C: .4byte 0x02024c68 _08011F70: .4byte 0x02024d1e _08011F74: .4byte 0x02024a7f _08011F78: .4byte 0x030042d4 _08011F7C: .4byte sub_80138F0 _08011F80: ldr r1, _08011FFC ldrb r0, [r1, 0x13] cmp r0, 0xFE bhi _08011F8C adds r0, 0x1 strb r0, [r1, 0x13] _08011F8C: movs r2, 0 ldr r4, _08012000 ldr r3, _08012004 mov r9, r3 ldr r0, _08012008 mov r10, r0 ldr r1, _0801200C mov r12, r1 ldr r3, _08012010 mov r8, r3 ldrb r0, [r4] cmp r2, r0 bge _08011FC2 ldr r7, _08012014 movs r6, 0xFF movs r5, 0 ldr r3, _08012018 _08011FAE: adds r1, r2, r7 ldrb r0, [r1] orrs r0, r6 strb r0, [r1] strh r5, [r3] adds r3, 0x2 adds r2, 0x1 ldrb r1, [r4] cmp r2, r1 blt _08011FAE _08011FC2: ldr r0, _08012004 movs r1, 0x6 movs r2, 0x3 ldr r3, _0801201C adds r0, r3 _08011FCC: strb r1, [r0] subs r0, 0x1 subs r2, 0x1 cmp r2, 0 bge _08011FCC mov r0, r12 ldrb r1, [r0] ldr r0, _08012020 add r0, r9 strb r1, [r0] mov r1, r8 mov r2, r10 str r1, [r2] bl Random ldr r1, _08012024 strh r0, [r1] _08011FEE: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08011FFC: .4byte 0x030042e0 _08012000: .4byte 0x02024a68 _08012004: .4byte 0x02000000 _08012008: .4byte 0x030042d4 _0801200C: .4byte 0x02024c0c _08012010: .4byte sub_8012324 _08012014: .4byte 0x02024c18 _08012018: .4byte 0x02024c60 _0801201C: .4byte 0x0001606b _08012020: .4byte 0x000160a6 _08012024: .4byte 0x02024d1c thumb_func_end sub_8011E8C thumb_func_start sub_8012028 sub_8012028: @ 8012028 push {r4-r7,lr} sub sp, 0x4 ldr r1, _0801204C ldr r0, _08012050 ldrb r2, [r0] movs r0, 0x58 muls r0, r2 adds r1, r0, r1 ldrh r0, [r1, 0x2E] cmp r0, 0xAF bne _08012058 ldr r1, _08012054 lsls r0, r2, 3 subs r0, r2 lsls r0, 2 adds r0, r1 ldrb r2, [r0, 0x7] b _08012062 .align 2, 0 _0801204C: .4byte 0x02024a80 _08012050: .4byte 0x02024a60 _08012054: .4byte 0x02024df0 _08012058: ldrh r0, [r1, 0x2E] bl itemid_get_x12 lsls r0, 24 lsrs r2, r0, 24 _08012062: ldr r1, _0801217C ldr r3, _08012180 ldrb r0, [r3] strb r0, [r1] cmp r2, 0x25 bne _08012070 b _080121F4 _08012070: ldr r0, _08012184 ldrh r1, [r0] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _0801207E b _080121F4 _0801207E: ldr r1, _08012188 ldrb r2, [r3] movs r0, 0x58 muls r0, r2 adds r0, r1 adds r0, 0x20 ldrb r0, [r0] cmp r0, 0x32 bne _08012092 b _080121F4 _08012092: adds r0, r2, 0 bl battle_side_get_owner lsls r0, 24 lsrs r6, r0, 24 movs r5, 0 ldr r0, _0801218C ldrb r0, [r0] cmp r5, r0 bge _08012126 movs r7, 0 _080120A8: lsrs r4, r7, 24 adds r0, r4, 0 bl battle_side_get_owner lsls r0, 24 lsrs r0, 24 cmp r6, r0 beq _080120CC ldr r1, _08012188 movs r0, 0x58 muls r0, r5 adds r0, r1 adds r2, r0, 0 adds r2, 0x20 ldrb r0, [r2] cmp r0, 0x17 bne _080120CC b _080121FC _080120CC: adds r0, r4, 0 bl battle_side_get_owner lsls r0, 24 lsrs r0, 24 cmp r6, r0 beq _08012116 ldr r3, _08012188 ldr r0, _08012180 ldrb r0, [r0] movs r2, 0x58 muls r0, r2 adds r1, r0, r3 adds r0, r1, 0 adds r0, 0x20 ldrb r0, [r0] cmp r0, 0x1A beq _08012116 adds r0, r1, 0 adds r0, 0x21 ldrb r0, [r0] cmp r0, 0x2 beq _08012116 adds r0, r1, 0 adds r0, 0x22 ldrb r0, [r0] cmp r0, 0x2 beq _08012116 adds r0, r5, 0 muls r0, r2 adds r0, r3 adds r2, r0, 0 adds r2, 0x20 ldrb r0, [r2] cmp r0, 0x47 bne _08012116 b _08012220 _08012116: movs r0, 0x80 lsls r0, 17 adds r7, r0 adds r5, 0x1 ldr r0, _0801218C ldrb r0, [r0] cmp r5, r0 blt _080120A8 _08012126: ldr r4, _08012180 ldrb r1, [r4] movs r0, 0 str r0, [sp] movs r0, 0xF movs r2, 0x2A movs r3, 0 bl sub_8018324 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0 beq _080121A0 ldr r6, _08012188 ldrb r0, [r4] movs r3, 0x58 muls r0, r3 adds r1, r0, r6 adds r0, r1, 0 adds r0, 0x21 ldrb r0, [r0] cmp r0, 0x8 beq _0801215E adds r0, r1, 0 adds r0, 0x22 ldrb r0, [r0] cmp r0, 0x8 bne _080121A0 _0801215E: ldr r0, _08012190 subs r1, r5, 0x1 ldr r2, _08012194 adds r0, r2 strb r1, [r0] ldr r2, _08012198 adds r0, r1, 0 muls r0, r3 adds r0, r6 adds r0, 0x20 ldrb r0, [r0] strb r0, [r2] ldr r1, _0801219C movs r0, 0x2 b _08012248 .align 2, 0 _0801217C: .4byte 0x02024c0b _08012180: .4byte 0x02024a60 _08012184: .4byte 0x020239f8 _08012188: .4byte 0x02024a80 _0801218C: .4byte 0x02024a68 _08012190: .4byte 0x02000000 _08012194: .4byte 0x00016003 _08012198: .4byte 0x02024c06 _0801219C: .4byte 0x02024d1e _080121A0: ldr r1, _080121D4 ldr r0, _080121D8 ldrb r2, [r0] movs r0, 0x58 muls r0, r2 adds r1, 0x50 adds r0, r1 ldr r0, [r0] ldr r1, _080121DC ands r0, r1 cmp r0, 0 bne _080121CA ldr r1, _080121E0 lsls r0, r2, 2 adds r0, r1 ldr r0, [r0] movs r1, 0x80 lsls r1, 3 ands r0, r1 cmp r0, 0 beq _080121E8 _080121CA: ldr r1, _080121E4 movs r0, 0 strb r0, [r1, 0x5] movs r0, 0x1 b _0801224A .align 2, 0 _080121D4: .4byte 0x02024a80 _080121D8: .4byte 0x02024a60 _080121DC: .4byte 0x0400e000 _080121E0: .4byte 0x02024c98 _080121E4: .4byte 0x02024d1e _080121E8: ldr r0, _080121F8 ldrh r1, [r0] movs r0, 0x10 ands r0, r1 cmp r0, 0 bne _08012244 _080121F4: movs r0, 0 b _0801224A .align 2, 0 _080121F8: .4byte 0x020239f8 _080121FC: ldr r0, _08012210 ldr r1, _08012214 adds r0, r1 strb r5, [r0] ldr r1, _08012218 ldrb r0, [r2] strb r0, [r1] ldr r1, _0801221C movs r0, 0x2 b _08012248 .align 2, 0 _08012210: .4byte 0x02000000 _08012214: .4byte 0x00016003 _08012218: .4byte 0x02024c06 _0801221C: .4byte 0x02024d1e _08012220: ldr r0, _08012234 ldr r1, _08012238 adds r0, r1 strb r5, [r0] ldr r1, _0801223C ldrb r0, [r2] strb r0, [r1] ldr r1, _08012240 movs r0, 0x2 b _08012248 .align 2, 0 _08012234: .4byte 0x02000000 _08012238: .4byte 0x00016003 _0801223C: .4byte 0x02024c06 _08012240: .4byte 0x02024d1e _08012244: ldr r1, _08012254 movs r0, 0x1 _08012248: strb r0, [r1, 0x5] _0801224A: add sp, 0x4 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _08012254: .4byte 0x02024d1e thumb_func_end sub_8012028 thumb_func_start sub_8012258 sub_8012258: @ 8012258 push {r4-r7,lr} lsls r0, 24 lsrs r5, r0, 24 movs r3, 0 ldr r7, _080122E4 ldr r4, _080122E8 ldr r1, _080122EC lsls r6, r5, 1 ldr r2, _080122F0 adds r0, r5, r2 adds r0, r6, r0 adds r2, r0, r1 _08012270: adds r1, r3, r4 ldrb r0, [r2] strb r0, [r1] adds r2, 0x1 adds r3, 0x1 cmp r3, 0x2 ble _08012270 adds r0, r6, r7 ldrb r0, [r0] bl pokemon_order_func adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldr r7, _080122EC ldr r1, _080122F4 adds r0, r5, r1 adds r0, r7 ldrb r0, [r0] bl pokemon_order_func adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 bl sub_8094C98 ldr r0, _080122F8 ldrh r1, [r0] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _080122FC movs r3, 0 ldr r2, _080122F0 movs r0, 0x2 adds r1, r5, 0 eors r1, r0 adds r0, r5, r2 adds r0, r6, r0 adds r4, r0, r7 ldr r5, _080122E8 lsls r0, r1, 1 adds r0, r1 adds r0, r2 adds r2, r0, r7 _080122CC: adds r0, r3, r5 ldrb r1, [r0] strb r1, [r4] ldrb r0, [r0] strb r0, [r2] adds r4, 0x1 adds r2, 0x1 adds r3, 0x1 cmp r3, 0x2 ble _080122CC b _08012316 .align 2, 0 _080122E4: .4byte 0x02024a6a _080122E8: .4byte 0x02038470 _080122EC: .4byte 0x02000000 _080122F0: .4byte 0x0001606c _080122F4: .4byte 0x00016068 _080122F8: .4byte 0x020239f8 _080122FC: movs r3, 0 ldr r2, _0801231C adds r0, r5, r2 adds r0, r6, r0 adds r1, r0, r7 ldr r2, _08012320 _08012308: adds r0, r3, r2 ldrb r0, [r0] strb r0, [r1] adds r1, 0x1 adds r3, 0x1 cmp r3, 0x2 ble _08012308 _08012316: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0801231C: .4byte 0x0001606c _08012320: .4byte 0x02038470 thumb_func_end sub_8012258 thumb_func_start sub_8012324 sub_8012324: @ 8012324 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x1C ldr r0, _08012340 movs r1, 0 strb r1, [r0, 0x4] ldr r0, _08012344 strb r1, [r0] ldr r0, _08012348 bl _08012F74 .align 2, 0 _08012340: .4byte 0x02024d1e _08012344: .4byte 0x02024a60 _08012348: .4byte 0x02024a68 _0801234C: ldr r4, _08012374 ldrb r0, [r4] bl battle_get_per_side_status lsls r0, 24 lsrs r5, r0, 24 ldr r1, _08012378 ldrb r0, [r4] adds r0, r1 ldrb r0, [r0] cmp r0, 0x6 bls _08012368 bl _08012F66 _08012368: lsls r0, 2 ldr r1, _0801237C adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08012374: .4byte 0x02024a60 _08012378: .4byte 0x02024d1e _0801237C: .4byte _08012380 .align 2, 0 _08012380: .4byte _0801239C .4byte _080124C8 .4byte _08012A28 .4byte _08012DA8 .4byte _08012E50 .4byte _08012E94 .4byte _08012F38 _0801239C: ldr r4, _08012434 ldr r0, _08012438 ldrb r0, [r0] ldr r1, _0801243C adds r0, r1 adds r0, r4 movs r1, 0x6 strb r1, [r0] ldr r0, _08012440 ldrh r1, [r0] movs r0, 0x40 ands r0, r1 cmp r0, 0 bne _080123F8 movs r1, 0x2 movs r0, 0x2 ands r0, r5 cmp r0, 0 beq _080123F8 eors r5, r1 adds r0, r5, 0 bl battle_get_side_with_given_state ldr r2, _08012444 adds r1, r4, r2 ldrb r1, [r1] ldr r2, _08012448 lsls r0, 24 lsrs r0, 22 adds r0, r2 ldr r0, [r0] ands r1, r0 cmp r1, 0 bne _080123F8 ldr r4, _0801244C adds r0, r5, 0 bl battle_get_side_with_given_state lsls r0, 24 lsrs r0, 24 adds r0, r4 ldrb r0, [r0] cmp r0, 0x4 beq _080123F8 bl _08012F66 _080123F8: ldr r0, _08012434 ldr r3, _08012444 adds r0, r3 ldrb r3, [r0] ldr r1, _08012448 ldr r4, _08012438 ldrb r2, [r4] lsls r0, r2, 2 adds r0, r1 ldr r0, [r0] ands r3, r0 cmp r3, 0 beq _08012468 ldr r0, _08012450 adds r0, r2, r0 movs r1, 0xD strb r1, [r0] ldr r0, _08012440 ldrh r1, [r0] movs r0, 0x40 ands r0, r1 cmp r0, 0 bne _08012454 ldr r0, _0801244C ldrb r1, [r4] adds r1, r0 movs r0, 0x4 strb r0, [r1] bl _08012F66 .align 2, 0 _08012434: .4byte 0x02000000 _08012438: .4byte 0x02024a60 _0801243C: .4byte 0x00016068 _08012440: .4byte 0x020239f8 _08012444: .4byte 0x000160a6 _08012448: .4byte gUnknown_0820872C _0801244C: .4byte 0x02024d1e _08012450: .4byte 0x02024c18 _08012454: ldr r0, _08012464 ldrb r1, [r4] adds r1, r0 movs r0, 0x3 strb r0, [r1] bl _08012F66 .align 2, 0 _08012464: .4byte 0x02024d1e _08012468: ldr r1, _0801249C movs r0, 0x58 muls r0, r2 adds r1, 0x50 adds r0, r1 ldr r1, [r0] movs r0, 0x80 lsls r0, 5 ands r0, r1 cmp r0, 0 bne _08012488 movs r0, 0x80 lsls r0, 15 ands r1, r0 cmp r1, 0 beq _080124A8 _08012488: ldr r0, _080124A0 adds r0, r2, r0 strb r3, [r0] ldr r1, _080124A4 ldrb r0, [r4] adds r0, r1 movs r1, 0x3 strb r1, [r0] bl _08012F66 .align 2, 0 _0801249C: .4byte 0x02024a80 _080124A0: .4byte 0x02024c18 _080124A4: .4byte 0x02024d1e _080124A8: ldr r0, _080124C0 ldrb r1, [r0] ldr r0, _080124C4 ldrb r2, [r0, 0x1] ldrb r0, [r0, 0x2] lsls r0, 8 orrs r2, r0 movs r0, 0 bl dp01_build_cmdbuf_x12_a_bb bl _08012E32 .align 2, 0 _080124C0: .4byte 0x02024c18 _080124C4: .4byte 0x02024260 _080124C8: ldr r4, _08012520 ldr r1, _08012524 ldr r3, _08012528 ldrb r5, [r3] lsls r0, r5, 2 adds r0, r1 ldr r2, [r0] lsls r0, r2, 4 movs r1, 0xF0 lsls r1, 24 orrs r0, r1 orrs r0, r2 lsls r1, r2, 8 orrs r0, r1 lsls r2, 12 orrs r0, r2 ldr r1, [r4] ands r1, r0 mov r8, r3 cmp r1, 0 beq _080124F6 bl _08012F66 _080124F6: ldr r2, _0801252C adds r2, r5, r2 ldr r1, _08012530 lsls r0, r5, 9 adds r1, 0x1 adds r0, r1 ldrb r0, [r0] strb r0, [r2] ldrb r0, [r3] lsls r0, 9 adds r0, r1 ldrb r0, [r0] cmp r0, 0xC bls _08012514 b _08012968 _08012514: lsls r0, 2 ldr r1, _08012534 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08012520: .4byte 0x02024a64 _08012524: .4byte gUnknown_0820872C _08012528: .4byte 0x02024a60 _0801252C: .4byte 0x02024c18 _08012530: .4byte 0x02024260 _08012534: .4byte _08012538 .align 2, 0 _08012538: .4byte _0801256C .4byte _080126B4 .4byte _080126E0 .4byte _08012968 .4byte _08012968 .4byte _080128B0 .4byte _08012908 .4byte _08012968 .4byte _08012968 .4byte _08012968 .4byte _08012968 .4byte _08012968 .4byte _0801292C _0801256C: bl sub_8015C90 lsls r0, 24 cmp r0, 0 beq _080125D0 ldr r0, _080125B4 ldr r2, _080125B8 ldrb r1, [r2] adds r1, r0 movs r4, 0 movs r0, 0x5 strb r0, [r1] ldr r3, _080125BC ldrb r0, [r2] ldr r1, _080125C0 adds r0, r1 adds r0, r3 strb r4, [r0] ldrb r0, [r2] ldr r4, _080125C4 adds r0, r4 adds r0, r3 movs r1, 0x3 strb r1, [r0] ldrb r1, [r2] ldr r0, _080125C8 adds r2, r1, r0 adds r2, r3 ldr r0, _080125CC lsls r1, 9 adds r0, 0x3 adds r1, r0 ldrb r0, [r1] strb r0, [r2] bl _08012F90 .align 2, 0 _080125B4: .4byte 0x02024d1e _080125B8: .4byte 0x02024a60 _080125BC: .4byte 0x02000000 _080125C0: .4byte 0x00016060 _080125C4: .4byte 0x00016094 _080125C8: .4byte 0x00016010 _080125CC: .4byte 0x02024260 _080125D0: ldr r1, _080125FC ldr r5, _08012600 ldrb r4, [r5] lsls r0, r4, 3 subs r0, r4 lsls r0, 2 adds r0, r1 ldrh r2, [r0, 0x6] cmp r2, 0 beq _0801260C ldr r1, _08012604 lsls r0, r4, 1 adds r0, r1 strh r2, [r0] ldr r1, _08012608 ldrb r0, [r5] adds r0, r1 movs r1, 0x3 strb r1, [r0] bl _08012F90 .align 2, 0 _080125FC: .4byte 0x02024ca8 _08012600: .4byte 0x02024a60 _08012604: .4byte 0x02024c60 _08012608: .4byte 0x02024d1e _0801260C: add r2, sp, 0x4 ldr r3, _080126AC movs r1, 0x58 adds r0, r4, 0 muls r0, r1 adds r0, r3 ldrh r0, [r0] strh r0, [r2, 0x10] ldrb r0, [r5] muls r0, r1 adds r0, r3 adds r0, 0x21 ldrb r0, [r0] strb r0, [r2, 0x12] ldrb r0, [r5] muls r0, r1 adds r0, r3 adds r0, 0x22 ldrb r0, [r0] strb r0, [r2, 0x13] movs r4, 0 mov r1, sp adds r1, 0xC str r1, [sp, 0x18] add r2, sp, 0x10 mov r10, r2 mov r8, r3 adds r7, r5, 0 movs r6, 0x58 movs r3, 0xC add r3, r8 mov r9, r3 add r5, sp, 0x4 _0801264E: lsls r2, r4, 1 ldrb r0, [r7] muls r0, r6 adds r0, r2, r0 add r0, r9 ldrh r0, [r0] strh r0, [r5] ldr r0, [sp, 0x18] adds r3, r0, r4 ldrb r0, [r7] muls r0, r6 adds r0, r4, r0 mov r1, r8 adds r1, 0x24 adds r0, r1 ldrb r0, [r0] strb r0, [r3] ldrb r0, [r7] adds r1, r0, 0 muls r1, r6 adds r2, r1 add r2, r9 ldrh r0, [r2] add r1, r8 adds r1, 0x3B ldrb r1, [r1] lsls r2, r4, 24 lsrs r2, 24 bl CalcPPWithPPUps mov r2, r10 adds r1, r2, r4 strb r0, [r1] adds r5, 0x2 adds r4, 0x1 cmp r4, 0x3 ble _0801264E ldr r0, _080126B0 ldrb r0, [r0] movs r1, 0x1 ands r1, r0 movs r0, 0 movs r2, 0 add r3, sp, 0x4 bl sub_800CBA4 b _0801289E .align 2, 0 _080126AC: .4byte 0x02024a80 _080126B0: .4byte 0x020239f8 _080126B4: ldr r0, _080126D0 ldrh r1, [r0] ldr r0, _080126D4 ands r0, r1 cmp r0, 0 bne _080126C2 b _08012908 _080126C2: ldr r1, _080126D8 mov r3, r8 ldrb r0, [r3] lsls r0, 2 adds r0, r1 ldr r1, _080126DC b _080129CC .align 2, 0 _080126D0: .4byte 0x020239f8 _080126D4: .4byte 0x00000902 _080126D8: .4byte 0x02024c1c _080126DC: .4byte gUnknown_081D9B29 _080126E0: ldr r3, _08012738 ldr r5, _0801273C ldrb r0, [r5] ldr r4, _08012740 adds r1, r0, r4 adds r1, r3 ldr r2, _08012744 lsls r0, 1 adds r0, r2 ldrh r0, [r0] strb r0, [r1] ldr r7, _08012748 ldrb r2, [r5] movs r6, 0x58 adds r0, r2, 0 muls r0, r6 adds r1, r7, 0 adds r1, 0x50 adds r0, r1 ldr r0, [r0] ldr r1, _0801274C ands r0, r1 cmp r0, 0 bne _08012722 ldr r0, _08012750 lsls r1, r2, 2 adds r1, r0 ldr r1, [r1] movs r0, 0x80 lsls r0, 3 ands r1, r0 cmp r1, 0 beq _08012758 _08012722: lsls r0, r2, 1 adds r0, r2 ldr r2, _08012754 adds r1, r3, r2 adds r0, r1 str r0, [sp] movs r0, 0 movs r1, 0x2 movs r2, 0x6 b _0801286C .align 2, 0 _08012738: .4byte 0x02000000 _0801273C: .4byte 0x02024a60 _08012740: .4byte 0x00016064 _08012744: .4byte 0x02024a6a _08012748: .4byte 0x02024a80 _0801274C: .4byte 0x0400e000 _08012750: .4byte 0x02024c98 _08012754: .4byte 0x0001606c _08012758: str r1, [sp] movs r0, 0xC adds r1, r2, 0 movs r2, 0x17 movs r3, 0 bl sub_8018324 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0 bne _080127E0 ldrb r1, [r5] str r4, [sp] movs r0, 0xC movs r2, 0x47 movs r3, 0 bl sub_8018324 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0 beq _080127A8 ldrb r0, [r5] muls r0, r6 adds r1, r0, r7 adds r0, r1, 0 adds r0, 0x21 ldrb r0, [r0] cmp r0, 0x2 beq _080127A8 adds r0, r1, 0 adds r0, 0x22 ldrb r0, [r0] cmp r0, 0x2 beq _080127A8 adds r0, r1, 0 adds r0, 0x20 ldrb r0, [r0] cmp r0, 0x1A bne _080127E0 _080127A8: ldr r5, _08012808 ldrb r1, [r5] movs r0, 0 str r0, [sp] movs r0, 0xF movs r2, 0x2A movs r3, 0 bl sub_8018324 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0 beq _08012818 ldr r2, _0801280C ldrb r1, [r5] movs r0, 0x58 muls r0, r1 adds r1, r0, r2 adds r0, r1, 0 adds r0, 0x21 ldrb r0, [r0] cmp r0, 0x8 beq _080127E0 adds r0, r1, 0 adds r0, 0x22 ldrb r0, [r0] cmp r0, 0x8 bne _08012818 _080127E0: subs r1, r4, 0x1 lsls r1, 4 movs r0, 0x4 orrs r1, r0 lsls r1, 24 lsrs r1, 24 ldr r0, _08012810 ldrb r3, [r0] ldr r0, _08012808 ldrb r2, [r0] lsls r0, r2, 1 adds r0, r2 ldr r2, _08012814 adds r0, r2 str r0, [sp] movs r0, 0 movs r2, 0x6 bl dp01_build_cmdbuf_x16_a_b_c_ptr_d_e_f b _0801289E .align 2, 0 _08012808: .4byte 0x02024a60 _0801280C: .4byte 0x02024a80 _08012810: .4byte 0x02024c06 _08012814: .4byte 0x0201606c _08012818: ldr r0, _08012830 ldrb r1, [r0] mov r8, r0 cmp r1, 0x2 bne _08012840 ldr r0, _08012834 ldrb r0, [r0] cmp r0, 0x2 bne _08012840 ldr r3, _08012838 ldr r4, _0801283C b _08012854 .align 2, 0 _08012830: .4byte 0x02024a60 _08012834: .4byte 0x02024c18 _08012838: .4byte 0x02000000 _0801283C: .4byte 0x00016068 _08012840: mov r2, r8 ldrb r0, [r2] cmp r0, 0x3 bne _08012884 ldr r0, _08012874 ldrb r0, [r0, 0x1] cmp r0, 0x2 bne _08012884 ldr r3, _08012878 ldr r4, _0801287C _08012854: adds r0, r3, r4 ldrb r2, [r0] mov r0, r8 ldrb r1, [r0] lsls r0, r1, 1 adds r0, r1 ldr r1, _08012880 adds r3, r1 adds r0, r3 str r0, [sp] movs r0, 0 movs r1, 0 _0801286C: movs r3, 0 bl dp01_build_cmdbuf_x16_a_b_c_ptr_d_e_f b _0801289E .align 2, 0 _08012874: .4byte 0x02024c18 _08012878: .4byte 0x02000000 _0801287C: .4byte 0x00016069 _08012880: .4byte 0x0001606c _08012884: ldr r0, _080128A8 ldrb r1, [r0] lsls r0, r1, 1 adds r0, r1 ldr r1, _080128AC adds r0, r1 str r0, [sp] movs r0, 0 movs r1, 0 movs r2, 0x6 movs r3, 0 bl dp01_build_cmdbuf_x16_a_b_c_ptr_d_e_f _0801289E: ldr r0, _080128A8 ldrb r0, [r0] bl dp01_battle_side_mark_buffer_for_execution b _08012968 .align 2, 0 _080128A8: .4byte 0x02024a60 _080128AC: .4byte 0x0201606c _080128B0: bl sub_803DD20 lsls r0, 24 cmp r0, 0 beq _08012968 ldr r1, _080128EC ldr r2, _080128F0 ldrb r0, [r2] lsls r0, 2 adds r0, r1 ldr r1, _080128F4 str r1, [r0] ldr r0, _080128F8 ldrb r1, [r2] adds r1, r0 movs r3, 0 movs r0, 0x5 strb r0, [r1] ldr r1, _080128FC ldrb r0, [r2] ldr r4, _08012900 adds r0, r4 adds r0, r1 strb r3, [r0] ldrb r0, [r2] ldr r2, _08012904 adds r0, r2 adds r0, r1 strb r3, [r0] b _08012F90 .align 2, 0 _080128EC: .4byte 0x02024c1c _080128F0: .4byte 0x02024a60 _080128F4: .4byte gUnknown_081D8E4A _080128F8: .4byte 0x02024d1e _080128FC: .4byte 0x02000000 _08012900: .4byte 0x00016060 _08012904: .4byte 0x00016094 _08012908: ldr r4, _08012924 ldrb r0, [r4] lsls r1, r0, 1 adds r1, r0 ldr r0, _08012928 adds r1, r0 movs r0, 0 bl sub_800CBE0 ldrb r0, [r4] bl dp01_battle_side_mark_buffer_for_execution b _08012968 .align 2, 0 _08012924: .4byte 0x02024a60 _08012928: .4byte 0x0201606c _0801292C: ldr r4, _08012964 mov r3, r8 ldrb r1, [r3] adds r1, r4 movs r5, 0 movs r0, 0x6 strb r0, [r1] ldrb r0, [r3] bl battle_get_per_side_status movs r1, 0x2 eors r0, r1 lsls r0, 24 lsrs r0, 24 bl battle_get_side_with_given_state lsls r0, 24 lsrs r0, 24 adds r0, r4 strb r5, [r0] movs r0, 0 bl dp01_build_cmdbuf_x32_32_32_32 mov r4, r8 ldrb r0, [r4] bl dp01_battle_side_mark_buffer_for_execution b _08012F90 .align 2, 0 _08012964: .4byte 0x02024d1e _08012968: ldr r0, _08012994 ldrh r1, [r0] movs r0, 0xA ands r0, r1 cmp r0, 0x8 bne _080129A8 ldr r0, _08012998 ldr r4, _0801299C ldrb r1, [r4] lsls r1, 9 adds r0, 0x1 adds r1, r0 ldrb r0, [r1] cmp r0, 0x3 bne _080129A8 ldr r0, _080129A0 bl b_call_bc_move_exec ldr r1, _080129A4 ldrb r0, [r4] adds r0, r1 b _08012BFE .align 2, 0 _08012994: .4byte 0x020239f8 _08012998: .4byte 0x02024260 _0801299C: .4byte 0x02024a60 _080129A0: .4byte gUnknown_081D8E37 _080129A4: .4byte 0x02024d1e _080129A8: bl sub_8012028 lsls r0, 24 cmp r0, 0 beq _08012A14 ldr r0, _080129F4 ldr r3, _080129F8 ldrb r2, [r3] lsls r1, r2, 9 adds r0, 0x1 adds r1, r0 ldrb r0, [r1] cmp r0, 0x3 bne _08012A14 ldr r1, _080129FC lsls r0, r2, 2 adds r0, r1 ldr r1, _08012A00 _080129CC: str r1, [r0] ldr r0, _08012A04 ldrb r1, [r3] adds r1, r0 movs r2, 0 movs r0, 0x5 strb r0, [r1] ldr r1, _08012A08 ldrb r0, [r3] ldr r4, _08012A0C adds r0, r4 adds r0, r1 strb r2, [r0] ldrb r0, [r3] ldr r3, _08012A10 adds r0, r3 adds r0, r1 strb r2, [r0] b _08012F90 .align 2, 0 _080129F4: .4byte 0x02024260 _080129F8: .4byte 0x02024a60 _080129FC: .4byte 0x02024c1c _08012A00: .4byte gUnknown_081D8E44 _08012A04: .4byte 0x02024d1e _08012A08: .4byte 0x02000000 _08012A0C: .4byte 0x00016060 _08012A10: .4byte 0x00016094 _08012A14: ldr r2, _08012A20 ldr r0, _08012A24 ldrb r1, [r0] adds r1, r2 b _08012E3E .align 2, 0 _08012A20: .4byte 0x02024d1e _08012A24: .4byte 0x02024a60 _08012A28: ldr r4, _08012A6C ldr r1, _08012A70 ldr r3, _08012A74 ldrb r5, [r3] lsls r0, r5, 2 adds r0, r1 ldr r2, [r0] lsls r0, r2, 4 movs r1, 0xF0 lsls r1, 24 orrs r0, r1 orrs r0, r2 lsls r1, r2, 8 orrs r0, r1 lsls r2, 12 orrs r0, r2 ldr r1, [r4] ands r1, r0 mov r8, r3 cmp r1, 0 beq _08012A54 b _08012F66 _08012A54: ldr r1, _08012A78 adds r0, r5, r1 ldrb r0, [r0] adds r3, r1, 0 cmp r0, 0x9 bls _08012A62 b _08012F66 _08012A62: lsls r0, 2 ldr r1, _08012A7C adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08012A6C: .4byte 0x02024a64 _08012A70: .4byte gUnknown_0820872C _08012A74: .4byte 0x02024a60 _08012A78: .4byte 0x02024c18 _08012A7C: .4byte _08012A80 .align 2, 0 _08012A80: .4byte _08012AA8 .4byte _08012BB0 .4byte _08012BE8 .4byte _08012CE0 .4byte _08012D04 .4byte _08012D18 .4byte _08012D2C .4byte _08012D5C .4byte _08012D70 .4byte _08012D94 _08012AA8: ldr r0, _08012AC8 mov r1, r8 ldrb r4, [r1] lsls r1, r4, 9 adds r2, r0, 0x1 adds r1, r2 ldrb r1, [r1] adds r6, r0, 0 cmp r1, 0x9 bgt _08012ACC cmp r1, 0x3 blt _08012ACC adds r0, r4, r3 strb r1, [r0] b _08012F90 .align 2, 0 _08012AC8: .4byte 0x02024260 _08012ACC: adds r3, r6, 0 mov r5, r8 ldrb r4, [r5] lsls r1, r4, 9 adds r7, r3, 0x2 adds r0, r1, r7 ldrb r2, [r0] adds r3, 0x3 mov r9, r3 add r1, r9 ldrb r0, [r1] lsls r0, 8 orrs r2, r0 ldr r0, _08012AF4 cmp r2, r0 bne _08012AFC ldr r0, _08012AF8 adds r0, r4, r0 b _08012BFE .align 2, 0 _08012AF4: .4byte 0x0000ffff _08012AF8: .4byte 0x02024d1e _08012AFC: bl sub_8015894 lsls r0, 24 cmp r0, 0 beq _08012B48 ldr r0, _08012B38 ldrb r1, [r5] adds r1, r0 movs r2, 0 movs r0, 0x5 strb r0, [r1] ldr r3, _08012B3C ldrb r0, [r5] ldr r4, _08012B40 adds r0, r4 adds r0, r3 strb r2, [r0] ldrb r0, [r5] lsls r0, 9 adds r1, r6, 0x1 adds r0, r1 strb r2, [r0] ldrb r0, [r5] ldr r1, _08012B44 adds r0, r1 adds r0, r3 movs r1, 0x1 strb r1, [r0] b _08012F90 .align 2, 0 _08012B38: .4byte 0x02024d1e _08012B3C: .4byte 0x02000000 _08012B40: .4byte 0x00016060 _08012B44: .4byte 0x00016094 _08012B48: ldr r6, _08012B98 mov r2, r8 ldrb r0, [r2] ldr r2, _08012B9C adds r1, r0, r2 adds r1, r6 lsls r0, 9 adds r0, r7 ldrb r0, [r0] strb r0, [r1] ldr r0, _08012BA0 mov r4, r8 ldrb r3, [r4] lsls r5, r3, 1 adds r5, r0 ldr r4, _08012BA4 adds r2, r3, r2 adds r2, r6 ldrb r0, [r2] lsls r0, 1 movs r1, 0x58 muls r1, r3 adds r0, r1 adds r4, 0xC adds r0, r4 ldrh r0, [r0] strh r0, [r5] mov r1, r8 ldrb r0, [r1] ldr r2, _08012BA8 adds r1, r0, r2 adds r1, r6 lsls r0, 9 add r0, r9 ldrb r0, [r0] strb r0, [r1] ldr r0, _08012BAC mov r3, r8 ldrb r1, [r3] b _08012E3C .align 2, 0 _08012B98: .4byte 0x02000000 _08012B9C: .4byte 0x0001608c _08012BA0: .4byte 0x02024c60 _08012BA4: .4byte 0x02024a80 _08012BA8: .4byte 0x00016010 _08012BAC: .4byte 0x02024d1e _08012BB0: ldr r2, _08012BD8 ldr r5, _08012BDC ldrb r4, [r5] lsls r1, r4, 9 adds r0, r2, 0x1 adds r0, r1, r0 ldrb r3, [r0] adds r2, 0x2 adds r1, r2 ldrb r0, [r1] lsls r0, 8 orrs r3, r0 cmp r3, 0 bne _08012BCE b _08012F60 _08012BCE: ldr r0, _08012BE0 strh r3, [r0] ldr r0, _08012BE4 ldrb r1, [r5] b _08012E3C .align 2, 0 _08012BD8: .4byte 0x02024260 _08012BDC: .4byte 0x02024a60 _08012BE0: .4byte 0x02024c04 _08012BE4: .4byte 0x02024d1e _08012BE8: ldr r4, _08012C04 ldr r7, _08012C08 ldrb r2, [r7] lsls r0, r2, 9 adds r1, r4, 0x1 adds r0, r1 ldrb r1, [r0] cmp r1, 0x6 bne _08012C10 ldr r0, _08012C0C adds r0, r2, r0 _08012BFE: movs r1, 0 strb r1, [r0] b _08012F66 .align 2, 0 _08012C04: .4byte 0x02024260 _08012C08: .4byte 0x02024a60 _08012C0C: .4byte 0x02024d1e _08012C10: ldr r0, _08012CC4 mov r12, r0 ldr r3, _08012CC8 adds r0, r2, r3 add r0, r12 strb r1, [r0] ldr r0, _08012CCC ldrh r1, [r0] movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _08012CBE ldrb r0, [r7] lsls r1, r0, 1 adds r1, r0 ldr r5, _08012CD0 adds r1, r5 add r1, r12 ldrb r2, [r1] movs r0, 0xF ands r0, r2 strb r0, [r1] ldrb r0, [r7] lsls r2, r0, 1 adds r2, r0 adds r2, r5 add r2, r12 lsls r0, 9 adds r6, r4, 0x2 adds r0, r6 ldrb r1, [r0] movs r3, 0xF0 adds r0, r3, 0 ands r0, r1 ldrb r1, [r2] orrs r0, r1 strb r0, [r2] ldrb r0, [r7] lsls r1, r0, 1 adds r1, r0 ldr r2, _08012CD4 adds r1, r2 add r1, r12 lsls r0, 9 adds r4, 0x3 mov r8, r4 add r0, r8 ldrb r0, [r0] strb r0, [r1] ldrb r0, [r7] movs r4, 0x2 eors r0, r4 lsls r1, r0, 1 adds r1, r0 adds r1, r5 add r1, r12 ldrb r2, [r1] adds r0, r3, 0 ands r0, r2 strb r0, [r1] ldrb r0, [r7] eors r0, r4 lsls r1, r0, 1 adds r1, r0 adds r1, r5 add r1, r12 ldrb r0, [r7] lsls r0, 9 adds r0, r6 ldrb r0, [r0] ands r3, r0 lsrs r3, 4 ldrb r0, [r1] orrs r3, r0 strb r3, [r1] ldrb r0, [r7] eors r4, r0 lsls r1, r4, 1 adds r1, r4 ldr r3, _08012CD8 adds r1, r3 add r1, r12 ldrb r0, [r7] lsls r0, 9 add r0, r8 ldrb r0, [r0] strb r0, [r1] _08012CBE: ldr r0, _08012CDC ldrb r1, [r7] b _08012E3C .align 2, 0 _08012CC4: .4byte 0x02000000 _08012CC8: .4byte 0x00016068 _08012CCC: .4byte 0x020239f8 _08012CD0: .4byte 0x0001606c _08012CD4: .4byte 0x0001606d _08012CD8: .4byte 0x0001606e _08012CDC: .4byte 0x02024d1e _08012CE0: ldr r2, _08012CF8 ldr r0, [r2] movs r1, 0x80 lsls r1, 8 orrs r0, r1 str r0, [r2] ldr r2, _08012CFC ldr r0, _08012D00 ldrb r1, [r0] adds r1, r2 b _08012E3E .align 2, 0 _08012CF8: .4byte 0x02024c6c _08012CFC: .4byte 0x02024d1e _08012D00: .4byte 0x02024a60 _08012D04: ldr r2, _08012D10 ldr r0, _08012D14 ldrb r1, [r0] adds r1, r2 b _08012E3E .align 2, 0 _08012D10: .4byte 0x02024d1e _08012D14: .4byte 0x02024a60 _08012D18: ldr r2, _08012D24 ldr r0, _08012D28 ldrb r1, [r0] adds r1, r2 b _08012E3E .align 2, 0 _08012D24: .4byte 0x02024d1e _08012D28: .4byte 0x02024a60 _08012D2C: ldr r2, _08012D50 ldr r0, _08012D54 ldrb r4, [r0] lsls r1, r4, 9 adds r0, r2, 0x1 adds r0, r1, r0 ldrb r3, [r0] adds r2, 0x2 adds r1, r2 ldrb r0, [r1] lsls r0, 8 orrs r3, r0 cmp r3, 0 bne _08012D4A b _08012F60 _08012D4A: ldr r1, _08012D58 adds r1, r4, r1 b _08012E3E .align 2, 0 _08012D50: .4byte 0x02024260 _08012D54: .4byte 0x02024a60 _08012D58: .4byte 0x02024d1e _08012D5C: ldr r2, _08012D68 ldr r0, _08012D6C ldrb r1, [r0] adds r1, r2 b _08012E3E .align 2, 0 _08012D68: .4byte 0x02024d1e _08012D6C: .4byte 0x02024a60 _08012D70: ldr r2, _08012D88 ldr r0, [r2] movs r1, 0x80 lsls r1, 8 orrs r0, r1 str r0, [r2] ldr r2, _08012D8C ldr r0, _08012D90 ldrb r1, [r0] adds r1, r2 b _08012E3E .align 2, 0 _08012D88: .4byte 0x02024c6c _08012D8C: .4byte 0x02024d1e _08012D90: .4byte 0x02024a60 _08012D94: ldr r2, _08012DA0 ldr r0, _08012DA4 ldrb r1, [r0] adds r1, r2 b _08012E3E .align 2, 0 _08012DA0: .4byte 0x02024d1e _08012DA4: .4byte 0x02024a60 _08012DA8: ldr r3, _08012E10 ldr r4, _08012E14 ldr r0, _08012E18 ldrb r0, [r0] lsls r0, 2 adds r0, r4 ldr r2, [r0] lsls r1, r2, 4 movs r0, 0xF0 lsls r0, 24 orrs r1, r0 orrs r1, r2 lsls r0, r2, 8 orrs r1, r0 lsls r2, 12 orrs r1, r2 ldr r0, [r3] ands r0, r1 cmp r0, 0 beq _08012DD2 b _08012F66 _08012DD2: ldr r0, _08012E1C ldrh r1, [r0] movs r0, 0x41 ands r0, r1 cmp r0, 0x1 bne _08012E06 movs r1, 0x2 movs r0, 0x2 ands r0, r5 cmp r0, 0 bne _08012E06 adds r0, r5, 0 eors r0, r1 bl battle_get_side_with_given_state ldr r1, _08012E20 ldr r2, _08012E24 adds r1, r2 ldrb r1, [r1] lsls r0, 24 lsrs r0, 22 adds r0, r4 ldr r0, [r0] ands r1, r0 cmp r1, 0 beq _08012E28 _08012E06: movs r0, 0 movs r1, 0 bl sub_800D1D8 b _08012E30 .align 2, 0 _08012E10: .4byte 0x02024a64 _08012E14: .4byte gUnknown_0820872C _08012E18: .4byte 0x02024a60 _08012E1C: .4byte 0x020239f8 _08012E20: .4byte 0x02000000 _08012E24: .4byte 0x000160a6 _08012E28: movs r0, 0 movs r1, 0x1 bl sub_800D1D8 _08012E30: ldr r4, _08012E48 _08012E32: ldrb r0, [r4] bl dp01_battle_side_mark_buffer_for_execution ldr r0, _08012E4C ldrb r1, [r4] _08012E3C: adds r1, r0 _08012E3E: ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] b _08012F66 .align 2, 0 _08012E48: .4byte 0x02024a60 _08012E4C: .4byte 0x02024d1e _08012E50: ldr r3, _08012E84 ldr r1, _08012E88 ldr r0, _08012E8C ldrb r0, [r0] lsls r0, 2 adds r0, r1 ldr r2, [r0] lsls r1, r2, 4 movs r0, 0xF0 lsls r0, 24 orrs r1, r0 orrs r1, r2 lsls r0, r2, 8 orrs r1, r0 lsls r2, 12 orrs r1, r2 ldr r0, [r3] ands r0, r1 cmp r0, 0 bne _08012F66 ldr r1, _08012E90 ldrb r0, [r1, 0x4] adds r0, 0x1 strb r0, [r1, 0x4] b _08012F66 .align 2, 0 _08012E84: .4byte 0x02024a64 _08012E88: .4byte gUnknown_0820872C _08012E8C: .4byte 0x02024a60 _08012E90: .4byte 0x02024d1e _08012E94: ldr r2, _08012EB8 ldr r5, _08012EBC ldrb r1, [r5] ldr r3, _08012EC0 adds r0, r1, r3 adds r0, r2 ldrb r0, [r0] cmp r0, 0 beq _08012ECC ldr r0, _08012EC4 adds r0, r1, r0 ldr r4, _08012EC8 adds r1, r4 adds r1, r2 ldrb r1, [r1] strb r1, [r0] b _08012F66 .align 2, 0 _08012EB8: .4byte 0x02000000 _08012EBC: .4byte 0x02024a60 _08012EC0: .4byte 0x00016060 _08012EC4: .4byte 0x02024d1e _08012EC8: .4byte 0x00016094 _08012ECC: ldr r0, _08012F20 strb r1, [r0] ldr r7, _08012F24 ldr r6, _08012F28 ldrb r0, [r5] lsls r0, 2 adds r0, r6 ldr r4, [r0] str r4, [r7] ldr r3, _08012F2C ldr r1, _08012F30 ldrb r0, [r5] lsls r0, 2 adds r0, r1 ldr r2, [r0] lsls r1, r2, 4 movs r0, 0xF0 lsls r0, 24 orrs r1, r0 orrs r1, r2 lsls r0, r2, 8 orrs r1, r0 lsls r2, 12 orrs r1, r2 ldr r0, [r3] ands r0, r1 cmp r0, 0 bne _08012F12 ldr r0, _08012F34 ldrb r1, [r4] lsls r1, 2 adds r1, r0 ldr r0, [r1] bl _call_via_r0 _08012F12: ldrb r0, [r5] lsls r0, 2 adds r0, r6 ldr r1, [r7] str r1, [r0] b _08012F66 .align 2, 0 _08012F20: .4byte 0x02024c07 _08012F24: .4byte 0x02024c10 _08012F28: .4byte 0x02024c1c _08012F2C: .4byte 0x02024a64 _08012F30: .4byte gUnknown_0820872C _08012F34: .4byte gUnknown_081FA73C _08012F38: ldr r3, _08012FA0 ldr r1, _08012FA4 ldr r0, _08012FA8 ldrb r4, [r0] lsls r0, r4, 2 adds r0, r1 ldr r2, [r0] lsls r0, r2, 4 movs r1, 0xF0 lsls r1, 24 orrs r0, r1 orrs r0, r2 lsls r1, r2, 8 orrs r0, r1 lsls r2, 12 orrs r0, r2 ldr r3, [r3] ands r3, r0 cmp r3, 0 bne _08012F66 _08012F60: ldr r0, _08012FAC adds r0, r4, r0 strb r3, [r0] _08012F66: ldr r0, _08012FA8 ldrb r1, [r0] adds r1, 0x1 strb r1, [r0] ldr r0, _08012FB0 lsls r1, 24 lsrs r1, 24 _08012F74: adds r2, r0, 0 ldrb r0, [r2] cmp r1, r0 bcs _08012F80 bl _0801234C _08012F80: ldr r0, _08012FAC ldrb r0, [r0, 0x4] ldrb r2, [r2] cmp r0, r2 bne _08012F90 ldr r1, _08012FB4 ldr r0, _08012FB8 str r0, [r1] _08012F90: add sp, 0x1C pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08012FA0: .4byte 0x02024a64 _08012FA4: .4byte gUnknown_0820872C _08012FA8: .4byte 0x02024a60 _08012FAC: .4byte 0x02024d1e _08012FB0: .4byte 0x02024a68 _08012FB4: .4byte 0x030042d4 _08012FB8: .4byte sub_80133C8 thumb_func_end sub_8012324 thumb_func_start sub_8012FBC sub_8012FBC: @ 8012FBC push {r4,r5,lr} lsls r0, 24 lsrs r0, 24 lsls r1, 24 lsrs r1, 24 ldr r2, _08012FE8 adds r4, r0, r2 ldrb r5, [r4] adds r2, r1, r2 ldrb r3, [r2] strb r3, [r4] strb r5, [r2] ldr r2, _08012FEC adds r0, r2 ldrb r5, [r0] adds r1, r2 ldrb r2, [r1] strb r2, [r0] strb r5, [r1] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08012FE8: .4byte 0x02024a76 _08012FEC: .4byte 0x02024a7a thumb_func_end sub_8012FBC thumb_func_start b_first_side b_first_side: @ 8012FF0 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0xC lsls r0, 24 lsrs r0, 24 mov r9, r0 lsls r1, 24 lsrs r1, 24 mov r10, r1 lsls r2, 24 lsrs r2, 24 str r2, [sp, 0x4] movs r0, 0 str r0, [sp, 0x8] str r0, [sp] movs r0, 0x13 movs r1, 0 movs r2, 0xD movs r3, 0 bl sub_8018324 lsls r0, 24 cmp r0, 0 bne _080130B8 ldr r1, [sp, 0x8] str r1, [sp] movs r0, 0x13 movs r1, 0 movs r2, 0x4D movs r3, 0 bl sub_8018324 lsls r0, 24 cmp r0, 0 bne _080130B8 ldr r1, _08013070 movs r0, 0x58 mov r2, r9 muls r2, r0 adds r0, r2, 0 adds r0, r1 adds r0, 0x20 ldrb r3, [r0] cmp r3, 0x21 bne _0801305C ldr r0, _08013074 ldrh r1, [r0] movs r0, 0x7 ands r0, r1 cmp r0, 0 bne _0801306C _0801305C: cmp r3, 0x22 bne _08013078 ldr r0, _08013074 ldrh r1, [r0] movs r0, 0x60 ands r0, r1 cmp r0, 0 beq _08013078 _0801306C: movs r3, 0x2 b _0801307A .align 2, 0 _08013070: .4byte 0x02024a80 _08013074: .4byte 0x02024db8 _08013078: movs r3, 0x1 _0801307A: movs r0, 0x58 mov r1, r10 muls r1, r0 adds r0, r1, 0 ldr r2, _080130B0 adds r0, r2 adds r0, 0x20 ldrb r2, [r0] cmp r2, 0x21 bne _0801309A ldr r0, _080130B4 ldrh r1, [r0] movs r0, 0x7 ands r0, r1 cmp r0, 0 bne _080130AA _0801309A: cmp r2, 0x22 bne _080130BA ldr r0, _080130B4 ldrh r1, [r0] movs r0, 0x60 ands r0, r1 cmp r0, 0 beq _080130BA _080130AA: movs r7, 0x2 b _080130BC .align 2, 0 _080130B0: .4byte 0x02024a80 _080130B4: .4byte 0x02024db8 _080130B8: movs r3, 0x1 _080130BA: movs r7, 0x1 _080130BC: ldr r1, _08013100 movs r0, 0x58 mov r2, r9 muls r2, r0 adds r0, r2, 0 adds r4, r0, r1 ldrh r0, [r4, 0x6] muls r3, r0 ldr r2, _08013104 movs r1, 0x1B ldrsb r1, [r4, r1] lsls r1, 1 adds r0, r1, r2 ldrb r0, [r0] muls r0, r3 adds r2, 0x1 adds r1, r2 ldrb r1, [r1] bl __divsi3 mov r8, r0 ldrh r0, [r4, 0x2E] cmp r0, 0xAF bne _0801310C ldr r1, _08013108 mov r3, r9 lsls r0, r3, 3 subs r0, r3 lsls r0, 2 adds r0, r1 ldrb r6, [r0, 0x7] ldrb r5, [r0, 0x1A] b _08013120 .align 2, 0 _08013100: .4byte 0x02024a80 _08013104: .4byte gUnknown_08208244 _08013108: .4byte 0x02024df0 _0801310C: ldrh r0, [r4, 0x2E] bl itemid_get_x12 lsls r0, 24 lsrs r6, r0, 24 ldrh r0, [r4, 0x2E] bl itemid_get_quality lsls r0, 24 lsrs r5, r0, 24 _08013120: ldr r0, _080131DC ldrh r1, [r0] movs r0, 0x2 ands r0, r1 cmp r0, 0 bne _08013154 ldr r0, _080131E0 bl FlagGet lsls r0, 24 cmp r0, 0 beq _08013154 mov r0, r9 bl battle_side_get_owner lsls r0, 24 cmp r0, 0 bne _08013154 movs r0, 0x6E mov r1, r8 muls r1, r0 adds r0, r1, 0 movs r1, 0x64 bl __udivsi3 mov r8, r0 _08013154: cmp r6, 0x18 bne _0801315E mov r2, r8 lsrs r2, 1 mov r8, r2 _0801315E: ldr r1, _080131E4 movs r0, 0x58 mov r3, r9 muls r3, r0 adds r0, r3, 0 adds r1, 0x4C adds r0, r1 ldr r0, [r0] movs r1, 0x40 ands r0, r1 cmp r0, 0 beq _0801317C mov r0, r8 lsrs r0, 2 mov r8, r0 _0801317C: cmp r6, 0x1A bne _08013198 ldr r0, _080131E8 ldrh r4, [r0] lsls r0, r5, 16 subs r0, r5 movs r1, 0x64 bl __divsi3 cmp r4, r0 bge _08013198 movs r1, 0x1 negs r1, r1 mov r8, r1 _08013198: ldr r1, _080131E4 movs r0, 0x58 mov r2, r10 muls r2, r0 adds r0, r2, 0 adds r4, r0, r1 ldrh r0, [r4, 0x6] adds r3, r0, 0 muls r3, r7 ldr r2, _080131EC movs r1, 0x1B ldrsb r1, [r4, r1] lsls r1, 1 adds r0, r1, r2 ldrb r0, [r0] muls r0, r3 adds r2, 0x1 adds r1, r2 ldrb r1, [r1] bl __divsi3 adds r7, r0, 0 ldrh r0, [r4, 0x2E] cmp r0, 0xAF bne _080131F4 ldr r1, _080131F0 mov r3, r10 lsls r0, r3, 3 subs r0, r3 lsls r0, 2 adds r0, r1 ldrb r6, [r0, 0x7] ldrb r5, [r0, 0x1A] b _08013208 .align 2, 0 _080131DC: .4byte 0x020239f8 _080131E0: .4byte 0x00000809 _080131E4: .4byte 0x02024a80 _080131E8: .4byte 0x02024d1c _080131EC: .4byte gUnknown_08208244 _080131F0: .4byte 0x02024df0 _080131F4: ldrh r0, [r4, 0x2E] bl itemid_get_x12 lsls r0, 24 lsrs r6, r0, 24 ldrh r0, [r4, 0x2E] bl itemid_get_quality lsls r0, 24 lsrs r5, r0, 24 _08013208: ldr r0, _08013280 ldrh r1, [r0] movs r0, 0x2 ands r0, r1 cmp r0, 0 bne _08013238 ldr r0, _08013284 bl FlagGet lsls r0, 24 cmp r0, 0 beq _08013238 mov r0, r10 bl battle_side_get_owner lsls r0, 24 cmp r0, 0 bne _08013238 movs r0, 0x6E muls r0, r7 movs r1, 0x64 bl __udivsi3 adds r7, r0, 0 _08013238: cmp r6, 0x18 bne _0801323E lsrs r7, 1 _0801323E: ldr r2, _08013288 movs r0, 0x58 mov r1, r10 muls r1, r0 adds r0, r1, 0 adds r1, r2, 0 adds r1, 0x4C adds r0, r1 ldr r0, [r0] movs r1, 0x40 ands r0, r1 cmp r0, 0 beq _0801325A lsrs r7, 2 _0801325A: cmp r6, 0x1A bne _08013274 ldr r0, _0801328C ldrh r4, [r0] lsls r0, r5, 16 subs r0, r5 movs r1, 0x64 bl __divsi3 cmp r4, r0 bge _08013274 movs r7, 0x1 negs r7, r7 _08013274: ldr r2, [sp, 0x4] cmp r2, 0 beq _08013290 movs r3, 0 b _08013334 .align 2, 0 _08013280: .4byte 0x020239f8 _08013284: .4byte 0x00000809 _08013288: .4byte 0x02024a80 _0801328C: .4byte 0x02024d1c _08013290: ldr r0, _080132B0 mov r3, r9 adds r1, r3, r0 ldrb r1, [r1] adds r2, r0, 0 cmp r1, 0 bne _080132E4 ldr r0, _080132B4 lsls r1, r3, 4 adds r1, r0 ldrb r0, [r1] lsls r0, 29 cmp r0, 0 bge _080132B8 movs r3, 0xA5 b _080132E6 .align 2, 0 _080132B0: .4byte 0x02024c18 _080132B4: .4byte 0x02024d28 _080132B8: ldr r1, _080132D8 ldr r0, _080132DC add r0, r9 adds r0, r1 ldrb r0, [r0] lsls r0, 1 movs r1, 0x58 mov r3, r9 muls r3, r1 adds r1, r3, 0 adds r0, r1 ldr r1, _080132E0 adds r1, 0xC adds r0, r1 ldrh r3, [r0] b _080132E6 .align 2, 0 _080132D8: .4byte 0x02000000 _080132DC: .4byte 0x0001608c _080132E0: .4byte 0x02024a80 _080132E4: movs r3, 0 _080132E6: mov r1, r10 adds r0, r1, r2 ldrb r0, [r0] cmp r0, 0 bne _08013334 ldr r0, _08013304 lsls r1, 4 adds r1, r0 ldrb r0, [r1] lsls r0, 29 cmp r0, 0 bge _08013308 movs r2, 0xA5 b _08013336 .align 2, 0 _08013304: .4byte 0x02024d28 _08013308: ldr r1, _08013328 ldr r0, _0801332C add r0, r10 adds r0, r1 ldrb r0, [r0] lsls r0, 1 movs r1, 0x58 mov r2, r10 muls r2, r1 adds r1, r2, 0 adds r0, r1 ldr r1, _08013330 adds r1, 0xC adds r0, r1 ldrh r2, [r0] b _08013336 .align 2, 0 _08013328: .4byte 0x02000000 _0801332C: .4byte 0x0001608c _08013330: .4byte 0x02024a80 _08013334: movs r2, 0 _08013336: ldr r4, _08013380 lsls r0, r3, 1 adds r0, r3 lsls r0, 2 adds r0, r4 movs r1, 0x7 ldrsb r1, [r0, r1] lsls r3, r2, 1 cmp r1, 0 bne _0801335A adds r0, r3, r2 lsls r0, 2 adds r0, r4 ldrb r0, [r0, 0x7] lsls r0, 24 asrs r0, 24 cmp r0, 0 beq _08013398 _0801335A: adds r0, r3, r2 lsls r0, 2 adds r0, r4 ldrb r0, [r0, 0x7] lsls r0, 24 asrs r0, 24 cmp r1, r0 bne _0801338E cmp r8, r7 bne _08013384 bl Random movs r1, 0x1 ands r1, r0 cmp r1, 0 beq _08013384 movs r3, 0x2 b _080133B4 .align 2, 0 _08013380: .4byte gBattleMoves _08013384: cmp r8, r7 bcs _080133B6 movs r0, 0x1 str r0, [sp, 0x8] b _080133B6 _0801338E: cmp r1, r0 bge _080133B6 movs r1, 0x1 str r1, [sp, 0x8] b _080133B6 _08013398: cmp r8, r7 bne _080133AE bl Random movs r1, 0x1 ands r1, r0 cmp r1, 0 beq _080133AE movs r2, 0x2 str r2, [sp, 0x8] b _080133B6 _080133AE: cmp r8, r7 bcs _080133B6 movs r3, 0x1 _080133B4: str r3, [sp, 0x8] _080133B6: ldr r0, [sp, 0x8] add sp, 0xC pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 thumb_func_end b_first_side thumb_func_start sub_80133C8 sub_80133C8: @ 80133C8 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} movs r3, 0 ldr r0, _0801341C ldrh r1, [r0] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _08013434 ldr r0, _08013420 strb r3, [r0] ldr r4, _08013424 mov r8, r0 ldrb r0, [r4] cmp r3, r0 bcc _080133F0 b _08013622 _080133F0: ldr r7, _08013428 ldr r6, _0801342C mov r2, r8 ldr r5, _08013430 _080133F8: adds r1, r3, r7 ldrb r0, [r2] adds r0, r6 ldrb r0, [r0] strb r0, [r1] adds r1, r3, r5 ldrb r0, [r2] strb r0, [r1] adds r3, 0x1 ldrb r0, [r2] adds r0, 0x1 strb r0, [r2] lsls r0, 24 lsrs r0, 24 ldrb r1, [r4] cmp r0, r1 bcc _080133F8 b _08013622 .align 2, 0 _0801341C: .4byte 0x020239f8 _08013420: .4byte 0x02024a60 _08013424: .4byte 0x02024a68 _08013428: .4byte 0x02024a76 _0801342C: .4byte 0x02024c18 _08013430: .4byte 0x02024a7a _08013434: movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _08013484 ldr r0, _08013478 strb r3, [r0] ldr r1, _0801347C mov r8, r0 adds r2, r1, 0 ldrb r2, [r2] cmp r3, r2 bcs _08013494 ldr r0, _08013480 ldrb r1, [r0] adds r4, r0, 0 cmp r1, 0x3 beq _08013492 _08013456: mov r7, r8 ldrb r0, [r7] adds r0, 0x1 strb r0, [r7] lsls r0, 24 lsrs r0, 24 ldr r1, _0801347C ldrb r1, [r1] cmp r0, r1 bcs _08013494 ldrb r0, [r7] adds r0, r4 ldrb r0, [r0] cmp r0, 0x3 bne _08013456 b _08013492 .align 2, 0 _08013478: .4byte 0x02024a60 _0801347C: .4byte 0x02024a68 _08013480: .4byte 0x02024c18 _08013484: ldr r0, _080134FC ldrb r0, [r0] ldr r2, _08013500 mov r8, r2 cmp r0, 0x3 bne _08013494 strb r3, [r2] _08013492: movs r3, 0x5 _08013494: cmp r3, 0x5 bne _08013520 ldr r6, _08013504 ldr r1, _080134FC mov r3, r8 ldrb r0, [r3] adds r0, r1 ldrb r0, [r0] strb r0, [r6] ldr r2, _08013508 ldrb r0, [r3] strb r0, [r2] movs r3, 0x1 movs r5, 0 adds r4, r1, 0 ldr r7, _0801350C mov r9, r7 ldr r0, _08013510 mov r12, r0 ldr r1, _08013514 mov r10, r1 ldr r7, _08013518 ldrb r7, [r7] cmp r5, r7 bge _080134EC adds r7, r6, 0 adds r6, r4, 0 adds r4, r2, 0 ldr r2, _08013518 _080134CE: mov r0, r8 ldrb r0, [r0] cmp r5, r0 beq _080134E4 adds r1, r3, r7 adds r0, r5, r6 ldrb r0, [r0] strb r0, [r1] adds r0, r3, r4 strb r5, [r0] adds r3, 0x1 _080134E4: adds r5, 0x1 ldrb r1, [r2] cmp r5, r1 blt _080134CE _080134EC: mov r2, r12 mov r3, r9 str r2, [r3] ldr r1, _0801351C add r1, r10 movs r0, 0 strb r0, [r1] b _08013632 .align 2, 0 _080134FC: .4byte 0x02024c18 _08013500: .4byte 0x02024a60 _08013504: .4byte 0x02024a76 _08013508: .4byte 0x02024a7a _0801350C: .4byte 0x030042d4 _08013510: .4byte bc_80154A0 _08013514: .4byte 0x02000000 _08013518: .4byte 0x02024a68 _0801351C: .4byte 0x0001601d _08013520: movs r0, 0 mov r7, r8 strb r0, [r7] ldr r1, _080135B0 ldrb r0, [r1] cmp r0, 0 beq _08013566 ldr r6, _080135B4 mov r2, r8 ldr r5, _080135B8 ldr r4, _080135BC _08013536: ldrb r0, [r2] adds r0, r6 ldrb r1, [r0] subs r0, r1, 0x1 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bhi _08013554 adds r0, r3, r5 strb r1, [r0] adds r1, r3, r4 mov r7, r8 ldrb r0, [r7] strb r0, [r1] adds r3, 0x1 _08013554: ldrb r0, [r2] adds r0, 0x1 strb r0, [r2] lsls r0, 24 lsrs r0, 24 ldr r1, _080135B0 ldrb r1, [r1] cmp r0, r1 bcc _08013536 _08013566: movs r0, 0 mov r2, r8 strb r0, [r2] ldr r7, _080135B0 ldrb r0, [r7] cmp r0, 0 beq _080135AA ldr r6, _080135B4 ldr r5, _080135B8 ldr r4, _080135BC _0801357A: ldrb r0, [r2] adds r0, r6 ldrb r1, [r0] subs r0, r1, 0x1 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bls _08013598 adds r0, r3, r5 strb r1, [r0] adds r1, r3, r4 mov r7, r8 ldrb r0, [r7] strb r0, [r1] adds r3, 0x1 _08013598: ldrb r0, [r2] adds r0, 0x1 strb r0, [r2] lsls r0, 24 lsrs r0, 24 ldr r1, _080135B0 ldrb r1, [r1] cmp r0, r1 bcc _0801357A _080135AA: movs r5, 0 b _08013618 .align 2, 0 _080135B0: .4byte 0x02024a68 _080135B4: .4byte 0x02024c18 _080135B8: .4byte 0x02024a76 _080135BC: .4byte 0x02024a7a _080135C0: adds r4, r5, 0x1 adds r7, r4, 0 ldrb r1, [r1] cmp r7, r1 bge _08013616 ldr r6, _08013640 lsls r2, r5, 24 mov r8, r2 _080135D0: ldr r0, _08013644 adds r1, r5, r0 ldrb r3, [r1] adds r0, r4, r0 ldrb r1, [r0] adds r0, r5, r6 ldrb r2, [r0] cmp r2, 0x1 beq _0801360C adds r0, r4, r6 ldrb r0, [r0] cmp r0, 0x1 beq _0801360C cmp r2, 0x2 beq _0801360C cmp r0, 0x2 beq _0801360C adds r0, r3, 0 movs r2, 0 bl b_first_side lsls r0, 24 cmp r0, 0 beq _0801360C lsls r1, r4, 24 lsrs r1, 24 mov r3, r8 lsrs r0, r3, 24 bl sub_8012FBC _0801360C: adds r4, 0x1 ldr r0, _08013648 ldrb r0, [r0] cmp r4, r0 blt _080135D0 _08013616: adds r5, r7, 0 _08013618: ldr r1, _08013648 ldrb r0, [r1] subs r0, 0x1 cmp r5, r0 blt _080135C0 _08013622: ldr r1, _0801364C ldr r0, _08013650 str r0, [r1] ldr r0, _08013654 ldr r7, _08013658 adds r0, r7 movs r1, 0 strb r1, [r0] _08013632: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08013640: .4byte 0x02024a76 _08013644: .4byte 0x02024a7a _08013648: .4byte 0x02024a68 _0801364C: .4byte 0x030042d4 _08013650: .4byte bc_80154A0 _08013654: .4byte 0x02000000 _08013658: .4byte 0x0001601d thumb_func_end sub_80133C8 thumb_func_start sub_801365C sub_801365C: @ 801365C push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} lsls r0, 24 lsrs r0, 24 mov r9, r0 ldr r1, _080136B4 movs r0, 0 strb r0, [r1] ldr r0, _080136B8 ldrb r2, [r0] adds r5, r1, 0 cmp r2, 0 beq _08013754 ldr r7, _080136BC adds r6, r5, 0 ldr r0, _080136C0 mov r12, r0 ldr r1, _080136C4 mov r8, r1 mov r10, r8 _0801368A: mov r2, r9 cmp r2, 0 beq _080136C8 ldrb r1, [r6] lsls r1, 4 adds r1, r7 ldrb r2, [r1] movs r0, 0x2 negs r0, r0 ands r0, r2 strb r0, [r1] ldrb r1, [r6] lsls r1, 4 adds r1, r7 ldrb r2, [r1] movs r0, 0x3 negs r0, r0 ands r0, r2 strb r0, [r1] b _08013724 .align 2, 0 _080136B4: .4byte 0x02024a60 _080136B8: .4byte 0x02024a68 _080136BC: .4byte 0x02024d28 _080136C0: .4byte 0x02024ad0 _080136C4: .4byte 0x02024ca8 _080136C8: ldrb r0, [r6] lsls r0, 4 adds r2, r0, r7 movs r1, 0 mov r4, r10 movs r3, 0 _080136D4: adds r0, r2, r1 strb r3, [r0] adds r1, 0x1 cmp r1, 0xF bls _080136D4 ldrb r1, [r5] lsls r0, r1, 3 subs r0, r1 lsls r0, 2 adds r1, r0, r4 ldrb r0, [r1, 0x16] cmp r0, 0 beq _080136F2 subs r0, 0x1 strb r0, [r1, 0x16] _080136F2: ldrb r1, [r5] lsls r0, r1, 3 subs r0, r1 lsls r0, 2 adds r1, r0, r4 ldrb r0, [r1, 0x19] cmp r0, 0 beq _08013724 subs r0, 0x1 strb r0, [r1, 0x19] ldrb r2, [r5] lsls r0, r2, 3 subs r0, r2 lsls r0, 2 adds r0, r4 ldrb r0, [r0, 0x19] cmp r0, 0 bne _08013724 movs r0, 0x58 muls r2, r0 add r2, r12 ldr r0, [r2] ldr r1, _0801376C ands r0, r1 str r0, [r2] _08013724: ldrb r2, [r5] lsls r0, r2, 3 subs r0, r2 lsls r0, 2 add r0, r8 ldrb r0, [r0, 0xA] cmp r0, 0 bne _08013742 movs r0, 0x58 muls r2, r0 add r2, r12 ldr r0, [r2] ldr r1, _08013770 ands r0, r1 str r0, [r2] _08013742: ldrb r0, [r5] adds r0, 0x1 strb r0, [r5] lsls r0, 24 lsrs r0, 24 ldr r1, _08013774 ldrb r1, [r1] cmp r0, r1 bcc _0801368A _08013754: movs r0, 0 ldr r2, _08013778 strb r0, [r2, 0x8] strb r0, [r2, 0x14] pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0801376C: .4byte 0xffbfffff _08013770: .4byte 0xfeffffff _08013774: .4byte 0x02024a68 _08013778: .4byte 0x02024c80 thumb_func_end sub_801365C thumb_func_start sub_801377C sub_801377C: @ 801377C push {r4-r6,lr} ldr r2, _080137C0 movs r0, 0 strb r0, [r2] ldr r0, _080137C4 ldrb r1, [r0] adds r6, r0, 0 cmp r1, 0 beq _080137BA adds r3, r2, 0 movs r4, 0 ldr r5, _080137C8 _08013794: ldrb r1, [r3] lsls r0, r1, 2 adds r0, r1 lsls r0, 2 adds r2, r0, r5 movs r1, 0 _080137A0: adds r0, r2, r1 strb r4, [r0] adds r1, 0x1 cmp r1, 0x13 bls _080137A0 ldrb r0, [r3] adds r0, 0x1 strb r0, [r3] lsls r0, 24 lsrs r0, 24 ldrb r1, [r6] cmp r0, r1 bcc _08013794 _080137BA: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080137C0: .4byte 0x02024a60 _080137C4: .4byte 0x02024a68 _080137C8: .4byte 0x02024d68 thumb_func_end sub_801377C thumb_func_start bc_80154A0 bc_80154A0: @ 80137CC push {r4-r7,lr} ldr r0, _08013850 ldr r0, [r0] movs r1, 0x80 lsls r1, 8 ands r0, r1 cmp r0, 0 bne _08013884 ldr r0, _08013854 ldr r1, _08013858 adds r2, r0, r1 ldr r0, _0801385C ldrb r1, [r2] adds r7, r0, 0 ldrb r0, [r7] cmp r1, r0 bcs _08013884 ldr r6, _08013860 ldr r5, _08013864 adds r4, r2, 0 movs r1, 0x84 lsls r1, 1 mov r12, r1 _080137FA: ldrb r0, [r4] strb r0, [r5] strb r0, [r6] adds r0, 0x1 strb r0, [r4] ldr r1, _08013868 ldrb r3, [r6] lsls r0, r3, 1 adds r0, r1 ldrh r0, [r0] cmp r0, r12 bne _0801387C ldr r1, _0801386C movs r0, 0x58 muls r0, r3 adds r1, 0x4C adds r0, r1 ldr r0, [r0] movs r1, 0x7 ands r0, r1 cmp r0, 0 bne _0801387C ldr r2, _08013870 ldrb r1, [r5] lsls r0, r1, 3 subs r0, r1 lsls r0, 2 adds r0, r2 ldrb r0, [r0, 0x18] lsls r0, 31 cmp r0, 0 bne _0801387C ldr r0, _08013874 lsls r1, r3, 4 adds r1, r0 ldrb r0, [r1] lsls r0, 29 cmp r0, 0 blt _0801387C ldr r0, _08013878 bl b_call_bc_move_exec b _080138BE .align 2, 0 _08013850: .4byte 0x02024c6c _08013854: .4byte 0x02000000 _08013858: .4byte 0x0001601d _0801385C: .4byte 0x02024a68 _08013860: .4byte 0x02024a60 _08013864: .4byte 0x02024c07 _08013868: .4byte 0x02024c60 _0801386C: .4byte 0x02024a80 _08013870: .4byte 0x02024ca8 _08013874: .4byte 0x02024d28 _08013878: .4byte gUnknown_081D94DA _0801387C: ldrb r0, [r4] ldrb r2, [r7] cmp r0, r2 bcc _080137FA _08013884: bl b_clear_atk_up_if_hit_flag_unless_enraged ldr r1, _080138C4 movs r0, 0 strb r0, [r1] ldr r1, _080138C8 ldr r0, _080138CC movs r2, 0 ldrb r0, [r0] strb r0, [r1] ldr r0, _080138D0 movs r3, 0 strh r2, [r0] ldr r1, _080138D4 ldr r2, _080138D8 adds r0, r1, r2 strb r3, [r0] ldr r2, _080138DC ldr r0, _080138E0 str r0, [r2] ldr r0, _080138E4 strb r3, [r0, 0x3] strb r3, [r0, 0x4] ldr r2, _080138E8 adds r0, r1, r2 strb r3, [r0] ldr r0, _080138EC adds r1, r0 strb r3, [r1] _080138BE: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080138C4: .4byte 0x02024a7e _080138C8: .4byte 0x02024a7f _080138CC: .4byte 0x02024a76 _080138D0: .4byte 0x02024dec _080138D4: .4byte 0x02000000 _080138D8: .4byte 0x0001601c _080138DC: .4byte 0x030042d4 _080138E0: .4byte sub_80138F0 _080138E4: .4byte 0x02024d1e _080138E8: .4byte 0x00016112 _080138EC: .4byte 0x00017130 thumb_func_end bc_80154A0 thumb_func_start sub_80138F0 sub_80138F0: @ 80138F0 push {r4-r6,lr} ldr r6, _08013944 ldrb r0, [r6] ldr r2, _08013948 cmp r0, 0 beq _08013900 movs r0, 0xC strb r0, [r2] _08013900: ldr r1, _0801394C ldr r4, _08013950 ldrb r0, [r4] ldr r3, _08013954 adds r5, r1, r3 strb r0, [r5] ldr r1, _08013958 ldrb r0, [r2] lsls r0, 2 adds r0, r1 ldr r0, [r0] bl _call_via_r0 ldr r0, _0801395C ldrb r1, [r4] ldrb r0, [r0] cmp r1, r0 bcc _08013970 ldr r2, _08013960 ldr r0, [r2] ldr r1, _08013964 ands r0, r1 str r0, [r2] ldr r3, _08013968 ldr r2, _0801396C ldrb r1, [r6] movs r0, 0x7F ands r0, r1 lsls r0, 2 adds r0, r2 ldr r0, [r0] str r0, [r3] b _08013984 .align 2, 0 _08013944: .4byte 0x02024d26 _08013948: .4byte 0x02024a7f _0801394C: .4byte 0x02000000 _08013950: .4byte 0x02024a7e _08013954: .4byte 0x00016057 _08013958: .4byte gUnknown_081FA640 _0801395C: .4byte 0x02024a68 _08013960: .4byte 0x02024c6c _08013964: .4byte 0xffefffff _08013968: .4byte 0x030042d4 _0801396C: .4byte gUnknown_081FA678 _08013970: ldrb r0, [r5] cmp r0, r1 beq _08013984 ldr r2, _0801398C ldr r0, [r2] ldr r1, _08013990 ands r0, r1 ldr r1, _08013994 ands r0, r1 str r0, [r2] _08013984: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0801398C: .4byte 0x02024c6c _08013990: .4byte 0xfffffdff _08013994: .4byte 0xfff7ffff thumb_func_end sub_80138F0 thumb_func_start sub_8013998 sub_8013998: @ 8013998 push {r4,lr} ldr r1, _080139D0 movs r0, 0 strb r0, [r1] ldr r0, _080139D4 ldrh r1, [r0] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _080139EC ldr r1, _080139D8 ldr r4, _080139DC ldrb r0, [r4] strb r0, [r1] movs r0, 0 bl battle_get_side_with_given_state ldr r1, _080139E0 strb r0, [r1] ldr r1, _080139E4 ldr r0, _080139E8 str r0, [r1] ldrb r1, [r4] movs r0, 0x7F ands r0, r1 strb r0, [r4] b _08013B48 .align 2, 0 _080139D0: .4byte 0x02024a7f _080139D4: .4byte 0x020239f8 _080139D8: .4byte 0x030041c0 _080139DC: .4byte 0x02024d26 _080139E0: .4byte 0x02024c07 _080139E4: .4byte 0x02024c10 _080139E8: .4byte gUnknown_081D8E02 _080139EC: movs r0, 0x90 lsls r0, 4 ands r0, r1 cmp r0, 0 beq _08013A04 ldr r1, _080139FC ldr r0, _08013A00 b _08013B46 .align 2, 0 _080139FC: .4byte 0x02024c10 _08013A00: .4byte gUnknown_081D8E0D _08013A04: movs r0, 0xA ands r0, r1 cmp r0, 0x8 beq _08013A0E b _08013B42 _08013A0E: bl sub_80325B8 ldr r1, _08013A3C ldr r0, _08013A40 str r0, [r1] ldr r2, _08013A44 ldr r0, _08013A48 ldrh r1, [r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r2 ldrb r0, [r0, 0x1] subs r0, 0x2 cmp r0, 0x31 bls _08013A30 b _08013B38 _08013A30: lsls r0, 2 ldr r1, _08013A4C adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08013A3C: .4byte 0x02024c10 _08013A40: .4byte gUnknown_081D8DBE _08013A44: .4byte gTrainers _08013A48: .4byte 0x0202ff5e _08013A4C: .4byte _08013A50 .align 2, 0 _08013A50: .4byte _08013B24 .4byte _08013B24 .4byte _08013B24 .4byte _08013B38 .4byte _08013B38 .4byte _08013B38 .4byte _08013B38 .4byte _08013B38 .4byte _08013B38 .4byte _08013B38 .4byte _08013B38 .4byte _08013B38 .4byte _08013B38 .4byte _08013B38 .4byte _08013B38 .4byte _08013B38 .4byte _08013B38 .4byte _08013B38 .4byte _08013B38 .4byte _08013B38 .4byte _08013B38 .4byte _08013B38 .4byte _08013B18 .4byte _08013B2E .4byte _08013B38 .4byte _08013B38 .4byte _08013B38 .4byte _08013B38 .4byte _08013B38 .4byte _08013B38 .4byte _08013B18 .4byte _08013B38 .4byte _08013B38 .4byte _08013B38 .4byte _08013B38 .4byte _08013B38 .4byte _08013B38 .4byte _08013B38 .4byte _08013B38 .4byte _08013B38 .4byte _08013B38 .4byte _08013B38 .4byte _08013B38 .4byte _08013B38 .4byte _08013B38 .4byte _08013B38 .4byte _08013B38 .4byte _08013B24 .4byte _08013B24 .4byte _08013B24 _08013B18: ldr r0, _08013B20 bl sub_8075474 b _08013B48 .align 2, 0 _08013B20: .4byte 0x00000163 _08013B24: movs r0, 0xD4 lsls r0, 1 bl sub_8075474 b _08013B48 _08013B2E: movs r0, 0xB1 lsls r0, 1 bl sub_8075474 b _08013B48 _08013B38: movs r0, 0xCE lsls r0, 1 bl sub_8075474 b _08013B48 _08013B42: ldr r1, _08013B54 ldr r0, _08013B58 _08013B46: str r0, [r1] _08013B48: ldr r1, _08013B5C ldr r0, _08013B60 str r0, [r1] pop {r4} pop {r0} bx r0 .align 2, 0 _08013B54: .4byte 0x02024c10 _08013B58: .4byte gUnknown_081D8DCE _08013B5C: .4byte 0x030042d4 _08013B60: .4byte sub_8013C9C thumb_func_end sub_8013998 thumb_func_start sub_8013B64 sub_8013B64: @ 8013B64 push {r4,lr} ldr r1, _08013B9C movs r0, 0 strb r0, [r1] ldr r0, _08013BA0 ldrh r1, [r0] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _08013BB8 ldr r1, _08013BA4 ldr r4, _08013BA8 ldrb r0, [r4] strb r0, [r1] movs r0, 0 bl battle_get_side_with_given_state ldr r1, _08013BAC strb r0, [r1] ldr r1, _08013BB0 ldr r0, _08013BB4 str r0, [r1] ldrb r1, [r4] movs r0, 0x7F ands r0, r1 strb r0, [r4] b _08013BBE .align 2, 0 _08013B9C: .4byte 0x02024a7f _08013BA0: .4byte 0x020239f8 _08013BA4: .4byte 0x030041c0 _08013BA8: .4byte 0x02024d26 _08013BAC: .4byte 0x02024c07 _08013BB0: .4byte 0x02024c10 _08013BB4: .4byte gUnknown_081D8E02 _08013BB8: ldr r1, _08013BCC ldr r0, _08013BD0 str r0, [r1] _08013BBE: ldr r1, _08013BD4 ldr r0, _08013BD8 str r0, [r1] pop {r4} pop {r0} bx r0 .align 2, 0 _08013BCC: .4byte 0x02024c10 _08013BD0: .4byte gUnknown_081D8DD1 _08013BD4: .4byte 0x030042d4 _08013BD8: .4byte sub_8013C9C thumb_func_end sub_8013B64 thumb_func_start sub_8013BDC sub_8013BDC: @ 8013BDC push {lr} ldr r1, _08013C04 movs r0, 0 strb r0, [r1] ldr r1, _08013C08 ldr r0, _08013C0C ldrb r0, [r0] lsls r0, 4 adds r0, r1 ldrb r0, [r0, 0x1] lsls r0, 27 lsrs r0, 30 cmp r0, 0x1 beq _08013C18 cmp r0, 0x2 beq _08013C28 ldr r1, _08013C10 ldr r0, _08013C14 b _08013C2C .align 2, 0 _08013C04: .4byte 0x02024a7f _08013C08: .4byte 0x02024d28 _08013C0C: .4byte 0x02024c07 _08013C10: .4byte 0x02024c10 _08013C14: .4byte gUnknown_081D8E29 _08013C18: ldr r1, _08013C20 ldr r0, _08013C24 b _08013C2C .align 2, 0 _08013C20: .4byte 0x02024c10 _08013C24: .4byte gUnknown_081D8E14 _08013C28: ldr r1, _08013C38 ldr r0, _08013C3C _08013C2C: str r0, [r1] ldr r1, _08013C40 ldr r0, _08013C44 str r0, [r1] pop {r0} bx r0 .align 2, 0 _08013C38: .4byte 0x02024c10 _08013C3C: .4byte gUnknown_081D8E22 _08013C40: .4byte 0x030042d4 _08013C44: .4byte sub_8013C9C thumb_func_end sub_8013BDC thumb_func_start sub_8013C48 sub_8013C48: @ 8013C48 ldr r1, _08013C7C movs r0, 0 strb r0, [r1] ldr r1, _08013C80 movs r0, 0xFD strb r0, [r1] movs r0, 0x7 strb r0, [r1, 0x1] ldr r2, _08013C84 ldrb r0, [r2] strb r0, [r1, 0x2] ldr r3, _08013C88 ldrb r0, [r2] lsls r0, 1 adds r0, r3 ldrh r0, [r0] strb r0, [r1, 0x3] movs r0, 0xFF strb r0, [r1, 0x4] ldr r1, _08013C8C ldr r0, _08013C90 str r0, [r1] ldr r1, _08013C94 ldr r0, _08013C98 str r0, [r1] bx lr .align 2, 0 _08013C7C: .4byte 0x02024a7f _08013C80: .4byte 0x030041c0 _08013C84: .4byte 0x02024c07 _08013C88: .4byte 0x02024a6a _08013C8C: .4byte 0x02024c10 _08013C90: .4byte gUnknown_081D8E30 _08013C94: .4byte 0x030042d4 _08013C98: .4byte sub_8013C9C thumb_func_end sub_8013C48 thumb_func_start sub_8013C9C sub_8013C9C: @ 8013C9C push {r4-r7,lr} ldr r0, _08013D00 ldrb r0, [r0] subs r0, 0xB lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bhi _08013D7C ldr r0, _08013D04 ldrh r0, [r0] ldr r1, _08013D08 ands r1, r0 cmp r1, 0 bne _08013D4C ldr r2, _08013D0C strb r1, [r2] ldr r0, _08013D10 ldrb r0, [r0] cmp r1, r0 bcs _08013D48 adds r4, r2, 0 ldr r6, _08013D14 movs r5, 0x58 adds r7, r6, 0 adds r7, 0x30 _08013CCE: ldrb r0, [r4] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 bne _08013D36 ldr r2, _08013D18 ldrh r0, [r2, 0x6] cmp r0, 0 bne _08013D1C ldrb r0, [r4] muls r0, r5 adds r0, r6 ldrh r0, [r0] strh r0, [r2, 0x6] ldrb r0, [r4] adds r1, r0, 0 muls r1, r5 adds r1, r7 adds r0, r2, 0 adds r0, 0x8 bl StringCopy b _08013D36 .align 2, 0 _08013D00: .4byte 0x02024a7f _08013D04: .4byte 0x020239f8 _08013D08: .4byte 0x00000b92 _08013D0C: .4byte 0x02024a60 _08013D10: .4byte 0x02024a68 _08013D14: .4byte 0x02024a80 _08013D18: .4byte 0x030042e0 _08013D1C: ldrb r0, [r4] muls r0, r5 adds r0, r6 ldrh r0, [r0] strh r0, [r2, 0x26] ldrb r0, [r4] adds r1, r0, 0 muls r1, r5 adds r1, r7 adds r0, r2, 0 adds r0, 0x14 bl StringCopy _08013D36: ldrb r0, [r4] adds r0, 0x1 strb r0, [r4] ldr r1, _08013D68 lsls r0, 24 lsrs r0, 24 ldrb r1, [r1] cmp r0, r1 bcc _08013CCE _08013D48: bl sub_80BDEC8 _08013D4C: movs r0, 0x3 bl BeginFastPaletteFade movs r0, 0x5 bl sub_8074D28 ldr r1, _08013D6C ldr r0, _08013D70 str r0, [r1] ldr r1, _08013D74 ldr r0, _08013D78 str r0, [r1] b _08013D96 .align 2, 0 _08013D68: .4byte 0x02024a68 _08013D6C: .4byte 0x030042d4 _08013D70: .4byte sub_8013DA8 _08013D74: .4byte 0x03005e94 _08013D78: .4byte sub_800F808 _08013D7C: ldr r0, _08013D9C ldr r0, [r0] cmp r0, 0 bne _08013D96 ldr r1, _08013DA0 ldr r0, _08013DA4 ldr r0, [r0] ldrb r0, [r0] lsls r0, 2 adds r0, r1 ldr r0, [r0] bl _call_via_r0 _08013D96: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08013D9C: .4byte 0x02024a64 _08013DA0: .4byte gUnknown_081FA73C _08013DA4: .4byte 0x02024c10 thumb_func_end sub_8013C9C thumb_func_start sub_8013DA8 sub_8013DA8: @ 8013DA8 push {lr} ldr r0, _08013DD0 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _08013DEA bl ResetSpriteData ldr r0, _08013DD4 ldrb r0, [r0] cmp r0, 0 beq _08013DCA ldr r0, _08013DD8 ldrb r0, [r0] cmp r0, 0x1 beq _08013DE4 _08013DCA: ldr r1, _08013DDC ldr r0, _08013DE0 b _08013DE8 .align 2, 0 _08013DD0: .4byte 0x0202f388 _08013DD4: .4byte 0x03004324 _08013DD8: .4byte 0x02024d26 _08013DDC: .4byte 0x030042d4 _08013DE0: .4byte c4_overworld _08013DE4: ldr r1, _08013DF0 ldr r0, _08013DF4 _08013DE8: str r0, [r1] _08013DEA: pop {r0} bx r0 .align 2, 0 _08013DF0: .4byte 0x030042d4 _08013DF4: .4byte bc_evolution_cutscene thumb_func_end sub_8013DA8 thumb_func_start bc_evolution_cutscene bc_evolution_cutscene: @ 8013DF8 push {r4,r5,lr} ldr r0, _08013E4C ldrb r1, [r0] adds r3, r0, 0 cmp r1, 0 beq _08013E6E _08013E04: movs r5, 0 _08013E06: ldrb r2, [r3] ldr r0, _08013E50 lsls r1, r5, 2 adds r1, r0 ldr r1, [r1] adds r0, r2, 0 ands r0, r1 cmp r0, 0 beq _08013E60 bics r2, r1 strb r2, [r3] movs r0, 0x64 adds r1, r5, 0 muls r1, r0 ldr r0, _08013E54 adds r4, r1, r0 adds r0, r4, 0 movs r1, 0 bl GetEvolutionTargetSpecies lsls r0, 16 lsrs r2, r0, 16 cmp r2, 0 beq _08013E60 ldr r0, _08013E58 ldr r1, _08013E5C str r1, [r0] lsls r3, r5, 24 lsrs r3, 24 adds r0, r4, 0 adds r1, r2, 0 movs r2, 0x81 bl evolution_cutscene b _08013E74 .align 2, 0 _08013E4C: .4byte 0x03004324 _08013E50: .4byte gUnknown_0820872C _08013E54: .4byte 0x03004360 _08013E58: .4byte 0x030042d4 _08013E5C: .4byte sub_8013E88 _08013E60: adds r5, 0x1 ldr r3, _08013E7C cmp r5, 0x5 ble _08013E06 ldrb r0, [r3] cmp r0, 0 bne _08013E04 _08013E6E: ldr r1, _08013E80 ldr r0, _08013E84 str r0, [r1] _08013E74: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08013E7C: .4byte 0x03004324 _08013E80: .4byte 0x030042d4 _08013E84: .4byte c4_overworld thumb_func_end bc_evolution_cutscene thumb_func_start sub_8013E88 sub_8013E88: @ 8013E88 push {lr} ldr r0, _08013EA0 ldr r1, [r0, 0x4] ldr r0, _08013EA4 cmp r1, r0 bne _08013E9A ldr r1, _08013EA8 ldr r0, _08013EAC str r0, [r1] _08013E9A: pop {r0} bx r0 .align 2, 0 _08013EA0: .4byte 0x03001770 _08013EA4: .4byte sub_800F808 _08013EA8: .4byte 0x030042d4 _08013EAC: .4byte bc_evolution_cutscene thumb_func_end sub_8013E88 thumb_func_start c4_overworld c4_overworld: @ 8013EB0 push {r4-r6,lr} ldr r5, _08013F30 ldrh r1, [r5] movs r6, 0x2 adds r0, r6, 0 ands r0, r1 cmp r0, 0 bne _08013ECE ldr r4, _08013F34 adds r0, r4, 0 bl sub_8040048 adds r0, r4, 0 bl atkE5_pickupitemcalculation _08013ECE: ldrh r4, [r5] adds r0, r6, 0 ands r0, r4 cmp r0, 0 beq _08013EE0 ldr r0, _08013F38 ldrb r0, [r0] cmp r0, 0 bne _08013F2A _08013EE0: ldr r1, _08013F3C ldr r5, _08013F40 ldrb r0, [r5] strh r0, [r1] ldr r3, _08013F44 ldr r0, _08013F48 adds r2, r3, r0 ldrb r1, [r2] movs r0, 0x3 negs r0, r0 ands r0, r1 strb r0, [r2] ldr r0, _08013F4C ldr r0, [r0] str r0, [r3] movs r0, 0x80 lsls r0, 3 ands r0, r4 cmp r0, 0 beq _08013F1C ldr r0, _08013F50 bl sub_8134504 ldrb r0, [r5] cmp r0, 0x1 beq _08013F18 cmp r0, 0x7 bne _08013F1C _08013F18: bl sub_813452C _08013F1C: movs r0, 0x5A bl m4aSongNumStop ldr r0, _08013F44 ldr r0, [r0, 0x8] bl SetMainCallback2 _08013F2A: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08013F30: .4byte 0x020239f8 _08013F34: .4byte 0x03004360 _08013F38: .4byte 0x03002fa4 _08013F3C: .4byte 0x0202e8dc _08013F40: .4byte 0x02024d26 _08013F44: .4byte 0x03001770 _08013F48: .4byte 0x0000043d _08013F4C: .4byte 0x030042d0 _08013F50: .4byte 0x030045c0 thumb_func_end c4_overworld thumb_func_start sub_8013F54 sub_8013F54: @ 8013F54 push {lr} ldr r0, _08013F84 ldrb r0, [r0] subs r0, 0xB lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bhi _08013F90 ldr r2, _08013F88 adds r1, r2, 0 adds r1, 0x20 ldrb r0, [r1] cmp r0, 0 beq _08013F74 subs r0, 0x1 strb r0, [r1] _08013F74: ldr r0, _08013F8C ldrb r1, [r1] lsls r1, 2 adds r1, r2 ldr r1, [r1] str r1, [r0] b _08013FAA .align 2, 0 _08013F84: .4byte 0x02024a7f _08013F88: .4byte 0x02017140 _08013F8C: .4byte 0x030042d4 _08013F90: ldr r0, _08013FB0 ldr r0, [r0] cmp r0, 0 bne _08013FAA ldr r1, _08013FB4 ldr r0, _08013FB8 ldr r0, [r0] ldrb r0, [r0] lsls r0, 2 adds r0, r1 ldr r0, [r0] bl _call_via_r0 _08013FAA: pop {r0} bx r0 .align 2, 0 _08013FB0: .4byte 0x02024a64 _08013FB4: .4byte gUnknown_081FA73C _08013FB8: .4byte 0x02024c10 thumb_func_end sub_8013F54 thumb_func_start sub_8013FBC sub_8013FBC: @ 8013FBC push {lr} ldr r0, _08013FDC ldr r0, [r0] cmp r0, 0 bne _08013FD8 ldr r1, _08013FE0 ldr r0, _08013FE4 ldr r0, [r0] ldrb r0, [r0] lsls r0, 2 adds r0, r1 ldr r0, [r0] bl _call_via_r0 _08013FD8: pop {r0} bx r0 .align 2, 0 _08013FDC: .4byte 0x02024a64 _08013FE0: .4byte gUnknown_081FA73C _08013FE4: .4byte 0x02024c10 thumb_func_end sub_8013FBC thumb_func_start sub_8013FE8 sub_8013FE8: @ 8013FE8 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0xC movs r0, 0x4 str r0, [sp] ldr r7, _08014028 ldr r1, _0801402C ldr r0, _08014030 ldrb r0, [r0] adds r0, r1 ldrb r0, [r0] strb r0, [r7] ldr r1, _08014034 mov r10, r1 ldr r0, _08014038 add r0, r10 ldrb r2, [r0] ldr r1, _0801403C ldrb r0, [r7] lsls r0, 2 adds r0, r1 ldr r0, [r0] ands r2, r0 cmp r2, 0 beq _08014044 ldr r1, _08014040 movs r0, 0xC b _080146CC .align 2, 0 _08014028: .4byte 0x02024c07 _0801402C: .4byte 0x02024a7a _08014030: .4byte 0x02024a7e _08014034: .4byte 0x02000000 _08014038: .4byte 0x000160a6 _0801403C: .4byte gUnknown_0820872C _08014040: .4byte 0x02024a7f _08014044: ldr r1, _080140B8 movs r0, 0x1 strb r0, [r1] ldr r1, _080140BC add r1, r10 movs r0, 0x1 strb r0, [r1] ldr r0, _080140C0 add r0, r10 strb r2, [r0] ldr r0, _080140C4 strb r2, [r0] ldr r0, _080140C8 strb r2, [r0] ldr r0, _080140CC strb r2, [r0, 0x6] ldr r3, _080140D0 ldrb r0, [r7] ldr r2, _080140D4 adds r0, r2 add r0, r10 ldrb r0, [r0] ldr r4, _080140D8 strb r0, [r4] strb r0, [r3] ldr r1, _080140DC ldrb r2, [r7] lsls r0, r2, 4 adds r5, r0, r1 ldrb r1, [r5] lsls r0, r1, 29 adds r4, r2, 0 mov r8, r3 cmp r0, 0 bge _080140F0 movs r0, 0x5 negs r0, r0 ands r0, r1 strb r0, [r5] ldr r2, _080140E0 ldr r1, _080140E4 movs r0, 0xA5 strh r0, [r1] strh r0, [r2] ldr r2, _080140E8 ldr r0, [r2] movs r1, 0x80 lsls r1, 4 orrs r0, r1 str r0, [r2] movs r0, 0xA5 movs r1, 0 bl sub_801B5C0 ldrb r1, [r7] ldr r2, _080140EC adds r1, r2 b _08014200 .align 2, 0 _080140B8: .4byte 0x02024c0d _080140BC: .4byte 0x0001601f _080140C0: .4byte 0x000160e7 _080140C4: .4byte 0x02024c68 _080140C8: .4byte 0x02024c0e _080140CC: .4byte 0x02024d1e _080140D0: .4byte 0x02024be4 _080140D4: .4byte 0x0001608c _080140D8: .4byte 0x02024be5 _080140DC: .4byte 0x02024d28 _080140E0: .4byte 0x02024be6 _080140E4: .4byte 0x02024be8 _080140E8: .4byte 0x02024c6c _080140EC: .4byte 0x00016010 _080140F0: ldr r1, _08014128 movs r0, 0x58 adds r5, r4, 0 muls r5, r0 adds r0, r1, 0 adds r0, 0x50 adds r0, r5, r0 ldr r2, [r0] movs r0, 0x80 lsls r0, 5 ands r0, r2 cmp r0, 0 bne _08014114 movs r6, 0x80 lsls r6, 15 ands r6, r2 cmp r6, 0 beq _08014138 _08014114: ldr r3, _0801412C ldr r2, _08014130 ldr r1, _08014134 lsls r0, r4, 1 adds r0, r1 ldrh r0, [r0] strh r0, [r2] strh r0, [r3] b _08014280 .align 2, 0 _08014128: .4byte 0x02024a80 _0801412C: .4byte 0x02024be6 _08014130: .4byte 0x02024be8 _08014134: .4byte 0x02024c54 _08014138: ldr r3, _08014188 mov r12, r3 lsls r0, r4, 3 subs r0, r4 lsls r0, 2 adds r2, r0, r3 ldrh r4, [r2, 0x6] adds r1, r4, 0 cmp r1, 0 beq _08014218 ldrb r3, [r2, 0xC] lsls r0, r3, 1 adds r0, r5 str r0, [sp, 0x8] ldr r0, _0801418C adds r0, 0xC mov r9, r0 ldr r0, [sp, 0x8] add r0, r9 ldrh r0, [r0] cmp r1, r0 bne _080141A0 ldr r1, _08014190 ldr r0, _08014194 strh r4, [r0] strh r4, [r1] ldrb r0, [r2, 0xC] ldr r2, _08014198 strb r0, [r2] mov r3, r8 strb r0, [r3] ldrh r0, [r1] movs r1, 0 bl sub_801B5C0 ldrb r1, [r7] ldr r4, _0801419C adds r1, r4 b _08014200 .align 2, 0 _08014188: .4byte 0x02024ca8 _0801418C: .4byte 0x02024a80 _08014190: .4byte 0x02024be6 _08014194: .4byte 0x02024be8 _08014198: .4byte 0x02024be5 _0801419C: .4byte 0x00016010 _080141A0: cmp r1, 0 beq _08014218 cmp r1, r0 beq _08014218 ldr r0, _08014208 strb r3, [r0] mov r1, r8 strb r3, [r1] ldr r3, _0801420C ldr r1, _08014210 mov r2, r8 ldrb r0, [r2] lsls r0, 1 adds r0, r5 add r0, r9 ldrh r0, [r0] strh r0, [r1] strh r0, [r3] ldrb r1, [r7] lsls r0, r1, 3 subs r0, r1 lsls r0, 2 add r0, r12 movs r2, 0 strh r6, [r0, 0x6] ldrb r1, [r7] lsls r0, r1, 3 subs r0, r1 lsls r0, 2 add r0, r12 strb r2, [r0, 0xC] ldrb r0, [r7] lsls r1, r0, 3 subs r1, r0 lsls r1, 2 add r1, r12 ldrb r2, [r1, 0xE] movs r0, 0x10 negs r0, r0 ands r0, r2 strb r0, [r1, 0xE] ldrh r0, [r3] movs r1, 0 bl sub_801B5C0 ldrb r1, [r7] ldr r3, _08014214 adds r1, r3 _08014200: add r1, r10 strb r0, [r1] b _08014280 .align 2, 0 _08014208: .4byte 0x02024be5 _0801420C: .4byte 0x02024be6 _08014210: .4byte 0x02024be8 _08014214: .4byte 0x00016010 _08014218: mov r4, r8 ldrb r0, [r4] lsls r0, 1 ldr r4, _0801425C ldrb r2, [r4] movs r1, 0x58 muls r1, r2 adds r0, r1 ldr r1, _08014260 adds r1, 0xC adds r0, r1 ldr r1, _08014264 lsls r2, 1 adds r2, r1 ldrh r3, [r0] ldrh r2, [r2] cmp r3, r2 beq _08014278 ldr r1, _08014268 ldr r0, _0801426C strh r3, [r0] strh r3, [r1] ldrh r0, [r1] movs r1, 0 bl sub_801B5C0 ldr r2, _08014270 ldrb r1, [r4] ldr r3, _08014274 adds r1, r3 adds r1, r2 strb r0, [r1] b _08014280 .align 2, 0 _0801425C: .4byte 0x02024c07 _08014260: .4byte 0x02024a80 _08014264: .4byte 0x02024c60 _08014268: .4byte 0x02024be6 _0801426C: .4byte 0x02024be8 _08014270: .4byte 0x02000000 _08014274: .4byte 0x00016010 _08014278: ldr r1, _08014298 ldr r0, _0801429C strh r3, [r0] strh r3, [r1] _08014280: ldr r0, _080142A0 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 bne _080142A8 ldr r0, _080142A4 ldr r1, _08014298 ldrh r1, [r1] strh r1, [r0, 0x22] b _080142B0 .align 2, 0 _08014298: .4byte 0x02024be6 _0801429C: .4byte 0x02024be8 _080142A0: .4byte 0x02024c07 _080142A4: .4byte 0x030042e0 _080142A8: ldr r0, _08014314 ldr r1, _08014318 ldrh r1, [r1] strh r1, [r0, 0x24] _080142B0: ldr r4, _0801431C ldrb r0, [r4] bl battle_side_get_owner movs r1, 0x1 eors r0, r1 lsls r0, 24 lsrs r6, r0, 24 ldr r1, _08014320 lsls r0, r6, 1 adds r0, r6 lsls r0, 2 adds r5, r0, r1 ldrb r0, [r5, 0x8] adds r3, r4, 0 cmp r0, 0 beq _08014330 ldr r2, _08014324 ldr r0, _08014318 ldrh r1, [r0] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r0, [r0, 0x6] cmp r0, 0 bne _08014330 ldrb r0, [r3] bl battle_side_get_owner adds r4, r0, 0 ldrb r0, [r5, 0x9] bl battle_side_get_owner lsls r4, 24 lsls r0, 24 cmp r4, r0 beq _08014330 ldr r1, _08014328 ldrb r2, [r5, 0x9] movs r0, 0x58 muls r0, r2 adds r0, r1 ldrh r0, [r0, 0x28] cmp r0, 0 beq _08014330 ldr r0, _0801432C strb r2, [r0] b _080146AC .align 2, 0 _08014314: .4byte 0x030042e0 _08014318: .4byte 0x02024be6 _0801431C: .4byte 0x02024c07 _08014320: .4byte 0x02024c80 _08014324: .4byte gBattleMoves _08014328: .4byte 0x02024a80 _0801432C: .4byte 0x02024c08 _08014330: ldr r2, _08014454 ldrh r1, [r2] movs r0, 0x1 ands r0, r1 ldr r3, _08014458 mov r9, r2 cmp r0, 0 bne _08014342 b _0801461C _08014342: ldr r1, _0801445C lsls r0, r6, 1 adds r0, r6 lsls r0, 2 adds r0, r1 ldrb r7, [r0, 0x8] cmp r7, 0 beq _08014354 b _08014570 _08014354: ldr r2, _08014460 ldr r0, _08014464 ldrh r1, [r0] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r4, r0, r2 ldrb r0, [r4, 0x1] cmp r0, 0 bne _08014370 ldrb r0, [r4, 0x6] cmp r0, 0x10 bne _08014370 b _08014570 _08014370: ldr r3, _08014468 ldr r0, _0801446C mov r8, r0 ldr r2, _08014458 ldrb r5, [r2] ldr r1, _08014470 adds r0, r5, r1 add r0, r8 ldrb r1, [r0] movs r0, 0x58 muls r0, r1 adds r0, r3 adds r0, 0x20 ldrb r0, [r0] adds r3, r2, 0 cmp r0, 0x1F bne _08014394 b _08014570 _08014394: ldrb r0, [r4, 0x2] cmp r0, 0xD beq _0801439C b _08014570 _0801439C: adds r0, r5, 0 bl battle_side_get_owner lsls r0, 24 lsrs r6, r0, 24 ldr r1, _08014474 strb r7, [r1] ldr r0, _08014478 ldrb r0, [r0] cmp r7, r0 bcs _08014416 adds r4, r1, 0 mov r5, r8 _080143B6: ldrb r0, [r4] bl battle_side_get_owner lsls r0, 24 lsrs r0, 24 cmp r6, r0 beq _08014404 ldr r0, _08014458 ldrb r0, [r0] ldr r2, _08014470 adds r0, r2 adds r0, r5 ldrb r0, [r0] ldrb r3, [r4] cmp r0, r3 beq _08014404 ldr r1, _08014468 ldrb r2, [r4] movs r0, 0x58 muls r0, r2 adds r0, r1 adds r0, 0x20 ldrb r0, [r0] cmp r0, 0x1F bne _08014404 adds r0, r2, 0 bl sub_801E3B4 lsls r0, 24 lsrs r0, 24 ldr r1, [sp] cmp r0, r1 bcs _08014404 ldrb r0, [r4] bl sub_801E3B4 lsls r0, 24 lsrs r0, 24 str r0, [sp] _08014404: ldrb r0, [r4] adds r0, 0x1 strb r0, [r4] ldr r1, _08014478 lsls r0, 24 lsrs r0, 24 ldrb r1, [r1] cmp r0, r1 bcc _080143B6 _08014416: ldr r2, [sp] cmp r2, 0x4 beq _0801441E b _08014522 _0801441E: ldr r2, _08014460 ldr r0, _0801447C ldrh r1, [r0] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r0, [r0, 0x6] ldr r3, [sp] ands r3, r0 cmp r3, 0 beq _080144A4 ldr r0, _08014458 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 bne _08014484 bl Random movs r1, 0x1 ands r1, r0 cmp r1, 0 beq _08014480 movs r0, 0x1 b _08014496 .align 2, 0 _08014454: .4byte 0x020239f8 _08014458: .4byte 0x02024c07 _0801445C: .4byte 0x02024c80 _08014460: .4byte gBattleMoves _08014464: .4byte 0x02024be6 _08014468: .4byte 0x02024a80 _0801446C: .4byte 0x02000000 _08014470: .4byte 0x00016010 _08014474: .4byte 0x02024a60 _08014478: .4byte 0x02024a68 _0801447C: .4byte 0x02024be8 _08014480: movs r0, 0x3 b _08014496 _08014484: bl Random movs r1, 0x1 ands r1, r0 cmp r1, 0 beq _08014494 movs r0, 0 b _08014496 _08014494: movs r0, 0x2 _08014496: bl battle_get_side_with_given_state ldr r1, _080144A0 strb r0, [r1] b _080144B6 .align 2, 0 _080144A0: .4byte 0x02024c08 _080144A4: ldr r2, _080144EC ldr r1, _080144F0 ldr r0, _080144F4 ldrb r0, [r0] ldr r4, _080144F8 adds r0, r4 adds r0, r1 ldrb r0, [r0] strb r0, [r2] _080144B6: ldr r7, _080144FC ldrb r0, [r7] ldr r1, _08014500 mov r8, r1 ldr r5, _080144EC ldrb r1, [r5] lsls r1, 2 add r1, r8 ldr r1, [r1] ands r0, r1 cmp r0, 0 bne _080144D0 b _080146AC _080144D0: ldr r6, _080144F4 ldrb r0, [r6] bl battle_side_get_owner adds r4, r0, 0 ldrb r0, [r5] bl battle_side_get_owner lsls r4, 24 lsls r0, 24 cmp r4, r0 beq _08014504 ldrb r0, [r5] b _0801469A .align 2, 0 _080144EC: .4byte 0x02024c08 _080144F0: .4byte 0x02000000 _080144F4: .4byte 0x02024c07 _080144F8: .4byte 0x00016010 _080144FC: .4byte 0x02024c0c _08014500: .4byte gUnknown_0820872C _08014504: ldrb r0, [r6] bl battle_get_per_side_status movs r1, 0x1 eors r0, r1 lsls r0, 24 lsrs r0, 24 bl battle_get_side_with_given_state strb r0, [r5] ldrb r1, [r7] ldrb r2, [r5] lsls r0, r2, 2 add r0, r8 b _08014690 _08014522: ldr r4, _0801455C ldr r0, _08014560 ldr r2, [sp] adds r0, r2, r0 ldrb r0, [r0] strb r0, [r4] ldrb r0, [r4] ldr r2, _08014564 movs r1, 0x58 muls r1, r0 adds r1, r2 adds r1, 0x20 ldrb r1, [r1] bl sub_81074C4 ldr r2, _08014568 ldrb r1, [r4] lsls r0, r1, 2 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r1, [r0] movs r2, 0x2 orrs r1, r2 strb r1, [r0] ldr r1, _0801456C ldrb r0, [r4] strb r0, [r1] b _080146AC .align 2, 0 _0801455C: .4byte 0x02024a60 _08014560: .4byte 0x02024a7a _08014564: .4byte 0x02024a80 _08014568: .4byte 0x02024d68 _0801456C: .4byte 0x02024c08 _08014570: mov r4, r9 ldrh r1, [r4] movs r4, 0x1 adds r0, r4, 0 ands r0, r1 cmp r0, 0 beq _0801461C ldr r2, _080145B4 ldr r0, _080145B8 ldrh r1, [r0] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r1, [r0, 0x6] movs r0, 0x4 ands r0, r1 cmp r0, 0 beq _0801461C ldrb r0, [r3] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 bne _080145C0 bl Random adds r1, r4, 0 ands r1, r0 cmp r1, 0 beq _080145BC movs r0, 0x1 b _080145D2 .align 2, 0 _080145B4: .4byte gBattleMoves _080145B8: .4byte 0x02024be8 _080145BC: movs r0, 0x3 b _080145D2 _080145C0: bl Random adds r1, r4, 0 ands r1, r0 cmp r1, 0 beq _080145D0 movs r0, 0 b _080145D2 _080145D0: movs r0, 0x2 _080145D2: bl battle_get_side_with_given_state ldr r1, _0801460C strb r0, [r1] ldr r0, _08014610 ldrb r1, [r0] ldr r2, _08014614 ldr r5, _0801460C ldrb r0, [r5] lsls r0, 2 adds r0, r2 ldr r0, [r0] ands r1, r0 cmp r1, 0 beq _080146AC ldr r0, _08014618 ldrb r0, [r0] bl battle_side_get_owner adds r4, r0, 0 ldrb r0, [r5] bl battle_side_get_owner lsls r4, 24 lsls r0, 24 cmp r4, r0 beq _080146AC ldrb r0, [r5] b _0801469A .align 2, 0 _0801460C: .4byte 0x02024c08 _08014610: .4byte 0x02024c0c _08014614: .4byte gUnknown_0820872C _08014618: .4byte 0x02024c07 _0801461C: ldr r5, _08014660 ldr r1, _08014664 adds r2, r3, 0 ldrb r0, [r2] ldr r4, _08014668 adds r0, r4 adds r0, r1 ldrb r0, [r0] strb r0, [r5] ldr r6, _0801466C ldrb r1, [r6] ldr r7, _08014670 ldrb r0, [r5] lsls r0, 2 adds r0, r7 ldr r0, [r0] ands r1, r0 cmp r1, 0 beq _080146AC ldrb r0, [r2] str r3, [sp, 0x4] bl battle_side_get_owner adds r4, r0, 0 ldrb r0, [r5] bl battle_side_get_owner lsls r4, 24 lsls r0, 24 ldr r3, [sp, 0x4] cmp r4, r0 beq _08014674 ldrb r0, [r5] b _0801469A .align 2, 0 _08014660: .4byte 0x02024c08 _08014664: .4byte 0x02000000 _08014668: .4byte 0x00016010 _0801466C: .4byte 0x02024c0c _08014670: .4byte gUnknown_0820872C _08014674: ldrb r0, [r3] bl battle_get_per_side_status movs r1, 0x1 eors r0, r1 lsls r0, 24 lsrs r0, 24 bl battle_get_side_with_given_state strb r0, [r5] ldrb r1, [r6] ldrb r2, [r5] lsls r0, r2, 2 adds r0, r7 _08014690: ldr r0, [r0] ands r1, r0 cmp r1, 0 beq _080146AC adds r0, r2, 0 _0801469A: bl battle_get_per_side_status movs r1, 0x2 eors r0, r1 lsls r0, 24 lsrs r0, 24 bl battle_get_side_with_given_state strb r0, [r5] _080146AC: ldr r4, _080146E0 ldr r3, _080146E4 ldr r2, _080146E8 ldr r0, _080146EC ldrh r1, [r0] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r0, [r0] lsls r0, 2 adds r0, r3 ldr r0, [r0] str r0, [r4] ldr r1, _080146F0 movs r0, 0xA _080146CC: strb r0, [r1] add sp, 0xC pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080146E0: .4byte 0x02024c10 _080146E4: .4byte gUnknown_081D6BBC _080146E8: .4byte gBattleMoves _080146EC: .4byte 0x02024be6 _080146F0: .4byte 0x02024a7f thumb_func_end sub_8013FE8 thumb_func_start sub_80146F4 sub_80146F4: @ 80146F4 push {r4,lr} ldr r3, _08014764 ldr r1, _08014768 ldr r0, _0801476C ldrb r0, [r0] adds r0, r1 ldrb r0, [r0] strb r0, [r3] ldr r0, _08014770 movs r2, 0 strh r2, [r0] ldr r0, _08014774 strh r2, [r0] ldr r1, _08014778 ldrb r0, [r3] adds r0, r1 strb r2, [r0] ldr r1, _0801477C ldrb r0, [r3] adds r0, r1 strb r2, [r0] ldr r2, _08014780 movs r0, 0xFD strb r0, [r2] movs r0, 0x7 strb r0, [r2, 0x1] ldrb r4, [r3] strb r4, [r2, 0x2] ldr r1, _08014784 ldrb r0, [r3] ldr r3, _08014788 adds r0, r3 adds r0, r1 ldrb r0, [r0] strb r0, [r2, 0x3] movs r0, 0xFF strb r0, [r2, 0x4] ldr r0, _0801478C adds r1, r0 strb r4, [r1] ldr r1, _08014790 ldr r0, _08014794 str r0, [r1] ldr r1, _08014798 movs r0, 0xA strb r0, [r1] ldr r1, _0801479C ldrb r0, [r1, 0x2] cmp r0, 0xFE bhi _0801475C adds r0, 0x1 strb r0, [r1, 0x2] _0801475C: pop {r4} pop {r0} bx r0 .align 2, 0 _08014764: .4byte 0x02024c07 _08014768: .4byte 0x02024a7a _0801476C: .4byte 0x02024a7e _08014770: .4byte 0x030042a4 _08014774: .4byte 0x030042a0 _08014778: .4byte 0x02024e60 _0801477C: .4byte 0x02024e64 _08014780: .4byte 0x030041c0 _08014784: .4byte 0x02000000 _08014788: .4byte 0x00016064 _0801478C: .4byte 0x00016003 _08014790: .4byte 0x02024c10 _08014794: .4byte gUnknown_081D8E4E _08014798: .4byte 0x02024a7f _0801479C: .4byte 0x030042e0 thumb_func_end sub_80146F4 thumb_func_start sub_80147A0 sub_80147A0: @ 80147A0 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} ldr r4, _08014804 ldr r2, _08014808 ldr r1, _0801480C ldr r0, _08014810 ldrb r0, [r0] adds r0, r1 ldrb r0, [r0] strb r0, [r2] strb r0, [r4] ldr r0, _08014814 movs r2, 0 strh r2, [r0] ldr r0, _08014818 strh r2, [r0] ldr r3, _0801481C ldrb r1, [r4] lsls r0, r1, 3 subs r0, r1 lsls r0, 2 adds r0, r3 strb r2, [r0, 0x10] ldr r5, _08014820 ldr r2, _08014824 ldrb r1, [r4] lsls r1, 9 adds r0, r2, 0x1 adds r0, r1, r0 ldrb r3, [r0] adds r2, 0x2 adds r1, r2 ldrb r0, [r1] lsls r0, 8 orrs r3, r0 strh r3, [r5] cmp r3, 0xC bhi _08014830 ldr r2, _08014828 ldr r1, _0801482C ldrh r0, [r5] lsls r0, 2 adds r0, r1 ldr r0, [r0] str r0, [r2] b _08014A8C .align 2, 0 _08014804: .4byte 0x02024c07 _08014808: .4byte 0x02024c08 _0801480C: .4byte 0x02024a7a _08014810: .4byte 0x02024a7e _08014814: .4byte 0x030042a4 _08014818: .4byte 0x030042a0 _0801481C: .4byte 0x02024ca8 _08014820: .4byte 0x02024c04 _08014824: .4byte 0x02024260 _08014828: .4byte 0x02024c10 _0801482C: .4byte gUnknown_081D9E48 _08014830: adds r0, r3, 0 subs r0, 0x50 lsls r0, 16 lsrs r0, 16 cmp r0, 0x1 bhi _0801484C ldr r0, _08014844 ldr r1, _08014848 b _0801485C .align 2, 0 _08014844: .4byte 0x02024c10 _08014848: .4byte gUnknown_081D9E94 _0801484C: ldrb r0, [r4] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 bne _0801486C ldr r0, _08014864 ldr r1, _08014868 _0801485C: ldr r1, [r1] str r1, [r0] b _08014A8C .align 2, 0 _08014864: .4byte 0x02024c10 _08014868: .4byte gUnknown_081D9E7C _0801486C: ldr r2, _080148A0 ldrb r0, [r4] ldr r3, _080148A4 adds r1, r2, r3 strb r0, [r1] lsls r0, 24 lsrs r0, 25 ldr r1, _080148A8 adds r0, r1 adds r0, r2 ldrb r0, [r0] subs r0, 0x1 mov r8, r4 ldr r3, _080148AC mov r9, r3 ldr r1, _080148B0 mov r10, r1 adds r7, r2, 0 cmp r0, 0x4 bls _08014896 b _08014A74 _08014896: lsls r0, 2 ldr r1, _080148B4 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080148A0: .4byte 0x02000000 _080148A4: .4byte 0x00016003 _080148A8: .4byte 0x000160d8 _080148AC: .4byte 0x02024c10 _080148B0: .4byte gUnknown_081D9E7C _080148B4: .4byte _080148B8 .align 2, 0 _080148B8: .4byte _08014A74 .4byte _08014A74 .4byte _080148CC .4byte _08014958 .4byte _08014A30 _080148CC: ldr r2, _08014904 movs r0, 0 strb r0, [r2, 0x5] ldr r1, _08014908 ldrb r0, [r1] lsrs r0, 1 ldr r6, _0801490C adds r0, r6 adds r0, r7 ldrb r3, [r0] movs r0, 0x1 ands r0, r3 mov r8, r1 cmp r0, 0 beq _08014918 movs r0, 0x3E ands r0, r3 ldr r3, _08014910 mov r9, r3 ldr r1, _08014914 mov r10, r1 cmp r0, 0 bne _080148FC b _08014A74 _080148FC: movs r0, 0x5 strb r0, [r2, 0x5] b _08014A74 .align 2, 0 _08014904: .4byte 0x02024d1e _08014908: .4byte 0x02024c07 _0801490C: .4byte 0x000160da _08014910: .4byte 0x02024c10 _08014914: .4byte gUnknown_081D9E7C _08014918: ldr r3, _08014950 mov r9, r3 ldr r0, _08014954 mov r10, r0 adds r5, r7, 0 mov r4, r8 adds r3, r6, 0 _08014926: ldrb r0, [r4] lsrs r0, 1 adds r0, r3 adds r0, r5 ldrb r1, [r0] lsrs r1, 1 strb r1, [r0] ldrb r0, [r2, 0x5] adds r0, 0x1 strb r0, [r2, 0x5] ldrb r0, [r4] lsrs r0, 1 adds r0, r3 adds r0, r5 ldrb r1, [r0] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _08014926 b _08014A74 .align 2, 0 _08014950: .4byte 0x02024c10 _08014954: .4byte gUnknown_081D9E7C _08014958: ldr r3, _0801498C movs r0, 0x4 strb r0, [r3, 0x5] ldr r2, _08014990 ldrb r0, [r2] lsrs r0, 1 ldr r1, _08014994 mov r12, r1 add r0, r12 adds r6, r0, r7 ldrb r1, [r6] movs r0, 0x80 ands r0, r1 lsls r0, 24 lsrs r5, r0, 24 mov r8, r2 cmp r5, 0 beq _080149A0 movs r0, 0x5 strb r0, [r3, 0x5] ldr r2, _08014998 mov r9, r2 ldr r3, _0801499C mov r10, r3 b _08014A74 .align 2, 0 _0801498C: .4byte 0x02024d1e _08014990: .4byte 0x02024c07 _08014994: .4byte 0x000160da _08014998: .4byte 0x02024c10 _0801499C: .4byte gUnknown_081D9E7C _080149A0: ldr r3, _08014A18 movs r4, 0xFD strb r4, [r3] movs r0, 0x5 strb r0, [r3, 0x1] movs r2, 0x1 strb r2, [r3, 0x2] movs r0, 0xFF strb r0, [r3, 0x3] ldr r1, _08014A1C strb r4, [r1] strb r5, [r1, 0x1] movs r0, 0xD2 strb r0, [r1, 0x2] strb r5, [r1, 0x3] subs r0, 0xD3 strb r0, [r1, 0x4] ldrb r0, [r6] ands r2, r0 ldr r0, _08014A20 mov r9, r0 ldr r1, _08014A24 mov r10, r1 adds r6, r3, 0 cmp r2, 0 bne _08014A02 adds r3, r7, 0 mov r5, r8 mov r4, r12 adds r2, r6, 0 _080149DC: ldrb r0, [r5] lsrs r0, 1 adds r0, r4 adds r0, r3 ldrb r1, [r0] lsrs r1, 1 strb r1, [r0] ldrb r0, [r2, 0x2] adds r0, 0x1 strb r0, [r2, 0x2] ldrb r0, [r5] lsrs r0, 1 adds r0, r4 adds r0, r3 ldrb r1, [r0] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _080149DC _08014A02: ldrb r0, [r6, 0x2] adds r0, 0xE ldr r2, _08014A28 adds r1, r7, r2 movs r2, 0 strb r0, [r1] ldr r3, _08014A2C adds r0, r7, r3 strb r2, [r0] b _08014A74 .align 2, 0 _08014A18: .4byte 0x030041c0 _08014A1C: .4byte 0x03004290 _08014A20: .4byte 0x02024c10 _08014A24: .4byte gUnknown_081D9E7C _08014A28: .4byte 0x000160a4 _08014A2C: .4byte 0x000160a5 _08014A30: ldr r0, _08014A50 ldrh r0, [r0] movs r1, 0x1 ands r1, r0 cmp r1, 0 beq _08014A64 ldr r1, _08014A54 movs r0, 0x2 strb r0, [r1, 0x5] ldr r0, _08014A58 mov r8, r0 ldr r1, _08014A5C mov r9, r1 ldr r2, _08014A60 mov r10, r2 b _08014A74 .align 2, 0 _08014A50: .4byte 0x020239f8 _08014A54: .4byte 0x02024d1e _08014A58: .4byte 0x02024c07 _08014A5C: .4byte 0x02024c10 _08014A60: .4byte gUnknown_081D9E7C _08014A64: ldr r0, _08014AA0 strb r1, [r0, 0x5] ldr r3, _08014AA4 mov r8, r3 ldr r0, _08014AA8 mov r9, r0 ldr r1, _08014AAC mov r10, r1 _08014A74: mov r2, r8 ldrb r0, [r2] lsrs r0, 1 ldr r3, _08014AB0 adds r0, r3 adds r0, r7 ldrb r0, [r0] lsls r0, 2 add r0, r10 ldr r0, [r0] mov r1, r9 str r0, [r1] _08014A8C: movs r0, 0xA ldr r2, _08014AB4 strb r0, [r2] pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08014AA0: .4byte 0x02024d1e _08014AA4: .4byte 0x02024c07 _08014AA8: .4byte 0x02024c10 _08014AAC: .4byte gUnknown_081D9E7C _08014AB0: .4byte 0x000160d8 _08014AB4: .4byte 0x02024a7f thumb_func_end sub_80147A0 thumb_func_start sub_8014AB8 sub_8014AB8: @ 8014AB8 push {r4-r6,lr} lsls r0, 24 lsrs r4, r0, 24 movs r5, 0 ldr r1, _08014ADC movs r0, 0x58 muls r0, r4 adds r1, r0, r1 ldrh r0, [r1, 0x2E] cmp r0, 0xAF bne _08014AE4 ldr r1, _08014AE0 lsls r0, r4, 3 subs r0, r4 lsls r0, 2 adds r0, r1 ldrb r1, [r0, 0x7] b _08014AEE .align 2, 0 _08014ADC: .4byte 0x02024a80 _08014AE0: .4byte 0x02024df0 _08014AE4: ldrh r0, [r1, 0x2E] bl itemid_get_x12 lsls r0, 24 lsrs r1, r0, 24 _08014AEE: ldr r0, _08014B18 strb r4, [r0] cmp r1, 0x25 bne _08014B28 ldr r2, _08014B1C ldr r1, _08014B20 movs r0, 0x58 muls r0, r4 adds r0, r1 ldrh r0, [r0, 0x2E] strh r0, [r2] ldr r0, _08014B24 lsls r2, r4, 4 adds r2, r0 ldrb r1, [r2, 0x1] movs r0, 0x19 negs r0, r0 ands r0, r1 movs r1, 0x8 b _08014B50 .align 2, 0 _08014B18: .4byte 0x02024c0b _08014B1C: .4byte 0x02024c04 _08014B20: .4byte 0x02024a80 _08014B24: .4byte 0x02024d28 _08014B28: ldr r6, _08014B5C movs r2, 0x58 adds r0, r4, 0 muls r0, r2 adds r3, r0, r6 adds r0, r3, 0 adds r0, 0x20 ldrb r1, [r0] cmp r1, 0x32 bne _08014B68 ldr r0, _08014B60 strb r1, [r0] ldr r0, _08014B64 lsls r2, r4, 4 adds r2, r0 ldrb r1, [r2, 0x1] movs r0, 0x19 negs r0, r0 ands r0, r1 movs r1, 0x10 _08014B50: orrs r0, r1 strb r0, [r2, 0x1] adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 b _08014BC2 .align 2, 0 _08014B5C: .4byte 0x02024a80 _08014B60: .4byte 0x02024c06 _08014B64: .4byte 0x02024d28 _08014B68: ldr r0, _08014BDC ldrh r1, [r0] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _08014BB6 movs r1, 0x1 adds r0, r4, 0 eors r0, r1 muls r0, r2 adds r2, r0, r6 ldrh r0, [r3, 0x6] ldrh r1, [r2, 0x6] cmp r0, r1 bcs _08014BB0 lsls r0, 7 ldrh r1, [r2, 0x6] bl __divsi3 adds r4, r0, 0 ldr r0, _08014BE0 ldr r1, _08014BE4 adds r0, r1 ldrb r1, [r0] lsls r0, r1, 4 subs r0, r1 lsls r0, 1 adds r4, r0 lsls r4, 24 lsrs r4, 24 bl Random movs r1, 0xFF ands r1, r0 cmp r4, r1 bls _08014BB6 _08014BB0: adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 _08014BB6: ldr r1, _08014BE0 ldr r0, _08014BE4 adds r1, r0 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] _08014BC2: cmp r5, 0 beq _08014BD4 ldr r1, _08014BE8 ldr r0, _08014BEC ldrb r0, [r0] strb r0, [r1] ldr r1, _08014BF0 movs r0, 0x4 strb r0, [r1] _08014BD4: adds r0, r5, 0 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _08014BDC: .4byte 0x020239f8 _08014BE0: .4byte 0x02000000 _08014BE4: .4byte 0x00016078 _08014BE8: .4byte 0x02024a7e _08014BEC: .4byte 0x02024a68 _08014BF0: .4byte 0x02024d26 thumb_func_end sub_8014AB8 thumb_func_start sub_8014BF4 sub_8014BF4: @ 8014BF4 push {r4-r6,lr} ldr r4, _08014C44 ldr r1, _08014C48 ldr r5, _08014C4C ldrb r0, [r5] adds r0, r1 ldrb r0, [r0] strb r0, [r4] ldr r0, _08014C50 ldrh r1, [r0] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _08014C9C ldr r0, _08014C54 ldrb r1, [r0] strb r1, [r5] ldr r2, _08014C58 movs r0, 0 strb r0, [r2] lsls r1, 24 cmp r1, 0 beq _08014C88 adds r4, r2, 0 ldr r6, _08014C5C ldr r5, _08014C60 _08014C28: ldrb r0, [r4] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 bne _08014C64 ldrb r0, [r4] adds r0, r6 ldrb r0, [r0] cmp r0, 0x3 bne _08014C76 ldrb r0, [r5] movs r1, 0x2 b _08014C72 .align 2, 0 _08014C44: .4byte 0x02024c07 _08014C48: .4byte 0x02024a7a _08014C4C: .4byte 0x02024a7e _08014C50: .4byte 0x020239f8 _08014C54: .4byte 0x02024a68 _08014C58: .4byte 0x02024a60 _08014C5C: .4byte 0x02024c18 _08014C60: .4byte 0x02024d26 _08014C64: ldrb r0, [r4] adds r0, r6 ldrb r0, [r0] cmp r0, 0x3 bne _08014C76 ldrb r0, [r5] movs r1, 0x1 _08014C72: orrs r0, r1 strb r0, [r5] _08014C76: ldrb r0, [r4] adds r0, 0x1 strb r0, [r4] ldr r1, _08014C94 lsls r0, 24 lsrs r0, 24 ldrb r1, [r1] cmp r0, r1 bcc _08014C28 _08014C88: ldr r0, _08014C98 ldrb r1, [r0] movs r2, 0x80 orrs r1, r2 strb r1, [r0] b _08014D40 .align 2, 0 _08014C94: .4byte 0x02024a68 _08014C98: .4byte 0x02024d26 _08014C9C: ldrb r0, [r4] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 bne _08014CF4 ldrb r0, [r4] bl sub_8014AB8 lsls r0, 24 cmp r0, 0 bne _08014D40 ldr r1, _08014CDC ldrb r2, [r4] movs r0, 0x58 muls r2, r0 adds r1, 0x50 adds r2, r1 ldr r0, [r2] ldr r1, _08014CE0 ands r0, r1 str r0, [r2] ldr r1, _08014CE4 movs r0, 0x3 strb r0, [r1, 0x5] ldr r1, _08014CE8 ldr r0, _08014CEC str r0, [r1] ldr r1, _08014CF0 movs r0, 0xA b _08014D3E .align 2, 0 _08014CDC: .4byte 0x02024a80 _08014CE0: .4byte 0xfdffffff _08014CE4: .4byte 0x02024d1e _08014CE8: .4byte 0x02024c10 _08014CEC: .4byte gUnknown_081D8E3B _08014CF0: .4byte 0x02024a7f _08014CF4: ldr r1, _08014D1C ldrb r2, [r4] movs r0, 0x58 muls r0, r2 adds r1, 0x50 adds r0, r1 ldr r0, [r0] ldr r1, _08014D20 ands r0, r1 cmp r0, 0 beq _08014D34 ldr r1, _08014D24 movs r0, 0x4 strb r0, [r1, 0x5] ldr r1, _08014D28 ldr r0, _08014D2C str r0, [r1] ldr r1, _08014D30 movs r0, 0xA b _08014D3E .align 2, 0 _08014D1C: .4byte 0x02024a80 _08014D20: .4byte 0x0400e000 _08014D24: .4byte 0x02024d1e _08014D28: .4byte 0x02024c10 _08014D2C: .4byte gUnknown_081D8E3B _08014D30: .4byte 0x02024a7f _08014D34: ldr r0, _08014D48 ldrb r0, [r0] strb r0, [r5] ldr r1, _08014D4C movs r0, 0x6 _08014D3E: strb r0, [r1] _08014D40: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08014D48: .4byte 0x02024a68 _08014D4C: .4byte 0x02024d26 thumb_func_end sub_8014BF4 thumb_func_start sub_8014D50 sub_8014D50: @ 8014D50 ldr r2, _08014D78 ldr r1, _08014D7C ldr r0, _08014D80 ldrb r0, [r0] adds r0, r1 ldrb r0, [r0] strb r0, [r2] ldr r0, _08014D84 movs r1, 0 strh r1, [r0] ldr r0, _08014D88 strh r1, [r0] ldr r1, _08014D8C ldr r0, _08014D90 ldr r0, [r0] str r0, [r1] ldr r1, _08014D94 movs r0, 0xA strb r0, [r1] bx lr .align 2, 0 _08014D78: .4byte 0x02024c07 _08014D7C: .4byte 0x02024a7a _08014D80: .4byte 0x02024a7e _08014D84: .4byte 0x030042a4 _08014D88: .4byte 0x030042a0 _08014D8C: .4byte 0x02024c10 _08014D90: .4byte gUnknown_081D9E98 _08014D94: .4byte 0x02024a7f thumb_func_end sub_8014D50 thumb_func_start sub_8014D98 sub_8014D98: @ 8014D98 ldr r2, _08014DD0 ldr r1, _08014DD4 ldr r0, _08014DD8 ldrb r0, [r0] adds r0, r1 ldrb r0, [r0] strb r0, [r2] ldr r0, _08014DDC movs r1, 0 strh r1, [r0] ldr r0, _08014DE0 strh r1, [r0] ldr r1, _08014DE4 ldrb r0, [r1] subs r0, 0x1 strb r0, [r1] ldr r1, _08014DE8 movs r0, 0x5 strh r0, [r1] ldr r1, _08014DEC ldr r0, _08014DF0 ldr r0, [r0, 0x14] str r0, [r1] ldr r1, _08014DF4 movs r0, 0xA strb r0, [r1] bx lr .align 2, 0 _08014DD0: .4byte 0x02024c07 _08014DD4: .4byte 0x02024a7a _08014DD8: .4byte 0x02024a7e _08014DDC: .4byte 0x030042a4 _08014DE0: .4byte 0x030042a0 _08014DE4: .4byte 0x02038808 _08014DE8: .4byte 0x02024c04 _08014DEC: .4byte 0x02024c10 _08014DF0: .4byte gUnknown_081D9E48 _08014DF4: .4byte 0x02024a7f thumb_func_end sub_8014D98 thumb_func_start sub_8014DF8 sub_8014DF8: @ 8014DF8 push {r4-r6,lr} ldr r3, _08014E68 ldr r1, _08014E6C ldr r0, _08014E70 ldrb r0, [r0] adds r0, r1 ldrb r0, [r0] strb r0, [r3] ldr r0, _08014E74 movs r1, 0 strh r1, [r0] ldr r0, _08014E78 strh r1, [r0] ldr r6, _08014E7C ldr r2, _08014E80 ldrb r0, [r3] lsls r0, 9 adds r1, r2, 0x1 adds r0, r1 ldrb r0, [r0] subs r0, 0x1 strb r0, [r6, 0x5] ldr r1, _08014E84 ldrb r0, [r3] lsls r0, 9 adds r2, 0x2 adds r0, r2 ldrb r0, [r0] strh r0, [r1] ldr r2, _08014E88 ldr r0, _08014E8C adds r1, r2, r0 ldrb r0, [r1] cmp r0, 0x2 bhi _08014E42 adds r0, 0x1 strb r0, [r1] _08014E42: ldr r0, _08014E90 adds r4, r2, r0 ldrb r5, [r4] adds r3, r5, 0 cmp r3, 0x1 bls _08014E9C ldr r2, _08014E94 ldrb r1, [r1] lsls r0, r1, 1 adds r0, r1 ldrb r6, [r6, 0x5] adds r0, r6 adds r0, r2 ldrb r0, [r0] cmp r3, r0 bcs _08014E98 movs r0, 0x1 b _08014E9A .align 2, 0 _08014E68: .4byte 0x02024c07 _08014E6C: .4byte 0x02024a7a _08014E70: .4byte 0x02024a7e _08014E74: .4byte 0x030042a4 _08014E78: .4byte 0x030042a0 _08014E7C: .4byte 0x02024d1e _08014E80: .4byte 0x02024260 _08014E84: .4byte 0x02024c04 _08014E88: .4byte 0x02000000 _08014E8C: .4byte 0x00016087 _08014E90: .4byte 0x00016088 _08014E94: .4byte gUnknown_081FA70C _08014E98: subs r0, r5, r0 _08014E9A: strb r0, [r4] _08014E9C: ldr r1, _08014EB0 ldr r0, _08014EB4 ldr r0, [r0, 0x8] str r0, [r1] ldr r1, _08014EB8 movs r0, 0xA strb r0, [r1] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08014EB0: .4byte 0x02024c10 _08014EB4: .4byte gUnknown_081D9E98 _08014EB8: .4byte 0x02024a7f thumb_func_end sub_8014DF8 thumb_func_start sub_8014EBC sub_8014EBC: @ 8014EBC push {r4,r5,lr} ldr r2, _08014F28 ldr r1, _08014F2C ldr r0, _08014F30 ldrb r0, [r0] adds r0, r1 ldrb r0, [r0] strb r0, [r2] ldr r0, _08014F34 movs r5, 0 strh r5, [r0] ldr r0, _08014F38 strh r5, [r0] ldr r3, _08014F3C ldr r0, _08014F40 adds r2, r3, r0 ldr r1, _08014F44 subs r0, 0x3 adds r4, r3, r0 ldrb r0, [r4] adds r0, r1 ldrb r0, [r0] ldrb r1, [r2] adds r0, r1 strb r0, [r2] lsls r0, 24 lsrs r0, 24 cmp r0, 0x14 bls _08014EFA movs r0, 0x14 strb r0, [r2] _08014EFA: ldr r0, _08014F48 adds r2, r3, r0 ldr r1, _08014F4C ldrb r0, [r4] adds r0, r1 ldrb r0, [r0] ldrb r1, [r2] adds r0, r1 strb r0, [r2] lsls r0, 24 lsrs r0, 24 cmp r0, 0x14 bls _08014F18 movs r0, 0x14 strb r0, [r2] _08014F18: ldrb r0, [r4] cmp r0, 0x2 bhi _08014F54 adds r0, 0x1 strb r0, [r4] ldr r0, _08014F50 strb r5, [r0, 0x5] b _08014F5A .align 2, 0 _08014F28: .4byte 0x02024c07 _08014F2C: .4byte 0x02024a7a _08014F30: .4byte 0x02024a7e _08014F34: .4byte 0x030042a4 _08014F38: .4byte 0x030042a0 _08014F3C: .4byte 0x02000000 _08014F40: .4byte 0x00016089 _08014F44: .4byte gUnknown_081FA71B _08014F48: .4byte 0x00016088 _08014F4C: .4byte gUnknown_081FA71F _08014F50: .4byte 0x02024d1e _08014F54: ldr r1, _08014F70 movs r0, 0x1 strb r0, [r1, 0x5] _08014F5A: ldr r1, _08014F74 ldr r0, _08014F78 ldr r0, [r0, 0x4] str r0, [r1] ldr r1, _08014F7C movs r0, 0xA strb r0, [r1] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08014F70: .4byte 0x02024d1e _08014F74: .4byte 0x02024c10 _08014F78: .4byte gUnknown_081D9E98 _08014F7C: .4byte 0x02024a7f thumb_func_end sub_8014EBC thumb_func_start bs8_exit_by_flight bs8_exit_by_flight: @ 8014F80 push {r4,lr} ldr r2, _08014FA8 ldr r1, _08014FAC ldr r4, _08014FB0 ldrb r0, [r4] adds r0, r1 ldrb r0, [r0] strb r0, [r2] movs r0, 0x11 bl audio_play ldr r0, _08014FB4 ldrb r0, [r0] strb r0, [r4] ldr r1, _08014FB8 movs r0, 0x4 strb r0, [r1] pop {r4} pop {r0} bx r0 .align 2, 0 _08014FA8: .4byte 0x02024c07 _08014FAC: .4byte 0x02024a7a _08014FB0: .4byte 0x02024a7e _08014FB4: .4byte 0x02024a68 _08014FB8: .4byte 0x02024d26 thumb_func_end bs8_exit_by_flight thumb_func_start sub_8014FBC sub_8014FBC: @ 8014FBC ldr r3, _08015008 ldr r1, _0801500C ldr r0, _08015010 ldrb r0, [r0] adds r0, r1 ldrb r2, [r0] strb r2, [r3] ldr r0, _08015014 movs r1, 0 strh r1, [r0] ldr r0, _08015018 strh r1, [r0] ldr r1, _0801501C movs r0, 0xFD strb r0, [r1] movs r0, 0x7 strb r0, [r1, 0x1] strb r2, [r1, 0x2] ldr r2, _08015020 ldrb r0, [r3] lsls r0, 1 adds r0, r2 ldrh r0, [r0] strb r0, [r1, 0x3] movs r0, 0xFF strb r0, [r1, 0x4] ldr r1, _08015024 ldr r0, _08015028 ldr r0, [r0, 0xC] str r0, [r1] ldr r1, _0801502C movs r0, 0xA strb r0, [r1] ldr r1, _08015030 movs r0, 0xC strb r0, [r1, 0x1] bx lr .align 2, 0 _08015008: .4byte 0x02024c07 _0801500C: .4byte 0x02024a7a _08015010: .4byte 0x02024a7e _08015014: .4byte 0x030042a4 _08015018: .4byte 0x030042a0 _0801501C: .4byte 0x030041c0 _08015020: .4byte 0x02024a6a _08015024: .4byte 0x02024c10 _08015028: .4byte gUnknown_081D9E98 _0801502C: .4byte 0x02024a7f _08015030: .4byte 0x02024a76 thumb_func_end sub_8014FBC thumb_func_start bsB_exit_by_move bsB_exit_by_move: @ 8015034 push {lr} bl sub_80173A4 lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0 bne _08015050 ldr r0, _08015054 ldr r2, _08015058 adds r0, r2 strb r1, [r0] ldr r1, _0801505C movs r0, 0xC strb r0, [r1] _08015050: pop {r0} bx r0 .align 2, 0 _08015054: .4byte 0x02000000 _08015058: .4byte 0x00016059 _0801505C: .4byte 0x02024a7f thumb_func_end bsB_exit_by_move thumb_func_start sub_8015060 sub_8015060: @ 8015060 ldr r1, _08015080 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] ldr r3, _08015084 ldr r2, _08015088 ldrb r0, [r1] adds r0, r2 ldrb r0, [r0] strb r0, [r3] ldr r2, _0801508C ldr r0, [r2] ldr r1, _08015090 ands r0, r1 str r0, [r2] bx lr .align 2, 0 _08015080: .4byte 0x02024a7e _08015084: .4byte 0x02024a7f _08015088: .4byte 0x02024a76 _0801508C: .4byte 0x02024c6c _08015090: .4byte 0xf1e892af thumb_func_end sub_8015060 thumb_func_start bsC_8016D70 bsC_8016D70: @ 8015094 push {r4,r5,lr} ldr r1, _0801510C ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] ldr r3, _08015110 ldr r2, _08015114 ldrb r0, [r1] adds r0, r2 ldrb r0, [r0] strb r0, [r3] bl sub_801377C ldr r2, _08015118 ldr r0, [r2] ldr r1, _0801511C ands r0, r1 str r0, [r2] ldr r0, _08015120 movs r4, 0 str r4, [r0] ldr r1, _08015124 ldr r2, _08015128 adds r0, r1, r2 strb r4, [r0] ldr r3, _0801512C adds r0, r1, r3 strb r4, [r0] ldr r2, _08015130 ldr r5, _08015134 ldrb r0, [r5] lsls r0, 1 adds r0, r2 movs r2, 0 strh r4, [r0] ldr r3, _08015138 ldrb r0, [r5] lsls r0, 1 adds r0, r3 strh r4, [r0] ldr r3, _0801513C adds r0, r1, r3 strb r2, [r0] ldr r0, _08015140 strh r4, [r0] subs r3, 0x10 adds r0, r1, r3 strb r2, [r0] ldr r0, _08015144 strb r2, [r0, 0x3] strb r2, [r0, 0x4] ldr r3, _08015148 adds r0, r1, r3 strb r2, [r0] ldr r0, _0801514C adds r1, r0 strb r2, [r1] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0801510C: .4byte 0x02024a7e _08015110: .4byte 0x02024a7f _08015114: .4byte 0x02024a76 _08015118: .4byte 0x02024c6c _0801511C: .4byte 0xf1e892af _08015120: .4byte 0x02024bec _08015124: .4byte 0x02000000 _08015128: .4byte 0x00016002 _0801512C: .4byte 0x000160a1 _08015130: .4byte 0x02024c3c _08015134: .4byte 0x02024c07 _08015138: .4byte 0x02024c44 _0801513C: .4byte 0x0001601c _08015140: .4byte 0x02024dec _08015144: .4byte 0x02024d1e _08015148: .4byte 0x00016112 _0801514C: .4byte 0x00017130 thumb_func_end bsC_8016D70 thumb_func_start sub_8015150 sub_8015150: @ 8015150 push {lr} lsls r0, 24 lsrs r0, 24 movs r2, 0 cmp r0, 0xA bhi _080151C8 lsls r0, 2 ldr r1, _08015168 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08015168: .4byte _0801516C .align 2, 0 _0801516C: .4byte _08015198 .4byte _080151A0 .4byte _080151A8 .4byte _080151C4 .4byte _080151C8 .4byte _080151C4 .4byte _080151C8 .4byte _080151B0 .4byte _080151C8 .4byte _080151C8 .4byte _080151B4 _08015198: ldr r0, _0801519C b _080151C6 .align 2, 0 _0801519C: .4byte 0x02024c08 _080151A0: ldr r0, _080151A4 b _080151C6 .align 2, 0 _080151A4: .4byte 0x02024c07 _080151A8: ldr r0, _080151AC b _080151C6 .align 2, 0 _080151AC: .4byte 0x02024c0a _080151B0: movs r2, 0 b _080151C8 _080151B4: ldr r0, _080151BC ldr r1, _080151C0 adds r0, r1 b _080151C6 .align 2, 0 _080151BC: .4byte 0x02000000 _080151C0: .4byte 0x00016003 _080151C4: ldr r0, _080151D0 _080151C6: ldrb r2, [r0] _080151C8: adds r0, r2, 0 pop {r1} bx r1 .align 2, 0 _080151D0: .4byte 0x02024c09 thumb_func_end sub_8015150 thumb_func_start sub_80151D4 sub_80151D4: @ 80151D4 push {r4-r7,lr} sub sp, 0x4 lsls r0, 24 lsrs r0, 24 lsls r1, 24 lsrs r5, r1, 24 lsls r2, 16 lsrs r2, 16 ldr r1, _08015204 movs r4, 0x58 muls r0, r4 adds r0, r1 adds r0, 0x20 ldrb r0, [r0] mov r12, r1 cmp r0, 0x2E bne _08015286 movs r3, 0 adds r0, r5, 0 muls r0, r4 adds r1, 0xC adds r1, r0, r1 b _08015210 .align 2, 0 _08015204: .4byte 0x02024a80 _08015208: adds r1, 0x2 adds r3, 0x1 cmp r3, 0x3 bgt _08015216 _08015210: ldrh r0, [r1] cmp r0, r2 bne _08015208 _08015216: cmp r3, 0x4 beq _08015286 movs r7, 0x58 adds r2, r5, 0 muls r2, r7 adds r0, r3, r2 mov r6, r12 adds r6, 0x24 adds r1, r0, r6 ldrb r0, [r1] cmp r0, 0 beq _08015232 subs r0, 0x1 strb r0, [r1] _08015232: mov r0, r12 adds r0, 0x50 adds r0, r2, r0 ldr r0, [r0] movs r1, 0x80 lsls r1, 14 ands r0, r1 cmp r0, 0 bne _08015286 ldr r1, _08015290 lsls r0, r5, 3 subs r0, r5 lsls r0, 2 adds r0, r1 ldrb r1, [r0, 0x18] lsrs r1, 4 ldr r2, _08015294 lsls r0, r3, 2 adds r0, r2 ldr r0, [r0] ands r1, r0 cmp r1, 0 bne _08015286 ldr r4, _08015298 strb r5, [r4] adds r1, r3, 0 adds r1, 0x9 lsls r1, 24 lsrs r1, 24 ldrb r0, [r4] muls r0, r7 adds r0, r6 adds r0, r3 str r0, [sp] movs r0, 0 movs r2, 0 movs r3, 0x1 bl dp01_build_cmdbuf_x02_a_b_varargs ldrb r0, [r4] bl dp01_battle_side_mark_buffer_for_execution _08015286: add sp, 0x4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08015290: .4byte 0x02024ca8 _08015294: .4byte gUnknown_0820872C _08015298: .4byte 0x02024a60 thumb_func_end sub_80151D4 thumb_func_start sub_801529C sub_801529C: @ 801529C push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x4 lsls r0, 24 lsrs r5, r0, 24 movs r0, 0x4 mov r8, r0 adds r0, r5, 0 bl battle_side_get_owner lsls r0, 24 lsrs r0, 24 mov r9, r0 movs r4, 0 ldr r0, _080153BC ldrb r0, [r0] cmp r4, r0 bge _08015344 ldr r1, _080153C0 movs r0, 0x58 adds r7, r5, 0 muls r7, r0 adds r1, 0xC mov r10, r1 _080152D2: lsls r0, r4, 24 lsrs r0, 24 bl battle_side_get_owner lsls r0, 24 lsrs r0, 24 adds r6, r4, 0x1 cmp r9, r0 beq _0801533A ldr r0, _080153C0 movs r3, 0x58 adds r1, r4, 0 muls r1, r3 adds r1, r0 adds r1, 0x20 ldrb r1, [r1] adds r4, r0, 0 cmp r1, 0x2E bne _0801533A movs r2, 0 adds r0, r5, 0 muls r0, r3 adds r1, r4, 0 adds r1, 0xC adds r0, r1 ldrh r0, [r0] movs r1, 0x8F lsls r1, 1 cmp r0, r1 beq _08015322 adds r3, r1, 0 mov r0, r10 adds r1, r7, r0 _08015314: adds r1, 0x2 adds r2, 0x1 cmp r2, 0x3 bgt _08015322 ldrh r0, [r1] cmp r0, r3 bne _08015314 _08015322: cmp r2, 0x4 beq _0801533A mov r8, r2 adds r1, r2, r7 adds r0, r4, 0 adds r0, 0x24 adds r1, r0 ldrb r0, [r1] cmp r0, 0 beq _0801533A subs r0, 0x1 strb r0, [r1] _0801533A: adds r4, r6, 0 ldr r0, _080153BC ldrb r0, [r0] cmp r4, r0 blt _080152D2 _08015344: mov r1, r8 cmp r1, 0x4 beq _080153AC ldr r6, _080153C0 movs r3, 0x58 adds r0, r5, 0 muls r0, r3 adds r1, r6, 0 adds r1, 0x50 adds r0, r1 ldr r0, [r0] movs r1, 0x80 lsls r1, 14 ands r0, r1 cmp r0, 0 bne _080153AC ldr r1, _080153C4 lsls r0, r5, 3 subs r0, r5 lsls r0, 2 adds r0, r1 ldrb r1, [r0, 0x18] lsrs r1, 4 ldr r2, _080153C8 mov r4, r8 lsls r0, r4, 2 adds r0, r2 ldr r0, [r0] ands r1, r0 cmp r1, 0 bne _080153AC ldr r4, _080153CC strb r5, [r4] mov r1, r8 adds r1, 0x9 lsls r1, 24 lsrs r1, 24 ldrb r0, [r4] muls r0, r3 adds r2, r6, 0 adds r2, 0x24 adds r0, r2 add r0, r8 str r0, [sp] movs r0, 0 movs r2, 0 movs r3, 0x1 bl dp01_build_cmdbuf_x02_a_b_varargs ldrb r0, [r4] bl dp01_battle_side_mark_buffer_for_execution _080153AC: 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 _080153BC: .4byte 0x02024a68 _080153C0: .4byte 0x02024a80 _080153C4: .4byte 0x02024ca8 _080153C8: .4byte gUnknown_0820872C _080153CC: .4byte 0x02024a60 thumb_func_end sub_801529C thumb_func_start sub_80153D0 sub_80153D0: @ 80153D0 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x4 lsls r0, 24 lsrs r3, r0, 24 movs r6, 0x4 movs r1, 0 ldr r0, _080154C8 mov r8, r0 ldrb r0, [r0] cmp r1, r0 bge _08015452 ldr r7, _080154CC movs r2, 0x58 mov r12, r2 mov r5, r12 muls r5, r3 adds r0, r7, 0 adds r0, 0xC adds r2, r5, r0 mov r10, r2 mov r9, r5 _08015402: mov r0, r12 muls r0, r1 adds r0, r7 adds r0, 0x20 ldrb r0, [r0] adds r4, r1, 0x1 cmp r0, 0x2E bne _08015448 cmp r1, r3 beq _08015448 movs r2, 0 mov r1, r10 ldrh r0, [r1] cmp r0, 0xC3 beq _08015432 ldr r1, _080154D0 add r1, r9 _08015424: adds r1, 0x2 adds r2, 0x1 cmp r2, 0x3 bgt _08015432 ldrh r0, [r1] cmp r0, 0xC3 bne _08015424 _08015432: cmp r2, 0x4 beq _08015448 adds r6, r2, 0 adds r0, r6, r5 ldr r2, _080154D4 adds r1, r0, r2 ldrb r0, [r1] cmp r0, 0 beq _08015448 subs r0, 0x1 strb r0, [r1] _08015448: adds r1, r4, 0 mov r0, r8 ldrb r0, [r0] cmp r1, r0 blt _08015402 _08015452: cmp r6, 0x4 beq _080154B6 ldr r7, _080154CC movs r5, 0x58 adds r0, r3, 0 muls r0, r5 adds r1, r7, 0 adds r1, 0x50 adds r0, r1 ldr r0, [r0] movs r1, 0x80 lsls r1, 14 ands r0, r1 cmp r0, 0 bne _080154B6 ldr r1, _080154D8 lsls r0, r3, 3 subs r0, r3 lsls r0, 2 adds r0, r1 ldrb r1, [r0, 0x18] lsrs r1, 4 ldr r2, _080154DC lsls r0, r6, 2 adds r0, r2 ldr r0, [r0] ands r1, r0 cmp r1, 0 bne _080154B6 ldr r4, _080154E0 strb r3, [r4] adds r1, r6, 0 adds r1, 0x9 lsls r1, 24 lsrs r1, 24 ldrb r0, [r4] muls r0, r5 adds r2, r7, 0 adds r2, 0x24 adds r0, r2 adds r0, r6 str r0, [sp] movs r0, 0 movs r2, 0 movs r3, 0x1 bl dp01_build_cmdbuf_x02_a_b_varargs ldrb r0, [r4] bl dp01_battle_side_mark_buffer_for_execution _080154B6: 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 _080154C8: .4byte 0x02024a68 _080154CC: .4byte 0x02024a80 _080154D0: .4byte 0x02024a8c _080154D4: .4byte 0x02024aa4 _080154D8: .4byte 0x02024ca8 _080154DC: .4byte gUnknown_0820872C _080154E0: .4byte 0x02024a60 thumb_func_end sub_80153D0 thumb_func_start unref_sub_80154E4 unref_sub_80154E4: @ 80154E4 push {r4,r5,lr} ldr r0, _08015514 ldrh r1, [r0] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _08015524 movs r2, 0 ldr r4, _08015518 ldrb r0, [r4] cmp r2, r0 bge _08015542 ldr r3, _0801551C ldr r5, _08015520 _08015500: ldm r5!, {r1} lsls r1, 28 ldr r0, [r3] orrs r0, r1 str r0, [r3] adds r2, 0x1 ldrb r0, [r4] cmp r2, r0 blt _08015500 b _08015542 .align 2, 0 _08015514: .4byte 0x020239f8 _08015518: .4byte 0x02024a68 _0801551C: .4byte 0x02024a64 _08015520: .4byte gUnknown_0820872C _08015524: movs r2, 0 ldr r4, _08015548 ldrb r0, [r4] cmp r2, r0 bge _08015542 ldr r3, _0801554C ldr r5, _08015550 _08015532: ldr r0, [r3] ldm r5!, {r1} orrs r0, r1 str r0, [r3] adds r2, 0x1 ldrb r0, [r4] cmp r2, r0 blt _08015532 _08015542: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08015548: .4byte 0x02024a68 _0801554C: .4byte 0x02024a64 _08015550: .4byte gUnknown_0820872C thumb_func_end unref_sub_80154E4 thumb_func_start dp01_battle_side_mark_buffer_for_execution dp01_battle_side_mark_buffer_for_execution: @ 8015554 push {lr} lsls r0, 24 lsrs r3, r0, 24 ldr r0, _0801557C ldrh r1, [r0] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _08015588 ldr r2, _08015580 ldr r1, _08015584 lsls r0, r3, 2 adds r0, r1 ldr r1, [r0] lsls r1, 28 ldr r0, [r2] orrs r0, r1 str r0, [r2] b _08015598 .align 2, 0 _0801557C: .4byte 0x020239f8 _08015580: .4byte 0x02024a64 _08015584: .4byte gUnknown_0820872C _08015588: ldr r2, _0801559C ldr r1, _080155A0 lsls r0, r3, 2 adds r0, r1 ldr r1, [r2] ldr r0, [r0] orrs r1, r0 str r1, [r2] _08015598: pop {r0} bx r0 .align 2, 0 _0801559C: .4byte 0x02024a64 _080155A0: .4byte gUnknown_0820872C thumb_func_end dp01_battle_side_mark_buffer_for_execution thumb_func_start sub_80155A4 sub_80155A4: @ 80155A4 push {r4-r7,lr} lsls r0, 24 lsrs r7, r0, 24 movs r4, 0 ldr r5, _080155B8 ldr r1, _080155BC lsls r0, r7, 2 adds r6, r0, r1 b _080155CE .align 2, 0 _080155B8: .4byte 0x02024a64 _080155BC: .4byte gUnknown_0820872C _080155C0: lsls r0, r4, 2 ldr r1, [r6] lsls r1, r0 ldr r0, [r5] orrs r0, r1 str r0, [r5] adds r4, 0x1 _080155CE: bl GetLinkPlayerCount lsls r0, 24 lsrs r0, 24 cmp r4, r0 blt _080155C0 ldr r2, _080155F0 movs r1, 0x80 lsls r1, 21 lsls r1, r7 ldr r0, [r2] bics r0, r1 str r0, [r2] pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080155F0: .4byte 0x02024a64 thumb_func_end sub_80155A4 thumb_func_start b_cancel_multi_turn_move_maybe b_cancel_multi_turn_move_maybe: @ 80155F4 lsls r0, 24 lsrs r0, 24 ldr r1, _08015644 movs r2, 0x58 adds r3, r0, 0 muls r3, r2 adds r1, 0x50 adds r3, r1 ldr r1, [r3] ldr r2, _08015648 ands r1, r2 ldr r2, _0801564C ands r1, r2 movs r2, 0x71 negs r2, r2 ands r1, r2 ldr r2, _08015650 ands r1, r2 str r1, [r3] ldr r1, _08015654 lsls r2, r0, 2 adds r2, r1 ldr r1, [r2] ldr r3, _08015658 ands r1, r3 str r1, [r2] ldr r2, _0801565C lsls r1, r0, 3 subs r1, r0 lsls r1, 2 adds r1, r2 ldrb r2, [r1, 0x11] movs r0, 0x10 negs r0, r0 ands r0, r2 strb r0, [r1, 0x11] movs r0, 0 strb r0, [r1, 0x10] bx lr .align 2, 0 _08015644: .4byte 0x02024a80 _08015648: .4byte 0xffffefff _0801564C: .4byte 0xfffff3ff _08015650: .4byte 0xfffffcff _08015654: .4byte 0x02024c98 _08015658: .4byte 0xfffbff3f _0801565C: .4byte 0x02024ca8 thumb_func_end b_cancel_multi_turn_move_maybe thumb_func_start sub_8015660 sub_8015660: @ 8015660 push {lr} lsls r0, 24 ldr r1, _080156AC lsrs r0, 20 adds r1, r0, r1 ldrb r0, [r1] lsrs r0, 7 cmp r0, 0 bne _080156A6 ldrb r2, [r1, 0x1] lsls r0, r2, 30 cmp r0, 0 blt _080156A6 lsls r0, r2, 26 cmp r0, 0 blt _080156A6 lsls r0, r2, 25 cmp r0, 0 blt _080156A6 lsrs r0, r2, 7 cmp r0, 0 bne _080156A6 ldrb r1, [r1, 0x2] lsls r0, r1, 31 cmp r0, 0 bne _080156A6 lsls r0, r1, 30 cmp r0, 0 blt _080156A6 lsls r0, r1, 29 cmp r0, 0 blt _080156A6 lsls r0, r2, 31 cmp r0, 0 beq _080156B0 _080156A6: movs r0, 0x1 b _080156B2 .align 2, 0 _080156AC: .4byte 0x02024d28 _080156B0: movs r0, 0 _080156B2: pop {r1} bx r1 thumb_func_end sub_8015660 thumb_func_start b_std_message b_std_message: @ 80156B8 push {r4,lr} adds r2, r0, 0 lsls r2, 16 lsrs r2, 16 ldr r4, _080156D8 strb r1, [r4] movs r0, 0 adds r1, r2, 0 bl dp01_build_cmdbuf_x10_TODO ldrb r0, [r4] bl dp01_battle_side_mark_buffer_for_execution pop {r4} pop {r0} bx r0 .align 2, 0 _080156D8: .4byte 0x02024a60 thumb_func_end b_std_message thumb_func_start sub_80156DC sub_80156DC: @ 80156DC push {r4-r6,lr} movs r3, 0 ldr r0, _08015730 strb r3, [r0] strb r3, [r0, 0x1] movs r1, 0 ldr r0, _08015734 ldrb r2, [r0] adds r6, r0, 0 cmp r1, r2 bge _0801570A ldr r5, _08015738 adds r4, r2, 0 ldr r2, _0801573C _080156F8: ldrh r0, [r2] lsls r0, 2 adds r0, r5 ldr r0, [r0] orrs r3, r0 adds r2, 0x4 adds r1, 0x2 cmp r1, r4 blt _080156F8 _0801570A: movs r1, 0x1 adds r2, r6, 0 ldrb r0, [r2] cmp r1, r0 bge _0801572A ldr r5, _08015730 movs r4, 0x2 _08015718: adds r0, r1, 0 ands r0, r4 asrs r0, 1 adds r0, r5 strb r3, [r0] adds r1, 0x2 ldrb r0, [r2] cmp r1, r0 blt _08015718 _0801572A: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08015730: .4byte 0x02024dea _08015734: .4byte 0x02024a68 _08015738: .4byte gUnknown_0820872C _0801573C: .4byte 0x02024a6a thumb_func_end sub_80156DC thumb_func_start sub_8015740 sub_8015740: @ 8015740 push {r4-r7,lr} mov r7, r8 push {r7} lsls r0, 24 lsrs r5, r0, 24 movs r4, 0 adds r0, r5, 0 bl battle_side_get_owner lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080157A4 movs r0, 0x2 ands r0, r5 lsls r0, 24 lsrs r0, 25 mov r12, r0 ldr r1, _080157B0 adds r0, r1 strb r4, [r0] adds r5, r4, 0 ldr r0, _080157B4 ldrb r2, [r0] mov r8, r1 cmp r4, r2 bge _0801579E ldr r0, _080157B8 ldrb r7, [r0] ldr r1, _080157BC adds r6, r2, 0 ldr r3, _080157C0 adds r2, r1, 0 _08015782: ldr r0, [r2] ands r0, r7 cmp r0, 0 bne _08015794 ldrh r0, [r3] lsls r0, 2 adds r0, r1 ldr r0, [r0] orrs r4, r0 _08015794: adds r3, 0x4 adds r2, 0x8 adds r5, 0x2 cmp r5, r6 blt _08015782 _0801579E: mov r0, r12 add r0, r8 strb r4, [r0] _080157A4: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080157B0: .4byte 0x02024dea _080157B4: .4byte 0x02024a68 _080157B8: .4byte 0x02024c0c _080157BC: .4byte gUnknown_0820872C _080157C0: .4byte 0x02024a6a thumb_func_end sub_8015740 thumb_func_start sub_80157C4 sub_80157C4: @ 80157C4 push {r4-r7,lr} lsls r0, 24 lsrs r4, r0, 24 adds r0, r4, 0 bl battle_side_get_owner lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080157E0 adds r0, r4, 0 bl sub_8015740 b _08015816 _080157E0: movs r3, 0x1 ldr r5, _0801581C ldrb r0, [r5] cmp r3, r0 bge _08015816 ldr r0, _08015820 mov r12, r0 movs r7, 0x2 ldr r6, _08015824 ldr r1, _08015828 lsls r0, r4, 1 adds r4, r0, r1 _080157F8: adds r2, r3, 0 ands r2, r7 asrs r2, 1 add r2, r12 ldrh r0, [r4] lsls r0, 2 adds r0, r6 ldr r0, [r0] ldrb r1, [r2] orrs r0, r1 strb r0, [r2] adds r3, 0x1 ldrb r0, [r5] cmp r3, r0 blt _080157F8 _08015816: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0801581C: .4byte 0x02024a68 _08015820: .4byte 0x02024dea _08015824: .4byte gUnknown_0820872C _08015828: .4byte 0x02024a6a thumb_func_end sub_80157C4 thumb_func_start b_movescr_stack_push b_movescr_stack_push: @ 801582C push {r4,lr} ldr r4, _08015848 adds r3, r4, 0 adds r3, 0x20 ldrb r1, [r3] adds r2, r1, 0x1 strb r2, [r3] lsls r1, 24 lsrs r1, 22 adds r1, r4 str r0, [r1] pop {r4} pop {r0} bx r0 .align 2, 0 _08015848: .4byte 0x02017110 thumb_func_end b_movescr_stack_push thumb_func_start b_movescr_stack_push_cursor b_movescr_stack_push_cursor: @ 801584C ldr r3, _08015868 adds r2, r3, 0 adds r2, 0x20 ldrb r0, [r2] adds r1, r0, 0x1 strb r1, [r2] lsls r0, 24 lsrs r0, 22 adds r0, r3 ldr r1, _0801586C ldr r1, [r1] str r1, [r0] bx lr .align 2, 0 _08015868: .4byte 0x02017110 _0801586C: .4byte 0x02024c10 thumb_func_end b_movescr_stack_push_cursor thumb_func_start b_movescr_stack_pop_cursor b_movescr_stack_pop_cursor: @ 8015870 ldr r3, _0801588C ldr r2, _08015890 adds r1, r2, 0 adds r1, 0x20 ldrb r0, [r1] subs r0, 0x1 strb r0, [r1] lsls r0, 24 lsrs r0, 22 adds r0, r2 ldr r0, [r0] str r0, [r3] bx lr .align 2, 0 _0801588C: .4byte 0x02024c10 _08015890: .4byte 0x02017110 thumb_func_end b_movescr_stack_pop_cursor thumb_func_start sub_8015894 sub_8015894: @ 8015894 push {r4-r7,lr} mov r7, r8 push {r7} movs r6, 0 ldr r2, _080159AC ldr r1, _080159B0 ldr r5, _080159B4 ldrb r3, [r5] lsls r0, r3, 9 adds r1, 0x2 adds r0, r1 ldrb r0, [r0] lsls r0, 1 movs r1, 0x58 muls r1, r3 adds r0, r1 adds r2, 0xC adds r0, r2 ldrh r4, [r0] lsls r0, r3, 1 ldr r2, _080159B8 adds r0, r2 mov r8, r0 ldr r1, _080159BC lsls r0, r3, 3 subs r0, r3 lsls r0, 2 adds r0, r1 ldrh r0, [r0, 0x4] cmp r0, r4 bne _080158EE cmp r4, 0 beq _080158EE adds r0, r2, 0 subs r0, 0xE5 strb r3, [r0] ldr r0, _080159C0 strh r4, [r0] ldr r1, _080159C4 ldrb r0, [r5] lsls r0, 2 adds r0, r1 ldr r1, _080159C8 str r1, [r0] movs r6, 0x1 _080158EE: ldr r1, _080159CC ldr r5, _080159B4 ldrb r2, [r5] lsls r0, r2, 1 adds r0, r1 ldrh r0, [r0] cmp r4, r0 bne _0801592A cmp r4, 0xA5 beq _0801592A ldr r1, _080159AC movs r0, 0x58 muls r0, r2 adds r1, 0x50 adds r0, r1 ldr r0, [r0] cmp r0, 0 bge _0801592A adds r0, r2, 0 bl b_cancel_multi_turn_move_maybe ldr r1, _080159C4 ldrb r0, [r5] lsls r0, 2 adds r0, r1 ldr r1, _080159D0 str r1, [r0] adds r0, r6, 0x1 lsls r0, 24 lsrs r6, r0, 24 _0801592A: ldr r2, _080159BC ldr r3, _080159B4 ldrb r1, [r3] lsls r0, r1, 3 subs r0, r1 lsls r0, 2 adds r0, r2 ldrb r0, [r0, 0x13] lsls r0, 28 cmp r0, 0 beq _08015966 ldr r0, _080159D4 lsls r1, r4, 1 adds r1, r4 lsls r1, 2 adds r1, r0 ldrb r0, [r1, 0x1] cmp r0, 0 bne _08015966 ldr r0, _080159C0 strh r4, [r0] ldr r1, _080159C4 ldrb r0, [r3] lsls r0, 2 adds r0, r1 ldr r1, _080159D8 str r1, [r0] adds r0, r6, 0x1 lsls r0, 24 lsrs r6, r0, 24 _08015966: ldr r5, _080159B4 ldrb r0, [r5] adds r1, r4, 0 bl sub_8015D5C lsls r0, 24 cmp r0, 0 beq _0801598C ldr r0, _080159C0 strh r4, [r0] ldr r1, _080159C4 ldrb r0, [r5] lsls r0, 2 adds r0, r1 ldr r1, _080159DC str r1, [r0] adds r0, r6, 0x1 lsls r0, 24 lsrs r6, r0, 24 _0801598C: ldr r1, _080159AC ldrb r2, [r5] movs r0, 0x58 muls r0, r2 adds r1, r0, r1 ldrh r0, [r1, 0x2E] cmp r0, 0xAF bne _080159E4 ldr r1, _080159E0 lsls r0, r2, 3 subs r0, r2 lsls r0, 2 adds r0, r1 ldrb r3, [r0, 0x7] b _080159EE .align 2, 0 _080159AC: .4byte 0x02024a80 _080159B0: .4byte 0x02024260 _080159B4: .4byte 0x02024a60 _080159B8: .4byte 0x020160e8 _080159BC: .4byte 0x02024ca8 _080159C0: .4byte 0x02024be6 _080159C4: .4byte 0x02024c1c _080159C8: .4byte gUnknown_081D9144 _080159CC: .4byte 0x02024c34 _080159D0: .4byte gUnknown_081D937C _080159D4: .4byte gBattleMoves _080159D8: .4byte gUnknown_081D938B _080159DC: .4byte gUnknown_081D9464 _080159E0: .4byte 0x02024df0 _080159E4: ldrh r0, [r1, 0x2E] bl itemid_get_x12 lsls r0, 24 lsrs r3, r0, 24 _080159EE: ldr r2, _08015A70 ldr r1, _08015A74 ldrb r0, [r1] strb r0, [r2] ldr r7, _08015A78 adds r5, r1, 0 cmp r3, 0x1D bne _08015A36 mov r0, r8 ldrh r2, [r0] adds r1, r2, 0 cmp r1, 0 beq _08015A36 ldr r0, _08015A7C cmp r1, r0 beq _08015A36 cmp r1, r4 beq _08015A36 ldr r0, _08015A80 strh r2, [r0] ldr r2, _08015A84 ldrb r1, [r5] movs r0, 0x58 muls r0, r1 adds r0, r7 ldrh r0, [r0, 0x2E] strh r0, [r2] ldr r1, _08015A88 ldrb r0, [r5] lsls r0, 2 adds r0, r1 ldr r1, _08015A8C str r1, [r0] adds r0, r6, 0x1 lsls r0, 24 lsrs r6, r0, 24 _08015A36: ldr r0, _08015A90 ldrb r2, [r5] lsls r1, r2, 9 adds r0, 0x2 adds r1, r0 movs r0, 0x58 muls r0, r2 ldrb r1, [r1] adds r0, r1 adds r1, r7, 0 adds r1, 0x24 adds r0, r1 ldrb r0, [r0] cmp r0, 0 bne _08015A64 ldr r1, _08015A88 lsls r0, r2, 2 adds r0, r1 ldr r1, _08015A94 str r1, [r0] adds r0, r6, 0x1 lsls r0, 24 lsrs r6, r0, 24 _08015A64: adds r0, r6, 0 pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _08015A70: .4byte 0x02024c0b _08015A74: .4byte 0x02024a60 _08015A78: .4byte 0x02024a80 _08015A7C: .4byte 0x0000ffff _08015A80: .4byte 0x02024be6 _08015A84: .4byte 0x02024c04 _08015A88: .4byte 0x02024c1c _08015A8C: .4byte gUnknown_081D9AC2 _08015A90: .4byte 0x02024260 _08015A94: .4byte gUnknown_081D9369 thumb_func_end sub_8015894 thumb_func_start sub_8015A98 sub_8015A98: @ 8015A98 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x1C lsls r0, 24 lsrs r7, r0, 24 lsls r1, 24 lsrs r4, r1, 24 lsls r2, 24 lsrs r3, r2, 24 lsls r1, r7, 1 ldr r0, _08015AD8 adds r1, r0 str r1, [sp, 0x4] ldr r1, _08015ADC movs r0, 0x58 muls r0, r7 adds r1, r0, r1 ldrh r0, [r1, 0x2E] cmp r0, 0xAF bne _08015AE4 ldr r2, _08015AE0 lsls r1, r7, 3 subs r0, r1, r7 lsls r0, 2 adds r0, r2 ldrb r0, [r0, 0x7] str r0, [sp] b _08015AF6 .align 2, 0 _08015AD8: .4byte 0x020160e8 _08015ADC: .4byte 0x02024a80 _08015AE0: .4byte 0x02024df0 _08015AE4: ldrh r0, [r1, 0x2E] str r3, [sp, 0x14] bl itemid_get_x12 lsls r0, 24 lsrs r0, 24 str r0, [sp] lsls r1, r7, 3 ldr r3, [sp, 0x14] _08015AF6: ldr r0, _08015C70 strb r7, [r0] movs r0, 0 mov r9, r0 lsls r2, r7, 1 str r2, [sp, 0xC] ldr r5, _08015C74 mov r12, r5 ldr r0, _08015C78 movs r2, 0x58 adds r6, r7, 0 muls r6, r2 str r6, [sp, 0x8] ldr r2, _08015C7C adds r5, r6, r2 movs r6, 0 str r6, [sp, 0x10] mov r10, r0 subs r0, r1, r7 lsls r0, 2 mov r8, r0 ldr r6, _08015C80 _08015B22: ldrh r0, [r5] cmp r0, 0 bne _08015B38 movs r0, 0x1 ands r0, r3 cmp r0, 0 beq _08015B38 ldr r0, [r6] orrs r4, r0 lsls r0, r4, 24 lsrs r4, r0, 24 _08015B38: ldr r0, [sp, 0x8] add r0, r9 mov r1, r10 adds r1, 0x24 adds r0, r1 ldrb r0, [r0] cmp r0, 0 bne _08015B58 movs r0, 0x2 ands r0, r3 cmp r0, 0 beq _08015B58 ldr r0, [r6] orrs r4, r0 lsls r0, r4, 24 lsrs r4, r0, 24 _08015B58: mov r1, r8 add r1, r12 ldrh r0, [r5] ldrh r1, [r1, 0x4] cmp r0, r1 bne _08015B74 movs r0, 0x4 ands r0, r3 cmp r0, 0 beq _08015B74 ldr r0, [r6] orrs r4, r0 lsls r0, r4, 24 lsrs r4, r0, 24 _08015B74: movs r0, 0x58 adds r2, r7, 0 muls r2, r0 ldr r1, [sp, 0x10] adds r0, r1, r2 ldr r1, _08015C7C adds r0, r1 mov r12, r0 ldr r1, _08015C84 ldr r0, [sp, 0xC] adds r1, r0, r1 str r1, [sp, 0x18] mov r1, r12 ldrh r1, [r1] mov r12, r1 ldr r0, [sp, 0x18] ldrh r0, [r0] cmp r12, r0 bne _08015BB6 movs r0, 0x8 ands r0, r3 cmp r0, 0 beq _08015BB6 mov r0, r10 adds r0, 0x50 adds r0, r2, r0 ldr r0, [r0] cmp r0, 0 bge _08015BB6 ldr r0, [r6] orrs r4, r0 lsls r0, r4, 24 lsrs r4, r0, 24 _08015BB6: ldr r0, _08015C74 add r0, r8 ldrb r0, [r0, 0x13] lsls r0, 28 cmp r0, 0 beq _08015BE4 movs r0, 0x10 ands r0, r3 cmp r0, 0 beq _08015BE4 ldr r2, _08015C88 ldrh r1, [r5] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r0, [r0, 0x1] cmp r0, 0 bne _08015BE4 ldr r0, [r6] orrs r4, r0 lsls r0, r4, 24 lsrs r4, r0, 24 _08015BE4: ldrh r1, [r5] adds r0, r7, 0 str r3, [sp, 0x14] bl sub_8015D5C lsls r0, 24 ldr r3, [sp, 0x14] cmp r0, 0 beq _08015C06 movs r0, 0x20 ands r0, r3 cmp r0, 0 beq _08015C06 ldr r0, [r6] orrs r4, r0 lsls r0, r4, 24 lsrs r4, r0, 24 _08015C06: ldr r1, _08015C74 mov r0, r8 adds r2, r0, r1 ldrb r0, [r2, 0xE] lsls r0, 28 mov r12, r1 cmp r0, 0 beq _08015C26 ldrh r0, [r2, 0x6] ldrh r1, [r5] cmp r0, r1 beq _08015C26 ldr r0, [r6] orrs r4, r0 lsls r0, r4, 24 lsrs r4, r0, 24 _08015C26: ldr r2, [sp] cmp r2, 0x1D bne _08015C48 ldr r0, [sp, 0x4] ldrh r1, [r0] cmp r1, 0 beq _08015C48 ldr r0, _08015C8C cmp r1, r0 beq _08015C48 ldrh r2, [r5] cmp r1, r2 beq _08015C48 ldr r0, [r6] orrs r4, r0 lsls r0, r4, 24 lsrs r4, r0, 24 _08015C48: adds r6, 0x4 adds r5, 0x2 ldr r0, [sp, 0x10] adds r0, 0x2 str r0, [sp, 0x10] movs r1, 0x1 add r9, r1 mov r2, r9 cmp r2, 0x3 bgt _08015C5E b _08015B22 _08015C5E: adds r0, r4, 0 add sp, 0x1C pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _08015C70: .4byte 0x02024c0b _08015C74: .4byte 0x02024ca8 _08015C78: .4byte 0x02024a80 _08015C7C: .4byte 0x02024a8c _08015C80: .4byte gUnknown_0820872C _08015C84: .4byte 0x02024c34 _08015C88: .4byte gBattleMoves _08015C8C: .4byte 0x0000ffff thumb_func_end sub_8015A98 thumb_func_start sub_8015C90 sub_8015C90: @ 8015C90 push {r4-r6,lr} ldr r5, _08015CFC ldrb r0, [r5] movs r1, 0 movs r2, 0xFF bl sub_8015A98 lsls r0, 24 lsrs r6, r0, 24 cmp r6, 0xF bne _08015D38 ldr r0, _08015D00 ldrb r1, [r5] lsls r1, 4 adds r1, r0 ldrb r0, [r1] movs r2, 0x4 orrs r0, r2 strb r0, [r1] ldr r1, _08015D04 ldrb r0, [r5] lsls r0, 2 adds r0, r1 ldr r1, _08015D08 str r1, [r0] ldr r0, _08015D0C ldrh r1, [r0] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _08015D14 ldrb r0, [r5] bl battle_get_per_side_status adds r4, r0, 0 bl Random movs r1, 0x1 eors r4, r1 movs r1, 0x2 ands r1, r0 orrs r4, r1 lsls r4, 24 lsrs r4, 24 adds r0, r4, 0 bl battle_get_side_with_given_state ldr r2, _08015D10 ldrb r1, [r5] lsls r1, 9 adds r2, 0x3 adds r1, r2 b _08015D48 .align 2, 0 _08015CFC: .4byte 0x02024a60 _08015D00: .4byte 0x02024d28 _08015D04: .4byte 0x02024c1c _08015D08: .4byte gUnknown_081D9365 _08015D0C: .4byte 0x020239f8 _08015D10: .4byte 0x02024260 _08015D14: ldrb r0, [r5] bl battle_get_per_side_status movs r1, 0x1 eors r0, r1 lsls r0, 24 lsrs r0, 24 bl battle_get_side_with_given_state ldr r2, _08015D34 ldrb r1, [r5] lsls r1, 9 adds r2, 0x3 adds r1, r2 b _08015D48 .align 2, 0 _08015D34: .4byte 0x02024260 _08015D38: ldr r0, _08015D58 ldrb r1, [r5] lsls r1, 4 adds r1, r0 ldrb r2, [r1] movs r0, 0x5 negs r0, r0 ands r0, r2 _08015D48: strb r0, [r1] movs r0, 0 cmp r6, 0xF bne _08015D52 movs r0, 0x1 _08015D52: pop {r4-r6} pop {r1} bx r1 .align 2, 0 _08015D58: .4byte 0x02024d28 thumb_func_end sub_8015C90 thumb_func_start sub_8015D5C sub_8015D5C: @ 8015D5C push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} lsls r0, 24 lsrs r0, 24 lsls r1, 16 lsrs r5, r1, 16 movs r6, 0 bl battle_side_get_owner lsls r0, 24 lsrs r0, 24 mov r9, r0 movs r4, 0 ldr r0, _08015DF0 ldrb r0, [r0] cmp r6, r0 bge _08015DE0 ldr r7, _08015DF4 mov r8, r7 _08015D86: lsls r0, r4, 24 lsrs r0, 24 bl battle_side_get_owner lsls r0, 24 lsrs r0, 24 adds r3, r4, 0x1 cmp r9, r0 beq _08015DD6 ldr r1, _08015DF8 lsls r0, r4, 2 adds r0, r1 ldr r0, [r0] movs r1, 0x80 lsls r1, 6 ands r0, r1 cmp r0, 0 beq _08015DD6 movs r2, 0 movs r0, 0x58 adds r1, r4, 0 muls r1, r0 adds r0, r1, r7 ldrh r0, [r0] cmp r5, r0 beq _08015DCC mov r4, r8 adds r0, r1, r4 _08015DBE: adds r0, 0x2 adds r2, 0x1 cmp r2, 0x3 bgt _08015DD6 ldrh r1, [r0] cmp r5, r1 bne _08015DBE _08015DCC: cmp r2, 0x3 bgt _08015DD6 adds r0, r6, 0x1 lsls r0, 24 lsrs r6, r0, 24 _08015DD6: adds r4, r3, 0 ldr r0, _08015DF0 ldrb r0, [r0] cmp r4, r0 blt _08015D86 _08015DE0: adds r0, r6, 0 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _08015DF0: .4byte 0x02024a68 _08015DF4: .4byte 0x02024a8c _08015DF8: .4byte 0x02024c98 thumb_func_end sub_8015D5C thumb_func_start sub_8015DFC sub_8015DFC: @ 8015DFC push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} movs r0, 0 mov r9, r0 ldr r1, _08015EA0 mov r2, r9 strb r2, [r1] ldr r0, _08015EA4 ldrb r4, [r0] adds r6, r1, 0 mov r10, r0 ldr r7, _08015EA8 ldr r3, _08015EAC mov r12, r3 cmp r9, r4 bcs _08015E50 ldr r2, _08015EB0 ldrb r1, [r2] ldr r5, _08015EB4 ldr r0, [r5] ands r1, r0 cmp r1, 0 beq _08015E50 adds r3, r6, 0 _08015E32: ldrb r0, [r3] adds r0, 0x1 strb r0, [r3] lsls r0, 24 lsrs r0, 24 cmp r0, r4 bcs _08015E50 ldrb r0, [r2] ldrb r1, [r6] lsls r1, 2 adds r1, r5 ldr r1, [r1] ands r0, r1 cmp r0, 0 bne _08015E32 _08015E50: movs r0, 0 strb r0, [r7] mov r0, r10 ldrb r4, [r0] cmp r4, 0 beq _08015E8A ldr r2, _08015EB0 ldrb r1, [r2] ldr r5, _08015EB4 ldr r0, [r5] ands r1, r0 cmp r1, 0 beq _08015E8A adds r3, r7, 0 _08015E6C: ldrb r0, [r3] adds r0, 0x1 strb r0, [r3] lsls r0, 24 lsrs r0, 24 cmp r0, r4 bcs _08015E8A ldrb r0, [r2] ldrb r1, [r7] lsls r1, 2 adds r1, r5 ldr r1, [r1] ands r0, r1 cmp r0, 0 bne _08015E6C _08015E8A: ldr r0, _08015EB8 add r0, r12 ldrb r0, [r0] cmp r0, 0xA bls _08015E96 b _0801652A _08015E96: lsls r0, 2 ldr r1, _08015EBC adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08015EA0: .4byte 0x02024c07 _08015EA4: .4byte 0x02024a68 _08015EA8: .4byte 0x02024c08 _08015EAC: .4byte 0x02000000 _08015EB0: .4byte 0x02024c0c _08015EB4: .4byte gUnknown_0820872C _08015EB8: .4byte 0x0001600e _08015EBC: .4byte _08015EC0 .align 2, 0 _08015EC0: .4byte _08015EEC .4byte _08015F74 .4byte _08016034 .4byte _080160F4 .4byte _080161C8 .4byte _08016274 .4byte _08016324 .4byte _080163A8 .4byte _08016420 .4byte _08016494 .4byte _08016520 _08015EEC: movs r5, 0 ldr r1, _08015F0C mov r10, r1 ldrb r2, [r1] cmp r5, r2 bge _08015F06 ldr r2, _08015F10 _08015EFA: adds r0, r5, r2 strb r5, [r0] adds r5, 0x1 ldrb r3, [r1] cmp r5, r3 blt _08015EFA _08015F06: movs r5, 0 b _08015F54 .align 2, 0 _08015F0C: .4byte 0x02024a68 _08015F10: .4byte 0x02024a7a _08015F14: adds r4, r5, 0x1 adds r6, r4, 0 ldrb r1, [r1] cmp r6, r1 bge _08015F52 ldr r7, _08016004 ldr r0, _08016008 mov r10, r0 lsls r1, r5, 24 mov r8, r1 _08015F28: adds r0, r5, r7 ldrb r0, [r0] adds r1, r4, r7 ldrb r1, [r1] movs r2, 0 bl b_first_side lsls r0, 24 cmp r0, 0 beq _08015F48 lsls r1, r4, 24 lsrs r1, 24 mov r2, r8 lsrs r0, r2, 24 bl sub_8012FBC _08015F48: adds r4, 0x1 ldr r0, _08016008 ldrb r0, [r0] cmp r4, r0 blt _08015F28 _08015F52: adds r5, r6, 0 _08015F54: mov r1, r10 ldrb r0, [r1] subs r0, 0x1 cmp r5, r0 blt _08015F14 ldr r1, _0801600C ldr r3, _08016010 adds r2, r1, r3 ldrb r0, [r2] adds r0, 0x1 movs r3, 0 strb r0, [r2] ldr r2, _08016014 adds r0, r1, r2 strb r3, [r0] mov r12, r1 _08015F74: ldr r1, _08016014 add r1, r12 ldrb r0, [r1] cmp r0, 0x1 bls _08015F80 b _08016236 _08015F80: ldr r3, _08016018 mov r8, r3 adds r6, r1, 0 movs r7, 0 ldr r5, _0801601C _08015F8A: ldr r0, _08016020 ldrb r4, [r6] strb r4, [r0] mov r0, r8 strb r4, [r0] ldr r0, _08016024 lsls r2, r4, 1 adds r3, r2, r0 ldrh r1, [r3] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _08015FE8 ldr r0, _08016028 adds r1, r2, r4 lsls r1, 2 adds r1, r0 ldrb r0, [r1] subs r0, 0x1 strb r0, [r1] movs r4, 0xFF lsls r0, 24 cmp r0, 0 bne _08015FE8 ldrh r0, [r3] ldr r2, _0801602C adds r1, r2, 0 ands r0, r1 strh r0, [r3] ldr r0, _08016030 bl b_call_bc_move_exec movs r0, 0xFD strb r0, [r5] movs r0, 0x2 strb r0, [r5, 0x1] movs r0, 0x73 strb r0, [r5, 0x2] strb r7, [r5, 0x3] ldrb r0, [r5, 0x4] orrs r0, r4 strb r0, [r5, 0x4] mov r0, r9 adds r0, 0x1 lsls r0, 24 lsrs r0, 24 mov r9, r0 _08015FE8: ldrb r0, [r6] adds r0, 0x1 strb r0, [r6] ldr r3, _0801600C mov r12, r3 mov r1, r9 cmp r1, 0 beq _08015FFA b _08016532 _08015FFA: lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bls _08015F8A b _08016236 .align 2, 0 _08016004: .4byte 0x02024a7a _08016008: .4byte 0x02024a68 _0801600C: .4byte 0x02000000 _08016010: .4byte 0x0001600e _08016014: .4byte 0x000160fc _08016018: .4byte 0x02024a60 _0801601C: .4byte 0x030041c0 _08016020: .4byte 0x02024c07 _08016024: .4byte 0x02024c7a _08016028: .4byte 0x02024c80 _0801602C: .4byte 0x0000fffe _08016030: .4byte gUnknown_081D9030 _08016034: ldr r1, _080160CC add r1, r12 ldrb r0, [r1] cmp r0, 0x1 bls _08016040 b _08016182 _08016040: adds r7, r1, 0 movs r3, 0x2 mov r10, r3 movs r0, 0 mov r8, r0 ldr r5, _080160D0 _0801604C: ldr r0, _080160D4 ldrb r4, [r7] strb r4, [r0] ldr r1, _080160D8 strb r4, [r1] ldr r0, _080160DC lsls r2, r4, 1 adds r3, r2, r0 ldrh r1, [r3] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _080160B0 ldr r0, _080160E0 adds r1, r2, r4 lsls r1, 2 adds r1, r0 ldrb r0, [r1, 0x1] subs r0, 0x1 strb r0, [r1, 0x1] movs r6, 0xFF lsls r0, 24 cmp r0, 0 bne _080160B0 ldrh r0, [r3] ldr r2, _080160E4 adds r1, r2, 0 ands r0, r1 strh r0, [r3] ldr r0, _080160E8 bl b_call_bc_move_exec ldr r0, _080160EC strb r4, [r0, 0x5] movs r0, 0xFD strb r0, [r5] mov r3, r10 strb r3, [r5, 0x1] movs r0, 0x71 strb r0, [r5, 0x2] mov r0, r8 strb r0, [r5, 0x3] ldrb r0, [r5, 0x4] orrs r0, r6 strb r0, [r5, 0x4] mov r0, r9 adds r0, 0x1 lsls r0, 24 lsrs r0, 24 mov r9, r0 _080160B0: ldrb r0, [r7] adds r0, 0x1 strb r0, [r7] ldr r1, _080160F0 mov r12, r1 mov r2, r9 cmp r2, 0 beq _080160C2 b _08016532 _080160C2: lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bls _0801604C b _08016182 .align 2, 0 _080160CC: .4byte 0x000160fc _080160D0: .4byte 0x030041c0 _080160D4: .4byte 0x02024c07 _080160D8: .4byte 0x02024a60 _080160DC: .4byte 0x02024c7a _080160E0: .4byte 0x02024c80 _080160E4: .4byte 0x0000fffd _080160E8: .4byte gUnknown_081D9030 _080160EC: .4byte 0x02024d1e _080160F0: .4byte 0x02000000 _080160F4: ldr r1, _0801619C add r1, r12 ldrb r0, [r1] cmp r0, 0x1 bhi _08016182 ldr r0, _080161A0 mov r10, r0 adds r7, r1, 0 movs r1, 0 mov r8, r1 ldr r5, _080161A4 _0801610A: ldr r0, _080161A8 ldrb r4, [r7] strb r4, [r0] mov r2, r10 strb r4, [r2] ldr r1, _080161AC lsls r3, r4, 1 adds r0, r3, r4 lsls r0, 2 adds r1, r0, r1 ldrb r0, [r1, 0x2] cmp r0, 0 beq _08016168 subs r0, 0x1 strb r0, [r1, 0x2] movs r6, 0xFF lsls r0, 24 cmp r0, 0 bne _08016168 ldr r2, _080161B0 adds r2, r3, r2 ldrh r0, [r2] ldr r3, _080161B4 adds r1, r3, 0 ands r0, r1 strh r0, [r2] ldr r0, _080161B8 bl b_call_bc_move_exec ldr r0, _080161BC strb r4, [r0, 0x5] movs r0, 0xFD strb r0, [r5] movs r0, 0x2 strb r0, [r5, 0x1] movs r0, 0x36 strb r0, [r5, 0x2] mov r0, r8 strb r0, [r5, 0x3] ldrb r0, [r5, 0x4] orrs r0, r6 strb r0, [r5, 0x4] mov r0, r9 adds r0, 0x1 lsls r0, 24 lsrs r0, 24 mov r9, r0 _08016168: ldrb r0, [r7] adds r0, 0x1 strb r0, [r7] ldr r1, _080161C0 mov r12, r1 mov r2, r9 cmp r2, 0 beq _0801617A b _08016532 _0801617A: lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bls _0801610A _08016182: mov r3, r9 cmp r3, 0 beq _0801618A b _08016532 _0801618A: ldr r0, _080161C4 add r0, r12 ldrb r1, [r0] adds r1, 0x1 strb r1, [r0] ldr r0, _0801619C add r0, r12 strb r3, [r0] b _0801652A .align 2, 0 _0801619C: .4byte 0x000160fc _080161A0: .4byte 0x02024a60 _080161A4: .4byte 0x030041c0 _080161A8: .4byte 0x02024c07 _080161AC: .4byte 0x02024c80 _080161B0: .4byte 0x02024c7a _080161B4: .4byte 0x0000feff _080161B8: .4byte gUnknown_081D9030 _080161BC: .4byte 0x02024d1e _080161C0: .4byte 0x02000000 _080161C4: .4byte 0x0001600e _080161C8: ldr r1, _08016250 add r1, r12 ldrb r0, [r1] cmp r0, 0x1 bhi _08016236 ldr r7, _08016254 adds r5, r1, 0 ldr r6, _08016258 _080161D8: ldrb r4, [r5] strb r4, [r6] strb r4, [r7] ldr r0, _0801625C lsls r2, r4, 1 adds r3, r2, r0 ldrh r1, [r3] movs r0, 0x20 ands r0, r1 cmp r0, 0 beq _0801621C ldr r0, _08016260 adds r1, r2, r4 lsls r1, 2 adds r1, r0 ldrb r0, [r1, 0x7] subs r0, 0x1 strb r0, [r1, 0x7] lsls r0, 24 cmp r0, 0 bne _0801621C ldrh r0, [r3] ldr r2, _08016264 adds r1, r2, 0 ands r0, r1 strh r0, [r3] ldr r0, _08016268 bl b_call_bc_move_exec mov r0, r9 adds r0, 0x1 lsls r0, 24 lsrs r0, 24 mov r9, r0 _0801621C: ldrb r0, [r5] adds r0, 0x1 strb r0, [r5] ldr r3, _0801626C mov r12, r3 mov r1, r9 cmp r1, 0 beq _0801622E b _08016532 _0801622E: lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bls _080161D8 _08016236: mov r2, r9 cmp r2, 0 beq _0801623E b _08016532 _0801623E: ldr r0, _08016270 add r0, r12 ldrb r1, [r0] adds r1, 0x1 strb r1, [r0] ldr r0, _08016250 add r0, r12 strb r2, [r0] b _0801652A .align 2, 0 _08016250: .4byte 0x000160fc _08016254: .4byte 0x02024a60 _08016258: .4byte 0x02024c07 _0801625C: .4byte 0x02024c7a _08016260: .4byte 0x02024c80 _08016264: .4byte 0x0000ffdf _08016268: .4byte gUnknown_081D9041 _0801626C: .4byte 0x02000000 _08016270: .4byte 0x0001600e _08016274: ldr r2, _080162FC add r2, r12 ldr r1, _08016300 ldrb r0, [r2] ldrb r1, [r1] cmp r0, r1 bcs _080162E8 ldr r5, _08016304 adds r4, r2, 0 ldr r6, _08016308 _08016288: ldr r1, _0801630C ldrb r0, [r4] adds r0, r1 ldrb r0, [r0] strb r0, [r5] ldrb r0, [r5] adds r1, r0, r6 ldrb r0, [r1] cmp r0, 0 beq _080162CA subs r0, 0x1 strb r0, [r1] lsls r0, 24 cmp r0, 0 bne _080162CA ldr r1, _08016310 ldrb r2, [r5] movs r0, 0x58 muls r0, r2 adds r0, r1 ldrh r0, [r0, 0x28] cmp r0, 0 beq _080162CA ldr r0, _08016314 strb r2, [r0] ldr r0, _08016318 bl b_call_bc_move_exec mov r0, r9 adds r0, 0x1 lsls r0, 24 lsrs r0, 24 mov r9, r0 _080162CA: ldrb r0, [r4] adds r0, 0x1 strb r0, [r4] ldr r3, _0801631C mov r12, r3 mov r1, r9 cmp r1, 0 beq _080162DC b _08016532 _080162DC: ldr r1, _08016300 lsls r0, 24 lsrs r0, 24 ldrb r1, [r1] cmp r0, r1 bcc _08016288 _080162E8: mov r2, r9 cmp r2, 0 beq _080162F0 b _08016532 _080162F0: ldr r1, _08016320 add r1, r12 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] b _0801652A .align 2, 0 _080162FC: .4byte 0x000160fc _08016300: .4byte 0x02024a68 _08016304: .4byte 0x02024a60 _08016308: .4byte 0x02024ddc _0801630C: .4byte 0x02024a7a _08016310: .4byte 0x02024a80 _08016314: .4byte 0x02024c08 _08016318: .4byte gUnknown_081D939A _0801631C: .4byte 0x02000000 _08016320: .4byte 0x0001600e _08016324: ldr r3, _0801635C ldrh r2, [r3] movs r0, 0x7 ands r0, r2 cmp r0, 0 bne _08016332 b _080164F8 _08016332: movs r0, 0x4 ands r0, r2 cmp r0, 0 bne _0801637E ldr r1, _08016360 adds r1, 0x28 ldrb r0, [r1] subs r0, 0x1 strb r0, [r1] lsls r0, 24 cmp r0, 0 bne _08016370 ldr r0, _08016364 ands r0, r2 ldr r1, _08016368 ands r0, r1 strh r0, [r3] ldr r1, _0801636C movs r0, 0x2 strb r0, [r1, 0x5] b _0801639C .align 2, 0 _0801635C: .4byte 0x02024db8 _08016360: .4byte 0x02024dbc _08016364: .4byte 0x0000fffe _08016368: .4byte 0x0000fffd _0801636C: .4byte 0x02024d1e _08016370: movs r0, 0x2 ands r0, r2 lsls r0, 16 lsrs r1, r0, 16 cmp r1, 0 bne _0801638A b _08016398 _0801637E: movs r0, 0x2 ands r0, r2 lsls r0, 16 lsrs r1, r0, 16 cmp r1, 0 beq _08016398 _0801638A: ldr r1, _08016394 movs r0, 0x1 strb r0, [r1, 0x5] b _0801639C .align 2, 0 _08016394: .4byte 0x02024d1e _08016398: ldr r0, _080163A0 strb r1, [r0, 0x5] _0801639C: ldr r0, _080163A4 b _080164EA .align 2, 0 _080163A0: .4byte 0x02024d1e _080163A4: .4byte gUnknown_081D8F62 _080163A8: ldr r3, _080163DC ldrh r2, [r3] movs r0, 0x18 ands r0, r2 cmp r0, 0 bne _080163B6 b _080164F8 _080163B6: movs r0, 0x10 ands r0, r2 cmp r0, 0 bne _080163F0 ldr r1, _080163E0 adds r1, 0x28 ldrb r0, [r1] subs r0, 0x1 strb r0, [r1] lsls r0, 24 cmp r0, 0 bne _080163F0 ldr r0, _080163E4 ands r0, r2 strh r0, [r3] ldr r1, _080163E8 ldr r0, _080163EC b _080163F4 .align 2, 0 _080163DC: .4byte 0x02024db8 _080163E0: .4byte 0x02024dbc _080163E4: .4byte 0x0000fff7 _080163E8: .4byte 0x02024c10 _080163EC: .4byte gUnknown_081D8FFF _080163F0: ldr r1, _0801640C ldr r0, _08016410 _080163F4: str r0, [r1] adds r3, r1, 0 ldr r1, _08016414 ldr r0, _08016418 adds r1, r0 movs r2, 0 movs r0, 0xC strb r0, [r1] ldr r0, _0801641C strb r2, [r0, 0x5] b _080164E8 .align 2, 0 _0801640C: .4byte 0x02024c10 _08016410: .4byte gUnknown_081D8F7D _08016414: .4byte 0x02000000 _08016418: .4byte 0x000160a4 _0801641C: .4byte 0x02024d1e _08016420: ldr r3, _08016450 ldrh r2, [r3] movs r0, 0x60 ands r0, r2 cmp r0, 0 beq _0801647C movs r0, 0x40 ands r0, r2 cmp r0, 0 bne _08016464 ldr r1, _08016454 adds r1, 0x28 ldrb r0, [r1] subs r0, 0x1 strb r0, [r1] lsls r0, 24 cmp r0, 0 bne _08016464 ldr r0, _08016458 ands r0, r2 strh r0, [r3] ldr r1, _0801645C ldr r0, _08016460 b _08016468 .align 2, 0 _08016450: .4byte 0x02024db8 _08016454: .4byte 0x02024dbc _08016458: .4byte 0x0000ffdf _0801645C: .4byte 0x02024c10 _08016460: .4byte gUnknown_081D9016 _08016464: ldr r1, _08016484 ldr r0, _08016488 _08016468: str r0, [r1] adds r3, r1, 0 ldr r0, [r3] bl b_call_bc_move_exec mov r0, r9 adds r0, 0x1 lsls r0, 24 lsrs r0, 24 mov r9, r0 _0801647C: ldr r2, _0801648C ldr r0, _08016490 adds r1, r2, r0 b _080164FE .align 2, 0 _08016484: .4byte 0x02024c10 _08016488: .4byte gUnknown_081D9008 _0801648C: .4byte 0x02000000 _08016490: .4byte 0x0001600e _08016494: ldr r3, _080164BC ldrh r2, [r3] movs r0, 0x80 ands r0, r2 cmp r0, 0 beq _080164F8 ldr r1, _080164C0 adds r1, 0x28 ldrb r0, [r1] subs r0, 0x1 strb r0, [r1] lsls r0, 24 cmp r0, 0 bne _080164D0 ldr r0, _080164C4 ands r0, r2 strh r0, [r3] ldr r1, _080164C8 ldr r0, _080164CC b _080164D4 .align 2, 0 _080164BC: .4byte 0x02024db8 _080164C0: .4byte 0x02024dbc _080164C4: .4byte 0x0000ff7f _080164C8: .4byte 0x02024c10 _080164CC: .4byte gUnknown_081D8FFF _080164D0: ldr r1, _08016508 ldr r0, _0801650C _080164D4: str r0, [r1] adds r3, r1, 0 ldr r0, _08016510 ldr r1, _08016514 adds r0, r1 movs r1, 0xD strb r1, [r0] ldr r1, _08016518 movs r0, 0x1 strb r0, [r1, 0x5] _080164E8: ldr r0, [r3] _080164EA: bl b_call_bc_move_exec mov r0, r9 adds r0, 0x1 lsls r0, 24 lsrs r0, 24 mov r9, r0 _080164F8: ldr r2, _08016510 ldr r3, _0801651C adds r1, r2, r3 _080164FE: ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] mov r12, r2 b _0801652A .align 2, 0 _08016508: .4byte 0x02024c10 _0801650C: .4byte gUnknown_081D8F7D _08016510: .4byte 0x02000000 _08016514: .4byte 0x000160a4 _08016518: .4byte 0x02024d1e _0801651C: .4byte 0x0001600e _08016520: mov r0, r9 adds r0, 0x1 lsls r0, 24 lsrs r0, 24 mov r9, r0 _0801652A: mov r0, r9 cmp r0, 0 bne _08016532 b _08015E8A _08016532: ldr r0, _08016550 ldr r1, [r0] ldr r0, _08016554 eors r1, r0 negs r0, r1 orrs r0, r1 lsrs r0, 31 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _08016550: .4byte 0x030042d4 _08016554: .4byte sub_8011E8C thumb_func_end sub_8015DFC thumb_func_start sub_8016558 sub_8016558: @ 8016558 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x8 movs r0, 0 mov r9, r0 ldr r2, _08016578 ldr r0, [r2] ldr r1, _0801657C orrs r0, r1 str r0, [r2] bl _08017088 .align 2, 0 _08016578: .4byte 0x02024c6c _0801657C: .4byte 0x01000020 _08016580: ldr r3, _080165B4 ldr r4, _080165B8 ldr r1, _080165BC adds r5, r7, r2 ldrb r0, [r5] adds r0, r1 ldrb r0, [r0] strb r0, [r4] strb r0, [r3] ldr r0, _080165C0 ldrb r1, [r0] ldr r2, _080165C4 ldrb r0, [r3] lsls r0, 2 adds r0, r2 ldr r0, [r0] ands r1, r0 adds r6, r3, 0 cmp r1, 0 beq _080165C8 ldrb r0, [r5] adds r0, 0x1 strb r0, [r5] bl _08017088 .align 2, 0 _080165B4: .4byte 0x02024a60 _080165B8: .4byte 0x02024c07 _080165BC: .4byte 0x02024a7a _080165C0: .4byte 0x02024c0c _080165C4: .4byte gUnknown_0820872C _080165C8: movs r5, 0xB0 lsls r5, 9 adds r0, r7, r5 ldrb r0, [r0] cmp r0, 0x13 bls _080165D8 bl _08017078 _080165D8: lsls r0, 2 ldr r1, _080165E4 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080165E4: .4byte _080165E8 .align 2, 0 _080165E8: .4byte _08016638 .4byte _080166A8 .4byte _080166D8 .4byte _08016730 .4byte _080167C8 .4byte _08016828 .4byte _080168C0 .4byte _0801691C .4byte _0801697C .4byte _080169DC .4byte _08016B78 .4byte _08016CA0 .4byte _08016D58 .4byte _08016E30 .4byte _08016EFC .4byte _08016F20 .4byte _08016F6C .4byte _08016F9C .4byte _08016704 .4byte _08017064 _08016638: ldr r1, _08016694 ldrb r3, [r6] lsls r0, r3, 2 adds r0, r1 ldr r0, [r0] movs r1, 0x80 lsls r1, 3 ands r0, r1 cmp r0, 0 beq _08016686 ldr r0, _08016698 movs r1, 0x58 muls r1, r3 adds r0, r1, r0 ldrh r2, [r0, 0x28] ldrh r7, [r0, 0x2C] cmp r2, r7 beq _08016686 cmp r2, 0 beq _08016686 ldr r1, _0801669C ldrh r0, [r0, 0x2C] lsrs r0, 4 str r0, [r1] cmp r0, 0 bne _08016670 movs r0, 0x1 str r0, [r1] _08016670: ldr r0, [r1] negs r0, r0 str r0, [r1] ldr r0, _080166A0 bl b_call_bc_move_exec mov r0, r9 adds r0, 0x1 lsls r0, 24 lsrs r0, 24 mov r9, r0 _08016686: ldr r1, _080166A4 movs r0, 0xB0 lsls r0, 9 adds r1, r0 bl _08017072 .align 2, 0 _08016694: .4byte 0x02024c98 _08016698: .4byte 0x02024a80 _0801669C: .4byte 0x02024bec _080166A0: .4byte gUnknown_081D93D1 _080166A4: .4byte 0x02000000 _080166A8: ldrb r1, [r6] movs r0, 0 str r0, [sp] movs r0, 0x1 movs r2, 0 movs r3, 0 bl sub_8018324 lsls r0, 24 cmp r0, 0 beq _080166C8 mov r0, r9 adds r0, 0x1 lsls r0, 24 lsrs r0, 24 mov r9, r0 _080166C8: ldr r1, _080166D4 movs r2, 0xB0 lsls r2, 9 adds r1, r2 bl _08017072 .align 2, 0 _080166D4: .4byte 0x02000000 _080166D8: ldrb r1, [r6] movs r0, 0x1 movs r2, 0 bl sub_801A02C lsls r0, 24 cmp r0, 0 beq _080166F2 mov r0, r9 adds r0, 0x1 lsls r0, 24 lsrs r0, 24 mov r9, r0 _080166F2: ldr r1, _08016700 movs r3, 0xB0 lsls r3, 9 adds r1, r3 bl _08017072 .align 2, 0 _08016700: .4byte 0x02000000 _08016704: ldrb r1, [r6] movs r0, 0x1 movs r2, 0x1 bl sub_801A02C lsls r0, 24 cmp r0, 0 beq _0801671E mov r0, r9 adds r0, 0x1 lsls r0, 24 lsrs r0, 24 mov r9, r0 _0801671E: ldr r1, _0801672C movs r5, 0xB0 lsls r5, 9 adds r1, r5 bl _08017072 .align 2, 0 _0801672C: .4byte 0x02000000 _08016730: ldr r0, _080167A8 ldrb r2, [r6] lsls r1, r2, 2 adds r1, r0 ldr r1, [r1] movs r0, 0x4 ands r0, r1 cmp r0, 0 beq _0801679C ldr r3, _080167AC movs r5, 0x3 ands r5, r1 movs r1, 0x58 adds r0, r5, 0 muls r0, r1 adds r0, r3 ldrh r0, [r0, 0x28] cmp r0, 0 beq _0801679C adds r0, r2, 0 muls r0, r1 adds r0, r3 ldrh r0, [r0, 0x28] cmp r0, 0 beq _0801679C ldr r0, _080167B0 strb r5, [r0] ldr r2, _080167B4 ldrb r0, [r6] muls r0, r1 adds r0, r3 ldrh r0, [r0, 0x2C] lsrs r0, 3 str r0, [r2] cmp r0, 0 bne _0801677C movs r0, 0x1 str r0, [r2] _0801677C: ldr r1, _080167B8 ldr r7, _080167BC adds r0, r1, r7 strb r5, [r0] ldrb r0, [r4] ldr r2, _080167C0 adds r1, r2 strb r0, [r1] ldr r0, _080167C4 bl b_call_bc_move_exec mov r0, r9 adds r0, 0x1 lsls r0, 24 lsrs r0, 24 mov r9, r0 _0801679C: ldr r1, _080167B8 movs r3, 0xB0 lsls r3, 9 adds r1, r3 bl _08017072 .align 2, 0 _080167A8: .4byte 0x02024c98 _080167AC: .4byte 0x02024a80 _080167B0: .4byte 0x02024c08 _080167B4: .4byte 0x02024bec _080167B8: .4byte 0x02000000 _080167BC: .4byte 0x000160a4 _080167C0: .4byte 0x000160a5 _080167C4: .4byte gUnknown_081D904B _080167C8: ldr r2, _08016818 ldrb r1, [r6] movs r0, 0x58 adds r3, r1, 0 muls r3, r0 adds r0, r2, 0 adds r0, 0x4C adds r0, r3, r0 ldr r0, [r0] movs r1, 0x8 ands r0, r1 cmp r0, 0 beq _0801680A adds r1, r3, r2 ldrh r0, [r1, 0x28] cmp r0, 0 beq _0801680A ldr r2, _0801681C ldrh r0, [r1, 0x2C] lsrs r0, 3 str r0, [r2] cmp r0, 0 bne _080167FA movs r0, 0x1 str r0, [r2] _080167FA: ldr r0, _08016820 bl b_call_bc_move_exec mov r0, r9 adds r0, 0x1 lsls r0, 24 lsrs r0, 24 mov r9, r0 _0801680A: ldr r1, _08016824 movs r5, 0xB0 lsls r5, 9 adds r1, r5 bl _08017072 .align 2, 0 _08016818: .4byte 0x02024a80 _0801681C: .4byte 0x02024bec _08016820: .4byte gUnknown_081D9518 _08016824: .4byte 0x02000000 _08016828: ldr r4, _080168B0 ldrb r0, [r6] movs r7, 0x58 mov r8, r7 mov r2, r8 muls r2, r0 adds r3, r4, 0 adds r3, 0x4C adds r0, r2, r3 ldr r0, [r0] movs r1, 0x80 ands r0, r1 cmp r0, 0 beq _080168A2 adds r1, r2, r4 ldrh r0, [r1, 0x28] cmp r0, 0 beq _080168A2 ldr r5, _080168B4 ldrh r0, [r1, 0x2C] lsrs r0, 4 str r0, [r5] cmp r0, 0 bne _0801685C movs r0, 0x1 str r0, [r5] _0801685C: ldrb r0, [r6] mov r1, r8 muls r1, r0 adds r0, r1, 0 adds r2, r0, r3 ldr r1, [r2] movs r4, 0xF0 lsls r4, 4 adds r0, r1, 0 ands r0, r4 cmp r0, r4 beq _0801687C movs r7, 0x80 lsls r7, 1 adds r0, r1, r7 str r0, [r2] _0801687C: ldrb r0, [r6] mov r1, r8 muls r1, r0 adds r0, r1, 0 adds r0, r3 ldr r0, [r0] ands r0, r4 lsrs r0, 8 ldr r1, [r5] muls r0, r1 str r0, [r5] ldr r0, _080168B8 bl b_call_bc_move_exec mov r0, r9 adds r0, 0x1 lsls r0, 24 lsrs r0, 24 mov r9, r0 _080168A2: ldr r1, _080168BC movs r2, 0xB0 lsls r2, 9 adds r1, r2 bl _08017072 .align 2, 0 _080168B0: .4byte 0x02024a80 _080168B4: .4byte 0x02024bec _080168B8: .4byte gUnknown_081D9518 _080168BC: .4byte 0x02000000 _080168C0: ldr r2, _0801690C ldrb r1, [r6] movs r0, 0x58 adds r3, r1, 0 muls r3, r0 adds r0, r2, 0 adds r0, 0x4C adds r0, r3, r0 ldr r0, [r0] movs r1, 0x10 ands r0, r1 cmp r0, 0 beq _08016902 adds r1, r3, r2 ldrh r0, [r1, 0x28] cmp r0, 0 beq _08016902 ldr r2, _08016910 ldrh r0, [r1, 0x2C] lsrs r0, 3 str r0, [r2] cmp r0, 0 bne _080168F2 movs r0, 0x1 str r0, [r2] _080168F2: ldr r0, _08016914 bl b_call_bc_move_exec mov r0, r9 adds r0, 0x1 lsls r0, 24 lsrs r0, 24 mov r9, r0 _08016902: ldr r1, _08016918 movs r3, 0xB0 lsls r3, 9 adds r1, r3 b _08017072 .align 2, 0 _0801690C: .4byte 0x02024a80 _08016910: .4byte 0x02024bec _08016914: .4byte gUnknown_081D953A _08016918: .4byte 0x02000000 _0801691C: ldr r2, _0801696C ldrb r1, [r6] movs r0, 0x58 adds r3, r1, 0 muls r3, r0 adds r0, r2, 0 adds r0, 0x50 adds r0, r3, r0 ldr r0, [r0] movs r1, 0x80 lsls r1, 20 ands r0, r1 cmp r0, 0 beq _08016960 adds r1, r3, r2 ldrh r0, [r1, 0x28] cmp r0, 0 beq _08016960 ldr r2, _08016970 ldrh r0, [r1, 0x2C] lsrs r0, 2 str r0, [r2] cmp r0, 0 bne _08016950 movs r0, 0x1 str r0, [r2] _08016950: ldr r0, _08016974 bl b_call_bc_move_exec mov r0, r9 adds r0, 0x1 lsls r0, 24 lsrs r0, 24 mov r9, r0 _08016960: ldr r1, _08016978 movs r5, 0xB0 lsls r5, 9 adds r1, r5 b _08017072 .align 2, 0 _0801696C: .4byte 0x02024a80 _08016970: .4byte 0x02024bec _08016974: .4byte gUnknown_081D9613 _08016978: .4byte 0x02000000 _0801697C: ldr r2, _080169CC ldrb r1, [r6] movs r0, 0x58 adds r3, r1, 0 muls r3, r0 adds r0, r2, 0 adds r0, 0x50 adds r0, r3, r0 ldr r0, [r0] movs r1, 0x80 lsls r1, 21 ands r0, r1 cmp r0, 0 beq _080169C0 adds r1, r3, r2 ldrh r0, [r1, 0x28] cmp r0, 0 beq _080169C0 ldr r2, _080169D0 ldrh r0, [r1, 0x2C] lsrs r0, 2 str r0, [r2] cmp r0, 0 bne _080169B0 movs r0, 0x1 str r0, [r2] _080169B0: ldr r0, _080169D4 bl b_call_bc_move_exec mov r0, r9 adds r0, 0x1 lsls r0, 24 lsrs r0, 24 mov r9, r0 _080169C0: ldr r1, _080169D8 movs r7, 0xB0 lsls r7, 9 adds r1, r7 b _08017072 .align 2, 0 _080169CC: .4byte 0x02024a80 _080169D0: .4byte 0x02024bec _080169D4: .4byte gUnknown_081D9624 _080169D8: .4byte 0x02000000 _080169DC: ldr r0, _08016A8C mov r8, r0 ldrb r0, [r6] movs r1, 0x58 mov r10, r1 mov r1, r10 muls r1, r0 mov r5, r8 adds r5, 0x50 adds r3, r1, r5 ldr r2, [r3] movs r4, 0xE0 lsls r4, 8 adds r0, r2, 0 ands r0, r4 cmp r0, 0 beq _08016AF6 mov r7, r8 adds r0, r1, r7 ldrh r0, [r0, 0x28] cmp r0, 0 beq _08016AF6 ldr r1, _08016A90 adds r0, r2, r1 str r0, [r3] ldrb r1, [r6] mov r0, r10 muls r0, r1 adds r0, r5 ldr r0, [r0] ands r0, r4 cmp r0, 0 beq _08016AB4 ldr r2, _08016A94 lsls r0, r1, 1 ldr r4, _08016A98 adds r0, r4 adds r0, r2 ldrb r1, [r0] ldr r3, _08016A9C adds r0, r2, r3 strb r1, [r0] ldrb r0, [r6] lsls r0, 1 subs r3, 0x9F adds r0, r3 adds r0, r2 ldrb r1, [r0] ldr r5, _08016AA0 adds r0, r2, r5 strb r1, [r0] ldr r1, _08016AA4 movs r0, 0xFD strb r0, [r1] movs r0, 0x2 strb r0, [r1, 0x1] ldrb r0, [r6] lsls r0, 1 adds r0, r4 adds r0, r2 ldrb r0, [r0] strb r0, [r1, 0x2] ldrb r0, [r6] lsls r0, 1 adds r0, r3 adds r0, r2 ldrb r0, [r0] strb r0, [r1, 0x3] movs r0, 0xFF strb r0, [r1, 0x4] ldr r1, _08016AA8 ldr r0, _08016AAC str r0, [r1] ldr r2, _08016AB0 ldrb r0, [r6] mov r7, r10 muls r7, r0 adds r0, r7, 0 add r0, r8 ldrh r0, [r0, 0x2C] lsrs r0, 4 str r0, [r2] cmp r0, 0 bne _08016AE6 movs r0, 0x1 str r0, [r2] b _08016AE6 .align 2, 0 _08016A8C: .4byte 0x02024a80 _08016A90: .4byte 0xffffe000 _08016A94: .4byte 0x02000000 _08016A98: .4byte 0x00016004 _08016A9C: .4byte 0x000160a4 _08016AA0: .4byte 0x000160a5 _08016AA4: .4byte 0x030041c0 _08016AA8: .4byte 0x02024c10 _08016AAC: .4byte gUnknown_081D95E2 _08016AB0: .4byte 0x02024bec _08016AB4: ldr r1, _08016B00 movs r0, 0xFD strb r0, [r1] movs r0, 0x2 strb r0, [r1, 0x1] ldr r2, _08016B04 ldrb r0, [r6] lsls r0, 1 ldr r3, _08016B08 adds r0, r3 adds r0, r2 ldrb r0, [r0] strb r0, [r1, 0x2] ldrb r0, [r6] lsls r0, 1 ldr r5, _08016B0C adds r0, r5 adds r0, r2 ldrb r0, [r0] strb r0, [r1, 0x3] movs r0, 0xFF strb r0, [r1, 0x4] ldr r1, _08016B10 ldr r0, _08016B14 str r0, [r1] _08016AE6: ldr r0, [r1] bl b_call_bc_move_exec mov r0, r9 adds r0, 0x1 lsls r0, 24 lsrs r0, 24 mov r9, r0 _08016AF6: ldr r1, _08016B04 movs r7, 0xB0 lsls r7, 9 adds r1, r7 b _08017072 .align 2, 0 _08016B00: .4byte 0x030041c0 _08016B04: .4byte 0x02000000 _08016B08: .4byte 0x00016004 _08016B0C: .4byte 0x00016005 _08016B10: .4byte 0x02024c10 _08016B14: .4byte gUnknown_081D95F4 _08016B18: movs r0, 0x8 negs r0, r0 ands r4, r0 str r4, [r2] ldrb r0, [r6] mov r2, r8 muls r2, r0 mov r0, r10 adds r0, 0x50 adds r2, r0 ldr r0, [r2] ldr r1, _08016B68 ands r0, r1 str r0, [r2] ldr r1, _08016B6C movs r0, 0x1 strb r0, [r1, 0x5] ldr r0, _08016B70 bl b_call_bc_move_exec ldr r4, _08016B74 ldrb r0, [r6] strb r0, [r4] ldrb r0, [r4] mov r1, r8 muls r1, r0 adds r0, r1, 0 add r0, r9 str r0, [sp] movs r0, 0 movs r1, 0x28 movs r2, 0 movs r3, 0x4 bl dp01_build_cmdbuf_x02_a_b_varargs ldrb r0, [r4] bl dp01_battle_side_mark_buffer_for_execution b _08016BE0 .align 2, 0 _08016B68: .4byte 0xf7ffffff _08016B6C: .4byte 0x02024d1e _08016B70: .4byte gUnknown_081D950F _08016B74: .4byte 0x02024a60 _08016B78: ldr r2, _08016BF4 ldrb r1, [r6] movs r0, 0x58 muls r0, r1 adds r1, r2, 0 adds r1, 0x50 adds r0, r1 ldr r1, [r0] movs r0, 0x70 ands r1, r0 adds r7, r2, 0 cmp r1, 0 beq _08016C82 movs r0, 0 strb r0, [r4] mov r2, r8 ldrb r1, [r2] cmp r1, 0 beq _08016BE0 mov r10, r7 adds r6, r4, 0 movs r3, 0x58 mov r8, r3 movs r5, 0x4C adds r5, r7 mov r9, r5 str r1, [sp, 0x4] movs r0, 0x7 mov r12, r0 _08016BB2: ldrb r1, [r6] mov r3, r8 muls r3, r1 mov r5, r9 adds r2, r3, r5 ldr r4, [r2] adds r0, r4, 0 mov r5, r12 ands r0, r5 cmp r0, 0 beq _08016BD2 adds r0, r3, r7 adds r0, 0x20 ldrb r0, [r0] cmp r0, 0x2B bne _08016B18 _08016BD2: adds r0, r1, 0x1 strb r0, [r6] lsls r0, 24 lsrs r0, 24 ldr r1, [sp, 0x4] cmp r0, r1 bcc _08016BB2 _08016BE0: ldr r2, _08016BF8 ldr r1, _08016BFC ldrb r0, [r2] ldrb r1, [r1] cmp r0, r1 beq _08016C00 movs r2, 0x2 mov r9, r2 b _0801707E .align 2, 0 _08016BF4: .4byte 0x02024a80 _08016BF8: .4byte 0x02024c07 _08016BFC: .4byte 0x02024a68 _08016C00: ldr r5, _08016C38 ldrb r0, [r5] strb r0, [r2] ldr r2, _08016C3C ldrb r0, [r5] movs r7, 0x58 adds r1, r0, 0 muls r1, r7 adds r6, r2, 0 adds r6, 0x50 adds r1, r6 ldr r0, [r1] subs r0, 0x10 str r0, [r1] ldrb r0, [r5] bl sub_8015660 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0 beq _08016C44 ldrb r0, [r5] bl b_cancel_multi_turn_move_maybe ldr r1, _08016C40 movs r0, 0x1 strb r0, [r1, 0x5] b _08016C78 .align 2, 0 _08016C38: .4byte 0x02024a60 _08016C3C: .4byte 0x02024a80 _08016C40: .4byte 0x02024d1e _08016C44: ldrb r3, [r5] adds r0, r3, 0 muls r0, r7 adds r2, r0, r6 ldr r0, [r2] movs r1, 0x70 ands r0, r1 cmp r0, 0 beq _08016C6C ldr r0, _08016C68 strb r4, [r0, 0x5] ldr r0, [r2] movs r1, 0x80 lsls r1, 5 orrs r0, r1 str r0, [r2] b _08016C78 .align 2, 0 _08016C68: .4byte 0x02024d1e _08016C6C: ldr r1, _08016C94 movs r0, 0x1 strb r0, [r1, 0x5] adds r0, r3, 0 bl b_cancel_multi_turn_move_maybe _08016C78: ldr r0, _08016C98 bl b_call_bc_move_exec movs r3, 0x1 mov r9, r3 _08016C82: mov r5, r9 cmp r5, 0x2 bne _08016C8A b _08017078 _08016C8A: ldr r1, _08016C9C movs r7, 0xB0 lsls r7, 9 adds r1, r7 b _08017072 .align 2, 0 _08016C94: .4byte 0x02024d1e _08016C98: .4byte gUnknown_081D957E _08016C9C: .4byte 0x02000000 _08016CA0: ldr r1, _08016CD8 ldrb r0, [r6] movs r7, 0x58 muls r0, r7 adds r5, r1, 0 adds r5, 0x50 adds r2, r0, r5 ldr r1, [r2] movs r4, 0xC0 lsls r4, 4 adds r0, r1, 0 ands r0, r4 cmp r0, 0 beq _08016D3C ldr r3, _08016CDC adds r0, r1, r3 str r0, [r2] ldrb r0, [r6] bl sub_8015660 lsls r0, 24 cmp r0, 0 beq _08016CE0 ldrb r0, [r6] bl b_cancel_multi_turn_move_maybe b _08016D3C .align 2, 0 _08016CD8: .4byte 0x02024a80 _08016CDC: .4byte 0xfffffc00 _08016CE0: ldrb r0, [r6] muls r0, r7 adds r2, r0, r5 ldr r1, [r2] adds r0, r1, 0 ands r0, r4 cmp r0, 0 bne _08016D3C movs r0, 0x80 lsls r0, 5 ands r0, r1 cmp r0, 0 beq _08016D3C ldr r0, _08016D48 ands r1, r0 str r1, [r2] ldrb r0, [r6] muls r0, r7 adds r0, r5 ldr r0, [r0] movs r4, 0x7 ands r0, r4 cmp r0, 0 bne _08016D3C ldr r1, _08016D4C movs r0, 0x47 strb r0, [r1, 0x3] movs r0, 0x1 movs r1, 0 bl sub_801E3EC ldrb r0, [r6] muls r0, r7 adds r0, r5 ldr r0, [r0] ands r0, r4 cmp r0, 0 beq _08016D32 ldr r0, _08016D50 bl b_call_bc_move_exec _08016D32: mov r0, r9 adds r0, 0x1 lsls r0, 24 lsrs r0, 24 mov r9, r0 _08016D3C: ldr r1, _08016D54 movs r5, 0xB0 lsls r5, 9 adds r1, r5 b _08017072 .align 2, 0 _08016D48: .4byte 0xffffefff _08016D4C: .4byte 0x02024d1e _08016D50: .4byte gUnknown_081D9587 _08016D54: .4byte 0x02000000 _08016D58: ldr r0, _08016DD4 ldrb r3, [r6] lsls r1, r3, 3 subs r1, r3 lsls r1, 2 adds r5, r1, r0 ldrb r1, [r5, 0xB] lsls r1, 28 adds r7, r0, 0 cmp r1, 0 beq _08016E1E movs r4, 0 ldr r2, _08016DD8 movs r0, 0x58 adds r1, r3, 0 muls r1, r0 adds r2, 0xC adds r1, r2 ldrh r0, [r5, 0x4] ldrh r1, [r1] cmp r0, r1 beq _08016DAC mov r12, r7 mov r8, r2 adds r5, r6, 0 movs r3, 0x58 _08016D8C: adds r4, 0x1 cmp r4, 0x3 bgt _08016DAC ldrb r2, [r5] lsls r1, r2, 3 subs r1, r2 lsls r1, 2 add r1, r12 lsls r0, r4, 1 muls r2, r3 adds r0, r2 add r0, r8 ldrh r1, [r1, 0x4] ldrh r0, [r0] cmp r1, r0 bne _08016D8C _08016DAC: cmp r4, 0x4 bne _08016DDC ldrb r1, [r6] lsls r0, r1, 3 subs r0, r1 lsls r0, 2 adds r0, r7 movs r1, 0 strh r1, [r0, 0x4] ldrb r0, [r6] lsls r1, r0, 3 subs r1, r0 lsls r1, 2 adds r1, r7 ldrb r2, [r1, 0xB] movs r0, 0x10 negs r0, r0 ands r0, r2 strb r0, [r1, 0xB] b _08016E1E .align 2, 0 _08016DD4: .4byte 0x02024ca8 _08016DD8: .4byte 0x02024a80 _08016DDC: ldrb r0, [r6] lsls r2, r0, 3 subs r2, r0 lsls r2, 2 adds r2, r7 ldrb r3, [r2, 0xB] lsls r1, r3, 28 lsrs r1, 28 subs r1, 0x1 movs r0, 0xF ands r1, r0 movs r0, 0x10 negs r0, r0 ands r0, r3 orrs r0, r1 strb r0, [r2, 0xB] adds r2, r1, 0 cmp r2, 0 bne _08016E1E ldrb r1, [r6] lsls r0, r1, 3 subs r0, r1 lsls r0, 2 adds r0, r7 strh r2, [r0, 0x4] ldr r0, _08016E28 bl b_call_bc_move_exec mov r0, r9 adds r0, 0x1 lsls r0, 24 lsrs r0, 24 mov r9, r0 _08016E1E: ldr r1, _08016E2C movs r7, 0xB0 lsls r7, 9 adds r1, r7 b _08017072 .align 2, 0 _08016E28: .4byte gUnknown_081D9148 _08016E2C: .4byte 0x02000000 _08016E30: ldr r3, _08016E7C ldrb r1, [r6] lsls r0, r1, 3 subs r0, r1 lsls r0, 2 adds r2, r0, r3 ldrb r5, [r2, 0xE] lsls r4, r5, 28 cmp r4, 0 beq _08016EE8 ldr r0, _08016E80 mov r8, r0 ldrb r0, [r2, 0xC] lsls r0, 1 movs r7, 0x58 muls r1, r7 adds r0, r1 mov r1, r8 adds r1, 0xC adds r0, r1 ldrh r0, [r0] ldrh r1, [r2, 0x6] cmp r0, r1 beq _08016E84 movs r0, 0 strh r0, [r2, 0x6] ldrb r0, [r6] lsls r1, r0, 3 subs r1, r0 lsls r1, 2 adds r1, r3 ldrb r2, [r1, 0xE] movs r0, 0x10 negs r0, r0 ands r0, r2 strb r0, [r1, 0xE] b _08016EE8 .align 2, 0 _08016E7C: .4byte 0x02024ca8 _08016E80: .4byte 0x02024a80 _08016E84: lsrs r1, r4, 28 subs r1, 0x1 movs r0, 0xF ands r1, r0 movs r4, 0x10 negs r4, r4 adds r0, r4, 0 ands r0, r5 orrs r0, r1 strb r0, [r2, 0xE] cmp r1, 0 beq _08016EB8 ldrb r1, [r6] lsls r0, r1, 3 subs r0, r1 lsls r0, 2 adds r0, r3 muls r1, r7 ldrb r0, [r0, 0xC] adds r1, r0 mov r0, r8 adds r0, 0x24 adds r1, r0 ldrb r0, [r1] cmp r0, 0 bne _08016EE8 _08016EB8: ldrb r1, [r6] lsls r0, r1, 3 subs r0, r1 lsls r0, 2 adds r0, r3 movs r1, 0 strh r1, [r0, 0x6] ldrb r0, [r6] lsls r1, r0, 3 subs r1, r0 lsls r1, 2 adds r1, r3 ldrb r2, [r1, 0xE] adds r0, r4, 0 ands r0, r2 strb r0, [r1, 0xE] ldr r0, _08016EF4 bl b_call_bc_move_exec mov r0, r9 adds r0, 0x1 lsls r0, 24 lsrs r0, 24 mov r9, r0 _08016EE8: ldr r1, _08016EF8 movs r2, 0xB0 lsls r2, 9 adds r1, r2 b _08017072 .align 2, 0 _08016EF4: .4byte gUnknown_081D914F _08016EF8: .4byte 0x02000000 _08016EFC: ldr r0, _08016F1C ldrb r1, [r6] lsls r1, 2 adds r1, r0 ldr r2, [r1] movs r0, 0x18 ands r0, r2 cmp r0, 0 beq _08016F14 adds r0, r2, 0 subs r0, 0x8 str r0, [r1] _08016F14: movs r1, 0xB0 lsls r1, 9 b _08017070 .align 2, 0 _08016F1C: .4byte 0x02024c98 _08016F20: ldr r2, _08016F60 ldrb r1, [r6] lsls r0, r1, 3 subs r0, r1 lsls r0, 2 adds r3, r0, r2 ldrb r2, [r3, 0x12] lsls r1, r2, 28 cmp r1, 0 beq _08016F5A lsrs r1, 28 subs r1, 0x1 movs r0, 0xF ands r1, r0 movs r0, 0x10 negs r0, r0 ands r0, r2 orrs r0, r1 strb r0, [r3, 0x12] cmp r1, 0 bne _08016F5A ldr r0, _08016F64 ldrb r2, [r6] lsls r2, 2 adds r2, r0 ldr r0, [r2] ldr r1, _08016F68 ands r0, r1 str r0, [r2] _08016F5A: movs r1, 0xB0 lsls r1, 9 b _08017070 .align 2, 0 _08016F60: .4byte 0x02024ca8 _08016F64: .4byte 0x02024c98 _08016F68: .4byte 0xfffffdff _08016F6C: ldr r2, _08016F98 ldrb r1, [r6] lsls r0, r1, 3 subs r0, r1 lsls r0, 2 adds r3, r0, r2 ldrb r2, [r3, 0x13] lsls r1, r2, 28 cmp r1, 0 beq _08016F92 lsrs r1, 28 subs r1, 0x1 movs r0, 0xF ands r1, r0 movs r0, 0x10 negs r0, r0 ands r0, r2 orrs r0, r1 strb r0, [r3, 0x13] _08016F92: movs r1, 0xB0 lsls r1, 9 b _08017070 .align 2, 0 _08016F98: .4byte 0x02024ca8 _08016F9C: ldr r4, _0801704C ldrb r0, [r6] lsls r0, 2 adds r2, r0, r4 ldr r1, [r2] movs r3, 0xC0 lsls r3, 5 adds r0, r1, 0 ands r0, r3 cmp r0, 0 beq _08017042 ldr r5, _08017050 adds r0, r1, r5 str r0, [r2] ldrb r2, [r6] lsls r0, r2, 2 adds r0, r4 ldr r0, [r0] ands r0, r3 cmp r0, 0 bne _08017042 ldr r3, _08017054 movs r5, 0x58 adds r1, r2, 0 muls r1, r5 adds r4, r3, 0 adds r4, 0x4C adds r0, r1, r4 ldrb r0, [r0] cmp r0, 0 bne _08017042 adds r0, r1, r3 adds r0, 0x20 ldrb r0, [r0] cmp r0, 0x48 beq _08017042 cmp r0, 0xF beq _08017042 adds r0, r2, 0 bl sub_8025A44 lsls r0, 24 cmp r0, 0 bne _08017042 ldrb r0, [r6] bl b_cancel_multi_turn_move_maybe bl Random ldrb r1, [r6] adds r2, r1, 0 muls r2, r5 adds r2, r4 movs r1, 0x3 ands r1, r0 adds r1, 0x2 ldr r0, [r2] orrs r0, r1 str r0, [r2] ldrb r0, [r6] muls r0, r5 adds r0, r4 str r0, [sp] movs r0, 0 movs r1, 0x28 movs r2, 0 movs r3, 0x4 bl dp01_build_cmdbuf_x02_a_b_varargs ldrb r0, [r6] bl dp01_battle_side_mark_buffer_for_execution ldr r1, _08017058 ldrb r0, [r6] strb r0, [r1] ldr r0, _0801705C bl b_call_bc_move_exec mov r0, r9 adds r0, 0x1 lsls r0, 24 lsrs r0, 24 mov r9, r0 _08017042: ldr r1, _08017060 movs r7, 0xB0 lsls r7, 9 adds r1, r7 b _08017072 .align 2, 0 _0801704C: .4byte 0x02024c98 _08017050: .4byte 0xfffff800 _08017054: .4byte 0x02024a80 _08017058: .4byte 0x02024c0a _0801705C: .4byte gUnknown_081D964C _08017060: .4byte 0x02000000 _08017064: movs r1, 0xB0 lsls r1, 9 add r1, r10 movs r0, 0 strb r0, [r1] ldr r1, _08017084 _08017070: add r1, r10 _08017072: ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] _08017078: mov r0, r9 cmp r0, 0 beq _08017088 _0801707E: mov r0, r9 b _080170B8 .align 2, 0 _08017084: .4byte 0x00016001 _08017088: ldr r7, _080170C8 ldr r2, _080170CC adds r0, r7, r2 ldr r1, _080170D0 ldrb r0, [r0] mov r10, r7 mov r8, r1 ldrb r1, [r1] cmp r0, r1 bcs _080170AC movs r3, 0xB0 lsls r3, 9 adds r0, r7, r3 ldrb r0, [r0] cmp r0, 0x13 bhi _080170AC bl _08016580 _080170AC: ldr r0, _080170D4 ldr r1, [r0] ldr r2, _080170D8 ands r1, r2 str r1, [r0] movs r0, 0 _080170B8: add sp, 0x8 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _080170C8: .4byte 0x02000000 _080170CC: .4byte 0x00016001 _080170D0: .4byte 0x02024a68 _080170D4: .4byte 0x02024c6c _080170D8: .4byte 0xfeffffdf thumb_func_end sub_8016558 thumb_func_start sub_80170DC sub_80170DC: @ 80170DC push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} ldr r2, _08017108 ldr r0, [r2] ldr r1, _0801710C orrs r0, r1 str r0, [r2] ldr r1, _08017110 ldr r3, _08017114 adds r0, r1, r3 ldrb r0, [r0] mov r8, r1 cmp r0, 0 beq _08017118 cmp r0, 0x1 bne _08017104 b _08017258 _08017104: b _08017380 .align 2, 0 _08017108: .4byte 0x02024c6c _0801710C: .4byte 0x01000020 _08017110: .4byte 0x02000000 _08017114: .4byte 0x00016110 _08017118: ldr r2, _0801715C add r2, r8 ldr r0, _08017160 ldrb r1, [r2] mov r9, r0 ldrb r0, [r0] cmp r1, r0 bcc _0801712A b _08017248 _0801712A: ldr r4, _08017164 adds r5, r2, 0 ldr r1, _08017168 mov r12, r1 movs r2, 0x8 add r2, r12 mov r10, r2 mov r7, r12 adds r7, 0x18 ldr r6, _0801716C _0801713E: ldrb r3, [r5] strb r3, [r4] ldr r0, _08017170 ldrb r1, [r0] ldr r2, _08017174 ldrb r0, [r4] lsls r0, 2 adds r0, r2 ldr r0, [r0] ands r1, r0 cmp r1, 0 beq _08017178 adds r0, r3, 0x1 strb r0, [r5] b _0801723C .align 2, 0 _0801715C: .4byte 0x00016111 _08017160: .4byte 0x02024a68 _08017164: .4byte 0x02024a60 _08017168: .4byte 0x02024dbc _0801716C: .4byte 0x030041c0 _08017170: .4byte 0x02024c0c _08017174: .4byte gUnknown_0820872C _08017178: adds r0, r3, 0x1 strb r0, [r5] ldr r1, _080171B4 ldrb r0, [r4] adds r1, r0, r1 ldrb r0, [r1] cmp r0, 0 beq _0801723C subs r0, 0x1 strb r0, [r1] lsls r0, 24 lsrs r3, r0, 24 cmp r3, 0 bne _0801723C ldr r1, _080171B8 ldrb r2, [r4] movs r0, 0x58 muls r0, r2 adds r0, r1 ldrh r0, [r0, 0x28] cmp r0, 0 beq _0801723C lsls r0, r2, 1 adds r0, r7 ldrh r0, [r0] cmp r0, 0xF8 bne _080171C0 ldr r0, _080171BC strb r3, [r0, 0x5] b _080171C6 .align 2, 0 _080171B4: .4byte 0x02024dbc _080171B8: .4byte 0x02024a80 _080171BC: .4byte 0x02024d1e _080171C0: ldr r1, _08017220 movs r0, 0x1 strb r0, [r1, 0x5] _080171C6: movs r0, 0xFD strb r0, [r6] movs r0, 0x2 strb r0, [r6, 0x1] ldrb r0, [r4] lsls r0, 1 adds r0, r7 ldrh r0, [r0] strb r0, [r6, 0x2] ldrb r0, [r4] lsls r0, 1 adds r0, r7 ldrh r0, [r0] lsrs r0, 8 strb r0, [r6, 0x3] movs r0, 0xFF strb r0, [r6, 0x4] ldr r3, _08017224 ldrb r0, [r4] strb r0, [r3] ldr r1, _08017228 mov r0, r12 adds r0, 0x4 ldrb r2, [r4] adds r0, r2 ldrb r0, [r0] strb r0, [r1] ldr r1, _0801722C ldrb r0, [r4] lsls r0, 2 add r0, r10 ldr r0, [r0] str r0, [r1] ldr r2, _08017230 ldrb r1, [r3] lsls r0, r1, 2 adds r0, r1 lsls r0, 2 adds r2, 0x4 adds r0, r2 ldr r1, _08017234 str r1, [r0] ldr r0, _08017238 b _08017364 .align 2, 0 _08017220: .4byte 0x02024d1e _08017224: .4byte 0x02024c08 _08017228: .4byte 0x02024c07 _0801722C: .4byte 0x02024bec _08017230: .4byte 0x02024d68 _08017234: .4byte 0x0000ffff _08017238: .4byte gUnknown_081D92D7 _0801723C: ldrb r0, [r5] mov r3, r9 ldrb r3, [r3] cmp r0, r3 bcs _08017248 b _0801713E _08017248: ldr r1, _0801729C add r1, r8 movs r2, 0 movs r0, 0x1 strb r0, [r1] ldr r0, _080172A0 add r0, r8 strb r2, [r0] _08017258: ldr r2, _080172A0 add r2, r8 ldr r0, _080172A4 ldrb r1, [r2] mov r9, r0 ldrb r0, [r0] cmp r1, r0 bcc _0801726A b _08017380 _0801726A: ldr r5, _080172A8 adds r3, r2, 0 ldr r4, _080172AC ldr r7, _080172B0 _08017272: ldr r2, _080172B4 ldr r1, _080172B8 ldrb r0, [r3] adds r0, r1 ldrb r0, [r0] strb r0, [r2] strb r0, [r5] ldr r0, _080172BC ldrb r1, [r0] ldr r2, _080172C0 ldrb r0, [r5] lsls r0, 2 adds r0, r2 ldr r0, [r0] ands r1, r0 cmp r1, 0 beq _080172C4 ldrb r0, [r3] adds r0, 0x1 strb r0, [r3] b _08017374 .align 2, 0 _0801729C: .4byte 0x00016110 _080172A0: .4byte 0x00016111 _080172A4: .4byte 0x02024a68 _080172A8: .4byte 0x02024a60 _080172AC: .4byte 0x030041c0 _080172B0: .4byte 0x02024ca8 _080172B4: .4byte 0x02024c07 _080172B8: .4byte 0x02024a7a _080172BC: .4byte 0x02024c0c _080172C0: .4byte gUnknown_0820872C _080172C4: ldrb r0, [r3] adds r0, 0x1 strb r0, [r3] ldr r6, _08017334 ldrb r2, [r5] lsls r0, r2, 2 adds r0, r6 ldr r0, [r0] movs r1, 0x20 ands r0, r1 cmp r0, 0 beq _08017374 movs r0, 0xFD strb r0, [r4] movs r0, 0x1 strb r0, [r4, 0x1] strb r0, [r4, 0x2] strb r0, [r4, 0x3] lsls r0, r2, 3 subs r0, r2 lsls r0, 2 adds r0, r7 ldrb r0, [r0, 0xF] lsls r0, 28 lsrs r0, 28 strb r0, [r4, 0x4] movs r0, 0xFF strb r0, [r4, 0x5] ldrb r2, [r5] lsls r0, r2, 3 subs r0, r2 lsls r0, 2 adds r4, r0, r7 ldrb r3, [r4, 0xF] lsls r1, r3, 28 cmp r1, 0 bne _08017348 lsls r2, 2 adds r2, r6 ldr r0, [r2] movs r1, 0x21 negs r1, r1 ands r0, r1 str r0, [r2] ldr r3, _08017338 ldr r2, _0801733C ldrb r1, [r5] movs r0, 0x58 muls r0, r1 adds r0, r2 ldrh r0, [r0, 0x28] str r0, [r3] ldr r1, _08017340 ldr r0, _08017344 b _08017360 .align 2, 0 _08017334: .4byte 0x02024c98 _08017338: .4byte 0x02024bec _0801733C: .4byte 0x02024a80 _08017340: .4byte 0x02024c10 _08017344: .4byte gUnknown_081D9202 _08017348: lsrs r1, 28 subs r1, 0x1 movs r0, 0xF ands r1, r0 movs r2, 0x10 negs r2, r2 adds r0, r2, 0 ands r0, r3 orrs r0, r1 strb r0, [r4, 0xF] ldr r1, _0801736C ldr r0, _08017370 _08017360: str r0, [r1] ldr r0, [r1] _08017364: bl b_call_bc_move_exec movs r0, 0x1 b _0801738C .align 2, 0 _0801736C: .4byte 0x02024c10 _08017370: .4byte gUnknown_081D921D _08017374: ldrb r0, [r3] mov r1, r9 ldrb r1, [r1] cmp r0, r1 bcs _08017380 b _08017272 _08017380: ldr r2, _0801739C ldr r0, [r2] ldr r1, _080173A0 ands r0, r1 str r0, [r2] movs r0, 0 _0801738C: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0801739C: .4byte 0x02024c6c _080173A0: .4byte 0xfeffffdf thumb_func_end sub_80170DC thumb_func_start sub_80173A4 sub_80173A4: @ 80173A4 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x4 ldr r0, _080173C0 ldrh r1, [r0] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _080173F8 b _080176AC .align 2, 0 _080173C0: .4byte 0x020239f8 _080173C4: ldr r0, _080173D4 bl b_call_bc_move_exec ldr r1, _080173D8 add r1, r10 movs r0, 0x2 b _080173E8 .align 2, 0 _080173D4: .4byte gUnknown_081D8C72 _080173D8: .4byte 0x00016059 _080173DC: ldr r0, _080173F0 bl b_call_bc_move_exec ldr r1, _080173F4 add r1, r8 movs r0, 0x5 _080173E8: strb r0, [r1] _080173EA: movs r0, 0x1 b _080176AE .align 2, 0 _080173F0: .4byte gUnknown_081D8C7B _080173F4: .4byte 0x00016059 _080173F8: ldr r0, _08017414 mov r9, r0 _080173FC: ldr r0, _08017418 add r0, r9 ldrb r0, [r0] cmp r0, 0x7 bls _08017408 b _080176A0 _08017408: lsls r0, 2 ldr r1, _0801741C adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08017414: .4byte 0x02000000 _08017418: .4byte 0x00016059 _0801741C: .4byte _08017420 .align 2, 0 _08017420: .4byte _08017440 .4byte _08017490 .4byte _08017534 .4byte _0801757C .4byte _0801758E .4byte _080175FC .4byte _08017638 .4byte _080176A0 _08017440: ldr r1, _08017508 add r1, r9 movs r0, 0 strb r0, [r1] ldr r1, _0801750C add r1, r9 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] movs r5, 0 ldr r0, _08017510 ldrb r0, [r0] cmp r5, r0 bge _08017490 ldr r6, _08017514 _0801745E: ldrb r0, [r6] ldr r2, _08017518 lsls r1, r5, 2 adds r1, r2 ldr r4, [r1] ands r0, r4 cmp r0, 0 beq _08017486 lsls r0, r5, 24 lsrs r0, 24 movs r1, 0x6 movs r2, 0x6 bl sub_8018018 lsls r0, 24 cmp r0, 0 bne _08017486 ldrb r0, [r6] bics r0, r4 strb r0, [r6] _08017486: adds r5, 0x1 ldr r0, _08017510 ldrb r0, [r0] cmp r5, r0 blt _0801745E _08017490: ldr r1, _0801751C mov r9, r1 ldr r0, _08017520 mov r12, r0 ldr r1, _08017524 mov r8, r1 mov r10, r9 ldr r5, _08017508 add r5, r9 ldr r7, _08017528 ldr r6, _0801752C add r6, r9 _080174A8: ldrb r0, [r5] mov r1, r8 strb r0, [r1] mov r1, r12 strb r0, [r1] ldrb r3, [r5] movs r0, 0x58 muls r0, r3 adds r0, r7 ldrh r0, [r0, 0x28] cmp r0, 0 bne _080174EA ldrb r2, [r6] ldr r4, _08017518 ldr r1, _08017530 lsls r0, r3, 1 adds r0, r1 ldrh r0, [r0] lsls r0, 2 adds r0, r4 ldr r0, [r0] ands r2, r0 cmp r2, 0 bne _080174EA ldr r0, _08017514 ldrb r1, [r0] lsls r0, r3, 2 adds r0, r4 ldr r0, [r0] ands r1, r0 cmp r1, 0 bne _080174EA b _080173C4 _080174EA: ldrb r0, [r5] adds r0, 0x1 strb r0, [r5] ldr r1, _08017510 lsls r0, 24 lsrs r0, 24 ldrb r1, [r1] cmp r0, r1 bne _080174A8 ldr r1, _0801750C add r1, r9 movs r0, 0x3 strb r0, [r1] b _080176A0 .align 2, 0 _08017508: .4byte 0x0001605a _0801750C: .4byte 0x00016059 _08017510: .4byte 0x02024a68 _08017514: .4byte 0x02024c0c _08017518: .4byte gUnknown_0820872C _0801751C: .4byte 0x02000000 _08017520: .4byte 0x02024c09 _08017524: .4byte 0x02024c08 _08017528: .4byte 0x02024a80 _0801752C: .4byte 0x00016113 _08017530: .4byte 0x02024a6a _08017534: ldr r0, _0801755C ldrb r0, [r0] bl sub_8015740 ldr r2, _08017560 ldr r0, _08017564 adds r1, r2, r0 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] ldr r1, _08017568 lsls r0, 24 lsrs r0, 24 ldrb r1, [r1] cmp r0, r1 bne _08017570 ldr r0, _0801756C adds r1, r2, r0 movs r0, 0x3 b _0801769C .align 2, 0 _0801755C: .4byte 0x02024c09 _08017560: .4byte 0x02000000 _08017564: .4byte 0x0001605a _08017568: .4byte 0x02024a68 _0801756C: .4byte 0x00016059 _08017570: ldr r0, _08017578 adds r1, r2, r0 movs r0, 0x1 b _0801769C .align 2, 0 _08017578: .4byte 0x00016059 _0801757C: ldr r1, _080175D8 add r1, r9 movs r0, 0 strb r0, [r1] ldr r1, _080175DC add r1, r9 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] _0801758E: ldr r7, _080175E0 ldr r6, _080175E4 ldr r1, _080175E8 mov r8, r1 ldr r3, _080175D8 add r3, r8 ldr r5, _080175EC ldr r4, _080175F0 _0801759E: ldrb r0, [r3] strb r0, [r6] strb r0, [r7] ldrb r2, [r3] movs r0, 0x58 muls r0, r2 adds r0, r5 ldrh r0, [r0, 0x28] cmp r0, 0 bne _080175C4 ldr r0, _080175F4 ldrb r1, [r0] lsls r0, r2, 2 adds r0, r4 ldr r0, [r0] ands r1, r0 cmp r1, 0 bne _080175C4 b _080173DC _080175C4: adds r0, r2, 0x1 strb r0, [r3] ldr r1, _080175F8 lsls r0, 24 lsrs r0, 24 ldrb r1, [r1] cmp r0, r1 bne _0801759E b _08017612 .align 2, 0 _080175D8: .4byte 0x0001605a _080175DC: .4byte 0x00016059 _080175E0: .4byte 0x02024c09 _080175E4: .4byte 0x02024c08 _080175E8: .4byte 0x02000000 _080175EC: .4byte 0x02024a80 _080175F0: .4byte gUnknown_0820872C _080175F4: .4byte 0x02024c0c _080175F8: .4byte 0x02024a68 _080175FC: ldr r0, _0801761C add r0, r9 ldrb r1, [r0] adds r1, 0x1 strb r1, [r0] ldr r0, _08017620 lsls r1, 24 lsrs r1, 24 ldrb r0, [r0] cmp r1, r0 bne _08017628 _08017612: ldr r1, _08017624 add r1, r9 movs r0, 0x6 strb r0, [r1] b _080176A0 .align 2, 0 _0801761C: .4byte 0x0001605a _08017620: .4byte 0x02024a68 _08017624: .4byte 0x00016059 _08017628: ldr r1, _08017634 add r1, r9 movs r0, 0x4 strb r0, [r1] b _080176A0 .align 2, 0 _08017634: .4byte 0x00016059 _08017638: movs r0, 0 str r0, [sp] movs r0, 0x9 movs r1, 0 movs r2, 0 movs r3, 0 bl sub_8018324 lsls r0, 24 lsrs r0, 24 cmp r0, 0 beq _08017652 b _080173EA _08017652: str r0, [sp] movs r0, 0xB movs r1, 0 movs r2, 0 movs r3, 0 bl sub_8018324 lsls r0, 24 cmp r0, 0 beq _08017668 b _080173EA _08017668: movs r0, 0x1 movs r1, 0 movs r2, 0x1 bl sub_801A02C lsls r0, 24 lsrs r0, 24 cmp r0, 0 beq _0801767C b _080173EA _0801767C: str r0, [sp] movs r0, 0x6 movs r1, 0 movs r2, 0 movs r3, 0 bl sub_8018324 lsls r0, 24 cmp r0, 0 beq _08017692 b _080173EA _08017692: ldr r2, _080176C0 ldr r0, _080176C4 adds r1, r2, r0 ldrb r0, [r1] adds r0, 0x1 _0801769C: strb r0, [r1] mov r9, r2 _080176A0: ldr r0, _080176C4 add r0, r9 ldrb r0, [r0] cmp r0, 0x7 beq _080176AC b _080173FC _080176AC: movs r0, 0 _080176AE: add sp, 0x4 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _080176C0: .4byte 0x02000000 _080176C4: .4byte 0x00016059 thumb_func_end sub_80173A4 thumb_func_start b_clear_atk_up_if_hit_flag_unless_enraged b_clear_atk_up_if_hit_flag_unless_enraged: @ 80176C8 push {r4-r6,lr} movs r3, 0 ldr r0, _08017708 adds r5, r0, 0 ldrb r0, [r5] cmp r3, r0 bge _08017700 ldr r4, _0801770C movs r6, 0x80 lsls r6, 16 ldr r2, _08017710 _080176DE: ldr r1, [r2] adds r0, r1, 0 ands r0, r6 cmp r0, 0 beq _080176F4 ldrh r0, [r4] cmp r0, 0x63 beq _080176F4 ldr r0, _08017714 ands r1, r0 str r1, [r2] _080176F4: adds r4, 0x2 adds r2, 0x58 adds r3, 0x1 ldrb r0, [r5] cmp r3, r0 blt _080176DE _08017700: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08017708: .4byte 0x02024a68 _0801770C: .4byte 0x02024c60 _08017710: .4byte 0x02024ad0 _08017714: .4byte 0xff7fffff thumb_func_end b_clear_atk_up_if_hit_flag_unless_enraged thumb_func_start sub_8017718 sub_8017718: @ 8017718 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x10 movs r0, 0 mov r9, r0 ldr r1, _08017734 mov r10, r1 ldr r2, _08017738 add r2, r10 mov r8, r2 b _08017746 .align 2, 0 _08017734: .4byte 0x02016090 _08017738: .4byte 0xfffe9f70 _0801773C: mov r4, r9 cmp r4, 0 beq _08017746 bl _08017FAC _08017746: ldr r0, _08017760 add r0, r8 ldrb r0, [r0] cmp r0, 0xE bls _08017754 bl _08017F9E _08017754: lsls r0, 2 ldr r1, _08017764 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08017760: .4byte 0x000160e7 _08017764: .4byte _08017768 .align 2, 0 _08017768: .4byte _080177A4 .4byte _080177E4 .4byte _08017920 .4byte _080179D8 .4byte _08017A50 .4byte _08017AC8 .4byte _08017B1C .4byte _08017B98 .4byte _08017C1C .4byte _08017C60 .4byte _08017D3C .4byte _08017DC0 .4byte _08017E5C .4byte _08017F48 .4byte _08017F9E _080177A4: ldr r1, _080177D0 ldr r3, _080177D4 ldrb r2, [r3] movs r0, 0x58 muls r2, r0 adds r1, 0x50 adds r2, r1 ldr r0, [r2] ldr r1, _080177D8 ands r0, r1 str r0, [r2] ldr r0, _080177DC ldrb r2, [r3] lsls r2, 2 adds r2, r0 ldr r0, [r2] ldr r1, _080177E0 ands r0, r1 str r0, [r2] bl _08017F94 .align 2, 0 _080177D0: .4byte 0x02024a80 _080177D4: .4byte 0x02024c07 _080177D8: .4byte 0xfdffffff _080177DC: .4byte 0x02024c98 _080177E0: .4byte 0xffffbfff _080177E4: ldr r7, _0801784C ldr r4, _08017850 ldrb r1, [r4] movs r5, 0x58 adds r0, r1, 0 muls r0, r5 adds r6, r7, 0 adds r6, 0x4C adds r0, r6 ldr r0, [r0] movs r2, 0x7 mov r8, r2 ands r0, r2 cmp r0, 0 bne _08017804 b _08017D90 _08017804: adds r0, r1, 0 bl sub_8025A44 lsls r0, 24 cmp r0, 0 beq _08017864 ldrb r0, [r4] adds r2, r0, 0 muls r2, r5 adds r2, r6 ldr r0, [r2] movs r1, 0x8 negs r1, r1 ands r0, r1 str r0, [r2] ldrb r0, [r4] adds r2, r0, 0 muls r2, r5 adds r0, r7, 0 adds r0, 0x50 adds r2, r0 ldr r0, [r2] ldr r1, _08017854 ands r0, r1 str r0, [r2] bl b_movescr_stack_push_cursor ldr r1, _08017858 movs r0, 0x1 strb r0, [r1, 0x5] ldr r1, _0801785C ldr r0, _08017860 str r0, [r1] movs r4, 0x2 mov r9, r4 b _08017D90 .align 2, 0 _0801784C: .4byte 0x02024a80 _08017850: .4byte 0x02024c07 _08017854: .4byte 0xf7ffffff _08017858: .4byte 0x02024d1e _0801785C: .4byte 0x02024c10 _08017860: .4byte gUnknown_081D94FB _08017864: ldrb r0, [r4] adds r1, r0, 0 muls r1, r5 adds r0, r1, r7 adds r0, 0x20 ldrb r0, [r0] movs r3, 0x1 cmp r0, 0x30 bne _08017878 movs r3, 0x2 _08017878: adds r2, r1, r6 ldr r1, [r2] adds r0, r1, 0 mov r7, r8 ands r0, r7 cmp r0, r3 bcs _08017890 movs r0, 0x8 negs r0, r0 ands r1, r0 str r1, [r2] b _08017894 _08017890: subs r0, r1, r3 str r0, [r2] _08017894: ldr r2, _080178D8 ldr r0, _080178DC ldrb r1, [r0] movs r0, 0x58 muls r1, r0 adds r0, r2, 0 adds r0, 0x4C adds r0, r1, r0 ldr r4, [r0] movs r0, 0x7 ands r4, r0 cmp r4, 0 beq _080178F0 ldr r0, _080178E0 ldrh r0, [r0] cmp r0, 0xAD bne _080178B8 b _08017D90 _080178B8: cmp r0, 0xD6 bne _080178BE b _08017D90 _080178BE: ldr r1, _080178E4 ldr r0, _080178E8 str r0, [r1] ldr r2, _080178EC ldr r0, [r2] movs r1, 0x80 lsls r1, 12 orrs r0, r1 str r0, [r2] movs r0, 0x2 mov r9, r0 b _08017D90 .align 2, 0 _080178D8: .4byte 0x02024a80 _080178DC: .4byte 0x02024c07 _080178E0: .4byte 0x02024be6 _080178E4: .4byte 0x02024c10 _080178E8: .4byte gUnknown_081D94EE _080178EC: .4byte 0x02024c6c _080178F0: adds r2, 0x50 adds r2, r1, r2 ldr r0, [r2] ldr r1, _08017910 ands r0, r1 str r0, [r2] bl b_movescr_stack_push_cursor ldr r0, _08017914 strb r4, [r0, 0x5] ldr r1, _08017918 ldr r0, _0801791C str r0, [r1] movs r1, 0x2 b _08017D8E .align 2, 0 _08017910: .4byte 0xf7ffffff _08017914: .4byte 0x02024d1e _08017918: .4byte 0x02024c10 _0801791C: .4byte gUnknown_081D94FB _08017920: ldr r1, _0801797C ldr r7, _08017980 ldrb r0, [r7] movs r6, 0x58 muls r0, r6 adds r5, r1, 0 adds r5, 0x4C adds r0, r5 ldr r0, [r0] movs r1, 0x20 ands r0, r1 cmp r0, 0 bne _0801793C b _08017F94 _0801793C: bl Random lsls r0, 16 lsrs r0, 16 movs r1, 0x5 bl __umodsi3 lsls r0, 16 lsrs r4, r0, 16 cmp r4, 0 beq _080179A8 ldr r2, _08017984 ldr r0, _08017988 ldrh r1, [r0] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r0, [r0] cmp r0, 0x7D beq _08017998 ldr r1, _0801798C ldr r0, _08017990 str r0, [r1] ldr r2, _08017994 ldr r0, [r2] movs r1, 0x80 lsls r1, 2 orrs r0, r1 str r0, [r2] b _080179C8 .align 2, 0 _0801797C: .4byte 0x02024a80 _08017980: .4byte 0x02024c07 _08017984: .4byte gBattleMoves _08017988: .4byte 0x02024be6 _0801798C: .4byte 0x02024c10 _08017990: .4byte gUnknown_081D9545 _08017994: .4byte 0x02024c6c _08017998: ldr r2, _080179A0 ldr r7, _080179A4 adds r1, r2, r7 b _08017D96 .align 2, 0 _080179A0: .4byte 0x02000000 _080179A4: .4byte 0x000160e7 _080179A8: ldrb r0, [r7] adds r2, r0, 0 muls r2, r6 adds r2, r5 ldr r0, [r2] movs r1, 0x21 negs r1, r1 ands r0, r1 str r0, [r2] bl b_movescr_stack_push_cursor ldr r1, _080179CC ldr r0, _080179D0 str r0, [r1] ldr r0, _080179D4 strb r4, [r0, 0x5] _080179C8: movs r0, 0x2 b _08017E3C .align 2, 0 _080179CC: .4byte 0x02024c10 _080179D0: .4byte gUnknown_081D9552 _080179D4: .4byte 0x02024d1e _080179D8: ldr r1, _08017A30 ldr r0, _08017A34 ldrb r2, [r0] movs r0, 0x58 muls r0, r2 adds r0, r1 adds r0, 0x20 ldrb r0, [r0] cmp r0, 0x36 beq _080179EE b _08017D90 _080179EE: ldr r0, _08017A38 lsls r1, r2, 3 subs r1, r2 lsls r1, 2 adds r1, r0 ldrb r0, [r1, 0x18] lsls r0, 31 cmp r0, 0 bne _08017A02 b _08017D90 _08017A02: adds r0, r2, 0 bl b_cancel_multi_turn_move_maybe ldr r2, _08017A3C ldr r0, [r2] movs r1, 0x80 lsls r1, 12 orrs r0, r1 str r0, [r2] ldr r1, _08017A40 movs r0, 0 strb r0, [r1, 0x5] ldr r1, _08017A44 ldr r0, _08017A48 str r0, [r1] ldr r2, _08017A4C ldrb r0, [r2] movs r1, 0x1 orrs r0, r1 strb r0, [r2] movs r2, 0x1 mov r9, r2 b _08017D90 .align 2, 0 _08017A30: .4byte 0x02024a80 _08017A34: .4byte 0x02024c07 _08017A38: .4byte 0x02024ca8 _08017A3C: .4byte 0x02024c6c _08017A40: .4byte 0x02024d1e _08017A44: .4byte 0x02024c10 _08017A48: .4byte gUnknown_081D9977 _08017A4C: .4byte 0x02024c68 _08017A50: ldr r1, _08017AA4 ldr r3, _08017AA8 ldrb r2, [r3] movs r0, 0x58 muls r0, r2 adds r1, 0x50 adds r2, r0, r1 ldr r1, [r2] movs r0, 0x80 lsls r0, 15 ands r0, r1 cmp r0, 0 beq _08017A9C ldr r0, _08017AAC ands r1, r0 str r1, [r2] ldr r2, _08017AB0 ldrb r1, [r3] lsls r0, r1, 3 subs r0, r1 lsls r0, 2 adds r0, r2 movs r1, 0 strb r1, [r0, 0x19] ldrb r0, [r3] bl b_cancel_multi_turn_move_maybe ldr r1, _08017AB4 ldr r0, _08017AB8 str r0, [r1] ldr r2, _08017ABC ldr r0, [r2] movs r1, 0x80 lsls r1, 12 orrs r0, r1 str r0, [r2] movs r7, 0x1 mov r9, r7 _08017A9C: ldr r2, _08017AC0 ldr r0, _08017AC4 adds r1, r2, r0 b _08017D96 .align 2, 0 _08017AA4: .4byte 0x02024a80 _08017AA8: .4byte 0x02024c07 _08017AAC: .4byte 0xffbfffff _08017AB0: .4byte 0x02024ca8 _08017AB4: .4byte 0x02024c10 _08017AB8: .4byte gUnknown_081D7956 _08017ABC: .4byte 0x02024c6c _08017AC0: .4byte 0x02000000 _08017AC4: .4byte 0x000160e7 _08017AC8: ldr r1, _08017B08 ldr r3, _08017B0C ldrb r2, [r3] movs r0, 0x58 muls r0, r2 adds r1, 0x50 adds r2, r0, r1 ldr r1, [r2] movs r0, 0x8 ands r0, r1 cmp r0, 0 bne _08017AE2 b _08017D90 _08017AE2: movs r0, 0x9 negs r0, r0 ands r1, r0 str r1, [r2] ldr r0, _08017B10 ldrb r2, [r3] lsls r2, 4 adds r2, r0 ldrb r0, [r2, 0x2] movs r1, 0x4 orrs r0, r1 strb r0, [r2, 0x2] ldrb r0, [r3] bl b_cancel_multi_turn_move_maybe ldr r1, _08017B14 ldr r0, _08017B18 b _08017D7E .align 2, 0 _08017B08: .4byte 0x02024a80 _08017B0C: .4byte 0x02024c07 _08017B10: .4byte 0x02024d28 _08017B14: .4byte 0x02024c10 _08017B18: .4byte gUnknown_081D9573 _08017B1C: ldr r0, _08017B74 ldr r3, _08017B78 ldrb r2, [r3] lsls r1, r2, 3 subs r1, r2 lsls r1, 2 adds r1, r0 ldr r0, _08017B7C ldrh r1, [r1, 0x4] ldrh r0, [r0] cmp r1, r0 beq _08017B36 b _08017D90 _08017B36: cmp r1, 0 bne _08017B3C b _08017D90 _08017B3C: ldr r0, _08017B80 lsls r2, 4 adds r2, r0 ldrb r0, [r2, 0x1] movs r1, 0x80 orrs r0, r1 strb r0, [r2, 0x1] ldr r0, _08017B84 ldrb r1, [r3] ldr r7, _08017B88 adds r0, r7 strb r1, [r0] ldrb r0, [r3] bl b_cancel_multi_turn_move_maybe ldr r1, _08017B8C ldr r0, _08017B90 str r0, [r1] ldr r2, _08017B94 ldr r0, [r2] movs r1, 0x80 lsls r1, 12 orrs r0, r1 str r0, [r2] movs r0, 0x1 mov r9, r0 b _08017D90 .align 2, 0 _08017B74: .4byte 0x02024ca8 _08017B78: .4byte 0x02024c07 _08017B7C: .4byte 0x02024be6 _08017B80: .4byte 0x02024d28 _08017B84: .4byte 0x02000000 _08017B88: .4byte 0x00016003 _08017B8C: .4byte 0x02024c10 _08017B90: .4byte gUnknown_081D9139 _08017B94: .4byte 0x02024c6c _08017B98: ldr r0, _08017BF4 ldr r4, _08017BF8 ldrb r3, [r4] lsls r1, r3, 3 subs r1, r3 lsls r1, 2 adds r1, r0 ldrb r0, [r1, 0x13] lsls r0, 28 cmp r0, 0 beq _08017BEC ldr r2, _08017BFC ldr r0, _08017C00 ldrh r1, [r0] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r0, [r0, 0x1] cmp r0, 0 bne _08017BEC ldr r0, _08017C04 lsls r2, r3, 4 adds r2, r0 ldrb r0, [r2, 0x2] movs r1, 0x1 orrs r0, r1 strb r0, [r2, 0x2] ldrb r0, [r4] bl b_cancel_multi_turn_move_maybe ldr r1, _08017C08 ldr r0, _08017C0C str r0, [r1] ldr r2, _08017C10 ldr r0, [r2] movs r1, 0x80 lsls r1, 12 orrs r0, r1 str r0, [r2] movs r7, 0x1 mov r9, r7 _08017BEC: ldr r2, _08017C14 ldr r0, _08017C18 adds r1, r2, r0 b _08017D96 .align 2, 0 _08017BF4: .4byte 0x02024ca8 _08017BF8: .4byte 0x02024c07 _08017BFC: .4byte gBattleMoves _08017C00: .4byte 0x02024be6 _08017C04: .4byte 0x02024d28 _08017C08: .4byte 0x02024c10 _08017C0C: .4byte gUnknown_081D938F _08017C10: .4byte 0x02024c6c _08017C14: .4byte 0x02000000 _08017C18: .4byte 0x000160e7 _08017C1C: ldr r4, _08017C4C ldrb r0, [r4] ldr r1, _08017C50 ldrh r1, [r1] bl sub_8015D5C lsls r0, 24 cmp r0, 0 bne _08017C30 b _08017D90 _08017C30: ldr r0, _08017C54 ldrb r2, [r4] lsls r2, 4 adds r2, r0 ldrb r0, [r2, 0x1] movs r1, 0x20 orrs r0, r1 strb r0, [r2, 0x1] ldrb r0, [r4] bl b_cancel_multi_turn_move_maybe ldr r1, _08017C58 ldr r0, _08017C5C b _08017D7E .align 2, 0 _08017C4C: .4byte 0x02024c07 _08017C50: .4byte 0x02024be6 _08017C54: .4byte 0x02024d28 _08017C58: .4byte 0x02024c10 _08017C5C: .4byte gUnknown_081D9459 _08017C60: ldr r7, _08017CAC ldr r5, _08017CB0 ldrb r0, [r5] movs r6, 0x58 muls r0, r6 adds r4, r7, 0 adds r4, 0x50 adds r2, r0, r4 ldr r1, [r2] movs r3, 0x7 adds r0, r1, 0 ands r0, r3 cmp r0, 0 bne _08017C7E b _08017F94 _08017C7E: subs r0, r1, 0x1 str r0, [r2] ldrb r0, [r5] muls r0, r6 adds r0, r4 ldr r0, [r0] ands r0, r3 cmp r0, 0 beq _08017D24 bl Random movs r1, 0x1 movs r2, 0x1 ands r2, r0 cmp r2, 0 beq _08017CB8 ldr r1, _08017CB4 movs r0, 0 strb r0, [r1, 0x5] bl b_movescr_stack_push_cursor b _08017D02 .align 2, 0 _08017CAC: .4byte 0x02024a80 _08017CB0: .4byte 0x02024c07 _08017CB4: .4byte 0x02024d1e _08017CB8: ldr r0, _08017D08 movs r4, 0x1 strb r1, [r0, 0x5] ldr r1, _08017D0C ldrb r0, [r5] strb r0, [r1] ldrb r0, [r5] adds r1, r0, 0 muls r1, r6 adds r1, r7 movs r0, 0x28 str r0, [sp] str r2, [sp, 0x4] ldrb r0, [r5] str r0, [sp, 0x8] ldrb r0, [r5] str r0, [sp, 0xC] adds r0, r1, 0 movs r2, 0x1 movs r3, 0 bl sub_803BA2C ldr r1, _08017D10 str r0, [r1] ldr r0, _08017D14 ldrb r1, [r5] lsls r1, 4 adds r1, r0 ldrb r0, [r1, 0x1] orrs r0, r4 strb r0, [r1, 0x1] ldr r2, _08017D18 ldr r0, [r2] movs r1, 0x80 lsls r1, 12 orrs r0, r1 str r0, [r2] _08017D02: ldr r1, _08017D1C ldr r0, _08017D20 b _08017D2C .align 2, 0 _08017D08: .4byte 0x02024d1e _08017D0C: .4byte 0x02024c08 _08017D10: .4byte 0x02024bec _08017D14: .4byte 0x02024d28 _08017D18: .4byte 0x02024c6c _08017D1C: .4byte 0x02024c10 _08017D20: .4byte gUnknown_081D9595 _08017D24: bl b_movescr_stack_push_cursor ldr r1, _08017D34 ldr r0, _08017D38 _08017D2C: str r0, [r1] movs r7, 0x1 b _08017F8E .align 2, 0 _08017D34: .4byte 0x02024c10 _08017D38: .4byte gUnknown_081D95D4 _08017D3C: ldr r1, _08017DA0 ldr r4, _08017DA4 ldrb r2, [r4] movs r0, 0x58 muls r0, r2 adds r1, 0x4C adds r0, r1 ldr r0, [r0] movs r1, 0x40 ands r0, r1 cmp r0, 0 beq _08017D90 bl Random lsls r0, 16 movs r1, 0xC0 lsls r1, 10 ands r1, r0 cmp r1, 0 bne _08017D90 ldr r0, _08017DA8 ldrb r2, [r4] lsls r2, 4 adds r2, r0 ldrb r0, [r2] movs r1, 0x80 orrs r0, r1 strb r0, [r2] ldrb r0, [r4] bl b_cancel_multi_turn_move_maybe ldr r1, _08017DAC ldr r0, _08017DB0 _08017D7E: str r0, [r1] ldr r2, _08017DB4 ldr r0, [r2] movs r1, 0x80 lsls r1, 12 orrs r0, r1 str r0, [r2] movs r1, 0x1 _08017D8E: mov r9, r1 _08017D90: ldr r2, _08017DB8 ldr r4, _08017DBC adds r1, r2, r4 _08017D96: ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] mov r8, r2 b _08017F9E .align 2, 0 _08017DA0: .4byte 0x02024a80 _08017DA4: .4byte 0x02024c07 _08017DA8: .4byte 0x02024d28 _08017DAC: .4byte 0x02024c10 _08017DB0: .4byte gUnknown_081D9566 _08017DB4: .4byte 0x02024c6c _08017DB8: .4byte 0x02000000 _08017DBC: .4byte 0x000160e7 _08017DC0: ldr r1, _08017DFC ldr r4, _08017E00 ldrb r2, [r4] movs r0, 0x58 muls r0, r2 adds r1, 0x50 adds r0, r1 ldr r1, [r0] movs r0, 0xF0 lsls r0, 12 ands r1, r0 cmp r1, 0 bne _08017DDC b _08017F94 _08017DDC: lsrs r0, r1, 16 bl sub_804114C ldr r1, _08017E04 ldr r7, _08017E08 adds r1, r7 strb r0, [r1] bl Random movs r1, 0x1 ands r1, r0 cmp r1, 0 beq _08017E0C bl b_movescr_stack_push_cursor b _08017E34 .align 2, 0 _08017DFC: .4byte 0x02024a80 _08017E00: .4byte 0x02024c07 _08017E04: .4byte 0x02000000 _08017E08: .4byte 0x00016003 _08017E0C: ldr r0, _08017E44 bl b_movescr_stack_push ldr r2, _08017E48 ldr r0, [r2] movs r1, 0x80 lsls r1, 12 orrs r0, r1 str r0, [r2] ldr r0, _08017E4C ldrb r2, [r4] lsls r2, 4 adds r2, r0 ldrb r0, [r2, 0x1] movs r1, 0x40 orrs r0, r1 strb r0, [r2, 0x1] ldrb r0, [r4] bl b_cancel_multi_turn_move_maybe _08017E34: ldr r1, _08017E50 ldr r0, _08017E54 str r0, [r1] movs r0, 0x1 _08017E3C: mov r9, r0 ldr r1, _08017E58 mov r8, r1 b _08017F94 .align 2, 0 _08017E44: .4byte gUnknown_081D9608 _08017E48: .4byte 0x02024c6c _08017E4C: .4byte 0x02024d28 _08017E50: .4byte 0x02024c10 _08017E54: .4byte gUnknown_081D95FB _08017E58: .4byte 0x02000000 _08017E5C: ldr r1, _08017E98 ldr r6, _08017E9C ldrb r0, [r6] movs r5, 0x58 muls r0, r5 adds r1, 0x50 adds r3, r0, r1 ldr r2, [r3] movs r4, 0xC0 lsls r4, 2 adds r0, r2, 0 ands r0, r4 cmp r0, 0 bne _08017E7A b _08017F94 _08017E7A: ldr r7, _08017EA0 adds r0, r2, r7 str r0, [r3] ldrb r0, [r6] muls r0, r5 adds r1, r0, r1 ldr r2, [r1] adds r0, r2, 0 ands r0, r4 cmp r0, 0 beq _08017EAC ldr r1, _08017EA4 ldr r0, _08017EA8 b _08017F38 .align 2, 0 _08017E98: .4byte 0x02024a80 _08017E9C: .4byte 0x02024c07 _08017EA0: .4byte 0xffffff00 _08017EA4: .4byte 0x02024c10 _08017EA8: .4byte gUnknown_081D90A7 _08017EAC: ldr r0, _08017F0C ands r2, r0 str r2, [r1] ldr r2, _08017F10 ldrb r0, [r6] lsls r0, 2 adds r0, r2 ldr r0, [r0] cmp r0, 0 beq _08017F34 ldr r1, _08017F14 movs r0, 0x75 strh r0, [r1] ldrb r0, [r6] lsls r0, 2 adds r0, r2 ldr r0, [r0] lsls r0, 1 mov r1, r10 str r0, [r1] ldr r4, _08017F18 ldr r1, _08017F1C ldrb r0, [r6] adds r0, r1 ldrb r0, [r0] strb r0, [r4] ldr r0, _08017F20 ldrb r1, [r0] ldr r2, _08017F24 ldrb r0, [r4] lsls r0, 2 adds r0, r2 ldr r0, [r0] ands r1, r0 cmp r1, 0 beq _08017EFE movs r0, 0x75 movs r1, 0x1 bl sub_801B5C0 strb r0, [r4] _08017EFE: ldr r1, _08017F28 ldr r0, _08017F2C str r0, [r1] ldr r2, _08017F30 mov r8, r2 b _08017F3A .align 2, 0 _08017F0C: .4byte 0xffffefff _08017F10: .4byte 0x02024bf4 _08017F14: .4byte 0x02024be6 _08017F18: .4byte 0x02024c08 _08017F1C: .4byte 0x02024c74 _08017F20: .4byte 0x02024c0c _08017F24: .4byte gUnknown_0820872C _08017F28: .4byte 0x02024c10 _08017F2C: .4byte gUnknown_081D90B2 _08017F30: .4byte 0x02000000 _08017F34: ldr r1, _08017F40 ldr r0, _08017F44 _08017F38: str r0, [r1] _08017F3A: movs r4, 0x1 mov r9, r4 b _08017F94 .align 2, 0 _08017F40: .4byte 0x02024c10 _08017F44: .4byte gUnknown_081D90F1 _08017F48: ldr r1, _08017FEC ldr r0, _08017FF0 ldrb r2, [r0] movs r0, 0x58 muls r0, r2 adds r1, 0x4C adds r4, r0, r1 ldr r3, [r4] movs r0, 0x20 ands r0, r3 cmp r0, 0 beq _08017F94 ldr r2, _08017FF4 ldr r0, _08017FF8 ldrh r1, [r0] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r0, [r0] cmp r0, 0x7D bne _08017F8C movs r0, 0x21 negs r0, r0 ands r3, r0 str r3, [r4] bl b_movescr_stack_push_cursor ldr r1, _08017FFC ldr r0, _08018000 str r0, [r1] ldr r1, _08018004 movs r0, 0x1 strb r0, [r1, 0x5] _08017F8C: movs r7, 0x2 _08017F8E: mov r9, r7 ldr r0, _08018008 mov r8, r0 _08017F94: ldr r1, _0801800C add r1, r8 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] _08017F9E: ldr r0, _0801800C add r0, r8 ldrb r0, [r0] cmp r0, 0xE beq _08017FAC bl _0801773C _08017FAC: mov r1, r9 cmp r1, 0x2 bne _08017FD8 ldr r4, _08018010 ldr r0, _08017FF0 ldrb r0, [r0] strb r0, [r4] ldrb r1, [r4] movs r0, 0x58 muls r0, r1 ldr r1, _08018014 adds r0, r1 str r0, [sp] movs r0, 0 movs r1, 0x28 movs r2, 0 movs r3, 0x4 bl dp01_build_cmdbuf_x02_a_b_varargs ldrb r0, [r4] bl dp01_battle_side_mark_buffer_for_execution _08017FD8: mov r0, r9 add sp, 0x10 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _08017FEC: .4byte 0x02024a80 _08017FF0: .4byte 0x02024c07 _08017FF4: .4byte gBattleMoves _08017FF8: .4byte 0x02024be6 _08017FFC: .4byte 0x02024c10 _08018000: .4byte gUnknown_081D9552 _08018004: .4byte 0x02024d1e _08018008: .4byte 0x02000000 _0801800C: .4byte 0x000160e7 _08018010: .4byte 0x02024a60 _08018014: .4byte 0x02024acc thumb_func_end sub_8017718 thumb_func_start sub_8018018 sub_8018018: @ 8018018 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} lsls r0, 24 lsrs r4, r0, 24 adds r3, r4, 0 lsls r1, 24 lsrs r1, 24 mov r10, r1 lsls r2, 24 lsrs r2, 24 mov r9, r2 ldr r0, _08018044 ldrh r1, [r0] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _08018048 movs r0, 0 b _08018198 .align 2, 0 _08018044: .4byte 0x020239f8 _08018048: movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _080180D4 adds r0, r4, 0 bl sub_803FC34 lsls r0, 24 lsrs r7, r0, 24 adds r0, r4, 0 bl battle_side_get_owner lsls r0, 24 ldr r1, _080180CC mov r8, r1 cmp r0, 0 bne _0801806E ldr r2, _080180D0 mov r8, r2 _0801806E: adds r0, r7, 0 bl sub_803FBFC lsls r0, 24 lsrs r6, r0, 24 lsls r0, r6, 1 adds r5, r0, r6 adds r0, r5, 0x3 cmp r5, r0 bge _080180BA adds r7, r0, 0 _08018084: movs r0, 0x64 muls r0, r5 mov r1, r8 adds r4, r1, r0 adds r0, r4, 0 movs r1, 0x39 bl PokemonGetField cmp r0, 0 beq _080180B4 adds r0, r4, 0 movs r1, 0x41 bl PokemonGetField cmp r0, 0 beq _080180B4 adds r0, r4, 0 movs r1, 0x41 bl PokemonGetField movs r1, 0xCE lsls r1, 1 cmp r0, r1 bne _080180BA _080180B4: adds r5, 0x1 cmp r5, r7 blt _08018084 _080180BA: movs r1, 0 lsls r0, r6, 1 adds r0, r6 adds r0, 0x3 cmp r5, r0 bne _080180C8 movs r1, 0x1 _080180C8: adds r0, r1, 0 b _08018198 .align 2, 0 _080180CC: .4byte 0x030045c0 _080180D0: .4byte 0x03004360 _080180D4: adds r0, r3, 0 bl battle_side_get_owner lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _08018100 movs r0, 0x1 bl battle_get_side_with_given_state lsls r0, 24 lsrs r7, r0, 24 movs r0, 0x3 bl battle_get_side_with_given_state lsls r0, 24 lsrs r6, r0, 24 ldr r2, _080180FC mov r8, r2 b _08018118 .align 2, 0 _080180FC: .4byte 0x030045c0 _08018100: movs r0, 0 bl battle_get_side_with_given_state lsls r0, 24 lsrs r7, r0, 24 movs r0, 0x2 bl battle_get_side_with_given_state lsls r0, 24 lsrs r6, r0, 24 ldr r0, _080181A8 mov r8, r0 _08018118: mov r1, r10 cmp r1, 0x6 bne _08018128 ldr r1, _080181AC lsls r0, r7, 1 adds r0, r1 ldrb r0, [r0] mov r10, r0 _08018128: mov r2, r9 cmp r2, 0x6 bne _08018138 ldr r1, _080181AC lsls r0, r6, 1 adds r0, r1 ldrb r0, [r0] mov r9, r0 _08018138: movs r5, 0 _0801813A: movs r0, 0x64 muls r0, r5 mov r1, r8 adds r4, r1, r0 adds r0, r4, 0 movs r1, 0x39 bl PokemonGetField cmp r0, 0 beq _0801818A adds r0, r4, 0 movs r1, 0x41 bl PokemonGetField cmp r0, 0 beq _0801818A adds r0, r4, 0 movs r1, 0x41 bl PokemonGetField movs r1, 0xCE lsls r1, 1 cmp r0, r1 beq _0801818A cmp r5, r10 beq _0801818A cmp r5, r9 beq _0801818A ldr r1, _080181B0 ldr r2, _080181B4 adds r0, r7, r2 adds r0, r1 ldrb r0, [r0] cmp r5, r0 beq _0801818A adds r0, r6, r2 adds r0, r1 ldrb r0, [r0] cmp r5, r0 bne _08018190 _0801818A: adds r5, 0x1 cmp r5, 0x5 ble _0801813A _08018190: movs r0, 0 cmp r5, 0x6 bne _08018198 movs r0, 0x1 _08018198: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _080181A8: .4byte 0x03004360 _080181AC: .4byte 0x02024a6a _080181B0: .4byte 0x02000000 _080181B4: .4byte 0x00016068 thumb_func_end sub_8018018 thumb_func_start castform_switch castform_switch: @ 80181B8 push {r4-r6,lr} sub sp, 0x4 lsls r0, 24 lsrs r6, r0, 24 movs r5, 0 ldr r1, _08018228 movs r0, 0x58 muls r0, r6 adds r4, r0, r1 ldrh r1, [r4] ldr r0, _0801822C cmp r1, r0 bne _0801825C adds r0, r4, 0 adds r0, 0x20 ldrb r0, [r0] cmp r0, 0x3B bne _0801825C ldrh r0, [r4, 0x28] cmp r0, 0 beq _0801825C str r5, [sp] movs r0, 0x13 movs r1, 0 movs r2, 0xD movs r3, 0 bl sub_8018324 lsls r0, 24 cmp r0, 0 bne _0801820A str r5, [sp] movs r0, 0x13 movs r1, 0 movs r2, 0x4D movs r3, 0 bl sub_8018324 lsls r0, 24 cmp r0, 0 beq _08018230 _0801820A: adds r2, r4, 0 adds r2, 0x21 ldrb r0, [r2] cmp r0, 0 beq _08018230 adds r1, r4, 0 adds r1, 0x22 ldrb r0, [r1] cmp r0, 0 beq _08018230 strb r5, [r2] strb r5, [r1] movs r0, 0x1 b _08018314 .align 2, 0 _08018228: .4byte 0x02024a80 _0801822C: .4byte 0x00000181 _08018230: movs r0, 0 str r0, [sp] movs r0, 0x13 movs r1, 0 movs r2, 0xD movs r3, 0 bl sub_8018324 lsls r0, 24 lsrs r0, 24 cmp r0, 0 bne _0801825C str r0, [sp] movs r0, 0x13 movs r1, 0 movs r2, 0x4D movs r3, 0 bl sub_8018324 lsls r0, 24 cmp r0, 0 beq _08018260 _0801825C: movs r0, 0 b _08018314 _08018260: ldr r1, _0801831C ldrh r0, [r1] movs r2, 0xE7 ands r2, r0 adds r4, r1, 0 cmp r2, 0 bne _0801828E ldr r1, _08018320 movs r0, 0x58 muls r0, r6 adds r1, r0, r1 adds r3, r1, 0 adds r3, 0x21 ldrb r0, [r3] cmp r0, 0 beq _0801828E adds r1, 0x22 ldrb r0, [r1] cmp r0, 0 beq _0801828E strb r2, [r3] strb r2, [r1] movs r5, 0x1 _0801828E: ldrh r1, [r4] movs r0, 0x60 ands r0, r1 cmp r0, 0 beq _080182BA ldr r1, _08018320 movs r0, 0x58 muls r0, r6 adds r1, r0, r1 adds r2, r1, 0 adds r2, 0x21 ldrb r0, [r2] cmp r0, 0xA beq _080182BA adds r1, 0x22 ldrb r0, [r1] cmp r0, 0xA beq _080182BA movs r0, 0xA strb r0, [r2] strb r0, [r1] movs r5, 0x2 _080182BA: ldrh r1, [r4] movs r0, 0x7 ands r0, r1 cmp r0, 0 beq _080182E6 ldr r1, _08018320 movs r0, 0x58 muls r0, r6 adds r1, r0, r1 adds r2, r1, 0 adds r2, 0x21 ldrb r0, [r2] cmp r0, 0xB beq _080182E6 adds r1, 0x22 ldrb r0, [r1] cmp r0, 0xB beq _080182E6 movs r0, 0xB strb r0, [r2] strb r0, [r1] movs r5, 0x3 _080182E6: ldrh r1, [r4] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _08018312 ldr r1, _08018320 movs r0, 0x58 muls r0, r6 adds r1, r0, r1 adds r2, r1, 0 adds r2, 0x21 ldrb r0, [r2] cmp r0, 0xF beq _08018312 adds r1, 0x22 ldrb r0, [r1] cmp r0, 0xF beq _08018312 movs r0, 0xF strb r0, [r2] strb r0, [r1] movs r5, 0x4 _08018312: adds r0, r5, 0 _08018314: add sp, 0x4 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _0801831C: .4byte 0x02024db8 _08018320: .4byte 0x02024a80 thumb_func_end castform_switch thumb_func_start sub_8018324 sub_8018324: @ 8018324 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x28 ldr r4, [sp, 0x48] lsls r0, 24 lsrs r0, 24 str r0, [sp, 0x4] lsls r1, 24 lsrs r1, 24 mov r10, r1 lsls r2, 24 lsrs r6, r2, 24 lsls r3, 24 lsrs r3, 24 mov r8, r3 lsls r4, 16 lsrs r4, 16 movs r0, 0 mov r9, r0 ldr r5, _08018380 ldr r1, _08018384 ldrb r0, [r5] ldrb r1, [r1] cmp r0, r1 bcc _08018360 mov r1, r10 strb r1, [r5] _08018360: ldrb r0, [r5] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 bne _08018390 ldr r1, _08018388 ldrb r0, [r5] lsls r0, 1 adds r0, r1 ldrh r1, [r0] movs r0, 0x64 muls r1, r0 ldr r0, _0801838C b _080183A0 .align 2, 0 _08018380: .4byte 0x02024c07 _08018384: .4byte 0x02024a68 _08018388: .4byte 0x02024a6a _0801838C: .4byte 0x03004360 _08018390: ldr r1, _080183D0 ldrb r0, [r5] lsls r0, 1 adds r0, r1 ldrh r1, [r0] movs r0, 0x64 muls r1, r0 ldr r0, _080183D4 _080183A0: adds r7, r1, r0 ldr r5, _080183D8 ldr r1, _080183DC ldrb r0, [r5] ldrb r1, [r1] cmp r0, r1 bcc _080183B2 mov r2, r10 strb r2, [r5] _080183B2: ldrb r0, [r5] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 bne _080183E4 ldr r1, _080183D0 ldrb r0, [r5] lsls r0, 1 adds r0, r1 ldrh r1, [r0] movs r0, 0x64 muls r1, r0 ldr r0, _080183E0 b _080183F4 .align 2, 0 _080183D0: .4byte 0x02024a6a _080183D4: .4byte 0x030045c0 _080183D8: .4byte 0x02024c08 _080183DC: .4byte 0x02024a68 _080183E0: .4byte 0x03004360 _080183E4: ldr r1, _08018444 ldrb r0, [r5] lsls r0, 1 adds r0, r1 ldrh r1, [r0] movs r0, 0x64 muls r1, r0 ldr r0, _08018448 _080183F4: adds r5, r1, r0 adds r0, r7, 0 movs r1, 0xB bl PokemonGetField lsls r0, 16 lsrs r0, 16 str r0, [sp, 0x8] adds r0, r7, 0 movs r1, 0 bl PokemonGetField str r0, [sp, 0x10] adds r0, r5, 0 movs r1, 0xB bl PokemonGetField lsls r0, 16 lsrs r0, 16 str r0, [sp, 0xC] adds r0, r5, 0 movs r1, 0 bl PokemonGetField str r0, [sp, 0x14] ldr r0, _0801844C ldrh r1, [r0] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _08018436 bl _08019F92 _08018436: mov r3, r8 cmp r3, 0 beq _08018454 ldr r0, _08018450 strb r3, [r0] mov r8, r0 b _0801846A .align 2, 0 _08018444: .4byte 0x02024a6a _08018448: .4byte 0x030045c0 _0801844C: .4byte 0x020239f8 _08018450: .4byte 0x02024c06 _08018454: ldr r2, _08018474 ldr r1, _08018478 movs r0, 0x58 mov r5, r10 muls r5, r0 adds r0, r5, 0 adds r0, r1 adds r0, 0x20 ldrb r0, [r0] strb r0, [r2] mov r8, r2 _0801846A: cmp r4, 0 beq _0801847C adds r3, r4, 0 b _08018480 .align 2, 0 _08018474: .4byte 0x02024c06 _08018478: .4byte 0x02024a80 _0801847C: ldr r0, _08018494 ldrh r3, [r0] _08018480: ldr r1, _08018498 ldr r2, _0801849C adds r0, r1, r2 ldrb r0, [r0] adds r7, r1, 0 cmp r0, 0 beq _080184A0 movs r4, 0x3F ands r4, r0 b _080184AC .align 2, 0 _08018494: .4byte 0x02024be6 _08018498: .4byte 0x02000000 _0801849C: .4byte 0x0001601c _080184A0: ldr r1, _080184C0 lsls r0, r3, 1 adds r0, r3 lsls r0, 2 adds r0, r1 ldrb r4, [r0, 0x2] _080184AC: ldr r5, [sp, 0x4] cmp r5, 0x13 bls _080184B6 bl _08019F76 _080184B6: lsls r0, r5, 2 ldr r1, _080184C4 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080184C0: .4byte gBattleMoves _080184C4: .4byte _080184C8 .align 2, 0 _080184C8: .4byte _08018518 .4byte _08018814 .4byte _08018A40 .4byte _08018AD8 .4byte _08018CF0 .4byte _08019448 .4byte _080197B4 .4byte _08019804 .4byte _08019880 .4byte _080198FC .4byte _08019B1C .4byte _08019940 .4byte _08019B60 .4byte _08019BBC .4byte _08019C18 .4byte _08019D18 .4byte _08019D5C .4byte _08019DB8 .4byte _08019F44 .4byte _08019CD4 _08018518: ldr r2, _0801854C ldr r0, _08018550 ldrb r1, [r2] adds r5, r0, 0 ldrb r0, [r5] cmp r1, r0 bcc _0801852A mov r1, r10 strb r1, [r2] _0801852A: mov r2, r8 ldrb r0, [r2] cmp r0, 0x2D bne _08018534 b _080186B8 _08018534: cmp r0, 0x2D bgt _08018564 cmp r0, 0xD bne _0801853E b _080187DC _0801853E: cmp r0, 0xD bgt _08018554 cmp r0, 0x2 bne _08018548 b _08018680 _08018548: bl _08019F76 .align 2, 0 _0801854C: .4byte 0x02024c07 _08018550: .4byte 0x02024a68 _08018554: cmp r0, 0x16 bne _0801855A b _08018728 _0801855A: cmp r0, 0x24 bne _08018560 b _080187A0 _08018560: bl _08019F76 _08018564: cmp r0, 0x46 bne _0801856A b _080186F0 _0801856A: cmp r0, 0x46 bgt _08018578 cmp r0, 0x3B bne _08018574 b _0801875C _08018574: bl _08019F76 _08018578: cmp r0, 0x4D bne _0801857E b _080187DC _0801857E: cmp r0, 0xFF beq _08018586 bl _08019F76 _08018586: bl weather_get_current lsls r0, 24 lsrs r0, 24 subs r0, 0x3 cmp r0, 0xA bhi _0801864C lsls r0, 2 ldr r1, _080185A0 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080185A0: .4byte _080185A4 .align 2, 0 _080185A4: .4byte _080185D0 .4byte _0801864C .4byte _080185D0 .4byte _0801864C .4byte _0801864C .4byte _080185F8 .4byte _0801864C .4byte _0801864C .4byte _0801864C .4byte _08018620 .4byte _080185D0 _080185D0: ldr r2, _080185EC ldrh r1, [r2] movs r0, 0x7 ands r0, r1 cmp r0, 0 bne _0801864C movs r0, 0x5 strh r0, [r2] ldr r0, _080185F0 ldr r3, _080185F4 adds r2, r0, r3 movs r1, 0xA b _08018638 .align 2, 0 _080185EC: .4byte 0x02024db8 _080185F0: .4byte 0x02000000 _080185F4: .4byte 0x000160a4 _080185F8: ldr r3, _08018614 ldrh r1, [r3] movs r2, 0x18 adds r0, r2, 0 ands r0, r1 cmp r0, 0 bne _0801864C strh r2, [r3] ldr r0, _08018618 ldr r3, _0801861C adds r2, r0, r3 movs r1, 0xC b _08018638 .align 2, 0 _08018614: .4byte 0x02024db8 _08018618: .4byte 0x02000000 _0801861C: .4byte 0x000160a4 _08018620: ldr r3, _08018668 ldrh r1, [r3] movs r2, 0x60 adds r0, r2, 0 ands r0, r1 cmp r0, 0 bne _0801864C strh r2, [r3] ldr r0, _0801866C ldr r3, _08018670 adds r2, r0, r3 movs r1, 0xB _08018638: strb r1, [r2] ldr r5, _08018674 adds r0, r5 mov r1, r10 strb r1, [r0] mov r0, r9 adds r0, 0x1 lsls r0, 24 lsrs r0, 24 mov r9, r0 _0801864C: mov r2, r9 cmp r2, 0 bne _08018656 bl _08019F92 _08018656: bl weather_get_current ldr r1, _08018678 strb r0, [r1, 0x5] ldr r0, _0801867C bl b_push_move_exec bl _08019F76 .align 2, 0 _08018668: .4byte 0x02024db8 _0801866C: .4byte 0x02000000 _08018670: .4byte 0x000160a4 _08018674: .4byte 0x00016003 _08018678: .4byte 0x02024d1e _0801867C: .4byte gUnknown_081D901D _08018680: ldr r2, _080186A8 ldrh r1, [r2] movs r0, 0x4 ands r0, r1 cmp r0, 0 beq _08018690 bl _08019F76 _08018690: movs r0, 0x5 strh r0, [r2] ldr r0, _080186AC bl b_push_move_exec ldr r0, _080186B0 ldr r3, _080186B4 adds r0, r3 mov r5, r10 strb r5, [r0] bl _08019F22 .align 2, 0 _080186A8: .4byte 0x02024db8 _080186AC: .4byte gUnknown_081D9704 _080186B0: .4byte 0x02000000 _080186B4: .4byte 0x00016003 _080186B8: ldr r2, _080186E0 ldrh r1, [r2] movs r0, 0x10 ands r0, r1 cmp r0, 0 beq _080186C8 bl _08019F76 _080186C8: movs r0, 0x18 strh r0, [r2] ldr r0, _080186E4 bl b_push_move_exec ldr r0, _080186E8 ldr r1, _080186EC adds r0, r1 mov r2, r10 strb r2, [r0] bl _08019F22 .align 2, 0 _080186E0: .4byte 0x02024db8 _080186E4: .4byte gUnknown_081D9744 _080186E8: .4byte 0x02000000 _080186EC: .4byte 0x00016003 _080186F0: ldr r2, _08018718 ldrh r1, [r2] movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _08018700 bl _08019F76 _08018700: movs r0, 0x60 strh r0, [r2] ldr r0, _0801871C bl b_push_move_exec ldr r0, _08018720 ldr r3, _08018724 adds r0, r3 mov r5, r10 strb r5, [r0] bl _08019F22 .align 2, 0 _08018718: .4byte 0x02024db8 _0801871C: .4byte gUnknown_081D97FE _08018720: .4byte 0x02000000 _08018724: .4byte 0x00016003 _08018728: ldr r0, _08018754 mov r1, r10 lsls r2, r1, 2 adds r1, r2, r1 lsls r1, 2 adds r3, r1, r0 ldrb r0, [r3] lsls r0, 28 cmp r0, 0 bge _08018740 bl _08019F76 _08018740: ldr r1, _08018758 adds r1, r2, r1 ldr r0, [r1] movs r2, 0x80 lsls r2, 12 orrs r0, r2 str r0, [r1] ldrb r0, [r3] movs r1, 0x8 b _080187CA .align 2, 0 _08018754: .4byte 0x02024d68 _08018758: .4byte 0x02024c98 _0801875C: mov r0, r10 bl castform_switch lsls r0, 24 lsrs r0, 24 mov r9, r0 cmp r0, 0 bne _08018770 bl _08019F92 _08018770: ldr r0, _08018790 bl b_push_move_exec ldr r0, _08018794 ldr r2, _08018798 adds r1, r0, r2 mov r3, r10 strb r3, [r1] mov r1, r9 subs r1, 0x1 ldr r5, _0801879C adds r0, r5 strb r1, [r0] bl _08019F76 .align 2, 0 _08018790: .4byte gUnknown_081D977D _08018794: .4byte 0x02000000 _08018798: .4byte 0x00016003 _0801879C: .4byte 0x0001609b _080187A0: ldr r0, _080187D4 mov r1, r10 lsls r2, r1, 2 adds r1, r2, r1 lsls r1, 2 adds r3, r1, r0 ldrb r0, [r3] lsls r0, 27 cmp r0, 0 bge _080187B8 bl _08019F76 _080187B8: ldr r1, _080187D8 adds r1, r2, r1 ldr r0, [r1] movs r2, 0x80 lsls r2, 13 orrs r0, r2 str r0, [r1] ldrb r0, [r3] movs r1, 0x10 _080187CA: orrs r0, r1 strb r0, [r3] bl _08019F76 .align 2, 0 _080187D4: .4byte 0x02024d68 _080187D8: .4byte 0x02024c98 _080187DC: movs r6, 0 ldrb r5, [r5] cmp r6, r5 bcc _080187E8 bl _08019F76 _080187E8: adds r0, r6, 0 bl castform_switch lsls r0, 24 lsrs r0, 24 mov r9, r0 cmp r0, 0 beq _080187FC bl _08019E14 _080187FC: adds r0, r6, 0x1 lsls r0, 24 lsrs r6, r0, 24 ldr r0, _08018810 ldrb r0, [r0] cmp r6, r0 bcc _080187E8 bl _08019F76 .align 2, 0 _08018810: .4byte 0x02024a68 _08018814: ldr r2, _08018844 movs r0, 0x58 mov r1, r10 muls r1, r0 adds r4, r1, r2 ldrh r0, [r4, 0x28] cmp r0, 0 bne _08018828 bl _08019F76 _08018828: ldr r0, _08018848 mov r3, r10 strb r3, [r0] mov r3, r8 ldrb r5, [r3] cmp r5, 0x2C beq _0801885A cmp r5, 0x2C bgt _0801884C cmp r5, 0x3 bne _08018840 b _080189B8 _08018840: bl _08019F76 .align 2, 0 _08018844: .4byte 0x02024a80 _08018848: .4byte 0x02024c07 _0801884C: cmp r5, 0x36 bne _08018852 b _08018A18 _08018852: cmp r5, 0x3D beq _080188DC bl _08019F76 _0801885A: movs r0, 0 str r0, [sp] movs r0, 0x13 movs r1, 0 movs r2, 0xD movs r3, 0 bl sub_8018324 lsls r0, 24 lsrs r0, 24 cmp r0, 0 beq _08018876 bl _08019F76 _08018876: str r0, [sp] movs r0, 0x13 movs r1, 0 movs r2, 0x4D movs r3, 0 bl sub_8018324 lsls r0, 24 cmp r0, 0 beq _0801888E bl _08019F76 _0801888E: ldr r0, _080188D0 ldrh r1, [r0] movs r0, 0x7 ands r0, r1 cmp r0, 0 bne _0801889E bl _08019F76 _0801889E: ldrh r0, [r4, 0x2C] ldrh r1, [r4, 0x28] cmp r0, r1 bhi _080188AA bl _08019F76 _080188AA: mov r2, r8 strb r5, [r2] ldr r0, _080188D4 bl b_push_move_exec ldr r1, _080188D8 ldrh r0, [r4, 0x2C] lsrs r0, 4 str r0, [r1] cmp r0, 0 bne _080188C4 movs r0, 0x1 str r0, [r1] _080188C4: ldr r0, [r1] negs r0, r0 str r0, [r1] bl _08019F22 .align 2, 0 _080188D0: .4byte 0x02024db8 _080188D4: .4byte gUnknown_081D9730 _080188D8: .4byte 0x02024bec _080188DC: adds r0, r2, 0 adds r0, 0x4C adds r5, r1, r0 ldrb r0, [r5] cmp r0, 0 bne _080188EC bl _08019F76 _080188EC: bl Random lsls r0, 16 lsrs r0, 16 movs r1, 0x3 bl __umodsi3 lsls r0, 16 lsrs r4, r0, 16 cmp r4, 0 beq _08018906 bl _08019F76 _08018906: ldr r0, [r5] movs r1, 0x88 ands r0, r1 cmp r0, 0 beq _08018918 ldr r0, _08018990 ldr r1, _08018994 bl StringCopy _08018918: ldr r0, [r5] movs r1, 0x7 ands r0, r1 cmp r0, 0 beq _0801892A ldr r0, _08018990 ldr r1, _08018998 bl StringCopy _0801892A: ldr r0, [r5] movs r1, 0x40 ands r0, r1 cmp r0, 0 beq _0801893C ldr r0, _08018990 ldr r1, _0801899C bl StringCopy _0801893C: ldr r0, [r5] movs r1, 0x10 ands r0, r1 cmp r0, 0 beq _0801894E ldr r0, _08018990 ldr r1, _080189A0 bl StringCopy _0801894E: ldr r0, [r5] movs r1, 0x20 ands r0, r1 cmp r0, 0 beq _08018960 ldr r0, _08018990 ldr r1, _080189A4 bl StringCopy _08018960: str r4, [r5] ldr r0, _080189A8 ldr r4, _080189AC mov r3, r10 strb r3, [r4] ldr r1, _080189B0 adds r0, r1 strb r3, [r0] ldr r0, _080189B4 bl b_push_move_exec str r5, [sp] movs r0, 0 movs r1, 0x28 movs r2, 0 movs r3, 0x4 bl dp01_build_cmdbuf_x02_a_b_varargs ldrb r0, [r4] bl dp01_battle_side_mark_buffer_for_execution bl _08019F22 .align 2, 0 _08018990: .4byte 0x030041c0 _08018994: .4byte gStatusConditionString_PoisonJpn _08018998: .4byte gStatusConditionString_SleepJpn _0801899C: .4byte gStatusConditionString_ParalysisJpn _080189A0: .4byte gStatusConditionString_BurnJpn _080189A4: .4byte gStatusConditionString_IceJpn _080189A8: .4byte 0x02000000 _080189AC: .4byte 0x02024a60 _080189B0: .4byte 0x00016003 _080189B4: .4byte gUnknown_081D9758 _080189B8: ldrb r2, [r4, 0x1B] movs r0, 0x1B ldrsb r0, [r4, r0] cmp r0, 0xB ble _080189C6 bl _08019F76 _080189C6: ldr r0, _08018A04 mov r3, r10 lsls r1, r3, 3 subs r1, r3 lsls r1, 2 adds r1, r0 ldrb r0, [r1, 0x16] cmp r0, 0x2 bne _080189DC bl _08019F76 _080189DC: adds r0, r2, 0x1 movs r2, 0 strb r0, [r4, 0x1B] ldr r5, _08018A08 adds r1, r7, r5 movs r0, 0x11 strb r0, [r1] ldr r1, _08018A0C adds r0, r7, r1 strb r2, [r0] ldr r0, _08018A10 bl b_push_move_exec ldr r2, _08018A14 adds r0, r7, r2 mov r3, r10 strb r3, [r0] bl _08019F22 .align 2, 0 _08018A04: .4byte 0x02024ca8 _08018A08: .4byte 0x000160a4 _08018A0C: .4byte 0x000160a5 _08018A10: .4byte gUnknown_081D9718 _08018A14: .4byte 0x00016003 _08018A18: ldr r2, _08018A3C ldrb r0, [r0] lsls r1, r0, 3 subs r1, r0 lsls r1, 2 adds r1, r2 ldrb r3, [r1, 0x18] lsls r0, r3, 31 lsrs r0, 31 movs r2, 0x1 eors r2, r0 movs r0, 0x2 negs r0, r0 ands r0, r3 orrs r0, r2 strb r0, [r1, 0x18] bl _08019F76 .align 2, 0 _08018A3C: .4byte 0x02024ca8 _08018A40: mov r5, r8 ldrb r0, [r5] cmp r0, 0x2B beq _08018A4C bl _08019F76 _08018A4C: movs r4, 0 ldr r0, _08018ABC ldrh r2, [r0] ldr r5, _08018AC0 adds r1, r0, 0 cmp r2, r5 bne _08018A5E bl _08019F76 _08018A5E: cmp r2, r3 beq _08018A76 adds r2, r1, 0 _08018A64: adds r2, 0x2 adds r4, 0x1 ldrh r0, [r2] cmp r0, r5 bne _08018A72 bl _08019F76 _08018A72: cmp r0, r3 bne _08018A64 _08018A76: lsls r0, r4, 1 adds r0, r1 ldrh r1, [r0] ldr r0, _08018AC0 cmp r1, r0 bne _08018A86 bl _08019F76 _08018A86: ldr r1, _08018AC4 ldr r0, _08018AC8 ldrb r2, [r0] movs r0, 0x58 muls r0, r2 adds r1, 0x50 adds r0, r1 ldr r0, [r0] movs r1, 0x80 lsls r1, 5 ands r0, r1 cmp r0, 0 beq _08018AAC ldr r0, _08018ACC ldr r1, [r0] movs r2, 0x80 lsls r2, 4 orrs r1, r2 str r1, [r0] _08018AAC: ldr r1, _08018AD0 ldr r0, _08018AD4 str r0, [r1] movs r0, 0x1 mov r9, r0 bl _08019F7C .align 2, 0 _08018ABC: .4byte gUnknown_081FA724 _08018AC0: .4byte 0x0000ffff _08018AC4: .4byte 0x02024a80 _08018AC8: .4byte 0x02024c07 _08018ACC: .4byte 0x02024c6c _08018AD0: .4byte 0x02024c10 _08018AD4: .4byte gUnknown_081D98F3 _08018AD8: cmp r3, 0 bne _08018AE0 bl _08019F76 _08018AE0: mov r1, r8 ldrb r0, [r1] cmp r0, 0xB beq _08018B50 cmp r0, 0xB bgt _08018AF2 cmp r0, 0xA beq _08018AF8 b _08018C6A _08018AF2: cmp r0, 0x12 beq _08018BA8 b _08018C6A _08018AF8: cmp r4, 0xD beq _08018AFE b _08018C6A _08018AFE: ldr r0, _08018B28 lsls r1, r3, 1 adds r1, r3 lsls r1, 2 adds r1, r0 ldrb r0, [r1, 0x1] cmp r0, 0 bne _08018B10 b _08018C6A _08018B10: ldr r1, _08018B2C ldr r0, _08018B30 ldrb r0, [r0] lsls r0, 4 adds r0, r1 ldrb r0, [r0, 0x2] lsls r0, 28 cmp r0, 0 bge _08018B3C ldr r1, _08018B34 ldr r0, _08018B38 b _08018B40 .align 2, 0 _08018B28: .4byte gBattleMoves _08018B2C: .4byte 0x02024d28 _08018B30: .4byte 0x02024c07 _08018B34: .4byte 0x02024c10 _08018B38: .4byte gUnknown_081D9843 _08018B3C: ldr r1, _08018B48 ldr r0, _08018B4C _08018B40: str r0, [r1] movs r2, 0x1 b _08018C68 .align 2, 0 _08018B48: .4byte 0x02024c10 _08018B4C: .4byte gUnknown_081D9842 _08018B50: cmp r4, 0xB beq _08018B56 b _08018C6A _08018B56: ldr r0, _08018B80 lsls r1, r3, 1 adds r1, r3 lsls r1, 2 adds r1, r0 ldrb r0, [r1, 0x1] cmp r0, 0 bne _08018B68 b _08018C6A _08018B68: ldr r1, _08018B84 ldr r0, _08018B88 ldrb r0, [r0] lsls r0, 4 adds r0, r1 ldrb r0, [r0, 0x2] lsls r0, 28 cmp r0, 0 bge _08018B94 ldr r1, _08018B8C ldr r0, _08018B90 b _08018B98 .align 2, 0 _08018B80: .4byte gBattleMoves _08018B84: .4byte 0x02024d28 _08018B88: .4byte 0x02024c07 _08018B8C: .4byte 0x02024c10 _08018B90: .4byte gUnknown_081D9843 _08018B94: ldr r1, _08018BA0 ldr r0, _08018BA4 _08018B98: str r0, [r1] movs r3, 0x1 mov r9, r3 b _08018C6A .align 2, 0 _08018BA0: .4byte 0x02024c10 _08018BA4: .4byte gUnknown_081D9842 _08018BA8: cmp r4, 0xA bne _08018C6A ldr r1, _08018BF4 movs r0, 0x58 mov r5, r10 muls r5, r0 adds r0, r5, 0 adds r1, 0x4C adds r0, r1 ldr r0, [r0] movs r1, 0x20 ands r0, r1 cmp r0, 0 bne _08018C6A ldr r2, _08018BF8 mov r0, r10 lsls r1, r0, 2 adds r0, r1, r2 ldr r3, [r0] movs r4, 0x1 ands r3, r4 adds r5, r1, 0 cmp r3, 0 bne _08018C30 ldr r0, _08018BFC strb r3, [r0, 0x5] ldr r1, _08018C00 ldr r0, _08018C04 ldrb r0, [r0] lsls r0, 4 adds r0, r1 ldrb r0, [r0, 0x2] lsls r0, 28 cmp r0, 0 bge _08018C10 ldr r1, _08018C08 ldr r0, _08018C0C b _08018C14 .align 2, 0 _08018BF4: .4byte 0x02024a80 _08018BF8: .4byte 0x02017100 _08018BFC: .4byte 0x02024d1e _08018C00: .4byte 0x02024d28 _08018C04: .4byte 0x02024c07 _08018C08: .4byte 0x02024c10 _08018C0C: .4byte gUnknown_081D987C _08018C10: ldr r1, _08018C28 ldr r0, _08018C2C _08018C14: str r0, [r1] adds r0, r5, r2 ldr r1, [r0] movs r2, 0x1 orrs r1, r2 str r1, [r0] movs r1, 0x2 mov r9, r1 b _08018C6A .align 2, 0 _08018C28: .4byte 0x02024c10 _08018C2C: .4byte gUnknown_081D987B _08018C30: ldr r0, _08018C4C strb r4, [r0, 0x5] ldr r1, _08018C50 ldr r0, _08018C54 ldrb r0, [r0] lsls r0, 4 adds r0, r1 ldrb r0, [r0, 0x2] lsls r0, 28 cmp r0, 0 bge _08018C60 ldr r1, _08018C58 ldr r0, _08018C5C b _08018C64 .align 2, 0 _08018C4C: .4byte 0x02024d1e _08018C50: .4byte 0x02024d28 _08018C54: .4byte 0x02024c07 _08018C58: .4byte 0x02024c10 _08018C5C: .4byte gUnknown_081D987C _08018C60: ldr r1, _08018CA4 ldr r0, _08018CA8 _08018C64: str r0, [r1] movs r2, 0x2 _08018C68: mov r9, r2 _08018C6A: mov r3, r9 cmp r3, 0x1 beq _08018C74 bl _08019F76 _08018C74: ldr r1, _08018CAC movs r0, 0x58 mov r5, r10 muls r5, r0 adds r0, r5, 0 adds r1, r0, r1 ldrh r0, [r1, 0x2C] ldrh r2, [r1, 0x28] cmp r0, r2 bne _08018CD0 ldr r1, _08018CB0 ldr r0, _08018CB4 ldrb r0, [r0] lsls r0, 4 adds r0, r1 ldrb r0, [r0, 0x2] lsls r0, 28 cmp r0, 0 bge _08018CBC ldr r1, _08018CA4 ldr r0, _08018CB8 str r0, [r1] bl _08019F76 .align 2, 0 _08018CA4: .4byte 0x02024c10 _08018CA8: .4byte gUnknown_081D987B _08018CAC: .4byte 0x02024a80 _08018CB0: .4byte 0x02024d28 _08018CB4: .4byte 0x02024c07 _08018CB8: .4byte gUnknown_081D9866 _08018CBC: ldr r1, _08018CC8 ldr r0, _08018CCC str r0, [r1] bl _08019F76 .align 2, 0 _08018CC8: .4byte 0x02024c10 _08018CCC: .4byte gUnknown_081D9865 _08018CD0: ldr r2, _08018CEC ldrh r0, [r1, 0x2C] lsrs r0, 2 str r0, [r2] cmp r0, 0 bne _08018CE0 mov r3, r9 str r3, [r2] _08018CE0: ldr r0, [r2] negs r0, r0 str r0, [r2] bl _08019F76 .align 2, 0 _08018CEC: .4byte 0x02024bec _08018CF0: mov r5, r8 ldrb r0, [r5] subs r0, 0x9 cmp r0, 0x2F bls _08018CFE bl _08019F76 _08018CFE: lsls r0, 2 ldr r1, _08018D08 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08018D08: .4byte _08018D0C .align 2, 0 _08018D0C: .4byte _08019128 .4byte _08019F76 .4byte _08019F76 .4byte _08019F76 .4byte _08019F76 .4byte _08019F76 .4byte _08019F76 .4byte _08018DCC .4byte _08019F76 .4byte _08019F76 .4byte _08019F76 .4byte _08019F76 .4byte _08019F76 .4byte _08019F76 .4byte _08019F76 .4byte _08018E94 .4byte _08019F76 .4byte _08019F76 .4byte _08018F54 .4byte _08019F76 .4byte _08019F76 .4byte _08019F76 .4byte _08019F76 .4byte _08019F76 .4byte _08019F76 .4byte _08019F76 .4byte _08019F76 .4byte _08019F76 .4byte _08019F76 .4byte _0801904C .4byte _08019F76 .4byte _08019F76 .4byte _08019F76 .4byte _08019F76 .4byte _08019F76 .4byte _08019F76 .4byte _08019F76 .4byte _08019F76 .4byte _08019F76 .4byte _08019F76 .4byte _08019204 .4byte _08019F76 .4byte _08019F76 .4byte _08019F76 .4byte _08019F76 .4byte _08019F76 .4byte _08019F76 .4byte _080192E0 _08018DCC: ldr r0, _08018E74 ldrb r1, [r0] movs r0, 0x29 ands r0, r1 cmp r0, 0 beq _08018DDC bl _08019F76 _08018DDC: cmp r3, 0xA5 bne _08018DE4 bl _08019F76 _08018DE4: ldr r0, _08018E78 lsls r1, r3, 1 adds r1, r3 lsls r1, 2 adds r1, r0 ldrb r0, [r1, 0x1] cmp r0, 0 bne _08018DF8 bl _08019F76 _08018DF8: ldr r2, _08018E7C ldr r0, _08018E80 ldrb r1, [r0] lsls r0, r1, 2 adds r0, r1 lsls r1, r0, 2 adds r0, r2, 0 adds r0, 0x8 adds r0, r1, r0 ldr r0, [r0] cmp r0, 0 bne _08018E20 adds r0, r2, 0 adds r0, 0xC adds r0, r1, r0 ldr r0, [r0] cmp r0, 0 bne _08018E20 bl _08019F76 _08018E20: ldr r1, _08018E84 movs r0, 0x58 mov r2, r10 muls r2, r0 adds r0, r2, 0 adds r1, r0, r1 adds r3, r1, 0 adds r3, 0x21 ldrb r0, [r3] cmp r0, r4 bne _08018E3A bl _08019F76 _08018E3A: adds r2, r1, 0 adds r2, 0x22 ldrb r0, [r2] cmp r0, r4 bne _08018E48 bl _08019F76 _08018E48: ldrh r0, [r1, 0x28] cmp r0, 0 bne _08018E52 bl _08019F76 _08018E52: strb r4, [r3] strb r4, [r2] ldr r1, _08018E88 movs r0, 0xFD strb r0, [r1] movs r0, 0x3 strb r0, [r1, 0x1] strb r4, [r1, 0x2] movs r0, 0xFF strb r0, [r1, 0x3] bl b_movescr_stack_push_cursor ldr r1, _08018E8C ldr r0, _08018E90 str r0, [r1] bl _08019F22 .align 2, 0 _08018E74: .4byte 0x02024c68 _08018E78: .4byte gBattleMoves _08018E7C: .4byte 0x02024d68 _08018E80: .4byte 0x02024c08 _08018E84: .4byte 0x02024a80 _08018E88: .4byte 0x030041c0 _08018E8C: .4byte 0x02024c10 _08018E90: .4byte gUnknown_081D9921 _08018E94: ldr r0, _08018F2C ldrb r1, [r0] movs r0, 0x29 ands r0, r1 cmp r0, 0 beq _08018EA4 bl _08019F76 _08018EA4: ldr r1, _08018F30 ldr r0, _08018F34 ldrb r2, [r0] movs r0, 0x58 muls r0, r2 adds r4, r0, r1 ldrh r0, [r4, 0x28] cmp r0, 0 bne _08018EBA bl _08019F76 _08018EBA: ldr r0, _08018F38 lsls r1, r2, 4 adds r1, r0 ldrb r0, [r1, 0x1] lsls r0, 31 cmp r0, 0 beq _08018ECC bl _08019F76 _08018ECC: ldr r2, _08018F3C ldr r0, _08018F40 ldrb r1, [r0] lsls r0, r1, 2 adds r0, r1 lsls r1, r0, 2 adds r0, r2, 0 adds r0, 0x8 adds r0, r1, r0 ldr r0, [r0] cmp r0, 0 bne _08018EF4 adds r0, r2, 0 adds r0, 0xC adds r0, r1, r0 ldr r0, [r0] cmp r0, 0 bne _08018EF4 bl _08019F76 _08018EF4: ldr r1, _08018F44 lsls r0, r3, 1 adds r0, r3 lsls r0, 2 adds r0, r1 ldrb r1, [r0, 0x8] movs r2, 0x1 adds r0, r2, 0 ands r0, r1 cmp r0, 0 bne _08018F0E bl _08019F76 _08018F0E: ldr r1, _08018F48 ldrh r0, [r4, 0x2C] lsrs r0, 4 str r0, [r1] cmp r0, 0 bne _08018F1C str r2, [r1] _08018F1C: bl b_movescr_stack_push_cursor ldr r1, _08018F4C ldr r0, _08018F50 str r0, [r1] bl _08019F22 .align 2, 0 _08018F2C: .4byte 0x02024c68 _08018F30: .4byte 0x02024a80 _08018F34: .4byte 0x02024c07 _08018F38: .4byte 0x02024d28 _08018F3C: .4byte 0x02024d68 _08018F40: .4byte 0x02024c08 _08018F44: .4byte gBattleMoves _08018F48: .4byte 0x02024bec _08018F4C: .4byte 0x02024c10 _08018F50: .4byte gUnknown_081D9928 _08018F54: ldr r0, _08019020 ldrb r1, [r0] movs r0, 0x29 ands r0, r1 cmp r0, 0 beq _08018F64 bl _08019F76 _08018F64: ldr r1, _08019024 ldr r0, _08019028 ldrb r2, [r0] movs r0, 0x58 muls r0, r2 adds r0, r1 ldrh r0, [r0, 0x28] cmp r0, 0 bne _08018F7A bl _08019F76 _08018F7A: ldr r0, _0801902C lsls r1, r2, 4 adds r1, r0 ldrb r0, [r1, 0x1] lsls r0, 31 cmp r0, 0 beq _08018F8C bl _08019F76 _08018F8C: ldr r2, _08019030 ldr r0, _08019034 ldrb r1, [r0] lsls r0, r1, 2 adds r0, r1 lsls r1, r0, 2 adds r0, r2, 0 adds r0, 0x8 adds r0, r1, r0 ldr r0, [r0] cmp r0, 0 bne _08018FB4 adds r0, r2, 0 adds r0, 0xC adds r0, r1, r0 ldr r0, [r0] cmp r0, 0 bne _08018FB4 bl _08019F76 _08018FB4: ldr r1, _08019038 lsls r0, r3, 1 adds r0, r3 lsls r0, 2 adds r0, r1 ldrb r1, [r0, 0x8] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _08018FCC bl _08019F76 _08018FCC: bl Random lsls r0, 16 lsrs r0, 16 movs r1, 0xA bl __umodsi3 lsls r0, 16 cmp r0, 0 beq _08018FE4 bl _08019F76 _08018FE4: ldr r5, _0801903C movs r4, 0x3 _08018FE8: bl Random ands r0, r4 strb r0, [r5, 0x3] cmp r0, 0 beq _08018FE8 ldr r1, _0801903C ldrb r0, [r1, 0x3] cmp r0, 0x3 bne _08019000 adds r0, 0x2 strb r0, [r1, 0x3] _08019000: ldrb r0, [r1, 0x3] adds r0, 0x40 strb r0, [r1, 0x3] bl b_movescr_stack_push_cursor ldr r1, _08019040 ldr r0, _08019044 str r0, [r1] ldr r2, _08019048 ldr r0, [r2] movs r1, 0x80 lsls r1, 6 orrs r0, r1 str r0, [r2] bl _08019F22 .align 2, 0 _08019020: .4byte 0x02024c68 _08019024: .4byte 0x02024a80 _08019028: .4byte 0x02024c07 _0801902C: .4byte 0x02024d28 _08019030: .4byte 0x02024d68 _08019034: .4byte 0x02024c08 _08019038: .4byte gBattleMoves _0801903C: .4byte 0x02024d1e _08019040: .4byte 0x02024c10 _08019044: .4byte gUnknown_081D9950 _08019048: .4byte 0x02024c6c _0801904C: ldr r0, _080190FC ldrb r1, [r0] movs r0, 0x29 ands r0, r1 cmp r0, 0 beq _0801905C bl _08019F76 _0801905C: ldr r1, _08019100 ldr r0, _08019104 ldrb r2, [r0] movs r0, 0x58 muls r0, r2 adds r0, r1 ldrh r0, [r0, 0x28] cmp r0, 0 bne _08019072 bl _08019F76 _08019072: ldr r0, _08019108 lsls r1, r2, 4 adds r1, r0 ldrb r0, [r1, 0x1] lsls r0, 31 cmp r0, 0 beq _08019084 bl _08019F76 _08019084: ldr r2, _0801910C ldr r0, _08019110 ldrb r1, [r0] lsls r0, r1, 2 adds r0, r1 lsls r1, r0, 2 adds r0, r2, 0 adds r0, 0x8 adds r0, r1, r0 ldr r0, [r0] cmp r0, 0 bne _080190AC adds r0, r2, 0 adds r0, 0xC adds r0, r1, r0 ldr r0, [r0] cmp r0, 0 bne _080190AC bl _08019F76 _080190AC: ldr r1, _08019114 lsls r0, r3, 1 adds r0, r3 lsls r0, 2 adds r0, r1 ldrb r1, [r0, 0x8] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _080190C4 bl _08019F76 _080190C4: bl Random lsls r0, 16 lsrs r0, 16 movs r1, 0x3 bl __umodsi3 lsls r0, 16 cmp r0, 0 beq _080190DC bl _08019F76 _080190DC: ldr r1, _08019118 movs r0, 0x42 strb r0, [r1, 0x3] bl b_movescr_stack_push_cursor ldr r1, _0801911C ldr r0, _08019120 str r0, [r1] ldr r2, _08019124 ldr r0, [r2] movs r1, 0x80 lsls r1, 6 orrs r0, r1 str r0, [r2] bl _08019F22 .align 2, 0 _080190FC: .4byte 0x02024c68 _08019100: .4byte 0x02024a80 _08019104: .4byte 0x02024c07 _08019108: .4byte 0x02024d28 _0801910C: .4byte 0x02024d68 _08019110: .4byte 0x02024c08 _08019114: .4byte gBattleMoves _08019118: .4byte 0x02024d1e _0801911C: .4byte 0x02024c10 _08019120: .4byte gUnknown_081D9950 _08019124: .4byte 0x02024c6c _08019128: ldr r0, _080191D8 ldrb r1, [r0] movs r0, 0x29 ands r0, r1 cmp r0, 0 beq _08019138 bl _08019F76 _08019138: ldr r1, _080191DC ldr r0, _080191E0 ldrb r2, [r0] movs r0, 0x58 muls r0, r2 adds r0, r1 ldrh r0, [r0, 0x28] cmp r0, 0 bne _0801914E bl _08019F76 _0801914E: ldr r0, _080191E4 lsls r1, r2, 4 adds r1, r0 ldrb r0, [r1, 0x1] lsls r0, 31 cmp r0, 0 beq _08019160 bl _08019F76 _08019160: ldr r2, _080191E8 ldr r0, _080191EC ldrb r1, [r0] lsls r0, r1, 2 adds r0, r1 lsls r1, r0, 2 adds r0, r2, 0 adds r0, 0x8 adds r0, r1, r0 ldr r0, [r0] cmp r0, 0 bne _08019188 adds r0, r2, 0 adds r0, 0xC adds r0, r1, r0 ldr r0, [r0] cmp r0, 0 bne _08019188 bl _08019F76 _08019188: ldr r1, _080191F0 lsls r0, r3, 1 adds r0, r3 lsls r0, 2 adds r0, r1 ldrb r1, [r0, 0x8] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _080191A0 bl _08019F76 _080191A0: bl Random lsls r0, 16 lsrs r0, 16 movs r1, 0x3 bl __umodsi3 lsls r0, 16 cmp r0, 0 beq _080191B8 bl _08019F76 _080191B8: ldr r1, _080191F4 movs r0, 0x45 strb r0, [r1, 0x3] bl b_movescr_stack_push_cursor ldr r1, _080191F8 ldr r0, _080191FC str r0, [r1] ldr r2, _08019200 ldr r0, [r2] movs r1, 0x80 lsls r1, 6 orrs r0, r1 str r0, [r2] bl _08019F22 .align 2, 0 _080191D8: .4byte 0x02024c68 _080191DC: .4byte 0x02024a80 _080191E0: .4byte 0x02024c07 _080191E4: .4byte 0x02024d28 _080191E8: .4byte 0x02024d68 _080191EC: .4byte 0x02024c08 _080191F0: .4byte gBattleMoves _080191F4: .4byte 0x02024d1e _080191F8: .4byte 0x02024c10 _080191FC: .4byte gUnknown_081D9950 _08019200: .4byte 0x02024c6c _08019204: ldr r0, _080192B4 ldrb r1, [r0] movs r0, 0x29 ands r0, r1 cmp r0, 0 beq _08019214 bl _08019F76 _08019214: ldr r1, _080192B8 ldr r0, _080192BC ldrb r2, [r0] movs r0, 0x58 muls r0, r2 adds r0, r1 ldrh r0, [r0, 0x28] cmp r0, 0 bne _0801922A bl _08019F76 _0801922A: ldr r0, _080192C0 lsls r1, r2, 4 adds r1, r0 ldrb r0, [r1, 0x1] lsls r0, 31 cmp r0, 0 beq _0801923C bl _08019F76 _0801923C: ldr r1, _080192C4 lsls r0, r3, 1 adds r0, r3 lsls r0, 2 adds r0, r1 ldrb r1, [r0, 0x8] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _08019254 bl _08019F76 _08019254: ldr r2, _080192C8 ldr r0, _080192CC ldrb r1, [r0] lsls r0, r1, 2 adds r0, r1 lsls r1, r0, 2 adds r0, r2, 0 adds r0, 0x8 adds r0, r1, r0 ldr r0, [r0] cmp r0, 0 bne _0801927C adds r0, r2, 0 adds r0, 0xC adds r0, r1, r0 ldr r0, [r0] cmp r0, 0 bne _0801927C bl _08019F76 _0801927C: bl Random lsls r0, 16 lsrs r0, 16 movs r1, 0x3 bl __umodsi3 lsls r0, 16 cmp r0, 0 beq _08019294 bl _08019F76 _08019294: ldr r1, _080192D0 movs r0, 0x43 strb r0, [r1, 0x3] bl b_movescr_stack_push_cursor ldr r1, _080192D4 ldr r0, _080192D8 str r0, [r1] ldr r2, _080192DC ldr r0, [r2] movs r1, 0x80 lsls r1, 6 orrs r0, r1 str r0, [r2] bl _08019F22 .align 2, 0 _080192B4: .4byte 0x02024c68 _080192B8: .4byte 0x02024a80 _080192BC: .4byte 0x02024c07 _080192C0: .4byte 0x02024d28 _080192C4: .4byte gBattleMoves _080192C8: .4byte 0x02024d68 _080192CC: .4byte 0x02024c08 _080192D0: .4byte 0x02024d1e _080192D4: .4byte 0x02024c10 _080192D8: .4byte gUnknown_081D9950 _080192DC: .4byte 0x02024c6c _080192E0: ldr r0, _08019420 ldrb r1, [r0] movs r0, 0x29 ands r0, r1 cmp r0, 0 beq _080192F0 bl _08019F76 _080192F0: ldr r5, _08019424 ldr r7, _08019428 ldrb r1, [r7] movs r6, 0x58 adds r0, r1, 0 muls r0, r6 adds r0, r5 ldrh r0, [r0, 0x28] cmp r0, 0 bne _08019308 bl _08019F76 _08019308: ldr r0, _0801942C lsls r1, 4 adds r1, r0 ldrb r0, [r1, 0x1] lsls r0, 31 cmp r0, 0 beq _0801931A bl _08019F76 _0801931A: ldr r1, _08019430 lsls r0, r3, 1 adds r0, r3 lsls r0, 2 adds r0, r1 ldrb r1, [r0, 0x8] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _08019332 bl _08019F76 _08019332: ldr r3, _08019434 ldr r0, _08019438 mov r8, r0 ldrb r1, [r0] lsls r0, r1, 2 adds r0, r1 lsls r2, r0, 2 adds r0, r3, 0 adds r0, 0x8 adds r0, r2, r0 ldr r0, [r0] cmp r0, 0 bne _0801935C adds r0, r3, 0 adds r0, 0xC adds r0, r2, r0 ldr r0, [r0] cmp r0, 0 bne _0801935C bl _08019F76 _0801935C: adds r0, r1, 0 muls r0, r6 adds r0, r5 ldrh r0, [r0, 0x28] cmp r0, 0 bne _0801936C bl _08019F76 _0801936C: bl Random lsls r0, 16 lsrs r0, 16 movs r1, 0x3 bl __umodsi3 lsls r0, 16 cmp r0, 0 beq _08019384 bl _08019F76 _08019384: ldrb r0, [r7] muls r0, r6 adds r0, r5 adds r0, 0x20 ldrb r0, [r0] cmp r0, 0xC bne _08019396 bl _08019F76 _08019396: ldr r0, [sp, 0x8] ldr r1, [sp, 0x10] bl pokemon_species_get_gender_info adds r4, r0, 0 ldr r0, [sp, 0xC] ldr r1, [sp, 0x14] bl pokemon_species_get_gender_info lsls r4, 24 lsls r0, 24 cmp r4, r0 bne _080193B4 bl _08019F76 _080193B4: ldrb r0, [r7] muls r0, r6 adds r4, r5, 0 adds r4, 0x50 adds r0, r4 ldr r0, [r0] movs r1, 0xF0 lsls r1, 12 ands r0, r1 cmp r0, 0 beq _080193CE bl _08019F76 _080193CE: ldr r0, [sp, 0x8] ldr r1, [sp, 0x10] bl pokemon_species_get_gender_info lsls r0, 24 lsrs r0, 24 cmp r0, 0xFF bne _080193E2 bl _08019F76 _080193E2: ldr r0, [sp, 0xC] ldr r1, [sp, 0x14] bl pokemon_species_get_gender_info lsls r0, 24 lsrs r0, 24 cmp r0, 0xFF bne _080193F6 bl _08019F76 _080193F6: ldrb r0, [r7] adds r2, r0, 0 muls r2, r6 adds r2, r4 ldr r1, _0801943C mov r3, r8 ldrb r0, [r3] lsls r0, 2 adds r0, r1 ldr r1, [r0] lsls r1, 16 ldr r0, [r2] orrs r0, r1 str r0, [r2] bl b_movescr_stack_push_cursor ldr r1, _08019440 ldr r0, _08019444 str r0, [r1] bl _08019F22 .align 2, 0 _08019420: .4byte 0x02024c68 _08019424: .4byte 0x02024a80 _08019428: .4byte 0x02024c07 _0801942C: .4byte 0x02024d28 _08019430: .4byte gBattleMoves _08019434: .4byte 0x02024d68 _08019438: .4byte 0x02024c08 _0801943C: .4byte gUnknown_0820872C _08019440: .4byte 0x02024c10 _08019444: .4byte gUnknown_081D9943 _08019448: movs r5, 0 mov r10, r5 ldr r0, _0801947C ldrb r0, [r0] cmp r10, r0 bcc _08019458 bl _08019F76 _08019458: ldr r1, _08019480 movs r0, 0x58 mov r2, r10 muls r2, r0 adds r0, r2, 0 adds r0, r1 adds r0, 0x20 ldrb r0, [r0] subs r0, 0x7 adds r2, r1, 0 cmp r0, 0x41 bls _08019472 b _080196D6 _08019472: lsls r0, 2 ldr r1, _08019484 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0801947C: .4byte 0x02024a68 _08019480: .4byte 0x02024a80 _08019484: .4byte _08019488 .align 2, 0 _08019488: .4byte _080195EC .4byte _080196D6 .4byte _080196D6 .4byte _080196D6 .4byte _080196D6 .4byte _080196B0 .4byte _080196D6 .4byte _080196D6 .4byte _08019614 .4byte _080196D6 .4byte _08019590 .4byte _080196D6 .4byte _080196D6 .4byte _080195BC .4byte _080196D6 .4byte _080196D6 .4byte _080196D6 .4byte _080196D6 .4byte _080196D6 .4byte _080196D6 .4byte _080196D6 .4byte _080196D6 .4byte _080196D6 .4byte _080196D6 .4byte _080196D6 .4byte _080196D6 .4byte _080196D6 .4byte _080196D6 .4byte _080196D6 .4byte _080196D6 .4byte _080196D6 .4byte _080196D6 .4byte _080196D6 .4byte _08019680 .4byte _08019650 .4byte _080196D6 .4byte _080196D6 .4byte _080196D6 .4byte _080196D6 .4byte _080196D6 .4byte _080196D6 .4byte _080196D6 .4byte _080196D6 .4byte _080196D6 .4byte _080196D6 .4byte _080196D6 .4byte _080196D6 .4byte _080196D6 .4byte _080196D6 .4byte _080196D6 .4byte _080196D6 .4byte _080196D6 .4byte _080196D6 .4byte _080196D6 .4byte _080196D6 .4byte _080196D6 .4byte _080196D6 .4byte _080196D6 .4byte _080196D6 .4byte _080196D6 .4byte _080196D6 .4byte _080196D6 .4byte _080196D6 .4byte _080196D6 .4byte _080196D6 .4byte _08019614 _08019590: movs r0, 0x58 mov r3, r10 muls r3, r0 adds r0, r3, 0 adds r1, r2, 0 adds r1, 0x4C adds r0, r1 ldr r0, [r0] ldr r1, _080195B0 ands r0, r1 cmp r0, 0 bne _080195AA b _080196D6 _080195AA: ldr r0, _080195B4 ldr r1, _080195B8 b _0801969C .align 2, 0 _080195B0: .4byte 0x00000f88 _080195B4: .4byte 0x030041c0 _080195B8: .4byte gStatusConditionString_PoisonJpn _080195BC: movs r0, 0x58 mov r1, r10 muls r1, r0 adds r0, r1, 0 adds r1, r2, 0 adds r1, 0x50 adds r0, r1 ldr r0, [r0] movs r1, 0x7 ands r0, r1 cmp r0, 0 bne _080195D6 b _080196D6 _080195D6: ldr r0, _080195E4 ldr r1, _080195E8 bl StringCopy movs r2, 0x2 mov r9, r2 b _080196DC .align 2, 0 _080195E4: .4byte 0x030041c0 _080195E8: .4byte gStatusConditionString_ConfusionJpn _080195EC: movs r0, 0x58 mov r3, r10 muls r3, r0 adds r0, r3, 0 adds r1, r2, 0 adds r1, 0x4C adds r0, r1 ldr r0, [r0] movs r1, 0x40 ands r0, r1 cmp r0, 0 beq _080196D6 ldr r0, _0801960C ldr r1, _08019610 b _0801969C .align 2, 0 _0801960C: .4byte 0x030041c0 _08019610: .4byte gStatusConditionString_ParalysisJpn _08019614: movs r0, 0x58 mov r3, r10 muls r3, r0 adds r0, r2, 0 adds r0, 0x4C adds r0, r3, r0 ldr r0, [r0] movs r1, 0x7 ands r0, r1 cmp r0, 0 beq _080196D6 adds r2, 0x50 adds r2, r3, r2 ldr r0, [r2] ldr r1, _08019644 ands r0, r1 str r0, [r2] ldr r0, _08019648 ldr r1, _0801964C bl StringCopy movs r0, 0x1 mov r9, r0 b _080196DC .align 2, 0 _08019644: .4byte 0xf7ffffff _08019648: .4byte 0x030041c0 _0801964C: .4byte gStatusConditionString_SleepJpn _08019650: movs r0, 0x58 mov r1, r10 muls r1, r0 adds r0, r1, 0 adds r1, r2, 0 adds r1, 0x4C adds r0, r1 ldr r0, [r0] movs r1, 0x10 ands r0, r1 cmp r0, 0 beq _080196D6 ldr r0, _08019678 ldr r1, _0801967C bl StringCopy movs r2, 0x1 mov r9, r2 b _080196DC .align 2, 0 _08019678: .4byte 0x030041c0 _0801967C: .4byte gStatusConditionString_BurnJpn _08019680: movs r0, 0x58 mov r3, r10 muls r3, r0 adds r0, r3, 0 adds r1, r2, 0 adds r1, 0x4C adds r0, r1 ldr r0, [r0] movs r1, 0x20 ands r0, r1 cmp r0, 0 beq _080196D6 ldr r0, _080196A8 ldr r1, _080196AC _0801969C: bl StringCopy movs r5, 0x1 mov r9, r5 b _080196DC .align 2, 0 _080196A8: .4byte 0x030041c0 _080196AC: .4byte gStatusConditionString_IceJpn _080196B0: movs r0, 0x58 mov r1, r10 muls r1, r0 adds r0, r1, 0 adds r1, r2, 0 adds r1, 0x50 adds r0, r1 ldr r0, [r0] movs r1, 0xF0 lsls r1, 12 ands r0, r1 cmp r0, 0 beq _080196D6 ldr r0, _080196EC ldr r1, _080196F0 bl StringCopy movs r2, 0x3 mov r9, r2 _080196D6: mov r3, r9 cmp r3, 0 beq _08019798 _080196DC: mov r5, r9 cmp r5, 0x2 beq _08019710 cmp r5, 0x2 bgt _080196F4 cmp r5, 0x1 beq _080196FC b _0801973C .align 2, 0 _080196EC: .4byte 0x030041c0 _080196F0: .4byte gStatusConditionString_LoveJpn _080196F4: mov r0, r9 cmp r0, 0x3 beq _08019728 b _0801973C _080196FC: ldr r1, _0801970C movs r0, 0x58 mov r2, r10 muls r2, r0 adds r1, 0x4C adds r2, r1 movs r0, 0 b _0801973A .align 2, 0 _0801970C: .4byte 0x02024a80 _08019710: ldr r1, _08019724 movs r0, 0x58 mov r2, r10 muls r2, r0 adds r1, 0x50 adds r2, r1 ldr r0, [r2] movs r1, 0x8 negs r1, r1 b _08019738 .align 2, 0 _08019724: .4byte 0x02024a80 _08019728: ldr r1, _08019778 movs r0, 0x58 mov r2, r10 muls r2, r0 adds r1, 0x50 adds r2, r1 ldr r0, [r2] ldr r1, _0801977C _08019738: ands r0, r1 _0801973A: str r0, [r2] _0801973C: bl b_movescr_stack_push_cursor ldr r1, _08019780 ldr r0, _08019784 str r0, [r1] ldr r0, _08019788 ldr r1, _0801978C adds r0, r1 mov r2, r10 strb r2, [r0] ldr r4, _08019790 strb r2, [r4] ldrb r1, [r4] movs r0, 0x58 muls r0, r1 ldr r1, _08019794 adds r0, r1 str r0, [sp] movs r0, 0 movs r1, 0x28 movs r2, 0 movs r3, 0x4 bl dp01_build_cmdbuf_x02_a_b_varargs ldrb r0, [r4] bl dp01_battle_side_mark_buffer_for_execution bl _08019F92 .align 2, 0 _08019778: .4byte 0x02024a80 _0801977C: .4byte 0xfff0ffff _08019780: .4byte 0x02024c10 _08019784: .4byte gUnknown_081D9956 _08019788: .4byte 0x02000000 _0801978C: .4byte 0x00016003 _08019790: .4byte 0x02024a60 _08019794: .4byte 0x02024acc _08019798: mov r0, r10 adds r0, 0x1 lsls r0, 24 lsrs r0, 24 mov r10, r0 ldr r0, _080197B0 ldrb r0, [r0] cmp r10, r0 bcs _080197AC b _08019458 _080197AC: bl _08019F76 .align 2, 0 _080197B0: .4byte 0x02024a68 _080197B4: movs r3, 0 mov r10, r3 ldr r0, _080197FC ldrb r0, [r0] cmp r10, r0 bcc _080197C2 b _08019F76 _080197C2: ldr r4, _08019800 _080197C4: movs r0, 0x58 mov r5, r10 muls r5, r0 adds r0, r5, 0 adds r0, r4 adds r0, 0x20 ldrb r0, [r0] cmp r0, 0x3B bne _080197E8 mov r0, r10 bl castform_switch lsls r0, 24 lsrs r0, 24 mov r9, r0 cmp r0, 0 beq _080197E8 b _08019E40 _080197E8: mov r0, r10 adds r0, 0x1 lsls r0, 24 lsrs r0, 24 mov r10, r0 ldr r0, _080197FC ldrb r0, [r0] cmp r10, r0 bcc _080197C4 b _08019F76 .align 2, 0 _080197FC: .4byte 0x02024a68 _08019800: .4byte 0x02024a80 _08019804: mov r1, r8 ldrb r0, [r1] cmp r0, 0x1C beq _0801980E b _08019F76 _0801980E: ldr r4, _08019860 ldr r1, [r4] movs r0, 0x80 lsls r0, 7 ands r0, r1 cmp r0, 0 bne _0801981E b _08019F76 _0801981E: ldr r0, _08019864 ands r1, r0 str r1, [r4] ldr r3, _08019868 adds r2, r7, r3 ldrb r1, [r2] movs r0, 0x3F ands r0, r1 strb r0, [r2] cmp r0, 0x6 bne _08019838 movs r0, 0x2 strb r0, [r2] _08019838: ldr r1, _0801986C ldrb r0, [r2] adds r0, 0x40 strb r0, [r1, 0x3] ldr r0, _08019870 ldrb r1, [r0] ldr r5, _08019874 adds r0, r7, r5 strb r1, [r0] bl b_movescr_stack_push_cursor ldr r1, _08019878 ldr r0, _0801987C str r0, [r1] ldr r0, [r4] movs r1, 0x80 lsls r1, 6 orrs r0, r1 str r0, [r4] b _08019F22 .align 2, 0 _08019860: .4byte 0x02024c6c _08019864: .4byte 0xffffbfff _08019868: .4byte 0x000160ca _0801986C: .4byte 0x02024d1e _08019870: .4byte 0x02024c08 _08019874: .4byte 0x00016003 _08019878: .4byte 0x02024c10 _0801987C: .4byte gUnknown_081D9953 _08019880: mov r1, r8 ldrb r0, [r1] cmp r0, 0x1C beq _0801988A b _08019F76 _0801988A: ldr r4, _080198DC ldr r1, [r4] movs r0, 0x80 lsls r0, 7 ands r0, r1 cmp r0, 0 bne _0801989A b _08019F76 _0801989A: ldr r0, _080198E0 ands r1, r0 str r1, [r4] ldr r3, _080198E4 adds r2, r7, r3 ldrb r1, [r2] movs r0, 0x3F ands r0, r1 strb r0, [r2] cmp r0, 0x6 bne _080198B4 movs r0, 0x2 strb r0, [r2] _080198B4: ldr r1, _080198E8 ldrb r0, [r2] strb r0, [r1, 0x3] ldr r0, _080198EC ldrb r1, [r0] ldr r5, _080198F0 adds r0, r7, r5 strb r1, [r0] bl b_movescr_stack_push_cursor ldr r1, _080198F4 ldr r0, _080198F8 str r0, [r1] ldr r0, [r4] movs r1, 0x80 lsls r1, 6 orrs r0, r1 str r0, [r4] b _08019F22 .align 2, 0 _080198DC: .4byte 0x02024c6c _080198E0: .4byte 0xffffbfff _080198E4: .4byte 0x000160ca _080198E8: .4byte 0x02024d1e _080198EC: .4byte 0x02024c07 _080198F0: .4byte 0x00016003 _080198F4: .4byte 0x02024c10 _080198F8: .4byte gUnknown_081D9953 _080198FC: movs r4, 0 ldr r0, _08019934 ldrb r1, [r0] cmp r4, r1 blt _08019908 b _08019F76 _08019908: ldr r0, _08019938 adds r5, r1, 0 ldr r2, _0801993C adds r3, r0, 0 adds r3, 0x20 movs r6, 0x80 lsls r6, 12 _08019916: ldrb r1, [r3] cmp r1, 0x16 bne _08019926 ldr r0, [r2] ands r0, r6 cmp r0, 0 beq _08019926 b _08019E6C _08019926: adds r2, 0x4 adds r3, 0x58 adds r4, 0x1 cmp r4, r5 blt _08019916 b _08019F76 .align 2, 0 _08019934: .4byte 0x02024a68 _08019938: .4byte 0x02024a80 _0801993C: .4byte 0x02024c98 _08019940: movs r4, 0 ldr r0, _08019A1C ldrb r0, [r0] cmp r4, r0 blt _0801994C b _08019F76 _0801994C: ldr r0, _08019A20 mov r8, r0 ldr r1, _08019A24 adds r1, 0x20 str r1, [sp, 0x1C] movs r2, 0 str r2, [sp, 0x20] _0801995A: ldr r3, [sp, 0x1C] ldrb r0, [r3] cmp r0, 0x24 beq _08019964 b _08019AF6 _08019964: ldr r0, _08019A28 ldr r5, [sp, 0x20] adds r0, r5, r0 ldr r1, [r0] movs r0, 0x80 lsls r0, 13 ands r1, r0 str r5, [sp, 0x18] cmp r1, 0 bne _0801997A b _08019AF6 _0801997A: lsls r0, r4, 24 lsrs r0, 24 bl battle_get_per_side_status movs r1, 0x1 adds r5, r0, 0 eors r5, r1 ands r5, r1 adds r0, r5, 0 bl battle_get_side_with_given_state lsls r0, 24 lsrs r6, r0, 24 adds r0, r5, 0x2 bl battle_get_side_with_given_state lsls r0, 24 lsrs r7, r0, 24 ldr r0, _08019A2C ldrh r1, [r0] movs r2, 0x1 adds r0, r2, 0 ands r0, r1 cmp r0, 0 bne _080199AE b _08019ABC _080199AE: movs r1, 0x58 adds r0, r6, 0 muls r0, r1 ldr r3, _08019A24 adds r1, r0, r3 adds r0, r1, 0 adds r0, 0x20 ldrb r0, [r0] cmp r0, 0 beq _08019A78 ldrh r0, [r1, 0x28] cmp r0, 0 beq _08019A34 movs r1, 0x58 adds r0, r7, 0 muls r0, r1 adds r1, r0, r3 adds r0, r1, 0 adds r0, 0x20 ldrb r0, [r0] cmp r0, 0 beq _08019A34 ldrh r0, [r1, 0x28] cmp r0, 0 beq _08019A34 str r2, [sp, 0x24] bl Random ldr r2, [sp, 0x24] adds r1, r2, 0 ands r1, r0 lsls r1, 1 orrs r5, r1 adds r0, r5, 0 bl battle_get_side_with_given_state mov r2, r8 strb r0, [r2] ldrb r0, [r2] movs r3, 0x58 muls r0, r3 ldr r5, _08019A24 adds r0, r5 adds r0, 0x20 ldrb r0, [r0] ldr r1, [sp, 0x1C] strb r0, [r1] ldrb r0, [r2] muls r0, r3 adds r0, r5 adds r0, 0x20 ldrb r0, [r0] ldr r2, _08019A30 strb r0, [r2] b _08019AE4 .align 2, 0 _08019A1C: .4byte 0x02024a68 _08019A20: .4byte 0x02024a60 _08019A24: .4byte 0x02024a80 _08019A28: .4byte 0x02024c98 _08019A2C: .4byte 0x020239f8 _08019A30: .4byte 0x02024c06 _08019A34: ldr r3, _08019A74 movs r2, 0x58 adds r0, r6, 0 muls r0, r2 adds r1, r0, r3 adds r0, r1, 0 adds r0, 0x20 ldrb r0, [r0] cmp r0, 0 beq _08019A78 ldrh r0, [r1, 0x28] cmp r0, 0 beq _08019A78 mov r5, r8 strb r6, [r5] adds r1, r4, 0 muls r1, r2 adds r1, r3 ldrb r0, [r5] muls r0, r2 adds r0, r3 adds r0, 0x20 ldrb r0, [r0] adds r1, 0x20 strb r0, [r1] ldrb r0, [r5] muls r0, r2 adds r0, r3 adds r0, 0x20 ldrb r0, [r0] b _08019AE0 .align 2, 0 _08019A74: .4byte 0x02024a80 _08019A78: ldr r3, _08019AB8 movs r2, 0x58 adds r0, r7, 0 muls r0, r2 adds r1, r0, r3 adds r0, r1, 0 adds r0, 0x20 ldrb r0, [r0] cmp r0, 0 beq _08019AEE ldrh r0, [r1, 0x28] cmp r0, 0 beq _08019AEE mov r5, r8 strb r7, [r5] adds r1, r4, 0 muls r1, r2 adds r1, r3 ldrb r0, [r5] muls r0, r2 adds r0, r3 adds r0, 0x20 ldrb r0, [r0] adds r1, 0x20 strb r0, [r1] ldrb r0, [r5] muls r0, r2 adds r0, r3 adds r0, 0x20 ldrb r0, [r0] b _08019AE0 .align 2, 0 _08019AB8: .4byte 0x02024a80 _08019ABC: mov r2, r8 strb r6, [r2] movs r3, 0x58 adds r0, r6, 0 muls r0, r3 ldr r5, _08019B10 adds r0, r5 adds r2, r0, 0 adds r2, 0x20 ldrb r1, [r2] cmp r1, 0 beq _08019AEE ldrh r0, [r0, 0x28] cmp r0, 0 beq _08019AEE ldr r0, [sp, 0x1C] strb r1, [r0] ldrb r0, [r2] _08019AE0: ldr r1, _08019B14 strb r0, [r1] _08019AE4: mov r0, r9 adds r0, 0x1 lsls r0, 24 lsrs r0, 24 mov r9, r0 _08019AEE: mov r2, r9 cmp r2, 0 beq _08019AF6 b _08019E88 _08019AF6: ldr r3, [sp, 0x1C] adds r3, 0x58 str r3, [sp, 0x1C] ldr r5, [sp, 0x20] adds r5, 0x4 str r5, [sp, 0x20] adds r4, 0x1 ldr r0, _08019B18 ldrb r0, [r0] cmp r4, r0 bge _08019B0E b _0801995A _08019B0E: b _08019F76 .align 2, 0 _08019B10: .4byte 0x02024a80 _08019B14: .4byte 0x02024c06 _08019B18: .4byte 0x02024a68 _08019B1C: movs r4, 0 ldr r0, _08019B54 ldrb r1, [r0] cmp r4, r1 blt _08019B28 b _08019F76 _08019B28: ldr r0, _08019B58 adds r5, r1, 0 ldr r2, _08019B5C adds r3, r0, 0 adds r3, 0x20 movs r6, 0x80 lsls r6, 12 _08019B36: ldrb r1, [r3] cmp r1, 0x16 bne _08019B46 ldr r0, [r2] ands r0, r6 cmp r0, 0 beq _08019B46 b _08019F04 _08019B46: adds r2, 0x4 adds r3, 0x58 adds r4, 0x1 cmp r4, r5 blt _08019B36 b _08019F76 .align 2, 0 _08019B54: .4byte 0x02024a68 _08019B58: .4byte 0x02024a80 _08019B5C: .4byte 0x02024c98 _08019B60: mov r0, r10 bl battle_side_get_owner lsls r0, 24 lsrs r5, r0, 24 movs r4, 0 ldr r0, _08019BB0 ldrb r0, [r0] cmp r4, r0 blt _08019B76 b _08019F76 _08019B76: ldr r7, _08019BB4 _08019B78: lsls r0, r4, 24 lsrs r0, 24 bl battle_side_get_owner lsls r0, 24 lsrs r0, 24 adds r3, r4, 0x1 cmp r0, r5 beq _08019BA2 movs r0, 0x58 muls r0, r4 adds r0, r7 adds r0, 0x20 ldrb r0, [r0] cmp r0, r6 bne _08019BA2 ldr r0, _08019BB8 strb r6, [r0] lsls r0, r3, 24 lsrs r0, 24 mov r9, r0 _08019BA2: adds r4, r3, 0 ldr r0, _08019BB0 ldrb r0, [r0] cmp r4, r0 blt _08019B78 b _08019F76 .align 2, 0 _08019BB0: .4byte 0x02024a68 _08019BB4: .4byte 0x02024a80 _08019BB8: .4byte 0x02024c06 _08019BBC: mov r0, r10 bl battle_side_get_owner lsls r0, 24 lsrs r5, r0, 24 movs r4, 0 ldr r0, _08019C0C ldrb r0, [r0] cmp r4, r0 blt _08019BD2 b _08019F76 _08019BD2: ldr r7, _08019C10 _08019BD4: lsls r0, r4, 24 lsrs r0, 24 bl battle_side_get_owner lsls r0, 24 lsrs r0, 24 adds r3, r4, 0x1 cmp r0, r5 bne _08019BFE movs r0, 0x58 muls r0, r4 adds r0, r7 adds r0, 0x20 ldrb r0, [r0] cmp r0, r6 bne _08019BFE ldr r0, _08019C14 strb r6, [r0] lsls r0, r3, 24 lsrs r0, 24 mov r9, r0 _08019BFE: adds r4, r3, 0 ldr r0, _08019C0C ldrb r0, [r0] cmp r4, r0 blt _08019BD4 b _08019F76 .align 2, 0 _08019C0C: .4byte 0x02024a68 _08019C10: .4byte 0x02024a80 _08019C14: .4byte 0x02024c06 _08019C18: mov r1, r8 ldrb r0, [r1] cmp r0, 0xFD beq _08019C40 cmp r0, 0xFE beq _08019C78 movs r4, 0 ldr r0, _08019C38 adds r5, r0, 0 ldrb r2, [r5] cmp r4, r2 blt _08019C32 b _08019F76 _08019C32: ldr r2, _08019C3C b _08019CB0 .align 2, 0 _08019C38: .4byte 0x02024a68 _08019C3C: .4byte 0x02024a80 _08019C40: movs r4, 0 ldr r0, _08019C70 ldrb r0, [r0] cmp r4, r0 blt _08019C4C b _08019F76 _08019C4C: ldr r5, _08019C74 movs r2, 0x80 lsls r2, 9 adds r1, r0, 0 _08019C54: lsls r0, r4, 2 adds r0, r5 ldr r0, [r0] ands r0, r2 adds r3, r4, 0x1 cmp r0, 0 beq _08019C68 lsls r0, r3, 24 lsrs r0, 24 mov r9, r0 _08019C68: adds r4, r3, 0 cmp r4, r1 blt _08019C54 b _08019F76 .align 2, 0 _08019C70: .4byte 0x02024a68 _08019C74: .4byte 0x02024c98 _08019C78: movs r4, 0 ldr r0, _08019CA8 ldrb r0, [r0] cmp r4, r0 blt _08019C84 b _08019F76 _08019C84: ldr r5, _08019CAC movs r2, 0x80 lsls r2, 10 adds r1, r0, 0 _08019C8C: lsls r0, r4, 2 adds r0, r5 ldr r0, [r0] ands r0, r2 adds r3, r4, 0x1 cmp r0, 0 beq _08019CA0 lsls r0, r3, 24 lsrs r0, 24 mov r9, r0 _08019CA0: adds r4, r3, 0 cmp r4, r1 blt _08019C8C b _08019F76 .align 2, 0 _08019CA8: .4byte 0x02024a68 _08019CAC: .4byte 0x02024c98 _08019CB0: movs r0, 0x58 muls r0, r4 adds r0, r2 adds r0, 0x20 ldrb r0, [r0] adds r3, r4, 0x1 cmp r0, r6 bne _08019CCA mov r0, r8 strb r6, [r0] lsls r0, r3, 24 lsrs r0, 24 mov r9, r0 _08019CCA: adds r4, r3, 0 ldrb r1, [r5] cmp r4, r1 blt _08019CB0 b _08019F76 _08019CD4: movs r4, 0 ldr r0, _08019D10 ldrb r0, [r0] cmp r4, r0 blt _08019CE0 b _08019F76 _08019CE0: ldr r7, _08019D14 adds r2, r0, 0 movs r5, 0x58 _08019CE6: adds r0, r4, 0 muls r0, r5 adds r1, r0, r7 adds r0, r1, 0 adds r0, 0x20 ldrb r0, [r0] adds r3, r4, 0x1 cmp r0, r6 bne _08019D08 ldrh r0, [r1, 0x28] cmp r0, 0 beq _08019D08 mov r0, r8 strb r6, [r0] lsls r0, r3, 24 lsrs r0, 24 mov r9, r0 _08019D08: adds r4, r3, 0 cmp r4, r2 blt _08019CE6 b _08019F76 .align 2, 0 _08019D10: .4byte 0x02024a68 _08019D14: .4byte 0x02024a80 _08019D18: movs r4, 0 ldr r0, _08019D50 ldrb r0, [r0] cmp r4, r0 blt _08019D24 b _08019F76 _08019D24: ldr r7, _08019D54 adds r1, r0, 0 movs r5, 0x58 ldr r2, _08019D58 _08019D2C: adds r0, r4, 0 muls r0, r5 adds r0, r7 adds r0, 0x20 ldrb r0, [r0] adds r3, r4, 0x1 cmp r0, r6 bne _08019D48 cmp r4, r10 beq _08019D48 strb r6, [r2] lsls r0, r3, 24 lsrs r0, 24 mov r9, r0 _08019D48: adds r4, r3, 0 cmp r4, r1 blt _08019D2C b _08019F76 .align 2, 0 _08019D50: .4byte 0x02024a68 _08019D54: .4byte 0x02024a80 _08019D58: .4byte 0x02024c06 _08019D5C: mov r0, r10 bl battle_side_get_owner lsls r0, 24 lsrs r5, r0, 24 movs r4, 0 ldr r0, _08019DAC ldrb r0, [r0] cmp r4, r0 blt _08019D72 b _08019F76 _08019D72: ldr r7, _08019DB0 _08019D74: lsls r0, r4, 24 lsrs r0, 24 bl battle_side_get_owner lsls r0, 24 lsrs r0, 24 cmp r0, r5 beq _08019DA0 movs r0, 0x58 muls r0, r4 adds r0, r7 adds r0, 0x20 ldrb r0, [r0] cmp r0, r6 bne _08019DA0 ldr r0, _08019DB4 strb r6, [r0] mov r0, r9 adds r0, 0x1 lsls r0, 24 lsrs r0, 24 mov r9, r0 _08019DA0: adds r4, 0x1 ldr r0, _08019DAC ldrb r0, [r0] cmp r4, r0 blt _08019D74 b _08019F76 .align 2, 0 _08019DAC: .4byte 0x02024a68 _08019DB0: .4byte 0x02024a80 _08019DB4: .4byte 0x02024c06 _08019DB8: mov r0, r10 bl battle_side_get_owner lsls r0, 24 lsrs r5, r0, 24 movs r4, 0 ldr r0, _08019E08 ldrb r0, [r0] cmp r4, r0 blt _08019DCE b _08019F76 _08019DCE: ldr r7, _08019E0C _08019DD0: lsls r0, r4, 24 lsrs r0, 24 bl battle_side_get_owner lsls r0, 24 lsrs r0, 24 cmp r0, r5 bne _08019DFC movs r0, 0x58 muls r0, r4 adds r0, r7 adds r0, 0x20 ldrb r0, [r0] cmp r0, r6 bne _08019DFC ldr r0, _08019E10 strb r6, [r0] mov r0, r9 adds r0, 0x1 lsls r0, 24 lsrs r0, 24 mov r9, r0 _08019DFC: adds r4, 0x1 ldr r0, _08019E08 ldrb r0, [r0] cmp r4, r0 blt _08019DD0 b _08019F76 .align 2, 0 _08019E08: .4byte 0x02024a68 _08019E0C: .4byte 0x02024a80 _08019E10: .4byte 0x02024c06 _08019E14: ldr r0, _08019E30 bl b_push_move_exec ldr r0, _08019E34 ldr r2, _08019E38 adds r1, r0, r2 strb r6, [r1] mov r1, r9 subs r1, 0x1 ldr r3, _08019E3C adds r0, r3 strb r1, [r0] b _08019F76 .align 2, 0 _08019E30: .4byte gUnknown_081D977D _08019E34: .4byte 0x02000000 _08019E38: .4byte 0x00016003 _08019E3C: .4byte 0x0001609b _08019E40: ldr r0, _08019E5C bl b_push_move_exec ldr r0, _08019E60 ldr r5, _08019E64 adds r1, r0, r5 mov r2, r10 strb r2, [r1] mov r1, r9 subs r1, 0x1 ldr r3, _08019E68 adds r0, r3 strb r1, [r0] b _08019F92 .align 2, 0 _08019E5C: .4byte gUnknown_081D977D _08019E60: .4byte 0x02000000 _08019E64: .4byte 0x00016003 _08019E68: .4byte 0x0001609b _08019E6C: mov r5, r8 strb r1, [r5] ldr r0, [r2] ldr r1, _08019E80 ands r0, r1 str r0, [r2] ldr r0, _08019E84 bl b_push_move_exec b _08019F1A .align 2, 0 _08019E80: .4byte 0xfff7ffff _08019E84: .4byte gUnknown_081D978C _08019E88: ldr r0, _08019EDC bl b_push_move_exec ldr r1, _08019EE0 ldr r2, [sp, 0x18] adds r1, r2, r1 ldr r0, [r1] ldr r2, _08019EE4 ands r0, r2 str r0, [r1] ldr r0, _08019EE8 ldr r3, _08019EEC adds r0, r3 strb r4, [r0] ldr r1, _08019EF0 movs r4, 0xFD strb r4, [r1] movs r0, 0x4 strb r0, [r1, 0x1] ldr r2, _08019EF4 ldrb r0, [r2] strb r0, [r1, 0x2] ldr r3, _08019EF8 ldrb r0, [r2] lsls r0, 1 adds r0, r3 ldrh r0, [r0] strb r0, [r1, 0x3] movs r0, 0xFF strb r0, [r1, 0x4] ldr r1, _08019EFC strb r4, [r1] movs r0, 0x9 strb r0, [r1, 0x1] ldr r0, _08019F00 ldrb r0, [r0] strb r0, [r1, 0x2] movs r0, 0x1 negs r0, r0 strb r0, [r1, 0x3] b _08019F76 .align 2, 0 _08019EDC: .4byte gUnknown_081D9726 _08019EE0: .4byte 0x02024c98 _08019EE4: .4byte 0xffefffff _08019EE8: .4byte 0x02000000 _08019EEC: .4byte 0x00016003 _08019EF0: .4byte 0x030041c0 _08019EF4: .4byte 0x02024a60 _08019EF8: .4byte 0x02024a6a _08019EFC: .4byte 0x03004290 _08019F00: .4byte 0x02024c06 _08019F04: mov r5, r8 strb r1, [r5] ldr r0, [r2] ldr r1, _08019F30 ands r0, r1 str r0, [r2] bl b_movescr_stack_push_cursor ldr r1, _08019F34 ldr r0, _08019F38 str r0, [r1] _08019F1A: ldr r0, _08019F3C ldr r1, _08019F40 adds r0, r1 strb r4, [r0] _08019F22: mov r0, r9 adds r0, 0x1 lsls r0, 24 lsrs r0, 24 mov r9, r0 b _08019F76 .align 2, 0 _08019F30: .4byte 0xfff7ffff _08019F34: .4byte 0x02024c10 _08019F38: .4byte gUnknown_081D9795 _08019F3C: .4byte 0x02000000 _08019F40: .4byte 0x000160dd _08019F44: movs r4, 0 ldr r0, _08019FA4 ldrb r1, [r0] cmp r4, r1 bge _08019F76 ldr r0, _08019FA8 adds r2, r1, 0 adds r1, r0, 0 adds r1, 0x20 ldr r3, _08019FAC _08019F58: ldrb r0, [r1] cmp r0, r6 bne _08019F6E cmp r4, r10 beq _08019F6E strb r6, [r3] mov r0, r9 adds r0, 0x1 lsls r0, 24 lsrs r0, 24 mov r9, r0 _08019F6E: adds r1, 0x58 adds r4, 0x1 cmp r4, r2 blt _08019F58 _08019F76: mov r2, r9 cmp r2, 0 beq _08019F92 _08019F7C: ldr r3, [sp, 0x4] cmp r3, 0xB bhi _08019F92 ldr r1, _08019FAC ldrb r0, [r1] cmp r0, 0xFF beq _08019F92 adds r1, r0, 0 mov r0, r10 bl sub_81074C4 _08019F92: mov r0, r9 add sp, 0x28 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _08019FA4: .4byte 0x02024a68 _08019FA8: .4byte 0x02024a80 _08019FAC: .4byte 0x02024c06 thumb_func_end sub_8018324 thumb_func_start b_call_bc_move_exec b_call_bc_move_exec: @ 8019FB0 ldr r1, _08019FD8 str r0, [r1] ldr r3, _08019FDC adds r2, r3, 0 adds r2, 0x20 ldrb r0, [r2] adds r1, r0, 0x1 strb r1, [r2] lsls r0, 24 lsrs r0, 22 adds r0, r3 ldr r2, _08019FE0 ldr r1, [r2] str r1, [r0] ldr r0, _08019FE4 str r0, [r2] ldr r1, _08019FE8 movs r0, 0 strb r0, [r1] bx lr .align 2, 0 _08019FD8: .4byte 0x02024c10 _08019FDC: .4byte 0x02017140 _08019FE0: .4byte 0x030042d4 _08019FE4: .4byte sub_8013F54 _08019FE8: .4byte 0x02024a7f thumb_func_end b_call_bc_move_exec thumb_func_start b_push_move_exec b_push_move_exec: @ 8019FEC push {r4,lr} adds r4, r0, 0 bl b_movescr_stack_push_cursor ldr r0, _0801A01C str r4, [r0] ldr r3, _0801A020 adds r2, r3, 0 adds r2, 0x20 ldrb r0, [r2] adds r1, r0, 0x1 strb r1, [r2] lsls r0, 24 lsrs r0, 22 adds r0, r3 ldr r2, _0801A024 ldr r1, [r2] str r1, [r0] ldr r0, _0801A028 str r0, [r2] pop {r4} pop {r0} bx r0 .align 2, 0 _0801A01C: .4byte 0x02024c10 _0801A020: .4byte 0x02017140 _0801A024: .4byte 0x030042d4 _0801A028: .4byte sub_8013FBC thumb_func_end b_push_move_exec thumb_func_start sub_801A02C sub_801A02C: @ 801A02C push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x2C lsls r0, 24 lsrs r0, 24 str r0, [sp, 0x8] lsls r1, 24 lsrs r7, r1, 24 lsls r2, 24 lsrs r6, r2, 24 movs r0, 0 mov r10, r0 movs r1, 0 str r1, [sp, 0xC] add r0, sp, 0x4 strb r1, [r0] ldr r4, _0801A078 ldr r1, _0801A07C movs r0, 0x58 muls r0, r7 adds r0, r1 ldrh r0, [r0, 0x2E] strh r0, [r4] lsls r0, 16 lsrs r0, 16 cmp r0, 0xAF bne _0801A084 ldr r1, _0801A080 lsls r0, r7, 3 subs r0, r7 lsls r0, 2 adds r0, r1 ldrb r5, [r0, 0x7] ldrb r0, [r0, 0x1A] b _0801A098 .align 2, 0 _0801A078: .4byte 0x02024c04 _0801A07C: .4byte 0x02024a80 _0801A080: .4byte 0x02024df0 _0801A084: ldrh r0, [r4] bl itemid_get_x12 lsls r0, 24 lsrs r5, r0, 24 ldrh r0, [r4] bl itemid_get_quality lsls r0, 24 lsrs r0, 24 _0801A098: mov r9, r0 ldr r1, _0801A0C0 ldr r0, _0801A0C4 ldrb r2, [r0] movs r0, 0x58 muls r0, r2 adds r0, r1 ldrh r0, [r0, 0x2E] str r0, [sp, 0x14] cmp r0, 0xAF bne _0801A0CC ldr r1, _0801A0C8 lsls r0, r2, 3 subs r0, r2 lsls r0, 2 adds r0, r1 ldrb r3, [r0, 0x7] mov r8, r3 ldrb r0, [r0, 0x1A] b _0801A0E2 .align 2, 0 _0801A0C0: .4byte 0x02024a80 _0801A0C4: .4byte 0x02024c07 _0801A0C8: .4byte 0x02024df0 _0801A0CC: ldr r0, [sp, 0x14] bl itemid_get_x12 lsls r0, 24 lsrs r0, 24 mov r8, r0 ldr r0, [sp, 0x14] bl itemid_get_quality lsls r0, 24 lsrs r0, 24 _0801A0E2: str r0, [sp, 0x10] ldr r2, _0801A118 ldr r0, _0801A11C ldrb r1, [r0] movs r0, 0x58 muls r0, r1 adds r0, r2 ldrh r4, [r0, 0x2E] cmp r4, 0xAF beq _0801A102 adds r0, r4, 0 bl itemid_get_x12 adds r0, r4, 0 bl itemid_get_quality _0801A102: ldr r4, [sp, 0x8] cmp r4, 0x4 bls _0801A10C bl _0801B3CA _0801A10C: lsls r0, r4, 2 ldr r1, _0801A120 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0801A118: .4byte 0x02024a80 _0801A11C: .4byte 0x02024c08 _0801A120: .4byte _0801A124 .align 2, 0 _0801A124: .4byte _0801A138 .4byte _0801A1D4 .4byte _0801B3CA .4byte _0801AE0C .4byte _0801B26C _0801A138: cmp r5, 0x17 beq _0801A15C cmp r5, 0x20 beq _0801A144 bl _0801B3CA _0801A144: ldr r0, _0801A154 ldr r5, _0801A158 adds r0, r5 movs r1, 0x2 strb r1, [r0] bl _0801B3CA .align 2, 0 _0801A154: .4byte 0x02000000 _0801A158: .4byte 0x00016056 _0801A15C: ldr r0, _0801A1B8 mov r8, r0 movs r0, 0x58 adds r1, r7, 0 muls r1, r0 mov r0, r8 adds r0, 0x18 adds r1, r0 movs r2, 0x6 movs r3, 0x7 mov r10, r3 _0801A172: movs r0, 0 ldrsb r0, [r1, r0] cmp r0, 0x5 bgt _0801A180 strb r2, [r1] movs r4, 0x5 str r4, [sp, 0xC] _0801A180: adds r1, 0x1 movs r5, 0x1 negs r5, r5 add r10, r5 mov r0, r10 cmp r0, 0 bge _0801A172 ldr r1, [sp, 0xC] cmp r1, 0 bne _0801A198 bl _0801B3CA _0801A198: ldr r0, _0801A1BC ldr r2, _0801A1C0 adds r0, r2 strb r7, [r0] ldr r0, _0801A1C4 strb r7, [r0] ldr r1, _0801A1C8 ldr r0, _0801A1CC strb r7, [r0] strb r7, [r1] ldr r0, _0801A1D0 bl b_call_bc_move_exec bl _0801B3CA .align 2, 0 _0801A1B8: .4byte 0x02024a80 _0801A1BC: .4byte 0x02000000 _0801A1C0: .4byte 0x00016003 _0801A1C4: .4byte 0x02024c0b _0801A1C8: .4byte 0x02024a60 _0801A1CC: .4byte 0x02024c07 _0801A1D0: .4byte gUnknown_081D9A5E _0801A1D4: ldr r1, _0801A1FC movs r0, 0x58 muls r0, r7 adds r0, r1 ldrh r0, [r0, 0x28] mov r8, r1 cmp r0, 0 bne _0801A1E8 bl _0801B3CA _0801A1E8: subs r0, r5, 0x1 cmp r0, 0x2A bls _0801A1F2 bl _0801AD5A _0801A1F2: lsls r0, 2 ldr r1, _0801A200 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0801A1FC: .4byte 0x02024a80 _0801A200: .4byte _0801A204 .align 2, 0 _0801A204: .4byte _0801A2B0 .4byte _0801AAC8 .4byte _0801AB84 .4byte _0801AAF8 .4byte _0801AB2C .4byte _0801AB5C .4byte _0801A2F8 .4byte _0801ABC8 .4byte _0801ABF8 .4byte _0801A4CC .4byte _0801A548 .4byte _0801A5C4 .4byte _0801A634 .4byte _0801A6C8 .4byte _0801A75C .4byte _0801A7D4 .4byte _0801A838 .4byte _0801A89C .4byte _0801A900 .4byte _0801A97C .4byte _0801A9C8 .4byte _0801AD5A .4byte _0801A3F8 .4byte _0801AD5A .4byte _0801AD5A .4byte _0801AD5A .4byte _0801AD5A .4byte _0801AD24 .4byte _0801AD5A .4byte _0801AD5A .4byte _0801AD5A .4byte _0801AD5A .4byte _0801AD5A .4byte _0801AD5A .4byte _0801AD5A .4byte _0801AD5A .4byte _0801AD5A .4byte _0801AD5A .4byte _0801AD5A .4byte _0801AD5A .4byte _0801AD5A .4byte _0801AD5A .4byte _0801A46C _0801A2B0: movs r0, 0x58 muls r0, r7 mov r3, r8 adds r2, r0, r3 ldrh r0, [r2, 0x2C] ldrh r1, [r2, 0x28] lsrs r0, 1 cmp r1, r0 bls _0801A2C6 bl _0801AD5A _0801A2C6: cmp r6, 0 beq _0801A2CE bl _0801AD5A _0801A2CE: ldr r4, _0801A2F0 mov r5, r9 str r5, [r4] ldrh r3, [r2, 0x28] adds r0, r3, r5 ldrh r1, [r2, 0x2C] cmp r0, r1 ble _0801A2E2 subs r0, r1, r3 str r0, [r4] _0801A2E2: ldr r0, [r4] negs r0, r0 str r0, [r4] ldr r0, _0801A2F4 bl b_call_bc_move_exec b _0801A752 .align 2, 0 _0801A2F0: .4byte 0x02024bec _0801A2F4: .4byte gUnknown_081D9A74 _0801A2F8: cmp r6, 0 beq _0801A300 bl _0801AD5A _0801A300: adds r0, r7, 0 bl battle_side_get_owner lsls r0, 24 cmp r0, 0 bne _0801A324 ldr r1, _0801A31C lsls r0, r7, 1 adds r0, r1 ldrh r1, [r0] movs r0, 0x64 muls r1, r0 ldr r0, _0801A320 b _0801A332 .align 2, 0 _0801A31C: .4byte 0x02024a6a _0801A320: .4byte 0x03004360 _0801A324: ldr r1, _0801A3A0 lsls r0, r7, 1 adds r0, r1 ldrh r1, [r0] movs r0, 0x64 muls r1, r0 ldr r0, _0801A3A4 _0801A332: adds r4, r1, r0 movs r1, 0 mov r10, r1 add r5, sp, 0x4 _0801A33A: mov r1, r10 adds r1, 0xD adds r0, r4, 0 bl PokemonGetField lsls r0, 16 lsrs r6, r0, 16 mov r1, r10 adds r1, 0x11 adds r0, r4, 0 bl PokemonGetField strb r0, [r5] adds r0, r4, 0 movs r1, 0x15 bl PokemonGetField lsls r0, 24 lsrs r1, r0, 24 cmp r6, 0 beq _0801A36A ldrb r0, [r5] cmp r0, 0 beq _0801A374 _0801A36A: movs r2, 0x1 add r10, r2 mov r3, r10 cmp r3, 0x3 ble _0801A33A _0801A374: mov r4, r10 cmp r4, 0x4 bne _0801A37E bl _0801AD5A _0801A37E: lsls r2, r4, 24 lsrs r2, 24 adds r0, r6, 0 bl CalcPPWithPPUps lsls r0, 24 lsrs r2, r0, 24 add r0, sp, 0x4 ldrb r0, [r0] mov r5, r9 adds r1, r0, r5 cmp r1, r2 ble _0801A3A8 add r0, sp, 0x4 strb r2, [r0] b _0801A3AC .align 2, 0 _0801A3A0: .4byte 0x02024a6a _0801A3A4: .4byte 0x030045c0 _0801A3A8: add r0, sp, 0x4 strb r1, [r0] _0801A3AC: ldr r1, _0801A3EC movs r0, 0xFD strb r0, [r1] movs r0, 0x2 strb r0, [r1, 0x1] strb r6, [r1, 0x2] lsrs r0, r6, 8 strb r0, [r1, 0x3] movs r0, 0xFF strb r0, [r1, 0x4] ldr r0, _0801A3F0 bl b_call_bc_move_exec mov r1, r10 adds r1, 0x9 lsls r1, 24 lsrs r1, 24 add r0, sp, 0x4 str r0, [sp] movs r0, 0 movs r2, 0 movs r3, 0x1 bl dp01_build_cmdbuf_x02_a_b_varargs ldr r0, _0801A3F4 ldrb r0, [r0] bl dp01_battle_side_mark_buffer_for_execution movs r1, 0x3 str r1, [sp, 0xC] bl _0801AD62 .align 2, 0 _0801A3EC: .4byte 0x030041c0 _0801A3F0: .4byte gUnknown_081D9A91 _0801A3F4: .4byte 0x02024a60 _0801A3F8: ldr r0, _0801A450 movs r1, 0x58 muls r1, r7 adds r0, 0x18 adds r1, r0 movs r2, 0x6 movs r3, 0x7 mov r10, r3 _0801A408: movs r0, 0 ldrsb r0, [r1, r0] cmp r0, 0x5 bgt _0801A416 strb r2, [r1] movs r4, 0x5 str r4, [sp, 0xC] _0801A416: adds r1, 0x1 movs r5, 0x1 negs r5, r5 add r10, r5 mov r0, r10 cmp r0, 0 bge _0801A408 movs r1, 0x8 mov r10, r1 ldr r2, [sp, 0xC] cmp r2, 0 bne _0801A432 bl _0801B3CA _0801A432: ldr r0, _0801A454 ldr r3, _0801A458 adds r0, r3 strb r7, [r0] ldr r0, _0801A45C strb r7, [r0] ldr r1, _0801A460 ldr r0, _0801A464 strb r7, [r0] strb r7, [r1] ldr r0, _0801A468 bl b_call_bc_move_exec bl _0801AD5A .align 2, 0 _0801A450: .4byte 0x02024a80 _0801A454: .4byte 0x02000000 _0801A458: .4byte 0x00016003 _0801A45C: .4byte 0x02024c0b _0801A460: .4byte 0x02024a60 _0801A464: .4byte 0x02024c07 _0801A468: .4byte gUnknown_081D9A5E _0801A46C: movs r0, 0x58 muls r0, r7 mov r4, r8 adds r1, r0, r4 ldrh r0, [r1, 0x28] ldrh r2, [r1, 0x2C] cmp r0, r2 bcc _0801A480 bl _0801AD5A _0801A480: cmp r6, 0 beq _0801A488 bl _0801AD5A _0801A488: ldr r3, _0801A4C4 ldrh r0, [r1, 0x2C] lsrs r0, 4 str r0, [r3] cmp r0, 0 bne _0801A498 movs r0, 0x1 str r0, [r3] _0801A498: ldrh r2, [r1, 0x28] ldr r0, [r3] adds r0, r2, r0 ldrh r1, [r1, 0x2C] cmp r0, r1 ble _0801A4A8 subs r0, r1, r2 str r0, [r3] _0801A4A8: ldr r0, [r3] negs r0, r0 str r0, [r3] ldr r0, _0801A4C8 bl b_call_bc_move_exec movs r3, 0x4 str r3, [sp, 0xC] adds r0, r7, 0 adds r1, r5, 0 bl sub_81074F8 bl _0801AD5A .align 2, 0 _0801A4C4: .4byte 0x02024bec _0801A4C8: .4byte gUnknown_081D9AA1 _0801A4CC: movs r0, 0x58 adds r4, r7, 0 muls r4, r0 str r4, [sp, 0x18] add r4, r8 ldrh r0, [r4, 0x2C] ldrh r1, [r4, 0x28] lsrs r0, 1 cmp r1, r0 bls _0801A4E4 bl _0801AD5A _0801A4E4: cmp r6, 0 beq _0801A4EC bl _0801AD5A _0801A4EC: ldr r1, _0801A540 movs r0, 0xFD strb r0, [r1] movs r0, 0x8 strb r0, [r1, 0x1] strb r6, [r1, 0x2] movs r0, 0xFF strb r0, [r1, 0x3] ldr r5, _0801A544 ldrh r0, [r4, 0x2C] mov r1, r9 bl __divsi3 str r0, [r5] cmp r0, 0 bne _0801A510 movs r0, 0x1 str r0, [r5] _0801A510: ldrh r2, [r4, 0x28] ldr r0, [r5] adds r0, r2, r0 ldrh r1, [r4, 0x2C] cmp r0, r1 ble _0801A520 subs r0, r1, r2 str r0, [r5] _0801A520: ldr r0, [r5] negs r0, r0 str r0, [r5] mov r0, r8 adds r0, 0x48 ldr r5, [sp, 0x18] adds r0, r5, r0 ldr r0, [r0] movs r1, 0 _0801A532: bl sub_8040A7C lsls r0, 24 cmp r0, 0 bge _0801A53E b _0801A738 _0801A53E: b _0801A74C .align 2, 0 _0801A540: .4byte 0x030041c0 _0801A544: .4byte 0x02024bec _0801A548: movs r0, 0x58 adds r1, r7, 0 muls r1, r0 str r1, [sp, 0x1C] adds r5, r1, 0 add r5, r8 ldrh r0, [r5, 0x2C] ldrh r1, [r5, 0x28] lsrs r0, 1 cmp r1, r0 bls _0801A562 bl _0801AD5A _0801A562: cmp r6, 0 beq _0801A56A bl _0801AD5A _0801A56A: ldr r1, _0801A5BC movs r0, 0xFD strb r0, [r1] movs r0, 0x8 strb r0, [r1, 0x1] movs r6, 0x1 strb r6, [r1, 0x2] movs r0, 0xFF strb r0, [r1, 0x3] ldr r4, _0801A5C0 ldrh r0, [r5, 0x2C] mov r1, r9 bl __divsi3 str r0, [r4] cmp r0, 0 bne _0801A58E str r6, [r4] _0801A58E: ldrh r2, [r5, 0x28] ldr r0, [r4] adds r0, r2, r0 ldrh r1, [r5, 0x2C] cmp r0, r1 ble _0801A59E subs r0, r1, r2 str r0, [r4] _0801A59E: ldr r0, [r4] negs r0, r0 str r0, [r4] mov r0, r8 adds r0, 0x48 ldr r2, [sp, 0x1C] adds r0, r2, r0 ldr r0, [r0] movs r1, 0x1 bl sub_8040A7C lsls r0, 24 cmp r0, 0 blt _0801A6A4 b _0801A6B8 .align 2, 0 _0801A5BC: .4byte 0x030041c0 _0801A5C0: .4byte 0x02024bec _0801A5C4: movs r0, 0x58 adds r4, r7, 0 muls r4, r0 str r4, [sp, 0x20] adds r5, r4, 0 add r5, r8 ldrh r0, [r5, 0x2C] ldrh r1, [r5, 0x28] lsrs r0, 1 cmp r1, r0 bls _0801A5DC b _0801AD5A _0801A5DC: cmp r6, 0 beq _0801A5E2 b _0801AD5A _0801A5E2: ldr r1, _0801A62C movs r0, 0xFD strb r0, [r1] movs r0, 0x8 strb r0, [r1, 0x1] movs r0, 0x2 strb r0, [r1, 0x2] movs r0, 0xFF strb r0, [r1, 0x3] ldr r4, _0801A630 ldrh r0, [r5, 0x2C] mov r1, r9 bl __divsi3 str r0, [r4] cmp r0, 0 bne _0801A608 movs r0, 0x1 str r0, [r4] _0801A608: ldrh r2, [r5, 0x28] ldr r0, [r4] adds r0, r2, r0 ldrh r1, [r5, 0x2C] cmp r0, r1 ble _0801A618 subs r0, r1, r2 str r0, [r4] _0801A618: ldr r0, [r4] negs r0, r0 str r0, [r4] mov r0, r8 adds r0, 0x48 ldr r5, [sp, 0x20] adds r0, r5, r0 ldr r0, [r0] movs r1, 0x2 b _0801A532 .align 2, 0 _0801A62C: .4byte 0x030041c0 _0801A630: .4byte 0x02024bec _0801A634: movs r0, 0x58 adds r1, r7, 0 muls r1, r0 str r1, [sp, 0x24] adds r5, r1, 0 add r5, r8 ldrh r0, [r5, 0x2C] ldrh r1, [r5, 0x28] lsrs r0, 1 cmp r1, r0 bls _0801A64C b _0801AD5A _0801A64C: cmp r6, 0 beq _0801A652 b _0801AD5A _0801A652: ldr r1, _0801A6AC movs r0, 0xFD strb r0, [r1] movs r0, 0x8 strb r0, [r1, 0x1] movs r0, 0x3 strb r0, [r1, 0x2] movs r0, 0xFF strb r0, [r1, 0x3] ldr r4, _0801A6B0 ldrh r0, [r5, 0x2C] mov r1, r9 bl __divsi3 str r0, [r4] cmp r0, 0 bne _0801A678 movs r0, 0x1 str r0, [r4] _0801A678: ldrh r2, [r5, 0x28] ldr r0, [r4] adds r0, r2, r0 ldrh r1, [r5, 0x2C] cmp r0, r1 ble _0801A688 subs r0, r1, r2 str r0, [r4] _0801A688: ldr r0, [r4] negs r0, r0 str r0, [r4] mov r0, r8 adds r0, 0x48 ldr r2, [sp, 0x24] adds r0, r2, r0 ldr r0, [r0] movs r1, 0x3 bl sub_8040A7C lsls r0, 24 cmp r0, 0 bge _0801A6B8 _0801A6A4: ldr r0, _0801A6B4 bl b_call_bc_move_exec b _0801A6BE .align 2, 0 _0801A6AC: .4byte 0x030041c0 _0801A6B0: .4byte 0x02024bec _0801A6B4: .4byte gUnknown_081D9AD4 _0801A6B8: ldr r0, _0801A6C4 bl b_call_bc_move_exec _0801A6BE: movs r3, 0x4 str r3, [sp, 0xC] b _0801AD62 .align 2, 0 _0801A6C4: .4byte gUnknown_081D9A74 _0801A6C8: movs r0, 0x58 adds r4, r7, 0 muls r4, r0 str r4, [sp, 0x28] adds r5, r4, 0 add r5, r8 ldrh r0, [r5, 0x2C] ldrh r1, [r5, 0x28] lsrs r0, 1 cmp r1, r0 bls _0801A6E0 b _0801AD5A _0801A6E0: cmp r6, 0 beq _0801A6E6 b _0801AD5A _0801A6E6: ldr r1, _0801A740 movs r0, 0xFD strb r0, [r1] movs r0, 0x8 strb r0, [r1, 0x1] movs r0, 0x4 strb r0, [r1, 0x2] movs r0, 0xFF strb r0, [r1, 0x3] ldr r4, _0801A744 ldrh r0, [r5, 0x2C] mov r1, r9 bl __divsi3 str r0, [r4] cmp r0, 0 bne _0801A70C movs r0, 0x1 str r0, [r4] _0801A70C: ldrh r2, [r5, 0x28] ldr r0, [r4] adds r0, r2, r0 ldrh r1, [r5, 0x2C] cmp r0, r1 ble _0801A71C subs r0, r1, r2 str r0, [r4] _0801A71C: ldr r0, [r4] negs r0, r0 str r0, [r4] mov r0, r8 adds r0, 0x48 ldr r5, [sp, 0x28] adds r0, r5, r0 ldr r0, [r0] movs r1, 0x4 bl sub_8040A7C lsls r0, 24 cmp r0, 0 bge _0801A74C _0801A738: ldr r0, _0801A748 bl b_call_bc_move_exec b _0801A752 .align 2, 0 _0801A740: .4byte 0x030041c0 _0801A744: .4byte 0x02024bec _0801A748: .4byte gUnknown_081D9AD4 _0801A74C: ldr r0, _0801A758 bl b_call_bc_move_exec _0801A752: movs r0, 0x4 str r0, [sp, 0xC] b _0801AD62 .align 2, 0 _0801A758: .4byte gUnknown_081D9A74 _0801A75C: movs r0, 0x58 muls r0, r7 mov r1, r8 adds r5, r0, r1 ldrh r4, [r5, 0x28] ldrh r0, [r5, 0x2C] mov r1, r9 bl __divsi3 cmp r4, r0 ble _0801A774 b _0801AD5A _0801A774: cmp r6, 0 beq _0801A77A b _0801AD5A _0801A77A: movs r0, 0x19 ldrsb r0, [r5, r0] cmp r0, 0xB ble _0801A784 b _0801AD5A _0801A784: ldr r1, _0801A7BC movs r2, 0xFD strb r2, [r1] movs r0, 0x5 strb r0, [r1, 0x1] movs r0, 0x1 strb r0, [r1, 0x2] movs r0, 0xFF strb r0, [r1, 0x3] ldr r1, _0801A7C0 strb r2, [r1] strb r6, [r1, 0x1] movs r0, 0xD2 strb r0, [r1, 0x2] strb r6, [r1, 0x3] subs r0, 0xD3 strb r0, [r1, 0x4] ldr r0, _0801A7C4 strb r7, [r0] ldr r1, _0801A7C8 ldr r3, _0801A7CC adds r2, r1, r3 movs r0, 0x11 strb r0, [r2] ldr r4, _0801A7D0 adds r2, r1, r4 movs r0, 0xF b _0801A94C .align 2, 0 _0801A7BC: .4byte 0x030041c0 _0801A7C0: .4byte 0x03004290 _0801A7C4: .4byte 0x02024c0a _0801A7C8: .4byte 0x02000000 _0801A7CC: .4byte 0x0001601e _0801A7D0: .4byte 0x000160a4 _0801A7D4: movs r0, 0x58 muls r0, r7 mov r1, r8 adds r5, r0, r1 ldrh r4, [r5, 0x28] ldrh r0, [r5, 0x2C] mov r1, r9 bl __divsi3 cmp r4, r0 ble _0801A7EC b _0801AD5A _0801A7EC: cmp r6, 0 beq _0801A7F2 b _0801AD5A _0801A7F2: movs r0, 0x1A ldrsb r0, [r5, r0] cmp r0, 0xB ble _0801A7FC b _0801AD5A _0801A7FC: ldr r1, _0801A824 movs r0, 0xFD strb r0, [r1] movs r0, 0x5 strb r0, [r1, 0x1] movs r0, 0x2 strb r0, [r1, 0x2] movs r0, 0xFF strb r0, [r1, 0x3] ldr r0, _0801A828 strb r7, [r0] ldr r1, _0801A82C ldr r3, _0801A830 adds r2, r1, r3 movs r0, 0x12 strb r0, [r2] ldr r4, _0801A834 adds r2, r1, r4 movs r0, 0x10 b _0801A94C .align 2, 0 _0801A824: .4byte 0x030041c0 _0801A828: .4byte 0x02024c0a _0801A82C: .4byte 0x02000000 _0801A830: .4byte 0x0001601e _0801A834: .4byte 0x000160a4 _0801A838: movs r0, 0x58 muls r0, r7 mov r1, r8 adds r5, r0, r1 ldrh r4, [r5, 0x28] ldrh r0, [r5, 0x2C] mov r1, r9 bl __divsi3 cmp r4, r0 ble _0801A850 b _0801AD5A _0801A850: cmp r6, 0 beq _0801A856 b _0801AD5A _0801A856: movs r0, 0x1B ldrsb r0, [r5, r0] cmp r0, 0xB ble _0801A860 b _0801AD5A _0801A860: ldr r1, _0801A888 movs r0, 0xFD strb r0, [r1] movs r0, 0x5 strb r0, [r1, 0x1] movs r0, 0x3 strb r0, [r1, 0x2] movs r0, 0xFF strb r0, [r1, 0x3] ldr r0, _0801A88C strb r7, [r0] ldr r1, _0801A890 ldr r3, _0801A894 adds r2, r1, r3 movs r0, 0x13 strb r0, [r2] ldr r4, _0801A898 adds r2, r1, r4 movs r0, 0x11 b _0801A94C .align 2, 0 _0801A888: .4byte 0x030041c0 _0801A88C: .4byte 0x02024c0a _0801A890: .4byte 0x02000000 _0801A894: .4byte 0x0001601e _0801A898: .4byte 0x000160a4 _0801A89C: movs r0, 0x58 muls r0, r7 mov r1, r8 adds r5, r0, r1 ldrh r4, [r5, 0x28] ldrh r0, [r5, 0x2C] mov r1, r9 bl __divsi3 cmp r4, r0 ble _0801A8B4 b _0801AD5A _0801A8B4: cmp r6, 0 beq _0801A8BA b _0801AD5A _0801A8BA: movs r0, 0x1C ldrsb r0, [r5, r0] cmp r0, 0xB ble _0801A8C4 b _0801AD5A _0801A8C4: ldr r1, _0801A8EC movs r0, 0xFD strb r0, [r1] movs r0, 0x5 strb r0, [r1, 0x1] movs r0, 0x4 strb r0, [r1, 0x2] movs r0, 0xFF strb r0, [r1, 0x3] ldr r0, _0801A8F0 strb r7, [r0] ldr r1, _0801A8F4 ldr r3, _0801A8F8 adds r2, r1, r3 movs r0, 0x14 strb r0, [r2] ldr r4, _0801A8FC adds r2, r1, r4 movs r0, 0x12 b _0801A94C .align 2, 0 _0801A8EC: .4byte 0x030041c0 _0801A8F0: .4byte 0x02024c0a _0801A8F4: .4byte 0x02000000 _0801A8F8: .4byte 0x0001601e _0801A8FC: .4byte 0x000160a4 _0801A900: movs r0, 0x58 muls r0, r7 mov r1, r8 adds r5, r0, r1 ldrh r4, [r5, 0x28] ldrh r0, [r5, 0x2C] mov r1, r9 bl __divsi3 cmp r4, r0 ble _0801A918 b _0801AD5A _0801A918: cmp r6, 0 beq _0801A91E b _0801AD5A _0801A91E: movs r0, 0x1D ldrsb r0, [r5, r0] cmp r0, 0xB ble _0801A928 b _0801AD5A _0801A928: ldr r1, _0801A960 movs r0, 0xFD strb r0, [r1] movs r0, 0x5 strb r0, [r1, 0x1] strb r0, [r1, 0x2] movs r0, 0xFF strb r0, [r1, 0x3] ldr r0, _0801A964 strb r7, [r0] ldr r1, _0801A968 ldr r3, _0801A96C adds r2, r1, r3 movs r0, 0x15 strb r0, [r2] ldr r4, _0801A970 adds r2, r1, r4 movs r0, 0x13 _0801A94C: strb r0, [r2] ldr r5, _0801A974 adds r1, r5 strb r6, [r1] ldr r0, _0801A978 bl b_call_bc_move_exec movs r0, 0x5 str r0, [sp, 0xC] b _0801AD62 .align 2, 0 _0801A960: .4byte 0x030041c0 _0801A964: .4byte 0x02024c0a _0801A968: .4byte 0x02000000 _0801A96C: .4byte 0x0001601e _0801A970: .4byte 0x000160a4 _0801A974: .4byte 0x000160a5 _0801A978: .4byte gUnknown_081D9AFE _0801A97C: movs r0, 0x58 adds r5, r7, 0 muls r5, r0 mov r1, r8 adds r0, r5, r1 ldrh r4, [r0, 0x28] ldrh r0, [r0, 0x2C] mov r1, r9 bl __divsi3 cmp r4, r0 ble _0801A996 b _0801AD5A _0801A996: cmp r6, 0 beq _0801A99C b _0801AD5A _0801A99C: mov r0, r8 adds r0, 0x50 adds r1, r5, r0 ldr r2, [r1] movs r3, 0x80 lsls r3, 13 adds r0, r2, 0 ands r0, r3 cmp r0, 0 beq _0801A9B2 b _0801AD5A _0801A9B2: orrs r2, r3 str r2, [r1] ldr r0, _0801A9C4 bl b_call_bc_move_exec movs r2, 0x2 str r2, [sp, 0xC] b _0801AD62 .align 2, 0 _0801A9C4: .4byte gUnknown_081D9B19 _0801A9C8: cmp r6, 0 beq _0801A9CE b _0801AD5A _0801A9CE: movs r0, 0x58 adds r5, r7, 0 muls r5, r0 mov r3, r8 adds r0, r5, r3 ldrh r4, [r0, 0x28] ldrh r0, [r0, 0x2C] mov r1, r9 bl __divsi3 cmp r4, r0 ble _0801A9E8 b _0801AD5A _0801A9E8: movs r4, 0 mov r10, r4 adds r0, r5, 0x1 mov r1, r8 adds r1, 0x18 adds r0, r1 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 cmp r0, 0xB ble _0801AA18 mov r0, r8 adds r0, 0x19 adds r1, r5, r0 _0801AA04: adds r1, 0x1 movs r5, 0x1 add r10, r5 mov r0, r10 cmp r0, 0x4 bgt _0801AA18 movs r0, 0 ldrsb r0, [r1, r0] cmp r0, 0xB bgt _0801AA04 _0801AA18: mov r1, r10 cmp r1, 0x5 bne _0801AA20 b _0801AD5A _0801AA20: movs r0, 0x58 muls r0, r7 adds r4, r0, 0x1 ldr r5, _0801AAA4 _0801AA28: bl Random lsls r0, 16 lsrs r0, 16 movs r1, 0x5 bl __umodsi3 lsls r0, 16 lsrs r0, 16 mov r10, r0 adds r0, r4 adds r0, r5 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 cmp r0, 0xC beq _0801AA28 ldr r1, _0801AAA8 movs r3, 0 movs r2, 0xFD strb r2, [r1] movs r0, 0x5 strb r0, [r1, 0x1] mov r0, r10 adds r0, 0x1 strb r0, [r1, 0x2] movs r0, 0xFF strb r0, [r1, 0x3] ldr r0, _0801AAAC strb r2, [r0] strb r3, [r0, 0x1] movs r1, 0xD1 strb r1, [r0, 0x2] strb r3, [r0, 0x3] strb r3, [r0, 0x4] movs r1, 0xD2 strb r1, [r0, 0x5] strb r3, [r0, 0x6] subs r1, 0xD3 strb r1, [r0, 0x7] ldr r0, _0801AAB0 strb r7, [r0] ldr r1, _0801AAB4 mov r2, r10 adds r2, 0x21 ldr r4, _0801AAB8 adds r0, r1, r4 strb r2, [r0] adds r2, 0x6 ldr r5, _0801AABC adds r0, r1, r5 strb r2, [r0] ldr r0, _0801AAC0 adds r1, r0 strb r3, [r1] ldr r0, _0801AAC4 bl b_call_bc_move_exec movs r1, 0x5 str r1, [sp, 0xC] b _0801AD62 .align 2, 0 _0801AAA4: .4byte 0x02024a98 _0801AAA8: .4byte 0x030041c0 _0801AAAC: .4byte 0x03004290 _0801AAB0: .4byte 0x02024c0a _0801AAB4: .4byte 0x02000000 _0801AAB8: .4byte 0x0001601e _0801AABC: .4byte 0x000160a4 _0801AAC0: .4byte 0x000160a5 _0801AAC4: .4byte gUnknown_081D9AFE _0801AAC8: movs r0, 0x58 adds r1, r7, 0 muls r1, r0 mov r0, r8 adds r0, 0x4C adds r1, r0 ldr r2, [r1] movs r0, 0x40 ands r0, r2 cmp r0, 0 bne _0801AAE0 b _0801AD5A _0801AAE0: movs r0, 0x41 negs r0, r0 ands r2, r0 str r2, [r1] ldr r0, _0801AAF4 bl b_call_bc_move_exec movs r2, 0x1 str r2, [sp, 0xC] b _0801AD62 .align 2, 0 _0801AAF4: .4byte gUnknown_081D99B6 _0801AAF8: movs r0, 0x58 adds r1, r7, 0 muls r1, r0 mov r0, r8 adds r0, 0x4C adds r1, r0 ldr r2, [r1] movs r0, 0x88 ands r0, r2 cmp r0, 0 bne _0801AB10 b _0801AD5A _0801AB10: ldr r0, _0801AB24 ands r2, r0 str r2, [r1] ldr r0, _0801AB28 bl b_call_bc_move_exec movs r3, 0x1 str r3, [sp, 0xC] b _0801AD62 .align 2, 0 _0801AB24: .4byte 0xfffff077 _0801AB28: .4byte gUnknown_081D99CE _0801AB2C: movs r0, 0x58 adds r1, r7, 0 muls r1, r0 mov r0, r8 adds r0, 0x4C adds r1, r0 ldr r2, [r1] movs r0, 0x10 ands r0, r2 cmp r0, 0 bne _0801AB44 b _0801AD5A _0801AB44: movs r0, 0x11 negs r0, r0 ands r2, r0 str r2, [r1] ldr r0, _0801AB58 bl b_call_bc_move_exec movs r4, 0x1 str r4, [sp, 0xC] b _0801AD62 .align 2, 0 _0801AB58: .4byte gUnknown_081D99E6 _0801AB5C: movs r0, 0x58 adds r1, r7, 0 muls r1, r0 mov r0, r8 adds r0, 0x4C adds r1, r0 ldr r2, [r1] movs r0, 0x20 ands r0, r2 cmp r0, 0 bne _0801AB74 b _0801AD5A _0801AB74: movs r0, 0x21 negs r0, r0 ands r2, r0 str r2, [r1] ldr r0, _0801AB80 b _0801AD0E .align 2, 0 _0801AB80: .4byte gUnknown_081D99FE _0801AB84: movs r0, 0x58 adds r3, r7, 0 muls r3, r0 mov r0, r8 adds r0, 0x4C adds r2, r3, r0 ldr r1, [r2] movs r0, 0x7 ands r0, r1 cmp r0, 0 bne _0801AB9C b _0801AD5A _0801AB9C: movs r0, 0x8 negs r0, r0 ands r1, r0 str r1, [r2] mov r1, r8 adds r1, 0x50 adds r1, r3, r1 ldr r0, [r1] ldr r2, _0801ABC0 ands r0, r2 str r0, [r1] ldr r0, _0801ABC4 bl b_call_bc_move_exec movs r0, 0x1 str r0, [sp, 0xC] b _0801AD62 .align 2, 0 _0801ABC0: .4byte 0xf7ffffff _0801ABC4: .4byte gUnknown_081D9A16 _0801ABC8: movs r0, 0x58 adds r1, r7, 0 muls r1, r0 mov r0, r8 adds r0, 0x50 adds r1, r0 ldr r2, [r1] movs r0, 0x7 ands r0, r2 cmp r0, 0 bne _0801ABE0 b _0801AD5A _0801ABE0: movs r0, 0x8 negs r0, r0 ands r2, r0 str r2, [r1] ldr r0, _0801ABF4 bl b_call_bc_move_exec movs r1, 0x2 str r1, [sp, 0xC] b _0801AD62 .align 2, 0 _0801ABF4: .4byte gUnknown_081D9A2E _0801ABF8: movs r0, 0x58 adds r5, r7, 0 muls r5, r0 mov r0, r8 adds r0, 0x4C adds r4, r5, r0 ldr r2, [r4] ldrb r0, [r4] cmp r0, 0 bne _0801AC1E mov r0, r8 adds r0, 0x50 adds r0, r5, r0 ldr r0, [r0] movs r1, 0x7 ands r0, r1 cmp r0, 0 bne _0801AC1E b _0801AD5A _0801AC1E: movs r3, 0 mov r10, r3 movs r0, 0x88 ands r2, r0 cmp r2, 0 beq _0801AC36 ldr r0, _0801ACC4 ldr r1, _0801ACC8 bl StringCopy movs r0, 0x1 mov r10, r0 _0801AC36: ldr r0, [r4] movs r1, 0x7 mov r9, r1 ands r0, r1 mov r6, r8 adds r6, 0x50 cmp r0, 0 beq _0801AC5C adds r2, r5, r6 ldr r0, [r2] ldr r1, _0801ACCC ands r0, r1 str r0, [r2] ldr r0, _0801ACC4 ldr r1, _0801ACD0 bl StringCopy movs r2, 0x1 add r10, r2 _0801AC5C: ldr r0, [r4] movs r1, 0x40 ands r0, r1 cmp r0, 0 beq _0801AC72 ldr r0, _0801ACC4 ldr r1, _0801ACD4 bl StringCopy movs r3, 0x1 add r10, r3 _0801AC72: ldr r0, [r4] movs r1, 0x10 ands r0, r1 cmp r0, 0 beq _0801AC88 ldr r0, _0801ACC4 ldr r1, _0801ACD8 bl StringCopy movs r0, 0x1 add r10, r0 _0801AC88: ldr r0, [r4] movs r1, 0x20 ands r0, r1 cmp r0, 0 beq _0801AC9E ldr r0, _0801ACC4 ldr r1, _0801ACDC bl StringCopy movs r1, 0x1 add r10, r1 _0801AC9E: adds r0, r5, r6 ldr r0, [r0] mov r2, r9 ands r0, r2 cmp r0, 0 beq _0801ACB6 ldr r0, _0801ACC4 ldr r1, _0801ACE0 bl StringCopy movs r3, 0x1 add r10, r3 _0801ACB6: mov r4, r10 cmp r4, 0x1 bgt _0801ACE8 ldr r1, _0801ACE4 movs r0, 0 b _0801ACEC .align 2, 0 _0801ACC4: .4byte 0x030041c0 _0801ACC8: .4byte gStatusConditionString_PoisonJpn _0801ACCC: .4byte 0xf7ffffff _0801ACD0: .4byte gStatusConditionString_SleepJpn _0801ACD4: .4byte gStatusConditionString_ParalysisJpn _0801ACD8: .4byte gStatusConditionString_BurnJpn _0801ACDC: .4byte gStatusConditionString_IceJpn _0801ACE0: .4byte gStatusConditionString_ConfusionJpn _0801ACE4: .4byte 0x02024d1e _0801ACE8: ldr r1, _0801AD18 movs r0, 0x1 _0801ACEC: strb r0, [r1, 0x5] ldr r2, _0801AD1C movs r0, 0x58 adds r3, r7, 0 muls r3, r0 adds r0, r2, 0 adds r0, 0x4C adds r0, r3, r0 movs r1, 0 str r1, [r0] adds r2, 0x50 adds r3, r2 ldr r0, [r3] subs r1, 0x8 ands r0, r1 str r0, [r3] ldr r0, _0801AD20 _0801AD0E: bl b_call_bc_move_exec movs r5, 0x1 str r5, [sp, 0xC] b _0801AD62 .align 2, 0 _0801AD18: .4byte 0x02024d1e _0801AD1C: .4byte 0x02024a80 _0801AD20: .4byte gUnknown_081D9A44 _0801AD24: movs r0, 0x58 adds r1, r7, 0 muls r1, r0 mov r0, r8 adds r0, 0x50 adds r1, r0 ldr r2, [r1] movs r0, 0xF0 lsls r0, 12 ands r0, r2 cmp r0, 0 beq _0801AD5A ldr r0, _0801AD84 ands r2, r0 str r2, [r1] ldr r0, _0801AD88 ldr r1, _0801AD8C bl StringCopy ldr r0, _0801AD90 bl b_call_bc_move_exec ldr r1, _0801AD94 movs r0, 0 strb r0, [r1, 0x5] movs r0, 0x2 str r0, [sp, 0xC] _0801AD5A: ldr r1, [sp, 0xC] cmp r1, 0 bne _0801AD62 b _0801B3CA _0801AD62: ldr r0, _0801AD98 ldr r2, _0801AD9C adds r0, r2 strb r7, [r0] ldr r0, _0801ADA0 strb r7, [r0] ldr r4, _0801ADA4 ldr r0, _0801ADA8 strb r7, [r0] strb r7, [r4] ldr r3, [sp, 0xC] cmp r3, 0x1 beq _0801ADAC cmp r3, 0x3 beq _0801ADB2 b _0801B3CA .align 2, 0 _0801AD84: .4byte 0xfff0ffff _0801AD88: .4byte 0x030041c0 _0801AD8C: .4byte gStatusConditionString_LoveJpn _0801AD90: .4byte gUnknown_081D9A44 _0801AD94: .4byte 0x02024d1e _0801AD98: .4byte 0x02000000 _0801AD9C: .4byte 0x00016003 _0801ADA0: .4byte 0x02024c0b _0801ADA4: .4byte 0x02024a60 _0801ADA8: .4byte 0x02024c07 _0801ADAC: movs r0, 0x58 muls r0, r7 b _0801B224 _0801ADB2: ldr r4, _0801AE00 movs r0, 0x58 adds r3, r7, 0 muls r3, r0 adds r0, r4, 0 adds r0, 0x50 adds r0, r3, r0 ldr r0, [r0] movs r1, 0x80 lsls r1, 14 ands r0, r1 cmp r0, 0 beq _0801ADCE b _0801B3CA _0801ADCE: ldr r1, _0801AE04 lsls r0, r7, 3 subs r0, r7 lsls r0, 2 adds r0, r1 ldrb r1, [r0, 0x18] lsrs r1, 4 ldr r2, _0801AE08 mov r5, r10 lsls r0, r5, 2 adds r0, r2 ldr r0, [r0] ands r1, r0 cmp r1, 0 beq _0801ADEE b _0801B3CA _0801ADEE: adds r1, r5, r3 adds r0, r4, 0 adds r0, 0x24 adds r1, r0 add r0, sp, 0x4 ldrb r0, [r0] strb r0, [r1] b _0801B3CA .align 2, 0 _0801AE00: .4byte 0x02024a80 _0801AE04: .4byte 0x02024ca8 _0801AE08: .4byte gUnknown_0820872C _0801AE0C: movs r7, 0 ldr r0, _0801AE3C ldrb r0, [r0] cmp r7, r0 bcc _0801AE18 b _0801B3CA _0801AE18: ldr r4, _0801AE40 ldr r1, _0801AE44 movs r0, 0x58 muls r0, r7 adds r0, r1 ldrh r0, [r0, 0x2E] strh r0, [r4] lsls r0, 16 lsrs r0, 16 cmp r0, 0xAF bne _0801AE4C ldr r1, _0801AE48 lsls r0, r7, 3 subs r0, r7 lsls r0, 2 adds r0, r1 ldrb r5, [r0, 0x7] b _0801AE5C .align 2, 0 _0801AE3C: .4byte 0x02024a68 _0801AE40: .4byte 0x02024c04 _0801AE44: .4byte 0x02024a80 _0801AE48: .4byte 0x02024df0 _0801AE4C: ldrh r0, [r4] bl itemid_get_x12 lsls r0, 24 lsrs r5, r0, 24 ldrh r0, [r4] bl itemid_get_quality _0801AE5C: subs r0, r5, 0x2 cmp r0, 0x1A bls _0801AE64 b _0801B208 _0801AE64: lsls r0, 2 ldr r1, _0801AE70 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0801AE70: .4byte _0801AE74 .align 2, 0 _0801AE74: .4byte _0801AEE0 .4byte _0801AFC8 .4byte _0801AF1C .4byte _0801AF58 .4byte _0801AF94 .4byte _0801B208 .4byte _0801B018 .4byte _0801B0AC .4byte _0801B208 .4byte _0801B208 .4byte _0801B208 .4byte _0801B208 .4byte _0801B208 .4byte _0801B208 .4byte _0801B208 .4byte _0801B208 .4byte _0801B208 .4byte _0801B208 .4byte _0801B208 .4byte _0801B208 .4byte _0801B208 .4byte _0801B1A0 .4byte _0801B208 .4byte _0801B208 .4byte _0801B208 .4byte _0801B208 .4byte _0801B054 _0801AEE0: ldr r1, _0801AF10 movs r0, 0x58 muls r0, r7 adds r1, 0x4C adds r2, r0, r1 ldr r1, [r2] movs r0, 0x40 ands r0, r1 cmp r0, 0 bne _0801AEF6 b _0801B208 _0801AEF6: movs r0, 0x41 negs r0, r0 ands r1, r0 str r1, [r2] bl b_movescr_stack_push_cursor ldr r1, _0801AF14 ldr r0, _0801AF18 str r0, [r1] movs r0, 0x1 str r0, [sp, 0xC] b _0801B20E .align 2, 0 _0801AF10: .4byte 0x02024a80 _0801AF14: .4byte 0x02024c10 _0801AF18: .4byte gUnknown_081D99BC _0801AF1C: ldr r1, _0801AF48 movs r0, 0x58 muls r0, r7 adds r1, 0x4C adds r2, r0, r1 ldr r1, [r2] movs r0, 0x88 ands r0, r1 cmp r0, 0 bne _0801AF32 b _0801B208 _0801AF32: ldr r0, _0801AF4C ands r1, r0 str r1, [r2] bl b_movescr_stack_push_cursor ldr r1, _0801AF50 ldr r0, _0801AF54 str r0, [r1] movs r1, 0x1 str r1, [sp, 0xC] b _0801B20E .align 2, 0 _0801AF48: .4byte 0x02024a80 _0801AF4C: .4byte 0xfffff077 _0801AF50: .4byte 0x02024c10 _0801AF54: .4byte gUnknown_081D99D4 _0801AF58: ldr r1, _0801AF88 movs r0, 0x58 muls r0, r7 adds r1, 0x4C adds r2, r0, r1 ldr r1, [r2] movs r0, 0x10 ands r0, r1 cmp r0, 0 bne _0801AF6E b _0801B208 _0801AF6E: movs r0, 0x11 negs r0, r0 ands r1, r0 str r1, [r2] bl b_movescr_stack_push_cursor ldr r1, _0801AF8C ldr r0, _0801AF90 str r0, [r1] movs r2, 0x1 str r2, [sp, 0xC] b _0801B20E .align 2, 0 _0801AF88: .4byte 0x02024a80 _0801AF8C: .4byte 0x02024c10 _0801AF90: .4byte gUnknown_081D99EC _0801AF94: ldr r1, _0801AFBC movs r0, 0x58 muls r0, r7 adds r1, 0x4C adds r2, r0, r1 ldr r1, [r2] movs r0, 0x20 ands r0, r1 cmp r0, 0 bne _0801AFAA b _0801B208 _0801AFAA: movs r0, 0x21 negs r0, r0 ands r1, r0 str r1, [r2] bl b_movescr_stack_push_cursor ldr r1, _0801AFC0 ldr r0, _0801AFC4 b _0801B168 .align 2, 0 _0801AFBC: .4byte 0x02024a80 _0801AFC0: .4byte 0x02024c10 _0801AFC4: .4byte gUnknown_081D9A04 _0801AFC8: ldr r2, _0801B008 movs r0, 0x58 adds r4, r7, 0 muls r4, r0 adds r0, r2, 0 adds r0, 0x4C adds r3, r4, r0 ldr r1, [r3] movs r0, 0x7 ands r0, r1 cmp r0, 0 bne _0801AFE2 b _0801B208 _0801AFE2: movs r0, 0x8 negs r0, r0 ands r1, r0 str r1, [r3] adds r2, 0x50 adds r2, r4, r2 ldr r0, [r2] ldr r1, _0801B00C ands r0, r1 str r0, [r2] bl b_movescr_stack_push_cursor ldr r1, _0801B010 ldr r0, _0801B014 str r0, [r1] movs r4, 0x1 str r4, [sp, 0xC] b _0801B20E .align 2, 0 _0801B008: .4byte 0x02024a80 _0801B00C: .4byte 0xf7ffffff _0801B010: .4byte 0x02024c10 _0801B014: .4byte gUnknown_081D9A1C _0801B018: ldr r1, _0801B048 movs r0, 0x58 muls r0, r7 adds r1, 0x50 adds r2, r0, r1 ldr r1, [r2] movs r0, 0x7 ands r0, r1 cmp r0, 0 bne _0801B02E b _0801B208 _0801B02E: movs r0, 0x8 negs r0, r0 ands r1, r0 str r1, [r2] bl b_movescr_stack_push_cursor ldr r1, _0801B04C ldr r0, _0801B050 str r0, [r1] movs r5, 0x2 str r5, [sp, 0xC] b _0801B20E .align 2, 0 _0801B048: .4byte 0x02024a80 _0801B04C: .4byte 0x02024c10 _0801B050: .4byte gUnknown_081D9A34 _0801B054: ldr r1, _0801B090 movs r0, 0x58 muls r0, r7 adds r1, 0x50 adds r2, r0, r1 ldr r1, [r2] movs r0, 0xF0 lsls r0, 12 ands r0, r1 cmp r0, 0 bne _0801B06C b _0801B208 _0801B06C: ldr r0, _0801B094 ands r1, r0 str r1, [r2] ldr r0, _0801B098 ldr r1, _0801B09C bl StringCopy bl b_movescr_stack_push_cursor ldr r1, _0801B0A0 movs r0, 0 strb r0, [r1, 0x5] ldr r1, _0801B0A4 ldr r0, _0801B0A8 str r0, [r1] movs r0, 0x2 str r0, [sp, 0xC] b _0801B20E .align 2, 0 _0801B090: .4byte 0x02024a80 _0801B094: .4byte 0xfff0ffff _0801B098: .4byte 0x030041c0 _0801B09C: .4byte gStatusConditionString_LoveJpn _0801B0A0: .4byte 0x02024d1e _0801B0A4: .4byte 0x02024c10 _0801B0A8: .4byte gUnknown_081D9A4A _0801B0AC: ldr r4, _0801B170 movs r0, 0x58 adds r5, r7, 0 muls r5, r0 adds r0, r4, 0 adds r0, 0x4C adds r6, r5, r0 ldr r2, [r6] ldrb r0, [r6] cmp r0, 0 bne _0801B0D4 adds r0, r4, 0 adds r0, 0x50 adds r0, r5, r0 ldr r0, [r0] movs r1, 0x7 ands r0, r1 cmp r0, 0 bne _0801B0D4 b _0801B208 _0801B0D4: movs r0, 0x88 ands r2, r0 cmp r2, 0 beq _0801B0E4 ldr r0, _0801B174 ldr r1, _0801B178 bl StringCopy _0801B0E4: ldr r0, [r6] movs r1, 0x7 mov r8, r1 ands r0, r1 adds r4, 0x50 cmp r0, 0 beq _0801B104 adds r2, r5, r4 ldr r0, [r2] ldr r1, _0801B17C ands r0, r1 str r0, [r2] ldr r0, _0801B174 ldr r1, _0801B180 bl StringCopy _0801B104: ldr r0, [r6] movs r1, 0x40 ands r0, r1 cmp r0, 0 beq _0801B116 ldr r0, _0801B174 ldr r1, _0801B184 bl StringCopy _0801B116: ldr r0, [r6] movs r1, 0x10 ands r0, r1 cmp r0, 0 beq _0801B128 ldr r0, _0801B174 ldr r1, _0801B188 bl StringCopy _0801B128: ldr r0, [r6] movs r1, 0x20 ands r0, r1 cmp r0, 0 beq _0801B13A ldr r0, _0801B174 ldr r1, _0801B18C bl StringCopy _0801B13A: adds r5, r4 ldr r0, [r5] mov r2, r8 ands r0, r2 cmp r0, 0 beq _0801B14E ldr r0, _0801B174 ldr r1, _0801B190 bl StringCopy _0801B14E: movs r4, 0 str r4, [r6] ldr r0, [r5] movs r1, 0x8 negs r1, r1 ands r0, r1 str r0, [r5] bl b_movescr_stack_push_cursor ldr r0, _0801B194 strb r4, [r0, 0x5] ldr r1, _0801B198 ldr r0, _0801B19C _0801B168: str r0, [r1] movs r3, 0x1 str r3, [sp, 0xC] b _0801B20E .align 2, 0 _0801B170: .4byte 0x02024a80 _0801B174: .4byte 0x030041c0 _0801B178: .4byte gStatusConditionString_PoisonJpn _0801B17C: .4byte 0xf7ffffff _0801B180: .4byte gStatusConditionString_SleepJpn _0801B184: .4byte gStatusConditionString_ParalysisJpn _0801B188: .4byte gStatusConditionString_BurnJpn _0801B18C: .4byte gStatusConditionString_IceJpn _0801B190: .4byte gStatusConditionString_ConfusionJpn _0801B194: .4byte 0x02024d1e _0801B198: .4byte 0x02024c10 _0801B19C: .4byte gUnknown_081D9A4A _0801B1A0: ldr r4, _0801B1F0 mov r8, r4 movs r0, 0x58 adds r1, r7, 0 muls r1, r0 mov r0, r8 adds r0, 0x18 adds r1, r0 movs r2, 0x6 movs r5, 0x7 mov r10, r5 _0801B1B6: movs r0, 0 ldrsb r0, [r1, r0] cmp r0, 0x5 bgt _0801B1C4 strb r2, [r1] movs r0, 0x5 str r0, [sp, 0xC] _0801B1C4: adds r1, 0x1 movs r3, 0x1 negs r3, r3 add r10, r3 mov r4, r10 cmp r4, 0 bge _0801B1B6 ldr r5, [sp, 0xC] cmp r5, 0 beq _0801B254 ldr r0, _0801B1F4 ldr r1, _0801B1F8 adds r0, r1 strb r7, [r0] ldr r0, _0801B1FC strb r7, [r0] bl b_movescr_stack_push_cursor ldr r1, _0801B200 ldr r0, _0801B204 str r0, [r1] b _0801B3CA .align 2, 0 _0801B1F0: .4byte 0x02024a80 _0801B1F4: .4byte 0x02000000 _0801B1F8: .4byte 0x00016003 _0801B1FC: .4byte 0x02024c0b _0801B200: .4byte 0x02024c10 _0801B204: .4byte gUnknown_081D9A64 _0801B208: ldr r2, [sp, 0xC] cmp r2, 0 beq _0801B254 _0801B20E: ldr r0, _0801B240 ldr r3, _0801B244 adds r0, r3 strb r7, [r0] ldr r0, _0801B248 strb r7, [r0] ldr r4, _0801B24C strb r7, [r4] ldrb r1, [r4] movs r0, 0x58 muls r0, r1 _0801B224: ldr r1, _0801B250 adds r0, r1 str r0, [sp] movs r0, 0 movs r1, 0x28 movs r2, 0 movs r3, 0x4 bl dp01_build_cmdbuf_x02_a_b_varargs ldrb r0, [r4] bl dp01_battle_side_mark_buffer_for_execution b _0801B3CA .align 2, 0 _0801B240: .4byte 0x02000000 _0801B244: .4byte 0x00016003 _0801B248: .4byte 0x02024c0b _0801B24C: .4byte 0x02024a60 _0801B250: .4byte 0x02024acc _0801B254: adds r0, r7, 0x1 lsls r0, 24 lsrs r7, r0, 24 ldr r0, _0801B268 ldrb r0, [r0] cmp r7, r0 bcs _0801B264 b _0801AE18 _0801B264: b _0801B3CA .align 2, 0 _0801B268: .4byte 0x02024a68 _0801B26C: ldr r7, _0801B284 ldr r0, [r7] cmp r0, 0 bne _0801B276 b _0801B3CA _0801B276: mov r4, r8 cmp r4, 0x1E beq _0801B288 cmp r4, 0x3E beq _0801B330 b _0801B3CA .align 2, 0 _0801B284: .4byte 0x02024bec _0801B288: ldr r0, _0801B314 ldrb r1, [r0] movs r0, 0x29 ands r0, r1 cmp r0, 0 beq _0801B296 b _0801B3CA _0801B296: ldr r2, _0801B318 ldr r4, _0801B31C ldrb r1, [r4] lsls r0, r1, 2 adds r0, r1 lsls r1, r0, 2 adds r0, r2, 0 adds r0, 0x8 adds r0, r1, r0 ldr r0, [r0] cmp r0, 0 bne _0801B2BC adds r0, r2, 0 adds r0, 0xC adds r0, r1, r0 ldr r0, [r0] cmp r0, 0 bne _0801B2BC b _0801B3CA _0801B2BC: bl Random lsls r0, 16 lsrs r0, 16 movs r1, 0x64 bl __umodsi3 lsls r0, 16 lsrs r0, 16 cmp r0, r9 bcs _0801B3CA ldr r2, _0801B320 ldr r0, _0801B324 ldrh r1, [r0] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r1, [r0, 0x8] movs r0, 0x20 ands r0, r1 cmp r0, 0 beq _0801B3CA ldr r2, _0801B328 ldrb r1, [r4] movs r0, 0x58 muls r0, r1 adds r0, r2 ldrh r0, [r0, 0x28] cmp r0, 0 beq _0801B3CA ldr r1, _0801B32C movs r0, 0x8 strb r0, [r1, 0x3] bl b_movescr_stack_push_cursor movs r0, 0 movs r1, 0 bl sub_801E3EC bl b_movescr_stack_pop_cursor b _0801B3CA .align 2, 0 _0801B314: .4byte 0x02024c68 _0801B318: .4byte 0x02024d68 _0801B31C: .4byte 0x02024c08 _0801B320: .4byte gBattleMoves _0801B324: .4byte 0x02024be6 _0801B328: .4byte 0x02024a80 _0801B32C: .4byte 0x02024d1e _0801B330: ldr r0, _0801B3DC ldrb r0, [r0] movs r4, 0x29 ands r4, r0 cmp r4, 0 bne _0801B3CA ldr r1, _0801B3E0 ldr r5, _0801B3E4 ldrb r2, [r5] lsls r0, r2, 2 adds r0, r2 lsls r0, 2 adds r6, r1, 0x4 adds r0, r6 ldr r1, [r0] cmp r1, 0 beq _0801B3CA ldr r0, _0801B3E8 cmp r1, r0 beq _0801B3CA ldr r0, _0801B3EC ldrb r3, [r0] cmp r3, r2 beq _0801B3CA ldr r2, _0801B3F0 ldrb r1, [r0] movs r0, 0x58 muls r0, r1 adds r0, r2 ldrh r1, [r0, 0x28] ldrh r0, [r0, 0x2C] cmp r1, r0 beq _0801B3CA cmp r1, 0 beq _0801B3CA ldr r0, _0801B3F4 mov r1, sp ldrh r1, [r1, 0x14] strh r1, [r0] ldr r0, _0801B3F8 strb r3, [r0] ldr r0, _0801B3FC ldr r2, _0801B400 adds r0, r2 strb r3, [r0] ldrb r1, [r5] lsls r0, r1, 2 adds r0, r1 lsls r0, 2 adds r0, r6 ldr r0, [r0] ldr r1, [sp, 0x10] bl __divsi3 negs r0, r0 str r0, [r7] ldrb r1, [r5] cmp r0, 0 bne _0801B3AC movs r0, 0x1 negs r0, r0 str r0, [r7] _0801B3AC: lsls r0, r1, 2 adds r0, r1 lsls r0, 2 adds r0, r6 str r4, [r0] bl b_movescr_stack_push_cursor ldr r1, _0801B404 ldr r0, _0801B408 str r0, [r1] ldr r0, [sp, 0xC] adds r0, 0x1 lsls r0, 24 lsrs r0, 24 str r0, [sp, 0xC] _0801B3CA: ldr r0, [sp, 0xC] add sp, 0x2C pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0801B3DC: .4byte 0x02024c68 _0801B3E0: .4byte 0x02024d68 _0801B3E4: .4byte 0x02024c08 _0801B3E8: .4byte 0x0000ffff _0801B3EC: .4byte 0x02024c07 _0801B3F0: .4byte 0x02024a80 _0801B3F4: .4byte 0x02024c04 _0801B3F8: .4byte 0x02024c0b _0801B3FC: .4byte 0x02000000 _0801B400: .4byte 0x00016003 _0801B404: .4byte 0x02024c10 _0801B408: .4byte gUnknown_081D9AA7 thumb_func_end sub_801A02C thumb_func_start unref_sub_801B40C unref_sub_801B40C: @ 801B40C push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x8 movs r0, 0 str r0, [sp] ldr r0, _0801B464 ldrh r1, [r0] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _0801B42A b _0801B56E _0801B42A: movs r1, 0x1 mov r9, r1 _0801B42E: movs r5, 0 ldr r4, _0801B468 ldr r2, [sp] adds r2, 0x1 str r2, [sp, 0x4] _0801B438: ldr r0, _0801B46C ldrb r2, [r0] ldr r3, _0801B470 lsls r0, r5, 2 adds r0, r3 ldr r0, [r0] ands r0, r2 cmp r0, 0 bne _0801B45A adds r0, r5, 0x2 lsls r1, r0, 2 adds r1, r3 ldr r1, [r1] ands r2, r1 adds r7, r0, 0 cmp r2, 0 beq _0801B474 _0801B45A: adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 b _0801B556 .align 2, 0 _0801B464: .4byte 0x020239f8 _0801B468: .4byte gUnknown_081FC1D0 _0801B46C: .4byte 0x02024c0c _0801B470: .4byte gUnknown_0820872C _0801B474: ldr r0, _0801B580 ldr r2, [sp] lsls r1, r2, 3 adds r6, r1, r0 ldr r4, _0801B584 lsls r0, r5, 1 adds r3, r0, r4 ldrh r2, [r6] mov r8, r1 mov r10, r0 ldrh r3, [r3] cmp r2, r3 bne _0801B4E4 lsls r0, r7, 1 adds r0, r4 ldrh r1, [r6, 0x2] ldrh r0, [r0] cmp r1, r0 bne _0801B4E4 adds r0, r5, 0 bl battle_get_per_side_status mov r2, r9 ands r2, r0 lsls r1, r2, 1 adds r1, r2 lsls r1, 2 ldr r0, _0801B588 adds r1, r0 lsls r0, r7, 4 orrs r0, r5 strb r0, [r1, 0x3] adds r0, r5, 0 bl battle_get_per_side_status mov r1, r9 ands r1, r0 lsls r0, r1, 1 adds r0, r1 lsls r0, 2 ldr r1, _0801B588 adds r0, r1 ldrh r1, [r6, 0x4] strh r1, [r0, 0x4] adds r0, r5, 0 bl battle_get_per_side_status mov r1, r9 ands r1, r0 lsls r1, 1 ldr r2, _0801B58C adds r1, r2 ldrh r0, [r1] movs r2, 0x4 orrs r0, r2 strh r0, [r1] _0801B4E4: ldr r0, _0801B580 mov r1, r8 adds r4, r1, r0 ldr r2, _0801B584 lsls r0, r7, 1 adds r0, r2 ldrh r1, [r4] ldrh r0, [r0] cmp r1, r0 bne _0801B54E mov r0, r10 adds r1, r0, r2 ldrh r0, [r4, 0x2] ldrh r1, [r1] cmp r0, r1 bne _0801B54E adds r0, r5, 0 bl battle_get_per_side_status mov r2, r9 ands r2, r0 lsls r1, r2, 1 adds r1, r2 lsls r1, 2 ldr r2, _0801B588 adds r1, r2 lsls r0, r5, 4 orrs r0, r7 strb r0, [r1, 0x3] adds r0, r5, 0 bl battle_get_per_side_status mov r1, r9 ands r1, r0 lsls r0, r1, 1 adds r0, r1 lsls r0, 2 ldr r1, _0801B588 adds r0, r1 ldrh r1, [r4, 0x4] strh r1, [r0, 0x4] adds r0, r5, 0 bl battle_get_per_side_status mov r1, r9 ands r1, r0 lsls r1, 1 ldr r2, _0801B58C adds r1, r2 ldrh r0, [r1] movs r2, 0x4 orrs r0, r2 strh r0, [r1] _0801B54E: adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 ldr r4, _0801B580 _0801B556: cmp r5, 0x1 bhi _0801B55C b _0801B438 _0801B55C: ldr r0, [sp, 0x4] str r0, [sp] lsls r0, 3 adds r0, r4 ldrh r1, [r0] ldr r0, _0801B590 cmp r1, r0 beq _0801B56E b _0801B42E _0801B56E: 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 _0801B580: .4byte gUnknown_081FC1D0 _0801B584: .4byte 0x02024c60 _0801B588: .4byte 0x02024c80 _0801B58C: .4byte 0x02024c7a _0801B590: .4byte 0x0000ffff thumb_func_end unref_sub_801B40C thumb_func_start sub_801B594 sub_801B594: @ 801B594 push {lr} ldr r0, _0801B5B4 ldr r0, [r0] cmp r0, 0 bne _0801B5B0 ldr r1, _0801B5B8 ldr r0, _0801B5BC ldr r0, [r0] ldrb r0, [r0] lsls r0, 2 adds r0, r1 ldr r0, [r0] bl _call_via_r0 _0801B5B0: pop {r0} bx r0 .align 2, 0 _0801B5B4: .4byte 0x02024a64 _0801B5B8: .4byte gUnknown_081FA73C _0801B5BC: .4byte 0x02024c10 thumb_func_end sub_801B594 thumb_func_start sub_801B5C0 sub_801B5C0: @ 801B5C0 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x4 lsls r0, 16 lsrs r7, r0, 16 lsls r1, 24 lsrs r0, r1, 24 movs r5, 0 cmp r0, 0 beq _0801B5DE subs r0, 0x1 lsls r0, 24 lsrs r6, r0, 24 b _0801B5EA _0801B5DE: ldr r1, _0801B5FC lsls r0, r7, 1 adds r0, r7 lsls r0, 2 adds r0, r1 ldrb r6, [r0, 0x6] _0801B5EA: cmp r6, 0x40 bls _0801B5F0 b _0801B900 _0801B5F0: lsls r0, r6, 2 ldr r1, _0801B600 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0801B5FC: .4byte gBattleMoves _0801B600: .4byte _0801B604 .align 2, 0 _0801B604: .4byte _0801B708 .4byte _0801B808 .4byte _0801B8FC .4byte _0801B900 .4byte _0801B820 .4byte _0801B900 .4byte _0801B900 .4byte _0801B900 .4byte _0801B808 .4byte _0801B900 .4byte _0801B900 .4byte _0801B900 .4byte _0801B900 .4byte _0801B900 .4byte _0801B900 .4byte _0801B900 .4byte _0801B8FC .4byte _0801B900 .4byte _0801B900 .4byte _0801B900 .4byte _0801B900 .4byte _0801B900 .4byte _0801B900 .4byte _0801B900 .4byte _0801B900 .4byte _0801B900 .4byte _0801B900 .4byte _0801B900 .4byte _0801B900 .4byte _0801B900 .4byte _0801B900 .4byte _0801B900 .4byte _0801B808 .4byte _0801B900 .4byte _0801B900 .4byte _0801B900 .4byte _0801B900 .4byte _0801B900 .4byte _0801B900 .4byte _0801B900 .4byte _0801B900 .4byte _0801B900 .4byte _0801B900 .4byte _0801B900 .4byte _0801B900 .4byte _0801B900 .4byte _0801B900 .4byte _0801B900 .4byte _0801B900 .4byte _0801B900 .4byte _0801B900 .4byte _0801B900 .4byte _0801B900 .4byte _0801B900 .4byte _0801B900 .4byte _0801B900 .4byte _0801B900 .4byte _0801B900 .4byte _0801B900 .4byte _0801B900 .4byte _0801B900 .4byte _0801B900 .4byte _0801B900 .4byte _0801B900 .4byte _0801B808 _0801B708: ldr r0, _0801B7E8 ldrb r0, [r0] bl battle_side_get_owner movs r1, 0x1 eors r0, r1 lsls r0, 24 lsrs r4, r0, 24 ldr r1, _0801B7EC lsls r0, r4, 1 adds r0, r4 lsls r0, 2 adds r2, r0, r1 ldrb r0, [r2, 0x8] cmp r0, 0 beq _0801B73A ldr r1, _0801B7F0 ldrb r4, [r2, 0x9] movs r0, 0x58 muls r0, r4 adds r0, r1 ldrh r0, [r0, 0x28] cmp r0, 0 beq _0801B73A b _0801B850 _0801B73A: ldr r0, _0801B7E8 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 lsrs r4, r0, 24 lsls r0, r7, 1 mov r8, r0 _0801B74A: bl Random lsls r0, 16 lsrs r0, 16 ldr r1, _0801B7F4 ldrb r1, [r1] bl __modsi3 lsls r0, 24 lsrs r5, r0, 24 ldr r6, _0801B7E8 ldrb r2, [r6] cmp r5, r2 beq _0801B74A adds r0, r5, 0 bl battle_side_get_owner lsls r0, 24 lsrs r0, 24 cmp r4, r0 beq _0801B74A ldr r0, _0801B7F8 ldrb r2, [r0] ldr r1, _0801B7FC lsls r0, r5, 2 adds r0, r1 ldr r0, [r0] ands r2, r0 cmp r2, 0 bne _0801B74A ldr r0, _0801B800 mov r3, r8 adds r1, r3, r7 lsls r1, 2 adds r1, r0 ldrb r0, [r1, 0x2] cmp r0, 0xD beq _0801B798 b _0801B900 _0801B798: ldrb r1, [r6] str r2, [sp] movs r0, 0x10 movs r2, 0x1F movs r3, 0 bl sub_8018324 lsls r0, 24 cmp r0, 0 bne _0801B7AE b _0801B900 _0801B7AE: ldr r2, _0801B7F0 movs r1, 0x58 adds r0, r5, 0 muls r0, r1 adds r0, r2 adds r0, 0x20 ldrb r0, [r0] cmp r0, 0x1F bne _0801B7C2 b _0801B900 _0801B7C2: movs r4, 0x2 eors r5, r4 adds r0, r5, 0 muls r0, r1 adds r0, r2 adds r0, 0x20 ldrb r1, [r0] adds r0, r5, 0 bl sub_81074C4 ldr r1, _0801B804 lsls r0, r5, 2 adds r0, r5 lsls r0, 2 adds r0, r1 ldrb r1, [r0] orrs r1, r4 strb r1, [r0] b _0801B900 .align 2, 0 _0801B7E8: .4byte 0x02024c07 _0801B7EC: .4byte 0x02024c80 _0801B7F0: .4byte 0x02024a80 _0801B7F4: .4byte 0x02024a68 _0801B7F8: .4byte 0x02024c0c _0801B7FC: .4byte gUnknown_0820872C _0801B800: .4byte gBattleMoves _0801B804: .4byte 0x02024d68 _0801B808: ldr r0, _0801B81C ldrb r0, [r0] bl battle_get_per_side_status adds r1, r0, 0 movs r2, 0x1 movs r0, 0x1 ands r0, r1 eors r0, r2 b _0801B8B2 .align 2, 0 _0801B81C: .4byte 0x02024c07 _0801B820: ldr r0, _0801B854 ldrb r0, [r0] bl battle_side_get_owner movs r1, 0x1 eors r0, r1 lsls r0, 24 lsrs r4, r0, 24 ldr r1, _0801B858 lsls r0, r4, 1 adds r0, r4 lsls r0, 2 adds r2, r0, r1 ldrb r0, [r2, 0x8] cmp r0, 0 beq _0801B860 ldr r1, _0801B85C ldrb r4, [r2, 0x9] movs r0, 0x58 muls r0, r4 adds r0, r1 ldrh r0, [r0, 0x28] cmp r0, 0 beq _0801B860 _0801B850: adds r5, r4, 0 b _0801B900 .align 2, 0 _0801B854: .4byte 0x02024c07 _0801B858: .4byte 0x02024c80 _0801B85C: .4byte 0x02024a80 _0801B860: ldr r0, _0801B894 ldrh r1, [r0] movs r4, 0x1 adds r0, r4, 0 ands r0, r1 cmp r0, 0 beq _0801B8DC movs r0, 0x4 ands r6, r0 cmp r6, 0 beq _0801B8DC ldr r0, _0801B898 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 bne _0801B8A0 bl Random adds r1, r4, 0 ands r1, r0 cmp r1, 0 beq _0801B89C movs r0, 0x1 b _0801B8B2 .align 2, 0 _0801B894: .4byte 0x020239f8 _0801B898: .4byte 0x02024c07 _0801B89C: movs r0, 0x3 b _0801B8B2 _0801B8A0: bl Random adds r1, r4, 0 ands r1, r0 cmp r1, 0 beq _0801B8B0 movs r0, 0 b _0801B8B2 _0801B8B0: movs r0, 0x2 _0801B8B2: bl battle_get_side_with_given_state lsls r0, 24 lsrs r5, r0, 24 ldr r0, _0801B8D4 ldrb r1, [r0] ldr r2, _0801B8D8 lsls r0, r5, 2 adds r0, r2 ldr r0, [r0] ands r1, r0 cmp r1, 0 beq _0801B900 movs r0, 0x2 eors r5, r0 b _0801B900 .align 2, 0 _0801B8D4: .4byte 0x02024c0c _0801B8D8: .4byte gUnknown_0820872C _0801B8DC: ldr r0, _0801B8F8 ldrb r0, [r0] bl battle_get_per_side_status adds r1, r0, 0 movs r2, 0x1 movs r0, 0x1 ands r0, r1 eors r0, r2 bl battle_get_side_with_given_state lsls r0, 24 lsrs r5, r0, 24 b _0801B900 .align 2, 0 _0801B8F8: .4byte 0x02024c07 _0801B8FC: ldr r0, _0801B91C ldrb r5, [r0] _0801B900: ldr r1, _0801B920 ldr r0, _0801B91C ldrb r0, [r0] ldr r2, _0801B924 adds r0, r2 adds r0, r1 strb r5, [r0] adds r0, r5, 0 add sp, 0x4 pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0801B91C: .4byte 0x02024c07 _0801B920: .4byte 0x02000000 _0801B924: .4byte 0x00016010 thumb_func_end sub_801B5C0 thumb_func_start sub_801B928 sub_801B928: @ 801B928 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x10 ldr r0, _0801B9E0 ldrh r1, [r0] movs r0, 0x2 ands r0, r1 cmp r0, 0 bne _0801B9DA ldr r7, _0801B9E4 ldrb r0, [r7] bl battle_side_get_owner lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _0801B9DA ldr r5, _0801B9E8 ldrb r0, [r7] movs r1, 0x58 mov r8, r1 mov r1, r8 muls r1, r0 adds r0, r5, 0 adds r0, 0x54 adds r0, r1, r0 ldr r0, [r0] adds r2, r5, 0 adds r2, 0x3C adds r1, r2 bl sub_8040AD0 lsls r0, 24 cmp r0, 0 beq _0801B9DA ldr r0, _0801B9EC bl FlagGet lsls r0, 24 cmp r0, 0 bne _0801B9DA movs r6, 0xA ldr r0, _0801B9F0 bl FlagGet lsls r0, 24 cmp r0, 0 beq _0801B98E movs r6, 0x1E _0801B98E: ldr r0, _0801B9F4 bl FlagGet lsls r0, 24 cmp r0, 0 beq _0801B99C movs r6, 0x32 _0801B99C: ldr r0, _0801B9F8 bl FlagGet lsls r0, 24 cmp r0, 0 beq _0801B9AA movs r6, 0x46 _0801B9AA: ldrb r0, [r7] mov r2, r8 muls r2, r0 adds r0, r2, 0 adds r0, r5 adds r0, 0x2A ldrb r0, [r0] cmp r0, r6 bls _0801B9DA bl Random movs r1, 0xFF ands r1, r0 ldrb r0, [r7] mov r2, r8 muls r2, r0 adds r0, r2, r5 adds r0, 0x2A ldrb r0, [r0] adds r0, r6 muls r0, r1 asrs r4, r0, 8 cmp r4, r6 bge _0801B9FC _0801B9DA: movs r0, 0 b _0801BC24 .align 2, 0 _0801B9E0: .4byte 0x020239f8 _0801B9E4: .4byte 0x02024c07 _0801B9E8: .4byte 0x02024a80 _0801B9EC: .4byte 0x0000080e _0801B9F0: .4byte 0x00000808 _0801B9F4: .4byte 0x0000080a _0801B9F8: .4byte 0x0000080c _0801B9FC: ldr r3, _0801BA3C ldrh r0, [r3] cmp r0, 0x63 bne _0801BA12 adds r0, r5, 0 adds r0, 0x50 adds r0, r2, r0 ldr r1, [r0] ldr r2, _0801BA40 ands r1, r2 str r1, [r0] _0801BA12: ldrb r0, [r7] mov r1, r8 muls r1, r0 adds r0, r1, 0 adds r1, r5, 0 adds r1, 0x4C adds r0, r1 ldr r0, [r0] movs r1, 0x7 ands r0, r1 cmp r0, 0 beq _0801BA4C ldrh r0, [r3] cmp r0, 0xAD beq _0801BA34 cmp r0, 0xD6 bne _0801BA4C _0801BA34: ldr r1, _0801BA44 ldr r0, _0801BA48 b _0801BBCE .align 2, 0 _0801BA3C: .4byte 0x02024be6 _0801BA40: .4byte 0xff7fffff _0801BA44: .4byte 0x02024c10 _0801BA48: .4byte gUnknown_081D995F _0801BA4C: bl Random movs r5, 0xFF adds r1, r5, 0 ands r1, r0 ldr r7, _0801BB04 ldr r2, _0801BB08 mov r9, r2 ldrb r3, [r2] movs r0, 0x58 mov r8, r0 mov r0, r8 muls r0, r3 adds r0, r7 adds r0, 0x2A ldrb r2, [r0] adds r0, r2, r6 muls r0, r1 asrs r4, r0, 8 cmp r4, r6 bge _0801BB3C ldr r7, _0801BB0C ldr r5, _0801BB10 ldrb r0, [r5] lsls r0, 2 adds r0, r7 ldrb r1, [r0] adds r0, r3, 0 movs r2, 0xFF bl sub_8015A98 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0xF bne _0801BA94 b _0801BBBE _0801BA94: adds r6, r5, 0 ldr r1, _0801BB14 mov r9, r1 movs r2, 0x3 mov r8, r2 _0801BA9E: bl Random mov r1, r8 ands r0, r1 mov r2, r9 strb r0, [r2] strb r0, [r6] ldrb r0, [r6] lsls r0, 2 adds r0, r7 ldr r5, [r0] ands r5, r4 cmp r5, 0 bne _0801BA9E ldr r4, _0801BB18 ldr r3, _0801BB04 ldr r0, _0801BB10 ldrb r0, [r0] lsls r0, 1 ldr r1, _0801BB08 ldrb r2, [r1] movs r1, 0x58 muls r1, r2 adds r0, r1 adds r3, 0xC adds r0, r3 ldrh r0, [r0] strh r0, [r4] ldr r0, _0801BB1C strb r5, [r0, 0x3] ldr r0, _0801BB20 movs r1, 0 strh r5, [r0] ldr r0, _0801BB24 ldr r2, _0801BB28 adds r0, r2 strb r1, [r0] ldr r1, _0801BB2C ldr r0, _0801BB30 str r0, [r1] ldrh r0, [r4] movs r1, 0 bl sub_801B5C0 ldr r1, _0801BB34 strb r0, [r1] ldr r2, _0801BB38 ldr r0, [r2] movs r1, 0x80 lsls r1, 14 b _0801BC1E .align 2, 0 _0801BB04: .4byte 0x02024a80 _0801BB08: .4byte 0x02024c07 _0801BB0C: .4byte gUnknown_0820872C _0801BB10: .4byte 0x02024be4 _0801BB14: .4byte 0x02024be5 _0801BB18: .4byte 0x02024bea _0801BB1C: .4byte 0x02024d1e _0801BB20: .4byte 0x02024dec _0801BB24: .4byte 0x02000000 _0801BB28: .4byte 0x0001601c _0801BB2C: .4byte 0x02024c10 _0801BB30: .4byte gUnknown_081D996F _0801BB34: .4byte 0x02024c08 _0801BB38: .4byte 0x02024c6c _0801BB3C: subs r0, r2, r6 lsls r0, 24 lsrs r6, r0, 24 bl Random adds r4, r5, 0 ands r4, r0 cmp r4, r6 bge _0801BBB8 mov r1, r9 ldrb r0, [r1] mov r1, r8 muls r1, r0 adds r0, r7, 0 adds r0, 0x4C adds r0, r1, r0 ldr r0, [r0] ands r0, r5 cmp r0, 0 bne _0801BBB8 adds r0, r1, r7 adds r0, 0x20 ldrb r0, [r0] cmp r0, 0x48 beq _0801BBB8 cmp r0, 0xF beq _0801BBB8 movs r2, 0 ldr r0, _0801BBAC ldrb r3, [r0] mov r8, r0 cmp r2, r3 bge _0801BB9E ldr r0, [r7, 0x50] movs r1, 0x70 ands r0, r1 cmp r0, 0 bne _0801BB9E adds r1, r7, 0 adds r1, 0x50 movs r5, 0x70 _0801BB8E: adds r1, 0x58 adds r2, 0x1 cmp r2, r3 bge _0801BB9E ldr r0, [r1] ands r0, r5 cmp r0, 0 beq _0801BB8E _0801BB9E: mov r0, r8 ldrb r0, [r0] cmp r2, r0 bne _0801BBB8 ldr r1, _0801BBB0 ldr r0, _0801BBB4 b _0801BBCE .align 2, 0 _0801BBAC: .4byte 0x02024a68 _0801BBB0: .4byte 0x02024c10 _0801BBB4: .4byte gUnknown_081D9989 _0801BBB8: subs r4, r6 cmp r4, r6 blt _0801BBE0 _0801BBBE: bl Random ldr r2, _0801BBD4 movs r1, 0x3 ands r1, r0 strb r1, [r2, 0x5] ldr r1, _0801BBD8 ldr r0, _0801BBDC _0801BBCE: str r0, [r1] movs r0, 0x1 b _0801BC24 .align 2, 0 _0801BBD4: .4byte 0x02024d1e _0801BBD8: .4byte 0x02024c10 _0801BBDC: .4byte gUnknown_081D9977 _0801BBE0: ldr r4, _0801BC34 ldrb r1, [r4] movs r0, 0x58 muls r1, r0 ldr r0, _0801BC38 adds r1, r0 movs r0, 0x28 str r0, [sp] movs r0, 0 str r0, [sp, 0x4] ldrb r0, [r4] str r0, [sp, 0x8] ldrb r0, [r4] str r0, [sp, 0xC] adds r0, r1, 0 movs r2, 0x1 movs r3, 0 bl sub_803BA2C ldr r1, _0801BC3C str r0, [r1] ldr r1, _0801BC40 ldrb r0, [r4] strb r0, [r1] ldr r1, _0801BC44 ldr r0, _0801BC48 str r0, [r1] ldr r2, _0801BC4C ldr r0, [r2] movs r1, 0x80 lsls r1, 12 _0801BC1E: orrs r0, r1 str r0, [r2] movs r0, 0x2 _0801BC24: add sp, 0x10 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0801BC34: .4byte 0x02024c07 _0801BC38: .4byte 0x02024a80 _0801BC3C: .4byte 0x02024bec _0801BC40: .4byte 0x02024c08 _0801BC44: .4byte 0x02024c10 _0801BC48: .4byte gUnknown_081D99A0 _0801BC4C: .4byte 0x02024c6c thumb_func_end sub_801B928 thumb_func_start atk00_attackcanceler atk00_attackcanceler: @ 801BC50 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x4 ldr r0, _0801BC6C ldrb r0, [r0] cmp r0, 0 beq _0801BC74 ldr r1, _0801BC70 movs r0, 0xC strb r0, [r1] b _0801BFF4 .align 2, 0 _0801BC6C: .4byte 0x02024d26 _0801BC70: .4byte 0x02024a7f _0801BC74: ldr r2, _0801BCA4 ldr r0, _0801BCA8 ldrb r1, [r0] movs r0, 0x58 muls r0, r1 adds r0, r2 ldrh r0, [r0, 0x28] cmp r0, 0 bne _0801BCB8 ldr r2, _0801BCAC ldr r1, [r2] movs r0, 0x80 lsls r0, 2 ands r0, r1 cmp r0, 0 bne _0801BCB8 movs r0, 0x80 lsls r0, 12 orrs r1, r0 str r1, [r2] ldr r1, _0801BCB0 ldr r0, _0801BCB4 b _0801BFF2 .align 2, 0 _0801BCA4: .4byte 0x02024a80 _0801BCA8: .4byte 0x02024c07 _0801BCAC: .4byte 0x02024c6c _0801BCB0: .4byte 0x02024c10 _0801BCB4: .4byte gUnknown_081D6F62 _0801BCB8: bl sub_8017718 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0 beq _0801BCC6 b _0801BFF4 _0801BCC6: ldr r0, _0801BD34 ldrb r1, [r0] str r2, [sp] movs r0, 0x2 movs r2, 0 movs r3, 0 bl sub_8018324 lsls r0, 24 cmp r0, 0 beq _0801BCDE b _0801BFF4 _0801BCDE: ldr r4, _0801BD38 ldr r0, _0801BD3C ldrb r1, [r0] ldr r3, _0801BD40 ldrb r2, [r3] movs r0, 0x58 muls r2, r0 adds r1, r2 adds r0, r4, 0 adds r0, 0x24 adds r1, r0 ldrb r0, [r1] ldr r5, _0801BD44 cmp r0, 0 bne _0801BD5C ldr r0, _0801BD48 ldrh r0, [r0] cmp r0, 0xA5 beq _0801BD5C ldr r0, [r5] ldr r1, _0801BD4C ands r0, r1 cmp r0, 0 bne _0801BD5C adds r0, r4, 0 adds r0, 0x50 adds r0, r2, r0 ldr r0, [r0] movs r1, 0x80 lsls r1, 5 ands r0, r1 cmp r0, 0 bne _0801BD5C ldr r1, _0801BD50 ldr r0, _0801BD54 str r0, [r1] ldr r2, _0801BD58 ldrb r0, [r2] movs r1, 0x1 orrs r0, r1 strb r0, [r2] b _0801BFF4 .align 2, 0 _0801BD34: .4byte 0x02024c08 _0801BD38: .4byte 0x02024a80 _0801BD3C: .4byte 0x02024be4 _0801BD40: .4byte 0x02024c07 _0801BD44: .4byte 0x02024c6c _0801BD48: .4byte 0x02024be6 _0801BD4C: .4byte 0x00800200 _0801BD50: .4byte 0x02024c10 _0801BD54: .4byte gUnknown_081D936D _0801BD58: .4byte 0x02024c68 _0801BD5C: ldr r0, [r5] ldr r1, _0801BDA0 ands r0, r1 str r0, [r5] movs r6, 0x80 lsls r6, 18 ands r0, r6 cmp r0, 0 bne _0801BDB4 ldrb r1, [r3] movs r0, 0x58 muls r0, r1 adds r1, r4, 0 adds r1, 0x50 adds r0, r1 ldr r0, [r0] movs r1, 0x80 lsls r1, 5 ands r0, r1 cmp r0, 0 bne _0801BDB4 bl sub_801B928 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0 beq _0801BDB4 cmp r2, 0x2 bne _0801BDA4 ldr r0, [r5] orrs r0, r6 str r0, [r5] b _0801BFF4 .align 2, 0 _0801BDA0: .4byte 0xff7fffff _0801BDA4: ldr r0, _0801BDB0 ldrb r1, [r0] movs r2, 0x1 orrs r1, r2 strb r1, [r0] b _0801BFF4 .align 2, 0 _0801BDB0: .4byte 0x02024c68 _0801BDB4: ldr r2, _0801BE18 ldr r0, [r2] movs r1, 0x80 lsls r1, 18 orrs r0, r1 str r0, [r2] ldr r2, _0801BE1C ldr r1, _0801BE20 ldrb r3, [r1] lsls r0, r3, 4 adds r0, r2 ldrb r0, [r0] lsls r0, 27 mov r8, r1 mov r9, r2 cmp r0, 0 bge _0801BE3C ldr r2, _0801BE24 ldr r0, _0801BE28 ldrh r1, [r0] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r1, [r0, 0x8] movs r0, 0x4 ands r0, r1 cmp r0, 0 beq _0801BE3C ldr r0, _0801BE2C ldrb r0, [r0] ldr r2, _0801BE30 adds r1, r3, 0 bl sub_80151D4 mov r0, r8 ldrb r1, [r0] lsls r1, 4 add r1, r9 ldrb r2, [r1] movs r0, 0x11 negs r0, r0 ands r0, r2 strb r0, [r1] bl b_movescr_stack_push_cursor ldr r1, _0801BE34 ldr r0, _0801BE38 b _0801BFF2 .align 2, 0 _0801BE18: .4byte 0x02024c6c _0801BE1C: .4byte 0x02024d28 _0801BE20: .4byte 0x02024c08 _0801BE24: .4byte gBattleMoves _0801BE28: .4byte 0x02024be6 _0801BE2C: .4byte 0x02024c07 _0801BE30: .4byte 0x00000115 _0801BE34: .4byte 0x02024c10 _0801BE38: .4byte gUnknown_081D946F _0801BE3C: movs r2, 0 ldr r0, _0801BEB8 ldrb r0, [r0] cmp r2, r0 bge _0801BE7E ldr r6, _0801BEBC ldr r1, _0801BEC0 mov r12, r1 adds r5, r0, 0 ldr r7, _0801BEC4 _0801BE50: adds r4, r2, r7 ldrb r3, [r4] lsls r0, r3, 4 adds r0, r6 ldrb r0, [r0] lsls r0, 26 cmp r0, 0 bge _0801BE78 ldr r0, _0801BEC8 ldrh r1, [r0] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 add r0, r12 ldrb r1, [r0, 0x8] movs r0, 0x8 ands r0, r1 cmp r0, 0 beq _0801BE78 b _0801BFA4 _0801BE78: adds r2, 0x1 cmp r2, r5 blt _0801BE50 _0801BE7E: ldr r0, _0801BECC mov r1, r8 ldrb r2, [r1] lsls r1, r2, 2 adds r1, r2 lsls r1, 2 adds r1, r0 ldrb r3, [r1] lsls r0, r3, 30 cmp r0, 0 bge _0801BEDC movs r0, 0x3 negs r0, r0 ands r0, r3 strb r0, [r1] ldr r4, _0801BED0 movs r0, 0x1F strb r0, [r4] bl b_movescr_stack_push_cursor ldr r1, _0801BED4 ldr r0, _0801BED8 str r0, [r1] mov r2, r8 ldrb r0, [r2] ldrb r1, [r4] bl sub_81074C4 b _0801BFF4 .align 2, 0 _0801BEB8: .4byte 0x02024a68 _0801BEBC: .4byte 0x02024d28 _0801BEC0: .4byte gBattleMoves _0801BEC4: .4byte 0x02024a7a _0801BEC8: .4byte 0x02024be6 _0801BECC: .4byte 0x02024d68 _0801BED0: .4byte 0x02024c06 _0801BED4: .4byte 0x02024c10 _0801BED8: .4byte gUnknown_081D9812 _0801BEDC: lsls r0, r2, 4 add r0, r9 ldrb r0, [r0] lsls r0, 31 cmp r0, 0 bne _0801BEEA b _0801BFEC _0801BEEA: ldr r1, _0801BF80 ldr r2, _0801BF84 ldrh r3, [r2] lsls r0, r3, 1 adds r0, r3 lsls r0, 2 adds r0, r1 ldrb r1, [r0, 0x8] movs r0, 0x2 ands r0, r1 adds r4, r2, 0 cmp r0, 0 beq _0801BFEC cmp r3, 0xAE bne _0801BF28 ldr r2, _0801BF88 ldr r0, _0801BF8C ldrb r1, [r0] movs r0, 0x58 muls r0, r1 adds r1, r0, r2 adds r0, r1, 0 adds r0, 0x21 ldrb r0, [r0] cmp r0, 0x7 beq _0801BF28 adds r0, r1, 0 adds r0, 0x22 ldrb r0, [r0] cmp r0, 0x7 bne _0801BFEC _0801BF28: ldrh r0, [r4] bl sub_8028350 lsls r0, 24 cmp r0, 0 beq _0801BF4E ldr r1, _0801BF88 ldr r0, _0801BF8C ldrb r2, [r0] movs r0, 0x58 muls r0, r2 adds r1, 0x50 adds r0, r1 ldr r0, [r0] movs r1, 0x80 lsls r1, 5 ands r0, r1 cmp r0, 0 beq _0801BFEC _0801BF4E: ldr r0, _0801BF8C ldrb r0, [r0] bl b_cancel_multi_turn_move_maybe ldr r2, _0801BF90 ldrb r0, [r2] movs r1, 0x1 orrs r0, r1 strb r0, [r2] ldr r1, _0801BF94 ldr r3, _0801BF98 ldrb r0, [r3] lsls r0, 1 adds r0, r1 movs r2, 0 strh r2, [r0] ldr r1, _0801BF9C ldrb r0, [r3] lsls r0, 1 adds r0, r1 strh r2, [r0] ldr r1, _0801BFA0 movs r0, 0x1 strb r0, [r1, 0x6] b _0801BFEC .align 2, 0 _0801BF80: .4byte gBattleMoves _0801BF84: .4byte 0x02024be6 _0801BF88: .4byte 0x02024a80 _0801BF8C: .4byte 0x02024c07 _0801BF90: .4byte 0x02024c68 _0801BF94: .4byte 0x02024c3c _0801BF98: .4byte 0x02024c08 _0801BF9C: .4byte 0x02024c44 _0801BFA0: .4byte 0x02024d1e _0801BFA4: ldr r0, _0801BFD4 ldrb r0, [r0] ldr r2, _0801BFD8 adds r1, r3, 0 bl sub_80151D4 ldrb r1, [r4] lsls r1, 4 adds r1, r6 ldrb r2, [r1] movs r0, 0x21 negs r0, r0 ands r0, r2 strb r0, [r1] ldr r0, _0801BFDC ldrb r1, [r4] ldr r2, _0801BFE0 adds r0, r2 strb r1, [r0] bl b_movescr_stack_push_cursor ldr r1, _0801BFE4 ldr r0, _0801BFE8 b _0801BFF2 .align 2, 0 _0801BFD4: .4byte 0x02024c07 _0801BFD8: .4byte 0x00000121 _0801BFDC: .4byte 0x02000000 _0801BFE0: .4byte 0x00016003 _0801BFE4: .4byte 0x02024c10 _0801BFE8: .4byte gUnknown_081D9487 _0801BFEC: ldr r1, _0801C004 ldr r0, [r1] adds r0, 0x1 _0801BFF2: str r0, [r1] _0801BFF4: add sp, 0x4 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0801C004: .4byte 0x02024c10 thumb_func_end atk00_attackcanceler thumb_func_start mcmd_jump_if_move_not_executed mcmd_jump_if_move_not_executed: @ 801C008 push {r4-r6,lr} sub sp, 0x4 lsls r0, 24 lsrs r0, 24 lsls r1, 16 lsrs r6, r1, 16 ldr r1, _0801C054 ldr r5, [r1] adds r4, r5, r0 ldr r0, _0801C058 ldrb r1, [r0] movs r0, 0x29 ands r0, r1 cmp r0, 0 beq _0801C068 ldr r1, _0801C05C ldr r3, _0801C060 ldrb r0, [r3] lsls r0, 1 adds r0, r1 movs r2, 0 strh r2, [r0] ldr r1, _0801C064 ldrb r0, [r3] lsls r0, 1 adds r0, r1 strh r2, [r0] ldrb r4, [r5, 0x1] ldrb r0, [r5, 0x2] lsls r0, 8 orrs r4, r0 ldrb r0, [r5, 0x3] lsls r0, 16 orrs r4, r0 ldrb r0, [r5, 0x4] lsls r0, 24 orrs r4, r0 b _0801C082 .align 2, 0 _0801C054: .4byte 0x02024c10 _0801C058: .4byte 0x02024c68 _0801C05C: .4byte 0x02024c3c _0801C060: .4byte 0x02024c08 _0801C064: .4byte 0x02024c44 _0801C068: bl b_feature_update_destiny_bond ldr r0, _0801C090 ldrb r1, [r0] str r6, [sp] movs r0, 0x3 movs r2, 0 movs r3, 0 bl sub_8018324 lsls r0, 24 cmp r0, 0 bne _0801C086 _0801C082: ldr r0, _0801C094 str r4, [r0] _0801C086: add sp, 0x4 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0801C090: .4byte 0x02024c08 _0801C094: .4byte 0x02024c10 thumb_func_end mcmd_jump_if_move_not_executed thumb_func_start atk40_801DBA0 atk40_801DBA0: @ 801C098 push {lr} ldr r1, _0801C0E0 ldr r0, _0801C0E4 ldrb r0, [r0] lsls r0, 4 adds r0, r1 ldrb r0, [r0] lsls r0, 31 cmp r0, 0 beq _0801C0F8 ldr r2, _0801C0E8 ldr r0, _0801C0EC ldrh r1, [r0] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r1, [r0, 0x8] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _0801C0F8 ldr r2, _0801C0F0 ldrb r0, [r2] movs r1, 0x1 orrs r0, r1 strb r0, [r2] movs r0, 0x5 movs r1, 0 bl mcmd_jump_if_move_not_executed ldr r1, _0801C0F4 movs r0, 0x1 strb r0, [r1, 0x6] b _0801C100 .align 2, 0 _0801C0E0: .4byte 0x02024d28 _0801C0E4: .4byte 0x02024c08 _0801C0E8: .4byte gBattleMoves _0801C0EC: .4byte 0x02024be6 _0801C0F0: .4byte 0x02024c68 _0801C0F4: .4byte 0x02024d1e _0801C0F8: ldr r1, _0801C104 ldr r0, [r1] adds r0, 0x5 str r0, [r1] _0801C100: pop {r0} bx r0 .align 2, 0 _0801C104: .4byte 0x02024c10 thumb_func_end atk40_801DBA0 thumb_func_start sub_801C108 sub_801C108: @ 801C108 push {r4,lr} lsls r0, 16 lsrs r3, r0, 16 movs r4, 0 ldr r1, _0801C15C ldr r0, _0801C160 ldrb r0, [r0] lsls r0, 4 adds r0, r1 ldrb r0, [r0] lsls r0, 31 cmp r0, 0 beq _0801C154 ldr r2, _0801C164 ldr r0, _0801C168 ldrh r1, [r0] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r1, [r0, 0x8] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _0801C154 ldr r2, _0801C16C ldrb r0, [r2] movs r1, 0x1 orrs r0, r1 strb r0, [r2] movs r0, 0x7 adds r1, r3, 0 bl mcmd_jump_if_move_not_executed ldr r1, _0801C170 movs r0, 0x1 strb r0, [r1, 0x6] movs r4, 0x1 _0801C154: adds r0, r4, 0 pop {r4} pop {r1} bx r1 .align 2, 0 _0801C15C: .4byte 0x02024d28 _0801C160: .4byte 0x02024c08 _0801C164: .4byte gBattleMoves _0801C168: .4byte 0x02024be6 _0801C16C: .4byte 0x02024c68 _0801C170: .4byte 0x02024d1e thumb_func_end sub_801C108 thumb_func_start sub_801C174 sub_801C174: @ 801C174 push {r4-r6,lr} sub sp, 0x4 lsls r0, 16 lsrs r5, r0, 16 ldr r2, _0801C1D4 ldr r3, _0801C1D8 ldrb r4, [r3] lsls r0, r4, 2 adds r0, r2 ldr r1, [r0] movs r0, 0x18 ands r1, r0 adds r6, r2, 0 cmp r1, 0 beq _0801C1A6 ldr r1, _0801C1DC lsls r0, r4, 3 subs r0, r4 lsls r0, 2 adds r0, r1 ldr r1, _0801C1E0 ldrb r0, [r0, 0x15] ldrb r1, [r1] cmp r0, r1 beq _0801C290 _0801C1A6: ldr r0, _0801C1E4 ldr r1, [r0] movs r2, 0x80 lsls r2, 9 ands r1, r2 adds r2, r0, 0 cmp r1, 0 bne _0801C1EC ldrb r0, [r3] lsls r0, 2 adds r0, r6 ldr r0, [r0] movs r1, 0x40 ands r0, r1 cmp r0, 0 beq _0801C1EC _0801C1C6: ldr r0, _0801C1E8 ldrb r1, [r0] movs r2, 0x1 orrs r1, r2 strb r1, [r0] b _0801C290 .align 2, 0 _0801C1D4: .4byte 0x02024c98 _0801C1D8: .4byte 0x02024c08 _0801C1DC: .4byte 0x02024ca8 _0801C1E0: .4byte 0x02024c07 _0801C1E4: .4byte 0x02024c6c _0801C1E8: .4byte 0x02024c68 _0801C1EC: ldr r0, [r2] ldr r1, _0801C29C ands r0, r1 str r0, [r2] movs r1, 0x80 lsls r1, 10 ands r0, r1 cmp r0, 0 bne _0801C20E ldrb r0, [r3] lsls r0, 2 adds r0, r6 ldr r0, [r0] movs r1, 0x80 ands r0, r1 cmp r0, 0 bne _0801C1C6 _0801C20E: ldr r0, [r2] ldr r1, _0801C2A0 ands r0, r1 str r0, [r2] movs r1, 0x80 lsls r1, 11 ands r0, r1 cmp r0, 0 bne _0801C22E ldrb r0, [r3] lsls r0, 2 adds r0, r6 ldr r0, [r0] ands r0, r1 cmp r0, 0 bne _0801C1C6 _0801C22E: ldr r0, [r2] ldr r1, _0801C2A4 ands r0, r1 str r0, [r2] movs r0, 0 str r0, [sp] movs r0, 0x13 movs r1, 0 movs r2, 0xD movs r3, 0 bl sub_8018324 lsls r0, 24 lsrs r0, 24 lsls r4, r5, 1 cmp r0, 0 bne _0801C27E str r0, [sp] movs r0, 0x13 movs r1, 0 movs r2, 0x4D movs r3, 0 bl sub_8018324 lsls r0, 24 cmp r0, 0 bne _0801C27E ldr r0, _0801C2A8 ldrh r1, [r0] movs r0, 0x7 ands r0, r1 cmp r0, 0 beq _0801C27E ldr r0, _0801C2AC adds r1, r4, r5 lsls r1, 2 adds r1, r0 ldrb r0, [r1] cmp r0, 0x98 beq _0801C290 _0801C27E: ldr r1, _0801C2AC adds r0, r4, r5 lsls r0, 2 adds r0, r1 ldrb r0, [r0] cmp r0, 0x11 beq _0801C290 cmp r0, 0x4E bne _0801C2B0 _0801C290: movs r0, 0x7 adds r1, r5, 0 bl mcmd_jump_if_move_not_executed movs r0, 0x1 b _0801C2B2 .align 2, 0 _0801C29C: .4byte 0xfffeffff _0801C2A0: .4byte 0xfffdffff _0801C2A4: .4byte 0xfffbffff _0801C2A8: .4byte 0x02024db8 _0801C2AC: .4byte gBattleMoves _0801C2B0: movs r0, 0 _0801C2B2: add sp, 0x4 pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_801C174 thumb_func_start atk01_accuracycheck atk01_accuracycheck: @ 801C2BC push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x8 ldr r0, _0801C314 ldr r5, [r0] ldrb r6, [r5, 0x5] ldrb r1, [r5, 0x6] lsls r1, 8 orrs r6, r1 adds r1, r6, 0x2 lsls r1, 16 lsrs r1, 16 adds r7, r0, 0 cmp r1, 0x1 bhi _0801C378 ldr r2, _0801C318 ldr r3, _0801C31C ldrb r4, [r3] lsls r0, r4, 2 adds r0, r2 ldr r1, [r0] movs r0, 0x18 ands r1, r0 cmp r1, 0 beq _0801C32C ldr r0, _0801C320 cmp r6, r0 bne _0801C32C ldr r1, _0801C324 lsls r0, r4, 3 subs r0, r4 lsls r0, 2 adds r0, r1 ldr r1, _0801C328 ldrb r0, [r0, 0x15] ldrb r1, [r1] cmp r0, r1 bne _0801C32C adds r0, r5, 0x7 str r0, [r7] b _0801C632 .align 2, 0 _0801C314: .4byte 0x02024c10 _0801C318: .4byte 0x02024c98 _0801C31C: .4byte 0x02024c08 _0801C320: .4byte 0x0000ffff _0801C324: .4byte 0x02024ca8 _0801C328: .4byte 0x02024c07 _0801C32C: ldrb r0, [r3] lsls r0, 2 adds r0, r2 ldr r0, [r0] ldr r1, _0801C358 ands r0, r1 cmp r0, 0 beq _0801C35C ldr r2, [r7] ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x4] lsls r0, 24 orrs r1, r0 str r1, [r7] b _0801C632 .align 2, 0 _0801C358: .4byte 0x000400c0 _0801C35C: movs r0, 0 bl sub_801C108 lsls r0, 24 cmp r0, 0 beq _0801C36A b _0801C632 _0801C36A: ldr r1, _0801C374 ldr r0, [r1] adds r0, 0x7 str r0, [r1] b _0801C632 .align 2, 0 _0801C374: .4byte 0x02024c10 _0801C378: cmp r6, 0 bne _0801C380 ldr r0, _0801C398 ldrh r6, [r0] _0801C380: ldr r0, _0801C39C ldr r1, _0801C3A0 adds r0, r1 ldrb r0, [r0] cmp r0, 0 beq _0801C3A4 movs r2, 0x3F mov r10, r2 mov r3, r10 ands r3, r0 mov r10, r3 b _0801C3B2 .align 2, 0 _0801C398: .4byte 0x02024be6 _0801C39C: .4byte 0x02000000 _0801C3A0: .4byte 0x0001601c _0801C3A4: ldr r1, _0801C3F8 lsls r0, r6, 1 adds r0, r6 lsls r0, 2 adds r0, r1 ldrb r0, [r0, 0x2] mov r10, r0 _0801C3B2: adds r0, r6, 0 bl sub_801C108 lsls r0, 24 cmp r0, 0 beq _0801C3C0 b _0801C632 _0801C3C0: adds r0, r6, 0 bl sub_801C174 lsls r0, 24 cmp r0, 0 beq _0801C3CE b _0801C632 _0801C3CE: ldr r3, _0801C3FC ldr r0, _0801C400 ldrb r0, [r0] movs r2, 0x58 adds r4, r0, 0 muls r4, r2 adds r0, r3, 0 adds r0, 0x50 adds r0, r4, r0 ldr r0, [r0] movs r1, 0x80 lsls r1, 22 ands r0, r1 cmp r0, 0 beq _0801C408 ldr r0, _0801C404 ldrb r0, [r0] muls r0, r2 adds r0, r3 ldrb r5, [r0, 0x1E] b _0801C41E .align 2, 0 _0801C3F8: .4byte gBattleMoves _0801C3FC: .4byte 0x02024a80 _0801C400: .4byte 0x02024c08 _0801C404: .4byte 0x02024c07 _0801C408: ldr r0, _0801C56C ldrb r0, [r0] muls r0, r2 adds r0, r3 ldrb r0, [r0, 0x1E] adds r0, 0x6 adds r1, r4, r3 ldrb r1, [r1, 0x1F] subs r0, r1 lsls r0, 24 lsrs r5, r0, 24 _0801C41E: lsls r0, r5, 24 cmp r0, 0 bge _0801C426 movs r5, 0 _0801C426: lsls r0, r5, 24 asrs r0, 24 cmp r0, 0xC ble _0801C430 movs r5, 0xC _0801C430: ldr r1, _0801C570 lsls r4, r6, 1 adds r0, r4, r6 lsls r0, 2 adds r7, r0, r1 ldrb r0, [r7, 0x3] mov r8, r0 movs r0, 0 str r0, [sp] movs r0, 0x13 movs r1, 0 movs r2, 0xD movs r3, 0 bl sub_8018324 lsls r0, 24 lsrs r0, 24 str r4, [sp, 0x4] cmp r0, 0 bne _0801C482 str r0, [sp] movs r0, 0x13 movs r1, 0 movs r2, 0x4D movs r3, 0 bl sub_8018324 lsls r0, 24 cmp r0, 0 bne _0801C482 ldr r0, _0801C574 ldrh r1, [r0] movs r0, 0x60 ands r0, r1 cmp r0, 0 beq _0801C482 ldrb r0, [r7] cmp r0, 0x98 bne _0801C482 movs r1, 0x32 mov r8, r1 _0801C482: ldr r1, _0801C578 lsls r0, r5, 24 asrs r0, 22 adds r0, r1 ldrb r1, [r0] mov r4, r8 muls r4, r1 ldrb r1, [r0, 0x1] adds r0, r4, 0 bl __divsi3 lsls r0, 16 lsrs r4, r0, 16 ldr r7, _0801C57C ldr r0, _0801C56C ldrb r0, [r0] movs r5, 0x58 muls r0, r5 adds r0, r7 adds r0, 0x20 ldrb r0, [r0] cmp r0, 0xE bne _0801C4C0 lsls r0, r4, 6 adds r0, r4 lsls r0, 1 movs r1, 0x64 bl __divsi3 lsls r0, 16 lsrs r4, r0, 16 _0801C4C0: movs r0, 0 str r0, [sp] movs r0, 0x13 movs r1, 0 movs r2, 0xD movs r3, 0 bl sub_8018324 lsls r0, 24 lsrs r0, 24 cmp r0, 0 bne _0801C518 str r0, [sp] movs r0, 0x13 movs r1, 0 movs r2, 0x4D movs r3, 0 bl sub_8018324 lsls r0, 24 cmp r0, 0 bne _0801C518 ldr r0, _0801C580 ldrb r0, [r0] muls r0, r5 adds r0, r7 adds r0, 0x20 ldrb r0, [r0] cmp r0, 0x8 bne _0801C518 ldr r0, _0801C574 ldrh r1, [r0] movs r0, 0x18 ands r0, r1 cmp r0, 0 beq _0801C518 lsls r0, r4, 2 adds r0, r4 lsls r0, 4 movs r1, 0x64 bl __divsi3 lsls r0, 16 lsrs r4, r0, 16 _0801C518: ldr r2, _0801C57C ldr r0, _0801C56C ldrb r1, [r0] movs r0, 0x58 muls r0, r1 adds r0, r2 adds r0, 0x20 ldrb r0, [r0] mov r9, r2 cmp r0, 0x37 bne _0801C544 mov r2, r10 cmp r2, 0x8 bhi _0801C544 lsls r0, r4, 2 adds r0, r4 lsls r0, 4 movs r1, 0x64 bl __divsi3 lsls r0, 16 lsrs r4, r0, 16 _0801C544: ldr r3, _0801C580 mov r8, r3 ldrb r2, [r3] movs r7, 0x58 adds r0, r2, 0 muls r0, r7 mov r3, r9 adds r1, r0, r3 ldrh r0, [r1, 0x2E] cmp r0, 0xAF bne _0801C588 ldr r1, _0801C584 lsls r0, r2, 3 subs r0, r2 lsls r0, 2 adds r0, r1 ldrb r5, [r0, 0x7] ldrb r2, [r0, 0x1A] b _0801C5A4 .align 2, 0 _0801C56C: .4byte 0x02024c07 _0801C570: .4byte gBattleMoves _0801C574: .4byte 0x02024db8 _0801C578: .4byte gUnknown_081FAB1C _0801C57C: .4byte 0x02024a80 _0801C580: .4byte 0x02024c08 _0801C584: .4byte 0x02024df0 _0801C588: ldrh r0, [r1, 0x2E] bl itemid_get_x12 lsls r0, 24 lsrs r5, r0, 24 mov r1, r8 ldrb r0, [r1] muls r0, r7 add r0, r9 ldrh r0, [r0, 0x2E] bl itemid_get_quality lsls r0, 24 lsrs r2, r0, 24 _0801C5A4: ldr r0, _0801C608 ldr r1, _0801C60C ldrb r1, [r1] strb r1, [r0] cmp r5, 0x16 bne _0801C5C0 movs r0, 0x64 subs r0, r2 muls r0, r4 movs r1, 0x64 bl __divsi3 lsls r0, 16 lsrs r4, r0, 16 _0801C5C0: bl Random lsls r0, 16 lsrs r0, 16 movs r1, 0x64 bl __umodsi3 lsls r0, 16 lsrs r0, 16 adds r0, 0x1 cmp r0, r4 ble _0801C62A ldr r2, _0801C610 ldrb r0, [r2] movs r1, 0x1 orrs r0, r1 strb r0, [r2] ldr r0, _0801C614 ldrh r1, [r0] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _0801C620 ldr r1, _0801C618 ldr r2, [sp, 0x4] adds r0, r2, r6 lsls r0, 2 adds r0, r1 ldrb r0, [r0, 0x6] cmp r0, 0x8 beq _0801C602 cmp r0, 0x20 bne _0801C620 _0801C602: ldr r1, _0801C61C movs r0, 0x2 b _0801C624 .align 2, 0 _0801C608: .4byte 0x02024c0b _0801C60C: .4byte 0x02024c08 _0801C610: .4byte 0x02024c68 _0801C614: .4byte 0x020239f8 _0801C618: .4byte gBattleMoves _0801C61C: .4byte 0x02024d1e _0801C620: ldr r1, _0801C644 movs r0, 0 _0801C624: strb r0, [r1, 0x6] bl b_wonderguard_and_levitate _0801C62A: movs r0, 0x7 adds r1, r6, 0 bl mcmd_jump_if_move_not_executed _0801C632: 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 _0801C644: .4byte 0x02024d1e thumb_func_end atk01_accuracycheck thumb_func_start atk02_attackstring atk02_attackstring: @ 801C648 push {r4,r5,lr} ldr r0, _0801C688 ldr r5, [r0] cmp r5, 0 bne _0801C680 ldr r4, _0801C68C ldr r0, [r4] movs r1, 0xC0 lsls r1, 3 ands r0, r1 cmp r0, 0 bne _0801C674 ldr r0, _0801C690 ldrb r1, [r0] movs r0, 0x4 bl b_std_message ldr r0, [r4] movs r1, 0x80 lsls r1, 3 orrs r0, r1 str r0, [r4] _0801C674: ldr r0, _0801C694 ldr r1, [r0] adds r1, 0x1 str r1, [r0] ldr r0, _0801C698 strb r5, [r0, 0x7] _0801C680: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0801C688: .4byte 0x02024a64 _0801C68C: .4byte 0x02024c6c _0801C690: .4byte 0x02024c07 _0801C694: .4byte 0x02024c10 _0801C698: .4byte 0x02024d1e thumb_func_end atk02_attackstring thumb_func_start atk03_ppreduce atk03_ppreduce: @ 801C69C push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x4 movs r6, 0x1 ldr r0, _0801C6EC ldr r0, [r0] cmp r0, 0 beq _0801C6B4 b _0801C84E _0801C6B4: ldr r1, _0801C6F0 ldr r2, _0801C6F4 ldrb r3, [r2] lsls r0, r3, 2 adds r0, r3 lsls r0, 2 adds r0, r1 ldrb r0, [r0] lsls r0, 26 lsrs r4, r0, 31 mov r9, r2 cmp r4, 0 bne _0801C756 ldr r2, _0801C6F8 ldr r0, _0801C6FC ldrh r1, [r0] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r0, [r0, 0x6] cmp r0, 0x20 beq _0801C706 cmp r0, 0x20 bgt _0801C700 cmp r0, 0x8 beq _0801C71C b _0801C736 .align 2, 0 _0801C6EC: .4byte 0x02024a64 _0801C6F0: .4byte 0x02024d68 _0801C6F4: .4byte 0x02024c07 _0801C6F8: .4byte gBattleMoves _0801C6FC: .4byte 0x02024be6 _0801C700: cmp r0, 0x40 beq _0801C71C b _0801C736 _0801C706: str r4, [sp] movs r0, 0x12 adds r1, r3, 0 movs r2, 0x2E movs r3, 0 bl sub_8018324 lsls r0, 24 lsrs r0, 24 adds r6, r0, 0x1 b _0801C756 _0801C71C: mov r0, r9 ldrb r1, [r0] movs r0, 0 str r0, [sp] movs r0, 0x10 movs r2, 0x2E movs r3, 0 bl sub_8018324 lsls r0, 24 lsrs r0, 24 adds r6, r0 b _0801C756 _0801C736: ldr r1, _0801C7B8 mov r2, r9 ldrb r0, [r2] ldrb r7, [r1] cmp r0, r7 beq _0801C756 ldr r2, _0801C7BC ldrb r1, [r1] movs r0, 0x58 muls r0, r1 adds r0, r2 adds r0, 0x20 ldrb r0, [r0] cmp r0, 0x2E bne _0801C756 adds r6, 0x1 _0801C756: ldr r0, _0801C7C0 ldr r4, [r0] movs r0, 0xA0 lsls r0, 4 ands r4, r0 cmp r4, 0 bne _0801C83C ldr r2, _0801C7BC ldr r3, _0801C7C4 ldr r1, _0801C7C8 ldrb r5, [r1] movs r0, 0x58 mov r8, r0 mov r0, r8 muls r0, r5 ldrb r7, [r3] adds r0, r7 movs r7, 0x24 adds r7, r2 mov r12, r7 add r0, r12 ldrb r0, [r0] mov r9, r1 mov r10, r2 adds r7, r3, 0 cmp r0, 0 beq _0801C83C ldr r0, _0801C7CC lsls r1, r5, 4 adds r1, r0 ldrb r0, [r1, 0x2] movs r2, 0x8 orrs r0, r2 strb r0, [r1, 0x2] mov r1, r9 ldrb r0, [r1] mov r2, r8 muls r2, r0 adds r0, r2, 0 ldrb r1, [r7] adds r0, r1 mov r1, r12 adds r2, r0, r1 ldrb r0, [r2] cmp r0, r6 ble _0801C7D0 subs r0, r6 strb r0, [r2] b _0801C7D2 .align 2, 0 _0801C7B8: .4byte 0x02024c08 _0801C7BC: .4byte 0x02024a80 _0801C7C0: .4byte 0x02024c6c _0801C7C4: .4byte 0x02024be4 _0801C7C8: .4byte 0x02024c07 _0801C7CC: .4byte 0x02024d28 _0801C7D0: strb r4, [r2] _0801C7D2: mov r2, r9 ldrb r3, [r2] movs r4, 0x58 adds r0, r3, 0 muls r0, r4 mov r1, r10 adds r1, 0x50 adds r0, r1 ldr r0, [r0] movs r1, 0x80 lsls r1, 14 ands r0, r1 cmp r0, 0 bne _0801C83C ldr r1, _0801C860 lsls r0, r3, 3 subs r0, r3 lsls r0, 2 adds r0, r1 ldrb r1, [r0, 0x18] lsrs r1, 4 ldr r2, _0801C864 ldrb r0, [r7] lsls r0, 2 adds r0, r2 ldr r0, [r0] ands r1, r0 cmp r1, 0 bne _0801C83C ldr r0, _0801C868 strb r3, [r0] ldrb r1, [r7] adds r1, 0x9 lsls r1, 24 lsrs r1, 24 mov r2, r9 ldrb r0, [r2] muls r0, r4 mov r2, r10 adds r2, 0x24 adds r0, r2 ldrb r7, [r7] adds r0, r7 str r0, [sp] movs r0, 0 movs r2, 0 movs r3, 0x1 bl dp01_build_cmdbuf_x02_a_b_varargs mov r7, r9 ldrb r0, [r7] bl dp01_battle_side_mark_buffer_for_execution _0801C83C: ldr r2, _0801C86C ldr r0, [r2] ldr r1, _0801C870 ands r0, r1 str r0, [r2] ldr r1, _0801C874 ldr r0, [r1] adds r0, 0x1 str r0, [r1] _0801C84E: 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 _0801C860: .4byte 0x02024ca8 _0801C864: .4byte gUnknown_0820872C _0801C868: .4byte 0x02024a60 _0801C86C: .4byte 0x02024c6c _0801C870: .4byte 0xfffff7ff _0801C874: .4byte 0x02024c10 thumb_func_end atk03_ppreduce thumb_func_start atk04_critcalc atk04_critcalc: @ 801C878 push {r4-r7,lr} ldr r1, _0801C89C ldr r0, _0801C8A0 ldrb r2, [r0] movs r0, 0x58 muls r0, r2 adds r0, r1 ldrh r0, [r0, 0x2E] cmp r0, 0xAF bne _0801C8A8 ldr r1, _0801C8A4 lsls r0, r2, 3 subs r0, r2 lsls r0, 2 adds r0, r1 ldrb r6, [r0, 0x7] b _0801C8B0 .align 2, 0 _0801C89C: .4byte 0x02024a80 _0801C8A0: .4byte 0x02024c07 _0801C8A4: .4byte 0x02024df0 _0801C8A8: bl itemid_get_x12 lsls r0, 24 lsrs r6, r0, 24 _0801C8B0: ldr r1, _0801C93C ldr r3, _0801C940 ldrb r0, [r3] strb r0, [r1] ldr r4, _0801C944 ldrb r1, [r3] movs r0, 0x58 adds r7, r1, 0 muls r7, r0 adds r0, r4, 0 adds r0, 0x50 adds r0, r7, r0 ldr r0, [r0] movs r1, 0x80 lsls r1, 13 ands r0, r1 negs r0, r0 asrs r5, r0, 31 movs r0, 0x2 ands r5, r0 ldr r2, _0801C948 ldr r0, _0801C94C ldrh r1, [r0] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r1, [r0] mov r12, r3 cmp r1, 0x2B bne _0801C8F0 adds r5, 0x1 _0801C8F0: adds r0, r5, 0 cmp r1, 0x4B bne _0801C8F8 adds r0, 0x1 _0801C8F8: cmp r1, 0xC8 bne _0801C8FE adds r0, 0x1 _0801C8FE: adds r2, r0, 0 cmp r1, 0xD1 bne _0801C906 adds r2, 0x1 _0801C906: movs r1, 0 cmp r6, 0x3F bne _0801C916 adds r0, r7, r4 ldrh r0, [r0] cmp r0, 0x71 bne _0801C916 movs r1, 0x1 _0801C916: lsls r5, r1, 1 movs r3, 0 cmp r6, 0x42 bne _0801C930 mov r0, r12 ldrb r1, [r0] movs r0, 0x58 muls r0, r1 adds r0, r4 ldrh r0, [r0] cmp r0, 0x53 bne _0801C930 movs r3, 0x1 _0801C930: lsls r1, r3, 1 cmp r6, 0x29 bne _0801C950 adds r0, r5, 0x1 adds r0, r2, r0 b _0801C952 .align 2, 0 _0801C93C: .4byte 0x02024c0b _0801C940: .4byte 0x02024c07 _0801C944: .4byte 0x02024a80 _0801C948: .4byte gBattleMoves _0801C94C: .4byte 0x02024be6 _0801C950: adds r0, r2, r5 _0801C952: adds r0, r1 lsls r0, 16 lsrs r0, 16 adds r5, r0, 0 cmp r5, 0x4 bls _0801C960 movs r5, 0x4 _0801C960: ldr r0, _0801C9BC ldrb r1, [r0] movs r0, 0x58 muls r0, r1 adds r0, r4 adds r0, 0x20 ldrb r4, [r0] cmp r4, 0x4 beq _0801C9D0 cmp r4, 0x4B beq _0801C9D0 ldr r1, _0801C9C0 mov r2, r12 ldrb r0, [r2] lsls r0, 2 adds r0, r1 ldr r0, [r0] movs r1, 0x80 lsls r1, 8 ands r0, r1 cmp r0, 0 bne _0801C9D0 ldr r0, _0801C9C4 ldrh r1, [r0] movs r0, 0x84 lsls r0, 2 ands r0, r1 cmp r0, 0 bne _0801C9D0 bl Random ldr r2, _0801C9C8 lsls r1, r5, 1 adds r1, r2 lsls r0, 16 lsrs r0, 16 ldrh r1, [r1] bl __umodsi3 lsls r0, 16 cmp r0, 0 bne _0801C9D0 ldr r1, _0801C9CC movs r0, 0x2 b _0801C9D4 .align 2, 0 _0801C9BC: .4byte 0x02024c08 _0801C9C0: .4byte 0x02024c98 _0801C9C4: .4byte 0x020239f8 _0801C9C8: .4byte gUnknown_081FAB50 _0801C9CC: .4byte 0x02024c0d _0801C9D0: ldr r1, _0801C9E4 movs r0, 0x1 _0801C9D4: strb r0, [r1] ldr r1, _0801C9E8 ldr r0, [r1] adds r0, 0x1 str r0, [r1] pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0801C9E4: .4byte 0x02024c0d _0801C9E8: .4byte 0x02024c10 thumb_func_end atk04_critcalc thumb_func_start atk05_cmd5 atk05_cmd5: @ 801C9EC push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x10 ldr r4, _0801CABC ldr r6, _0801CAC0 ldrb r0, [r6] bl battle_get_per_side_status movs r1, 0x1 ands r1, r0 lsls r1, 1 adds r1, r4 ldrh r3, [r1] ldr r0, _0801CAC4 mov r8, r0 ldrb r0, [r0] movs r4, 0x58 muls r0, r4 ldr r2, _0801CAC8 adds r0, r2 ldrb r1, [r6] muls r1, r4 adds r1, r2 ldr r2, _0801CACC mov r9, r2 ldrh r2, [r2] ldr r4, _0801CAD0 ldrh r4, [r4] str r4, [sp] ldr r5, _0801CAD4 ldr r7, _0801CAD8 adds r4, r5, r7 ldrb r4, [r4] str r4, [sp, 0x4] mov r7, r8 ldrb r4, [r7] str r4, [sp, 0x8] ldrb r4, [r6] str r4, [sp, 0xC] bl sub_803BA2C ldr r4, _0801CADC ldr r1, _0801CAE0 ldrb r1, [r1] muls r1, r0 ldr r0, _0801CAE4 adds r5, r0 ldrb r0, [r5] adds r3, r1, 0 muls r3, r0 str r3, [r4] ldr r1, _0801CAE8 ldrb r0, [r7] lsls r0, 2 adds r0, r1 ldr r0, [r0] movs r1, 0x80 lsls r1, 2 ands r0, r1 cmp r0, 0 beq _0801CA82 ldr r2, _0801CAEC mov r7, r9 ldrh r1, [r7] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r0, [r0, 0x2] cmp r0, 0xD bne _0801CA82 lsls r0, r3, 1 str r0, [r4] _0801CA82: ldr r1, _0801CAF0 ldr r0, _0801CAC4 ldrb r0, [r0] lsls r0, 4 adds r0, r1 ldrb r0, [r0] lsls r0, 28 cmp r0, 0 bge _0801CAA4 ldr r4, _0801CADC ldr r1, [r4] lsls r0, r1, 4 subs r0, r1 movs r1, 0xA bl __divsi3 str r0, [r4] _0801CAA4: ldr r1, _0801CAF4 ldr r0, [r1] adds r0, 0x1 str r0, [r1] add sp, 0x10 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0801CABC: .4byte 0x02024c7a _0801CAC0: .4byte 0x02024c08 _0801CAC4: .4byte 0x02024c07 _0801CAC8: .4byte 0x02024a80 _0801CACC: .4byte 0x02024be6 _0801CAD0: .4byte 0x02024dec _0801CAD4: .4byte 0x02000000 _0801CAD8: .4byte 0x0001601c _0801CADC: .4byte 0x02024bec _0801CAE0: .4byte 0x02024c0d _0801CAE4: .4byte 0x0001601f _0801CAE8: .4byte 0x02024c98 _0801CAEC: .4byte gBattleMoves _0801CAF0: .4byte 0x02024d28 _0801CAF4: .4byte 0x02024c10 thumb_func_end atk05_cmd5 thumb_func_start sub_801CAF8 sub_801CAF8: @ 801CAF8 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x10 adds r5, r1, 0 lsls r0, 24 lsrs r7, r0, 24 lsls r5, 24 lsrs r5, 24 ldr r4, _0801CBBC adds r0, r5, 0 bl battle_get_per_side_status movs r1, 0x1 ands r1, r0 lsls r1, 1 adds r1, r4 ldrh r3, [r1] movs r1, 0x58 adds r0, r7, 0 muls r0, r1 ldr r2, _0801CBC0 adds r0, r2 muls r1, r5 adds r1, r2 ldr r2, _0801CBC4 mov r9, r2 ldrh r2, [r2] ldr r4, _0801CBC8 mov r8, r4 ldrh r4, [r4] str r4, [sp] ldr r6, _0801CBCC ldr r4, _0801CBD0 ldrb r4, [r4, r6] str r4, [sp, 0x4] str r7, [sp, 0x8] str r5, [sp, 0xC] bl sub_803BA2C ldr r4, _0801CBD4 movs r1, 0 mov r2, r8 strh r1, [r2] ldr r1, _0801CBD8 ldrb r1, [r1] muls r1, r0 ldr r0, _0801CBDC adds r6, r0 ldrb r0, [r6] adds r3, r1, 0 muls r3, r0 str r3, [r4] ldr r1, _0801CBE0 lsls r0, r7, 2 adds r0, r1 ldr r0, [r0] movs r1, 0x80 lsls r1, 2 ands r0, r1 cmp r0, 0 beq _0801CB8E ldr r2, _0801CBE4 mov r6, r9 ldrh r1, [r6] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r0, [r0, 0x2] cmp r0, 0xD bne _0801CB8E lsls r0, r3, 1 str r0, [r4] _0801CB8E: ldr r0, _0801CBE8 lsls r1, r7, 4 adds r1, r0 ldrb r0, [r1] lsls r0, 28 cmp r0, 0 bge _0801CBAC ldr r4, _0801CBD4 ldr r1, [r4] lsls r0, r1, 4 subs r0, r1 movs r1, 0xA bl __divsi3 str r0, [r4] _0801CBAC: add sp, 0x10 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0801CBBC: .4byte 0x02024c7a _0801CBC0: .4byte 0x02024a80 _0801CBC4: .4byte 0x02024be6 _0801CBC8: .4byte 0x02024dec _0801CBCC: .4byte 0x02000000 _0801CBD0: .4byte 0x0001601c _0801CBD4: .4byte 0x02024bec _0801CBD8: .4byte 0x02024c0d _0801CBDC: .4byte 0x0001601f _0801CBE0: .4byte 0x02024c98 _0801CBE4: .4byte gBattleMoves _0801CBE8: .4byte 0x02024d28 thumb_func_end sub_801CAF8 thumb_func_start battle_attack_damage_modulate_by_effectivity battle_attack_damage_modulate_by_effectivity: @ 801CBEC push {r4,r5,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r5, _0801CC1C ldr r0, [r5] muls r0, r4 movs r1, 0xA bl __divsi3 str r0, [r5] cmp r0, 0 bne _0801CC0C cmp r4, 0 beq _0801CC0C movs r0, 0x1 str r0, [r5] _0801CC0C: cmp r4, 0x5 beq _0801CC3C cmp r4, 0x5 bgt _0801CC20 cmp r4, 0 beq _0801CC26 b _0801CCBE .align 2, 0 _0801CC1C: .4byte 0x02024bec _0801CC20: cmp r4, 0x14 beq _0801CC7C b _0801CCBE _0801CC26: ldr r2, _0801CC38 ldrb r0, [r2] movs r1, 0x8 orrs r0, r1 movs r1, 0xFB ands r0, r1 movs r1, 0xFD ands r0, r1 b _0801CCBC .align 2, 0 _0801CC38: .4byte 0x02024c68 _0801CC3C: ldr r2, _0801CC6C ldr r0, _0801CC70 ldrh r1, [r0] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r0, [r0, 0x1] cmp r0, 0 beq _0801CCBE ldr r2, _0801CC74 ldrb r1, [r2] movs r0, 0x29 ands r0, r1 cmp r0, 0 bne _0801CCBE movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _0801CC78 movs r0, 0xFD ands r0, r1 b _0801CCBC .align 2, 0 _0801CC6C: .4byte gBattleMoves _0801CC70: .4byte 0x02024be6 _0801CC74: .4byte 0x02024c68 _0801CC78: movs r0, 0x4 b _0801CCBA _0801CC7C: ldr r2, _0801CCAC ldr r0, _0801CCB0 ldrh r1, [r0] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r0, [r0, 0x1] cmp r0, 0 beq _0801CCBE ldr r2, _0801CCB4 ldrb r1, [r2] movs r0, 0x29 ands r0, r1 cmp r0, 0 bne _0801CCBE movs r0, 0x4 ands r0, r1 cmp r0, 0 beq _0801CCB8 movs r0, 0xFB ands r0, r1 b _0801CCBC .align 2, 0 _0801CCAC: .4byte gBattleMoves _0801CCB0: .4byte 0x02024be6 _0801CCB4: .4byte 0x02024c68 _0801CCB8: movs r0, 0x2 _0801CCBA: orrs r0, r1 _0801CCBC: strb r0, [r2] _0801CCBE: pop {r4,r5} pop {r0} bx r0 thumb_func_end battle_attack_damage_modulate_by_effectivity thumb_func_start sub_801CCC4 sub_801CCC4: @ 801CCC4 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x8 movs r3, 0 ldr r1, _0801CCF0 ldrh r0, [r1] cmp r0, 0xA5 bne _0801CCD8 b _0801CEF4 _0801CCD8: ldr r0, _0801CCF4 ldr r2, _0801CCF8 adds r0, r2 ldrb r0, [r0] cmp r0, 0 beq _0801CCFC movs r1, 0x3F mov r8, r1 mov r2, r8 ands r2, r0 mov r8, r2 b _0801CD0C .align 2, 0 _0801CCF0: .4byte 0x02024be6 _0801CCF4: .4byte 0x02000000 _0801CCF8: .4byte 0x0001601c _0801CCFC: ldr r2, _0801CD94 ldrh r1, [r1] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r0, [r0, 0x2] mov r8, r0 _0801CD0C: ldr r2, _0801CD98 ldr r0, _0801CD9C ldrb r1, [r0] movs r0, 0x58 muls r0, r1 adds r1, r0, r2 adds r0, r1, 0 adds r0, 0x21 ldrb r0, [r0] adds r5, r2, 0 cmp r0, r8 beq _0801CD2E adds r0, r1, 0 adds r0, 0x22 ldrb r0, [r0] cmp r0, r8 bne _0801CD44 _0801CD2E: ldr r4, _0801CDA0 ldr r1, [r4] lsls r0, r1, 4 subs r0, r1 str r0, [r4] movs r1, 0xA str r3, [sp, 0x4] bl __divsi3 str r0, [r4] ldr r3, [sp, 0x4] _0801CD44: ldr r2, _0801CDA4 ldrb r1, [r2] movs r0, 0x58 muls r0, r1 adds r0, r5 adds r0, 0x20 ldrb r0, [r0] adds r4, r2, 0 cmp r0, 0x1A bne _0801CDBC mov r1, r8 cmp r1, 0x4 bne _0801CDBC ldr r3, _0801CDA8 strb r0, [r3] ldr r2, _0801CDAC ldrb r0, [r2] movs r1, 0x9 orrs r0, r1 strb r0, [r2] ldr r1, _0801CDB0 ldrb r0, [r4] lsls r0, 1 adds r0, r1 movs r2, 0 strh r2, [r0] ldr r1, _0801CDB4 ldrb r0, [r4] lsls r0, 1 adds r0, r1 strh r2, [r0] ldr r0, _0801CDB8 mov r2, r8 strb r2, [r0, 0x6] ldrb r0, [r4] ldrb r1, [r3] bl sub_81074C4 b _0801CE58 .align 2, 0 _0801CD94: .4byte gBattleMoves _0801CD98: .4byte 0x02024a80 _0801CD9C: .4byte 0x02024c07 _0801CDA0: .4byte 0x02024bec _0801CDA4: .4byte 0x02024c08 _0801CDA8: .4byte 0x02024c06 _0801CDAC: .4byte 0x02024c68 _0801CDB0: .4byte 0x02024c3c _0801CDB4: .4byte 0x02024c44 _0801CDB8: .4byte 0x02024d1e _0801CDBC: ldr r1, _0801CDC8 adds r0, r3, r1 ldrb r0, [r0] adds r2, r1, 0 b _0801CE38 .align 2, 0 _0801CDC8: .4byte gTypeEffectiveness _0801CDCC: adds r3, 0x3 b _0801CE34 _0801CDD0: ldr r5, _0801CF08 adds r0, r3, r5 ldrb r0, [r0] cmp r0, r8 bne _0801CE2C adds r1, r3, 0x1 adds r1, r5 ldr r2, _0801CF0C ldr r7, _0801CF10 ldrb r0, [r7] movs r6, 0x58 muls r0, r6 adds r0, r2 adds r0, 0x21 ldrb r4, [r1] ldrb r0, [r0] cmp r4, r0 bne _0801CE06 adds r0, r3, 0x2 adds r0, r5 ldrb r0, [r0] str r2, [sp] str r3, [sp, 0x4] bl battle_attack_damage_modulate_by_effectivity ldr r3, [sp, 0x4] ldr r2, [sp] _0801CE06: ldrb r0, [r7] muls r0, r6 adds r0, r2 adds r1, r0, 0 adds r1, 0x22 ldrb r1, [r1] cmp r4, r1 bne _0801CE2C adds r0, 0x21 ldrb r0, [r0] cmp r0, r4 beq _0801CE2C adds r0, r3, 0x2 adds r0, r5 ldrb r0, [r0] str r3, [sp, 0x4] bl battle_attack_damage_modulate_by_effectivity ldr r3, [sp, 0x4] _0801CE2C: adds r3, 0x3 ldr r5, _0801CF0C ldr r4, _0801CF10 ldr r2, _0801CF08 _0801CE34: adds r0, r3, r2 ldrb r0, [r0] _0801CE38: cmp r0, 0xFF beq _0801CE58 cmp r0, 0xFE bne _0801CDD0 ldrb r1, [r4] movs r0, 0x58 muls r0, r1 adds r1, r5, 0 adds r1, 0x50 adds r0, r1 ldr r0, [r0] movs r1, 0x80 lsls r1, 22 ands r0, r1 cmp r0, 0 beq _0801CDCC _0801CE58: ldr r2, _0801CF0C ldr r5, _0801CF10 ldrb r1, [r5] movs r0, 0x58 muls r0, r1 adds r0, r2 adds r0, 0x20 ldrb r6, [r0] cmp r6, 0x19 bne _0801CED6 ldr r0, _0801CF14 ldrb r0, [r0] ldr r7, _0801CF18 ldrh r1, [r7] bl move_weather_interaction lsls r0, 24 lsrs r0, 24 cmp r0, 0x2 bne _0801CED6 ldr r1, _0801CF1C mov r8, r1 ldrb r4, [r1] ands r0, r4 cmp r0, 0 beq _0801CE94 movs r0, 0x6 ands r0, r4 cmp r0, 0x6 bne _0801CED6 _0801CE94: ldr r2, _0801CF20 ldrh r1, [r7] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r0, [r0, 0x1] cmp r0, 0 beq _0801CED6 ldr r3, _0801CF24 strb r6, [r3] movs r0, 0x1 orrs r0, r4 mov r2, r8 strb r0, [r2] ldr r1, _0801CF28 ldrb r0, [r5] lsls r0, 1 adds r0, r1 movs r2, 0 strh r2, [r0] ldr r1, _0801CF2C ldrb r0, [r5] lsls r0, 1 adds r0, r1 strh r2, [r0] ldr r1, _0801CF30 movs r0, 0x3 strb r0, [r1, 0x6] ldrb r0, [r5] ldrb r1, [r3] bl sub_81074C4 _0801CED6: ldr r0, _0801CF1C ldrb r1, [r0] movs r0, 0x8 ands r0, r1 cmp r0, 0 beq _0801CEF4 ldr r2, _0801CF34 ldr r0, _0801CF14 ldrb r1, [r0] lsls r1, 4 adds r1, r2 ldrb r0, [r1, 0x1] movs r2, 0x2 orrs r0, r2 strb r0, [r1, 0x1] _0801CEF4: ldr r1, _0801CF38 ldr r0, [r1] adds r0, 0x1 str r0, [r1] add sp, 0x8 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0801CF08: .4byte gTypeEffectiveness _0801CF0C: .4byte 0x02024a80 _0801CF10: .4byte 0x02024c08 _0801CF14: .4byte 0x02024c07 _0801CF18: .4byte 0x02024be6 _0801CF1C: .4byte 0x02024c68 _0801CF20: .4byte gBattleMoves _0801CF24: .4byte 0x02024c06 _0801CF28: .4byte 0x02024c3c _0801CF2C: .4byte 0x02024c44 _0801CF30: .4byte 0x02024d1e _0801CF34: .4byte 0x02024d28 _0801CF38: .4byte 0x02024c10 thumb_func_end sub_801CCC4 thumb_func_start b_wonderguard_and_levitate b_wonderguard_and_levitate: @ 801CF3C push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} movs r6, 0 movs r5, 0 ldr r0, _0801CF80 ldrh r1, [r0] mov r9, r0 cmp r1, 0xA5 bne _0801CF54 b _0801D1A4 _0801CF54: ldr r2, _0801CF84 lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r1, r0, r2 ldrb r0, [r1, 0x1] cmp r0, 0 bne _0801CF66 b _0801D1A4 _0801CF66: ldr r0, _0801CF88 ldr r2, _0801CF8C adds r0, r2 ldrb r0, [r0] cmp r0, 0 beq _0801CF90 movs r1, 0x3F mov r12, r1 mov r2, r12 ands r2, r0 mov r12, r2 b _0801CF94 .align 2, 0 _0801CF80: .4byte 0x02024be6 _0801CF84: .4byte gBattleMoves _0801CF88: .4byte 0x02000000 _0801CF8C: .4byte 0x0001601c _0801CF90: ldrb r1, [r1, 0x2] mov r12, r1 _0801CF94: ldr r2, _0801CFC8 ldr r3, _0801CFCC ldrb r1, [r3] movs r0, 0x58 muls r0, r1 adds r0, r2 adds r0, 0x20 ldrb r1, [r0] adds r7, r2, 0 mov r8, r3 cmp r1, 0x1A bne _0801CFD8 mov r0, r12 cmp r0, 0x4 bne _0801CFD8 ldr r0, _0801CFD0 strb r1, [r0] ldr r0, _0801CFD4 mov r1, r12 strb r1, [r0, 0x6] ldrb r0, [r3] movs r1, 0x1A bl sub_81074C4 b _0801D1A4 .align 2, 0 _0801CFC8: .4byte 0x02024a80 _0801CFCC: .4byte 0x02024c08 _0801CFD0: .4byte 0x02024c06 _0801CFD4: .4byte 0x02024d1e _0801CFD8: ldr r1, _0801CFE4 adds r0, r5, r1 ldrb r0, [r0] adds r4, r1, 0 b _0801D12A .align 2, 0 _0801CFE4: .4byte gTypeEffectiveness _0801CFE8: adds r0, r5, r4 ldrb r0, [r0] cmp r0, r12 beq _0801CFF2 b _0801D124 _0801CFF2: adds r2, r5, 0x1 adds r3, r2, r4 mov r0, r8 ldrb r1, [r0] movs r0, 0x58 muls r0, r1 adds r0, r7 adds r0, 0x21 ldrb r1, [r3] adds r3, r2, 0 ldrb r0, [r0] cmp r1, r0 bne _0801D032 adds r0, r5, 0x2 adds r0, r4 ldrb r0, [r0] cmp r0, 0 bne _0801D032 ldr r2, _0801D1B0 ldrb r0, [r2] movs r1, 0x8 orrs r0, r1 strb r0, [r2] ldr r1, _0801D1B4 ldr r0, _0801D1B8 ldrb r2, [r0] lsls r2, 4 adds r2, r1 ldrb r0, [r2, 0x1] movs r1, 0x2 orrs r0, r1 strb r0, [r2, 0x1] _0801D032: adds r2, r3, r4 mov r0, r8 ldrb r1, [r0] movs r0, 0x58 muls r0, r1 adds r0, r7 adds r1, r0, 0 adds r1, 0x22 ldrb r2, [r2] ldrb r1, [r1] cmp r2, r1 bne _0801D078 adds r0, 0x21 ldrb r0, [r0] cmp r0, r2 beq _0801D078 adds r0, r5, 0x2 adds r0, r4 ldrb r0, [r0] cmp r0, 0 bne _0801D078 ldr r2, _0801D1B0 ldrb r0, [r2] movs r1, 0x8 orrs r0, r1 strb r0, [r2] ldr r1, _0801D1B4 ldr r0, _0801D1B8 ldrb r2, [r0] lsls r2, 4 adds r2, r1 ldrb r0, [r2, 0x1] movs r1, 0x2 orrs r0, r1 strb r0, [r2, 0x1] _0801D078: adds r2, r3, r4 mov r0, r8 ldrb r1, [r0] movs r0, 0x58 muls r0, r1 adds r0, r7 adds r0, 0x21 ldrb r1, [r2] ldrb r0, [r0] cmp r1, r0 bne _0801D09C adds r0, r5, 0x2 adds r0, r4 ldrb r0, [r0] cmp r0, 0x14 bne _0801D09C movs r0, 0x1 orrs r6, r0 _0801D09C: adds r2, r3, r4 mov r0, r8 ldrb r1, [r0] movs r0, 0x58 muls r0, r1 adds r0, r7 adds r1, r0, 0 adds r1, 0x22 ldrb r2, [r2] ldrb r1, [r1] cmp r2, r1 bne _0801D0CA adds r0, 0x21 ldrb r0, [r0] cmp r0, r2 beq _0801D0CA adds r0, r5, 0x2 adds r0, r4 ldrb r0, [r0] cmp r0, 0x14 bne _0801D0CA movs r0, 0x1 orrs r6, r0 _0801D0CA: adds r2, r3, r4 mov r0, r8 ldrb r1, [r0] movs r0, 0x58 muls r0, r1 adds r0, r7 adds r0, 0x21 ldrb r1, [r2] ldrb r0, [r0] cmp r1, r0 bne _0801D0F2 adds r0, r5, 0x2 adds r0, r4 ldrb r0, [r0] cmp r0, 0x5 bne _0801D0F2 movs r0, 0x2 orrs r6, r0 lsls r0, r6, 24 lsrs r6, r0, 24 _0801D0F2: adds r2, r3, r4 mov r0, r8 ldrb r1, [r0] movs r0, 0x58 muls r0, r1 adds r0, r7 adds r1, r0, 0 adds r1, 0x22 ldrb r2, [r2] ldrb r1, [r1] cmp r2, r1 bne _0801D124 adds r0, 0x21 ldrb r0, [r0] cmp r0, r2 beq _0801D124 adds r0, r5, 0x2 adds r0, r4 ldrb r0, [r0] cmp r0, 0x5 bne _0801D124 movs r0, 0x2 orrs r6, r0 lsls r0, r6, 24 lsrs r6, r0, 24 _0801D124: adds r5, 0x3 adds r0, r5, r4 ldrb r0, [r0] _0801D12A: cmp r0, 0xFF beq _0801D14E cmp r0, 0xFE beq _0801D134 b _0801CFE8 _0801D134: mov r2, r8 ldrb r1, [r2] movs r0, 0x58 muls r0, r1 adds r1, r7, 0 adds r1, 0x50 adds r0, r1 ldr r0, [r0] movs r1, 0x80 lsls r1, 22 ands r0, r1 cmp r0, 0 beq _0801D124 _0801D14E: mov r0, r8 ldrb r1, [r0] movs r0, 0x58 muls r0, r1 adds r0, r7 adds r0, 0x20 ldrb r4, [r0] cmp r4, 0x19 bne _0801D1A4 ldr r0, _0801D1B8 ldrb r0, [r0] mov r2, r9 ldrh r1, [r2] bl move_weather_interaction lsls r0, 24 lsrs r0, 24 cmp r0, 0x2 bne _0801D1A4 movs r0, 0x3 ands r6, r0 cmp r6, 0x1 beq _0801D1A4 ldr r2, _0801D1BC mov r0, r9 ldrh r1, [r0] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r0, [r0, 0x1] cmp r0, 0 beq _0801D1A4 ldr r0, _0801D1C0 strb r4, [r0] ldr r1, _0801D1C4 movs r0, 0x3 strb r0, [r1, 0x6] mov r1, r8 ldrb r0, [r1] movs r1, 0x19 bl sub_81074C4 _0801D1A4: pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0801D1B0: .4byte 0x02024c68 _0801D1B4: .4byte 0x02024d28 _0801D1B8: .4byte 0x02024c07 _0801D1BC: .4byte gBattleMoves _0801D1C0: .4byte 0x02024c06 _0801D1C4: .4byte 0x02024d1e thumb_func_end b_wonderguard_and_levitate thumb_func_start b_attack_effectivity_adapt b_attack_effectivity_adapt: @ 801D1C8 push {r4-r7,lr} adds r6, r2, 0 lsls r0, 24 lsrs r4, r0, 24 lsls r1, 16 lsrs r5, r1, 16 ldr r7, _0801D1FC ldr r0, [r7] muls r0, r4 movs r1, 0xA bl __divsi3 str r0, [r7] cmp r0, 0 bne _0801D1EE cmp r4, 0 beq _0801D1EE movs r0, 0x1 str r0, [r7] _0801D1EE: cmp r4, 0x5 beq _0801D216 cmp r4, 0x5 bgt _0801D200 cmp r4, 0 beq _0801D206 b _0801D27A .align 2, 0 _0801D1FC: .4byte 0x02024bec _0801D200: cmp r4, 0x14 beq _0801D248 b _0801D27A _0801D206: ldrb r0, [r6] movs r1, 0x8 orrs r0, r1 movs r1, 0xFB ands r0, r1 movs r1, 0xFD ands r0, r1 b _0801D278 _0801D216: ldr r0, _0801D240 lsls r1, r5, 1 adds r1, r5 lsls r1, 2 adds r1, r0 ldrb r0, [r1, 0x1] cmp r0, 0 beq _0801D27A ldrb r1, [r6] movs r0, 0x29 ands r0, r1 cmp r0, 0 bne _0801D27A movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _0801D244 movs r0, 0xFD ands r0, r1 b _0801D278 .align 2, 0 _0801D240: .4byte gBattleMoves _0801D244: movs r0, 0x4 b _0801D276 _0801D248: ldr r0, _0801D270 lsls r1, r5, 1 adds r1, r5 lsls r1, 2 adds r1, r0 ldrb r0, [r1, 0x1] cmp r0, 0 beq _0801D27A ldrb r1, [r6] movs r0, 0x29 ands r0, r1 cmp r0, 0 bne _0801D27A movs r0, 0x4 ands r0, r1 cmp r0, 0 beq _0801D274 movs r0, 0xFB ands r0, r1 b _0801D278 .align 2, 0 _0801D270: .4byte gBattleMoves _0801D274: movs r0, 0x2 _0801D276: orrs r0, r1 _0801D278: strb r0, [r6] _0801D27A: pop {r4-r7} pop {r0} bx r0 thumb_func_end b_attack_effectivity_adapt thumb_func_start move_effectiveness_something move_effectiveness_something: @ 801D280 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x14 lsls r0, 16 lsrs r0, 16 mov r10, r0 lsls r1, 24 lsrs r1, 24 str r1, [sp, 0x4] lsls r2, 24 lsrs r2, 24 mov r9, r2 movs r7, 0 mov r0, sp strb r7, [r0] mov r0, r10 cmp r0, 0xA5 bne _0801D2AE movs r0, 0 b _0801D43A _0801D2AE: ldr r1, _0801D31C mov r3, r10 lsls r2, r3, 1 adds r0, r2, r3 lsls r0, 2 adds r0, r1 ldrb r0, [r0, 0x2] str r0, [sp, 0x8] ldr r1, _0801D320 movs r0, 0x58 ldr r3, [sp, 0x4] muls r0, r3 adds r3, r0, r1 adds r0, r3, 0 adds r0, 0x21 ldrb r0, [r0] str r2, [sp, 0xC] adds r5, r1, 0 ldr r1, [sp, 0x8] cmp r0, r1 beq _0801D2E2 adds r0, r3, 0 adds r0, 0x22 ldrb r0, [r0] cmp r0, r1 bne _0801D2F4 _0801D2E2: ldr r4, _0801D324 ldr r1, [r4] lsls r0, r1, 4 subs r0, r1 str r0, [r4] movs r1, 0xA bl __divsi3 str r0, [r4] _0801D2F4: movs r0, 0x58 mov r2, r9 muls r2, r0 adds r0, r2, 0 adds r0, r5 adds r0, 0x20 ldrb r0, [r0] cmp r0, 0x1A bne _0801D328 ldr r3, [sp, 0x8] cmp r3, 0x4 bne _0801D328 movs r1, 0x9 mov r0, sp ldrb r0, [r0] orrs r0, r1 mov r1, sp strb r0, [r1] b _0801D3DC .align 2, 0 _0801D31C: .4byte gBattleMoves _0801D320: .4byte 0x02024a80 _0801D324: .4byte 0x02024bec _0801D328: ldr r1, _0801D344 adds r0, r7, r1 ldrb r0, [r0] adds r2, r1, 0 cmp r0, 0xFF beq _0801D3DC cmp r0, 0xFE bne _0801D34C movs r0, 0x58 mov r1, r9 muls r1, r0 adds r0, r1, 0 b _0801D3CA .align 2, 0 _0801D344: .4byte gTypeEffectiveness _0801D348: adds r7, 0x3 b _0801D3B6 _0801D34C: ldr r6, _0801D44C adds r0, r7, r6 ldrb r0, [r0] ldr r2, [sp, 0x8] cmp r0, r2 bne _0801D3B0 adds r1, r7, 0x1 adds r1, r6 ldr r3, _0801D450 mov r8, r3 movs r3, 0x58 mov r0, r9 muls r0, r3 mov r2, r8 adds r5, r0, r2 adds r0, r5, 0 adds r0, 0x21 ldrb r4, [r1] ldrb r0, [r0] cmp r4, r0 bne _0801D388 adds r0, r7, 0x2 adds r0, r6 ldrb r0, [r0] mov r1, r10 mov r2, sp str r3, [sp, 0x10] bl b_attack_effectivity_adapt ldr r3, [sp, 0x10] _0801D388: adds r0, r5, 0 adds r0, 0x22 ldrb r0, [r0] cmp r4, r0 bne _0801D3B0 ldr r0, _0801D454 ldrb r0, [r0] muls r0, r3 add r0, r8 adds r0, 0x21 ldrb r0, [r0] cmp r0, r4 beq _0801D3B0 adds r0, r7, 0x2 adds r0, r6 ldrb r0, [r0] mov r1, r10 mov r2, sp bl b_attack_effectivity_adapt _0801D3B0: adds r7, 0x3 ldr r5, _0801D450 ldr r2, _0801D44C _0801D3B6: adds r0, r7, r2 ldrb r0, [r0] cmp r0, 0xFF beq _0801D3DC cmp r0, 0xFE bne _0801D34C movs r0, 0x58 mov r3, r9 muls r3, r0 adds r0, r3, 0 _0801D3CA: adds r1, r5, 0 adds r1, 0x50 adds r0, r1 ldr r0, [r0] movs r1, 0x80 lsls r1, 22 ands r0, r1 cmp r0, 0 beq _0801D348 _0801D3DC: movs r0, 0x58 mov r1, r9 muls r1, r0 adds r0, r1, 0 adds r0, r5 adds r0, 0x20 ldrb r0, [r0] cmp r0, 0x19 bne _0801D436 mov r0, sp ldrb r1, [r0] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _0801D436 ldr r0, [sp, 0x4] mov r1, r10 bl move_weather_interaction lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0x2 bne _0801D436 mov r0, sp ldrb r3, [r0] adds r0, r1, 0 ands r0, r3 cmp r0, 0 beq _0801D41E movs r0, 0x6 ands r0, r3 cmp r0, 0x6 bne _0801D436 _0801D41E: ldr r0, _0801D458 ldr r1, [sp, 0xC] add r1, r10 lsls r1, 2 adds r1, r0 ldrb r0, [r1, 0x1] cmp r0, 0 beq _0801D436 mov r0, sp movs r1, 0x1 orrs r1, r3 strb r1, [r0] _0801D436: mov r0, sp ldrb r0, [r0] _0801D43A: add sp, 0x14 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0801D44C: .4byte gTypeEffectiveness _0801D450: .4byte 0x02024a80 _0801D454: .4byte 0x02024c08 _0801D458: .4byte gBattleMoves thumb_func_end move_effectiveness_something thumb_func_start ai_rate_move ai_rate_move: @ 801D45C push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x10 lsls r0, 16 lsrs r6, r0, 16 lsls r1, 16 lsrs r1, 16 lsls r2, 24 lsrs r2, 24 str r2, [sp, 0x4] movs r7, 0 mov r0, sp strb r7, [r0] ldr r2, _0801D498 lsls r0, r1, 3 subs r0, r1 lsls r0, 2 adds r0, r2 ldrb r1, [r0, 0x6] str r1, [sp, 0x8] ldrb r0, [r0, 0x7] mov r8, r0 cmp r6, 0xA5 bne _0801D49C movs r0, 0 b _0801D554 .align 2, 0 _0801D498: .4byte gBaseStats _0801D49C: ldr r2, _0801D4C0 lsls r1, r6, 1 adds r0, r1, r6 lsls r0, 2 adds r0, r2 ldrb r0, [r0, 0x2] mov r9, r0 str r1, [sp, 0xC] ldr r3, [sp, 0x4] cmp r3, 0x1A bne _0801D4C4 cmp r0, 0x4 bne _0801D4C4 movs r1, 0x9 mov r0, sp strb r1, [r0] b _0801D51E .align 2, 0 _0801D4C0: .4byte gBattleMoves _0801D4C4: ldr r0, _0801D564 mov r10, r0 adds r1, r7, r0 ldrb r0, [r1] cmp r0, 0xFF beq _0801D51E adds r4, r1, 0 _0801D4D2: ldrb r0, [r4] cmp r0, 0xFE beq _0801D510 cmp r0, r9 bne _0801D510 ldrb r5, [r4, 0x1] ldr r1, [sp, 0x8] cmp r5, r1 bne _0801D4EE ldrb r0, [r4, 0x2] adds r1, r6, 0 mov r2, sp bl b_attack_effectivity_adapt _0801D4EE: cmp r5, r8 bne _0801D510 ldr r0, _0801D568 ldrb r1, [r0] movs r0, 0x58 muls r0, r1 ldr r3, _0801D56C adds r0, r3 adds r0, 0x21 ldrb r0, [r0] cmp r0, r8 beq _0801D510 ldrb r0, [r4, 0x2] adds r1, r6, 0 mov r2, sp bl b_attack_effectivity_adapt _0801D510: adds r4, 0x3 adds r7, 0x3 mov r1, r10 adds r0, r7, r1 ldrb r0, [r0] cmp r0, 0xFF bne _0801D4D2 _0801D51E: ldr r3, [sp, 0x4] cmp r3, 0x19 bne _0801D550 mov r0, sp ldrb r2, [r0] movs r0, 0x2 ands r0, r2 cmp r0, 0 beq _0801D538 movs r0, 0x6 ands r0, r2 cmp r0, 0x6 bne _0801D550 _0801D538: ldr r0, _0801D570 ldr r3, [sp, 0xC] adds r1, r3, r6 lsls r1, 2 adds r1, r0 ldrb r0, [r1, 0x1] cmp r0, 0 beq _0801D550 mov r0, sp movs r1, 0x8 orrs r1, r2 strb r1, [r0] _0801D550: mov r0, sp ldrb r0, [r0] _0801D554: add sp, 0x10 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0801D564: .4byte gTypeEffectiveness _0801D568: .4byte 0x02024c08 _0801D56C: .4byte 0x02024a80 _0801D570: .4byte gBattleMoves thumb_func_end ai_rate_move thumb_func_start unref_sub_801D574 unref_sub_801D574: @ 801D574 push {r4,lr} bl Random lsls r0, 16 lsrs r0, 16 movs r1, 0xF ands r0, r1 movs r1, 0x64 subs r1, r0 lsls r1, 16 lsrs r1, 16 ldr r4, _0801D5AC ldr r0, [r4] cmp r0, 0 beq _0801D5A6 muls r0, r1 str r0, [r4] movs r1, 0x64 bl __divsi3 str r0, [r4] cmp r0, 0 bne _0801D5A6 movs r0, 0x1 str r0, [r4] _0801D5A6: pop {r4} pop {r0} bx r0 .align 2, 0 _0801D5AC: .4byte 0x02024bec thumb_func_end unref_sub_801D574 thumb_func_start atk07_cmd7 atk07_cmd7: @ 801D5B0 push {r4-r7,lr} bl Random lsls r0, 16 lsrs r0, 16 movs r1, 0xF ands r0, r1 movs r1, 0x64 subs r1, r0 lsls r1, 16 lsrs r1, 16 ldr r4, _0801D608 ldr r0, [r4] cmp r0, 0 beq _0801D5E2 muls r0, r1 str r0, [r4] movs r1, 0x64 bl __divsi3 str r0, [r4] cmp r0, 0 bne _0801D5E2 movs r0, 0x1 str r0, [r4] _0801D5E2: ldr r7, _0801D60C ldr r6, _0801D610 ldrb r2, [r6] movs r5, 0x58 adds r0, r2, 0 muls r0, r5 adds r1, r0, r7 ldrh r0, [r1, 0x2E] cmp r0, 0xAF bne _0801D618 ldr r1, _0801D614 lsls r0, r2, 3 subs r0, r2 lsls r0, 2 adds r0, r1 ldrb r4, [r0, 0x7] ldrb r6, [r0, 0x1A] b _0801D632 .align 2, 0 _0801D608: .4byte 0x02024bec _0801D60C: .4byte 0x02024a80 _0801D610: .4byte 0x02024c08 _0801D614: .4byte 0x02024df0 _0801D618: ldrh r0, [r1, 0x2E] bl itemid_get_x12 lsls r0, 24 lsrs r4, r0, 24 ldrb r0, [r6] muls r0, r5 adds r0, r7 ldrh r0, [r0, 0x2E] bl itemid_get_quality lsls r0, 24 lsrs r6, r0, 24 _0801D632: ldr r1, _0801D6F4 ldr r5, _0801D6F8 ldrb r0, [r5] strb r0, [r1] cmp r4, 0x27 bne _0801D670 bl Random lsls r0, 16 lsrs r0, 16 movs r1, 0x64 bl __umodsi3 lsls r0, 16 lsrs r0, 16 cmp r0, r6 bcs _0801D670 ldrb r0, [r5] movs r1, 0x27 bl sub_81074F8 ldr r2, _0801D6FC ldrb r1, [r5] lsls r0, r1, 2 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r1, [r0] movs r2, 0x80 orrs r1, r2 strb r1, [r0] _0801D670: ldr r2, _0801D700 ldr r3, _0801D6F8 ldrb r4, [r3] movs r0, 0x58 muls r0, r4 adds r1, r2, 0 adds r1, 0x50 adds r0, r1 ldr r1, [r0] movs r0, 0x80 lsls r0, 17 ands r1, r0 adds r5, r2, 0 cmp r1, 0 bne _0801D740 ldr r2, _0801D704 ldr r0, _0801D708 ldrh r1, [r0] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r0, [r0] cmp r0, 0x65 beq _0801D6C2 ldr r0, _0801D70C lsls r1, r4, 4 adds r1, r0 ldrb r0, [r1] lsls r0, 30 cmp r0, 0 blt _0801D6C2 ldr r0, _0801D6FC lsls r1, r4, 2 adds r1, r4 lsls r1, 2 adds r1, r0 ldrb r0, [r1] lsrs r0, 7 cmp r0, 0 beq _0801D740 _0801D6C2: ldrb r0, [r3] movs r4, 0x58 muls r0, r4 adds r0, r5 ldrh r1, [r0, 0x28] ldr r2, _0801D710 ldr r0, [r2] cmp r1, r0 bgt _0801D740 subs r0, r1, 0x1 str r0, [r2] ldr r1, _0801D70C ldrb r3, [r3] lsls r0, r3, 4 adds r0, r1 ldrb r0, [r0] lsls r0, 30 cmp r0, 0 bge _0801D718 ldr r0, _0801D714 ldrb r1, [r0] movs r2, 0x40 orrs r1, r2 strb r1, [r0] b _0801D740 .align 2, 0 _0801D6F4: .4byte 0x02024c0b _0801D6F8: .4byte 0x02024c08 _0801D6FC: .4byte 0x02024d68 _0801D700: .4byte 0x02024a80 _0801D704: .4byte gBattleMoves _0801D708: .4byte 0x02024be6 _0801D70C: .4byte 0x02024d28 _0801D710: .4byte 0x02024bec _0801D714: .4byte 0x02024c68 _0801D718: ldr r0, _0801D750 lsls r1, r3, 2 adds r1, r3 lsls r1, 2 adds r1, r0 ldrb r0, [r1] lsrs r0, 7 cmp r0, 0 beq _0801D740 ldr r2, _0801D754 ldrb r0, [r2] movs r1, 0x80 orrs r0, r1 strb r0, [r2] ldr r1, _0801D758 adds r0, r3, 0 muls r0, r4 adds r0, r5 ldrh r0, [r0, 0x2E] strh r0, [r1] _0801D740: ldr r1, _0801D75C ldr r0, [r1] adds r0, 0x1 str r0, [r1] pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0801D750: .4byte 0x02024d68 _0801D754: .4byte 0x02024c68 _0801D758: .4byte 0x02024c04 _0801D75C: .4byte 0x02024c10 thumb_func_end atk07_cmd7 thumb_func_start atk08_cmd8 atk08_cmd8: @ 801D760 push {r4-r7,lr} bl Random lsls r0, 16 lsrs r0, 16 movs r1, 0xF ands r0, r1 movs r1, 0x64 subs r1, r0 lsls r1, 16 lsrs r1, 16 ldr r4, _0801D7B8 ldr r0, [r4] cmp r0, 0 beq _0801D792 muls r0, r1 str r0, [r4] movs r1, 0x64 bl __divsi3 str r0, [r4] cmp r0, 0 bne _0801D792 movs r0, 0x1 str r0, [r4] _0801D792: ldr r7, _0801D7BC ldr r6, _0801D7C0 ldrb r2, [r6] movs r5, 0x58 adds r0, r2, 0 muls r0, r5 adds r1, r0, r7 ldrh r0, [r1, 0x2E] cmp r0, 0xAF bne _0801D7C8 ldr r1, _0801D7C4 lsls r0, r2, 3 subs r0, r2 lsls r0, 2 adds r0, r1 ldrb r4, [r0, 0x7] ldrb r6, [r0, 0x1A] b _0801D7E2 .align 2, 0 _0801D7B8: .4byte 0x02024bec _0801D7BC: .4byte 0x02024a80 _0801D7C0: .4byte 0x02024c08 _0801D7C4: .4byte 0x02024df0 _0801D7C8: ldrh r0, [r1, 0x2E] bl itemid_get_x12 lsls r0, 24 lsrs r4, r0, 24 ldrb r0, [r6] muls r0, r5 adds r0, r7 ldrh r0, [r0, 0x2E] bl itemid_get_quality lsls r0, 24 lsrs r6, r0, 24 _0801D7E2: ldr r1, _0801D888 ldr r5, _0801D88C ldrb r0, [r5] strb r0, [r1] cmp r4, 0x27 bne _0801D820 bl Random lsls r0, 16 lsrs r0, 16 movs r1, 0x64 bl __umodsi3 lsls r0, 16 lsrs r0, 16 cmp r0, r6 bcs _0801D820 ldrb r0, [r5] movs r1, 0x27 bl sub_81074F8 ldr r2, _0801D890 ldrb r1, [r5] lsls r0, r1, 2 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r1, [r0] movs r2, 0x80 orrs r1, r2 strb r1, [r0] _0801D820: ldr r4, _0801D894 ldr r6, _0801D88C ldrb r2, [r6] movs r7, 0x58 adds r3, r2, 0 muls r3, r7 adds r0, r4, 0 adds r0, 0x50 adds r0, r3, r0 ldr r0, [r0] movs r1, 0x80 lsls r1, 17 ands r0, r1 cmp r0, 0 bne _0801D8CC ldr r5, _0801D898 lsls r0, r2, 4 adds r0, r5 ldrb r0, [r0] lsls r0, 30 cmp r0, 0 blt _0801D85E ldr r0, _0801D890 lsls r1, r2, 2 adds r1, r2 lsls r1, 2 adds r1, r0 ldrb r0, [r1] lsrs r0, 7 cmp r0, 0 beq _0801D8CC _0801D85E: adds r0, r3, r4 ldrh r1, [r0, 0x28] ldr r2, _0801D89C ldr r0, [r2] cmp r1, r0 bgt _0801D8CC subs r0, r1, 0x1 str r0, [r2] ldrb r3, [r6] lsls r0, r3, 4 adds r0, r5 ldrb r0, [r0] lsls r0, 30 cmp r0, 0 bge _0801D8A4 ldr r0, _0801D8A0 ldrb r1, [r0] movs r2, 0x40 orrs r1, r2 strb r1, [r0] b _0801D8CC .align 2, 0 _0801D888: .4byte 0x02024c0b _0801D88C: .4byte 0x02024c08 _0801D890: .4byte 0x02024d68 _0801D894: .4byte 0x02024a80 _0801D898: .4byte 0x02024d28 _0801D89C: .4byte 0x02024bec _0801D8A0: .4byte 0x02024c68 _0801D8A4: ldr r0, _0801D8DC lsls r1, r3, 2 adds r1, r3 lsls r1, 2 adds r1, r0 ldrb r0, [r1] lsrs r0, 7 cmp r0, 0 beq _0801D8CC ldr r2, _0801D8E0 ldrb r0, [r2] movs r1, 0x80 orrs r0, r1 strb r0, [r2] ldr r1, _0801D8E4 adds r0, r3, 0 muls r0, r7 adds r0, r4 ldrh r0, [r0, 0x2E] strh r0, [r1] _0801D8CC: ldr r1, _0801D8E8 ldr r0, [r1] adds r0, 0x1 str r0, [r1] pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0801D8DC: .4byte 0x02024d68 _0801D8E0: .4byte 0x02024c68 _0801D8E4: .4byte 0x02024c04 _0801D8E8: .4byte 0x02024c10 thumb_func_end atk08_cmd8 thumb_func_start sub_801D8EC sub_801D8EC: @ 801D8EC push {r4-r6,lr} mov r6, r9 mov r5, r8 push {r5,r6} sub sp, 0xC ldr r0, _0801D940 ldr r0, [r0] cmp r0, 0 beq _0801D900 b _0801DA4A _0801D900: ldr r0, _0801D944 ldr r0, [r0] movs r1, 0x80 ands r0, r1 ldr r3, _0801D948 cmp r0, 0 beq _0801D960 ldrh r0, [r3] cmp r0, 0x90 beq _0801D960 cmp r0, 0xA4 beq _0801D960 ldr r4, _0801D94C ldr r0, [r4] adds r0, 0x1 bl b_movescr_stack_push ldr r0, _0801D950 str r0, [r4] ldr r1, _0801D954 ldr r0, _0801D958 adds r2, r1, r0 ldrb r0, [r2] adds r0, 0x1 strb r0, [r2] ldr r2, _0801D95C adds r1, r2 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] b _0801DA4A .align 2, 0 _0801D940: .4byte 0x02024a64 _0801D944: .4byte 0x02024c6c _0801D948: .4byte 0x02024be6 _0801D94C: .4byte 0x02024c10 _0801D950: .4byte gUnknown_081D8EEF _0801D954: .4byte 0x02000000 _0801D958: .4byte 0x00016002 _0801D95C: .4byte 0x000160a1 _0801D960: ldr r2, _0801DA0C ldrh r1, [r3] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r1, [r0, 0x6] movs r0, 0x8 ands r0, r1 cmp r0, 0 bne _0801D986 movs r0, 0x20 ands r0, r1 cmp r0, 0 bne _0801D986 movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _0801D992 _0801D986: ldr r0, _0801DA10 ldr r1, _0801DA14 adds r0, r1 ldrb r0, [r0] cmp r0, 0 bne _0801DA00 _0801D992: ldr r0, _0801DA18 ldrb r1, [r0] movs r0, 0x29 ands r0, r1 cmp r0, 0 bne _0801DA3C ldr r1, _0801DA1C ldr r2, _0801DA20 mov r9, r2 ldrb r0, [r2] strb r0, [r1] ldrh r1, [r3] ldr r6, _0801DA10 ldr r0, _0801DA24 adds r0, r6 mov r8, r0 ldrb r2, [r0] ldr r0, _0801DA28 ldrh r3, [r0] ldr r0, _0801DA2C ldr r0, [r0] str r0, [sp] ldr r5, _0801DA30 mov r0, r9 ldrb r4, [r0] movs r0, 0x58 muls r0, r4 adds r0, r5 adds r0, 0x2B ldrb r0, [r0] str r0, [sp, 0x4] mov r0, r9 ldrb r4, [r0] lsls r0, r4, 3 subs r0, r4 lsls r0, 2 ldr r4, _0801DA34 adds r0, r4 str r0, [sp, 0x8] movs r0, 0 bl dp01_build_cmdbuf_x0F_aa_b_cc_dddd_e_mlc_weather_00_x1Cbytes mov r1, r8 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] ldr r2, _0801DA14 adds r6, r2 ldrb r0, [r6] adds r0, 0x1 strb r0, [r6] mov r1, r9 ldrb r0, [r1] bl dp01_battle_side_mark_buffer_for_execution _0801DA00: ldr r1, _0801DA38 ldr r0, [r1] adds r0, 0x1 str r0, [r1] b _0801DA4A .align 2, 0 _0801DA0C: .4byte gBattleMoves _0801DA10: .4byte 0x02000000 _0801DA14: .4byte 0x000160a1 _0801DA18: .4byte 0x02024c68 _0801DA1C: .4byte 0x02024a60 _0801DA20: .4byte 0x02024c07 _0801DA24: .4byte 0x00016002 _0801DA28: .4byte 0x02024e80 _0801DA2C: .4byte 0x02024bec _0801DA30: .4byte 0x02024a80 _0801DA34: .4byte 0x02024ca8 _0801DA38: .4byte 0x02024c10 _0801DA3C: ldr r4, _0801DA58 ldr r0, [r4] adds r0, 0x1 bl b_movescr_stack_push ldr r0, _0801DA5C str r0, [r4] _0801DA4A: add sp, 0xC pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0801DA58: .4byte 0x02024c10 _0801DA5C: .4byte gUnknown_081D8EEF thumb_func_end sub_801D8EC thumb_func_start sub_801DA60 sub_801DA60: @ 801DA60 push {lr} ldr r0, _0801DA78 ldr r0, [r0] cmp r0, 0 bne _0801DA72 ldr r1, _0801DA7C ldr r0, [r1] adds r0, 0x1 str r0, [r1] _0801DA72: pop {r0} bx r0 .align 2, 0 _0801DA78: .4byte 0x02024a64 _0801DA7C: .4byte 0x02024c10 thumb_func_end sub_801DA60 thumb_func_start sub_801DA80 sub_801DA80: @ 801DA80 push {r4,r5,lr} ldr r0, _0801DAE4 ldr r0, [r0] cmp r0, 0 bne _0801DB36 ldr r0, _0801DAE8 ldrb r1, [r0] movs r0, 0x29 ands r0, r1 cmp r0, 0 bne _0801DB2E ldr r0, _0801DAEC ldr r0, [r0] ldrb r0, [r0, 0x1] bl sub_8015150 ldr r2, _0801DAF0 strb r0, [r2] ldr r1, _0801DAF4 ldrb r2, [r2] movs r0, 0x58 muls r0, r2 adds r1, 0x50 adds r0, r1 ldr r0, [r0] movs r1, 0x80 lsls r1, 17 ands r0, r1 cmp r0, 0 beq _0801DB00 ldr r0, _0801DAF8 lsls r1, r2, 3 subs r1, r2 lsls r1, 2 adds r1, r0 ldrb r0, [r1, 0xA] cmp r0, 0 beq _0801DB00 ldr r0, _0801DAFC ldr r0, [r0] movs r1, 0x80 lsls r1, 1 ands r0, r1 cmp r0, 0 bne _0801DB00 movs r0, 0x80 adds r1, r2, 0 bl b_std_message b _0801DB2E .align 2, 0 _0801DAE4: .4byte 0x02024a64 _0801DAE8: .4byte 0x02024c68 _0801DAEC: .4byte 0x02024c10 _0801DAF0: .4byte 0x02024a60 _0801DAF4: .4byte 0x02024a80 _0801DAF8: .4byte 0x02024ca8 _0801DAFC: .4byte 0x02024c6c _0801DB00: ldr r5, _0801DB3C ldrh r1, [r5] movs r0, 0 bl dp01_build_cmdbuf_x18_0_aa_health_bar_update ldr r4, _0801DB40 ldrb r0, [r4] bl dp01_battle_side_mark_buffer_for_execution ldrb r0, [r4] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 bne _0801DB2E ldr r0, [r5] cmp r0, 0 ble _0801DB2E ldr r0, _0801DB44 ldrb r1, [r0, 0x5] movs r2, 0x1 orrs r1, r2 strb r1, [r0, 0x5] _0801DB2E: ldr r1, _0801DB48 ldr r0, [r1] adds r0, 0x2 str r0, [r1] _0801DB36: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0801DB3C: .4byte 0x02024bec _0801DB40: .4byte 0x02024a60 _0801DB44: .4byte 0x030042e0 _0801DB48: .4byte 0x02024c10 thumb_func_end sub_801DA80 thumb_func_start atk0C_datahpupdate atk0C_datahpupdate: @ 801DB4C push {r4-r7,lr} sub sp, 0x4 ldr r0, _0801DB74 ldr r0, [r0] cmp r0, 0 beq _0801DB5A b _0801DF2E _0801DB5A: ldr r0, _0801DB78 ldr r1, _0801DB7C adds r0, r1 ldrb r1, [r0] cmp r1, 0 beq _0801DB80 movs r0, 0x40 ands r0, r1 cmp r0, 0 bne _0801DB80 movs r6, 0x3F ands r6, r1 b _0801DB90 .align 2, 0 _0801DB74: .4byte 0x02024a64 _0801DB78: .4byte 0x02000000 _0801DB7C: .4byte 0x0001601c _0801DB80: ldr r2, _0801DC1C ldr r0, _0801DC20 ldrh r1, [r0] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r6, [r0, 0x2] _0801DB90: ldr r0, _0801DC24 ldrb r1, [r0] movs r0, 0x29 ands r0, r1 cmp r0, 0 beq _0801DB9E b _0801DF00 _0801DB9E: ldr r0, _0801DC28 ldr r0, [r0] ldrb r0, [r0, 0x1] bl sub_8015150 ldr r7, _0801DC2C strb r0, [r7] ldr r1, _0801DC30 ldrb r2, [r7] movs r0, 0x58 muls r0, r2 adds r1, 0x50 adds r0, r1 ldr r0, [r0] movs r1, 0x80 lsls r1, 17 ands r0, r1 cmp r0, 0 beq _0801DCB4 ldr r0, _0801DC34 lsls r1, r2, 3 subs r1, r2 lsls r1, 2 adds r4, r1, r0 ldrb r1, [r4, 0xA] mov r12, r0 cmp r1, 0 beq _0801DCB4 ldr r0, _0801DC38 ldr r3, [r0] movs r0, 0x80 lsls r0, 1 ands r3, r0 cmp r3, 0 bne _0801DCB4 adds r5, r1, 0 ldr r6, _0801DC3C ldr r4, [r6] cmp r5, r4 blt _0801DC48 ldr r0, _0801DC40 lsls r1, r2, 2 adds r1, r2 lsls r1, 2 adds r0, 0x4 adds r1, r0 ldr r0, [r1] cmp r0, 0 bne _0801DC02 str r4, [r1] _0801DC02: ldrb r0, [r7] lsls r1, r0, 3 subs r1, r0 lsls r1, 2 add r1, r12 ldr r2, [r6] ldrb r0, [r1, 0xA] subs r0, r2 strb r0, [r1, 0xA] ldr r1, _0801DC44 ldr r0, [r6] str r0, [r1] b _0801DC78 .align 2, 0 _0801DC1C: .4byte gBattleMoves _0801DC20: .4byte 0x02024be6 _0801DC24: .4byte 0x02024c68 _0801DC28: .4byte 0x02024c10 _0801DC2C: .4byte 0x02024a60 _0801DC30: .4byte 0x02024a80 _0801DC34: .4byte 0x02024ca8 _0801DC38: .4byte 0x02024c6c _0801DC3C: .4byte 0x02024bec _0801DC40: .4byte 0x02024d68 _0801DC44: .4byte 0x02024bf0 _0801DC48: ldr r0, _0801DCA0 lsls r1, r2, 2 adds r1, r2 lsls r1, 2 adds r0, 0x4 adds r1, r0 ldr r0, [r1] cmp r0, 0 bne _0801DC5C str r5, [r1] _0801DC5C: ldr r2, _0801DCA4 ldrb r1, [r7] lsls r0, r1, 3 subs r0, r1 lsls r0, 2 add r0, r12 ldrb r0, [r0, 0xA] str r0, [r2] ldrb r1, [r7] lsls r0, r1, 3 subs r0, r1 lsls r0, 2 add r0, r12 strb r3, [r0, 0xA] _0801DC78: ldr r0, _0801DCA8 ldrb r1, [r0] lsls r0, r1, 3 subs r0, r1 lsls r0, 2 add r0, r12 ldrb r0, [r0, 0xA] cmp r0, 0 beq _0801DC8C b _0801DF26 _0801DC8C: ldr r4, _0801DCAC ldr r0, [r4] adds r0, 0x2 str r0, [r4] bl b_movescr_stack_push_cursor ldr r0, _0801DCB0 str r0, [r4] b _0801DF2E .align 2, 0 _0801DCA0: .4byte 0x02024d68 _0801DCA4: .4byte 0x02024bf0 _0801DCA8: .4byte 0x02024a60 _0801DCAC: .4byte 0x02024c10 _0801DCB0: .4byte gUnknown_081D99AB _0801DCB4: ldr r0, _0801DCF4 ldr r2, [r0] ldr r1, _0801DCF8 ands r2, r1 str r2, [r0] ldr r1, _0801DCFC ldr r5, [r1] mov r12, r0 adds r7, r1, 0 cmp r5, 0 bge _0801DD08 ldr r4, _0801DD00 ldr r2, _0801DD04 ldrb r0, [r2] movs r3, 0x58 adds r1, r0, 0 muls r1, r3 adds r1, r4 ldrh r0, [r1, 0x28] subs r0, r5 strh r0, [r1, 0x28] ldrb r0, [r2] muls r0, r3 adds r1, r0, r4 ldrh r3, [r1, 0x2C] ldrh r0, [r1, 0x28] adds r5, r2, 0 cmp r0, r3 bhi _0801DCF0 b _0801DEC6 _0801DCF0: strh r3, [r1, 0x28] b _0801DEC6 .align 2, 0 _0801DCF4: .4byte 0x02024c6c _0801DCF8: .4byte 0xfffffeff _0801DCFC: .4byte 0x02024bec _0801DD00: .4byte 0x02024a80 _0801DD04: .4byte 0x02024a60 _0801DD08: movs r0, 0x20 ands r0, r2 cmp r0, 0 beq _0801DD24 movs r0, 0x21 negs r0, r0 ands r2, r0 mov r0, r12 str r2, [r0] ldr r5, _0801DD20 b _0801DD6C .align 2, 0 _0801DD20: .4byte 0x02024a60 _0801DD24: ldr r0, _0801DD4C ldr r2, _0801DD50 ldrb r1, [r2] lsls r1, 2 adds r1, r0 ldr r0, [r1] adds r0, r5 str r0, [r1] ldr r0, _0801DD54 ldr r0, [r0] ldrb r0, [r0, 0x1] adds r5, r2, 0 cmp r0, 0 bne _0801DD60 ldr r1, _0801DD58 ldrb r0, [r5] adds r0, r1 ldr r1, _0801DD5C b _0801DD68 .align 2, 0 _0801DD4C: .4byte 0x02024bf4 _0801DD50: .4byte 0x02024a60 _0801DD54: .4byte 0x02024c10 _0801DD58: .4byte 0x02024c74 _0801DD5C: .4byte 0x02024c07 _0801DD60: ldr r1, _0801DD8C ldrb r0, [r5] adds r0, r1 ldr r1, _0801DD90 _0801DD68: ldrb r1, [r1] strb r1, [r0] _0801DD6C: ldr r4, _0801DD94 ldrb r0, [r5] movs r3, 0x58 muls r0, r3 adds r2, r0, r4 ldrh r0, [r2, 0x28] ldr r1, [r7] cmp r0, r1 ble _0801DD9C subs r0, r1 strh r0, [r2, 0x28] ldr r0, _0801DD98 str r1, [r0] adds r7, r0, 0 b _0801DDAC .align 2, 0 _0801DD8C: .4byte 0x02024c74 _0801DD90: .4byte 0x02024c08 _0801DD94: .4byte 0x02024a80 _0801DD98: .4byte 0x02024bf0 _0801DD9C: ldr r2, _0801DE20 str r0, [r2] ldrb r0, [r5] muls r0, r3 adds r0, r4 movs r1, 0 strh r1, [r0, 0x28] adds r7, r2, 0 _0801DDAC: ldr r2, _0801DE24 ldrb r1, [r5] lsls r0, r1, 2 adds r0, r1 lsls r0, 2 adds r1, r2, 0x4 adds r3, r0, r1 ldr r0, [r3] adds r4, r2, 0 cmp r0, 0 bne _0801DDD4 mov r1, r12 ldr r0, [r1] movs r1, 0x80 lsls r1, 13 ands r0, r1 cmp r0, 0 bne _0801DDD4 ldr r0, [r7] str r0, [r3] _0801DDD4: cmp r6, 0x8 bhi _0801DE5C mov r1, r12 ldr r0, [r1] movs r1, 0x80 lsls r1, 13 ands r0, r1 cmp r0, 0 bne _0801DE58 ldr r0, _0801DE28 ldrh r0, [r0] cmp r0, 0xDC beq _0801DE58 ldr r3, _0801DE2C ldrb r0, [r5] lsls r0, 4 adds r1, r3, 0x4 adds r0, r1 ldr r2, [r7] str r2, [r0] ldrb r1, [r5] lsls r0, r1, 2 adds r0, r1 lsls r0, 2 adds r1, r4, 0 adds r1, 0x8 adds r0, r1 str r2, [r0] ldr r0, _0801DE30 ldr r0, [r0] ldrb r0, [r0, 0x1] cmp r0, 0 bne _0801DE38 ldrb r0, [r5] lsls r0, 4 adds r0, r3 ldr r2, _0801DE34 b _0801DE40 .align 2, 0 _0801DE20: .4byte 0x02024bf0 _0801DE24: .4byte 0x02024d68 _0801DE28: .4byte 0x02024be6 _0801DE2C: .4byte 0x02024d28 _0801DE30: .4byte 0x02024c10 _0801DE34: .4byte 0x02024c07 _0801DE38: ldrb r0, [r5] lsls r0, 4 adds r0, r3 ldr r2, _0801DE54 _0801DE40: ldrb r1, [r2] strb r1, [r0, 0xC] ldrb r1, [r5] lsls r0, r1, 2 adds r0, r1 lsls r0, 2 adds r0, r4 ldrb r1, [r2] strb r1, [r0, 0x10] b _0801DEC6 .align 2, 0 _0801DE54: .4byte 0x02024c08 _0801DE58: cmp r6, 0x8 bls _0801DEC6 _0801DE5C: mov r1, r12 ldr r0, [r1] movs r1, 0x80 lsls r1, 13 ands r0, r1 cmp r0, 0 bne _0801DEC6 ldr r3, _0801DEA0 ldrb r0, [r5] lsls r0, 4 adds r1, r3, 0 adds r1, 0x8 adds r0, r1 ldr r2, [r7] str r2, [r0] ldrb r1, [r5] lsls r0, r1, 2 adds r0, r1 lsls r0, 2 adds r1, r4, 0 adds r1, 0xC adds r0, r1 str r2, [r0] ldr r0, _0801DEA4 ldr r0, [r0] ldrb r0, [r0, 0x1] cmp r0, 0 bne _0801DEAC ldrb r0, [r5] lsls r0, 4 adds r0, r3 ldr r2, _0801DEA8 b _0801DEB4 .align 2, 0 _0801DEA0: .4byte 0x02024d28 _0801DEA4: .4byte 0x02024c10 _0801DEA8: .4byte 0x02024c07 _0801DEAC: ldrb r0, [r5] lsls r0, 4 adds r0, r3 ldr r2, _0801DEF4 _0801DEB4: ldrb r1, [r2] strb r1, [r0, 0xD] ldrb r1, [r5] lsls r0, r1, 2 adds r0, r1 lsls r0, 2 adds r0, r4 ldrb r1, [r2] strb r1, [r0, 0x11] _0801DEC6: mov r1, r12 ldr r0, [r1] ldr r1, _0801DEF8 ands r0, r1 mov r1, r12 str r0, [r1] ldrb r1, [r5] movs r0, 0x58 muls r0, r1 ldr r1, _0801DEFC adds r0, r1 str r0, [sp] movs r0, 0 movs r1, 0x2A movs r2, 0 movs r3, 0x2 bl dp01_build_cmdbuf_x02_a_b_varargs ldrb r0, [r5] bl dp01_battle_side_mark_buffer_for_execution b _0801DF26 .align 2, 0 _0801DEF4: .4byte 0x02024c08 _0801DEF8: .4byte 0xffefffff _0801DEFC: .4byte 0x02024aa8 _0801DF00: ldr r0, _0801DF38 ldr r0, [r0] ldrb r0, [r0, 0x1] bl sub_8015150 ldr r1, _0801DF3C strb r0, [r1] ldr r2, _0801DF40 ldrb r1, [r1] lsls r0, r1, 2 adds r0, r1 lsls r0, 2 adds r2, 0x4 adds r1, r0, r2 ldr r0, [r1] cmp r0, 0 bne _0801DF26 ldr r0, _0801DF44 str r0, [r1] _0801DF26: ldr r1, _0801DF38 ldr r0, [r1] adds r0, 0x2 str r0, [r1] _0801DF2E: add sp, 0x4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0801DF38: .4byte 0x02024c10 _0801DF3C: .4byte 0x02024a60 _0801DF40: .4byte 0x02024d68 _0801DF44: .4byte 0x0000ffff thumb_func_end atk0C_datahpupdate thumb_func_start atk0D_critmessage atk0D_critmessage: @ 801DF48 push {lr} ldr r0, _0801DF84 ldr r0, [r0] cmp r0, 0 bne _0801DF7E ldr r0, _0801DF88 ldrb r0, [r0] cmp r0, 0x2 bne _0801DF76 ldr r0, _0801DF8C ldrb r1, [r0] movs r0, 0x29 ands r0, r1 cmp r0, 0 bne _0801DF76 ldr r0, _0801DF90 ldrb r1, [r0] movs r0, 0xD9 bl b_std_message ldr r1, _0801DF94 movs r0, 0x1 strb r0, [r1, 0x7] _0801DF76: ldr r1, _0801DF98 ldr r0, [r1] adds r0, 0x1 str r0, [r1] _0801DF7E: pop {r0} bx r0 .align 2, 0 _0801DF84: .4byte 0x02024a64 _0801DF88: .4byte 0x02024c0d _0801DF8C: .4byte 0x02024c68 _0801DF90: .4byte 0x02024c07 _0801DF94: .4byte 0x02024d1e _0801DF98: .4byte 0x02024c10 thumb_func_end atk0D_critmessage thumb_func_start atk0E_missmessage atk0E_missmessage: @ 801DF9C push {r4,lr} ldr r0, _0801DFD4 ldr r0, [r0] cmp r0, 0 bne _0801E05C ldr r4, _0801DFD8 ldr r0, _0801DFDC ldrb r0, [r0] strb r0, [r4] ldr r1, _0801DFE0 ldrb r2, [r1] movs r0, 0x1 ands r0, r2 cmp r0, 0 bne _0801E054 movs r0, 0xFE ands r0, r2 cmp r0, 0x10 beq _0801E00E cmp r0, 0x10 bgt _0801DFEA cmp r0, 0x4 beq _0801DFFE cmp r0, 0x4 bgt _0801DFE4 cmp r0, 0x2 beq _0801DFF8 b _0801E00E .align 2, 0 _0801DFD4: .4byte 0x02024a64 _0801DFD8: .4byte 0x02024a60 _0801DFDC: .4byte 0x02024c08 _0801DFE0: .4byte 0x02024c68 _0801DFE4: cmp r0, 0x8 beq _0801E054 b _0801E00E _0801DFEA: cmp r0, 0x40 beq _0801E00E cmp r0, 0x40 bgt _0801E00E cmp r0, 0x20 beq _0801E054 b _0801E00E _0801DFF8: movs r0, 0 movs r1, 0xE b _0801E002 _0801DFFE: movs r0, 0 movs r1, 0xC _0801E002: bl dp01_build_cmdbuf_x2B_aa_0 ldrb r0, [r4] bl dp01_battle_side_mark_buffer_for_execution b _0801E054 _0801E00E: ldrb r1, [r1] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _0801E01E movs r0, 0 movs r1, 0xE b _0801E02A _0801E01E: movs r0, 0x4 ands r0, r1 cmp r0, 0 beq _0801E03C movs r0, 0 movs r1, 0xC _0801E02A: bl dp01_build_cmdbuf_x2B_aa_0 ldr r0, _0801E038 ldrb r0, [r0] bl dp01_battle_side_mark_buffer_for_execution b _0801E054 .align 2, 0 _0801E038: .4byte 0x02024a60 _0801E03C: movs r0, 0x28 ands r0, r1 cmp r0, 0 bne _0801E054 movs r0, 0 movs r1, 0xD bl dp01_build_cmdbuf_x2B_aa_0 ldr r0, _0801E064 ldrb r0, [r0] bl dp01_battle_side_mark_buffer_for_execution _0801E054: ldr r1, _0801E068 ldr r0, [r1] adds r0, 0x1 str r0, [r1] _0801E05C: pop {r4} pop {r0} bx r0 .align 2, 0 _0801E064: .4byte 0x02024a60 _0801E068: .4byte 0x02024c10 thumb_func_end atk0E_missmessage thumb_func_start atk0F_resultmessage atk0F_resultmessage: @ 801E06C push {r4-r7,lr} movs r3, 0 ldr r0, _0801E0A8 ldr r0, [r0] cmp r0, 0 beq _0801E07A b _0801E20C _0801E07A: ldr r1, _0801E0AC ldrb r2, [r1] movs r4, 0x1 adds r0, r4, 0 ands r0, r2 adds r6, r1, 0 ldr r7, _0801E0B0 cmp r0, 0 beq _0801E0B8 movs r0, 0x8 ands r0, r2 cmp r0, 0 beq _0801E09A ldrb r0, [r7, 0x6] cmp r0, 0x2 bls _0801E0B8 _0801E09A: ldr r1, _0801E0B4 ldrb r0, [r7, 0x6] lsls r0, 1 adds r0, r1 ldrh r3, [r0] strb r4, [r7, 0x7] b _0801E1F6 .align 2, 0 _0801E0A8: .4byte 0x02024a64 _0801E0AC: .4byte 0x02024c68 _0801E0B0: .4byte 0x02024d1e _0801E0B4: .4byte gUnknown_08401508 _0801E0B8: movs r0, 0x1 strb r0, [r7, 0x7] ldrb r5, [r6] movs r0, 0xFE ands r0, r5 cmp r0, 0x10 beq _0801E0FC cmp r0, 0x10 bgt _0801E0DE cmp r0, 0x4 beq _0801E0F8 cmp r0, 0x4 bgt _0801E0D8 cmp r0, 0x2 beq _0801E0F4 b _0801E144 _0801E0D8: cmp r0, 0x8 beq _0801E150 b _0801E144 _0801E0DE: cmp r0, 0x40 beq _0801E100 cmp r0, 0x40 bgt _0801E0EE cmp r0, 0x20 bne _0801E0EC b _0801E1F0 _0801E0EC: b _0801E144 _0801E0EE: cmp r0, 0x80 beq _0801E104 b _0801E144 _0801E0F4: movs r3, 0xDE b _0801E1FA _0801E0F8: movs r3, 0xDD b _0801E1FA _0801E0FC: movs r3, 0xDA b _0801E1FA _0801E100: movs r3, 0x99 b _0801E1FA _0801E104: ldr r4, _0801E12C ldr r2, _0801E130 ldr r3, _0801E134 ldrb r1, [r3] movs r0, 0x58 muls r0, r1 adds r0, r2 ldrh r0, [r0, 0x2E] strh r0, [r4] ldr r1, _0801E138 ldrb r0, [r3] strb r0, [r1] movs r0, 0x3F ands r0, r5 strb r0, [r6] bl b_movescr_stack_push_cursor ldr r1, _0801E13C ldr r0, _0801E140 b _0801E20A .align 2, 0 _0801E12C: .4byte 0x02024c04 _0801E130: .4byte 0x02024a80 _0801E134: .4byte 0x02024c08 _0801E138: .4byte 0x02024c0b _0801E13C: .4byte 0x02024c10 _0801E140: .4byte gUnknown_081D9AC6 _0801E144: adds r2, r6, 0 ldrb r5, [r2] movs r0, 0x8 ands r0, r5 cmp r0, 0 beq _0801E154 _0801E150: movs r3, 0x1B b _0801E1FA _0801E154: movs r0, 0x10 ands r0, r5 cmp r0, 0 beq _0801E17C movs r0, 0xEF ands r0, r5 movs r1, 0xFD ands r0, r1 movs r1, 0xFB ands r0, r1 strb r0, [r2] bl b_movescr_stack_push_cursor ldr r1, _0801E174 ldr r0, _0801E178 b _0801E20A .align 2, 0 _0801E174: .4byte 0x02024c10 _0801E178: .4byte gUnknown_081D94A9 _0801E17C: movs r0, 0x40 ands r0, r5 cmp r0, 0 beq _0801E19C movs r0, 0x3F ands r0, r5 strb r0, [r2] bl b_movescr_stack_push_cursor ldr r1, _0801E194 ldr r0, _0801E198 b _0801E20A .align 2, 0 _0801E194: .4byte 0x02024c10 _0801E198: .4byte gUnknown_081D94A2 _0801E19C: movs r0, 0x80 ands r0, r5 cmp r0, 0 beq _0801E1E4 ldr r4, _0801E1CC ldr r2, _0801E1D0 ldr r3, _0801E1D4 ldrb r1, [r3] movs r0, 0x58 muls r0, r1 adds r0, r2 ldrh r0, [r0, 0x2E] strh r0, [r4] ldr r1, _0801E1D8 ldrb r0, [r3] strb r0, [r1] movs r0, 0x3F ands r0, r5 strb r0, [r6] bl b_movescr_stack_push_cursor ldr r1, _0801E1DC ldr r0, _0801E1E0 b _0801E20A .align 2, 0 _0801E1CC: .4byte 0x02024c04 _0801E1D0: .4byte 0x02024a80 _0801E1D4: .4byte 0x02024c08 _0801E1D8: .4byte 0x02024c0b _0801E1DC: .4byte 0x02024c10 _0801E1E0: .4byte gUnknown_081D9AC6 _0801E1E4: movs r0, 0x20 ands r0, r5 lsls r0, 24 lsrs r0, 24 cmp r0, 0 beq _0801E1F4 _0801E1F0: movs r3, 0xE5 b _0801E1FA _0801E1F4: strb r0, [r7, 0x7] _0801E1F6: cmp r3, 0 beq _0801E204 _0801E1FA: adds r0, r3, 0 ldr r1, _0801E214 ldrb r1, [r1] bl b_std_message _0801E204: ldr r1, _0801E218 ldr r0, [r1] adds r0, 0x1 _0801E20A: str r0, [r1] _0801E20C: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0801E214: .4byte 0x02024c07 _0801E218: .4byte 0x02024c10 thumb_func_end atk0F_resultmessage thumb_func_start atk10_printstring atk10_printstring: @ 801E21C push {r4,lr} ldr r0, _0801E24C ldr r0, [r0] cmp r0, 0 bne _0801E246 ldr r4, _0801E250 ldr r1, [r4] ldrb r0, [r1, 0x1] ldrb r1, [r1, 0x2] lsls r1, 8 orrs r0, r1 ldr r1, _0801E254 ldrb r1, [r1] bl b_std_message ldr r0, [r4] adds r0, 0x3 str r0, [r4] ldr r1, _0801E258 movs r0, 0x1 strb r0, [r1, 0x7] _0801E246: pop {r4} pop {r0} bx r0 .align 2, 0 _0801E24C: .4byte 0x02024a64 _0801E250: .4byte 0x02024c10 _0801E254: .4byte 0x02024c07 _0801E258: .4byte 0x02024d1e thumb_func_end atk10_printstring thumb_func_start atk11_printstring2 atk11_printstring2: @ 801E25C push {r4,r5,lr} ldr r5, _0801E290 ldr r0, _0801E294 ldrb r0, [r0] strb r0, [r5] ldr r4, _0801E298 ldr r0, [r4] ldrb r1, [r0, 0x1] ldrb r0, [r0, 0x2] lsls r0, 8 orrs r1, r0 movs r0, 0 bl dp01_build_cmdbuf_x11_TODO ldrb r0, [r5] bl dp01_battle_side_mark_buffer_for_execution ldr r0, [r4] adds r0, 0x3 str r0, [r4] ldr r1, _0801E29C movs r0, 0x1 strb r0, [r1, 0x7] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0801E290: .4byte 0x02024a60 _0801E294: .4byte 0x02024c07 _0801E298: .4byte 0x02024c10 _0801E29C: .4byte 0x02024d1e thumb_func_end atk11_printstring2 thumb_func_start atk12_waitmessage atk12_waitmessage: @ 801E2A0 push {r4-r6,lr} ldr r0, _0801E2BC ldr r4, [r0] cmp r4, 0 bne _0801E2EE ldr r6, _0801E2C0 ldrb r0, [r6, 0x7] cmp r0, 0 bne _0801E2C8 ldr r1, _0801E2C4 ldr r0, [r1] adds r0, 0x3 str r0, [r1] b _0801E2EE .align 2, 0 _0801E2BC: .4byte 0x02024a64 _0801E2C0: .4byte 0x02024d1e _0801E2C4: .4byte 0x02024c10 _0801E2C8: ldr r5, _0801E2F4 ldr r2, [r5] ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] lsls r0, 8 orrs r1, r0 ldr r3, _0801E2F8 ldrh r0, [r3] adds r0, 0x1 strh r0, [r3] lsls r0, 16 lsrs r0, 16 cmp r0, r1 bcc _0801E2EE movs r1, 0 strh r4, [r3] adds r0, r2, 0x3 str r0, [r5] strb r1, [r6, 0x7] _0801E2EE: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0801E2F4: .4byte 0x02024c10 _0801E2F8: .4byte 0x02024d18 thumb_func_end atk12_waitmessage thumb_func_start atk13_printfromtable atk13_printfromtable: @ 801E2FC push {r4,r5,lr} ldr r0, _0801E340 ldr r0, [r0] cmp r0, 0 bne _0801E33A ldr r4, _0801E344 ldr r2, [r4] ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x4] lsls r0, 24 orrs r1, r0 ldr r5, _0801E348 ldrb r0, [r5, 0x5] lsls r0, 1 adds r1, r0 ldrh r0, [r1] ldr r1, _0801E34C ldrb r1, [r1] bl b_std_message ldr r0, [r4] adds r0, 0x5 str r0, [r4] movs r0, 0x1 strb r0, [r5, 0x7] _0801E33A: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0801E340: .4byte 0x02024a64 _0801E344: .4byte 0x02024c10 _0801E348: .4byte 0x02024d1e _0801E34C: .4byte 0x02024c07 thumb_func_end atk13_printfromtable thumb_func_start atk14_printfromtable2 atk14_printfromtable2: @ 801E350 push {r4-r6,lr} ldr r0, _0801E3A0 ldr r0, [r0] cmp r0, 0 bne _0801E39A ldr r5, _0801E3A4 ldr r2, [r5] ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x4] lsls r0, 24 orrs r1, r0 ldr r6, _0801E3A8 ldrb r0, [r6, 0x5] lsls r0, 1 adds r1, r0 ldr r4, _0801E3AC ldr r0, _0801E3B0 ldrb r0, [r0] strb r0, [r4] ldrh r1, [r1] movs r0, 0 bl dp01_build_cmdbuf_x11_TODO ldrb r0, [r4] bl dp01_battle_side_mark_buffer_for_execution ldr r0, [r5] adds r0, 0x5 str r0, [r5] movs r0, 0x1 strb r0, [r6, 0x7] _0801E39A: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0801E3A0: .4byte 0x02024a64 _0801E3A4: .4byte 0x02024c10 _0801E3A8: .4byte 0x02024d1e _0801E3AC: .4byte 0x02024a60 _0801E3B0: .4byte 0x02024c07 thumb_func_end atk14_printfromtable2 thumb_func_start sub_801E3B4 sub_801E3B4: @ 801E3B4 push {r4,lr} lsls r0, 24 lsrs r2, r0, 24 movs r1, 0 ldr r0, _0801E3E4 ldrb r3, [r0] cmp r1, r3 bge _0801E3DA ldr r4, _0801E3E8 ldrb r0, [r4] cmp r0, r2 beq _0801E3DA _0801E3CC: adds r1, 0x1 cmp r1, r3 bge _0801E3DA adds r0, r1, r4 ldrb r0, [r0] cmp r0, r2 bne _0801E3CC _0801E3DA: lsls r0, r1, 24 lsrs r0, 24 pop {r4} pop {r1} bx r1 .align 2, 0 _0801E3E4: .4byte 0x02024a68 _0801E3E8: .4byte 0x02024a7a thumb_func_end sub_801E3B4 thumb_func_start sub_801E3EC sub_801E3EC: @ 801E3EC push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x8 lsls r0, 24 lsrs r4, r0, 24 lsls r1, 24 lsrs r5, r1, 24 movs r0, 0 mov r10, r0 movs r6, 0 movs r1, 0x1 str r1, [sp, 0x4] ldr r1, _0801E430 ldrb r3, [r1, 0x3] movs r0, 0x40 ands r0, r3 adds r7, r1, 0 cmp r0, 0 beq _0801E444 ldr r2, _0801E434 ldr r0, _0801E438 ldrb r0, [r0] strb r0, [r2] movs r0, 0xBF ands r0, r3 strb r0, [r7, 0x3] movs r6, 0x40 ldr r0, _0801E43C ldr r1, _0801E440 b _0801E450 .align 2, 0 _0801E430: .4byte 0x02024d1e _0801E434: .4byte 0x02024c0a _0801E438: .4byte 0x02024c07 _0801E43C: .4byte 0x02000000 _0801E440: .4byte 0x02024c08 _0801E444: ldr r2, _0801E538 ldr r0, _0801E53C ldrb r0, [r0] strb r0, [r2] ldr r0, _0801E540 ldr r1, _0801E544 _0801E450: ldrb r1, [r1] ldr r3, _0801E548 adds r0, r3 strb r1, [r0] mov r8, r2 ldr r2, _0801E54C mov r0, r8 ldrb r1, [r0] movs r0, 0x58 muls r0, r1 adds r0, r2 adds r0, 0x20 ldrb r0, [r0] cmp r0, 0x13 bne _0801E48A ldr r0, _0801E550 ldr r0, [r0] movs r1, 0x80 lsls r1, 6 ands r0, r1 cmp r0, 0 bne _0801E48A cmp r4, 0 bne _0801E48A ldrb r0, [r7, 0x3] cmp r0, 0x9 bhi _0801E48A bl _0801F5DC _0801E48A: mov r1, r8 ldrb r0, [r1] bl battle_get_per_side_status ldr r2, _0801E554 movs r1, 0x1 ands r1, r0 lsls r1, 1 adds r1, r2 ldrh r1, [r1] movs r0, 0x20 ands r0, r1 cmp r0, 0 beq _0801E4C4 ldr r0, _0801E550 ldr r0, [r0] movs r1, 0x80 lsls r1, 6 ands r0, r1 cmp r0, 0 bne _0801E4C4 cmp r4, 0 bne _0801E4C4 ldr r0, _0801E558 ldrb r0, [r0, 0x3] cmp r0, 0x7 bhi _0801E4C4 bl _0801F5DC _0801E4C4: ldr r3, _0801E54C ldr r2, _0801E538 ldrb r1, [r2] movs r0, 0x58 muls r0, r1 adds r0, r3 ldrh r0, [r0, 0x28] mov r8, r2 mov r9, r3 cmp r0, 0 bne _0801E4EA ldr r0, _0801E558 ldrb r0, [r0, 0x3] cmp r0, 0xB beq _0801E4EA cmp r0, 0x1F beq _0801E4EA bl _0801F5DC _0801E4EA: mov r2, r8 ldrb r1, [r2] movs r0, 0x58 muls r0, r1 mov r1, r9 adds r1, 0x50 adds r0, r1 ldr r0, [r0] movs r1, 0x80 lsls r1, 17 ands r0, r1 cmp r0, 0 beq _0801E50C cmp r6, 0x40 beq _0801E50C bl _0801F5DC _0801E50C: ldr r0, _0801E558 ldrb r1, [r0, 0x3] adds r7, r0, 0 cmp r1, 0x6 bls _0801E518 b _0801EB4A _0801E518: ldr r1, _0801E55C ldrb r0, [r7, 0x3] lsls r0, 2 adds r0, r1 ldr r0, [r0] cmp r0, 0x10 bne _0801E528 b _0801E714 _0801E528: cmp r0, 0x10 bhi _0801E560 cmp r0, 0x7 beq _0801E57A cmp r0, 0x8 bne _0801E536 b _0801E630 _0801E536: b _0801EA14 .align 2, 0 _0801E538: .4byte 0x02024c0a _0801E53C: .4byte 0x02024c08 _0801E540: .4byte 0x02000000 _0801E544: .4byte 0x02024c07 _0801E548: .4byte 0x00016003 _0801E54C: .4byte 0x02024a80 _0801E550: .4byte 0x02024c6c _0801E554: .4byte 0x02024c7a _0801E558: .4byte 0x02024d1e _0801E55C: .4byte gUnknown_081FAB5C _0801E560: cmp r0, 0x40 bne _0801E566 b _0801E888 _0801E566: cmp r0, 0x40 bhi _0801E572 cmp r0, 0x20 bne _0801E570 b _0801E7EA _0801E570: b _0801EA14 _0801E572: cmp r0, 0x80 bne _0801E578 b _0801E8E4 _0801E578: b _0801EA14 _0801E57A: mov r3, r8 ldrb r1, [r3] movs r0, 0x58 muls r0, r1 add r0, r9 adds r0, 0x20 ldrb r0, [r0] cmp r0, 0x2B beq _0801E5DC ldr r0, _0801E5D4 movs r1, 0 strb r1, [r0] ldr r1, _0801E5D8 ldrb r3, [r1] adds r7, r0, 0 mov r12, r1 cmp r3, 0 beq _0801E5E8 mov r4, r9 ldr r0, [r4, 0x50] movs r1, 0x70 ands r0, r1 cmp r0, 0 bne _0801E5E8 adds r1, r7, 0 mov r6, r9 adds r6, 0x50 movs r5, 0x58 movs r4, 0x70 _0801E5B4: ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] lsls r0, 24 lsrs r0, 24 cmp r0, r3 bcs _0801E5E8 ldrb r0, [r7] muls r0, r5 adds r0, r6 ldr r0, [r0] ands r0, r4 cmp r0, 0 beq _0801E5B4 b _0801E5E8 .align 2, 0 _0801E5D4: .4byte 0x02024a60 _0801E5D8: .4byte 0x02024a68 _0801E5DC: ldr r0, _0801E628 ldr r2, _0801E62C ldrb r1, [r2] strb r1, [r0] adds r7, r0, 0 mov r12, r2 _0801E5E8: mov r0, r8 ldrb r2, [r0] movs r0, 0x58 adds r1, r2, 0 muls r1, r0 mov r0, r9 adds r0, 0x4C adds r0, r1, r0 ldr r0, [r0] cmp r0, 0 beq _0801E600 b _0801EA14 _0801E600: ldrb r0, [r7] mov r3, r12 ldrb r3, [r3] cmp r0, r3 beq _0801E60C b _0801EA14 _0801E60C: mov r4, r9 adds r0, r1, r4 adds r0, 0x20 ldrb r0, [r0] cmp r0, 0x48 bne _0801E61A b _0801EA14 _0801E61A: cmp r0, 0xF bne _0801E620 b _0801EA14 _0801E620: adds r0, r2, 0 bl b_cancel_multi_turn_move_maybe b _0801EA04 .align 2, 0 _0801E628: .4byte 0x02024a60 _0801E62C: .4byte 0x02024a68 _0801E630: mov r2, r8 ldrb r1, [r2] movs r0, 0x58 muls r0, r1 add r0, r9 adds r0, 0x20 ldrb r1, [r0] cmp r1, 0x11 bne _0801E688 cmp r4, 0x1 beq _0801E64A cmp r5, 0x80 bne _0801E688 _0801E64A: ldr r0, _0801E678 strb r1, [r0] mov r3, r8 ldrb r0, [r3] movs r1, 0x11 bl sub_81074C4 ldr r4, _0801E67C ldr r0, [r4] adds r0, 0x1 bl b_movescr_stack_push ldr r0, _0801E680 _0801E664: str r0, [r4] ldr r2, _0801E684 ldr r1, [r2] movs r0, 0x80 lsls r0, 6 ands r0, r1 cmp r0, 0 beq _0801E676 b _0801E928 _0801E676: b _0801E94C .align 2, 0 _0801E678: .4byte 0x02024c06 _0801E67C: .4byte 0x02024c10 _0801E680: .4byte gUnknown_081D98BD _0801E684: .4byte 0x02024c6c _0801E688: mov r1, r8 ldrb r0, [r1] movs r1, 0x58 muls r0, r1 add r0, r9 adds r1, r0, 0 adds r1, 0x21 ldrb r1, [r1] cmp r1, 0x3 beq _0801E6AC adds r0, 0x22 ldrb r0, [r0] cmp r0, 0x3 beq _0801E6AC cmp r1, 0x8 beq _0801E6AC cmp r0, 0x8 bne _0801E6C6 _0801E6AC: ldr r0, _0801E710 ldr r0, [r0] movs r1, 0x80 lsls r1, 6 ands r0, r1 cmp r0, 0 beq _0801E6C6 cmp r4, 0x1 bne _0801E6C0 b _0801E98C _0801E6C0: cmp r5, 0x80 bne _0801E6C6 b _0801E98C _0801E6C6: mov r2, r8 ldrb r1, [r2] movs r0, 0x58 muls r1, r0 mov r4, r9 adds r3, r1, r4 adds r0, r3, 0 adds r0, 0x21 ldrb r4, [r0] cmp r4, 0x3 bne _0801E6DE b _0801EA14 _0801E6DE: adds r0, 0x1 ldrb r0, [r0] cmp r0, 0x3 bne _0801E6E8 b _0801EA14 _0801E6E8: cmp r4, 0x8 bne _0801E6EE b _0801EA14 _0801E6EE: cmp r0, 0x8 bne _0801E6F4 b _0801EA14 _0801E6F4: mov r0, r9 adds r0, 0x4C adds r0, r1, r0 ldr r0, [r0] cmp r0, 0 beq _0801E702 b _0801EA14 _0801E702: adds r0, r3, 0 adds r0, 0x20 ldrb r0, [r0] cmp r0, 0x11 bne _0801E70E b _0801EA14 _0801E70E: b _0801EA04 .align 2, 0 _0801E710: .4byte 0x02024c6c _0801E714: mov r2, r8 ldrb r1, [r2] movs r0, 0x58 muls r0, r1 add r0, r9 adds r0, 0x20 ldrb r1, [r0] cmp r1, 0x29 bne _0801E758 cmp r4, 0x1 beq _0801E72E cmp r5, 0x80 bne _0801E758 _0801E72E: ldr r0, _0801E74C strb r1, [r0] mov r3, r8 ldrb r0, [r3] movs r1, 0x29 bl sub_81074C4 ldr r4, _0801E750 ldr r0, [r4] adds r0, 0x1 bl b_movescr_stack_push ldr r0, _0801E754 b _0801E664 .align 2, 0 _0801E74C: .4byte 0x02024c06 _0801E750: .4byte 0x02024c10 _0801E754: .4byte gUnknown_081D98A5 _0801E758: mov r0, r8 ldrb r1, [r0] movs r0, 0x58 muls r0, r1 mov r2, r9 adds r1, r0, r2 adds r0, r1, 0 adds r0, 0x21 ldrb r0, [r0] cmp r0, 0xA beq _0801E778 adds r0, r1, 0 adds r0, 0x22 ldrb r0, [r0] cmp r0, 0xA bne _0801E7A8 _0801E778: ldr r0, _0801E79C ldr r0, [r0] movs r1, 0x80 lsls r1, 6 ands r0, r1 cmp r0, 0 beq _0801E7A8 cmp r4, 0x1 beq _0801E78E cmp r5, 0x80 bne _0801E7A8 _0801E78E: ldr r4, _0801E7A0 ldr r0, [r4] adds r0, 0x1 bl b_movescr_stack_push ldr r0, _0801E7A4 b _0801E998 .align 2, 0 _0801E79C: .4byte 0x02024c6c _0801E7A0: .4byte 0x02024c10 _0801E7A4: .4byte gUnknown_081D98A5 _0801E7A8: mov r3, r8 ldrb r0, [r3] movs r1, 0x58 adds r2, r0, 0 muls r2, r1 mov r4, r9 adds r1, r2, r4 adds r0, r1, 0 adds r0, 0x21 ldrb r0, [r0] cmp r0, 0xA bne _0801E7C2 b _0801EA14 _0801E7C2: adds r0, r1, 0 adds r0, 0x22 ldrb r0, [r0] cmp r0, 0xA bne _0801E7CE b _0801EA14 _0801E7CE: adds r0, r1, 0 adds r0, 0x20 ldrb r0, [r0] cmp r0, 0x29 bne _0801E7DA b _0801EA14 _0801E7DA: mov r0, r9 adds r0, 0x4C adds r0, r2, r0 ldr r0, [r0] cmp r0, 0 beq _0801E7E8 b _0801EA14 _0801E7E8: b _0801EA04 _0801E7EA: movs r0, 0 str r0, [sp] movs r0, 0x13 movs r1, 0 movs r2, 0xD movs r3, 0 bl sub_8018324 lsls r0, 24 lsrs r0, 24 cmp r0, 0 bne _0801E826 str r0, [sp] movs r0, 0x13 movs r1, 0 movs r2, 0x4D movs r3, 0 bl sub_8018324 lsls r0, 24 cmp r0, 0 bne _0801E826 ldr r0, _0801E87C ldrh r1, [r0] movs r0, 0x60 ands r0, r1 cmp r0, 0 beq _0801E826 movs r1, 0 str r1, [sp, 0x4] _0801E826: ldr r4, _0801E880 ldr r0, _0801E884 ldrb r3, [r0] movs r0, 0x58 adds r2, r3, 0 muls r2, r0 adds r1, r2, r4 adds r0, r1, 0 adds r0, 0x21 ldrb r0, [r0] cmp r0, 0xF bne _0801E840 b _0801EA14 _0801E840: adds r0, r1, 0 adds r0, 0x22 ldrb r0, [r0] cmp r0, 0xF bne _0801E84C b _0801EA14 _0801E84C: adds r0, r4, 0 adds r0, 0x4C adds r0, r2, r0 ldr r0, [r0] cmp r0, 0 beq _0801E85A b _0801EA14 _0801E85A: ldr r2, [sp, 0x4] cmp r2, 0 bne _0801E862 b _0801EA14 _0801E862: adds r0, r1, 0 adds r0, 0x20 ldrb r0, [r0] cmp r0, 0x28 bne _0801E86E b _0801EA14 _0801E86E: adds r0, r3, 0 bl b_cancel_multi_turn_move_maybe movs r3, 0x1 mov r10, r3 b _0801EA14 .align 2, 0 _0801E87C: .4byte 0x02024db8 _0801E880: .4byte 0x02024a80 _0801E884: .4byte 0x02024c0a _0801E888: mov r0, r8 ldrb r1, [r0] movs r0, 0x58 muls r1, r0 mov r2, r9 adds r0, r1, r2 adds r0, 0x20 ldrb r2, [r0] cmp r2, 0x7 bne _0801E8D0 cmp r4, 0x1 beq _0801E8A6 cmp r5, 0x80 beq _0801E8A6 b _0801EA14 _0801E8A6: ldr r0, _0801E8C4 strb r2, [r0] mov r3, r8 ldrb r0, [r3] movs r1, 0x7 bl sub_81074C4 ldr r4, _0801E8C8 ldr r0, [r4] adds r0, 0x1 bl b_movescr_stack_push ldr r0, _0801E8CC b _0801E664 .align 2, 0 _0801E8C4: .4byte 0x02024c06 _0801E8C8: .4byte 0x02024c10 _0801E8CC: .4byte gUnknown_081D98B1 _0801E8D0: mov r0, r9 adds r0, 0x4C adds r0, r1, r0 ldr r0, [r0] cmp r0, 0 beq _0801E8DE b _0801EA14 _0801E8DE: movs r4, 0x1 mov r10, r4 b _0801EA14 _0801E8E4: mov r0, r8 ldrb r1, [r0] movs r0, 0x58 muls r0, r1 add r0, r9 adds r0, 0x20 ldrb r1, [r0] cmp r1, 0x11 bne _0801E952 cmp r4, 0x1 beq _0801E8FE cmp r5, 0x80 bne _0801E952 _0801E8FE: ldr r0, _0801E938 strb r1, [r0] mov r1, r8 ldrb r0, [r1] movs r1, 0x11 bl sub_81074C4 ldr r4, _0801E93C ldr r0, [r4] adds r0, 0x1 bl b_movescr_stack_push ldr r0, _0801E940 str r0, [r4] ldr r2, _0801E944 ldr r1, [r2] movs r0, 0x80 lsls r0, 6 ands r0, r1 cmp r0, 0 beq _0801E94C _0801E928: movs r0, 0x1 strb r0, [r7, 0x5] ldr r0, _0801E948 ands r1, r0 str r1, [r2] bl _0801F5FA .align 2, 0 _0801E938: .4byte 0x02024c06 _0801E93C: .4byte 0x02024c10 _0801E940: .4byte gUnknown_081D98BD _0801E944: .4byte 0x02024c6c _0801E948: .4byte 0xffffdfff _0801E94C: strb r0, [r7, 0x5] bl _0801F5FA _0801E952: mov r2, r8 ldrb r0, [r2] movs r1, 0x58 muls r0, r1 add r0, r9 adds r1, r0, 0 adds r1, 0x21 ldrb r1, [r1] cmp r1, 0x3 beq _0801E976 adds r0, 0x22 ldrb r0, [r0] cmp r0, 0x3 beq _0801E976 cmp r1, 0x8 beq _0801E976 cmp r0, 0x8 bne _0801E9B4 _0801E976: ldr r0, _0801E9A4 ldr r0, [r0] movs r1, 0x80 lsls r1, 6 ands r0, r1 cmp r0, 0 beq _0801E9B4 cmp r4, 0x1 beq _0801E98C cmp r5, 0x80 bne _0801E9B4 _0801E98C: ldr r4, _0801E9A8 ldr r0, [r4] adds r0, 0x1 bl b_movescr_stack_push ldr r0, _0801E9AC _0801E998: str r0, [r4] ldr r1, _0801E9B0 movs r0, 0x2 strb r0, [r1, 0x5] bl _0801F5FA .align 2, 0 _0801E9A4: .4byte 0x02024c6c _0801E9A8: .4byte 0x02024c10 _0801E9AC: .4byte gUnknown_081D98BD _0801E9B0: .4byte 0x02024d1e _0801E9B4: mov r3, r8 ldrb r0, [r3] movs r6, 0x58 muls r0, r6 mov r2, r9 adds r2, 0x4C adds r5, r0, r2 ldr r4, [r5] cmp r4, 0 bne _0801EA14 mov r3, r9 adds r1, r0, r3 adds r0, r1, 0 adds r0, 0x21 ldrb r3, [r0] cmp r3, 0x3 beq _0801EA0A adds r0, 0x1 ldrb r0, [r0] cmp r0, 0x3 beq _0801EA0A cmp r3, 0x8 beq _0801EA0A cmp r0, 0x8 beq _0801EA0A adds r0, r1, 0 adds r0, 0x20 ldrb r0, [r0] cmp r0, 0x11 beq _0801EA14 mov r4, r8 ldrb r0, [r4] adds r1, r0, 0 muls r1, r6 adds r1, r2 ldr r0, [r1] movs r2, 0x9 negs r2, r2 ands r0, r2 str r0, [r1] _0801EA04: movs r0, 0x1 mov r10, r0 b _0801EA14 _0801EA0A: ldr r0, _0801EA58 ldrb r1, [r0] movs r2, 0x8 orrs r1, r2 strb r1, [r0] _0801EA14: mov r1, r10 cmp r1, 0x1 beq _0801EA1C b _0801EB3C _0801EA1C: ldr r0, _0801EA5C ldr r0, [r0] adds r0, 0x1 bl b_movescr_stack_push ldr r1, _0801EA60 ldr r0, _0801EA64 ldrb r0, [r0, 0x3] lsls r0, 2 adds r0, r1 ldr r3, [r0] cmp r3, 0x7 bne _0801EA70 bl Random ldr r2, _0801EA68 ldr r1, _0801EA6C ldrb r3, [r1] movs r1, 0x58 muls r3, r1 adds r2, 0x4C adds r3, r2 movs r1, 0x3 ands r1, r0 adds r1, 0x2 ldr r0, [r3] orrs r0, r1 str r0, [r3] b _0801EA84 .align 2, 0 _0801EA58: .4byte 0x02024c68 _0801EA5C: .4byte 0x02024c10 _0801EA60: .4byte gUnknown_081FAB5C _0801EA64: .4byte 0x02024d1e _0801EA68: .4byte 0x02024a80 _0801EA6C: .4byte 0x02024c0a _0801EA70: ldr r2, _0801EAD4 ldr r0, _0801EAD8 ldrb r1, [r0] movs r0, 0x58 muls r1, r0 adds r2, 0x4C adds r1, r2 ldr r0, [r1] orrs r0, r3 str r0, [r1] _0801EA84: ldr r2, _0801EADC ldr r1, _0801EAE0 ldr r5, _0801EAE4 ldrb r0, [r5, 0x3] lsls r0, 2 adds r0, r1 ldr r0, [r0] str r0, [r2] ldr r4, _0801EAE8 ldr r1, _0801EAD8 ldrb r0, [r1] strb r0, [r4] ldrb r1, [r1] movs r0, 0x58 muls r0, r1 ldr r1, _0801EAEC adds r0, r1 str r0, [sp] movs r0, 0 movs r1, 0x28 movs r2, 0 movs r3, 0x4 bl dp01_build_cmdbuf_x02_a_b_varargs ldrb r0, [r4] bl dp01_battle_side_mark_buffer_for_execution ldr r2, _0801EAF0 ldr r1, [r2] movs r0, 0x80 lsls r0, 6 ands r0, r1 cmp r0, 0 beq _0801EAF8 movs r0, 0x1 strb r0, [r5, 0x5] ldr r0, _0801EAF4 ands r1, r0 str r1, [r2] b _0801EAFA .align 2, 0 _0801EAD4: .4byte 0x02024a80 _0801EAD8: .4byte 0x02024c0a _0801EADC: .4byte 0x02024c10 _0801EAE0: .4byte gUnknown_081FAC4C _0801EAE4: .4byte 0x02024d1e _0801EAE8: .4byte 0x02024a60 _0801EAEC: .4byte 0x02024acc _0801EAF0: .4byte 0x02024c6c _0801EAF4: .4byte 0xffffdfff _0801EAF8: strb r0, [r5, 0x5] _0801EAFA: ldr r0, _0801EB2C ldrb r2, [r0, 0x3] adds r7, r0, 0 cmp r2, 0x2 beq _0801EB14 cmp r2, 0x6 beq _0801EB14 cmp r2, 0x5 beq _0801EB14 cmp r2, 0x3 beq _0801EB14 bl _0801F5FA _0801EB14: ldr r0, _0801EB30 ldrb r1, [r7, 0x3] ldr r2, _0801EB34 adds r0, r2 strb r1, [r0] ldr r2, _0801EB38 ldr r0, [r2] movs r1, 0x80 lsls r1, 7 bl _0801F4F2 .align 2, 0 _0801EB2C: .4byte 0x02024d1e _0801EB30: .4byte 0x02000000 _0801EB34: .4byte 0x000160ca _0801EB38: .4byte 0x02024c6c _0801EB3C: mov r3, r10 cmp r3, 0 beq _0801EB46 bl _0801F5FA _0801EB46: bl _0801F5DC _0801EB4A: mov r0, r8 ldrb r1, [r0] movs r0, 0x58 muls r1, r0 mov r0, r9 adds r0, 0x50 adds r1, r0 ldr r2, _0801EB84 ldrb r3, [r7, 0x3] lsls r0, r3, 2 adds r0, r2 ldr r1, [r1] ldr r0, [r0] ands r1, r0 cmp r1, 0 beq _0801EB6E bl _0801F5DC _0801EB6E: subs r0, r3, 0x7 cmp r0, 0x34 bls _0801EB78 bl _0801F5FA _0801EB78: lsls r0, 2 ldr r1, _0801EB88 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0801EB84: .4byte gUnknown_081FAB5C _0801EB88: .4byte _0801EB8C .align 2, 0 _0801EB8C: .4byte _0801EC60 .4byte _0801ECD4 .4byte _0801EE4C .4byte _0801ED60 .4byte _0801EDDC .4byte _0801EE84 .4byte _0801EECC .4byte _0801EFA8 .4byte _0801EFEC .4byte _0801EFEC .4byte _0801EFEC .4byte _0801EFEC .4byte _0801EFEC .4byte _0801EFEC .4byte _0801EFEC .4byte _0801F040 .4byte _0801F040 .4byte _0801F040 .4byte _0801F040 .4byte _0801F040 .4byte _0801F040 .4byte _0801F040 .4byte _0801F13C .4byte _0801F184 .4byte _0801F1A4 .4byte _0801F364 .4byte _0801F3A0 .4byte _0801F3BC .4byte _0801F3D4 .4byte _0801F3EC .4byte _0801F44C .4byte _0801F464 .4byte _0801F094 .4byte _0801F094 .4byte _0801F094 .4byte _0801F094 .4byte _0801F094 .4byte _0801F094 .4byte _0801F094 .4byte _0801F0E8 .4byte _0801F0E8 .4byte _0801F0E8 .4byte _0801F0E8 .4byte _0801F0E8 .4byte _0801F0E8 .4byte _0801F0E8 .4byte _0801F4A8 .4byte _0801F500 .4byte _0801F5FA .4byte _0801F5FA .4byte _0801F5FA .4byte _0801F5FA .4byte _0801F5EC _0801EC60: mov r1, r8 ldrb r0, [r1] movs r5, 0x58 adds r1, r0, 0 muls r1, r5 mov r2, r9 adds r0, r1, r2 adds r0, 0x20 ldrb r0, [r0] cmp r0, 0x14 bne _0801EC7A bl _0801F5DC _0801EC7A: mov r4, r9 adds r4, 0x50 adds r0, r1, r4 ldr r0, [r0] movs r1, 0x7 ands r0, r1 cmp r0, 0 beq _0801EC8E bl _0801F5DC _0801EC8E: bl Random mov r3, r8 ldrb r1, [r3] adds r2, r1, 0 muls r2, r5 adds r2, r4 lsls r0, 16 movs r1, 0xC0 lsls r1, 10 ands r1, r0 lsrs r1, 16 adds r1, 0x2 ldr r0, [r2] orrs r0, r1 str r0, [r2] ldr r4, _0801ECC8 ldr r0, [r4] adds r0, 0x1 bl b_movescr_stack_push ldr r1, _0801ECCC ldr r0, _0801ECD0 ldrb r0, [r0, 0x3] lsls r0, 2 adds r0, r1 ldr r0, [r0] bl _0801F5F8 .align 2, 0 _0801ECC8: .4byte 0x02024c10 _0801ECCC: .4byte gUnknown_081FAC4C _0801ECD0: .4byte 0x02024d1e _0801ECD4: mov r0, r8 ldrb r2, [r0] movs r6, 0x58 adds r0, r2, 0 muls r0, r6 add r0, r9 adds r0, 0x20 ldrb r1, [r0] cmp r1, 0x27 bne _0801ED18 cmp r4, 0x1 beq _0801ECF4 cmp r5, 0x80 beq _0801ECF4 bl _0801F5DC _0801ECF4: ldr r0, _0801ED0C strb r1, [r0] mov r1, r8 ldrb r0, [r1] movs r1, 0x27 bl sub_81074C4 ldr r1, _0801ED10 ldr r0, _0801ED14 str r0, [r1] bl _0801F5FA .align 2, 0 _0801ED0C: .4byte 0x02024c06 _0801ED10: .4byte 0x02024c10 _0801ED14: .4byte gUnknown_081D98D7 _0801ED18: adds r0, r2, 0 bl sub_801E3B4 ldr r1, _0801ED54 lsls r0, 24 lsrs r0, 24 ldrb r1, [r1] cmp r0, r1 bhi _0801ED2E bl _0801F5DC _0801ED2E: mov r2, r8 ldrb r0, [r2] adds r2, r0, 0 muls r2, r6 mov r0, r9 adds r0, 0x50 adds r2, r0 ldr r1, _0801ED58 ldr r0, _0801ED5C ldrb r0, [r0, 0x3] lsls r0, 2 adds r0, r1 ldr r1, [r2] ldr r0, [r0] orrs r1, r0 str r1, [r2] bl _0801F5DC .align 2, 0 _0801ED54: .4byte 0x02024a7e _0801ED58: .4byte gUnknown_081FAB5C _0801ED5C: .4byte 0x02024d1e _0801ED60: mov r3, r8 ldrb r0, [r3] movs r5, 0x58 muls r0, r5 mov r4, r9 adds r4, 0x50 adds r2, r0, r4 ldr r1, [r2] movs r0, 0x70 ands r0, r1 cmp r0, 0 beq _0801ED7C bl _0801F5DC _0801ED7C: movs r0, 0x80 lsls r0, 5 orrs r1, r0 str r1, [r2] ldr r1, _0801EDC8 ldrb r0, [r3] lsls r0, 1 adds r0, r1 ldr r1, _0801EDCC ldrh r1, [r1] strh r1, [r0] bl Random mov r2, r8 ldrb r1, [r2] adds r2, r1, 0 muls r2, r5 adds r2, r4 movs r1, 0x3 ands r1, r0 adds r1, 0x2 lsls r1, 4 ldr r0, [r2] orrs r0, r1 str r0, [r2] ldr r4, _0801EDD0 ldr r0, [r4] adds r0, 0x1 bl b_movescr_stack_push ldr r1, _0801EDD4 ldr r0, _0801EDD8 ldrb r0, [r0, 0x3] lsls r0, 2 adds r0, r1 ldr r0, [r0] bl _0801F5F8 .align 2, 0 _0801EDC8: .4byte 0x02024c54 _0801EDCC: .4byte 0x02024be6 _0801EDD0: .4byte 0x02024c10 _0801EDD4: .4byte gUnknown_081FAC4C _0801EDD8: .4byte 0x02024d1e _0801EDDC: ldr r5, _0801EE30 ldrb r0, [r5] bl battle_get_per_side_status movs r1, 0x1 ands r1, r0 cmp r1, 0 bne _0801EE14 ldr r4, _0801EE34 ldrh r3, [r4] ldr r2, _0801EE38 ldrb r1, [r5] movs r0, 0x58 muls r0, r1 adds r0, r2 adds r0, 0x2A ldrb r1, [r0] lsls r0, r1, 2 adds r0, r1 adds r0, r3, r0 strh r0, [r4] lsls r0, 16 lsrs r0, 16 cmp r3, r0 bls _0801EE14 ldr r3, _0801EE3C adds r0, r3, 0 strh r0, [r4] _0801EE14: ldr r4, _0801EE40 ldr r0, [r4] adds r0, 0x1 bl b_movescr_stack_push ldr r1, _0801EE44 ldr r0, _0801EE48 ldrb r0, [r0, 0x3] lsls r0, 2 adds r0, r1 ldr r0, [r0] bl _0801F5F8 .align 2, 0 _0801EE30: .4byte 0x02024c07 _0801EE34: .4byte 0x02024d1a _0801EE38: .4byte 0x02024a80 _0801EE3C: .4byte 0x0000ffff _0801EE40: .4byte 0x02024c10 _0801EE44: .4byte gUnknown_081FAC4C _0801EE48: .4byte 0x02024d1e _0801EE4C: mov r4, r8 ldrb r1, [r4] movs r0, 0x58 muls r0, r1 mov r1, r9 adds r1, 0x4C adds r0, r1 ldr r0, [r0] cmp r0, 0 beq _0801EE62 b _0801F5DC _0801EE62: bl Random ldr r4, _0801EE80 lsls r0, 16 lsrs r0, 16 movs r1, 0x3 bl __umodsi3 adds r0, 0x3 strb r0, [r4, 0x3] movs r0, 0 movs r1, 0 bl sub_801E3EC b _0801F5FA .align 2, 0 _0801EE80: .4byte 0x02024d1e _0801EE84: mov r0, r8 ldrb r1, [r0] movs r0, 0x58 adds r2, r1, 0 muls r2, r0 mov r0, r9 adds r0, 0x50 adds r2, r0 ldr r0, [r2] movs r1, 0x80 lsls r1, 5 orrs r0, r1 str r0, [r2] ldr r1, _0801EEC0 mov r2, r8 ldrb r0, [r2] lsls r0, 1 adds r0, r1 ldr r1, _0801EEC4 ldrh r1, [r1] strh r1, [r0] ldr r0, _0801EEC8 ldrb r1, [r2] lsls r1, 4 adds r1, r0 ldrb r0, [r1, 0x1] movs r2, 0x4 orrs r0, r2 strb r0, [r1, 0x1] b _0801F5DC .align 2, 0 _0801EEC0: .4byte 0x02024c54 _0801EEC4: .4byte 0x02024be6 _0801EEC8: .4byte 0x02024d28 _0801EECC: mov r3, r8 ldrb r0, [r3] movs r6, 0x58 muls r0, r6 mov r4, r9 adds r4, 0x50 adds r0, r4 ldr r5, [r0] movs r0, 0xE0 lsls r0, 8 ands r5, r0 cmp r5, 0 beq _0801EEE8 b _0801F5DC _0801EEE8: bl Random mov r2, r8 ldrb r1, [r2] adds r2, r1, 0 muls r2, r6 adds r2, r4 movs r1, 0x3 ands r1, r0 adds r1, 0x3 lsls r1, 13 ldr r0, [r2] orrs r0, r1 str r0, [r2] ldr r2, _0801EF80 mov r3, r8 ldrb r0, [r3] lsls r0, 1 ldr r4, _0801EF84 adds r0, r4 adds r0, r2 ldr r6, _0801EF88 ldrh r1, [r6] strb r1, [r0] ldrb r0, [r3] lsls r0, 1 ldr r1, _0801EF8C adds r0, r1 adds r0, r2 ldrh r1, [r6] lsrs r1, 8 strb r1, [r0] ldrb r0, [r3] ldr r3, _0801EF90 adds r0, r3 adds r0, r2 ldr r1, _0801EF94 ldrb r1, [r1] strb r1, [r0] ldr r4, _0801EF98 ldr r0, [r4] adds r0, 0x1 bl b_movescr_stack_push ldr r1, _0801EF9C ldr r2, _0801EFA0 ldrb r0, [r2, 0x3] lsls r0, 2 adds r0, r1 ldr r0, [r0] str r0, [r4] strb r5, [r2, 0x5] ldr r1, _0801EFA4 ldrh r0, [r1] ldrh r4, [r6] cmp r0, r4 bne _0801EF5C b _0801F5FA _0801EF5C: adds r3, r1, 0 adds r1, r6, 0 _0801EF60: ldrb r0, [r2, 0x5] adds r0, 0x1 strb r0, [r2, 0x5] lsls r0, 24 lsrs r0, 24 cmp r0, 0x4 bls _0801EF70 b _0801F5FA _0801EF70: ldrb r0, [r2, 0x5] lsls r0, 1 adds r0, r3 ldrh r0, [r0] ldrh r4, [r1] cmp r0, r4 bne _0801EF60 b _0801F5FA .align 2, 0 _0801EF80: .4byte 0x02000000 _0801EF84: .4byte 0x00016004 _0801EF88: .4byte 0x02024be6 _0801EF8C: .4byte 0x00016005 _0801EF90: .4byte 0x00016020 _0801EF94: .4byte 0x02024c07 _0801EF98: .4byte 0x02024c10 _0801EF9C: .4byte gUnknown_081FAC4C _0801EFA0: .4byte 0x02024d1e _0801EFA4: .4byte gUnknown_0840164C _0801EFA8: ldr r1, _0801EFD8 ldr r0, _0801EFDC ldr r0, [r0] cmp r0, 0 bge _0801EFB4 adds r0, 0x3 _0801EFB4: asrs r0, 2 str r0, [r1] cmp r0, 0 bne _0801EFC0 movs r0, 0x1 str r0, [r1] _0801EFC0: ldr r4, _0801EFE0 ldr r0, [r4] adds r0, 0x1 bl b_movescr_stack_push ldr r1, _0801EFE4 ldr r0, _0801EFE8 ldrb r0, [r0, 0x3] lsls r0, 2 adds r0, r1 ldr r0, [r0] b _0801F5F8 .align 2, 0 _0801EFD8: .4byte 0x02024bec _0801EFDC: .4byte 0x02024bf0 _0801EFE0: .4byte 0x02024c10 _0801EFE4: .4byte gUnknown_081FAC4C _0801EFE8: .4byte 0x02024d1e _0801EFEC: ldrb r1, [r7, 0x3] adds r1, 0xF2 lsls r1, 24 lsrs r1, 24 movs r0, 0x10 adds r2, r6, 0 movs r3, 0 bl sub_8025E20 lsls r0, 24 lsrs r3, r0, 24 cmp r3, 0 beq _0801F008 b _0801F5DC _0801F008: ldr r2, _0801F02C ldrb r1, [r7, 0x3] movs r0, 0x3F ands r0, r1 ldr r4, _0801F030 adds r1, r2, r4 strb r0, [r1] ldr r0, _0801F034 adds r2, r0 strb r3, [r2] ldr r4, _0801F038 ldr r0, [r4] adds r0, 0x1 bl b_movescr_stack_push ldr r0, _0801F03C b _0801F5F8 .align 2, 0 _0801F02C: .4byte 0x02000000 _0801F030: .4byte 0x000160a4 _0801F034: .4byte 0x000160a5 _0801F038: .4byte 0x02024c10 _0801F03C: .4byte gUnknown_081D71E5 _0801F040: movs r0, 0x70 negs r0, r0 ldrb r1, [r7, 0x3] adds r1, 0xEB lsls r1, 24 lsrs r1, 24 adds r2, r6, 0 movs r3, 0 bl sub_8025E20 lsls r0, 24 lsrs r3, r0, 24 cmp r3, 0 beq _0801F05E b _0801F5DC _0801F05E: ldr r2, _0801F080 ldrb r1, [r7, 0x3] movs r0, 0x3F ands r0, r1 ldr r4, _0801F084 adds r1, r2, r4 strb r0, [r1] ldr r0, _0801F088 adds r2, r0 strb r3, [r2] ldr r4, _0801F08C ldr r0, [r4] adds r0, 0x1 bl b_movescr_stack_push ldr r0, _0801F090 b _0801F5F8 .align 2, 0 _0801F080: .4byte 0x02000000 _0801F084: .4byte 0x000160a4 _0801F088: .4byte 0x000160a5 _0801F08C: .4byte 0x02024c10 _0801F090: .4byte gUnknown_081D7276 _0801F094: ldrb r1, [r7, 0x3] adds r1, 0xDA lsls r1, 24 lsrs r1, 24 movs r0, 0x20 adds r2, r6, 0 movs r3, 0 bl sub_8025E20 lsls r0, 24 lsrs r3, r0, 24 cmp r3, 0 beq _0801F0B0 b _0801F5DC _0801F0B0: ldr r2, _0801F0D4 ldrb r1, [r7, 0x3] movs r0, 0x3F ands r0, r1 ldr r4, _0801F0D8 adds r1, r2, r4 strb r0, [r1] ldr r0, _0801F0DC adds r2, r0 strb r3, [r2] ldr r4, _0801F0E0 ldr r0, [r4] adds r0, 0x1 bl b_movescr_stack_push ldr r0, _0801F0E4 b _0801F5F8 .align 2, 0 _0801F0D4: .4byte 0x02000000 _0801F0D8: .4byte 0x000160a4 _0801F0DC: .4byte 0x000160a5 _0801F0E0: .4byte 0x02024c10 _0801F0E4: .4byte gUnknown_081D71E5 _0801F0E8: movs r0, 0x60 negs r0, r0 ldrb r1, [r7, 0x3] adds r1, 0xD3 lsls r1, 24 lsrs r1, 24 adds r2, r6, 0 movs r3, 0 bl sub_8025E20 lsls r0, 24 lsrs r3, r0, 24 cmp r3, 0 beq _0801F106 b _0801F5DC _0801F106: ldr r2, _0801F128 ldrb r1, [r7, 0x3] movs r0, 0x3F ands r0, r1 ldr r4, _0801F12C adds r1, r2, r4 strb r0, [r1] ldr r0, _0801F130 adds r2, r0 strb r3, [r2] ldr r4, _0801F134 ldr r0, [r4] adds r0, 0x1 bl b_movescr_stack_push ldr r0, _0801F138 b _0801F5F8 .align 2, 0 _0801F128: .4byte 0x02000000 _0801F12C: .4byte 0x000160a4 _0801F130: .4byte 0x000160a5 _0801F134: .4byte 0x02024c10 _0801F138: .4byte gUnknown_081D7276 _0801F13C: mov r2, r8 ldrb r1, [r2] movs r0, 0x58 adds r2, r1, 0 muls r2, r0 mov r0, r9 adds r0, 0x50 adds r2, r0 ldr r0, [r2] movs r1, 0x80 lsls r1, 15 orrs r0, r1 str r0, [r2] ldr r2, _0801F178 mov r3, r8 ldrb r1, [r3] lsls r0, r1, 3 subs r0, r1 lsls r0, 2 adds r0, r2 movs r1, 0x2 strb r1, [r0, 0x19] ldr r1, _0801F17C ldrb r0, [r3] lsls r0, 1 adds r0, r1 ldr r1, _0801F180 ldrh r1, [r1] strh r1, [r0] b _0801F5DC .align 2, 0 _0801F178: .4byte 0x02024ca8 _0801F17C: .4byte 0x02024c54 _0801F180: .4byte 0x02024be6 _0801F184: ldr r0, _0801F1A0 ldrb r1, [r0] movs r0, 0x58 adds r2, r1, 0 muls r2, r0 mov r0, r9 adds r0, 0x50 adds r2, r0 ldr r0, [r2] movs r1, 0x80 lsls r1, 16 _0801F19A: orrs r0, r1 str r0, [r2] b _0801F5DC .align 2, 0 _0801F1A0: .4byte 0x02024c07 _0801F1A4: ldr r4, _0801F254 ldrb r0, [r4] bl battle_side_get_owner lsls r0, 24 lsrs r6, r0, 24 ldrb r0, [r4] bl battle_side_get_owner lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _0801F1D8 ldr r0, _0801F258 ldrh r1, [r0] ldr r0, _0801F25C ands r0, r1 cmp r0, 0 bne _0801F214 ldr r0, _0801F260 ldrh r1, [r0] movs r0, 0x80 lsls r0, 3 cmp r1, r0 beq _0801F1D8 b _0801F5DC _0801F1D8: ldr r0, _0801F258 ldrh r1, [r0] ldr r0, _0801F25C ands r0, r1 cmp r0, 0 bne _0801F214 ldr r0, _0801F260 ldrh r1, [r0] movs r0, 0x80 lsls r0, 3 cmp r1, r0 beq _0801F214 ldr r0, _0801F264 adds r0, 0x29 adds r0, r6, r0 ldrb r1, [r0] ldr r3, _0801F268 ldr r2, _0801F26C ldr r0, _0801F254 ldrb r0, [r0] lsls r0, 1 adds r0, r2 ldrh r0, [r0] lsls r0, 2 adds r0, r3 ldr r0, [r0] ands r1, r0 cmp r1, 0 beq _0801F214 b _0801F5DC _0801F214: ldr r2, _0801F270 ldr r1, _0801F274 ldrb r0, [r1] movs r3, 0x58 muls r0, r3 adds r4, r0, r2 ldrh r0, [r4, 0x2E] adds r7, r1, 0 mov r9, r2 cmp r0, 0 beq _0801F284 adds r0, r4, 0 adds r0, 0x20 ldrb r0, [r0] cmp r0, 0x3C bne _0801F284 ldr r1, _0801F278 ldr r0, _0801F27C str r0, [r1] ldr r1, _0801F280 ldrb r0, [r7] muls r0, r3 add r0, r9 adds r0, 0x20 ldrb r0, [r0] strb r0, [r1] ldrb r0, [r7] ldrb r1, [r1] bl sub_81074C4 b _0801F5FA .align 2, 0 _0801F254: .4byte 0x02024c07 _0801F258: .4byte 0x020239f8 _0801F25C: .4byte 0x00000902 _0801F260: .4byte 0x0202ff5e _0801F264: .4byte 0x02024dbc _0801F268: .4byte gUnknown_0820872C _0801F26C: .4byte 0x02024a6a _0801F270: .4byte 0x02024a80 _0801F274: .4byte 0x02024c08 _0801F278: .4byte 0x02024c10 _0801F27C: .4byte gUnknown_081D9913 _0801F280: .4byte 0x02024c06 _0801F284: ldr r4, _0801F340 mov r10, r4 ldrb r1, [r4] movs r0, 0x58 mov r8, r0 mov r0, r8 muls r0, r1 add r0, r9 ldrh r3, [r0, 0x2E] cmp r3, 0 beq _0801F29C b _0801F5DC _0801F29C: ldrb r0, [r7] mov r2, r8 muls r2, r0 adds r0, r2, 0 add r0, r9 ldrh r2, [r0, 0x2E] adds r0, r2, 0 cmp r0, 0xAF bne _0801F2B0 b _0801F5DC _0801F2B0: cmp r0, 0 bne _0801F2B6 b _0801F5DC _0801F2B6: lsls r0, r1, 1 ldr r5, _0801F344 adds r0, r5 ldr r1, _0801F348 strh r2, [r0] strh r2, [r1] ldrb r0, [r7] mov r4, r8 muls r4, r0 adds r0, r4, 0 add r0, r9 movs r6, 0 strh r3, [r0, 0x2E] ldr r4, _0801F34C mov r2, r10 ldrb r0, [r2] strb r0, [r4] str r1, [sp] movs r0, 0 movs r1, 0x2 movs r2, 0 movs r3, 0x2 bl dp01_build_cmdbuf_x02_a_b_varargs mov r3, r10 ldrb r0, [r3] bl dp01_battle_side_mark_buffer_for_execution ldrb r0, [r7] strb r0, [r4] ldrb r0, [r7] mov r4, r8 muls r4, r0 adds r0, r4, 0 mov r1, r9 adds r1, 0x2E adds r0, r1 str r0, [sp] movs r0, 0 movs r1, 0x2 movs r2, 0 movs r3, 0x2 bl dp01_build_cmdbuf_x02_a_b_varargs ldrb r0, [r7] bl dp01_battle_side_mark_buffer_for_execution ldr r4, _0801F350 ldr r0, [r4] adds r0, 0x1 bl b_movescr_stack_push ldr r0, _0801F354 str r0, [r4] ldr r0, _0801F358 adds r5, r0 ldrb r0, [r7] lsls r0, 1 ldr r1, _0801F35C adds r0, r1 adds r0, r5 strb r6, [r0] ldrb r0, [r7] lsls r0, 1 ldr r2, _0801F360 adds r0, r2 adds r0, r5 strb r6, [r0] b _0801F5FA .align 2, 0 _0801F340: .4byte 0x02024c07 _0801F344: .4byte 0x020160f0 _0801F348: .4byte 0x02024c04 _0801F34C: .4byte 0x02024a60 _0801F350: .4byte 0x02024c10 _0801F354: .4byte gUnknown_081D96F6 _0801F358: .4byte 0xfffe9f10 _0801F35C: .4byte 0x000160e8 _0801F360: .4byte 0x000160e9 _0801F364: ldr r3, _0801F394 ldrb r1, [r3] movs r0, 0x58 adds r2, r1, 0 muls r2, r0 mov r0, r9 adds r0, 0x50 adds r2, r0 ldr r0, [r2] movs r1, 0x80 lsls r1, 19 orrs r0, r1 str r0, [r2] ldr r2, _0801F398 ldrb r1, [r3] lsls r0, r1, 3 subs r0, r1 lsls r0, 2 adds r0, r2 ldr r1, _0801F39C ldrb r1, [r1] strb r1, [r0, 0x14] b _0801F5DC .align 2, 0 _0801F394: .4byte 0x02024c08 _0801F398: .4byte 0x02024ca8 _0801F39C: .4byte 0x02024c07 _0801F3A0: ldr r0, _0801F3B8 ldrb r1, [r0] movs r0, 0x58 adds r2, r1, 0 muls r2, r0 mov r0, r9 adds r0, 0x50 adds r2, r0 ldr r0, [r2] movs r1, 0x80 lsls r1, 20 b _0801F19A .align 2, 0 _0801F3B8: .4byte 0x02024c08 _0801F3BC: ldr r4, _0801F3CC ldr r0, [r4] adds r0, 0x1 bl b_movescr_stack_push ldr r0, _0801F3D0 b _0801F5F8 .align 2, 0 _0801F3CC: .4byte 0x02024c10 _0801F3D0: .4byte gUnknown_081D9224 _0801F3D4: ldr r4, _0801F3E4 ldr r0, [r4] adds r0, 0x1 bl b_movescr_stack_push ldr r0, _0801F3E8 b _0801F5F8 .align 2, 0 _0801F3E4: .4byte 0x02024c10 _0801F3E8: .4byte gUnknown_081D92C0 _0801F3EC: ldr r6, _0801F43C ldrb r0, [r6] movs r2, 0x58 muls r0, r2 mov r1, r9 adds r1, 0x4C adds r5, r0, r1 ldr r4, [r5] movs r0, 0x40 ands r0, r4 cmp r0, 0 bne _0801F406 b _0801F5DC _0801F406: movs r0, 0x41 negs r0, r0 ands r4, r0 str r4, [r5] ldr r4, _0801F440 ldrb r0, [r6] strb r0, [r4] ldrb r0, [r4] muls r0, r2 adds r0, r1 str r0, [sp] movs r0, 0 movs r1, 0x28 movs r2, 0 movs r3, 0x4 bl dp01_build_cmdbuf_x02_a_b_varargs ldrb r0, [r4] bl dp01_battle_side_mark_buffer_for_execution ldr r4, _0801F444 ldr r0, [r4] adds r0, 0x1 bl b_movescr_stack_push ldr r0, _0801F448 b _0801F5F8 .align 2, 0 _0801F43C: .4byte 0x02024c08 _0801F440: .4byte 0x02024a60 _0801F444: .4byte 0x02024c10 _0801F448: .4byte gUnknown_081D9635 _0801F44C: ldr r4, _0801F45C ldr r0, [r4] adds r0, 0x1 bl b_movescr_stack_push ldr r0, _0801F460 b _0801F5F8 .align 2, 0 _0801F45C: .4byte 0x02024c10 _0801F460: .4byte gUnknown_081D93FA _0801F464: ldr r4, _0801F494 ldr r0, _0801F498 ldr r0, [r0] movs r1, 0x3 bl __divsi3 str r0, [r4] cmp r0, 0 bne _0801F47A movs r0, 0x1 str r0, [r4] _0801F47A: ldr r4, _0801F49C ldr r0, [r4] adds r0, 0x1 bl b_movescr_stack_push ldr r1, _0801F4A0 ldr r0, _0801F4A4 ldrb r0, [r0, 0x3] lsls r0, 2 adds r0, r1 ldr r0, [r0] b _0801F5F8 .align 2, 0 _0801F494: .4byte 0x02024bec _0801F498: .4byte 0x02024bf0 _0801F49C: .4byte 0x02024c10 _0801F4A0: .4byte gUnknown_081FAC4C _0801F4A4: .4byte 0x02024d1e _0801F4A8: mov r3, r8 ldrb r0, [r3] movs r5, 0x58 muls r0, r5 mov r4, r9 adds r4, 0x50 adds r2, r0, r4 ldr r1, [r2] movs r0, 0xC0 lsls r0, 4 ands r0, r1 cmp r0, 0 beq _0801F4C4 b _0801F5DC _0801F4C4: movs r0, 0x80 lsls r0, 5 orrs r1, r0 str r1, [r2] ldr r1, _0801F4F8 ldrb r0, [r3] lsls r0, 1 adds r0, r1 ldr r1, _0801F4FC ldrh r1, [r1] strh r1, [r0] bl Random mov r2, r8 ldrb r1, [r2] adds r2, r1, 0 muls r2, r5 adds r2, r4 movs r1, 0x1 ands r1, r0 adds r1, 0x2 lsls r1, 10 ldr r0, [r2] _0801F4F2: orrs r0, r1 str r0, [r2] b _0801F5FA .align 2, 0 _0801F4F8: .4byte 0x02024c54 _0801F4FC: .4byte 0x02024be6 _0801F500: mov r5, r8 ldrb r3, [r5] movs r4, 0x58 adds r0, r3, 0 muls r0, r4 mov r2, r9 adds r1, r0, r2 adds r0, r1, 0 adds r0, 0x20 ldrb r2, [r0] cmp r2, 0x3C bne _0801F540 ldrh r0, [r1, 0x2E] cmp r0, 0 beq _0801F5DC ldr r0, _0801F534 strb r2, [r0] ldr r1, _0801F538 ldr r0, _0801F53C str r0, [r1] ldrb r0, [r5] movs r1, 0x3C bl sub_81074C4 b _0801F5FA .align 2, 0 _0801F534: .4byte 0x02024c06 _0801F538: .4byte 0x02024c10 _0801F53C: .4byte gUnknown_081D9913 _0801F540: ldrh r0, [r1, 0x2E] cmp r0, 0 beq _0801F5DC adds r0, r3, 0 bl battle_side_get_owner lsls r0, 24 lsrs r6, r0, 24 ldr r1, _0801F5B8 mov r3, r8 ldrb r0, [r3] muls r0, r4 add r0, r9 ldrh r0, [r0, 0x2E] strh r0, [r1] ldrb r0, [r3] muls r0, r4 add r0, r9 movs r5, 0 movs r1, 0 strh r1, [r0, 0x2E] ldr r2, _0801F5BC adds r2, 0x29 adds r2, r6, r2 ldr r3, _0801F5C0 ldr r1, _0801F5C4 mov r4, r8 ldrb r0, [r4] lsls r0, 1 adds r0, r1 ldrh r0, [r0] lsls r0, 2 adds r0, r3 ldr r0, [r0] ldrb r1, [r2] orrs r0, r1 strb r0, [r2] ldr r4, _0801F5C8 ldr r0, [r4] adds r0, 0x1 bl b_movescr_stack_push ldr r0, _0801F5CC str r0, [r4] ldr r1, _0801F5D0 mov r2, r8 ldrb r0, [r2] lsls r0, 1 ldr r3, _0801F5D4 adds r0, r3 adds r0, r1 strb r5, [r0] ldrb r0, [r2] lsls r0, 1 ldr r4, _0801F5D8 adds r0, r4 adds r0, r1 strb r5, [r0] b _0801F5FA .align 2, 0 _0801F5B8: .4byte 0x02024c04 _0801F5BC: .4byte 0x02024dbc _0801F5C0: .4byte gUnknown_0820872C _0801F5C4: .4byte 0x02024a6a _0801F5C8: .4byte 0x02024c10 _0801F5CC: .4byte gUnknown_081D944B _0801F5D0: .4byte 0x02000000 _0801F5D4: .4byte 0x000160e8 _0801F5D8: .4byte 0x000160e9 _0801F5DC: ldr r1, _0801F5E8 ldr r0, [r1] adds r0, 0x1 str r0, [r1] b _0801F5FA .align 2, 0 _0801F5E8: .4byte 0x02024c10 _0801F5EC: ldr r4, _0801F60C ldr r0, [r4] adds r0, 0x1 bl b_movescr_stack_push ldr r0, _0801F610 _0801F5F8: str r0, [r4] _0801F5FA: 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 _0801F60C: .4byte 0x02024c10 _0801F610: .4byte gUnknown_081D94B0 thumb_func_end sub_801E3EC thumb_func_start atk15_seteffectwithchancetarget atk15_seteffectwithchancetarget: @ 801F614 push {r4,lr} ldr r2, _0801F640 ldr r0, _0801F644 ldrb r1, [r0] movs r0, 0x58 muls r0, r1 adds r0, r2 adds r0, 0x20 ldrb r0, [r0] cmp r0, 0x20 bne _0801F650 ldr r2, _0801F648 ldr r0, _0801F64C ldrh r1, [r0] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r0, [r0, 0x5] lsls r4, r0, 1 b _0801F660 .align 2, 0 _0801F640: .4byte 0x02024a80 _0801F644: .4byte 0x02024c07 _0801F648: .4byte gBattleMoves _0801F64C: .4byte 0x02024be6 _0801F650: ldr r2, _0801F680 ldr r0, _0801F684 ldrh r1, [r0] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r4, [r0, 0x5] _0801F660: ldr r3, _0801F688 ldrb r2, [r3, 0x3] movs r0, 0x80 ands r0, r2 cmp r0, 0 beq _0801F690 ldr r0, _0801F68C ldrb r1, [r0] movs r0, 0x29 ands r0, r1 cmp r0, 0 bne _0801F690 movs r0, 0x7F ands r0, r2 strb r0, [r3, 0x3] b _0801F6BE .align 2, 0 _0801F680: .4byte gBattleMoves _0801F684: .4byte 0x02024be6 _0801F688: .4byte 0x02024d1e _0801F68C: .4byte 0x02024c68 _0801F690: bl Random lsls r0, 16 lsrs r0, 16 movs r1, 0x64 bl __umodsi3 lsls r0, 16 lsrs r0, 16 cmp r0, r4 bhi _0801F6DA ldr r0, _0801F6C8 ldrb r0, [r0, 0x3] cmp r0, 0 beq _0801F6DA ldr r0, _0801F6CC ldrb r1, [r0] movs r0, 0x29 ands r0, r1 cmp r0, 0 bne _0801F6DA cmp r4, 0x63 bls _0801F6D0 _0801F6BE: movs r0, 0 movs r1, 0x80 bl sub_801E3EC b _0801F6E2 .align 2, 0 _0801F6C8: .4byte 0x02024d1e _0801F6CC: .4byte 0x02024c68 _0801F6D0: movs r0, 0 movs r1, 0 bl sub_801E3EC b _0801F6E2 _0801F6DA: ldr r1, _0801F6F8 ldr r0, [r1] adds r0, 0x1 str r0, [r1] _0801F6E2: ldr r0, _0801F6FC movs r1, 0 strb r1, [r0, 0x3] ldr r0, _0801F700 ldr r2, _0801F704 adds r0, r2 strb r1, [r0] pop {r4} pop {r0} bx r0 .align 2, 0 _0801F6F8: .4byte 0x02024c10 _0801F6FC: .4byte 0x02024d1e _0801F700: .4byte 0x02000000 _0801F704: .4byte 0x00016112 thumb_func_end atk15_seteffectwithchancetarget thumb_func_start sub_801F708 sub_801F708: @ 801F708 push {lr} movs r0, 0x1 movs r1, 0 bl sub_801E3EC pop {r0} bx r0 thumb_func_end sub_801F708 thumb_func_start sub_801F718 sub_801F718: @ 801F718 push {lr} movs r0, 0 movs r1, 0 bl sub_801E3EC pop {r0} bx r0 thumb_func_end sub_801F718 thumb_func_start sub_801F728 sub_801F728: @ 801F728 push {lr} ldr r0, _0801F74C ldr r0, [r0] ldrb r0, [r0, 0x1] bl sub_8015150 ldr r2, _0801F750 strb r0, [r2] ldr r3, _0801F754 ldrb r0, [r3, 0x3] cmp r0, 0x6 bhi _0801F75C ldr r1, _0801F758 ldrb r2, [r2] movs r0, 0x58 muls r2, r0 adds r1, 0x4C b _0801F766 .align 2, 0 _0801F74C: .4byte 0x02024c10 _0801F750: .4byte 0x02024a60 _0801F754: .4byte 0x02024d1e _0801F758: .4byte 0x02024a80 _0801F75C: ldr r1, _0801F794 ldrb r2, [r2] movs r0, 0x58 muls r2, r0 adds r1, 0x50 _0801F766: adds r2, r1 ldr r1, _0801F798 ldrb r0, [r3, 0x3] lsls r0, 2 adds r0, r1 ldr r1, [r0] ldr r0, [r2] bics r0, r1 str r0, [r2] ldr r0, _0801F79C movs r2, 0 strb r2, [r0, 0x3] ldr r1, _0801F7A0 ldr r0, [r1] adds r0, 0x2 str r0, [r1] ldr r0, _0801F7A4 ldr r1, _0801F7A8 adds r0, r1 strb r2, [r0] pop {r0} bx r0 .align 2, 0 _0801F794: .4byte 0x02024a80 _0801F798: .4byte gUnknown_081FAB5C _0801F79C: .4byte 0x02024d1e _0801F7A0: .4byte 0x02024c10 _0801F7A4: .4byte 0x02000000 _0801F7A8: .4byte 0x00016112 thumb_func_end sub_801F728 thumb_func_start sub_801F7AC sub_801F7AC: @ 801F7AC push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x4 ldr r0, _0801F81C ldr r2, [r0] ldrb r1, [r2, 0x2] adds r6, r0, 0 cmp r1, 0 beq _0801F834 ldrb r0, [r2, 0x1] bl sub_8015150 ldr r5, _0801F820 strb r0, [r5] ldr r2, _0801F824 ldr r1, _0801F828 ldrb r0, [r5] lsls r0, 2 adds r0, r1 ldr r1, [r0] lsls r1, 28 ldr r0, [r2] ands r0, r1 cmp r0, 0 bne _0801F7E6 b _0801FB1C _0801F7E6: ldr r1, [r6] ldrb r4, [r1, 0x3] ldrb r0, [r1, 0x4] lsls r0, 8 orrs r4, r0 ldrb r0, [r1, 0x5] lsls r0, 16 orrs r4, r0 ldrb r0, [r1, 0x6] lsls r0, 24 orrs r4, r0 bl b_movescr_stack_pop_cursor str r4, [r6] ldrb r0, [r5] bl battle_side_get_owner ldr r1, _0801F82C lsls r0, 24 lsrs r0, 23 adds r0, r1 ldrh r2, [r0] ldr r1, _0801F830 ands r1, r2 strh r1, [r0] b _0801FB22 .align 2, 0 _0801F81C: .4byte 0x02024c10 _0801F820: .4byte 0x02024a60 _0801F824: .4byte 0x02024c6c _0801F828: .4byte gUnknown_0820872C _0801F82C: .4byte 0x02024c7a _0801F830: .4byte 0x0000fdff _0801F834: ldrb r0, [r2, 0x1] cmp r0, 0x1 bne _0801F85C ldr r1, _0801F84C ldr r0, _0801F850 ldrb r0, [r0] strb r0, [r1] ldr r0, _0801F854 ldrb r7, [r0] ldr r4, _0801F858 b _0801F86A .align 2, 0 _0801F84C: .4byte 0x02024a60 _0801F850: .4byte 0x02024c07 _0801F854: .4byte 0x02024c08 _0801F858: .4byte gUnknown_081D8C58 _0801F85C: ldr r1, _0801F954 ldr r0, _0801F958 ldrb r0, [r0] strb r0, [r1] ldr r0, _0801F95C ldrb r7, [r0] ldr r4, _0801F960 _0801F86A: ldr r0, _0801F964 ldrb r1, [r0] ldr r0, _0801F968 mov r12, r0 ldr r2, _0801F954 mov r8, r2 ldrb r2, [r2] lsls r0, r2, 2 add r0, r12 ldr r0, [r0] ands r1, r0 cmp r1, 0 beq _0801F886 b _0801FB1C _0801F886: ldr r3, _0801F96C mov r10, r3 movs r5, 0x58 mov r9, r5 mov r0, r9 muls r0, r2 add r0, r10 ldrh r3, [r0, 0x28] cmp r3, 0 beq _0801F89C b _0801FB1C _0801F89C: ldr r2, _0801F970 lsls r1, r7, 1 ldr r5, _0801F974 adds r0, r1, r5 adds r0, r2 strb r3, [r0] ldr r0, _0801F978 adds r1, r0 adds r1, r2 strb r3, [r1] lsls r1, r7, 2 adds r5, 0x54 adds r0, r1, r5 adds r0, r2 strb r3, [r0] adds r5, 0x1 adds r0, r1, r5 adds r0, r2 strb r3, [r0] adds r5, 0x1 adds r0, r1, r5 adds r0, r2 strb r3, [r0] ldr r0, _0801F97C adds r1, r0 adds r1, r2 strb r3, [r1] ldr r5, _0801F980 mov r1, r8 ldrb r0, [r1] lsls r0, 2 add r0, r12 ldr r1, [r0] lsls r1, 28 ldr r0, [r5] orrs r0, r1 str r0, [r5] ldr r0, [r6] adds r0, 0x7 bl b_movescr_stack_push str r4, [r6] mov r2, r8 ldrb r0, [r2] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 bne _0801F9B0 ldr r0, [r5] movs r1, 0x80 lsls r1, 15 orrs r0, r1 str r0, [r5] ldr r1, _0801F984 ldrb r0, [r1] cmp r0, 0xFE bhi _0801F914 adds r0, 0x1 strb r0, [r1] _0801F914: mov r0, r9 muls r0, r7 add r0, r10 adds r3, r0, 0 adds r3, 0x2A mov r4, r8 ldrb r2, [r4] mov r0, r9 muls r0, r2 add r0, r10 adds r1, r0, 0 adds r1, 0x2A ldrb r0, [r3] ldrb r5, [r1] cmp r0, r5 bls _0801F9CC ldrb r1, [r1] subs r0, r1 cmp r0, 0x1D ble _0801F990 ldr r1, _0801F988 lsls r0, r2, 1 adds r0, r1 ldrh r1, [r0] movs r0, 0x64 muls r0, r1 ldr r1, _0801F98C adds r0, r1 movs r1, 0x8 bl sub_803FCD4 b _0801F9CC .align 2, 0 _0801F954: .4byte 0x02024a60 _0801F958: .4byte 0x02024c08 _0801F95C: .4byte 0x02024c07 _0801F960: .4byte gUnknown_081D8C65 _0801F964: .4byte 0x02024c0c _0801F968: .4byte gUnknown_0820872C _0801F96C: .4byte 0x02024a80 _0801F970: .4byte 0x02000000 _0801F974: .4byte 0x000160ac _0801F978: .4byte 0x000160ad _0801F97C: .4byte 0x00016103 _0801F980: .4byte 0x02024c6c _0801F984: .4byte 0x030042e0 _0801F988: .4byte 0x02024a6a _0801F98C: .4byte 0x03004360 _0801F990: ldr r1, _0801F9A8 lsls r0, r2, 1 adds r0, r1 ldrh r1, [r0] movs r0, 0x64 muls r0, r1 ldr r1, _0801F9AC adds r0, r1 movs r1, 0x6 bl sub_803FCD4 b _0801F9CC .align 2, 0 _0801F9A8: .4byte 0x02024a6a _0801F9AC: .4byte 0x03004360 _0801F9B0: ldr r1, _0801FAE0 ldrb r0, [r1, 0x1] cmp r0, 0xFE bhi _0801F9BC adds r0, 0x1 strb r0, [r1, 0x1] _0801F9BC: ldr r2, _0801FAE4 ldrb r0, [r2] mov r3, r9 muls r3, r0 adds r0, r3, 0 add r0, r10 ldrh r0, [r0] strh r0, [r1, 0x20] _0801F9CC: ldr r0, _0801FAE8 ldr r0, [r0] movs r1, 0x40 ands r0, r1 cmp r0, 0 beq _0801FA02 ldr r6, _0801FAEC ldr r0, _0801FAF0 ldrb r0, [r0] movs r5, 0x58 muls r0, r5 adds r0, r6 ldrh r0, [r0, 0x28] cmp r0, 0 beq _0801FA02 ldr r4, _0801FAF4 ldr r0, [r4] bl b_movescr_stack_push ldr r1, _0801FAF8 adds r0, r7, 0 muls r0, r5 adds r0, r6 ldrh r0, [r0, 0x28] str r0, [r1] ldr r0, _0801FAFC str r0, [r4] _0801FA02: ldr r1, _0801FB00 ldr r6, _0801FB04 ldrb r0, [r6] lsls r0, 2 adds r0, r1 ldr r0, [r0] movs r1, 0x80 lsls r1, 7 ands r0, r1 cmp r0, 0 bne _0801FA1A b _0801FB22 _0801FA1A: ldr r0, _0801FAE8 ldr r5, [r0] movs r0, 0x80 lsls r0, 17 ands r5, r0 cmp r5, 0 bne _0801FB22 ldr r4, _0801FAF0 mov r8, r4 ldrb r0, [r4] bl battle_side_get_owner adds r4, r0, 0 ldrb r0, [r6] bl battle_side_get_owner lsls r4, 24 lsls r0, 24 cmp r4, r0 beq _0801FB22 ldr r0, _0801FAEC mov r9, r0 mov r1, r8 ldrb r2, [r1] movs r7, 0x58 adds r3, r2, 0 muls r3, r7 adds r0, r3, r0 ldrh r0, [r0, 0x28] cmp r0, 0 beq _0801FB22 ldr r0, _0801FB08 ldrh r0, [r0] cmp r0, 0xA5 beq _0801FB22 ldr r1, _0801FB0C ldr r4, _0801FB10 adds r0, r2, r4 adds r0, r1 ldrb r4, [r0] adds r0, r4, r3 mov r6, r9 adds r6, 0x24 adds r0, r6 strb r5, [r0] ldr r5, _0801FAF4 ldr r0, [r5] bl b_movescr_stack_push ldr r0, _0801FB14 str r0, [r5] ldr r5, _0801FAE4 mov r1, r8 ldrb r0, [r1] strb r0, [r5] adds r1, r4, 0 adds r1, 0x9 lsls r1, 24 lsrs r1, 24 ldrb r0, [r5] muls r0, r7 adds r0, r6 adds r0, r4 str r0, [sp] movs r0, 0 movs r2, 0 movs r3, 0x1 bl dp01_build_cmdbuf_x02_a_b_varargs ldrb r0, [r5] bl dp01_battle_side_mark_buffer_for_execution ldr r1, _0801FB18 movs r0, 0xFD strb r0, [r1] movs r0, 0x2 strb r0, [r1, 0x1] lsls r4, 1 mov r2, r8 ldrb r0, [r2] muls r0, r7 adds r0, r4, r0 mov r2, r9 adds r2, 0xC adds r0, r2 ldrh r0, [r0] strb r0, [r1, 0x2] mov r3, r8 ldrb r0, [r3] muls r0, r7 adds r4, r0 adds r4, r2 ldrh r0, [r4] lsrs r0, 8 strb r0, [r1, 0x3] movs r0, 0xFF strb r0, [r1, 0x4] b _0801FB22 .align 2, 0 _0801FAE0: .4byte 0x030042e0 _0801FAE4: .4byte 0x02024a60 _0801FAE8: .4byte 0x02024c6c _0801FAEC: .4byte 0x02024a80 _0801FAF0: .4byte 0x02024c07 _0801FAF4: .4byte 0x02024c10 _0801FAF8: .4byte 0x02024bec _0801FAFC: .4byte gUnknown_081D9156 _0801FB00: .4byte 0x02024c98 _0801FB04: .4byte 0x02024c08 _0801FB08: .4byte 0x02024be6 _0801FB0C: .4byte 0x02000000 _0801FB10: .4byte 0x0001608c _0801FB14: .4byte gUnknown_081D9468 _0801FB18: .4byte 0x030041c0 _0801FB1C: ldr r0, [r6] adds r0, 0x7 str r0, [r6] _0801FB22: 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_801F7AC thumb_func_start sub_801FB34 sub_801FB34: @ 801FB34 push {r4,r5,lr} ldr r0, _0801FB64 ldr r0, [r0] cmp r0, 0 bne _0801FB5E ldr r5, _0801FB68 ldr r0, [r5] ldrb r0, [r0, 0x1] bl sub_8015150 ldr r4, _0801FB6C strb r0, [r4] movs r0, 0 bl dp01_build_cmdbuf_x0A_A_A_A ldrb r0, [r4] bl dp01_battle_side_mark_buffer_for_execution ldr r0, [r5] adds r0, 0x2 str r0, [r5] _0801FB5E: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0801FB64: .4byte 0x02024a64 _0801FB68: .4byte 0x02024c10 _0801FB6C: .4byte 0x02024a60 thumb_func_end sub_801FB34 thumb_func_start atkE2_cmde2 atkE2_cmde2: @ 801FB70 push {r4-r6,lr} sub sp, 0x4 ldr r0, _0801FBC4 ldr r6, [r0] cmp r6, 0 bne _0801FBBC ldr r5, _0801FBC8 ldr r0, [r5] ldrb r0, [r0, 0x1] bl sub_8015150 ldr r4, _0801FBCC strb r0, [r4] ldr r1, _0801FBD0 ldrb r0, [r4] movs r2, 0x58 muls r0, r2 adds r1, 0x4C adds r0, r1 str r6, [r0] ldrb r0, [r4] muls r0, r2 adds r0, r1 str r0, [sp] movs r0, 0 movs r1, 0x28 movs r2, 0 movs r3, 0x4 bl dp01_build_cmdbuf_x02_a_b_varargs ldrb r0, [r4] bl dp01_battle_side_mark_buffer_for_execution bl sub_8010F48 ldr r0, [r5] adds r0, 0x2 str r0, [r5] _0801FBBC: add sp, 0x4 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0801FBC4: .4byte 0x02024a64 _0801FBC8: .4byte 0x02024c10 _0801FBCC: .4byte 0x02024a60 _0801FBD0: .4byte 0x02024a80 thumb_func_end atkE2_cmde2 thumb_func_start atk1C_jumpifstatus atk1C_jumpifstatus: @ 801FBD4 push {r4,r5,lr} ldr r5, _0801FC30 ldr r0, [r5] ldrb r0, [r0, 0x1] bl sub_8015150 lsls r0, 24 lsrs r0, 24 ldr r2, [r5] ldrb r4, [r2, 0x2] ldrb r1, [r2, 0x3] lsls r1, 8 adds r4, r1 ldrb r1, [r2, 0x4] lsls r1, 16 adds r4, r1 ldrb r1, [r2, 0x5] lsls r1, 24 adds r4, r1 ldrb r3, [r2, 0x6] ldrb r1, [r2, 0x7] lsls r1, 8 adds r3, r1 ldrb r1, [r2, 0x8] lsls r1, 16 adds r3, r1 ldrb r1, [r2, 0x9] lsls r1, 24 adds r3, r1 ldr r2, _0801FC34 movs r1, 0x58 muls r1, r0 adds r0, r2, 0 adds r0, 0x4C adds r0, r1, r0 ldr r0, [r0] ands r0, r4 cmp r0, 0 beq _0801FC38 adds r0, r1, r2 ldrh r0, [r0, 0x28] cmp r0, 0 beq _0801FC38 str r3, [r5] b _0801FC40 .align 2, 0 _0801FC30: .4byte 0x02024c10 _0801FC34: .4byte 0x02024a80 _0801FC38: ldr r1, _0801FC48 ldr r0, [r1] adds r0, 0xA str r0, [r1] _0801FC40: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0801FC48: .4byte 0x02024c10 thumb_func_end atk1C_jumpifstatus thumb_func_start atk1D_jumpifsecondarystatus atk1D_jumpifsecondarystatus: @ 801FC4C push {r4,r5,lr} ldr r5, _0801FCA8 ldr r0, [r5] ldrb r0, [r0, 0x1] bl sub_8015150 lsls r0, 24 lsrs r0, 24 ldr r2, [r5] ldrb r4, [r2, 0x2] ldrb r1, [r2, 0x3] lsls r1, 8 adds r4, r1 ldrb r1, [r2, 0x4] lsls r1, 16 adds r4, r1 ldrb r1, [r2, 0x5] lsls r1, 24 adds r4, r1 ldrb r3, [r2, 0x6] ldrb r1, [r2, 0x7] lsls r1, 8 adds r3, r1 ldrb r1, [r2, 0x8] lsls r1, 16 adds r3, r1 ldrb r1, [r2, 0x9] lsls r1, 24 adds r3, r1 ldr r2, _0801FCAC movs r1, 0x58 muls r1, r0 adds r0, r2, 0 adds r0, 0x50 adds r0, r1, r0 ldr r0, [r0] ands r0, r4 cmp r0, 0 beq _0801FCB0 adds r0, r1, r2 ldrh r0, [r0, 0x28] cmp r0, 0 beq _0801FCB0 str r3, [r5] b _0801FCB8 .align 2, 0 _0801FCA8: .4byte 0x02024c10 _0801FCAC: .4byte 0x02024a80 _0801FCB0: ldr r1, _0801FCC0 ldr r0, [r1] adds r0, 0xA str r0, [r1] _0801FCB8: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0801FCC0: .4byte 0x02024c10 thumb_func_end atk1D_jumpifsecondarystatus thumb_func_start atk1E_jumpifability atk1E_jumpifability: @ 801FCC4 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x4 ldr r6, _0801FD18 ldr r2, [r6] ldrb r5, [r2, 0x2] mov r8, r5 ldrb r1, [r2, 0x3] ldrb r0, [r2, 0x4] lsls r0, 8 adds r1, r0 ldrb r0, [r2, 0x5] lsls r0, 16 adds r1, r0 ldrb r0, [r2, 0x6] lsls r0, 24 adds r7, r1, r0 ldrb r0, [r2, 0x1] cmp r0, 0x8 bne _0801FD24 ldr r0, _0801FD1C ldrb r1, [r0] movs r0, 0 str r0, [sp] movs r0, 0xD adds r2, r5, 0 movs r3, 0 bl sub_8018324 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0 beq _0801FDA0 ldr r1, _0801FD20 strb r5, [r1] str r7, [r6] subs r4, 0x1 lsls r0, r4, 24 lsrs r0, 24 ldrb r1, [r1] b _0801FD80 .align 2, 0 _0801FD18: .4byte 0x02024c10 _0801FD1C: .4byte 0x02024c07 _0801FD20: .4byte 0x02024c06 _0801FD24: cmp r0, 0x9 bne _0801FD5C ldr r0, _0801FD54 ldrb r1, [r0] movs r0, 0 str r0, [sp] movs r0, 0xC adds r2, r5, 0 movs r3, 0 bl sub_8018324 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0 beq _0801FDA0 ldr r1, _0801FD58 strb r5, [r1] str r7, [r6] subs r4, 0x1 lsls r0, r4, 24 lsrs r0, 24 ldrb r1, [r1] b _0801FD80 .align 2, 0 _0801FD54: .4byte 0x02024c07 _0801FD58: .4byte 0x02024c06 _0801FD5C: ldrb r0, [r2, 0x1] bl sub_8015150 lsls r0, 24 lsrs r4, r0, 24 ldr r1, _0801FD90 movs r0, 0x58 muls r0, r4 adds r0, r1 adds r0, 0x20 ldrb r1, [r0] cmp r1, r8 bne _0801FDA0 ldr r0, _0801FD94 strb r1, [r0] str r7, [r6] ldrb r1, [r0] adds r0, r4, 0 _0801FD80: bl sub_81074C4 ldr r0, _0801FD98 ldr r1, _0801FD9C adds r0, r1 strb r4, [r0] b _0801FDA6 .align 2, 0 _0801FD90: .4byte 0x02024a80 _0801FD94: .4byte 0x02024c06 _0801FD98: .4byte 0x02000000 _0801FD9C: .4byte 0x000160f8 _0801FDA0: ldr r0, [r6] adds r0, 0x7 str r0, [r6] _0801FDA6: add sp, 0x4 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 thumb_func_end atk1E_jumpifability thumb_func_start sub_801FDB4 sub_801FDB4: @ 801FDB4 push {r4-r6,lr} ldr r0, _0801FDCC ldr r0, [r0] ldrb r4, [r0, 0x1] cmp r4, 0x1 bne _0801FDD4 ldr r0, _0801FDD0 ldrb r0, [r0] bl battle_get_per_side_status b _0801FDDE .align 2, 0 _0801FDCC: .4byte 0x02024c10 _0801FDD0: .4byte 0x02024c07 _0801FDD4: ldr r0, _0801FE14 ldrb r0, [r0] bl battle_get_per_side_status movs r4, 0x1 _0801FDDE: ands r4, r0 ldr r6, _0801FE18 ldr r3, [r6] ldrb r2, [r3, 0x2] ldrb r0, [r3, 0x3] lsls r0, 8 orrs r2, r0 ldrb r1, [r3, 0x4] ldrb r0, [r3, 0x5] lsls r0, 8 adds r1, r0 ldrb r0, [r3, 0x6] lsls r0, 16 adds r1, r0 ldrb r0, [r3, 0x7] lsls r0, 24 adds r5, r1, r0 ldr r1, _0801FE1C lsls r0, r4, 1 adds r0, r1 ldrh r0, [r0] ands r2, r0 cmp r2, 0 beq _0801FE20 str r5, [r6] b _0801FE26 .align 2, 0 _0801FE14: .4byte 0x02024c08 _0801FE18: .4byte 0x02024c10 _0801FE1C: .4byte 0x02024c7a _0801FE20: adds r0, r3, 0 adds r0, 0x8 str r0, [r6] _0801FE26: pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_801FDB4 thumb_func_start sub_801FE2C sub_801FE2C: @ 801FE2C push {r4,r5,lr} movs r5, 0 ldr r4, _0801FE60 ldr r0, [r4] ldrb r0, [r0, 0x1] bl sub_8015150 lsls r0, 24 lsrs r0, 24 ldr r2, _0801FE64 ldr r3, [r4] movs r1, 0x58 muls r0, r1 ldrb r1, [r3, 0x3] adds r0, r1 adds r2, 0x18 adds r0, r2 ldrb r2, [r0] ldrb r0, [r3, 0x2] cmp r0, 0x5 bhi _0801FEEA lsls r0, 2 ldr r1, _0801FE68 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0801FE60: .4byte 0x02024c10 _0801FE64: .4byte 0x02024a80 _0801FE68: .4byte _0801FE6C .align 2, 0 _0801FE6C: .4byte _0801FE84 .4byte _0801FE94 .4byte _0801FEA4 .4byte _0801FEB4 .4byte _0801FEC4 .4byte _0801FED8 _0801FE84: ldr r0, _0801FE90 ldr r0, [r0] ldrb r0, [r0, 0x4] cmp r2, r0 bne _0801FEEA b _0801FEE4 .align 2, 0 _0801FE90: .4byte 0x02024c10 _0801FE94: ldr r0, _0801FEA0 ldr r0, [r0] ldrb r0, [r0, 0x4] cmp r2, r0 beq _0801FEEA b _0801FEE4 .align 2, 0 _0801FEA0: .4byte 0x02024c10 _0801FEA4: ldr r0, _0801FEB0 ldr r0, [r0] ldrb r0, [r0, 0x4] cmp r2, r0 bls _0801FEEA b _0801FEE4 .align 2, 0 _0801FEB0: .4byte 0x02024c10 _0801FEB4: ldr r0, _0801FEC0 ldr r0, [r0] ldrb r0, [r0, 0x4] cmp r2, r0 bcs _0801FEEA b _0801FEE4 .align 2, 0 _0801FEC0: .4byte 0x02024c10 _0801FEC4: ldr r0, _0801FED4 ldr r0, [r0] ldrb r0, [r0, 0x4] ands r2, r0 cmp r2, 0 beq _0801FEEA b _0801FEE4 .align 2, 0 _0801FED4: .4byte 0x02024c10 _0801FED8: ldr r0, _0801FF0C ldr r0, [r0] ldrb r0, [r0, 0x4] ands r2, r0 cmp r2, 0 bne _0801FEEA _0801FEE4: adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 _0801FEEA: cmp r5, 0 beq _0801FF10 ldr r3, _0801FF0C ldr r2, [r3] ldrb r1, [r2, 0x5] ldrb r0, [r2, 0x6] lsls r0, 8 adds r1, r0 ldrb r0, [r2, 0x7] lsls r0, 16 adds r1, r0 ldrb r0, [r2, 0x8] lsls r0, 24 adds r1, r0 str r1, [r3] b _0801FF18 .align 2, 0 _0801FF0C: .4byte 0x02024c10 _0801FF10: ldr r1, _0801FF20 ldr r0, [r1] adds r0, 0x9 str r0, [r1] _0801FF18: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0801FF20: .4byte 0x02024c10 thumb_func_end sub_801FE2C thumb_func_start atk21_jumpifspecialstatusflag atk21_jumpifspecialstatusflag: @ 801FF24 push {r4-r6,lr} ldr r4, _0801FF78 ldr r0, [r4] ldrb r0, [r0, 0x1] bl sub_8015150 ldr r5, _0801FF7C strb r0, [r5] ldr r2, [r4] ldrb r1, [r2, 0x2] ldrb r0, [r2, 0x3] lsls r0, 8 adds r1, r0 ldrb r0, [r2, 0x4] lsls r0, 16 adds r1, r0 ldrb r0, [r2, 0x5] lsls r0, 24 adds r6, r1, r0 ldrb r1, [r2, 0x7] ldrb r0, [r2, 0x8] lsls r0, 8 adds r1, r0 ldrb r0, [r2, 0x9] lsls r0, 16 adds r1, r0 ldrb r0, [r2, 0xA] lsls r0, 24 adds r3, r1, r0 ldrb r0, [r2, 0x6] cmp r0, 0 beq _0801FF84 ldr r0, _0801FF80 ldrb r1, [r5] lsls r1, 2 adds r1, r0 ldr r0, [r1] ands r0, r6 cmp r0, 0 bne _0801FF9C b _0801FF94 .align 2, 0 _0801FF78: .4byte 0x02024c10 _0801FF7C: .4byte 0x02024a60 _0801FF80: .4byte 0x02024c98 _0801FF84: ldr r0, _0801FF98 ldrb r1, [r5] lsls r1, 2 adds r1, r0 ldr r0, [r1] ands r0, r6 cmp r0, 0 beq _0801FF9C _0801FF94: str r3, [r4] b _0801FFA2 .align 2, 0 _0801FF98: .4byte 0x02024c98 _0801FF9C: adds r0, r2, 0 adds r0, 0xB str r0, [r4] _0801FFA2: pop {r4-r6} pop {r0} bx r0 thumb_func_end atk21_jumpifspecialstatusflag thumb_func_start sub_801FFA8 sub_801FFA8: @ 801FFA8 push {r4-r6,lr} ldr r4, _0801FFF0 ldr r0, [r4] ldrb r0, [r0, 0x1] bl sub_8015150 lsls r0, 24 lsrs r0, 24 ldr r3, [r4] ldrb r5, [r3, 0x2] ldrb r2, [r3, 0x3] ldrb r1, [r3, 0x4] lsls r1, 8 adds r2, r1 ldrb r1, [r3, 0x5] lsls r1, 16 adds r2, r1 ldrb r1, [r3, 0x6] lsls r1, 24 adds r6, r2, r1 ldr r2, _0801FFF4 movs r1, 0x58 muls r0, r1 adds r1, r0, r2 adds r0, r1, 0 adds r0, 0x21 ldrb r0, [r0] cmp r0, r5 beq _0801FFEC adds r0, r1, 0 adds r0, 0x22 ldrb r0, [r0] cmp r0, r5 bne _0801FFF8 _0801FFEC: str r6, [r4] b _0801FFFC .align 2, 0 _0801FFF0: .4byte 0x02024c10 _0801FFF4: .4byte 0x02024a80 _0801FFF8: adds r0, r3, 0x7 str r0, [r4] _0801FFFC: pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_801FFA8 thumb_func_start sub_8020004 sub_8020004: @ 8020004 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} movs r6, 0 ldr r0, _0802004C mov r10, r0 ldr r0, _08020050 ldr r0, [r0] ldrb r0, [r0, 0x1] bl sub_8015150 ldr r1, _08020054 strb r0, [r1] ldr r2, _08020058 movs r1, 0x2 ands r1, r0 lsls r1, 24 lsrs r1, 25 adds r1, r2 ldrb r1, [r1] mov r8, r1 mov r0, r10 subs r0, 0x4D ldrb r0, [r0] cmp r0, 0x6 bls _08020040 bl _08020996 _08020040: lsls r0, 2 ldr r1, _0802005C adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0802004C: .4byte 0x0201605c _08020050: .4byte 0x02024c10 _08020054: .4byte 0x02024c09 _08020058: .4byte 0x02024dea _0802005C: .4byte _08020060 .align 2, 0 _08020060: .4byte _0802007C .4byte _080200FC .4byte _08020216 .4byte _0802055C .4byte _08020648 .4byte _08020910 .4byte _0802096C _0802007C: ldr r4, _080200A8 ldrb r0, [r4] bl battle_side_get_owner lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _08020098 ldr r0, _080200AC ldrh r1, [r0] ldr r0, _080200B0 ands r0, r1 cmp r0, 0 beq _080200BC _08020098: ldr r0, _080200B4 ldr r1, _080200B8 adds r0, r1 movs r1, 0x6 strb r1, [r0] bl _08020996 .align 2, 0 _080200A8: .4byte 0x02024c09 _080200AC: .4byte 0x020239f8 _080200B0: .4byte 0x00000982 _080200B4: .4byte 0x02000000 _080200B8: .4byte 0x0001600f _080200BC: ldr r2, _080200E8 ldr r3, _080200EC adds r1, r2, r3 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] ldr r0, _080200F0 adds r2, r0 ldr r3, _080200F4 ldr r1, _080200F8 ldrb r0, [r4] lsls r0, 1 adds r0, r1 ldrh r0, [r0] lsls r0, 2 adds r0, r3 ldr r0, [r0] ldrb r1, [r2] orrs r0, r1 strb r0, [r2] bl _08020996 .align 2, 0 _080200E8: .4byte 0x02000000 _080200EC: .4byte 0x0001600f _080200F0: .4byte 0x00016113 _080200F4: .4byte gUnknown_0820872C _080200F8: .4byte 0x02024a6a _080200FC: movs r5, 0 movs r7, 0 ldr r1, _08020150 mov r9, r1 _08020104: movs r0, 0x64 adds r1, r7, 0 muls r1, r0 ldr r0, _08020154 adds r4, r1, r0 adds r0, r4, 0 movs r1, 0xB bl PokemonGetField cmp r0, 0 beq _0802016A adds r0, r4, 0 movs r1, 0x39 bl PokemonGetField cmp r0, 0 beq _0802016A ldr r0, _08020158 lsls r1, r7, 2 adds r1, r0 ldr r0, [r1] mov r2, r8 ands r0, r2 cmp r0, 0 beq _08020138 adds r5, 0x1 _08020138: adds r0, r4, 0 movs r1, 0xC bl PokemonGetField lsls r0, 16 lsrs r0, 16 cmp r0, 0xAF bne _0802015C mov r3, r9 ldrb r4, [r3] b _08020164 .align 2, 0 _08020150: .4byte 0x02028dbc _08020154: .4byte 0x03004360 _08020158: .4byte gUnknown_0820872C _0802015C: bl itemid_get_x12 lsls r0, 24 lsrs r4, r0, 24 _08020164: cmp r4, 0x19 bne _0802016A adds r6, 0x1 _0802016A: adds r7, 0x1 cmp r7, 0x5 ble _08020104 ldr r3, _080201D0 ldr r2, _080201D4 ldr r0, _080201D8 ldrb r1, [r0] movs r0, 0x58 muls r1, r0 adds r1, r2 ldrh r2, [r1] lsls r0, r2, 3 subs r0, r2 lsls r0, 2 adds r0, r3 ldrb r2, [r0, 0x9] adds r1, 0x2A ldrb r0, [r1] muls r0, r2 movs r1, 0x7 bl __divsi3 lsls r0, 16 lsrs r1, r0, 16 cmp r6, 0 beq _080201E0 lsrs r4, r0, 17 adds r0, r4, 0 adds r1, r5, 0 bl __divsi3 mov r1, r10 strh r0, [r1] lsls r0, 16 cmp r0, 0 bne _080201B6 movs r0, 0x1 strh r0, [r1] _080201B6: ldr r5, _080201DC adds r0, r4, 0 adds r1, r6, 0 bl __divsi3 strh r0, [r5] lsls r0, 16 cmp r0, 0 bne _080201FA movs r0, 0x1 strh r0, [r5] b _080201FA .align 2, 0 _080201D0: .4byte gBaseStats _080201D4: .4byte 0x02024a80 _080201D8: .4byte 0x02024c09 _080201DC: .4byte 0x02024dee _080201E0: adds r0, r1, 0 adds r1, r5, 0 bl __divsi3 mov r2, r10 strh r0, [r2] lsls r0, 16 cmp r0, 0 bne _080201F6 movs r0, 0x1 strh r0, [r2] _080201F6: ldr r0, _08020248 strh r6, [r0] _080201FA: ldr r1, _0802024C ldr r3, _08020250 adds r2, r1, r3 ldrb r0, [r2] adds r0, 0x1 movs r3, 0 strb r0, [r2] ldr r2, _08020254 adds r0, r1, r2 strb r3, [r0] ldr r3, _08020258 adds r1, r3 mov r0, r8 strb r0, [r1] _08020216: ldr r0, _0802025C ldr r0, [r0] cmp r0, 0 beq _08020220 b _08020996 _08020220: ldr r0, _0802024C ldr r1, _08020254 adds r0, r1 ldrb r1, [r0] movs r0, 0x64 muls r0, r1 ldr r1, _08020260 adds r0, r1 movs r1, 0xC bl PokemonGetField lsls r0, 16 lsrs r0, 16 cmp r0, 0xAF bne _0802026C ldr r0, _08020264 ldr r2, _08020268 adds r0, r2 ldrb r4, [r0] b _08020274 .align 2, 0 _08020248: .4byte 0x02024dee _0802024C: .4byte 0x02000000 _08020250: .4byte 0x0001600f _08020254: .4byte 0x00016018 _08020258: .4byte 0x0001605f _0802025C: .4byte 0x02024a64 _08020260: .4byte 0x03004360 _08020264: .4byte 0x02025734 _08020268: .4byte 0x00003688 _0802026C: bl itemid_get_x12 lsls r0, 24 lsrs r4, r0, 24 _08020274: ldr r5, _08020294 cmp r4, 0x19 beq _080202A0 ldr r3, _08020298 adds r1, r5, r3 ldrb r0, [r1] movs r2, 0x1 ands r2, r0 cmp r2, 0 bne _080202A0 lsrs r0, 1 strb r0, [r1] ldr r0, _0802029C adds r1, r5, r0 b _080202C8 .align 2, 0 _08020294: .4byte 0x02000000 _08020298: .4byte 0x0001605f _0802029C: .4byte 0x0001600f _080202A0: ldr r1, _080202D4 adds r0, r5, r1 ldrb r1, [r0] movs r0, 0x64 muls r0, r1 ldr r1, _080202D8 adds r0, r1 movs r1, 0x38 bl PokemonGetField cmp r0, 0x64 bne _080202E8 ldr r2, _080202DC adds r1, r5, r2 ldrb r0, [r1] lsrs r0, 1 movs r2, 0 strb r0, [r1] ldr r3, _080202E0 adds r1, r5, r3 _080202C8: movs r0, 0x5 strb r0, [r1] ldr r0, _080202E4 str r2, [r0] b _08020996 .align 2, 0 _080202D4: .4byte 0x00016018 _080202D8: .4byte 0x03004360 _080202DC: .4byte 0x0001605f _080202E0: .4byte 0x0001600f _080202E4: .4byte 0x02024bec _080202E8: ldr r0, _0802034C ldrh r1, [r0] movs r0, 0x8 ands r0, r1 cmp r0, 0 bne _08020316 ldr r0, _08020350 ldrh r0, [r0, 0x28] cmp r0, 0 beq _08020316 ldr r0, _08020354 adds r5, r0 ldrb r0, [r5] cmp r0, 0 bne _08020316 bl sub_80325B8 ldr r0, _08020358 bl sub_8075474 ldrb r0, [r5] adds r0, 0x1 strb r0, [r5] _08020316: ldr r5, _0802035C ldr r1, _08020360 adds r0, r5, r1 ldrb r1, [r0] movs r0, 0x64 muls r0, r1 ldr r1, _08020364 adds r0, r1 movs r1, 0x39 bl PokemonGetField cmp r0, 0 bne _08020332 b _0802051E _08020332: ldr r2, _08020368 adds r0, r5, r2 ldrb r0, [r0] movs r3, 0x1 ands r3, r0 cmp r3, 0 beq _08020370 ldr r1, _0802036C mov r3, r10 ldrh r0, [r3] str r0, [r1] mov r8, r1 b _08020376 .align 2, 0 _0802034C: .4byte 0x020239f8 _08020350: .4byte 0x02024a80 _08020354: .4byte 0x0001601b _08020358: .4byte 0x00000161 _0802035C: .4byte 0x02000000 _08020360: .4byte 0x00016018 _08020364: .4byte 0x03004360 _08020368: .4byte 0x0001605f _0802036C: .4byte 0x02024bec _08020370: ldr r0, _080203EC str r3, [r0] mov r8, r0 _08020376: cmp r4, 0x19 bne _08020386 ldr r0, _080203F0 ldrh r1, [r0] mov r2, r8 ldr r0, [r2] adds r0, r1 str r0, [r2] _08020386: cmp r4, 0x28 bne _0802039C mov r3, r8 ldr r1, [r3] movs r0, 0x96 muls r0, r1 movs r1, 0x64 bl __divsi3 mov r1, r8 str r0, [r1] _0802039C: ldr r0, _080203F4 ldrh r1, [r0] movs r0, 0x8 ands r0, r1 cmp r0, 0 beq _080203B8 ldr r4, _080203EC ldr r1, [r4] movs r0, 0x96 muls r0, r1 movs r1, 0x64 bl __divsi3 str r0, [r4] _080203B8: ldr r0, _080203F8 ldr r2, _080203FC adds r0, r2 ldrb r1, [r0] movs r0, 0x64 muls r0, r1 ldr r1, _08020400 adds r0, r1 bl sub_8040AA4 lsls r0, 24 cmp r0, 0 beq _08020404 ldr r4, _080203EC ldr r1, [r4] movs r0, 0x96 muls r0, r1 movs r1, 0x64 bl __divsi3 str r0, [r4] movs r7, 0xA5 lsls r7, 1 mov r8, r4 b _0802040A .align 2, 0 _080203EC: .4byte 0x02024bec _080203F0: .4byte 0x02024dee _080203F4: .4byte 0x020239f8 _080203F8: .4byte 0x02000000 _080203FC: .4byte 0x00016018 _08020400: .4byte 0x03004360 _08020404: ldr r7, _0802043C ldr r3, _08020440 mov r8, r3 _0802040A: ldr r0, _08020444 ldrh r0, [r0] movs r1, 0x1 ands r1, r0 cmp r1, 0 beq _08020488 ldr r1, _08020448 ldr r0, _0802044C ldr r3, _08020450 adds r2, r0, r3 ldrh r1, [r1, 0x4] adds r5, r0, 0 ldr r4, _08020454 ldr r3, _08020458 ldrb r2, [r2] cmp r1, r2 bne _08020460 ldrb r1, [r3] ldr r0, [r4, 0x8] ands r1, r0 cmp r1, 0 bne _08020460 ldr r0, _0802045C adds r1, r5, r0 b _0802047C .align 2, 0 _0802043C: .4byte 0x00000149 _08020440: .4byte 0x02024bec _08020444: .4byte 0x020239f8 _08020448: .4byte 0x02024a6a _0802044C: .4byte 0x02000000 _08020450: .4byte 0x00016018 _08020454: .4byte gUnknown_0820872C _08020458: .4byte 0x02024c0c _0802045C: .4byte 0x000160a2 _08020460: ldrb r2, [r3] ldr r0, [r4] ands r2, r0 cmp r2, 0 bne _08020478 ldr r1, _08020474 adds r0, r5, r1 strb r2, [r0] b _08020490 .align 2, 0 _08020474: .4byte 0x000160a2 _08020478: ldr r2, _08020484 adds r1, r5, r2 _0802047C: movs r0, 0x2 strb r0, [r1] b _08020490 .align 2, 0 _08020484: .4byte 0x000160a2 _08020488: ldr r0, _08020530 ldr r3, _08020534 adds r0, r3 strb r1, [r0] _08020490: ldr r1, _08020538 movs r3, 0 movs r2, 0xFD strb r2, [r1] movs r5, 0x4 strb r5, [r1, 0x1] ldr r4, _08020530 ldr r0, _08020534 adds r6, r4, r0 ldrb r0, [r6] strb r0, [r1, 0x2] ldr r0, _0802053C adds r4, r0 ldrb r0, [r4] strb r0, [r1, 0x3] movs r0, 0xFF strb r0, [r1, 0x4] ldr r1, _08020540 strb r2, [r1] strb r3, [r1, 0x1] strb r7, [r1, 0x2] movs r3, 0xFF lsls r3, 8 ands r7, r3 asrs r0, r7, 8 strb r0, [r1, 0x3] movs r0, 0x1 negs r0, r0 strb r0, [r1, 0x4] ldr r1, _08020544 strb r2, [r1] movs r0, 0x1 strb r0, [r1, 0x1] strb r5, [r1, 0x2] movs r0, 0x5 strb r0, [r1, 0x3] mov r0, r8 ldr r2, [r0] strb r2, [r1, 0x4] adds r0, r2, 0 ands r0, r3 asrs r0, 8 strb r0, [r1, 0x5] movs r0, 0xFF lsls r0, 16 ands r0, r2 asrs r0, 16 strb r0, [r1, 0x6] lsrs r2, 24 strb r2, [r1, 0x7] movs r0, 0x1 negs r0, r0 strb r0, [r1, 0x8] ldrb r1, [r6] movs r0, 0xD bl b_std_message ldrb r1, [r4] movs r0, 0x64 muls r0, r1 ldr r1, _08020548 adds r0, r1 ldr r3, _0802054C ldr r1, _08020550 ldrb r2, [r1] movs r1, 0x58 muls r1, r2 adds r1, r3 ldrh r1, [r1] bl sub_803FE70 _0802051E: ldr r1, _08020530 ldr r3, _08020554 adds r2, r1, r3 ldrb r0, [r2] lsrs r0, 1 strb r0, [r2] ldr r0, _08020558 adds r1, r0 b _08020618 .align 2, 0 _08020530: .4byte 0x02000000 _08020534: .4byte 0x000160a2 _08020538: .4byte 0x030041c0 _0802053C: .4byte 0x00016018 _08020540: .4byte 0x03004290 _08020544: .4byte 0x030042b0 _08020548: .4byte 0x03004360 _0802054C: .4byte 0x02024a80 _08020550: .4byte 0x02024c09 _08020554: .4byte 0x0001605f _08020558: .4byte 0x0001600f _0802055C: ldr r0, _08020620 ldr r2, [r0] cmp r2, 0 beq _08020566 b _08020996 _08020566: ldr r1, _08020624 ldr r4, _08020628 ldr r3, _0802062C adds r3, r4 mov r8, r3 ldrb r0, [r3] lsls r0, 9 adds r0, r1 strb r2, [r0] ldr r0, _08020630 adds r7, r4, r0 ldrb r0, [r7] movs r6, 0x64 muls r0, r6 ldr r5, _08020634 adds r0, r5 movs r1, 0x39 bl PokemonGetField cmp r0, 0 beq _08020612 ldrb r0, [r7] muls r0, r6 adds r0, r5 movs r1, 0x38 bl PokemonGetField cmp r0, 0x64 beq _08020612 ldrb r0, [r7] muls r0, r6 adds r0, r5 movs r1, 0x3A bl PokemonGetField ldr r1, _08020638 adds r4, r1 strh r0, [r4] ldrb r0, [r7] muls r0, r6 adds r0, r5 movs r1, 0x3B bl PokemonGetField strh r0, [r4, 0x2] ldrb r0, [r7] muls r0, r6 adds r0, r5 movs r1, 0x3C bl PokemonGetField strh r0, [r4, 0x4] ldrb r0, [r7] muls r0, r6 adds r0, r5 movs r1, 0x3D bl PokemonGetField strh r0, [r4, 0x6] ldrb r0, [r7] muls r0, r6 adds r0, r5 movs r1, 0x3E bl PokemonGetField strh r0, [r4, 0x8] ldrb r0, [r7] muls r0, r6 adds r0, r5 movs r1, 0x3F bl PokemonGetField strh r0, [r4, 0xA] ldr r4, _0802063C mov r2, r8 ldrb r0, [r2] strb r0, [r4] ldrb r1, [r7] ldr r0, _08020640 ldrh r2, [r0] movs r0, 0 bl dp01_build_cmdbuf_x19_a_bb ldrb r0, [r4] bl dp01_battle_side_mark_buffer_for_execution _08020612: ldr r1, _08020628 ldr r3, _08020644 adds r1, r3 _08020618: ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] b _08020996 .align 2, 0 _08020620: .4byte 0x02024a64 _08020624: .4byte 0x02024260 _08020628: .4byte 0x02000000 _0802062C: .4byte 0x000160a2 _08020630: .4byte 0x00016018 _08020634: .4byte 0x03004360 _08020638: .4byte 0x00017180 _0802063C: .4byte 0x02024a60 _08020640: .4byte 0x02024bec _08020644: .4byte 0x0001600f _08020648: ldr r0, _080208AC ldr r0, [r0] cmp r0, 0 beq _08020652 b _08020996 _08020652: ldr r1, _080208B0 ldr r4, _080208B4 ldr r2, _080208B8 adds r0, r4, r2 ldrb r0, [r0] strb r0, [r1] ldr r2, _080208BC ldrb r3, [r1] lsls r1, r3, 9 adds r0, r1, r2 ldrb r0, [r0] cmp r0, 0x21 beq _0802066E b _080208F0 _0802066E: adds r0, r2, 0x1 adds r0, r1, r0 ldrb r0, [r0] cmp r0, 0xB beq _0802067A b _080208F0 _0802067A: ldr r0, _080208C0 ldrh r1, [r0] movs r0, 0x8 ands r0, r1 cmp r0, 0 beq _080206A8 ldr r1, _080208C4 lsls r0, r3, 1 adds r2, r0, r1 ldr r0, _080208C8 adds r1, r4, r0 ldrh r0, [r2] ldrb r1, [r1] cmp r0, r1 bne _080206A8 adds r1, r0, 0 movs r0, 0x64 muls r0, r1 ldr r1, _080208CC adds r0, r1 adds r1, r3, 0 bl sub_80324F8 _080206A8: ldr r1, _080208D0 movs r2, 0xFD strb r2, [r1] movs r0, 0x4 strb r0, [r1, 0x1] ldr r5, _080208B0 ldrb r0, [r5] strb r0, [r1, 0x2] ldr r0, _080208B4 ldr r3, _080208C8 adds r6, r0, r3 ldrb r0, [r6] strb r0, [r1, 0x3] movs r0, 0xFF strb r0, [r1, 0x4] ldr r4, _080208D4 strb r2, [r4] movs r0, 0x1 strb r0, [r4, 0x1] strb r0, [r4, 0x2] movs r0, 0x3 strb r0, [r4, 0x3] ldrb r0, [r6] movs r1, 0x64 mov r8, r1 mov r2, r8 muls r2, r0 adds r0, r2, 0 ldr r7, _080208CC adds r0, r7 movs r1, 0x38 bl PokemonGetField strb r0, [r4, 0x4] movs r0, 0x1 negs r0, r0 strb r0, [r4, 0x5] bl b_movescr_stack_push_cursor ldr r2, _080208D8 ldr r1, _080208DC ldrb r0, [r6] lsls r0, 2 adds r0, r1 ldr r0, [r0] ldrb r1, [r2] orrs r0, r1 strb r0, [r2] ldr r1, _080208E0 ldr r0, _080208E4 str r0, [r1] ldr r4, _080208E8 ldr r2, _080208BC ldrb r1, [r5] lsls r1, 9 adds r0, r2, 0x2 adds r0, r1, r0 ldrb r3, [r0] adds r2, 0x3 adds r1, r2 ldrb r0, [r1] lsls r0, 8 orrs r3, r0 str r3, [r4] ldrb r0, [r6] mov r3, r8 muls r3, r0 adds r0, r3, 0 adds r0, r7 movs r1, 0 bl sub_803FCD4 ldr r0, _080208C4 ldrb r1, [r6] ldrh r0, [r0] cmp r0, r1 bne _080207EC ldr r4, _080208EC ldrh r0, [r4, 0x28] cmp r0, 0 beq _080207EC mov r0, r8 muls r0, r1 adds r0, r7 movs r1, 0x38 bl PokemonGetField adds r1, r4, 0 adds r1, 0x2A strb r0, [r1] ldrb r0, [r6] mov r1, r8 muls r1, r0 adds r0, r1, 0 adds r0, r7 movs r1, 0x39 bl PokemonGetField strh r0, [r4, 0x28] ldrb r0, [r6] mov r2, r8 muls r2, r0 adds r0, r2, 0 adds r0, r7 movs r1, 0x3A bl PokemonGetField strh r0, [r4, 0x2C] ldrb r0, [r6] mov r3, r8 muls r3, r0 adds r0, r3, 0 adds r0, r7 movs r1, 0x3B bl PokemonGetField strh r0, [r4, 0x2] ldrb r0, [r6] mov r1, r8 muls r1, r0 adds r0, r1, 0 adds r0, r7 movs r1, 0x3C bl PokemonGetField strh r0, [r4, 0x4] ldrb r0, [r6] mov r2, r8 muls r2, r0 adds r0, r2, 0 adds r0, r7 movs r1, 0x3D bl PokemonGetField strh r0, [r4, 0x6] ldrb r0, [r6] mov r3, r8 muls r3, r0 adds r0, r3, 0 adds r0, r7 movs r1, 0x3D bl PokemonGetField strh r0, [r4, 0x6] ldrb r0, [r6] mov r1, r8 muls r1, r0 adds r0, r1, 0 adds r0, r7 movs r1, 0x3E bl PokemonGetField strh r0, [r4, 0x8] ldrb r0, [r6] mov r2, r8 muls r2, r0 adds r0, r2, 0 adds r0, r7 movs r1, 0x3F bl PokemonGetField strh r0, [r4, 0xA] _080207EC: ldr r0, _080208C4 ldr r1, _080208B4 ldr r3, _080208C8 adds r7, r1, r3 ldrb r2, [r7] ldrh r0, [r0, 0x4] cmp r0, r2 bne _080208F6 ldr r6, _080208EC movs r0, 0xD8 adds r0, r6 mov r8, r0 ldrh r0, [r0] cmp r0, 0 beq _080208F6 ldr r0, _080208C0 ldrh r1, [r0] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _080208F6 movs r5, 0x64 adds r0, r2, 0 muls r0, r5 ldr r4, _080208CC adds r0, r4 movs r1, 0x38 bl PokemonGetField adds r1, r6, 0 adds r1, 0xDA strb r0, [r1] ldrb r0, [r7] muls r0, r5 adds r0, r4 movs r1, 0x39 bl PokemonGetField mov r1, r8 strh r0, [r1] ldrb r0, [r7] muls r0, r5 adds r0, r4 movs r1, 0x3A bl PokemonGetField adds r1, r6, 0 adds r1, 0xDC strh r0, [r1] ldrb r0, [r7] muls r0, r5 adds r0, r4 movs r1, 0x3B bl PokemonGetField adds r1, r6, 0 adds r1, 0xB2 strh r0, [r1] ldrb r0, [r7] muls r0, r5 adds r0, r4 movs r1, 0x3C bl PokemonGetField adds r1, r6, 0 adds r1, 0xB4 strh r0, [r1] ldrb r0, [r7] muls r0, r5 adds r0, r4 movs r1, 0x3D bl PokemonGetField movs r2, 0xB6 adds r2, r6 mov r8, r2 strh r0, [r2] ldrb r0, [r7] muls r0, r5 adds r0, r4 movs r1, 0x3D bl PokemonGetField mov r3, r8 strh r0, [r3] ldrb r0, [r7] muls r0, r5 adds r0, r4 movs r1, 0x3E bl PokemonGetField adds r1, r6, 0 adds r1, 0xB8 strh r0, [r1] b _080208F6 .align 2, 0 _080208AC: .4byte 0x02024a64 _080208B0: .4byte 0x02024a60 _080208B4: .4byte 0x02000000 _080208B8: .4byte 0x000160a2 _080208BC: .4byte 0x02024260 _080208C0: .4byte 0x020239f8 _080208C4: .4byte 0x02024a6a _080208C8: .4byte 0x00016018 _080208CC: .4byte 0x03004360 _080208D0: .4byte 0x030041c0 _080208D4: .4byte 0x03004290 _080208D8: .4byte 0x03004324 _080208DC: .4byte gUnknown_0820872C _080208E0: .4byte 0x02024c10 _080208E4: .4byte gUnknown_081D8EF3 _080208E8: .4byte 0x02024bec _080208EC: .4byte 0x02024a80 _080208F0: ldr r1, _08020904 movs r0, 0 str r0, [r1] _080208F6: ldr r0, _08020908 ldr r1, _0802090C adds r0, r1 movs r1, 0x5 strb r1, [r0] b _08020996 .align 2, 0 _08020904: .4byte 0x02024bec _08020908: .4byte 0x02000000 _0802090C: .4byte 0x0001600f _08020910: ldr r0, _08020924 ldr r0, [r0] cmp r0, 0 beq _08020930 ldr r0, _08020928 ldr r2, _0802092C adds r0, r2 movs r1, 0x3 strb r1, [r0] b _08020996 .align 2, 0 _08020924: .4byte 0x02024bec _08020928: .4byte 0x02000000 _0802092C: .4byte 0x0001600f _08020930: ldr r2, _08020950 ldr r3, _08020954 adds r1, r2, r3 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] lsls r0, 24 lsrs r0, 24 cmp r0, 0x5 bhi _0802095C ldr r0, _08020958 adds r1, r2, r0 movs r0, 0x2 strb r0, [r1] b _08020996 .align 2, 0 _08020950: .4byte 0x02000000 _08020954: .4byte 0x00016018 _08020958: .4byte 0x0001600f _0802095C: ldr r3, _08020968 adds r1, r2, r3 movs r0, 0x6 strb r0, [r1] b _08020996 .align 2, 0 _08020968: .4byte 0x0001600f _0802096C: ldr r0, _080209A4 ldr r5, [r0] cmp r5, 0 bne _08020996 ldr r4, _080209A8 ldr r2, _080209AC ldrb r0, [r2] movs r1, 0x58 muls r0, r1 adds r0, r4 movs r3, 0 strh r5, [r0, 0x2E] ldrb r0, [r2] muls r0, r1 adds r0, r4 adds r0, 0x20 strb r3, [r0] ldr r1, _080209B0 ldr r0, [r1] adds r0, 0x2 str r0, [r1] _08020996: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080209A4: .4byte 0x02024a64 _080209A8: .4byte 0x02024a80 _080209AC: .4byte 0x02024c09 _080209B0: .4byte 0x02024c10 thumb_func_end sub_8020004 thumb_func_start sub_80209B4 sub_80209B4: @ 80209B4 push {r4-r7,lr} mov r7, r8 push {r7} movs r6, 0 ldr r0, _08020AF0 ldr r0, [r0] cmp r0, 0 beq _080209C6 b _08020B46 _080209C6: movs r5, 0 _080209C8: movs r0, 0x64 adds r1, r5, 0 muls r1, r0 ldr r0, _08020AF4 adds r4, r1, r0 adds r0, r4, 0 movs r1, 0xB bl PokemonGetField cmp r0, 0 beq _080209F8 adds r0, r4, 0 movs r1, 0x2D bl PokemonGetField cmp r0, 0 bne _080209F8 adds r0, r4, 0 movs r1, 0x39 bl PokemonGetField adds r0, r6, r0 lsls r0, 16 lsrs r6, r0, 16 _080209F8: adds r5, 0x1 cmp r5, 0x5 ble _080209C8 cmp r6, 0 bne _08020A0C ldr r0, _08020AF8 ldrb r1, [r0] movs r2, 0x2 orrs r1, r2 strb r1, [r0] _08020A0C: movs r6, 0 movs r5, 0 _08020A10: movs r0, 0x64 adds r1, r5, 0 muls r1, r0 ldr r0, _08020AFC adds r4, r1, r0 adds r0, r4, 0 movs r1, 0xB bl PokemonGetField cmp r0, 0 beq _08020A40 adds r0, r4, 0 movs r1, 0x2D bl PokemonGetField cmp r0, 0 bne _08020A40 adds r0, r4, 0 movs r1, 0x39 bl PokemonGetField adds r0, r6, r0 lsls r0, 16 lsrs r6, r0, 16 _08020A40: adds r5, 0x1 cmp r5, 0x5 ble _08020A10 ldr r2, _08020AF8 cmp r6, 0 bne _08020A54 ldrb r0, [r2] movs r1, 0x1 orrs r0, r1 strb r0, [r2] _08020A54: ldrb r0, [r2] cmp r0, 0 bne _08020B3E ldr r2, _08020B00 ldrh r1, [r2] movs r0, 0x2 ands r0, r1 mov r8, r2 cmp r0, 0 beq _08020B3E movs r2, 0 movs r5, 0 ldr r0, _08020B04 ldrb r3, [r0] mov r12, r0 ldr r7, _08020B08 cmp r2, r3 bge _08020AA0 ldr r0, _08020B0C movs r1, 0x80 lsls r1, 21 ldr r6, [r0] adds r4, r3, 0 ldr r3, _08020B10 _08020A84: adds r0, r1, 0 lsls r0, r5 ands r0, r6 cmp r0, 0 beq _08020A98 ldrb r0, [r3] lsls r0, 25 cmp r0, 0 blt _08020A98 adds r2, 0x1 _08020A98: adds r3, 0x28 adds r5, 0x2 cmp r5, r4 blt _08020A84 _08020AA0: movs r4, 0 movs r5, 0x1 mov r0, r12 ldrb r3, [r0] cmp r5, r3 bge _08020ADA ldr r0, _08020B0C movs r1, 0x80 lsls r1, 21 mov r12, r1 ldr r1, [r0] ldr r0, _08020B10 adds r6, r3, 0 adds r3, r0, 0 adds r3, 0x14 _08020ABE: mov r0, r12 lsls r0, r5 ands r0, r1 cmp r0, 0 beq _08020AD2 ldrb r0, [r3] lsls r0, 25 cmp r0, 0 blt _08020AD2 adds r4, 0x1 _08020AD2: adds r3, 0x28 adds r5, 0x2 cmp r5, r6 blt _08020ABE _08020ADA: mov r0, r8 ldrh r1, [r0] movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _08020B14 adds r0, r4, r2 cmp r0, 0x1 bgt _08020B1C b _08020B36 .align 2, 0 _08020AF0: .4byte 0x02024a64 _08020AF4: .4byte 0x03004360 _08020AF8: .4byte 0x02024d26 _08020AFC: .4byte 0x030045c0 _08020B00: .4byte 0x020239f8 _08020B04: .4byte 0x02024a68 _08020B08: .4byte 0x02024c10 _08020B0C: .4byte 0x02024c6c _08020B10: .4byte 0x02024d68 _08020B14: cmp r4, 0 beq _08020B36 cmp r2, 0 beq _08020B36 _08020B1C: ldr r2, [r7] ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] lsls r0, 8 adds r1, r0 ldrb r0, [r2, 0x3] lsls r0, 16 adds r1, r0 ldrb r0, [r2, 0x4] lsls r0, 24 adds r1, r0 str r1, [r7] b _08020B46 _08020B36: ldr r0, [r7] adds r0, 0x5 str r0, [r7] b _08020B46 _08020B3E: ldr r1, _08020B50 ldr r0, [r1] adds r0, 0x5 str r0, [r1] _08020B46: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08020B50: .4byte 0x02024c10 thumb_func_end sub_80209B4 thumb_func_start sub_8020B54 sub_8020B54: @ 8020B54 ldr r1, _08020B80 movs r0, 0 strb r0, [r1] ldr r0, _08020B84 ldr r1, _08020B88 adds r0, r1 movs r2, 0 movs r1, 0x1 strb r1, [r0] ldr r0, _08020B8C strb r1, [r0] ldr r0, _08020B90 strb r2, [r0, 0x3] strb r2, [r0, 0x6] ldr r2, _08020B94 ldr r0, [r2] subs r1, 0x42 ands r0, r1 ldr r1, _08020B98 ands r0, r1 str r0, [r2] bx lr .align 2, 0 _08020B80: .4byte 0x02024c68 _08020B84: .4byte 0x02000000 _08020B88: .4byte 0x0001601f _08020B8C: .4byte 0x02024c0d _08020B90: .4byte 0x02024d1e _08020B94: .4byte 0x02024c6c _08020B98: .4byte 0xffffbfff thumb_func_end sub_8020B54 thumb_func_start atk25_cmd25 atk25_cmd25: @ 8020B9C push {lr} bl sub_8020B54 ldr r1, _08020BB0 ldr r0, [r1] adds r0, 0x1 str r0, [r1] pop {r0} bx r0 .align 2, 0 _08020BB0: .4byte 0x02024c10 thumb_func_end atk25_cmd25 thumb_func_start sub_8020BB4 sub_8020BB4: @ 8020BB4 ldr r3, _08020BC4 ldr r2, _08020BC8 ldr r0, [r2] ldrb r1, [r0, 0x1] strb r1, [r3] adds r0, 0x2 str r0, [r2] bx lr .align 2, 0 _08020BC4: .4byte 0x02024c0e _08020BC8: .4byte 0x02024c10 thumb_func_end sub_8020BB4 thumb_func_start atk27_cmd27 atk27_cmd27: @ 8020BCC push {lr} ldr r1, _08020BE8 ldrb r0, [r1] subs r0, 0x1 strb r0, [r1] lsls r0, 24 cmp r0, 0 bne _08020BF0 ldr r1, _08020BEC ldr r0, [r1] adds r0, 0x5 str r0, [r1] b _08020C0A .align 2, 0 _08020BE8: .4byte 0x02024c0e _08020BEC: .4byte 0x02024c10 _08020BF0: ldr r3, _08020C10 ldr r2, [r3] ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] lsls r0, 8 adds r1, r0 ldrb r0, [r2, 0x3] lsls r0, 16 adds r1, r0 ldrb r0, [r2, 0x4] lsls r0, 24 adds r1, r0 str r1, [r3] _08020C0A: pop {r0} bx r0 .align 2, 0 _08020C10: .4byte 0x02024c10 thumb_func_end atk27_cmd27 thumb_func_start sub_8020C14 sub_8020C14: @ 8020C14 ldr r3, _08020C30 ldr r2, [r3] ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] lsls r0, 8 adds r1, r0 ldrb r0, [r2, 0x3] lsls r0, 16 adds r1, r0 ldrb r0, [r2, 0x4] lsls r0, 24 adds r1, r0 str r1, [r3] bx lr .align 2, 0 _08020C30: .4byte 0x02024c10 thumb_func_end sub_8020C14 thumb_func_start atk29_jumpifbyte atk29_jumpifbyte: @ 8020C34 push {r4-r6,lr} ldr r3, _08020C78 ldr r1, [r3] ldrb r6, [r1, 0x1] ldrb r2, [r1, 0x2] ldrb r0, [r1, 0x3] lsls r0, 8 adds r2, r0 ldrb r0, [r1, 0x4] lsls r0, 16 adds r2, r0 ldrb r0, [r1, 0x5] lsls r0, 24 adds r5, r2, r0 ldrb r4, [r1, 0x6] ldrb r2, [r1, 0x7] ldrb r0, [r1, 0x8] lsls r0, 8 adds r2, r0 ldrb r0, [r1, 0x9] lsls r0, 16 adds r2, r0 ldrb r0, [r1, 0xA] lsls r0, 24 adds r2, r0 adds r1, 0xB str r1, [r3] cmp r6, 0x5 bhi _08020CCC lsls r0, r6, 2 ldr r1, _08020C7C adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08020C78: .4byte 0x02024c10 _08020C7C: .4byte _08020C80 .align 2, 0 _08020C80: .4byte _08020C98 .4byte _08020CA0 .4byte _08020CA8 .4byte _08020CB0 .4byte _08020CB8 .4byte _08020CC2 _08020C98: ldrb r0, [r5] cmp r0, r4 bne _08020CCC b _08020CCA _08020CA0: ldrb r0, [r5] cmp r0, r4 beq _08020CCC b _08020CCA _08020CA8: ldrb r0, [r5] cmp r0, r4 bls _08020CCC b _08020CCA _08020CB0: ldrb r0, [r5] cmp r0, r4 bcs _08020CCC b _08020CCA _08020CB8: ldrb r0, [r5] ands r4, r0 cmp r4, 0 beq _08020CCC b _08020CCA _08020CC2: ldrb r0, [r5] ands r4, r0 cmp r4, 0 bne _08020CCC _08020CCA: str r2, [r3] _08020CCC: pop {r4-r6} pop {r0} bx r0 thumb_func_end atk29_jumpifbyte thumb_func_start sub_8020CD4 sub_8020CD4: @ 8020CD4 push {r4-r6,lr} ldr r3, _08020D20 ldr r1, [r3] ldrb r6, [r1, 0x1] ldrb r2, [r1, 0x2] ldrb r0, [r1, 0x3] lsls r0, 8 adds r2, r0 ldrb r0, [r1, 0x4] lsls r0, 16 adds r2, r0 ldrb r0, [r1, 0x5] lsls r0, 24 adds r5, r2, r0 ldrb r4, [r1, 0x6] ldrb r0, [r1, 0x7] lsls r0, 8 orrs r4, r0 ldrb r2, [r1, 0x8] ldrb r0, [r1, 0x9] lsls r0, 8 adds r2, r0 ldrb r0, [r1, 0xA] lsls r0, 16 adds r2, r0 ldrb r0, [r1, 0xB] lsls r0, 24 adds r2, r0 adds r1, 0xC str r1, [r3] cmp r6, 0x5 bhi _08020D74 lsls r0, r6, 2 ldr r1, _08020D24 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08020D20: .4byte 0x02024c10 _08020D24: .4byte _08020D28 .align 2, 0 _08020D28: .4byte _08020D40 .4byte _08020D48 .4byte _08020D50 .4byte _08020D58 .4byte _08020D60 .4byte _08020D6A _08020D40: ldrh r0, [r5] cmp r0, r4 bne _08020D74 b _08020D72 _08020D48: ldrh r0, [r5] cmp r0, r4 beq _08020D74 b _08020D72 _08020D50: ldrh r0, [r5] cmp r0, r4 bls _08020D74 b _08020D72 _08020D58: ldrh r0, [r5] cmp r0, r4 bcs _08020D74 b _08020D72 _08020D60: ldrh r0, [r5] ands r4, r0 cmp r4, 0 beq _08020D74 b _08020D72 _08020D6A: ldrh r0, [r5] ands r4, r0 cmp r4, 0 bne _08020D74 _08020D72: str r2, [r3] _08020D74: pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_8020CD4 thumb_func_start sub_8020D7C sub_8020D7C: @ 8020D7C push {r4-r6,lr} ldr r3, _08020DD4 ldr r1, [r3] ldrb r6, [r1, 0x1] ldrb r2, [r1, 0x2] ldrb r0, [r1, 0x3] lsls r0, 8 adds r2, r0 ldrb r0, [r1, 0x4] lsls r0, 16 adds r2, r0 ldrb r0, [r1, 0x5] lsls r0, 24 adds r5, r2, r0 ldrb r4, [r1, 0x6] ldrb r0, [r1, 0x7] lsls r0, 8 orrs r4, r0 ldrb r0, [r1, 0x8] lsls r0, 16 orrs r4, r0 ldrb r0, [r1, 0x9] lsls r0, 24 orrs r4, r0 ldrb r2, [r1, 0xA] ldrb r0, [r1, 0xB] lsls r0, 8 adds r2, r0 ldrb r0, [r1, 0xC] lsls r0, 16 adds r2, r0 ldrb r0, [r1, 0xD] lsls r0, 24 adds r2, r0 adds r1, 0xE str r1, [r3] cmp r6, 0x5 bhi _08020E28 lsls r0, r6, 2 ldr r1, _08020DD8 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08020DD4: .4byte 0x02024c10 _08020DD8: .4byte _08020DDC .align 2, 0 _08020DDC: .4byte _08020DF4 .4byte _08020DFC .4byte _08020E04 .4byte _08020E0C .4byte _08020E14 .4byte _08020E1E _08020DF4: ldr r0, [r5] cmp r0, r4 bne _08020E28 b _08020E26 _08020DFC: ldr r0, [r5] cmp r0, r4 beq _08020E28 b _08020E26 _08020E04: ldr r0, [r5] cmp r0, r4 bls _08020E28 b _08020E26 _08020E0C: ldr r0, [r5] cmp r0, r4 bcs _08020E28 b _08020E26 _08020E14: ldr r0, [r5] ands r0, r4 cmp r0, 0 beq _08020E28 b _08020E26 _08020E1E: ldr r0, [r5] ands r0, r4 cmp r0, 0 bne _08020E28 _08020E26: str r2, [r3] _08020E28: pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_8020D7C thumb_func_start sub_8020E30 sub_8020E30: @ 8020E30 push {r4-r7,lr} ldr r2, _08020E88 ldr r3, [r2] ldrb r1, [r3, 0x1] ldrb r0, [r3, 0x2] lsls r0, 8 adds r1, r0 ldrb r0, [r3, 0x3] lsls r0, 16 adds r1, r0 ldrb r0, [r3, 0x4] lsls r0, 24 adds r5, r1, r0 ldrb r1, [r3, 0x5] ldrb r0, [r3, 0x6] lsls r0, 8 adds r1, r0 ldrb r0, [r3, 0x7] lsls r0, 16 adds r1, r0 ldrb r0, [r3, 0x8] lsls r0, 24 adds r4, r1, r0 ldrb r6, [r3, 0x9] ldrb r1, [r3, 0xA] ldrb r0, [r3, 0xB] lsls r0, 8 adds r1, r0 ldrb r0, [r3, 0xC] lsls r0, 16 adds r1, r0 ldrb r0, [r3, 0xD] lsls r0, 24 adds r1, r0 mov r12, r1 movs r1, 0 cmp r1, r6 bcs _08020EA8 ldrb r0, [r5] ldrb r7, [r4] cmp r0, r7 beq _08020E8C adds r0, r3, 0 b _08020EA4 .align 2, 0 _08020E88: .4byte 0x02024c10 _08020E8C: adds r5, 0x1 adds r4, 0x1 adds r0, r1, 0x1 lsls r0, 24 lsrs r1, r0, 24 cmp r1, r6 bcs _08020EA8 ldrb r0, [r5] ldrb r3, [r4] cmp r0, r3 beq _08020E8C ldr r0, [r2] _08020EA4: adds r0, 0xE str r0, [r2] _08020EA8: cmp r1, r6 bne _08020EB0 mov r7, r12 str r7, [r2] _08020EB0: pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8020E30 thumb_func_start sub_8020EB8 sub_8020EB8: @ 8020EB8 push {r4-r7,lr} movs r7, 0 ldr r3, _08020F2C ldr r1, [r3] ldrb r2, [r1, 0x1] ldrb r0, [r1, 0x2] lsls r0, 8 adds r2, r0 ldrb r0, [r1, 0x3] lsls r0, 16 adds r2, r0 ldrb r0, [r1, 0x4] lsls r0, 24 adds r5, r2, r0 ldrb r2, [r1, 0x5] ldrb r0, [r1, 0x6] lsls r0, 8 adds r2, r0 ldrb r0, [r1, 0x7] lsls r0, 16 adds r2, r0 ldrb r0, [r1, 0x8] lsls r0, 24 adds r4, r2, r0 ldrb r6, [r1, 0x9] ldrb r2, [r1, 0xA] ldrb r0, [r1, 0xB] lsls r0, 8 adds r2, r0 ldrb r0, [r1, 0xC] lsls r0, 16 adds r2, r0 ldrb r0, [r1, 0xD] lsls r0, 24 adds r2, r0 mov r12, r2 movs r1, 0 cmp r7, r6 bcs _08020F22 _08020F06: ldrb r0, [r5] ldrb r2, [r4] cmp r0, r2 bne _08020F14 adds r0, r7, 0x1 lsls r0, 24 lsrs r7, r0, 24 _08020F14: adds r5, 0x1 adds r4, 0x1 adds r0, r1, 0x1 lsls r0, 24 lsrs r1, r0, 24 cmp r1, r6 bcc _08020F06 _08020F22: cmp r7, r6 beq _08020F30 mov r0, r12 b _08020F34 .align 2, 0 _08020F2C: .4byte 0x02024c10 _08020F30: ldr r0, [r3] adds r0, 0xE _08020F34: str r0, [r3] pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8020EB8 thumb_func_start sub_8020F3C sub_8020F3C: @ 8020F3C ldr r3, _08020F60 ldr r2, [r3] ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] lsls r0, 8 adds r1, r0 ldrb r0, [r2, 0x3] lsls r0, 16 adds r1, r0 ldrb r0, [r2, 0x4] lsls r0, 24 adds r1, r0 ldrb r0, [r2, 0x5] strb r0, [r1] ldr r0, [r3] adds r0, 0x6 str r0, [r3] bx lr .align 2, 0 _08020F60: .4byte 0x02024c10 thumb_func_end sub_8020F3C thumb_func_start sub_8020F64 sub_8020F64: @ 8020F64 ldr r3, _08020F8C ldr r2, [r3] ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] lsls r0, 8 adds r1, r0 ldrb r0, [r2, 0x3] lsls r0, 16 adds r1, r0 ldrb r0, [r2, 0x4] lsls r0, 24 adds r1, r0 ldrb r0, [r2, 0x5] ldrb r2, [r1] adds r0, r2 strb r0, [r1] ldr r0, [r3] adds r0, 0x6 str r0, [r3] bx lr .align 2, 0 _08020F8C: .4byte 0x02024c10 thumb_func_end sub_8020F64 thumb_func_start sub_8020F90 sub_8020F90: @ 8020F90 ldr r3, _08020FB8 ldr r2, [r3] ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] lsls r0, 8 adds r1, r0 ldrb r0, [r2, 0x3] lsls r0, 16 adds r1, r0 ldrb r0, [r2, 0x4] lsls r0, 24 adds r1, r0 ldrb r0, [r1] ldrb r2, [r2, 0x5] subs r0, r2 strb r0, [r1] ldr r0, [r3] adds r0, 0x6 str r0, [r3] bx lr .align 2, 0 _08020FB8: .4byte 0x02024c10 thumb_func_end sub_8020F90 thumb_func_start atk31_copyarray atk31_copyarray: @ 8020FBC push {r4-r6,lr} ldr r3, _0802100C ldr r1, [r3] ldrb r2, [r1, 0x1] ldrb r0, [r1, 0x2] lsls r0, 8 adds r2, r0 ldrb r0, [r1, 0x3] lsls r0, 16 adds r2, r0 ldrb r0, [r1, 0x4] lsls r0, 24 adds r6, r2, r0 ldrb r2, [r1, 0x5] ldrb r0, [r1, 0x6] lsls r0, 8 adds r2, r0 ldrb r0, [r1, 0x7] lsls r0, 16 adds r2, r0 ldrb r0, [r1, 0x8] lsls r0, 24 adds r5, r2, r0 ldrb r4, [r1, 0x9] movs r2, 0 cmp r2, r4 bge _08021000 _08020FF2: adds r0, r6, r2 adds r1, r5, r2 ldrb r1, [r1] strb r1, [r0] adds r2, 0x1 cmp r2, r4 blt _08020FF2 _08021000: ldr r0, [r3] adds r0, 0xA str r0, [r3] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0802100C: .4byte 0x02024c10 thumb_func_end atk31_copyarray thumb_func_start atk32_memcpy_with_offset atk32_memcpy_with_offset: @ 8021010 push {r4-r7,lr} ldr r3, _08021078 ldr r1, [r3] ldrb r2, [r1, 0x1] ldrb r0, [r1, 0x2] lsls r0, 8 adds r2, r0 ldrb r0, [r1, 0x3] lsls r0, 16 adds r2, r0 ldrb r0, [r1, 0x4] lsls r0, 24 adds r7, r2, r0 ldrb r2, [r1, 0x5] ldrb r0, [r1, 0x6] lsls r0, 8 adds r2, r0 ldrb r0, [r1, 0x7] lsls r0, 16 adds r2, r0 ldrb r0, [r1, 0x8] lsls r0, 24 adds r6, r2, r0 ldrb r2, [r1, 0x9] ldrb r0, [r1, 0xA] lsls r0, 8 adds r2, r0 ldrb r0, [r1, 0xB] lsls r0, 16 adds r2, r0 ldrb r0, [r1, 0xC] lsls r0, 24 adds r5, r2, r0 ldrb r4, [r1, 0xD] movs r2, 0 cmp r2, r4 bge _0802106C _0802105A: adds r0, r7, r2 ldrb r1, [r5] adds r1, r2, r1 adds r1, r6, r1 ldrb r1, [r1] strb r1, [r0] adds r2, 0x1 cmp r2, r4 blt _0802105A _0802106C: ldr r0, [r3] adds r0, 0xE str r0, [r3] pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08021078: .4byte 0x02024c10 thumb_func_end atk32_memcpy_with_offset thumb_func_start sub_802107C sub_802107C: @ 802107C ldr r3, _080210A4 ldr r2, [r3] ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] lsls r0, 8 adds r1, r0 ldrb r0, [r2, 0x3] lsls r0, 16 adds r1, r0 ldrb r0, [r2, 0x4] lsls r0, 24 adds r1, r0 ldrb r0, [r1] ldrb r2, [r2, 0x5] orrs r0, r2 strb r0, [r1] ldr r0, [r3] adds r0, 0x6 str r0, [r3] bx lr .align 2, 0 _080210A4: .4byte 0x02024c10 thumb_func_end sub_802107C thumb_func_start atk34_orhalfword atk34_orhalfword: @ 80210A8 push {r4,lr} ldr r4, _080210DC ldr r3, [r4] ldrb r2, [r3, 0x1] ldrb r0, [r3, 0x2] lsls r0, 8 adds r2, r0 ldrb r0, [r3, 0x3] lsls r0, 16 adds r2, r0 ldrb r0, [r3, 0x4] lsls r0, 24 adds r2, r0 ldrb r1, [r3, 0x5] ldrb r0, [r3, 0x6] lsls r0, 8 orrs r1, r0 ldrh r0, [r2] orrs r1, r0 strh r1, [r2] ldr r0, [r4] adds r0, 0x7 str r0, [r4] pop {r4} pop {r0} bx r0 .align 2, 0 _080210DC: .4byte 0x02024c10 thumb_func_end atk34_orhalfword thumb_func_start atk35_orword atk35_orword: @ 80210E0 push {r4,lr} ldr r4, _08021120 ldr r2, [r4] ldrb r3, [r2, 0x1] ldrb r0, [r2, 0x2] lsls r0, 8 adds r3, r0 ldrb r0, [r2, 0x3] lsls r0, 16 adds r3, r0 ldrb r0, [r2, 0x4] lsls r0, 24 adds r3, r0 ldrb r1, [r2, 0x5] ldrb r0, [r2, 0x6] lsls r0, 8 adds r1, r0 ldrb r0, [r2, 0x7] lsls r0, 16 adds r1, r0 ldrb r0, [r2, 0x8] lsls r0, 24 adds r1, r0 ldr r0, [r3] orrs r0, r1 str r0, [r3] ldr r0, [r4] adds r0, 0x9 str r0, [r4] pop {r4} pop {r0} bx r0 .align 2, 0 _08021120: .4byte 0x02024c10 thumb_func_end atk35_orword thumb_func_start sub_8021124 sub_8021124: @ 8021124 ldr r3, _0802114C ldr r2, [r3] ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] lsls r0, 8 adds r1, r0 ldrb r0, [r2, 0x3] lsls r0, 16 adds r1, r0 ldrb r0, [r2, 0x4] lsls r0, 24 adds r1, r0 ldrb r2, [r2, 0x5] ldrb r0, [r1] bics r0, r2 strb r0, [r1] ldr r0, [r3] adds r0, 0x6 str r0, [r3] bx lr .align 2, 0 _0802114C: .4byte 0x02024c10 thumb_func_end sub_8021124 thumb_func_start atk37_bichalfword atk37_bichalfword: @ 8021150 push {r4,lr} ldr r4, _08021184 ldr r3, [r4] ldrb r1, [r3, 0x1] ldrb r0, [r3, 0x2] lsls r0, 8 adds r1, r0 ldrb r0, [r3, 0x3] lsls r0, 16 adds r1, r0 ldrb r0, [r3, 0x4] lsls r0, 24 adds r1, r0 ldrb r2, [r3, 0x5] ldrb r0, [r3, 0x6] lsls r0, 8 orrs r2, r0 ldrh r0, [r1] bics r0, r2 strh r0, [r1] ldr r0, [r4] adds r0, 0x7 str r0, [r4] pop {r4} pop {r0} bx r0 .align 2, 0 _08021184: .4byte 0x02024c10 thumb_func_end atk37_bichalfword thumb_func_start atk38_bicword atk38_bicword: @ 8021188 push {r4,lr} ldr r4, _080211C8 ldr r2, [r4] ldrb r3, [r2, 0x1] ldrb r0, [r2, 0x2] lsls r0, 8 adds r3, r0 ldrb r0, [r2, 0x3] lsls r0, 16 adds r3, r0 ldrb r0, [r2, 0x4] lsls r0, 24 adds r3, r0 ldrb r1, [r2, 0x5] ldrb r0, [r2, 0x6] lsls r0, 8 adds r1, r0 ldrb r0, [r2, 0x7] lsls r0, 16 adds r1, r0 ldrb r0, [r2, 0x8] lsls r0, 24 adds r1, r0 ldr r0, [r3] bics r0, r1 str r0, [r3] ldr r0, [r4] adds r0, 0x9 str r0, [r4] pop {r4} pop {r0} bx r0 .align 2, 0 _080211C8: .4byte 0x02024c10 thumb_func_end atk38_bicword thumb_func_start atk39_pause atk39_pause: @ 80211CC push {r4,r5,lr} ldr r0, _08021200 ldr r4, [r0] cmp r4, 0 bne _080211F8 ldr r5, _08021204 ldr r2, [r5] ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] lsls r0, 8 orrs r1, r0 ldr r3, _08021208 ldrh r0, [r3] adds r0, 0x1 strh r0, [r3] lsls r0, 16 lsrs r0, 16 cmp r0, r1 bcc _080211F8 strh r4, [r3] adds r0, r2, 0x3 str r0, [r5] _080211F8: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08021200: .4byte 0x02024a64 _08021204: .4byte 0x02024c10 _08021208: .4byte 0x02024d18 thumb_func_end atk39_pause thumb_func_start sub_802120C sub_802120C: @ 802120C push {lr} ldr r0, _08021224 ldr r0, [r0] cmp r0, 0 bne _0802121E ldr r1, _08021228 ldr r0, [r1] adds r0, 0x1 str r0, [r1] _0802121E: pop {r0} bx r0 .align 2, 0 _08021224: .4byte 0x02024a64 _08021228: .4byte 0x02024c10 thumb_func_end sub_802120C thumb_func_start atk3B_8022C68 atk3B_8022C68: @ 802122C push {lr} ldr r0, _08021240 ldr r0, [r0] ldrb r0, [r0, 0x1] cmp r0, 0 bne _0802124C ldr r0, _08021244 ldr r1, _08021248 b _08021250 .align 2, 0 _08021240: .4byte 0x02024c10 _08021244: .4byte 0x02024a60 _08021248: .4byte 0x02024c08 _0802124C: ldr r0, _08021274 ldr r1, _08021278 _08021250: ldrb r1, [r1] strb r1, [r0] ldr r0, _0802127C ldrh r1, [r0] movs r0, 0 bl dp01_build_cmdbuf_x18_0_aa_health_bar_update ldr r0, _08021274 ldrb r0, [r0] bl dp01_battle_side_mark_buffer_for_execution ldr r1, _08021280 ldr r0, [r1] adds r0, 0x2 str r0, [r1] pop {r0} bx r0 .align 2, 0 _08021274: .4byte 0x02024a60 _08021278: .4byte 0x02024c07 _0802127C: .4byte 0x02024bec _08021280: .4byte 0x02024c10 thumb_func_end atk3B_8022C68 thumb_func_start atk3C_return atk3C_return: @ 8021284 push {lr} bl b_movescr_stack_pop_cursor pop {r0} bx r0 thumb_func_end atk3C_return thumb_func_start sub_8021290 sub_8021290: @ 8021290 ldr r0, _080212A4 movs r1, 0 strb r1, [r0] ldr r0, _080212A8 strb r1, [r0] ldr r1, _080212AC movs r0, 0xB strb r0, [r1] bx lr .align 2, 0 _080212A4: .4byte 0x02024c68 _080212A8: .4byte 0x02024a60 _080212AC: .4byte 0x02024a7f thumb_func_end sub_8021290 thumb_func_start sub_80212B0 sub_80212B0: @ 80212B0 ldr r1, _080212C0 movs r0, 0 strb r0, [r1] ldr r1, _080212C4 movs r0, 0xB strb r0, [r1] bx lr .align 2, 0 _080212C0: .4byte 0x02024a60 _080212C4: .4byte 0x02024a7f thumb_func_end sub_80212B0 thumb_func_start atk3F_end3 atk3F_end3: @ 80212C8 push {lr} bl b_movescr_stack_pop_cursor ldr r2, _080212F0 adds r1, r2, 0 adds r1, 0x20 ldrb r0, [r1] cmp r0, 0 beq _080212DE subs r0, 0x1 strb r0, [r1] _080212DE: ldr r0, _080212F4 ldrb r1, [r1] lsls r1, 2 adds r1, r2 ldr r1, [r1] str r1, [r0] pop {r0} bx r0 .align 2, 0 _080212F0: .4byte 0x02017140 _080212F4: .4byte 0x030042d4 thumb_func_end atk3F_end3 thumb_func_start atk41_call atk41_call: @ 80212F8 push {r4,lr} ldr r4, _08021324 ldr r0, [r4] adds r0, 0x5 bl b_movescr_stack_push ldr r2, [r4] ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x4] lsls r0, 24 orrs r1, r0 str r1, [r4] pop {r4} pop {r0} bx r0 .align 2, 0 _08021324: .4byte 0x02024c10 thumb_func_end atk41_call thumb_func_start atk42_jumpiftype2 atk42_jumpiftype2: @ 8021328 push {r4,lr} ldr r4, _08021370 ldr r0, [r4] ldrb r0, [r0, 0x1] bl sub_8015150 lsls r0, 24 lsrs r0, 24 ldr r3, [r4] ldr r2, _08021374 movs r1, 0x58 muls r0, r1 adds r0, r2 adds r1, r0, 0 adds r1, 0x21 ldrb r2, [r3, 0x2] ldrb r1, [r1] cmp r2, r1 beq _08021356 adds r0, 0x22 ldrb r0, [r0] cmp r2, r0 bne _08021378 _08021356: ldrb r1, [r3, 0x3] ldrb r0, [r3, 0x4] lsls r0, 8 orrs r1, r0 ldrb r0, [r3, 0x5] lsls r0, 16 orrs r1, r0 ldrb r0, [r3, 0x6] lsls r0, 24 orrs r1, r0 str r1, [r4] b _0802137C .align 2, 0 _08021370: .4byte 0x02024c10 _08021374: .4byte 0x02024a80 _08021378: adds r0, r3, 0x7 str r0, [r4] _0802137C: pop {r4} pop {r0} bx r0 thumb_func_end atk42_jumpiftype2 thumb_func_start sub_8021384 sub_8021384: @ 8021384 push {r4,lr} sub sp, 0x4 ldr r4, _080213BC ldr r0, [r4] ldrb r2, [r0, 0x1] movs r0, 0 str r0, [sp] movs r0, 0x13 movs r1, 0 movs r3, 0 bl sub_8018324 lsls r0, 24 cmp r0, 0 beq _080213C0 ldr r2, [r4] ldrb r1, [r2, 0x2] ldrb r0, [r2, 0x3] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x4] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x5] lsls r0, 24 orrs r1, r0 str r1, [r4] b _080213C6 .align 2, 0 _080213BC: .4byte 0x02024c10 _080213C0: ldr r0, [r4] adds r0, 0x6 str r0, [r4] _080213C6: add sp, 0x4 pop {r4} pop {r0} bx r0 thumb_func_end sub_8021384 thumb_func_start sub_80213D0 sub_80213D0: @ 80213D0 ldr r1, _080213E4 ldr r0, _080213E8 ldrb r0, [r0] ldr r2, _080213EC adds r0, r2 adds r0, r1 movs r1, 0x1 strb r1, [r0] bx lr .align 2, 0 _080213E4: .4byte 0x02000000 _080213E8: .4byte 0x02024c07 _080213EC: .4byte 0x00016060 thumb_func_end sub_80213D0 thumb_func_start atk46_cmd46 atk46_cmd46: @ 80213F0 push {r4-r6,lr} ldr r5, _08021444 ldr r0, [r5] ldrb r0, [r0, 0x1] bl sub_8015150 ldr r6, _08021448 strb r0, [r6] ldr r2, [r5] ldrb r1, [r2, 0x3] ldrb r0, [r2, 0x4] lsls r0, 8 adds r1, r0 ldrb r0, [r2, 0x5] lsls r0, 16 adds r1, r0 ldrb r0, [r2, 0x6] lsls r0, 24 adds r3, r1, r0 ldrb r4, [r2, 0x2] adds r0, r4, 0 cmp r0, 0x1 beq _08021426 cmp r0, 0x11 beq _08021426 cmp r0, 0x2 bne _0802144C _08021426: ldr r4, _08021444 ldr r0, [r4] ldrb r1, [r0, 0x2] ldrh r2, [r3] movs r0, 0 bl dp01_build_cmdbuf_x34_a_bb_aka_battle_anim ldr r0, _08021448 ldrb r0, [r0] bl dp01_battle_side_mark_buffer_for_execution ldr r0, [r4] adds r0, 0x7 str r0, [r4] b _080214AE .align 2, 0 _08021444: .4byte 0x02024c10 _08021448: .4byte 0x02024a60 _0802144C: ldr r0, _08021464 ldr r0, [r0] movs r1, 0x80 ands r0, r1 cmp r0, 0 beq _0802146C adds r0, r2, 0x7 bl b_movescr_stack_push ldr r0, _08021468 b _080214AC .align 2, 0 _08021464: .4byte 0x02024c6c _08021468: .4byte gUnknown_081D8EEF _0802146C: adds r0, r4, 0 subs r0, 0xA lsls r0, 24 lsrs r0, 24 cmp r0, 0x3 bls _08021498 ldr r1, _08021490 ldrb r0, [r6] lsls r0, 2 adds r0, r1 ldr r0, [r0] ldr r1, _08021494 ands r0, r1 cmp r0, 0 beq _08021498 adds r0, r2, 0x7 b _080214AC .align 2, 0 _08021490: .4byte 0x02024c98 _08021494: .4byte 0x000400c0 _08021498: ldrb r1, [r2, 0x2] ldrh r2, [r3] movs r0, 0 bl dp01_build_cmdbuf_x34_a_bb_aka_battle_anim ldrb r0, [r6] bl dp01_battle_side_mark_buffer_for_execution ldr r0, [r5] adds r0, 0x7 _080214AC: str r0, [r5] _080214AE: pop {r4-r6} pop {r0} bx r0 thumb_func_end atk46_cmd46 thumb_func_start sub_80214B4 sub_80214B4: @ 80214B4 push {r4-r7,lr} ldr r6, _0802151C ldr r0, [r6] ldrb r0, [r0, 0x1] bl sub_8015150 ldr r7, _08021520 strb r0, [r7] ldr r2, [r6] ldrb r1, [r2, 0x2] ldrb r0, [r2, 0x3] lsls r0, 8 adds r1, r0 ldrb r0, [r2, 0x4] lsls r0, 16 adds r1, r0 ldrb r0, [r2, 0x5] lsls r0, 24 adds r3, r1, r0 ldrb r1, [r2, 0x6] ldrb r0, [r2, 0x7] lsls r0, 8 adds r1, r0 ldrb r0, [r2, 0x8] lsls r0, 16 adds r1, r0 ldrb r0, [r2, 0x9] lsls r0, 24 adds r4, r1, r0 ldrb r5, [r3] adds r0, r5, 0 cmp r0, 0x1 beq _080214FE cmp r0, 0x11 beq _080214FE cmp r0, 0x2 bne _08021524 _080214FE: ldrb r1, [r3] ldrh r2, [r4] movs r0, 0 bl dp01_build_cmdbuf_x34_a_bb_aka_battle_anim ldr r0, _08021520 ldrb r0, [r0] bl dp01_battle_side_mark_buffer_for_execution ldr r1, _0802151C ldr r0, [r1] adds r0, 0xA str r0, [r1] b _0802157A .align 2, 0 _0802151C: .4byte 0x02024c10 _08021520: .4byte 0x02024a60 _08021524: ldr r0, _08021534 ldr r0, [r0] movs r1, 0x80 ands r0, r1 cmp r0, 0 beq _08021538 adds r0, r2, 0 b _08021576 .align 2, 0 _08021534: .4byte 0x02024c6c _08021538: adds r0, r5, 0 subs r0, 0xA lsls r0, 24 lsrs r0, 24 cmp r0, 0x3 bls _08021564 ldr r1, _0802155C ldrb r0, [r7] lsls r0, 2 adds r0, r1 ldr r0, [r0] ldr r1, _08021560 ands r0, r1 cmp r0, 0 beq _08021564 adds r0, r2, 0 b _08021576 .align 2, 0 _0802155C: .4byte 0x02024c98 _08021560: .4byte 0x000400c0 _08021564: ldrb r1, [r3] ldrh r2, [r4] movs r0, 0 bl dp01_build_cmdbuf_x34_a_bb_aka_battle_anim ldrb r0, [r7] bl dp01_battle_side_mark_buffer_for_execution ldr r0, [r6] _08021576: adds r0, 0xA str r0, [r6] _0802157A: pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_80214B4 thumb_func_start sub_8021580 sub_8021580: @ 8021580 push {r4,lr} movs r3, 0 ldr r0, _080215A0 ldr r2, _080215A4 adds r1, r0, r2 ldrb r1, [r1] movs r2, 0xF0 ands r2, r1 adds r4, r0, 0 cmp r2, 0x20 beq _080215B6 cmp r2, 0x20 bgt _080215A8 cmp r2, 0x10 beq _080215B2 b _080215C0 .align 2, 0 _080215A0: .4byte 0x02000000 _080215A4: .4byte 0x0001601e _080215A8: cmp r2, 0x90 beq _080215BA cmp r2, 0xA0 beq _080215BE b _080215C0 _080215B2: movs r3, 0xF b _080215C0 _080215B6: movs r3, 0x27 b _080215C0 _080215BA: movs r3, 0x16 b _080215C0 _080215BE: movs r3, 0x2E _080215C0: ldr r1, _080215EC adds r0, r4, r1 ldrb r1, [r0] movs r0, 0xF ands r0, r1 adds r0, r3, r0 subs r0, 0x1 ldr r2, _080215F0 adds r1, r4, r2 movs r2, 0 strb r0, [r1] ldr r1, _080215F4 adds r0, r4, r1 strb r2, [r0] ldr r1, _080215F8 ldr r0, [r1] adds r0, 0x1 str r0, [r1] pop {r4} pop {r0} bx r0 .align 2, 0 _080215EC: .4byte 0x0001601e _080215F0: .4byte 0x000160a4 _080215F4: .4byte 0x000160a5 _080215F8: .4byte 0x02024c10 thumb_func_end sub_8021580 thumb_func_start atk48_playstatchangeanimation atk48_playstatchangeanimation: @ 80215FC push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x4 movs r7, 0 movs r0, 0 mov r8, r0 movs r3, 0 ldr r5, _08021670 ldr r0, [r5] ldrb r0, [r0, 0x1] str r3, [sp] bl sub_8015150 ldr r2, _08021674 strb r0, [r2] ldr r0, [r5] ldrb r4, [r0, 0x2] ldrb r1, [r0, 0x3] movs r0, 0x1 ands r0, r1 ldr r3, [sp] cmp r0, 0 beq _08021710 movs r0, 0x2 ands r0, r1 movs r1, 0x15 cmp r0, 0 beq _0802163C movs r1, 0x2D _0802163C: cmp r4, 0 beq _080216E4 movs r0, 0x1 mov r10, r0 ldr r0, _08021678 mov r9, r0 lsls r5, r1, 16 _0802164A: adds r0, r4, 0 mov r1, r10 ands r0, r1 cmp r0, 0 beq _080216D6 ldr r0, _08021670 ldr r0, [r0] ldrb r1, [r0, 0x3] movs r0, 0x8 ands r0, r1 cmp r0, 0 beq _0802167C ldr r0, _08021674 ldrb r1, [r0] movs r0, 0x58 muls r0, r1 adds r0, r7, r0 b _080216C4 .align 2, 0 _08021670: .4byte 0x02024c10 _08021674: .4byte 0x02024a60 _08021678: .4byte 0x02024a98 _0802167C: ldr r6, _08021700 ldrb r0, [r6] str r3, [sp] bl battle_get_per_side_status mov r1, r10 ands r1, r0 lsls r0, r1, 1 adds r0, r1 lsls r0, 2 ldr r1, _08021704 adds r0, r1 ldrb r0, [r0, 0x2] ldr r3, [sp] cmp r0, 0 bne _080216D6 ldr r0, _08021708 ldrb r2, [r6] movs r1, 0x58 muls r2, r1 adds r0, r2, r0 adds r0, 0x20 ldrb r0, [r0] cmp r0, 0x1D beq _080216D6 cmp r0, 0x49 beq _080216D6 cmp r0, 0x33 bne _080216BA cmp r7, 0x6 beq _080216D6 _080216BA: cmp r0, 0x34 bne _080216C2 cmp r7, 0x1 beq _080216D6 _080216C2: adds r0, r7, r2 _080216C4: add r0, r9 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 cmp r0, 0 ble _080216D6 lsrs r0, r5, 16 mov r8, r0 adds r3, 0x1 _080216D6: lsrs r4, 1 movs r1, 0x80 lsls r1, 9 adds r5, r1 adds r7, 0x1 cmp r4, 0 bne _0802164A _080216E4: ldr r0, _0802170C mov r9, r0 cmp r3, 0x1 ble _08021772 ldr r0, [r0] ldrb r1, [r0, 0x3] movs r0, 0x2 ands r0, r1 movs r1, 0x39 mov r8, r1 cmp r0, 0 beq _08021772 movs r0, 0x3A b _08021770 .align 2, 0 _08021700: .4byte 0x02024a60 _08021704: .4byte 0x02024c80 _08021708: .4byte 0x02024a80 _0802170C: .4byte 0x02024c10 _08021710: movs r0, 0x2 ands r0, r1 movs r1, 0xE cmp r0, 0 beq _0802171C movs r1, 0x26 _0802171C: mov r9, r5 cmp r4, 0 beq _08021758 ldr r6, _0802178C adds r5, r2, 0 lsls r2, r1, 16 _08021728: movs r0, 0x1 ands r0, r4 cmp r0, 0 beq _0802174A ldrb r1, [r5] movs r0, 0x58 muls r0, r1 adds r0, r7, r0 adds r0, r6 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 cmp r0, 0xB bgt _0802174A lsrs r1, r2, 16 mov r8, r1 adds r3, 0x1 _0802174A: lsrs r4, 1 movs r0, 0x80 lsls r0, 9 adds r2, r0 adds r7, 0x1 cmp r4, 0 bne _08021728 _08021758: cmp r3, 0x1 ble _08021772 mov r1, r9 ldr r0, [r1] ldrb r1, [r0, 0x3] movs r0, 0x2 ands r0, r1 movs r1, 0x37 mov r8, r1 cmp r0, 0 beq _08021772 movs r0, 0x38 _08021770: mov r8, r0 _08021772: mov r1, r9 ldr r2, [r1] ldrb r1, [r2, 0x3] movs r0, 0x4 ands r0, r1 cmp r0, 0 beq _08021790 cmp r3, 0x1 bgt _08021790 adds r0, r2, 0x4 mov r1, r9 b _080217E6 .align 2, 0 _0802178C: .4byte 0x02024a98 _08021790: cmp r3, 0 beq _080217E0 ldr r0, _080217D0 ldr r1, _080217D4 adds r4, r0, r1 ldrb r0, [r4] cmp r0, 0 bne _080217E0 movs r0, 0 movs r1, 0x1 mov r2, r8 str r3, [sp] bl dp01_build_cmdbuf_x34_a_bb_aka_battle_anim ldr r0, _080217D8 ldrb r0, [r0] bl dp01_battle_side_mark_buffer_for_execution ldr r0, _080217DC ldr r0, [r0] ldrb r1, [r0, 0x3] movs r0, 0x4 ands r0, r1 ldr r3, [sp] cmp r0, 0 beq _080217CC cmp r3, 0x1 ble _080217CC movs r0, 0x1 strb r0, [r4] _080217CC: ldr r1, _080217DC b _080217E2 .align 2, 0 _080217D0: .4byte 0x02000000 _080217D4: .4byte 0x000160dc _080217D8: .4byte 0x02024a60 _080217DC: .4byte 0x02024c10 _080217E0: mov r1, r9 _080217E2: ldr r0, [r1] adds r0, 0x4 _080217E6: str r0, [r1] 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 atk48_playstatchangeanimation thumb_func_start sub_80217F8 sub_80217F8: @ 80217F8 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x18 movs r0, 0 mov r10, r0 ldr r0, _08021834 ldr r0, [r0] ldrb r1, [r0, 0x1] str r1, [sp, 0x10] ldrb r0, [r0, 0x2] str r0, [sp, 0x14] ldr r1, _08021838 ldr r0, _0802183C ldrb r2, [r0] movs r0, 0x58 muls r0, r2 adds r1, r0, r1 ldrh r0, [r1, 0x2E] cmp r0, 0xAF bne _08021844 ldr r1, _08021840 lsls r0, r2, 3 subs r0, r2 lsls r0, 2 adds r0, r1 ldrb r0, [r0, 0x7] b _0802184E .align 2, 0 _08021834: .4byte 0x02024c10 _08021838: .4byte 0x02024a80 _0802183C: .4byte 0x02024c07 _08021840: .4byte 0x02024df0 _08021844: ldrh r0, [r1, 0x2E] bl itemid_get_x12 lsls r0, 24 lsrs r0, 24 _0802184E: str r0, [sp, 0x8] ldr r0, _0802186C ldrb r1, [r0] lsls r1, 1 ldr r0, _08021870 adds r1, r0 str r1, [sp, 0xC] subs r0, 0xCC ldrb r0, [r0] cmp r0, 0 beq _080218C0 movs r2, 0x3F ands r2, r0 str r2, [sp, 0x4] b _080218D2 .align 2, 0 _0802186C: .4byte 0x02024c07 _08021870: .4byte 0x020160e8 _08021874: strb r2, [r7] ldr r0, [r5] orrs r0, r6 str r0, [r5] ldr r0, _080218AC ldr r3, _080218B0 adds r0, r3 strb r4, [r0] bl sub_8020B54 ldr r2, _080218B4 mov r4, r8 ldrh r1, [r4] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 add r0, r9 ldrb r0, [r0] lsls r0, 2 adds r0, r2 ldr r0, [r0] bl b_movescr_stack_push ldr r1, _080218B8 ldr r0, _080218BC bl _0802229C .align 2, 0 _080218AC: .4byte 0x02000000 _080218B0: .4byte 0x0001600c _080218B4: .4byte gUnknown_081D6BBC _080218B8: .4byte 0x02024c10 _080218BC: .4byte gUnknown_081D9B2D _080218C0: ldr r2, _080218D8 ldr r0, _080218DC ldrh r1, [r0] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r0, [r0, 0x2] str r0, [sp, 0x4] _080218D2: ldr r5, _080218E0 mov r12, r5 b _080218EE .align 2, 0 _080218D8: .4byte gBattleMoves _080218DC: .4byte 0x02024be6 _080218E0: .4byte 0x02000000 _080218E4: mov r0, r10 cmp r0, 0 beq _080218EE bl _08022286 _080218EE: ldr r0, _08021908 add r0, r12 ldrb r0, [r0] cmp r0, 0x11 bls _080218FC bl _0802224E _080218FC: lsls r0, 2 ldr r1, _0802190C adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08021908: .4byte 0x0001600c _0802190C: .4byte _08021910 .align 2, 0 _08021910: .4byte _08021958 .4byte _08021A34 .4byte _08021AF0 .4byte _08021B20 .4byte _08021B44 .4byte _08021B78 .4byte _08021B9C .4byte _08021C40 .4byte _08021C78 .4byte _08021CA8 .4byte _08021CCC .4byte _08021D18 .4byte _08021DAC .4byte _08021E30 .4byte _08021E70 .4byte _08022068 .4byte _080221C0 .4byte _0802224E _08021958: ldr r5, _08021A08 ldr r2, _08021A0C ldrb r4, [r2] movs r6, 0x58 adds r3, r4, 0 muls r3, r6 adds r0, r5, 0 adds r0, 0x50 adds r0, r3, r0 ldr r1, [r0] movs r0, 0x80 lsls r0, 16 ands r1, r0 cmp r1, 0 beq _080219FE adds r0, r3, r5 ldrh r0, [r0, 0x28] cmp r0, 0 beq _080219FE ldr r0, _08021A10 ldrb r1, [r0] cmp r1, r4 beq _080219FE adds r0, r1, 0 bl battle_side_get_owner adds r4, r0, 0 ldr r1, _08021A0C ldrb r0, [r1] bl battle_side_get_owner lsls r4, 24 lsls r0, 24 cmp r4, r0 beq _080219FE ldr r0, _08021A14 ldrb r1, [r0] movs r0, 0x29 ands r0, r1 cmp r0, 0 bne _080219FE ldr r2, _08021A18 ldr r4, _08021A0C ldrb r3, [r4] lsls r1, r3, 4 adds r0, r2, 0x4 adds r0, r1, r0 ldr r0, [r0] cmp r0, 0 bne _080219C8 adds r0, r2, 0 adds r0, 0x8 adds r0, r1, r0 ldr r0, [r0] cmp r0, 0 beq _080219FE _080219C8: ldr r2, _08021A1C ldr r0, _08021A20 ldrh r1, [r0] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r0, [r0, 0x1] cmp r0, 0 beq _080219FE adds r0, r3, 0 muls r0, r6 adds r1, r0, r5 ldrb r2, [r1, 0x19] movs r0, 0x19 ldrsb r0, [r1, r0] cmp r0, 0xB bgt _080219FE adds r0, r2, 0x1 strb r0, [r1, 0x19] bl b_movescr_stack_push_cursor ldr r1, _08021A24 ldr r0, _08021A28 str r0, [r1] movs r5, 0x1 mov r10, r5 _080219FE: ldr r2, _08021A2C ldr r0, _08021A30 adds r1, r2, r0 b _08021E00 .align 2, 0 _08021A08: .4byte 0x02024a80 _08021A0C: .4byte 0x02024c08 _08021A10: .4byte 0x02024c07 _08021A14: .4byte 0x02024c68 _08021A18: .4byte 0x02024d28 _08021A1C: .4byte gBattleMoves _08021A20: .4byte 0x02024be6 _08021A24: .4byte 0x02024c10 _08021A28: .4byte gUnknown_081D9132 _08021A2C: .4byte 0x02000000 _08021A30: .4byte 0x0001600c _08021A34: ldr r2, _08021AD0 ldr r1, _08021AD4 ldrb r4, [r1] movs r3, 0x58 mov r12, r3 mov r3, r12 muls r3, r4 adds r7, r2, 0 adds r7, 0x4C adds r6, r3, r7 ldr r5, [r6] movs r0, 0x20 ands r0, r5 cmp r0, 0 bne _08021A54 b _08021DFA _08021A54: adds r0, r3, r2 ldrh r0, [r0, 0x28] cmp r0, 0 bne _08021A5E b _08021DFA _08021A5E: ldr r0, _08021AD8 ldrb r0, [r0] cmp r0, r4 bne _08021A68 b _08021DFA _08021A68: ldr r0, _08021ADC lsls r1, r4, 2 adds r1, r4 lsls r1, 2 adds r0, 0xC adds r1, r0 ldr r0, [r1] cmp r0, 0 bne _08021A7C b _08021DFA _08021A7C: ldr r0, _08021AE0 ldrb r1, [r0] movs r0, 0x29 ands r0, r1 cmp r0, 0 beq _08021A8A b _08021DFA _08021A8A: ldr r4, [sp, 0x4] cmp r4, 0xA beq _08021A92 b _08021DFA _08021A92: movs r0, 0x21 negs r0, r0 ands r5, r0 str r5, [r6] ldr r4, _08021AE4 ldr r5, _08021AD4 ldrb r0, [r5] strb r0, [r4] ldrb r0, [r5] mov r1, r12 muls r1, r0 adds r0, r1, 0 adds r0, r7 str r0, [sp] movs r0, 0 movs r1, 0x28 movs r2, 0 movs r3, 0x4 bl dp01_build_cmdbuf_x02_a_b_varargs ldrb r0, [r4] bl dp01_battle_side_mark_buffer_for_execution bl b_movescr_stack_push_cursor ldr r1, _08021AE8 ldr r0, _08021AEC str r0, [r1] movs r2, 0x1 mov r10, r2 b _08021DFA .align 2, 0 _08021AD0: .4byte 0x02024a80 _08021AD4: .4byte 0x02024c08 _08021AD8: .4byte 0x02024c07 _08021ADC: .4byte 0x02024d68 _08021AE0: .4byte 0x02024c68 _08021AE4: .4byte 0x02024a60 _08021AE8: .4byte 0x02024c10 _08021AEC: .4byte gUnknown_081D955D _08021AF0: ldr r0, _08021B14 ldrb r1, [r0] movs r0, 0 str r0, [sp] movs r0, 0x7 movs r2, 0 movs r3, 0 bl sub_8018324 lsls r0, 24 cmp r0, 0 beq _08021B0C movs r4, 0x1 mov r10, r4 _08021B0C: ldr r2, _08021B18 ldr r5, _08021B1C adds r1, r2, r5 b _08021E00 .align 2, 0 _08021B14: .4byte 0x02024c08 _08021B18: .4byte 0x02000000 _08021B1C: .4byte 0x0001600c _08021B20: ldr r0, _08021B40 ldrb r1, [r0] movs r0, 0 str r0, [sp] movs r0, 0x4 movs r2, 0 movs r3, 0 bl sub_8018324 lsls r0, 24 cmp r0, 0 bne _08021B3A b _08021DFA _08021B3A: movs r0, 0x1 mov r10, r0 b _08021DFA .align 2, 0 _08021B40: .4byte 0x02024c08 _08021B44: movs r0, 0 str r0, [sp] movs r0, 0x5 movs r1, 0 movs r2, 0 movs r3, 0 bl sub_8018324 lsls r0, 24 cmp r0, 0 beq _08021B68 movs r4, 0x1 mov r10, r4 ldr r5, _08021B64 mov r12, r5 b _0802224E .align 2, 0 _08021B64: .4byte 0x02000000 _08021B68: ldr r2, _08021B70 ldr r0, _08021B74 adds r1, r2, r0 b _08021E00 .align 2, 0 _08021B70: .4byte 0x02000000 _08021B74: .4byte 0x0001600c _08021B78: ldr r0, _08021B98 ldrb r1, [r0] movs r0, 0 str r0, [sp] movs r0, 0x8 movs r2, 0 movs r3, 0 bl sub_8018324 lsls r0, 24 cmp r0, 0 bne _08021B92 b _08021DFA _08021B92: movs r1, 0x1 mov r10, r1 b _08021DFA .align 2, 0 _08021B98: .4byte 0x02024c07 _08021B9C: ldr r0, _08021C28 ldr r0, [r0] movs r1, 0x80 lsls r1, 18 ands r0, r1 cmp r0, 0 beq _08021BE0 ldr r4, [sp, 0x8] cmp r4, 0x1D bne _08021BE0 ldr r0, _08021C2C ldrh r2, [r0] adds r7, r0, 0 cmp r2, 0xA5 beq _08021BE0 ldr r5, [sp, 0xC] ldrh r1, [r5] cmp r1, 0 beq _08021BC8 ldr r0, _08021C30 cmp r1, r0 bne _08021BE0 _08021BC8: cmp r2, 0xE2 bne _08021BDA ldr r0, _08021C34 ldrb r1, [r0] movs r0, 0x20 ands r0, r1 cmp r0, 0 bne _08021BDA b _08022244 _08021BDA: ldrh r0, [r7] ldr r1, [sp, 0xC] strh r0, [r1] _08021BE0: movs r4, 0 ldr r2, _08021C38 ldr r3, _08021C3C ldrb r1, [r3] movs r0, 0x58 muls r0, r1 adds r2, 0xC adds r0, r2 ldrh r0, [r0] ldr r5, [sp, 0xC] ldrh r1, [r5] mov r9, r3 cmp r0, r1 beq _08021C18 mov r6, r9 movs r3, 0x58 adds r5, r1, 0 _08021C02: adds r4, 0x1 cmp r4, 0x3 bgt _08021C18 lsls r0, r4, 1 ldrb r1, [r6] muls r1, r3 adds r0, r1 adds r0, r2 ldrh r0, [r0] cmp r0, r5 bne _08021C02 _08021C18: cmp r4, 0x4 beq _08021C1E b _08022244 _08021C1E: movs r0, 0 ldr r1, [sp, 0xC] _08021C22: strh r0, [r1] b _08022244 .align 2, 0 _08021C28: .4byte 0x02024c6c _08021C2C: .4byte 0x02024be8 _08021C30: .4byte 0x0000ffff _08021C34: .4byte 0x02024c68 _08021C38: .4byte 0x02024a80 _08021C3C: .4byte 0x02024c07 _08021C40: movs r4, 0 ldr r0, _08021C6C ldrb r2, [r0] cmp r4, r2 blt _08021C4C b _08022244 _08021C4C: movs r5, 0 ldr r2, _08021C70 ldr r3, _08021C74 _08021C52: ldrh r1, [r2] cmp r1, 0 beq _08021C5C strh r1, [r3, 0x2E] strh r5, [r2] _08021C5C: adds r2, 0x2 adds r3, 0x58 adds r4, 0x1 ldrb r1, [r0] cmp r4, r1 blt _08021C52 b _08022244 .align 2, 0 _08021C6C: .4byte 0x02024a68 _08021C70: .4byte 0x020160f0 _08021C74: .4byte 0x02024a80 _08021C78: movs r0, 0x3 movs r1, 0 movs r2, 0 bl sub_801A02C lsls r0, 24 cmp r0, 0 beq _08021C98 movs r2, 0x1 mov r10, r2 ldr r3, _08021C94 mov r12, r3 b _0802224E .align 2, 0 _08021C94: .4byte 0x02000000 _08021C98: ldr r2, _08021CA0 ldr r4, _08021CA4 adds r1, r2, r4 b _08021E00 .align 2, 0 _08021CA0: .4byte 0x02000000 _08021CA4: .4byte 0x0001600c _08021CA8: movs r0, 0x4 movs r1, 0 movs r2, 0 bl sub_801A02C lsls r0, 24 cmp r0, 0 beq _08021CBC movs r5, 0x1 mov r10, r5 _08021CBC: ldr r2, _08021CC4 ldr r0, _08021CC8 adds r1, r2, r0 b _08021E00 .align 2, 0 _08021CC4: .4byte 0x02000000 _08021CC8: .4byte 0x0001600c _08021CCC: ldr r1, _08021D04 ldr r0, _08021D08 ldrb r2, [r0] lsls r0, r2, 2 adds r0, r1 ldr r0, [r0] ldr r1, _08021D0C ands r0, r1 cmp r0, 0 bne _08021CE2 b _08021DFA _08021CE2: ldr r0, _08021D10 ldr r0, [r0] movs r1, 0x80 ands r0, r1 cmp r0, 0 bne _08021CF0 b _08021DFA _08021CF0: ldr r4, _08021D14 strb r2, [r4] movs r0, 0 movs r1, 0x1 bl dp01_build_cmdbuf_x33_a_33_33 ldrb r0, [r4] bl dp01_battle_side_mark_buffer_for_execution b _08021DFA .align 2, 0 _08021D04: .4byte 0x02024c98 _08021D08: .4byte 0x02024c07 _08021D0C: .4byte 0x000400c0 _08021D10: .4byte 0x02024c6c _08021D14: .4byte 0x02024a60 _08021D18: ldr r0, _08021D88 ldrb r1, [r0] movs r0, 0x29 ands r0, r1 cmp r0, 0 bne _08021D44 ldr r1, _08021D8C ldr r0, _08021D90 ldrb r2, [r0] lsls r0, r2, 2 adds r0, r1 ldr r0, [r0] ldr r1, _08021D94 ands r0, r1 cmp r0, 0 beq _08021D44 adds r0, r2, 0 bl sub_8015660 lsls r0, 24 cmp r0, 0 beq _08021D7E _08021D44: ldr r4, _08021D98 ldr r5, _08021D90 ldrb r0, [r5] strb r0, [r4] movs r0, 0 movs r1, 0 bl dp01_build_cmdbuf_x33_a_33_33 ldrb r0, [r4] bl dp01_battle_side_mark_buffer_for_execution ldr r0, _08021D8C ldrb r2, [r5] lsls r2, 2 adds r2, r0 ldr r0, [r2] ldr r1, _08021D9C ands r0, r1 str r0, [r2] ldr r2, _08021DA0 ldrb r1, [r5] lsls r0, r1, 2 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r1, [r0] movs r2, 0x4 orrs r1, r2 strb r1, [r0] _08021D7E: ldr r2, _08021DA4 ldr r4, _08021DA8 adds r1, r2, r4 b _08021E00 .align 2, 0 _08021D88: .4byte 0x02024c68 _08021D8C: .4byte 0x02024c98 _08021D90: .4byte 0x02024c07 _08021D94: .4byte 0x000400c0 _08021D98: .4byte 0x02024a60 _08021D9C: .4byte 0xfffbff3f _08021DA0: .4byte 0x02024d68 _08021DA4: .4byte 0x02000000 _08021DA8: .4byte 0x0001600c _08021DAC: ldr r2, _08021E0C ldr r1, _08021E10 ldrb r3, [r1] lsls r4, r3, 2 adds r0, r4, r3 lsls r0, 2 adds r0, r2 ldrb r0, [r0] lsls r0, 29 cmp r0, 0 blt _08021DFA ldr r0, _08021E14 ldrb r0, [r0] cmp r3, r0 bcs _08021DFA ldr r5, _08021E18 adds r0, r4, r5 ldr r0, [r0] ldr r1, _08021E1C ands r0, r1 cmp r0, 0 bne _08021DFA ldr r4, _08021E20 strb r3, [r4] movs r0, 0 movs r1, 0 bl dp01_build_cmdbuf_x33_a_33_33 ldrb r0, [r4] bl dp01_battle_side_mark_buffer_for_execution ldr r0, _08021E10 ldrb r2, [r0] lsls r2, 2 adds r2, r5 ldr r0, [r2] ldr r1, _08021E24 ands r0, r1 str r0, [r2] _08021DFA: ldr r2, _08021E28 ldr r3, _08021E2C adds r1, r2, r3 _08021E00: ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] mov r12, r2 b _0802224E .align 2, 0 _08021E0C: .4byte 0x02024d68 _08021E10: .4byte 0x02024c08 _08021E14: .4byte 0x02024a68 _08021E18: .4byte 0x02024c98 _08021E1C: .4byte 0x000400c0 _08021E20: .4byte 0x02024a60 _08021E24: .4byte 0xfffbff3f _08021E28: .4byte 0x02000000 _08021E2C: .4byte 0x0001600c _08021E30: movs r4, 0 ldr r0, _08021E60 ldrb r5, [r0] cmp r4, r5 blt _08021E3C b _08022244 _08021E3C: ldr r2, _08021E64 ldr r5, _08021E68 adds r3, r0, 0 ldr r1, _08021E6C _08021E44: ldrb r0, [r2, 0xA] cmp r0, 0 bne _08021E50 ldr r0, [r1] ands r0, r5 str r0, [r1] _08021E50: adds r2, 0x1C adds r1, 0x58 adds r4, 0x1 ldrb r0, [r3] cmp r4, r0 blt _08021E44 b _08022244 .align 2, 0 _08021E60: .4byte 0x02024a68 _08021E64: .4byte 0x02024ca8 _08021E68: .4byte 0xfeffffff _08021E6C: .4byte 0x02024ad0 _08021E70: ldr r1, _08021F2C ldr r3, [r1] movs r0, 0x80 lsls r0, 5 ands r0, r3 ldr r2, _08021F30 mov r9, r2 adds r5, r1, 0 cmp r0, 0 beq _08021E9A ldr r0, _08021F34 ldrb r2, [r2] strb r2, [r0] ldr r1, _08021F38 ldrb r0, [r1] mov r4, r9 strb r0, [r4] strb r2, [r1] ldr r0, _08021F3C ands r3, r0 str r3, [r5] _08021E9A: ldr r1, _08021F40 ldr r2, _08021F44 ldrh r3, [r2] lsls r0, r3, 1 adds r0, r3 lsls r0, 2 adds r0, r1 ldrb r0, [r0] mov r8, r1 adds r7, r2, 0 cmp r0, 0x7F bne _08021EBE ldr r0, _08021F48 ldrb r1, [r0] movs r0, 0x29 ands r0, r1 cmp r0, 0 beq _08021ECA _08021EBE: ldr r1, _08021F4C mov r2, r9 ldrb r0, [r2] lsls r0, 1 adds r0, r1 strh r3, [r0] _08021ECA: ldr r0, _08021F50 ldrb r1, [r0] ldr r2, _08021F54 mov r3, r9 ldrb r4, [r3] lsls r0, r4, 2 adds r0, r2 ldr r3, [r0] ands r1, r3 adds r6, r2, 0 cmp r1, 0 beq _08021EE4 b _08022244 _08021EE4: ldr r0, _08021F58 add r0, r12 ldrb r0, [r0] ands r0, r3 cmp r0, 0 beq _08021EF2 b _08022244 _08021EF2: ldrh r2, [r7] lsls r0, r2, 1 adds r0, r2 lsls r0, 2 add r0, r8 ldrb r0, [r0] cmp r0, 0x7F bne _08021F04 b _08022244 _08021F04: ldr r0, [r5] movs r1, 0x80 lsls r1, 18 ands r0, r1 cmp r0, 0 beq _08021F68 ldr r1, _08021F5C lsls r0, r4, 1 adds r0, r1 strh r2, [r0] ldr r0, _08021F60 mov r4, r9 ldrb r1, [r4] lsls r1, 1 adds r1, r0 ldr r0, _08021F64 ldrh r0, [r0] strh r0, [r1] b _08021F82 .align 2, 0 _08021F2C: .4byte 0x02024c6c _08021F30: .4byte 0x02024c07 _08021F34: .4byte 0x02024a60 _08021F38: .4byte 0x02024c08 _08021F3C: .4byte 0xffffefff _08021F40: .4byte gBattleMoves _08021F44: .4byte 0x02024be8 _08021F48: .4byte 0x02024c68 _08021F4C: .4byte 0x02024c2c _08021F50: .4byte 0x02024c0c _08021F54: .4byte gUnknown_0820872C _08021F58: .4byte 0x000160a6 _08021F5C: .4byte 0x02024c34 _08021F60: .4byte 0x02024c4c _08021F64: .4byte 0x02024be6 _08021F68: ldr r1, _08021FD0 lsls r0, r4, 1 adds r0, r1 ldr r1, _08021FD4 strh r1, [r0] ldr r1, _08021FD8 mov r2, r9 ldrb r0, [r2] lsls r0, 1 adds r0, r1 movs r1, 0x1 negs r1, r1 strh r1, [r0] _08021F82: ldr r2, _08021FDC ldrb r3, [r2] lsls r0, r3, 2 adds r0, r6 ldr r0, [r0] lsls r0, 28 ldr r1, [r5] ands r1, r0 cmp r1, 0 bne _08021FA0 ldr r0, _08021FE0 adds r0, r3, r0 mov r3, r9 ldrb r1, [r3] strb r1, [r0] _08021FA0: ldr r0, [r5] movs r1, 0x80 lsls r1, 18 ands r0, r1 cmp r0, 0 beq _0802204C ldr r0, _08021FE4 ldrb r1, [r0] movs r0, 0x29 ands r0, r1 cmp r0, 0 bne _0802204C ldrh r2, [r7] ldr r0, _08021FD4 cmp r2, r0 bne _08021FEC ldr r1, _08021FE8 ldr r4, _08021FDC ldrb r0, [r4] lsls r0, 1 adds r0, r1 strh r2, [r0] b _08022244 .align 2, 0 _08021FD0: .4byte 0x02024c34 _08021FD4: .4byte 0x0000ffff _08021FD8: .4byte 0x02024c4c _08021FDC: .4byte 0x02024c08 _08021FE0: .4byte 0x02024c5c _08021FE4: .4byte 0x02024c68 _08021FE8: .4byte 0x02024c3c _08021FEC: ldr r0, _08022014 ldr r5, _08022018 ldrb r1, [r5] lsls r1, 1 adds r1, r0 ldr r4, _0802201C ldrh r0, [r4] strh r0, [r1] ldr r0, _08022020 add r0, r12 ldrb r3, [r0] cmp r3, 0 beq _08022028 ldr r0, _08022024 ldrb r1, [r5] lsls r1, 1 adds r1, r0 movs r0, 0x3F ands r0, r3 b _08021C22 .align 2, 0 _08022014: .4byte 0x02024c3c _08022018: .4byte 0x02024c08 _0802201C: .4byte 0x02024be6 _08022020: .4byte 0x0001601c _08022024: .4byte 0x02024c44 _08022028: ldr r0, _08022044 ldr r1, _08022048 ldrb r2, [r1] lsls r2, 1 adds r2, r0 ldrh r1, [r4] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 add r0, r8 ldrb r0, [r0, 0x2] strh r0, [r2] b _08022244 .align 2, 0 _08022044: .4byte 0x02024c44 _08022048: .4byte 0x02024c08 _0802204C: ldr r0, _0802205C ldr r2, _08022060 ldrb r1, [r2] lsls r1, 1 adds r1, r0 ldr r0, _08022064 b _08021C22 .align 2, 0 _0802205C: .4byte 0x02024c3c _08022060: .4byte 0x02024c08 _08022064: .4byte 0x0000ffff _08022068: ldr r0, _0802212C ldrb r1, [r0] ldr r6, _08022130 ldr r2, _08022134 ldrb r5, [r2] lsls r0, r5, 2 adds r0, r6 ldr r4, [r0] ands r1, r4 mov r9, r2 cmp r1, 0 beq _08022082 b _08022244 _08022082: ldr r0, _08022138 add r0, r12 ldrb r0, [r0] ands r0, r4 cmp r0, 0 beq _08022090 b _08022244 _08022090: ldr r1, _0802213C ldr r4, _08022140 ldrh r3, [r4] lsls r0, r3, 1 adds r0, r3 lsls r0, 2 adds r0, r1 ldrb r1, [r0, 0x8] movs r0, 0x10 ands r0, r1 cmp r0, 0 beq _0802215C ldr r0, _08022144 ldr r1, [r0] movs r0, 0x80 lsls r0, 18 ands r0, r1 cmp r0, 0 beq _0802215C ldr r2, _08022148 ldrb r0, [r2] cmp r5, r0 bne _080220C0 b _08022244 _080220C0: adds r2, r0, 0 lsls r0, r2, 2 adds r0, r6 ldr r0, [r0] lsls r0, 28 ands r1, r0 cmp r1, 0 bne _0802215C ldr r0, _0802214C ldrb r1, [r0] movs r0, 0x29 ands r0, r1 cmp r0, 0 bne _0802215C lsls r0, r2, 1 ldr r5, _08022150 adds r0, r5 add r0, r12 strb r3, [r0] ldr r0, _08022148 ldrb r1, [r0] lsls r1, 1 ldr r2, _08022154 adds r1, r2 add r1, r12 ldrh r0, [r4] lsrs r0, 8 strb r0, [r1] ldr r3, _08022148 ldrb r2, [r3] lsls r2, 2 mov r5, r9 ldrb r0, [r5] lsrs r0, 1 lsls r0, 1 ldr r1, _08022158 adds r0, r1 adds r2, r0 add r2, r12 ldrh r0, [r4] strb r0, [r2] ldrb r2, [r3] lsls r2, 2 ldrb r0, [r5] lsrs r0, 1 lsls r0, 1 adds r1, 0x1 adds r0, r1 adds r2, r0 add r2, r12 ldrh r0, [r4] lsrs r0, 8 strb r0, [r2] b _08022244 .align 2, 0 _0802212C: .4byte 0x02024c0c _08022130: .4byte gUnknown_0820872C _08022134: .4byte 0x02024c07 _08022138: .4byte 0x000160a6 _0802213C: .4byte gBattleMoves _08022140: .4byte 0x02024be8 _08022144: .4byte 0x02024c6c _08022148: .4byte 0x02024c08 _0802214C: .4byte 0x02024c68 _08022150: .4byte 0x000160ac _08022154: .4byte 0x000160ad _08022158: .4byte 0x00016100 _0802215C: mov r1, r9 ldrb r0, [r1] ldr r2, _080221B4 ldrb r2, [r2] cmp r0, r2 beq _08022244 ldr r3, _080221B4 ldrb r0, [r3] lsls r0, 1 ldr r4, _080221B8 adds r0, r4 add r0, r12 movs r3, 0 strb r3, [r0] ldr r5, _080221B4 ldrb r0, [r5] lsls r0, 1 ldr r1, _080221BC adds r0, r1 add r0, r12 strb r3, [r0] ldrb r2, [r5] lsls r2, 2 mov r4, r9 ldrb r0, [r4] lsrs r0, 1 lsls r0, 1 adds r1, 0x53 adds r0, r1 adds r2, r0 add r2, r12 strb r3, [r2] ldrb r2, [r5] lsls r2, 2 ldrb r0, [r4] lsrs r0, 1 lsls r0, 1 adds r1, 0x1 adds r0, r1 adds r2, r0 add r2, r12 strb r3, [r2] b _08022244 .align 2, 0 _080221B4: .4byte 0x02024c08 _080221B8: .4byte 0x000160ac _080221BC: .4byte 0x000160ad _080221C0: ldr r5, _080222B0 ldr r2, [r5] movs r0, 0x80 lsls r0, 12 ands r0, r2 cmp r0, 0 bne _08022244 ldr r0, _080222B4 ldrh r1, [r0] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _08022244 ldr r1, _080222B8 ldr r0, _080222BC ldrb r0, [r0] lsls r0, 4 adds r0, r1 ldrb r0, [r0, 0x1] lsls r0, 29 cmp r0, 0 blt _08022244 ldr r0, _080222C0 mov r9, r0 ldr r1, _080222C4 mov r8, r1 ldrh r0, [r1] lsls r1, r0, 1 adds r1, r0 lsls r1, 2 add r1, r9 ldrb r0, [r1, 0x6] cmp r0, 0x8 bne _08022244 movs r6, 0x80 lsls r6, 2 adds r4, r6, 0 ands r4, r2 cmp r4, 0 bne _08022244 ldr r7, _080222C8 ldrb r0, [r7] bl battle_get_per_side_status movs r1, 0x2 eors r0, r1 lsls r0, 24 lsrs r0, 24 bl battle_get_side_with_given_state lsls r0, 24 lsrs r2, r0, 24 ldr r1, _080222CC movs r0, 0x58 muls r0, r2 adds r0, r1 ldrh r0, [r0, 0x28] cmp r0, 0 beq _0802223A bl _08021874 _0802223A: ldr r0, [r5] orrs r0, r6 str r0, [r5] ldr r2, _080222D0 mov r12, r2 _08022244: ldr r1, _080222D4 add r1, r12 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] _0802224E: ldr r3, [sp, 0x10] cmp r3, 0x1 bne _08022262 mov r4, r10 cmp r4, 0 bne _08022262 ldr r1, _080222D4 add r1, r12 movs r0, 0x11 strb r0, [r1] _08022262: ldr r5, [sp, 0x10] cmp r5, 0x2 bne _08022278 ldr r1, _080222D4 add r1, r12 ldr r0, [sp, 0x14] ldrb r2, [r1] cmp r0, r2 bne _08022278 movs r0, 0x11 strb r0, [r1] _08022278: ldr r0, _080222D4 add r0, r12 ldrb r0, [r0] cmp r0, 0x11 beq _08022286 bl _080218E4 _08022286: ldr r0, _080222D4 add r0, r12 ldrb r0, [r0] cmp r0, 0x11 bne _0802229E mov r3, r10 cmp r3, 0 bne _0802229E ldr r1, _080222D8 ldr r0, [r1] adds r0, 0x3 _0802229C: str r0, [r1] _0802229E: add sp, 0x18 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080222B0: .4byte 0x02024c6c _080222B4: .4byte 0x020239f8 _080222B8: .4byte 0x02024d28 _080222BC: .4byte 0x02024c07 _080222C0: .4byte gBattleMoves _080222C4: .4byte 0x02024be6 _080222C8: .4byte 0x02024c08 _080222CC: .4byte 0x02024a80 _080222D0: .4byte 0x02000000 _080222D4: .4byte 0x0001600c _080222D8: .4byte 0x02024c10 thumb_func_end sub_80217F8 thumb_func_start atk4A_damagecalc2 atk4A_damagecalc2: @ 80222DC push {r4-r7,lr} mov r7, r8 push {r7} movs r4, 0 movs r5, 0 ldr r2, _08022340 ldr r0, _08022344 ldrh r1, [r0] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r0, [r0, 0x2] mov r8, r0 ldr r2, _08022348 ldr r3, _0802234C ldrb r1, [r3] movs r0, 0x58 muls r0, r1 adds r0, r2 adds r0, 0x20 ldrb r0, [r0] mov r12, r2 adds r7, r3, 0 cmp r0, 0x1A bne _08022370 mov r1, r8 cmp r1, 0x4 bne _08022370 ldr r3, _08022350 strb r0, [r3] ldr r2, _08022354 ldrb r0, [r2] movs r1, 0x9 orrs r0, r1 strb r0, [r2] ldr r1, _08022358 ldrb r0, [r7] lsls r0, 1 adds r0, r1 strh r4, [r0] ldr r0, _0802235C mov r2, r8 strb r2, [r0, 0x6] ldrb r0, [r7] ldrb r1, [r3] bl sub_81074C4 b _08022452 .align 2, 0 _08022340: .4byte gBattleMoves _08022344: .4byte 0x02024be6 _08022348: .4byte 0x02024a80 _0802234C: .4byte 0x02024c08 _08022350: .4byte 0x02024c06 _08022354: .4byte 0x02024c68 _08022358: .4byte 0x02024c3c _0802235C: .4byte 0x02024d1e _08022360: ldr r0, _0802236C ldrb r1, [r0] movs r2, 0x8 orrs r1, r2 strb r1, [r0] b _08022452 .align 2, 0 _0802236C: .4byte 0x02024c68 _08022370: ldr r1, _0802237C adds r0, r5, r1 ldrb r0, [r0] adds r6, r1, 0 b _08022432 .align 2, 0 _0802237C: .4byte gTypeEffectiveness _08022380: adds r0, r5, r6 ldrb r0, [r0] cmp r0, r8 bne _0802242C adds r2, r5, 0x1 adds r3, r2, r6 ldrb r1, [r7] movs r0, 0x58 muls r0, r1 add r0, r12 adds r0, 0x21 ldrb r1, [r3] adds r3, r2, 0 ldrb r0, [r0] cmp r1, r0 bne _080223BE adds r0, r5, 0x2 adds r0, r6 ldrb r1, [r0] cmp r1, 0 beq _08022360 cmp r1, 0x5 bne _080223B2 movs r0, 0x4 orrs r4, r0 _080223B2: cmp r1, 0x14 bne _080223BE movs r0, 0x2 orrs r4, r0 lsls r0, r4, 24 lsrs r4, r0, 24 _080223BE: adds r2, r3, r6 ldrb r1, [r7] movs r0, 0x58 muls r0, r1 add r0, r12 adds r1, r0, 0 adds r1, 0x22 ldrb r2, [r2] ldrb r1, [r1] cmp r2, r1 bne _0802242C adds r0, 0x21 ldrb r1, [r0] cmp r1, r2 beq _080223E6 adds r0, r5, 0x2 adds r0, r6 ldrb r0, [r0] cmp r0, 0 beq _08022360 _080223E6: cmp r1, r2 beq _080223FC adds r0, r5, 0x2 adds r0, r6 ldrb r0, [r0] cmp r0, 0x5 bne _080223FC movs r0, 0x4 orrs r4, r0 lsls r0, r4, 24 lsrs r4, r0, 24 _080223FC: adds r2, r3, r6 ldrb r1, [r7] movs r0, 0x58 muls r0, r1 add r0, r12 adds r1, r0, 0 adds r1, 0x22 ldrb r2, [r2] ldrb r1, [r1] cmp r2, r1 bne _0802242C adds r0, 0x21 ldrb r0, [r0] cmp r0, r2 beq _0802242C adds r0, r5, 0x2 adds r0, r6 ldrb r0, [r0] cmp r0, 0x14 bne _0802242C movs r0, 0x2 orrs r4, r0 lsls r0, r4, 24 lsrs r4, r0, 24 _0802242C: adds r5, 0x3 adds r0, r5, r6 ldrb r0, [r0] _08022432: cmp r0, 0xFF beq _08022452 cmp r0, 0xFE bne _08022380 ldrb r1, [r7] movs r0, 0x58 muls r0, r1 mov r1, r12 adds r1, 0x50 adds r0, r1 ldr r0, [r0] movs r1, 0x80 lsls r1, 22 ands r0, r1 cmp r0, 0 beq _0802242C _08022452: ldr r2, _08022500 ldr r0, _08022504 mov r8, r0 ldrb r1, [r0] movs r0, 0x58 muls r0, r1 adds r0, r2 adds r0, 0x20 ldrb r6, [r0] cmp r6, 0x19 bne _080224CE movs r5, 0x29 ands r5, r4 cmp r5, 0 bne _080224CE ldr r0, _08022508 ldrb r0, [r0] ldr r7, _0802250C ldrh r1, [r7] bl move_weather_interaction lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0x2 bne _080224CE adds r0, r4, 0 ands r0, r1 cmp r0, 0 beq _08022494 movs r0, 0x6 ands r4, r0 cmp r4, 0x6 bne _080224CE _08022494: ldr r2, _08022510 ldrh r1, [r7] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r0, [r0, 0x1] cmp r0, 0 beq _080224CE ldr r3, _08022514 strb r6, [r3] ldr r2, _08022518 ldrb r0, [r2] movs r1, 0x1 orrs r0, r1 strb r0, [r2] ldr r1, _0802251C mov r2, r8 ldrb r0, [r2] lsls r0, 1 adds r0, r1 strh r5, [r0] ldr r1, _08022520 movs r0, 0x3 strb r0, [r1, 0x6] ldrb r0, [r2] ldrb r1, [r3] bl sub_81074C4 _080224CE: ldr r0, _08022518 ldrb r1, [r0] movs r0, 0x8 ands r0, r1 cmp r0, 0 beq _080224EC ldr r2, _08022524 ldr r0, _08022508 ldrb r1, [r0] lsls r1, 4 adds r1, r2 ldrb r0, [r1, 0x1] movs r2, 0x2 orrs r0, r2 strb r0, [r1, 0x1] _080224EC: ldr r1, _08022528 ldr r0, [r1] adds r0, 0x1 str r0, [r1] pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08022500: .4byte 0x02024a80 _08022504: .4byte 0x02024c08 _08022508: .4byte 0x02024c07 _0802250C: .4byte 0x02024be6 _08022510: .4byte gBattleMoves _08022514: .4byte 0x02024c06 _08022518: .4byte 0x02024c68 _0802251C: .4byte 0x02024c3c _08022520: .4byte 0x02024d1e _08022524: .4byte 0x02024d28 _08022528: .4byte 0x02024c10 thumb_func_end atk4A_damagecalc2 thumb_func_start atk4B_cmd4b atk4B_cmd4b: @ 802252C push {r4,lr} ldr r4, _08022568 ldr r0, _0802256C ldrb r0, [r0] strb r0, [r4] ldr r2, _08022570 ldr r1, _08022574 ldrb r0, [r4] lsls r0, 2 adds r0, r1 ldr r1, [r0] lsls r1, 28 ldr r0, [r2] ands r0, r1 cmp r0, 0 bne _0802255A movs r0, 0 movs r1, 0 bl dp01_build_cmdbuf_x06_a ldrb r0, [r4] bl dp01_battle_side_mark_buffer_for_execution _0802255A: ldr r1, _08022578 ldr r0, [r1] adds r0, 0x1 str r0, [r1] pop {r4} pop {r0} bx r0 .align 2, 0 _08022568: .4byte 0x02024a60 _0802256C: .4byte 0x02024c07 _08022570: .4byte 0x02024c6c _08022574: .4byte gUnknown_0820872C _08022578: .4byte 0x02024c10 thumb_func_end atk4B_cmd4b thumb_func_start atk4C_switch1 atk4C_switch1: @ 802257C push {r4-r6,lr} ldr r0, _080225D4 ldr r0, [r0] cmp r0, 0 bne _080225CC ldr r5, _080225D8 ldr r0, [r5] ldrb r0, [r0, 0x1] bl sub_8015150 ldr r4, _080225DC strb r0, [r4] ldr r3, _080225E0 ldrb r0, [r4] lsls r1, r0, 1 adds r1, r3 ldr r2, _080225E4 ldr r6, _080225E8 adds r0, r6 adds r0, r2 ldrb r0, [r0] strh r0, [r1] ldr r1, _080225EC ldrb r0, [r4] lsls r0, 1 adds r0, r3 ldrh r0, [r0] lsls r0, 2 adds r0, r1 ldrb r2, [r0] movs r0, 0 movs r1, 0 bl dp01_build_cmdbuf_x00_a_b_0 ldrb r0, [r4] bl dp01_battle_side_mark_buffer_for_execution ldr r0, [r5] adds r0, 0x2 str r0, [r5] _080225CC: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080225D4: .4byte 0x02024a64 _080225D8: .4byte 0x02024c10 _080225DC: .4byte 0x02024a60 _080225E0: .4byte 0x02024a6a _080225E4: .4byte 0x02000000 _080225E8: .4byte 0x00016068 _080225EC: .4byte gUnknown_0820872C thumb_func_end atk4C_switch1 thumb_func_start sub_80225F0 sub_80225F0: @ 80225F0 push {r4-r7,lr} sub sp, 0x58 ldr r0, _0802274C ldr r0, [r0] cmp r0, 0 beq _080225FE b _08022744 _080225FE: ldr r0, _08022750 ldr r0, [r0] ldrb r0, [r0, 0x1] bl sub_8015150 ldr r4, _08022754 strb r0, [r4] ldr r6, _08022758 ldrb r0, [r4] movs r5, 0x58 adds r1, r0, 0 muls r1, r5 adds r1, r6 mov r0, sp movs r2, 0x58 bl memcpy ldrb r0, [r4] muls r0, r5 adds r3, r0, r6 movs r2, 0 ldr r5, _0802275C adds r7, r4, 0 _0802262C: adds r0, r3, r2 ldrb r1, [r4] lsls r1, 9 adds r1, 0x4 adds r1, r2, r1 adds r1, r5 ldrb r1, [r1] strb r1, [r0] adds r2, 0x1 cmp r2, 0x57 bls _0802262C ldr r4, _08022758 ldrb r0, [r7] movs r6, 0x58 adds r2, r0, 0 muls r2, r6 adds r2, r4 ldr r3, _08022760 ldrh r1, [r2] lsls r0, r1, 3 subs r0, r1 lsls r0, 2 adds r0, r3 ldrb r0, [r0, 0x6] adds r2, 0x21 strb r0, [r2] ldrb r0, [r7] adds r1, r0, 0 muls r1, r6 adds r1, r4 ldrh r2, [r1] lsls r0, r2, 3 subs r0, r2 lsls r0, 2 adds r0, r3 ldrb r0, [r0, 0x7] adds r1, 0x22 strb r0, [r1] ldrb r0, [r7] adds r1, r0, 0 muls r1, r6 adds r1, r4 ldrh r0, [r1] ldrb r1, [r1, 0x17] lsrs r1, 7 bl sub_803DB14 ldrb r1, [r7] muls r1, r6 adds r1, r4 adds r1, 0x20 strb r0, [r1] ldrb r0, [r7] bl battle_side_get_owner lsls r0, 24 lsrs r2, r0, 24 ldr r0, _08022764 adds r0, 0x29 adds r0, r2, r0 ldrb r1, [r0] ldr r3, _08022768 ldr r2, _0802276C ldrb r5, [r7] lsls r0, r5, 1 adds r0, r2 ldrh r0, [r0] lsls r0, 2 adds r0, r3 ldr r0, [r0] ands r1, r0 mov r12, r4 cmp r1, 0 beq _080226CA adds r0, r5, 0 muls r0, r6 add r0, r12 movs r1, 0 strh r1, [r0, 0x2E] _080226CA: ldr r2, _08022770 ldr r0, _08022774 ldrh r1, [r0] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r0, [r0] cmp r0, 0x7F bne _08022710 movs r2, 0 adds r4, r7, 0 movs r6, 0x58 mov r5, r12 adds r5, 0x18 add r3, sp, 0x18 _080226EA: ldrb r0, [r4] adds r1, r0, 0 muls r1, r6 adds r1, r2, r1 adds r1, r5 adds r0, r3, r2 ldrb r0, [r0] strb r0, [r1] adds r2, 0x1 cmp r2, 0x7 ble _080226EA ldrb r1, [r7] movs r0, 0x58 muls r0, r1 mov r1, r12 adds r1, 0x50 adds r0, r1 ldr r1, [sp, 0x50] str r1, [r0] _08022710: bl sub_8010B88 ldr r0, _08022778 ldr r3, _08022754 ldrb r2, [r3] ldr r1, _0802277C adds r0, r1 strb r2, [r0] ldr r1, _08022780 movs r0, 0xFD strb r0, [r1] movs r0, 0x7 strb r0, [r1, 0x1] strb r2, [r1, 0x2] ldr r2, _0802276C ldrb r0, [r3] lsls r0, 1 adds r0, r2 ldrh r0, [r0] strb r0, [r1, 0x3] movs r0, 0xFF strb r0, [r1, 0x4] ldr r1, _08022750 ldr r0, [r1] adds r0, 0x2 str r0, [r1] _08022744: add sp, 0x58 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0802274C: .4byte 0x02024a64 _08022750: .4byte 0x02024c10 _08022754: .4byte 0x02024a60 _08022758: .4byte 0x02024a80 _0802275C: .4byte 0x02024260 _08022760: .4byte gBaseStats _08022764: .4byte 0x02024dbc _08022768: .4byte gUnknown_0820872C _0802276C: .4byte 0x02024a6a _08022770: .4byte gBattleMoves _08022774: .4byte 0x02024be6 _08022778: .4byte 0x02000000 _0802277C: .4byte 0x00016003 _08022780: .4byte 0x030041c0 thumb_func_end sub_80225F0 thumb_func_start sub_8022784 sub_8022784: @ 8022784 push {r4,r5,lr} ldr r0, _0802280C ldr r0, [r0] cmp r0, 0 bne _08022806 ldr r0, _08022810 ldr r0, [r0] ldrb r0, [r0, 0x1] bl sub_8015150 ldr r4, _08022814 strb r0, [r4] ldrb r0, [r4] bl battle_side_get_owner lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080227D0 ldr r0, _08022818 ldrh r1, [r0] ldr r0, _0802281C ands r0, r1 cmp r0, 0 bne _080227D0 ldr r2, _08022820 ldrb r1, [r4] movs r0, 0x58 muls r0, r1 adds r0, r2 ldrh r0, [r0] bl SpeciesToNationalPokedexNum lsls r0, 16 lsrs r0, 16 movs r1, 0x2 bl sub_8090D90 _080227D0: ldr r2, _08022824 ldr r1, _08022828 ldr r5, _08022814 ldrb r0, [r5] lsls r0, 2 adds r0, r1 ldr r1, [r0] ldrb r0, [r2] bics r0, r1 strb r0, [r2] ldr r1, _0802282C ldrb r0, [r5] lsls r0, 1 adds r0, r1 ldrb r1, [r0] ldr r4, _08022810 ldr r0, [r4] ldrb r2, [r0, 0x2] movs r0, 0 bl sub_800C704 ldrb r0, [r5] bl dp01_battle_side_mark_buffer_for_execution ldr r0, [r4] adds r0, 0x3 str r0, [r4] _08022806: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0802280C: .4byte 0x02024a64 _08022810: .4byte 0x02024c10 _08022814: .4byte 0x02024a60 _08022818: .4byte 0x020239f8 _0802281C: .4byte 0x00000902 _08022820: .4byte 0x02024a80 _08022824: .4byte 0x02024c0c _08022828: .4byte gUnknown_0820872C _0802282C: .4byte 0x02024a6a thumb_func_end sub_8022784 thumb_func_start sub_8022830 sub_8022830: @ 8022830 push {r4-r7,lr} mov r7, r8 push {r7} ldr r4, _08022894 ldr r0, [r4] ldrb r1, [r0, 0x1] movs r0, 0x7F ands r0, r1 bl sub_8015150 ldr r3, _08022898 strb r0, [r3] ldr r2, [r4] ldrb r1, [r2, 0x1] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _080228A8 ldr r1, _0802289C ldrb r3, [r3] movs r0, 0x58 muls r0, r3 adds r1, 0x50 adds r0, r1 ldr r0, [r0] ldr r1, _080228A0 ands r0, r1 cmp r0, 0 bne _0802287C ldr r1, _080228A4 lsls r0, r3, 2 adds r0, r1 ldr r0, [r0] movs r1, 0x80 lsls r1, 3 ands r0, r1 cmp r0, 0 beq _080228A8 _0802287C: ldrb r1, [r2, 0x2] ldrb r0, [r2, 0x3] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x4] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x5] lsls r0, 24 orrs r1, r0 str r1, [r4] b _08022A2C .align 2, 0 _08022894: .4byte 0x02024c10 _08022898: .4byte 0x02024a60 _0802289C: .4byte 0x02024a80 _080228A0: .4byte 0x0400e000 _080228A4: .4byte 0x02024c98 _080228A8: ldr r5, _08022934 ldrh r1, [r5] movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _08022948 ldr r4, _08022938 ldrb r0, [r4] bl battle_side_get_owner lsls r0, 24 lsrs r0, 24 ldr r1, _0802293C mov r8, r1 cmp r0, 0x1 bne _080228CC ldr r0, _08022940 mov r8, r0 _080228CC: movs r5, 0 ldrb r0, [r4] bl sub_803FC34 lsls r0, 24 lsrs r0, 24 bl sub_803FBFC lsls r0, 16 lsrs r0, 16 cmp r0, 0x1 bne _080228E6 movs r5, 0x3 _080228E6: adds r6, r5, 0x3 cmp r5, r6 bge _0802292E ldr r7, _08022944 _080228EE: movs r0, 0x64 muls r0, r5 mov r1, r8 adds r4, r1, r0 adds r0, r4, 0 movs r1, 0xB bl PokemonGetField cmp r0, 0 beq _08022928 adds r0, r4, 0 movs r1, 0x2D bl PokemonGetField cmp r0, 0 bne _08022928 adds r0, r4, 0 movs r1, 0x39 bl PokemonGetField cmp r0, 0 beq _08022928 ldr r0, _08022938 ldrb r0, [r0] lsls r0, 1 adds r0, r7 ldrh r0, [r0] cmp r0, r5 bne _0802292E _08022928: adds r5, 0x1 cmp r5, r6 blt _080228EE _0802292E: cmp r5, r6 beq _080229FC b _08022A24 .align 2, 0 _08022934: .4byte 0x020239f8 _08022938: .4byte 0x02024a60 _0802293C: .4byte 0x03004360 _08022940: .4byte 0x030045c0 _08022944: .4byte 0x02024a6a _08022948: ldr r0, _08022978 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x1 bne _08022988 movs r0, 0x1 bl battle_get_side_with_given_state lsls r0, 24 lsrs r7, r0, 24 ldrh r1, [r5] adds r0, r4, 0 ands r0, r1 cmp r0, 0 beq _0802297C movs r0, 0x3 bl battle_get_side_with_given_state lsls r0, 24 lsrs r6, r0, 24 b _0802297E .align 2, 0 _08022978: .4byte 0x02024a60 _0802297C: adds r6, r7, 0 _0802297E: ldr r0, _08022984 mov r8, r0 b _080229AE .align 2, 0 _08022984: .4byte 0x030045c0 _08022988: movs r0, 0 bl battle_get_side_with_given_state lsls r0, 24 lsrs r7, r0, 24 ldrh r1, [r5] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _080229A8 movs r0, 0x2 bl battle_get_side_with_given_state lsls r0, 24 lsrs r6, r0, 24 b _080229AA _080229A8: adds r6, r7, 0 _080229AA: ldr r1, _08022A18 mov r8, r1 _080229AE: movs r5, 0 _080229B0: movs r0, 0x64 muls r0, r5 mov r1, r8 adds r4, r1, r0 adds r0, r4, 0 movs r1, 0x39 bl PokemonGetField cmp r0, 0 beq _080229F2 adds r0, r4, 0 movs r1, 0xB bl PokemonGetField cmp r0, 0 beq _080229F2 adds r0, r4, 0 movs r1, 0x2D bl PokemonGetField cmp r0, 0 bne _080229F2 ldr r1, _08022A1C lsls r0, r7, 1 adds r0, r1 ldrh r0, [r0] cmp r5, r0 beq _080229F2 lsls r0, r6, 1 adds r0, r1 ldrh r0, [r0] cmp r5, r0 bne _080229F8 _080229F2: adds r5, 0x1 cmp r5, 0x5 ble _080229B0 _080229F8: cmp r5, 0x6 bne _08022A24 _080229FC: ldr r3, _08022A20 ldr r2, [r3] ldrb r1, [r2, 0x2] ldrb r0, [r2, 0x3] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x4] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x5] lsls r0, 24 orrs r1, r0 str r1, [r3] b _08022A2C .align 2, 0 _08022A18: .4byte 0x03004360 _08022A1C: .4byte 0x02024a6a _08022A20: .4byte 0x02024c10 _08022A24: ldr r1, _08022A38 ldr r0, [r1] adds r0, 0x6 str r0, [r1] _08022A2C: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08022A38: .4byte 0x02024c10 thumb_func_end sub_8022830 thumb_func_start sub_8022A3C sub_8022A3C: @ 8022A3C push {r4,r5,lr} sub sp, 0x4 adds r2, r0, 0 lsls r2, 24 lsrs r2, 24 ldr r4, _08022A84 ldr r5, _08022A88 ldrb r0, [r5] ldr r3, _08022A8C adds r1, r0, r3 adds r1, r4 ldr r3, _08022A90 lsls r0, 1 adds r0, r3 ldrh r0, [r0] strb r0, [r1] ldrb r1, [r5] lsls r0, r1, 1 adds r0, r1 ldr r1, _08022A94 adds r4, r1 adds r0, r4 str r0, [sp] movs r0, 0 movs r1, 0x1 movs r3, 0 bl dp01_build_cmdbuf_x16_a_b_c_ptr_d_e_f ldrb r0, [r5] bl dp01_battle_side_mark_buffer_for_execution add sp, 0x4 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08022A84: .4byte 0x02000000 _08022A88: .4byte 0x02024a60 _08022A8C: .4byte 0x00016064 _08022A90: .4byte 0x02024a6a _08022A94: .4byte 0x0001606c thumb_func_end sub_8022A3C thumb_func_start atk50_openpartyscreen atk50_openpartyscreen: @ 8022A98 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x4 movs r7, 0 movs r0, 0 mov r9, r0 ldr r6, _08022B44 ldr r1, [r6] ldrb r2, [r1, 0x2] ldrb r0, [r1, 0x3] lsls r0, 8 orrs r2, r0 ldrb r0, [r1, 0x4] lsls r0, 16 orrs r2, r0 ldrb r0, [r1, 0x5] lsls r0, 24 orrs r2, r0 mov r8, r2 ldrb r2, [r1, 0x1] adds r0, r2, 0 mov r12, r6 cmp r0, 0x5 beq _08022ACE b _08022F74 _08022ACE: ldr r0, _08022B48 ldrh r0, [r0] movs r1, 0x41 ands r1, r0 cmp r1, 0x1 beq _08022BBC ldr r1, _08022B4C strb r7, [r1] ldr r0, _08022B50 ldrb r0, [r0] cmp r7, r0 bcc _08022AE8 b _08022F62 _08022AE8: ldr r7, _08022B54 ldr r6, _08022B58 adds r4, r1, 0 ldr r0, _08022B5C mov r8, r0 _08022AF2: ldrb r2, [r4] lsls r0, r2, 2 adds r0, r6 ldr r1, [r0] lsls r1, 28 ldr r0, [r7] ands r0, r1 cmp r0, 0 beq _08022B94 adds r0, r2, 0 movs r1, 0x6 movs r2, 0x6 bl sub_8018018 lsls r0, 24 cmp r0, 0 beq _08022B60 ldrb r0, [r4] lsls r0, 2 adds r0, r6 ldr r0, [r0] mov r2, r8 ldrb r1, [r2] orrs r0, r1 strb r0, [r2] ldrb r0, [r4] lsls r0, 2 adds r0, r6 ldr r1, [r0] lsls r1, 28 ldr r0, [r7] bics r0, r1 str r0, [r7] movs r0, 0 movs r1, 0x2 bl sub_800D1D8 ldrb r0, [r4] bl dp01_battle_side_mark_buffer_for_execution b _08022BA2 .align 2, 0 _08022B44: .4byte 0x02024c10 _08022B48: .4byte 0x020239f8 _08022B4C: .4byte 0x02024a60 _08022B50: .4byte 0x02024a68 _08022B54: .4byte 0x02024c6c _08022B58: .4byte gUnknown_0820872C _08022B5C: .4byte 0x02024c0c _08022B60: ldr r5, _08022B90 ldrb r0, [r4] lsls r1, r0, 2 adds r1, r0 lsls r1, 2 adds r1, r5 ldrb r0, [r1] lsls r0, 25 cmp r0, 0 blt _08022BA2 movs r0, 0x6 bl sub_8022A3C ldrb r1, [r4] lsls r0, r1, 2 adds r0, r1 lsls r0, 2 adds r0, r5 ldrb r1, [r0] movs r2, 0x40 orrs r1, r2 strb r1, [r0] b _08022BA2 .align 2, 0 _08022B90: .4byte 0x02024d68 _08022B94: movs r0, 0 movs r1, 0x2 bl sub_800D1D8 ldrb r0, [r4] bl dp01_battle_side_mark_buffer_for_execution _08022BA2: ldrb r0, [r4] adds r0, 0x1 strb r0, [r4] ldr r1, _08022BB8 lsls r0, 24 lsrs r0, 24 ldrb r1, [r1] cmp r0, r1 bcc _08022AF2 b _08022F62 .align 2, 0 _08022BB8: .4byte 0x02024a68 _08022BBC: ands r1, r0 cmp r1, 0 bne _08022BC4 b _08022F62 _08022BC4: ldr r0, _08022C1C mov r8, r0 ldr r0, [r0] lsrs r5, r0, 28 ldr r6, _08022C20 ldr r0, [r6] ands r0, r5 cmp r0, 0 beq _08022C7E ldr r4, _08022C24 strb r7, [r4] movs r0, 0 movs r1, 0x6 movs r2, 0x6 bl sub_8018018 lsls r0, 24 cmp r0, 0 beq _08022C2C ldr r2, _08022C28 ldrb r0, [r4] lsls r0, 2 adds r0, r6 ldr r0, [r0] ldrb r1, [r2] orrs r0, r1 strb r0, [r2] ldrb r0, [r4] lsls r0, 2 adds r0, r6 ldr r1, [r0] lsls r1, 28 mov r2, r8 ldr r0, [r2] bics r0, r1 str r0, [r2] movs r0, 0 bl dp01_build_cmdbuf_x2A_2A_2A_2A ldrb r0, [r4] bl dp01_battle_side_mark_buffer_for_execution b _08022C7E .align 2, 0 _08022C1C: .4byte 0x02024c6c _08022C20: .4byte gUnknown_0820872C _08022C24: .4byte 0x02024a60 _08022C28: .4byte 0x02024c0c _08022C2C: ldr r6, _08022C60 ldrb r0, [r4] lsls r1, r0, 2 adds r1, r0 lsls r1, 2 adds r1, r6 ldrb r0, [r1] lsls r0, 25 cmp r0, 0 blt _08022C6C ldr r0, _08022C64 ldr r1, _08022C68 adds r0, r1 ldrb r0, [r0] bl sub_8022A3C ldrb r1, [r4] lsls r0, r1, 2 adds r0, r1 lsls r0, 2 adds r0, r6 ldrb r1, [r0] movs r2, 0x40 orrs r1, r2 strb r1, [r0] b _08022C7E .align 2, 0 _08022C60: .4byte 0x02024d68 _08022C64: .4byte 0x02000000 _08022C68: .4byte 0x0001606a _08022C6C: movs r0, 0 movs r1, 0x2 bl sub_800D1D8 ldrb r0, [r4] bl dp01_battle_side_mark_buffer_for_execution movs r2, 0x1 mov r9, r2 _08022C7E: ldr r6, _08022CD8 ldr r0, [r6, 0x8] ands r0, r5 cmp r0, 0 beq _08022D40 ldr r0, [r6] ands r0, r5 cmp r0, 0 bne _08022D40 ldr r4, _08022CDC movs r0, 0x2 strb r0, [r4] movs r0, 0x2 movs r1, 0x6 movs r2, 0x6 bl sub_8018018 lsls r0, 24 cmp r0, 0 beq _08022CE8 ldr r2, _08022CE0 ldrb r0, [r4] lsls r0, 2 adds r0, r6 ldr r0, [r0] ldrb r1, [r2] orrs r0, r1 strb r0, [r2] ldr r2, _08022CE4 ldrb r0, [r4] lsls r0, 2 adds r0, r6 ldr r1, [r0] lsls r1, 28 ldr r0, [r2] bics r0, r1 str r0, [r2] movs r0, 0 bl dp01_build_cmdbuf_x2A_2A_2A_2A ldrb r0, [r4] bl dp01_battle_side_mark_buffer_for_execution b _08022D40 .align 2, 0 _08022CD8: .4byte gUnknown_0820872C _08022CDC: .4byte 0x02024a60 _08022CE0: .4byte 0x02024c0c _08022CE4: .4byte 0x02024c6c _08022CE8: ldr r6, _08022D1C ldrb r0, [r4] lsls r1, r0, 2 adds r1, r0 lsls r1, 2 adds r1, r6 ldrb r0, [r1] lsls r0, 25 cmp r0, 0 blt _08022D28 ldr r0, _08022D20 ldr r1, _08022D24 adds r0, r1 ldrb r0, [r0] bl sub_8022A3C ldrb r1, [r4] lsls r0, r1, 2 adds r0, r1 lsls r0, 2 adds r0, r6 ldrb r1, [r0] movs r2, 0x40 orrs r1, r2 strb r1, [r0] b _08022D40 .align 2, 0 _08022D1C: .4byte 0x02024d68 _08022D20: .4byte 0x02000000 _08022D24: .4byte 0x00016068 _08022D28: movs r0, 0x1 mov r2, r9 ands r0, r2 cmp r0, 0 bne _08022D40 movs r0, 0 movs r1, 0x2 bl sub_800D1D8 ldrb r0, [r4] bl dp01_battle_side_mark_buffer_for_execution _08022D40: ldr r6, _08022D90 ldr r0, [r6, 0x4] ands r0, r5 cmp r0, 0 beq _08022DF6 ldr r4, _08022D94 movs r0, 0x1 strb r0, [r4] movs r0, 0x1 movs r1, 0x6 movs r2, 0x6 bl sub_8018018 lsls r0, 24 cmp r0, 0 beq _08022DA0 ldr r2, _08022D98 ldrb r0, [r4] lsls r0, 2 adds r0, r6 ldr r0, [r0] ldrb r1, [r2] orrs r0, r1 strb r0, [r2] ldr r2, _08022D9C ldrb r0, [r4] lsls r0, 2 adds r0, r6 ldr r1, [r0] lsls r1, 28 ldr r0, [r2] bics r0, r1 str r0, [r2] movs r0, 0 bl dp01_build_cmdbuf_x2A_2A_2A_2A ldrb r0, [r4] bl dp01_battle_side_mark_buffer_for_execution b _08022DF6 .align 2, 0 _08022D90: .4byte gUnknown_0820872C _08022D94: .4byte 0x02024a60 _08022D98: .4byte 0x02024c0c _08022D9C: .4byte 0x02024c6c _08022DA0: ldr r6, _08022DD4 ldrb r0, [r4] lsls r1, r0, 2 adds r1, r0 lsls r1, 2 adds r1, r6 ldrb r0, [r1] lsls r0, 25 cmp r0, 0 blt _08022DE0 ldr r0, _08022DD8 ldr r1, _08022DDC adds r0, r1 ldrb r0, [r0] bl sub_8022A3C ldrb r1, [r4] lsls r0, r1, 2 adds r0, r1 lsls r0, 2 adds r0, r6 ldrb r1, [r0] movs r2, 0x40 orrs r1, r2 strb r1, [r0] b _08022DF6 .align 2, 0 _08022DD4: .4byte 0x02024d68 _08022DD8: .4byte 0x02000000 _08022DDC: .4byte 0x0001606b _08022DE0: movs r0, 0 movs r1, 0x2 bl sub_800D1D8 ldrb r0, [r4] bl dp01_battle_side_mark_buffer_for_execution movs r0, 0x2 mov r2, r9 orrs r2, r0 mov r9, r2 _08022DF6: ldr r6, _08022E50 ldr r0, [r6, 0xC] ands r0, r5 cmp r0, 0 beq _08022EB8 ldr r0, [r6, 0x4] ands r0, r5 cmp r0, 0 bne _08022EB8 ldr r4, _08022E54 movs r0, 0x3 strb r0, [r4] movs r0, 0x3 movs r1, 0x6 movs r2, 0x6 bl sub_8018018 lsls r0, 24 cmp r0, 0 beq _08022E60 ldr r2, _08022E58 ldrb r0, [r4] lsls r0, 2 adds r0, r6 ldr r0, [r0] ldrb r1, [r2] orrs r0, r1 strb r0, [r2] ldr r2, _08022E5C ldrb r0, [r4] lsls r0, 2 adds r0, r6 ldr r1, [r0] lsls r1, 28 ldr r0, [r2] bics r0, r1 str r0, [r2] movs r0, 0 bl dp01_build_cmdbuf_x2A_2A_2A_2A ldrb r0, [r4] bl dp01_battle_side_mark_buffer_for_execution b _08022EB8 .align 2, 0 _08022E50: .4byte gUnknown_0820872C _08022E54: .4byte 0x02024a60 _08022E58: .4byte 0x02024c0c _08022E5C: .4byte 0x02024c6c _08022E60: ldr r6, _08022E94 ldrb r0, [r4] lsls r1, r0, 2 adds r1, r0 lsls r1, 2 adds r1, r6 ldrb r0, [r1] lsls r0, 25 cmp r0, 0 blt _08022EA0 ldr r0, _08022E98 ldr r1, _08022E9C adds r0, r1 ldrb r0, [r0] bl sub_8022A3C ldrb r1, [r4] lsls r0, r1, 2 adds r0, r1 lsls r0, 2 adds r0, r6 ldrb r1, [r0] movs r2, 0x40 orrs r1, r2 strb r1, [r0] b _08022EB8 .align 2, 0 _08022E94: .4byte 0x02024d68 _08022E98: .4byte 0x02000000 _08022E9C: .4byte 0x00016069 _08022EA0: movs r0, 0x2 mov r2, r9 ands r2, r0 cmp r2, 0 bne _08022EB8 movs r0, 0 movs r1, 0x2 bl sub_800D1D8 ldrb r0, [r4] bl dp01_battle_side_mark_buffer_for_execution _08022EB8: ldr r1, _08022EE8 ldrb r0, [r1] lsls r0, 25 cmp r0, 0 blt _08022F0C adds r0, r1, 0 adds r0, 0x28 ldrb r0, [r0] lsls r0, 25 cmp r0, 0 blt _08022F0C cmp r5, 0 beq _08022F0C ldr r0, _08022EEC ldrb r1, [r0] ldr r0, _08022EF0 ldr r0, [r0] ands r1, r0 cmp r1, 0 beq _08022EF8 ldr r1, _08022EF4 movs r0, 0x2 strb r0, [r1] b _08022EFC .align 2, 0 _08022EE8: .4byte 0x02024d68 _08022EEC: .4byte 0x02024c0c _08022EF0: .4byte gUnknown_0820872C _08022EF4: .4byte 0x02024a60 _08022EF8: ldr r0, _08022F3C strb r1, [r0] _08022EFC: movs r0, 0 movs r1, 0x2 bl sub_800D1D8 ldr r0, _08022F3C ldrb r0, [r0] bl dp01_battle_side_mark_buffer_for_execution _08022F0C: ldr r1, _08022F40 ldrb r0, [r1, 0x14] lsls r0, 25 cmp r0, 0 blt _08022F62 adds r0, r1, 0 adds r0, 0x3C ldrb r0, [r0] lsls r0, 25 cmp r0, 0 blt _08022F62 cmp r5, 0 beq _08022F62 ldr r0, _08022F44 ldrb r0, [r0] ldr r1, _08022F48 ldr r1, [r1, 0x4] ands r0, r1 cmp r0, 0 beq _08022F4C ldr r1, _08022F3C movs r0, 0x3 b _08022F50 .align 2, 0 _08022F3C: .4byte 0x02024a60 _08022F40: .4byte 0x02024d68 _08022F44: .4byte 0x02024c0c _08022F48: .4byte gUnknown_0820872C _08022F4C: ldr r1, _08022F6C movs r0, 0x1 _08022F50: strb r0, [r1] movs r0, 0 movs r1, 0x2 bl sub_800D1D8 ldr r0, _08022F6C ldrb r0, [r0] bl dp01_battle_side_mark_buffer_for_execution _08022F62: ldr r1, _08022F70 ldr r0, [r1] adds r0, 0x6 str r0, [r1] b _08023302 .align 2, 0 _08022F6C: .4byte 0x02024a60 _08022F70: .4byte 0x02024c10 _08022F74: cmp r0, 0x6 beq _08022F7A b _08023170 _08022F7A: ldr r0, _08022FF0 ldrh r2, [r0] movs r0, 0x40 ands r0, r2 cmp r0, 0 beq _08022F88 b _0802310C _08022F88: movs r0, 0x1 ands r0, r2 cmp r0, 0 bne _08022F92 b _0802310C _08022F92: ldr r7, _08022FF4 ldr r0, [r7] lsrs r5, r0, 28 ldr r4, _08022FF8 ldr r0, [r4, 0x8] ands r0, r5 cmp r0, 0 beq _0802303A ldr r0, [r4] ands r0, r5 cmp r0, 0 beq _0802303A ldr r6, _08022FFC movs r0, 0x2 strb r0, [r6] ldr r0, _08023000 ldrb r1, [r0, 0x1] movs r0, 0x2 movs r2, 0x6 bl sub_8018018 lsls r0, 24 cmp r0, 0 beq _08023008 ldr r2, _08023004 ldrb r0, [r6] lsls r0, 2 adds r0, r4 ldr r0, [r0] ldrb r1, [r2] orrs r0, r1 strb r0, [r2] ldrb r0, [r6] lsls r0, 2 adds r0, r4 ldr r1, [r0] lsls r1, 28 ldr r0, [r7] bics r0, r1 str r0, [r7] movs r0, 0 bl dp01_build_cmdbuf_x2A_2A_2A_2A ldrb r0, [r6] bl dp01_battle_side_mark_buffer_for_execution b _0802303A .align 2, 0 _08022FF0: .4byte 0x020239f8 _08022FF4: .4byte 0x02024c6c _08022FF8: .4byte gUnknown_0820872C _08022FFC: .4byte 0x02024a60 _08023000: .4byte 0x02024260 _08023004: .4byte 0x02024c0c _08023008: ldr r4, _08023098 ldrb r0, [r6] lsls r1, r0, 2 adds r1, r0 lsls r1, 2 adds r1, r4 ldrb r0, [r1] lsls r0, 25 cmp r0, 0 blt _0802303A ldr r0, _0802309C ldr r1, _080230A0 adds r0, r1 ldrb r0, [r0] bl sub_8022A3C ldrb r1, [r6] lsls r0, r1, 2 adds r0, r1 lsls r0, 2 adds r0, r4 ldrb r1, [r0] movs r2, 0x40 orrs r1, r2 strb r1, [r0] _0802303A: ldr r4, _080230A4 ldr r0, [r4, 0xC] ands r0, r5 cmp r0, 0 beq _080230EE ldr r0, [r4, 0x4] ands r5, r0 cmp r5, 0 beq _080230EE ldr r5, _080230A8 movs r0, 0x3 strb r0, [r5] ldr r0, _080230AC ldr r2, _080230B0 adds r0, r2 ldrb r1, [r0] movs r0, 0x3 movs r2, 0x6 bl sub_8018018 lsls r0, 24 cmp r0, 0 beq _080230BC ldr r2, _080230B4 ldrb r0, [r5] lsls r0, 2 adds r0, r4 ldr r0, [r0] ldrb r1, [r2] orrs r0, r1 strb r0, [r2] ldr r2, _080230B8 ldrb r0, [r5] lsls r0, 2 adds r0, r4 ldr r1, [r0] lsls r1, 28 ldr r0, [r2] bics r0, r1 str r0, [r2] movs r0, 0 bl dp01_build_cmdbuf_x2A_2A_2A_2A ldrb r0, [r5] bl dp01_battle_side_mark_buffer_for_execution b _080230EE .align 2, 0 _08023098: .4byte 0x02024d68 _0802309C: .4byte 0x02000000 _080230A0: .4byte 0x00016068 _080230A4: .4byte gUnknown_0820872C _080230A8: .4byte 0x02024a60 _080230AC: .4byte 0x02024260 _080230B0: .4byte 0x00000201 _080230B4: .4byte 0x02024c0c _080230B8: .4byte 0x02024c6c _080230BC: ldr r4, _080230FC ldrb r0, [r5] lsls r1, r0, 2 adds r1, r0 lsls r1, 2 adds r1, r4 ldrb r0, [r1] lsls r0, 25 cmp r0, 0 blt _080230EE ldr r0, _08023100 ldr r1, _08023104 adds r0, r1 ldrb r0, [r0] bl sub_8022A3C ldrb r1, [r5] lsls r0, r1, 2 adds r0, r1 lsls r0, 2 adds r0, r4 ldrb r1, [r0] movs r2, 0x40 orrs r1, r2 strb r1, [r0] _080230EE: ldr r1, _08023108 ldr r0, [r1] adds r0, 0x6 str r0, [r1] mov r12, r1 b _08023110 .align 2, 0 _080230FC: .4byte 0x02024d68 _08023100: .4byte 0x02000000 _08023104: .4byte 0x00016069 _08023108: .4byte 0x02024c10 _0802310C: adds r0, r1, 0x6 str r0, [r6] _08023110: ldr r0, _08023160 ldr r0, [r0] lsrs r5, r0, 28 ldr r1, _08023164 movs r0, 0 strb r0, [r1] ldr r4, _08023168 ldr r2, [r4] ands r2, r5 ldr r6, _0802316C cmp r2, 0 bne _0802314C adds r7, r6, 0 ldrb r0, [r6] cmp r2, r0 bcs _0802314C adds r3, r1, 0 _08023132: ldrb r0, [r3] adds r0, 0x1 strb r0, [r3] ldrb r2, [r3] lsls r0, r2, 2 adds r0, r4 ldr r0, [r0] ands r0, r5 cmp r0, 0 bne _0802314C ldrb r0, [r7] cmp r2, r0 bcc _08023132 _0802314C: ldrb r0, [r1] ldrb r6, [r6] cmp r0, r6 beq _08023156 b _08023302 _08023156: mov r1, r8 mov r2, r12 str r1, [r2] b _08023302 .align 2, 0 _08023160: .4byte 0x02024c6c _08023164: .4byte 0x02024c09 _08023168: .4byte gUnknown_0820872C _0802316C: .4byte 0x02024a68 _08023170: movs r0, 0x80 ands r0, r2 movs r5, 0x1 cmp r0, 0 beq _0802317C movs r5, 0 _0802317C: movs r0, 0x7F ands r0, r2 bl sub_8015150 lsls r0, 24 lsrs r7, r0, 24 ldr r1, _080231A4 lsls r0, r7, 2 adds r0, r7 lsls r0, 2 adds r0, r1 ldrb r0, [r0] lsls r0, 25 cmp r0, 0 bge _080231A8 ldr r0, [r6] adds r0, 0x6 str r0, [r6] b _08023302 .align 2, 0 _080231A4: .4byte 0x02024d68 _080231A8: adds r0, r7, 0 movs r1, 0x6 movs r2, 0x6 bl sub_8018018 lsls r0, 24 cmp r0, 0 beq _080231F8 ldr r2, _080231E8 strb r7, [r2] ldr r3, _080231EC ldr r4, _080231F0 ldrb r0, [r2] lsls r0, 2 adds r0, r4 ldr r0, [r0] ldrb r1, [r3] orrs r0, r1 strb r0, [r3] ldr r3, _080231F4 ldrb r0, [r2] lsls r0, 2 adds r0, r4 ldr r1, [r0] lsls r1, 28 ldr r0, [r3] bics r0, r1 str r0, [r3] mov r0, r8 str r0, [r6] b _08023302 .align 2, 0 _080231E8: .4byte 0x02024a60 _080231EC: .4byte 0x02024c0c _080231F0: .4byte gUnknown_0820872C _080231F4: .4byte 0x02024c6c _080231F8: ldr r4, _080232A0 strb r7, [r4] ldr r3, _080232A4 ldrb r0, [r4] ldr r2, _080232A8 adds r1, r0, r2 adds r1, r3 ldr r2, _080232AC lsls r0, 1 adds r0, r2 ldrh r0, [r0] strb r0, [r1] ldrb r1, [r4] movs r0, 0x2 eors r0, r1 ldr r1, _080232B0 adds r0, r1 adds r0, r3 ldrb r2, [r0] ldrb r1, [r4] lsls r0, r1, 1 adds r0, r1 ldr r1, _080232B4 adds r3, r1 adds r0, r3 str r0, [sp] movs r0, 0 adds r1, r5, 0 movs r3, 0 bl dp01_build_cmdbuf_x16_a_b_c_ptr_d_e_f ldrb r0, [r4] bl dp01_battle_side_mark_buffer_for_execution ldr r0, [r6] adds r0, 0x6 str r0, [r6] ldrb r0, [r4] bl battle_get_per_side_status lsls r0, 24 cmp r0, 0 bne _0802325A ldr r1, _080232B8 ldrb r0, [r1, 0x2] cmp r0, 0xFE bhi _0802325A adds r0, 0x1 strb r0, [r1, 0x2] _0802325A: ldr r0, _080232BC ldrh r1, [r0] movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _080232C4 ldr r1, _080232A0 movs r0, 0 strb r0, [r1] ldr r0, _080232C0 ldrb r0, [r0] cmp r0, 0 beq _08023302 adds r4, r1, 0 _08023276: ldrb r0, [r4] cmp r0, r7 beq _0802328A movs r0, 0 movs r1, 0x2 bl sub_800D1D8 ldrb r0, [r4] bl dp01_battle_side_mark_buffer_for_execution _0802328A: ldrb r0, [r4] adds r0, 0x1 strb r0, [r4] ldr r1, _080232C0 lsls r0, 24 lsrs r0, 24 ldrb r1, [r1] cmp r0, r1 bcc _08023276 b _08023302 .align 2, 0 _080232A0: .4byte 0x02024a60 _080232A4: .4byte 0x02000000 _080232A8: .4byte 0x00016064 _080232AC: .4byte 0x02024a6a _080232B0: .4byte 0x00016068 _080232B4: .4byte 0x0001606c _080232B8: .4byte 0x030042e0 _080232BC: .4byte 0x020239f8 _080232C0: .4byte 0x02024a68 _080232C4: adds r0, r7, 0 bl battle_get_per_side_status movs r1, 0x1 eors r0, r1 lsls r0, 24 lsrs r0, 24 bl battle_get_side_with_given_state ldr r4, _08023310 strb r0, [r4] ldr r0, _08023314 ldrb r1, [r0] ldr r2, _08023318 ldrb r3, [r4] lsls r0, r3, 2 adds r0, r2 ldr r0, [r0] ands r1, r0 cmp r1, 0 beq _080232F4 movs r0, 0x2 eors r3, r0 strb r3, [r4] _080232F4: movs r0, 0 movs r1, 0x2 bl sub_800D1D8 ldrb r0, [r4] bl dp01_battle_side_mark_buffer_for_execution _08023302: add sp, 0x4 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08023310: .4byte 0x02024a60 _08023314: .4byte 0x02024c0c _08023318: .4byte gUnknown_0820872C thumb_func_end atk50_openpartyscreen thumb_func_start sub_802331C sub_802331C: @ 802331C push {r4-r7,lr} mov r7, r8 push {r7} ldr r0, _0802334C ldr r0, [r0] cmp r0, 0 beq _0802332C b _080234FE _0802332C: ldr r4, _08023350 ldr r0, [r4] ldrb r0, [r0, 0x1] bl sub_8015150 ldr r7, _08023354 strb r0, [r7] ldr r0, [r4] ldrb r0, [r0, 0x2] cmp r0, 0x1 beq _080233A0 cmp r0, 0x1 bgt _08023358 cmp r0, 0 beq _0802335E b _080234F6 .align 2, 0 _0802334C: .4byte 0x02024a64 _08023350: .4byte 0x02024c10 _08023354: .4byte 0x02024a60 _08023358: cmp r0, 0x2 beq _080233BC b _080234F6 _0802335E: movs r3, 0 ldr r2, _08023390 ldrb r0, [r2] cmp r3, r0 blt _0802336A b _080234F6 _0802336A: ldr r0, _08023394 ldr r1, _08023398 movs r5, 0x80 lsls r5, 2 adds r4, r2, 0 ldr r6, _0802339C adds r2, r0, r6 _08023378: ldrb r0, [r1] cmp r0, 0x22 bne _08023382 ldrb r0, [r1, 0x1] strb r0, [r2] _08023382: adds r1, r5 adds r2, 0x1 adds r3, 0x1 ldrb r0, [r4] cmp r3, r0 blt _08023378 b _080234F6 .align 2, 0 _08023390: .4byte 0x02024a68 _08023394: .4byte 0x02000000 _08023398: .4byte 0x02024260 _0802339C: .4byte 0x00016068 _080233A0: ldr r0, _080233B8 ldrh r1, [r0] movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _080233AE b _080234F6 _080233AE: ldrb r0, [r7] bl sub_8012258 b _080234F6 .align 2, 0 _080233B8: .4byte 0x020239f8 _080233BC: ldr r1, _08023484 ldr r4, _08023488 ldrb r0, [r7] lsls r0, 9 adds r2, r4, 0x1 adds r0, r2 ldrb r0, [r0] strb r0, [r1] ldr r6, _0802348C ldrb r0, [r7] ldr r3, _08023490 adds r1, r0, r3 adds r1, r6 lsls r0, 9 adds r0, r2 ldrb r0, [r0] strb r0, [r1] ldr r0, _08023494 ldrh r1, [r0] movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _080234A4 ldrb r0, [r7] lsls r1, r0, 1 adds r1, r0 ldr r5, _08023498 adds r1, r5 adds r1, r6 ldrb r2, [r1] movs r0, 0xF ands r0, r2 strb r0, [r1] ldrb r0, [r7] lsls r1, r0, 1 adds r1, r0 adds r1, r5 adds r1, r6 lsls r0, 9 adds r2, r4, 0x2 mov r12, r2 add r0, r12 ldrb r2, [r0] movs r3, 0xF0 adds r0, r3, 0 ands r0, r2 ldrb r2, [r1] orrs r0, r2 strb r0, [r1] ldrb r0, [r7] lsls r1, r0, 1 adds r1, r0 ldr r2, _0802349C adds r1, r2 adds r1, r6 lsls r0, 9 adds r4, 0x3 mov r8, r4 add r0, r8 ldrb r0, [r0] strb r0, [r1] ldrb r0, [r7] movs r4, 0x2 eors r0, r4 lsls r1, r0, 1 adds r1, r0 adds r1, r5 adds r1, r6 ldrb r2, [r1] adds r0, r3, 0 ands r0, r2 strb r0, [r1] ldrb r0, [r7] eors r0, r4 lsls r1, r0, 1 adds r1, r0 adds r1, r5 adds r1, r6 ldrb r0, [r7] lsls r0, 9 add r0, r12 ldrb r0, [r0] ands r3, r0 lsrs r3, 4 ldrb r0, [r1] orrs r3, r0 strb r3, [r1] ldrb r0, [r7] eors r4, r0 lsls r1, r4, 1 adds r1, r4 ldr r3, _080234A0 adds r1, r3 adds r1, r6 ldrb r0, [r7] lsls r0, 9 add r0, r8 ldrb r0, [r0] strb r0, [r1] b _080234AA .align 2, 0 _08023484: .4byte 0x02024d1e _08023488: .4byte 0x02024260 _0802348C: .4byte 0x02000000 _08023490: .4byte 0x00016068 _08023494: .4byte 0x020239f8 _08023498: .4byte 0x0001606c _0802349C: .4byte 0x0001606d _080234A0: .4byte 0x0001606e _080234A4: ldrb r0, [r7] bl sub_8012258 _080234AA: ldr r1, _08023508 movs r5, 0xFD strb r5, [r1] movs r0, 0x6 strb r0, [r1, 0x1] ldr r4, _0802350C ldr r3, _08023510 ldrb r0, [r3] movs r2, 0x58 muls r0, r2 adds r0, r4 ldrh r0, [r0] strb r0, [r1, 0x2] ldrb r0, [r3] muls r0, r2 adds r0, r4 ldrh r0, [r0] lsrs r0, 8 strb r0, [r1, 0x3] movs r0, 0xFF strb r0, [r1, 0x4] ldr r2, _08023514 strb r5, [r2] movs r0, 0x7 strb r0, [r2, 0x1] ldr r3, _08023518 ldrb r0, [r3] strb r0, [r2, 0x2] ldr r1, _0802351C ldrb r0, [r3] lsls r0, 9 adds r1, 0x1 adds r0, r1 ldrb r0, [r0] strb r0, [r2, 0x3] movs r0, 0x1 negs r0, r0 strb r0, [r2, 0x4] _080234F6: ldr r1, _08023520 ldr r0, [r1] adds r0, 0x3 str r0, [r1] _080234FE: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08023508: .4byte 0x030041c0 _0802350C: .4byte 0x02024a80 _08023510: .4byte 0x02024c07 _08023514: .4byte 0x03004290 _08023518: .4byte 0x02024a60 _0802351C: .4byte 0x02024260 _08023520: .4byte 0x02024c10 thumb_func_end sub_802331C thumb_func_start sub_8023524 sub_8023524: @ 8023524 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x4 ldr r6, _08023630 ldr r0, [r6] ldrb r0, [r0, 0x1] bl sub_8015150 ldr r4, _08023634 strb r0, [r4] ldrb r0, [r4] bl sub_80157C4 ldr r2, _08023638 ldr r1, _0802363C ldrb r0, [r4] lsls r0, 2 adds r0, r1 ldr r1, [r0] lsls r1, 28 ldr r0, [r2] bics r0, r1 str r0, [r2] ldr r2, _08023640 ldrb r0, [r4] lsls r1, r0, 2 adds r1, r0 lsls r1, 2 adds r1, r2 ldrb r2, [r1] movs r0, 0x41 negs r0, r0 ands r0, r2 strb r0, [r1] ldrb r0, [r4] bl battle_side_get_owner ldr r5, _08023644 lsls r0, 24 lsrs r0, 23 adds r0, r5 ldrh r1, [r0] movs r0, 0x80 lsls r0, 2 mov r8, r0 ands r0, r1 cmp r0, 0 bne _0802367C ldrb r0, [r4] bl battle_side_get_owner lsls r0, 24 lsrs r0, 23 adds r0, r5 ldrh r1, [r0] movs r0, 0x10 ands r0, r1 cmp r0, 0 beq _0802367C ldr r1, _08023648 mov r9, r1 ldrb r2, [r4] movs r7, 0x58 adds r0, r2, 0 muls r0, r7 adds r1, r0, r1 adds r0, r1, 0 adds r0, 0x21 ldrb r0, [r0] cmp r0, 0x2 beq _0802367C adds r0, r1, 0 adds r0, 0x22 ldrb r0, [r0] cmp r0, 0x2 beq _0802367C adds r0, r1, 0 adds r0, 0x20 ldrb r0, [r0] cmp r0, 0x1A beq _0802367C adds r0, r2, 0 bl battle_side_get_owner lsls r0, 24 lsrs r0, 23 adds r0, r5 ldrh r2, [r0] mov r1, r8 orrs r1, r2 strh r1, [r0] ldrb r0, [r4] bl battle_side_get_owner ldr r2, _0802364C lsls r0, 24 lsrs r0, 24 lsls r1, r0, 1 adds r1, r0 lsls r1, 2 adds r1, r2 ldrb r0, [r1, 0x6] movs r1, 0x5 subs r1, r0 lsls r1, 25 lsrs r1, 24 ldr r5, _08023650 ldrb r0, [r4] muls r0, r7 add r0, r9 ldrh r0, [r0, 0x2C] bl __divsi3 str r0, [r5] cmp r0, 0 bne _08023614 movs r0, 0x1 str r0, [r5] _08023614: ldr r0, _08023654 ldrb r1, [r4] ldr r2, _08023658 adds r0, r2 strb r1, [r0] bl b_movescr_stack_push_cursor ldr r0, [r6] ldrb r0, [r0, 0x1] cmp r0, 0 bne _08023660 ldr r0, _0802365C str r0, [r6] b _080237B6 .align 2, 0 _08023630: .4byte 0x02024c10 _08023634: .4byte 0x02024a60 _08023638: .4byte 0x02024c6c _0802363C: .4byte gUnknown_0820872C _08023640: .4byte 0x02024d68 _08023644: .4byte 0x02024c7a _08023648: .4byte 0x02024a80 _0802364C: .4byte 0x02024c80 _08023650: .4byte 0x02024bec _08023654: .4byte 0x02000000 _08023658: .4byte 0x00016003 _0802365C: .4byte gUnknown_081D919F _08023660: cmp r0, 0x1 bne _08023670 ldr r0, _0802366C str r0, [r6] b _080237B6 .align 2, 0 _0802366C: .4byte gUnknown_081D9171 _08023670: ldr r0, _08023678 str r0, [r6] b _080237B6 .align 2, 0 _08023678: .4byte gUnknown_081D91CD _0802367C: ldr r1, _08023754 ldr r5, _08023758 ldrb r2, [r5] movs r0, 0x58 muls r0, r2 adds r0, r1 adds r0, 0x20 ldrb r0, [r0] cmp r0, 0x36 bne _080236A2 ldr r1, _0802375C lsls r0, r2, 3 subs r0, r2 lsls r0, 2 adds r0, r1 ldrb r1, [r0, 0x18] movs r2, 0x1 orrs r1, r2 strb r1, [r0, 0x18] _080236A2: ldrb r1, [r5] movs r0, 0 str r0, [sp] movs r2, 0 movs r3, 0 bl sub_8018324 lsls r0, 24 cmp r0, 0 beq _080236B8 b _080237B6 _080236B8: ldrb r1, [r5] movs r0, 0 movs r2, 0 bl sub_801A02C lsls r0, 24 cmp r0, 0 bne _080237B6 ldrb r0, [r5] bl battle_side_get_owner ldr r1, _08023760 lsls r0, 24 lsrs r0, 23 adds r0, r1 ldrh r2, [r0] ldr r1, _08023764 ands r1, r2 strh r1, [r0] movs r4, 0 ldr r0, _08023768 ldrb r3, [r0] cmp r4, r3 bge _08023706 ldr r6, _0802376C ldr r3, _08023770 movs r2, 0xC adds r1, r0, 0 _080236F0: adds r0, r4, r6 ldrb r0, [r0] ldrb r7, [r5] cmp r0, r7 bne _080236FE adds r0, r4, r3 strb r2, [r0] _080236FE: adds r4, 0x1 ldrb r0, [r1] cmp r4, r0 blt _080236F0 _08023706: movs r4, 0 ldr r0, _08023768 ldrb r0, [r0] cmp r4, r0 bge _08023736 ldr r5, _08023754 _08023712: lsls r0, r4, 24 lsrs r0, 24 bl battle_side_get_owner lsls r0, 24 lsrs r0, 23 ldr r1, _08023774 adds r0, r1 movs r1, 0x58 muls r1, r4 adds r1, r5 ldrh r1, [r1, 0x28] strh r1, [r0] adds r4, 0x1 ldr r0, _08023768 ldrb r0, [r0] cmp r4, r0 blt _08023712 _08023736: ldr r0, _08023778 ldr r1, [r0] ldrb r1, [r1, 0x1] adds r5, r0, 0 cmp r1, 0x5 bne _080237B0 ldr r0, _0802377C ldr r0, [r0] lsrs r4, r0, 28 ldr r1, _08023780 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] ldr r2, _08023784 b _08023796 .align 2, 0 _08023754: .4byte 0x02024a80 _08023758: .4byte 0x02024a60 _0802375C: .4byte 0x02024ca8 _08023760: .4byte 0x02024c7a _08023764: .4byte 0x0000fdff _08023768: .4byte 0x02024a68 _0802376C: .4byte 0x02024a7a _08023770: .4byte 0x02024a76 _08023774: .4byte 0x020160bc _08023778: .4byte 0x02024c10 _0802377C: .4byte 0x02024c6c _08023780: .4byte 0x02024c09 _08023784: .4byte gUnknown_0820872C _08023788: ldr r0, _080237C4 ldrb r3, [r1] ldrb r0, [r0] cmp r3, r0 bcs _080237B0 adds r0, r3, 0x1 strb r0, [r1] _08023796: ldrb r0, [r1] lsls r0, 2 adds r0, r2 ldr r3, [r0] adds r0, r4, 0 ands r0, r3 cmp r0, 0 beq _08023788 ldr r0, _080237C8 ldrb r0, [r0] ands r0, r3 cmp r0, 0 bne _08023788 _080237B0: ldr r0, [r5] adds r0, 0x2 str r0, [r5] _080237B6: add sp, 0x4 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080237C4: .4byte 0x02024a68 _080237C8: .4byte 0x02024c0c thumb_func_end sub_8023524 thumb_func_start sub_80237CC sub_80237CC: @ 80237CC push {lr} ldr r0, _080237DC ldr r0, [r0] ldrb r0, [r0, 0x1] cmp r0, 0 bne _080237E0 movs r0, 0 b _080237E2 .align 2, 0 _080237DC: .4byte 0x02024c10 _080237E0: movs r0, 0x1 _080237E2: bl battle_get_side_with_given_state ldr r1, _08023804 strb r0, [r1] movs r0, 0 bl dp01_build_cmdbuf_x08_8_8_8 ldr r0, _08023804 ldrb r0, [r0] bl dp01_battle_side_mark_buffer_for_execution ldr r1, _08023808 ldr r0, [r1] adds r0, 0x2 str r0, [r1] pop {r0} bx r0 .align 2, 0 _08023804: .4byte 0x02024a60 _08023808: .4byte 0x02024c10 thumb_func_end sub_80237CC thumb_func_start atk54_802511C atk54_802511C: @ 802380C push {r4,r5,lr} ldr r5, _0802383C ldr r0, _08023840 ldrb r0, [r0] strb r0, [r5] ldr r4, _08023844 ldr r0, [r4] ldrb r1, [r0, 0x1] ldrb r0, [r0, 0x2] lsls r0, 8 orrs r1, r0 movs r0, 0 bl dp01_build_cmdbuf_x2B_aa_0 ldrb r0, [r5] bl dp01_battle_side_mark_buffer_for_execution ldr r0, [r4] adds r0, 0x3 str r0, [r4] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0802383C: .4byte 0x02024a60 _08023840: .4byte 0x02024c07 _08023844: .4byte 0x02024c10 thumb_func_end atk54_802511C thumb_func_start sub_8023848 sub_8023848: @ 8023848 push {r4,r5,lr} ldr r5, _08023878 ldr r0, _0802387C ldrb r0, [r0] strb r0, [r5] ldr r4, _08023880 ldr r0, [r4] ldrb r1, [r0, 0x1] ldrb r0, [r0, 0x2] lsls r0, 8 orrs r1, r0 movs r0, 0 bl sub_800D074 ldrb r0, [r5] bl dp01_battle_side_mark_buffer_for_execution ldr r0, [r4] adds r0, 0x3 str r0, [r4] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08023878: .4byte 0x02024a60 _0802387C: .4byte 0x02024c07 _08023880: .4byte 0x02024c10 thumb_func_end sub_8023848 thumb_func_start atk56_8025194 atk56_8025194: @ 8023884 push {r4,r5,lr} ldr r5, _080238AC ldr r0, [r5] ldrb r0, [r0, 0x1] bl sub_8015150 ldr r4, _080238B0 strb r0, [r4] movs r0, 0 bl dp01_build_cmdbuf_x2D_2D_2D_2D ldrb r0, [r4] bl dp01_battle_side_mark_buffer_for_execution ldr r0, [r5] adds r0, 0x2 str r0, [r5] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080238AC: .4byte 0x02024c10 _080238B0: .4byte 0x02024a60 thumb_func_end atk56_8025194 thumb_func_start atk57_80251C4_flee atk57_80251C4_flee: @ 80238B4 push {r4,lr} movs r0, 0 bl battle_get_side_with_given_state ldr r4, _080238E0 strb r0, [r4] ldr r0, _080238E4 ldrb r1, [r0] movs r0, 0 bl dp01_build_cmdbuf_x37_a ldrb r0, [r4] bl dp01_battle_side_mark_buffer_for_execution ldr r1, _080238E8 ldr r0, [r1] adds r0, 0x1 str r0, [r1] pop {r4} pop {r0} bx r0 .align 2, 0 _080238E0: .4byte 0x02024a60 _080238E4: .4byte 0x02024d26 _080238E8: .4byte 0x02024c10 thumb_func_end atk57_80251C4_flee thumb_func_start atk58_cmd58 atk58_cmd58: @ 80238EC push {r4,r5,lr} ldr r5, _08023918 ldr r0, [r5] ldrb r0, [r0, 0x1] bl sub_8015150 ldr r4, _0802391C strb r0, [r4] movs r0, 0 movs r1, 0x1 bl dp01_build_cmdbuf_x06_a ldrb r0, [r4] bl dp01_battle_side_mark_buffer_for_execution ldr r0, [r5] adds r0, 0x2 str r0, [r5] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08023918: .4byte 0x02024c10 _0802391C: .4byte 0x02024a60 thumb_func_end atk58_cmd58 thumb_func_start atk59_8025230 atk59_8025230: @ 8023920 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} ldr r0, _0802399C ldr r2, [r0] ldrb r6, [r2, 0x1] ldrb r0, [r2, 0x2] lsls r0, 8 orrs r6, r0 ldrb r0, [r2, 0x3] lsls r0, 16 orrs r6, r0 ldrb r0, [r2, 0x4] lsls r0, 24 orrs r6, r0 ldrb r4, [r2, 0x5] ldrb r0, [r2, 0x6] lsls r0, 8 orrs r4, r0 ldrb r0, [r2, 0x7] lsls r0, 16 orrs r4, r0 ldrb r0, [r2, 0x8] lsls r0, 24 orrs r4, r0 ldr r0, _080239A0 ldr r1, _080239A4 adds r7, r0, r1 ldrb r1, [r7] movs r0, 0x64 muls r0, r1 ldr r1, _080239A8 adds r0, r1 ldrb r1, [r2, 0x9] bl sub_803B7C8 lsls r0, 16 lsrs r5, r0, 16 ldr r0, _080239AC cmp r5, r0 bne _08023992 mov r9, r7 mov r8, r5 movs r7, 0x64 _0802397A: mov r3, r9 ldrb r0, [r3] muls r0, r7 ldr r1, _080239A8 adds r0, r1 movs r1, 0 bl sub_803B7C8 lsls r0, 16 lsrs r5, r0, 16 cmp r5, r8 beq _0802397A _08023992: cmp r5, 0 bne _080239B0 ldr r0, _0802399C str r4, [r0] b _08023A58 .align 2, 0 _0802399C: .4byte 0x02024c10 _080239A0: .4byte 0x02000000 _080239A4: .4byte 0x00016018 _080239A8: .4byte 0x03004360 _080239AC: .4byte 0x0000fffe _080239B0: ldr r0, _080239C0 cmp r5, r0 bne _080239C8 ldr r1, _080239C4 ldr r0, [r1] adds r0, 0xA str r0, [r1] b _08023A58 .align 2, 0 _080239C0: .4byte 0x0000ffff _080239C4: .4byte 0x02024c10 _080239C8: movs r0, 0 bl battle_get_side_with_given_state ldr r1, _08023A64 strb r0, [r1] ldr r0, _08023A68 ldrb r2, [r1] lsls r1, r2, 1 adds r1, r0 ldr r0, _08023A6C ldr r3, _08023A70 adds r0, r3 ldrh r1, [r1] ldrb r0, [r0] cmp r1, r0 bne _08023A08 ldr r3, _08023A74 movs r0, 0x58 muls r2, r0 adds r0, r3, 0 adds r0, 0x50 adds r0, r2, r0 ldr r0, [r0] movs r1, 0x80 lsls r1, 14 ands r0, r1 cmp r0, 0 bne _08023A08 adds r0, r2, r3 adds r1, r5, 0 bl sub_803B660 _08023A08: ldr r0, _08023A78 ldrh r1, [r0] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _08023A54 movs r0, 0x2 bl battle_get_side_with_given_state ldr r1, _08023A64 strb r0, [r1] ldr r0, _08023A68 ldrb r2, [r1] lsls r1, r2, 1 adds r1, r0 ldr r0, _08023A6C ldr r3, _08023A70 adds r0, r3 ldrh r1, [r1] ldrb r0, [r0] cmp r1, r0 bne _08023A54 ldr r3, _08023A74 movs r0, 0x58 muls r2, r0 adds r0, r3, 0 adds r0, 0x50 adds r0, r2, r0 ldr r0, [r0] movs r1, 0x80 lsls r1, 14 ands r0, r1 cmp r0, 0 bne _08023A54 adds r0, r2, r3 adds r1, r5, 0 bl sub_803B660 _08023A54: ldr r0, _08023A7C str r6, [r0] _08023A58: pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08023A64: .4byte 0x02024a60 _08023A68: .4byte 0x02024a6a _08023A6C: .4byte 0x02000000 _08023A70: .4byte 0x00016018 _08023A74: .4byte 0x02024a80 _08023A78: .4byte 0x020239f8 _08023A7C: .4byte 0x02024c10 thumb_func_end atk59_8025230 thumb_func_start sub_8023A80 sub_8023A80: @ 8023A80 push {r4,lr} sub sp, 0x4 movs r0, 0 str r0, [sp] movs r0, 0x18 movs r1, 0x8 movs r2, 0x1D movs r3, 0xD bl sub_802BBD4 ldr r4, _08023AC8 ldr r1, _08023ACC movs r2, 0x80 lsls r2, 1 movs r0, 0x9 str r0, [sp] adds r0, r4, 0 movs r3, 0x19 bl InitWindow adds r0, r4, 0 bl sub_8002F44 ldr r1, _08023AD0 ldr r3, _08023AD4 movs r0, 0x20 str r0, [sp] movs r0, 0 movs r2, 0xC bl sub_814A5C0 add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _08023AC8: .4byte 0x03004210 _08023ACC: .4byte gUnknown_08400D7A _08023AD0: .4byte 0x0000ffff _08023AD4: .4byte 0x00002d9f thumb_func_end sub_8023A80 thumb_func_start sub_8023AD8 sub_8023AD8: @ 8023AD8 push {lr} sub sp, 0x4 movs r0, 0x1 str r0, [sp] movs r0, 0x18 movs r1, 0x8 movs r2, 0x1D movs r3, 0xD bl sub_802BBD4 bl sub_814A7FC add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_8023AD8 thumb_func_start sub_8023AF8 sub_8023AF8: @ 8023AF8 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x4 ldr r1, _08023B24 movs r0, 0 strb r0, [r1] ldr r1, _08023B28 ldr r2, _08023B2C adds r0, r1, r2 ldrb r0, [r0] adds r5, r1, 0 cmp r0, 0x5 bls _08023B18 b _08023E5C _08023B18: lsls r0, 2 ldr r1, _08023B30 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08023B24: .4byte 0x02024a60 _08023B28: .4byte 0x02000000 _08023B2C: .4byte 0x0001601a _08023B30: .4byte _08023B34 .align 2, 0 _08023B34: .4byte _08023B4C .4byte _08023B74 .4byte _08023C30 .4byte _08023C84 .4byte _08023E38 .4byte _08023E4C _08023B4C: bl sub_8023A80 ldr r1, _08023B68 ldr r0, _08023B6C adds r1, r0 ldrb r0, [r1] adds r0, 0x1 movs r2, 0 strb r0, [r1] ldr r0, _08023B70 strb r2, [r0, 0x1] bl sub_802BC6C b _08023E5C .align 2, 0 _08023B68: .4byte 0x02000000 _08023B6C: .4byte 0x0001601a _08023B70: .4byte 0x02024d1e _08023B74: ldr r0, _08023BFC ldrh r1, [r0, 0x2E] movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _08023B9A ldr r4, _08023C00 ldrb r0, [r4, 0x1] cmp r0, 0 beq _08023B9A movs r0, 0x5 bl audio_play bl nullsub_6 movs r0, 0 strb r0, [r4, 0x1] bl sub_802BC6C _08023B9A: ldr r0, _08023BFC ldrh r1, [r0, 0x2E] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _08023BC0 ldr r4, _08023C00 ldrb r0, [r4, 0x1] cmp r0, 0 bne _08023BC0 movs r0, 0x5 bl audio_play bl nullsub_6 movs r0, 0x1 strb r0, [r4, 0x1] bl sub_802BC6C _08023BC0: ldr r0, _08023BFC ldrh r1, [r0, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _08023C0C movs r0, 0x5 bl audio_play ldr r0, _08023C00 ldrb r4, [r0, 0x1] cmp r4, 0 bne _08023C1C bl sub_8023AD8 movs r0, 0x1 negs r0, r0 str r4, [sp] movs r1, 0 movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade ldr r1, _08023C04 ldr r2, _08023C08 adds r1, r2 ldrb r0, [r1] adds r0, 0x1 b _08023E5A .align 2, 0 _08023BFC: .4byte 0x03001770 _08023C00: .4byte 0x02024d1e _08023C04: .4byte 0x02000000 _08023C08: .4byte 0x0001601a _08023C0C: movs r0, 0x2 ands r0, r1 cmp r0, 0 bne _08023C16 b _08023E5C _08023C16: movs r0, 0x5 bl audio_play _08023C1C: ldr r0, _08023C28 ldr r1, _08023C2C adds r0, r1 movs r1, 0x4 strb r1, [r0] b _08023E5C .align 2, 0 _08023C28: .4byte 0x02000000 _08023C2C: .4byte 0x0001601a _08023C30: ldr r0, _08023C68 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _08023C3E b _08023E5C _08023C3E: ldr r0, _08023C6C ldr r2, _08023C70 adds r1, r5, r2 ldrb r1, [r1] ldr r2, _08023C74 ldrb r2, [r2] subs r2, 0x1 lsls r2, 24 lsrs r2, 24 ldr r3, _08023C78 ldr r4, _08023C7C ldrh r4, [r4] str r4, [sp] bl sub_809D9F0 ldr r0, _08023C80 adds r1, r5, r0 ldrb r0, [r1] adds r0, 0x1 b _08023E5A .align 2, 0 _08023C68: .4byte 0x0202f388 _08023C6C: .4byte 0x03004360 _08023C70: .4byte 0x00016018 _08023C74: .4byte 0x03004350 _08023C78: .4byte sub_807AD58 _08023C7C: .4byte 0x02024e82 _08023C80: .4byte 0x0001601a _08023C84: ldr r0, _08023CB4 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _08023C92 b _08023E5C _08023C92: ldr r0, _08023CB8 ldr r1, [r0, 0x4] ldr r0, _08023CBC cmp r1, r0 beq _08023C9E b _08023E5C _08023C9E: bl sub_809FA30 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0x4 bne _08023CC8 ldr r0, _08023CC0 ldr r1, _08023CC4 adds r0, r1 strb r5, [r0] b _08023E5C .align 2, 0 _08023CB4: .4byte 0x0202f388 _08023CB8: .4byte 0x03001770 _08023CBC: .4byte sub_800F808 _08023CC0: .4byte 0x02000000 _08023CC4: .4byte 0x0001601a _08023CC8: ldr r2, _08023D08 mov r9, r2 ldr r6, _08023D0C add r6, r9 ldrb r0, [r6] movs r1, 0x64 mov r8, r1 mov r2, r8 muls r2, r0 adds r0, r2, 0 ldr r7, _08023D10 adds r0, r7 adds r1, r5, 0 adds r1, 0xD bl PokemonGetField lsls r0, 16 lsrs r4, r0, 16 adds r0, r4, 0 bl sub_8040A00 cmp r0, 0 beq _08023D20 ldr r0, _08023D14 ldr r1, _08023D18 ldrb r1, [r1] bl b_std_message ldr r1, _08023D1C add r1, r9 movs r0, 0x5 b _08023E5A .align 2, 0 _08023D08: .4byte 0x02000000 _08023D0C: .4byte 0x00016018 _08023D10: .4byte 0x03004360 _08023D14: .4byte 0x0000013f _08023D18: .4byte 0x02024a60 _08023D1C: .4byte 0x0001601a _08023D20: ldr r3, _08023E10 ldr r2, [r3] ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x4] lsls r0, 24 orrs r1, r0 str r1, [r3] ldr r1, _08023E14 movs r0, 0xFD strb r0, [r1] movs r0, 0x2 strb r0, [r1, 0x1] strb r4, [r1, 0x2] lsrs r0, r4, 8 strb r0, [r1, 0x3] movs r0, 0xFF strb r0, [r1, 0x4] ldrb r0, [r6] mov r1, r8 muls r1, r0 adds r0, r1, 0 adds r0, r7 adds r1, r5, 0 bl sub_803DE34 ldrb r0, [r6] mov r2, r8 muls r2, r0 adds r0, r2, 0 adds r0, r7 ldr r7, _08023E18 ldrh r1, [r7] adds r2, r5, 0 bl sub_803B6A4 ldr r0, _08023E1C ldrh r0, [r0] ldrb r6, [r6] cmp r0, r6 bne _08023DB0 ldr r4, _08023E20 ldr r0, [r4, 0x50] movs r1, 0x80 lsls r1, 14 ands r0, r1 cmp r0, 0 bne _08023DB0 ldr r0, _08023E24 ldrb r1, [r0, 0x18] lsrs r1, 4 ldr r2, _08023E28 lsls r0, r5, 2 adds r0, r2 ldr r0, [r0] ands r1, r0 cmp r1, 0 bne _08023DB0 adds r0, r4, 0 adds r1, r5, 0 bl sub_803DE70 ldrh r1, [r7] adds r0, r4, 0 adds r2, r5, 0 bl sub_803B6E4 _08023DB0: ldr r0, _08023E2C ldrh r1, [r0] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _08023E5C ldr r0, _08023E1C ldr r1, _08023E30 ldr r2, _08023E34 adds r1, r2 ldrh r0, [r0, 0x4] ldrb r1, [r1] cmp r0, r1 bne _08023E5C ldr r4, _08023E20 movs r1, 0x80 lsls r1, 1 adds r0, r4, r1 ldr r0, [r0] movs r1, 0x80 lsls r1, 14 ands r0, r1 cmp r0, 0 bne _08023E5C ldr r0, _08023E24 adds r0, 0x50 ldrb r1, [r0] lsrs r1, 4 ldr r2, _08023E28 lsls r0, r5, 2 adds r0, r2 ldr r0, [r0] ands r1, r0 cmp r1, 0 bne _08023E5C adds r4, 0xB0 adds r0, r4, 0 adds r1, r5, 0 bl sub_803DE70 ldr r0, _08023E18 ldrh r1, [r0] adds r0, r4, 0 adds r2, r5, 0 bl sub_803B6E4 b _08023E5C .align 2, 0 _08023E10: .4byte 0x02024c10 _08023E14: .4byte 0x03004290 _08023E18: .4byte 0x02024e82 _08023E1C: .4byte 0x02024a6a _08023E20: .4byte 0x02024a80 _08023E24: .4byte 0x02024ca8 _08023E28: .4byte gUnknown_0820872C _08023E2C: .4byte 0x020239f8 _08023E30: .4byte 0x02000000 _08023E34: .4byte 0x00016018 _08023E38: bl sub_8023AD8 ldr r1, _08023E48 ldr r0, [r1] adds r0, 0x5 str r0, [r1] b _08023E5C .align 2, 0 _08023E48: .4byte 0x02024c10 _08023E4C: ldr r0, _08023E6C ldr r0, [r0] cmp r0, 0 bne _08023E5C ldr r2, _08023E70 adds r1, r5, r2 movs r0, 0x2 _08023E5A: strb r0, [r1] _08023E5C: add sp, 0x4 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08023E6C: .4byte 0x02024a64 _08023E70: .4byte 0x0001601a thumb_func_end sub_8023AF8 thumb_func_start atk5B_80256E0 atk5B_80256E0: @ 8023E74 push {r4,r5,lr} ldr r0, _08023E88 ldr r1, _08023E8C adds r5, r0, r1 ldrb r4, [r5] cmp r4, 0 beq _08023E90 cmp r4, 0x1 beq _08023EA8 b _08023F78 .align 2, 0 _08023E88: .4byte 0x02000000 _08023E8C: .4byte 0x0001601a _08023E90: bl sub_8023A80 ldrb r0, [r5] adds r0, 0x1 strb r0, [r5] ldr r0, _08023EA4 strb r4, [r0, 0x1] bl sub_802BC6C b _08023F78 .align 2, 0 _08023EA4: .4byte 0x02024d1e _08023EA8: ldr r0, _08023F2C ldrh r1, [r0, 0x2E] movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _08023ECE ldr r4, _08023F30 ldrb r0, [r4, 0x1] cmp r0, 0 beq _08023ECE movs r0, 0x5 bl audio_play bl nullsub_6 movs r0, 0 strb r0, [r4, 0x1] bl sub_802BC6C _08023ECE: ldr r0, _08023F2C ldrh r1, [r0, 0x2E] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _08023EF4 ldr r4, _08023F30 ldrb r0, [r4, 0x1] cmp r0, 0 bne _08023EF4 movs r0, 0x5 bl audio_play bl nullsub_6 movs r0, 0x1 strb r0, [r4, 0x1] bl sub_802BC6C _08023EF4: ldr r0, _08023F2C ldrh r1, [r0, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _08023F4C movs r0, 0x5 bl audio_play ldr r0, _08023F30 ldrb r0, [r0, 0x1] cmp r0, 0 beq _08023F38 ldr r3, _08023F34 ldr r2, [r3] ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x4] lsls r0, 24 orrs r1, r0 str r1, [r3] b _08023F40 .align 2, 0 _08023F2C: .4byte 0x03001770 _08023F30: .4byte 0x02024d1e _08023F34: .4byte 0x02024c10 _08023F38: ldr r1, _08023F48 ldr r0, [r1] adds r0, 0x5 str r0, [r1] _08023F40: bl sub_8023AD8 b _08023F78 .align 2, 0 _08023F48: .4byte 0x02024c10 _08023F4C: movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _08023F78 movs r0, 0x5 bl audio_play ldr r3, _08023F80 ldr r2, [r3] ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x4] lsls r0, 24 orrs r1, r0 str r1, [r3] bl sub_8023AD8 _08023F78: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08023F80: .4byte 0x02024c10 thumb_func_end atk5B_80256E0 thumb_func_start atk5C_cmd5c atk5C_cmd5c: @ 8023F84 push {r4,lr} ldr r4, _08023FF0 ldr r0, [r4] ldrb r0, [r0, 0x1] bl sub_8015150 ldr r2, _08023FF4 strb r0, [r2] ldr r0, _08023FF8 ldrb r1, [r0] movs r0, 0x29 ands r0, r1 cmp r0, 0 bne _08024008 ldr r0, _08023FFC ldr r0, [r0] movs r1, 0x80 lsls r1, 1 ands r0, r1 cmp r0, 0 beq _08023FD6 ldr r1, _08024000 ldrb r2, [r2] movs r0, 0x58 muls r0, r2 adds r1, 0x50 adds r0, r1 ldr r0, [r0] movs r1, 0x80 lsls r1, 17 ands r0, r1 cmp r0, 0 beq _08023FD6 ldr r0, _08024004 lsls r1, r2, 3 subs r1, r2 lsls r1, 2 adds r1, r0 ldrb r0, [r1, 0xA] cmp r0, 0 bne _08024008 _08023FD6: movs r0, 0 bl dp01_build_cmdbuf_x29_29_29_29 ldr r0, _08023FF4 ldrb r0, [r0] bl dp01_battle_side_mark_buffer_for_execution ldr r1, _08023FF0 ldr r0, [r1] adds r0, 0x2 str r0, [r1] b _0802400E .align 2, 0 _08023FF0: .4byte 0x02024c10 _08023FF4: .4byte 0x02024a60 _08023FF8: .4byte 0x02024c68 _08023FFC: .4byte 0x02024c6c _08024000: .4byte 0x02024a80 _08024004: .4byte 0x02024ca8 _08024008: ldr r0, [r4] adds r0, 0x2 str r0, [r4] _0802400E: pop {r4} pop {r0} bx r0 thumb_func_end atk5C_cmd5c thumb_func_start sub_8024014 sub_8024014: @ 8024014 push {r4-r7,lr} mov r7, r8 push {r7} movs r6, 0 movs r5, 0 ldr r0, _08024048 ldrh r2, [r0] movs r1, 0x80 lsls r1, 3 cmp r2, r1 bne _08024058 ldr r0, _0802404C adds r1, r0, 0 adds r1, 0x94 ldrb r2, [r1] ldr r1, _08024050 adds r0, r1 ldrb r1, [r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 2 adds r4, r2, 0 muls r4, r0 ldr r0, _08024054 mov r8, r0 b _08024140 .align 2, 0 _08024048: .4byte 0x0202ff5e _0802404C: .4byte 0x02017000 _08024050: .4byte 0xfffff056 _08024054: .4byte 0x02025bc4 _08024058: ldr r2, _08024074 ldrh r1, [r0] lsls r0, r1, 2 adds r0, r1 lsls r3, r0, 3 adds r4, r3, r2 ldrb r1, [r4] cmp r1, 0x1 beq _080240AE cmp r1, 0x1 bgt _08024078 cmp r1, 0 beq _08024082 b _080240C4 .align 2, 0 _08024074: .4byte gTrainers _08024078: cmp r1, 0x2 beq _08024098 cmp r1, 0x3 beq _080240AE b _080240C4 _08024082: adds r0, r2, 0 adds r0, 0x24 adds r0, r3, r0 ldr r1, [r0] adds r0, r4, 0 adds r0, 0x20 ldrb r0, [r0] lsls r0, 3 adds r0, r1 subs r0, 0x8 b _080240C2 _08024098: adds r0, r2, 0 adds r0, 0x24 adds r0, r3, r0 ldr r1, [r0] adds r0, r4, 0 adds r0, 0x20 ldrb r0, [r0] lsls r0, 3 adds r0, r1 subs r0, 0x8 b _080240C2 _080240AE: adds r0, r2, 0 adds r0, 0x24 adds r0, r3, r0 ldr r1, [r0] adds r0, r4, 0 adds r0, 0x20 ldrb r0, [r0] lsls r0, 4 adds r0, r1 subs r0, 0x10 _080240C2: ldrb r5, [r0, 0x2] _080240C4: ldr r0, _08024120 lsls r1, r6, 2 adds r3, r1, r0 ldrb r1, [r3] mov r12, r0 lsls r4, r5, 2 ldr r5, _08024124 ldr r7, _08024128 ldr r0, _0802412C mov r8, r0 cmp r1, 0xFF beq _080240FE ldr r2, _08024130 ldr r0, _08024134 ldrh r1, [r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r2 ldrb r2, [r0, 0x1] adds r1, r3, 0 _080240EE: ldrb r0, [r1] cmp r0, r2 beq _080240FE adds r1, 0x4 adds r6, 0x1 ldrb r0, [r1] cmp r0, 0xFF bne _080240EE _080240FE: ldr r1, _08024138 adds r0, r5, r1 ldrb r0, [r0] adds r3, r4, 0 muls r3, r0 lsls r0, r6, 2 add r0, r12 ldrb r2, [r0, 0x1] ldrh r1, [r7] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _0802413C lsls r0, r2, 1 adds r4, r3, 0 muls r4, r0 b _08024140 .align 2, 0 _08024120: .4byte gUnknown_081F98F0 _08024124: .4byte 0x02000000 _08024128: .4byte 0x020239f8 _0802412C: .4byte 0x02025bc4 _08024130: .4byte gTrainers _08024134: .4byte 0x0202ff5e _08024138: .4byte 0x00016056 _0802413C: adds r4, r3, 0 muls r4, r2 _08024140: mov r0, r8 adds r1, r4, 0 bl sub_80B79B8 ldr r1, _0802418C movs r0, 0xFD strb r0, [r1] movs r0, 0x1 strb r0, [r1, 0x1] movs r0, 0x4 strb r0, [r1, 0x2] movs r0, 0x5 strb r0, [r1, 0x3] strb r4, [r1, 0x4] movs r0, 0xFF lsls r0, 8 ands r0, r4 lsrs r0, 8 strb r0, [r1, 0x5] movs r0, 0xFF lsls r0, 16 ands r0, r4 lsrs r0, 16 strb r0, [r1, 0x6] lsrs r0, r4, 24 strb r0, [r1, 0x7] movs r0, 0xFF strb r0, [r1, 0x8] ldr r1, _08024190 ldr r0, [r1] adds r0, 0x1 str r0, [r1] pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0802418C: .4byte 0x030041c0 _08024190: .4byte 0x02024c10 thumb_func_end sub_8024014 thumb_func_start atk5E_8025A70 atk5E_8025A70: @ 8024194 push {r4-r7,lr} mov r7, r8 push {r7} ldr r4, _080241B8 ldr r0, [r4] ldrb r0, [r0, 0x1] bl sub_8015150 ldr r6, _080241BC strb r0, [r6] ldr r5, _080241C0 ldrb r0, [r5] mov r8, r4 cmp r0, 0 beq _080241C4 cmp r0, 0x1 beq _080241DC b _08024230 .align 2, 0 _080241B8: .4byte 0x02024c10 _080241BC: .4byte 0x02024a60 _080241C0: .4byte 0x02024d1e _080241C4: movs r0, 0 movs r1, 0 movs r2, 0 bl dp01_build_cmdbuf_x00_a_b_0 ldrb r0, [r6] bl dp01_battle_side_mark_buffer_for_execution ldrb r0, [r5] adds r0, 0x1 strb r0, [r5] b _08024230 _080241DC: ldr r0, _0802423C ldr r0, [r0] cmp r0, 0 bne _08024230 ldrb r0, [r6] lsls r0, 9 ldr r1, _08024240 adds r0, r1 mov r12, r0 movs r2, 0 adds r4, r6, 0 movs r5, 0x58 ldr r6, _08024244 adds r7, r6, 0 subs r7, 0x18 mov r3, r12 adds r3, 0xC _080241FE: lsls r1, r2, 1 ldrb r0, [r4] muls r0, r5 adds r1, r0 adds r1, r7 ldrh r0, [r3] strh r0, [r1] ldrb r0, [r4] adds r1, r0, 0 muls r1, r5 adds r1, r2, r1 adds r1, r6 mov r0, r12 adds r0, 0x24 adds r0, r2 ldrb r0, [r0] strb r0, [r1] adds r3, 0x2 adds r2, 0x1 cmp r2, 0x3 ble _080241FE mov r1, r8 ldr r0, [r1] adds r0, 0x2 str r0, [r1] _08024230: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0802423C: .4byte 0x02024a64 _08024240: .4byte 0x02024264 _08024244: .4byte 0x02024aa4 thumb_func_end atk5E_8025A70 thumb_func_start atk5F_8025B24 atk5F_8025B24: @ 8024248 push {lr} ldr r0, _08024270 ldr r2, _08024274 ldrb r3, [r2] strb r3, [r0] ldr r1, _08024278 ldrb r0, [r1] strb r0, [r2] strb r3, [r1] ldr r2, _0802427C ldr r1, [r2] movs r3, 0x80 lsls r3, 5 adds r0, r1, 0 ands r0, r3 cmp r0, 0 beq _08024284 ldr r0, _08024280 ands r1, r0 b _08024286 .align 2, 0 _08024270: .4byte 0x02024a60 _08024274: .4byte 0x02024c07 _08024278: .4byte 0x02024c08 _0802427C: .4byte 0x02024c6c _08024280: .4byte 0xffffefff _08024284: orrs r1, r3 _08024286: str r1, [r2] ldr r1, _08024294 ldr r0, [r1] adds r0, 0x1 str r0, [r1] pop {r0} bx r0 .align 2, 0 _08024294: .4byte 0x02024c10 thumb_func_end atk5F_8025B24 thumb_func_start atk60_cmd60 atk60_cmd60: @ 8024298 push {lr} ldr r0, _080242C0 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 bne _080242B2 ldr r0, _080242C4 ldr r0, [r0] ldrb r0, [r0, 0x1] bl sav12_xor_increment _080242B2: ldr r1, _080242C4 ldr r0, [r1] adds r0, 0x2 str r0, [r1] pop {r0} bx r0 .align 2, 0 _080242C0: .4byte 0x02024c07 _080242C4: .4byte 0x02024c10 thumb_func_end atk60_cmd60 thumb_func_start atk61_8025BA4 atk61_8025BA4: @ 80242C8 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x30 ldr r0, _0802432C ldr r0, [r0] cmp r0, 0 bne _0802437C ldr r0, _08024330 ldr r0, [r0] ldrb r0, [r0, 0x1] bl sub_8015150 ldr r1, _08024334 strb r0, [r1] ldrb r0, [r1] bl battle_side_get_owner lsls r0, 24 ldr r1, _08024338 mov r8, r1 cmp r0, 0 bne _080242FA ldr r0, _0802433C mov r8, r0 _080242FA: movs r7, 0 add r6, sp, 0x4 mov r5, sp _08024300: movs r0, 0x64 muls r0, r7 mov r1, r8 adds r4, r1, r0 adds r0, r4, 0 movs r1, 0x41 bl PokemonGetField cmp r0, 0 beq _08024324 adds r0, r4, 0 movs r1, 0x41 bl PokemonGetField movs r1, 0xCE lsls r1, 1 cmp r0, r1 bne _08024344 _08024324: ldr r0, _08024340 strh r0, [r5] movs r0, 0 b _08024356 .align 2, 0 _0802432C: .4byte 0x02024a64 _08024330: .4byte 0x02024c10 _08024334: .4byte 0x02024a60 _08024338: .4byte 0x030045c0 _0802433C: .4byte 0x03004360 _08024340: .4byte 0x0000ffff _08024344: adds r0, r4, 0 movs r1, 0x39 bl PokemonGetField strh r0, [r5] adds r0, r4, 0 movs r1, 0x37 bl PokemonGetField _08024356: str r0, [r6] adds r6, 0x8 adds r5, 0x8 adds r7, 0x1 cmp r7, 0x5 ble _08024300 movs r0, 0 mov r1, sp movs r2, 0x1 bl dp01_build_cmdbuf_x30_TODO ldr r0, _08024388 ldrb r0, [r0] bl dp01_battle_side_mark_buffer_for_execution ldr r1, _0802438C ldr r0, [r1] adds r0, 0x2 str r0, [r1] _0802437C: add sp, 0x30 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08024388: .4byte 0x02024a60 _0802438C: .4byte 0x02024c10 thumb_func_end atk61_8025BA4 thumb_func_start atk62_08025C6C atk62_08025C6C: @ 8024390 push {r4,r5,lr} ldr r5, _080243B8 ldr r0, [r5] ldrb r0, [r0, 0x1] bl sub_8015150 ldr r4, _080243BC strb r0, [r4] movs r0, 0 bl dp01_build_cmdbuf_x31_31_31_31 ldrb r0, [r4] bl dp01_battle_side_mark_buffer_for_execution ldr r0, [r5] adds r0, 0x2 str r0, [r5] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080243B8: .4byte 0x02024c10 _080243BC: .4byte 0x02024a60 thumb_func_end atk62_08025C6C thumb_func_start atk63_jumptoattack atk63_jumptoattack: @ 80243C0 push {r4,lr} ldr r0, _080243D8 ldr r1, [r0] ldrb r1, [r1, 0x1] adds r4, r0, 0 cmp r1, 0 beq _080243E4 ldr r0, _080243DC ldr r1, _080243E0 ldrh r1, [r1] strh r1, [r0] b _080243F2 .align 2, 0 _080243D8: .4byte 0x02024c10 _080243DC: .4byte 0x02024be6 _080243E0: .4byte 0x02024bea _080243E4: ldr r2, _08024410 ldr r1, _08024414 ldr r0, _08024418 ldrh r0, [r0] strh r0, [r1] strh r0, [r2] adds r0, r1, 0 _080243F2: ldr r3, _0802441C ldr r2, _08024420 ldrh r1, [r0] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r0, [r0] lsls r0, 2 adds r0, r3 ldr r0, [r0] str r0, [r4] pop {r4} pop {r0} bx r0 .align 2, 0 _08024410: .4byte 0x02024be8 _08024414: .4byte 0x02024be6 _08024418: .4byte 0x02024bea _0802441C: .4byte gUnknown_081D6BBC _08024420: .4byte gBattleMoves thumb_func_end atk63_jumptoattack thumb_func_start atk64_statusanimation atk64_statusanimation: @ 8024424 push {r4,lr} ldr r0, _08024494 ldr r0, [r0] cmp r0, 0 bne _0802448C ldr r0, _08024498 ldr r0, [r0] ldrb r0, [r0, 0x1] bl sub_8015150 ldr r4, _0802449C strb r0, [r4] ldr r1, _080244A0 ldrb r2, [r4] lsls r0, r2, 2 adds r0, r1 ldr r0, [r0] ldr r1, _080244A4 ands r0, r1 cmp r0, 0 bne _08024484 ldr r0, _080244A8 lsls r1, r2, 3 subs r1, r2 lsls r1, 2 adds r1, r0 ldrb r0, [r1, 0xA] cmp r0, 0 bne _08024484 ldr r0, _080244AC ldr r0, [r0] movs r1, 0x80 ands r0, r1 cmp r0, 0 bne _08024484 ldr r1, _080244B0 movs r0, 0x58 muls r0, r2 adds r1, 0x4C adds r0, r1 ldr r2, [r0] movs r0, 0 movs r1, 0 bl dp01_build_cmdbuf_x1B_aaaa_b ldrb r0, [r4] bl dp01_battle_side_mark_buffer_for_execution _08024484: ldr r1, _08024498 ldr r0, [r1] adds r0, 0x2 str r0, [r1] _0802448C: pop {r4} pop {r0} bx r0 .align 2, 0 _08024494: .4byte 0x02024a64 _08024498: .4byte 0x02024c10 _0802449C: .4byte 0x02024a60 _080244A0: .4byte 0x02024c98 _080244A4: .4byte 0x000400c0 _080244A8: .4byte 0x02024ca8 _080244AC: .4byte 0x02024c6c _080244B0: .4byte 0x02024a80 thumb_func_end atk64_statusanimation thumb_func_start atk65_8025D90 atk65_8025D90: @ 80244B4 push {r4,r5,lr} ldr r0, _0802453C ldr r0, [r0] cmp r0, 0 bne _08024534 ldr r4, _08024540 ldr r0, [r4] ldrb r0, [r0, 0x1] bl sub_8015150 ldr r5, _08024544 strb r0, [r5] ldr r1, [r4] ldrb r3, [r1, 0x2] ldrb r0, [r1, 0x3] lsls r0, 8 orrs r3, r0 ldrb r0, [r1, 0x4] lsls r0, 16 orrs r3, r0 ldrb r0, [r1, 0x5] lsls r0, 24 orrs r3, r0 ldr r1, _08024548 ldrb r2, [r5] lsls r0, r2, 2 adds r0, r1 ldr r0, [r0] ldr r1, _0802454C ands r0, r1 cmp r0, 0 bne _0802452C ldr r0, _08024550 lsls r1, r2, 3 subs r1, r2 lsls r1, 2 adds r1, r0 ldrb r0, [r1, 0xA] cmp r0, 0 bne _0802452C ldr r0, _08024554 ldr r0, [r0] movs r1, 0x80 ands r0, r1 cmp r0, 0 bne _0802452C ldr r1, _08024558 movs r0, 0x58 muls r0, r2 adds r1, 0x50 adds r0, r1 ldr r2, [r0] ands r2, r3 movs r0, 0 movs r1, 0x1 bl dp01_build_cmdbuf_x1B_aaaa_b ldrb r0, [r5] bl dp01_battle_side_mark_buffer_for_execution _0802452C: ldr r1, _08024540 ldr r0, [r1] adds r0, 0x6 str r0, [r1] _08024534: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0802453C: .4byte 0x02024a64 _08024540: .4byte 0x02024c10 _08024544: .4byte 0x02024a60 _08024548: .4byte 0x02024c98 _0802454C: .4byte 0x000400c0 _08024550: .4byte 0x02024ca8 _08024554: .4byte 0x02024c6c _08024558: .4byte 0x02024a80 thumb_func_end atk65_8025D90 thumb_func_start atk66_8025E38 atk66_8025E38: @ 802455C push {r4,r5,lr} ldr r0, _080245D4 ldr r0, [r0] cmp r0, 0 bne _080245CE ldr r4, _080245D8 ldr r0, [r4] ldrb r0, [r0, 0x1] bl sub_8015150 ldr r5, _080245DC strb r0, [r5] ldr r4, [r4] ldrb r2, [r4, 0x3] ldrb r0, [r4, 0x4] lsls r0, 8 orrs r2, r0 ldrb r0, [r4, 0x5] lsls r0, 16 orrs r2, r0 ldrb r0, [r4, 0x6] lsls r0, 24 orrs r2, r0 ldr r1, _080245E0 ldrb r3, [r5] lsls r0, r3, 2 adds r0, r1 ldr r0, [r0] ldr r1, _080245E4 ands r0, r1 cmp r0, 0 bne _080245C6 ldr r0, _080245E8 lsls r1, r3, 3 subs r1, r3 lsls r1, 2 adds r1, r0 ldrb r0, [r1, 0xA] cmp r0, 0 bne _080245C6 ldr r0, _080245EC ldr r0, [r0] movs r1, 0x80 ands r0, r1 cmp r0, 0 bne _080245C6 ldrb r1, [r4, 0x2] movs r0, 0 bl dp01_build_cmdbuf_x1B_aaaa_b ldrb r0, [r5] bl dp01_battle_side_mark_buffer_for_execution _080245C6: ldr r1, _080245D8 ldr r0, [r1] adds r0, 0x7 str r0, [r1] _080245CE: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080245D4: .4byte 0x02024a64 _080245D8: .4byte 0x02024c10 _080245DC: .4byte 0x02024a60 _080245E0: .4byte 0x02024c98 _080245E4: .4byte 0x000400c0 _080245E8: .4byte 0x02024ca8 _080245EC: .4byte 0x02024c6c thumb_func_end atk66_8025E38 thumb_func_start atk67_8025ECC atk67_8025ECC: @ 80245F0 push {r4,r5,lr} ldr r5, _08024600 ldrb r4, [r5] cmp r4, 0 beq _08024604 cmp r4, 0x1 beq _08024616 b _08024696 .align 2, 0 _08024600: .4byte 0x02024d1e _08024604: bl sub_8023A80 ldrb r0, [r5] adds r0, 0x1 strb r0, [r5] strb r4, [r5, 0x1] bl sub_802BC6C b _08024696 _08024616: ldr r0, _08024674 ldrh r1, [r0, 0x2E] movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _0802463A ldrb r0, [r5, 0x1] cmp r0, 0 beq _0802463A movs r0, 0x5 bl audio_play bl nullsub_6 movs r0, 0 strb r0, [r5, 0x1] bl sub_802BC6C _0802463A: ldr r0, _08024674 ldrh r1, [r0, 0x2E] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _08024660 ldr r4, _08024678 ldrb r0, [r4, 0x1] cmp r0, 0 bne _08024660 movs r0, 0x5 bl audio_play bl nullsub_6 movs r0, 0x1 strb r0, [r4, 0x1] bl sub_802BC6C _08024660: ldr r0, _08024674 ldrh r1, [r0, 0x2E] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _0802467C ldr r1, _08024678 movs r0, 0x1 strb r0, [r1, 0x1] b _08024684 .align 2, 0 _08024674: .4byte 0x03001770 _08024678: .4byte 0x02024d1e _0802467C: movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _08024696 _08024684: movs r0, 0x5 bl audio_play bl sub_8023AD8 ldr r1, _0802469C ldr r0, [r1] adds r0, 0x1 str r0, [r1] _08024696: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0802469C: .4byte 0x02024c10 thumb_func_end atk67_8025ECC thumb_func_start sub_80246A0 sub_80246A0: @ 80246A0 push {r4,r5,lr} movs r1, 0 ldr r2, _080246CC ldr r5, _080246D0 ldrb r0, [r2] cmp r1, r0 bge _080246BE ldr r4, _080246D4 movs r3, 0xC _080246B2: adds r0, r1, r4 strb r3, [r0] adds r1, 0x1 ldrb r0, [r2] cmp r1, r0 blt _080246B2 _080246BE: ldr r0, [r5] adds r0, 0x1 str r0, [r5] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080246CC: .4byte 0x02024a68 _080246D0: .4byte 0x02024c10 _080246D4: .4byte 0x02024a76 thumb_func_end sub_80246A0 thumb_func_start atk69_8025FE0 atk69_8025FE0: @ 80246D8 push {r4-r7,lr} ldr r7, _08024700 ldr r6, _08024704 ldrb r2, [r6] movs r5, 0x58 adds r0, r2, 0 muls r0, r5 adds r1, r0, r7 ldrh r0, [r1, 0x2E] cmp r0, 0xAF bne _0802470C ldr r1, _08024708 lsls r0, r2, 3 subs r0, r2 lsls r0, 2 adds r0, r1 ldrb r4, [r0, 0x7] ldrb r6, [r0, 0x1A] b _08024726 .align 2, 0 _08024700: .4byte 0x02024a80 _08024704: .4byte 0x02024c08 _08024708: .4byte 0x02024df0 _0802470C: ldrh r0, [r1, 0x2E] bl itemid_get_x12 lsls r0, 24 lsrs r4, r0, 24 ldrb r0, [r6] muls r0, r5 adds r0, r7 ldrh r0, [r0, 0x2E] bl itemid_get_quality lsls r0, 24 lsrs r6, r0, 24 _08024726: ldr r1, _080247E8 ldr r5, _080247EC ldrb r0, [r5] strb r0, [r1] cmp r4, 0x27 bne _08024764 bl Random lsls r0, 16 lsrs r0, 16 movs r1, 0x64 bl __umodsi3 lsls r0, 16 lsrs r0, 16 cmp r0, r6 bcs _08024764 ldrb r0, [r5] movs r1, 0x27 bl sub_81074F8 ldr r2, _080247F0 ldrb r1, [r5] lsls r0, r1, 2 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r1, [r0] movs r2, 0x80 orrs r1, r2 strb r1, [r0] _08024764: ldr r2, _080247F4 ldr r3, _080247EC ldrb r4, [r3] movs r0, 0x58 muls r0, r4 adds r1, r2, 0 adds r1, 0x50 adds r0, r1 ldr r1, [r0] movs r0, 0x80 lsls r0, 17 ands r1, r0 adds r5, r2, 0 cmp r1, 0 bne _08024834 ldr r2, _080247F8 ldr r0, _080247FC ldrh r1, [r0] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r0, [r0] cmp r0, 0x65 beq _080247B6 ldr r0, _08024800 lsls r1, r4, 4 adds r1, r0 ldrb r0, [r1] lsls r0, 30 cmp r0, 0 blt _080247B6 ldr r0, _080247F0 lsls r1, r4, 2 adds r1, r4 lsls r1, 2 adds r1, r0 ldrb r0, [r1] lsrs r0, 7 cmp r0, 0 beq _08024834 _080247B6: ldrb r0, [r3] movs r4, 0x58 muls r0, r4 adds r0, r5 ldrh r1, [r0, 0x28] ldr r2, _08024804 ldr r0, [r2] cmp r1, r0 bgt _08024834 subs r0, r1, 0x1 str r0, [r2] ldr r1, _08024800 ldrb r3, [r3] lsls r0, r3, 4 adds r0, r1 ldrb r0, [r0] lsls r0, 30 cmp r0, 0 bge _0802480C ldr r0, _08024808 ldrb r1, [r0] movs r2, 0x40 orrs r1, r2 strb r1, [r0] b _08024834 .align 2, 0 _080247E8: .4byte 0x02024c0b _080247EC: .4byte 0x02024c08 _080247F0: .4byte 0x02024d68 _080247F4: .4byte 0x02024a80 _080247F8: .4byte gBattleMoves _080247FC: .4byte 0x02024be6 _08024800: .4byte 0x02024d28 _08024804: .4byte 0x02024bec _08024808: .4byte 0x02024c68 _0802480C: ldr r0, _08024844 lsls r1, r3, 2 adds r1, r3 lsls r1, 2 adds r1, r0 ldrb r0, [r1] lsrs r0, 7 cmp r0, 0 beq _08024834 ldr r2, _08024848 ldrb r0, [r2] movs r1, 0x80 orrs r0, r1 strb r0, [r2] ldr r1, _0802484C adds r0, r3, 0 muls r0, r4 adds r0, r5 ldrh r0, [r0, 0x2E] strh r0, [r1] _08024834: ldr r1, _08024850 ldr r0, [r1] adds r0, 0x1 str r0, [r1] pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08024844: .4byte 0x02024d68 _08024848: .4byte 0x02024c68 _0802484C: .4byte 0x02024c04 _08024850: .4byte 0x02024c10 thumb_func_end atk69_8025FE0 thumb_func_start atk6A_stash_item_for_side atk6A_stash_item_for_side: @ 8024854 push {r4-r6,lr} sub sp, 0x4 ldr r6, _080248B0 ldr r0, [r6] ldrb r0, [r0, 0x1] bl sub_8015150 ldr r5, _080248B4 strb r0, [r5] ldrb r4, [r5] lsls r1, r4, 1 ldr r0, _080248B8 adds r1, r0 ldr r2, _080248BC movs r3, 0x58 adds r0, r4, 0 muls r0, r3 adds r0, r2 ldrh r0, [r0, 0x2E] strh r0, [r1] ldrb r0, [r5] muls r0, r3 adds r0, r2 movs r1, 0 strh r1, [r0, 0x2E] ldrb r0, [r5] muls r0, r3 adds r2, 0x2E adds r0, r2 str r0, [sp] movs r0, 0 movs r1, 0x2 movs r2, 0 movs r3, 0x2 bl dp01_build_cmdbuf_x02_a_b_varargs ldrb r0, [r5] bl dp01_battle_side_mark_buffer_for_execution ldr r0, [r6] adds r0, 0x2 str r0, [r6] add sp, 0x4 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080248B0: .4byte 0x02024c10 _080248B4: .4byte 0x02024a60 _080248B8: .4byte 0x020160cc _080248BC: .4byte 0x02024a80 thumb_func_end atk6A_stash_item_for_side thumb_func_start sub_80248C0 sub_80248C0: @ 80248C0 ldr r1, _080248EC movs r0, 0xFD strb r0, [r1] movs r0, 0x7 strb r0, [r1, 0x1] ldr r2, _080248F0 ldrb r0, [r2] strb r0, [r1, 0x2] ldr r3, _080248F4 ldrb r0, [r2] lsls r0, 1 adds r0, r3 ldrh r0, [r0] strb r0, [r1, 0x3] movs r0, 0xFF strb r0, [r1, 0x4] ldr r1, _080248F8 ldr r0, [r1] adds r0, 0x1 str r0, [r1] bx lr .align 2, 0 _080248EC: .4byte 0x030041c0 _080248F0: .4byte 0x02024c07 _080248F4: .4byte 0x02024a6a _080248F8: .4byte 0x02024c10 thumb_func_end sub_80248C0 thumb_func_start sub_80248FC sub_80248FC: @ 80248FC push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x4 movs r1, 0 movs r7, 0 ldr r0, _08024928 mov r10, r0 ldr r4, _0802492C add r4, r10 ldrb r0, [r4] cmp r0, 0x1 bne _0802491C b _08024AF4 _0802491C: cmp r0, 0x1 bgt _08024930 cmp r0, 0 beq _0802493E b _08024C38 .align 2, 0 _08024928: .4byte 0x02000000 _0802492C: .4byte 0x0001609c _08024930: cmp r0, 0x2 bne _08024936 b _08024C04 _08024936: cmp r0, 0x3 bne _0802493C b _08024C30 _0802493C: b _08024C38 _0802493E: str r1, [sp] movs r0, 0xB movs r1, 0 movs r2, 0x1D movs r3, 0x7 bl sub_802BBD4 ldr r0, _0802499C ldr r1, _080249A0 bl StringCopy adds r5, r0, 0 movs r1, 0 mov r8, r1 _0802495A: movs r2, 0 mov r9, r2 ldr r0, _080249A4 mov r1, r8 lsls r4, r1, 2 adds r0, r4, r0 ldr r1, [r0] adds r0, r5, 0 bl StringAppend adds r5, r0, 0 ldr r0, _080249A8 ldr r2, _080249AC adds r0, r2 ldrb r1, [r0] movs r0, 0x64 muls r0, r1 ldr r1, _080249B0 adds r0, r1 ldr r1, _080249B4 add r1, r8 ldrb r1, [r1] bl PokemonGetField lsls r0, 16 lsrs r1, r0, 16 mov r0, r8 cmp r0, 0x5 bhi _08024A1A ldr r0, _080249B8 adds r0, r4, r0 ldr r0, [r0] mov pc, r0 .align 2, 0 _0802499C: .4byte 0x020234cc _080249A0: .4byte gUnknown_08400D9F _080249A4: .4byte gUnknown_0840165C _080249A8: .4byte 0x02000000 _080249AC: .4byte 0x00016018 _080249B0: .4byte 0x03004360 _080249B4: .4byte gUnknown_081FACEF _080249B8: .4byte _080249BC .align 2, 0 _080249BC: .4byte _080249D4 .4byte _080249E0 .4byte _080249EC .4byte _080249F8 .4byte _08024A04 .4byte _08024A10 _080249D4: ldr r0, _080249DC ldrh r0, [r0] b _08024A14 .align 2, 0 _080249DC: .4byte 0x02017180 _080249E0: ldr r0, _080249E8 ldrh r0, [r0, 0x8] b _08024A14 .align 2, 0 _080249E8: .4byte 0x02017180 _080249EC: ldr r0, _080249F4 ldrh r0, [r0, 0x2] b _08024A14 .align 2, 0 _080249F4: .4byte 0x02017180 _080249F8: ldr r0, _08024A00 ldrh r0, [r0, 0xA] b _08024A14 .align 2, 0 _08024A00: .4byte 0x02017180 _08024A04: ldr r0, _08024A0C ldrh r0, [r0, 0x4] b _08024A14 .align 2, 0 _08024A0C: .4byte 0x02017180 _08024A10: ldr r0, _08024A54 ldrh r0, [r0, 0x6] _08024A14: subs r0, r1, r0 lsls r0, 16 lsrs r7, r0, 16 _08024A1A: lsls r0, r7, 16 asrs r0, 16 cmp r0, 0 bge _08024A2C negs r0, r0 lsls r0, 16 lsrs r7, r0, 16 movs r1, 0x1 add r9, r1 _08024A2C: movs r0, 0xFC strb r0, [r5] movs r0, 0x13 strb r0, [r5, 0x1] movs r1, 0x1 mov r2, r8 ands r1, r2 lsls r0, r1, 3 adds r0, r1 adds r0, 0x5 lsls r0, 3 adds r0, 0x6 strb r0, [r5, 0x2] adds r5, 0x3 mov r0, r9 cmp r0, 0 beq _08024A5C ldr r1, _08024A58 b _08024A5E .align 2, 0 _08024A54: .4byte 0x02017180 _08024A58: .4byte gUnknown_08400DAC _08024A5C: ldr r1, _08024AA4 _08024A5E: adds r0, r5, 0 bl StringCopy adds r5, r0, 0 movs r6, 0xFC strb r6, [r5] movs r4, 0x14 strb r4, [r5, 0x1] movs r0, 0x6 strb r0, [r5, 0x2] adds r5, 0x3 lsls r1, r7, 16 asrs r1, 16 adds r0, r5, 0 movs r2, 0x1 movs r3, 0x2 bl ConvertIntToDecimalStringN adds r5, r0, 0 strb r6, [r5] strb r4, [r5, 0x1] movs r0, 0 strb r0, [r5, 0x2] adds r5, 0x3 movs r0, 0x1 mov r1, r8 ands r0, r1 cmp r0, 0 beq _08024AA8 movs r0, 0xFE strb r0, [r5] movs r0, 0xFF strb r0, [r5, 0x1] adds r5, 0x1 b _08024AB8 .align 2, 0 _08024AA4: .4byte gUnknown_08400DAA _08024AA8: strb r6, [r5] movs r0, 0x11 strb r0, [r5, 0x1] movs r0, 0x8 strb r0, [r5, 0x2] adds r5, 0x3 movs r0, 0xFF strb r0, [r5] _08024AB8: movs r2, 0x1 add r8, r2 mov r0, r8 cmp r0, 0x5 bgt _08024AC4 b _0802495A _08024AC4: ldr r4, _08024AE4 ldr r1, _08024AE8 adds r2, 0xFF movs r0, 0x1 str r0, [sp] adds r0, r4, 0 movs r3, 0xC bl InitWindow adds r0, r4, 0 bl sub_8002F44 ldr r1, _08024AEC ldr r2, _08024AF0 adds r1, r2 b _08024BEA .align 2, 0 _08024AE4: .4byte 0x03004210 _08024AE8: .4byte 0x020234cc _08024AEC: .4byte 0x02000000 _08024AF0: .4byte 0x0001609c _08024AF4: ldr r0, _08024B94 ldrh r0, [r0, 0x2E] cmp r0, 0 bne _08024AFE b _08024C38 _08024AFE: movs r0, 0x5 bl audio_play ldr r0, _08024B98 ldr r1, _08024B9C bl StringCopy adds r5, r0, 0 movs r0, 0 mov r8, r0 mov r9, r0 movs r6, 0xFC movs r7, 0x14 ldr r1, _08024BA0 add r10, r1 _08024B1C: ldr r1, _08024BA4 mov r2, r8 lsls r0, r2, 2 adds r0, r1 ldr r1, [r0] adds r0, r5, 0 bl StringAppend adds r5, r0, 0 mov r0, r10 ldrb r1, [r0] movs r0, 0x64 muls r0, r1 ldr r1, _08024BA8 adds r0, r1 ldr r1, _08024BAC add r1, r8 ldrb r1, [r1] bl PokemonGetField adds r1, r0, 0 strb r6, [r5] movs r0, 0x13 strb r0, [r5, 0x1] movs r4, 0x1 mov r2, r8 ands r4, r2 lsls r0, r4, 3 adds r0, r4 adds r0, 0x5 lsls r0, 3 adds r0, 0x6 strb r0, [r5, 0x2] adds r5, 0x3 strb r6, [r5] strb r7, [r5, 0x1] movs r0, 0x6 strb r0, [r5, 0x2] adds r5, 0x3 lsls r1, 16 asrs r1, 16 adds r0, r5, 0 movs r2, 0x1 movs r3, 0x3 bl ConvertIntToDecimalStringN adds r5, r0, 0 strb r6, [r5] strb r7, [r5, 0x1] mov r0, r9 strb r0, [r5, 0x2] adds r5, 0x3 cmp r4, 0 beq _08024BB0 movs r0, 0xFE strb r0, [r5] movs r0, 0xFF strb r0, [r5, 0x1] adds r5, 0x1 b _08024BC0 .align 2, 0 _08024B94: .4byte 0x03001770 _08024B98: .4byte 0x020234cc _08024B9C: .4byte gUnknown_08400D9F _08024BA0: .4byte 0x00016018 _08024BA4: .4byte gUnknown_0840165C _08024BA8: .4byte 0x03004360 _08024BAC: .4byte gUnknown_081FACEF _08024BB0: strb r6, [r5] movs r0, 0x11 strb r0, [r5, 0x1] movs r0, 0x8 strb r0, [r5, 0x2] adds r5, 0x3 movs r0, 0xFF strb r0, [r5] _08024BC0: movs r1, 0x1 add r8, r1 mov r2, r8 cmp r2, 0x5 ble _08024B1C ldr r4, _08024BF4 ldr r1, _08024BF8 movs r2, 0x80 lsls r2, 1 movs r0, 0x1 str r0, [sp] adds r0, r4, 0 movs r3, 0xC bl InitWindow adds r0, r4, 0 bl sub_8002F44 ldr r1, _08024BFC ldr r0, _08024C00 adds r1, r0 _08024BEA: ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] b _08024C38 .align 2, 0 _08024BF4: .4byte 0x03004210 _08024BF8: .4byte 0x020234cc _08024BFC: .4byte 0x02000000 _08024C00: .4byte 0x0001609c _08024C04: ldr r0, _08024C2C ldrh r0, [r0, 0x2E] cmp r0, 0 beq _08024C38 movs r0, 0x5 bl audio_play movs r0, 0x1 str r0, [sp] movs r0, 0xB movs r1, 0 movs r2, 0x1D movs r3, 0x7 bl sub_802BBD4 ldrb r0, [r4] adds r0, 0x1 strb r0, [r4] b _08024C38 .align 2, 0 _08024C2C: .4byte 0x03001770 _08024C30: ldr r1, _08024C48 ldr r0, [r1] adds r0, 0x1 str r0, [r1] _08024C38: 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 _08024C48: .4byte 0x02024c10 thumb_func_end sub_80248FC thumb_func_start sub_8024C4C sub_8024C4C: @ 8024C4C push {lr} bl sub_80156DC ldr r1, _08024C60 ldr r0, [r1] adds r0, 0x1 str r0, [r1] pop {r0} bx r0 .align 2, 0 _08024C60: .4byte 0x02024c10 thumb_func_end sub_8024C4C thumb_func_start atk6E_state0_side_becomes_attacker atk6E_state0_side_becomes_attacker: @ 8024C64 push {lr} movs r0, 0 bl battle_get_side_with_given_state ldr r1, _08024C7C strb r0, [r1] ldr r1, _08024C80 ldr r0, [r1] adds r0, 0x1 str r0, [r1] pop {r0} bx r0 .align 2, 0 _08024C7C: .4byte 0x02024c07 _08024C80: .4byte 0x02024c10 thumb_func_end atk6E_state0_side_becomes_attacker thumb_func_start atk6F_8026810 atk6F_8026810: @ 8024C84 push {r4,r5,lr} ldr r5, _08024CB0 ldr r0, [r5] ldrb r0, [r0, 0x1] bl sub_8015150 ldr r4, _08024CB4 strb r0, [r4] movs r0, 0 movs r1, 0 bl dp01_build_cmdbuf_x33_a_33_33 ldrb r0, [r4] bl dp01_battle_side_mark_buffer_for_execution ldr r0, [r5] adds r0, 0x2 str r0, [r5] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08024CB0: .4byte 0x02024c10 _08024CB4: .4byte 0x02024a60 thumb_func_end atk6F_8026810 thumb_func_start atk70_record_ability_usage_of_side atk70_record_ability_usage_of_side: @ 8024CB8 push {r4,lr} ldr r4, _08024CE0 ldr r0, [r4] ldrb r0, [r0, 0x1] bl sub_8015150 ldr r1, _08024CE4 strb r0, [r1] ldrb r0, [r1] ldr r1, _08024CE8 ldrb r1, [r1] bl sub_81074C4 ldr r0, [r4] adds r0, 0x1 str r0, [r4] pop {r4} pop {r0} bx r0 .align 2, 0 _08024CE0: .4byte 0x02024c10 _08024CE4: .4byte 0x02024a60 _08024CE8: .4byte 0x02024c06 thumb_func_end atk70_record_ability_usage_of_side thumb_func_start sub_8024CEC sub_8024CEC: @ 8024CEC ldr r2, _08024D0C movs r0, 0xFD strb r0, [r2] movs r0, 0x2 strb r0, [r2, 0x1] ldr r0, _08024D10 ldrh r1, [r0] strb r1, [r2, 0x2] movs r0, 0xFF lsls r0, 8 ands r0, r1 lsrs r0, 8 strb r0, [r2, 0x3] movs r0, 0xFF strb r0, [r2, 0x4] bx lr .align 2, 0 _08024D0C: .4byte 0x03004290 _08024D10: .4byte 0x02024e82 thumb_func_end sub_8024CEC thumb_func_start atk71_80268A0 atk71_80268A0: @ 8024D14 push {lr} bl sub_8024CEC ldr r1, _08024D28 ldr r0, [r1] adds r0, 0x1 str r0, [r1] pop {r0} bx r0 .align 2, 0 _08024D28: .4byte 0x02024c10 thumb_func_end atk71_80268A0 thumb_func_start atk72_flee atk72_flee: @ 8024D2C push {lr} ldr r0, _08024D58 ldrb r0, [r0] bl sub_8014AB8 lsls r0, 24 cmp r0, 0 beq _08024D60 ldr r3, _08024D5C ldr r2, [r3] ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x4] lsls r0, 24 orrs r1, r0 str r1, [r3] b _08024D68 .align 2, 0 _08024D58: .4byte 0x02024c09 _08024D5C: .4byte 0x02024c10 _08024D60: ldr r1, _08024D6C ldr r0, [r1] adds r0, 0x5 str r0, [r1] _08024D68: pop {r0} bx r0 .align 2, 0 _08024D6C: .4byte 0x02024c10 thumb_func_end atk72_flee thumb_func_start atk73_cmd73 atk73_cmd73: @ 8024D70 push {r4,r5,lr} ldr r0, _08024DC0 ldrh r0, [r0] movs r5, 0x1 ands r5, r0 cmp r5, 0 bne _08024E12 ldr r0, _08024DC4 ldr r0, [r0] ldrb r0, [r0, 0x1] bl sub_8015150 ldr r1, _08024DC8 strb r0, [r1] movs r1, 0x1 eors r0, r1 lsls r0, 24 lsrs r0, 24 ldr r2, _08024DCC movs r1, 0x58 muls r1, r0 adds r1, r2 ldrh r4, [r1, 0x28] movs r0, 0x64 muls r0, r4 ldrh r1, [r1, 0x2C] bl __divsi3 cmp r0, 0 bne _08024DAE movs r0, 0x1 _08024DAE: cmp r0, 0x45 bgt _08024DB6 cmp r4, 0 bne _08024DD8 _08024DB6: ldr r0, _08024DD0 ldr r1, _08024DD4 adds r0, r1 strb r5, [r0] b _08024E12 .align 2, 0 _08024DC0: .4byte 0x020239f8 _08024DC4: .4byte 0x02024c10 _08024DC8: .4byte 0x02024a60 _08024DCC: .4byte 0x02024a80 _08024DD0: .4byte 0x02000000 _08024DD4: .4byte 0x000160c1 _08024DD8: cmp r0, 0x27 ble _08024DF0 ldr r0, _08024DE8 ldr r1, _08024DEC adds r0, r1 movs r1, 0x1 b _08024E10 .align 2, 0 _08024DE8: .4byte 0x02000000 _08024DEC: .4byte 0x000160c1 _08024DF0: cmp r0, 0x9 ble _08024E08 ldr r0, _08024E00 ldr r1, _08024E04 adds r0, r1 movs r1, 0x2 b _08024E10 .align 2, 0 _08024E00: .4byte 0x02000000 _08024E04: .4byte 0x000160c1 _08024E08: ldr r0, _08024E20 ldr r1, _08024E24 adds r0, r1 movs r1, 0x3 _08024E10: strb r1, [r0] _08024E12: ldr r1, _08024E28 ldr r0, [r1] adds r0, 0x2 str r0, [r1] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08024E20: .4byte 0x02000000 _08024E24: .4byte 0x000160c1 _08024E28: .4byte 0x02024c10 thumb_func_end atk73_cmd73 thumb_func_start atk74_hp_tresholds_2 atk74_hp_tresholds_2: @ 8024E2C push {r4-r7,lr} ldr r0, _08024E8C ldrh r0, [r0] movs r7, 0x1 ands r7, r0 cmp r7, 0 bne _08024ED0 ldr r0, _08024E90 ldr r0, [r0] ldrb r0, [r0, 0x1] bl sub_8015150 adds r4, r0, 0 ldr r0, _08024E94 strb r4, [r0] movs r0, 0x1 eors r4, r0 lsls r4, 24 lsrs r4, 24 ldr r6, _08024E98 adds r0, r4, 0 bl battle_side_get_owner lsls r0, 24 lsrs r0, 23 ldr r1, _08024E9C adds r0, r1 adds r0, r6 ldrb r5, [r0] ldr r1, _08024EA0 movs r0, 0x58 muls r0, r4 adds r0, r1 ldrh r4, [r0, 0x28] subs r1, r5, r4 movs r0, 0x64 muls r0, r1 adds r1, r5, 0 bl __divsi3 adds r1, r0, 0 cmp r4, r5 bcc _08024EA8 ldr r1, _08024EA4 adds r0, r6, r1 strb r7, [r0] b _08024ED0 .align 2, 0 _08024E8C: .4byte 0x020239f8 _08024E90: .4byte 0x02024c10 _08024E94: .4byte 0x02024a60 _08024E98: .4byte 0x02000000 _08024E9C: .4byte 0x000160bc _08024EA0: .4byte 0x02024a80 _08024EA4: .4byte 0x000160c1 _08024EA8: cmp r0, 0x1D bgt _08024EB8 ldr r0, _08024EB4 adds r1, r6, r0 movs r0, 0x1 b _08024ECE .align 2, 0 _08024EB4: .4byte 0x000160c1 _08024EB8: cmp r1, 0x45 bgt _08024EC8 ldr r0, _08024EC4 adds r1, r6, r0 movs r0, 0x2 b _08024ECE .align 2, 0 _08024EC4: .4byte 0x000160c1 _08024EC8: ldr r0, _08024EE0 adds r1, r6, r0 movs r0, 0x3 _08024ECE: strb r0, [r1] _08024ED0: ldr r1, _08024EE4 ldr r0, [r1] adds r0, 0x2 str r0, [r1] pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08024EE0: .4byte 0x000160c1 _08024EE4: .4byte 0x02024c10 thumb_func_end atk74_hp_tresholds_2 thumb_func_start atk75_8026A58 atk75_8026A58: @ 8024EE8 push {lr} sub sp, 0x4 ldr r2, _08024F28 ldr r1, _08024F2C ldrb r0, [r1] strb r0, [r2] ldr r2, _08024F30 ldrb r0, [r1] lsls r0, 1 adds r0, r2 ldrh r2, [r0] movs r0, 0x64 muls r0, r2 ldr r1, _08024F34 adds r0, r1 ldr r1, _08024F38 ldrh r1, [r1] lsls r2, 24 lsrs r2, 24 movs r3, 0x1 str r3, [sp] movs r3, 0 bl sub_803E1B0 ldr r1, _08024F3C ldr r0, [r1] adds r0, 0x1 str r0, [r1] add sp, 0x4 pop {r0} bx r0 .align 2, 0 _08024F28: .4byte 0x02024e6c _08024F2C: .4byte 0x02024c07 _08024F30: .4byte 0x02024a6a _08024F34: .4byte 0x030045c0 _08024F38: .4byte 0x02024c04 _08024F3C: .4byte 0x02024c10 thumb_func_end atk75_8026A58 thumb_func_start sub_8024F40 sub_8024F40: @ 8024F40 push {r4-r6,lr} ldr r4, _08024F64 ldr r0, [r4] ldrb r0, [r0, 0x1] bl sub_8015150 ldr r1, _08024F68 strb r0, [r1] ldr r0, [r4] ldrb r0, [r0, 0x2] cmp r0, 0x6 bls _08024F5A b _08025112 _08024F5A: lsls r0, 2 ldr r1, _08024F6C adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08024F64: .4byte 0x02024c10 _08024F68: .4byte 0x02024a60 _08024F6C: .4byte _08024F70 .align 2, 0 _08024F70: .4byte _08024F8C .4byte _08024F9C .4byte _08024FFC .4byte _0802500C .4byte _08025024 .4byte _08025060 .4byte _08025098 _08024F8C: ldr r0, _08024F98 ldrb r0, [r0] bl b_cancel_multi_turn_move_maybe b _08025112 .align 2, 0 _08024F98: .4byte 0x02024a60 _08024F9C: ldr r1, _08024FD8 ldr r4, _08024FDC ldrb r0, [r4] strb r0, [r1] ldrb r0, [r1] bl battle_side_get_owner movs r1, 0x1 eors r0, r1 lsls r0, 24 lsrs r0, 24 ldr r2, _08024FE0 lsls r1, r0, 1 adds r1, r0 lsls r1, 2 adds r2, r1, r2 ldrb r0, [r2, 0x8] cmp r0, 0 beq _08024FE8 ldr r1, _08024FE4 ldrb r2, [r2, 0x9] movs r0, 0x58 muls r0, r2 adds r0, r1 ldrh r0, [r0, 0x28] cmp r0, 0 beq _08024FE8 strb r2, [r4] b _08025112 .align 2, 0 _08024FD8: .4byte 0x02024c07 _08024FDC: .4byte 0x02024c08 _08024FE0: .4byte 0x02024c80 _08024FE4: .4byte 0x02024a80 _08024FE8: ldr r0, _08024FF4 ldr r1, _08024FF8 ldrb r1, [r1] strb r1, [r0] b _08025112 .align 2, 0 _08024FF4: .4byte 0x02024c08 _08024FF8: .4byte 0x02024a60 _08024FFC: bl sub_8012028 ldr r1, _08025008 strb r0, [r1] b _08025112 .align 2, 0 _08025008: .4byte 0x02024d1e _0802500C: ldr r0, _0802501C ldrh r0, [r0] movs r1, 0 bl sub_801B5C0 ldr r1, _08025020 strb r0, [r1] b _08025112 .align 2, 0 _0802501C: .4byte 0x02024be6 _08025020: .4byte 0x02024c08 _08025024: ldr r2, _08025044 ldr r1, _08025048 ldr r0, _0802504C ldrb r0, [r0] lsls r0, 2 adds r0, r1 ldr r0, [r0] lsls r0, 28 ldr r2, [r2] ands r2, r0 cmp r2, 0 beq _08025054 ldr r1, _08025050 movs r0, 0x1 strb r0, [r1] b _08025112 .align 2, 0 _08025044: .4byte 0x02024c6c _08025048: .4byte gUnknown_0820872C _0802504C: .4byte 0x02024a60 _08025050: .4byte 0x02024d1e _08025054: ldr r0, _0802505C strb r2, [r0] b _08025112 .align 2, 0 _0802505C: .4byte 0x02024d1e _08025060: ldr r4, _08025090 ldr r3, _08025094 ldrb r0, [r3] lsls r1, r0, 2 adds r1, r0 lsls r1, 2 adds r1, r4 ldrb r2, [r1] movs r0, 0x9 negs r0, r0 ands r0, r2 strb r0, [r1] ldrb r0, [r3] lsls r1, r0, 2 adds r1, r0 lsls r1, 2 adds r1, r4 ldrb r2, [r1] movs r0, 0x11 negs r0, r0 ands r0, r2 strb r0, [r1] b _08025112 .align 2, 0 _08025090: .4byte 0x02024d68 _08025094: .4byte 0x02024a60 _08025098: ldr r3, _080250B8 ldr r0, _080250BC ldr r1, _080250C0 adds r0, r1 ldrh r2, [r3] ldrb r1, [r0] cmp r2, r1 beq _080250B2 ldrh r0, [r3, 0x4] cmp r0, r1 bne _08025112 cmp r2, r0 bne _080250C8 _080250B2: ldr r1, _080250C4 movs r0, 0 b _080250CC .align 2, 0 _080250B8: .4byte 0x02024a6a _080250BC: .4byte 0x02000000 _080250C0: .4byte 0x00016018 _080250C4: .4byte 0x02024a60 _080250C8: ldr r1, _08025120 movs r0, 0x2 _080250CC: strb r0, [r1] adds r5, r1, 0 ldrb r2, [r5] lsls r1, r2, 1 ldr r0, _08025124 adds r4, r1, r0 movs r3, 0 ldr r1, _08025128 movs r0, 0x58 muls r0, r2 adds r1, 0xC adds r0, r1 ldrh r0, [r0] ldrh r2, [r4] cmp r0, r2 beq _0802510A adds r6, r5, 0 movs r5, 0x58 adds r2, r1, 0 _080250F2: adds r3, 0x1 cmp r3, 0x3 bgt _0802510A lsls r1, r3, 1 ldrb r0, [r6] muls r0, r5 adds r1, r0 adds r1, r2 ldrh r0, [r1] ldrh r1, [r4] cmp r0, r1 bne _080250F2 _0802510A: cmp r3, 0x4 bne _08025112 movs r0, 0 strh r0, [r4] _08025112: ldr r1, _0802512C ldr r0, [r1] adds r0, 0x3 str r0, [r1] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08025120: .4byte 0x02024a60 _08025124: .4byte 0x020160e8 _08025128: .4byte 0x02024a80 _0802512C: .4byte 0x02024c10 thumb_func_end sub_8024F40 thumb_func_start atk77_setprotect atk77_setprotect: @ 8025130 push {r4-r7,lr} mov r7, r8 push {r7} movs r6, 0x1 ldr r2, _080251FC ldr r1, _08025200 ldrb r3, [r1] lsls r0, r3, 1 adds r0, r2 ldrh r0, [r0] mov r8, r1 ldr r7, _08025204 cmp r0, 0xB6 beq _08025160 cmp r0, 0xC5 beq _08025160 cmp r0, 0xCB beq _08025160 lsls r0, r3, 3 subs r0, r3 lsls r0, 2 adds r0, r7 movs r1, 0 strb r1, [r0, 0x8] _08025160: ldr r0, _08025208 ldrb r1, [r0] ldr r0, _0802520C ldrb r0, [r0] subs r0, 0x1 cmp r1, r0 bne _08025170 movs r6, 0 _08025170: ldr r2, _08025210 mov r5, r8 ldrb r1, [r5] lsls r0, r1, 3 subs r0, r1 lsls r0, 2 adds r0, r7 ldrb r4, [r0, 0x8] lsls r4, 1 adds r4, r2 bl Random ldrh r1, [r4] lsls r0, 16 lsrs r0, 16 cmp r1, r0 bls _08025224 cmp r6, 0 beq _08025224 ldr r4, _08025214 ldr r3, _08025218 ldrh r0, [r3] lsls r1, r0, 1 adds r1, r0 lsls r1, 2 adds r1, r4 ldrb r0, [r1] cmp r0, 0x6F bne _080251C0 ldr r0, _0802521C ldrb r1, [r5] lsls r1, 4 adds r1, r0 ldrb r0, [r1] movs r2, 0x1 orrs r0, r2 strb r0, [r1] ldr r1, _08025220 movs r0, 0 strb r0, [r1, 0x5] _080251C0: ldrh r0, [r3] lsls r1, r0, 1 adds r1, r0 lsls r1, 2 adds r1, r4 ldrb r0, [r1] cmp r0, 0x74 bne _080251E6 ldr r0, _0802521C ldrb r1, [r5] lsls r1, 4 adds r1, r0 ldrb r0, [r1] movs r2, 0x2 orrs r0, r2 strb r0, [r1] ldr r1, _08025220 movs r0, 0x1 strb r0, [r1, 0x5] _080251E6: mov r1, r8 ldrb r0, [r1] lsls r1, r0, 3 subs r1, r0 lsls r1, 2 adds r1, r7 ldrb r0, [r1, 0x8] adds r0, 0x1 strb r0, [r1, 0x8] b _08025246 .align 2, 0 _080251FC: .4byte 0x02024c4c _08025200: .4byte 0x02024c07 _08025204: .4byte 0x02024ca8 _08025208: .4byte 0x02024a7e _0802520C: .4byte 0x02024a68 _08025210: .4byte gUnknown_081FACF6 _08025214: .4byte gBattleMoves _08025218: .4byte 0x02024be6 _0802521C: .4byte 0x02024d28 _08025220: .4byte 0x02024d1e _08025224: ldr r2, _08025258 ldr r0, _0802525C ldrb r1, [r0] lsls r0, r1, 3 subs r0, r1 lsls r0, 2 adds r0, r2 movs r1, 0 strb r1, [r0, 0x8] ldr r1, _08025260 movs r0, 0x2 strb r0, [r1, 0x5] ldr r2, _08025264 ldrb r0, [r2] movs r1, 0x1 orrs r0, r1 strb r0, [r2] _08025246: ldr r1, _08025268 ldr r0, [r1] adds r0, 0x1 str r0, [r1] pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08025258: .4byte 0x02024ca8 _0802525C: .4byte 0x02024c07 _08025260: .4byte 0x02024d1e _08025264: .4byte 0x02024c68 _08025268: .4byte 0x02024c10 thumb_func_end atk77_setprotect thumb_func_start atk78_faintifabilitynotdamp atk78_faintifabilitynotdamp: @ 802526C push {r4-r7,lr} mov r7, r8 push {r7} ldr r0, _08025328 ldr r2, [r0] cmp r2, 0 bne _08025370 ldr r1, _0802532C strb r2, [r1] ldr r0, _08025330 ldrb r3, [r0] adds r5, r1, 0 mov r8, r0 ldr r6, _08025334 cmp r2, r3 bcs _080252B8 adds r0, r6, 0 adds r0, 0x20 ldrb r0, [r0] cmp r0, 0x6 beq _080252B8 adds r2, r3, 0 adds r4, r6, 0 movs r3, 0x58 _0802529C: ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] lsls r0, 24 lsrs r0, 24 cmp r0, r2 bcs _080252B8 ldrb r0, [r5] muls r0, r3 adds r0, r4 adds r0, 0x20 ldrb r0, [r0] cmp r0, 0x6 bne _0802529C _080252B8: ldrb r0, [r5] mov r1, r8 ldrb r1, [r1] cmp r0, r1 bne _08025354 ldr r4, _08025338 ldr r7, _0802533C ldrb r0, [r7] strb r0, [r4] ldr r2, _08025340 ldrb r1, [r4] movs r0, 0x58 muls r0, r1 adds r0, r6 ldrh r0, [r0, 0x28] str r0, [r2] ldr r1, _08025344 movs r0, 0 bl dp01_build_cmdbuf_x18_0_aa_health_bar_update ldrb r0, [r4] bl dp01_battle_side_mark_buffer_for_execution ldr r1, _08025348 ldr r0, [r1] adds r0, 0x1 str r0, [r1] movs r0, 0 strb r0, [r5] mov r2, r8 ldrb r0, [r2] cmp r0, 0 beq _08025370 adds r3, r5, 0 ldrb r5, [r7] ldr r7, _0802534C adds r4, r0, 0 ldr r6, _08025350 _08025304: ldrb r2, [r3] cmp r2, r5 beq _0802531A ldrb r0, [r6] ldrb r1, [r3] lsls r1, 2 adds r1, r7 ldr r1, [r1] ands r0, r1 cmp r0, 0 beq _08025370 _0802531A: adds r0, r2, 0x1 strb r0, [r3] lsls r0, 24 lsrs r0, 24 cmp r0, r4 bcc _08025304 b _08025370 .align 2, 0 _08025328: .4byte 0x02024a64 _0802532C: .4byte 0x02024c08 _08025330: .4byte 0x02024a68 _08025334: .4byte 0x02024a80 _08025338: .4byte 0x02024a60 _0802533C: .4byte 0x02024c07 _08025340: .4byte 0x02024bec _08025344: .4byte 0x00007fff _08025348: .4byte 0x02024c10 _0802534C: .4byte gUnknown_0820872C _08025350: .4byte 0x02024c0c _08025354: ldr r1, _0802537C movs r0, 0x6 strb r0, [r1] ldrb r0, [r5] movs r1, 0x58 muls r1, r0 adds r1, r6 adds r1, 0x20 ldrb r1, [r1] bl sub_81074C4 ldr r1, _08025380 ldr r0, _08025384 str r0, [r1] _08025370: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0802537C: .4byte 0x02024c06 _08025380: .4byte 0x02024c10 _08025384: .4byte gUnknown_081D9834 thumb_func_end atk78_faintifabilitynotdamp thumb_func_start atk79_setuserhptozero atk79_setuserhptozero: @ 8025388 push {r4,lr} sub sp, 0x4 ldr r0, _080253D4 ldr r3, [r0] cmp r3, 0 bne _080253CC ldr r4, _080253D8 ldr r0, _080253DC ldrb r0, [r0] strb r0, [r4] ldr r1, _080253E0 ldrb r0, [r4] movs r2, 0x58 muls r0, r2 adds r0, r1 strh r3, [r0, 0x28] ldrb r0, [r4] muls r0, r2 adds r1, 0x28 adds r0, r1 str r0, [sp] movs r0, 0 movs r1, 0x2A movs r2, 0 movs r3, 0x2 bl dp01_build_cmdbuf_x02_a_b_varargs ldrb r0, [r4] bl dp01_battle_side_mark_buffer_for_execution ldr r1, _080253E4 ldr r0, [r1] adds r0, 0x1 str r0, [r1] _080253CC: add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _080253D4: .4byte 0x02024a64 _080253D8: .4byte 0x02024a60 _080253DC: .4byte 0x02024c07 _080253E0: .4byte 0x02024a80 _080253E4: .4byte 0x02024c10 thumb_func_end atk79_setuserhptozero thumb_func_start sub_80253E8 sub_80253E8: @ 80253E8 push {r4-r7,lr} ldr r3, _08025460 ldr r2, [r3] ldrb r4, [r2, 0x1] ldrb r0, [r2, 0x2] lsls r0, 8 orrs r4, r0 ldrb r0, [r2, 0x3] lsls r0, 16 orrs r4, r0 ldrb r0, [r2, 0x4] lsls r0, 24 orrs r4, r0 ldr r0, _08025464 ldrh r1, [r0] movs r0, 0x1 ands r0, r1 adds r7, r3, 0 cmp r0, 0 beq _08025480 ldr r0, _08025468 ldrb r1, [r0] adds r1, 0x1 strb r1, [r0] ldr r2, _0802546C lsls r1, 24 lsrs r1, 24 adds r3, r0, 0 ldr r6, _08025470 ldr r5, _08025474 ldr r0, _08025478 mov r12, r0 ldrb r0, [r2] cmp r1, r0 bne _0802543E _0802542E: ldrb r0, [r3] adds r0, 0x1 strb r0, [r3] lsls r0, 24 lsrs r0, 24 ldrb r1, [r2] cmp r0, r1 beq _0802542E _0802543E: ldrb r0, [r6] ldrb r1, [r3] lsls r1, 2 adds r1, r5 ldr r1, [r1] ands r0, r1 cmp r0, 0 bne _0802542E ldrb r0, [r3] mov r2, r12 ldrb r2, [r2] cmp r0, r2 bcc _0802547C ldr r0, [r7] adds r0, 0x5 str r0, [r7] b _08025484 .align 2, 0 _08025460: .4byte 0x02024c10 _08025464: .4byte 0x020239f8 _08025468: .4byte 0x02024c08 _0802546C: .4byte 0x02024c07 _08025470: .4byte 0x02024c0c _08025474: .4byte gUnknown_0820872C _08025478: .4byte 0x02024a68 _0802547C: str r4, [r7] b _08025484 _08025480: adds r0, r2, 0x5 str r0, [r3] _08025484: pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_80253E8 thumb_func_start sub_802548C sub_802548C: @ 802548C push {r4-r6,lr} ldr r4, _080254E8 ldr r1, [r4] ldrb r2, [r1, 0x1] ldrb r0, [r1, 0x2] lsls r0, 8 orrs r2, r0 ldrb r0, [r1, 0x3] lsls r0, 16 orrs r2, r0 ldrb r0, [r1, 0x4] lsls r0, 24 orrs r2, r0 ldrb r0, [r1, 0x5] ldr r3, _080254EC cmp r0, 0x1 bne _080254B4 ldr r0, _080254F0 ldrb r0, [r0] strb r0, [r3] _080254B4: ldr r1, _080254F4 ldr r6, _080254F8 ldrb r0, [r3] movs r5, 0x58 muls r0, r5 adds r0, r6 ldrh r0, [r0, 0x2C] lsrs r0, 1 str r0, [r1] cmp r0, 0 bne _080254CE movs r0, 0x1 str r0, [r1] _080254CE: ldr r0, [r1] negs r0, r0 str r0, [r1] ldrb r0, [r3] muls r0, r5 adds r0, r6 ldrh r1, [r0, 0x28] ldrh r0, [r0, 0x2C] cmp r1, r0 bne _080254FC str r2, [r4] b _08025502 .align 2, 0 _080254E8: .4byte 0x02024c10 _080254EC: .4byte 0x02024c08 _080254F0: .4byte 0x02024c07 _080254F4: .4byte 0x02024bec _080254F8: .4byte 0x02024a80 _080254FC: ldr r0, [r4] adds r0, 0x6 str r0, [r4] _08025502: pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_802548C thumb_func_start sub_8025508 sub_8025508: @ 8025508 push {r4-r7,lr} ldr r3, _0802556C ldr r4, _08025570 ldrb r2, [r4] lsls r1, r2, 1 ldr r5, _08025574 adds r0, r1, r5 adds r0, r3 ldrb r7, [r0] ldr r0, _08025578 adds r1, r0 adds r1, r3 ldrb r0, [r1] lsls r0, 8 orrs r7, r0 lsls r2, 2 ldr r1, _0802557C adds r0, r2, r1 adds r0, r3 ldrb r6, [r0] adds r5, 0x55 adds r0, r2, r5 adds r0, r3 ldrb r0, [r0] lsls r0, 8 orrs r6, r0 adds r1, 0x2 adds r0, r2, r1 adds r0, r3 ldrb r5, [r0] ldr r0, _08025580 adds r2, r0 adds r2, r3 ldrb r0, [r2] lsls r0, 8 orrs r5, r0 cmp r7, 0 beq _08025594 ldr r0, _08025584 cmp r7, r0 beq _08025594 ldr r2, _08025588 ldr r0, [r2] ldr r1, _0802558C ands r0, r1 str r0, [r2] ldr r4, _08025590 strh r7, [r4] b _0802565C .align 2, 0 _0802556C: .4byte 0x02000000 _08025570: .4byte 0x02024c07 _08025574: .4byte 0x000160ac _08025578: .4byte 0x000160ad _0802557C: .4byte 0x00016100 _08025580: .4byte 0x00016103 _08025584: .4byte 0x0000ffff _08025588: .4byte 0x02024c6c _0802558C: .4byte 0xfffffbff _08025590: .4byte 0x02024be6 _08025594: cmp r6, 0 beq _08025644 cmp r5, 0 beq _08025618 ldr r0, _080255C4 cmp r6, r0 beq _08025618 cmp r5, r0 beq _08025618 ldr r2, _080255C8 ldr r0, [r2] ldr r1, _080255CC ands r0, r1 str r0, [r2] bl Random movs r1, 0x1 ands r1, r0 cmp r1, 0 beq _080255D4 ldr r0, _080255D0 strh r6, [r0] b _080255D8 .align 2, 0 _080255C4: .4byte 0x0000ffff _080255C8: .4byte 0x02024c6c _080255CC: .4byte 0xfffffbff _080255D0: .4byte 0x02024be6 _080255D4: ldr r0, _08025604 strh r5, [r0] _080255D8: adds r5, r0, 0 ldrh r0, [r5] movs r1, 0 bl sub_801B5C0 ldr r1, _08025608 strb r0, [r1] ldr r4, _0802560C ldr r3, _08025610 ldr r2, _08025614 ldrh r1, [r5] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r0, [r0] lsls r0, 2 adds r0, r3 ldr r0, [r0] str r0, [r4] b _080256C0 .align 2, 0 _08025604: .4byte 0x02024be6 _08025608: .4byte 0x02024c08 _0802560C: .4byte 0x02024c10 _08025610: .4byte gUnknown_081D6BBC _08025614: .4byte gBattleMoves _08025618: cmp r6, 0 beq _08025644 ldr r0, _08025634 cmp r6, r0 beq _08025644 ldr r2, _08025638 ldr r0, [r2] ldr r1, _0802563C ands r0, r1 str r0, [r2] ldr r4, _08025640 strh r6, [r4] b _0802565C .align 2, 0 _08025634: .4byte 0x0000ffff _08025638: .4byte 0x02024c6c _0802563C: .4byte 0xfffffbff _08025640: .4byte 0x02024be6 _08025644: cmp r5, 0 beq _080256A4 ldr r0, _08025684 cmp r5, r0 beq _080256A4 ldr r2, _08025688 ldr r0, [r2] ldr r1, _0802568C ands r0, r1 str r0, [r2] ldr r4, _08025690 strh r5, [r4] _0802565C: ldrh r0, [r4] movs r1, 0 bl sub_801B5C0 ldr r1, _08025694 strb r0, [r1] ldr r5, _08025698 ldr r3, _0802569C ldr r2, _080256A0 ldrh r1, [r4] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r0, [r0] lsls r0, 2 adds r0, r3 ldr r0, [r0] str r0, [r5] b _080256C0 .align 2, 0 _08025684: .4byte 0x0000ffff _08025688: .4byte 0x02024c6c _0802568C: .4byte 0xfffffbff _08025690: .4byte 0x02024be6 _08025694: .4byte 0x02024c08 _08025698: .4byte 0x02024c10 _0802569C: .4byte gUnknown_081D6BBC _080256A0: .4byte gBattleMoves _080256A4: ldr r2, _080256C8 ldrb r1, [r4] lsls r0, r1, 2 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r1, [r0] movs r2, 0x20 orrs r1, r2 strb r1, [r0] ldr r1, _080256CC ldr r0, [r1] adds r0, 0x1 str r0, [r1] _080256C0: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080256C8: .4byte 0x02024d68 _080256CC: .4byte 0x02024c10 thumb_func_end sub_8025508 thumb_func_start sub_80256D0 sub_80256D0: @ 80256D0 push {lr} ldr r2, _080256F0 ldrh r0, [r2] movs r1, 0x7 ands r1, r0 cmp r1, 0 beq _080256FC ldr r2, _080256F4 ldrb r0, [r2] movs r1, 0x1 orrs r0, r1 strb r0, [r2] ldr r1, _080256F8 movs r0, 0x2 strb r0, [r1, 0x5] b _0802570C .align 2, 0 _080256F0: .4byte 0x02024db8 _080256F4: .4byte 0x02024c68 _080256F8: .4byte 0x02024d1e _080256FC: movs r0, 0x1 strh r0, [r2] ldr r0, _08025718 strb r1, [r0, 0x5] ldr r0, _0802571C adds r0, 0x28 movs r1, 0x5 strb r1, [r0] _0802570C: ldr r1, _08025720 ldr r0, [r1] adds r0, 0x1 str r0, [r1] pop {r0} bx r0 .align 2, 0 _08025718: .4byte 0x02024d1e _0802571C: .4byte 0x02024dbc _08025720: .4byte 0x02024c10 thumb_func_end sub_80256D0 thumb_func_start atk7E_setreflect atk7E_setreflect: @ 8025724 push {r4-r6,lr} ldr r5, _08025754 ldrb r0, [r5] bl battle_get_per_side_status ldr r6, _08025758 movs r4, 0x1 adds r1, r4, 0 ands r1, r0 lsls r1, 1 adds r1, r6 ldrh r1, [r1] adds r0, r4, 0 ands r0, r1 cmp r0, 0 beq _08025764 ldr r2, _0802575C ldrb r0, [r2] movs r1, 0x1 orrs r0, r1 strb r0, [r2] ldr r1, _08025760 movs r0, 0 b _080257C4 .align 2, 0 _08025754: .4byte 0x02024c07 _08025758: .4byte 0x02024c7a _0802575C: .4byte 0x02024c68 _08025760: .4byte 0x02024d1e _08025764: ldrb r0, [r5] bl battle_get_per_side_status adds r1, r4, 0 ands r1, r0 lsls r1, 1 adds r1, r6 ldrh r0, [r1] movs r2, 0x1 orrs r0, r2 strh r0, [r1] ldrb r0, [r5] bl battle_get_per_side_status ldr r2, _080257B4 adds r1, r4, 0 ands r1, r0 lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r2 movs r1, 0x5 strb r1, [r0] ldr r0, _080257B8 ldrh r1, [r0] adds r0, r4, 0 ands r0, r1 cmp r0, 0 beq _080257C0 movs r0, 0x1 bl sub_803C348 lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0x2 bne _080257C0 ldr r0, _080257BC strb r1, [r0, 0x5] b _080257C6 .align 2, 0 _080257B4: .4byte 0x02024c80 _080257B8: .4byte 0x020239f8 _080257BC: .4byte 0x02024d1e _080257C0: ldr r1, _080257D4 movs r0, 0x1 _080257C4: strb r0, [r1, 0x5] _080257C6: ldr r1, _080257D8 ldr r0, [r1] adds r0, 0x1 str r0, [r1] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080257D4: .4byte 0x02024d1e _080257D8: .4byte 0x02024c10 thumb_func_end atk7E_setreflect thumb_func_start sub_80257DC sub_80257DC: @ 80257DC push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} ldr r7, _0802581C ldrb r5, [r7] movs r0, 0x29 ands r0, r5 cmp r0, 0 bne _0802580E ldr r0, _08025820 mov r9, r0 ldr r1, _08025824 mov r8, r1 ldrb r4, [r1] lsls r0, r4, 2 mov r2, r9 adds r6, r0, r2 ldr r2, [r6] movs r0, 0x4 mov r12, r0 adds r3, r2, 0 ands r3, r0 cmp r3, 0 beq _0802582C _0802580E: movs r0, 0x1 orrs r0, r5 strb r0, [r7] ldr r1, _08025828 movs r0, 0x1 strb r0, [r1, 0x5] b _0802587C .align 2, 0 _0802581C: .4byte 0x02024c68 _08025820: .4byte 0x02024c98 _08025824: .4byte 0x02024c08 _08025828: .4byte 0x02024d1e _0802582C: ldr r1, _08025858 movs r0, 0x58 muls r0, r4 adds r1, r0, r1 adds r0, r1, 0 adds r0, 0x21 ldrb r0, [r0] cmp r0, 0xC beq _08025848 adds r0, r1, 0 adds r0, 0x22 ldrb r0, [r0] cmp r0, 0xC bne _08025860 _08025848: movs r0, 0x1 orrs r0, r5 strb r0, [r7] ldr r1, _0802585C movs r0, 0x2 strb r0, [r1, 0x5] b _0802587C .align 2, 0 _08025858: .4byte 0x02024a80 _0802585C: .4byte 0x02024d1e _08025860: ldr r0, _08025890 ldrb r0, [r0] orrs r2, r0 str r2, [r6] mov r2, r8 ldrb r1, [r2] lsls r1, 2 add r1, r9 ldr r0, [r1] mov r2, r12 orrs r0, r2 str r0, [r1] ldr r0, _08025894 strb r3, [r0, 0x5] _0802587C: ldr r1, _08025898 ldr r0, [r1] adds r0, 0x1 str r0, [r1] pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08025890: .4byte 0x02024c07 _08025894: .4byte 0x02024d1e _08025898: .4byte 0x02024c10 thumb_func_end sub_80257DC thumb_func_start atk80_manipulatedamage atk80_manipulatedamage: @ 802589C push {r4,lr} ldr r1, _080258B4 ldr r0, [r1] ldrb r2, [r0, 0x1] adds r4, r1, 0 cmp r2, 0x1 beq _080258CC cmp r2, 0x1 bgt _080258B8 cmp r2, 0 beq _080258BE b _0802590C .align 2, 0 _080258B4: .4byte 0x02024c10 _080258B8: cmp r2, 0x2 beq _08025904 b _0802590C _080258BE: ldr r1, _080258C8 ldr r0, [r1] negs r0, r0 b _0802590A .align 2, 0 _080258C8: .4byte 0x02024bec _080258CC: ldr r3, _080258F8 ldr r0, [r3] lsrs r1, r0, 31 adds r0, r1 asrs r0, 1 str r0, [r3] cmp r0, 0 bne _080258DE str r2, [r3] _080258DE: ldr r2, _080258FC ldr r0, _08025900 ldrb r1, [r0] movs r0, 0x58 muls r0, r1 adds r0, r2 ldrh r0, [r0, 0x2C] lsrs r1, r0, 1 ldr r0, [r3] cmp r1, r0 bge _0802590C str r1, [r3] b _0802590C .align 2, 0 _080258F8: .4byte 0x02024bec _080258FC: .4byte 0x02024a80 _08025900: .4byte 0x02024c08 _08025904: ldr r1, _08025918 ldr r0, [r1] lsls r0, 1 _0802590A: str r0, [r1] _0802590C: ldr r0, [r4] adds r0, 0x2 str r0, [r4] pop {r4} pop {r0} bx r0 .align 2, 0 _08025918: .4byte 0x02024bec thumb_func_end atk80_manipulatedamage thumb_func_start atk81_setrest atk81_setrest: @ 802591C push {r4-r7,lr} sub sp, 0x4 ldr r0, _08025974 mov r12, r0 ldr r1, [r0] ldrb r6, [r1, 0x1] ldrb r0, [r1, 0x2] lsls r0, 8 orrs r6, r0 ldrb r0, [r1, 0x3] lsls r0, 16 orrs r6, r0 ldrb r0, [r1, 0x4] lsls r0, 24 orrs r6, r0 ldr r5, _08025978 ldr r2, _0802597C ldr r0, _08025980 ldrb r0, [r0] strb r0, [r2] strb r0, [r5] ldr r4, _08025984 ldr r1, _08025988 ldrb r0, [r2] movs r3, 0x58 muls r0, r3 adds r0, r1 ldrh r0, [r0, 0x2C] negs r0, r0 str r0, [r4] ldrb r0, [r2] adds r4, r0, 0 muls r4, r3 adds r0, r4, r1 ldrh r3, [r0, 0x28] adds r7, r5, 0 adds r5, r2, 0 adds r2, r1, 0 ldrh r0, [r0, 0x2C] cmp r3, r0 bne _0802598C mov r0, r12 str r6, [r0] b _080259DC .align 2, 0 _08025974: .4byte 0x02024c10 _08025978: .4byte 0x02024a60 _0802597C: .4byte 0x02024c08 _08025980: .4byte 0x02024c07 _08025984: .4byte 0x02024bec _08025988: .4byte 0x02024a80 _0802598C: adds r0, r2, 0 adds r0, 0x4C adds r0, r4, r0 ldr r1, [r0] movs r0, 0xF8 ands r1, r0 cmp r1, 0 beq _080259A8 ldr r1, _080259A4 movs r0, 0x1 strb r0, [r1, 0x5] b _080259AC .align 2, 0 _080259A4: .4byte 0x02024d1e _080259A8: ldr r0, _080259E4 strb r1, [r0, 0x5] _080259AC: ldrb r0, [r5] movs r3, 0x58 muls r0, r3 adds r2, 0x4C adds r0, r2 movs r1, 0x3 str r1, [r0] ldrb r0, [r7] muls r0, r3 adds r0, r2 str r0, [sp] movs r0, 0 movs r1, 0x28 movs r2, 0 movs r3, 0x4 bl dp01_build_cmdbuf_x02_a_b_varargs ldrb r0, [r7] bl dp01_battle_side_mark_buffer_for_execution ldr r1, _080259E8 ldr r0, [r1] adds r0, 0x5 str r0, [r1] _080259DC: add sp, 0x4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080259E4: .4byte 0x02024d1e _080259E8: .4byte 0x02024c10 thumb_func_end atk81_setrest thumb_func_start atk82_jumpifnotfirstturn atk82_jumpifnotfirstturn: @ 80259EC push {r4,r5,lr} ldr r5, _08025A20 ldr r4, [r5] ldrb r3, [r4, 0x1] ldrb r0, [r4, 0x2] lsls r0, 8 orrs r3, r0 ldrb r0, [r4, 0x3] lsls r0, 16 orrs r3, r0 ldrb r0, [r4, 0x4] lsls r0, 24 orrs r3, r0 ldr r2, _08025A24 ldr r0, _08025A28 ldrb r1, [r0] lsls r0, r1, 3 subs r0, r1 lsls r0, 2 adds r0, r2 ldrb r0, [r0, 0x16] cmp r0, 0 beq _08025A2C adds r0, r4, 0x5 str r0, [r5] b _08025A2E .align 2, 0 _08025A20: .4byte 0x02024c10 _08025A24: .4byte 0x02024ca8 _08025A28: .4byte 0x02024c07 _08025A2C: str r3, [r5] _08025A2E: pop {r4,r5} pop {r0} bx r0 thumb_func_end atk82_jumpifnotfirstturn thumb_func_start sub_8025A34 sub_8025A34: @ 8025A34 ldr r1, _08025A40 ldr r0, [r1] adds r0, 0x1 str r0, [r1] bx lr .align 2, 0 _08025A40: .4byte 0x02024c10 thumb_func_end sub_8025A34 thumb_func_start sub_8025A44 sub_8025A44: @ 8025A44 push {r4-r7,lr} mov r7, r8 push {r7} lsls r0, 24 lsrs r3, r0, 24 movs r2, 0 ldr r0, _08025A9C ldrb r1, [r0] mov r8, r0 cmp r2, r1 bge _08025AB8 ldr r0, _08025AA0 mov r12, r0 movs r0, 0x58 muls r0, r3 add r0, r12 adds r5, r0, 0 adds r5, 0x20 ldr r6, _08025AA4 movs r3, 0 ldr r7, _08025AA8 adds r4, r1, 0 _08025A70: mov r0, r12 adds r0, 0x50 adds r0, r3, r0 ldr r0, [r0] movs r1, 0x70 ands r0, r1 cmp r0, 0 beq _08025AB0 ldrb r0, [r5] cmp r0, 0x2B beq _08025AB0 movs r3, 0 strb r2, [r6] ldr r1, _08025AAC ldrb r0, [r1] cmp r0, 0xFF beq _08025AD0 cmp r0, r2 beq _08025AC4 movs r0, 0x1 strb r0, [r7, 0x5] b _08025AB8 .align 2, 0 _08025A9C: .4byte 0x02024a68 _08025AA0: .4byte 0x02024a80 _08025AA4: .4byte 0x02016003 _08025AA8: .4byte 0x02024d1e _08025AAC: .4byte 0x02024c08 _08025AB0: adds r3, 0x58 adds r2, 0x1 cmp r2, r4 blt _08025A70 _08025AB8: mov r1, r8 ldrb r1, [r1] cmp r2, r1 beq _08025AD4 movs r0, 0x1 b _08025AD6 _08025AC4: ldr r0, _08025ACC strb r3, [r0, 0x5] b _08025AB8 .align 2, 0 _08025ACC: .4byte 0x02024d1e _08025AD0: strb r2, [r1] b _08025AB8 _08025AD4: movs r0, 0 _08025AD6: pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_8025A44 thumb_func_start sub_8025AE0 sub_8025AE0: @ 8025AE0 push {r4-r6,lr} ldr r5, _08025B0C ldr r1, [r5] ldrb r4, [r1, 0x1] ldrb r0, [r1, 0x2] lsls r0, 8 orrs r4, r0 ldrb r0, [r1, 0x3] lsls r0, 16 orrs r4, r0 ldrb r0, [r1, 0x4] lsls r0, 24 orrs r4, r0 ldr r6, _08025B10 ldrb r0, [r6] bl sub_8025A44 lsls r0, 24 cmp r0, 0 beq _08025B14 str r4, [r5] b _08025B56 .align 2, 0 _08025B0C: .4byte 0x02024c10 _08025B10: .4byte 0x02024c08 _08025B14: ldr r1, _08025B44 ldrb r3, [r6] movs r0, 0x58 muls r0, r3 adds r0, r1 adds r0, 0x20 ldrb r0, [r0] adds r1, r0, 0 cmp r1, 0xF beq _08025B2C cmp r1, 0x48 bne _08025B50 _08025B2C: ldr r2, _08025B48 strb r0, [r2] ldr r1, _08025B4C movs r0, 0x2 strb r0, [r1, 0x5] str r4, [r5] ldrb r1, [r2] adds r0, r3, 0 bl sub_81074C4 b _08025B56 .align 2, 0 _08025B44: .4byte 0x02024a80 _08025B48: .4byte 0x02024c06 _08025B4C: .4byte 0x02024d1e _08025B50: ldr r0, [r5] adds r0, 0x5 str r0, [r5] _08025B56: pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_8025AE0 thumb_func_start sub_8025B5C sub_8025B5C: @ 8025B5C push {r4,r5,lr} ldr r5, _08025B84 ldr r4, _08025B88 ldrb r1, [r4] lsls r0, r1, 3 subs r0, r1 lsls r0, 2 adds r1, r0, r5 ldrb r0, [r1, 0x9] cmp r0, 0x3 bne _08025B94 ldr r2, _08025B8C ldrb r0, [r2] movs r1, 0x1 orrs r0, r1 strb r0, [r2] ldr r1, _08025B90 movs r0, 0x1 strb r0, [r1, 0x5] b _08025BBE .align 2, 0 _08025B84: .4byte 0x02024ca8 _08025B88: .4byte 0x02024c07 _08025B8C: .4byte 0x02024c68 _08025B90: .4byte 0x02024d1e _08025B94: adds r0, 0x1 movs r3, 0 strb r0, [r1, 0x9] ldr r2, _08025BCC movs r0, 0xFD strb r0, [r2] movs r0, 0x1 strb r0, [r2, 0x1] strb r0, [r2, 0x2] strb r0, [r2, 0x3] ldrb r1, [r4] lsls r0, r1, 3 subs r0, r1 lsls r0, 2 adds r0, r5 ldrb r0, [r0, 0x9] strb r0, [r2, 0x4] movs r0, 0xFF strb r0, [r2, 0x5] ldr r0, _08025BD0 strb r3, [r0, 0x5] _08025BBE: ldr r1, _08025BD4 ldr r0, [r1] adds r0, 0x1 str r0, [r1] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08025BCC: .4byte 0x030041c0 _08025BD0: .4byte 0x02024d1e _08025BD4: .4byte 0x02024c10 thumb_func_end sub_8025B5C thumb_func_start atk86_stockpiletobasedamage atk86_stockpiletobasedamage: @ 8025BD8 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x10 ldr r3, _08025C10 ldr r1, [r3] ldrb r2, [r1, 0x1] ldrb r0, [r1, 0x2] lsls r0, 8 orrs r2, r0 ldrb r0, [r1, 0x3] lsls r0, 16 orrs r2, r0 ldrb r0, [r1, 0x4] lsls r0, 24 orrs r2, r0 ldr r7, _08025C14 ldr r6, _08025C18 ldrb r1, [r6] lsls r0, r1, 3 subs r0, r1 lsls r0, 2 adds r0, r7 ldrb r0, [r0, 0x9] cmp r0, 0 bne _08025C1C str r2, [r3] b _08025CC2 .align 2, 0 _08025C10: .4byte 0x02024c10 _08025C14: .4byte 0x02024ca8 _08025C18: .4byte 0x02024c07 _08025C1C: ldr r0, _08025CD0 ldrb r0, [r0, 0x6] cmp r0, 0x1 beq _08025CA8 ldr r0, _08025CD4 mov r8, r0 ldr r4, _08025CD8 ldr r5, _08025CDC ldrb r0, [r5] bl battle_get_per_side_status movs r1, 0x1 ands r1, r0 lsls r1, 1 adds r1, r4 ldrh r3, [r1] ldrb r0, [r6] movs r4, 0x58 muls r0, r4 ldr r2, _08025CE0 adds r0, r2 ldrb r1, [r5] muls r1, r4 adds r1, r2 ldr r2, _08025CE4 ldrh r2, [r2] movs r4, 0 str r4, [sp] str r4, [sp, 0x4] ldrb r4, [r6] str r4, [sp, 0x8] ldrb r4, [r5] str r4, [sp, 0xC] bl sub_803BA2C ldrb r2, [r6] lsls r1, r2, 3 subs r1, r2 lsls r1, 2 adds r1, r7 ldrb r1, [r1, 0x9] adds r3, r0, 0 muls r3, r1 mov r1, r8 str r3, [r1] ldr r2, _08025CE8 ldrb r1, [r6] lsls r0, r1, 3 subs r0, r1 lsls r0, 2 adds r0, r7 ldrb r0, [r0, 0x9] ldr r1, _08025CEC adds r2, r1 strb r0, [r2] ldr r1, _08025CF0 ldrb r0, [r6] lsls r0, 4 adds r0, r1 ldrb r0, [r0] lsls r0, 28 cmp r0, 0 bge _08025CA8 lsls r0, r3, 4 subs r0, r3 movs r1, 0xA bl __divsi3 mov r1, r8 str r0, [r1] _08025CA8: ldr r2, _08025CF4 ldr r0, _08025CF8 ldrb r1, [r0] lsls r0, r1, 3 subs r0, r1 lsls r0, 2 adds r0, r2 movs r1, 0 strb r1, [r0, 0x9] ldr r1, _08025CFC ldr r0, [r1] adds r0, 0x5 str r0, [r1] _08025CC2: add sp, 0x10 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08025CD0: .4byte 0x02024d1e _08025CD4: .4byte 0x02024bec _08025CD8: .4byte 0x02024c7a _08025CDC: .4byte 0x02024c08 _08025CE0: .4byte 0x02024a80 _08025CE4: .4byte 0x02024be6 _08025CE8: .4byte 0x02000000 _08025CEC: .4byte 0x00016002 _08025CF0: .4byte 0x02024d28 _08025CF4: .4byte 0x02024ca8 _08025CF8: .4byte 0x02024c07 _08025CFC: .4byte 0x02024c10 thumb_func_end atk86_stockpiletobasedamage thumb_func_start sub_8025D00 sub_8025D00: @ 8025D00 push {r4-r7,lr} mov r7, r8 push {r7} ldr r7, _08025D40 ldr r1, [r7] ldrb r2, [r1, 0x1] ldrb r0, [r1, 0x2] lsls r0, 8 orrs r2, r0 ldrb r0, [r1, 0x3] lsls r0, 16 orrs r2, r0 ldrb r0, [r1, 0x4] lsls r0, 24 orrs r2, r0 ldr r0, _08025D44 mov r8, r0 ldr r6, _08025D48 ldrb r3, [r6] lsls r0, r3, 3 subs r0, r3 lsls r0, 2 mov r1, r8 adds r4, r0, r1 ldrb r1, [r4, 0x9] cmp r1, 0 bne _08025D50 str r2, [r7] ldr r0, _08025D4C strb r1, [r0, 0x5] b _08025DD0 .align 2, 0 _08025D40: .4byte 0x02024c10 _08025D44: .4byte 0x02024ca8 _08025D48: .4byte 0x02024c07 _08025D4C: .4byte 0x02024d1e _08025D50: ldr r1, _08025D74 movs r0, 0x58 muls r0, r3 adds r1, r0, r1 ldrh r0, [r1, 0x2C] ldrh r3, [r1, 0x28] cmp r0, r3 bne _08025D80 movs r0, 0 strb r0, [r4, 0x9] str r2, [r7] ldr r1, _08025D78 ldrb r0, [r6] strb r0, [r1] ldr r1, _08025D7C movs r0, 0x1 strb r0, [r1, 0x5] b _08025DD0 .align 2, 0 _08025D74: .4byte 0x02024a80 _08025D78: .4byte 0x02024c08 _08025D7C: .4byte 0x02024d1e _08025D80: ldr r5, _08025DDC ldrh r0, [r1, 0x2C] ldrb r1, [r4, 0x9] movs r2, 0x3 subs r2, r1 movs r4, 0x1 adds r1, r4, 0 lsls r1, r2 bl __divsi3 str r0, [r5] cmp r0, 0 bne _08025D9C str r4, [r5] _08025D9C: ldr r0, [r5] negs r0, r0 str r0, [r5] ldr r2, _08025DE0 ldrb r1, [r6] lsls r0, r1, 3 subs r0, r1 lsls r0, 2 add r0, r8 ldrb r0, [r0, 0x9] ldr r1, _08025DE4 adds r2, r1 movs r3, 0 strb r0, [r2] ldrb r1, [r6] lsls r0, r1, 3 subs r0, r1 lsls r0, 2 add r0, r8 strb r3, [r0, 0x9] ldr r0, [r7] adds r0, 0x5 str r0, [r7] ldr r1, _08025DE8 ldrb r0, [r6] strb r0, [r1] _08025DD0: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08025DDC: .4byte 0x02024bec _08025DE0: .4byte 0x02000000 _08025DE4: .4byte 0x00016002 _08025DE8: .4byte 0x02024c08 thumb_func_end sub_8025D00 thumb_func_start atk88_negativedamage atk88_negativedamage: @ 8025DEC push {lr} ldr r2, _08025E14 ldr r0, _08025E18 ldr r0, [r0] lsrs r1, r0, 31 adds r0, r1 asrs r0, 1 negs r0, r0 str r0, [r2] cmp r0, 0 bne _08025E08 movs r0, 0x1 negs r0, r0 str r0, [r2] _08025E08: ldr r1, _08025E1C ldr r0, [r1] adds r0, 0x1 str r0, [r1] pop {r0} bx r0 .align 2, 0 _08025E14: .4byte 0x02024bec _08025E18: .4byte 0x02024bf0 _08025E1C: .4byte 0x02024c10 thumb_func_end atk88_negativedamage thumb_func_start sub_8025E20 sub_8025E20: @ 8025E20 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} mov r8, r3 lsls r0, 24 lsrs r6, r0, 24 lsls r1, 24 lsrs r7, r1, 24 lsls r2, 24 lsrs r5, r2, 24 movs r0, 0 mov r9, r0 mov r10, r0 movs r0, 0x40 ands r0, r5 cmp r0, 0 beq _08025E54 ldr r0, _08025E4C ldr r1, _08025E50 b _08025E58 .align 2, 0 _08025E4C: .4byte 0x02024a60 _08025E50: .4byte 0x02024c07 _08025E54: ldr r0, _08025EF8 ldr r1, _08025EFC _08025E58: ldrb r1, [r1] strb r1, [r0] movs r0, 0xBF ands r5, r0 movs r0, 0x80 ands r0, r5 cmp r0, 0 beq _08025E72 mov r0, r9 adds r0, 0x1 lsls r0, 24 lsrs r0, 24 mov r9, r0 _08025E72: movs r0, 0x7F ands r5, r0 movs r0, 0x20 ands r0, r5 cmp r0, 0 beq _08025E88 mov r0, r10 adds r0, 0x1 lsls r0, 24 lsrs r0, 24 mov r10, r0 _08025E88: movs r0, 0xDF ands r5, r0 ldr r1, _08025F00 movs r4, 0 movs r2, 0xFD strb r2, [r1] movs r0, 0x5 strb r0, [r1, 0x1] strb r7, [r1, 0x2] movs r3, 0x1 negs r3, r3 mov r12, r3 movs r0, 0xFF strb r0, [r1, 0x3] lsls r0, r6, 24 cmp r0, 0 blt _08025EAC b _080261B0 _08025EAC: ldr r4, _08025F04 ldr r1, _08025EF8 ldrb r0, [r1] bl battle_get_per_side_status movs r1, 0x1 ands r1, r0 lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r4 ldrb r0, [r0, 0x2] cmp r0, 0 beq _08025F54 mov r2, r9 cmp r2, 0 bne _08025F54 ldr r0, _08025F08 ldrh r0, [r0] cmp r0, 0xAE beq _08025F84 cmp r5, 0x1 bne _08025F74 ldr r4, _08025F0C ldr r3, _08025EF8 ldrb r0, [r3] lsls r1, r0, 2 adds r1, r0 lsls r1, 2 adds r1, r4 ldrb r0, [r1] lsls r0, 31 cmp r0, 0 beq _08025F14 ldr r0, _08025F10 mov r4, r8 str r4, [r0] b _08025F74 .align 2, 0 _08025EF8: .4byte 0x02024a60 _08025EFC: .4byte 0x02024c08 _08025F00: .4byte 0x030041c0 _08025F04: .4byte 0x02024c80 _08025F08: .4byte 0x02024be6 _08025F0C: .4byte 0x02024d68 _08025F10: .4byte 0x02024c10 _08025F14: mov r0, r8 bl b_movescr_stack_push ldr r0, _08025F40 ldr r6, _08025F44 ldrb r1, [r6] ldr r2, _08025F48 adds r0, r2 strb r1, [r0] ldr r1, _08025F4C ldr r0, _08025F50 str r0, [r1] ldrb r1, [r6] lsls r0, r1, 2 adds r0, r1 lsls r0, 2 adds r0, r4 ldrb r1, [r0] movs r2, 0x1 orrs r1, r2 strb r1, [r0] b _08025F74 .align 2, 0 _08025F40: .4byte 0x02000000 _08025F44: .4byte 0x02024a60 _08025F48: .4byte 0x00016003 _08025F4C: .4byte 0x02024c10 _08025F50: .4byte gUnknown_081D9128 _08025F54: ldr r0, _08025F78 ldrh r0, [r0] cmp r0, 0xAE beq _08025F84 mov r3, r10 cmp r3, 0x1 beq _08025F84 movs r0, 0 bl sub_801C108 lsls r0, 24 cmp r0, 0 beq _08025F84 ldr r1, _08025F7C ldr r0, _08025F80 str r0, [r1] _08025F74: movs r0, 0x1 b _080262A4 .align 2, 0 _08025F78: .4byte 0x02024be6 _08025F7C: .4byte 0x02024c10 _08025F80: .4byte gUnknown_081D83D6 _08025F84: ldr r2, _08025FCC ldr r1, _08025FD0 ldrb r3, [r1] movs r4, 0x58 adds r0, r3, 0 muls r0, r4 adds r0, r2 adds r0, 0x20 ldrb r0, [r0] mov r10, r2 cmp r0, 0x1D beq _08025FA0 cmp r0, 0x49 bne _08026040 _08025FA0: mov r0, r9 cmp r0, 0 bne _08026040 ldr r0, _08025FD4 ldrh r0, [r0] cmp r0, 0xAE beq _08026040 cmp r5, 0x1 bne _08025F74 ldr r4, _08025FD8 lsls r0, r3, 2 adds r0, r3 lsls r0, 2 adds r0, r4 ldrb r0, [r0] lsls r0, 31 cmp r0, 0 beq _08025FE0 ldr r0, _08025FDC mov r1, r8 str r1, [r0] b _08025F74 .align 2, 0 _08025FCC: .4byte 0x02024a80 _08025FD0: .4byte 0x02024a60 _08025FD4: .4byte 0x02024be6 _08025FD8: .4byte 0x02024d68 _08025FDC: .4byte 0x02024c10 _08025FE0: mov r0, r8 bl b_movescr_stack_push ldr r0, _08026028 ldr r2, _0802602C ldrb r1, [r2] ldr r3, _08026030 adds r0, r3 strb r1, [r0] ldr r1, _08026034 ldr r0, _08026038 str r0, [r1] ldr r1, _0802603C ldrb r0, [r2] movs r6, 0x58 muls r0, r6 add r0, r10 adds r0, 0x20 ldrb r0, [r0] strb r0, [r1] ldrb r0, [r2] ldrb r1, [r1] bl sub_81074C4 ldr r0, _0802602C ldrb r1, [r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 2 adds r0, r4 ldrb r1, [r0] movs r2, 0x1 orrs r1, r2 strb r1, [r0] b _08025F74 .align 2, 0 _08026028: .4byte 0x02000000 _0802602C: .4byte 0x02024a60 _08026030: .4byte 0x00016003 _08026034: .4byte 0x02024c10 _08026038: .4byte gUnknown_081D989B _0802603C: .4byte 0x02024c06 _08026040: ldr r1, _08026090 ldrb r0, [r1] movs r4, 0x58 muls r0, r4 add r0, r10 adds r0, 0x20 ldrb r0, [r0] cmp r0, 0x33 bne _080260A8 mov r2, r9 cmp r2, 0 bne _080260A8 cmp r7, 0x6 bne _080260A8 cmp r5, 0x1 bne _08025F74 mov r0, r8 bl b_movescr_stack_push ldr r0, _08026094 ldr r3, _08026090 ldrb r1, [r3] ldr r6, _08026098 adds r0, r6 strb r1, [r0] ldr r1, _0802609C ldr r0, _080260A0 str r0, [r1] ldr r1, _080260A4 ldrb r0, [r3] muls r0, r4 add r0, r10 adds r0, 0x20 ldrb r0, [r0] strb r0, [r1] ldrb r0, [r3] ldrb r1, [r1] bl sub_81074C4 b _08025F74 .align 2, 0 _08026090: .4byte 0x02024a60 _08026094: .4byte 0x02000000 _08026098: .4byte 0x00016003 _0802609C: .4byte 0x02024c10 _080260A0: .4byte gUnknown_081D9903 _080260A4: .4byte 0x02024c06 _080260A8: ldr r1, _080260FC ldrb r0, [r1] movs r4, 0x58 muls r0, r4 add r0, r10 adds r0, 0x20 ldrb r0, [r0] cmp r0, 0x34 bne _08026114 mov r2, r9 cmp r2, 0 bne _08026114 cmp r7, 0x1 bne _08026114 cmp r5, 0x1 beq _080260CA b _08025F74 _080260CA: mov r0, r8 bl b_movescr_stack_push ldr r0, _08026100 ldr r3, _080260FC ldrb r1, [r3] ldr r6, _08026104 adds r0, r6 strb r1, [r0] ldr r1, _08026108 ldr r0, _0802610C str r0, [r1] ldr r1, _08026110 ldrb r0, [r3] muls r0, r4 add r0, r10 adds r0, 0x20 ldrb r0, [r0] strb r0, [r1] ldrb r0, [r3] ldrb r1, [r1] bl sub_81074C4 b _08025F74 .align 2, 0 _080260FC: .4byte 0x02024a60 _08026100: .4byte 0x02000000 _08026104: .4byte 0x00016003 _08026108: .4byte 0x02024c10 _0802610C: .4byte gUnknown_081D9903 _08026110: .4byte 0x02024c06 _08026114: ldr r0, _080261A0 ldrb r1, [r0] movs r0, 0x58 muls r0, r1 add r0, r10 adds r0, 0x20 ldrb r0, [r0] cmp r0, 0x13 bne _0802612C cmp r5, 0 bne _0802612C b _08025F74 _0802612C: lsls r0, r6, 24 asrs r0, 28 movs r1, 0x7 ands r0, r1 negs r0, r0 lsls r0, 24 ldr r3, _080261A4 movs r4, 0 movs r1, 0xFD strb r1, [r3] movs r2, 0x1 lsrs r6, r0, 24 asrs r0, 24 subs r1, 0xFF cmp r0, r1 bne _08026156 strb r4, [r3, 0x1] movs r0, 0xD3 strb r0, [r3, 0x2] strb r4, [r3, 0x3] movs r2, 0x4 _08026156: adds r0, r2, r3 strb r4, [r0] adds r2, 0x1 adds r1, r2, r3 movs r0, 0xD4 strb r0, [r1] adds r2, 0x1 adds r0, r2, r3 strb r4, [r0] adds r2, 0x1 adds r1, r2, r3 movs r0, 0xFF strb r0, [r1] ldr r1, _080261A0 ldrb r2, [r1] movs r0, 0x58 muls r0, r2 adds r0, r7, r0 mov r1, r10 adds r1, 0x18 adds r0, r1 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 cmp r0, 0 beq _08026206 movs r1, 0 ldr r0, _080261A8 ldrb r0, [r0] ldr r3, _080261AC mov r8, r3 cmp r0, r2 bne _0802619A movs r1, 0x1 _0802619A: mov r4, r8 strb r1, [r4, 0x5] b _08026234 .align 2, 0 _080261A0: .4byte 0x02024a60 _080261A4: .4byte 0x03004290 _080261A8: .4byte 0x02024c08 _080261AC: .4byte 0x02024d1e _080261B0: asrs r6, r0, 28 movs r0, 0x7 ands r6, r0 ldr r3, _08026210 strb r2, [r3] movs r2, 0x1 cmp r6, 0x2 bne _080261CA strb r4, [r3, 0x1] movs r0, 0xD1 strb r0, [r3, 0x2] strb r4, [r3, 0x3] movs r2, 0x4 _080261CA: adds r0, r2, r3 strb r4, [r0] adds r2, 0x1 adds r1, r2, r3 movs r0, 0xD2 strb r0, [r1] adds r2, 0x1 adds r0, r2, r3 strb r4, [r0] adds r2, 0x1 adds r1, r2, r3 ldrb r0, [r1] mov r2, r12 orrs r0, r2 strb r0, [r1] ldr r2, _08026214 ldr r4, _08026218 ldrb r3, [r4] movs r0, 0x58 muls r0, r3 adds r0, r7, r0 adds r1, r2, 0 adds r1, 0x18 adds r0, r1 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 mov r10, r2 cmp r0, 0xC bne _08026220 _08026206: ldr r1, _0802621C movs r0, 0x2 strb r0, [r1, 0x5] mov r8, r1 b _08026234 .align 2, 0 _08026210: .4byte 0x03004290 _08026214: .4byte 0x02024a80 _08026218: .4byte 0x02024a60 _0802621C: .4byte 0x02024d1e _08026220: movs r1, 0 ldr r0, _080262B4 ldrb r0, [r0] ldr r2, _080262B8 mov r8, r2 cmp r0, r3 bne _08026230 movs r1, 0x1 _08026230: mov r3, r8 strb r1, [r3, 0x5] _08026234: ldr r2, _080262BC ldrb r0, [r2] movs r4, 0x58 adds r1, r0, 0 muls r1, r4 adds r1, r7, r1 mov r3, r10 adds r3, 0x18 adds r1, r3 lsls r0, r6, 24 asrs r0, 24 ldrb r6, [r1] adds r0, r6 strb r0, [r1] ldrb r0, [r2] muls r0, r4 adds r0, r7, r0 adds r1, r0, r3 movs r0, 0 ldrsb r0, [r1, r0] cmp r0, 0 bge _08026264 movs r0, 0 strb r0, [r1] _08026264: ldr r1, _080262BC ldrb r0, [r1] muls r0, r4 adds r0, r7, r0 adds r1, r0, r3 movs r0, 0 ldrsb r0, [r1, r0] cmp r0, 0xC ble _0802627A movs r0, 0xC strb r0, [r1] _0802627A: mov r2, r8 ldrb r0, [r2, 0x5] cmp r0, 0x2 bne _080262A2 movs r3, 0x1 ands r3, r5 cmp r3, 0 beq _08026294 ldr r0, _080262C0 ldrb r1, [r0] movs r2, 0x1 orrs r1, r2 strb r1, [r0] _08026294: mov r4, r8 ldrb r0, [r4, 0x5] cmp r0, 0x2 bne _080262A2 cmp r3, 0 bne _080262A2 b _08025F74 _080262A2: movs r0, 0 _080262A4: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _080262B4: .4byte 0x02024c08 _080262B8: .4byte 0x02024d1e _080262BC: .4byte 0x02024a60 _080262C0: .4byte 0x02024c68 thumb_func_end sub_8025E20 thumb_func_start atk89_statbuffchange atk89_statbuffchange: @ 80262C4 push {r4,r5,lr} ldr r5, _0802630C ldr r2, [r5] ldrb r3, [r2, 0x2] ldrb r0, [r2, 0x3] lsls r0, 8 orrs r3, r0 ldrb r0, [r2, 0x4] lsls r0, 16 orrs r3, r0 ldrb r0, [r2, 0x5] lsls r0, 24 orrs r3, r0 ldr r0, _08026310 ldr r1, _08026314 adds r0, r1 ldrb r4, [r0] movs r0, 0xF0 ands r0, r4 lsls r0, 24 asrs r0, 24 movs r1, 0xF ands r1, r4 ldrb r2, [r2, 0x1] bl sub_8025E20 lsls r0, 24 cmp r0, 0 bne _08026304 ldr r0, [r5] adds r0, 0x6 str r0, [r5] _08026304: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0802630C: .4byte 0x02024c10 _08026310: .4byte 0x02000000 _08026314: .4byte 0x0001601e thumb_func_end atk89_statbuffchange thumb_func_start atk8A_normalisebuffs atk8A_normalisebuffs: @ 8026318 push {r4-r7,lr} movs r2, 0 ldr r0, _08026360 ldrb r1, [r0] ldr r0, _08026364 mov r12, r0 cmp r2, r1 bge _08026350 ldr r0, _08026368 movs r4, 0x6 adds r5, r1, 0 movs r7, 0x58 adds r6, r0, 0 adds r6, 0x18 _08026334: adds r3, r2, 0x1 movs r1, 0x7 adds r0, r2, 0 muls r0, r7 adds r0, r6 adds r0, 0x7 _08026340: strb r4, [r0] subs r0, 0x1 subs r1, 0x1 cmp r1, 0 bge _08026340 adds r2, r3, 0 cmp r2, r5 blt _08026334 _08026350: mov r1, r12 ldr r0, [r1] adds r0, 0x1 str r0, [r1] pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08026360: .4byte 0x02024a68 _08026364: .4byte 0x02024c10 _08026368: .4byte 0x02024a80 thumb_func_end atk8A_normalisebuffs thumb_func_start atk8B_setbide atk8B_setbide: @ 802636C push {r4,r5,lr} ldr r4, _080263C4 ldr r3, _080263C8 ldrb r0, [r3] movs r5, 0x58 adds r2, r0, 0 muls r2, r5 adds r4, 0x50 adds r2, r4 ldr r0, [r2] movs r1, 0x80 lsls r1, 5 orrs r0, r1 str r0, [r2] ldr r1, _080263CC ldrb r0, [r3] lsls r0, 1 adds r0, r1 ldr r1, _080263D0 ldrh r1, [r1] movs r2, 0 strh r1, [r0] ldr r1, _080263D4 ldrb r0, [r3] lsls r0, 2 adds r0, r1 str r2, [r0] ldrb r0, [r3] adds r1, r0, 0 muls r1, r5 adds r1, r4 ldr r0, [r1] movs r2, 0x80 lsls r2, 2 orrs r0, r2 str r0, [r1] ldr r1, _080263D8 ldr r0, [r1] adds r0, 0x1 str r0, [r1] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080263C4: .4byte 0x02024a80 _080263C8: .4byte 0x02024c07 _080263CC: .4byte 0x02024c54 _080263D0: .4byte 0x02024be6 _080263D4: .4byte 0x02024bf4 _080263D8: .4byte 0x02024c10 thumb_func_end atk8B_setbide thumb_func_start atk8C_confuseifrepeatingattackends atk8C_confuseifrepeatingattackends: @ 80263DC push {lr} ldr r1, _0802640C ldr r0, _08026410 ldrb r2, [r0] movs r0, 0x58 muls r0, r2 adds r1, 0x50 adds r0, r1 ldr r0, [r0] movs r1, 0xC0 lsls r1, 4 ands r0, r1 cmp r0, 0 bne _080263FE ldr r1, _08026414 movs r0, 0x75 strb r0, [r1, 0x3] _080263FE: ldr r1, _08026418 ldr r0, [r1] adds r0, 0x1 str r0, [r1] pop {r0} bx r0 .align 2, 0 _0802640C: .4byte 0x02024a80 _08026410: .4byte 0x02024c07 _08026414: .4byte 0x02024d1e _08026418: .4byte 0x02024c10 thumb_func_end atk8C_confuseifrepeatingattackends thumb_func_start atk8D_setloopcounter atk8D_setloopcounter: @ 802641C push {r4,r5,lr} ldr r0, _08026430 ldr r0, [r0] ldrb r1, [r0, 0x1] cmp r1, 0 beq _08026438 ldr r0, _08026434 strb r1, [r0] b _08026452 .align 2, 0 _08026430: .4byte 0x02024c10 _08026434: .4byte 0x02024c0e _08026438: ldr r4, _08026460 bl Random movs r5, 0x3 ands r0, r5 strb r0, [r4] cmp r0, 0x1 bls _0802644E bl Random ands r0, r5 _0802644E: adds r0, 0x2 strb r0, [r4] _08026452: ldr r1, _08026464 ldr r0, [r1] adds r0, 0x2 str r0, [r1] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08026460: .4byte 0x02024c0e _08026464: .4byte 0x02024c10 thumb_func_end atk8D_setloopcounter thumb_func_start sub_8026468 sub_8026468: @ 8026468 push {r4,lr} ldr r1, _080264A8 ldr r0, _080264AC adds r2, r1, r0 movs r3, 0 movs r0, 0xFD strb r0, [r2] ldr r2, _080264B0 adds r0, r1, r2 movs r2, 0x1 strb r2, [r0] ldr r4, _080264B4 adds r0, r1, r4 strb r2, [r0] adds r4, 0x1 adds r0, r1, r4 strb r2, [r0] ldr r2, _080264B8 adds r0, r1, r2 strb r3, [r0] adds r4, 0x2 adds r1, r4 movs r0, 0xFF strb r0, [r1] ldr r1, _080264BC ldr r0, [r1] adds r0, 0x1 str r0, [r1] pop {r4} pop {r0} bx r0 .align 2, 0 _080264A8: .4byte 0x02000000 _080264AC: .4byte 0x000160e0 _080264B0: .4byte 0x000160e1 _080264B4: .4byte 0x000160e2 _080264B8: .4byte 0x000160e4 _080264BC: .4byte 0x02024c10 thumb_func_end sub_8026468 thumb_func_start sub_80264C0 sub_80264C0: @ 80264C0 push {r4-r7,lr} ldr r6, _080264F4 ldr r7, _080264F8 ldrb r0, [r7] movs r5, 0x58 adds r1, r0, 0 muls r1, r5 adds r1, r6 adds r1, 0x2A ldr r4, _080264FC ldrb r3, [r4] adds r0, r3, 0 muls r0, r5 adds r0, r6 adds r0, 0x2A ldrb r1, [r1] ldrb r0, [r0] cmp r1, r0 bcc _0802650C ldr r0, _08026500 ldr r2, _08026504 adds r1, r3, r2 adds r1, r0 ldr r2, _08026508 lsls r0, r3, 1 b _08026568 .align 2, 0 _080264F4: .4byte 0x02024a80 _080264F8: .4byte 0x02024c07 _080264FC: .4byte 0x02024c08 _08026500: .4byte 0x02000000 _08026504: .4byte 0x00016064 _08026508: .4byte 0x02024a6a _0802650C: bl Random movs r3, 0xFF ands r3, r0 ldrb r0, [r7] muls r0, r5 adds r0, r6 adds r0, 0x2A ldrb r2, [r0] ldrb r4, [r4] adds r0, r4, 0 muls r0, r5 adds r0, r6 adds r0, 0x2A ldrb r1, [r0] adds r2, r1 adds r0, r3, 0 muls r0, r2 asrs r0, 8 adds r0, 0x1 lsrs r1, 2 cmp r0, r1 bhi _0802655C ldr r3, _08026558 ldr r2, [r3] ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x4] lsls r0, 24 orrs r1, r0 str r1, [r3] movs r0, 0 b _08026576 .align 2, 0 _08026558: .4byte 0x02024c10 _0802655C: ldr r0, _0802657C ldr r2, _08026580 adds r1, r4, r2 adds r1, r0 ldr r2, _08026584 lsls r0, r4, 1 _08026568: adds r0, r2 ldrh r0, [r0] strb r0, [r1] ldr r1, _08026588 ldr r0, _0802658C str r0, [r1] movs r0, 0x1 _08026576: pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0802657C: .4byte 0x02000000 _08026580: .4byte 0x00016064 _08026584: .4byte 0x02024a6a _08026588: .4byte 0x02024c10 _0802658C: .4byte gUnknown_081D90FC thumb_func_end sub_80264C0 thumb_func_start sub_8026590 sub_8026590: @ 8026590 push {r4-r7,lr} mov r7, r8 push {r7} ldr r4, _08026628 ldrh r1, [r4] movs r0, 0x8 ands r0, r1 cmp r0, 0 bne _080265A4 b _0802687C _080265A4: ldr r5, _0802662C ldrb r0, [r5] bl battle_side_get_owner lsls r0, 24 ldr r1, _08026630 mov r8, r1 cmp r0, 0 bne _080265BA ldr r2, _08026634 mov r8, r2 _080265BA: ldrh r1, [r4] movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _08026638 movs r7, 0 movs r6, 0 ldrb r0, [r5] bl sub_803FC34 lsls r0, 24 lsrs r0, 24 bl sub_803FBFC lsls r0, 16 lsrs r0, 16 cmp r0, 0x1 bne _080265E0 movs r6, 0x3 _080265E0: adds r5, r6, 0 adds r0, r5, 0x3 cmp r5, r0 bge _08026678 _080265E8: movs r0, 0x64 muls r0, r5 mov r1, r8 adds r4, r1, r0 adds r0, r4, 0 movs r1, 0xB bl PokemonGetField cmp r0, 0 beq _0802661A adds r0, r4, 0 movs r1, 0x2D bl PokemonGetField cmp r0, 0 bne _0802661A adds r0, r4, 0 movs r1, 0x39 bl PokemonGetField cmp r0, 0 beq _0802661A adds r0, r7, 0x1 lsls r0, 24 lsrs r7, r0, 24 _0802661A: adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 adds r0, r6, 0x3 cmp r5, r0 blt _080265E8 b _08026678 .align 2, 0 _08026628: .4byte 0x020239f8 _0802662C: .4byte 0x02024c08 _08026630: .4byte 0x030045c0 _08026634: .4byte 0x03004360 _08026638: movs r7, 0 movs r5, 0 _0802663C: movs r0, 0x64 muls r0, r5 mov r2, r8 adds r4, r2, r0 adds r0, r4, 0 movs r1, 0xB bl PokemonGetField cmp r0, 0 beq _0802666E adds r0, r4, 0 movs r1, 0x2D bl PokemonGetField cmp r0, 0 bne _0802666E adds r0, r4, 0 movs r1, 0x39 bl PokemonGetField cmp r0, 0 beq _0802666E adds r0, r7, 0x1 lsls r0, 24 lsrs r7, r0, 24 _0802666E: adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0x5 bls _0802663C _08026678: cmp r7, 0x1 bhi _08026688 ldr r0, _080266BC ldrh r1, [r0] movs r0, 0x41 ands r0, r1 cmp r0, 0x1 bne _080266A0 _08026688: cmp r7, 0x2 bhi _080266C4 ldr r0, _080266BC ldrh r1, [r0] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _080266C4 movs r0, 0x40 ands r0, r1 cmp r0, 0 bne _080266C4 _080266A0: ldr r3, _080266C0 ldr r2, [r3] ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x4] lsls r0, 24 orrs r1, r0 str r1, [r3] b _08026880 .align 2, 0 _080266BC: .4byte 0x020239f8 _080266C0: .4byte 0x02024c10 _080266C4: bl sub_80264C0 lsls r0, 24 cmp r0, 0 bne _080266D0 b _08026880 _080266D0: ldr r0, _08026710 ldrh r1, [r0] movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _08026774 _080266DC: bl Random lsls r0, 16 lsrs r0, 16 movs r1, 0x3 bl __umodsi3 lsls r0, 24 lsrs r6, r0, 24 ldr r0, _08026714 ldrb r0, [r0] bl sub_803FC34 lsls r0, 24 lsrs r0, 24 bl sub_803FBFC lsls r0, 16 lsrs r0, 16 cmp r0, 0x1 bne _08026718 adds r0, r6, 0x3 lsls r0, 24 lsrs r5, r0, 24 b _0802671A .align 2, 0 _08026710: .4byte 0x020239f8 _08026714: .4byte 0x02024c08 _08026718: adds r5, r6, 0 _0802671A: ldr r4, _0802676C ldr r0, _08026770 ldrb r2, [r0] lsls r1, r2, 1 adds r1, r4 lsls r0, r5, 16 lsrs r3, r0, 16 ldrh r1, [r1] cmp r3, r1 beq _080266DC movs r0, 0x2 eors r2, r0 lsls r0, r2, 1 adds r0, r4 ldrh r0, [r0] cmp r3, r0 beq _080266DC movs r0, 0x64 muls r0, r5 mov r1, r8 adds r4, r1, r0 adds r0, r4, 0 movs r1, 0xB bl PokemonGetField cmp r0, 0 beq _080266DC adds r0, r4, 0 movs r1, 0x2D bl PokemonGetField cmp r0, 0x1 beq _080266DC adds r0, r4, 0 movs r1, 0x39 bl PokemonGetField cmp r0, 0 beq _080266DC b _08026832 .align 2, 0 _0802676C: .4byte 0x02024a6a _08026770: .4byte 0x02024c08 _08026774: movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _080267E4 ldr r6, _080267DC _0802677E: bl Random lsls r0, 16 lsrs r0, 16 movs r1, 0x6 bl __umodsi3 lsls r0, 24 lsrs r5, r0, 24 ldr r0, _080267E0 ldrb r1, [r0] lsls r0, r1, 1 adds r0, r6 adds r2, r5, 0 ldrh r0, [r0] cmp r2, r0 beq _0802677E movs r0, 0x2 eors r1, r0 lsls r0, r1, 1 adds r0, r6 ldrh r0, [r0] cmp r2, r0 beq _0802677E movs r0, 0x64 muls r0, r5 mov r2, r8 adds r4, r2, r0 adds r0, r4, 0 movs r1, 0xB bl PokemonGetField cmp r0, 0 beq _0802677E adds r0, r4, 0 movs r1, 0x2D bl PokemonGetField cmp r0, 0x1 beq _0802677E adds r0, r4, 0 movs r1, 0x39 bl PokemonGetField cmp r0, 0 beq _0802677E b _08026832 .align 2, 0 _080267DC: .4byte 0x02024a6a _080267E0: .4byte 0x02024c08 _080267E4: ldr r6, _0802686C _080267E6: bl Random lsls r0, 16 lsrs r0, 16 movs r1, 0x6 bl __umodsi3 lsls r0, 24 lsrs r5, r0, 24 ldr r0, _08026870 ldrb r0, [r0] lsls r0, 1 adds r0, r6 ldrh r0, [r0] cmp r5, r0 beq _080267E6 movs r0, 0x64 muls r0, r5 mov r1, r8 adds r4, r1, r0 adds r0, r4, 0 movs r1, 0xB bl PokemonGetField cmp r0, 0 beq _080267E6 adds r0, r4, 0 movs r1, 0x2D bl PokemonGetField cmp r0, 0x1 beq _080267E6 adds r0, r4, 0 movs r1, 0x39 bl PokemonGetField cmp r0, 0 beq _080267E6 _08026832: ldr r0, _08026874 ldr r4, _08026870 ldrb r1, [r4] ldr r2, _08026878 adds r1, r2 adds r1, r0 strb r5, [r1] bl sub_806B528 lsls r0, 24 cmp r0, 0 bne _08026850 ldrb r0, [r4] bl sub_8012258 _08026850: ldrb r0, [r4] adds r1, r5, 0 movs r2, 0 bl sub_8094B6C ldrb r1, [r4] movs r0, 0x2 eors r0, r1 adds r1, r5, 0 movs r2, 0x1 bl sub_8094B6C b _08026880 .align 2, 0 _0802686C: .4byte 0x02024a6a _08026870: .4byte 0x02024c08 _08026874: .4byte 0x02000000 _08026878: .4byte 0x00016068 _0802687C: bl sub_80264C0 _08026880: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8026590 thumb_func_start sub_802688C sub_802688C: @ 802688C push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} movs r6, 0 ldr r2, _08026920 ldr r3, _08026924 ldrb r1, [r3] movs r0, 0x58 muls r0, r1 adds r1, r2, 0 adds r1, 0xC adds r0, r1 ldrh r0, [r0] mov r8, r2 cmp r0, 0 beq _080268CE movs r5, 0x58 adds r2, r1, 0 _080268B4: adds r0, r6, 0x1 lsls r0, 24 lsrs r6, r0, 24 cmp r6, 0x3 bhi _080268CE lsls r1, r6, 1 ldrb r0, [r3] muls r0, r5 adds r1, r0 adds r1, r2 ldrh r0, [r1] cmp r0, 0 bne _080268B4 _080268CE: movs r3, 0 cmp r3, r6 bcs _08026950 ldr r0, _08026928 mov r10, r0 ldr r5, _08026920 mov r12, r5 ldr r7, _08026924 ldrb r0, [r7] movs r4, 0x58 adds r5, r0, 0 muls r5, r4 movs r0, 0xC add r0, r12 mov r9, r0 _080268EC: lsls r0, r3, 1 adds r0, r5 add r0, r9 ldrh r1, [r0] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 add r0, r10 ldrb r2, [r0, 0x2] cmp r2, 0x9 bne _0802692E mov r0, r8 adds r1, r5, r0 adds r0, r1, 0 adds r0, 0x21 ldrb r0, [r0] cmp r0, 0x7 beq _0802691A adds r0, r1, 0 adds r0, 0x22 ldrb r0, [r0] cmp r0, 0x7 bne _0802692C _0802691A: movs r2, 0x7 b _0802692E .align 2, 0 _08026920: .4byte 0x02024a80 _08026924: .4byte 0x02024c07 _08026928: .4byte gBattleMoves _0802692C: movs r2, 0 _0802692E: ldrb r0, [r7] muls r0, r4 add r0, r12 adds r1, r0, 0 adds r1, 0x21 ldrb r1, [r1] cmp r2, r1 beq _08026946 adds r0, 0x22 ldrb r0, [r0] cmp r2, r0 bne _08026950 _08026946: adds r0, r3, 0x1 lsls r0, 24 lsrs r3, r0, 24 cmp r3, r6 bcc _080268EC _08026950: cmp r3, r6 bne _08026974 ldr r3, _08026970 ldr r2, [r3] ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x4] lsls r0, 24 orrs r1, r0 str r1, [r3] b _08026A18 .align 2, 0 _08026970: .4byte 0x02024c10 _08026974: movs r7, 0x3 ldr r5, _080269CC mov r9, r5 _0802697A: bl Random adds r3, r0, 0 ands r3, r7 cmp r3, r6 bcs _0802697A ldr r4, _080269D0 lsls r1, r3, 1 ldr r3, _080269D4 ldrb r2, [r3] movs r0, 0x58 adds r5, r2, 0 muls r5, r0 adds r1, r5 adds r0, r4, 0 adds r0, 0xC adds r1, r0 ldrh r1, [r1] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 add r0, r9 ldrb r2, [r0, 0x2] mov r8, r4 adds r4, r3, 0 cmp r2, 0x9 bne _080269DA mov r0, r8 adds r2, r5, r0 adds r0, r2, 0 adds r0, 0x21 ldrb r0, [r0] cmp r0, 0x7 beq _080269C8 adds r0, r2, 0 adds r0, 0x22 ldrb r0, [r0] cmp r0, 0x7 bne _080269D8 _080269C8: movs r2, 0x7 b _080269DA .align 2, 0 _080269CC: .4byte gBattleMoves _080269D0: .4byte 0x02024a80 _080269D4: .4byte 0x02024c07 _080269D8: movs r2, 0 _080269DA: ldrb r0, [r4] movs r3, 0x58 muls r0, r3 add r0, r8 adds r1, r0, 0 adds r1, 0x21 ldrb r5, [r1] cmp r2, r5 beq _0802697A adds r0, 0x22 ldrb r0, [r0] cmp r2, r0 beq _0802697A strb r2, [r1] ldrb r0, [r4] muls r0, r3 add r0, r8 adds r0, 0x22 strb r2, [r0] ldr r1, _08026A28 movs r0, 0xFD strb r0, [r1] movs r0, 0x3 strb r0, [r1, 0x1] strb r2, [r1, 0x2] movs r0, 0xFF strb r0, [r1, 0x3] ldr r1, _08026A2C ldr r0, [r1] adds r0, 0x5 str r0, [r1] _08026A18: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08026A28: .4byte 0x030041c0 _08026A2C: .4byte 0x02024c10 thumb_func_end sub_802688C thumb_func_start atk91_givemoney atk91_givemoney: @ 8026A30 push {r4,lr} ldr r0, _08026A8C ldrh r1, [r0] movs r0, 0x2 ands r0, r1 cmp r0, 0 bne _08026AAC ldr r4, _08026A90 ldrh r0, [r4] cmp r0, 0 beq _08026AAC ldr r0, _08026A94 ldrh r2, [r4] ldr r1, _08026A98 ldr r3, _08026A9C adds r1, r3 ldrb r1, [r1] muls r1, r2 bl sub_80B79B8 ldr r1, _08026AA0 movs r0, 0xFD strb r0, [r1] movs r0, 0x1 strb r0, [r1, 0x1] movs r0, 0x2 strb r0, [r1, 0x2] movs r0, 0x5 strb r0, [r1, 0x3] ldrh r2, [r4] strb r2, [r1, 0x4] movs r0, 0xFF lsls r0, 8 ands r0, r2 lsrs r0, 8 strb r0, [r1, 0x5] movs r0, 0xFF strb r0, [r1, 0x6] ldr r4, _08026AA4 ldr r0, [r4] adds r0, 0x1 bl b_movescr_stack_push ldr r0, _08026AA8 str r0, [r4] b _08026AB4 .align 2, 0 _08026A8C: .4byte 0x020239f8 _08026A90: .4byte 0x02024d1a _08026A94: .4byte 0x02025bc4 _08026A98: .4byte 0x02000000 _08026A9C: .4byte 0x00016056 _08026AA0: .4byte 0x030041c0 _08026AA4: .4byte 0x02024c10 _08026AA8: .4byte gUnknown_081D95DB _08026AAC: ldr r1, _08026ABC ldr r0, [r1] adds r0, 0x1 str r0, [r1] _08026AB4: pop {r4} pop {r0} bx r0 .align 2, 0 _08026ABC: .4byte 0x02024c10 thumb_func_end atk91_givemoney thumb_func_start atk92_setlightscreen atk92_setlightscreen: @ 8026AC0 push {r4-r6,lr} ldr r4, _08026AF0 ldrb r0, [r4] bl battle_get_per_side_status ldr r6, _08026AF4 movs r5, 0x1 adds r1, r5, 0 ands r1, r0 lsls r1, 1 adds r1, r6 ldrh r1, [r1] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _08026B00 ldr r2, _08026AF8 ldrb r0, [r2] movs r1, 0x1 orrs r0, r1 strb r0, [r2] ldr r1, _08026AFC movs r0, 0 b _08026B60 .align 2, 0 _08026AF0: .4byte 0x02024c07 _08026AF4: .4byte 0x02024c7a _08026AF8: .4byte 0x02024c68 _08026AFC: .4byte 0x02024d1e _08026B00: ldrb r0, [r4] bl battle_get_per_side_status adds r1, r5, 0 ands r1, r0 lsls r1, 1 adds r1, r6 ldrh r0, [r1] movs r2, 0x2 orrs r0, r2 strh r0, [r1] ldrb r0, [r4] bl battle_get_per_side_status ldr r2, _08026B50 adds r1, r5, 0 ands r1, r0 lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r2 movs r1, 0x5 strb r1, [r0, 0x1] ldr r0, _08026B54 ldrh r1, [r0] adds r0, r5, 0 ands r0, r1 cmp r0, 0 beq _08026B5C movs r0, 0x1 bl sub_803C348 lsls r0, 24 lsrs r0, 24 cmp r0, 0x2 bne _08026B5C ldr r1, _08026B58 movs r0, 0x4 b _08026B60 .align 2, 0 _08026B50: .4byte 0x02024c80 _08026B54: .4byte 0x020239f8 _08026B58: .4byte 0x02024d1e _08026B5C: ldr r1, _08026B70 movs r0, 0x3 _08026B60: strb r0, [r1, 0x5] ldr r1, _08026B74 ldr r0, [r1] adds r0, 0x1 str r0, [r1] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08026B70: .4byte 0x02024d1e _08026B74: .4byte 0x02024c10 thumb_func_end atk92_setlightscreen thumb_func_start sub_8026B78 sub_8026B78: @ 8026B78 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} ldr r7, _08026BA8 ldr r6, _08026BAC ldrb r2, [r6] movs r5, 0x58 adds r0, r2, 0 muls r0, r5 adds r1, r0, r7 ldrh r0, [r1, 0x2E] cmp r0, 0xAF bne _08026BB4 ldr r1, _08026BB0 lsls r0, r2, 3 subs r0, r2 lsls r0, 2 adds r0, r1 ldrb r4, [r0, 0x7] ldrb r6, [r0, 0x1A] b _08026BCE .align 2, 0 _08026BA8: .4byte 0x02024a80 _08026BAC: .4byte 0x02024c08 _08026BB0: .4byte 0x02024df0 _08026BB4: ldrh r0, [r1, 0x2E] bl itemid_get_x12 lsls r0, 24 lsrs r4, r0, 24 ldrb r0, [r6] muls r0, r5 adds r0, r7 ldrh r0, [r0, 0x2E] bl itemid_get_quality lsls r0, 24 lsrs r6, r0, 24 _08026BCE: ldr r1, _08026C4C ldr r5, _08026C50 ldrb r0, [r5] strb r0, [r1] cmp r4, 0x27 bne _08026C0C bl Random lsls r0, 16 lsrs r0, 16 movs r1, 0x64 bl __umodsi3 lsls r0, 16 lsrs r0, 16 cmp r0, r6 bcs _08026C0C ldrb r0, [r5] movs r1, 0x27 bl sub_81074F8 ldr r2, _08026C54 ldrb r1, [r5] lsls r0, r1, 2 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r1, [r0] movs r2, 0x80 orrs r1, r2 strb r1, [r0] _08026C0C: ldr r0, _08026C58 mov r8, r0 ldr r1, _08026C50 ldrb r2, [r1] movs r6, 0x58 adds r0, r2, 0 muls r0, r6 mov r3, r8 adds r5, r0, r3 adds r0, r5, 0 adds r0, 0x20 ldrb r3, [r0] mov r10, r8 cmp r3, 0x5 bne _08026C6C ldr r2, _08026C5C ldrb r0, [r2] movs r1, 0x1 orrs r0, r1 strb r0, [r2] ldr r0, _08026C60 strb r3, [r0] ldr r1, _08026C64 ldr r0, _08026C68 str r0, [r1] ldr r1, _08026C50 ldrb r0, [r1] movs r1, 0x5 bl sub_81074C4 b _08026E40 .align 2, 0 _08026C4C: .4byte 0x02024c0b _08026C50: .4byte 0x02024c08 _08026C54: .4byte 0x02024d68 _08026C58: .4byte 0x02024a80 _08026C5C: .4byte 0x02024c68 _08026C60: .4byte 0x02024c06 _08026C64: .4byte 0x02024c10 _08026C68: .4byte gUnknown_081D9826 _08026C6C: ldr r1, _08026CE0 lsls r0, r2, 2 adds r0, r1 ldr r0, [r0] movs r1, 0x18 ands r0, r1 cmp r0, 0 bne _08026CF4 ldr r1, _08026CE4 ldr r0, _08026CE8 ldrh r0, [r0] lsls r2, r0, 1 adds r2, r0 lsls r2, 2 adds r2, r1 ldr r7, _08026CEC ldrb r0, [r7] muls r0, r6 add r0, r10 adds r0, 0x2A ldrb r0, [r0] adds r1, r5, 0 adds r1, 0x2A ldrb r1, [r1] subs r0, r1 ldrb r2, [r2, 0x3] adds r0, r2 lsls r0, 16 lsrs r4, r0, 16 bl Random lsls r0, 16 lsrs r0, 16 movs r1, 0x64 bl __umodsi3 lsls r0, 16 lsrs r0, 16 adds r0, 0x1 cmp r0, r4 bge _08026CDC ldrb r0, [r7] adds r1, r0, 0 muls r1, r6 add r1, r10 adds r1, 0x2A ldr r2, _08026CF0 ldrb r0, [r2] muls r0, r6 add r0, r10 adds r0, 0x2A ldrb r1, [r1] movs r4, 0x1 ldrb r0, [r0] cmp r1, r0 bcs _08026D20 _08026CDC: mov r10, r8 b _08026DE0 .align 2, 0 _08026CE0: .4byte 0x02024c98 _08026CE4: .4byte gBattleMoves _08026CE8: .4byte 0x02024be6 _08026CEC: .4byte 0x02024c07 _08026CF0: .4byte 0x02024c08 _08026CF4: ldr r0, _08026D4C lsls r1, r2, 3 subs r1, r2 lsls r1, 2 adds r1, r0 ldr r2, _08026D50 ldrb r0, [r1, 0x15] movs r4, 0 ldrb r3, [r2] cmp r0, r3 bne _08026D20 ldrb r0, [r2] muls r0, r6 add r0, r10 adds r0, 0x2A adds r1, r5, 0 adds r1, 0x2A ldrb r0, [r0] ldrb r1, [r1] cmp r0, r1 bcc _08026D20 movs r4, 0x1 _08026D20: cmp r4, 0 beq _08026DE0 ldr r0, _08026D54 ldr r1, _08026D58 ldrb r2, [r1] lsls r1, r2, 4 adds r1, r0 ldrb r0, [r1] lsls r0, 30 cmp r0, 0 bge _08026D64 ldr r1, _08026D5C movs r0, 0x58 muls r0, r2 add r0, r10 ldrh r0, [r0, 0x28] subs r0, 0x1 str r0, [r1] ldr r2, _08026D60 ldrb r0, [r2] movs r1, 0x40 b _08026DC6 .align 2, 0 _08026D4C: .4byte 0x02024ca8 _08026D50: .4byte 0x02024c07 _08026D54: .4byte 0x02024d28 _08026D58: .4byte 0x02024c08 _08026D5C: .4byte 0x02024bec _08026D60: .4byte 0x02024c68 _08026D64: ldr r0, _08026DA0 lsls r1, r2, 2 adds r1, r2 lsls r1, 2 adds r1, r0 ldrb r0, [r1] lsrs r0, 7 cmp r0, 0 beq _08026DB4 ldr r1, _08026DA4 movs r3, 0x58 adds r0, r2, 0 muls r0, r3 add r0, r10 ldrh r0, [r0, 0x28] subs r0, 0x1 str r0, [r1] ldr r2, _08026DA8 ldrb r0, [r2] movs r1, 0x80 orrs r0, r1 strb r0, [r2] ldr r1, _08026DAC ldr r2, _08026DB0 ldrb r0, [r2] muls r0, r3 add r0, r10 ldrh r0, [r0, 0x2E] strh r0, [r1] b _08026DCA .align 2, 0 _08026DA0: .4byte 0x02024d68 _08026DA4: .4byte 0x02024bec _08026DA8: .4byte 0x02024c68 _08026DAC: .4byte 0x02024c04 _08026DB0: .4byte 0x02024c08 _08026DB4: ldr r1, _08026DD4 movs r0, 0x58 muls r0, r2 add r0, r10 ldrh r0, [r0, 0x28] str r0, [r1] ldr r2, _08026DD8 ldrb r0, [r2] movs r1, 0x10 _08026DC6: orrs r0, r1 strb r0, [r2] _08026DCA: ldr r1, _08026DDC ldr r0, [r1] adds r0, 0x5 str r0, [r1] b _08026E40 .align 2, 0 _08026DD4: .4byte 0x02024bec _08026DD8: .4byte 0x02024c68 _08026DDC: .4byte 0x02024c10 _08026DE0: ldr r2, _08026E10 ldrb r0, [r2] movs r1, 0x1 orrs r0, r1 strb r0, [r2] ldr r0, _08026E14 ldrb r0, [r0] movs r2, 0x58 adds r1, r0, 0 muls r1, r2 add r1, r10 adds r1, 0x2A ldr r3, _08026E18 ldrb r0, [r3] muls r0, r2 add r0, r10 adds r0, 0x2A ldrb r1, [r1] ldrb r0, [r0] cmp r1, r0 bcc _08026E20 ldr r1, _08026E1C movs r0, 0 b _08026E24 .align 2, 0 _08026E10: .4byte 0x02024c68 _08026E14: .4byte 0x02024c07 _08026E18: .4byte 0x02024c08 _08026E1C: .4byte 0x02024d1e _08026E20: ldr r1, _08026E50 movs r0, 0x1 _08026E24: strb r0, [r1, 0x5] ldr r3, _08026E54 ldr r2, [r3] ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x4] lsls r0, 24 orrs r1, r0 str r1, [r3] _08026E40: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08026E50: .4byte 0x02024d1e _08026E54: .4byte 0x02024c10 thumb_func_end sub_8026B78 thumb_func_start atk94_gethalfcurrentenemyhp atk94_gethalfcurrentenemyhp: @ 8026E58 push {lr} ldr r3, _08026E84 ldr r2, _08026E88 ldr r0, _08026E8C ldrb r1, [r0] movs r0, 0x58 muls r0, r1 adds r0, r2 ldrh r0, [r0, 0x28] lsrs r0, 1 str r0, [r3] cmp r0, 0 bne _08026E76 movs r0, 0x1 str r0, [r3] _08026E76: ldr r1, _08026E90 ldr r0, [r1] adds r0, 0x1 str r0, [r1] pop {r0} bx r0 .align 2, 0 _08026E84: .4byte 0x02024bec _08026E88: .4byte 0x02024a80 _08026E8C: .4byte 0x02024c08 _08026E90: .4byte 0x02024c10 thumb_func_end atk94_gethalfcurrentenemyhp thumb_func_start sub_8026E94 sub_8026E94: @ 8026E94 push {lr} ldr r2, _08026EB4 ldrh r1, [r2] movs r0, 0x18 ands r0, r1 cmp r0, 0 beq _08026EC0 ldr r2, _08026EB8 ldrb r0, [r2] movs r1, 0x1 orrs r0, r1 strb r0, [r2] ldr r1, _08026EBC movs r0, 0x2 strb r0, [r1, 0x5] b _08026ED2 .align 2, 0 _08026EB4: .4byte 0x02024db8 _08026EB8: .4byte 0x02024c68 _08026EBC: .4byte 0x02024d1e _08026EC0: movs r0, 0x8 strh r0, [r2] ldr r1, _08026EE0 movs r0, 0x3 strb r0, [r1, 0x5] ldr r0, _08026EE4 adds r0, 0x28 movs r1, 0x5 strb r1, [r0] _08026ED2: ldr r1, _08026EE8 ldr r0, [r1] adds r0, 0x1 str r0, [r1] pop {r0} bx r0 .align 2, 0 _08026EE0: .4byte 0x02024d1e _08026EE4: .4byte 0x02024dbc _08026EE8: .4byte 0x02024c10 thumb_func_end sub_8026E94 thumb_func_start sub_8026EEC sub_8026EEC: @ 8026EEC push {r4,r5,lr} sub sp, 0x4 movs r0, 0 str r0, [sp] movs r0, 0x13 movs r1, 0 movs r2, 0xD movs r3, 0 bl sub_8018324 lsls r0, 24 lsrs r0, 24 cmp r0, 0 beq _08026F0A b _0802701C _08026F0A: str r0, [sp] movs r0, 0x13 movs r1, 0 movs r2, 0x4D movs r3, 0 bl sub_8018324 lsls r0, 24 cmp r0, 0 beq _08026F20 b _0802701C _08026F20: ldr r2, _08026F94 ldrh r1, [r2] movs r0, 0x18 ands r0, r1 adds r4, r2, 0 ldr r5, _08026F98 cmp r0, 0 beq _08026FAE ldr r0, _08026F9C ldrb r2, [r5] movs r1, 0x58 muls r1, r2 adds r3, r1, r0 adds r0, r3, 0 adds r0, 0x21 ldrb r0, [r0] cmp r0, 0x5 beq _08026FA8 cmp r0, 0x8 beq _08026FA8 cmp r0, 0x4 beq _08026FA8 adds r0, r3, 0 adds r0, 0x22 ldrb r0, [r0] cmp r0, 0x5 beq _08026FA8 cmp r0, 0x8 beq _08026FA8 cmp r0, 0x4 beq _08026FA8 adds r0, r3, 0 adds r0, 0x20 ldrb r0, [r0] cmp r0, 0x8 beq _08026FA8 ldr r0, _08026FA0 lsls r1, r2, 2 adds r1, r0 ldr r1, [r1] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _08026FA8 movs r0, 0x80 lsls r0, 11 ands r1, r0 cmp r1, 0 bne _08026FA8 ldr r1, _08026FA4 ldrh r0, [r3, 0x2C] lsrs r0, 4 str r0, [r1] cmp r0, 0 bne _08026FAE movs r0, 0x1 b _08026FAC .align 2, 0 _08026F94: .4byte 0x02024db8 _08026F98: .4byte 0x02024c07 _08026F9C: .4byte 0x02024a80 _08026FA0: .4byte 0x02024c98 _08026FA4: .4byte 0x02024bec _08026FA8: ldr r1, _08027004 movs r0, 0 _08026FAC: str r0, [r1] _08026FAE: ldrh r1, [r4] movs r4, 0x80 adds r0, r4, 0 ands r0, r1 cmp r0, 0 beq _08027024 ldr r1, _08027008 ldrb r3, [r5] movs r0, 0x58 muls r0, r3 adds r2, r0, r1 adds r0, r2, 0 adds r0, 0x21 ldrb r0, [r0] cmp r0, 0xF beq _08027010 adds r0, r2, 0 adds r0, 0x22 ldrb r0, [r0] cmp r0, 0xF beq _08027010 ldr r0, _0802700C lsls r1, r3, 2 adds r1, r0 ldr r1, [r1] adds r0, r1, 0 ands r0, r4 cmp r0, 0 bne _08027010 movs r0, 0x80 lsls r0, 11 ands r1, r0 cmp r1, 0 bne _08027010 ldr r1, _08027004 ldrh r0, [r2, 0x2C] lsrs r0, 4 str r0, [r1] cmp r0, 0 bne _08027024 movs r0, 0x1 str r0, [r1] b _08027024 .align 2, 0 _08027004: .4byte 0x02024bec _08027008: .4byte 0x02024a80 _0802700C: .4byte 0x02024c98 _08027010: ldr r1, _08027018 movs r0, 0 str r0, [r1] b _08027024 .align 2, 0 _08027018: .4byte 0x02024bec _0802701C: ldr r1, _08027050 movs r0, 0 str r0, [r1] ldr r5, _08027054 _08027024: ldr r0, _08027058 ldrb r1, [r0] ldr r2, _0802705C ldrb r0, [r5] lsls r0, 2 adds r0, r2 ldr r0, [r0] ands r1, r0 cmp r1, 0 beq _0802703E ldr r1, _08027050 movs r0, 0 str r0, [r1] _0802703E: ldr r1, _08027060 ldr r0, [r1] adds r0, 0x1 str r0, [r1] add sp, 0x4 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08027050: .4byte 0x02024bec _08027054: .4byte 0x02024c07 _08027058: .4byte 0x02024c0c _0802705C: .4byte gUnknown_0820872C _08027060: .4byte 0x02024c10 thumb_func_end sub_8026EEC thumb_func_start sub_8027064 sub_8027064: @ 8027064 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} ldr r4, _08027090 ldrb r0, [r4] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 bne _0802709C ldr r1, _08027094 ldrb r0, [r4] lsls r0, 1 adds r0, r1 ldrh r1, [r0] movs r0, 0x64 muls r1, r0 ldr r0, _08027098 b _080270AC .align 2, 0 _08027090: .4byte 0x02024c07 _08027094: .4byte 0x02024a6a _08027098: .4byte 0x03004360 _0802709C: ldr r1, _080270D0 ldrb r0, [r4] lsls r0, 1 adds r0, r1 ldrh r1, [r0] movs r0, 0x64 muls r1, r0 ldr r0, _080270D4 _080270AC: adds r5, r1, r0 ldr r4, _080270D8 ldrb r0, [r4] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 bne _080270E0 ldr r1, _080270D0 ldrb r0, [r4] lsls r0, 1 adds r0, r1 ldrh r1, [r0] movs r0, 0x64 muls r1, r0 ldr r0, _080270DC b _080270F0 .align 2, 0 _080270D0: .4byte 0x02024a6a _080270D4: .4byte 0x030045c0 _080270D8: .4byte 0x02024c08 _080270DC: .4byte 0x03004360 _080270E0: ldr r1, _0802714C ldrb r0, [r4] lsls r0, 1 adds r0, r1 ldrh r1, [r0] movs r0, 0x64 muls r1, r0 ldr r0, _08027150 _080270F0: adds r4, r1, r0 adds r0, r5, 0 movs r1, 0xB bl PokemonGetField lsls r0, 16 lsrs r0, 16 mov r10, r0 adds r0, r5, 0 movs r1, 0 bl PokemonGetField mov r9, r0 adds r0, r4, 0 movs r1, 0xB bl PokemonGetField lsls r0, 16 lsrs r0, 16 mov r8, r0 adds r0, r4, 0 movs r1, 0 bl PokemonGetField adds r7, r0, 0 ldr r5, _08027154 ldrb r0, [r5] movs r6, 0x58 muls r0, r6 ldr r1, _08027158 adds r0, r1 adds r0, 0x20 ldrb r2, [r0] cmp r2, 0xC bne _08027168 ldr r1, _0802715C ldr r0, _08027160 str r0, [r1] ldr r0, _08027164 strb r2, [r0] ldrb r0, [r5] movs r1, 0xC bl sub_81074C4 b _0802721C .align 2, 0 _0802714C: .4byte 0x02024a6a _08027150: .4byte 0x030045c0 _08027154: .4byte 0x02024c08 _08027158: .4byte 0x02024a80 _0802715C: .4byte 0x02024c10 _08027160: .4byte gUnknown_081D98C9 _08027164: .4byte 0x02024c06 _08027168: mov r0, r10 mov r1, r9 bl pokemon_species_get_gender_info adds r4, r0, 0 mov r0, r8 adds r1, r7, 0 bl pokemon_species_get_gender_info lsls r4, 24 lsls r0, 24 cmp r4, r0 beq _080271CA ldr r1, _080271E8 ldrb r2, [r5] lsls r0, r2, 2 adds r0, r1 ldr r0, [r0] ldr r1, _080271EC ands r0, r1 cmp r0, 0 bne _080271CA adds r0, r2, 0 muls r0, r6 ldr r4, _080271F0 adds r4, 0x50 adds r0, r4 ldr r0, [r0] movs r1, 0xF0 lsls r1, 12 ands r0, r1 cmp r0, 0 bne _080271CA mov r0, r10 mov r1, r9 bl pokemon_species_get_gender_info lsls r0, 24 lsrs r0, 24 cmp r0, 0xFF beq _080271CA mov r0, r8 adds r1, r7, 0 bl pokemon_species_get_gender_info lsls r0, 24 lsrs r0, 24 cmp r0, 0xFF bne _080271F8 _080271CA: ldr r3, _080271F4 ldr r2, [r3] ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x4] lsls r0, 24 orrs r1, r0 str r1, [r3] b _0802721C .align 2, 0 _080271E8: .4byte 0x02024c98 _080271EC: .4byte 0x000400c0 _080271F0: .4byte 0x02024a80 _080271F4: .4byte 0x02024c10 _080271F8: ldrb r0, [r5] adds r2, r0, 0 muls r2, r6 adds r2, r4 ldr r1, _0802722C ldr r0, _08027230 ldrb r0, [r0] lsls r0, 2 adds r0, r1 ldr r1, [r0] lsls r1, 16 ldr r0, [r2] orrs r0, r1 str r0, [r2] ldr r1, _08027234 ldr r0, [r1] adds r0, 0x5 str r0, [r1] _0802721C: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0802722C: .4byte gUnknown_0820872C _08027230: .4byte 0x02024c07 _08027234: .4byte 0x02024c10 thumb_func_end sub_8027064 thumb_func_start sub_8027238 sub_8027238: @ 8027238 push {r4-r7,lr} ldr r0, _08027280 ldr r0, [r0] cmp r0, 0 bne _08027324 ldr r5, _08027284 ldr r1, [r5] ldrb r0, [r1, 0x1] cmp r0, 0x4 beq _08027290 bl sub_8015150 ldr r4, _08027288 strb r0, [r4] ldr r3, _0802728C ldrb r1, [r4] movs r0, 0x58 adds r2, r1, 0 muls r2, r0 adds r0, r3, 0 adds r0, 0x4C adds r0, r2, r0 ldr r1, [r0] adds r3, 0x50 adds r2, r3 ldr r2, [r2] movs r0, 0 bl dp01_build_cmdbuf_x1A_aaaa_bbbb ldrb r0, [r4] bl dp01_battle_side_mark_buffer_for_execution ldr r0, [r5] adds r0, 0x2 str r0, [r5] b _08027324 .align 2, 0 _08027280: .4byte 0x02024a64 _08027284: .4byte 0x02024c10 _08027288: .4byte 0x02024a60 _0802728C: .4byte 0x02024a80 _08027290: ldr r4, _0802732C ldr r5, _08027330 ldrb r0, [r5] strb r0, [r4] ldr r6, _08027334 ldrb r1, [r6] ldr r7, _08027338 ldrb r2, [r4] lsls r0, r2, 2 adds r0, r7 ldr r0, [r0] ands r1, r0 cmp r1, 0 bne _080272CC ldr r3, _0802733C movs r0, 0x58 muls r2, r0 adds r0, r3, 0 adds r0, 0x4C adds r0, r2, r0 ldr r1, [r0] adds r3, 0x50 adds r2, r3 ldr r2, [r2] movs r0, 0 bl dp01_build_cmdbuf_x1A_aaaa_bbbb ldrb r0, [r4] bl dp01_battle_side_mark_buffer_for_execution _080272CC: ldr r0, _08027340 ldrh r1, [r0] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _0802731C ldrb r0, [r5] bl battle_get_per_side_status movs r1, 0x2 eors r0, r1 lsls r0, 24 lsrs r0, 24 bl battle_get_side_with_given_state strb r0, [r4] ldrb r1, [r6] ldrb r2, [r4] lsls r0, r2, 2 adds r0, r7 ldr r0, [r0] ands r1, r0 cmp r1, 0 bne _0802731C ldr r3, _0802733C movs r0, 0x58 muls r2, r0 adds r0, r3, 0 adds r0, 0x4C adds r0, r2, r0 ldr r1, [r0] adds r3, 0x50 adds r2, r3 ldr r2, [r2] movs r0, 0 bl dp01_build_cmdbuf_x1A_aaaa_bbbb ldrb r0, [r4] bl dp01_battle_side_mark_buffer_for_execution _0802731C: ldr r1, _08027344 ldr r0, [r1] adds r0, 0x2 str r0, [r1] _08027324: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0802732C: .4byte 0x02024a60 _08027330: .4byte 0x02024c07 _08027334: .4byte 0x02024c0c _08027338: .4byte gUnknown_0820872C _0802733C: .4byte 0x02024a80 _08027340: .4byte 0x020239f8 _08027344: .4byte 0x02024c10 thumb_func_end sub_8027238 thumb_func_start sub_8027348 sub_8027348: @ 8027348 push {r4-r6,lr} ldr r6, _08027378 ldr r4, _0802737C ldrb r0, [r4] bl battle_get_per_side_status movs r5, 0x1 adds r1, r5, 0 ands r1, r0 lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r6 ldrb r0, [r0, 0x2] cmp r0, 0 beq _08027388 ldr r2, _08027380 ldrb r0, [r2] movs r1, 0x20 orrs r0, r1 strb r0, [r2] ldr r0, _08027384 strb r5, [r0, 0x5] b _080273C0 .align 2, 0 _08027378: .4byte 0x02024c80 _0802737C: .4byte 0x02024c07 _08027380: .4byte 0x02024c68 _08027384: .4byte 0x02024d1e _08027388: ldrb r0, [r4] bl battle_get_per_side_status adds r1, r5, 0 ands r1, r0 lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r6 movs r1, 0x5 strb r1, [r0, 0x2] ldrb r0, [r4] bl battle_get_per_side_status ldr r2, _080273D0 adds r1, r5, 0 ands r1, r0 lsls r1, 1 adds r1, r2 ldrh r2, [r1] movs r3, 0x80 lsls r3, 1 adds r0, r3, 0 movs r3, 0 orrs r0, r2 strh r0, [r1] ldr r0, _080273D4 strb r3, [r0, 0x5] _080273C0: ldr r1, _080273D8 ldr r0, [r1] adds r0, 0x1 str r0, [r1] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080273D0: .4byte 0x02024c7a _080273D4: .4byte 0x02024d1e _080273D8: .4byte 0x02024c10 thumb_func_end sub_8027348 thumb_func_start atk9A_setincreasedcriticalchance atk9A_setincreasedcriticalchance: @ 80273DC push {lr} ldr r1, _0802740C ldr r0, _08027410 ldrb r2, [r0] movs r0, 0x58 muls r0, r2 adds r1, 0x50 adds r0, r1 ldr r1, [r0] movs r3, 0x80 lsls r3, 13 adds r2, r1, 0 ands r2, r3 cmp r2, 0 beq _0802741C ldr r2, _08027414 ldrb r0, [r2] movs r1, 0x20 orrs r0, r1 strb r0, [r2] ldr r1, _08027418 movs r0, 0x1 strb r0, [r1, 0x5] b _08027424 .align 2, 0 _0802740C: .4byte 0x02024a80 _08027410: .4byte 0x02024c07 _08027414: .4byte 0x02024c68 _08027418: .4byte 0x02024d1e _0802741C: orrs r1, r3 str r1, [r0] ldr r0, _08027430 strb r2, [r0, 0x5] _08027424: ldr r1, _08027434 ldr r0, [r1] adds r0, 0x1 str r0, [r1] pop {r0} bx r0 .align 2, 0 _08027430: .4byte 0x02024d1e _08027434: .4byte 0x02024c10 thumb_func_end atk9A_setincreasedcriticalchance thumb_func_start atk9B_transformdataexecution atk9B_transformdataexecution: @ 8027438 push {r4-r7,lr} mov r7, r8 push {r7} ldr r1, _08027490 ldr r2, _08027494 adds r0, r2, 0 strh r0, [r1] ldr r1, _08027498 ldr r0, [r1] adds r0, 0x1 str r0, [r1] ldr r7, _0802749C ldr r0, _080274A0 mov r12, r0 ldrb r1, [r0] movs r6, 0x58 adds r0, r1, 0 muls r0, r6 adds r5, r7, 0 adds r5, 0x50 adds r0, r5 ldr r0, [r0] movs r4, 0x80 lsls r4, 14 ands r0, r4 cmp r0, 0 bne _0802747E ldr r0, _080274A4 lsls r1, 2 adds r1, r0 ldr r2, [r1] ldr r0, _080274A8 ands r2, r0 cmp r2, 0 beq _080274B4 _0802747E: ldr r2, _080274AC ldrb r0, [r2] movs r1, 0x20 orrs r0, r1 strb r0, [r2] ldr r1, _080274B0 movs r0, 0x1 b _080275C8 .align 2, 0 _08027490: .4byte 0x02024be8 _08027494: .4byte 0x0000ffff _08027498: .4byte 0x02024c10 _0802749C: .4byte 0x02024a80 _080274A0: .4byte 0x02024c08 _080274A4: .4byte 0x02024c98 _080274A8: .4byte 0x000400c0 _080274AC: .4byte 0x02024c68 _080274B0: .4byte 0x02024d1e _080274B4: ldr r3, _08027588 ldrb r0, [r3] adds r1, r0, 0 muls r1, r6 adds r1, r5 ldr r0, [r1] orrs r0, r4 str r0, [r1] ldr r4, _0802758C ldrb r1, [r3] lsls r0, r1, 3 subs r0, r1 lsls r0, 2 adds r0, r4 strh r2, [r0, 0x4] ldrb r0, [r3] lsls r1, r0, 3 subs r1, r0 lsls r1, 2 adds r1, r4 ldrb r2, [r1, 0xB] movs r0, 0x10 negs r0, r0 ands r0, r2 strb r0, [r1, 0xB] ldrb r1, [r3] lsls r0, r1, 3 subs r0, r1 lsls r0, 2 adds r0, r4 mov r2, r12 ldrb r1, [r2] muls r1, r6 adds r2, r7, 0 adds r2, 0x48 adds r1, r2 ldr r1, [r1] str r1, [r0] ldrb r0, [r3] lsls r1, r0, 3 subs r1, r0 lsls r1, 2 adds r1, r4 ldrb r2, [r1, 0x18] movs r0, 0xF ands r0, r2 strb r0, [r1, 0x18] ldr r1, _08027590 movs r0, 0xFD strb r0, [r1] movs r0, 0x6 strb r0, [r1, 0x1] mov r2, r12 ldrb r0, [r2] muls r0, r6 adds r0, r7 ldrh r0, [r0] strb r0, [r1, 0x2] ldrb r0, [r2] muls r0, r6 adds r0, r7 ldrh r0, [r0] lsrs r0, 8 strb r0, [r1, 0x3] movs r0, 0xFF strb r0, [r1, 0x4] ldrb r0, [r3] muls r0, r6 adds r5, r0, r7 ldrb r0, [r2] muls r0, r6 adds r2, r0, r7 movs r4, 0 adds r6, r3, 0 ldr r0, _08027594 mov r8, r0 _0802754C: adds r0, r5, r4 adds r1, r2, r4 ldrb r1, [r1] strb r1, [r0] adds r4, 0x1 cmp r4, 0x23 bls _0802754C movs r4, 0 ldr r7, _08027598 ldr r3, _0802759C adds r5, r3, 0 adds r5, 0x18 _08027564: lsls r1, r4, 1 ldrb r2, [r6] movs r0, 0x58 muls r2, r0 adds r1, r2 adds r1, r3 ldrh r1, [r1] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r7 ldrb r1, [r0, 0x4] cmp r1, 0x4 bhi _080275A0 adds r0, r4, r2 adds r0, r5 b _080275A6 .align 2, 0 _08027588: .4byte 0x02024c07 _0802758C: .4byte 0x02024ca8 _08027590: .4byte 0x030041c0 _08027594: .4byte 0x02024a60 _08027598: .4byte gBattleMoves _0802759C: .4byte 0x02024a8c _080275A0: adds r0, r4, r2 adds r0, r5 movs r1, 0x5 _080275A6: strb r1, [r0] adds r4, 0x1 cmp r4, 0x3 ble _08027564 ldrb r0, [r6] mov r1, r8 strb r0, [r1] movs r0, 0 movs r1, 0x2 bl dp01_build_cmdbuf_x38_a mov r2, r8 ldrb r0, [r2] bl dp01_battle_side_mark_buffer_for_execution ldr r1, _080275D4 movs r0, 0 _080275C8: strb r0, [r1, 0x5] pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080275D4: .4byte 0x02024d1e thumb_func_end atk9B_transformdataexecution thumb_func_start sub_80275D8 sub_80275D8: @ 80275D8 push {r4-r7,lr} ldr r7, _08027608 ldr r6, _0802760C ldrb r0, [r6] movs r5, 0x58 muls r0, r5 adds r3, r0, r7 ldrh r0, [r3, 0x2C] lsrs r1, r0, 2 adds r2, r1, 0 cmp r1, 0 bne _080275F2 movs r2, 0x1 _080275F2: ldrh r0, [r3, 0x28] cmp r0, r2 bhi _08027618 ldr r1, _08027610 movs r0, 0 str r0, [r1] ldr r1, _08027614 movs r0, 0x1 strb r0, [r1, 0x5] b _0802766C .align 2, 0 _08027608: .4byte 0x02024a80 _0802760C: .4byte 0x02024c07 _08027610: .4byte 0x02024bec _08027614: .4byte 0x02024d1e _08027618: ldr r4, _0802767C str r1, [r4] cmp r1, 0 bne _08027624 movs r0, 0x1 str r0, [r4] _08027624: ldrb r0, [r6] adds r2, r0, 0 muls r2, r5 adds r3, r7, 0 adds r3, 0x50 adds r2, r3 ldr r0, [r2] movs r1, 0x80 lsls r1, 17 orrs r0, r1 str r0, [r2] ldrb r0, [r6] adds r1, r0, 0 muls r1, r5 adds r1, r3 ldr r0, [r1] ldr r2, _08027680 ands r0, r2 str r0, [r1] ldr r2, _08027684 ldrb r1, [r6] lsls r0, r1, 3 subs r0, r1 lsls r0, 2 adds r0, r2 ldr r1, [r4] movs r2, 0 strb r1, [r0, 0xA] ldr r0, _08027688 strb r2, [r0, 0x5] ldr r2, _0802768C ldr r0, [r2] movs r1, 0x80 lsls r1, 1 orrs r0, r1 str r0, [r2] _0802766C: ldr r1, _08027690 ldr r0, [r1] adds r0, 0x1 str r0, [r1] pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0802767C: .4byte 0x02024bec _08027680: .4byte 0xffff1fff _08027684: .4byte 0x02024ca8 _08027688: .4byte 0x02024d1e _0802768C: .4byte 0x02024c6c _08027690: .4byte 0x02024c10 thumb_func_end sub_80275D8 thumb_func_start sub_8027694 sub_8027694: @ 8027694 push {r4,r5,lr} lsls r0, 16 lsrs r2, r0, 16 movs r3, 0 ldr r0, _080276D4 ldrh r1, [r0] ldr r4, _080276D8 adds r5, r0, 0 cmp r1, r4 beq _080276BC cmp r1, r2 beq _080276BC adds r1, r5, 0 _080276AE: adds r1, 0x2 adds r3, 0x1 ldrh r0, [r1] cmp r0, r4 beq _080276BC cmp r0, r2 bne _080276AE _080276BC: lsls r0, r3, 1 adds r0, r5 ldrh r1, [r0] ldr r0, _080276D8 eors r1, r0 negs r0, r1 orrs r0, r1 lsrs r0, 31 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _080276D4: .4byte gUnknown_081FACFE _080276D8: .4byte 0x0000fffe thumb_func_end sub_8027694 thumb_func_start atk9D_copyattack atk9D_copyattack: @ 80276DC push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} ldr r0, _08027754 ldr r1, _08027758 adds r7, r1, 0 strh r7, [r0] ldr r5, _0802775C ldr r6, _08027760 ldrb r0, [r6] lsls r0, 1 adds r0, r5 ldrh r0, [r0] bl sub_8027694 lsls r0, 24 cmp r0, 0 bne _08027736 ldr r3, _08027764 ldr r2, _08027768 ldrb r1, [r2] movs r0, 0x58 adds r4, r1, 0 muls r4, r0 adds r0, r3, 0 adds r0, 0x50 adds r0, r4, r0 ldr r1, [r0] movs r0, 0x80 lsls r0, 14 ands r1, r0 mov r12, r3 mov r9, r2 cmp r1, 0 bne _08027736 ldrb r0, [r6] lsls r0, 1 adds r0, r5 ldrh r1, [r0] cmp r1, 0 beq _08027736 cmp r1, r7 bne _08027770 _08027736: ldr r3, _0802776C ldr r2, [r3] ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x4] lsls r0, 24 orrs r1, r0 str r1, [r3] b _080278A8 .align 2, 0 _08027754: .4byte 0x02024be8 _08027758: .4byte 0x0000ffff _0802775C: .4byte 0x02024c34 _08027760: .4byte 0x02024c08 _08027764: .4byte 0x02024a80 _08027768: .4byte 0x02024c07 _0802776C: .4byte 0x02024c10 _08027770: movs r2, 0 mov r3, r12 adds r3, 0xC adds r0, r4, r3 ldrh r0, [r0] ldr r4, _08027800 mov r10, r4 cmp r0, r1 beq _080277AA mov r8, r3 adds r7, r5, 0 adds r5, r6, 0 mov r4, r9 movs r3, 0x58 _0802778C: adds r2, 0x1 cmp r2, 0x3 bgt _080277AA lsls r1, r2, 1 ldrb r0, [r4] muls r0, r3 adds r1, r0 add r1, r8 ldrb r0, [r5] lsls r0, 1 adds r0, r7 ldrh r1, [r1] ldrh r0, [r0] cmp r1, r0 bne _0802778C _080277AA: cmp r2, 0x4 bne _0802788C ldr r5, _08027804 ldrb r1, [r5] lsls r1, 1 mov r2, r9 ldrb r0, [r2] movs r6, 0x58 muls r0, r6 adds r1, r0 mov r0, r12 adds r0, 0xC adds r1, r0 ldr r2, _08027808 ldr r3, _0802780C ldrb r0, [r3] lsls r0, 1 adds r0, r2 ldrh r0, [r0] strh r0, [r1] ldr r4, _08027810 ldrb r0, [r3] lsls r0, 1 adds r0, r2 ldrh r1, [r0] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r4 ldrb r4, [r0, 0x4] cmp r4, 0x4 bhi _08027814 mov r1, r9 ldrb r0, [r1] muls r0, r6 ldrb r1, [r5] adds r0, r1 mov r1, r12 adds r1, 0x24 adds r0, r1 strb r4, [r0] b _08027828 .align 2, 0 _08027800: .4byte 0x02024c10 _08027804: .4byte 0x02024be4 _08027808: .4byte 0x02024c34 _0802780C: .4byte 0x02024c08 _08027810: .4byte gBattleMoves _08027814: mov r4, r9 ldrb r0, [r4] muls r0, r6 ldrb r1, [r5] adds r0, r1 mov r1, r12 adds r1, 0x24 adds r0, r1 movs r1, 0x5 strb r1, [r0] _08027828: ldr r1, _08027880 movs r0, 0xFD strb r0, [r1] movs r0, 0x2 strb r0, [r1, 0x1] ldrb r0, [r3] lsls r0, 1 adds r0, r2 ldrh r0, [r0] strb r0, [r1, 0x2] ldrb r0, [r3] lsls r0, 1 adds r0, r2 ldrh r0, [r0] lsrs r0, 8 strb r0, [r1, 0x3] movs r0, 0xFF strb r0, [r1, 0x4] ldr r1, _08027884 mov r2, r9 ldrb r0, [r2] lsls r2, r0, 3 subs r2, r0 lsls r2, 2 adds r2, r1 ldrb r4, [r2, 0x18] lsrs r3, r4, 4 ldr r1, _08027888 ldrb r0, [r5] lsls r0, 2 adds r0, r1 ldr r1, [r0] orrs r1, r3 lsls r1, 4 movs r0, 0xF ands r0, r4 orrs r0, r1 strb r0, [r2, 0x18] mov r4, r10 ldr r0, [r4] adds r0, 0x5 str r0, [r4] b _080278A8 .align 2, 0 _08027880: .4byte 0x030041c0 _08027884: .4byte 0x02024ca8 _08027888: .4byte gUnknown_0820872C _0802788C: mov r0, r10 ldr r2, [r0] ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x4] lsls r0, 24 orrs r1, r0 mov r2, r10 str r1, [r2] _080278A8: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end atk9D_copyattack thumb_func_start sub_80278B8 sub_80278B8: @ 80278B8 push {r4-r7,lr} mov r7, r8 push {r7} ldr r7, _08027938 movs r6, 0xB1 lsls r6, 1 ldr r5, _0802793C ldr r0, _08027940 mov r8, r0 _080278CA: bl Random ldr r2, _08027944 adds r1, r2, 0 ands r0, r1 adds r0, 0x1 strh r0, [r7] cmp r0, r6 bhi _080278CA movs r0, 0x3 _080278DE: subs r0, 0x1 cmp r0, 0 bge _080278DE ldr r4, _08027938 ldrh r2, [r4] ldr r3, _08027948 subs r0, r5, 0x2 _080278EC: adds r0, 0x2 ldrh r1, [r0] cmp r1, r2 beq _080278F8 cmp r1, r3 bne _080278EC _080278F8: ldr r0, _08027948 cmp r1, r0 bne _080278CA ldr r2, _0802794C ldr r0, [r2] ldr r1, _08027950 ands r0, r1 str r0, [r2] ldr r3, _08027954 ldr r2, _08027958 ldrh r1, [r4] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r0, [r0] lsls r0, 2 adds r0, r3 ldr r0, [r0] mov r1, r8 str r0, [r1] ldrh r0, [r4] movs r1, 0 bl sub_801B5C0 ldr r1, _0802795C strb r0, [r1] pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08027938: .4byte 0x02024be6 _0802793C: .4byte gUnknown_081FACFE _08027940: .4byte 0x02024c10 _08027944: .4byte 0x000001ff _08027948: .4byte 0x0000ffff _0802794C: .4byte 0x02024c6c _08027950: .4byte 0xfffffbff _08027954: .4byte gUnknown_081D6BBC _08027958: .4byte gBattleMoves _0802795C: .4byte 0x02024c08 thumb_func_end sub_80278B8 thumb_func_start sub_8027960 sub_8027960: @ 8027960 ldr r3, _08027980 ldr r2, _08027984 ldr r0, _08027988 ldrb r1, [r0] movs r0, 0x58 muls r0, r1 adds r0, r2 adds r0, 0x2A ldrb r0, [r0] str r0, [r3] ldr r1, _0802798C ldr r0, [r1] adds r0, 0x1 str r0, [r1] bx lr .align 2, 0 _08027980: .4byte 0x02024bec _08027984: .4byte 0x02024a80 _08027988: .4byte 0x02024c07 _0802798C: .4byte 0x02024c10 thumb_func_end sub_8027960 thumb_func_start atkA0_psywavedamageeffect atkA0_psywavedamageeffect: @ 8027990 push {r4,lr} movs r4, 0xF _08027994: bl Random adds r3, r4, 0 ands r3, r0 cmp r3, 0xA bgt _08027994 lsls r0, r3, 2 adds r0, r3 lsls r3, r0, 1 ldr r4, _080279D4 ldr r2, _080279D8 ldr r0, _080279DC ldrb r1, [r0] movs r0, 0x58 muls r0, r1 adds r0, r2 adds r0, 0x2A ldrb r1, [r0] adds r0, r3, 0 adds r0, 0x32 muls r0, r1 movs r1, 0x64 bl __divsi3 str r0, [r4] ldr r1, _080279E0 ldr r0, [r1] adds r0, 0x1 str r0, [r1] pop {r4} pop {r0} bx r0 .align 2, 0 _080279D4: .4byte 0x02024bec _080279D8: .4byte 0x02024a80 _080279DC: .4byte 0x02024c07 _080279E0: .4byte 0x02024c10 thumb_func_end atkA0_psywavedamageeffect thumb_func_start atkA1_counterdamagecalculator atkA1_counterdamagecalculator: @ 80279E4 push {r4-r6,lr} ldr r4, _08027A54 ldrb r0, [r4] bl battle_side_get_owner lsls r0, 24 lsrs r6, r0, 24 ldr r5, _08027A58 ldrb r0, [r4] lsls r0, 4 adds r0, r5 ldrb r0, [r0, 0xC] bl battle_side_get_owner lsls r0, 24 lsrs r2, r0, 24 ldrb r0, [r4] lsls r1, r0, 4 adds r0, r5, 0x4 adds r0, r1, r0 ldr r3, [r0] cmp r3, 0 beq _08027A98 cmp r6, r2 beq _08027A98 ldr r6, _08027A5C adds r0, r1, r5 ldrb r0, [r0, 0xC] movs r4, 0x58 muls r0, r4 adds r0, r6 ldrh r0, [r0, 0x28] cmp r0, 0 beq _08027A98 ldr r1, _08027A60 lsls r0, r3, 1 str r0, [r1] ldr r1, _08027A64 lsls r0, r2, 1 adds r0, r2 lsls r0, 2 adds r1, r0, r1 ldrb r0, [r1, 0x8] cmp r0, 0 beq _08027A6C ldrb r1, [r1, 0x9] adds r0, r1, 0 muls r0, r4 adds r0, r6 ldrh r0, [r0, 0x28] cmp r0, 0 beq _08027A6C ldr r0, _08027A68 strb r1, [r0] b _08027A7C .align 2, 0 _08027A54: .4byte 0x02024c07 _08027A58: .4byte 0x02024d28 _08027A5C: .4byte 0x02024a80 _08027A60: .4byte 0x02024bec _08027A64: .4byte 0x02024c80 _08027A68: .4byte 0x02024c08 _08027A6C: ldr r2, _08027A88 ldr r1, _08027A8C ldr r0, _08027A90 ldrb r0, [r0] lsls r0, 4 adds r0, r1 ldrb r0, [r0, 0xC] strb r0, [r2] _08027A7C: ldr r1, _08027A94 ldr r0, [r1] adds r0, 0x5 str r0, [r1] b _08027AC8 .align 2, 0 _08027A88: .4byte 0x02024c08 _08027A8C: .4byte 0x02024d28 _08027A90: .4byte 0x02024c07 _08027A94: .4byte 0x02024c10 _08027A98: ldr r2, _08027AD0 ldr r0, _08027AD4 ldrb r1, [r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r1, [r0] movs r2, 0x20 orrs r1, r2 strb r1, [r0] ldr r3, _08027AD8 ldr r2, [r3] ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x4] lsls r0, 24 orrs r1, r0 str r1, [r3] _08027AC8: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08027AD0: .4byte 0x02024d68 _08027AD4: .4byte 0x02024c07 _08027AD8: .4byte 0x02024c10 thumb_func_end atkA1_counterdamagecalculator thumb_func_start atkA2_mirrorcoatdamagecalculator atkA2_mirrorcoatdamagecalculator: @ 8027ADC push {r4-r6,lr} ldr r4, _08027B4C ldrb r0, [r4] bl battle_side_get_owner lsls r0, 24 lsrs r6, r0, 24 ldr r5, _08027B50 ldrb r0, [r4] lsls r0, 4 adds r0, r5 ldrb r0, [r0, 0xD] bl battle_side_get_owner lsls r0, 24 lsrs r2, r0, 24 ldrb r0, [r4] lsls r1, r0, 4 adds r0, r5, 0 adds r0, 0x8 adds r0, r1, r0 ldr r3, [r0] cmp r3, 0 beq _08027B90 cmp r6, r2 beq _08027B90 ldr r6, _08027B54 adds r0, r1, r5 ldrb r0, [r0, 0xD] movs r4, 0x58 muls r0, r4 adds r0, r6 ldrh r0, [r0, 0x28] cmp r0, 0 beq _08027B90 ldr r1, _08027B58 lsls r0, r3, 1 str r0, [r1] ldr r1, _08027B5C lsls r0, r2, 1 adds r0, r2 lsls r0, 2 adds r1, r0, r1 ldrb r0, [r1, 0x8] cmp r0, 0 beq _08027B64 ldrb r1, [r1, 0x9] adds r0, r1, 0 muls r0, r4 adds r0, r6 ldrh r0, [r0, 0x28] cmp r0, 0 beq _08027B64 ldr r0, _08027B60 strb r1, [r0] b _08027B74 .align 2, 0 _08027B4C: .4byte 0x02024c07 _08027B50: .4byte 0x02024d28 _08027B54: .4byte 0x02024a80 _08027B58: .4byte 0x02024bec _08027B5C: .4byte 0x02024c80 _08027B60: .4byte 0x02024c08 _08027B64: ldr r2, _08027B80 ldr r1, _08027B84 ldr r0, _08027B88 ldrb r0, [r0] lsls r0, 4 adds r0, r1 ldrb r0, [r0, 0xD] strb r0, [r2] _08027B74: ldr r1, _08027B8C ldr r0, [r1] adds r0, 0x5 str r0, [r1] b _08027BC0 .align 2, 0 _08027B80: .4byte 0x02024c08 _08027B84: .4byte 0x02024d28 _08027B88: .4byte 0x02024c07 _08027B8C: .4byte 0x02024c10 _08027B90: ldr r2, _08027BC8 ldr r0, _08027BCC ldrb r1, [r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r1, [r0] movs r2, 0x20 orrs r1, r2 strb r1, [r0] ldr r3, _08027BD0 ldr r2, [r3] ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x4] lsls r0, 24 orrs r1, r0 str r1, [r3] _08027BC0: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08027BC8: .4byte 0x02024d68 _08027BCC: .4byte 0x02024c07 _08027BD0: .4byte 0x02024c10 thumb_func_end atkA2_mirrorcoatdamagecalculator thumb_func_start atkA3_disablelastusedattack atkA3_disablelastusedattack: @ 8027BD4 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} movs r4, 0 ldr r2, _08027CD4 ldr r3, _08027CD8 ldrb r1, [r3] movs r0, 0x58 muls r0, r1 adds r7, r2, 0 adds r7, 0xC adds r0, r7 ldr r5, _08027CDC lsls r1, 1 adds r1, r5 ldrh r0, [r0] mov r9, r2 adds r6, r3, 0 ldr r2, _08027CE0 mov r8, r2 ldrh r1, [r1] cmp r0, r1 beq _08027C28 mov r12, r6 movs r3, 0x58 _08027C08: adds r4, 0x1 cmp r4, 0x3 bgt _08027C28 lsls r2, r4, 1 mov r0, r12 ldrb r1, [r0] adds r0, r1, 0 muls r0, r3 adds r2, r0 adds r2, r7 lsls r1, 1 adds r1, r5 ldrh r0, [r2] ldrh r1, [r1] cmp r0, r1 bne _08027C08 _08027C28: ldrb r1, [r6] lsls r0, r1, 3 subs r0, r1 lsls r0, 2 add r0, r8 ldrh r0, [r0, 0x4] cmp r0, 0 bne _08027CEC cmp r4, 0x4 beq _08027CEC movs r5, 0x58 adds r0, r1, 0 muls r0, r5 adds r0, r4, r0 mov r1, r9 adds r1, 0x24 adds r0, r1 ldrb r0, [r0] cmp r0, 0 beq _08027CEC ldr r1, _08027CE4 movs r0, 0xFD strb r0, [r1] movs r0, 0x2 strb r0, [r1, 0x1] lsls r2, r4, 1 ldrb r0, [r6] muls r0, r5 adds r0, r2, r0 mov r3, r9 adds r3, 0xC adds r0, r3 ldrh r0, [r0] strb r0, [r1, 0x2] ldrb r0, [r6] muls r0, r5 adds r0, r2, r0 adds r0, r3 ldrh r0, [r0] lsrs r0, 8 strb r0, [r1, 0x3] movs r0, 0xFF strb r0, [r1, 0x4] ldrb r1, [r6] lsls r0, r1, 3 subs r0, r1 lsls r0, 2 add r0, r8 muls r1, r5 adds r2, r1 adds r2, r3 ldrh r1, [r2] strh r1, [r0, 0x4] bl Random ldrb r2, [r6] lsls r1, r2, 3 subs r1, r2 lsls r1, 2 add r1, r8 movs r2, 0x3 ands r2, r0 adds r2, 0x2 ldrb r3, [r1, 0xB] movs r0, 0x10 negs r0, r0 ands r0, r3 orrs r0, r2 strb r0, [r1, 0xB] ldrb r0, [r6] lsls r1, r0, 3 subs r1, r0 lsls r1, 2 add r1, r8 ldrb r3, [r1, 0xB] lsls r2, r3, 28 lsrs r2, 24 movs r0, 0xF ands r0, r3 orrs r0, r2 strb r0, [r1, 0xB] ldr r1, _08027CE8 ldr r0, [r1] adds r0, 0x5 str r0, [r1] b _08027D06 .align 2, 0 _08027CD4: .4byte 0x02024a80 _08027CD8: .4byte 0x02024c08 _08027CDC: .4byte 0x02024c34 _08027CE0: .4byte 0x02024ca8 _08027CE4: .4byte 0x030041c0 _08027CE8: .4byte 0x02024c10 _08027CEC: ldr r3, _08027D14 ldr r2, [r3] ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x4] lsls r0, 24 orrs r1, r0 str r1, [r3] _08027D06: pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08027D14: .4byte 0x02024c10 thumb_func_end atkA3_disablelastusedattack thumb_func_start atkA4_setencore atkA4_setencore: @ 8027D18 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} movs r5, 0 ldr r3, _08027E0C ldr r4, _08027E10 ldrb r1, [r4] movs r0, 0x58 muls r0, r1 adds r6, r3, 0 adds r6, 0xC adds r0, r6 ldr r2, _08027E14 lsls r1, 1 adds r1, r2 ldrh r0, [r0] mov r10, r3 mov r8, r2 ldr r2, _08027E18 mov r9, r2 ldrh r1, [r1] cmp r0, r1 beq _08027D72 mov r12, r4 adds r7, r6, 0 mov r6, r8 movs r3, 0x58 _08027D52: adds r5, 0x1 cmp r5, 0x3 bgt _08027D72 lsls r2, r5, 1 mov r0, r12 ldrb r1, [r0] adds r0, r1, 0 muls r0, r3 adds r2, r0 adds r2, r7 lsls r1, 1 adds r1, r6 ldrh r0, [r2] ldrh r1, [r1] cmp r0, r1 bne _08027D52 _08027D72: ldrb r0, [r4] lsls r0, 1 add r0, r8 ldrh r2, [r0] cmp r2, 0xA5 beq _08027D86 cmp r2, 0xE3 beq _08027D86 cmp r2, 0x77 bne _08027D88 _08027D86: movs r5, 0x4 _08027D88: ldrb r1, [r4] lsls r0, r1, 3 subs r0, r1 lsls r0, 2 mov r2, r9 adds r3, r0, r2 ldrh r0, [r3, 0x6] cmp r0, 0 bne _08027E20 cmp r5, 0x4 beq _08027E20 movs r0, 0x58 adds r2, r1, 0 muls r2, r0 adds r0, r5, r2 mov r1, r10 adds r1, 0x24 adds r0, r1 ldrb r0, [r0] cmp r0, 0 beq _08027E20 lsls r0, r5, 1 adds r0, r2 subs r1, 0x18 adds r0, r1 ldrh r0, [r0] strh r0, [r3, 0x6] ldrb r1, [r4] lsls r0, r1, 3 subs r0, r1 lsls r0, 2 add r0, r9 strb r5, [r0, 0xC] bl Random ldrb r2, [r4] lsls r1, r2, 3 subs r1, r2 lsls r1, 2 add r1, r9 movs r2, 0x3 ands r2, r0 adds r2, 0x3 ldrb r3, [r1, 0xE] movs r0, 0x10 negs r0, r0 ands r0, r3 orrs r0, r2 strb r0, [r1, 0xE] ldrb r0, [r4] lsls r1, r0, 3 subs r1, r0 lsls r1, 2 add r1, r9 ldrb r3, [r1, 0xE] lsls r2, r3, 28 lsrs r2, 24 movs r0, 0xF ands r0, r3 orrs r0, r2 strb r0, [r1, 0xE] ldr r1, _08027E1C ldr r0, [r1] adds r0, 0x5 str r0, [r1] b _08027E3A .align 2, 0 _08027E0C: .4byte 0x02024a80 _08027E10: .4byte 0x02024c08 _08027E14: .4byte 0x02024c34 _08027E18: .4byte 0x02024ca8 _08027E1C: .4byte 0x02024c10 _08027E20: ldr r3, _08027E48 ldr r2, [r3] ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x4] lsls r0, 24 orrs r1, r0 str r1, [r3] _08027E3A: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08027E48: .4byte 0x02024c10 thumb_func_end atkA4_setencore thumb_func_start sub_8027E4C sub_8027E4C: @ 8027E4C push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} ldr r7, _08027EEC ldr r0, _08027EF0 mov r8, r0 ldrb r0, [r0] movs r6, 0x58 adds r2, r0, 0 muls r2, r6 adds r0, r7, 0 adds r0, 0x50 adds r0, r2, r0 ldr r0, [r0] movs r1, 0x80 lsls r1, 17 ands r0, r1 cmp r0, 0 bne _08027F18 ldr r1, _08027EF4 mov r12, r1 ldrb r0, [r1] muls r0, r6 adds r0, r7 ldrh r4, [r0, 0x28] adds r0, r2, r7 ldrh r2, [r0, 0x28] adds r4, r2 asrs r4, 1 ldr r5, _08027EF8 mov r9, r5 subs r2, r4 str r2, [r5] ldr r3, _08027EFC ldr r1, _08027F00 adds r0, r3, r1 strb r2, [r0] movs r0, 0xFF lsls r0, 8 ands r0, r2 asrs r0, 8 ldr r5, _08027F04 adds r1, r3, r5 strb r0, [r1] movs r0, 0xFF lsls r0, 16 ands r0, r2 asrs r0, 16 adds r5, 0x1 adds r1, r3, r5 strb r0, [r1] lsrs r2, 24 ldr r0, _08027F08 adds r3, r0 strb r2, [r3] mov r1, r12 ldrb r0, [r1] muls r0, r6 adds r0, r7 ldrh r0, [r0, 0x28] subs r0, r4 mov r5, r9 str r0, [r5] ldr r2, _08027F0C mov r0, r8 ldrb r1, [r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 2 adds r2, 0x4 adds r0, r2 ldr r1, _08027F10 str r1, [r0] ldr r1, _08027F14 ldr r0, [r1] adds r0, 0x5 str r0, [r1] b _08027F32 .align 2, 0 _08027EEC: .4byte 0x02024a80 _08027EF0: .4byte 0x02024c08 _08027EF4: .4byte 0x02024c07 _08027EF8: .4byte 0x02024bec _08027EFC: .4byte 0x02000000 _08027F00: .4byte 0x00016014 _08027F04: .4byte 0x00016015 _08027F08: .4byte 0x00016017 _08027F0C: .4byte 0x02024d68 _08027F10: .4byte 0x0000ffff _08027F14: .4byte 0x02024c10 _08027F18: ldr r3, _08027F40 ldr r2, [r3] ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x4] lsls r0, 24 orrs r1, r0 str r1, [r3] _08027F32: pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08027F40: .4byte 0x02024c10 thumb_func_end sub_8027E4C thumb_func_start sub_8027F44 sub_8027F44: @ 8027F44 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} ldr r1, _08027FA8 ldr r4, _08027FAC ldrb r0, [r4] lsls r0, 1 adds r2, r0, r1 ldrh r1, [r2] cmp r1, 0 beq _08027F8C ldr r0, _08027FB0 cmp r1, r0 beq _08027F8C ldrh r0, [r2] bl sub_8028350 lsls r0, 24 cmp r0, 0 beq _08028024 ldr r2, _08027FB4 ldrb r0, [r4] lsls r1, r0, 4 adds r0, r2, 0x4 adds r0, r1, r0 ldr r0, [r0] cmp r0, 0 bne _08028024 adds r0, r2, 0 adds r0, 0x8 adds r0, r1, r0 ldr r0, [r0] cmp r0, 0 bne _08028024 _08027F8C: ldr r3, _08027FB8 ldr r2, [r3] ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x4] lsls r0, 24 orrs r1, r0 str r1, [r3] b _08028110 .align 2, 0 _08027FA8: .4byte 0x02024c3c _08027FAC: .4byte 0x02024c07 _08027FB0: .4byte 0x0000ffff _08027FB4: .4byte 0x02024d28 _08027FB8: .4byte 0x02024c10 _08027FBC: mov r0, r12 strb r5, [r0] mov r1, r10 ldrb r0, [r1] muls r0, r2 adds r0, r7 adds r0, 0x22 strb r5, [r0] ldr r1, _08027FE0 movs r0, 0xFD strb r0, [r1] movs r0, 0x3 strb r0, [r1, 0x1] strb r5, [r1, 0x2] movs r0, 0xFF strb r0, [r1, 0x3] ldr r1, _08027FE4 b _08028012 .align 2, 0 _08027FE0: .4byte 0x030041c0 _08027FE4: .4byte 0x02024c10 _08027FE8: mov r0, r8 adds r0, 0x1 adds r0, r3 ldrb r2, [r0] strb r2, [r4] mov r4, r10 ldrb r0, [r4] muls r0, r6 ldr r7, _0802801C adds r0, r7 adds r0, 0x22 strb r2, [r0] ldr r1, _08028020 movs r0, 0xFD strb r0, [r1] movs r0, 0x3 strb r0, [r1, 0x1] strb r2, [r1, 0x2] movs r0, 0xFF strb r0, [r1, 0x3] mov r1, r12 _08028012: ldr r0, [r1] adds r0, 0x5 str r0, [r1] b _08028110 .align 2, 0 _0802801C: .4byte 0x02024a80 _08028020: .4byte 0x030041c0 _08028024: movs r4, 0 mov r8, r4 movs r7, 0x7F mov r9, r7 _0802802C: bl Random mov r4, r9 ands r4, r0 cmp r4, 0x70 bhi _0802802C lsls r0, r4, 1 adds r4, r0, r4 ldr r6, _08028120 adds r3, r4, r6 ldr r1, _08028124 ldr r2, _08028128 ldrb r5, [r2] lsls r0, r5, 1 adds r0, r1 ldrb r1, [r3] mov r10, r2 ldrh r0, [r0] cmp r1, r0 bne _08028088 adds r0, r4, 0x2 adds r0, r6 ldrb r0, [r0] cmp r0, 0x5 bhi _08028088 ldr r7, _0802812C movs r2, 0x58 adds r0, r5, 0 muls r0, r2 adds r3, r0, r7 movs r0, 0x21 adds r0, r3 mov r12, r0 adds r0, r4, 0x1 adds r0, r6 ldrb r5, [r0] mov r1, r12 ldrb r0, [r1] adds r1, r5, 0 cmp r0, r1 beq _08028088 adds r0, r3, 0 adds r0, 0x22 ldrb r0, [r0] cmp r0, r1 bne _08027FBC _08028088: movs r7, 0x1 add r8, r7 ldr r0, _08028130 cmp r8, r0 ble _0802802C movs r0, 0 mov r8, r0 ldr r1, _08028134 mov r12, r1 ldr r3, _08028120 adds r0, r4, 0x1 adds r0, r3 mov r9, r0 adds r5, r3, 0 _080280A4: ldrb r1, [r5] cmp r1, 0xFF bgt _080280AE cmp r1, 0xFE bge _080280E8 _080280AE: mov r4, r10 ldrb r2, [r4] lsls r0, r2, 1 ldr r7, _08028124 adds r0, r7 ldrh r0, [r0] cmp r1, r0 bne _080280E8 ldrb r0, [r5, 0x2] cmp r0, 0x5 bhi _080280E8 movs r6, 0x58 adds r0, r2, 0 muls r0, r6 ldr r1, _0802812C adds r2, r0, r1 adds r4, r2, 0 adds r4, 0x21 ldrb r0, [r4] mov r7, r9 ldrb r1, [r7] cmp r0, r1 beq _080280E8 adds r0, r2, 0 adds r0, 0x22 ldrb r0, [r0] cmp r0, r1 beq _080280E8 b _08027FE8 _080280E8: adds r5, 0x3 movs r0, 0x3 add r8, r0 ldr r0, _08028138 cmp r8, r0 bls _080280A4 mov r1, r12 ldr r2, [r1] ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x4] lsls r0, 24 orrs r1, r0 mov r4, r12 str r1, [r4] _08028110: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08028120: .4byte gTypeEffectiveness _08028124: .4byte 0x02024c44 _08028128: .4byte 0x02024c07 _0802812C: .4byte 0x02024a80 _08028130: .4byte 0x000003e7 _08028134: .4byte 0x02024c10 _08028138: .4byte 0x0000014f thumb_func_end sub_8027F44 thumb_func_start atkA7_setalwayshitflag atkA7_setalwayshitflag: @ 802813C push {r4,lr} ldr r4, _08028180 ldr r3, _08028184 ldrb r1, [r3] lsls r1, 2 adds r1, r4 ldr r0, [r1] movs r2, 0x19 negs r2, r2 ands r0, r2 str r0, [r1] ldrb r1, [r3] lsls r1, 2 adds r1, r4 ldr r0, [r1] movs r2, 0x10 orrs r0, r2 str r0, [r1] ldr r2, _08028188 ldrb r1, [r3] lsls r0, r1, 3 subs r0, r1 lsls r0, 2 adds r0, r2 ldr r1, _0802818C ldrb r1, [r1] strb r1, [r0, 0x15] ldr r1, _08028190 ldr r0, [r1] adds r0, 0x1 str r0, [r1] pop {r4} pop {r0} bx r0 .align 2, 0 _08028180: .4byte 0x02024c98 _08028184: .4byte 0x02024c08 _08028188: .4byte 0x02024ca8 _0802818C: .4byte 0x02024c07 _08028190: .4byte 0x02024c10 thumb_func_end atkA7_setalwayshitflag thumb_func_start atkA8_copymovepermanently atkA8_copymovepermanently: @ 8028194 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x14 ldr r0, _080282F4 ldr r1, _080282F8 adds r5, r1, 0 strh r5, [r0] ldr r3, _080282FC ldr r2, _08028300 ldrb r1, [r2] movs r0, 0x58 adds r4, r1, 0 muls r4, r0 adds r0, r3, 0 adds r0, 0x50 adds r0, r4, r0 ldr r1, [r0] movs r0, 0x80 lsls r0, 14 ands r1, r0 mov r12, r3 mov r10, r2 cmp r1, 0 beq _080281CC b _08028320 _080281CC: ldr r0, _08028304 ldr r2, _08028308 ldrb r1, [r2] lsls r1, 1 adds r1, r0 ldrh r1, [r1] mov r9, r0 mov r8, r2 cmp r1, 0xA5 bne _080281E2 b _08028320 _080281E2: cmp r1, 0 bne _080281E8 b _08028320 _080281E8: cmp r1, r5 bne _080281EE b _08028320 _080281EE: cmp r1, 0xA6 bne _080281F4 b _08028320 _080281F4: movs r7, 0 mov r5, r9 mov r0, r12 adds r0, 0xC adds r1, r4, r0 mov r3, r8 _08028200: ldrh r2, [r1] cmp r2, 0xA6 beq _08028212 ldrb r0, [r3] lsls r0, 1 adds r0, r5 ldrh r0, [r0] cmp r2, r0 beq _0802821A _08028212: adds r1, 0x2 adds r7, 0x1 cmp r7, 0x3 ble _08028200 _0802821A: cmp r7, 0x4 beq _08028220 b _08028320 _08028220: ldr r4, _0802830C ldrb r1, [r4] lsls r1, 1 mov r2, r10 ldrb r0, [r2] movs r3, 0x58 muls r0, r3 adds r1, r0 mov r6, r12 adds r6, 0xC adds r1, r6 mov r2, r8 ldrb r0, [r2] lsls r0, 1 add r0, r9 ldrh r0, [r0] strh r0, [r1] mov r1, r10 ldrb r0, [r1] adds r2, r0, 0 muls r2, r3 ldrb r4, [r4] adds r2, r4 mov r5, r12 adds r5, 0x24 adds r2, r5 ldr r4, _08028310 mov r1, r8 ldrb r0, [r1] lsls r0, 1 add r0, r9 ldrh r1, [r0] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r4 ldrb r0, [r0, 0x4] strb r0, [r2] ldr r1, _08028314 mov r2, r10 ldrb r0, [r2] strb r0, [r1] movs r7, 0 ldrb r0, [r2] muls r0, r3 adds r4, r0, r5 adds r3, r0, 0 add r2, sp, 0x4 add r5, sp, 0xC _08028282: adds r0, r3, r6 ldrh r0, [r0] strh r0, [r2] adds r1, r5, r7 ldrb r0, [r4] strb r0, [r1] adds r4, 0x1 adds r3, 0x2 adds r2, 0x2 adds r7, 0x1 cmp r7, 0x3 ble _08028282 add r2, sp, 0x4 mov r0, r10 ldrb r1, [r0] movs r0, 0x58 muls r0, r1 add r0, r12 adds r0, 0x3B ldrb r0, [r0] strb r0, [r2, 0xC] str r2, [sp] movs r0, 0 movs r1, 0x3 movs r2, 0 movs r3, 0x10 bl dp01_build_cmdbuf_x02_a_b_varargs ldr r0, _08028314 ldrb r0, [r0] bl dp01_battle_side_mark_buffer_for_execution ldr r1, _08028318 movs r0, 0xFD strb r0, [r1] movs r0, 0x2 strb r0, [r1, 0x1] ldr r3, _08028304 ldr r2, _08028308 ldrb r0, [r2] lsls r0, 1 adds r0, r3 ldrh r0, [r0] strb r0, [r1, 0x2] ldrb r0, [r2] lsls r0, 1 adds r0, r3 ldrh r0, [r0] lsrs r0, 8 strb r0, [r1, 0x3] movs r0, 0xFF strb r0, [r1, 0x4] ldr r1, _0802831C ldr r0, [r1] adds r0, 0x5 str r0, [r1] b _0802833A .align 2, 0 _080282F4: .4byte 0x02024be8 _080282F8: .4byte 0x0000ffff _080282FC: .4byte 0x02024a80 _08028300: .4byte 0x02024c07 _08028304: .4byte 0x02024c2c _08028308: .4byte 0x02024c08 _0802830C: .4byte 0x02024be4 _08028310: .4byte gBattleMoves _08028314: .4byte 0x02024a60 _08028318: .4byte 0x030041c0 _0802831C: .4byte 0x02024c10 _08028320: ldr r3, _0802834C ldr r2, [r3] ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x4] lsls r0, 24 orrs r1, r0 str r1, [r3] _0802833A: add sp, 0x14 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0802834C: .4byte 0x02024c10 thumb_func_end atkA8_copymovepermanently thumb_func_start sub_8028350 sub_8028350: @ 8028350 push {lr} lsls r0, 16 lsrs r0, 16 ldr r2, _08028380 lsls r1, r0, 1 adds r1, r0 lsls r1, 2 adds r1, r2 ldrb r0, [r1] cmp r0, 0x91 beq _0802837A cmp r0, 0x27 beq _0802837A cmp r0, 0x4B beq _0802837A cmp r0, 0x97 beq _0802837A cmp r0, 0x9B beq _0802837A cmp r0, 0x1A bne _08028384 _0802837A: movs r0, 0x1 b _08028386 .align 2, 0 _08028380: .4byte gBattleMoves _08028384: movs r0, 0 _08028386: pop {r1} bx r1 thumb_func_end sub_8028350 thumb_func_start sub_802838C sub_802838C: @ 802838C push {lr} lsls r0, 16 lsrs r1, r0, 16 cmp r1, 0 beq _080283AA cmp r1, 0xD6 beq _080283AA movs r0, 0x89 lsls r0, 1 cmp r1, r0 beq _080283AA cmp r1, 0x77 beq _080283AA cmp r1, 0x76 bne _080283AE _080283AA: movs r0, 0x1 b _080283B0 _080283AE: movs r0, 0 _080283B0: pop {r1} bx r1 thumb_func_end sub_802838C thumb_func_start move_weather_interaction move_weather_interaction: @ 80283B4 push {lr} lsls r1, 16 lsrs r2, r1, 16 ldr r1, _0802840C lsls r0, r2, 1 adds r0, r2 lsls r0, 2 adds r0, r1 ldrb r0, [r0] adds r3, r1, 0 cmp r0, 0x97 bne _080283D8 ldr r0, _08028410 ldrh r1, [r0] movs r0, 0x60 ands r0, r1 cmp r0, 0 bne _08028418 _080283D8: lsls r0, r2, 1 adds r0, r2 lsls r0, 2 adds r0, r3 ldrb r0, [r0] cmp r0, 0x91 beq _080283FA cmp r0, 0x27 beq _080283FA cmp r0, 0x4B beq _080283FA cmp r0, 0x97 beq _080283FA cmp r0, 0x9B beq _080283FA cmp r0, 0x1A bne _08028418 _080283FA: ldr r0, _08028414 ldr r0, [r0] movs r1, 0x80 lsls r1, 20 ands r0, r1 cmp r0, 0 beq _08028418 movs r0, 0x1 b _0802841A .align 2, 0 _0802840C: .4byte gBattleMoves _08028410: .4byte 0x02024db8 _08028414: .4byte 0x02024c6c _08028418: movs r0, 0x2 _0802841A: pop {r1} bx r1 thumb_func_end move_weather_interaction thumb_func_start sub_8028420 sub_8028420: @ 8028420 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} movs r6, 0 movs r5, 0 ldr r0, _080284B0 mov r9, r0 movs r1, 0x58 mov r8, r1 ldr r7, _080284B4 movs r0, 0x84 lsls r0, 1 mov r10, r0 _0802843E: lsls r4, r5, 1 mov r1, r9 ldrb r0, [r1] mov r1, r8 muls r1, r0 adds r0, r1, 0 adds r0, r4, r0 adds r0, r7 ldrh r0, [r0] bl sub_802838C lsls r0, 24 cmp r0, 0 bne _0802847E mov r1, r9 ldrb r0, [r1] mov r1, r8 muls r1, r0 adds r0, r1, 0 adds r0, r4, r0 adds r0, r7 ldrh r1, [r0] cmp r1, r10 beq _0802847E cmp r1, 0xFD beq _0802847E adds r0, r1, 0 bl sub_8028350 lsls r0, 24 cmp r0, 0 beq _0802848C _0802847E: ldr r1, _080284B8 lsls r0, r5, 2 adds r0, r1 ldr r0, [r0] orrs r6, r0 lsls r0, r6, 24 lsrs r6, r0, 24 _0802848C: adds r5, 0x1 cmp r5, 0x3 ble _0802843E ldr r0, _080284B0 ldrb r0, [r0] adds r1, r6, 0 movs r2, 0xFD bl sub_8015A98 lsls r0, 24 lsrs r6, r0, 24 cmp r6, 0xF bne _080284C0 ldr r1, _080284BC ldr r0, [r1] adds r0, 0x5 str r0, [r1] b _08028524 .align 2, 0 _080284B0: .4byte 0x02024c07 _080284B4: .4byte 0x02024a8c _080284B8: .4byte gUnknown_0820872C _080284BC: .4byte 0x02024c10 _080284C0: movs r7, 0x3 ldr r4, _08028534 _080284C4: bl Random adds r5, r7, 0 ands r5, r0 lsls r0, r5, 2 adds r0, r4 ldr r0, [r0] ands r0, r6 cmp r0, 0 bne _080284C4 ldr r4, _08028538 ldr r2, _0802853C lsls r1, r5, 1 ldr r0, _08028540 ldrb r3, [r0] movs r0, 0x58 muls r0, r3 adds r1, r0 adds r2, 0xC adds r1, r2 ldrh r0, [r1] strh r0, [r4] ldr r0, _08028544 strb r5, [r0] ldr r2, _08028548 ldr r0, [r2] ldr r1, _0802854C ands r0, r1 str r0, [r2] ldrh r0, [r4] movs r1, 0 bl sub_801B5C0 ldr r1, _08028550 strb r0, [r1] ldr r3, _08028554 ldr r2, [r3] ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x4] lsls r0, 24 orrs r1, r0 str r1, [r3] _08028524: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08028534: .4byte gUnknown_0820872C _08028538: .4byte 0x02024bea _0802853C: .4byte 0x02024a80 _08028540: .4byte 0x02024c07 _08028544: .4byte 0x02024be4 _08028548: .4byte 0x02024c6c _0802854C: .4byte 0xfffffbff _08028550: .4byte 0x02024c08 _08028554: .4byte 0x02024c10 thumb_func_end sub_8028420 thumb_func_start sub_8028558 sub_8028558: @ 8028558 ldr r1, _0802857C ldr r0, _08028580 ldrb r2, [r0] movs r0, 0x58 muls r2, r0 adds r1, 0x50 adds r2, r1 ldr r0, [r2] movs r1, 0x80 lsls r1, 18 orrs r0, r1 str r0, [r2] ldr r1, _08028584 ldr r0, [r1] adds r0, 0x1 str r0, [r1] bx lr .align 2, 0 _0802857C: .4byte 0x02024a80 _08028580: .4byte 0x02024c07 _08028584: .4byte 0x02024c10 thumb_func_end sub_8028558 thumb_func_start b_feature_update_destiny_bond b_feature_update_destiny_bond: @ 8028588 push {r4,r5,lr} ldr r0, _080285D8 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 lsrs r5, r0, 24 ldr r4, _080285DC ldrb r0, [r4] bl battle_side_get_owner lsls r0, 24 lsrs r3, r0, 24 ldr r1, _080285E0 ldrb r2, [r4] movs r0, 0x58 muls r0, r2 adds r1, 0x50 adds r0, r1 ldr r0, [r0] movs r1, 0x80 lsls r1, 18 ands r0, r1 cmp r0, 0 beq _080285D2 cmp r5, r3 beq _080285D2 ldr r2, _080285E4 ldr r1, [r2] movs r0, 0x80 lsls r0, 17 ands r0, r1 cmp r0, 0 bne _080285D2 movs r0, 0x40 orrs r1, r0 str r1, [r2] _080285D2: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080285D8: .4byte 0x02024c07 _080285DC: .4byte 0x02024c08 _080285E0: .4byte 0x02024a80 _080285E4: .4byte 0x02024c6c thumb_func_end b_feature_update_destiny_bond thumb_func_start atkAB_802A458 atkAB_802A458: @ 80285E8 push {lr} bl b_feature_update_destiny_bond ldr r1, _080285FC ldr r0, [r1] adds r0, 0x1 str r0, [r1] pop {r0} bx r0 .align 2, 0 _080285FC: .4byte 0x02024c10 thumb_func_end atkAB_802A458 thumb_func_start atkAC_remaininghptopower atkAC_remaininghptopower: @ 8028600 push {lr} ldr r2, _08028654 ldr r0, _08028658 ldrb r1, [r0] movs r0, 0x58 muls r1, r0 adds r1, r2 movs r2, 0x28 ldrsh r0, [r1, r2] movs r2, 0x2C ldrsh r1, [r1, r2] movs r2, 0x30 bl sub_80461D4 lsls r0, 24 lsrs r1, r0, 24 movs r3, 0 ldr r0, _0802865C ldrb r2, [r0] cmp r1, r2 ble _0802863A adds r2, r0, 0 _0802862C: adds r3, 0x2 cmp r3, 0xB bgt _0802863A adds r0, r3, r2 ldrb r0, [r0] cmp r1, r0 bgt _0802862C _0802863A: ldr r2, _08028660 ldr r1, _0802865C adds r0, r3, 0x1 adds r0, r1 ldrb r0, [r0] strh r0, [r2] ldr r1, _08028664 ldr r0, [r1] adds r0, 0x1 str r0, [r1] pop {r0} bx r0 .align 2, 0 _08028654: .4byte 0x02024a80 _08028658: .4byte 0x02024c07 _0802865C: .4byte gUnknown_081FAD26 _08028660: .4byte 0x02024dec _08028664: .4byte 0x02024c10 thumb_func_end atkAC_remaininghptopower thumb_func_start sub_8028668 sub_8028668: @ 8028668 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x4 ldr r4, _080287F8 ldr r1, _080287FC ldrb r2, [r1] lsls r0, r2, 1 adds r0, r4 ldrh r3, [r0] mov r8, r1 cmp r3, 0 bne _08028688 b _08028828 _08028688: ldr r0, _08028800 cmp r3, r0 bne _08028690 b _08028828 _08028690: ldr r1, _08028804 lsls r0, r2, 2 adds r0, r1 ldr r0, [r0] ldr r1, _08028808 ands r0, r1 cmp r0, 0 beq _080286A2 b _08028828 _080286A2: movs r7, 0 ldr r0, _0802880C movs r1, 0x58 muls r1, r2 adds r2, r0, 0 adds r2, 0xC adds r1, r2 ldrh r1, [r1] cmp r3, r1 beq _080286DA adds r6, r4, 0 mov r5, r8 adds r4, r2, 0 movs r3, 0x58 _080286BE: adds r7, 0x1 cmp r7, 0x3 bgt _080286DA ldrb r0, [r5] lsls r2, r0, 1 adds r2, r6 lsls r1, r7, 1 muls r0, r3 adds r1, r0 adds r1, r4 ldrh r0, [r2] ldrh r1, [r1] cmp r0, r1 bne _080286BE _080286DA: cmp r7, 0x4 bne _080286E0 b _08028828 _080286E0: mov r4, r8 ldrb r0, [r4] movs r1, 0x58 mov r9, r1 mov r3, r9 muls r3, r0 adds r0, r3, 0 adds r0, r7, r0 ldr r1, _0802880C adds r1, 0x24 mov r10, r1 add r0, r10 ldrb r0, [r0] cmp r0, 0x1 bhi _08028700 b _08028828 _08028700: bl Random movs r1, 0x3 ands r1, r0 adds r6, r1, 0x2 ldrb r0, [r4] mov r3, r9 muls r3, r0 adds r0, r3, 0 adds r0, r7, r0 add r0, r10 ldrb r0, [r0] cmp r0, r6 bge _0802871E adds r6, r0, 0 _0802871E: ldr r1, _08028810 movs r5, 0xFD strb r5, [r1] movs r0, 0x2 strb r0, [r1, 0x1] ldr r2, _080287F8 mov r3, r8 ldrb r0, [r3] lsls r0, 1 adds r0, r2 ldrh r0, [r0] strb r0, [r1, 0x2] ldrb r0, [r3] lsls r0, 1 adds r0, r2 ldrh r0, [r0] lsrs r0, 8 strb r0, [r1, 0x3] movs r0, 0xFF strb r0, [r1, 0x4] ldr r4, _08028814 adds r0, r4, 0 adds r1, r6, 0 movs r2, 0 movs r3, 0x1 bl ConvertIntToDecimalStringN strb r5, [r4] movs r0, 0x1 strb r0, [r4, 0x1] strb r0, [r4, 0x2] strb r0, [r4, 0x3] strb r6, [r4, 0x4] subs r0, 0x2 strb r0, [r4, 0x5] mov r1, r8 ldrb r0, [r1] mov r1, r9 muls r1, r0 adds r1, r7, r1 add r1, r10 ldrb r0, [r1] subs r0, r6 strb r0, [r1] ldr r4, _08028818 mov r3, r8 ldrb r0, [r3] strb r0, [r4] ldr r1, _0802881C ldrb r3, [r4] lsls r0, r3, 3 subs r0, r3 lsls r0, 2 adds r0, r1 ldrb r1, [r0, 0x18] lsrs r1, 4 ldr r2, _08028820 lsls r0, r7, 2 adds r0, r2 ldr r0, [r0] ands r1, r0 cmp r1, 0 bne _080287D2 mov r2, r9 muls r2, r3 ldr r0, _0802880C adds r0, 0x50 adds r0, r2, r0 ldr r0, [r0] movs r1, 0x80 lsls r1, 14 ands r0, r1 cmp r0, 0 bne _080287D2 adds r1, r7, 0 adds r1, 0x9 lsls r1, 24 lsrs r1, 24 mov r3, r10 adds r0, r2, r3 adds r0, r7 str r0, [sp] movs r0, 0 movs r2, 0 movs r3, 0x1 bl dp01_build_cmdbuf_x02_a_b_varargs ldrb r0, [r4] bl dp01_battle_side_mark_buffer_for_execution _080287D2: ldr r1, _08028824 ldr r0, [r1] adds r0, 0x5 str r0, [r1] ldr r1, _0802880C ldr r0, _080287FC ldrb r2, [r0] movs r0, 0x58 muls r0, r2 adds r0, r7, r0 adds r1, 0x24 adds r0, r1 ldrb r0, [r0] cmp r0, 0 bne _08028842 adds r0, r2, 0 bl b_cancel_multi_turn_move_maybe b _08028842 .align 2, 0 _080287F8: .4byte 0x02024c34 _080287FC: .4byte 0x02024c08 _08028800: .4byte 0x0000ffff _08028804: .4byte 0x02024c98 _08028808: .4byte 0x000400c0 _0802880C: .4byte 0x02024a80 _08028810: .4byte 0x030041c0 _08028814: .4byte 0x03004290 _08028818: .4byte 0x02024a60 _0802881C: .4byte 0x02024ca8 _08028820: .4byte gUnknown_0820872C _08028824: .4byte 0x02024c10 _08028828: ldr r3, _08028854 ldr r2, [r3] ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x4] lsls r0, 24 orrs r1, r0 str r1, [r3] _08028842: 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 _08028854: .4byte 0x02024c10 thumb_func_end sub_8028668 thumb_func_start sub_8028858 sub_8028858: @ 8028858 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x8 movs r4, 0 str r4, [sp, 0x4] movs r7, 0 ldr r0, _080288AC ldrh r0, [r0] cmp r0, 0xD7 beq _08028872 b _08028A26 _08028872: ldr r5, _080288B0 strb r7, [r5, 0x5] ldr r6, _080288B4 ldrb r0, [r6] bl battle_side_get_owner lsls r0, 24 ldr r1, _080288B8 mov r9, r1 cmp r0, 0 bne _0802888C ldr r2, _080288BC mov r9, r2 _0802888C: ldr r4, _080288C0 ldrb r3, [r6] movs r0, 0x58 adds r2, r3, 0 muls r2, r0 adds r0, r2, r4 adds r1, r0, 0 adds r1, 0x20 ldrb r0, [r1] cmp r0, 0x2B beq _080288C4 adds r0, r4, 0 adds r0, 0x4C adds r0, r2, r0 str r7, [r0] b _080288D4 .align 2, 0 _080288AC: .4byte 0x02024be6 _080288B0: .4byte 0x02024d1e _080288B4: .4byte 0x02024c07 _080288B8: .4byte 0x030045c0 _080288BC: .4byte 0x03004360 _080288C0: .4byte 0x02024a80 _080288C4: ldrb r1, [r1] adds r0, r3, 0 bl sub_81074C4 ldrb r0, [r5, 0x5] movs r1, 0x1 orrs r0, r1 strb r0, [r5, 0x5] _080288D4: ldr r4, _08028934 ldr r0, _08028938 ldrb r0, [r0] bl battle_get_per_side_status movs r6, 0x2 eors r0, r6 lsls r0, 24 lsrs r0, 24 bl battle_get_side_with_given_state ldr r1, _0802893C ldr r2, _08028940 adds r1, r2 strb r0, [r1] strb r0, [r4] ldr r0, _08028944 ldrh r1, [r0] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _08028964 ldr r0, _08028948 ldrb r2, [r0] ldr r1, _0802894C ldrb r3, [r4] lsls r0, r3, 2 adds r0, r1 ldr r0, [r0] ands r2, r0 cmp r2, 0 bne _08028964 ldr r5, _08028950 movs r0, 0x58 adds r4, r3, 0 muls r4, r0 adds r0, r4, r5 adds r1, r0, 0 adds r1, 0x20 ldrb r0, [r1] cmp r0, 0x2B beq _08028954 adds r0, r5, 0 adds r0, 0x4C adds r0, r4, r0 str r2, [r0] b _08028964 .align 2, 0 _08028934: .4byte 0x02024a60 _08028938: .4byte 0x02024c07 _0802893C: .4byte 0x02000000 _08028940: .4byte 0x00016003 _08028944: .4byte 0x020239f8 _08028948: .4byte 0x02024c0c _0802894C: .4byte gUnknown_0820872C _08028950: .4byte 0x02024a80 _08028954: ldrb r1, [r1] adds r0, r3, 0 bl sub_81074C4 ldr r1, _080289AC ldrb r0, [r1, 0x5] orrs r0, r6 strb r0, [r1, 0x5] _08028964: movs r6, 0 ldr r0, _080289B0 mov r8, r0 _0802896A: movs r0, 0x64 adds r4, r6, 0 muls r4, r0 add r4, r9 adds r0, r4, 0 movs r1, 0x41 bl PokemonGetField lsls r0, 16 lsrs r5, r0, 16 adds r0, r4, 0 movs r1, 0x2E bl PokemonGetField lsls r0, 24 lsrs r4, r0, 24 cmp r5, 0 beq _08028A1E movs r0, 0xCE lsls r0, 1 cmp r5, r0 beq _08028A1E ldr r2, _080289B4 ldr r0, _080289B8 ldrb r1, [r0] lsls r0, r1, 1 adds r0, r2 ldrh r0, [r0] cmp r0, r6 bne _080289BC movs r0, 0x58 muls r0, r1 b _080289EC .align 2, 0 _080289AC: .4byte 0x02024d1e _080289B0: .4byte 0x02024a80 _080289B4: .4byte 0x02024a6a _080289B8: .4byte 0x02024c07 _080289BC: ldr r0, _080289F4 ldrh r1, [r0] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _08028A04 ldr r0, _080289F8 ldrb r3, [r0] lsls r0, r3, 1 adds r0, r2 ldrh r0, [r0] cmp r0, r6 bne _08028A04 ldr r0, _080289FC ldrb r1, [r0] ldr r2, _08028A00 lsls r0, r3, 2 adds r0, r2 ldr r0, [r0] ands r1, r0 cmp r1, 0 bne _08028A04 movs r0, 0x58 muls r0, r3 _080289EC: add r0, r8 adds r0, 0x20 ldrb r0, [r0] b _08028A10 .align 2, 0 _080289F4: .4byte 0x020239f8 _080289F8: .4byte 0x02024a60 _080289FC: .4byte 0x02024c0c _08028A00: .4byte gUnknown_0820872C _08028A04: adds r0, r5, 0 adds r1, r4, 0 bl sub_803DB14 lsls r0, 24 lsrs r0, 24 _08028A10: cmp r0, 0x2B beq _08028A1E movs r0, 0x1 lsls r0, r6 orrs r7, r0 lsls r0, r7, 24 lsrs r7, r0, 24 _08028A1E: adds r6, 0x1 cmp r6, 0x5 ble _0802896A b _08028A7E _08028A26: ldr r1, _08028AB4 movs r0, 0x4 strb r0, [r1, 0x5] movs r7, 0x3F ldr r2, _08028AB8 ldr r1, _08028ABC ldrb r0, [r1] movs r6, 0x58 muls r0, r6 adds r5, r2, 0 adds r5, 0x4C adds r0, r5 str r4, [r0] ldrb r0, [r1] bl battle_get_per_side_status movs r1, 0x2 eors r0, r1 lsls r0, 24 lsrs r0, 24 bl battle_get_side_with_given_state ldr r3, _08028AC0 strb r0, [r3] ldr r0, _08028AC4 ldrh r1, [r0] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _08028A7E ldr r0, _08028AC8 ldrb r2, [r0] ldr r1, _08028ACC ldrb r3, [r3] lsls r0, r3, 2 adds r0, r1 ldr r0, [r0] ands r2, r0 cmp r2, 0 bne _08028A7E adds r0, r3, 0 muls r0, r6 adds r0, r5 str r2, [r0] _08028A7E: ldr r4, _08028AC0 ldr r0, _08028ABC ldrb r0, [r0] strb r0, [r4] add r1, sp, 0x4 str r1, [sp] movs r0, 0 movs r1, 0x28 adds r2, r7, 0 movs r3, 0x4 bl dp01_build_cmdbuf_x02_a_b_varargs ldrb r0, [r4] bl dp01_battle_side_mark_buffer_for_execution ldr r1, _08028AD0 ldr r0, [r1] adds r0, 0x1 str r0, [r1] add sp, 0x8 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08028AB4: .4byte 0x02024d1e _08028AB8: .4byte 0x02024a80 _08028ABC: .4byte 0x02024c07 _08028AC0: .4byte 0x02024a60 _08028AC4: .4byte 0x020239f8 _08028AC8: .4byte 0x02024c0c _08028ACC: .4byte gUnknown_0820872C _08028AD0: .4byte 0x02024c10 thumb_func_end sub_8028858 thumb_func_start sub_8028AD4 sub_8028AD4: @ 8028AD4 push {r4-r7,lr} ldr r7, _08028B24 ldr r0, _08028B28 ldrb r3, [r0] movs r6, 0x58 adds r1, r3, 0 muls r1, r6 adds r0, r7, 0 adds r0, 0x50 adds r4, r1, r0 ldr r2, [r4] movs r5, 0x80 lsls r5, 21 adds r0, r2, 0 ands r0, r5 cmp r0, 0 bne _08028B06 ldr r1, _08028B2C lsls r0, r3, 2 adds r0, r1 ldr r0, [r0] ldr r1, _08028B30 ands r0, r1 cmp r0, 0 beq _08028B38 _08028B06: ldr r3, _08028B34 ldr r2, [r3] ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x4] lsls r0, 24 orrs r1, r0 str r1, [r3] b _08028B5C .align 2, 0 _08028B24: .4byte 0x02024a80 _08028B28: .4byte 0x02024c08 _08028B2C: .4byte 0x02024c98 _08028B30: .4byte 0x000400c0 _08028B34: .4byte 0x02024c10 _08028B38: orrs r2, r5 str r2, [r4] ldr r1, _08028B64 ldr r0, _08028B68 ldrb r0, [r0] muls r0, r6 adds r0, r7 ldrh r0, [r0, 0x2C] lsrs r0, 1 str r0, [r1] cmp r0, 0 bne _08028B54 movs r0, 0x1 str r0, [r1] _08028B54: ldr r1, _08028B6C ldr r0, [r1] adds r0, 0x5 str r0, [r1] _08028B5C: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08028B64: .4byte 0x02024bec _08028B68: .4byte 0x02024c07 _08028B6C: .4byte 0x02024c10 thumb_func_end sub_8028AD4 thumb_func_start sub_8028B70 sub_8028B70: @ 8028B70 push {r4,lr} ldr r4, _08028BC4 ldrb r0, [r4] bl battle_side_get_owner movs r1, 0x1 eors r0, r1 lsls r0, 24 lsrs r0, 24 ldr r1, _08028BC8 lsls r2, r0, 1 adds r0, r2, r0 lsls r0, 2 adds r3, r0, r1 ldrb r0, [r3, 0x6] cmp r0, 0x3 bne _08028BD4 ldr r2, _08028BCC ldrb r1, [r4] lsls r0, r1, 2 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r1, [r0] movs r2, 0x20 orrs r1, r2 strb r1, [r0] ldr r3, _08028BD0 ldr r2, [r3] ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x4] lsls r0, 24 orrs r1, r0 str r1, [r3] b _08028BEE .align 2, 0 _08028BC4: .4byte 0x02024c07 _08028BC8: .4byte 0x02024c80 _08028BCC: .4byte 0x02024d68 _08028BD0: .4byte 0x02024c10 _08028BD4: ldr r1, _08028BF4 adds r1, r2, r1 ldrh r2, [r1] movs r0, 0x10 orrs r0, r2 strh r0, [r1] ldrb r0, [r3, 0x6] adds r0, 0x1 strb r0, [r3, 0x6] ldr r1, _08028BF8 ldr r0, [r1] adds r0, 0x5 str r0, [r1] _08028BEE: pop {r4} pop {r0} bx r0 .align 2, 0 _08028BF4: .4byte 0x02024c7a _08028BF8: .4byte 0x02024c10 thumb_func_end sub_8028B70 thumb_func_start sub_8028BFC sub_8028BFC: @ 8028BFC ldr r1, _08028C20 ldr r0, _08028C24 ldrb r2, [r0] movs r0, 0x58 muls r2, r0 adds r1, 0x50 adds r2, r1 ldr r0, [r2] movs r1, 0x80 lsls r1, 22 orrs r0, r1 str r0, [r2] ldr r1, _08028C28 ldr r0, [r1] adds r0, 0x1 str r0, [r1] bx lr .align 2, 0 _08028C20: .4byte 0x02024a80 _08028C24: .4byte 0x02024c08 _08028C28: .4byte 0x02024c10 thumb_func_end sub_8028BFC thumb_func_start atkB2_setperishsong atkB2_setperishsong: @ 8028C2C push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} movs r6, 0 movs r3, 0 ldr r0, _08028C70 adds r7, r0, 0 ldr r0, _08028C74 mov r8, r0 ldrb r1, [r7] cmp r6, r1 bge _08028C98 movs r5, 0x20 ldr r0, _08028C78 mov r12, r0 ldr r0, _08028C7C adds r4, r0, 0 adds r4, 0xF ldr r2, _08028C80 _08028C54: ldr r1, [r2] adds r0, r1, 0 ands r0, r5 cmp r0, 0 bne _08028C6C movs r0, 0x58 muls r0, r3 add r0, r12 adds r0, 0x20 ldrb r0, [r0] cmp r0, 0x2B bne _08028C84 _08028C6C: adds r6, 0x1 b _08028C8C .align 2, 0 _08028C70: .4byte 0x02024a68 _08028C74: .4byte 0x02024c07 _08028C78: .4byte 0x02024a80 _08028C7C: .4byte 0x02024ca8 _08028C80: .4byte 0x02024c98 _08028C84: orrs r1, r5 str r1, [r2] movs r0, 0x33 strb r0, [r4] _08028C8C: adds r4, 0x1C adds r2, 0x4 adds r3, 0x1 ldrb r0, [r7] cmp r3, r0 blt _08028C54 _08028C98: mov r1, r8 ldrb r0, [r1] bl sub_80153D0 ldr r0, _08028CC4 ldrb r0, [r0] cmp r6, r0 bne _08028CCC ldr r3, _08028CC8 ldr r2, [r3] ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x4] lsls r0, 24 orrs r1, r0 str r1, [r3] b _08028CD4 .align 2, 0 _08028CC4: .4byte 0x02024a68 _08028CC8: .4byte 0x02024c10 _08028CCC: ldr r1, _08028CE0 ldr r0, [r1] adds r0, 0x5 str r0, [r1] _08028CD4: pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08028CE0: .4byte 0x02024c10 thumb_func_end atkB2_setperishsong thumb_func_start atkB3_rolloutdamagecalculation atkB3_rolloutdamagecalculation: @ 8028CE4 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} ldr r0, _08028D08 ldrb r1, [r0] movs r0, 0x29 ands r0, r1 cmp r0, 0 beq _08028D18 ldr r0, _08028D0C ldrb r0, [r0] bl b_cancel_multi_turn_move_maybe ldr r1, _08028D10 ldr r0, _08028D14 str r0, [r1] b _08028E30 .align 2, 0 _08028D08: .4byte 0x02024c68 _08028D0C: .4byte 0x02024c07 _08028D10: .4byte 0x02024c10 _08028D14: .4byte gUnknown_081D6F74 _08028D18: ldr r2, _08028E3C ldr r1, _08028E40 ldrb r3, [r1] movs r5, 0x58 adds r0, r3, 0 muls r0, r5 adds r4, r2, 0 adds r4, 0x50 adds r0, r4 ldr r0, [r0] movs r7, 0x80 lsls r7, 5 ands r0, r7 adds r6, r1, 0 mov r9, r2 ldr r1, _08028E44 mov r12, r1 ldr r2, _08028E48 mov r8, r2 cmp r0, 0 bne _08028D8A lsls r0, r3, 3 subs r0, r3 lsls r0, 2 add r0, r12 ldrb r2, [r0, 0x11] movs r1, 0x10 negs r1, r1 ands r1, r2 movs r2, 0x5 orrs r1, r2 strb r1, [r0, 0x11] ldrb r1, [r6] lsls r0, r1, 3 subs r0, r1 lsls r0, 2 add r0, r12 ldrb r2, [r0, 0x11] movs r1, 0xF ands r1, r2 movs r2, 0x50 orrs r1, r2 strb r1, [r0, 0x11] ldrb r0, [r6] adds r1, r0, 0 muls r1, r5 adds r1, r4 ldr r0, [r1] orrs r0, r7 str r0, [r1] ldr r1, _08028E4C ldrb r0, [r6] lsls r0, 1 adds r0, r1 mov r2, r8 ldrh r1, [r2] strh r1, [r0] _08028D8A: ldrb r0, [r6] lsls r2, r0, 3 subs r2, r0 lsls r2, 2 add r2, r12 ldrb r3, [r2, 0x11] lsls r1, r3, 28 lsrs r1, 28 subs r1, 0x1 movs r0, 0xF ands r1, r0 movs r0, 0x10 negs r0, r0 ands r0, r3 orrs r0, r1 strb r0, [r2, 0x11] cmp r1, 0 bne _08028DBE ldrb r0, [r6] adds r1, r0, 0 muls r1, r5 adds r1, r4 ldr r0, [r1] ldr r2, _08028E50 ands r0, r2 str r0, [r1] _08028DBE: ldr r3, _08028E54 ldr r2, _08028E58 mov r0, r8 ldrh r1, [r0] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r0, [r0, 0x1] strh r0, [r3] movs r2, 0x1 ldrb r1, [r6] lsls r0, r1, 3 subs r0, r1 lsls r0, 2 mov r1, r12 adds r4, r0, r1 ldrb r0, [r4, 0x11] lsls r0, 28 lsrs r0, 28 movs r1, 0x5 subs r1, r0 ldr r7, _08028E5C adds r5, r3, 0 cmp r2, r1 bge _08028E0C adds r1, r5, 0 adds r3, r4, 0 movs r4, 0x5 _08028DF8: ldrh r0, [r1] lsls r0, 1 strh r0, [r1] adds r2, 0x1 ldrb r0, [r3, 0x11] lsls r0, 28 lsrs r0, 28 subs r0, r4, r0 cmp r2, r0 blt _08028DF8 _08028E0C: ldrb r1, [r6] movs r0, 0x58 muls r0, r1 mov r1, r9 adds r1, 0x50 adds r0, r1 ldr r0, [r0] movs r1, 0x80 lsls r1, 23 ands r0, r1 cmp r0, 0 beq _08028E2A ldrh r0, [r5] lsls r0, 1 strh r0, [r5] _08028E2A: ldr r0, [r7] adds r0, 0x1 str r0, [r7] _08028E30: pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08028E3C: .4byte 0x02024a80 _08028E40: .4byte 0x02024c07 _08028E44: .4byte 0x02024ca8 _08028E48: .4byte 0x02024be6 _08028E4C: .4byte 0x02024c54 _08028E50: .4byte 0xffffefff _08028E54: .4byte 0x02024dec _08028E58: .4byte gBattleMoves _08028E5C: .4byte 0x02024c10 thumb_func_end atkB3_rolloutdamagecalculation thumb_func_start atkB4_jumpifconfusedandattackmaxed atkB4_jumpifconfusedandattackmaxed: @ 8028E60 push {r4,r5,lr} ldr r5, _08028EB0 ldr r0, _08028EB4 ldrb r1, [r0] movs r0, 0x58 adds r3, r1, 0 muls r3, r0 adds r0, r5, 0 adds r0, 0x50 adds r0, r3, r0 ldr r0, [r0] movs r1, 0x7 ands r0, r1 ldr r4, _08028EB8 cmp r0, 0 beq _08028EBC ldr r2, [r4] ldrb r0, [r2, 0x1] adds r0, r3 adds r1, r5, 0 adds r1, 0x18 adds r0, r1 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 cmp r0, 0xC bne _08028EBC ldrb r1, [r2, 0x2] ldrb r0, [r2, 0x3] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x4] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x5] lsls r0, 24 orrs r1, r0 str r1, [r4] b _08028EC2 .align 2, 0 _08028EB0: .4byte 0x02024a80 _08028EB4: .4byte 0x02024c08 _08028EB8: .4byte 0x02024c10 _08028EBC: ldr r0, [r4] adds r0, 0x6 str r0, [r4] _08028EC2: pop {r4,r5} pop {r0} bx r0 thumb_func_end atkB4_jumpifconfusedandattackmaxed thumb_func_start sub_8028EC8 sub_8028EC8: @ 8028EC8 push {r4,r5,lr} ldr r0, _08028EF0 ldrb r1, [r0] movs r0, 0x29 ands r0, r1 cmp r0, 0 beq _08028F04 ldr r2, _08028EF4 ldr r0, _08028EF8 ldrb r1, [r0] lsls r0, r1, 3 subs r0, r1 lsls r0, 2 adds r0, r2 movs r1, 0 strb r1, [r0, 0x10] ldr r1, _08028EFC ldr r0, _08028F00 str r0, [r1] b _08028F5C .align 2, 0 _08028EF0: .4byte 0x02024c68 _08028EF4: .4byte 0x02024ca8 _08028EF8: .4byte 0x02024c07 _08028EFC: .4byte 0x02024c10 _08028F00: .4byte gUnknown_081D6F74 _08028F04: ldr r5, _08028F64 ldr r4, _08028F68 ldrb r1, [r4] lsls r0, r1, 3 subs r0, r1 lsls r0, 2 adds r1, r0, r5 ldrb r0, [r1, 0x10] cmp r0, 0x5 beq _08028F1C adds r0, 0x1 strb r0, [r1, 0x10] _08028F1C: ldr r3, _08028F6C ldr r2, _08028F70 ldr r0, _08028F74 ldrh r1, [r0] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r0, [r0, 0x1] strh r0, [r3] movs r2, 0x1 ldrb r1, [r4] lsls r0, r1, 3 subs r0, r1 lsls r0, 2 adds r0, r5 ldr r4, _08028F78 ldrb r1, [r0, 0x10] cmp r2, r1 bge _08028F56 adds r1, r3, 0 adds r3, r0, 0 _08028F48: ldrh r0, [r1] lsls r0, 1 strh r0, [r1] adds r2, 0x1 ldrb r0, [r3, 0x10] cmp r2, r0 blt _08028F48 _08028F56: ldr r0, [r4] adds r0, 0x1 str r0, [r4] _08028F5C: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08028F64: .4byte 0x02024ca8 _08028F68: .4byte 0x02024c07 _08028F6C: .4byte 0x02024dec _08028F70: .4byte gBattleMoves _08028F74: .4byte 0x02024be6 _08028F78: .4byte 0x02024c10 thumb_func_end sub_8028EC8 thumb_func_start atkB6_happinesstodamagecalculation atkB6_happinesstodamagecalculation: @ 8028F7C push {r4,lr} ldr r2, _08028FA8 ldr r0, _08028FAC ldrh r1, [r0] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r0, [r0] cmp r0, 0x79 bne _08028FBC ldr r4, _08028FB0 ldr r2, _08028FB4 ldr r0, _08028FB8 ldrb r1, [r0] movs r0, 0x58 muls r0, r1 adds r0, r2 adds r0, 0x2B ldrb r1, [r0] b _08028FD2 .align 2, 0 _08028FA8: .4byte gBattleMoves _08028FAC: .4byte 0x02024be6 _08028FB0: .4byte 0x02024dec _08028FB4: .4byte 0x02024a80 _08028FB8: .4byte 0x02024c07 _08028FBC: ldr r4, _08028FF0 ldr r2, _08028FF4 ldr r0, _08028FF8 ldrb r1, [r0] movs r0, 0x58 muls r0, r1 adds r0, r2 adds r0, 0x2B ldrb r0, [r0] movs r1, 0xFF subs r1, r0 _08028FD2: lsls r0, r1, 2 adds r0, r1 lsls r0, 1 movs r1, 0x19 bl __divsi3 strh r0, [r4] ldr r1, _08028FFC ldr r0, [r1] adds r0, 0x1 str r0, [r1] pop {r4} pop {r0} bx r0 .align 2, 0 _08028FF0: .4byte 0x02024dec _08028FF4: .4byte 0x02024a80 _08028FF8: .4byte 0x02024c07 _08028FFC: .4byte 0x02024c10 thumb_func_end atkB6_happinesstodamagecalculation thumb_func_start atkB7_presentdamagecalculation atkB7_presentdamagecalculation: @ 8029000 push {r4,lr} bl Random movs r4, 0xFF ands r4, r0 cmp r4, 0x65 bgt _0802901C ldr r1, _08029018 movs r0, 0x28 strh r0, [r1] b _0802905E .align 2, 0 _08029018: .4byte 0x02024dec _0802901C: cmp r4, 0xB1 bgt _0802902C ldr r1, _08029028 movs r0, 0x50 strh r0, [r1] b _0802905E .align 2, 0 _08029028: .4byte 0x02024dec _0802902C: cmp r4, 0xCB bgt _0802903C ldr r1, _08029038 movs r0, 0x78 strh r0, [r1] b _0802905E .align 2, 0 _08029038: .4byte 0x02024dec _0802903C: ldr r3, _08029068 ldr r2, _0802906C ldr r0, _08029070 ldrb r1, [r0] movs r0, 0x58 muls r0, r1 adds r0, r2 ldrh r0, [r0, 0x2C] lsrs r0, 2 str r0, [r3] cmp r0, 0 bne _08029058 movs r0, 0x1 str r0, [r3] _08029058: ldr r0, [r3] negs r0, r0 str r0, [r3] _0802905E: cmp r4, 0xCB bgt _0802907C ldr r1, _08029074 ldr r0, _08029078 b _080290AC .align 2, 0 _08029068: .4byte 0x02024bec _0802906C: .4byte 0x02024a80 _08029070: .4byte 0x02024c08 _08029074: .4byte 0x02024c10 _08029078: .4byte gUnknown_081D6F44 _0802907C: ldr r2, _08029098 ldr r0, _0802909C ldrb r1, [r0] movs r0, 0x58 muls r0, r1 adds r0, r2 ldrh r1, [r0, 0x2C] ldrh r0, [r0, 0x28] cmp r1, r0 bne _080290A8 ldr r1, _080290A0 ldr r0, _080290A4 b _080290AC .align 2, 0 _08029098: .4byte 0x02024a80 _0802909C: .4byte 0x02024c08 _080290A0: .4byte 0x02024c10 _080290A4: .4byte gUnknown_081D83B5 _080290A8: ldr r1, _080290B4 ldr r0, _080290B8 _080290AC: str r0, [r1] pop {r4} pop {r0} bx r0 .align 2, 0 _080290B4: .4byte 0x02024c10 _080290B8: .4byte gUnknown_081D839B thumb_func_end atkB7_presentdamagecalculation thumb_func_start sub_80290BC sub_80290BC: @ 80290BC push {r4-r6,lr} ldr r4, _080290F0 ldrb r0, [r4] bl battle_get_per_side_status ldr r6, _080290F4 movs r5, 0x1 adds r1, r5, 0 ands r1, r0 lsls r1, 1 adds r1, r6 ldrh r1, [r1] movs r0, 0x20 ands r0, r1 cmp r0, 0 beq _08029100 ldr r2, _080290F8 ldrb r0, [r2] movs r1, 0x1 orrs r0, r1 strb r0, [r2] ldr r1, _080290FC movs r0, 0 strb r0, [r1, 0x5] b _08029132 .align 2, 0 _080290F0: .4byte 0x02024c07 _080290F4: .4byte 0x02024c7a _080290F8: .4byte 0x02024c68 _080290FC: .4byte 0x02024d1e _08029100: ldrb r0, [r4] bl battle_get_per_side_status adds r1, r5, 0 ands r1, r0 lsls r1, 1 adds r1, r6 ldrh r0, [r1] movs r2, 0x20 orrs r0, r2 strh r0, [r1] ldrb r0, [r4] bl battle_get_per_side_status ldr r2, _08029140 adds r1, r5, 0 ands r1, r0 lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r2 movs r1, 0x5 strb r1, [r0, 0x7] ldr r0, _08029144 strb r1, [r0, 0x5] _08029132: ldr r1, _08029148 ldr r0, [r1] adds r0, 0x1 str r0, [r1] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08029140: .4byte 0x02024c80 _08029144: .4byte 0x02024d1e _08029148: .4byte 0x02024c10 thumb_func_end sub_80290BC thumb_func_start atkB9_magnitudedamagecalculation atkB9_magnitudedamagecalculation: @ 802914C push {r4-r7,lr} mov r7, r8 push {r7} bl Random lsls r0, 16 lsrs r0, 16 movs r1, 0x64 bl __umodsi3 lsls r0, 16 lsrs r3, r0, 16 cmp r3, 0x4 bgt _08029178 ldr r1, _08029174 movs r0, 0xA strh r0, [r1] movs r3, 0x4 b _080291E4 .align 2, 0 _08029174: .4byte 0x02024dec _08029178: cmp r3, 0xE bgt _0802918C ldr r1, _08029188 movs r0, 0x1E strh r0, [r1] movs r3, 0x5 b _080291E4 .align 2, 0 _08029188: .4byte 0x02024dec _0802918C: cmp r3, 0x22 bgt _080291A0 ldr r1, _0802919C movs r0, 0x32 strh r0, [r1] movs r3, 0x6 b _080291E4 .align 2, 0 _0802919C: .4byte 0x02024dec _080291A0: cmp r3, 0x40 bgt _080291B4 ldr r1, _080291B0 movs r0, 0x46 strh r0, [r1] movs r3, 0x7 b _080291E4 .align 2, 0 _080291B0: .4byte 0x02024dec _080291B4: cmp r3, 0x54 bgt _080291C8 ldr r1, _080291C4 movs r0, 0x5A strh r0, [r1] movs r3, 0x8 b _080291E4 .align 2, 0 _080291C4: .4byte 0x02024dec _080291C8: cmp r3, 0x5E bgt _080291DC ldr r1, _080291D8 movs r0, 0x6E strh r0, [r1] movs r3, 0x9 b _080291E4 .align 2, 0 _080291D8: .4byte 0x02024dec _080291DC: ldr r1, _08029250 movs r0, 0x96 strh r0, [r1] movs r3, 0xA _080291E4: ldr r1, _08029254 movs r2, 0 movs r0, 0xFD strb r0, [r1] movs r0, 0x1 strb r0, [r1, 0x1] strb r0, [r1, 0x2] movs r0, 0x2 strb r0, [r1, 0x3] strb r3, [r1, 0x4] movs r0, 0xFF strb r0, [r1, 0x5] ldr r1, _08029258 strb r2, [r1] ldr r0, _0802925C ldrb r3, [r0] adds r6, r1, 0 ldr r0, _08029260 mov r8, r0 cmp r2, r3 bcs _0802923C adds r4, r6, 0 ldr r0, _08029264 ldrb r5, [r0] ldr r1, _08029268 mov r12, r1 ldr r7, _0802926C _0802921A: ldrb r2, [r4] cmp r2, r5 beq _08029230 ldrb r0, [r7] ldrb r1, [r6] lsls r1, 2 add r1, r12 ldr r1, [r1] ands r0, r1 cmp r0, 0 beq _0802923C _08029230: adds r0, r2, 0x1 strb r0, [r4] lsls r0, 24 lsrs r0, 24 cmp r0, r3 bcc _0802921A _0802923C: mov r1, r8 ldr r0, [r1] adds r0, 0x1 str r0, [r1] pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08029250: .4byte 0x02024dec _08029254: .4byte 0x030041c0 _08029258: .4byte 0x02024c08 _0802925C: .4byte 0x02024a68 _08029260: .4byte 0x02024c10 _08029264: .4byte 0x02024c07 _08029268: .4byte gUnknown_0820872C _0802926C: .4byte 0x02024c0c thumb_func_end atkB9_magnitudedamagecalculation thumb_func_start sub_8029270 sub_8029270: @ 8029270 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} ldr r0, _08029294 ldrb r0, [r0] cmp r0, 0x1 bne _080292A0 ldr r0, _08029298 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 bne _0802929C movs r0, 0x1 b _080292BA .align 2, 0 _08029294: .4byte 0x02024c0e _08029298: .4byte 0x02024c07 _0802929C: movs r0, 0 b _080292BA _080292A0: ldr r0, _080292B4 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 bne _080292B8 movs r0, 0x3 b _080292BA .align 2, 0 _080292B4: .4byte 0x02024c07 _080292B8: movs r0, 0x2 _080292BA: bl battle_get_side_with_given_state ldr r1, _0802937C strb r0, [r1] ldr r0, _08029380 ldr r1, _0802937C mov r9, r1 ldrb r3, [r1] adds r0, r3, r0 ldrb r0, [r0] cmp r0, 0 bne _080293BC ldr r5, _08029384 ldr r0, _08029388 ldr r2, _0802938C adds r1, r3, r2 adds r1, r0 ldrb r2, [r5] mov r10, r0 ldrb r1, [r1] cmp r2, r1 bne _080293BC ldr r4, _08029390 movs r2, 0x58 adds r0, r3, 0 muls r0, r2 adds r1, r4, 0 adds r1, 0x4C adds r0, r1 ldr r0, [r0] movs r1, 0x27 ands r0, r1 cmp r0, 0 bne _080293BC ldrb r0, [r5] muls r0, r2 adds r0, r4 ldrh r0, [r0, 0x28] cmp r0, 0 beq _080293BC ldr r0, _08029394 lsls r1, r3, 3 subs r1, r3 lsls r1, 2 adds r1, r0 ldrb r0, [r1, 0x18] lsls r0, 31 cmp r0, 0 bne _080293BC ldr r0, _08029398 lsls r1, r3, 1 adds r1, r0 ldrh r0, [r1] cmp r0, 0xE4 bne _080293BC movs r1, 0 ldr r0, _0802939C ldr r7, _080293A0 mov r8, r7 ldr r2, _080293A4 mov r12, r2 ldrb r7, [r0] cmp r1, r7 bge _0802935A ldr r6, _080293A8 mov r5, r9 ldr r4, _080293AC movs r3, 0xB adds r2, r0, 0 _08029344: adds r0, r1, r6 ldrb r0, [r0] ldrb r7, [r5] cmp r0, r7 bne _08029352 adds r0, r1, r4 strb r3, [r0] _08029352: adds r1, 0x1 ldrb r0, [r2] cmp r1, r0 blt _08029344 _0802935A: movs r0, 0xE4 mov r1, r8 strh r0, [r1] ldr r2, _080293B0 ldr r0, [r2] adds r0, 0x5 str r0, [r2] ldr r1, _080293B4 add r1, r10 movs r0, 0x1 strb r0, [r1] mov r7, r12 ldr r0, [r7] ldr r1, _080293B8 ands r0, r1 str r0, [r7] b _080293D6 .align 2, 0 _0802937C: .4byte 0x02024c08 _08029380: .4byte 0x02024c18 _08029384: .4byte 0x02024c07 _08029388: .4byte 0x02000000 _0802938C: .4byte 0x00016010 _08029390: .4byte 0x02024a80 _08029394: .4byte 0x02024ca8 _08029398: .4byte 0x02024c60 _0802939C: .4byte 0x02024a68 _080293A0: .4byte 0x02024be6 _080293A4: .4byte 0x02024c6c _080293A8: .4byte 0x02024a7a _080293AC: .4byte 0x02024a76 _080293B0: .4byte 0x02024c10 _080293B4: .4byte 0x00016002 _080293B8: .4byte 0xfffffbff _080293BC: ldr r3, _080293E4 ldr r2, [r3] ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x4] lsls r0, 24 orrs r1, r0 str r1, [r3] _080293D6: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080293E4: .4byte 0x02024c10 thumb_func_end sub_8029270 thumb_func_start sub_80293E8 sub_80293E8: @ 80293E8 push {lr} ldr r2, _08029408 ldrh r1, [r2] movs r0, 0x60 ands r0, r1 cmp r0, 0 beq _08029414 ldr r2, _0802940C ldrb r0, [r2] movs r1, 0x1 orrs r0, r1 strb r0, [r2] ldr r1, _08029410 movs r0, 0x2 strb r0, [r1, 0x5] b _08029426 .align 2, 0 _08029408: .4byte 0x02024db8 _0802940C: .4byte 0x02024c68 _08029410: .4byte 0x02024d1e _08029414: movs r0, 0x20 strh r0, [r2] ldr r1, _08029434 movs r0, 0x4 strb r0, [r1, 0x5] ldr r0, _08029438 adds r0, 0x28 movs r1, 0x5 strb r1, [r0] _08029426: ldr r1, _0802943C ldr r0, [r1] adds r0, 0x1 str r0, [r1] pop {r0} bx r0 .align 2, 0 _08029434: .4byte 0x02024d1e _08029438: .4byte 0x02024dbc _0802943C: .4byte 0x02024c10 thumb_func_end sub_80293E8 thumb_func_start atkBC_maxattackhalvehp atkBC_maxattackhalvehp: @ 8029440 push {r4,r5,lr} ldr r5, _0802948C ldr r4, _08029490 ldrb r0, [r4] movs r3, 0x58 muls r0, r3 adds r2, r0, r5 ldrh r0, [r2, 0x2C] lsrs r1, r0, 1 cmp r1, 0 bne _08029458 movs r1, 0x1 _08029458: movs r0, 0x19 ldrsb r0, [r2, r0] cmp r0, 0xB bgt _0802949C ldrh r0, [r2, 0x28] cmp r0, r1 bls _0802949C movs r0, 0xC strb r0, [r2, 0x19] ldr r1, _08029494 ldrb r0, [r4] muls r0, r3 adds r0, r5 ldrh r0, [r0, 0x2C] lsrs r0, 1 str r0, [r1] cmp r0, 0 bne _08029480 movs r0, 0x1 str r0, [r1] _08029480: ldr r1, _08029498 ldr r0, [r1] adds r0, 0x5 str r0, [r1] b _080294B6 .align 2, 0 _0802948C: .4byte 0x02024a80 _08029490: .4byte 0x02024c07 _08029494: .4byte 0x02024bec _08029498: .4byte 0x02024c10 _0802949C: ldr r3, _080294BC ldr r2, [r3] ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x4] lsls r0, 24 orrs r1, r0 str r1, [r3] _080294B6: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080294BC: .4byte 0x02024c10 thumb_func_end atkBC_maxattackhalvehp thumb_func_start atkBD_copyfoestats atkBD_copyfoestats: @ 80294C0 push {r4-r7,lr} movs r2, 0 ldr r7, _080294F8 ldr r6, _080294FC movs r4, 0x58 ldr r3, _08029500 ldr r5, _08029504 _080294CE: ldrb r0, [r6] adds r1, r0, 0 muls r1, r4 adds r1, r2, r1 adds r1, r3 ldrb r0, [r5] muls r0, r4 adds r0, r2, r0 adds r0, r3 ldrb r0, [r0] strb r0, [r1] adds r2, 0x1 cmp r2, 0x7 ble _080294CE ldr r0, [r7] adds r0, 0x5 str r0, [r7] pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080294F8: .4byte 0x02024c10 _080294FC: .4byte 0x02024c07 _08029500: .4byte 0x02024a98 _08029504: .4byte 0x02024c08 thumb_func_end atkBD_copyfoestats thumb_func_start atkBE_breakfree atkBE_breakfree: @ 8029508 push {r4,r5,lr} ldr r1, _08029570 ldr r5, _08029574 ldrb r2, [r5] movs r0, 0x58 muls r0, r2 adds r1, 0x50 adds r3, r0, r1 ldr r1, [r3] movs r0, 0xE0 lsls r0, 8 ands r0, r1 cmp r0, 0 beq _08029594 ldr r0, _08029578 ands r1, r0 str r1, [r3] ldr r1, _0802957C ldr r2, _08029580 ldrb r0, [r5] ldr r3, _08029584 adds r0, r3 adds r0, r2 ldrb r0, [r0] strb r0, [r1] ldr r1, _08029588 movs r0, 0xFD strb r0, [r1] movs r0, 0x2 strb r0, [r1, 0x1] ldrb r0, [r5] lsls r0, 1 subs r3, 0x1C adds r0, r3 adds r0, r2 ldrb r0, [r0] strb r0, [r1, 0x2] ldrb r0, [r5] lsls r0, 1 adds r3, 0x1 adds r0, r3 adds r0, r2 ldrb r0, [r0] strb r0, [r1, 0x3] movs r0, 0xFF strb r0, [r1, 0x4] bl b_movescr_stack_push_cursor ldr r1, _0802958C ldr r0, _08029590 b _0802963E .align 2, 0 _08029570: .4byte 0x02024a80 _08029574: .4byte 0x02024c07 _08029578: .4byte 0xffff1fff _0802957C: .4byte 0x02024c08 _08029580: .4byte 0x02000000 _08029584: .4byte 0x00016020 _08029588: .4byte 0x030041c0 _0802958C: .4byte 0x02024c10 _08029590: .4byte gUnknown_081D92C2 _08029594: ldr r4, _080295C8 lsls r0, r2, 2 adds r3, r0, r4 ldr r1, [r3] movs r0, 0x4 ands r0, r1 cmp r0, 0 beq _080295D4 movs r0, 0x5 negs r0, r0 ands r1, r0 str r1, [r3] ldrb r1, [r5] lsls r1, 2 adds r1, r4 ldr r0, [r1] movs r2, 0x4 negs r2, r2 ands r0, r2 str r0, [r1] bl b_movescr_stack_push_cursor ldr r1, _080295CC ldr r0, _080295D0 b _0802963E .align 2, 0 _080295C8: .4byte 0x02024c98 _080295CC: .4byte 0x02024c10 _080295D0: .4byte gUnknown_081D92C9 _080295D4: adds r0, r2, 0 bl battle_side_get_owner ldr r4, _08029624 lsls r0, 24 lsrs r0, 23 adds r0, r4 ldrh r1, [r0] movs r0, 0x10 ands r0, r1 cmp r0, 0 beq _08029638 ldrb r0, [r5] bl battle_side_get_owner lsls r0, 24 lsrs r0, 23 adds r0, r4 ldrh r2, [r0] ldr r1, _08029628 ands r1, r2 movs r4, 0 strh r1, [r0] ldrb r0, [r5] bl battle_side_get_owner ldr r2, _0802962C lsls r0, 24 lsrs r0, 24 lsls r1, r0, 1 adds r1, r0 lsls r1, 2 adds r1, r2 strb r4, [r1, 0x6] bl b_movescr_stack_push_cursor ldr r1, _08029630 ldr r0, _08029634 b _0802963E .align 2, 0 _08029624: .4byte 0x02024c7a _08029628: .4byte 0x0000ffef _0802962C: .4byte 0x02024c80 _08029630: .4byte 0x02024c10 _08029634: .4byte gUnknown_081D92D0 _08029638: ldr r1, _08029648 ldr r0, [r1] adds r0, 0x1 _0802963E: str r0, [r1] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08029648: .4byte 0x02024c10 thumb_func_end atkBE_breakfree thumb_func_start sub_802964C sub_802964C: @ 802964C ldr r1, _08029670 ldr r0, _08029674 ldrb r2, [r0] movs r0, 0x58 muls r2, r0 adds r1, 0x50 adds r2, r1 ldr r0, [r2] movs r1, 0x80 lsls r1, 23 orrs r0, r1 str r0, [r2] ldr r1, _08029678 ldr r0, [r1] adds r0, 0x1 str r0, [r1] bx lr .align 2, 0 _08029670: .4byte 0x02024a80 _08029674: .4byte 0x02024c07 _08029678: .4byte 0x02024c10 thumb_func_end sub_802964C thumb_func_start atkC0_recoverbasedonsunlight atkC0_recoverbasedonsunlight: @ 802967C push {r4-r7,lr} sub sp, 0x4 ldr r1, _080296E8 ldr r5, _080296EC ldrb r0, [r5] strb r0, [r1] ldr r7, _080296F0 ldrb r0, [r5] movs r6, 0x58 muls r0, r6 adds r0, r7 ldrh r1, [r0, 0x28] ldrh r0, [r0, 0x2C] cmp r1, r0 beq _0802975C ldr r4, _080296F4 ldrh r0, [r4] cmp r0, 0 beq _080296CE movs r0, 0 str r0, [sp] movs r0, 0x13 movs r1, 0 movs r2, 0xD movs r3, 0 bl sub_8018324 lsls r0, 24 lsrs r0, 24 cmp r0, 0 bne _080296CE str r0, [sp] movs r0, 0x13 movs r1, 0 movs r2, 0x4D movs r3, 0 bl sub_8018324 lsls r0, 24 cmp r0, 0 beq _080296FC _080296CE: ldr r3, _080296F8 ldr r2, _080296F0 ldr r0, _080296EC ldrb r1, [r0] movs r0, 0x58 muls r0, r1 adds r0, r2 ldrh r0, [r0, 0x2C] lsrs r0, 1 str r0, [r3] adds r1, r3, 0 b _08029736 .align 2, 0 _080296E8: .4byte 0x02024c08 _080296EC: .4byte 0x02024c07 _080296F0: .4byte 0x02024a80 _080296F4: .4byte 0x02024db8 _080296F8: .4byte 0x02024bec _080296FC: ldrh r1, [r4] movs r0, 0x60 ands r0, r1 cmp r0, 0 beq _08029728 ldr r4, _08029724 ldrb r0, [r5] muls r0, r6 adds r0, r7 ldrh r1, [r0, 0x2C] lsls r0, r1, 2 adds r0, r1 lsls r0, 2 movs r1, 0x1E bl __divsi3 str r0, [r4] adds r1, r4, 0 b _08029736 .align 2, 0 _08029724: .4byte 0x02024bec _08029728: ldr r1, _08029754 ldrb r0, [r5] muls r0, r6 adds r0, r7 ldrh r0, [r0, 0x2C] lsrs r0, 2 str r0, [r1] _08029736: adds r2, r1, 0 ldr r0, [r2] cmp r0, 0 bne _08029742 movs r0, 0x1 str r0, [r2] _08029742: ldr r0, [r1] negs r0, r0 str r0, [r1] ldr r1, _08029758 ldr r0, [r1] adds r0, 0x5 str r0, [r1] b _08029776 .align 2, 0 _08029754: .4byte 0x02024bec _08029758: .4byte 0x02024c10 _0802975C: ldr r3, _08029780 ldr r2, [r3] ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x4] lsls r0, 24 orrs r1, r0 str r1, [r3] _08029776: add sp, 0x4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08029780: .4byte 0x02024c10 thumb_func_end atkC0_recoverbasedonsunlight thumb_func_start sub_8029784 sub_8029784: @ 8029784 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} ldr r2, _08029894 ldr r0, _08029898 ldrb r1, [r0] movs r0, 0x58 adds r4, r1, 0 muls r4, r0 adds r4, r2 ldrb r0, [r4, 0x14] mov r10, r0 mov r7, r10 lsls r7, 27 adds r0, r7, 0 lsrs r0, 27 mov r10, r0 movs r1, 0x2 mov r2, r10 ands r2, r1 asrs r2, 1 ldrh r7, [r4, 0x14] mov r9, r7 mov r0, r9 lsls r0, 22 mov r9, r0 lsrs r3, r0, 27 adds r0, r1, 0 ands r0, r3 orrs r2, r0 ldrb r7, [r4, 0x15] mov r8, r7 mov r0, r8 lsls r0, 25 mov r8, r0 lsrs r3, r0, 27 adds r0, r1, 0 ands r0, r3 lsls r0, 1 orrs r2, r0 ldr r6, [r4, 0x14] lsls r6, 12 lsrs r3, r6, 27 adds r0, r1, 0 ands r0, r3 lsls r0, 2 orrs r2, r0 ldrh r5, [r4, 0x16] lsls r5, 23 lsrs r3, r5, 27 adds r0, r1, 0 ands r0, r3 lsls r0, 3 orrs r2, r0 ldrb r3, [r4, 0x17] lsls r3, 26 lsrs r0, r3, 27 ands r1, r0 lsls r1, 4 orrs r2, r1 movs r1, 0x1 adds r4, r1, 0 mov r7, r10 ands r4, r7 mov r0, r9 lsrs r0, 27 mov r9, r0 adds r0, r1, 0 mov r7, r9 ands r0, r7 lsls r0, 1 orrs r4, r0 mov r0, r8 lsrs r0, 27 mov r8, r0 adds r0, r1, 0 mov r7, r8 ands r0, r7 lsls r0, 2 orrs r4, r0 lsrs r6, 27 adds r0, r1, 0 ands r0, r6 lsls r0, 3 orrs r4, r0 lsrs r5, 27 adds r0, r1, 0 ands r0, r5 lsls r0, 4 orrs r4, r0 lsrs r3, 27 ands r1, r3 lsls r1, 5 orrs r4, r1 ldr r5, _0802989C lsls r0, r2, 2 adds r0, r2 lsls r0, 3 movs r1, 0x3F bl __divsi3 adds r0, 0x1E strh r0, [r5] ldr r5, _080298A0 lsls r0, r4, 4 subs r0, r4 movs r1, 0x3F bl __divsi3 adds r1, r0, 0x1 ldr r0, _080298A4 adds r5, r0 strb r1, [r5] lsls r0, r1, 24 lsrs r0, 24 cmp r0, 0x8 bls _08029876 adds r0, r1, 0x1 strb r0, [r5] _08029876: ldrb r0, [r5] movs r1, 0xC0 orrs r0, r1 strb r0, [r5] ldr r1, _080298A8 ldr r0, [r1] adds r0, 0x1 str r0, [r1] pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08029894: .4byte 0x02024a80 _08029898: .4byte 0x02024c07 _0802989C: .4byte 0x02024dec _080298A0: .4byte 0x02000000 _080298A4: .4byte 0x0001601c _080298A8: .4byte 0x02024c10 thumb_func_end sub_8029784 thumb_func_start atkC2_selectnexttarget atkC2_selectnexttarget: @ 80298AC push {r4-r7,lr} mov r7, r8 push {r7} ldr r0, _08029908 movs r1, 0 strb r1, [r0] ldr r1, _0802990C ldrb r1, [r1] adds r6, r0, 0 ldr r0, _08029910 mov r8, r0 cmp r1, 0 beq _080298F6 adds r3, r6, 0 ldr r0, _08029914 ldrb r5, [r0] ldr r0, _08029918 mov r12, r0 adds r4, r1, 0 ldr r7, _0802991C _080298D4: ldrb r2, [r3] cmp r2, r5 beq _080298EA ldrb r0, [r7] ldrb r1, [r6] lsls r1, 2 add r1, r12 ldr r1, [r1] ands r0, r1 cmp r0, 0 beq _080298F6 _080298EA: adds r0, r2, 0x1 strb r0, [r3] lsls r0, 24 lsrs r0, 24 cmp r0, r4 bcc _080298D4 _080298F6: mov r1, r8 ldr r0, [r1] adds r0, 0x1 str r0, [r1] pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08029908: .4byte 0x02024c08 _0802990C: .4byte 0x02024a68 _08029910: .4byte 0x02024c10 _08029914: .4byte 0x02024c07 _08029918: .4byte gUnknown_0820872C _0802991C: .4byte 0x02024c0c thumb_func_end atkC2_selectnexttarget thumb_func_start atkC3_setfutureattack atkC3_setfutureattack: @ 8029920 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x10 ldr r0, _08029958 mov r8, r0 ldr r7, _0802995C ldrb r1, [r7] adds r0, r1, r0 ldrb r6, [r0] cmp r6, 0 beq _08029964 ldr r3, _08029960 ldr r2, [r3] ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x4] lsls r0, 24 orrs r1, r0 str r1, [r3] b _08029A2E .align 2, 0 _08029958: .4byte 0x02024dbc _0802995C: .4byte 0x02024c08 _08029960: .4byte 0x02024c10 _08029964: lsls r1, 1 mov r0, r8 adds r0, 0x18 adds r1, r0 ldr r2, _08029A04 mov r9, r2 ldrh r0, [r2] strh r0, [r1] mov r0, r8 adds r0, 0x4 ldrb r4, [r7] adds r0, r4 ldr r5, _08029A08 ldrb r1, [r5] strb r1, [r0] ldrb r0, [r7] add r0, r8 movs r1, 0x3 strb r1, [r0] ldr r4, _08029A0C ldrb r0, [r7] bl battle_get_per_side_status movs r1, 0x1 mov r10, r1 ands r1, r0 lsls r1, 1 adds r1, r4 ldrh r3, [r1] ldrb r0, [r5] movs r4, 0x58 muls r0, r4 ldr r2, _08029A10 adds r0, r2 ldrb r1, [r7] muls r1, r4 adds r1, r2 mov r4, r9 ldrh r2, [r4] str r6, [sp] str r6, [sp, 0x4] ldrb r4, [r5] str r4, [sp, 0x8] ldrb r4, [r7] str r4, [sp, 0xC] bl sub_803BA2C ldrb r1, [r7] lsls r1, 2 mov r2, r8 adds r2, 0x8 adds r1, r2 str r0, [r1] ldr r1, _08029A14 ldrb r0, [r5] lsls r0, 4 adds r0, r1 ldrb r0, [r0] lsls r0, 28 cmp r0, 0 bge _080299F2 ldrb r4, [r7] lsls r4, 2 adds r4, r2 ldr r1, [r4] lsls r0, r1, 4 subs r0, r1 movs r1, 0xA bl __divsi3 str r0, [r4] _080299F2: mov r0, r9 ldrh r1, [r0] ldr r0, _08029A18 cmp r1, r0 bne _08029A20 ldr r0, _08029A1C mov r1, r10 strb r1, [r0, 0x5] b _08029A26 .align 2, 0 _08029A04: .4byte 0x02024be6 _08029A08: .4byte 0x02024c07 _08029A0C: .4byte 0x02024c7a _08029A10: .4byte 0x02024a80 _08029A14: .4byte 0x02024d28 _08029A18: .4byte 0x00000161 _08029A1C: .4byte 0x02024d1e _08029A20: ldr r1, _08029A40 movs r0, 0 strb r0, [r1, 0x5] _08029A26: ldr r1, _08029A44 ldr r0, [r1] adds r0, 0x5 str r0, [r1] _08029A2E: 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 _08029A40: .4byte 0x02024d1e _08029A44: .4byte 0x02024c10 thumb_func_end atkC3_setfutureattack thumb_func_start atkC4_802B910 atkC4_802B910: @ 8029A48 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} ldr r0, _08029A8C ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 ldr r7, _08029A90 cmp r0, 0 bne _08029A62 ldr r7, _08029A94 _08029A62: ldr r2, _08029A98 ldr r0, _08029A9C ldrb r1, [r0] movs r0, 0x58 muls r0, r1 adds r0, r2 ldrh r0, [r0, 0x28] cmp r0, 0 bne _08029AA4 ldr r3, _08029AA0 ldr r2, [r3] ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x4] b _08029C40 .align 2, 0 _08029A8C: .4byte 0x02024c07 _08029A90: .4byte 0x030045c0 _08029A94: .4byte 0x03004360 _08029A98: .4byte 0x02024a80 _08029A9C: .4byte 0x02024c08 _08029AA0: .4byte 0x02024c10 _08029AA4: ldr r6, _08029BE0 ldrb r0, [r6] mov r8, r0 cmp r0, 0x5 bls _08029AB0 b _08029C0C _08029AB0: adds r4, r6, 0 movs r5, 0x64 _08029AB4: ldrb r0, [r4] muls r0, r5 adds r0, r7, r0 movs r1, 0x39 bl PokemonGetField cmp r0, 0 beq _08029AF8 ldrb r0, [r6] muls r0, r5 adds r0, r7, r0 movs r1, 0x41 bl PokemonGetField cmp r0, 0 beq _08029AF8 ldrb r0, [r4] muls r0, r5 adds r0, r7, r0 movs r1, 0x41 bl PokemonGetField movs r1, 0xCE lsls r1, 1 cmp r0, r1 beq _08029AF8 ldrb r0, [r4] muls r0, r5 adds r0, r7, r0 movs r1, 0x37 bl PokemonGetField cmp r0, 0 beq _08029B08 _08029AF8: ldrb r0, [r4] adds r0, 0x1 strb r0, [r4] adds r6, r4, 0 lsls r0, 24 lsrs r0, 24 cmp r0, 0x5 bls _08029AB4 _08029B08: ldr r1, _08029BE0 mov r9, r1 ldrb r2, [r1] cmp r2, 0x5 bhi _08029C0C ldr r1, _08029BE4 movs r0, 0xFD strb r0, [r1] movs r0, 0x4 strb r0, [r1, 0x1] ldr r6, _08029BE8 ldrb r0, [r6] strb r0, [r1, 0x2] strb r2, [r1, 0x3] movs r0, 0xFF strb r0, [r1, 0x4] ldr r1, _08029BEC ldr r0, [r1] adds r0, 0x9 str r0, [r1] ldr r2, _08029BF0 mov r8, r2 ldr r5, _08029BF4 mov r1, r9 ldrb r0, [r1] movs r4, 0x64 muls r0, r4 adds r0, r7, r0 movs r1, 0xB bl PokemonGetField lsls r1, r0, 3 subs r1, r0 lsls r1, 2 adds r1, r5 ldrb r3, [r1, 0x1] mov r2, r8 str r3, [r2] ldr r2, _08029BF8 ldr r0, _08029BFC ldrh r1, [r0] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r0, [r0, 0x1] muls r0, r3 mov r1, r8 str r0, [r1] mov r2, r9 ldrb r0, [r2] muls r0, r4 adds r0, r7, r0 movs r1, 0x38 bl PokemonGetField lsls r0, 1 movs r1, 0x5 bl __udivsi3 adds r0, 0x2 mov r2, r8 ldr r1, [r2] muls r0, r1 str r0, [r2] ldr r3, _08029C00 ldr r1, _08029C04 ldrb r2, [r1] movs r1, 0x58 muls r1, r2 adds r1, r3 ldrh r2, [r1] lsls r1, r2, 3 subs r1, r2 lsls r1, 2 adds r1, r5 ldrb r1, [r1, 0x2] bl __divsi3 mov r1, r8 str r0, [r1] movs r1, 0x32 bl __divsi3 adds r2, r0, 0x2 mov r0, r8 str r2, [r0] ldr r1, _08029C08 ldrb r0, [r6] lsls r0, 4 adds r0, r1 ldrb r0, [r0] lsls r0, 28 cmp r0, 0 bge _08029BD4 lsls r0, r2, 4 subs r0, r2 movs r1, 0xA bl __divsi3 mov r1, r8 str r0, [r1] _08029BD4: mov r2, r9 ldrb r0, [r2] adds r0, 0x1 strb r0, [r2] b _08029C46 .align 2, 0 _08029BE0: .4byte 0x02024d1e _08029BE4: .4byte 0x030041c0 _08029BE8: .4byte 0x02024c07 _08029BEC: .4byte 0x02024c10 _08029BF0: .4byte 0x02024bec _08029BF4: .4byte gBaseStats _08029BF8: .4byte gBattleMoves _08029BFC: .4byte 0x02024be6 _08029C00: .4byte 0x02024a80 _08029C04: .4byte 0x02024c08 _08029C08: .4byte 0x02024d28 _08029C0C: mov r0, r8 cmp r0, 0 beq _08029C2C ldr r3, _08029C28 ldr r2, [r3] ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x4] b _08029C40 .align 2, 0 _08029C28: .4byte 0x02024c10 _08029C2C: ldr r3, _08029C54 ldr r2, [r3] ldrb r1, [r2, 0x5] ldrb r0, [r2, 0x6] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x7] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x8] _08029C40: lsls r0, 24 orrs r1, r0 str r1, [r3] _08029C46: pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08029C54: .4byte 0x02024c10 thumb_func_end atkC4_802B910 thumb_func_start atkC5_hidepreattack atkC5_hidepreattack: @ 8029C58 push {lr} ldr r0, _08029C6C ldrh r1, [r0] cmp r1, 0x5B beq _08029C98 cmp r1, 0x5B bgt _08029C70 cmp r1, 0x13 beq _08029C7C b _08029CC4 .align 2, 0 _08029C6C: .4byte 0x02024be6 _08029C70: ldr r0, _08029C8C cmp r1, r0 beq _08029CB0 adds r0, 0x31 cmp r1, r0 bne _08029CC4 _08029C7C: ldr r2, _08029C90 ldr r0, _08029C94 ldrb r1, [r0] lsls r1, 2 adds r1, r2 ldr r0, [r1] movs r2, 0x40 b _08029CC0 .align 2, 0 _08029C8C: .4byte 0x00000123 _08029C90: .4byte 0x02024c98 _08029C94: .4byte 0x02024c07 _08029C98: ldr r2, _08029CA8 ldr r0, _08029CAC ldrb r1, [r0] lsls r1, 2 adds r1, r2 ldr r0, [r1] movs r2, 0x80 b _08029CC0 .align 2, 0 _08029CA8: .4byte 0x02024c98 _08029CAC: .4byte 0x02024c07 _08029CB0: ldr r2, _08029CD0 ldr r0, _08029CD4 ldrb r1, [r0] lsls r1, 2 adds r1, r2 ldr r0, [r1] movs r2, 0x80 lsls r2, 11 _08029CC0: orrs r0, r2 str r0, [r1] _08029CC4: ldr r1, _08029CD8 ldr r0, [r1] adds r0, 0x1 str r0, [r1] pop {r0} bx r0 .align 2, 0 _08029CD0: .4byte 0x02024c98 _08029CD4: .4byte 0x02024c07 _08029CD8: .4byte 0x02024c10 thumb_func_end atkC5_hidepreattack thumb_func_start atkC6_unhidepostattack atkC6_unhidepostattack: @ 8029CDC push {lr} ldr r0, _08029CF0 ldrh r1, [r0] cmp r1, 0x5B beq _08029D20 cmp r1, 0x5B bgt _08029CF4 cmp r1, 0x13 beq _08029D00 b _08029D4E .align 2, 0 _08029CF0: .4byte 0x02024be6 _08029CF4: ldr r0, _08029D14 cmp r1, r0 beq _08029D3C adds r0, 0x31 cmp r1, r0 bne _08029D4E _08029D00: ldr r2, _08029D18 ldr r0, _08029D1C ldrb r1, [r0] lsls r1, 2 adds r1, r2 ldr r0, [r1] movs r2, 0x41 negs r2, r2 b _08029D4A .align 2, 0 _08029D14: .4byte 0x00000123 _08029D18: .4byte 0x02024c98 _08029D1C: .4byte 0x02024c07 _08029D20: ldr r2, _08029D34 ldr r0, _08029D38 ldrb r1, [r0] lsls r1, 2 adds r1, r2 ldr r0, [r1] movs r2, 0x81 negs r2, r2 b _08029D4A .align 2, 0 _08029D34: .4byte 0x02024c98 _08029D38: .4byte 0x02024c07 _08029D3C: ldr r2, _08029D5C ldr r0, _08029D60 ldrb r1, [r0] lsls r1, 2 adds r1, r2 ldr r0, [r1] ldr r2, _08029D64 _08029D4A: ands r0, r2 str r0, [r1] _08029D4E: ldr r1, _08029D68 ldr r0, [r1] adds r0, 0x1 str r0, [r1] pop {r0} bx r0 .align 2, 0 _08029D5C: .4byte 0x02024c98 _08029D60: .4byte 0x02024c07 _08029D64: .4byte 0xfffbffff _08029D68: .4byte 0x02024c10 thumb_func_end atkC6_unhidepostattack thumb_func_start atkC7_setminimize atkC7_setminimize: @ 8029D6C push {lr} ldr r0, _08029D9C ldr r0, [r0] movs r1, 0x80 lsls r1, 18 ands r0, r1 cmp r0, 0 beq _08029D90 ldr r2, _08029DA0 ldr r0, _08029DA4 ldrb r1, [r0] lsls r1, 2 adds r1, r2 ldr r0, [r1] movs r2, 0x80 lsls r2, 1 orrs r0, r2 str r0, [r1] _08029D90: ldr r1, _08029DA8 ldr r0, [r1] adds r0, 0x1 str r0, [r1] pop {r0} bx r0 .align 2, 0 _08029D9C: .4byte 0x02024c6c _08029DA0: .4byte 0x02024c98 _08029DA4: .4byte 0x02024c07 _08029DA8: .4byte 0x02024c10 thumb_func_end atkC7_setminimize thumb_func_start sub_8029DAC sub_8029DAC: @ 8029DAC push {lr} ldr r3, _08029DD0 ldrh r1, [r3] movs r2, 0x80 adds r0, r2, 0 ands r0, r1 cmp r0, 0 beq _08029DDC ldr r2, _08029DD4 ldrb r0, [r2] movs r1, 0x1 orrs r0, r1 strb r0, [r2] ldr r1, _08029DD8 movs r0, 0x2 strb r0, [r1, 0x5] b _08029DEA .align 2, 0 _08029DD0: .4byte 0x02024db8 _08029DD4: .4byte 0x02024c68 _08029DD8: .4byte 0x02024d1e _08029DDC: strh r2, [r3] ldr r0, _08029DF8 movs r1, 0x5 strb r1, [r0, 0x5] ldr r0, _08029DFC adds r0, 0x28 strb r1, [r0] _08029DEA: ldr r1, _08029E00 ldr r0, [r1] adds r0, 0x1 str r0, [r1] pop {r0} bx r0 .align 2, 0 _08029DF8: .4byte 0x02024d1e _08029DFC: .4byte 0x02024dbc _08029E00: .4byte 0x02024c10 thumb_func_end sub_8029DAC thumb_func_start atkC9_jumpifattackandspecialattackcannotfall atkC9_jumpifattackandspecialattackcannotfall: @ 8029E04 push {r4,lr} ldr r2, _08029E48 ldr r0, _08029E4C ldrb r1, [r0] movs r0, 0x58 muls r0, r1 adds r1, r0, r2 movs r0, 0x19 ldrsb r0, [r1, r0] adds r3, r2, 0 cmp r0, 0 bne _08029E58 movs r0, 0x1C ldrsb r0, [r1, r0] cmp r0, 0 bne _08029E58 ldr r0, _08029E50 ldrb r0, [r0, 0x6] cmp r0, 0x1 beq _08029E58 ldr r3, _08029E54 ldr r2, [r3] ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x4] lsls r0, 24 orrs r1, r0 str r1, [r3] b _08029E84 .align 2, 0 _08029E48: .4byte 0x02024a80 _08029E4C: .4byte 0x02024c08 _08029E50: .4byte 0x02024d1e _08029E54: .4byte 0x02024c10 _08029E58: ldr r4, _08029E8C ldr r0, _08029E90 ldrb r0, [r0] strb r0, [r4] ldr r2, _08029E94 ldrb r1, [r4] movs r0, 0x58 muls r0, r1 adds r0, r3 ldrh r0, [r0, 0x28] str r0, [r2] ldr r1, _08029E98 movs r0, 0 bl dp01_build_cmdbuf_x18_0_aa_health_bar_update ldrb r0, [r4] bl dp01_battle_side_mark_buffer_for_execution ldr r1, _08029E9C ldr r0, [r1] adds r0, 0x5 str r0, [r1] _08029E84: pop {r4} pop {r0} bx r0 .align 2, 0 _08029E8C: .4byte 0x02024a60 _08029E90: .4byte 0x02024c07 _08029E94: .4byte 0x02024bec _08029E98: .4byte 0x00007fff _08029E9C: .4byte 0x02024c10 thumb_func_end atkC9_jumpifattackandspecialattackcannotfall thumb_func_start atkCA_setforcedtarget atkCA_setforcedtarget: @ 8029EA0 push {r4,r5,lr} ldr r4, _08029EE0 ldrb r0, [r4] bl battle_side_get_owner ldr r5, _08029EE4 lsls r0, 24 lsrs r0, 24 lsls r1, r0, 1 adds r1, r0 lsls r1, 2 adds r1, r5 movs r0, 0x1 strb r0, [r1, 0x8] ldrb r0, [r4] bl battle_side_get_owner lsls r0, 24 lsrs r0, 24 lsls r1, r0, 1 adds r1, r0 lsls r1, 2 adds r1, r5 ldrb r0, [r4] strb r0, [r1, 0x9] ldr r1, _08029EE8 ldr r0, [r1] adds r0, 0x1 str r0, [r1] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08029EE0: .4byte 0x02024c07 _08029EE4: .4byte 0x02024c80 _08029EE8: .4byte 0x02024c10 thumb_func_end atkCA_setforcedtarget thumb_func_start atkCB_setcharge atkCB_setcharge: @ 8029EEC push {r4,lr} ldr r0, _08029F40 ldr r3, _08029F44 ldrb r1, [r3] lsls r1, 2 adds r1, r0 ldr r0, [r1] movs r2, 0x80 lsls r2, 2 orrs r0, r2 str r0, [r1] ldr r4, _08029F48 ldrb r1, [r3] lsls r0, r1, 3 subs r0, r1 lsls r0, 2 adds r0, r4 ldrb r2, [r0, 0x12] movs r1, 0x10 negs r1, r1 ands r1, r2 movs r2, 0x2 orrs r1, r2 strb r1, [r0, 0x12] ldrb r1, [r3] lsls r0, r1, 3 subs r0, r1 lsls r0, 2 adds r0, r4 ldrb r2, [r0, 0x12] movs r1, 0xF ands r1, r2 movs r2, 0x20 orrs r1, r2 strb r1, [r0, 0x12] ldr r1, _08029F4C ldr r0, [r1] adds r0, 0x1 str r0, [r1] pop {r4} pop {r0} bx r0 .align 2, 0 _08029F40: .4byte 0x02024c98 _08029F44: .4byte 0x02024c07 _08029F48: .4byte 0x02024ca8 _08029F4C: .4byte 0x02024c10 thumb_func_end atkCB_setcharge thumb_func_start atkCC_callterrainattack atkCC_callterrainattack: @ 8029F50 push {r4,lr} ldr r2, _08029FA0 ldr r0, [r2] ldr r1, _08029FA4 ands r0, r1 str r0, [r2] ldr r4, _08029FA8 ldr r1, _08029FAC ldr r0, _08029FB0 ldrb r0, [r0] lsls r0, 1 adds r0, r1 ldrh r0, [r0] strh r0, [r4] ldrh r0, [r4] movs r1, 0 bl sub_801B5C0 ldr r1, _08029FB4 strb r0, [r1] ldr r3, _08029FB8 ldr r2, _08029FBC ldrh r1, [r4] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r0, [r0] lsls r0, 2 adds r0, r3 ldr r0, [r0] bl b_movescr_stack_push ldr r1, _08029FC0 ldr r0, [r1] adds r0, 0x1 str r0, [r1] pop {r4} pop {r0} bx r0 .align 2, 0 _08029FA0: .4byte 0x02024c6c _08029FA4: .4byte 0xfffffbff _08029FA8: .4byte 0x02024be6 _08029FAC: .4byte gNaturePowerMoves _08029FB0: .4byte 0x0300428c _08029FB4: .4byte 0x02024c08 _08029FB8: .4byte gUnknown_081D6BBC _08029FBC: .4byte gBattleMoves _08029FC0: .4byte 0x02024c10 thumb_func_end atkCC_callterrainattack thumb_func_start atkCD_cureifburnedparalysedorpoisoned atkCD_cureifburnedparalysedorpoisoned: @ 8029FC4 push {r4-r6,lr} sub sp, 0x4 ldr r1, _0802A010 ldr r3, _0802A014 ldrb r0, [r3] movs r6, 0x58 muls r0, r6 adds r5, r1, 0 adds r5, 0x4C adds r2, r0, r5 ldr r0, [r2] movs r1, 0xD8 ands r0, r1 cmp r0, 0 beq _0802A020 movs r0, 0 str r0, [r2] ldr r1, _0802A018 ldr r0, [r1] adds r0, 0x5 str r0, [r1] ldr r4, _0802A01C ldrb r0, [r3] strb r0, [r4] ldrb r0, [r4] muls r0, r6 adds r0, r5 str r0, [sp] movs r0, 0 movs r1, 0x28 movs r2, 0 movs r3, 0x4 bl dp01_build_cmdbuf_x02_a_b_varargs ldrb r0, [r4] bl dp01_battle_side_mark_buffer_for_execution b _0802A03A .align 2, 0 _0802A010: .4byte 0x02024a80 _0802A014: .4byte 0x02024c07 _0802A018: .4byte 0x02024c10 _0802A01C: .4byte 0x02024a60 _0802A020: ldr r3, _0802A044 ldr r2, [r3] ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x4] lsls r0, 24 orrs r1, r0 str r1, [r3] _0802A03A: add sp, 0x4 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0802A044: .4byte 0x02024c10 thumb_func_end atkCD_cureifburnedparalysedorpoisoned thumb_func_start atkCE_settorment atkCE_settorment: @ 802A048 push {lr} ldr r1, _0802A080 ldr r0, _0802A084 ldrb r2, [r0] movs r0, 0x58 muls r0, r2 adds r1, 0x50 adds r0, r1 ldr r1, [r0] movs r2, 0x80 lsls r2, 24 cmp r1, 0 bge _0802A08C ldr r3, _0802A088 ldr r2, [r3] ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x4] lsls r0, 24 orrs r1, r0 str r1, [r3] b _0802A098 .align 2, 0 _0802A080: .4byte 0x02024a80 _0802A084: .4byte 0x02024c08 _0802A088: .4byte 0x02024c10 _0802A08C: orrs r1, r2 str r1, [r0] ldr r1, _0802A09C ldr r0, [r1] adds r0, 0x5 str r0, [r1] _0802A098: pop {r0} bx r0 .align 2, 0 _0802A09C: .4byte 0x02024c10 thumb_func_end atkCE_settorment thumb_func_start atkCF_jumpifnodamage atkCF_jumpifnodamage: @ 802A0A0 push {lr} ldr r2, _0802A0CC ldr r0, _0802A0D0 ldrb r0, [r0] lsls r1, r0, 4 adds r0, r2, 0x4 adds r0, r1, r0 ldr r0, [r0] cmp r0, 0 bne _0802A0C0 adds r0, r2, 0 adds r0, 0x8 adds r0, r1, r0 ldr r0, [r0] cmp r0, 0 beq _0802A0D8 _0802A0C0: ldr r1, _0802A0D4 ldr r0, [r1] adds r0, 0x5 str r0, [r1] b _0802A0F2 .align 2, 0 _0802A0CC: .4byte 0x02024d28 _0802A0D0: .4byte 0x02024c07 _0802A0D4: .4byte 0x02024c10 _0802A0D8: ldr r3, _0802A0F8 ldr r2, [r3] ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x4] lsls r0, 24 orrs r1, r0 str r1, [r3] _0802A0F2: pop {r0} bx r0 .align 2, 0 _0802A0F8: .4byte 0x02024c10 thumb_func_end atkCF_jumpifnodamage thumb_func_start atkD0_settaunt atkD0_settaunt: @ 802A0FC push {r4,lr} ldr r4, _0802A140 ldr r3, _0802A144 ldrb r0, [r3] lsls r1, r0, 3 subs r1, r0 lsls r1, 2 adds r2, r1, r4 ldrb r1, [r2, 0x13] lsls r0, r1, 28 cmp r0, 0 bne _0802A14C movs r0, 0x10 negs r0, r0 ands r0, r1 movs r1, 0x2 orrs r0, r1 strb r0, [r2, 0x13] ldrb r1, [r3] lsls r0, r1, 3 subs r0, r1 lsls r0, 2 adds r0, r4 ldrb r2, [r0, 0x13] movs r1, 0xF ands r1, r2 movs r2, 0x20 orrs r1, r2 strb r1, [r0, 0x13] ldr r1, _0802A148 ldr r0, [r1] adds r0, 0x5 str r0, [r1] b _0802A166 .align 2, 0 _0802A140: .4byte 0x02024ca8 _0802A144: .4byte 0x02024c08 _0802A148: .4byte 0x02024c10 _0802A14C: ldr r3, _0802A16C ldr r2, [r3] ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x4] lsls r0, 24 orrs r1, r0 str r1, [r3] _0802A166: pop {r4} pop {r0} bx r0 .align 2, 0 _0802A16C: .4byte 0x02024c10 thumb_func_end atkD0_settaunt thumb_func_start sub_802A170 sub_802A170: @ 802A170 push {r4,lr} ldr r4, _0802A1D8 ldrb r0, [r4] bl battle_get_per_side_status movs r1, 0x2 eors r0, r1 lsls r0, 24 lsrs r0, 24 bl battle_get_side_with_given_state ldr r3, _0802A1DC strb r0, [r3] ldr r0, _0802A1E0 ldrh r1, [r0] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _0802A1F4 ldr r0, _0802A1E4 ldrb r1, [r0] ldr r2, _0802A1E8 ldrb r3, [r3] lsls r0, r3, 2 adds r0, r2 ldr r0, [r0] ands r1, r0 cmp r1, 0 bne _0802A1F4 ldr r1, _0802A1EC ldrb r0, [r4] lsls r0, 4 adds r0, r1 ldrb r0, [r0] lsls r0, 28 cmp r0, 0 blt _0802A1F4 lsls r0, r3, 4 adds r2, r0, r1 ldrb r1, [r2] lsls r0, r1, 28 cmp r0, 0 blt _0802A1F4 movs r0, 0x8 orrs r0, r1 strb r0, [r2] ldr r1, _0802A1F0 ldr r0, [r1] adds r0, 0x5 str r0, [r1] b _0802A20E .align 2, 0 _0802A1D8: .4byte 0x02024c07 _0802A1DC: .4byte 0x02024c08 _0802A1E0: .4byte 0x020239f8 _0802A1E4: .4byte 0x02024c0c _0802A1E8: .4byte gUnknown_0820872C _0802A1EC: .4byte 0x02024d28 _0802A1F0: .4byte 0x02024c10 _0802A1F4: ldr r3, _0802A214 ldr r2, [r3] ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x4] lsls r0, 24 orrs r1, r0 str r1, [r3] _0802A20E: pop {r4} pop {r0} bx r0 .align 2, 0 _0802A214: .4byte 0x02024c10 thumb_func_end sub_802A170 thumb_func_start sub_802A218 sub_802A218: @ 802A218 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x4 ldr r0, _0802A30C ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _0802A24C ldr r0, _0802A310 ldrh r1, [r0] ldr r0, _0802A314 ands r0, r1 cmp r0, 0 bne _0802A24C ldr r0, _0802A318 ldrh r1, [r0] movs r0, 0x80 lsls r0, 3 cmp r1, r0 bne _0802A2EE _0802A24C: ldr r4, _0802A30C ldrb r0, [r4] bl battle_side_get_owner lsls r0, 24 lsrs r2, r0, 24 ldr r0, _0802A310 ldrh r1, [r0] ldr r0, _0802A314 ands r0, r1 cmp r0, 0 bne _0802A290 ldr r0, _0802A318 ldrh r1, [r0] movs r0, 0x80 lsls r0, 3 cmp r1, r0 beq _0802A290 ldr r0, _0802A31C adds r0, 0x29 adds r0, r2, r0 ldrb r1, [r0] ldr r3, _0802A320 ldr r2, _0802A324 ldrb r0, [r4] lsls r0, 1 adds r0, r2 ldrh r0, [r0] lsls r0, 2 adds r0, r3 ldr r0, [r0] ands r1, r0 cmp r1, 0 bne _0802A2EE _0802A290: ldr r0, _0802A328 mov r9, r0 ldr r1, _0802A30C ldrb r4, [r1] movs r2, 0x58 mov r8, r2 mov r0, r8 muls r0, r4 mov r3, r9 adds r5, r0, r3 ldrh r3, [r5, 0x2E] adds r1, r3, 0 cmp r1, 0 bne _0802A2BE ldr r0, _0802A32C ldrb r0, [r0] mov r2, r8 muls r2, r0 adds r0, r2, 0 add r0, r9 ldrh r0, [r0, 0x2E] cmp r0, 0 beq _0802A2EE _0802A2BE: cmp r1, 0xAF beq _0802A2EE ldr r7, _0802A32C ldrb r0, [r7] mov r1, r8 muls r1, r0 adds r0, r1, 0 mov r1, r9 adds r2, r0, r1 ldrh r1, [r2, 0x2E] cmp r1, 0xAF beq _0802A2EE adds r0, r3, 0 subs r0, 0x79 lsls r0, 16 lsrs r0, 16 cmp r0, 0xB bls _0802A2EE adds r0, r1, 0 subs r0, 0x79 lsls r0, 16 lsrs r0, 16 cmp r0, 0xB bhi _0802A334 _0802A2EE: ldr r3, _0802A330 ldr r2, [r3] ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x4] lsls r0, 24 orrs r1, r0 str r1, [r3] b _0802A49A .align 2, 0 _0802A30C: .4byte 0x02024c07 _0802A310: .4byte 0x020239f8 _0802A314: .4byte 0x00000902 _0802A318: .4byte 0x0202ff5e _0802A31C: .4byte 0x02024dbc _0802A320: .4byte gUnknown_0820872C _0802A324: .4byte 0x02024a6a _0802A328: .4byte 0x02024a80 _0802A32C: .4byte 0x02024c08 _0802A330: .4byte 0x02024c10 _0802A334: adds r0, r2, 0 adds r0, 0x20 ldrb r0, [r0] cmp r0, 0x3C bne _0802A36C ldr r1, _0802A360 ldr r0, _0802A364 str r0, [r1] ldr r1, _0802A368 ldrb r0, [r7] mov r2, r8 muls r2, r0 adds r0, r2, 0 add r0, r9 adds r0, 0x20 ldrb r0, [r0] strb r0, [r1] ldrb r0, [r7] ldrb r1, [r1] bl sub_81074C4 b _0802A49A .align 2, 0 _0802A360: .4byte 0x02024c10 _0802A364: .4byte gUnknown_081D9913 _0802A368: .4byte 0x02024c06 _0802A36C: lsls r0, r4, 1 ldr r4, _0802A458 adds r6, r0, r4 ldrh r5, [r5, 0x2E] mov r10, r5 strh r1, [r6] ldr r3, _0802A45C ldrb r0, [r3] mov r1, r8 muls r1, r0 adds r0, r1, 0 add r0, r9 movs r1, 0 strh r1, [r0, 0x2E] ldrb r0, [r7] mov r2, r8 muls r2, r0 adds r0, r2, 0 add r0, r9 mov r3, r10 strh r3, [r0, 0x2E] ldr r5, _0802A460 ldr r1, _0802A45C ldrb r0, [r1] strb r0, [r5] str r6, [sp] movs r0, 0 movs r1, 0x2 movs r2, 0 movs r3, 0x2 bl dp01_build_cmdbuf_x02_a_b_varargs ldr r2, _0802A45C ldrb r0, [r2] bl dp01_battle_side_mark_buffer_for_execution ldrb r0, [r7] strb r0, [r5] ldrb r0, [r7] mov r3, r8 muls r3, r0 adds r0, r3, 0 mov r1, r9 adds r1, 0x2E adds r0, r1 str r0, [sp] movs r0, 0 movs r1, 0x2 movs r2, 0 movs r3, 0x2 bl dp01_build_cmdbuf_x02_a_b_varargs ldrb r0, [r7] bl dp01_battle_side_mark_buffer_for_execution ldr r0, _0802A464 adds r4, r0 ldrb r0, [r7] lsls r0, 1 ldr r2, _0802A468 adds r0, r2 adds r0, r4 movs r1, 0 strb r1, [r0] ldrb r0, [r7] lsls r0, 1 ldr r1, _0802A46C adds r0, r1 adds r0, r4 movs r3, 0 strb r3, [r0] ldr r3, _0802A45C ldrb r0, [r3] lsls r0, 1 adds r0, r2 adds r0, r4 movs r2, 0 strb r2, [r0] ldrb r0, [r3] lsls r0, 1 adds r0, r1 adds r0, r4 strb r2, [r0] ldr r1, _0802A470 ldr r0, [r1] adds r0, 0x5 str r0, [r1] ldr r1, _0802A474 movs r3, 0xFD strb r3, [r1] movs r2, 0xA strb r2, [r1, 0x1] ldrh r0, [r6] strb r0, [r1, 0x2] ldrh r0, [r6] lsrs r0, 8 strb r0, [r1, 0x3] movs r0, 0xFF strb r0, [r1, 0x4] ldr r1, _0802A478 strb r3, [r1] strb r2, [r1, 0x1] mov r3, r10 strb r3, [r1, 0x2] mov r2, r10 lsrs r0, r2, 8 strb r0, [r1, 0x3] movs r0, 0x1 negs r0, r0 strb r0, [r1, 0x4] cmp r2, 0 beq _0802A480 ldrh r0, [r6] cmp r0, 0 beq _0802A494 ldr r1, _0802A47C movs r0, 0x2 b _0802A498 .align 2, 0 _0802A458: .4byte 0x020160f0 _0802A45C: .4byte 0x02024c07 _0802A460: .4byte 0x02024a60 _0802A464: .4byte 0xfffe9f10 _0802A468: .4byte 0x000160e8 _0802A46C: .4byte 0x000160e9 _0802A470: .4byte 0x02024c10 _0802A474: .4byte 0x030041c0 _0802A478: .4byte 0x03004290 _0802A47C: .4byte 0x02024d1e _0802A480: ldrh r0, [r6] cmp r0, 0 beq _0802A494 ldr r0, _0802A490 movs r3, 0 strb r3, [r0, 0x5] b _0802A49A .align 2, 0 _0802A490: .4byte 0x02024d1e _0802A494: ldr r1, _0802A4AC movs r0, 0x1 _0802A498: strb r0, [r1, 0x5] _0802A49A: 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 _0802A4AC: .4byte 0x02024d1e thumb_func_end sub_802A218 thumb_func_start sub_802A4B0 sub_802A4B0: @ 802A4B0 push {r4,lr} ldr r3, _0802A4F0 ldr r4, _0802A4F4 ldrb r0, [r4] movs r2, 0x58 muls r0, r2 adds r0, r3 adds r0, 0x20 ldrb r1, [r0] adds r0, r1, 0 cmp r0, 0 beq _0802A504 cmp r0, 0x19 beq _0802A504 ldr r0, _0802A4F8 ldrb r0, [r0] muls r0, r2 adds r0, r3 adds r0, 0x20 strb r1, [r0] ldr r1, _0802A4FC ldrb r0, [r4] muls r0, r2 adds r0, r3 adds r0, 0x20 ldrb r0, [r0] strb r0, [r1] ldr r1, _0802A500 ldr r0, [r1] adds r0, 0x5 str r0, [r1] b _0802A51E .align 2, 0 _0802A4F0: .4byte 0x02024a80 _0802A4F4: .4byte 0x02024c08 _0802A4F8: .4byte 0x02024c07 _0802A4FC: .4byte 0x02024c06 _0802A500: .4byte 0x02024c10 _0802A504: ldr r3, _0802A524 ldr r2, [r3] ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x4] lsls r0, 24 orrs r1, r0 str r1, [r3] _0802A51E: pop {r4} pop {r0} bx r0 .align 2, 0 _0802A524: .4byte 0x02024c10 thumb_func_end sub_802A4B0 thumb_func_start atkD4_802C408 atkD4_802C408: @ 802A528 push {r4-r7,lr} ldr r7, _0802A53C ldr r2, [r7] ldrb r3, [r2, 0x1] cmp r3, 0 beq _0802A540 cmp r3, 0x1 beq _0802A578 b _0802A5F4 .align 2, 0 _0802A53C: .4byte 0x02024c10 _0802A540: ldr r1, _0802A56C ldr r4, _0802A570 adds r0, r1, 0 adds r0, 0x20 ldrb r5, [r4] adds r3, r0, r5 ldrb r0, [r3] cmp r0, 0 bne _0802A5C4 movs r0, 0x2 strb r0, [r3] ldrb r0, [r4] adds r1, 0x24 adds r1, r0, r1 ldr r2, _0802A574 lsls r0, 1 adds r0, r2 ldrh r0, [r0] strb r0, [r1] ldr r0, [r7] adds r0, 0x6 b _0802A5F2 .align 2, 0 _0802A56C: .4byte 0x02024dbc _0802A570: .4byte 0x02024c07 _0802A574: .4byte 0x02024a6a _0802A578: ldr r1, _0802A5DC movs r0, 0xFD strb r0, [r1] movs r0, 0x4 strb r0, [r1, 0x1] ldr r4, _0802A5E0 ldrb r0, [r4] strb r0, [r1, 0x2] ldr r0, _0802A5E4 adds r0, 0x24 ldrb r5, [r4] adds r0, r5 ldrb r0, [r0] strb r0, [r1, 0x3] movs r0, 0xFF strb r0, [r1, 0x4] ldr r1, _0802A5E8 ldr r6, _0802A5EC ldrb r0, [r4] movs r5, 0x58 muls r0, r5 adds r0, r6 ldrh r0, [r0, 0x2C] lsrs r0, 1 str r0, [r1] cmp r0, 0 bne _0802A5B0 str r3, [r1] _0802A5B0: ldr r0, [r1] negs r0, r0 str r0, [r1] ldrb r0, [r4] muls r0, r5 adds r0, r6 ldrh r1, [r0, 0x28] ldrh r0, [r0, 0x2C] cmp r1, r0 bne _0802A5F0 _0802A5C4: ldrb r1, [r2, 0x2] ldrb r0, [r2, 0x3] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x4] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x5] lsls r0, 24 orrs r1, r0 str r1, [r7] b _0802A5F4 .align 2, 0 _0802A5DC: .4byte 0x030041c0 _0802A5E0: .4byte 0x02024c08 _0802A5E4: .4byte 0x02024dbc _0802A5E8: .4byte 0x02024bec _0802A5EC: .4byte 0x02024a80 _0802A5F0: adds r0, r2, 0x6 _0802A5F2: str r0, [r7] _0802A5F4: pop {r4-r7} pop {r0} bx r0 thumb_func_end atkD4_802C408 thumb_func_start sub_802A5FC sub_802A5FC: @ 802A5FC push {lr} ldr r1, _0802A634 ldr r0, _0802A638 ldrb r0, [r0] lsls r0, 2 adds r2, r0, r1 ldr r1, [r2] movs r3, 0x80 lsls r3, 3 adds r0, r1, 0 ands r0, r3 cmp r0, 0 beq _0802A640 ldr r3, _0802A63C ldr r2, [r3] ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x4] lsls r0, 24 orrs r1, r0 str r1, [r3] b _0802A64C .align 2, 0 _0802A634: .4byte 0x02024c98 _0802A638: .4byte 0x02024c07 _0802A63C: .4byte 0x02024c10 _0802A640: orrs r1, r3 str r1, [r2] ldr r1, _0802A650 ldr r0, [r1] adds r0, 0x5 str r0, [r1] _0802A64C: pop {r0} bx r0 .align 2, 0 _0802A650: .4byte 0x02024c10 thumb_func_end sub_802A5FC thumb_func_start atkD6_doubledamagedealtifdamaged atkD6_doubledamagedealtifdamaged: @ 802A654 push {lr} ldr r3, _0802A6A4 ldr r0, _0802A6A8 ldrb r0, [r0] lsls r2, r0, 4 adds r0, r3, 0x4 adds r0, r2, r0 ldr r0, [r0] cmp r0, 0 beq _0802A674 adds r0, r2, r3 ldr r1, _0802A6AC ldrb r0, [r0, 0xC] ldrb r1, [r1] cmp r0, r1 beq _0802A68C _0802A674: adds r0, r3, 0 adds r0, 0x8 adds r0, r2, r0 ldr r0, [r0] cmp r0, 0 beq _0802A696 adds r0, r2, r3 ldr r1, _0802A6AC ldrb r0, [r0, 0xD] ldrb r1, [r1] cmp r0, r1 bne _0802A696 _0802A68C: ldr r0, _0802A6B0 ldr r1, _0802A6B4 adds r0, r1 movs r1, 0x2 strb r1, [r0] _0802A696: ldr r1, _0802A6B8 ldr r0, [r1] adds r0, 0x1 str r0, [r1] pop {r0} bx r0 .align 2, 0 _0802A6A4: .4byte 0x02024d28 _0802A6A8: .4byte 0x02024c07 _0802A6AC: .4byte 0x02024c08 _0802A6B0: .4byte 0x02000000 _0802A6B4: .4byte 0x0001601f _0802A6B8: .4byte 0x02024c10 thumb_func_end atkD6_doubledamagedealtifdamaged thumb_func_start sub_802A6BC sub_802A6BC: @ 802A6BC push {r4,lr} ldr r1, _0802A700 ldr r0, _0802A704 ldrb r3, [r0] lsls r0, r3, 2 adds r4, r0, r1 ldr r2, [r4] movs r0, 0xC0 lsls r0, 5 ands r0, r2 cmp r0, 0 bne _0802A6E4 ldr r1, _0802A708 movs r0, 0x58 muls r0, r3 adds r1, 0x4C adds r0, r1 ldrb r0, [r0] cmp r0, 0 beq _0802A710 _0802A6E4: ldr r3, _0802A70C ldr r2, [r3] ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x4] lsls r0, 24 orrs r1, r0 str r1, [r3] b _0802A720 .align 2, 0 _0802A700: .4byte 0x02024c98 _0802A704: .4byte 0x02024c08 _0802A708: .4byte 0x02024a80 _0802A70C: .4byte 0x02024c10 _0802A710: movs r0, 0x80 lsls r0, 5 orrs r2, r0 str r2, [r4] ldr r1, _0802A728 ldr r0, [r1] adds r0, 0x5 str r0, [r1] _0802A720: pop {r4} pop {r0} bx r0 .align 2, 0 _0802A728: .4byte 0x02024c10 thumb_func_end sub_802A6BC thumb_func_start atkD8_setdamagetohealthdifference atkD8_setdamagetohealthdifference: @ 802A72C push {lr} ldr r2, _0802A768 ldr r0, _0802A76C ldrb r0, [r0] movs r1, 0x58 muls r0, r1 adds r3, r0, r2 ldr r0, _0802A770 ldrb r0, [r0] muls r0, r1 adds r1, r0, r2 ldrh r0, [r3, 0x28] ldrh r2, [r1, 0x28] cmp r0, r2 bhi _0802A778 ldr r3, _0802A774 ldr r2, [r3] ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x4] lsls r0, 24 orrs r1, r0 str r1, [r3] b _0802A78A .align 2, 0 _0802A768: .4byte 0x02024a80 _0802A76C: .4byte 0x02024c08 _0802A770: .4byte 0x02024c07 _0802A774: .4byte 0x02024c10 _0802A778: ldr r2, _0802A790 ldrh r0, [r3, 0x28] ldrh r1, [r1, 0x28] subs r0, r1 str r0, [r2] ldr r1, _0802A794 ldr r0, [r1] adds r0, 0x5 str r0, [r1] _0802A78A: pop {r0} bx r0 .align 2, 0 _0802A790: .4byte 0x02024bec _0802A794: .4byte 0x02024c10 thumb_func_end atkD8_setdamagetohealthdifference thumb_func_start atkD9_scaledamagebyhealthratio atkD9_scaledamagebyhealthratio: @ 802A798 push {r4,lr} ldr r4, _0802A7E4 ldrh r0, [r4] cmp r0, 0 bne _0802A7D4 ldr r2, _0802A7E8 ldr r0, _0802A7EC ldrh r1, [r0] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r3, [r0, 0x1] ldr r2, _0802A7F0 ldr r0, _0802A7F4 ldrb r1, [r0] movs r0, 0x58 muls r1, r0 adds r1, r2 ldrh r0, [r1, 0x28] muls r0, r3 ldrh r1, [r1, 0x2C] bl __divsi3 strh r0, [r4] lsls r0, 16 cmp r0, 0 bne _0802A7D4 movs r0, 0x1 strh r0, [r4] _0802A7D4: ldr r1, _0802A7F8 ldr r0, [r1] adds r0, 0x1 str r0, [r1] pop {r4} pop {r0} bx r0 .align 2, 0 _0802A7E4: .4byte 0x02024dec _0802A7E8: .4byte gBattleMoves _0802A7EC: .4byte 0x02024be6 _0802A7F0: .4byte 0x02024a80 _0802A7F4: .4byte 0x02024c07 _0802A7F8: .4byte 0x02024c10 thumb_func_end atkD9_scaledamagebyhealthratio thumb_func_start atkDA_abilityswap atkDA_abilityswap: @ 802A7FC push {r4-r6,lr} ldr r5, _0802A860 ldr r0, _0802A864 ldrb r0, [r0] movs r4, 0x58 muls r0, r4 adds r0, r5 adds r2, r0, 0 adds r2, 0x20 ldrb r1, [r2] cmp r1, 0 bne _0802A824 ldr r0, _0802A868 ldrb r0, [r0] muls r0, r4 adds r0, r5 adds r0, 0x20 ldrb r0, [r0] cmp r0, 0 beq _0802A844 _0802A824: cmp r1, 0x19 beq _0802A844 ldr r6, _0802A868 ldrb r0, [r6] muls r0, r4 adds r0, r5 adds r0, 0x20 ldrb r3, [r0] cmp r3, 0x19 beq _0802A844 ldr r0, _0802A86C ldrb r1, [r0] movs r0, 0x29 ands r0, r1 cmp r0, 0 beq _0802A874 _0802A844: ldr r3, _0802A870 ldr r2, [r3] ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x4] lsls r0, 24 orrs r1, r0 str r1, [r3] b _0802A88A .align 2, 0 _0802A860: .4byte 0x02024a80 _0802A864: .4byte 0x02024c07 _0802A868: .4byte 0x02024c08 _0802A86C: .4byte 0x02024c68 _0802A870: .4byte 0x02024c10 _0802A874: ldrb r1, [r2] strb r3, [r2] ldrb r0, [r6] muls r0, r4 adds r0, r5 adds r0, 0x20 strb r1, [r0] ldr r1, _0802A890 ldr r0, [r1] adds r0, 0x5 str r0, [r1] _0802A88A: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0802A890: .4byte 0x02024c10 thumb_func_end atkDA_abilityswap thumb_func_start atkDB_imprisoneffect atkDB_imprisoneffect: @ 802A894 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} movs r0, 0 mov r8, r0 ldr r1, _0802A8B8 ldr r0, _0802A8BC ldrb r2, [r0] lsls r0, r2, 2 adds r0, r1 ldr r0, [r0] movs r1, 0x80 lsls r1, 6 ands r0, r1 cmp r0, 0 beq _0802A8E8 b _0802A95E .align 2, 0 _0802A8B8: .4byte 0x02024c98 _0802A8BC: .4byte 0x02024c07 _0802A8C0: ldr r0, _0802A8E0 mov r2, r9 ldrb r1, [r2] lsls r1, 2 adds r1, r0 ldr r0, [r1] movs r2, 0x80 lsls r2, 6 orrs r0, r2 str r0, [r1] ldr r1, _0802A8E4 ldr r0, [r1] adds r0, 0x5 str r0, [r1] b _0802A956 .align 2, 0 _0802A8E0: .4byte 0x02024c98 _0802A8E4: .4byte 0x02024c10 _0802A8E8: adds r0, r2, 0 bl sub_801529C movs r6, 0 b _0802A94E _0802A8F2: adds r0, r6, 0 bl battle_side_get_owner lsls r0, 24 lsrs r0, 24 cmp r8, r0 beq _0802A948 movs r4, 0 ldr r7, _0802A984 mov r9, r7 ldr r0, _0802A988 mov r12, r0 mov r1, r9 ldrb r0, [r1] mov r2, r12 adds r2, 0xC movs r1, 0x58 muls r0, r1 adds r3, r0, r2 adds r5, r6, 0 muls r5, r1 _0802A91C: movs r2, 0 ldrh r1, [r3] mov r0, r12 adds r0, 0xC adds r0, r5, r0 _0802A926: ldrh r7, [r0] cmp r1, r7 bne _0802A930 cmp r1, 0 bne _0802A938 _0802A930: adds r0, 0x2 adds r2, 0x1 cmp r2, 0x3 ble _0802A926 _0802A938: cmp r2, 0x4 bne _0802A944 adds r3, 0x2 adds r4, 0x1 cmp r4, 0x3 ble _0802A91C _0802A944: cmp r4, 0x4 bne _0802A8C0 _0802A948: adds r0, r6, 0x1 lsls r0, 24 lsrs r6, r0, 24 _0802A94E: ldr r0, _0802A98C ldrb r0, [r0] cmp r6, r0 bcc _0802A8F2 _0802A956: ldr r0, _0802A98C ldrb r0, [r0] cmp r6, r0 bne _0802A978 _0802A95E: ldr r3, _0802A990 ldr r2, [r3] ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x4] lsls r0, 24 orrs r1, r0 str r1, [r3] _0802A978: pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0802A984: .4byte 0x02024c07 _0802A988: .4byte 0x02024a80 _0802A98C: .4byte 0x02024a68 _0802A990: .4byte 0x02024c10 thumb_func_end atkDB_imprisoneffect thumb_func_start atkDC_setgrudge atkDC_setgrudge: @ 802A994 push {lr} ldr r1, _0802A9CC ldr r0, _0802A9D0 ldrb r0, [r0] lsls r0, 2 adds r2, r0, r1 ldr r1, [r2] movs r3, 0x80 lsls r3, 7 adds r0, r1, 0 ands r0, r3 cmp r0, 0 beq _0802A9D8 ldr r3, _0802A9D4 ldr r2, [r3] ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x4] lsls r0, 24 orrs r1, r0 str r1, [r3] b _0802A9E4 .align 2, 0 _0802A9CC: .4byte 0x02024c98 _0802A9D0: .4byte 0x02024c07 _0802A9D4: .4byte 0x02024c10 _0802A9D8: orrs r1, r3 str r1, [r2] ldr r1, _0802A9E8 ldr r0, [r1] adds r0, 0x5 str r0, [r1] _0802A9E4: pop {r0} bx r0 .align 2, 0 _0802A9E8: .4byte 0x02024c10 thumb_func_end atkDC_setgrudge thumb_func_start atkDD_weightdamagecalculation atkDD_weightdamagecalculation: @ 802A9EC push {r4-r7,lr} mov r7, r8 push {r7} movs r5, 0 ldr r2, _0802AA50 ldrh r0, [r2] ldr r1, _0802AA54 cmp r0, r1 beq _0802AA64 adds r6, r2, 0 ldr r0, _0802AA58 mov r8, r0 adds r7, r1, 0 adds r4, r6, 0 _0802AA08: ldr r0, _0802AA5C ldrb r1, [r0] movs r0, 0x58 muls r0, r1 add r0, r8 ldrh r0, [r0] bl SpeciesToNationalPokedexNum lsls r0, 16 lsrs r0, 16 movs r1, 0x1 bl sub_8090D54 ldrh r1, [r4] lsls r0, 16 lsrs r0, 16 cmp r1, r0 bhi _0802AA36 adds r4, 0x4 adds r5, 0x2 ldrh r0, [r4] cmp r0, r7 bne _0802AA08 _0802AA36: lsls r0, r5, 1 adds r0, r6 ldrh r1, [r0] ldr r0, _0802AA54 cmp r1, r0 beq _0802AA64 ldr r0, _0802AA60 adds r1, r5, 0x1 lsls r1, 1 adds r1, r6 ldrh r1, [r1] strh r1, [r0] b _0802AA6A .align 2, 0 _0802AA50: .4byte gWeightDamage _0802AA54: .4byte 0x0000ffff _0802AA58: .4byte 0x02024a80 _0802AA5C: .4byte 0x02024c08 _0802AA60: .4byte 0x02024dec _0802AA64: ldr r1, _0802AA7C movs r0, 0x78 strh r0, [r1] _0802AA6A: ldr r1, _0802AA80 ldr r0, [r1] adds r0, 0x1 str r0, [r1] pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0802AA7C: .4byte 0x02024dec _0802AA80: .4byte 0x02024c10 thumb_func_end atkDD_weightdamagecalculation thumb_func_start atkDE_asistattackselect atkDE_asistattackselect: @ 802AA84 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x8 movs r0, 0 mov r10, r0 ldr r0, _0802AB9C ldrb r0, [r0] bl battle_get_per_side_status movs r1, 0x1 ands r1, r0 ldr r0, _0802ABA0 str r0, [sp] cmp r1, 0 beq _0802AAAC ldr r1, _0802ABA4 str r1, [sp] _0802AAAC: movs r2, 0 _0802AAAE: ldr r1, _0802ABA8 ldr r0, _0802AB9C ldrb r0, [r0] lsls r0, 1 adds r0, r1 adds r1, r2, 0x1 str r1, [sp, 0x4] ldrh r0, [r0] cmp r2, r0 beq _0802AB54 movs r0, 0x64 adds r6, r2, 0 muls r6, r0 ldr r0, [sp] adds r4, r0, r6 adds r0, r4, 0 movs r1, 0x41 bl PokemonGetField cmp r0, 0 beq _0802AB54 adds r0, r4, 0 movs r1, 0x41 bl PokemonGetField movs r1, 0xCE lsls r1, 1 cmp r0, r1 beq _0802AB54 movs r5, 0 ldr r1, _0802ABAC mov r8, r1 mov r9, r6 mov r1, r10 lsls r0, r1, 1 ldr r1, _0802ABB0 adds r6, r0, r1 _0802AAF8: movs r7, 0 adds r1, r5, 0 adds r1, 0xD ldr r0, [sp] add r0, r9 bl PokemonGetField lsls r0, 16 lsrs r4, r0, 16 adds r0, r4, 0 bl sub_802838C lsls r0, 24 adds r1, r5, 0x1 cmp r0, 0 bne _0802AB4E ldr r0, _0802ABB4 ldrh r2, [r0] adds r3, r0, 0 cmp r2, r8 beq _0802AB42 cmp r4, r2 beq _0802AB38 ldr r5, _0802ABAC adds r2, r3, 0 _0802AB2A: adds r2, 0x2 adds r7, 0x1 ldrh r0, [r2] cmp r0, r5 beq _0802AB42 cmp r4, r0 bne _0802AB2A _0802AB38: lsls r0, r7, 1 adds r0, r3 ldrh r0, [r0] cmp r0, r8 bne _0802AB4E _0802AB42: cmp r4, 0 beq _0802AB4E strh r4, [r6] adds r6, 0x2 movs r0, 0x1 add r10, r0 _0802AB4E: adds r5, r1, 0 cmp r5, 0x3 ble _0802AAF8 _0802AB54: ldr r2, [sp, 0x4] cmp r2, 0x5 ble _0802AAAE mov r1, r10 cmp r1, 0 beq _0802ABCC ldr r2, _0802ABB8 ldr r0, [r2] ldr r1, _0802ABBC ands r0, r1 str r0, [r2] ldr r4, _0802ABC0 bl Random movs r1, 0xFF ands r1, r0 mov r0, r10 muls r0, r1 asrs r0, 8 lsls r0, 1 ldr r1, _0802ABB0 adds r0, r1 ldrh r0, [r0] strh r0, [r4] ldrh r0, [r4] movs r1, 0 bl sub_801B5C0 ldr r1, _0802ABC4 strb r0, [r1] ldr r1, _0802ABC8 ldr r0, [r1] adds r0, 0x5 str r0, [r1] b _0802ABE6 .align 2, 0 _0802AB9C: .4byte 0x02024c07 _0802ABA0: .4byte 0x03004360 _0802ABA4: .4byte 0x030045c0 _0802ABA8: .4byte 0x02024a6a _0802ABAC: .4byte 0x0000ffff _0802ABB0: .4byte 0x02016024 _0802ABB4: .4byte gUnknown_081FACFE _0802ABB8: .4byte 0x02024c6c _0802ABBC: .4byte 0xfffffbff _0802ABC0: .4byte 0x02024bea _0802ABC4: .4byte 0x02024c08 _0802ABC8: .4byte 0x02024c10 _0802ABCC: ldr r3, _0802ABF8 ldr r2, [r3] ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x4] lsls r0, 24 orrs r1, r0 str r1, [r3] _0802ABE6: 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 _0802ABF8: .4byte 0x02024c10 thumb_func_end atkDE_asistattackselect thumb_func_start atkDF_setmagiccoat atkDF_setmagiccoat: @ 802ABFC push {lr} ldr r1, _0802AC44 ldr r3, _0802AC48 ldrb r0, [r3] strb r0, [r1] ldr r2, _0802AC4C ldrb r1, [r3] lsls r0, r1, 2 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r1, [r0] movs r2, 0x20 orrs r1, r2 strb r1, [r0] ldr r0, _0802AC50 ldrb r1, [r0] ldr r0, _0802AC54 ldrb r0, [r0] subs r0, 0x1 cmp r1, r0 bne _0802AC5C ldr r3, _0802AC58 ldr r2, [r3] ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x4] lsls r0, 24 orrs r1, r0 str r1, [r3] b _0802AC74 .align 2, 0 _0802AC44: .4byte 0x02024c08 _0802AC48: .4byte 0x02024c07 _0802AC4C: .4byte 0x02024d68 _0802AC50: .4byte 0x02024a7e _0802AC54: .4byte 0x02024a68 _0802AC58: .4byte 0x02024c10 _0802AC5C: ldr r0, _0802AC78 ldrb r1, [r3] lsls r1, 4 adds r1, r0 ldrb r0, [r1] movs r2, 0x10 orrs r0, r2 strb r0, [r1] ldr r1, _0802AC7C ldr r0, [r1] adds r0, 0x5 str r0, [r1] _0802AC74: pop {r0} bx r0 .align 2, 0 _0802AC78: .4byte 0x02024d28 _0802AC7C: .4byte 0x02024c10 thumb_func_end atkDF_setmagiccoat thumb_func_start atkE0_setstealstatchange atkE0_setstealstatchange: @ 802AC80 push {lr} ldr r2, _0802ACC4 ldr r3, _0802ACC8 ldrb r1, [r3] lsls r0, r1, 2 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r1, [r0] movs r2, 0x20 orrs r1, r2 strb r1, [r0] ldr r0, _0802ACCC ldrb r1, [r0] ldr r0, _0802ACD0 ldrb r0, [r0] subs r0, 0x1 cmp r1, r0 bne _0802ACD8 ldr r3, _0802ACD4 ldr r2, [r3] ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x4] lsls r0, 24 orrs r1, r0 str r1, [r3] b _0802ACEE .align 2, 0 _0802ACC4: .4byte 0x02024d68 _0802ACC8: .4byte 0x02024c07 _0802ACCC: .4byte 0x02024a7e _0802ACD0: .4byte 0x02024a68 _0802ACD4: .4byte 0x02024c10 _0802ACD8: ldr r0, _0802ACF4 ldrb r1, [r3] lsls r1, 4 adds r1, r0 ldrb r0, [r1] orrs r0, r2 strb r0, [r1] ldr r1, _0802ACF8 ldr r0, [r1] adds r0, 0x5 str r0, [r1] _0802ACEE: pop {r0} bx r0 .align 2, 0 _0802ACF4: .4byte 0x02024d28 _0802ACF8: .4byte 0x02024c10 thumb_func_end atkE0_setstealstatchange thumb_func_start atkE1_802CBE4 atkE1_802CBE4: @ 802ACFC push {r4-r6,lr} ldr r4, _0802ADA0 ldr r1, _0802ADA4 adds r0, r4, r1 ldrb r0, [r0] subs r1, 0xDA adds r4, r1 strb r0, [r4] ldrb r0, [r4] bl battle_side_get_owner lsls r0, 24 lsrs r5, r0, 24 ldr r2, _0802ADA8 movs r0, 0xFD strb r0, [r2] movs r0, 0x9 strb r0, [r2, 0x1] ldr r3, _0802ADAC ldrb r1, [r4] movs r0, 0x58 muls r0, r1 adds r0, r3 adds r0, 0x20 ldrb r0, [r0] strb r0, [r2, 0x2] movs r0, 0xFF strb r0, [r2, 0x3] ldr r2, _0802ADB0 ldr r1, _0802ADB4 ldrb r0, [r2] ldrb r1, [r1] cmp r0, r1 bcs _0802AD84 adds r4, r2, 0 ldr r6, _0802ADB8 _0802AD44: ldrb r0, [r4] bl battle_side_get_owner lsls r0, 24 lsrs r0, 24 cmp r0, r5 beq _0802AD66 ldr r0, _0802ADBC ldrb r1, [r0] ldrb r0, [r4] lsls r0, 2 adds r0, r6 ldr r0, [r0] ands r1, r0 ldr r2, _0802ADB4 cmp r1, 0 beq _0802AD7A _0802AD66: ldrb r0, [r4] adds r0, 0x1 strb r0, [r4] ldr r1, _0802ADB4 lsls r0, 24 lsrs r0, 24 adds r2, r1, 0 ldrb r1, [r2] cmp r0, r1 bcc _0802AD44 _0802AD7A: ldr r0, _0802ADB0 ldrb r0, [r0] ldrb r2, [r2] cmp r0, r2 bcc _0802ADC4 _0802AD84: ldr r3, _0802ADC0 ldr r2, [r3] ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x4] lsls r0, 24 orrs r1, r0 str r1, [r3] b _0802ADCC .align 2, 0 _0802ADA0: .4byte 0x02000000 _0802ADA4: .4byte 0x000160dd _0802ADA8: .4byte 0x030041c0 _0802ADAC: .4byte 0x02024a80 _0802ADB0: .4byte 0x02024c08 _0802ADB4: .4byte 0x02024a68 _0802ADB8: .4byte gUnknown_0820872C _0802ADBC: .4byte 0x02024c0c _0802ADC0: .4byte 0x02024c10 _0802ADC4: ldr r1, _0802ADD4 ldr r0, [r1] adds r0, 0x5 str r0, [r1] _0802ADCC: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0802ADD4: .4byte 0x02024c10 thumb_func_end atkE1_802CBE4 thumb_func_start sub_802ADD8 sub_802ADD8: @ 802ADD8 push {r4-r7,lr} sub sp, 0x4 ldr r6, _0802AE44 ldr r0, [r6] ldrb r0, [r0, 0x1] bl sub_8015150 ldr r5, _0802AE48 strb r0, [r5] ldr r4, _0802AE4C ldrb r0, [r5] movs r1, 0x58 mov r12, r1 mov r1, r12 muls r1, r0 adds r0, r1, r4 adds r0, 0x20 ldrb r0, [r0] cmp r0, 0x1E bne _0802AE34 adds r4, 0x4C adds r1, r4 movs r0, 0 str r0, [r1] ldr r2, _0802AE50 ldr r1, _0802AE54 ldrb r3, [r5] ldr r7, _0802AE58 adds r0, r3, r7 adds r0, r1 ldrb r0, [r0] lsls r0, 2 adds r0, r2 ldrb r2, [r0] mov r0, r12 muls r0, r3 adds r0, r4 str r0, [sp] movs r0, 0 movs r1, 0x28 movs r3, 0x4 bl dp01_build_cmdbuf_x02_a_b_varargs ldrb r0, [r5] bl dp01_battle_side_mark_buffer_for_execution _0802AE34: ldr r0, [r6] adds r0, 0x2 str r0, [r6] add sp, 0x4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0802AE44: .4byte 0x02024c10 _0802AE48: .4byte 0x02024a60 _0802AE4C: .4byte 0x02024a80 _0802AE50: .4byte gUnknown_0820872C _0802AE54: .4byte 0x02000000 _0802AE58: .4byte 0x00016064 thumb_func_end sub_802ADD8 thumb_func_start atkE3_jumpiffainted atkE3_jumpiffainted: @ 802AE5C push {r4,lr} ldr r4, _0802AE98 ldr r0, [r4] ldrb r0, [r0, 0x1] bl sub_8015150 ldr r1, _0802AE9C strb r0, [r1] ldr r2, _0802AEA0 ldrb r1, [r1] movs r0, 0x58 muls r0, r1 adds r0, r2 ldrh r0, [r0, 0x28] cmp r0, 0 bne _0802AEA4 ldr r2, [r4] ldrb r1, [r2, 0x2] ldrb r0, [r2, 0x3] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x4] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x5] lsls r0, 24 orrs r1, r0 str r1, [r4] b _0802AEAA .align 2, 0 _0802AE98: .4byte 0x02024c10 _0802AE9C: .4byte 0x02024a60 _0802AEA0: .4byte 0x02024a80 _0802AEA4: ldr r0, [r4] adds r0, 0x6 str r0, [r4] _0802AEAA: pop {r4} pop {r0} bx r0 thumb_func_end atkE3_jumpiffainted thumb_func_start sub_802AEB0 sub_802AEB0: @ 802AEB0 push {lr} ldr r0, _0802AEC4 ldrb r0, [r0] cmp r0, 0x7 bhi _0802AF4C lsls r0, 2 ldr r1, _0802AEC8 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0802AEC4: .4byte 0x0300428c _0802AEC8: .4byte _0802AECC .align 2, 0 _0802AECC: .4byte _0802AEEC .4byte _0802AEF8 .4byte _0802AF04 .4byte _0802AF10 .4byte _0802AF1C .4byte _0802AF28 .4byte _0802AF34 .4byte _0802AF40 _0802AEEC: ldr r1, _0802AEF4 movs r0, 0x2 b _0802AF50 .align 2, 0 _0802AEF4: .4byte 0x02024d1e _0802AEF8: ldr r1, _0802AF00 movs r0, 0x1 b _0802AF50 .align 2, 0 _0802AF00: .4byte 0x02024d1e _0802AF04: ldr r1, _0802AF0C movs r0, 0x1B b _0802AF50 .align 2, 0 _0802AF0C: .4byte 0x02024d1e _0802AF10: ldr r1, _0802AF18 movs r0, 0x17 b _0802AF50 .align 2, 0 _0802AF18: .4byte 0x02024d1e _0802AF1C: ldr r1, _0802AF24 movs r0, 0x16 b _0802AF50 .align 2, 0 _0802AF24: .4byte 0x02024d1e _0802AF28: ldr r1, _0802AF30 movs r0, 0x18 b _0802AF50 .align 2, 0 _0802AF30: .4byte 0x02024d1e _0802AF34: ldr r1, _0802AF3C movs r0, 0x7 b _0802AF50 .align 2, 0 _0802AF3C: .4byte 0x02024d1e _0802AF40: ldr r1, _0802AF48 movs r0, 0x8 b _0802AF50 .align 2, 0 _0802AF48: .4byte 0x02024d1e _0802AF4C: ldr r1, _0802AF60 movs r0, 0x5 _0802AF50: strb r0, [r1, 0x3] ldr r1, _0802AF64 ldr r0, [r1] adds r0, 0x1 str r0, [r1] pop {r0} bx r0 .align 2, 0 _0802AF60: .4byte 0x02024d1e _0802AF64: .4byte 0x02024c10 thumb_func_end sub_802AEB0 thumb_func_start sub_802AF68 sub_802AF68: @ 802AF68 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} movs r7, 0 ldr r0, _0802AFB4 mov r9, r0 ldr r1, _0802AFB8 mov r8, r1 _0802AF7A: movs r0, 0x64 adds r4, r7, 0 muls r4, r0 ldr r0, _0802AFBC adds r4, r0 adds r0, r4, 0 movs r1, 0x41 bl PokemonGetField lsls r0, 16 lsrs r5, r0, 16 adds r0, r4, 0 movs r1, 0xC bl PokemonGetField lsls r0, 16 lsrs r6, r0, 16 adds r0, r4, 0 movs r1, 0x2E bl PokemonGetField cmp r0, 0 beq _0802AFC0 lsls r0, r5, 3 subs r0, r5 lsls r0, 2 add r0, r9 ldrb r0, [r0, 0x17] b _0802AFCA .align 2, 0 _0802AFB4: .4byte gBaseStats _0802AFB8: .4byte gPickupItems _0802AFBC: .4byte 0x03004360 _0802AFC0: lsls r0, r5, 3 subs r0, r5 lsls r0, 2 add r0, r9 ldrb r0, [r0, 0x16] _0802AFCA: adds r4, r7, 0x1 cmp r0, 0x35 bne _0802B032 cmp r5, 0 beq _0802B032 movs r0, 0xCE lsls r0, 1 cmp r5, r0 beq _0802B032 cmp r6, 0 bne _0802B032 bl Random lsls r0, 16 lsrs r0, 16 movs r1, 0xA bl __umodsi3 lsls r0, 16 cmp r0, 0 bne _0802B032 bl Random lsls r0, 16 lsrs r0, 16 movs r1, 0x64 bl __umodsi3 lsls r0, 16 lsrs r3, r0, 16 movs r2, 0 mov r1, r8 ldrh r0, [r1, 0x2] cmp r0, r3 bgt _0802B020 adds r1, 0x2 _0802B012: adds r1, 0x4 adds r2, 0x2 cmp r2, 0x11 bgt _0802B020 ldrh r0, [r1] cmp r0, r3 ble _0802B012 _0802B020: movs r0, 0x64 muls r0, r7 ldr r1, _0802B04C adds r0, r1 lsls r2, 1 add r2, r8 movs r1, 0xC bl pokemon_setattr _0802B032: adds r7, r4, 0 cmp r7, 0x5 ble _0802AF7A ldr r1, _0802B050 ldr r0, [r1] adds r0, 0x1 str r0, [r1] pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0802B04C: .4byte 0x03004360 _0802B050: .4byte 0x02024c10 thumb_func_end sub_802AF68 thumb_func_start atkE6_castform_transform atkE6_castform_transform: @ 802B054 push {r4,lr} ldr r4, _0802B0A8 ldr r3, _0802B0AC ldr r1, _0802B0B0 adds r0, r3, r1 ldrb r0, [r0] strb r0, [r4] ldr r1, _0802B0B4 ldrb r2, [r4] movs r0, 0x58 muls r0, r2 adds r1, 0x50 adds r0, r1 ldr r0, [r0] movs r1, 0x80 lsls r1, 17 ands r0, r1 cmp r0, 0 beq _0802B086 ldr r0, _0802B0B8 adds r2, r3, r0 ldrb r1, [r2] movs r0, 0x80 orrs r0, r1 strb r0, [r2] _0802B086: ldr r1, _0802B0B8 adds r0, r3, r1 ldrb r2, [r0] movs r0, 0 movs r1, 0 bl dp01_build_cmdbuf_x34_a_bb_aka_battle_anim ldrb r0, [r4] bl dp01_battle_side_mark_buffer_for_execution ldr r1, _0802B0BC ldr r0, [r1] adds r0, 0x1 str r0, [r1] pop {r4} pop {r0} bx r0 .align 2, 0 _0802B0A8: .4byte 0x02024a60 _0802B0AC: .4byte 0x02000000 _0802B0B0: .4byte 0x00016003 _0802B0B4: .4byte 0x02024a80 _0802B0B8: .4byte 0x0001609b _0802B0BC: .4byte 0x02024c10 thumb_func_end atkE6_castform_transform thumb_func_start atkE7_castform_switch atkE7_castform_switch: @ 802B0C0 push {r4,r5,lr} ldr r1, _0802B0F4 ldr r0, [r1] adds r0, 0x1 str r0, [r1] ldr r5, _0802B0F8 ldr r1, _0802B0FC adds r0, r5, r1 ldrb r0, [r0] bl castform_switch lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0 beq _0802B0EC ldr r0, _0802B100 bl b_push_move_exec subs r1, r4, 0x1 ldr r2, _0802B104 adds r0, r5, r2 strb r1, [r0] _0802B0EC: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0802B0F4: .4byte 0x02024c10 _0802B0F8: .4byte 0x02000000 _0802B0FC: .4byte 0x00016003 _0802B100: .4byte gUnknown_081D977D _0802B104: .4byte 0x0001609b thumb_func_end atkE7_castform_switch thumb_func_start atkE8_settypebasedhalvers atkE8_settypebasedhalvers: @ 802B108 push {r4,lr} movs r4, 0 ldr r2, _0802B144 ldr r0, _0802B148 ldrh r1, [r0] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r0, [r0] cmp r0, 0xC9 bne _0802B158 ldr r1, _0802B14C ldr r0, _0802B150 ldrb r0, [r0] lsls r0, 2 adds r2, r0, r1 ldr r1, [r2] movs r3, 0x80 lsls r3, 9 adds r0, r1, 0 ands r0, r3 cmp r0, 0 bne _0802B17C orrs r1, r3 str r1, [r2] ldr r0, _0802B154 strb r4, [r0, 0x5] b _0802B180 .align 2, 0 _0802B144: .4byte gBattleMoves _0802B148: .4byte 0x02024be6 _0802B14C: .4byte 0x02024c98 _0802B150: .4byte 0x02024c07 _0802B154: .4byte 0x02024d1e _0802B158: ldr r1, _0802B18C ldr r0, _0802B190 ldrb r0, [r0] lsls r0, 2 adds r2, r0, r1 ldr r1, [r2] movs r3, 0x80 lsls r3, 10 adds r0, r1, 0 ands r0, r3 cmp r0, 0 bne _0802B17C orrs r1, r3 str r1, [r2] ldr r1, _0802B194 movs r0, 0x1 strb r0, [r1, 0x5] movs r4, 0x1 _0802B17C: cmp r4, 0 beq _0802B19C _0802B180: ldr r1, _0802B198 ldr r0, [r1] adds r0, 0x5 str r0, [r1] b _0802B1B6 .align 2, 0 _0802B18C: .4byte 0x02024c98 _0802B190: .4byte 0x02024c07 _0802B194: .4byte 0x02024d1e _0802B198: .4byte 0x02024c10 _0802B19C: ldr r3, _0802B1BC ldr r2, [r3] ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x4] lsls r0, 24 orrs r1, r0 str r1, [r3] _0802B1B6: pop {r4} pop {r0} bx r0 .align 2, 0 _0802B1BC: .4byte 0x02024c10 thumb_func_end atkE8_settypebasedhalvers thumb_func_start sub_802B1C0 sub_802B1C0: @ 802B1C0 push {lr} sub sp, 0x4 movs r0, 0 str r0, [sp] movs r0, 0x13 movs r1, 0 movs r2, 0xD movs r3, 0 bl sub_8018324 lsls r0, 24 lsrs r0, 24 cmp r0, 0 bne _0802B276 str r0, [sp] movs r0, 0x13 movs r1, 0 movs r2, 0x4D movs r3, 0 bl sub_8018324 lsls r0, 24 cmp r0, 0 bne _0802B276 ldr r3, _0802B218 ldrb r0, [r3] ldr r2, _0802B21C cmp r0, 0 beq _0802B202 ldr r0, _0802B220 adds r1, r2, r0 movs r0, 0x2 strb r0, [r1] _0802B202: ldrh r1, [r3] movs r0, 0x7 ands r0, r1 cmp r0, 0 beq _0802B228 ldr r0, _0802B224 adds r1, r2, r0 movs r0, 0x8B strb r0, [r1] b _0802B276 .align 2, 0 _0802B218: .4byte 0x02024db8 _0802B21C: .4byte 0x02000000 _0802B220: .4byte 0x0001601f _0802B224: .4byte 0x0001601c _0802B228: movs r0, 0x18 ands r0, r1 cmp r0, 0 beq _0802B240 ldr r0, _0802B23C adds r1, r2, r0 movs r0, 0x85 strb r0, [r1] b _0802B276 .align 2, 0 _0802B23C: .4byte 0x0001601c _0802B240: movs r0, 0x60 ands r0, r1 cmp r0, 0 beq _0802B258 ldr r0, _0802B254 adds r1, r2, r0 movs r0, 0x8A strb r0, [r1] b _0802B276 .align 2, 0 _0802B254: .4byte 0x0001601c _0802B258: movs r3, 0x80 adds r0, r3, 0 ands r0, r1 cmp r0, 0 beq _0802B270 ldr r0, _0802B26C adds r1, r2, r0 movs r0, 0x8F strb r0, [r1] b _0802B276 .align 2, 0 _0802B26C: .4byte 0x0001601c _0802B270: ldr r1, _0802B284 adds r0, r2, r1 strb r3, [r0] _0802B276: ldr r1, _0802B288 ldr r0, [r1] adds r0, 0x1 str r0, [r1] add sp, 0x4 pop {r0} bx r0 .align 2, 0 _0802B284: .4byte 0x0001601c _0802B288: .4byte 0x02024c10 thumb_func_end sub_802B1C0 thumb_func_start atkEA_recycleitem atkEA_recycleitem: @ 802B28C push {r4-r7,lr} sub sp, 0x4 ldr r7, _0802B2F0 ldr r0, _0802B2F4 ldrb r0, [r0] strb r0, [r7] ldrb r2, [r7] lsls r1, r2, 1 ldr r0, _0802B2F8 adds r6, r1, r0 ldrh r5, [r6] cmp r5, 0 beq _0802B308 ldr r4, _0802B2FC movs r3, 0x58 adds r0, r2, 0 muls r0, r3 adds r0, r4 ldrh r0, [r0, 0x2E] cmp r0, 0 bne _0802B308 ldr r1, _0802B300 strh r5, [r1] strh r0, [r6] ldrb r0, [r7] muls r0, r3 adds r0, r4 ldrh r1, [r1] strh r1, [r0, 0x2E] ldrb r0, [r7] muls r0, r3 adds r1, r4, 0 adds r1, 0x2E adds r0, r1 str r0, [sp] movs r0, 0 movs r1, 0x2 movs r2, 0 movs r3, 0x2 bl dp01_build_cmdbuf_x02_a_b_varargs ldrb r0, [r7] bl dp01_battle_side_mark_buffer_for_execution ldr r1, _0802B304 ldr r0, [r1] adds r0, 0x5 str r0, [r1] b _0802B322 .align 2, 0 _0802B2F0: .4byte 0x02024a60 _0802B2F4: .4byte 0x02024c07 _0802B2F8: .4byte 0x020160cc _0802B2FC: .4byte 0x02024a80 _0802B300: .4byte 0x02024c04 _0802B304: .4byte 0x02024c10 _0802B308: ldr r3, _0802B32C ldr r2, [r3] ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x4] lsls r0, 24 orrs r1, r0 str r1, [r3] _0802B322: add sp, 0x4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0802B32C: .4byte 0x02024c10 thumb_func_end atkEA_recycleitem thumb_func_start atkEB_settypetoterrain atkEB_settypetoterrain: @ 802B330 push {r4-r7,lr} mov r7, r8 push {r7} ldr r0, _0802B3A0 mov r8, r0 ldr r7, _0802B3A4 ldrb r0, [r7] movs r6, 0x58 muls r0, r6 mov r1, r8 adds r3, r0, r1 movs r0, 0x21 adds r0, r3 mov r12, r0 ldr r5, _0802B3A8 ldr r4, _0802B3AC ldrb r0, [r4] adds r0, r5 ldrb r2, [r0] mov r1, r12 ldrb r0, [r1] adds r1, r2, 0 cmp r0, r1 beq _0802B3B8 adds r0, r3, 0 adds r0, 0x22 ldrb r0, [r0] cmp r0, r1 beq _0802B3B8 mov r0, r12 strb r2, [r0] ldrb r0, [r7] adds r1, r0, 0 muls r1, r6 add r1, r8 ldrb r0, [r4] adds r0, r5 ldrb r0, [r0] adds r1, 0x22 strb r0, [r1] ldr r1, _0802B3B0 movs r0, 0xFD strb r0, [r1] movs r0, 0x3 strb r0, [r1, 0x1] ldrb r0, [r4] adds r0, r5 ldrb r0, [r0] strb r0, [r1, 0x2] movs r0, 0xFF strb r0, [r1, 0x3] ldr r1, _0802B3B4 ldr r0, [r1] adds r0, 0x5 str r0, [r1] b _0802B3D2 .align 2, 0 _0802B3A0: .4byte 0x02024a80 _0802B3A4: .4byte 0x02024c07 _0802B3A8: .4byte gUnknown_081FAD86 _0802B3AC: .4byte 0x0300428c _0802B3B0: .4byte 0x030041c0 _0802B3B4: .4byte 0x02024c10 _0802B3B8: ldr r3, _0802B3DC ldr r2, [r3] ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x4] lsls r0, 24 orrs r1, r0 str r1, [r3] _0802B3D2: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0802B3DC: .4byte 0x02024c10 thumb_func_end atkEB_settypetoterrain thumb_func_start sub_802B3E0 sub_802B3E0: @ 802B3E0 push {r4,r5,lr} ldr r5, _0802B45C ldrb r0, [r5] bl battle_get_per_side_status movs r1, 0x2 eors r0, r1 lsls r0, 24 lsrs r0, 24 bl battle_get_side_with_given_state ldr r4, _0802B460 strb r0, [r4] ldr r0, _0802B464 ldrh r1, [r0] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _0802B490 ldr r0, _0802B468 ldrb r1, [r0] ldr r2, _0802B46C ldrb r3, [r4] lsls r0, r3, 2 adds r0, r2 ldr r0, [r0] ands r1, r0 cmp r1, 0 bne _0802B490 ldr r0, _0802B470 adds r0, r3, r0 ldrb r0, [r0] cmp r0, 0 bne _0802B490 ldr r1, _0802B474 lsls r0, r3, 1 adds r0, r1 ldrh r2, [r0] cmp r2, 0xE4 bne _0802B490 ldr r0, _0802B478 adds r0, r3, r0 movs r1, 0xB strb r1, [r0] ldr r0, _0802B47C strh r2, [r0] ldr r1, _0802B480 ldr r0, [r1] adds r0, 0x5 str r0, [r1] ldr r1, _0802B484 ldr r0, _0802B488 adds r2, r1, r0 movs r0, 0x1 strb r0, [r2] ldrb r0, [r5] ldr r2, _0802B48C adds r1, r2 strb r0, [r1] ldrb r0, [r4] strb r0, [r5] b _0802B4AA .align 2, 0 _0802B45C: .4byte 0x02024c07 _0802B460: .4byte 0x02024a60 _0802B464: .4byte 0x020239f8 _0802B468: .4byte 0x02024c0c _0802B46C: .4byte gUnknown_0820872C _0802B470: .4byte 0x02024c18 _0802B474: .4byte 0x02024c60 _0802B478: .4byte 0x02024a76 _0802B47C: .4byte 0x02024be6 _0802B480: .4byte 0x02024c10 _0802B484: .4byte 0x02000000 _0802B488: .4byte 0x00016002 _0802B48C: .4byte 0x000160a7 _0802B490: ldr r3, _0802B4B0 ldr r2, [r3] ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x4] lsls r0, 24 orrs r1, r0 str r1, [r3] _0802B4AA: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0802B4B0: .4byte 0x02024c10 thumb_func_end sub_802B3E0 thumb_func_start sub_802B4B4 sub_802B4B4: @ 802B4B4 push {r4,r5,lr} ldr r1, _0802B4DC ldr r3, _0802B4E0 ldrb r0, [r3] strb r0, [r1] ldr r2, _0802B4E4 lsls r0, 24 lsrs r0, 24 adds r4, r1, 0 ldrb r1, [r2] cmp r0, r1 bne _0802B4F0 ldr r0, _0802B4E8 ldr r5, _0802B4EC adds r1, r0, r5 ldrb r1, [r1] strb r1, [r2] strb r1, [r3] b _0802B4FA .align 2, 0 _0802B4DC: .4byte 0x02024c0a _0802B4E0: .4byte 0x02024c07 _0802B4E4: .4byte 0x02024c08 _0802B4E8: .4byte 0x02000000 _0802B4EC: .4byte 0x00016003 _0802B4F0: ldr r0, _0802B510 ldr r3, _0802B514 adds r1, r0, r3 ldrb r1, [r1] strb r1, [r2] _0802B4FA: ldrb r1, [r4] ldr r5, _0802B514 adds r0, r5 strb r1, [r0] ldr r1, _0802B518 ldr r0, [r1] adds r0, 0x1 str r0, [r1] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0802B510: .4byte 0x02000000 _0802B514: .4byte 0x00016003 _0802B518: .4byte 0x02024c10 thumb_func_end sub_802B4B4 thumb_func_start sub_802B51C sub_802B51C: @ 802B51C push {r4,lr} ldr r0, _0802B56C ldrb r0, [r0] bl battle_side_get_owner movs r1, 0x1 eors r0, r1 lsls r0, 24 lsrs r0, 24 ldr r1, _0802B570 lsls r3, r0, 1 adds r0, r3, r0 lsls r0, 2 adds r4, r0, r1 ldrb r0, [r4] cmp r0, 0 bne _0802B544 ldrb r2, [r4, 0x1] cmp r2, 0 beq _0802B58C _0802B544: ldr r2, _0802B574 adds r2, r3, r2 ldrh r1, [r2] ldr r0, _0802B578 ands r0, r1 movs r3, 0 ldr r1, _0802B57C ands r0, r1 strh r0, [r2] strb r3, [r4] strb r3, [r4, 0x1] ldr r0, _0802B580 ldr r2, _0802B584 adds r1, r0, r2 movs r2, 0x1 strb r2, [r1] ldr r3, _0802B588 adds r0, r3 b _0802B598 .align 2, 0 _0802B56C: .4byte 0x02024c07 _0802B570: .4byte 0x02024c80 _0802B574: .4byte 0x02024c7a _0802B578: .4byte 0x0000fffe _0802B57C: .4byte 0x0000fffd _0802B580: .4byte 0x02000000 _0802B584: .4byte 0x00016002 _0802B588: .4byte 0x000160a1 _0802B58C: ldr r0, _0802B5A8 ldr r3, _0802B5AC adds r1, r0, r3 strb r2, [r1] ldr r1, _0802B5B0 adds r0, r1 _0802B598: strb r2, [r0] ldr r1, _0802B5B4 ldr r0, [r1] adds r0, 0x1 str r0, [r1] pop {r4} pop {r0} bx r0 .align 2, 0 _0802B5A8: .4byte 0x02000000 _0802B5AC: .4byte 0x00016002 _0802B5B0: .4byte 0x000160a1 _0802B5B4: .4byte 0x02024c10 thumb_func_end sub_802B51C thumb_func_start sub_802B5B8 sub_802B5B8: @ 802B5B8 push {r4-r7,lr} movs r4, 0 ldr r0, _0802B5F8 ldr r0, [r0] cmp r0, 0 beq _0802B5C6 b _0802B94E _0802B5C6: ldr r5, _0802B5FC ldr r0, _0802B600 ldrb r0, [r0] strb r0, [r5] ldr r6, _0802B604 movs r1, 0x1 eors r0, r1 strb r0, [r6] ldr r0, _0802B608 ldrh r1, [r0] movs r0, 0x8 ands r0, r1 cmp r0, 0 beq _0802B614 movs r0, 0 movs r1, 0x5 bl dp01_build_cmdbuf_x0D_a ldrb r0, [r5] bl dp01_battle_side_mark_buffer_for_execution ldr r1, _0802B60C ldr r0, _0802B610 b _0802B94C .align 2, 0 _0802B5F8: .4byte 0x02024a64 _0802B5FC: .4byte 0x02024a60 _0802B600: .4byte 0x02024c07 _0802B604: .4byte 0x02024c08 _0802B608: .4byte 0x020239f8 _0802B60C: .4byte 0x02024c10 _0802B610: .4byte gUnknown_081D9F35 _0802B614: movs r0, 0x80 lsls r0, 2 ands r0, r1 cmp r0, 0 beq _0802B63C movs r0, 0 movs r1, 0x4 bl dp01_build_cmdbuf_x0D_a ldrb r0, [r5] bl dp01_battle_side_mark_buffer_for_execution ldr r1, _0802B634 ldr r0, _0802B638 b _0802B94C .align 2, 0 _0802B634: .4byte 0x02024c10 _0802B638: .4byte gUnknown_081D9F00 _0802B63C: ldr r0, _0802B660 ldrh r0, [r0] cmp r0, 0x5 bne _0802B66C ldr r0, _0802B664 ldr r1, _0802B668 adds r0, r1 ldrb r0, [r0] lsls r1, r0, 2 adds r1, r0 lsls r0, r1, 8 subs r0, r1 movs r1, 0x64 bl __divsi3 lsls r0, 24 lsrs r5, r0, 24 b _0802B684 .align 2, 0 _0802B660: .4byte 0x02024c04 _0802B664: .4byte 0x02000000 _0802B668: .4byte 0x00016089 _0802B66C: ldr r3, _0802B6A0 ldr r2, _0802B6A4 ldrb r1, [r6] movs r0, 0x58 muls r0, r1 adds r0, r2 ldrh r1, [r0] lsls r0, r1, 3 subs r0, r1 lsls r0, 2 adds r0, r3 ldrb r5, [r0, 0x8] _0802B684: ldr r2, _0802B6A8 ldrh r0, [r2] cmp r0, 0x5 bhi _0802B68E b _0802B784 _0802B68E: subs r0, 0x6 cmp r0, 0x6 bls _0802B696 b _0802B78E _0802B696: lsls r0, 2 ldr r1, _0802B6AC adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0802B6A0: .4byte gBaseStats _0802B6A4: .4byte 0x02024a80 _0802B6A8: .4byte 0x02024c04 _0802B6AC: .4byte _0802B6B0 .align 2, 0 _0802B6B0: .4byte _0802B6CC .4byte _0802B6FC .4byte _0802B70E .4byte _0802B73C .4byte _0802B76C .4byte _0802B72E .4byte _0802B72E _0802B6CC: ldr r2, _0802B6F4 ldr r0, _0802B6F8 ldrb r1, [r0] movs r0, 0x58 muls r0, r1 adds r0, r2 adds r1, r0, 0 adds r1, 0x21 ldrb r1, [r1] cmp r1, 0xB beq _0802B760 adds r0, 0x22 ldrb r0, [r0] cmp r0, 0xB beq _0802B760 cmp r1, 0x6 beq _0802B760 cmp r0, 0x6 beq _0802B760 b _0802B72E .align 2, 0 _0802B6F4: .4byte 0x02024a80 _0802B6F8: .4byte 0x02024c08 _0802B6FC: bl sav1_map_get_light_level lsls r0, 24 lsrs r0, 24 movs r4, 0xA cmp r0, 0x5 bne _0802B78E movs r4, 0x23 b _0802B78E _0802B70E: ldr r2, _0802B734 ldr r0, _0802B738 ldrb r1, [r0] movs r0, 0x58 muls r0, r1 adds r0, r2 adds r0, 0x2A ldrb r1, [r0] cmp r1, 0x27 bhi _0802B72E movs r0, 0x28 subs r0, r1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x9 bhi _0802B78E _0802B72E: movs r4, 0xA b _0802B78E .align 2, 0 _0802B734: .4byte 0x02024a80 _0802B738: .4byte 0x02024c08 _0802B73C: ldr r2, _0802B764 ldr r0, _0802B768 ldrb r1, [r0] movs r0, 0x58 muls r0, r1 adds r0, r2 ldrh r0, [r0] bl SpeciesToNationalPokedexNum lsls r0, 16 lsrs r0, 16 movs r1, 0x1 bl sub_8090D90 lsls r0, 24 movs r4, 0xA cmp r0, 0 beq _0802B78E _0802B760: movs r4, 0x1E b _0802B78E .align 2, 0 _0802B764: .4byte 0x02024a80 _0802B768: .4byte 0x02024c08 _0802B76C: ldr r0, _0802B780 ldrb r0, [r0, 0x13] adds r0, 0xA lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x28 bls _0802B78E movs r4, 0x28 b _0802B78E .align 2, 0 _0802B780: .4byte 0x030042e0 _0802B784: ldr r1, _0802B7F4 ldrh r0, [r2] subs r0, 0x2 adds r0, r1 ldrb r4, [r0] _0802B78E: adds r0, r5, 0 muls r0, r4 movs r1, 0xA bl __divsi3 ldr r5, _0802B7F8 ldr r1, _0802B7FC ldrb r1, [r1] movs r7, 0x58 adds r4, r1, 0 muls r4, r7 adds r3, r4, r5 ldrh r2, [r3, 0x2C] lsls r1, r2, 1 adds r1, r2 ldrh r2, [r3, 0x28] lsls r2, 1 subs r2, r1, r2 muls r0, r2 bl __divsi3 adds r6, r0, 0 adds r5, 0x4C adds r4, r5 ldr r4, [r4] movs r0, 0x27 ands r0, r4 cmp r0, 0 beq _0802B7CA lsls r6, 1 _0802B7CA: ands r4, r7 cmp r4, 0 beq _0802B7DC lsls r0, r6, 4 subs r0, r6 movs r1, 0xA bl __udivsi3 adds r6, r0, 0 _0802B7DC: ldr r1, _0802B800 ldrh r0, [r1] cmp r0, 0x5 beq _0802B81C cmp r0, 0x1 bne _0802B808 ldr r0, _0802B804 ldrb r1, [r0, 0x5] movs r2, 0x2 orrs r1, r2 strb r1, [r0, 0x5] b _0802B81C .align 2, 0 _0802B7F4: .4byte gUnknown_081FAD90 _0802B7F8: .4byte 0x02024a80 _0802B7FC: .4byte 0x02024c08 _0802B800: .4byte 0x02024c04 _0802B804: .4byte 0x030042e0 _0802B808: ldr r0, _0802B860 ldrh r1, [r1] adds r0, r1 adds r1, r0, 0 adds r1, 0x34 ldrb r0, [r1] cmp r0, 0xFE bhi _0802B81C adds r0, 0x1 strb r0, [r1] _0802B81C: cmp r6, 0xFE bls _0802B880 movs r0, 0 movs r1, 0x4 bl dp01_build_cmdbuf_x0D_a ldr r0, _0802B864 ldrb r0, [r0] bl dp01_battle_side_mark_buffer_for_execution ldr r1, _0802B868 ldr r0, _0802B86C str r0, [r1] ldr r1, _0802B870 ldr r0, _0802B874 ldrb r0, [r0] lsls r0, 1 adds r0, r1 ldrh r1, [r0] movs r0, 0x64 muls r0, r1 ldr r1, _0802B878 adds r0, r1 ldr r2, _0802B87C movs r1, 0x26 bl pokemon_setattr bl calc_player_party_count lsls r0, 24 lsrs r0, 24 cmp r0, 0x6 beq _0802B90E b _0802B938 .align 2, 0 _0802B860: .4byte 0x030042e0 _0802B864: .4byte 0x02024a60 _0802B868: .4byte 0x02024c10 _0802B86C: .4byte gUnknown_081D9EC2 _0802B870: .4byte 0x02024a6a _0802B874: .4byte 0x02024c08 _0802B878: .4byte 0x030045c0 _0802B87C: .4byte 0x02024c04 _0802B880: movs r0, 0xFF lsls r0, 16 adds r1, r6, 0 bl __udivsi3 bl Sqrt lsls r0, 16 lsrs r0, 16 bl Sqrt lsls r0, 16 lsrs r6, r0, 16 ldr r0, _0802B8A8 adds r1, r6, 0 bl __udivsi3 adds r6, r0, 0 movs r4, 0 b _0802B8B2 .align 2, 0 _0802B8A8: .4byte 0x000ffff0 _0802B8AC: adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 _0802B8B2: cmp r4, 0x3 bhi _0802B8C2 bl Random lsls r0, 16 lsrs r0, 16 cmp r0, r6 bcc _0802B8AC _0802B8C2: ldr r5, _0802B918 ldrh r0, [r5] cmp r0, 0x1 bne _0802B8CC movs r4, 0x4 _0802B8CC: movs r0, 0 adds r1, r4, 0 bl dp01_build_cmdbuf_x0D_a ldr r0, _0802B91C ldrb r0, [r0] bl dp01_battle_side_mark_buffer_for_execution cmp r4, 0x4 bne _0802B944 ldr r1, _0802B920 ldr r0, _0802B924 str r0, [r1] ldr r1, _0802B928 ldr r0, _0802B92C ldrb r0, [r0] lsls r0, 1 adds r0, r1 ldrh r1, [r0] movs r0, 0x64 muls r0, r1 ldr r1, _0802B930 adds r0, r1 movs r1, 0x26 adds r2, r5, 0 bl pokemon_setattr bl calc_player_party_count lsls r0, 24 lsrs r0, 24 cmp r0, 0x6 bne _0802B938 _0802B90E: ldr r1, _0802B934 movs r0, 0 strb r0, [r1, 0x5] b _0802B94E .align 2, 0 _0802B918: .4byte 0x02024c04 _0802B91C: .4byte 0x02024a60 _0802B920: .4byte 0x02024c10 _0802B924: .4byte gUnknown_081D9EC2 _0802B928: .4byte 0x02024a6a _0802B92C: .4byte 0x02024c08 _0802B930: .4byte 0x030045c0 _0802B934: .4byte 0x02024d1e _0802B938: ldr r1, _0802B940 movs r0, 0x1 strb r0, [r1, 0x5] b _0802B94E .align 2, 0 _0802B940: .4byte 0x02024d1e _0802B944: ldr r0, _0802B954 strb r4, [r0, 0x5] ldr r1, _0802B958 ldr r0, _0802B95C _0802B94C: str r0, [r1] _0802B94E: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0802B954: .4byte 0x02024d1e _0802B958: .4byte 0x02024c10 _0802B95C: .4byte gUnknown_081D9F0A thumb_func_end sub_802B5B8 thumb_func_start sub_802B960 sub_802B960: @ 802B960 push {r4-r6,lr} mov r6, r9 mov r5, r8 push {r5,r6} ldr r0, _0802B9C8 mov r9, r0 ldr r5, _0802B9CC ldrb r0, [r5] movs r4, 0x1 eors r0, r4 lsls r0, 1 add r0, r9 ldrh r0, [r0] movs r1, 0x64 mov r8, r1 mov r1, r8 muls r1, r0 adds r0, r1, 0 ldr r6, _0802B9D0 adds r0, r6 bl pokemon_catch ldr r2, _0802B9D4 ldr r1, _0802B9D8 ldrb r0, [r5] eors r4, r0 movs r0, 0x58 muls r0, r4 adds r0, r1 ldrh r0, [r0] strh r0, [r2, 0x28] lsls r4, 1 add r4, r9 ldrh r0, [r4] mov r1, r8 muls r1, r0 adds r0, r1, 0 adds r0, r6 adds r2, 0x2A movs r1, 0x2 bl PokemonGetField ldr r1, _0802B9DC ldr r0, [r1] adds r0, 0x1 str r0, [r1] pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0802B9C8: .4byte 0x02024a6a _0802B9CC: .4byte 0x02024c07 _0802B9D0: .4byte 0x030045c0 _0802B9D4: .4byte 0x030042e0 _0802B9D8: .4byte 0x02024a80 _0802B9DC: .4byte 0x02024c10 thumb_func_end sub_802B960 thumb_func_start sub_802B9E0 sub_802B9E0: @ 802B9E0 push {r4-r6,lr} ldr r4, _0802BA20 ldr r6, _0802BA24 ldrb r0, [r6] movs r5, 0x58 muls r0, r5 adds r0, r4 ldrh r0, [r0] bl SpeciesToNationalPokedexNum lsls r0, 16 lsrs r0, 16 movs r1, 0x1 bl sub_8090D90 lsls r0, 24 cmp r0, 0 beq _0802BA2C ldr r3, _0802BA28 ldr r2, [r3] ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x4] lsls r0, 24 orrs r1, r0 str r1, [r3] b _0802BA82 .align 2, 0 _0802BA20: .4byte 0x02024a80 _0802BA24: .4byte 0x02024c08 _0802BA28: .4byte 0x02024c10 _0802BA2C: ldrb r0, [r6] muls r0, r5 adds r0, r4 ldrh r0, [r0] bl SpeciesToNationalPokedexNum lsls r0, 16 lsrs r0, 16 movs r1, 0x3 bl sub_8090D90 ldrb r0, [r6] adds r2, r0, 0 muls r2, r5 adds r0, r2, r4 ldrh r0, [r0] cmp r0, 0xC9 bne _0802BA5C ldr r0, _0802BA88 adds r1, r4, 0 adds r1, 0x48 adds r1, r2, r1 ldr r1, [r1] str r1, [r0, 0x1C] _0802BA5C: ldrb r0, [r6] adds r2, r0, 0 muls r2, r5 adds r0, r2, r4 ldrh r1, [r0] movs r0, 0x9A lsls r0, 1 cmp r1, r0 bne _0802BA7A ldr r0, _0802BA88 adds r1, r4, 0 adds r1, 0x48 adds r1, r2, r1 ldr r1, [r1] str r1, [r0, 0x20] _0802BA7A: ldr r1, _0802BA8C ldr r0, [r1] adds r0, 0x5 str r0, [r1] _0802BA82: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0802BA88: .4byte 0x02024ea4 _0802BA8C: .4byte 0x02024c10 thumb_func_end sub_802B9E0 thumb_func_start sub_802BA90 sub_802BA90: @ 802BA90 push {r4-r7,lr} sub sp, 0x4 ldr r7, _0802BAA8 ldrb r1, [r7] cmp r1, 0x1 beq _0802BAC6 cmp r1, 0x1 bgt _0802BAAC cmp r1, 0 beq _0802BAB8 b _0802BBC4 .align 2, 0 _0802BAA8: .4byte 0x02024d1e _0802BAAC: cmp r1, 0x2 beq _0802BB10 cmp r1, 0x3 bne _0802BAB6 b _0802BBB0 _0802BAB6: b _0802BBC4 _0802BAB8: movs r0, 0x1 negs r0, r0 str r1, [sp] movs r1, 0 movs r2, 0 movs r3, 0x10 b _0802BB6E _0802BAC6: ldr r0, _0802BB04 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _0802BBC4 ldr r4, _0802BB08 ldr r6, _0802BB0C ldrb r0, [r6] movs r5, 0x58 muls r0, r5 adds r0, r4 ldrh r0, [r0] bl SpeciesToNationalPokedexNum lsls r0, 16 lsrs r0, 16 ldrb r1, [r6] adds r2, r1, 0 muls r2, r5 adds r1, r4, 0 adds r1, 0x54 adds r1, r2, r1 ldr r1, [r1] adds r4, 0x48 adds r2, r4 ldr r2, [r2] bl sub_809070C strb r0, [r7, 0x1] b _0802BB72 .align 2, 0 _0802BB04: .4byte 0x0202f388 _0802BB08: .4byte 0x02024a80 _0802BB0C: .4byte 0x02024c08 _0802BB10: ldr r0, _0802BB7C ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _0802BBC4 ldr r0, _0802BB80 ldr r1, [r0, 0x4] ldr r0, _0802BB84 cmp r1, r0 bne _0802BBC4 ldr r2, _0802BB88 ldrb r1, [r7, 0x1] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r2 ldrb r4, [r0, 0x4] cmp r4, 0 bne _0802BBC4 ldr r0, _0802BB8C ldr r1, _0802BB90 bl LZDecompressVram ldr r0, _0802BB94 ldr r1, _0802BB98 bl LZDecompressVram ldr r0, _0802BB9C movs r1, 0x20 movs r2, 0x60 bl LoadCompressedPalette ldr r1, _0802BBA0 ldr r2, _0802BBA4 adds r0, r2, 0 strh r0, [r1] ldr r1, _0802BBA8 movs r2, 0x80 lsls r2, 1 adds r0, r2, 0 strh r0, [r1] ldr r0, _0802BBAC str r4, [sp] movs r1, 0 movs r2, 0x10 movs r3, 0 _0802BB6E: bl BeginNormalPaletteFade _0802BB72: ldrb r0, [r7] adds r0, 0x1 strb r0, [r7] b _0802BBC4 .align 2, 0 _0802BB7C: .4byte 0x0202f388 _0802BB80: .4byte 0x03001770 _0802BB84: .4byte sub_800F808 _0802BB88: .4byte 0x03004b20 _0802BB8C: .4byte gBattleTerrainTiles_Building _0802BB90: .4byte 0x06008000 _0802BB94: .4byte gBattleTerrainTilemap_Building _0802BB98: .4byte 0x0600d000 _0802BB9C: .4byte gUnknown_08E62AC0 _0802BBA0: .4byte 0x0400000e _0802BBA4: .4byte 0x00005a0b _0802BBA8: .4byte 0x030041b0 _0802BBAC: .4byte 0x0000fffc _0802BBB0: ldr r0, _0802BBCC ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _0802BBC4 ldr r1, _0802BBD0 ldr r0, [r1] adds r0, 0x1 str r0, [r1] _0802BBC4: add sp, 0x4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0802BBCC: .4byte 0x0202f388 _0802BBD0: .4byte 0x02024c10 thumb_func_end sub_802BA90 thumb_func_start sub_802BBD4 sub_802BBD4: @ 802BBD4 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} ldr r4, [sp, 0x20] lsls r0, 24 lsrs r6, r0, 24 lsls r1, 24 lsrs r1, 24 mov r12, r1 lsls r2, 24 lsrs r5, r2, 24 lsls r3, 24 lsrs r7, r3, 24 lsls r4, 24 lsrs r4, 24 mov r8, r4 mov r2, r12 cmp r2, r7 bgt _0802BC5A lsls r1, r6, 1 ldr r0, _0802BC20 adds r1, r0 mov r9, r1 _0802BC06: adds r1, r6, 0 adds r0, r2, 0x1 mov r10, r0 cmp r1, r5 bgt _0802BC54 lsls r0, r2, 6 mov r4, r9 adds r3, r4, r0 _0802BC16: cmp r2, r12 bne _0802BC28 ldr r0, _0802BC24 b _0802BC36 .align 2, 0 _0802BC20: .4byte 0x0600c000 _0802BC24: .4byte 0x00001022 _0802BC28: cmp r2, r7 bne _0802BC34 ldr r0, _0802BC30 b _0802BC36 .align 2, 0 _0802BC30: .4byte 0x00001028 _0802BC34: ldr r0, _0802BC68 _0802BC36: cmp r1, r6 beq _0802BC42 adds r0, 0x1 cmp r1, r5 bne _0802BC42 adds r0, 0x1 _0802BC42: mov r4, r8 cmp r4, 0 beq _0802BC4A movs r0, 0 _0802BC4A: strh r0, [r3] adds r3, 0x2 adds r1, 0x1 cmp r1, r5 ble _0802BC16 _0802BC54: mov r2, r10 cmp r2, r7 ble _0802BC06 _0802BC5A: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0802BC68: .4byte 0x00001025 thumb_func_end sub_802BBD4 thumb_func_start sub_802BC6C sub_802BC6C: @ 802BC6C push {lr} ldr r0, _0802BC88 ldrb r1, [r0, 0x1] lsls r1, 28 movs r0, 0x90 lsls r0, 23 adds r1, r0 lsrs r1, 24 movs r0, 0xC8 bl sub_814A880 pop {r0} bx r0 .align 2, 0 _0802BC88: .4byte 0x02024d1e thumb_func_end sub_802BC6C thumb_func_start nullsub_6 nullsub_6: @ 802BC8C bx lr thumb_func_end nullsub_6 thumb_func_start atkF3_receive_new_pokemon_maybe atkF3_receive_new_pokemon_maybe: @ 802BC90 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x8 ldr r0, _0802BCB4 ldrb r1, [r0] adds r4, r0, 0 cmp r1, 0x4 bls _0802BCA8 b _0802BEDA _0802BCA8: lsls r0, r1, 2 ldr r1, _0802BCB8 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0802BCB4: .4byte 0x02024d1e _0802BCB8: .4byte _0802BCBC .align 2, 0 _0802BCBC: .4byte _0802BCD0 .4byte _0802BCEC .4byte _0802BD84 .4byte _0802BE50 .4byte _0802BEA4 _0802BCD0: bl sub_8023A80 ldr r0, _0802BCE8 ldrb r1, [r0] adds r1, 0x1 movs r2, 0 strb r1, [r0] strb r2, [r0, 0x1] bl sub_802BC6C b _0802BEDA .align 2, 0 _0802BCE8: .4byte 0x02024d1e _0802BCEC: ldr r0, _0802BD60 ldrh r1, [r0, 0x2E] movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _0802BD10 ldrb r0, [r4, 0x1] cmp r0, 0 beq _0802BD10 movs r0, 0x5 bl audio_play bl nullsub_6 movs r0, 0 strb r0, [r4, 0x1] bl sub_802BC6C _0802BD10: ldr r0, _0802BD60 ldrh r1, [r0, 0x2E] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _0802BD36 ldr r4, _0802BD64 ldrb r0, [r4, 0x1] cmp r0, 0 bne _0802BD36 movs r0, 0x5 bl audio_play bl nullsub_6 movs r0, 0x1 strb r0, [r4, 0x1] bl sub_802BC6C _0802BD36: ldr r0, _0802BD60 ldrh r1, [r0, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _0802BD68 movs r0, 0x5 bl audio_play ldr r1, _0802BD64 ldrb r0, [r1, 0x1] cmp r0, 0 bne _0802BD7A ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] movs r0, 0x3 bl BeginFastPaletteFade b _0802BEDA .align 2, 0 _0802BD60: .4byte 0x03001770 _0802BD64: .4byte 0x02024d1e _0802BD68: movs r0, 0x2 ands r0, r1 cmp r0, 0 bne _0802BD72 b _0802BEDA _0802BD72: movs r0, 0x5 bl audio_play ldr r1, _0802BD80 _0802BD7A: movs r0, 0x4 strb r0, [r1] b _0802BEDA .align 2, 0 _0802BD80: .4byte 0x02024d1e _0802BD84: ldr r0, _0802BE34 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _0802BD92 b _0802BEDA _0802BD92: ldr r7, _0802BE38 ldr r0, _0802BE3C mov r10, r0 ldrb r0, [r0] movs r4, 0x1 eors r0, r4 lsls r0, 1 adds r0, r7 ldrh r0, [r0] movs r1, 0x64 mov r9, r1 mov r1, r9 muls r1, r0 adds r0, r1, 0 ldr r1, _0802BE40 mov r8, r1 add r0, r8 movs r1, 0x2 ldr r2, _0802BE44 bl PokemonGetField mov r1, r10 ldrb r0, [r1] eors r0, r4 lsls r0, 1 adds r0, r7 ldrh r0, [r0] mov r1, r9 muls r1, r0 adds r0, r1, 0 add r0, r8 movs r1, 0xB bl PokemonGetField adds r6, r0, 0 lsls r6, 16 lsrs r6, 16 mov r1, r10 ldrb r0, [r1] eors r0, r4 lsls r0, 1 adds r0, r7 ldrh r0, [r0] mov r1, r9 muls r1, r0 adds r0, r1, 0 add r0, r8 bl pokemon_get_gender adds r5, r0, 0 lsls r5, 24 lsrs r5, 24 mov r1, r10 ldrb r0, [r1] eors r4, r0 lsls r4, 1 adds r4, r7 ldrh r0, [r4] mov r1, r9 muls r1, r0 adds r0, r1, 0 add r0, r8 movs r1, 0 movs r2, 0 bl PokemonGetField str r0, [sp] ldr r0, _0802BE48 str r0, [sp, 0x4] movs r0, 0x2 ldr r1, _0802BE44 adds r2, r6, 0 adds r3, r5, 0 bl DoNamingScreen ldr r1, _0802BE4C ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] b _0802BEDA .align 2, 0 _0802BE34: .4byte 0x0202f388 _0802BE38: .4byte 0x02024a6a _0802BE3C: .4byte 0x02024c07 _0802BE40: .4byte 0x030045c0 _0802BE44: .4byte 0x02016079 _0802BE48: .4byte sub_800F808 _0802BE4C: .4byte 0x02024d1e _0802BE50: ldr r0, _0802BE88 ldr r1, [r0, 0x4] ldr r0, _0802BE8C cmp r1, r0 bne _0802BEDA ldr r0, _0802BE90 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _0802BEDA ldr r2, _0802BE94 ldr r0, _0802BE98 ldrb r1, [r0] movs r0, 0x1 eors r0, r1 lsls r0, 1 adds r0, r2 ldrh r1, [r0] movs r0, 0x64 muls r0, r1 ldr r1, _0802BE9C adds r0, r1 ldr r2, _0802BEA0 movs r1, 0x2 bl pokemon_setattr b _0802BEC0 .align 2, 0 _0802BE88: .4byte 0x03001770 _0802BE8C: .4byte sub_800F808 _0802BE90: .4byte 0x0202f388 _0802BE94: .4byte 0x02024a6a _0802BE98: .4byte 0x02024c07 _0802BE9C: .4byte 0x030045c0 _0802BEA0: .4byte 0x02016079 _0802BEA4: bl calc_player_party_count lsls r0, 24 lsrs r0, 24 cmp r0, 0x6 bne _0802BEC0 ldr r1, _0802BEBC ldr r0, [r1] adds r0, 0x5 str r0, [r1] b _0802BEDA .align 2, 0 _0802BEBC: .4byte 0x02024c10 _0802BEC0: ldr r3, _0802BEEC ldr r2, [r3] ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0x3] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0x4] lsls r0, 24 orrs r1, r0 str r1, [r3] _0802BEDA: 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 _0802BEEC: .4byte 0x02024c10 thumb_func_end atkF3_receive_new_pokemon_maybe thumb_func_start sub_802BEF0 sub_802BEF0: @ 802BEF0 ldr r2, _0802BF10 ldr r0, _0802BF14 ldrb r1, [r0] movs r0, 0x58 muls r1, r0 adds r1, r2 ldr r0, _0802BF18 ldr r2, [r0] ldrh r0, [r1, 0x28] subs r0, r2 strh r0, [r1, 0x28] ldr r1, _0802BF1C ldr r0, [r1] adds r0, 0x1 str r0, [r1] bx lr .align 2, 0 _0802BF10: .4byte 0x02024a80 _0802BF14: .4byte 0x02024c07 _0802BF18: .4byte 0x02024bec _0802BF1C: .4byte 0x02024c10 thumb_func_end sub_802BEF0 thumb_func_start sub_802BF20 sub_802BF20: @ 802BF20 ldr r1, _0802BF3C ldr r0, _0802BF40 ldrb r2, [r0] movs r0, 0x58 muls r0, r2 adds r1, 0x4C adds r0, r1 movs r1, 0 str r1, [r0] ldr r1, _0802BF44 ldr r0, [r1] adds r0, 0x1 str r0, [r1] bx lr .align 2, 0 _0802BF3C: .4byte 0x02024a80 _0802BF40: .4byte 0x02024c07 _0802BF44: .4byte 0x02024c10 thumb_func_end sub_802BF20 thumb_func_start sub_802BF48 sub_802BF48: @ 802BF48 ldr r1, _0802BF50 movs r0, 0xC strb r0, [r1] bx lr .align 2, 0 _0802BF50: .4byte 0x02024a7f thumb_func_end sub_802BF48 thumb_func_start sub_802BF54 sub_802BF54: @ 802BF54 ldr r1, _0802BF64 movs r0, 0xC strb r0, [r1] ldr r1, _0802BF68 ldr r0, _0802BF6C ldrb r0, [r0] strb r0, [r1] bx lr .align 2, 0 _0802BF64: .4byte 0x02024a7f _0802BF68: .4byte 0x02024a7e _0802BF6C: .4byte 0x02024a68 thumb_func_end sub_802BF54 thumb_func_start nullsub_91 nullsub_91: @ 802BF70 bx lr thumb_func_end nullsub_91 thumb_func_start sub_802BF74 sub_802BF74: @ 802BF74 ldr r1, _0802BF8C ldr r0, _0802BF90 ldrb r0, [r0] lsls r0, 2 adds r0, r1 ldr r1, _0802BF94 str r1, [r0] ldr r1, _0802BF98 movs r0, 0 strb r0, [r1] bx lr .align 2, 0 _0802BF8C: .4byte 0x03004330 _0802BF90: .4byte 0x02024a60 _0802BF94: .4byte sub_802C014 _0802BF98: .4byte 0x02024e6d thumb_func_end sub_802BF74 thumb_func_start dp01_tbl1_exec_completed dp01_tbl1_exec_completed: @ 802BF9C push {r4,lr} sub sp, 0x4 ldr r1, _0802BFDC ldr r4, _0802BFE0 ldrb r0, [r4] lsls r0, 2 adds r0, r1 ldr r1, _0802BFE4 str r1, [r0] ldr r0, _0802BFE8 ldrh r1, [r0] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _0802BFF0 bl GetMultiplayerId mov r1, sp strb r0, [r1] movs r0, 0x2 movs r1, 0x4 mov r2, sp bl dp01_prepare_buffer_wireless_probably ldr r1, _0802BFEC ldrb r0, [r4] lsls r0, 9 adds r0, r1 movs r1, 0x38 strb r1, [r0] b _0802C002 .align 2, 0 _0802BFDC: .4byte 0x03004330 _0802BFE0: .4byte 0x02024a60 _0802BFE4: .4byte sub_802C014 _0802BFE8: .4byte 0x020239f8 _0802BFEC: .4byte 0x02023a60 _0802BFF0: ldr r2, _0802C00C ldr r1, _0802C010 ldrb r0, [r4] lsls r0, 2 adds r0, r1 ldr r1, [r0] ldr r0, [r2] bics r0, r1 str r0, [r2] _0802C002: add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _0802C00C: .4byte 0x02024a64 _0802C010: .4byte gUnknown_0820872C thumb_func_end dp01_tbl1_exec_completed thumb_func_start sub_802C014 sub_802C014: @ 802C014 push {lr} ldr r2, _0802C048 ldr r1, _0802C04C ldr r0, _0802C050 ldrb r3, [r0] lsls r0, r3, 2 adds r0, r1 ldr r1, [r2] ldr r0, [r0] ands r1, r0 cmp r1, 0 beq _0802C060 ldr r0, _0802C054 lsls r1, r3, 9 adds r1, r0 ldrb r0, [r1] cmp r0, 0x38 bhi _0802C05C ldr r0, _0802C058 ldrb r1, [r1] lsls r1, 2 adds r1, r0 ldr r0, [r1] bl _call_via_r0 b _0802C060 .align 2, 0 _0802C048: .4byte 0x02024a64 _0802C04C: .4byte gUnknown_0820872C _0802C050: .4byte 0x02024a60 _0802C054: .4byte 0x02023a60 _0802C058: .4byte gUnknown_081FAD98 _0802C05C: bl dp01_tbl1_exec_completed _0802C060: pop {r0} bx r0 thumb_func_end sub_802C014 thumb_func_start bx_0802E404 bx_0802E404: @ 802C064 push {lr} ldr r2, _0802C08C ldr r1, _0802C090 ldr r0, _0802C094 ldrb r0, [r0] adds r0, r1 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 movs r1, 0x24 ldrsh r0, [r0, r1] cmp r0, 0 bne _0802C086 bl dp01_tbl1_exec_completed _0802C086: pop {r0} bx r0 .align 2, 0 _0802C08C: .4byte 0x02020004 _0802C090: .4byte 0x02024be0 _0802C094: .4byte 0x02024a60 thumb_func_end bx_0802E404 thumb_func_start sub_802C098 sub_802C098: @ 802C098 push {r4-r7,lr} mov r7, r8 push {r7} ldr r7, _0802C0FC ldr r4, _0802C100 ldrb r0, [r4] lsls r2, r0, 9 adds r1, r7, 0x2 adds r1, r2, r1 ldrb r5, [r1] adds r1, r7, 0x3 adds r2, r1 ldrb r1, [r2] lsls r1, 8 orrs r5, r1 movs r1, 0x1 movs r2, 0x7 movs r3, 0x1 bl dp11b_obj_instanciate ldrb r0, [r4] movs r1, 0 movs r2, 0x7 movs r3, 0x1 bl dp11b_obj_instanciate ldr r0, _0802C104 ldrh r1, [r0, 0x2E] movs r2, 0x1 adds r0, r2, 0 ands r0, r1 cmp r0, 0 beq _0802C13E movs r0, 0x5 bl audio_play bl sub_814A7FC ldr r1, _0802C108 ldrb r0, [r4] adds r0, r1 ldrb r0, [r0] cmp r0, 0x1 beq _0802C11C cmp r0, 0x1 bgt _0802C10C cmp r0, 0 beq _0802C116 b _0802C138 .align 2, 0 _0802C0FC: .4byte 0x02023a60 _0802C100: .4byte 0x02024a60 _0802C104: .4byte 0x03001770 _0802C108: .4byte 0x02024e60 _0802C10C: cmp r0, 0x2 beq _0802C122 cmp r0, 0x3 beq _0802C12E b _0802C138 _0802C116: movs r0, 0x1 movs r1, 0 b _0802C126 _0802C11C: movs r0, 0x1 movs r1, 0x1 b _0802C126 _0802C122: movs r0, 0x1 movs r1, 0x2 _0802C126: movs r2, 0 bl dp01_build_cmdbuf_x21_a_bb b _0802C138 _0802C12E: movs r0, 0x1 movs r1, 0x3 movs r2, 0 bl dp01_build_cmdbuf_x21_a_bb _0802C138: bl dp01_tbl1_exec_completed b _0802C2AC _0802C13E: movs r0, 0x20 ands r0, r1 cmp r0, 0 beq _0802C178 ldr r5, _0802C174 ldrb r0, [r4] adds r0, r5 ldrb r1, [r0] adds r0, r2, 0 ands r0, r1 cmp r0, 0 bne _0802C158 b _0802C2AC _0802C158: movs r0, 0x5 bl audio_play ldrb r0, [r4] adds r0, r5 ldrb r0, [r0] bl nullsub_8 ldrb r1, [r4] adds r1, r5 ldrb r0, [r1] movs r2, 0x1 b _0802C200 .align 2, 0 _0802C174: .4byte 0x02024e60 _0802C178: movs r0, 0x10 ands r0, r1 cmp r0, 0 beq _0802C1B0 ldr r5, _0802C1AC ldrb r0, [r4] adds r0, r5 ldrb r1, [r0] adds r0, r2, 0 ands r0, r1 cmp r0, 0 beq _0802C192 b _0802C2AC _0802C192: movs r0, 0x5 bl audio_play ldrb r0, [r4] adds r0, r5 ldrb r0, [r0] bl nullsub_8 ldrb r1, [r4] adds r1, r5 ldrb r0, [r1] movs r2, 0x1 b _0802C200 .align 2, 0 _0802C1AC: .4byte 0x02024e60 _0802C1B0: movs r0, 0x40 mov r8, r0 ands r0, r1 cmp r0, 0 beq _0802C1D0 ldr r5, _0802C1CC ldrb r0, [r4] adds r0, r5 ldrb r1, [r0] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _0802C2AC b _0802C1E8 .align 2, 0 _0802C1CC: .4byte 0x02024e60 _0802C1D0: movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _0802C218 ldr r5, _0802C214 ldrb r0, [r4] adds r0, r5 ldrb r1, [r0] movs r0, 0x2 ands r0, r1 cmp r0, 0 bne _0802C2AC _0802C1E8: movs r0, 0x5 bl audio_play ldrb r0, [r4] adds r0, r5 ldrb r0, [r0] bl nullsub_8 ldrb r1, [r4] adds r1, r5 ldrb r0, [r1] movs r2, 0x2 _0802C200: eors r0, r2 strb r0, [r1] ldrb r0, [r4] adds r0, r5 ldrb r0, [r0] movs r1, 0 bl sub_802E3E4 b _0802C2AC .align 2, 0 _0802C214: .4byte 0x02024e60 _0802C218: movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _0802C2A0 ldr r6, _0802C294 ldrh r1, [r6] adds r0, r2, 0 ands r0, r1 cmp r0, 0 beq _0802C2AC ldrb r0, [r4] bl battle_get_per_side_status lsls r0, 24 lsrs r0, 24 cmp r0, 0x2 bne _0802C2AC movs r0, 0 bl battle_get_side_with_given_state ldr r1, _0802C298 ldrb r1, [r1] ldr r2, _0802C29C lsls r0, 24 lsrs r0, 22 adds r0, r2 ldr r0, [r0] ands r1, r0 cmp r1, 0 bne _0802C2AC ldrh r1, [r6] mov r0, r8 ands r0, r1 cmp r0, 0 bne _0802C2AC ldrb r0, [r4] lsls r0, 9 adds r1, r7, 0x1 adds r0, r1 ldrb r0, [r0] cmp r0, 0x1 bne _0802C278 cmp r5, 0xC bhi _0802C2AC adds r0, r5, 0 movs r1, 0x1 bl sub_80A9424 _0802C278: movs r0, 0x5 bl audio_play movs r0, 0x1 movs r1, 0xC movs r2, 0 bl dp01_build_cmdbuf_x21_a_bb bl dp01_tbl1_exec_completed bl sub_814A7FC b _0802C2AC .align 2, 0 _0802C294: .4byte 0x020239f8 _0802C298: .4byte 0x02024c0c _0802C29C: .4byte gUnknown_0820872C _0802C2A0: movs r0, 0x8 ands r0, r1 cmp r0, 0 beq _0802C2AC bl sub_804454C _0802C2AC: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_802C098 thumb_func_start unref_sub_802C2B8 unref_sub_802C2B8: @ 802C2B8 push {r4,lr} ldr r4, _0802C2E0 ldrb r0, [r4] movs r1, 0x1 bl dp11b_obj_free ldrb r0, [r4] movs r1, 0 bl dp11b_obj_free ldr r1, _0802C2E4 ldrb r0, [r4] lsls r0, 2 adds r0, r1 ldr r1, _0802C2E8 str r1, [r0] pop {r4} pop {r0} bx r0 .align 2, 0 _0802C2E0: .4byte 0x02024a60 _0802C2E4: .4byte 0x03004330 _0802C2E8: .4byte sub_802C2EC thumb_func_end unref_sub_802C2B8 thumb_func_start sub_802C2EC sub_802C2EC: @ 802C2EC push {r4,r5,lr} sub sp, 0x4 ldr r1, _0802C384 mov r0, sp movs r2, 0x4 bl memcpy ldr r0, _0802C388 ldrb r0, [r0] movs r1, 0x1 movs r2, 0xF movs r3, 0x1 bl dp11b_obj_instanciate movs r4, 0 ldr r0, _0802C38C ldrb r0, [r0] cmp r0, 0 beq _0802C32E _0802C312: ldr r0, _0802C388 ldrb r0, [r0] cmp r4, r0 beq _0802C324 lsls r0, r4, 24 lsrs r0, 24 movs r1, 0x1 bl dp11b_obj_free _0802C324: adds r4, 0x1 ldr r0, _0802C38C ldrb r0, [r0] cmp r4, r0 blt _0802C312 _0802C32E: ldr r0, _0802C390 ldrh r1, [r0, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _0802C3A8 bl sub_814A7FC movs r0, 0x5 bl audio_play ldr r2, _0802C394 ldr r1, _0802C398 ldr r4, _0802C388 ldrb r0, [r4] adds r0, r1 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r2, 0x1C adds r0, r2 ldr r1, _0802C39C str r1, [r0] ldr r1, _0802C3A0 ldr r0, _0802C3A4 ldrb r0, [r0] adds r0, r1 ldrb r2, [r0] ldrb r0, [r4] lsls r0, 8 orrs r2, r0 movs r0, 0x1 movs r1, 0xA bl dp01_build_cmdbuf_x21_a_bb ldrb r0, [r4] movs r1, 0x1 bl dp11b_obj_free bl dp01_tbl1_exec_completed b _0802C658 .align 2, 0 _0802C384: .4byte gUnknown_081FAE7C _0802C388: .4byte 0x03004344 _0802C38C: .4byte 0x02024a68 _0802C390: .4byte 0x03001770 _0802C394: .4byte 0x02020004 _0802C398: .4byte 0x02024be0 _0802C39C: .4byte sub_8010574 _0802C3A0: .4byte 0x02024e64 _0802C3A4: .4byte 0x02024a60 _0802C3A8: movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _0802C41C movs r0, 0x5 bl audio_play ldr r2, _0802C400 ldr r1, _0802C404 ldr r5, _0802C408 ldrb r0, [r5] adds r0, r1 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r2, 0x1C adds r0, r2 ldr r1, _0802C40C str r1, [r0] ldr r1, _0802C410 ldr r4, _0802C414 ldrb r0, [r4] lsls r0, 2 adds r0, r1 ldr r1, _0802C418 str r1, [r0] ldrb r0, [r4] movs r1, 0x1 movs r2, 0x7 movs r3, 0x1 bl dp11b_obj_instanciate ldrb r0, [r4] movs r1, 0 movs r2, 0x7 movs r3, 0x1 bl dp11b_obj_instanciate ldrb r0, [r5] movs r1, 0x1 bl dp11b_obj_free b _0802C658 .align 2, 0 _0802C400: .4byte 0x02020004 _0802C404: .4byte 0x02024be0 _0802C408: .4byte 0x03004344 _0802C40C: .4byte sub_8010574 _0802C410: .4byte 0x03004330 _0802C414: .4byte 0x02024a60 _0802C418: .4byte sub_802C68C _0802C41C: movs r0, 0x60 ands r0, r1 cmp r0, 0 bne _0802C426 b _0802C540 _0802C426: movs r0, 0x5 bl audio_play ldr r2, _0802C458 ldr r1, _0802C45C ldr r3, _0802C460 ldrb r0, [r3] adds r0, r1 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r2, 0x1C adds r0, r2 ldr r1, _0802C464 str r1, [r0] adds r5, r3, 0 _0802C448: ldrb r0, [r5] bl battle_get_per_side_status lsls r0, 24 lsrs r1, r0, 24 movs r4, 0 mov r0, sp b _0802C472 .align 2, 0 _0802C458: .4byte 0x02020004 _0802C45C: .4byte 0x02024be0 _0802C460: .4byte 0x03004344 _0802C464: .4byte sub_8010574 _0802C468: adds r4, 0x1 cmp r4, 0x3 bgt _0802C478 mov r2, sp adds r0, r2, r4 _0802C472: ldrb r0, [r0] cmp r1, r0 bne _0802C468 _0802C478: subs r4, 0x1 cmp r4, 0 bge _0802C480 movs r4, 0x3 _0802C480: mov r1, sp adds r0, r1, r4 ldrb r0, [r0] bl battle_get_side_with_given_state strb r0, [r5] ldr r1, _0802C4B4 lsls r0, 24 lsrs r0, 24 ldrb r1, [r1] cmp r0, r1 beq _0802C478 movs r4, 0 ldrb r0, [r5] bl battle_get_per_side_status lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _0802C4FE cmp r0, 0x1 bgt _0802C4B8 cmp r0, 0 beq _0802C4C2 b _0802C500 .align 2, 0 _0802C4B4: .4byte 0x02024a68 _0802C4B8: cmp r0, 0x2 beq _0802C4C2 cmp r0, 0x3 beq _0802C4FE b _0802C500 _0802C4C2: ldr r2, _0802C520 ldrb r0, [r2] ldrb r1, [r5] cmp r0, r1 bne _0802C4FE ldr r1, _0802C524 ldrb r2, [r2] lsls r0, r2, 1 adds r0, r1 ldrh r1, [r0] movs r0, 0x64 muls r0, r1 ldr r1, _0802C528 adds r0, r1 ldr r1, _0802C52C adds r2, r1 ldrb r1, [r2] adds r1, 0xD bl PokemonGetField ldr r2, _0802C530 lsls r1, r0, 1 adds r1, r0 lsls r1, 2 adds r1, r2 ldrb r1, [r1, 0x6] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _0802C500 _0802C4FE: adds r4, 0x1 _0802C500: ldr r0, _0802C534 ldrb r1, [r0] ldr r2, _0802C538 ldrb r0, [r5] lsls r0, 2 adds r0, r2 ldr r0, [r0] ands r1, r0 ldr r0, _0802C53C cmp r1, 0 beq _0802C518 movs r4, 0 _0802C518: cmp r4, 0 beq _0802C448 b _0802C640 .align 2, 0 _0802C520: .4byte 0x02024a60 _0802C524: .4byte 0x02024a6a _0802C528: .4byte 0x03004360 _0802C52C: .4byte 0x02024e64 _0802C530: .4byte gBattleMoves _0802C534: .4byte 0x02024c0c _0802C538: .4byte gUnknown_0820872C _0802C53C: .4byte 0x03004344 _0802C540: movs r0, 0x90 ands r0, r1 cmp r0, 0 bne _0802C54A b _0802C658 _0802C54A: movs r0, 0x5 bl audio_play ldr r2, _0802C57C ldr r1, _0802C580 ldr r3, _0802C584 ldrb r0, [r3] adds r0, r1 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r2, 0x1C adds r0, r2 ldr r1, _0802C588 str r1, [r0] adds r5, r3, 0 _0802C56C: ldrb r0, [r5] bl battle_get_per_side_status lsls r0, 24 lsrs r1, r0, 24 movs r4, 0 mov r0, sp b _0802C596 .align 2, 0 _0802C57C: .4byte 0x02020004 _0802C580: .4byte 0x02024be0 _0802C584: .4byte 0x03004344 _0802C588: .4byte sub_8010574 _0802C58C: adds r4, 0x1 cmp r4, 0x3 bgt _0802C59C mov r2, sp adds r0, r2, r4 _0802C596: ldrb r0, [r0] cmp r1, r0 bne _0802C58C _0802C59C: adds r4, 0x1 cmp r4, 0x3 ble _0802C5A4 movs r4, 0 _0802C5A4: mov r1, sp adds r0, r1, r4 ldrb r0, [r0] bl battle_get_side_with_given_state strb r0, [r5] ldr r1, _0802C5D8 lsls r0, 24 lsrs r0, 24 ldrb r1, [r1] cmp r0, r1 beq _0802C59C movs r4, 0 ldrb r0, [r5] bl battle_get_per_side_status lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _0802C622 cmp r0, 0x1 bgt _0802C5DC cmp r0, 0 beq _0802C5E6 b _0802C624 .align 2, 0 _0802C5D8: .4byte 0x02024a68 _0802C5DC: cmp r0, 0x2 beq _0802C5E6 cmp r0, 0x3 beq _0802C622 b _0802C624 _0802C5E6: ldr r2, _0802C660 ldrb r0, [r2] ldrb r1, [r5] cmp r0, r1 bne _0802C622 ldr r1, _0802C664 ldrb r2, [r2] lsls r0, r2, 1 adds r0, r1 ldrh r1, [r0] movs r0, 0x64 muls r0, r1 ldr r1, _0802C668 adds r0, r1 ldr r1, _0802C66C adds r2, r1 ldrb r1, [r2] adds r1, 0xD bl PokemonGetField ldr r2, _0802C670 lsls r1, r0, 1 adds r1, r0 lsls r1, 2 adds r1, r2 ldrb r1, [r1, 0x6] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _0802C624 _0802C622: adds r4, 0x1 _0802C624: ldr r0, _0802C674 ldrb r1, [r0] ldr r2, _0802C678 ldrb r0, [r5] lsls r0, 2 adds r0, r2 ldr r0, [r0] ands r1, r0 ldr r0, _0802C67C cmp r1, 0 beq _0802C63C movs r4, 0 _0802C63C: cmp r4, 0 beq _0802C56C _0802C640: ldr r2, _0802C680 ldr r1, _0802C684 ldrb r0, [r0] adds r0, r1 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r2, 0x1C adds r0, r2 ldr r1, _0802C688 str r1, [r0] _0802C658: add sp, 0x4 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0802C660: .4byte 0x02024a60 _0802C664: .4byte 0x02024a6a _0802C668: .4byte 0x03004360 _0802C66C: .4byte 0x02024e64 _0802C670: .4byte gBattleMoves _0802C674: .4byte 0x02024c0c _0802C678: .4byte gUnknown_0820872C _0802C67C: .4byte 0x03004344 _0802C680: .4byte 0x02020004 _0802C684: .4byte 0x02024be0 _0802C688: .4byte sub_8010520 thumb_func_end sub_802C2EC thumb_func_start sub_802C68C sub_802C68C: @ 802C68C push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x8 movs r0, 0 mov r8, r0 ldr r7, _0802C6E4 ldrb r2, [r7] lsls r0, r2, 9 ldr r1, _0802C6E8 adds r6, r0, r1 ldr r0, _0802C6EC ldrh r1, [r0, 0x2E] movs r5, 0x1 adds r4, r5, 0 ands r4, r1 cmp r4, 0 bne _0802C6B2 b _0802C864 _0802C6B2: movs r0, 0x5 bl audio_play ldr r1, _0802C6F0 ldrb r0, [r7] adds r0, r1 ldrb r0, [r0] lsls r0, 1 adds r1, r6, r0 ldrh r0, [r1] cmp r0, 0xAE bne _0802C6F4 ldrb r0, [r6, 0x12] movs r4, 0 cmp r0, 0x7 beq _0802C702 ldrb r1, [r6, 0x13] movs r0, 0x7 eors r1, r0 negs r0, r1 orrs r0, r1 asrs r4, r0, 31 movs r0, 0x10 ands r4, r0 b _0802C702 .align 2, 0 _0802C6E4: .4byte 0x02024a60 _0802C6E8: .4byte 0x02023a64 _0802C6EC: .4byte 0x03001770 _0802C6F0: .4byte 0x02024e64 _0802C6F4: ldr r2, _0802C714 ldrh r1, [r1] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r4, [r0, 0x6] _0802C702: movs r0, 0x10 ands r0, r4 cmp r0, 0 beq _0802C720 ldr r0, _0802C718 ldr r1, _0802C71C ldrb r1, [r1] strb r1, [r0] b _0802C73A .align 2, 0 _0802C714: .4byte gBattleMoves _0802C718: .4byte 0x03004344 _0802C71C: .4byte 0x02024a60 _0802C720: ldr r0, _0802C764 ldrb r0, [r0] bl battle_get_per_side_status adds r1, r0, 0 movs r2, 0x1 movs r0, 0x1 ands r0, r1 eors r0, r2 bl battle_get_side_with_given_state ldr r1, _0802C768 strb r0, [r1] _0802C73A: ldr r3, _0802C76C ldr r5, _0802C764 ldrb r2, [r5] lsls r1, r2, 9 adds r0, r3, 0x1 adds r0, r1, r0 ldrb r0, [r0] cmp r0, 0 bne _0802C770 movs r0, 0x2 ands r0, r4 cmp r0, 0 beq _0802C7B2 adds r0, r3, 0x2 adds r0, r1, r0 ldrb r0, [r0] cmp r0, 0 bne _0802C7B2 movs r2, 0x1 add r8, r2 b _0802C7B2 .align 2, 0 _0802C764: .4byte 0x02024a60 _0802C768: .4byte 0x03004344 _0802C76C: .4byte 0x02023a60 _0802C770: movs r0, 0x7D ands r0, r4 cmp r0, 0 bne _0802C77C movs r0, 0x1 add r8, r0 _0802C77C: ldr r0, _0802C7D0 adds r0, r2, r0 adds r1, r6, 0 adds r1, 0x8 ldrb r0, [r0] adds r1, r0 ldrb r0, [r1] cmp r0, 0 beq _0802C7B8 movs r0, 0x12 ands r0, r4 cmp r0, 0 bne _0802C7B2 movs r0, 0 bl sub_803C348 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bhi _0802C7B2 ldrb r0, [r5] bl sub_803C434 ldr r1, _0802C7D4 strb r0, [r1] movs r2, 0 mov r8, r2 _0802C7B2: mov r0, r8 cmp r0, 0 bne _0802C7DC _0802C7B8: bl sub_814A7FC ldr r1, _0802C7D0 ldr r0, _0802C7D8 ldrb r0, [r0] adds r0, r1 ldrb r2, [r0] ldr r0, _0802C7D4 ldrb r0, [r0] lsls r0, 8 orrs r2, r0 b _0802C888 .align 2, 0 _0802C7D0: .4byte 0x02024e64 _0802C7D4: .4byte 0x03004344 _0802C7D8: .4byte 0x02024a60 _0802C7DC: ldr r1, _0802C7F8 ldr r2, _0802C7FC ldrb r0, [r2] lsls r0, 2 adds r0, r1 ldr r1, _0802C800 str r1, [r0] movs r0, 0x12 ands r4, r0 cmp r4, 0 beq _0802C808 ldr r1, _0802C804 ldrb r0, [r2] b _0802C838 .align 2, 0 _0802C7F8: .4byte 0x03004330 _0802C7FC: .4byte 0x02024a60 _0802C800: .4byte sub_802C2EC _0802C804: .4byte 0x03004344 _0802C808: movs r0, 0x1 bl battle_get_side_with_given_state ldr r1, _0802C828 ldrb r1, [r1] ldr r2, _0802C82C lsls r0, 24 lsrs r0, 22 adds r0, r2 ldr r0, [r0] ands r1, r0 cmp r1, 0 beq _0802C830 movs r0, 0x3 b _0802C832 .align 2, 0 _0802C828: .4byte 0x02024c0c _0802C82C: .4byte gUnknown_0820872C _0802C830: movs r0, 0x1 _0802C832: bl battle_get_side_with_given_state ldr r1, _0802C854 _0802C838: strb r0, [r1] ldr r2, _0802C858 ldr r1, _0802C85C ldr r0, _0802C854 ldrb r0, [r0] adds r0, r1 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r2, 0x1C adds r0, r2 ldr r1, _0802C860 b _0802CA36 .align 2, 0 _0802C854: .4byte 0x03004344 _0802C858: .4byte 0x02020004 _0802C85C: .4byte 0x02024be0 _0802C860: .4byte sub_8010520 _0802C864: movs r6, 0x2 adds r0, r6, 0 ands r0, r1 cmp r0, 0 beq _0802C8A4 bl sub_814A7FC movs r0, 0x5 bl audio_play ldr r0, _0802C898 strh r4, [r0] ldr r1, _0802C89C movs r2, 0xA0 lsls r2, 1 adds r0, r2, 0 strh r0, [r1] ldr r2, _0802C8A0 _0802C888: movs r0, 0x1 movs r1, 0xA bl dp01_build_cmdbuf_x21_a_bb bl dp01_tbl1_exec_completed b _0802CA38 .align 2, 0 _0802C898: .4byte 0x030042a4 _0802C89C: .4byte 0x030042a0 _0802C8A0: .4byte 0x0000ffff _0802C8A4: movs r0, 0x20 ands r0, r1 cmp r0, 0 beq _0802C8D4 ldr r4, _0802C8D0 adds r2, r4 ldrb r1, [r2] adds r0, r5, 0 ands r0, r1 cmp r0, 0 bne _0802C8BC b _0802CA38 _0802C8BC: ldrb r0, [r2] bl nullsub_7 ldrb r1, [r7] adds r1, r4 ldrb r0, [r1] movs r2, 0x1 eors r0, r2 b _0802C976 .align 2, 0 _0802C8D0: .4byte 0x02024e64 _0802C8D4: movs r0, 0x10 ands r0, r1 cmp r0, 0 beq _0802C914 ldr r4, _0802C90C adds r3, r2, r4 ldrb r2, [r3] movs r6, 0x1 adds r0, r5, 0 ands r0, r2 cmp r0, 0 beq _0802C8EE b _0802CA38 _0802C8EE: ldr r1, _0802C910 adds r0, r6, 0 eors r0, r2 ldrb r1, [r1] cmp r0, r1 bcc _0802C8FC b _0802CA38 _0802C8FC: ldrb r0, [r3] bl nullsub_7 ldrb r1, [r7] adds r1, r4 ldrb r0, [r1] eors r0, r6 b _0802C976 .align 2, 0 _0802C90C: .4byte 0x02024e64 _0802C910: .4byte 0x03004348 _0802C914: movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _0802C944 ldr r4, _0802C940 adds r2, r4 ldrb r1, [r2] adds r0, r6, 0 ands r0, r1 cmp r0, 0 bne _0802C92C b _0802CA38 _0802C92C: ldrb r0, [r2] bl nullsub_7 ldrb r1, [r7] adds r1, r4 ldrb r0, [r1] movs r2, 0x2 eors r0, r2 b _0802C976 .align 2, 0 _0802C940: .4byte 0x02024e64 _0802C944: movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _0802C99C ldr r4, _0802C994 adds r3, r2, r4 ldrb r2, [r3] movs r5, 0x2 adds r0, r6, 0 ands r0, r2 cmp r0, 0 bne _0802CA38 ldr r1, _0802C998 adds r0, r5, 0 eors r0, r2 ldrb r1, [r1] cmp r0, r1 bcs _0802CA38 ldrb r0, [r3] bl nullsub_7 ldrb r1, [r7] adds r1, r4 ldrb r0, [r1] eors r0, r5 _0802C976: strb r0, [r1] movs r0, 0x5 bl audio_play ldrb r0, [r7] adds r0, r4 ldrb r0, [r0] movs r1, 0 bl sub_802E3B4 bl sub_802E220 bl sub_802E2D4 b _0802CA38 .align 2, 0 _0802C994: .4byte 0x02024e64 _0802C998: .4byte 0x03004348 _0802C99C: movs r0, 0x4 ands r0, r1 cmp r0, 0 beq _0802CA38 ldr r0, _0802C9D8 ldrb r0, [r0] cmp r0, 0x1 bls _0802CA38 ldr r0, _0802C9DC ldrh r1, [r0] adds r0, r6, 0 ands r0, r1 lsls r0, 16 lsrs r5, r0, 16 cmp r5, 0 bne _0802CA38 ldr r4, _0802C9E0 adds r0, r2, r4 ldrb r0, [r0] ldr r1, _0802C9E4 bl sub_802E12C ldrb r0, [r7] adds r0, r4 ldrb r0, [r0] cmp r0, 0 beq _0802C9EC ldr r0, _0802C9E8 strb r5, [r0] b _0802C9F4 .align 2, 0 _0802C9D8: .4byte 0x03004348 _0802C9DC: .4byte 0x020239f8 _0802C9E0: .4byte 0x02024e64 _0802C9E4: .4byte gUnknown_081FAE80 _0802C9E8: .4byte 0x03004344 _0802C9EC: ldr r1, _0802CA44 adds r0, 0x1 strb r0, [r1] adds r0, r1, 0 _0802C9F4: ldrb r0, [r0] movs r1, 0x1B bl sub_802E3B4 ldr r4, _0802CA48 ldr r1, _0802CA4C movs r0, 0x1C str r0, [sp] movs r0, 0x3A str r0, [sp, 0x4] adds r0, r4, 0 movs r2, 0x17 movs r3, 0x37 bl FillWindowRect ldr r1, _0802CA50 movs r2, 0xA4 lsls r2, 2 movs r0, 0x37 str r0, [sp] adds r0, r4, 0 movs r3, 0x17 bl InitWindow adds r0, r4, 0 bl sub_8002F44 ldr r1, _0802CA54 ldr r0, _0802CA58 ldrb r0, [r0] lsls r0, 2 adds r0, r1 ldr r1, _0802CA5C _0802CA36: str r1, [r0] _0802CA38: add sp, 0x8 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0802CA44: .4byte 0x03004344 _0802CA48: .4byte 0x03004210 _0802CA4C: .4byte 0x00001016 _0802CA50: .4byte gUnknown_08400D89 _0802CA54: .4byte 0x03004330 _0802CA58: .4byte 0x02024a60 _0802CA5C: .4byte sub_802CA60 thumb_func_end sub_802C68C thumb_func_start sub_802CA60 sub_802CA60: @ 802CA60 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x2C ldr r0, _0802CDEC ldrh r1, [r0, 0x2E] movs r0, 0x5 ands r0, r1 cmp r0, 0 bne _0802CA7A b _0802CE78 _0802CA7A: movs r0, 0x5 bl audio_play ldr r0, _0802CDF0 mov r10, r0 ldr r1, _0802CDF4 mov r8, r1 ldrb r1, [r1] adds r2, r1, r0 ldr r5, _0802CDF8 ldrb r0, [r2] ldrb r3, [r5] cmp r0, r3 bne _0802CA98 b _0802CE14 _0802CA98: lsls r1, 9 ldr r0, _0802CDFC adds r1, r0 mov r9, r1 ldrb r1, [r2] lsls r1, 1 add r1, r9 ldrh r6, [r1] ldrb r0, [r5] lsls r0, 1 add r0, r9 ldrh r0, [r0] strh r0, [r1] ldrb r0, [r5] lsls r0, 1 add r0, r9 strh r6, [r0] mov r1, r8 ldrb r0, [r1] add r0, r10 ldrb r1, [r0] mov r7, r9 adds r7, 0x8 adds r1, r7, r1 ldrb r6, [r1] ldrb r0, [r5] adds r0, r7, r0 ldrb r0, [r0] strb r0, [r1] ldrb r0, [r5] adds r0, r7, r0 strb r6, [r0] mov r2, r8 ldrb r0, [r2] add r0, r10 ldrb r1, [r0] mov r2, r9 adds r2, 0xC adds r1, r2, r1 ldrb r6, [r1] ldrb r0, [r5] adds r0, r2, r0 ldrb r0, [r0] strb r0, [r1] ldrb r0, [r5] adds r2, r0 strb r6, [r2] mov r3, r8 ldrb r1, [r3] lsls r0, r1, 3 subs r0, r1 lsls r0, 2 ldr r2, _0802CE00 adds r6, r0, r2 ldrb r4, [r6, 0x18] lsls r3, r4, 24 lsrs r2, r3, 28 ldr r0, _0802CE04 mov r12, r0 add r1, r10 ldrb r0, [r1] lsls r0, 2 add r0, r12 ldr r0, [r0] ands r2, r0 cmp r2, 0 beq _0802CB52 lsrs r1, r3, 28 bics r1, r0 lsls r1, 4 movs r2, 0xF adds r0, r2, 0 ands r0, r4 orrs r0, r1 strb r0, [r6, 0x18] mov r1, r8 ldrb r0, [r1] lsls r1, r0, 3 subs r1, r0 lsls r1, 2 ldr r3, _0802CE00 adds r1, r3 ldrb r4, [r1, 0x18] lsrs r3, r4, 4 ldrb r0, [r5] lsls r0, 2 add r0, r12 ldr r0, [r0] orrs r0, r3 lsls r0, 4 ands r2, r4 orrs r2, r0 strb r2, [r1, 0x18] _0802CB52: bl sub_802E1B0 movs r6, 0 mov r12, r7 mov r5, sp adds r5, 0x20 str r5, [sp, 0x28] ldr r2, _0802CE08 mov r0, r8 ldrb r1, [r0] movs r0, 0x58 muls r0, r1 adds r0, r2 adds r4, r0, 0 adds r4, 0x3B mov r7, r8 mov r10, r2 movs r5, 0x3 _0802CB76: mov r3, sp adds r3, r6 adds r3, 0x8 ldrb r1, [r4] lsls r2, r6, 1 adds r0, r5, 0 lsls r0, r2 ands r1, r0 asrs r1, r2 strb r1, [r3] adds r6, 0x1 cmp r6, 0x3 ble _0802CB76 ldr r1, _0802CDF0 ldrb r0, [r7] adds r0, r1 ldrb r0, [r0] add r0, sp adds r0, 0x8 ldrb r0, [r0] ldr r2, [sp, 0x28] strb r0, [r2] ldrb r0, [r7] adds r0, r1 ldrb r0, [r0] mov r2, sp adds r2, r0 adds r2, 0x8 ldr r1, _0802CDF8 ldrb r0, [r1] add r0, sp adds r0, 0x8 ldrb r0, [r0] movs r3, 0 strb r0, [r2] ldrb r0, [r1] mov r1, sp adds r1, r0 adds r1, 0x8 ldr r5, [sp, 0x28] ldrb r0, [r5] strb r0, [r1] strb r3, [r5] movs r6, 0 ldr r2, [sp, 0x28] _0802CBD0: mov r0, sp adds r0, r6 adds r0, 0x8 ldrb r1, [r0] lsls r0, r6, 1 lsls r1, r0 ldrb r0, [r2] orrs r0, r1 strb r0, [r2] adds r6, 0x1 cmp r6, 0x3 ble _0802CBD0 ldrb r1, [r7] movs r0, 0x58 muls r0, r1 add r0, r10 adds r0, 0x3B ldr r2, [sp, 0x28] ldrb r1, [r2] strb r1, [r0] movs r6, 0 adds r4, r7, 0 movs r3, 0x58 movs r5, 0x24 add r5, r10 mov r8, r5 mov r2, r9 mov r7, r10 adds r7, 0xC mov r5, r12 _0802CC0C: lsls r1, r6, 1 ldrb r0, [r4] muls r0, r3 adds r1, r0 adds r1, r7 ldrh r0, [r2] strh r0, [r1] ldrb r0, [r4] adds r1, r0, 0 muls r1, r3 adds r1, r6, r1 add r1, r8 adds r0, r5, r6 ldrb r0, [r0] strb r0, [r1] adds r2, 0x2 adds r6, 0x1 cmp r6, 0x3 ble _0802CC0C ldr r2, _0802CDF4 ldrb r1, [r2] movs r0, 0x58 muls r0, r1 mov r1, r10 adds r1, 0x50 adds r0, r1 ldr r0, [r0] movs r1, 0x80 lsls r1, 14 ands r0, r1 cmp r0, 0 beq _0802CC4E b _0802CE1C _0802CC4E: movs r6, 0 mov r0, sp adds r0, 0xC str r0, [sp, 0x24] add r1, sp, 0x14 mov r10, r1 ldr r3, _0802CE0C mov r9, r3 mov r8, r2 movs r7, 0x64 ldr r5, _0802CE10 adds r4, r0, 0 _0802CC66: mov r1, r8 ldrb r0, [r1] lsls r0, 1 add r0, r9 ldrh r0, [r0] muls r0, r7 adds r0, r5 adds r1, r6, 0 adds r1, 0xD bl PokemonGetField strh r0, [r4] mov r2, r8 ldrb r0, [r2] lsls r0, 1 add r0, r9 ldrh r0, [r0] muls r0, r7 adds r0, r5 adds r1, r6, 0 adds r1, 0x11 bl PokemonGetField mov r3, r10 adds r1, r3, r6 strb r0, [r1] adds r4, 0x2 adds r6, 0x1 cmp r6, 0x3 ble _0802CC66 ldr r1, _0802CE0C ldr r0, _0802CDF4 ldrb r0, [r0] lsls r0, 1 adds r0, r1 ldrh r1, [r0] movs r0, 0x64 muls r0, r1 ldr r1, _0802CE10 adds r0, r1 movs r1, 0x15 bl PokemonGetField ldr r5, [sp, 0x28] strb r0, [r5] movs r6, 0 movs r5, 0x3 ldr r4, [sp, 0x28] _0802CCC6: mov r3, sp adds r3, r6 adds r3, 0x8 lsls r2, r6, 1 adds r1, r5, 0 lsls r1, r2 ldrb r0, [r4] ands r0, r1 asrs r0, r2 strb r0, [r3] adds r6, 0x1 cmp r6, 0x3 ble _0802CCC6 ldr r4, _0802CDF0 ldr r3, _0802CDF4 ldrb r0, [r3] adds r0, r4 ldrb r1, [r0] lsls r1, 1 ldr r0, [sp, 0x24] adds r1, r0, r1 ldrh r6, [r1] ldr r2, _0802CDF8 ldrb r0, [r2] lsls r0, 1 ldr r5, [sp, 0x24] adds r0, r5, r0 ldrh r0, [r0] movs r5, 0 strh r0, [r1] ldrb r0, [r2] lsls r0, 1 ldr r1, [sp, 0x24] adds r0, r1, r0 strh r6, [r0] ldrb r0, [r3] adds r0, r4 ldrb r1, [r0] add r1, r10 ldrb r6, [r1] ldrb r0, [r2] add r0, r10 ldrb r0, [r0] strb r0, [r1] ldrb r0, [r2] add r0, r10 strb r6, [r0] ldrb r0, [r3] adds r0, r4 ldrb r0, [r0] add r0, sp adds r0, 0x8 ldrb r0, [r0] ldr r1, [sp, 0x28] strb r0, [r1] ldrb r0, [r3] adds r0, r4 ldrb r0, [r0] mov r1, sp adds r1, r0 adds r1, 0x8 ldrb r0, [r2] add r0, sp adds r0, 0x8 ldrb r0, [r0] strb r0, [r1] ldrb r0, [r2] mov r1, sp adds r1, r0 adds r1, 0x8 ldr r2, [sp, 0x28] ldrb r0, [r2] strb r0, [r1] strb r5, [r2] movs r6, 0 ldr r2, [sp, 0x28] _0802CD5E: mov r0, sp adds r0, r6 adds r0, 0x8 ldrb r1, [r0] lsls r0, r6, 1 lsls r1, r0 ldrb r0, [r2] orrs r0, r1 strb r0, [r2] adds r6, 0x1 cmp r6, 0x3 ble _0802CD5E movs r6, 0 ldr r3, _0802CE0C mov r10, r3 ldr r5, _0802CDF4 mov r9, r5 movs r0, 0x64 mov r8, r0 ldr r7, _0802CE10 ldr r5, [sp, 0x24] adds r5, 0x8 ldr r4, [sp, 0x24] _0802CD8C: mov r1, r9 ldrb r0, [r1] lsls r0, 1 add r0, r10 ldrh r0, [r0] mov r2, r8 muls r2, r0 adds r0, r2, 0 adds r0, r7 adds r1, r6, 0 adds r1, 0xD adds r2, r4, 0 bl pokemon_setattr mov r3, r9 ldrb r0, [r3] lsls r0, 1 add r0, r10 ldrh r0, [r0] mov r1, r8 muls r1, r0 adds r0, r1, 0 adds r0, r7 adds r1, r6, 0 adds r1, 0x11 adds r2, r5, 0 bl pokemon_setattr adds r5, 0x1 adds r4, 0x2 adds r6, 0x1 cmp r6, 0x3 ble _0802CD8C ldr r1, _0802CE0C ldr r0, _0802CDF4 ldrb r0, [r0] lsls r0, 1 adds r0, r1 ldrh r1, [r0] movs r0, 0x64 muls r0, r1 ldr r1, _0802CE10 adds r0, r1 movs r1, 0x15 ldr r2, [sp, 0x28] bl pokemon_setattr b _0802CE1C .align 2, 0 _0802CDEC: .4byte 0x03001770 _0802CDF0: .4byte 0x02024e64 _0802CDF4: .4byte 0x02024a60 _0802CDF8: .4byte 0x03004344 _0802CDFC: .4byte 0x02023a64 _0802CE00: .4byte 0x02024ca8 _0802CE04: .4byte gUnknown_0820872C _0802CE08: .4byte 0x02024a80 _0802CE0C: .4byte 0x02024a6a _0802CE10: .4byte 0x03004360 _0802CE14: ldrb r0, [r5] ldr r1, _0802CF20 bl sub_802E12C _0802CE1C: ldr r1, _0802CF24 ldr r2, _0802CF28 ldrb r0, [r2] lsls r0, 2 adds r0, r1 ldr r1, _0802CF2C str r1, [r0] ldr r3, _0802CF30 ldrb r0, [r2] adds r0, r3 ldr r1, _0802CF34 ldrb r1, [r1] strb r1, [r0] ldrb r0, [r2] adds r0, r3 ldrb r0, [r0] movs r1, 0 bl sub_802E3B4 ldr r4, _0802CF38 ldr r1, _0802CF3C movs r0, 0x1C str r0, [sp] movs r0, 0x3A str r0, [sp, 0x4] adds r0, r4, 0 movs r2, 0x17 movs r3, 0x37 bl FillWindowRect ldr r1, _0802CF40 movs r2, 0xA4 lsls r2, 2 movs r0, 0x37 str r0, [sp] adds r0, r4, 0 movs r3, 0x17 bl InitWindow adds r0, r4, 0 bl sub_8002F44 bl sub_802E220 bl sub_802E2D4 _0802CE78: ldr r6, _0802CF44 ldrh r1, [r6, 0x2E] movs r0, 0x6 ands r0, r1 cmp r0, 0 beq _0802CEF0 movs r0, 0x5 bl audio_play ldr r0, _0802CF34 ldrb r0, [r0] bl nullsub_7 ldr r5, _0802CF30 ldr r4, _0802CF28 ldrb r0, [r4] adds r0, r5 ldrb r0, [r0] movs r1, 0 bl sub_802E3B4 ldrb r0, [r4] adds r0, r5 ldrb r0, [r0] ldr r1, _0802CF20 bl sub_802E12C ldr r1, _0802CF24 ldrb r0, [r4] lsls r0, 2 adds r0, r1 ldr r1, _0802CF2C str r1, [r0] ldr r4, _0802CF38 ldr r1, _0802CF3C movs r0, 0x1C str r0, [sp] movs r0, 0x3A str r0, [sp, 0x4] adds r0, r4, 0 movs r2, 0x17 movs r3, 0x37 bl FillWindowRect ldr r1, _0802CF40 movs r2, 0xA4 lsls r2, 2 movs r0, 0x37 str r0, [sp] adds r0, r4, 0 movs r3, 0x17 bl InitWindow adds r0, r4, 0 bl sub_8002F44 bl sub_802E220 bl sub_802E2D4 _0802CEF0: ldrh r1, [r6, 0x2E] movs r0, 0x20 ands r0, r1 cmp r0, 0 beq _0802CF8C ldr r3, _0802CF34 ldrb r2, [r3] movs r0, 0x1 ands r0, r2 cmp r0, 0 beq _0802CF8C ldr r0, _0802CF30 ldr r1, _0802CF28 ldrb r1, [r1] adds r1, r0 ldrb r5, [r1] cmp r2, r5 bne _0802CF48 ldrb r0, [r1] movs r1, 0x1D bl sub_802E3B4 b _0802CF4E .align 2, 0 _0802CF20: .4byte gUnknown_08400D49 _0802CF24: .4byte 0x03004330 _0802CF28: .4byte 0x02024a60 _0802CF2C: .4byte sub_802C68C _0802CF30: .4byte 0x02024e64 _0802CF34: .4byte 0x03004344 _0802CF38: .4byte 0x03004210 _0802CF3C: .4byte 0x00001016 _0802CF40: .4byte gUnknown_08400D38 _0802CF44: .4byte 0x03001770 _0802CF48: ldrb r0, [r3] bl nullsub_7 _0802CF4E: ldr r4, _0802CF78 ldrb r0, [r4] movs r1, 0x1 eors r0, r1 strb r0, [r4] movs r0, 0x5 bl audio_play ldr r1, _0802CF7C ldr r0, _0802CF80 ldrb r0, [r0] adds r0, r1 ldrb r1, [r4] ldrb r0, [r0] cmp r1, r0 bne _0802CF84 adds r0, r1, 0 movs r1, 0 bl sub_802E3B4 b _0802CF8C .align 2, 0 _0802CF78: .4byte 0x03004344 _0802CF7C: .4byte 0x02024e64 _0802CF80: .4byte 0x02024a60 _0802CF84: ldrb r0, [r4] movs r1, 0x1B bl sub_802E3B4 _0802CF8C: ldr r0, _0802CFC8 ldrh r1, [r0, 0x2E] movs r0, 0x10 ands r0, r1 cmp r0, 0 beq _0802D020 ldr r3, _0802CFCC ldrb r2, [r3] movs r0, 0x1 ands r0, r2 cmp r0, 0 bne _0802D020 ldr r1, _0802CFD0 movs r0, 0x1 eors r0, r2 ldrb r1, [r1] cmp r0, r1 bcs _0802D020 ldr r0, _0802CFD4 ldr r1, _0802CFD8 ldrb r1, [r1] adds r1, r0 ldrb r0, [r1] cmp r2, r0 bne _0802CFDC ldrb r0, [r1] movs r1, 0x1D bl sub_802E3B4 b _0802CFE2 .align 2, 0 _0802CFC8: .4byte 0x03001770 _0802CFCC: .4byte 0x03004344 _0802CFD0: .4byte 0x03004348 _0802CFD4: .4byte 0x02024e64 _0802CFD8: .4byte 0x02024a60 _0802CFDC: ldrb r0, [r3] bl nullsub_7 _0802CFE2: ldr r4, _0802D00C ldrb r0, [r4] movs r1, 0x1 eors r0, r1 strb r0, [r4] movs r0, 0x5 bl audio_play ldr r1, _0802D010 ldr r0, _0802D014 ldrb r0, [r0] adds r0, r1 ldrb r1, [r4] ldrb r0, [r0] cmp r1, r0 bne _0802D018 adds r0, r1, 0 movs r1, 0 bl sub_802E3B4 b _0802D020 .align 2, 0 _0802D00C: .4byte 0x03004344 _0802D010: .4byte 0x02024e64 _0802D014: .4byte 0x02024a60 _0802D018: ldrb r0, [r4] movs r1, 0x1B bl sub_802E3B4 _0802D020: ldr r0, _0802D050 ldrh r1, [r0, 0x2E] movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _0802D0A4 ldr r3, _0802D054 ldrb r2, [r3] movs r0, 0x2 ands r0, r2 cmp r0, 0 beq _0802D0A4 ldr r0, _0802D058 ldr r1, _0802D05C ldrb r1, [r1] adds r1, r0 ldrb r5, [r1] cmp r2, r5 bne _0802D060 ldrb r0, [r1] movs r1, 0x1D bl sub_802E3B4 b _0802D066 .align 2, 0 _0802D050: .4byte 0x03001770 _0802D054: .4byte 0x03004344 _0802D058: .4byte 0x02024e64 _0802D05C: .4byte 0x02024a60 _0802D060: ldrb r0, [r3] bl nullsub_7 _0802D066: ldr r4, _0802D090 ldrb r0, [r4] movs r1, 0x2 eors r0, r1 strb r0, [r4] movs r0, 0x5 bl audio_play ldr r1, _0802D094 ldr r0, _0802D098 ldrb r0, [r0] adds r0, r1 ldrb r1, [r4] ldrb r0, [r0] cmp r1, r0 bne _0802D09C adds r0, r1, 0 movs r1, 0 bl sub_802E3B4 b _0802D0A4 .align 2, 0 _0802D090: .4byte 0x03004344 _0802D094: .4byte 0x02024e64 _0802D098: .4byte 0x02024a60 _0802D09C: ldrb r0, [r4] movs r1, 0x1B bl sub_802E3B4 _0802D0A4: ldr r0, _0802D0E0 ldrh r1, [r0, 0x2E] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _0802D138 ldr r3, _0802D0E4 ldrb r2, [r3] movs r0, 0x2 ands r0, r2 cmp r0, 0 bne _0802D138 ldr r1, _0802D0E8 movs r0, 0x2 eors r0, r2 ldrb r1, [r1] cmp r0, r1 bcs _0802D138 ldr r0, _0802D0EC ldr r1, _0802D0F0 ldrb r1, [r1] adds r1, r0 ldrb r0, [r1] cmp r2, r0 bne _0802D0F4 ldrb r0, [r1] movs r1, 0x1D bl sub_802E3B4 b _0802D0FA .align 2, 0 _0802D0E0: .4byte 0x03001770 _0802D0E4: .4byte 0x03004344 _0802D0E8: .4byte 0x03004348 _0802D0EC: .4byte 0x02024e64 _0802D0F0: .4byte 0x02024a60 _0802D0F4: ldrb r0, [r3] bl nullsub_7 _0802D0FA: ldr r4, _0802D124 ldrb r0, [r4] movs r1, 0x2 eors r0, r1 strb r0, [r4] movs r0, 0x5 bl audio_play ldr r1, _0802D128 ldr r0, _0802D12C ldrb r0, [r0] adds r0, r1 ldrb r1, [r4] ldrb r0, [r0] cmp r1, r0 bne _0802D130 adds r0, r1, 0 movs r1, 0 bl sub_802E3B4 b _0802D138 .align 2, 0 _0802D124: .4byte 0x03004344 _0802D128: .4byte 0x02024e64 _0802D12C: .4byte 0x02024a60 _0802D130: ldrb r0, [r4] movs r1, 0x1B bl sub_802E3B4 _0802D138: add sp, 0x2C pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_802CA60 thumb_func_start sub_802D148 sub_802D148: @ 802D148 push {lr} ldr r0, _0802D178 ldrb r0, [r0] cmp r0, 0 bne _0802D174 movs r0, 0x5A bl m4aSongNumStop ldr r3, _0802D17C ldr r0, _0802D180 adds r2, r3, r0 ldrb r1, [r2] movs r0, 0x3 negs r0, r0 ands r0, r1 strb r0, [r2] ldr r0, _0802D184 ldr r0, [r0] str r0, [r3] ldr r0, _0802D188 bl SetMainCallback2 _0802D174: pop {r0} bx r0 .align 2, 0 _0802D178: .4byte 0x03002fa4 _0802D17C: .4byte 0x03001770 _0802D180: .4byte 0x0000043d _0802D184: .4byte 0x030042d0 _0802D188: .4byte c2_8011A1C thumb_func_end sub_802D148 thumb_func_start sub_802D18C sub_802D18C: @ 802D18C push {lr} ldr r0, _0802D1BC ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _0802D1F2 ldr r0, _0802D1C0 ldrh r1, [r0] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _0802D1D0 bl sub_800832C ldr r1, _0802D1C4 ldr r0, _0802D1C8 ldrb r0, [r0] lsls r0, 2 adds r0, r1 ldr r1, _0802D1CC str r1, [r0] b _0802D1F2 .align 2, 0 _0802D1BC: .4byte 0x0202f388 _0802D1C0: .4byte 0x020239f8 _0802D1C4: .4byte 0x03004330 _0802D1C8: .4byte 0x02024a60 _0802D1CC: .4byte sub_802D148 _0802D1D0: movs r0, 0x5A bl m4aSongNumStop ldr r2, _0802D1F8 ldr r0, _0802D1FC adds r3, r2, r0 ldrb r1, [r3] movs r0, 0x3 negs r0, r0 ands r0, r1 strb r0, [r3] ldr r0, _0802D200 ldr r0, [r0] str r0, [r2] ldr r0, [r2, 0x8] bl SetMainCallback2 _0802D1F2: pop {r0} bx r0 .align 2, 0 _0802D1F8: .4byte 0x03001770 _0802D1FC: .4byte 0x0000043d _0802D200: .4byte 0x030042d0 thumb_func_end sub_802D18C thumb_func_start sub_802D204 sub_802D204: @ 802D204 push {lr} ldr r2, _0802D22C ldr r1, _0802D230 ldr r0, _0802D234 ldrb r0, [r0] adds r0, r1 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r2, 0x1C adds r0, r2 ldr r1, [r0] ldr r0, _0802D238 cmp r1, r0 bne _0802D228 bl dp01_tbl1_exec_completed _0802D228: pop {r0} bx r0 .align 2, 0 _0802D22C: .4byte 0x02020004 _0802D230: .4byte 0x02024be0 _0802D234: .4byte 0x02024a60 _0802D238: .4byte SpriteCallbackDummy thumb_func_end sub_802D204 thumb_func_start sub_802D23C sub_802D23C: @ 802D23C push {lr} ldr r2, _0802D264 ldr r1, _0802D268 ldr r0, _0802D26C ldrb r0, [r0] adds r0, r1 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r2, 0x1C adds r0, r2 ldr r1, [r0] ldr r0, _0802D270 cmp r1, r0 bne _0802D260 bl dp01_tbl1_exec_completed _0802D260: pop {r0} bx r0 .align 2, 0 _0802D264: .4byte 0x02020004 _0802D268: .4byte 0x02024be0 _0802D26C: .4byte 0x02024a60 _0802D270: .4byte SpriteCallbackDummy thumb_func_end sub_802D23C thumb_func_start sub_802D274 sub_802D274: @ 802D274 push {r4-r6,lr} ldr r6, _0802D2CC ldr r5, _0802D2D0 ldr r4, _0802D2D4 ldrb r0, [r4] adds r0, r5 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r1, r6, 0 adds r1, 0x1C adds r0, r1 ldr r1, [r0] ldr r0, _0802D2D8 cmp r1, r0 bne _0802D2C6 ldr r0, _0802D2DC ldrb r0, [r0, 0x8] bl nullsub_10 ldrb r0, [r4] adds r0, r5 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r6 bl FreeSpriteOamMatrix ldrb r0, [r4] adds r0, r5 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r6 bl DestroySprite bl dp01_tbl1_exec_completed _0802D2C6: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0802D2CC: .4byte 0x02020004 _0802D2D0: .4byte 0x02024be0 _0802D2D4: .4byte 0x02024a60 _0802D2D8: .4byte SpriteCallbackDummy _0802D2DC: .4byte 0x02024ea4 thumb_func_end sub_802D274 thumb_func_start sub_802D2E0 sub_802D2E0: @ 802D2E0 push {lr} ldr r3, _0802D314 ldrb r0, [r3] lsls r1, r0, 1 adds r1, r0 lsls r1, 2 ldr r2, _0802D318 adds r1, r2 ldrb r0, [r1, 0x9] subs r0, 0x1 strb r0, [r1, 0x9] lsls r0, 24 lsrs r0, 24 cmp r0, 0xFF bne _0802D310 ldrb r0, [r3] lsls r1, r0, 1 adds r1, r0 lsls r1, 2 adds r1, r2 movs r0, 0 strb r0, [r1, 0x9] bl dp01_tbl1_exec_completed _0802D310: pop {r0} bx r0 .align 2, 0 _0802D314: .4byte 0x02024a60 _0802D318: .4byte 0x02017810 thumb_func_end sub_802D2E0 thumb_func_start sub_802D31C sub_802D31C: @ 802D31C push {r4-r7,lr} movs r6, 0 bl battle_type_is_double lsls r0, 24 cmp r0, 0 beq _0802D340 bl battle_type_is_double lsls r0, 24 cmp r0, 0 beq _0802D374 ldr r0, _0802D360 ldrh r1, [r0] movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _0802D374 _0802D340: ldr r2, _0802D364 ldr r1, _0802D368 ldr r0, _0802D36C ldrb r0, [r0] adds r0, r1 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r2, 0x1C adds r0, r2 ldr r1, [r0] ldr r0, _0802D370 cmp r1, r0 bne _0802D3AA b _0802D3A8 .align 2, 0 _0802D360: .4byte 0x020239f8 _0802D364: .4byte 0x02020004 _0802D368: .4byte 0x03004340 _0802D36C: .4byte 0x02024a60 _0802D370: .4byte SpriteCallbackDummy _0802D374: ldr r2, _0802D45C ldr r5, _0802D460 ldr r0, _0802D464 ldrb r3, [r0] adds r0, r3, r5 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r2, 0x1C adds r0, r2 ldr r4, [r0] ldr r0, _0802D468 cmp r4, r0 bne _0802D3AA movs r0, 0x2 eors r3, r0 adds r0, r3, r5 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 ldr r0, [r0] cmp r0, r4 bne _0802D3AA _0802D3A8: movs r6, 0x1 _0802D3AA: bl sub_80753C4 lsls r0, 24 cmp r0, 0 beq _0802D3B6 movs r6, 0 _0802D3B6: cmp r6, 0 bne _0802D3BC b _0802D4DA _0802D3BC: ldr r7, _0802D464 ldrb r2, [r7] lsls r0, r2, 1 adds r0, r2 lsls r0, 2 ldr r5, _0802D46C adds r4, r0, r5 ldrb r1, [r4, 0x1] movs r3, 0x1 adds r0, r3, 0 ands r0, r1 cmp r0, 0 bne _0802D3D8 b _0802D4DA _0802D3D8: movs r6, 0x2 adds r1, r6, 0 eors r1, r2 lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r5 ldrb r1, [r0, 0x1] adds r0, r3, 0 ands r0, r1 cmp r0, 0 beq _0802D4DA ldrb r1, [r4] movs r3, 0x7F adds r0, r3, 0 ands r0, r1 strb r0, [r4] ldrb r0, [r7] lsls r1, r0, 1 adds r1, r0 lsls r1, 2 adds r1, r5 ldrb r2, [r1, 0x1] movs r4, 0x2 negs r4, r4 adds r0, r4, 0 ands r0, r2 strb r0, [r1, 0x1] ldrb r0, [r7] adds r1, r6, 0 eors r1, r0 lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r5 ldrb r1, [r0] ands r3, r1 strb r3, [r0] ldrb r0, [r7] adds r1, r6, 0 eors r1, r0 lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r5 ldrb r1, [r0, 0x1] ands r4, r1 strb r4, [r0, 0x1] ldr r4, _0802D470 adds r0, r4, 0 bl FreeSpriteTilesByTag adds r0, r4, 0 bl FreeSpritePaletteByTag ldr r0, _0802D474 ldrh r1, [r0] movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _0802D47C ldr r0, _0802D478 bl m4aMPlayContinue b _0802D488 .align 2, 0 _0802D45C: .4byte 0x02020004 _0802D460: .4byte 0x03004340 _0802D464: .4byte 0x02024a60 _0802D468: .4byte SpriteCallbackDummy _0802D46C: .4byte 0x02017810 _0802D470: .4byte 0x000027f9 _0802D474: .4byte 0x020239f8 _0802D478: .4byte 0x03007380 _0802D47C: ldr r0, _0802D4E0 ldr r1, _0802D4E4 movs r2, 0x80 lsls r2, 1 bl m4aMPlayVolumeControl _0802D488: ldr r7, _0802D4E8 ldr r4, _0802D4EC ldrb r1, [r4] lsls r0, r1, 1 adds r0, r7 ldrh r0, [r0] movs r6, 0x64 muls r0, r6 ldr r5, _0802D4F0 adds r0, r5 bl sub_80324F8 bl battle_type_is_double lsls r0, 24 cmp r0, 0 beq _0802D4BE ldrb r0, [r4] movs r1, 0x2 eors r1, r0 lsls r0, r1, 1 adds r0, r7 ldrh r0, [r0] muls r0, r6 adds r0, r5 bl sub_80324F8 _0802D4BE: ldrb r1, [r4] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 ldr r1, _0802D4F4 adds r0, r1 movs r1, 0x3 strb r1, [r0, 0x9] ldr r1, _0802D4F8 ldrb r0, [r4] lsls r0, 2 adds r0, r1 ldr r1, _0802D4FC str r1, [r0] _0802D4DA: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0802D4E0: .4byte 0x03007380 _0802D4E4: .4byte 0x0000ffff _0802D4E8: .4byte 0x02024a6a _0802D4EC: .4byte 0x02024a60 _0802D4F0: .4byte 0x03004360 _0802D4F4: .4byte 0x02017810 _0802D4F8: .4byte 0x03004330 _0802D4FC: .4byte sub_802D2E0 thumb_func_end sub_802D31C thumb_func_start sub_802D500 sub_802D500: @ 802D500 push {r4-r7,lr} ldr r5, _0802D654 ldrb r2, [r5] lsls r3, r2, 1 adds r0, r3, r2 lsls r0, 2 ldr r4, _0802D658 adds r0, r4 ldrb r1, [r0] movs r7, 0x88 adds r0, r7, 0 ands r0, r1 cmp r0, 0 bne _0802D530 ldr r0, _0802D65C adds r0, r3, r0 ldrh r1, [r0] movs r0, 0x64 muls r1, r0 ldr r0, _0802D660 adds r1, r0 adds r0, r2, 0 bl sub_8141828 _0802D530: ldrb r0, [r5] movs r6, 0x2 adds r2, r6, 0 eors r2, r0 lsls r3, r2, 1 adds r0, r3, r2 lsls r0, 2 adds r0, r4 ldrb r1, [r0] adds r0, r7, 0 ands r0, r1 cmp r0, 0 bne _0802D55E ldr r0, _0802D65C adds r0, r3, r0 ldrh r1, [r0] movs r0, 0x64 muls r1, r0 ldr r0, _0802D660 adds r1, r0 adds r0, r2, 0 bl sub_8141828 _0802D55E: ldrb r2, [r5] lsls r0, r2, 1 adds r0, r2 lsls r0, 2 adds r0, r4 ldrb r1, [r0] movs r3, 0x8 adds r0, r3, 0 ands r0, r1 cmp r0, 0 bne _0802D64C adds r1, r6, 0 eors r1, r2 lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r4 ldrb r1, [r0] adds r0, r3, 0 ands r0, r1 cmp r0, 0 bne _0802D64C bl battle_type_is_double lsls r0, 24 cmp r0, 0 beq _0802D5EE ldr r0, _0802D664 ldrh r1, [r0] movs r0, 0x40 ands r0, r1 cmp r0, 0 bne _0802D5EE ldr r1, _0802D668 ldrb r0, [r5] eors r0, r6 adds r0, r1 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _0802D66C adds r0, r1 bl DestroySprite ldr r4, _0802D670 ldrb r0, [r5] adds r1, r6, 0 eors r1, r0 adds r0, r1, r4 ldrb r0, [r0] ldr r2, _0802D65C lsls r1, 1 adds r1, r2 ldrh r2, [r1] movs r1, 0x64 muls r1, r2 ldr r2, _0802D660 adds r1, r2 movs r2, 0 bl sub_8045A5C ldrb r0, [r5] eors r0, r6 bl sub_804777C ldrb r0, [r5] eors r0, r6 adds r0, r4 ldrb r0, [r0] bl sub_8043DFC _0802D5EE: ldr r1, _0802D668 ldr r4, _0802D654 ldrb r0, [r4] adds r0, r1 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _0802D66C adds r0, r1 bl DestroySprite ldr r5, _0802D670 ldrb r1, [r4] adds r0, r1, r5 ldrb r0, [r0] ldr r2, _0802D65C lsls r1, 1 adds r1, r2 ldrh r2, [r1] movs r1, 0x64 muls r1, r2 ldr r2, _0802D660 adds r1, r2 movs r2, 0 bl sub_8045A5C ldrb r0, [r4] bl sub_804777C ldrb r0, [r4] adds r0, r5 ldrb r0, [r0] bl sub_8043DFC ldr r2, _0802D674 ldrb r1, [r2, 0x9] movs r0, 0x2 negs r0, r0 ands r0, r1 strb r0, [r2, 0x9] ldr r1, _0802D678 ldrb r0, [r4] lsls r0, 2 adds r0, r1 ldr r1, _0802D67C str r1, [r0] _0802D64C: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0802D654: .4byte 0x02024a60 _0802D658: .4byte 0x02017810 _0802D65C: .4byte 0x02024a6a _0802D660: .4byte 0x03004360 _0802D664: .4byte 0x020239f8 _0802D668: .4byte 0x0300434c _0802D66C: .4byte 0x02020004 _0802D670: .4byte 0x03004340 _0802D674: .4byte 0x02017840 _0802D678: .4byte 0x03004330 _0802D67C: .4byte sub_802D31C thumb_func_end sub_802D500 thumb_func_start sub_802D680 sub_802D680: @ 802D680 push {r4-r6,lr} ldr r2, _0802D710 ldr r0, _0802D714 ldr r6, _0802D718 ldrb r3, [r6] adds r0, r3, r0 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r2, 0x1C adds r0, r2 ldr r1, [r0] ldr r0, _0802D71C cmp r1, r0 bne _0802D708 lsls r0, r3, 1 adds r0, r3 lsls r0, 2 ldr r5, _0802D720 adds r2, r0, r5 ldrb r1, [r2, 0x1] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _0802D708 ldrb r1, [r2] movs r0, 0x7F ands r0, r1 strb r0, [r2] ldrb r0, [r6] lsls r1, r0, 1 adds r1, r0 lsls r1, 2 adds r1, r5 ldrb r2, [r1, 0x1] movs r0, 0x2 negs r0, r0 ands r0, r2 strb r0, [r1, 0x1] ldr r4, _0802D724 adds r0, r4, 0 bl FreeSpriteTilesByTag adds r0, r4, 0 bl FreeSpritePaletteByTag ldrb r2, [r6] lsls r0, r2, 2 adds r1, r5, 0 subs r1, 0x10 adds r0, r1 ldrb r1, [r0] movs r0, 0x4 ands r0, r1 cmp r0, 0 beq _0802D6FC adds r0, r2, 0 adds r1, r2, 0 movs r3, 0x6 bl move_anim_start_t4 _0802D6FC: ldr r0, _0802D728 ldrb r1, [r6] lsls r1, 2 adds r1, r0 ldr r0, _0802D72C str r0, [r1] _0802D708: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0802D710: .4byte 0x02020004 _0802D714: .4byte 0x03004340 _0802D718: .4byte 0x02024a60 _0802D71C: .4byte SpriteCallbackDummy _0802D720: .4byte 0x02017810 _0802D724: .4byte 0x000027f9 _0802D728: .4byte 0x03004330 _0802D72C: .4byte sub_802D730 thumb_func_end sub_802D680 thumb_func_start sub_802D730 sub_802D730: @ 802D730 push {r4,lr} ldr r4, _0802D780 ldrb r1, [r4] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 ldr r1, _0802D784 adds r0, r1 ldrb r1, [r0] movs r0, 0x40 ands r0, r1 cmp r0, 0 bne _0802D77A bl sub_80753C4 lsls r0, 24 cmp r0, 0 bne _0802D77A ldr r0, _0802D788 ldr r1, _0802D78C movs r2, 0x80 lsls r2, 1 bl m4aMPlayVolumeControl ldr r2, _0802D790 ldrb r1, [r4] lsls r0, r1, 1 adds r0, r2 ldrh r2, [r0] movs r0, 0x64 muls r0, r2 ldr r2, _0802D794 adds r0, r2 bl sub_80324F8 bl dp01_tbl1_exec_completed _0802D77A: pop {r4} pop {r0} bx r0 .align 2, 0 _0802D780: .4byte 0x02024a60 _0802D784: .4byte 0x02017810 _0802D788: .4byte 0x03007380 _0802D78C: .4byte 0x0000ffff _0802D790: .4byte 0x02024a6a _0802D794: .4byte 0x03004360 thumb_func_end sub_802D730 thumb_func_start sub_802D798 sub_802D798: @ 802D798 push {r4-r6,lr} ldr r5, _0802D844 ldrb r2, [r5] lsls r3, r2, 1 adds r0, r3, r2 lsls r0, 2 ldr r6, _0802D848 adds r0, r6 ldrb r1, [r0] movs r0, 0x88 ands r0, r1 cmp r0, 0 bne _0802D7C6 ldr r0, _0802D84C adds r0, r3, r0 ldrh r1, [r0] movs r0, 0x64 muls r1, r0 ldr r0, _0802D850 adds r1, r0 adds r0, r2, 0 bl sub_8141828 _0802D7C6: ldr r4, _0802D854 ldr r0, _0802D858 ldrb r2, [r5] adds r0, r2, r0 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r3, r0, 2 adds r0, r4, 0 adds r0, 0x1C adds r0, r3, r0 ldr r1, [r0] ldr r0, _0802D85C cmp r1, r0 bne _0802D83C lsls r0, r2, 1 adds r0, r2 lsls r0, 2 adds r0, r6 ldrb r1, [r0] movs r0, 0x8 ands r0, r1 cmp r0, 0 bne _0802D83C adds r0, r3, r4 bl DestroySprite ldr r4, _0802D860 ldrb r1, [r5] adds r0, r1, r4 ldrb r0, [r0] ldr r2, _0802D84C lsls r1, 1 adds r1, r2 ldrh r2, [r1] movs r1, 0x64 muls r1, r2 ldr r2, _0802D850 adds r1, r2 movs r2, 0 bl sub_8045A5C ldrb r0, [r5] bl sub_804777C ldrb r0, [r5] adds r0, r4 ldrb r0, [r0] bl sub_8043DFC ldrb r0, [r5] bl sub_8031F88 ldr r1, _0802D864 ldrb r0, [r5] lsls r0, 2 adds r0, r1 ldr r1, _0802D868 str r1, [r0] _0802D83C: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0802D844: .4byte 0x02024a60 _0802D848: .4byte 0x02017810 _0802D84C: .4byte 0x02024a6a _0802D850: .4byte 0x03004360 _0802D854: .4byte 0x02020004 _0802D858: .4byte 0x0300434c _0802D85C: .4byte SpriteCallbackDummy _0802D860: .4byte 0x03004340 _0802D864: .4byte 0x03004330 _0802D868: .4byte sub_802D680 thumb_func_end sub_802D798 thumb_func_start c3_0802FDF4 c3_0802FDF4: @ 802D86C push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 bl sub_80753C4 lsls r0, 24 cmp r0, 0 bne _0802D88E ldr r0, _0802D894 ldr r1, _0802D898 movs r2, 0x80 lsls r2, 1 bl m4aMPlayVolumeControl adds r0, r4, 0 bl DestroyTask _0802D88E: pop {r4} pop {r0} bx r0 .align 2, 0 _0802D894: .4byte 0x03007380 _0802D898: .4byte 0x0000ffff thumb_func_end c3_0802FDF4 thumb_func_start bx_t1_healthbar_update bx_t1_healthbar_update: @ 802D89C push {r4-r6,lr} ldr r5, _0802D8DC ldrb r0, [r5] ldr r6, _0802D8E0 adds r1, r0, r6 ldrb r1, [r1] movs r2, 0 movs r3, 0 bl sub_8045C78 adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 ldrb r0, [r5] adds r0, r6 ldrb r0, [r0] bl sub_8043DFC lsls r4, 16 asrs r1, r4, 16 movs r0, 0x1 negs r0, r0 cmp r1, r0 beq _0802D8E4 ldrb r0, [r5] adds r0, r6 ldrb r0, [r0] movs r2, 0 bl sub_80440EC b _0802D8FE .align 2, 0 _0802D8DC: .4byte 0x02024a60 _0802D8E0: .4byte 0x03004340 _0802D8E4: ldr r2, _0802D904 ldrb r1, [r5] lsls r0, r1, 1 adds r0, r2 ldrh r2, [r0] movs r0, 0x64 muls r0, r2 ldr r2, _0802D908 adds r0, r2 bl sub_80324F8 bl dp01_tbl1_exec_completed _0802D8FE: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0802D904: .4byte 0x02024a6a _0802D908: .4byte 0x03004360 thumb_func_end bx_t1_healthbar_update thumb_func_start sub_802D90C sub_802D90C: @ 802D90C push {lr} ldr r0, _0802D920 ldrh r0, [r0, 0x16] cmp r0, 0 bne _0802D91A bl dp01_tbl1_exec_completed _0802D91A: pop {r0} bx r0 .align 2, 0 _0802D920: .4byte 0x03004210 thumb_func_end sub_802D90C thumb_func_start sub_802D924 sub_802D924: @ 802D924 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x10 lsls r0, 24 lsrs r0, 24 mov r9, r0 ldr r1, _0802DA24 lsls r0, 2 add r0, r9 lsls r0, 3 adds r0, r1 mov r8, r0 ldrb r0, [r0, 0x8] mov r10, r0 mov r1, r8 ldrb r7, [r1, 0xC] str r7, [sp, 0x8] ldrh r2, [r1, 0xA] str r2, [sp, 0xC] bl battle_type_is_double lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _0802D96A ldr r1, _0802DA28 lsls r0, r7, 1 adds r0, r1 ldrh r0, [r0] cmp r10, r0 bne _0802D96A b _0802DA80 _0802D96A: movs r0, 0x64 mov r1, r10 muls r1, r0 ldr r0, _0802DA2C adds r6, r1, r0 adds r0, r6, 0 movs r1, 0xB bl PokemonGetField adds r5, r0, 0 lsls r5, 16 lsrs r5, 16 adds r0, r6, 0 movs r1, 0x38 bl PokemonGetField adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 adds r0, r6, 0 movs r1, 0x19 bl PokemonGetField str r0, [sp, 0x4] ldr r3, _0802DA30 adds r4, 0x1 lsls r4, 2 ldr r2, _0802DA34 lsls r1, r5, 3 subs r1, r5 lsls r1, 2 adds r1, r2 ldrb r2, [r1, 0x13] movs r1, 0xCA lsls r1, 1 muls r1, r2 adds r4, r1 adds r4, r3 ldr r2, [r4] str r2, [sp] ldr r3, [sp, 0xC] lsls r1, r3, 16 asrs r1, 16 adds r0, r1 cmp r0, r2 bcc _0802DA58 adds r0, r6, 0 movs r1, 0x19 mov r2, sp bl pokemon_setattr adds r0, r6, 0 bl pokemon_calc_effective_stats ldr r2, [sp] add r0, sp, 0x4 ldrh r0, [r0] subs r2, r0 ldr r0, [sp, 0xC] subs r2, r0, r2 ldr r4, _0802DA38 ldrb r5, [r4] strb r7, [r4] lsls r2, 16 lsrs r2, 16 movs r0, 0x1 movs r1, 0xB bl dp01_build_cmdbuf_x21_a_bb strb r5, [r4] bl battle_type_is_double lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _0802DA40 ldr r2, _0802DA28 lsls r0, r7, 1 adds r0, r2 mov r1, r10 ldrh r0, [r0] cmp r1, r0 beq _0802DA1E movs r0, 0x2 eors r7, r0 lsls r0, r7, 1 adds r0, r2 ldrh r0, [r0] cmp r1, r0 bne _0802DA40 _0802DA1E: ldr r0, _0802DA3C b _0802DA82 .align 2, 0 _0802DA24: .4byte 0x03004b20 _0802DA28: .4byte 0x02024a6a _0802DA2C: .4byte 0x03004360 _0802DA30: .4byte gExperienceTables _0802DA34: .4byte gBaseStats _0802DA38: .4byte 0x02024a60 _0802DA3C: .4byte sub_802DCB0 _0802DA40: ldr r0, _0802DA50 mov r2, r9 lsls r1, r2, 2 add r1, r9 lsls r1, 3 adds r1, r0 ldr r0, _0802DA54 b _0802DA84 .align 2, 0 _0802DA50: .4byte 0x03004b20 _0802DA54: .4byte sub_802DDC4 _0802DA58: str r0, [sp, 0x4] add r2, sp, 0x4 adds r0, r6, 0 movs r1, 0x19 bl pokemon_setattr ldr r1, _0802DA78 ldr r3, [sp, 0x8] lsls r0, r3, 2 adds r0, r1 ldr r1, _0802DA7C str r1, [r0] mov r0, r9 bl DestroyTask b _0802DA86 .align 2, 0 _0802DA78: .4byte 0x03004330 _0802DA7C: .4byte sub_802D90C _0802DA80: ldr r0, _0802DA98 _0802DA82: mov r1, r8 _0802DA84: str r0, [r1] _0802DA86: 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 _0802DA98: .4byte sub_802DA9C thumb_func_end sub_802D924 thumb_func_start sub_802DA9C sub_802DA9C: @ 802DA9C push {r4-r6,lr} mov r6, r10 mov r5, r9 mov r4, r8 push {r4-r6} sub sp, 0x4 lsls r0, 24 lsrs r0, 24 ldr r1, _0802DB54 lsls r2, r0, 2 mov r8, r2 add r8, r0 mov r0, r8 lsls r0, 3 mov r8, r0 add r8, r1 mov r2, r8 ldrb r1, [r2, 0x8] movs r0, 0xA ldrsh r2, [r2, r0] mov r9, r2 mov r2, r8 ldrb r2, [r2, 0xC] mov r10, r2 movs r0, 0x64 adds r6, r1, 0 muls r6, r0 ldr r0, _0802DB58 adds r6, r0 adds r0, r6, 0 movs r1, 0x38 bl PokemonGetField adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 adds r0, r6, 0 movs r1, 0xB bl PokemonGetField adds r5, r0, 0 lsls r5, 16 lsrs r5, 16 adds r0, r6, 0 movs r1, 0x19 bl PokemonGetField adds r3, r0, 0 ldr r6, _0802DB5C lsls r1, r4, 2 ldr r2, _0802DB60 lsls r0, r5, 3 subs r0, r5 lsls r0, 2 adds r0, r2 ldrb r2, [r0, 0x13] movs r0, 0xCA lsls r0, 1 muls r0, r2 adds r1, r0 adds r1, r6 ldr r1, [r1] subs r3, r1 adds r4, 0x1 lsls r4, 2 adds r4, r0 adds r4, r6 ldr r2, [r4] subs r2, r1 ldr r0, _0802DB64 add r0, r10 ldrb r1, [r0] mov r0, r9 negs r0, r0 str r0, [sp] mov r0, r10 bl sub_8043D84 movs r0, 0x21 bl audio_play ldr r0, _0802DB68 mov r1, r8 str r0, [r1] add sp, 0x4 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0802DB54: .4byte 0x03004b20 _0802DB58: .4byte 0x03004360 _0802DB5C: .4byte gExperienceTables _0802DB60: .4byte gBaseStats _0802DB64: .4byte 0x03004340 _0802DB68: .4byte sub_802DB6C thumb_func_end sub_802DA9C thumb_func_start sub_802DB6C sub_802DB6C: @ 802DB6C push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x8 lsls r0, 24 lsrs r0, 24 mov r8, r0 ldr r1, _0802DB98 lsls r0, 2 add r0, r8 lsls r0, 3 adds r6, r0, r1 ldrh r1, [r6, 0x1C] movs r2, 0x1C ldrsh r0, [r6, r2] cmp r0, 0xC bgt _0802DB9C adds r0, r1, 0x1 strh r0, [r6, 0x1C] b _0802DC98 .align 2, 0 _0802DB98: .4byte 0x03004b20 _0802DB9C: ldrb r0, [r6, 0x8] mov r9, r0 ldrh r2, [r6, 0xA] mov r10, r2 ldrb r7, [r6, 0xC] ldr r5, _0802DC64 adds r5, r7, r5 ldrb r1, [r5] adds r0, r7, 0 movs r2, 0x1 movs r3, 0 bl sub_8045C78 adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 ldrb r0, [r5] bl sub_8043DFC lsls r4, 16 asrs r4, 16 movs r0, 0x1 negs r0, r0 cmp r4, r0 bne _0802DC98 movs r0, 0x21 bl m4aSongNumStop movs r0, 0x64 mov r1, r9 muls r1, r0 ldr r0, _0802DC68 adds r5, r1, r0 adds r0, r5, 0 movs r1, 0x38 bl PokemonGetField adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 adds r0, r5, 0 movs r1, 0x19 bl PokemonGetField str r0, [sp, 0x4] adds r0, r5, 0 movs r1, 0xB bl PokemonGetField lsls r0, 16 lsrs r0, 16 ldr r3, _0802DC6C adds r4, 0x1 lsls r4, 2 ldr r2, _0802DC70 lsls r1, r0, 3 subs r1, r0 lsls r1, 2 adds r1, r2 ldrb r1, [r1, 0x13] movs r0, 0xCA lsls r0, 1 muls r0, r1 adds r4, r0 adds r4, r3 ldr r1, [r4] str r1, [sp] mov r2, r10 lsls r0, r2, 16 asrs r4, r0, 16 ldr r0, [sp, 0x4] adds r0, r4 cmp r0, r1 blt _0802DC7C adds r0, r5, 0 movs r1, 0x19 mov r2, sp bl pokemon_setattr adds r0, r5, 0 bl pokemon_calc_effective_stats ldr r2, [sp] add r0, sp, 0x4 ldrh r0, [r0] subs r2, r0 subs r2, r4, r2 ldr r4, _0802DC74 ldrb r5, [r4] strb r7, [r4] lsls r2, 16 lsrs r2, 16 movs r0, 0x1 movs r1, 0xB bl dp01_build_cmdbuf_x21_a_bb strb r5, [r4] ldr r0, _0802DC78 str r0, [r6] b _0802DC98 .align 2, 0 _0802DC64: .4byte 0x03004340 _0802DC68: .4byte 0x03004360 _0802DC6C: .4byte gExperienceTables _0802DC70: .4byte gBaseStats _0802DC74: .4byte 0x02024a60 _0802DC78: .4byte sub_802DCB0 _0802DC7C: str r0, [sp, 0x4] add r2, sp, 0x4 adds r0, r5, 0 movs r1, 0x19 bl pokemon_setattr ldr r1, _0802DCA8 lsls r0, r7, 2 adds r0, r1 ldr r1, _0802DCAC str r1, [r0] mov r0, r8 bl DestroyTask _0802DC98: 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 _0802DCA8: .4byte 0x03004330 _0802DCAC: .4byte sub_802D90C thumb_func_end sub_802DB6C thumb_func_start sub_802DCB0 sub_802DCB0: @ 802DCB0 push {r4-r6,lr} lsls r0, 24 lsrs r5, r0, 24 ldr r1, _0802DD04 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r1 ldrb r4, [r0, 0xC] ldrb r6, [r0, 0x8] bl battle_type_is_double lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _0802DCE4 ldr r1, _0802DD08 movs r0, 0x2 adds r2, r4, 0 eors r2, r0 lsls r0, r2, 1 adds r0, r1 ldrh r0, [r0] cmp r6, r0 bne _0802DCE4 adds r4, r2, 0 _0802DCE4: adds r0, r4, 0 adds r1, r4, 0 adds r2, r4, 0 movs r3, 0 bl move_anim_start_t4 ldr r0, _0802DD04 lsls r1, r5, 2 adds r1, r5 lsls r1, 3 adds r1, r0 ldr r0, _0802DD0C str r0, [r1] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0802DD04: .4byte 0x03004b20 _0802DD08: .4byte 0x02024a6a _0802DD0C: .4byte sub_802DD10 thumb_func_end sub_802DCB0 thumb_func_start sub_802DD10 sub_802DD10: @ 802DD10 push {r4-r7,lr} lsls r0, 24 lsrs r6, r0, 24 ldr r1, _0802DD78 lsls r0, r6, 2 adds r0, r6 lsls r0, 3 adds r2, r0, r1 ldrb r5, [r2, 0xC] lsls r0, r5, 1 adds r0, r5 lsls r0, 2 ldr r1, _0802DD7C adds r0, r1 ldrb r1, [r0] movs r0, 0x40 ands r0, r1 cmp r0, 0 bne _0802DDAE ldrb r4, [r2, 0x8] movs r0, 0x64 adds r1, r4, 0 muls r1, r0 ldr r0, _0802DD80 adds r7, r1, r0 adds r0, r7, 0 movs r1, 0x38 bl PokemonGetField bl battle_type_is_double lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _0802DD8C ldr r1, _0802DD84 movs r0, 0x2 adds r2, r5, 0 eors r2, r0 lsls r0, r2, 1 adds r0, r1 ldrh r0, [r0] cmp r4, r0 bne _0802DD8C ldr r0, _0802DD88 adds r0, r2, r0 ldrb r0, [r0] adds r1, r7, 0 movs r2, 0 bl sub_8045A5C b _0802DDA0 .align 2, 0 _0802DD78: .4byte 0x03004b20 _0802DD7C: .4byte 0x02017810 _0802DD80: .4byte 0x03004360 _0802DD84: .4byte 0x02024a6a _0802DD88: .4byte 0x03004340 _0802DD8C: ldr r0, _0802DDB4 adds r0, r5, r0 ldrb r0, [r0] movs r1, 0x64 muls r1, r4 ldr r2, _0802DDB8 adds r1, r2 movs r2, 0 bl sub_8045A5C _0802DDA0: ldr r0, _0802DDBC lsls r1, r6, 2 adds r1, r6 lsls r1, 3 adds r1, r0 ldr r0, _0802DDC0 str r0, [r1] _0802DDAE: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0802DDB4: .4byte 0x03004340 _0802DDB8: .4byte 0x03004360 _0802DDBC: .4byte 0x03004b20 _0802DDC0: .4byte sub_802DDC4 thumb_func_end sub_802DD10 thumb_func_start sub_802DDC4 sub_802DDC4: @ 802DDC4 push {r4,r5,lr} adds r5, r0, 0 lsls r5, 24 lsrs r5, 24 ldr r0, _0802DE00 lsls r4, r5, 2 adds r4, r5 lsls r4, 3 adds r4, r0 ldrb r1, [r4, 0x8] movs r0, 0x64 muls r0, r1 ldr r1, _0802DE04 adds r0, r1 movs r1, 0x38 bl PokemonGetField ldrb r0, [r4, 0xC] ldr r1, _0802DE08 lsls r0, 2 adds r0, r1 ldr r1, _0802DE0C str r1, [r0] adds r0, r5, 0 bl DestroyTask pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0802DE00: .4byte 0x03004b20 _0802DE04: .4byte 0x03004360 _0802DE08: .4byte 0x03004330 _0802DE0C: .4byte sub_802D90C thumb_func_end sub_802DDC4 thumb_func_start sub_802DE10 sub_802DE10: @ 802DE10 push {r4-r6,lr} ldr r6, _0802DE94 ldr r5, _0802DE98 ldr r4, _0802DE9C ldrb r2, [r4] adds r0, r2, r5 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r6 movs r3, 0x22 ldrsh r1, [r0, r3] movs r3, 0x26 ldrsh r0, [r0, r3] adds r1, r0 cmp r1, 0xA0 ble _0802DE8C ldr r1, _0802DEA0 lsls r0, r2, 1 adds r0, r1 ldrh r1, [r0] movs r0, 0x64 muls r0, r1 ldr r1, _0802DEA4 adds r0, r1 movs r1, 0xB bl PokemonGetField lsls r0, 16 lsrs r0, 16 bl nullsub_9 ldrb r0, [r4] adds r0, r5 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r6 ldrb r0, [r0, 0x3] lsls r0, 26 lsrs r0, 27 bl FreeOamMatrix ldrb r0, [r4] adds r0, r5 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r6 bl DestroySprite ldr r1, _0802DEA8 ldrb r0, [r4] adds r0, r1 ldrb r0, [r0] bl sub_8043DB0 bl dp01_tbl1_exec_completed _0802DE8C: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0802DE94: .4byte 0x02020004 _0802DE98: .4byte 0x02024be0 _0802DE9C: .4byte 0x02024a60 _0802DEA0: .4byte 0x02024a6a _0802DEA4: .4byte 0x03004360 _0802DEA8: .4byte 0x03004340 thumb_func_end sub_802DE10 thumb_func_start sub_802DEAC sub_802DEAC: @ 802DEAC push {r4-r6,lr} ldr r6, _0802DF04 ldrb r2, [r6] lsls r0, r2, 1 adds r0, r2 lsls r0, 2 ldr r1, _0802DF08 adds r0, r1 ldrb r1, [r0] movs r0, 0x40 ands r0, r1 cmp r0, 0 bne _0802DEFC ldr r5, _0802DF0C adds r0, r2, r5 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r4, _0802DF10 adds r0, r4 bl FreeSpriteOamMatrix ldrb r0, [r6] adds r0, r5 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 bl DestroySprite ldr r1, _0802DF14 ldrb r0, [r6] adds r0, r1 ldrb r0, [r0] bl sub_8043DB0 bl dp01_tbl1_exec_completed _0802DEFC: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0802DF04: .4byte 0x02024a60 _0802DF08: .4byte 0x02017810 _0802DF0C: .4byte 0x02024be0 _0802DF10: .4byte 0x02020004 _0802DF14: .4byte 0x03004340 thumb_func_end sub_802DEAC thumb_func_start sub_802DF18 sub_802DF18: @ 802DF18 push {lr} ldr r0, _0802DF2C ldrh r0, [r0, 0x16] cmp r0, 0 bne _0802DF26 bl dp01_tbl1_exec_completed _0802DF26: pop {r0} bx r0 .align 2, 0 _0802DF2C: .4byte 0x03004210 thumb_func_end sub_802DF18 thumb_func_start sub_802DF30 sub_802DF30: @ 802DF30 push {r4,lr} ldr r0, _0802DF70 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _0802DF6A ldr r1, _0802DF74 ldr r2, _0802DF78 ldrb r0, [r2] lsls r0, 2 adds r0, r1 ldr r1, _0802DF7C str r1, [r0] ldr r3, _0802DF80 ldr r1, _0802DF84 ldrb r0, [r2] adds r0, r1 ldrb r0, [r0] lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r3 ldrb r4, [r1, 0x8] bl DestroyTask adds r0, r4, 0 bl sub_8094E20 _0802DF6A: pop {r4} pop {r0} bx r0 .align 2, 0 _0802DF70: .4byte 0x0202f388 _0802DF74: .4byte 0x03004330 _0802DF78: .4byte 0x02024a60 _0802DF7C: .4byte sub_802DF88 _0802DF80: .4byte 0x03004b20 _0802DF84: .4byte 0x0300434c thumb_func_end sub_802DF30 thumb_func_start sub_802DF88 sub_802DF88: @ 802DF88 push {lr} ldr r0, _0802DFB8 ldr r1, [r0, 0x4] ldr r0, _0802DFBC cmp r1, r0 bne _0802DFF8 ldr r0, _0802DFC0 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _0802DFF8 ldr r0, _0802DFC4 ldrb r0, [r0] cmp r0, 0x1 bne _0802DFD0 ldr r0, _0802DFC8 ldrb r1, [r0] ldr r2, _0802DFCC movs r0, 0x1 bl dp01_build_cmdbuf_x22_a_three_bytes b _0802DFDA .align 2, 0 _0802DFB8: .4byte 0x03001770 _0802DFBC: .4byte sub_800F808 _0802DFC0: .4byte 0x0202f388 _0802DFC4: .4byte 0x0202e8f4 _0802DFC8: .4byte 0x0202e8f5 _0802DFCC: .4byte 0x02038470 _0802DFD0: movs r0, 0x1 movs r1, 0x6 movs r2, 0 bl dp01_build_cmdbuf_x22_a_three_bytes _0802DFDA: ldr r1, _0802DFFC ldr r0, _0802E000 ldrb r0, [r0] lsls r0, 9 adds r1, 0x1 adds r0, r1 ldrb r1, [r0] movs r0, 0xF ands r0, r1 cmp r0, 0x1 bne _0802DFF4 bl b_link_standby_message _0802DFF4: bl dp01_tbl1_exec_completed _0802DFF8: pop {r0} bx r0 .align 2, 0 _0802DFFC: .4byte 0x02023a60 _0802E000: .4byte 0x02024a60 thumb_func_end sub_802DF88 thumb_func_start sub_802E004 sub_802E004: @ 802E004 push {lr} ldr r0, _0802E02C ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _0802E028 ldr r1, _0802E030 ldr r0, _0802E034 ldrb r0, [r0] lsls r0, 2 adds r0, r1 ldr r1, _0802E038 str r1, [r0] bl nullsub_14 bl sub_80A6DCC _0802E028: pop {r0} bx r0 .align 2, 0 _0802E02C: .4byte 0x0202f388 _0802E030: .4byte 0x03004330 _0802E034: .4byte 0x02024a60 _0802E038: .4byte sub_802E03C thumb_func_end sub_802E004 thumb_func_start sub_802E03C sub_802E03C: @ 802E03C push {lr} ldr r0, _0802E068 ldr r1, [r0, 0x4] ldr r0, _0802E06C cmp r1, r0 bne _0802E062 ldr r0, _0802E070 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _0802E062 ldr r0, _0802E074 ldrh r1, [r0] movs r0, 0x1 bl dp01_build_cmdbuf_x23_aa_0 bl dp01_tbl1_exec_completed _0802E062: pop {r0} bx r0 .align 2, 0 _0802E068: .4byte 0x03001770 _0802E06C: .4byte sub_800F808 _0802E070: .4byte 0x0202f388 _0802E074: .4byte 0x0203855e thumb_func_end sub_802E03C thumb_func_start bx_wait_t1 bx_wait_t1: @ 802E078 push {lr} ldr r0, _0802E0A4 ldrb r0, [r0] cmp r0, 0 beq _0802E09A ldr r0, _0802E0A8 ldrb r1, [r0] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 ldr r1, _0802E0AC adds r0, r1 ldrb r1, [r0] movs r0, 0x40 ands r0, r1 cmp r0, 0 bne _0802E09E _0802E09A: bl dp01_tbl1_exec_completed _0802E09E: pop {r0} bx r0 .align 2, 0 _0802E0A4: .4byte 0x02024e6d _0802E0A8: .4byte 0x02024a60 _0802E0AC: .4byte 0x02017810 thumb_func_end bx_wait_t1 thumb_func_start bx_blink_t1 bx_blink_t1: @ 802E0B0 push {r4,lr} ldr r1, _0802E0EC ldr r0, _0802E0F0 ldrb r0, [r0] adds r0, r1 ldrb r1, [r0] ldr r2, _0802E0F4 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r4, r0, r2 movs r1, 0x30 ldrsh r0, [r4, r1] cmp r0, 0x20 bne _0802E0FC movs r3, 0 movs r0, 0 strh r0, [r4, 0x30] adds r2, r4, 0 adds r2, 0x3E ldrb r1, [r2] subs r0, 0x5 ands r0, r1 strb r0, [r2] ldr r0, _0802E0F8 strb r3, [r0] bl dp01_tbl1_exec_completed b _0802E126 .align 2, 0 _0802E0EC: .4byte 0x02024be0 _0802E0F0: .4byte 0x02024a60 _0802E0F4: .4byte 0x02020004 _0802E0F8: .4byte 0x02024e6d _0802E0FC: ldrh r0, [r4, 0x30] movs r1, 0x3 ands r0, r1 cmp r0, 0 bne _0802E120 adds r3, r4, 0 adds r3, 0x3E ldrb r2, [r3] lsls r0, r2, 29 lsrs r0, 31 movs r1, 0x1 eors r1, r0 lsls r1, 2 movs r0, 0x5 negs r0, r0 ands r0, r2 orrs r0, r1 strb r0, [r3] _0802E120: ldrh r0, [r4, 0x30] adds r0, 0x1 strh r0, [r4, 0x30] _0802E126: pop {r4} pop {r0} bx r0 thumb_func_end bx_blink_t1 thumb_func_start sub_802E12C sub_802E12C: @ 802E12C push {r4-r6,lr} sub sp, 0x4 adds r6, r0, 0 ldr r0, _0802E180 ldrb r4, [r0] lsls r4, 9 ldr r0, _0802E184 adds r4, r0 ldr r5, _0802E188 adds r0, r5, 0 bl StringCopy lsls r0, r6, 1 adds r4, r0 ldrh r1, [r4] movs r0, 0xD muls r1, r0 ldr r0, _0802E18C adds r1, r0 adds r0, r5, 0 bl StringAppend ldr r4, _0802E190 adds r1, r5, 0 lsls r0, r6, 2 adds r0, r6 lsls r0, 18 movs r2, 0xC0 lsls r2, 18 adds r0, r2 lsrs r2, r0, 16 movs r0, 0x1 ands r0, r6 movs r3, 0x1 cmp r0, 0 beq _0802E176 movs r3, 0xB _0802E176: cmp r6, 0x1 bgt _0802E194 movs r0, 0x37 b _0802E196 .align 2, 0 _0802E180: .4byte 0x02024a60 _0802E184: .4byte 0x02023a64 _0802E188: .4byte 0x020238cc _0802E18C: .4byte gMoveNames _0802E190: .4byte 0x03004210 _0802E194: movs r0, 0x39 _0802E196: str r0, [sp] adds r0, r4, 0 bl InitWindow ldr r0, _0802E1AC bl sub_8002F44 add sp, 0x4 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0802E1AC: .4byte 0x03004210 thumb_func_end sub_802E12C thumb_func_start sub_802E1B0 sub_802E1B0: @ 802E1B0 push {r4-r6,lr} sub sp, 0x8 ldr r0, _0802E208 ldrb r4, [r0] lsls r4, 9 ldr r0, _0802E20C adds r4, r0 ldr r5, _0802E210 movs r0, 0 strb r0, [r5] ldr r0, _0802E214 ldr r1, _0802E218 movs r2, 0x14 str r2, [sp] movs r2, 0x3A str r2, [sp, 0x4] movs r2, 0x1 movs r3, 0x37 bl FillWindowRect movs r6, 0 _0802E1DA: lsls r0, r6, 24 lsrs r0, 24 bl nullsub_7 adds r0, r6, 0 ldr r1, _0802E21C bl sub_802E12C ldrh r0, [r4] cmp r0, 0 beq _0802E1F6 ldrb r0, [r5] adds r0, 0x1 strb r0, [r5] _0802E1F6: adds r4, 0x2 adds r6, 0x1 cmp r6, 0x3 ble _0802E1DA add sp, 0x8 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0802E208: .4byte 0x02024a60 _0802E20C: .4byte 0x02023a64 _0802E210: .4byte 0x03004348 _0802E214: .4byte 0x03004210 _0802E218: .4byte 0x00001016 _0802E21C: .4byte gUnknown_08400D49 thumb_func_end sub_802E1B0 thumb_func_start sub_802E220 sub_802E220: @ 802E220 push {r4-r6,lr} sub sp, 0x4 ldr r4, _0802E2B8 ldr r6, _0802E2BC ldrb r0, [r6] lsls r1, r0, 9 adds r0, r4, 0x2 adds r0, r1, r0 ldrb r0, [r0] cmp r0, 0x1 beq _0802E2B0 adds r4, 0x4 adds r4, r1, r4 ldr r2, _0802E2C0 ldr r1, _0802E2C4 adds r0, r2, 0 bl StringCopy adds r2, r0, 0 movs r1, 0xFC strb r1, [r2] movs r0, 0x11 strb r0, [r2, 0x1] movs r0, 0x2 strb r0, [r2, 0x2] adds r2, 0x3 strb r1, [r2] movs r0, 0x14 strb r0, [r2, 0x1] movs r0, 0x6 strb r0, [r2, 0x2] adds r2, 0x3 ldr r5, _0802E2C8 ldrb r1, [r6] adds r1, r5 adds r0, r4, 0 adds r0, 0x8 ldrb r1, [r1] adds r0, r1 ldrb r1, [r0] adds r0, r2, 0 movs r2, 0x1 movs r3, 0x2 bl ConvertIntToDecimalStringN adds r2, r0, 0 movs r0, 0xBA strb r0, [r2] adds r2, 0x1 ldrb r0, [r6] adds r0, r5 adds r4, 0xC ldrb r0, [r0] adds r4, r0 ldrb r1, [r4] adds r0, r2, 0 movs r2, 0x1 movs r3, 0x2 bl ConvertIntToDecimalStringN ldr r4, _0802E2CC ldr r1, _0802E2C0 ldr r2, _0802E2D0 movs r0, 0x37 str r0, [sp] adds r0, r4, 0 movs r3, 0x19 bl InitWindow adds r0, r4, 0 bl sub_8002F44 _0802E2B0: add sp, 0x4 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0802E2B8: .4byte 0x02023a60 _0802E2BC: .4byte 0x02024a60 _0802E2C0: .4byte 0x020238cc _0802E2C4: .4byte gUnknown_08400D49 _0802E2C8: .4byte 0x02024e64 _0802E2CC: .4byte 0x03004210 _0802E2D0: .4byte 0x000002a2 thumb_func_end sub_802E220 thumb_func_start sub_802E2D4 sub_802E2D4: @ 802E2D4 push {r4,r5,lr} sub sp, 0x8 ldr r4, _0802E314 ldr r5, _0802E318 ldrb r0, [r5] lsls r1, r0, 9 adds r0, r4, 0x2 adds r0, r1, r0 ldrb r0, [r0] cmp r0, 0x1 bne _0802E328 ldr r4, _0802E31C ldr r1, _0802E320 movs r0, 0x1C str r0, [sp] movs r0, 0x3A str r0, [sp, 0x4] adds r0, r4, 0 movs r2, 0x17 movs r3, 0x37 bl FillWindowRect ldr r1, _0802E324 movs r2, 0xA4 lsls r2, 2 movs r0, 0x37 str r0, [sp] adds r0, r4, 0 movs r3, 0x13 bl InitWindow b _0802E388 .align 2, 0 _0802E314: .4byte 0x02023a60 _0802E318: .4byte 0x02024a60 _0802E31C: .4byte 0x03004210 _0802E320: .4byte 0x00001016 _0802E324: .4byte gUnknown_08400D52 _0802E328: adds r4, 0x4 adds r4, r1, r4 ldr r3, _0802E398 ldr r1, _0802E39C adds r0, r3, 0 bl StringCopy adds r3, r0, 0 ldr r2, _0802E3A0 ldr r1, _0802E3A4 ldrb r0, [r5] adds r0, r1 ldrb r0, [r0] lsls r0, 1 adds r4, r0 ldrh r1, [r4] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r0, [r0, 0x2] lsls r1, r0, 3 subs r1, r0 ldr r0, _0802E3A8 adds r1, r0 adds r0, r3, 0 bl StringCopy ldr r4, _0802E3AC ldr r1, _0802E3B0 movs r0, 0x1C str r0, [sp] movs r0, 0x3A str r0, [sp, 0x4] adds r0, r4, 0 movs r2, 0x17 movs r3, 0x39 bl FillWindowRect ldr r1, _0802E398 movs r2, 0xB0 lsls r2, 2 movs r0, 0x39 str r0, [sp] adds r0, r4, 0 movs r3, 0x17 bl InitWindow _0802E388: ldr r0, _0802E3AC bl sub_8002F44 add sp, 0x8 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0802E398: .4byte 0x020238cc _0802E39C: .4byte gUnknown_08400D49 _0802E3A0: .4byte gBattleMoves _0802E3A4: .4byte 0x02024e64 _0802E3A8: .4byte gTypeNames _0802E3AC: .4byte 0x03004210 _0802E3B0: .4byte 0x00001016 thumb_func_end sub_802E2D4 thumb_func_start sub_802E3B4 sub_802E3B4: @ 802E3B4 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 movs r0, 0x48 bl sub_814A958 ldr r1, _0802E3DC lsls r4, 1 adds r0, r4, r1 ldrb r0, [r0] adds r1, 0x1 adds r4, r1 ldrb r1, [r4] bl sub_814A880 pop {r4} pop {r0} bx r0 .align 2, 0 _0802E3DC: .4byte gUnknown_081FAE89 thumb_func_end sub_802E3B4 thumb_func_start nullsub_7 nullsub_7: @ 802E3E0 bx lr thumb_func_end nullsub_7 thumb_func_start sub_802E3E4 sub_802E3E4: @ 802E3E4 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 movs r0, 0x2A bl sub_814A958 ldr r1, _0802E40C lsls r4, 1 adds r0, r4, r1 ldrb r0, [r0] adds r1, 0x1 adds r4, r1 ldrb r1, [r4] bl sub_814A880 pop {r4} pop {r0} bx r0 .align 2, 0 _0802E40C: .4byte gUnknown_081FAE91 thumb_func_end sub_802E3E4 thumb_func_start nullsub_8 nullsub_8: @ 802E410 bx lr thumb_func_end nullsub_8 thumb_func_start sub_802E414 sub_802E414: @ 802E414 push {lr} ldr r0, _0802E420 bl SetMainCallback2 pop {r0} bx r0 .align 2, 0 _0802E420: .4byte sub_807AD58 thumb_func_end sub_802E414 thumb_func_start sub_802E424 sub_802E424: @ 802E424 push {lr} ldr r0, _0802E430 bl SetMainCallback2 pop {r0} bx r0 .align 2, 0 _0802E430: .4byte sub_807AD58 thumb_func_end sub_802E424 thumb_func_start sub_802E434 sub_802E434: @ 802E434 push {lr} ldr r0, _0802E458 ldrb r1, [r0] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 ldr r1, _0802E45C adds r0, r1 ldrb r1, [r0] movs r0, 0x10 ands r0, r1 cmp r0, 0 bne _0802E452 bl dp01_tbl1_exec_completed _0802E452: pop {r0} bx r0 .align 2, 0 _0802E458: .4byte 0x02024a60 _0802E45C: .4byte 0x02017810 thumb_func_end sub_802E434 thumb_func_start sub_802E460 sub_802E460: @ 802E460 push {lr} ldr r0, _0802E484 ldrb r1, [r0] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 ldr r1, _0802E488 adds r0, r1 ldrb r1, [r0] movs r0, 0x20 ands r0, r1 cmp r0, 0 bne _0802E47E bl dp01_tbl1_exec_completed _0802E47E: pop {r0} bx r0 .align 2, 0 _0802E484: .4byte 0x02024a60 _0802E488: .4byte 0x02017810 thumb_func_end sub_802E460 thumb_func_start b_link_standby_message b_link_standby_message: @ 802E48C push {lr} sub sp, 0x4 ldr r0, _0802E4BC ldrh r1, [r0] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _0802E4B6 ldr r0, _0802E4C0 movs r1, 0 strh r1, [r0] ldr r0, _0802E4C4 strh r1, [r0] ldr r0, _0802E4C8 ldr r1, _0802E4CC movs r2, 0xF str r2, [sp] movs r2, 0x90 movs r3, 0x2 bl sub_8002EB0 _0802E4B6: add sp, 0x4 pop {r0} bx r0 .align 2, 0 _0802E4BC: .4byte 0x020239f8 _0802E4C0: .4byte 0x030042a4 _0802E4C4: .4byte 0x030042a0 _0802E4C8: .4byte 0x03004210 _0802E4CC: .4byte gUnknown_08400CE0 thumb_func_end b_link_standby_message thumb_func_start dp01t_00_1_getattr dp01t_00_1_getattr: @ 802E4D0 push {r4-r6,lr} sub sp, 0x100 movs r6, 0 ldr r1, _0802E4FC ldr r0, _0802E500 ldrb r2, [r0] lsls r0, r2, 9 adds r1, 0x2 adds r1, r0, r1 ldrb r0, [r1] cmp r0, 0 bne _0802E508 ldr r0, _0802E504 lsls r1, r2, 1 adds r1, r0 ldrb r0, [r1] mov r1, sp bl dp01_getattr_by_ch1_for_player_pokemon_ adds r6, r0, 0 b _0802E52A .align 2, 0 _0802E4FC: .4byte 0x02023a60 _0802E500: .4byte 0x02024a60 _0802E504: .4byte 0x02024a6a _0802E508: ldrb r4, [r1] movs r5, 0 _0802E50C: movs r0, 0x1 ands r0, r4 cmp r0, 0 beq _0802E522 lsls r0, r5, 24 lsrs r0, 24 mov r2, sp adds r1, r2, r6 bl dp01_getattr_by_ch1_for_player_pokemon_ adds r6, r0 _0802E522: lsrs r4, 1 adds r5, 0x1 cmp r5, 0x5 ble _0802E50C _0802E52A: lsls r1, r6, 16 lsrs r1, 16 movs r0, 0x1 mov r2, sp bl dp01_build_cmdbuf_x1D_1D_numargs_varargs bl dp01_tbl1_exec_completed add sp, 0x100 pop {r4-r6} pop {r0} bx r0 thumb_func_end dp01t_00_1_getattr thumb_func_start dp01_getattr_by_ch1_for_player_pokemon_ dp01_getattr_by_ch1_for_player_pokemon_: @ 802E544 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x90 adds r7, r1, 0 lsls r0, 24 lsrs r5, r0, 24 movs r6, 0 ldr r2, _0802E578 ldr r3, _0802E57C ldrb r0, [r3] lsls r0, 9 adds r1, r2, 0x1 adds r0, r1 ldrb r0, [r0] cmp r0, 0x3B bls _0802E56E bl _0802ECDA _0802E56E: lsls r0, 2 ldr r1, _0802E580 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0802E578: .4byte 0x02023a60 _0802E57C: .4byte 0x02024a60 _0802E580: .4byte _0802E584 .align 2, 0 _0802E584: .4byte _0802E674 .4byte _0802E898 .4byte _0802E8A8 .4byte _0802E8B8 .4byte _0802E920 .4byte _0802E920 .4byte _0802E920 .4byte _0802E920 .4byte _0802E93C .4byte _0802E978 .4byte _0802E978 .4byte _0802E978 .4byte _0802E978 .4byte _0802ECDA .4byte _0802ECDA .4byte _0802ECDA .4byte _0802ECDA .4byte _0802E994 .4byte _0802E9A4 .4byte _0802E9D4 .4byte _0802E9E4 .4byte _0802E9F4 .4byte _0802EA04 .4byte _0802EA14 .4byte _0802EA24 .4byte _0802EA34 .4byte _0802EA44 .4byte _0802EA54 .4byte _0802EA64 .4byte _0802EA74 .4byte _0802EA84 .4byte _0802EA94 .4byte _0802EAE4 .4byte _0802EAF4 .4byte _0802EB04 .4byte _0802EB14 .4byte _0802EB24 .4byte _0802EB34 .4byte _0802EB44 .4byte _0802EB54 .4byte _0802EB64 .4byte _0802EB98 .4byte _0802EBA8 .4byte _0802EBB8 .4byte _0802EBC8 .4byte _0802EBD8 .4byte _0802EBE8 .4byte _0802EBF8 .4byte _0802EC08 .4byte _0802EC28 .4byte _0802EC38 .4byte _0802EC48 .4byte _0802EC58 .4byte _0802EC68 .4byte _0802EC78 .4byte _0802EC88 .4byte _0802EC98 .4byte _0802ECA8 .4byte _0802ECB8 .4byte _0802ECC8 _0802E674: movs r0, 0x64 adds r4, r5, 0 muls r4, r0 ldr r0, _0802E888 adds r4, r0 adds r0, r4, 0 movs r1, 0xB bl PokemonGetField mov r1, sp strh r0, [r1] adds r0, r4, 0 movs r1, 0xC bl PokemonGetField mov r1, sp strh r0, [r1, 0x2E] movs r6, 0 add r0, sp, 0x24 mov r9, r0 movs r1, 0x3B add r1, sp mov r10, r1 mov r2, sp adds r2, 0x2B str r2, [sp, 0x80] mov r0, sp adds r0, 0x2A str r0, [sp, 0x7C] mov r1, sp adds r1, 0x68 str r1, [sp, 0x8C] adds r2, 0x5 str r2, [sp, 0x84] adds r0, 0x12 str r0, [sp, 0x88] mov r8, r4 add r4, sp, 0xC _0802E6C0: adds r1, r6, 0 adds r1, 0xD mov r0, r8 bl PokemonGetField strh r0, [r4] adds r1, r6, 0 adds r1, 0x11 mov r0, r8 bl PokemonGetField mov r2, r9 adds r1, r2, r6 strb r0, [r1] adds r4, 0x2 adds r6, 0x1 cmp r6, 0x3 ble _0802E6C0 movs r0, 0x64 adds r4, r5, 0 muls r4, r0 ldr r0, _0802E888 adds r4, r0 adds r0, r4, 0 movs r1, 0x15 bl PokemonGetField mov r1, r10 strb r0, [r1] adds r0, r4, 0 movs r1, 0x20 bl PokemonGetField ldr r2, [sp, 0x80] strb r0, [r2] adds r0, r4, 0 movs r1, 0x19 bl PokemonGetField str r0, [sp, 0x44] adds r0, r4, 0 movs r1, 0x27 bl PokemonGetField mov r3, sp movs r5, 0x1F ands r0, r5 ldrb r2, [r3, 0x14] movs r1, 0x20 negs r1, r1 ands r1, r2 orrs r1, r0 strb r1, [r3, 0x14] adds r0, r4, 0 movs r1, 0x28 bl PokemonGetField mov r3, sp movs r6, 0x1F ands r0, r6 lsls r0, 5 ldrh r2, [r3, 0x14] ldr r1, _0802E88C ands r1, r2 orrs r1, r0 strh r1, [r3, 0x14] adds r0, r4, 0 movs r1, 0x29 bl PokemonGetField mov r3, sp ands r0, r5 lsls r0, 2 ldrb r2, [r3, 0x15] movs r1, 0x7D negs r1, r1 ands r1, r2 orrs r1, r0 strb r1, [r3, 0x15] adds r0, r4, 0 movs r1, 0x2A bl PokemonGetField movs r1, 0x1F ands r1, r0 lsls r1, 15 ldr r0, [sp, 0x14] ldr r2, _0802E890 ands r0, r2 orrs r0, r1 str r0, [sp, 0x14] adds r0, r4, 0 movs r1, 0x2B bl PokemonGetField mov r3, sp ands r0, r6 lsls r0, 4 ldrh r2, [r3, 0x16] ldr r1, _0802E894 ands r1, r2 orrs r1, r0 strh r1, [r3, 0x16] adds r0, r4, 0 movs r1, 0x2C bl PokemonGetField mov r3, sp ands r0, r5 lsls r0, 1 ldrb r2, [r3, 0x17] movs r1, 0x3F negs r1, r1 ands r1, r2 orrs r1, r0 strb r1, [r3, 0x17] adds r0, r4, 0 movs r1, 0 bl PokemonGetField str r0, [sp, 0x48] adds r0, r4, 0 movs r1, 0x37 bl PokemonGetField str r0, [sp, 0x4C] adds r0, r4, 0 movs r1, 0x38 bl PokemonGetField ldr r1, [sp, 0x7C] strb r0, [r1] adds r0, r4, 0 movs r1, 0x39 bl PokemonGetField mov r1, sp strh r0, [r1, 0x28] adds r0, r4, 0 movs r1, 0x3A bl PokemonGetField mov r1, sp strh r0, [r1, 0x2C] adds r0, r4, 0 movs r1, 0x3B bl PokemonGetField mov r1, sp strh r0, [r1, 0x2] adds r0, r4, 0 movs r1, 0x3C bl PokemonGetField mov r1, sp strh r0, [r1, 0x4] adds r0, r4, 0 movs r1, 0x3D bl PokemonGetField mov r1, sp strh r0, [r1, 0x6] adds r0, r4, 0 movs r1, 0x3E bl PokemonGetField mov r1, sp strh r0, [r1, 0x8] adds r0, r4, 0 movs r1, 0x3F bl PokemonGetField mov r1, sp strh r0, [r1, 0xA] adds r0, r4, 0 movs r1, 0x2D bl PokemonGetField mov r3, sp movs r1, 0x1 ands r0, r1 lsls r0, 6 ldrb r2, [r3, 0x17] movs r1, 0x41 negs r1, r1 ands r1, r2 orrs r1, r0 strb r1, [r3, 0x17] adds r0, r4, 0 movs r1, 0x2E bl PokemonGetField mov r3, sp lsls r0, 7 ldrb r2, [r3, 0x17] movs r1, 0x7F ands r1, r2 orrs r1, r0 strb r1, [r3, 0x17] adds r0, r4, 0 movs r1, 0x1 bl PokemonGetField str r0, [sp, 0x54] adds r0, r4, 0 movs r1, 0x2 ldr r2, [sp, 0x8C] bl PokemonGetField ldr r0, [sp, 0x84] ldr r1, [sp, 0x8C] bl StringCopy10 adds r0, r4, 0 movs r1, 0x7 ldr r2, [sp, 0x88] bl PokemonGetField mov r2, sp movs r6, 0 _0802E878: adds r0, r7, r6 adds r1, r2, r6 ldrb r1, [r1] strb r1, [r0] adds r6, 0x1 cmp r6, 0x57 bls _0802E878 b _0802ECDA .align 2, 0 _0802E888: .4byte 0x03004360 _0802E88C: .4byte 0xfffffc1f _0802E890: .4byte 0xfff07fff _0802E894: .4byte 0xfffffe0f _0802E898: movs r0, 0x64 muls r0, r5 ldr r1, _0802E8A4 adds r0, r1 movs r1, 0xB b _0802EC12 .align 2, 0 _0802E8A4: .4byte 0x03004360 _0802E8A8: movs r0, 0x64 muls r0, r5 ldr r1, _0802E8B4 adds r0, r1 movs r1, 0xC b _0802EC12 .align 2, 0 _0802E8B4: .4byte 0x03004360 _0802E8B8: movs r6, 0 add r2, sp, 0x58 mov r9, r2 add r0, sp, 0x60 mov r10, r0 movs r0, 0x64 adds r1, r5, 0 muls r1, r0 ldr r0, _0802E91C adds r4, r1, r0 mov r8, r9 _0802E8CE: adds r1, r6, 0 adds r1, 0xD adds r0, r4, 0 bl PokemonGetField mov r1, r8 strh r0, [r1] adds r1, r6, 0 adds r1, 0x11 adds r0, r4, 0 bl PokemonGetField mov r2, r10 adds r1, r2, r6 strb r0, [r1] movs r0, 0x2 add r8, r0 adds r6, 0x1 cmp r6, 0x3 ble _0802E8CE movs r0, 0x64 muls r0, r5 ldr r1, _0802E91C adds r0, r1 movs r1, 0x15 bl PokemonGetField mov r1, r9 strb r0, [r1, 0xC] mov r2, r9 movs r6, 0 _0802E90C: adds r0, r7, r6 adds r1, r2, r6 ldrb r1, [r1] strb r1, [r0] adds r6, 0x1 cmp r6, 0xF bls _0802E90C b _0802ECDA .align 2, 0 _0802E91C: .4byte 0x03004360 _0802E920: movs r0, 0x64 muls r0, r5 ldr r1, _0802E938 adds r0, r1 ldrb r1, [r3] lsls r1, 9 adds r2, 0x1 adds r1, r2 ldrb r1, [r1] adds r1, 0x9 b _0802EC12 .align 2, 0 _0802E938: .4byte 0x03004360 _0802E93C: movs r6, 0 movs r0, 0x64 adds r4, r5, 0 muls r4, r0 ldr r2, _0802E974 mov r8, r2 _0802E948: adds r1, r6, 0 adds r1, 0x11 mov r2, r8 adds r0, r4, r2 bl PokemonGetField adds r1, r7, r6 strb r0, [r1] adds r6, 0x1 cmp r6, 0x3 ble _0802E948 movs r0, 0x64 muls r0, r5 ldr r1, _0802E974 adds r0, r1 movs r1, 0x15 bl PokemonGetField adds r1, r7, r6 strb r0, [r1] adds r6, 0x1 b _0802ECDA .align 2, 0 _0802E974: .4byte 0x03004360 _0802E978: movs r0, 0x64 muls r0, r5 ldr r1, _0802E990 adds r0, r1 ldrb r1, [r3] lsls r1, 9 adds r2, 0x1 adds r1, r2 ldrb r1, [r1] adds r1, 0x8 b _0802ECD2 .align 2, 0 _0802E990: .4byte 0x03004360 _0802E994: movs r0, 0x64 muls r0, r5 ldr r1, _0802E9A0 adds r0, r1 movs r1, 0x1 b _0802E9AE .align 2, 0 _0802E9A0: .4byte 0x03004360 _0802E9A4: movs r0, 0x64 muls r0, r5 ldr r1, _0802E9D0 adds r0, r1 movs r1, 0x19 _0802E9AE: bl PokemonGetField adds r1, r0, 0 strb r1, [r7] movs r0, 0xFF lsls r0, 8 ands r0, r1 lsrs r0, 8 strb r0, [r7, 0x1] movs r0, 0xFF lsls r0, 16 ands r0, r1 lsrs r0, 16 strb r0, [r7, 0x2] movs r6, 0x3 b _0802ECDA .align 2, 0 _0802E9D0: .4byte 0x03004360 _0802E9D4: movs r0, 0x64 muls r0, r5 ldr r1, _0802E9E0 adds r0, r1 movs r1, 0x1A b _0802ECD2 .align 2, 0 _0802E9E0: .4byte 0x03004360 _0802E9E4: movs r0, 0x64 muls r0, r5 ldr r1, _0802E9F0 adds r0, r1 movs r1, 0x1B b _0802ECD2 .align 2, 0 _0802E9F0: .4byte 0x03004360 _0802E9F4: movs r0, 0x64 muls r0, r5 ldr r1, _0802EA00 adds r0, r1 movs r1, 0x1C b _0802ECD2 .align 2, 0 _0802EA00: .4byte 0x03004360 _0802EA04: movs r0, 0x64 muls r0, r5 ldr r1, _0802EA10 adds r0, r1 movs r1, 0x1D b _0802ECD2 .align 2, 0 _0802EA10: .4byte 0x03004360 _0802EA14: movs r0, 0x64 muls r0, r5 ldr r1, _0802EA20 adds r0, r1 movs r1, 0x1E b _0802ECD2 .align 2, 0 _0802EA20: .4byte 0x03004360 _0802EA24: movs r0, 0x64 muls r0, r5 ldr r1, _0802EA30 adds r0, r1 movs r1, 0x1F b _0802ECD2 .align 2, 0 _0802EA30: .4byte 0x03004360 _0802EA34: movs r0, 0x64 muls r0, r5 ldr r1, _0802EA40 adds r0, r1 movs r1, 0x20 b _0802ECD2 .align 2, 0 _0802EA40: .4byte 0x03004360 _0802EA44: movs r0, 0x64 muls r0, r5 ldr r1, _0802EA50 adds r0, r1 movs r1, 0x22 b _0802ECD2 .align 2, 0 _0802EA50: .4byte 0x03004360 _0802EA54: movs r0, 0x64 muls r0, r5 ldr r1, _0802EA60 adds r0, r1 movs r1, 0x23 b _0802ECD2 .align 2, 0 _0802EA60: .4byte 0x03004360 _0802EA64: movs r0, 0x64 muls r0, r5 ldr r1, _0802EA70 adds r0, r1 movs r1, 0x24 b _0802ECD2 .align 2, 0 _0802EA70: .4byte 0x03004360 _0802EA74: movs r0, 0x64 muls r0, r5 ldr r1, _0802EA80 adds r0, r1 movs r1, 0x25 b _0802ECD2 .align 2, 0 _0802EA80: .4byte 0x03004360 _0802EA84: movs r0, 0x64 muls r0, r5 ldr r1, _0802EA90 adds r0, r1 movs r1, 0x26 b _0802ECD2 .align 2, 0 _0802EA90: .4byte 0x03004360 _0802EA94: movs r0, 0x64 adds r4, r5, 0 muls r4, r0 ldr r0, _0802EAE0 adds r4, r0 adds r0, r4, 0 movs r1, 0x27 bl PokemonGetField strb r0, [r7] adds r0, r4, 0 movs r1, 0x28 bl PokemonGetField strb r0, [r7, 0x1] adds r0, r4, 0 movs r1, 0x29 bl PokemonGetField strb r0, [r7, 0x2] adds r0, r4, 0 movs r1, 0x2A bl PokemonGetField strb r0, [r7, 0x3] adds r0, r4, 0 movs r1, 0x2B bl PokemonGetField strb r0, [r7, 0x4] adds r0, r4, 0 movs r1, 0x2C bl PokemonGetField strb r0, [r7, 0x5] movs r6, 0x6 b _0802ECDA .align 2, 0 _0802EAE0: .4byte 0x03004360 _0802EAE4: movs r0, 0x64 muls r0, r5 ldr r1, _0802EAF0 adds r0, r1 movs r1, 0x27 b _0802ECD2 .align 2, 0 _0802EAF0: .4byte 0x03004360 _0802EAF4: movs r0, 0x64 muls r0, r5 ldr r1, _0802EB00 adds r0, r1 movs r1, 0x28 b _0802ECD2 .align 2, 0 _0802EB00: .4byte 0x03004360 _0802EB04: movs r0, 0x64 muls r0, r5 ldr r1, _0802EB10 adds r0, r1 movs r1, 0x29 b _0802ECD2 .align 2, 0 _0802EB10: .4byte 0x03004360 _0802EB14: movs r0, 0x64 muls r0, r5 ldr r1, _0802EB20 adds r0, r1 movs r1, 0x2A b _0802ECD2 .align 2, 0 _0802EB20: .4byte 0x03004360 _0802EB24: movs r0, 0x64 muls r0, r5 ldr r1, _0802EB30 adds r0, r1 movs r1, 0x2B b _0802ECD2 .align 2, 0 _0802EB30: .4byte 0x03004360 _0802EB34: movs r0, 0x64 muls r0, r5 ldr r1, _0802EB40 adds r0, r1 movs r1, 0x2C b _0802ECD2 .align 2, 0 _0802EB40: .4byte 0x03004360 _0802EB44: movs r0, 0x64 muls r0, r5 ldr r1, _0802EB50 adds r0, r1 movs r1, 0 b _0802EB6E .align 2, 0 _0802EB50: .4byte 0x03004360 _0802EB54: movs r0, 0x64 muls r0, r5 ldr r1, _0802EB60 adds r0, r1 movs r1, 0x9 b _0802EC12 .align 2, 0 _0802EB60: .4byte 0x03004360 _0802EB64: movs r0, 0x64 muls r0, r5 ldr r1, _0802EB94 adds r0, r1 movs r1, 0x37 _0802EB6E: bl PokemonGetField adds r1, r0, 0 strb r1, [r7] movs r0, 0xFF lsls r0, 8 ands r0, r1 lsrs r0, 8 strb r0, [r7, 0x1] movs r0, 0xFF lsls r0, 16 ands r0, r1 lsrs r0, 16 strb r0, [r7, 0x2] lsrs r0, r1, 24 strb r0, [r7, 0x3] movs r6, 0x4 b _0802ECDA .align 2, 0 _0802EB94: .4byte 0x03004360 _0802EB98: movs r0, 0x64 muls r0, r5 ldr r1, _0802EBA4 adds r0, r1 movs r1, 0x38 b _0802ECD2 .align 2, 0 _0802EBA4: .4byte 0x03004360 _0802EBA8: movs r0, 0x64 muls r0, r5 ldr r1, _0802EBB4 adds r0, r1 movs r1, 0x39 b _0802EC12 .align 2, 0 _0802EBB4: .4byte 0x03004360 _0802EBB8: movs r0, 0x64 muls r0, r5 ldr r1, _0802EBC4 adds r0, r1 movs r1, 0x3A b _0802EC12 .align 2, 0 _0802EBC4: .4byte 0x03004360 _0802EBC8: movs r0, 0x64 muls r0, r5 ldr r1, _0802EBD4 adds r0, r1 movs r1, 0x3B b _0802EC12 .align 2, 0 _0802EBD4: .4byte 0x03004360 _0802EBD8: movs r0, 0x64 muls r0, r5 ldr r1, _0802EBE4 adds r0, r1 movs r1, 0x3C b _0802EC12 .align 2, 0 _0802EBE4: .4byte 0x03004360 _0802EBE8: movs r0, 0x64 muls r0, r5 ldr r1, _0802EBF4 adds r0, r1 movs r1, 0x3D b _0802EC12 .align 2, 0 _0802EBF4: .4byte 0x03004360 _0802EBF8: movs r0, 0x64 muls r0, r5 ldr r1, _0802EC04 adds r0, r1 movs r1, 0x3E b _0802EC12 .align 2, 0 _0802EC04: .4byte 0x03004360 _0802EC08: movs r0, 0x64 muls r0, r5 ldr r1, _0802EC24 adds r0, r1 movs r1, 0x3F _0802EC12: bl PokemonGetField lsls r0, 16 lsrs r0, 16 strb r0, [r7] lsrs r0, 8 strb r0, [r7, 0x1] movs r6, 0x2 b _0802ECDA .align 2, 0 _0802EC24: .4byte 0x03004360 _0802EC28: movs r0, 0x64 muls r0, r5 ldr r1, _0802EC34 adds r0, r1 movs r1, 0x16 b _0802ECD2 .align 2, 0 _0802EC34: .4byte 0x03004360 _0802EC38: movs r0, 0x64 muls r0, r5 ldr r1, _0802EC44 adds r0, r1 movs r1, 0x17 b _0802ECD2 .align 2, 0 _0802EC44: .4byte 0x03004360 _0802EC48: movs r0, 0x64 muls r0, r5 ldr r1, _0802EC54 adds r0, r1 movs r1, 0x18 b _0802ECD2 .align 2, 0 _0802EC54: .4byte 0x03004360 _0802EC58: movs r0, 0x64 muls r0, r5 ldr r1, _0802EC64 adds r0, r1 movs r1, 0x21 b _0802ECD2 .align 2, 0 _0802EC64: .4byte 0x03004360 _0802EC68: movs r0, 0x64 muls r0, r5 ldr r1, _0802EC74 adds r0, r1 movs r1, 0x2F b _0802ECD2 .align 2, 0 _0802EC74: .4byte 0x03004360 _0802EC78: movs r0, 0x64 muls r0, r5 ldr r1, _0802EC84 adds r0, r1 movs r1, 0x30 b _0802ECD2 .align 2, 0 _0802EC84: .4byte 0x03004360 _0802EC88: movs r0, 0x64 muls r0, r5 ldr r1, _0802EC94 adds r0, r1 movs r1, 0x32 b _0802ECD2 .align 2, 0 _0802EC94: .4byte 0x03004360 _0802EC98: movs r0, 0x64 muls r0, r5 ldr r1, _0802ECA4 adds r0, r1 movs r1, 0x33 b _0802ECD2 .align 2, 0 _0802ECA4: .4byte 0x03004360 _0802ECA8: movs r0, 0x64 muls r0, r5 ldr r1, _0802ECB4 adds r0, r1 movs r1, 0x34 b _0802ECD2 .align 2, 0 _0802ECB4: .4byte 0x03004360 _0802ECB8: movs r0, 0x64 muls r0, r5 ldr r1, _0802ECC4 adds r0, r1 movs r1, 0x35 b _0802ECD2 .align 2, 0 _0802ECC4: .4byte 0x03004360 _0802ECC8: movs r0, 0x64 muls r0, r5 ldr r1, _0802ECEC adds r0, r1 movs r1, 0x36 _0802ECD2: bl PokemonGetField strb r0, [r7] movs r6, 0x1 _0802ECDA: adds r0, r6, 0 add sp, 0x90 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0802ECEC: .4byte 0x03004360 thumb_func_end dp01_getattr_by_ch1_for_player_pokemon_ thumb_func_start sub_802ECF0 sub_802ECF0: @ 802ECF0 push {r4-r7,lr} sub sp, 0x58 ldr r2, _0802ED68 ldr r5, _0802ED6C ldrb r1, [r5] lsls r0, r1, 1 adds r0, r2 ldrh r2, [r0] movs r0, 0x64 adds r4, r2, 0 muls r4, r0 ldr r3, _0802ED70 lsls r1, 9 adds r0, r3, 0x1 adds r0, r1, r0 ldrb r2, [r0] ldr r0, _0802ED74 adds r0, r2, r0 adds r6, r4, r0 mov r0, sp adds r4, r0, r2 movs r2, 0 adds r0, r3, 0x2 adds r1, r0 adds r7, r5, 0 mov r12, r3 ldrb r1, [r1] cmp r2, r1 bcs _0802ED46 adds r3, r0, 0 _0802ED2C: adds r1, r4, r2 adds r0, r6, r2 ldrb r0, [r0] strb r0, [r1] adds r0, r2, 0x1 lsls r0, 24 lsrs r2, r0, 24 ldrb r0, [r5] lsls r0, 9 adds r0, r3 ldrb r0, [r0] cmp r2, r0 bcc _0802ED2C _0802ED46: ldrb r0, [r7] lsls r0, 9 mov r1, r12 adds r1, 0x2 adds r0, r1 ldrb r1, [r0] movs r0, 0x1 adds r2, r4, 0 bl dp01_build_cmdbuf_x1D_1D_numargs_varargs bl dp01_tbl1_exec_completed add sp, 0x58 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0802ED68: .4byte 0x02024a6a _0802ED6C: .4byte 0x02024a60 _0802ED70: .4byte 0x02023a60 _0802ED74: .4byte 0x03004360 thumb_func_end sub_802ECF0 thumb_func_start dp01t_02_1_setattr dp01t_02_1_setattr: @ 802ED78 push {r4,r5,lr} ldr r1, _0802ED9C ldr r0, _0802EDA0 ldrb r2, [r0] lsls r0, r2, 9 adds r1, 0x2 adds r1, r0, r1 ldrb r0, [r1] cmp r0, 0 bne _0802EDA8 ldr r0, _0802EDA4 lsls r1, r2, 1 adds r1, r0 ldrb r0, [r1] bl dp01_setattr_by_ch1_for_player_pokemon b _0802EDC6 .align 2, 0 _0802ED9C: .4byte 0x02023a60 _0802EDA0: .4byte 0x02024a60 _0802EDA4: .4byte 0x02024a6a _0802EDA8: ldrb r4, [r1] movs r5, 0 _0802EDAC: movs r0, 0x1 ands r0, r4 cmp r0, 0 beq _0802EDBA adds r0, r5, 0 bl dp01_setattr_by_ch1_for_player_pokemon _0802EDBA: lsrs r4, 1 adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0x5 bls _0802EDAC _0802EDC6: bl dp01_tbl1_exec_completed pop {r4,r5} pop {r0} bx r0 thumb_func_end dp01t_02_1_setattr thumb_func_start dp01_setattr_by_ch1_for_player_pokemon dp01_setattr_by_ch1_for_player_pokemon: @ 802EDD0 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x34 lsls r0, 24 lsrs r5, r0, 24 ldr r0, _0802EE08 ldrb r0, [r0] lsls r0, 9 ldr r2, _0802EE0C adds r3, r0, r2 adds r6, r3, 0 subs r1, r2, 0x2 adds r0, r1 ldrb r0, [r0] adds r7, r2, 0 cmp r0, 0x3B bls _0802EDFC bl _0802F796 _0802EDFC: lsls r0, 2 ldr r1, _0802EE10 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0802EE08: .4byte 0x02024a60 _0802EE0C: .4byte 0x02023a63 _0802EE10: .4byte _0802EE14 .align 2, 0 _0802EE14: .4byte _0802EF04 .4byte _0802F09C .4byte _0802F0BC .4byte _0802F0DC .4byte _0802F134 .4byte _0802F134 .4byte _0802F134 .4byte _0802F134 .4byte _0802F15C .4byte _0802F1C0 .4byte _0802F1C0 .4byte _0802F1C0 .4byte _0802F1C0 .4byte _0802F796 .4byte _0802F796 .4byte _0802F796 .4byte _0802F796 .4byte _0802F1F0 .4byte _0802F210 .4byte _0802F230 .4byte _0802F250 .4byte _0802F270 .4byte _0802F290 .4byte _0802F2B0 .4byte _0802F2D0 .4byte _0802F2F0 .4byte _0802F310 .4byte _0802F330 .4byte _0802F350 .4byte _0802F370 .4byte _0802F390 .4byte _0802F3B0 .4byte _0802F420 .4byte _0802F440 .4byte _0802F460 .4byte _0802F480 .4byte _0802F4A0 .4byte _0802F4C0 .4byte _0802F4E0 .4byte _0802F500 .4byte _0802F520 .4byte _0802F540 .4byte _0802F560 .4byte _0802F580 .4byte _0802F5A0 .4byte _0802F5C0 .4byte _0802F5E0 .4byte _0802F600 .4byte _0802F620 .4byte _0802F640 .4byte _0802F660 .4byte _0802F680 .4byte _0802F6A0 .4byte _0802F6C0 .4byte _0802F6E0 .4byte _0802F700 .4byte _0802F720 .4byte _0802F740 .4byte _0802F760 .4byte _0802F780 _0802EF04: movs r0, 0x64 adds r4, r5, 0 muls r4, r0 ldr r0, _0802F098 adds r4, r0 adds r0, r4, 0 movs r1, 0xB adds r2, r6, 0 bl pokemon_setattr adds r2, r6, 0 adds r2, 0x2E adds r0, r4, 0 movs r1, 0xC bl pokemon_setattr movs r0, 0 mov r8, r0 movs r0, 0x3B adds r0, r6 mov r10, r0 adds r0, r6, 0 adds r0, 0x2B str r0, [sp, 0x20] adds r0, 0x19 str r0, [sp, 0x28] adds r0, 0x4 str r0, [sp, 0x2C] adds r0, 0x4 str r0, [sp, 0x30] subs r0, 0x22 str r0, [sp, 0x1C] subs r0, 0x2 str r0, [sp, 0x18] adds r0, 0x4 str r0, [sp, 0x24] adds r0, r6, 0x2 str r0, [sp, 0x4] adds r0, r6, 0x4 str r0, [sp, 0x8] adds r0, r6, 0x6 str r0, [sp, 0xC] adds r0, 0x2 str r0, [sp, 0x10] adds r0, 0x2 str r0, [sp, 0x14] mov r9, r4 adds r7, r6, 0 adds r7, 0x24 adds r4, r6, 0 adds r4, 0xC _0802EF6A: mov r1, r8 adds r1, 0xD mov r0, r9 adds r2, r4, 0 bl pokemon_setattr mov r1, r8 adds r1, 0x11 mov r0, r9 adds r2, r7, 0 bl pokemon_setattr adds r7, 0x1 adds r4, 0x2 movs r0, 0x1 add r8, r0 mov r0, r8 cmp r0, 0x3 ble _0802EF6A movs r0, 0x64 adds r4, r5, 0 muls r4, r0 ldr r0, _0802F098 adds r4, r0 adds r0, r4, 0 movs r1, 0x15 mov r2, r10 bl pokemon_setattr adds r0, r4, 0 movs r1, 0x20 ldr r2, [sp, 0x20] bl pokemon_setattr adds r0, r4, 0 movs r1, 0x19 ldr r2, [sp, 0x28] bl pokemon_setattr ldrb r0, [r6, 0x14] lsls r0, 27 lsrs r0, 27 mov r1, sp strb r0, [r1] adds r0, r4, 0 movs r1, 0x27 mov r2, sp bl pokemon_setattr mov r1, sp ldrh r0, [r6, 0x14] lsls r0, 22 lsrs r0, 27 strb r0, [r1] adds r0, r4, 0 movs r1, 0x28 mov r2, sp bl pokemon_setattr mov r1, sp ldrb r0, [r6, 0x15] lsls r0, 25 lsrs r0, 27 strb r0, [r1] adds r0, r4, 0 movs r1, 0x29 mov r2, sp bl pokemon_setattr mov r1, sp ldr r0, [r6, 0x14] lsls r0, 12 lsrs r0, 27 strb r0, [r1] adds r0, r4, 0 movs r1, 0x2A mov r2, sp bl pokemon_setattr mov r1, sp ldrh r0, [r6, 0x16] lsls r0, 23 lsrs r0, 27 strb r0, [r1] adds r0, r4, 0 movs r1, 0x2B mov r2, sp bl pokemon_setattr mov r1, sp ldrb r0, [r6, 0x17] lsls r0, 26 lsrs r0, 27 strb r0, [r1] adds r0, r4, 0 movs r1, 0x2C mov r2, sp bl pokemon_setattr adds r0, r4, 0 movs r1, 0 ldr r2, [sp, 0x2C] bl pokemon_setattr adds r0, r4, 0 movs r1, 0x37 ldr r2, [sp, 0x30] bl pokemon_setattr adds r0, r4, 0 movs r1, 0x38 ldr r2, [sp, 0x1C] bl pokemon_setattr adds r0, r4, 0 movs r1, 0x39 ldr r2, [sp, 0x18] bl pokemon_setattr adds r0, r4, 0 movs r1, 0x3A ldr r2, [sp, 0x24] bl pokemon_setattr adds r0, r4, 0 movs r1, 0x3B ldr r2, [sp, 0x4] bl pokemon_setattr adds r0, r4, 0 movs r1, 0x3C ldr r2, [sp, 0x8] bl pokemon_setattr adds r0, r4, 0 movs r1, 0x3D ldr r2, [sp, 0xC] bl pokemon_setattr adds r0, r4, 0 movs r1, 0x3E ldr r2, [sp, 0x10] bl pokemon_setattr adds r0, r4, 0 movs r1, 0x3F ldr r2, [sp, 0x14] bl pokemon_setattr b _0802F796 .align 2, 0 _0802F098: .4byte 0x03004360 _0802F09C: movs r0, 0x64 muls r0, r5 ldr r1, _0802F0B4 adds r0, r1 ldr r1, _0802F0B8 ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0xB bl pokemon_setattr b _0802F796 .align 2, 0 _0802F0B4: .4byte 0x03004360 _0802F0B8: .4byte 0x02024a60 _0802F0BC: movs r0, 0x64 muls r0, r5 ldr r1, _0802F0D4 adds r0, r1 ldr r1, _0802F0D8 ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0xC bl pokemon_setattr b _0802F796 .align 2, 0 _0802F0D4: .4byte 0x03004360 _0802F0D8: .4byte 0x02024a60 _0802F0DC: movs r0, 0 mov r8, r0 movs r0, 0xC adds r0, r3 mov r9, r0 movs r0, 0x64 adds r1, r5, 0 muls r1, r0 ldr r0, _0802F130 adds r7, r1, r0 adds r6, r3, 0 adds r6, 0x8 adds r4, r3, 0 _0802F0F6: mov r1, r8 adds r1, 0xD adds r0, r7, 0 adds r2, r4, 0 bl pokemon_setattr mov r1, r8 adds r1, 0x11 adds r0, r7, 0 adds r2, r6, 0 bl pokemon_setattr adds r6, 0x1 adds r4, 0x2 movs r0, 0x1 add r8, r0 mov r0, r8 cmp r0, 0x3 ble _0802F0F6 movs r0, 0x64 muls r0, r5 ldr r1, _0802F130 adds r0, r1 movs r1, 0x15 mov r2, r9 bl pokemon_setattr b _0802F796 .align 2, 0 _0802F130: .4byte 0x03004360 _0802F134: movs r0, 0x64 muls r0, r5 ldr r1, _0802F150 adds r0, r1 ldr r3, _0802F154 ldr r1, _0802F158 ldrb r2, [r1] lsls r2, 9 adds r1, r3, 0x1 adds r1, r2, r1 ldrb r1, [r1] adds r1, 0x9 b _0802F1D8 .align 2, 0 _0802F150: .4byte 0x03004360 _0802F154: .4byte 0x02023a60 _0802F158: .4byte 0x02024a60 _0802F15C: movs r0, 0x64 adds r4, r5, 0 muls r4, r0 ldr r0, _0802F1B8 adds r4, r0 ldr r5, _0802F1BC ldrb r2, [r5] lsls r2, 9 adds r2, r7 adds r0, r4, 0 movs r1, 0x11 bl pokemon_setattr ldrb r2, [r5] lsls r2, 9 adds r0, r7, 0x1 adds r2, r0 adds r0, r4, 0 movs r1, 0x12 bl pokemon_setattr ldrb r2, [r5] lsls r2, 9 adds r0, r7, 0x2 adds r2, r0 adds r0, r4, 0 movs r1, 0x13 bl pokemon_setattr ldrb r2, [r5] lsls r2, 9 adds r0, r7, 0x3 adds r2, r0 adds r0, r4, 0 movs r1, 0x14 bl pokemon_setattr ldrb r2, [r5] lsls r2, 9 adds r0, r7, 0x4 adds r2, r0 adds r0, r4, 0 movs r1, 0x15 bl pokemon_setattr b _0802F796 .align 2, 0 _0802F1B8: .4byte 0x03004360 _0802F1BC: .4byte 0x02024a60 _0802F1C0: movs r0, 0x64 muls r0, r5 ldr r1, _0802F1E4 adds r0, r1 ldr r3, _0802F1E8 ldr r1, _0802F1EC ldrb r2, [r1] lsls r2, 9 adds r1, r3, 0x1 adds r1, r2, r1 ldrb r1, [r1] adds r1, 0x8 _0802F1D8: adds r3, 0x3 adds r2, r3 bl pokemon_setattr b _0802F796 .align 2, 0 _0802F1E4: .4byte 0x03004360 _0802F1E8: .4byte 0x02023a60 _0802F1EC: .4byte 0x02024a60 _0802F1F0: movs r0, 0x64 muls r0, r5 ldr r1, _0802F208 adds r0, r1 ldr r1, _0802F20C ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x1 bl pokemon_setattr b _0802F796 .align 2, 0 _0802F208: .4byte 0x03004360 _0802F20C: .4byte 0x02024a60 _0802F210: movs r0, 0x64 muls r0, r5 ldr r1, _0802F228 adds r0, r1 ldr r1, _0802F22C ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x19 bl pokemon_setattr b _0802F796 .align 2, 0 _0802F228: .4byte 0x03004360 _0802F22C: .4byte 0x02024a60 _0802F230: movs r0, 0x64 muls r0, r5 ldr r1, _0802F248 adds r0, r1 ldr r1, _0802F24C ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x1A bl pokemon_setattr b _0802F796 .align 2, 0 _0802F248: .4byte 0x03004360 _0802F24C: .4byte 0x02024a60 _0802F250: movs r0, 0x64 muls r0, r5 ldr r1, _0802F268 adds r0, r1 ldr r1, _0802F26C ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x1B bl pokemon_setattr b _0802F796 .align 2, 0 _0802F268: .4byte 0x03004360 _0802F26C: .4byte 0x02024a60 _0802F270: movs r0, 0x64 muls r0, r5 ldr r1, _0802F288 adds r0, r1 ldr r1, _0802F28C ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x1C bl pokemon_setattr b _0802F796 .align 2, 0 _0802F288: .4byte 0x03004360 _0802F28C: .4byte 0x02024a60 _0802F290: movs r0, 0x64 muls r0, r5 ldr r1, _0802F2A8 adds r0, r1 ldr r1, _0802F2AC ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x1D bl pokemon_setattr b _0802F796 .align 2, 0 _0802F2A8: .4byte 0x03004360 _0802F2AC: .4byte 0x02024a60 _0802F2B0: movs r0, 0x64 muls r0, r5 ldr r1, _0802F2C8 adds r0, r1 ldr r1, _0802F2CC ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x1E bl pokemon_setattr b _0802F796 .align 2, 0 _0802F2C8: .4byte 0x03004360 _0802F2CC: .4byte 0x02024a60 _0802F2D0: movs r0, 0x64 muls r0, r5 ldr r1, _0802F2E8 adds r0, r1 ldr r1, _0802F2EC ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x1F bl pokemon_setattr b _0802F796 .align 2, 0 _0802F2E8: .4byte 0x03004360 _0802F2EC: .4byte 0x02024a60 _0802F2F0: movs r0, 0x64 muls r0, r5 ldr r1, _0802F308 adds r0, r1 ldr r1, _0802F30C ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x20 bl pokemon_setattr b _0802F796 .align 2, 0 _0802F308: .4byte 0x03004360 _0802F30C: .4byte 0x02024a60 _0802F310: movs r0, 0x64 muls r0, r5 ldr r1, _0802F328 adds r0, r1 ldr r1, _0802F32C ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x22 bl pokemon_setattr b _0802F796 .align 2, 0 _0802F328: .4byte 0x03004360 _0802F32C: .4byte 0x02024a60 _0802F330: movs r0, 0x64 muls r0, r5 ldr r1, _0802F348 adds r0, r1 ldr r1, _0802F34C ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x23 bl pokemon_setattr b _0802F796 .align 2, 0 _0802F348: .4byte 0x03004360 _0802F34C: .4byte 0x02024a60 _0802F350: movs r0, 0x64 muls r0, r5 ldr r1, _0802F368 adds r0, r1 ldr r1, _0802F36C ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x24 bl pokemon_setattr b _0802F796 .align 2, 0 _0802F368: .4byte 0x03004360 _0802F36C: .4byte 0x02024a60 _0802F370: movs r0, 0x64 muls r0, r5 ldr r1, _0802F388 adds r0, r1 ldr r1, _0802F38C ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x25 bl pokemon_setattr b _0802F796 .align 2, 0 _0802F388: .4byte 0x03004360 _0802F38C: .4byte 0x02024a60 _0802F390: movs r0, 0x64 muls r0, r5 ldr r1, _0802F3A8 adds r0, r1 ldr r1, _0802F3AC ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x26 bl pokemon_setattr b _0802F796 .align 2, 0 _0802F3A8: .4byte 0x03004360 _0802F3AC: .4byte 0x02024a60 _0802F3B0: movs r0, 0x64 adds r4, r5, 0 muls r4, r0 ldr r0, _0802F418 adds r4, r0 ldr r5, _0802F41C ldrb r2, [r5] lsls r2, 9 adds r2, r7 adds r0, r4, 0 movs r1, 0x27 bl pokemon_setattr ldrb r2, [r5] lsls r2, 9 adds r0, r7, 0x1 adds r2, r0 adds r0, r4, 0 movs r1, 0x28 bl pokemon_setattr ldrb r2, [r5] lsls r2, 9 adds r0, r7, 0x2 adds r2, r0 adds r0, r4, 0 movs r1, 0x29 bl pokemon_setattr ldrb r2, [r5] lsls r2, 9 adds r0, r7, 0x3 adds r2, r0 adds r0, r4, 0 movs r1, 0x2A bl pokemon_setattr ldrb r2, [r5] lsls r2, 9 adds r0, r7, 0x4 adds r2, r0 adds r0, r4, 0 movs r1, 0x2B bl pokemon_setattr ldrb r2, [r5] lsls r2, 9 adds r0, r7, 0x5 adds r2, r0 adds r0, r4, 0 b _0802F4D0 .align 2, 0 _0802F418: .4byte 0x03004360 _0802F41C: .4byte 0x02024a60 _0802F420: movs r0, 0x64 muls r0, r5 ldr r1, _0802F438 adds r0, r1 ldr r1, _0802F43C ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x27 bl pokemon_setattr b _0802F796 .align 2, 0 _0802F438: .4byte 0x03004360 _0802F43C: .4byte 0x02024a60 _0802F440: movs r0, 0x64 muls r0, r5 ldr r1, _0802F458 adds r0, r1 ldr r1, _0802F45C ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x28 bl pokemon_setattr b _0802F796 .align 2, 0 _0802F458: .4byte 0x03004360 _0802F45C: .4byte 0x02024a60 _0802F460: movs r0, 0x64 muls r0, r5 ldr r1, _0802F478 adds r0, r1 ldr r1, _0802F47C ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x29 bl pokemon_setattr b _0802F796 .align 2, 0 _0802F478: .4byte 0x03004360 _0802F47C: .4byte 0x02024a60 _0802F480: movs r0, 0x64 muls r0, r5 ldr r1, _0802F498 adds r0, r1 ldr r1, _0802F49C ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x2A bl pokemon_setattr b _0802F796 .align 2, 0 _0802F498: .4byte 0x03004360 _0802F49C: .4byte 0x02024a60 _0802F4A0: movs r0, 0x64 muls r0, r5 ldr r1, _0802F4B8 adds r0, r1 ldr r1, _0802F4BC ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x2B bl pokemon_setattr b _0802F796 .align 2, 0 _0802F4B8: .4byte 0x03004360 _0802F4BC: .4byte 0x02024a60 _0802F4C0: movs r0, 0x64 muls r0, r5 ldr r1, _0802F4D8 adds r0, r1 ldr r1, _0802F4DC ldrb r2, [r1] lsls r2, 9 adds r2, r7 _0802F4D0: movs r1, 0x2C bl pokemon_setattr b _0802F796 .align 2, 0 _0802F4D8: .4byte 0x03004360 _0802F4DC: .4byte 0x02024a60 _0802F4E0: movs r0, 0x64 muls r0, r5 ldr r1, _0802F4F8 adds r0, r1 ldr r1, _0802F4FC ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0 bl pokemon_setattr b _0802F796 .align 2, 0 _0802F4F8: .4byte 0x03004360 _0802F4FC: .4byte 0x02024a60 _0802F500: movs r0, 0x64 muls r0, r5 ldr r1, _0802F518 adds r0, r1 ldr r1, _0802F51C ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x9 bl pokemon_setattr b _0802F796 .align 2, 0 _0802F518: .4byte 0x03004360 _0802F51C: .4byte 0x02024a60 _0802F520: movs r0, 0x64 muls r0, r5 ldr r1, _0802F538 adds r0, r1 ldr r1, _0802F53C ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x37 bl pokemon_setattr b _0802F796 .align 2, 0 _0802F538: .4byte 0x03004360 _0802F53C: .4byte 0x02024a60 _0802F540: movs r0, 0x64 muls r0, r5 ldr r1, _0802F558 adds r0, r1 ldr r1, _0802F55C ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x38 bl pokemon_setattr b _0802F796 .align 2, 0 _0802F558: .4byte 0x03004360 _0802F55C: .4byte 0x02024a60 _0802F560: movs r0, 0x64 muls r0, r5 ldr r1, _0802F578 adds r0, r1 ldr r1, _0802F57C ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x39 bl pokemon_setattr b _0802F796 .align 2, 0 _0802F578: .4byte 0x03004360 _0802F57C: .4byte 0x02024a60 _0802F580: movs r0, 0x64 muls r0, r5 ldr r1, _0802F598 adds r0, r1 ldr r1, _0802F59C ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x3A bl pokemon_setattr b _0802F796 .align 2, 0 _0802F598: .4byte 0x03004360 _0802F59C: .4byte 0x02024a60 _0802F5A0: movs r0, 0x64 muls r0, r5 ldr r1, _0802F5B8 adds r0, r1 ldr r1, _0802F5BC ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x3B bl pokemon_setattr b _0802F796 .align 2, 0 _0802F5B8: .4byte 0x03004360 _0802F5BC: .4byte 0x02024a60 _0802F5C0: movs r0, 0x64 muls r0, r5 ldr r1, _0802F5D8 adds r0, r1 ldr r1, _0802F5DC ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x3C bl pokemon_setattr b _0802F796 .align 2, 0 _0802F5D8: .4byte 0x03004360 _0802F5DC: .4byte 0x02024a60 _0802F5E0: movs r0, 0x64 muls r0, r5 ldr r1, _0802F5F8 adds r0, r1 ldr r1, _0802F5FC ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x3D bl pokemon_setattr b _0802F796 .align 2, 0 _0802F5F8: .4byte 0x03004360 _0802F5FC: .4byte 0x02024a60 _0802F600: movs r0, 0x64 muls r0, r5 ldr r1, _0802F618 adds r0, r1 ldr r1, _0802F61C ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x3E bl pokemon_setattr b _0802F796 .align 2, 0 _0802F618: .4byte 0x03004360 _0802F61C: .4byte 0x02024a60 _0802F620: movs r0, 0x64 muls r0, r5 ldr r1, _0802F638 adds r0, r1 ldr r1, _0802F63C ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x3F bl pokemon_setattr b _0802F796 .align 2, 0 _0802F638: .4byte 0x03004360 _0802F63C: .4byte 0x02024a60 _0802F640: movs r0, 0x64 muls r0, r5 ldr r1, _0802F658 adds r0, r1 ldr r1, _0802F65C ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x16 bl pokemon_setattr b _0802F796 .align 2, 0 _0802F658: .4byte 0x03004360 _0802F65C: .4byte 0x02024a60 _0802F660: movs r0, 0x64 muls r0, r5 ldr r1, _0802F678 adds r0, r1 ldr r1, _0802F67C ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x17 bl pokemon_setattr b _0802F796 .align 2, 0 _0802F678: .4byte 0x03004360 _0802F67C: .4byte 0x02024a60 _0802F680: movs r0, 0x64 muls r0, r5 ldr r1, _0802F698 adds r0, r1 ldr r1, _0802F69C ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x18 bl pokemon_setattr b _0802F796 .align 2, 0 _0802F698: .4byte 0x03004360 _0802F69C: .4byte 0x02024a60 _0802F6A0: movs r0, 0x64 muls r0, r5 ldr r1, _0802F6B8 adds r0, r1 ldr r1, _0802F6BC ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x21 bl pokemon_setattr b _0802F796 .align 2, 0 _0802F6B8: .4byte 0x03004360 _0802F6BC: .4byte 0x02024a60 _0802F6C0: movs r0, 0x64 muls r0, r5 ldr r1, _0802F6D8 adds r0, r1 ldr r1, _0802F6DC ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x2F bl pokemon_setattr b _0802F796 .align 2, 0 _0802F6D8: .4byte 0x03004360 _0802F6DC: .4byte 0x02024a60 _0802F6E0: movs r0, 0x64 muls r0, r5 ldr r1, _0802F6F8 adds r0, r1 ldr r1, _0802F6FC ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x30 bl pokemon_setattr b _0802F796 .align 2, 0 _0802F6F8: .4byte 0x03004360 _0802F6FC: .4byte 0x02024a60 _0802F700: movs r0, 0x64 muls r0, r5 ldr r1, _0802F718 adds r0, r1 ldr r1, _0802F71C ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x32 bl pokemon_setattr b _0802F796 .align 2, 0 _0802F718: .4byte 0x03004360 _0802F71C: .4byte 0x02024a60 _0802F720: movs r0, 0x64 muls r0, r5 ldr r1, _0802F738 adds r0, r1 ldr r1, _0802F73C ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x33 bl pokemon_setattr b _0802F796 .align 2, 0 _0802F738: .4byte 0x03004360 _0802F73C: .4byte 0x02024a60 _0802F740: movs r0, 0x64 muls r0, r5 ldr r1, _0802F758 adds r0, r1 ldr r1, _0802F75C ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x34 bl pokemon_setattr b _0802F796 .align 2, 0 _0802F758: .4byte 0x03004360 _0802F75C: .4byte 0x02024a60 _0802F760: movs r0, 0x64 muls r0, r5 ldr r1, _0802F778 adds r0, r1 ldr r1, _0802F77C ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x35 bl pokemon_setattr b _0802F796 .align 2, 0 _0802F778: .4byte 0x03004360 _0802F77C: .4byte 0x02024a60 _0802F780: movs r0, 0x64 muls r0, r5 ldr r1, _0802F7C0 adds r0, r1 ldr r1, _0802F7C4 ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x36 bl pokemon_setattr _0802F796: ldr r2, _0802F7C8 ldr r0, _0802F7C4 ldrb r1, [r0] lsls r0, r1, 1 adds r0, r2 ldrh r2, [r0] movs r0, 0x64 muls r0, r2 ldr r2, _0802F7C0 adds r0, r2 bl sub_80324F8 add sp, 0x34 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0802F7C0: .4byte 0x03004360 _0802F7C4: .4byte 0x02024a60 _0802F7C8: .4byte 0x02024a6a thumb_func_end dp01_setattr_by_ch1_for_player_pokemon thumb_func_start sub_802F7CC sub_802F7CC: @ 802F7CC push {r4-r7,lr} ldr r1, _0802F830 ldr r7, _0802F834 ldrb r2, [r7] lsls r0, r2, 1 adds r0, r1 ldrh r1, [r0] movs r0, 0x64 adds r3, r1, 0 muls r3, r0 ldr r4, _0802F838 lsls r2, 9 adds r0, r4, 0x1 adds r0, r2, r0 ldrb r0, [r0] ldr r1, _0802F83C adds r0, r1 adds r5, r3, r0 movs r3, 0 adds r0, r4, 0x2 adds r2, r0 ldrb r2, [r2] cmp r3, r2 bcs _0802F824 adds r6, r4, 0 adds r2, r7, 0 adds r4, r0, 0 _0802F802: adds r1, r5, r3 ldrb r0, [r2] lsls r0, 9 adds r0, 0x3 adds r0, r3, r0 adds r0, r6 ldrb r0, [r0] strb r0, [r1] adds r0, r3, 0x1 lsls r0, 24 lsrs r3, r0, 24 ldrb r0, [r2] lsls r0, 9 adds r0, r4 ldrb r0, [r0] cmp r3, r0 bcc _0802F802 _0802F824: bl dp01_tbl1_exec_completed pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0802F830: .4byte 0x02024a6a _0802F834: .4byte 0x02024a60 _0802F838: .4byte 0x02023a60 _0802F83C: .4byte 0x03004360 thumb_func_end sub_802F7CC thumb_func_start sub_802F840 sub_802F840: @ 802F840 push {r4,lr} ldr r2, _0802F88C ldr r4, _0802F890 ldrb r1, [r4] lsls r0, r1, 1 adds r0, r2 ldrh r2, [r0] movs r0, 0x64 muls r0, r2 ldr r2, _0802F894 adds r0, r2 bl sub_80318FC ldr r2, _0802F898 ldr r0, _0802F89C ldrb r3, [r4] adds r0, r3, r0 ldrb r0, [r0] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r2 lsls r3, 4 ldrb r2, [r1, 0x5] movs r0, 0xF ands r0, r2 orrs r0, r3 strb r0, [r1, 0x5] ldr r1, _0802F8A0 ldrb r0, [r4] lsls r0, 2 adds r0, r1 ldr r1, _0802F8A4 str r1, [r0] pop {r4} pop {r0} bx r0 .align 2, 0 _0802F88C: .4byte 0x02024a6a _0802F890: .4byte 0x02024a60 _0802F894: .4byte 0x03004360 _0802F898: .4byte 0x02020004 _0802F89C: .4byte 0x02024be0 _0802F8A0: .4byte 0x03004330 _0802F8A4: .4byte bx_0802E404 thumb_func_end sub_802F840 thumb_func_start sub_802F8A8 sub_802F8A8: @ 802F8A8 push {r4-r6,lr} ldr r5, _0802F914 ldrb r0, [r5] ldr r4, _0802F918 lsls r1, r0, 9 adds r6, r4, 0x2 adds r1, r6 ldrb r1, [r1] bl sub_8032AA8 ldr r2, _0802F91C ldrb r0, [r5] lsls r1, r0, 1 adds r1, r2 lsls r0, 9 adds r4, 0x1 adds r0, r4 ldrb r0, [r0] movs r4, 0 strh r0, [r1] ldrb r1, [r5] lsls r0, r1, 1 adds r0, r2 ldrh r2, [r0] movs r0, 0x64 muls r0, r2 ldr r2, _0802F920 adds r0, r2 bl sub_80318FC ldr r1, _0802F924 ldrb r0, [r5] adds r0, r1 strb r4, [r0] ldr r1, _0802F928 ldrb r0, [r5] adds r0, r1 strb r4, [r0] ldrb r0, [r5] lsls r1, r0, 9 adds r1, r6 ldrb r1, [r1] bl sub_802F934 ldr r1, _0802F92C ldrb r0, [r5] lsls r0, 2 adds r0, r1 ldr r1, _0802F930 str r1, [r0] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0802F914: .4byte 0x02024a60 _0802F918: .4byte 0x02023a60 _0802F91C: .4byte 0x02024a6a _0802F920: .4byte 0x03004360 _0802F924: .4byte 0x02024e60 _0802F928: .4byte 0x02024e64 _0802F92C: .4byte 0x03004330 _0802F930: .4byte sub_802D798 thumb_func_end sub_802F8A8 thumb_func_start sub_802F934 sub_802F934: @ 802F934 push {r4-r6,lr} mov r6, r10 mov r5, r9 mov r4, r8 push {r4-r6} adds r6, r0, 0 lsls r6, 24 lsrs r6, 24 lsls r1, 24 lsrs r1, 24 adds r0, r6, 0 bl sub_8032AA8 ldr r0, _0802FA78 lsls r2, r6, 1 adds r2, r0 ldr r0, _0802FA7C lsls r1, r6, 9 adds r0, 0x1 adds r1, r0 ldrb r0, [r1] strh r0, [r2] ldrh r1, [r2] movs r0, 0x64 muls r0, r1 ldr r1, _0802FA80 adds r0, r1 movs r1, 0xB bl PokemonGetField mov r8, r0 lsls r0, 16 lsrs r0, 16 mov r8, r0 ldr r0, _0802FA84 bl object_new_hidden_with_callback ldr r1, _0802FA88 mov r9, r1 add r9, r6 mov r1, r9 strb r0, [r1] adds r0, r6, 0 bl battle_get_per_side_status adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 mov r0, r8 bl gpu_pal_obj_decompress_and_apply ldr r0, _0802FA8C mov r10, r0 adds r0, r6, 0 movs r1, 0x2 bl sub_8077ABC adds r5, r0, 0 lsls r5, 24 lsrs r5, 24 adds r0, r6, 0 bl sub_8077F68 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 adds r0, r6, 0 bl sub_8079E90 adds r3, r0, 0 lsls r3, 24 lsrs r3, 24 mov r0, r10 adds r1, r5, 0 adds r2, r4, 0 bl CreateSprite ldr r4, _0802FA90 adds r4, r6, r4 strb r0, [r4] ldr r5, _0802FA94 mov r0, r9 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 ldrb r1, [r4] strh r1, [r0, 0x30] ldrb r1, [r4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 strh r6, [r0, 0x2E] ldrb r1, [r4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 mov r1, r8 strh r1, [r0, 0x32] ldrb r0, [r4] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r5 lsls r3, r6, 4 ldrb r2, [r1, 0x5] movs r0, 0xF ands r0, r2 orrs r0, r3 strb r0, [r1, 0x5] ldrb r1, [r4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 ldr r1, _0802FA98 adds r6, r1 ldrb r1, [r6] bl StartSpriteAnim ldrb r1, [r4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 adds r0, 0x3E ldrb r1, [r0] movs r2, 0x4 orrs r1, r2 strb r1, [r0] ldrb r1, [r4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r1, r5, 0 adds r1, 0x1C adds r0, r1 ldr r1, _0802FA9C str r1, [r0] movs r0, 0 movs r1, 0xFF bl sub_8046400 mov r1, r9 ldrb r2, [r1] lsls r1, r2, 4 adds r1, r2 lsls r1, 2 adds r1, r5 lsls r0, 24 lsrs r0, 24 strh r0, [r1, 0x2E] pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0802FA78: .4byte 0x02024a6a _0802FA7C: .4byte 0x02023a60 _0802FA80: .4byte 0x03004360 _0802FA84: .4byte sub_80312F0 _0802FA88: .4byte 0x0300434c _0802FA8C: .4byte 0x02024e8c _0802FA90: .4byte 0x02024be0 _0802FA94: .4byte 0x02020004 _0802FA98: .4byte 0x02024e84 _0802FA9C: .4byte SpriteCallbackDummy thumb_func_end sub_802F934 thumb_func_start sub_802FAA0 sub_802FAA0: @ 802FAA0 push {r4-r6,lr} ldr r1, _0802FAD0 ldr r6, _0802FAD4 ldrb r2, [r6] lsls r0, r2, 9 adds r1, 0x1 adds r0, r1 ldrb r3, [r0] cmp r3, 0 bne _0802FAE4 lsls r0, r2, 1 adds r0, r2 lsls r0, 2 ldr r1, _0802FAD8 adds r0, r1 strb r3, [r0, 0x4] ldr r1, _0802FADC ldrb r0, [r6] lsls r0, 2 adds r0, r1 ldr r1, _0802FAE0 str r1, [r0] b _0802FB1A .align 2, 0 _0802FAD0: .4byte 0x02023a60 _0802FAD4: .4byte 0x02024a60 _0802FAD8: .4byte 0x02017810 _0802FADC: .4byte 0x03004330 _0802FAE0: .4byte sub_802FB2C _0802FAE4: ldr r5, _0802FB20 adds r0, r2, r5 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r4, _0802FB24 adds r0, r4 bl FreeSpriteOamMatrix ldrb r0, [r6] adds r0, r5 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 bl DestroySprite ldr r1, _0802FB28 ldrb r0, [r6] adds r0, r1 ldrb r0, [r0] bl sub_8043DB0 bl dp01_tbl1_exec_completed _0802FB1A: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0802FB20: .4byte 0x02024be0 _0802FB24: .4byte 0x02020004 _0802FB28: .4byte 0x03004340 thumb_func_end sub_802FAA0 thumb_func_start sub_802FB2C sub_802FB2C: @ 802FB2C push {r4,r5,lr} ldr r5, _0802FB48 ldrb r2, [r5] lsls r0, r2, 1 adds r0, r2 lsls r0, 2 ldr r4, _0802FB4C adds r3, r0, r4 ldrb r0, [r3, 0x4] cmp r0, 0 beq _0802FB50 cmp r0, 0x1 beq _0802FB7C b _0802FBA4 .align 2, 0 _0802FB48: .4byte 0x02024a60 _0802FB4C: .4byte 0x02017810 _0802FB50: lsls r0, r2, 2 adds r1, r4, 0 subs r1, 0x10 adds r0, r1 ldrb r1, [r0] movs r0, 0x4 ands r0, r1 cmp r0, 0 beq _0802FB6C adds r0, r2, 0 adds r1, r2, 0 movs r3, 0x5 bl move_anim_start_t4 _0802FB6C: ldrb r0, [r5] lsls r1, r0, 1 adds r1, r0 lsls r1, 2 adds r1, r4 movs r0, 0x1 strb r0, [r1, 0x4] b _0802FBA4 _0802FB7C: ldrb r1, [r3] movs r0, 0x40 ands r0, r1 lsls r0, 24 lsrs r0, 24 cmp r0, 0 bne _0802FBA4 strb r0, [r3, 0x4] ldrb r2, [r5] adds r0, r2, 0 adds r1, r2, 0 movs r3, 0x1 bl move_anim_start_t4 ldr r1, _0802FBAC ldrb r0, [r5] lsls r0, 2 adds r0, r1 ldr r1, _0802FBB0 str r1, [r0] _0802FBA4: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0802FBAC: .4byte 0x03004330 _0802FBB0: .4byte sub_802DEAC thumb_func_end sub_802FB2C thumb_func_start sub_802FBB4 sub_802FBB4: @ 802FBB4 push {r4-r7,lr} mov r7, r8 push {r7} ldr r0, _0802FBDC ldrh r1, [r0] movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _0802FBE8 ldr r0, _0802FBE0 ldrb r0, [r0] bl battle_get_per_side_status movs r1, 0x2 ands r1, r0 ldr r7, _0802FBE4 cmp r1, 0 beq _0802FBEA movs r7, 0x10 b _0802FBEA .align 2, 0 _0802FBDC: .4byte 0x020239f8 _0802FBE0: .4byte 0x02024a60 _0802FBE4: .4byte 0x0000fff0 _0802FBE8: movs r7, 0 _0802FBEA: ldr r4, _0802FCB8 ldrb r0, [r4, 0x8] ldr r6, _0802FCBC ldrb r1, [r6] bl sub_8031AF4 ldrb r5, [r4, 0x8] ldrb r0, [r6] bl battle_get_per_side_status adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r5, 0 bl sub_803C5A0 ldr r0, _0802FCC0 mov r8, r0 lsls r5, r7, 16 movs r0, 0xA0 lsls r0, 15 adds r5, r0 asrs r5, 16 ldr r1, _0802FCC4 ldrb r0, [r4, 0x8] lsls r0, 2 adds r0, r1 ldrb r0, [r0] movs r4, 0x8 subs r4, r0 lsls r4, 18 movs r0, 0xA0 lsls r0, 15 adds r4, r0 asrs r4, 16 ldrb r0, [r6] bl sub_8079E90 adds r3, r0, 0 lsls r3, 24 lsrs r3, 24 mov r0, r8 adds r1, r5, 0 adds r2, r4, 0 bl CreateSprite ldr r5, _0802FCC8 ldrb r1, [r6] adds r1, r5 strb r0, [r1] ldr r4, _0802FCCC ldrb r3, [r6] adds r0, r3, r5 ldrb r0, [r0] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r4 lsls r3, 4 ldrb r2, [r1, 0x5] movs r0, 0xF ands r0, r2 orrs r0, r3 strb r0, [r1, 0x5] ldrb r0, [r6] adds r0, r5 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 movs r1, 0xF0 strh r1, [r0, 0x24] ldrb r0, [r6] adds r0, r5 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 ldr r1, _0802FCD0 strh r1, [r0, 0x2E] ldrb r0, [r6] adds r0, r5 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r4, 0x1C adds r0, r4 ldr r1, _0802FCD4 str r1, [r0] ldr r1, _0802FCD8 ldrb r0, [r6] lsls r0, 2 adds r0, r1 ldr r1, _0802FCDC str r1, [r0] pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0802FCB8: .4byte 0x02024ea4 _0802FCBC: .4byte 0x02024a60 _0802FCC0: .4byte 0x02024e8c _0802FCC4: .4byte gTrainerBackPicCoords _0802FCC8: .4byte 0x02024be0 _0802FCCC: .4byte 0x02020004 _0802FCD0: .4byte 0x0000fffe _0802FCD4: .4byte sub_80313A0 _0802FCD8: .4byte 0x03004330 _0802FCDC: .4byte sub_802D204 thumb_func_end sub_802FBB4 thumb_func_start sub_802FCE0 sub_802FCE0: @ 802FCE0 push {r4-r6,lr} ldr r4, _0802FD94 ldrb r0, [r4, 0x8] ldr r5, _0802FD98 ldrb r1, [r5] bl sub_8031AF4 ldrb r6, [r4, 0x8] ldrb r0, [r5] bl battle_get_per_side_status adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r6, 0 bl sub_803C5A0 ldr r0, _0802FD9C ldr r2, _0802FDA0 ldrb r1, [r4, 0x8] lsls r1, 2 adds r1, r2 ldrb r1, [r1] movs r2, 0x8 subs r2, r1 lsls r2, 18 movs r1, 0xA0 lsls r1, 15 adds r2, r1 asrs r2, 16 movs r1, 0x50 movs r3, 0x1E bl CreateSprite ldr r6, _0802FDA4 ldrb r1, [r5] adds r1, r6 strb r0, [r1] ldr r4, _0802FDA8 ldrb r3, [r5] adds r0, r3, r6 ldrb r0, [r0] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r4 lsls r3, 4 ldrb r2, [r1, 0x5] movs r0, 0xF ands r0, r2 orrs r0, r3 strb r0, [r1, 0x5] ldrb r0, [r5] adds r0, r6 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 ldr r1, _0802FDAC strh r1, [r0, 0x24] ldrb r0, [r5] adds r0, r6 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 movs r1, 0x2 strh r1, [r0, 0x2E] ldrb r0, [r5] adds r0, r6 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r4, 0x1C adds r0, r4 ldr r1, _0802FDB0 str r1, [r0] ldr r1, _0802FDB4 ldrb r0, [r5] lsls r0, 2 adds r0, r1 ldr r1, _0802FDB8 str r1, [r0] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0802FD94: .4byte 0x02024ea4 _0802FD98: .4byte 0x02024a60 _0802FD9C: .4byte 0x02024e8c _0802FDA0: .4byte gTrainerBackPicCoords _0802FDA4: .4byte 0x02024be0 _0802FDA8: .4byte 0x02020004 _0802FDAC: .4byte 0x0000ffa0 _0802FDB0: .4byte sub_80313A0 _0802FDB4: .4byte 0x03004330 _0802FDB8: .4byte sub_802D23C thumb_func_end sub_802FCE0 thumb_func_start sub_802FDBC sub_802FDBC: @ 802FDBC push {r4-r6,lr} ldr r5, _0802FE5C ldr r6, _0802FE60 ldrb r0, [r6] adds r0, r5 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r4, _0802FE64 adds r0, r4 bl oamt_add_pos2_onto_pos1 ldrb r0, [r6] adds r0, r5 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 movs r1, 0x32 strh r1, [r0, 0x2E] ldrb r0, [r6] adds r0, r5 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 ldr r1, _0802FE68 strh r1, [r0, 0x32] ldrb r0, [r6] adds r0, r5 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 ldrh r1, [r0, 0x22] strh r1, [r0, 0x36] ldrb r0, [r6] adds r0, r5 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r1, r4, 0 adds r1, 0x1C adds r0, r1 ldr r1, _0802FE6C str r1, [r0] ldrb r0, [r6] adds r0, r5 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 ldr r1, _0802FE70 bl oamt_set_x3A_32 ldrb r0, [r6] adds r0, r5 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 movs r1, 0x1 bl StartSpriteAnim ldr r1, _0802FE74 ldrb r0, [r6] lsls r0, 2 adds r0, r1 ldr r1, _0802FE78 str r1, [r0] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0802FE5C: .4byte 0x02024be0 _0802FE60: .4byte 0x02024a60 _0802FE64: .4byte 0x02020004 _0802FE68: .4byte 0x0000ffd8 _0802FE6C: .4byte sub_8078B34 _0802FE70: .4byte SpriteCallbackDummy _0802FE74: .4byte 0x03004330 _0802FE78: .4byte sub_802D274 thumb_func_end sub_802FDBC thumb_func_start sub_802FE7C sub_802FE7C: @ 802FE7C push {r4,r5,lr} ldr r5, _0802FEC0 ldrb r2, [r5] lsls r0, r2, 1 adds r0, r2 lsls r0, 2 ldr r4, _0802FEC4 adds r3, r0, r4 ldrb r0, [r3, 0x4] cmp r0, 0 bne _0802FEC8 lsls r0, r2, 2 adds r1, r4, 0 subs r1, 0x10 adds r0, r1 ldrb r1, [r0] movs r0, 0x4 ands r0, r1 cmp r0, 0 beq _0802FEAE adds r0, r2, 0 adds r1, r2, 0 movs r3, 0x5 bl move_anim_start_t4 _0802FEAE: ldrb r0, [r5] lsls r1, r0, 1 adds r1, r0 lsls r1, 2 adds r1, r4 ldrb r0, [r1, 0x4] adds r0, 0x1 strb r0, [r1, 0x4] b _0802FF3E .align 2, 0 _0802FEC0: .4byte 0x02024a60 _0802FEC4: .4byte 0x02017810 _0802FEC8: ldrb r1, [r3] movs r0, 0x40 ands r0, r1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0 bne _0802FF3E strb r4, [r3, 0x4] ldr r2, _0802FF44 ldrb r1, [r5] lsls r0, r1, 1 adds r0, r2 ldrh r2, [r0] movs r0, 0x64 muls r0, r2 ldr r2, _0802FF48 adds r0, r2 bl sub_80324F8 movs r1, 0x40 negs r1, r1 movs r0, 0x10 bl audio_play_and_stuff ldr r2, _0802FF4C ldr r3, _0802FF50 ldrb r0, [r5] adds r0, r3 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 strh r4, [r0, 0x30] ldrb r0, [r5] adds r0, r3 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 movs r1, 0x5 strh r1, [r0, 0x32] ldrb r0, [r5] adds r0, r3 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r2, 0x1C adds r0, r2 ldr r1, _0802FF54 str r1, [r0] ldr r1, _0802FF58 ldrb r0, [r5] lsls r0, 2 adds r0, r1 ldr r1, _0802FF5C str r1, [r0] _0802FF3E: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0802FF44: .4byte 0x02024a6a _0802FF48: .4byte 0x03004360 _0802FF4C: .4byte 0x02020004 _0802FF50: .4byte 0x02024be0 _0802FF54: .4byte sub_80105EC _0802FF58: .4byte 0x03004330 _0802FF5C: .4byte sub_802DE10 thumb_func_end sub_802FE7C thumb_func_start sub_802FF60 sub_802FF60: @ 802FF60 push {lr} sub sp, 0x4 movs r0, 0x1 negs r0, r0 movs r1, 0 str r1, [sp] movs r1, 0x2 movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade bl dp01_tbl1_exec_completed add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_802FF60 thumb_func_start sub_802FF80 sub_802FF80: @ 802FF80 push {r4,r5,lr} ldr r1, _0802FFBC movs r0, 0x4 strb r0, [r1, 0x8] ldr r1, _0802FFC0 movs r0, 0x1 strb r0, [r1] ldr r5, _0802FFC4 ldrb r4, [r5] movs r0, 0x1 bl battle_get_side_with_given_state adds r2, r0, 0 lsls r2, 24 lsrs r2, 24 adds r0, r4, 0 adds r1, r4, 0 movs r3, 0x3 bl move_anim_start_t4 ldr r1, _0802FFC8 ldrb r0, [r5] lsls r0, 2 adds r0, r1 ldr r1, _0802FFCC str r1, [r0] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0802FFBC: .4byte 0x02017840 _0802FFC0: .4byte 0x02024e6d _0802FFC4: .4byte 0x02024a60 _0802FFC8: .4byte 0x03004330 _0802FFCC: .4byte bx_wait_t1 thumb_func_end sub_802FF80 thumb_func_start sub_802FFD0 sub_802FFD0: @ 802FFD0 push {r4,r5,lr} ldr r1, _08030014 ldr r5, _08030018 ldrb r0, [r5] lsls r0, 9 adds r1, 0x1 adds r0, r1 ldrb r1, [r0] ldr r0, _0803001C strb r1, [r0, 0x8] ldr r1, _08030020 movs r0, 0x1 strb r0, [r1] ldrb r4, [r5] movs r0, 0x1 bl battle_get_side_with_given_state adds r2, r0, 0 lsls r2, 24 lsrs r2, 24 adds r0, r4, 0 adds r1, r4, 0 movs r3, 0x3 bl move_anim_start_t4 ldr r1, _08030024 ldrb r0, [r5] lsls r0, 2 adds r0, r1 ldr r1, _08030028 str r1, [r0] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08030014: .4byte 0x02023a60 _08030018: .4byte 0x02024a60 _0803001C: .4byte 0x02017840 _08030020: .4byte 0x02024e6d _08030024: .4byte 0x03004330 _08030028: .4byte bx_wait_t1 thumb_func_end sub_802FFD0 thumb_func_start sub_803002C sub_803002C: @ 803002C push {lr} ldr r1, _08030054 ldr r0, _08030058 ldrb r0, [r0] lsls r0, 9 adds r1, 0x1 adds r0, r1 ldrb r0, [r0] cmp r0, 0 beq _0803004A _08030040: subs r0, 0x1 lsls r0, 24 lsrs r0, 24 cmp r0, 0 bne _08030040 _0803004A: bl dp01_tbl1_exec_completed pop {r0} bx r0 .align 2, 0 _08030054: .4byte 0x02023a60 _08030058: .4byte 0x02024a60 thumb_func_end sub_803002C thumb_func_start dp01t_0F_1_move_anim dp01t_0F_1_move_anim: @ 803005C push {r4-r6,lr} ldr r6, _08030140 ldrb r0, [r6] bl mplay_80342A4 lsls r0, 24 cmp r0, 0 beq _0803006E b _0803017E _0803006E: ldr r0, _08030144 mov r12, r0 ldrb r2, [r6] lsls r2, 9 adds r0, 0x1 adds r0, r2, r0 ldrb r0, [r0] mov r1, r12 adds r1, 0x2 adds r1, r2, r1 ldrb r1, [r1] lsls r1, 8 orrs r0, r1 ldr r5, _08030148 mov r1, r12 adds r1, 0x3 adds r2, r1 ldrb r1, [r2] strb r1, [r5] ldr r4, _0803014C ldrb r2, [r6] lsls r2, 9 mov r1, r12 adds r1, 0x4 adds r1, r2, r1 ldrb r3, [r1] mov r1, r12 adds r1, 0x5 adds r2, r1 ldrb r1, [r2] lsls r1, 8 orrs r3, r1 strh r3, [r4] ldr r4, _08030150 ldrb r2, [r6] lsls r2, 9 mov r1, r12 adds r1, 0x6 adds r1, r2, r1 ldrb r3, [r1] mov r1, r12 adds r1, 0x7 adds r1, r2, r1 ldrb r1, [r1] lsls r1, 8 orrs r3, r1 mov r1, r12 adds r1, 0x8 adds r1, r2, r1 ldrb r1, [r1] lsls r1, 16 orrs r3, r1 mov r1, r12 adds r1, 0x9 adds r2, r1 ldrb r1, [r2] lsls r1, 24 orrs r3, r1 str r3, [r4] ldr r3, _08030154 ldrb r1, [r6] lsls r1, 9 mov r2, r12 adds r2, 0xA adds r1, r2 ldrb r1, [r1] strb r1, [r3] ldr r4, _08030158 ldrb r2, [r6] lsls r2, 9 mov r1, r12 adds r1, 0xC adds r1, r2, r1 ldrb r3, [r1] mov r1, r12 adds r1, 0xD adds r2, r1 ldrb r1, [r2] lsls r1, 8 orrs r3, r1 strh r3, [r4] ldr r3, _0803015C ldrb r2, [r6] lsls r2, 9 mov r1, r12 adds r1, 0x10 adds r2, r1 str r2, [r3] ldr r3, _08030160 ldrb r1, [r6] lsls r1, 2 adds r1, r3 ldr r2, [r2] str r2, [r1] ldrb r1, [r5] bl sub_8031720 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0 beq _08030164 bl dp01_tbl1_exec_completed b _0803017E .align 2, 0 _08030140: .4byte 0x02024a60 _08030144: .4byte 0x02023a60 _08030148: .4byte 0x0202f7c4 _0803014C: .4byte 0x0202f7bc _08030150: .4byte 0x0202f7b8 _08030154: .4byte 0x0202f7be _08030158: .4byte 0x0202f7c0 _0803015C: .4byte 0x0202f7b4 _08030160: .4byte 0x02024e70 _08030164: ldrb r1, [r6] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 ldr r1, _08030184 adds r0, r1 strb r2, [r0, 0x4] ldr r1, _08030188 ldrb r0, [r6] lsls r0, 2 adds r0, r1 ldr r1, _0803018C str r1, [r0] _0803017E: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08030184: .4byte 0x02017810 _08030188: .4byte 0x03004330 _0803018C: .4byte sub_8030190 thumb_func_end dp01t_0F_1_move_anim thumb_func_start sub_8030190 sub_8030190: @ 8030190 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} ldr r2, _080301D4 ldr r5, _080301D8 ldrb r3, [r5] lsls r1, r3, 9 adds r0, r2, 0x1 mov r9, r0 adds r0, r1, r0 ldrb r4, [r0] adds r6, r2, 0x2 mov r8, r6 adds r0, r1, r6 ldrb r0, [r0] lsls r0, 8 orrs r4, r0 adds r2, 0xB adds r1, r2 ldrb r7, [r1] lsls r0, r3, 1 adds r0, r3 lsls r0, 2 ldr r6, _080301DC adds r0, r6 ldrb r2, [r0, 0x4] cmp r2, 0x1 beq _0803021E cmp r2, 0x1 bgt _080301E0 cmp r2, 0 beq _080301EA b _080302E8 .align 2, 0 _080301D4: .4byte 0x02023a60 _080301D8: .4byte 0x02024a60 _080301DC: .4byte 0x02017810 _080301E0: cmp r2, 0x2 beq _08030244 cmp r2, 0x3 beq _080302B0 b _080302E8 _080301EA: lsls r1, r3, 2 adds r0, r6, 0 subs r0, 0x10 adds r1, r0 ldrb r2, [r1] movs r0, 0xC ands r0, r2 cmp r0, 0x4 bne _0803020E movs r0, 0x8 orrs r0, r2 strb r0, [r1] ldrb r2, [r5] adds r0, r2, 0 adds r1, r2, 0 movs r3, 0x5 bl move_anim_start_t4 _0803020E: ldrb r0, [r5] lsls r1, r0, 1 adds r1, r0 lsls r1, 2 adds r1, r6 movs r0, 0x1 strb r0, [r1, 0x4] b _080302E8 _0803021E: ldrb r1, [r0] movs r0, 0x40 ands r0, r1 cmp r0, 0 bne _080302E8 movs r0, 0 bl sub_80326EC adds r0, r4, 0 bl move_anim_start_t1 ldrb r0, [r5] lsls r1, r0, 1 adds r1, r0 lsls r1, 2 adds r1, r6 movs r0, 0x2 strb r0, [r1, 0x4] b _080302E8 _08030244: ldr r0, _080302A0 ldr r0, [r0] bl _call_via_r0 ldr r0, _080302A4 ldrb r0, [r0] cmp r0, 0 bne _080302E8 movs r0, 0x1 bl sub_80326EC ldrb r2, [r5] lsls r0, r2, 2 adds r4, r6, 0 subs r4, 0x10 adds r0, r4 ldrb r1, [r0] movs r0, 0x4 ands r0, r1 cmp r0, 0 beq _0803028C cmp r7, 0x1 bhi _0803028C adds r0, r2, 0 adds r1, r2, 0 movs r3, 0x6 bl move_anim_start_t4 ldrb r0, [r5] lsls r0, 2 adds r0, r4 ldrb r2, [r0] movs r1, 0x9 negs r1, r1 ands r1, r2 strb r1, [r0] _0803028C: ldr r0, _080302A8 ldrb r1, [r0] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 ldr r1, _080302AC adds r0, r1 movs r1, 0x3 strb r1, [r0, 0x4] b _080302E8 .align 2, 0 _080302A0: .4byte 0x0202f7ac _080302A4: .4byte 0x0202f7b1 _080302A8: .4byte 0x02024a60 _080302AC: .4byte 0x02017810 _080302B0: ldrb r1, [r0] movs r0, 0x40 ands r0, r1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0 bne _080302E8 bl sub_8031F24 ldrb r0, [r5] lsls r2, r0, 9 mov r3, r9 adds r1, r2, r3 ldrb r1, [r1] add r2, r8 ldrb r2, [r2] lsls r2, 8 orrs r1, r2 bl sub_80324BC ldrb r1, [r5] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r6 strb r4, [r0, 0x4] bl dp01_tbl1_exec_completed _080302E8: pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8030190 thumb_func_start sub_80302F4 sub_80302F4: @ 80302F4 push {r4,lr} sub sp, 0x4 ldr r0, _08030338 movs r1, 0 strh r1, [r0] ldr r0, _0803033C strh r1, [r0] ldr r4, _08030340 ldrb r0, [r4] lsls r0, 9 ldr r1, _08030344 adds r0, r1 ldrh r0, [r0] bl sub_8120AA8 ldr r0, _08030348 ldr r1, _0803034C movs r2, 0xF str r2, [sp] movs r2, 0x90 movs r3, 0x2 bl sub_8002EB0 ldr r1, _08030350 ldrb r0, [r4] lsls r0, 2 adds r0, r1 ldr r1, _08030354 str r1, [r0] add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _08030338: .4byte 0x030042a4 _0803033C: .4byte 0x030042a0 _08030340: .4byte 0x02024a60 _08030344: .4byte 0x02023a62 _08030348: .4byte 0x03004210 _0803034C: .4byte 0x020238cc _08030350: .4byte 0x03004330 _08030354: .4byte sub_802DF18 thumb_func_end sub_80302F4 thumb_func_start dp01t_11_1_message_for_player_only dp01t_11_1_message_for_player_only: @ 8030358 push {lr} ldr r0, _08030370 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 bne _08030374 bl sub_80302F4 b _08030378 .align 2, 0 _08030370: .4byte 0x02024a60 _08030374: bl dp01_tbl1_exec_completed _08030378: pop {r0} bx r0 thumb_func_end dp01t_11_1_message_for_player_only thumb_func_start sub_803037C sub_803037C: @ 803037C push {r4,lr} sub sp, 0x8 ldr r1, _08030434 movs r0, 0 strh r0, [r1] ldr r1, _08030438 movs r0, 0xA0 strh r0, [r1] ldr r4, _0803043C movs r0, 0x1B str r0, [sp] movs r0, 0x12 str r0, [sp, 0x4] adds r0, r4, 0 movs r1, 0xA movs r2, 0x2 movs r3, 0xF bl FillWindowRect movs r0, 0x10 str r0, [sp] movs r0, 0x26 str r0, [sp, 0x4] adds r0, r4, 0 movs r1, 0xA movs r2, 0x2 movs r3, 0x23 bl FillWindowRect ldr r1, _08030440 ldr r0, _08030444 ldrb r0, [r0] lsls r0, 2 adds r0, r1 ldr r1, _08030448 str r1, [r0] ldr r1, _0803044C movs r2, 0xC8 lsls r2, 1 movs r0, 0x23 str r0, [sp] adds r0, r4, 0 movs r3, 0x12 bl InitWindow adds r0, r4, 0 bl sub_8002F44 ldr r1, _08030450 ldr r3, _08030454 movs r0, 0 str r0, [sp] movs r2, 0xC bl sub_814A5C0 movs r4, 0 _080303EC: lsls r0, r4, 24 lsrs r0, 24 bl nullsub_8 adds r4, 0x1 cmp r4, 0x3 ble _080303EC ldr r1, _08030458 ldr r0, _08030444 ldrb r0, [r0] adds r0, r1 ldrb r0, [r0] movs r1, 0 bl sub_802E3E4 ldr r0, _0803045C bl get_battle_strings_ ldr r4, _0803043C ldr r1, _08030460 movs r2, 0xDC lsls r2, 1 movs r0, 0x23 str r0, [sp] adds r0, r4, 0 movs r3, 0x2 bl InitWindow adds r0, r4, 0 bl sub_8002F44 add sp, 0x8 pop {r4} pop {r0} bx r0 .align 2, 0 _08030434: .4byte 0x030042a4 _08030438: .4byte 0x030042a0 _0803043C: .4byte 0x03004210 _08030440: .4byte 0x03004330 _08030444: .4byte 0x02024a60 _08030448: .4byte sub_802C098 _0803044C: .4byte gUnknown_08400CF3 _08030450: .4byte 0x0000ffff _08030454: .4byte 0x00002d9f _08030458: .4byte 0x02024e60 _0803045C: .4byte gUnknown_08400CA8 _08030460: .4byte 0x020238cc thumb_func_end sub_803037C thumb_func_start nullsub_42 nullsub_42: @ 8030464 bx lr thumb_func_end nullsub_42 thumb_func_start sub_8030468 sub_8030468: @ 8030468 push {lr} sub sp, 0x4 ldr r1, _08030494 ldr r3, _08030498 movs r0, 0 str r0, [sp] movs r2, 0xC bl sub_814A5C0 bl sub_80304A8 ldr r1, _0803049C ldr r0, _080304A0 ldrb r0, [r0] lsls r0, 2 adds r0, r1 ldr r1, _080304A4 str r1, [r0] add sp, 0x4 pop {r0} bx r0 .align 2, 0 _08030494: .4byte 0x0000ffff _08030498: .4byte 0x00002d9f _0803049C: .4byte 0x03004330 _080304A0: .4byte 0x02024a60 _080304A4: .4byte sub_802C68C thumb_func_end sub_8030468 thumb_func_start sub_80304A8 sub_80304A8: @ 80304A8 push {r4,lr} sub sp, 0x4 ldr r1, _08030510 movs r0, 0 strh r0, [r1] ldr r1, _08030514 movs r2, 0xA0 lsls r2, 1 adds r0, r2, 0 strh r0, [r1] bl sub_802E1B0 ldr r1, _08030518 movs r0, 0xFF strb r0, [r1] ldr r1, _0803051C ldr r4, _08030520 ldrb r0, [r4] adds r0, r1 ldrb r0, [r0] movs r1, 0 bl sub_802E3B4 ldr r1, _08030524 ldrb r0, [r4] lsls r0, 9 adds r1, 0x2 adds r0, r1 ldrb r0, [r0] cmp r0, 0x1 beq _08030500 ldr r4, _08030528 ldr r1, _0803052C movs r2, 0xA4 lsls r2, 2 movs r0, 0x37 str r0, [sp] adds r0, r4, 0 movs r3, 0x17 bl InitWindow adds r0, r4, 0 bl sub_8002F44 _08030500: bl sub_802E220 bl sub_802E2D4 add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _08030510: .4byte 0x030042a4 _08030514: .4byte 0x030042a0 _08030518: .4byte 0x03004344 _0803051C: .4byte 0x02024e64 _08030520: .4byte 0x02024a60 _08030524: .4byte 0x02023a60 _08030528: .4byte 0x03004210 _0803052C: .4byte gUnknown_08400D38 thumb_func_end sub_80304A8 thumb_func_start sub_8030530 sub_8030530: @ 8030530 push {r4,r5,lr} sub sp, 0x4 movs r0, 0x1 negs r0, r0 movs r1, 0 str r1, [sp] movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade ldr r1, _0803057C ldr r2, _08030580 ldrb r0, [r2] lsls r0, 2 adds r0, r1 ldr r1, _08030584 str r1, [r0] ldr r1, _08030588 ldrb r0, [r2] strb r0, [r1] movs r3, 0 ldr r5, _0803058C ldr r4, _08030590 _0803055E: adds r0, r3, r5 ldrb r1, [r2] lsls r1, 9 adds r1, 0x1 adds r1, r3, r1 adds r1, r4 ldrb r1, [r1] strb r1, [r0] adds r3, 0x1 cmp r3, 0x2 ble _0803055E add sp, 0x4 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0803057C: .4byte 0x03004330 _08030580: .4byte 0x02024a60 _08030584: .4byte sub_802E004 _08030588: .4byte 0x02024e6c _0803058C: .4byte 0x02038470 _08030590: .4byte 0x02023a60 thumb_func_end sub_8030530 thumb_func_start sub_8030594 sub_8030594: @ 8030594 push {r4,r5,lr} sub sp, 0x4 ldr r0, _08030644 movs r1, 0xFF bl CreateTask ldr r3, _08030648 ldr r5, _0803064C ldrb r1, [r5] adds r1, r3 strb r0, [r1] ldr r4, _08030650 ldrb r2, [r5] adds r3, r2, r3 ldrb r0, [r3] lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r4 ldr r4, _08030654 lsls r2, 9 adds r3, r4, 0x1 adds r2, r3 ldrb r2, [r2] movs r0, 0xF ands r0, r2 strh r0, [r1, 0x8] ldr r2, _08030658 ldrb r0, [r5] lsls r0, 9 adds r0, r3 ldrb r0, [r0] lsrs r0, 4 ldr r3, _0803065C adds r1, r2, r3 strb r0, [r1] ldrb r0, [r5] lsls r0, 9 adds r1, r4, 0x2 adds r0, r1 ldrb r1, [r0] adds r3, 0x49 adds r0, r2, r3 strb r1, [r0] ldrb r0, [r5] lsls r0, 9 adds r1, r4, 0x3 adds r0, r1 ldrb r0, [r0] ldr r1, _08030660 adds r2, r1 strb r0, [r2] movs r2, 0 ldr r3, _08030664 _08030600: adds r0, r2, r3 ldrb r1, [r5] lsls r1, 9 adds r1, 0x4 adds r1, r2, r1 adds r1, r4 ldrb r1, [r1] strb r1, [r0] adds r2, 0x1 cmp r2, 0x2 ble _08030600 movs r0, 0x1 negs r0, r0 movs r1, 0 str r1, [sp] movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade ldr r1, _08030668 ldr r2, _0803064C ldrb r0, [r2] lsls r0, 2 adds r0, r1 ldr r1, _0803066C str r1, [r0] ldr r1, _08030670 ldrb r0, [r2] strb r0, [r1] add sp, 0x4 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08030644: .4byte TaskDummy _08030648: .4byte 0x0300434c _0803064C: .4byte 0x02024a60 _08030650: .4byte 0x03004b20 _08030654: .4byte 0x02023a60 _08030658: .4byte 0x02000000 _0803065C: .4byte 0x00016054 _08030660: .4byte 0x000160c0 _08030664: .4byte 0x02038470 _08030668: .4byte 0x03004330 _0803066C: .4byte sub_802DF30 _08030670: .4byte 0x02024e6c thumb_func_end sub_8030594 thumb_func_start sub_8030674 sub_8030674: @ 8030674 push {lr} sub sp, 0x4 bl sub_80325B8 movs r0, 0x1 negs r0, r0 movs r1, 0 str r1, [sp] movs r1, 0x2 movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade bl dp01_tbl1_exec_completed add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_8030674 thumb_func_start sub_8030698 sub_8030698: @ 8030698 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x4 movs r0, 0 bl load_gfxc_health_bar ldr r3, _08030710 ldr r0, _08030714 mov r9, r0 ldrb r4, [r0] lsls r2, r4, 9 adds r0, r3, 0x2 adds r0, r2, r0 ldrb r1, [r0] adds r3, 0x3 adds r2, r3 ldrb r0, [r2] lsls r0, 8 orrs r1, r0 lsls r1, 16 asrs r7, r1, 16 ldr r0, _08030718 cmp r7, r0 beq _08030728 ldr r6, _0803071C lsls r0, r4, 1 adds r0, r6 ldrh r0, [r0] movs r5, 0x64 muls r0, r5 ldr r4, _08030720 adds r0, r4 movs r1, 0x3A bl PokemonGetField mov r8, r0 mov r1, r9 ldrb r0, [r1] lsls r0, 1 adds r0, r6 ldrh r0, [r0] muls r0, r5 adds r0, r4 movs r1, 0x39 bl PokemonGetField adds r3, r0, 0 mov r1, r9 ldrb r0, [r1] ldr r1, _08030724 adds r1, r0, r1 ldrb r1, [r1] str r7, [sp] mov r2, r8 bl sub_8043D84 b _08030762 .align 2, 0 _08030710: .4byte 0x02023a60 _08030714: .4byte 0x02024a60 _08030718: .4byte 0x00007fff _0803071C: .4byte 0x02024a6a _08030720: .4byte 0x03004360 _08030724: .4byte 0x03004340 _08030728: ldr r1, _08030780 lsls r0, r4, 1 adds r0, r1 ldrh r1, [r0] movs r0, 0x64 muls r0, r1 ldr r1, _08030784 adds r0, r1 movs r1, 0x3A bl PokemonGetField adds r2, r0, 0 mov r1, r9 ldrb r0, [r1] ldr r4, _08030788 adds r1, r0, r4 ldrb r1, [r1] str r7, [sp] movs r3, 0 bl sub_8043D84 mov r1, r9 ldrb r0, [r1] adds r0, r4 ldrb r0, [r0] movs r1, 0 movs r2, 0 bl sub_80440EC _08030762: ldr r1, _0803078C ldr r0, _08030790 ldrb r0, [r0] lsls r0, 2 adds r0, r1 ldr r1, _08030794 str r1, [r0] add sp, 0x4 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08030780: .4byte 0x02024a6a _08030784: .4byte 0x03004360 _08030788: .4byte 0x03004340 _0803078C: .4byte 0x03004330 _08030790: .4byte 0x02024a60 _08030794: .4byte bx_t1_healthbar_update thumb_func_end sub_8030698 thumb_func_start sub_8030798 sub_8030798: @ 8030798 push {r4-r7,lr} ldr r5, _080307C4 ldr r6, _080307C8 ldrb r0, [r6] lsls r0, 9 adds r1, r5, 0x1 adds r0, r1 ldrb r7, [r0] movs r0, 0x64 adds r1, r7, 0 muls r1, r0 ldr r0, _080307CC adds r4, r1, r0 adds r0, r4, 0 movs r1, 0x38 bl PokemonGetField cmp r0, 0x63 bls _080307D0 bl dp01_tbl1_exec_completed b _0803081C .align 2, 0 _080307C4: .4byte 0x02023a60 _080307C8: .4byte 0x02024a60 _080307CC: .4byte 0x03004360 _080307D0: movs r0, 0x1 bl load_gfxc_health_bar adds r0, r4, 0 movs r1, 0xB bl PokemonGetField ldrb r1, [r6] lsls r1, 9 adds r0, r5, 0x2 adds r0, r1, r0 ldrb r4, [r0] adds r0, r5, 0x3 adds r1, r0 ldrb r0, [r1] lsls r0, 8 orrs r4, r0 ldr r0, _08030824 movs r1, 0xA bl CreateTask lsls r0, 24 lsrs r0, 24 ldr r2, _08030828 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 strh r7, [r1, 0x8] strh r4, [r1, 0xA] ldrb r0, [r6] strh r0, [r1, 0xC] ldr r1, _0803082C ldrb r0, [r6] lsls r0, 2 adds r0, r1 ldr r1, _08030830 str r1, [r0] _0803081C: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08030824: .4byte sub_802D924 _08030828: .4byte 0x03004b20 _0803082C: .4byte 0x03004330 _08030830: .4byte nullsub_91 thumb_func_end sub_8030798 thumb_func_start sub_8030834 sub_8030834: @ 8030834 push {r4,lr} ldr r4, _0803088C ldrb r0, [r4] bl mplay_80342A4 lsls r0, 24 cmp r0, 0 bne _08030884 ldr r0, _08030890 ldrb r1, [r4] adds r0, r1, r0 ldrb r0, [r0] ldr r2, _08030894 lsls r1, 1 adds r1, r2 ldrh r2, [r1] movs r1, 0x64 muls r1, r2 ldr r2, _08030898 adds r1, r2 movs r2, 0x9 bl sub_8045A5C ldrb r0, [r4] lsls r1, r0, 1 adds r1, r0 lsls r1, 2 ldr r0, _0803089C adds r1, r0 ldrb r2, [r1] movs r0, 0x11 negs r0, r0 ands r0, r2 strb r0, [r1] ldr r1, _080308A0 ldrb r0, [r4] lsls r0, 2 adds r0, r1 ldr r1, _080308A4 str r1, [r0] _08030884: pop {r4} pop {r0} bx r0 .align 2, 0 _0803088C: .4byte 0x02024a60 _08030890: .4byte 0x03004340 _08030894: .4byte 0x02024a6a _08030898: .4byte 0x03004360 _0803089C: .4byte 0x02017810 _080308A0: .4byte 0x03004330 _080308A4: .4byte sub_802E434 thumb_func_end sub_8030834 thumb_func_start sub_80308A8 sub_80308A8: @ 80308A8 push {r4,r5,lr} ldr r5, _08030900 ldrb r0, [r5] bl mplay_80342A4 lsls r0, 24 cmp r0, 0 bne _080308F8 ldr r4, _08030904 ldrb r3, [r5] lsls r3, 9 adds r0, r4, 0x1 adds r0, r3, r0 ldrb r0, [r0] adds r1, r4, 0x2 adds r1, r3, r1 ldrb r1, [r1] adds r2, r4, 0x3 adds r2, r3, r2 ldrb r2, [r2] lsls r2, 8 orrs r1, r2 adds r2, r4, 0x4 adds r2, r3, r2 ldrb r2, [r2] lsls r2, 16 orrs r1, r2 adds r4, 0x5 adds r3, r4 ldrb r2, [r3] lsls r2, 24 orrs r1, r2 bl move_anim_start_t2_for_situation ldr r1, _08030908 ldrb r0, [r5] lsls r0, 2 adds r0, r1 ldr r1, _0803090C str r1, [r0] _080308F8: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08030900: .4byte 0x02024a60 _08030904: .4byte 0x02023a60 _08030908: .4byte 0x03004330 _0803090C: .4byte sub_802E434 thumb_func_end sub_80308A8 thumb_func_start sub_8030910 sub_8030910: @ 8030910 push {r4-r6,lr} mov r6, r8 push {r6} sub sp, 0x4 ldr r0, _0803096C mov r8, r0 ldr r4, _08030970 ldrb r0, [r4] lsls r0, 1 add r0, r8 ldrh r0, [r0] movs r6, 0x64 muls r0, r6 ldr r5, _08030974 adds r0, r5 movs r1, 0x37 bl PokemonGetField ldr r2, _08030978 ldrb r1, [r4] lsls r1, 9 adds r2, 0x1 adds r1, r2 ldrb r1, [r1] eors r0, r1 mov r1, sp strb r0, [r1] ldrb r0, [r4] lsls r0, 1 add r0, r8 ldrh r0, [r0] muls r0, r6 adds r0, r5 movs r1, 0x37 mov r2, sp bl pokemon_setattr bl dp01_tbl1_exec_completed add sp, 0x4 pop {r3} mov r8, r3 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0803096C: .4byte 0x02024a6a _08030970: .4byte 0x02024a60 _08030974: .4byte 0x03004360 _08030978: .4byte 0x02023a60 thumb_func_end sub_8030910 thumb_func_start sub_803097C sub_803097C: @ 803097C push {lr} bl dp01_tbl1_exec_completed pop {r0} bx r0 thumb_func_end sub_803097C thumb_func_start sub_8030988 sub_8030988: @ 8030988 push {r4,r5,lr} ldr r3, _080309EC ldr r0, _080309F0 ldrb r2, [r0] lsls r2, 9 adds r0, r3, 0x1 adds r0, r2, r0 ldrb r5, [r0] adds r0, r3, 0x2 adds r0, r2, r0 ldrb r0, [r0] lsls r0, 8 orrs r5, r0 adds r0, r3, 0x3 adds r0, r2, r0 ldrb r0, [r0] lsls r0, 16 orrs r5, r0 adds r0, r3, 0x4 adds r0, r2, r0 ldrb r4, [r0] lsls r4, 24 adds r0, r3, 0x5 adds r0, r2, r0 ldrb r1, [r0] adds r0, r3, 0x6 adds r0, r2, r0 ldrb r0, [r0] lsls r0, 8 orrs r1, r0 lsls r1, 16 adds r3, 0x7 adds r2, r3 orrs r5, r4 lsrs r4, r1, 16 movs r0, 0x80 lsls r0, 5 cmp r4, r0 bhi _080309F8 ldr r0, _080309F4 str r2, [r0] str r5, [r0, 0x4] lsrs r1, 17 movs r2, 0x80 lsls r2, 24 orrs r1, r2 str r1, [r0, 0x8] ldr r0, [r0, 0x8] b _08030A24 .align 2, 0 _080309EC: .4byte 0x02023a60 _080309F0: .4byte 0x02024a60 _080309F4: .4byte 0x040000d4 _080309F8: ldr r3, _08030A30 str r2, [r3] str r5, [r3, 0x4] ldr r0, _08030A34 str r0, [r3, 0x8] ldr r0, [r3, 0x8] movs r0, 0x80 lsls r0, 5 adds r2, r0 adds r5, r0 ldr r1, _08030A38 adds r4, r1 cmp r4, r0 bhi _080309F8 str r2, [r3] str r5, [r3, 0x4] lsrs r0, r4, 1 movs r1, 0x80 lsls r1, 24 orrs r0, r1 str r0, [r3, 0x8] ldr r0, [r3, 0x8] _08030A24: bl dp01_tbl1_exec_completed pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08030A30: .4byte 0x040000d4 _08030A34: .4byte 0x80000800 _08030A38: .4byte 0xfffff000 thumb_func_end sub_8030988 thumb_func_start sub_8030A3C sub_8030A3C: @ 8030A3C push {lr} ldr r2, _08030A64 ldr r0, _08030A68 ldrb r1, [r0] lsls r1, 9 adds r0, r2, 0x1 adds r0, r1, r0 ldrb r0, [r0] adds r2, 0x2 adds r1, r2 ldrb r1, [r1] lsls r1, 8 orrs r0, r1 bl sub_8075474 bl dp01_tbl1_exec_completed pop {r0} bx r0 .align 2, 0 _08030A64: .4byte 0x02023a60 _08030A68: .4byte 0x02024a60 thumb_func_end sub_8030A3C thumb_func_start sub_8030A6C sub_8030A6C: @ 8030A6C push {lr} bl dp01_tbl1_exec_completed pop {r0} bx r0 thumb_func_end sub_8030A6C thumb_func_start sub_8030A78 sub_8030A78: @ 8030A78 push {lr} movs r0, 0x1 movs r1, 0 movs r2, 0 bl dp01_build_cmdbuf_x21_a_bb bl dp01_tbl1_exec_completed pop {r0} bx r0 thumb_func_end sub_8030A78 thumb_func_start sub_8030A8C sub_8030A8C: @ 8030A8C push {lr} movs r0, 0x1 movs r1, 0 movs r2, 0 bl dp01_build_cmdbuf_x22_a_three_bytes bl dp01_tbl1_exec_completed pop {r0} bx r0 thumb_func_end sub_8030A8C thumb_func_start sub_8030AA0 sub_8030AA0: @ 8030AA0 push {lr} movs r0, 0x1 movs r1, 0 bl dp01_build_cmdbuf_x23_aa_0 bl dp01_tbl1_exec_completed pop {r0} bx r0 thumb_func_end sub_8030AA0 thumb_func_start sub_8030AB4 sub_8030AB4: @ 8030AB4 push {lr} movs r0, 0x1 movs r1, 0 bl dp01_build_cmdbuf_x24_aa_0 bl dp01_tbl1_exec_completed pop {r0} bx r0 thumb_func_end sub_8030AB4 thumb_func_start sub_8030AC8 sub_8030AC8: @ 8030AC8 push {lr} ldr r2, _08030AE0 ldrb r1, [r2] movs r0, 0x80 negs r0, r0 ands r0, r1 strb r0, [r2] bl dp01_tbl1_exec_completed pop {r0} bx r0 .align 2, 0 _08030AE0: .4byte 0x020238c8 thumb_func_end sub_8030AC8 thumb_func_start sub_8030AE4 sub_8030AE4: @ 8030AE4 push {lr} ldr r3, _08030B10 ldr r1, _08030B14 ldr r0, _08030B18 ldrb r0, [r0] lsls r0, 9 adds r1, 0x1 adds r0, r1 ldrb r0, [r0] movs r1, 0x7F ands r1, r0 ldrb r2, [r3] movs r0, 0x80 negs r0, r0 ands r0, r2 orrs r0, r1 strb r0, [r3] bl dp01_tbl1_exec_completed pop {r0} bx r0 .align 2, 0 _08030B10: .4byte 0x020238c8 _08030B14: .4byte 0x02023a60 _08030B18: .4byte 0x02024a60 thumb_func_end sub_8030AE4 thumb_func_start sub_8030B1C sub_8030B1C: @ 8030B1C push {lr} ldr r2, _08030B30 ldrb r1, [r2] movs r0, 0x7F ands r0, r1 strb r0, [r2] bl dp01_tbl1_exec_completed pop {r0} bx r0 .align 2, 0 _08030B30: .4byte 0x020238c8 thumb_func_end sub_8030B1C thumb_func_start sub_8030B34 sub_8030B34: @ 8030B34 push {lr} ldr r3, _08030B58 ldr r1, [r3] lsls r1, 24 lsrs r1, 31 movs r0, 0x1 eors r1, r0 lsls r1, 7 ldrb r2, [r3] movs r0, 0x7F ands r0, r2 orrs r0, r1 strb r0, [r3] bl dp01_tbl1_exec_completed pop {r0} bx r0 .align 2, 0 _08030B58: .4byte 0x020238c8 thumb_func_end sub_8030B34 thumb_func_start dp01t_29_1_blink dp01t_29_1_blink: @ 8030B5C push {r4,lr} ldr r3, _08030B84 ldr r2, _08030B88 ldr r4, _08030B8C ldrb r0, [r4] adds r0, r2 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 adds r0, 0x3E ldrb r0, [r0] lsls r0, 29 cmp r0, 0 bge _08030B90 bl dp01_tbl1_exec_completed b _08030BBA .align 2, 0 _08030B84: .4byte 0x02020004 _08030B88: .4byte 0x02024be0 _08030B8C: .4byte 0x02024a60 _08030B90: ldr r1, _08030BC0 movs r0, 0x1 strb r0, [r1] ldrb r0, [r4] adds r0, r2 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 movs r1, 0 strh r1, [r0, 0x30] ldrb r0, [r4] bl sub_8047858 ldr r1, _08030BC4 ldrb r0, [r4] lsls r0, 2 adds r0, r1 ldr r1, _08030BC8 str r1, [r0] _08030BBA: pop {r4} pop {r0} bx r0 .align 2, 0 _08030BC0: .4byte 0x02024e6d _08030BC4: .4byte 0x03004330 _08030BC8: .4byte bx_blink_t1 thumb_func_end dp01t_29_1_blink thumb_func_start sub_8030BCC sub_8030BCC: @ 8030BCC push {lr} bl dp01_tbl1_exec_completed pop {r0} bx r0 thumb_func_end sub_8030BCC thumb_func_start sub_8030BD8 sub_8030BD8: @ 8030BD8 push {r4,lr} ldr r4, _08030C14 ldrb r0, [r4] bl battle_side_get_owner lsls r0, 24 movs r3, 0x3F cmp r0, 0 bne _08030BEC movs r3, 0xC0 _08030BEC: ldr r2, _08030C18 ldrb r1, [r4] lsls r1, 9 adds r0, r2, 0x1 adds r0, r1, r0 ldrb r0, [r0] adds r2, 0x2 adds r1, r2 ldrb r1, [r1] lsls r1, 8 orrs r0, r1 lsls r1, r3, 24 asrs r1, 24 bl audio_play_and_stuff bl dp01_tbl1_exec_completed pop {r4} pop {r0} bx r0 .align 2, 0 _08030C14: .4byte 0x02024a60 _08030C18: .4byte 0x02023a60 thumb_func_end sub_8030BD8 thumb_func_start sub_8030C1C sub_8030C1C: @ 8030C1C push {lr} ldr r2, _08030C44 ldr r0, _08030C48 ldrb r1, [r0] lsls r1, 9 adds r0, r2, 0x1 adds r0, r1, r0 ldrb r0, [r0] adds r2, 0x2 adds r1, r2 ldrb r1, [r1] lsls r1, 8 orrs r0, r1 bl fanfare_play bl dp01_tbl1_exec_completed pop {r0} bx r0 .align 2, 0 _08030C44: .4byte 0x02023a60 _08030C48: .4byte 0x02024a60 thumb_func_end sub_8030C1C thumb_func_start sub_8030C4C sub_8030C4C: @ 8030C4C push {lr} ldr r1, _08030C80 ldr r0, _08030C84 ldrb r0, [r0] lsls r0, 1 adds r0, r1 ldrh r1, [r0] movs r0, 0x64 muls r0, r1 ldr r1, _08030C88 adds r0, r1 movs r1, 0xB bl PokemonGetField lsls r0, 16 lsrs r0, 16 movs r1, 0x19 negs r1, r1 movs r2, 0x5 bl sub_80750B4 bl dp01_tbl1_exec_completed pop {r0} bx r0 .align 2, 0 _08030C80: .4byte 0x02024a6a _08030C84: .4byte 0x02024a60 _08030C88: .4byte 0x03004360 thumb_func_end sub_8030C4C thumb_func_start dp01t_2E_1_battle_intro dp01t_2E_1_battle_intro: @ 8030C8C push {lr} ldr r1, _08030CB4 ldr r0, _08030CB8 ldrb r0, [r0] lsls r0, 9 adds r1, 0x1 adds r0, r1 ldrb r0, [r0] bl sub_80E43C0 ldr r2, _08030CBC ldrh r0, [r2] movs r1, 0x1 orrs r0, r1 strh r0, [r2] bl dp01_tbl1_exec_completed pop {r0} bx r0 .align 2, 0 _08030CB4: .4byte 0x02023a60 _08030CB8: .4byte 0x02024a60 _08030CBC: .4byte 0x02024de8 thumb_func_end dp01t_2E_1_battle_intro thumb_func_start sub_8030CC0 sub_8030CC0: @ 8030CC0 push {r4-r7,lr} ldr r6, _08030DF8 ldr r7, _08030DFC ldrb r0, [r7] adds r0, r6 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r5, _08030E00 adds r0, r5 bl oamt_add_pos2_onto_pos1 ldrb r0, [r7] adds r0, r6 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 movs r1, 0x32 strh r1, [r0, 0x2E] ldrb r0, [r7] adds r0, r6 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 ldr r1, _08030E04 strh r1, [r0, 0x32] ldrb r0, [r7] adds r0, r6 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 ldrh r1, [r0, 0x22] strh r1, [r0, 0x36] ldrb r0, [r7] adds r0, r6 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r1, r5, 0 adds r1, 0x1C adds r0, r1 ldr r1, _08030E08 str r1, [r0] ldrb r2, [r7] adds r0, r2, r6 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 strh r2, [r0, 0x38] ldrb r0, [r7] adds r0, r6 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 ldr r1, _08030E0C bl oamt_set_x3A_32 ldrb r0, [r7] adds r0, r6 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 movs r1, 0x1 bl StartSpriteAnim ldr r0, _08030E10 bl AllocSpritePalette adds r4, r0, 0 lsls r4, 24 ldr r1, _08030E14 ldr r0, _08030E18 ldrb r0, [r0, 0x8] lsls r0, 3 adds r0, r1 ldr r0, [r0] lsrs r4, 20 movs r2, 0x80 lsls r2, 1 adds r1, r4, r2 movs r2, 0x20 bl LoadCompressedPalette ldrb r0, [r7] adds r0, r6 ldrb r0, [r0] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r5 ldrb r2, [r1, 0x5] movs r0, 0xF ands r0, r2 orrs r0, r4 strb r0, [r1, 0x5] ldr r0, _08030E1C movs r1, 0x5 bl CreateTask lsls r0, 24 lsrs r0, 24 ldr r4, _08030E20 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r4 ldrb r0, [r7] strh r0, [r1, 0x8] ldrb r3, [r7] lsls r0, r3, 1 adds r0, r3 lsls r0, 2 ldr r2, _08030E24 adds r0, r2 ldrb r1, [r0] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _08030DDC ldr r0, _08030E28 adds r0, r3, r0 ldrb r1, [r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r4 ldr r1, _08030E2C str r1, [r0] _08030DDC: adds r2, 0x30 ldrb r0, [r2, 0x9] movs r1, 0x1 orrs r0, r1 strb r0, [r2, 0x9] ldr r1, _08030E30 ldrb r0, [r7] lsls r0, 2 adds r0, r1 ldr r1, _08030E34 str r1, [r0] pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08030DF8: .4byte 0x02024be0 _08030DFC: .4byte 0x02024a60 _08030E00: .4byte 0x02020004 _08030E04: .4byte 0x0000ffd8 _08030E08: .4byte sub_8078B34 _08030E0C: .4byte sub_8030E38 _08030E10: .4byte 0x0000d6f8 _08030E14: .4byte gTrainerBackPicPaletteTable _08030E18: .4byte 0x02024ea4 _08030E1C: .4byte task05_08033660 _08030E20: .4byte 0x03004b20 _08030E24: .4byte 0x02017810 _08030E28: .4byte 0x02024e68 _08030E2C: .4byte sub_8044CA0 _08030E30: .4byte 0x03004330 _08030E34: .4byte nullsub_91 thumb_func_end sub_8030CC0 thumb_func_start sub_8030E38 sub_8030E38: @ 8030E38 push {r4,r5,lr} adds r5, r0, 0 ldrh r4, [r5, 0x38] lsls r4, 24 lsrs r4, 24 bl FreeSpriteOamMatrix ldrb r0, [r5, 0x5] lsrs r0, 4 bl GetSpritePaletteTagByPaletteNum lsls r0, 16 lsrs r0, 16 bl FreeSpritePaletteByTag adds r0, r5, 0 bl DestroySprite ldr r1, _08030E90 lsls r0, r4, 1 adds r0, r1 ldrh r1, [r0] movs r0, 0x64 muls r0, r1 ldr r1, _08030E94 adds r0, r1 adds r1, r4, 0 bl sub_80318FC ldr r0, _08030E98 adds r4, r0 ldrb r1, [r4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _08030E9C adds r0, r1 movs r1, 0 bl StartSpriteAnim pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08030E90: .4byte 0x02024a6a _08030E94: .4byte 0x03004360 _08030E98: .4byte 0x02024be0 _08030E9C: .4byte 0x02020004 thumb_func_end sub_8030E38 thumb_func_start task05_08033660 task05_08033660: @ 8030EA0 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} lsls r0, 24 lsrs r0, 24 mov r8, r0 ldr r1, _08030EC8 lsls r0, 2 add r0, r8 lsls r0, 3 adds r1, r0, r1 ldrh r2, [r1, 0xA] movs r3, 0xA ldrsh r0, [r1, r3] cmp r0, 0x1E bgt _08030ECC adds r0, r2, 0x1 strh r0, [r1, 0xA] b _08030F88 .align 2, 0 _08030EC8: .4byte 0x03004b20 _08030ECC: ldr r7, _08030F0C ldrb r0, [r7] mov r9, r0 ldrh r0, [r1, 0x8] strb r0, [r7] bl battle_type_is_double lsls r0, 24 cmp r0, 0 beq _08030EEC ldr r0, _08030F10 ldrh r1, [r0] movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _08030F1C _08030EEC: ldr r0, _08030F14 ldrb r1, [r7] lsls r2, r1, 9 adds r0, 0x1 adds r2, r0 ldr r0, _08030F18 lsls r1, 1 adds r1, r0 ldrh r0, [r1] strb r0, [r2] ldrb r0, [r7] movs r1, 0 bl sub_802F934 b _08030F70 .align 2, 0 _08030F0C: .4byte 0x02024a60 _08030F10: .4byte 0x020239f8 _08030F14: .4byte 0x02023a60 _08030F18: .4byte 0x02024a6a _08030F1C: ldr r4, _08030F94 ldrb r0, [r7] lsls r1, r0, 9 adds r4, 0x1 adds r1, r4 ldr r5, _08030F98 lsls r0, 1 adds r0, r5 ldrh r0, [r0] strb r0, [r1] ldrb r0, [r7] movs r1, 0 bl sub_802F934 ldrb r0, [r7] movs r6, 0x2 eors r0, r6 strb r0, [r7] ldrb r0, [r7] lsls r1, r0, 9 adds r1, r4 lsls r0, 1 adds r0, r5 ldrh r0, [r0] strb r0, [r1] ldrb r1, [r7] lsls r0, r1, 1 adds r0, r5 ldrh r2, [r0] movs r0, 0x64 muls r0, r2 ldr r2, _08030F9C adds r0, r2 bl sub_80318FC ldrb r0, [r7] movs r1, 0 bl sub_802F934 ldrb r0, [r7] eors r0, r6 strb r0, [r7] _08030F70: ldr r1, _08030FA0 ldr r2, _08030FA4 ldrb r0, [r2] lsls r0, 2 adds r0, r1 ldr r1, _08030FA8 str r1, [r0] mov r3, r9 strb r3, [r2] mov r0, r8 bl DestroyTask _08030F88: pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08030F94: .4byte 0x02023a60 _08030F98: .4byte 0x02024a6a _08030F9C: .4byte 0x03004360 _08030FA0: .4byte 0x03004330 _08030FA4: .4byte 0x02024a60 _08030FA8: .4byte sub_802D500 thumb_func_end task05_08033660 thumb_func_start sub_8030FAC sub_8030FAC: @ 8030FAC push {r4-r6,lr} ldr r1, _08030FD4 ldr r0, _08030FD8 ldrb r2, [r0] lsls r0, r2, 9 adds r1, 0x1 adds r0, r1 ldrb r0, [r0] cmp r0, 0 beq _08030FDC adds r0, r2, 0 bl battle_side_get_owner lsls r0, 24 cmp r0, 0 bne _08030FDC bl dp01_tbl1_exec_completed b _08031044 .align 2, 0 _08030FD4: .4byte 0x02023a60 _08030FD8: .4byte 0x02024a60 _08030FDC: ldr r5, _0803104C ldrb r1, [r5] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 ldr r6, _08031050 adds r0, r6 ldrb r1, [r0] movs r2, 0x1 orrs r1, r2 strb r1, [r0] ldrb r0, [r5] lsls r3, r0, 9 ldr r4, _08031054 adds r1, r3, r4 subs r2, r4, 0x3 adds r2, r3, r2 ldrb r2, [r2] subs r4, 0x2 adds r3, r4 ldrb r3, [r3] bl sub_8044804 ldr r2, _08031058 ldrb r1, [r5] adds r1, r2 movs r2, 0 strb r0, [r1] ldrb r1, [r5] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r6 strb r2, [r0, 0x5] ldrb r1, [r5] lsls r0, r1, 9 adds r0, r4 ldrb r0, [r0] cmp r0, 0 beq _08031038 lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r6 movs r1, 0x5D strb r1, [r0, 0x5] _08031038: ldr r0, _0803105C ldrb r1, [r5] lsls r1, 2 adds r1, r0 ldr r0, _08031060 str r0, [r1] _08031044: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0803104C: .4byte 0x02024a60 _08031050: .4byte 0x02017810 _08031054: .4byte 0x02023a64 _08031058: .4byte 0x02024e68 _0803105C: .4byte 0x03004330 _08031060: .4byte sub_8031064 thumb_func_end sub_8030FAC thumb_func_start sub_8031064 sub_8031064: @ 8031064 push {r4,lr} ldr r4, _0803109C ldrb r1, [r4] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 ldr r3, _080310A0 adds r0, r3 ldrb r1, [r0, 0x5] adds r2, r1, 0x1 strb r2, [r0, 0x5] lsls r1, 24 lsrs r1, 24 cmp r1, 0x5C bls _08031094 ldrb r0, [r4] lsls r1, r0, 1 adds r1, r0 lsls r1, 2 adds r1, r3 movs r0, 0 strb r0, [r1, 0x5] bl dp01_tbl1_exec_completed _08031094: pop {r4} pop {r0} bx r0 .align 2, 0 _0803109C: .4byte 0x02024a60 _080310A0: .4byte 0x02017810 thumb_func_end sub_8031064 thumb_func_start sub_80310A4 sub_80310A4: @ 80310A4 push {lr} ldr r0, _080310DC ldrb r3, [r0] lsls r0, r3, 1 adds r0, r3 lsls r0, 2 ldr r1, _080310E0 adds r0, r1 ldrb r1, [r0] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _080310D2 ldr r2, _080310E4 ldr r0, _080310E8 adds r0, r3, r0 ldrb r1, [r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r2 ldr r1, _080310EC str r1, [r0] _080310D2: bl dp01_tbl1_exec_completed pop {r0} bx r0 .align 2, 0 _080310DC: .4byte 0x02024a60 _080310E0: .4byte 0x02017810 _080310E4: .4byte 0x03004b20 _080310E8: .4byte 0x02024e68 _080310EC: .4byte sub_8044CA0 thumb_func_end sub_80310A4 thumb_func_start sub_80310F0 sub_80310F0: @ 80310F0 push {r4,lr} ldr r4, _08031110 ldrb r0, [r4] movs r1, 0x1 bl dp11b_obj_free ldrb r0, [r4] movs r1, 0 bl dp11b_obj_free bl dp01_tbl1_exec_completed pop {r4} pop {r0} bx r0 .align 2, 0 _08031110: .4byte 0x02024a60 thumb_func_end sub_80310F0 thumb_func_start dp01t_33_1_enemy_move dp01t_33_1_enemy_move: @ 8031114 push {r4,lr} ldr r4, _08031164 ldrb r0, [r4] bl sub_8078874 lsls r0, 24 cmp r0, 0 beq _0803115A ldr r3, _08031168 ldr r0, _0803116C ldrb r1, [r4] adds r0, r1, r0 ldrb r0, [r0] lsls r2, r0, 4 adds r2, r0 lsls r2, 2 adds r2, r3 ldr r0, _08031170 lsls r1, 9 adds r0, 0x1 adds r1, r0 adds r2, 0x3E movs r0, 0x1 ldrb r1, [r1] ands r1, r0 lsls r1, 2 ldrb r3, [r2] movs r0, 0x5 negs r0, r0 ands r0, r3 orrs r0, r1 strb r0, [r2] ldrb r0, [r4] bl sub_8031F88 _0803115A: bl dp01_tbl1_exec_completed pop {r4} pop {r0} bx r0 .align 2, 0 _08031164: .4byte 0x02024a60 _08031168: .4byte 0x02020004 _0803116C: .4byte 0x02024be0 _08031170: .4byte 0x02023a60 thumb_func_end dp01t_33_1_enemy_move thumb_func_start bx_exec_buffer_A_ch0_tbl1 bx_exec_buffer_A_ch0_tbl1: @ 8031174 push {r4-r6,lr} sub sp, 0x4 ldr r6, _080311B8 ldrb r0, [r6] bl mplay_80342A4 lsls r0, 24 cmp r0, 0 bne _080311CC ldr r5, _080311BC ldrb r2, [r6] lsls r1, r2, 9 adds r0, r5, 0x1 adds r0, r1, r0 ldrb r3, [r0] adds r0, r5, 0x2 adds r0, r1, r0 ldrb r4, [r0] adds r5, 0x3 adds r1, r5 ldrb r0, [r1] lsls r0, 8 orrs r4, r0 str r4, [sp] adds r0, r2, 0 adds r1, r2, 0 bl move_anim_start_t3 lsls r0, 24 cmp r0, 0 beq _080311C0 bl dp01_tbl1_exec_completed b _080311CC .align 2, 0 _080311B8: .4byte 0x02024a60 _080311BC: .4byte 0x02023a60 _080311C0: ldr r0, _080311D4 ldrb r1, [r6] lsls r1, 2 adds r1, r0 ldr r0, _080311D8 str r0, [r1] _080311CC: add sp, 0x4 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080311D4: .4byte 0x03004330 _080311D8: .4byte sub_802E460 thumb_func_end bx_exec_buffer_A_ch0_tbl1 thumb_func_start dp01t_35_1_link_standby_message_and_free_vram dp01t_35_1_link_standby_message_and_free_vram: @ 80311DC push {r4,lr} ldr r1, _080311FC ldr r0, _08031200 ldrb r0, [r0] lsls r0, 9 adds r1, 0x1 adds r0, r1 ldrb r0, [r0] cmp r0, 0x1 beq _0803120E cmp r0, 0x1 bgt _08031204 cmp r0, 0 beq _0803120A b _0803122C .align 2, 0 _080311FC: .4byte 0x02023a60 _08031200: .4byte 0x02024a60 _08031204: cmp r0, 0x2 beq _08031228 b _0803122C _0803120A: bl b_link_standby_message _0803120E: ldr r4, _08031224 ldrb r0, [r4] movs r1, 0x1 bl dp11b_obj_free ldrb r0, [r4] movs r1, 0 bl dp11b_obj_free b _0803122C .align 2, 0 _08031224: .4byte 0x02024a60 _08031228: bl b_link_standby_message _0803122C: bl dp01_tbl1_exec_completed pop {r4} pop {r0} bx r0 thumb_func_end dp01t_35_1_link_standby_message_and_free_vram thumb_func_start sub_8031238 sub_8031238: @ 8031238 push {r4,lr} ldr r1, _08031258 ldr r4, _0803125C ldrb r3, [r4] lsls r0, r3, 9 adds r1, 0x1 adds r0, r1 ldrb r2, [r0] cmp r2, 0x1 beq _08031280 cmp r2, 0x1 bgt _08031260 cmp r2, 0 beq _08031266 b _08031290 .align 2, 0 _08031258: .4byte 0x02023a60 _0803125C: .4byte 0x02024a60 _08031260: cmp r2, 0x2 beq _08031288 b _08031290 _08031266: ldr r0, _08031278 adds r0, r3, r0 strb r2, [r0] ldr r1, _0803127C ldrb r0, [r4] adds r0, r1 strb r2, [r0] b _08031290 .align 2, 0 _08031278: .4byte 0x02024e60 _0803127C: .4byte 0x02024e64 _08031280: ldr r0, _08031284 b _0803128A .align 2, 0 _08031284: .4byte 0x02024e60 _08031288: ldr r0, _0803129C _0803128A: adds r0, r3, r0 movs r1, 0 strb r1, [r0] _08031290: bl dp01_tbl1_exec_completed pop {r4} pop {r0} bx r0 .align 2, 0 _0803129C: .4byte 0x02024e64 thumb_func_end sub_8031238 thumb_func_start sub_80312A0 sub_80312A0: @ 80312A0 push {r4,lr} ldr r2, _080312D8 ldr r1, _080312DC ldr r4, _080312E0 ldrb r0, [r4] lsls r0, 9 adds r1, 0x1 adds r0, r1 ldrb r0, [r0] strb r0, [r2] movs r0, 0x5 bl sub_8074D28 movs r0, 0x3 bl BeginFastPaletteFade bl dp01_tbl1_exec_completed ldr r1, _080312E4 ldrb r0, [r4] lsls r0, 2 adds r0, r1 ldr r1, _080312E8 str r1, [r0] pop {r4} pop {r0} bx r0 .align 2, 0 _080312D8: .4byte 0x02024d26 _080312DC: .4byte 0x02023a60 _080312E0: .4byte 0x02024a60 _080312E4: .4byte 0x03004330 _080312E8: .4byte sub_802D18C thumb_func_end sub_80312A0 thumb_func_start nullsub_43 nullsub_43: @ 80312EC bx lr thumb_func_end nullsub_43 thumb_func_start sub_80312F0 sub_80312F0: @ 80312F0 push {r4-r7,lr} adds r6, r0, 0 ldrh r0, [r6, 0x30] lsls r0, 24 lsrs r0, 24 ldr r7, _08031334 lsls r1, r0, 4 adds r1, r0 lsls r5, r1, 2 adds r3, r5, r7 adds r0, r3, 0 adds r0, 0x3F ldrb r4, [r0] lsls r0, r4, 26 cmp r0, 0 bge _08031354 adds r0, r3, 0 adds r0, 0x3E ldrb r0, [r0] lsls r0, 29 cmp r0, 0 blt _08031354 adds r1, r3, 0 adds r1, 0x2C ldrb r2, [r1] lsls r0, r2, 25 cmp r0, 0 bge _08031338 movs r0, 0x41 negs r0, r0 ands r0, r2 strb r0, [r1] b _08031354 .align 2, 0 _08031334: .4byte 0x02020004 _08031338: lsls r0, r4, 27 cmp r0, 0 bge _08031354 adds r0, r7, 0 adds r0, 0x1C adds r0, r5, r0 ldr r1, _0803135C str r1, [r0] adds r0, r3, 0 movs r1, 0 bl StartSpriteAffineAnim ldr r0, _08031360 str r0, [r6, 0x1C] _08031354: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0803135C: .4byte sub_80105DC _08031360: .4byte SpriteCallbackDummy thumb_func_end sub_80312F0 thumb_func_start unref_sub_8031364 unref_sub_8031364: @ 8031364 push {r4,lr} adds r4, r0, 0 lsls r1, 24 adds r3, r4, 0 adds r3, 0x2C ldrb r0, [r3] movs r2, 0x40 orrs r0, r2 strb r0, [r3] ldr r0, _08031388 str r0, [r4, 0x1C] cmp r1, 0 bne _0803138C adds r0, r4, 0 movs r1, 0x1 bl StartSpriteAffineAnim b _08031394 .align 2, 0 _08031388: .4byte SpriteCallbackDummy _0803138C: adds r0, r4, 0 movs r1, 0x1 bl StartSpriteAffineAnim _08031394: adds r0, r4, 0 bl AnimateSprite pop {r4} pop {r0} bx r0 thumb_func_end unref_sub_8031364 thumb_func_start sub_80313A0 sub_80313A0: @ 80313A0 push {lr} adds r2, r0, 0 ldr r0, _080313C8 ldrh r1, [r0] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _080313C2 ldrh r0, [r2, 0x2E] ldrh r1, [r2, 0x24] adds r0, r1 strh r0, [r2, 0x24] lsls r0, 16 cmp r0, 0 bne _080313C2 ldr r0, _080313CC str r0, [r2, 0x1C] _080313C2: pop {r0} bx r0 .align 2, 0 _080313C8: .4byte 0x02024de8 _080313CC: .4byte SpriteCallbackDummy thumb_func_end sub_80313A0 thumb_func_start move_anim_start_t2_for_situation move_anim_start_t2_for_situation: @ 80313D0 push {r4-r6,lr} adds r4, r1, 0 lsls r0, 24 ldr r5, _08031400 ldrb r2, [r5] lsls r1, r2, 1 adds r1, r2 lsls r1, 2 ldr r6, _08031404 adds r1, r6 ldrb r2, [r1] movs r3, 0x10 orrs r2, r3 strb r2, [r1] cmp r0, 0 bne _0803144C cmp r4, 0x20 bne _08031408 ldrb r0, [r5] movs r1, 0x6 bl move_anim_start_t2 b _080314C2 .align 2, 0 _08031400: .4byte 0x02024a60 _08031404: .4byte 0x02017810 _08031408: cmp r4, 0x8 beq _08031414 movs r0, 0x80 ands r0, r4 cmp r0, 0 beq _0803141E _08031414: ldrb r0, [r5] movs r1, 0 bl move_anim_start_t2 b _080314C2 _0803141E: cmp r4, 0x10 bne _0803142C ldrb r0, [r5] movs r1, 0x2 bl move_anim_start_t2 b _080314C2 _0803142C: movs r0, 0x7 ands r0, r4 cmp r0, 0 beq _0803143E ldrb r0, [r5] movs r1, 0x4 bl move_anim_start_t2 b _080314C2 _0803143E: cmp r4, 0x40 bne _080314AE ldrb r0, [r5] movs r1, 0x5 bl move_anim_start_t2 b _080314C2 _0803144C: movs r0, 0xF0 lsls r0, 12 ands r0, r4 cmp r0, 0 beq _08031460 ldrb r0, [r5] movs r1, 0x3 bl move_anim_start_t2 b _080314C2 _08031460: movs r0, 0x7 ands r0, r4 cmp r0, 0 beq _08031472 ldrb r0, [r5] movs r1, 0x1 bl move_anim_start_t2 b _080314C2 _08031472: movs r0, 0x80 lsls r0, 21 ands r0, r4 cmp r0, 0 beq _08031486 ldrb r0, [r5] movs r1, 0x7 bl move_anim_start_t2 b _080314C2 _08031486: movs r0, 0x80 lsls r0, 20 ands r0, r4 cmp r0, 0 beq _0803149A ldrb r0, [r5] movs r1, 0x8 bl move_anim_start_t2 b _080314C2 _0803149A: movs r0, 0xE0 lsls r0, 8 ands r0, r4 cmp r0, 0 beq _080314AE ldrb r0, [r5] movs r1, 0x9 bl move_anim_start_t2 b _080314C2 _080314AE: ldrb r0, [r5] lsls r1, r0, 1 adds r1, r0 lsls r1, 2 adds r1, r6 ldrb r2, [r1] movs r0, 0x11 negs r0, r0 ands r0, r2 strb r0, [r1] _080314C2: pop {r4-r6} pop {r0} bx r0 thumb_func_end move_anim_start_t2_for_situation thumb_func_start move_anim_start_t3 move_anim_start_t3: @ 80314C8 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} ldr r4, [sp, 0x20] lsls r0, 24 lsrs r6, r0, 24 lsls r1, 24 lsrs r1, 24 mov r9, r1 lsls r2, 24 lsrs r2, 24 mov r10, r2 lsls r3, 24 lsrs r5, r3, 24 lsls r4, 16 lsrs r7, r4, 16 cmp r5, 0 bne _0803150C movs r0, 0x80 ands r0, r7 cmp r0, 0 beq _0803150C ldr r0, _08031508 adds r0, r6, r0 movs r2, 0x7F adds r1, r7, 0 ands r1, r2 strb r1, [r0] movs r0, 0x1 b _080315C2 .align 2, 0 _08031508: .4byte 0x02024e84 _0803150C: lsls r1, r6, 2 ldr r0, _08031530 adds r4, r1, r0 ldrb r1, [r4] movs r0, 0x4 mov r8, r0 ands r0, r1 cmp r0, 0 beq _08031578 adds r0, r5, 0 bl sub_803163C lsls r0, 24 cmp r0, 0 bne _08031534 movs r0, 0x1 b _080315C2 .align 2, 0 _08031530: .4byte 0x02017800 _08031534: ldrb r1, [r4] mov r0, r8 ands r0, r1 cmp r0, 0 beq _08031578 cmp r5, 0x2 bne _08031578 ldr r1, _08031570 ldr r0, _08031574 adds r0, r6, r0 ldrb r2, [r0] lsls r0, r2, 4 adds r0, r2 lsls r0, 2 adds r0, r1 adds r0, 0x3E ldrb r0, [r0] lsls r0, 29 cmp r0, 0 bge _08031578 adds r0, r6, 0 movs r1, 0x1 bl refresh_graphics_maybe adds r0, r6, 0 bl sub_80324E0 movs r0, 0x1 b _080315C2 .align 2, 0 _08031570: .4byte 0x02020004 _08031574: .4byte 0x02024be0 _08031578: ldr r0, _080315D0 mov r1, r9 strb r1, [r0] ldr r0, _080315D4 mov r1, r10 strb r1, [r0] ldr r4, _080315D8 strh r7, [r4] ldr r0, _080315DC adds r1, r5, 0 movs r2, 0 bl move_something ldr r0, _080315E0 movs r1, 0xA bl CreateTask lsls r0, 24 lsrs r0, 24 ldr r2, _080315E4 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 strh r6, [r1, 0x8] movs r0, 0x8 ldrsh r1, [r1, r0] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 subs r4, 0x30 adds r0, r4 ldrb r1, [r0] movs r2, 0x20 orrs r1, r2 strb r1, [r0] movs r0, 0 _080315C2: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _080315D0: .4byte 0x0202f7c8 _080315D4: .4byte 0x0202f7c9 _080315D8: .4byte 0x02017840 _080315DC: .4byte gBattleAnims_Unknown1 _080315E0: .4byte sub_80315E8 _080315E4: .4byte 0x03004b20 thumb_func_end move_anim_start_t3 thumb_func_start sub_80315E8 sub_80315E8: @ 80315E8 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, _0803162C ldr r0, [r0] bl _call_via_r0 ldr r0, _08031630 ldrb r0, [r0] cmp r0, 0 bne _08031626 ldr r1, _08031634 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 movs r1, 0x8 ldrsh r0, [r0, r1] lsls r1, r0, 1 adds r1, r0 lsls r1, 2 ldr r0, _08031638 adds r1, r0 ldrb r2, [r1] movs r0, 0x21 negs r0, r0 ands r0, r2 strb r0, [r1] adds r0, r4, 0 bl DestroyTask _08031626: pop {r4} pop {r0} bx r0 .align 2, 0 _0803162C: .4byte 0x0202f7ac _08031630: .4byte 0x0202f7b1 _08031634: .4byte 0x03004b20 _08031638: .4byte 0x02017810 thumb_func_end sub_80315E8 thumb_func_start sub_803163C sub_803163C: @ 803163C push {lr} lsls r0, 24 lsrs r0, 24 cmp r0, 0xD bgt _08031650 cmp r0, 0xA bge _08031654 cmp r0, 0x2 beq _08031654 b _08031658 _08031650: cmp r0, 0x11 bne _08031658 _08031654: movs r0, 0x1 b _0803165A _08031658: movs r0, 0 _0803165A: pop {r1} bx r1 thumb_func_end sub_803163C thumb_func_start move_anim_start_t4 move_anim_start_t4: @ 8031660 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 lsls r3, 24 lsrs r3, 24 ldr r0, _080316B4 strb r1, [r0] ldr r0, _080316B8 strb r2, [r0] ldr r0, _080316BC adds r1, r3, 0 movs r2, 0 bl move_something ldr r0, _080316C0 movs r1, 0xA bl CreateTask lsls r0, 24 lsrs r0, 24 ldr r2, _080316C4 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 strh r4, [r1, 0x8] movs r0, 0x8 ldrsh r1, [r1, r0] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 ldr r1, _080316C8 adds r0, r1 ldrb r1, [r0] movs r2, 0x40 orrs r1, r2 strb r1, [r0] pop {r4} pop {r0} bx r0 .align 2, 0 _080316B4: .4byte 0x0202f7c8 _080316B8: .4byte 0x0202f7c9 _080316BC: .4byte gBattleAnims_Unknown2 _080316C0: .4byte sub_80316CC _080316C4: .4byte 0x03004b20 _080316C8: .4byte 0x02017810 thumb_func_end move_anim_start_t4 thumb_func_start sub_80316CC sub_80316CC: @ 80316CC push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, _08031710 ldr r0, [r0] bl _call_via_r0 ldr r0, _08031714 ldrb r0, [r0] cmp r0, 0 bne _0803170A ldr r1, _08031718 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 movs r1, 0x8 ldrsh r0, [r0, r1] lsls r1, r0, 1 adds r1, r0 lsls r1, 2 ldr r0, _0803171C adds r1, r0 ldrb r2, [r1] movs r0, 0x41 negs r0, r0 ands r0, r2 strb r0, [r1] adds r0, r4, 0 bl DestroyTask _0803170A: pop {r4} pop {r0} bx r0 .align 2, 0 _08031710: .4byte 0x0202f7ac _08031714: .4byte 0x0202f7b1 _08031718: .4byte 0x03004b20 _0803171C: .4byte 0x02017810 thumb_func_end sub_80316CC thumb_func_start sub_8031720 sub_8031720: @ 8031720 movs r0, 0 bx lr thumb_func_end sub_8031720 thumb_func_start mplay_80342A4 mplay_80342A4: @ 8031724 push {r4,r5,lr} lsls r0, 24 lsrs r4, r0, 24 movs r5, 0 bl mplay_has_finished_maybe lsls r0, 24 cmp r0, 0 beq _08031764 lsls r1, r4, 1 adds r1, r4 lsls r1, 2 ldr r2, _0803176C adds r1, r2 ldrb r0, [r1, 0x8] adds r0, 0x1 strb r0, [r1, 0x8] ldr r0, _08031770 ldrb r1, [r0] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r0, [r0, 0x8] cmp r0, 0x1D bls _08031768 ldr r0, _08031774 bl m4aMPlayStop ldr r0, _08031778 bl m4aMPlayStop _08031764: cmp r5, 0 beq _0803177C _08031768: movs r0, 0x1 b _0803178A .align 2, 0 _0803176C: .4byte 0x02017810 _08031770: .4byte 0x02024a60 _08031774: .4byte 0x030073c0 _08031778: .4byte 0x03007400 _0803177C: lsls r0, r4, 1 adds r0, r4 lsls r0, 2 ldr r1, _08031790 adds r0, r1 strb r5, [r0, 0x8] movs r0, 0 _0803178A: pop {r4,r5} pop {r1} bx r1 .align 2, 0 _08031790: .4byte 0x02017810 thumb_func_end mplay_80342A4 thumb_func_start sub_8031794 sub_8031794: @ 8031794 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x14 mov r8, r0 lsls r1, 24 lsrs r1, 24 mov r9, r1 movs r1, 0 bl PokemonGetField str r0, [sp, 0xC] mov r0, r9 lsls r1, r0, 2 ldr r0, _080317D0 adds r2, r1, r0 ldrh r0, [r2, 0x2] cmp r0, 0 bne _080317D4 mov r0, r8 movs r1, 0xB bl PokemonGetField lsls r0, 16 lsrs r6, r0, 16 ldr r7, [sp, 0xC] b _080317DC .align 2, 0 _080317D0: .4byte 0x02017800 _080317D4: ldrh r6, [r2, 0x2] ldr r0, _08031838 adds r0, r1, r0 ldr r7, [r0] _080317DC: mov r0, r8 movs r1, 0x1 bl PokemonGetField mov r10, r0 mov r0, r9 bl battle_get_per_side_status lsls r0, 24 lsls r5, r6, 3 ldr r1, _0803183C adds r5, r1 ldr r1, _08031840 lsls r2, r6, 2 adds r2, r1 ldrb r1, [r2] ldrb r2, [r2, 0x1] movs r3, 0x80 lsls r3, 18 ldr r4, _08031844 lsrs r0, 22 adds r0, r4 ldr r0, [r0] str r0, [sp] str r6, [sp, 0x4] str r7, [sp, 0x8] adds r0, r5, 0 bl sub_800D334 mov r1, r9 lsls r2, r1, 4 movs r0, 0x80 lsls r0, 1 adds r7, r2, r0 lsls r1, 2 ldr r0, _08031848 adds r0, r1, r0 ldrh r0, [r0, 0x2] str r1, [sp, 0x10] adds r4, r2, 0 cmp r0, 0 bne _0803184C mov r0, r8 bl pokemon_get_pal b _08031856 .align 2, 0 _08031838: .4byte 0x02024e70 _0803183C: .4byte gMonFrontPicTable _08031840: .4byte gMonFrontPicCoords _08031844: .4byte gUnknown_081FAF4C _08031848: .4byte 0x02017800 _0803184C: adds r0, r6, 0 mov r1, r10 ldr r2, [sp, 0xC] bl species_and_otid_get_pal _08031856: adds r5, r0, 0 ldr r1, _080318E0 mov r8, r1 adds r0, r5, 0 bl sub_800D238 mov r0, r8 adds r1, r7, 0 movs r2, 0x20 bl LoadPalette adds r1, r4, 0 adds r1, 0x80 mov r0, r8 movs r2, 0x20 bl LoadPalette ldr r0, _080318E4 cmp r6, r0 bne _080318A2 subs r0, 0x81 adds r7, r4, r0 movs r4, 0xB2 lsls r4, 9 add r4, r8 adds r0, r5, 0 adds r1, r4, 0 bl sub_800D238 ldr r0, _080318E8 add r0, r9 ldrb r0, [r0] lsls r0, 5 adds r0, r4 adds r1, r7, 0 movs r2, 0x20 bl LoadPalette _080318A2: movs r0, 0xBC lsls r0, 9 add r0, r8 ldr r1, [sp, 0x10] adds r0, r1, r0 ldrh r0, [r0, 0x2] cmp r0, 0 beq _080318CE ldr r3, _080318EC adds r0, r7, 0 movs r1, 0x10 movs r2, 0x6 bl BlendPalette lsls r1, r7, 1 ldr r0, _080318F0 adds r0, r1, r0 ldr r2, _080318F4 adds r1, r2 ldr r2, _080318F8 bl CpuSet _080318CE: add sp, 0x14 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080318E0: .4byte 0x02000000 _080318E4: .4byte 0x00000181 _080318E8: .4byte 0x02024e84 _080318EC: .4byte 0x00007fff _080318F0: .4byte 0x0202eec8 _080318F4: .4byte 0x0202eac8 _080318F8: .4byte 0x04000008 thumb_func_end sub_8031794 thumb_func_start sub_80318FC sub_80318FC: @ 80318FC push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x14 mov r8, r0 lsls r1, 24 lsrs r1, 24 mov r9, r1 movs r1, 0 bl PokemonGetField str r0, [sp, 0xC] mov r0, r9 lsls r1, r0, 2 ldr r0, _08031938 adds r2, r1, r0 ldrh r0, [r2, 0x2] cmp r0, 0 bne _0803193C mov r0, r8 movs r1, 0xB bl PokemonGetField lsls r0, 16 lsrs r6, r0, 16 ldr r7, [sp, 0xC] b _08031944 .align 2, 0 _08031938: .4byte 0x02017800 _0803193C: ldrh r6, [r2, 0x2] ldr r0, _080319A0 adds r0, r1, r0 ldr r7, [r0] _08031944: mov r0, r8 movs r1, 0x1 bl PokemonGetField mov r10, r0 mov r0, r9 bl battle_get_per_side_status lsls r0, 24 lsls r5, r6, 3 ldr r1, _080319A4 adds r5, r1 ldr r1, _080319A8 lsls r2, r6, 2 adds r2, r1 ldrb r1, [r2] ldrb r2, [r2, 0x1] movs r3, 0x80 lsls r3, 18 ldr r4, _080319AC lsrs r0, 22 adds r0, r4 ldr r0, [r0] str r0, [sp] str r6, [sp, 0x4] str r7, [sp, 0x8] adds r0, r5, 0 bl sub_800D334 mov r1, r9 lsls r2, r1, 4 movs r0, 0x80 lsls r0, 1 adds r7, r2, r0 lsls r1, 2 ldr r0, _080319B0 adds r0, r1, r0 ldrh r0, [r0, 0x2] str r1, [sp, 0x10] adds r4, r2, 0 cmp r0, 0 bne _080319B4 mov r0, r8 bl pokemon_get_pal b _080319BE .align 2, 0 _080319A0: .4byte 0x02024e70 _080319A4: .4byte gMonBackPicTable _080319A8: .4byte gMonBackPicCoords _080319AC: .4byte gUnknown_081FAF4C _080319B0: .4byte 0x02017800 _080319B4: adds r0, r6, 0 mov r1, r10 ldr r2, [sp, 0xC] bl species_and_otid_get_pal _080319BE: adds r5, r0, 0 ldr r1, _08031A48 mov r8, r1 adds r0, r5, 0 bl sub_800D238 mov r0, r8 adds r1, r7, 0 movs r2, 0x20 bl LoadPalette adds r1, r4, 0 adds r1, 0x80 mov r0, r8 movs r2, 0x20 bl LoadPalette ldr r0, _08031A4C cmp r6, r0 bne _08031A0A subs r0, 0x81 adds r7, r4, r0 movs r4, 0xB2 lsls r4, 9 add r4, r8 adds r0, r5, 0 adds r1, r4, 0 bl sub_800D238 ldr r0, _08031A50 add r0, r9 ldrb r0, [r0] lsls r0, 5 adds r0, r4 adds r1, r7, 0 movs r2, 0x20 bl LoadPalette _08031A0A: movs r0, 0xBC lsls r0, 9 add r0, r8 ldr r1, [sp, 0x10] adds r0, r1, r0 ldrh r0, [r0, 0x2] cmp r0, 0 beq _08031A36 ldr r3, _08031A54 adds r0, r7, 0 movs r1, 0x10 movs r2, 0x6 bl BlendPalette lsls r1, r7, 1 ldr r0, _08031A58 adds r0, r1, r0 ldr r2, _08031A5C adds r1, r2 ldr r2, _08031A60 bl CpuSet _08031A36: add sp, 0x14 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08031A48: .4byte 0x02000000 _08031A4C: .4byte 0x00000181 _08031A50: .4byte 0x02024e84 _08031A54: .4byte 0x00007fff _08031A58: .4byte 0x0202eec8 _08031A5C: .4byte 0x0202eac8 _08031A60: .4byte 0x04000008 thumb_func_end sub_80318FC thumb_func_start unref_sub_8031A64 unref_sub_8031A64: @ 8031A64 bx lr thumb_func_end unref_sub_8031A64 thumb_func_start nullsub_9 nullsub_9: @ 8031A68 bx lr thumb_func_end nullsub_9 thumb_func_start sub_8031A6C sub_8031A6C: @ 8031A6C push {r4-r6,lr} sub sp, 0x10 adds r4, r0, 0 adds r0, r1, 0 lsls r4, 16 lsrs r4, 16 lsls r0, 24 lsrs r0, 24 bl battle_get_per_side_status lsls r0, 24 lsls r6, r4, 3 ldr r5, _08031ADC adds r5, r6, r5 ldr r1, _08031AE0 lsls r4, 2 adds r4, r1 ldrb r1, [r4] ldrb r2, [r4, 0x1] movs r3, 0x80 lsls r3, 18 ldr r4, _08031AE4 lsrs r0, 22 adds r0, r4 ldr r4, [r0] str r4, [sp] movs r0, 0 str r0, [sp, 0x4] adds r0, r5, 0 bl DecompressPicFromTable_2 str r4, [sp, 0x8] ldrh r2, [r5, 0x4] ldr r0, _08031AE8 ldr r1, [sp, 0xC] ands r1, r0 orrs r1, r2 str r1, [sp, 0xC] ldrh r2, [r5, 0x6] lsls r2, 16 ldr r0, _08031AEC ands r0, r1 orrs r0, r2 str r0, [sp, 0xC] add r0, sp, 0x8 bl LoadCompressedObjectPic ldr r0, _08031AF0 adds r6, r0 adds r0, r6, 0 bl LoadCompressedObjectPalette add sp, 0x10 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08031ADC: .4byte gTrainerFrontPicTable _08031AE0: .4byte gTrainerFrontPicCoords _08031AE4: .4byte gUnknown_081FAF4C _08031AE8: .4byte 0xffff0000 _08031AEC: .4byte 0x0000ffff _08031AF0: .4byte gTrainerFrontPicPaletteTable thumb_func_end sub_8031A6C thumb_func_start sub_8031AF4 sub_8031AF4: @ 8031AF4 push {r4-r6,lr} mov r6, r8 push {r6} sub sp, 0x8 adds r4, r0, 0 adds r5, r1, 0 lsls r4, 16 lsrs r4, 16 lsls r5, 24 lsrs r5, 24 adds r0, r5, 0 bl battle_get_per_side_status lsls r0, 24 lsls r1, r4, 3 mov r8, r1 ldr r6, _08031B60 add r6, r8 ldr r1, _08031B64 lsls r4, 2 adds r4, r1 ldrb r1, [r4] ldrb r2, [r4, 0x1] movs r3, 0x80 lsls r3, 18 ldr r4, _08031B68 lsrs r0, 22 adds r0, r4 ldr r0, [r0] str r0, [sp] movs r0, 0 str r0, [sp, 0x4] adds r0, r6, 0 bl DecompressPicFromTable_2 ldr r0, _08031B6C add r8, r0 mov r1, r8 ldr r0, [r1] lsls r5, 20 movs r1, 0x80 lsls r1, 17 adds r5, r1 lsrs r5, 16 adds r1, r5, 0 movs r2, 0x20 bl LoadCompressedPalette add sp, 0x8 pop {r3} mov r8, r3 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08031B60: .4byte gTrainerBackPicTable _08031B64: .4byte gTrainerBackPicCoords _08031B68: .4byte gUnknown_081FAF4C _08031B6C: .4byte gTrainerBackPicPaletteTable thumb_func_end sub_8031AF4 thumb_func_start nullsub_10 nullsub_10: @ 8031B70 bx lr thumb_func_end nullsub_10 thumb_func_start sub_8031B74 sub_8031B74: @ 8031B74 push {r4,lr} adds r4, r0, 0 lsls r4, 16 ldr r0, _08031B98 lsrs r4, 13 adds r0, r4, r0 ldrh r0, [r0, 0x4] bl FreeSpritePaletteByTag ldr r0, _08031B9C adds r4, r0 ldrh r0, [r4, 0x6] bl FreeSpriteTilesByTag pop {r4} pop {r0} bx r0 .align 2, 0 _08031B98: .4byte gTrainerFrontPicPaletteTable _08031B9C: .4byte gTrainerFrontPicTable thumb_func_end sub_8031B74 thumb_func_start unref_sub_8031BA0 unref_sub_8031BA0: @ 8031BA0 push {r4-r7,lr} ldr r4, _08031BCC adds r0, r4, 0 bl LoadSpritePalette adds r4, 0x8 adds r0, r4, 0 bl LoadSpritePalette bl battle_type_is_double lsls r0, 24 cmp r0, 0 bne _08031BD8 ldr r0, _08031BD0 bl LoadCompressedObjectPic ldr r0, _08031BD4 bl LoadCompressedObjectPic movs r5, 0x2 b _08031BFA .align 2, 0 _08031BCC: .4byte gUnknown_0820A4D4 _08031BD0: .4byte gUnknown_0820A47C _08031BD4: .4byte gUnknown_0820A484 _08031BD8: ldr r4, _08031C20 adds r0, r4, 0 bl LoadCompressedObjectPic adds r4, 0x8 adds r0, r4, 0 bl LoadCompressedObjectPic ldr r4, _08031C24 adds r0, r4, 0 bl LoadCompressedObjectPic adds r4, 0x8 adds r0, r4, 0 bl LoadCompressedObjectPic movs r5, 0x4 _08031BFA: movs r4, 0 cmp r4, r5 bcs _08031C1A ldr r7, _08031C28 ldr r6, _08031C2C _08031C04: adds r0, r4, r7 ldrb r0, [r0] lsls r0, 3 adds r0, r6 bl LoadCompressedObjectPic adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, r5 bcc _08031C04 _08031C1A: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08031C20: .4byte gUnknown_0820A48C _08031C24: .4byte gUnknown_0820A49C _08031C28: .4byte 0x02024a72 _08031C2C: .4byte gUnknown_0820A4B4 thumb_func_end unref_sub_8031BA0 thumb_func_start sub_8031C30 sub_8031C30: @ 8031C30 push {r4-r6,lr} lsls r0, 24 lsrs r4, r0, 24 adds r5, r4, 0 movs r6, 0 cmp r4, 0 bne _08031C40 b _08031D52 _08031C40: cmp r4, 0x1 bne _08031C5C ldr r4, _08031C58 adds r0, r4, 0 bl LoadSpritePalette adds r4, 0x8 adds r0, r4, 0 bl LoadSpritePalette b _08031D52 .align 2, 0 _08031C58: .4byte gUnknown_0820A4D4 _08031C5C: bl battle_type_is_double lsls r0, 24 cmp r0, 0 bne _08031CC4 cmp r4, 0x2 bne _08031C94 ldr r0, _08031C80 ldrh r1, [r0] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _08031C88 ldr r0, _08031C84 bl LoadCompressedObjectPic b _08031D52 .align 2, 0 _08031C80: .4byte 0x020239f8 _08031C84: .4byte gUnknown_0820A4AC _08031C88: ldr r0, _08031C90 bl LoadCompressedObjectPic b _08031D52 .align 2, 0 _08031C90: .4byte gUnknown_0820A47C _08031C94: cmp r4, 0x3 bne _08031CA4 ldr r0, _08031CA0 bl LoadCompressedObjectPic b _08031D52 .align 2, 0 _08031CA0: .4byte gUnknown_0820A484 _08031CA4: cmp r4, 0x4 bne _08031CB4 ldr r0, _08031CB0 ldrb r0, [r0] b _08031D3C .align 2, 0 _08031CB0: .4byte 0x02024a72 _08031CB4: cmp r4, 0x5 bne _08031D50 ldr r0, _08031CC0 ldrb r0, [r0, 0x1] b _08031D3C .align 2, 0 _08031CC0: .4byte 0x02024a72 _08031CC4: cmp r4, 0x2 bne _08031CD4 ldr r0, _08031CD0 bl LoadCompressedObjectPic b _08031D52 .align 2, 0 _08031CD0: .4byte gUnknown_0820A48C _08031CD4: cmp r4, 0x3 bne _08031CE4 ldr r0, _08031CE0 bl LoadCompressedObjectPic b _08031D52 .align 2, 0 _08031CE0: .4byte gUnknown_0820A494 _08031CE4: cmp r4, 0x4 bne _08031CF4 ldr r0, _08031CF0 bl LoadCompressedObjectPic b _08031D52 .align 2, 0 _08031CF0: .4byte gUnknown_0820A49C _08031CF4: cmp r4, 0x5 bne _08031D04 ldr r0, _08031D00 bl LoadCompressedObjectPic b _08031D52 .align 2, 0 _08031D00: .4byte gUnknown_0820A4A4 _08031D04: cmp r4, 0x6 bne _08031D14 ldr r0, _08031D10 ldrb r0, [r0] b _08031D3C .align 2, 0 _08031D10: .4byte 0x02024a72 _08031D14: cmp r4, 0x7 bne _08031D24 ldr r0, _08031D20 ldrb r0, [r0, 0x1] b _08031D3C .align 2, 0 _08031D20: .4byte 0x02024a72 _08031D24: cmp r4, 0x8 bne _08031D34 ldr r0, _08031D30 ldrb r0, [r0, 0x2] b _08031D3C .align 2, 0 _08031D30: .4byte 0x02024a72 _08031D34: cmp r5, 0x9 bne _08031D50 ldr r0, _08031D48 ldrb r0, [r0, 0x3] _08031D3C: lsls r0, 3 ldr r1, _08031D4C adds r0, r1 bl LoadCompressedObjectPic b _08031D52 .align 2, 0 _08031D48: .4byte 0x02024a72 _08031D4C: .4byte gUnknown_0820A4B4 _08031D50: movs r6, 0x1 _08031D52: adds r0, r6, 0 pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_8031C30 thumb_func_start load_gfxc_health_bar load_gfxc_health_bar: @ 8031D5C push {lr} ldr r0, _08031D6C movs r1, 0x80 lsls r1, 18 bl sub_800D238 pop {r0} bx r0 .align 2, 0 _08031D6C: .4byte gUnknown_08D09C48 thumb_func_end load_gfxc_health_bar thumb_func_start battle_load_something battle_load_something: @ 8031D70 push {r4-r6,lr} adds r5, r0, 0 adds r4, r1, 0 movs r6, 0 ldrb r0, [r5] cmp r0, 0x6 bls _08031D80 b _08031EDE _08031D80: lsls r0, 2 ldr r1, _08031D8C adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08031D8C: .4byte _08031D90 .align 2, 0 _08031D90: .4byte _08031DAC .4byte _08031DB2 .4byte _08031EBC .4byte _08031DC8 .4byte _08031DF8 .4byte _08031E34 .4byte _08031ED4 _08031DAC: bl sub_8031F0C b _08031EBC _08031DB2: ldrb r0, [r4] bl sub_8031C30 lsls r0, 24 cmp r0, 0 beq _08031DC0 b _08031EB8 _08031DC0: ldrb r0, [r4] adds r0, 0x1 strb r0, [r4] b _08031EDE _08031DC8: ldr r0, _08031DE0 ldrh r1, [r0] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _08031DE4 ldrb r0, [r4] cmp r0, 0 bne _08031DE4 bl battle_make_oam_safari_battle b _08031DEA .align 2, 0 _08031DE0: .4byte 0x020239f8 _08031DE4: ldrb r0, [r4] bl battle_make_oam_normal_battle _08031DEA: ldr r2, _08031DF4 ldrb r1, [r4] adds r1, r2 strb r0, [r1] b _08031EA6 .align 2, 0 _08031DF4: .4byte 0x03004340 _08031DF8: ldrb r0, [r4] bl sub_8043F44 ldr r0, _08031E18 ldrb r1, [r4] adds r0, r1, r0 ldrb r0, [r0] cmp r0, 0x1 bhi _08031E20 ldr r0, _08031E1C adds r0, r1, r0 ldrb r0, [r0] movs r1, 0 bl nullsub_11 b _08031EA6 .align 2, 0 _08031E18: .4byte 0x02024a72 _08031E1C: .4byte 0x03004340 _08031E20: ldr r0, _08031E30 adds r0, r1, r0 ldrb r0, [r0] movs r1, 0x1 bl nullsub_11 b _08031EA6 .align 2, 0 _08031E30: .4byte 0x03004340 _08031E34: ldrb r0, [r4] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 bne _08031E7C ldr r0, _08031E6C ldrh r1, [r0] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _08031E9A ldr r0, _08031E70 ldrb r1, [r4] adds r0, r1, r0 ldrb r0, [r0] ldr r2, _08031E74 lsls r1, 1 adds r1, r2 ldrh r2, [r1] movs r1, 0x64 muls r1, r2 ldr r2, _08031E78 adds r1, r2 movs r2, 0 bl sub_8045A5C b _08031E9A .align 2, 0 _08031E6C: .4byte 0x020239f8 _08031E70: .4byte 0x03004340 _08031E74: .4byte 0x02024a6a _08031E78: .4byte 0x03004360 _08031E7C: ldr r0, _08031EC4 ldrb r1, [r4] adds r0, r1, r0 ldrb r0, [r0] ldr r2, _08031EC8 lsls r1, 1 adds r1, r2 ldrh r2, [r1] movs r1, 0x64 muls r1, r2 ldr r2, _08031ECC adds r1, r2 movs r2, 0 bl sub_8045A5C _08031E9A: ldr r1, _08031EC4 ldrb r0, [r4] adds r0, r1 ldrb r0, [r0] bl sub_8043DB0 _08031EA6: ldrb r0, [r4] adds r0, 0x1 strb r0, [r4] ldr r1, _08031ED0 lsls r0, 24 lsrs r0, 24 ldrb r1, [r1] cmp r0, r1 bne _08031EDE _08031EB8: movs r0, 0 strb r0, [r4] _08031EBC: ldrb r0, [r5] adds r0, 0x1 strb r0, [r5] b _08031EDE .align 2, 0 _08031EC4: .4byte 0x03004340 _08031EC8: .4byte 0x02024a6a _08031ECC: .4byte 0x030045c0 _08031ED0: .4byte 0x02024a68 _08031ED4: bl sub_80327CC bl sub_8094958 movs r6, 0x1 _08031EDE: adds r0, r6, 0 pop {r4-r6} pop {r1} bx r1 thumb_func_end battle_load_something thumb_func_start sub_8031EE8 sub_8031EE8: @ 8031EE8 push {r4,lr} ldr r4, _08031F08 adds r0, r4, 0 movs r1, 0 movs r2, 0x30 bl memset adds r4, 0x30 adds r0, r4, 0 movs r1, 0 movs r2, 0x10 bl memset pop {r4} pop {r0} bx r0 .align 2, 0 _08031F08: .4byte 0x02017810 thumb_func_end sub_8031EE8 thumb_func_start sub_8031F0C sub_8031F0C: @ 8031F0C push {lr} bl sub_8031EE8 ldr r0, _08031F20 movs r1, 0 movs r2, 0x10 bl memset pop {r0} bx r0 .align 2, 0 _08031F20: .4byte 0x02017800 thumb_func_end sub_8031F0C thumb_func_start sub_8031F24 sub_8031F24: @ 8031F24 push {r4-r7,lr} mov r7, r8 push {r7} movs r4, 0 ldr r5, _08031F78 ldrb r0, [r5] cmp r4, r0 bge _08031F6E ldr r0, _08031F7C mov r8, r0 movs r7, 0x1 movs r0, 0x2 negs r0, r0 mov r12, r0 ldr r6, _08031F80 ldr r3, _08031F84 _08031F44: adds r0, r4, r6 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 add r0, r8 adds r0, 0x3E ldrb r1, [r0] lsls r1, 29 lsrs r1, 31 ands r1, r7 ldrb r2, [r3] mov r0, r12 ands r0, r2 orrs r0, r1 strb r0, [r3] adds r3, 0x4 adds r4, 0x1 ldrb r0, [r5] cmp r4, r0 blt _08031F44 _08031F6E: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08031F78: .4byte 0x02024a68 _08031F7C: .4byte 0x02020004 _08031F80: .4byte 0x02024be0 _08031F84: .4byte 0x02017800 thumb_func_end sub_8031F24 thumb_func_start sub_8031F88 sub_8031F88: @ 8031F88 lsls r0, 24 lsrs r0, 24 lsls r3, r0, 2 ldr r1, _08031FB8 adds r3, r1 ldr r2, _08031FBC ldr r1, _08031FC0 adds r0, r1 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 adds r0, 0x3E ldrb r1, [r0] lsls r1, 29 lsrs r1, 31 ldrb r2, [r3] movs r0, 0x2 negs r0, r0 ands r0, r2 orrs r0, r1 strb r0, [r3] bx lr .align 2, 0 _08031FB8: .4byte 0x02017800 _08031FBC: .4byte 0x02020004 _08031FC0: .4byte 0x02024be0 thumb_func_end sub_8031F88 thumb_func_start sub_8031FC4 sub_8031FC4: @ 8031FC4 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x10 lsls r0, 24 lsrs r0, 24 mov r8, r0 lsls r1, 24 lsrs r1, 24 str r1, [sp, 0xC] lsls r2, 24 cmp r2, 0 beq _08032088 ldr r0, _08032064 mov r1, r8 adds r6, r1, r0 ldrb r1, [r6] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r7, _08032068 adds r0, r7 ldr r4, _0803206C ldrb r1, [r4] bl StartSpriteAnim mov r2, r8 lsls r0, r2, 20 movs r5, 0x80 lsls r5, 17 adds r0, r5 lsrs r5, r0, 16 ldrh r0, [r4] lsls r0, 5 ldr r2, _08032070 adds r1, r4, r2 adds r0, r1 adds r1, r5, 0 movs r2, 0x20 bl LoadPalette ldr r0, _08032074 add r0, r8 ldrh r1, [r4] strb r1, [r0] mov r1, r8 lsls r0, r1, 2 subs r4, 0x40 adds r0, r4 ldrh r0, [r0, 0x2] cmp r0, 0 beq _0803204C ldr r3, _08032078 adds r0, r5, 0 movs r1, 0x10 movs r2, 0x6 bl BlendPalette lsls r1, r5, 1 ldr r0, _0803207C adds r0, r1, r0 ldr r2, _08032080 adds r1, r2 ldr r2, _08032084 bl CpuSet _0803204C: mov r0, r8 bl sub_8077F68 ldrb r2, [r6] lsls r1, r2, 4 adds r1, r2 lsls r1, 2 adds r1, r7 lsls r0, 24 lsrs r0, 24 strh r0, [r1, 0x22] b _080322F6 .align 2, 0 _08032064: .4byte 0x02024be0 _08032068: .4byte 0x02020004 _0803206C: .4byte 0x02017840 _08032070: .4byte 0xffffebc0 _08032074: .4byte 0x02024e84 _08032078: .4byte 0x00007fff _0803207C: .4byte 0x0202eec8 _08032080: .4byte 0x0202eac8 _08032084: .4byte 0x04000008 _08032088: bl sub_8076BE0 lsls r0, 24 cmp r0, 0 beq _080320D0 movs r2, 0 mov r10, r2 ldr r5, _080320C0 ldrh r7, [r5, 0x2] ldr r4, [r5, 0x8] mov r9, r4 ldr r6, [r5, 0xC] lsls r0, r7, 3 ldr r1, _080320C4 adds r0, r1 ldr r1, _080320C8 lsls r2, r7, 2 adds r2, r1 ldrb r1, [r2] ldrb r2, [r2, 0x1] movs r3, 0x80 lsls r3, 18 ldr r4, _080320CC ldr r4, [r4] str r4, [sp] str r7, [sp, 0x4] ldr r4, [r5, 0x10] b _08032184 .align 2, 0 _080320C0: .4byte 0x02019348 _080320C4: .4byte gMonBackPicTable _080320C8: .4byte gMonBackPicCoords _080320CC: .4byte gUnknown_081FAF4C _080320D0: mov r0, r8 bl battle_get_per_side_status lsls r0, 24 lsrs r0, 24 mov r10, r0 ldr r0, [sp, 0xC] bl battle_side_get_owner lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _08032104 ldr r1, _080320FC ldr r5, [sp, 0xC] lsls r0, r5, 1 adds r0, r1 ldrh r1, [r0] movs r0, 0x64 muls r0, r1 ldr r1, _08032100 b _08032114 .align 2, 0 _080320FC: .4byte 0x02024a6a _08032100: .4byte 0x030045c0 _08032104: ldr r1, _0803218C ldr r2, [sp, 0xC] lsls r0, r2, 1 adds r0, r1 ldrh r1, [r0] movs r0, 0x64 muls r0, r1 ldr r1, _08032190 _08032114: adds r0, r1 movs r1, 0xB bl PokemonGetField lsls r0, 16 lsrs r7, r0, 16 mov r0, r8 bl battle_side_get_owner lsls r0, 24 cmp r0, 0 bne _080321A4 ldr r0, _0803218C mov r5, r8 lsls r4, r5, 1 adds r4, r0 ldrh r0, [r4] movs r6, 0x64 muls r0, r6 ldr r5, _08032190 adds r0, r5 movs r1, 0 bl PokemonGetField mov r9, r0 ldrh r0, [r4] muls r0, r6 adds r0, r5 movs r1, 0x1 bl PokemonGetField adds r6, r0, 0 lsls r0, r7, 3 ldr r1, _08032194 adds r0, r1 ldr r1, _08032198 lsls r2, r7, 2 adds r2, r1 ldrb r1, [r2] ldrb r2, [r2, 0x1] movs r3, 0x80 lsls r3, 18 ldr r4, _0803219C mov r12, r4 mov r5, r10 lsls r4, r5, 2 add r4, r12 ldr r4, [r4] str r4, [sp] str r7, [sp, 0x4] ldr r4, _080321A0 mov r12, r4 mov r5, r8 lsls r4, r5, 2 add r4, r12 ldr r4, [r4] _08032184: str r4, [sp, 0x8] bl sub_800D334 b _08032202 .align 2, 0 _0803218C: .4byte 0x02024a6a _08032190: .4byte 0x03004360 _08032194: .4byte gMonBackPicTable _08032198: .4byte gMonBackPicCoords _0803219C: .4byte gUnknown_081FAF4C _080321A0: .4byte 0x02024e70 _080321A4: ldr r0, _08032308 mov r1, r8 lsls r4, r1, 1 adds r4, r0 ldrh r0, [r4] movs r6, 0x64 muls r0, r6 ldr r5, _0803230C adds r0, r5 movs r1, 0 bl PokemonGetField mov r9, r0 ldrh r0, [r4] muls r0, r6 adds r0, r5 movs r1, 0x1 bl PokemonGetField adds r6, r0, 0 lsls r0, r7, 3 ldr r1, _08032310 adds r0, r1 ldr r1, _08032314 lsls r2, r7, 2 adds r2, r1 ldrb r1, [r2] ldrb r2, [r2, 0x1] movs r3, 0x80 lsls r3, 18 ldr r4, _08032318 mov r12, r4 mov r5, r10 lsls r4, r5, 2 add r4, r12 ldr r4, [r4] str r4, [sp] str r7, [sp, 0x4] ldr r4, _0803231C mov r12, r4 mov r5, r8 lsls r4, r5, 2 add r4, r12 ldr r4, [r4] str r4, [sp, 0x8] bl sub_800D334 _08032202: ldr r1, _08032318 mov r2, r10 lsls r0, r2, 2 adds r0, r1 ldr r2, [r0] ldr r0, _08032320 add r0, r8 mov r10, r0 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r4, _08032324 adds r0, r4 ldrh r0, [r0, 0x4] lsls r0, 22 lsrs r0, 17 ldr r1, _08032328 adds r0, r1 ldr r1, _0803232C str r2, [r1] str r0, [r1, 0x4] ldr r0, _08032330 str r0, [r1, 0x8] ldr r0, [r1, 0x8] mov r5, r8 lsls r0, r5, 20 movs r1, 0x80 lsls r1, 17 adds r0, r1 lsrs r5, r0, 16 adds r0, r7, 0 adds r1, r6, 0 mov r2, r9 bl species_and_otid_get_pal adds r6, r0, 0 ldr r2, _08032334 mov r9, r2 mov r1, r9 bl sub_800D238 mov r0, r9 adds r1, r5, 0 movs r2, 0x20 bl LoadPalette ldr r0, _08032338 cmp r7, r0 bne _08032288 movs r4, 0xB2 lsls r4, 9 add r4, r9 adds r0, r6, 0 adds r1, r4, 0 bl sub_800D238 ldr r0, _0803233C ldr r1, [sp, 0xC] adds r0, r1, r0 ldrb r0, [r0] lsls r0, 5 adds r0, r4 adds r1, r5, 0 movs r2, 0x20 bl LoadPalette _08032288: ldr r3, _08032340 adds r0, r5, 0 movs r1, 0x10 movs r2, 0x6 bl BlendPalette lsls r1, r5, 1 ldr r0, _08032344 adds r0, r1, r0 ldr r2, _08032348 adds r1, r2 ldr r2, _0803234C bl CpuSet bl sub_8076BE0 lsls r0, 24 cmp r0, 0 bne _080322C8 mov r2, r8 lsls r0, r2, 2 movs r1, 0xBC lsls r1, 9 add r1, r9 adds r0, r1 strh r7, [r0, 0x2] ldr r0, _0803233C adds r1, r2, r0 ldr r4, [sp, 0xC] adds r0, r4, r0 ldrb r0, [r0] strb r0, [r1] _080322C8: mov r0, r8 bl sub_8077F68 mov r5, r10 ldrb r2, [r5] lsls r1, r2, 4 adds r1, r2 lsls r1, 2 ldr r2, _08032324 adds r1, r2 lsls r0, 24 lsrs r0, 24 strh r0, [r1, 0x22] ldrb r1, [r5] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 ldr r1, _0803233C add r1, r8 ldrb r1, [r1] bl StartSpriteAnim _080322F6: 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 _08032308: .4byte 0x02024a6a _0803230C: .4byte 0x030045c0 _08032310: .4byte gMonFrontPicTable _08032314: .4byte gMonFrontPicCoords _08032318: .4byte gUnknown_081FAF4C _0803231C: .4byte 0x02024e70 _08032320: .4byte 0x02024be0 _08032324: .4byte 0x02020004 _08032328: .4byte 0x06010000 _0803232C: .4byte 0x040000d4 _08032330: .4byte 0x84000200 _08032334: .4byte 0x02000000 _08032338: .4byte 0x00000181 _0803233C: .4byte 0x02024e84 _08032340: .4byte 0x00007fff _08032344: .4byte 0x0202eec8 _08032348: .4byte 0x0202eac8 _0803234C: .4byte 0x04000008 thumb_func_end sub_8031FC4 thumb_func_start sub_8032350 sub_8032350: @ 8032350 push {r4-r7,lr} lsls r0, 24 lsrs r4, r0, 24 adds r5, r4, 0 lsls r1, 24 cmp r1, 0 bne _08032408 bl sub_8076BE0 lsls r0, 24 cmp r0, 0 beq _0803236C movs r4, 0 b _08032376 _0803236C: adds r0, r4, 0 bl battle_get_per_side_status lsls r0, 24 lsrs r4, r0, 24 _08032376: bl sub_8076BE0 lsls r0, 24 cmp r0, 0 beq _08032388 ldr r0, _08032384 b _08032396 .align 2, 0 _08032384: .4byte gUnknown_08D2D4CC _08032388: adds r0, r5, 0 bl battle_side_get_owner lsls r0, 24 cmp r0, 0 beq _080323AC ldr r0, _080323A4 _08032396: ldr r1, _080323A8 lsls r4, 2 adds r1, r4, r1 ldr r1, [r1] bl LZDecompressVram b _080323BA .align 2, 0 _080323A4: .4byte gUnknown_08D2D28C _080323A8: .4byte gUnknown_081FAF4C _080323AC: ldr r0, _080323F4 ldr r1, _080323F8 lsls r4, 2 adds r1, r4, r1 ldr r1, [r1] bl LZDecompressVram _080323BA: lsls r7, r5, 4 ldr r0, _080323FC mov r12, r0 ldr r0, _080323F8 adds r0, r4, r0 ldr r4, [r0] ldr r3, _08032400 ldr r6, _08032404 movs r0, 0x80 lsls r0, 4 adds r2, r4, r0 adds r5, r0, 0 movs r1, 0x2 _080323D4: str r4, [r3] str r2, [r3, 0x4] str r6, [r3, 0x8] ldr r0, [r3, 0x8] adds r2, r5 subs r1, 0x1 cmp r1, 0 bge _080323D4 movs r0, 0x80 lsls r0, 1 adds r1, r7, r0 mov r0, r12 movs r2, 0x20 bl LoadCompressedPalette b _08032456 .align 2, 0 _080323F4: .4byte gUnknown_08D2D4CC _080323F8: .4byte gUnknown_081FAF4C _080323FC: .4byte gUnknown_08D2D268 _08032400: .4byte 0x040000d4 _08032404: .4byte 0x84000200 _08032408: bl sub_8076BE0 lsls r0, 24 cmp r0, 0 bne _08032456 adds r0, r4, 0 bl battle_side_get_owner lsls r0, 24 cmp r0, 0 beq _08032440 ldr r1, _08032438 lsls r0, r4, 1 adds r0, r1 ldrh r1, [r0] movs r0, 0x64 muls r0, r1 ldr r1, _0803243C adds r0, r1 adds r1, r4, 0 bl sub_8031794 b _08032456 .align 2, 0 _08032438: .4byte 0x02024a6a _0803243C: .4byte 0x030045c0 _08032440: ldr r1, _0803245C lsls r0, r5, 1 adds r0, r1 ldrh r1, [r0] movs r0, 0x64 muls r0, r1 ldr r1, _08032460 adds r0, r1 adds r1, r5, 0 bl sub_80318FC _08032456: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0803245C: .4byte 0x02024a6a _08032460: .4byte 0x03004360 thumb_func_end sub_8032350 thumb_func_start refresh_graphics_maybe refresh_graphics_maybe: @ 8032464 push {r4-r6,lr} adds r5, r1, 0 adds r4, r2, 0 lsls r0, 24 lsrs r6, r0, 24 lsls r5, 24 lsrs r5, 24 lsls r4, 24 lsrs r4, 24 adds r0, r6, 0 adds r1, r5, 0 bl sub_8032350 lsls r0, r4, 4 adds r0, r4 lsls r0, 2 ldr r1, _080324A0 adds r4, r0, r1 ldr r0, _080324A4 adds r0, r6, r0 ldrb r1, [r0] adds r0, r4, 0 bl StartSpriteAnim cmp r5, 0 bne _080324A8 adds r0, r6, 0 bl sub_8077F7C b _080324AE .align 2, 0 _080324A0: .4byte 0x02020004 _080324A4: .4byte 0x02024e84 _080324A8: adds r0, r6, 0 bl sub_8077F68 _080324AE: lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x22] pop {r4-r6} pop {r0} bx r0 thumb_func_end refresh_graphics_maybe thumb_func_start sub_80324BC sub_80324BC: @ 80324BC push {lr} lsls r0, 24 lsrs r0, 24 lsls r1, 16 lsrs r1, 16 cmp r1, 0xA4 bne _080324D8 lsls r2, r0, 2 ldr r0, _080324DC adds r2, r0 ldrb r0, [r2] movs r1, 0x4 orrs r0, r1 strb r0, [r2] _080324D8: pop {r0} bx r0 .align 2, 0 _080324DC: .4byte 0x02017800 thumb_func_end sub_80324BC thumb_func_start sub_80324E0 sub_80324E0: @ 80324E0 lsls r0, 24 lsrs r0, 22 ldr r1, _080324F4 adds r0, r1 ldrb r2, [r0] movs r1, 0x5 negs r1, r1 ands r1, r2 strb r1, [r0] bx lr .align 2, 0 _080324F4: .4byte 0x02017800 thumb_func_end sub_80324E0 thumb_func_start sub_80324F8 sub_80324F8: @ 80324F8 push {r4-r7,lr} adds r5, r0, 0 lsls r1, 24 lsrs r6, r1, 24 adds r7, r6, 0 movs r1, 0x39 bl PokemonGetField adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 adds r0, r5, 0 movs r1, 0x3A bl PokemonGetField adds r1, r0, 0 lsls r4, 16 asrs r4, 16 lsls r1, 16 asrs r1, 16 adds r0, r4, 0 bl sub_8046200 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _08032568 lsls r0, r6, 2 ldr r3, _08032564 adds r4, r0, r3 ldrb r1, [r4] movs r5, 0x2 movs r2, 0x2 adds r0, r2, 0 ands r0, r1 cmp r0, 0 bne _080325B2 adds r0, r6, 0 eors r0, r5 lsls r0, 2 adds r0, r3 ldrb r1, [r0] adds r0, r2, 0 ands r0, r1 cmp r0, 0 bne _0803255A movs r0, 0x5A bl audio_play _0803255A: ldrb r0, [r4] orrs r0, r5 strb r0, [r4] b _080325B2 .align 2, 0 _08032564: .4byte 0x02017800 _08032568: lsls r1, r6, 2 ldr r4, _0803258C adds r1, r4 ldrb r2, [r1] movs r0, 0x3 negs r0, r0 ands r0, r2 strb r0, [r1] bl battle_type_is_double lsls r0, 24 cmp r0, 0 bne _08032590 movs r0, 0x5A bl m4aSongNumStop b _080325B2 .align 2, 0 _0803258C: .4byte 0x02017800 _08032590: bl battle_type_is_double lsls r0, 24 cmp r0, 0 beq _080325B2 movs r0, 0x2 eors r7, r0 lsls r0, r7, 2 adds r0, r4 ldrb r1, [r0] movs r0, 0x2 ands r0, r1 cmp r0, 0 bne _080325B2 movs r0, 0x5A bl m4aSongNumStop _080325B2: pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_80324F8 thumb_func_start sub_80325B8 sub_80325B8: @ 80325B8 push {r4-r6,lr} movs r0, 0 bl battle_get_side_with_given_state lsls r0, 24 lsrs r4, r0, 24 lsls r1, r4, 2 ldr r6, _08032600 adds r1, r6 ldrb r2, [r1] movs r5, 0x3 negs r5, r5 adds r0, r5, 0 ands r0, r2 strb r0, [r1] bl battle_type_is_double lsls r0, 24 cmp r0, 0 beq _080325F2 movs r0, 0x2 adds r1, r4, 0 eors r1, r0 lsls r1, 2 adds r1, r6 ldrb r2, [r1] adds r0, r5, 0 ands r0, r2 strb r0, [r1] _080325F2: movs r0, 0x5A bl m4aSongNumStop pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08032600: .4byte 0x02017800 thumb_func_end sub_80325B8 thumb_func_start unref_sub_8032604 unref_sub_8032604: @ 8032604 push {r4,r5,lr} adds r5, r0, 0 movs r1, 0x39 bl PokemonGetField adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 adds r0, r5, 0 movs r1, 0x3A bl PokemonGetField adds r1, r0, 0 lsls r4, 16 asrs r4, 16 lsls r1, 16 asrs r1, 16 adds r0, r4, 0 bl sub_8046200 lsls r0, 24 lsrs r0, 24 pop {r4,r5} pop {r1} bx r1 thumb_func_end unref_sub_8032604 thumb_func_start sub_8032638 sub_8032638: @ 8032638 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} ldr r0, _080326DC ldr r1, _080326E0 adds r0, r1 ldrb r1, [r0] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _080326CE movs r0, 0 bl battle_get_side_with_given_state lsls r0, 24 lsrs r0, 24 mov r8, r0 movs r0, 0x2 bl battle_get_side_with_given_state lsls r0, 24 lsrs r0, 24 mov r9, r0 ldr r5, _080326E4 mov r1, r8 lsls r0, r1, 1 adds r0, r5 ldrb r0, [r0] bl pokemon_order_func adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 mov r1, r9 lsls r0, r1, 1 adds r0, r5 ldrb r0, [r0] bl pokemon_order_func lsls r0, 24 lsrs r5, r0, 24 movs r7, 0x64 adds r0, r4, 0 muls r0, r7 ldr r6, _080326E8 adds r4, r0, r6 adds r0, r4, 0 movs r1, 0x39 bl PokemonGetField cmp r0, 0 beq _080326AA adds r0, r4, 0 mov r1, r8 bl sub_80324F8 _080326AA: bl battle_type_is_double lsls r0, 24 cmp r0, 0 beq _080326CE adds r0, r5, 0 muls r0, r7 adds r4, r0, r6 adds r0, r4, 0 movs r1, 0x39 bl PokemonGetField cmp r0, 0 beq _080326CE adds r0, r4, 0 mov r1, r9 bl sub_80324F8 _080326CE: pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080326DC: .4byte 0x03001770 _080326E0: .4byte 0x0000043d _080326E4: .4byte 0x02024a6a _080326E8: .4byte 0x03004360 thumb_func_end sub_8032638 thumb_func_start sub_80326EC sub_80326EC: @ 80326EC push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} lsls r0, 24 lsrs r0, 24 mov r8, r0 movs r5, 0 ldr r0, _08032778 ldrb r0, [r0] cmp r5, r0 bge _080327B4 movs r0, 0x3 mov r10, r8 mov r1, r10 ands r1, r0 mov r10, r1 movs r6, 0 movs r2, 0x3F negs r2, r2 mov r9, r2 _08032718: lsls r0, r5, 24 lsrs r0, 24 bl sub_8078874 lsls r0, 24 cmp r0, 0 beq _080327A8 ldr r4, _0803277C ldr r0, _08032780 adds r3, r5, r0 ldrb r1, [r3] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 ldrb r1, [r0, 0x1] movs r7, 0x4 negs r7, r7 adds r2, r7, 0 ands r1, r2 mov r2, r10 orrs r1, r2 strb r1, [r0, 0x1] mov r7, r8 cmp r7, 0 bne _08032788 ldr r2, _08032784 adds r2, r6, r2 ldrb r1, [r3] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 ldrb r0, [r0, 0x3] lsls r0, 26 lsrs r0, 27 strb r0, [r2, 0x6] ldrb r1, [r3] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 ldrb r1, [r0, 0x3] mov r2, r9 ands r1, r2 strb r1, [r0, 0x3] b _080327A8 .align 2, 0 _08032778: .4byte 0x02024a68 _0803277C: .4byte 0x02020004 _08032780: .4byte 0x02024be0 _08032784: .4byte 0x02017810 _08032788: ldrb r0, [r3] lsls r2, r0, 4 adds r2, r0 lsls r2, 2 adds r2, r4 ldr r0, _080327C4 adds r0, r6, r0 ldrb r1, [r0, 0x6] movs r0, 0x1F ands r1, r0 lsls r1, 1 ldrb r0, [r2, 0x3] mov r3, r9 ands r0, r3 orrs r0, r1 strb r0, [r2, 0x3] _080327A8: adds r6, 0xC adds r5, 0x1 ldr r0, _080327C8 ldrb r0, [r0] cmp r5, r0 blt _08032718 _080327B4: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080327C4: .4byte 0x02017810 _080327C8: .4byte 0x02024a68 thumb_func_end sub_80326EC thumb_func_start sub_80327CC sub_80327CC: @ 80327CC push {r4-r7,lr} mov r7, r8 push {r7} ldr r0, _08032894 bl LoadCompressedObjectPic movs r0, 0x1 bl battle_get_side_with_given_state adds r5, r0, 0 lsls r5, 24 lsrs r5, 24 ldr r0, _08032898 mov r8, r0 adds r0, r5, 0 movs r1, 0 bl sub_8077ABC adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 adds r0, r5, 0 movs r1, 0x1 bl sub_8077ABC adds r2, r0, 0 lsls r2, 24 lsrs r2, 8 movs r0, 0x80 lsls r0, 14 adds r2, r0 asrs r2, 16 mov r0, r8 adds r1, r4, 0 movs r3, 0xC8 bl CreateSprite lsls r1, r5, 1 adds r1, r5 lsls r1, 2 ldr r6, _0803289C adds r1, r6 strb r0, [r1, 0x7] ldr r7, _080328A0 ldrb r1, [r1, 0x7] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r7 strh r5, [r0, 0x2E] bl battle_type_is_double lsls r0, 24 cmp r0, 0 beq _0803288A movs r0, 0x3 bl battle_get_side_with_given_state adds r5, r0, 0 lsls r5, 24 lsrs r5, 24 adds r0, r5, 0 movs r1, 0 bl sub_8077ABC adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 adds r0, r5, 0 movs r1, 0x1 bl sub_8077ABC adds r2, r0, 0 lsls r2, 24 lsrs r2, 8 movs r0, 0x80 lsls r0, 14 adds r2, r0 asrs r2, 16 mov r0, r8 adds r1, r4, 0 movs r3, 0xC8 bl CreateSprite lsls r1, r5, 1 adds r1, r5 lsls r1, 2 adds r1, r6 strb r0, [r1, 0x7] ldrb r1, [r1, 0x7] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r7 strh r5, [r0, 0x2E] _0803288A: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08032894: .4byte gUnknown_081FAF24 _08032898: .4byte gSpriteTemplate_81FAF34 _0803289C: .4byte 0x02017810 _080328A0: .4byte 0x02020004 thumb_func_end sub_80327CC thumb_func_start sub_80328A4 sub_80328A4: @ 80328A4 push {r4-r7,lr} mov r7, r8 push {r7} adds r5, r0, 0 movs r0, 0 mov r8, r0 ldrh r0, [r5, 0x2E] lsls r0, 24 lsrs r4, r0, 24 ldr r0, _080328E8 adds r0, r4, r0 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _080328EC adds r7, r0, r1 adds r6, r7, 0 adds r6, 0x3E ldrb r1, [r6] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _080328E0 adds r0, r4, 0 bl sub_8078874 lsls r0, 24 cmp r0, 0 bne _080328F4 _080328E0: ldr r0, _080328F0 str r0, [r5, 0x1C] b _08032964 .align 2, 0 _080328E8: .4byte 0x02024be0 _080328EC: .4byte 0x02020004 _080328F0: .4byte sub_8032978 _080328F4: ldr r0, _08032910 ldrb r0, [r0] cmp r0, 0 bne _08032906 ldrb r1, [r6] movs r0, 0x4 ands r0, r1 cmp r0, 0 beq _08032918 _08032906: movs r0, 0x1 mov r8, r0 lsls r4, 2 ldr r6, _08032914 b _08032938 .align 2, 0 _08032910: .4byte 0x0202f7b1 _08032914: .4byte 0x02017800 _08032918: lsls r0, r4, 2 ldr r1, _08032970 adds r3, r0, r1 ldrh r2, [r3, 0x2] adds r4, r0, 0 adds r6, r1, 0 cmp r2, 0 beq _08032938 ldr r0, _08032974 adds r1, r2, 0 adds r1, r0 ldrb r0, [r1] cmp r0, 0 bne _08032938 movs r0, 0x1 mov r8, r0 _08032938: adds r0, r4, r6 ldrb r1, [r0] movs r0, 0x4 ands r0, r1 cmp r0, 0 beq _08032948 movs r0, 0x1 mov r8, r0 _08032948: ldrh r0, [r7, 0x20] strh r0, [r5, 0x20] ldrh r0, [r7, 0x24] strh r0, [r5, 0x24] adds r2, r5, 0 adds r2, 0x3E mov r0, r8 lsls r3, r0, 2 ldrb r1, [r2] movs r0, 0x5 negs r0, r0 ands r0, r1 orrs r0, r3 strb r0, [r2] _08032964: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08032970: .4byte 0x02017800 _08032974: .4byte gUnknown_081ECB14 thumb_func_end sub_80328A4 thumb_func_start sub_8032978 sub_8032978: @ 8032978 adds r0, 0x3E ldrb r1, [r0] movs r2, 0x4 orrs r1, r2 strb r1, [r0] bx lr thumb_func_end sub_8032978 thumb_func_start sub_8032984 sub_8032984: @ 8032984 push {r4-r6,lr} lsls r0, 24 lsrs r4, r0, 24 adds r6, r4, 0 lsls r1, 16 lsrs r5, r1, 16 adds r0, r4, 0 bl battle_side_get_owner lsls r0, 24 cmp r0, 0 beq _080329FA lsls r0, r4, 2 ldr r3, _080329D0 adds r1, r0, r3 ldrh r0, [r1, 0x2] cmp r0, 0 beq _080329AA adds r5, r0, 0 _080329AA: ldr r0, _080329D4 adds r0, r5, r0 ldrb r0, [r0] cmp r0, 0 beq _080329E0 ldr r2, _080329D8 lsls r0, r4, 1 adds r0, r4 lsls r0, 2 adds r0, r3, r0 ldrb r1, [r0, 0x17] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r2, 0x1C adds r0, r2 ldr r1, _080329DC b _080329F8 .align 2, 0 _080329D0: .4byte 0x02017800 _080329D4: .4byte gUnknown_081ECB14 _080329D8: .4byte 0x02020004 _080329DC: .4byte sub_80328A4 _080329E0: ldr r2, _08032A00 lsls r0, r6, 1 adds r0, r6 lsls r0, 2 adds r0, r3, r0 ldrb r1, [r0, 0x17] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r2, 0x1C adds r0, r2 ldr r1, _08032A04 _080329F8: str r1, [r0] _080329FA: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08032A00: .4byte 0x02020004 _08032A04: .4byte sub_8032978 thumb_func_end sub_8032984 thumb_func_start sub_8032A08 sub_8032A08: @ 8032A08 lsls r0, 24 lsrs r0, 24 ldr r2, _08032A2C lsls r1, r0, 1 adds r1, r0 lsls r1, 2 ldr r0, _08032A30 adds r1, r0 ldrb r1, [r1, 0x7] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r2, 0x1C adds r0, r2 ldr r1, _08032A34 str r1, [r0] bx lr .align 2, 0 _08032A2C: .4byte 0x02020004 _08032A30: .4byte 0x02017810 _08032A34: .4byte sub_8032978 thumb_func_end sub_8032A08 thumb_func_start sub_8032A38 sub_8032A38: @ 8032A38 push {r4-r6,lr} ldr r3, _08032AA4 movs r0, 0 movs r6, 0xF0 lsls r6, 8 _08032A42: adds r5, r0, 0x1 movs r4, 0xF _08032A46: ldrh r1, [r3] adds r0, r6, 0 ands r0, r1 cmp r0, 0 bne _08032A56 adds r0, r6, 0 orrs r0, r1 strh r0, [r3] _08032A56: ldrh r1, [r3] movs r2, 0xF0 lsls r2, 4 adds r0, r2, 0 ands r0, r1 cmp r0, 0 bne _08032A6A adds r0, r2, 0 orrs r0, r1 strh r0, [r3] _08032A6A: ldrh r1, [r3] movs r2, 0xF0 movs r0, 0xF0 ands r0, r1 cmp r0, 0 bne _08032A7C adds r0, r1, 0 orrs r0, r2 strh r0, [r3] _08032A7C: ldrh r1, [r3] movs r2, 0xF movs r0, 0xF ands r0, r1 cmp r0, 0 bne _08032A8E adds r0, r1, 0 orrs r0, r2 strh r0, [r3] _08032A8E: adds r3, 0x2 subs r4, 0x1 cmp r4, 0 bge _08032A46 adds r0, r5, 0 cmp r0, 0x8 ble _08032A42 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08032AA4: .4byte 0x06000240 thumb_func_end sub_8032A38 thumb_func_start sub_8032AA8 sub_8032AA8: @ 8032AA8 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 lsls r1, 24 lsls r2, r4, 2 ldr r0, _08032AD4 adds r2, r0 movs r3, 0 movs r0, 0 strh r0, [r2, 0x2] ldr r0, _08032AD8 adds r0, r4, r0 strb r3, [r0] cmp r1, 0 bne _08032ACC adds r0, r4, 0 bl sub_80324E0 _08032ACC: pop {r4} pop {r0} bx r0 .align 2, 0 _08032AD4: .4byte 0x02017800 _08032AD8: .4byte 0x02024e84 thumb_func_end sub_8032AA8 thumb_func_start nullsub_45 nullsub_45: @ 8032ADC bx lr thumb_func_end nullsub_45 thumb_func_start sub_8032AE0 sub_8032AE0: @ 8032AE0 ldr r1, _08032AF0 ldr r0, _08032AF4 ldrb r0, [r0] lsls r0, 2 adds r0, r1 ldr r1, _08032AF8 str r1, [r0] bx lr .align 2, 0 _08032AF0: .4byte 0x03004330 _08032AF4: .4byte 0x02024a60 _08032AF8: .4byte sub_8032AFC thumb_func_end sub_8032AE0 thumb_func_start sub_8032AFC sub_8032AFC: @ 8032AFC push {lr} ldr r2, _08032B30 ldr r1, _08032B34 ldr r0, _08032B38 ldrb r3, [r0] lsls r0, r3, 2 adds r0, r1 ldr r1, [r2] ldr r0, [r0] ands r1, r0 cmp r1, 0 beq _08032B48 ldr r0, _08032B3C lsls r1, r3, 9 adds r1, r0 ldrb r0, [r1] cmp r0, 0x38 bhi _08032B44 ldr r0, _08032B40 ldrb r1, [r1] lsls r1, 2 adds r1, r0 ldr r0, [r1] bl _call_via_r0 b _08032B48 .align 2, 0 _08032B30: .4byte 0x02024a64 _08032B34: .4byte gUnknown_0820872C _08032B38: .4byte 0x02024a60 _08032B3C: .4byte 0x02023a60 _08032B40: .4byte gUnknown_081FAF5C _08032B44: bl sub_80334EC _08032B48: pop {r0} bx r0 thumb_func_end sub_8032AFC thumb_func_start sub_8032B4C sub_8032B4C: @ 8032B4C push {lr} ldr r2, _08032B74 ldr r1, _08032B78 ldr r0, _08032B7C ldrb r0, [r0] adds r0, r1 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r2, 0x1C adds r0, r2 ldr r1, [r0] ldr r0, _08032B80 cmp r1, r0 bne _08032B70 bl sub_80334EC _08032B70: pop {r0} bx r0 .align 2, 0 _08032B74: .4byte 0x02020004 _08032B78: .4byte 0x02024be0 _08032B7C: .4byte 0x02024a60 _08032B80: .4byte SpriteCallbackDummy thumb_func_end sub_8032B4C thumb_func_start sub_8032B84 sub_8032B84: @ 8032B84 push {lr} ldr r2, _08032BAC ldr r1, _08032BB0 ldr r0, _08032BB4 ldrb r0, [r0] adds r0, r1 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r2, 0x1C adds r0, r2 ldr r1, [r0] ldr r0, _08032BB8 cmp r1, r0 bne _08032BA8 bl sub_80334EC _08032BA8: pop {r0} bx r0 .align 2, 0 _08032BAC: .4byte 0x02020004 _08032BB0: .4byte 0x02024be0 _08032BB4: .4byte 0x02024a60 _08032BB8: .4byte SpriteCallbackDummy thumb_func_end sub_8032B84 thumb_func_start sub_8032BBC sub_8032BBC: @ 8032BBC push {r4-r6,lr} ldr r4, _08032C34 ldr r6, _08032C38 ldr r5, _08032C3C ldrb r0, [r5] adds r0, r6 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r2, r0, 2 adds r0, r4, 0 adds r0, 0x1C adds r0, r2, r0 ldr r1, [r0] ldr r0, _08032C40 cmp r1, r0 bne _08032C2C adds r0, r2, r4 ldrh r0, [r0, 0x6] bl sub_8031B74 ldrb r0, [r5] adds r0, r6 ldrb r0, [r0] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r4 ldrh r0, [r1, 0x38] ldr r2, _08032C44 ands r2, r0 ldrh r3, [r1, 0x4] ldr r0, _08032C48 ands r0, r3 orrs r0, r2 strh r0, [r1, 0x4] ldrb r0, [r5] adds r0, r6 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 bl FreeSpriteOamMatrix ldrb r0, [r5] adds r0, r6 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 bl DestroySprite bl sub_80334EC _08032C2C: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08032C34: .4byte 0x02020004 _08032C38: .4byte 0x02024be0 _08032C3C: .4byte 0x02024a60 _08032C40: .4byte SpriteCallbackDummy _08032C44: .4byte 0x000003ff _08032C48: .4byte 0xfffffc00 thumb_func_end sub_8032BBC thumb_func_start sub_8032C4C sub_8032C4C: @ 8032C4C push {lr} ldr r3, _08032C80 ldrb r0, [r3] lsls r1, r0, 1 adds r1, r0 lsls r1, 2 ldr r2, _08032C84 adds r1, r2 ldrb r0, [r1, 0x9] subs r0, 0x1 strb r0, [r1, 0x9] lsls r0, 24 lsrs r0, 24 cmp r0, 0xFF bne _08032C7C ldrb r0, [r3] lsls r1, r0, 1 adds r1, r0 lsls r1, 2 adds r1, r2 movs r0, 0 strb r0, [r1, 0x9] bl sub_80334EC _08032C7C: pop {r0} bx r0 .align 2, 0 _08032C80: .4byte 0x02024a60 _08032C84: .4byte 0x02017810 thumb_func_end sub_8032C4C thumb_func_start sub_8032C88 sub_8032C88: @ 8032C88 push {r4-r7,lr} movs r6, 0 bl battle_type_is_double lsls r0, 24 cmp r0, 0 beq _08032CAC bl battle_type_is_double lsls r0, 24 cmp r0, 0 beq _08032CE0 ldr r0, _08032CCC ldrh r1, [r0] movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _08032CE0 _08032CAC: ldr r2, _08032CD0 ldr r1, _08032CD4 ldr r0, _08032CD8 ldrb r0, [r0] adds r0, r1 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r2, 0x1C adds r0, r2 ldr r1, [r0] ldr r0, _08032CDC cmp r1, r0 bne _08032D16 b _08032D14 .align 2, 0 _08032CCC: .4byte 0x020239f8 _08032CD0: .4byte 0x02020004 _08032CD4: .4byte 0x03004340 _08032CD8: .4byte 0x02024a60 _08032CDC: .4byte SpriteCallbackDummy _08032CE0: ldr r2, _08032DC4 ldr r5, _08032DC8 ldr r0, _08032DCC ldrb r3, [r0] adds r0, r3, r5 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r2, 0x1C adds r0, r2 ldr r4, [r0] ldr r0, _08032DD0 cmp r4, r0 bne _08032D16 movs r0, 0x2 eors r3, r0 adds r0, r3, r5 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 ldr r0, [r0] cmp r0, r4 bne _08032D16 _08032D14: movs r6, 0x1 _08032D16: bl sub_80753C4 lsls r0, 24 cmp r0, 0 beq _08032D22 movs r6, 0 _08032D22: cmp r6, 0 beq _08032E0E ldr r7, _08032DCC ldrb r2, [r7] lsls r0, r2, 1 adds r0, r2 lsls r0, 2 ldr r5, _08032DD4 adds r4, r0, r5 ldrb r1, [r4, 0x1] movs r3, 0x1 adds r0, r3, 0 ands r0, r1 cmp r0, 0 beq _08032E0E movs r6, 0x2 adds r1, r6, 0 eors r1, r2 lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r5 ldrb r1, [r0, 0x1] adds r0, r3, 0 ands r0, r1 cmp r0, 0 beq _08032E0E ldrb r1, [r4] movs r3, 0x7F adds r0, r3, 0 ands r0, r1 strb r0, [r4] ldrb r0, [r7] lsls r1, r0, 1 adds r1, r0 lsls r1, 2 adds r1, r5 ldrb r2, [r1, 0x1] movs r4, 0x2 negs r4, r4 adds r0, r4, 0 ands r0, r2 strb r0, [r1, 0x1] ldrb r0, [r7] adds r1, r6, 0 eors r1, r0 lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r5 ldrb r1, [r0] ands r3, r1 strb r3, [r0] ldrb r0, [r7] adds r1, r6, 0 eors r1, r0 lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r5 ldrb r1, [r0, 0x1] ands r4, r1 strb r4, [r0, 0x1] ldr r4, _08032DD8 adds r0, r4, 0 bl FreeSpriteTilesByTag adds r0, r4, 0 bl FreeSpritePaletteByTag ldr r0, _08032DDC ldrh r1, [r0] movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _08032DE4 ldr r0, _08032DE0 bl m4aMPlayContinue b _08032DF0 .align 2, 0 _08032DC4: .4byte 0x02020004 _08032DC8: .4byte 0x03004340 _08032DCC: .4byte 0x02024a60 _08032DD0: .4byte SpriteCallbackDummy _08032DD4: .4byte 0x02017810 _08032DD8: .4byte 0x000027f9 _08032DDC: .4byte 0x020239f8 _08032DE0: .4byte 0x03007380 _08032DE4: ldr r0, _08032E14 ldr r1, _08032E18 movs r2, 0x80 lsls r2, 1 bl m4aMPlayVolumeControl _08032DF0: ldr r2, _08032E1C ldrb r1, [r2] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 ldr r1, _08032E20 adds r0, r1 movs r1, 0x3 strb r1, [r0, 0x9] ldr r1, _08032E24 ldrb r0, [r2] lsls r0, 2 adds r0, r1 ldr r1, _08032E28 str r1, [r0] _08032E0E: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08032E14: .4byte 0x03007380 _08032E18: .4byte 0x0000ffff _08032E1C: .4byte 0x02024a60 _08032E20: .4byte 0x02017810 _08032E24: .4byte 0x03004330 _08032E28: .4byte sub_8032C4C thumb_func_end sub_8032C88 thumb_func_start sub_8032E2C sub_8032E2C: @ 8032E2C push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} ldr r0, _08032FEC mov r9, r0 ldrb r2, [r0] lsls r3, r2, 1 adds r0, r3, r2 lsls r0, 2 ldr r4, _08032FF0 adds r0, r4 ldrb r1, [r0] movs r5, 0x88 adds r0, r5, 0 ands r0, r1 cmp r0, 0 bne _08032E64 ldr r0, _08032FF4 adds r0, r3, r0 ldrh r1, [r0] movs r0, 0x64 muls r1, r0 ldr r0, _08032FF8 adds r1, r0 adds r0, r2, 0 bl sub_8141828 _08032E64: mov r1, r9 ldrb r0, [r1] movs r7, 0x2 adds r2, r7, 0 eors r2, r0 lsls r3, r2, 1 adds r0, r3, r2 lsls r0, 2 adds r0, r4 ldrb r1, [r0] adds r0, r5, 0 ands r0, r1 cmp r0, 0 bne _08032E94 ldr r0, _08032FF4 adds r0, r3, r0 ldrh r1, [r0] movs r0, 0x64 muls r1, r0 ldr r0, _08032FF8 adds r1, r0 adds r0, r2, 0 bl sub_8141828 _08032E94: mov r0, r9 ldrb r2, [r0] lsls r0, r2, 1 adds r0, r2 lsls r0, 2 adds r0, r4 ldrb r1, [r0] movs r3, 0x8 adds r0, r3, 0 ands r0, r1 cmp r0, 0 beq _08032EAE b _08032FE0 _08032EAE: adds r1, r7, 0 eors r1, r2 lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r4 ldrb r1, [r0] adds r0, r3, 0 ands r0, r1 cmp r0, 0 beq _08032EC6 b _08032FE0 _08032EC6: bl battle_type_is_double lsls r0, 24 cmp r0, 0 beq _08032F58 ldr r0, _08032FFC ldrh r1, [r0] movs r0, 0x40 ands r0, r1 cmp r0, 0 bne _08032F58 ldr r1, _08033000 mov r2, r9 ldrb r0, [r2] eors r0, r7 adds r0, r1 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _08033004 adds r0, r1 bl DestroySprite ldr r4, _08033008 mov r1, r9 ldrb r0, [r1] adds r1, r7, 0 eors r1, r0 adds r0, r1, r4 ldrb r0, [r0] ldr r2, _08032FF4 mov r8, r2 lsls r1, 1 add r1, r8 ldrh r1, [r1] movs r6, 0x64 muls r1, r6 ldr r5, _08032FF8 adds r1, r5 movs r2, 0 bl sub_8045A5C mov r1, r9 ldrb r0, [r1] eors r0, r7 bl sub_804777C mov r2, r9 ldrb r0, [r2] eors r0, r7 adds r0, r4 ldrb r0, [r0] bl sub_8043DFC mov r1, r9 ldrb r0, [r1] adds r4, r7, 0 eors r4, r0 lsls r0, r4, 1 add r0, r8 ldrh r0, [r0] muls r0, r6 adds r0, r5 movs r1, 0xB bl PokemonGetField adds r1, r0, 0 lsls r1, 16 lsrs r1, 16 adds r0, r4, 0 bl sub_8032984 _08032F58: ldr r1, _08033000 ldr r4, _08032FEC ldrb r0, [r4] adds r0, r1 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _08033004 adds r0, r1 bl DestroySprite ldr r5, _08033008 ldrb r1, [r4] adds r0, r1, r5 ldrb r0, [r0] ldr r2, _08032FF4 mov r9, r2 lsls r1, 1 add r1, r9 ldrh r1, [r1] movs r2, 0x64 mov r8, r2 mov r2, r8 muls r2, r1 adds r1, r2, 0 ldr r6, _08032FF8 adds r1, r6 movs r2, 0 bl sub_8045A5C ldrb r0, [r4] bl sub_804777C ldrb r0, [r4] adds r0, r5 ldrb r0, [r0] bl sub_8043DFC ldrb r5, [r4] lsls r0, r5, 1 add r0, r9 ldrh r0, [r0] mov r1, r8 muls r1, r0 adds r0, r1, 0 adds r0, r6 movs r1, 0xB bl PokemonGetField adds r1, r0, 0 lsls r1, 16 lsrs r1, 16 adds r0, r5, 0 bl sub_8032984 ldr r2, _0803300C ldrb r1, [r2, 0x9] movs r0, 0x2 negs r0, r0 ands r0, r1 strb r0, [r2, 0x9] ldr r1, _08033010 ldrb r0, [r4] lsls r0, 2 adds r0, r1 ldr r1, _08033014 str r1, [r0] _08032FE0: pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08032FEC: .4byte 0x02024a60 _08032FF0: .4byte 0x02017810 _08032FF4: .4byte 0x02024a6a _08032FF8: .4byte 0x030045c0 _08032FFC: .4byte 0x020239f8 _08033000: .4byte 0x0300434c _08033004: .4byte 0x02020004 _08033008: .4byte 0x03004340 _0803300C: .4byte 0x02017840 _08033010: .4byte 0x03004330 _08033014: .4byte sub_8032C88 thumb_func_end sub_8032E2C thumb_func_start sub_8033018 sub_8033018: @ 8033018 push {r4-r7,lr} ldr r2, _08033070 ldr r0, _08033074 ldr r7, _08033078 ldrb r3, [r7] adds r0, r3, r0 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r1, r0, r2 adds r0, r1, 0 adds r0, 0x3F ldrb r0, [r0] lsls r0, 27 lsrs r2, r0, 31 cmp r2, 0x1 bne _080330BC movs r4, 0x24 ldrsh r0, [r1, r4] cmp r0, 0 bne _080330BC lsls r4, r3, 1 adds r0, r4, r3 lsls r0, 2 ldr r6, _0803307C adds r1, r0, r6 ldrb r5, [r1] movs r0, 0x80 ands r0, r5 cmp r0, 0 bne _08033088 ldr r0, _08033080 adds r0, r4, r0 ldrh r1, [r0] movs r0, 0x64 muls r1, r0 ldr r0, _08033084 adds r1, r0 adds r0, r3, 0 bl sub_8141828 b _080330BC .align 2, 0 _08033070: .4byte 0x02020004 _08033074: .4byte 0x02024be0 _08033078: .4byte 0x02024a60 _0803307C: .4byte 0x02017810 _08033080: .4byte 0x02024a6a _08033084: .4byte 0x030045c0 _08033088: ldrb r0, [r1, 0x1] ands r2, r0 cmp r2, 0 beq _080330BC movs r0, 0x7F ands r0, r5 strb r0, [r1] ldrb r0, [r7] lsls r1, r0, 1 adds r1, r0 lsls r1, 2 adds r1, r6 ldrb r2, [r1, 0x1] movs r0, 0x2 negs r0, r0 ands r0, r2 strb r0, [r1, 0x1] ldr r4, _080330C4 adds r0, r4, 0 bl FreeSpriteTilesByTag adds r0, r4, 0 bl FreeSpritePaletteByTag bl sub_80334EC _080330BC: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080330C4: .4byte 0x000027f9 thumb_func_end sub_8033018 thumb_func_start sub_80330C8 sub_80330C8: @ 80330C8 push {r4-r6,lr} ldr r6, _08033108 ldrb r0, [r6] ldr r5, _0803310C adds r1, r0, r5 ldrb r1, [r1] movs r2, 0 movs r3, 0 bl sub_8045C78 adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 ldrb r0, [r6] adds r0, r5 ldrb r0, [r0] bl sub_8043DFC lsls r4, 16 asrs r1, r4, 16 movs r0, 0x1 negs r0, r0 cmp r1, r0 beq _08033110 ldrb r0, [r6] adds r0, r5 ldrb r0, [r0] movs r2, 0 bl sub_80440EC b _08033114 .align 2, 0 _08033108: .4byte 0x02024a60 _0803310C: .4byte 0x03004340 _08033110: bl sub_80334EC _08033114: pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_80330C8 thumb_func_start sub_803311C sub_803311C: @ 803311C push {lr} ldr r2, _08033150 ldr r0, _08033154 ldr r1, _08033158 ldrb r3, [r1] adds r0, r3, r0 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 adds r0, 0x3E ldrb r0, [r0] lsls r0, 31 cmp r0, 0 bne _0803314A ldr r0, _0803315C adds r0, r3, r0 ldrb r0, [r0] bl sub_8043DB0 bl sub_80334EC _0803314A: pop {r0} bx r0 .align 2, 0 _08033150: .4byte 0x02020004 _08033154: .4byte 0x02024be0 _08033158: .4byte 0x02024a60 _0803315C: .4byte 0x03004340 thumb_func_end sub_803311C thumb_func_start sub_8033160 sub_8033160: @ 8033160 push {r4-r6,lr} ldr r6, _080331BC ldrb r2, [r6] lsls r0, r2, 1 adds r0, r2 lsls r0, 2 ldr r1, _080331C0 adds r0, r1 ldrb r1, [r0] movs r0, 0x40 ands r0, r1 cmp r0, 0 bne _080331B6 ldr r5, _080331C4 adds r0, r2, r5 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r4, _080331C8 adds r0, r4 bl FreeSpriteOamMatrix ldrb r0, [r6] adds r0, r5 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 bl DestroySprite ldrb r0, [r6] bl sub_8032A08 ldr r1, _080331CC ldrb r0, [r6] adds r0, r1 ldrb r0, [r0] bl sub_8043DB0 bl sub_80334EC _080331B6: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080331BC: .4byte 0x02024a60 _080331C0: .4byte 0x02017810 _080331C4: .4byte 0x02024be0 _080331C8: .4byte 0x02020004 _080331CC: .4byte 0x03004340 thumb_func_end sub_8033160 thumb_func_start sub_80331D0 sub_80331D0: @ 80331D0 push {lr} ldr r0, _080331E4 ldrh r0, [r0, 0x16] cmp r0, 0 bne _080331DE bl sub_80334EC _080331DE: pop {r0} bx r0 .align 2, 0 _080331E4: .4byte 0x03004210 thumb_func_end sub_80331D0 thumb_func_start bx_blink_t7 bx_blink_t7: @ 80331E8 push {r4,lr} ldr r1, _08033224 ldr r0, _08033228 ldrb r0, [r0] adds r0, r1 ldrb r1, [r0] ldr r2, _0803322C lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r4, r0, r2 movs r1, 0x30 ldrsh r0, [r4, r1] cmp r0, 0x20 bne _08033234 movs r3, 0 movs r0, 0 strh r0, [r4, 0x30] adds r2, r4, 0 adds r2, 0x3E ldrb r1, [r2] subs r0, 0x5 ands r0, r1 strb r0, [r2] ldr r0, _08033230 strb r3, [r0] bl sub_80334EC b _0803325E .align 2, 0 _08033224: .4byte 0x02024be0 _08033228: .4byte 0x02024a60 _0803322C: .4byte 0x02020004 _08033230: .4byte 0x02024e6d _08033234: ldrh r0, [r4, 0x30] movs r1, 0x3 ands r0, r1 cmp r0, 0 bne _08033258 adds r3, r4, 0 adds r3, 0x3E ldrb r2, [r3] lsls r0, r2, 29 lsrs r0, 31 movs r1, 0x1 eors r1, r0 lsls r1, 2 movs r0, 0x5 negs r0, r0 ands r0, r2 orrs r0, r1 strb r0, [r3] _08033258: ldrh r0, [r4, 0x30] adds r0, 0x1 strh r0, [r4, 0x30] _0803325E: pop {r4} pop {r0} bx r0 thumb_func_end bx_blink_t7 thumb_func_start sub_8033264 sub_8033264: @ 8033264 push {r4,lr} ldr r2, _080332B4 ldr r0, _080332B8 ldr r4, _080332BC ldrb r3, [r4] adds r0, r3, r0 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r2, 0x1C adds r0, r2 ldr r1, [r0] ldr r0, _080332C0 cmp r1, r0 bne _080332AC lsls r0, r3, 2 ldr r1, _080332C4 adds r0, r1 ldrb r1, [r0] movs r0, 0x4 ands r0, r1 cmp r0, 0 beq _080332A0 adds r0, r3, 0 adds r1, r3, 0 adds r2, r3, 0 movs r3, 0x6 bl move_anim_start_t4 _080332A0: ldr r0, _080332C8 ldrb r1, [r4] lsls r1, 2 adds r1, r0 ldr r0, _080332CC str r0, [r1] _080332AC: pop {r4} pop {r0} bx r0 .align 2, 0 _080332B4: .4byte 0x02020004 _080332B8: .4byte 0x03004340 _080332BC: .4byte 0x02024a60 _080332C0: .4byte SpriteCallbackDummy _080332C4: .4byte 0x02017800 _080332C8: .4byte 0x03004330 _080332CC: .4byte sub_80332D0 thumb_func_end sub_8033264 thumb_func_start sub_80332D0 sub_80332D0: @ 80332D0 push {lr} ldr r0, _080332FC ldrb r1, [r0] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 ldr r1, _08033300 adds r0, r1 ldrb r1, [r0] movs r0, 0x40 ands r0, r1 cmp r0, 0 bne _080332F6 ldr r0, _08033304 movs r1, 0xA bl CreateTask bl sub_80334EC _080332F6: pop {r0} bx r0 .align 2, 0 _080332FC: .4byte 0x02024a60 _08033300: .4byte 0x02017810 _08033304: .4byte c3_0802FDF4 thumb_func_end sub_80332D0 thumb_func_start sub_8033308 sub_8033308: @ 8033308 push {r4,r5,lr} ldr r5, _080333AC ldrb r1, [r5] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 ldr r3, _080333B0 adds r2, r0, r3 ldrb r1, [r2, 0x1] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _080333A4 ldrb r1, [r2] movs r0, 0x7F ands r0, r1 strb r0, [r2] ldrb r0, [r5] lsls r1, r0, 1 adds r1, r0 lsls r1, 2 adds r1, r3 ldrb r2, [r1, 0x1] movs r0, 0x2 negs r0, r0 ands r0, r2 strb r0, [r1, 0x1] ldr r4, _080333B4 adds r0, r4, 0 bl FreeSpriteTilesByTag adds r0, r4, 0 bl FreeSpritePaletteByTag ldr r1, _080333B8 ldrb r0, [r5] adds r0, r1 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _080333BC adds r0, r1 movs r1, 0 bl StartSpriteAnim ldr r4, _080333C0 ldrb r1, [r5] adds r0, r1, r4 ldrb r0, [r0] ldr r2, _080333C4 lsls r1, 1 adds r1, r2 ldrh r2, [r1] movs r1, 0x64 muls r1, r2 ldr r2, _080333C8 adds r1, r2 movs r2, 0 bl sub_8045A5C ldrb r0, [r5] bl sub_804777C ldrb r0, [r5] adds r0, r4 ldrb r0, [r0] bl sub_8043DFC ldrb r0, [r5] bl sub_8031F88 ldr r1, _080333CC ldrb r0, [r5] lsls r0, 2 adds r0, r1 ldr r1, _080333D0 str r1, [r0] _080333A4: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080333AC: .4byte 0x02024a60 _080333B0: .4byte 0x02017810 _080333B4: .4byte 0x000027f9 _080333B8: .4byte 0x02024be0 _080333BC: .4byte 0x02020004 _080333C0: .4byte 0x03004340 _080333C4: .4byte 0x02024a6a _080333C8: .4byte 0x030045c0 _080333CC: .4byte 0x03004330 _080333D0: .4byte sub_8033264 thumb_func_end sub_8033308 thumb_func_start sub_80333D4 sub_80333D4: @ 80333D4 push {r4-r6,lr} ldr r5, _08033470 ldrb r2, [r5] lsls r3, r2, 1 adds r0, r3, r2 lsls r0, 2 ldr r6, _08033474 adds r0, r6 ldrb r1, [r0] movs r0, 0x88 ands r0, r1 cmp r0, 0 bne _08033402 ldr r0, _08033478 adds r0, r3, r0 ldrh r1, [r0] movs r0, 0x64 muls r1, r0 ldr r0, _0803347C adds r1, r0 adds r0, r2, 0 bl sub_8141828 _08033402: ldr r4, _08033480 ldr r0, _08033484 ldrb r2, [r5] adds r0, r2, r0 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r3, r0, 2 adds r0, r4, 0 adds r0, 0x1C adds r0, r3, r0 ldr r1, [r0] ldr r0, _08033488 cmp r1, r0 bne _08033468 lsls r0, r2, 1 adds r0, r2 lsls r0, 2 adds r0, r6 ldrb r1, [r0] movs r0, 0x8 ands r0, r1 cmp r0, 0 bne _08033468 adds r0, r3, r4 bl DestroySprite ldrb r4, [r5] ldr r1, _08033478 lsls r0, r4, 1 adds r0, r1 ldrh r1, [r0] movs r0, 0x64 muls r0, r1 ldr r1, _0803347C adds r0, r1 movs r1, 0xB bl PokemonGetField adds r1, r0, 0 lsls r1, 16 lsrs r1, 16 adds r0, r4, 0 bl sub_8032984 ldr r1, _0803348C ldrb r0, [r5] lsls r0, 2 adds r0, r1 ldr r1, _08033490 str r1, [r0] _08033468: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08033470: .4byte 0x02024a60 _08033474: .4byte 0x02017810 _08033478: .4byte 0x02024a6a _0803347C: .4byte 0x030045c0 _08033480: .4byte 0x02020004 _08033484: .4byte 0x0300434c _08033488: .4byte SpriteCallbackDummy _0803348C: .4byte 0x03004330 _08033490: .4byte sub_8033308 thumb_func_end sub_80333D4 thumb_func_start sub_8033494 sub_8033494: @ 8033494 push {lr} ldr r0, _080334B8 ldrb r1, [r0] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 ldr r1, _080334BC adds r0, r1 ldrb r1, [r0] movs r0, 0x10 ands r0, r1 cmp r0, 0 bne _080334B2 bl sub_80334EC _080334B2: pop {r0} bx r0 .align 2, 0 _080334B8: .4byte 0x02024a60 _080334BC: .4byte 0x02017810 thumb_func_end sub_8033494 thumb_func_start sub_80334C0 sub_80334C0: @ 80334C0 push {lr} ldr r0, _080334E4 ldrb r1, [r0] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 ldr r1, _080334E8 adds r0, r1 ldrb r1, [r0] movs r0, 0x20 ands r0, r1 cmp r0, 0 bne _080334DE bl sub_80334EC _080334DE: pop {r0} bx r0 .align 2, 0 _080334E4: .4byte 0x02024a60 _080334E8: .4byte 0x02017810 thumb_func_end sub_80334C0 thumb_func_start sub_80334EC sub_80334EC: @ 80334EC ldr r1, _08033510 ldr r2, _08033514 ldrb r0, [r2] lsls r0, 2 adds r0, r1 ldr r1, _08033518 str r1, [r0] ldr r3, _0803351C ldr r1, _08033520 ldrb r0, [r2] lsls r0, 2 adds r0, r1 ldr r1, [r0] ldr r0, [r3] bics r0, r1 str r0, [r3] bx lr .align 2, 0 _08033510: .4byte 0x03004330 _08033514: .4byte 0x02024a60 _08033518: .4byte sub_8032AFC _0803351C: .4byte 0x02024a64 _08033520: .4byte gUnknown_0820872C thumb_func_end sub_80334EC thumb_func_start dp01t_00_7_getattr dp01t_00_7_getattr: @ 8033524 push {r4-r6,lr} sub sp, 0x100 movs r6, 0 ldr r1, _08033550 ldr r0, _08033554 ldrb r2, [r0] lsls r0, r2, 9 adds r1, 0x2 adds r1, r0, r1 ldrb r0, [r1] cmp r0, 0 bne _0803355C ldr r0, _08033558 lsls r1, r2, 1 adds r1, r0 ldrb r0, [r1] mov r1, sp bl sub_8033598 adds r6, r0, 0 b _0803357E .align 2, 0 _08033550: .4byte 0x02023a60 _08033554: .4byte 0x02024a60 _08033558: .4byte 0x02024a6a _0803355C: ldrb r4, [r1] movs r5, 0 _08033560: movs r0, 0x1 ands r0, r4 cmp r0, 0 beq _08033576 lsls r0, r5, 24 lsrs r0, 24 mov r2, sp adds r1, r2, r6 bl sub_8033598 adds r6, r0 _08033576: lsrs r4, 1 adds r5, 0x1 cmp r5, 0x5 ble _08033560 _0803357E: lsls r1, r6, 16 lsrs r1, 16 movs r0, 0x1 mov r2, sp bl dp01_build_cmdbuf_x1D_1D_numargs_varargs bl sub_80334EC add sp, 0x100 pop {r4-r6} pop {r0} bx r0 thumb_func_end dp01t_00_7_getattr thumb_func_start sub_8033598 sub_8033598: @ 8033598 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x90 adds r7, r1, 0 lsls r0, 24 lsrs r5, r0, 24 movs r6, 0 ldr r2, _080335CC ldr r3, _080335D0 ldrb r0, [r3] lsls r0, 9 adds r1, r2, 0x1 adds r0, r1 ldrb r0, [r0] cmp r0, 0x3B bls _080335C2 bl _08033D2E _080335C2: lsls r0, 2 ldr r1, _080335D4 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080335CC: .4byte 0x02023a60 _080335D0: .4byte 0x02024a60 _080335D4: .4byte _080335D8 .align 2, 0 _080335D8: .4byte _080336C8 .4byte _080338EC .4byte _080338FC .4byte _0803390C .4byte _08033974 .4byte _08033974 .4byte _08033974 .4byte _08033974 .4byte _08033990 .4byte _080339CC .4byte _080339CC .4byte _080339CC .4byte _080339CC .4byte _08033D2E .4byte _08033D2E .4byte _08033D2E .4byte _08033D2E .4byte _080339E8 .4byte _080339F8 .4byte _08033A28 .4byte _08033A38 .4byte _08033A48 .4byte _08033A58 .4byte _08033A68 .4byte _08033A78 .4byte _08033A88 .4byte _08033A98 .4byte _08033AA8 .4byte _08033AB8 .4byte _08033AC8 .4byte _08033AD8 .4byte _08033AE8 .4byte _08033B38 .4byte _08033B48 .4byte _08033B58 .4byte _08033B68 .4byte _08033B78 .4byte _08033B88 .4byte _08033B98 .4byte _08033BA8 .4byte _08033BB8 .4byte _08033BEC .4byte _08033BFC .4byte _08033C0C .4byte _08033C1C .4byte _08033C2C .4byte _08033C3C .4byte _08033C4C .4byte _08033C5C .4byte _08033C7C .4byte _08033C8C .4byte _08033C9C .4byte _08033CAC .4byte _08033CBC .4byte _08033CCC .4byte _08033CDC .4byte _08033CEC .4byte _08033CFC .4byte _08033D0C .4byte _08033D1C _080336C8: movs r0, 0x64 adds r4, r5, 0 muls r4, r0 ldr r0, _080338DC adds r4, r0 adds r0, r4, 0 movs r1, 0xB bl PokemonGetField mov r1, sp strh r0, [r1] adds r0, r4, 0 movs r1, 0xC bl PokemonGetField mov r1, sp strh r0, [r1, 0x2E] movs r6, 0 add r0, sp, 0x24 mov r9, r0 movs r1, 0x3B add r1, sp mov r10, r1 mov r2, sp adds r2, 0x2B str r2, [sp, 0x80] mov r0, sp adds r0, 0x2A str r0, [sp, 0x7C] mov r1, sp adds r1, 0x68 str r1, [sp, 0x8C] adds r2, 0x5 str r2, [sp, 0x84] adds r0, 0x12 str r0, [sp, 0x88] mov r8, r4 add r4, sp, 0xC _08033714: adds r1, r6, 0 adds r1, 0xD mov r0, r8 bl PokemonGetField strh r0, [r4] adds r1, r6, 0 adds r1, 0x11 mov r0, r8 bl PokemonGetField mov r2, r9 adds r1, r2, r6 strb r0, [r1] adds r4, 0x2 adds r6, 0x1 cmp r6, 0x3 ble _08033714 movs r0, 0x64 adds r4, r5, 0 muls r4, r0 ldr r0, _080338DC adds r4, r0 adds r0, r4, 0 movs r1, 0x15 bl PokemonGetField mov r1, r10 strb r0, [r1] adds r0, r4, 0 movs r1, 0x20 bl PokemonGetField ldr r2, [sp, 0x80] strb r0, [r2] adds r0, r4, 0 movs r1, 0x19 bl PokemonGetField str r0, [sp, 0x44] adds r0, r4, 0 movs r1, 0x27 bl PokemonGetField mov r3, sp movs r5, 0x1F ands r0, r5 ldrb r2, [r3, 0x14] movs r1, 0x20 negs r1, r1 ands r1, r2 orrs r1, r0 strb r1, [r3, 0x14] adds r0, r4, 0 movs r1, 0x28 bl PokemonGetField mov r3, sp movs r6, 0x1F ands r0, r6 lsls r0, 5 ldrh r2, [r3, 0x14] ldr r1, _080338E0 ands r1, r2 orrs r1, r0 strh r1, [r3, 0x14] adds r0, r4, 0 movs r1, 0x29 bl PokemonGetField mov r3, sp ands r0, r5 lsls r0, 2 ldrb r2, [r3, 0x15] movs r1, 0x7D negs r1, r1 ands r1, r2 orrs r1, r0 strb r1, [r3, 0x15] adds r0, r4, 0 movs r1, 0x2A bl PokemonGetField movs r1, 0x1F ands r1, r0 lsls r1, 15 ldr r0, [sp, 0x14] ldr r2, _080338E4 ands r0, r2 orrs r0, r1 str r0, [sp, 0x14] adds r0, r4, 0 movs r1, 0x2B bl PokemonGetField mov r3, sp ands r0, r6 lsls r0, 4 ldrh r2, [r3, 0x16] ldr r1, _080338E8 ands r1, r2 orrs r1, r0 strh r1, [r3, 0x16] adds r0, r4, 0 movs r1, 0x2C bl PokemonGetField mov r3, sp ands r0, r5 lsls r0, 1 ldrb r2, [r3, 0x17] movs r1, 0x3F negs r1, r1 ands r1, r2 orrs r1, r0 strb r1, [r3, 0x17] adds r0, r4, 0 movs r1, 0 bl PokemonGetField str r0, [sp, 0x48] adds r0, r4, 0 movs r1, 0x37 bl PokemonGetField str r0, [sp, 0x4C] adds r0, r4, 0 movs r1, 0x38 bl PokemonGetField ldr r1, [sp, 0x7C] strb r0, [r1] adds r0, r4, 0 movs r1, 0x39 bl PokemonGetField mov r1, sp strh r0, [r1, 0x28] adds r0, r4, 0 movs r1, 0x3A bl PokemonGetField mov r1, sp strh r0, [r1, 0x2C] adds r0, r4, 0 movs r1, 0x3B bl PokemonGetField mov r1, sp strh r0, [r1, 0x2] adds r0, r4, 0 movs r1, 0x3C bl PokemonGetField mov r1, sp strh r0, [r1, 0x4] adds r0, r4, 0 movs r1, 0x3D bl PokemonGetField mov r1, sp strh r0, [r1, 0x6] adds r0, r4, 0 movs r1, 0x3E bl PokemonGetField mov r1, sp strh r0, [r1, 0x8] adds r0, r4, 0 movs r1, 0x3F bl PokemonGetField mov r1, sp strh r0, [r1, 0xA] adds r0, r4, 0 movs r1, 0x2D bl PokemonGetField mov r3, sp movs r1, 0x1 ands r0, r1 lsls r0, 6 ldrb r2, [r3, 0x17] movs r1, 0x41 negs r1, r1 ands r1, r2 orrs r1, r0 strb r1, [r3, 0x17] adds r0, r4, 0 movs r1, 0x2E bl PokemonGetField mov r3, sp lsls r0, 7 ldrb r2, [r3, 0x17] movs r1, 0x7F ands r1, r2 orrs r1, r0 strb r1, [r3, 0x17] adds r0, r4, 0 movs r1, 0x1 bl PokemonGetField str r0, [sp, 0x54] adds r0, r4, 0 movs r1, 0x2 ldr r2, [sp, 0x8C] bl PokemonGetField ldr r0, [sp, 0x84] ldr r1, [sp, 0x8C] bl StringCopy10 adds r0, r4, 0 movs r1, 0x7 ldr r2, [sp, 0x88] bl PokemonGetField mov r2, sp movs r6, 0 _080338CC: adds r0, r7, r6 adds r1, r2, r6 ldrb r1, [r1] strb r1, [r0] adds r6, 0x1 cmp r6, 0x57 bls _080338CC b _08033D2E .align 2, 0 _080338DC: .4byte 0x030045c0 _080338E0: .4byte 0xfffffc1f _080338E4: .4byte 0xfff07fff _080338E8: .4byte 0xfffffe0f _080338EC: movs r0, 0x64 muls r0, r5 ldr r1, _080338F8 adds r0, r1 movs r1, 0xB b _08033C66 .align 2, 0 _080338F8: .4byte 0x030045c0 _080338FC: movs r0, 0x64 muls r0, r5 ldr r1, _08033908 adds r0, r1 movs r1, 0xC b _08033C66 .align 2, 0 _08033908: .4byte 0x030045c0 _0803390C: movs r6, 0 add r2, sp, 0x58 mov r9, r2 add r0, sp, 0x60 mov r10, r0 movs r0, 0x64 adds r1, r5, 0 muls r1, r0 ldr r0, _08033970 adds r4, r1, r0 mov r8, r9 _08033922: adds r1, r6, 0 adds r1, 0xD adds r0, r4, 0 bl PokemonGetField mov r1, r8 strh r0, [r1] adds r1, r6, 0 adds r1, 0x11 adds r0, r4, 0 bl PokemonGetField mov r2, r10 adds r1, r2, r6 strb r0, [r1] movs r0, 0x2 add r8, r0 adds r6, 0x1 cmp r6, 0x3 ble _08033922 movs r0, 0x64 muls r0, r5 ldr r1, _08033970 adds r0, r1 movs r1, 0x15 bl PokemonGetField mov r1, r9 strb r0, [r1, 0xC] mov r2, r9 movs r6, 0 _08033960: adds r0, r7, r6 adds r1, r2, r6 ldrb r1, [r1] strb r1, [r0] adds r6, 0x1 cmp r6, 0xF bls _08033960 b _08033D2E .align 2, 0 _08033970: .4byte 0x030045c0 _08033974: movs r0, 0x64 muls r0, r5 ldr r1, _0803398C adds r0, r1 ldrb r1, [r3] lsls r1, 9 adds r2, 0x1 adds r1, r2 ldrb r1, [r1] adds r1, 0x9 b _08033C66 .align 2, 0 _0803398C: .4byte 0x030045c0 _08033990: movs r6, 0 movs r0, 0x64 adds r4, r5, 0 muls r4, r0 ldr r2, _080339C8 mov r8, r2 _0803399C: adds r1, r6, 0 adds r1, 0x11 mov r2, r8 adds r0, r4, r2 bl PokemonGetField adds r1, r7, r6 strb r0, [r1] adds r6, 0x1 cmp r6, 0x3 ble _0803399C movs r0, 0x64 muls r0, r5 ldr r1, _080339C8 adds r0, r1 movs r1, 0x15 bl PokemonGetField adds r1, r7, r6 strb r0, [r1] adds r6, 0x1 b _08033D2E .align 2, 0 _080339C8: .4byte 0x030045c0 _080339CC: movs r0, 0x64 muls r0, r5 ldr r1, _080339E4 adds r0, r1 ldrb r1, [r3] lsls r1, 9 adds r2, 0x1 adds r1, r2 ldrb r1, [r1] adds r1, 0x8 b _08033D26 .align 2, 0 _080339E4: .4byte 0x030045c0 _080339E8: movs r0, 0x64 muls r0, r5 ldr r1, _080339F4 adds r0, r1 movs r1, 0x1 b _08033A02 .align 2, 0 _080339F4: .4byte 0x030045c0 _080339F8: movs r0, 0x64 muls r0, r5 ldr r1, _08033A24 adds r0, r1 movs r1, 0x19 _08033A02: bl PokemonGetField adds r1, r0, 0 strb r1, [r7] movs r0, 0xFF lsls r0, 8 ands r0, r1 lsrs r0, 8 strb r0, [r7, 0x1] movs r0, 0xFF lsls r0, 16 ands r0, r1 lsrs r0, 16 strb r0, [r7, 0x2] movs r6, 0x3 b _08033D2E .align 2, 0 _08033A24: .4byte 0x030045c0 _08033A28: movs r0, 0x64 muls r0, r5 ldr r1, _08033A34 adds r0, r1 movs r1, 0x1A b _08033D26 .align 2, 0 _08033A34: .4byte 0x030045c0 _08033A38: movs r0, 0x64 muls r0, r5 ldr r1, _08033A44 adds r0, r1 movs r1, 0x1B b _08033D26 .align 2, 0 _08033A44: .4byte 0x030045c0 _08033A48: movs r0, 0x64 muls r0, r5 ldr r1, _08033A54 adds r0, r1 movs r1, 0x1C b _08033D26 .align 2, 0 _08033A54: .4byte 0x030045c0 _08033A58: movs r0, 0x64 muls r0, r5 ldr r1, _08033A64 adds r0, r1 movs r1, 0x1D b _08033D26 .align 2, 0 _08033A64: .4byte 0x030045c0 _08033A68: movs r0, 0x64 muls r0, r5 ldr r1, _08033A74 adds r0, r1 movs r1, 0x1E b _08033D26 .align 2, 0 _08033A74: .4byte 0x030045c0 _08033A78: movs r0, 0x64 muls r0, r5 ldr r1, _08033A84 adds r0, r1 movs r1, 0x1F b _08033D26 .align 2, 0 _08033A84: .4byte 0x030045c0 _08033A88: movs r0, 0x64 muls r0, r5 ldr r1, _08033A94 adds r0, r1 movs r1, 0x20 b _08033D26 .align 2, 0 _08033A94: .4byte 0x030045c0 _08033A98: movs r0, 0x64 muls r0, r5 ldr r1, _08033AA4 adds r0, r1 movs r1, 0x22 b _08033D26 .align 2, 0 _08033AA4: .4byte 0x030045c0 _08033AA8: movs r0, 0x64 muls r0, r5 ldr r1, _08033AB4 adds r0, r1 movs r1, 0x23 b _08033D26 .align 2, 0 _08033AB4: .4byte 0x030045c0 _08033AB8: movs r0, 0x64 muls r0, r5 ldr r1, _08033AC4 adds r0, r1 movs r1, 0x24 b _08033D26 .align 2, 0 _08033AC4: .4byte 0x030045c0 _08033AC8: movs r0, 0x64 muls r0, r5 ldr r1, _08033AD4 adds r0, r1 movs r1, 0x25 b _08033D26 .align 2, 0 _08033AD4: .4byte 0x030045c0 _08033AD8: movs r0, 0x64 muls r0, r5 ldr r1, _08033AE4 adds r0, r1 movs r1, 0x26 b _08033D26 .align 2, 0 _08033AE4: .4byte 0x030045c0 _08033AE8: movs r0, 0x64 adds r4, r5, 0 muls r4, r0 ldr r0, _08033B34 adds r4, r0 adds r0, r4, 0 movs r1, 0x27 bl PokemonGetField strb r0, [r7] adds r0, r4, 0 movs r1, 0x28 bl PokemonGetField strb r0, [r7, 0x1] adds r0, r4, 0 movs r1, 0x29 bl PokemonGetField strb r0, [r7, 0x2] adds r0, r4, 0 movs r1, 0x2A bl PokemonGetField strb r0, [r7, 0x3] adds r0, r4, 0 movs r1, 0x2B bl PokemonGetField strb r0, [r7, 0x4] adds r0, r4, 0 movs r1, 0x2C bl PokemonGetField strb r0, [r7, 0x5] movs r6, 0x6 b _08033D2E .align 2, 0 _08033B34: .4byte 0x030045c0 _08033B38: movs r0, 0x64 muls r0, r5 ldr r1, _08033B44 adds r0, r1 movs r1, 0x27 b _08033D26 .align 2, 0 _08033B44: .4byte 0x030045c0 _08033B48: movs r0, 0x64 muls r0, r5 ldr r1, _08033B54 adds r0, r1 movs r1, 0x28 b _08033D26 .align 2, 0 _08033B54: .4byte 0x030045c0 _08033B58: movs r0, 0x64 muls r0, r5 ldr r1, _08033B64 adds r0, r1 movs r1, 0x29 b _08033D26 .align 2, 0 _08033B64: .4byte 0x030045c0 _08033B68: movs r0, 0x64 muls r0, r5 ldr r1, _08033B74 adds r0, r1 movs r1, 0x2A b _08033D26 .align 2, 0 _08033B74: .4byte 0x030045c0 _08033B78: movs r0, 0x64 muls r0, r5 ldr r1, _08033B84 adds r0, r1 movs r1, 0x2B b _08033D26 .align 2, 0 _08033B84: .4byte 0x030045c0 _08033B88: movs r0, 0x64 muls r0, r5 ldr r1, _08033B94 adds r0, r1 movs r1, 0x2C b _08033D26 .align 2, 0 _08033B94: .4byte 0x030045c0 _08033B98: movs r0, 0x64 muls r0, r5 ldr r1, _08033BA4 adds r0, r1 movs r1, 0 b _08033BC2 .align 2, 0 _08033BA4: .4byte 0x030045c0 _08033BA8: movs r0, 0x64 muls r0, r5 ldr r1, _08033BB4 adds r0, r1 movs r1, 0x9 b _08033C66 .align 2, 0 _08033BB4: .4byte 0x030045c0 _08033BB8: movs r0, 0x64 muls r0, r5 ldr r1, _08033BE8 adds r0, r1 movs r1, 0x37 _08033BC2: bl PokemonGetField adds r1, r0, 0 strb r1, [r7] movs r0, 0xFF lsls r0, 8 ands r0, r1 lsrs r0, 8 strb r0, [r7, 0x1] movs r0, 0xFF lsls r0, 16 ands r0, r1 lsrs r0, 16 strb r0, [r7, 0x2] lsrs r0, r1, 24 strb r0, [r7, 0x3] movs r6, 0x4 b _08033D2E .align 2, 0 _08033BE8: .4byte 0x030045c0 _08033BEC: movs r0, 0x64 muls r0, r5 ldr r1, _08033BF8 adds r0, r1 movs r1, 0x38 b _08033D26 .align 2, 0 _08033BF8: .4byte 0x030045c0 _08033BFC: movs r0, 0x64 muls r0, r5 ldr r1, _08033C08 adds r0, r1 movs r1, 0x39 b _08033C66 .align 2, 0 _08033C08: .4byte 0x030045c0 _08033C0C: movs r0, 0x64 muls r0, r5 ldr r1, _08033C18 adds r0, r1 movs r1, 0x3A b _08033C66 .align 2, 0 _08033C18: .4byte 0x030045c0 _08033C1C: movs r0, 0x64 muls r0, r5 ldr r1, _08033C28 adds r0, r1 movs r1, 0x3B b _08033C66 .align 2, 0 _08033C28: .4byte 0x030045c0 _08033C2C: movs r0, 0x64 muls r0, r5 ldr r1, _08033C38 adds r0, r1 movs r1, 0x3C b _08033C66 .align 2, 0 _08033C38: .4byte 0x030045c0 _08033C3C: movs r0, 0x64 muls r0, r5 ldr r1, _08033C48 adds r0, r1 movs r1, 0x3D b _08033C66 .align 2, 0 _08033C48: .4byte 0x030045c0 _08033C4C: movs r0, 0x64 muls r0, r5 ldr r1, _08033C58 adds r0, r1 movs r1, 0x3E b _08033C66 .align 2, 0 _08033C58: .4byte 0x030045c0 _08033C5C: movs r0, 0x64 muls r0, r5 ldr r1, _08033C78 adds r0, r1 movs r1, 0x3F _08033C66: bl PokemonGetField lsls r0, 16 lsrs r0, 16 strb r0, [r7] lsrs r0, 8 strb r0, [r7, 0x1] movs r6, 0x2 b _08033D2E .align 2, 0 _08033C78: .4byte 0x030045c0 _08033C7C: movs r0, 0x64 muls r0, r5 ldr r1, _08033C88 adds r0, r1 movs r1, 0x16 b _08033D26 .align 2, 0 _08033C88: .4byte 0x030045c0 _08033C8C: movs r0, 0x64 muls r0, r5 ldr r1, _08033C98 adds r0, r1 movs r1, 0x17 b _08033D26 .align 2, 0 _08033C98: .4byte 0x030045c0 _08033C9C: movs r0, 0x64 muls r0, r5 ldr r1, _08033CA8 adds r0, r1 movs r1, 0x18 b _08033D26 .align 2, 0 _08033CA8: .4byte 0x030045c0 _08033CAC: movs r0, 0x64 muls r0, r5 ldr r1, _08033CB8 adds r0, r1 movs r1, 0x21 b _08033D26 .align 2, 0 _08033CB8: .4byte 0x030045c0 _08033CBC: movs r0, 0x64 muls r0, r5 ldr r1, _08033CC8 adds r0, r1 movs r1, 0x2F b _08033D26 .align 2, 0 _08033CC8: .4byte 0x030045c0 _08033CCC: movs r0, 0x64 muls r0, r5 ldr r1, _08033CD8 adds r0, r1 movs r1, 0x30 b _08033D26 .align 2, 0 _08033CD8: .4byte 0x030045c0 _08033CDC: movs r0, 0x64 muls r0, r5 ldr r1, _08033CE8 adds r0, r1 movs r1, 0x32 b _08033D26 .align 2, 0 _08033CE8: .4byte 0x030045c0 _08033CEC: movs r0, 0x64 muls r0, r5 ldr r1, _08033CF8 adds r0, r1 movs r1, 0x33 b _08033D26 .align 2, 0 _08033CF8: .4byte 0x030045c0 _08033CFC: movs r0, 0x64 muls r0, r5 ldr r1, _08033D08 adds r0, r1 movs r1, 0x34 b _08033D26 .align 2, 0 _08033D08: .4byte 0x030045c0 _08033D0C: movs r0, 0x64 muls r0, r5 ldr r1, _08033D18 adds r0, r1 movs r1, 0x35 b _08033D26 .align 2, 0 _08033D18: .4byte 0x030045c0 _08033D1C: movs r0, 0x64 muls r0, r5 ldr r1, _08033D40 adds r0, r1 movs r1, 0x36 _08033D26: bl PokemonGetField strb r0, [r7] movs r6, 0x1 _08033D2E: adds r0, r6, 0 add sp, 0x90 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _08033D40: .4byte 0x030045c0 thumb_func_end sub_8033598 thumb_func_start dp01t_01_2_read_pokmon_data_slice dp01t_01_2_read_pokmon_data_slice: @ 8033D44 push {r4-r7,lr} sub sp, 0x58 ldr r2, _08033DBC ldr r5, _08033DC0 ldrb r1, [r5] lsls r0, r1, 1 adds r0, r2 ldrh r2, [r0] movs r0, 0x64 adds r4, r2, 0 muls r4, r0 ldr r3, _08033DC4 lsls r1, 9 adds r0, r3, 0x1 adds r0, r1, r0 ldrb r2, [r0] ldr r0, _08033DC8 adds r0, r2, r0 adds r6, r4, r0 mov r0, sp adds r4, r0, r2 movs r2, 0 adds r0, r3, 0x2 adds r1, r0 adds r7, r5, 0 mov r12, r3 ldrb r1, [r1] cmp r2, r1 bcs _08033D9A adds r3, r0, 0 _08033D80: adds r1, r4, r2 adds r0, r6, r2 ldrb r0, [r0] strb r0, [r1] adds r0, r2, 0x1 lsls r0, 24 lsrs r2, r0, 24 ldrb r0, [r5] lsls r0, 9 adds r0, r3 ldrb r0, [r0] cmp r2, r0 bcc _08033D80 _08033D9A: ldrb r0, [r7] lsls r0, 9 mov r1, r12 adds r1, 0x2 adds r0, r1 ldrb r1, [r0] movs r0, 0x1 adds r2, r4, 0 bl dp01_build_cmdbuf_x1D_1D_numargs_varargs bl sub_80334EC add sp, 0x58 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08033DBC: .4byte 0x02024a6a _08033DC0: .4byte 0x02024a60 _08033DC4: .4byte 0x02023a60 _08033DC8: .4byte 0x030045c0 thumb_func_end dp01t_01_2_read_pokmon_data_slice thumb_func_start dp01t_02_7_setattr dp01t_02_7_setattr: @ 8033DCC push {r4,r5,lr} ldr r1, _08033DF0 ldr r0, _08033DF4 ldrb r2, [r0] lsls r0, r2, 9 adds r1, 0x2 adds r1, r0, r1 ldrb r0, [r1] cmp r0, 0 bne _08033DFC ldr r0, _08033DF8 lsls r1, r2, 1 adds r1, r0 ldrb r0, [r1] bl sub_8033E24 b _08033E1A .align 2, 0 _08033DF0: .4byte 0x02023a60 _08033DF4: .4byte 0x02024a60 _08033DF8: .4byte 0x02024a6a _08033DFC: ldrb r4, [r1] movs r5, 0 _08033E00: movs r0, 0x1 ands r0, r4 cmp r0, 0 beq _08033E0E adds r0, r5, 0 bl sub_8033E24 _08033E0E: lsrs r4, 1 adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0x5 bls _08033E00 _08033E1A: bl sub_80334EC pop {r4,r5} pop {r0} bx r0 thumb_func_end dp01t_02_7_setattr thumb_func_start sub_8033E24 sub_8033E24: @ 8033E24 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x38 lsls r0, 24 lsrs r5, r0, 24 ldr r3, _08033E5C ldrb r0, [r3] lsls r0, 9 ldr r2, _08033E60 adds r4, r0, r2 adds r7, r4, 0 subs r1, r2, 0x2 adds r0, r1 ldrb r0, [r0] adds r6, r3, 0 adds r3, r2, 0 cmp r0, 0x3B bls _08033E52 bl _08034730 _08033E52: lsls r0, 2 ldr r1, _08033E64 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08033E5C: .4byte 0x02024a60 _08033E60: .4byte 0x02023a63 _08033E64: .4byte _08033E68 .align 2, 0 _08033E68: .4byte _08033F58 .4byte _080340F0 .4byte _0803410C .4byte _08034128 .4byte _0803417C .4byte _0803417C .4byte _0803417C .4byte _0803417C .4byte _0803419C .4byte _08034204 .4byte _08034204 .4byte _08034204 .4byte _08034204 .4byte _08034730 .4byte _08034730 .4byte _08034730 .4byte _08034730 .4byte _0803422C .4byte _08034248 .4byte _08034264 .4byte _08034280 .4byte _0803429C .4byte _080342B8 .4byte _080342D4 .4byte _080342F0 .4byte _0803430C .4byte _08034328 .4byte _08034344 .4byte _08034360 .4byte _0803437C .4byte _08034398 .4byte _080343B4 .4byte _08034428 .4byte _08034444 .4byte _08034460 .4byte _0803447C .4byte _08034498 .4byte _080344B4 .4byte _080344D0 .4byte _080344EC .4byte _08034508 .4byte _08034524 .4byte _08034540 .4byte _0803455C .4byte _08034578 .4byte _08034594 .4byte _080345B0 .4byte _080345CC .4byte _080345E8 .4byte _08034604 .4byte _08034620 .4byte _0803463C .4byte _08034658 .4byte _08034674 .4byte _08034690 .4byte _080346AC .4byte _080346C8 .4byte _080346E4 .4byte _08034700 .4byte _0803471C _08033F58: movs r0, 0x64 adds r4, r5, 0 muls r4, r0 ldr r0, _080340EC adds r4, r0 adds r0, r4, 0 movs r1, 0xB adds r2, r7, 0 bl pokemon_setattr adds r2, r7, 0 adds r2, 0x2E adds r0, r4, 0 movs r1, 0xC bl pokemon_setattr movs r0, 0 mov r8, r0 movs r0, 0x3B adds r0, r7 mov r10, r0 adds r0, r7, 0 adds r0, 0x2B str r0, [sp, 0x20] adds r0, 0x19 str r0, [sp, 0x28] adds r0, 0x4 str r0, [sp, 0x2C] adds r0, 0x4 str r0, [sp, 0x30] subs r0, 0x22 str r0, [sp, 0x1C] subs r0, 0x2 str r0, [sp, 0x18] adds r0, 0x4 str r0, [sp, 0x24] adds r0, r7, 0x2 str r0, [sp, 0x4] adds r0, r7, 0x4 str r0, [sp, 0x8] adds r0, r7, 0x6 str r0, [sp, 0xC] adds r0, 0x2 str r0, [sp, 0x10] adds r0, 0x2 str r0, [sp, 0x14] mov r9, r4 adds r6, r7, 0 adds r6, 0x24 adds r4, r7, 0 adds r4, 0xC _08033FBE: mov r1, r8 adds r1, 0xD mov r0, r9 adds r2, r4, 0 bl pokemon_setattr mov r1, r8 adds r1, 0x11 mov r0, r9 adds r2, r6, 0 bl pokemon_setattr adds r6, 0x1 adds r4, 0x2 movs r0, 0x1 add r8, r0 mov r0, r8 cmp r0, 0x3 ble _08033FBE movs r0, 0x64 adds r4, r5, 0 muls r4, r0 ldr r0, _080340EC adds r4, r0 adds r0, r4, 0 movs r1, 0x15 mov r2, r10 bl pokemon_setattr adds r0, r4, 0 movs r1, 0x20 ldr r2, [sp, 0x20] bl pokemon_setattr adds r0, r4, 0 movs r1, 0x19 ldr r2, [sp, 0x28] bl pokemon_setattr ldrb r0, [r7, 0x14] lsls r0, 27 lsrs r0, 27 mov r1, sp strb r0, [r1] adds r0, r4, 0 movs r1, 0x27 mov r2, sp bl pokemon_setattr mov r1, sp ldrh r0, [r7, 0x14] lsls r0, 22 lsrs r0, 27 strb r0, [r1] adds r0, r4, 0 movs r1, 0x28 mov r2, sp bl pokemon_setattr mov r1, sp ldrb r0, [r7, 0x15] lsls r0, 25 lsrs r0, 27 strb r0, [r1] adds r0, r4, 0 movs r1, 0x29 mov r2, sp bl pokemon_setattr mov r1, sp ldr r0, [r7, 0x14] lsls r0, 12 lsrs r0, 27 strb r0, [r1] adds r0, r4, 0 movs r1, 0x2A mov r2, sp bl pokemon_setattr mov r1, sp ldrh r0, [r7, 0x16] lsls r0, 23 lsrs r0, 27 strb r0, [r1] adds r0, r4, 0 movs r1, 0x2B mov r2, sp bl pokemon_setattr mov r1, sp ldrb r0, [r7, 0x17] lsls r0, 26 lsrs r0, 27 strb r0, [r1] adds r0, r4, 0 movs r1, 0x2C mov r2, sp bl pokemon_setattr adds r0, r4, 0 movs r1, 0 ldr r2, [sp, 0x2C] bl pokemon_setattr adds r0, r4, 0 movs r1, 0x37 ldr r2, [sp, 0x30] bl pokemon_setattr adds r0, r4, 0 movs r1, 0x38 ldr r2, [sp, 0x1C] bl pokemon_setattr adds r0, r4, 0 movs r1, 0x39 ldr r2, [sp, 0x18] bl pokemon_setattr adds r0, r4, 0 movs r1, 0x3A ldr r2, [sp, 0x24] bl pokemon_setattr adds r0, r4, 0 movs r1, 0x3B ldr r2, [sp, 0x4] bl pokemon_setattr adds r0, r4, 0 movs r1, 0x3C ldr r2, [sp, 0x8] bl pokemon_setattr adds r0, r4, 0 movs r1, 0x3D ldr r2, [sp, 0xC] bl pokemon_setattr adds r0, r4, 0 movs r1, 0x3E ldr r2, [sp, 0x10] bl pokemon_setattr adds r0, r4, 0 movs r1, 0x3F ldr r2, [sp, 0x14] bl pokemon_setattr b _08034730 .align 2, 0 _080340EC: .4byte 0x030045c0 _080340F0: movs r0, 0x64 muls r0, r5 ldr r1, _08034108 adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0xB bl pokemon_setattr b _08034730 .align 2, 0 _08034108: .4byte 0x030045c0 _0803410C: movs r0, 0x64 muls r0, r5 ldr r1, _08034124 adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0xC bl pokemon_setattr b _08034730 .align 2, 0 _08034124: .4byte 0x030045c0 _08034128: movs r0, 0 mov r8, r0 movs r0, 0xC adds r0, r4 mov r9, r0 movs r0, 0x64 adds r1, r5, 0 muls r1, r0 ldr r0, _08034178 adds r7, r1, r0 adds r6, r4, 0 adds r6, 0x8 _08034140: mov r1, r8 adds r1, 0xD adds r0, r7, 0 adds r2, r4, 0 bl pokemon_setattr mov r1, r8 adds r1, 0x11 adds r0, r7, 0 adds r2, r6, 0 bl pokemon_setattr adds r6, 0x1 adds r4, 0x2 movs r0, 0x1 add r8, r0 mov r0, r8 cmp r0, 0x3 ble _08034140 movs r0, 0x64 muls r0, r5 ldr r1, _08034178 adds r0, r1 movs r1, 0x15 mov r2, r9 bl pokemon_setattr b _08034730 .align 2, 0 _08034178: .4byte 0x030045c0 _0803417C: movs r0, 0x64 muls r0, r5 ldr r1, _08034194 adds r0, r1 ldr r3, _08034198 ldrb r2, [r6] lsls r2, 9 adds r1, r3, 0x1 adds r1, r2, r1 ldrb r1, [r1] adds r1, 0x9 b _0803421A .align 2, 0 _08034194: .4byte 0x030045c0 _08034198: .4byte 0x02023a60 _0803419C: movs r0, 0x64 adds r4, r5, 0 muls r4, r0 ldr r0, _08034200 adds r4, r0 ldrb r2, [r6] lsls r2, 9 adds r2, r3 adds r0, r4, 0 movs r1, 0x11 str r3, [sp, 0x34] bl pokemon_setattr ldrb r2, [r6] lsls r2, 9 ldr r3, [sp, 0x34] adds r0, r3, 0x1 adds r2, r0 adds r0, r4, 0 movs r1, 0x12 bl pokemon_setattr ldrb r2, [r6] lsls r2, 9 ldr r3, [sp, 0x34] adds r0, r3, 0x2 adds r2, r0 adds r0, r4, 0 movs r1, 0x13 bl pokemon_setattr ldrb r2, [r6] lsls r2, 9 ldr r3, [sp, 0x34] adds r0, r3, 0x3 adds r2, r0 adds r0, r4, 0 movs r1, 0x14 bl pokemon_setattr ldrb r2, [r6] lsls r2, 9 ldr r3, [sp, 0x34] adds r0, r3, 0x4 adds r2, r0 adds r0, r4, 0 movs r1, 0x15 bl pokemon_setattr b _08034730 .align 2, 0 _08034200: .4byte 0x030045c0 _08034204: movs r0, 0x64 muls r0, r5 ldr r1, _08034224 adds r0, r1 ldr r3, _08034228 ldrb r2, [r6] lsls r2, 9 adds r1, r3, 0x1 adds r1, r2, r1 ldrb r1, [r1] adds r1, 0x8 _0803421A: adds r3, 0x3 adds r2, r3 bl pokemon_setattr b _08034730 .align 2, 0 _08034224: .4byte 0x030045c0 _08034228: .4byte 0x02023a60 _0803422C: movs r0, 0x64 muls r0, r5 ldr r1, _08034244 adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0x1 bl pokemon_setattr b _08034730 .align 2, 0 _08034244: .4byte 0x030045c0 _08034248: movs r0, 0x64 muls r0, r5 ldr r1, _08034260 adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0x19 bl pokemon_setattr b _08034730 .align 2, 0 _08034260: .4byte 0x030045c0 _08034264: movs r0, 0x64 muls r0, r5 ldr r1, _0803427C adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0x1A bl pokemon_setattr b _08034730 .align 2, 0 _0803427C: .4byte 0x030045c0 _08034280: movs r0, 0x64 muls r0, r5 ldr r1, _08034298 adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0x1B bl pokemon_setattr b _08034730 .align 2, 0 _08034298: .4byte 0x030045c0 _0803429C: movs r0, 0x64 muls r0, r5 ldr r1, _080342B4 adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0x1C bl pokemon_setattr b _08034730 .align 2, 0 _080342B4: .4byte 0x030045c0 _080342B8: movs r0, 0x64 muls r0, r5 ldr r1, _080342D0 adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0x1D bl pokemon_setattr b _08034730 .align 2, 0 _080342D0: .4byte 0x030045c0 _080342D4: movs r0, 0x64 muls r0, r5 ldr r1, _080342EC adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0x1E bl pokemon_setattr b _08034730 .align 2, 0 _080342EC: .4byte 0x030045c0 _080342F0: movs r0, 0x64 muls r0, r5 ldr r1, _08034308 adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0x1F bl pokemon_setattr b _08034730 .align 2, 0 _08034308: .4byte 0x030045c0 _0803430C: movs r0, 0x64 muls r0, r5 ldr r1, _08034324 adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0x20 bl pokemon_setattr b _08034730 .align 2, 0 _08034324: .4byte 0x030045c0 _08034328: movs r0, 0x64 muls r0, r5 ldr r1, _08034340 adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0x22 bl pokemon_setattr b _08034730 .align 2, 0 _08034340: .4byte 0x030045c0 _08034344: movs r0, 0x64 muls r0, r5 ldr r1, _0803435C adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0x23 bl pokemon_setattr b _08034730 .align 2, 0 _0803435C: .4byte 0x030045c0 _08034360: movs r0, 0x64 muls r0, r5 ldr r1, _08034378 adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0x24 bl pokemon_setattr b _08034730 .align 2, 0 _08034378: .4byte 0x030045c0 _0803437C: movs r0, 0x64 muls r0, r5 ldr r1, _08034394 adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0x25 bl pokemon_setattr b _08034730 .align 2, 0 _08034394: .4byte 0x030045c0 _08034398: movs r0, 0x64 muls r0, r5 ldr r1, _080343B0 adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0x26 bl pokemon_setattr b _08034730 .align 2, 0 _080343B0: .4byte 0x030045c0 _080343B4: movs r0, 0x64 adds r4, r5, 0 muls r4, r0 ldr r0, _08034424 adds r4, r0 ldrb r2, [r6] lsls r2, 9 adds r2, r3 adds r0, r4, 0 movs r1, 0x27 str r3, [sp, 0x34] bl pokemon_setattr ldrb r2, [r6] lsls r2, 9 ldr r3, [sp, 0x34] adds r0, r3, 0x1 adds r2, r0 adds r0, r4, 0 movs r1, 0x28 bl pokemon_setattr ldrb r2, [r6] lsls r2, 9 ldr r3, [sp, 0x34] adds r0, r3, 0x2 adds r2, r0 adds r0, r4, 0 movs r1, 0x29 bl pokemon_setattr ldrb r2, [r6] lsls r2, 9 ldr r3, [sp, 0x34] adds r0, r3, 0x3 adds r2, r0 adds r0, r4, 0 movs r1, 0x2A bl pokemon_setattr ldrb r2, [r6] lsls r2, 9 ldr r3, [sp, 0x34] adds r0, r3, 0x4 adds r2, r0 adds r0, r4, 0 movs r1, 0x2B bl pokemon_setattr ldrb r2, [r6] lsls r2, 9 ldr r3, [sp, 0x34] adds r0, r3, 0x5 adds r2, r0 adds r0, r4, 0 b _080344C2 .align 2, 0 _08034424: .4byte 0x030045c0 _08034428: movs r0, 0x64 muls r0, r5 ldr r1, _08034440 adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0x27 bl pokemon_setattr b _08034730 .align 2, 0 _08034440: .4byte 0x030045c0 _08034444: movs r0, 0x64 muls r0, r5 ldr r1, _0803445C adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0x28 bl pokemon_setattr b _08034730 .align 2, 0 _0803445C: .4byte 0x030045c0 _08034460: movs r0, 0x64 muls r0, r5 ldr r1, _08034478 adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0x29 bl pokemon_setattr b _08034730 .align 2, 0 _08034478: .4byte 0x030045c0 _0803447C: movs r0, 0x64 muls r0, r5 ldr r1, _08034494 adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0x2A bl pokemon_setattr b _08034730 .align 2, 0 _08034494: .4byte 0x030045c0 _08034498: movs r0, 0x64 muls r0, r5 ldr r1, _080344B0 adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0x2B bl pokemon_setattr b _08034730 .align 2, 0 _080344B0: .4byte 0x030045c0 _080344B4: movs r0, 0x64 muls r0, r5 ldr r1, _080344CC adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 _080344C2: movs r1, 0x2C bl pokemon_setattr b _08034730 .align 2, 0 _080344CC: .4byte 0x030045c0 _080344D0: movs r0, 0x64 muls r0, r5 ldr r1, _080344E8 adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0 bl pokemon_setattr b _08034730 .align 2, 0 _080344E8: .4byte 0x030045c0 _080344EC: movs r0, 0x64 muls r0, r5 ldr r1, _08034504 adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0x9 bl pokemon_setattr b _08034730 .align 2, 0 _08034504: .4byte 0x030045c0 _08034508: movs r0, 0x64 muls r0, r5 ldr r1, _08034520 adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0x37 bl pokemon_setattr b _08034730 .align 2, 0 _08034520: .4byte 0x030045c0 _08034524: movs r0, 0x64 muls r0, r5 ldr r1, _0803453C adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0x38 bl pokemon_setattr b _08034730 .align 2, 0 _0803453C: .4byte 0x030045c0 _08034540: movs r0, 0x64 muls r0, r5 ldr r1, _08034558 adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0x39 bl pokemon_setattr b _08034730 .align 2, 0 _08034558: .4byte 0x030045c0 _0803455C: movs r0, 0x64 muls r0, r5 ldr r1, _08034574 adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0x3A bl pokemon_setattr b _08034730 .align 2, 0 _08034574: .4byte 0x030045c0 _08034578: movs r0, 0x64 muls r0, r5 ldr r1, _08034590 adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0x3B bl pokemon_setattr b _08034730 .align 2, 0 _08034590: .4byte 0x030045c0 _08034594: movs r0, 0x64 muls r0, r5 ldr r1, _080345AC adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0x3C bl pokemon_setattr b _08034730 .align 2, 0 _080345AC: .4byte 0x030045c0 _080345B0: movs r0, 0x64 muls r0, r5 ldr r1, _080345C8 adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0x3D bl pokemon_setattr b _08034730 .align 2, 0 _080345C8: .4byte 0x030045c0 _080345CC: movs r0, 0x64 muls r0, r5 ldr r1, _080345E4 adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0x3E bl pokemon_setattr b _08034730 .align 2, 0 _080345E4: .4byte 0x030045c0 _080345E8: movs r0, 0x64 muls r0, r5 ldr r1, _08034600 adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0x3F bl pokemon_setattr b _08034730 .align 2, 0 _08034600: .4byte 0x030045c0 _08034604: movs r0, 0x64 muls r0, r5 ldr r1, _0803461C adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0x16 bl pokemon_setattr b _08034730 .align 2, 0 _0803461C: .4byte 0x030045c0 _08034620: movs r0, 0x64 muls r0, r5 ldr r1, _08034638 adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0x17 bl pokemon_setattr b _08034730 .align 2, 0 _08034638: .4byte 0x030045c0 _0803463C: movs r0, 0x64 muls r0, r5 ldr r1, _08034654 adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0x18 bl pokemon_setattr b _08034730 .align 2, 0 _08034654: .4byte 0x030045c0 _08034658: movs r0, 0x64 muls r0, r5 ldr r1, _08034670 adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0x21 bl pokemon_setattr b _08034730 .align 2, 0 _08034670: .4byte 0x030045c0 _08034674: movs r0, 0x64 muls r0, r5 ldr r1, _0803468C adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0x2F bl pokemon_setattr b _08034730 .align 2, 0 _0803468C: .4byte 0x030045c0 _08034690: movs r0, 0x64 muls r0, r5 ldr r1, _080346A8 adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0x30 bl pokemon_setattr b _08034730 .align 2, 0 _080346A8: .4byte 0x030045c0 _080346AC: movs r0, 0x64 muls r0, r5 ldr r1, _080346C4 adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0x32 bl pokemon_setattr b _08034730 .align 2, 0 _080346C4: .4byte 0x030045c0 _080346C8: movs r0, 0x64 muls r0, r5 ldr r1, _080346E0 adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0x33 bl pokemon_setattr b _08034730 .align 2, 0 _080346E0: .4byte 0x030045c0 _080346E4: movs r0, 0x64 muls r0, r5 ldr r1, _080346FC adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0x34 bl pokemon_setattr b _08034730 .align 2, 0 _080346FC: .4byte 0x030045c0 _08034700: movs r0, 0x64 muls r0, r5 ldr r1, _08034718 adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0x35 bl pokemon_setattr b _08034730 .align 2, 0 _08034718: .4byte 0x030045c0 _0803471C: movs r0, 0x64 muls r0, r5 ldr r1, _08034740 adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0x36 bl pokemon_setattr _08034730: add sp, 0x38 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08034740: .4byte 0x030045c0 thumb_func_end sub_8033E24 thumb_func_start sub_8034744 sub_8034744: @ 8034744 push {r4-r7,lr} ldr r1, _080347A8 ldr r7, _080347AC ldrb r2, [r7] lsls r0, r2, 1 adds r0, r1 ldrh r1, [r0] movs r0, 0x64 adds r3, r1, 0 muls r3, r0 ldr r4, _080347B0 lsls r2, 9 adds r0, r4, 0x1 adds r0, r2, r0 ldrb r0, [r0] ldr r1, _080347B4 adds r0, r1 adds r5, r3, r0 movs r3, 0 adds r0, r4, 0x2 adds r2, r0 ldrb r2, [r2] cmp r3, r2 bcs _0803479C adds r6, r4, 0 adds r2, r7, 0 adds r4, r0, 0 _0803477A: adds r1, r5, r3 ldrb r0, [r2] lsls r0, 9 adds r0, 0x3 adds r0, r3, r0 adds r0, r6 ldrb r0, [r0] strb r0, [r1] adds r0, r3, 0x1 lsls r0, 24 lsrs r3, r0, 24 ldrb r0, [r2] lsls r0, 9 adds r0, r4 ldrb r0, [r0] cmp r3, r0 bcc _0803477A _0803479C: bl sub_80334EC pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080347A8: .4byte 0x02024a6a _080347AC: .4byte 0x02024a60 _080347B0: .4byte 0x02023a60 _080347B4: .4byte 0x030045c0 thumb_func_end sub_8034744 thumb_func_start sub_80347B8 sub_80347B8: @ 80347B8 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} ldr r6, _080348E8 ldrb r0, [r6] lsls r0, 1 ldr r1, _080348EC adds r0, r1 ldrh r0, [r0] movs r7, 0x64 muls r0, r7 ldr r2, _080348F0 mov r10, r2 add r0, r10 movs r1, 0xB bl PokemonGetField mov r8, r0 lsls r0, 16 lsrs r0, 16 mov r8, r0 ldrb r1, [r6] lsls r0, r1, 1 ldr r2, _080348EC adds r0, r2 ldrh r0, [r0] muls r0, r7 add r0, r10 bl sub_8031794 ldrb r0, [r6] bl battle_get_per_side_status adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 mov r0, r8 bl gpu_pal_obj_decompress_and_apply ldr r0, _080348F4 mov r9, r0 ldrb r0, [r6] movs r1, 0x2 bl sub_8077ABC adds r5, r0, 0 lsls r5, 24 lsrs r5, 24 ldrb r0, [r6] bl sub_8077F68 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldrb r0, [r6] bl sub_8079E90 adds r3, r0, 0 lsls r3, 24 lsrs r3, 24 mov r0, r9 adds r1, r5, 0 adds r2, r4, 0 bl CreateSprite ldr r4, _080348F8 ldrb r1, [r6] adds r1, r4 strb r0, [r1] ldr r5, _080348FC ldrb r0, [r6] adds r0, r4 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 ldr r1, _08034900 strh r1, [r0, 0x24] ldrb r2, [r6] adds r0, r2, r4 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 strh r2, [r0, 0x2E] ldrb r0, [r6] adds r0, r4 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 mov r1, r8 strh r1, [r0, 0x32] ldrb r3, [r6] adds r0, r3, r4 ldrb r0, [r0] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r5 lsls r3, 4 ldrb r2, [r1, 0x5] movs r0, 0xF ands r0, r2 orrs r0, r3 strb r0, [r1, 0x5] ldrb r2, [r6] adds r4, r2, r4 ldrb r1, [r4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 ldr r1, _08034904 adds r2, r1 ldrb r1, [r2] bl StartSpriteAnim ldrb r4, [r6] lsls r0, r4, 1 ldr r2, _080348EC adds r0, r2 ldrh r0, [r0] muls r0, r7 add r0, r10 movs r1, 0xB bl PokemonGetField adds r1, r0, 0 lsls r1, 16 lsrs r1, 16 adds r0, r4, 0 bl sub_8032984 ldr r1, _08034908 ldrb r0, [r6] lsls r0, 2 adds r0, r1 ldr r1, _0803490C str r1, [r0] pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080348E8: .4byte 0x02024a60 _080348EC: .4byte 0x02024a6a _080348F0: .4byte 0x030045c0 _080348F4: .4byte 0x02024e8c _080348F8: .4byte 0x02024be0 _080348FC: .4byte 0x02020004 _08034900: .4byte 0x0000ff10 _08034904: .4byte 0x02024e84 _08034908: .4byte 0x03004330 _0803490C: .4byte sub_8033018 thumb_func_end sub_80347B8 thumb_func_start sub_8034910 sub_8034910: @ 8034910 push {r4,lr} ldr r1, _08034948 ldr r4, _0803494C ldrb r0, [r4] lsls r2, r0, 1 adds r2, r1 ldr r3, _08034950 lsls r0, 9 adds r1, r3, 0x1 adds r0, r1 ldrb r0, [r0] strh r0, [r2] ldrb r0, [r4] lsls r1, r0, 9 adds r3, 0x2 adds r1, r3 ldrb r1, [r1] bl sub_803495C ldr r1, _08034954 ldrb r0, [r4] lsls r0, 2 adds r0, r1 ldr r1, _08034958 str r1, [r0] pop {r4} pop {r0} bx r0 .align 2, 0 _08034948: .4byte 0x02024a6a _0803494C: .4byte 0x02024a60 _08034950: .4byte 0x02023a60 _08034954: .4byte 0x03004330 _08034958: .4byte sub_80333D4 thumb_func_end sub_8034910 thumb_func_start sub_803495C sub_803495C: @ 803495C push {r4-r6,lr} mov r6, r10 mov r5, r9 mov r4, r8 push {r4-r6} adds r6, r0, 0 lsls r6, 24 lsrs r6, 24 lsls r1, 24 lsrs r1, 24 adds r0, r6, 0 bl sub_8032AA8 ldr r0, _08034AB8 lsls r4, r6, 1 adds r4, r0 ldr r0, _08034ABC lsls r1, r6, 9 adds r0, 0x1 adds r1, r0 ldrb r0, [r1] strh r0, [r4] ldrh r0, [r4] movs r1, 0x64 mov r9, r1 mov r1, r9 muls r1, r0 adds r0, r1, 0 ldr r5, _08034AC0 adds r0, r5 movs r1, 0xB bl PokemonGetField mov r8, r0 lsls r0, 16 lsrs r0, 16 mov r8, r0 ldr r0, _08034AC4 bl object_new_hidden_with_callback ldr r1, _08034AC8 mov r10, r1 add r10, r6 mov r1, r10 strb r0, [r1] ldrh r0, [r4] mov r1, r9 muls r1, r0 adds r0, r1, 0 adds r0, r5 adds r1, r6, 0 bl sub_8031794 adds r0, r6, 0 bl battle_get_per_side_status adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 mov r0, r8 bl gpu_pal_obj_decompress_and_apply ldr r0, _08034ACC mov r9, r0 adds r0, r6, 0 movs r1, 0x2 bl sub_8077ABC adds r5, r0, 0 lsls r5, 24 lsrs r5, 24 adds r0, r6, 0 bl sub_8077F68 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 adds r0, r6, 0 bl sub_8079E90 adds r3, r0, 0 lsls r3, 24 lsrs r3, 24 mov r0, r9 adds r1, r5, 0 adds r2, r4, 0 bl CreateSprite ldr r4, _08034AD0 adds r4, r6, r4 strb r0, [r4] ldr r5, _08034AD4 ldrb r1, [r4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 strh r6, [r0, 0x2E] ldrb r1, [r4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 mov r1, r8 strh r1, [r0, 0x32] mov r0, r10 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 ldrb r1, [r4] strh r1, [r0, 0x30] ldrb r0, [r4] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r5 lsls r3, r6, 4 ldrb r2, [r1, 0x5] movs r0, 0xF ands r0, r2 orrs r0, r3 strb r0, [r1, 0x5] ldrb r1, [r4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 ldr r1, _08034AD8 adds r6, r1 ldrb r1, [r6] bl StartSpriteAnim ldrb r1, [r4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 adds r0, 0x3E ldrb r1, [r0] movs r2, 0x4 orrs r1, r2 strb r1, [r0] ldrb r1, [r4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r1, r5, 0 adds r1, 0x1C adds r0, r1 ldr r1, _08034ADC str r1, [r0] movs r0, 0 movs r1, 0xFE bl sub_8046400 mov r1, r10 ldrb r2, [r1] lsls r1, r2, 4 adds r1, r2 lsls r1, 2 adds r1, r5 lsls r0, 24 lsrs r0, 24 strh r0, [r1, 0x2E] pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08034AB8: .4byte 0x02024a6a _08034ABC: .4byte 0x02023a60 _08034AC0: .4byte 0x030045c0 _08034AC4: .4byte sub_80312F0 _08034AC8: .4byte 0x0300434c _08034ACC: .4byte 0x02024e8c _08034AD0: .4byte 0x02024be0 _08034AD4: .4byte 0x02020004 _08034AD8: .4byte 0x02024e84 _08034ADC: .4byte SpriteCallbackDummy thumb_func_end sub_803495C thumb_func_start sub_8034AE0 sub_8034AE0: @ 8034AE0 push {r4-r6,lr} ldr r1, _08034B10 ldr r6, _08034B14 ldrb r2, [r6] lsls r0, r2, 9 adds r1, 0x1 adds r0, r1 ldrb r3, [r0] cmp r3, 0 bne _08034B24 lsls r0, r2, 1 adds r0, r2 lsls r0, 2 ldr r1, _08034B18 adds r0, r1 strb r3, [r0, 0x4] ldr r1, _08034B1C ldrb r0, [r6] lsls r0, 2 adds r0, r1 ldr r1, _08034B20 str r1, [r0] b _08034B60 .align 2, 0 _08034B10: .4byte 0x02023a60 _08034B14: .4byte 0x02024a60 _08034B18: .4byte 0x02017810 _08034B1C: .4byte 0x03004330 _08034B20: .4byte sub_8034B74 _08034B24: ldr r5, _08034B68 adds r0, r2, r5 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r4, _08034B6C adds r0, r4 bl FreeSpriteOamMatrix ldrb r0, [r6] adds r0, r5 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 bl DestroySprite ldrb r0, [r6] bl sub_8032A08 ldr r1, _08034B70 ldrb r0, [r6] adds r0, r1 ldrb r0, [r0] bl sub_8043DB0 bl sub_80334EC _08034B60: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08034B68: .4byte 0x02024be0 _08034B6C: .4byte 0x02020004 _08034B70: .4byte 0x03004340 thumb_func_end sub_8034AE0 thumb_func_start sub_8034B74 sub_8034B74: @ 8034B74 push {r4,r5,lr} ldr r5, _08034B90 ldrb r2, [r5] lsls r0, r2, 1 adds r0, r2 lsls r0, 2 ldr r4, _08034B94 adds r3, r0, r4 ldrb r0, [r3, 0x4] cmp r0, 0 beq _08034B98 cmp r0, 0x1 beq _08034BC4 b _08034BEC .align 2, 0 _08034B90: .4byte 0x02024a60 _08034B94: .4byte 0x02017810 _08034B98: lsls r0, r2, 2 adds r1, r4, 0 subs r1, 0x10 adds r0, r1 ldrb r1, [r0] movs r0, 0x4 ands r0, r1 cmp r0, 0 beq _08034BB4 adds r0, r2, 0 adds r1, r2, 0 movs r3, 0x5 bl move_anim_start_t4 _08034BB4: ldrb r0, [r5] lsls r1, r0, 1 adds r1, r0 lsls r1, 2 adds r1, r4 movs r0, 0x1 strb r0, [r1, 0x4] b _08034BEC _08034BC4: ldrb r1, [r3] movs r0, 0x40 ands r0, r1 lsls r0, 24 lsrs r0, 24 cmp r0, 0 bne _08034BEC strb r0, [r3, 0x4] ldrb r2, [r5] adds r0, r2, 0 adds r1, r2, 0 movs r3, 0x2 bl move_anim_start_t4 ldr r1, _08034BF4 ldrb r0, [r5] lsls r0, 2 adds r0, r1 ldr r1, _08034BF8 str r1, [r0] _08034BEC: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08034BF4: .4byte 0x03004330 _08034BF8: .4byte sub_8033160 thumb_func_end sub_8034B74 thumb_func_start c2_8123744 c2_8123744: @ 8034BFC push {r4-r6,lr} mov r6, r9 mov r5, r8 push {r5,r6} ldr r3, _08034C18 ldrh r1, [r3] movs r0, 0x80 lsls r0, 3 cmp r1, r0 bne _08034C1C bl sub_803DCA8 b _08034C42 .align 2, 0 _08034C18: .4byte 0x0202ff5e _08034C1C: ldr r0, _08034C30 ldrh r1, [r0] movs r0, 0x80 lsls r0, 1 ands r0, r1 cmp r0, 0 beq _08034C34 bl get_trainer_class_pic_index b _08034C42 .align 2, 0 _08034C30: .4byte 0x020239f8 _08034C34: movs r0, 0x80 lsls r0, 4 ands r0, r1 cmp r0, 0 beq _08034C48 bl sub_8135FBC _08034C42: lsls r0, 24 lsrs r0, 24 b _08034C56 _08034C48: ldr r2, _08034D88 ldrh r1, [r3] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r2 ldrb r0, [r0, 0x3] _08034C56: mov r9, r0 ldr r0, _08034D8C mov r8, r0 ldrb r1, [r0] mov r0, r9 bl sub_8031A6C mov r1, r8 ldrb r0, [r1] bl battle_get_per_side_status adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 mov r0, r9 bl sub_803C5A0 ldr r5, _08034D90 ldr r1, _08034D94 mov r2, r9 lsls r0, r2, 2 adds r0, r1 ldrb r0, [r0] movs r4, 0x8 subs r4, r0 lsls r4, 18 movs r0, 0xA0 lsls r0, 14 adds r4, r0 asrs r4, 16 mov r1, r8 ldrb r0, [r1] bl sub_8079E90 adds r3, r0, 0 lsls r3, 24 lsrs r3, 24 adds r0, r5, 0 movs r1, 0xB0 adds r2, r4, 0 bl CreateSprite ldr r5, _08034D98 mov r2, r8 ldrb r1, [r2] adds r1, r5 strb r0, [r1] ldr r4, _08034D9C ldrb r0, [r2] adds r0, r5 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 ldr r1, _08034DA0 strh r1, [r0, 0x24] ldrb r0, [r2] adds r0, r5 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 movs r1, 0x2 strh r1, [r0, 0x2E] ldr r0, _08034DA4 mov r1, r9 lsls r6, r1, 3 adds r0, r6, r0 ldrh r0, [r0, 0x4] bl IndexOfSpritePaletteTag mov r2, r8 ldrb r1, [r2] adds r1, r5 ldrb r1, [r1] lsls r2, r1, 4 adds r2, r1 lsls r2, 2 adds r2, r4 lsls r0, 4 ldrb r3, [r2, 0x5] movs r1, 0xF ands r1, r3 orrs r1, r0 strb r1, [r2, 0x5] mov r1, r8 ldrb r0, [r1] adds r0, r5 ldrb r0, [r0] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r4 ldrh r0, [r1, 0x4] lsls r0, 22 lsrs r0, 22 strh r0, [r1, 0x38] ldr r0, _08034DA8 adds r6, r0 ldrh r0, [r6, 0x6] bl GetSpriteTileStartByTag mov r2, r8 ldrb r1, [r2] adds r1, r5 ldrb r2, [r1] lsls r1, r2, 4 adds r1, r2 lsls r1, 2 adds r1, r4 ldr r2, _08034DAC ands r2, r0 ldrh r3, [r1, 0x4] ldr r0, _08034DB0 ands r0, r3 orrs r0, r2 strh r0, [r1, 0x4] mov r1, r8 ldrb r0, [r1] adds r0, r5 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 mov r2, r9 strh r2, [r0, 0x6] mov r1, r8 ldrb r0, [r1] adds r0, r5 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r4, 0x1C adds r0, r4 ldr r1, _08034DB4 str r1, [r0] ldr r1, _08034DB8 mov r2, r8 ldrb r0, [r2] lsls r0, 2 adds r0, r1 ldr r1, _08034DBC str r1, [r0] pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08034D88: .4byte gTrainers _08034D8C: .4byte 0x02024a60 _08034D90: .4byte 0x02024e8c _08034D94: .4byte gTrainerFrontPicCoords _08034D98: .4byte 0x02024be0 _08034D9C: .4byte 0x02020004 _08034DA0: .4byte 0x0000ff10 _08034DA4: .4byte gTrainerFrontPicPaletteTable _08034DA8: .4byte gTrainerFrontPicTable _08034DAC: .4byte 0x000003ff _08034DB0: .4byte 0xfffffc00 _08034DB4: .4byte sub_80313A0 _08034DB8: .4byte 0x03004330 _08034DBC: .4byte sub_8032B4C thumb_func_end c2_8123744 thumb_func_start sub_8034DC0 sub_8034DC0: @ 8034DC0 push {r4-r6,lr} mov r6, r9 mov r5, r8 push {r5,r6} ldr r3, _08034DDC ldrh r1, [r3] movs r0, 0x80 lsls r0, 3 cmp r1, r0 bne _08034DE0 bl sub_803DCA8 b _08034E06 .align 2, 0 _08034DDC: .4byte 0x0202ff5e _08034DE0: ldr r0, _08034DF4 ldrh r1, [r0] movs r0, 0x80 lsls r0, 1 ands r0, r1 cmp r0, 0 beq _08034DF8 bl get_trainer_class_pic_index b _08034E06 .align 2, 0 _08034DF4: .4byte 0x020239f8 _08034DF8: movs r0, 0x80 lsls r0, 4 ands r0, r1 cmp r0, 0 beq _08034E0C bl sub_8135FBC _08034E06: lsls r0, 24 lsrs r0, 24 b _08034E1A _08034E0C: ldr r2, _08034F4C ldrh r1, [r3] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r2 ldrb r0, [r0, 0x3] _08034E1A: mov r9, r0 ldr r0, _08034F50 mov r8, r0 ldrb r1, [r0] mov r0, r9 bl sub_8031A6C mov r1, r8 ldrb r0, [r1] bl battle_get_per_side_status adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 mov r0, r9 bl sub_803C5A0 ldr r0, _08034F54 ldr r2, _08034F58 mov r3, r9 lsls r1, r3, 2 adds r1, r2 ldrb r1, [r1] movs r2, 0x8 subs r2, r1 lsls r2, 18 movs r1, 0xA0 lsls r1, 14 adds r2, r1 asrs r2, 16 movs r1, 0xB0 movs r3, 0x1E bl CreateSprite ldr r5, _08034F5C mov r2, r8 ldrb r1, [r2] adds r1, r5 strb r0, [r1] ldr r4, _08034F60 ldrb r0, [r2] adds r0, r5 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 movs r1, 0x60 strh r1, [r0, 0x24] ldrb r0, [r2] adds r0, r5 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 ldrh r1, [r0, 0x20] adds r1, 0x20 strh r1, [r0, 0x20] ldrb r0, [r2] adds r0, r5 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 ldr r1, _08034F64 strh r1, [r0, 0x2E] ldr r0, _08034F68 mov r3, r9 lsls r6, r3, 3 adds r0, r6, r0 ldrh r0, [r0, 0x4] bl IndexOfSpritePaletteTag mov r2, r8 ldrb r1, [r2] adds r1, r5 ldrb r1, [r1] lsls r2, r1, 4 adds r2, r1 lsls r2, 2 adds r2, r4 lsls r0, 4 ldrb r3, [r2, 0x5] movs r1, 0xF ands r1, r3 orrs r1, r0 strb r1, [r2, 0x5] mov r3, r8 ldrb r0, [r3] adds r0, r5 ldrb r0, [r0] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r4 ldrh r0, [r1, 0x4] lsls r0, 22 lsrs r0, 22 strh r0, [r1, 0x38] ldr r0, _08034F6C adds r6, r0 ldrh r0, [r6, 0x6] bl GetSpriteTileStartByTag mov r2, r8 ldrb r1, [r2] adds r1, r5 ldrb r2, [r1] lsls r1, r2, 4 adds r1, r2 lsls r1, 2 adds r1, r4 ldr r2, _08034F70 ands r2, r0 ldrh r3, [r1, 0x4] ldr r0, _08034F74 ands r0, r3 orrs r0, r2 strh r0, [r1, 0x4] mov r3, r8 ldrb r0, [r3] adds r0, r5 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 mov r1, r9 strh r1, [r0, 0x6] ldrb r0, [r3] adds r0, r5 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r4, 0x1C adds r0, r4 ldr r1, _08034F78 str r1, [r0] ldr r1, _08034F7C ldrb r0, [r3] lsls r0, 2 adds r0, r1 ldr r1, _08034F80 str r1, [r0] pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08034F4C: .4byte gTrainers _08034F50: .4byte 0x02024a60 _08034F54: .4byte 0x02024e8c _08034F58: .4byte gTrainerFrontPicCoords _08034F5C: .4byte 0x02024be0 _08034F60: .4byte 0x02020004 _08034F64: .4byte 0x0000fffe _08034F68: .4byte gTrainerFrontPicPaletteTable _08034F6C: .4byte gTrainerFrontPicTable _08034F70: .4byte 0x000003ff _08034F74: .4byte 0xfffffc00 _08034F78: .4byte sub_80313A0 _08034F7C: .4byte 0x03004330 _08034F80: .4byte sub_8032B84 thumb_func_end sub_8034DC0 thumb_func_start sub_8034F84 sub_8034F84: @ 8034F84 push {r4-r6,lr} ldr r6, _08035014 ldr r4, _08035018 ldrb r0, [r4] adds r0, r6 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r5, _0803501C adds r0, r5 bl oamt_add_pos2_onto_pos1 ldrb r0, [r4] adds r0, r6 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 movs r1, 0x23 strh r1, [r0, 0x2E] ldrb r0, [r4] adds r0, r6 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 movs r1, 0x8C lsls r1, 1 strh r1, [r0, 0x32] ldrb r0, [r4] adds r0, r6 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 ldrh r1, [r0, 0x22] strh r1, [r0, 0x36] ldrb r0, [r4] adds r0, r6 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r1, r5, 0 adds r1, 0x1C adds r0, r1 ldr r1, _08035020 str r1, [r0] ldrb r0, [r4] adds r0, r6 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 ldr r1, _08035024 bl oamt_set_x3A_32 ldr r1, _08035028 ldrb r0, [r4] lsls r0, 2 adds r0, r1 ldr r1, _0803502C str r1, [r0] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08035014: .4byte 0x02024be0 _08035018: .4byte 0x02024a60 _0803501C: .4byte 0x02020004 _08035020: .4byte sub_8078B34 _08035024: .4byte SpriteCallbackDummy _08035028: .4byte 0x03004330 _0803502C: .4byte sub_8032BBC thumb_func_end sub_8034F84 thumb_func_start sub_8035030 sub_8035030: @ 8035030 push {r4,r5,lr} ldr r5, _08035074 ldrb r2, [r5] lsls r0, r2, 1 adds r0, r2 lsls r0, 2 ldr r4, _08035078 adds r3, r0, r4 ldrb r0, [r3, 0x4] cmp r0, 0 bne _0803507C lsls r0, r2, 2 adds r1, r4, 0 subs r1, 0x10 adds r0, r1 ldrb r1, [r0] movs r0, 0x4 ands r0, r1 cmp r0, 0 beq _08035062 adds r0, r2, 0 adds r1, r2, 0 movs r3, 0x5 bl move_anim_start_t4 _08035062: ldrb r0, [r5] lsls r1, r0, 1 adds r1, r0 lsls r1, 2 adds r1, r4 ldrb r0, [r1, 0x4] adds r0, 0x1 strb r0, [r1, 0x4] b _080350B8 .align 2, 0 _08035074: .4byte 0x02024a60 _08035078: .4byte 0x02017810 _0803507C: ldrb r1, [r3] movs r0, 0x40 ands r0, r1 lsls r0, 24 lsrs r0, 24 cmp r0, 0 bne _080350B8 strb r0, [r3, 0x4] movs r0, 0x10 movs r1, 0x3F bl audio_play_and_stuff ldr r2, _080350C0 ldr r1, _080350C4 ldrb r0, [r5] adds r0, r1 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r2, 0x1C adds r0, r2 ldr r1, _080350C8 str r1, [r0] ldr r1, _080350CC ldrb r0, [r5] lsls r0, 2 adds r0, r1 ldr r1, _080350D0 str r1, [r0] _080350B8: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080350C0: .4byte 0x02020004 _080350C4: .4byte 0x02024be0 _080350C8: .4byte sub_8010384 _080350CC: .4byte 0x03004330 _080350D0: .4byte sub_803311C thumb_func_end sub_8035030 thumb_func_start sub_80350D4 sub_80350D4: @ 80350D4 push {lr} bl sub_80334EC pop {r0} bx r0 thumb_func_end sub_80350D4 thumb_func_start sub_80350E0 sub_80350E0: @ 80350E0 push {lr} bl sub_80334EC pop {r0} bx r0 thumb_func_end sub_80350E0 thumb_func_start sub_80350EC sub_80350EC: @ 80350EC push {lr} bl sub_80334EC pop {r0} bx r0 thumb_func_end sub_80350EC thumb_func_start sub_80350F8 sub_80350F8: @ 80350F8 push {lr} bl sub_80334EC pop {r0} bx r0 thumb_func_end sub_80350F8 thumb_func_start sub_8035104 sub_8035104: @ 8035104 push {r4-r6,lr} ldr r6, _080351E8 ldrb r0, [r6] bl mplay_80342A4 lsls r0, 24 cmp r0, 0 beq _08035116 b _08035226 _08035116: ldr r0, _080351EC mov r12, r0 ldrb r2, [r6] lsls r2, 9 adds r0, 0x1 adds r0, r2, r0 ldrb r0, [r0] mov r1, r12 adds r1, 0x2 adds r1, r2, r1 ldrb r1, [r1] lsls r1, 8 orrs r0, r1 ldr r5, _080351F0 mov r1, r12 adds r1, 0x3 adds r2, r1 ldrb r1, [r2] strb r1, [r5] ldr r4, _080351F4 ldrb r2, [r6] lsls r2, 9 mov r1, r12 adds r1, 0x4 adds r1, r2, r1 ldrb r3, [r1] mov r1, r12 adds r1, 0x5 adds r2, r1 ldrb r1, [r2] lsls r1, 8 orrs r3, r1 strh r3, [r4] ldr r4, _080351F8 ldrb r2, [r6] lsls r2, 9 mov r1, r12 adds r1, 0x6 adds r1, r2, r1 ldrb r3, [r1] mov r1, r12 adds r1, 0x7 adds r1, r2, r1 ldrb r1, [r1] lsls r1, 8 orrs r3, r1 mov r1, r12 adds r1, 0x8 adds r1, r2, r1 ldrb r1, [r1] lsls r1, 16 orrs r3, r1 mov r1, r12 adds r1, 0x9 adds r2, r1 ldrb r1, [r2] lsls r1, 24 orrs r3, r1 str r3, [r4] ldr r3, _080351FC ldrb r1, [r6] lsls r1, 9 mov r2, r12 adds r2, 0xA adds r1, r2 ldrb r1, [r1] strb r1, [r3] ldr r4, _08035200 ldrb r2, [r6] lsls r2, 9 mov r1, r12 adds r1, 0xC adds r1, r2, r1 ldrb r3, [r1] mov r1, r12 adds r1, 0xD adds r2, r1 ldrb r1, [r2] lsls r1, 8 orrs r3, r1 strh r3, [r4] ldr r3, _08035204 ldrb r2, [r6] lsls r2, 9 mov r1, r12 adds r1, 0x10 adds r2, r1 str r2, [r3] ldr r3, _08035208 ldrb r1, [r6] lsls r1, 2 adds r1, r3 ldr r2, [r2] str r2, [r1] ldrb r1, [r5] bl sub_8031720 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0 beq _0803520C bl sub_80334EC b _08035226 .align 2, 0 _080351E8: .4byte 0x02024a60 _080351EC: .4byte 0x02023a60 _080351F0: .4byte 0x0202f7c4 _080351F4: .4byte 0x0202f7bc _080351F8: .4byte 0x0202f7b8 _080351FC: .4byte 0x0202f7be _08035200: .4byte 0x0202f7c0 _08035204: .4byte 0x0202f7b4 _08035208: .4byte 0x02024e70 _0803520C: ldrb r1, [r6] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 ldr r1, _0803522C adds r0, r1 strb r2, [r0, 0x4] ldr r1, _08035230 ldrb r0, [r6] lsls r0, 2 adds r0, r1 ldr r1, _08035234 str r1, [r0] _08035226: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0803522C: .4byte 0x02017810 _08035230: .4byte 0x03004330 _08035234: .4byte sub_8035238 thumb_func_end sub_8035104 thumb_func_start sub_8035238 sub_8035238: @ 8035238 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} ldr r2, _0803527C ldr r5, _08035280 ldrb r3, [r5] lsls r1, r3, 9 adds r0, r2, 0x1 mov r9, r0 adds r0, r1, r0 ldrb r4, [r0] adds r6, r2, 0x2 mov r8, r6 adds r0, r1, r6 ldrb r0, [r0] lsls r0, 8 orrs r4, r0 adds r2, 0xB adds r1, r2 ldrb r7, [r1] lsls r0, r3, 1 adds r0, r3 lsls r0, 2 ldr r6, _08035284 adds r0, r6 ldrb r2, [r0, 0x4] cmp r2, 0x1 beq _080352C6 cmp r2, 0x1 bgt _08035288 cmp r2, 0 beq _08035292 b _08035390 .align 2, 0 _0803527C: .4byte 0x02023a60 _08035280: .4byte 0x02024a60 _08035284: .4byte 0x02017810 _08035288: cmp r2, 0x2 beq _080352EC cmp r2, 0x3 beq _08035358 b _08035390 _08035292: lsls r1, r3, 2 adds r0, r6, 0 subs r0, 0x10 adds r1, r0 ldrb r2, [r1] movs r0, 0xC ands r0, r2 cmp r0, 0x4 bne _080352B6 movs r0, 0x8 orrs r0, r2 strb r0, [r1] ldrb r2, [r5] adds r0, r2, 0 adds r1, r2, 0 movs r3, 0x5 bl move_anim_start_t4 _080352B6: ldrb r0, [r5] lsls r1, r0, 1 adds r1, r0 lsls r1, 2 adds r1, r6 movs r0, 0x1 strb r0, [r1, 0x4] b _08035390 _080352C6: ldrb r1, [r0] movs r0, 0x40 ands r0, r1 cmp r0, 0 bne _08035390 movs r0, 0 bl sub_80326EC adds r0, r4, 0 bl move_anim_start_t1 ldrb r0, [r5] lsls r1, r0, 1 adds r1, r0 lsls r1, 2 adds r1, r6 movs r0, 0x2 strb r0, [r1, 0x4] b _08035390 _080352EC: ldr r0, _08035348 ldr r0, [r0] bl _call_via_r0 ldr r0, _0803534C ldrb r0, [r0] cmp r0, 0 bne _08035390 movs r0, 0x1 bl sub_80326EC ldrb r2, [r5] lsls r0, r2, 2 adds r4, r6, 0 subs r4, 0x10 adds r0, r4 ldrb r1, [r0] movs r0, 0x4 ands r0, r1 cmp r0, 0 beq _08035334 cmp r7, 0x1 bhi _08035334 adds r0, r2, 0 adds r1, r2, 0 movs r3, 0x6 bl move_anim_start_t4 ldrb r0, [r5] lsls r0, 2 adds r0, r4 ldrb r2, [r0] movs r1, 0x9 negs r1, r1 ands r1, r2 strb r1, [r0] _08035334: ldr r0, _08035350 ldrb r1, [r0] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 ldr r1, _08035354 adds r0, r1 movs r1, 0x3 strb r1, [r0, 0x4] b _08035390 .align 2, 0 _08035348: .4byte 0x0202f7ac _0803534C: .4byte 0x0202f7b1 _08035350: .4byte 0x02024a60 _08035354: .4byte 0x02017810 _08035358: ldrb r1, [r0] movs r0, 0x40 ands r0, r1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0 bne _08035390 bl sub_8031F24 ldrb r0, [r5] lsls r2, r0, 9 mov r3, r9 adds r1, r2, r3 ldrb r1, [r1] add r2, r8 ldrb r2, [r2] lsls r2, 8 orrs r1, r2 bl sub_80324BC ldrb r1, [r5] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r6 strb r4, [r0, 0x4] bl sub_80334EC _08035390: pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8035238 thumb_func_start sub_803539C sub_803539C: @ 803539C push {r4,lr} sub sp, 0x4 ldr r0, _080353E0 movs r1, 0 strh r1, [r0] ldr r0, _080353E4 strh r1, [r0] ldr r4, _080353E8 ldrb r0, [r4] lsls r0, 9 ldr r1, _080353EC adds r0, r1 ldrh r0, [r0] bl sub_8120AA8 ldr r0, _080353F0 ldr r1, _080353F4 movs r2, 0xF str r2, [sp] movs r2, 0x90 movs r3, 0x2 bl sub_8002EB0 ldr r1, _080353F8 ldrb r0, [r4] lsls r0, 2 adds r0, r1 ldr r1, _080353FC str r1, [r0] add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _080353E0: .4byte 0x030042a4 _080353E4: .4byte 0x030042a0 _080353E8: .4byte 0x02024a60 _080353EC: .4byte 0x02023a62 _080353F0: .4byte 0x03004210 _080353F4: .4byte 0x020238cc _080353F8: .4byte 0x03004330 _080353FC: .4byte sub_80331D0 thumb_func_end sub_803539C thumb_func_start sub_8035400 sub_8035400: @ 8035400 push {lr} bl sub_80334EC pop {r0} bx r0 thumb_func_end sub_8035400 thumb_func_start sub_803540C sub_803540C: @ 803540C push {lr} bl sub_8036B0C bl sub_80334EC pop {r0} bx r0 thumb_func_end sub_803540C thumb_func_start sub_803541C sub_803541C: @ 803541C push {lr} bl sub_80334EC pop {r0} bx r0 thumb_func_end sub_803541C thumb_func_start sub_8035428 sub_8035428: @ 8035428 push {r4-r6,lr} ldr r6, _0803545C ldrb r0, [r6] lsls r0, 9 ldr r1, _08035460 adds r5, r0, r1 ldr r0, _08035464 ldrh r1, [r0] movs r0, 0x93 lsls r0, 3 ands r0, r1 cmp r0, 0 beq _080354F8 bl sub_810715C bl sub_81072A8 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x4 beq _08035468 cmp r4, 0x5 bne _08035474 movs r0, 0x1 movs r1, 0x4 b _0803546C .align 2, 0 _0803545C: .4byte 0x02024a60 _08035460: .4byte 0x02023a64 _08035464: .4byte 0x020239f8 _08035468: movs r0, 0x1 movs r1, 0x3 _0803546C: movs r2, 0 bl dp01_build_cmdbuf_x21_a_bb b _080354E0 _08035474: ldr r3, _080354E8 lsls r0, r4, 1 adds r2, r5, r0 ldrh r1, [r2] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r3 ldrb r1, [r0, 0x6] movs r0, 0x12 ands r0, r1 cmp r0, 0 beq _08035494 ldr r1, _080354EC ldrb r0, [r6] strb r0, [r1] _08035494: ldrh r1, [r2] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r3 ldrb r1, [r0, 0x6] movs r0, 0x8 ands r0, r1 cmp r0, 0 beq _080354CE movs r0, 0 bl battle_get_side_with_given_state ldr r5, _080354EC strb r0, [r5] ldr r0, _080354F0 ldrb r1, [r0] ldr r2, _080354F4 ldrb r0, [r5] lsls r0, 2 adds r0, r2 ldr r0, [r0] ands r1, r0 cmp r1, 0 beq _080354CE movs r0, 0x2 bl battle_get_side_with_given_state strb r0, [r5] _080354CE: ldr r0, _080354EC ldrb r0, [r0] lsls r0, 8 orrs r4, r0 movs r0, 0x1 movs r1, 0xA adds r2, r4, 0 bl dp01_build_cmdbuf_x21_a_bb _080354E0: bl sub_80334EC b _0803558A .align 2, 0 _080354E8: .4byte gBattleMoves _080354EC: .4byte 0x02024c08 _080354F0: .4byte 0x02024c0c _080354F4: .4byte gUnknown_0820872C _080354F8: movs r6, 0x3 _080354FA: bl Random adds r4, r0, 0 ands r4, r6 lsls r0, r4, 1 adds r0, r5, r0 ldrh r2, [r0] cmp r2, 0 beq _080354FA ldr r1, _08035534 lsls r0, r2, 1 adds r0, r2 lsls r0, 2 adds r0, r1 ldrb r1, [r0, 0x6] movs r0, 0x12 ands r0, r1 cmp r0, 0 beq _0803553C ldr r0, _08035538 ldrb r0, [r0] lsls r0, 8 orrs r4, r0 movs r0, 0x1 movs r1, 0xA adds r2, r4, 0 bl dp01_build_cmdbuf_x21_a_bb b _08035586 .align 2, 0 _08035534: .4byte gBattleMoves _08035538: .4byte 0x02024a60 _0803553C: ldr r0, _0803556C ldrh r1, [r0] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _08035570 bl Random movs r1, 0x2 ands r1, r0 lsls r1, 24 lsrs r1, 24 adds r0, r1, 0 bl battle_get_side_with_given_state adds r2, r0, 0 lsls r2, 24 lsrs r2, 16 orrs r2, r4 movs r0, 0x1 movs r1, 0xA bl dp01_build_cmdbuf_x21_a_bb b _08035586 .align 2, 0 _0803556C: .4byte 0x020239f8 _08035570: movs r0, 0 bl battle_get_side_with_given_state adds r2, r0, 0 lsls r2, 24 lsrs r2, 16 orrs r2, r4 movs r0, 0x1 movs r1, 0xA bl dp01_build_cmdbuf_x21_a_bb _08035586: bl sub_80334EC _0803558A: pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_8035428 thumb_func_start sub_8035590 sub_8035590: @ 8035590 push {lr} ldr r1, _080355B4 ldr r0, _080355B8 ldrb r0, [r0] lsrs r0, 1 lsls r0, 1 ldr r2, _080355BC adds r0, r2 adds r0, r1 ldrb r1, [r0] movs r0, 0x1 bl dp01_build_cmdbuf_x23_aa_0 bl sub_80334EC pop {r0} bx r0 .align 2, 0 _080355B4: .4byte 0x02000000 _080355B8: .4byte 0x02024a60 _080355BC: .4byte 0x000160d4 thumb_func_end sub_8035590 thumb_func_start sub_80355C0 sub_80355C0: @ 80355C0 push {r4-r6,lr} ldr r6, _08035604 ldr r5, _08035608 ldrb r0, [r5] bl battle_get_per_side_status lsls r0, 24 lsrs r0, 25 ldr r1, _0803560C adds r0, r1 adds r0, r6 ldrb r0, [r0] cmp r0, 0x6 bne _08035664 bl sub_8036CD4 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x6 bne _0803568A ldr r0, _08035610 ldrh r1, [r0] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _08035614 movs r0, 0x1 bl battle_get_side_with_given_state lsls r0, 24 lsrs r5, r0, 24 adds r6, r5, 0 b _08035628 .align 2, 0 _08035604: .4byte 0x02000000 _08035608: .4byte 0x02024a60 _0803560C: .4byte 0x000160c8 _08035610: .4byte 0x020239f8 _08035614: movs r0, 0x1 bl battle_get_side_with_given_state lsls r0, 24 lsrs r6, r0, 24 movs r0, 0x3 bl battle_get_side_with_given_state lsls r0, 24 lsrs r5, r0, 24 _08035628: movs r4, 0 b _0803562E _0803562C: adds r4, 0x1 _0803562E: cmp r4, 0x5 bgt _0803568A movs r0, 0x64 muls r0, r4 ldr r1, _0803565C adds r0, r1 movs r1, 0x39 bl PokemonGetField cmp r0, 0 beq _0803562C ldr r1, _08035660 lsls r0, r6, 1 adds r0, r1 ldrh r0, [r0] cmp r4, r0 beq _0803562C lsls r0, r5, 1 adds r0, r1 ldrh r0, [r0] cmp r4, r0 beq _0803562C b _0803568A .align 2, 0 _0803565C: .4byte 0x030045c0 _08035660: .4byte 0x02024a6a _08035664: ldrb r0, [r5] bl battle_get_per_side_status lsls r0, 24 lsrs r0, 25 ldr r2, _080356B0 adds r0, r2 adds r0, r6 ldrb r4, [r0] ldrb r0, [r5] bl battle_get_per_side_status lsls r0, 24 lsrs r0, 25 ldr r1, _080356B0 adds r0, r1 adds r0, r6 movs r1, 0x6 strb r1, [r0] _0803568A: ldr r1, _080356B4 ldr r0, _080356B8 ldrb r0, [r0] ldr r2, _080356BC adds r0, r2 adds r0, r1 strb r4, [r0] lsls r1, r4, 24 lsrs r1, 24 movs r0, 0x1 movs r2, 0 bl dp01_build_cmdbuf_x22_a_three_bytes bl sub_80334EC pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080356B0: .4byte 0x000160c8 _080356B4: .4byte 0x02000000 _080356B8: .4byte 0x02024a60 _080356BC: .4byte 0x00016068 thumb_func_end sub_80355C0 thumb_func_start sub_80356C0 sub_80356C0: @ 80356C0 push {lr} bl sub_80334EC pop {r0} bx r0 thumb_func_end sub_80356C0 thumb_func_start sub_80356CC sub_80356CC: @ 80356CC push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x4 movs r0, 0 bl load_gfxc_health_bar ldr r3, _08035744 ldr r0, _08035748 mov r9, r0 ldrb r4, [r0] lsls r2, r4, 9 adds r0, r3, 0x3 adds r0, r2, r0 ldrb r1, [r0] lsls r1, 8 adds r3, 0x2 adds r2, r3 ldrb r0, [r2] orrs r0, r1 lsls r0, 16 asrs r7, r0, 16 ldr r0, _0803574C cmp r7, r0 beq _0803575C ldr r6, _08035750 lsls r0, r4, 1 adds r0, r6 ldrh r0, [r0] movs r5, 0x64 muls r0, r5 ldr r4, _08035754 adds r0, r4 movs r1, 0x3A bl PokemonGetField mov r8, r0 mov r1, r9 ldrb r0, [r1] lsls r0, 1 adds r0, r6 ldrh r0, [r0] muls r0, r5 adds r0, r4 movs r1, 0x39 bl PokemonGetField adds r3, r0, 0 mov r1, r9 ldrb r0, [r1] ldr r1, _08035758 adds r1, r0, r1 ldrb r1, [r1] str r7, [sp] mov r2, r8 bl sub_8043D84 b _08035786 .align 2, 0 _08035744: .4byte 0x02023a60 _08035748: .4byte 0x02024a60 _0803574C: .4byte 0x00007fff _08035750: .4byte 0x02024a6a _08035754: .4byte 0x030045c0 _08035758: .4byte 0x03004340 _0803575C: ldr r1, _080357A4 lsls r0, r4, 1 adds r0, r1 ldrh r1, [r0] movs r0, 0x64 muls r0, r1 ldr r1, _080357A8 adds r0, r1 movs r1, 0x3A bl PokemonGetField adds r2, r0, 0 mov r1, r9 ldrb r0, [r1] ldr r1, _080357AC adds r1, r0, r1 ldrb r1, [r1] str r7, [sp] movs r3, 0 bl sub_8043D84 _08035786: ldr r1, _080357B0 ldr r0, _080357B4 ldrb r0, [r0] lsls r0, 2 adds r0, r1 ldr r1, _080357B8 str r1, [r0] add sp, 0x4 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080357A4: .4byte 0x02024a6a _080357A8: .4byte 0x030045c0 _080357AC: .4byte 0x03004340 _080357B0: .4byte 0x03004330 _080357B4: .4byte 0x02024a60 _080357B8: .4byte sub_80330C8 thumb_func_end sub_80356CC thumb_func_start sub_80357BC sub_80357BC: @ 80357BC push {lr} bl sub_80334EC pop {r0} bx r0 thumb_func_end sub_80357BC thumb_func_start sub_80357C8 sub_80357C8: @ 80357C8 push {r4,lr} ldr r4, _08035820 ldrb r0, [r4] bl mplay_80342A4 lsls r0, 24 cmp r0, 0 bne _08035818 ldr r0, _08035824 ldrb r1, [r4] adds r0, r1, r0 ldrb r0, [r0] ldr r2, _08035828 lsls r1, 1 adds r1, r2 ldrh r2, [r1] movs r1, 0x64 muls r1, r2 ldr r2, _0803582C adds r1, r2 movs r2, 0x9 bl sub_8045A5C ldrb r0, [r4] lsls r1, r0, 1 adds r1, r0 lsls r1, 2 ldr r0, _08035830 adds r1, r0 ldrb r2, [r1] movs r0, 0x11 negs r0, r0 ands r0, r2 strb r0, [r1] ldr r1, _08035834 ldrb r0, [r4] lsls r0, 2 adds r0, r1 ldr r1, _08035838 str r1, [r0] _08035818: pop {r4} pop {r0} bx r0 .align 2, 0 _08035820: .4byte 0x02024a60 _08035824: .4byte 0x03004340 _08035828: .4byte 0x02024a6a _0803582C: .4byte 0x030045c0 _08035830: .4byte 0x02017810 _08035834: .4byte 0x03004330 _08035838: .4byte sub_8033494 thumb_func_end sub_80357C8 thumb_func_start sub_803583C sub_803583C: @ 803583C push {r4,r5,lr} ldr r5, _08035894 ldrb r0, [r5] bl mplay_80342A4 lsls r0, 24 cmp r0, 0 bne _0803588C ldr r4, _08035898 ldrb r3, [r5] lsls r3, 9 adds r0, r4, 0x1 adds r0, r3, r0 ldrb r0, [r0] adds r1, r4, 0x2 adds r1, r3, r1 ldrb r1, [r1] adds r2, r4, 0x3 adds r2, r3, r2 ldrb r2, [r2] lsls r2, 8 orrs r1, r2 adds r2, r4, 0x4 adds r2, r3, r2 ldrb r2, [r2] lsls r2, 16 orrs r1, r2 adds r4, 0x5 adds r3, r4 ldrb r2, [r3] lsls r2, 24 orrs r1, r2 bl move_anim_start_t2_for_situation ldr r1, _0803589C ldrb r0, [r5] lsls r0, 2 adds r0, r1 ldr r1, _080358A0 str r1, [r0] _0803588C: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08035894: .4byte 0x02024a60 _08035898: .4byte 0x02023a60 _0803589C: .4byte 0x03004330 _080358A0: .4byte sub_8033494 thumb_func_end sub_803583C thumb_func_start sub_80358A4 sub_80358A4: @ 80358A4 push {lr} bl sub_80334EC pop {r0} bx r0 thumb_func_end sub_80358A4 thumb_func_start sub_80358B0 sub_80358B0: @ 80358B0 push {lr} bl sub_80334EC pop {r0} bx r0 thumb_func_end sub_80358B0 thumb_func_start sub_80358BC sub_80358BC: @ 80358BC push {lr} bl sub_80334EC pop {r0} bx r0 thumb_func_end sub_80358BC thumb_func_start sub_80358C8 sub_80358C8: @ 80358C8 push {lr} bl sub_80334EC pop {r0} bx r0 thumb_func_end sub_80358C8 thumb_func_start sub_80358D4 sub_80358D4: @ 80358D4 push {lr} bl sub_80334EC pop {r0} bx r0 thumb_func_end sub_80358D4 thumb_func_start sub_80358E0 sub_80358E0: @ 80358E0 push {lr} bl sub_80334EC pop {r0} bx r0 thumb_func_end sub_80358E0 thumb_func_start sub_80358EC sub_80358EC: @ 80358EC push {lr} bl sub_80334EC pop {r0} bx r0 thumb_func_end sub_80358EC thumb_func_start sub_80358F8 sub_80358F8: @ 80358F8 push {lr} bl sub_80334EC pop {r0} bx r0 thumb_func_end sub_80358F8 thumb_func_start sub_8035904 sub_8035904: @ 8035904 push {lr} bl sub_80334EC pop {r0} bx r0 thumb_func_end sub_8035904 thumb_func_start sub_8035910 sub_8035910: @ 8035910 push {lr} ldr r2, _08035928 ldrb r1, [r2] movs r0, 0x80 negs r0, r0 ands r0, r1 strb r0, [r2] bl sub_80334EC pop {r0} bx r0 .align 2, 0 _08035928: .4byte 0x020238c8 thumb_func_end sub_8035910 thumb_func_start sub_803592C sub_803592C: @ 803592C push {lr} ldr r3, _08035958 ldr r1, _0803595C ldr r0, _08035960 ldrb r0, [r0] lsls r0, 9 adds r1, 0x1 adds r0, r1 ldrb r0, [r0] movs r1, 0x7F ands r1, r0 ldrb r2, [r3] movs r0, 0x80 negs r0, r0 ands r0, r2 orrs r0, r1 strb r0, [r3] bl sub_80334EC pop {r0} bx r0 .align 2, 0 _08035958: .4byte 0x020238c8 _0803595C: .4byte 0x02023a60 _08035960: .4byte 0x02024a60 thumb_func_end sub_803592C thumb_func_start sub_8035964 sub_8035964: @ 8035964 push {lr} ldr r2, _08035978 ldrb r1, [r2] movs r0, 0x7F ands r0, r1 strb r0, [r2] bl sub_80334EC pop {r0} bx r0 .align 2, 0 _08035978: .4byte 0x020238c8 thumb_func_end sub_8035964 thumb_func_start sub_803597C sub_803597C: @ 803597C push {lr} ldr r3, _080359A0 ldr r1, [r3] lsls r1, 24 lsrs r1, 31 movs r0, 0x1 eors r1, r0 lsls r1, 7 ldrb r2, [r3] movs r0, 0x7F ands r0, r2 orrs r0, r1 strb r0, [r3] bl sub_80334EC pop {r0} bx r0 .align 2, 0 _080359A0: .4byte 0x020238c8 thumb_func_end sub_803597C thumb_func_start dp01t_29_7_blink dp01t_29_7_blink: @ 80359A4 push {r4,lr} ldr r3, _080359CC ldr r2, _080359D0 ldr r4, _080359D4 ldrb r0, [r4] adds r0, r2 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 adds r0, 0x3E ldrb r0, [r0] lsls r0, 29 cmp r0, 0 bge _080359D8 bl sub_80334EC b _08035A02 .align 2, 0 _080359CC: .4byte 0x02020004 _080359D0: .4byte 0x02024be0 _080359D4: .4byte 0x02024a60 _080359D8: ldr r1, _08035A08 movs r0, 0x1 strb r0, [r1] ldrb r0, [r4] adds r0, r2 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 movs r1, 0 strh r1, [r0, 0x30] ldrb r0, [r4] bl sub_8047858 ldr r1, _08035A0C ldrb r0, [r4] lsls r0, 2 adds r0, r1 ldr r1, _08035A10 str r1, [r0] _08035A02: pop {r4} pop {r0} bx r0 .align 2, 0 _08035A08: .4byte 0x02024e6d _08035A0C: .4byte 0x03004330 _08035A10: .4byte bx_blink_t7 thumb_func_end dp01t_29_7_blink thumb_func_start sub_8035A14 sub_8035A14: @ 8035A14 push {lr} bl sub_80334EC pop {r0} bx r0 thumb_func_end sub_8035A14 thumb_func_start sub_8035A20 sub_8035A20: @ 8035A20 push {r4,lr} ldr r4, _08035A5C ldrb r0, [r4] bl battle_side_get_owner lsls r0, 24 movs r3, 0x3F cmp r0, 0 bne _08035A34 movs r3, 0xC0 _08035A34: ldr r2, _08035A60 ldrb r1, [r4] lsls r1, 9 adds r0, r2, 0x1 adds r0, r1, r0 ldrb r0, [r0] adds r2, 0x2 adds r1, r2 ldrb r1, [r1] lsls r1, 8 orrs r0, r1 lsls r1, r3, 24 asrs r1, 24 bl audio_play_and_stuff bl sub_80334EC pop {r4} pop {r0} bx r0 .align 2, 0 _08035A5C: .4byte 0x02024a60 _08035A60: .4byte 0x02023a60 thumb_func_end sub_8035A20 thumb_func_start sub_8035A64 sub_8035A64: @ 8035A64 push {lr} ldr r2, _08035A8C ldr r0, _08035A90 ldrb r1, [r0] lsls r1, 9 adds r0, r2, 0x1 adds r0, r1, r0 ldrb r0, [r0] adds r2, 0x2 adds r1, r2 ldrb r1, [r1] lsls r1, 8 orrs r0, r1 bl fanfare_play bl sub_80334EC pop {r0} bx r0 .align 2, 0 _08035A8C: .4byte 0x02023a60 _08035A90: .4byte 0x02024a60 thumb_func_end sub_8035A64 thumb_func_start sub_8035A94 sub_8035A94: @ 8035A94 push {lr} ldr r1, _08035AC4 ldr r0, _08035AC8 ldrb r0, [r0] lsls r0, 1 adds r0, r1 ldrh r1, [r0] movs r0, 0x64 muls r0, r1 ldr r1, _08035ACC adds r0, r1 movs r1, 0xB bl PokemonGetField lsls r0, 16 lsrs r0, 16 movs r1, 0x19 movs r2, 0x5 bl sub_80750B4 bl sub_80334EC pop {r0} bx r0 .align 2, 0 _08035AC4: .4byte 0x02024a6a _08035AC8: .4byte 0x02024a60 _08035ACC: .4byte 0x030045c0 thumb_func_end sub_8035A94 thumb_func_start dp01t_2E_7_battle_intro dp01t_2E_7_battle_intro: @ 8035AD0 push {lr} ldr r1, _08035AF8 ldr r0, _08035AFC ldrb r0, [r0] lsls r0, 9 adds r1, 0x1 adds r0, r1 ldrb r0, [r0] bl sub_80E43C0 ldr r2, _08035B00 ldrh r0, [r2] movs r1, 0x1 orrs r0, r1 strh r0, [r2] bl sub_80334EC pop {r0} bx r0 .align 2, 0 _08035AF8: .4byte 0x02023a60 _08035AFC: .4byte 0x02024a60 _08035B00: .4byte 0x02024de8 thumb_func_end dp01t_2E_7_battle_intro thumb_func_start sub_8035B04 sub_8035B04: @ 8035B04 push {r4-r6,lr} ldr r5, _08035BE0 ldr r6, _08035BE4 ldrb r0, [r6] adds r0, r5 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r4, _08035BE8 adds r0, r4 bl oamt_add_pos2_onto_pos1 ldrb r0, [r6] adds r0, r5 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 movs r1, 0x23 strh r1, [r0, 0x2E] ldrb r0, [r6] adds r0, r5 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 movs r1, 0x8C lsls r1, 1 strh r1, [r0, 0x32] ldrb r0, [r6] adds r0, r5 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 ldrh r1, [r0, 0x22] strh r1, [r0, 0x36] ldrb r0, [r6] adds r0, r5 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r1, r4, 0 adds r1, 0x1C adds r0, r1 ldr r1, _08035BEC str r1, [r0] ldrb r0, [r6] adds r0, r5 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 ldr r1, _08035BF0 bl oamt_set_x3A_32 ldr r0, _08035BF4 movs r1, 0x5 bl CreateTask lsls r0, 24 lsrs r0, 24 ldr r4, _08035BF8 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r4 ldrb r0, [r6] strh r0, [r1, 0x8] ldrb r3, [r6] lsls r0, r3, 1 adds r0, r3 lsls r0, 2 ldr r2, _08035BFC adds r0, r2 ldrb r1, [r0] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _08035BC2 ldr r0, _08035C00 adds r0, r3, r0 ldrb r1, [r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r4 ldr r1, _08035C04 str r1, [r0] _08035BC2: adds r2, 0x30 ldrb r0, [r2, 0x9] movs r1, 0x1 orrs r0, r1 strb r0, [r2, 0x9] ldr r1, _08035C08 ldrb r0, [r6] lsls r0, 2 adds r0, r1 ldr r1, _08035C0C str r1, [r0] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08035BE0: .4byte 0x02024be0 _08035BE4: .4byte 0x02024a60 _08035BE8: .4byte 0x02020004 _08035BEC: .4byte sub_8078B34 _08035BF0: .4byte sub_8035C10 _08035BF4: .4byte sub_8035C44 _08035BF8: .4byte 0x03004b20 _08035BFC: .4byte 0x02017810 _08035C00: .4byte 0x02024e68 _08035C04: .4byte sub_8044CA0 _08035C08: .4byte 0x03004330 _08035C0C: .4byte nullsub_45 thumb_func_end sub_8035B04 thumb_func_start sub_8035C10 sub_8035C10: @ 8035C10 push {r4,lr} adds r4, r0, 0 ldrh r0, [r4, 0x6] bl sub_8031B74 ldrh r0, [r4, 0x38] ldr r1, _08035C3C ands r1, r0 ldrh r2, [r4, 0x4] ldr r0, _08035C40 ands r0, r2 orrs r0, r1 strh r0, [r4, 0x4] adds r0, r4, 0 bl FreeSpriteOamMatrix adds r0, r4, 0 bl DestroySprite pop {r4} pop {r0} bx r0 .align 2, 0 _08035C3C: .4byte 0x000003ff _08035C40: .4byte 0xfffffc00 thumb_func_end sub_8035C10 thumb_func_start sub_8035C44 sub_8035C44: @ 8035C44 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} lsls r0, 24 lsrs r0, 24 mov r8, r0 ldr r7, _08035C9C ldrb r0, [r7] mov r9, r0 ldr r1, _08035CA0 mov r2, r8 lsls r0, r2, 2 add r0, r8 lsls r0, 3 adds r0, r1 ldrh r0, [r0, 0x8] strb r0, [r7] bl battle_type_is_double lsls r0, 24 cmp r0, 0 beq _08035C7E ldr r0, _08035CA4 ldrh r1, [r0] movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _08035CB0 _08035C7E: ldr r0, _08035CA8 ldrb r1, [r7] lsls r2, r1, 9 adds r0, 0x1 adds r2, r0 ldr r0, _08035CAC lsls r1, 1 adds r1, r0 ldrh r0, [r1] strb r0, [r2] ldrb r0, [r7] movs r1, 0 bl sub_803495C b _08035CF0 .align 2, 0 _08035C9C: .4byte 0x02024a60 _08035CA0: .4byte 0x03004b20 _08035CA4: .4byte 0x020239f8 _08035CA8: .4byte 0x02023a60 _08035CAC: .4byte 0x02024a6a _08035CB0: ldr r4, _08035D14 ldrb r0, [r7] lsls r1, r0, 9 adds r4, 0x1 adds r1, r4 ldr r6, _08035D18 lsls r0, 1 adds r0, r6 ldrh r0, [r0] strb r0, [r1] ldrb r0, [r7] movs r1, 0 bl sub_803495C ldrb r0, [r7] movs r5, 0x2 eors r0, r5 strb r0, [r7] ldrb r0, [r7] lsls r1, r0, 9 adds r1, r4 lsls r0, 1 adds r0, r6 ldrh r0, [r0] strb r0, [r1] ldrb r0, [r7] movs r1, 0 bl sub_803495C ldrb r0, [r7] eors r0, r5 strb r0, [r7] _08035CF0: ldr r1, _08035D1C ldr r2, _08035D20 ldrb r0, [r2] lsls r0, 2 adds r0, r1 ldr r1, _08035D24 str r1, [r0] mov r0, r9 strb r0, [r2] mov r0, r8 bl DestroyTask pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08035D14: .4byte 0x02023a60 _08035D18: .4byte 0x02024a6a _08035D1C: .4byte 0x03004330 _08035D20: .4byte 0x02024a60 _08035D24: .4byte sub_8032E2C thumb_func_end sub_8035C44 thumb_func_start dp01t_30_7_0803D67C dp01t_30_7_0803D67C: @ 8035D28 push {r4-r6,lr} ldr r1, _08035D50 ldr r0, _08035D54 ldrb r2, [r0] lsls r0, r2, 9 adds r1, 0x1 adds r0, r1 ldrb r0, [r0] cmp r0, 0 beq _08035D58 adds r0, r2, 0 bl battle_side_get_owner lsls r0, 24 cmp r0, 0 bne _08035D58 bl sub_80334EC b _08035E12 .align 2, 0 _08035D50: .4byte 0x02023a60 _08035D54: .4byte 0x02024a60 _08035D58: ldr r3, _08035DA8 ldrb r1, [r3] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 ldr r4, _08035DAC adds r0, r4 ldrb r1, [r0] movs r2, 0x1 orrs r1, r2 strb r1, [r0] ldr r1, _08035DB0 ldrb r2, [r3] lsls r0, r2, 9 adds r1, 0x2 adds r0, r1 ldrb r0, [r0] adds r6, r3, 0 cmp r0, 0 beq _08035DBC lsls r0, r2, 1 adds r0, r2 lsls r0, 2 adds r3, r0, r4 ldrb r2, [r3, 0x1] lsls r1, r2, 26 lsrs r0, r1, 27 cmp r0, 0x1 bhi _08035DB4 adds r0, 0x1 movs r1, 0x1F ands r0, r1 lsls r0, 1 movs r1, 0x3F negs r1, r1 ands r1, r2 orrs r1, r0 strb r1, [r3, 0x1] b _08035E12 .align 2, 0 _08035DA8: .4byte 0x02024a60 _08035DAC: .4byte 0x02017810 _08035DB0: .4byte 0x02023a60 _08035DB4: movs r0, 0x3F negs r0, r0 ands r0, r2 strb r0, [r3, 0x1] _08035DBC: adds r5, r6, 0 ldrb r0, [r5] lsls r3, r0, 9 ldr r4, _08035E18 adds r1, r3, r4 subs r2, r4, 0x3 adds r2, r3, r2 ldrb r2, [r2] subs r4, 0x2 adds r3, r4 ldrb r3, [r3] bl sub_8044804 ldr r2, _08035E1C ldrb r1, [r5] adds r1, r2 movs r2, 0 strb r0, [r1] ldrb r1, [r5] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 ldr r3, _08035E20 adds r0, r3 strb r2, [r0, 0x5] ldrb r1, [r5] lsls r0, r1, 9 adds r0, r4 ldrb r0, [r0] cmp r0, 0 beq _08035E06 lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r3 movs r1, 0x5D strb r1, [r0, 0x5] _08035E06: ldr r0, _08035E24 ldrb r1, [r6] lsls r1, 2 adds r1, r0 ldr r0, _08035E28 str r0, [r1] _08035E12: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08035E18: .4byte 0x02023a64 _08035E1C: .4byte 0x02024e68 _08035E20: .4byte 0x02017810 _08035E24: .4byte 0x03004330 _08035E28: .4byte sub_8035E2C thumb_func_end dp01t_30_7_0803D67C thumb_func_start sub_8035E2C sub_8035E2C: @ 8035E2C push {r4,lr} ldr r4, _08035E64 ldrb r1, [r4] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 ldr r3, _08035E68 adds r0, r3 ldrb r1, [r0, 0x5] adds r2, r1, 0x1 strb r2, [r0, 0x5] lsls r1, 24 lsrs r1, 24 cmp r1, 0x5C bls _08035E5C ldrb r0, [r4] lsls r1, r0, 1 adds r1, r0 lsls r1, 2 adds r1, r3 movs r0, 0 strb r0, [r1, 0x5] bl sub_80334EC _08035E5C: pop {r4} pop {r0} bx r0 .align 2, 0 _08035E64: .4byte 0x02024a60 _08035E68: .4byte 0x02017810 thumb_func_end sub_8035E2C thumb_func_start sub_8035E6C sub_8035E6C: @ 8035E6C push {lr} ldr r0, _08035EA4 ldrb r3, [r0] lsls r0, r3, 1 adds r0, r3 lsls r0, 2 ldr r1, _08035EA8 adds r0, r1 ldrb r1, [r0] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _08035E9A ldr r2, _08035EAC ldr r0, _08035EB0 adds r0, r3, r0 ldrb r1, [r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r2 ldr r1, _08035EB4 str r1, [r0] _08035E9A: bl sub_80334EC pop {r0} bx r0 .align 2, 0 _08035EA4: .4byte 0x02024a60 _08035EA8: .4byte 0x02017810 _08035EAC: .4byte 0x03004b20 _08035EB0: .4byte 0x02024e68 _08035EB4: .4byte sub_8044CA0 thumb_func_end sub_8035E6C thumb_func_start sub_8035EB8 sub_8035EB8: @ 8035EB8 push {lr} bl sub_80334EC pop {r0} bx r0 thumb_func_end sub_8035EB8 thumb_func_start sub_8035EC4 sub_8035EC4: @ 8035EC4 push {r4,lr} ldr r4, _08035F14 ldrb r0, [r4] bl sub_8078874 lsls r0, 24 cmp r0, 0 beq _08035F0A ldr r3, _08035F18 ldr r0, _08035F1C ldrb r1, [r4] adds r0, r1, r0 ldrb r0, [r0] lsls r2, r0, 4 adds r2, r0 lsls r2, 2 adds r2, r3 ldr r0, _08035F20 lsls r1, 9 adds r0, 0x1 adds r1, r0 adds r2, 0x3E movs r0, 0x1 ldrb r1, [r1] ands r1, r0 lsls r1, 2 ldrb r3, [r2] movs r0, 0x5 negs r0, r0 ands r0, r3 orrs r0, r1 strb r0, [r2] ldrb r0, [r4] bl sub_8031F88 _08035F0A: bl sub_80334EC pop {r4} pop {r0} bx r0 .align 2, 0 _08035F14: .4byte 0x02024a60 _08035F18: .4byte 0x02020004 _08035F1C: .4byte 0x02024be0 _08035F20: .4byte 0x02023a60 thumb_func_end sub_8035EC4 thumb_func_start dp01t_34_7_move_anim_start_t3 dp01t_34_7_move_anim_start_t3: @ 8035F24 push {r4-r6,lr} sub sp, 0x4 ldr r6, _08035F68 ldrb r0, [r6] bl mplay_80342A4 lsls r0, 24 cmp r0, 0 bne _08035F7C ldr r5, _08035F6C ldrb r2, [r6] lsls r1, r2, 9 adds r0, r5, 0x1 adds r0, r1, r0 ldrb r3, [r0] adds r0, r5, 0x2 adds r0, r1, r0 ldrb r4, [r0] adds r5, 0x3 adds r1, r5 ldrb r0, [r1] lsls r0, 8 orrs r4, r0 str r4, [sp] adds r0, r2, 0 adds r1, r2, 0 bl move_anim_start_t3 lsls r0, 24 cmp r0, 0 beq _08035F70 bl sub_80334EC b _08035F7C .align 2, 0 _08035F68: .4byte 0x02024a60 _08035F6C: .4byte 0x02023a60 _08035F70: ldr r0, _08035F84 ldrb r1, [r6] lsls r1, 2 adds r1, r0 ldr r0, _08035F88 str r0, [r1] _08035F7C: add sp, 0x4 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08035F84: .4byte 0x03004330 _08035F88: .4byte sub_80334C0 thumb_func_end dp01t_34_7_move_anim_start_t3 thumb_func_start sub_8035F8C sub_8035F8C: @ 8035F8C push {lr} bl sub_80334EC pop {r0} bx r0 thumb_func_end sub_8035F8C thumb_func_start sub_8035F98 sub_8035F98: @ 8035F98 push {lr} bl sub_80334EC pop {r0} bx r0 thumb_func_end sub_8035F98 thumb_func_start sub_8035FA4 sub_8035FA4: @ 8035FA4 push {lr} ldr r0, _08035FD8 ldrh r1, [r0] movs r0, 0x6 ands r0, r1 cmp r0, 0x2 bne _08035FCE ldr r2, _08035FDC ldr r0, _08035FE0 adds r3, r2, r0 ldrb r1, [r3] movs r0, 0x3 negs r0, r0 ands r0, r1 strb r0, [r3] ldr r0, _08035FE4 ldr r0, [r0] str r0, [r2] ldr r0, [r2, 0x8] bl SetMainCallback2 _08035FCE: bl sub_80334EC pop {r0} bx r0 .align 2, 0 _08035FD8: .4byte 0x020239f8 _08035FDC: .4byte 0x03001770 _08035FE0: .4byte 0x0000043d _08035FE4: .4byte 0x030042d0 thumb_func_end sub_8035FA4 thumb_func_start nullsub_46 nullsub_46: @ 8035FE8 bx lr thumb_func_end nullsub_46 thumb_func_start ai_switch_perish_song ai_switch_perish_song: @ 8035FEC push {lr} ldr r1, _08036038 ldr r0, _0803603C ldrb r2, [r0] lsls r0, r2, 2 adds r0, r1 ldr r0, [r0] movs r1, 0x20 ands r0, r1 cmp r0, 0 beq _0803604C ldr r0, _08036040 lsls r1, r2, 3 subs r1, r2 lsls r1, 2 adds r1, r0 ldrb r0, [r1, 0xF] lsls r0, 28 cmp r0, 0 bne _0803604C adds r0, r2, 0 bl battle_get_per_side_status ldr r1, _08036044 lsls r0, 24 lsrs r0, 25 ldr r2, _08036048 adds r0, r2 adds r0, r1 movs r1, 0x6 strb r1, [r0] movs r0, 0x1 movs r1, 0x2 movs r2, 0 bl dp01_build_cmdbuf_x21_a_bb movs r0, 0x1 b _0803604E .align 2, 0 _08036038: .4byte 0x02024c98 _0803603C: .4byte 0x02024a60 _08036040: .4byte 0x02024ca8 _08036044: .4byte 0x02000000 _08036048: .4byte 0x000160c8 _0803604C: movs r0, 0 _0803604E: pop {r1} bx r1 thumb_func_end ai_switch_perish_song thumb_func_start sub_8036054 sub_8036054: @ 8036054 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} ldr r0, _0803606C ldrh r1, [r0] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _080360A0 b _080361C8 .align 2, 0 _0803606C: .4byte 0x020239f8 _08036070: ldr r0, _08036094 ldrb r0, [r0] bl battle_get_per_side_status ldr r1, _08036098 lsls r0, 24 lsrs r0, 25 ldr r2, _0803609C adds r0, r2 adds r0, r1 strb r6, [r0] movs r0, 0x1 movs r1, 0x2 movs r2, 0 bl dp01_build_cmdbuf_x21_a_bb movs r0, 0x1 b _080361CA .align 2, 0 _08036094: .4byte 0x02024a60 _08036098: .4byte 0x02000000 _0803609C: .4byte 0x000160c8 _080360A0: ldr r4, _080361D8 movs r0, 0 bl battle_get_side_with_given_state lsls r0, 24 lsrs r0, 24 movs r1, 0x58 muls r0, r1 adds r0, r4 adds r0, 0x20 ldrb r0, [r0] cmp r0, 0x19 beq _080360BC b _080361C8 _080360BC: movs r0, 0 bl battle_get_side_with_given_state lsls r0, 24 lsrs r2, r0, 24 movs r6, 0 adds r7, r4, 0 movs r5, 0x58 adds r0, r2, 0 muls r0, r5 adds r4, r0, r7 movs r3, 0x20 adds r3, r4 mov r8, r3 _080360D8: lsls r1, r6, 1 ldr r0, _080361DC ldrb r0, [r0] muls r0, r5 adds r1, r0 adds r0, r7, 0 adds r0, 0xC adds r1, r0 ldrh r0, [r1] cmp r0, 0 beq _08036104 ldrh r1, [r4] mov r3, r8 ldrb r2, [r3] bl ai_rate_move lsls r0, 24 lsrs r1, r0, 24 movs r0, 0x2 ands r1, r0 cmp r1, 0 bne _080361C8 _08036104: adds r6, 0x1 cmp r6, 0x3 ble _080360D8 movs r6, 0 ldr r0, _080361E0 mov r9, r0 _08036110: movs r0, 0x64 adds r5, r6, 0 muls r5, r0 mov r2, r9 adds r4, r5, r2 adds r0, r4, 0 movs r1, 0x39 bl PokemonGetField cmp r0, 0 beq _080361C2 adds r0, r4, 0 movs r1, 0x41 bl PokemonGetField cmp r0, 0 beq _080361C2 adds r0, r4, 0 movs r1, 0x41 bl PokemonGetField movs r1, 0xCE lsls r1, 1 cmp r0, r1 beq _080361C2 ldr r1, _080361E4 ldr r0, _080361DC ldrb r0, [r0] lsls r0, 1 adds r0, r1 ldrh r0, [r0] cmp r6, r0 beq _080361C2 adds r0, r4, 0 movs r1, 0xB bl PokemonGetField adds r0, r4, 0 movs r1, 0x2E bl PokemonGetField movs r0, 0 bl battle_get_side_with_given_state lsls r0, 24 lsrs r2, r0, 24 movs r4, 0 mov r8, r5 ldr r1, _080361D8 movs r0, 0x58 muls r0, r2 adds r5, r0, r1 adds r7, r5, 0 adds r7, 0x20 _0803617C: adds r1, r4, 0 adds r1, 0xD mov r0, r8 add r0, r9 bl PokemonGetField lsls r0, 16 lsrs r0, 16 cmp r0, 0 beq _080361BC ldrh r1, [r5] ldrb r2, [r7] bl ai_rate_move lsls r0, 24 lsrs r1, r0, 24 movs r0, 0x2 ands r1, r0 cmp r1, 0 beq _080361BC bl Random lsls r0, 16 lsrs r0, 16 movs r1, 0x3 bl __umodsi3 lsls r0, 16 lsrs r0, 16 cmp r0, 0x1 bhi _080361BC b _08036070 _080361BC: adds r4, 0x1 cmp r4, 0x3 ble _0803617C _080361C2: adds r6, 0x1 cmp r6, 0x5 ble _08036110 _080361C8: movs r0, 0 _080361CA: pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _080361D8: .4byte 0x02024a80 _080361DC: .4byte 0x02024a60 _080361E0: .4byte 0x030045c0 _080361E4: .4byte 0x02024a6a thumb_func_end sub_8036054 thumb_func_start sub_80361E8 sub_80361E8: @ 80361E8 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} movs r0, 0x1 bl ai_has_super_effective_move_on_field lsls r0, 24 cmp r0, 0 beq _08036214 bl Random lsls r0, 16 lsrs r0, 16 movs r1, 0x3 bl __umodsi3 lsls r0, 16 cmp r0, 0 beq _08036214 b _08036400 _08036214: ldr r1, _0803627C ldr r5, _08036280 ldrb r3, [r5] lsls r0, r3, 1 adds r4, r0, r1 ldrh r1, [r4] cmp r1, 0 bne _08036226 b _08036400 _08036226: ldr r0, _08036284 cmp r1, r0 bne _0803622E b _08036400 _0803622E: ldr r2, _08036288 ldrh r1, [r4] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r0, [r0, 0x1] cmp r0, 0 bne _08036242 b _08036400 _08036242: ldr r0, _0803628C ldrh r1, [r0] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _080362AE mov r8, r3 mov r0, r8 bl battle_get_per_side_status movs r4, 0x2 eors r0, r4 lsls r0, 24 lsrs r0, 24 bl battle_get_side_with_given_state ldr r1, _08036290 ldrb r1, [r1] ldr r2, _08036294 lsls r0, 24 lsrs r0, 22 adds r0, r2 ldr r0, [r0] ands r1, r0 cmp r1, 0 beq _08036298 ldrb r7, [r5] b _080362B2 .align 2, 0 _0803627C: .4byte 0x02024c3c _08036280: .4byte 0x02024a60 _08036284: .4byte 0x0000ffff _08036288: .4byte gBattleMoves _0803628C: .4byte 0x020239f8 _08036290: .4byte 0x02024c0c _08036294: .4byte gUnknown_0820872C _08036298: ldrb r0, [r5] bl battle_get_per_side_status eors r0, r4 lsls r0, 24 lsrs r0, 24 bl battle_get_side_with_given_state lsls r0, 24 lsrs r7, r0, 24 b _080362B2 _080362AE: adds r7, r3, 0 mov r8, r7 _080362B2: ldr r3, _080362D4 ldr r1, _080362D8 ldr r2, _080362DC ldrb r0, [r2] lsls r0, 1 adds r0, r1 ldrh r1, [r0] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r3 ldrb r0, [r0, 0x2] adds r1, r2, 0 cmp r0, 0xA bne _080362E0 movs r0, 0x12 b _080362F2 .align 2, 0 _080362D4: .4byte gBattleMoves _080362D8: .4byte 0x02024c3c _080362DC: .4byte 0x02024a60 _080362E0: cmp r0, 0xB bne _080362EA movs r2, 0xB mov r10, r2 b _080362F4 _080362EA: cmp r0, 0xD beq _080362F0 b _08036400 _080362F0: movs r0, 0xA _080362F2: mov r10, r0 _080362F4: ldr r2, _08036308 ldrb r1, [r1] movs r0, 0x58 muls r0, r1 adds r0, r2 adds r0, 0x20 ldrb r0, [r0] cmp r0, r10 bne _0803633C b _08036400 .align 2, 0 _08036308: .4byte 0x02024a80 _0803630C: ldr r0, _08036330 ldrb r0, [r0] bl battle_get_per_side_status ldr r1, _08036334 lsls r0, 24 lsrs r0, 25 ldr r2, _08036338 adds r0, r2 adds r0, r1 strb r6, [r0] movs r0, 0x1 movs r1, 0x2 movs r2, 0 bl dp01_build_cmdbuf_x21_a_bb movs r0, 0x1 b _08036402 .align 2, 0 _08036330: .4byte 0x02024a60 _08036334: .4byte 0x02000000 _08036338: .4byte 0x000160c8 _0803633C: movs r6, 0 ldr r0, _080363CC mov r9, r0 _08036342: movs r0, 0x64 adds r1, r6, 0 muls r1, r0 ldr r0, _080363D0 adds r5, r1, r0 adds r0, r5, 0 movs r1, 0x39 bl PokemonGetField cmp r0, 0 beq _080363FA adds r0, r5, 0 movs r1, 0x41 bl PokemonGetField cmp r0, 0 beq _080363FA adds r0, r5, 0 movs r1, 0x41 bl PokemonGetField movs r1, 0xCE lsls r1, 1 cmp r0, r1 beq _080363FA ldr r1, _080363D4 mov r2, r8 lsls r0, r2, 1 adds r0, r1 ldrh r0, [r0] cmp r6, r0 beq _080363FA lsls r0, r7, 1 adds r0, r1 ldrh r0, [r0] cmp r6, r0 beq _080363FA ldr r1, _080363D8 ldr r0, _080363DC add r0, r8 adds r0, r1 ldrb r0, [r0] cmp r6, r0 beq _080363FA ldr r2, _080363DC adds r0, r7, r2 adds r0, r1 ldrb r0, [r0] cmp r6, r0 beq _080363FA adds r0, r5, 0 movs r1, 0xB bl PokemonGetField lsls r0, 16 lsrs r4, r0, 16 adds r0, r5, 0 movs r1, 0x2E bl PokemonGetField cmp r0, 0 beq _080363E0 lsls r0, r4, 3 subs r0, r4 lsls r0, 2 add r0, r9 ldrb r0, [r0, 0x17] b _080363EA .align 2, 0 _080363CC: .4byte gBaseStats _080363D0: .4byte 0x030045c0 _080363D4: .4byte 0x02024a6a _080363D8: .4byte 0x02000000 _080363DC: .4byte 0x00016068 _080363E0: lsls r0, r4, 3 subs r0, r4 lsls r0, 2 add r0, r9 ldrb r0, [r0, 0x16] _080363EA: cmp r10, r0 bne _080363FA bl Random movs r1, 0x1 ands r1, r0 cmp r1, 0 bne _0803630C _080363FA: adds r6, 0x1 cmp r6, 0x5 ble _08036342 _08036400: movs r0, 0 _08036402: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_80361E8 thumb_func_start ai_switchout_natural_cure ai_switchout_natural_cure: @ 8036410 push {r4,r5,lr} ldr r3, _08036468 ldr r5, _0803646C ldrb r4, [r5] movs r0, 0x58 adds r2, r4, 0 muls r2, r0 adds r0, r3, 0 adds r0, 0x4C adds r0, r2, r0 ldr r0, [r0] movs r1, 0x7 ands r0, r1 cmp r0, 0 beq _080364D8 adds r1, r2, r3 adds r0, r1, 0 adds r0, 0x20 ldrb r0, [r0] cmp r0, 0x1E bne _080364D8 ldrh r0, [r1, 0x2C] ldrh r1, [r1, 0x28] lsrs r0, 1 cmp r1, r0 bcc _080364D8 ldr r1, _08036470 lsls r0, r4, 1 adds r0, r1 ldrh r1, [r0] cmp r1, 0 beq _08036456 ldr r0, _08036474 cmp r1, r0 bne _08036478 _08036456: bl Random movs r1, 0x1 ands r1, r0 cmp r1, 0 beq _08036478 ldrb r0, [r5] b _080364E0 .align 2, 0 _08036468: .4byte 0x02024a80 _0803646C: .4byte 0x02024a60 _08036470: .4byte 0x02024c3c _08036474: .4byte 0x0000ffff _08036478: ldr r2, _080364A4 ldr r1, _080364A8 ldr r4, _080364AC ldrb r0, [r4] lsls r0, 1 adds r0, r1 ldrh r1, [r0] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r0, [r0, 0x1] cmp r0, 0 bne _080364B0 bl Random movs r1, 0x1 ands r1, r0 cmp r1, 0 beq _080364B0 ldrb r0, [r4] b _080364E0 .align 2, 0 _080364A4: .4byte gBattleMoves _080364A8: .4byte 0x02024c3c _080364AC: .4byte 0x02024a60 _080364B0: movs r0, 0x8 movs r1, 0x1 bl sub_80366A4 lsls r0, 24 cmp r0, 0 bne _080364FE movs r0, 0x4 movs r1, 0x1 bl sub_80366A4 lsls r0, 24 cmp r0, 0 bne _080364FE bl Random movs r1, 0x1 ands r1, r0 cmp r1, 0 bne _080364DC _080364D8: movs r0, 0 b _08036500 _080364DC: ldr r0, _08036508 ldrb r0, [r0] _080364E0: bl battle_get_per_side_status ldr r1, _0803650C lsls r0, 24 lsrs r0, 25 ldr r2, _08036510 adds r0, r2 adds r0, r1 movs r1, 0x6 strb r1, [r0] movs r0, 0x1 movs r1, 0x2 movs r2, 0 bl dp01_build_cmdbuf_x21_a_bb _080364FE: movs r0, 0x1 _08036500: pop {r4,r5} pop {r1} bx r1 .align 2, 0 _08036508: .4byte 0x02024a60 _0803650C: .4byte 0x02000000 _08036510: .4byte 0x000160c8 thumb_func_end ai_switchout_natural_cure thumb_func_start ai_has_super_effective_move_on_field ai_has_super_effective_move_on_field: @ 8036514 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} lsls r0, 24 lsrs r0, 24 mov r8, r0 movs r0, 0 bl battle_get_side_with_given_state lsls r0, 24 lsrs r3, r0, 24 ldr r0, _080365AC ldrb r1, [r0] ldr r2, _080365B0 lsls r0, r3, 2 adds r0, r2 ldr r0, [r0] ands r1, r0 cmp r1, 0 bne _0803659C movs r4, 0 ldr r6, _080365B4 movs r7, 0x58 adds r0, r3, 0 muls r0, r7 adds r5, r0, r6 movs r0, 0x20 adds r0, r5 mov r9, r0 _08036550: lsls r1, r4, 1 ldr r0, _080365B8 ldrb r0, [r0] muls r0, r7 adds r1, r0 adds r0, r6, 0 adds r0, 0xC adds r1, r0 ldrh r0, [r1] cmp r0, 0 beq _08036596 ldrh r1, [r5] mov r3, r9 ldrb r2, [r3] bl ai_rate_move lsls r0, 24 lsrs r1, r0, 24 movs r0, 0x2 ands r1, r0 cmp r1, 0 beq _08036596 mov r0, r8 cmp r0, 0 bne _080365C0 bl Random lsls r0, 16 lsrs r0, 16 movs r1, 0xA bl __umodsi3 lsls r0, 16 cmp r0, 0 bne _080365C0 _08036596: adds r4, 0x1 cmp r4, 0x3 ble _08036550 _0803659C: ldr r0, _080365BC ldrh r1, [r0] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _080365C4 b _0803663E .align 2, 0 _080365AC: .4byte 0x02024c0c _080365B0: .4byte gUnknown_0820872C _080365B4: .4byte 0x02024a80 _080365B8: .4byte 0x02024a60 _080365BC: .4byte 0x020239f8 _080365C0: movs r0, 0x1 b _08036640 _080365C4: movs r0, 0x2 bl battle_get_side_with_given_state lsls r0, 24 lsrs r3, r0, 24 ldr r0, _0803664C ldrb r1, [r0] ldr r2, _08036650 lsls r0, r3, 2 adds r0, r2 ldr r0, [r0] ands r1, r0 cmp r1, 0 bne _0803663E movs r4, 0 ldr r6, _08036654 movs r7, 0x58 adds r0, r3, 0 muls r0, r7 adds r5, r0, r6 movs r3, 0x20 adds r3, r5 mov r9, r3 _080365F2: lsls r1, r4, 1 ldr r0, _08036658 ldrb r0, [r0] muls r0, r7 adds r1, r0 adds r0, r6, 0 adds r0, 0xC adds r1, r0 ldrh r0, [r1] cmp r0, 0 beq _08036638 ldrh r1, [r5] mov r3, r9 ldrb r2, [r3] bl ai_rate_move lsls r0, 24 lsrs r1, r0, 24 movs r0, 0x2 ands r1, r0 cmp r1, 0 beq _08036638 mov r0, r8 cmp r0, 0 bne _080365C0 bl Random lsls r0, 16 lsrs r0, 16 movs r1, 0xA bl __umodsi3 lsls r0, 16 cmp r0, 0 bne _080365C0 _08036638: adds r4, 0x1 cmp r4, 0x3 ble _080365F2 _0803663E: movs r0, 0 _08036640: pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0803664C: .4byte 0x02024c0c _08036650: .4byte gUnknown_0820872C _08036654: .4byte 0x02024a80 _08036658: .4byte 0x02024a60 thumb_func_end ai_has_super_effective_move_on_field thumb_func_start ai_is_too_invested_in_stat_buffs ai_is_too_invested_in_stat_buffs: @ 803665C push {r4,lr} movs r4, 0 ldr r1, _0803669C ldr r0, _080366A0 ldrb r2, [r0] movs r0, 0x58 muls r0, r2 adds r1, 0x18 adds r2, r0, r1 movs r3, 0x7 _08036670: ldrb r1, [r2] movs r0, 0 ldrsb r0, [r2, r0] cmp r0, 0x6 ble _08036686 subs r1, 0x6 lsls r0, r4, 24 asrs r0, 24 adds r0, r1 lsls r0, 24 lsrs r4, r0, 24 _08036686: adds r2, 0x1 subs r3, 0x1 cmp r3, 0 bge _08036670 movs r0, 0 cmp r4, 0x3 bls _08036696 movs r0, 0x1 _08036696: pop {r4} pop {r1} bx r1 .align 2, 0 _0803669C: .4byte 0x02024a80 _080366A0: .4byte 0x02024a60 thumb_func_end ai_is_too_invested_in_stat_buffs thumb_func_start sub_80366A4 sub_80366A4: @ 80366A4 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x8 lsls r0, 24 lsrs r0, 24 str r0, [sp] lsls r1, 24 lsrs r1, 24 str r1, [sp, 0x4] ldr r1, _08036730 ldr r5, _08036734 ldrb r3, [r5] lsls r0, r3, 1 adds r4, r0, r1 ldrh r1, [r4] cmp r1, 0 bne _080366CE b _080368D8 _080366CE: ldr r0, _08036738 cmp r1, r0 bne _080366D6 b _080368D8 _080366D6: ldr r0, _0803673C adds r0, r3, r0 ldrb r0, [r0] cmp r0, 0xFF bne _080366E2 b _080368D8 _080366E2: ldr r2, _08036740 ldrh r1, [r4] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r0, [r0, 0x1] cmp r0, 0 bne _080366F6 b _080368D8 _080366F6: ldr r0, _08036744 ldrh r1, [r0] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _08036798 mov r9, r3 mov r0, r9 bl battle_get_per_side_status movs r4, 0x2 eors r0, r4 lsls r0, 24 lsrs r0, 24 bl battle_get_side_with_given_state ldr r1, _08036748 ldrb r1, [r1] ldr r2, _0803674C lsls r0, 24 lsrs r0, 22 adds r0, r2 ldr r0, [r0] ands r1, r0 cmp r1, 0 beq _08036750 ldrb r5, [r5] mov r10, r5 b _0803679C .align 2, 0 _08036730: .4byte 0x02024c3c _08036734: .4byte 0x02024a60 _08036738: .4byte 0x0000ffff _0803673C: .4byte 0x02024c5c _08036740: .4byte gBattleMoves _08036744: .4byte 0x020239f8 _08036748: .4byte 0x02024c0c _0803674C: .4byte gUnknown_0820872C _08036750: ldrb r0, [r5] bl battle_get_per_side_status eors r0, r4 lsls r0, 24 lsrs r0, 24 bl battle_get_side_with_given_state lsls r0, 24 lsrs r0, 24 mov r10, r0 b _0803679C _08036768: ldr r0, _0803678C ldrb r0, [r0] bl battle_get_per_side_status ldr r1, _08036790 lsls r0, 24 lsrs r0, 25 ldr r2, _08036794 adds r0, r2 adds r0, r1 strb r6, [r0] movs r0, 0x1 movs r1, 0x2 movs r2, 0 bl dp01_build_cmdbuf_x21_a_bb movs r0, 0x1 b _080368DA .align 2, 0 _0803678C: .4byte 0x02024a60 _08036790: .4byte 0x02000000 _08036794: .4byte 0x000160c8 _08036798: mov r9, r3 mov r10, r9 _0803679C: movs r6, 0 _0803679E: movs r0, 0x64 adds r1, r6, 0 muls r1, r0 ldr r0, _08036830 adds r5, r1, r0 adds r0, r5, 0 movs r1, 0x39 bl PokemonGetField cmp r0, 0 bne _080367B6 b _080368D0 _080367B6: adds r0, r5, 0 movs r1, 0x41 bl PokemonGetField cmp r0, 0 bne _080367C4 b _080368D0 _080367C4: adds r0, r5, 0 movs r1, 0x41 bl PokemonGetField movs r1, 0xCE lsls r1, 1 cmp r0, r1 beq _080368D0 ldr r1, _08036834 mov r2, r9 lsls r0, r2, 1 adds r0, r1 ldrh r0, [r0] cmp r6, r0 beq _080368D0 mov r2, r10 lsls r0, r2, 1 adds r0, r1 ldrh r0, [r0] cmp r6, r0 beq _080368D0 ldr r1, _08036838 ldr r0, _0803683C add r0, r9 adds r0, r1 ldrb r0, [r0] cmp r6, r0 beq _080368D0 ldr r0, _0803683C add r0, r10 adds r0, r1 ldrb r0, [r0] cmp r6, r0 beq _080368D0 adds r0, r5, 0 movs r1, 0xB bl PokemonGetField lsls r0, 16 lsrs r4, r0, 16 adds r0, r5, 0 movs r1, 0x2E bl PokemonGetField cmp r0, 0 beq _08036844 lsls r0, r4, 3 subs r0, r4 lsls r0, 2 ldr r1, _08036840 adds r0, r1 ldrb r2, [r0, 0x17] b _08036850 .align 2, 0 _08036830: .4byte 0x030045c0 _08036834: .4byte 0x02024a6a _08036838: .4byte 0x02000000 _0803683C: .4byte 0x00016068 _08036840: .4byte gBaseStats _08036844: lsls r0, r4, 3 subs r0, r4 lsls r0, 2 ldr r2, _080368EC adds r0, r2 ldrb r2, [r0, 0x16] _08036850: ldr r1, _080368F0 ldr r5, _080368F4 ldrb r0, [r5] lsls r0, 1 adds r0, r1 ldrh r0, [r0] adds r1, r4, 0 bl ai_rate_move ldr r1, [sp] ands r1, r0 cmp r1, 0 beq _080368D0 ldr r1, _080368F8 ldrb r0, [r5] adds r0, r1 ldrb r0, [r0] mov r9, r0 movs r4, 0 movs r0, 0x64 adds r1, r6, 0 muls r1, r0 mov r8, r1 ldr r1, _080368FC movs r0, 0x58 mov r2, r9 muls r2, r0 adds r0, r2, 0 adds r5, r0, r1 adds r7, r5, 0 adds r7, 0x20 _0803688E: ldr r0, _08036900 adds r1, r4, 0 adds r1, 0xD add r0, r8 bl PokemonGetField lsls r0, 16 lsrs r0, 16 cmp r0, 0 beq _080368CA ldrh r1, [r5] ldrb r2, [r7] bl ai_rate_move lsls r0, 24 lsrs r1, r0, 24 movs r0, 0x2 ands r1, r0 cmp r1, 0 beq _080368CA bl Random lsls r0, 16 lsrs r0, 16 ldr r1, [sp, 0x4] bl __modsi3 cmp r0, 0 bne _080368CA b _08036768 _080368CA: adds r4, 0x1 cmp r4, 0x3 ble _0803688E _080368D0: adds r6, 0x1 cmp r6, 0x5 bgt _080368D8 b _0803679E _080368D8: movs r0, 0 _080368DA: add sp, 0x8 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _080368EC: .4byte gBaseStats _080368F0: .4byte 0x02024c3c _080368F4: .4byte 0x02024a60 _080368F8: .4byte 0x02024c5c _080368FC: .4byte 0x02024a80 _08036900: .4byte 0x030045c0 thumb_func_end sub_80366A4 thumb_func_start sub_8036904 sub_8036904: @ 8036904 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x4 ldr r6, _080369E0 ldr r4, _080369E4 ldrb r2, [r4] movs r5, 0x58 adds r0, r2, 0 muls r0, r5 adds r1, r6, 0 adds r1, 0x50 adds r0, r1 ldr r0, [r0] ldr r1, _080369E8 ands r0, r1 cmp r0, 0 beq _0803692A b _08036AFC _0803692A: ldr r0, _080369EC lsls r1, r2, 2 adds r1, r0 ldr r1, [r1] movs r0, 0x80 lsls r0, 3 ands r1, r0 cmp r1, 0 beq _0803693E b _08036AFC _0803693E: str r1, [sp] movs r0, 0xC adds r1, r2, 0 movs r2, 0x17 movs r3, 0 bl sub_8018324 lsls r0, 24 lsrs r0, 24 cmp r0, 0 beq _08036956 b _08036AFC _08036956: ldrb r1, [r4] str r0, [sp] movs r0, 0xC movs r2, 0x47 movs r3, 0 bl sub_8018324 lsls r0, 24 lsrs r0, 24 cmp r0, 0 beq _0803696E b _08036AFC _0803696E: str r0, [sp] movs r0, 0xE movs r1, 0 movs r2, 0x2A movs r3, 0 bl sub_8018324 lsls r0, 24 cmp r0, 0 beq _080369A0 ldrb r0, [r4] muls r0, r5 adds r1, r0, r6 adds r0, r1, 0 adds r0, 0x21 ldrb r0, [r0] cmp r0, 0x8 bne _08036994 b _08036AFC _08036994: adds r0, r1, 0 adds r0, 0x22 ldrb r0, [r0] cmp r0, 0x8 bne _080369A0 b _08036AFC _080369A0: movs r0, 0 mov r8, r0 ldr r0, _080369F0 ldrh r1, [r0] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _08036A12 ldr r4, _080369E4 ldrb r7, [r4] adds r0, r7, 0 bl battle_get_per_side_status movs r5, 0x2 eors r0, r5 lsls r0, 24 lsrs r0, 24 bl battle_get_side_with_given_state ldr r1, _080369F4 ldrb r1, [r1] ldr r2, _080369F8 lsls r0, 24 lsrs r0, 22 adds r0, r2 ldr r0, [r0] ands r1, r0 cmp r1, 0 beq _080369FC ldrb r6, [r4] b _08036A18 .align 2, 0 _080369E0: .4byte 0x02024a80 _080369E4: .4byte 0x02024a60 _080369E8: .4byte 0x0400e000 _080369EC: .4byte 0x02024c98 _080369F0: .4byte 0x020239f8 _080369F4: .4byte 0x02024c0c _080369F8: .4byte gUnknown_0820872C _080369FC: ldrb r0, [r4] bl battle_get_per_side_status eors r0, r5 lsls r0, 24 lsrs r0, 24 bl battle_get_side_with_given_state lsls r0, 24 lsrs r6, r0, 24 b _08036A18 _08036A12: ldr r0, _08036AE8 ldrb r6, [r0] adds r7, r6, 0 _08036A18: movs r5, 0 _08036A1A: movs r0, 0x64 adds r1, r5, 0 muls r1, r0 ldr r0, _08036AEC adds r4, r1, r0 adds r0, r4, 0 movs r1, 0x39 bl PokemonGetField cmp r0, 0 beq _08036A7E adds r0, r4, 0 movs r1, 0x41 bl PokemonGetField cmp r0, 0 beq _08036A7E adds r0, r4, 0 movs r1, 0x41 bl PokemonGetField movs r1, 0xCE lsls r1, 1 cmp r0, r1 beq _08036A7E ldr r1, _08036AF0 lsls r0, r7, 1 adds r0, r1 ldrh r0, [r0] cmp r5, r0 beq _08036A7E lsls r0, r6, 1 adds r0, r1 ldrh r0, [r0] cmp r5, r0 beq _08036A7E ldr r1, _08036AF4 ldr r2, _08036AF8 adds r0, r7, r2 adds r0, r1 ldrb r0, [r0] cmp r5, r0 beq _08036A7E adds r0, r6, r2 adds r0, r1 ldrb r0, [r0] cmp r5, r0 beq _08036A7E movs r0, 0x1 add r8, r0 _08036A7E: adds r5, 0x1 cmp r5, 0x5 ble _08036A1A mov r2, r8 cmp r2, 0 beq _08036AFC bl ai_switch_perish_song lsls r0, 24 cmp r0, 0 bne _08036AE4 bl sub_8036054 lsls r0, 24 cmp r0, 0 bne _08036AE4 bl sub_80361E8 lsls r0, 24 cmp r0, 0 bne _08036AE4 bl ai_switchout_natural_cure lsls r0, 24 cmp r0, 0 bne _08036AE4 movs r0, 0 bl ai_has_super_effective_move_on_field lsls r0, 24 cmp r0, 0 bne _08036AFC bl ai_is_too_invested_in_stat_buffs lsls r0, 24 cmp r0, 0 bne _08036AFC movs r0, 0x8 movs r1, 0x2 bl sub_80366A4 lsls r0, 24 cmp r0, 0 bne _08036AE4 movs r0, 0x4 movs r1, 0x3 bl sub_80366A4 lsls r0, 24 cmp r0, 0 beq _08036AFC _08036AE4: movs r0, 0x1 b _08036AFE .align 2, 0 _08036AE8: .4byte 0x02024a60 _08036AEC: .4byte 0x030045c0 _08036AF0: .4byte 0x02024a6a _08036AF4: .4byte 0x02000000 _08036AF8: .4byte 0x00016068 _08036AFC: movs r0, 0 _08036AFE: add sp, 0x4 pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_8036904 thumb_func_start sub_8036B0C sub_8036B0C: @ 8036B0C push {r4-r6,lr} ldr r5, _08036B68 ldrh r1, [r5] movs r0, 0x8 ands r0, r1 cmp r0, 0 bne _08036B1C b _08036C2E _08036B1C: bl sub_8036904 lsls r0, 24 cmp r0, 0 bne _08036B28 b _08036C24 _08036B28: ldr r4, _08036B6C ldr r0, _08036B70 ldrb r0, [r0] bl battle_get_per_side_status lsls r0, 24 lsrs r0, 25 ldr r1, _08036B74 adds r0, r1 adds r0, r4 ldrb r0, [r0] cmp r0, 0x6 bne _08036BEA bl sub_8036CD4 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x6 bne _08036BD4 ldrh r1, [r5] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _08036B78 movs r0, 0x1 bl battle_get_side_with_given_state lsls r0, 24 lsrs r5, r0, 24 adds r6, r5, 0 b _08036B8C .align 2, 0 _08036B68: .4byte 0x020239f8 _08036B6C: .4byte 0x02000000 _08036B70: .4byte 0x02024a60 _08036B74: .4byte 0x000160c8 _08036B78: movs r0, 0x1 bl battle_get_side_with_given_state lsls r0, 24 lsrs r6, r0, 24 movs r0, 0x3 bl battle_get_side_with_given_state lsls r0, 24 lsrs r5, r0, 24 _08036B8C: movs r4, 0 _08036B8E: movs r0, 0x64 muls r0, r4 ldr r1, _08036C0C adds r0, r1 movs r1, 0x39 bl PokemonGetField cmp r0, 0 beq _08036BCE ldr r1, _08036C10 lsls r0, r6, 1 adds r0, r1 ldrh r0, [r0] cmp r4, r0 beq _08036BCE lsls r0, r5, 1 adds r0, r1 ldrh r0, [r0] cmp r4, r0 beq _08036BCE ldr r1, _08036C14 ldr r2, _08036C18 adds r0, r6, r2 adds r0, r1 ldrb r0, [r0] cmp r4, r0 beq _08036BCE adds r0, r5, r2 adds r0, r1 ldrb r0, [r0] cmp r4, r0 bne _08036BD4 _08036BCE: adds r4, 0x1 cmp r4, 0x5 ble _08036B8E _08036BD4: ldr r0, _08036C1C ldrb r0, [r0] bl battle_get_per_side_status ldr r1, _08036C14 lsls r0, 24 lsrs r0, 25 ldr r3, _08036C20 adds r0, r3 adds r0, r1 strb r4, [r0] _08036BEA: ldr r4, _08036C1C ldrb r0, [r4] bl battle_get_per_side_status ldr r2, _08036C14 ldrb r1, [r4] ldr r3, _08036C18 adds r1, r3 adds r1, r2 lsls r0, 24 lsrs r0, 25 adds r3, 0x60 adds r0, r3 adds r0, r2 ldrb r0, [r0] strb r0, [r1] b _08036C40 .align 2, 0 _08036C0C: .4byte 0x030045c0 _08036C10: .4byte 0x02024a6a _08036C14: .4byte 0x02000000 _08036C18: .4byte 0x00016068 _08036C1C: .4byte 0x02024a60 _08036C20: .4byte 0x000160c8 _08036C24: bl sub_803708C lsls r0, 24 cmp r0, 0 bne _08036C40 _08036C2E: ldr r0, _08036C48 ldrb r0, [r0] movs r2, 0x1 eors r2, r0 lsls r2, 8 movs r0, 0x1 movs r1, 0 bl dp01_build_cmdbuf_x21_a_bb _08036C40: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08036C48: .4byte 0x02024a60 thumb_func_end sub_8036B0C thumb_func_start sub_8036C4C sub_8036C4C: @ 8036C4C push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x4 adds r6, r3, 0 lsls r0, 24 lsrs r0, 24 str r0, [sp] lsls r1, 24 lsrs r1, 24 mov r9, r1 lsls r2, 24 lsrs r2, 24 mov r8, r2 movs r7, 0 ldr r0, _08036CD0 mov r10, r0 ldrb r0, [r0] cmp r0, 0xFF beq _08036CBE mov r5, r10 _08036C7A: ldrb r0, [r5] cmp r0, 0xFE beq _08036CB0 ldr r1, [sp] cmp r0, r1 bne _08036CB0 ldrb r4, [r5, 0x1] cmp r4, r9 bne _08036C9A ldrb r1, [r6] ldrb r0, [r5, 0x2] muls r0, r1 movs r1, 0xA bl __divsi3 strb r0, [r6] _08036C9A: cmp r4, r8 bne _08036CB0 cmp r9, r8 beq _08036CB0 ldrb r1, [r6] ldrb r0, [r5, 0x2] muls r0, r1 movs r1, 0xA bl __divsi3 strb r0, [r6] _08036CB0: adds r5, 0x3 adds r7, 0x3 mov r1, r10 adds r0, r7, r1 ldrb r0, [r0] cmp r0, 0xFF bne _08036C7A _08036CBE: 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 _08036CD0: .4byte gTypeEffectiveness thumb_func_end sub_8036C4C thumb_func_start sub_8036CD4 sub_8036CD4: @ 8036CD4 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x1C ldr r0, _08036D1C ldrh r1, [r0] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _08036D78 ldr r4, _08036D20 ldrb r0, [r4] str r0, [sp, 0xC] bl battle_get_per_side_status movs r5, 0x2 eors r0, r5 lsls r0, 24 lsrs r0, 24 bl battle_get_side_with_given_state ldr r1, _08036D24 ldrb r1, [r1] ldr r2, _08036D28 lsls r0, 24 lsrs r0, 22 adds r0, r2 ldr r0, [r0] ands r1, r0 cmp r1, 0 beq _08036D2C ldrb r4, [r4] str r4, [sp, 0x10] b _08036D42 .align 2, 0 _08036D1C: .4byte 0x020239f8 _08036D20: .4byte 0x02024a60 _08036D24: .4byte 0x02024c0c _08036D28: .4byte gUnknown_0820872C _08036D2C: ldrb r0, [r4] bl battle_get_per_side_status eors r0, r5 lsls r0, 24 lsrs r0, 24 bl battle_get_side_with_given_state lsls r0, 24 lsrs r0, 24 str r0, [sp, 0x10] _08036D42: bl Random movs r3, 0x2 ands r0, r3 lsls r0, 24 lsrs r0, 24 mov r10, r0 ldr r0, _08036D70 ldrb r1, [r0] ldr r2, _08036D74 mov r4, r10 lsls r0, r4, 2 adds r0, r2 ldr r0, [r0] ands r1, r0 cmp r1, 0 beq _08036D8C eors r4, r3 lsls r0, r4, 24 lsrs r0, 24 mov r10, r0 b _08036D8C .align 2, 0 _08036D70: .4byte 0x02024c0c _08036D74: .4byte gUnknown_0820872C _08036D78: movs r0, 0 bl battle_get_side_with_given_state lsls r0, 24 lsrs r0, 24 mov r10, r0 ldr r0, _08036E5C ldrb r0, [r0] str r0, [sp, 0x10] str r0, [sp, 0xC] _08036D8C: movs r0, 0 mov r9, r0 mov r1, sp str r1, [sp, 0x14] _08036D94: movs r2, 0 str r2, [sp, 0x4] movs r3, 0x6 str r3, [sp, 0x8] movs r7, 0 ldr r4, _08036E60 mov r8, r4 _08036DA2: movs r0, 0x64 adds r1, r7, 0 muls r1, r0 ldr r0, _08036E64 adds r4, r1, r0 adds r0, r4, 0 movs r1, 0xB bl PokemonGetField lsls r0, 16 lsrs r5, r0, 16 cmp r5, 0 beq _08036E7C adds r0, r4, 0 movs r1, 0x39 bl PokemonGetField cmp r0, 0 beq _08036E7C mov r1, r8 ldr r0, [r1] mov r2, r9 ands r0, r2 cmp r0, 0 bne _08036E7C ldr r1, _08036E68 ldr r3, [sp, 0xC] lsls r0, r3, 1 adds r0, r1 ldrh r0, [r0] cmp r0, r7 beq _08036E7C ldr r4, [sp, 0x10] lsls r0, r4, 1 adds r0, r1 ldrh r0, [r0] cmp r0, r7 beq _08036E7C ldr r1, _08036E6C ldr r2, _08036E70 adds r0, r3, r2 adds r0, r1 ldrb r0, [r0] cmp r7, r0 beq _08036E7C adds r0, r4, r2 adds r0, r1 ldrb r0, [r0] cmp r7, r0 beq _08036E7C ldr r1, _08036E74 lsls r0, r5, 3 subs r0, r5 lsls r0, 2 adds r0, r1 ldrb r5, [r0, 0x6] ldrb r6, [r0, 0x7] movs r0, 0xA ldr r3, [sp, 0x14] strb r0, [r3] movs r0, 0x58 mov r4, r10 muls r4, r0 ldr r0, _08036E78 adds r4, r0 adds r0, r4, 0 adds r0, 0x21 ldrb r0, [r0] adds r1, r5, 0 adds r2, r6, 0 mov r3, sp bl sub_8036C4C adds r4, 0x22 ldrb r0, [r4] adds r1, r5, 0 adds r2, r6, 0 mov r3, sp bl sub_8036C4C ldr r2, [sp, 0x4] ldr r1, [sp, 0x14] ldrb r1, [r1] cmp r2, r1 bcs _08036E8A ldr r2, [sp, 0x14] ldrb r2, [r2] str r2, [sp, 0x4] lsls r0, r7, 24 lsrs r0, 24 str r0, [sp, 0x8] b _08036E8A .align 2, 0 _08036E5C: .4byte 0x02024a60 _08036E60: .4byte gUnknown_0820872C _08036E64: .4byte 0x030045c0 _08036E68: .4byte 0x02024a6a _08036E6C: .4byte 0x02000000 _08036E70: .4byte 0x00016068 _08036E74: .4byte gBaseStats _08036E78: .4byte 0x02024a80 _08036E7C: mov r3, r8 ldr r0, [r3] mov r4, r9 orrs r4, r0 lsls r0, r4, 24 lsrs r0, 24 mov r9, r0 _08036E8A: movs r0, 0x4 add r8, r0 adds r7, 0x1 cmp r7, 0x5 ble _08036DA2 ldr r1, [sp, 0x8] cmp r1, 0x6 beq _08036EF8 movs r7, 0 movs r0, 0x64 adds r5, r1, 0 muls r5, r0 ldr r6, _08036EEC _08036EA4: adds r1, r7, 0 adds r1, 0xD adds r0, r5, r6 bl PokemonGetField lsls r0, 16 lsrs r4, r0, 16 cmp r4, 0 beq _08036ECA ldr r0, _08036EF0 ldrb r1, [r0] adds r0, r4, 0 mov r2, r10 bl move_effectiveness_something movs r1, 0x2 ands r1, r0 cmp r1, 0 bne _08036ED0 _08036ECA: adds r7, 0x1 cmp r7, 0x3 ble _08036EA4 _08036ED0: cmp r7, 0x4 beq _08036ED6 b _08036FEE _08036ED6: ldr r2, [sp, 0x8] lsls r0, r2, 2 ldr r3, _08036EF4 adds r0, r3 ldr r0, [r0] mov r4, r9 orrs r4, r0 lsls r0, r4, 24 lsrs r0, 24 b _08036EFA .align 2, 0 _08036EEC: .4byte 0x030045c0 _08036EF0: .4byte 0x02024a60 _08036EF4: .4byte gUnknown_0820872C _08036EF8: movs r0, 0x3F _08036EFA: mov r9, r0 mov r1, r9 cmp r1, 0x3F beq _08036F04 b _08036D94 _08036F04: ldr r0, _08037000 movs r2, 0 strh r2, [r0] ldr r0, _08037004 ldr r3, _08037008 adds r1, r0, r3 strb r2, [r1] ldr r4, _0803700C adds r0, r4 movs r1, 0x1 strb r1, [r0] ldr r0, _08037010 strb r2, [r0] ldr r0, _08037014 strb r1, [r0] movs r0, 0 str r0, [sp, 0x4] movs r1, 0x6 str r1, [sp, 0x8] movs r7, 0 _08036F2C: movs r0, 0x64 adds r6, r7, 0 muls r6, r0 ldr r2, _08037018 adds r4, r6, r2 adds r0, r4, 0 movs r1, 0xB bl PokemonGetField lsls r0, 16 adds r3, r7, 0x1 str r3, [sp, 0x18] cmp r0, 0 beq _08036FE8 adds r0, r4, 0 movs r1, 0x39 bl PokemonGetField cmp r0, 0 beq _08036FE8 ldr r1, _0803701C ldr r4, [sp, 0xC] lsls r0, r4, 1 adds r0, r1 ldrh r0, [r0] cmp r0, r7 beq _08036FE8 ldr r2, [sp, 0x10] lsls r0, r2, 1 adds r0, r1 ldrh r0, [r0] cmp r0, r7 beq _08036FE8 ldr r1, _08037004 ldr r3, _08037020 adds r0, r4, r3 adds r0, r1 ldrb r0, [r0] cmp r7, r0 beq _08036FE8 adds r0, r2, r3 adds r0, r1 ldrb r0, [r0] cmp r7, r0 beq _08036FE8 movs r5, 0 mov r9, r6 ldr r4, _08037024 mov r8, r4 ldr r6, _08037028 _08036F90: adds r1, r5, 0 adds r1, 0xD ldr r0, _08037018 add r0, r9 bl PokemonGetField lsls r0, 16 lsrs r4, r0, 16 movs r0, 0 mov r1, r8 str r0, [r1] cmp r4, 0 beq _08036FCC ldr r0, _0803702C lsls r1, r4, 1 adds r1, r4 lsls r1, 2 adds r1, r0 ldrb r0, [r1, 0x1] cmp r0, 0x1 beq _08036FCC ldrb r0, [r6] mov r1, r10 bl sub_801CAF8 ldrb r1, [r6] adds r0, r4, 0 mov r2, r10 bl move_effectiveness_something _08036FCC: mov r2, r8 ldr r0, [r2] ldr r3, [sp, 0x4] cmp r3, r0 bge _08036FE2 lsls r0, 24 lsrs r0, 24 str r0, [sp, 0x4] lsls r0, r7, 24 lsrs r0, 24 str r0, [sp, 0x8] _08036FE2: adds r5, 0x1 cmp r5, 0x3 ble _08036F90 _08036FE8: ldr r7, [sp, 0x18] cmp r7, 0x5 ble _08036F2C _08036FEE: ldr r0, [sp, 0x8] add sp, 0x1C pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _08037000: .4byte 0x02024dec _08037004: .4byte 0x02000000 _08037008: .4byte 0x0001601c _0803700C: .4byte 0x0001601f _08037010: .4byte 0x02024c68 _08037014: .4byte 0x02024c0d _08037018: .4byte 0x030045c0 _0803701C: .4byte 0x02024a6a _08037020: .4byte 0x00016068 _08037024: .4byte 0x02024bec _08037028: .4byte 0x02024a60 _0803702C: .4byte gBattleMoves thumb_func_end sub_8036CD4 thumb_func_start ai_identify_item_effect ai_identify_item_effect: @ 8037030 push {r4,lr} adds r2, r1, 0 lsls r0, 24 lsrs r0, 24 cmp r0, 0x13 bne _08037040 movs r0, 0x1 b _08037086 _08037040: ldrb r1, [r2, 0x4] movs r0, 0x4 ands r0, r1 cmp r0, 0 beq _0803704E movs r0, 0x2 b _08037086 _0803704E: ldrb r4, [r2, 0x3] movs r3, 0x3F adds r0, r3, 0 ands r0, r4 cmp r0, 0 beq _0803705E movs r0, 0x3 b _08037086 _0803705E: ldrb r1, [r2] adds r0, r3, 0 ands r0, r1 cmp r0, 0 bne _08037074 ldrb r0, [r2, 0x1] cmp r0, 0 bne _08037074 ldrb r0, [r2, 0x2] cmp r0, 0 beq _08037078 _08037074: movs r0, 0x4 b _08037086 _08037078: movs r0, 0x80 ands r0, r4 cmp r0, 0 bne _08037084 movs r0, 0x6 b _08037086 _08037084: movs r0, 0x5 _08037086: pop {r4} pop {r1} bx r1 thumb_func_end ai_identify_item_effect thumb_func_start sub_803708C sub_803708C: @ 803708C push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x8 movs r0, 0 str r0, [sp] mov r8, r0 mov r9, r0 _080370A0: movs r0, 0x64 mov r1, r9 muls r1, r0 ldr r0, _08037170 adds r4, r1, r0 adds r0, r4, 0 movs r1, 0x39 bl PokemonGetField cmp r0, 0 beq _080370DC adds r0, r4, 0 movs r1, 0x41 bl PokemonGetField cmp r0, 0 beq _080370DC adds r0, r4, 0 movs r1, 0x41 bl PokemonGetField movs r1, 0xCE lsls r1, 1 cmp r0, r1 beq _080370DC ldr r0, [sp] adds r0, 0x1 lsls r0, 24 lsrs r0, 24 str r0, [sp] _080370DC: movs r1, 0x1 add r9, r1 mov r2, r9 cmp r2, 0x5 ble _080370A0 movs r3, 0 mov r9, r3 _080370EA: ldr r4, _08037174 mov r0, r9 cmp r0, 0 beq _08037106 adds r0, r4, 0 adds r0, 0x2C ldrb r0, [r0] mov r1, r9 subs r0, r1 adds r0, 0x1 ldr r2, [sp] cmp r2, r0 ble _08037106 b _080374EC _08037106: mov r3, r9 lsls r1, r3, 1 adds r0, r4, 0 adds r0, 0x24 adds r0, r1, r0 ldrh r0, [r0] mov r10, r0 str r1, [sp, 0x4] cmp r0, 0 bne _0803711C b _080374EC _0803711C: ldr r1, _08037178 subs r0, 0xD lsls r0, 2 adds r0, r1 ldr r1, [r0] cmp r1, 0 bne _0803712C b _080374EC _0803712C: adds r5, r1, 0 mov r0, r10 cmp r0, 0xAF bne _08037136 ldr r5, _0803717C _08037136: mov r1, r10 lsls r0, r1, 24 lsrs r0, 24 adds r1, r5, 0 bl ai_identify_item_effect ldr r2, _08037180 adds r4, r2 ldr r3, _08037184 ldrb r1, [r3] lsrs r1, 1 ldr r2, _08037188 adds r1, r2 adds r1, r4 strb r0, [r1] ldrb r0, [r3] lsrs r0, 1 adds r0, r2 adds r0, r4 ldrb r0, [r0] subs r0, 0x1 cmp r0, 0x5 bls _08037166 b _080374A8 _08037166: lsls r0, 2 ldr r1, _0803718C adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08037170: .4byte 0x030045c0 _08037174: .4byte 0x02016a00 _08037178: .4byte gItemEffectTable _0803717C: .4byte 0x02028daa _08037180: .4byte 0xfffe9600 _08037184: .4byte 0x02024a60 _08037188: .4byte 0x000160d8 _0803718C: .4byte _08037190 .align 2, 0 _08037190: .4byte _080371A8 .4byte _080371D0 .4byte _0803721C .4byte _08037388 .4byte _08037468 .4byte _080374F8 _080371A8: ldr r2, _080371C8 ldr r0, _080371CC ldrb r1, [r0] movs r0, 0x58 muls r0, r1 adds r0, r2 ldrh r1, [r0, 0x2C] ldrh r0, [r0, 0x28] lsrs r1, 2 cmp r0, r1 bcc _080371C0 b _080374A8 _080371C0: cmp r0, 0 bne _080371C6 b _080374A8 _080371C6: b _08037450 .align 2, 0 _080371C8: .4byte 0x02024a80 _080371CC: .4byte 0x02024a60 _080371D0: mov r0, r10 movs r1, 0x4 movs r2, 0x4 bl sub_803F1DC lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0 bne _080371E4 b _080374A8 _080371E4: ldr r2, _08037214 ldr r0, _08037218 ldrb r1, [r0] movs r0, 0x58 muls r0, r1 adds r1, r0, r2 ldrh r2, [r1, 0x28] cmp r2, 0 bne _080371F8 b _080374A8 _080371F8: ldrh r3, [r1, 0x2C] lsrs r0, r3, 2 cmp r2, r0 bcs _08037202 b _08037496 _08037202: adds r0, r2, 0 subs r0, r3, r0 adds r1, r5, r4 ldrb r1, [r1] cmp r0, r1 bgt _08037210 b _080374A8 _08037210: b _08037496 .align 2, 0 _08037214: .4byte 0x02024a80 _08037218: .4byte 0x02024a60 _0803721C: ldr r2, _08037378 ldr r3, _0803737C ldrb r0, [r3] lsrs r0, 1 ldr r6, _08037380 adds r0, r6 adds r0, r2 movs r1, 0 mov r12, r1 movs r1, 0 strb r1, [r0] ldrb r1, [r5, 0x3] movs r7, 0x20 movs r0, 0x20 ands r0, r1 cmp r0, 0 beq _08037264 ldr r1, _08037384 ldrb r4, [r3] movs r0, 0x58 muls r0, r4 adds r1, 0x4C adds r0, r1 ldr r0, [r0] movs r1, 0x7 ands r0, r1 cmp r0, 0 beq _08037264 lsrs r1, r4, 1 adds r1, r6 adds r1, r2 ldrb r0, [r1] orrs r0, r7 strb r0, [r1] movs r0, 0x1 mov r8, r0 _08037264: ldrb r1, [r5, 0x3] movs r6, 0x10 movs r0, 0x10 ands r0, r1 cmp r0, 0 beq _080372A0 ldr r1, _08037384 ldrb r4, [r3] movs r0, 0x58 muls r0, r4 adds r1, 0x4C adds r0, r1 ldr r1, [r0] movs r0, 0x8 ands r0, r1 cmp r0, 0 bne _0803728E movs r0, 0x80 ands r1, r0 cmp r1, 0 beq _080372A0 _0803728E: lsrs r1, r4, 1 ldr r0, _08037380 adds r1, r0 adds r1, r2 ldrb r0, [r1] orrs r0, r6 strb r0, [r1] movs r1, 0x1 mov r8, r1 _080372A0: ldrb r1, [r5, 0x3] movs r6, 0x8 movs r0, 0x8 ands r0, r1 cmp r0, 0 beq _080372D4 ldr r1, _08037384 ldrb r4, [r3] movs r0, 0x58 muls r0, r4 adds r1, 0x4C adds r0, r1 ldr r0, [r0] movs r1, 0x10 ands r0, r1 cmp r0, 0 beq _080372D4 lsrs r0, r4, 1 ldr r1, _08037380 adds r0, r1 adds r0, r2 ldrb r1, [r0] orrs r1, r6 strb r1, [r0] movs r0, 0x1 mov r8, r0 _080372D4: ldrb r1, [r5, 0x3] movs r6, 0x4 movs r0, 0x4 ands r0, r1 cmp r0, 0 beq _08037308 ldr r1, _08037384 ldrb r4, [r3] movs r0, 0x58 muls r0, r4 adds r1, 0x4C adds r0, r1 ldr r0, [r0] movs r1, 0x20 ands r0, r1 cmp r0, 0 beq _08037308 lsrs r0, r4, 1 ldr r1, _08037380 adds r0, r1 adds r0, r2 ldrb r1, [r0] orrs r1, r6 strb r1, [r0] movs r0, 0x1 mov r8, r0 _08037308: ldrb r1, [r5, 0x3] movs r6, 0x2 movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _0803733C ldr r1, _08037384 ldrb r4, [r3] movs r0, 0x58 muls r0, r4 adds r1, 0x4C adds r0, r1 ldr r0, [r0] movs r1, 0x40 ands r0, r1 cmp r0, 0 beq _0803733C lsrs r0, r4, 1 ldr r1, _08037380 adds r0, r1 adds r0, r2 ldrb r1, [r0] orrs r1, r6 strb r1, [r0] movs r0, 0x1 mov r8, r0 _0803733C: ldrb r1, [r5, 0x3] movs r4, 0x1 movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _0803734A b _080374A8 _0803734A: ldr r1, _08037384 ldrb r3, [r3] movs r0, 0x58 muls r0, r3 adds r1, 0x50 adds r0, r1 ldr r0, [r0] movs r1, 0x7 ands r0, r1 cmp r0, 0 bne _08037362 b _080374A8 _08037362: lsrs r0, r3, 1 ldr r1, _08037380 adds r0, r1 adds r0, r2 ldrb r1, [r0] orrs r1, r4 strb r1, [r0] movs r2, 0x1 mov r8, r2 b _080374AE .align 2, 0 _08037378: .4byte 0x02000000 _0803737C: .4byte 0x02024a60 _08037380: .4byte 0x000160da _08037384: .4byte 0x02024a80 _08037388: ldr r6, _08037458 ldr r4, _0803745C ldrb r0, [r4] lsrs r0, 1 ldr r3, _08037460 adds r0, r3 adds r0, r6 movs r1, 0 mov r12, r1 movs r1, 0 strb r1, [r0] ldr r1, _08037464 ldrb r2, [r4] lsls r0, r2, 3 subs r0, r2 lsls r0, 2 adds r0, r1 ldrb r0, [r0, 0x16] cmp r0, 0 beq _080374A8 ldrb r1, [r5] movs r7, 0xF adds r0, r7, 0 ands r0, r1 cmp r0, 0 beq _080373CA lsrs r0, r2, 1 adds r0, r3 adds r0, r6 ldrb r1, [r0] movs r2, 0x1 orrs r1, r2 strb r1, [r0] _080373CA: ldrb r1, [r5, 0x1] movs r2, 0xF0 mov r8, r2 mov r0, r8 ands r0, r1 cmp r0, 0 beq _080373E8 ldrb r0, [r4] lsrs r0, 1 adds r0, r3 adds r0, r6 ldrb r1, [r0] movs r2, 0x2 orrs r1, r2 strb r1, [r0] _080373E8: ldrb r1, [r5, 0x1] adds r0, r7, 0 ands r0, r1 cmp r0, 0 beq _08037402 ldrb r0, [r4] lsrs r0, 1 adds r0, r3 adds r0, r6 ldrb r1, [r0] movs r2, 0x4 orrs r1, r2 strb r1, [r0] _08037402: ldrb r1, [r5, 0x2] adds r0, r7, 0 ands r0, r1 cmp r0, 0 beq _0803741C ldrb r0, [r4] lsrs r0, 1 adds r0, r3 adds r0, r6 ldrb r1, [r0] movs r2, 0x8 orrs r1, r2 strb r1, [r0] _0803741C: ldrb r1, [r5, 0x2] mov r0, r8 ands r0, r1 cmp r0, 0 beq _08037436 ldrb r0, [r4] lsrs r0, 1 adds r0, r3 adds r0, r6 ldrb r1, [r0] movs r2, 0x20 orrs r1, r2 strb r1, [r0] _08037436: ldrb r1, [r5] movs r0, 0x30 ands r0, r1 cmp r0, 0 beq _08037450 ldrb r0, [r4] lsrs r0, 1 adds r0, r3 adds r0, r6 ldrb r1, [r0] movs r2, 0x80 orrs r1, r2 strb r1, [r0] _08037450: movs r3, 0x1 mov r8, r3 b _080374AE .align 2, 0 _08037458: .4byte 0x02000000 _0803745C: .4byte 0x02024a60 _08037460: .4byte 0x000160da _08037464: .4byte 0x02024ca8 _08037468: ldr r4, _0803749C ldrb r0, [r4] bl battle_side_get_owner lsls r0, 24 lsrs r3, r0, 24 ldr r2, _080374A0 ldrb r1, [r4] lsls r0, r1, 3 subs r0, r1 lsls r0, 2 adds r0, r2 ldrb r0, [r0, 0x16] cmp r0, 0 beq _080374A8 ldr r0, _080374A4 lsls r1, r3, 1 adds r1, r3 lsls r1, 2 adds r1, r0 ldrb r0, [r1, 0x2] cmp r0, 0 bne _080374A8 _08037496: movs r0, 0x1 mov r8, r0 b _080374AE .align 2, 0 _0803749C: .4byte 0x02024a60 _080374A0: .4byte 0x02024ca8 _080374A4: .4byte 0x02024c80 _080374A8: mov r1, r8 cmp r1, 0 beq _080374EC _080374AE: movs r0, 0x1 movs r1, 0x1 movs r2, 0 bl dp01_build_cmdbuf_x21_a_bb ldr r1, _080374DC ldr r0, _080374E0 ldrb r0, [r0] lsrs r0, 1 lsls r0, 1 ldr r2, _080374E4 adds r0, r2 adds r0, r1 movs r2, 0 mov r3, r10 strb r3, [r0] ldr r0, _080374E8 adds r1, r0 ldr r3, [sp, 0x4] adds r1, r3, r1 strh r2, [r1] mov r0, r8 b _080374FA .align 2, 0 _080374DC: .4byte 0x02000000 _080374E0: .4byte 0x02024a60 _080374E4: .4byte 0x000160d4 _080374E8: .4byte 0x00016a24 _080374EC: movs r0, 0x1 add r9, r0 mov r1, r9 cmp r1, 0x3 bgt _080374F8 b _080370EA _080374F8: movs r0, 0 _080374FA: add sp, 0x8 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_803708C thumb_func_start nullsub_47 nullsub_47: @ 803750C bx lr thumb_func_end nullsub_47 thumb_func_start sub_8037510 sub_8037510: @ 8037510 ldr r1, _08037520 ldr r0, _08037524 ldrb r0, [r0] lsls r0, 2 adds r0, r1 ldr r1, _08037528 str r1, [r0] bx lr .align 2, 0 _08037520: .4byte 0x03004330 _08037524: .4byte 0x02024a60 _08037528: .4byte sub_803752C thumb_func_end sub_8037510 thumb_func_start sub_803752C sub_803752C: @ 803752C push {lr} ldr r2, _08037560 ldr r1, _08037564 ldr r0, _08037568 ldrb r3, [r0] lsls r0, r3, 2 adds r0, r1 ldr r1, [r2] ldr r0, [r0] ands r1, r0 cmp r1, 0 beq _08037578 ldr r0, _0803756C lsls r1, r3, 9 adds r1, r0 ldrb r0, [r1] cmp r0, 0x38 bhi _08037574 ldr r0, _08037570 ldrb r1, [r1] lsls r1, 2 adds r1, r0 ldr r0, [r1] bl _call_via_r0 b _08037578 .align 2, 0 _08037560: .4byte 0x02024a64 _08037564: .4byte gUnknown_0820872C _08037568: .4byte 0x02024a60 _0803756C: .4byte 0x02023a60 _08037570: .4byte gUnknown_081FB048 _08037574: bl dp01_tbl4_exec_completed _08037578: pop {r0} bx r0 thumb_func_end sub_803752C thumb_func_start sub_803757C sub_803757C: @ 803757C push {lr} ldr r2, _080375A4 ldr r1, _080375A8 ldr r0, _080375AC ldrb r0, [r0] adds r0, r1 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r2, 0x1C adds r0, r2 ldr r1, [r0] ldr r0, _080375B0 cmp r1, r0 bne _080375A0 bl dp01_tbl4_exec_completed _080375A0: pop {r0} bx r0 .align 2, 0 _080375A4: .4byte 0x02020004 _080375A8: .4byte 0x02024be0 _080375AC: .4byte 0x02024a60 _080375B0: .4byte SpriteCallbackDummy thumb_func_end sub_803757C thumb_func_start sub_80375B4 sub_80375B4: @ 80375B4 push {r4-r6,lr} ldr r4, _0803762C ldr r6, _08037630 ldr r5, _08037634 ldrb r0, [r5] adds r0, r6 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r2, r0, 2 adds r0, r4, 0 adds r0, 0x1C adds r0, r2, r0 ldr r1, [r0] ldr r0, _08037638 cmp r1, r0 bne _08037624 adds r0, r2, r4 ldrh r0, [r0, 0x6] bl sub_8031B74 ldrb r0, [r5] adds r0, r6 ldrb r0, [r0] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r4 ldrh r0, [r1, 0x38] ldr r2, _0803763C ands r2, r0 ldrh r3, [r1, 0x4] ldr r0, _08037640 ands r0, r3 orrs r0, r2 strh r0, [r1, 0x4] ldrb r0, [r5] adds r0, r6 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 bl FreeSpriteOamMatrix ldrb r0, [r5] adds r0, r6 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 bl DestroySprite bl dp01_tbl4_exec_completed _08037624: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0803762C: .4byte 0x02020004 _08037630: .4byte 0x02024be0 _08037634: .4byte 0x02024a60 _08037638: .4byte SpriteCallbackDummy _0803763C: .4byte 0x000003ff _08037640: .4byte 0xfffffc00 thumb_func_end sub_80375B4 thumb_func_start sub_8037644 sub_8037644: @ 8037644 push {lr} ldr r3, _08037678 ldrb r0, [r3] lsls r1, r0, 1 adds r1, r0 lsls r1, 2 ldr r2, _0803767C adds r1, r2 ldrb r0, [r1, 0x9] subs r0, 0x1 strb r0, [r1, 0x9] lsls r0, 24 lsrs r0, 24 cmp r0, 0xFF bne _08037674 ldrb r0, [r3] lsls r1, r0, 1 adds r1, r0 lsls r1, 2 adds r1, r2 movs r0, 0 strb r0, [r1, 0x9] bl dp01_tbl4_exec_completed _08037674: pop {r0} bx r0 .align 2, 0 _08037678: .4byte 0x02024a60 _0803767C: .4byte 0x02017810 thumb_func_end sub_8037644 thumb_func_start sub_8037680 sub_8037680: @ 8037680 push {r4-r7,lr} movs r6, 0 bl battle_type_is_double lsls r0, 24 cmp r0, 0 beq _080376A4 bl battle_type_is_double lsls r0, 24 cmp r0, 0 beq _080376D8 ldr r0, _080376C4 ldrh r1, [r0] movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _080376D8 _080376A4: ldr r2, _080376C8 ldr r1, _080376CC ldr r0, _080376D0 ldrb r0, [r0] adds r0, r1 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r2, 0x1C adds r0, r2 ldr r1, [r0] ldr r0, _080376D4 cmp r1, r0 bne _0803770E b _0803770C .align 2, 0 _080376C4: .4byte 0x020239f8 _080376C8: .4byte 0x02020004 _080376CC: .4byte 0x03004340 _080376D0: .4byte 0x02024a60 _080376D4: .4byte SpriteCallbackDummy _080376D8: ldr r2, _080377D8 ldr r5, _080377DC ldr r0, _080377E0 ldrb r3, [r0] adds r0, r3, r5 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r2, 0x1C adds r0, r2 ldr r4, [r0] ldr r0, _080377E4 cmp r4, r0 bne _0803770E movs r0, 0x2 eors r3, r0 adds r0, r3, r5 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 ldr r0, [r0] cmp r0, r4 bne _0803770E _0803770C: movs r6, 0x1 _0803770E: bl sub_80753C4 lsls r0, 24 cmp r0, 0 beq _0803771A movs r6, 0 _0803771A: cmp r6, 0 bne _08037720 b _08037822 _08037720: ldr r7, _080377E0 ldrb r0, [r7] bl battle_get_per_side_status lsls r0, 24 lsrs r3, r0, 24 cmp r3, 0x1 bne _080377B4 ldrb r2, [r7] lsls r0, r2, 1 adds r0, r2 lsls r0, 2 ldr r5, _080377E8 adds r4, r0, r5 ldrb r1, [r4, 0x1] adds r0, r3, 0 ands r0, r1 cmp r0, 0 beq _08037822 movs r6, 0x2 adds r1, r6, 0 eors r1, r2 lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r5 ldrb r1, [r0, 0x1] adds r0, r3, 0 ands r0, r1 cmp r0, 0 beq _08037822 ldrb r1, [r4] movs r3, 0x7F adds r0, r3, 0 ands r0, r1 strb r0, [r4] ldrb r0, [r7] lsls r1, r0, 1 adds r1, r0 lsls r1, 2 adds r1, r5 ldrb r2, [r1, 0x1] movs r4, 0x2 negs r4, r4 adds r0, r4, 0 ands r0, r2 strb r0, [r1, 0x1] ldrb r0, [r7] adds r1, r6, 0 eors r1, r0 lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r5 ldrb r1, [r0] ands r3, r1 strb r3, [r0] ldrb r0, [r7] adds r1, r6, 0 eors r1, r0 lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r5 ldrb r1, [r0, 0x1] ands r4, r1 strb r4, [r0, 0x1] ldr r4, _080377EC adds r0, r4, 0 bl FreeSpriteTilesByTag adds r0, r4, 0 bl FreeSpritePaletteByTag _080377B4: ldr r0, _080377F0 ldrh r1, [r0] movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _080377F8 ldrb r0, [r7] bl battle_get_per_side_status lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _08037804 ldr r0, _080377F4 bl m4aMPlayContinue b _08037804 .align 2, 0 _080377D8: .4byte 0x02020004 _080377DC: .4byte 0x03004340 _080377E0: .4byte 0x02024a60 _080377E4: .4byte SpriteCallbackDummy _080377E8: .4byte 0x02017810 _080377EC: .4byte 0x000027f9 _080377F0: .4byte 0x020239f8 _080377F4: .4byte 0x03007380 _080377F8: ldr r0, _08037828 ldr r1, _0803782C movs r2, 0x80 lsls r2, 1 bl m4aMPlayVolumeControl _08037804: ldr r2, _08037830 ldrb r1, [r2] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 ldr r1, _08037834 adds r0, r1 movs r1, 0x3 strb r1, [r0, 0x9] ldr r1, _08037838 ldrb r0, [r2] lsls r0, 2 adds r0, r1 ldr r1, _0803783C str r1, [r0] _08037822: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08037828: .4byte 0x03007380 _0803782C: .4byte 0x0000ffff _08037830: .4byte 0x02024a60 _08037834: .4byte 0x02017810 _08037838: .4byte 0x03004330 _0803783C: .4byte sub_8037644 thumb_func_end sub_8037680 thumb_func_start sub_8037840 sub_8037840: @ 8037840 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} ldr r6, _08037A48 ldrb r2, [r6] lsls r3, r2, 1 adds r0, r3, r2 lsls r0, 2 ldr r5, _08037A4C adds r0, r5 ldrb r1, [r0] movs r4, 0x88 adds r0, r4, 0 ands r0, r1 cmp r0, 0 bne _08037878 ldr r0, _08037A50 adds r0, r3, r0 ldrh r1, [r0] movs r0, 0x64 muls r1, r0 ldr r0, _08037A54 adds r1, r0 adds r0, r2, 0 bl sub_8141828 _08037878: ldrb r0, [r6] movs r7, 0x2 adds r2, r7, 0 eors r2, r0 lsls r3, r2, 1 adds r0, r3, r2 lsls r0, 2 adds r0, r5 ldrb r1, [r0] adds r0, r4, 0 ands r0, r1 cmp r0, 0 bne _080378A6 ldr r0, _08037A50 adds r0, r3, r0 ldrh r1, [r0] movs r0, 0x64 muls r1, r0 ldr r0, _08037A54 adds r1, r0 adds r0, r2, 0 bl sub_8141828 _080378A6: ldrb r2, [r6] lsls r0, r2, 1 adds r0, r2 lsls r0, 2 adds r0, r5 ldrb r1, [r0] movs r3, 0x8 adds r0, r3, 0 ands r0, r1 cmp r0, 0 beq _080378BE b _08037A3A _080378BE: adds r1, r2, 0 eors r1, r7 lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r5 ldrb r1, [r0] adds r0, r3, 0 ands r0, r1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0 beq _080378DA b _08037A3A _080378DA: ldr r0, _08037A58 ldrh r1, [r0] movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _0803791A adds r0, r2, 0 bl battle_get_per_side_status lsls r0, 24 lsrs r0, 24 cmp r0, 0x3 bne _0803791A ldrb r0, [r6] lsls r1, r0, 1 adds r1, r0 lsls r1, 2 adds r1, r5 ldrb r0, [r1, 0x9] adds r0, 0x1 strb r0, [r1, 0x9] lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _0803790E b _08037A3A _0803790E: ldrb r1, [r6] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r5 strb r4, [r0, 0x9] _0803791A: bl battle_type_is_double lsls r0, 24 cmp r0, 0 beq _080379B2 ldr r0, _08037A58 ldrh r1, [r0] movs r0, 0x40 ands r0, r1 cmp r0, 0 bne _080379B2 ldr r1, _08037A5C ldr r5, _08037A48 ldrb r0, [r5] movs r4, 0x2 eors r0, r4 adds r0, r1 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _08037A60 adds r0, r1 bl DestroySprite ldr r0, _08037A64 mov r8, r0 ldrb r0, [r5] adds r1, r4, 0 eors r1, r0 mov r2, r8 adds r0, r1, r2 ldrb r0, [r0] ldr r2, _08037A50 mov r10, r2 lsls r1, 1 add r1, r10 ldrh r1, [r1] movs r2, 0x64 mov r9, r2 mov r2, r9 muls r2, r1 adds r1, r2, 0 ldr r6, _08037A54 adds r1, r6 movs r2, 0 bl sub_8045A5C ldrb r0, [r5] eors r0, r4 bl sub_804777C ldrb r0, [r5] eors r0, r4 add r0, r8 ldrb r0, [r0] bl sub_8043DFC ldrb r0, [r5] eors r4, r0 lsls r0, r4, 1 add r0, r10 ldrh r0, [r0] mov r1, r9 muls r1, r0 adds r0, r1, 0 adds r0, r6 movs r1, 0xB bl PokemonGetField adds r1, r0, 0 lsls r1, 16 lsrs r1, 16 adds r0, r4, 0 bl sub_8032984 _080379B2: ldr r1, _08037A5C ldr r4, _08037A48 ldrb r0, [r4] adds r0, r1 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _08037A60 adds r0, r1 bl DestroySprite ldr r5, _08037A64 ldrb r1, [r4] adds r0, r1, r5 ldrb r0, [r0] ldr r2, _08037A50 mov r9, r2 lsls r1, 1 add r1, r9 ldrh r1, [r1] movs r2, 0x64 mov r8, r2 mov r2, r8 muls r2, r1 adds r1, r2, 0 ldr r6, _08037A54 adds r1, r6 movs r2, 0 bl sub_8045A5C ldrb r0, [r4] bl sub_804777C ldrb r0, [r4] adds r0, r5 ldrb r0, [r0] bl sub_8043DFC ldrb r5, [r4] lsls r0, r5, 1 add r0, r9 ldrh r0, [r0] mov r1, r8 muls r1, r0 adds r0, r1, 0 adds r0, r6 movs r1, 0xB bl PokemonGetField adds r1, r0, 0 lsls r1, 16 lsrs r1, 16 adds r0, r5, 0 bl sub_8032984 ldr r2, _08037A68 ldrb r1, [r2, 0x9] movs r0, 0x2 negs r0, r0 ands r0, r1 strb r0, [r2, 0x9] ldr r1, _08037A6C ldrb r0, [r4] lsls r0, 2 adds r0, r1 ldr r1, _08037A70 str r1, [r0] _08037A3A: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08037A48: .4byte 0x02024a60 _08037A4C: .4byte 0x02017810 _08037A50: .4byte 0x02024a6a _08037A54: .4byte 0x030045c0 _08037A58: .4byte 0x020239f8 _08037A5C: .4byte 0x0300434c _08037A60: .4byte 0x02020004 _08037A64: .4byte 0x03004340 _08037A68: .4byte 0x02017840 _08037A6C: .4byte 0x03004330 _08037A70: .4byte sub_8037680 thumb_func_end sub_8037840 thumb_func_start sub_8037A74 sub_8037A74: @ 8037A74 push {r4-r7,lr} ldr r2, _08037ACC ldr r0, _08037AD0 ldr r7, _08037AD4 ldrb r3, [r7] adds r0, r3, r0 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r1, r0, r2 adds r0, r1, 0 adds r0, 0x3F ldrb r0, [r0] lsls r0, 27 lsrs r2, r0, 31 cmp r2, 0x1 bne _08037B18 movs r4, 0x24 ldrsh r0, [r1, r4] cmp r0, 0 bne _08037B18 lsls r4, r3, 1 adds r0, r4, r3 lsls r0, 2 ldr r6, _08037AD8 adds r1, r0, r6 ldrb r5, [r1] movs r0, 0x80 ands r0, r5 cmp r0, 0 bne _08037AE4 ldr r0, _08037ADC adds r0, r4, r0 ldrh r1, [r0] movs r0, 0x64 muls r1, r0 ldr r0, _08037AE0 adds r1, r0 adds r0, r3, 0 bl sub_8141828 b _08037B18 .align 2, 0 _08037ACC: .4byte 0x02020004 _08037AD0: .4byte 0x02024be0 _08037AD4: .4byte 0x02024a60 _08037AD8: .4byte 0x02017810 _08037ADC: .4byte 0x02024a6a _08037AE0: .4byte 0x030045c0 _08037AE4: ldrb r0, [r1, 0x1] ands r2, r0 cmp r2, 0 beq _08037B18 movs r0, 0x7F ands r0, r5 strb r0, [r1] ldrb r0, [r7] lsls r1, r0, 1 adds r1, r0 lsls r1, 2 adds r1, r6 ldrb r2, [r1, 0x1] movs r0, 0x2 negs r0, r0 ands r0, r2 strb r0, [r1, 0x1] ldr r4, _08037B20 adds r0, r4, 0 bl FreeSpriteTilesByTag adds r0, r4, 0 bl FreeSpritePaletteByTag bl dp01_tbl4_exec_completed _08037B18: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08037B20: .4byte 0x000027f9 thumb_func_end sub_8037A74 thumb_func_start sub_8037B24 sub_8037B24: @ 8037B24 push {r4-r6,lr} ldr r6, _08037B64 ldrb r0, [r6] ldr r5, _08037B68 adds r1, r0, r5 ldrb r1, [r1] movs r2, 0 movs r3, 0 bl sub_8045C78 adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 ldrb r0, [r6] adds r0, r5 ldrb r0, [r0] bl sub_8043DFC lsls r4, 16 asrs r1, r4, 16 movs r0, 0x1 negs r0, r0 cmp r1, r0 beq _08037B6C ldrb r0, [r6] adds r0, r5 ldrb r0, [r0] movs r2, 0 bl sub_80440EC b _08037B70 .align 2, 0 _08037B64: .4byte 0x02024a60 _08037B68: .4byte 0x03004340 _08037B6C: bl dp01_tbl4_exec_completed _08037B70: pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_8037B24 thumb_func_start sub_8037B78 sub_8037B78: @ 8037B78 push {lr} ldr r2, _08037BAC ldr r0, _08037BB0 ldr r1, _08037BB4 ldrb r3, [r1] adds r0, r3, r0 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 adds r0, 0x3E ldrb r0, [r0] lsls r0, 31 cmp r0, 0 bne _08037BA6 ldr r0, _08037BB8 adds r0, r3, r0 ldrb r0, [r0] bl sub_8043DB0 bl dp01_tbl4_exec_completed _08037BA6: pop {r0} bx r0 .align 2, 0 _08037BAC: .4byte 0x02020004 _08037BB0: .4byte 0x02024be0 _08037BB4: .4byte 0x02024a60 _08037BB8: .4byte 0x03004340 thumb_func_end sub_8037B78 thumb_func_start sub_8037BBC sub_8037BBC: @ 8037BBC push {r4-r6,lr} ldr r6, _08037C18 ldrb r2, [r6] lsls r0, r2, 1 adds r0, r2 lsls r0, 2 ldr r1, _08037C1C adds r0, r1 ldrb r1, [r0] movs r0, 0x40 ands r0, r1 cmp r0, 0 bne _08037C12 ldr r5, _08037C20 adds r0, r2, r5 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r4, _08037C24 adds r0, r4 bl FreeSpriteOamMatrix ldrb r0, [r6] adds r0, r5 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 bl DestroySprite ldrb r0, [r6] bl sub_8032A08 ldr r1, _08037C28 ldrb r0, [r6] adds r0, r1 ldrb r0, [r0] bl sub_8043DB0 bl dp01_tbl4_exec_completed _08037C12: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08037C18: .4byte 0x02024a60 _08037C1C: .4byte 0x02017810 _08037C20: .4byte 0x02024be0 _08037C24: .4byte 0x02020004 _08037C28: .4byte 0x03004340 thumb_func_end sub_8037BBC thumb_func_start sub_8037C2C sub_8037C2C: @ 8037C2C push {lr} ldr r0, _08037C40 ldrh r0, [r0, 0x16] cmp r0, 0 bne _08037C3A bl dp01_tbl4_exec_completed _08037C3A: pop {r0} bx r0 .align 2, 0 _08037C40: .4byte 0x03004210 thumb_func_end sub_8037C2C thumb_func_start dp01t_0F_4_move_anim dp01t_0F_4_move_anim: @ 8037C44 push {r4,lr} ldr r1, _08037C80 ldr r0, _08037C84 ldrb r0, [r0] adds r0, r1 ldrb r1, [r0] ldr r2, _08037C88 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r4, r0, r2 movs r1, 0x30 ldrsh r0, [r4, r1] cmp r0, 0x20 bne _08037C90 movs r3, 0 movs r0, 0 strh r0, [r4, 0x30] adds r2, r4, 0 adds r2, 0x3E ldrb r1, [r2] subs r0, 0x5 ands r0, r1 strb r0, [r2] ldr r0, _08037C8C strb r3, [r0] bl dp01_tbl4_exec_completed b _08037CBA .align 2, 0 _08037C80: .4byte 0x02024be0 _08037C84: .4byte 0x02024a60 _08037C88: .4byte 0x02020004 _08037C8C: .4byte 0x02024e6d _08037C90: ldrh r0, [r4, 0x30] movs r1, 0x3 ands r0, r1 cmp r0, 0 bne _08037CB4 adds r3, r4, 0 adds r3, 0x3E ldrb r2, [r3] lsls r0, r2, 29 lsrs r0, 31 movs r1, 0x1 eors r1, r0 lsls r1, 2 movs r0, 0x5 negs r0, r0 ands r0, r2 orrs r0, r1 strb r0, [r3] _08037CB4: ldrh r0, [r4, 0x30] adds r0, 0x1 strh r0, [r4, 0x30] _08037CBA: pop {r4} pop {r0} bx r0 thumb_func_end dp01t_0F_4_move_anim thumb_func_start sub_8037CC0 sub_8037CC0: @ 8037CC0 push {r4,lr} ldr r2, _08037D10 ldr r0, _08037D14 ldr r4, _08037D18 ldrb r3, [r4] adds r0, r3, r0 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r2, 0x1C adds r0, r2 ldr r1, [r0] ldr r0, _08037D1C cmp r1, r0 bne _08037D08 lsls r0, r3, 2 ldr r1, _08037D20 adds r0, r1 ldrb r1, [r0] movs r0, 0x4 ands r0, r1 cmp r0, 0 beq _08037CFC adds r0, r3, 0 adds r1, r3, 0 adds r2, r3, 0 movs r3, 0x6 bl move_anim_start_t4 _08037CFC: ldr r0, _08037D24 ldrb r1, [r4] lsls r1, 2 adds r1, r0 ldr r0, _08037D28 str r0, [r1] _08037D08: pop {r4} pop {r0} bx r0 .align 2, 0 _08037D10: .4byte 0x02020004 _08037D14: .4byte 0x03004340 _08037D18: .4byte 0x02024a60 _08037D1C: .4byte SpriteCallbackDummy _08037D20: .4byte 0x02017800 _08037D24: .4byte 0x03004330 _08037D28: .4byte sub_8037D2C thumb_func_end sub_8037CC0 thumb_func_start sub_8037D2C sub_8037D2C: @ 8037D2C push {lr} ldr r0, _08037D58 ldrb r1, [r0] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 ldr r1, _08037D5C adds r0, r1 ldrb r1, [r0] movs r0, 0x40 ands r0, r1 cmp r0, 0 bne _08037D52 ldr r0, _08037D60 movs r1, 0xA bl CreateTask bl dp01_tbl4_exec_completed _08037D52: pop {r0} bx r0 .align 2, 0 _08037D58: .4byte 0x02024a60 _08037D5C: .4byte 0x02017810 _08037D60: .4byte c3_0802FDF4 thumb_func_end sub_8037D2C thumb_func_start sub_8037D64 sub_8037D64: @ 8037D64 push {r4,r5,lr} ldr r5, _08037E08 ldrb r1, [r5] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 ldr r3, _08037E0C adds r2, r0, r3 ldrb r1, [r2, 0x1] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _08037E00 ldrb r1, [r2] movs r0, 0x7F ands r0, r1 strb r0, [r2] ldrb r0, [r5] lsls r1, r0, 1 adds r1, r0 lsls r1, 2 adds r1, r3 ldrb r2, [r1, 0x1] movs r0, 0x2 negs r0, r0 ands r0, r2 strb r0, [r1, 0x1] ldr r4, _08037E10 adds r0, r4, 0 bl FreeSpriteTilesByTag adds r0, r4, 0 bl FreeSpritePaletteByTag ldr r1, _08037E14 ldrb r0, [r5] adds r0, r1 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _08037E18 adds r0, r1 movs r1, 0 bl StartSpriteAnim ldr r4, _08037E1C ldrb r1, [r5] adds r0, r1, r4 ldrb r0, [r0] ldr r2, _08037E20 lsls r1, 1 adds r1, r2 ldrh r2, [r1] movs r1, 0x64 muls r1, r2 ldr r2, _08037E24 adds r1, r2 movs r2, 0 bl sub_8045A5C ldrb r0, [r5] bl sub_804777C ldrb r0, [r5] adds r0, r4 ldrb r0, [r0] bl sub_8043DFC ldrb r0, [r5] bl sub_8031F88 ldr r1, _08037E28 ldrb r0, [r5] lsls r0, 2 adds r0, r1 ldr r1, _08037E2C str r1, [r0] _08037E00: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08037E08: .4byte 0x02024a60 _08037E0C: .4byte 0x02017810 _08037E10: .4byte 0x000027f9 _08037E14: .4byte 0x02024be0 _08037E18: .4byte 0x02020004 _08037E1C: .4byte 0x03004340 _08037E20: .4byte 0x02024a6a _08037E24: .4byte 0x030045c0 _08037E28: .4byte 0x03004330 _08037E2C: .4byte sub_8037CC0 thumb_func_end sub_8037D64 thumb_func_start sub_8037E30 sub_8037E30: @ 8037E30 push {r4-r6,lr} ldr r5, _08037ECC ldrb r2, [r5] lsls r3, r2, 1 adds r0, r3, r2 lsls r0, 2 ldr r6, _08037ED0 adds r0, r6 ldrb r1, [r0] movs r0, 0x88 ands r0, r1 cmp r0, 0 bne _08037E5E ldr r0, _08037ED4 adds r0, r3, r0 ldrh r1, [r0] movs r0, 0x64 muls r1, r0 ldr r0, _08037ED8 adds r1, r0 adds r0, r2, 0 bl sub_8141828 _08037E5E: ldr r4, _08037EDC ldr r0, _08037EE0 ldrb r2, [r5] adds r0, r2, r0 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r3, r0, 2 adds r0, r4, 0 adds r0, 0x1C adds r0, r3, r0 ldr r1, [r0] ldr r0, _08037EE4 cmp r1, r0 bne _08037EC4 lsls r0, r2, 1 adds r0, r2 lsls r0, 2 adds r0, r6 ldrb r1, [r0] movs r0, 0x8 ands r0, r1 cmp r0, 0 bne _08037EC4 adds r0, r3, r4 bl DestroySprite ldrb r4, [r5] ldr r1, _08037ED4 lsls r0, r4, 1 adds r0, r1 ldrh r1, [r0] movs r0, 0x64 muls r0, r1 ldr r1, _08037ED8 adds r0, r1 movs r1, 0xB bl PokemonGetField adds r1, r0, 0 lsls r1, 16 lsrs r1, 16 adds r0, r4, 0 bl sub_8032984 ldr r1, _08037EE8 ldrb r0, [r5] lsls r0, 2 adds r0, r1 ldr r1, _08037EEC str r1, [r0] _08037EC4: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08037ECC: .4byte 0x02024a60 _08037ED0: .4byte 0x02017810 _08037ED4: .4byte 0x02024a6a _08037ED8: .4byte 0x030045c0 _08037EDC: .4byte 0x02020004 _08037EE0: .4byte 0x0300434c _08037EE4: .4byte SpriteCallbackDummy _08037EE8: .4byte 0x03004330 _08037EEC: .4byte sub_8037D64 thumb_func_end sub_8037E30 thumb_func_start sub_8037EF0 sub_8037EF0: @ 8037EF0 push {lr} ldr r0, _08037F20 ldrb r0, [r0] cmp r0, 0 bne _08037F1C movs r0, 0x5A bl m4aSongNumStop ldr r3, _08037F24 ldr r0, _08037F28 adds r2, r3, r0 ldrb r1, [r2] movs r0, 0x3 negs r0, r0 ands r0, r1 strb r0, [r2] ldr r0, _08037F2C ldr r0, [r0] str r0, [r3] ldr r0, _08037F30 bl SetMainCallback2 _08037F1C: pop {r0} bx r0 .align 2, 0 _08037F20: .4byte 0x03002fa4 _08037F24: .4byte 0x03001770 _08037F28: .4byte 0x0000043d _08037F2C: .4byte 0x030042d0 _08037F30: .4byte c2_8011A1C thumb_func_end sub_8037EF0 thumb_func_start sub_8037F34 sub_8037F34: @ 8037F34 push {lr} ldr r0, _08037F64 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _08037F9A ldr r0, _08037F68 ldrh r1, [r0] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _08037F78 bl sub_800832C ldr r1, _08037F6C ldr r0, _08037F70 ldrb r0, [r0] lsls r0, 2 adds r0, r1 ldr r1, _08037F74 str r1, [r0] b _08037F9A .align 2, 0 _08037F64: .4byte 0x0202f388 _08037F68: .4byte 0x020239f8 _08037F6C: .4byte 0x03004330 _08037F70: .4byte 0x02024a60 _08037F74: .4byte sub_8037EF0 _08037F78: movs r0, 0x5A bl m4aSongNumStop ldr r2, _08037FA0 ldr r0, _08037FA4 adds r3, r2, r0 ldrb r1, [r3] movs r0, 0x3 negs r0, r0 ands r0, r1 strb r0, [r3] ldr r0, _08037FA8 ldr r0, [r0] str r0, [r2] ldr r0, [r2, 0x8] bl SetMainCallback2 _08037F9A: pop {r0} bx r0 .align 2, 0 _08037FA0: .4byte 0x03001770 _08037FA4: .4byte 0x0000043d _08037FA8: .4byte 0x030042d0 thumb_func_end sub_8037F34 thumb_func_start sub_8037FAC sub_8037FAC: @ 8037FAC push {lr} ldr r0, _08037FD0 ldrb r1, [r0] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 ldr r1, _08037FD4 adds r0, r1 ldrb r1, [r0] movs r0, 0x10 ands r0, r1 cmp r0, 0 bne _08037FCA bl dp01_tbl4_exec_completed _08037FCA: pop {r0} bx r0 .align 2, 0 _08037FD0: .4byte 0x02024a60 _08037FD4: .4byte 0x02017810 thumb_func_end sub_8037FAC thumb_func_start sub_8037FD8 sub_8037FD8: @ 8037FD8 push {lr} ldr r0, _08037FFC ldrb r1, [r0] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 ldr r1, _08038000 adds r0, r1 ldrb r1, [r0] movs r0, 0x20 ands r0, r1 cmp r0, 0 bne _08037FF6 bl dp01_tbl4_exec_completed _08037FF6: pop {r0} bx r0 .align 2, 0 _08037FFC: .4byte 0x02024a60 _08038000: .4byte 0x02017810 thumb_func_end sub_8037FD8 thumb_func_start dp01_tbl4_exec_completed dp01_tbl4_exec_completed: @ 8038004 push {r4,lr} sub sp, 0x4 ldr r1, _08038044 ldr r4, _08038048 ldrb r0, [r4] lsls r0, 2 adds r0, r1 ldr r1, _0803804C str r1, [r0] ldr r0, _08038050 ldrh r1, [r0] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _08038058 bl GetMultiplayerId mov r1, sp strb r0, [r1] movs r0, 0x2 movs r1, 0x4 mov r2, sp bl dp01_prepare_buffer_wireless_probably ldr r1, _08038054 ldrb r0, [r4] lsls r0, 9 adds r0, r1 movs r1, 0x38 strb r1, [r0] b _0803806A .align 2, 0 _08038044: .4byte 0x03004330 _08038048: .4byte 0x02024a60 _0803804C: .4byte sub_803752C _08038050: .4byte 0x020239f8 _08038054: .4byte 0x02023a60 _08038058: ldr r2, _08038074 ldr r1, _08038078 ldrb r0, [r4] lsls r0, 2 adds r0, r1 ldr r1, [r0] ldr r0, [r2] bics r0, r1 str r0, [r2] _0803806A: add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _08038074: .4byte 0x02024a64 _08038078: .4byte gUnknown_0820872C thumb_func_end dp01_tbl4_exec_completed thumb_func_start dp01t_00_4_getattr dp01t_00_4_getattr: @ 803807C push {r4-r6,lr} sub sp, 0x100 movs r6, 0 ldr r1, _080380A8 ldr r0, _080380AC ldrb r2, [r0] lsls r0, r2, 9 adds r1, 0x2 adds r1, r0, r1 ldrb r0, [r1] cmp r0, 0 bne _080380B4 ldr r0, _080380B0 lsls r1, r2, 1 adds r1, r0 ldrb r0, [r1] mov r1, sp bl dp01_getattr_by_ch1_for_player_pokemon__ adds r6, r0, 0 b _080380D6 .align 2, 0 _080380A8: .4byte 0x02023a60 _080380AC: .4byte 0x02024a60 _080380B0: .4byte 0x02024a6a _080380B4: ldrb r4, [r1] movs r5, 0 _080380B8: movs r0, 0x1 ands r0, r4 cmp r0, 0 beq _080380CE lsls r0, r5, 24 lsrs r0, 24 mov r2, sp adds r1, r2, r6 bl dp01_getattr_by_ch1_for_player_pokemon__ adds r6, r0 _080380CE: lsrs r4, 1 adds r5, 0x1 cmp r5, 0x5 ble _080380B8 _080380D6: lsls r1, r6, 16 lsrs r1, 16 movs r0, 0x1 mov r2, sp bl dp01_build_cmdbuf_x1D_1D_numargs_varargs bl dp01_tbl4_exec_completed add sp, 0x100 pop {r4-r6} pop {r0} bx r0 thumb_func_end dp01t_00_4_getattr thumb_func_start dp01_getattr_by_ch1_for_player_pokemon__ dp01_getattr_by_ch1_for_player_pokemon__: @ 80380F0 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x90 adds r7, r1, 0 lsls r0, 24 lsrs r5, r0, 24 movs r6, 0 ldr r2, _08038124 ldr r3, _08038128 ldrb r0, [r3] lsls r0, 9 adds r1, r2, 0x1 adds r0, r1 ldrb r0, [r0] cmp r0, 0x3B bls _0803811A bl _08038886 _0803811A: lsls r0, 2 ldr r1, _0803812C adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08038124: .4byte 0x02023a60 _08038128: .4byte 0x02024a60 _0803812C: .4byte _08038130 .align 2, 0 _08038130: .4byte _08038220 .4byte _08038444 .4byte _08038454 .4byte _08038464 .4byte _080384CC .4byte _080384CC .4byte _080384CC .4byte _080384CC .4byte _080384E8 .4byte _08038524 .4byte _08038524 .4byte _08038524 .4byte _08038524 .4byte _08038886 .4byte _08038886 .4byte _08038886 .4byte _08038886 .4byte _08038540 .4byte _08038550 .4byte _08038580 .4byte _08038590 .4byte _080385A0 .4byte _080385B0 .4byte _080385C0 .4byte _080385D0 .4byte _080385E0 .4byte _080385F0 .4byte _08038600 .4byte _08038610 .4byte _08038620 .4byte _08038630 .4byte _08038640 .4byte _08038690 .4byte _080386A0 .4byte _080386B0 .4byte _080386C0 .4byte _080386D0 .4byte _080386E0 .4byte _080386F0 .4byte _08038700 .4byte _08038710 .4byte _08038744 .4byte _08038754 .4byte _08038764 .4byte _08038774 .4byte _08038784 .4byte _08038794 .4byte _080387A4 .4byte _080387B4 .4byte _080387D4 .4byte _080387E4 .4byte _080387F4 .4byte _08038804 .4byte _08038814 .4byte _08038824 .4byte _08038834 .4byte _08038844 .4byte _08038854 .4byte _08038864 .4byte _08038874 _08038220: movs r0, 0x64 adds r4, r5, 0 muls r4, r0 ldr r0, _08038434 adds r4, r0 adds r0, r4, 0 movs r1, 0xB bl PokemonGetField mov r1, sp strh r0, [r1] adds r0, r4, 0 movs r1, 0xC bl PokemonGetField mov r1, sp strh r0, [r1, 0x2E] movs r6, 0 add r0, sp, 0x24 mov r9, r0 movs r1, 0x3B add r1, sp mov r10, r1 mov r2, sp adds r2, 0x2B str r2, [sp, 0x80] mov r0, sp adds r0, 0x2A str r0, [sp, 0x7C] mov r1, sp adds r1, 0x68 str r1, [sp, 0x8C] adds r2, 0x5 str r2, [sp, 0x84] adds r0, 0x12 str r0, [sp, 0x88] mov r8, r4 add r4, sp, 0xC _0803826C: adds r1, r6, 0 adds r1, 0xD mov r0, r8 bl PokemonGetField strh r0, [r4] adds r1, r6, 0 adds r1, 0x11 mov r0, r8 bl PokemonGetField mov r2, r9 adds r1, r2, r6 strb r0, [r1] adds r4, 0x2 adds r6, 0x1 cmp r6, 0x3 ble _0803826C movs r0, 0x64 adds r4, r5, 0 muls r4, r0 ldr r0, _08038434 adds r4, r0 adds r0, r4, 0 movs r1, 0x15 bl PokemonGetField mov r1, r10 strb r0, [r1] adds r0, r4, 0 movs r1, 0x20 bl PokemonGetField ldr r2, [sp, 0x80] strb r0, [r2] adds r0, r4, 0 movs r1, 0x19 bl PokemonGetField str r0, [sp, 0x44] adds r0, r4, 0 movs r1, 0x27 bl PokemonGetField mov r3, sp movs r5, 0x1F ands r0, r5 ldrb r2, [r3, 0x14] movs r1, 0x20 negs r1, r1 ands r1, r2 orrs r1, r0 strb r1, [r3, 0x14] adds r0, r4, 0 movs r1, 0x28 bl PokemonGetField mov r3, sp movs r6, 0x1F ands r0, r6 lsls r0, 5 ldrh r2, [r3, 0x14] ldr r1, _08038438 ands r1, r2 orrs r1, r0 strh r1, [r3, 0x14] adds r0, r4, 0 movs r1, 0x29 bl PokemonGetField mov r3, sp ands r0, r5 lsls r0, 2 ldrb r2, [r3, 0x15] movs r1, 0x7D negs r1, r1 ands r1, r2 orrs r1, r0 strb r1, [r3, 0x15] adds r0, r4, 0 movs r1, 0x2A bl PokemonGetField movs r1, 0x1F ands r1, r0 lsls r1, 15 ldr r0, [sp, 0x14] ldr r2, _0803843C ands r0, r2 orrs r0, r1 str r0, [sp, 0x14] adds r0, r4, 0 movs r1, 0x2B bl PokemonGetField mov r3, sp ands r0, r6 lsls r0, 4 ldrh r2, [r3, 0x16] ldr r1, _08038440 ands r1, r2 orrs r1, r0 strh r1, [r3, 0x16] adds r0, r4, 0 movs r1, 0x2C bl PokemonGetField mov r3, sp ands r0, r5 lsls r0, 1 ldrb r2, [r3, 0x17] movs r1, 0x3F negs r1, r1 ands r1, r2 orrs r1, r0 strb r1, [r3, 0x17] adds r0, r4, 0 movs r1, 0 bl PokemonGetField str r0, [sp, 0x48] adds r0, r4, 0 movs r1, 0x37 bl PokemonGetField str r0, [sp, 0x4C] adds r0, r4, 0 movs r1, 0x38 bl PokemonGetField ldr r1, [sp, 0x7C] strb r0, [r1] adds r0, r4, 0 movs r1, 0x39 bl PokemonGetField mov r1, sp strh r0, [r1, 0x28] adds r0, r4, 0 movs r1, 0x3A bl PokemonGetField mov r1, sp strh r0, [r1, 0x2C] adds r0, r4, 0 movs r1, 0x3B bl PokemonGetField mov r1, sp strh r0, [r1, 0x2] adds r0, r4, 0 movs r1, 0x3C bl PokemonGetField mov r1, sp strh r0, [r1, 0x4] adds r0, r4, 0 movs r1, 0x3D bl PokemonGetField mov r1, sp strh r0, [r1, 0x6] adds r0, r4, 0 movs r1, 0x3E bl PokemonGetField mov r1, sp strh r0, [r1, 0x8] adds r0, r4, 0 movs r1, 0x3F bl PokemonGetField mov r1, sp strh r0, [r1, 0xA] adds r0, r4, 0 movs r1, 0x2D bl PokemonGetField mov r3, sp movs r1, 0x1 ands r0, r1 lsls r0, 6 ldrb r2, [r3, 0x17] movs r1, 0x41 negs r1, r1 ands r1, r2 orrs r1, r0 strb r1, [r3, 0x17] adds r0, r4, 0 movs r1, 0x2E bl PokemonGetField mov r3, sp lsls r0, 7 ldrb r2, [r3, 0x17] movs r1, 0x7F ands r1, r2 orrs r1, r0 strb r1, [r3, 0x17] adds r0, r4, 0 movs r1, 0x1 bl PokemonGetField str r0, [sp, 0x54] adds r0, r4, 0 movs r1, 0x2 ldr r2, [sp, 0x8C] bl PokemonGetField ldr r0, [sp, 0x84] ldr r1, [sp, 0x8C] bl StringCopy10 adds r0, r4, 0 movs r1, 0x7 ldr r2, [sp, 0x88] bl PokemonGetField mov r2, sp movs r6, 0 _08038424: adds r0, r7, r6 adds r1, r2, r6 ldrb r1, [r1] strb r1, [r0] adds r6, 0x1 cmp r6, 0x57 bls _08038424 b _08038886 .align 2, 0 _08038434: .4byte 0x030045c0 _08038438: .4byte 0xfffffc1f _0803843C: .4byte 0xfff07fff _08038440: .4byte 0xfffffe0f _08038444: movs r0, 0x64 muls r0, r5 ldr r1, _08038450 adds r0, r1 movs r1, 0xB b _080387BE .align 2, 0 _08038450: .4byte 0x030045c0 _08038454: movs r0, 0x64 muls r0, r5 ldr r1, _08038460 adds r0, r1 movs r1, 0xC b _080387BE .align 2, 0 _08038460: .4byte 0x030045c0 _08038464: movs r6, 0 add r2, sp, 0x58 mov r9, r2 add r0, sp, 0x60 mov r10, r0 movs r0, 0x64 adds r1, r5, 0 muls r1, r0 ldr r0, _080384C8 adds r4, r1, r0 mov r8, r9 _0803847A: adds r1, r6, 0 adds r1, 0xD adds r0, r4, 0 bl PokemonGetField mov r1, r8 strh r0, [r1] adds r1, r6, 0 adds r1, 0x11 adds r0, r4, 0 bl PokemonGetField mov r2, r10 adds r1, r2, r6 strb r0, [r1] movs r0, 0x2 add r8, r0 adds r6, 0x1 cmp r6, 0x3 ble _0803847A movs r0, 0x64 muls r0, r5 ldr r1, _080384C8 adds r0, r1 movs r1, 0x15 bl PokemonGetField mov r1, r9 strb r0, [r1, 0xC] mov r2, r9 movs r6, 0 _080384B8: adds r0, r7, r6 adds r1, r2, r6 ldrb r1, [r1] strb r1, [r0] adds r6, 0x1 cmp r6, 0xF bls _080384B8 b _08038886 .align 2, 0 _080384C8: .4byte 0x030045c0 _080384CC: movs r0, 0x64 muls r0, r5 ldr r1, _080384E4 adds r0, r1 ldrb r1, [r3] lsls r1, 9 adds r2, 0x1 adds r1, r2 ldrb r1, [r1] adds r1, 0x9 b _080387BE .align 2, 0 _080384E4: .4byte 0x030045c0 _080384E8: movs r6, 0 movs r0, 0x64 adds r4, r5, 0 muls r4, r0 ldr r2, _08038520 mov r8, r2 _080384F4: adds r1, r6, 0 adds r1, 0x11 mov r2, r8 adds r0, r4, r2 bl PokemonGetField adds r1, r7, r6 strb r0, [r1] adds r6, 0x1 cmp r6, 0x3 ble _080384F4 movs r0, 0x64 muls r0, r5 ldr r1, _08038520 adds r0, r1 movs r1, 0x15 bl PokemonGetField adds r1, r7, r6 strb r0, [r1] adds r6, 0x1 b _08038886 .align 2, 0 _08038520: .4byte 0x030045c0 _08038524: movs r0, 0x64 muls r0, r5 ldr r1, _0803853C adds r0, r1 ldrb r1, [r3] lsls r1, 9 adds r2, 0x1 adds r1, r2 ldrb r1, [r1] adds r1, 0x8 b _0803887E .align 2, 0 _0803853C: .4byte 0x030045c0 _08038540: movs r0, 0x64 muls r0, r5 ldr r1, _0803854C adds r0, r1 movs r1, 0x1 b _0803855A .align 2, 0 _0803854C: .4byte 0x030045c0 _08038550: movs r0, 0x64 muls r0, r5 ldr r1, _0803857C adds r0, r1 movs r1, 0x19 _0803855A: bl PokemonGetField adds r1, r0, 0 strb r1, [r7] movs r0, 0xFF lsls r0, 8 ands r0, r1 lsrs r0, 8 strb r0, [r7, 0x1] movs r0, 0xFF lsls r0, 16 ands r0, r1 lsrs r0, 16 strb r0, [r7, 0x2] movs r6, 0x3 b _08038886 .align 2, 0 _0803857C: .4byte 0x030045c0 _08038580: movs r0, 0x64 muls r0, r5 ldr r1, _0803858C adds r0, r1 movs r1, 0x1A b _0803887E .align 2, 0 _0803858C: .4byte 0x030045c0 _08038590: movs r0, 0x64 muls r0, r5 ldr r1, _0803859C adds r0, r1 movs r1, 0x1B b _0803887E .align 2, 0 _0803859C: .4byte 0x030045c0 _080385A0: movs r0, 0x64 muls r0, r5 ldr r1, _080385AC adds r0, r1 movs r1, 0x1C b _0803887E .align 2, 0 _080385AC: .4byte 0x030045c0 _080385B0: movs r0, 0x64 muls r0, r5 ldr r1, _080385BC adds r0, r1 movs r1, 0x1D b _0803887E .align 2, 0 _080385BC: .4byte 0x030045c0 _080385C0: movs r0, 0x64 muls r0, r5 ldr r1, _080385CC adds r0, r1 movs r1, 0x1E b _0803887E .align 2, 0 _080385CC: .4byte 0x030045c0 _080385D0: movs r0, 0x64 muls r0, r5 ldr r1, _080385DC adds r0, r1 movs r1, 0x1F b _0803887E .align 2, 0 _080385DC: .4byte 0x030045c0 _080385E0: movs r0, 0x64 muls r0, r5 ldr r1, _080385EC adds r0, r1 movs r1, 0x20 b _0803887E .align 2, 0 _080385EC: .4byte 0x030045c0 _080385F0: movs r0, 0x64 muls r0, r5 ldr r1, _080385FC adds r0, r1 movs r1, 0x22 b _0803887E .align 2, 0 _080385FC: .4byte 0x030045c0 _08038600: movs r0, 0x64 muls r0, r5 ldr r1, _0803860C adds r0, r1 movs r1, 0x23 b _0803887E .align 2, 0 _0803860C: .4byte 0x030045c0 _08038610: movs r0, 0x64 muls r0, r5 ldr r1, _0803861C adds r0, r1 movs r1, 0x24 b _0803887E .align 2, 0 _0803861C: .4byte 0x030045c0 _08038620: movs r0, 0x64 muls r0, r5 ldr r1, _0803862C adds r0, r1 movs r1, 0x25 b _0803887E .align 2, 0 _0803862C: .4byte 0x030045c0 _08038630: movs r0, 0x64 muls r0, r5 ldr r1, _0803863C adds r0, r1 movs r1, 0x26 b _0803887E .align 2, 0 _0803863C: .4byte 0x030045c0 _08038640: movs r0, 0x64 adds r4, r5, 0 muls r4, r0 ldr r0, _0803868C adds r4, r0 adds r0, r4, 0 movs r1, 0x27 bl PokemonGetField strb r0, [r7] adds r0, r4, 0 movs r1, 0x28 bl PokemonGetField strb r0, [r7, 0x1] adds r0, r4, 0 movs r1, 0x29 bl PokemonGetField strb r0, [r7, 0x2] adds r0, r4, 0 movs r1, 0x2A bl PokemonGetField strb r0, [r7, 0x3] adds r0, r4, 0 movs r1, 0x2B bl PokemonGetField strb r0, [r7, 0x4] adds r0, r4, 0 movs r1, 0x2C bl PokemonGetField strb r0, [r7, 0x5] movs r6, 0x6 b _08038886 .align 2, 0 _0803868C: .4byte 0x030045c0 _08038690: movs r0, 0x64 muls r0, r5 ldr r1, _0803869C adds r0, r1 movs r1, 0x27 b _0803887E .align 2, 0 _0803869C: .4byte 0x030045c0 _080386A0: movs r0, 0x64 muls r0, r5 ldr r1, _080386AC adds r0, r1 movs r1, 0x28 b _0803887E .align 2, 0 _080386AC: .4byte 0x030045c0 _080386B0: movs r0, 0x64 muls r0, r5 ldr r1, _080386BC adds r0, r1 movs r1, 0x29 b _0803887E .align 2, 0 _080386BC: .4byte 0x030045c0 _080386C0: movs r0, 0x64 muls r0, r5 ldr r1, _080386CC adds r0, r1 movs r1, 0x2A b _0803887E .align 2, 0 _080386CC: .4byte 0x030045c0 _080386D0: movs r0, 0x64 muls r0, r5 ldr r1, _080386DC adds r0, r1 movs r1, 0x2B b _0803887E .align 2, 0 _080386DC: .4byte 0x030045c0 _080386E0: movs r0, 0x64 muls r0, r5 ldr r1, _080386EC adds r0, r1 movs r1, 0x2C b _0803887E .align 2, 0 _080386EC: .4byte 0x030045c0 _080386F0: movs r0, 0x64 muls r0, r5 ldr r1, _080386FC adds r0, r1 movs r1, 0 b _0803871A .align 2, 0 _080386FC: .4byte 0x030045c0 _08038700: movs r0, 0x64 muls r0, r5 ldr r1, _0803870C adds r0, r1 movs r1, 0x9 b _080387BE .align 2, 0 _0803870C: .4byte 0x030045c0 _08038710: movs r0, 0x64 muls r0, r5 ldr r1, _08038740 adds r0, r1 movs r1, 0x37 _0803871A: bl PokemonGetField adds r1, r0, 0 strb r1, [r7] movs r0, 0xFF lsls r0, 8 ands r0, r1 lsrs r0, 8 strb r0, [r7, 0x1] movs r0, 0xFF lsls r0, 16 ands r0, r1 lsrs r0, 16 strb r0, [r7, 0x2] lsrs r0, r1, 24 strb r0, [r7, 0x3] movs r6, 0x4 b _08038886 .align 2, 0 _08038740: .4byte 0x030045c0 _08038744: movs r0, 0x64 muls r0, r5 ldr r1, _08038750 adds r0, r1 movs r1, 0x38 b _0803887E .align 2, 0 _08038750: .4byte 0x030045c0 _08038754: movs r0, 0x64 muls r0, r5 ldr r1, _08038760 adds r0, r1 movs r1, 0x39 b _080387BE .align 2, 0 _08038760: .4byte 0x030045c0 _08038764: movs r0, 0x64 muls r0, r5 ldr r1, _08038770 adds r0, r1 movs r1, 0x3A b _080387BE .align 2, 0 _08038770: .4byte 0x030045c0 _08038774: movs r0, 0x64 muls r0, r5 ldr r1, _08038780 adds r0, r1 movs r1, 0x3B b _080387BE .align 2, 0 _08038780: .4byte 0x030045c0 _08038784: movs r0, 0x64 muls r0, r5 ldr r1, _08038790 adds r0, r1 movs r1, 0x3C b _080387BE .align 2, 0 _08038790: .4byte 0x030045c0 _08038794: movs r0, 0x64 muls r0, r5 ldr r1, _080387A0 adds r0, r1 movs r1, 0x3D b _080387BE .align 2, 0 _080387A0: .4byte 0x030045c0 _080387A4: movs r0, 0x64 muls r0, r5 ldr r1, _080387B0 adds r0, r1 movs r1, 0x3E b _080387BE .align 2, 0 _080387B0: .4byte 0x030045c0 _080387B4: movs r0, 0x64 muls r0, r5 ldr r1, _080387D0 adds r0, r1 movs r1, 0x3F _080387BE: bl PokemonGetField lsls r0, 16 lsrs r0, 16 strb r0, [r7] lsrs r0, 8 strb r0, [r7, 0x1] movs r6, 0x2 b _08038886 .align 2, 0 _080387D0: .4byte 0x030045c0 _080387D4: movs r0, 0x64 muls r0, r5 ldr r1, _080387E0 adds r0, r1 movs r1, 0x16 b _0803887E .align 2, 0 _080387E0: .4byte 0x030045c0 _080387E4: movs r0, 0x64 muls r0, r5 ldr r1, _080387F0 adds r0, r1 movs r1, 0x17 b _0803887E .align 2, 0 _080387F0: .4byte 0x030045c0 _080387F4: movs r0, 0x64 muls r0, r5 ldr r1, _08038800 adds r0, r1 movs r1, 0x18 b _0803887E .align 2, 0 _08038800: .4byte 0x030045c0 _08038804: movs r0, 0x64 muls r0, r5 ldr r1, _08038810 adds r0, r1 movs r1, 0x21 b _0803887E .align 2, 0 _08038810: .4byte 0x030045c0 _08038814: movs r0, 0x64 muls r0, r5 ldr r1, _08038820 adds r0, r1 movs r1, 0x2F b _0803887E .align 2, 0 _08038820: .4byte 0x030045c0 _08038824: movs r0, 0x64 muls r0, r5 ldr r1, _08038830 adds r0, r1 movs r1, 0x30 b _0803887E .align 2, 0 _08038830: .4byte 0x030045c0 _08038834: movs r0, 0x64 muls r0, r5 ldr r1, _08038840 adds r0, r1 movs r1, 0x32 b _0803887E .align 2, 0 _08038840: .4byte 0x030045c0 _08038844: movs r0, 0x64 muls r0, r5 ldr r1, _08038850 adds r0, r1 movs r1, 0x33 b _0803887E .align 2, 0 _08038850: .4byte 0x030045c0 _08038854: movs r0, 0x64 muls r0, r5 ldr r1, _08038860 adds r0, r1 movs r1, 0x34 b _0803887E .align 2, 0 _08038860: .4byte 0x030045c0 _08038864: movs r0, 0x64 muls r0, r5 ldr r1, _08038870 adds r0, r1 movs r1, 0x35 b _0803887E .align 2, 0 _08038870: .4byte 0x030045c0 _08038874: movs r0, 0x64 muls r0, r5 ldr r1, _08038898 adds r0, r1 movs r1, 0x36 _0803887E: bl PokemonGetField strb r0, [r7] movs r6, 0x1 _08038886: adds r0, r6, 0 add sp, 0x90 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _08038898: .4byte 0x030045c0 thumb_func_end dp01_getattr_by_ch1_for_player_pokemon__ thumb_func_start sub_803889C sub_803889C: @ 803889C push {lr} bl dp01_tbl4_exec_completed pop {r0} bx r0 thumb_func_end sub_803889C thumb_func_start sub_80388A8 sub_80388A8: @ 80388A8 push {r4,r5,lr} ldr r1, _080388CC ldr r0, _080388D0 ldrb r2, [r0] lsls r0, r2, 9 adds r1, 0x2 adds r1, r0, r1 ldrb r0, [r1] cmp r0, 0 bne _080388D8 ldr r0, _080388D4 lsls r1, r2, 1 adds r1, r0 ldrb r0, [r1] bl sub_8038900 b _080388F6 .align 2, 0 _080388CC: .4byte 0x02023a60 _080388D0: .4byte 0x02024a60 _080388D4: .4byte 0x02024a6a _080388D8: ldrb r4, [r1] movs r5, 0 _080388DC: movs r0, 0x1 ands r0, r4 cmp r0, 0 beq _080388EA adds r0, r5, 0 bl sub_8038900 _080388EA: lsrs r4, 1 adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0x5 bls _080388DC _080388F6: bl dp01_tbl4_exec_completed pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_80388A8 thumb_func_start sub_8038900 sub_8038900: @ 8038900 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x38 lsls r0, 24 lsrs r5, r0, 24 ldr r3, _08038938 ldrb r0, [r3] lsls r0, 9 ldr r2, _0803893C adds r4, r0, r2 adds r7, r4, 0 subs r1, r2, 0x2 adds r0, r1 ldrb r0, [r0] adds r6, r3, 0 adds r3, r2, 0 cmp r0, 0x3B bls _0803892E bl _0803920C _0803892E: lsls r0, 2 ldr r1, _08038940 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08038938: .4byte 0x02024a60 _0803893C: .4byte 0x02023a63 _08038940: .4byte _08038944 .align 2, 0 _08038944: .4byte _08038A34 .4byte _08038BCC .4byte _08038BE8 .4byte _08038C04 .4byte _08038C58 .4byte _08038C58 .4byte _08038C58 .4byte _08038C58 .4byte _08038C78 .4byte _08038CE0 .4byte _08038CE0 .4byte _08038CE0 .4byte _08038CE0 .4byte _0803920C .4byte _0803920C .4byte _0803920C .4byte _0803920C .4byte _08038D08 .4byte _08038D24 .4byte _08038D40 .4byte _08038D5C .4byte _08038D78 .4byte _08038D94 .4byte _08038DB0 .4byte _08038DCC .4byte _08038DE8 .4byte _08038E04 .4byte _08038E20 .4byte _08038E3C .4byte _08038E58 .4byte _08038E74 .4byte _08038E90 .4byte _08038F04 .4byte _08038F20 .4byte _08038F3C .4byte _08038F58 .4byte _08038F74 .4byte _08038F90 .4byte _08038FAC .4byte _08038FC8 .4byte _08038FE4 .4byte _08039000 .4byte _0803901C .4byte _08039038 .4byte _08039054 .4byte _08039070 .4byte _0803908C .4byte _080390A8 .4byte _080390C4 .4byte _080390E0 .4byte _080390FC .4byte _08039118 .4byte _08039134 .4byte _08039150 .4byte _0803916C .4byte _08039188 .4byte _080391A4 .4byte _080391C0 .4byte _080391DC .4byte _080391F8 _08038A34: movs r0, 0x64 adds r4, r5, 0 muls r4, r0 ldr r0, _08038BC8 adds r4, r0 adds r0, r4, 0 movs r1, 0xB adds r2, r7, 0 bl pokemon_setattr adds r2, r7, 0 adds r2, 0x2E adds r0, r4, 0 movs r1, 0xC bl pokemon_setattr movs r0, 0 mov r8, r0 movs r0, 0x3B adds r0, r7 mov r10, r0 adds r0, r7, 0 adds r0, 0x2B str r0, [sp, 0x20] adds r0, 0x19 str r0, [sp, 0x28] adds r0, 0x4 str r0, [sp, 0x2C] adds r0, 0x4 str r0, [sp, 0x30] subs r0, 0x22 str r0, [sp, 0x1C] subs r0, 0x2 str r0, [sp, 0x18] adds r0, 0x4 str r0, [sp, 0x24] adds r0, r7, 0x2 str r0, [sp, 0x4] adds r0, r7, 0x4 str r0, [sp, 0x8] adds r0, r7, 0x6 str r0, [sp, 0xC] adds r0, 0x2 str r0, [sp, 0x10] adds r0, 0x2 str r0, [sp, 0x14] mov r9, r4 adds r6, r7, 0 adds r6, 0x24 adds r4, r7, 0 adds r4, 0xC _08038A9A: mov r1, r8 adds r1, 0xD mov r0, r9 adds r2, r4, 0 bl pokemon_setattr mov r1, r8 adds r1, 0x11 mov r0, r9 adds r2, r6, 0 bl pokemon_setattr adds r6, 0x1 adds r4, 0x2 movs r0, 0x1 add r8, r0 mov r0, r8 cmp r0, 0x3 ble _08038A9A movs r0, 0x64 adds r4, r5, 0 muls r4, r0 ldr r0, _08038BC8 adds r4, r0 adds r0, r4, 0 movs r1, 0x15 mov r2, r10 bl pokemon_setattr adds r0, r4, 0 movs r1, 0x20 ldr r2, [sp, 0x20] bl pokemon_setattr adds r0, r4, 0 movs r1, 0x19 ldr r2, [sp, 0x28] bl pokemon_setattr ldrb r0, [r7, 0x14] lsls r0, 27 lsrs r0, 27 mov r1, sp strb r0, [r1] adds r0, r4, 0 movs r1, 0x27 mov r2, sp bl pokemon_setattr mov r1, sp ldrh r0, [r7, 0x14] lsls r0, 22 lsrs r0, 27 strb r0, [r1] adds r0, r4, 0 movs r1, 0x28 mov r2, sp bl pokemon_setattr mov r1, sp ldrb r0, [r7, 0x15] lsls r0, 25 lsrs r0, 27 strb r0, [r1] adds r0, r4, 0 movs r1, 0x29 mov r2, sp bl pokemon_setattr mov r1, sp ldr r0, [r7, 0x14] lsls r0, 12 lsrs r0, 27 strb r0, [r1] adds r0, r4, 0 movs r1, 0x2A mov r2, sp bl pokemon_setattr mov r1, sp ldrh r0, [r7, 0x16] lsls r0, 23 lsrs r0, 27 strb r0, [r1] adds r0, r4, 0 movs r1, 0x2B mov r2, sp bl pokemon_setattr mov r1, sp ldrb r0, [r7, 0x17] lsls r0, 26 lsrs r0, 27 strb r0, [r1] adds r0, r4, 0 movs r1, 0x2C mov r2, sp bl pokemon_setattr adds r0, r4, 0 movs r1, 0 ldr r2, [sp, 0x2C] bl pokemon_setattr adds r0, r4, 0 movs r1, 0x37 ldr r2, [sp, 0x30] bl pokemon_setattr adds r0, r4, 0 movs r1, 0x38 ldr r2, [sp, 0x1C] bl pokemon_setattr adds r0, r4, 0 movs r1, 0x39 ldr r2, [sp, 0x18] bl pokemon_setattr adds r0, r4, 0 movs r1, 0x3A ldr r2, [sp, 0x24] bl pokemon_setattr adds r0, r4, 0 movs r1, 0x3B ldr r2, [sp, 0x4] bl pokemon_setattr adds r0, r4, 0 movs r1, 0x3C ldr r2, [sp, 0x8] bl pokemon_setattr adds r0, r4, 0 movs r1, 0x3D ldr r2, [sp, 0xC] bl pokemon_setattr adds r0, r4, 0 movs r1, 0x3E ldr r2, [sp, 0x10] bl pokemon_setattr adds r0, r4, 0 movs r1, 0x3F ldr r2, [sp, 0x14] bl pokemon_setattr b _0803920C .align 2, 0 _08038BC8: .4byte 0x030045c0 _08038BCC: movs r0, 0x64 muls r0, r5 ldr r1, _08038BE4 adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0xB bl pokemon_setattr b _0803920C .align 2, 0 _08038BE4: .4byte 0x030045c0 _08038BE8: movs r0, 0x64 muls r0, r5 ldr r1, _08038C00 adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0xC bl pokemon_setattr b _0803920C .align 2, 0 _08038C00: .4byte 0x030045c0 _08038C04: movs r0, 0 mov r8, r0 movs r0, 0xC adds r0, r4 mov r9, r0 movs r0, 0x64 adds r1, r5, 0 muls r1, r0 ldr r0, _08038C54 adds r7, r1, r0 adds r6, r4, 0 adds r6, 0x8 _08038C1C: mov r1, r8 adds r1, 0xD adds r0, r7, 0 adds r2, r4, 0 bl pokemon_setattr mov r1, r8 adds r1, 0x11 adds r0, r7, 0 adds r2, r6, 0 bl pokemon_setattr adds r6, 0x1 adds r4, 0x2 movs r0, 0x1 add r8, r0 mov r0, r8 cmp r0, 0x3 ble _08038C1C movs r0, 0x64 muls r0, r5 ldr r1, _08038C54 adds r0, r1 movs r1, 0x15 mov r2, r9 bl pokemon_setattr b _0803920C .align 2, 0 _08038C54: .4byte 0x030045c0 _08038C58: movs r0, 0x64 muls r0, r5 ldr r1, _08038C70 adds r0, r1 ldr r3, _08038C74 ldrb r2, [r6] lsls r2, 9 adds r1, r3, 0x1 adds r1, r2, r1 ldrb r1, [r1] adds r1, 0x9 b _08038CF6 .align 2, 0 _08038C70: .4byte 0x030045c0 _08038C74: .4byte 0x02023a60 _08038C78: movs r0, 0x64 adds r4, r5, 0 muls r4, r0 ldr r0, _08038CDC adds r4, r0 ldrb r2, [r6] lsls r2, 9 adds r2, r3 adds r0, r4, 0 movs r1, 0x11 str r3, [sp, 0x34] bl pokemon_setattr ldrb r2, [r6] lsls r2, 9 ldr r3, [sp, 0x34] adds r0, r3, 0x1 adds r2, r0 adds r0, r4, 0 movs r1, 0x12 bl pokemon_setattr ldrb r2, [r6] lsls r2, 9 ldr r3, [sp, 0x34] adds r0, r3, 0x2 adds r2, r0 adds r0, r4, 0 movs r1, 0x13 bl pokemon_setattr ldrb r2, [r6] lsls r2, 9 ldr r3, [sp, 0x34] adds r0, r3, 0x3 adds r2, r0 adds r0, r4, 0 movs r1, 0x14 bl pokemon_setattr ldrb r2, [r6] lsls r2, 9 ldr r3, [sp, 0x34] adds r0, r3, 0x4 adds r2, r0 adds r0, r4, 0 movs r1, 0x15 bl pokemon_setattr b _0803920C .align 2, 0 _08038CDC: .4byte 0x030045c0 _08038CE0: movs r0, 0x64 muls r0, r5 ldr r1, _08038D00 adds r0, r1 ldr r3, _08038D04 ldrb r2, [r6] lsls r2, 9 adds r1, r3, 0x1 adds r1, r2, r1 ldrb r1, [r1] adds r1, 0x8 _08038CF6: adds r3, 0x3 adds r2, r3 bl pokemon_setattr b _0803920C .align 2, 0 _08038D00: .4byte 0x030045c0 _08038D04: .4byte 0x02023a60 _08038D08: movs r0, 0x64 muls r0, r5 ldr r1, _08038D20 adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0x1 bl pokemon_setattr b _0803920C .align 2, 0 _08038D20: .4byte 0x030045c0 _08038D24: movs r0, 0x64 muls r0, r5 ldr r1, _08038D3C adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0x19 bl pokemon_setattr b _0803920C .align 2, 0 _08038D3C: .4byte 0x030045c0 _08038D40: movs r0, 0x64 muls r0, r5 ldr r1, _08038D58 adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0x1A bl pokemon_setattr b _0803920C .align 2, 0 _08038D58: .4byte 0x030045c0 _08038D5C: movs r0, 0x64 muls r0, r5 ldr r1, _08038D74 adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0x1B bl pokemon_setattr b _0803920C .align 2, 0 _08038D74: .4byte 0x030045c0 _08038D78: movs r0, 0x64 muls r0, r5 ldr r1, _08038D90 adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0x1C bl pokemon_setattr b _0803920C .align 2, 0 _08038D90: .4byte 0x030045c0 _08038D94: movs r0, 0x64 muls r0, r5 ldr r1, _08038DAC adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0x1D bl pokemon_setattr b _0803920C .align 2, 0 _08038DAC: .4byte 0x030045c0 _08038DB0: movs r0, 0x64 muls r0, r5 ldr r1, _08038DC8 adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0x1E bl pokemon_setattr b _0803920C .align 2, 0 _08038DC8: .4byte 0x030045c0 _08038DCC: movs r0, 0x64 muls r0, r5 ldr r1, _08038DE4 adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0x1F bl pokemon_setattr b _0803920C .align 2, 0 _08038DE4: .4byte 0x030045c0 _08038DE8: movs r0, 0x64 muls r0, r5 ldr r1, _08038E00 adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0x20 bl pokemon_setattr b _0803920C .align 2, 0 _08038E00: .4byte 0x030045c0 _08038E04: movs r0, 0x64 muls r0, r5 ldr r1, _08038E1C adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0x22 bl pokemon_setattr b _0803920C .align 2, 0 _08038E1C: .4byte 0x030045c0 _08038E20: movs r0, 0x64 muls r0, r5 ldr r1, _08038E38 adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0x23 bl pokemon_setattr b _0803920C .align 2, 0 _08038E38: .4byte 0x030045c0 _08038E3C: movs r0, 0x64 muls r0, r5 ldr r1, _08038E54 adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0x24 bl pokemon_setattr b _0803920C .align 2, 0 _08038E54: .4byte 0x030045c0 _08038E58: movs r0, 0x64 muls r0, r5 ldr r1, _08038E70 adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0x25 bl pokemon_setattr b _0803920C .align 2, 0 _08038E70: .4byte 0x030045c0 _08038E74: movs r0, 0x64 muls r0, r5 ldr r1, _08038E8C adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0x26 bl pokemon_setattr b _0803920C .align 2, 0 _08038E8C: .4byte 0x030045c0 _08038E90: movs r0, 0x64 adds r4, r5, 0 muls r4, r0 ldr r0, _08038F00 adds r4, r0 ldrb r2, [r6] lsls r2, 9 adds r2, r3 adds r0, r4, 0 movs r1, 0x27 str r3, [sp, 0x34] bl pokemon_setattr ldrb r2, [r6] lsls r2, 9 ldr r3, [sp, 0x34] adds r0, r3, 0x1 adds r2, r0 adds r0, r4, 0 movs r1, 0x28 bl pokemon_setattr ldrb r2, [r6] lsls r2, 9 ldr r3, [sp, 0x34] adds r0, r3, 0x2 adds r2, r0 adds r0, r4, 0 movs r1, 0x29 bl pokemon_setattr ldrb r2, [r6] lsls r2, 9 ldr r3, [sp, 0x34] adds r0, r3, 0x3 adds r2, r0 adds r0, r4, 0 movs r1, 0x2A bl pokemon_setattr ldrb r2, [r6] lsls r2, 9 ldr r3, [sp, 0x34] adds r0, r3, 0x4 adds r2, r0 adds r0, r4, 0 movs r1, 0x2B bl pokemon_setattr ldrb r2, [r6] lsls r2, 9 ldr r3, [sp, 0x34] adds r0, r3, 0x5 adds r2, r0 adds r0, r4, 0 b _08038F9E .align 2, 0 _08038F00: .4byte 0x030045c0 _08038F04: movs r0, 0x64 muls r0, r5 ldr r1, _08038F1C adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0x27 bl pokemon_setattr b _0803920C .align 2, 0 _08038F1C: .4byte 0x030045c0 _08038F20: movs r0, 0x64 muls r0, r5 ldr r1, _08038F38 adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0x28 bl pokemon_setattr b _0803920C .align 2, 0 _08038F38: .4byte 0x030045c0 _08038F3C: movs r0, 0x64 muls r0, r5 ldr r1, _08038F54 adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0x29 bl pokemon_setattr b _0803920C .align 2, 0 _08038F54: .4byte 0x030045c0 _08038F58: movs r0, 0x64 muls r0, r5 ldr r1, _08038F70 adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0x2A bl pokemon_setattr b _0803920C .align 2, 0 _08038F70: .4byte 0x030045c0 _08038F74: movs r0, 0x64 muls r0, r5 ldr r1, _08038F8C adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0x2B bl pokemon_setattr b _0803920C .align 2, 0 _08038F8C: .4byte 0x030045c0 _08038F90: movs r0, 0x64 muls r0, r5 ldr r1, _08038FA8 adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 _08038F9E: movs r1, 0x2C bl pokemon_setattr b _0803920C .align 2, 0 _08038FA8: .4byte 0x030045c0 _08038FAC: movs r0, 0x64 muls r0, r5 ldr r1, _08038FC4 adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0 bl pokemon_setattr b _0803920C .align 2, 0 _08038FC4: .4byte 0x030045c0 _08038FC8: movs r0, 0x64 muls r0, r5 ldr r1, _08038FE0 adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0x9 bl pokemon_setattr b _0803920C .align 2, 0 _08038FE0: .4byte 0x030045c0 _08038FE4: movs r0, 0x64 muls r0, r5 ldr r1, _08038FFC adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0x37 bl pokemon_setattr b _0803920C .align 2, 0 _08038FFC: .4byte 0x030045c0 _08039000: movs r0, 0x64 muls r0, r5 ldr r1, _08039018 adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0x38 bl pokemon_setattr b _0803920C .align 2, 0 _08039018: .4byte 0x030045c0 _0803901C: movs r0, 0x64 muls r0, r5 ldr r1, _08039034 adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0x39 bl pokemon_setattr b _0803920C .align 2, 0 _08039034: .4byte 0x030045c0 _08039038: movs r0, 0x64 muls r0, r5 ldr r1, _08039050 adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0x3A bl pokemon_setattr b _0803920C .align 2, 0 _08039050: .4byte 0x030045c0 _08039054: movs r0, 0x64 muls r0, r5 ldr r1, _0803906C adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0x3B bl pokemon_setattr b _0803920C .align 2, 0 _0803906C: .4byte 0x030045c0 _08039070: movs r0, 0x64 muls r0, r5 ldr r1, _08039088 adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0x3C bl pokemon_setattr b _0803920C .align 2, 0 _08039088: .4byte 0x030045c0 _0803908C: movs r0, 0x64 muls r0, r5 ldr r1, _080390A4 adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0x3D bl pokemon_setattr b _0803920C .align 2, 0 _080390A4: .4byte 0x030045c0 _080390A8: movs r0, 0x64 muls r0, r5 ldr r1, _080390C0 adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0x3E bl pokemon_setattr b _0803920C .align 2, 0 _080390C0: .4byte 0x030045c0 _080390C4: movs r0, 0x64 muls r0, r5 ldr r1, _080390DC adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0x3F bl pokemon_setattr b _0803920C .align 2, 0 _080390DC: .4byte 0x030045c0 _080390E0: movs r0, 0x64 muls r0, r5 ldr r1, _080390F8 adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0x16 bl pokemon_setattr b _0803920C .align 2, 0 _080390F8: .4byte 0x030045c0 _080390FC: movs r0, 0x64 muls r0, r5 ldr r1, _08039114 adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0x17 bl pokemon_setattr b _0803920C .align 2, 0 _08039114: .4byte 0x030045c0 _08039118: movs r0, 0x64 muls r0, r5 ldr r1, _08039130 adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0x18 bl pokemon_setattr b _0803920C .align 2, 0 _08039130: .4byte 0x030045c0 _08039134: movs r0, 0x64 muls r0, r5 ldr r1, _0803914C adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0x21 bl pokemon_setattr b _0803920C .align 2, 0 _0803914C: .4byte 0x030045c0 _08039150: movs r0, 0x64 muls r0, r5 ldr r1, _08039168 adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0x2F bl pokemon_setattr b _0803920C .align 2, 0 _08039168: .4byte 0x030045c0 _0803916C: movs r0, 0x64 muls r0, r5 ldr r1, _08039184 adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0x30 bl pokemon_setattr b _0803920C .align 2, 0 _08039184: .4byte 0x030045c0 _08039188: movs r0, 0x64 muls r0, r5 ldr r1, _080391A0 adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0x32 bl pokemon_setattr b _0803920C .align 2, 0 _080391A0: .4byte 0x030045c0 _080391A4: movs r0, 0x64 muls r0, r5 ldr r1, _080391BC adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0x33 bl pokemon_setattr b _0803920C .align 2, 0 _080391BC: .4byte 0x030045c0 _080391C0: movs r0, 0x64 muls r0, r5 ldr r1, _080391D8 adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0x34 bl pokemon_setattr b _0803920C .align 2, 0 _080391D8: .4byte 0x030045c0 _080391DC: movs r0, 0x64 muls r0, r5 ldr r1, _080391F4 adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0x35 bl pokemon_setattr b _0803920C .align 2, 0 _080391F4: .4byte 0x030045c0 _080391F8: movs r0, 0x64 muls r0, r5 ldr r1, _0803921C adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0x36 bl pokemon_setattr _0803920C: add sp, 0x38 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0803921C: .4byte 0x030045c0 thumb_func_end sub_8038900 thumb_func_start sub_8039220 sub_8039220: @ 8039220 push {r4-r7,lr} ldr r1, _08039284 ldr r7, _08039288 ldrb r2, [r7] lsls r0, r2, 1 adds r0, r1 ldrh r1, [r0] movs r0, 0x64 adds r3, r1, 0 muls r3, r0 ldr r4, _0803928C lsls r2, 9 adds r0, r4, 0x1 adds r0, r2, r0 ldrb r0, [r0] ldr r1, _08039290 adds r0, r1 adds r5, r3, r0 movs r3, 0 adds r0, r4, 0x2 adds r2, r0 ldrb r2, [r2] cmp r3, r2 bcs _08039278 adds r6, r4, 0 adds r2, r7, 0 adds r4, r0, 0 _08039256: adds r1, r5, r3 ldrb r0, [r2] lsls r0, 9 adds r0, 0x3 adds r0, r3, r0 adds r0, r6 ldrb r0, [r0] strb r0, [r1] adds r0, r3, 0x1 lsls r0, 24 lsrs r3, r0, 24 ldrb r0, [r2] lsls r0, 9 adds r0, r4 ldrb r0, [r0] cmp r3, r0 bcc _08039256 _08039278: bl dp01_tbl4_exec_completed pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08039284: .4byte 0x02024a6a _08039288: .4byte 0x02024a60 _0803928C: .4byte 0x02023a60 _08039290: .4byte 0x030045c0 thumb_func_end sub_8039220 thumb_func_start sub_8039294 sub_8039294: @ 8039294 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} ldr r7, _080393BC ldr r6, _080393C0 ldrb r0, [r6] lsls r0, 1 adds r0, r7 ldrh r0, [r0] movs r1, 0x64 mov r10, r1 mov r2, r10 muls r2, r0 adds r0, r2, 0 ldr r1, _080393C4 mov r9, r1 add r0, r9 movs r1, 0xB bl PokemonGetField adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 ldrb r1, [r6] lsls r0, r1, 1 adds r0, r7 ldrh r0, [r0] mov r2, r10 muls r2, r0 adds r0, r2, 0 add r0, r9 bl sub_8031794 ldrb r0, [r6] bl battle_get_per_side_status adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 bl gpu_pal_obj_decompress_and_apply ldr r0, _080393C8 mov r8, r0 ldrb r0, [r6] movs r1, 0x2 bl sub_8077ABC adds r5, r0, 0 lsls r5, 24 lsrs r5, 24 ldrb r0, [r6] bl sub_8077F68 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldrb r0, [r6] bl sub_8079E90 adds r3, r0, 0 lsls r3, 24 lsrs r3, 24 mov r0, r8 adds r1, r5, 0 adds r2, r4, 0 bl CreateSprite ldr r4, _080393CC ldrb r1, [r6] adds r1, r4 strb r0, [r1] ldr r5, _080393D0 ldrb r0, [r6] adds r0, r4 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 ldr r1, _080393D4 strh r1, [r0, 0x24] ldrb r2, [r6] adds r0, r2, r4 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 strh r2, [r0, 0x2E] ldrb r3, [r6] adds r0, r3, r4 ldrb r0, [r0] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r5 lsls r3, 4 ldrb r2, [r1, 0x5] movs r0, 0xF ands r0, r2 orrs r0, r3 strb r0, [r1, 0x5] ldrb r2, [r6] adds r4, r2, r4 ldrb r1, [r4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 ldr r1, _080393D8 adds r2, r1 ldrb r1, [r2] bl StartSpriteAnim ldrb r4, [r6] lsls r0, r4, 1 adds r0, r7 ldrh r0, [r0] mov r1, r10 muls r1, r0 adds r0, r1, 0 add r0, r9 movs r1, 0xB bl PokemonGetField adds r1, r0, 0 lsls r1, 16 lsrs r1, 16 adds r0, r4, 0 bl sub_8032984 ldr r1, _080393DC ldrb r0, [r6] lsls r0, 2 adds r0, r1 ldr r1, _080393E0 str r1, [r0] pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080393BC: .4byte 0x02024a6a _080393C0: .4byte 0x02024a60 _080393C4: .4byte 0x030045c0 _080393C8: .4byte 0x02024e8c _080393CC: .4byte 0x02024be0 _080393D0: .4byte 0x02020004 _080393D4: .4byte 0x0000ff10 _080393D8: .4byte 0x02024e84 _080393DC: .4byte 0x03004330 _080393E0: .4byte sub_8037A74 thumb_func_end sub_8039294 thumb_func_start sub_80393E4 sub_80393E4: @ 80393E4 push {r4,lr} ldr r1, _0803941C ldr r4, _08039420 ldrb r0, [r4] lsls r2, r0, 1 adds r2, r1 ldr r3, _08039424 lsls r0, 9 adds r1, r3, 0x1 adds r0, r1 ldrb r0, [r0] strh r0, [r2] ldrb r0, [r4] lsls r1, r0, 9 adds r3, 0x2 adds r1, r3 ldrb r1, [r1] bl sub_8039430 ldr r1, _08039428 ldrb r0, [r4] lsls r0, 2 adds r0, r1 ldr r1, _0803942C str r1, [r0] pop {r4} pop {r0} bx r0 .align 2, 0 _0803941C: .4byte 0x02024a6a _08039420: .4byte 0x02024a60 _08039424: .4byte 0x02023a60 _08039428: .4byte 0x03004330 _0803942C: .4byte sub_8037E30 thumb_func_end sub_80393E4 thumb_func_start sub_8039430 sub_8039430: @ 8039430 push {r4-r6,lr} mov r6, r10 mov r5, r9 mov r4, r8 push {r4-r6} adds r6, r0, 0 lsls r6, 24 lsrs r6, 24 lsls r1, 24 lsrs r1, 24 adds r0, r6, 0 bl sub_8032AA8 ldr r0, _0803958C lsls r4, r6, 1 adds r4, r0 ldr r0, _08039590 lsls r1, r6, 9 adds r0, 0x1 adds r1, r0 ldrb r0, [r1] strh r0, [r4] ldrh r0, [r4] movs r1, 0x64 mov r9, r1 mov r1, r9 muls r1, r0 adds r0, r1, 0 ldr r5, _08039594 adds r0, r5 movs r1, 0xB bl PokemonGetField mov r8, r0 lsls r0, 16 lsrs r0, 16 mov r8, r0 ldr r0, _08039598 bl object_new_hidden_with_callback ldr r1, _0803959C mov r10, r1 add r10, r6 mov r1, r10 strb r0, [r1] ldrh r0, [r4] mov r1, r9 muls r1, r0 adds r0, r1, 0 adds r0, r5 adds r1, r6, 0 bl sub_8031794 adds r0, r6, 0 bl battle_get_per_side_status adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 mov r0, r8 bl gpu_pal_obj_decompress_and_apply ldr r0, _080395A0 mov r9, r0 adds r0, r6, 0 movs r1, 0x2 bl sub_8077ABC adds r5, r0, 0 lsls r5, 24 lsrs r5, 24 adds r0, r6, 0 bl sub_8077F68 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 adds r0, r6, 0 bl sub_8079E90 adds r3, r0, 0 lsls r3, 24 lsrs r3, 24 mov r0, r9 adds r1, r5, 0 adds r2, r4, 0 bl CreateSprite ldr r4, _080395A4 adds r4, r6, r4 strb r0, [r4] ldr r5, _080395A8 mov r0, r10 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 ldrb r1, [r4] strh r1, [r0, 0x30] ldrb r1, [r4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 strh r6, [r0, 0x2E] ldrb r1, [r4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 mov r1, r8 strh r1, [r0, 0x32] ldrb r0, [r4] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r5 lsls r3, r6, 4 ldrb r2, [r1, 0x5] movs r0, 0xF ands r0, r2 orrs r0, r3 strb r0, [r1, 0x5] ldrb r1, [r4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 ldr r1, _080395AC adds r6, r1 ldrb r1, [r6] bl StartSpriteAnim ldrb r1, [r4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 adds r0, 0x3E ldrb r1, [r0] movs r2, 0x4 orrs r1, r2 strb r1, [r0] ldrb r1, [r4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r1, r5, 0 adds r1, 0x1C adds r0, r1 ldr r1, _080395B0 str r1, [r0] movs r0, 0 movs r1, 0xFE bl sub_8046400 mov r1, r10 ldrb r2, [r1] lsls r1, r2, 4 adds r1, r2 lsls r1, 2 adds r1, r5 lsls r0, 24 lsrs r0, 24 strh r0, [r1, 0x2E] pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0803958C: .4byte 0x02024a6a _08039590: .4byte 0x02023a60 _08039594: .4byte 0x030045c0 _08039598: .4byte sub_80312F0 _0803959C: .4byte 0x0300434c _080395A0: .4byte 0x02024e8c _080395A4: .4byte 0x02024be0 _080395A8: .4byte 0x02020004 _080395AC: .4byte 0x02024e84 _080395B0: .4byte SpriteCallbackDummy thumb_func_end sub_8039430 thumb_func_start sub_80395B4 sub_80395B4: @ 80395B4 push {r4-r6,lr} ldr r1, _080395E4 ldr r6, _080395E8 ldrb r2, [r6] lsls r0, r2, 9 adds r1, 0x1 adds r0, r1 ldrb r3, [r0] cmp r3, 0 bne _080395F8 lsls r0, r2, 1 adds r0, r2 lsls r0, 2 ldr r1, _080395EC adds r0, r1 strb r3, [r0, 0x4] ldr r1, _080395F0 ldrb r0, [r6] lsls r0, 2 adds r0, r1 ldr r1, _080395F4 str r1, [r0] b _08039634 .align 2, 0 _080395E4: .4byte 0x02023a60 _080395E8: .4byte 0x02024a60 _080395EC: .4byte 0x02017810 _080395F0: .4byte 0x03004330 _080395F4: .4byte sub_8039648 _080395F8: ldr r5, _0803963C adds r0, r2, r5 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r4, _08039640 adds r0, r4 bl FreeSpriteOamMatrix ldrb r0, [r6] adds r0, r5 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 bl DestroySprite ldrb r0, [r6] bl sub_8032A08 ldr r1, _08039644 ldrb r0, [r6] adds r0, r1 ldrb r0, [r0] bl sub_8043DB0 bl dp01_tbl4_exec_completed _08039634: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0803963C: .4byte 0x02024be0 _08039640: .4byte 0x02020004 _08039644: .4byte 0x03004340 thumb_func_end sub_80395B4 thumb_func_start sub_8039648 sub_8039648: @ 8039648 push {r4,r5,lr} ldr r5, _08039664 ldrb r2, [r5] lsls r0, r2, 1 adds r0, r2 lsls r0, 2 ldr r4, _08039668 adds r3, r0, r4 ldrb r0, [r3, 0x4] cmp r0, 0 beq _0803966C cmp r0, 0x1 beq _08039698 b _080396C0 .align 2, 0 _08039664: .4byte 0x02024a60 _08039668: .4byte 0x02017810 _0803966C: lsls r0, r2, 2 adds r1, r4, 0 subs r1, 0x10 adds r0, r1 ldrb r1, [r0] movs r0, 0x4 ands r0, r1 cmp r0, 0 beq _08039688 adds r0, r2, 0 adds r1, r2, 0 movs r3, 0x5 bl move_anim_start_t4 _08039688: ldrb r0, [r5] lsls r1, r0, 1 adds r1, r0 lsls r1, 2 adds r1, r4 movs r0, 0x1 strb r0, [r1, 0x4] b _080396C0 _08039698: ldrb r1, [r3] movs r0, 0x40 ands r0, r1 lsls r0, 24 lsrs r0, 24 cmp r0, 0 bne _080396C0 strb r0, [r3, 0x4] ldrb r2, [r5] adds r0, r2, 0 adds r1, r2, 0 movs r3, 0x2 bl move_anim_start_t4 ldr r1, _080396C8 ldrb r0, [r5] lsls r0, 2 adds r0, r1 ldr r1, _080396CC str r1, [r0] _080396C0: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080396C8: .4byte 0x03004330 _080396CC: .4byte sub_8037BBC thumb_func_end sub_8039648 thumb_func_start sub_80396D0 sub_80396D0: @ 80396D0 push {r4-r6,lr} mov r6, r9 mov r5, r8 push {r5,r6} ldr r0, _08039704 ldrh r1, [r0] movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _08039714 ldr r6, _08039708 ldrb r0, [r6] bl battle_get_per_side_status movs r1, 0x2 ands r1, r0 movs r5, 0x10 cmp r1, 0 beq _080396F8 ldr r5, _0803970C _080396F8: ldr r4, _08039710 ldrb r0, [r6] bl sub_803FC34 b _08039724 .align 2, 0 _08039704: .4byte 0x020239f8 _08039708: .4byte 0x02024a60 _0803970C: .4byte 0x0000fff0 _08039710: .4byte 0x03002970 _08039714: movs r5, 0 ldr r4, _0803986C bl GetMultiplayerId movs r1, 0x1 eors r0, r1 lsls r0, 24 lsrs r0, 24 _08039724: lsls r1, r0, 3 subs r1, r0 lsls r1, 2 adds r1, r4 ldrb r0, [r1, 0x13] mov r9, r0 ldr r0, _08039870 mov r8, r0 ldrb r1, [r0] mov r0, r9 bl sub_8031A6C mov r1, r8 ldrb r0, [r1] bl battle_get_per_side_status adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 mov r0, r9 bl sub_803C5A0 ldr r6, _08039874 lsls r5, 16 movs r2, 0xB0 lsls r2, 16 adds r5, r2 asrs r5, 16 ldr r1, _08039878 mov r2, r9 lsls r0, r2, 2 adds r0, r1 ldrb r0, [r0] movs r4, 0x8 subs r4, r0 lsls r4, 18 movs r0, 0xA0 lsls r0, 14 adds r4, r0 asrs r4, 16 mov r1, r8 ldrb r0, [r1] bl sub_8079E90 adds r3, r0, 0 lsls r3, 24 lsrs r3, 24 adds r0, r6, 0 adds r1, r5, 0 adds r2, r4, 0 bl CreateSprite ldr r5, _0803987C mov r2, r8 ldrb r1, [r2] adds r1, r5 strb r0, [r1] ldr r4, _08039880 ldrb r0, [r2] adds r0, r5 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 ldr r1, _08039884 strh r1, [r0, 0x24] ldrb r0, [r2] adds r0, r5 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 movs r1, 0x2 strh r1, [r0, 0x2E] ldr r0, _08039888 mov r1, r9 lsls r6, r1, 3 adds r0, r6, r0 ldrh r0, [r0, 0x4] bl IndexOfSpritePaletteTag mov r2, r8 ldrb r1, [r2] adds r1, r5 ldrb r1, [r1] lsls r2, r1, 4 adds r2, r1 lsls r2, 2 adds r2, r4 lsls r0, 4 ldrb r3, [r2, 0x5] movs r1, 0xF ands r1, r3 orrs r1, r0 strb r1, [r2, 0x5] mov r1, r8 ldrb r0, [r1] adds r0, r5 ldrb r0, [r0] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r4 ldrh r0, [r1, 0x4] lsls r0, 22 lsrs r0, 22 strh r0, [r1, 0x38] ldr r0, _0803988C adds r6, r0 ldrh r0, [r6, 0x6] bl GetSpriteTileStartByTag mov r2, r8 ldrb r1, [r2] adds r1, r5 ldrb r2, [r1] lsls r1, r2, 4 adds r1, r2 lsls r1, 2 adds r1, r4 ldr r2, _08039890 ands r2, r0 ldrh r3, [r1, 0x4] ldr r0, _08039894 ands r0, r3 orrs r0, r2 strh r0, [r1, 0x4] mov r1, r8 ldrb r0, [r1] adds r0, r5 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 mov r2, r9 strh r2, [r0, 0x6] mov r1, r8 ldrb r0, [r1] adds r0, r5 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r4, 0x1C adds r0, r4 ldr r1, _08039898 str r1, [r0] ldr r1, _0803989C mov r2, r8 ldrb r0, [r2] lsls r0, 2 adds r0, r1 ldr r1, _080398A0 str r1, [r0] pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0803986C: .4byte 0x03002970 _08039870: .4byte 0x02024a60 _08039874: .4byte 0x02024e8c _08039878: .4byte gTrainerFrontPicCoords _0803987C: .4byte 0x02024be0 _08039880: .4byte 0x02020004 _08039884: .4byte 0x0000ff10 _08039888: .4byte gTrainerFrontPicPaletteTable _0803988C: .4byte gTrainerFrontPicTable _08039890: .4byte 0x000003ff _08039894: .4byte 0xfffffc00 _08039898: .4byte sub_80313A0 _0803989C: .4byte 0x03004330 _080398A0: .4byte sub_803757C thumb_func_end sub_80396D0 thumb_func_start sub_80398A4 sub_80398A4: @ 80398A4 push {lr} bl dp01_tbl4_exec_completed pop {r0} bx r0 thumb_func_end sub_80398A4 thumb_func_start sub_80398B0 sub_80398B0: @ 80398B0 push {r4-r6,lr} ldr r6, _08039940 ldr r4, _08039944 ldrb r0, [r4] adds r0, r6 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r5, _08039948 adds r0, r5 bl oamt_add_pos2_onto_pos1 ldrb r0, [r4] adds r0, r6 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 movs r1, 0x23 strh r1, [r0, 0x2E] ldrb r0, [r4] adds r0, r6 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 movs r1, 0x8C lsls r1, 1 strh r1, [r0, 0x32] ldrb r0, [r4] adds r0, r6 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 ldrh r1, [r0, 0x22] strh r1, [r0, 0x36] ldrb r0, [r4] adds r0, r6 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r1, r5, 0 adds r1, 0x1C adds r0, r1 ldr r1, _0803994C str r1, [r0] ldrb r0, [r4] adds r0, r6 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 ldr r1, _08039950 bl oamt_set_x3A_32 ldr r1, _08039954 ldrb r0, [r4] lsls r0, 2 adds r0, r1 ldr r1, _08039958 str r1, [r0] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08039940: .4byte 0x02024be0 _08039944: .4byte 0x02024a60 _08039948: .4byte 0x02020004 _0803994C: .4byte sub_8078B34 _08039950: .4byte SpriteCallbackDummy _08039954: .4byte 0x03004330 _08039958: .4byte sub_80375B4 thumb_func_end sub_80398B0 thumb_func_start sub_803995C sub_803995C: @ 803995C push {r4,r5,lr} ldr r5, _080399A0 ldrb r2, [r5] lsls r0, r2, 1 adds r0, r2 lsls r0, 2 ldr r4, _080399A4 adds r3, r0, r4 ldrb r0, [r3, 0x4] cmp r0, 0 bne _080399A8 lsls r0, r2, 2 adds r1, r4, 0 subs r1, 0x10 adds r0, r1 ldrb r1, [r0] movs r0, 0x4 ands r0, r1 cmp r0, 0 beq _0803998E adds r0, r2, 0 adds r1, r2, 0 movs r3, 0x5 bl move_anim_start_t4 _0803998E: ldrb r0, [r5] lsls r1, r0, 1 adds r1, r0 lsls r1, 2 adds r1, r4 ldrb r0, [r1, 0x4] adds r0, 0x1 strb r0, [r1, 0x4] b _080399E4 .align 2, 0 _080399A0: .4byte 0x02024a60 _080399A4: .4byte 0x02017810 _080399A8: ldrb r1, [r3] movs r0, 0x40 ands r0, r1 lsls r0, 24 lsrs r0, 24 cmp r0, 0 bne _080399E4 strb r0, [r3, 0x4] movs r0, 0x10 movs r1, 0x3F bl audio_play_and_stuff ldr r2, _080399EC ldr r1, _080399F0 ldrb r0, [r5] adds r0, r1 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r2, 0x1C adds r0, r2 ldr r1, _080399F4 str r1, [r0] ldr r1, _080399F8 ldrb r0, [r5] lsls r0, 2 adds r0, r1 ldr r1, _080399FC str r1, [r0] _080399E4: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080399EC: .4byte 0x02020004 _080399F0: .4byte 0x02024be0 _080399F4: .4byte sub_8010384 _080399F8: .4byte 0x03004330 _080399FC: .4byte sub_8037B78 thumb_func_end sub_803995C thumb_func_start sub_8039A00 sub_8039A00: @ 8039A00 push {lr} bl dp01_tbl4_exec_completed pop {r0} bx r0 thumb_func_end sub_8039A00 thumb_func_start sub_8039A0C sub_8039A0C: @ 8039A0C push {lr} bl dp01_tbl4_exec_completed pop {r0} bx r0 thumb_func_end sub_8039A0C thumb_func_start sub_8039A18 sub_8039A18: @ 8039A18 push {lr} bl dp01_tbl4_exec_completed pop {r0} bx r0 thumb_func_end sub_8039A18 thumb_func_start sub_8039A24 sub_8039A24: @ 8039A24 push {lr} bl dp01_tbl4_exec_completed pop {r0} bx r0 thumb_func_end sub_8039A24 thumb_func_start sub_8039A30 sub_8039A30: @ 8039A30 push {r4-r6,lr} ldr r6, _08039B14 ldrb r0, [r6] bl mplay_80342A4 lsls r0, 24 cmp r0, 0 beq _08039A42 b _08039B52 _08039A42: ldr r0, _08039B18 mov r12, r0 ldrb r2, [r6] lsls r2, 9 adds r0, 0x1 adds r0, r2, r0 ldrb r0, [r0] mov r1, r12 adds r1, 0x2 adds r1, r2, r1 ldrb r1, [r1] lsls r1, 8 orrs r0, r1 ldr r5, _08039B1C mov r1, r12 adds r1, 0x3 adds r2, r1 ldrb r1, [r2] strb r1, [r5] ldr r4, _08039B20 ldrb r2, [r6] lsls r2, 9 mov r1, r12 adds r1, 0x4 adds r1, r2, r1 ldrb r3, [r1] mov r1, r12 adds r1, 0x5 adds r2, r1 ldrb r1, [r2] lsls r1, 8 orrs r3, r1 strh r3, [r4] ldr r4, _08039B24 ldrb r2, [r6] lsls r2, 9 mov r1, r12 adds r1, 0x6 adds r1, r2, r1 ldrb r3, [r1] mov r1, r12 adds r1, 0x7 adds r1, r2, r1 ldrb r1, [r1] lsls r1, 8 orrs r3, r1 mov r1, r12 adds r1, 0x8 adds r1, r2, r1 ldrb r1, [r1] lsls r1, 16 orrs r3, r1 mov r1, r12 adds r1, 0x9 adds r2, r1 ldrb r1, [r2] lsls r1, 24 orrs r3, r1 str r3, [r4] ldr r3, _08039B28 ldrb r1, [r6] lsls r1, 9 mov r2, r12 adds r2, 0xA adds r1, r2 ldrb r1, [r1] strb r1, [r3] ldr r4, _08039B2C ldrb r2, [r6] lsls r2, 9 mov r1, r12 adds r1, 0xC adds r1, r2, r1 ldrb r3, [r1] mov r1, r12 adds r1, 0xD adds r2, r1 ldrb r1, [r2] lsls r1, 8 orrs r3, r1 strh r3, [r4] ldr r3, _08039B30 ldrb r2, [r6] lsls r2, 9 mov r1, r12 adds r1, 0x10 adds r2, r1 str r2, [r3] ldr r3, _08039B34 ldrb r1, [r6] lsls r1, 2 adds r1, r3 ldr r2, [r2] str r2, [r1] ldrb r1, [r5] bl sub_8031720 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0 beq _08039B38 bl dp01_tbl4_exec_completed b _08039B52 .align 2, 0 _08039B14: .4byte 0x02024a60 _08039B18: .4byte 0x02023a60 _08039B1C: .4byte 0x0202f7c4 _08039B20: .4byte 0x0202f7bc _08039B24: .4byte 0x0202f7b8 _08039B28: .4byte 0x0202f7be _08039B2C: .4byte 0x0202f7c0 _08039B30: .4byte 0x0202f7b4 _08039B34: .4byte 0x02024e70 _08039B38: ldrb r1, [r6] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 ldr r1, _08039B58 adds r0, r1 strb r2, [r0, 0x4] ldr r1, _08039B5C ldrb r0, [r6] lsls r0, 2 adds r0, r1 ldr r1, _08039B60 str r1, [r0] _08039B52: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08039B58: .4byte 0x02017810 _08039B5C: .4byte 0x03004330 _08039B60: .4byte sub_8039B64 thumb_func_end sub_8039A30 thumb_func_start sub_8039B64 sub_8039B64: @ 8039B64 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} ldr r2, _08039BA8 ldr r5, _08039BAC ldrb r3, [r5] lsls r1, r3, 9 adds r0, r2, 0x1 mov r9, r0 adds r0, r1, r0 ldrb r4, [r0] adds r6, r2, 0x2 mov r8, r6 adds r0, r1, r6 ldrb r0, [r0] lsls r0, 8 orrs r4, r0 adds r2, 0xB adds r1, r2 ldrb r7, [r1] lsls r0, r3, 1 adds r0, r3 lsls r0, 2 ldr r6, _08039BB0 adds r0, r6 ldrb r2, [r0, 0x4] cmp r2, 0x1 beq _08039BF2 cmp r2, 0x1 bgt _08039BB4 cmp r2, 0 beq _08039BBE b _08039CBC .align 2, 0 _08039BA8: .4byte 0x02023a60 _08039BAC: .4byte 0x02024a60 _08039BB0: .4byte 0x02017810 _08039BB4: cmp r2, 0x2 beq _08039C18 cmp r2, 0x3 beq _08039C84 b _08039CBC _08039BBE: lsls r1, r3, 2 adds r0, r6, 0 subs r0, 0x10 adds r1, r0 ldrb r2, [r1] movs r0, 0xC ands r0, r2 cmp r0, 0x4 bne _08039BE2 movs r0, 0x8 orrs r0, r2 strb r0, [r1] ldrb r2, [r5] adds r0, r2, 0 adds r1, r2, 0 movs r3, 0x5 bl move_anim_start_t4 _08039BE2: ldrb r0, [r5] lsls r1, r0, 1 adds r1, r0 lsls r1, 2 adds r1, r6 movs r0, 0x1 strb r0, [r1, 0x4] b _08039CBC _08039BF2: ldrb r1, [r0] movs r0, 0x40 ands r0, r1 cmp r0, 0 bne _08039CBC movs r0, 0 bl sub_80326EC adds r0, r4, 0 bl move_anim_start_t1 ldrb r0, [r5] lsls r1, r0, 1 adds r1, r0 lsls r1, 2 adds r1, r6 movs r0, 0x2 strb r0, [r1, 0x4] b _08039CBC _08039C18: ldr r0, _08039C74 ldr r0, [r0] bl _call_via_r0 ldr r0, _08039C78 ldrb r0, [r0] cmp r0, 0 bne _08039CBC movs r0, 0x1 bl sub_80326EC ldrb r2, [r5] lsls r0, r2, 2 adds r4, r6, 0 subs r4, 0x10 adds r0, r4 ldrb r1, [r0] movs r0, 0x4 ands r0, r1 cmp r0, 0 beq _08039C60 cmp r7, 0x1 bhi _08039C60 adds r0, r2, 0 adds r1, r2, 0 movs r3, 0x6 bl move_anim_start_t4 ldrb r0, [r5] lsls r0, 2 adds r0, r4 ldrb r2, [r0] movs r1, 0x9 negs r1, r1 ands r1, r2 strb r1, [r0] _08039C60: ldr r0, _08039C7C ldrb r1, [r0] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 ldr r1, _08039C80 adds r0, r1 movs r1, 0x3 strb r1, [r0, 0x4] b _08039CBC .align 2, 0 _08039C74: .4byte 0x0202f7ac _08039C78: .4byte 0x0202f7b1 _08039C7C: .4byte 0x02024a60 _08039C80: .4byte 0x02017810 _08039C84: ldrb r1, [r0] movs r0, 0x40 ands r0, r1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0 bne _08039CBC bl sub_8031F24 ldrb r0, [r5] lsls r2, r0, 9 mov r3, r9 adds r1, r2, r3 ldrb r1, [r1] add r2, r8 ldrb r2, [r2] lsls r2, 8 orrs r1, r2 bl sub_80324BC ldrb r1, [r5] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r6 strb r4, [r0, 0x4] bl dp01_tbl4_exec_completed _08039CBC: pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8039B64 thumb_func_start sub_8039CC8 sub_8039CC8: @ 8039CC8 push {r4,lr} sub sp, 0x4 ldr r0, _08039D0C movs r1, 0 strh r1, [r0] ldr r0, _08039D10 strh r1, [r0] ldr r4, _08039D14 ldrb r0, [r4] lsls r0, 9 ldr r1, _08039D18 adds r0, r1 ldrh r0, [r0] bl sub_8120AA8 ldr r0, _08039D1C ldr r1, _08039D20 movs r2, 0xF str r2, [sp] movs r2, 0x90 movs r3, 0x2 bl sub_8002EB0 ldr r1, _08039D24 ldrb r0, [r4] lsls r0, 2 adds r0, r1 ldr r1, _08039D28 str r1, [r0] add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _08039D0C: .4byte 0x030042a4 _08039D10: .4byte 0x030042a0 _08039D14: .4byte 0x02024a60 _08039D18: .4byte 0x02023a62 _08039D1C: .4byte 0x03004210 _08039D20: .4byte 0x020238cc _08039D24: .4byte 0x03004330 _08039D28: .4byte sub_8037C2C thumb_func_end sub_8039CC8 thumb_func_start sub_8039D2C sub_8039D2C: @ 8039D2C push {lr} bl dp01_tbl4_exec_completed pop {r0} bx r0 thumb_func_end sub_8039D2C thumb_func_start sub_8039D38 sub_8039D38: @ 8039D38 push {lr} bl dp01_tbl4_exec_completed pop {r0} bx r0 thumb_func_end sub_8039D38 thumb_func_start sub_8039D44 sub_8039D44: @ 8039D44 push {lr} bl dp01_tbl4_exec_completed pop {r0} bx r0 thumb_func_end sub_8039D44 thumb_func_start sub_8039D50 sub_8039D50: @ 8039D50 push {lr} bl dp01_tbl4_exec_completed pop {r0} bx r0 thumb_func_end sub_8039D50 thumb_func_start sub_8039D5C sub_8039D5C: @ 8039D5C push {lr} bl dp01_tbl4_exec_completed pop {r0} bx r0 thumb_func_end sub_8039D5C thumb_func_start sub_8039D68 sub_8039D68: @ 8039D68 push {lr} bl dp01_tbl4_exec_completed pop {r0} bx r0 thumb_func_end sub_8039D68 thumb_func_start sub_8039D74 sub_8039D74: @ 8039D74 push {lr} bl dp01_tbl4_exec_completed pop {r0} bx r0 thumb_func_end sub_8039D74 thumb_func_start sub_8039D80 sub_8039D80: @ 8039D80 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x4 movs r0, 0 bl load_gfxc_health_bar ldr r3, _08039DF8 ldr r0, _08039DFC mov r9, r0 ldrb r4, [r0] lsls r2, r4, 9 adds r0, r3, 0x2 adds r0, r2, r0 ldrb r1, [r0] adds r3, 0x3 adds r2, r3 ldrb r0, [r2] lsls r0, 8 orrs r1, r0 lsls r1, 16 asrs r7, r1, 16 ldr r0, _08039E00 cmp r7, r0 beq _08039E10 ldr r6, _08039E04 lsls r0, r4, 1 adds r0, r6 ldrh r0, [r0] movs r5, 0x64 muls r0, r5 ldr r4, _08039E08 adds r0, r4 movs r1, 0x3A bl PokemonGetField mov r8, r0 mov r1, r9 ldrb r0, [r1] lsls r0, 1 adds r0, r6 ldrh r0, [r0] muls r0, r5 adds r0, r4 movs r1, 0x39 bl PokemonGetField adds r3, r0, 0 mov r1, r9 ldrb r0, [r1] ldr r1, _08039E0C adds r1, r0, r1 ldrb r1, [r1] str r7, [sp] mov r2, r8 bl sub_8043D84 b _08039E3A .align 2, 0 _08039DF8: .4byte 0x02023a60 _08039DFC: .4byte 0x02024a60 _08039E00: .4byte 0x00007fff _08039E04: .4byte 0x02024a6a _08039E08: .4byte 0x030045c0 _08039E0C: .4byte 0x03004340 _08039E10: ldr r1, _08039E58 lsls r0, r4, 1 adds r0, r1 ldrh r1, [r0] movs r0, 0x64 muls r0, r1 ldr r1, _08039E5C adds r0, r1 movs r1, 0x3A bl PokemonGetField adds r2, r0, 0 mov r1, r9 ldrb r0, [r1] ldr r1, _08039E60 adds r1, r0, r1 ldrb r1, [r1] str r7, [sp] movs r3, 0 bl sub_8043D84 _08039E3A: ldr r1, _08039E64 ldr r0, _08039E68 ldrb r0, [r0] lsls r0, 2 adds r0, r1 ldr r1, _08039E6C str r1, [r0] add sp, 0x4 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08039E58: .4byte 0x02024a6a _08039E5C: .4byte 0x030045c0 _08039E60: .4byte 0x03004340 _08039E64: .4byte 0x03004330 _08039E68: .4byte 0x02024a60 _08039E6C: .4byte sub_8037B24 thumb_func_end sub_8039D80 thumb_func_start sub_8039E70 sub_8039E70: @ 8039E70 push {lr} bl dp01_tbl4_exec_completed pop {r0} bx r0 thumb_func_end sub_8039E70 thumb_func_start sub_8039E7C sub_8039E7C: @ 8039E7C push {r4,lr} ldr r4, _08039ED4 ldrb r0, [r4] bl mplay_80342A4 lsls r0, 24 cmp r0, 0 bne _08039ECC ldr r0, _08039ED8 ldrb r1, [r4] adds r0, r1, r0 ldrb r0, [r0] ldr r2, _08039EDC lsls r1, 1 adds r1, r2 ldrh r2, [r1] movs r1, 0x64 muls r1, r2 ldr r2, _08039EE0 adds r1, r2 movs r2, 0x9 bl sub_8045A5C ldrb r0, [r4] lsls r1, r0, 1 adds r1, r0 lsls r1, 2 ldr r0, _08039EE4 adds r1, r0 ldrb r2, [r1] movs r0, 0x11 negs r0, r0 ands r0, r2 strb r0, [r1] ldr r1, _08039EE8 ldrb r0, [r4] lsls r0, 2 adds r0, r1 ldr r1, _08039EEC str r1, [r0] _08039ECC: pop {r4} pop {r0} bx r0 .align 2, 0 _08039ED4: .4byte 0x02024a60 _08039ED8: .4byte 0x03004340 _08039EDC: .4byte 0x02024a6a _08039EE0: .4byte 0x030045c0 _08039EE4: .4byte 0x02017810 _08039EE8: .4byte 0x03004330 _08039EEC: .4byte sub_8037FAC thumb_func_end sub_8039E7C thumb_func_start sub_8039EF0 sub_8039EF0: @ 8039EF0 push {r4,r5,lr} ldr r5, _08039F48 ldrb r0, [r5] bl mplay_80342A4 lsls r0, 24 cmp r0, 0 bne _08039F40 ldr r4, _08039F4C ldrb r3, [r5] lsls r3, 9 adds r0, r4, 0x1 adds r0, r3, r0 ldrb r0, [r0] adds r1, r4, 0x2 adds r1, r3, r1 ldrb r1, [r1] adds r2, r4, 0x3 adds r2, r3, r2 ldrb r2, [r2] lsls r2, 8 orrs r1, r2 adds r2, r4, 0x4 adds r2, r3, r2 ldrb r2, [r2] lsls r2, 16 orrs r1, r2 adds r4, 0x5 adds r3, r4 ldrb r2, [r3] lsls r2, 24 orrs r1, r2 bl move_anim_start_t2_for_situation ldr r1, _08039F50 ldrb r0, [r5] lsls r0, 2 adds r0, r1 ldr r1, _08039F54 str r1, [r0] _08039F40: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08039F48: .4byte 0x02024a60 _08039F4C: .4byte 0x02023a60 _08039F50: .4byte 0x03004330 _08039F54: .4byte sub_8037FAC thumb_func_end sub_8039EF0 thumb_func_start sub_8039F58 sub_8039F58: @ 8039F58 push {lr} bl dp01_tbl4_exec_completed pop {r0} bx r0 thumb_func_end sub_8039F58 thumb_func_start sub_8039F64 sub_8039F64: @ 8039F64 push {lr} bl dp01_tbl4_exec_completed pop {r0} bx r0 thumb_func_end sub_8039F64 thumb_func_start sub_8039F70 sub_8039F70: @ 8039F70 push {lr} bl dp01_tbl4_exec_completed pop {r0} bx r0 thumb_func_end sub_8039F70 thumb_func_start sub_8039F7C sub_8039F7C: @ 8039F7C push {lr} bl dp01_tbl4_exec_completed pop {r0} bx r0 thumb_func_end sub_8039F7C thumb_func_start sub_8039F88 sub_8039F88: @ 8039F88 push {lr} bl dp01_tbl4_exec_completed pop {r0} bx r0 thumb_func_end sub_8039F88 thumb_func_start sub_8039F94 sub_8039F94: @ 8039F94 push {lr} bl dp01_tbl4_exec_completed pop {r0} bx r0 thumb_func_end sub_8039F94 thumb_func_start sub_8039FA0 sub_8039FA0: @ 8039FA0 push {lr} bl dp01_tbl4_exec_completed pop {r0} bx r0 thumb_func_end sub_8039FA0 thumb_func_start sub_8039FAC sub_8039FAC: @ 8039FAC push {lr} bl dp01_tbl4_exec_completed pop {r0} bx r0 thumb_func_end sub_8039FAC thumb_func_start sub_8039FB8 sub_8039FB8: @ 8039FB8 push {lr} bl dp01_tbl4_exec_completed pop {r0} bx r0 thumb_func_end sub_8039FB8 thumb_func_start sub_8039FC4 sub_8039FC4: @ 8039FC4 push {lr} ldr r2, _08039FDC ldrb r1, [r2] movs r0, 0x80 negs r0, r0 ands r0, r1 strb r0, [r2] bl dp01_tbl4_exec_completed pop {r0} bx r0 .align 2, 0 _08039FDC: .4byte 0x020238c8 thumb_func_end sub_8039FC4 thumb_func_start sub_8039FE0 sub_8039FE0: @ 8039FE0 push {lr} ldr r3, _0803A00C ldr r1, _0803A010 ldr r0, _0803A014 ldrb r0, [r0] lsls r0, 9 adds r1, 0x1 adds r0, r1 ldrb r0, [r0] movs r1, 0x7F ands r1, r0 ldrb r2, [r3] movs r0, 0x80 negs r0, r0 ands r0, r2 orrs r0, r1 strb r0, [r3] bl dp01_tbl4_exec_completed pop {r0} bx r0 .align 2, 0 _0803A00C: .4byte 0x020238c8 _0803A010: .4byte 0x02023a60 _0803A014: .4byte 0x02024a60 thumb_func_end sub_8039FE0 thumb_func_start sub_803A018 sub_803A018: @ 803A018 push {lr} ldr r2, _0803A02C ldrb r1, [r2] movs r0, 0x7F ands r0, r1 strb r0, [r2] bl dp01_tbl4_exec_completed pop {r0} bx r0 .align 2, 0 _0803A02C: .4byte 0x020238c8 thumb_func_end sub_803A018 thumb_func_start sub_803A030 sub_803A030: @ 803A030 push {lr} ldr r3, _0803A054 ldr r1, [r3] lsls r1, 24 lsrs r1, 31 movs r0, 0x1 eors r1, r0 lsls r1, 7 ldrb r2, [r3] movs r0, 0x7F ands r0, r2 orrs r0, r1 strb r0, [r3] bl dp01_tbl4_exec_completed pop {r0} bx r0 .align 2, 0 _0803A054: .4byte 0x020238c8 thumb_func_end sub_803A030 thumb_func_start dp01t_29_4_blink dp01t_29_4_blink: @ 803A058 push {r4,lr} ldr r3, _0803A080 ldr r2, _0803A084 ldr r4, _0803A088 ldrb r0, [r4] adds r0, r2 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 adds r0, 0x3E ldrb r0, [r0] lsls r0, 29 cmp r0, 0 bge _0803A08C bl dp01_tbl4_exec_completed b _0803A0B6 .align 2, 0 _0803A080: .4byte 0x02020004 _0803A084: .4byte 0x02024be0 _0803A088: .4byte 0x02024a60 _0803A08C: ldr r1, _0803A0BC movs r0, 0x1 strb r0, [r1] ldrb r0, [r4] adds r0, r2 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 movs r1, 0 strh r1, [r0, 0x30] ldrb r0, [r4] bl sub_8047858 ldr r1, _0803A0C0 ldrb r0, [r4] lsls r0, 2 adds r0, r1 ldr r1, _0803A0C4 str r1, [r0] _0803A0B6: pop {r4} pop {r0} bx r0 .align 2, 0 _0803A0BC: .4byte 0x02024e6d _0803A0C0: .4byte 0x03004330 _0803A0C4: .4byte dp01t_0F_4_move_anim thumb_func_end dp01t_29_4_blink thumb_func_start sub_803A0C8 sub_803A0C8: @ 803A0C8 push {lr} bl dp01_tbl4_exec_completed pop {r0} bx r0 thumb_func_end sub_803A0C8 thumb_func_start sub_803A0D4 sub_803A0D4: @ 803A0D4 push {r4,lr} ldr r4, _0803A110 ldrb r0, [r4] bl battle_side_get_owner lsls r0, 24 movs r3, 0x3F cmp r0, 0 bne _0803A0E8 movs r3, 0xC0 _0803A0E8: ldr r2, _0803A114 ldrb r1, [r4] lsls r1, 9 adds r0, r2, 0x1 adds r0, r1, r0 ldrb r0, [r0] adds r2, 0x2 adds r1, r2 ldrb r1, [r1] lsls r1, 8 orrs r0, r1 lsls r1, r3, 24 asrs r1, 24 bl audio_play_and_stuff bl dp01_tbl4_exec_completed pop {r4} pop {r0} bx r0 .align 2, 0 _0803A110: .4byte 0x02024a60 _0803A114: .4byte 0x02023a60 thumb_func_end sub_803A0D4 thumb_func_start sub_803A118 sub_803A118: @ 803A118 push {lr} ldr r2, _0803A140 ldr r0, _0803A144 ldrb r1, [r0] lsls r1, 9 adds r0, r2, 0x1 adds r0, r1, r0 ldrb r0, [r0] adds r2, 0x2 adds r1, r2 ldrb r1, [r1] lsls r1, 8 orrs r0, r1 bl fanfare_play bl dp01_tbl4_exec_completed pop {r0} bx r0 .align 2, 0 _0803A140: .4byte 0x02023a60 _0803A144: .4byte 0x02024a60 thumb_func_end sub_803A118 thumb_func_start sub_803A148 sub_803A148: @ 803A148 push {lr} ldr r1, _0803A178 ldr r0, _0803A17C ldrb r0, [r0] lsls r0, 1 adds r0, r1 ldrh r1, [r0] movs r0, 0x64 muls r0, r1 ldr r1, _0803A180 adds r0, r1 movs r1, 0xB bl PokemonGetField lsls r0, 16 lsrs r0, 16 movs r1, 0x19 movs r2, 0x5 bl sub_80750B4 bl dp01_tbl4_exec_completed pop {r0} bx r0 .align 2, 0 _0803A178: .4byte 0x02024a6a _0803A17C: .4byte 0x02024a60 _0803A180: .4byte 0x030045c0 thumb_func_end sub_803A148 thumb_func_start dp01t_2E_4_battle_intro dp01t_2E_4_battle_intro: @ 803A184 push {lr} ldr r1, _0803A1AC ldr r0, _0803A1B0 ldrb r0, [r0] lsls r0, 9 adds r1, 0x1 adds r0, r1 ldrb r0, [r0] bl sub_80E43C0 ldr r2, _0803A1B4 ldrh r0, [r2] movs r1, 0x1 orrs r0, r1 strh r0, [r2] bl dp01_tbl4_exec_completed pop {r0} bx r0 .align 2, 0 _0803A1AC: .4byte 0x02023a60 _0803A1B0: .4byte 0x02024a60 _0803A1B4: .4byte 0x02024de8 thumb_func_end dp01t_2E_4_battle_intro thumb_func_start sub_803A1B8 sub_803A1B8: @ 803A1B8 push {r4-r6,lr} ldr r5, _0803A294 ldr r6, _0803A298 ldrb r0, [r6] adds r0, r5 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r4, _0803A29C adds r0, r4 bl oamt_add_pos2_onto_pos1 ldrb r0, [r6] adds r0, r5 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 movs r1, 0x23 strh r1, [r0, 0x2E] ldrb r0, [r6] adds r0, r5 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 movs r1, 0x8C lsls r1, 1 strh r1, [r0, 0x32] ldrb r0, [r6] adds r0, r5 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 ldrh r1, [r0, 0x22] strh r1, [r0, 0x36] ldrb r0, [r6] adds r0, r5 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r1, r4, 0 adds r1, 0x1C adds r0, r1 ldr r1, _0803A2A0 str r1, [r0] ldrb r0, [r6] adds r0, r5 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 ldr r1, _0803A2A4 bl oamt_set_x3A_32 ldr r0, _0803A2A8 movs r1, 0x5 bl CreateTask lsls r0, 24 lsrs r0, 24 ldr r4, _0803A2AC lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r4 ldrb r0, [r6] strh r0, [r1, 0x8] ldrb r3, [r6] lsls r0, r3, 1 adds r0, r3 lsls r0, 2 ldr r2, _0803A2B0 adds r0, r2 ldrb r1, [r0] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _0803A276 ldr r0, _0803A2B4 adds r0, r3, r0 ldrb r1, [r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r4 ldr r1, _0803A2B8 str r1, [r0] _0803A276: adds r2, 0x30 ldrb r0, [r2, 0x9] movs r1, 0x1 orrs r0, r1 strb r0, [r2, 0x9] ldr r1, _0803A2BC ldrb r0, [r6] lsls r0, 2 adds r0, r1 ldr r1, _0803A2C0 str r1, [r0] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0803A294: .4byte 0x02024be0 _0803A298: .4byte 0x02024a60 _0803A29C: .4byte 0x02020004 _0803A2A0: .4byte sub_8078B34 _0803A2A4: .4byte sub_803A3A8 _0803A2A8: .4byte sub_803A2C4 _0803A2AC: .4byte 0x03004b20 _0803A2B0: .4byte 0x02017810 _0803A2B4: .4byte 0x02024e68 _0803A2B8: .4byte sub_8044CA0 _0803A2BC: .4byte 0x03004330 _0803A2C0: .4byte nullsub_47 thumb_func_end sub_803A1B8 thumb_func_start sub_803A2C4 sub_803A2C4: @ 803A2C4 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} lsls r0, 24 lsrs r0, 24 mov r8, r0 ldr r7, _0803A31C ldrb r0, [r7] mov r9, r0 ldr r1, _0803A320 mov r2, r8 lsls r0, r2, 2 add r0, r8 lsls r0, 3 adds r0, r1 ldrh r0, [r0, 0x8] strb r0, [r7] bl battle_type_is_double lsls r0, 24 cmp r0, 0 beq _0803A2FE ldr r0, _0803A324 ldrh r1, [r0] movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _0803A330 _0803A2FE: ldr r0, _0803A328 ldrb r1, [r7] lsls r2, r1, 9 adds r0, 0x1 adds r2, r0 ldr r0, _0803A32C lsls r1, 1 adds r1, r0 ldrh r0, [r1] strb r0, [r2] ldrb r0, [r7] movs r1, 0 bl sub_8039430 b _0803A370 .align 2, 0 _0803A31C: .4byte 0x02024a60 _0803A320: .4byte 0x03004b20 _0803A324: .4byte 0x020239f8 _0803A328: .4byte 0x02023a60 _0803A32C: .4byte 0x02024a6a _0803A330: ldr r4, _0803A394 ldrb r0, [r7] lsls r1, r0, 9 adds r4, 0x1 adds r1, r4 ldr r6, _0803A398 lsls r0, 1 adds r0, r6 ldrh r0, [r0] strb r0, [r1] ldrb r0, [r7] movs r1, 0 bl sub_8039430 ldrb r0, [r7] movs r5, 0x2 eors r0, r5 strb r0, [r7] ldrb r0, [r7] lsls r1, r0, 9 adds r1, r4 lsls r0, 1 adds r0, r6 ldrh r0, [r0] strb r0, [r1] ldrb r0, [r7] movs r1, 0 bl sub_8039430 ldrb r0, [r7] eors r0, r5 strb r0, [r7] _0803A370: ldr r1, _0803A39C ldr r2, _0803A3A0 ldrb r0, [r2] lsls r0, 2 adds r0, r1 ldr r1, _0803A3A4 str r1, [r0] mov r0, r9 strb r0, [r2] mov r0, r8 bl DestroyTask pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0803A394: .4byte 0x02023a60 _0803A398: .4byte 0x02024a6a _0803A39C: .4byte 0x03004330 _0803A3A0: .4byte 0x02024a60 _0803A3A4: .4byte sub_8037840 thumb_func_end sub_803A2C4 thumb_func_start sub_803A3A8 sub_803A3A8: @ 803A3A8 push {r4,lr} adds r4, r0, 0 ldrh r0, [r4, 0x6] bl sub_8031B74 ldrh r0, [r4, 0x38] ldr r1, _0803A3D4 ands r1, r0 ldrh r2, [r4, 0x4] ldr r0, _0803A3D8 ands r0, r2 orrs r0, r1 strh r0, [r4, 0x4] adds r0, r4, 0 bl FreeSpriteOamMatrix adds r0, r4, 0 bl DestroySprite pop {r4} pop {r0} bx r0 .align 2, 0 _0803A3D4: .4byte 0x000003ff _0803A3D8: .4byte 0xfffffc00 thumb_func_end sub_803A3A8 thumb_func_start sub_803A3DC sub_803A3DC: @ 803A3DC push {r4-r6,lr} ldr r1, _0803A404 ldr r0, _0803A408 ldrb r2, [r0] lsls r0, r2, 9 adds r1, 0x1 adds r0, r1 ldrb r0, [r0] cmp r0, 0 beq _0803A40C adds r0, r2, 0 bl battle_side_get_owner lsls r0, 24 cmp r0, 0 bne _0803A40C bl dp01_tbl4_exec_completed b _0803A4C6 .align 2, 0 _0803A404: .4byte 0x02023a60 _0803A408: .4byte 0x02024a60 _0803A40C: ldr r3, _0803A45C ldrb r1, [r3] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 ldr r4, _0803A460 adds r0, r4 ldrb r1, [r0] movs r2, 0x1 orrs r1, r2 strb r1, [r0] ldr r1, _0803A464 ldrb r2, [r3] lsls r0, r2, 9 adds r1, 0x2 adds r0, r1 ldrb r0, [r0] adds r6, r3, 0 cmp r0, 0 beq _0803A470 lsls r0, r2, 1 adds r0, r2 lsls r0, 2 adds r3, r0, r4 ldrb r2, [r3, 0x1] lsls r1, r2, 26 lsrs r0, r1, 27 cmp r0, 0x1 bhi _0803A468 adds r0, 0x1 movs r1, 0x1F ands r0, r1 lsls r0, 1 movs r1, 0x3F negs r1, r1 ands r1, r2 orrs r1, r0 strb r1, [r3, 0x1] b _0803A4C6 .align 2, 0 _0803A45C: .4byte 0x02024a60 _0803A460: .4byte 0x02017810 _0803A464: .4byte 0x02023a60 _0803A468: movs r0, 0x3F negs r0, r0 ands r0, r2 strb r0, [r3, 0x1] _0803A470: adds r5, r6, 0 ldrb r0, [r5] lsls r3, r0, 9 ldr r4, _0803A4CC adds r1, r3, r4 subs r2, r4, 0x3 adds r2, r3, r2 ldrb r2, [r2] subs r4, 0x2 adds r3, r4 ldrb r3, [r3] bl sub_8044804 ldr r2, _0803A4D0 ldrb r1, [r5] adds r1, r2 movs r2, 0 strb r0, [r1] ldrb r1, [r5] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 ldr r3, _0803A4D4 adds r0, r3 strb r2, [r0, 0x5] ldrb r1, [r5] lsls r0, r1, 9 adds r0, r4 ldrb r0, [r0] cmp r0, 0 beq _0803A4BA lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r3 movs r1, 0x5D strb r1, [r0, 0x5] _0803A4BA: ldr r0, _0803A4D8 ldrb r1, [r6] lsls r1, 2 adds r1, r0 ldr r0, _0803A4DC str r0, [r1] _0803A4C6: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0803A4CC: .4byte 0x02023a64 _0803A4D0: .4byte 0x02024e68 _0803A4D4: .4byte 0x02017810 _0803A4D8: .4byte 0x03004330 _0803A4DC: .4byte sub_803A4E0 thumb_func_end sub_803A3DC thumb_func_start sub_803A4E0 sub_803A4E0: @ 803A4E0 push {r4,lr} ldr r4, _0803A518 ldrb r1, [r4] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 ldr r3, _0803A51C adds r0, r3 ldrb r1, [r0, 0x5] adds r2, r1, 0x1 strb r2, [r0, 0x5] lsls r1, 24 lsrs r1, 24 cmp r1, 0x5C bls _0803A510 ldrb r0, [r4] lsls r1, r0, 1 adds r1, r0 lsls r1, 2 adds r1, r3 movs r0, 0 strb r0, [r1, 0x5] bl dp01_tbl4_exec_completed _0803A510: pop {r4} pop {r0} bx r0 .align 2, 0 _0803A518: .4byte 0x02024a60 _0803A51C: .4byte 0x02017810 thumb_func_end sub_803A4E0 thumb_func_start sub_803A520 sub_803A520: @ 803A520 push {lr} ldr r0, _0803A558 ldrb r3, [r0] lsls r0, r3, 1 adds r0, r3 lsls r0, 2 ldr r1, _0803A55C adds r0, r1 ldrb r1, [r0] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _0803A54E ldr r2, _0803A560 ldr r0, _0803A564 adds r0, r3, r0 ldrb r1, [r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r2 ldr r1, _0803A568 str r1, [r0] _0803A54E: bl dp01_tbl4_exec_completed pop {r0} bx r0 .align 2, 0 _0803A558: .4byte 0x02024a60 _0803A55C: .4byte 0x02017810 _0803A560: .4byte 0x03004b20 _0803A564: .4byte 0x02024e68 _0803A568: .4byte sub_8044CA0 thumb_func_end sub_803A520 thumb_func_start sub_803A56C sub_803A56C: @ 803A56C push {lr} bl dp01_tbl4_exec_completed pop {r0} bx r0 thumb_func_end sub_803A56C thumb_func_start sub_803A578 sub_803A578: @ 803A578 push {r4,lr} ldr r4, _0803A5C8 ldrb r0, [r4] bl sub_8078874 lsls r0, 24 cmp r0, 0 beq _0803A5BE ldr r3, _0803A5CC ldr r0, _0803A5D0 ldrb r1, [r4] adds r0, r1, r0 ldrb r0, [r0] lsls r2, r0, 4 adds r2, r0 lsls r2, 2 adds r2, r3 ldr r0, _0803A5D4 lsls r1, 9 adds r0, 0x1 adds r1, r0 adds r2, 0x3E movs r0, 0x1 ldrb r1, [r1] ands r1, r0 lsls r1, 2 ldrb r3, [r2] movs r0, 0x5 negs r0, r0 ands r0, r3 orrs r0, r1 strb r0, [r2] ldrb r0, [r4] bl sub_8031F88 _0803A5BE: bl dp01_tbl4_exec_completed pop {r4} pop {r0} bx r0 .align 2, 0 _0803A5C8: .4byte 0x02024a60 _0803A5CC: .4byte 0x02020004 _0803A5D0: .4byte 0x02024be0 _0803A5D4: .4byte 0x02023a60 thumb_func_end sub_803A578 thumb_func_start bx_exec_buffer_A_ch0_tbl4 bx_exec_buffer_A_ch0_tbl4: @ 803A5D8 push {r4-r6,lr} sub sp, 0x4 ldr r6, _0803A61C ldrb r0, [r6] bl mplay_80342A4 lsls r0, 24 cmp r0, 0 bne _0803A630 ldr r5, _0803A620 ldrb r2, [r6] lsls r1, r2, 9 adds r0, r5, 0x1 adds r0, r1, r0 ldrb r3, [r0] adds r0, r5, 0x2 adds r0, r1, r0 ldrb r4, [r0] adds r5, 0x3 adds r1, r5 ldrb r0, [r1] lsls r0, 8 orrs r4, r0 str r4, [sp] adds r0, r2, 0 adds r1, r2, 0 bl move_anim_start_t3 lsls r0, 24 cmp r0, 0 beq _0803A624 bl dp01_tbl4_exec_completed b _0803A630 .align 2, 0 _0803A61C: .4byte 0x02024a60 _0803A620: .4byte 0x02023a60 _0803A624: ldr r0, _0803A638 ldrb r1, [r6] lsls r1, 2 adds r1, r0 ldr r0, _0803A63C str r0, [r1] _0803A630: add sp, 0x4 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0803A638: .4byte 0x03004330 _0803A63C: .4byte sub_8037FD8 thumb_func_end bx_exec_buffer_A_ch0_tbl4 thumb_func_start sub_803A640 sub_803A640: @ 803A640 push {lr} bl dp01_tbl4_exec_completed pop {r0} bx r0 thumb_func_end sub_803A640 thumb_func_start sub_803A64C sub_803A64C: @ 803A64C push {lr} bl dp01_tbl4_exec_completed pop {r0} bx r0 thumb_func_end sub_803A64C thumb_func_start sub_803A658 sub_803A658: @ 803A658 push {lr} ldr r1, _0803A674 ldr r0, _0803A678 ldrb r0, [r0] lsls r0, 9 adds r1, 0x1 adds r0, r1 ldrb r2, [r0] cmp r2, 0x3 bne _0803A680 ldr r0, _0803A67C strb r2, [r0] b _0803A688 .align 2, 0 _0803A674: .4byte 0x02023a60 _0803A678: .4byte 0x02024a60 _0803A67C: .4byte 0x02024d26 _0803A680: ldr r0, _0803A6AC movs r1, 0x3 eors r1, r2 strb r1, [r0] _0803A688: movs r0, 0x5 bl sub_8074D28 movs r0, 0x3 bl BeginFastPaletteFade bl dp01_tbl4_exec_completed ldr r1, _0803A6B0 ldr r0, _0803A6B4 ldrb r0, [r0] lsls r0, 2 adds r0, r1 ldr r1, _0803A6B8 str r1, [r0] pop {r0} bx r0 .align 2, 0 _0803A6AC: .4byte 0x02024d26 _0803A6B0: .4byte 0x03004330 _0803A6B4: .4byte 0x02024a60 _0803A6B8: .4byte sub_8037F34 thumb_func_end sub_803A658 thumb_func_start nullsub_48 nullsub_48: @ 803A6BC bx lr thumb_func_end nullsub_48 thumb_func_start zero_pokemon_boxed_data zero_pokemon_boxed_data: @ 803A6C0 push {lr} adds r2, r0, 0 movs r1, 0 movs r3, 0 _0803A6C8: adds r0, r2, r1 strb r3, [r0] adds r1, 0x1 cmp r1, 0x4F bls _0803A6C8 pop {r0} bx r0 thumb_func_end zero_pokemon_boxed_data thumb_func_start zero_pokemon_struct zero_pokemon_struct: @ 803A6D8 push {r4,lr} sub sp, 0x4 adds r4, r0, 0 bl zero_pokemon_boxed_data movs r0, 0 str r0, [sp] adds r0, r4, 0 movs r1, 0x37 mov r2, sp bl pokemon_setattr adds r0, r4, 0 movs r1, 0x38 mov r2, sp bl pokemon_setattr adds r0, r4, 0 movs r1, 0x39 mov r2, sp bl pokemon_setattr adds r0, r4, 0 movs r1, 0x3A mov r2, sp bl pokemon_setattr adds r0, r4, 0 movs r1, 0x3B mov r2, sp bl pokemon_setattr adds r0, r4, 0 movs r1, 0x3C mov r2, sp bl pokemon_setattr adds r0, r4, 0 movs r1, 0x3D mov r2, sp bl pokemon_setattr adds r0, r4, 0 movs r1, 0x3E mov r2, sp bl pokemon_setattr adds r0, r4, 0 movs r1, 0x3F mov r2, sp bl pokemon_setattr movs r0, 0xFF str r0, [sp] adds r0, r4, 0 movs r1, 0x40 mov r2, sp bl pokemon_setattr add sp, 0x4 pop {r4} pop {r0} bx r0 thumb_func_end zero_pokemon_struct thumb_func_start zero_player_party_data zero_player_party_data: @ 803A758 push {r4,r5,lr} ldr r4, _0803A774 movs r0, 0xFA lsls r0, 1 adds r5, r4, r0 _0803A762: adds r0, r4, 0 bl zero_pokemon_struct adds r4, 0x64 cmp r4, r5 ble _0803A762 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0803A774: .4byte 0x03004360 thumb_func_end zero_player_party_data thumb_func_start zero_enemy_party_data zero_enemy_party_data: @ 803A778 push {r4,r5,lr} ldr r4, _0803A794 movs r0, 0xFA lsls r0, 1 adds r5, r4, r0 _0803A782: adds r0, r4, 0 bl zero_pokemon_struct adds r4, 0x64 cmp r4, r5 ble _0803A782 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0803A794: .4byte 0x030045c0 thumb_func_end zero_enemy_party_data thumb_func_start create_pokemon_set_level create_pokemon_set_level: @ 803A798 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x1C mov r8, r0 adds r6, r1, 0 ldr r4, [sp, 0x34] ldr r7, [sp, 0x38] ldr r5, [sp, 0x3C] lsls r6, 16 lsrs r6, 16 add r0, sp, 0x10 strb r2, [r0] lsls r3, 24 lsrs r3, 24 lsls r4, 24 lsrs r4, 24 lsls r5, 24 lsrs r5, 24 mov r0, r8 str r3, [sp, 0x18] bl zero_pokemon_struct str r4, [sp] str r7, [sp, 0x4] str r5, [sp, 0x8] ldr r0, [sp, 0x40] str r0, [sp, 0xC] mov r0, r8 adds r1, r6, 0 add r2, sp, 0x10 ldrb r2, [r2] ldr r3, [sp, 0x18] bl create_pokemon mov r0, r8 movs r1, 0x38 add r2, sp, 0x10 bl pokemon_setattr movs r0, 0xFF str r0, [sp, 0x14] add r2, sp, 0x14 mov r0, r8 movs r1, 0x40 bl pokemon_setattr mov r0, r8 bl pokemon_calc_effective_stats add sp, 0x1C pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 thumb_func_end create_pokemon_set_level thumb_func_start create_pokemon create_pokemon: @ 803A808 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x20 adds r7, r0, 0 ldr r4, [sp, 0x40] ldr r0, [sp, 0x48] movs r5, 0xE add r5, sp strh r1, [r5] add r6, sp, 0x10 strb r2, [r6] mov r5, sp adds r5, 0x11 strb r3, [r5] lsls r4, 24 lsrs r4, 24 lsls r0, 24 lsrs r0, 24 mov r10, r0 adds r0, r7, 0 bl zero_pokemon_boxed_data cmp r4, 0 beq _0803A844 ldr r0, [sp, 0x44] str r0, [sp, 0x14] b _0803A858 _0803A844: bl Random adds r4, r0, 0 bl Random lsls r4, 16 lsrs r4, 16 lsls r0, 16 orrs r4, r0 str r4, [sp, 0x14] _0803A858: add r2, sp, 0x14 adds r0, r7, 0 movs r1, 0 bl PokemonSetEncryptedField add r0, sp, 0x18 mov r9, r0 add r5, sp, 0xC mov r1, r10 cmp r1, 0x2 bne _0803A8B0 ldr r2, _0803A8A8 mov r8, r2 ldr r6, _0803A8AC _0803A874: bl Random adds r4, r0, 0 bl Random lsls r4, 16 lsrs r4, 16 lsls r0, 16 orrs r4, r0 str r4, [sp, 0x18] adds r1, r4, 0 mov r3, r8 ands r1, r3 lsrs r1, 16 ands r4, r6 eors r1, r4 ldr r2, [sp, 0x14] adds r0, r2, 0 ands r0, r3 lsrs r0, 16 eors r1, r0 ands r2, r6 eors r1, r2 cmp r1, 0x7 bls _0803A874 b _0803A8D4 .align 2, 0 _0803A8A8: .4byte 0xffff0000 _0803A8AC: .4byte 0x0000ffff _0803A8B0: mov r0, r10 cmp r0, 0x1 bne _0803A8BC ldr r0, [sp, 0x4C] str r0, [sp, 0x18] b _0803A8D4 _0803A8BC: ldr r2, _0803AA00 ldrb r1, [r2, 0xA] ldrb r0, [r2, 0xB] lsls r0, 8 orrs r1, r0 ldrb r0, [r2, 0xC] lsls r0, 16 orrs r1, r0 ldrb r0, [r2, 0xD] lsls r0, 24 orrs r1, r0 str r1, [sp, 0x18] _0803A8D4: adds r0, r7, 0 movs r1, 0x1 mov r2, r9 bl PokemonSetEncryptedField adds r0, r7, 0 bl pokemon_calc_checksum strh r0, [r5] adds r0, r7, 0 movs r1, 0x9 adds r2, r5, 0 bl PokemonSetEncryptedField adds r0, r7, 0 bl pokemon_encrypt mov r0, sp ldrh r1, [r0, 0xE] bl GetSpeciesName adds r0, r7, 0 movs r1, 0x2 mov r2, sp bl PokemonSetEncryptedField ldr r2, _0803AA04 adds r0, r7, 0 movs r1, 0x3 bl PokemonSetEncryptedField ldr r5, _0803AA00 adds r0, r7, 0 movs r1, 0x7 adds r2, r5, 0 bl PokemonSetEncryptedField adds r0, r7, 0 movs r1, 0xB mov r2, sp adds r2, 0xE bl PokemonSetEncryptedField ldr r4, _0803AA08 mov r2, sp ldrh r1, [r2, 0xE] lsls r0, r1, 3 subs r0, r1 lsls r0, 2 adds r0, r4 ldrb r1, [r0, 0x13] movs r0, 0xCA lsls r0, 1 adds r2, r1, 0 muls r2, r0 mov r3, sp ldrb r0, [r3, 0x10] lsls r0, 2 ldr r1, _0803AA0C adds r0, r1 adds r2, r0 adds r0, r7, 0 movs r1, 0x19 bl PokemonSetEncryptedField mov r1, sp ldrh r0, [r1, 0xE] lsls r2, r0, 3 subs r2, r0 lsls r2, 2 adds r4, 0x12 adds r2, r4 adds r0, r7, 0 movs r1, 0x20 bl PokemonSetEncryptedField bl sav1_map_get_name lsls r0, 24 lsrs r0, 24 str r0, [sp, 0x18] adds r0, r7, 0 movs r1, 0x23 mov r2, r9 bl PokemonSetEncryptedField adds r0, r7, 0 movs r1, 0x24 add r2, sp, 0x10 bl PokemonSetEncryptedField ldr r2, _0803AA10 adds r0, r7, 0 movs r1, 0x25 bl PokemonSetEncryptedField movs r0, 0x4 str r0, [sp, 0x18] adds r0, r7, 0 movs r1, 0x26 mov r2, r9 bl PokemonSetEncryptedField adds r5, 0x8 adds r0, r7, 0 movs r1, 0x31 adds r2, r5, 0 bl PokemonSetEncryptedField mov r2, sp ldrb r0, [r2, 0x11] cmp r0, 0x1F bhi _0803AA14 adds r0, r7, 0 movs r1, 0x27 adds r2, 0x11 bl PokemonSetEncryptedField adds r0, r7, 0 movs r1, 0x28 mov r2, sp adds r2, 0x11 bl PokemonSetEncryptedField adds r0, r7, 0 movs r1, 0x29 mov r2, sp adds r2, 0x11 bl PokemonSetEncryptedField adds r0, r7, 0 movs r1, 0x2A mov r2, sp adds r2, 0x11 bl PokemonSetEncryptedField adds r0, r7, 0 movs r1, 0x2B mov r2, sp adds r2, 0x11 bl PokemonSetEncryptedField adds r0, r7, 0 movs r1, 0x2C mov r2, sp adds r2, 0x11 bl PokemonSetEncryptedField b _0803AA9C .align 2, 0 _0803AA00: .4byte 0x02024ea4 _0803AA04: .4byte gGameLanguage _0803AA08: .4byte gBaseStats _0803AA0C: .4byte gExperienceTables _0803AA10: .4byte gGameVersion _0803AA14: bl Random lsls r0, 16 lsrs r0, 16 str r0, [sp, 0x18] movs r3, 0x1F mov r8, r3 ands r0, r3 str r0, [sp, 0x1C] add r4, sp, 0x1C adds r0, r7, 0 movs r1, 0x27 adds r2, r4, 0 bl PokemonSetEncryptedField ldr r0, [sp, 0x18] movs r6, 0xF8 lsls r6, 2 ands r0, r6 lsrs r0, 5 str r0, [sp, 0x1C] adds r0, r7, 0 movs r1, 0x28 adds r2, r4, 0 bl PokemonSetEncryptedField ldr r0, [sp, 0x18] movs r5, 0xF8 lsls r5, 7 ands r0, r5 lsrs r0, 10 str r0, [sp, 0x1C] adds r0, r7, 0 movs r1, 0x29 adds r2, r4, 0 bl PokemonSetEncryptedField bl Random lsls r0, 16 lsrs r0, 16 str r0, [sp, 0x18] mov r1, r8 ands r0, r1 str r0, [sp, 0x1C] adds r0, r7, 0 movs r1, 0x2A adds r2, r4, 0 bl PokemonSetEncryptedField ldr r0, [sp, 0x18] ands r0, r6 lsrs r0, 5 str r0, [sp, 0x1C] adds r0, r7, 0 movs r1, 0x2B adds r2, r4, 0 bl PokemonSetEncryptedField ldr r0, [sp, 0x18] ands r0, r5 lsrs r0, 10 str r0, [sp, 0x1C] adds r0, r7, 0 movs r1, 0x2C adds r2, r4, 0 bl PokemonSetEncryptedField _0803AA9C: ldr r2, _0803AAD8 mov r3, sp ldrh r1, [r3, 0xE] lsls r0, r1, 3 subs r0, r1 lsls r0, 2 adds r0, r2 ldrb r0, [r0, 0x17] cmp r0, 0 beq _0803AAC2 ldr r0, [sp, 0x14] movs r1, 0x1 ands r0, r1 str r0, [sp, 0x18] adds r0, r7, 0 movs r1, 0x2E mov r2, r9 bl PokemonSetEncryptedField _0803AAC2: adds r0, r7, 0 bl sub_803B720 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 _0803AAD8: .4byte gBaseStats thumb_func_end create_pokemon thumb_func_start pokemon_make_with_nature pokemon_make_with_nature: @ 803AADC push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x10 mov r9, r0 ldr r0, [sp, 0x2C] lsls r1, 16 lsrs r1, 16 mov r8, r1 lsls r2, 24 lsrs r7, r2, 24 lsls r3, 24 lsrs r6, r3, 24 lsls r0, 24 lsrs r5, r0, 24 _0803AAFC: bl Random adds r4, r0, 0 bl Random lsls r4, 16 lsrs r4, 16 lsls r0, 16 orrs r4, r0 adds r0, r4, 0 bl GetNatureFromPersonality lsls r0, 24 lsrs r0, 24 cmp r5, r0 bne _0803AAFC movs r0, 0x1 str r0, [sp] str r4, [sp, 0x4] movs r0, 0 str r0, [sp, 0x8] str r0, [sp, 0xC] mov r0, r9 mov r1, r8 adds r2, r7, 0 adds r3, r6, 0 bl create_pokemon_set_level add sp, 0x10 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 thumb_func_end pokemon_make_with_nature thumb_func_start unref_sub_803AB44 unref_sub_803AB44: @ 803AB44 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x18 str r0, [sp, 0x10] ldr r4, [sp, 0x38] ldr r5, [sp, 0x3C] ldr r0, [sp, 0x40] lsls r1, 16 lsrs r7, r1, 16 lsls r2, 24 lsrs r2, 24 str r2, [sp, 0x14] lsls r3, 24 lsrs r3, 24 mov r10, r3 lsls r4, 24 lsrs r4, 24 mov r8, r4 lsls r5, 24 lsrs r6, r5, 24 lsls r0, 24 lsrs r1, r0, 24 mov r9, r1 movs r1, 0xFF lsls r1, 24 adds r0, r1 lsrs r0, 24 cmp r0, 0x1B bhi _0803ABEA _0803AB84: bl Random adds r4, r0, 0 bl Random lsls r4, 16 lsrs r4, 16 lsls r0, 16 orrs r4, r0 movs r0, 0xC0 lsls r0, 18 ands r0, r4 lsrs r0, 18 movs r1, 0xC0 lsls r1, 10 ands r1, r4 lsrs r1, 12 orrs r0, r1 movs r1, 0xC0 lsls r1, 2 ands r1, r4 lsrs r1, 6 orrs r0, r1 movs r1, 0x3 ands r1, r4 orrs r0, r1 movs r1, 0x1C bl __umodsi3 lsls r0, 16 lsrs r5, r0, 16 adds r0, r4, 0 bl GetNatureFromPersonality lsls r0, 24 lsrs r0, 24 cmp r6, r0 bne _0803AB84 adds r0, r7, 0 adds r1, r4, 0 bl pokemon_species_get_gender_info lsls r0, 24 lsrs r0, 24 cmp r8, r0 bne _0803AB84 mov r0, r9 subs r0, 0x1 cmp r5, r0 bne _0803AB84 b _0803AC1A _0803ABEA: bl Random adds r4, r0, 0 bl Random lsls r4, 16 lsrs r4, 16 lsls r0, 16 orrs r4, r0 adds r0, r4, 0 bl GetNatureFromPersonality lsls r0, 24 lsrs r0, 24 cmp r6, r0 bne _0803ABEA adds r0, r7, 0 adds r1, r4, 0 bl pokemon_species_get_gender_info lsls r0, 24 lsrs r0, 24 cmp r8, r0 bne _0803ABEA _0803AC1A: movs r0, 0x1 str r0, [sp] str r4, [sp, 0x4] movs r0, 0 str r0, [sp, 0x8] str r0, [sp, 0xC] ldr r0, [sp, 0x10] adds r1, r7, 0 ldr r2, [sp, 0x14] mov r3, r10 bl create_pokemon_set_level add sp, 0x18 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end unref_sub_803AB44 thumb_func_start sub_803AC44 sub_803AC44: @ 803AC44 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x10 mov r8, r0 lsls r1, 16 lsrs r6, r1, 16 lsls r2, 24 lsrs r7, r2, 24 _0803AC56: bl Random adds r4, r0, 0 bl Random lsls r4, 16 lsrs r5, r4, 16 lsls r0, 16 orrs r5, r0 bl Random adds r4, r0, 0 bl Random lsls r4, 16 lsrs r4, 16 lsls r0, 16 orrs r4, r0 adds r0, r6, 0 adds r1, r4, 0 bl pokemon_species_get_gender_info lsls r0, 24 cmp r0, 0 bne _0803AC56 movs r0, 0x1 str r0, [sp] str r4, [sp, 0x4] str r0, [sp, 0x8] str r5, [sp, 0xC] mov r0, r8 adds r1, r6, 0 adds r2, r7, 0 movs r3, 0x20 bl create_pokemon_set_level add sp, 0x10 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_803AC44 thumb_func_start sub_803ACAC sub_803ACAC: @ 803ACAC push {r4,lr} sub sp, 0x14 adds r4, r0, 0 str r3, [sp, 0x10] ldr r3, [sp, 0x1C] lsls r1, 16 lsrs r1, 16 lsls r2, 24 lsrs r2, 24 movs r0, 0x1 str r0, [sp] str r3, [sp, 0x4] movs r0, 0 str r0, [sp, 0x8] str r0, [sp, 0xC] adds r0, r4, 0 movs r3, 0 bl create_pokemon_set_level adds r0, r4, 0 movs r1, 0x42 add r2, sp, 0x10 bl pokemon_setattr adds r0, r4, 0 bl pokemon_calc_effective_stats add sp, 0x14 pop {r4} pop {r0} bx r0 thumb_func_end sub_803ACAC thumb_func_start unref_sub_803ACEC unref_sub_803ACEC: @ 803ACEC push {r4,r5,lr} sub sp, 0x10 adds r5, r0, 0 adds r4, r3, 0 ldr r3, [sp, 0x1C] lsls r1, 16 lsrs r1, 16 lsls r2, 24 lsrs r2, 24 movs r0, 0 str r0, [sp] str r0, [sp, 0x4] movs r0, 0x1 str r0, [sp, 0x8] str r3, [sp, 0xC] adds r0, r5, 0 movs r3, 0 bl create_pokemon_set_level adds r0, r5, 0 movs r1, 0x27 adds r2, r4, 0 bl pokemon_setattr adds r2, r4, 0x1 adds r0, r5, 0 movs r1, 0x28 bl pokemon_setattr adds r2, r4, 0x2 adds r0, r5, 0 movs r1, 0x29 bl pokemon_setattr adds r2, r4, 0x3 adds r0, r5, 0 movs r1, 0x2A bl pokemon_setattr adds r2, r4, 0x4 adds r0, r5, 0 movs r1, 0x2B bl pokemon_setattr adds r4, 0x5 adds r0, r5, 0 movs r1, 0x2C adds r2, r4, 0 bl pokemon_setattr adds r0, r5, 0 bl pokemon_calc_effective_stats add sp, 0x10 pop {r4,r5} pop {r0} bx r0 thumb_func_end unref_sub_803ACEC thumb_func_start pokemon_make_ev_something pokemon_make_ev_something: @ 803AD60 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x14 adds r7, r0, 0 ldr r0, [sp, 0x2C] lsls r1, 16 lsrs r1, 16 lsls r2, 24 lsrs r2, 24 lsls r3, 24 lsrs r3, 24 lsls r0, 24 lsrs r0, 24 mov r8, r0 movs r6, 0 str r6, [sp] str r6, [sp, 0x4] str r6, [sp, 0x8] str r6, [sp, 0xC] adds r0, r7, 0 bl create_pokemon_set_level mov r4, r8 movs r1, 0x1 movs r5, 0x5 _0803AD94: adds r0, r4, 0 ands r0, r1 cmp r0, 0 beq _0803AD9E adds r6, 0x1 _0803AD9E: lsrs r4, 1 subs r5, 0x1 cmp r5, 0 bge _0803AD94 movs r0, 0xFF lsls r0, 1 adds r1, r6, 0 bl __divsi3 add r1, sp, 0x10 strh r0, [r1] movs r4, 0x1 movs r5, 0 _0803ADB8: mov r0, r8 ands r0, r4 cmp r0, 0 beq _0803ADCC adds r1, r5, 0 adds r1, 0x1A adds r0, r7, 0 add r2, sp, 0x10 bl pokemon_setattr _0803ADCC: lsls r0, r4, 25 lsrs r4, r0, 24 adds r5, 0x1 cmp r5, 0x5 ble _0803ADB8 adds r0, r7, 0 bl pokemon_calc_effective_stats add sp, 0x14 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 thumb_func_end pokemon_make_ev_something thumb_func_start sub_803ADE8 sub_803ADE8: @ 803ADE8 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x20 adds r7, r0, 0 adds r6, r1, 0 ldrh r1, [r6] ldrb r2, [r6, 0xC] movs r3, 0x1 str r3, [sp] ldr r0, [r6, 0x1C] str r0, [sp, 0x4] str r3, [sp, 0x8] ldr r0, [r6, 0x14] str r0, [sp, 0xC] adds r0, r7, 0 movs r3, 0 bl create_pokemon_set_level movs r5, 0 add r0, sp, 0x1C mov r9, r0 movs r1, 0x1D add r1, sp mov r8, r1 adds r4, r6, 0x4 _0803AE1E: ldrh r1, [r4] lsls r2, r5, 24 lsrs r2, 24 adds r0, r7, 0 bl sub_803B6A4 adds r4, 0x2 adds r5, 0x1 cmp r5, 0x3 ble _0803AE1E adds r2, r6, 0 adds r2, 0xD adds r0, r7, 0 movs r1, 0x15 bl pokemon_setattr adds r2, r6, 0x2 adds r0, r7, 0 movs r1, 0xC bl pokemon_setattr adds r1, r6, 0 adds r1, 0x20 add r0, sp, 0x10 bl StringCopy add r0, sp, 0x10 ldrb r0, [r0] cmp r0, 0xFC bne _0803AE66 add r0, sp, 0x10 ldrb r0, [r0, 0x1] cmp r0, 0x15 bne _0803AE66 movs r0, 0x1 b _0803AE68 _0803AE66: movs r0, 0x2 _0803AE68: mov r1, r9 strb r0, [r1] adds r0, r7, 0 movs r1, 0x3 mov r2, r9 bl pokemon_setattr add r0, sp, 0x10 bl SkipExtCtrlCodes adds r0, r7, 0 movs r1, 0x2 add r2, sp, 0x10 bl pokemon_setattr adds r2, r6, 0 adds r2, 0x2B adds r0, r7, 0 movs r1, 0x20 bl pokemon_setattr adds r2, r6, 0 adds r2, 0xE adds r0, r7, 0 movs r1, 0x1A bl pokemon_setattr adds r2, r6, 0 adds r2, 0xF adds r0, r7, 0 movs r1, 0x1B bl pokemon_setattr adds r2, r6, 0 adds r2, 0x10 adds r0, r7, 0 movs r1, 0x1C bl pokemon_setattr adds r2, r6, 0 adds r2, 0x11 adds r0, r7, 0 movs r1, 0x1D bl pokemon_setattr adds r2, r6, 0 adds r2, 0x12 adds r0, r7, 0 movs r1, 0x1E bl pokemon_setattr adds r2, r6, 0 adds r2, 0x13 adds r0, r7, 0 movs r1, 0x1F bl pokemon_setattr ldrb r0, [r6, 0x1B] lsrs r0, 7 mov r1, r8 strb r0, [r1] adds r0, r7, 0 movs r1, 0x2E mov r2, r8 bl pokemon_setattr ldrb r0, [r6, 0x18] lsls r0, 27 lsrs r0, 27 mov r1, r8 strb r0, [r1] adds r0, r7, 0 movs r1, 0x27 mov r2, r8 bl pokemon_setattr ldrh r0, [r6, 0x18] lsls r0, 22 lsrs r0, 27 mov r1, r8 strb r0, [r1] adds r0, r7, 0 movs r1, 0x28 mov r2, r8 bl pokemon_setattr ldrb r0, [r6, 0x19] lsls r0, 25 lsrs r0, 27 mov r1, r8 strb r0, [r1] adds r0, r7, 0 movs r1, 0x29 mov r2, r8 bl pokemon_setattr ldr r0, [r6, 0x18] lsls r0, 12 lsrs r0, 27 mov r1, r8 strb r0, [r1] adds r0, r7, 0 movs r1, 0x2A mov r2, r8 bl pokemon_setattr ldrh r0, [r6, 0x1A] lsls r0, 23 lsrs r0, 27 mov r1, r8 strb r0, [r1] adds r0, r7, 0 movs r1, 0x2B mov r2, r8 bl pokemon_setattr ldrb r0, [r6, 0x1B] lsls r0, 26 lsrs r0, 27 mov r1, r8 strb r0, [r1] adds r0, r7, 0 movs r1, 0x2C mov r2, r8 bl pokemon_setattr adds r0, r7, 0 bl pokemon_calc_effective_stats add sp, 0x20 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_803ADE8 thumb_func_start sub_803AF78 sub_803AF78: @ 803AF78 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} adds r7, r0, 0 adds r6, r1, 0 movs r1, 0xB movs r2, 0 bl PokemonGetField strh r0, [r6] adds r0, r7, 0 movs r1, 0xC movs r2, 0 bl PokemonGetField lsls r0, 16 lsrs r0, 16 cmp r0, 0xAF bne _0803AFA2 movs r0, 0 _0803AFA2: strh r0, [r6, 0x2] movs r5, 0 movs r0, 0x2B adds r0, r6 mov r8, r0 movs r1, 0x20 adds r1, r6 mov r9, r1 adds r4, r6, 0x4 _0803AFB4: adds r1, r5, 0 adds r1, 0xD adds r0, r7, 0 movs r2, 0 bl PokemonGetField strh r0, [r4] adds r4, 0x2 adds r5, 0x1 cmp r5, 0x3 ble _0803AFB4 adds r0, r7, 0 movs r1, 0x38 movs r2, 0 bl PokemonGetField strb r0, [r6, 0xC] adds r0, r7, 0 movs r1, 0x15 movs r2, 0 bl PokemonGetField strb r0, [r6, 0xD] adds r0, r7, 0 movs r1, 0x1 movs r2, 0 bl PokemonGetField str r0, [r6, 0x14] adds r0, r7, 0 movs r1, 0x1A movs r2, 0 bl PokemonGetField strb r0, [r6, 0xE] adds r0, r7, 0 movs r1, 0x1B movs r2, 0 bl PokemonGetField strb r0, [r6, 0xF] adds r0, r7, 0 movs r1, 0x1C movs r2, 0 bl PokemonGetField strb r0, [r6, 0x10] adds r0, r7, 0 movs r1, 0x1D movs r2, 0 bl PokemonGetField strb r0, [r6, 0x11] adds r0, r7, 0 movs r1, 0x1E movs r2, 0 bl PokemonGetField strb r0, [r6, 0x12] adds r0, r7, 0 movs r1, 0x1F movs r2, 0 bl PokemonGetField strb r0, [r6, 0x13] adds r0, r7, 0 movs r1, 0x20 movs r2, 0 bl PokemonGetField mov r1, r8 strb r0, [r1] adds r0, r7, 0 movs r1, 0x27 movs r2, 0 bl PokemonGetField movs r4, 0x1F ands r0, r4 ldrb r2, [r6, 0x18] movs r1, 0x20 negs r1, r1 ands r1, r2 orrs r1, r0 strb r1, [r6, 0x18] adds r0, r7, 0 movs r1, 0x28 movs r2, 0 bl PokemonGetField movs r5, 0x1F ands r0, r5 lsls r0, 5 ldrh r2, [r6, 0x18] ldr r1, _0803B118 ands r1, r2 orrs r1, r0 strh r1, [r6, 0x18] adds r0, r7, 0 movs r1, 0x29 movs r2, 0 bl PokemonGetField ands r0, r4 lsls r0, 2 ldrb r2, [r6, 0x19] movs r1, 0x7D negs r1, r1 ands r1, r2 orrs r1, r0 strb r1, [r6, 0x19] adds r0, r7, 0 movs r1, 0x2A movs r2, 0 bl PokemonGetField movs r1, 0x1F ands r1, r0 lsls r1, 15 ldr r0, [r6, 0x18] ldr r2, _0803B11C ands r0, r2 orrs r0, r1 str r0, [r6, 0x18] adds r0, r7, 0 movs r1, 0x2B movs r2, 0 bl PokemonGetField ands r0, r5 lsls r0, 4 ldrh r2, [r6, 0x1A] ldr r1, _0803B120 ands r1, r2 orrs r1, r0 strh r1, [r6, 0x1A] adds r0, r7, 0 movs r1, 0x2C movs r2, 0 bl PokemonGetField ands r0, r4 lsls r0, 1 ldrb r2, [r6, 0x1B] movs r1, 0x3F negs r1, r1 ands r1, r2 orrs r1, r0 strb r1, [r6, 0x1B] adds r0, r7, 0 movs r1, 0x2E movs r2, 0 bl PokemonGetField lsls r0, 7 ldrb r2, [r6, 0x1B] movs r1, 0x7F ands r1, r2 orrs r1, r0 strb r1, [r6, 0x1B] adds r0, r7, 0 movs r1, 0 movs r2, 0 bl PokemonGetField str r0, [r6, 0x1C] adds r0, r7, 0 movs r1, 0x2 mov r2, r9 bl PokemonGetField pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0803B118: .4byte 0xfffffc1f _0803B11C: .4byte 0xfff07fff _0803B120: .4byte 0xfffffe0f thumb_func_end sub_803AF78 thumb_func_start pokemon_calc_checksum pokemon_calc_checksum: @ 803B124 push {r4-r7,lr} mov r7, r8 push {r7} adds r4, r0, 0 movs r6, 0 ldr r1, [r4] movs r2, 0 bl sub_803C638 adds r5, r0, 0 ldr r1, [r4] adds r0, r4, 0 movs r2, 0x1 bl sub_803C638 adds r7, r0, 0 ldr r1, [r4] adds r0, r4, 0 movs r2, 0x2 bl sub_803C638 mov r8, r0 ldr r1, [r4] adds r0, r4, 0 movs r2, 0x3 bl sub_803C638 adds r3, r0, 0 movs r1, 0x5 _0803B15E: ldrh r0, [r5] adds r0, r6, r0 lsls r0, 16 lsrs r6, r0, 16 adds r5, 0x2 subs r1, 0x1 cmp r1, 0 bge _0803B15E adds r2, r7, 0 movs r1, 0x5 _0803B172: ldrh r0, [r2] adds r0, r6, r0 lsls r0, 16 lsrs r6, r0, 16 adds r2, 0x2 subs r1, 0x1 cmp r1, 0 bge _0803B172 mov r2, r8 movs r1, 0x5 _0803B186: ldrh r0, [r2] adds r0, r6, r0 lsls r0, 16 lsrs r6, r0, 16 adds r2, 0x2 subs r1, 0x1 cmp r1, 0 bge _0803B186 adds r2, r3, 0 movs r1, 0x5 _0803B19A: ldrh r0, [r2] adds r0, r6, r0 lsls r0, 16 lsrs r6, r0, 16 adds r2, 0x2 subs r1, 0x1 cmp r1, 0 bge _0803B19A adds r0, r6, 0 pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 thumb_func_end pokemon_calc_checksum thumb_func_start pokemon_calc_effective_stats pokemon_calc_effective_stats: @ 803B1B8 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x40 adds r5, r0, 0 movs r1, 0x3A movs r2, 0 bl PokemonGetField mov r8, r0 adds r0, r5, 0 movs r1, 0x39 movs r2, 0 bl PokemonGetField str r0, [sp, 0x1C] adds r0, r5, 0 movs r1, 0x27 movs r2, 0 bl PokemonGetField adds r6, r0, 0 adds r0, r5, 0 movs r1, 0x1A movs r2, 0 bl PokemonGetField adds r4, r0, 0 adds r0, r5, 0 movs r1, 0x28 movs r2, 0 bl PokemonGetField mov r10, r0 adds r0, r5, 0 movs r1, 0x1B movs r2, 0 bl PokemonGetField mov r9, r0 adds r0, r5, 0 movs r1, 0x29 movs r2, 0 bl PokemonGetField str r0, [sp, 0x20] adds r0, r5, 0 movs r1, 0x1C movs r2, 0 bl PokemonGetField str r0, [sp, 0x24] adds r0, r5, 0 movs r1, 0x2A movs r2, 0 bl PokemonGetField str r0, [sp, 0x28] adds r0, r5, 0 movs r1, 0x1D movs r2, 0 bl PokemonGetField str r0, [sp, 0x2C] adds r0, r5, 0 movs r1, 0x2B movs r2, 0 bl PokemonGetField str r0, [sp, 0x30] adds r0, r5, 0 movs r1, 0x1E movs r2, 0 bl PokemonGetField str r0, [sp, 0x34] adds r0, r5, 0 movs r1, 0x2C movs r2, 0 bl PokemonGetField str r0, [sp, 0x38] adds r0, r5, 0 movs r1, 0x1F movs r2, 0 bl PokemonGetField str r0, [sp, 0x3C] adds r0, r5, 0 movs r1, 0xB movs r2, 0 bl PokemonGetField lsls r0, 16 lsrs r7, r0, 16 adds r0, r5, 0 bl level_by_exp lsls r0, 24 lsrs r0, 24 str r0, [sp] adds r0, r5, 0 movs r1, 0x38 mov r2, sp bl pokemon_setattr ldr r0, _0803B2A0 cmp r7, r0 bne _0803B2A4 movs r0, 0x1 str r0, [sp, 0x4] lsls r6, r7, 3 b _0803B2D2 .align 2, 0 _0803B2A0: .4byte 0x0000012f _0803B2A4: ldr r1, _0803B470 lsls r2, r7, 3 subs r0, r2, r7 lsls r0, 2 adds r0, r1 ldrb r0, [r0] lsls r0, 1 adds r1, r0, r6 adds r0, r4, 0 adds r6, r2, 0 cmp r0, 0 bge _0803B2BE adds r0, 0x3 _0803B2BE: asrs r0, 2 adds r0, r1, r0 ldr r4, [sp] muls r0, r4 movs r1, 0x64 bl __divsi3 adds r0, r4 adds r0, 0xA str r0, [sp, 0x4] _0803B2D2: ldr r1, _0803B474 add r2, sp, 0x4 ldrb r0, [r2] mov r3, r8 subs r0, r3 ldr r3, _0803B478 adds r1, r3 strb r0, [r1] lsls r0, 24 cmp r0, 0 bne _0803B2EC movs r0, 0x1 strb r0, [r1] _0803B2EC: adds r0, r5, 0 movs r1, 0x3A bl pokemon_setattr ldr r0, _0803B470 subs r1, r6, r7 lsls r1, 2 adds r6, r1, r0 ldrb r0, [r6, 0x1] lsls r0, 1 mov r2, r10 adds r1, r0, r2 mov r0, r9 cmp r0, 0 bge _0803B30C adds r0, 0x3 _0803B30C: asrs r0, 2 adds r0, r1, r0 ldr r1, [sp] muls r0, r1 movs r1, 0x64 bl __divsi3 adds r0, 0x5 str r0, [sp, 0x8] adds r0, r5, 0 bl GetNature lsls r0, 24 lsrs r0, 24 add r4, sp, 0x8 ldrh r1, [r4] movs r2, 0x1 bl nature_stat_mod lsls r0, 16 lsrs r0, 16 str r0, [sp, 0x8] adds r0, r5, 0 movs r1, 0x3B adds r2, r4, 0 bl pokemon_setattr ldrb r0, [r6, 0x2] lsls r0, 1 ldr r3, [sp, 0x20] adds r1, r0, r3 ldr r0, [sp, 0x24] cmp r0, 0 bge _0803B352 adds r0, 0x3 _0803B352: asrs r0, 2 adds r0, r1, r0 ldr r1, [sp] muls r0, r1 movs r1, 0x64 bl __divsi3 adds r0, 0x5 str r0, [sp, 0xC] adds r0, r5, 0 bl GetNature lsls r0, 24 lsrs r0, 24 add r4, sp, 0xC ldrh r1, [r4] movs r2, 0x2 bl nature_stat_mod lsls r0, 16 lsrs r0, 16 str r0, [sp, 0xC] adds r0, r5, 0 movs r1, 0x3C adds r2, r4, 0 bl pokemon_setattr ldrb r0, [r6, 0x3] lsls r0, 1 ldr r2, [sp, 0x28] adds r1, r0, r2 ldr r0, [sp, 0x2C] cmp r0, 0 bge _0803B398 adds r0, 0x3 _0803B398: asrs r0, 2 adds r0, r1, r0 ldr r1, [sp] muls r0, r1 movs r1, 0x64 bl __divsi3 adds r0, 0x5 str r0, [sp, 0x10] adds r0, r5, 0 bl GetNature lsls r0, 24 lsrs r0, 24 add r4, sp, 0x10 ldrh r1, [r4] movs r2, 0x3 bl nature_stat_mod lsls r0, 16 lsrs r0, 16 str r0, [sp, 0x10] adds r0, r5, 0 movs r1, 0x3D adds r2, r4, 0 bl pokemon_setattr ldrb r0, [r6, 0x4] lsls r0, 1 ldr r3, [sp, 0x30] adds r1, r0, r3 ldr r0, [sp, 0x34] cmp r0, 0 bge _0803B3DE adds r0, 0x3 _0803B3DE: asrs r0, 2 adds r0, r1, r0 ldr r1, [sp] muls r0, r1 movs r1, 0x64 bl __divsi3 adds r0, 0x5 str r0, [sp, 0x14] adds r0, r5, 0 bl GetNature lsls r0, 24 lsrs r0, 24 add r4, sp, 0x14 ldrh r1, [r4] movs r2, 0x4 bl nature_stat_mod lsls r0, 16 lsrs r0, 16 str r0, [sp, 0x14] adds r0, r5, 0 movs r1, 0x3E adds r2, r4, 0 bl pokemon_setattr ldrb r0, [r6, 0x5] lsls r0, 1 ldr r2, [sp, 0x38] adds r1, r0, r2 ldr r0, [sp, 0x3C] cmp r0, 0 bge _0803B424 adds r0, 0x3 _0803B424: asrs r0, 2 adds r0, r1, r0 ldr r1, [sp] muls r0, r1 movs r1, 0x64 bl __divsi3 adds r0, 0x5 str r0, [sp, 0x18] adds r0, r5, 0 bl GetNature lsls r0, 24 lsrs r0, 24 add r4, sp, 0x18 ldrh r1, [r4] movs r2, 0x5 bl nature_stat_mod lsls r0, 16 lsrs r0, 16 str r0, [sp, 0x18] adds r0, r5, 0 movs r1, 0x3F adds r2, r4, 0 bl pokemon_setattr ldr r0, _0803B47C cmp r7, r0 bne _0803B480 ldr r0, [sp, 0x1C] cmp r0, 0 bne _0803B46C mov r3, r8 cmp r3, 0 bne _0803B4A4 _0803B46C: movs r0, 0x1 b _0803B498 .align 2, 0 _0803B470: .4byte gBaseStats _0803B474: .4byte 0x02000000 _0803B478: .4byte 0x000160fa _0803B47C: .4byte 0x0000012f _0803B480: ldr r1, [sp, 0x1C] cmp r1, 0 bne _0803B490 mov r0, r8 cmp r0, 0 bne _0803B4A4 ldr r0, [sp, 0x4] b _0803B498 _0803B490: ldr r0, [sp, 0x4] mov r2, r8 subs r0, r2 adds r0, r1, r0 _0803B498: str r0, [sp, 0x1C] add r2, sp, 0x1C adds r0, r5, 0 movs r1, 0x39 bl pokemon_setattr _0803B4A4: add sp, 0x40 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end pokemon_calc_effective_stats thumb_func_start sub_803B4B4 sub_803B4B4: @ 803B4B4 push {r4,lr} sub sp, 0x4 adds r2, r0, 0 adds r4, r1, 0 movs r0, 0 str r0, [sp] adds r0, r4, 0 adds r1, r2, 0 movs r2, 0x50 bl memcpy adds r0, r4, 0 movs r1, 0x37 mov r2, sp bl pokemon_setattr adds r0, r4, 0 movs r1, 0x39 mov r2, sp bl pokemon_setattr adds r0, r4, 0 movs r1, 0x3A mov r2, sp bl pokemon_setattr movs r0, 0xFF str r0, [sp] adds r0, r4, 0 movs r1, 0x40 mov r2, sp bl pokemon_setattr adds r0, r4, 0 bl pokemon_calc_effective_stats add sp, 0x4 pop {r4} pop {r0} bx r0 thumb_func_end sub_803B4B4 thumb_func_start level_by_exp level_by_exp: @ 803B504 push {r4-r6,lr} adds r5, r0, 0 movs r1, 0xB movs r2, 0 bl PokemonGetField adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 adds r0, r5, 0 movs r1, 0x19 movs r2, 0 bl PokemonGetField adds r3, r0, 0 movs r2, 0x1 ldr r6, _0803B568 ldr r1, _0803B56C lsls r0, r4, 3 subs r0, r4 lsls r0, 2 adds r1, r0, r1 ldrb r0, [r1, 0x13] movs r5, 0xCA lsls r5, 1 muls r0, r5 adds r0, 0x4 adds r0, r6 ldr r0, [r0] cmp r0, r3 bhi _0803B55A adds r4, r1, 0 _0803B544: adds r2, 0x1 cmp r2, 0x64 bgt _0803B55A lsls r1, r2, 2 ldrb r0, [r4, 0x13] muls r0, r5 adds r1, r0 adds r1, r6 ldr r0, [r1] cmp r0, r3 bls _0803B544 _0803B55A: subs r0, r2, 0x1 lsls r0, 24 lsrs r0, 24 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _0803B568: .4byte gExperienceTables _0803B56C: .4byte gBaseStats thumb_func_end level_by_exp thumb_func_start sub_803B570 sub_803B570: @ 803B570 push {r4-r6,lr} adds r5, r0, 0 movs r1, 0xB movs r2, 0 bl PokemonGetEncryptedField adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 adds r0, r5, 0 movs r1, 0x19 movs r2, 0 bl PokemonGetEncryptedField adds r3, r0, 0 movs r2, 0x1 ldr r6, _0803B5D4 ldr r1, _0803B5D8 lsls r0, r4, 3 subs r0, r4 lsls r0, 2 adds r1, r0, r1 ldrb r0, [r1, 0x13] movs r5, 0xCA lsls r5, 1 muls r0, r5 adds r0, 0x4 adds r0, r6 ldr r0, [r0] cmp r0, r3 bhi _0803B5C6 adds r4, r1, 0 _0803B5B0: adds r2, 0x1 cmp r2, 0x64 bgt _0803B5C6 lsls r1, r2, 2 ldrb r0, [r4, 0x13] muls r0, r5 adds r1, r0 adds r1, r6 ldr r0, [r1] cmp r0, r3 bls _0803B5B0 _0803B5C6: subs r0, r2, 0x1 lsls r0, 24 lsrs r0, 24 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _0803B5D4: .4byte gExperienceTables _0803B5D8: .4byte gBaseStats thumb_func_end sub_803B570 thumb_func_start pokemon_moveset_pad_ pokemon_moveset_pad_: @ 803B5DC push {lr} lsls r1, 16 lsrs r1, 16 bl pokemon_moveset_pad lsls r0, 16 lsrs r0, 16 pop {r1} bx r1 thumb_func_end pokemon_moveset_pad_ thumb_func_start pokemon_moveset_pad pokemon_moveset_pad: @ 803B5F0 push {r4-r7,lr} sub sp, 0x4 adds r7, r0, 0 mov r0, sp strh r1, [r0] movs r5, 0 mov r6, sp _0803B5FE: adds r4, r5, 0 adds r4, 0xD adds r0, r7, 0 adds r1, r4, 0 movs r2, 0 bl PokemonGetEncryptedField lsls r0, 16 lsrs r0, 16 cmp r0, 0 bne _0803B63C adds r0, r7, 0 adds r1, r4, 0 mov r2, sp bl PokemonSetEncryptedField adds r1, r5, 0 adds r1, 0x11 ldrh r0, [r6] lsls r2, r0, 1 adds r2, r0 lsls r2, 2 ldr r0, _0803B638 adds r2, r0 adds r0, r7, 0 bl PokemonSetEncryptedField ldrh r0, [r6] b _0803B654 .align 2, 0 _0803B638: .4byte gBattleMoves + 0x4 @ PP offset _0803B63C: ldrh r1, [r6] cmp r0, r1 bne _0803B64C ldr r0, _0803B648 b _0803B654 .align 2, 0 _0803B648: .4byte 0x0000fffe _0803B64C: adds r5, 0x1 cmp r5, 0x3 ble _0803B5FE ldr r0, _0803B65C _0803B654: add sp, 0x4 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0803B65C: .4byte 0x0000ffff thumb_func_end pokemon_moveset_pad thumb_func_start sub_803B660 sub_803B660: @ 803B660 push {r4,r5,lr} lsls r1, 16 lsrs r4, r1, 16 movs r3, 0 adds r5, r0, 0 adds r5, 0x24 ldr r2, _0803B68C lsls r1, r4, 1 adds r1, r4 lsls r1, 2 adds r2, r1, r2 adds r1, r0, 0 adds r1, 0xC _0803B67A: ldrh r0, [r1] cmp r0, 0 bne _0803B690 strh r4, [r1] adds r1, r5, r3 ldrb r0, [r2, 0x4] strb r0, [r1] adds r0, r4, 0 b _0803B69A .align 2, 0 _0803B68C: .4byte gBattleMoves _0803B690: adds r1, 0x2 adds r3, 0x1 cmp r3, 0x3 ble _0803B67A ldr r0, _0803B6A0 _0803B69A: pop {r4,r5} pop {r1} bx r1 .align 2, 0 _0803B6A0: .4byte 0x0000ffff thumb_func_end sub_803B660 thumb_func_start sub_803B6A4 sub_803B6A4: @ 803B6A4 push {r4,r5,lr} sub sp, 0x4 adds r5, r0, 0 adds r4, r2, 0 mov r0, sp strh r1, [r0] lsls r4, 24 lsrs r4, 24 adds r1, r4, 0 adds r1, 0xD adds r0, r5, 0 mov r2, sp bl pokemon_setattr adds r4, 0x11 mov r0, sp ldrh r0, [r0] lsls r2, r0, 1 adds r2, r0 lsls r2, 2 ldr r0, _0803B6E0 adds r2, r0 adds r0, r5, 0 adds r1, r4, 0 bl pokemon_setattr add sp, 0x4 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0803B6E0: .4byte gBattleMoves + 0x4 @ PP offset thumb_func_end sub_803B6A4 thumb_func_start sub_803B6E4 sub_803B6E4: @ 803B6E4 push {r4,lr} lsls r1, 16 lsrs r1, 16 lsls r2, 24 lsrs r2, 24 lsls r4, r2, 1 adds r3, r0, 0 adds r3, 0xC adds r3, r4 strh r1, [r3] adds r0, 0x24 adds r0, r2 ldr r3, _0803B710 lsls r2, r1, 1 adds r2, r1 lsls r2, 2 adds r2, r3 ldrb r1, [r2, 0x4] strb r1, [r0] pop {r4} pop {r0} bx r0 .align 2, 0 _0803B710: .4byte gBattleMoves thumb_func_end sub_803B6E4 thumb_func_start unref_sub_803B714 unref_sub_803B714: @ 803B714 push {lr} bl sub_803B720 pop {r0} bx r0 thumb_func_end unref_sub_803B714 thumb_func_start sub_803B720 sub_803B720: @ 803B720 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x4 mov r8, r0 movs r1, 0xB movs r2, 0 bl PokemonGetEncryptedField adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 mov r0, r8 bl sub_803B570 lsls r0, 24 lsrs r0, 24 mov r10, r0 ldr r0, _0803B7BC lsls r6, r4, 2 adds r0, r6, r0 ldr r0, [r0] ldrh r1, [r0] ldr r2, _0803B7C0 lsrs r0, r2, 16 cmp r1, r0 beq _0803B7AC mov r9, r2 movs r3, 0 _0803B75E: ldr r0, _0803B7BC adds r7, r6, r0 ldr r0, [r7] adds r0, r3, r0 ldrh r2, [r0] movs r1, 0xFE lsls r1, 8 adds r0, r1, 0 ands r0, r2 mov r4, r10 lsls r1, r4, 9 cmp r0, r1 bgt _0803B7AC ldr r1, _0803B7C4 adds r0, r1, 0 adds r4, r0, 0 ands r4, r2 mov r0, r8 adds r1, r4, 0 str r3, [sp] bl pokemon_moveset_pad lsls r0, 16 mov r1, r9 lsrs r5, r1, 16 ldr r3, [sp] cmp r0, r9 bne _0803B7A0 mov r0, r8 adds r1, r4, 0 bl sub_803B980 ldr r3, [sp] _0803B7A0: adds r3, 0x2 ldr r0, [r7] adds r0, r3, r0 ldrh r0, [r0] cmp r0, r5 bne _0803B75E _0803B7AC: 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 _0803B7BC: .4byte gLevelUpLearnsetPointers _0803B7C0: .4byte 0xffff0000 _0803B7C4: .4byte 0x000001ff thumb_func_end sub_803B720 thumb_func_start sub_803B7C8 sub_803B7C8: @ 803B7C8 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x4 mov r8, r0 lsls r4, r1, 24 lsrs r4, 24 movs r0, 0 str r0, [sp] mov r0, r8 movs r1, 0xB movs r2, 0 bl PokemonGetField lsls r0, 16 lsrs r0, 16 mov r9, r0 mov r0, r8 movs r1, 0x38 movs r2, 0 bl PokemonGetField lsls r0, 24 lsrs r0, 24 mov r10, r0 cmp r4, 0 beq _0803B860 ldr r4, _0803B84C mov r1, sp ldrb r1, [r1] strb r1, [r4] ldr r2, _0803B850 mov r5, r9 lsls r3, r5, 2 adds r5, r3, r2 ldr r0, [r5] ldrh r1, [r0] movs r7, 0xFE lsls r7, 8 adds r0, r7, 0 ands r0, r1 adds r6, r4, 0 mov r12, r2 mov r1, r10 lsls r4, r1, 9 cmp r0, r4 beq _0803B888 adds r2, r6, 0 ldr r0, _0803B854 mov r12, r0 adds r6, r7, 0 adds r3, r5, 0 _0803B834: ldrb r0, [r2] adds r0, 0x1 strb r0, [r2] ldrb r0, [r2] ldr r1, [r3] lsls r0, 1 adds r0, r1 ldrh r1, [r0] cmp r1, r12 bne _0803B858 movs r0, 0 b _0803B8B4 .align 2, 0 _0803B84C: .4byte 0x02024e88 _0803B850: .4byte gLevelUpLearnsetPointers _0803B854: .4byte 0x0000ffff _0803B858: adds r0, r6, 0 ands r0, r1 cmp r0, r4 bne _0803B834 _0803B860: ldr r3, _0803B8C4 mov r1, r9 lsls r4, r1, 2 adds r1, r4, r3 ldr r2, _0803B8C8 ldrb r0, [r2] ldr r1, [r1] lsls r0, 1 adds r0, r1 ldrh r1, [r0] movs r0, 0xFE lsls r0, 8 ands r0, r1 mov r5, r10 lsls r1, r5, 9 adds r6, r2, 0 mov r12, r3 adds r3, r4, 0 cmp r0, r1 bne _0803B8B2 _0803B888: ldr r2, _0803B8CC mov r0, r12 adds r1, r3, r0 ldrb r0, [r6] ldr r1, [r1] lsls r0, 1 adds r0, r1 ldrh r1, [r0] ldr r0, _0803B8D0 ands r0, r1 strh r0, [r2] ldrb r0, [r6] adds r0, 0x1 strb r0, [r6] ldrh r1, [r2] mov r0, r8 bl pokemon_moveset_pad_ lsls r0, 16 lsrs r0, 16 str r0, [sp] _0803B8B2: ldr r0, [sp] _0803B8B4: add sp, 0x4 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0803B8C4: .4byte gLevelUpLearnsetPointers _0803B8C8: .4byte 0x02024e88 _0803B8CC: .4byte 0x02024e82 _0803B8D0: .4byte 0x000001ff thumb_func_end sub_803B7C8 thumb_func_start sub_803B8D4 sub_803B8D4: @ 803B8D4 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x10 adds r6, r0, 0 lsls r1, 16 lsrs r1, 16 mov r8, r1 movs r4, 0 add r7, sp, 0x8 add r0, sp, 0xC mov r9, r0 mov r5, sp _0803B8F0: adds r1, r4, 0 adds r1, 0xE adds r0, r6, 0 movs r2, 0 bl PokemonGetField strh r0, [r5] adds r1, r4, 0 adds r1, 0x12 adds r0, r6, 0 movs r2, 0 bl PokemonGetField adds r1, r7, r4 strb r0, [r1] adds r5, 0x2 adds r4, 0x1 cmp r4, 0x2 ble _0803B8F0 adds r0, r6, 0 movs r1, 0x15 movs r2, 0 bl PokemonGetField mov r1, r9 strb r0, [r1] ldrb r0, [r1] lsrs r0, 2 strb r0, [r1] mov r0, sp mov r2, r8 strh r2, [r0, 0x6] ldr r1, _0803B97C mov r2, r8 lsls r0, r2, 1 add r0, r8 lsls r0, 2 adds r0, r1 ldrb r0, [r0, 0x4] strb r0, [r7, 0x3] movs r4, 0 mov r5, sp _0803B944: adds r1, r4, 0 adds r1, 0xD adds r0, r6, 0 adds r2, r5, 0 bl pokemon_setattr adds r1, r4, 0 adds r1, 0x11 adds r2, r7, r4 adds r0, r6, 0 bl pokemon_setattr adds r5, 0x2 adds r4, 0x1 cmp r4, 0x3 ble _0803B944 adds r0, r6, 0 movs r1, 0x15 mov r2, r9 bl pokemon_setattr add sp, 0x10 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0803B97C: .4byte gBattleMoves thumb_func_end sub_803B8D4 thumb_func_start sub_803B980 sub_803B980: @ 803B980 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x10 adds r6, r0, 0 lsls r1, 16 lsrs r1, 16 mov r8, r1 movs r4, 0 add r7, sp, 0x8 add r0, sp, 0xC mov r9, r0 mov r5, sp _0803B99C: adds r1, r4, 0 adds r1, 0xE adds r0, r6, 0 movs r2, 0 bl PokemonGetEncryptedField strh r0, [r5] adds r1, r4, 0 adds r1, 0x12 adds r0, r6, 0 movs r2, 0 bl PokemonGetEncryptedField adds r1, r7, r4 strb r0, [r1] adds r5, 0x2 adds r4, 0x1 cmp r4, 0x2 ble _0803B99C adds r0, r6, 0 movs r1, 0x15 movs r2, 0 bl PokemonGetEncryptedField mov r1, r9 strb r0, [r1] ldrb r0, [r1] lsrs r0, 2 strb r0, [r1] mov r0, sp mov r2, r8 strh r2, [r0, 0x6] ldr r1, _0803BA28 mov r2, r8 lsls r0, r2, 1 add r0, r8 lsls r0, 2 adds r0, r1 ldrb r0, [r0, 0x4] strb r0, [r7, 0x3] movs r4, 0 mov r5, sp _0803B9F0: adds r1, r4, 0 adds r1, 0xD adds r0, r6, 0 adds r2, r5, 0 bl PokemonSetEncryptedField adds r1, r4, 0 adds r1, 0x11 adds r2, r7, r4 adds r0, r6, 0 bl PokemonSetEncryptedField adds r5, 0x2 adds r4, 0x1 cmp r4, 0x3 ble _0803B9F0 adds r0, r6, 0 movs r1, 0x15 mov r2, r9 bl PokemonSetEncryptedField add sp, 0x10 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0803BA28: .4byte gBattleMoves thumb_func_end sub_803B980 thumb_func_start sub_803BA2C sub_803BA2C: @ 803BA2C push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x2C adds r7, r0, 0 str r1, [sp, 0x4] str r2, [sp, 0x8] ldr r0, [sp, 0x4C] ldr r1, [sp, 0x50] ldr r2, [sp, 0x54] ldr r4, [sp, 0x58] lsls r3, 16 lsrs r3, 16 str r3, [sp, 0xC] lsls r0, 16 lsrs r3, r0, 16 lsls r1, 24 lsrs r6, r1, 24 lsls r2, 24 lsrs r2, 24 str r2, [sp, 0x10] lsls r4, 24 lsrs r4, 24 movs r5, 0 cmp r3, 0 bne _0803BA80 ldr r2, _0803BA78 ldr r1, _0803BA7C ldr r3, [sp, 0x8] lsls r0, r3, 1 adds r0, r3 lsls r0, 2 adds r0, r1 ldrb r0, [r0, 0x1] strh r0, [r2] b _0803BA84 .align 2, 0 _0803BA78: .4byte 0x02024e80 _0803BA7C: .4byte gBattleMoves _0803BA80: ldr r0, _0803BA9C strh r3, [r0] _0803BA84: cmp r6, 0 bne _0803BAA4 ldr r1, _0803BAA0 ldr r6, [sp, 0x8] lsls r0, r6, 1 adds r0, r6 lsls r0, 2 adds r0, r1 ldrb r0, [r0, 0x2] mov r9, r0 b _0803BAAE .align 2, 0 _0803BA9C: .4byte 0x02024e80 _0803BAA0: .4byte gBattleMoves _0803BAA4: movs r0, 0x3F mov r9, r0 mov r1, r9 ands r1, r6 mov r9, r1 _0803BAAE: ldrh r6, [r7, 0x2] ldr r2, [sp, 0x4] ldrh r2, [r2, 0x4] str r2, [sp, 0x14] ldrh r3, [r7, 0x8] mov r8, r3 ldr r0, [sp, 0x4] ldrh r0, [r0, 0xA] str r0, [sp, 0x18] ldrh r0, [r7, 0x2E] cmp r0, 0xAF bne _0803BAE0 ldr r1, _0803BADC ldr r2, [sp, 0x10] lsls r0, r2, 3 subs r0, r2 lsls r0, 2 adds r0, r1 ldrb r3, [r0, 0x7] mov r10, r3 ldrb r0, [r0, 0x1A] b _0803BAF6 .align 2, 0 _0803BADC: .4byte 0x02024df0 _0803BAE0: ldrh r0, [r7, 0x2E] bl itemid_get_x12 lsls r0, 24 lsrs r0, 24 mov r10, r0 ldrh r0, [r7, 0x2E] bl itemid_get_quality lsls r0, 24 lsrs r0, 24 _0803BAF6: str r0, [sp, 0x20] ldr r1, [sp, 0x4] ldrh r0, [r1, 0x2E] cmp r0, 0xAF bne _0803BB26 ldr r1, _0803BB10 lsls r0, r4, 3 subs r0, r4 lsls r0, 2 adds r0, r1 ldrb r0, [r0, 0x7] str r0, [sp, 0x1C] b _0803BB3C .align 2, 0 _0803BB10: .4byte 0x02024df0 _0803BB14: ldr r0, [sp, 0x20] adds r0, 0x64 muls r0, r6 movs r1, 0x64 bl __divsi3 lsls r0, 16 lsrs r6, r0, 16 b _0803BCDC _0803BB26: ldr r2, [sp, 0x4] ldrh r0, [r2, 0x2E] bl itemid_get_x12 lsls r0, 24 lsrs r0, 24 str r0, [sp, 0x1C] ldr r3, [sp, 0x4] ldrh r0, [r3, 0x2E] bl itemid_get_quality _0803BB3C: adds r0, r7, 0 adds r0, 0x20 ldrb r1, [r0] str r0, [sp, 0x24] cmp r1, 0x25 beq _0803BB4C cmp r1, 0x4A bne _0803BB50 _0803BB4C: lsls r0, r6, 17 lsrs r6, r0, 16 _0803BB50: ldr r0, _0803BCB8 ldrh r1, [r0] ldr r0, _0803BCBC ands r0, r1 cmp r0, 0 beq _0803BB5E b _0803BC78 _0803BB5E: movs r0, 0x8 ands r0, r1 cmp r0, 0 beq _0803BB98 ldr r0, _0803BCC0 ldrh r1, [r0] movs r0, 0x80 lsls r0, 3 cmp r1, r0 beq _0803BB98 ldr r0, _0803BCC4 bl FlagGet lsls r0, 24 cmp r0, 0 beq _0803BB98 ldr r0, [sp, 0x10] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 bne _0803BB98 movs r0, 0x6E muls r0, r6 movs r1, 0x64 bl __divsi3 lsls r0, 16 lsrs r6, r0, 16 _0803BB98: ldr r0, _0803BCB8 ldrh r1, [r0] ldr r0, _0803BCBC ands r0, r1 cmp r0, 0 bne _0803BC78 movs r0, 0x8 ands r0, r1 cmp r0, 0 beq _0803BBE2 ldr r0, _0803BCC0 ldrh r1, [r0] movs r0, 0x80 lsls r0, 3 cmp r1, r0 beq _0803BBE2 ldr r0, _0803BCC8 bl FlagGet lsls r0, 24 cmp r0, 0 beq _0803BBE2 adds r0, r4, 0 bl battle_side_get_owner lsls r0, 24 cmp r0, 0 bne _0803BBE2 movs r0, 0x6E ldr r1, [sp, 0x14] muls r0, r1 movs r1, 0x64 bl __divsi3 lsls r0, 16 lsrs r0, 16 str r0, [sp, 0x14] _0803BBE2: ldr r0, _0803BCB8 ldrh r1, [r0] ldr r0, _0803BCBC ands r0, r1 cmp r0, 0 bne _0803BC78 movs r0, 0x8 ands r0, r1 cmp r0, 0 beq _0803BC2E ldr r0, _0803BCC0 ldrh r1, [r0] movs r0, 0x80 lsls r0, 3 cmp r1, r0 beq _0803BC2E ldr r0, _0803BCCC bl FlagGet lsls r0, 24 cmp r0, 0 beq _0803BC2E ldr r0, [sp, 0x10] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 bne _0803BC2E movs r0, 0x6E mov r2, r8 muls r2, r0 adds r0, r2, 0 movs r1, 0x64 bl __divsi3 lsls r0, 16 lsrs r0, 16 mov r8, r0 _0803BC2E: ldr r0, _0803BCB8 ldrh r1, [r0] ldr r0, _0803BCBC ands r0, r1 cmp r0, 0 bne _0803BC78 movs r0, 0x8 ands r0, r1 cmp r0, 0 beq _0803BC78 ldr r0, _0803BCC0 ldrh r1, [r0] movs r0, 0x80 lsls r0, 3 cmp r1, r0 beq _0803BC78 ldr r0, _0803BCCC bl FlagGet lsls r0, 24 cmp r0, 0 beq _0803BC78 adds r0, r4, 0 bl battle_side_get_owner lsls r0, 24 cmp r0, 0 bne _0803BC78 movs r0, 0x6E ldr r3, [sp, 0x18] muls r0, r3 movs r1, 0x64 bl __divsi3 lsls r0, 16 lsrs r0, 16 str r0, [sp, 0x18] _0803BC78: movs r2, 0 ldr r4, _0803BCD0 ldr r0, [sp, 0x4] adds r0, 0x20 str r0, [sp, 0x28] adds r3, r4, 0 _0803BC84: lsls r1, r2, 1 ldrb r0, [r3] cmp r10, r0 bne _0803BCD4 adds r0, r4, 0x1 adds r0, r1, r0 ldrb r0, [r0] cmp r9, r0 bne _0803BCD4 mov r1, r9 cmp r1, 0x8 bhi _0803BC9E b _0803BB14 _0803BC9E: ldr r0, [sp, 0x20] adds r0, 0x64 mov r2, r8 muls r2, r0 adds r0, r2, 0 movs r1, 0x64 bl __divsi3 lsls r0, 16 lsrs r0, 16 mov r8, r0 b _0803BCDC .align 2, 0 _0803BCB8: .4byte 0x020239f8 _0803BCBC: .4byte 0x00000902 _0803BCC0: .4byte 0x0202ff5e _0803BCC4: .4byte 0x00000807 _0803BCC8: .4byte 0x0000080b _0803BCCC: .4byte 0x0000080d _0803BCD0: .4byte gUnknown_08208263 _0803BCD4: adds r3, 0x2 adds r2, 0x1 cmp r2, 0x10 bls _0803BC84 _0803BCDC: mov r3, r10 cmp r3, 0x1D bne _0803BCF0 movs r0, 0x96 muls r0, r6 movs r1, 0x64 bl __divsi3 lsls r0, 16 lsrs r6, r0, 16 _0803BCF0: mov r0, r10 cmp r0, 0x22 bne _0803BD28 ldr r0, _0803BFDC ldrh r1, [r0] movs r0, 0x80 lsls r0, 1 ands r0, r1 cmp r0, 0 bne _0803BD28 ldr r1, _0803BFE0 adds r0, r1, 0 ldrh r2, [r7] adds r0, r2 lsls r0, 16 lsrs r0, 16 cmp r0, 0x1 bhi _0803BD28 movs r0, 0x96 mov r3, r8 muls r3, r0 adds r0, r3, 0 movs r1, 0x64 bl __divsi3 lsls r0, 16 lsrs r0, 16 mov r8, r0 _0803BD28: ldr r0, [sp, 0x1C] cmp r0, 0x22 bne _0803BD60 ldr r0, _0803BFDC ldrh r1, [r0] movs r0, 0x80 lsls r0, 1 ands r0, r1 cmp r0, 0 bne _0803BD60 ldr r1, _0803BFE0 adds r0, r1, 0 ldr r2, [sp, 0x4] ldrh r2, [r2] adds r0, r2 lsls r0, 16 lsrs r0, 16 cmp r0, 0x1 bhi _0803BD60 movs r0, 0x96 ldr r3, [sp, 0x18] muls r0, r3 movs r1, 0x64 bl __divsi3 lsls r0, 16 lsrs r0, 16 str r0, [sp, 0x18] _0803BD60: mov r0, r10 cmp r0, 0x23 bne _0803BD76 ldrh r1, [r7] ldr r0, _0803BFE4 cmp r1, r0 bne _0803BD76 mov r1, r8 lsls r0, r1, 17 lsrs r0, 16 mov r8, r0 _0803BD76: ldr r2, [sp, 0x1C] cmp r2, 0x24 bne _0803BD8E ldr r3, [sp, 0x4] ldrh r1, [r3] ldr r0, _0803BFE4 cmp r1, r0 bne _0803BD8E ldr r1, [sp, 0x18] lsls r0, r1, 17 lsrs r0, 16 str r0, [sp, 0x18] _0803BD8E: mov r2, r10 cmp r2, 0x2D bne _0803BDA2 ldrh r0, [r7] cmp r0, 0x19 bne _0803BDA2 mov r3, r8 lsls r0, r3, 17 lsrs r0, 16 mov r8, r0 _0803BDA2: ldr r0, [sp, 0x1C] cmp r0, 0x40 bne _0803BDB8 ldr r1, [sp, 0x4] ldrh r0, [r1] cmp r0, 0x84 bne _0803BDB8 ldr r2, [sp, 0x14] lsls r0, r2, 17 lsrs r0, 16 str r0, [sp, 0x14] _0803BDB8: mov r3, r10 cmp r3, 0x41 bne _0803BDCE ldrh r0, [r7] subs r0, 0x68 lsls r0, 16 lsrs r0, 16 cmp r0, 0x1 bhi _0803BDCE lsls r0, r6, 17 lsrs r6, r0, 16 _0803BDCE: ldr r1, [sp, 0x28] ldrb r0, [r1] cmp r0, 0x2F bne _0803BDE6 mov r2, r9 cmp r2, 0xA beq _0803BDE0 cmp r2, 0xF bne _0803BDE6 _0803BDE0: mov r3, r8 lsrs r3, 1 mov r8, r3 _0803BDE6: ldr r0, [sp, 0x24] ldrb r4, [r0] cmp r4, 0x37 bne _0803BDFC movs r0, 0x96 muls r0, r6 movs r1, 0x64 bl __divsi3 lsls r0, 16 lsrs r6, r0, 16 _0803BDFC: cmp r4, 0x39 bne _0803BE2A movs r0, 0 str r0, [sp] movs r0, 0xE movs r1, 0 movs r2, 0x3A movs r3, 0 bl sub_8018324 lsls r0, 24 cmp r0, 0 beq _0803BE2A movs r0, 0x96 mov r1, r8 muls r1, r0 adds r0, r1, 0 movs r1, 0x64 bl __divsi3 lsls r0, 16 lsrs r0, 16 mov r8, r0 _0803BE2A: ldr r2, [sp, 0x24] ldrb r0, [r2] cmp r0, 0x3A bne _0803BE5C movs r0, 0 str r0, [sp] movs r0, 0xE movs r1, 0 movs r2, 0x39 movs r3, 0 bl sub_8018324 lsls r0, 24 cmp r0, 0 beq _0803BE5C movs r0, 0x96 mov r3, r8 muls r3, r0 adds r0, r3, 0 movs r1, 0x64 bl __divsi3 lsls r0, 16 lsrs r0, 16 mov r8, r0 _0803BE5C: ldr r1, [sp, 0x24] ldrb r0, [r1] cmp r0, 0x3E bne _0803BE78 ldr r0, [r7, 0x4C] cmp r0, 0 beq _0803BE78 movs r0, 0x96 muls r0, r6 movs r1, 0x64 bl __divsi3 lsls r0, 16 lsrs r6, r0, 16 _0803BE78: ldr r2, [sp, 0x28] ldrb r0, [r2] cmp r0, 0x3F bne _0803BE9A ldr r3, [sp, 0x4] ldr r0, [r3, 0x4C] cmp r0, 0 beq _0803BE9A movs r0, 0x96 ldr r1, [sp, 0x14] muls r0, r1 movs r1, 0x64 bl __divsi3 lsls r0, 16 lsrs r0, 16 str r0, [sp, 0x14] _0803BE9A: mov r2, r9 cmp r2, 0xD bne _0803BEBE movs r0, 0 str r0, [sp] movs r0, 0xE movs r1, 0 movs r2, 0 movs r3, 0xFD bl sub_8018324 lsls r0, 24 cmp r0, 0 beq _0803BEBE ldr r1, _0803BFE8 ldrh r0, [r1] lsrs r0, 1 strh r0, [r1] _0803BEBE: mov r3, r9 cmp r3, 0xA bne _0803BEE2 movs r0, 0 str r0, [sp] movs r0, 0xE movs r1, 0 movs r2, 0 movs r3, 0xFE bl sub_8018324 lsls r0, 24 cmp r0, 0 beq _0803BEE2 ldr r1, _0803BFE8 ldrh r0, [r1] lsrs r0, 1 strh r0, [r1] _0803BEE2: mov r0, r9 cmp r0, 0xC bne _0803BF12 ldr r1, [sp, 0x24] ldrb r0, [r1] cmp r0, 0x41 bne _0803BF12 ldrh r0, [r7, 0x2C] movs r1, 0x3 bl __udivsi3 ldrh r1, [r7, 0x28] lsls r0, 16 lsrs r0, 16 cmp r1, r0 bhi _0803BF12 ldr r4, _0803BFE8 ldrh r1, [r4] movs r0, 0x96 muls r0, r1 movs r1, 0x64 bl __divsi3 strh r0, [r4] _0803BF12: mov r2, r9 cmp r2, 0xA bne _0803BF42 ldr r3, [sp, 0x24] ldrb r0, [r3] cmp r0, 0x42 bne _0803BF42 ldrh r0, [r7, 0x2C] movs r1, 0x3 bl __udivsi3 ldrh r1, [r7, 0x28] lsls r0, 16 lsrs r0, 16 cmp r1, r0 bhi _0803BF42 ldr r4, _0803BFE8 ldrh r1, [r4] movs r0, 0x96 muls r0, r1 movs r1, 0x64 bl __divsi3 strh r0, [r4] _0803BF42: mov r0, r9 cmp r0, 0xB bne _0803BF72 ldr r1, [sp, 0x24] ldrb r0, [r1] cmp r0, 0x43 bne _0803BF72 ldrh r0, [r7, 0x2C] movs r1, 0x3 bl __udivsi3 ldrh r1, [r7, 0x28] lsls r0, 16 lsrs r0, 16 cmp r1, r0 bhi _0803BF72 ldr r4, _0803BFE8 ldrh r1, [r4] movs r0, 0x96 muls r0, r1 movs r1, 0x64 bl __divsi3 strh r0, [r4] _0803BF72: mov r2, r9 cmp r2, 0x6 bne _0803BFA2 ldr r3, [sp, 0x24] ldrb r0, [r3] cmp r0, 0x44 bne _0803BFA2 ldrh r0, [r7, 0x2C] movs r1, 0x3 bl __udivsi3 ldrh r1, [r7, 0x28] lsls r0, 16 lsrs r0, 16 cmp r1, r0 bhi _0803BFA2 ldr r4, _0803BFE8 ldrh r1, [r4] movs r0, 0x96 muls r0, r1 movs r1, 0x64 bl __divsi3 strh r0, [r4] _0803BFA2: ldr r2, _0803BFEC ldr r0, _0803BFF0 ldrh r1, [r0] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r0, [r0] cmp r0, 0x7 bne _0803BFBC ldr r0, [sp, 0x14] lsrs r0, 1 str r0, [sp, 0x14] _0803BFBC: mov r1, r9 cmp r1, 0x8 bls _0803BFC4 b _0803C122 _0803BFC4: ldr r0, _0803BFF4 ldrb r1, [r0] adds r4, r0, 0 cmp r1, 0x2 bne _0803C000 movs r0, 0x19 ldrsb r0, [r7, r0] cmp r0, 0x6 ble _0803BFFC ldr r2, _0803BFF8 b _0803C006 .align 2, 0 _0803BFDC: .4byte 0x020239f8 _0803BFE0: .4byte 0xfffffe69 _0803BFE4: .4byte 0x00000175 _0803BFE8: .4byte 0x02024e80 _0803BFEC: .4byte gBattleMoves _0803BFF0: .4byte 0x02024be6 _0803BFF4: .4byte 0x02024c0d _0803BFF8: .4byte gUnknown_08208244 _0803BFFC: adds r5, r6, 0 b _0803C01E _0803C000: ldr r2, _0803C050 movs r0, 0x19 ldrsb r0, [r7, r0] _0803C006: lsls r0, 1 adds r1, r0, r2 ldrb r1, [r1] adds r5, r6, 0 muls r5, r1 adds r2, 0x1 adds r0, r2 ldrb r1, [r0] adds r0, r5, 0 bl __divsi3 adds r5, r0, 0 _0803C01E: ldr r0, _0803C054 ldrh r0, [r0] muls r5, r0 adds r0, r7, 0 adds r0, 0x2A ldrb r0, [r0] lsls r0, 1 movs r1, 0x5 bl __divsi3 adds r0, 0x2 muls r5, r0 ldrb r0, [r4] cmp r0, 0x2 bne _0803C05C ldr r2, [sp, 0x4] movs r0, 0x1A ldrsb r0, [r2, r0] cmp r0, 0x5 bgt _0803C058 ldr r2, _0803C050 ldr r3, [sp, 0x4] movs r0, 0x1A ldrsb r0, [r3, r0] b _0803C064 .align 2, 0 _0803C050: .4byte gUnknown_08208244 _0803C054: .4byte 0x02024e80 _0803C058: ldr r3, [sp, 0x14] b _0803C07E _0803C05C: ldr r2, _0803C0DC ldr r1, [sp, 0x4] movs r0, 0x1A ldrsb r0, [r1, r0] _0803C064: lsls r0, 1 adds r1, r0, r2 ldrb r1, [r1] ldr r6, [sp, 0x14] adds r3, r6, 0 muls r3, r1 adds r2, 0x1 adds r0, r2 ldrb r1, [r0] adds r0, r3, 0 bl __divsi3 adds r3, r0, 0 _0803C07E: adds r0, r5, 0 adds r1, r3, 0 bl __divsi3 adds r5, r0, 0 movs r1, 0x32 bl __divsi3 adds r5, r0, 0 ldr r0, [r7, 0x4C] movs r1, 0x10 ands r0, r1 cmp r0, 0 beq _0803C0A8 ldr r1, [sp, 0x24] ldrb r0, [r1] cmp r0, 0x3E beq _0803C0A8 lsrs r0, r5, 31 adds r0, r5, r0 asrs r5, r0, 1 _0803C0A8: movs r0, 0x1 ldr r2, [sp, 0xC] ands r0, r2 cmp r0, 0 beq _0803C0EA ldrb r1, [r4] cmp r1, 0x1 bne _0803C0EA ldr r0, _0803C0E0 ldrh r0, [r0] ands r1, r0 cmp r1, 0 beq _0803C0E4 movs r0, 0x2 bl sub_803C348 lsls r0, 24 lsrs r0, 24 cmp r0, 0x2 bne _0803C0E4 adds r0, r5, 0 movs r1, 0x3 bl __divsi3 lsls r5, r0, 1 b _0803C0EA .align 2, 0 _0803C0DC: .4byte gUnknown_08208244 _0803C0E0: .4byte 0x020239f8 _0803C0E4: lsrs r0, r5, 31 adds r0, r5, r0 asrs r5, r0, 1 _0803C0EA: ldr r0, _0803C148 ldrh r1, [r0] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _0803C11C ldr r0, _0803C14C ldr r3, [sp, 0x8] lsls r1, r3, 1 adds r1, r3 lsls r1, 2 adds r1, r0 ldrb r0, [r1, 0x6] cmp r0, 0x8 bne _0803C11C movs r0, 0x2 bl sub_803C348 lsls r0, 24 lsrs r0, 24 cmp r0, 0x2 bne _0803C11C lsrs r0, r5, 31 adds r0, r5, r0 asrs r5, r0, 1 _0803C11C: cmp r5, 0 bne _0803C122 movs r5, 0x1 _0803C122: mov r6, r9 cmp r6, 0x9 bne _0803C12A movs r5, 0 _0803C12A: mov r0, r9 cmp r0, 0x9 bhi _0803C132 b _0803C330 _0803C132: ldr r0, _0803C150 ldrb r1, [r0] adds r4, r0, 0 cmp r1, 0x2 bne _0803C15C movs r0, 0x1C ldrsb r0, [r7, r0] cmp r0, 0x6 ble _0803C158 ldr r2, _0803C154 b _0803C162 .align 2, 0 _0803C148: .4byte 0x020239f8 _0803C14C: .4byte gBattleMoves _0803C150: .4byte 0x02024c0d _0803C154: .4byte gUnknown_08208244 _0803C158: mov r5, r8 b _0803C17A _0803C15C: ldr r2, _0803C1A8 movs r0, 0x1C ldrsb r0, [r7, r0] _0803C162: lsls r0, 1 adds r1, r0, r2 ldrb r1, [r1] mov r5, r8 muls r5, r1 adds r2, 0x1 adds r0, r2 ldrb r1, [r0] adds r0, r5, 0 bl __divsi3 adds r5, r0, 0 _0803C17A: ldr r0, _0803C1AC ldrh r0, [r0] muls r5, r0 adds r0, r7, 0 adds r0, 0x2A ldrb r0, [r0] lsls r0, 1 movs r1, 0x5 bl __divsi3 adds r0, 0x2 muls r5, r0 ldrb r0, [r4] cmp r0, 0x2 bne _0803C1B4 ldr r1, [sp, 0x4] movs r0, 0x1D ldrsb r0, [r1, r0] cmp r0, 0x5 bgt _0803C1B0 ldr r2, _0803C1A8 b _0803C1BC .align 2, 0 _0803C1A8: .4byte gUnknown_08208244 _0803C1AC: .4byte 0x02024e80 _0803C1B0: ldr r3, [sp, 0x18] b _0803C1D6 _0803C1B4: ldr r2, _0803C21C ldr r1, [sp, 0x4] movs r0, 0x1D ldrsb r0, [r1, r0] _0803C1BC: lsls r0, 1 adds r1, r0, r2 ldrb r1, [r1] ldr r6, [sp, 0x18] adds r3, r6, 0 muls r3, r1 adds r2, 0x1 adds r0, r2 ldrb r1, [r0] adds r0, r3, 0 bl __divsi3 adds r3, r0, 0 _0803C1D6: adds r0, r5, 0 adds r1, r3, 0 bl __divsi3 adds r5, r0, 0 movs r1, 0x32 bl __divsi3 adds r5, r0, 0 movs r0, 0x2 ldr r1, [sp, 0xC] ands r0, r1 cmp r0, 0 beq _0803C22A ldrb r1, [r4] cmp r1, 0x1 bne _0803C22A ldr r0, _0803C220 ldrh r0, [r0] ands r1, r0 cmp r1, 0 beq _0803C224 movs r0, 0x2 bl sub_803C348 lsls r0, 24 lsrs r0, 24 cmp r0, 0x2 bne _0803C224 adds r0, r5, 0 movs r1, 0x3 bl __divsi3 lsls r5, r0, 1 b _0803C22A .align 2, 0 _0803C21C: .4byte gUnknown_08208244 _0803C220: .4byte 0x020239f8 _0803C224: lsrs r0, r5, 31 adds r0, r5, r0 asrs r5, r0, 1 _0803C22A: ldr r0, _0803C2A4 ldrh r1, [r0] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _0803C25C ldr r0, _0803C2A8 ldr r2, [sp, 0x8] lsls r1, r2, 1 adds r1, r2 lsls r1, 2 adds r1, r0 ldrb r0, [r1, 0x6] cmp r0, 0x8 bne _0803C25C movs r0, 0x2 bl sub_803C348 lsls r0, 24 lsrs r0, 24 cmp r0, 0x2 bne _0803C25C lsrs r0, r5, 31 adds r0, r5, r0 asrs r5, r0, 1 _0803C25C: movs r0, 0 str r0, [sp] movs r0, 0xE movs r1, 0 movs r2, 0xD movs r3, 0 bl sub_8018324 lsls r0, 24 lsrs r0, 24 cmp r0, 0 bne _0803C30C str r0, [sp] movs r0, 0xE movs r1, 0 movs r2, 0x4D movs r3, 0 bl sub_8018324 lsls r0, 24 cmp r0, 0 bne _0803C30C ldr r2, _0803C2AC ldrh r1, [r2] movs r0, 0x1 ands r0, r1 adds r4, r2, 0 cmp r0, 0 beq _0803C2C4 mov r3, r9 cmp r3, 0xA beq _0803C2B0 cmp r3, 0xB beq _0803C2B8 b _0803C2C4 .align 2, 0 _0803C2A4: .4byte 0x020239f8 _0803C2A8: .4byte gBattleMoves _0803C2AC: .4byte 0x02024db8 _0803C2B0: lsrs r0, r5, 31 adds r0, r5, r0 asrs r5, r0, 1 b _0803C2C4 _0803C2B8: lsls r0, r5, 4 subs r0, r5 movs r1, 0xA bl __divsi3 adds r5, r0, 0 _0803C2C4: ldrh r1, [r4] movs r0, 0x9F ands r0, r1 cmp r0, 0 beq _0803C2DC ldr r0, _0803C2F4 ldrh r0, [r0] cmp r0, 0x4C bne _0803C2DC lsrs r0, r5, 31 adds r0, r5, r0 asrs r5, r0, 1 _0803C2DC: ldrh r1, [r4] movs r0, 0x60 ands r0, r1 cmp r0, 0 beq _0803C30C mov r6, r9 cmp r6, 0xA beq _0803C2F8 cmp r6, 0xB beq _0803C306 b _0803C30C .align 2, 0 _0803C2F4: .4byte 0x02024be6 _0803C2F8: lsls r0, r5, 4 subs r0, r5 movs r1, 0xA bl __divsi3 adds r5, r0, 0 b _0803C30C _0803C306: lsrs r0, r5, 31 adds r0, r5, r0 asrs r5, r0, 1 _0803C30C: ldr r1, _0803C344 ldr r2, [sp, 0x10] lsls r0, r2, 2 adds r0, r1 ldr r0, [r0] movs r1, 0x1 ands r0, r1 cmp r0, 0 beq _0803C330 mov r3, r9 cmp r3, 0xA bne _0803C330 lsls r0, r5, 4 subs r0, r5 movs r1, 0xA bl __divsi3 adds r5, r0, 0 _0803C330: adds r0, r5, 0x2 add sp, 0x2C pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0803C344: .4byte 0x02017100 thumb_func_end sub_803BA2C thumb_func_start sub_803C348 sub_803C348: @ 803C348 push {r4-r6,lr} lsls r0, 24 lsrs r0, 24 adds r1, r0, 0 movs r6, 0 cmp r0, 0x1 beq _0803C39C cmp r0, 0x1 bgt _0803C360 cmp r0, 0 beq _0803C366 b _0803C41E _0803C360: cmp r1, 0x2 beq _0803C3E4 b _0803C41E _0803C366: movs r5, 0 ldr r0, _0803C390 ldrb r3, [r0] ldr r4, _0803C394 ldr r2, _0803C398 _0803C370: cmp r5, r3 beq _0803C384 ldrb r0, [r4] ldr r1, [r2] ands r0, r1 cmp r0, 0 bne _0803C384 adds r0, r6, 0x1 lsls r0, 24 lsrs r6, r0, 24 _0803C384: adds r2, 0x4 adds r5, 0x1 cmp r5, 0x3 ble _0803C370 b _0803C41E .align 2, 0 _0803C390: .4byte 0x02024a60 _0803C394: .4byte 0x02024c0c _0803C398: .4byte gUnknown_0820872C _0803C39C: movs r5, 0 _0803C39E: lsls r0, r5, 24 lsrs r0, 24 bl battle_side_get_owner adds r4, r0, 0 ldr r0, _0803C3D8 ldrb r0, [r0] bl battle_side_get_owner lsls r4, 24 lsls r0, 24 cmp r4, r0 bne _0803C3D0 ldr r0, _0803C3DC ldrb r1, [r0] ldr r2, _0803C3E0 lsls r0, r5, 2 adds r0, r2 ldr r0, [r0] ands r1, r0 cmp r1, 0 bne _0803C3D0 adds r0, r6, 0x1 lsls r0, 24 lsrs r6, r0, 24 _0803C3D0: adds r5, 0x1 cmp r5, 0x3 ble _0803C39E b _0803C41E .align 2, 0 _0803C3D8: .4byte 0x02024c07 _0803C3DC: .4byte 0x02024c0c _0803C3E0: .4byte gUnknown_0820872C _0803C3E4: movs r5, 0 _0803C3E6: lsls r0, r5, 24 lsrs r0, 24 bl battle_side_get_owner adds r4, r0, 0 ldr r0, _0803C428 ldrb r0, [r0] bl battle_side_get_owner lsls r4, 24 lsls r0, 24 cmp r4, r0 bne _0803C418 ldr r0, _0803C42C ldrb r1, [r0] ldr r2, _0803C430 lsls r0, r5, 2 adds r0, r2 ldr r0, [r0] ands r1, r0 cmp r1, 0 bne _0803C418 adds r0, r6, 0x1 lsls r0, 24 lsrs r6, r0, 24 _0803C418: adds r5, 0x1 cmp r5, 0x3 ble _0803C3E6 _0803C41E: adds r0, r6, 0 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _0803C428: .4byte 0x02024c08 _0803C42C: .4byte 0x02024c0c _0803C430: .4byte gUnknown_0820872C thumb_func_end sub_803C348 thumb_func_start sub_803C434 sub_803C434: @ 803C434 push {r4-r6,lr} lsls r0, 24 lsrs r0, 24 bl battle_get_per_side_status movs r1, 0x1 movs r6, 0x1 adds r4, r6, 0 ands r4, r0 eors r4, r1 adds r5, r4, 0 ldr r0, _0803C45C ldrh r1, [r0] adds r0, r6, 0 ands r0, r1 cmp r0, 0 bne _0803C460 adds r0, r4, 0 b _0803C4AA .align 2, 0 _0803C45C: .4byte 0x020239f8 _0803C460: movs r0, 0 bl sub_803C348 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bls _0803C484 bl Random adds r1, r6, 0 ands r1, r0 cmp r1, 0 bne _0803C480 movs r0, 0x2 eors r0, r4 b _0803C4AA _0803C480: adds r0, r4, 0 b _0803C4AA _0803C484: ldr r0, _0803C49C ldrb r1, [r0] ldr r2, _0803C4A0 lsls r0, r4, 2 adds r0, r2 ldr r0, [r0] ands r1, r0 cmp r1, 0 bne _0803C4A4 adds r0, r4, 0 b _0803C4AA .align 2, 0 _0803C49C: .4byte 0x02024c0c _0803C4A0: .4byte gUnknown_0820872C _0803C4A4: movs r0, 0x2 eors r5, r0 adds r0, r5, 0 _0803C4AA: bl battle_get_side_with_given_state lsls r0, 24 lsrs r0, 24 pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_803C434 thumb_func_start pokemon_get_gender pokemon_get_gender: @ 803C4B8 push {lr} bl pokemon_roll_gender lsls r0, 24 lsrs r0, 24 pop {r1} bx r1 thumb_func_end pokemon_get_gender thumb_func_start pokemon_roll_gender pokemon_roll_gender: @ 803C4C8 push {r4,r5,lr} adds r4, r0, 0 movs r1, 0xB movs r2, 0 bl PokemonGetEncryptedField lsls r0, 16 lsrs r5, r0, 16 adds r0, r4, 0 movs r1, 0 movs r2, 0 bl PokemonGetEncryptedField adds r2, r0, 0 ldr r1, _0803C518 lsls r0, r5, 3 subs r0, r5 lsls r0, 2 adds r0, r1 ldrb r0, [r0, 0x10] cmp r0, 0 beq _0803C51E cmp r0, 0 blt _0803C500 cmp r0, 0xFF bgt _0803C500 cmp r0, 0xFE bge _0803C51E _0803C500: ldr r1, _0803C518 lsls r0, r5, 3 subs r0, r5 lsls r0, 2 adds r0, r1 ldrb r1, [r0, 0x10] movs r0, 0xFF ands r0, r2 cmp r1, r0 bhi _0803C51C movs r0, 0 b _0803C51E .align 2, 0 _0803C518: .4byte gBaseStats _0803C51C: movs r0, 0xFE _0803C51E: pop {r4,r5} pop {r1} bx r1 thumb_func_end pokemon_roll_gender thumb_func_start pokemon_species_get_gender_info pokemon_species_get_gender_info: @ 803C524 push {lr} adds r3, r1, 0 lsls r0, 16 lsrs r2, r0, 16 ldr r1, _0803C560 lsls r0, r2, 3 subs r0, r2 lsls r0, 2 adds r0, r1 ldrb r0, [r0, 0x10] cmp r0, 0 beq _0803C566 cmp r0, 0 blt _0803C548 cmp r0, 0xFF bgt _0803C548 cmp r0, 0xFE bge _0803C566 _0803C548: lsls r0, r2, 3 subs r0, r2 lsls r0, 2 adds r0, r1 ldrb r1, [r0, 0x10] movs r0, 0xFF ands r0, r3 cmp r1, r0 bhi _0803C564 movs r0, 0 b _0803C566 .align 2, 0 _0803C560: .4byte gBaseStats _0803C564: movs r0, 0xFE _0803C566: pop {r1} bx r1 thumb_func_end pokemon_species_get_gender_info thumb_func_start gpu_pal_obj_decompress_and_apply gpu_pal_obj_decompress_and_apply: @ 803C56C push {r4-r6,lr} lsls r1, 24 lsrs r1, 24 ldr r3, _0803C594 ldr r4, _0803C598 lsls r2, r1, 1 adds r2, r1 lsls r2, 3 adds r1, r3, 0 adds r2, r4 ldm r2!, {r4-r6} stm r1!, {r4-r6} ldm r2!, {r4-r6} stm r1!, {r4-r6} strh r0, [r3, 0x2] ldr r0, _0803C59C str r0, [r3, 0x8] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0803C594: .4byte 0x02024e8c _0803C598: .4byte gSpriteTemplate_8208288 _0803C59C: .4byte gSpriteAnimTable_81E7C64 thumb_func_end gpu_pal_obj_decompress_and_apply thumb_func_start sub_803C5A0 sub_803C5A0: @ 803C5A0 push {r4-r7,lr} lsls r0, 16 lsrs r4, r0, 16 lsls r1, 24 lsrs r3, r1, 24 ldr r5, _0803C5D0 ldr r2, _0803C5D4 lsls r0, r3, 1 adds r0, r3 lsls r0, 3 adds r1, r5, 0 adds r0, r2 ldm r0!, {r2,r6,r7} stm r1!, {r2,r6,r7} ldm r0!, {r2,r6,r7} stm r1!, {r2,r6,r7} strh r4, [r5, 0x2] cmp r3, 0 beq _0803C5CA cmp r3, 0x2 bne _0803C5DC _0803C5CA: ldr r0, _0803C5D8 b _0803C5DE .align 2, 0 _0803C5D0: .4byte 0x02024e8c _0803C5D4: .4byte gSpriteTemplate_8208288 _0803C5D8: .4byte gUnknown_081ECACC _0803C5DC: ldr r0, _0803C5EC _0803C5DE: lsls r1, r4, 2 adds r1, r0 ldr r0, [r1] str r0, [r5, 0x8] pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0803C5EC: .4byte gUnknown_081EC2A4 thumb_func_end sub_803C5A0 thumb_func_start pokemon_encrypt pokemon_encrypt: @ 803C5F0 push {r4,lr} adds r3, r0, 0 movs r4, 0 adds r2, r3, 0 adds r2, 0x20 _0803C5FA: ldr r0, [r2] ldr r1, [r3] eors r0, r1 str r0, [r2] ldr r1, [r3, 0x4] eors r0, r1 stm r2!, {r0} adds r4, 0x1 cmp r4, 0xB bls _0803C5FA pop {r4} pop {r0} bx r0 thumb_func_end pokemon_encrypt thumb_func_start pokemon_decrypt pokemon_decrypt: @ 803C614 push {r4,lr} adds r3, r0, 0 movs r4, 0 adds r2, r3, 0 adds r2, 0x20 _0803C61E: ldr r0, [r2] ldr r1, [r3, 0x4] eors r0, r1 str r0, [r2] ldr r1, [r3] eors r0, r1 stm r2!, {r0} adds r4, 0x1 cmp r4, 0xB bls _0803C61E pop {r4} pop {r0} bx r0 thumb_func_end pokemon_decrypt thumb_func_start sub_803C638 sub_803C638: @ 803C638 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x4C lsls r2, 24 lsrs r4, r2, 24 movs r5, 0 adds r0, 0x20 str r0, [sp, 0x4] str r0, [sp] str r0, [sp, 0xC] str r0, [sp, 0x8] str r0, [sp, 0x14] str r0, [sp, 0x10] str r0, [sp, 0x1C] str r0, [sp, 0x18] str r0, [sp, 0x24] str r0, [sp, 0x20] str r0, [sp, 0x2C] str r0, [sp, 0x28] mov r10, r0 str r0, [sp, 0x30] mov r8, r10 str r0, [sp, 0x34] mov r3, r8 str r3, [sp, 0x38] adds r7, r3, 0 str r7, [sp, 0x3C] adds r6, r7, 0 str r6, [sp, 0x40] adds r2, r6, 0 mov r9, r2 adds r0, r1, 0 movs r1, 0x18 str r2, [sp, 0x44] str r3, [sp, 0x48] bl __umodsi3 ldr r2, [sp, 0x44] ldr r3, [sp, 0x48] cmp r0, 0x17 bls _0803C692 b _0803CB4E _0803C692: lsls r0, 2 ldr r1, _0803C69C adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0803C69C: .4byte _0803C6A0 .align 2, 0 _0803C6A0: .4byte _0803C700 .4byte _0803C72E .4byte _0803C75C .4byte _0803C78A .4byte _0803C7B8 .4byte _0803C7E6 .4byte _0803C814 .4byte _0803C842 .4byte _0803C870 .4byte _0803C89E .4byte _0803C8CC .4byte _0803C8FA .4byte _0803C928 .4byte _0803C956 .4byte _0803C984 .4byte _0803C9B2 .4byte _0803C9E0 .4byte _0803CA0E .4byte _0803CA3C .4byte _0803CA6A .4byte _0803CA98 .4byte _0803CAC6 .4byte _0803CAF4 .4byte _0803CB22 _0803C700: cmp r4, 0x1 beq _0803C71C cmp r4, 0x1 bgt _0803C70E cmp r4, 0 beq _0803C718 b _0803CB4E _0803C70E: cmp r4, 0x2 beq _0803C722 cmp r4, 0x3 beq _0803C728 b _0803CB4E _0803C718: ldr r5, [sp] b _0803CB4E _0803C71C: ldr r5, [sp] adds r5, 0xC b _0803CB4E _0803C722: ldr r5, [sp] adds r5, 0x18 b _0803CB4E _0803C728: ldr r5, [sp] adds r5, 0x24 b _0803CB4E _0803C72E: cmp r4, 0x1 beq _0803C74A cmp r4, 0x1 bgt _0803C73C cmp r4, 0 beq _0803C746 b _0803CB4E _0803C73C: cmp r4, 0x2 beq _0803C750 cmp r4, 0x3 beq _0803C756 b _0803CB4E _0803C746: ldr r5, [sp, 0x4] b _0803CB4E _0803C74A: ldr r5, [sp, 0x4] adds r5, 0xC b _0803CB4E _0803C750: ldr r5, [sp, 0x4] adds r5, 0x24 b _0803CB4E _0803C756: ldr r5, [sp, 0x4] adds r5, 0x18 b _0803CB4E _0803C75C: cmp r4, 0x1 beq _0803C778 cmp r4, 0x1 bgt _0803C76A cmp r4, 0 beq _0803C774 b _0803CB4E _0803C76A: cmp r4, 0x2 beq _0803C77E cmp r4, 0x3 beq _0803C784 b _0803CB4E _0803C774: ldr r5, [sp, 0x8] b _0803CB4E _0803C778: ldr r5, [sp, 0x8] adds r5, 0x18 b _0803CB4E _0803C77E: ldr r5, [sp, 0x8] adds r5, 0xC b _0803CB4E _0803C784: ldr r5, [sp, 0x8] adds r5, 0x24 b _0803CB4E _0803C78A: cmp r4, 0x1 beq _0803C7A6 cmp r4, 0x1 bgt _0803C798 cmp r4, 0 beq _0803C7A2 b _0803CB4E _0803C798: cmp r4, 0x2 beq _0803C7AC cmp r4, 0x3 beq _0803C7B2 b _0803CB4E _0803C7A2: ldr r5, [sp, 0xC] b _0803CB4E _0803C7A6: ldr r5, [sp, 0xC] adds r5, 0x24 b _0803CB4E _0803C7AC: ldr r5, [sp, 0xC] adds r5, 0xC b _0803CB4E _0803C7B2: ldr r5, [sp, 0xC] adds r5, 0x18 b _0803CB4E _0803C7B8: cmp r4, 0x1 beq _0803C7D4 cmp r4, 0x1 bgt _0803C7C6 cmp r4, 0 beq _0803C7D0 b _0803CB4E _0803C7C6: cmp r4, 0x2 beq _0803C7DA cmp r4, 0x3 beq _0803C7E0 b _0803CB4E _0803C7D0: ldr r5, [sp, 0x10] b _0803CB4E _0803C7D4: ldr r5, [sp, 0x10] adds r5, 0x18 b _0803CB4E _0803C7DA: ldr r5, [sp, 0x10] adds r5, 0x24 b _0803CB4E _0803C7E0: ldr r5, [sp, 0x10] adds r5, 0xC b _0803CB4E _0803C7E6: cmp r4, 0x1 beq _0803C802 cmp r4, 0x1 bgt _0803C7F4 cmp r4, 0 beq _0803C7FE b _0803CB4E _0803C7F4: cmp r4, 0x2 beq _0803C808 cmp r4, 0x3 beq _0803C80E b _0803CB4E _0803C7FE: ldr r5, [sp, 0x14] b _0803CB4E _0803C802: ldr r5, [sp, 0x14] adds r5, 0x24 b _0803CB4E _0803C808: ldr r5, [sp, 0x14] adds r5, 0x18 b _0803CB4E _0803C80E: ldr r5, [sp, 0x14] adds r5, 0xC b _0803CB4E _0803C814: cmp r4, 0x1 beq _0803C832 cmp r4, 0x1 bgt _0803C822 cmp r4, 0 beq _0803C82C b _0803CB4E _0803C822: cmp r4, 0x2 beq _0803C836 cmp r4, 0x3 beq _0803C83C b _0803CB4E _0803C82C: ldr r5, [sp, 0x18] adds r5, 0xC b _0803CB4E _0803C832: ldr r5, [sp, 0x18] b _0803CB4E _0803C836: ldr r5, [sp, 0x18] adds r5, 0x18 b _0803CB4E _0803C83C: ldr r5, [sp, 0x18] adds r5, 0x24 b _0803CB4E _0803C842: cmp r4, 0x1 beq _0803C860 cmp r4, 0x1 bgt _0803C850 cmp r4, 0 beq _0803C85A b _0803CB4E _0803C850: cmp r4, 0x2 beq _0803C864 cmp r4, 0x3 beq _0803C86A b _0803CB4E _0803C85A: ldr r5, [sp, 0x1C] adds r5, 0xC b _0803CB4E _0803C860: ldr r5, [sp, 0x1C] b _0803CB4E _0803C864: ldr r5, [sp, 0x1C] adds r5, 0x24 b _0803CB4E _0803C86A: ldr r5, [sp, 0x1C] adds r5, 0x18 b _0803CB4E _0803C870: cmp r4, 0x1 beq _0803C88E cmp r4, 0x1 bgt _0803C87E cmp r4, 0 beq _0803C888 b _0803CB4E _0803C87E: cmp r4, 0x2 beq _0803C892 cmp r4, 0x3 beq _0803C898 b _0803CB4E _0803C888: ldr r5, [sp, 0x20] adds r5, 0x18 b _0803CB4E _0803C88E: ldr r5, [sp, 0x20] b _0803CB4E _0803C892: ldr r5, [sp, 0x20] adds r5, 0xC b _0803CB4E _0803C898: ldr r5, [sp, 0x20] adds r5, 0x24 b _0803CB4E _0803C89E: cmp r4, 0x1 beq _0803C8BC cmp r4, 0x1 bgt _0803C8AC cmp r4, 0 beq _0803C8B6 b _0803CB4E _0803C8AC: cmp r4, 0x2 beq _0803C8C0 cmp r4, 0x3 beq _0803C8C6 b _0803CB4E _0803C8B6: ldr r5, [sp, 0x24] adds r5, 0x24 b _0803CB4E _0803C8BC: ldr r5, [sp, 0x24] b _0803CB4E _0803C8C0: ldr r5, [sp, 0x24] adds r5, 0xC b _0803CB4E _0803C8C6: ldr r5, [sp, 0x24] adds r5, 0x18 b _0803CB4E _0803C8CC: cmp r4, 0x1 beq _0803C8EA cmp r4, 0x1 bgt _0803C8DA cmp r4, 0 beq _0803C8E4 b _0803CB4E _0803C8DA: cmp r4, 0x2 beq _0803C8EE cmp r4, 0x3 beq _0803C8F4 b _0803CB4E _0803C8E4: ldr r5, [sp, 0x28] adds r5, 0x18 b _0803CB4E _0803C8EA: ldr r5, [sp, 0x28] b _0803CB4E _0803C8EE: ldr r5, [sp, 0x28] adds r5, 0x24 b _0803CB4E _0803C8F4: ldr r5, [sp, 0x28] adds r5, 0xC b _0803CB4E _0803C8FA: cmp r4, 0x1 beq _0803C918 cmp r4, 0x1 bgt _0803C908 cmp r4, 0 beq _0803C912 b _0803CB4E _0803C908: cmp r4, 0x2 beq _0803C91C cmp r4, 0x3 beq _0803C922 b _0803CB4E _0803C912: ldr r5, [sp, 0x2C] adds r5, 0x24 b _0803CB4E _0803C918: ldr r5, [sp, 0x2C] b _0803CB4E _0803C91C: ldr r5, [sp, 0x2C] adds r5, 0x18 b _0803CB4E _0803C922: ldr r5, [sp, 0x2C] adds r5, 0xC b _0803CB4E _0803C928: cmp r4, 0x1 beq _0803C946 cmp r4, 0x1 bgt _0803C936 cmp r4, 0 beq _0803C940 b _0803CB4E _0803C936: cmp r4, 0x2 beq _0803C94C cmp r4, 0x3 beq _0803C950 b _0803CB4E _0803C940: ldr r5, [sp, 0x30] adds r5, 0xC b _0803CB4E _0803C946: ldr r5, [sp, 0x30] adds r5, 0x18 b _0803CB4E _0803C94C: ldr r5, [sp, 0x30] b _0803CB4E _0803C950: ldr r5, [sp, 0x30] adds r5, 0x24 b _0803CB4E _0803C956: cmp r4, 0x1 beq _0803C974 cmp r4, 0x1 bgt _0803C964 cmp r4, 0 beq _0803C96E b _0803CB4E _0803C964: cmp r4, 0x2 beq _0803C97A cmp r4, 0x3 beq _0803C97E b _0803CB4E _0803C96E: mov r5, r10 adds r5, 0xC b _0803CB4E _0803C974: mov r5, r10 adds r5, 0x24 b _0803CB4E _0803C97A: mov r5, r10 b _0803CB4E _0803C97E: mov r5, r10 adds r5, 0x18 b _0803CB4E _0803C984: cmp r4, 0x1 beq _0803C9A2 cmp r4, 0x1 bgt _0803C992 cmp r4, 0 beq _0803C99C b _0803CB4E _0803C992: cmp r4, 0x2 beq _0803C9A8 cmp r4, 0x3 beq _0803C9AC b _0803CB4E _0803C99C: ldr r5, [sp, 0x34] adds r5, 0x18 b _0803CB4E _0803C9A2: ldr r5, [sp, 0x34] adds r5, 0xC b _0803CB4E _0803C9A8: ldr r5, [sp, 0x34] b _0803CB4E _0803C9AC: ldr r5, [sp, 0x34] adds r5, 0x24 b _0803CB4E _0803C9B2: cmp r4, 0x1 beq _0803C9D0 cmp r4, 0x1 bgt _0803C9C0 cmp r4, 0 beq _0803C9CA b _0803CB4E _0803C9C0: cmp r4, 0x2 beq _0803C9D6 cmp r4, 0x3 beq _0803C9DA b _0803CB4E _0803C9CA: mov r5, r8 adds r5, 0x24 b _0803CB4E _0803C9D0: mov r5, r8 adds r5, 0xC b _0803CB4E _0803C9D6: mov r5, r8 b _0803CB4E _0803C9DA: mov r5, r8 adds r5, 0x18 b _0803CB4E _0803C9E0: cmp r4, 0x1 beq _0803C9FE cmp r4, 0x1 bgt _0803C9EE cmp r4, 0 beq _0803C9F8 b _0803CB4E _0803C9EE: cmp r4, 0x2 beq _0803CA04 cmp r4, 0x3 beq _0803CA08 b _0803CB4E _0803C9F8: ldr r5, [sp, 0x38] adds r5, 0x18 b _0803CB4E _0803C9FE: ldr r5, [sp, 0x38] adds r5, 0x24 b _0803CB4E _0803CA04: ldr r5, [sp, 0x38] b _0803CB4E _0803CA08: ldr r5, [sp, 0x38] adds r5, 0xC b _0803CB4E _0803CA0E: cmp r4, 0x1 beq _0803CA2C cmp r4, 0x1 bgt _0803CA1C cmp r4, 0 beq _0803CA26 b _0803CB4E _0803CA1C: cmp r4, 0x2 beq _0803CA32 cmp r4, 0x3 beq _0803CA36 b _0803CB4E _0803CA26: adds r5, r3, 0 adds r5, 0x24 b _0803CB4E _0803CA2C: adds r5, r3, 0 adds r5, 0x18 b _0803CB4E _0803CA32: adds r5, r3, 0 b _0803CB4E _0803CA36: adds r5, r3, 0 adds r5, 0xC b _0803CB4E _0803CA3C: cmp r4, 0x1 beq _0803CA5A cmp r4, 0x1 bgt _0803CA4A cmp r4, 0 beq _0803CA54 b _0803CB4E _0803CA4A: cmp r4, 0x2 beq _0803CA60 cmp r4, 0x3 beq _0803CA66 b _0803CB4E _0803CA54: ldr r5, [sp, 0x3C] adds r5, 0xC b _0803CB4E _0803CA5A: ldr r5, [sp, 0x3C] adds r5, 0x18 b _0803CB4E _0803CA60: ldr r5, [sp, 0x3C] adds r5, 0x24 b _0803CB4E _0803CA66: ldr r5, [sp, 0x3C] b _0803CB4E _0803CA6A: cmp r4, 0x1 beq _0803CA88 cmp r4, 0x1 bgt _0803CA78 cmp r4, 0 beq _0803CA82 b _0803CB4E _0803CA78: cmp r4, 0x2 beq _0803CA8E cmp r4, 0x3 beq _0803CA94 b _0803CB4E _0803CA82: adds r5, r7, 0 adds r5, 0xC b _0803CB4E _0803CA88: adds r5, r7, 0 adds r5, 0x24 b _0803CB4E _0803CA8E: adds r5, r7, 0 adds r5, 0x18 b _0803CB4E _0803CA94: adds r5, r7, 0 b _0803CB4E _0803CA98: cmp r4, 0x1 beq _0803CAB6 cmp r4, 0x1 bgt _0803CAA6 cmp r4, 0 beq _0803CAB0 b _0803CB4E _0803CAA6: cmp r4, 0x2 beq _0803CABC cmp r4, 0x3 beq _0803CAC2 b _0803CB4E _0803CAB0: ldr r5, [sp, 0x40] adds r5, 0x18 b _0803CB4E _0803CAB6: ldr r5, [sp, 0x40] adds r5, 0xC b _0803CB4E _0803CABC: ldr r5, [sp, 0x40] adds r5, 0x24 b _0803CB4E _0803CAC2: ldr r5, [sp, 0x40] b _0803CB4E _0803CAC6: cmp r4, 0x1 beq _0803CAE4 cmp r4, 0x1 bgt _0803CAD4 cmp r4, 0 beq _0803CADE b _0803CB4E _0803CAD4: cmp r4, 0x2 beq _0803CAEA cmp r4, 0x3 beq _0803CAF0 b _0803CB4E _0803CADE: adds r5, r6, 0 adds r5, 0x24 b _0803CB4E _0803CAE4: adds r5, r6, 0 adds r5, 0xC b _0803CB4E _0803CAEA: adds r5, r6, 0 adds r5, 0x18 b _0803CB4E _0803CAF0: adds r5, r6, 0 b _0803CB4E _0803CAF4: cmp r4, 0x1 beq _0803CB12 cmp r4, 0x1 bgt _0803CB02 cmp r4, 0 beq _0803CB0C b _0803CB4E _0803CB02: cmp r4, 0x2 beq _0803CB18 cmp r4, 0x3 beq _0803CB1E b _0803CB4E _0803CB0C: mov r5, r9 adds r5, 0x18 b _0803CB4E _0803CB12: mov r5, r9 adds r5, 0x24 b _0803CB4E _0803CB18: mov r5, r9 adds r5, 0xC b _0803CB4E _0803CB1E: mov r5, r9 b _0803CB4E _0803CB22: cmp r4, 0x1 beq _0803CB40 cmp r4, 0x1 bgt _0803CB30 cmp r4, 0 beq _0803CB3A b _0803CB4E _0803CB30: cmp r4, 0x2 beq _0803CB46 cmp r4, 0x3 beq _0803CB4C b _0803CB4E _0803CB3A: adds r5, r2, 0 adds r5, 0x24 b _0803CB4E _0803CB40: adds r5, r2, 0 adds r5, 0x18 b _0803CB4E _0803CB46: adds r5, r2, 0 adds r5, 0xC b _0803CB4E _0803CB4C: adds r5, r2, 0 _0803CB4E: adds r0, r5, 0 add sp, 0x4C pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_803C638 thumb_func_start PokemonGetField PokemonGetField: @ 803CB60 push {lr} adds r3, r0, 0 adds r0, r1, 0 subs r0, 0x37 cmp r0, 0x9 bhi _0803CBF0 lsls r0, 2 ldr r1, _0803CB78 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0803CB78: .4byte _0803CB7C .align 2, 0 _0803CB7C: .4byte _0803CBA4 .4byte _0803CBA8 .4byte _0803CBB0 .4byte _0803CBB8 .4byte _0803CBC0 .4byte _0803CBC8 .4byte _0803CBD0 .4byte _0803CBD8 .4byte _0803CBE0 .4byte _0803CBE8 _0803CBA4: ldr r0, [r3, 0x50] b _0803CBF6 _0803CBA8: adds r0, r3, 0 adds r0, 0x54 ldrb r0, [r0] b _0803CBF6 _0803CBB0: adds r0, r3, 0 adds r0, 0x56 ldrh r0, [r0] b _0803CBF6 _0803CBB8: adds r0, r3, 0 adds r0, 0x58 ldrh r0, [r0] b _0803CBF6 _0803CBC0: adds r0, r3, 0 adds r0, 0x5A ldrh r0, [r0] b _0803CBF6 _0803CBC8: adds r0, r3, 0 adds r0, 0x5C ldrh r0, [r0] b _0803CBF6 _0803CBD0: adds r0, r3, 0 adds r0, 0x5E ldrh r0, [r0] b _0803CBF6 _0803CBD8: adds r0, r3, 0 adds r0, 0x60 ldrh r0, [r0] b _0803CBF6 _0803CBE0: adds r0, r3, 0 adds r0, 0x62 ldrh r0, [r0] b _0803CBF6 _0803CBE8: adds r0, r3, 0 adds r0, 0x55 ldrb r0, [r0] b _0803CBF6 _0803CBF0: adds r0, r3, 0 bl PokemonGetEncryptedField _0803CBF6: pop {r1} bx r1 thumb_func_end PokemonGetField thumb_func_start PokemonGetEncryptedField PokemonGetEncryptedField: @ 803CBFC push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x4 mov r8, r0 str r1, [sp] adds r7, r2, 0 movs r4, 0 mov r9, r4 mov r10, r4 movs r6, 0 movs r5, 0 cmp r1, 0xA ble _0803CC7A ldr r1, [r0] movs r2, 0 bl sub_803C638 mov r9, r0 mov r0, r8 ldr r1, [r0] movs r2, 0x1 bl sub_803C638 mov r10, r0 mov r2, r8 ldr r1, [r2] mov r0, r8 movs r2, 0x2 bl sub_803C638 adds r6, r0, 0 mov r0, r8 ldr r1, [r0] movs r2, 0x3 bl sub_803C638 adds r5, r0, 0 mov r0, r8 bl pokemon_decrypt mov r0, r8 bl pokemon_calc_checksum lsls r0, 16 lsrs r0, 16 mov r1, r8 ldrh r1, [r1, 0x1C] cmp r0, r1 beq _0803CC7A mov r2, r8 ldrb r0, [r2, 0x13] movs r1, 0x1 orrs r0, r1 movs r1, 0x4 orrs r0, r1 strb r0, [r2, 0x13] ldrb r0, [r5, 0x7] movs r1, 0x40 orrs r0, r1 strb r0, [r5, 0x7] _0803CC7A: ldr r0, [sp] cmp r0, 0x52 bls _0803CC82 b _0803D1DC _0803CC82: lsls r0, 2 ldr r1, _0803CC8C adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0803CC8C: .4byte _0803CC90 .align 2, 0 _0803CC90: .4byte _0803CDDC .4byte _0803CDE2 .4byte _0803CDE8 .4byte _0803CE5C .4byte _0803CE62 .4byte _0803CE68 .4byte _0803CE6E .4byte _0803CE74 .4byte _0803CEA0 .4byte _0803CEA6 .4byte _0803CEAC .4byte _0803CEB2 .4byte _0803CECA .4byte _0803CEE2 .4byte _0803CEE2 .4byte _0803CEE2 .4byte _0803CEE2 .4byte _0803CEEE .4byte _0803CEEE .4byte _0803CEEE .4byte _0803CEEE .4byte _0803CED6 .4byte _0803CF10 .4byte _0803CF14 .4byte _0803CF18 .4byte _0803CED0 .4byte _0803CEF8 .4byte _0803CEFC .4byte _0803CF00 .4byte _0803CF04 .4byte _0803CF08 .4byte _0803CF0C .4byte _0803CEDC .4byte _0803CF1C .4byte _0803CF28 .4byte _0803CF2C .4byte _0803CF30 .4byte _0803CF38 .4byte _0803CF40 .4byte _0803CF4E .4byte _0803CF56 .4byte _0803CF5E .4byte _0803CF66 .4byte _0803CF6E .4byte _0803CF76 .4byte _0803CF7E .4byte _0803CF82 .4byte _0803CF20 .4byte _0803CF24 .4byte _0803CF48 .4byte _0803CF88 .4byte _0803CF90 .4byte _0803CF98 .4byte _0803CFA0 .4byte _0803CFA8 .4byte _0803D1DC .4byte _0803D1DC .4byte _0803D1DC .4byte _0803D1DC .4byte _0803D1DC .4byte _0803D1DC .4byte _0803D1DC .4byte _0803D1DC .4byte _0803D1DC .4byte _0803D1DC .4byte _0803D006 .4byte _0803D02C .4byte _0803CFB0 .4byte _0803CFB6 .4byte _0803CFBA .4byte _0803CFBE .4byte _0803CFC2 .4byte _0803CFCA .4byte _0803CFD2 .4byte _0803CFDA .4byte _0803CFE2 .4byte _0803CFE8 .4byte _0803CFF0 .4byte _0803CFF8 .4byte _0803D000 .4byte _0803D066 .4byte _0803D0C0 .4byte _0803D142 _0803CDDC: mov r1, r8 ldr r4, [r1] b _0803D1DC _0803CDE2: mov r2, r8 ldr r4, [r2, 0x4] b _0803D1DC _0803CDE8: mov r0, r8 ldrb r1, [r0, 0x13] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _0803CE04 ldr r1, _0803CE00 adds r0, r7, 0 bl StringCopy b _0803CE50 .align 2, 0 _0803CE00: .4byte gUnknown_08400E3A _0803CE04: movs r0, 0x4 ands r0, r1 cmp r0, 0 beq _0803CE1C ldr r1, _0803CE18 adds r0, r7, 0 bl StringCopy b _0803CE50 .align 2, 0 _0803CE18: .4byte gUnknown_0842CC34 _0803CE1C: movs r4, 0 mov r1, r8 adds r1, 0x8 mov r2, r8 ldrb r0, [r2, 0x8] ldrb r3, [r2, 0x12] cmp r0, 0xFF beq _0803CE42 adds r2, r1, 0 _0803CE2E: adds r1, r7, r4 ldrb r0, [r2] strb r0, [r1] adds r2, 0x1 adds r4, 0x1 cmp r4, 0x9 bhi _0803CE42 ldrb r0, [r2] cmp r0, 0xFF bne _0803CE2E _0803CE42: adds r1, r7, r4 movs r0, 0xFF strb r0, [r1] adds r0, r7, 0 adds r1, r3, 0 bl ConvertInternationalString _0803CE50: adds r0, r7, 0 bl StringLength lsls r0, 16 lsrs r4, r0, 16 b _0803D1DC _0803CE5C: mov r7, r8 ldrb r4, [r7, 0x12] b _0803D1DC _0803CE62: mov r1, r8 ldrb r0, [r1, 0x13] b _0803CFEA _0803CE68: mov r2, r8 ldrb r0, [r2, 0x13] b _0803CFF2 _0803CE6E: mov r7, r8 ldrb r0, [r7, 0x13] b _0803CFFA _0803CE74: movs r4, 0 mov r1, r8 adds r1, 0x14 mov r2, r8 ldrb r0, [r2, 0x14] cmp r0, 0xFF beq _0803CE98 adds r2, r1, 0 _0803CE84: adds r1, r7, r4 ldrb r0, [r2] strb r0, [r1] adds r2, 0x1 adds r4, 0x1 cmp r4, 0x6 bhi _0803CE98 ldrb r0, [r2] cmp r0, 0xFF bne _0803CE84 _0803CE98: adds r1, r7, r4 movs r0, 0xFF strb r0, [r1] b _0803D1DC _0803CEA0: mov r7, r8 ldrb r4, [r7, 0x1B] b _0803D1DC _0803CEA6: mov r0, r8 ldrh r4, [r0, 0x1C] b _0803D1DC _0803CEAC: mov r1, r8 ldrh r4, [r1, 0x1E] b _0803D1DC _0803CEB2: mov r2, r8 ldrb r1, [r2, 0x13] movs r0, 0x1 ands r0, r1 movs r4, 0xCE lsls r4, 1 cmp r0, 0 beq _0803CEC4 b _0803D1DC _0803CEC4: mov r7, r9 ldrh r4, [r7] b _0803D1DC _0803CECA: mov r0, r9 ldrh r4, [r0, 0x2] b _0803D1DC _0803CED0: mov r1, r9 ldr r4, [r1, 0x4] b _0803D1DC _0803CED6: mov r2, r9 ldrb r4, [r2, 0x8] b _0803D1DC _0803CEDC: mov r7, r9 ldrb r4, [r7, 0x9] b _0803D1DC _0803CEE2: ldr r0, [sp] subs r0, 0xD lsls r0, 1 add r0, r10 ldrh r4, [r0] b _0803D1DC _0803CEEE: ldr r0, [sp] add r0, r10 subs r0, 0x9 ldrb r4, [r0] b _0803D1DC _0803CEF8: ldrb r4, [r6] b _0803D1DC _0803CEFC: ldrb r4, [r6, 0x1] b _0803D1DC _0803CF00: ldrb r4, [r6, 0x2] b _0803D1DC _0803CF04: ldrb r4, [r6, 0x3] b _0803D1DC _0803CF08: ldrb r4, [r6, 0x4] b _0803D1DC _0803CF0C: ldrb r4, [r6, 0x5] b _0803D1DC _0803CF10: ldrb r4, [r6, 0x6] b _0803D1DC _0803CF14: ldrb r4, [r6, 0x7] b _0803D1DC _0803CF18: ldrb r4, [r6, 0x8] b _0803D1DC _0803CF1C: ldrb r4, [r6, 0x9] b _0803D1DC _0803CF20: ldrb r4, [r6, 0xA] b _0803D1DC _0803CF24: ldrb r4, [r6, 0xB] b _0803D1DC _0803CF28: ldrb r4, [r5] b _0803D1DC _0803CF2C: ldrb r4, [r5, 0x1] b _0803D1DC _0803CF30: ldrb r0, [r5, 0x2] lsls r0, 25 lsrs r4, r0, 25 b _0803D1DC _0803CF38: ldrh r0, [r5, 0x2] lsls r0, 21 lsrs r4, r0, 28 b _0803D1DC _0803CF40: ldrb r0, [r5, 0x3] lsls r0, 25 lsrs r4, r0, 28 b _0803D1DC _0803CF48: ldrb r0, [r5, 0x3] lsrs r4, r0, 7 b _0803D1DC _0803CF4E: ldrb r0, [r5, 0x4] lsls r0, 27 lsrs r4, r0, 27 b _0803D1DC _0803CF56: ldrh r0, [r5, 0x4] lsls r0, 22 lsrs r4, r0, 27 b _0803D1DC _0803CF5E: ldrb r0, [r5, 0x5] lsls r0, 25 lsrs r4, r0, 27 b _0803D1DC _0803CF66: ldr r0, [r5, 0x4] lsls r0, 12 lsrs r4, r0, 27 b _0803D1DC _0803CF6E: ldrh r0, [r5, 0x6] lsls r0, 23 lsrs r4, r0, 27 b _0803D1DC _0803CF76: ldrb r0, [r5, 0x7] lsls r0, 26 lsrs r4, r0, 27 b _0803D1DC _0803CF7E: ldrb r0, [r5, 0x7] b _0803CFDC _0803CF82: ldrb r0, [r5, 0x7] lsrs r4, r0, 7 b _0803D1DC _0803CF88: ldrb r0, [r5, 0x8] lsls r0, 29 lsrs r4, r0, 29 b _0803D1DC _0803CF90: ldrb r0, [r5, 0x8] lsls r0, 26 lsrs r4, r0, 29 b _0803D1DC _0803CF98: ldrh r0, [r5, 0x8] lsls r0, 23 lsrs r4, r0, 29 b _0803D1DC _0803CFA0: ldrb r0, [r5, 0x9] lsls r0, 28 lsrs r4, r0, 29 b _0803D1DC _0803CFA8: ldrb r0, [r5, 0x9] lsls r0, 25 lsrs r4, r0, 29 b _0803D1DC _0803CFB0: ldrb r0, [r5, 0x9] lsrs r4, r0, 7 b _0803D1DC _0803CFB6: ldrb r0, [r5, 0xA] b _0803CFEA _0803CFBA: ldrb r0, [r5, 0xA] b _0803CFF2 _0803CFBE: ldrb r0, [r5, 0xA] b _0803CFFA _0803CFC2: ldrb r0, [r5, 0xA] lsls r0, 28 lsrs r4, r0, 31 b _0803D1DC _0803CFCA: ldrb r0, [r5, 0xA] lsls r0, 27 lsrs r4, r0, 31 b _0803D1DC _0803CFD2: ldrb r0, [r5, 0xA] lsls r0, 26 lsrs r4, r0, 31 b _0803D1DC _0803CFDA: ldrb r0, [r5, 0xA] _0803CFDC: lsls r0, 25 lsrs r4, r0, 31 b _0803D1DC _0803CFE2: ldrb r0, [r5, 0xA] lsrs r4, r0, 7 b _0803D1DC _0803CFE8: ldrb r0, [r5, 0xB] _0803CFEA: lsls r0, 31 lsrs r4, r0, 31 b _0803D1DC _0803CFF0: ldrb r0, [r5, 0xB] _0803CFF2: lsls r0, 30 lsrs r4, r0, 31 b _0803D1DC _0803CFF8: ldrb r0, [r5, 0xB] _0803CFFA: lsls r0, 29 lsrs r4, r0, 31 b _0803D1DC _0803D000: ldrb r0, [r5, 0xB] lsrs r4, r0, 3 b _0803D1DC _0803D006: mov r0, r9 ldrh r4, [r0] cmp r4, 0 bne _0803D010 b _0803D1DC _0803D010: ldrb r0, [r5, 0x7] lsls r0, 25 cmp r0, 0 blt _0803D026 mov r2, r8 ldrb r1, [r2, 0x13] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _0803D026 b _0803D1DC _0803D026: movs r4, 0xCE lsls r4, 1 b _0803D1DC _0803D02C: ldrb r0, [r5, 0x4] lsls r0, 27 lsrs r4, r0, 27 ldrh r1, [r5, 0x4] movs r0, 0xF8 lsls r0, 2 ands r0, r1 orrs r4, r0 ldrb r0, [r5, 0x5] lsls r0, 25 lsrs r0, 27 lsls r0, 10 orrs r4, r0 ldr r0, [r5, 0x4] movs r1, 0xF8 lsls r1, 12 ands r0, r1 orrs r4, r0 ldrh r0, [r5, 0x6] lsls r0, 23 lsrs r0, 27 lsls r0, 20 orrs r4, r0 ldrb r0, [r5, 0x7] lsls r0, 26 lsrs r0, 27 lsls r0, 25 orrs r4, r0 b _0803D1DC _0803D066: mov r1, r9 ldrh r0, [r1] cmp r0, 0 bne _0803D070 b _0803D1DC _0803D070: ldrb r0, [r5, 0x7] lsls r0, 25 cmp r0, 0 bge _0803D07A b _0803D1DC _0803D07A: ldrh r0, [r7] ldr r1, _0803D0B8 cmp r0, r1 bne _0803D084 b _0803D1DC _0803D084: mov r2, r10 ldrh r5, [r2] adds r6, r1, 0 adds r2, r7, 0 ldr r1, _0803D0BC _0803D08E: ldrh r3, [r2] cmp r5, r3 beq _0803D0A8 mov r7, r10 ldrh r0, [r7, 0x2] cmp r0, r3 beq _0803D0A8 ldrh r0, [r7, 0x4] cmp r0, r3 beq _0803D0A8 ldrh r0, [r7, 0x6] cmp r0, r3 bne _0803D0AC _0803D0A8: ldr r0, [r1] orrs r4, r0 _0803D0AC: adds r2, 0x2 adds r1, 0x4 ldrh r0, [r2] cmp r0, r6 bne _0803D08E b _0803D1DC .align 2, 0 _0803D0B8: .4byte 0x00000163 _0803D0BC: .4byte gUnknown_0820872C _0803D0C0: movs r4, 0 mov r1, r9 ldrh r0, [r1] cmp r0, 0 bne _0803D0CC b _0803D1DC _0803D0CC: ldrb r0, [r5, 0x7] lsls r0, 25 cmp r0, 0 bge _0803D0D6 b _0803D1DC _0803D0D6: ldrb r0, [r5, 0x8] lsls r1, r0, 29 lsrs r4, r1, 29 lsls r0, 26 lsrs r0, 29 adds r4, r0 ldrh r0, [r5, 0x8] lsls r0, 23 lsrs r0, 29 adds r4, r0 ldrb r1, [r5, 0x9] lsls r0, r1, 28 lsrs r0, 29 adds r4, r0 lsls r0, r1, 25 lsrs r0, 29 adds r4, r0 lsrs r1, 7 adds r4, r1 ldrb r1, [r5, 0xA] lsls r0, r1, 31 lsrs r0, 31 adds r4, r0 lsls r0, r1, 30 lsrs r0, 31 adds r4, r0 lsls r0, r1, 29 lsrs r0, 31 adds r4, r0 lsls r0, r1, 28 lsrs r0, 31 adds r4, r0 lsls r0, r1, 27 lsrs r0, 31 adds r4, r0 lsls r0, r1, 26 lsrs r0, 31 adds r4, r0 lsls r0, r1, 25 lsrs r0, 31 adds r4, r0 lsrs r1, 7 adds r4, r1 ldrb r1, [r5, 0xB] lsls r0, r1, 31 lsrs r0, 31 adds r4, r0 lsls r0, r1, 30 lsrs r0, 31 adds r4, r0 lsls r1, 29 lsrs r1, 31 adds r4, r1 b _0803D1DC _0803D142: movs r4, 0 mov r2, r9 ldrh r0, [r2] cmp r0, 0 beq _0803D1DC ldrb r0, [r5, 0x7] lsls r0, 25 cmp r0, 0 blt _0803D1DC ldrb r2, [r5, 0x9] lsrs r4, r2, 7 ldrb r1, [r5, 0x8] lsls r0, r1, 29 lsrs r0, 28 orrs r4, r0 lsls r1, 26 lsrs r1, 29 lsls r1, 4 orrs r4, r1 ldrh r0, [r5, 0x8] lsls r0, 23 lsrs r0, 29 lsls r0, 7 orrs r4, r0 lsls r0, r2, 28 lsrs r0, 29 lsls r0, 10 orrs r4, r0 lsls r2, 25 lsrs r2, 29 lsls r2, 13 orrs r4, r2 ldrb r1, [r5, 0xA] lsls r0, r1, 31 lsrs r0, 31 lsls r0, 16 orrs r4, r0 lsls r0, r1, 30 lsrs r0, 31 lsls r0, 17 orrs r4, r0 lsls r0, r1, 29 lsrs r0, 31 lsls r0, 18 orrs r4, r0 lsls r0, r1, 28 lsrs r0, 31 lsls r0, 19 orrs r4, r0 lsls r0, r1, 27 lsrs r0, 31 lsls r0, 20 orrs r4, r0 lsls r0, r1, 26 lsrs r0, 31 lsls r0, 21 orrs r4, r0 lsls r0, r1, 25 lsrs r0, 31 lsls r0, 22 orrs r4, r0 lsrs r1, 7 lsls r1, 23 orrs r4, r1 ldrb r1, [r5, 0xB] lsls r0, r1, 31 lsrs r0, 31 lsls r0, 24 orrs r4, r0 lsls r0, r1, 30 lsrs r0, 31 lsls r0, 25 orrs r4, r0 lsls r1, 29 lsrs r1, 31 lsls r1, 26 orrs r4, r1 _0803D1DC: ldr r7, [sp] cmp r7, 0xA ble _0803D1E8 mov r0, r8 bl pokemon_encrypt _0803D1E8: adds r0, r4, 0 add sp, 0x4 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 thumb_func_end PokemonGetEncryptedField thumb_func_start pokemon_setattr pokemon_setattr: @ 803D1FC push {lr} adds r3, r0, 0 adds r0, r1, 0 subs r0, 0x37 cmp r0, 0xA bhi _0803D2E0 lsls r0, 2 ldr r1, _0803D214 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0803D214: .4byte _0803D218 .align 2, 0 _0803D218: .4byte _0803D244 .4byte _0803D25C .4byte _0803D266 .4byte _0803D276 .4byte _0803D286 .4byte _0803D296 .4byte _0803D2A6 .4byte _0803D2B6 .4byte _0803D2C6 .4byte _0803D2D6 .4byte _0803D2E6 _0803D244: ldrb r1, [r2] ldrb r0, [r2, 0x1] lsls r0, 8 adds r1, r0 ldrb r0, [r2, 0x2] lsls r0, 16 adds r1, r0 ldrb r0, [r2, 0x3] lsls r0, 24 adds r1, r0 str r1, [r3, 0x50] b _0803D2E6 _0803D25C: ldrb r1, [r2] adds r0, r3, 0 adds r0, 0x54 strb r1, [r0] b _0803D2E6 _0803D266: ldrb r0, [r2] ldrb r1, [r2, 0x1] lsls r1, 8 adds r0, r1 adds r1, r3, 0 adds r1, 0x56 strh r0, [r1] b _0803D2E6 _0803D276: ldrb r0, [r2] ldrb r1, [r2, 0x1] lsls r1, 8 adds r0, r1 adds r1, r3, 0 adds r1, 0x58 strh r0, [r1] b _0803D2E6 _0803D286: ldrb r0, [r2] ldrb r1, [r2, 0x1] lsls r1, 8 adds r0, r1 adds r1, r3, 0 adds r1, 0x5A strh r0, [r1] b _0803D2E6 _0803D296: ldrb r0, [r2] ldrb r1, [r2, 0x1] lsls r1, 8 adds r0, r1 adds r1, r3, 0 adds r1, 0x5C strh r0, [r1] b _0803D2E6 _0803D2A6: ldrb r0, [r2] ldrb r1, [r2, 0x1] lsls r1, 8 adds r0, r1 adds r1, r3, 0 adds r1, 0x5E strh r0, [r1] b _0803D2E6 _0803D2B6: ldrb r0, [r2] ldrb r1, [r2, 0x1] lsls r1, 8 adds r0, r1 adds r1, r3, 0 adds r1, 0x60 strh r0, [r1] b _0803D2E6 _0803D2C6: ldrb r0, [r2] ldrb r1, [r2, 0x1] lsls r1, 8 adds r0, r1 adds r1, r3, 0 adds r1, 0x62 strh r0, [r1] b _0803D2E6 _0803D2D6: ldrb r1, [r2] adds r0, r3, 0 adds r0, 0x55 strb r1, [r0] b _0803D2E6 _0803D2E0: adds r0, r3, 0 bl PokemonSetEncryptedField _0803D2E6: pop {r0} bx r0 thumb_func_end pokemon_setattr thumb_func_start PokemonSetEncryptedField PokemonSetEncryptedField: @ 803D2EC push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} adds r7, r0, 0 mov r10, r1 adds r4, r2, 0 movs r0, 0 mov r8, r0 mov r9, r0 movs r6, 0 movs r5, 0 cmp r1, 0xA ble _0803D36C ldr r1, [r7] adds r0, r7, 0 movs r2, 0 bl sub_803C638 mov r8, r0 ldr r1, [r7] adds r0, r7, 0 movs r2, 0x1 bl sub_803C638 mov r9, r0 ldr r1, [r7] adds r0, r7, 0 movs r2, 0x2 bl sub_803C638 adds r6, r0, 0 ldr r1, [r7] adds r0, r7, 0 movs r2, 0x3 bl sub_803C638 adds r5, r0, 0 adds r0, r7, 0 bl pokemon_decrypt adds r0, r7, 0 bl pokemon_calc_checksum lsls r0, 16 lsrs r0, 16 ldrh r1, [r7, 0x1C] cmp r0, r1 beq _0803D36C ldrb r0, [r7, 0x13] movs r1, 0x1 orrs r0, r1 movs r1, 0x4 orrs r0, r1 strb r0, [r7, 0x13] ldrb r0, [r5, 0x7] movs r1, 0x40 orrs r0, r1 strb r0, [r5, 0x7] adds r0, r7, 0 bl pokemon_encrypt b _0803D8F6 _0803D36C: mov r0, r10 cmp r0, 0x4F bls _0803D374 b _0803D8E2 _0803D374: lsls r0, 2 ldr r1, _0803D380 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0803D380: .4byte _0803D384 .align 2, 0 _0803D384: .4byte _0803D4C4 .4byte _0803D4DC .4byte _0803D4F4 .4byte _0803D50A .4byte _0803D510 .4byte _0803D520 .4byte _0803D532 .4byte _0803D544 .4byte _0803D55A .4byte _0803D560 .4byte _0803D56C .4byte _0803D578 .4byte _0803D598 .4byte _0803D5D0 .4byte _0803D5D0 .4byte _0803D5D0 .4byte _0803D5D0 .4byte _0803D5E4 .4byte _0803D5E4 .4byte _0803D5E4 .4byte _0803D5E4 .4byte _0803D5C0 .4byte _0803D614 .4byte _0803D61A .4byte _0803D620 .4byte _0803D5A6 .4byte _0803D5F0 .4byte _0803D5F6 .4byte _0803D5FC .4byte _0803D602 .4byte _0803D608 .4byte _0803D60E .4byte _0803D5C8 .4byte _0803D626 .4byte _0803D638 .4byte _0803D63E .4byte _0803D644 .4byte _0803D658 .4byte _0803D670 .4byte _0803D696 .4byte _0803D6AA .4byte _0803D6C4 .4byte _0803D6DA .4byte _0803D6F4 .4byte _0803D70C .4byte _0803D720 .4byte _0803D750 .4byte _0803D62C .4byte _0803D632 .4byte _0803D686 .4byte _0803D760 .4byte _0803D76E .4byte _0803D784 .4byte _0803D79C .4byte _0803D7AC .4byte _0803D8E2 .4byte _0803D8E2 .4byte _0803D8E2 .4byte _0803D8E2 .4byte _0803D8E2 .4byte _0803D8E2 .4byte _0803D8E2 .4byte _0803D8E2 .4byte _0803D8E2 .4byte _0803D8E2 .4byte _0803D8E2 .4byte _0803D89A .4byte _0803D7C2 .4byte _0803D7D2 .4byte _0803D7E0 .4byte _0803D7F0 .4byte _0803D800 .4byte _0803D810 .4byte _0803D820 .4byte _0803D830 .4byte _0803D846 .4byte _0803D856 .4byte _0803D864 .4byte _0803D874 .4byte _0803D88A _0803D4C4: ldrb r1, [r4] ldrb r0, [r4, 0x1] lsls r0, 8 adds r1, r0 ldrb r0, [r4, 0x2] lsls r0, 16 adds r1, r0 ldrb r0, [r4, 0x3] lsls r0, 24 adds r1, r0 str r1, [r7] b _0803D8E2 _0803D4DC: ldrb r1, [r4] ldrb r0, [r4, 0x1] lsls r0, 8 adds r1, r0 ldrb r0, [r4, 0x2] lsls r0, 16 adds r1, r0 ldrb r0, [r4, 0x3] lsls r0, 24 adds r1, r0 str r1, [r7, 0x4] b _0803D8E2 _0803D4F4: movs r2, 0 adds r3, r7, 0 adds r3, 0x8 _0803D4FA: adds r0, r3, r2 adds r1, r4, r2 ldrb r1, [r1] strb r1, [r0] adds r2, 0x1 cmp r2, 0x9 ble _0803D4FA b _0803D8E2 _0803D50A: ldrb r0, [r4] strb r0, [r7, 0x12] b _0803D8E2 _0803D510: ldrb r0, [r4] movs r1, 0x1 ands r1, r0 ldrb r2, [r7, 0x13] movs r0, 0x2 negs r0, r0 ands r0, r2 b _0803D73E _0803D520: ldrb r0, [r4] movs r1, 0x1 ands r1, r0 lsls r1, 1 ldrb r2, [r7, 0x13] movs r0, 0x3 negs r0, r0 ands r0, r2 b _0803D73E _0803D532: ldrb r0, [r4] movs r1, 0x1 ands r1, r0 lsls r1, 2 ldrb r2, [r7, 0x13] movs r0, 0x5 negs r0, r0 ands r0, r2 b _0803D73E _0803D544: movs r2, 0 adds r3, r7, 0 adds r3, 0x14 _0803D54A: adds r0, r3, r2 adds r1, r4, r2 ldrb r1, [r1] strb r1, [r0] adds r2, 0x1 cmp r2, 0x6 ble _0803D54A b _0803D8E2 _0803D55A: ldrb r0, [r4] strb r0, [r7, 0x1B] b _0803D8E2 _0803D560: ldrb r1, [r4] ldrb r0, [r4, 0x1] lsls r0, 8 adds r1, r0 strh r1, [r7, 0x1C] b _0803D8E2 _0803D56C: ldrb r1, [r4] ldrb r0, [r4, 0x1] lsls r0, 8 adds r1, r0 strh r1, [r7, 0x1E] b _0803D8E2 _0803D578: ldrb r1, [r4] ldrb r0, [r4, 0x1] lsls r0, 8 adds r1, r0 mov r0, r8 strh r1, [r0] lsls r1, 16 cmp r1, 0 beq _0803D590 ldrb r0, [r7, 0x13] movs r1, 0x2 b _0803D73E _0803D590: ldrb r1, [r7, 0x13] movs r0, 0x3 negs r0, r0 b _0803D74A _0803D598: ldrb r1, [r4] ldrb r0, [r4, 0x1] lsls r0, 8 adds r1, r0 mov r0, r8 strh r1, [r0, 0x2] b _0803D8E2 _0803D5A6: ldrb r1, [r4] ldrb r0, [r4, 0x1] lsls r0, 8 adds r1, r0 ldrb r0, [r4, 0x2] lsls r0, 16 adds r1, r0 ldrb r0, [r4, 0x3] lsls r0, 24 adds r1, r0 mov r0, r8 str r1, [r0, 0x4] b _0803D8E2 _0803D5C0: ldrb r0, [r4] mov r1, r8 strb r0, [r1, 0x8] b _0803D8E2 _0803D5C8: ldrb r0, [r4] mov r1, r8 strb r0, [r1, 0x9] b _0803D8E2 _0803D5D0: mov r2, r10 subs r2, 0xD lsls r2, 1 add r2, r9 ldrb r1, [r4] ldrb r0, [r4, 0x1] lsls r0, 8 adds r1, r0 strh r1, [r2] b _0803D8E2 _0803D5E4: mov r0, r9 add r0, r10 subs r0, 0x9 ldrb r1, [r4] strb r1, [r0] b _0803D8E2 _0803D5F0: ldrb r0, [r4] strb r0, [r6] b _0803D8E2 _0803D5F6: ldrb r0, [r4] strb r0, [r6, 0x1] b _0803D8E2 _0803D5FC: ldrb r0, [r4] strb r0, [r6, 0x2] b _0803D8E2 _0803D602: ldrb r0, [r4] strb r0, [r6, 0x3] b _0803D8E2 _0803D608: ldrb r0, [r4] strb r0, [r6, 0x4] b _0803D8E2 _0803D60E: ldrb r0, [r4] strb r0, [r6, 0x5] b _0803D8E2 _0803D614: ldrb r0, [r4] strb r0, [r6, 0x6] b _0803D8E2 _0803D61A: ldrb r0, [r4] strb r0, [r6, 0x7] b _0803D8E2 _0803D620: ldrb r0, [r4] strb r0, [r6, 0x8] b _0803D8E2 _0803D626: ldrb r0, [r4] strb r0, [r6, 0x9] b _0803D8E2 _0803D62C: ldrb r0, [r4] strb r0, [r6, 0xA] b _0803D8E2 _0803D632: ldrb r0, [r4] strb r0, [r6, 0xB] b _0803D8E2 _0803D638: ldrb r0, [r4] strb r0, [r5] b _0803D8E2 _0803D63E: ldrb r0, [r4] strb r0, [r5, 0x1] b _0803D8E2 _0803D644: ldrb r1, [r4] movs r0, 0x7F ands r1, r0 ldrb r2, [r5, 0x2] movs r0, 0x80 negs r0, r0 ands r0, r2 orrs r0, r1 strb r0, [r5, 0x2] b _0803D8E2 _0803D658: ldrb r1, [r4] movs r0, 0xF ands r1, r0 lsls r1, 7 ldrh r2, [r5, 0x2] ldr r0, _0803D66C ands r0, r2 orrs r0, r1 strh r0, [r5, 0x2] b _0803D8E2 .align 2, 0 _0803D66C: .4byte 0xfffff87f _0803D670: ldrb r1, [r4] movs r0, 0xF ands r1, r0 lsls r1, 3 ldrb r2, [r5, 0x3] movs r0, 0x79 negs r0, r0 ands r0, r2 orrs r0, r1 strb r0, [r5, 0x3] b _0803D8E2 _0803D686: ldrb r0, [r4] lsls r0, 7 ldrb r2, [r5, 0x3] movs r1, 0x7F ands r1, r2 orrs r1, r0 strb r1, [r5, 0x3] b _0803D8E2 _0803D696: ldrb r1, [r4] movs r0, 0x1F ands r1, r0 ldrb r2, [r5, 0x4] movs r0, 0x20 negs r0, r0 ands r0, r2 orrs r0, r1 strb r0, [r5, 0x4] b _0803D8E2 _0803D6AA: ldrb r1, [r4] movs r0, 0x1F ands r1, r0 lsls r1, 5 ldrh r2, [r5, 0x4] ldr r0, _0803D6C0 ands r0, r2 orrs r0, r1 strh r0, [r5, 0x4] b _0803D8E2 .align 2, 0 _0803D6C0: .4byte 0xfffffc1f _0803D6C4: ldrb r1, [r4] movs r0, 0x1F ands r1, r0 lsls r1, 2 ldrb r2, [r5, 0x5] movs r0, 0x7D negs r0, r0 ands r0, r2 orrs r0, r1 strb r0, [r5, 0x5] b _0803D8E2 _0803D6DA: ldrb r2, [r4] movs r0, 0x1F ands r2, r0 lsls r2, 15 ldr r0, [r5, 0x4] ldr r1, _0803D6F0 ands r0, r1 orrs r0, r2 str r0, [r5, 0x4] b _0803D8E2 .align 2, 0 _0803D6F0: .4byte 0xfff07fff _0803D6F4: ldrb r1, [r4] movs r0, 0x1F ands r1, r0 lsls r1, 4 ldrh r2, [r5, 0x6] ldr r0, _0803D708 ands r0, r2 orrs r0, r1 strh r0, [r5, 0x6] b _0803D8E2 .align 2, 0 _0803D708: .4byte 0xfffffe0f _0803D70C: ldrb r1, [r4] movs r0, 0x1F ands r1, r0 lsls r1, 1 ldrb r2, [r5, 0x7] movs r0, 0x3F negs r0, r0 ands r0, r2 orrs r0, r1 b _0803D8E0 _0803D720: ldrb r1, [r4] movs r0, 0x1 ands r1, r0 lsls r1, 6 ldrb r2, [r5, 0x7] movs r0, 0x41 negs r0, r0 ands r0, r2 orrs r0, r1 strb r0, [r5, 0x7] lsls r0, 25 cmp r0, 0 bge _0803D744 ldrb r0, [r7, 0x13] movs r1, 0x4 _0803D73E: orrs r0, r1 strb r0, [r7, 0x13] b _0803D8E2 _0803D744: ldrb r1, [r7, 0x13] movs r0, 0x5 negs r0, r0 _0803D74A: ands r0, r1 strb r0, [r7, 0x13] b _0803D8E2 _0803D750: ldrb r0, [r4] lsls r0, 7 ldrb r2, [r5, 0x7] movs r1, 0x7F ands r1, r2 orrs r1, r0 strb r1, [r5, 0x7] b _0803D8E2 _0803D760: ldrb r1, [r4] movs r0, 0x7 ands r1, r0 ldrb r2, [r5, 0x8] movs r0, 0x8 negs r0, r0 b _0803D77C _0803D76E: ldrb r1, [r4] movs r0, 0x7 ands r1, r0 lsls r1, 3 ldrb r2, [r5, 0x8] movs r0, 0x39 negs r0, r0 _0803D77C: ands r0, r2 orrs r0, r1 strb r0, [r5, 0x8] b _0803D8E2 _0803D784: ldrb r1, [r4] movs r0, 0x7 ands r1, r0 lsls r1, 6 ldrh r2, [r5, 0x8] ldr r0, _0803D798 ands r0, r2 orrs r0, r1 strh r0, [r5, 0x8] b _0803D8E2 .align 2, 0 _0803D798: .4byte 0xfffffe3f _0803D79C: ldrb r1, [r4] movs r0, 0x7 ands r1, r0 lsls r1, 1 ldrb r2, [r5, 0x9] movs r0, 0xF negs r0, r0 b _0803D7BA _0803D7AC: ldrb r1, [r4] movs r0, 0x7 ands r1, r0 lsls r1, 4 ldrb r2, [r5, 0x9] movs r0, 0x71 negs r0, r0 _0803D7BA: ands r0, r2 orrs r0, r1 strb r0, [r5, 0x9] b _0803D8E2 _0803D7C2: ldrb r0, [r4] lsls r0, 7 ldrb r2, [r5, 0x9] movs r1, 0x7F ands r1, r2 orrs r1, r0 strb r1, [r5, 0x9] b _0803D8E2 _0803D7D2: ldrb r1, [r4] movs r0, 0x1 ands r1, r0 ldrb r2, [r5, 0xA] movs r0, 0x2 negs r0, r0 b _0803D83E _0803D7E0: ldrb r1, [r4] movs r0, 0x1 ands r1, r0 lsls r1, 1 ldrb r2, [r5, 0xA] movs r0, 0x3 negs r0, r0 b _0803D83E _0803D7F0: ldrb r1, [r4] movs r0, 0x1 ands r1, r0 lsls r1, 2 ldrb r2, [r5, 0xA] movs r0, 0x5 negs r0, r0 b _0803D83E _0803D800: ldrb r1, [r4] movs r0, 0x1 ands r1, r0 lsls r1, 3 ldrb r2, [r5, 0xA] movs r0, 0x9 negs r0, r0 b _0803D83E _0803D810: ldrb r1, [r4] movs r0, 0x1 ands r1, r0 lsls r1, 4 ldrb r2, [r5, 0xA] movs r0, 0x11 negs r0, r0 b _0803D83E _0803D820: ldrb r1, [r4] movs r0, 0x1 ands r1, r0 lsls r1, 5 ldrb r2, [r5, 0xA] movs r0, 0x21 negs r0, r0 b _0803D83E _0803D830: ldrb r1, [r4] movs r0, 0x1 ands r1, r0 lsls r1, 6 ldrb r2, [r5, 0xA] movs r0, 0x41 negs r0, r0 _0803D83E: ands r0, r2 orrs r0, r1 strb r0, [r5, 0xA] b _0803D8E2 _0803D846: ldrb r0, [r4] lsls r0, 7 ldrb r2, [r5, 0xA] movs r1, 0x7F ands r1, r2 orrs r1, r0 strb r1, [r5, 0xA] b _0803D8E2 _0803D856: ldrb r1, [r4] movs r0, 0x1 ands r1, r0 ldrb r2, [r5, 0xB] movs r0, 0x2 negs r0, r0 b _0803D882 _0803D864: ldrb r1, [r4] movs r0, 0x1 ands r1, r0 lsls r1, 1 ldrb r2, [r5, 0xB] movs r0, 0x3 negs r0, r0 b _0803D882 _0803D874: ldrb r1, [r4] movs r0, 0x1 ands r1, r0 lsls r1, 2 ldrb r2, [r5, 0xB] movs r0, 0x5 negs r0, r0 _0803D882: ands r0, r2 orrs r0, r1 strb r0, [r5, 0xB] b _0803D8E2 _0803D88A: ldrb r0, [r4] lsls r0, 3 ldrb r2, [r5, 0xB] movs r1, 0x7 ands r1, r2 orrs r1, r0 strb r1, [r5, 0xB] b _0803D8E2 _0803D89A: ldrb r1, [r4] movs r4, 0x1F adds r2, r1, 0 ands r2, r4 ldrb r3, [r5, 0x4] movs r0, 0x20 negs r0, r0 ands r0, r3 orrs r0, r2 strb r0, [r5, 0x4] lsrs r1, 5 ands r1, r4 lsls r1, 5 ldrh r2, [r5, 0x4] ldr r0, _0803D904 ands r0, r2 orrs r0, r1 strh r0, [r5, 0x4] ldrb r1, [r5, 0x5] movs r0, 0x7D negs r0, r0 ands r0, r1 strb r0, [r5, 0x5] ldr r0, [r5, 0x4] ldr r1, _0803D908 ands r0, r1 str r0, [r5, 0x4] ldrh r1, [r5, 0x6] ldr r0, _0803D90C ands r0, r1 strh r0, [r5, 0x6] ldrb r1, [r5, 0x7] movs r0, 0x3F negs r0, r0 ands r0, r1 _0803D8E0: strb r0, [r5, 0x7] _0803D8E2: mov r0, r10 cmp r0, 0xA ble _0803D8F6 adds r0, r7, 0 bl pokemon_calc_checksum strh r0, [r7, 0x1C] adds r0, r7, 0 bl pokemon_encrypt _0803D8F6: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0803D904: .4byte 0xfffffc1f _0803D908: .4byte 0xfff07fff _0803D90C: .4byte 0xfffffe0f thumb_func_end PokemonSetEncryptedField thumb_func_start memcpy_pokemon memcpy_pokemon: @ 803D910 push {lr} bl memcpy pop {r0} bx r0 thumb_func_end memcpy_pokemon thumb_func_start pokemon_catch pokemon_catch: @ 803D91C push {r4-r6,lr} adds r6, r0, 0 ldr r4, _0803D948 movs r1, 0x7 adds r2, r4, 0 bl pokemon_setattr adds r2, r4, 0 adds r2, 0x8 adds r0, r6, 0 movs r1, 0x31 bl pokemon_setattr adds r4, 0xA adds r0, r6, 0 movs r1, 0x1 adds r2, r4, 0 bl pokemon_setattr movs r5, 0 b _0803D94E .align 2, 0 _0803D948: .4byte 0x02024ea4 _0803D94C: adds r5, 0x1 _0803D94E: cmp r5, 0x5 bgt _0803D988 movs r0, 0x64 adds r1, r5, 0 muls r1, r0 ldr r0, _0803D980 adds r4, r1, r0 adds r0, r4, 0 movs r1, 0xB movs r2, 0 bl PokemonGetField cmp r0, 0 bne _0803D94C adds r0, r4, 0 adds r1, r6, 0 movs r2, 0x64 bl memcpy_pokemon ldr r1, _0803D984 adds r0, r5, 0x1 strb r0, [r1] movs r0, 0 b _0803D992 .align 2, 0 _0803D980: .4byte 0x03004360 _0803D984: .4byte 0x03004350 _0803D988: adds r0, r6, 0 bl sub_803D998 lsls r0, 24 lsrs r0, 24 _0803D992: pop {r4-r6} pop {r1} bx r1 thumb_func_end pokemon_catch thumb_func_start sub_803D998 sub_803D998: @ 803D998 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x4 mov r9, r0 ldr r0, _0803D9E8 ldrb r5, [r0] _0803D9A8: movs r7, 0 lsls r1, r5, 2 adds r1, r5 lsls r0, r1, 4 subs r0, r1 lsls r0, 5 mov r8, r0 movs r6, 0 _0803D9B8: ldr r3, _0803D9EC adds r0, r6, r3 mov r1, r8 adds r4, r1, r0 adds r0, r4, 0 movs r1, 0xB movs r2, 0 str r3, [sp] bl PokemonGetEncryptedField ldr r3, [sp] cmp r0, 0 bne _0803D9F0 mov r0, r9 bl sub_8040B1C adds r0, r4, 0 mov r1, r9 movs r2, 0x50 bl memcpy_pokemon movs r0, 0x1 b _0803DA0A .align 2, 0 _0803D9E8: .4byte 0x020300a0 _0803D9EC: .4byte 0x020300a4 _0803D9F0: adds r6, 0x50 adds r7, 0x1 cmp r7, 0x1D ble _0803D9B8 adds r5, 0x1 cmp r5, 0xE bne _0803DA00 movs r5, 0 _0803DA00: subs r0, r3, 0x4 ldrb r0, [r0] cmp r5, r0 bne _0803D9A8 movs r0, 0x2 _0803DA0A: add sp, 0x4 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_803D998 thumb_func_start calc_player_party_count calc_player_party_count: @ 803DA18 push {r4,lr} ldr r0, _0803DA24 movs r1, 0 strb r1, [r0] b _0803DA30 .align 2, 0 _0803DA24: .4byte 0x03004350 _0803DA28: ldrb r0, [r4] adds r0, 0x1 strb r0, [r4] adds r0, r4, 0 _0803DA30: adds r4, r0, 0 ldrb r0, [r4] cmp r0, 0x5 bhi _0803DA4E adds r1, r0, 0 movs r0, 0x64 muls r0, r1 ldr r1, _0803DA58 adds r0, r1 movs r1, 0xB movs r2, 0 bl PokemonGetField cmp r0, 0 bne _0803DA28 _0803DA4E: ldrb r0, [r4] pop {r4} pop {r1} bx r1 .align 2, 0 _0803DA58: .4byte 0x03004360 thumb_func_end calc_player_party_count thumb_func_start calc_enemy_party_count calc_enemy_party_count: @ 803DA5C push {r4,lr} ldr r0, _0803DA68 movs r1, 0 strb r1, [r0] b _0803DA74 .align 2, 0 _0803DA68: .4byte 0x030045b8 _0803DA6C: ldrb r0, [r4] adds r0, 0x1 strb r0, [r4] adds r0, r4, 0 _0803DA74: adds r4, r0, 0 ldrb r0, [r4] cmp r0, 0x5 bhi _0803DA92 adds r1, r0, 0 movs r0, 0x64 muls r0, r1 ldr r1, _0803DA9C adds r0, r1 movs r1, 0xB movs r2, 0 bl PokemonGetField cmp r0, 0 bne _0803DA6C _0803DA92: ldrb r0, [r4] pop {r4} pop {r1} bx r1 .align 2, 0 _0803DA9C: .4byte 0x030045c0 thumb_func_end calc_enemy_party_count thumb_func_start sub_803DAA0 sub_803DAA0: @ 803DAA0 push {r4-r6,lr} movs r6, 0 bl calc_player_party_count ldr r1, _0803DB0C ldrb r0, [r1] cmp r0, 0x1 beq _0803DB04 movs r5, 0 ldrb r1, [r1] cmp r6, r1 bge _0803DAFC _0803DAB8: movs r0, 0x64 adds r1, r5, 0 muls r1, r0 ldr r0, _0803DB10 adds r4, r1, r0 adds r0, r4, 0 movs r1, 0x39 movs r2, 0 bl PokemonGetField cmp r0, 0 beq _0803DAF2 adds r0, r4, 0 movs r1, 0x41 movs r2, 0 bl PokemonGetField cmp r0, 0 beq _0803DAF2 adds r0, r4, 0 movs r1, 0x41 movs r2, 0 bl PokemonGetField movs r1, 0xCE lsls r1, 1 cmp r0, r1 beq _0803DAF2 adds r6, 0x1 _0803DAF2: adds r5, 0x1 ldr r0, _0803DB0C ldrb r0, [r0] cmp r5, r0 blt _0803DAB8 _0803DAFC: movs r0, 0 cmp r6, 0x1 bgt _0803DB04 movs r0, 0x2 _0803DB04: pop {r4-r6} pop {r1} bx r1 .align 2, 0 _0803DB0C: .4byte 0x03004350 _0803DB10: .4byte 0x03004360 thumb_func_end sub_803DAA0 thumb_func_start sub_803DB14 sub_803DB14: @ 803DB14 push {lr} lsls r0, 16 lsrs r3, r0, 16 lsls r1, 24 cmp r1, 0 beq _0803DB38 ldr r2, _0803DB30 ldr r1, _0803DB34 lsls r0, r3, 3 subs r0, r3 lsls r0, 2 adds r0, r1 ldrb r0, [r0, 0x17] b _0803DB46 .align 2, 0 _0803DB30: .4byte 0x02024c06 _0803DB34: .4byte gBaseStats _0803DB38: ldr r2, _0803DB50 ldr r1, _0803DB54 lsls r0, r3, 3 subs r0, r3 lsls r0, 2 adds r0, r1 ldrb r0, [r0, 0x16] _0803DB46: strb r0, [r2] ldrb r0, [r2] pop {r1} bx r1 .align 2, 0 _0803DB50: .4byte 0x02024c06 _0803DB54: .4byte gBaseStats thumb_func_end sub_803DB14 thumb_func_start GetMonAbility GetMonAbility: @ 803DB58 push {r4,r5,lr} adds r5, r0, 0 movs r1, 0xB movs r2, 0 bl PokemonGetField adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 adds r0, r5, 0 movs r1, 0x2E movs r2, 0 bl PokemonGetField adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 bl sub_803DB14 lsls r0, 24 lsrs r0, 24 pop {r4,r5} pop {r1} bx r1 thumb_func_end GetMonAbility thumb_func_start create_enemy_party create_enemy_party: @ 803DB8C push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x18 adds r4, r0, 0 bl zero_enemy_party_data ldr r5, _0803DC8C adds r0, r5, 0 adds r1, r4, 0 movs r2, 0xA0 bl memcpy movs r7, 0 _0803DBAC: lsls r0, r7, 1 mov r9, r0 ldr r2, _0803DC8C adds r2, 0x7C mov r10, r2 mov r1, r9 add r1, r10 ldrh r0, [r1] adds r2, r7, 0x1 str r2, [sp, 0x10] cmp r0, 0 beq _0803DC64 movs r0, 0x64 adds r6, r7, 0 muls r6, r0 ldr r2, _0803DC90 mov r8, r2 adds r5, r6, r2 ldrh r1, [r1] ldr r0, _0803DC8C adds r0, 0x94 adds r0, r7, r0 ldrb r2, [r0] movs r0, 0x1 str r0, [sp] lsls r4, r7, 2 ldr r0, _0803DC8C adds r0, 0x34 adds r0, r4, r0 ldr r0, [r0] str r0, [sp, 0x4] movs r0, 0x2 str r0, [sp, 0x8] movs r0, 0 str r0, [sp, 0xC] adds r0, r5, 0 movs r3, 0xF bl create_pokemon_set_level ldr r2, _0803DC94 add r2, r9 adds r0, r5, 0 movs r1, 0xC bl pokemon_setattr movs r5, 0 mov r9, r4 mov r3, r8 mov r4, r10 adds r4, 0x1E _0803DC10: adds r1, r5, 0 adds r1, 0x1A adds r0, r6, r3 adds r2, r7, r4 str r3, [sp, 0x14] bl pokemon_setattr adds r5, 0x1 ldr r3, [sp, 0x14] cmp r5, 0x5 ble _0803DC10 movs r5, 0 movs r0, 0x64 adds r1, r7, 0 muls r1, r0 ldr r0, _0803DC90 adds r7, r1, r0 mov r2, r9 lsls r6, r2, 1 _0803DC36: adds r1, r5, 0 adds r1, 0xD ldr r4, _0803DC98 adds r4, r6, r4 adds r0, r7, 0 adds r2, r4, 0 bl pokemon_setattr adds r1, r5, 0 adds r1, 0x11 ldrh r0, [r4] lsls r2, r0, 1 adds r2, r0 lsls r2, 2 ldr r0, _0803DC9C adds r2, r0 adds r0, r7, 0 bl pokemon_setattr adds r6, 0x2 adds r5, 0x1 cmp r5, 0x3 ble _0803DC36 _0803DC64: ldr r7, [sp, 0x10] cmp r7, 0x5 ble _0803DBAC ldr r1, _0803DCA0 movs r0, 0x8 strh r0, [r1] ldr r1, _0803DCA4 movs r2, 0x80 lsls r2, 3 adds r0, r2, 0 strh r0, [r1] add sp, 0x18 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0803DC8C: .4byte 0x02017000 _0803DC90: .4byte 0x030045c0 _0803DC94: .4byte 0x02017088 _0803DC98: .4byte 0x0201704c _0803DC9C: .4byte gBattleMoves + 0x4 @ PP offset _0803DCA0: .4byte 0x020239f8 _0803DCA4: .4byte 0x0202ff5e thumb_func_end create_enemy_party thumb_func_start sub_803DCA8 sub_803DCA8: @ 803DCA8 push {r4,r5,lr} ldr r5, _0803DCD8 ldr r4, _0803DCDC ldrb r0, [r4, 0x9] movs r1, 0x5 bl __umodsi3 lsls r0, 24 lsrs r0, 24 ldrb r2, [r4, 0x1] lsls r2, 27 lsrs r2, 31 lsls r1, r2, 2 adds r1, r2 adds r0, r1 adds r0, r5 ldrb r0, [r0] ldr r1, _0803DCE0 adds r0, r1 ldrb r0, [r0] pop {r4,r5} pop {r1} bx r1 .align 2, 0 _0803DCD8: .4byte gUnknown_082082E8 _0803DCDC: .4byte 0x02017000 _0803DCE0: .4byte gTrainerClassToPicIndex thumb_func_end sub_803DCA8 thumb_func_start sub_803DCE4 sub_803DCE4: @ 803DCE4 push {r4,r5,lr} ldr r5, _0803DD14 ldr r4, _0803DD18 ldrb r0, [r4, 0x9] movs r1, 0x5 bl __umodsi3 lsls r0, 24 lsrs r0, 24 ldrb r2, [r4, 0x1] lsls r2, 27 lsrs r2, 31 lsls r1, r2, 2 adds r1, r2 adds r0, r1 adds r0, r5 ldrb r0, [r0] ldr r1, _0803DD1C adds r0, r1 ldrb r0, [r0] pop {r4,r5} pop {r1} bx r1 .align 2, 0 _0803DD14: .4byte gUnknown_082082E8 _0803DD18: .4byte 0x02017000 _0803DD1C: .4byte gTrainerClassToNameIndex thumb_func_end sub_803DCE4 thumb_func_start sub_803DD20 sub_803DD20: @ 803DD20 push {r4,lr} movs r4, 0 _0803DD24: movs r0, 0x64 muls r0, r4 ldr r1, _0803DD3C adds r0, r1 movs r1, 0xB movs r2, 0 bl PokemonGetField cmp r0, 0 bne _0803DD40 movs r0, 0 b _0803DD4E .align 2, 0 _0803DD3C: .4byte 0x03004360 _0803DD40: adds r4, 0x1 cmp r4, 0x5 ble _0803DD24 bl sub_803DD54 lsls r0, 24 lsrs r0, 24 _0803DD4E: pop {r4} pop {r1} bx r1 thumb_func_end sub_803DD20 thumb_func_start sub_803DD54 sub_803DD54: @ 803DD54 push {r4-r7,lr} sub sp, 0x4 movs r3, 0 movs r7, 0 _0803DD5C: movs r5, 0 adds r6, r7, 0 movs r4, 0 _0803DD62: ldr r0, _0803DD7C adds r0, r4, r0 adds r0, r6, r0 movs r1, 0xB movs r2, 0 str r3, [sp] bl PokemonGetEncryptedField ldr r3, [sp] cmp r0, 0 bne _0803DD80 movs r0, 0 b _0803DD96 .align 2, 0 _0803DD7C: .4byte 0x020300a4 _0803DD80: adds r4, 0x50 adds r5, 0x1 cmp r5, 0x1D ble _0803DD62 movs r0, 0x96 lsls r0, 4 adds r7, r0 adds r3, 0x1 cmp r3, 0xD ble _0803DD5C movs r0, 0x1 _0803DD96: add sp, 0x4 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_803DD54 thumb_func_start GetSpeciesName GetSpeciesName: @ 803DDA0 push {r4-r7,lr} adds r6, r0, 0 lsls r1, 16 lsrs r5, r1, 16 movs r1, 0 movs r0, 0xCE lsls r0, 1 mov r12, r0 ldr r7, _0803DDBC movs r0, 0xB muls r0, r5 adds r3, r0, r7 adds r2, r6, 0 b _0803DDC6 .align 2, 0 _0803DDBC: .4byte gSpeciesNames _0803DDC0: adds r3, 0x1 adds r2, 0x1 adds r1, 0x1 _0803DDC6: adds r4, r6, r1 cmp r1, 0xA bgt _0803DDE0 cmp r5, r12 bls _0803DDD6 adds r0, r1, r7 ldrb r0, [r0] b _0803DDD8 _0803DDD6: ldrb r0, [r3] _0803DDD8: strb r0, [r2] ldrb r0, [r4] cmp r0, 0xFF bne _0803DDC0 _0803DDE0: movs r0, 0xFF strb r0, [r4] pop {r4-r7} pop {r0} bx r0 thumb_func_end GetSpeciesName thumb_func_start CalcPPWithPPUps CalcPPWithPPUps: @ 803DDEC push {r4,lr} lsls r0, 16 lsrs r0, 16 lsls r2, 24 lsrs r2, 24 ldr r4, _0803DE2C lsls r3, r0, 1 adds r3, r0 lsls r3, 2 adds r3, r4 ldrb r4, [r3, 0x4] ldr r0, _0803DE30 adds r0, r2, r0 ldrb r3, [r0] ands r3, r1 lsls r2, 1 asrs r3, r2 lsls r0, r3, 2 adds r0, r3 lsls r0, 2 muls r0, r4 movs r1, 0x64 bl __divsi3 adds r4, r0 lsls r4, 24 lsrs r4, 24 adds r0, r4, 0 pop {r4} pop {r1} bx r1 .align 2, 0 _0803DE2C: .4byte gBattleMoves _0803DE30: .4byte gUnknown_08208238 thumb_func_end CalcPPWithPPUps thumb_func_start sub_803DE34 sub_803DE34: @ 803DE34 push {r4,r5,lr} sub sp, 0x4 adds r5, r0, 0 lsls r4, r1, 24 lsrs r4, 24 movs r1, 0x15 movs r2, 0 bl PokemonGetField lsls r0, 24 lsrs r0, 24 mov r1, sp strb r0, [r1] ldr r1, _0803DE6C adds r4, r1 ldrb r1, [r4] ands r1, r0 mov r0, sp strb r1, [r0] adds r0, r5, 0 movs r1, 0x15 mov r2, sp bl pokemon_setattr add sp, 0x4 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0803DE6C: .4byte gUnknown_0820823C thumb_func_end sub_803DE34 thumb_func_start sub_803DE70 sub_803DE70: @ 803DE70 lsls r1, 24 lsrs r1, 24 adds r0, 0x3B ldr r2, _0803DE84 adds r1, r2 ldrb r2, [r0] ldrb r1, [r1] ands r1, r2 strb r1, [r0] bx lr .align 2, 0 _0803DE84: .4byte gUnknown_0820823C thumb_func_end sub_803DE70 thumb_func_start battle_data_fill battle_data_fill: @ 803DE88 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x18 lsls r0, 24 lsrs r0, 24 str r0, [sp, 0x14] lsls r1, 24 lsrs r1, 24 mov r9, r1 movs r0, 0x64 mov r5, r9 muls r5, r0 ldr r0, _0803E170 adds r5, r0 adds r0, r5, 0 movs r1, 0xB movs r2, 0 bl PokemonGetField ldr r1, _0803E174 mov r8, r1 movs r1, 0x58 ldr r2, [sp, 0x14] adds r4, r2, 0 muls r4, r1 mov r3, r8 adds r6, r4, r3 strh r0, [r6] adds r0, r5, 0 movs r1, 0xC movs r2, 0 bl PokemonGetField strh r0, [r6, 0x2E] movs r6, 0 mov r0, r8 adds r0, 0x24 adds r7, r4, r0 _0803DEDA: adds r1, r6, 0 adds r1, 0xD adds r0, r5, 0 movs r2, 0 bl PokemonGetField movs r1, 0xC add r1, r8 mov r10, r1 adds r1, r4, r1 strh r0, [r1] adds r1, r6, 0 adds r1, 0x11 adds r0, r5, 0 movs r2, 0 bl PokemonGetField strb r0, [r7] adds r7, 0x1 adds r4, 0x2 adds r6, 0x1 cmp r6, 0x3 ble _0803DEDA movs r0, 0x64 mov r4, r9 muls r4, r0 ldr r0, _0803E170 adds r4, r0 adds r0, r4, 0 movs r1, 0x15 movs r2, 0 bl PokemonGetField movs r2, 0xC negs r2, r2 add r2, r10 mov r9, r2 movs r1, 0x58 ldr r3, [sp, 0x14] adds r5, r3, 0 muls r5, r1 adds r7, r5, r2 adds r1, r7, 0 adds r1, 0x3B strb r0, [r1] adds r0, r4, 0 movs r1, 0x20 movs r2, 0 bl PokemonGetField adds r1, r7, 0 adds r1, 0x2B strb r0, [r1] adds r0, r4, 0 movs r1, 0x19 movs r2, 0 bl PokemonGetField mov r1, r10 adds r1, 0x38 adds r1, r5, r1 str r0, [r1] adds r0, r4, 0 movs r1, 0x27 movs r2, 0 bl PokemonGetField movs r6, 0x1F ands r0, r6 ldrb r2, [r7, 0x14] movs r1, 0x20 negs r1, r1 ands r1, r2 orrs r1, r0 strb r1, [r7, 0x14] adds r0, r4, 0 movs r1, 0x28 movs r2, 0 bl PokemonGetField movs r1, 0x1F mov r8, r1 mov r2, r8 ands r0, r2 lsls r0, 5 ldrh r2, [r7, 0x14] ldr r1, _0803E178 ands r1, r2 orrs r1, r0 strh r1, [r7, 0x14] adds r0, r4, 0 movs r1, 0x29 movs r2, 0 bl PokemonGetField ands r0, r6 lsls r0, 2 ldrb r2, [r7, 0x15] movs r1, 0x7D negs r1, r1 ands r1, r2 orrs r1, r0 strb r1, [r7, 0x15] adds r0, r4, 0 movs r1, 0x2A movs r2, 0 bl PokemonGetField movs r1, 0x1F ands r1, r0 lsls r1, 15 ldr r0, [r7, 0x14] ldr r2, _0803E17C ands r0, r2 orrs r0, r1 str r0, [r7, 0x14] adds r0, r4, 0 movs r1, 0x2B movs r2, 0 bl PokemonGetField mov r3, r8 ands r0, r3 lsls r0, 4 ldrh r2, [r7, 0x16] ldr r1, _0803E180 ands r1, r2 orrs r1, r0 strh r1, [r7, 0x16] adds r0, r4, 0 movs r1, 0x2C movs r2, 0 bl PokemonGetField ands r0, r6 lsls r0, 1 ldrb r2, [r7, 0x17] movs r1, 0x3F negs r1, r1 ands r1, r2 orrs r1, r0 strb r1, [r7, 0x17] adds r0, r4, 0 movs r1, 0 movs r2, 0 bl PokemonGetField mov r1, r10 adds r1, 0x3C adds r1, r5, r1 str r0, [r1] adds r0, r4, 0 movs r1, 0x37 movs r2, 0 bl PokemonGetField mov r1, r10 adds r1, 0x40 adds r1, r5, r1 str r0, [r1] adds r0, r4, 0 movs r1, 0x38 movs r2, 0 bl PokemonGetField adds r1, r7, 0 adds r1, 0x2A strb r0, [r1] adds r0, r4, 0 movs r1, 0x39 movs r2, 0 bl PokemonGetField strh r0, [r7, 0x28] adds r0, r4, 0 movs r1, 0x3A movs r2, 0 bl PokemonGetField strh r0, [r7, 0x2C] adds r0, r4, 0 movs r1, 0x3B movs r2, 0 bl PokemonGetField strh r0, [r7, 0x2] adds r0, r4, 0 movs r1, 0x3C movs r2, 0 bl PokemonGetField strh r0, [r7, 0x4] adds r0, r4, 0 movs r1, 0x3D movs r2, 0 bl PokemonGetField strh r0, [r7, 0x6] adds r0, r4, 0 movs r1, 0x3E movs r2, 0 bl PokemonGetField strh r0, [r7, 0x8] adds r0, r4, 0 movs r1, 0x3F movs r2, 0 bl PokemonGetField strh r0, [r7, 0xA] adds r0, r4, 0 movs r1, 0x2D movs r2, 0 bl PokemonGetField movs r1, 0x1 ands r0, r1 lsls r0, 6 ldrb r2, [r7, 0x17] movs r1, 0x41 negs r1, r1 ands r1, r2 orrs r1, r0 strb r1, [r7, 0x17] adds r0, r4, 0 movs r1, 0x2E movs r2, 0 bl PokemonGetField lsls r0, 7 ldrb r2, [r7, 0x17] movs r1, 0x7F ands r1, r2 orrs r1, r0 strb r1, [r7, 0x17] adds r0, r4, 0 movs r1, 0x1 movs r2, 0 bl PokemonGetField mov r1, r10 adds r1, 0x48 adds r1, r5, r1 str r0, [r1] ldr r2, _0803E184 ldrh r1, [r7] lsls r0, r1, 3 subs r0, r1 lsls r0, 2 adds r0, r2 ldrb r0, [r0, 0x6] adds r1, r7, 0 adds r1, 0x21 strb r0, [r1] ldrh r1, [r7] lsls r0, r1, 3 subs r0, r1 lsls r0, 2 adds r0, r2 ldrb r0, [r0, 0x7] adds r1, r7, 0 adds r1, 0x22 strb r0, [r1] ldrh r0, [r7] ldrb r1, [r7, 0x17] lsrs r1, 7 bl sub_803DB14 adds r1, r7, 0 adds r1, 0x20 strb r0, [r1] adds r0, r4, 0 movs r1, 0x2 mov r2, sp bl PokemonGetField mov r0, r10 adds r0, 0x24 adds r0, r5, r0 mov r1, sp bl StringCopy10 mov r2, r10 adds r2, 0x30 adds r2, r5, r2 adds r0, r4, 0 movs r1, 0x7 bl PokemonGetField ldr r0, [sp, 0x14] bl battle_side_get_owner lsls r0, 24 lsrs r0, 23 ldr r1, _0803E188 adds r0, r1 ldrh r1, [r7, 0x28] strh r1, [r0] movs r2, 0x6 mov r1, r9 movs r6, 0x7 add r5, r10 adds r0, r5, 0 adds r0, 0x13 _0803E13A: strb r2, [r0] subs r0, 0x1 subs r6, 0x1 cmp r6, 0 bge _0803E13A movs r2, 0 movs r0, 0x58 ldr r3, [sp, 0x14] muls r0, r3 adds r1, 0x50 adds r0, r1 str r2, [r0] ldr r0, [sp, 0x14] bl sub_80157C4 ldr r0, [sp, 0x14] movs r1, 0 bl sub_8032AA8 add sp, 0x18 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0803E170: .4byte 0x03004360 _0803E174: .4byte 0x02024a80 _0803E178: .4byte 0xfffffc1f _0803E17C: .4byte 0xfff07fff _0803E180: .4byte 0xfffffe0f _0803E184: .4byte gBaseStats _0803E188: .4byte 0x020160bc thumb_func_end battle_data_fill thumb_func_start ExecuteTableBasedItemEffect_ ExecuteTableBasedItemEffect_: @ 803E18C push {r4,lr} sub sp, 0x4 lsls r1, 16 lsrs r1, 16 lsls r2, 24 lsrs r2, 24 lsls r3, 24 lsrs r3, 24 movs r4, 0 str r4, [sp] bl sub_803E1B0 lsls r0, 24 lsrs r0, 24 add sp, 0x4 pop {r4} pop {r1} bx r1 thumb_func_end ExecuteTableBasedItemEffect_ thumb_func_start sub_803E1B0 sub_803E1B0: @ 803E1B0 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x3C mov r8, r0 ldr r0, [sp, 0x5C] lsls r1, 16 lsrs r1, 16 str r1, [sp, 0x8] lsls r2, 24 lsrs r2, 24 str r2, [sp, 0xC] lsls r3, 24 lsrs r3, 24 str r3, [sp, 0x10] lsls r0, 24 lsrs r0, 24 str r0, [sp, 0x14] movs r0, 0x1 str r0, [sp, 0x1C] movs r1, 0x6 str r1, [sp, 0x24] movs r2, 0 str r2, [sp, 0x2C] movs r3, 0x4 str r3, [sp, 0x34] mov r0, r8 movs r1, 0xC bl PokemonGetField lsls r0, 16 lsrs r0, 16 cmp r0, 0xAF bne _0803E240 ldr r0, _0803E21C ldr r4, _0803E220 adds r0, r4 ldrb r1, [r0] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _0803E22C ldr r2, _0803E224 ldr r0, _0803E228 ldrb r1, [r0] lsls r0, r1, 3 subs r0, r1 lsls r0, 2 adds r0, r2 ldrb r0, [r0, 0x7] b _0803E248 .align 2, 0 _0803E21C: .4byte 0x03001770 _0803E220: .4byte 0x0000043d _0803E224: .4byte 0x02024df0 _0803E228: .4byte 0x02024e6c _0803E22C: ldr r0, _0803E238 ldr r5, _0803E23C adds r0, r5 ldrb r0, [r0] b _0803E248 .align 2, 0 _0803E238: .4byte 0x02025734 _0803E23C: .4byte 0x00003688 _0803E240: bl itemid_get_x12 lsls r0, 24 lsrs r0, 24 _0803E248: str r0, [sp, 0x30] ldr r1, _0803E2A4 ldr r0, _0803E2A8 ldrb r2, [r0] strb r2, [r1] ldr r0, _0803E2AC ldr r1, _0803E2B0 adds r0, r1 ldrb r1, [r0] movs r0, 0x2 ands r0, r1 lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0 beq _0803E2E8 ldr r0, _0803E2B4 strb r2, [r0] ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 lsrs r0, 24 negs r1, r0 orrs r1, r0 lsrs r1, 31 str r1, [sp, 0x18] ldr r0, _0803E2B8 ldr r4, [sp, 0x8] subs r4, 0xD ldrb r0, [r0] cmp r1, r0 bge _0803E2F4 ldr r2, _0803E2BC lsls r0, r1, 1 adds r0, r2 ldrh r3, [r0] ldr r5, [sp, 0xC] lsls r0, r5, 16 lsrs r1, r0, 16 adds r5, r0, 0 cmp r3, r1 bne _0803E2C0 ldr r0, [sp, 0x18] str r0, [sp, 0x34] b _0803E2F4 .align 2, 0 _0803E2A4: .4byte 0x02024c0b _0803E2A8: .4byte 0x02024e6c _0803E2AC: .4byte 0x03001770 _0803E2B0: .4byte 0x0000043d _0803E2B4: .4byte 0x02024a60 _0803E2B8: .4byte 0x02024a68 _0803E2BC: .4byte 0x02024a6a _0803E2C0: ldr r1, [sp, 0x18] adds r1, 0x2 str r1, [sp, 0x18] ldr r0, _0803E2E4 ldrb r0, [r0] cmp r1, r0 bge _0803E2F4 lsls r0, r1, 1 adds r0, r2 ldrh r1, [r0] lsrs r0, r5, 16 cmp r1, r0 bne _0803E2C0 ldr r2, [sp, 0x18] lsls r0, r2, 24 lsrs r0, 24 str r0, [sp, 0x34] b _0803E2F4 .align 2, 0 _0803E2E4: .4byte 0x02024a68 _0803E2E8: ldr r0, _0803E310 strb r1, [r0] movs r3, 0x4 str r3, [sp, 0x34] ldr r4, [sp, 0x8] subs r4, 0xD _0803E2F4: lsls r0, r4, 16 lsrs r0, 16 cmp r0, 0xA5 bhi _0803E36C ldr r1, _0803E314 lsls r0, r4, 2 adds r0, r1 ldr r0, [r0] cmp r0, 0 bne _0803E318 ldr r4, [sp, 0x8] cmp r4, 0xAF beq _0803E31E b _0803E36C .align 2, 0 _0803E310: .4byte 0x02024a60 _0803E314: .4byte gItemEffectTable _0803E318: ldr r5, [sp, 0x8] cmp r5, 0xAF bne _0803E372 _0803E31E: ldr r0, _0803E340 ldr r1, _0803E344 adds r0, r1 ldrb r1, [r0] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _0803E350 ldr r0, _0803E348 ldrb r1, [r0] lsls r0, r1, 3 subs r0, r1 lsls r0, 2 ldr r1, _0803E34C adds r0, r1 b _0803E372 .align 2, 0 _0803E340: .4byte 0x03001770 _0803E344: .4byte 0x0000043d _0803E348: .4byte 0x02024a60 _0803E34C: .4byte 0x02024df8 _0803E350: ldr r2, _0803E358 str r2, [sp, 0x20] b _0803E374 .align 2, 0 _0803E358: .4byte 0x02028daa _0803E35C: mov r0, r8 movs r2, 0 ldr r3, [sp, 0xC] bl sub_8111924 movs r0, 0 bl _0803F15C _0803E36C: movs r0, 0x1 bl _0803F15C _0803E372: str r0, [sp, 0x20] _0803E374: movs r3, 0 str r3, [sp, 0x18] _0803E378: ldr r4, [sp, 0x18] cmp r4, 0x5 bls _0803E382 bl _0803F14C _0803E382: lsls r0, r4, 2 ldr r1, _0803E38C adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0803E38C: .4byte _0803E390 .align 2, 0 _0803E390: .4byte _0803E3A8 .4byte _0803E474 .4byte _0803E508 .4byte _0803E59C .4byte _0803E77C .4byte _0803EE1E _0803E3A8: ldr r5, [sp, 0x20] ldr r0, [sp, 0x18] adds r2, r5, r0 ldrb r1, [r2] movs r0, 0x80 ands r0, r1 adds r6, r2, 0 cmp r0, 0 beq _0803E3F0 ldr r0, _0803E460 ldr r1, _0803E464 adds r0, r1 ldrb r1, [r0] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _0803E3F0 ldr r2, [sp, 0x34] cmp r2, 0x4 beq _0803E3F0 ldr r1, _0803E468 movs r0, 0x58 muls r0, r2 adds r1, 0x50 adds r2, r0, r1 ldr r1, [r2] movs r0, 0xF0 lsls r0, 12 ands r0, r1 cmp r0, 0 beq _0803E3F0 ldr r0, _0803E46C ands r1, r0 str r1, [r2] movs r3, 0 str r3, [sp, 0x1C] _0803E3F0: ldrb r1, [r6] movs r0, 0x30 ands r0, r1 cmp r0, 0 beq _0803E41E ldr r1, _0803E468 ldr r0, _0803E470 ldrb r2, [r0] movs r0, 0x58 muls r0, r2 adds r1, 0x50 adds r2, r0, r1 ldr r1, [r2] movs r3, 0x80 lsls r3, 13 adds r0, r1, 0 ands r0, r3 cmp r0, 0 bne _0803E41E orrs r1, r3 str r1, [r2] movs r4, 0 str r4, [sp, 0x1C] _0803E41E: ldrb r0, [r6] movs r3, 0xF ands r3, r0 cmp r3, 0 bne _0803E42C bl _0803F14C _0803E42C: ldr r6, _0803E468 ldr r5, _0803E470 ldrb r0, [r5] movs r4, 0x58 muls r0, r4 adds r1, r0, r6 ldrb r2, [r1, 0x19] movs r0, 0x19 ldrsb r0, [r1, r0] cmp r0, 0xB ble _0803E446 bl _0803F14C _0803E446: adds r0, r2, r3 strb r0, [r1, 0x19] ldrb r0, [r5] muls r0, r4 adds r1, r0, r6 movs r0, 0x19 ldrsb r0, [r1, r0] cmp r0, 0xC bgt _0803E45A b _0803E74E _0803E45A: movs r0, 0xC strb r0, [r1, 0x19] b _0803E74E .align 2, 0 _0803E460: .4byte 0x03001770 _0803E464: .4byte 0x0000043d _0803E468: .4byte 0x02024a80 _0803E46C: .4byte 0xfff0ffff _0803E470: .4byte 0x02024a60 _0803E474: ldr r0, [sp, 0x20] ldr r1, [sp, 0x18] adds r2, r0, r1 ldrb r1, [r2] movs r0, 0xF0 ands r0, r1 lsls r3, r0, 24 adds r6, r2, 0 cmp r3, 0 beq _0803E4BA ldr r7, _0803E500 ldr r5, _0803E504 ldrb r0, [r5] movs r4, 0x58 muls r0, r4 adds r1, r0, r7 ldrb r2, [r1, 0x1A] movs r0, 0x1A ldrsb r0, [r1, r0] cmp r0, 0xB bgt _0803E4BA lsrs r0, r3, 28 adds r0, r2, r0 strb r0, [r1, 0x1A] ldrb r0, [r5] muls r0, r4 adds r1, r0, r7 movs r0, 0x1A ldrsb r0, [r1, r0] cmp r0, 0xC ble _0803E4B6 movs r0, 0xC strb r0, [r1, 0x1A] _0803E4B6: movs r2, 0 str r2, [sp, 0x1C] _0803E4BA: ldrb r0, [r6] movs r3, 0xF ands r3, r0 cmp r3, 0 bne _0803E4C8 bl _0803F14C _0803E4C8: ldr r6, _0803E500 ldr r5, _0803E504 ldrb r0, [r5] movs r4, 0x58 muls r0, r4 adds r1, r0, r6 ldrb r2, [r1, 0x1B] movs r0, 0x1B ldrsb r0, [r1, r0] cmp r0, 0xB ble _0803E4E2 bl _0803F14C _0803E4E2: adds r0, r2, r3 strb r0, [r1, 0x1B] ldrb r0, [r5] muls r0, r4 adds r1, r0, r6 movs r0, 0x1B ldrsb r0, [r1, r0] cmp r0, 0xC ble _0803E4F8 movs r0, 0xC strb r0, [r1, 0x1B] _0803E4F8: movs r3, 0 str r3, [sp, 0x1C] bl _0803F14C .align 2, 0 _0803E500: .4byte 0x02024a80 _0803E504: .4byte 0x02024a60 _0803E508: ldr r4, [sp, 0x20] ldr r5, [sp, 0x18] adds r2, r4, r5 ldrb r1, [r2] movs r0, 0xF0 ands r0, r1 lsls r3, r0, 24 adds r6, r2, 0 cmp r3, 0 beq _0803E54E ldr r7, _0803E594 ldr r5, _0803E598 ldrb r0, [r5] movs r4, 0x58 muls r0, r4 adds r1, r0, r7 ldrb r2, [r1, 0x1E] movs r0, 0x1E ldrsb r0, [r1, r0] cmp r0, 0xB bgt _0803E54E lsrs r0, r3, 28 adds r0, r2, r0 strb r0, [r1, 0x1E] ldrb r0, [r5] muls r0, r4 adds r1, r0, r7 movs r0, 0x1E ldrsb r0, [r1, r0] cmp r0, 0xC ble _0803E54A movs r0, 0xC strb r0, [r1, 0x1E] _0803E54A: movs r0, 0 str r0, [sp, 0x1C] _0803E54E: ldrb r0, [r6] movs r3, 0xF ands r3, r0 cmp r3, 0 bne _0803E55C bl _0803F14C _0803E55C: ldr r6, _0803E594 ldr r5, _0803E598 ldrb r0, [r5] movs r4, 0x58 muls r0, r4 adds r1, r0, r6 ldrb r2, [r1, 0x1C] movs r0, 0x1C ldrsb r0, [r1, r0] cmp r0, 0xB ble _0803E576 bl _0803F14C _0803E576: adds r0, r2, r3 strb r0, [r1, 0x1C] ldrb r0, [r5] muls r0, r4 adds r1, r0, r6 movs r0, 0x1C ldrsb r0, [r1, r0] cmp r0, 0xC ble _0803E58C movs r0, 0xC strb r0, [r1, 0x1C] _0803E58C: movs r1, 0 str r1, [sp, 0x1C] bl _0803F14C .align 2, 0 _0803E594: .4byte 0x02024a80 _0803E598: .4byte 0x02024a60 _0803E59C: ldr r3, [sp, 0x20] ldr r4, [sp, 0x18] adds r2, r3, r4 ldrb r1, [r2] movs r0, 0x80 ands r0, r1 adds r6, r2, 0 cmp r0, 0 beq _0803E5E4 ldr r5, _0803E758 ldr r4, _0803E75C ldrb r0, [r4] bl battle_side_get_owner lsls r0, 24 lsrs r0, 24 lsls r1, r0, 1 adds r1, r0 lsls r1, 2 adds r1, r5 ldrb r0, [r1, 0x2] cmp r0, 0 bne _0803E5E4 ldrb r0, [r4] bl battle_side_get_owner lsls r0, 24 lsrs r0, 24 lsls r1, r0, 1 adds r1, r0 lsls r1, 2 adds r1, r5 movs r0, 0x5 strb r0, [r1, 0x2] movs r5, 0 str r5, [sp, 0x1C] _0803E5E4: ldrb r1, [r6] movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _0803E646 mov r0, r8 movs r1, 0x38 movs r2, 0 bl PokemonGetField cmp r0, 0x64 beq _0803E646 ldr r5, _0803E760 mov r0, r8 movs r1, 0x38 movs r2, 0 bl PokemonGetField adds r4, r0, 0 mov r0, r8 movs r1, 0xB movs r2, 0 bl PokemonGetField adds r4, 0x1 lsls r4, 2 ldr r2, _0803E764 lsls r1, r0, 3 subs r1, r0 lsls r1, 2 adds r1, r2 ldrb r1, [r1, 0x13] movs r0, 0xCA lsls r0, 1 muls r0, r1 adds r4, r0 adds r4, r5 ldr r0, [r4] str r0, [sp] mov r0, r8 movs r1, 0x19 mov r2, sp bl pokemon_setattr mov r0, r8 bl pokemon_calc_effective_stats movs r0, 0 str r0, [sp, 0x1C] _0803E646: ldrb r1, [r6] movs r0, 0x20 ands r0, r1 cmp r0, 0 beq _0803E682 mov r0, r8 ldr r1, [sp, 0xC] movs r2, 0x7 ldr r3, [sp, 0x34] bl HealStatusConditions lsls r0, 24 cmp r0, 0 bne _0803E682 ldr r1, [sp, 0x34] cmp r1, 0x4 beq _0803E67E ldr r1, _0803E768 movs r0, 0x58 ldr r3, [sp, 0x34] adds r2, r3, 0 muls r2, r0 adds r1, 0x50 adds r2, r1 ldr r0, [r2] ldr r1, _0803E76C ands r0, r1 str r0, [r2] _0803E67E: movs r4, 0 str r4, [sp, 0x1C] _0803E682: ldrb r1, [r6] movs r0, 0x10 ands r0, r1 cmp r0, 0 beq _0803E6A2 ldr r2, _0803E770 mov r0, r8 ldr r1, [sp, 0xC] ldr r3, [sp, 0x34] bl HealStatusConditions lsls r0, 24 cmp r0, 0 bne _0803E6A2 movs r5, 0 str r5, [sp, 0x1C] _0803E6A2: ldrb r1, [r6] movs r0, 0x8 ands r0, r1 cmp r0, 0 beq _0803E6C2 mov r0, r8 ldr r1, [sp, 0xC] movs r2, 0x10 ldr r3, [sp, 0x34] bl HealStatusConditions lsls r0, 24 cmp r0, 0 bne _0803E6C2 movs r0, 0 str r0, [sp, 0x1C] _0803E6C2: ldrb r1, [r6] movs r0, 0x4 ands r0, r1 cmp r0, 0 beq _0803E6E2 mov r0, r8 ldr r1, [sp, 0xC] movs r2, 0x20 ldr r3, [sp, 0x34] bl HealStatusConditions lsls r0, 24 cmp r0, 0 bne _0803E6E2 movs r1, 0 str r1, [sp, 0x1C] _0803E6E2: ldrb r1, [r6] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _0803E702 mov r0, r8 ldr r1, [sp, 0xC] movs r2, 0x40 ldr r3, [sp, 0x34] bl HealStatusConditions lsls r0, 24 cmp r0, 0 bne _0803E702 movs r2, 0 str r2, [sp, 0x1C] _0803E702: ldrb r1, [r6] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _0803E710 bl _0803F14C _0803E710: ldr r0, _0803E774 ldr r3, _0803E778 adds r0, r3 ldrb r1, [r0] movs r0, 0x2 ands r0, r1 cmp r0, 0 bne _0803E724 bl _0803F14C _0803E724: ldr r4, [sp, 0x34] cmp r4, 0x4 bne _0803E72E bl _0803F14C _0803E72E: ldr r1, _0803E768 movs r0, 0x58 muls r0, r4 adds r1, 0x50 adds r2, r0, r1 ldr r1, [r2] movs r0, 0x7 ands r0, r1 cmp r0, 0 bne _0803E746 bl _0803F14C _0803E746: movs r0, 0x8 negs r0, r0 ands r1, r0 str r1, [r2] _0803E74E: movs r5, 0 str r5, [sp, 0x1C] bl _0803F14C .align 2, 0 _0803E758: .4byte 0x02024c80 _0803E75C: .4byte 0x02024a60 _0803E760: .4byte gExperienceTables _0803E764: .4byte gBaseStats _0803E768: .4byte 0x02024a80 _0803E76C: .4byte 0xf7ffffff _0803E770: .4byte 0x00000f88 _0803E774: .4byte 0x03001770 _0803E778: .4byte 0x0000043d _0803E77C: ldr r1, [sp, 0x20] ldr r2, [sp, 0x18] adds r0, r1, r2 ldrb r0, [r0] mov r10, r0 movs r0, 0x20 mov r3, r10 ands r0, r3 cmp r0, 0 beq _0803E854 movs r0, 0xDF ands r3, r0 mov r10, r3 mov r0, r8 movs r1, 0x15 movs r2, 0 bl PokemonGetField ldr r1, _0803E880 ldr r4, [sp, 0x10] adds r1, r4, r1 ldrb r1, [r1] ands r0, r1 lsls r1, r4, 1 lsrs r0, r1 str r0, [sp] adds r5, r4, 0 adds r5, 0xD mov r0, r8 adds r1, r5, 0 movs r2, 0 bl PokemonGetField adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 mov r0, r8 movs r1, 0x15 movs r2, 0 bl PokemonGetField adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 ldr r2, [sp, 0x10] bl CalcPPWithPPUps lsls r0, 24 lsrs r0, 24 str r0, [sp, 0x28] ldr r0, [sp] cmp r0, 0x2 bhi _0803E854 ldr r0, [sp, 0x28] cmp r0, 0x4 bls _0803E854 mov r0, r8 movs r1, 0x15 movs r2, 0 bl PokemonGetField ldr r1, _0803E884 ldr r2, [sp, 0x10] adds r1, r2, r1 ldrb r1, [r1] adds r0, r1 str r0, [sp] mov r0, r8 movs r1, 0x15 mov r2, sp bl pokemon_setattr mov r0, r8 adds r1, r5, 0 movs r2, 0 bl PokemonGetField lsls r0, 16 lsrs r0, 16 ldr r1, [sp] lsls r1, 24 lsrs r1, 24 ldr r2, [sp, 0x10] bl CalcPPWithPPUps lsls r0, 24 lsrs r0, 24 ldr r3, [sp, 0x28] subs r0, r3 str r0, [sp] ldr r4, [sp, 0x10] adds r4, 0x11 mov r0, r8 adds r1, r4, 0 movs r2, 0 bl PokemonGetField ldr r1, [sp] adds r0, r1 str r0, [sp] mov r0, r8 adds r1, r4, 0 mov r2, sp bl pokemon_setattr movs r4, 0 str r4, [sp, 0x1C] _0803E854: movs r5, 0 str r5, [sp, 0x28] mov r0, r10 cmp r0, 0 bne _0803E862 bl _0803F14C _0803E862: movs r0, 0x1 mov r1, r10 ands r0, r1 cmp r0, 0 bne _0803E86E b _0803EE0A _0803E86E: ldr r2, [sp, 0x28] cmp r2, 0x7 bls _0803E876 b _0803EE0A _0803E876: lsls r0, r2, 2 ldr r1, _0803E888 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0803E880: .4byte gUnknown_08208238 _0803E884: .4byte gUnknown_08208240 _0803E888: .4byte _0803E88C .align 2, 0 _0803E88C: .4byte _0803E8AC .4byte _0803E8AC .4byte _0803E934 .4byte _0803EB5C .4byte _0803EE0A .4byte _0803EE0A .4byte _0803EE0A .4byte _0803EDF4 _0803E8AC: mov r0, r8 bl sub_8040020 lsls r0, 16 lsrs r5, r0, 16 ldr r0, _0803E8EC cmp r5, r0 bls _0803E8BE b _0803E36C _0803E8BE: ldr r0, _0803E8F0 ldr r3, [sp, 0x28] adds r0, r3, r0 ldrb r1, [r0] mov r0, r8 movs r2, 0 bl PokemonGetField adds r1, r0, 0 str r1, [sp] cmp r1, 0x63 bls _0803E8D8 b _0803EE0A _0803E8D8: ldr r4, [sp, 0x20] ldr r2, [sp, 0x24] adds r0, r4, r2 ldrb r0, [r0] adds r1, r0 cmp r1, 0x64 bls _0803E8F4 adds r0, 0x64 subs r4, r0, r1 b _0803E8F6 .align 2, 0 _0803E8EC: .4byte 0x000001fd _0803E8F0: .4byte gUnknown_082082F2 _0803E8F4: adds r4, r0, 0 _0803E8F6: adds r1, r5, r4 movs r0, 0xFF lsls r0, 1 cmp r1, r0 bls _0803E904 adds r0, r4, r0 subs r4, r0, r1 _0803E904: ldr r0, [sp] adds r0, r4 str r0, [sp] ldr r0, _0803E930 ldr r3, [sp, 0x28] adds r0, r3, r0 ldrb r1, [r0] mov r0, r8 mov r2, sp bl pokemon_setattr mov r0, r8 bl pokemon_calc_effective_stats ldr r0, [sp, 0x24] adds r0, 0x1 lsls r0, 24 lsrs r0, 24 str r0, [sp, 0x24] movs r4, 0 str r4, [sp, 0x1C] b _0803EE0A .align 2, 0 _0803E930: .4byte gUnknown_082082F2 _0803E934: movs r0, 0x10 mov r5, r10 ands r0, r5 cmp r0, 0 beq _0803E9F4 mov r0, r8 movs r1, 0x39 movs r2, 0 bl PokemonGetField cmp r0, 0 beq _0803E954 ldr r0, [sp, 0x24] adds r0, 0x1 lsls r0, 24 b _0803EC9E _0803E954: ldr r0, _0803E99C ldr r1, _0803E9A0 adds r0, r1 ldrb r1, [r0] movs r4, 0x2 movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _0803EA0A ldr r2, [sp, 0x34] cmp r2, 0x4 beq _0803E9B4 ldr r2, _0803E9A4 ldr r1, _0803E9A8 ldr r3, [sp, 0x34] lsls r0, r3, 2 adds r0, r1 ldr r1, [r0] ldrb r0, [r2] bics r0, r1 strb r0, [r2] ldr r1, _0803E9AC lsls r0, r3, 1 adds r0, r1 ldrb r0, [r0] bl pokemon_order_func adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 ldr r0, [sp, 0x34] bl battle_data_fill ldr r0, _0803E9B0 ldrb r0, [r0] b _0803E9CC .align 2, 0 _0803E99C: .4byte 0x03001770 _0803E9A0: .4byte 0x0000043d _0803E9A4: .4byte 0x02024c0c _0803E9A8: .4byte gUnknown_0820872C _0803E9AC: .4byte 0x02024a6a _0803E9B0: .4byte 0x02024a60 _0803E9B4: ldr r3, _0803E9E4 ldr r1, _0803E9E8 ldr r2, _0803E9EC ldrb r0, [r2] eors r0, r4 lsls r0, 2 adds r0, r1 ldr r1, [r0] ldrb r0, [r3] bics r0, r1 strb r0, [r3] ldrb r0, [r2] _0803E9CC: bl battle_side_get_owner lsls r0, 24 cmp r0, 0 bne _0803EA0A ldr r1, _0803E9F0 ldrb r0, [r1, 0x4] cmp r0, 0xFE bhi _0803EA0A adds r0, 0x1 strb r0, [r1, 0x4] b _0803EA0A .align 2, 0 _0803E9E4: .4byte 0x02024c0c _0803E9E8: .4byte gUnknown_0820872C _0803E9EC: .4byte 0x02024a60 _0803E9F0: .4byte 0x030042e0 _0803E9F4: mov r0, r8 movs r1, 0x39 movs r2, 0 bl PokemonGetField cmp r0, 0 bne _0803EA0A ldr r0, [sp, 0x24] adds r0, 0x1 lsls r0, 24 b _0803EC9E _0803EA0A: ldr r1, [sp, 0x24] adds r0, r1, 0x1 lsls r0, 24 lsrs r0, 24 str r0, [sp, 0x24] ldr r4, [sp, 0x20] adds r1, r4, r1 ldrb r1, [r1] str r1, [sp] adds r0, r1, 0 cmp r0, 0xFE beq _0803EA4C cmp r0, 0xFE bhi _0803EA2C cmp r0, 0xFD beq _0803EA62 b _0803EA6C _0803EA2C: cmp r1, 0xFF bne _0803EA6C mov r0, r8 movs r1, 0x3A movs r2, 0 bl PokemonGetField adds r4, r0, 0 mov r0, r8 movs r1, 0x39 movs r2, 0 bl PokemonGetField subs r4, r0 str r4, [sp] b _0803EA6C _0803EA4C: mov r0, r8 movs r1, 0x3A movs r2, 0 bl PokemonGetField lsrs r0, 1 str r0, [sp] cmp r0, 0 bne _0803EA6C movs r0, 0x1 b _0803EA6A _0803EA62: ldr r0, _0803EB24 ldr r5, _0803EB28 adds r0, r5 ldrb r0, [r0] _0803EA6A: str r0, [sp] _0803EA6C: mov r0, r8 movs r1, 0x3A movs r2, 0 bl PokemonGetField adds r4, r0, 0 mov r0, r8 movs r1, 0x39 movs r2, 0 bl PokemonGetField cmp r4, r0 beq _0803EB4C ldr r0, [sp, 0x14] cmp r0, 0 bne _0803EB40 mov r0, r8 movs r1, 0x39 movs r2, 0 bl PokemonGetField ldr r1, [sp] adds r0, r1 str r0, [sp] mov r0, r8 movs r1, 0x3A movs r2, 0 bl PokemonGetField ldr r1, [sp] cmp r1, r0 bls _0803EAB8 mov r0, r8 movs r1, 0x3A movs r2, 0 bl PokemonGetField str r0, [sp] _0803EAB8: mov r0, r8 movs r1, 0x39 mov r2, sp bl pokemon_setattr ldr r0, _0803EB2C ldr r1, _0803EB30 adds r0, r1 ldrb r1, [r0] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _0803EB48 ldr r2, [sp, 0x34] cmp r2, 0x4 beq _0803EB48 ldr r1, _0803EB34 movs r0, 0x58 muls r0, r2 adds r0, r1 ldr r1, [sp] strh r1, [r0, 0x28] movs r0, 0x10 mov r3, r10 ands r0, r3 cmp r0, 0 bne _0803EB48 ldr r4, _0803EB38 ldrb r0, [r4] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 bne _0803EB48 ldr r1, _0803EB3C ldrb r0, [r1, 0x3] cmp r0, 0xFE bhi _0803EB08 adds r0, 0x1 strb r0, [r1, 0x3] _0803EB08: ldrb r5, [r4] add r0, sp, 0x34 ldrb r0, [r0] strb r0, [r4] movs r0, 0 movs r1, 0 movs r2, 0 bl dp01_build_cmdbuf_x00_a_b_0 ldrb r0, [r4] bl dp01_battle_side_mark_buffer_for_execution strb r5, [r4] b _0803EB48 .align 2, 0 _0803EB24: .4byte 0x02000000 _0803EB28: .4byte 0x000160fa _0803EB2C: .4byte 0x03001770 _0803EB30: .4byte 0x0000043d _0803EB34: .4byte 0x02024a80 _0803EB38: .4byte 0x02024a60 _0803EB3C: .4byte 0x030042e0 _0803EB40: ldr r1, _0803EB58 ldr r0, [sp] negs r0, r0 str r0, [r1] _0803EB48: movs r1, 0 str r1, [sp, 0x1C] _0803EB4C: movs r0, 0xEF mov r2, r10 ands r2, r0 mov r10, r2 b _0803EE0A .align 2, 0 _0803EB58: .4byte 0x02024bec _0803EB5C: movs r7, 0x2 mov r0, r10 ands r0, r7 cmp r0, 0 beq _0803EB68 b _0803ECB8 _0803EB68: movs r5, 0 ldr r3, [sp, 0x24] adds r3, 0x1 str r3, [sp, 0x38] _0803EB70: movs r4, 0x11 adds r4, r5 mov r9, r4 mov r0, r8 mov r1, r9 movs r2, 0 bl PokemonGetField str r0, [sp] adds r7, r5, 0 adds r7, 0xD mov r0, r8 adds r1, r7, 0 movs r2, 0 bl PokemonGetField adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 mov r0, r8 movs r1, 0x15 movs r2, 0 bl PokemonGetField adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 lsls r0, r5, 24 lsrs r6, r0, 24 adds r0, r4, 0 adds r2, r6, 0 bl CalcPPWithPPUps lsls r0, 24 lsrs r0, 24 ldr r1, [sp] cmp r1, r0 beq _0803EC92 ldr r2, [sp, 0x20] ldr r3, [sp, 0x24] adds r0, r2, r3 ldrb r0, [r0] adds r0, r1, r0 str r0, [sp] mov r0, r8 adds r1, r7, 0 movs r2, 0 bl PokemonGetField adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 mov r0, r8 movs r1, 0x15 movs r2, 0 bl PokemonGetField adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 adds r2, r6, 0 bl CalcPPWithPPUps lsls r0, 24 lsrs r0, 24 ldr r1, [sp] cmp r1, r0 bls _0803EC28 mov r0, r8 adds r1, r7, 0 movs r2, 0 bl PokemonGetField adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 mov r0, r8 movs r1, 0x15 movs r2, 0 bl PokemonGetField adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 adds r2, r6, 0 bl CalcPPWithPPUps lsls r0, 24 lsrs r0, 24 str r0, [sp] _0803EC28: mov r0, r8 mov r1, r9 mov r2, sp bl pokemon_setattr ldr r0, _0803ECA4 ldr r4, _0803ECA8 adds r0, r4 ldrb r1, [r0] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _0803EC8E ldr r0, [sp, 0x34] cmp r0, 0x4 beq _0803EC8E ldr r4, _0803ECAC movs r0, 0x58 ldr r1, [sp, 0x34] adds r3, r1, 0 muls r3, r0 adds r0, r4, 0 adds r0, 0x50 adds r0, r3, r0 ldr r1, [r0] movs r0, 0x80 lsls r0, 14 ands r1, r0 cmp r1, 0 bne _0803EC8E ldr r1, _0803ECB0 ldr r2, [sp, 0x34] lsls r0, r2, 3 subs r0, r2 lsls r0, 2 adds r0, r1 ldrb r1, [r0, 0x18] lsrs r1, 4 ldr r2, _0803ECB4 lsls r0, r5, 2 adds r0, r2 ldr r0, [r0] ands r1, r0 cmp r1, 0 bne _0803EC8E adds r0, r5, r3 adds r1, r4, 0 adds r1, 0x24 adds r0, r1 ldr r1, [sp] strb r1, [r0] _0803EC8E: movs r3, 0 str r3, [sp, 0x1C] _0803EC92: adds r5, 0x1 cmp r5, 0x3 bgt _0803EC9A b _0803EB70 _0803EC9A: ldr r4, [sp, 0x38] lsls r0, r4, 24 _0803EC9E: lsrs r0, 24 str r0, [sp, 0x24] b _0803EE0A .align 2, 0 _0803ECA4: .4byte 0x03001770 _0803ECA8: .4byte 0x0000043d _0803ECAC: .4byte 0x02024a80 _0803ECB0: .4byte 0x02024ca8 _0803ECB4: .4byte gUnknown_0820872C _0803ECB8: ldr r6, [sp, 0x10] adds r6, 0x11 mov r0, r8 adds r1, r6, 0 movs r2, 0 bl PokemonGetField str r0, [sp] ldr r5, [sp, 0x10] adds r5, 0xD mov r0, r8 adds r1, r5, 0 movs r2, 0 bl PokemonGetField adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 mov r0, r8 movs r1, 0x15 movs r2, 0 bl PokemonGetField adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 ldr r2, [sp, 0x10] bl CalcPPWithPPUps lsls r0, 24 lsrs r0, 24 ldr r2, [sp] cmp r2, r0 bne _0803ED00 b _0803EE0A _0803ED00: ldr r1, [sp, 0x24] adds r0, r1, 0x1 lsls r0, 24 lsrs r0, 24 str r0, [sp, 0x24] ldr r0, [sp, 0x20] adds r1, r0, r1 ldrb r0, [r1] adds r0, r2, r0 str r0, [sp] mov r0, r8 adds r1, r5, 0 movs r2, 0 bl PokemonGetField adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 mov r0, r8 movs r1, 0x15 movs r2, 0 bl PokemonGetField adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 ldr r2, [sp, 0x10] bl CalcPPWithPPUps lsls r0, 24 lsrs r0, 24 ldr r1, [sp] cmp r1, r0 bls _0803ED74 mov r0, r8 adds r1, r5, 0 movs r2, 0 bl PokemonGetField adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 mov r0, r8 movs r1, 0x15 movs r2, 0 bl PokemonGetField adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 ldr r2, [sp, 0x10] bl CalcPPWithPPUps lsls r0, 24 lsrs r0, 24 str r0, [sp] _0803ED74: mov r0, r8 adds r1, r6, 0 mov r2, sp bl pokemon_setattr ldr r0, _0803EDE0 ldr r1, _0803EDE4 adds r0, r1 ldrb r1, [r0] adds r0, r7, 0 ands r0, r1 cmp r0, 0 beq _0803EDD8 ldr r2, [sp, 0x34] cmp r2, 0x4 beq _0803EDD8 ldr r4, _0803EDE8 movs r0, 0x58 adds r3, r2, 0 muls r3, r0 adds r0, r4, 0 adds r0, 0x50 adds r0, r3, r0 ldr r0, [r0] movs r1, 0x80 lsls r1, 14 ands r0, r1 cmp r0, 0 bne _0803EDD8 ldr r1, _0803EDEC lsls r0, r2, 3 subs r0, r2 lsls r0, 2 adds r0, r1 ldrb r1, [r0, 0x18] lsrs r1, 4 ldr r2, _0803EDF0 ldr r5, [sp, 0x10] lsls r0, r5, 2 adds r0, r2 ldr r0, [r0] ands r1, r0 cmp r1, 0 bne _0803EDD8 adds r0, r5, r3 adds r1, r4, 0 adds r1, 0x24 adds r0, r1 ldr r1, [sp] strb r1, [r0] _0803EDD8: movs r0, 0 str r0, [sp, 0x1C] b _0803EE0A .align 2, 0 _0803EDE0: .4byte 0x03001770 _0803EDE4: .4byte 0x0000043d _0803EDE8: .4byte 0x02024a80 _0803EDEC: .4byte 0x02024ca8 _0803EDF0: .4byte gUnknown_0820872C _0803EDF4: mov r0, r8 movs r1, 0x2 ldr r2, [sp, 0x8] bl GetEvolutionTargetSpecies lsls r0, 16 lsrs r1, r0, 16 cmp r1, 0 beq _0803EE0A bl _0803E35C _0803EE0A: ldr r1, [sp, 0x28] adds r1, 0x1 str r1, [sp, 0x28] mov r2, r10 lsrs r2, 1 mov r10, r2 cmp r2, 0 beq _0803EE1C b _0803E862 _0803EE1C: b _0803F14C _0803EE1E: ldr r3, [sp, 0x20] ldr r4, [sp, 0x18] adds r0, r3, r4 ldrb r0, [r0] mov r10, r0 movs r5, 0 str r5, [sp, 0x28] cmp r0, 0 bne _0803EE32 b _0803F14C _0803EE32: movs r0, 0x1 mov r1, r10 ands r0, r1 cmp r0, 0 bne _0803EE3E b _0803F13A _0803EE3E: ldr r2, [sp, 0x28] cmp r2, 0x7 bls _0803EE46 b _0803F13A _0803EE46: lsls r0, r2, 2 ldr r1, _0803EE50 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0803EE50: .4byte _0803EE54 .align 2, 0 _0803EE54: .4byte _0803EE74 .4byte _0803EE74 .4byte _0803EE74 .4byte _0803EE74 .4byte _0803EEF8 .4byte _0803EFCC .4byte _0803F026 .4byte _0803F07C _0803EE74: mov r0, r8 bl sub_8040020 lsls r0, 16 lsrs r5, r0, 16 ldr r0, _0803EEBC cmp r5, r0 bls _0803EE88 bl _0803E36C _0803EE88: ldr r0, _0803EEC0 ldr r4, [sp, 0x28] adds r4, 0x2 adds r0, r4, r0 ldrb r1, [r0] mov r0, r8 movs r2, 0 bl PokemonGetField adds r1, r0, 0 str r1, [sp] adds r2, r4, 0 cmp r1, 0x63 bls _0803EEA6 b _0803F13A _0803EEA6: ldr r3, [sp, 0x20] ldr r4, [sp, 0x24] adds r0, r3, r4 ldrb r0, [r0] adds r1, r0 cmp r1, 0x64 bls _0803EEC4 adds r0, 0x64 subs r4, r0, r1 b _0803EEC6 .align 2, 0 _0803EEBC: .4byte 0x000001fd _0803EEC0: .4byte gUnknown_082082F2 _0803EEC4: adds r4, r0, 0 _0803EEC6: adds r1, r5, r4 movs r0, 0xFF lsls r0, 1 cmp r1, r0 bls _0803EED4 adds r0, r4, r0 subs r4, r0, r1 _0803EED4: ldr r0, [sp] adds r0, r4 str r0, [sp] ldr r0, _0803EEF4 adds r0, r2, r0 ldrb r1, [r0] mov r0, r8 mov r2, sp bl pokemon_setattr mov r0, r8 bl pokemon_calc_effective_stats movs r5, 0 str r5, [sp, 0x1C] b _0803F130 .align 2, 0 _0803EEF4: .4byte gUnknown_082082F2 _0803EEF8: mov r0, r8 movs r1, 0x15 movs r2, 0 bl PokemonGetField ldr r1, _0803EFC0 ldr r2, [sp, 0x10] adds r1, r2, r1 ldrb r1, [r1] ands r0, r1 lsls r1, r2, 1 lsrs r0, r1 str r0, [sp] cmp r0, 0x2 bls _0803EF18 b _0803F13A _0803EF18: adds r5, r2, 0 adds r5, 0xD mov r0, r8 adds r1, r5, 0 movs r2, 0 bl PokemonGetField adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 mov r0, r8 movs r1, 0x15 movs r2, 0 bl PokemonGetField adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 ldr r2, [sp, 0x10] bl CalcPPWithPPUps lsls r0, 24 lsrs r4, r0, 24 mov r0, r8 movs r1, 0x15 movs r2, 0 bl PokemonGetField str r0, [sp] ldr r1, _0803EFC4 ldr r3, [sp, 0x10] adds r1, r3, r1 ldrb r2, [r1] ands r2, r0 str r2, [sp] ldr r0, _0803EFC8 adds r0, r3, r0 ldrb r1, [r0] lsls r0, r1, 1 adds r0, r1 adds r2, r0 str r2, [sp] mov r0, r8 movs r1, 0x15 mov r2, sp bl pokemon_setattr mov r0, r8 adds r1, r5, 0 movs r2, 0 bl PokemonGetField lsls r0, 16 lsrs r0, 16 ldr r1, [sp] lsls r1, 24 lsrs r1, 24 ldr r2, [sp, 0x10] bl CalcPPWithPPUps lsls r0, 24 lsrs r0, 24 subs r0, r4 str r0, [sp] ldr r4, [sp, 0x10] adds r4, 0x11 mov r0, r8 adds r1, r4, 0 movs r2, 0 bl PokemonGetField ldr r1, [sp] adds r0, r1 str r0, [sp] mov r0, r8 adds r1, r4, 0 mov r2, sp bl pokemon_setattr movs r4, 0 str r4, [sp, 0x1C] b _0803F13A .align 2, 0 _0803EFC0: .4byte gUnknown_08208238 _0803EFC4: .4byte gUnknown_0820823C _0803EFC8: .4byte gUnknown_08208240 _0803EFCC: mov r0, r8 movs r1, 0x20 movs r2, 0 bl PokemonGetField cmp r0, 0x63 bls _0803EFDC b _0803F130 _0803EFDC: ldr r5, [sp, 0x1C] cmp r5, 0 beq _0803EFE4 b _0803F130 _0803EFE4: ldr r0, [sp, 0x2C] cmp r0, 0 beq _0803EFEC b _0803F130 _0803EFEC: ldr r1, [sp, 0x20] ldr r2, [sp, 0x24] adds r0, r1, r2 ldrb r0, [r0] str r0, [sp, 0x2C] mov r0, r8 movs r1, 0x20 movs r2, 0 bl PokemonGetField adds r5, r0, 0 str r5, [sp, 0x4] ldr r3, [sp, 0x2C] lsls r4, r3, 24 asrs r1, r4, 24 cmp r1, 0 ble _0803F0D0 ldr r0, [sp, 0x30] cmp r0, 0x1B bne _0803F0D0 movs r0, 0x96 muls r0, r1 movs r1, 0x64 bl __divsi3 adds r0, r5, r0 str r0, [sp, 0x4] adds r2, r4, 0 b _0803F0DC _0803F026: mov r0, r8 movs r1, 0x20 movs r2, 0 bl PokemonGetField cmp r0, 0x63 bls _0803F130 mov r0, r8 movs r1, 0x20 movs r2, 0 bl PokemonGetField cmp r0, 0xC7 bhi _0803F130 ldr r2, [sp, 0x1C] cmp r2, 0 bne _0803F130 ldr r3, [sp, 0x2C] cmp r3, 0 bne _0803F130 ldr r4, [sp, 0x20] ldr r5, [sp, 0x24] adds r0, r4, r5 ldrb r0, [r0] str r0, [sp, 0x2C] mov r0, r8 movs r1, 0x20 movs r2, 0 bl PokemonGetField adds r4, r0, 0 str r4, [sp, 0x4] ldr r0, [sp, 0x2C] lsls r5, r0, 24 asrs r1, r5, 24 cmp r1, 0 ble _0803F076 ldr r2, [sp, 0x30] cmp r2, 0x1B beq _0803F0BE _0803F076: ldr r3, [sp, 0x2C] lsls r2, r3, 24 b _0803F0D4 _0803F07C: mov r0, r8 movs r1, 0x20 movs r2, 0 bl PokemonGetField cmp r0, 0xC7 bls _0803F130 ldr r4, [sp, 0x1C] cmp r4, 0 bne _0803F130 ldr r5, [sp, 0x2C] cmp r5, 0 bne _0803F130 ldr r1, [sp, 0x20] ldr r2, [sp, 0x24] adds r0, r1, r2 ldrb r0, [r0] str r0, [sp, 0x2C] mov r0, r8 movs r1, 0x20 movs r2, 0 bl PokemonGetField adds r4, r0, 0 str r4, [sp, 0x4] ldr r3, [sp, 0x2C] lsls r5, r3, 24 asrs r1, r5, 24 cmp r1, 0 ble _0803F0D0 ldr r0, [sp, 0x30] cmp r0, 0x1B bne _0803F0D0 _0803F0BE: movs r0, 0x96 muls r0, r1 movs r1, 0x64 bl __divsi3 adds r0, r4, r0 str r0, [sp, 0x4] adds r2, r5, 0 b _0803F0DC _0803F0D0: ldr r1, [sp, 0x2C] lsls r2, r1, 24 _0803F0D4: asrs r1, r2, 24 ldr r0, [sp, 0x4] adds r0, r1 str r0, [sp, 0x4] _0803F0DC: cmp r2, 0 ble _0803F112 mov r0, r8 movs r1, 0x26 movs r2, 0 bl PokemonGetField cmp r0, 0xB bne _0803F0F4 ldr r0, [sp, 0x4] adds r0, 0x1 str r0, [sp, 0x4] _0803F0F4: mov r0, r8 movs r1, 0x23 movs r2, 0 bl PokemonGetField adds r4, r0, 0 bl sav1_map_get_name lsls r0, 24 lsrs r0, 24 cmp r4, r0 bne _0803F112 ldr r0, [sp, 0x4] adds r0, 0x1 str r0, [sp, 0x4] _0803F112: ldr r0, [sp, 0x4] cmp r0, 0 bge _0803F11C movs r0, 0 str r0, [sp, 0x4] _0803F11C: ldr r0, [sp, 0x4] cmp r0, 0xFF ble _0803F126 movs r0, 0xFF str r0, [sp, 0x4] _0803F126: add r2, sp, 0x4 mov r0, r8 movs r1, 0x20 bl pokemon_setattr _0803F130: ldr r0, [sp, 0x24] adds r0, 0x1 lsls r0, 24 lsrs r0, 24 str r0, [sp, 0x24] _0803F13A: ldr r2, [sp, 0x28] adds r2, 0x1 str r2, [sp, 0x28] mov r3, r10 lsrs r3, 1 mov r10, r3 cmp r3, 0 beq _0803F14C b _0803EE32 _0803F14C: ldr r4, [sp, 0x18] adds r4, 0x1 str r4, [sp, 0x18] cmp r4, 0x5 bgt _0803F15A bl _0803E378 _0803F15A: ldr r0, [sp, 0x1C] _0803F15C: add sp, 0x3C pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_803E1B0 thumb_func_start HealStatusConditions HealStatusConditions: @ 803F16C push {r4-r6,lr} sub sp, 0x4 adds r5, r0, 0 adds r4, r2, 0 lsls r3, 24 lsrs r6, r3, 24 movs r1, 0x37 movs r2, 0 bl PokemonGetField adds r1, r0, 0 str r1, [sp] ands r0, r4 cmp r0, 0 beq _0803F1D0 mvns r4, r4 ands r1, r4 str r1, [sp] adds r0, r5, 0 movs r1, 0x37 mov r2, sp bl pokemon_setattr ldr r0, _0803F1C4 ldr r1, _0803F1C8 adds r0, r1 ldrb r1, [r0] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _0803F1BE cmp r6, 0x4 beq _0803F1BE ldr r0, _0803F1CC movs r1, 0x58 muls r1, r6 adds r0, 0x4C adds r1, r0 ldr r0, [r1] ands r0, r4 str r0, [r1] _0803F1BE: movs r0, 0 b _0803F1D2 .align 2, 0 _0803F1C4: .4byte 0x03001770 _0803F1C8: .4byte 0x0000043d _0803F1CC: .4byte 0x02024a80 _0803F1D0: movs r0, 0x1 _0803F1D2: add sp, 0x4 pop {r4-r6} pop {r1} bx r1 thumb_func_end HealStatusConditions thumb_func_start sub_803F1DC sub_803F1DC: @ 803F1DC push {r4-r7,lr} lsls r0, 16 lsrs r3, r0, 16 lsls r1, 24 lsrs r4, r1, 24 lsls r2, 24 lsrs r5, r2, 24 movs r7, 0x6 ldr r1, _0803F204 adds r0, r3, 0 subs r0, 0xD lsls r0, 2 adds r0, r1 ldr r0, [r0] cmp r0, 0 bne _0803F208 cmp r3, 0xAF beq _0803F20C _0803F200: movs r0, 0 b _0803F31C .align 2, 0 _0803F204: .4byte gItemEffectTable _0803F208: cmp r3, 0xAF bne _0803F21A _0803F20C: ldr r0, _0803F22C ldrb r1, [r0] lsls r0, r1, 3 subs r0, r1 lsls r0, 2 ldr r1, _0803F230 adds r0, r1 _0803F21A: mov r12, r0 movs r2, 0 _0803F21E: cmp r2, 0x4 beq _0803F23E cmp r2, 0x4 ble _0803F234 cmp r2, 0x5 beq _0803F2C8 b _0803F312 .align 2, 0 _0803F22C: .4byte 0x02024a60 _0803F230: .4byte 0x02024df8 _0803F234: cmp r2, 0 blt _0803F312 cmp r2, r4 bne _0803F312 b _0803F200 _0803F23E: mov r0, r12 ldrb r3, [r0, 0x4] movs r0, 0x20 ands r0, r3 cmp r0, 0 beq _0803F24E movs r0, 0xDF ands r3, r0 _0803F24E: movs r6, 0 cmp r3, 0 beq _0803F312 _0803F254: movs r0, 0x1 ands r0, r3 cmp r0, 0 beq _0803F2B4 cmp r6, 0x7 bhi _0803F2B4 lsls r0, r6, 2 ldr r1, _0803F26C adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0803F26C: .4byte _0803F270 .align 2, 0 _0803F270: .4byte _0803F29C .4byte _0803F29C .4byte _0803F290 .4byte _0803F29C .4byte _0803F2B4 .4byte _0803F2B4 .4byte _0803F2B4 .4byte _0803F2B0 _0803F290: movs r0, 0x10 ands r0, r3 cmp r0, 0 beq _0803F29C movs r0, 0xEF ands r3, r0 _0803F29C: cmp r2, r4 bne _0803F2A8 adds r0, r3, 0 ands r0, r5 cmp r0, 0 bne _0803F31A _0803F2A8: adds r0, r7, 0x1 lsls r0, 24 lsrs r7, r0, 24 b _0803F2B4 _0803F2B0: cmp r2, r4 beq _0803F200 _0803F2B4: adds r0, r6, 0x1 lsls r0, 24 lsrs r6, r0, 24 lsrs r3, 1 cmp r2, r4 bne _0803F2C2 lsrs r5, 1 _0803F2C2: cmp r3, 0 bne _0803F254 b _0803F312 _0803F2C8: mov r0, r12 ldrb r3, [r0, 0x5] movs r6, 0 _0803F2CE: cmp r3, 0 beq _0803F312 movs r0, 0x1 ands r0, r3 cmp r0, 0 beq _0803F302 cmp r6, 0 blt _0803F302 cmp r6, 0x6 ble _0803F2E8 cmp r6, 0x7 beq _0803F2FC b _0803F302 _0803F2E8: cmp r2, r4 bne _0803F2F4 adds r0, r3, 0 ands r0, r5 cmp r0, 0 bne _0803F31A _0803F2F4: adds r0, r7, 0x1 lsls r0, 24 lsrs r7, r0, 24 b _0803F302 _0803F2FC: cmp r2, r4 bne _0803F302 b _0803F200 _0803F302: adds r0, r6, 0x1 lsls r0, 24 lsrs r6, r0, 24 lsrs r3, 1 cmp r2, r4 bne _0803F2CE lsrs r5, 1 b _0803F2CE _0803F312: adds r2, 0x1 cmp r2, 0x5 bgt _0803F31A b _0803F21E _0803F31A: adds r0, r7, 0 _0803F31C: pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_803F1DC thumb_func_start sub_803F324 sub_803F324: @ 803F324 push {lr} ldr r2, _0803F358 ldr r1, _0803F35C ldrb r1, [r1] strb r1, [r2] ldr r3, _0803F360 ldr r2, _0803F364 ldr r1, _0803F368 adds r0, r1 ldrb r0, [r0] lsls r0, 2 adds r0, r2 ldr r1, [r0] adds r0, r3, 0 bl StringCopy ldr r0, _0803F36C ldr r1, _0803F370 bl StringCopy ldr r0, _0803F374 bl get_battle_strings_ pop {r0} bx r0 .align 2, 0 _0803F358: .4byte 0x02024c08 _0803F35C: .4byte 0x02024e6c _0803F360: .4byte 0x030041c0 _0803F364: .4byte gUnknown_08400F58 _0803F368: .4byte gUnknown_082082F8 _0803F36C: .4byte 0x03004290 _0803F370: .4byte gUnknown_083FFDB3 _0803F374: .4byte gUnknown_083FFDD3 thumb_func_end sub_803F324 thumb_func_start sub_803F378 sub_803F378: @ 803F378 push {r4-r7,lr} mov r7, r8 push {r7} lsls r0, 16 lsrs r0, 16 cmp r0, 0xAF bne _0803F3C0 ldr r0, _0803F3A8 ldr r1, _0803F3AC adds r0, r1 ldrb r1, [r0] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _0803F3B8 ldr r2, _0803F3B0 ldrb r1, [r2] lsls r0, r1, 3 subs r0, r1 lsls r0, 2 ldr r1, _0803F3B4 adds r7, r0, r1 b _0803F3CC .align 2, 0 _0803F3A8: .4byte 0x03001770 _0803F3AC: .4byte 0x0000043d _0803F3B0: .4byte 0x02024e6c _0803F3B4: .4byte 0x02024df8 _0803F3B8: ldr r7, _0803F3BC b _0803F3CA .align 2, 0 _0803F3BC: .4byte 0x02028daa _0803F3C0: ldr r1, _0803F404 subs r0, 0xD lsls r0, 2 adds r0, r1 ldr r7, [r0] _0803F3CA: ldr r2, _0803F408 _0803F3CC: ldr r1, _0803F40C ldrb r0, [r2] strb r0, [r1] movs r5, 0 ldr r0, _0803F410 mov r8, r0 movs r6, 0 _0803F3DA: adds r4, r7, r5 ldrb r1, [r4] movs r0, 0xF ands r0, r1 cmp r0, 0 beq _0803F3EC adds r0, r6, 0 bl sub_803F324 _0803F3EC: ldrb r1, [r4] movs r0, 0xF0 ands r0, r1 cmp r0, 0 beq _0803F422 cmp r5, 0 beq _0803F414 adds r0, r6, 0x1 bl sub_803F324 b _0803F422 .align 2, 0 _0803F404: .4byte gItemEffectTable _0803F408: .4byte 0x02024e6c _0803F40C: .4byte 0x02024c0b _0803F410: .4byte 0x02024c07 _0803F414: ldr r0, _0803F450 ldrb r0, [r0] mov r1, r8 strb r0, [r1] ldr r0, _0803F454 bl get_battle_strings_ _0803F422: adds r6, 0x2 adds r5, 0x1 cmp r5, 0x2 ble _0803F3DA ldrb r1, [r7, 0x3] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _0803F442 ldr r1, _0803F458 ldr r0, _0803F450 ldrb r0, [r0] strb r0, [r1] ldr r0, _0803F45C bl get_battle_strings_ _0803F442: ldr r0, _0803F460 pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0803F450: .4byte 0x02024e6c _0803F454: .4byte gUnknown_083FEE92 _0803F458: .4byte 0x02024c07 _0803F45C: .4byte gUnknown_083FEE5D _0803F460: .4byte 0x020238cc thumb_func_end sub_803F378 thumb_func_start GetNature GetNature: @ 803F464 push {lr} movs r1, 0 movs r2, 0 bl PokemonGetField movs r1, 0x19 bl __umodsi3 lsls r0, 24 lsrs r0, 24 pop {r1} bx r1 thumb_func_end GetNature thumb_func_start GetNatureFromPersonality GetNatureFromPersonality: @ 803F47C push {lr} movs r1, 0x19 bl __umodsi3 lsls r0, 24 lsrs r0, 24 pop {r1} bx r1 thumb_func_end GetNatureFromPersonality thumb_func_start GetEvolutionTargetSpecies GetEvolutionTargetSpecies: @ 803F48C push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x14 mov r8, r0 lsls r1, 24 lsrs r5, r1, 24 lsls r2, 16 lsrs r2, 16 mov r9, r2 movs r0, 0 mov r10, r0 mov r0, r8 movs r1, 0xB movs r2, 0 bl PokemonGetField lsls r0, 16 lsrs r7, r0, 16 mov r0, r8 movs r1, 0xC movs r2, 0 bl PokemonGetField mov r1, sp strh r0, [r1] mov r0, r8 movs r1, 0 movs r2, 0 bl PokemonGetField adds r4, r0, 0 mov r0, r8 movs r1, 0x17 movs r2, 0 bl PokemonGetField lsls r0, 24 lsrs r0, 24 str r0, [sp, 0xC] lsrs r4, 16 str r4, [sp, 0x10] mov r0, sp ldrh r0, [r0] cmp r0, 0xAF bne _0803F500 ldr r0, _0803F4F8 ldr r1, _0803F4FC adds r0, r1 ldrb r0, [r0] b _0803F508 .align 2, 0 _0803F4F8: .4byte 0x02025734 _0803F4FC: .4byte 0x00003688 _0803F500: bl itemid_get_x12 lsls r0, 24 lsrs r0, 24 _0803F508: cmp r0, 0x26 bne _0803F514 cmp r5, 0x3 beq _0803F514 movs r0, 0 b _0803F7A4 _0803F514: cmp r5, 0x1 bne _0803F51A b _0803F734 _0803F51A: cmp r5, 0x1 bgt _0803F524 cmp r5, 0 beq _0803F538 b _0803F7A2 _0803F524: cmp r5, 0x3 ble _0803F52A b _0803F7A2 _0803F52A: movs r2, 0 str r2, [sp, 0x4] ldr r3, _0803F534 lsls r6, r7, 2 b _0803F782 .align 2, 0 _0803F534: .4byte gEvolutionTable _0803F538: mov r0, r8 movs r1, 0x38 movs r2, 0 bl PokemonGetField lsls r0, 24 lsrs r0, 24 mov r9, r0 mov r0, r8 movs r1, 0x20 movs r2, 0 bl PokemonGetField lsls r0, 16 lsrs r0, 16 str r0, [sp, 0x8] movs r0, 0 str r0, [sp, 0x4] lsls r6, r7, 2 _0803F55E: ldr r1, _0803F584 ldr r0, [sp, 0x4] lsls r2, r0, 3 adds r0, r6, r7 lsls r0, 3 adds r0, r2, r0 adds r0, r1 ldrh r0, [r0] subs r0, 0x1 adds r3, r1, 0 adds r4, r2, 0 cmp r0, 0xE bls _0803F57A b _0803F726 _0803F57A: lsls r0, 2 ldr r1, _0803F588 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0803F584: .4byte gEvolutionTable _0803F588: .4byte _0803F58C .align 2, 0 _0803F58C: .4byte _0803F5C8 .4byte _0803F5DA .4byte _0803F5FC .4byte _0803F62C .4byte _0803F726 .4byte _0803F726 .4byte _0803F726 .4byte _0803F63C .4byte _0803F666 .4byte _0803F690 .4byte _0803F6BE .4byte _0803F6DE .4byte _0803F702 .4byte _0803F726 .4byte _0803F712 _0803F5C8: ldr r1, [sp, 0x8] cmp r1, 0xDB bhi _0803F5D0 b _0803F726 _0803F5D0: adds r0, r6, r7 lsls r0, 3 adds r0, r4, r0 adds r0, r3 b _0803F61C _0803F5DA: bl RtcCalcLocalTime ldr r0, _0803F5F8 ldrb r0, [r0, 0x2] subs r0, 0xC lsls r0, 24 lsrs r0, 24 cmp r0, 0xB bls _0803F5EE b _0803F726 _0803F5EE: ldr r2, [sp, 0x8] cmp r2, 0xDB bhi _0803F5F6 b _0803F726 _0803F5F6: b _0803F612 .align 2, 0 _0803F5F8: .4byte 0x03004038 _0803F5FC: bl RtcCalcLocalTime ldr r0, _0803F624 ldrb r0, [r0, 0x2] cmp r0, 0xB bls _0803F60A b _0803F726 _0803F60A: ldr r0, [sp, 0x8] cmp r0, 0xDB bhi _0803F612 b _0803F726 _0803F612: ldr r1, _0803F628 adds r0, r6, r7 lsls r0, 3 adds r0, r4, r0 adds r0, r1 _0803F61C: ldrh r0, [r0, 0x4] mov r10, r0 b _0803F726 .align 2, 0 _0803F624: .4byte 0x03004038 _0803F628: .4byte gEvolutionTable _0803F62C: adds r0, r6, r7 lsls r0, 3 adds r0, r4, r0 adds r1, r0, r3 ldrh r0, [r1, 0x2] cmp r0, r9 bhi _0803F726 b _0803F722 _0803F63C: adds r0, r6, r7 lsls r0, 3 adds r0, r4, r0 adds r5, r0, r3 ldrh r0, [r5, 0x2] cmp r0, r9 bhi _0803F726 mov r0, r8 movs r1, 0x3B movs r2, 0 bl PokemonGetField adds r4, r0, 0 mov r0, r8 movs r1, 0x3C movs r2, 0 bl PokemonGetField cmp r4, r0 bls _0803F726 b _0803F6B8 _0803F666: adds r0, r6, r7 lsls r0, 3 adds r0, r4, r0 adds r5, r0, r3 ldrh r0, [r5, 0x2] cmp r0, r9 bhi _0803F726 mov r0, r8 movs r1, 0x3B movs r2, 0 bl PokemonGetField adds r4, r0, 0 mov r0, r8 movs r1, 0x3C movs r2, 0 bl PokemonGetField cmp r4, r0 bne _0803F726 b _0803F6B8 _0803F690: adds r0, r6, r7 lsls r0, 3 adds r0, r4, r0 adds r5, r0, r3 ldrh r0, [r5, 0x2] cmp r0, r9 bhi _0803F726 mov r0, r8 movs r1, 0x3B movs r2, 0 bl PokemonGetField adds r4, r0, 0 mov r0, r8 movs r1, 0x3C movs r2, 0 bl PokemonGetField cmp r4, r0 bcs _0803F726 _0803F6B8: ldrh r5, [r5, 0x4] mov r10, r5 b _0803F726 _0803F6BE: adds r0, r6, r7 lsls r0, 3 adds r0, r4, r0 adds r4, r0, r3 ldrh r0, [r4, 0x2] cmp r0, r9 bhi _0803F726 ldr r0, [sp, 0x10] movs r1, 0xA bl __umodsi3 lsls r0, 16 lsrs r0, 16 cmp r0, 0x4 bhi _0803F726 b _0803F6FC _0803F6DE: adds r0, r6, r7 lsls r0, 3 adds r0, r4, r0 adds r4, r0, r3 ldrh r0, [r4, 0x2] cmp r0, r9 bhi _0803F726 ldr r0, [sp, 0x10] movs r1, 0xA bl __umodsi3 lsls r0, 16 lsrs r0, 16 cmp r0, 0x4 bls _0803F726 _0803F6FC: ldrh r4, [r4, 0x4] mov r10, r4 b _0803F726 _0803F702: adds r0, r6, r7 lsls r0, 3 adds r0, r4, r0 adds r1, r0, r3 ldrh r0, [r1, 0x2] cmp r0, r9 bhi _0803F726 b _0803F722 _0803F712: adds r0, r6, r7 lsls r0, 3 adds r0, r4, r0 adds r1, r0, r3 ldrh r0, [r1, 0x2] ldr r2, [sp, 0xC] cmp r0, r2 bhi _0803F726 _0803F722: ldrh r1, [r1, 0x4] mov r10, r1 _0803F726: ldr r0, [sp, 0x4] adds r0, 0x1 str r0, [sp, 0x4] cmp r0, 0x4 bgt _0803F732 b _0803F55E _0803F732: b _0803F7A2 _0803F734: lsls r6, r7, 2 ldr r1, _0803F778 adds r0, r6, r7 lsls r0, 3 adds r4, r0, r1 mov r5, sp movs r1, 0x4 str r1, [sp, 0x4] _0803F744: ldrh r0, [r4] cmp r0, 0x5 beq _0803F764 cmp r0, 0x6 bne _0803F768 ldrh r0, [r4, 0x2] ldrh r1, [r5] cmp r0, r1 bne _0803F768 movs r0, 0 strh r0, [r5] mov r0, r8 movs r1, 0xC mov r2, sp bl pokemon_setattr _0803F764: ldrh r2, [r4, 0x4] mov r10, r2 _0803F768: adds r4, 0x8 ldr r0, [sp, 0x4] subs r0, 0x1 str r0, [sp, 0x4] cmp r0, 0 bge _0803F744 b _0803F7A2 .align 2, 0 _0803F778: .4byte gEvolutionTable _0803F77C: ldrh r1, [r1, 0x4] mov r10, r1 b _0803F7A2 _0803F782: adds r0, r6, r7 ldr r1, [sp, 0x4] adds r0, r1 lsls r0, 3 adds r1, r0, r3 ldrh r0, [r1] cmp r0, 0x7 bne _0803F798 ldrh r0, [r1, 0x2] cmp r0, r9 beq _0803F77C _0803F798: ldr r2, [sp, 0x4] adds r2, 0x1 str r2, [sp, 0x4] cmp r2, 0x4 ble _0803F782 _0803F7A2: mov r0, r10 _0803F7A4: add sp, 0x14 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 thumb_func_end GetEvolutionTargetSpecies thumb_func_start HoennPokedexNumToSpecies HoennPokedexNumToSpecies: @ 803F7B4 push {r4,lr} lsls r0, 16 lsrs r2, r0, 16 cmp r2, 0 beq _0803F7F8 movs r1, 0 ldr r3, _0803F7F0 ldrh r0, [r3] cmp r0, r2 beq _0803F7E0 movs r4, 0xCD lsls r4, 1 _0803F7CC: adds r0, r1, 0x1 lsls r0, 16 lsrs r1, r0, 16 cmp r1, r4 bhi _0803F7E0 lsls r0, r1, 1 adds r0, r3 ldrh r0, [r0] cmp r0, r2 bne _0803F7CC _0803F7E0: ldr r0, _0803F7F4 cmp r1, r0 beq _0803F7F8 adds r0, r1, 0x1 lsls r0, 16 lsrs r0, 16 b _0803F7FA .align 2, 0 _0803F7F0: .4byte gSpeciesToHoennPokedexNum _0803F7F4: .4byte 0x0000019b _0803F7F8: movs r0, 0 _0803F7FA: pop {r4} pop {r1} bx r1 thumb_func_end HoennPokedexNumToSpecies thumb_func_start NationalPokedexNumToSpecies NationalPokedexNumToSpecies: @ 803F800 push {r4,lr} lsls r0, 16 lsrs r2, r0, 16 cmp r2, 0 beq _0803F844 movs r1, 0 ldr r3, _0803F83C ldrh r0, [r3] cmp r0, r2 beq _0803F82C movs r4, 0xCD lsls r4, 1 _0803F818: adds r0, r1, 0x1 lsls r0, 16 lsrs r1, r0, 16 cmp r1, r4 bhi _0803F82C lsls r0, r1, 1 adds r0, r3 ldrh r0, [r0] cmp r0, r2 bne _0803F818 _0803F82C: ldr r0, _0803F840 cmp r1, r0 beq _0803F844 adds r0, r1, 0x1 lsls r0, 16 lsrs r0, 16 b _0803F846 .align 2, 0 _0803F83C: .4byte gSpeciesToNationalPokedexNum _0803F840: .4byte 0x0000019b _0803F844: movs r0, 0 _0803F846: pop {r4} pop {r1} bx r1 thumb_func_end NationalPokedexNumToSpecies thumb_func_start NationalToHoennOrder NationalToHoennOrder: @ 803F84C push {r4,lr} lsls r0, 16 lsrs r2, r0, 16 cmp r2, 0 beq _0803F890 movs r1, 0 ldr r3, _0803F888 ldrh r0, [r3] cmp r0, r2 beq _0803F878 movs r4, 0xCD lsls r4, 1 _0803F864: adds r0, r1, 0x1 lsls r0, 16 lsrs r1, r0, 16 cmp r1, r4 bhi _0803F878 lsls r0, r1, 1 adds r0, r3 ldrh r0, [r0] cmp r0, r2 bne _0803F864 _0803F878: ldr r0, _0803F88C cmp r1, r0 beq _0803F890 adds r0, r1, 0x1 lsls r0, 16 lsrs r0, 16 b _0803F892 .align 2, 0 _0803F888: .4byte gHoennToNationalOrder _0803F88C: .4byte 0x0000019b _0803F890: movs r0, 0 _0803F892: pop {r4} pop {r1} bx r1 thumb_func_end NationalToHoennOrder thumb_func_start SpeciesToNationalPokedexNum SpeciesToNationalPokedexNum: @ 803F898 push {lr} lsls r0, 16 lsrs r1, r0, 16 cmp r1, 0 beq _0803F8B4 ldr r0, _0803F8B0 subs r1, 0x1 lsls r1, 1 adds r1, r0 ldrh r0, [r1] b _0803F8B6 .align 2, 0 _0803F8B0: .4byte gSpeciesToNationalPokedexNum _0803F8B4: movs r0, 0 _0803F8B6: pop {r1} bx r1 thumb_func_end SpeciesToNationalPokedexNum thumb_func_start SpeciesToHoennPokedexNum SpeciesToHoennPokedexNum: @ 803F8BC push {lr} lsls r0, 16 lsrs r1, r0, 16 cmp r1, 0 beq _0803F8D8 ldr r0, _0803F8D4 subs r1, 0x1 lsls r1, 1 adds r1, r0 ldrh r0, [r1] b _0803F8DA .align 2, 0 _0803F8D4: .4byte gSpeciesToHoennPokedexNum _0803F8D8: movs r0, 0 _0803F8DA: pop {r1} bx r1 thumb_func_end SpeciesToHoennPokedexNum thumb_func_start HoennToNationalOrder HoennToNationalOrder: @ 803F8E0 push {lr} lsls r0, 16 lsrs r1, r0, 16 cmp r1, 0 beq _0803F8FC ldr r0, _0803F8F8 subs r1, 0x1 lsls r1, 1 adds r1, r0 ldrh r0, [r1] b _0803F8FE .align 2, 0 _0803F8F8: .4byte gHoennToNationalOrder _0803F8FC: movs r0, 0 _0803F8FE: pop {r1} bx r1 thumb_func_end HoennToNationalOrder thumb_func_start speciesid_conv speciesid_conv: @ 803F904 push {lr} lsls r0, 16 lsrs r0, 16 adds r1, r0, 0 cmp r0, 0xFA bls _0803F932 ldr r0, _0803F924 cmp r1, r0 bls _0803F930 ldr r0, _0803F928 ldr r2, _0803F92C adds r1, r2 lsls r1, 1 adds r1, r0 ldrh r0, [r1] b _0803F932 .align 2, 0 _0803F924: .4byte 0x00000113 _0803F928: .4byte gSpeciesIdToCryId _0803F92C: .4byte 0xfffffeec _0803F930: movs r0, 0xC8 _0803F932: pop {r1} bx r1 thumb_func_end speciesid_conv thumb_func_start unref_sub_803F938 unref_sub_803F938: @ 803F938 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x8 adds r5, r1, 0 mov r10, r2 lsls r0, 16 movs r1, 0x9A lsls r1, 17 cmp r0, r1 bne _0803FA42 ldr r1, _0803FA04 ldr r0, [r1] cmp r10, r0 beq _0803FA42 ldr r0, [r1, 0x8] cmp r10, r0 beq _0803FA42 movs r6, 0 _0803F962: lsls r3, r6, 3 adds r3, r6 lsls r3, 2 ldr r0, _0803FA08 adds r4, r3, r0 ldrb r1, [r4] adds r1, 0xF8 movs r2, 0xF adds r0, r5, 0 ands r0, r2 adds r1, r0 lsls r1, 24 lsrs r1, 24 mov r12, r1 ldrb r1, [r4, 0x1] adds r1, 0xF8 movs r0, 0xF0 ands r0, r5 lsrs r0, 4 adds r1, r0 lsls r1, 24 lsrs r1, 24 movs r2, 0 lsrs r5, 8 str r5, [sp, 0x4] adds r6, 0x1 str r6, [sp] mov r9, r3 _0803F99A: lsls r0, r2, 1 add r0, r9 ldr r3, _0803FA0C adds r0, r3 ldrh r3, [r0] mov r4, r12 adds r0, r4, 0 adds r0, 0x10 adds r7, r1, 0x1 adds r2, 0x1 mov r8, r2 cmp r4, r0 bge _0803FA30 lsrs r0, r1, 3 lsls r6, r0, 8 movs r0, 0x7 ands r1, r0 lsls r5, r1, 2 _0803F9BE: adds r0, r4, 0 cmp r4, 0 bge _0803F9C6 adds r0, r4, 0x7 _0803F9C6: asrs r0, 3 lsls r2, r0, 5 add r2, r10 lsls r0, 3 subs r0, r4, r0 lsrs r1, r0, 31 adds r0, r1 asrs r0, 1 adds r2, r0 adds r2, r6 adds r2, r5 movs r1, 0x1 adds r0, r3, 0 ands r0, r1 cmp r0, 0 beq _0803FA24 adds r0, r4, 0 ands r0, r1 cmp r0, 0 beq _0803FA10 ldrb r1, [r2] movs r0, 0xF0 ands r0, r1 subs r0, 0x10 lsls r0, 24 lsrs r0, 24 cmp r0, 0x20 bhi _0803FA24 adds r0, r1, 0 adds r0, 0x40 b _0803FA22 .align 2, 0 _0803FA04: .4byte gUnknown_081FAF4C _0803FA08: .4byte gSpindaSpotGraphics _0803FA0C: .4byte gSpindaSpotGraphics + 0x2 _0803FA10: ldrb r1, [r2] movs r0, 0xF ands r0, r1 subs r0, 0x1 lsls r0, 24 lsrs r0, 24 cmp r0, 0x2 bhi _0803FA24 adds r0, r1, 0x4 _0803FA22: strb r0, [r2] _0803FA24: asrs r3, 1 adds r4, 0x1 mov r0, r12 adds r0, 0x10 cmp r4, r0 blt _0803F9BE _0803FA30: lsls r0, r7, 24 lsrs r1, r0, 24 mov r2, r8 cmp r2, 0xF ble _0803F99A ldr r5, [sp, 0x4] ldr r6, [sp] cmp r6, 0x3 ble _0803F962 _0803FA42: add sp, 0x8 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end unref_sub_803F938 thumb_func_start DrawSpindaSpots DrawSpindaSpots: @ 803FA54 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x8 adds r5, r1, 0 str r2, [sp] lsls r0, 16 lsls r3, 24 lsrs r3, 24 movs r1, 0x9A lsls r1, 17 cmp r0, r1 bne _0803FB56 cmp r3, 0 beq _0803FB56 movs r6, 0 _0803FA78: lsls r3, r6, 3 adds r3, r6 lsls r3, 2 ldr r0, _0803FB1C adds r4, r3, r0 ldrb r1, [r4] adds r1, 0xF8 movs r2, 0xF adds r0, r5, 0 ands r0, r2 adds r1, r0 lsls r1, 24 lsrs r1, 24 mov r12, r1 ldrb r1, [r4, 0x1] adds r1, 0xF8 movs r0, 0xF0 ands r0, r5 lsrs r0, 4 adds r1, r0 lsls r1, 24 lsrs r1, 24 movs r2, 0 lsrs r5, 8 str r5, [sp, 0x4] adds r6, 0x1 mov r10, r6 mov r9, r3 _0803FAB0: lsls r0, r2, 1 add r0, r9 ldr r3, _0803FB20 adds r0, r3 ldrh r3, [r0] mov r4, r12 adds r0, r4, 0 adds r0, 0x10 adds r7, r1, 0x1 adds r2, 0x1 mov r8, r2 cmp r4, r0 bge _0803FB44 lsrs r0, r1, 3 lsls r6, r0, 8 movs r0, 0x7 ands r1, r0 lsls r5, r1, 2 _0803FAD4: adds r0, r4, 0 cmp r4, 0 bge _0803FADC adds r0, r4, 0x7 _0803FADC: asrs r0, 3 lsls r2, r0, 5 ldr r1, [sp] adds r2, r1, r2 lsls r0, 3 subs r0, r4, r0 lsrs r1, r0, 31 adds r0, r1 asrs r0, 1 adds r2, r0 adds r2, r6 adds r2, r5 movs r1, 0x1 adds r0, r3, 0 ands r0, r1 cmp r0, 0 beq _0803FB38 adds r0, r4, 0 ands r0, r1 cmp r0, 0 beq _0803FB24 ldrb r1, [r2] movs r0, 0xF0 ands r0, r1 subs r0, 0x10 lsls r0, 24 lsrs r0, 24 cmp r0, 0x20 bhi _0803FB38 adds r0, r1, 0 adds r0, 0x40 b _0803FB36 .align 2, 0 _0803FB1C: .4byte gSpindaSpotGraphics _0803FB20: .4byte gSpindaSpotGraphics + 0x2 _0803FB24: ldrb r1, [r2] movs r0, 0xF ands r0, r1 subs r0, 0x1 lsls r0, 24 lsrs r0, 24 cmp r0, 0x2 bhi _0803FB38 adds r0, r1, 0x4 _0803FB36: strb r0, [r2] _0803FB38: asrs r3, 1 adds r4, 0x1 mov r0, r12 adds r0, 0x10 cmp r4, r0 blt _0803FAD4 _0803FB44: lsls r0, r7, 24 lsrs r1, r0, 24 mov r2, r8 cmp r2, 0xF ble _0803FAB0 ldr r5, [sp, 0x4] mov r6, r10 cmp r6, 0x3 ble _0803FA78 _0803FB56: add sp, 0x8 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end DrawSpindaSpots thumb_func_start sub_803FB68 sub_803FB68: @ 803FB68 push {r4-r7,lr} mov r7, r8 push {r7} adds r7, r0, 0 adds r4, r1, 0 lsls r4, 16 lsrs r4, 16 lsls r2, 16 lsrs r2, 16 mov r8, r2 ldr r5, _0803FBB4 movs r1, 0x2 adds r2, r5, 0 bl PokemonGetField movs r6, 0xB adds r0, r4, 0 muls r0, r6 ldr r4, _0803FBB8 adds r0, r4 adds r1, r5, 0 bl StringCompareWithoutExtCtrlCodes cmp r0, 0 bne _0803FBA8 mov r2, r8 muls r2, r6 adds r2, r4 adds r0, r7, 0 movs r1, 0x2 bl pokemon_setattr _0803FBA8: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0803FBB4: .4byte 0x020231cc _0803FBB8: .4byte gSpeciesNames thumb_func_end sub_803FB68 thumb_func_start sub_803FBBC sub_803FBBC: @ 803FBBC push {r4,r5,lr} movs r5, 0 ldr r4, _0803FBE4 bl GetMultiplayerId lsls r0, 24 lsrs r0, 24 lsls r1, r0, 3 subs r1, r0 lsls r1, 2 adds r1, r4 ldrh r0, [r1, 0x18] cmp r0, 0x2 bgt _0803FBE8 cmp r0, 0x1 bge _0803FBF0 cmp r0, 0 beq _0803FBEC b _0803FBF2 .align 2, 0 _0803FBE4: .4byte 0x03002970 _0803FBE8: cmp r0, 0x3 bne _0803FBF2 _0803FBEC: movs r5, 0 b _0803FBF2 _0803FBF0: movs r5, 0x1 _0803FBF2: adds r0, r5, 0 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_803FBBC thumb_func_start sub_803FBFC sub_803FBFC: @ 803FBFC push {lr} lsls r0, 24 lsrs r0, 24 movs r3, 0 ldr r2, _0803FC20 lsls r1, r0, 3 subs r1, r0 lsls r1, 2 adds r1, r2 ldrh r0, [r1, 0x18] cmp r0, 0x2 bgt _0803FC24 cmp r0, 0x1 bge _0803FC2C cmp r0, 0 beq _0803FC28 b _0803FC2E .align 2, 0 _0803FC20: .4byte 0x03002970 _0803FC24: cmp r0, 0x3 bne _0803FC2E _0803FC28: movs r3, 0 b _0803FC2E _0803FC2C: movs r3, 0x1 _0803FC2E: adds r0, r3, 0 pop {r1} bx r1 thumb_func_end sub_803FBFC thumb_func_start sub_803FC34 sub_803FC34: @ 803FC34 push {lr} lsls r0, 16 lsrs r3, r0, 16 movs r2, 0 ldr r1, _0803FC40 b _0803FC4C .align 2, 0 _0803FC40: .4byte 0x03002970 _0803FC44: adds r1, 0x1C adds r2, 0x1 cmp r2, 0x3 bgt _0803FC52 _0803FC4C: ldrh r0, [r1, 0x18] cmp r0, r3 bne _0803FC44 _0803FC52: adds r0, r2, 0 pop {r1} bx r1 thumb_func_end sub_803FC34 thumb_func_start sub_803FC58 sub_803FC58: @ 803FC58 lsls r0, 16 lsrs r0, 16 ldr r2, _0803FC70 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 ldrb r1, [r1, 0x2] movs r0, 0x7F ands r0, r1 bx lr .align 2, 0 _0803FC70: .4byte gTrainers thumb_func_end sub_803FC58 thumb_func_start nature_stat_mod nature_stat_mod: @ 803FC74 push {r4,r5,lr} lsls r0, 24 lsrs r4, r0, 24 lsls r1, 16 lsrs r3, r1, 16 lsls r2, 24 lsrs r5, r2, 24 movs r0, 0xFF lsls r0, 24 adds r2, r0 lsrs r2, 24 cmp r2, 0x4 bls _0803FC92 adds r0, r3, 0 b _0803FCCE _0803FC92: ldr r0, _0803FCB4 lsls r1, r4, 2 adds r1, r4 subs r1, 0x1 adds r1, r5, r1 adds r1, r0 ldrb r1, [r1] lsls r1, 24 asrs r1, 24 movs r0, 0x1 negs r0, r0 cmp r1, r0 beq _0803FCB8 cmp r1, 0x1 bne _0803FCCC movs r0, 0x6E b _0803FCBA .align 2, 0 _0803FCB4: .4byte gNatureStatTable _0803FCB8: movs r0, 0x5A _0803FCBA: muls r0, r3 lsls r0, 16 lsrs r0, 16 movs r1, 0x64 bl __udivsi3 lsls r0, 16 lsrs r0, 16 b _0803FCCE _0803FCCC: adds r0, r3, 0 _0803FCCE: pop {r4,r5} pop {r1} bx r1 thumb_func_end nature_stat_mod thumb_func_start sub_803FCD4 sub_803FCD4: @ 803FCD4 push {r4-r7,lr} sub sp, 0x4 adds r7, r0, 0 lsls r1, 24 lsrs r5, r1, 24 movs r1, 0x41 movs r2, 0 bl PokemonGetField lsls r0, 16 lsrs r6, r0, 16 adds r0, r7, 0 movs r1, 0xC movs r2, 0 bl PokemonGetField lsls r0, 16 lsrs r0, 16 cmp r0, 0xAF bne _0803FD34 ldr r0, _0803FD14 ldr r1, _0803FD18 adds r0, r1 ldrb r1, [r0] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _0803FD20 ldr r0, _0803FD1C ldrb r4, [r0, 0x7] b _0803FD3C .align 2, 0 _0803FD14: .4byte 0x03001770 _0803FD18: .4byte 0x0000043d _0803FD1C: .4byte 0x02024df0 _0803FD20: ldr r0, _0803FD2C ldr r1, _0803FD30 adds r0, r1 ldrb r4, [r0] b _0803FD3C .align 2, 0 _0803FD2C: .4byte 0x02025734 _0803FD30: .4byte 0x00003688 _0803FD34: bl itemid_get_x12 lsls r0, 24 lsrs r4, r0, 24 _0803FD3C: cmp r6, 0 bne _0803FD42 b _0803FE56 _0803FD42: movs r0, 0xCE lsls r0, 1 cmp r6, r0 bne _0803FD4C b _0803FE56 _0803FD4C: movs r6, 0 adds r0, r7, 0 movs r1, 0x20 movs r2, 0 bl PokemonGetField lsls r0, 16 lsrs r0, 16 mov r1, sp strh r0, [r1] lsls r0, 16 asrs r0, 16 cmp r0, 0x63 ble _0803FD6A movs r6, 0x1 _0803FD6A: cmp r0, 0xC7 ble _0803FD74 adds r0, r6, 0x1 lsls r0, 24 lsrs r6, r0, 24 _0803FD74: cmp r5, 0x5 bne _0803FD84 bl Random movs r1, 0x1 ands r1, r0 cmp r1, 0 bne _0803FE56 _0803FD84: cmp r5, 0x3 bne _0803FDB4 ldr r0, _0803FE60 ldrh r1, [r0] movs r0, 0x8 ands r0, r1 cmp r0, 0 beq _0803FE56 ldr r2, _0803FE64 ldr r0, _0803FE68 ldrh r1, [r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r2 ldrb r1, [r0, 0x1] adds r0, r1, 0 subs r0, 0x18 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bls _0803FDB4 cmp r1, 0x20 bne _0803FE56 _0803FDB4: ldr r1, _0803FE6C lsls r0, r5, 1 adds r0, r5 adds r0, r6, r0 adds r0, r1 ldrb r2, [r0] movs r1, 0 ldrsb r1, [r0, r1] cmp r1, 0 ble _0803FDDA cmp r4, 0x1B bne _0803FDDA movs r0, 0x96 muls r0, r1 movs r1, 0x64 bl __divsi3 lsls r0, 24 lsrs r2, r0, 24 _0803FDDA: lsls r2, 24 asrs r2, 24 mov r0, sp movs r1, 0 ldrsh r0, [r0, r1] adds r0, r2 mov r1, sp strh r0, [r1] cmp r2, 0 ble _0803FE2C adds r0, r7, 0 movs r1, 0x26 movs r2, 0 bl PokemonGetField cmp r0, 0xB bne _0803FE08 mov r0, sp movs r1, 0 ldrsh r0, [r0, r1] adds r0, 0x1 mov r1, sp strh r0, [r1] _0803FE08: adds r0, r7, 0 movs r1, 0x23 movs r2, 0 bl PokemonGetField adds r4, r0, 0 bl sav1_map_get_name lsls r0, 24 lsrs r0, 24 cmp r4, r0 bne _0803FE2C mov r0, sp movs r1, 0 ldrsh r0, [r0, r1] adds r0, 0x1 mov r1, sp strh r0, [r1] _0803FE2C: mov r0, sp movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0 bge _0803FE3C movs r1, 0 mov r0, sp strh r1, [r0] _0803FE3C: mov r0, sp movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0xFF ble _0803FE4C movs r1, 0xFF mov r0, sp strh r1, [r0] _0803FE4C: adds r0, r7, 0 movs r1, 0x20 mov r2, sp bl pokemon_setattr _0803FE56: add sp, 0x4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0803FE60: .4byte 0x020239f8 _0803FE64: .4byte gTrainers _0803FE68: .4byte 0x0202ff5e _0803FE6C: .4byte gUnknown_082082FE thumb_func_end sub_803FCD4 thumb_func_start sub_803FE70 sub_803FE70: @ 803FE70 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x8 mov r8, r0 lsls r1, 16 lsrs r5, r1, 16 movs r4, 0 movs r7, 0 movs r6, 0 _0803FE84: adds r1, r6, 0 adds r1, 0x1A mov r0, r8 movs r2, 0 bl PokemonGetField mov r2, sp adds r1, r2, r6 strb r0, [r1] ldrb r0, [r1] adds r0, r7, r0 lsls r0, 16 lsrs r7, r0, 16 adds r6, 0x1 cmp r6, 0x5 ble _0803FE84 movs r6, 0 b _08040006 _0803FEA8: mov r0, r8 movs r1, 0 bl sub_8040178 lsls r0, 24 movs r2, 0x1 cmp r0, 0 beq _0803FEBA movs r2, 0x2 _0803FEBA: cmp r6, 0x5 bhi _0803FF5C lsls r0, r6, 2 ldr r1, _0803FEC8 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0803FEC8: .4byte _0803FECC .align 2, 0 _0803FECC: .4byte _0803FEE4 .4byte _0803FEF8 .4byte _0803FF0C .4byte _0803FF20 .4byte _0803FF34 .4byte _0803FF48 _0803FEE4: ldr r0, _0803FEF4 lsls r1, r5, 3 subs r1, r5 lsls r1, 2 adds r1, r0 ldrb r0, [r1, 0xA] lsls r0, 30 b _0803FF56 .align 2, 0 _0803FEF4: .4byte gBaseStats _0803FEF8: ldr r0, _0803FF08 lsls r1, r5, 3 subs r1, r5 lsls r1, 2 adds r1, r0 ldrb r0, [r1, 0xA] b _0803FF54 .align 2, 0 _0803FF08: .4byte gBaseStats _0803FF0C: ldr r0, _0803FF1C lsls r1, r5, 3 subs r1, r5 lsls r1, 2 adds r1, r0 ldrb r0, [r1, 0xA] lsls r0, 26 b _0803FF56 .align 2, 0 _0803FF1C: .4byte gBaseStats _0803FF20: ldr r0, _0803FF30 lsls r1, r5, 3 subs r1, r5 lsls r1, 2 adds r1, r0 ldrb r0, [r1, 0xA] lsrs r0, 6 b _0803FF58 .align 2, 0 _0803FF30: .4byte gBaseStats _0803FF34: ldr r0, _0803FF44 lsls r1, r5, 3 subs r1, r5 lsls r1, 2 adds r1, r0 ldrb r0, [r1, 0xB] lsls r0, 30 b _0803FF56 .align 2, 0 _0803FF44: .4byte gBaseStats _0803FF48: ldr r0, _0803FF84 lsls r1, r5, 3 subs r1, r5 lsls r1, 2 adds r1, r0 ldrb r0, [r1, 0xB] _0803FF54: lsls r0, 28 _0803FF56: lsrs r0, 30 _0803FF58: adds r4, r0, 0 muls r4, r2 _0803FF5C: mov r0, r8 movs r1, 0xC movs r2, 0 bl PokemonGetField lsls r0, 16 lsrs r0, 16 cmp r0, 0xAF bne _0803FFA8 ldr r0, _0803FF88 ldr r1, _0803FF8C adds r0, r1 ldrb r1, [r0] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _0803FF94 ldr r0, _0803FF90 ldrb r0, [r0, 0x7] b _0803FFB0 .align 2, 0 _0803FF84: .4byte gBaseStats _0803FF88: .4byte 0x03001770 _0803FF8C: .4byte 0x0000043d _0803FF90: .4byte 0x02024df0 _0803FF94: ldr r0, _0803FFA0 ldr r2, _0803FFA4 adds r0, r2 ldrb r0, [r0] b _0803FFB0 .align 2, 0 _0803FFA0: .4byte 0x02025734 _0803FFA4: .4byte 0x00003688 _0803FFA8: bl itemid_get_x12 lsls r0, 24 lsrs r0, 24 _0803FFB0: cmp r0, 0x18 bne _0803FFB8 lsls r0, r4, 17 lsrs r4, r0, 16 _0803FFB8: lsls r0, r4, 16 asrs r2, r0, 16 adds r1, r7, r2 movs r0, 0xFF lsls r0, 1 cmp r1, r0 ble _0803FFD0 adds r0, r2, r0 adds r1, r7, r4 subs r0, r1 lsls r0, 16 lsrs r4, r0, 16 _0803FFD0: mov r0, sp adds r2, r0, r6 ldrb r3, [r2] lsls r0, r4, 16 asrs r1, r0, 16 adds r0, r3, r1 cmp r0, 0xFF ble _0803FFEC adds r0, r1, 0 adds r0, 0xFF adds r1, r3, r4 subs r0, r1 lsls r0, 16 lsrs r4, r0, 16 _0803FFEC: adds r0, r3, r4 strb r0, [r2] adds r0, r7, r4 lsls r0, 16 lsrs r7, r0, 16 adds r1, r6, 0 adds r1, 0x1A mov r0, r8 bl pokemon_setattr adds r6, 0x1 cmp r6, 0x5 bgt _0804000E _08040006: ldr r0, _0804001C cmp r7, r0 bhi _0804000E b _0803FEA8 _0804000E: add sp, 0x8 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0804001C: .4byte 0x000001fd thumb_func_end sub_803FE70 thumb_func_start sub_8040020 sub_8040020: @ 8040020 push {r4-r6,lr} adds r6, r0, 0 movs r5, 0 movs r4, 0 _08040028: adds r1, r4, 0 adds r1, 0x1A adds r0, r6, 0 movs r2, 0 bl PokemonGetField adds r0, r5, r0 lsls r0, 16 lsrs r5, r0, 16 adds r4, 0x1 cmp r4, 0x5 ble _08040028 adds r0, r5, 0 pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_8040020 thumb_func_start sub_8040048 sub_8040048: @ 8040048 push {r4-r6,lr} sub sp, 0x4 adds r6, r0, 0 bl Random lsls r0, 16 lsrs r5, r0, 16 movs r0, 0x80 lsls r0, 7 cmp r5, r0 beq _0804006E movs r0, 0x80 lsls r0, 8 cmp r5, r0 beq _0804006E movs r0, 0xC0 lsls r0, 8 cmp r5, r0 bne _08040104 _0804006E: bl Random lsls r0, 16 lsrs r0, 16 movs r1, 0x6 bl __umodsi3 lsls r0, 16 lsrs r5, r0, 16 movs r0, 0x64 muls r0, r5 adds r4, r6, r0 adds r0, r4, 0 movs r1, 0xB movs r2, 0 bl PokemonGetField cmp r0, 0 beq _0804006E adds r0, r4, 0 movs r1, 0x2D movs r2, 0 bl PokemonGetField cmp r0, 0 bne _0804006E ldr r1, _0804010C lsls r0, r5, 2 adds r0, r1 ldrb r1, [r0] adds r0, r6, 0 bl sub_8040178 lsls r0, 24 cmp r0, 0 bne _08040104 mov r4, sp _080400B8: bl Random lsls r0, 24 lsrs r0, 24 strb r0, [r4] cmp r0, 0 beq _080400B8 movs r0, 0xF0 mov r1, sp ldrb r1, [r1] ands r0, r1 cmp r0, 0 beq _080400DA movs r0, 0x7 ands r1, r0 mov r0, sp strb r1, [r0] _080400DA: mov r0, sp ldrb r0, [r0] lsls r1, r0, 4 orrs r0, r1 lsls r0, 24 lsrs r0, 24 mov r1, sp strb r0, [r1] movs r1, 0xF3 ands r1, r0 mov r0, sp strb r1, [r0] adds r1, 0x1 strb r1, [r0] movs r0, 0x64 muls r0, r5 adds r0, r6, r0 movs r1, 0x22 mov r2, sp bl pokemon_setattr _08040104: add sp, 0x4 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0804010C: .4byte gUnknown_0820872C thumb_func_end sub_8040048 thumb_func_start sub_8040110 sub_8040110: @ 8040110 push {r4-r7,lr} sub sp, 0x4 adds r7, r0, 0 lsls r1, 24 lsrs r4, r1, 24 movs r3, 0 movs r6, 0x1 movs r5, 0 cmp r4, 0 beq _08040158 _08040124: movs r0, 0x1 ands r0, r4 cmp r0, 0 beq _0804014C movs r0, 0x64 muls r0, r3 adds r0, r7, r0 movs r1, 0x22 movs r2, 0 str r3, [sp] bl PokemonGetField movs r1, 0xF ands r1, r0 ldr r3, [sp] cmp r1, 0 beq _0804014C orrs r5, r6 lsls r0, r5, 24 lsrs r5, r0, 24 _0804014C: adds r3, 0x1 lsls r6, 1 lsrs r4, 1 cmp r4, 0 bne _08040124 b _0804016C _08040158: adds r0, r7, 0 movs r1, 0x22 movs r2, 0 bl PokemonGetField movs r1, 0xF ands r1, r0 cmp r1, 0 beq _0804016C movs r5, 0x1 _0804016C: adds r0, r5, 0 add sp, 0x4 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_8040110 thumb_func_start sub_8040178 sub_8040178: @ 8040178 push {r4-r7,lr} sub sp, 0x4 adds r7, r0, 0 lsls r1, 24 lsrs r4, r1, 24 movs r3, 0 movs r6, 0x1 movs r5, 0 cmp r4, 0 beq _080401BC _0804018C: movs r0, 0x1 ands r0, r4 cmp r0, 0 beq _080401B0 movs r0, 0x64 muls r0, r3 adds r0, r7, r0 movs r1, 0x22 movs r2, 0 str r3, [sp] bl PokemonGetField ldr r3, [sp] cmp r0, 0 beq _080401B0 orrs r5, r6 lsls r0, r5, 24 lsrs r5, r0, 24 _080401B0: adds r3, 0x1 lsls r6, 1 lsrs r4, 1 cmp r4, 0 bne _0804018C b _080401CC _080401BC: adds r0, r7, 0 movs r1, 0x22 movs r2, 0 bl PokemonGetField cmp r0, 0 beq _080401CC movs r5, 0x1 _080401CC: adds r0, r5, 0 add sp, 0x4 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_8040178 thumb_func_start sub_80401D8 sub_80401D8: @ 80401D8 push {r4-r7,lr} sub sp, 0x4 lsls r0, 16 lsrs r7, r0, 16 movs r5, 0 mov r6, sp _080401E4: movs r0, 0x64 adds r1, r5, 0 muls r1, r0 ldr r0, _08040224 adds r4, r1, r0 adds r0, r4, 0 movs r1, 0xB movs r2, 0 bl PokemonGetField cmp r0, 0 beq _0804023C adds r0, r4, 0 movs r1, 0x22 movs r2, 0 bl PokemonGetField lsls r0, 24 lsrs r0, 24 strb r0, [r6] movs r1, 0xF adds r2, r0, 0 ands r1, r2 cmp r1, 0 beq _0804023C cmp r1, r7 bcc _0804021E cmp r7, 0x4 bls _08040228 _0804021E: movs r0, 0xF0 ands r0, r2 b _0804022A .align 2, 0 _08040224: .4byte 0x03004360 _08040228: subs r0, r2, r7 _0804022A: strb r0, [r6] movs r0, 0x64 muls r0, r5 ldr r1, _0804024C adds r0, r1 movs r1, 0x22 mov r2, sp bl pokemon_setattr _0804023C: adds r5, 0x1 cmp r5, 0x5 ble _080401E4 add sp, 0x4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0804024C: .4byte 0x03004360 thumb_func_end sub_80401D8 thumb_func_start atkE5_pickupitemcalculation atkE5_pickupitemcalculation: @ 8040250 push {r4-r7,lr} sub sp, 0x4 adds r7, r0, 0 bl Random lsls r0, 16 lsrs r0, 16 movs r1, 0x3 bl __umodsi3 lsls r0, 16 cmp r0, 0 bne _080402F6 movs r5, 0 _0804026C: movs r0, 0x64 adds r6, r5, 0 muls r6, r0 adds r4, r7, r6 adds r0, r4, 0 movs r1, 0xB movs r2, 0 bl PokemonGetField cmp r0, 0 beq _080402F0 adds r0, r4, 0 movs r1, 0x22 movs r2, 0 bl PokemonGetField lsls r0, 24 lsrs r1, r0, 24 mov r0, sp strb r1, [r0] cmp r1, 0 beq _080402F0 movs r0, 0xF ands r0, r1 cmp r0, 0 beq _080402F0 cmp r5, 0 beq _080402C6 adds r0, r6, 0 subs r0, 0x64 adds r4, r7, r0 adds r0, r4, 0 movs r1, 0x22 movs r2, 0 bl PokemonGetField movs r1, 0xF0 ands r1, r0 cmp r1, 0 bne _080402C6 adds r0, r4, 0 movs r1, 0x22 mov r2, sp bl pokemon_setattr _080402C6: cmp r5, 0x5 beq _080402F0 movs r0, 0x64 muls r0, r5 adds r0, 0x64 adds r4, r7, r0 adds r0, r4, 0 movs r1, 0x22 movs r2, 0 bl PokemonGetField movs r1, 0xF0 ands r1, r0 cmp r1, 0 bne _080402F0 adds r0, r4, 0 movs r1, 0x22 mov r2, sp bl pokemon_setattr adds r5, 0x1 _080402F0: adds r5, 0x1 cmp r5, 0x5 ble _0804026C _080402F6: add sp, 0x4 pop {r4-r7} pop {r0} bx r0 thumb_func_end atkE5_pickupitemcalculation thumb_func_start sub_8040300 sub_8040300: @ 8040300 push {r4-r6,lr} sub sp, 0x4 adds r6, r0, 0 movs r1, 0xB movs r2, 0 bl PokemonGetField adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 adds r0, r6, 0 movs r1, 0x38 movs r2, 0 bl PokemonGetField adds r0, 0x1 mov r1, sp strb r0, [r1] adds r0, r6, 0 movs r1, 0x19 movs r2, 0 bl PokemonGetField ldr r5, _08040358 mov r1, sp ldrb r2, [r1] lsls r2, 2 ldr r3, _0804035C lsls r1, r4, 3 subs r1, r4 lsls r1, 2 adds r1, r3 ldrb r3, [r1, 0x13] movs r1, 0xCA lsls r1, 1 muls r1, r3 adds r2, r1 adds r2, r5 ldr r1, [r2] cmp r0, r1 bhi _08040360 movs r0, 0 b _0804036C .align 2, 0 _08040358: .4byte gExperienceTables _0804035C: .4byte gBaseStats _08040360: adds r0, r6, 0 movs r1, 0x38 mov r2, sp bl pokemon_setattr movs r0, 0x1 _0804036C: add sp, 0x4 pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_8040300 thumb_func_start sub_8040374 sub_8040374: @ 8040374 push {r4,r5,lr} lsls r1, 24 lsrs r4, r1, 24 adds r5, r4, 0 movs r1, 0x41 movs r2, 0 bl PokemonGetField lsls r0, 16 lsrs r1, r0, 16 adds r3, r1, 0 movs r0, 0xCE lsls r0, 1 cmp r1, r0 bne _08040396 movs r0, 0 b _080403C2 _08040396: cmp r4, 0x1F bls _080403B4 adds r0, r4, 0 subs r0, 0x20 movs r2, 0x1 lsls r2, r0 ldr r0, _080403B0 lsls r1, 3 adds r0, 0x4 adds r1, r0 ldr r0, [r1] ands r0, r2 b _080403C2 .align 2, 0 _080403B0: .4byte gTMHMLearnsets _080403B4: movs r1, 0x1 lsls r1, r5 ldr r2, _080403C8 lsls r0, r3, 3 adds r0, r2 ldr r0, [r0] ands r0, r1 _080403C2: pop {r4,r5} pop {r1} bx r1 .align 2, 0 _080403C8: .4byte gTMHMLearnsets thumb_func_end sub_8040374 thumb_func_start sub_80403CC sub_80403CC: @ 80403CC push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x18 adds r6, r0, 0 str r1, [sp, 0x8] movs r0, 0 mov r10, r0 adds r0, r6, 0 movs r1, 0xB movs r2, 0 bl PokemonGetField lsls r0, 16 lsrs r7, r0, 16 adds r0, r6, 0 movs r1, 0x38 movs r2, 0 bl PokemonGetField lsls r0, 24 lsrs r0, 24 str r0, [sp, 0xC] movs r5, 0 mov r4, sp _08040402: adds r1, r5, 0 adds r1, 0xD adds r0, r6, 0 movs r2, 0 bl PokemonGetField strh r0, [r4] adds r4, 0x2 adds r5, 0x1 cmp r5, 0x3 ble _08040402 movs r5, 0 ldr r6, _08040510 lsls r1, r7, 2 adds r2, r1, r6 ldr r3, [r2] ldrh r0, [r3] ldr r4, _08040514 str r1, [sp, 0x14] cmp r0, r4 beq _080404FC mov r9, r2 str r3, [sp, 0x10] _08040430: lsls r2, r5, 1 ldr r1, [sp, 0x10] adds r0, r2, r1 ldrh r3, [r0] movs r0, 0xFE lsls r0, 8 ands r0, r3 ldr r4, [sp, 0xC] lsls r1, r4, 9 adds r7, r2, 0 adds r5, 0x1 mov r12, r5 cmp r0, r1 bgt _080404E6 movs r4, 0 mov r0, sp ldrh r1, [r0] ldr r0, _08040518 ands r0, r3 cmp r1, r0 beq _08040480 ldr r0, [sp, 0x14] ldr r1, _08040510 adds r6, r0, r1 ldr r2, _08040518 mov r8, r2 mov r3, sp adds r5, r7, 0 _08040468: adds r3, 0x2 adds r4, 0x1 cmp r4, 0x3 bgt _08040480 ldr r0, [r6] adds r0, r5, r0 ldrh r1, [r0] ldrh r2, [r3] mov r0, r8 ands r0, r1 cmp r2, r0 bne _08040468 _08040480: cmp r4, 0x4 bne _080404E6 movs r4, 0 cmp r4, r10 bge _080404C4 mov r1, r9 ldr r0, [r1] adds r0, r7, r0 ldrh r1, [r0] ldr r0, [sp, 0x8] ldrh r2, [r0] ldr r0, _08040518 ands r0, r1 cmp r2, r0 beq _080404C4 ldr r1, [sp, 0x14] ldr r2, _08040510 adds r6, r1, r2 ldr r0, _08040518 mov r8, r0 ldr r3, [sp, 0x8] adds r5, r7, 0 _080404AC: adds r3, 0x2 adds r4, 0x1 cmp r4, r10 bge _080404C4 ldr r0, [r6] adds r0, r5, r0 ldrh r1, [r0] ldrh r2, [r3] mov r0, r8 ands r0, r1 cmp r2, r0 bne _080404AC _080404C4: cmp r4, r10 bne _080404E6 mov r0, r10 adds r0, 0x1 lsls r0, 24 lsrs r0, 24 mov r10, r0 lsls r2, r4, 1 ldr r1, [sp, 0x8] adds r2, r1 mov r4, r9 ldr r0, [r4] adds r0, r7, r0 ldrh r1, [r0] ldr r0, _08040518 ands r0, r1 strh r0, [r2] _080404E6: mov r5, r12 cmp r5, 0x13 bgt _080404FC mov r1, r9 ldr r0, [r1] lsls r1, r5, 1 adds r1, r0 ldrh r0, [r1] ldr r2, _08040514 cmp r0, r2 bne _08040430 _080404FC: mov r0, r10 add sp, 0x18 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _08040510: .4byte gLevelUpLearnsetPointers _08040514: .4byte 0x0000ffff _08040518: .4byte 0x000001ff thumb_func_end sub_80403CC thumb_func_start sub_804051C sub_804051C: @ 804051C push {r4-r7,lr} adds r6, r1, 0 lsls r0, 16 movs r5, 0 movs r4, 0 ldr r1, _08040568 lsrs r0, 14 adds r0, r1 ldr r2, [r0] ldrh r0, [r2] ldr r1, _0804056C cmp r0, r1 beq _08040560 ldr r0, _08040570 mov r12, r0 adds r7, r1, 0 adds r3, r2, 0 _0804053E: adds r1, r5, 0 adds r0, r1, 0x1 lsls r0, 24 lsrs r5, r0, 24 lsls r1, 1 adds r1, r6 ldrh r2, [r3] mov r0, r12 ands r0, r2 strh r0, [r1] adds r3, 0x2 adds r4, 0x1 cmp r4, 0x13 bgt _08040560 ldrh r0, [r3] cmp r0, r7 bne _0804053E _08040560: adds r0, r5, 0 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _08040568: .4byte gLevelUpLearnsetPointers _0804056C: .4byte 0x0000ffff _08040570: .4byte 0x000001ff thumb_func_end sub_804051C thumb_func_start sub_8040574 sub_8040574: @ 8040574 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x3C adds r6, r0, 0 movs r0, 0 mov r10, r0 adds r0, r6, 0 movs r1, 0x41 movs r2, 0 bl PokemonGetField lsls r0, 16 lsrs r4, r0, 16 adds r0, r6, 0 movs r1, 0x38 movs r2, 0 bl PokemonGetField lsls r0, 24 lsrs r0, 24 str r0, [sp, 0x30] movs r0, 0xCE lsls r0, 1 cmp r4, r0 bne _080405B0 movs r0, 0 b _080406BA _080405B0: movs r5, 0 lsls r4, 2 str r4, [sp, 0x38] mov r4, sp _080405B8: adds r1, r5, 0 adds r1, 0xD adds r0, r6, 0 movs r2, 0 bl PokemonGetField strh r0, [r4] adds r4, 0x2 adds r5, 0x1 cmp r5, 0x3 ble _080405B8 movs r5, 0 ldr r3, _080406CC ldr r2, [sp, 0x38] adds r1, r2, r3 ldr r0, [r1] ldrh r0, [r0] ldr r2, _080406D0 cmp r0, r2 beq _080406B8 mov r9, r1 mov r4, sp adds r4, 0x8 str r4, [sp, 0x34] _080405E8: mov r1, r9 ldr r0, [r1] lsls r2, r5, 1 adds r0, r2, r0 ldrh r3, [r0] movs r0, 0xFE lsls r0, 8 ands r0, r3 ldr r4, [sp, 0x30] lsls r1, r4, 9 adds r7, r2, 0 adds r5, 0x1 mov r12, r5 cmp r0, r1 bgt _080406A2 movs r4, 0 mov r0, sp ldrh r1, [r0] ldr r0, _080406D4 ands r0, r3 cmp r1, r0 beq _0804063A ldr r0, [sp, 0x38] ldr r1, _080406CC adds r6, r0, r1 ldr r2, _080406D4 mov r8, r2 mov r3, sp adds r5, r7, 0 _08040622: adds r3, 0x2 adds r4, 0x1 cmp r4, 0x3 bgt _0804063A ldr r0, [r6] adds r0, r5, r0 ldrh r1, [r0] ldrh r2, [r3] mov r0, r8 ands r0, r1 cmp r2, r0 bne _08040622 _0804063A: cmp r4, 0x4 bne _080406A2 movs r4, 0 cmp r4, r10 bge _08040680 mov r1, r9 ldr r0, [r1] adds r0, r7, r0 ldrh r1, [r0] ldr r0, [sp, 0x34] ldrh r2, [r0] ldr r0, _080406D4 ands r0, r1 add r1, sp, 0x8 cmp r2, r0 beq _08040680 ldr r2, [sp, 0x38] ldr r0, _080406CC adds r6, r2, r0 ldr r2, _080406D4 mov r8, r2 adds r3, r1, 0 adds r5, r7, 0 _08040668: adds r3, 0x2 adds r4, 0x1 cmp r4, r10 bge _08040680 ldr r0, [r6] adds r0, r5, r0 ldrh r1, [r0] ldrh r2, [r3] mov r0, r8 ands r0, r1 cmp r2, r0 bne _08040668 _08040680: cmp r4, r10 bne _080406A2 mov r0, r10 adds r0, 0x1 lsls r0, 24 lsrs r0, 24 mov r10, r0 lsls r2, r4, 1 ldr r4, [sp, 0x34] adds r2, r4, r2 mov r1, r9 ldr r0, [r1] adds r0, r7, r0 ldrh r1, [r0] ldr r0, _080406D4 ands r0, r1 strh r0, [r2] _080406A2: mov r5, r12 cmp r5, 0x13 bgt _080406B8 mov r2, r9 ldr r0, [r2] lsls r1, r5, 1 adds r1, r0 ldrh r0, [r1] ldr r4, _080406D0 cmp r0, r4 bne _080405E8 _080406B8: mov r0, r10 _080406BA: add sp, 0x3C pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _080406CC: .4byte gLevelUpLearnsetPointers _080406D0: .4byte 0x0000ffff _080406D4: .4byte 0x000001ff thumb_func_end sub_8040574 thumb_func_start sub_80406D8 sub_80406D8: @ 80406D8 push {r4,lr} lsls r0, 16 lsrs r4, r0, 16 bl sub_806912C cmp r0, 0 beq _080406F2 adds r0, r4, 0 bl SpeciesToNationalPokedexNum lsls r0, 16 lsrs r0, 16 b _0804070A _080406F2: adds r0, r4, 0 bl SpeciesToHoennPokedexNum adds r4, r0, 0 cmp r4, 0xCA bls _08040708 ldr r0, _08040704 b _0804070A .align 2, 0 _08040704: .4byte 0x0000ffff _08040708: adds r0, r4, 0 _0804070A: pop {r4} pop {r1} bx r1 thumb_func_end sub_80406D8 thumb_func_start sub_8040710 sub_8040710: @ 8040710 push {lr} ldr r1, _08040724 movs r2, 0 adds r0, r1, 0x3 _08040718: strb r2, [r0] subs r0, 0x1 cmp r0, r1 bge _08040718 pop {r0} bx r0 .align 2, 0 _08040724: .4byte 0x02024e84 thumb_func_end sub_8040710 thumb_func_start sub_8040728 sub_8040728: @ 8040728 push {lr} ldr r0, _0804073C ldrh r1, [r0] movs r0, 0x80 lsls r0, 5 ands r0, r1 cmp r0, 0 beq _08040744 ldr r0, _08040740 b _080408B2 .align 2, 0 _0804073C: .4byte 0x020239f8 _08040740: .4byte 0x000001cf _08040744: movs r0, 0x80 lsls r0, 7 ands r0, r1 cmp r0, 0 beq _08040754 movs r0, 0xE7 lsls r0, 1 b _080408B2 _08040754: movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _0804075E b _080408A8 _0804075E: movs r0, 0x8 ands r0, r1 cmp r0, 0 bne _08040768 b _080408B0 _08040768: ldr r3, _0804078C ldr r2, _08040790 ldrh r1, [r2] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r3 ldrb r0, [r0, 0x1] subs r0, 0x2 cmp r0, 0x31 bls _08040780 b _080408A8 _08040780: lsls r0, 2 ldr r1, _08040794 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0804078C: .4byte gTrainers _08040790: .4byte 0x0202ff5e _08040794: .4byte _08040798 .align 2, 0 _08040798: .4byte _08040860 .4byte _08040866 .4byte _08040866 .4byte _080408A8 .4byte _080408A8 .4byte _080408A8 .4byte _080408A8 .4byte _080408A8 .4byte _080408A8 .4byte _080408A8 .4byte _080408A8 .4byte _080408A8 .4byte _080408A8 .4byte _080408A8 .4byte _080408A8 .4byte _080408A8 .4byte _080408A8 .4byte _080408A8 .4byte _080408A8 .4byte _080408A8 .4byte _080408A8 .4byte _080408A8 .4byte _080408A0 .4byte _0804086C .4byte _080408A8 .4byte _080408A8 .4byte _080408A8 .4byte _080408A8 .4byte _080408A8 .4byte _080408A8 .4byte _08040872 .4byte _080408A8 .4byte _080408A8 .4byte _080408A8 .4byte _080408A8 .4byte _080408A8 .4byte _080408A8 .4byte _080408A8 .4byte _080408A8 .4byte _080408A8 .4byte _080408A8 .4byte _080408A8 .4byte _080408A8 .4byte _080408A8 .4byte _0804087C .4byte _080408A8 .4byte _080408A8 .4byte _08040860 .4byte _08040866 .4byte _08040866 _08040860: movs r0, 0xE9 lsls r0, 1 b _080408B2 _08040866: movs r0, 0xE5 lsls r0, 1 b _080408B2 _0804086C: movs r0, 0xE6 lsls r0, 1 b _080408B2 _08040872: ldr r0, _08040878 b _080408B2 .align 2, 0 _08040878: .4byte 0x000001cd _0804087C: ldrh r1, [r2] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 ldr r1, _08040898 adds r0, r1 ldr r1, _0804089C bl StringCompare cmp r0, 0 beq _080408A8 movs r0, 0xE8 lsls r0, 1 b _080408B2 .align 2, 0 _08040898: .4byte gTrainers + 0x4 _0804089C: .4byte gUnknown_08400E42 _080408A0: ldr r0, _080408A4 b _080408B2 .align 2, 0 _080408A4: .4byte 0x000001d1 _080408A8: ldr r0, _080408AC b _080408B2 .align 2, 0 _080408AC: .4byte 0x000001cb _080408B0: ldr r0, _080408B8 _080408B2: pop {r1} bx r1 .align 2, 0 _080408B8: .4byte 0x000001c9 thumb_func_end sub_8040728 thumb_func_start sub_80408BC sub_80408BC: @ 80408BC push {lr} bl map_music_set_to_zero bl m4aMPlayAllStop bl sub_8040728 lsls r0, 16 lsrs r0, 16 bl sub_8075474 pop {r0} bx r0 thumb_func_end sub_80408BC thumb_func_start current_map_music_set__default_for_battle current_map_music_set__default_for_battle: @ 80408D8 push {r4,lr} lsls r0, 16 lsrs r4, r0, 16 bl map_music_set_to_zero bl m4aMPlayAllStop cmp r4, 0 beq _080408F2 adds r0, r4, 0 bl current_map_music_set b _080408FE _080408F2: bl sub_8040728 lsls r0, 16 lsrs r0, 16 bl current_map_music_set _080408FE: pop {r4} pop {r0} bx r0 thumb_func_end current_map_music_set__default_for_battle thumb_func_start pokemon_get_pal pokemon_get_pal: @ 8040904 push {r4-r6,lr} adds r5, r0, 0 movs r1, 0x41 movs r2, 0 bl PokemonGetField adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 adds r0, r5, 0 movs r1, 0x1 movs r2, 0 bl PokemonGetField adds r6, r0, 0 adds r0, r5, 0 movs r1, 0 movs r2, 0 bl PokemonGetField adds r2, r0, 0 adds r0, r4, 0 adds r1, r6, 0 bl species_and_otid_get_pal pop {r4-r6} pop {r1} bx r1 thumb_func_end pokemon_get_pal thumb_func_start species_and_otid_get_pal species_and_otid_get_pal: @ 804093C push {r4,r5,lr} adds r3, r2, 0 lsls r0, 16 lsrs r4, r0, 16 adds r5, r4, 0 movs r0, 0xCE lsls r0, 1 cmp r4, r0 bls _08040958 ldr r0, _08040954 ldr r0, [r0] b _08040984 .align 2, 0 _08040954: .4byte gMonPaletteTable _08040958: lsrs r0, r1, 16 ldr r2, _08040974 ands r1, r2 eors r0, r1 lsrs r1, r3, 16 eors r0, r1 ands r3, r2 eors r0, r3 cmp r0, 0x7 bls _0804097C ldr r0, _08040978 lsls r1, r4, 3 b _08040980 .align 2, 0 _08040974: .4byte 0x0000ffff _08040978: .4byte gMonPaletteTable _0804097C: ldr r0, _0804098C lsls r1, r5, 3 _08040980: adds r1, r0 ldr r0, [r1] _08040984: pop {r4,r5} pop {r1} bx r1 .align 2, 0 _0804098C: .4byte gMonShinyPaletteTable thumb_func_end species_and_otid_get_pal thumb_func_start sub_8040990 sub_8040990: @ 8040990 push {r4-r6,lr} adds r5, r0, 0 movs r1, 0x41 movs r2, 0 bl PokemonGetField adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 adds r0, r5, 0 movs r1, 0x1 movs r2, 0 bl PokemonGetField adds r6, r0, 0 adds r0, r5, 0 movs r1, 0 movs r2, 0 bl PokemonGetField adds r2, r0, 0 adds r0, r4, 0 adds r1, r6, 0 bl sub_80409C8 pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_8040990 thumb_func_start sub_80409C8 sub_80409C8: @ 80409C8 push {r4,lr} lsls r0, 16 lsrs r4, r0, 16 lsrs r0, r1, 16 ldr r3, _080409E8 ands r1, r3 eors r0, r1 lsrs r1, r2, 16 eors r0, r1 ands r2, r3 eors r0, r2 cmp r0, 0x7 bls _080409F0 lsls r0, r4, 3 ldr r1, _080409EC b _080409F4 .align 2, 0 _080409E8: .4byte 0x0000ffff _080409EC: .4byte gMonPaletteTable _080409F0: lsls r0, r4, 3 ldr r1, _080409FC _080409F4: adds r0, r1 pop {r4} pop {r1} bx r1 .align 2, 0 _080409FC: .4byte gMonShinyPaletteTable thumb_func_end sub_80409C8 thumb_func_start sub_8040A00 sub_8040A00: @ 8040A00 push {r4,lr} lsls r0, 16 lsrs r3, r0, 16 ldr r2, _08040A24 ldrh r0, [r2] ldr r1, _08040A28 cmp r0, r1 beq _08040A32 adds r4, r1, 0 adds r1, r2, 0 _08040A14: ldrh r0, [r2] adds r1, 0x2 adds r2, 0x2 cmp r0, r3 bne _08040A2C movs r0, 0x1 b _08040A34 .align 2, 0 _08040A24: .4byte gUnknown_0820831A _08040A28: .4byte 0x0000ffff _08040A2C: ldrh r0, [r1] cmp r0, r4 bne _08040A14 _08040A32: movs r0, 0 _08040A34: pop {r4} pop {r1} bx r1 thumb_func_end sub_8040A00 thumb_func_start sub_8040A3C sub_8040A3C: @ 8040A3C lsls r0, 16 lsrs r0, 16 ldr r2, _08040A50 lsls r1, r0, 3 subs r1, r0 lsls r1, 2 adds r1, r2 ldrb r0, [r1, 0x19] lsrs r0, 7 bx lr .align 2, 0 _08040A50: .4byte gBaseStats thumb_func_end sub_8040A3C thumb_func_start sub_8040A54 sub_8040A54: @ 8040A54 push {r4,lr} lsls r4, r1, 24 lsrs r4, 24 bl GetNature lsls r0, 24 lsrs r0, 24 ldr r2, _08040A78 lsls r1, r0, 2 adds r1, r0 adds r1, r4 adds r1, r2 movs r0, 0 ldrsb r0, [r1, r0] pop {r4} pop {r1} bx r1 .align 2, 0 _08040A78: .4byte gUnknown_083F7E28 thumb_func_end sub_8040A54 thumb_func_start sub_8040A7C sub_8040A7C: @ 8040A7C push {r4,lr} lsls r4, r1, 24 lsrs r4, 24 bl GetNatureFromPersonality lsls r0, 24 lsrs r0, 24 ldr r2, _08040AA0 lsls r1, r0, 2 adds r1, r0 adds r1, r4 adds r1, r2 movs r0, 0 ldrsb r0, [r1, r0] pop {r4} pop {r1} bx r1 .align 2, 0 _08040AA0: .4byte gUnknown_083F7E28 thumb_func_end sub_8040A7C thumb_func_start sub_8040AA4 sub_8040AA4: @ 8040AA4 push {r4,lr} sub sp, 0x8 adds r4, r0, 0 movs r1, 0x7 mov r2, sp bl PokemonGetField adds r0, r4, 0 movs r1, 0x1 movs r2, 0 bl PokemonGetField mov r1, sp bl sub_8040AD0 lsls r0, 24 lsrs r0, 24 add sp, 0x8 pop {r4} pop {r1} bx r1 thumb_func_end sub_8040AA4 thumb_func_start sub_8040AD0 sub_8040AD0: @ 8040AD0 push {r4,r5,lr} adds r5, r1, 0 ldr r3, _08040B10 ldrb r2, [r3, 0xA] ldrb r1, [r3, 0xB] lsls r1, 8 orrs r2, r1 ldrb r1, [r3, 0xC] lsls r1, 16 orrs r2, r1 ldrb r1, [r3, 0xD] lsls r1, 24 orrs r2, r1 cmp r0, r2 bne _08040B14 movs r4, 0 ldrb r0, [r5] cmp r0, 0xFF beq _08040B0C adds r2, r5, 0 _08040AF8: adds r1, r4, r3 ldrb r0, [r2] ldrb r1, [r1] cmp r0, r1 bne _08040B14 adds r2, 0x1 adds r4, 0x1 ldrb r0, [r2] cmp r0, 0xFF bne _08040AF8 _08040B0C: movs r0, 0 b _08040B16 .align 2, 0 _08040B10: .4byte 0x02024ea4 _08040B14: movs r0, 0x1 _08040B16: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_8040AD0 thumb_func_start sub_8040B1C sub_8040B1C: @ 8040B1C push {lr} bl pokemon_restore_pp pop {r0} bx r0 thumb_func_end sub_8040B1C thumb_func_start pokemon_restore_pp pokemon_restore_pp: @ 8040B28 push {r4-r6,lr} sub sp, 0x4 adds r5, r0, 0 movs r6, 0 _08040B30: adds r4, r6, 0 adds r4, 0xD adds r0, r5, 0 adds r1, r4, 0 movs r2, 0 bl PokemonGetEncryptedField cmp r0, 0 beq _08040B7C adds r0, r5, 0 adds r1, r4, 0 movs r2, 0 bl PokemonGetEncryptedField adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 adds r0, r5, 0 movs r1, 0x15 movs r2, 0 bl PokemonGetEncryptedField adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 lsls r2, r6, 24 lsrs r2, 24 adds r0, r4, 0 bl CalcPPWithPPUps mov r1, sp strb r0, [r1] adds r1, r6, 0 adds r1, 0x11 adds r0, r5, 0 mov r2, sp bl PokemonSetEncryptedField _08040B7C: adds r6, 0x1 cmp r6, 0x3 ble _08040B30 add sp, 0x4 pop {r4-r6} pop {r0} bx r0 thumb_func_end pokemon_restore_pp thumb_func_start sub_8040B8C sub_8040B8C: @ 8040B8C push {r4,r5,lr} ldr r1, _08040BCC ldr r2, _08040BD0 ldr r3, _08040BD4 adds r0, r2, r3 ldrb r0, [r0] strb r0, [r1] ldr r5, _08040BD8 movs r0, 0xFD strb r0, [r5] movs r0, 0x4 strb r0, [r5, 0x1] ldr r0, _08040BDC adds r4, r2, r0 ldrb r0, [r4] strb r0, [r5, 0x2] movs r0, 0xFF strb r0, [r5, 0x4] ldrb r0, [r4] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 bne _08040BE4 ldr r1, _08040BE0 ldrb r0, [r4] lsls r0, 1 adds r0, r1 ldrb r0, [r0] bl pokemon_order_func b _08040BEE .align 2, 0 _08040BCC: .4byte 0x02024c06 _08040BD0: .4byte 0x02000000 _08040BD4: .4byte 0x000160c0 _08040BD8: .4byte 0x030041c0 _08040BDC: .4byte 0x00016054 _08040BE0: .4byte 0x02024a6a _08040BE4: ldr r0, _08040C24 ldrb r1, [r4] lsls r1, 1 adds r1, r0 ldrh r0, [r1] _08040BEE: strb r0, [r5, 0x3] ldr r4, _08040C28 movs r0, 0xFD strb r0, [r4] movs r0, 0x4 strb r0, [r4, 0x1] ldr r1, _08040C2C ldrb r0, [r1] strb r0, [r4, 0x2] ldr r2, _08040C24 ldrb r0, [r1] lsls r0, 1 adds r0, r2 ldrb r0, [r0] bl pokemon_order_func strb r0, [r4, 0x3] movs r0, 0xFF strb r0, [r4, 0x4] ldr r0, _08040C30 ldr r1, _08040C34 bl sub_8120FFC pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08040C24: .4byte 0x02024a6a _08040C28: .4byte 0x03004290 _08040C2C: .4byte 0x02024e6c _08040C30: .4byte gUnknown_083FFCCA _08040C34: .4byte 0x020234cc thumb_func_end sub_8040B8C thumb_func_start sub_8040C38 sub_8040C38: @ 8040C38 push {r4,r5,lr} ldr r0, _08040C90 ldrh r1, [r0] ldr r0, _08040C94 ands r0, r1 cmp r0, 0 bne _08040CAC bl Random lsls r0, 16 lsrs r0, 16 movs r1, 0x64 bl __umodsi3 lsls r0, 16 lsrs r5, r0, 16 ldr r4, _08040C98 adds r0, r4, 0 movs r1, 0xB movs r2, 0 bl PokemonGetField lsls r0, 16 lsrs r0, 16 ldr r2, _08040C9C lsls r1, r0, 3 subs r1, r0 lsls r3, r1, 2 adds r1, r3, r2 ldrh r0, [r1, 0xC] ldrh r1, [r1, 0xE] cmp r0, r1 beq _08040C82 cmp r5, 0x2C bls _08040CAC cmp r5, 0x5E bhi _08040CA0 _08040C82: adds r2, 0xC adds r2, r3, r2 adds r0, r4, 0 movs r1, 0xC bl pokemon_setattr b _08040CAC .align 2, 0 _08040C90: .4byte 0x020239f8 _08040C94: .4byte 0x00002008 _08040C98: .4byte 0x030045c0 _08040C9C: .4byte gBaseStats _08040CA0: adds r2, 0xE adds r2, r3, r2 adds r0, r4, 0 movs r1, 0xC bl pokemon_setattr _08040CAC: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_8040C38 thumb_func_start sub_8040CB4 sub_8040CB4: @ 8040CB4 push {r4,r5,lr} adds r4, r0, 0 movs r1, 0x1 movs r2, 0 bl PokemonGetField adds r5, r0, 0 adds r0, r4, 0 movs r1, 0 movs r2, 0 bl PokemonGetField adds r1, r0, 0 adds r0, r5, 0 bl sub_8040CE0 lsls r0, 24 lsrs r0, 24 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_8040CB4 thumb_func_start sub_8040CE0 sub_8040CE0: @ 8040CE0 push {r4,lr} movs r4, 0 lsrs r2, r0, 16 ldr r3, _08040D04 ands r0, r3 eors r2, r0 lsrs r0, r1, 16 eors r2, r0 ands r1, r3 eors r2, r1 cmp r2, 0x7 bhi _08040CFA movs r4, 0x1 _08040CFA: adds r0, r4, 0 pop {r4} pop {r1} bx r1 .align 2, 0 _08040D04: .4byte 0x0000ffff thumb_func_end sub_8040CE0 thumb_func_start sub_8040D08 sub_8040D08: @ 8040D08 push {r4,lr} bl GetMultiplayerId lsls r0, 24 lsrs r0, 24 ldr r4, _08040D38 lsls r1, r0, 3 subs r1, r0 lsls r1, 2 adds r1, r4 ldrh r1, [r1, 0x18] movs r0, 0x2 eors r0, r1 bl sub_803FC34 adds r1, r0, 0 lsls r0, r1, 3 subs r0, r1 lsls r0, 2 adds r4, 0x8 adds r0, r4 pop {r4} pop {r1} bx r1 .align 2, 0 _08040D38: .4byte 0x03002970 thumb_func_end sub_8040D08 thumb_func_start sub_8040D3C sub_8040D3C: @ 8040D3C push {r4,lr} adds r4, r1, 0 lsls r0, 16 lsrs r1, r0, 16 adds r0, r1, 0 lsls r2, 24 lsrs r2, 24 movs r3, 0 cmp r1, 0x20 beq _08040D54 cmp r1, 0x1D bne _08040D7E _08040D54: cmp r2, 0x2 bne _08040D68 movs r0, 0xB muls r1, r0 ldr r0, _08040D64 adds r1, r0 b _08040D70 .align 2, 0 _08040D64: .4byte gSpeciesNames _08040D68: ldr r1, _08040D88 cmp r0, 0x20 bne _08040D70 subs r1, 0xB _08040D70: adds r0, r4, 0 bl StringCompareWithoutExtCtrlCodes movs r3, 0 cmp r0, 0 bne _08040D7E movs r3, 0x1 _08040D7E: adds r0, r3, 0 pop {r4} pop {r1} bx r1 .align 2, 0 _08040D88: .4byte gUnknown_08208337 thumb_func_end sub_8040D3C thumb_func_start sub_8040D8C sub_8040D8C: @ 8040D8C push {lr} lsls r0, 16 lsrs r3, r0, 16 movs r2, 0x2 ldrb r0, [r1] cmp r0, 0xFC bne _08040DA2 ldrb r0, [r1, 0x1] cmp r0, 0x15 bne _08040DA2 movs r2, 0x1 _08040DA2: adds r0, r3, 0 bl sub_8040D3C pop {r1} bx r1 thumb_func_end sub_8040D8C thumb_func_start unref_sub_8040DAC unref_sub_8040DAC: @ 8040DAC push {r4-r6,lr} sub sp, 0xC adds r6, r0, 0 movs r1, 0xB movs r2, 0 bl PokemonGetField adds r5, r0, 0 lsls r5, 16 lsrs r5, 16 adds r0, r6, 0 movs r1, 0x3 movs r2, 0 bl PokemonGetField adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 adds r0, r6, 0 movs r1, 0x2 mov r2, sp bl PokemonGetField adds r0, r5, 0 mov r1, sp adds r2, r4, 0 bl sub_8040D3C add sp, 0xC pop {r4-r6} pop {r1} bx r1 thumb_func_end unref_sub_8040DAC thumb_func_start sine sine: @ 8040DEC lsls r1, 16 asrs r1, 16 ldr r2, _08040E04 lsls r0, 16 asrs r0, 15 adds r0, r2 movs r2, 0 ldrsh r0, [r0, r2] muls r0, r1 lsls r0, 8 asrs r0, 16 bx lr .align 2, 0 _08040E04: .4byte gUnknown_08208344 thumb_func_end sine thumb_func_start cosine cosine: @ 8040E08 lsls r1, 16 asrs r1, 16 ldr r2, _08040E24 lsls r0, 16 asrs r0, 15 adds r0, 0x80 adds r0, r2 movs r2, 0 ldrsh r0, [r0, r2] muls r0, r1 lsls r0, 8 asrs r0, 16 bx lr .align 2, 0 _08040E24: .4byte gUnknown_08208344 thumb_func_end cosine thumb_func_start sine2 sine2: @ 8040E28 push {r4,r5,lr} adds r5, r0, 0 lsls r5, 16 lsrs r5, 16 adds r0, r5, 0 movs r1, 0xB4 bl __umodsi3 adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 adds r0, r5, 0 movs r1, 0xB4 bl __udivsi3 movs r1, 0x1 ands r0, r1 ldr r1, _08040E5C lsls r4, 1 adds r4, r1 ldrh r1, [r4] cmp r0, 0 bne _08040E60 lsls r0, r1, 16 b _08040E64 .align 2, 0 _08040E5C: .4byte gUnknown_082085C4 _08040E60: lsls r0, r1, 16 negs r0, r0 _08040E64: asrs r0, 16 pop {r4,r5} pop {r1} bx r1 thumb_func_end sine2 thumb_func_start cosine2 cosine2: @ 8040E6C push {lr} lsls r0, 16 movs r1, 0xB4 lsls r1, 15 adds r0, r1 lsrs r0, 16 bl sine2 lsls r0, 16 asrs r0, 16 pop {r1} bx r1 thumb_func_end cosine2