.include "asm/macros.inc" .include "constants/constants.inc" .syntax unified .text thumb_func_start sub_8034C54 sub_8034C54: @ 8034C54 push {r4-r7,lr} adds r4, r0, 0 ldr r5, =gUnknown_02022E10 ldr r0, [r5] cmp r0, 0 beq _08034C64 bl sub_8034CC8 _08034C64: movs r0, 0x8 bl Alloc str r0, [r5] cmp r0, 0 bne _08034C78 movs r0, 0 b _08034CC0 .pool _08034C78: lsls r0, r4, 3 subs r0, r4 lsls r0, 2 bl Alloc ldr r1, [r5] str r0, [r1, 0x4] cmp r0, 0 bne _08034C94 adds r0, r1, 0 bl Free movs r0, 0 b _08034CC0 _08034C94: str r4, [r1] movs r3, 0 cmp r3, r4 bcs _08034CBE movs r7, 0 movs r6, 0xFF movs r2, 0 _08034CA2: ldr r0, [r5] ldr r0, [r0, 0x4] adds r0, r2, r0 strb r7, [r0] ldr r0, [r5] ldr r1, [r0, 0x4] adds r1, r2, r1 ldrb r0, [r1, 0x1] orrs r0, r6 strb r0, [r1, 0x1] adds r2, 0x1C adds r3, 0x1 cmp r3, r4 bcc _08034CA2 _08034CBE: movs r0, 0x1 _08034CC0: pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_8034C54 thumb_func_start sub_8034CC8 sub_8034CC8: @ 8034CC8 push {r4,r5,lr} ldr r2, =gUnknown_02022E10 ldr r1, [r2] cmp r1, 0 beq _08034D08 ldr r0, [r1, 0x4] cmp r0, 0 beq _08034CFC movs r4, 0 ldr r0, [r1] cmp r4, r0 bcs _08034CF2 adds r5, r2, 0 _08034CE2: adds r0, r4, 0 bl sub_80353DC adds r4, 0x1 ldr r0, [r5] ldr r0, [r0] cmp r4, r0 bcc _08034CE2 _08034CF2: ldr r0, =gUnknown_02022E10 ldr r0, [r0] ldr r0, [r0, 0x4] bl Free _08034CFC: ldr r4, =gUnknown_02022E10 ldr r0, [r4] bl Free movs r0, 0 str r0, [r4] _08034D08: pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_8034CC8 thumb_func_start sub_8034D14 sub_8034D14: @ 8034D14 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x8 mov r8, r0 mov r10, r1 adds r5, r2, 0 ldr r6, =gUnknown_02022E10 ldr r0, [r6] cmp r0, 0 beq _08034DD4 ldr r1, [r0, 0x4] mov r0, r8 lsls r2, r0, 3 subs r0, r2, r0 lsls r4, r0, 2 adds r1, r4, r1 ldrb r0, [r1] mov r9, r2 cmp r0, 0 bne _08034DD4 ldrb r0, [r5, 0x1] bl sub_8035518 ldr r1, [r6] ldr r1, [r1, 0x4] adds r1, r4, r1 strb r0, [r1, 0x1] ldr r0, [r6] ldr r0, [r0, 0x4] adds r0, r4, r0 ldrb r0, [r0, 0x1] cmp r0, 0xFF beq _08034DD4 ldr r0, [r5, 0x8] ldrh r0, [r0, 0x6] bl GetObjectTileRangeStartByTag ldr r2, [r6] ldr r1, [r2, 0x4] adds r1, r4, r1 strh r0, [r1, 0xA] ldr r0, [r2, 0x4] adds r0, r4, r0 ldrh r1, [r0, 0xA] ldr r7, =0xffff0000 lsrs r0, r7, 16 cmp r1, r0 bne _08034DE0 ldr r2, [r5, 0x8] ldrh r0, [r2, 0x4] adds r1, r2, 0 cmp r0, 0 beq _08034D94 adds r0, r1, 0 bl LoadObjectPic b _08034DB4 .pool _08034D94: ldr r0, [r2] ldr r1, [r2, 0x4] str r0, [sp] str r1, [sp, 0x4] ldr r0, [r2] bl sub_8034974 lsls r0, 16 lsrs r0, 16 ldr r1, [sp, 0x4] ands r1, r7 orrs r1, r0 str r1, [sp, 0x4] mov r0, sp bl LoadCompressedObjectPic _08034DB4: ldr r1, [r6] ldr r1, [r1, 0x4] adds r1, r4, r1 strh r0, [r1, 0xA] ldr r0, =gUnknown_02022E10 ldr r0, [r0] ldr r1, [r0, 0x4] mov r2, r9 mov r3, r8 subs r0, r2, r3 lsls r0, 2 adds r0, r1 ldrh r1, [r0, 0xA] ldr r0, =0x0000ffff cmp r1, r0 bne _08034DE0 _08034DD4: movs r0, 0 b _08034EE8 .pool _08034DE0: ldr r0, [r5, 0xC] ldrh r0, [r0, 0x4] bl IndexOfObjectPaletteTag ldr r6, =gUnknown_02022E10 ldr r1, [r6] ldr r1, [r1, 0x4] mov r4, r9 mov r3, r8 subs r2, r4, r3 lsls r4, r2, 2 adds r1, r4, r1 strb r0, [r1, 0x4] ldr r0, [r6] ldr r0, [r0, 0x4] adds r0, r4, r0 ldrb r0, [r0, 0x4] cmp r0, 0xFF bne _08034E14 ldr r0, [r5, 0xC] bl LoadTaggedObjectPalette ldr r1, [r6] ldr r1, [r1, 0x4] adds r1, r4, r1 strb r0, [r1, 0x4] _08034E14: ldr r0, [r6] ldr r1, [r0, 0x4] adds r1, r4, r1 ldrb r0, [r5] lsls r0, 30 lsrs r0, 30 strb r0, [r1, 0x2] ldr r0, [r6] ldr r0, [r0, 0x4] adds r0, r4, r0 ldrb r1, [r5, 0x1] strb r1, [r0, 0x3] ldr r2, [r6] ldr r0, [r2, 0x4] adds r0, r4, r0 ldrh r1, [r5, 0x4] strh r1, [r0, 0xC] ldr r0, [r2, 0x4] adds r0, r4, r0 ldrh r1, [r5, 0x6] strh r1, [r0, 0xE] ldr r1, [r2, 0x4] adds r1, r4, r1 ldrb r0, [r5] lsls r0, 28 lsrs r0, 30 strb r0, [r1, 0x6] ldr r0, [r6] ldr r1, [r0, 0x4] adds r1, r4, r1 ldrb r0, [r5] lsls r0, 26 lsrs r0, 30 strb r0, [r1, 0x5] ldr r0, [r6] ldr r1, [r0, 0x4] adds r1, r4, r1 ldrb r0, [r5] lsrs r0, 6 strb r0, [r1, 0x7] ldr r0, [r6] ldr r0, [r0, 0x4] adds r0, r4, r0 ldrb r1, [r5, 0x2] strb r1, [r0, 0x8] ldrb r1, [r5] lsls r0, r1, 28 lsrs r0, 30 lsls r1, 26 lsrs r1, 30 bl sub_80355F8 ldr r1, [r6] ldr r1, [r1, 0x4] adds r1, r4, r1 strb r0, [r1, 0x9] ldr r2, [r6] ldr r0, [r2, 0x4] adds r0, r4, r0 ldr r1, [r5, 0x8] ldrh r1, [r1, 0x6] strh r1, [r0, 0x10] ldr r0, [r2, 0x4] adds r0, r4, r0 ldr r1, [r5, 0xC] ldrh r1, [r1, 0x4] strh r1, [r0, 0x12] ldr r0, [r2, 0x4] adds r0, r4, r0 movs r1, 0x1 strb r1, [r0] ldr r0, [r6] ldr r0, [r0, 0x4] adds r0, r4, r0 str r1, [r0, 0x14] movs r3, 0x1 ldrb r0, [r5, 0x1] cmp r3, r0 bcs _08034ECA _08034EB2: ldr r0, [r6] ldr r2, [r0, 0x4] adds r2, r4, r2 ldr r1, [r2, 0x14] lsls r0, r1, 2 adds r0, r1 lsls r0, 1 str r0, [r2, 0x14] adds r3, 0x1 ldrb r2, [r5, 0x1] cmp r3, r2 bcc _08034EB2 _08034ECA: ldr r0, =gUnknown_02022E10 ldr r0, [r0] mov r3, r9 mov r4, r8 subs r1, r3, r4 lsls r1, 2 ldr r0, [r0, 0x4] adds r0, r1 bl sub_8034EFC mov r0, r8 mov r1, r10 bl sub_8035044 movs r0, 0x1 _08034EE8: add sp, 0x8 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 .pool thumb_func_end sub_8034D14 thumb_func_start sub_8034EFC sub_8034EFC: @ 8034EFC push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x4 adds r4, r0, 0 ldrb r5, [r4, 0x1] movs r0, 0xC ldrsh r7, [r4, r0] ldrb r0, [r4, 0x3] adds r0, 0x1 mov r8, r0 mov r1, sp movs r0, 0 strh r0, [r1] lsls r1, r5, 3 ldr r2, =gUnknown_030022F8 mov r9, r2 add r1, r9 mov r0, r8 lsls r2, r0, 2 movs r0, 0x80 lsls r0, 17 orrs r2, r0 mov r0, sp bl CpuSet movs r6, 0 ldrb r5, [r4, 0x1] cmp r6, r8 bcs _08034FCE movs r1, 0x3F mov r10, r1 movs r2, 0xD negs r2, r2 mov r9, r2 _08034F46: lsls r0, r5, 3 ldr r1, =gMain adds r3, r0, r1 ldrh r1, [r4, 0xE] adds r0, r3, 0 adds r0, 0x38 strb r1, [r0] ldr r2, =0x000001ff adds r0, r2, 0 adds r1, r7, 0 ands r1, r0 ldrh r2, [r3, 0x3A] ldr r0, =0xfffffe00 ands r0, r2 orrs r0, r1 strh r0, [r3, 0x3A] ldrb r1, [r4, 0x6] movs r0, 0x39 adds r0, r3 mov r12, r0 lsls r1, 6 ldrb r2, [r0] mov r0, r10 ands r0, r2 orrs r0, r1 mov r1, r12 strb r0, [r1] ldrb r1, [r4, 0x5] movs r2, 0x3B adds r2, r3 mov r12, r2 lsls r1, 6 ldrb r2, [r2] mov r0, r10 ands r0, r2 orrs r0, r1 mov r1, r12 strb r0, [r1] ldrh r0, [r4, 0xA] ldr r1, =0x000003ff ands r1, r0 ldrh r2, [r3, 0x3C] ldr r0, =0xfffffc00 ands r0, r2 orrs r0, r1 strh r0, [r3, 0x3C] adds r3, 0x3D movs r0, 0x3 ldrb r1, [r4, 0x7] ands r1, r0 lsls r1, 2 ldrb r2, [r3] mov r0, r9 ands r0, r2 orrs r0, r1 strb r0, [r3] ldrb r2, [r4, 0x4] lsls r2, 4 movs r1, 0xF ands r0, r1 orrs r0, r2 strb r0, [r3] ldrb r0, [r4, 0x8] adds r7, r0 adds r6, 0x1 adds r5, 0x1 cmp r6, r8 bcc _08034F46 _08034FCE: subs r5, 0x1 ldr r0, =gMain lsls r3, r5, 3 adds r3, r0 movs r2, 0xC ldrsh r1, [r4, r2] ldrb r0, [r4, 0x8] subs r1, r0 ldr r2, =0x000001ff adds r0, r2, 0 ands r1, r0 ldrh r2, [r3, 0x3A] ldr r0, =0xfffffe00 ands r0, r2 orrs r0, r1 strh r0, [r3, 0x3A] adds r2, r3, 0 adds r2, 0x39 ldrb r1, [r2] movs r0, 0x4 negs r0, r0 ands r0, r1 movs r1, 0x2 orrs r0, r1 strb r0, [r2] ldrb r0, [r4, 0x9] lsls r1, r0, 2 adds r1, r0 lsls r1, 1 ldrh r4, [r4, 0xA] adds r1, r4 ldr r2, =0x000003ff adds r0, r2, 0 ands r1, r0 ldrh r2, [r3, 0x3C] ldr r0, =0xfffffc00 ands r0, r2 orrs r0, r1 strh r0, [r3, 0x3C] add sp, 0x4 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_8034EFC thumb_func_start sub_8035044 sub_8035044: @ 8035044 push {r4-r6,lr} adds r3, r0, 0 adds r4, r1, 0 ldr r0, =gUnknown_02022E10 ldr r1, [r0] adds r6, r0, 0 cmp r1, 0 beq _080350A8 ldr r2, [r1, 0x4] lsls r1, r3, 3 subs r0, r1, r3 lsls r0, 2 adds r2, r0, r2 ldrb r0, [r2] adds r5, r1, 0 cmp r0, 0 beq _080350A8 str r4, [r2, 0x18] cmp r4, 0 bge _08035078 movs r2, 0x1 negs r4, r4 b _0803507A .pool _08035078: movs r2, 0 _0803507A: ldr r0, [r6] ldr r1, [r0, 0x4] subs r0, r5, r3 lsls r0, 2 adds r0, r1 ldrb r3, [r0, 0x2] cmp r3, 0x1 beq _0803509A cmp r3, 0x1 ble _08035092 cmp r3, 0x2 beq _080350A2 _08035092: adds r1, r4, 0 bl sub_80350B0 b _080350A8 _0803509A: adds r1, r4, 0 bl sub_8035164 b _080350A8 _080350A2: adds r1, r4, 0 bl sub_80352C0 _080350A8: pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_8035044 thumb_func_start sub_80350B0 sub_80350B0: @ 80350B0 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x4 mov r8, r0 mov r9, r1 str r2, [sp] ldr r5, [r0, 0x14] ldrb r7, [r0, 0x1] ldr r0, =gMain mov r10, r0 cmp r5, 0 beq _0803511A lsls r0, r7, 3 adds r0, 0x3C mov r1, r10 adds r6, r0, r1 _080350D6: mov r0, r9 adds r1, r5, 0 bl __udivsi3 adds r4, r0, 0 adds r0, r4, 0 muls r0, r5 mov r2, r9 subs r2, r0 mov r9, r2 adds r0, r5, 0 movs r1, 0xA bl __udivsi3 adds r5, r0, 0 mov r1, r8 ldrb r0, [r1, 0x9] adds r1, r4, 0 muls r1, r0 mov r2, r8 ldrh r2, [r2, 0xA] adds r1, r2 ldr r2, =0x000003ff adds r0, r2, 0 ands r1, r0 ldrh r0, [r6] ldr r2, =0xfffffc00 ands r0, r2 orrs r0, r1 strh r0, [r6] adds r6, 0x8 adds r7, 0x1 cmp r5, 0 bne _080350D6 _0803511A: ldr r0, [sp] cmp r0, 0 beq _08035140 lsls r0, r7, 3 add r0, r10 adds r0, 0x39 ldrb r2, [r0] movs r1, 0x4 negs r1, r1 ands r1, r2 strb r1, [r0] b _08035154 .pool _08035140: lsls r2, r7, 3 add r2, r10 adds r2, 0x39 ldrb r1, [r2] movs r0, 0x4 negs r0, r0 ands r0, r1 movs r1, 0x2 orrs r0, r1 strb r0, [r2] _08035154: 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_80350B0 thumb_func_start sub_8035164 sub_8035164: @ 8035164 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x4 adds r6, r0, 0 mov r8, r1 str r2, [sp] ldr r5, [r6, 0x14] ldr r3, =gUnknown_03000DD4 ldrb r0, [r6, 0x1] str r0, [r3] ldr r2, =gUnknown_03000DD8 movs r0, 0 str r0, [r2] ldr r1, =gUnknown_03000DDC subs r0, 0x1 str r0, [r1] adds r7, r3, 0 mov r10, r1 ldr r0, =gMain mov r9, r0 cmp r5, 0 beq _0803524C _08035196: mov r0, r8 adds r1, r5, 0 bl __udivsi3 adds r4, r0, 0 adds r0, r4, 0 muls r0, r5 mov r1, r8 subs r1, r0 mov r8, r1 adds r0, r5, 0 movs r1, 0xA bl __udivsi3 adds r5, r0, 0 cmp r4, 0 bne _080351C8 mov r2, r10 ldr r1, [r2] movs r0, 0x1 negs r0, r0 cmp r1, r0 bne _080351C8 cmp r5, 0 bne _08035224 _080351C8: ldr r2, [r7] lsls r2, 3 add r2, r9 ldrb r0, [r6, 0x9] adds r3, r4, 0 muls r3, r0 ldrh r4, [r6, 0xA] adds r3, r4 ldr r1, =0x000003ff adds r0, r1, 0 ands r3, r0 ldrh r0, [r2, 0x3C] ldr r4, =0xfffffc00 adds r1, r4, 0 ands r0, r1 orrs r0, r3 strh r0, [r2, 0x3C] adds r2, 0x39 ldrb r0, [r2] movs r1, 0x4 negs r1, r1 ands r0, r1 strb r0, [r2] mov r2, r10 ldr r1, [r2] movs r0, 0x1 negs r0, r0 cmp r1, r0 bne _0803523A ldr r4, =gUnknown_03000DD8 ldr r0, [r4] str r0, [r2] b _0803523A .pool _08035224: ldr r0, [r7] lsls r0, 3 add r0, r9 adds r0, 0x39 ldrb r1, [r0] movs r2, 0x4 negs r2, r2 ands r1, r2 movs r2, 0x2 orrs r1, r2 strb r1, [r0] _0803523A: ldr r0, [r7] adds r0, 0x1 str r0, [r7] ldr r4, =gUnknown_03000DD8 ldr r0, [r4] adds r0, 0x1 str r0, [r4] cmp r5, 0 bne _08035196 _0803524C: ldr r0, [sp] cmp r0, 0 beq _08035298 ldr r1, [r7] lsls r1, 3 add r1, r9 adds r1, 0x39 ldrb r2, [r1] movs r0, 0x4 negs r0, r0 ands r0, r2 strb r0, [r1] ldr r3, [r7] lsls r3, 3 add r3, r9 movs r1, 0xC ldrsh r2, [r6, r1] mov r4, r10 ldr r0, [r4] subs r0, 0x1 ldrb r1, [r6, 0x8] muls r0, r1 adds r2, r0 ldr r1, =0x000001ff adds r0, r1, 0 ands r2, r0 ldrh r1, [r3, 0x3A] ldr r0, =0xfffffe00 ands r0, r1 orrs r0, r2 strh r0, [r3, 0x3A] b _080352AE .pool _08035298: ldr r0, [r7] lsls r0, 3 add r0, r9 adds r0, 0x39 ldrb r2, [r0] movs r1, 0x4 negs r1, r1 ands r1, r2 movs r2, 0x2 orrs r1, r2 strb r1, [r0] _080352AE: 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_8035164 thumb_func_start sub_80352C0 sub_80352C0: @ 80352C0 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0xC mov r8, r0 mov r10, r1 str r2, [sp] ldr r5, [r0, 0x14] ldrb r3, [r0, 0x1] movs r0, 0 str r0, [sp, 0x4] mov r9, r0 cmp r5, 0 beq _0803535A _080352E0: lsls r0, r3, 3 adds r1, r0, 0 adds r1, 0x39 ldr r2, =gMain adds r7, r1, r2 adds r0, 0x3C adds r6, r0, r2 _080352EE: mov r0, r10 adds r1, r5, 0 str r3, [sp, 0x8] bl __udivsi3 adds r4, r0, 0 adds r0, r4, 0 muls r0, r5 mov r1, r10 subs r1, r0 mov r10, r1 adds r0, r5, 0 movs r1, 0xA bl __udivsi3 adds r5, r0, 0 ldr r3, [sp, 0x8] cmp r4, 0 bne _0803531E ldr r2, [sp, 0x4] cmp r2, 0 bne _0803531E cmp r5, 0 bne _080352E0 _0803531E: movs r0, 0x1 str r0, [sp, 0x4] mov r1, r8 ldrb r0, [r1, 0x9] adds r2, r4, 0 muls r2, r0 ldrh r4, [r1, 0xA] adds r2, r4 ldr r1, =0x000003ff adds r0, r1, 0 ands r2, r0 ldrh r0, [r6] ldr r4, =0xfffffc00 adds r1, r4, 0 ands r0, r1 orrs r0, r2 strh r0, [r6] ldrb r0, [r7] movs r2, 0x4 negs r2, r2 adds r1, r2, 0 ands r0, r1 strb r0, [r7] adds r7, 0x8 adds r6, 0x8 adds r3, 0x1 movs r4, 0x1 add r9, r4 cmp r5, 0 bne _080352EE _0803535A: mov r0, r8 ldrb r0, [r0, 0x3] cmp r9, r0 bge _0803538A ldr r1, =gMain movs r5, 0x4 negs r5, r5 movs r4, 0x2 lsls r0, r3, 3 adds r0, 0x39 adds r2, r0, r1 _08035370: ldrb r1, [r2] adds r0, r5, 0 ands r0, r1 orrs r0, r4 strb r0, [r2] adds r2, 0x8 adds r3, 0x1 movs r1, 0x1 add r9, r1 mov r0, r8 ldrb r0, [r0, 0x3] cmp r9, r0 blt _08035370 _0803538A: ldr r1, [sp] cmp r1, 0 beq _080353B0 lsls r0, r3, 3 ldr r2, =gMain adds r0, r2 adds r0, 0x39 ldrb r2, [r0] movs r1, 0x4 negs r1, r1 ands r1, r2 strb r1, [r0] b _080353C6 .pool _080353B0: lsls r2, r3, 3 ldr r4, =gMain adds r2, r4 adds r2, 0x39 ldrb r1, [r2] movs r0, 0x4 negs r0, r0 ands r0, r1 movs r1, 0x2 orrs r0, r1 strb r0, [r2] _080353C6: add sp, 0xC pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_80352C0 thumb_func_start sub_80353DC sub_80353DC: @ 80353DC push {r4-r7,lr} adds r4, r0, 0 ldr r0, =gUnknown_02022E10 ldr r0, [r0] cmp r0, 0 beq _0803546E ldr r2, [r0, 0x4] lsls r1, r4, 3 subs r0, r1, r4 lsls r0, 2 adds r2, r0, r2 ldrb r0, [r2] adds r5, r1, 0 cmp r0, 0 beq _0803546E ldrb r3, [r2, 0x3] adds r0, r3, 0x1 ldrb r2, [r2, 0x1] cmp r0, 0 beq _08035426 ldr r1, =gMain movs r7, 0x4 negs r7, r7 movs r6, 0x2 adds r3, r0, 0 lsls r0, r2, 3 adds r0, 0x39 adds r2, r0, r1 _08035414: ldrb r1, [r2] adds r0, r7, 0 ands r0, r1 orrs r0, r6 strb r0, [r2] subs r3, 0x1 adds r2, 0x8 cmp r3, 0 bne _08035414 _08035426: adds r0, r4, 0 bl sub_8035570 cmp r0, 0 bne _08035442 ldr r0, =gUnknown_02022E10 ldr r0, [r0] ldr r1, [r0, 0x4] subs r0, r5, r4 lsls r0, 2 adds r0, r1 ldrh r0, [r0, 0x10] bl FreeObjectTilesByTag _08035442: adds r0, r4, 0 bl sub_80355B4 cmp r0, 0 bne _0803545E ldr r0, =gUnknown_02022E10 ldr r0, [r0] ldr r1, [r0, 0x4] subs r0, r5, r4 lsls r0, 2 adds r0, r1 ldrh r0, [r0, 0x12] bl FreeObjectPaletteByTag _0803545E: ldr r0, =gUnknown_02022E10 ldr r0, [r0] ldr r1, [r0, 0x4] subs r0, r5, r4 lsls r0, 2 adds r0, r1 movs r1, 0 strb r1, [r0] _0803546E: pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_80353DC thumb_func_start sub_803547C sub_803547C: @ 803547C push {r4-r7,lr} adds r4, r0, 0 adds r5, r1, 0 ldr r0, =gUnknown_02022E10 ldr r1, [r0] adds r7, r0, 0 cmp r1, 0 beq _0803550C ldr r2, [r1, 0x4] lsls r1, r4, 3 subs r0, r1, r4 lsls r0, 2 adds r2, r0, r2 ldrb r0, [r2] adds r6, r1, 0 cmp r0, 0 beq _0803550C ldrb r3, [r2, 0x3] adds r1, r3, 0x1 ldrb r0, [r2, 0x1] cmp r5, 0 beq _080354D8 cmp r1, 0 beq _0803550C ldr r1, =gMain movs r5, 0x4 negs r5, r5 movs r4, 0x2 adds r3, 0x1 lsls r0, 3 adds r0, 0x39 adds r2, r0, r1 _080354BC: ldrb r1, [r2] adds r0, r5, 0 ands r0, r1 orrs r0, r4 strb r0, [r2] subs r3, 0x1 adds r2, 0x8 cmp r3, 0 bne _080354BC b _0803550C .pool _080354D8: cmp r1, 0 beq _080354FA ldr r1, =gMain movs r5, 0x4 negs r5, r5 adds r3, 0x1 lsls r0, 3 adds r0, 0x39 adds r2, r0, r1 _080354EA: ldrb r1, [r2] adds r0, r5, 0 ands r0, r1 strb r0, [r2] subs r3, 0x1 adds r2, 0x8 cmp r3, 0 bne _080354EA _080354FA: ldr r0, [r7] ldr r1, [r0, 0x4] subs r0, r6, r4 lsls r0, 2 adds r0, r1 ldr r1, [r0, 0x18] adds r0, r4, 0 bl sub_8035044 _0803550C: pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_803547C thumb_func_start sub_8035518 sub_8035518: @ 8035518 push {r4,r5,lr} lsls r0, 24 lsrs r4, r0, 24 movs r5, 0x40 movs r3, 0 ldr r0, =gUnknown_02022E10 ldr r0, [r0] ldr r2, [r0] cmp r3, r2 bcs _0803555A ldr r1, [r0, 0x4] _0803552E: ldrb r0, [r1] cmp r0, 0 bne _08035548 ldrb r0, [r1, 0x1] cmp r0, 0xFF beq _08035552 ldrb r0, [r1, 0x3] cmp r0, r4 bhi _08035552 ldrb r0, [r1, 0x1] b _0803556A .pool _08035548: adds r0, r5, 0x1 ldrb r5, [r1, 0x3] adds r0, r5 lsls r0, 16 lsrs r5, r0, 16 _08035552: adds r1, 0x1C adds r3, 0x1 cmp r3, r2 bcc _0803552E _0803555A: adds r0, r5, r4 adds r0, 0x1 cmp r0, 0x80 bgt _08035568 lsls r0, r5, 24 lsrs r0, 24 b _0803556A _08035568: movs r0, 0xFF _0803556A: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_8035518 thumb_func_start sub_8035570 sub_8035570: @ 8035570 push {r4-r6,lr} adds r3, r0, 0 movs r2, 0 ldr r0, =gUnknown_02022E10 ldr r0, [r0] ldr r4, [r0] cmp r2, r4 bcs _080355AC ldr r1, [r0, 0x4] lsls r0, r3, 3 subs r0, r3 lsls r0, 2 adds r5, r0, r1 _0803558A: ldrb r0, [r1] cmp r0, 0 beq _080355A4 cmp r2, r3 beq _080355A4 ldrh r0, [r1, 0x10] ldrh r6, [r5, 0x10] cmp r0, r6 bne _080355A4 movs r0, 0x1 b _080355AE .pool _080355A4: adds r1, 0x1C adds r2, 0x1 cmp r2, r4 bcc _0803558A _080355AC: movs r0, 0 _080355AE: pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_8035570 thumb_func_start sub_80355B4 sub_80355B4: @ 80355B4 push {r4-r6,lr} adds r3, r0, 0 movs r2, 0 ldr r0, =gUnknown_02022E10 ldr r0, [r0] ldr r4, [r0] cmp r2, r4 bcs _080355F0 ldr r1, [r0, 0x4] lsls r0, r3, 3 subs r0, r3 lsls r0, 2 adds r5, r0, r1 _080355CE: ldrb r0, [r1] cmp r0, 0 beq _080355E8 cmp r2, r3 beq _080355E8 ldrh r0, [r1, 0x12] ldrh r6, [r5, 0x12] cmp r0, r6 bne _080355E8 movs r0, 0x1 b _080355F2 .pool _080355E8: adds r1, 0x1C adds r2, 0x1 cmp r2, r4 bcc _080355CE _080355F0: movs r0, 0 _080355F2: pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_80355B4 thumb_func_start sub_80355F8 sub_80355F8: @ 80355F8 ldr r2, =gUnknown_082FF1C8 lsls r0, 2 adds r1, r0 adds r1, r2 ldrb r0, [r1] bx lr .pool thumb_func_end sub_80355F8 thumb_func_start sub_8035608 sub_8035608: @ 8035608 push {lr} bl ResetAllObjectData ldr r0, =gUnknown_0831AC88 movs r1, 0 movs r2, 0 movs r3, 0 bl AddObjectToFront lsls r0, 24 lsrs r0, 24 ldr r2, =gUnknown_02020630 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, =sub_8035648 bl SetMainCallback2 pop {r0} bx r0 .pool thumb_func_end sub_8035608 thumb_func_start sub_8035648 sub_8035648: @ 8035648 push {lr} bl CallObjectCallbacks bl PrepareSpritesForOamLoad pop {r0} bx r0 thumb_func_end sub_8035648 thumb_func_start trs_config trs_config: @ 8035658 push {r4,lr} movs r0, 0 bl ResetBgsAndClearDma3BusyFlags ldr r1, =gUnknown_0831AA08 movs r0, 0 movs r2, 0x4 bl InitBgsFromTemplates ldr r0, =gBattleTypeFlags ldr r1, [r0] movs r0, 0x80 lsls r0, 11 ands r1, r0 cmp r1, 0 beq _080356A4 ldr r0, =gUnknown_02024474 adds r0, 0x24 movs r1, 0x1 strb r1, [r0] ldr r4, =gUnknown_02023060 ldr r1, [r4] movs r0, 0x1 bl SetBgTilemapBuffer ldr r1, [r4] movs r0, 0x2 bl SetBgTilemapBuffer b _080356AA .pool _080356A4: ldr r0, =gUnknown_02024474 adds r0, 0x24 strb r1, [r0] _080356AA: ldr r1, =gUnknown_0831ABA0 ldr r0, =gUnknown_02024474 adds r0, 0x24 ldrb r0, [r0] lsls r0, 2 adds r0, r1 ldr r0, [r0] bl InitWindows bl DeactivateAllTextPrinters pop {r4} pop {r0} bx r0 .pool thumb_func_end trs_config thumb_func_start c2_berry_program_update_menu c2_berry_program_update_menu: @ 80356D0 push {lr} movs r0, 0x2 bl DisableInterrupts movs r0, 0xC5 bl EnableInterrupts bl trs_config movs r0, 0x50 movs r1, 0 bl SetGpuReg movs r0, 0x52 movs r1, 0 bl SetGpuReg movs r0, 0x54 movs r1, 0 bl SetGpuReg ldr r1, =0x0000b040 movs r0, 0 bl SetGpuReg pop {r0} bx r0 .pool thumb_func_end c2_berry_program_update_menu thumb_func_start sub_803570C sub_803570C: @ 803570C push {lr} movs r0, 0x2 movs r1, 0x12 movs r2, 0x10 bl sub_809882C movs r0, 0x2 movs r1, 0x22 movs r2, 0x10 bl sub_809882C ldr r0, =gUnknown_08D85600 movs r1, 0x50 movs r2, 0x20 bl decompress_palette ldr r0, =gBattleTypeFlags ldr r0, [r0] movs r1, 0x80 lsls r1, 11 ands r0, r1 cmp r0, 0 beq _0803575A movs r0, 0x70 bl sub_81978B0 movs r0, 0 movs r1, 0x30 movs r2, 0x70 bl copy_textbox_border_tile_patterns_to_vram ldr r0, =gUnknown_02037714 adds r0, 0xEC movs r1, 0 strh r1, [r0] ldr r1, =gUnknown_02037C00 movs r2, 0x1 bl CpuSet _0803575A: pop {r0} bx r0 .pool thumb_func_end sub_803570C thumb_func_start load_battle_oval_graphics load_battle_oval_graphics: @ 8035770 push {r4,r5,lr} ldr r0, =gBattleTypeFlags ldr r1, [r0] ldr r0, =0x023f0902 ands r0, r1 cmp r0, 0 beq _080357B0 ldr r0, =gUnknown_08D7C440 ldr r1, =0x06008000 bl LZDecompressVram ldr r0, =gUnknown_08D7CA28 ldr r1, =0x0600d000 bl LZDecompressVram ldr r0, =gUnknown_08D7C9EC b _08035A52 .pool _080357B0: movs r0, 0x80 lsls r0, 21 ands r0, r1 cmp r0, 0 beq _080357E4 ldr r0, =gUnknown_08D7BB14 ldr r1, =0x06008000 bl LZDecompressVram ldr r0, =gUnknown_08D7C154 ldr r1, =0x0600d000 bl LZDecompressVram ldr r0, =gUnknown_08D7DF30 b _08035A52 .pool _080357E4: movs r0, 0x80 lsls r0, 22 ands r0, r1 cmp r0, 0 beq _08035818 ldr r0, =gUnknown_08D7A108 ldr r1, =0x06008000 bl LZDecompressVram ldr r0, =gUnknown_08D7A720 ldr r1, =0x0600d000 bl LZDecompressVram ldr r0, =gUnknown_08D7DEF4 b _08035A52 .pool _08035818: movs r0, 0x80 lsls r0, 23 ands r0, r1 cmp r0, 0 beq _0803584C ldr r0, =gUnknown_08D7D590 ldr r1, =0x06008000 bl LZDecompressVram ldr r0, =gUnknown_08D7DC04 ldr r1, =0x0600d000 bl LZDecompressVram ldr r0, =gUnknown_08D7E234 b _08035A52 .pool _0803584C: movs r0, 0x8 ands r1, r0 cmp r1, 0 beq _080358C4 ldr r2, =gTrainers ldr r0, =gUnknown_02038BCA ldrh r1, [r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r2 ldrb r0, [r0, 0x1] cmp r0, 0x20 bne _08035898 ldr r0, =gUnknown_08D7C440 ldr r1, =0x06008000 bl LZDecompressVram ldr r0, =gUnknown_08D7CA28 ldr r1, =0x0600d000 bl LZDecompressVram ldr r0, =gUnknown_08D7DFC4 b _08035A52 .pool _08035898: cmp r0, 0x26 bne _080358C4 ldr r0, =gUnknown_08D7CCD8 ldr r1, =0x06008000 bl LZDecompressVram ldr r0, =gUnknown_08D7D2E0 ldr r1, =0x0600d000 bl LZDecompressVram ldr r0, =gUnknown_08D7E1F8 b _08035A52 .pool _080358C4: bl sav1_map_get_battletype lsls r0, 24 lsrs r0, 24 cmp r0, 0x8 bhi _08035904 lsls r0, 2 ldr r1, =_080358E0 adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _080358E0: .4byte _08035904 .4byte _08035950 .4byte _08035978 .4byte _080359A0 .4byte _080359C8 .4byte _080359F0 .4byte _08035A18 .4byte _08035A40 .4byte _08035A70 _08035904: ldr r4, =gUnknown_0831ABA8 ldr r5, =gUnknown_02022FF0 ldrb r1, [r5] lsls r0, r1, 2 adds r0, r1 lsls r0, 2 adds r0, r4 ldr r0, [r0] ldr r1, =0x06008000 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, =0x0600d000 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 _08035A52 .pool _08035950: ldr r0, =gUnknown_08D7C440 ldr r1, =0x06008000 bl LZDecompressVram ldr r0, =gUnknown_08D7CA28 ldr r1, =0x0600d000 bl LZDecompressVram ldr r0, =gUnknown_08D7DF88 b _08035A52 .pool _08035978: ldr r0, =gUnknown_08D7CCD8 ldr r1, =0x06008000 bl LZDecompressVram ldr r0, =gUnknown_08D7D2E0 ldr r1, =0x0600d000 bl LZDecompressVram ldr r0, =gUnknown_08D7E060 b _08035A52 .pool _080359A0: ldr r0, =gUnknown_08D7CCD8 ldr r1, =0x06008000 bl LZDecompressVram ldr r0, =gUnknown_08D7D2E0 ldr r1, =0x0600d000 bl LZDecompressVram ldr r0, =gUnknown_08D7E000 b _08035A52 .pool _080359C8: ldr r0, =gUnknown_08D7CCD8 ldr r1, =0x06008000 bl LZDecompressVram ldr r0, =gUnknown_08D7D2E0 ldr r1, =0x0600d000 bl LZDecompressVram ldr r0, =gUnknown_08D7E0CC b _08035A52 .pool _080359F0: ldr r0, =gUnknown_08D7CCD8 ldr r1, =0x06008000 bl LZDecompressVram ldr r0, =gUnknown_08D7D2E0 ldr r1, =0x0600d000 bl LZDecompressVram ldr r0, =gUnknown_08D7E11C b _08035A52 .pool _08035A18: ldr r0, =gUnknown_08D7CCD8 ldr r1, =0x06008000 bl LZDecompressVram ldr r0, =gUnknown_08D7D2E0 ldr r1, =0x0600d000 bl LZDecompressVram ldr r0, =gUnknown_08D7E164 b _08035A52 .pool _08035A40: ldr r0, =gUnknown_08D7CCD8 ldr r1, =0x06008000 bl LZDecompressVram ldr r0, =gUnknown_08D7D2E0 ldr r1, =0x0600d000 bl LZDecompressVram ldr r0, =gUnknown_08D7E1A8 _08035A52: movs r1, 0x20 movs r2, 0x60 bl decompress_palette b _08035A8A .pool _08035A70: ldr r0, =gUnknown_08D7C440 ldr r1, =0x06008000 bl LZDecompressVram ldr r0, =gUnknown_08D7CA28 ldr r1, =0x0600d000 bl LZDecompressVram ldr r0, =gUnknown_08D7C9EC movs r1, 0x20 movs r2, 0x60 bl decompress_palette _08035A8A: pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end load_battle_oval_graphics thumb_func_start sub_8035AA4 sub_8035AA4: @ 8035AA4 push {lr} ldr r0, =gUnknown_08C00000 movs r1, 0xC0 lsls r1, 19 bl LZDecompressVram ldr r1, =gUnknown_08C00524 movs r0, 0 movs r2, 0 movs r3, 0 bl CopyToBgTilemapBuffer movs r0, 0 bl CopyBgTilemapBufferToVram ldr r0, =gUnknown_08C004E0 movs r1, 0 movs r2, 0x40 bl decompress_palette bl sub_803570C bl load_battle_oval_graphics pop {r0} bx r0 .pool thumb_func_end sub_8035AA4 thumb_func_start sub_8035AE4 sub_8035AE4: @ 8035AE4 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x18 ldr r4, [sp, 0x34] lsls r0, 24 lsrs r6, r0, 24 adds r7, r6, 0 lsls r1, 24 lsrs r5, r1, 24 lsls r2, 24 lsrs r2, 24 mov r8, r2 lsls r3, 24 lsrs r3, 24 mov r12, r3 lsls r4, 24 lsrs r4, 24 mov r9, r4 movs r4, 0 ldr r0, =gBattleTypeFlags ldr r0, [r0] movs r1, 0x40 ands r0, r1 cmp r0, 0 beq _08035BCC ldr r0, =gTasks lsls r1, r6, 2 adds r1, r6 lsls r1, 3 adds r1, r0 movs r2, 0x12 ldrsh r0, [r1, r2] cmp r0, 0 beq _08035B56 cmp r5, 0x1 beq _08035B7E cmp r5, 0x1 bgt _08035B44 cmp r5, 0 beq _08035B4E b _08035B88 .pool _08035B44: cmp r5, 0x2 beq _08035B52 cmp r5, 0x3 beq _08035B72 b _08035B88 _08035B4E: ldrh r0, [r1, 0xE] b _08035B74 _08035B52: ldrh r1, [r1, 0xE] b _08035B80 _08035B56: cmp r5, 0x1 beq _08035B72 cmp r5, 0x1 bgt _08035B64 cmp r5, 0 beq _08035B6E b _08035B88 _08035B64: cmp r5, 0x2 beq _08035B7A cmp r5, 0x3 beq _08035B7E b _08035B88 _08035B6E: ldrh r0, [r1, 0xE] b _08035B74 _08035B72: ldrh r0, [r1, 0x10] _08035B74: movs r4, 0x3F ands r4, r0 b _08035B88 _08035B7A: ldrh r1, [r1, 0xE] b _08035B80 _08035B7E: ldrh r1, [r1, 0x10] _08035B80: movs r0, 0xFC lsls r0, 4 ands r0, r1 lsrs r4, r0, 6 _08035B88: movs r2, 0 movs r6, 0x3 ldr r0, =0x00006001 adds r5, r0, 0 add r3, sp, 0xC _08035B92: lsls r1, r2, 1 adds r0, r6, 0 lsls r0, r1 ands r0, r4 asrs r0, r1 adds r0, r5 strh r0, [r3] adds r3, 0x2 adds r2, 0x1 cmp r2, 0x2 ble _08035B92 movs r0, 0x3 str r0, [sp] movs r0, 0x1 str r0, [sp, 0x4] movs r0, 0x11 str r0, [sp, 0x8] mov r0, r8 add r1, sp, 0xC mov r2, r12 mov r3, r9 bl CopyToBgTilemapBufferRect_ChangePalette mov r0, r8 bl CopyBgTilemapBufferToVram b _08035C36 .pool _08035BCC: ldr r0, =gUnknown_02024474 adds r0, 0x25 ldrb r0, [r0] cmp r5, r0 bne _08035BEC ldr r1, =gTasks lsls r0, r6, 2 adds r0, r6 lsls r0, 3 adds r0, r1 ldrh r4, [r0, 0xE] b _08035BF8 .pool _08035BEC: ldr r1, =gTasks lsls r0, r7, 2 adds r0, r7 lsls r0, 3 adds r0, r1 ldrh r4, [r0, 0x10] _08035BF8: movs r2, 0 movs r6, 0x3 ldr r0, =0x00006001 adds r5, r0, 0 add r3, sp, 0xC _08035C02: lsls r1, r2, 1 adds r0, r6, 0 lsls r0, r1 ands r0, r4 asrs r0, r1 adds r0, r5 strh r0, [r3] adds r3, 0x2 adds r2, 0x1 cmp r2, 0x5 ble _08035C02 movs r0, 0x6 str r0, [sp] movs r0, 0x1 str r0, [sp, 0x4] movs r0, 0x11 str r0, [sp, 0x8] mov r0, r8 add r1, sp, 0xC mov r2, r12 mov r3, r9 bl CopyToBgTilemapBufferRect_ChangePalette mov r0, r8 bl CopyBgTilemapBufferToVram _08035C36: add sp, 0x18 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_8035AE4 thumb_func_start sub_8035C4C sub_8035C4C: @ 8035C4C push {lr} ldr r0, =gUnknown_0202433A ldrb r2, [r0] cmp r2, 0x3 bne _08035C68 ldr r0, =gUnknown_085CCBAD movs r1, 0x15 bl battle_show_message_maybe b _08035D68 .pool _08035C68: ldr r0, =gBattleTypeFlags ldr r0, [r0] movs r1, 0x40 ands r0, r1 cmp r0, 0 beq _08035CE2 cmp r2, 0x1 bne _08035CAE ldr r2, =gUnknown_020229E8 ldr r0, =gUnknown_02024474 adds r0, 0x25 ldrb r1, [r0] lsls r0, r1, 3 subs r0, r1 lsls r0, 2 adds r0, r2 ldrh r0, [r0, 0x18] cmp r0, 0x1 beq _08035CFC cmp r0, 0x1 bgt _08035CA4 cmp r0, 0 beq _08035D36 b _08035D68 .pool _08035CA4: cmp r0, 0x2 beq _08035D36 cmp r0, 0x3 bne _08035D68 b _08035CFC _08035CAE: ldr r2, =gUnknown_020229E8 ldr r0, =gUnknown_02024474 adds r0, 0x25 ldrb r1, [r0] lsls r0, r1, 3 subs r0, r1 lsls r0, 2 adds r0, r2 ldrh r0, [r0, 0x18] cmp r0, 0x1 beq _08035D36 cmp r0, 0x1 bgt _08035CD8 cmp r0, 0 beq _08035CFC b _08035D68 .pool _08035CD8: cmp r0, 0x2 beq _08035CFC cmp r0, 0x3 bne _08035D68 b _08035D36 _08035CE2: cmp r2, 0x1 bne _08035D20 ldr r2, =gUnknown_020229E8 ldr r0, =gUnknown_02024474 adds r0, 0x25 ldrb r1, [r0] lsls r0, r1, 3 subs r0, r1 lsls r0, 2 adds r0, r2 ldrh r0, [r0, 0x18] cmp r0, 0 beq _08035D36 _08035CFC: ldr r0, =gUnknown_085CCB9E movs r1, 0x17 bl battle_show_message_maybe ldr r0, =gUnknown_085CCBA5 movs r1, 0x16 bl battle_show_message_maybe b _08035D68 .pool _08035D20: ldr r2, =gUnknown_020229E8 ldr r0, =gUnknown_02024474 adds r0, 0x25 ldrb r1, [r0] lsls r0, r1, 3 subs r0, r1 lsls r0, 2 adds r0, r2 ldrh r0, [r0, 0x18] cmp r0, 0 beq _08035D58 _08035D36: ldr r0, =gUnknown_085CCB9E movs r1, 0x16 bl battle_show_message_maybe ldr r0, =gUnknown_085CCBA5 movs r1, 0x17 bl battle_show_message_maybe b _08035D68 .pool _08035D58: ldr r0, =gUnknown_085CCB9E movs r1, 0x17 bl battle_show_message_maybe ldr r0, =gUnknown_085CCBA5 movs r1, 0x16 bl battle_show_message_maybe _08035D68: pop {r0} bx r0 .pool thumb_func_end sub_8035C4C thumb_func_start task00_0800F6FC task00_0800F6FC: @ 8035D74 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x4 lsls r0, 24 lsrs r7, r0, 24 ldr r1, =gTasks lsls r0, r7, 2 mov r8, r0 adds r0, r7 lsls r0, 3 adds r5, r0, r1 movs r1, 0x8 ldrsh r0, [r5, r1] cmp r0, 0x1 bne _08035D96 b _08035EC4 _08035D96: cmp r0, 0x1 bgt _08035DA4 cmp r0, 0 beq _08035DAC b _08036138 .pool _08035DA4: cmp r0, 0x2 bne _08035DAA b _08035F64 _08035DAA: b _08036138 _08035DAC: ldr r0, =gBattleTypeFlags ldr r0, [r0] movs r1, 0x40 ands r0, r1 cmp r0, 0 beq _08035E44 movs r5, 0 movs r6, 0x3 _08035DBC: ldr r0, =gUnknown_020229F0 adds r1, r5, r0 subs r0, 0x8 adds r4, r5, r0 ldrh r0, [r4, 0x18] cmp r0, 0x1 beq _08035DF4 cmp r0, 0x1 bgt _08035DDC cmp r0, 0 beq _08035DE6 b _08035E3A .pool _08035DDC: cmp r0, 0x2 beq _08035E08 cmp r0, 0x3 beq _08035E22 b _08035E3A _08035DE6: adds r0, r1, 0 movs r1, 0x11 bl battle_show_message_maybe ldrb r1, [r4, 0x18] movs r0, 0x4 b _08035E14 _08035DF4: adds r0, r1, 0 movs r1, 0x12 bl battle_show_message_maybe ldrb r1, [r4, 0x18] movs r0, 0x4 str r0, [sp] adds r0, r7, 0 movs r2, 0x2 b _08035E1A _08035E08: adds r0, r1, 0 movs r1, 0x13 bl battle_show_message_maybe ldrb r1, [r4, 0x18] movs r0, 0x8 _08035E14: str r0, [sp] adds r0, r7, 0 movs r2, 0x1 _08035E1A: movs r3, 0x2 bl sub_8035AE4 b _08035E3A _08035E22: adds r0, r1, 0 movs r1, 0x14 bl battle_show_message_maybe ldrb r1, [r4, 0x18] movs r0, 0x8 str r0, [sp] adds r0, r7, 0 movs r2, 0x2 movs r3, 0x2 bl sub_8035AE4 _08035E3A: adds r5, 0x1C subs r6, 0x1 cmp r6, 0 bge _08035DBC b _08035EA6 _08035E44: ldr r0, =gUnknown_02024474 adds r0, 0x25 ldrb r5, [r0] movs r0, 0x1 adds r6, r5, 0 eors r6, r0 adds r1, r6, 0 ldr r4, =gUnknown_020229E8 lsls r0, r5, 3 subs r0, r5 lsls r0, 2 adds r0, r4 ldrh r0, [r0, 0x18] cmp r0, 0 beq _08035E66 adds r6, r5, 0 adds r5, r1, 0 _08035E66: lsls r0, r5, 3 subs r0, r5 lsls r0, 2 adds r4, 0x8 adds r1, r0, r4 adds r0, r1, 0 movs r1, 0xF bl battle_show_message_maybe lsls r0, r6, 3 subs r0, r6 lsls r0, 2 adds r1, r0, r4 adds r0, r1, 0 movs r1, 0x10 bl battle_show_message_maybe movs r4, 0x7 str r4, [sp] adds r0, r7, 0 adds r1, r5, 0 movs r2, 0x1 movs r3, 0x2 bl sub_8035AE4 str r4, [sp] adds r0, r7, 0 adds r1, r6, 0 movs r2, 0x2 movs r3, 0x2 bl sub_8035AE4 _08035EA6: ldr r0, =gTasks mov r2, r8 adds r1, r2, r7 lsls r1, 3 adds r1, r0 ldrh r0, [r1, 0x8] adds r0, 0x1 strh r0, [r1, 0x8] b _08036138 .pool _08035EC4: ldr r0, =0x00002710 bl AllocObjectPalette lsls r0, 24 ldr r2, =gUnknown_02037714 lsrs r0, 19 ldr r3, =0x0000021e adds r0, r3 adds r2, r0, r2 ldr r1, =gUnknown_02037B14 adds r0, r1 ldr r1, =0x00007fff strh r1, [r0] strh r1, [r2] ldr r0, =gUnknown_0831A9D0 movs r1, 0x6F movs r2, 0x50 movs r3, 0 bl AddObjectToFront ldr r4, =gUnknown_0202449C ldr r1, [r4] adds r1, 0x7D strb r0, [r1] ldr r0, =gUnknown_0831A9E8 movs r1, 0x81 movs r2, 0x50 movs r3, 0 bl AddObjectToFront ldr r1, [r4] adds r1, 0x7E strb r0, [r1] ldr r3, =gUnknown_02020630 ldr r0, [r4] adds r0, 0x7D ldrb r1, [r0] 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] ldr r0, [r4] adds r0, 0x7E ldrb r1, [r0] 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, [r5, 0x8] adds r0, 0x1 strh r0, [r5, 0x8] b _08036138 .pool _08035F64: movs r1, 0x12 ldrsh r0, [r5, r1] cmp r0, 0 beq _08035FCC ldr r4, =gUnknown_02022E18 ldrh r0, [r5, 0xA] bl Sin2 lsls r0, 16 asrs r0, 16 cmp r0, 0 bge _08035F7E adds r0, 0x1F _08035F7E: asrs r1, r0, 5 movs r2, 0x14 negs r2, r2 adds r0, r2, 0 subs r0, r1 strh r0, [r4] ldr r4, =gUnknown_02022E1C ldrh r0, [r5, 0xC] bl Sin2 lsls r0, 16 asrs r0, 16 cmp r0, 0 bge _08035F9C adds r0, 0x1F _08035F9C: asrs r1, r0, 5 movs r3, 0x8C negs r3, r3 adds r0, r3, 0 subs r0, r1 strh r0, [r4] ldr r0, =gUnknown_02022E1A ldr r2, =0x0000ffdc adds r1, r2, 0 strh r1, [r0] ldr r0, =gUnknown_02022E1E strh r1, [r0] b _08036038 .pool _08035FCC: ldr r4, =gUnknown_02022E18 ldrh r0, [r5, 0xA] bl Sin2 lsls r0, 16 asrs r0, 16 cmp r0, 0 bge _08035FDE adds r0, 0x1F _08035FDE: asrs r1, r0, 5 movs r3, 0x14 negs r3, r3 adds r0, r3, 0 subs r0, r1 strh r0, [r4] ldr r4, =gUnknown_02022E1A ldrh r0, [r5, 0xA] bl Cos2 lsls r0, 16 asrs r0, 16 cmp r0, 0 bge _08035FFC adds r0, 0x1F _08035FFC: asrs r0, 5 subs r0, 0xA4 strh r0, [r4] ldr r4, =gUnknown_02022E1C ldrh r0, [r5, 0xC] bl Sin2 lsls r0, 16 asrs r0, 16 cmp r0, 0 bge _08036014 adds r0, 0x1F _08036014: asrs r1, r0, 5 movs r2, 0x8C negs r2, r2 adds r0, r2, 0 subs r0, r1 strh r0, [r4] ldr r4, =gUnknown_02022E1E ldrh r0, [r5, 0xC] bl Cos2 lsls r0, 16 asrs r0, 16 cmp r0, 0 bge _08036032 adds r0, 0x1F _08036032: asrs r0, 5 subs r0, 0xA4 strh r0, [r4] _08036038: ldr r1, =gTasks lsls r0, r7, 2 adds r0, r7 lsls r0, 3 adds r1, r0, r1 ldrh r0, [r1, 0xC] movs r2, 0xC ldrsh r3, [r1, r2] mov r8, r3 cmp r3, 0 beq _08036070 subs r0, 0x2 strh r0, [r1, 0xC] ldrh r0, [r1, 0xA] adds r0, 0x2 strh r0, [r1, 0xA] b _08036138 .pool _08036070: movs r3, 0x12 ldrsh r0, [r1, r3] cmp r0, 0 beq _0803607C bl sub_8035C4C _0803607C: movs r0, 0x78 bl audio_play adds r0, r7, 0 bl DestroyTask ldr r4, =gUnknown_02020630 ldr r5, =gUnknown_0202449C ldr r0, [r5] adds r0, 0x7D ldrb r0, [r0] 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 r0, [r5] adds r0, 0x7E 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] ldr r5, [r5] adds r6, r5, 0 adds r6, 0x7E ldrb r0, [r6] 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 r7, =0x000003ff adds r0, r7, 0 ands r1, r0 ldr r0, =0xfffffc00 ands r0, r3 orrs r0, r1 strh r0, [r2, 0x4] adds r5, 0x7D ldrb r1, [r5] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 mov r1, r8 strh r1, [r0, 0x2E] ldrb r1, [r6] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 movs r1, 0x1 strh r1, [r0, 0x2E] 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, [r6] 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 mov r2, r8 strh r2, [r0, 0x32] ldrb r1, [r6] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 strh r2, [r0, 0x32] _08036138: add sp, 0x4 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end task00_0800F6FC thumb_func_start sub_8036154 sub_8036154: @ 8036154 push {r4,r5,lr} ldr r0, =gBattleTypeFlags ldr r1, [r0] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _08036208 ldr r0, =gUnknown_08D778F0 ldr r1, =0x06004000 bl LZDecompressVram ldr r0, =gUnknown_08D77B0C ldr r1, =0x06010000 bl LZDecompressVram ldr r0, =gUnknown_08D77AE4 movs r1, 0x60 movs r2, 0x20 bl decompress_palette movs r0, 0x1 movs r1, 0x3 movs r2, 0x1 bl SetBgAttribute ldr r1, =0x00005c04 movs r0, 0xA bl SetGpuReg ldr r4, =gUnknown_08D779D8 movs r0, 0x1 adds r1, r4, 0 movs r2, 0 movs r3, 0 bl CopyToBgTilemapBuffer movs r0, 0x2 adds r1, r4, 0 movs r2, 0 movs r3, 0 bl CopyToBgTilemapBuffer movs r0, 0x1 bl CopyBgTilemapBufferToVram movs r0, 0x2 bl CopyBgTilemapBufferToVram movs r0, 0x48 movs r1, 0x36 bl SetGpuReg movs r0, 0x4A movs r1, 0x36 bl SetGpuReg ldr r0, =gUnknown_02022E1A ldr r2, =0x0000ff5c adds r1, r2, 0 strh r1, [r0] ldr r0, =gUnknown_02022E1E strh r1, [r0] ldr r0, =gUnknown_0831AA00 bl LoadCompressedObjectPicUsingHeap b _080363AC .pool _08036208: ldr r0, =0x023f0902 ands r0, r1 cmp r0, 0 beq _0803628C movs r0, 0x80 lsls r0, 15 ands r1, r0 cmp r1, 0 beq _08036224 ldr r0, =gUnknown_02038BCE ldrh r1, [r0] ldr r0, =0x00000c03 cmp r1, r0 bne _08036248 _08036224: ldr r0, =gUnknown_08D820D4 ldr r1, =0x06004000 bl LZDecompressVram ldr r0, =gUnknown_08D824E4 b _08036382 .pool _08036248: movs r0, 0x1 movs r1, 0x1 movs r2, 0x2 bl SetBgAttribute movs r0, 0x2 movs r1, 0x1 movs r2, 0x2 bl SetBgAttribute ldr r1, =gUnknown_08D857A8 movs r0, 0x1 movs r2, 0 movs r3, 0 bl CopyToBgTilemapBuffer ldr r1, =gUnknown_08D85A1C movs r0, 0x2 movs r2, 0 movs r3, 0 bl CopyToBgTilemapBuffer movs r0, 0x1 bl CopyBgTilemapBufferToVram movs r0, 0x2 bl CopyBgTilemapBufferToVram b _080363AC .pool _0803628C: movs r0, 0x80 lsls r0, 21 ands r0, r1 cmp r0, 0 beq _080362B0 ldr r0, =gUnknown_08D81610 ldr r1, =0x06004000 bl LZDecompressVram ldr r0, =gUnknown_08D81E2C b _08036382 .pool _080362B0: movs r0, 0x80 lsls r0, 22 ands r0, r1 cmp r0, 0 beq _080362D4 ldr r0, =gUnknown_08D7F9F8 ldr r1, =0x06004000 bl LZDecompressVram ldr r0, =gUnknown_08D7FEC4 b _08036382 .pool _080362D4: movs r0, 0x80 lsls r0, 23 ands r0, r1 cmp r0, 0 beq _080362F8 ldr r0, =gUnknown_08D82608 ldr r1, =0x06004000 bl LZDecompressVram ldr r0, =gUnknown_08D82C70 b _08036382 .pool _080362F8: movs r0, 0x8 ands r1, r0 cmp r1, 0 beq _08036350 ldr r2, =gTrainers ldr r0, =gUnknown_02038BCA ldrh r1, [r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r2 ldrb r0, [r0, 0x1] cmp r0, 0x20 bne _08036334 ldr r0, =gUnknown_08D820D4 ldr r1, =0x06004000 bl LZDecompressVram ldr r0, =gUnknown_08D824E4 b _08036382 .pool _08036334: cmp r0, 0x26 bne _08036350 ldr r0, =gUnknown_08D820D4 ldr r1, =0x06004000 bl LZDecompressVram ldr r0, =gUnknown_08D824E4 b _08036382 .pool _08036350: bl sav1_map_get_battletype lsls r0, 24 cmp r0, 0 bne _0803639C ldr r4, =gUnknown_0831ABA8 ldr r5, =gUnknown_02022FF0 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, =0x06004000 bl LZDecompressVram ldrb r1, [r5] lsls r0, r1, 2 adds r0, r1 lsls r0, 2 adds r4, 0xC adds r0, r4 ldr r0, [r0] _08036382: ldr r1, =0x0600e000 bl LZDecompressVram b _080363AC .pool _0803639C: ldr r0, =gUnknown_08D820D4 ldr r1, =0x06004000 bl LZDecompressVram ldr r0, =gUnknown_08D824E4 ldr r1, =0x0600e000 bl LZDecompressVram _080363AC: pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_8036154 thumb_func_start sub_80363C4 sub_80363C4: @ 80363C4 push {r4,lr} lsls r0, 24 lsrs r0, 24 movs r4, 0 cmp r0, 0x6 bls _080363D2 b _08036756 _080363D2: lsls r0, 2 ldr r1, =_080363E0 adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _080363E0: .4byte _080363FC .4byte _0803640C .4byte _08036424 .4byte _08036434 .4byte _0803652C .4byte _08036638 .4byte _08036750 _080363FC: ldr r0, =gUnknown_08C00000 movs r1, 0xC0 lsls r1, 19 bl LZDecompressVram b _08036758 .pool _0803640C: ldr r1, =gUnknown_08C00524 movs r0, 0 movs r2, 0 movs r3, 0 bl CopyToBgTilemapBuffer movs r0, 0 bl CopyBgTilemapBufferToVram b _08036758 .pool _08036424: ldr r0, =gUnknown_08C004E0 movs r1, 0 movs r2, 0x40 bl decompress_palette b _08036758 .pool _08036434: ldr r0, =gBattleTypeFlags ldr r1, [r0] ldr r0, =0x023f0902 ands r0, r1 cmp r0, 0 bne _08036518 movs r0, 0x80 lsls r0, 21 ands r0, r1 cmp r0, 0 beq _0803645C ldr r0, =gUnknown_08D7BB14 b _0803651A .pool _0803645C: movs r0, 0x8 ands r1, r0 cmp r1, 0 beq _0803648C ldr r2, =gTrainers ldr r0, =gUnknown_02038BCA ldrh r1, [r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r2 ldrb r0, [r0, 0x1] cmp r0, 0x20 beq _08036518 cmp r0, 0x26 bne _0803648C ldr r0, =gUnknown_08D7CCD8 b _0803651A .pool _0803648C: bl sav1_map_get_battletype lsls r0, 24 lsrs r0, 24 cmp r0, 0x8 bhi _080364CC lsls r0, 2 ldr r1, =_080364A8 adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _080364A8: .4byte _080364CC .4byte _08036518 .4byte _080364E8 .4byte _080364F0 .4byte _080364F8 .4byte _08036500 .4byte _08036508 .4byte _08036510 .4byte _08036518 _080364CC: ldr r2, =gUnknown_0831ABA8 ldr r0, =gUnknown_02022FF0 ldrb r1, [r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 2 adds r0, r2 ldr r0, [r0] b _0803651A .pool _080364E8: ldr r0, =gUnknown_08D7CCD8 b _0803651A .pool _080364F0: ldr r0, =gUnknown_08D7CCD8 b _0803651A .pool _080364F8: ldr r0, =gUnknown_08D7CCD8 b _0803651A .pool _08036500: ldr r0, =gUnknown_08D7CCD8 b _0803651A .pool _08036508: ldr r0, =gUnknown_08D7CCD8 b _0803651A .pool _08036510: ldr r0, =gUnknown_08D7CCD8 b _0803651A .pool _08036518: ldr r0, =gUnknown_08D7C440 _0803651A: ldr r1, =0x06008000 bl LZDecompressVram b _08036758 .pool _0803652C: ldr r0, =gBattleTypeFlags ldr r1, [r0] ldr r0, =0x023f0902 ands r0, r1 cmp r0, 0 beq _0803653A b _08036624 _0803653A: movs r0, 0x80 lsls r0, 5 ands r0, r1 cmp r0, 0 beq _08036568 ldr r0, =gGameVersion ldrb r0, [r0] cmp r0, 0x2 bne _08036560 ldr r0, =gUnknown_08D7C154 b _08036626 .pool _08036560: ldr r0, =gUnknown_08D7A720 b _08036626 .pool _08036568: movs r0, 0x8 ands r1, r0 cmp r1, 0 beq _08036598 ldr r2, =gTrainers ldr r0, =gUnknown_02038BCA ldrh r1, [r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r2 ldrb r0, [r0, 0x1] cmp r0, 0x20 beq _08036624 cmp r0, 0x26 bne _08036598 ldr r0, =gUnknown_08D7D2E0 b _08036626 .pool _08036598: bl sav1_map_get_battletype lsls r0, 24 lsrs r0, 24 cmp r0, 0x8 bhi _080365D8 lsls r0, 2 ldr r1, =_080365B4 adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _080365B4: .4byte _080365D8 .4byte _08036624 .4byte _080365F4 .4byte _080365FC .4byte _08036604 .4byte _0803660C .4byte _08036614 .4byte _0803661C .4byte _08036624 _080365D8: ldr r2, =gUnknown_0831ABA8 ldr r0, =gUnknown_02022FF0 ldrb r1, [r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 2 adds r2, 0x4 adds r0, r2 ldr r0, [r0] b _08036626 .pool _080365F4: ldr r0, =gUnknown_08D7D2E0 b _08036626 .pool _080365FC: ldr r0, =gUnknown_08D7D2E0 b _08036626 .pool _08036604: ldr r0, =gUnknown_08D7D2E0 b _08036626 .pool _0803660C: ldr r0, =gUnknown_08D7D2E0 b _08036626 .pool _08036614: ldr r0, =gUnknown_08D7D2E0 b _08036626 .pool _0803661C: ldr r0, =gUnknown_08D7D2E0 b _08036626 .pool _08036624: ldr r0, =gUnknown_08D7CA28 _08036626: ldr r1, =0x0600d000 bl LZDecompressVram b _08036758 .pool _08036638: ldr r0, =gBattleTypeFlags ldr r1, [r0] ldr r0, =0x023f0902 ands r0, r1 cmp r0, 0 beq _08036646 b _08036740 _08036646: movs r0, 0x80 lsls r0, 5 ands r0, r1 cmp r0, 0 beq _08036674 ldr r0, =gGameVersion ldrb r0, [r0] cmp r0, 0x2 bne _0803666C ldr r0, =gUnknown_08D7DF30 b _08036742 .pool _0803666C: ldr r0, =gUnknown_08D7DEF4 b _08036742 .pool _08036674: movs r0, 0x8 ands r1, r0 cmp r1, 0 beq _080366AC ldr r2, =gTrainers ldr r0, =gUnknown_02038BCA ldrh r1, [r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r2 ldrb r0, [r0, 0x1] cmp r0, 0x20 bne _080366A0 ldr r0, =gUnknown_08D7DFC4 b _08036742 .pool _080366A0: cmp r0, 0x26 bne _080366AC ldr r0, =gUnknown_08D7E1F8 b _08036742 .pool _080366AC: bl sav1_map_get_battletype lsls r0, 24 lsrs r0, 24 cmp r0, 0x8 bhi _080366EC lsls r0, 2 ldr r1, =_080366C8 adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _080366C8: .4byte _080366EC .4byte _08036708 .4byte _08036710 .4byte _08036718 .4byte _08036720 .4byte _08036728 .4byte _08036730 .4byte _08036738 .4byte _08036740 _080366EC: ldr r2, =gUnknown_0831ABA8 ldr r0, =gUnknown_02022FF0 ldrb r1, [r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 2 adds r2, 0x10 adds r0, r2 ldr r0, [r0] b _08036742 .pool _08036708: ldr r0, =gUnknown_08D7DF88 b _08036742 .pool _08036710: ldr r0, =gUnknown_08D7E060 b _08036742 .pool _08036718: ldr r0, =gUnknown_08D7E000 b _08036742 .pool _08036720: ldr r0, =gUnknown_08D7E0CC b _08036742 .pool _08036728: ldr r0, =gUnknown_08D7E11C b _08036742 .pool _08036730: ldr r0, =gUnknown_08D7E164 b _08036742 .pool _08036738: ldr r0, =gUnknown_08D7E1A8 b _08036742 .pool _08036740: ldr r0, =gUnknown_08D7C9EC _08036742: movs r1, 0x20 movs r2, 0x60 bl decompress_palette b _08036758 .pool _08036750: bl sub_803570C b _08036758 _08036756: movs r4, 0x1 _08036758: adds r0, r4, 0 pop {r4} pop {r1} bx r1 thumb_func_end sub_80363C4 thumb_func_start sub_8036760 sub_8036760: @ 8036760 push {lr} bl saveblock_randomize_and_relocate bl sub_8056F28 bl dp11_init bl init_uns_table_pokemon_copy bl sub_8185F84 ldr r0, =gBattleTypeFlags ldr r1, [r0] movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _080367CC movs r0, 0x80 lsls r0, 17 ands r0, r1 cmp r0, 0 beq _08036798 bl sub_80367D4 b _080367BA .pool _08036798: movs r0, 0x80 lsls r0, 15 ands r1, r0 cmp r1, 0 bne _080367B4 bl battle_wireless_setup_if_required_maybe ldr r0, =sub_8037ADC bl SetMainCallback2 b _080367BA .pool _080367B4: ldr r0, =intro_end bl SetMainCallback2 _080367BA: ldr r1, =gUnknown_02024332 movs r0, 0 strb r0, [r1] b _080367D0 .pool _080367CC: bl sub_80367D4 _080367D0: pop {r0} bx r0 thumb_func_end sub_8036760 thumb_func_start sub_80367D4 sub_80367D4: @ 80367D4 push {r4,r5,lr} sub sp, 0x4 movs r0, 0 bl SetHBlankCallback movs r0, 0 bl SetVBlankCallback movs r0, 0 str r0, [sp] movs r1, 0xC0 lsls r1, 19 ldr r2, =0x05006000 mov r0, sp bl CpuSet movs r0, 0x4C movs r1, 0 bl SetGpuReg movs r0, 0x40 movs r1, 0xF0 bl SetGpuReg ldr r1, =0x00005051 movs r0, 0x44 bl SetGpuReg movs r0, 0x48 movs r1, 0 bl SetGpuReg movs r0, 0x4A movs r1, 0 bl SetGpuReg ldr r0, =gUnknown_02022E24 movs r2, 0xF0 strh r2, [r0] ldr r0, =gBattleTypeFlags ldr r0, [r0] movs r1, 0x80 lsls r1, 15 ands r0, r1 cmp r0, 0 beq _08036870 ldr r0, =gUnknown_02038BCE ldrh r1, [r0] ldr r0, =0x00000c03 cmp r1, r0 beq _08036870 ldr r1, =gUnknown_02022E26 movs r0, 0x9F strh r0, [r1] ldr r0, =gUnknown_02022E28 strh r2, [r0] ldr r1, =gUnknown_02022E2A movs r0, 0x20 strh r0, [r1] b _080368BE .pool _08036870: ldr r0, =gUnknown_02022E26 ldr r2, =0x00005051 adds r1, r2, 0 strh r1, [r0] bl dp12_8087EA4 ldr r0, =gUnknown_02038C28 movs r3, 0xF0 movs r5, 0xF0 lsls r5, 3 adds r2, r0, r5 movs r1, 0x4F _08036888: strh r3, [r0] strh r3, [r2] adds r2, 0x2 adds r0, 0x2 subs r1, 0x1 cmp r1, 0 bge _08036888 movs r1, 0x50 ldr r4, =gUnknown_0831AC70 ldr r0, =gUnknown_02038C28 ldr r3, =0x0000ff10 movs r5, 0x82 lsls r5, 4 adds r2, r0, r5 adds r0, 0xA0 _080368A6: strh r3, [r0] strh r3, [r2] adds r2, 0x2 adds r0, 0x2 adds r1, 0x1 cmp r1, 0x9F ble _080368A6 ldr r0, [r4] ldr r1, [r4, 0x4] ldr r2, [r4, 0x8] bl sub_80BA038 _080368BE: bl sub_80A1A74 ldr r0, =gUnknown_02022E14 movs r1, 0 strh r1, [r0] ldr r0, =gUnknown_02022E16 strh r1, [r0] ldr r0, =gUnknown_02022E18 strh r1, [r0] ldr r0, =gUnknown_02022E1A strh r1, [r0] ldr r0, =gUnknown_02022E1C strh r1, [r0] ldr r0, =gUnknown_02022E1E strh r1, [r0] ldr r0, =gUnknown_02022E20 strh r1, [r0] ldr r0, =gUnknown_02022E22 strh r1, [r0] bl sub_80B0BD0 ldr r2, =gUnknown_02022FF0 strb r0, [r2] ldr r4, =gBattleTypeFlags ldr r0, [r4] movs r1, 0x80 lsls r1, 17 ands r0, r1 cmp r0, 0 beq _080368FE movs r0, 0x8 strb r0, [r2] _080368FE: bl c2_berry_program_update_menu bl sub_8035AA4 bl ResetAllObjectData bl ResetTasks bl sub_8036154 bl ResetObjectPaletteAllocator ldr r1, =gUnknown_0300301C movs r0, 0x4 strb r0, [r1] ldr r0, =vblank_cb_08078BB4 bl SetVBlankCallback bl sub_803269C ldr r2, [r4] movs r1, 0xA0 lsls r1, 1 adds r0, r2, 0 ands r0, r1 cmp r0, r1 beq _0803693E ldr r1, =0x00400040 adds r0, r2, 0 ands r0, r1 cmp r0, r1 bne _08036994 _0803693E: ldr r0, =sub_8037458 bl SetMainCallback2 b _080369AE .pool _08036994: movs r0, 0x40 ands r2, r0 cmp r2, 0 beq _080369A8 ldr r0, =sub_8037DF4 bl SetMainCallback2 b _080369AE .pool _080369A8: ldr r0, =sub_8036FAC bl SetMainCallback2 _080369AE: ldr r5, =gBattleTypeFlags ldr r0, [r5] ldr r1, =0x01000002 ands r0, r1 cmp r0, 0 bne _080369E8 ldr r4, =gEnemyParty ldr r0, =gUnknown_02038BCA ldrh r1, [r0] adds r0, r4, 0 movs r2, 0x1 bl LoadTrainerParty ldr r0, [r5] movs r1, 0x80 lsls r1, 8 ands r0, r1 cmp r0, 0 beq _080369E4 movs r1, 0x96 lsls r1, 1 adds r0, r4, r1 ldr r1, =gUnknown_02038BCC ldrh r1, [r1] movs r2, 0 bl LoadTrainerParty _080369E4: bl sub_806EA68 _080369E8: ldr r1, =gMain ldr r2, =0x00000439 adds r1, r2 ldrb r0, [r1] movs r2, 0x2 orrs r0, r2 strb r0, [r1] ldr r0, =gSaveBlock2Ptr ldr r1, [r0] ldr r5, =0x00000ca9 adds r1, r5 ldrb r2, [r1] movs r0, 0x9 negs r0, r0 ands r0, r2 strb r0, [r1] ldr r4, =gPlayerParty movs r0, 0xFA lsls r0, 1 adds r5, r4, r0 _08036A10: adds r0, r4, 0 movs r1, 0x3 bl happiness_algorithm adds r4, 0x64 cmp r4, r5 ble _08036A10 movs r1, 0 ldr r0, =gUnknown_02024332 strb r1, [r0] add sp, 0x4 pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_80367D4 thumb_func_start sub_8036A5C sub_8036A5C: @ 8036A5C 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 _08036A72: movs r0, 0x64 mov r4, r9 muls r4, r0 ldr r0, =gPlayerParty adds r4, r0 adds r0, r4, 0 movs r1, 0x41 bl GetMonData lsls r0, 16 lsrs r5, r0, 16 adds r0, r4, 0 movs r1, 0x39 bl GetMonData lsls r0, 16 lsrs r7, r0, 16 adds r0, r4, 0 movs r1, 0x37 bl GetMonData adds r1, r0, 0 cmp r5, 0 beq _08036AEE cmp r5, r10 beq _08036ABA cmp r7, 0 beq _08036ABA cmp r1, 0 bne _08036ABA movs r0, 0x1 mov r2, r8 lsls r0, r2 orrs r6, r0 lsls r0, r6, 16 lsrs r6, r0, 16 _08036ABA: cmp r5, 0 beq _08036AEE cmp r7, 0 beq _08036AD6 cmp r5, r10 beq _08036ACA cmp r1, 0 beq _08036AD6 _08036ACA: movs r0, 0x2 mov r1, r8 lsls r0, r1 orrs r6, r0 lsls r0, r6, 16 lsrs r6, r0, 16 _08036AD6: cmp r5, 0 beq _08036AEE cmp r5, r10 beq _08036AEE cmp r7, 0 bne _08036AEE movs r0, 0x3 mov r2, r8 lsls r0, r2 orrs r6, r0 lsls r0, r6, 16 lsrs r6, r0, 16 _08036AEE: movs r0, 0x2 add r8, r0 movs r1, 0x1 add r9, r1 mov r2, r9 cmp r2, 0x5 ble _08036A72 ldr r4, =gUnknown_0202449C ldr r0, [r4] movs r1, 0xC1 lsls r1, 1 adds r0, r1 strb r6, [r0] ldr r0, [r4] ldr r5, =0x00000183 adds r0, r5 lsrs r1, r6, 8 strb r1, [r0] ldr r0, =0x000008d2 bl FlagGet ldr r1, [r4] adds r1, r5 lsls r0, 7 ldrb r2, [r1] orrs r0, r2 strb r0, [r1] pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_8036A5C thumb_func_start sub_8036B44 sub_8036B44: @ 8036B44 push {r4-r7,lr} ldr r0, =gUnknown_0202449C ldr r5, [r0] movs r0, 0xC2 lsls r0, 1 adds r4, r5, r0 bl sub_80E162C cmp r0, 0x1 bne _08036BC0 movs r2, 0 ldr r7, =gSaveBlock1Ptr movs r1, 0xC6 lsls r1, 1 adds r5, r1 adds r6, r7, 0 ldr r3, =0x000031f8 _08036B66: adds r0, r4, r2 ldr r1, [r6] adds r1, r3 adds r1, r2 ldrb r1, [r1] strb r1, [r0] adds r2, 0x1 cmp r2, 0x5 ble _08036B66 adds r1, r4, r2 movs r0, 0xFF strb r0, [r1] movs r2, 0 adds r3, r5, 0 ldr r6, =gSaveBlock1Ptr ldr r5, =0x00003214 _08036B86: adds r0, r3, r2 ldr r1, [r6] adds r1, r5 adds r1, r2 ldrb r1, [r1] strb r1, [r0] adds r2, 0x1 cmp r2, 0x11 ble _08036B86 ldr r0, [r7] ldr r1, =0x00003226 adds r0, r1 ldrb r0, [r0] strb r0, [r4, 0x7] ldr r0, [r7] adds r1, 0x1 adds r0, r1 ldrb r0, [r0] b _08036C00 .pool _08036BC0: movs r0, 0xAF bl ItemIdToBerryType lsls r0, 24 lsrs r0, 24 bl GetBerryInfo adds r3, r0, 0 movs r2, 0 movs r0, 0xC6 lsls r0, 1 adds r5, r0 _08036BD8: adds r0, r4, r2 adds r1, r3, r2 ldrb r1, [r1] strb r1, [r0] adds r2, 0x1 cmp r2, 0x5 ble _08036BD8 adds r1, r4, r2 movs r0, 0xFF strb r0, [r1] adds r0, r5, 0 movs r2, 0 adds r1, r0, 0 adds r1, 0x11 _08036BF4: strb r2, [r1] subs r1, 0x1 cmp r1, r0 bge _08036BF4 movs r0, 0 strb r0, [r4, 0x7] _08036C00: strb r0, [r4, 0x1A] pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8036B44 thumb_func_start berry_801017C berry_801017C: @ 8036C08 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} ldr r0, =gBattleTypeFlags ldr r1, [r0] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _08036C20 b _08036D4C _08036C20: bl sub_80E162C cmp r0, 0x1 bne _08036CDC movs r5, 0 ldr r3, =gUnknown_02024404 ldr r0, =gSaveBlock1Ptr mov r8, r0 adds r6, r3, 0 mov r4, r8 ldr r2, =0x000031f8 adds r7, r3, 0 adds r7, 0x38 _08036C3A: adds r1, r5, r6 ldr r0, [r4] adds r0, r2 adds r0, r5 ldrb r0, [r0] strb r0, [r1] adds r1, r5, r7 ldr r0, [r4] adds r0, r2 adds r0, r5 ldrb r0, [r0] strb r0, [r1] adds r5, 0x1 cmp r5, 0x5 ble _08036C3A adds r1, r5, r3 movs r0, 0xFF strb r0, [r1] adds r0, r3, 0 adds r0, 0x38 adds r0, r5, r0 movs r1, 0x1 negs r1, r1 strb r1, [r0] movs r5, 0 adds r7, r3, 0 adds r7, 0x8 ldr r4, =gSaveBlock1Ptr ldr r2, =0x00003214 adds r6, r3, 0 adds r6, 0x40 _08036C78: adds r1, r5, r7 ldr r0, [r4] adds r0, r2 adds r0, r5 ldrb r0, [r0] strb r0, [r1] adds r1, r5, r6 ldr r0, [r4] adds r0, r2 adds r0, r5 ldrb r0, [r0] strb r0, [r1] adds r5, 0x1 cmp r5, 0x11 ble _08036C78 mov r1, r8 ldr r0, [r1] ldr r2, =0x00003226 adds r0, r2 ldrb r1, [r0] strb r1, [r3, 0x7] ldrb r0, [r0] adds r1, r3, 0 adds r1, 0x3F strb r0, [r1] mov r4, r8 ldr r0, [r4] ldr r1, =0x00003227 adds r0, r1 ldrb r1, [r0] strb r1, [r3, 0x1A] ldrb r1, [r0] adds r0, r3, 0 adds r0, 0x52 strb r1, [r0] b _08036EA0 .pool _08036CDC: movs r0, 0xAF bl ItemIdToBerryType lsls r0, 24 lsrs r0, 24 bl GetBerryInfo adds r6, r0, 0 movs r5, 0 ldr r4, =gUnknown_02024404 adds r7, r4, 0 adds r7, 0x38 adds r3, r4, 0 _08036CF6: adds r1, r5, r4 adds r2, r6, r5 ldrb r0, [r2] strb r0, [r1] adds r1, r5, r7 ldrb r0, [r2] strb r0, [r1] adds r5, 0x1 cmp r5, 0x5 ble _08036CF6 adds r1, r5, r3 movs r0, 0xFF strb r0, [r1] adds r0, r3, 0 adds r0, 0x38 adds r0, r5, r0 movs r1, 0x1 negs r1, r1 strb r1, [r0] movs r5, 0 adds r4, r3, 0 adds r4, 0x8 movs r1, 0 adds r2, r3, 0 adds r2, 0x40 _08036D28: adds r0, r5, r4 strb r1, [r0] adds r0, r5, r2 strb r1, [r0] adds r5, 0x1 cmp r5, 0x11 ble _08036D28 movs r1, 0 strb r1, [r3, 0x7] adds r0, r3, 0 adds r0, 0x3F strb r1, [r0] strb r1, [r3, 0x1A] adds r0, 0x13 strb r1, [r0] b _08036EA0 .pool _08036D4C: movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _08036DF0 movs r0, 0x80 lsls r0, 1 ands r1, r0 movs r2, 0x4 mov r8, r2 cmp r1, 0 beq _08036D66 movs r4, 0x2 mov r8, r4 _08036D66: movs r5, 0 cmp r5, r8 blt _08036D6E b _08036EA0 _08036D6E: ldr r0, =gUnknown_020229E8 mov r12, r0 ldr r3, =gUnknown_02024404 adds r6, r3, 0 movs r1, 0x8 adds r1, r6 mov r9, r1 _08036D7C: lsls r1, r5, 8 ldr r0, =gUnknown_020223C8 adds r7, r1, r0 lsls r0, r5, 3 subs r0, r5 lsls r0, 2 add r0, r12 ldrb r3, [r0, 0x18] movs r4, 0 adds r5, 0x1 mov r10, r5 lsls r1, r3, 3 subs r0, r1, r3 adds r5, r1, 0 lsls r0, 2 adds r1, r0, r6 _08036D9C: adds r0, r7, r4 ldrb r0, [r0] strb r0, [r1] adds r1, 0x1 adds r4, 0x1 cmp r4, 0x5 ble _08036D9C subs r0, r5, r3 lsls r0, 2 adds r1, r4, r0 adds r1, r6 movs r2, 0xFF strb r2, [r1] movs r4, 0 mov r2, r9 adds r1, r0, r2 adds r2, r7, 0 adds r2, 0x8 _08036DC0: adds r0, r2, r4 ldrb r0, [r0] strb r0, [r1] adds r1, 0x1 adds r4, 0x1 cmp r4, 0x11 ble _08036DC0 subs r0, r5, r3 lsls r0, 2 adds r0, r6 ldrb r1, [r7, 0x7] strb r1, [r0, 0x7] ldrb r1, [r7, 0x1A] strb r1, [r0, 0x1A] mov r5, r10 cmp r5, r8 blt _08036D7C b _08036EA0 .pool _08036DF0: movs r5, 0 ldr r4, =gUnknown_02024404 mov r9, r4 _08036DF6: lsls r0, r5, 8 ldr r1, =gUnknown_020223C8 adds r7, r0, r1 movs r4, 0 adds r2, r5, 0x1 mov r10, r2 lsls r0, r5, 3 mov r8, r0 adds r1, r5, 0x2 mov r12, r1 subs r1, r0, r5 mov r2, r12 lsls r0, r2, 3 subs r0, r2 lsls r0, 2 mov r2, r9 adds r3, r0, r2 lsls r1, 2 adds r2, r1, r2 _08036E1C: adds r0, r7, r4 ldrb r1, [r0] strb r1, [r2] ldrb r0, [r0] strb r0, [r3] adds r3, 0x1 adds r2, 0x1 adds r4, 0x1 cmp r4, 0x5 ble _08036E1C mov r0, r8 subs r3, r0, r5 lsls r3, 2 adds r1, r4, r3 add r1, r9 ldrb r0, [r1] movs r2, 0xFF orrs r0, r2 strb r0, [r1] mov r0, r12 lsls r2, r0, 3 subs r2, r0 lsls r2, 2 adds r1, r4, r2 add r1, r9 ldrb r0, [r1] movs r4, 0xFF orrs r0, r4 strb r0, [r1] movs r4, 0 ldr r0, =gUnknown_02024404 adds r0, 0x8 adds r2, r0 adds r3, r0 adds r6, r7, 0 adds r6, 0x8 _08036E64: adds r0, r6, r4 ldrb r1, [r0] strb r1, [r3] ldrb r0, [r0] strb r0, [r2] adds r2, 0x1 adds r3, 0x1 adds r4, 0x1 cmp r4, 0x11 ble _08036E64 mov r0, r8 subs r2, r0, r5 lsls r2, 2 add r2, r9 ldrb r0, [r7, 0x7] strb r0, [r2, 0x7] mov r1, r12 lsls r0, r1, 3 subs r0, r1 lsls r0, 2 add r0, r9 ldrb r1, [r7, 0x7] strb r1, [r0, 0x7] ldrb r1, [r7, 0x1A] strb r1, [r2, 0x1A] ldrb r1, [r7, 0x1A] strb r1, [r0, 0x1A] mov r5, r10 cmp r5, 0x1 ble _08036DF6 _08036EA0: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end berry_801017C thumb_func_start sub_8036EB8 sub_8036EB8: @ 8036EB8 push {r4-r7,lr} mov r7, r8 push {r7} lsls r0, 24 lsrs r4, r0, 24 lsls r1, 24 lsrs r3, r1, 24 movs r6, 0 ldr r0, =gUnknown_020223C4 ldrh r2, [r0] movs r1, 0x80 lsls r1, 1 mov r12, r0 cmp r2, r1 bne _08036EFC cmp r3, 0 bne _08036EEC ldr r0, =gBattleTypeFlags ldr r1, [r0] movs r2, 0xC b _08036EF2 .pool _08036EEC: ldr r0, =gBattleTypeFlags ldr r1, [r0] movs r2, 0x8 _08036EF2: orrs r1, r2 str r1, [r0] adds r0, r6, 0x1 lsls r0, 24 lsrs r6, r0, 24 _08036EFC: cmp r6, 0 bne _08036FA0 movs r2, 0 cmp r2, r4 bge _08036F20 ldr r1, =gUnknown_020223C4 mov r8, r1 movs r5, 0x80 lsls r5, 1 _08036F0E: adds r1, r5 adds r2, 0x1 cmp r2, r4 bge _08036F20 mov r7, r8 ldrh r0, [r7] ldrh r7, [r1] cmp r0, r7 beq _08036F0E _08036F20: cmp r2, r4 bne _08036F48 cmp r3, 0 bne _08036F38 ldr r0, =gBattleTypeFlags ldr r1, [r0] movs r2, 0xC b _08036F3E .pool _08036F38: ldr r0, =gBattleTypeFlags ldr r1, [r0] movs r2, 0x8 _08036F3E: orrs r1, r2 str r1, [r0] adds r0, r6, 0x1 lsls r0, 24 lsrs r6, r0, 24 _08036F48: cmp r6, 0 bne _08036FA0 movs r2, 0 ldr r5, =gBattleTypeFlags cmp r2, r4 bge _08036F8A mov r0, r12 ldrh r1, [r0] movs r0, 0xC0 lsls r0, 2 cmp r1, r0 beq _08036F82 _08036F60: lsls r0, r2, 8 add r0, r12 ldrh r0, [r0] movs r1, 0xC0 lsls r1, 2 cmp r0, r1 bls _08036F72 cmp r2, r3 bne _08036F8A _08036F72: adds r2, 0x1 cmp r2, r4 bge _08036F8A lsls r0, r2, 8 add r0, r12 ldrh r0, [r0] cmp r0, r1 bne _08036F60 _08036F82: cmp r2, r3 beq _08036F60 cmp r2, r3 bge _08036F60 _08036F8A: cmp r2, r4 bne _08036F98 ldr r0, [r5] movs r1, 0xC b _08036F9C .pool _08036F98: ldr r0, [r5] movs r1, 0x8 _08036F9C: orrs r0, r1 str r0, [r5] _08036FA0: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8036EB8 thumb_func_start sub_8036FAC sub_8036FAC: @ 8036FAC push {r4-r6,lr} bl RunTasks bl CallObjectCallbacks bl PrepareSpritesForOamLoad bl link_get_multiplayer_id lsls r0, 24 lsrs r6, r0, 24 ldr r0, =gUnknown_02024474 adds r0, 0x25 strb r6, [r0] movs r0, 0x1 adds r5, r6, 0 eors r5, r0 ldr r0, =gUnknown_02024332 ldrb r0, [r0] cmp r0, 0x12 bls _08036FD8 b _0803744C _08036FD8: lsls r0, 2 ldr r1, =_08036FF0 adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _08036FF0: .4byte _0803703C .4byte _08037080 .4byte _08037144 .4byte _080371D8 .4byte _08037200 .4byte _0803742C .4byte _08037438 .4byte _08037230 .4byte _08037258 .4byte _0803742C .4byte _08037438 .4byte _08037288 .4byte _080372B0 .4byte _0803742C .4byte _08037438 .4byte _08037318 .4byte _08037378 .4byte _080373A0 .4byte _080373E0 _0803703C: bl IsDma3ManagerBusyWithBgCopy lsls r0, 24 cmp r0, 0 bne _08037068 movs r0, 0 bl ShowBg movs r0, 0x1 bl ShowBg movs r0, 0x2 bl ShowBg movs r0, 0x3 bl ShowBg bl sub_805EF14 ldr r1, =gUnknown_02024332 movs r0, 0x1 strb r0, [r1] _08037068: ldr r0, =gLinkVSyncDisabled ldrb r0, [r0] cmp r0, 0 bne _08037072 b _0803744C _08037072: bl sub_800E0E8 b _0803744C .pool _08037080: ldr r2, =gBattleTypeFlags ldr r1, [r2] movs r6, 0x2 adds r0, r1, 0 ands r0, r6 cmp r0, 0 beq _08037124 ldr r0, =gUnknown_03003124 ldrb r0, [r0] cmp r0, 0 bne _08037098 b _0803744C _08037098: bl sub_800A520 lsls r0, 24 cmp r0, 0 beq _080370EE ldr r4, =gUnknown_0202449C ldr r0, [r4] movs r5, 0xC0 lsls r5, 1 adds r0, r5 movs r1, 0 strb r1, [r0] ldr r0, [r4] ldr r2, =0x00000181 adds r1, r0, r2 movs r0, 0x3 strb r0, [r1] bl sub_8036A5C bl sub_8036B44 ldr r0, =gUnknown_02038BCA ldrh r1, [r0] movs r0, 0xC0 lsls r0, 4 cmp r1, r0 bne _080370D8 ldr r0, =gUnknown_020229E8 movs r1, 0 strh r1, [r0, 0x18] movs r1, 0x1 strh r1, [r0, 0x34] _080370D8: bl bitmask_all_link_players_but_self lsls r0, 24 lsrs r0, 24 ldr r1, [r4] adds r1, r5 movs r2, 0x20 bl link_0800A448 ldr r0, =gUnknown_02024332 strb r6, [r0] _080370EE: ldr r0, =gLinkVSyncDisabled ldrb r0, [r0] cmp r0, 0 bne _080370F8 b _0803744C _080370F8: movs r0, 0 movs r1, 0 bl sub_800DFB4 b _0803744C .pool _08037124: movs r0, 0x80 lsls r0, 17 ands r0, r1 cmp r0, 0 bne _08037134 movs r0, 0x4 orrs r1, r0 str r1, [r2] _08037134: ldr r1, =gUnknown_02024332 movs r0, 0xF strb r0, [r1] bl berry_801017C b _0803744C .pool _08037144: bl sub_800A550 movs r1, 0x3 ands r1, r0 cmp r1, 0x3 beq _08037152 b _0803744C _08037152: bl sub_800A5B4 movs r0, 0x2 adds r1, r6, 0 bl sub_8036EB8 bl berry_801017C ldr r0, =task00_0800F6FC movs r1, 0 bl CreateTask lsls r0, 24 lsrs r0, 24 ldr r1, =gTasks 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, =gUnknown_0202449C ldr r3, [r0] movs r4, 0xC1 lsls r4, 1 adds r0, r3, r4 ldrb r1, [r0] adds r4, 0x1 adds r0, r3, r4 ldrb r0, [r0] lsls r0, 8 orrs r1, r0 strh r1, [r2, 0xE] ldr r1, =gUnknown_020223C4 lsls r4, r5, 8 adds r1, 0x2 adds r4, r1 ldrh r0, [r4] strh r0, [r2, 0x10] lsls r0, r6, 8 adds r0, r1 ldrh r0, [r0] bl sub_8185F90 ldrh r0, [r4] bl sub_8185F90 bl sub_8068AA4 ldr r1, =gUnknown_02024332 b _08037446 .pool _080371D8: bl sub_800A520 lsls r0, 24 cmp r0, 0 bne _080371E4 b _0803744C _080371E4: bl bitmask_all_link_players_but_self lsls r0, 24 lsrs r0, 24 ldr r1, =gPlayerParty movs r2, 0xC8 bl link_0800A448 ldr r1, =gUnknown_02024332 b _08037446 .pool _08037200: bl sub_800A550 movs r1, 0x3 ands r1, r0 cmp r1, 0x3 beq _0803720E b _0803744C _0803720E: bl sub_800A5B4 ldr r0, =gEnemyParty lsls r1, r5, 8 ldr r2, =gUnknown_020223C4 adds r1, r2 movs r2, 0xC8 bl memcpy ldr r1, =gUnknown_02024332 b _08037446 .pool _08037230: bl sub_800A520 lsls r0, 24 cmp r0, 0 bne _0803723C b _0803744C _0803723C: bl bitmask_all_link_players_but_self lsls r0, 24 lsrs r0, 24 ldr r1, =gUnknown_020245B4 movs r2, 0xC8 bl link_0800A448 ldr r1, =gUnknown_02024332 b _08037446 .pool _08037258: bl sub_800A550 movs r1, 0x3 ands r1, r0 cmp r1, 0x3 beq _08037266 b _0803744C _08037266: bl sub_800A5B4 ldr r0, =gUnknown_0202480C lsls r1, r5, 8 ldr r2, =gUnknown_020223C4 adds r1, r2 movs r2, 0xC8 bl memcpy ldr r1, =gUnknown_02024332 b _08037446 .pool _08037288: bl sub_800A520 lsls r0, 24 cmp r0, 0 bne _08037294 b _0803744C _08037294: bl bitmask_all_link_players_but_self lsls r0, 24 lsrs r0, 24 ldr r1, =gUnknown_0202467C movs r2, 0xC8 bl link_0800A448 ldr r1, =gUnknown_02024332 b _08037446 .pool _080372B0: bl sub_800A550 movs r1, 0x3 ands r1, r0 cmp r1, 0x3 beq _080372BE b _0803744C _080372BE: bl sub_800A5B4 ldr r4, =gUnknown_020248D4 lsls r1, r5, 8 ldr r0, =gUnknown_020223C4 adds r1, r0 adds r0, r4, 0 movs r2, 0xC8 bl memcpy ldr r1, =0xfffffe70 adds r0, r4, r1 bl shedinja_something ldr r2, =0xfffffed4 adds r0, r4, r2 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 ldr r1, =gUnknown_02024332 b _08037446 .pool _08037318: bl sub_8032768 bl sub_8184E58 ldr r2, =gUnknown_02024332 movs r0, 0 strb r0, [r2, 0x1] strb r0, [r2, 0x2] ldr r0, =gBattleTypeFlags ldr r0, [r0] movs r1, 0x2 ands r0, r1 cmp r0, 0 beq _08037372 movs r3, 0 ldr r1, =gUnknown_020229E8 ldrb r0, [r1] adds r5, r2, 0 cmp r0, 0x3 bne _08037356 movs r4, 0xFF adds r2, r1, 0 _08037344: adds r2, 0x1C adds r3, 0x1 cmp r3, 0x1 bgt _08037356 ldrh r1, [r2] adds r0, r4, 0 ands r0, r1 cmp r0, 0x3 beq _08037344 _08037356: cmp r3, 0x2 bne _0803736C movs r0, 0x10 strb r0, [r5] b _0803744C .pool _0803736C: movs r0, 0x12 strb r0, [r5] b _0803744C _08037372: movs r0, 0x12 strb r0, [r2] b _0803744C _08037378: bl sub_800A520 lsls r0, 24 cmp r0, 0 beq _0803744C bl bitmask_all_link_players_but_self lsls r0, 24 lsrs r0, 24 ldr r1, =gUnknown_0203BD2C movs r2, 0x4 bl link_0800A448 ldr r1, =gUnknown_02024332 b _08037446 .pool _080373A0: bl sub_800A550 movs r1, 0x3 ands r1, r0 cmp r1, 0x3 bne _0803744C bl sub_800A5B4 ldr r0, =gBattleTypeFlags ldr r0, [r0] movs r1, 0x4 ands r0, r1 cmp r0, 0 bne _080373CA ldr r0, =gUnknown_0203BD2C lsls r1, r5, 8 ldr r2, =gUnknown_020223C4 adds r1, r2 movs r2, 0x4 bl memcpy _080373CA: ldr r1, =gUnknown_02024332 b _08037446 .pool _080373E0: ldr r0, =gUnknown_02024333 adds r1, r0, 0x1 bl battle_load_something lsls r0, 24 cmp r0, 0 beq _0803744C ldr r2, =gUnknown_03005D00 ldr r1, =gMain ldr r0, [r1] str r0, [r2] ldr r0, =sub_8039EF0 str r0, [r1] ldr r0, =sub_8038420 bl SetMainCallback2 ldr r2, =gBattleTypeFlags ldr r1, [r2] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _0803744C movs r0, 0x20 orrs r1, r0 str r1, [r2] b _0803744C .pool _0803742C: ldr r0, =gUnknown_02024332 ldrb r1, [r0] adds r1, 0x1 strb r1, [r0] movs r1, 0x1 strb r1, [r0, 0x1] _08037438: ldr r1, =gUnknown_02024332 ldrb r0, [r1, 0x1] subs r0, 0x1 strb r0, [r1, 0x1] lsls r0, 24 cmp r0, 0 bne _0803744C _08037446: ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] _0803744C: pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_8036FAC thumb_func_start sub_8037458 sub_8037458: @ 8037458 push {r4-r7,lr} sub sp, 0x4 bl RunTasks bl CallObjectCallbacks bl PrepareSpritesForOamLoad bl link_get_multiplayer_id lsls r0, 24 lsrs r6, r0, 24 ldr r0, =gUnknown_02024474 adds r0, 0x25 strb r6, [r0] movs r0, 0x1 adds r7, r6, 0 eors r7, r0 ldr r0, =gUnknown_02024332 ldrb r0, [r0] cmp r0, 0x10 bls _08037486 b _080379D6 _08037486: lsls r0, 2 ldr r1, =_0803749C adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _0803749C: .4byte _080374E0 .4byte _08037518 .4byte _0803761C .4byte _08037670 .4byte _08037694 .4byte _08037710 .4byte _08037734 .4byte _080377B0 .4byte _080377CC .4byte _080377FC .4byte _08037818 .4byte _08037848 .4byte _08037864 .4byte _08037908 .4byte _0803793A .4byte _0803795C .4byte _080379A0 _080374E0: bl IsDma3ManagerBusyWithBgCopy lsls r0, 24 cmp r0, 0 bne _0803750C movs r0, 0 bl ShowBg movs r0, 0x1 bl ShowBg movs r0, 0x2 bl ShowBg movs r0, 0x3 bl ShowBg bl sub_805EF14 ldr r1, =gUnknown_02024332 movs r0, 0x1 strb r0, [r1] _0803750C: ldr r0, =gLinkVSyncDisabled ldrb r0, [r0] cmp r0, 0 beq _08037518 bl sub_800E0E8 _08037518: ldr r2, =gBattleTypeFlags ldr r1, [r2] movs r3, 0x2 adds r0, r1, 0 ands r0, r3 cmp r0, 0 beq _080375FC ldr r0, =gUnknown_03003124 ldrb r0, [r0] cmp r0, 0 bne _08037530 b _080379D6 _08037530: ldr r6, =gUnknown_020229E8 movs r0, 0 strh r0, [r6, 0x18] strh r3, [r6, 0x34] adds r1, r6, 0 adds r1, 0x50 movs r0, 0x1 strh r0, [r1] adds r1, 0x1C movs r0, 0x3 strh r0, [r1] adds r0, r6, 0 adds r0, 0x40 ldr r4, =gUnknown_02038BCA ldrh r1, [r4] bl sub_8162E20 adds r0, r6, 0 adds r0, 0x5C ldr r5, =gUnknown_02038BCC ldrh r1, [r5] bl sub_8162E20 ldrh r1, [r4] mov r0, sp bl sub_8165B88 mov r0, sp ldrb r0, [r0] adds r1, r6, 0 adds r1, 0x52 strh r0, [r1] ldrh r1, [r5] mov r0, sp bl sub_8165B88 mov r0, sp ldrb r1, [r0] adds r0, r6, 0 adds r0, 0x6E strh r1, [r0] bl sub_800A520 lsls r0, 24 cmp r0, 0 beq _080375C4 ldr r4, =gUnknown_0202449C ldr r0, [r4] movs r5, 0xC0 lsls r5, 1 adds r0, r5 movs r1, 0 strb r1, [r0] ldr r0, [r4] ldr r2, =0x00000181 adds r1, r0, r2 movs r0, 0x3 strb r0, [r1] bl sub_8036A5C bl sub_8036B44 bl bitmask_all_link_players_but_self lsls r0, 24 lsrs r0, 24 ldr r1, [r4] adds r1, r5 movs r2, 0x20 bl link_0800A448 ldr r1, =gUnknown_02024332 movs r0, 0x2 strb r0, [r1] _080375C4: ldr r0, =gLinkVSyncDisabled ldrb r0, [r0] cmp r0, 0 bne _080375CE b _080379D6 _080375CE: movs r0, 0 movs r1, 0 bl sub_800DFB4 b _080379D6 .pool _080375FC: movs r0, 0x80 lsls r0, 17 ands r0, r1 cmp r0, 0 bne _0803760C movs r0, 0x4 orrs r1, r0 str r1, [r2] _0803760C: ldr r1, =gUnknown_02024332 movs r0, 0xD strb r0, [r1] bl berry_801017C b _080379D6 .pool _0803761C: bl sub_800A550 movs r1, 0x3 ands r1, r0 cmp r1, 0x3 beq _0803762A b _080379D6 _0803762A: bl sub_800A5B4 movs r0, 0x2 adds r1, r6, 0 bl sub_8036EB8 bl berry_801017C ldr r0, =task00_0800F6FC movs r1, 0 bl CreateTask lsls r0, 24 lsrs r0, 24 ldr r2, =gTasks 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] adds r0, 0xEB strh r0, [r1, 0xE] strh r0, [r1, 0x10] b _08037986 .pool _08037670: bl sub_800A520 lsls r0, 24 cmp r0, 0 bne _0803767C b _080379D6 _0803767C: bl bitmask_all_link_players_but_self lsls r0, 24 lsrs r0, 24 ldr r1, =gPlayerParty _08037686: movs r2, 0xC8 bl link_0800A448 b _08037986 .pool _08037694: bl sub_800A550 movs r1, 0x3 ands r1, r0 cmp r1, 0x3 beq _080376A2 b _080379D6 _080376A2: bl sub_800A5B4 ldr r0, =gUnknown_020229E8 lsls r1, r6, 3 subs r1, r6 lsls r1, 2 adds r1, r0 ldrh r0, [r1, 0x18] cmp r0, 0 beq _080376E8 ldr r4, =gPlayerParty lsls r1, r7, 8 ldr r5, =gUnknown_020223C4 adds r1, r5 adds r0, r4, 0 movs r2, 0xC8 bl memcpy movs r0, 0x96 lsls r0, 1 adds r4, r0 lsls r1, r6, 8 adds r1, r5 adds r0, r4, 0 movs r2, 0xC8 bl memcpy b _08037986 .pool _080376E8: ldr r4, =gPlayerParty lsls r1, r6, 8 ldr r5, =gUnknown_020223C4 adds r1, r5 adds r0, r4, 0 movs r2, 0xC8 bl memcpy movs r1, 0x96 lsls r1, 1 adds r4, r1 lsls r1, r7, 8 adds r1, r5 adds r0, r4, 0 movs r2, 0xC8 b _08037982 .pool _08037710: bl sub_800A520 lsls r0, 24 cmp r0, 0 bne _0803771C b _080379D6 _0803771C: bl bitmask_all_link_players_but_self lsls r0, 24 lsrs r0, 24 ldr r1, =gUnknown_020245B4 movs r2, 0x64 bl link_0800A448 b _08037986 .pool _08037734: bl sub_800A550 movs r1, 0x3 ands r1, r0 cmp r1, 0x3 beq _08037742 b _080379D6 _08037742: bl sub_800A5B4 ldr r0, =gUnknown_020229E8 lsls r1, r6, 3 subs r1, r6 lsls r1, 2 adds r1, r0 ldrh r0, [r1, 0x18] cmp r0, 0 beq _08037788 ldr r4, =gUnknown_020245B4 lsls r1, r7, 8 ldr r5, =gUnknown_020223C4 adds r1, r5 adds r0, r4, 0 movs r2, 0x64 bl memcpy movs r2, 0x96 lsls r2, 1 adds r4, r2 lsls r1, r6, 8 adds r1, r5 adds r0, r4, 0 movs r2, 0x64 bl memcpy b _08037986 .pool _08037788: ldr r4, =gUnknown_020245B4 lsls r1, r6, 8 ldr r5, =gUnknown_020223C4 adds r1, r5 adds r0, r4, 0 movs r2, 0x64 bl memcpy movs r0, 0x96 lsls r0, 1 adds r4, r0 lsls r1, r7, 8 adds r1, r5 adds r0, r4, 0 movs r2, 0x64 b _08037982 .pool _080377B0: bl sub_800A520 lsls r0, 24 cmp r0, 0 bne _080377BC b _080379D6 _080377BC: bl bitmask_all_link_players_but_self lsls r0, 24 lsrs r0, 24 ldr r1, =gEnemyParty b _08037686 .pool _080377CC: bl sub_800A550 movs r1, 0x3 ands r1, r0 cmp r1, 0x3 beq _080377DA b _080379D6 _080377DA: bl sub_800A5B4 bl link_get_multiplayer_id lsls r0, 24 cmp r0, 0 bne _080377EA b _08037986 _080377EA: ldr r0, =gEnemyParty ldr r1, =gUnknown_020223C4 movs r2, 0xC8 b _08037982 .pool _080377FC: bl sub_800A520 lsls r0, 24 cmp r0, 0 bne _08037808 b _080379D6 _08037808: bl bitmask_all_link_players_but_self lsls r0, 24 lsrs r0, 24 ldr r1, =gUnknown_0202480C b _08037686 .pool _08037818: bl sub_800A550 movs r1, 0x3 ands r1, r0 cmp r1, 0x3 beq _08037826 b _080379D6 _08037826: bl sub_800A5B4 bl link_get_multiplayer_id lsls r0, 24 cmp r0, 0 bne _08037836 b _08037986 _08037836: ldr r0, =gUnknown_0202480C ldr r1, =gUnknown_020223C4 movs r2, 0xC8 b _08037982 .pool _08037848: bl sub_800A520 lsls r0, 24 cmp r0, 0 bne _08037854 b _080379D6 _08037854: bl bitmask_all_link_players_but_self lsls r0, 24 lsrs r0, 24 ldr r1, =gUnknown_020248D4 b _08037686 .pool _08037864: bl sub_800A550 movs r1, 0x3 ands r1, r0 cmp r1, 0x3 beq _08037872 b _080379D6 _08037872: bl sub_800A5B4 bl link_get_multiplayer_id lsls r0, 24 cmp r0, 0 beq _0803788A ldr r0, =gUnknown_020248D4 ldr r1, =gUnknown_020223C4 movs r2, 0xC8 bl memcpy _0803788A: ldr r4, =gPlayerParty 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 r2, 0xC8 lsls r2, 1 adds r0, r4, r2 bl shedinja_something movs r1, 0xFA lsls r1, 1 adds r0, r4, r1 bl shedinja_something ldr r4, =gEnemyParty 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 r2, 0x96 lsls r2, 1 adds r0, r4, r2 bl shedinja_something movs r1, 0xC8 lsls r1, 1 adds r0, r4, r1 bl shedinja_something movs r2, 0xFA lsls r2, 1 adds r0, r4, r2 bl shedinja_something b _08037986 .pool _08037908: bl sub_8032768 bl sub_8184E58 ldr r2, =gUnknown_02024332 movs r0, 0 strb r0, [r2, 0x1] strb r0, [r2, 0x2] ldr r0, =gBattleTypeFlags ldr r0, [r0] movs r1, 0x2 ands r0, r1 cmp r0, 0 beq _08037934 movs r0, 0xE strb r0, [r2] b _080379D6 .pool _08037934: movs r0, 0x10 strb r0, [r2] b _080379D6 _0803793A: bl sub_800A520 lsls r0, 24 cmp r0, 0 beq _080379D6 bl bitmask_all_link_players_but_self lsls r0, 24 lsrs r0, 24 ldr r1, =gUnknown_0203BD2C movs r2, 0x4 bl link_0800A448 b _08037986 .pool _0803795C: bl sub_800A550 movs r1, 0x3 ands r1, r0 cmp r1, 0x3 bne _080379D6 bl sub_800A5B4 ldr r0, =gBattleTypeFlags ldr r0, [r0] movs r1, 0x4 ands r0, r1 cmp r0, 0 bne _08037986 ldr r0, =gUnknown_0203BD2C lsls r1, r7, 8 ldr r2, =gUnknown_020223C4 adds r1, r2 movs r2, 0x4 _08037982: bl memcpy _08037986: ldr r1, =gUnknown_02024332 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] b _080379D6 .pool _080379A0: ldr r0, =gUnknown_02024333 adds r1, r0, 0x1 bl battle_load_something lsls r0, 24 cmp r0, 0 beq _080379D6 bl sub_8166188 ldr r2, =gUnknown_03005D00 ldr r1, =gMain ldr r0, [r1] str r0, [r2] ldr r0, =sub_8039EF0 str r0, [r1] ldr r0, =sub_8038420 bl SetMainCallback2 ldr r2, =gBattleTypeFlags ldr r1, [r2] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _080379D6 movs r0, 0x20 orrs r1, r0 str r1, [r2] _080379D6: add sp, 0x4 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_8037458 thumb_func_start sub_80379F8 sub_80379F8: @ 80379F8 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x4 lsls r0, 24 lsrs r0, 24 str r0, [sp] movs r0, 0 mov r8, r0 ldr r6, =gUnknown_02022FF8 mov r10, r6 _08037A12: ldr r1, [sp] add r1, r8 movs r0, 0x64 adds r4, r1, 0 muls r4, r0 ldr r0, =gPlayerParty adds r4, r0 adds r0, r4, 0 movs r1, 0xB bl GetMonData mov r1, r8 lsls r5, r1, 5 strh r0, [r6] adds r0, r4, 0 movs r1, 0xC bl GetMonData strh r0, [r6, 0x2] movs r0, 0x4 add r0, r10 mov r9, r0 adds r7, r5, r0 adds r0, r4, 0 movs r1, 0x2 adds r2, r7, 0 bl GetMonData adds r0, r4, 0 movs r1, 0x38 bl GetMonData strb r0, [r6, 0xF] adds r0, r4, 0 movs r1, 0x39 bl GetMonData strh r0, [r6, 0x10] adds r0, r4, 0 movs r1, 0x3A bl GetMonData strh r0, [r6, 0x12] adds r0, r4, 0 movs r1, 0x37 bl GetMonData mov r1, r10 adds r1, 0x14 adds r5, r1 str r0, [r5] adds r0, r4, 0 movs r1, 0 bl GetMonData str r0, [r6, 0x18] adds r0, r4, 0 bl pokemon_get_gender strb r0, [r6, 0x1C] adds r0, r7, 0 bl StripExtCtrlCodes adds r0, r4, 0 movs r1, 0x3 bl GetMonData cmp r0, 0x1 beq _08037AA4 adds r0, r7, 0 movs r1, 0 bl sub_81DB4DC _08037AA4: adds r6, 0x20 movs r1, 0x1 add r8, r1 mov r0, r8 cmp r0, 0x2 ble _08037A12 ldr r0, =gUnknown_02023058 ldr r0, [r0] mov r1, r9 subs r1, 0x4 movs r2, 0x60 bl memcpy add sp, 0x4 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_80379F8 thumb_func_start sub_8037ADC sub_8037ADC: @ 8037ADC push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x4 movs r0, 0x4 mov r9, r0 movs r4, 0xF ldr r6, =gBattleTypeFlags ldr r0, [r6] movs r1, 0x80 lsls r1, 1 ands r0, r1 cmp r0, 0 beq _08037B02 movs r1, 0x2 mov r9, r1 movs r4, 0x3 _08037B02: bl link_get_multiplayer_id lsls r0, 24 lsrs r7, r0, 24 ldr r0, =gUnknown_02024474 adds r0, 0x25 movs r2, 0 mov r8, r2 strb r7, [r0] ldr r0, =gUnknown_0202449C ldr r0, [r0] adds r1, r0, 0 adds r1, 0xB4 str r1, [sp] adds r0, 0xAC mov r10, r0 bl RunTasks bl CallObjectCallbacks bl PrepareSpritesForOamLoad ldr r5, =gUnknown_02024332 ldrb r0, [r5] cmp r0, 0x1 beq _08037BA4 cmp r0, 0x1 bgt _08037B50 cmp r0, 0 beq _08037B5E b _08037D0A .pool _08037B50: cmp r0, 0x2 bne _08037B56 b _08037C64 _08037B56: cmp r0, 0x3 bne _08037B5C b _08037C9E _08037B5C: b _08037D0A _08037B5E: ldr r0, =gUnknown_03003124 ldrb r0, [r0] cmp r0, 0 bne _08037B68 b _08037D0A _08037B68: bl sub_800A520 lsls r0, 24 cmp r0, 0 bne _08037B74 b _08037D0A _08037B74: ldr r4, =gUnknown_02023058 movs r0, 0x60 bl Alloc str r0, [r4] movs r0, 0 bl sub_80379F8 bl bitmask_all_link_players_but_self lsls r0, 24 lsrs r0, 24 ldr r1, [r4] movs r2, 0x60 bl link_0800A448 ldrb r0, [r5] adds r0, 0x1 strb r0, [r5] b _08037D0A .pool _08037BA4: bl sub_800A550 adds r1, r4, 0 ands r1, r0 cmp r1, r4 beq _08037BB2 b _08037D0A _08037BB2: bl sub_800A5B4 movs r5, 0 cmp r8, r9 bge _08037C2E lsls r0, r7, 3 subs r0, r7 lsls r6, r0, 2 mov r8, r5 ldr r4, =gUnknown_020223C4 _08037BC6: cmp r5, r7 beq _08037C1E mov r2, r9 cmp r2, 0x4 bne _08037C14 ldr r2, =gUnknown_020229E8 mov r1, r8 adds r0, r1, r2 ldrh r1, [r0, 0x18] movs r3, 0x1 adds r0, r3, 0 ands r0, r1 cmp r0, 0 bne _08037BF8 adds r0, r6, r2 ldrh r1, [r0, 0x18] adds r0, r3, 0 ands r0, r1 cmp r0, 0 beq _08037C04 b _08037C1E .pool _08037BF8: adds r0, r6, r2 ldrh r1, [r0, 0x18] adds r0, r3, 0 ands r0, r1 cmp r0, 0 beq _08037C1E _08037C04: ldr r0, =gUnknown_02022FF8 adds r1, r4, 0 movs r2, 0x60 bl memcpy b _08037C1E .pool _08037C14: ldr r0, =gUnknown_02022FF8 adds r1, r4, 0 movs r2, 0x60 bl memcpy _08037C1E: movs r2, 0x80 lsls r2, 1 adds r4, r2 movs r0, 0x1C add r8, r0 adds r5, 0x1 cmp r5, r9 blt _08037BC6 _08037C2E: ldr r1, =gUnknown_02024332 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] ldr r1, =gMain ldr r0, [r1, 0x8] ldr r2, [sp] str r0, [r2] ldr r0, =gBattleTypeFlags ldr r0, [r0] mov r2, r10 str r0, [r2] ldr r0, =sub_8037ADC str r0, [r1, 0x8] bl sub_81B9150 b _08037D0A .pool _08037C64: bl sub_800A520 lsls r0, 24 cmp r0, 0 beq _08037D0A ldr r0, =gUnknown_02037FD4 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _08037D0A ldrb r0, [r5] adds r0, 0x1 strb r0, [r5] ldr r0, =gLinkVSyncDisabled ldrb r0, [r0] cmp r0, 0 beq _08037C98 bl sub_800ADF8 b _08037D0A .pool _08037C98: bl sub_800AC34 b _08037D0A _08037C9E: ldr r0, =gLinkVSyncDisabled ldrb r0, [r0] cmp r0, 0 beq _08037CE4 bl sub_8010500 lsls r0, 24 cmp r0, 0 beq _08037D0A mov r1, r10 ldr r0, [r1] str r0, [r6] ldr r1, =gMain ldr r2, [sp] ldr r0, [r2] str r0, [r1, 0x8] ldr r0, =sub_80367D4 bl SetMainCallback2 ldr r4, =gUnknown_02023058 ldr r0, [r4] bl Free mov r0, r8 str r0, [r4] b _08037D0A .pool _08037CE4: ldr r0, =gUnknown_03003124 ldrb r5, [r0] cmp r5, 0 bne _08037D0A mov r1, r10 ldr r0, [r1] str r0, [r6] ldr r1, =gMain ldr r2, [sp] ldr r0, [r2] str r0, [r1, 0x8] ldr r0, =sub_80367D4 bl SetMainCallback2 ldr r4, =gUnknown_02023058 ldr r0, [r4] bl Free str r5, [r4] _08037D0A: add sp, 0x4 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_8037ADC thumb_func_start intro_end intro_end: @ 8037D2C push {r4-r7,lr} mov r7, r8 push {r7} ldr r0, =gUnknown_0202449C ldr r0, [r0] movs r1, 0xB4 adds r1, r0 mov r8, r1 adds r7, r0, 0 adds r7, 0xAC bl RunTasks bl CallObjectCallbacks bl PrepareSpritesForOamLoad ldr r5, =gUnknown_02024332 ldrb r0, [r5] cmp r0, 0 beq _08037D64 cmp r0, 0x1 beq _08037DA4 b _08037DD6 .pool _08037D64: ldr r4, =gUnknown_02023058 movs r0, 0x60 bl Alloc str r0, [r4] movs r0, 0x3 bl sub_80379F8 ldrb r0, [r5] adds r0, 0x1 strb r0, [r5] ldr r1, =gMain ldr r0, [r1, 0x8] mov r2, r8 str r0, [r2] ldr r0, =gBattleTypeFlags ldr r0, [r0] str r0, [r7] ldr r0, =intro_end str r0, [r1, 0x8] bl sub_81B9150 b _08037DD6 .pool _08037DA4: ldr r0, =gUnknown_02037FD4 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 lsls r0, 24 lsrs r6, r0, 24 cmp r6, 0 bne _08037DD6 movs r0, 0x2 strb r0, [r5] ldr r1, =gBattleTypeFlags ldr r0, [r7] str r0, [r1] ldr r1, =gMain mov r2, r8 ldr r0, [r2] str r0, [r1, 0x8] ldr r0, =sub_80367D4 bl SetMainCallback2 ldr r4, =gUnknown_02023058 ldr r0, [r4] bl Free str r6, [r4] _08037DD6: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end intro_end thumb_func_start sub_8037DF4 sub_8037DF4: @ 8037DF4 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x4 bl link_get_multiplayer_id lsls r0, 24 lsrs r7, r0, 24 ldr r0, =gUnknown_02024474 adds r0, 0x25 strb r7, [r0] bl RunTasks bl CallObjectCallbacks bl PrepareSpritesForOamLoad ldr r0, =gUnknown_02024332 ldrb r0, [r0] cmp r0, 0xA bls _08037E20 b _080383F8 _08037E20: lsls r0, 2 ldr r1, =_08037E38 adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _08037E38: .4byte _08037E64 .4byte _08037EA8 .4byte _08037F50 .4byte _08038026 .4byte _0803804C .4byte _08038140 .4byte _08038164 .4byte _080382CC .4byte _0803832C .4byte _0803836C .4byte _080383BC _08037E64: bl IsDma3ManagerBusyWithBgCopy lsls r0, 24 cmp r0, 0 bne _08037E90 movs r0, 0 bl ShowBg movs r0, 0x1 bl ShowBg movs r0, 0x2 bl ShowBg movs r0, 0x3 bl ShowBg bl sub_805EF14 ldr r1, =gUnknown_02024332 movs r0, 0x1 strb r0, [r1] _08037E90: ldr r0, =gLinkVSyncDisabled ldrb r0, [r0] cmp r0, 0 bne _08037E9A b _080383F8 _08037E9A: bl sub_800E0E8 b _080383F8 .pool _08037EA8: ldr r2, =gBattleTypeFlags ldr r1, [r2] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _08037F30 ldr r0, =gUnknown_03003124 ldrb r0, [r0] cmp r0, 0 bne _08037EBE b _080383F8 _08037EBE: bl sub_800A520 lsls r0, 24 cmp r0, 0 beq _08037F02 ldr r4, =gUnknown_0202449C ldr r0, [r4] movs r5, 0xC0 lsls r5, 1 adds r0, r5 movs r1, 0 strb r1, [r0] ldr r0, [r4] ldr r2, =0x00000181 adds r1, r0, r2 movs r0, 0x3 strb r0, [r1] bl sub_8036A5C bl sub_8036B44 bl bitmask_all_link_players_but_self lsls r0, 24 lsrs r0, 24 ldr r1, [r4] adds r1, r5 movs r2, 0x20 bl link_0800A448 ldr r1, =gUnknown_02024332 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] _08037F02: ldr r0, =gLinkVSyncDisabled ldrb r0, [r0] cmp r0, 0 bne _08037F0C b _080383F8 _08037F0C: movs r0, 0 movs r1, 0 bl sub_800DFB4 b _080383F8 .pool _08037F30: movs r0, 0x80 lsls r0, 17 ands r0, r1 cmp r0, 0 bne _08037F40 movs r0, 0x4 orrs r1, r0 str r1, [r2] _08037F40: ldr r1, =gUnknown_02024332 movs r0, 0x7 strb r0, [r1] bl berry_801017C b _080383F8 .pool _08037F50: bl sub_800A550 movs r1, 0xF ands r1, r0 cmp r1, 0xF beq _08037F5E b _080383F8 _08037F5E: bl sub_800A5B4 movs r0, 0x4 adds r1, r7, 0 bl sub_8036EB8 bl berry_801017C bl sub_8068AA4 ldr r0, =task00_0800F6FC movs r1, 0 bl CreateTask lsls r0, 24 lsrs r2, r0, 24 ldr r1, =gTasks lsls r0, r2, 2 adds r0, r2 lsls r0, 3 adds r0, r1 movs r2, 0 movs r1, 0x87 lsls r1, 1 strh r1, [r0, 0xA] movs r1, 0x5A strh r1, [r0, 0xC] strh r2, [r0, 0x12] strh r2, [r0, 0xE] strh r2, [r0, 0x10] ldr r1, =gUnknown_020223C4 adds r4, r0, 0 adds r5, r1, 0x2 movs r7, 0x3F movs r6, 0x3 _08037FA4: ldrh r0, [r5] str r2, [sp] bl sub_8185F90 ldr r0, =gUnknown_020229E8 ldr r2, [sp] adds r0, r2, r0 ldrh r0, [r0, 0x18] cmp r0, 0x1 beq _08037FE6 cmp r0, 0x1 bgt _08037FD4 cmp r0, 0 beq _08037FDE b _0803800C .pool _08037FD4: cmp r0, 0x2 beq _08037FEE cmp r0, 0x3 beq _08037FFE b _0803800C _08037FDE: ldrh r0, [r5] adds r1, r7, 0 ands r1, r0 b _08037FF6 _08037FE6: ldrh r0, [r5] adds r1, r7, 0 ands r1, r0 b _08038006 _08037FEE: ldrh r0, [r5] adds r1, r7, 0 ands r1, r0 lsls r1, 6 _08037FF6: ldrh r0, [r4, 0xE] orrs r1, r0 strh r1, [r4, 0xE] b _0803800C _08037FFE: ldrh r0, [r5] adds r1, r7, 0 ands r1, r0 lsls r1, 6 _08038006: ldrh r0, [r4, 0x10] orrs r1, r0 strh r1, [r4, 0x10] _0803800C: movs r0, 0x80 lsls r0, 1 adds r5, r0 adds r2, 0x1C subs r6, 0x1 cmp r6, 0 bge _08037FA4 bl zero_enemy_party_data ldr r1, =gUnknown_02024332 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] _08038026: bl sub_800A520 lsls r0, 24 cmp r0, 0 bne _08038032 b _080383F8 _08038032: bl bitmask_all_link_players_but_self lsls r0, 24 lsrs r0, 24 ldr r1, =gPlayerParty movs r2, 0xC8 bl link_0800A448 b _080383A6 .pool _0803804C: bl sub_800A550 movs r1, 0xF ands r1, r0 cmp r1, 0xF beq _0803805A b _080383F8 _0803805A: bl sub_800A5B4 movs r6, 0 lsls r0, r7, 3 subs r0, r7 lsls r0, 2 mov r8, r0 ldr r4, =gUnknown_020223C4 movs r5, 0 _0803806C: cmp r6, r7 bne _080380A0 ldr r0, =gUnknown_020229E8 adds r0, r5, r0 ldrh r0, [r0, 0x18] cmp r0, 0x2 bgt _0803808C cmp r0, 0x1 bge _08038098 cmp r0, 0 beq _08038090 b _0803812A .pool _0803808C: cmp r0, 0x3 bne _0803812A _08038090: ldr r0, =gPlayerParty b _08038110 .pool _08038098: ldr r0, =gUnknown_02024618 b _08038110 .pool _080380A0: ldr r2, =gUnknown_020229E8 adds r0, r5, r2 ldrh r1, [r0, 0x18] movs r3, 0x1 adds r0, r3, 0 ands r0, r1 cmp r0, 0 bne _080380C4 mov r1, r8 adds r0, r1, r2 ldrh r1, [r0, 0x18] adds r0, r3, 0 ands r0, r1 cmp r0, 0 beq _080380D2 b _080380F8 .pool _080380C4: mov r1, r8 adds r0, r1, r2 ldrh r1, [r0, 0x18] adds r0, r3, 0 ands r0, r1 cmp r0, 0 beq _080380F8 _080380D2: adds r0, r5, r2 ldrh r0, [r0, 0x18] cmp r0, 0x2 bgt _080380E4 cmp r0, 0x1 bge _080380F0 cmp r0, 0 beq _080380E8 b _0803812A _080380E4: cmp r0, 0x3 bne _0803812A _080380E8: ldr r0, =gPlayerParty b _08038110 .pool _080380F0: ldr r0, =gUnknown_02024618 b _08038110 .pool _080380F8: adds r0, r5, r2 ldrh r0, [r0, 0x18] cmp r0, 0x2 bgt _0803810A cmp r0, 0x1 bge _08038120 cmp r0, 0 beq _0803810E b _0803812A _0803810A: cmp r0, 0x3 bne _0803812A _0803810E: ldr r0, =gEnemyParty _08038110: adds r1, r4, 0 movs r2, 0xC8 bl memcpy b _0803812A .pool _08038120: ldr r0, =gUnknown_02024870 adds r1, r4, 0 movs r2, 0xC8 bl memcpy _0803812A: movs r2, 0x80 lsls r2, 1 adds r4, r2 adds r5, 0x1C adds r6, 0x1 cmp r6, 0x3 ble _0803806C b _080383A6 .pool _08038140: bl sub_800A520 lsls r0, 24 cmp r0, 0 bne _0803814C b _080383F8 _0803814C: bl bitmask_all_link_players_but_self lsls r0, 24 lsrs r0, 24 ldr r1, =gUnknown_020245B4 movs r2, 0x64 bl link_0800A448 b _080383A6 .pool _08038164: bl sub_800A550 movs r1, 0xF ands r1, r0 cmp r1, 0xF beq _08038172 b _080383F8 _08038172: bl sub_800A5B4 movs r6, 0 lsls r0, r7, 3 subs r0, r7 lsls r0, 2 mov r8, r0 ldr r4, =gUnknown_020223C4 movs r5, 0 _08038184: cmp r6, r7 bne _080381B8 ldr r0, =gUnknown_020229E8 adds r0, r5, r0 ldrh r0, [r0, 0x18] cmp r0, 0x2 bgt _080381A4 cmp r0, 0x1 bge _080381B0 cmp r0, 0 beq _080381A8 b _08038242 .pool _080381A4: cmp r0, 0x3 bne _08038242 _080381A8: ldr r0, =gUnknown_020245B4 b _08038228 .pool _080381B0: ldr r0, =gUnknown_020246E0 b _08038228 .pool _080381B8: ldr r2, =gUnknown_020229E8 adds r0, r5, r2 ldrh r1, [r0, 0x18] movs r3, 0x1 adds r0, r3, 0 ands r0, r1 cmp r0, 0 bne _080381DC mov r1, r8 adds r0, r1, r2 ldrh r1, [r0, 0x18] adds r0, r3, 0 ands r0, r1 cmp r0, 0 beq _080381EA b _08038210 .pool _080381DC: mov r1, r8 adds r0, r1, r2 ldrh r1, [r0, 0x18] adds r0, r3, 0 ands r0, r1 cmp r0, 0 beq _08038210 _080381EA: adds r0, r5, r2 ldrh r0, [r0, 0x18] cmp r0, 0x2 bgt _080381FC cmp r0, 0x1 bge _08038208 cmp r0, 0 beq _08038200 b _08038242 _080381FC: cmp r0, 0x3 bne _08038242 _08038200: ldr r0, =gUnknown_020245B4 b _08038228 .pool _08038208: ldr r0, =gUnknown_020246E0 b _08038228 .pool _08038210: adds r0, r5, r2 ldrh r0, [r0, 0x18] cmp r0, 0x2 bgt _08038222 cmp r0, 0x1 bge _08038238 cmp r0, 0 beq _08038226 b _08038242 _08038222: cmp r0, 0x3 bne _08038242 _08038226: ldr r0, =gUnknown_0202480C _08038228: adds r1, r4, 0 movs r2, 0x64 bl memcpy b _08038242 .pool _08038238: ldr r0, =gUnknown_02024938 adds r1, r4, 0 movs r2, 0x64 bl memcpy _08038242: movs r2, 0x80 lsls r2, 1 adds r4, r2 adds r5, 0x1C adds r6, 0x1 cmp r6, 0x3 ble _08038184 ldr r4, =gPlayerParty 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 r2, 0xC8 lsls r2, 1 adds r0, r4, r2 bl shedinja_something movs r1, 0xFA lsls r1, 1 adds r0, r4, r1 bl shedinja_something ldr r4, =gEnemyParty 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 r2, 0x96 lsls r2, 1 adds r0, r4, r2 bl shedinja_something movs r1, 0xC8 lsls r1, 1 adds r0, r4, r1 bl shedinja_something movs r2, 0xFA lsls r2, 1 adds r0, r4, r2 bl shedinja_something b _080383A6 .pool _080382CC: bl sub_8032768 bl sub_8184E58 ldr r3, =gUnknown_02024332 movs r0, 0 strb r0, [r3, 0x1] strb r0, [r3, 0x2] ldr r0, =gBattleTypeFlags ldr r0, [r0] movs r1, 0x2 ands r0, r1 cmp r0, 0 beq _08038326 movs r6, 0 ldr r0, =gUnknown_020229E8 ldrb r1, [r0] adds r4, r3, 0 adds r2, r0, 0 cmp r1, 0x3 bne _0803830A movs r3, 0xFF _080382F8: adds r2, 0x1C adds r6, 0x1 cmp r6, 0x3 bgt _0803830A ldrh r1, [r2] adds r0, r3, 0 ands r0, r1 cmp r0, 0x3 beq _080382F8 _0803830A: cmp r6, 0x4 bne _08038320 movs r0, 0x8 strb r0, [r4] b _080383F8 .pool _08038320: movs r0, 0xA strb r0, [r4] b _080383F8 _08038326: movs r0, 0xA strb r0, [r3] b _080383F8 _0803832C: bl sub_800A520 lsls r0, 24 cmp r0, 0 beq _080383F8 ldr r0, =gUnknown_0202449C ldr r4, [r0] movs r0, 0xC0 lsls r0, 1 adds r4, r0 ldr r0, =gBattleTypeFlags ldr r0, [r0] str r0, [r4] ldr r0, =gUnknown_0203BD2C ldr r0, [r0] str r0, [r4, 0x4] bl bitmask_all_link_players_but_self lsls r0, 24 lsrs r0, 24 adds r1, r4, 0 movs r2, 0x8 bl link_0800A448 b _080383A6 .pool _0803836C: bl sub_800A550 movs r1, 0xF ands r1, r0 cmp r1, 0xF bne _080383F8 bl sub_800A5B4 movs r2, 0 b _08038386 _08038380: adds r0, r2, 0x1 lsls r0, 24 lsrs r2, r0, 24 _08038386: cmp r2, 0x3 bhi _080383A6 ldr r4, =gUnknown_020223C4 lsls r3, r2, 8 adds r0, r3, r4 ldrh r0, [r0] movs r1, 0x4 ands r0, r1 cmp r0, 0 beq _08038380 adds r1, r4, 0x4 adds r1, r3, r1 ldr r0, =gUnknown_0203BD2C movs r2, 0x4 bl memcpy _080383A6: ldr r1, =gUnknown_02024332 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] b _080383F8 .pool _080383BC: ldr r0, =gUnknown_02024333 adds r1, r0, 0x1 bl battle_load_something lsls r0, 24 cmp r0, 0 beq _080383F8 ldr r2, =gUnknown_03005D00 ldr r1, =gMain ldr r0, [r1] str r0, [r2] ldr r0, =sub_8039EF0 str r0, [r1] ldr r0, =sub_8038420 bl SetMainCallback2 ldr r3, =gBattleTypeFlags ldr r2, [r3] movs r0, 0x2 ands r0, r2 cmp r0, 0 beq _080383F8 ldr r0, =gUnknown_02038BCA movs r4, 0x80 lsls r4, 4 adds r1, r4, 0 strh r1, [r0] movs r0, 0x20 orrs r2, r0 str r2, [r3] _080383F8: add sp, 0x4 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_8037DF4 thumb_func_start sub_8038420 sub_8038420: @ 8038420 push {lr} sub sp, 0x4 bl CallObjectCallbacks bl PrepareSpritesForOamLoad bl RunTextPrinters bl fade_and_return_progress_probably bl RunTasks ldr r0, =gMain ldrh r1, [r0, 0x2C] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _08038482 ldr r0, =gBattleTypeFlags ldr r0, [r0] movs r1, 0x80 lsls r1, 17 ands r0, r1 cmp r0, 0 beq _08038482 bl rfu_lacks_rfufunc lsls r0, 24 cmp r0, 0 beq _08038482 ldr r2, =gUnknown_020375F0 ldr r1, =gUnknown_0202433A movs r0, 0x5 strb r0, [r1] movs r0, 0x5 strh r0, [r2] bl pal_fade_control_reset_maybe movs r0, 0x1 negs r0, r0 movs r1, 0 str r1, [sp] movs r2, 0 movs r3, 0x10 bl pal_fade_maybe ldr r0, =sub_80384E4 bl SetMainCallback2 _08038482: add sp, 0x4 pop {r0} bx r0 .pool thumb_func_end sub_8038420 thumb_func_start sub_803849C sub_803849C: @ 803849C push {lr} ldr r1, =gMain ldr r0, =gUnknown_03005D00 ldr r0, [r0] str r0, [r1] ldr r2, =gUnknown_02039B28 movs r0, 0x3 strb r0, [r2, 0x15] ldr r0, =0x00000439 adds r1, r0 ldrb r2, [r1] movs r0, 0x3 negs r0, r0 ands r0, r2 strb r0, [r1] bl zero_enemy_party_data movs r0, 0x5A bl m4aSongNumStop bl sub_805F094 bl dp11_free bl sub_8057028 pop {r0} bx r0 .pool thumb_func_end sub_803849C thumb_func_start sub_80384E4 sub_80384E4: @ 80384E4 push {lr} bl fade_and_return_progress_probably ldr r0, =gUnknown_02037FD4 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _08038512 ldr r0, =gMPlay_SE1 bl m4aMPlayStop ldr r0, =gMPlay_SE2 bl m4aMPlayStop bl sub_803849C bl FreeAllWindowBuffers ldr r0, =gMain ldr r0, [r0, 0x8] bl SetMainCallback2 _08038512: pop {r0} bx r0 .pool thumb_func_end sub_80384E4 thumb_func_start sub_8038528 sub_8038528: @ 8038528 movs r1, 0 strh r1, [r0, 0x2E] ldr r1, =sub_8038538 str r1, [r0, 0x1C] bx lr .pool thumb_func_end sub_8038528 thumb_func_start sub_8038538 sub_8038538: @ 8038538 push {r4,r5,lr} adds r3, r0, 0 ldr r5, =0x0201c000 movs r0, 0x2E ldrsh r1, [r3, r0] cmp r1, 0x1 beq _0803856C cmp r1, 0x1 bgt _08038554 cmp r1, 0 beq _0803855A b _080385DC .pool _08038554: cmp r1, 0x2 beq _080385C8 b _080385DC _0803855A: ldrh r0, [r3, 0x2E] adds r0, 0x1 strh r0, [r3, 0x2E] strh r1, [r3, 0x30] ldr r0, =0x00000281 strh r0, [r3, 0x32] strh r1, [r3, 0x34] movs r0, 0x1 strh r0, [r3, 0x36] _0803856C: ldrh r0, [r3, 0x36] subs r0, 0x1 strh r0, [r3, 0x36] lsls r0, 16 cmp r0, 0 bne _080385DC 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 _0803859A: strh r4, [r2] strh r4, [r0] adds r0, 0x4 adds r2, 0x4 subs r1, 0x2 cmp r1, 0 bge _0803859A ldrh r0, [r3, 0x34] adds r0, 0x1 strh r0, [r3, 0x34] lsls r0, 16 asrs r0, 16 cmp r0, 0x15 bne _080385DC ldrh r0, [r3, 0x2E] adds r0, 0x1 strh r0, [r3, 0x2E] movs r0, 0x20 strh r0, [r3, 0x30] b _080385DC .pool _080385C8: ldrh r0, [r3, 0x30] subs r0, 0x1 strh r0, [r3, 0x30] lsls r0, 16 asrs r0, 16 cmp r0, 0x14 bne _080385DC ldr r0, =sub_8036760 bl SetMainCallback2 _080385DC: pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_8038538 thumb_func_start LoadTrainerParty LoadTrainerParty: @ 80385E8 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x28 str r0, [sp, 0x10] lsls r1, 16 lsrs r1, 16 str r1, [sp, 0x14] lsls r2, 24 lsrs r2, 24 movs r0, 0 mov r9, r0 movs r0, 0x80 lsls r0, 3 cmp r1, r0 bne _08038610 movs r0, 0 b _080389E2 _08038610: ldr r4, =gBattleTypeFlags ldr r0, [r4] ldr r1, =0x043f0908 ands r0, r1 ldr r1, [sp, 0x14] lsls r1, 2 str r1, [sp, 0x20] cmp r0, 0x8 beq _08038624 b _080389D2 _08038624: cmp r2, 0x1 bne _0803862C bl zero_enemy_party_data _0803862C: ldr r0, [r4] movs r1, 0x80 lsls r1, 8 ands r0, r1 cmp r0, 0 beq _08038668 ldr r0, =gTrainers ldr r2, [sp, 0x20] ldr r3, [sp, 0x14] adds r1, r2, r3 lsls r1, 3 adds r1, r0 adds r2, r1, 0 adds r2, 0x20 ldrb r1, [r2] movs r4, 0x3 str r4, [sp, 0x1C] adds r4, r0, 0 cmp r1, 0x3 bhi _0803867C adds r2, r1, 0 str r2, [sp, 0x1C] b _0803867C .pool _08038668: ldr r1, =gTrainers ldr r2, [sp, 0x20] ldr r3, [sp, 0x14] adds r0, r2, r3 lsls r0, 3 adds r0, r1 adds r0, 0x20 ldrb r0, [r0] str r0, [sp, 0x1C] adds r4, r1, 0 _0803867C: movs r0, 0 str r0, [sp, 0x18] b _080389B4 .pool _08038688: ldr r2, [sp, 0x20] ldr r3, [sp, 0x14] adds r0, r2, r3 lsls r0, 3 adds r1, r0, r4 ldrb r0, [r1, 0x18] cmp r0, 0x1 bne _0803869E movs r0, 0x80 mov r10, r0 b _080386B0 _0803869E: ldrb r1, [r1, 0x2] movs r0, 0x80 ands r0, r1 movs r1, 0x88 mov r10, r1 cmp r0, 0 beq _080386B0 movs r2, 0x78 mov r10, r2 _080386B0: movs r6, 0 ldr r2, [sp, 0x20] ldr r3, [sp, 0x14] adds r0, r2, r3 lsls r0, 3 adds r1, r4, 0x4 adds r0, r1 ldrb r0, [r0] ldr r3, [sp, 0x18] adds r3, 0x1 str r3, [sp, 0x24] cmp r0, 0xFF beq _080386E6 adds r3, r1, 0 _080386CC: 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 _080386CC _080386E6: ldr r1, [sp, 0x20] ldr r2, [sp, 0x14] adds r0, r1, r2 lsls r1, r0, 3 adds r0, r1, r4 ldrb r0, [r0] cmp r0, 0x1 beq _08038794 cmp r0, 0x1 bgt _08038700 cmp r0, 0 beq _0803870E b _080389AC _08038700: cmp r0, 0x2 bne _08038706 b _08038854 _08038706: cmp r0, 0x3 bne _0803870C b _080388E8 _0803870C: b _080389AC _0803870E: adds r0, r4, 0 adds r0, 0x24 adds r0, r1, r0 ldr r4, [r0] movs r6, 0 ldr r3, [sp, 0x18] lsls r2, r3, 3 adds r0, r2, r4 ldrh r1, [r0, 0x4] movs r0, 0xB muls r0, r1 ldr r1, =gSpeciesNames adds r0, r1 ldrb r0, [r0] adds r5, r2, 0 cmp r0, 0xFF beq _08038750 adds r3, r1, 0 movs r7, 0xB _08038734: 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 _08038734 _08038750: 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 _080389AC .pool _08038794: 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, =gSpeciesNames adds r0, r1 ldrb r0, [r0] mov r8, r2 cmp r0, 0xFF beq _080387D6 adds r3, r1, 0 movs r4, 0xB _080387BA: 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 _080387BA _080387D6: 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 _08038820: 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, =gBattleMoves + 0x4 @ PP offset adds r2, r0 adds r0, r5, 0 bl pokemon_setattr adds r4, 0x2 adds r6, 0x1 cmp r6, 0x3 ble _08038820 b _080389AC .pool _08038854: adds r0, r4, 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, =gSpeciesNames adds r0, r1 ldrb r0, [r0] adds r5, r2, 0 cmp r0, 0xFF beq _08038896 adds r3, r1, 0 movs r7, 0xB _0803887A: 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 _0803887A _08038896: 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 _080389AC .pool _080388E8: 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, =gSpeciesNames adds r0, r1 ldrb r0, [r0] mov r8, r2 cmp r0, 0xFF beq _0803892A adds r3, r1, 0 movs r4, 0xB _0803890E: 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 _0803890E _0803892A: 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 _08038982: 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, =gBattleMoves + 0x4 @ PP offset adds r2, r0 adds r0, r5, 0 bl pokemon_setattr adds r4, 0x2 adds r6, 0x1 cmp r6, 0x3 ble _08038982 _080389AC: ldr r4, [sp, 0x24] str r4, [sp, 0x18] ldr r4, =gTrainers ldr r0, [sp, 0x18] _080389B4: ldr r1, [sp, 0x1C] cmp r0, r1 bge _080389BC b _08038688 _080389BC: ldr r2, =gBattleTypeFlags ldr r1, =gTrainers ldr r3, [sp, 0x20] ldr r4, [sp, 0x14] adds r0, r3, r4 lsls r0, 3 adds r0, r1 ldrb r1, [r0, 0x18] ldr r0, [r2] orrs r0, r1 str r0, [r2] _080389D2: ldr r0, =gTrainers ldr r2, [sp, 0x20] ldr r3, [sp, 0x14] adds r1, r2, r3 lsls r1, 3 adds r1, r0 adds r1, 0x20 ldrb r0, [r1] _080389E2: add sp, 0x28 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 .pool thumb_func_end LoadTrainerParty thumb_func_start sub_8038A04 sub_8038A04: @ 8038A04 push {lr} ldr r0, =0x04000006 ldrh r0, [r0] subs r0, 0x6F lsls r0, 16 lsrs r0, 16 cmp r0, 0x30 bhi _08038A1E movs r1, 0x98 lsls r1, 8 movs r0, 0x8 bl SetGpuReg _08038A1E: pop {r0} bx r0 .pool thumb_func_end sub_8038A04 thumb_func_start vblank_cb_08078BB4 vblank_cb_08078BB4: @ 8038A28 push {lr} ldr r0, =gBattleTypeFlags ldr r0, [r0] ldr r1, =0x013f0102 ands r0, r1 cmp r0, 0 bne _08038A3A bl Random _08038A3A: ldr r0, =gUnknown_02022E14 ldrh r1, [r0] movs r0, 0x10 bl SetGpuReg ldr r0, =gUnknown_02022E16 ldrh r1, [r0] movs r0, 0x12 bl SetGpuReg ldr r0, =gUnknown_02022E18 ldrh r1, [r0] movs r0, 0x14 bl SetGpuReg ldr r0, =gUnknown_02022E1A ldrh r1, [r0] movs r0, 0x16 bl SetGpuReg ldr r0, =gUnknown_02022E1C ldrh r1, [r0] movs r0, 0x18 bl SetGpuReg ldr r0, =gUnknown_02022E1E ldrh r1, [r0] movs r0, 0x1A bl SetGpuReg ldr r0, =gUnknown_02022E20 ldrh r1, [r0] movs r0, 0x1C bl SetGpuReg ldr r0, =gUnknown_02022E22 ldrh r1, [r0] movs r0, 0x1E bl SetGpuReg ldr r0, =gUnknown_02022E24 ldrh r1, [r0] movs r0, 0x40 bl SetGpuReg ldr r0, =gUnknown_02022E26 ldrh r1, [r0] movs r0, 0x44 bl SetGpuReg ldr r0, =gUnknown_02022E28 ldrh r1, [r0] movs r0, 0x42 bl SetGpuReg ldr r0, =gUnknown_02022E2A ldrh r1, [r0] movs r0, 0x46 bl SetGpuReg bl LoadOamFromSprites bl ProcessObjectCopyRequests bl copy_pal_bg_faded_to_pal_ram bl sub_80BA0A8 pop {r0} bx r0 .pool thumb_func_end vblank_cb_08078BB4 thumb_func_start nullsub_17 nullsub_17: @ 8038B00 bx lr thumb_func_end nullsub_17 thumb_func_start sub_8038B04 sub_8038B04: @ 8038B04 push {r4,r5,lr} adds r5, r0, 0 movs r1, 0x2E ldrsh r0, [r5, r1] cmp r0, 0 beq _08038B24 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 _08038B36 _08038B24: 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] _08038B36: 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 _08038B6A ldr r4, =0x00002710 adds r0, r4, 0 bl FreeObjectTilesByTag adds r0, r4, 0 bl FreeObjectPaletteByTag adds r0, r5, 0 bl obj_free_rotscale_entry adds r0, r5, 0 bl RemoveObjectAndFreeTiles _08038B6A: pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_8038B04 thumb_func_start sub_8038B74 sub_8038B74: @ 8038B74 push {r4,lr} adds r4, r0, 0 movs r1, 0x1 bl StartObjectRotScalAnim ldr r0, =sub_8038B04 str r0, [r4, 0x1C] movs r0, 0x68 bl audio_play pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_8038B74 thumb_func_start sub_8038B94 sub_8038B94: @ 8038B94 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, =gUnknown_02024474 adds r0, 0x25 ldrb r2, [r0] ldr r0, =gBattleTypeFlags ldr r0, [r0] movs r1, 0x40 ands r0, r1 cmp r0, 0 beq _08038C04 ldr r1, =gUnknown_020229E8 lsls r0, r2, 3 subs r0, r2 lsls r0, 2 adds r0, r1 ldrh r0, [r0, 0x18] cmp r0, 0x1 beq _08038BF0 cmp r0, 0x1 bgt _08038BE8 cmp r0, 0 beq _08038C04 b _08038C0C .pool _08038BE8: cmp r0, 0x2 beq _08038C04 cmp r0, 0x3 bne _08038C0C _08038BF0: ldr r0, =gEnemyParty str r0, [sp, 0x4] ldr r1, =gPlayerParty str r1, [sp, 0x8] b _08038C0C .pool _08038C04: ldr r2, =gPlayerParty str r2, [sp, 0x4] ldr r3, =gEnemyParty str r3, [sp, 0x8] _08038C0C: movs r7, 0 movs r0, 0 mov r8, r0 ldr r1, [sp] lsls r1, 2 str r1, [sp, 0xC] movs r2, 0xCE lsls r2, 1 mov r10, r2 mov r9, r0 _08038C20: movs r0, 0x64 mov r4, r8 muls r4, r0 ldr r3, [sp, 0x4] adds r4, r3, r4 adds r0, r4, 0 movs r1, 0x41 bl GetMonData lsls r0, 16 lsrs r5, r0, 16 adds r0, r4, 0 movs r1, 0x39 bl GetMonData lsls r0, 16 lsrs r6, r0, 16 adds r0, r4, 0 movs r1, 0x37 bl GetMonData adds r1, r0, 0 cmp r5, 0 beq _08038C90 cmp r5, r10 beq _08038C64 cmp r6, 0 beq _08038C64 cmp r1, 0 bne _08038C64 movs r0, 0x1 mov r2, r9 lsls r0, r2 orrs r7, r0 _08038C64: cmp r5, 0 beq _08038C90 cmp r6, 0 beq _08038C7C cmp r5, r10 beq _08038C74 cmp r1, 0 beq _08038C7C _08038C74: movs r0, 0x2 mov r3, r9 lsls r0, r3 orrs r7, r0 _08038C7C: cmp r5, 0 beq _08038C90 cmp r5, r10 beq _08038C90 cmp r6, 0 bne _08038C90 movs r0, 0x3 mov r1, r9 lsls r0, r1 orrs r7, r0 _08038C90: movs r2, 0x2 add r9, r2 movs r3, 0x1 add r8, r3 mov r0, r8 cmp r0, 0x5 ble _08038C20 ldr r1, =gTasks 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 _08038CBA: 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 GetMonData lsls r0, 16 lsrs r5, r0, 16 adds r0, r4, 0 movs r1, 0x39 bl GetMonData lsls r0, 16 lsrs r6, r0, 16 adds r0, r4, 0 movs r1, 0x37 bl GetMonData adds r1, r0, 0 cmp r5, 0 beq _08038D2A cmp r5, r10 beq _08038CFE cmp r6, 0 beq _08038CFE cmp r1, 0 bne _08038CFE movs r0, 0x1 mov r3, r9 lsls r0, r3 orrs r7, r0 _08038CFE: cmp r5, 0 beq _08038D2A cmp r6, 0 beq _08038D16 cmp r5, r10 beq _08038D0E cmp r1, 0 beq _08038D16 _08038D0E: movs r0, 0x2 mov r1, r9 lsls r0, r1 orrs r7, r0 _08038D16: cmp r5, 0 beq _08038D2A cmp r5, r10 beq _08038D2A cmp r6, 0 bne _08038D2A movs r0, 0x3 mov r2, r9 lsls r0, r2 orrs r7, r0 _08038D2A: movs r3, 0x2 add r9, r3 movs r0, 0x1 add r8, r0 mov r1, r8 cmp r1, 0x5 ble _08038CBA ldr r1, =gTasks 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 .pool thumb_func_end sub_8038B94 thumb_func_start sub_8038D64 sub_8038D64: @ 8038D64 push {r4,lr} sub sp, 0x4 movs r0, 0 bl SetHBlankCallback movs r0, 0 bl SetVBlankCallback ldr r0, =gBattleTypeFlags ldr r1, [r0] movs r2, 0x21 negs r2, r2 ands r1, r2 str r1, [r0] ldr r0, =0x003f0100 ands r0, r1 cmp r0, 0 beq _08038DAC ldr r0, =gMain ldr r0, [r0, 0x8] bl SetMainCallback2 bl sub_8057028 bl dp11_free bl sub_805F094 b _08038EB6 .pool _08038DAC: str r0, [sp] movs r1, 0xC0 lsls r1, 19 ldr r2, =0x05006000 mov r0, sp bl CpuSet movs r0, 0x4C movs r1, 0 bl SetGpuReg movs r0, 0x40 movs r1, 0xF0 bl SetGpuReg ldr r4, =0x00005051 movs r0, 0x44 adds r1, r4, 0 bl SetGpuReg movs r0, 0x48 movs r1, 0 bl SetGpuReg movs r0, 0x4A movs r1, 0 bl SetGpuReg ldr r1, =gUnknown_02022E24 movs r0, 0xF0 strh r0, [r1] ldr r0, =gUnknown_02022E26 strh r4, [r0] bl dp12_8087EA4 ldr r0, =gUnknown_02038C28 movs r3, 0xF0 movs r1, 0xF0 lsls r1, 3 adds r2, r0, r1 movs r1, 0x4F _08038DFE: strh r3, [r0] strh r3, [r2] adds r2, 0x2 adds r0, 0x2 subs r1, 0x1 cmp r1, 0 bge _08038DFE movs r1, 0x50 ldr r0, =gUnknown_02038C28 ldr r3, =0x0000ff10 movs r4, 0x82 lsls r4, 4 adds r2, r0, r4 adds r0, 0xA0 _08038E1A: strh r3, [r0] strh r3, [r2] adds r2, 0x2 adds r0, 0x2 adds r1, 0x1 cmp r1, 0x9F ble _08038E1A bl sub_80A1A74 ldr r0, =gUnknown_02022E14 movs r4, 0 strh r4, [r0] ldr r0, =gUnknown_02022E16 strh r4, [r0] ldr r0, =gUnknown_02022E18 strh r4, [r0] ldr r0, =gUnknown_02022E1A strh r4, [r0] ldr r0, =gUnknown_02022E1C strh r4, [r0] ldr r0, =gUnknown_02022E1E strh r4, [r0] ldr r0, =gUnknown_02022E20 strh r4, [r0] ldr r0, =gUnknown_02022E22 strh r4, [r0] bl c2_berry_program_update_menu ldr r0, =gUnknown_08C004E0 movs r1, 0 movs r2, 0x40 bl decompress_palette bl sub_803570C bl ResetAllObjectData bl ResetTasks bl sub_8036154 movs r0, 0x4A movs r1, 0x37 bl SetGpuReg bl ResetObjectPaletteAllocator ldr r1, =gUnknown_0300301C movs r0, 0x4 strb r0, [r1] ldr r0, =vblank_cb_08078BB4 bl SetVBlankCallback ldr r0, =task00_0800F6FC movs r1, 0 bl CreateTask lsls r0, 24 lsrs r0, 24 ldr r2, =gTasks 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_8038B94 ldr r0, =sub_8038F14 bl SetMainCallback2 ldr r0, =gUnknown_02024332 strb r4, [r0] _08038EB6: add sp, 0x4 pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_8038D64 thumb_func_start sub_8038F14 sub_8038F14: @ 8038F14 push {lr} bl sub_8038F34 bl CallObjectCallbacks bl PrepareSpritesForOamLoad bl RunTextPrinters bl fade_and_return_progress_probably bl RunTasks pop {r0} bx r0 thumb_func_end sub_8038F14 thumb_func_start sub_8038F34 sub_8038F34: @ 8038F34 push {r4-r6,lr} sub sp, 0x8 ldr r0, =gUnknown_02024332 ldrb r1, [r0] adds r4, r0, 0 cmp r1, 0x9 bls _08038F44 b _080391C6 _08038F44: lsls r0, r1, 2 ldr r1, =_08038F58 adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _08038F58: .4byte _08038F80 .4byte _08038FA0 .4byte _08038FC2 .4byte _080390C8 .4byte _08039100 .4byte _08039118 .4byte _0803912C .4byte _0803914C .4byte _08039166 .4byte _08039184 _08038F80: movs r0, 0 bl ShowBg movs r0, 0x1 bl ShowBg movs r0, 0x2 bl ShowBg ldr r1, =gUnknown_02024332 movs r0, 0xFF strb r0, [r1, 0x1] b _08039174 .pool _08038FA0: ldrb r0, [r4, 0x1] subs r0, 0x1 strb r0, [r4, 0x1] lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0 beq _08038FB0 b _080391C6 _08038FB0: movs r0, 0x1 negs r0, r0 str r1, [sp] movs r1, 0 movs r2, 0 movs r3, 0x10 bl pal_fade_maybe b _0803910C _08038FC2: ldr r0, =gUnknown_02037FD4 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _08038FD0 b _080391C6 _08038FD0: bl sub_8185FAC ldr r2, =gMain ldr r1, =0x00000439 adds r2, r1 movs r1, 0x1 ands r1, r0 lsls r1, 2 ldrb r3, [r2] movs r0, 0x5 negs r0, r0 ands r0, r3 orrs r0, r1 strb r0, [r2] ldr r0, =gBattleTypeFlags ldr r0, [r0] movs r1, 0x40 ands r0, r1 movs r3, 0x2 cmp r0, 0 beq _08038FFC movs r3, 0x4 _08038FFC: movs r4, 0 ldr r6, =gSaveBlock2Ptr cmp r4, r3 bge _08039022 ldr r1, =gUnknown_020229E8 ldrb r0, [r1] cmp r0, 0x3 bne _08039022 movs r5, 0xFF adds r2, r1, 0 _08039010: adds r2, 0x1C adds r4, 0x1 cmp r4, r3 bge _08039022 ldrh r1, [r2] adds r0, r5, 0 ands r0, r1 cmp r0, 0x3 beq _08039010 _08039022: ldr r0, [r6] ldr r1, =0x00000ca9 adds r0, r1 ldrb r1, [r0] movs r0, 0x8 ands r0, r1 cmp r0, 0 bne _080390AC cmp r4, r3 bne _080390AC ldr r0, =0x000008d2 bl FlagGet lsls r0, 24 cmp r0, 0 beq _08039074 bl FreeAllWindowBuffers ldr r0, =sub_80392A8 bl SetMainCallback2 b _080391C6 .pool _08039074: ldr r2, =gMain ldr r1, =0x00000439 adds r0, r2, r1 ldrb r1, [r0] movs r0, 0x4 ands r0, r1 cmp r0, 0 bne _08039090 ldr r0, [r2, 0x8] b _080390B0 .pool _08039090: ldr r0, =gUnknown_03003124 ldrb r0, [r0] cmp r0, 0 bne _08039172 ldr r0, =sub_80B3AF8 movs r1, 0x5 bl CreateTask b _08039172 .pool _080390AC: ldr r0, =gMain ldr r0, [r0, 0x8] _080390B0: bl SetMainCallback2 bl sub_8057028 bl dp11_free bl sub_805F094 b _080391C6 .pool _080390C8: movs r0, 0 str r0, [sp, 0x4] movs r1, 0xC0 lsls r1, 19 ldr r2, =0x05006000 add r0, sp, 0x4 bl CpuSet movs r4, 0 _080390DA: lsls r0, r4, 24 lsrs r0, 24 bl sub_80363C4 adds r4, 0x1 cmp r4, 0x1 ble _080390DA movs r0, 0x1 negs r0, r0 movs r1, 0 str r1, [sp] movs r2, 0x10 movs r3, 0 bl pal_fade_maybe b _08039172 .pool _08039100: ldr r0, =gUnknown_02037FD4 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _080391C6 _0803910C: ldrb r0, [r4] adds r0, 0x1 strb r0, [r4] b _080391C6 .pool _08039118: ldr r0, =sub_80B3AF8 bl FuncIsActiveTask lsls r0, 24 cmp r0, 0 bne _080391C6 b _08039172 .pool _0803912C: bl sub_800A520 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080391C6 bl sub_800ADF8 ldr r0, =gUnknown_0824978D movs r1, 0 bl battle_show_message_maybe b _08039172 .pool _0803914C: movs r0, 0 bl IsTextPrinterActive lsls r0, 16 cmp r0, 0 bne _080391C6 bl sub_800A520 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080391C6 b _08039172 _08039166: ldr r0, =gLinkVSyncDisabled ldrb r0, [r0] cmp r0, 0 bne _08039172 bl sub_800AC34 _08039172: ldr r1, =gUnknown_02024332 _08039174: ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] b _080391C6 .pool _08039184: ldr r2, =gMain ldr r1, =0x00000439 adds r0, r2, r1 ldrb r1, [r0] movs r0, 0x4 ands r0, r1 adds r3, r2, 0 cmp r0, 0 beq _080391A6 ldr r0, =gLinkVSyncDisabled ldrb r0, [r0] cmp r0, 0 bne _080391A6 ldr r0, =gUnknown_03003124 ldrb r0, [r0] cmp r0, 0x1 beq _080391C6 _080391A6: ldr r0, =0x00000439 adds r2, r3, r0 ldrb r1, [r2] movs r0, 0x5 negs r0, r0 ands r0, r1 strb r0, [r2] ldr r0, [r3, 0x8] bl SetMainCallback2 bl sub_8057028 bl dp11_free bl sub_805F094 _080391C6: add sp, 0x8 pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_8038F34 thumb_func_start sub_80391E0 sub_80391E0: @ 80391E0 push {lr} lsls r0, 24 lsrs r2, r0, 24 lsls r1, 24 lsrs r1, 24 movs r0, 0 cmp r1, 0x6 bhi _080392A0 lsls r0, r1, 2 ldr r1, =_08039200 adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _08039200: .4byte _0803921C .4byte _08039230 .4byte _08039244 .4byte _08039258 .4byte _0803926C .4byte _08039280 .4byte _08039294 _0803921C: ldr r0, =gUnknown_0831AA08 lsls r1, r2, 2 adds r1, r0 ldrb r0, [r1] lsls r0, 30 lsrs r0, 30 b _080392A0 .pool _08039230: ldr r0, =gUnknown_0831AA08 lsls r1, r2, 2 adds r1, r0 ldrb r0, [r1] lsls r0, 28 lsrs r0, 30 b _080392A0 .pool _08039244: ldr r0, =gUnknown_0831AA08 lsls r1, r2, 2 adds r1, r0 ldrh r0, [r1] lsls r0, 23 lsrs r0, 27 b _080392A0 .pool _08039258: ldr r0, =gUnknown_0831AA08 lsls r1, r2, 2 adds r1, r0 ldrb r0, [r1, 0x1] lsls r0, 29 lsrs r0, 30 b _080392A0 .pool _0803926C: ldr r0, =gUnknown_0831AA08 lsls r1, r2, 2 adds r1, r0 ldrb r0, [r1, 0x1] lsls r0, 28 lsrs r0, 31 b _080392A0 .pool _08039280: ldr r0, =gUnknown_0831AA08 lsls r1, r2, 2 adds r1, r0 ldrb r0, [r1, 0x1] lsls r0, 26 lsrs r0, 30 b _080392A0 .pool _08039294: ldr r0, =gUnknown_0831AA08 lsls r1, r2, 2 adds r1, r0 ldr r0, [r1] lsls r0, 8 lsrs r0, 22 _080392A0: pop {r1} bx r1 .pool thumb_func_end sub_80391E0 thumb_func_start sub_80392A8 sub_80392A8: @ 80392A8 push {r4,lr} sub sp, 0x8 movs r0, 0 bl SetHBlankCallback movs r0, 0 bl SetVBlankCallback movs r4, 0 str r4, [sp, 0x4] movs r1, 0xC0 lsls r1, 19 ldr r2, =0x05006000 add r0, sp, 0x4 bl CpuSet bl sub_80A1A74 ldr r0, =gUnknown_02022E14 strh r4, [r0] ldr r0, =gUnknown_02022E16 strh r4, [r0] ldr r0, =gUnknown_02022E18 strh r4, [r0] ldr r0, =gUnknown_02022E1A strh r4, [r0] ldr r0, =gUnknown_02022E1C strh r4, [r0] ldr r0, =gUnknown_02022E1E strh r4, [r0] ldr r0, =gUnknown_02022E20 strh r4, [r0] ldr r0, =gUnknown_02022E22 strh r4, [r0] bl c2_berry_program_update_menu movs r1, 0x82 lsls r1, 5 movs r0, 0 bl SetGpuReg bl sub_803570C _080392FE: lsls r0, r4, 24 lsrs r0, 24 bl sub_80363C4 adds r4, 0x1 cmp r4, 0x1 ble _080392FE bl ResetAllObjectData bl ResetTasks bl ResetObjectPaletteAllocator ldr r1, =gUnknown_0300301C movs r0, 0x4 strb r0, [r1] ldr r0, =vblank_cb_08078BB4 bl SetVBlankCallback ldr r0, =sub_803937C bl SetMainCallback2 movs r0, 0x1 negs r0, r0 movs r4, 0 str r4, [sp] movs r1, 0 movs r2, 0x10 movs r3, 0 bl pal_fade_maybe ldr r0, =gUnknown_02024332 strb r4, [r0] add sp, 0x8 pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_80392A8 thumb_func_start sub_803937C sub_803937C: @ 803937C push {lr} bl sub_803939C bl CallObjectCallbacks bl PrepareSpritesForOamLoad bl RunTextPrinters bl fade_and_return_progress_probably bl RunTasks pop {r0} bx r0 thumb_func_end sub_803937C thumb_func_start sub_803939C sub_803939C: @ 803939C push {r4,r5,lr} sub sp, 0x4 ldr r0, =gUnknown_02024332 ldrb r1, [r0] adds r4, r0, 0 cmp r1, 0xC bls _080393AC b _0803975E _080393AC: lsls r0, r1, 2 ldr r1, =_080393C0 adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _080393C0: .4byte _080393F4 .4byte _08039414 .4byte _08039450 .4byte _08039470 .4byte _0803949C .4byte _080394D8 .4byte _0803957C .4byte _08039704 .4byte _080395CC .4byte _08039610 .4byte _08039678 .4byte _080396A8 .4byte _08039704 _080393F4: movs r0, 0 bl ShowBg movs r0, 0x1 bl ShowBg movs r0, 0x2 bl ShowBg ldr r1, =gUnknown_02024332 ldrb r0, [r1] adds r0, 0x1 b _0803975C .pool _08039414: ldr r0, =gMain ldr r1, =0x00000439 adds r0, r1 ldrb r1, [r0] movs r0, 0x4 ands r0, r1 cmp r0, 0 beq _08039434 ldr r0, =gUnknown_03003124 ldrb r0, [r0] cmp r0, 0 bne _08039434 ldr r0, =sub_80B3AF8 movs r1, 0x5 bl CreateTask _08039434: ldr r1, =gUnknown_02024332 ldrb r0, [r1] adds r0, 0x1 b _0803975C .pool _08039450: ldr r0, =sub_80B3AF8 bl FuncIsActiveTask lsls r0, 24 cmp r0, 0 beq _0803945E b _0803975E _0803945E: ldr r1, =gUnknown_02024332 ldrb r0, [r1] adds r0, 0x1 b _0803975C .pool _08039470: ldr r0, =gUnknown_02037FD4 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _0803947E b _0803975E _0803947E: ldr r0, =gUnknown_085CD28F movs r1, 0 bl battle_show_message_maybe ldr r1, =gUnknown_02024332 ldrb r0, [r1] adds r0, 0x1 b _0803975C .pool _0803949C: movs r0, 0 bl IsTextPrinterActive lsls r0, 16 lsrs r0, 16 cmp r0, 0 beq _080394AC b _0803975E _080394AC: str r0, [sp] movs r0, 0x18 movs r1, 0x8 movs r2, 0x1D movs r3, 0xD bl sub_8056A3C ldr r0, =gUnknown_085CCABB movs r1, 0xC bl battle_show_message_maybe ldr r4, =gUnknown_02024332 movs r0, 0x1 strb r0, [r4, 0x1] bl sub_8056B74 b _080396EA .pool _080394D8: ldr r0, =gMain ldrh r1, [r0, 0x2E] movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _08039500 ldrb r0, [r4, 0x1] cmp r0, 0 bne _080394EC b _0803975E _080394EC: movs r0, 0x5 bl audio_play ldrb r0, [r4, 0x1] bl sub_8056BAC movs r0, 0 b _0803951E .pool _08039500: movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _08039526 ldrb r0, [r4, 0x1] cmp r0, 0 beq _08039510 b _0803975E _08039510: movs r0, 0x5 bl audio_play ldrb r0, [r4, 0x1] bl sub_8056BAC movs r0, 0x1 _0803951E: strb r0, [r4, 0x1] bl sub_8056B74 b _0803975E _08039526: movs r5, 0x1 adds r0, r5, 0 ands r0, r1 cmp r0, 0 beq _08039560 movs r0, 0x5 bl audio_play ldr r4, =gUnknown_02024332 ldrb r0, [r4, 0x1] cmp r0, 0 beq _08039540 b _080396EA _08039540: str r5, [sp] movs r0, 0x18 movs r1, 0x8 movs r2, 0x1D movs r3, 0xD bl sub_8056A3C bl sub_8185338 strb r0, [r4, 0x1] movs r0, 0xA strb r0, [r4] b _0803975E .pool _08039560: movs r0, 0x2 ands r0, r1 cmp r0, 0 bne _0803956A b _0803975E _0803956A: movs r0, 0x5 bl audio_play ldr r1, =gUnknown_02024332 ldrb r0, [r1] adds r0, 0x1 b _0803975C .pool _0803957C: bl sub_800A520 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _0803958A b _0803975E _0803958A: str r0, [sp] movs r0, 0x18 movs r1, 0x8 movs r2, 0x1D movs r3, 0xD bl sub_8056A3C ldr r0, =gMain ldr r1, =0x00000439 adds r0, r1 ldrb r1, [r0] movs r0, 0x4 ands r0, r1 cmp r0, 0 beq _080395B4 bl sub_800ADF8 ldr r0, =gUnknown_0824978D movs r1, 0 bl battle_show_message_maybe _080395B4: ldr r1, =gUnknown_02024332 ldrb r0, [r1] adds r0, 0x1 b _0803975C .pool _080395CC: ldrb r0, [r4, 0x1] subs r0, 0x1 strb r0, [r4, 0x1] lsls r0, 24 cmp r0, 0 beq _080395DA b _0803975E _080395DA: ldr r0, =gMain ldr r1, =0x00000439 adds r0, r1 ldrb r1, [r0] movs r0, 0x4 ands r0, r1 cmp r0, 0 beq _080395F6 ldr r0, =gLinkVSyncDisabled ldrb r0, [r0] cmp r0, 0 bne _080395F6 bl sub_800AC34 _080395F6: ldr r1, =gUnknown_02024332 ldrb r0, [r1] adds r0, 0x1 b _0803975C .pool _08039610: ldr r2, =gMain ldr r1, =0x00000439 adds r0, r2, r1 ldrb r1, [r0] movs r0, 0x4 ands r0, r1 adds r3, r2, 0 cmp r0, 0 beq _08039634 ldr r0, =gLinkVSyncDisabled ldrb r0, [r0] cmp r0, 0 bne _08039634 ldr r0, =gUnknown_03003124 ldrb r0, [r0] cmp r0, 0x1 bne _08039634 b _0803975E _08039634: ldr r0, =0x00000439 adds r2, r3, r0 ldrb r1, [r2] movs r0, 0x5 negs r0, r0 ands r0, r1 strb r0, [r2] ldr r0, =gUnknown_02037FD4 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _08039650 b _0803975E _08039650: ldr r0, [r3, 0x8] bl SetMainCallback2 bl sub_8057028 bl dp11_free bl sub_805F094 b _0803975E .pool _08039678: ldrb r0, [r4, 0x1] cmp r0, 0x1 bne _080396A0 movs r0, 0x37 bl audio_play ldr r0, =gUnknown_085CD2CB _08039686: bl get_battle_strings_ ldr r0, =gUnknown_02022E2C movs r1, 0 bl battle_show_message_maybe movs r0, 0x80 strb r0, [r4, 0x1] b _080396EA .pool _080396A0: ldr r0, =gUnknown_08242481 b _08039686 .pool _080396A8: bl sub_800A520 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _0803975E movs r0, 0 bl IsTextPrinterActive lsls r0, 16 cmp r0, 0 bne _0803975E ldr r4, =gUnknown_02024332 ldrb r0, [r4, 0x1] subs r0, 0x1 strb r0, [r4, 0x1] lsls r0, 24 cmp r0, 0 bne _0803975E ldr r0, =gMain ldr r1, =0x00000439 adds r0, r1 ldrb r1, [r0] movs r0, 0x4 ands r0, r1 cmp r0, 0 beq _080396EA bl sub_800ADF8 ldr r0, =gUnknown_0824978D movs r1, 0 bl battle_show_message_maybe _080396EA: ldrb r0, [r4] adds r0, 0x1 strb r0, [r4] b _0803975E .pool _08039704: movs r0, 0 bl IsTextPrinterActive lsls r0, 16 lsrs r4, r0, 16 cmp r4, 0 bne _0803975E ldr r0, =gMain ldr r1, =0x00000439 adds r0, r1 ldrb r1, [r0] movs r0, 0x4 ands r0, r1 lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0 beq _08039744 bl sub_800A520 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _0803975E movs r0, 0x1 negs r0, r0 str r4, [sp] b _0803974A .pool _08039744: movs r0, 0x1 negs r0, r0 str r1, [sp] _0803974A: movs r1, 0 movs r2, 0 movs r3, 0x10 bl pal_fade_maybe ldr r1, =gUnknown_02024332 movs r0, 0x20 strb r0, [r1, 0x1] movs r0, 0x8 _0803975C: strb r0, [r1] _0803975E: add sp, 0x4 pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_803939C thumb_func_start shedinja_something shedinja_something: @ 803976C 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 GetMonData ldr r1, =0x0000012f cmp r0, r1 bne _080397B4 adds r0, r4, 0 movs r1, 0x3 bl GetMonData ldrb r1, [r5] cmp r0, r1 beq _080397B4 adds r0, r4, 0 movs r1, 0x2 mov r2, sp bl GetMonData ldr r1, =gUnknown_0831ACA0 mov r0, sp bl StringCompareWithoutExtCtrlCodes cmp r0, 0 bne _080397B4 adds r0, r4, 0 movs r1, 0x3 adds r2, r5, 0 bl pokemon_setattr _080397B4: add sp, 0x10 pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end shedinja_something thumb_func_start sub_80397C4 sub_80397C4: @ 80397C4 ldr r2, =gUnknown_0831ABA0 lsls r0, 2 adds r0, r2 ldr r0, [r0] lsls r1, 3 adds r1, r0 ldrb r0, [r1, 0x3] lsls r0, 3 bx lr .pool thumb_func_end sub_80397C4 thumb_func_start oac_poke_opponent oac_poke_opponent: @ 80397DC push {lr} sub sp, 0x4 ldr r1, =sub_803980C str r1, [r0, 0x1C] movs r1, 0 bl StartObjectImageAnimIfDifferent movs r0, 0x80 lsls r0, 10 ldr r1, =0x00002108 str r1, [sp] movs r1, 0 movs r2, 0xA movs r3, 0xA bl pal_fade_maybe add sp, 0x4 pop {r0} bx r0 .pool thumb_func_end oac_poke_opponent thumb_func_start sub_803980C sub_803980C: @ 803980C push {lr} adds r2, r0, 0 ldr r0, =gUnknown_020243FC ldrh r1, [r0] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _0803982C ldrh r0, [r2, 0x24] adds r0, 0x2 strh r0, [r2, 0x24] lsls r0, 16 cmp r0, 0 bne _0803982C ldr r0, =sub_8039838 str r0, [r2, 0x1C] _0803982C: pop {r0} bx r0 .pool thumb_func_end sub_803980C thumb_func_start sub_8039838 sub_8039838: @ 8039838 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 _08039880 ldrh r0, [r4, 0x2E] lsls r0, 24 lsrs r0, 24 bl sub_8076918 ldr r1, =gUnknown_03005D70 movs r2, 0x2E ldrsh r0, [r4, r2] adds r0, r1 ldrb r0, [r0] bl sub_80729D0 ldr r0, =sub_8039894 str r0, [r4, 0x1C] adds r0, r4, 0 movs r1, 0 bl StartObjectImageAnimIfDifferent movs r0, 0x80 lsls r0, 10 ldr r1, =0x00002108 str r1, [sp] movs r1, 0 movs r2, 0xA movs r3, 0 bl pal_fade_maybe _08039880: add sp, 0x4 pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_8039838 thumb_func_start sub_8039894 sub_8039894: @ 8039894 push {lr} adds r2, r0, 0 ldr r0, =gUnknown_02037FD4 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _080398B0 ldrh r1, [r2, 0x32] adds r0, r2, 0 movs r2, 0 movs r3, 0x1 bl sub_806ECEC _080398B0: pop {r0} bx r0 .pool thumb_func_end sub_8039894 thumb_func_start nullsub_18 nullsub_18: @ 80398B8 bx lr thumb_func_end nullsub_18 thumb_func_start sub_80398BC sub_80398BC: @ 80398BC movs r1, 0x6 strh r1, [r0, 0x34] movs r1, 0x1 strh r1, [r0, 0x36] ldr r1, =sub_80398D0 str r1, [r0, 0x1C] bx lr .pool thumb_func_end sub_80398BC thumb_func_start sub_80398D0 sub_80398D0: @ 80398D0 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 _08039924 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 _08039924 ldrb r1, [r1] adds r0, r4, 0 ands r0, r1 mov r1, r12 strb r0, [r1] ldr r0, =nullsub_18 str r0, [r3, 0x1C] ldr r0, =gUnknown_02022F88 str r2, [r0] _08039924: pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_80398D0 thumb_func_start sub_8039934 sub_8039934: @ 8039934 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 ldr r0, =gUnknown_020244D0 ldr r0, [r0] ldr r1, [r0] lsls r0, r6, 2 adds r1, r0, r1 ldrh r0, [r1, 0x2] cmp r0, 0 beq _0803995C adds r4, r0, 0 b _08039960 .pool _0803995C: mov r0, r9 ldrh r4, [r0, 0x32] _08039960: ldr r1, =gUnknown_0202406E 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, =gEnemyParty adds r0, r7 movs r1, 0 bl GetMonData cmp r4, 0xC9 bne _080399E4 ldrh r0, [r5] mov r1, r8 muls r1, r0 adds r0, r1, 0 adds r0, r7 movs r1, 0 bl GetMonData 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 _080399D0 movs r0, 0xC9 b _080399DA .pool _080399D0: movs r1, 0xCE lsls r1, 1 adds r0, r1 lsls r0, 16 lsrs r0, 16 _080399DA: ldr r1, =gUnknown_08300D38 lsls r0, 2 b _08039A1C .pool _080399E4: ldr r0, =0x00000181 cmp r4, r0 bne _08039A08 ldr r0, =gUnknown_08525F78 ldr r1, =gUnknown_020244E4 adds r1, r6, r1 ldrb r1, [r1] lsls r1, 2 adds r1, r0 ldrb r0, [r1, 0x1] b _08039A20 .pool _08039A08: movs r0, 0xCE lsls r0, 1 cmp r4, r0 bls _08039A18 ldr r0, =gUnknown_08300D38 b _08039A1E .pool _08039A18: ldr r1, =gUnknown_08300D38 lsls r0, r4, 2 _08039A1C: adds r0, r1 _08039A1E: ldrb r0, [r0, 0x1] _08039A20: 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, =sub_8039A48 str r0, [r1, 0x1C] pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_8039934 thumb_func_start sub_8039A48 sub_8039A48: @ 8039A48 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 _08039AC8 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 _08039A7C adds r0, r4, 0 bl obj_free_rotscale_entry adds r0, r4, 0 bl RemoveObjectAndFreeTiles b _08039AC8 _08039A7C: ldrh r0, [r4, 0x2E] lsls r0, 24 lsrs r0, 24 bl battle_get_per_side_status ldr r1, =gUnknown_020244D4 ldr r1, [r1] lsls r0, 24 lsrs r0, 22 adds r1, 0x4 adds r1, r0 ldr r2, =gUnknown_020244E4 movs r3, 0x2E ldrsh r0, [r4, r3] adds r0, r2 ldrb r0, [r0] lsls r0, 11 ldr r1, [r1] adds r1, r0 movs r2, 0x34 ldrsh r0, [r4, r2] lsls r0, 8 adds r1, r0 movs r2, 0 movs r0, 0xFF _08039AAE: strb r2, [r1] adds r1, 0x1 subs r0, 0x1 cmp r0, 0 bge _08039AAE ldr r0, =gUnknown_020244E4 movs r3, 0x2E ldrsh r1, [r4, r3] adds r1, r0 ldrb r1, [r1] adds r0, r4, 0 bl StartObjectImageAnim _08039AC8: pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_8039A48 thumb_func_start sub_8039AD8 sub_8039AD8: @ 8039AD8 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, =sub_8039AF4 str r1, [r0, 0x1C] bx lr .pool thumb_func_end sub_8039AD8 thumb_func_start sub_8039AF4 sub_8039AF4: @ 8039AF4 push {lr} adds r3, r0, 0 ldrh r0, [r3, 0x34] subs r0, 0x1 strh r0, [r3, 0x34] lsls r0, 16 cmp r0, 0 bne _08039B26 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] _08039B26: pop {r0} bx r0 thumb_func_end sub_8039AF4 thumb_func_start sub_8039B2C sub_8039B2C: @ 8039B2C 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, =nullsub_18 str r1, [r0, 0x1C] bx lr .pool thumb_func_end sub_8039B2C thumb_func_start sub_8039B58 sub_8039B58: @ 8039B58 push {r4,lr} adds r4, r0, 0 adds r0, 0x3F ldrb r1, [r0] movs r0, 0x20 ands r0, r1 cmp r0, 0 beq _08039BA0 ldr r0, =gUnknown_02024280 ldr r0, [r0] movs r1, 0x80 ands r0, r1 cmp r0, 0 beq _08039B80 ldr r0, =gBattleTypeFlags ldr r0, [r0] ldr r1, =0x02000002 ands r0, r1 cmp r0, 0 beq _08039B94 _08039B80: ldrh r0, [r4, 0x32] bl sub_806F0D4 lsls r0, 24 cmp r0, 0 beq _08039B94 adds r0, r4, 0 movs r1, 0x1 bl StartObjectImageAnim _08039B94: ldrh r1, [r4, 0x32] adds r0, r4, 0 movs r2, 0x1 movs r3, 0x1 bl sub_806ECEC _08039BA0: pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_8039B58 thumb_func_start sub_8039BB4 sub_8039BB4: @ 8039BB4 ldr r1, =oac_poke_ally_ str r1, [r0, 0x1C] bx lr .pool thumb_func_end sub_8039BB4 thumb_func_start oac_poke_ally_ oac_poke_ally_: @ 8039BC0 push {lr} adds r2, r0, 0 ldr r0, =gUnknown_020243FC ldrh r1, [r0] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _08039BE4 ldrh r0, [r2, 0x24] subs r0, 0x2 strh r0, [r2, 0x24] lsls r0, 16 asrs r1, r0, 16 cmp r1, 0 bne _08039BE4 ldr r0, =nullsub_19 str r0, [r2, 0x1C] strh r1, [r2, 0x30] _08039BE4: pop {r0} bx r0 .pool thumb_func_end oac_poke_ally_ thumb_func_start sub_8039BF0 sub_8039BF0: @ 8039BF0 ldr r1, =nullsub_19 str r1, [r0, 0x1C] bx lr .pool thumb_func_end sub_8039BF0 thumb_func_start nullsub_19 nullsub_19: @ 8039BFC bx lr thumb_func_end nullsub_19 thumb_func_start sub_8039C00 sub_8039C00: @ 8039C00 push {lr} adds r2, r0, 0 ldr r0, =gUnknown_020243FC ldrh r1, [r0] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _08039C20 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] _08039C20: pop {r0} bx r0 .pool thumb_func_end sub_8039C00 thumb_func_start dp11b_obj_instanciate dp11b_obj_instanciate: @ 8039C28 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 _08039C64 ldr r0, =gUnknown_020244D0 ldr r0, [r0] ldr r1, [r0, 0x4] lsls r2, r4, 1 adds r0, r2, r4 lsls r0, 2 adds r0, r1 ldrb r1, [r0] movs r0, 0x2 b _08039C76 .pool _08039C64: ldr r0, =gUnknown_020244D0 ldr r0, [r0] ldr r1, [r0, 0x4] lsls r2, r4, 1 adds r0, r2, r4 lsls r0, 2 adds r0, r1 ldrb r1, [r0] movs r0, 0x4 _08039C76: ands r0, r1 adds r6, r2, 0 cmp r0, 0 bne _08039D2C ldr r0, =objc_dp11b_pingpong bl CreateInvisibleSpriteWithCallback lsls r0, 24 lsrs r5, r0, 24 mov r0, r8 cmp r0, 0x1 bne _08039CD0 ldr r0, =gUnknown_03005D70 adds r0, r4, r0 ldrb r7, [r0] ldr r2, =gUnknown_020244D0 ldr r0, [r2] ldr r0, [r0, 0x4] adds r1, r6, r4 lsls r1, 2 adds r0, r1, r0 strb r5, [r0, 0x2] ldr r0, [r2] ldr r0, [r0, 0x4] adds r1, r0 ldrb r0, [r1] movs r2, 0x2 orrs r0, r2 strb r0, [r1] ldr r2, =gUnknown_02020630 lsls r3, r5, 4 adds r0, r3, r5 lsls r0, 2 adds r0, r2 movs r1, 0x80 b _08039CFE .pool _08039CD0: ldr r0, =gUnknown_020241E4 adds r0, r4, r0 ldrb r7, [r0] ldr r2, =gUnknown_020244D0 ldr r0, [r2] ldr r0, [r0, 0x4] adds r1, r6, r4 lsls r1, 2 adds r0, r1, r0 strb r5, [r0, 0x3] ldr r0, [r2] ldr r0, [r0, 0x4] adds r1, r0 ldrb r0, [r1] movs r2, 0x4 orrs r0, r2 strb r0, [r1] ldr r2, =gUnknown_02020630 lsls r3, r5, 4 adds r0, r3, r5 lsls r0, 2 adds r0, r2 movs r1, 0xC0 _08039CFE: 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] _08039D2C: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end dp11b_obj_instanciate thumb_func_start dp11b_obj_free dp11b_obj_free: @ 8039D48 push {r4-r6,lr} lsls r0, 24 lsrs r2, r0, 24 lsls r1, 24 lsrs r1, 24 cmp r1, 0x1 bne _08039D9C ldr r6, =gUnknown_020244D0 ldr r0, [r6] ldr r1, [r0, 0x4] lsls r0, r2, 1 adds r0, r2 lsls r5, r0, 2 adds r3, r5, r1 ldrb r1, [r3] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _08039DEA ldr r2, =gUnknown_02020630 ldrb r1, [r3, 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 RemoveObjectAndFreeTiles ldr r0, [r6] ldr r1, [r0, 0x4] adds r1, r5, r1 ldrb r2, [r1] movs r0, 0x3 negs r0, r0 b _08039DD6 .pool _08039D9C: ldr r6, =gUnknown_020244D0 ldr r0, [r6] ldr r1, [r0, 0x4] lsls r0, r2, 1 adds r0, r2 lsls r5, r0, 2 adds r3, r5, r1 ldrb r1, [r3] movs r0, 0x4 ands r0, r1 cmp r0, 0 beq _08039DEA ldr r2, =gUnknown_02020630 ldrb r1, [r3, 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 RemoveObjectAndFreeTiles ldr r0, [r6] ldr r1, [r0, 0x4] adds r1, r5, r1 ldrb r2, [r1] movs r0, 0x5 negs r0, r0 _08039DD6: ands r0, r2 strb r0, [r1] ldr r0, =gUnknown_02020630 lsls r1, r4, 4 adds r1, r4 lsls r1, 2 adds r1, r0 movs r0, 0 strh r0, [r1, 0x24] strh r0, [r1, 0x26] _08039DEA: pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end dp11b_obj_free thumb_func_start objc_dp11b_pingpong objc_dp11b_pingpong: @ 8039DF8 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 _08039E10 movs r2, 0x2E ldrsh r0, [r4, r2] b _08039E14 _08039E10: movs r1, 0x2E ldrsh r0, [r4, r1] _08039E14: movs r2, 0x32 ldrsh r1, [r4, r2] bl Sin ldr r2, =gUnknown_02020630 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 .pool thumb_func_end objc_dp11b_pingpong thumb_func_start sub_8039E44 sub_8039E44: @ 8039E44 push {lr} adds r2, r0, 0 adds r0, 0x3F ldrb r1, [r0] movs r0, 0x20 ands r0, r1 cmp r0, 0 beq _08039E5C ldrh r1, [r2, 0x32] adds r0, r2, 0 bl sub_806EEB4 _08039E5C: pop {r0} bx r0 thumb_func_end sub_8039E44 thumb_func_start sub_8039E60 sub_8039E60: @ 8039E60 push {r4,lr} adds r4, r0, 0 bl sub_8039E9C adds r0, r4, 0 adds r0, 0x3F ldrb r1, [r0] movs r0, 0x10 ands r0, r1 cmp r0, 0 beq _08039E7A ldr r0, =nullsub_19 str r0, [r4, 0x1C] _08039E7A: pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_8039E60 thumb_func_start sub_8039E84 sub_8039E84: @ 8039E84 push {r4,lr} adds r4, r0, 0 movs r1, 0x1 bl StartObjectImageAnim ldr r0, =sub_8039E60 str r0, [r4, 0x1C] pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_8039E84 thumb_func_start sub_8039E9C sub_8039E9C: @ 8039E9C push {lr} adds r2, r0, 0 adds r0, 0x2C ldrb r1, [r0] movs r0, 0x3F ands r0, r1 cmp r0, 0 bne _08039EBE ldr r1, =gUnknown_0831ACE0 adds r0, r2, 0 adds r0, 0x2B ldrb r0, [r0] adds r0, r1 ldrb r1, [r0] adds r0, r2, 0 adds r0, 0x28 strb r1, [r0] _08039EBE: pop {r0} bx r0 .pool thumb_func_end sub_8039E9C thumb_func_start nullsub_20 nullsub_20: @ 8039EC8 bx lr thumb_func_end nullsub_20 thumb_func_start sub_8039ECC sub_8039ECC: @ 8039ECC push {lr} bl sub_8039F40 ldr r1, =gUnknown_02024332 movs r0, 0 strb r0, [r1, 0x1] ldr r1, =gUnknown_03005D04 ldr r0, =bc_8012FAC str r0, [r1] pop {r0} bx r0 .pool thumb_func_end sub_8039ECC thumb_func_start sub_8039EF0 sub_8039EF0: @ 8039EF0 push {r4,r5,lr} ldr r0, =gUnknown_03005D04 ldr r0, [r0] bl _call_via_r0 ldr r1, =gUnknown_02024064 movs r0, 0 strb r0, [r1] ldr r0, =gUnknown_0202406C ldrb r0, [r0] cmp r0, 0 beq _08039F2A ldr r5, =gUnknown_03005D60 adds r4, r1, 0 _08039F0C: 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, =gUnknown_0202406C lsls r0, 24 lsrs r0, 24 ldrb r1, [r1] cmp r0, r1 bcc _08039F0C _08039F2A: pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_8039EF0 thumb_func_start sub_8039F40 sub_8039F40: @ 8039F40 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} movs r0, 0 bl sub_803D580 bl sub_803D6A0 movs r2, 0 movs r3, 0 ldr r0, =gUnknown_02024260 mov r10, r0 ldr r1, =gUnknown_02024258 mov r9, r1 ldr r0, =gUnknown_02024250 mov r8, r0 ldr r1, =gUnknown_02024248 mov r12, r1 ldr r5, =gUnknown_020242BC movs r4, 0 ldr r7, =gUnknown_02024240 ldr r6, =gUnknown_02024268 _08039F70: ldr r0, =gUnknown_020242AC adds r0, r4, r0 str r3, [r0] movs r1, 0 _08039F78: adds r0, r5, r1 strb r3, [r0] adds r1, 0x1 cmp r1, 0x1B bls _08039F78 movs r0, 0x2 strb r0, [r5, 0x16] ldr r1, =gUnknown_02024284 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, =gUnknown_02024270 adds r1, r2, r0 movs r0, 0xFF strb r0, [r1] strh r3, [r6] strh r3, [r7] ldr r1, =gUnknown_020244A8 ldr r0, [r1] ldr r0, [r0, 0x4] adds r0, r4 str r3, [r0] ldr r1, =gUnknown_02024230 adds r0, r4, r1 str r3, [r0] movs r0, 0x2 add r10, r0 add r9, r0 add r8, r0 add r12, r0 adds r5, 0x1C adds r4, 0x4 adds r7, 0x2 adds r6, 0x2 adds r2, 0x1 cmp r2, 0x3 ble _08039F70 movs r5, 0 ldr r3, =gUnknown_02024294 ldr r4, =gUnknown_0202428E movs r2, 0x1 _08039FD8: strh r5, [r4] movs r1, 0 _08039FDC: adds r0, r3, r1 strb r5, [r0] adds r1, 0x1 cmp r1, 0xB bls _08039FDC adds r3, 0xC adds r4, 0x2 subs r2, 0x1 cmp r2, 0 bge _08039FD8 movs r1, 0 ldr r2, =gUnknown_0202420B strb r1, [r2] ldr r0, =gEnemyMonIndex strb r1, [r0] ldr r2, =gBattleWeather strh r1, [r2] ldr r1, =gUnknown_020243D0 movs r2, 0 movs r3, 0 _0803A004: adds r0, r1, r2 strb r3, [r0] adds r2, 0x1 cmp r2, 0x2B bls _0803A004 ldr r2, =gUnknown_02024280 movs r0, 0 str r0, [r2] ldr r0, =gBattleTypeFlags ldr r1, [r0] movs r0, 0x80 lsls r0, 17 ands r0, r1 cmp r0, 0 bne _0803A090 movs r0, 0x2 ands r1, r0 cmp r1, 0 bne _0803A0AE ldr r0, =gSaveBlock2Ptr ldr r0, [r0] ldrb r1, [r0, 0x15] movs r0, 0x4 ands r0, r1 cmp r0, 0 beq _0803A0AE movs r0, 0x80 b _0803A0AC .pool _0803A090: ldr r0, =0x02000002 ands r1, r0 cmp r1, 0 bne _0803A0AE bl sub_8185FB8 lsls r0, 24 cmp r0, 0 beq _0803A0AE ldr r1, =gUnknown_02024280 ldr r0, [r1] movs r1, 0x80 orrs r0, r1 ldr r2, =gUnknown_02024280 _0803A0AC: str r0, [r2] _0803A0AE: ldr r3, =gUnknown_02024474 ldr r0, =gSaveBlock2Ptr ldr r0, [r0] ldrb r0, [r0, 0x15] lsls r0, 30 lsrs r0, 31 movs r1, 0 strb r0, [r3, 0x1D] ldr r0, =gUnknown_02024212 strb r1, [r0] ldr r0, =gUnknown_0202433A strb r1, [r0] ldr r0, =gUnknown_02024068 str r1, [r0] ldr r0, =gUnknown_0202432E movs r2, 0 strh r1, [r0] ldr r1, =gUnknown_020244A8 ldr r0, [r1] ldr r0, [r0, 0x8] adds r0, 0x20 strb r2, [r0] ldr r0, [r1] ldr r0, [r0, 0xC] adds r0, 0x20 strb r2, [r0] ldr r5, =gUnknown_0202432C ldr r6, =gBattleMoveDamage ldr r7, =gUnknown_020243FC ldr r0, =gUnknown_03005D54 mov r8, r0 ldr r1, =gUnknown_02024210 mov r9, r1 ldr r2, =gEnemyParty mov r10, r2 ldr r1, =gUnknown_02024332 movs r2, 0 adds r0, r1, 0x7 _0803A0FA: strb r2, [r0] subs r0, 0x1 cmp r0, r1 bge _0803A0FA movs r4, 0 strh r4, [r5] movs r0, 0 str r0, [r6] strh r0, [r7] strb r4, [r3, 0x18] strb r4, [r3, 0x19] mov r0, r8 strb r4, [r0] mov r1, r9 strb r4, [r1] ldr r5, =gUnknown_0202449C ldr r0, [r5] adds r0, 0x6C strb r4, [r0] ldr r0, [r5] adds r0, 0x79 strb r4, [r0] ldr r0, [r5] adds r0, 0x7A strb r4, [r0] mov r0, r10 movs r1, 0xB bl GetMonData ldr r6, [r5] adds r6, 0x7C ldr r2, =gBaseStats 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, =0x000004fb bl __divsi3 strb r0, [r6] ldr r0, [r5] adds r0, 0x7B movs r1, 0x3 strb r1, [r0] ldr r0, [r5] strb r4, [r0, 0x12] ldr r0, [r5] adds r0, 0x4A movs r1, 0x1 strb r1, [r0] movs r2, 0 movs r1, 0 adds r6, r5, 0 _0803A16A: ldr r0, [r5] adds r0, r2, r0 adds r0, 0x98 strb r1, [r0] ldr r0, [r5] adds r0, r2, r0 adds r0, 0xB8 strb r1, [r0] ldr r0, [r5] adds r0, r2, r0 adds r0, 0xC8 strb r1, [r0] ldr r0, [r5] adds r0, r2, r0 adds r0, 0xD0 strb r1, [r0] ldr r0, [r5] adds r0, r2, r0 adds r0, 0xE0 strb r1, [r0] ldr r0, [r5] adds r0, r2, r0 adds r0, 0xE8 strb r1, [r0] ldr r0, [r5] adds r0, r2, r0 adds r0, 0xF0 strb r1, [r0] ldr r0, [r5] adds r0, r2, r0 adds r0, 0xF8 strb r1, [r0] adds r2, 0x1 cmp r2, 0x7 ble _0803A16A movs r2, 0 ldr r4, =gUnknown_0202449C movs r3, 0xA5 lsls r3, 2 movs r1, 0x6 _0803A1BA: ldr r0, [r4] adds r0, r2, r0 adds r0, r3 strb r1, [r0] adds r2, 0x1 cmp r2, 0x3 ble _0803A1BA ldr r0, [r6] adds r0, 0xDF movs r1, 0 strb r1, [r0] ldr r0, [r6] adds r0, 0x92 strb r1, [r0] bl Random ldr r1, =gUnknown_02024330 strh r0, [r1] ldr r1, =gUnknown_03005D10 movs r2, 0 movs r3, 0 _0803A1E4: adds r0, r1, r2 strb r3, [r0] adds r2, 0x1 cmp r2, 0x43 bls _0803A1E4 ldr r0, =gEnemyParty bl sub_806EBA4 ldr r3, =gUnknown_03005D10 movs r1, 0x1 ands r1, r0 lsls r1, 6 ldrb r2, [r3, 0x5] movs r0, 0x41 negs r0, r0 ands r0, r2 orrs r0, r1 strb r0, [r3, 0x5] ldr r2, =gUnknown_0202449C ldr r0, [r2] movs r1, 0xA8 lsls r1, 2 adds r0, r1 movs r1, 0 strb r1, [r0] ldr r0, [r2] ldr r2, =0x000002a1 adds r0, r2 strb r1, [r0] pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_8039F40 thumb_func_start sub_803A284 sub_803A284: @ 803A284 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x20 ldr r4, =gUnknown_020242BC ldr r5, =gUnknown_02024064 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,r7} stm r1!, {r2,r3,r7} ldr r0, [r0] str r0, [r1] ldr r2, =gBattleMoves ldr r3, =gUnknown_020241EA ldrh r1, [r3] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r0, [r0] mov r12, r4 mov r9, r5 ldr r6, =gUnknown_020242AC mov r10, r6 cmp r0, 0x7F beq _0803A35C movs r5, 0 mov r6, r9 movs r4, 0x58 ldr r2, =gBattleMons adds r2, 0x18 movs r1, 0x6 _0803A2D4: ldrb r0, [r6] muls r0, r4 adds r0, r5, r0 adds r0, r2 strb r1, [r0] adds r5, 0x1 cmp r5, 0x7 ble _0803A2D4 movs r5, 0 ldr r7, =gUnknown_0202406C ldrb r7, [r7] cmp r5, r7 bge _0803A348 ldr r0, =gUnknown_020240D4 mov r8, r0 ldr r4, =gUnknown_020242BC ldr r3, =gUnknown_020242AC _0803A2F6: movs r0, 0x58 muls r0, r5 mov r1, r8 adds r2, r0, r1 ldr r1, [r2] movs r0, 0x80 lsls r0, 19 ands r0, r1 cmp r0, 0 beq _0803A31A ldrb r0, [r4, 0x14] ldr r6, =gUnknown_02024064 ldrb r6, [r6] cmp r0, r6 bne _0803A31A ldr r0, =0xfbffffff ands r1, r0 str r1, [r2] _0803A31A: ldr r1, [r3] movs r0, 0x18 ands r0, r1 cmp r0, 0 beq _0803A33A ldrb r0, [r4, 0x15] ldr r7, =gUnknown_02024064 ldrb r7, [r7] cmp r0, r7 bne _0803A33A movs r0, 0x19 negs r0, r0 ands r1, r0 str r1, [r3] movs r0, 0 strb r0, [r4, 0x15] _0803A33A: adds r4, 0x1C adds r3, 0x4 adds r5, 0x1 ldr r0, =gUnknown_0202406C ldrb r0, [r0] cmp r5, r0 blt _0803A2F6 _0803A348: ldr r1, =gUnknown_020241EA ldrh r0, [r1] lsls r1, r0, 1 adds r1, r0 lsls r1, 2 ldr r2, =gBattleMoves adds r1, r2 ldrb r0, [r1] cmp r0, 0x7F bne _0803A414 _0803A35C: mov r3, r9 ldrb r1, [r3] movs r0, 0x58 adds r2, r1, 0 muls r2, r0 ldr r0, =gBattleMons adds r0, 0x50 adds r2, r0 ldr r0, [r2] ldr r1, =0x15100007 ands r0, r1 str r0, [r2] ldrb r1, [r3] lsls r1, 2 add r1, r10 ldr r0, [r1] ldr r2, =0x0003043f ands r0, r2 str r0, [r1] movs r5, 0 ldr r6, =gUnknown_0202406C ldrb r6, [r6] cmp r5, r6 bge _0803A430 mov r7, r9 movs r6, 0 _0803A390: 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 _0803A3D0 ldr r1, =gUnknown_020242AC lsls r0, r5, 2 adds r2, r0, r1 ldr r1, [r2] movs r0, 0x18 ands r0, r1 cmp r0, 0 beq _0803A3D0 ldr r0, =gUnknown_020242BC adds r0, r6, r0 ldrb r0, [r0, 0x15] ldrb r3, [r7] cmp r0, r3 bne _0803A3D0 movs r0, 0x19 negs r0, r0 ands r1, r0 movs r0, 0x10 orrs r1, r0 str r1, [r2] _0803A3D0: adds r6, 0x1C adds r5, 0x1 ldr r0, =gUnknown_0202406C ldrb r0, [r0] cmp r5, r0 blt _0803A390 ldr r6, =gUnknown_020242BC mov r12, r6 ldr r7, =gUnknown_02024064 mov r9, r7 b _0803A430 .pool _0803A414: mov r0, r9 ldrb r1, [r0] movs r0, 0x58 muls r0, r1 ldr r1, =gBattleMons adds r1, 0x50 adds r0, r1 movs r1, 0 str r1, [r0] mov r2, r9 ldrb r0, [r2] lsls r0, 2 add r0, r10 str r1, [r0] _0803A430: movs r5, 0 ldr r3, =gUnknown_0202449C mov r8, r3 ldr r6, =gUnknown_020244AC mov r10, r6 ldr r7, =gUnknown_0202406C ldrb r7, [r7] cmp r5, r7 bge _0803A490 ldr r3, =gUnknown_020240D4 ldr r7, =gBitTable ldr r6, =gUnknown_02024064 _0803A448: movs r0, 0x58 muls r0, r5 adds r4, r0, r3 ldrb r0, [r6] lsls r0, 2 adds r0, r7 ldr r0, [r0] lsls r2, r0, 16 ldr r1, [r4] adds r0, r1, 0 ands r0, r2 cmp r0, 0 beq _0803A466 bics r1, r2 str r1, [r4] _0803A466: ldr r1, [r4] movs r0, 0xE0 lsls r0, 8 ands r0, r1 cmp r0, 0 beq _0803A486 mov r2, r8 ldr r0, [r2] adds r0, r5, r0 ldrb r0, [r0, 0x14] ldrb r2, [r6] cmp r0, r2 bne _0803A486 ldr r0, =0xffff1fff ands r1, r0 str r1, [r4] _0803A486: adds r5, 0x1 ldr r0, =gUnknown_0202406C ldrb r0, [r0] cmp r5, r0 blt _0803A448 _0803A490: mov r1, r9 ldrb r0, [r1] add r0, r10 movs r1, 0 strb r1, [r0] mov r2, r9 ldrb r0, [r2] ldr r3, =gUnknown_020244B0 adds r0, r3 strb r1, [r0] ldrb r1, [r2] lsls r0, r1, 3 subs r0, r1 lsls r0, 2 mov r6, r12 adds r1, r0, r6 movs r5, 0 movs r2, 0 _0803A4B4: adds r0, r1, r5 strb r2, [r0] adds r5, 0x1 cmp r5, 0x1B bls _0803A4B4 ldr r7, =gUnknown_020241EA ldrh r0, [r7] lsls r1, r0, 1 adds r1, r0 lsls r1, 2 ldr r0, =gBattleMoves adds r1, r0 ldrb r0, [r1] cmp r0, 0x7F bne _0803A540 mov r2, r9 ldrb r1, [r2] lsls r0, r1, 3 subs r0, r1 lsls r0, 2 add r0, r12 mov r1, sp ldrb r1, [r1, 0xA] strb r1, [r0, 0xA] ldrb r1, [r2] lsls r0, r1, 3 subs r0, r1 lsls r0, 2 add r0, r12 mov r1, sp ldrb r1, [r1, 0x15] strb r1, [r0, 0x15] ldrb r0, [r2] lsls r1, r0, 3 subs r1, r0 lsls r1, 2 add r1, r12 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] mov r3, r9 ldrb r1, [r3] lsls r0, r1, 3 subs r0, r1 lsls r0, 2 add r0, r12 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] ldrb r1, [r3] lsls r0, r1, 3 subs r0, r1 lsls r0, 2 add r0, r12 mov r1, sp ldrb r1, [r1, 0x14] strb r1, [r0, 0x14] _0803A540: movs r0, 0 ldr r6, =gBattleMoveFlags strb r0, [r6] mov r7, r9 ldrb r1, [r7] lsls r0, r1, 3 subs r0, r1 lsls r0, 2 add r0, r12 movs r4, 0 movs r1, 0x2 strb r1, [r0, 0x16] ldrb r0, [r7] lsls r1, r0, 3 subs r1, r0 lsls r1, 2 add r1, r12 mov r0, sp ldrb r0, [r0, 0x18] movs r2, 0x2 ands r2, r0 ldrb r3, [r1, 0x18] movs r0, 0x3 negs r0, r0 ands r0, r3 orrs r0, r2 strb r0, [r1, 0x18] ldrb r0, [r7] lsls r0, 1 ldr r1, =gUnknown_02024248 adds r0, r1 movs r2, 0 strh r4, [r0] ldrb r0, [r7] lsls r0, 1 ldr r3, =gUnknown_02024250 adds r0, r3 strh r4, [r0] ldrb r0, [r7] lsls r0, 1 ldr r6, =gUnknown_02024258 adds r0, r6 strh r4, [r0] ldrb r0, [r7] lsls r0, 1 ldr r7, =gUnknown_02024260 adds r0, r7 strh r4, [r0] mov r1, r9 ldrb r0, [r1] lsls r0, 1 ldr r3, =gUnknown_02024240 adds r0, r3 strh r4, [r0] ldrb r0, [r1] ldr r6, =gUnknown_02024270 adds r0, r6 movs r1, 0xFF strb r1, [r0] mov r7, r9 ldrb r0, [r7] mov r3, r8 ldr r1, [r3] lsls r0, 1 adds r0, r1 adds r0, 0x98 strb r2, [r0] ldrb r0, [r7] ldr r1, [r3] lsls r0, 1 adds r0, r1 adds r0, 0x99 strb r2, [r0] ldrb r0, [r7] ldr r1, [r3] lsls r0, 3 adds r0, r1 adds r0, 0xE0 strb r2, [r0] ldrb r0, [r7] ldr r1, [r3] lsls r0, 3 adds r0, r1 adds r0, 0xE1 strb r2, [r0] ldrb r0, [r7] ldr r1, [r3] lsls r0, 3 adds r0, r1 adds r0, 0xE2 strb r2, [r0] ldrb r0, [r7] ldr r1, [r3] lsls r0, 3 adds r0, r1 adds r0, 0xE3 strb r2, [r0] ldrb r0, [r7] ldr r1, [r3] lsls r0, 3 adds r0, r1 adds r0, 0xE4 strb r2, [r0] ldrb r0, [r7] ldr r1, [r3] lsls r0, 3 adds r0, r1 adds r0, 0xE5 strb r2, [r0] ldrb r0, [r7] ldr r1, [r3] lsls r0, 3 adds r0, r1 adds r0, 0xE6 strb r2, [r0] ldrb r0, [r7] ldr r1, [r3] lsls r0, 3 adds r0, r1 adds r0, 0xE7 strb r2, [r0] ldr r1, [r3] adds r1, 0x92 ldrb r0, [r7] lsls r0, 2 ldr r6, =gBitTable adds r0, r6 ldr r2, [r0] ldrb r0, [r1] bics r0, r2 strb r0, [r1] movs r5, 0 ldr r7, =gUnknown_0202406C ldrb r7, [r7] cmp r5, r7 bge _0803A6B4 mov r3, r9 mov r7, r8 movs r6, 0 _0803A656: ldrb r0, [r3] cmp r5, r0 beq _0803A68C lsls r0, r5, 24 lsrs r0, 24 str r3, [sp, 0x1C] bl battle_side_get_owner adds r4, r0, 0 ldr r3, [sp, 0x1C] ldrb r0, [r3] bl battle_side_get_owner lsls r4, 24 lsls r0, 24 ldr r3, [sp, 0x1C] cmp r4, r0 beq _0803A68C ldr r0, [r7] lsls r1, r5, 1 adds r0, r1, r0 adds r0, 0x98 strb r6, [r0] ldr r0, [r7] adds r1, r0 adds r1, 0x99 strb r6, [r1] _0803A68C: ldrb r0, [r3] ldr r1, [r7] lsls r0, 1 lsls r2, r5, 3 adds r0, r2 adds r0, r1 adds r0, 0xE0 strb r6, [r0] ldrb r0, [r3] ldr r1, [r7] lsls r0, 1 adds r0, r2 adds r0, r1 adds r0, 0xE1 strb r6, [r0] adds r5, 0x1 ldr r0, =gUnknown_0202406C ldrb r0, [r0] cmp r5, r0 blt _0803A656 _0803A6B4: mov r1, r9 ldrb r0, [r1] mov r2, r8 ldr r1, [r2] lsls r0, 1 adds r0, r1 adds r0, 0xC8 movs r2, 0 strb r2, [r0] mov r3, r9 ldrb r0, [r3] mov r6, r8 ldr r1, [r6] lsls r0, 1 adds r0, r1 adds r0, 0xC9 strb r2, [r0] ldr r0, =gUnknown_020244A8 ldr r0, [r0] ldr r1, [r0, 0x4] ldrb r0, [r3] lsls r0, 2 adds r1, r0 movs r2, 0 str r2, [r1] ldr r0, =gUnknown_020241EA strh r2, [r0] ldr r0, [r6] adds r0, 0xDA movs r1, 0xFF strb r1, [r0] ldrb r0, [r3] bl sub_81310F0 mov r7, r9 ldrb r0, [r7] bl sub_8131130 add sp, 0x20 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_803A284 thumb_func_start sub_803A75C sub_803A75C: @ 803A75C push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x4 movs r5, 0 ldr r6, =gBattleMons ldr r0, =gUnknown_020242AC mov r8, r0 ldr r1, =gUnknown_0202449C mov r12, r1 ldr r2, =gUnknown_020244AC mov r9, r2 ldr r3, =gUnknown_020244B0 mov r10, r3 ldr r7, =gUnknown_0202433C ldr r4, =gUnknown_02024064 movs r3, 0x58 adds r2, r6, 0 adds r2, 0x18 movs r1, 0x6 _0803A788: ldrb r0, [r4] muls r0, r3 adds r0, r5, r0 adds r0, r2 strb r1, [r0] adds r5, 0x1 cmp r5, 0x7 ble _0803A788 ldr r0, =gUnknown_02024064 ldrb r1, [r0] movs r0, 0x58 muls r0, r1 adds r2, r6, 0 adds r2, 0x50 adds r0, r2 movs r1, 0 str r1, [r0] ldr r3, =gUnknown_02024064 ldrb r0, [r3] lsls r0, 2 add r0, r8 str r1, [r0] movs r5, 0 ldr r6, =gUnknown_0202406C ldrb r6, [r6] cmp r5, r6 bge _0803A830 adds r3, r2, 0 movs r4, 0 ldr r0, =gBitTable mov r8, r0 _0803A7C6: ldr r1, [r3] movs r0, 0x80 lsls r0, 19 ands r0, r1 cmp r0, 0 beq _0803A7E6 ldr r2, =gUnknown_020242BC adds r0, r4, r2 ldrb r0, [r0, 0x14] ldr r6, =gUnknown_02024064 ldrb r6, [r6] cmp r0, r6 bne _0803A7E6 ldr r0, =0xfbffffff ands r1, r0 str r1, [r3] _0803A7E6: ldr r1, =gUnknown_02024064 ldrb r0, [r1] 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 _0803A800 bics r1, r2 str r1, [r3] _0803A800: ldr r1, [r3] movs r0, 0xE0 lsls r0, 8 ands r0, r1 cmp r0, 0 beq _0803A822 mov r2, r12 ldr r0, [r2] adds r0, r5, r0 ldrb r0, [r0, 0x14] ldr r6, =gUnknown_02024064 ldrb r6, [r6] cmp r0, r6 bne _0803A822 ldr r0, =0xffff1fff ands r1, r0 str r1, [r3] _0803A822: adds r3, 0x58 adds r4, 0x1C adds r5, 0x1 ldr r0, =gUnknown_0202406C ldrb r0, [r0] cmp r5, r0 blt _0803A7C6 _0803A830: ldr r1, =gUnknown_02024064 ldrb r0, [r1] add r0, r9 movs r1, 0 strb r1, [r0] ldr r2, =gUnknown_02024064 ldrb r0, [r2] add r0, r10 strb r1, [r0] ldrb r1, [r2] lsls r0, r1, 3 subs r0, r1 lsls r0, 2 ldr r3, =gUnknown_020242BC adds r1, r0, r3 movs r5, 0 movs r2, 0 _0803A852: adds r0, r1, r5 strb r2, [r0] adds r5, 0x1 cmp r5, 0x1B bls _0803A852 ldr r6, =gUnknown_02024064 ldrb r1, [r6] lsls r1, 4 adds r1, r7 ldrb r2, [r1] movs r0, 0x2 negs r0, r0 mov r9, r0 ands r0, r2 strb r0, [r1] ldrb r1, [r6] lsls r1, 4 adds r1, r7 ldrb r2, [r1] movs r3, 0x3 negs r3, r3 mov r8, r3 mov r0, r8 ands r0, r2 strb r0, [r1] ldrb r1, [r6] lsls r1, 4 adds r1, r7 ldrb r2, [r1] movs r6, 0x5 negs r6, r6 adds r0, r6, 0 ands r0, r2 strb r0, [r1] ldr r0, =gUnknown_02024064 ldrb r1, [r0] lsls r1, 4 adds r1, r7 ldrb r2, [r1] subs r3, 0x6 mov r10, r3 mov r0, r10 ands r0, r2 strb r0, [r1] ldr r0, =gUnknown_02024064 ldrb r1, [r0] lsls r1, 4 adds r1, r7 ldrb r2, [r1] movs r0, 0x11 negs r0, r0 ands r0, r2 strb r0, [r1] ldr r2, =gUnknown_02024064 ldrb r1, [r2] lsls r1, 4 adds r1, r7 ldrb r2, [r1] movs r5, 0x21 negs r5, r5 adds r0, r5, 0 ands r0, r2 strb r0, [r1] ldr r3, =gUnknown_02024064 ldrb r1, [r3] lsls r1, 4 adds r1, r7 ldrb r2, [r1] movs r4, 0x41 negs r4, r4 adds r0, r4, 0 ands r0, r2 strb r0, [r1] ldrb r1, [r3] lsls r1, 4 adds r1, r7 ldrb r2, [r1] movs r3, 0x7F adds r0, r3, 0 ands r0, r2 strb r0, [r1] ldr r0, =gUnknown_02024064 ldrb r1, [r0] lsls r1, 4 adds r1, r7 ldrb r2, [r1, 0x1] mov r0, r9 ands r0, r2 strb r0, [r1, 0x1] ldr r2, =gUnknown_02024064 ldrb r1, [r2] lsls r1, 4 adds r1, r7 ldrb r2, [r1, 0x1] mov r0, r8 ands r0, r2 strb r0, [r1, 0x1] ldr r0, =gUnknown_02024064 ldrb r1, [r0] lsls r1, 4 adds r1, r7 ldrb r2, [r1, 0x1] adds r0, r6, 0 ands r0, r2 strb r0, [r1, 0x1] ldr r2, =gUnknown_02024064 ldrb r1, [r2] lsls r1, 4 adds r1, r7 ldrb r2, [r1, 0x1] movs r0, 0x19 negs r0, r0 ands r0, r2 strb r0, [r1, 0x1] ldr r1, =gUnknown_02024064 ldrb r0, [r1] lsls r0, 4 adds r0, r7 ldrb r1, [r0, 0x1] ands r5, r1 strb r5, [r0, 0x1] ldr r2, =gUnknown_02024064 ldrb r0, [r2] lsls r0, 4 adds r0, r7 ldrb r1, [r0, 0x1] ands r4, r1 strb r4, [r0, 0x1] ldrb r0, [r2] lsls r0, 4 adds r0, r7 ldrb r1, [r0, 0x1] ands r3, r1 strb r3, [r0, 0x1] ldrb r0, [r2] lsls r0, 4 adds r0, r7 ldrb r1, [r0, 0x2] mov r3, r9 ands r3, r1 strb r3, [r0, 0x2] ldrb r0, [r2] lsls r0, 4 adds r0, r7 ldrb r1, [r0, 0x2] mov r2, r8 ands r2, r1 strb r2, [r0, 0x2] ldr r3, =gUnknown_02024064 ldrb r0, [r3] lsls r0, 4 adds r0, r7 ldrb r1, [r0, 0x2] ands r6, r1 strb r6, [r0, 0x2] ldrb r0, [r3] lsls r0, 4 adds r0, r7 ldrb r1, [r0, 0x2] mov r6, r10 ands r6, r1 strb r6, [r0, 0x2] ldrb r1, [r3] lsls r0, r1, 3 subs r0, r1 lsls r0, 2 ldr r1, =gUnknown_020242BC adds r0, r1 movs r2, 0 movs r1, 0x2 strb r1, [r0, 0x16] ldrb r0, [r3] lsls r0, 1 ldr r3, =gUnknown_02024248 adds r0, r3 movs r3, 0 strh r2, [r0] ldr r6, =gUnknown_02024064 ldrb r0, [r6] lsls r0, 1 ldr r1, =gUnknown_02024250 adds r0, r1 strh r2, [r0] ldrb r0, [r6] lsls r0, 1 ldr r6, =gUnknown_02024258 adds r0, r6 strh r2, [r0] ldr r1, =gUnknown_02024064 ldrb r0, [r1] lsls r0, 1 ldr r6, =gUnknown_02024260 adds r0, r6 strh r2, [r0] ldrb r0, [r1] lsls r0, 1 ldr r1, =gUnknown_02024240 adds r0, r1 strh r2, [r0] ldr r2, =gUnknown_02024064 ldrb r0, [r2] ldr r6, =gUnknown_02024270 adds r0, r6 movs r1, 0xFF strb r1, [r0] ldrb r0, [r2] mov r2, r12 ldr r1, [r2] lsls r0, 1 adds r0, r1 adds r0, 0xC8 strb r3, [r0] ldr r6, =gUnknown_02024064 ldrb r0, [r6] ldr r1, [r2] lsls r0, 1 adds r0, r1 adds r0, 0xC9 strb r3, [r0] ldrb r0, [r6] ldr r1, [r2] lsls r0, 1 adds r0, r1 adds r0, 0x98 strb r3, [r0] ldrb r0, [r6] ldr r1, [r2] lsls r0, 1 adds r0, r1 adds r0, 0x99 strb r3, [r0] ldrb r0, [r6] ldr r1, [r2] lsls r0, 3 adds r0, r1 adds r0, 0xE0 strb r3, [r0] ldrb r0, [r6] ldr r1, [r2] lsls r0, 3 adds r0, r1 adds r0, 0xE1 strb r3, [r0] ldrb r0, [r6] ldr r1, [r2] lsls r0, 3 adds r0, r1 adds r0, 0xE2 strb r3, [r0] ldrb r0, [r6] ldr r1, [r2] lsls r0, 3 adds r0, r1 adds r0, 0xE3 strb r3, [r0] ldrb r0, [r6] ldr r1, [r2] lsls r0, 3 adds r0, r1 adds r0, 0xE4 strb r3, [r0] ldrb r0, [r6] ldr r1, [r2] lsls r0, 3 adds r0, r1 adds r0, 0xE5 strb r3, [r0] ldrb r0, [r6] ldr r1, [r2] lsls r0, 3 adds r0, r1 adds r0, 0xE6 strb r3, [r0] ldrb r0, [r6] ldr r1, [r2] lsls r0, 3 adds r0, r1 adds r0, 0xE7 strb r3, [r0] ldr r1, [r2] adds r1, 0x92 ldrb r0, [r6] lsls r0, 2 ldr r2, =gBitTable adds r0, r2 ldr r2, [r0] ldrb r0, [r1] bics r0, r2 strb r0, [r1] movs r5, 0 ldr r3, =gUnknown_0202406C ldrb r3, [r3] cmp r5, r3 bge _0803AB02 adds r3, r6, 0 mov r7, r12 movs r6, 0 _0803AAA4: ldrb r0, [r3] cmp r5, r0 beq _0803AADA lsls r0, r5, 24 lsrs r0, 24 str r3, [sp] bl battle_side_get_owner adds r4, r0, 0 ldr r3, [sp] ldrb r0, [r3] bl battle_side_get_owner lsls r4, 24 lsls r0, 24 ldr r3, [sp] cmp r4, r0 beq _0803AADA ldr r0, [r7] lsls r1, r5, 1 adds r0, r1, r0 adds r0, 0x98 strb r6, [r0] ldr r0, [r7] adds r1, r0 adds r1, 0x99 strb r6, [r1] _0803AADA: ldrb r0, [r3] ldr r1, [r7] lsls r0, 1 lsls r2, r5, 3 adds r0, r2 adds r0, r1 adds r0, 0xE0 strb r6, [r0] ldrb r0, [r3] ldr r1, [r7] lsls r0, 1 adds r0, r2 adds r0, r1 adds r0, 0xE1 strb r6, [r0] adds r5, 0x1 ldr r0, =gUnknown_0202406C ldrb r0, [r0] cmp r5, r0 blt _0803AAA4 _0803AB02: ldr r0, =gUnknown_020244A8 ldr r0, [r0] ldr r1, [r0, 0x4] ldr r2, =gUnknown_02024064 ldrb r0, [r2] lsls r0, 2 adds r1, r0 movs r0, 0 str r0, [r1] ldr r4, =gBattleMons ldrb r0, [r2] movs r3, 0x58 adds r2, r0, 0 muls r2, r3 b _0803AB6C .pool _0803AB6C: adds r2, r4 ldr r5, =gBaseStats ldrh r1, [r2] lsls r0, r1, 3 subs r0, r1 lsls r0, 2 adds r0, r5 ldrb r0, [r0, 0x6] adds r2, 0x21 strb r0, [r2] ldr r6, =gUnknown_02024064 ldrb r0, [r6] adds r1, r0, 0 muls r1, r3 adds r1, r4 ldrh r2, [r1] lsls r0, r2, 3 subs r0, r2 lsls r0, 2 adds r0, r5 ldrb r0, [r0, 0x7] adds r1, 0x22 strb r0, [r1] ldrb r0, [r6] bl sub_81310F0 ldrb r0, [r6] bl sub_8131130 add sp, 0x4 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_803A75C thumb_func_start bc_8012FAC bc_8012FAC: @ 803ABC0 push {r4,r5,lr} ldr r5, =gUnknown_02024332 ldrb r0, [r5] cmp r0, 0 beq _0803ABD4 cmp r0, 0x1 beq _0803ABF8 b _0803AC2E .pool _0803ABD4: ldr r4, =gUnknown_02024064 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 _0803AC2E .pool _0803ABF8: ldr r0, =gUnknown_02024068 ldr r2, [r0] cmp r2, 0 bne _0803AC2E ldrb r0, [r5, 0x1] adds r0, 0x1 strb r0, [r5, 0x1] ldr r1, =gUnknown_0202406C lsls r0, 24 lsrs r0, 24 ldrb r1, [r1] cmp r0, r1 bne _0803AC2C ldr r1, =gUnknown_03005D04 ldr r0, =bc_load_battlefield str r0, [r1] b _0803AC2E .pool _0803AC2C: strb r2, [r5] _0803AC2E: pop {r4,r5} pop {r0} bx r0 thumb_func_end bc_8012FAC thumb_func_start bc_load_battlefield bc_load_battlefield: @ 803AC34 push {r4,r5,lr} ldr r0, =gUnknown_02024068 ldr r5, [r0] cmp r5, 0 bne _0803AC64 movs r0, 0 bl battle_get_side_with_given_state ldr r4, =gUnknown_02024064 strb r0, [r4] ldr r0, =gUnknown_02022FF0 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, =gUnknown_03005D04 ldr r0, =sub_803AC84 str r0, [r1] ldr r0, =gUnknown_02024332 strb r5, [r0] strb r5, [r0, 0x1] _0803AC64: pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end bc_load_battlefield thumb_func_start sub_803AC84 sub_803AC84: @ 803AC84 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} ldr r0, =gUnknown_02024068 ldr r1, [r0] cmp r1, 0 beq _0803AC98 b _0803AF4E _0803AC98: ldr r2, =gUnknown_02024064 strb r1, [r2] ldr r0, =gUnknown_0202406C ldrb r0, [r0] cmp r1, r0 bcc _0803ACA6 b _0803AF48 _0803ACA6: movs r7, 0x58 ldr r0, =gBattleMons mov r8, r0 mov r9, r2 movs r1, 0x48 add r1, r8 mov r10, r1 _0803ACB4: ldr r0, =gBattleTypeFlags ldr r0, [r0] movs r1, 0x80 ands r0, r1 cmp r0, 0 beq _0803ACFC ldr r4, =gUnknown_02024064 ldrb r0, [r4] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 bne _0803ACFC ldrb r0, [r4] muls r0, r7 mov r2, r8 adds r3, r0, r2 movs r2, 0 movs r1, 0 _0803ACDA: adds r0, r3, r2 strb r1, [r0] adds r2, 0x1 cmp r2, 0x57 bls _0803ACDA b _0803ADCA .pool _0803ACFC: mov r1, r9 ldrb r0, [r1] muls r0, r7 mov r2, r8 adds r3, r0, r2 movs r2, 0 ldr r6, =gBaseStats ldr r5, =gUnknown_02023864 ldr r4, =gUnknown_02024064 _0803AD0E: 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 _0803AD0E mov r1, r9 ldrb r0, [r1] adds r2, r0, 0 muls r2, r7 add r2, r8 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 r2, r9 ldrb r0, [r2] adds r2, r0, 0 muls r2, r7 add r2, r8 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 r1, r9 ldrb r0, [r1] adds r1, r0, 0 muls r1, r7 add r1, r8 ldrh r0, [r1] ldrb r1, [r1, 0x17] lsrs r1, 7 bl sub_806B694 mov r2, r9 ldrb r1, [r2] muls r1, r7 add r1, r8 adds r1, 0x20 strb r0, [r1] ldrb r0, [r2] bl battle_side_get_owner ldr r1, =gUnknown_0202449C lsls r0, 24 lsrs r0, 23 adds r0, 0xA8 ldr r1, [r1] adds r1, r0 mov r2, r9 ldrb r0, [r2] muls r0, r7 add r0, r8 ldrh r0, [r0, 0x28] strh r0, [r1] movs r2, 0 ldr r4, =gUnknown_02024064 movs r5, 0x58 ldr r1, =gUnknown_0202409C adds r6, r4, 0 movs r0, 0x18 negs r0, r0 adds r0, r1 mov r12, r0 movs r3, 0x6 _0803ADAA: ldrb r0, [r4] muls r0, r5 adds r0, r2, r0 adds r0, r1 strb r3, [r0] adds r2, 0x1 cmp r2, 0x7 ble _0803ADAA 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] _0803ADCA: ldr r4, =gUnknown_02024064 ldrb r0, [r4] bl battle_get_per_side_status lsls r0, 24 cmp r0, 0 bne _0803ADE4 movs r0, 0 bl dp01_build_cmdbuf_x07_7_7_7 ldrb r0, [r4] bl dp01_battle_side_mark_buffer_for_execution _0803ADE4: ldr r5, =gBattleTypeFlags ldr r0, [r5] movs r1, 0x8 ands r0, r1 cmp r0, 0 beq _0803AE60 ldrb r0, [r4] bl battle_get_per_side_status lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _0803AE0A movs r0, 0 bl dp01_build_cmdbuf_x07_7_7_7 ldrb r0, [r4] bl dp01_battle_side_mark_buffer_for_execution _0803AE0A: ldrb r0, [r4] bl battle_side_get_owner lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _0803AEC0 ldr r0, [r5] ldr r1, =0x063f0902 ands r0, r1 cmp r0, 0 bne _0803AEC0 ldrb r0, [r4] muls r0, r7 add r0, r8 ldrh r0, [r0] bl SpeciesToNationalPokedexNum lsls r0, 16 lsrs r0, 16 ldrb r1, [r4] muls r1, r7 add r1, r10 ldr r2, [r1] movs r1, 0x2 bl SetPokedexFlag b _0803AEC0 .pool _0803AE60: ldrb r0, [r4] bl battle_side_get_owner lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _0803AEC0 ldr r0, [r5] ldr r1, =0x063f0902 ands r0, r1 cmp r0, 0 bne _0803AE96 ldrb r0, [r4] muls r0, r7 add r0, r8 ldrh r0, [r0] bl SpeciesToNationalPokedexNum lsls r0, 16 lsrs r0, 16 ldrb r1, [r4] muls r1, r7 add r1, r10 ldr r2, [r1] movs r1, 0x2 bl SetPokedexFlag _0803AE96: movs r0, 0 bl dp01_build_cmdbuf_x04_4_4_4 ldrb r0, [r4] bl dp01_battle_side_mark_buffer_for_execution ldr r1, =gUnknown_0202406E ldrb r0, [r4] lsls r0, 1 adds r0, r1 ldrh r1, [r0] movs r0, 0x64 muls r0, r1 ldr r1, =gEnemyParty adds r0, r1 movs r1, 0xB movs r2, 0 bl GetMonData ldr r1, =gUnknown_03005D10 strh r0, [r1, 0x20] _0803AEC0: ldr r0, =gBattleTypeFlags ldr r0, [r0] movs r1, 0x40 ands r0, r1 cmp r0, 0 beq _0803AEF6 ldr r4, =gUnknown_02024064 ldrb r0, [r4] bl battle_get_per_side_status lsls r0, 24 lsrs r0, 24 cmp r0, 0x2 beq _0803AEEA ldrb r0, [r4] bl battle_get_per_side_status lsls r0, 24 lsrs r0, 24 cmp r0, 0x3 bne _0803AEF6 _0803AEEA: movs r0, 0 bl dp01_build_cmdbuf_x07_7_7_7 ldrb r0, [r4] bl dp01_battle_side_mark_buffer_for_execution _0803AEF6: ldr r0, =gBattleTypeFlags ldr r0, [r0] movs r1, 0x80 lsls r1, 8 ands r0, r1 cmp r0, 0 beq _0803AF20 ldr r4, =gUnknown_02024064 ldrb r0, [r4] bl battle_get_per_side_status lsls r0, 24 lsrs r0, 24 cmp r0, 0x3 bne _0803AF20 movs r0, 0 bl dp01_build_cmdbuf_x07_7_7_7 ldrb r0, [r4] bl dp01_battle_side_mark_buffer_for_execution _0803AF20: ldr r0, =gBattleTypeFlags ldr r0, [r0] movs r1, 0x80 lsls r1, 11 ands r0, r1 cmp r0, 0 beq _0803AF32 bl sub_81A56B4 _0803AF32: mov r1, r9 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] ldr r1, =gUnknown_0202406C lsls r0, 24 lsrs r0, 24 ldrb r1, [r1] cmp r0, r1 bcs _0803AF48 b _0803ACB4 _0803AF48: ldr r1, =gUnknown_03005D04 ldr r0, =bc_801333C str r0, [r1] _0803AF4E: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_803AC84 thumb_func_start bc_801333C bc_801333C: @ 803AF80 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x30 ldr r0, =gUnknown_02024068 ldr r0, [r0] cmp r0, 0 beq _0803AF92 b _0803B10C _0803AF92: ldr r0, =gBattleTypeFlags ldr r0, [r0] movs r1, 0x8 ands r0, r1 cmp r0, 0 bne _0803AFA0 b _0803B0AC _0803AFA0: movs r7, 0 add r0, sp, 0x4 mov r8, r0 mov r6, r8 mov r5, sp _0803AFAA: movs r0, 0x64 adds r1, r7, 0 muls r1, r0 ldr r0, =gEnemyParty adds r4, r1, r0 adds r0, r4, 0 movs r1, 0x41 bl GetMonData cmp r0, 0 beq _0803AFD0 adds r0, r4, 0 movs r1, 0x41 bl GetMonData movs r1, 0xCE lsls r1, 1 cmp r0, r1 bne _0803AFE8 _0803AFD0: ldr r0, =0x0000ffff strh r0, [r5] movs r0, 0 b _0803AFFA .pool _0803AFE8: adds r0, r4, 0 movs r1, 0x39 bl GetMonData strh r0, [r5] adds r0, r4, 0 movs r1, 0x37 bl GetMonData _0803AFFA: str r0, [r6] adds r6, 0x8 adds r5, 0x8 adds r7, 0x1 cmp r7, 0x5 ble _0803AFAA movs r0, 0x1 bl battle_get_side_with_given_state ldr r4, =gUnknown_02024064 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 _0803B026: movs r0, 0x64 adds r1, r7, 0 muls r1, r0 ldr r0, =gPlayerParty adds r4, r1, r0 adds r0, r4, 0 movs r1, 0x41 bl GetMonData cmp r0, 0 beq _0803B04C adds r0, r4, 0 movs r1, 0x41 bl GetMonData movs r1, 0xCE lsls r1, 1 cmp r0, r1 bne _0803B060 _0803B04C: ldr r0, =0x0000ffff strh r0, [r5] movs r0, 0 b _0803B072 .pool _0803B060: adds r0, r4, 0 movs r1, 0x39 bl GetMonData strh r0, [r5] adds r0, r4, 0 movs r1, 0x37 bl GetMonData _0803B072: str r0, [r6] adds r6, 0x8 adds r5, 0x8 adds r7, 0x1 cmp r7, 0x5 ble _0803B026 movs r0, 0 bl battle_get_side_with_given_state ldr r4, =gUnknown_02024064 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, =gUnknown_03005D04 ldr r0, =bc_battle_begin_message b _0803B10A .pool _0803B0AC: movs r7, 0 add r6, sp, 0x4 mov r5, sp _0803B0B2: movs r0, 0x64 adds r1, r7, 0 muls r1, r0 ldr r0, =gPlayerParty adds r4, r1, r0 adds r0, r4, 0 movs r1, 0x41 bl GetMonData cmp r0, 0 beq _0803B0D8 adds r0, r4, 0 movs r1, 0x41 bl GetMonData movs r1, 0xCE lsls r1, 1 cmp r0, r1 bne _0803B0E8 _0803B0D8: ldr r0, =0x0000ffff strh r0, [r5] movs r0, 0 b _0803B0FA .pool _0803B0E8: adds r0, r4, 0 movs r1, 0x39 bl GetMonData strh r0, [r5] adds r0, r4, 0 movs r1, 0x37 bl GetMonData _0803B0FA: str r0, [r6] adds r6, 0x8 adds r5, 0x8 adds r7, 0x1 cmp r7, 0x5 ble _0803B0B2 ldr r1, =gUnknown_03005D04 ldr r0, =bc_8013568 _0803B10A: str r0, [r1] _0803B10C: add sp, 0x30 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end bc_801333C thumb_func_start bc_battle_begin_message bc_battle_begin_message: @ 803B120 push {lr} ldr r0, =gUnknown_02024068 ldr r0, [r0] cmp r0, 0 bne _0803B142 movs r0, 0x1 bl battle_get_side_with_given_state ldr r1, =gUnknown_02024064 strb r0, [r1] ldrb r1, [r1] movs r0, 0 bl b_std_message ldr r1, =gUnknown_03005D04 ldr r0, =sub_803B180 str r0, [r1] _0803B142: pop {r0} bx r0 .pool thumb_func_end bc_battle_begin_message thumb_func_start bc_8013568 bc_8013568: @ 803B158 push {lr} ldr r0, =gUnknown_02024068 ldr r0, [r0] cmp r0, 0 bne _0803B170 ldr r1, =gUnknown_03005D04 ldr r0, =sub_803B3CC str r0, [r1] movs r0, 0 movs r1, 0 bl b_std_message _0803B170: pop {r0} bx r0 .pool thumb_func_end bc_8013568 thumb_func_start sub_803B180 sub_803B180: @ 803B180 push {lr} ldr r0, =gUnknown_02024068 ldr r0, [r0] cmp r0, 0 bne _0803B1D0 ldr r0, =gBattleTypeFlags ldr r2, [r0] movs r0, 0x80 lsls r0, 17 ands r0, r2 cmp r0, 0 beq _0803B1B8 movs r0, 0x80 lsls r0, 18 ands r0, r2 cmp r0, 0 beq _0803B1B8 movs r1, 0x80 lsls r1, 24 ands r1, r2 negs r0, r1 orrs r0, r1 lsrs r0, 31 b _0803B1BA .pool _0803B1B8: movs r0, 0x1 _0803B1BA: 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, =gUnknown_03005D04 ldr r0, =sub_803B25C str r0, [r1] _0803B1D0: pop {r0} bx r0 .pool thumb_func_end sub_803B180 thumb_func_start sub_803B1DC sub_803B1DC: @ 803B1DC push {r4,r5,lr} ldr r0, =gBattleTypeFlags ldr r1, [r0] movs r0, 0x80 lsls r0, 17 ands r0, r1 cmp r0, 0 beq _0803B1FC movs r0, 0x80 lsls r0, 18 ands r0, r1 cmp r0, 0 beq _0803B1FC movs r5, 0x2 cmp r1, 0 bge _0803B1FE _0803B1FC: movs r5, 0x3 _0803B1FE: ldr r1, =gUnknown_02024064 movs r0, 0 strb r0, [r1] ldr r0, =gUnknown_0202406C ldrb r0, [r0] cmp r0, 0 beq _0803B23A adds r4, r1, 0 _0803B20E: ldrb r0, [r4] bl battle_get_per_side_status lsls r0, 24 lsrs r0, 24 cmp r0, r5 bne _0803B228 movs r0, 0 bl dp01_build_cmdbuf_x2F_2F_2F_2F ldrb r0, [r4] bl dp01_battle_side_mark_buffer_for_execution _0803B228: ldrb r0, [r4] adds r0, 0x1 strb r0, [r4] ldr r1, =gUnknown_0202406C lsls r0, 24 lsrs r0, 24 ldrb r1, [r1] cmp r0, r1 bcc _0803B20E _0803B23A: ldr r1, =gUnknown_03005D04 ldr r0, =bc_801362C str r0, [r1] pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_803B1DC thumb_func_start sub_803B25C sub_803B25C: @ 803B25C push {r4-r6,lr} ldr r0, =gBattleTypeFlags ldr r2, [r0] movs r0, 0x80 lsls r0, 17 ands r0, r2 cmp r0, 0 beq _0803B298 movs r0, 0x80 lsls r0, 18 ands r0, r2 cmp r0, 0 beq _0803B298 movs r1, 0x80 lsls r1, 24 ands r1, r2 negs r0, r1 orrs r0, r1 lsrs r5, r0, 31 b _0803B29A .pool _0803B288: ldr r1, =gUnknown_03005D04 ldr r0, =sub_803B1DC b _0803B2F0 .pool _0803B298: movs r5, 0x1 _0803B29A: ldr r0, =gUnknown_02024068 ldr r2, [r0] cmp r2, 0 bne _0803B2F2 ldr r0, =gUnknown_02024064 strb r2, [r0] ldr r1, =gUnknown_0202406C adds r4, r0, 0 ldrb r1, [r1] cmp r2, r1 bcs _0803B2EC adds r6, r4, 0 _0803B2B2: ldrb r0, [r4] bl battle_get_per_side_status lsls r0, 24 lsrs r0, 24 cmp r0, r5 bne _0803B2D8 movs r0, 0 bl dp01_build_cmdbuf_x2F_2F_2F_2F ldrb r0, [r4] bl dp01_battle_side_mark_buffer_for_execution ldr r0, =gBattleTypeFlags ldr r0, [r0] ldr r1, =0x00008040 ands r0, r1 cmp r0, 0 bne _0803B288 _0803B2D8: ldrb r0, [r6] adds r0, 0x1 strb r0, [r6] ldr r1, =gUnknown_0202406C lsls r0, 24 lsrs r0, 24 ldr r4, =gUnknown_02024064 ldrb r1, [r1] cmp r0, r1 bcc _0803B2B2 _0803B2EC: ldr r1, =gUnknown_03005D04 ldr r0, =bc_801362C _0803B2F0: str r0, [r1] _0803B2F2: pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_803B25C thumb_func_start bc_801362C bc_801362C: @ 803B314 push {r4-r7,lr} ldr r0, =gUnknown_02024068 ldr r1, [r0] cmp r1, 0 bne _0803B384 ldr r2, =gUnknown_02024064 strb r1, [r2] ldr r0, =gUnknown_0202406C ldrb r0, [r0] cmp r1, r0 bcs _0803B37E adds r4, r2, 0 ldr r6, =gBattleMons movs r5, 0x58 adds r7, r6, 0 adds r7, 0x48 _0803B334: ldrb r0, [r4] bl battle_side_get_owner lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _0803B36C ldr r0, =gBattleTypeFlags ldr r0, [r0] ldr r1, =0x063f0902 ands r0, r1 cmp r0, 0 bne _0803B36C ldrb r0, [r4] muls r0, r5 adds r0, r6 ldrh r0, [r0] bl SpeciesToNationalPokedexNum lsls r0, 16 lsrs r0, 16 ldrb r1, [r4] muls r1, r5 adds r1, r7 ldr r2, [r1] movs r1, 0x2 bl SetPokedexFlag _0803B36C: ldrb r0, [r4] adds r0, 0x1 strb r0, [r4] ldr r1, =gUnknown_0202406C lsls r0, 24 lsrs r0, 24 ldrb r1, [r1] cmp r0, r1 bcc _0803B334 _0803B37E: ldr r1, =gUnknown_03005D04 ldr r0, =sub_803B3CC str r0, [r1] _0803B384: pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end bc_801362C thumb_func_start sub_803B3AC sub_803B3AC: @ 803B3AC push {lr} ldr r0, =gUnknown_02024068 ldr r0, [r0] cmp r0, 0 bne _0803B3BC ldr r1, =gUnknown_03005D04 ldr r0, =sub_803B3CC str r0, [r1] _0803B3BC: pop {r0} bx r0 .pool thumb_func_end sub_803B3AC thumb_func_start sub_803B3CC sub_803B3CC: @ 803B3CC push {lr} ldr r0, =gUnknown_02024068 ldr r0, [r0] cmp r0, 0 bne _0803B418 ldr r1, =gBattleTypeFlags ldr r2, [r1] movs r0, 0x80 lsls r0, 17 ands r0, r2 cmp r0, 0 beq _0803B3F4 movs r0, 0x80 lsls r0, 18 ands r0, r2 cmp r0, 0 beq _0803B3F4 movs r3, 0x1 cmp r2, 0 bge _0803B3F6 _0803B3F4: movs r3, 0 _0803B3F6: ldr r0, [r1] movs r1, 0x80 ands r0, r1 cmp r0, 0 bne _0803B412 adds r0, r3, 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 _0803B412: ldr r1, =gUnknown_03005D04 ldr r0, =sub_803B4C8 str r0, [r1] _0803B418: pop {r0} bx r0 .pool thumb_func_end sub_803B3CC thumb_func_start sub_803B42C sub_803B42C: @ 803B42C push {r4,r5,lr} ldr r0, =gBattleTypeFlags ldr r1, [r0] movs r0, 0x80 lsls r0, 17 ands r0, r1 cmp r0, 0 beq _0803B44C movs r0, 0x80 lsls r0, 18 ands r0, r1 cmp r0, 0 beq _0803B44C movs r5, 0x3 cmp r1, 0 bge _0803B44E _0803B44C: movs r5, 0x2 _0803B44E: ldr r1, =gUnknown_02024064 movs r0, 0 strb r0, [r1] ldr r0, =gUnknown_0202406C ldrb r0, [r0] cmp r0, 0 beq _0803B48A adds r4, r1, 0 _0803B45E: ldrb r0, [r4] bl battle_get_per_side_status lsls r0, 24 lsrs r0, 24 cmp r0, r5 bne _0803B478 movs r0, 0 bl dp01_build_cmdbuf_x2F_2F_2F_2F ldrb r0, [r4] bl dp01_battle_side_mark_buffer_for_execution _0803B478: ldrb r0, [r4] adds r0, 0x1 strb r0, [r4] ldr r1, =gUnknown_0202406C lsls r0, 24 lsrs r0, 24 ldrb r1, [r1] cmp r0, r1 bcc _0803B45E _0803B48A: ldr r2, =gUnknown_0202449C ldr r0, [r2] adds r0, 0x4C movs r1, 0 strb r1, [r0] ldr r0, [r2] adds r0, 0xD9 strb r1, [r0] ldr r0, [r2] movs r2, 0xD1 lsls r2, 1 adds r0, r2 strb r1, [r0] ldr r1, =gUnknown_03005D04 ldr r0, =sub_803B628 str r0, [r1] pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_803B42C thumb_func_start sub_803B4C8 sub_803B4C8: @ 803B4C8 push {r4-r6,lr} ldr r0, =gBattleTypeFlags ldr r1, [r0] movs r0, 0x80 lsls r0, 17 ands r0, r1 cmp r0, 0 beq _0803B500 movs r0, 0x80 lsls r0, 18 ands r0, r1 cmp r0, 0 beq _0803B500 movs r6, 0x1 cmp r1, 0 bge _0803B502 b _0803B500 .pool _0803B4F0: ldr r1, =gUnknown_03005D04 ldr r0, =sub_803B42C b _0803B572 .pool _0803B500: movs r6, 0 _0803B502: ldr r0, =gUnknown_02024068 ldr r2, [r0] cmp r2, 0 bne _0803B574 ldr r0, =gUnknown_02024064 strb r2, [r0] ldr r1, =gUnknown_0202406C adds r4, r0, 0 ldrb r1, [r1] cmp r2, r1 bcs _0803B554 adds r5, r4, 0 _0803B51A: ldrb r0, [r4] bl battle_get_per_side_status lsls r0, 24 lsrs r0, 24 cmp r0, r6 bne _0803B540 movs r0, 0 bl dp01_build_cmdbuf_x2F_2F_2F_2F ldrb r0, [r4] bl dp01_battle_side_mark_buffer_for_execution ldr r0, =gBattleTypeFlags ldr r0, [r0] movs r1, 0x40 ands r0, r1 cmp r0, 0 bne _0803B4F0 _0803B540: ldrb r0, [r5] adds r0, 0x1 strb r0, [r5] ldr r1, =gUnknown_0202406C lsls r0, 24 lsrs r0, 24 ldr r4, =gUnknown_02024064 ldrb r1, [r1] cmp r0, r1 bcc _0803B51A _0803B554: ldr r2, =gUnknown_0202449C ldr r0, [r2] adds r0, 0x4C movs r1, 0 strb r1, [r0] ldr r0, [r2] adds r0, 0xD9 strb r1, [r0] ldr r0, [r2] movs r2, 0xD1 lsls r2, 1 adds r0, r2 strb r1, [r0] ldr r1, =gUnknown_03005D04 ldr r0, =sub_803B628 _0803B572: str r0, [r1] _0803B574: pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_803B4C8 thumb_func_start sub_803B598 sub_803B598: @ 803B598 push {r4,r5,lr} ldr r0, =gUnknown_02024068 ldr r1, [r0] cmp r1, 0 bne _0803B606 ldr r2, =gUnknown_02024064 strb r1, [r2] ldr r0, =gUnknown_0202406C ldrb r0, [r0] cmp r1, r0 bcs _0803B5E6 adds r4, r2, 0 ldr r5, =gUnknown_0202406E _0803B5B2: ldrb r0, [r4] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 bne _0803B5D4 ldrb r0, [r4] lsls r0, 1 adds r0, r5 ldrb r1, [r0] movs r0, 0 movs r2, 0 bl dp01_build_cmdbuf_x05_a_b_c ldrb r0, [r4] bl dp01_battle_side_mark_buffer_for_execution _0803B5D4: ldrb r0, [r4] adds r0, 0x1 strb r0, [r4] ldr r1, =gUnknown_0202406C lsls r0, 24 lsrs r0, 24 ldrb r1, [r1] cmp r0, r1 bcc _0803B5B2 _0803B5E6: ldr r2, =gUnknown_0202449C ldr r0, [r2] adds r0, 0x4C movs r1, 0 strb r1, [r0] ldr r0, [r2] adds r0, 0xD9 strb r1, [r0] ldr r0, [r2] movs r2, 0xD1 lsls r2, 1 adds r0, r2 strb r1, [r0] ldr r1, =gUnknown_03005D04 ldr r0, =sub_803B628 str r0, [r1] _0803B606: pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_803B598 thumb_func_start sub_803B628 sub_803B628: @ 803B628 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x4 movs r0, 0 mov r9, r0 ldr r0, =gUnknown_02024068 ldr r0, [r0] cmp r0, 0 beq _0803B642 b _0803B8B2 _0803B642: ldr r0, =gUnknown_0202449C ldr r0, [r0] adds r0, 0x4C ldrb r0, [r0] cmp r0, 0 bne _0803B6C2 movs r5, 0 ldr r1, =gUnknown_0202406C mov r10, r1 ldrb r3, [r1] cmp r5, r3 bge _0803B668 ldr r2, =gUnknown_0202407E _0803B65C: adds r0, r5, r2 strb r5, [r0] adds r5, 0x1 ldrb r0, [r1] cmp r5, r0 blt _0803B65C _0803B668: movs r5, 0 b _0803B6B8 .pool _0803B67C: adds r4, r5, 0x1 mov r8, r4 ldrb r1, [r1] cmp r8, r1 bge _0803B6B6 ldr r6, =gUnknown_0202407E ldr r1, =gUnknown_0202406C mov r10, r1 lsls r7, r5, 24 _0803B68E: adds r0, r5, r6 ldrb r0, [r0] adds r1, r4, r6 ldrb r1, [r1] movs r2, 0x1 bl b_first_side lsls r0, 24 cmp r0, 0 beq _0803B6AC lsls r1, r4, 24 lsrs r1, 24 lsrs r0, r7, 24 bl sub_803CEDC _0803B6AC: adds r4, 0x1 ldr r0, =gUnknown_0202406C ldrb r0, [r0] cmp r4, r0 blt _0803B68E _0803B6B6: mov r5, r8 _0803B6B8: mov r1, r10 ldrb r0, [r1] subs r0, 0x1 cmp r5, r0 blt _0803B67C _0803B6C2: ldr r5, =gUnknown_0202449C ldr r0, [r5] movs r4, 0xD1 lsls r4, 1 adds r0, r4 ldrb r0, [r0] cmp r0, 0 bne _0803B6FC str r0, [sp] movs r0, 0 movs r1, 0 movs r2, 0 movs r3, 0xFF bl ability_something lsls r0, 24 cmp r0, 0 beq _0803B6FC ldr r0, [r5] adds r0, r4 movs r1, 0x1 strb r1, [r0] b _0803B8B2 .pool _0803B6FC: ldr r2, =gUnknown_0202449C ldr r0, [r2] adds r0, 0x4C ldr r1, =gUnknown_0202406C ldrb r0, [r0] ldrb r1, [r1] cmp r0, r1 bcs _0803B756 ldr r5, =gUnknown_0202407E adds r4, r2, 0 _0803B710: ldr r0, [r4] adds r0, 0x4C ldrb r0, [r0] adds r0, r5 ldrb r1, [r0] movs r0, 0 str r0, [sp] movs r2, 0 movs r3, 0 bl ability_something lsls r0, 24 cmp r0, 0 beq _0803B736 mov r0, r9 adds r0, 0x1 lsls r0, 24 lsrs r0, 24 mov r9, r0 _0803B736: ldr r1, [r4] adds r1, 0x4C ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] mov r3, r9 cmp r3, 0 beq _0803B748 b _0803B8B2 _0803B748: ldr r0, [r4] adds r0, 0x4C ldr r1, =gUnknown_0202406C ldrb r0, [r0] ldrb r1, [r1] cmp r0, r1 bcc _0803B710 _0803B756: movs r0, 0 str r0, [sp] movs r0, 0x9 movs r1, 0 movs r2, 0 movs r3, 0 bl ability_something lsls r0, 24 lsrs r0, 24 cmp r0, 0 beq _0803B770 b _0803B8B2 _0803B770: str r0, [sp] movs r0, 0xB movs r1, 0 movs r2, 0 movs r3, 0 bl ability_something lsls r0, 24 cmp r0, 0 beq _0803B786 b _0803B8B2 _0803B786: ldr r2, =gUnknown_0202449C ldr r0, [r2] adds r0, 0xD9 ldr r1, =gUnknown_0202406C ldrb r0, [r0] ldrb r1, [r1] cmp r0, r1 bcs _0803B7DA ldr r5, =gUnknown_0202407E adds r4, r2, 0 _0803B79A: ldr r0, [r4] adds r0, 0xD9 ldrb r0, [r0] adds r0, r5 ldrb r1, [r0] movs r0, 0 movs r2, 0 bl berry_effects_maybe lsls r0, 24 cmp r0, 0 beq _0803B7BC mov r0, r9 adds r0, 0x1 lsls r0, 24 lsrs r0, 24 mov r9, r0 _0803B7BC: ldr r1, [r4] adds r1, 0xD9 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] mov r0, r9 cmp r0, 0 bne _0803B8B2 ldr r0, [r4] adds r0, 0xD9 ldr r1, =gUnknown_0202406C ldrb r0, [r0] ldrb r1, [r1] cmp r0, r1 bcc _0803B79A _0803B7DA: movs r5, 0 ldr r1, =gUnknown_0202449C mov r8, r1 movs r7, 0x6 ldr r6, =gUnknown_0202421C ldr r2, =gUnknown_02024274 movs r4, 0xFF movs r3, 0 _0803B7EA: mov r1, r8 ldr r0, [r1] adds r0, r5, r0 adds r0, 0x5C strb r7, [r0] adds r1, r5, r6 ldrb r0, [r1] orrs r0, r4 strb r0, [r1] strh r3, [r2] adds r2, 0x2 adds r5, 0x1 cmp r5, 0x3 ble _0803B7EA movs r0, 0 bl sub_803D580 bl sub_803D6A0 ldr r0, =gUnknown_0202449C ldr r0, [r0] adds r0, 0x91 ldr r1, =gUnknown_02024210 ldrb r1, [r1] strb r1, [r0] ldr r0, =gUnknown_085CC23E movs r1, 0 bl battle_show_message_maybe ldr r1, =gUnknown_03005D04 ldr r0, =sub_803BE74 str r0, [r1] bl sub_803F988 ldr r1, =gUnknown_02024332 movs r2, 0 adds r0, r1, 0x7 _0803B834: strb r2, [r0] subs r0, 0x1 cmp r0, r1 bge _0803B834 movs r5, 0 ldr r3, =gUnknown_0202406C ldr r2, =gUnknown_0202449C ldr r6, =gUnknown_02024474 ldr r7, =gBattleMoveFlags ldrb r0, [r3] cmp r5, r0 bge _0803B866 ldr r0, =gBattleMons movs r4, 0x9 negs r4, r4 adds r1, r0, 0 adds r1, 0x50 _0803B856: ldr r0, [r1] ands r0, r4 str r0, [r1] adds r1, 0x58 adds r5, 0x1 ldrb r0, [r3] cmp r5, r0 blt _0803B856 _0803B866: ldr r0, [r2] movs r1, 0 strb r1, [r0] ldr r0, [r2] strb r1, [r0, 0x1] ldr r0, [r2] movs r3, 0xD0 lsls r3, 1 adds r0, r3 strb r1, [r0] ldr r0, [r2] adds r3, 0x1 adds r0, r3 strb r1, [r0] movs r1, 0 strb r1, [r6, 0x14] ldr r0, [r2] adds r0, 0x4D strb r1, [r0] ldr r0, [r2] strb r1, [r0, 0x3] strb r1, [r7] bl Random ldr r1, =gUnknown_02024330 strh r0, [r1] ldr r0, =gBattleTypeFlags ldr r0, [r0] movs r1, 0x80 lsls r1, 11 ands r0, r1 cmp r0, 0 beq _0803B8B2 bl sub_80A369C ldr r0, =gUnknown_082DB8BE bl b_call_bc_move_exec _0803B8B2: add sp, 0x4 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_803B628 thumb_func_start bc_8013B1C bc_8013B1C: @ 803B904 push {r4-r6,lr} ldr r0, =gUnknown_02024068 ldr r0, [r0] cmp r0, 0 bne _0803B994 ldr r1, =gUnknown_03005D04 ldr r0, =sub_803B9BC str r0, [r1] ldr r3, =gUnknown_0202406C ldr r1, =gUnknown_02024332 movs r2, 0 adds r0, r1, 0x7 _0803B91C: strb r2, [r0] subs r0, 0x1 cmp r0, r1 bge _0803B91C movs r4, 0 ldrb r3, [r3] cmp r4, r3 bge _0803B96E ldr r5, =gBattleMons adds r6, r5, 0 adds r6, 0x4C _0803B932: 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 _0803B964 movs r0, 0x80 lsls r0, 5 ands r3, r0 cmp r3, 0 beq _0803B964 lsls r0, r4, 24 lsrs r0, 24 bl b_cancel_multi_turn_move_maybe _0803B964: adds r4, 0x1 ldr r0, =gUnknown_0202406C ldrb r0, [r0] cmp r4, r0 blt _0803B932 _0803B96E: ldr r2, =gUnknown_0202449C ldr r0, [r2] movs r1, 0 strb r1, [r0] ldr r0, [r2] strb r1, [r0, 0x1] ldr r0, [r2] movs r3, 0xD0 lsls r3, 1 adds r0, r3 strb r1, [r0] ldr r0, [r2] adds r3, 0x1 adds r0, r3 strb r1, [r0] ldr r0, [r2] strb r1, [r0, 0x3] ldr r0, =gBattleMoveFlags strb r1, [r0] _0803B994: pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end bc_8013B1C thumb_func_start sub_803B9BC sub_803B9BC: @ 803B9BC push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} movs r0, 0x1 bl sub_803D580 ldr r0, =gUnknown_0202433A ldrb r0, [r0] cmp r0, 0 bne _0803B9EA bl sub_80401D0 lsls r0, 24 cmp r0, 0 beq _0803B9DE b _0803BB78 _0803B9DE: bl sub_8040924 lsls r0, 24 cmp r0, 0 beq _0803B9EA b _0803BB78 _0803B9EA: bl sub_8041728 lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0 beq _0803B9F8 b _0803BB78 _0803B9F8: ldr r0, =gUnknown_0202449C ldr r0, [r0] adds r0, 0x4D strb r1, [r0] bl sub_8041364 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0 beq _0803BA0E b _0803BB78 _0803BA0E: movs r0, 0 bl sub_803D580 ldr r2, =gUnknown_02024280 ldr r0, [r2] ldr r1, =0xfffffdff ands r0, r1 ldr r1, =0xfff7ffff ands r0, r1 ldr r1, =0xffbfffff ands r0, r1 ldr r1, =0xffefffff ands r0, r1 str r0, [r2] ldr r0, =gUnknown_02024474 strb r4, [r0, 0x18] strb r4, [r0, 0x19] strb r4, [r0, 0x14] ldr r0, =gBattleMoveDamage str r4, [r0] ldr r0, =gBattleMoveFlags strb r4, [r0] ldr r1, =gUnknown_02024332 movs r2, 0 adds r0, r1, 0x4 _0803BA40: strb r2, [r0] subs r0, 0x1 cmp r0, r1 bge _0803BA40 ldr r0, =gUnknown_0202433A ldrb r0, [r0] cmp r0, 0 beq _0803BA98 ldr r1, =gUnknown_02024083 movs r0, 0xC strb r0, [r1] ldr r1, =gUnknown_03005D04 ldr r0, =bc_bs_exec str r0, [r1] b _0803BB78 .pool _0803BA98: ldr r1, =gUnknown_03005D10 ldrb r0, [r1, 0x13] ldr r2, =gUnknown_0202449C mov r8, r2 cmp r0, 0xFE bhi _0803BAB2 adds r0, 0x1 strb r0, [r1, 0x13] ldr r1, [r2] adds r1, 0xDA ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] _0803BAB2: movs r2, 0 ldr r4, =gUnknown_0202406C ldr r0, =gUnknown_02024210 mov r12, r0 ldr r1, =gUnknown_085CC23E mov r9, r1 ldrb r0, [r4] cmp r2, r0 bge _0803BAE0 ldr r7, =gUnknown_0202421C movs r6, 0xFF movs r5, 0 ldr r3, =gUnknown_02024274 _0803BACC: 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 _0803BACC _0803BAE0: movs r2, 0 ldr r3, =gUnknown_0202449C movs r1, 0x6 _0803BAE6: ldr r0, [r3] adds r0, r2, r0 adds r0, 0x5C strb r1, [r0] adds r2, 0x1 cmp r2, 0x3 ble _0803BAE6 mov r2, r8 ldr r0, [r2] adds r0, 0x91 mov r2, r12 ldrb r1, [r2] strb r1, [r0] mov r0, r9 movs r1, 0 bl battle_show_message_maybe ldr r1, =gUnknown_03005D04 ldr r0, =sub_803BE74 str r0, [r1] bl Random ldr r1, =gUnknown_02024330 strh r0, [r1] ldr r0, =gBattleTypeFlags ldr r1, [r0] movs r0, 0x80 lsls r0, 10 ands r0, r1 cmp r0, 0 beq _0803BB5C ldr r0, =gUnknown_082DB881 bl b_call_bc_move_exec b _0803BB78 .pool _0803BB5C: movs r0, 0x80 lsls r0, 11 ands r1, r0 cmp r1, 0 beq _0803BB78 mov r1, r8 ldr r0, [r1] adds r0, 0xDA ldrb r0, [r0] cmp r0, 0 bne _0803BB78 ldr r0, =gUnknown_082DB8BE bl b_call_bc_move_exec _0803BB78: pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_803B9BC thumb_func_start sub_803BB88 sub_803BB88: @ 803BB88 push {r4-r7,lr} sub sp, 0x4 ldr r1, =gBattleMons ldr r0, =gUnknown_02024064 ldrb r2, [r0] movs r0, 0x58 muls r0, r2 adds r1, r0, r1 ldrh r0, [r1, 0x2E] cmp r0, 0xAF bne _0803BBB8 ldr r1, =gUnknown_02024404 lsls r0, r2, 3 subs r0, r2 lsls r0, 2 adds r0, r1 ldrb r2, [r0, 0x7] b _0803BBC2 .pool _0803BBB8: ldrh r0, [r1, 0x2E] bl itemid_get_x12 lsls r0, 24 lsrs r2, r0, 24 _0803BBC2: ldr r1, =gUnknown_0202420F ldr r3, =gUnknown_02024064 ldrb r0, [r3] strb r0, [r1] cmp r2, 0x25 bne _0803BBD0 b _0803BD4C _0803BBD0: ldr r0, =gBattleTypeFlags ldr r0, [r0] movs r1, 0x2 ands r0, r1 cmp r0, 0 beq _0803BBDE b _0803BD4C _0803BBDE: ldr r1, =gBattleMons ldrb r2, [r3] movs r0, 0x58 muls r0, r2 adds r0, r1 adds r0, 0x20 ldrb r0, [r0] cmp r0, 0x32 bne _0803BBF2 b _0803BD4C _0803BBF2: adds r0, r2, 0 bl battle_side_get_owner lsls r0, 24 lsrs r6, r0, 24 movs r5, 0 ldr r0, =gUnknown_0202406C ldrb r0, [r0] cmp r5, r0 bge _0803BC86 movs r7, 0 _0803BC08: lsrs r4, r7, 24 adds r0, r4, 0 bl battle_side_get_owner lsls r0, 24 lsrs r0, 24 cmp r6, r0 beq _0803BC2C ldr r1, =gBattleMons movs r0, 0x58 muls r0, r5 adds r0, r1 adds r2, r0, 0 adds r2, 0x20 ldrb r0, [r2] cmp r0, 0x17 bne _0803BC2C b _0803BD54 _0803BC2C: adds r0, r4, 0 bl battle_side_get_owner lsls r0, 24 lsrs r0, 24 cmp r6, r0 beq _0803BC76 ldr r3, =gBattleMons ldr r0, =gUnknown_02024064 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 _0803BC76 adds r0, r1, 0 adds r0, 0x21 ldrb r0, [r0] cmp r0, 0x2 beq _0803BC76 adds r0, r1, 0 adds r0, 0x22 ldrb r0, [r0] cmp r0, 0x2 beq _0803BC76 adds r0, r5, 0 muls r0, r2 adds r0, r3 adds r2, r0, 0 adds r2, 0x20 ldrb r0, [r2] cmp r0, 0x47 bne _0803BC76 b _0803BD70 _0803BC76: movs r0, 0x80 lsls r0, 17 adds r7, r0 adds r5, 0x1 ldr r0, =gUnknown_0202406C ldrb r0, [r0] cmp r5, r0 blt _0803BC08 _0803BC86: ldr r4, =gUnknown_02024064 ldrb r1, [r4] movs r0, 0 str r0, [sp] movs r0, 0xF movs r2, 0x2A movs r3, 0 bl ability_something lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0 beq _0803BCF8 ldr r6, =gBattleMons 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 _0803BCBE adds r0, r1, 0 adds r0, 0x22 ldrb r0, [r0] cmp r0, 0x8 bne _0803BCF8 _0803BCBE: ldr r0, =gUnknown_02024474 subs r1, r5, 0x1 strb r1, [r0, 0x17] ldr r2, =gUnknown_0202420A adds r0, r1, 0 muls r0, r3 adds r0, r6 adds r0, 0x20 ldrb r0, [r0] strb r0, [r2] ldr r1, =gUnknown_02024332 movs r0, 0x2 b _0803BD90 .pool _0803BCF8: ldr r1, =gBattleMons ldr r0, =gUnknown_02024064 ldrb r2, [r0] movs r0, 0x58 muls r0, r2 adds r1, 0x50 adds r0, r1 ldr r0, [r0] ldr r1, =0x0400e000 ands r0, r1 cmp r0, 0 bne _0803BD22 ldr r1, =gUnknown_020242AC lsls r0, r2, 2 adds r0, r1 ldr r0, [r0] movs r1, 0x80 lsls r1, 3 ands r0, r1 cmp r0, 0 beq _0803BD40 _0803BD22: ldr r1, =gUnknown_02024332 movs r0, 0 strb r0, [r1, 0x5] movs r0, 0x1 b _0803BD92 .pool _0803BD40: ldr r0, =gBattleTypeFlags ldr r0, [r0] movs r1, 0x10 ands r0, r1 cmp r0, 0 bne _0803BD8C _0803BD4C: movs r0, 0 b _0803BD92 .pool _0803BD54: ldr r0, =gUnknown_02024474 strb r5, [r0, 0x17] ldr r1, =gUnknown_0202420A ldrb r0, [r2] strb r0, [r1] ldr r1, =gUnknown_02024332 movs r0, 0x2 b _0803BD90 .pool _0803BD70: ldr r0, =gUnknown_02024474 strb r5, [r0, 0x17] ldr r1, =gUnknown_0202420A ldrb r0, [r2] strb r0, [r1] ldr r1, =gUnknown_02024332 movs r0, 0x2 b _0803BD90 .pool _0803BD8C: ldr r1, =gUnknown_02024332 movs r0, 0x1 _0803BD90: strb r0, [r1, 0x5] _0803BD92: add sp, 0x4 pop {r4-r7} pop {r1} bx r1 .pool thumb_func_end sub_803BB88 thumb_func_start sub_803BDA0 sub_803BDA0: @ 803BDA0 push {r4-r7,lr} mov r7, r8 push {r7} lsls r0, 24 lsrs r5, r0, 24 movs r3, 0 ldr r0, =gUnknown_0202406E mov r8, r0 ldr r1, =gUnknown_0203CF00 mov r12, r1 ldr r7, =gUnknown_0202449C lsls r0, r5, 1 adds r4, r0, r5 adds r6, r0, 0 _0803BDBC: mov r0, r12 adds r2, r3, r0 ldr r1, [r7] adds r0, r4, r3 adds r0, r1 adds r0, 0x60 ldrb r0, [r0] strb r0, [r2] adds r3, 0x1 cmp r3, 0x2 ble _0803BDBC mov r1, r8 adds r0, r6, r1 ldrb r0, [r0] bl pokemon_order_func adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldr r7, =gUnknown_0202449C ldr r0, [r7] adds r0, r5, r0 adds r0, 0x5C ldrb r0, [r0] bl pokemon_order_func adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 bl sub_81B8FB0 ldr r0, =gBattleTypeFlags ldr r0, [r0] movs r1, 0x1 ands r0, r1 cmp r0, 0 beq _0803BE4C movs r3, 0 adds r4, r7, 0 adds r6, r5 movs r0, 0x2 adds r1, r5, 0 eors r1, r0 ldr r7, =gUnknown_0203CF00 lsls r0, r1, 1 adds r5, r0, r1 _0803BE1A: ldr r0, [r4] adds r1, r6, r3 adds r1, r0 adds r1, 0x60 adds r2, r3, r7 ldrb r0, [r2] strb r0, [r1] ldr r1, [r4] adds r0, r5, r3 adds r0, r1 adds r0, 0x60 ldrb r1, [r2] strb r1, [r0] adds r3, 0x1 cmp r3, 0x2 ble _0803BE1A b _0803BE66 .pool _0803BE4C: movs r3, 0 adds r2, r6, r5 ldr r4, =gUnknown_0203CF00 _0803BE52: ldr r0, [r7] adds r1, r2, r3 adds r1, r0 adds r1, 0x60 adds r0, r3, r4 ldrb r0, [r0] strb r0, [r1] adds r3, 0x1 cmp r3, 0x2 ble _0803BE52 _0803BE66: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_803BDA0 thumb_func_start sub_803BE74 sub_803BE74: @ 803BE74 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x1C ldr r0, =gUnknown_02024332 movs r1, 0 strb r1, [r0, 0x4] ldr r0, =gUnknown_02024064 strb r1, [r0] ldr r0, =gUnknown_0202406C bl _0803CD12 .pool _0803BE9C: ldr r4, =gUnknown_02024064 ldrb r0, [r4] bl battle_get_per_side_status lsls r0, 24 lsrs r5, r0, 24 ldr r1, =gUnknown_02024332 ldrb r0, [r4] adds r0, r1 ldrb r0, [r0] cmp r0, 0x8 bls _0803BEB8 bl _0803CD04 _0803BEB8: lsls r0, 2 ldr r1, =_0803BED0 adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _0803BED0: .4byte _0803BEF4 .4byte _0803BF0C .4byte _0803C02C .4byte _0803C7D8 .4byte _0803CAD0 .4byte _0803CB84 .4byte _0803CBC8 .4byte _0803CBF4 .4byte _0803CC38 _0803BEF4: bl sub_8185FD0 ldr r1, =gUnknown_02024332 ldr r0, =gUnknown_02024064 ldrb r0, [r0] adds r0, r1 bl _0803CC20 .pool _0803BF0C: ldr r0, =gUnknown_02024064 ldrb r1, [r0] ldr r4, =gUnknown_0202449C ldr r0, [r4] adds r1, r0 adds r1, 0x5C movs r0, 0x6 strb r0, [r1] ldr r0, =gBattleTypeFlags ldr r0, [r0] movs r1, 0x40 ands r0, r1 cmp r0, 0 bne _0803BF68 movs r1, 0x2 movs r0, 0x2 ands r0, r5 cmp r0, 0 beq _0803BF68 eors r5, r1 adds r0, r5, 0 bl battle_get_side_with_given_state ldr r1, [r4] adds r1, 0x91 ldrb r1, [r1] ldr r2, =gBitTable lsls r0, 24 lsrs r0, 22 adds r0, r2 ldr r0, [r0] ands r1, r0 cmp r1, 0 bne _0803BF68 ldr r4, =gUnknown_02024332 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, 0x5 beq _0803BF68 bl _0803CD04 _0803BF68: ldr r0, =gUnknown_0202449C ldr r0, [r0] adds r0, 0x91 ldrb r3, [r0] ldr r1, =gBitTable ldr r4, =gUnknown_02024064 ldrb r2, [r4] lsls r0, r2, 2 adds r0, r1 ldr r0, [r0] ands r3, r0 cmp r3, 0 beq _0803BFD0 ldr r0, =gUnknown_0202421C adds r0, r2, r0 movs r1, 0xD strb r1, [r0] ldr r0, =gBattleTypeFlags ldr r0, [r0] movs r1, 0x40 ands r0, r1 cmp r0, 0 bne _0803BFBC ldr r0, =gUnknown_02024332 ldrb r1, [r4] adds r1, r0 movs r0, 0x5 strb r0, [r1] bl _0803CD04 .pool _0803BFBC: ldr r0, =gUnknown_02024332 ldrb r1, [r4] adds r1, r0 movs r0, 0x4 strb r0, [r1] bl _0803CD04 .pool _0803BFD0: ldr r1, =gBattleMons 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 _0803BFF0 movs r0, 0x80 lsls r0, 15 ands r1, r0 cmp r1, 0 beq _0803C00C _0803BFF0: ldr r0, =gUnknown_0202421C adds r0, r2, r0 strb r3, [r0] ldr r1, =gUnknown_02024332 ldrb r0, [r4] bl _0803CC72 .pool _0803C00C: ldr r0, =gUnknown_0202421C ldrb r1, [r0] ldr r0, =gUnknown_02023864 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 _0803CB68 .pool _0803C02C: ldr r3, =gUnknown_02024068 ldr r1, =gBitTable ldr r6, =gUnknown_02024064 ldrb r5, [r6] lsls r0, r5, 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 beq _0803C058 bl _0803CD04 _0803C058: ldr r4, =gUnknown_02023864 lsls r0, r5, 9 adds r4, 0x1 adds r0, r4 ldrb r1, [r0] adds r0, r5, 0 bl sub_8184FBC ldr r1, =gUnknown_0202421C ldrb r0, [r6] adds r1, r0, r1 lsls r0, 9 adds r0, r4 ldrb r0, [r0] strb r0, [r1] ldrb r0, [r6] lsls r0, 9 adds r0, r4 ldrb r0, [r0] cmp r0, 0xC bls _0803C084 b _0803C6C4 _0803C084: lsls r0, 2 ldr r1, =_0803C0A8 adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _0803C0A8: .4byte _0803C0DC .4byte _0803C230 .4byte _0803C268 .4byte _0803C6C4 .4byte _0803C6C4 .4byte _0803C440 .4byte _0803C48C .4byte _0803C6C4 .4byte _0803C6C4 .4byte _0803C6C4 .4byte _0803C6C4 .4byte _0803C6C4 .4byte _0803C4B4 _0803C0DC: bl sub_80400C8 lsls r0, 24 cmp r0, 0 beq _0803C134 ldr r0, =gUnknown_02024332 ldr r3, =gUnknown_02024064 ldrb r1, [r3] adds r1, r0 movs r4, 0 movs r0, 0x6 strb r0, [r1] ldrb r1, [r3] ldr r2, =gUnknown_0202449C ldr r0, [r2] adds r1, r0 adds r1, 0x54 strb r4, [r1] ldrb r1, [r3] ldr r0, [r2] adds r1, r0 adds r1, 0x84 movs r0, 0x4 strb r0, [r1] ldrb r1, [r3] ldr r2, [r2] adds r2, r1, r2 ldr r0, =gUnknown_02023864 lsls r1, 9 adds r0, 0x3 adds r1, r0 ldrb r0, [r1] strb r0, [r2, 0xC] bl _0803CD70 .pool _0803C134: ldr r3, =gUnknown_020242BC ldr r5, =gUnknown_02024064 ldrb r4, [r5] lsls r0, r4, 3 subs r0, r4 lsls r0, 2 adds r0, r3 ldrh r2, [r0, 0x6] cmp r2, 0 beq _0803C188 ldr r1, =gUnknown_02024274 lsls r0, r4, 1 adds r0, r1 strh r2, [r0] ldrb r2, [r5] ldr r0, =gUnknown_0202449C ldr r1, [r0] adds r1, r2, r1 adds r1, 0x80 lsls r0, r2, 3 subs r0, r2 lsls r0, 2 adds r0, r3 ldrb r0, [r0, 0xC] strb r0, [r1] ldr r1, =gUnknown_02024332 ldrb r0, [r5] adds r0, r1 movs r1, 0x4 strb r1, [r0] bl _0803CD70 .pool _0803C188: add r2, sp, 0x4 ldr r3, =gBattleMons 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 r0, 0xC add r0, r8 mov r9, r0 add r5, sp, 0x4 _0803C1CA: lsls r2, r4, 1 ldrb r0, [r7] muls r0, r6 adds r0, r2, r0 add r0, r9 ldrh r0, [r0] strh r0, [r5] ldr r1, [sp, 0x18] adds r3, r1, 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 _0803C1CA ldr r0, =gBattleTypeFlags ldr r1, [r0] movs r0, 0x1 ands r1, r0 movs r0, 0 movs r2, 0 add r3, sp, 0x4 bl sub_8033E30 b _0803C42E .pool _0803C230: ldr r0, =gBattleTypeFlags ldr r0, [r0] ldr r1, =0x021f0902 ands r0, r1 cmp r0, 0 bne _0803C23E b _0803C48C _0803C23E: ldr r4, =gUnknown_02024064 ldrb r0, [r4] movs r1, 0x1 bl sub_8185008 ldr r1, =gUnknown_02024220 ldrb r0, [r4] lsls r0, 2 adds r0, r1 ldr r1, =gUnknown_082DB879 b _0803C784 .pool _0803C268: ldr r5, =gUnknown_02024064 ldrb r0, [r5] ldr r3, =gUnknown_0202449C ldr r1, [r3] adds r1, r0, r1 adds r1, 0x58 ldr r2, =gUnknown_0202406E lsls r0, 1 adds r0, r2 ldrh r0, [r0] strb r0, [r1] ldr r7, =gBattleMons ldrb r2, [r5] movs r6, 0x58 adds r0, r2, 0 muls r0, r6 adds r1, r7, 0 adds r1, 0x50 adds r0, r1 ldr r1, [r0] ldr r0, =0x0400e000 ands r1, r0 cmp r1, 0 bne _0803C2B8 ldr r0, =gBattleTypeFlags ldr r0, [r0] movs r1, 0x80 lsls r1, 11 ands r0, r1 cmp r0, 0 bne _0803C2B8 ldr r0, =gUnknown_020242AC lsls r1, r2, 2 adds r1, r0 ldr r1, [r1] movs r0, 0x80 lsls r0, 3 ands r1, r0 cmp r1, 0 beq _0803C2EC _0803C2B8: ldr r0, =gUnknown_02024064 ldrb r0, [r0] lsls r1, r0, 1 adds r1, r0 adds r1, 0x60 ldr r0, [r3] adds r0, r1 str r0, [sp] movs r0, 0 movs r1, 0x2 movs r2, 0x6 b _0803C400 .pool _0803C2EC: str r1, [sp] movs r0, 0xC adds r1, r2, 0 movs r2, 0x17 movs r3, 0 bl ability_something lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0 bne _0803C374 ldrb r1, [r5] str r4, [sp] movs r0, 0xC movs r2, 0x47 movs r3, 0 bl ability_something lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0 beq _0803C33C ldrb r0, [r5] muls r0, r6 adds r1, r0, r7 adds r0, r1, 0 adds r0, 0x21 ldrb r0, [r0] cmp r0, 0x2 beq _0803C33C adds r0, r1, 0 adds r0, 0x22 ldrb r0, [r0] cmp r0, 0x2 beq _0803C33C adds r0, r1, 0 adds r0, 0x20 ldrb r0, [r0] cmp r0, 0x1A bne _0803C374 _0803C33C: ldr r5, =gUnknown_02024064 ldrb r1, [r5] movs r0, 0 str r0, [sp] movs r0, 0xF movs r2, 0x2A movs r3, 0 bl ability_something lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0 beq _0803C3B0 ldr r2, =gBattleMons 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 _0803C374 adds r0, r1, 0 adds r0, 0x22 ldrb r0, [r0] cmp r0, 0x8 bne _0803C3B0 _0803C374: subs r1, r4, 0x1 lsls r1, 4 movs r0, 0x4 orrs r1, r0 lsls r1, 24 lsrs r1, 24 ldr r0, =gUnknown_0202420A ldrb r3, [r0] ldr r4, =gUnknown_0202449C ldr r0, =gUnknown_02024064 ldrb r0, [r0] lsls r2, r0, 1 adds r2, r0 adds r2, 0x60 ldr r0, [r4] 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 _0803C42E .pool _0803C3B0: ldr r0, =gUnknown_02024064 ldrb r1, [r0] adds r4, r0, 0 cmp r1, 0x2 bne _0803C3D8 ldr r0, =gUnknown_0202421C ldrb r0, [r0] cmp r0, 0x2 bne _0803C3D8 ldr r0, =gUnknown_0202449C ldr r3, [r0] adds r0, r3, 0 adds r0, 0x5C b _0803C3EE .pool _0803C3D8: ldrb r0, [r4] cmp r0, 0x3 bne _0803C410 ldr r0, =gUnknown_0202421C ldrb r0, [r0, 0x1] cmp r0, 0x2 bne _0803C410 ldr r0, =gUnknown_0202449C ldr r3, [r0] adds r0, r3, 0 adds r0, 0x5D _0803C3EE: ldrb r2, [r0] ldrb r1, [r4] lsls r0, r1, 1 adds r0, r1 adds r0, 0x60 adds r3, r0 str r3, [sp] movs r0, 0 movs r1, 0 _0803C400: movs r3, 0 bl dp01_build_cmdbuf_x16_a_b_c_ptr_d_e_f b _0803C42E .pool _0803C410: ldr r2, =gUnknown_0202449C ldr r0, =gUnknown_02024064 ldrb r0, [r0] lsls r1, r0, 1 adds r1, r0 adds r1, 0x60 ldr r0, [r2] 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 _0803C42E: ldr r0, =gUnknown_02024064 ldrb r0, [r0] bl dp01_battle_side_mark_buffer_for_execution b _0803C6C4 .pool _0803C440: bl sub_806B8B0 lsls r0, 24 cmp r0, 0 bne _0803C44C b _0803C6C4 _0803C44C: ldr r1, =gUnknown_02024220 ldr r3, =gUnknown_02024064 ldrb r0, [r3] lsls r0, 2 adds r0, r1 ldr r1, =gUnknown_082DAB11 str r1, [r0] ldr r0, =gUnknown_02024332 ldrb r1, [r3] adds r1, r0 movs r4, 0 movs r0, 0x6 strb r0, [r1] ldrb r1, [r3] ldr r2, =gUnknown_0202449C ldr r0, [r2] adds r1, r0 adds r1, 0x54 strb r4, [r1] ldrb r1, [r3] b _0803C7A0 .pool _0803C48C: ldr r2, =gUnknown_0202449C ldr r4, =gUnknown_02024064 ldrb r1, [r4] lsls r0, r1, 1 adds r0, r1 adds r0, 0x60 ldr r1, [r2] adds r1, r0 movs r0, 0 bl sub_8033E6C ldrb r0, [r4] bl dp01_battle_side_mark_buffer_for_execution b _0803C6C4 .pool _0803C4B4: ldr r4, =gUnknown_02024332 ldr r5, =gUnknown_02024064 ldrb r0, [r5] adds r0, r4 movs r1, 0x7 strb r1, [r0] ldrb r0, [r5] 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 lsls r0, 24 lsrs r0, 24 adds r0, r4 movs r1, 0x1 strb r1, [r0] ldrb r0, [r5] bl sub_8185008 ldrb r0, [r5] bl battle_get_per_side_status eors r0, r6 lsls r0, 24 lsrs r0, 24 bl battle_get_side_with_given_state ldr r1, =gBattleMons lsls r0, 24 lsrs r0, 24 movs r7, 0x58 muls r0, r7 adds r4, r1, 0 adds r4, 0x50 adds r0, r4 ldr r0, [r0] movs r1, 0x80 lsls r1, 5 ands r0, r1 cmp r0, 0 bne _0803C532 ldrb r0, [r5] bl battle_get_per_side_status eors r0, r6 lsls r0, 24 lsrs r0, 24 bl battle_get_side_with_given_state lsls r0, 24 lsrs r0, 24 muls r0, r7 adds r0, r4 ldr r0, [r0] movs r1, 0x80 lsls r1, 15 ands r0, r1 cmp r0, 0 beq _0803C550 _0803C532: movs r0, 0 bl dp01_build_cmdbuf_x32_32_32_32 ldrb r0, [r5] bl dp01_battle_side_mark_buffer_for_execution bl _0803CD70 .pool _0803C550: ldr r4, =gUnknown_0202421C ldrb r0, [r5] bl battle_get_per_side_status eors r0, r6 lsls r0, 24 lsrs r0, 24 bl battle_get_side_with_given_state lsls r0, 24 lsrs r0, 24 adds r0, r4 ldrb r0, [r0] cmp r0, 0x2 bne _0803C590 ldrb r0, [r5] bl battle_get_per_side_status eors r0, r6 lsls r0, 24 lsrs r0, 24 bl battle_get_side_with_given_state lsls r0, 24 lsrs r0, 24 movs r1, 0x2 bl sub_8185008 b _0803C6AE .pool _0803C590: ldrb r0, [r5] bl battle_get_per_side_status eors r0, r6 lsls r0, 24 lsrs r0, 24 bl battle_get_side_with_given_state lsls r0, 24 lsrs r0, 24 adds r0, r4 ldrb r0, [r0] cmp r0, 0x3 bne _0803C5B6 ldrb r0, [r5] bl battle_get_per_side_status eors r0, r6 b _0803C668 _0803C5B6: ldrb r0, [r5] bl battle_get_per_side_status eors r0, r6 lsls r0, 24 lsrs r0, 24 bl battle_get_side_with_given_state lsls r0, 24 lsrs r0, 24 adds r0, r4 ldrb r0, [r0] cmp r0, 0 bne _0803C628 ldr r4, =gUnknown_0202433C ldrb r0, [r5] bl battle_get_per_side_status eors r0, r6 lsls r0, 24 lsrs r0, 24 bl battle_get_side_with_given_state lsls r0, 24 lsrs r0, 20 adds r0, r4 ldrb r0, [r0] lsls r0, 29 cmp r0, 0 blt _0803C616 ldr r4, =gUnknown_020242BC ldrb r0, [r5] bl battle_get_per_side_status eors r0, r6 lsls r0, 24 lsrs r0, 24 bl battle_get_side_with_given_state lsls r0, 24 lsrs r0, 24 lsls r1, r0, 3 subs r1, r0 lsls r1, 2 adds r1, r4 ldrh r0, [r1, 0x6] cmp r0, 0 beq _0803C628 _0803C616: ldrb r0, [r5] bl battle_get_per_side_status eors r0, r6 b _0803C668 .pool _0803C628: ldr r0, =gBattleTypeFlags ldr r0, [r0] movs r1, 0x80 lsls r1, 10 ands r0, r1 cmp r0, 0 beq _0803C690 ldr r4, =gUnknown_0202421C ldr r6, =gUnknown_02024064 ldrb r0, [r6] 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 lsls r0, 24 lsrs r0, 24 adds r0, r4 ldrb r0, [r0] cmp r0, 0 bne _0803C690 ldr r1, =gRngValue ldr r0, =gUnknown_0203BD30 ldr r0, [r0] str r0, [r1] ldrb r0, [r6] bl battle_get_per_side_status eors r0, r5 _0803C668: lsls r0, 24 lsrs r0, 24 bl battle_get_side_with_given_state lsls r0, 24 lsrs r0, 24 movs r1, 0x1 bl sub_8185008 b _0803C6AE .pool _0803C690: ldr r0, =gUnknown_02024064 ldrb r0, [r0] 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 movs r1, 0x3 bl sub_8185008 _0803C6AE: movs r0, 0 bl dp01_build_cmdbuf_x32_32_32_32 ldr r0, =gUnknown_02024064 ldrb r0, [r0] bl dp01_battle_side_mark_buffer_for_execution b _0803CD70 .pool _0803C6C4: ldr r1, =gBattleTypeFlags ldr r2, [r1] movs r5, 0x8 adds r0, r2, 0 ands r0, r5 adds r3, r1, 0 cmp r0, 0 beq _0803C720 ldr r0, =0x043f0100 ands r2, r0 cmp r2, 0 beq _0803C720 ldr r0, =gUnknown_02023864 ldr r4, =gUnknown_02024064 ldrb r2, [r4] lsls r1, r2, 9 adds r0, 0x1 adds r1, r0 ldrb r0, [r1] cmp r0, 0x3 bne _0803C720 ldr r1, =gUnknown_02024220 lsls r0, r2, 2 adds r0, r1 ldr r1, =gUnknown_082DB9BA str r1, [r0] ldr r1, =gUnknown_02024332 ldrb r0, [r4] adds r0, r1 movs r3, 0 strb r5, [r0] b _0803C792 .pool _0803C720: ldr r0, [r3] ldr r1, =0x0200000a ands r0, r1 cmp r0, 0x8 bne _0803C760 ldr r0, =gUnknown_02023864 ldr r4, =gUnknown_02024064 ldrb r1, [r4] lsls r1, 9 adds r0, 0x1 adds r1, r0 ldrb r0, [r1] cmp r0, 0x3 bne _0803C760 ldr r0, =gUnknown_082DAAFE bl b_call_bc_move_exec ldr r1, =gUnknown_02024332 ldrb r0, [r4] adds r0, r1 b _0803CC20 .pool _0803C760: bl sub_803BB88 lsls r0, 24 cmp r0, 0 beq _0803C7C4 ldr r0, =gUnknown_02023864 ldr r4, =gUnknown_02024064 ldrb r2, [r4] lsls r1, r2, 9 adds r0, 0x1 adds r1, r0 ldrb r0, [r1] cmp r0, 0x3 bne _0803C7C4 ldr r1, =gUnknown_02024220 lsls r0, r2, 2 adds r0, r1 ldr r1, =gUnknown_082DAB0B _0803C784: str r1, [r0] ldr r0, =gUnknown_02024332 ldrb r1, [r4] adds r1, r0 movs r3, 0 movs r0, 0x6 strb r0, [r1] _0803C792: ldrb r1, [r4] ldr r2, =gUnknown_0202449C ldr r0, [r2] adds r1, r0 adds r1, 0x54 strb r3, [r1] ldrb r1, [r4] _0803C7A0: ldr r0, [r2] adds r1, r0 adds r1, 0x84 movs r0, 0x1 strb r0, [r1] b _0803CD70 .pool _0803C7C4: ldr r2, =gUnknown_02024332 ldr r0, =gUnknown_02024064 ldrb r1, [r0] adds r1, r2 b _0803CB74 .pool _0803C7D8: ldr r4, =gUnknown_02024068 ldr r1, =gBitTable ldr r3, =gUnknown_02024064 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 adds r4, r3, 0 cmp r1, 0 beq _0803C804 b _0803CD04 _0803C804: ldr r1, =gUnknown_0202421C adds r0, r5, r1 ldrb r0, [r0] adds r2, r1, 0 cmp r0, 0x9 bls _0803C812 b _0803CD04 _0803C812: lsls r0, 2 ldr r1, =_0803C830 adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _0803C830: .4byte _0803C858 .4byte _0803C99C .4byte _0803C9D4 .4byte _0803CA0A .4byte _0803CA2C .4byte _0803CA40 .4byte _0803CA54 .4byte _0803CA84 .4byte _0803CA98 .4byte _0803CABC _0803C858: ldr r1, =gUnknown_02023864 ldrb r3, [r4] lsls r0, r3, 9 adds r1, 0x1 adds r0, r1 ldrb r1, [r0] cmp r1, 0x3 blt _0803C88A cmp r1, 0x9 ble _0803C878 cmp r1, 0xF beq _0803C87E b _0803C88A .pool _0803C878: adds r0, r3, r2 strb r1, [r0] b _0803CD70 _0803C87E: adds r1, r3, r2 movs r0, 0x2 strb r0, [r1] bl sub_803CDF8 b _0803CD70 _0803C88A: movs r0, 0x2 bl sub_818603C ldr r4, =gUnknown_02023864 ldr r6, =gUnknown_02024064 ldrb r3, [r6] lsls r1, r3, 9 adds r5, r4, 0x2 adds r0, r1, r5 ldrb r2, [r0] adds r7, r4, 0x3 adds r1, r7 ldrb r0, [r1] lsls r0, 8 orrs r2, r0 ldr r0, =0x0000ffff cmp r2, r0 bne _0803C8D0 ldr r0, =gUnknown_02024332 adds r0, r3, r0 movs r1, 0x1 strb r1, [r0] ldrb r0, [r6] bl sub_8185008 b _0803CD04 .pool _0803C8D0: bl sub_803FB4C lsls r0, 24 cmp r0, 0 beq _0803C91C ldrb r0, [r6] movs r1, 0x1 bl sub_8185008 ldr r0, =gUnknown_02024332 ldrb r1, [r6] adds r1, r0 movs r3, 0 movs r0, 0x6 strb r0, [r1] ldrb r1, [r6] ldr r2, =gUnknown_0202449C ldr r0, [r2] adds r1, r0 adds r1, 0x54 strb r3, [r1] ldrb r0, [r6] lsls r0, 9 adds r1, r4, 0x1 adds r0, r1 strb r3, [r0] ldrb r1, [r6] ldr r0, [r2] adds r1, r0 adds r1, 0x84 movs r0, 0x2 strb r0, [r1] b _0803CD70 .pool _0803C91C: ldr r0, =gBattleTypeFlags ldr r0, [r0] movs r1, 0x80 lsls r1, 10 ands r0, r1 cmp r0, 0 bne _0803C942 ldrb r0, [r6] lsls r1, r0, 9 adds r1, r5 ldrb r1, [r1] bl sub_8184FBC ldrb r0, [r6] lsls r1, r0, 9 adds r1, r7 ldrb r1, [r1] bl sub_8184FBC _0803C942: ldrb r0, [r6] ldr r4, =gUnknown_0202449C ldr r1, [r4] adds r1, r0, r1 adds r1, 0x80 lsls r0, 9 adds r0, r5 ldrb r0, [r0] strb r0, [r1] ldr r0, =gUnknown_02024274 ldrb r2, [r6] lsls r5, r2, 1 adds r5, r0 ldr r3, =gBattleMons ldr r4, [r4] adds r0, r2, r4 adds r0, 0x80 ldrb r0, [r0] lsls r0, 1 movs r1, 0x58 muls r1, r2 adds r0, r1 adds r3, 0xC adds r0, r3 ldrh r0, [r0] strh r0, [r5] ldrb r0, [r6] adds r4, r0, r4 lsls r0, 9 adds r0, r7 ldrb r0, [r0] strb r0, [r4, 0xC] ldr r0, =gUnknown_02024332 ldrb r1, [r6] b _0803CB72 .pool _0803C99C: ldr r2, =gUnknown_02023864 ldr r5, =gUnknown_02024064 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 _0803C9BA b _0803CC1C _0803C9BA: ldr r0, =gUnknown_02024208 strh r3, [r0] ldr r0, =gUnknown_02024332 ldrb r1, [r5] b _0803CB72 .pool _0803C9D4: ldr r0, =gUnknown_02023864 ldr r4, =gUnknown_02024064 ldrb r2, [r4] lsls r1, r2, 9 adds r0, 0x1 adds r1, r0 ldrb r0, [r1] cmp r0, 0x6 bne _0803CA04 ldr r0, =gUnknown_02024332 adds r0, r2, r0 movs r1, 0x1 strb r1, [r0] ldrb r0, [r4] bl sub_8185008 b _0803CD04 .pool _0803CA04: bl sub_803CDF8 b _0803CB6E _0803CA0A: ldr r2, =gUnknown_02024280 ldr r0, [r2] movs r1, 0x80 lsls r1, 8 orrs r0, r1 str r0, [r2] ldr r2, =gUnknown_02024332 ldr r0, =gUnknown_02024064 ldrb r1, [r0] adds r1, r2 b _0803CB74 .pool _0803CA2C: ldr r2, =gUnknown_02024332 ldr r0, =gUnknown_02024064 ldrb r1, [r0] adds r1, r2 b _0803CB74 .pool _0803CA40: ldr r2, =gUnknown_02024332 ldr r0, =gUnknown_02024064 ldrb r1, [r0] adds r1, r2 b _0803CB74 .pool _0803CA54: ldr r3, =gUnknown_02023864 ldr r0, =gUnknown_02024064 ldrb r4, [r0] lsls r1, r4, 9 adds r0, r3, 0x1 adds r0, r1, r0 ldrb r2, [r0] adds r3, 0x2 adds r1, r3 ldrb r0, [r1] lsls r0, 8 orrs r2, r0 cmp r2, 0 bne _0803CA72 b _0803CC1C _0803CA72: ldr r1, =gUnknown_02024332 adds r1, r4, r1 b _0803CB74 .pool _0803CA84: ldr r2, =gUnknown_02024332 ldr r0, =gUnknown_02024064 ldrb r1, [r0] adds r1, r2 b _0803CB74 .pool _0803CA98: ldr r2, =gUnknown_02024280 ldr r0, [r2] movs r1, 0x80 lsls r1, 8 orrs r0, r1 str r0, [r2] ldr r2, =gUnknown_02024332 ldr r0, =gUnknown_02024064 ldrb r1, [r0] adds r1, r2 b _0803CB74 .pool _0803CABC: ldr r2, =gUnknown_02024332 ldr r0, =gUnknown_02024064 ldrb r1, [r0] adds r1, r2 b _0803CB74 .pool _0803CAD0: ldr r3, =gUnknown_02024068 ldr r6, =gBitTable ldr r0, =gUnknown_02024064 ldrb r0, [r0] lsls r0, 2 adds r0, r6 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 _0803CAFA b _0803CD04 _0803CAFA: bl sub_803CDB8 lsls r0, 24 lsrs r0, 24 negs r1, r0 orrs r1, r0 lsrs r4, r1, 31 ldr r0, =gBattleTypeFlags ldr r0, [r0] movs r1, 0x41 ands r0, r1 cmp r0, 0x1 bne _0803CB3C movs r1, 0x2 movs r0, 0x2 ands r0, r5 cmp r0, 0 bne _0803CB3C adds r0, r5, 0 eors r0, r1 bl battle_get_side_with_given_state ldr r1, =gUnknown_0202449C ldr r1, [r1] adds r1, 0x91 ldrb r1, [r1] lsls r0, 24 lsrs r0, 22 adds r0, r6 ldr r0, [r0] ands r1, r0 cmp r1, 0 beq _0803CB5C _0803CB3C: movs r0, 0 movs r1, 0 adds r2, r4, 0 bl sub_8034464 b _0803CB66 .pool _0803CB5C: movs r0, 0 movs r1, 0x1 adds r2, r4, 0 bl sub_8034464 _0803CB66: ldr r4, =gUnknown_02024064 _0803CB68: ldrb r0, [r4] bl dp01_battle_side_mark_buffer_for_execution _0803CB6E: ldr r0, =gUnknown_02024332 ldrb r1, [r4] _0803CB72: adds r1, r0 _0803CB74: ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] b _0803CD04 .pool _0803CB84: ldr r3, =gUnknown_02024068 ldr r1, =gBitTable ldr r0, =gUnknown_02024064 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 beq _0803CBAE b _0803CD04 _0803CBAE: ldr r1, =gUnknown_02024332 ldrb r0, [r1, 0x4] adds r0, 0x1 strb r0, [r1, 0x4] b _0803CD04 .pool _0803CBC8: ldr r5, =gUnknown_02024064 ldrb r2, [r5] ldr r0, =gUnknown_0202449C ldr r0, [r0] adds r1, r2, r0 adds r0, r1, 0 adds r0, 0x54 ldrb r0, [r0] cmp r0, 0 beq _0803CCB4 ldr r0, =gUnknown_02024332 adds r0, r2, r0 adds r1, 0x84 ldrb r1, [r1] strb r1, [r0] b _0803CD04 .pool _0803CBF4: ldr r3, =gUnknown_02024068 ldr r1, =gBitTable ldr r0, =gUnknown_02024064 ldrb r4, [r0] lsls r0, r4, 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 _0803CD04 _0803CC1C: ldr r0, =gUnknown_02024332 adds r0, r4, r0 _0803CC20: movs r1, 0x1 strb r1, [r0] b _0803CD04 .pool _0803CC38: ldr r5, =gUnknown_02024064 ldrb r2, [r5] ldr r4, =gUnknown_0202449C ldr r0, [r4] adds r0, r2, r0 adds r0, 0x54 ldrb r0, [r0] cmp r0, 0 beq _0803CCB4 ldr r0, =gUnknown_02023864 lsls r1, r2, 9 adds r0, 0x1 adds r1, r0 ldrb r0, [r1] cmp r0, 0xD bne _0803CC94 ldr r2, =gUnknown_02024280 ldr r0, [r2] movs r1, 0x80 lsls r1, 8 orrs r0, r1 str r0, [r2] ldr r1, =gUnknown_0202421C ldrb r0, [r5] adds r0, r1 movs r1, 0x3 strb r1, [r0] ldr r1, =gUnknown_02024332 ldrb r0, [r5] _0803CC72: adds r0, r1 movs r1, 0x4 strb r1, [r0] b _0803CD04 .pool _0803CC94: adds r0, r2, 0 movs r1, 0x1 bl sub_8185008 ldr r2, =gUnknown_02024332 ldrb r0, [r5] adds r2, r0, r2 ldr r1, [r4] adds r0, r1 adds r0, 0x84 ldrb r0, [r0] strb r0, [r2] b _0803CD04 .pool _0803CCB4: ldr r0, =gUnknown_0202420B strb r2, [r0] ldr r7, =gUnknown_02024214 ldr r6, =gUnknown_02024220 ldrb r0, [r5] lsls r0, 2 adds r0, r6 ldr r4, [r0] str r4, [r7] ldr r3, =gUnknown_02024068 ldr r1, =gBitTable 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 _0803CCFA ldr r0, =gUnknown_0831BD10 ldrb r1, [r4] lsls r1, 2 adds r1, r0 ldr r0, [r1] bl _call_via_r0 _0803CCFA: ldrb r0, [r5] lsls r0, 2 adds r0, r6 ldr r1, [r7] str r1, [r0] _0803CD04: ldr r0, =gUnknown_02024064 ldrb r1, [r0] adds r1, 0x1 strb r1, [r0] ldr r0, =gUnknown_0202406C lsls r1, 24 lsrs r1, 24 _0803CD12: adds r5, r0, 0 ldrb r0, [r5] cmp r1, r0 bcs _0803CD1E bl _0803BE9C _0803CD1E: ldr r0, =gUnknown_02024332 ldrb r0, [r0, 0x4] ldrb r1, [r5] cmp r0, r1 bne _0803CD70 movs r0, 0x1 bl sub_818603C ldr r1, =gUnknown_03005D04 ldr r0, =sub_803D2E8 str r0, [r1] ldr r0, =gBattleTypeFlags ldr r0, [r0] movs r1, 0x80 lsls r1, 15 ands r0, r1 cmp r0, 0 beq _0803CD70 movs r4, 0 ldrb r5, [r5] cmp r4, r5 bge _0803CD70 _0803CD4A: ldr r0, =gUnknown_0202421C adds r0, r4, r0 ldrb r0, [r0] cmp r0, 0x2 bne _0803CD66 lsls r0, r4, 24 lsrs r0, 24 ldr r1, =gUnknown_0202449C ldr r1, [r1] adds r1, r4, r1 adds r1, 0x5C ldrb r1, [r1] bl sub_80571DC _0803CD66: adds r4, 0x1 ldr r0, =gUnknown_0202406C ldrb r0, [r0] cmp r4, r0 blt _0803CD4A _0803CD70: add sp, 0x1C pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_803BE74 thumb_func_start sub_803CDB8 sub_803CDB8: @ 803CDB8 push {r4,r5,lr} movs r3, 0 movs r1, 0 ldr r0, =gUnknown_0202406C ldrb r2, [r0] adds r5, r0, 0 cmp r3, r2 bge _0803CDDA ldr r4, =gUnknown_02024332 _0803CDCA: adds r0, r1, r4 ldrb r0, [r0] cmp r0, 0x5 bne _0803CDD4 adds r3, 0x1 _0803CDD4: adds r1, 0x1 cmp r1, r2 blt _0803CDCA _0803CDDA: adds r0, r3, 0x1 ldrb r5, [r5] cmp r0, r5 beq _0803CDF0 movs r0, 0 b _0803CDF2 .pool _0803CDF0: movs r0, 0x1 _0803CDF2: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_803CDB8 thumb_func_start sub_803CDF8 sub_803CDF8: @ 803CDF8 push {r4-r7,lr} ldr r7, =gUnknown_02024064 ldrb r0, [r7] ldr r6, =gUnknown_0202449C ldr r1, [r6] adds r1, r0, r1 adds r1, 0x5C ldr r4, =gUnknown_02023864 lsls r0, 9 adds r2, r4, 0x1 adds r0, r2 ldrb r0, [r0] strb r0, [r1] ldrb r0, [r7] lsls r1, r0, 9 adds r1, r2 ldrb r1, [r1] bl sub_8184FBC ldr r0, =gBattleTypeFlags ldr r0, [r0] movs r1, 0x42 ands r0, r1 cmp r0, 0x42 bne _0803CEC6 ldrb r0, [r7] ldr r2, [r6] lsls r1, r0, 1 adds r1, r0 adds r1, r2 adds r1, 0x60 ldrb r2, [r1] movs r0, 0xF ands r0, r2 strb r0, [r1] ldrb r0, [r7] ldr r2, [r6] lsls r1, r0, 1 adds r1, r0 adds r1, r2 adds r1, 0x60 lsls r0, 9 adds r5, r4, 0x2 adds r0, r5 ldrb r2, [r0] movs r3, 0xF0 adds r0, r3, 0 ands r0, r2 ldrb r2, [r1] orrs r0, r2 strb r0, [r1] ldrb r1, [r7] ldr r2, [r6] lsls r0, r1, 1 adds r0, r1 adds r0, r2 adds r0, 0x61 lsls r1, 9 adds r4, 0x3 mov r12, r4 add r1, r12 ldrb r1, [r1] strb r1, [r0] ldrb r0, [r7] movs r4, 0x2 eors r0, r4 ldr r2, [r6] lsls r1, r0, 1 adds r1, r0 adds r1, r2 adds r1, 0x60 ldrb r2, [r1] adds r0, r3, 0 ands r0, r2 strb r0, [r1] ldrb r0, [r7] eors r0, r4 ldr r2, [r6] lsls r1, r0, 1 adds r1, r0 adds r1, r2 adds r1, 0x60 ldrb r0, [r7] lsls r0, 9 adds r0, r5 ldrb r0, [r0] ands r3, r0 lsrs r3, 4 ldrb r0, [r1] orrs r3, r0 strb r3, [r1] ldrb r0, [r7] eors r4, r0 ldr r0, [r6] lsls r1, r4, 1 adds r1, r4 adds r1, r0 adds r1, 0x62 ldrb r0, [r7] lsls r0, 9 add r0, r12 ldrb r0, [r0] strb r0, [r1] _0803CEC6: pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_803CDF8 thumb_func_start sub_803CEDC sub_803CEDC: @ 803CEDC push {r4,r5,lr} lsls r0, 24 lsrs r0, 24 lsls r1, 24 lsrs r1, 24 ldr r2, =gUnknown_0202407A adds r4, r0, r2 ldrb r5, [r4] adds r2, r1, r2 ldrb r3, [r2] strb r3, [r4] strb r5, [r2] ldr r2, =gUnknown_0202407E 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 .pool thumb_func_end sub_803CEDC thumb_func_start b_first_side b_first_side: @ 803CF10 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 ability_something lsls r0, 24 cmp r0, 0 bne _0803CFD8 ldr r1, [sp, 0x8] str r1, [sp] movs r0, 0x13 movs r1, 0 movs r2, 0x4D movs r3, 0 bl ability_something lsls r0, 24 cmp r0, 0 bne _0803CFD8 ldr r1, =gBattleMons 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 _0803CF7C ldr r0, =gBattleWeather ldrh r1, [r0] movs r0, 0x7 ands r0, r1 cmp r0, 0 bne _0803CF8C _0803CF7C: cmp r3, 0x22 bne _0803CF98 ldr r0, =gBattleWeather ldrh r1, [r0] movs r0, 0x60 ands r0, r1 cmp r0, 0 beq _0803CF98 _0803CF8C: movs r3, 0x2 b _0803CF9A .pool _0803CF98: movs r3, 0x1 _0803CF9A: movs r0, 0x58 mov r1, r10 muls r1, r0 adds r0, r1, 0 ldr r2, =gBattleMons adds r0, r2 adds r0, 0x20 ldrb r2, [r0] cmp r2, 0x21 bne _0803CFBA ldr r0, =gBattleWeather ldrh r1, [r0] movs r0, 0x7 ands r0, r1 cmp r0, 0 bne _0803CFCA _0803CFBA: cmp r2, 0x22 bne _0803CFDA ldr r0, =gBattleWeather ldrh r1, [r0] movs r0, 0x60 ands r0, r1 cmp r0, 0 beq _0803CFDA _0803CFCA: movs r7, 0x2 b _0803CFDC .pool _0803CFD8: movs r3, 0x1 _0803CFDA: movs r7, 0x1 _0803CFDC: ldr r1, =gBattleMons 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, =gUnknown_08329D2E 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 _0803D02C ldr r1, =gUnknown_02024404 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 _0803D040 .pool _0803D02C: 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 _0803D040: ldr r0, =gBattleTypeFlags ldr r0, [r0] ldr r1, =0x023f0102 ands r0, r1 cmp r0, 0 bne _0803D074 ldr r0, =0x00000869 bl FlagGet lsls r0, 24 cmp r0, 0 beq _0803D074 mov r0, r9 bl battle_side_get_owner lsls r0, 24 cmp r0, 0 bne _0803D074 movs r0, 0x6E mov r1, r8 muls r1, r0 adds r0, r1, 0 movs r1, 0x64 bl __udivsi3 mov r8, r0 _0803D074: cmp r6, 0x18 bne _0803D07E mov r2, r8 lsrs r2, 1 mov r8, r2 _0803D07E: ldr r1, =gBattleMons 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 _0803D09C mov r0, r8 lsrs r0, 2 mov r8, r0 _0803D09C: cmp r6, 0x1A bne _0803D0B8 ldr r0, =gUnknown_02024330 ldrh r4, [r0] lsls r0, r5, 16 subs r0, r5 movs r1, 0x64 bl __divsi3 cmp r4, r0 bge _0803D0B8 movs r1, 0x1 negs r1, r1 mov r8, r1 _0803D0B8: ldr r1, =gBattleMons 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, =gUnknown_08329D2E 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 _0803D118 ldr r1, =gUnknown_02024404 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 _0803D12C .pool _0803D118: 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 _0803D12C: ldr r0, =gBattleTypeFlags ldr r0, [r0] ldr r1, =0x023f0102 ands r0, r1 cmp r0, 0 bne _0803D15C ldr r0, =0x00000869 bl FlagGet lsls r0, 24 cmp r0, 0 beq _0803D15C mov r0, r10 bl battle_side_get_owner lsls r0, 24 cmp r0, 0 bne _0803D15C movs r0, 0x6E muls r0, r7 movs r1, 0x64 bl __udivsi3 adds r7, r0, 0 _0803D15C: cmp r6, 0x18 bne _0803D162 lsrs r7, 1 _0803D162: ldr r2, =gBattleMons 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 _0803D17E lsrs r7, 2 _0803D17E: cmp r6, 0x1A bne _0803D198 ldr r0, =gUnknown_02024330 ldrh r4, [r0] lsls r0, r5, 16 subs r0, r5 movs r1, 0x64 bl __divsi3 cmp r4, r0 bge _0803D198 movs r7, 0x1 negs r7, r7 _0803D198: ldr r2, [sp, 0x4] cmp r2, 0 beq _0803D1B8 movs r3, 0 b _0803D254 .pool _0803D1B8: ldr r0, =gUnknown_0202421C mov r3, r9 adds r1, r3, r0 ldrb r1, [r1] adds r2, r0, 0 cmp r1, 0 bne _0803D208 ldr r0, =gUnknown_0202433C lsls r1, r3, 4 adds r1, r0 ldrb r0, [r1] lsls r0, 29 cmp r0, 0 bge _0803D1E0 movs r3, 0xA5 b _0803D20A .pool _0803D1E0: ldr r0, =gUnknown_0202449C ldr r0, [r0] add r0, r9 adds r0, 0x80 ldrb r0, [r0] lsls r0, 1 movs r1, 0x58 mov r3, r9 muls r3, r1 adds r1, r3, 0 adds r0, r1 ldr r1, =gBattleMons adds r1, 0xC adds r0, r1 ldrh r3, [r0] b _0803D20A .pool _0803D208: movs r3, 0 _0803D20A: mov r1, r10 adds r0, r1, r2 ldrb r0, [r0] cmp r0, 0 bne _0803D254 ldr r0, =gUnknown_0202433C lsls r1, 4 adds r1, r0 ldrb r0, [r1] lsls r0, 29 cmp r0, 0 bge _0803D22C movs r2, 0xA5 b _0803D256 .pool _0803D22C: ldr r0, =gUnknown_0202449C ldr r0, [r0] add r0, r10 adds r0, 0x80 ldrb r0, [r0] lsls r0, 1 movs r1, 0x58 mov r2, r10 muls r2, r1 adds r1, r2, 0 adds r0, r1 ldr r1, =gBattleMons adds r1, 0xC adds r0, r1 ldrh r2, [r0] b _0803D256 .pool _0803D254: movs r2, 0 _0803D256: ldr r4, =gBattleMoves 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 _0803D27A adds r0, r3, r2 lsls r0, 2 adds r0, r4 ldrb r0, [r0, 0x7] lsls r0, 24 asrs r0, 24 cmp r0, 0 beq _0803D2B8 _0803D27A: adds r0, r3, r2 lsls r0, 2 adds r0, r4 ldrb r0, [r0, 0x7] lsls r0, 24 asrs r0, 24 cmp r1, r0 bne _0803D2AE cmp r8, r7 bne _0803D2A4 bl Random movs r1, 0x1 ands r1, r0 cmp r1, 0 beq _0803D2A4 movs r3, 0x2 b _0803D2D4 .pool _0803D2A4: cmp r8, r7 bcs _0803D2D6 movs r0, 0x1 str r0, [sp, 0x8] b _0803D2D6 _0803D2AE: cmp r1, r0 bge _0803D2D6 movs r1, 0x1 str r1, [sp, 0x8] b _0803D2D6 _0803D2B8: cmp r8, r7 bne _0803D2CE bl Random movs r1, 0x1 ands r1, r0 cmp r1, 0 beq _0803D2CE movs r2, 0x2 str r2, [sp, 0x8] b _0803D2D6 _0803D2CE: cmp r8, r7 bcs _0803D2D6 movs r3, 0x1 _0803D2D4: str r3, [sp, 0x8] _0803D2D6: 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_803D2E8 sub_803D2E8: @ 803D2E8 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} movs r3, 0 ldr r0, =gBattleTypeFlags ldr r1, [r0] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _0803D354 ldr r0, =gUnknown_02024064 strb r3, [r0] ldr r4, =gUnknown_0202406C mov r8, r0 ldrb r0, [r4] cmp r3, r0 bcc _0803D310 b _0803D54A _0803D310: ldr r7, =gUnknown_0202407A ldr r6, =gUnknown_0202421C mov r2, r8 ldr r5, =gUnknown_0202407E _0803D318: 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 _0803D318 b _0803D54A .pool _0803D354: movs r2, 0x2 ands r1, r2 cmp r1, 0 beq _0803D3A4 ldr r0, =gUnknown_02024064 strb r3, [r0] ldr r1, =gUnknown_0202406C mov r8, r0 adds r2, r1, 0 ldrb r2, [r2] cmp r3, r2 bcs _0803D3C0 ldr r0, =gUnknown_0202421C ldrb r1, [r0] adds r4, r0, 0 cmp r1, 0x3 beq _0803D3BE _0803D376: mov r7, r8 ldrb r0, [r7] adds r0, 0x1 strb r0, [r7] lsls r0, 24 lsrs r0, 24 ldr r1, =gUnknown_0202406C ldrb r1, [r1] cmp r0, r1 bcs _0803D3C0 ldrb r0, [r7] adds r0, r4 ldrb r0, [r0] cmp r0, 0x3 bne _0803D376 b _0803D3BE .pool _0803D3A4: ldr r1, =gUnknown_0202421C ldrb r0, [r1] ldr r4, =gUnknown_02024064 mov r8, r4 cmp r0, 0x3 bne _0803D3B4 strb r3, [r4] movs r3, 0x5 _0803D3B4: ldrb r0, [r1, 0x2] cmp r0, 0x3 bne _0803D3C0 mov r7, r8 strb r2, [r7] _0803D3BE: movs r3, 0x5 _0803D3C0: cmp r3, 0x5 bne _0803D448 ldr r6, =gUnknown_0202407A ldr r1, =gUnknown_0202421C mov r2, r8 ldrb r0, [r2] adds r0, r1 ldrb r0, [r0] strb r0, [r6] ldr r2, =gUnknown_0202407E mov r3, r8 ldrb r0, [r3] strb r0, [r2] movs r3, 0x1 movs r5, 0 adds r4, r1, 0 ldr r7, =gUnknown_03005D04 mov r10, r7 ldr r0, =bc_80154A0 mov r12, r0 ldr r1, =gUnknown_0202449C mov r9, r1 ldr r7, =gUnknown_0202406C ldrb r7, [r7] cmp r5, r7 bge _0803D41A adds r7, r6, 0 adds r6, r4, 0 adds r4, r2, 0 ldr r2, =gUnknown_0202406C _0803D3FC: mov r0, r8 ldrb r0, [r0] cmp r5, r0 beq _0803D412 adds r1, r3, r7 adds r0, r5, r6 ldrb r0, [r0] strb r0, [r1] adds r0, r3, r4 strb r5, [r0] adds r3, 0x1 _0803D412: adds r5, 0x1 ldrb r1, [r2] cmp r5, r1 blt _0803D3FC _0803D41A: mov r2, r12 mov r3, r10 str r2, [r3] mov r4, r9 ldr r0, [r4] b _0803D554 .pool _0803D448: movs r0, 0 mov r7, r8 strb r0, [r7] ldr r1, =gUnknown_0202406C ldrb r0, [r1] cmp r0, 0 beq _0803D48E ldr r6, =gUnknown_0202421C mov r2, r8 ldr r5, =gUnknown_0202407A ldr r4, =gUnknown_0202407E _0803D45E: ldrb r0, [r2] adds r0, r6 ldrb r1, [r0] subs r0, r1, 0x1 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bhi _0803D47C adds r0, r3, r5 strb r1, [r0] adds r1, r3, r4 mov r7, r8 ldrb r0, [r7] strb r0, [r1] adds r3, 0x1 _0803D47C: ldrb r0, [r2] adds r0, 0x1 strb r0, [r2] lsls r0, 24 lsrs r0, 24 ldr r1, =gUnknown_0202406C ldrb r1, [r1] cmp r0, r1 bcc _0803D45E _0803D48E: movs r0, 0 mov r2, r8 strb r0, [r2] ldr r4, =gUnknown_0202406C ldrb r0, [r4] cmp r0, 0 beq _0803D4D2 ldr r6, =gUnknown_0202421C ldr r5, =gUnknown_0202407A ldr r4, =gUnknown_0202407E _0803D4A2: ldrb r0, [r2] adds r0, r6 ldrb r1, [r0] subs r0, r1, 0x1 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bls _0803D4C0 adds r0, r3, r5 strb r1, [r0] adds r1, r3, r4 mov r7, r8 ldrb r0, [r7] strb r0, [r1] adds r3, 0x1 _0803D4C0: ldrb r0, [r2] adds r0, 0x1 strb r0, [r2] lsls r0, 24 lsrs r0, 24 ldr r1, =gUnknown_0202406C ldrb r1, [r1] cmp r0, r1 bcc _0803D4A2 _0803D4D2: movs r5, 0 b _0803D540 .pool _0803D4E8: adds r4, r5, 0x1 adds r7, r4, 0 ldrb r1, [r1] cmp r7, r1 bge _0803D53E ldr r6, =gUnknown_0202407A lsls r2, r5, 24 mov r8, r2 _0803D4F8: ldr r0, =gUnknown_0202407E 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 _0803D534 adds r0, r4, r6 ldrb r0, [r0] cmp r0, 0x1 beq _0803D534 cmp r2, 0x2 beq _0803D534 cmp r0, 0x2 beq _0803D534 adds r0, r3, 0 movs r2, 0 bl b_first_side lsls r0, 24 cmp r0, 0 beq _0803D534 lsls r1, r4, 24 lsrs r1, 24 mov r3, r8 lsrs r0, r3, 24 bl sub_803CEDC _0803D534: adds r4, 0x1 ldr r0, =gUnknown_0202406C ldrb r0, [r0] cmp r4, r0 blt _0803D4F8 _0803D53E: adds r5, r7, 0 _0803D540: ldr r1, =gUnknown_0202406C ldrb r0, [r1] subs r0, 0x1 cmp r5, r0 blt _0803D4E8 _0803D54A: ldr r1, =gUnknown_03005D04 ldr r0, =bc_80154A0 str r0, [r1] ldr r0, =gUnknown_0202449C ldr r0, [r0] _0803D554: adds r0, 0x48 movs r1, 0 strb r1, [r0] pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_803D2E8 thumb_func_start sub_803D580 sub_803D580: @ 803D580 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, =gUnknown_02024064 movs r0, 0 strb r0, [r1] ldr r0, =gUnknown_0202406C ldrb r2, [r0] adds r5, r1, 0 cmp r2, 0 beq _0803D678 ldr r7, =gUnknown_0202433C adds r6, r5, 0 ldr r0, =gUnknown_020240D4 mov r12, r0 ldr r1, =gUnknown_020242BC mov r8, r1 mov r10, r8 _0803D5AE: mov r2, r9 cmp r2, 0 beq _0803D5EC 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 _0803D648 .pool _0803D5EC: ldrb r0, [r6] lsls r0, 4 adds r2, r0, r7 movs r1, 0 mov r4, r10 movs r3, 0 _0803D5F8: adds r0, r2, r1 strb r3, [r0] adds r1, 0x1 cmp r1, 0xF bls _0803D5F8 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 _0803D616 subs r0, 0x1 strb r0, [r1, 0x16] _0803D616: 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 _0803D648 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 _0803D648 movs r0, 0x58 muls r2, r0 add r2, r12 ldr r0, [r2] ldr r1, =0xffbfffff ands r0, r1 str r0, [r2] _0803D648: ldrb r2, [r5] lsls r0, r2, 3 subs r0, r2 lsls r0, 2 add r0, r8 ldrb r0, [r0, 0xA] cmp r0, 0 bne _0803D666 movs r0, 0x58 muls r2, r0 add r2, r12 ldr r0, [r2] ldr r1, =0xfeffffff ands r0, r1 str r0, [r2] _0803D666: ldrb r0, [r5] adds r0, 0x1 strb r0, [r5] lsls r0, 24 lsrs r0, 24 ldr r1, =gUnknown_0202406C ldrb r1, [r1] cmp r0, r1 bcc _0803D5AE _0803D678: movs r0, 0 ldr r2, =gUnknown_02024294 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 .pool thumb_func_end sub_803D580 thumb_func_start sub_803D6A0 sub_803D6A0: @ 803D6A0 push {r4-r6,lr} ldr r2, =gUnknown_02024064 movs r0, 0 strb r0, [r2] ldr r0, =gUnknown_0202406C ldrb r1, [r0] adds r6, r0, 0 cmp r1, 0 beq _0803D6DE adds r3, r2, 0 movs r4, 0 ldr r5, =gUnknown_0202437C _0803D6B8: ldrb r1, [r3] lsls r0, r1, 2 adds r0, r1 lsls r0, 2 adds r2, r0, r5 movs r1, 0 _0803D6C4: adds r0, r2, r1 strb r4, [r0] adds r1, 0x1 cmp r1, 0x13 bls _0803D6C4 ldrb r0, [r3] adds r0, 0x1 strb r0, [r3] lsls r0, 24 lsrs r0, 24 ldrb r1, [r6] cmp r0, r1 bcc _0803D6B8 _0803D6DE: pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_803D6A0 thumb_func_start bc_80154A0 bc_80154A0: @ 803D6F0 push {r4-r7,lr} ldr r0, =gUnknown_02024280 ldr r0, [r0] movs r1, 0x80 lsls r1, 8 ands r0, r1 cmp r0, 0 bne _0803D7AE ldr r2, =gUnknown_0202449C ldr r0, [r2] adds r0, 0x48 ldr r1, =gUnknown_0202406C ldrb r0, [r0] mov r12, r2 adds r6, r1, 0 ldrb r1, [r6] cmp r0, r1 bcs _0803D7AE ldr r5, =gUnknown_02024064 ldr r4, =gUnknown_0202420B movs r7, 0x84 lsls r7, 1 _0803D71C: ldr r1, [r2] adds r1, 0x48 ldrb r0, [r1] strb r0, [r4] strb r0, [r5] ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] ldr r1, =gUnknown_02024274 ldrb r3, [r5] lsls r0, r3, 1 adds r0, r1 ldrh r0, [r0] cmp r0, r7 bne _0803D7A0 ldr r1, =gBattleMons 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 _0803D7A0 ldr r2, =gUnknown_020242BC ldrb r1, [r4] lsls r0, r1, 3 subs r0, r1 lsls r0, 2 adds r0, r2 ldrb r0, [r0, 0x18] lsls r0, 31 cmp r0, 0 bne _0803D7A0 ldr r0, =gUnknown_0202433C lsls r1, r3, 4 adds r1, r0 ldrb r0, [r1] lsls r0, 29 cmp r0, 0 blt _0803D7A0 ldr r0, =gUnknown_082DB1FF bl b_call_bc_move_exec b _0803D7E8 .pool _0803D7A0: mov r2, r12 ldr r0, [r2] adds r0, 0x48 ldrb r0, [r0] ldrb r1, [r6] cmp r0, r1 bcc _0803D71C _0803D7AE: bl b_clear_atk_up_if_hit_flag_unless_enraged ldr r1, =gUnknown_02024082 movs r0, 0 strb r0, [r1] ldr r1, =gUnknown_02024083 ldr r0, =gUnknown_0202407A movs r3, 0 ldrb r0, [r0] strb r0, [r1] ldr r0, =gUnknown_02024400 movs r2, 0 strh r3, [r0] ldr r0, =gUnknown_0202449C ldr r0, [r0] strb r2, [r0, 0x13] ldr r1, =gUnknown_03005D04 ldr r0, =bc_bs_exec str r0, [r1] ldr r0, =gUnknown_02024332 strb r2, [r0, 0x3] strb r2, [r0, 0x4] ldr r0, =gUnknown_02024474 strb r2, [r0, 0x16] ldr r0, =gUnknown_020244A8 ldr r0, [r0] ldr r0, [r0, 0x8] adds r0, 0x20 strb r2, [r0] _0803D7E8: pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end bc_80154A0 thumb_func_start bc_bs_exec bc_bs_exec: @ 803D818 push {r4-r6,lr} ldr r6, =gUnknown_0202433A ldrb r0, [r6] ldr r2, =gUnknown_02024083 cmp r0, 0 beq _0803D828 movs r0, 0xC strb r0, [r2] _0803D828: ldr r5, =gUnknown_0202449C ldr r0, [r5] adds r0, 0x4B ldr r4, =gUnknown_02024082 ldrb r1, [r4] strb r1, [r0] ldr r1, =gUnknown_0831BC0C ldrb r0, [r2] lsls r0, 2 adds r0, r1 ldr r0, [r0] bl _call_via_r0 ldr r0, =gUnknown_0202406C ldrb r1, [r4] ldrb r0, [r0] cmp r1, r0 bcc _0803D894 ldr r2, =gUnknown_02024280 ldr r0, [r2] ldr r1, =0xffefffff ands r0, r1 str r0, [r2] ldr r3, =gUnknown_03005D04 ldr r2, =gUnknown_0831BC44 ldrb r1, [r6] movs r0, 0x7F ands r0, r1 lsls r0, 2 adds r0, r2 ldr r0, [r0] str r0, [r3] b _0803D8AC .pool _0803D894: ldr r0, [r5] adds r0, 0x4B ldrb r0, [r0] cmp r0, r1 beq _0803D8AC ldr r2, =gUnknown_02024280 ldr r0, [r2] ldr r1, =0xfffffdff ands r0, r1 ldr r1, =0xfff7ffff ands r0, r1 str r0, [r2] _0803D8AC: pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end bc_bs_exec thumb_func_start sub_803D8C0 sub_803D8C0: @ 803D8C0 push {r4,lr} ldr r1, =gUnknown_02024083 movs r0, 0 strb r0, [r1] ldr r1, =gBattleTypeFlags ldr r2, [r1] ldr r0, =0x02000002 ands r0, r2 cmp r0, 0 beq _0803D920 ldr r1, =gUnknown_020375F0 ldr r4, =gUnknown_0202433A ldrb r0, [r4] strh r0, [r1] ldr r1, =gUnknown_02022F58 ldrb r0, [r4] strb r0, [r1] movs r0, 0 bl battle_get_side_with_given_state ldr r1, =gUnknown_0202420B strb r0, [r1] ldr r1, =gUnknown_02024214 ldr r0, =gUnknown_082DAA35 str r0, [r1] ldrb r1, [r4] movs r0, 0x7F ands r0, r1 strb r0, [r4] b _0803DAA4 .pool _0803D920: movs r0, 0x8 ands r0, r2 cmp r0, 0 beq _0803D95C ldr r0, =0x043f0900 ands r2, r0 cmp r2, 0 beq _0803D95C bl sub_805EA60 ldr r1, =gUnknown_02024214 ldr r0, =gUnknown_082DAA87 str r0, [r1] ldr r0, =gUnknown_02038BCA ldrh r1, [r0] ldr r0, =0x000003fe cmp r1, r0 bne _0803D946 b _0803DA8A _0803D946: b _0803DA94 .pool _0803D95C: ldr r0, [r1] movs r1, 0xA ands r0, r1 cmp r0, 0x8 beq _0803D968 b _0803DA9E _0803D968: bl sub_805EA60 ldr r1, =gUnknown_02024214 ldr r0, =gUnknown_082DA92D str r0, [r1] ldr r2, =gTrainers ldr r0, =gUnknown_02038BCA ldrh r1, [r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r2 ldrb r0, [r0, 0x1] subs r0, 0x3 cmp r0, 0x32 bls _0803D98A b _0803DA94 _0803D98A: lsls r0, 2 ldr r1, =_0803D9A8 adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _0803D9A8: .4byte _0803DA80 .4byte _0803DA94 .4byte _0803DA94 .4byte _0803DA94 .4byte _0803DA94 .4byte _0803DA94 .4byte _0803DA80 .4byte _0803DA94 .4byte _0803DA80 .4byte _0803DA94 .4byte _0803DA80 .4byte _0803DA94 .4byte _0803DA94 .4byte _0803DA94 .4byte _0803DA94 .4byte _0803DA94 .4byte _0803DA94 .4byte _0803DA94 .4byte _0803DA94 .4byte _0803DA94 .4byte _0803DA94 .4byte _0803DA94 .4byte _0803DA94 .4byte _0803DA94 .4byte _0803DA94 .4byte _0803DA94 .4byte _0803DA94 .4byte _0803DA94 .4byte _0803DA74 .4byte _0803DA8A .4byte _0803DA94 .4byte _0803DA94 .4byte _0803DA94 .4byte _0803DA94 .4byte _0803DA94 .4byte _0803DA74 .4byte _0803DA94 .4byte _0803DA94 .4byte _0803DA94 .4byte _0803DA94 .4byte _0803DA94 .4byte _0803DA94 .4byte _0803DA94 .4byte _0803DA94 .4byte _0803DA94 .4byte _0803DA94 .4byte _0803DA80 .4byte _0803DA94 .4byte _0803DA94 .4byte _0803DA94 .4byte _0803DA80 _0803DA74: ldr r0, =0x00000163 bl song_play_for_text b _0803DAA4 .pool _0803DA80: movs r0, 0xD4 lsls r0, 1 bl song_play_for_text b _0803DAA4 _0803DA8A: movs r0, 0xB1 lsls r0, 1 bl song_play_for_text b _0803DAA4 _0803DA94: movs r0, 0xCE lsls r0, 1 bl song_play_for_text b _0803DAA4 _0803DA9E: ldr r1, =gUnknown_02024214 ldr r0, =gUnknown_082DA96A str r0, [r1] _0803DAA4: ldr r1, =gUnknown_03005D04 ldr r0, =sub_803DCD8 str r0, [r1] pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_803D8C0 thumb_func_start sub_803DAC0 sub_803DAC0: @ 803DAC0 push {r4,lr} ldr r1, =gUnknown_02024083 movs r0, 0 strb r0, [r1] ldr r0, =gBattleTypeFlags ldr r1, [r0] ldr r0, =0x02000002 ands r0, r1 cmp r0, 0 beq _0803DB7C ldr r0, =0x003f0100 ands r1, r0 cmp r1, 0 beq _0803DB44 ldr r3, =gUnknown_0202433A ldrb r2, [r3] movs r0, 0x80 ands r0, r2 cmp r0, 0 beq _0803DB2C ldr r1, =gUnknown_02024214 ldr r0, =gUnknown_082DB9C8 str r0, [r1] movs r0, 0x7F ands r0, r2 strb r0, [r3] ldr r0, =gSaveBlock2Ptr ldr r1, [r0] ldr r0, =0x00000ca9 adds r1, r0 ldrb r0, [r1] movs r2, 0x8 orrs r0, r2 strb r0, [r1] b _0803DB82 .pool _0803DB2C: ldr r1, =gUnknown_02024214 ldr r0, =gUnknown_082DAA0B str r0, [r1] movs r0, 0x7F ands r0, r2 strb r0, [r3] b _0803DB82 .pool _0803DB44: ldr r1, =gUnknown_02022F58 ldr r4, =gUnknown_0202433A ldrb r0, [r4] strb r0, [r1] movs r0, 0 bl battle_get_side_with_given_state ldr r1, =gUnknown_0202420B strb r0, [r1] ldr r1, =gUnknown_02024214 ldr r0, =gUnknown_082DAA35 str r0, [r1] ldrb r1, [r4] movs r0, 0x7F ands r0, r1 strb r0, [r4] b _0803DB82 .pool _0803DB7C: ldr r1, =gUnknown_02024214 ldr r0, =gUnknown_082DA96D str r0, [r1] _0803DB82: ldr r1, =gUnknown_03005D04 ldr r0, =sub_803DCD8 str r0, [r1] pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_803DAC0 thumb_func_start sub_803DBA0 sub_803DBA0: @ 803DBA0 push {lr} ldr r1, =gUnknown_02024083 movs r0, 0 strb r0, [r1] ldr r1, =gBattleTypeFlags ldr r2, [r1] ldr r0, =0x003f0100 ands r0, r2 cmp r0, 0 beq _0803DBFC movs r0, 0x8 ands r2, r0 cmp r2, 0 beq _0803DBFC ldr r1, =gUnknown_02024214 ldr r0, =gUnknown_082DB9C1 str r0, [r1] ldr r1, =gUnknown_0202433A movs r0, 0x9 strb r0, [r1] ldr r0, =gSaveBlock2Ptr ldr r1, [r0] ldr r0, =0x00000ca9 adds r1, r0 ldrb r0, [r1] movs r2, 0x8 orrs r0, r2 strb r0, [r1] b _0803DC6A .pool _0803DBFC: ldr r0, [r1] movs r1, 0x80 lsls r1, 19 ands r0, r1 cmp r0, 0 beq _0803DC24 ldr r1, =gUnknown_02024214 ldr r0, =gUnknown_082DB9C1 str r0, [r1] ldr r1, =gUnknown_0202433A movs r0, 0x9 strb r0, [r1] b _0803DC6A .pool _0803DC24: ldr r1, =gUnknown_0202433C ldr r0, =gUnknown_0202420B ldrb r0, [r0] lsls r0, 4 adds r0, r1 ldrb r0, [r0, 0x1] lsls r0, 27 lsrs r0, 30 cmp r0, 0x1 beq _0803DC54 cmp r0, 0x2 beq _0803DC64 ldr r1, =gUnknown_02024214 ldr r0, =gUnknown_082DAAF0 b _0803DC68 .pool _0803DC54: ldr r1, =gUnknown_02024214 ldr r0, =gUnknown_082DAADB b _0803DC68 .pool _0803DC64: ldr r1, =gUnknown_02024214 ldr r0, =gUnknown_082DAAE9 _0803DC68: str r0, [r1] _0803DC6A: ldr r1, =gUnknown_03005D04 ldr r0, =sub_803DCD8 str r0, [r1] pop {r0} bx r0 .pool thumb_func_end sub_803DBA0 thumb_func_start bc_80158BC bc_80158BC: @ 803DC84 ldr r1, =gUnknown_02024083 movs r0, 0 strb r0, [r1] ldr r1, =gUnknown_02022F58 movs r0, 0xFD strb r0, [r1] movs r0, 0x7 strb r0, [r1, 0x1] ldr r2, =gUnknown_0202420B ldrb r0, [r2] strb r0, [r1, 0x2] ldr r3, =gUnknown_0202406E 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, =gUnknown_02024214 ldr r0, =gUnknown_082DAAF7 str r0, [r1] ldr r1, =gUnknown_03005D04 ldr r0, =sub_803DCD8 str r0, [r1] bx lr .pool thumb_func_end bc_80158BC thumb_func_start sub_803DCD8 sub_803DCD8: @ 803DCD8 push {r4-r7,lr} mov r7, r8 push {r7} ldr r0, =gUnknown_02024083 ldrb r0, [r0] subs r0, 0xB lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bls _0803DCEE b _0803DE10 _0803DCEE: ldr r0, =gBattleTypeFlags ldr r1, [r0] ldr r0, =0x023f0b92 ands r1, r0 cmp r1, 0 bne _0803DDB6 ldr r2, =gUnknown_02024064 strb r1, [r2] ldr r0, =gUnknown_0202406C ldrb r0, [r0] cmp r1, r0 bcs _0803DDB2 adds r5, r2, 0 ldr r0, =gUnknown_0202406E mov r8, r0 movs r7, 0x64 ldr r6, =gPlayerParty _0803DD10: ldrb r0, [r5] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 bne _0803DDA0 ldr r4, =gUnknown_03005D10 ldrh r0, [r4, 0x6] cmp r0, 0 bne _0803DD74 ldrb r0, [r5] lsls r0, 1 add r0, r8 ldrh r0, [r0] muls r0, r7 adds r0, r6 movs r1, 0xB movs r2, 0 bl GetMonData strh r0, [r4, 0x6] ldrb r0, [r5] lsls r0, 1 add r0, r8 ldrh r0, [r0] muls r0, r7 adds r0, r6 movs r1, 0x2 adds r2, r4, 0 adds r2, 0x8 bl GetMonData b _0803DDA0 .pool _0803DD74: ldrb r0, [r5] lsls r0, 1 add r0, r8 ldrh r0, [r0] muls r0, r7 adds r0, r6 movs r1, 0xB movs r2, 0 bl GetMonData strh r0, [r4, 0x26] ldrb r0, [r5] lsls r0, 1 add r0, r8 ldrh r0, [r0] muls r0, r7 adds r0, r6 movs r1, 0x2 adds r2, r4, 0 adds r2, 0x14 bl GetMonData _0803DDA0: ldrb r0, [r5] adds r0, 0x1 strb r0, [r5] ldr r1, =gUnknown_0202406C lsls r0, 24 lsrs r0, 24 ldrb r1, [r1] cmp r0, r1 bcc _0803DD10 _0803DDB2: bl sub_80EC728 _0803DDB6: ldr r0, =gBattleTypeFlags ldr r0, [r0] ldr r1, =0x023f0b9a ands r0, r1 cmp r0, 0 bne _0803DDD2 ldr r0, =gUnknown_03005D10 ldrb r1, [r0, 0x5] movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _0803DDD2 bl sub_80EE184 _0803DDD2: bl sub_8186444 movs r0, 0x3 bl sub_80A2390 movs r0, 0x5 bl sub_80A2F50 ldr r1, =gUnknown_03005D04 ldr r0, =sub_803DE40 str r0, [r1] ldr r1, =gUnknown_030061E8 ldr r0, =sub_8038420 str r0, [r1] b _0803DE2A .pool _0803DE10: ldr r0, =gUnknown_02024068 ldr r0, [r0] cmp r0, 0 bne _0803DE2A ldr r1, =gUnknown_0831BD10 ldr r0, =gUnknown_02024214 ldr r0, [r0] ldrb r0, [r0] lsls r0, 2 adds r0, r1 ldr r0, [r0] bl _call_via_r0 _0803DE2A: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_803DCD8 thumb_func_start sub_803DE40 sub_803DE40: @ 803DE40 push {lr} ldr r0, =gUnknown_02037FD4 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _0803DE86 bl ResetAllObjectData ldr r0, =gUnknown_03005D54 ldrb r0, [r0] cmp r0, 0 beq _0803DE62 ldr r0, =gUnknown_0202433A ldrb r0, [r0] cmp r0, 0x1 beq _0803DE80 _0803DE62: ldr r1, =gUnknown_03005D04 ldr r0, =c4_overworld str r0, [r1] b _0803DEA2 .pool _0803DE80: ldr r1, =gUnknown_03005D04 ldr r0, =bc_evolution_cutscene str r0, [r1] _0803DE86: bl FreeAllWindowBuffers ldr r0, =gBattleTypeFlags ldr r0, [r0] movs r1, 0x2 ands r0, r1 cmp r0, 0 bne _0803DEA2 bl sub_805F094 bl sub_8057028 bl dp11_free _0803DEA2: pop {r0} bx r0 .pool thumb_func_end sub_803DE40 thumb_func_start bc_evolution_cutscene bc_evolution_cutscene: @ 803DEB4 push {r4-r6,lr} ldr r0, =gUnknown_03005D54 ldrb r1, [r0] adds r3, r0, 0 cmp r1, 0 beq _0803DF2E _0803DEC0: movs r6, 0 _0803DEC2: ldrb r2, [r3] ldr r0, =gBitTable lsls r1, r6, 2 adds r1, r0 ldr r1, [r1] adds r0, r2, 0 ands r0, r1 cmp r0, 0 beq _0803DF20 bics r2, r1 strb r2, [r3] movs r0, 0x64 adds r1, r6, 0 muls r1, r0 ldr r0, =gPlayerParty adds r5, r1, r0 adds r0, r5, 0 movs r1, 0 bl GetEvolutionTargetSpecies lsls r0, 16 lsrs r4, r0, 16 cmp r4, 0 beq _0803DF20 bl FreeAllWindowBuffers ldr r0, =gUnknown_03005D04 ldr r1, =sub_803DF48 str r1, [r0] lsls r3, r6, 24 lsrs r3, 24 adds r0, r5, 0 adds r1, r4, 0 movs r2, 0x1 bl evolution_cutscene b _0803DF34 .pool _0803DF20: adds r6, 0x1 ldr r3, =gUnknown_03005D54 cmp r6, 0x5 ble _0803DEC2 ldrb r0, [r3] cmp r0, 0 bne _0803DEC0 _0803DF2E: ldr r1, =gUnknown_03005D04 ldr r0, =c4_overworld str r0, [r1] _0803DF34: pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end bc_evolution_cutscene thumb_func_start sub_803DF48 sub_803DF48: @ 803DF48 push {lr} ldr r0, =gMain ldr r1, [r0, 0x4] ldr r0, =sub_8038420 cmp r1, r0 bne _0803DF5A ldr r1, =gUnknown_03005D04 ldr r0, =bc_evolution_cutscene str r0, [r1] _0803DF5A: pop {r0} bx r0 .pool thumb_func_end sub_803DF48 thumb_func_start c4_overworld c4_overworld: @ 803DF70 push {r4-r6,lr} ldr r6, =gBattleTypeFlags ldr r0, [r6] movs r5, 0x2 ands r0, r5 cmp r0, 0 bne _0803DF8C ldr r4, =gPlayerParty adds r0, r4, 0 bl sub_806DCB4 adds r0, r4, 0 bl sub_806DEC4 _0803DF8C: ldr r4, [r6] adds r0, r4, 0 ands r0, r5 cmp r0, 0 beq _0803DF9E ldr r0, =gUnknown_03003124 ldrb r0, [r0] cmp r0, 0 bne _0803DFEC _0803DF9E: ldr r1, =gUnknown_020375F0 ldr r5, =gUnknown_0202433A ldrb r0, [r5] strh r0, [r1] ldr r3, =gMain ldr r0, =0x00000439 adds r2, r3, r0 ldrb r1, [r2] movs r0, 0x3 negs r0, r0 ands r0, r1 strb r0, [r2] ldr r0, =gUnknown_03005D00 ldr r0, [r0] str r0, [r3] movs r0, 0x80 lsls r0, 3 ands r4, r0 cmp r4, 0 beq _0803DFDE ldr r0, =gEnemyParty bl sub_8161F18 ldrb r1, [r5] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _0803DFDA cmp r1, 0x7 bne _0803DFDE _0803DFDA: bl sub_8161F4C _0803DFDE: movs r0, 0x5A bl m4aSongNumStop ldr r0, =gMain ldr r0, [r0, 0x8] bl SetMainCallback2 _0803DFEC: pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end c4_overworld thumb_func_start bc_move_exec_returning bc_move_exec_returning: @ 803E018 push {lr} ldr r0, =gUnknown_02024083 ldrb r0, [r0] subs r0, 0xB lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bhi _0803E060 ldr r3, =gUnknown_020244A8 ldr r0, [r3] ldr r0, [r0, 0xC] adds r1, r0, 0 adds r1, 0x20 ldrb r0, [r1] cmp r0, 0 beq _0803E03C subs r0, 0x1 strb r0, [r1] _0803E03C: ldr r2, =gUnknown_03005D04 ldr r0, [r3] ldr r1, [r0, 0xC] adds r0, r1, 0 adds r0, 0x20 ldrb r0, [r0] lsls r0, 2 adds r1, r0 ldr r0, [r1] str r0, [r2] b _0803E07A .pool _0803E060: ldr r0, =gUnknown_02024068 ldr r0, [r0] cmp r0, 0 bne _0803E07A ldr r1, =gUnknown_0831BD10 ldr r0, =gUnknown_02024214 ldr r0, [r0] ldrb r0, [r0] lsls r0, 2 adds r0, r1 ldr r0, [r0] bl _call_via_r0 _0803E07A: pop {r0} bx r0 .pool thumb_func_end bc_move_exec_returning thumb_func_start sub_803E08C sub_803E08C: @ 803E08C push {lr} ldr r0, =gUnknown_02024068 ldr r0, [r0] cmp r0, 0 bne _0803E0A8 ldr r1, =gUnknown_0831BD10 ldr r0, =gUnknown_02024214 ldr r0, [r0] ldrb r0, [r0] lsls r0, 2 adds r0, r1 ldr r0, [r0] bl _call_via_r0 _0803E0A8: pop {r0} bx r0 .pool thumb_func_end sub_803E08C thumb_func_start sub_803E0B8 sub_803E0B8: @ 803E0B8 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x4 movs r0, 0x4 str r0, [sp] ldr r6, =gUnknown_0202420B ldr r1, =gUnknown_0202407E ldr r0, =gUnknown_02024082 ldrb r0, [r0] adds r0, r1 ldrb r0, [r0] strb r0, [r6] ldr r1, =gUnknown_0202449C ldr r3, [r1] adds r0, r3, 0 adds r0, 0x91 ldrb r2, [r0] ldr r1, =gBitTable ldrb r0, [r6] lsls r0, 2 adds r0, r1 ldr r0, [r0] ands r2, r0 cmp r2, 0 beq _0803E110 ldr r1, =gUnknown_02024083 movs r0, 0xC b _0803E83C .pool _0803E110: ldr r1, =gCritMultiplier movs r0, 0x1 strb r0, [r1] ldr r1, =gUnknown_02024474 movs r0, 0x1 strb r0, [r1, 0xE] ldr r5, =0x000001a3 adds r0, r3, r5 strb r2, [r0] ldr r0, =gBattleMoveFlags strb r2, [r0] ldr r0, =gUnknown_02024212 strb r2, [r0] ldr r0, =gUnknown_02024332 strb r2, [r0, 0x6] ldr r2, =gUnknown_020241E8 ldr r0, =gUnknown_020241E9 mov r9, r0 ldrb r0, [r6] ldr r3, =gUnknown_0202449C ldr r1, [r3] adds r0, r1 adds r0, 0x80 ldrb r0, [r0] mov r5, r9 strb r0, [r5] strb r0, [r2] ldr r1, =gUnknown_0202433C ldrb r4, [r6] lsls r0, r4, 4 adds r3, r0, r1 ldrb r1, [r3] lsls r0, r1, 29 mov r8, r2 cmp r0, 0 bge _0803E1BC movs r0, 0x5 negs r0, r0 ands r0, r1 strb r0, [r3] ldr r2, =gUnknown_020241EA ldr r1, =gUnknown_020241EC movs r0, 0xA5 strh r0, [r1] strh r0, [r2] ldr r2, =gUnknown_02024280 ldr r0, [r2] movs r1, 0x80 lsls r1, 4 orrs r0, r1 str r0, [r2] movs r0, 0xA5 movs r1, 0 bl sub_80458E0 ldrb r1, [r6] ldr r3, =gUnknown_0202449C ldr r2, [r3] b _0803E316 .pool _0803E1BC: ldr r5, =gBattleMons mov r10, r5 movs r0, 0x58 adds r5, r4, 0 muls r5, r0 mov r0, r10 adds r0, 0x50 adds r0, r5, r0 ldr r1, [r0] movs r0, 0x80 lsls r0, 5 ands r0, r1 cmp r0, 0 bne _0803E1E2 movs r7, 0x80 lsls r7, 15 ands r7, r1 cmp r7, 0 beq _0803E204 _0803E1E2: ldr r3, =gUnknown_020241EA ldr r2, =gUnknown_020241EC ldr r1, =gUnknown_02024268 lsls r0, r4, 1 adds r0, r1 ldrh r0, [r0] strh r0, [r2] strh r0, [r3] b _0803E33C .pool _0803E204: ldr r1, =gUnknown_020242BC mov r12, r1 lsls r0, r4, 3 subs r0, r4 lsls r0, 2 add r0, r12 ldrh r3, [r0, 0x6] adds r1, r3, 0 cmp r1, 0 beq _0803E2DC ldrb r2, [r0, 0xC] lsls r0, r2, 1 adds r0, r5 mov r4, r10 adds r4, 0xC adds r0, r4 ldrh r0, [r0] cmp r1, r0 bne _0803E268 ldr r2, =gUnknown_020241EA ldr r0, =gUnknown_020241EC strh r3, [r0] strh r3, [r2] ldrb r1, [r6] lsls r0, r1, 3 subs r0, r1 lsls r0, 2 add r0, r12 ldrb r0, [r0, 0xC] mov r3, r9 strb r0, [r3] mov r5, r8 strb r0, [r5] ldrh r0, [r2] movs r1, 0 bl sub_80458E0 ldrb r1, [r6] ldr r3, =gUnknown_0202449C ldr r2, [r3] b _0803E316 .pool _0803E268: cmp r1, 0 beq _0803E2DC cmp r1, r0 beq _0803E2DC mov r5, r9 strb r2, [r5] mov r0, r8 strb r2, [r0] ldr r3, =gUnknown_020241EA ldr r2, =gUnknown_020241EC ldrb r0, [r0] lsls r0, 1 ldrb r1, [r6] movs r5, 0x58 muls r1, r5 adds r0, r1 adds r0, r4 ldrh r0, [r0] strh r0, [r2] strh r0, [r3] ldrb r1, [r6] lsls r0, r1, 3 subs r0, r1 lsls r0, 2 add r0, r12 movs r2, 0 strh r7, [r0, 0x6] ldrb r1, [r6] lsls r0, r1, 3 subs r0, r1 lsls r0, 2 add r0, r12 strb r2, [r0, 0xC] ldrb r0, [r6] 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_80458E0 ldrb r1, [r6] ldr r3, =gUnknown_0202449C ldr r2, [r3] b _0803E316 .pool _0803E2DC: ldr r3, =gBattleMons mov r5, r8 ldrb r0, [r5] lsls r0, 1 ldr r4, =gUnknown_0202420B ldrb r2, [r4] movs r1, 0x58 muls r1, r2 adds r0, r1 adds r3, 0xC adds r0, r3 ldr r1, =gUnknown_02024274 lsls r2, 1 adds r2, r1 ldrh r3, [r0] ldrh r2, [r2] cmp r3, r2 beq _0803E334 ldr r1, =gUnknown_020241EA ldr r0, =gUnknown_020241EC strh r3, [r0] strh r3, [r1] ldrh r0, [r1] movs r1, 0 bl sub_80458E0 ldrb r1, [r4] ldr r2, =gUnknown_0202449C ldr r2, [r2] _0803E316: adds r1, r2 strb r0, [r1, 0xC] b _0803E33C .pool _0803E334: ldr r1, =gUnknown_020241EA ldr r0, =gUnknown_020241EC strh r3, [r0] strh r3, [r1] _0803E33C: ldr r2, =gBattleMons ldr r1, =gUnknown_0202420B ldrb r3, [r1] movs r0, 0x58 muls r0, r3 adds r0, r2 ldrh r0, [r0, 0x28] mov r8, r1 cmp r0, 0 beq _0803E384 adds r0, r3, 0 bl battle_side_get_owner lsls r0, 24 cmp r0, 0 bne _0803E37C ldr r0, =gUnknown_03005D10 ldr r1, =gUnknown_020241EA ldrh r1, [r1] strh r1, [r0, 0x22] b _0803E384 .pool _0803E37C: ldr r0, =gUnknown_03005D10 ldr r1, =gUnknown_020241EA ldrh r1, [r1] strh r1, [r0, 0x24] _0803E384: mov r1, r8 ldrb r0, [r1] bl battle_side_get_owner movs r1, 0x1 eors r0, r1 lsls r0, 24 lsrs r6, r0, 24 ldr r1, =gUnknown_02024294 lsls r0, r6, 1 adds r0, r6 lsls r0, 2 adds r5, r0, r1 ldrb r0, [r5, 0x8] cmp r0, 0 beq _0803E400 ldr r2, =gBattleMoves ldr r0, =gUnknown_020241EA ldrh r1, [r0] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r0, [r0, 0x6] cmp r0, 0 bne _0803E400 mov r3, r8 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 _0803E400 ldr r1, =gBattleMons ldrb r2, [r5, 0x9] movs r0, 0x58 muls r0, r2 adds r0, r1 ldrh r0, [r0, 0x28] cmp r0, 0 beq _0803E400 ldr r0, =gEnemyMonIndex strb r2, [r0] b _0803E76A .pool _0803E400: ldr r0, =gBattleTypeFlags ldr r0, [r0] movs r1, 0x1 ands r0, r1 ldr r5, =gUnknown_0202420B mov r8, r5 cmp r0, 0 bne _0803E412 b _0803E6E0 _0803E412: ldr r1, =gUnknown_02024294 lsls r0, r6, 1 adds r0, r6 lsls r0, 2 adds r0, r1 ldrb r5, [r0, 0x8] cmp r5, 0 beq _0803E424 b _0803E630 _0803E424: ldr r2, =gBattleMoves ldr r0, =gUnknown_020241EA 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 _0803E440 ldrb r0, [r4, 0x6] cmp r0, 0x10 bne _0803E440 b _0803E630 _0803E440: ldr r3, =gBattleMons ldr r2, =gUnknown_0202420B ldrb r6, [r2] ldr r0, =gUnknown_0202449C ldr r0, [r0] adds r0, r6, r0 ldrb r1, [r0, 0xC] movs r0, 0x58 muls r0, r1 adds r0, r3 adds r0, 0x20 ldrb r0, [r0] mov r8, r2 cmp r0, 0x1F bne _0803E460 b _0803E630 _0803E460: ldrb r0, [r4, 0x2] cmp r0, 0xD beq _0803E468 b _0803E630 _0803E468: adds r0, r6, 0 bl battle_side_get_owner lsls r0, 24 lsrs r6, r0, 24 ldr r1, =gUnknown_02024064 strb r5, [r1] ldr r0, =gUnknown_0202406C ldrb r0, [r0] cmp r5, r0 bcs _0803E4E0 adds r4, r1, 0 _0803E480: ldrb r0, [r4] bl battle_side_get_owner lsls r0, 24 lsrs r0, 24 cmp r6, r0 beq _0803E4CE ldr r0, =gUnknown_0202420B ldrb r1, [r0] ldr r0, =gUnknown_0202449C ldr r0, [r0] adds r1, r0 ldrb r0, [r1, 0xC] ldrb r1, [r4] cmp r0, r1 beq _0803E4CE ldr r1, =gBattleMons ldrb r2, [r4] movs r0, 0x58 muls r0, r2 adds r0, r1 adds r0, 0x20 ldrb r0, [r0] cmp r0, 0x1F bne _0803E4CE adds r0, r2, 0 bl sub_8048728 lsls r0, 24 lsrs r0, 24 ldr r3, [sp] cmp r0, r3 bcs _0803E4CE ldrb r0, [r4] bl sub_8048728 lsls r0, 24 lsrs r0, 24 str r0, [sp] _0803E4CE: ldrb r0, [r4] adds r0, 0x1 strb r0, [r4] ldr r1, =gUnknown_0202406C lsls r0, 24 lsrs r0, 24 ldrb r1, [r1] cmp r0, r1 bcc _0803E480 _0803E4E0: ldr r5, [sp] cmp r5, 0x4 beq _0803E4E8 b _0803E5E2 _0803E4E8: ldr r2, =gBattleMoves ldr r0, =gUnknown_020241EC ldrh r1, [r0] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r0, [r0, 0x6] ands r5, r0 cmp r5, 0 beq _0803E568 ldr r0, =gUnknown_0202420B ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 bne _0803E548 bl Random movs r1, 0x1 ands r1, r0 cmp r1, 0 beq _0803E544 movs r0, 0x1 b _0803E55A .pool _0803E544: movs r0, 0x3 b _0803E55A _0803E548: bl Random movs r1, 0x1 ands r1, r0 cmp r1, 0 beq _0803E558 movs r0, 0 b _0803E55A _0803E558: movs r0, 0x2 _0803E55A: bl battle_get_side_with_given_state ldr r1, =gEnemyMonIndex strb r0, [r1] b _0803E578 .pool _0803E568: ldr r2, =gEnemyMonIndex ldr r0, =gUnknown_0202420B ldrb r0, [r0] ldr r1, =gUnknown_0202449C ldr r1, [r1] adds r0, r1 ldrb r0, [r0, 0xC] strb r0, [r2] _0803E578: ldr r7, =gUnknown_02024210 ldrb r0, [r7] ldr r1, =gBitTable mov r8, r1 ldr r5, =gEnemyMonIndex ldrb r1, [r5] lsls r1, 2 add r1, r8 ldr r1, [r1] ands r0, r1 cmp r0, 0 bne _0803E592 b _0803E76A _0803E592: ldr r6, =gUnknown_0202420B 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 _0803E5C4 ldrb r0, [r5] b _0803E758 .pool _0803E5C4: 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 _0803E74E _0803E5E2: ldr r4, =gUnknown_02024064 ldr r0, =gUnknown_0202407E ldr r3, [sp] adds r0, r3, r0 ldrb r0, [r0] strb r0, [r4] ldrb r0, [r4] ldr r2, =gBattleMons movs r1, 0x58 muls r1, r0 adds r1, r2 adds r1, 0x20 ldrb r1, [r1] bl b_history__record_ability_usage_of_player ldr r2, =gUnknown_0202437C 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, =gEnemyMonIndex ldrb r0, [r4] strb r0, [r1] b _0803E76A .pool _0803E630: ldr r0, =gBattleTypeFlags ldr r0, [r0] movs r4, 0x1 ands r0, r4 cmp r0, 0 beq _0803E6E0 ldr r2, =gBattleMoves ldr r0, =gUnknown_020241EC 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 _0803E6E0 mov r5, r8 ldrb r0, [r5] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 bne _0803E684 bl Random adds r1, r4, 0 ands r1, r0 cmp r1, 0 beq _0803E680 movs r0, 0x1 b _0803E696 .pool _0803E680: movs r0, 0x3 b _0803E696 _0803E684: bl Random adds r1, r4, 0 ands r1, r0 cmp r1, 0 beq _0803E694 movs r0, 0 b _0803E696 _0803E694: movs r0, 0x2 _0803E696: bl battle_get_side_with_given_state ldr r1, =gEnemyMonIndex strb r0, [r1] ldr r0, =gUnknown_02024210 ldrb r1, [r0] ldr r2, =gBitTable ldr r5, =gEnemyMonIndex ldrb r0, [r5] lsls r0, 2 adds r0, r2 ldr r0, [r0] ands r1, r0 cmp r1, 0 beq _0803E76A ldr r0, =gUnknown_0202420B 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 _0803E76A ldrb r0, [r5] b _0803E758 .pool _0803E6E0: ldr r5, =gEnemyMonIndex mov r2, r8 ldrb r0, [r2] ldr r1, =gUnknown_0202449C ldr r1, [r1] adds r0, r1 ldrb r0, [r0, 0xC] strb r0, [r5] ldr r6, =gUnknown_02024210 ldrb r1, [r6] ldr r7, =gBitTable ldrb r0, [r5] lsls r0, 2 adds r0, r7 ldr r0, [r0] ands r1, r0 cmp r1, 0 beq _0803E76A ldrb r0, [r2] 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 _0803E730 ldrb r0, [r5] b _0803E758 .pool _0803E730: mov r1, r8 ldrb r0, [r1] 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 _0803E74E: ldr r0, [r0] ands r1, r0 cmp r1, 0 beq _0803E76A adds r0, r2, 0 _0803E758: 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] _0803E76A: ldr r0, =gBattleTypeFlags ldr r1, [r0] movs r2, 0x80 lsls r2, 10 ands r1, r2 adds r5, r0, 0 cmp r1, 0 beq _0803E808 ldr r0, =gUnknown_0202433C ldr r4, =gUnknown_0202420B ldrb r2, [r4] lsls r1, r2, 4 adds r1, r0 ldrb r0, [r1, 0x2] lsls r0, 27 cmp r0, 0 bge _0803E808 ldr r1, =gBattleMons movs r0, 0x58 muls r0, r2 adds r0, r1 ldrh r0, [r0, 0x28] cmp r0, 0 bne _0803E7B4 ldr r1, =gUnknown_02024083 movs r0, 0xC b _0803E83C .pool _0803E7B4: ldr r3, =gUnknown_02024230 lsls r0, r2, 2 adds r0, r3 ldr r0, [r0] cmp r0, 0 beq _0803E7EC ldr r1, =gUnknown_02024332 movs r2, 0 movs r0, 0x4 strb r0, [r1, 0x5] ldr r1, =gUnknown_02024214 ldrb r0, [r4] lsls r0, 2 adds r0, r3 ldr r0, [r0] str r0, [r1] ldrb r0, [r4] lsls r0, 2 adds r0, r3 str r2, [r0] b _0803E824 .pool _0803E7EC: ldr r1, =gUnknown_02024332 movs r0, 0x4 strb r0, [r1, 0x5] ldr r1, =gUnknown_02024214 ldr r0, =gUnknown_082DB6AD str r0, [r1] b _0803E824 .pool _0803E808: ldr r4, =gUnknown_02024214 ldr r3, =gUnknown_082D86A8 ldr r2, =gBattleMoves ldr r0, =gUnknown_020241EA 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] _0803E824: ldr r0, [r5] movs r1, 0x80 lsls r1, 11 ands r0, r1 cmp r0, 0 beq _0803E838 ldr r0, =gUnknown_0202420B ldrb r0, [r0] bl sub_81A56E8 _0803E838: ldr r1, =gUnknown_02024083 movs r0, 0xA _0803E83C: 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 .pool thumb_func_end sub_803E0B8 thumb_func_start bs2_8016374 bs2_8016374: @ 803E868 push {r4,lr} ldr r3, =gUnknown_0202420B ldr r1, =gUnknown_0202407E ldr r0, =gUnknown_02024082 ldrb r0, [r0] adds r0, r1 ldrb r0, [r0] strb r0, [r3] ldr r0, =gUnknown_02022E14 movs r2, 0 strh r2, [r0] ldr r0, =gUnknown_02022E16 strh r2, [r0] ldr r1, =gUnknown_020244AC ldrb r0, [r3] adds r0, r1 strb r2, [r0] ldr r1, =gUnknown_020244B0 ldrb r0, [r3] adds r0, r1 strb r2, [r0] ldr r2, =gUnknown_02022F58 movs r0, 0xFD strb r0, [r2] movs r0, 0x7 strb r0, [r2, 0x1] ldrb r4, [r3] strb r4, [r2, 0x2] ldrb r0, [r3] ldr r1, =gUnknown_0202449C ldr r1, [r1] adds r0, r1 adds r0, 0x58 ldrb r0, [r0] strb r0, [r2, 0x3] movs r0, 0xFF strb r0, [r2, 0x4] ldr r0, =gUnknown_02024474 strb r4, [r0, 0x17] ldr r1, =gUnknown_02024214 ldr r0, =gUnknown_082DAB15 str r0, [r1] ldr r1, =gUnknown_02024083 movs r0, 0xA strb r0, [r1] ldr r1, =gUnknown_03005D10 ldrb r0, [r1, 0x2] cmp r0, 0xFE bhi _0803E8CE adds r0, 0x1 strb r0, [r1, 0x2] _0803E8CE: pop {r4} pop {r0} bx r0 .pool thumb_func_end bs2_8016374 thumb_func_start sub_803E90C sub_803E90C: @ 803E90C push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} ldr r4, =gUnknown_0202420B ldr r2, =gEnemyMonIndex ldr r1, =gUnknown_0202407E ldr r0, =gUnknown_02024082 ldrb r0, [r0] adds r0, r1 ldrb r0, [r0] strb r0, [r2] strb r0, [r4] ldr r0, =gUnknown_02022E14 movs r1, 0 strh r1, [r0] ldr r0, =gUnknown_02022E16 strh r1, [r0] ldrb r0, [r4] bl sub_8045868 ldr r5, =gUnknown_02024208 ldr r2, =gUnknown_02023864 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 _0803E998 ldr r2, =gUnknown_02024214 ldr r1, =gUnknown_082DBD08 ldrh r0, [r5] lsls r0, 2 adds r0, r1 ldr r0, [r0] str r0, [r2] ldr r0, =gUnknown_02024083 mov r10, r0 b _0803EBF6 .pool _0803E998: adds r0, r3, 0 subs r0, 0x50 lsls r0, 16 lsrs r0, 16 cmp r0, 0x1 bhi _0803E9C0 ldr r0, =gUnknown_02024214 ldr r1, =gUnknown_082DBD54 ldr r1, [r1] str r1, [r0] ldr r1, =gUnknown_02024083 mov r10, r1 b _0803EBF6 .pool _0803E9C0: ldrb r0, [r4] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 bne _0803E9E8 ldr r0, =gUnknown_02024214 ldr r1, =gUnknown_082DBD3C ldr r1, [r1] str r1, [r0] ldr r2, =gUnknown_02024083 mov r10, r2 b _0803EBF6 .pool _0803E9E8: ldr r3, =gUnknown_02024474 ldrb r0, [r4] strb r0, [r3, 0x17] lsls r0, 24 lsrs r0, 25 ldr r2, =gUnknown_0202449C ldr r1, [r2] adds r0, r1 adds r0, 0xC4 ldrb r0, [r0] subs r0, 0x1 mov r8, r4 ldr r1, =gUnknown_02024214 mov r9, r1 ldr r6, =gUnknown_082DBD3C mov r12, r3 adds r7, r2, 0 ldr r2, =gUnknown_02024083 mov r10, r2 cmp r0, 0x4 bls _0803EA14 b _0803EBDE _0803EA14: lsls r0, 2 ldr r1, =_0803EA38 adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _0803EA38: .4byte _0803EBDE .4byte _0803EBDE .4byte _0803EA4C .4byte _0803EAE0 .4byte _0803EBB0 _0803EA4C: ldr r5, =gUnknown_02024332 movs r0, 0 strb r0, [r5, 0x5] ldr r2, =gUnknown_0202420B ldrb r0, [r2] lsrs r0, 1 ldr r1, [r7] adds r0, r1 adds r0, 0xC6 ldrb r1, [r0] movs r0, 0x1 ands r0, r1 mov r8, r2 cmp r0, 0 beq _0803EA98 movs r0, 0x3E ands r0, r1 ldr r1, =gUnknown_02024214 mov r9, r1 ldr r6, =gUnknown_082DBD3C ldr r2, =gUnknown_02024083 mov r10, r2 cmp r0, 0 bne _0803EA7E b _0803EBDE _0803EA7E: movs r0, 0x5 strb r0, [r5, 0x5] b _0803EBDE .pool _0803EA98: ldr r0, =gUnknown_02024214 mov r9, r0 ldr r6, =gUnknown_082DBD3C ldr r1, =gUnknown_02024083 mov r10, r1 mov r4, r8 adds r3, r7, 0 adds r2, r5, 0 _0803EAA8: ldrb r1, [r4] lsrs r1, 1 ldr r0, [r3] adds r1, r0 adds r1, 0xC6 ldrb r0, [r1] lsrs r0, 1 strb r0, [r1] ldrb r0, [r2, 0x5] adds r0, 0x1 strb r0, [r2, 0x5] ldrb r0, [r4] lsrs r0, 1 ldr r1, [r3] adds r0, r1 adds r0, 0xC6 ldrb r1, [r0] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _0803EAA8 b _0803EBDE .pool _0803EAE0: ldr r3, =gUnknown_02024332 movs r0, 0x4 strb r0, [r3, 0x5] ldr r2, =gUnknown_0202420B ldrb r0, [r2] lsrs r0, 1 ldr r1, [r7] adds r0, r1 adds r6, r0, 0 adds r6, 0xC6 ldrb r1, [r6] movs r0, 0x80 ands r0, r1 lsls r0, 24 lsrs r5, r0, 24 mov r8, r2 cmp r5, 0 beq _0803EB28 movs r0, 0x5 strb r0, [r3, 0x5] ldr r2, =gUnknown_02024214 mov r9, r2 ldr r6, =gUnknown_082DBD3C ldr r0, =gUnknown_02024083 mov r10, r0 b _0803EBDE .pool _0803EB28: ldr r3, =gUnknown_02022F58 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, =gUnknown_02022F68 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 r1, =gUnknown_02024214 mov r9, r1 ldr r6, =gUnknown_082DBD3C ldr r0, =gUnknown_02024083 mov r10, r0 cmp r2, 0 bne _0803EB8C mov r5, r8 adds r4, r7, 0 adds r2, r3, 0 _0803EB62: ldrb r1, [r5] lsrs r1, 1 ldr r0, [r4] adds r1, r0 adds r1, 0xC6 ldrb r0, [r1] lsrs r0, 1 strb r0, [r1] ldrb r0, [r2, 0x2] adds r0, 0x1 strb r0, [r2, 0x2] ldrb r0, [r5] lsrs r0, 1 ldr r1, [r4] adds r0, r1 adds r0, 0xC6 ldrb r1, [r0] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _0803EB62 _0803EB8C: ldrb r0, [r3, 0x2] adds r0, 0xE movs r1, 0 mov r2, r12 strb r0, [r2, 0x10] strb r1, [r2, 0x11] b _0803EBDE .pool _0803EBB0: ldr r0, =gBattleTypeFlags ldr r1, [r0] movs r0, 0x1 ands r1, r0 cmp r1, 0 beq _0803EBCC ldr r1, =gUnknown_02024332 movs r0, 0x2 strb r0, [r1, 0x5] b _0803EBD0 .pool _0803EBCC: ldr r0, =gUnknown_02024332 strb r1, [r0, 0x5] _0803EBD0: ldr r0, =gUnknown_0202420B mov r8, r0 ldr r1, =gUnknown_02024214 mov r9, r1 ldr r6, =gUnknown_082DBD3C ldr r2, =gUnknown_02024083 mov r10, r2 _0803EBDE: mov r1, r8 ldrb r0, [r1] lsrs r0, 1 ldr r1, [r7] adds r0, r1 adds r0, 0xC4 ldrb r0, [r0] lsls r0, 2 adds r0, r6 ldr r0, [r0] mov r2, r9 str r0, [r2] _0803EBF6: movs r0, 0xA mov r1, r10 strb r0, [r1] pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_803E90C thumb_func_start sub_803EC20 sub_803EC20: @ 803EC20 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} lsls r0, 24 lsrs r5, r0, 24 movs r7, 0 ldr r1, =gBattleMons movs r0, 0x58 muls r0, r5 adds r1, r0, r1 ldrh r0, [r1, 0x2E] cmp r0, 0xAF bne _0803EC54 ldr r1, =gUnknown_02024404 lsls r0, r5, 3 subs r0, r5 lsls r0, 2 adds r0, r1 ldrb r1, [r0, 0x7] b _0803EC5E .pool _0803EC54: ldrh r0, [r1, 0x2E] bl itemid_get_x12 lsls r0, 24 lsrs r1, r0, 24 _0803EC5E: ldr r0, =gUnknown_0202420F strb r5, [r0] cmp r1, 0x25 bne _0803EC9C ldr r2, =gUnknown_02024208 ldr r1, =gBattleMons movs r0, 0x58 muls r0, r5 adds r0, r1 ldrh r0, [r0, 0x2E] strh r0, [r2] ldr r0, =gUnknown_0202433C lsls r2, r5, 4 adds r2, r0 ldrb r1, [r2, 0x1] movs r0, 0x19 negs r0, r0 ands r0, r1 movs r1, 0x8 orrs r0, r1 strb r0, [r2, 0x1] b _0803ED70 .pool _0803EC9C: ldr r0, =gBattleMons mov r10, r0 movs r2, 0x58 mov r9, r2 mov r0, r9 muls r0, r5 add r0, r10 mov r8, r0 adds r0, 0x20 ldrb r6, [r0] cmp r6, 0x32 bne _0803ED5C bl InBattlePyramid lsls r0, 24 cmp r0, 0 beq _0803ED38 ldr r4, =gUnknown_0202449C ldr r1, [r4] adds r1, 0x6C ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] bl sub_81A9E28 lsls r0, 24 lsrs r1, r0, 24 mov r2, r8 ldrh r0, [r2, 0x6] muls r0, r1 movs r2, 0x1 adds r1, r5, 0 eors r1, r2 mov r2, r9 muls r2, r1 adds r1, r2, 0 add r1, r10 ldrh r1, [r1, 0x6] bl __divsi3 ldr r1, [r4] adds r1, 0x6C ldrb r2, [r1] lsls r1, r2, 4 subs r1, r2 lsls r1, 1 adds r0, r1 lsls r0, 24 lsrs r4, r0, 24 bl Random movs r1, 0xFF ands r1, r0 cmp r4, r1 bhi _0803ED0C b _0803EE12 _0803ED0C: ldr r0, =gUnknown_0202420A strb r6, [r0] ldr r0, =gUnknown_0202433C lsls r2, r5, 4 adds r2, r0 ldrb r1, [r2, 0x1] movs r0, 0x19 negs r0, r0 ands r0, r1 movs r1, 0x10 orrs r0, r1 strb r0, [r2, 0x1] b _0803ED70 .pool _0803ED38: ldr r0, =gUnknown_0202420A strb r6, [r0] ldr r0, =gUnknown_0202433C lsls r2, r5, 4 adds r2, r0 ldrb r1, [r2, 0x1] movs r0, 0x19 negs r0, r0 ands r0, r1 movs r1, 0x10 orrs r0, r1 strb r0, [r2, 0x1] b _0803ED70 .pool _0803ED5C: ldr r1, =gBattleTypeFlags ldr r2, [r1] ldr r0, =0x043f0100 ands r0, r2 cmp r0, 0 beq _0803ED80 movs r0, 0x8 ands r2, r0 cmp r2, 0 beq _0803ED80 _0803ED70: adds r0, r7, 0x1 lsls r0, 24 lsrs r7, r0, 24 b _0803EE12 .pool _0803ED80: ldr r0, [r1] movs r1, 0x1 ands r0, r1 cmp r0, 0 bne _0803EE06 bl InBattlePyramid lsls r0, 24 cmp r0, 0 beq _0803EDBC bl sub_81A9E28 lsls r0, 24 lsrs r1, r0, 24 ldr r4, =gBattleMons movs r3, 0x58 adds r0, r5, 0 muls r0, r3 adds r0, r4 ldrh r0, [r0, 0x6] muls r0, r1 movs r2, 0x1 adds r1, r5, 0 eors r1, r2 muls r1, r3 adds r1, r4 b _0803EDDA .pool _0803EDBC: ldr r3, =gBattleMons movs r2, 0x58 adds r0, r5, 0 muls r0, r2 adds r4, r0, r3 movs r1, 0x1 adds r0, r5, 0 eors r0, r1 muls r0, r2 adds r1, r0, r3 ldrh r0, [r4, 0x6] ldrh r2, [r1, 0x6] cmp r0, r2 bcs _0803EE00 lsls r0, 7 _0803EDDA: ldrh r1, [r1, 0x6] bl __divsi3 ldr r1, =gUnknown_0202449C ldr r1, [r1] adds r1, 0x6C ldrb r2, [r1] lsls r1, r2, 4 subs r1, r2 lsls r1, 1 adds r0, r1 lsls r0, 24 lsrs r4, r0, 24 bl Random movs r1, 0xFF ands r1, r0 cmp r4, r1 bls _0803EE06 _0803EE00: adds r0, r7, 0x1 lsls r0, 24 lsrs r7, r0, 24 _0803EE06: ldr r0, =gUnknown_0202449C ldr r1, [r0] adds r1, 0x6C ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] _0803EE12: cmp r7, 0 beq _0803EE24 ldr r1, =gUnknown_02024082 ldr r0, =gUnknown_0202406C ldrb r0, [r0] strb r0, [r1] ldr r1, =gUnknown_0202433A movs r0, 0x4 strb r0, [r1] _0803EE24: adds r0, r7, 0 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 .pool thumb_func_end sub_803EC20 thumb_func_start sub_803EE48 sub_803EE48: @ 803EE48 push {r4-r6,lr} ldr r4, =gUnknown_0202420B ldr r1, =gUnknown_0202407E ldr r5, =gUnknown_02024082 ldrb r0, [r5] adds r0, r1 ldrb r0, [r0] strb r0, [r4] ldr r0, =gBattleTypeFlags ldr r0, [r0] ldr r1, =0x02000002 ands r0, r1 cmp r0, 0 beq _0803EF0C ldr r0, =gUnknown_0202406C ldrb r1, [r0] strb r1, [r5] ldr r2, =gUnknown_02024064 movs r0, 0 strb r0, [r2] lsls r1, 24 cmp r1, 0 beq _0803EEE0 adds r4, r2, 0 ldr r6, =gUnknown_0202421C ldr r5, =gUnknown_0202433A _0803EE7C: ldrb r0, [r4] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 bne _0803EEBC ldrb r0, [r4] adds r0, r6 ldrb r0, [r0] cmp r0, 0x3 bne _0803EECE ldrb r0, [r5] movs r1, 0x2 b _0803EECA .pool _0803EEBC: ldrb r0, [r4] adds r0, r6 ldrb r0, [r0] cmp r0, 0x3 bne _0803EECE ldrb r0, [r5] movs r1, 0x1 _0803EECA: orrs r0, r1 strb r0, [r5] _0803EECE: ldrb r0, [r4] adds r0, 0x1 strb r0, [r4] ldr r1, =gUnknown_0202406C lsls r0, 24 lsrs r0, 24 ldrb r1, [r1] cmp r0, r1 bcc _0803EE7C _0803EEE0: ldr r2, =gUnknown_0202433A ldrb r0, [r2] movs r1, 0x80 orrs r0, r1 strb r0, [r2] ldr r0, =gSaveBlock2Ptr ldr r1, [r0] ldr r0, =0x00000ca9 adds r1, r0 ldrb r0, [r1] movs r2, 0x8 orrs r0, r2 b _0803EF96 .pool _0803EF0C: ldrb r0, [r4] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 bne _0803EF4C ldrb r0, [r4] bl sub_803EC20 lsls r0, 24 cmp r0, 0 bne _0803EF98 ldrb r0, [r4] bl sub_8045868 ldr r1, =gUnknown_02024332 movs r0, 0x3 strb r0, [r1, 0x5] ldr r1, =gUnknown_02024214 ldr r0, =gUnknown_082DAB02 str r0, [r1] ldr r1, =gUnknown_02024083 movs r0, 0xA b _0803EF96 .pool _0803EF4C: ldr r1, =gBattleMons ldrb r2, [r4] movs r0, 0x58 muls r0, r2 adds r1, 0x50 adds r0, r1 ldr r0, [r0] ldr r1, =0x0400e000 ands r0, r1 cmp r0, 0 beq _0803EF8C ldr r1, =gUnknown_02024332 movs r0, 0x4 strb r0, [r1, 0x5] ldr r1, =gUnknown_02024214 ldr r0, =gUnknown_082DAB02 str r0, [r1] ldr r1, =gUnknown_02024083 movs r0, 0xA b _0803EF96 .pool _0803EF8C: ldr r0, =gUnknown_0202406C ldrb r0, [r0] strb r0, [r5] ldr r1, =gUnknown_0202433A movs r0, 0x6 _0803EF96: strb r0, [r1] _0803EF98: pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_803EE48 thumb_func_start sub_803EFA8 sub_803EFA8: @ 803EFA8 ldr r2, =gUnknown_0202420B ldr r1, =gUnknown_0202407E ldr r0, =gUnknown_02024082 ldrb r0, [r0] adds r0, r1 ldrb r0, [r0] strb r0, [r2] ldr r0, =gUnknown_02022E14 movs r1, 0 strh r1, [r0] ldr r0, =gUnknown_02022E16 strh r1, [r0] ldr r1, =gUnknown_02024214 ldr r0, =gUnknown_082DBD58 ldr r0, [r0] str r0, [r1] ldr r1, =gUnknown_02024083 movs r0, 0xA strb r0, [r1] bx lr .pool thumb_func_end sub_803EFA8 thumb_func_start bs5_8016AC0 bs5_8016AC0: @ 803EFF0 ldr r2, =gUnknown_0202420B ldr r1, =gUnknown_0202407E ldr r0, =gUnknown_02024082 ldrb r0, [r0] adds r0, r1 ldrb r0, [r0] strb r0, [r2] ldr r0, =gUnknown_02022E14 movs r1, 0 strh r1, [r0] ldr r0, =gUnknown_02022E16 strh r1, [r0] ldr r1, =gUnknown_0203A04C ldrb r0, [r1] subs r0, 0x1 strb r0, [r1] ldr r1, =gUnknown_02024208 movs r0, 0x5 strh r0, [r1] ldr r1, =gUnknown_02024214 ldr r0, =gUnknown_082DBD08 ldr r0, [r0, 0x14] str r0, [r1] ldr r1, =gUnknown_02024083 movs r0, 0xA strb r0, [r1] bx lr .pool thumb_func_end bs5_8016AC0 thumb_func_start sub_803F050 sub_803F050: @ 803F050 push {r4-r6,lr} ldr r3, =gUnknown_0202420B ldr r1, =gUnknown_0202407E ldr r0, =gUnknown_02024082 ldrb r0, [r0] adds r0, r1 ldrb r0, [r0] strb r0, [r3] ldr r0, =gUnknown_02022E14 movs r1, 0 strh r1, [r0] ldr r0, =gUnknown_02022E16 strh r1, [r0] ldr r6, =gUnknown_02024332 ldr r2, =gUnknown_02023864 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, =gUnknown_02024208 ldrb r0, [r3] lsls r0, 9 adds r2, 0x2 adds r0, r2 ldrb r0, [r0] strh r0, [r1] ldr r1, =gUnknown_03005D10 ldrb r0, [r1, 0x1F] cmp r0, 0xFE bhi _0803F096 adds r0, 0x1 strb r0, [r1, 0x1F] _0803F096: ldr r2, =gUnknown_0202449C ldr r0, [r2] adds r1, r0, 0 adds r1, 0x7A ldrb r0, [r1] cmp r0, 0x2 bhi _0803F0A8 adds r0, 0x1 strb r0, [r1] _0803F0A8: ldr r0, [r2] adds r3, r0, 0 adds r3, 0x7B ldrb r5, [r3] adds r4, r5, 0 cmp r4, 0x1 bls _0803F100 ldr r2, =gUnknown_0831BCE0 adds r0, 0x7A ldrb r1, [r0] lsls r0, r1, 1 adds r0, r1 ldrb r6, [r6, 0x5] adds r0, r6 adds r0, r2 ldrb r0, [r0] cmp r4, r0 bcs _0803F0FC movs r0, 0x1 b _0803F0FE .pool _0803F0FC: subs r0, r5, r0 _0803F0FE: strb r0, [r3] _0803F100: ldr r1, =gUnknown_02024214 ldr r0, =gUnknown_082DBD58 ldr r0, [r0, 0x8] str r0, [r1] ldr r1, =gUnknown_02024083 movs r0, 0xA strb r0, [r1] pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_803F050 thumb_func_start sub_803F120 sub_803F120: @ 803F120 push {r4,lr} ldr r2, =gUnknown_0202420B ldr r1, =gUnknown_0202407E ldr r0, =gUnknown_02024082 ldrb r0, [r0] adds r0, r1 ldrb r0, [r0] strb r0, [r2] ldr r0, =gUnknown_02022E14 movs r4, 0 strh r4, [r0] ldr r0, =gUnknown_02022E16 strh r4, [r0] ldr r3, =gUnknown_0202449C ldr r0, [r3] adds r2, r0, 0 adds r2, 0x7C ldr r1, =gUnknown_0831BCEF adds r0, 0x79 ldrb r0, [r0] adds r0, r1 ldrb r0, [r0] ldrb r1, [r2] adds r0, r1 strb r0, [r2] ldr r0, [r3] adds r1, r0, 0 adds r1, 0x7C ldrb r0, [r1] cmp r0, 0x14 bls _0803F162 movs r0, 0x14 strb r0, [r1] _0803F162: ldr r0, [r3] adds r2, r0, 0 adds r2, 0x7B ldr r1, =gUnknown_0831BCF3 adds r0, 0x79 ldrb r0, [r0] adds r0, r1 ldrb r0, [r0] ldrb r1, [r2] adds r0, r1 strb r0, [r2] ldr r0, [r3] adds r1, r0, 0 adds r1, 0x7B ldrb r0, [r1] cmp r0, 0x14 bls _0803F188 movs r0, 0x14 strb r0, [r1] _0803F188: ldr r0, [r3] adds r1, r0, 0 adds r1, 0x79 ldrb r0, [r1] cmp r0, 0x2 bhi _0803F1C4 adds r0, 0x1 strb r0, [r1] ldr r0, =gUnknown_02024332 strb r4, [r0, 0x5] b _0803F1CA .pool _0803F1C4: ldr r1, =gUnknown_02024332 movs r0, 0x1 strb r0, [r1, 0x5] _0803F1CA: ldr r1, =gUnknown_02024214 ldr r0, =gUnknown_082DBD58 ldr r0, [r0, 0x4] str r0, [r1] ldr r1, =gUnknown_02024083 movs r0, 0xA strb r0, [r1] pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_803F120 thumb_func_start bs8_exit_by_flight bs8_exit_by_flight: @ 803F1F0 push {r4,lr} ldr r2, =gUnknown_0202420B ldr r1, =gUnknown_0202407E ldr r4, =gUnknown_02024082 ldrb r0, [r4] adds r0, r1 ldrb r0, [r0] strb r0, [r2] movs r0, 0x11 bl audio_play ldr r0, =gUnknown_0202406C ldrb r0, [r0] strb r0, [r4] ldr r1, =gUnknown_0202433A movs r0, 0x4 strb r0, [r1] pop {r4} pop {r0} bx r0 .pool thumb_func_end bs8_exit_by_flight thumb_func_start bs9_8016C9C bs9_8016C9C: @ 803F22C ldr r3, =gUnknown_0202420B ldr r1, =gUnknown_0202407E ldr r0, =gUnknown_02024082 ldrb r0, [r0] adds r0, r1 ldrb r2, [r0] strb r2, [r3] ldr r0, =gUnknown_02022E14 movs r1, 0 strh r1, [r0] ldr r0, =gUnknown_02022E16 strh r1, [r0] ldr r1, =gUnknown_02022F58 movs r0, 0xFD strb r0, [r1] movs r0, 0x7 strb r0, [r1, 0x1] strb r2, [r1, 0x2] ldr r2, =gUnknown_0202406E 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, =gUnknown_02024214 ldr r0, =gUnknown_082DBD58 ldr r0, [r0, 0xC] str r0, [r1] ldr r1, =gUnknown_02024083 movs r0, 0xA strb r0, [r1] ldr r1, =gUnknown_0202407A movs r0, 0xC strb r0, [r1, 0x1] bx lr .pool thumb_func_end bs9_8016C9C thumb_func_start bsB_exit_by_move bsB_exit_by_move: @ 803F2A4 push {lr} bl sub_8041728 lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0 bne _0803F2C0 ldr r0, =gUnknown_0202449C ldr r0, [r0] adds r0, 0x4D strb r1, [r0] ldr r1, =gUnknown_02024083 movs r0, 0xC strb r0, [r1] _0803F2C0: pop {r0} bx r0 .pool thumb_func_end bsB_exit_by_move thumb_func_start bsD_proceed bsD_proceed: @ 803F2CC ldr r1, =gUnknown_02024082 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] ldr r3, =gUnknown_02024083 ldr r2, =gUnknown_0202407A ldrb r0, [r1] adds r0, r2 ldrb r0, [r0] strb r0, [r3] ldr r2, =gUnknown_02024280 ldr r0, [r2] ldr r1, =0xf1e892af ands r0, r1 str r0, [r2] bx lr .pool thumb_func_end bsD_proceed thumb_func_start bsC_8016D70 bsC_8016D70: @ 803F300 push {r4-r6,lr} ldr r1, =gUnknown_0202407E ldr r2, =gUnknown_02024082 ldrb r0, [r2] adds r0, r1 ldrb r0, [r0] ldr r6, =gUnknown_0202449C ldr r1, [r6] adds r0, r1 adds r0, 0x5C movs r1, 0x6 strb r1, [r0] ldrb r0, [r2] adds r0, 0x1 strb r0, [r2] ldr r3, =gUnknown_02024083 ldr r1, =gUnknown_0202407A ldrb r0, [r2] adds r0, r1 ldrb r0, [r0] strb r0, [r3] bl sub_803D6A0 ldr r2, =gUnknown_02024280 ldr r0, [r2] ldr r1, =0xf1e892af ands r0, r1 str r0, [r2] ldr r0, =gUnknown_020241EA movs r1, 0 strh r1, [r0] ldr r0, =gBattleMoveDamage movs r4, 0 str r4, [r0] ldr r0, =gBattleMoveFlags strb r1, [r0] ldr r5, =gUnknown_02024474 strb r1, [r5, 0x18] strb r1, [r5, 0x19] ldr r2, =gUnknown_02024250 ldr r3, =gUnknown_0202420B ldrb r0, [r3] lsls r0, 1 adds r0, r2 strh r4, [r0] ldr r2, =gUnknown_02024258 ldrb r0, [r3] lsls r0, 1 adds r0, r2 strh r4, [r0] ldr r0, [r6] strb r1, [r0, 0x13] ldr r0, =gUnknown_02024400 strh r4, [r0] strb r1, [r5, 0x14] ldr r0, =gUnknown_02024332 strb r1, [r0, 0x3] strb r1, [r0, 0x4] strb r1, [r5, 0x16] ldr r0, =gUnknown_020244A8 ldr r0, [r0] ldr r0, [r0, 0x8] adds r0, 0x20 strb r1, [r0] pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end bsC_8016D70 thumb_func_start get_battle_side_of_something get_battle_side_of_something: @ 803F3CC push {lr} lsls r0, 24 lsrs r1, r0, 24 movs r0, 0 cmp r1, 0xE bhi _0803F47A lsls r0, r1, 2 ldr r1, =_0803F3E8 adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _0803F3E8: .4byte _0803F424 .4byte _0803F430 .4byte _0803F43C .4byte _0803F458 .4byte _0803F464 .4byte _0803F458 .4byte _0803F464 .4byte _0803F448 .4byte _0803F464 .4byte _0803F464 .4byte _0803F44C .4byte _0803F464 .4byte _0803F468 .4byte _0803F46C .4byte _0803F470 _0803F424: ldr r0, =gEnemyMonIndex ldrb r0, [r0] b _0803F47A .pool _0803F430: ldr r0, =gUnknown_0202420B ldrb r0, [r0] b _0803F47A .pool _0803F43C: ldr r0, =gUnknown_0202420E ldrb r0, [r0] b _0803F47A .pool _0803F448: movs r0, 0 b _0803F47A _0803F44C: ldr r0, =gUnknown_02024474 ldrb r0, [r0, 0x17] b _0803F47A .pool _0803F458: ldr r0, =gUnknown_0202420D ldrb r0, [r0] b _0803F47A .pool _0803F464: movs r0, 0 b _0803F472 _0803F468: movs r0, 0x1 b _0803F472 _0803F46C: movs r0, 0x2 b _0803F472 _0803F470: movs r0, 0x3 _0803F472: bl battle_get_side_with_given_state lsls r0, 24 lsrs r0, 24 _0803F47A: pop {r1} bx r1 thumb_func_end get_battle_side_of_something thumb_func_start sub_803F480 sub_803F480: @ 803F480 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, =gBattleMons movs r4, 0x58 muls r0, r4 adds r0, r1 adds r0, 0x20 ldrb r0, [r0] mov r12, r1 cmp r0, 0x2E bne _0803F532 movs r3, 0 adds r0, r5, 0 muls r0, r4 adds r1, 0xC adds r1, r0, r1 b _0803F4BC .pool _0803F4B4: adds r1, 0x2 adds r3, 0x1 cmp r3, 0x3 bgt _0803F4C2 _0803F4BC: ldrh r0, [r1] cmp r0, r2 bne _0803F4B4 _0803F4C2: cmp r3, 0x4 beq _0803F532 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 _0803F4DE subs r0, 0x1 strb r0, [r1] _0803F4DE: 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 _0803F532 ldr r1, =gUnknown_020242BC lsls r0, r5, 3 subs r0, r5 lsls r0, 2 adds r0, r1 ldrb r1, [r0, 0x18] lsrs r1, 4 ldr r2, =gBitTable lsls r0, r3, 2 adds r0, r2 ldr r0, [r0] ands r1, r0 cmp r1, 0 bne _0803F532 ldr r4, =gUnknown_02024064 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 _0803F532: add sp, 0x4 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_803F480 thumb_func_start sub_803F548 sub_803F548: @ 803F548 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, =gUnknown_0202406C ldrb r0, [r0] cmp r4, r0 bge _0803F5F0 ldr r1, =gBattleMons movs r0, 0x58 adds r7, r5, 0 muls r7, r0 adds r1, 0xC mov r10, r1 _0803F57E: 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 _0803F5E6 ldr r0, =gBattleMons 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 _0803F5E6 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 _0803F5CE adds r3, r1, 0 mov r0, r10 adds r1, r7, r0 _0803F5C0: adds r1, 0x2 adds r2, 0x1 cmp r2, 0x3 bgt _0803F5CE ldrh r0, [r1] cmp r0, r3 bne _0803F5C0 _0803F5CE: cmp r2, 0x4 beq _0803F5E6 mov r8, r2 adds r1, r2, r7 adds r0, r4, 0 adds r0, 0x24 adds r1, r0 ldrb r0, [r1] cmp r0, 0 beq _0803F5E6 subs r0, 0x1 strb r0, [r1] _0803F5E6: adds r4, r6, 0 ldr r0, =gUnknown_0202406C ldrb r0, [r0] cmp r4, r0 blt _0803F57E _0803F5F0: mov r1, r8 cmp r1, 0x4 beq _0803F658 ldr r6, =gBattleMons 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 _0803F658 ldr r1, =gUnknown_020242BC lsls r0, r5, 3 subs r0, r5 lsls r0, 2 adds r0, r1 ldrb r1, [r0, 0x18] lsrs r1, 4 ldr r2, =gBitTable mov r4, r8 lsls r0, r4, 2 adds r0, r2 ldr r0, [r0] ands r1, r0 cmp r1, 0 bne _0803F658 ldr r4, =gUnknown_02024064 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 _0803F658: add sp, 0x4 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_803F548 thumb_func_start sub_803F67C sub_803F67C: @ 803F67C 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, =gUnknown_0202406C mov r8, r0 ldrb r0, [r0] cmp r1, r0 bge _0803F6FE ldr r7, =gBattleMons 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 _0803F6AE: mov r0, r12 muls r0, r1 adds r0, r7 adds r0, 0x20 ldrb r0, [r0] adds r4, r1, 0x1 cmp r0, 0x2E bne _0803F6F4 cmp r1, r3 beq _0803F6F4 movs r2, 0 mov r1, r10 ldrh r0, [r1] cmp r0, 0xC3 beq _0803F6DE ldr r1, =gUnknown_02024090 add r1, r9 _0803F6D0: adds r1, 0x2 adds r2, 0x1 cmp r2, 0x3 bgt _0803F6DE ldrh r0, [r1] cmp r0, 0xC3 bne _0803F6D0 _0803F6DE: cmp r2, 0x4 beq _0803F6F4 adds r6, r2, 0 adds r0, r6, r5 ldr r2, =gUnknown_020240A8 adds r1, r0, r2 ldrb r0, [r1] cmp r0, 0 beq _0803F6F4 subs r0, 0x1 strb r0, [r1] _0803F6F4: adds r1, r4, 0 mov r0, r8 ldrb r0, [r0] cmp r1, r0 blt _0803F6AE _0803F6FE: cmp r6, 0x4 beq _0803F762 ldr r7, =gBattleMons 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 _0803F762 ldr r1, =gUnknown_020242BC lsls r0, r3, 3 subs r0, r3 lsls r0, 2 adds r0, r1 ldrb r1, [r0, 0x18] lsrs r1, 4 ldr r2, =gBitTable lsls r0, r6, 2 adds r0, r2 ldr r0, [r0] ands r1, r0 cmp r1, 0 bne _0803F762 ldr r4, =gUnknown_02024064 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 _0803F762: add sp, 0x4 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_803F67C thumb_func_start sub_803F790 sub_803F790: @ 803F790 push {r4,r5,lr} ldr r0, =gBattleTypeFlags ldr r0, [r0] movs r1, 0x2 ands r0, r1 cmp r0, 0 beq _0803F7D0 movs r2, 0 ldr r4, =gUnknown_0202406C ldrb r0, [r4] cmp r2, r0 bge _0803F7EE ldr r3, =gUnknown_02024068 ldr r5, =gBitTable _0803F7AC: 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 _0803F7AC b _0803F7EE .pool _0803F7D0: movs r2, 0 ldr r4, =gUnknown_0202406C ldrb r0, [r4] cmp r2, r0 bge _0803F7EE ldr r3, =gUnknown_02024068 ldr r5, =gBitTable _0803F7DE: ldr r0, [r3] ldm r5!, {r1} orrs r0, r1 str r0, [r3] adds r2, 0x1 ldrb r0, [r4] cmp r2, r0 blt _0803F7DE _0803F7EE: pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_803F790 thumb_func_start dp01_battle_side_mark_buffer_for_execution dp01_battle_side_mark_buffer_for_execution: @ 803F800 push {lr} lsls r0, 24 lsrs r3, r0, 24 ldr r0, =gBattleTypeFlags ldr r0, [r0] movs r1, 0x2 ands r0, r1 cmp r0, 0 beq _0803F834 ldr r2, =gUnknown_02024068 ldr r1, =gBitTable lsls r0, r3, 2 adds r0, r1 ldr r1, [r0] lsls r1, 28 ldr r0, [r2] orrs r0, r1 str r0, [r2] b _0803F844 .pool _0803F834: ldr r2, =gUnknown_02024068 ldr r1, =gBitTable lsls r0, r3, 2 adds r0, r1 ldr r1, [r2] ldr r0, [r0] orrs r1, r0 str r1, [r2] _0803F844: pop {r0} bx r0 .pool thumb_func_end dp01_battle_side_mark_buffer_for_execution thumb_func_start sub_803F850 sub_803F850: @ 803F850 push {r4-r7,lr} lsls r0, 24 lsrs r7, r0, 24 movs r4, 0 ldr r5, =gUnknown_02024068 ldr r1, =gBitTable lsls r0, r7, 2 adds r6, r0, r1 b _0803F87A .pool _0803F86C: lsls r0, r4, 2 ldr r1, [r6] lsls r1, r0 ldr r0, [r5] orrs r0, r1 str r0, [r5] adds r4, 0x1 _0803F87A: bl sub_8009FCC lsls r0, 24 lsrs r0, 24 cmp r4, r0 blt _0803F86C ldr r2, =gUnknown_02024068 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 .pool thumb_func_end sub_803F850 thumb_func_start b_cancel_multi_turn_move_maybe b_cancel_multi_turn_move_maybe: @ 803F8A0 lsls r0, 24 lsrs r0, 24 ldr r1, =gBattleMons movs r2, 0x58 adds r3, r0, 0 muls r3, r2 adds r1, 0x50 adds r3, r1 ldr r1, [r3] ldr r2, =0xffffefff ands r1, r2 ldr r2, =0xfffff3ff ands r1, r2 movs r2, 0x71 negs r2, r2 ands r1, r2 ldr r2, =0xfffffcff ands r1, r2 str r1, [r3] ldr r1, =gUnknown_020242AC lsls r2, r0, 2 adds r2, r1 ldr r1, [r2] ldr r3, =0xfffbff3f ands r1, r3 str r1, [r2] ldr r2, =gUnknown_020242BC 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 .pool thumb_func_end b_cancel_multi_turn_move_maybe thumb_func_start sub_803F90C sub_803F90C: @ 803F90C push {lr} lsls r0, 24 ldr r1, =gUnknown_0202433C lsrs r0, 20 adds r1, r0, r1 ldrb r0, [r1] lsrs r0, 7 cmp r0, 0 bne _0803F952 ldrb r2, [r1, 0x1] lsls r0, r2, 30 cmp r0, 0 blt _0803F952 lsls r0, r2, 26 cmp r0, 0 blt _0803F952 lsls r0, r2, 25 cmp r0, 0 blt _0803F952 lsrs r0, r2, 7 cmp r0, 0 bne _0803F952 ldrb r1, [r1, 0x2] lsls r0, r1, 31 cmp r0, 0 bne _0803F952 lsls r0, r1, 30 cmp r0, 0 blt _0803F952 lsls r0, r1, 29 cmp r0, 0 blt _0803F952 lsls r0, r2, 31 cmp r0, 0 beq _0803F95C _0803F952: movs r0, 0x1 b _0803F95E .pool _0803F95C: movs r0, 0 _0803F95E: pop {r1} bx r1 thumb_func_end sub_803F90C thumb_func_start b_std_message b_std_message: @ 803F964 push {r4,lr} adds r2, r0, 0 lsls r2, 16 lsrs r2, 16 ldr r4, =gUnknown_02024064 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 .pool thumb_func_end b_std_message thumb_func_start sub_803F988 sub_803F988: @ 803F988 push {r4-r6,lr} movs r3, 0 ldr r0, =gUnknown_020243FE strb r3, [r0] strb r3, [r0, 0x1] movs r1, 0 ldr r0, =gUnknown_0202406C ldrb r2, [r0] adds r6, r0, 0 cmp r1, r2 bge _0803F9B6 ldr r5, =gBitTable adds r4, r2, 0 ldr r2, =gUnknown_0202406E _0803F9A4: 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 _0803F9A4 _0803F9B6: movs r1, 0x1 adds r2, r6, 0 ldrb r0, [r2] cmp r1, r0 bge _0803F9D6 ldr r5, =gUnknown_020243FE movs r4, 0x2 _0803F9C4: 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 _0803F9C4 _0803F9D6: pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_803F988 thumb_func_start sub_803F9EC sub_803F9EC: @ 803F9EC 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 _0803FA50 movs r0, 0x2 ands r0, r5 lsls r0, 24 lsrs r0, 25 mov r12, r0 ldr r1, =gUnknown_020243FE adds r0, r1 strb r4, [r0] adds r5, r4, 0 ldr r0, =gUnknown_0202406C ldrb r2, [r0] mov r8, r1 cmp r4, r2 bge _0803FA4A ldr r0, =gUnknown_02024210 ldrb r7, [r0] ldr r1, =gBitTable adds r6, r2, 0 ldr r3, =gUnknown_0202406E adds r2, r1, 0 _0803FA2E: ldr r0, [r2] ands r0, r7 cmp r0, 0 bne _0803FA40 ldrh r0, [r3] lsls r0, 2 adds r0, r1 ldr r0, [r0] orrs r4, r0 _0803FA40: adds r3, 0x4 adds r2, 0x8 adds r5, 0x2 cmp r5, r6 blt _0803FA2E _0803FA4A: mov r0, r12 add r0, r8 strb r4, [r0] _0803FA50: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_803F9EC thumb_func_start sub_803FA70 sub_803FA70: @ 803FA70 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 _0803FA8C adds r0, r4, 0 bl sub_803F9EC b _0803FAC2 _0803FA8C: movs r3, 0x1 ldr r5, =gUnknown_0202406C ldrb r0, [r5] cmp r3, r0 bge _0803FAC2 ldr r0, =gUnknown_020243FE mov r12, r0 movs r7, 0x2 ldr r6, =gBitTable ldr r1, =gUnknown_0202406E lsls r0, r4, 1 adds r4, r0, r1 _0803FAA4: 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 _0803FAA4 _0803FAC2: pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_803FA70 thumb_func_start b_movescr_stack_push b_movescr_stack_push: @ 803FAD8 push {r4,lr} ldr r1, =gUnknown_020244A8 ldr r1, [r1] ldr r3, [r1, 0x8] adds r4, r3, 0 adds r4, 0x20 ldrb r1, [r4] adds r2, r1, 0x1 strb r2, [r4] lsls r1, 24 lsrs r1, 22 adds r3, r1 str r0, [r3] pop {r4} pop {r0} bx r0 .pool thumb_func_end b_movescr_stack_push thumb_func_start b_movescr_stack_push_cursor b_movescr_stack_push_cursor: @ 803FAFC ldr r0, =gUnknown_020244A8 ldr r0, [r0] ldr r2, [r0, 0x8] adds r3, r2, 0 adds r3, 0x20 ldrb r0, [r3] adds r1, r0, 0x1 strb r1, [r3] lsls r0, 24 lsrs r0, 22 adds r2, r0 ldr r0, =gUnknown_02024214 ldr r0, [r0] str r0, [r2] bx lr .pool thumb_func_end b_movescr_stack_push_cursor thumb_func_start b_movescr_stack_pop_cursor b_movescr_stack_pop_cursor: @ 803FB24 ldr r3, =gUnknown_02024214 ldr r0, =gUnknown_020244A8 ldr r0, [r0] ldr r1, [r0, 0x8] adds r2, r1, 0 adds r2, 0x20 ldrb r0, [r2] subs r0, 0x1 strb r0, [r2] lsls r0, 24 lsrs r0, 22 adds r1, r0 ldr r0, [r1] str r0, [r3] bx lr .pool thumb_func_end b_movescr_stack_pop_cursor thumb_func_start sub_803FB4C sub_803FB4C: @ 803FB4C push {r4-r7,lr} mov r7, r8 push {r7} movs r6, 0 ldr r2, =gBattleMons ldr r1, =gUnknown_02023864 ldr r3, =gUnknown_02024064 ldrb r4, [r3] lsls r0, r4, 9 adds r1, 0x2 adds r0, r1 ldrb r0, [r0] lsls r0, 1 movs r1, 0x58 muls r1, r4 adds r0, r1 adds r2, 0xC adds r0, r2 ldrh r5, [r0] ldr r1, =gUnknown_0202449C lsls r0, r4, 1 adds r0, 0xC8 ldr r1, [r1] adds r1, r0 mov r8, r1 ldr r1, =gUnknown_020242BC lsls r0, r4, 3 subs r0, r4 lsls r0, 2 adds r0, r1 ldrh r0, [r0, 0x4] adds r7, r3, 0 adds r3, r1, 0 cmp r0, r5 bne _0803FC06 cmp r5, 0 beq _0803FC06 ldr r0, =gUnknown_02024474 strb r4, [r0, 0x17] ldr r0, =gUnknown_020241EA strh r5, [r0] ldr r0, =gBattleTypeFlags ldr r0, [r0] movs r1, 0x80 lsls r1, 10 ands r0, r1 cmp r0, 0 beq _0803FBF8 ldr r1, =gUnknown_02024230 ldrb r0, [r7] lsls r0, 2 adds r0, r1 ldr r1, =gUnknown_082DAE2A str r1, [r0] ldr r0, =gUnknown_0202433C ldrb r1, [r7] lsls r1, 4 adds r1, r0 ldrb r0, [r1, 0x2] movs r2, 0x10 orrs r0, r2 strb r0, [r1, 0x2] b _0803FC06 .pool _0803FBF8: ldr r0, =gUnknown_02024220 ldrb r1, [r7] lsls r1, 2 adds r1, r0 ldr r0, =gUnknown_082DAE1F str r0, [r1] movs r6, 0x1 _0803FC06: ldr r1, =gUnknown_02024248 ldrb r2, [r7] lsls r0, r2, 1 adds r0, r1 ldrh r0, [r0] cmp r5, r0 bne _0803FC90 cmp r5, 0xA5 beq _0803FC90 ldr r1, =gBattleMons movs r0, 0x58 muls r0, r2 adds r1, 0x50 adds r0, r1 ldr r0, [r0] cmp r0, 0 bge _0803FC90 adds r0, r2, 0 bl b_cancel_multi_turn_move_maybe ldr r0, =gBattleTypeFlags ldr r0, [r0] movs r1, 0x80 lsls r1, 10 ands r0, r1 cmp r0, 0 beq _0803FC7C ldr r1, =gUnknown_02024230 ldrb r0, [r7] lsls r0, 2 adds r0, r1 ldr r1, =gUnknown_082DB098 str r1, [r0] ldr r0, =gUnknown_0202433C ldrb r1, [r7] lsls r1, 4 adds r1, r0 ldrb r0, [r1, 0x2] movs r2, 0x10 orrs r0, r2 strb r0, [r1, 0x2] b _0803FC8E .pool _0803FC7C: ldr r1, =gUnknown_02024220 ldrb r0, [r7] lsls r0, 2 adds r0, r1 ldr r1, =gUnknown_082DB089 str r1, [r0] adds r0, r6, 0x1 lsls r0, 24 lsrs r6, r0, 24 _0803FC8E: ldr r3, =gUnknown_020242BC _0803FC90: ldrb r0, [r7] lsls r1, r0, 3 subs r1, r0 lsls r1, 2 adds r1, r3 ldrb r0, [r1, 0x13] lsls r0, 28 cmp r0, 0 beq _0803FD1A ldr r0, =gBattleMoves lsls r1, r5, 1 adds r1, r5 lsls r1, 2 adds r1, r0 ldrb r0, [r1, 0x1] cmp r0, 0 bne _0803FD1A ldr r0, =gUnknown_020241EA strh r5, [r0] ldr r0, =gBattleTypeFlags ldr r0, [r0] movs r1, 0x80 lsls r1, 10 ands r0, r1 cmp r0, 0 beq _0803FD08 ldr r1, =gUnknown_02024230 ldrb r0, [r7] lsls r0, 2 adds r0, r1 ldr r1, =gUnknown_082DB0AF str r1, [r0] ldr r0, =gUnknown_0202433C ldrb r1, [r7] lsls r1, 4 adds r1, r0 ldrb r0, [r1, 0x2] movs r2, 0x10 orrs r0, r2 strb r0, [r1, 0x2] b _0803FD1A .pool _0803FD08: ldr r1, =gUnknown_02024220 ldrb r0, [r7] lsls r0, 2 adds r0, r1 ldr r1, =gUnknown_082DB0A0 str r1, [r0] adds r0, r6, 0x1 lsls r0, 24 lsrs r6, r0, 24 _0803FD1A: ldr r4, =gUnknown_02024064 ldrb r0, [r4] adds r1, r5, 0 bl sub_8040130 lsls r0, 24 cmp r0, 0 beq _0803FD8E ldr r0, =gUnknown_020241EA strh r5, [r0] ldr r0, =gBattleTypeFlags ldr r0, [r0] movs r1, 0x80 lsls r1, 10 ands r0, r1 cmp r0, 0 beq _0803FD7C ldr r1, =gUnknown_02024230 ldrb r0, [r4] lsls r0, 2 adds r0, r1 ldr r1, =gUnknown_082DB185 str r1, [r0] ldr r0, =gUnknown_0202433C ldrb r1, [r4] lsls r1, 4 adds r1, r0 ldrb r0, [r1, 0x2] movs r2, 0x10 orrs r0, r2 strb r0, [r1, 0x2] b _0803FD8E .pool _0803FD7C: ldr r1, =gUnknown_02024220 ldrb r0, [r4] lsls r0, 2 adds r0, r1 ldr r1, =gUnknown_082DB181 str r1, [r0] adds r0, r6, 0x1 lsls r0, 24 lsrs r6, r0, 24 _0803FD8E: ldr r1, =gBattleMons ldr r0, =gUnknown_02024064 ldrb r2, [r0] movs r0, 0x58 muls r0, r2 adds r1, r0, r1 ldrh r0, [r1, 0x2E] cmp r0, 0xAF bne _0803FDC4 ldr r1, =gUnknown_02024404 lsls r0, r2, 3 subs r0, r2 lsls r0, 2 adds r0, r1 ldrb r4, [r0, 0x7] b _0803FDCE .pool _0803FDC4: ldrh r0, [r1, 0x2E] bl itemid_get_x12 lsls r0, 24 lsrs r4, r0, 24 _0803FDCE: ldr r2, =gUnknown_0202420F ldr r1, =gUnknown_02024064 ldrb r0, [r1] strb r0, [r2] ldr r0, =gBattleMons mov r12, r0 adds r7, r1, 0 cmp r4, 0x1D bne _0803FE58 mov r0, r8 ldrh r1, [r0] adds r2, r1, 0 cmp r2, 0 beq _0803FE58 ldr r0, =0x0000ffff cmp r2, r0 beq _0803FE58 cmp r2, r5 beq _0803FE58 ldr r0, =gUnknown_020241EA strh r1, [r0] ldr r2, =gUnknown_02024208 ldrb r1, [r7] movs r0, 0x58 muls r0, r1 add r0, r12 ldrh r0, [r0, 0x2E] strh r0, [r2] ldr r0, =gBattleTypeFlags ldr r1, [r0] movs r0, 0x80 lsls r0, 10 ands r1, r0 ldrb r2, [r7] cmp r1, 0 beq _0803FE48 ldr r0, =gUnknown_0202433C lsls r1, r2, 4 adds r1, r0 ldrb r0, [r1, 0x2] movs r2, 0x10 orrs r0, r2 strb r0, [r1, 0x2] b _0803FE58 .pool _0803FE48: ldr r1, =gUnknown_02024220 lsls r0, r2, 2 adds r0, r1 ldr r1, =gUnknown_082DB812 str r1, [r0] adds r0, r6, 0x1 lsls r0, 24 lsrs r6, r0, 24 _0803FE58: ldr r0, =gUnknown_02023864 ldrb r3, [r7] lsls r1, r3, 9 adds r0, 0x2 adds r1, r0 movs r0, 0x58 muls r0, r3 ldrb r1, [r1] adds r0, r1 mov r1, r12 adds r1, 0x24 adds r0, r1 ldrb r0, [r0] cmp r0, 0 bne _0803FEB8 ldr r0, =gBattleTypeFlags ldr r0, [r0] movs r1, 0x80 lsls r1, 10 ands r0, r1 cmp r0, 0 beq _0803FEA8 ldr r0, =gUnknown_0202433C lsls r1, r3, 4 adds r1, r0 ldrb r0, [r1, 0x2] movs r2, 0x10 orrs r0, r2 strb r0, [r1, 0x2] b _0803FEB8 .pool _0803FEA8: ldr r1, =gUnknown_02024220 lsls r0, r3, 2 adds r0, r1 ldr r1, =gUnknown_082DB076 str r1, [r0] adds r0, r6, 0x1 lsls r0, 24 lsrs r6, r0, 24 _0803FEB8: adds r0, r6, 0 pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 .pool thumb_func_end sub_803FB4C thumb_func_start sub_803FECC sub_803FECC: @ 803FECC 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 ldr r1, =gUnknown_0202449C lsls r0, r7, 1 adds r0, 0xC8 ldr r1, [r1] adds r1, r0 str r1, [sp, 0x4] ldr r1, =gBattleMons movs r0, 0x58 muls r0, r7 adds r1, r0, r1 ldrh r0, [r1, 0x2E] cmp r0, 0xAF bne _0803FF1C ldr r2, =gUnknown_02024404 lsls r1, r7, 3 subs r0, r1, r7 lsls r0, 2 adds r0, r2 ldrb r0, [r0, 0x7] str r0, [sp] b _0803FF2E .pool _0803FF1C: 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] _0803FF2E: ldr r0, =gUnknown_0202420F strb r7, [r0] movs r0, 0 mov r9, r0 lsls r2, r7, 1 str r2, [sp, 0xC] ldr r5, =gUnknown_020242BC mov r12, r5 ldr r0, =gBattleMons movs r2, 0x58 adds r6, r7, 0 muls r6, r2 str r6, [sp, 0x8] ldr r2, =gUnknown_02024090 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, =gBitTable _0803FF5A: ldrh r0, [r5] cmp r0, 0 bne _0803FF70 movs r0, 0x1 ands r0, r3 cmp r0, 0 beq _0803FF70 ldr r0, [r6] orrs r4, r0 lsls r0, r4, 24 lsrs r4, r0, 24 _0803FF70: ldr r0, [sp, 0x8] add r0, r9 mov r1, r10 adds r1, 0x24 adds r0, r1 ldrb r0, [r0] cmp r0, 0 bne _0803FF90 movs r0, 0x2 ands r0, r3 cmp r0, 0 beq _0803FF90 ldr r0, [r6] orrs r4, r0 lsls r0, r4, 24 lsrs r4, r0, 24 _0803FF90: mov r1, r8 add r1, r12 ldrh r0, [r5] ldrh r1, [r1, 0x4] cmp r0, r1 bne _0803FFAC movs r0, 0x4 ands r0, r3 cmp r0, 0 beq _0803FFAC ldr r0, [r6] orrs r4, r0 lsls r0, r4, 24 lsrs r4, r0, 24 _0803FFAC: movs r0, 0x58 adds r2, r7, 0 muls r2, r0 ldr r1, [sp, 0x10] adds r0, r1, r2 ldr r1, =gUnknown_02024090 adds r0, r1 mov r12, r0 ldr r1, =gUnknown_02024248 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 _0803FFEE movs r0, 0x8 ands r0, r3 cmp r0, 0 beq _0803FFEE mov r0, r10 adds r0, 0x50 adds r0, r2, r0 ldr r0, [r0] cmp r0, 0 bge _0803FFEE ldr r0, [r6] orrs r4, r0 lsls r0, r4, 24 lsrs r4, r0, 24 _0803FFEE: ldr r0, =gUnknown_020242BC add r0, r8 ldrb r0, [r0, 0x13] lsls r0, 28 cmp r0, 0 beq _0804001C movs r0, 0x10 ands r0, r3 cmp r0, 0 beq _0804001C ldr r2, =gBattleMoves ldrh r1, [r5] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r0, [r0, 0x1] cmp r0, 0 bne _0804001C ldr r0, [r6] orrs r4, r0 lsls r0, r4, 24 lsrs r4, r0, 24 _0804001C: ldrh r1, [r5] adds r0, r7, 0 str r3, [sp, 0x14] bl sub_8040130 lsls r0, 24 ldr r3, [sp, 0x14] cmp r0, 0 beq _0804003E movs r0, 0x20 ands r0, r3 cmp r0, 0 beq _0804003E ldr r0, [r6] orrs r4, r0 lsls r0, r4, 24 lsrs r4, r0, 24 _0804003E: ldr r1, =gUnknown_020242BC mov r0, r8 adds r2, r0, r1 ldrb r0, [r2, 0xE] lsls r0, 28 mov r12, r1 cmp r0, 0 beq _0804005E ldrh r0, [r2, 0x6] ldrh r1, [r5] cmp r0, r1 beq _0804005E ldr r0, [r6] orrs r4, r0 lsls r0, r4, 24 lsrs r4, r0, 24 _0804005E: ldr r2, [sp] cmp r2, 0x1D bne _08040080 ldr r0, [sp, 0x4] ldrh r1, [r0] cmp r1, 0 beq _08040080 ldr r0, =0x0000ffff cmp r1, r0 beq _08040080 ldrh r2, [r5] cmp r1, r2 beq _08040080 ldr r0, [r6] orrs r4, r0 lsls r0, r4, 24 lsrs r4, r0, 24 _08040080: 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 _08040096 b _0803FF5A _08040096: 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 .pool thumb_func_end sub_803FECC thumb_func_start sub_80400C8 sub_80400C8: @ 80400C8 push {r4,lr} ldr r4, =gUnknown_02024064 ldrb r0, [r4] movs r1, 0 movs r2, 0xFF bl sub_803FECC lsls r0, 24 lsrs r3, r0, 24 cmp r3, 0xF bne _0804010C ldr r0, =gUnknown_0202433C ldrb r1, [r4] lsls r1, 4 adds r1, r0 ldrb r0, [r1] movs r2, 0x4 orrs r0, r2 strb r0, [r1] ldr r1, =gUnknown_02024220 ldrb r0, [r4] lsls r0, 2 adds r0, r1 ldr r1, =gUnknown_082DB072 str r1, [r0] b _0804011E .pool _0804010C: ldr r0, =gUnknown_0202433C ldrb r1, [r4] lsls r1, 4 adds r1, r0 ldrb r2, [r1] movs r0, 0x5 negs r0, r0 ands r0, r2 strb r0, [r1] _0804011E: movs r0, 0 cmp r3, 0xF bne _08040126 movs r0, 0x1 _08040126: pop {r4} pop {r1} bx r1 .pool thumb_func_end sub_80400C8 thumb_func_start sub_8040130 sub_8040130: @ 8040130 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, =gUnknown_0202406C ldrb r0, [r0] cmp r6, r0 bge _080401B4 ldr r7, =gUnknown_02024090 mov r8, r7 _0804015A: 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 _080401AA ldr r1, =gUnknown_020242AC lsls r0, r4, 2 adds r0, r1 ldr r0, [r0] movs r1, 0x80 lsls r1, 6 ands r0, r1 cmp r0, 0 beq _080401AA movs r2, 0 movs r0, 0x58 adds r1, r4, 0 muls r1, r0 adds r0, r1, r7 ldrh r0, [r0] cmp r5, r0 beq _080401A0 mov r4, r8 adds r0, r1, r4 _08040192: adds r0, 0x2 adds r2, 0x1 cmp r2, 0x3 bgt _080401AA ldrh r1, [r0] cmp r5, r1 bne _08040192 _080401A0: cmp r2, 0x3 bgt _080401AA adds r0, r6, 0x1 lsls r0, 24 lsrs r6, r0, 24 _080401AA: adds r4, r3, 0 ldr r0, =gUnknown_0202406C ldrb r0, [r0] cmp r4, r0 blt _0804015A _080401B4: adds r0, r6, 0 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r1} bx r1 .pool thumb_func_end sub_8040130 thumb_func_start sub_80401D0 sub_80401D0: @ 80401D0 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} movs r0, 0 mov r9, r0 ldr r1, =gUnknown_0202420B mov r2, r9 strb r2, [r1] ldr r0, =gUnknown_0202406C ldrb r4, [r0] adds r6, r1, 0 mov r10, r0 ldr r7, =gEnemyMonIndex ldr r3, =gUnknown_0202449C mov r12, r3 cmp r9, r4 bcs _08040224 ldr r2, =gUnknown_02024210 ldrb r1, [r2] ldr r5, =gBitTable ldr r0, [r5] ands r1, r0 cmp r1, 0 beq _08040224 adds r3, r6, 0 _08040206: ldrb r0, [r3] adds r0, 0x1 strb r0, [r3] lsls r0, 24 lsrs r0, 24 cmp r0, r4 bcs _08040224 ldrb r0, [r2] ldrb r1, [r6] lsls r1, 2 adds r1, r5 ldr r1, [r1] ands r0, r1 cmp r0, 0 bne _08040206 _08040224: movs r0, 0 strb r0, [r7] mov r0, r10 ldrb r4, [r0] cmp r4, 0 beq _0804025E ldr r2, =gUnknown_02024210 ldrb r1, [r2] ldr r5, =gBitTable ldr r0, [r5] ands r1, r0 cmp r1, 0 beq _0804025E adds r3, r7, 0 _08040240: ldrb r0, [r3] adds r0, 0x1 strb r0, [r3] lsls r0, 24 lsrs r0, 24 cmp r0, r4 bcs _0804025E ldrb r0, [r2] ldrb r1, [r7] lsls r1, 2 adds r1, r5 ldr r1, [r1] ands r0, r1 cmp r0, 0 bne _08040240 _0804025E: mov r1, r12 ldr r0, [r1] ldrb r0, [r0, 0x3] cmp r0, 0xA bls _0804026A b _080408F6 _0804026A: lsls r0, 2 ldr r1, =_08040290 adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _08040290: .4byte _080402BC .4byte _08040342 .4byte _08040408 .4byte _080404D4 .4byte _080405B0 .4byte _08040668 .4byte _0804071C .4byte _080407A0 .4byte _08040810 .4byte _08040868 .4byte _080408EC _080402BC: movs r5, 0 ldr r1, =gUnknown_0202406C mov r10, r1 ldrb r2, [r1] cmp r5, r2 bge _080402D6 ldr r2, =gUnknown_0202407E _080402CA: adds r0, r5, r2 strb r5, [r0] adds r5, 0x1 ldrb r3, [r1] cmp r5, r3 blt _080402CA _080402D6: movs r5, 0 b _08040324 .pool _080402E4: adds r4, r5, 0x1 adds r6, r4, 0 ldrb r1, [r1] cmp r6, r1 bge _08040322 ldr r7, =gUnknown_0202407E ldr r0, =gUnknown_0202406C mov r10, r0 lsls r1, r5, 24 mov r8, r1 _080402F8: 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 _08040318 lsls r1, r4, 24 lsrs r1, 24 mov r2, r8 lsrs r0, r2, 24 bl sub_803CEDC _08040318: adds r4, 0x1 ldr r0, =gUnknown_0202406C ldrb r0, [r0] cmp r4, r0 blt _080402F8 _08040322: adds r5, r6, 0 _08040324: mov r1, r10 ldrb r0, [r1] subs r0, 0x1 cmp r5, r0 blt _080402E4 ldr r2, =gUnknown_0202449C ldr r1, [r2] ldrb r0, [r1, 0x3] adds r0, 0x1 strb r0, [r1, 0x3] ldr r0, [r2] adds r0, 0xDB movs r1, 0 strb r1, [r0] mov r12, r2 _08040342: mov r1, r12 ldr r0, [r1] adds r0, 0xDB ldrb r0, [r0] cmp r0, 0x1 bls _08040350 b _0804062C _08040350: ldr r3, =gUnknown_02024064 mov r8, r3 movs r7, 0 ldr r6, =gUnknown_0202420B ldr r5, =gUnknown_02022F58 _0804035A: ldr r0, [r1] adds r0, 0xDB ldrb r4, [r0] ldr r2, =gUnknown_02024294 lsls r1, r4, 1 adds r0, r1, r4 lsls r0, 2 adds r2, r0, r2 ldrb r0, [r2, 0x1] strb r0, [r6] mov r3, r8 strb r0, [r3] ldr r0, =gUnknown_0202428E adds r3, r1, r0 ldrh r1, [r3] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _080403BC ldrb r0, [r2] subs r0, 0x1 strb r0, [r2] movs r4, 0xFF lsls r0, 24 cmp r0, 0 bne _080403BC ldrh r0, [r3] ldr r2, =0x0000fffe adds r1, r2, 0 ands r0, r1 strh r0, [r3] ldr r0, =gUnknown_082DACFA 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 _080403BC: ldr r2, =gUnknown_0202449C ldr r1, [r2] adds r1, 0xDB ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] mov r12, r2 mov r3, r9 cmp r3, 0 beq _080403D2 b _080408FE _080403D2: mov r1, r12 ldr r0, [r1] adds r0, 0xDB ldrb r0, [r0] cmp r0, 0x1 bls _0804035A b _0804062C .pool _08040408: mov r1, r12 ldr r0, [r1] adds r0, 0xDB ldrb r0, [r0] cmp r0, 0x1 bls _08040416 b _08040570 _08040416: movs r0, 0x2 mov r10, r0 movs r2, 0 mov r8, r2 ldr r7, =gUnknown_0202420B ldr r5, =gUnknown_02022F58 _08040422: ldr r0, [r1] adds r0, 0xDB ldrb r4, [r0] ldr r2, =gUnknown_02024294 lsls r1, r4, 1 adds r0, r1, r4 lsls r0, 2 adds r2, r0, r2 ldrb r0, [r2, 0x3] strb r0, [r7] ldr r3, =gUnknown_02024064 strb r0, [r3] ldr r0, =gUnknown_0202428E adds r3, r1, r0 ldrh r1, [r3] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _0804048A ldrb r0, [r2, 0x2] subs r0, 0x1 strb r0, [r2, 0x2] movs r6, 0xFF lsls r0, 24 cmp r0, 0 bne _0804048A ldrh r0, [r3] ldr r2, =0x0000fffd adds r1, r2, 0 ands r0, r1 strh r0, [r3] ldr r0, =gUnknown_082DACFA bl b_call_bc_move_exec ldr r0, =gUnknown_02024332 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 _0804048A: ldr r2, =gUnknown_0202449C ldr r1, [r2] adds r1, 0xDB ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] mov r12, r2 mov r1, r9 cmp r1, 0 beq _080404A0 b _080408FE _080404A0: mov r1, r12 ldr r0, [r1] adds r0, 0xDB ldrb r0, [r0] cmp r0, 0x1 bls _08040422 b _08040570 .pool _080404D4: mov r1, r12 ldr r0, [r1] adds r0, 0xDB ldrb r0, [r0] cmp r0, 0x1 bhi _08040570 ldr r0, =gUnknown_02024064 mov r10, r0 movs r2, 0 mov r8, r2 ldr r7, =gUnknown_0202420B ldr r5, =gUnknown_02022F58 _080404EC: ldr r0, [r1] adds r0, 0xDB ldrb r4, [r0] ldr r1, =gUnknown_02024294 lsls r3, r4, 1 adds r0, r3, r4 lsls r0, 2 adds r1, r0, r1 ldrb r0, [r1, 0x5] strb r0, [r7] mov r2, r10 strb r0, [r2] ldrb r0, [r1, 0x4] cmp r0, 0 beq _0804054E subs r0, 0x1 strb r0, [r1, 0x4] movs r6, 0xFF lsls r0, 24 cmp r0, 0 bne _0804054E ldr r2, =gUnknown_0202428E adds r2, r3, r2 ldrh r0, [r2] ldr r3, =0x0000feff adds r1, r3, 0 ands r0, r1 strh r0, [r2] ldr r0, =gUnknown_082DACFA bl b_call_bc_move_exec ldr r0, =gUnknown_02024332 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 _0804054E: ldr r2, =gUnknown_0202449C ldr r1, [r2] adds r1, 0xDB ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] mov r12, r2 mov r1, r9 cmp r1, 0 beq _08040564 b _080408FE _08040564: mov r1, r12 ldr r0, [r1] adds r0, 0xDB ldrb r0, [r0] cmp r0, 0x1 bls _080404EC _08040570: mov r2, r9 cmp r2, 0 beq _08040578 b _080408FE _08040578: mov r3, r12 ldr r0, [r3] ldrb r1, [r0, 0x3] adds r1, 0x1 strb r1, [r0, 0x3] ldr r0, [r3] adds r0, 0xDB strb r2, [r0] b _080408F6 .pool _080405B0: mov r1, r12 ldr r0, [r1] adds r0, 0xDB ldrb r0, [r0] cmp r0, 0x1 bhi _0804062C ldr r6, =gUnknown_02024064 ldr r5, =gUnknown_0202420B _080405C0: ldr r0, [r1] adds r0, 0xDB ldrb r4, [r0] ldr r2, =gUnknown_02024294 lsls r1, r4, 1 adds r0, r1, r4 lsls r0, 2 adds r2, r0, r2 ldrb r0, [r2, 0x7] strb r0, [r5] strb r0, [r6] ldr r0, =gUnknown_0202428E adds r3, r1, r0 ldrh r1, [r3] movs r0, 0x20 ands r0, r1 cmp r0, 0 beq _0804060A ldrb r0, [r2, 0x6] subs r0, 0x1 strb r0, [r2, 0x6] lsls r0, 24 cmp r0, 0 bne _0804060A ldrh r0, [r3] ldr r2, =0x0000ffdf adds r1, r2, 0 ands r0, r1 strh r0, [r3] ldr r0, =gUnknown_082DAD0B bl b_call_bc_move_exec mov r0, r9 adds r0, 0x1 lsls r0, 24 lsrs r0, 24 mov r9, r0 _0804060A: ldr r2, =gUnknown_0202449C ldr r1, [r2] adds r1, 0xDB ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] mov r12, r2 mov r3, r9 cmp r3, 0 beq _08040620 b _080408FE _08040620: mov r1, r12 ldr r0, [r1] adds r0, 0xDB ldrb r0, [r0] cmp r0, 0x1 bls _080405C0 _0804062C: mov r0, r9 cmp r0, 0 beq _08040634 b _080408FE _08040634: mov r1, r12 ldr r0, [r1] ldrb r1, [r0, 0x3] adds r1, 0x1 strb r1, [r0, 0x3] mov r2, r12 ldr r0, [r2] adds r0, 0xDB mov r3, r9 strb r3, [r0] b _080408F6 .pool _08040668: mov r2, r12 ldr r0, [r2] adds r0, 0xDB ldr r1, =gUnknown_0202406C ldrb r0, [r0] ldrb r1, [r1] cmp r0, r1 bcs _080406E8 ldr r4, =gUnknown_02024064 ldr r5, =gUnknown_0202407E _0804067C: ldr r0, [r2] adds r0, 0xDB ldrb r0, [r0] adds r0, r5 ldrb r0, [r0] strb r0, [r4] ldr r0, =gUnknown_020243D0 adds r0, 0x20 ldrb r2, [r4] adds r1, r0, r2 ldrb r0, [r1] cmp r0, 0 beq _080406C4 subs r0, 0x1 strb r0, [r1] lsls r0, 24 cmp r0, 0 bne _080406C4 ldr r1, =gBattleMons ldrb r2, [r4] movs r0, 0x58 muls r0, r2 adds r0, r1 ldrh r0, [r0, 0x28] cmp r0, 0 beq _080406C4 ldr r0, =gEnemyMonIndex strb r2, [r0] ldr r0, =gUnknown_082DB0B7 bl b_call_bc_move_exec mov r0, r9 adds r0, 0x1 lsls r0, 24 lsrs r0, 24 mov r9, r0 _080406C4: ldr r2, =gUnknown_0202449C ldr r1, [r2] adds r1, 0xDB ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] mov r12, r2 mov r3, r9 cmp r3, 0 beq _080406DA b _080408FE _080406DA: ldr r0, [r2] adds r0, 0xDB ldr r1, =gUnknown_0202406C ldrb r0, [r0] ldrb r1, [r1] cmp r0, r1 bcc _0804067C _080406E8: mov r0, r9 cmp r0, 0 beq _080406F0 b _080408FE _080406F0: mov r2, r12 ldr r1, [r2] ldrb r0, [r1, 0x3] adds r0, 0x1 strb r0, [r1, 0x3] b _080408F6 .pool _0804071C: ldr r3, =gBattleWeather ldrh r2, [r3] movs r0, 0x7 ands r0, r2 cmp r0, 0 bne _0804072A b _080408C8 _0804072A: movs r0, 0x4 ands r0, r2 cmp r0, 0 bne _08040776 ldr r1, =gUnknown_020243D0 adds r1, 0x28 ldrb r0, [r1] subs r0, 0x1 strb r0, [r1] lsls r0, 24 cmp r0, 0 bne _08040768 ldr r0, =0x0000fffe ands r0, r2 ldr r1, =0x0000fffd ands r0, r1 strh r0, [r3] ldr r1, =gUnknown_02024332 movs r0, 0x2 strb r0, [r1, 0x5] b _08040794 .pool _08040768: movs r0, 0x2 ands r0, r2 lsls r0, 16 lsrs r1, r0, 16 cmp r1, 0 bne _08040782 b _08040790 _08040776: movs r0, 0x2 ands r0, r2 lsls r0, 16 lsrs r1, r0, 16 cmp r1, 0 beq _08040790 _08040782: ldr r1, =gUnknown_02024332 movs r0, 0x1 strb r0, [r1, 0x5] b _08040794 .pool _08040790: ldr r0, =gUnknown_02024332 strb r1, [r0, 0x5] _08040794: ldr r0, =gUnknown_082DAC2C b _080408BA .pool _080407A0: ldr r3, =gBattleWeather ldrh r2, [r3] movs r0, 0x18 ands r0, r2 cmp r0, 0 bne _080407AE b _080408C8 _080407AE: movs r0, 0x10 ands r0, r2 cmp r0, 0 bne _080407E8 ldr r1, =gUnknown_020243D0 adds r1, 0x28 ldrb r0, [r1] subs r0, 0x1 strb r0, [r1] lsls r0, 24 cmp r0, 0 bne _080407E8 ldr r0, =0x0000fff7 ands r0, r2 strh r0, [r3] ldr r1, =gUnknown_02024214 ldr r0, =gUnknown_082DACC9 b _080407EC .pool _080407E8: ldr r1, =gUnknown_02024214 ldr r0, =gUnknown_082DAC47 _080407EC: str r0, [r1] adds r3, r1, 0 ldr r1, =gUnknown_02024474 movs r2, 0 movs r0, 0xC strb r0, [r1, 0x10] ldr r0, =gUnknown_02024332 strb r2, [r0, 0x5] b _080408B8 .pool _08040810: ldr r3, =gBattleWeather ldrh r2, [r3] movs r0, 0x60 ands r0, r2 cmp r0, 0 beq _080408C8 movs r0, 0x40 ands r0, r2 cmp r0, 0 bne _08040854 ldr r1, =gUnknown_020243D0 adds r1, 0x28 ldrb r0, [r1] subs r0, 0x1 strb r0, [r1] lsls r0, 24 cmp r0, 0 bne _08040854 ldr r0, =0x0000ffdf ands r0, r2 strh r0, [r3] ldr r1, =gUnknown_02024214 ldr r0, =gUnknown_082DACE0 b _08040858 .pool _08040854: ldr r1, =gUnknown_02024214 ldr r0, =gUnknown_082DACD2 _08040858: str r0, [r1] adds r3, r1, 0 b _080408B8 .pool _08040868: ldr r3, =gBattleWeather ldrh r2, [r3] movs r0, 0x80 ands r0, r2 cmp r0, 0 beq _080408C8 ldr r1, =gUnknown_020243D0 adds r1, 0x28 ldrb r0, [r1] subs r0, 0x1 strb r0, [r1] lsls r0, 24 cmp r0, 0 bne _080408A4 ldr r0, =0x0000ff7f ands r0, r2 strh r0, [r3] ldr r1, =gUnknown_02024214 ldr r0, =gUnknown_082DACC9 b _080408A8 .pool _080408A4: ldr r1, =gUnknown_02024214 ldr r0, =gUnknown_082DAC47 _080408A8: str r0, [r1] adds r3, r1, 0 ldr r1, =gUnknown_02024474 movs r0, 0xD strb r0, [r1, 0x10] ldr r1, =gUnknown_02024332 movs r0, 0x1 strb r0, [r1, 0x5] _080408B8: ldr r0, [r3] _080408BA: bl b_call_bc_move_exec mov r0, r9 adds r0, 0x1 lsls r0, 24 lsrs r0, 24 mov r9, r0 _080408C8: ldr r2, =gUnknown_0202449C ldr r1, [r2] ldrb r0, [r1, 0x3] adds r0, 0x1 strb r0, [r1, 0x3] mov r12, r2 b _080408F6 .pool _080408EC: mov r0, r9 adds r0, 0x1 lsls r0, 24 lsrs r0, 24 mov r9, r0 _080408F6: mov r3, r9 cmp r3, 0 bne _080408FE b _0804025E _080408FE: ldr r0, =gUnknown_03005D04 ldr r1, [r0] ldr r0, =sub_803B9BC 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 .pool thumb_func_end sub_80401D0 thumb_func_start sub_8040924 sub_8040924: @ 8040924 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, =gUnknown_02024280 ldr r0, [r2] ldr r1, =0x01000020 orrs r0, r1 str r0, [r2] ldr r5, =gUnknown_0202449C ldr r2, [r5] ldr r0, =gUnknown_0202406C ldrb r1, [r2, 0x1] adds r7, r5, 0 mov r8, r0 ldrb r3, [r0] cmp r1, r3 bcc _08040954 bl _08041338 _08040954: bl _0804132E .pool _08040968: ldr r3, =gUnknown_02024064 ldr r4, =gUnknown_0202420B ldr r1, =gUnknown_0202407E ldr r5, [r5] ldrb r0, [r5, 0x1] adds r0, r1 ldrb r0, [r0] strb r0, [r4] strb r0, [r3] ldr r0, =gUnknown_02024210 ldrb r1, [r0] ldr r2, =gBitTable ldrb r0, [r3] lsls r0, 2 adds r0, r2 ldr r0, [r0] ands r1, r0 adds r6, r3, 0 cmp r1, 0 beq _080409B0 ldrb r0, [r5, 0x1] adds r0, 0x1 strb r0, [r5, 0x1] bl _0804131C .pool _080409B0: ldrb r0, [r5] cmp r0, 0x13 bls _080409BA bl _08041312 _080409BA: lsls r0, 2 ldr r1, =_080409C8 adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _080409C8: .4byte _08040A18 .4byte _08040A78 .4byte _08040A96 .4byte _08040AC6 .4byte _08040B44 .4byte _08040B8C .4byte _08040C0C .4byte _08040C54 .4byte _08040CB8 .4byte _08040D00 .4byte _08040E60 .4byte _08040F7C .4byte _08041024 .4byte _080410E8 .4byte _0804119C .4byte _080411BC .4byte _08041208 .4byte _08041238 .4byte _08040AAE .4byte _08041304 _08040A18: ldr r1, =gUnknown_020242AC 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 bne _08040A30 bl _080412DE _08040A30: ldr r0, =gBattleMons movs r1, 0x58 muls r1, r3 adds r0, r1, r0 ldrh r2, [r0, 0x28] ldrh r5, [r0, 0x2C] cmp r2, r5 bne _08040A44 bl _080412DE _08040A44: cmp r2, 0 bne _08040A4C bl _080412DE _08040A4C: ldr r1, =gBattleMoveDamage ldrh r0, [r0, 0x2C] lsrs r0, 4 str r0, [r1] cmp r0, 0 bne _08040A5C movs r0, 0x1 str r0, [r1] _08040A5C: ldr r0, [r1] negs r0, r0 str r0, [r1] ldr r0, =gUnknown_082DB0EE bl _080412D0 .pool _08040A78: ldrb r1, [r6] movs r0, 0 str r0, [sp] movs r0, 0x1 movs r2, 0 movs r3, 0 bl ability_something lsls r0, 24 cmp r0, 0 bne _08040A92 bl _080412DE _08040A92: bl _080412D4 _08040A96: ldrb r1, [r6] movs r0, 0x1 movs r2, 0 bl berry_effects_maybe lsls r0, 24 cmp r0, 0 bne _08040AAA bl _080412DE _08040AAA: bl _080412D4 _08040AAE: ldrb r1, [r6] movs r0, 0x1 movs r2, 0x1 bl berry_effects_maybe lsls r0, 24 cmp r0, 0 bne _08040AC2 bl _080412DE _08040AC2: bl _080412D4 _08040AC6: ldr r0, =gUnknown_020242AC ldrb r2, [r6] lsls r1, r2, 2 adds r1, r0 ldr r1, [r1] movs r0, 0x4 ands r0, r1 cmp r0, 0 bne _08040ADC bl _080412DE _08040ADC: ldr r3, =gBattleMons 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 bne _08040AF4 bl _080412DE _08040AF4: adds r0, r2, 0 muls r0, r1 adds r0, r3 ldrh r0, [r0, 0x28] cmp r0, 0 bne _08040B04 bl _080412DE _08040B04: ldr r0, =gEnemyMonIndex strb r5, [r0] ldr r2, =gBattleMoveDamage ldrb r0, [r6] muls r0, r1 adds r0, r3 ldrh r0, [r0, 0x2C] lsrs r0, 3 str r0, [r2] cmp r0, 0 bne _08040B1E movs r0, 0x1 str r0, [r2] _08040B1E: ldr r1, =gUnknown_02024474 strb r5, [r1, 0x10] ldrb r0, [r4] strb r0, [r1, 0x11] ldr r0, =gUnknown_082DAD15 b _080412D0 .pool _08040B44: ldr r2, =gBattleMons 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 bne _08040B60 b _080412DE _08040B60: adds r1, r3, r2 ldrh r0, [r1, 0x28] cmp r0, 0 bne _08040B6A b _080412DE _08040B6A: ldr r2, =gBattleMoveDamage ldrh r0, [r1, 0x2C] lsrs r0, 3 str r0, [r2] cmp r0, 0 bne _08040B7A movs r0, 0x1 str r0, [r2] _08040B7A: ldr r0, =gUnknown_082DB23D b _080412D0 .pool _08040B8C: ldr r4, =gBattleMons 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 bne _08040BAA b _080412DE _08040BAA: adds r1, r2, r4 ldrh r0, [r1, 0x28] cmp r0, 0 bne _08040BB4 b _080412DE _08040BB4: ldr r5, =gBattleMoveDamage ldrh r0, [r1, 0x2C] lsrs r0, 4 str r0, [r5] cmp r0, 0 bne _08040BC4 movs r0, 0x1 str r0, [r5] _08040BC4: 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 _08040BE4 movs r7, 0x80 lsls r7, 1 adds r0, r1, r7 str r0, [r2] _08040BE4: 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, =gUnknown_082DB23D b _080412D0 .pool _08040C0C: ldr r2, =gBattleMons 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 bne _08040C28 b _080412DE _08040C28: adds r1, r3, r2 ldrh r0, [r1, 0x28] cmp r0, 0 bne _08040C32 b _080412DE _08040C32: ldr r2, =gBattleMoveDamage ldrh r0, [r1, 0x2C] lsrs r0, 3 str r0, [r2] cmp r0, 0 bne _08040C42 movs r0, 0x1 str r0, [r2] _08040C42: ldr r0, =gUnknown_082DB25F b _080412D0 .pool _08040C54: ldr r4, =gBattleMons ldrb r1, [r6] movs r0, 0x58 muls r1, r0 adds r0, r4, 0 adds r0, 0x50 adds r5, r1, r0 ldr r2, [r5] movs r0, 0x80 lsls r0, 20 ands r0, r2 cmp r0, 0 bne _08040C70 b _080412DE _08040C70: adds r3, r1, r4 ldrh r0, [r3, 0x28] cmp r0, 0 bne _08040C7A b _080412DE _08040C7A: adds r0, r4, 0 adds r0, 0x4C adds r0, r1, r0 ldr r0, [r0] movs r1, 0x7 ands r0, r1 cmp r0, 0 beq _08040CAC ldr r1, =gBattleMoveDamage ldrh r0, [r3, 0x2C] lsrs r0, 2 str r0, [r1] cmp r0, 0 bne _08040C9A movs r0, 0x1 str r0, [r1] _08040C9A: ldr r0, =gUnknown_082DB33F b _080412D0 .pool _08040CAC: ldr r0, =0xf7ffffff ands r2, r0 str r2, [r5] b _080412DE .pool _08040CB8: ldr r2, =gBattleMons 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 bne _08040CD6 b _080412DE _08040CD6: adds r1, r3, r2 ldrh r0, [r1, 0x28] cmp r0, 0 bne _08040CE0 b _080412DE _08040CE0: ldr r2, =gBattleMoveDamage ldrh r0, [r1, 0x2C] lsrs r0, 2 str r0, [r2] cmp r0, 0 bne _08040CF0 movs r0, 0x1 str r0, [r2] _08040CF0: ldr r0, =gUnknown_082DB350 b _080412D0 .pool _08040D00: ldr r3, =gBattleMons mov r8, r3 ldrb r0, [r6] movs r3, 0x58 adds r1, r0, 0 muls r1, r3 movs r5, 0x50 add r5, r8 mov r10, r5 adds r4, r1, r5 ldr r2, [r4] movs r5, 0xE0 lsls r5, 8 adds r0, r2, 0 ands r0, r5 cmp r0, 0 bne _08040D24 b _080412DE _08040D24: mov r7, r8 adds r0, r1, r7 ldrh r0, [r0, 0x28] cmp r0, 0 bne _08040D30 b _080412DE _08040D30: ldr r1, =0xffffe000 adds r0, r2, r1 str r0, [r4] ldrb r4, [r6] adds r0, r4, 0 muls r0, r3 add r0, r10 ldr r0, [r0] ands r0, r5 cmp r0, 0 beq _08040DC0 ldr r1, =gUnknown_02024474 ldr r0, =gUnknown_0202449C ldr r2, [r0] lsls r0, r4, 1 adds r0, r2 ldrb r0, [r0, 0x4] strb r0, [r1, 0x10] ldrb r0, [r6] lsls r0, 1 adds r0, r2 ldrb r0, [r0, 0x5] strb r0, [r1, 0x11] ldr r1, =gUnknown_02022F58 movs r0, 0xFD strb r0, [r1] movs r0, 0x2 strb r0, [r1, 0x1] ldrb r0, [r6] lsls r0, 1 adds r0, r2 ldrb r0, [r0, 0x4] strb r0, [r1, 0x2] ldrb r0, [r6] lsls r0, 1 adds r0, r2 ldrb r0, [r0, 0x5] strb r0, [r1, 0x3] movs r0, 0xFF strb r0, [r1, 0x4] ldr r1, =gUnknown_02024214 ldr r0, =gUnknown_082DB30E str r0, [r1] ldr r2, =gBattleMoveDamage ldrb r0, [r6] muls r0, r3 add r0, r8 ldrh r0, [r0, 0x2C] lsrs r0, 4 str r0, [r2] cmp r0, 0 bne _08040DEC movs r0, 0x1 str r0, [r2] b _08040DEC .pool _08040DC0: ldr r2, =gUnknown_02022F58 movs r0, 0xFD strb r0, [r2] movs r0, 0x2 strb r0, [r2, 0x1] ldrb r1, [r6] ldr r0, =gUnknown_0202449C ldr r3, [r0] lsls r1, 1 adds r1, r3 ldrb r0, [r1, 0x4] strb r0, [r2, 0x2] ldrb r0, [r6] lsls r0, 1 adds r0, r3 ldrb r0, [r0, 0x5] strb r0, [r2, 0x3] movs r0, 0xFF strb r0, [r2, 0x4] ldr r1, =gUnknown_02024214 ldr r0, =gUnknown_082DB320 str r0, [r1] _08040DEC: ldr r0, [r1] b _080412D0 .pool _08040E00: movs r0, 0x8 negs r0, r0 ands r3, r0 str r3, [r2] ldrb r0, [r6] mov r2, r8 muls r2, r0 mov r0, r10 adds r0, 0x50 adds r2, r0 ldr r0, [r2] ldr r1, =0xf7ffffff ands r0, r1 str r0, [r2] ldr r1, =gUnknown_02024332 movs r0, 0x1 strb r0, [r1, 0x5] ldr r0, =gUnknown_082DB234 bl b_call_bc_move_exec ldr r4, =gUnknown_02024064 ldrb r0, [r6] strb r0, [r4] ldrb r0, [r4] mov r3, r8 muls r3, r0 adds r0, r3, 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 _08040EC8 .pool _08040E60: ldr r2, =gBattleMons 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 _08040F6A movs r0, 0 strb r0, [r4] mov r5, r8 ldrb r0, [r5] cmp r0, 0 beq _08040EC8 mov r10, r7 adds r6, r4, 0 movs r1, 0x58 mov r8, r1 movs r3, 0x4C adds r3, r7 mov r9, r3 str r0, [sp, 0x4] movs r5, 0x7 mov r12, r5 _08040E9A: ldrb r4, [r6] mov r1, r8 muls r1, r4 mov r0, r9 adds r2, r1, r0 ldr r3, [r2] adds r0, r3, 0 mov r5, r12 ands r0, r5 cmp r0, 0 beq _08040EBA adds r0, r1, r7 adds r0, 0x20 ldrb r0, [r0] cmp r0, 0x2B bne _08040E00 _08040EBA: adds r0, r4, 0x1 strb r0, [r6] lsls r0, 24 lsrs r0, 24 ldr r1, [sp, 0x4] cmp r0, r1 bcc _08040E9A _08040EC8: ldr r2, =gUnknown_0202420B ldr r1, =gUnknown_0202406C ldrb r0, [r2] ldrb r1, [r1] cmp r0, r1 beq _08040EE8 movs r3, 0x2 mov r9, r3 b _08041318 .pool _08040EE8: ldr r5, =gUnknown_02024064 ldrb r0, [r5] strb r0, [r2] ldr r2, =gBattleMons 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_803F90C lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0 beq _08040F2C ldrb r0, [r5] bl b_cancel_multi_turn_move_maybe ldr r1, =gUnknown_02024332 movs r0, 0x1 strb r0, [r1, 0x5] b _08040F60 .pool _08040F2C: 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 _08040F54 ldr r0, =gUnknown_02024332 strb r4, [r0, 0x5] ldr r0, [r2] movs r1, 0x80 lsls r1, 5 orrs r0, r1 str r0, [r2] b _08040F60 .pool _08040F54: ldr r1, =gUnknown_02024332 movs r0, 0x1 strb r0, [r1, 0x5] adds r0, r3, 0 bl b_cancel_multi_turn_move_maybe _08040F60: ldr r0, =gUnknown_082DB2A6 bl b_call_bc_move_exec movs r5, 0x1 mov r9, r5 _08040F6A: mov r7, r9 cmp r7, 0x2 bne _08040F72 b _08041312 _08040F72: b _080412DE .pool _08040F7C: ldr r1, =gBattleMons 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 bne _08040F9A b _080412DE _08040F9A: ldr r3, =0xfffffc00 adds r0, r1, r3 str r0, [r2] ldrb r0, [r6] bl sub_803F90C lsls r0, 24 cmp r0, 0 beq _08040FBC ldrb r0, [r6] bl b_cancel_multi_turn_move_maybe b _080412DE .pool _08040FBC: ldrb r0, [r6] muls r0, r7 adds r2, r0, r5 ldr r1, [r2] adds r0, r1, 0 ands r0, r4 cmp r0, 0 beq _08040FCE b _080412DE _08040FCE: movs r0, 0x80 lsls r0, 5 ands r0, r1 cmp r0, 0 bne _08040FDA b _080412DE _08040FDA: ldr r0, =0xffffefff 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 beq _08040FF2 b _080412DE _08040FF2: ldr r1, =gUnknown_02024332 movs r0, 0x47 strb r0, [r1, 0x3] movs r0, 0x1 movs r1, 0 bl sub_8048760 ldrb r0, [r6] muls r0, r7 adds r0, r5 ldr r0, [r0] ands r0, r4 cmp r0, 0 bne _08041010 b _080412D4 _08041010: ldr r0, =gUnknown_082DB2AF bl b_call_bc_move_exec b _080412D4 .pool _08041024: ldr r0, =gUnknown_020242BC 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 bne _0804103C b _080412DE _0804103C: movs r4, 0 ldr r2, =gBattleMons 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 _0804107A mov r12, r7 mov r8, r2 adds r5, r6, 0 movs r3, 0x58 _0804105A: adds r4, 0x1 cmp r4, 0x3 bgt _0804107A 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 _0804105A _0804107A: cmp r4, 0x4 bne _080410AC 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 _080412DE .pool _080410AC: 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 beq _080410D4 b _080412DE _080410D4: ldrb r1, [r6] lsls r0, r1, 3 subs r0, r1 lsls r0, 2 adds r0, r7 strh r2, [r0, 0x4] ldr r0, =gUnknown_082DAE23 b _080412D0 .pool _080410E8: ldr r3, =gUnknown_020242BC 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 bne _080410FE b _080412DE _080410FE: ldr r7, =gBattleMons mov r8, r7 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 _0804113C 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 _080412DE .pool _0804113C: 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 _08041172 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 beq _08041172 b _080412DE _08041172: 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, =gUnknown_082DAE37 b _080412D0 .pool _0804119C: ldr r0, =gUnknown_020242AC ldrb r1, [r6] lsls r1, 2 adds r1, r0 ldr r2, [r1] movs r0, 0x18 ands r0, r2 cmp r0, 0 beq _080411B4 adds r0, r2, 0 subs r0, 0x8 str r0, [r1] _080411B4: ldr r1, [r7] b _080412E2 .pool _080411BC: ldr r2, =gUnknown_020242BC 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 _080411F6 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 _080411F6 ldr r0, =gUnknown_020242AC ldrb r2, [r6] lsls r2, 2 adds r2, r0 ldr r0, [r2] ldr r1, =0xfffffdff ands r0, r1 str r0, [r2] _080411F6: ldr r1, [r7] b _080412E2 .pool _08041208: ldr r2, =gUnknown_020242BC 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 _0804122E 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] _0804122E: ldr r1, [r7] b _080412E2 .pool _08041238: ldr r4, =gUnknown_020242AC 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 _080412DE ldr r5, =0xfffff800 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 _080412DE ldr r3, =gBattleMons 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 _080412DE adds r0, r1, r3 adds r0, 0x20 ldrb r0, [r0] cmp r0, 0x48 beq _080412DE cmp r0, 0xF beq _080412DE adds r0, r2, 0 bl sub_8050650 lsls r0, 24 cmp r0, 0 bne _080412DE 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, =gUnknown_0202420E ldrb r0, [r6] strb r0, [r1] ldr r0, =gUnknown_082DB378 _080412D0: bl b_call_bc_move_exec _080412D4: mov r0, r9 adds r0, 0x1 lsls r0, 24 lsrs r0, 24 mov r9, r0 _080412DE: ldr r0, =gUnknown_0202449C ldr r1, [r0] _080412E2: ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] b _08041312 .pool _08041304: ldr r1, [r7] movs r0, 0 strb r0, [r1] ldr r1, [r7] ldrb r0, [r1, 0x1] adds r0, 0x1 strb r0, [r1, 0x1] _08041312: mov r7, r9 cmp r7, 0 beq _0804131C _08041318: mov r0, r9 b _08041344 _0804131C: ldr r5, =gUnknown_0202449C ldr r2, [r5] ldr r0, =gUnknown_0202406C ldrb r1, [r2, 0x1] adds r7, r5, 0 mov r8, r0 ldrb r0, [r0] cmp r1, r0 bcs _08041338 _0804132E: ldrb r0, [r2] cmp r0, 0x13 bhi _08041338 bl _08040968 _08041338: ldr r0, =gUnknown_02024280 ldr r1, [r0] ldr r2, =0xfeffffdf ands r1, r2 str r1, [r0] movs r0, 0 _08041344: add sp, 0x8 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 .pool thumb_func_end sub_8040924 thumb_func_start sub_8041364 sub_8041364: @ 8041364 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} ldr r2, =gUnknown_02024280 ldr r0, [r2] ldr r1, =0x01000020 orrs r0, r1 str r0, [r2] ldr r1, =gUnknown_0202449C ldr r3, [r1] movs r4, 0xD0 lsls r4, 1 adds r0, r3, r4 ldrb r0, [r0] mov r10, r2 adds r6, r1, 0 cmp r0, 0x1 bne _0804138E b _08041548 _0804138E: cmp r0, 0x1 bgt _080413A4 cmp r0, 0 beq _080413AC b _08041708 .pool _080413A4: cmp r0, 0x2 bne _080413AA b _0804169A _080413AA: b _08041708 _080413AC: ldr r2, =0x000001a1 adds r0, r3, r2 ldr r1, =gUnknown_0202406C ldrb r0, [r0] mov r8, r1 ldrb r7, [r1] cmp r0, r7 bcc _080413BE b _08041532 _080413BE: ldr r4, =gUnknown_02024064 ldr r5, =gUnknown_02022F58 ldr r7, =gUnknown_020243D0 movs r0, 0x18 adds r0, r7 mov r12, r0 _080413CA: ldr r0, [r6] adds r3, r0, r2 ldrb r0, [r3] strb r0, [r4] ldr r0, =gUnknown_02024210 ldrb r1, [r0] ldr r2, =gBitTable ldrb r0, [r4] lsls r0, 2 adds r0, r2 ldr r0, [r0] ands r1, r0 cmp r1, 0 beq _0804140C ldrb r0, [r3] adds r0, 0x1 strb r0, [r3] b _08041520 .pool _0804140C: ldrb r0, [r3] adds r0, 0x1 strb r0, [r3] ldr r1, =gUnknown_020243D0 ldrb r0, [r4] adds r2, r0, r1 ldrb r0, [r2] mov r9, r1 cmp r0, 0 bne _08041422 b _08041520 _08041422: subs r0, 0x1 strb r0, [r2] lsls r0, 24 lsrs r3, r0, 24 cmp r3, 0 bne _08041520 ldr r1, =gBattleMons ldrb r2, [r4] movs r0, 0x58 muls r0, r2 adds r0, r1 ldrh r0, [r0, 0x28] cmp r0, 0 beq _08041520 lsls r0, r2, 1 add r0, r12 ldrh r0, [r0] cmp r0, 0xF8 bne _0804145C ldr r0, =gUnknown_02024332 strb r3, [r0, 0x5] b _08041462 .pool _0804145C: ldr r1, =gUnknown_02024332 movs r0, 0x1 strb r0, [r1, 0x5] _08041462: movs r0, 0xFD strb r0, [r5] movs r6, 0x2 movs r0, 0x2 strb r0, [r5, 0x1] ldrb r0, [r4] lsls r0, 1 add r0, r12 ldrh r0, [r0] strb r0, [r5, 0x2] ldrb r0, [r4] lsls r0, 1 add r0, r12 ldrh r0, [r0] lsrs r0, 8 strb r0, [r5, 0x3] movs r0, 0xFF strb r0, [r5, 0x4] ldr r5, =gEnemyMonIndex ldrb r0, [r4] strb r0, [r5] ldr r1, =gUnknown_0202420B adds r0, r7, 0x4 ldrb r2, [r4] adds r0, r2 ldrb r0, [r0] strb r0, [r1] ldr r2, =gBattleMoveDamage ldrb r0, [r4] lsls r0, 2 adds r1, r7, 0 adds r1, 0x8 adds r0, r1 ldr r0, [r0] str r0, [r2] ldr r2, =gUnknown_0202437C ldrb r1, [r5] lsls r0, r1, 2 adds r0, r1 lsls r0, 2 adds r2, 0x4 adds r0, r2 ldr r1, =0x0000ffff str r1, [r0] ldr r0, =gUnknown_082DAFE4 bl b_call_bc_move_exec ldrb r1, [r4] adds r0, r1, r7 ldrb r0, [r0] cmp r0, 0 beq _080414CC b _08041664 _080414CC: eors r1, r6 mov r3, r9 adds r0, r1, r3 ldrb r0, [r0] cmp r0, 0 beq _080414DA b _08041664 _080414DA: ldrb r0, [r5] bl battle_get_per_side_status ldr r2, =gUnknown_0202428E lsls r0, 24 lsrs r0, 24 movs r1, 0x1 ands r0, r1 lsls r0, 1 adds r0, r2 ldrh r1, [r0] ldr r4, =0x0000ffbf adds r2, r4, 0 ands r1, r2 strh r1, [r0] b _08041664 .pool _08041520: ldr r0, [r6] ldr r2, =0x000001a1 adds r0, r2 ldrb r0, [r0] mov r1, r8 ldrb r1, [r1] cmp r0, r1 bcs _08041532 b _080413CA _08041532: ldr r0, [r6] movs r2, 0xD0 lsls r2, 1 adds r0, r2 movs r1, 0x1 strb r1, [r0] ldr r0, [r6] ldr r3, =0x000001a1 adds r1, r0, r3 movs r0, 0 strb r0, [r1] _08041548: adds r3, r6, 0 ldr r0, [r6] ldr r2, =0x000001a1 adds r0, r2 ldr r1, =gUnknown_0202406C ldrb r0, [r0] mov r8, r1 ldrb r4, [r1] cmp r0, r4 bcc _0804155E b _08041684 _0804155E: ldr r5, =gUnknown_02024064 ldr r4, =gUnknown_02022F58 ldr r7, =gUnknown_020242BC mov r12, r7 ldr r0, =gUnknown_0202420B mov r9, r0 _0804156A: ldr r1, =gUnknown_0202407E ldr r0, [r3] adds r3, r0, r2 ldrb r0, [r3] adds r0, r1 ldrb r0, [r0] mov r1, r9 strb r0, [r1] strb r0, [r5] ldr r0, =gUnknown_02024210 ldrb r1, [r0] ldr r2, =gBitTable ldrb r0, [r5] lsls r0, 2 adds r0, r2 ldr r0, [r0] ands r1, r0 cmp r1, 0 beq _080415BC ldrb r0, [r3] adds r0, 0x1 strb r0, [r3] b _08041670 .pool _080415BC: ldrb r0, [r3] adds r0, 0x1 strb r0, [r3] ldr r7, =gUnknown_020242AC ldrb r0, [r5] lsls r0, 2 adds r0, r7 ldr r0, [r0] movs r1, 0x20 ands r0, r1 cmp r0, 0 beq _08041670 movs r0, 0xFD strb r0, [r4] movs r0, 0x1 strb r0, [r4, 0x1] strb r0, [r4, 0x2] strb r0, [r4, 0x3] ldrb r1, [r5] lsls r0, r1, 3 subs r0, r1 lsls r0, 2 add r0, r12 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 mov r3, r12 adds r4, r0, r3 ldrb r3, [r4, 0xF] lsls r1, r3, 28 cmp r1, 0 bne _08041644 lsls r2, 2 adds r2, r7 ldr r0, [r2] movs r1, 0x21 negs r1, r1 ands r0, r1 str r0, [r2] ldr r3, =gBattleMoveDamage ldr r2, =gBattleMons ldrb r1, [r5] movs r0, 0x58 muls r0, r1 adds r0, r2 ldrh r0, [r0, 0x28] str r0, [r3] ldr r1, =gUnknown_02024214 ldr r0, =gUnknown_082DAF05 b _0804165C .pool _08041644: lsrs r1, 28 subs r1, 0x1 movs r0, 0xF ands r1, r0 movs r7, 0x10 negs r7, r7 adds r0, r7, 0 ands r0, r3 orrs r0, r1 strb r0, [r4, 0xF] ldr r1, =gUnknown_02024214 ldr r0, =gUnknown_082DAF20 _0804165C: str r0, [r1] ldr r0, [r1] bl b_call_bc_move_exec _08041664: movs r0, 0x1 b _08041714 .pool _08041670: adds r3, r6, 0 ldr r0, [r6] ldr r2, =0x000001a1 adds r0, r2 ldrb r0, [r0] mov r1, r8 ldrb r1, [r1] cmp r0, r1 bcs _08041684 b _0804156A _08041684: ldr r0, [r6] movs r2, 0xD0 lsls r2, 1 adds r0, r2 movs r1, 0x2 strb r1, [r0] ldr r0, [r6] ldr r3, =0x000001a1 adds r1, r0, r3 movs r0, 0 strb r0, [r1] _0804169A: ldr r0, =gBattleTypeFlags ldr r0, [r0] movs r1, 0x80 lsls r1, 11 ands r0, r1 cmp r0, 0 beq _08041708 ldr r0, [r6] adds r0, 0xDA ldrb r0, [r0] cmp r0, 0x2 bne _08041708 ldr r1, =gBattleMons ldrh r0, [r1, 0x28] cmp r0, 0 beq _08041708 adds r0, r1, 0 adds r0, 0x80 ldrh r0, [r0] cmp r0, 0 beq _08041708 movs r4, 0 _080416C6: lsls r0, r4, 24 lsrs r0, 24 bl b_cancel_multi_turn_move_maybe adds r4, 0x1 cmp r4, 0x1 ble _080416C6 ldr r1, =gUnknown_02024214 ldr r0, =gUnknown_082DB8F3 str r0, [r1] bl b_call_bc_move_exec ldr r0, =gUnknown_0202449C ldr r1, [r0] movs r4, 0xD0 lsls r4, 1 adds r1, r4 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] b _08041664 .pool _08041708: mov r7, r10 ldr r0, [r7] ldr r1, =0xfeffffdf ands r0, r1 str r0, [r7] movs r0, 0 _08041714: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 .pool thumb_func_end sub_8041364 thumb_func_start sub_8041728 sub_8041728: @ 8041728 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x4 ldr r0, =gBattleTypeFlags ldr r0, [r0] movs r1, 0x80 ands r0, r1 cmp r0, 0 beq _08041770 b _08041A0A .pool _08041744: ldr r0, =gUnknown_082DA7C4 bl b_call_bc_move_exec ldr r0, [r5] adds r0, 0x4D movs r1, 0x2 b _08041764 .pool _08041758: ldr r0, =gUnknown_082DA7CD bl b_call_bc_move_exec ldr r0, [r5] adds r0, 0x4D movs r1, 0x5 _08041764: strb r1, [r0] _08041766: movs r0, 0x1 b _08041A0C .pool _08041770: ldr r0, =gUnknown_0202449C mov r8, r0 _08041774: mov r1, r8 ldr r0, [r1] adds r0, 0x4D ldrb r0, [r0] cmp r0, 0x7 bls _08041782 b _080419FC _08041782: lsls r0, 2 ldr r1, =_08041794 adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _08041794: .4byte _080417B4 .4byte _08041806 .4byte _080418A0 .4byte _080418E2 .4byte _080418F6 .4byte _08041960 .4byte _08041994 .4byte _080419FC _080417B4: mov r4, r8 ldr r0, [r4] adds r0, 0x4E movs r1, 0 strb r1, [r0] ldr r1, [r4] adds r1, 0x4D ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] movs r5, 0 ldr r0, =gUnknown_0202406C ldrb r0, [r0] cmp r5, r0 bge _08041806 ldr r6, =gUnknown_02024210 _080417D4: ldrb r0, [r6] ldr r2, =gBitTable lsls r1, r5, 2 adds r1, r2 ldr r4, [r1] ands r0, r4 cmp r0, 0 beq _080417FC lsls r0, r5, 24 lsrs r0, 24 movs r1, 0x6 movs r2, 0x6 bl sub_80423F4 lsls r0, 24 cmp r0, 0 bne _080417FC ldrb r0, [r6] bics r0, r4 strb r0, [r6] _080417FC: adds r5, 0x1 ldr r0, =gUnknown_0202406C ldrb r0, [r0] cmp r5, r0 blt _080417D4 _08041806: ldr r0, =gUnknown_0202449C mov r8, r0 ldr r1, =gUnknown_0202420D mov r12, r1 ldr r2, =gEnemyMonIndex mov r5, r8 ldr r7, =gBattleMons ldr r6, =gUnknown_0202406E _08041816: ldr r3, [r5] adds r1, r3, 0 adds r1, 0x4E ldrb r0, [r1] strb r0, [r2] mov r4, r12 strb r0, [r4] ldrb r4, [r1] movs r0, 0x58 muls r0, r4 adds r0, r7 ldrh r0, [r0, 0x28] cmp r0, 0 bne _0804185E adds r0, r3, 0 adds r0, 0xDF ldrb r1, [r0] ldr r3, =gBitTable lsls r0, r4, 1 adds r0, r6 ldrh r0, [r0] lsls r0, 2 adds r0, r3 ldr r0, [r0] ands r1, r0 cmp r1, 0 bne _0804185E ldr r0, =gUnknown_02024210 ldrb r1, [r0] lsls r0, r4, 2 adds r0, r3 ldr r0, [r0] ands r1, r0 cmp r1, 0 bne _0804185E b _08041744 _0804185E: ldr r0, [r5] adds r0, 0x4E ldrb r1, [r0] adds r1, 0x1 strb r1, [r0] ldr r0, =gUnknown_0202406C lsls r1, 24 lsrs r1, 24 ldrb r0, [r0] cmp r1, r0 bne _08041816 mov r1, r8 ldr r0, [r1] adds r0, 0x4D movs r1, 0x3 strb r1, [r0] b _080419FC .pool _080418A0: ldr r0, =gUnknown_0202420D ldrb r0, [r0] bl sub_803F9EC ldr r2, =gUnknown_0202449C ldr r1, [r2] adds r1, 0x4E ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] ldr r1, =gUnknown_0202406C lsls r0, 24 lsrs r0, 24 ldrb r1, [r1] cmp r0, r1 bne _080418D8 ldr r0, [r2] adds r0, 0x4D movs r1, 0x3 strb r1, [r0] b _080419FA .pool _080418D8: ldr r0, [r2] adds r0, 0x4D movs r1, 0x1 strb r1, [r0] b _080419FA _080418E2: mov r4, r8 ldr r0, [r4] adds r0, 0x4E movs r1, 0 strb r1, [r0] ldr r1, [r4] adds r1, 0x4D ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] _080418F6: ldr r0, =gUnknown_0202420D mov r12, r0 ldr r7, =gEnemyMonIndex ldr r5, =gUnknown_0202449C ldr r2, =gBattleMons ldr r6, =gBitTable _08041902: ldr r0, [r5] adds r4, r0, 0 adds r4, 0x4E ldrb r0, [r4] strb r0, [r7] mov r1, r12 strb r0, [r1] ldrb r3, [r4] movs r0, 0x58 muls r0, r3 adds r0, r2 ldrh r0, [r0, 0x28] cmp r0, 0 bne _08041930 ldr r0, =gUnknown_02024210 ldrb r1, [r0] lsls r0, r3, 2 adds r0, r6 ldr r0, [r0] ands r1, r0 cmp r1, 0 bne _08041930 b _08041758 _08041930: adds r0, r3, 0x1 strb r0, [r4] ldr r1, =gUnknown_0202406C lsls r0, 24 lsrs r0, 24 ldrb r1, [r1] cmp r0, r1 bne _08041902 b _08041978 .pool _08041960: mov r1, r8 ldr r0, [r1] adds r0, 0x4E ldrb r1, [r0] adds r1, 0x1 strb r1, [r0] ldr r0, =gUnknown_0202406C lsls r1, 24 lsrs r1, 24 ldrb r0, [r0] cmp r1, r0 bne _08041988 _08041978: mov r4, r8 ldr r0, [r4] adds r0, 0x4D movs r1, 0x6 strb r1, [r0] b _080419FC .pool _08041988: mov r1, r8 ldr r0, [r1] adds r0, 0x4D movs r1, 0x4 strb r1, [r0] b _080419FC _08041994: movs r0, 0 str r0, [sp] movs r0, 0x9 movs r1, 0 movs r2, 0 movs r3, 0 bl ability_something lsls r0, 24 lsrs r0, 24 cmp r0, 0 beq _080419AE b _08041766 _080419AE: str r0, [sp] movs r0, 0xB movs r1, 0 movs r2, 0 movs r3, 0 bl ability_something lsls r0, 24 cmp r0, 0 beq _080419C4 b _08041766 _080419C4: movs r0, 0x1 movs r1, 0 movs r2, 0x1 bl berry_effects_maybe lsls r0, 24 lsrs r0, 24 cmp r0, 0 beq _080419D8 b _08041766 _080419D8: str r0, [sp] movs r0, 0x6 movs r1, 0 movs r2, 0 movs r3, 0 bl ability_something lsls r0, 24 cmp r0, 0 beq _080419EE b _08041766 _080419EE: ldr r2, =gUnknown_0202449C ldr r1, [r2] adds r1, 0x4D ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] _080419FA: mov r8, r2 _080419FC: mov r4, r8 ldr r0, [r4] adds r0, 0x4D ldrb r0, [r0] cmp r0, 0x7 beq _08041A0A b _08041774 _08041A0A: movs r0, 0 _08041A0C: add sp, 0x4 pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 .pool thumb_func_end sub_8041728 thumb_func_start b_clear_atk_up_if_hit_flag_unless_enraged b_clear_atk_up_if_hit_flag_unless_enraged: @ 8041A1C push {r4-r6,lr} movs r3, 0 ldr r0, =gUnknown_0202406C adds r5, r0, 0 ldrb r0, [r5] cmp r3, r0 bge _08041A54 ldr r4, =gUnknown_02024274 movs r6, 0x80 lsls r6, 16 ldr r2, =gUnknown_020240D4 _08041A32: ldr r1, [r2] adds r0, r1, 0 ands r0, r6 cmp r0, 0 beq _08041A48 ldrh r0, [r4] cmp r0, 0x63 beq _08041A48 ldr r0, =0xff7fffff ands r1, r0 str r1, [r2] _08041A48: adds r4, 0x2 adds r2, 0x58 adds r3, 0x1 ldrb r0, [r5] cmp r3, r0 blt _08041A32 _08041A54: pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end b_clear_atk_up_if_hit_flag_unless_enraged thumb_func_start sub_8041A6C sub_8041A6C: @ 8041A6C 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, =gUnknown_02024478 mov r10, r1 ldr r2, =gUnknown_0202449C mov r8, r2 b _08041A9A .pool _08041A90: mov r3, r9 cmp r3, 0 beq _08041A9A bl _08042388 _08041A9A: mov r4, r8 ldr r0, [r4] ldr r7, =0x000001a3 adds r0, r7 ldrb r0, [r0] cmp r0, 0xE bls _08041AAC bl _08042376 _08041AAC: lsls r0, 2 ldr r1, =_08041AC0 adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _08041AC0: .4byte _08041AFC .4byte _08041B48 .4byte _08041C90 .4byte _08041D50 .4byte _08041DC4 .4byte _08041E40 .4byte _08041EB8 .4byte _08041F38 .4byte _08041FC0 .4byte _08042028 .4byte _08042114 .4byte _08042194 .4byte _08042234 .4byte _0804231C .4byte _08042376 _08041AFC: ldr r1, =gBattleMons ldr r3, =gUnknown_0202420B ldrb r2, [r3] movs r0, 0x58 muls r2, r0 adds r1, 0x50 adds r2, r1 ldr r0, [r2] ldr r1, =0xfdffffff ands r0, r1 str r0, [r2] ldr r0, =gUnknown_020242AC ldrb r2, [r3] lsls r2, 2 adds r2, r0 ldr r0, [r2] ldr r1, =0xffffbfff ands r0, r1 str r0, [r2] mov r1, r8 ldr r0, [r1] ldr r2, =0x000001a3 adds r1, r0, r2 bl _08042370 .pool _08041B48: ldr r7, =gBattleMons ldr r4, =gUnknown_0202420B 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 r3, 0x7 mov r8, r3 ands r0, r3 cmp r0, 0 bne _08041B68 b _08041C6E _08041B68: adds r0, r1, 0 bl sub_8050650 lsls r0, 24 cmp r0, 0 beq _08041BC8 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, =0xf7ffffff ands r0, r1 str r0, [r2] bl b_movescr_stack_push_cursor ldr r1, =gUnknown_02024332 movs r0, 0x1 strb r0, [r1, 0x5] ldr r1, =gUnknown_02024214 ldr r0, =gUnknown_082DB220 str r0, [r1] movs r4, 0x2 mov r9, r4 b _08041C6E .pool _08041BC8: 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 _08041BDC movs r3, 0x2 _08041BDC: adds r2, r1, r6 ldr r1, [r2] adds r0, r1, 0 mov r7, r8 ands r0, r7 cmp r0, r3 bcs _08041BF4 movs r0, 0x8 negs r0, r0 ands r1, r0 str r1, [r2] b _08041BF8 _08041BF4: subs r0, r1, r3 str r0, [r2] _08041BF8: ldr r2, =gBattleMons ldr r0, =gUnknown_0202420B 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 _08041C50 ldr r0, =gUnknown_020241EA ldrh r0, [r0] cmp r0, 0xAD beq _08041C6E cmp r0, 0xD6 beq _08041C6E ldr r1, =gUnknown_02024214 ldr r0, =gUnknown_082DB213 str r0, [r1] ldr r2, =gUnknown_02024280 ldr r0, [r2] movs r1, 0x80 lsls r1, 12 orrs r0, r1 str r0, [r2] movs r0, 0x2 mov r9, r0 b _08041C6E .pool _08041C50: adds r2, 0x50 adds r2, r1, r2 ldr r0, [r2] ldr r1, =0xf7ffffff ands r0, r1 str r0, [r2] bl b_movescr_stack_push_cursor ldr r0, =gUnknown_02024332 strb r4, [r0, 0x5] ldr r1, =gUnknown_02024214 ldr r0, =gUnknown_082DB220 str r0, [r1] movs r1, 0x2 mov r9, r1 _08041C6E: ldr r1, =gUnknown_0202449C ldr r0, [r1] ldr r3, =0x000001a3 adds r2, r0, r3 b _0804216A .pool _08041C90: ldr r1, =gBattleMons ldr r7, =gUnknown_0202420B 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 beq _08041D30 bl Random lsls r0, 16 lsrs r0, 16 movs r1, 0x5 bl __umodsi3 lsls r0, 16 lsrs r4, r0, 16 cmp r4, 0 beq _08041D08 ldr r2, =gBattleMoves ldr r0, =gUnknown_020241EA ldrh r1, [r0] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r0, [r0] cmp r0, 0x7D bne _08041CD6 b _08042162 _08041CD6: ldr r1, =gUnknown_02024214 ldr r0, =gUnknown_082DB26A str r0, [r1] ldr r2, =gUnknown_02024280 ldr r0, [r2] movs r1, 0x80 lsls r1, 2 orrs r0, r1 str r0, [r2] b _08041D28 .pool _08041D08: 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, =gUnknown_02024214 ldr r0, =gUnknown_082DB277 str r0, [r1] ldr r0, =gUnknown_02024332 strb r4, [r0, 0x5] _08041D28: movs r7, 0x2 mov r9, r7 ldr r0, =gUnknown_0202449C mov r8, r0 _08041D30: mov r1, r8 ldr r0, [r1] ldr r2, =0x000001a3 adds r1, r0, r2 b _08042370 .pool _08041D50: ldr r1, =gBattleMons ldr r0, =gUnknown_0202420B ldrb r2, [r0] movs r0, 0x58 muls r0, r2 adds r0, r1 adds r0, 0x20 ldrb r0, [r0] cmp r0, 0x36 beq _08041D66 b _08042162 _08041D66: ldr r0, =gUnknown_020242BC lsls r1, r2, 3 subs r1, r2 lsls r1, 2 adds r1, r0 ldrb r0, [r1, 0x18] lsls r0, 31 cmp r0, 0 bne _08041D7A b _08042162 _08041D7A: adds r0, r2, 0 bl b_cancel_multi_turn_move_maybe ldr r2, =gUnknown_02024280 ldr r0, [r2] movs r1, 0x80 lsls r1, 12 orrs r0, r1 str r0, [r2] ldr r1, =gUnknown_02024332 movs r0, 0 strb r0, [r1, 0x5] ldr r1, =gUnknown_02024214 ldr r0, =gUnknown_082DB6AD str r0, [r1] ldr r2, =gBattleMoveFlags ldrb r0, [r2] movs r1, 0x1 orrs r0, r1 strb r0, [r2] b _0804215E .pool _08041DC4: ldr r1, =gBattleMons ldr r3, =gUnknown_0202420B 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 _08041E10 ldr r0, =0xffbfffff ands r1, r0 str r1, [r2] ldr r2, =gUnknown_020242BC 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, =gUnknown_02024214 ldr r0, =gUnknown_082D9462 str r0, [r1] ldr r2, =gUnknown_02024280 ldr r0, [r2] movs r1, 0x80 lsls r1, 12 orrs r0, r1 str r0, [r2] movs r7, 0x1 mov r9, r7 _08041E10: ldr r1, =gUnknown_0202449C ldr r0, [r1] ldr r3, =0x000001a3 adds r2, r0, r3 b _0804216A .pool _08041E40: ldr r1, =gBattleMons ldr r3, =gUnknown_0202420B 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 beq _08041E8C movs r0, 0x9 negs r0, r0 ands r1, r0 str r1, [r2] ldr r0, =gUnknown_0202433C 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, =gUnknown_02024214 ldr r0, =gUnknown_082DB29B str r0, [r1] ldr r2, =gUnknown_02024280 ldr r0, [r2] movs r1, 0x80 lsls r1, 12 orrs r0, r1 str r0, [r2] movs r4, 0x1 mov r9, r4 _08041E8C: ldr r1, =gUnknown_0202449C ldr r0, [r1] ldr r7, =0x000001a3 adds r2, r0, r7 b _0804216A .pool _08041EB8: ldr r0, =gUnknown_020242BC ldr r3, =gUnknown_0202420B ldrb r2, [r3] lsls r1, r2, 3 subs r1, r2 lsls r1, 2 adds r1, r0 ldr r0, =gUnknown_020241EA ldrh r1, [r1, 0x4] ldrh r0, [r0] cmp r1, r0 bne _08041F04 cmp r1, 0 beq _08041F04 ldr r0, =gUnknown_0202433C lsls r2, 4 adds r2, r0 ldrb r0, [r2, 0x1] movs r1, 0x80 orrs r0, r1 strb r0, [r2, 0x1] ldr r1, =gUnknown_02024474 ldrb r0, [r3] strb r0, [r1, 0x17] ldrb r0, [r3] bl b_cancel_multi_turn_move_maybe ldr r1, =gUnknown_02024214 ldr r0, =gUnknown_082DAE14 str r0, [r1] ldr r2, =gUnknown_02024280 ldr r0, [r2] movs r1, 0x80 lsls r1, 12 orrs r0, r1 str r0, [r2] movs r0, 0x1 mov r9, r0 _08041F04: ldr r1, =gUnknown_0202449C ldr r0, [r1] ldr r3, =0x000001a3 adds r2, r0, r3 b _0804216A .pool _08041F38: ldr r0, =gUnknown_020242BC ldr r4, =gUnknown_0202420B 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 _08041F8C ldr r2, =gBattleMoves ldr r0, =gUnknown_020241EA ldrh r1, [r0] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r0, [r0, 0x1] cmp r0, 0 bne _08041F8C ldr r0, =gUnknown_0202433C 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, =gUnknown_02024214 ldr r0, =gUnknown_082DB0A4 str r0, [r1] ldr r2, =gUnknown_02024280 ldr r0, [r2] movs r1, 0x80 lsls r1, 12 orrs r0, r1 str r0, [r2] movs r4, 0x1 mov r9, r4 _08041F8C: ldr r1, =gUnknown_0202449C ldr r0, [r1] ldr r7, =0x000001a3 adds r2, r0, r7 b _0804216A .pool _08041FC0: ldr r4, =gUnknown_0202420B ldrb r0, [r4] ldr r1, =gUnknown_020241EA ldrh r1, [r1] bl sub_8040130 lsls r0, 24 cmp r0, 0 beq _08041FFE ldr r0, =gUnknown_0202433C 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, =gUnknown_02024214 ldr r0, =gUnknown_082DB176 str r0, [r1] ldr r2, =gUnknown_02024280 ldr r0, [r2] movs r1, 0x80 lsls r1, 12 orrs r0, r1 str r0, [r2] movs r0, 0x1 mov r9, r0 _08041FFE: ldr r1, =gUnknown_0202449C ldr r0, [r1] ldr r3, =0x000001a3 adds r2, r0, r3 b _0804216A .pool _08042028: ldr r7, =gBattleMons ldr r5, =gUnknown_0202420B 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 beq _080420FA 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 _080420E8 bl Random movs r1, 0x1 movs r2, 0x1 ands r2, r0 cmp r2, 0 beq _0804207C ldr r1, =gUnknown_02024332 movs r0, 0 strb r0, [r1, 0x5] bl b_movescr_stack_push_cursor b _080420C6 .pool _0804207C: ldr r0, =gUnknown_02024332 movs r4, 0x1 strb r1, [r0, 0x5] ldr r1, =gEnemyMonIndex 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_806957C ldr r1, =gBattleMoveDamage str r0, [r1] ldr r0, =gUnknown_0202433C ldrb r1, [r5] lsls r1, 4 adds r1, r0 ldrb r0, [r1, 0x1] orrs r0, r4 strb r0, [r1, 0x1] ldr r2, =gUnknown_02024280 ldr r0, [r2] movs r1, 0x80 lsls r1, 12 orrs r0, r1 str r0, [r2] _080420C6: ldr r1, =gUnknown_02024214 ldr r0, =gUnknown_082DB2BD b _080420F0 .pool _080420E8: bl b_movescr_stack_push_cursor ldr r1, =gUnknown_02024214 ldr r0, =gUnknown_082DB300 _080420F0: str r0, [r1] movs r4, 0x1 mov r9, r4 ldr r7, =gUnknown_0202449C mov r8, r7 _080420FA: mov r1, r8 ldr r0, [r1] ldr r2, =0x000001a3 adds r1, r0, r2 b _08042370 .pool _08042114: ldr r1, =gBattleMons ldr r4, =gUnknown_0202420B 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 _08042162 bl Random lsls r0, 16 movs r1, 0xC0 lsls r1, 10 ands r1, r0 cmp r1, 0 bne _08042162 ldr r0, =gUnknown_0202433C ldrb r2, [r4] lsls r2, 4 adds r2, r0 ldrb r0, [r2] movs r1, 0x80 orrs r0, r1 strb r0, [r2] ldr r1, =gUnknown_02024214 ldr r0, =gUnknown_082DB28B str r0, [r1] ldr r2, =gUnknown_02024280 ldr r0, [r2] movs r1, 0x80 lsls r1, 12 orrs r0, r1 str r0, [r2] _0804215E: movs r3, 0x1 mov r9, r3 _08042162: ldr r1, =gUnknown_0202449C ldr r0, [r1] ldr r4, =0x000001a3 adds r2, r0, r4 _0804216A: ldrb r0, [r2] adds r0, 0x1 strb r0, [r2] mov r8, r1 b _08042376 .pool _08042194: ldr r1, =gBattleMons ldr r4, =gUnknown_0202420B 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 beq _0804220E lsrs r0, r1, 16 bl CountTrailingZeroBits ldr r1, =gUnknown_02024474 strb r0, [r1, 0x17] bl Random movs r1, 0x1 ands r1, r0 cmp r1, 0 beq _080421D8 bl b_movescr_stack_push_cursor b _08042200 .pool _080421D8: ldr r0, =gUnknown_082DB334 bl b_movescr_stack_push ldr r2, =gUnknown_02024280 ldr r0, [r2] movs r1, 0x80 lsls r1, 12 orrs r0, r1 str r0, [r2] ldr r0, =gUnknown_0202433C 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 _08042200: ldr r1, =gUnknown_02024214 ldr r0, =gUnknown_082DB327 str r0, [r1] movs r7, 0x1 mov r9, r7 ldr r0, =gUnknown_0202449C mov r8, r0 _0804220E: mov r1, r8 ldr r0, [r1] ldr r2, =0x000001a3 adds r1, r0, r2 b _08042370 .pool _08042234: ldr r1, =gBattleMons ldr r6, =gUnknown_0202420B 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 beq _08042306 ldr r7, =0xffffff00 adds r0, r2, r7 str r0, [r3] ldrb r2, [r6] adds r0, r2, 0 muls r0, r5 adds r0, r1 ldr r0, [r0] ands r0, r4 cmp r0, 0 beq _08042280 ldr r1, =gUnknown_02024214 ldr r0, =gUnknown_082DAD71 b _08042300 .pool _08042280: ldr r3, =gUnknown_020241F8 lsls r0, r2, 2 adds r0, r3 ldr r0, [r0] cmp r0, 0 beq _080422FC ldr r1, =gUnknown_020241EA movs r0, 0x75 strh r0, [r1] ldrb r0, [r6] lsls r0, 2 adds r0, r3 ldr r0, [r0] lsls r0, 1 mov r1, r10 str r0, [r1] ldr r4, =gEnemyMonIndex ldr r1, =gUnknown_02024288 ldrb r0, [r6] adds r0, r1 ldrb r0, [r0] strb r0, [r4] ldr r0, =gUnknown_02024210 ldrb r1, [r0] ldr r2, =gBitTable ldrb r0, [r4] lsls r0, 2 adds r0, r2 ldr r0, [r0] ands r1, r0 cmp r1, 0 beq _080422CA movs r0, 0x75 movs r1, 0x1 bl sub_80458E0 strb r0, [r4] _080422CA: ldr r1, =gUnknown_02024214 ldr r0, =gUnknown_082DAD7C str r0, [r1] ldr r2, =gUnknown_0202449C mov r8, r2 b _08042302 .pool _080422FC: ldr r1, =gUnknown_02024214 ldr r0, =gUnknown_082DADC4 _08042300: str r0, [r1] _08042302: movs r3, 0x1 mov r9, r3 _08042306: mov r4, r8 ldr r0, [r4] ldr r7, =0x000001a3 adds r1, r0, r7 b _08042370 .pool _0804231C: ldr r1, =gBattleMons ldr r0, =gUnknown_0202420B 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 _08042368 ldr r2, =gBattleMoves ldr r0, =gUnknown_020241EA ldrh r1, [r0] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r0, [r0] cmp r0, 0x7D bne _08042360 movs r0, 0x21 negs r0, r0 ands r3, r0 str r3, [r4] bl b_movescr_stack_push_cursor ldr r1, =gUnknown_02024214 ldr r0, =gUnknown_082DB277 str r0, [r1] ldr r1, =gUnknown_02024332 movs r0, 0x1 strb r0, [r1, 0x5] _08042360: movs r0, 0x2 mov r9, r0 ldr r1, =gUnknown_0202449C mov r8, r1 _08042368: mov r2, r8 ldr r0, [r2] ldr r3, =0x000001a3 adds r1, r0, r3 _08042370: ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] _08042376: mov r4, r8 ldr r0, [r4] ldr r7, =0x000001a3 adds r0, r7 ldrb r0, [r0] cmp r0, 0xE beq _08042388 bl _08041A90 _08042388: mov r0, r9 cmp r0, 0x2 bne _080423B4 ldr r4, =gUnknown_02024064 ldr r0, =gUnknown_0202420B ldrb r0, [r0] strb r0, [r4] ldrb r1, [r4] movs r0, 0x58 muls r0, r1 ldr r1, =gUnknown_020240D0 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 _080423B4: 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 .pool thumb_func_end sub_8041A6C thumb_func_start sub_80423F4 sub_80423F4: @ 80423F4 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 r10, r1 lsls r2, 24 lsrs r2, 24 mov r9, r2 ldr r0, =gBattleTypeFlags ldr r1, [r0] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _08042424 movs r0, 0 b _080426A0 .pool _08042424: movs r0, 0x80 lsls r0, 15 ands r0, r1 cmp r0, 0 beq _0804249C adds r0, r4, 0 bl battle_side_get_owner lsls r0, 24 ldr r1, =gEnemyParty mov r8, r1 cmp r0, 0 bne _08042442 ldr r2, =gPlayerParty mov r8, r2 _08042442: movs r0, 0x2 ands r0, r4 lsls r0, 24 lsrs r6, r0, 25 lsls r0, r6, 1 adds r4, r0, r6 adds r0, r4, 0x3 cmp r4, r0 bge _0804248C adds r7, r0, 0 _08042456: movs r0, 0x64 muls r0, r4 mov r1, r8 adds r5, r1, r0 adds r0, r5, 0 movs r1, 0x39 bl GetMonData cmp r0, 0 beq _08042486 adds r0, r5, 0 movs r1, 0x41 bl GetMonData cmp r0, 0 beq _08042486 adds r0, r5, 0 movs r1, 0x41 bl GetMonData movs r1, 0xCE lsls r1, 1 cmp r0, r1 bne _0804248C _08042486: adds r4, 0x1 cmp r4, r7 blt _08042456 _0804248C: movs r1, 0 lsls r0, r6, 1 adds r0, r6 b _08042556 .pool _0804249C: movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _0804256C movs r0, 0x80 lsls r0, 16 ands r1, r0 cmp r1, 0 beq _080424E4 adds r0, r4, 0 bl battle_side_get_owner lsls r0, 24 cmp r0, 0 bne _080424D0 ldr r2, =gPlayerParty mov r8, r2 adds r0, r4, 0 bl sub_806D864 lsls r0, 24 lsrs r7, r0, 24 b _08042502 .pool _080424D0: ldr r0, =gEnemyParty mov r8, r0 movs r1, 0x1 eors r1, r4 negs r0, r1 orrs r0, r1 lsrs r6, r0, 31 b _0804250C .pool _080424E4: adds r0, r4, 0 bl sub_806D864 lsls r0, 24 lsrs r7, r0, 24 adds r0, r4, 0 bl battle_side_get_owner lsls r0, 24 ldr r1, =gEnemyParty mov r8, r1 cmp r0, 0 bne _08042502 ldr r2, =gPlayerParty mov r8, r2 _08042502: adds r0, r7, 0 bl sub_806D82C lsls r0, 24 lsrs r6, r0, 24 _0804250C: lsls r0, r6, 1 adds r4, r0, r6 adds r1, r4, 0x3 mov r9, r0 cmp r4, r1 bge _08042550 adds r7, r1, 0 _0804251A: movs r0, 0x64 muls r0, r4 mov r1, r8 adds r5, r1, r0 adds r0, r5, 0 movs r1, 0x39 bl GetMonData cmp r0, 0 beq _0804254A adds r0, r5, 0 movs r1, 0x41 bl GetMonData cmp r0, 0 beq _0804254A adds r0, r5, 0 movs r1, 0x41 bl GetMonData movs r1, 0xCE lsls r1, 1 cmp r0, r1 bne _08042550 _0804254A: adds r4, 0x1 cmp r4, r7 blt _0804251A _08042550: movs r1, 0 mov r2, r9 adds r0, r2, r6 _08042556: adds r0, 0x3 cmp r4, r0 bne _0804255E movs r1, 0x1 _0804255E: adds r0, r1, 0 b _080426A0 .pool _0804256C: movs r0, 0x80 lsls r0, 8 ands r1, r0 cmp r1, 0 beq _080425DA adds r0, r4, 0 bl battle_side_get_owner lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080425DA ldr r0, =gEnemyParty mov r8, r0 movs r6, 0x3 cmp r4, 0x1 bne _08042590 movs r6, 0 _08042590: adds r4, r6, 0 adds r6, r4, 0x3 b _0804259E .pool _0804259C: adds r4, 0x1 _0804259E: cmp r4, r6 bge _080425D2 movs r0, 0x64 muls r0, r4 mov r1, r8 adds r5, r1, r0 adds r0, r5, 0 movs r1, 0x39 bl GetMonData cmp r0, 0 beq _0804259C adds r0, r5, 0 movs r1, 0x41 bl GetMonData cmp r0, 0 beq _0804259C adds r0, r5, 0 movs r1, 0x41 bl GetMonData movs r1, 0xCE lsls r1, 1 cmp r0, r1 beq _0804259C _080425D2: movs r0, 0 cmp r4, r6 bne _080426A0 b _0804269E _080425DA: adds r0, r4, 0 bl battle_side_get_owner lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _08042608 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, =gEnemyParty mov r8, r2 b _08042620 .pool _08042608: 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, =gPlayerParty mov r8, r0 _08042620: mov r1, r10 cmp r1, 0x6 bne _08042630 ldr r1, =gUnknown_0202406E lsls r0, r7, 1 adds r0, r1 ldrb r0, [r0] mov r10, r0 _08042630: mov r2, r9 cmp r2, 0x6 bne _08042640 ldr r1, =gUnknown_0202406E lsls r0, r6, 1 adds r0, r1 ldrb r0, [r0] mov r9, r0 _08042640: movs r4, 0 _08042642: movs r0, 0x64 muls r0, r4 mov r1, r8 adds r5, r1, r0 adds r0, r5, 0 movs r1, 0x39 bl GetMonData cmp r0, 0 beq _08042692 adds r0, r5, 0 movs r1, 0x41 bl GetMonData cmp r0, 0 beq _08042692 adds r0, r5, 0 movs r1, 0x41 bl GetMonData movs r1, 0xCE lsls r1, 1 cmp r0, r1 beq _08042692 cmp r4, r10 beq _08042692 cmp r4, r9 beq _08042692 ldr r0, =gUnknown_0202449C ldr r1, [r0] adds r0, r7, r1 adds r0, 0x5C ldrb r0, [r0] cmp r4, r0 beq _08042692 adds r0, r6, r1 adds r0, 0x5C ldrb r0, [r0] cmp r4, r0 bne _08042698 _08042692: adds r4, 0x1 cmp r4, 0x5 ble _08042642 _08042698: movs r0, 0 cmp r4, 0x6 bne _080426A0 _0804269E: movs r0, 0x1 _080426A0: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 .pool thumb_func_end sub_80423F4 thumb_func_start castform_switch castform_switch: @ 80426BC push {r4-r6,lr} sub sp, 0x4 lsls r0, 24 lsrs r6, r0, 24 movs r5, 0 ldr r1, =gBattleMons movs r0, 0x58 muls r0, r6 adds r4, r0, r1 ldrh r1, [r4] ldr r0, =0x00000181 cmp r1, r0 bne _08042760 adds r0, r4, 0 adds r0, 0x20 ldrb r0, [r0] cmp r0, 0x3B bne _08042760 ldrh r0, [r4, 0x28] cmp r0, 0 beq _08042760 str r5, [sp] movs r0, 0x13 movs r1, 0 movs r2, 0xD movs r3, 0 bl ability_something lsls r0, 24 cmp r0, 0 bne _0804270E str r5, [sp] movs r0, 0x13 movs r1, 0 movs r2, 0x4D movs r3, 0 bl ability_something lsls r0, 24 cmp r0, 0 beq _08042734 _0804270E: adds r2, r4, 0 adds r2, 0x21 ldrb r0, [r2] cmp r0, 0 beq _08042734 adds r1, r4, 0 adds r1, 0x22 ldrb r0, [r1] cmp r0, 0 beq _08042734 strb r5, [r2] strb r5, [r1] movs r0, 0x1 b _08042818 .pool _08042734: movs r0, 0 str r0, [sp] movs r0, 0x13 movs r1, 0 movs r2, 0xD movs r3, 0 bl ability_something lsls r0, 24 lsrs r0, 24 cmp r0, 0 bne _08042760 str r0, [sp] movs r0, 0x13 movs r1, 0 movs r2, 0x4D movs r3, 0 bl ability_something lsls r0, 24 cmp r0, 0 beq _08042764 _08042760: movs r0, 0 b _08042818 _08042764: ldr r1, =gBattleWeather ldrh r0, [r1] movs r2, 0xE7 ands r2, r0 adds r4, r1, 0 cmp r2, 0 bne _08042792 ldr r1, =gBattleMons movs r0, 0x58 muls r0, r6 adds r1, r0, r1 adds r3, r1, 0 adds r3, 0x21 ldrb r0, [r3] cmp r0, 0 beq _08042792 adds r1, 0x22 ldrb r0, [r1] cmp r0, 0 beq _08042792 strb r2, [r3] strb r2, [r1] movs r5, 0x1 _08042792: ldrh r1, [r4] movs r0, 0x60 ands r0, r1 cmp r0, 0 beq _080427BE ldr r1, =gBattleMons movs r0, 0x58 muls r0, r6 adds r1, r0, r1 adds r2, r1, 0 adds r2, 0x21 ldrb r0, [r2] cmp r0, 0xA beq _080427BE adds r1, 0x22 ldrb r0, [r1] cmp r0, 0xA beq _080427BE movs r0, 0xA strb r0, [r2] strb r0, [r1] movs r5, 0x2 _080427BE: ldrh r1, [r4] movs r0, 0x7 ands r0, r1 cmp r0, 0 beq _080427EA ldr r1, =gBattleMons movs r0, 0x58 muls r0, r6 adds r1, r0, r1 adds r2, r1, 0 adds r2, 0x21 ldrb r0, [r2] cmp r0, 0xB beq _080427EA adds r1, 0x22 ldrb r0, [r1] cmp r0, 0xB beq _080427EA movs r0, 0xB strb r0, [r2] strb r0, [r1] movs r5, 0x3 _080427EA: ldrh r1, [r4] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _08042816 ldr r1, =gBattleMons movs r0, 0x58 muls r0, r6 adds r1, r0, r1 adds r2, r1, 0 adds r2, 0x21 ldrb r0, [r2] cmp r0, 0xF beq _08042816 adds r1, 0x22 ldrb r0, [r1] cmp r0, 0xF beq _08042816 movs r0, 0xF strb r0, [r2] strb r0, [r1] movs r5, 0x4 _08042816: adds r0, r5, 0 _08042818: add sp, 0x4 pop {r4-r6} pop {r1} bx r1 .pool thumb_func_end castform_switch thumb_func_start ability_something ability_something: @ 8042828 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, =gUnknown_0202420B ldr r1, =gUnknown_0202406C ldrb r0, [r5] ldrb r1, [r1] cmp r0, r1 bcc _08042864 mov r1, r10 strb r1, [r5] _08042864: ldrb r0, [r5] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 bne _08042894 ldr r1, =gUnknown_0202406E ldrb r0, [r5] lsls r0, 1 adds r0, r1 ldrh r1, [r0] movs r0, 0x64 muls r1, r0 ldr r0, =gPlayerParty b _080428A4 .pool _08042894: ldr r1, =gUnknown_0202406E ldrb r0, [r5] lsls r0, 1 adds r0, r1 ldrh r1, [r0] movs r0, 0x64 muls r1, r0 ldr r0, =gEnemyParty _080428A4: adds r7, r1, r0 ldr r5, =gEnemyMonIndex ldr r1, =gUnknown_0202406C ldrb r0, [r5] ldrb r1, [r1] cmp r0, r1 bcc _080428B6 mov r2, r10 strb r2, [r5] _080428B6: ldrb r0, [r5] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 bne _080428E8 ldr r1, =gUnknown_0202406E ldrb r0, [r5] lsls r0, 1 adds r0, r1 ldrh r1, [r0] movs r0, 0x64 muls r1, r0 ldr r0, =gPlayerParty b _080428F8 .pool _080428E8: ldr r1, =gUnknown_0202406E ldrb r0, [r5] lsls r0, 1 adds r0, r1 ldrh r1, [r0] movs r0, 0x64 muls r1, r0 ldr r0, =gEnemyParty _080428F8: adds r5, r1, r0 adds r0, r7, 0 movs r1, 0xB bl GetMonData lsls r0, 16 lsrs r0, 16 str r0, [sp, 0x8] adds r0, r7, 0 movs r1, 0 bl GetMonData str r0, [sp, 0x10] adds r0, r5, 0 movs r1, 0xB bl GetMonData lsls r0, 16 lsrs r0, 16 str r0, [sp, 0xC] adds r0, r5, 0 movs r1, 0 bl GetMonData str r0, [sp, 0x14] ldr r0, =gBattleTypeFlags ldr r0, [r0] movs r1, 0x80 ands r0, r1 cmp r0, 0 beq _0804293A bl _0804443A _0804293A: mov r3, r8 cmp r3, 0 beq _08042958 ldr r0, =gUnknown_0202420A strb r3, [r0] adds r7, r0, 0 b _0804296E .pool _08042958: ldr r2, =gUnknown_0202420A ldr r1, =gBattleMons 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] adds r7, r2, 0 _0804296E: cmp r4, 0 beq _08042980 adds r5, r4, 0 b _08042984 .pool _08042980: ldr r0, =gUnknown_020241EA ldrh r5, [r0] _08042984: ldr r1, =gUnknown_0202449C ldr r0, [r1] ldrb r0, [r0, 0x13] mov r8, r1 cmp r0, 0 beq _080429A0 movs r3, 0x3F ands r3, r0 b _080429AC .pool _080429A0: ldr r1, =gBattleMoves lsls r0, r5, 1 adds r0, r5 lsls r0, 2 adds r0, r1 ldrb r3, [r0, 0x2] _080429AC: ldr r0, [sp, 0x4] cmp r0, 0x13 bls _080429B6 bl _0804441E _080429B6: lsls r0, 2 ldr r1, =_080429C8 adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _080429C8: .4byte _08042A18 .4byte _08042CDC .4byte _08042EF8 .4byte _08042F8C .4byte _080431AC .4byte _08043908 .4byte _08043C6C .4byte _08043CBC .4byte _08043D40 .4byte _08043DC4 .4byte _08043FE4 .4byte _08043E08 .4byte _08044028 .4byte _08044084 .4byte _080440E0 .4byte _080441DC .4byte _08044220 .4byte _0804427C .4byte _080443EC .4byte _08044196 _08042A18: ldr r2, =gUnknown_0202420B ldr r0, =gUnknown_0202406C ldrb r1, [r2] adds r5, r0, 0 ldrb r3, [r5] cmp r1, r3 bcc _08042A2A mov r0, r10 strb r0, [r2] _08042A2A: ldrb r0, [r7] cmp r0, 0x2D bne _08042A32 b _08042BA8 _08042A32: cmp r0, 0x2D bgt _08042A64 cmp r0, 0xD bne _08042A3C b _08042CA4 _08042A3C: cmp r0, 0xD bgt _08042A54 cmp r0, 0x2 bne _08042A46 b _08042B78 _08042A46: bl _0804441E .pool _08042A54: cmp r0, 0x16 bne _08042A5A b _08042C08 _08042A5A: cmp r0, 0x24 bne _08042A60 b _08042C68 _08042A60: bl _0804441E _08042A64: cmp r0, 0x46 bne _08042A6A b _08042BD8 _08042A6A: cmp r0, 0x46 bgt _08042A78 cmp r0, 0x3B bne _08042A74 b _08042C3C _08042A74: bl _0804441E _08042A78: cmp r0, 0x4D bne _08042A7E b _08042CA4 _08042A7E: cmp r0, 0xFF beq _08042A86 bl _0804441E _08042A86: ldr r0, =gBattleTypeFlags ldr r0, [r0] movs r1, 0x80 lsls r1, 17 ands r0, r1 cmp r0, 0 bne _08042B4C bl weather_get_current lsls r0, 24 lsrs r0, 24 subs r0, 0x3 cmp r0, 0xA bhi _08042B4C lsls r0, 2 ldr r1, =_08042AB4 adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _08042AB4: .4byte _08042AE0 .4byte _08042B4C .4byte _08042AE0 .4byte _08042B4C .4byte _08042B4C .4byte _08042B04 .4byte _08042B4C .4byte _08042B4C .4byte _08042B4C .4byte _08042B28 .4byte _08042AE0 _08042AE0: ldr r2, =gBattleWeather ldrh r1, [r2] movs r0, 0x7 ands r0, r1 cmp r0, 0 bne _08042B4C movs r0, 0x5 strh r0, [r2] ldr r1, =gUnknown_02024474 movs r0, 0xA strb r0, [r1, 0x10] mov r2, r10 strb r2, [r1, 0x17] b _08042B42 .pool _08042B04: ldr r3, =gBattleWeather ldrh r1, [r3] movs r2, 0x18 adds r0, r2, 0 ands r0, r1 cmp r0, 0 bne _08042B4C strh r2, [r3] ldr r1, =gUnknown_02024474 movs r0, 0xC strb r0, [r1, 0x10] mov r3, r10 strb r3, [r1, 0x17] b _08042B42 .pool _08042B28: ldr r3, =gBattleWeather ldrh r1, [r3] movs r2, 0x60 adds r0, r2, 0 ands r0, r1 cmp r0, 0 bne _08042B4C strh r2, [r3] ldr r1, =gUnknown_02024474 movs r0, 0xB strb r0, [r1, 0x10] mov r5, r10 strb r5, [r1, 0x17] _08042B42: mov r0, r9 adds r0, 0x1 lsls r0, 24 lsrs r0, 24 mov r9, r0 _08042B4C: mov r0, r9 cmp r0, 0 bne _08042B56 bl _0804443A _08042B56: bl weather_get_current ldr r1, =gUnknown_02024332 strb r0, [r1, 0x5] ldr r0, =gUnknown_082DACE7 bl b_push_move_exec bl _0804441E .pool _08042B78: ldr r2, =gBattleWeather ldrh r1, [r2] movs r0, 0x4 ands r0, r1 cmp r0, 0 beq _08042B88 bl _0804441E _08042B88: movs r0, 0x5 strh r0, [r2] ldr r0, =gUnknown_082DB430 bl b_push_move_exec ldr r0, =gUnknown_02024474 mov r1, r10 strb r1, [r0, 0x17] bl _080443D0 .pool _08042BA8: ldr r2, =gBattleWeather ldrh r1, [r2] movs r0, 0x10 ands r0, r1 cmp r0, 0 beq _08042BB8 bl _0804441E _08042BB8: movs r0, 0x18 strh r0, [r2] ldr r0, =gUnknown_082DB470 bl b_push_move_exec ldr r0, =gUnknown_02024474 mov r2, r10 strb r2, [r0, 0x17] bl _080443D0 .pool _08042BD8: ldr r2, =gBattleWeather ldrh r1, [r2] movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _08042BE8 bl _0804441E _08042BE8: movs r0, 0x60 strh r0, [r2] ldr r0, =gUnknown_082DB52A bl b_push_move_exec ldr r0, =gUnknown_02024474 mov r3, r10 strb r3, [r0, 0x17] bl _080443D0 .pool _08042C08: ldr r0, =gUnknown_0202437C mov r5, r10 lsls r2, r5, 2 adds r1, r2, r5 lsls r1, 2 adds r3, r1, r0 ldrb r0, [r3] lsls r0, 28 cmp r0, 0 bge _08042C20 bl _0804441E _08042C20: ldr r1, =gUnknown_020242AC 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 _08042C92 .pool _08042C3C: mov r0, r10 bl castform_switch lsls r0, 24 lsrs r0, 24 mov r9, r0 cmp r0, 0 bne _08042C50 bl _0804443A _08042C50: ldr r0, =gUnknown_082DB4A9 bl b_push_move_exec ldr r0, =gUnknown_02024474 mov r1, r10 strb r1, [r0, 0x17] bl _080442E2 .pool _08042C68: ldr r0, =gUnknown_0202437C mov r3, r10 lsls r2, r3, 2 adds r1, r2, r3 lsls r1, 2 adds r3, r1, r0 ldrb r0, [r3] lsls r0, 27 cmp r0, 0 bge _08042C80 bl _0804441E _08042C80: ldr r1, =gUnknown_020242AC 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 _08042C92: orrs r0, r1 strb r0, [r3] bl _0804441E .pool _08042CA4: movs r6, 0 ldrb r5, [r5] cmp r6, r5 bcc _08042CB0 bl _0804441E _08042CB0: adds r0, r6, 0 bl castform_switch lsls r0, 24 lsrs r0, 24 mov r9, r0 cmp r0, 0 beq _08042CC4 bl _080442D8 _08042CC4: adds r0, r6, 0x1 lsls r0, 24 lsrs r6, r0, 24 ldr r0, =gUnknown_0202406C ldrb r0, [r0] cmp r6, r0 bcc _08042CB0 bl _0804441E .pool _08042CDC: ldr r5, =gBattleMons mov r8, r5 movs r0, 0x58 mov r6, r10 muls r6, r0 adds r4, r6, r5 ldrh r0, [r4, 0x28] cmp r0, 0 bne _08042CF2 bl _0804441E _08042CF2: ldr r0, =gUnknown_0202420B mov r1, r10 strb r1, [r0] ldrb r5, [r7] cmp r5, 0x2C beq _08042D22 cmp r5, 0x2C bgt _08042D14 cmp r5, 0x3 bne _08042D08 b _08042E84 _08042D08: bl _0804441E .pool _08042D14: cmp r5, 0x36 bne _08042D1A b _08042ED0 _08042D1A: cmp r5, 0x3D beq _08042DA0 bl _0804441E _08042D22: movs r0, 0 str r0, [sp] movs r0, 0x13 movs r1, 0 movs r2, 0xD movs r3, 0 bl ability_something lsls r0, 24 lsrs r0, 24 cmp r0, 0 beq _08042D3E bl _0804441E _08042D3E: str r0, [sp] movs r0, 0x13 movs r1, 0 movs r2, 0x4D movs r3, 0 bl ability_something lsls r0, 24 cmp r0, 0 beq _08042D56 bl _0804441E _08042D56: ldr r0, =gBattleWeather ldrh r1, [r0] movs r0, 0x7 ands r0, r1 cmp r0, 0 bne _08042D66 bl _0804441E _08042D66: ldrh r0, [r4, 0x2C] ldrh r2, [r4, 0x28] cmp r0, r2 bhi _08042D72 bl _0804441E _08042D72: strb r5, [r7] ldr r0, =gUnknown_082DB45C bl b_push_move_exec ldr r1, =gBattleMoveDamage ldrh r0, [r4, 0x2C] lsrs r0, 4 str r0, [r1] cmp r0, 0 bne _08042D8A movs r0, 0x1 str r0, [r1] _08042D8A: ldr r0, [r1] negs r0, r0 str r0, [r1] bl _080443D0 .pool _08042DA0: mov r0, r8 adds r0, 0x4C adds r5, r6, r0 ldrb r0, [r5] cmp r0, 0 bne _08042DB0 bl _0804441E _08042DB0: bl Random lsls r0, 16 lsrs r0, 16 movs r1, 0x3 bl __umodsi3 lsls r0, 16 lsrs r4, r0, 16 cmp r4, 0 beq _08042DCA bl _0804441E _08042DCA: ldr r0, [r5] movs r1, 0x88 ands r0, r1 cmp r0, 0 beq _08042DDC ldr r0, =gUnknown_02022F58 ldr r1, =gUnknown_0831BC70 bl StringCopy _08042DDC: ldr r0, [r5] movs r1, 0x7 ands r0, r1 cmp r0, 0 beq _08042DEE ldr r0, =gUnknown_02022F58 ldr r1, =gUnknown_0831BC78 bl StringCopy _08042DEE: ldr r0, [r5] movs r1, 0x40 ands r0, r1 cmp r0, 0 beq _08042E00 ldr r0, =gUnknown_02022F58 ldr r1, =gUnknown_0831BC80 bl StringCopy _08042E00: ldr r0, [r5] movs r1, 0x10 ands r0, r1 cmp r0, 0 beq _08042E12 ldr r0, =gUnknown_02022F58 ldr r1, =gUnknown_0831BC88 bl StringCopy _08042E12: ldr r0, [r5] movs r1, 0x20 ands r0, r1 cmp r0, 0 beq _08042E24 ldr r0, =gUnknown_02022F58 ldr r1, =gUnknown_0831BC90 bl StringCopy _08042E24: str r4, [r5] mov r1, r8 adds r1, 0x50 adds r1, r6, r1 ldr r0, [r1] ldr r2, =0xf7ffffff ands r0, r2 str r0, [r1] ldr r0, =gUnknown_02024474 ldr r4, =gUnknown_02024064 mov r3, r10 strb r3, [r4] strb r3, [r0, 0x17] ldr r0, =gUnknown_082DB484 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 _080443D0 .pool _08042E84: ldrb r2, [r4, 0x1B] movs r0, 0x1B ldrsb r0, [r4, r0] cmp r0, 0xB ble _08042E92 bl _0804441E _08042E92: ldr r0, =gUnknown_020242BC mov r5, r10 lsls r1, r5, 3 subs r1, r5 lsls r1, 2 adds r1, r0 ldrb r0, [r1, 0x16] cmp r0, 0x2 bne _08042EA8 bl _0804441E _08042EA8: adds r0, r2, 0x1 movs r1, 0 strb r0, [r4, 0x1B] ldr r4, =gUnknown_02024474 movs r0, 0x11 strb r0, [r4, 0x10] strb r1, [r4, 0x11] ldr r0, =gUnknown_082DB444 bl b_push_move_exec strb r5, [r4, 0x17] bl _080443D0 .pool _08042ED0: ldr r2, =gUnknown_020242BC 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 _0804441E .pool _08042EF8: ldrb r0, [r7] cmp r0, 0x2B beq _08042F02 bl _0804441E _08042F02: movs r4, 0 ldr r0, =gUnknown_0831BCF8 ldrh r2, [r0] ldr r3, =0x0000ffff adds r1, r0, 0 cmp r2, r3 bne _08042F14 bl _0804441E _08042F14: cmp r2, r5 beq _08042F2C adds r2, r1, 0 _08042F1A: adds r2, 0x2 adds r4, 0x1 ldrh r0, [r2] cmp r0, r3 bne _08042F28 bl _0804441E _08042F28: cmp r0, r5 bne _08042F1A _08042F2C: lsls r0, r4, 1 adds r0, r1 ldrh r1, [r0] ldr r0, =0x0000ffff cmp r1, r0 bne _08042F3C bl _0804441E _08042F3C: ldr r1, =gBattleMons ldr r0, =gUnknown_0202420B 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 _08042F62 ldr r0, =gUnknown_02024280 ldr r1, [r0] movs r2, 0x80 lsls r2, 4 orrs r1, r2 str r1, [r0] _08042F62: ldr r1, =gUnknown_02024214 ldr r0, =gUnknown_082DB61F str r0, [r1] movs r0, 0x1 mov r9, r0 bl _08044424 .pool _08042F8C: cmp r5, 0 bne _08042F94 bl _0804441E _08042F94: ldrb r0, [r7] cmp r0, 0xB beq _08043004 cmp r0, 0xB bgt _08042FA4 cmp r0, 0xA beq _08042FAA b _08043126 _08042FA4: cmp r0, 0x12 beq _0804305C b _08043126 _08042FAA: cmp r3, 0xD beq _08042FB0 b _08043126 _08042FB0: ldr r0, =gBattleMoves lsls r1, r5, 1 adds r1, r5 lsls r1, 2 adds r1, r0 ldrb r0, [r1, 0x1] cmp r0, 0 bne _08042FC2 b _08043126 _08042FC2: ldr r1, =gUnknown_0202433C ldr r0, =gUnknown_0202420B ldrb r0, [r0] lsls r0, 4 adds r0, r1 ldrb r0, [r0, 0x2] lsls r0, 28 cmp r0, 0 bge _08042FF0 ldr r1, =gUnknown_02024214 ldr r0, =gUnknown_082DB56F b _08042FF4 .pool _08042FF0: ldr r1, =gUnknown_02024214 ldr r0, =gUnknown_082DB56E _08042FF4: str r0, [r1] movs r1, 0x1 b _08043124 .pool _08043004: cmp r3, 0xB beq _0804300A b _08043126 _0804300A: ldr r0, =gBattleMoves lsls r1, r5, 1 adds r1, r5 lsls r1, 2 adds r1, r0 ldrb r0, [r1, 0x1] cmp r0, 0 bne _0804301C b _08043126 _0804301C: ldr r1, =gUnknown_0202433C ldr r0, =gUnknown_0202420B ldrb r0, [r0] lsls r0, 4 adds r0, r1 ldrb r0, [r0, 0x2] lsls r0, 28 cmp r0, 0 bge _08043048 ldr r1, =gUnknown_02024214 ldr r0, =gUnknown_082DB56F b _0804304C .pool _08043048: ldr r1, =gUnknown_02024214 ldr r0, =gUnknown_082DB56E _0804304C: str r0, [r1] movs r2, 0x1 mov r9, r2 b _08043126 .pool _0804305C: cmp r3, 0xA bne _08043126 ldr r1, =gBattleMons movs r0, 0x58 mov r3, r10 muls r3, r0 adds r0, r3, 0 adds r1, 0x4C adds r0, r1 ldr r0, [r0] movs r1, 0x20 ands r0, r1 cmp r0, 0 bne _08043126 ldr r2, =gUnknown_020244A8 ldr r0, [r2] ldr r0, [r0, 0x4] mov r5, r10 lsls r1, r5, 2 adds r0, r1 ldr r3, [r0] movs r4, 0x1 ands r3, r4 adds r5, r1, 0 cmp r3, 0 bne _080430EC ldr r0, =gUnknown_02024332 strb r3, [r0, 0x5] ldr r1, =gUnknown_0202433C ldr r0, =gUnknown_0202420B ldrb r0, [r0] lsls r0, 4 adds r0, r1 ldrb r0, [r0, 0x2] lsls r0, 28 cmp r0, 0 bge _080430C8 ldr r1, =gUnknown_02024214 ldr r0, =gUnknown_082DB5A8 b _080430CC .pool _080430C8: ldr r1, =gUnknown_02024214 ldr r0, =gUnknown_082DB5A7 _080430CC: str r0, [r1] ldr r0, [r2] ldr r1, [r0, 0x4] adds r1, r5 ldr r0, [r1] movs r2, 0x1 orrs r0, r2 str r0, [r1] movs r0, 0x2 mov r9, r0 b _08043126 .pool _080430EC: ldr r0, =gUnknown_02024332 strb r4, [r0, 0x5] ldr r1, =gUnknown_0202433C ldr r0, =gUnknown_0202420B ldrb r0, [r0] lsls r0, 4 adds r0, r1 ldrb r0, [r0, 0x2] lsls r0, 28 cmp r0, 0 bge _0804311C ldr r1, =gUnknown_02024214 ldr r0, =gUnknown_082DB5A8 b _08043120 .pool _0804311C: ldr r1, =gUnknown_02024214 ldr r0, =gUnknown_082DB5A7 _08043120: str r0, [r1] movs r1, 0x2 _08043124: mov r9, r1 _08043126: mov r2, r9 cmp r2, 0x1 beq _08043130 bl _0804441E _08043130: ldr r1, =gBattleMons movs r0, 0x58 mov r3, r10 muls r3, r0 adds r0, r3, 0 adds r1, r0, r1 ldrh r0, [r1, 0x2C] ldrh r5, [r1, 0x28] cmp r0, r5 bne _0804318C ldr r1, =gUnknown_0202433C ldr r0, =gUnknown_0202420B ldrb r0, [r0] lsls r0, 4 adds r0, r1 ldrb r0, [r0, 0x2] lsls r0, 28 cmp r0, 0 bge _08043178 ldr r1, =gUnknown_02024214 ldr r0, =gUnknown_082DB592 str r0, [r1] bl _0804441E .pool _08043178: ldr r1, =gUnknown_02024214 ldr r0, =gUnknown_082DB591 str r0, [r1] bl _0804441E .pool _0804318C: ldr r2, =gBattleMoveDamage ldrh r0, [r1, 0x2C] lsrs r0, 2 str r0, [r2] cmp r0, 0 bne _0804319C mov r0, r9 str r0, [r2] _0804319C: ldr r0, [r2] negs r0, r0 str r0, [r2] bl _0804441E .pool _080431AC: ldrb r0, [r7] subs r0, 0x9 cmp r0, 0x2F bls _080431B8 bl _0804441E _080431B8: lsls r0, 2 ldr r1, =_080431C8 adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _080431C8: .4byte _080435E4 .4byte _0804441E .4byte _0804441E .4byte _0804441E .4byte _0804441E .4byte _0804441E .4byte _0804441E .4byte _08043288 .4byte _0804441E .4byte _0804441E .4byte _0804441E .4byte _0804441E .4byte _0804441E .4byte _0804441E .4byte _0804441E .4byte _08043350 .4byte _0804441E .4byte _0804441E .4byte _08043410 .4byte _0804441E .4byte _0804441E .4byte _0804441E .4byte _0804441E .4byte _0804441E .4byte _0804441E .4byte _0804441E .4byte _0804441E .4byte _0804441E .4byte _0804441E .4byte _08043508 .4byte _0804441E .4byte _0804441E .4byte _0804441E .4byte _0804441E .4byte _0804441E .4byte _0804441E .4byte _0804441E .4byte _0804441E .4byte _0804441E .4byte _0804441E .4byte _080436C0 .4byte _0804441E .4byte _0804441E .4byte _0804441E .4byte _0804441E .4byte _0804441E .4byte _0804441E .4byte _0804379C _08043288: ldr r0, =gBattleMoveFlags ldrb r1, [r0] movs r0, 0x29 ands r0, r1 cmp r0, 0 beq _08043298 bl _0804441E _08043298: cmp r5, 0xA5 bne _080432A0 bl _0804441E _080432A0: ldr r0, =gBattleMoves lsls r1, r5, 1 adds r1, r5 lsls r1, 2 adds r1, r0 ldrb r0, [r1, 0x1] cmp r0, 0 bne _080432B4 bl _0804441E _080432B4: ldr r2, =gUnknown_0202437C ldr r0, =gEnemyMonIndex 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 _080432DC adds r0, r2, 0 adds r0, 0xC adds r0, r1, r0 ldr r0, [r0] cmp r0, 0 bne _080432DC bl _0804441E _080432DC: ldr r1, =gBattleMons movs r0, 0x58 mov r2, r10 muls r2, r0 adds r0, r2, 0 adds r1, r0, r1 adds r4, r1, 0 adds r4, 0x21 ldrb r0, [r4] cmp r0, r3 bne _080432F6 bl _0804441E _080432F6: adds r2, r1, 0 adds r2, 0x22 ldrb r0, [r2] cmp r0, r3 bne _08043304 bl _0804441E _08043304: ldrh r0, [r1, 0x28] cmp r0, 0 bne _0804330E bl _0804441E _0804330E: strb r3, [r4] strb r3, [r2] ldr r1, =gUnknown_02022F58 movs r0, 0xFD strb r0, [r1] movs r0, 0x3 strb r0, [r1, 0x1] strb r3, [r1, 0x2] movs r0, 0xFF strb r0, [r1, 0x3] bl b_movescr_stack_push_cursor ldr r1, =gUnknown_02024214 ldr r0, =gUnknown_082DB64D str r0, [r1] bl _080443D0 .pool _08043350: ldr r0, =gBattleMoveFlags ldrb r1, [r0] movs r0, 0x29 ands r0, r1 cmp r0, 0 beq _08043360 bl _0804441E _08043360: ldr r1, =gBattleMons ldr r0, =gUnknown_0202420B ldrb r2, [r0] movs r0, 0x58 muls r0, r2 adds r3, r0, r1 ldrh r0, [r3, 0x28] cmp r0, 0 bne _08043376 bl _0804441E _08043376: ldr r0, =gUnknown_0202433C lsls r1, r2, 4 adds r1, r0 ldrb r0, [r1, 0x1] lsls r0, 31 cmp r0, 0 beq _08043388 bl _0804441E _08043388: ldr r2, =gUnknown_0202437C ldr r0, =gEnemyMonIndex 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 _080433B0 adds r0, r2, 0 adds r0, 0xC adds r0, r1, r0 ldr r0, [r0] cmp r0, 0 bne _080433B0 bl _0804441E _080433B0: ldr r1, =gBattleMoves lsls r0, r5, 1 adds r0, r5 lsls r0, 2 adds r0, r1 ldrb r1, [r0, 0x8] movs r2, 0x1 adds r0, r2, 0 ands r0, r1 cmp r0, 0 bne _080433CA bl _0804441E _080433CA: ldr r1, =gBattleMoveDamage ldrh r0, [r3, 0x2C] lsrs r0, 4 str r0, [r1] cmp r0, 0 bne _080433D8 str r2, [r1] _080433D8: bl b_movescr_stack_push_cursor ldr r1, =gUnknown_02024214 ldr r0, =gUnknown_082DB654 str r0, [r1] bl _080443D0 .pool _08043410: ldr r0, =gBattleMoveFlags ldrb r1, [r0] movs r0, 0x29 ands r0, r1 cmp r0, 0 beq _08043420 bl _0804441E _08043420: ldr r1, =gBattleMons ldr r0, =gUnknown_0202420B ldrb r2, [r0] movs r0, 0x58 muls r0, r2 adds r0, r1 ldrh r0, [r0, 0x28] cmp r0, 0 bne _08043436 bl _0804441E _08043436: ldr r0, =gUnknown_0202433C lsls r1, r2, 4 adds r1, r0 ldrb r0, [r1, 0x1] lsls r0, 31 cmp r0, 0 beq _08043448 bl _0804441E _08043448: ldr r2, =gUnknown_0202437C ldr r0, =gEnemyMonIndex 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 _08043470 adds r0, r2, 0 adds r0, 0xC adds r0, r1, r0 ldr r0, [r0] cmp r0, 0 bne _08043470 bl _0804441E _08043470: ldr r1, =gBattleMoves lsls r0, r5, 1 adds r0, r5 lsls r0, 2 adds r0, r1 ldrb r1, [r0, 0x8] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _08043488 bl _0804441E _08043488: bl Random lsls r0, 16 lsrs r0, 16 movs r1, 0xA bl __umodsi3 lsls r0, 16 cmp r0, 0 beq _080434A0 bl _0804441E _080434A0: ldr r5, =gUnknown_02024332 movs r4, 0x3 _080434A4: bl Random ands r0, r4 strb r0, [r5, 0x3] cmp r0, 0 beq _080434A4 ldr r1, =gUnknown_02024332 ldrb r0, [r1, 0x3] cmp r0, 0x3 bne _080434BC adds r0, 0x2 strb r0, [r1, 0x3] _080434BC: ldrb r0, [r1, 0x3] adds r0, 0x40 strb r0, [r1, 0x3] bl b_movescr_stack_push_cursor ldr r1, =gUnknown_02024214 ldr r0, =gUnknown_082DB67C str r0, [r1] ldr r2, =gUnknown_02024280 ldr r0, [r2] movs r1, 0x80 lsls r1, 6 orrs r0, r1 str r0, [r2] bl _080443D0 .pool _08043508: ldr r0, =gBattleMoveFlags ldrb r1, [r0] movs r0, 0x29 ands r0, r1 cmp r0, 0 beq _08043518 bl _0804441E _08043518: ldr r1, =gBattleMons ldr r0, =gUnknown_0202420B ldrb r2, [r0] movs r0, 0x58 muls r0, r2 adds r0, r1 ldrh r0, [r0, 0x28] cmp r0, 0 bne _0804352E bl _0804441E _0804352E: ldr r0, =gUnknown_0202433C lsls r1, r2, 4 adds r1, r0 ldrb r0, [r1, 0x1] lsls r0, 31 cmp r0, 0 beq _08043540 bl _0804441E _08043540: ldr r2, =gUnknown_0202437C ldr r0, =gEnemyMonIndex 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 _08043568 adds r0, r2, 0 adds r0, 0xC adds r0, r1, r0 ldr r0, [r0] cmp r0, 0 bne _08043568 bl _0804441E _08043568: ldr r1, =gBattleMoves lsls r0, r5, 1 adds r0, r5 lsls r0, 2 adds r0, r1 ldrb r1, [r0, 0x8] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _08043580 bl _0804441E _08043580: bl Random lsls r0, 16 lsrs r0, 16 movs r1, 0x3 bl __umodsi3 lsls r0, 16 cmp r0, 0 beq _08043598 bl _0804441E _08043598: ldr r1, =gUnknown_02024332 movs r0, 0x42 strb r0, [r1, 0x3] bl b_movescr_stack_push_cursor ldr r1, =gUnknown_02024214 ldr r0, =gUnknown_082DB67C str r0, [r1] ldr r2, =gUnknown_02024280 ldr r0, [r2] movs r1, 0x80 lsls r1, 6 orrs r0, r1 str r0, [r2] bl _080443D0 .pool _080435E4: ldr r0, =gBattleMoveFlags ldrb r1, [r0] movs r0, 0x29 ands r0, r1 cmp r0, 0 beq _080435F4 bl _0804441E _080435F4: ldr r1, =gBattleMons ldr r0, =gUnknown_0202420B ldrb r2, [r0] movs r0, 0x58 muls r0, r2 adds r0, r1 ldrh r0, [r0, 0x28] cmp r0, 0 bne _0804360A bl _0804441E _0804360A: ldr r0, =gUnknown_0202433C lsls r1, r2, 4 adds r1, r0 ldrb r0, [r1, 0x1] lsls r0, 31 cmp r0, 0 beq _0804361C bl _0804441E _0804361C: ldr r2, =gUnknown_0202437C ldr r0, =gEnemyMonIndex 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 _08043644 adds r0, r2, 0 adds r0, 0xC adds r0, r1, r0 ldr r0, [r0] cmp r0, 0 bne _08043644 bl _0804441E _08043644: ldr r1, =gBattleMoves lsls r0, r5, 1 adds r0, r5 lsls r0, 2 adds r0, r1 ldrb r1, [r0, 0x8] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _0804365C bl _0804441E _0804365C: bl Random lsls r0, 16 lsrs r0, 16 movs r1, 0x3 bl __umodsi3 lsls r0, 16 cmp r0, 0 beq _08043674 bl _0804441E _08043674: ldr r1, =gUnknown_02024332 movs r0, 0x45 strb r0, [r1, 0x3] bl b_movescr_stack_push_cursor ldr r1, =gUnknown_02024214 ldr r0, =gUnknown_082DB67C str r0, [r1] ldr r2, =gUnknown_02024280 ldr r0, [r2] movs r1, 0x80 lsls r1, 6 orrs r0, r1 str r0, [r2] bl _080443D0 .pool _080436C0: ldr r0, =gBattleMoveFlags ldrb r1, [r0] movs r0, 0x29 ands r0, r1 cmp r0, 0 beq _080436D0 bl _0804441E _080436D0: ldr r1, =gBattleMons ldr r0, =gUnknown_0202420B ldrb r2, [r0] movs r0, 0x58 muls r0, r2 adds r0, r1 ldrh r0, [r0, 0x28] cmp r0, 0 bne _080436E6 bl _0804441E _080436E6: ldr r0, =gUnknown_0202433C lsls r1, r2, 4 adds r1, r0 ldrb r0, [r1, 0x1] lsls r0, 31 cmp r0, 0 beq _080436F8 bl _0804441E _080436F8: ldr r1, =gBattleMoves lsls r0, r5, 1 adds r0, r5 lsls r0, 2 adds r0, r1 ldrb r1, [r0, 0x8] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _08043710 bl _0804441E _08043710: ldr r2, =gUnknown_0202437C ldr r0, =gEnemyMonIndex 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 _08043738 adds r0, r2, 0 adds r0, 0xC adds r0, r1, r0 ldr r0, [r0] cmp r0, 0 bne _08043738 bl _0804441E _08043738: bl Random lsls r0, 16 lsrs r0, 16 movs r1, 0x3 bl __umodsi3 lsls r0, 16 cmp r0, 0 beq _08043750 bl _0804441E _08043750: ldr r1, =gUnknown_02024332 movs r0, 0x43 strb r0, [r1, 0x3] bl b_movescr_stack_push_cursor ldr r1, =gUnknown_02024214 ldr r0, =gUnknown_082DB67C str r0, [r1] ldr r2, =gUnknown_02024280 ldr r0, [r2] movs r1, 0x80 lsls r1, 6 orrs r0, r1 str r0, [r2] bl _080443D0 .pool _0804379C: ldr r0, =gBattleMoveFlags ldrb r1, [r0] movs r0, 0x29 ands r0, r1 cmp r0, 0 beq _080437AC bl _0804441E _080437AC: ldr r6, =gBattleMons ldr r3, =gUnknown_0202420B mov r8, r3 ldrb r1, [r3] movs r7, 0x58 adds r0, r1, 0 muls r0, r7 adds r0, r6 ldrh r0, [r0, 0x28] cmp r0, 0 bne _080437C6 bl _0804441E _080437C6: ldr r0, =gUnknown_0202433C lsls r1, 4 adds r1, r0 ldrb r0, [r1, 0x1] lsls r0, 31 cmp r0, 0 beq _080437D8 bl _0804441E _080437D8: ldr r1, =gBattleMoves lsls r0, r5, 1 adds r0, r5 lsls r0, 2 adds r0, r1 ldrb r1, [r0, 0x8] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _080437F0 bl _0804441E _080437F0: ldr r3, =gUnknown_0202437C ldr r5, =gEnemyMonIndex ldrb r1, [r5] 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 _08043818 adds r0, r3, 0 adds r0, 0xC adds r0, r2, r0 ldr r0, [r0] cmp r0, 0 bne _08043818 bl _0804441E _08043818: adds r0, r1, 0 muls r0, r7 adds r0, r6 ldrh r0, [r0, 0x28] cmp r0, 0 bne _08043828 bl _0804441E _08043828: bl Random lsls r0, 16 lsrs r0, 16 movs r1, 0x3 bl __umodsi3 lsls r0, 16 cmp r0, 0 beq _08043840 bl _0804441E _08043840: mov r1, r8 ldrb r0, [r1] muls r0, r7 adds r0, r6 adds r0, 0x20 ldrb r0, [r0] cmp r0, 0xC bne _08043854 bl _0804441E _08043854: 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 _08043872 bl _0804441E _08043872: mov r2, r8 ldrb r0, [r2] muls r0, r7 adds r4, r6, 0 adds r4, 0x50 adds r0, r4 ldr r0, [r0] movs r1, 0xF0 lsls r1, 12 ands r0, r1 cmp r0, 0 beq _0804388E bl _0804441E _0804388E: ldr r0, [sp, 0x8] ldr r1, [sp, 0x10] bl pokemon_species_get_gender_info lsls r0, 24 lsrs r0, 24 cmp r0, 0xFF bne _080438A2 bl _0804441E _080438A2: ldr r0, [sp, 0xC] ldr r1, [sp, 0x14] bl pokemon_species_get_gender_info lsls r0, 24 lsrs r0, 24 cmp r0, 0xFF bne _080438B6 bl _0804441E _080438B6: mov r3, r8 ldrb r0, [r3] adds r2, r0, 0 muls r2, r7 adds r2, r4 ldr r1, =gBitTable ldrb r0, [r5] 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, =gUnknown_02024214 ldr r0, =gUnknown_082DB66F str r0, [r1] bl _080443D0 .pool _08043908: movs r5, 0 mov r10, r5 ldr r0, =gUnknown_0202406C ldrb r0, [r0] cmp r10, r0 bcc _08043918 bl _0804441E _08043918: ldr r1, =gBattleMons 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 _08043932 b _08043B96 _08043932: lsls r0, 2 ldr r1, =_08043948 adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _08043948: .4byte _08043AAC .4byte _08043B96 .4byte _08043B96 .4byte _08043B96 .4byte _08043B96 .4byte _08043B70 .4byte _08043B96 .4byte _08043B96 .4byte _08043AD4 .4byte _08043B96 .4byte _08043A50 .4byte _08043B96 .4byte _08043B96 .4byte _08043A7C .4byte _08043B96 .4byte _08043B96 .4byte _08043B96 .4byte _08043B96 .4byte _08043B96 .4byte _08043B96 .4byte _08043B96 .4byte _08043B96 .4byte _08043B96 .4byte _08043B96 .4byte _08043B96 .4byte _08043B96 .4byte _08043B96 .4byte _08043B96 .4byte _08043B96 .4byte _08043B96 .4byte _08043B96 .4byte _08043B96 .4byte _08043B96 .4byte _08043B40 .4byte _08043B10 .4byte _08043B96 .4byte _08043B96 .4byte _08043B96 .4byte _08043B96 .4byte _08043B96 .4byte _08043B96 .4byte _08043B96 .4byte _08043B96 .4byte _08043B96 .4byte _08043B96 .4byte _08043B96 .4byte _08043B96 .4byte _08043B96 .4byte _08043B96 .4byte _08043B96 .4byte _08043B96 .4byte _08043B96 .4byte _08043B96 .4byte _08043B96 .4byte _08043B96 .4byte _08043B96 .4byte _08043B96 .4byte _08043B96 .4byte _08043B96 .4byte _08043B96 .4byte _08043B96 .4byte _08043B96 .4byte _08043B96 .4byte _08043B96 .4byte _08043B96 .4byte _08043AD4 _08043A50: 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, =0x00000f88 ands r0, r1 cmp r0, 0 bne _08043A6A b _08043B96 _08043A6A: ldr r0, =gUnknown_02022F58 ldr r1, =gUnknown_0831BC70 b _08043B5C .pool _08043A7C: 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 _08043A96 b _08043B96 _08043A96: ldr r0, =gUnknown_02022F58 ldr r1, =gUnknown_0831BC98 bl StringCopy movs r2, 0x2 mov r9, r2 b _08043B9C .pool _08043AAC: 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 _08043B96 ldr r0, =gUnknown_02022F58 ldr r1, =gUnknown_0831BC80 b _08043B5C .pool _08043AD4: 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 _08043B96 adds r2, 0x50 adds r2, r3, r2 ldr r0, [r2] ldr r1, =0xf7ffffff ands r0, r1 str r0, [r2] ldr r0, =gUnknown_02022F58 ldr r1, =gUnknown_0831BC78 bl StringCopy movs r0, 0x1 mov r9, r0 b _08043B9C .pool _08043B10: 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 _08043B96 ldr r0, =gUnknown_02022F58 ldr r1, =gUnknown_0831BC88 bl StringCopy movs r2, 0x1 mov r9, r2 b _08043B9C .pool _08043B40: 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 _08043B96 ldr r0, =gUnknown_02022F58 ldr r1, =gUnknown_0831BC90 _08043B5C: bl StringCopy movs r5, 0x1 mov r9, r5 b _08043B9C .pool _08043B70: 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 _08043B96 ldr r0, =gUnknown_02022F58 ldr r1, =gUnknown_0831BCA0 bl StringCopy movs r2, 0x3 mov r9, r2 _08043B96: mov r3, r9 cmp r3, 0 beq _08043C50 _08043B9C: mov r5, r9 cmp r5, 0x2 beq _08043BD0 cmp r5, 0x2 bgt _08043BB4 cmp r5, 0x1 beq _08043BBC b _08043BFC .pool _08043BB4: mov r0, r9 cmp r0, 0x3 beq _08043BE8 b _08043BFC _08043BBC: ldr r1, =gBattleMons movs r0, 0x58 mov r2, r10 muls r2, r0 adds r1, 0x4C adds r2, r1 movs r0, 0 b _08043BFA .pool _08043BD0: ldr r1, =gBattleMons 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 _08043BF8 .pool _08043BE8: ldr r1, =gBattleMons movs r0, 0x58 mov r2, r10 muls r2, r0 adds r1, 0x50 adds r2, r1 ldr r0, [r2] ldr r1, =0xfff0ffff _08043BF8: ands r0, r1 _08043BFA: str r0, [r2] _08043BFC: bl b_movescr_stack_push_cursor ldr r1, =gUnknown_02024214 ldr r0, =gUnknown_082DB68C str r0, [r1] ldr r0, =gUnknown_02024474 mov r1, r10 strb r1, [r0, 0x17] ldr r4, =gUnknown_02024064 strb r1, [r4] ldrb r1, [r4] movs r0, 0x58 muls r0, r1 ldr r1, =gUnknown_020240D0 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 _0804443A .pool _08043C50: mov r0, r10 adds r0, 0x1 lsls r0, 24 lsrs r0, 24 mov r10, r0 ldr r0, =gUnknown_0202406C ldrb r0, [r0] cmp r10, r0 bcs _08043C64 b _08043918 _08043C64: bl _0804441E .pool _08043C6C: movs r2, 0 mov r10, r2 ldr r0, =gUnknown_0202406C ldrb r0, [r0] cmp r10, r0 bcc _08043C7A b _0804441E _08043C7A: ldr r4, =gBattleMons _08043C7C: movs r0, 0x58 mov r3, r10 muls r3, r0 adds r0, r3, 0 adds r0, r4 adds r0, 0x20 ldrb r0, [r0] cmp r0, 0x3B bne _08043CA0 mov r0, r10 bl castform_switch lsls r0, 24 lsrs r0, 24 mov r9, r0 cmp r0, 0 beq _08043CA0 b _080442FC _08043CA0: mov r0, r10 adds r0, 0x1 lsls r0, 24 lsrs r0, 24 mov r10, r0 ldr r0, =gUnknown_0202406C ldrb r0, [r0] cmp r10, r0 bcc _08043C7C b _0804441E .pool _08043CBC: ldrb r0, [r7] cmp r0, 0x1C beq _08043CC4 b _0804441E _08043CC4: ldr r4, =gUnknown_02024280 ldr r1, [r4] movs r0, 0x80 lsls r0, 7 ands r0, r1 cmp r0, 0 bne _08043CD4 b _0804441E _08043CD4: ldr r0, =0xffffbfff ands r1, r0 str r1, [r4] mov r5, r8 ldr r1, [r5] adds r1, 0xB2 ldrb r2, [r1] movs r0, 0x3F ands r0, r2 strb r0, [r1] ldr r0, [r5] adds r1, r0, 0 adds r1, 0xB2 ldrb r0, [r1] cmp r0, 0x6 bne _08043CF8 movs r0, 0x2 strb r0, [r1] _08043CF8: ldr r1, =gUnknown_02024332 mov r2, r8 ldr r0, [r2] adds r0, 0xB2 ldrb r0, [r0] adds r0, 0x40 strb r0, [r1, 0x3] ldr r1, =gUnknown_02024474 ldr r0, =gEnemyMonIndex ldrb r0, [r0] strb r0, [r1, 0x17] bl b_movescr_stack_push_cursor ldr r1, =gUnknown_02024214 ldr r0, =gUnknown_082DB67F str r0, [r1] ldr r0, [r4] movs r1, 0x80 lsls r1, 6 orrs r0, r1 str r0, [r4] b _080443D0 .pool _08043D40: ldrb r0, [r7] cmp r0, 0x1C beq _08043D48 b _0804441E _08043D48: ldr r4, =gUnknown_02024280 ldr r1, [r4] movs r0, 0x80 lsls r0, 7 ands r0, r1 cmp r0, 0 bne _08043D58 b _0804441E _08043D58: ldr r0, =0xffffbfff ands r1, r0 str r1, [r4] mov r3, r8 ldr r1, [r3] adds r1, 0xB2 ldrb r2, [r1] movs r0, 0x3F ands r0, r2 strb r0, [r1] ldr r0, [r3] adds r1, r0, 0 adds r1, 0xB2 ldrb r0, [r1] cmp r0, 0x6 bne _08043D7C movs r0, 0x2 strb r0, [r1] _08043D7C: ldr r1, =gUnknown_02024332 mov r3, r8 ldr r0, [r3] adds r0, 0xB2 ldrb r0, [r0] strb r0, [r1, 0x3] ldr r1, =gUnknown_02024474 ldr r0, =gUnknown_0202420B ldrb r0, [r0] strb r0, [r1, 0x17] bl b_movescr_stack_push_cursor ldr r1, =gUnknown_02024214 ldr r0, =gUnknown_082DB67F str r0, [r1] ldr r0, [r4] movs r1, 0x80 lsls r1, 6 orrs r0, r1 str r0, [r4] b _080443D0 .pool _08043DC4: movs r4, 0 ldr r0, =gUnknown_0202406C ldrb r1, [r0] cmp r4, r1 blt _08043DD0 b _0804441E _08043DD0: ldr r0, =gBattleMons adds r5, r1, 0 ldr r2, =gUnknown_020242AC adds r3, r0, 0 adds r3, 0x20 movs r6, 0x80 lsls r6, 12 _08043DDE: ldrb r1, [r3] cmp r1, 0x16 bne _08043DEE ldr r0, [r2] ands r0, r6 cmp r0, 0 beq _08043DEE b _08044324 _08043DEE: adds r2, 0x4 adds r3, 0x58 adds r4, 0x1 cmp r4, r5 blt _08043DDE b _0804441E .pool _08043E08: movs r4, 0 ldr r0, =gUnknown_0202406C ldrb r0, [r0] cmp r4, r0 blt _08043E14 b _0804441E _08043E14: ldr r5, =gUnknown_02024064 mov r8, r5 ldr r0, =gBattleMons adds r0, 0x20 str r0, [sp, 0x1C] movs r1, 0 str r1, [sp, 0x20] _08043E22: ldr r2, [sp, 0x1C] ldrb r0, [r2] cmp r0, 0x24 beq _08043E2C b _08043FBE _08043E2C: ldr r0, =gUnknown_020242AC ldr r3, [sp, 0x20] adds r0, r3, r0 ldr r1, [r0] movs r0, 0x80 lsls r0, 13 ands r1, r0 str r3, [sp, 0x18] cmp r1, 0 bne _08043E42 b _08043FBE _08043E42: 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, =gBattleTypeFlags ldr r0, [r0] movs r2, 0x1 ands r0, r2 cmp r0, 0 bne _08043E74 b _08043F84 _08043E74: movs r1, 0x58 adds r0, r6, 0 muls r0, r1 ldr r3, =gBattleMons adds r1, r0, r3 adds r0, r1, 0 adds r0, 0x20 ldrb r0, [r0] cmp r0, 0 beq _08043F40 ldrh r0, [r1, 0x28] cmp r0, 0 beq _08043EFC 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 _08043EFC ldrh r0, [r1, 0x28] cmp r0, 0 beq _08043EFC 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, =gBattleMons 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, =gUnknown_0202420A strb r0, [r2] b _08043FAC .pool _08043EFC: ldr r3, =gBattleMons 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 _08043F40 ldrh r0, [r1, 0x28] cmp r0, 0 beq _08043F40 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 _08043FA8 .pool _08043F40: ldr r3, =gBattleMons 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 _08043FB6 ldrh r0, [r1, 0x28] cmp r0, 0 beq _08043FB6 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 _08043FA8 .pool _08043F84: mov r2, r8 strb r6, [r2] movs r3, 0x58 adds r0, r6, 0 muls r0, r3 ldr r5, =gBattleMons adds r0, r5 adds r2, r0, 0 adds r2, 0x20 ldrb r1, [r2] cmp r1, 0 beq _08043FB6 ldrh r0, [r0, 0x28] cmp r0, 0 beq _08043FB6 ldr r0, [sp, 0x1C] strb r1, [r0] ldrb r0, [r2] _08043FA8: ldr r1, =gUnknown_0202420A strb r0, [r1] _08043FAC: mov r0, r9 adds r0, 0x1 lsls r0, 24 lsrs r0, 24 mov r9, r0 _08043FB6: mov r2, r9 cmp r2, 0 beq _08043FBE b _08044340 _08043FBE: 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, =gUnknown_0202406C ldrb r0, [r0] cmp r4, r0 bge _08043FD6 b _08043E22 _08043FD6: b _0804441E .pool _08043FE4: movs r4, 0 ldr r0, =gUnknown_0202406C ldrb r1, [r0] cmp r4, r1 blt _08043FF0 b _0804441E _08043FF0: ldr r0, =gBattleMons adds r5, r1, 0 ldr r2, =gUnknown_020242AC adds r3, r0, 0 adds r3, 0x20 movs r6, 0x80 lsls r6, 12 _08043FFE: ldrb r1, [r3] cmp r1, 0x16 bne _0804400E ldr r0, [r2] ands r0, r6 cmp r0, 0 beq _0804400E b _080443B4 _0804400E: adds r2, 0x4 adds r3, 0x58 adds r4, 0x1 cmp r4, r5 blt _08043FFE b _0804441E .pool _08044028: mov r0, r10 bl battle_side_get_owner lsls r0, 24 lsrs r5, r0, 24 movs r4, 0 ldr r0, =gUnknown_0202406C ldrb r0, [r0] cmp r4, r0 blt _0804403E b _0804441E _0804403E: ldr r7, =gBattleMons _08044040: 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 _0804406A movs r0, 0x58 muls r0, r4 adds r0, r7 adds r0, 0x20 ldrb r0, [r0] cmp r0, r6 bne _0804406A ldr r0, =gUnknown_0202420A strb r6, [r0] lsls r0, r3, 24 lsrs r0, 24 mov r9, r0 _0804406A: adds r4, r3, 0 ldr r0, =gUnknown_0202406C ldrb r0, [r0] cmp r4, r0 blt _08044040 b _0804441E .pool _08044084: mov r0, r10 bl battle_side_get_owner lsls r0, 24 lsrs r5, r0, 24 movs r4, 0 ldr r0, =gUnknown_0202406C ldrb r0, [r0] cmp r4, r0 blt _0804409A b _0804441E _0804409A: ldr r7, =gBattleMons _0804409C: 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 _080440C6 movs r0, 0x58 muls r0, r4 adds r0, r7 adds r0, 0x20 ldrb r0, [r0] cmp r0, r6 bne _080440C6 ldr r0, =gUnknown_0202420A strb r6, [r0] lsls r0, r3, 24 lsrs r0, 24 mov r9, r0 _080440C6: adds r4, r3, 0 ldr r0, =gUnknown_0202406C ldrb r0, [r0] cmp r4, r0 blt _0804409C b _0804441E .pool _080440E0: ldrb r0, [r7] cmp r0, 0xFD beq _08044104 cmp r0, 0xFE beq _0804413C movs r4, 0 ldr r0, =gUnknown_0202406C adds r5, r0, 0 ldrb r0, [r5] cmp r4, r0 blt _080440F8 b _0804441E _080440F8: ldr r2, =gBattleMons b _08044174 .pool _08044104: movs r4, 0 ldr r0, =gUnknown_0202406C ldrb r0, [r0] cmp r4, r0 blt _08044110 b _0804441E _08044110: ldr r5, =gUnknown_020242AC movs r2, 0x80 lsls r2, 9 adds r1, r0, 0 _08044118: lsls r0, r4, 2 adds r0, r5 ldr r0, [r0] ands r0, r2 adds r3, r4, 0x1 cmp r0, 0 beq _0804412C lsls r0, r3, 24 lsrs r0, 24 mov r9, r0 _0804412C: adds r4, r3, 0 cmp r4, r1 blt _08044118 b _0804441E .pool _0804413C: movs r4, 0 ldr r0, =gUnknown_0202406C ldrb r0, [r0] cmp r4, r0 blt _08044148 b _0804441E _08044148: ldr r5, =gUnknown_020242AC movs r2, 0x80 lsls r2, 10 adds r1, r0, 0 _08044150: lsls r0, r4, 2 adds r0, r5 ldr r0, [r0] ands r0, r2 adds r3, r4, 0x1 cmp r0, 0 beq _08044164 lsls r0, r3, 24 lsrs r0, 24 mov r9, r0 _08044164: adds r4, r3, 0 cmp r4, r1 blt _08044150 b _0804441E .pool _08044174: movs r0, 0x58 muls r0, r4 adds r0, r2 adds r0, 0x20 ldrb r0, [r0] adds r3, r4, 0x1 cmp r0, r6 bne _0804418C strb r6, [r7] lsls r0, r3, 24 lsrs r0, 24 mov r9, r0 _0804418C: adds r4, r3, 0 ldrb r1, [r5] cmp r4, r1 blt _08044174 b _0804441E _08044196: movs r4, 0 ldr r0, =gUnknown_0202406C ldrb r0, [r0] cmp r4, r0 blt _080441A2 b _0804441E _080441A2: ldr r2, =gBattleMons mov r8, r2 adds r2, r0, 0 movs r5, 0x58 _080441AA: adds r0, r4, 0 muls r0, r5 mov r3, r8 adds r1, r0, r3 adds r0, r1, 0 adds r0, 0x20 ldrb r0, [r0] adds r3, r4, 0x1 cmp r0, r6 bne _080441CC ldrh r0, [r1, 0x28] cmp r0, 0 beq _080441CC strb r6, [r7] lsls r0, r3, 24 lsrs r0, 24 mov r9, r0 _080441CC: adds r4, r3, 0 cmp r4, r2 blt _080441AA b _0804441E .pool _080441DC: movs r4, 0 ldr r0, =gUnknown_0202406C ldrb r0, [r0] cmp r4, r0 blt _080441E8 b _0804441E _080441E8: ldr r7, =gBattleMons adds r1, r0, 0 movs r5, 0x58 ldr r2, =gUnknown_0202420A _080441F0: adds r0, r4, 0 muls r0, r5 adds r0, r7 adds r0, 0x20 ldrb r0, [r0] adds r3, r4, 0x1 cmp r0, r6 bne _0804420C cmp r4, r10 beq _0804420C strb r6, [r2] lsls r0, r3, 24 lsrs r0, 24 mov r9, r0 _0804420C: adds r4, r3, 0 cmp r4, r1 blt _080441F0 b _0804441E .pool _08044220: mov r0, r10 bl battle_side_get_owner lsls r0, 24 lsrs r5, r0, 24 movs r4, 0 ldr r0, =gUnknown_0202406C ldrb r0, [r0] cmp r4, r0 blt _08044236 b _0804441E _08044236: ldr r7, =gBattleMons _08044238: lsls r0, r4, 24 lsrs r0, 24 bl battle_side_get_owner lsls r0, 24 lsrs r0, 24 cmp r0, r5 beq _08044264 movs r0, 0x58 muls r0, r4 adds r0, r7 adds r0, 0x20 ldrb r0, [r0] cmp r0, r6 bne _08044264 ldr r0, =gUnknown_0202420A strb r6, [r0] mov r0, r9 adds r0, 0x1 lsls r0, 24 lsrs r0, 24 mov r9, r0 _08044264: adds r4, 0x1 ldr r0, =gUnknown_0202406C ldrb r0, [r0] cmp r4, r0 blt _08044238 b _0804441E .pool _0804427C: mov r0, r10 bl battle_side_get_owner lsls r0, 24 lsrs r5, r0, 24 movs r4, 0 ldr r0, =gUnknown_0202406C ldrb r0, [r0] cmp r4, r0 blt _08044292 b _0804441E _08044292: ldr r7, =gBattleMons _08044294: lsls r0, r4, 24 lsrs r0, 24 bl battle_side_get_owner lsls r0, 24 lsrs r0, 24 cmp r0, r5 bne _080442C0 movs r0, 0x58 muls r0, r4 adds r0, r7 adds r0, 0x20 ldrb r0, [r0] cmp r0, r6 bne _080442C0 ldr r0, =gUnknown_0202420A strb r6, [r0] mov r0, r9 adds r0, 0x1 lsls r0, 24 lsrs r0, 24 mov r9, r0 _080442C0: adds r4, 0x1 ldr r0, =gUnknown_0202406C ldrb r0, [r0] cmp r4, r0 blt _08044294 b _0804441E .pool _080442D8: ldr r0, =gUnknown_082DB4A9 bl b_push_move_exec ldr r0, =gUnknown_02024474 strb r6, [r0, 0x17] _080442E2: ldr r0, =gUnknown_0202449C ldr r0, [r0] adds r0, 0x7F mov r1, r9 subs r1, 0x1 strb r1, [r0] b _0804441E .pool _080442FC: ldr r0, =gUnknown_082DB4A9 bl b_push_move_exec ldr r0, =gUnknown_02024474 mov r5, r10 strb r5, [r0, 0x17] ldr r0, =gUnknown_0202449C ldr r0, [r0] adds r0, 0x7F mov r1, r9 subs r1, 0x1 strb r1, [r0] b _0804443A .pool _08044324: strb r1, [r7] ldr r0, [r2] ldr r1, =0xfff7ffff ands r0, r1 str r0, [r2] ldr r0, =gUnknown_082DB4B8 bl b_push_move_exec b _080443C8 .pool _08044340: ldr r0, =gUnknown_082DB452 bl b_push_move_exec ldr r1, =gUnknown_020242AC ldr r0, [sp, 0x18] adds r1, r0, r1 ldr r0, [r1] ldr r2, =0xffefffff ands r0, r2 str r0, [r1] ldr r0, =gUnknown_02024474 strb r4, [r0, 0x17] ldr r1, =gUnknown_02022F58 movs r4, 0xFD strb r4, [r1] movs r0, 0x4 strb r0, [r1, 0x1] ldr r2, =gUnknown_02024064 ldrb r0, [r2] strb r0, [r1, 0x2] ldr r3, =gUnknown_0202406E 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, =gUnknown_02022F68 strb r4, [r1] movs r0, 0x9 strb r0, [r1, 0x1] ldr r0, =gUnknown_0202420A ldrb r0, [r0] strb r0, [r1, 0x2] movs r0, 0x1 negs r0, r0 strb r0, [r1, 0x3] b _0804441E .pool _080443B4: strb r1, [r7] ldr r0, [r2] ldr r1, =0xfff7ffff ands r0, r1 str r0, [r2] bl b_movescr_stack_push_cursor ldr r1, =gUnknown_02024214 ldr r0, =gUnknown_082DB4C1 str r0, [r1] _080443C8: ldr r0, =gUnknown_0202449C ldr r0, [r0] adds r0, 0xD8 strb r4, [r0] _080443D0: mov r0, r9 adds r0, 0x1 lsls r0, 24 lsrs r0, 24 mov r9, r0 b _0804441E .pool _080443EC: movs r4, 0 ldr r0, =gUnknown_0202406C ldrb r1, [r0] cmp r4, r1 bge _0804441E ldr r0, =gBattleMons adds r2, r1, 0 adds r1, r0, 0 adds r1, 0x20 ldr r3, =gUnknown_0202420A _08044400: ldrb r0, [r1] cmp r0, r6 bne _08044416 cmp r4, r10 beq _08044416 strb r6, [r3] mov r0, r9 adds r0, 0x1 lsls r0, 24 lsrs r0, 24 mov r9, r0 _08044416: adds r1, 0x58 adds r4, 0x1 cmp r4, r2 blt _08044400 _0804441E: mov r1, r9 cmp r1, 0 beq _0804443A _08044424: ldr r2, [sp, 0x4] cmp r2, 0xB bhi _0804443A ldr r1, =gUnknown_0202420A ldrb r0, [r1] cmp r0, 0xFF beq _0804443A adds r1, r0, 0 mov r0, r10 bl b_history__record_ability_usage_of_player _0804443A: 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 .pool thumb_func_end ability_something thumb_func_start b_call_bc_move_exec b_call_bc_move_exec: @ 8044458 ldr r1, =gUnknown_02024214 str r0, [r1] ldr r0, =gUnknown_020244A8 ldr r0, [r0] ldr r2, [r0, 0xC] adds r3, r2, 0 adds r3, 0x20 ldrb r0, [r3] adds r1, r0, 0x1 strb r1, [r3] lsls r0, 24 lsrs r0, 22 adds r2, r0 ldr r1, =gUnknown_03005D04 ldr r0, [r1] str r0, [r2] ldr r0, =bc_move_exec_returning str r0, [r1] ldr r1, =gUnknown_02024083 movs r0, 0 strb r0, [r1] bx lr .pool thumb_func_end b_call_bc_move_exec thumb_func_start b_push_move_exec b_push_move_exec: @ 8044498 push {r4,lr} adds r4, r0, 0 bl b_movescr_stack_push_cursor ldr r0, =gUnknown_02024214 str r4, [r0] ldr r0, =gUnknown_020244A8 ldr r0, [r0] ldr r2, [r0, 0xC] adds r3, r2, 0 adds r3, 0x20 ldrb r0, [r3] adds r1, r0, 0x1 strb r1, [r3] lsls r0, 24 lsrs r0, 22 adds r2, r0 ldr r1, =gUnknown_03005D04 ldr r0, [r1] str r0, [r2] ldr r0, =sub_803E08C str r0, [r1] pop {r4} pop {r0} bx r0 .pool thumb_func_end b_push_move_exec thumb_func_start berry_effects_maybe berry_effects_maybe: @ 80444DC 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, =gUnknown_02024208 ldr r1, =gBattleMons 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 _08044534 ldr r1, =gUnknown_02024404 lsls r0, r7, 3 subs r0, r7 lsls r0, 2 adds r0, r1 ldrb r5, [r0, 0x7] ldrb r0, [r0, 0x1A] b _08044548 .pool _08044534: 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 _08044548: mov r9, r0 ldr r1, =gBattleMons ldr r0, =gUnknown_0202420B ldrb r2, [r0] movs r0, 0x58 muls r0, r2 adds r0, r1 ldrh r0, [r0, 0x2E] str r0, [sp, 0x14] cmp r0, 0xAF bne _0804457C ldr r1, =gUnknown_02024404 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 _08044592 .pool _0804457C: 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 _08044592: str r0, [sp, 0x10] ldr r2, =gBattleMons ldr r0, =gEnemyMonIndex ldrb r1, [r0] movs r0, 0x58 muls r0, r1 adds r0, r2 ldrh r4, [r0, 0x2E] cmp r4, 0xAF beq _080445B2 adds r0, r4, 0 bl itemid_get_x12 adds r0, r4, 0 bl itemid_get_quality _080445B2: ldr r0, [sp, 0x8] cmp r0, 0x4 bls _080445BC bl _0804582A _080445BC: lsls r0, 2 ldr r1, =_080445D4 adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _080445D4: .4byte _080445E8 .4byte _08044688 .4byte _0804582A .4byte _08045280 .4byte _080456D0 _080445E8: cmp r5, 0x17 beq _08044618 cmp r5, 0x20 beq _080445F4 bl _0804582A _080445F4: adds r0, r7, 0 bl battle_side_get_owner lsls r0, 24 cmp r0, 0 beq _08044604 bl _0804582A _08044604: ldr r0, =gUnknown_0202449C ldr r0, [r0] adds r0, 0x4A movs r1, 0x2 strb r1, [r0] bl _0804582A .pool _08044618: ldr r1, =gBattleMons mov r8, r1 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 _0804462E: movs r0, 0 ldrsb r0, [r1, r0] cmp r0, 0x5 bgt _0804463C strb r2, [r1] movs r5, 0x5 str r5, [sp, 0xC] _0804463C: adds r1, 0x1 movs r0, 0x1 negs r0, r0 add r10, r0 mov r3, r10 cmp r3, 0 bge _0804462E ldr r5, [sp, 0xC] cmp r5, 0 bne _08044654 bl _0804582A _08044654: ldr r0, =gUnknown_02024474 strb r7, [r0, 0x17] ldr r0, =gUnknown_0202420F strb r7, [r0] ldr r1, =gUnknown_02024064 ldr r0, =gUnknown_0202420B strb r7, [r0] strb r7, [r1] ldr r0, =gUnknown_082DB7AE bl b_call_bc_move_exec bl _0804582A .pool _08044688: ldr r1, =gBattleMons movs r0, 0x58 muls r0, r7 adds r0, r1 ldrh r0, [r0, 0x28] mov r8, r1 cmp r0, 0 bne _0804469C bl _0804582A _0804469C: subs r0, r5, 0x1 cmp r0, 0x2A bls _080446A6 bl _080451D6 _080446A6: lsls r0, 2 ldr r1, =_080446B8 adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _080446B8: .4byte _08044764 .4byte _08044F44 .4byte _08045008 .4byte _08044F74 .4byte _08044FA8 .4byte _08044FD8 .4byte _080447B0 .4byte _08045044 .4byte _08045074 .4byte _0804497C .4byte _080449FC .4byte _08044A78 .4byte _08044B0C .4byte _08044BA0 .4byte _08044C34 .4byte _08044C9C .4byte _08044CF0 .4byte _08044D44 .4byte _08044DAC .4byte _08044E10 .4byte _08044E5C .4byte _080451D6 .4byte _080448B0 .4byte _080451D6 .4byte _080451D6 .4byte _080451D6 .4byte _080451D6 .4byte _080451A0 .4byte _080451D6 .4byte _080451D6 .4byte _080451D6 .4byte _080451D6 .4byte _080451D6 .4byte _080451D6 .4byte _080451D6 .4byte _080451D6 .4byte _080451D6 .4byte _080451D6 .4byte _080451D6 .4byte _080451D6 .4byte _080451D6 .4byte _080451D6 .4byte _0804491C _08044764: movs r0, 0x58 muls r0, r7 mov r1, r8 adds r2, r0, r1 ldrh r0, [r2, 0x2C] ldrh r1, [r2, 0x28] lsrs r0, 1 cmp r1, r0 bls _0804477A bl _080451D6 _0804477A: cmp r6, 0 beq _08044782 bl _080451D6 _08044782: ldr r4, =gBattleMoveDamage mov r3, r9 str r3, [r4] ldrh r3, [r2, 0x28] mov r5, r9 adds r0, r3, r5 ldrh r1, [r2, 0x2C] cmp r0, r1 ble _08044798 subs r0, r1, r3 str r0, [r4] _08044798: ldr r0, [r4] negs r0, r0 str r0, [r4] ldr r0, =gUnknown_082DB7C4 bl b_call_bc_move_exec b _08044B02 .pool _080447B0: cmp r6, 0 beq _080447B8 bl _080451D6 _080447B8: adds r0, r7, 0 bl battle_side_get_owner lsls r0, 24 cmp r0, 0 bne _080447DC ldr r1, =gUnknown_0202406E lsls r0, r7, 1 adds r0, r1 ldrh r1, [r0] movs r0, 0x64 muls r1, r0 ldr r0, =gPlayerParty b _080447EA .pool _080447DC: ldr r1, =gUnknown_0202406E lsls r0, r7, 1 adds r0, r1 ldrh r1, [r0] movs r0, 0x64 muls r1, r0 ldr r0, =gEnemyParty _080447EA: adds r4, r1, r0 movs r1, 0 mov r10, r1 add r5, sp, 0x4 _080447F2: mov r1, r10 adds r1, 0xD adds r0, r4, 0 bl GetMonData lsls r0, 16 lsrs r6, r0, 16 mov r1, r10 adds r1, 0x11 adds r0, r4, 0 bl GetMonData strb r0, [r5] adds r0, r4, 0 movs r1, 0x15 bl GetMonData lsls r0, 24 lsrs r1, r0, 24 cmp r6, 0 beq _08044822 ldrb r0, [r5] cmp r0, 0 beq _0804482C _08044822: movs r2, 0x1 add r10, r2 mov r3, r10 cmp r3, 0x3 ble _080447F2 _0804482C: mov r5, r10 cmp r5, 0x4 bne _08044836 bl _080451D6 _08044836: lsls r2, r5, 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 r3, r9 adds r1, r0, r3 cmp r1, r2 ble _08044860 add r0, sp, 0x4 strb r2, [r0] b _08044864 .pool _08044860: add r0, sp, 0x4 strb r1, [r0] _08044864: ldr r1, =gUnknown_02022F58 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, =gUnknown_082DB7E1 bl b_call_bc_move_exec mov r1, r10 adds r1, 0x9 lsls r1, 24 lsrs r1, 24 add r5, sp, 0x4 str r5, [sp] movs r0, 0 movs r2, 0 movs r3, 0x1 bl dp01_build_cmdbuf_x02_a_b_varargs ldr r0, =gUnknown_02024064 ldrb r0, [r0] bl dp01_battle_side_mark_buffer_for_execution movs r0, 0x3 str r0, [sp, 0xC] bl _080451DE .pool _080448B0: ldr r0, =gBattleMons movs r1, 0x58 muls r1, r7 adds r0, 0x18 adds r1, r0 movs r2, 0x6 movs r3, 0x7 mov r10, r3 _080448C0: movs r0, 0 ldrsb r0, [r1, r0] cmp r0, 0x5 bgt _080448CE strb r2, [r1] movs r5, 0x5 str r5, [sp, 0xC] _080448CE: adds r1, 0x1 movs r0, 0x1 negs r0, r0 add r10, r0 mov r3, r10 cmp r3, 0 bge _080448C0 movs r5, 0x8 mov r10, r5 ldr r0, [sp, 0xC] cmp r0, 0 bne _080448EA bl _0804582A _080448EA: ldr r0, =gUnknown_02024474 strb r7, [r0, 0x17] ldr r0, =gUnknown_0202420F strb r7, [r0] ldr r1, =gUnknown_02024064 ldr r0, =gUnknown_0202420B strb r7, [r0] strb r7, [r1] ldr r0, =gUnknown_082DB7AE bl b_call_bc_move_exec bl _080451D6 .pool _0804491C: movs r0, 0x58 muls r0, r7 mov r2, r8 adds r1, r0, r2 ldrh r0, [r1, 0x28] ldrh r3, [r1, 0x2C] cmp r0, r3 bcc _08044930 bl _080451D6 _08044930: cmp r6, 0 beq _08044938 bl _080451D6 _08044938: ldr r3, =gBattleMoveDamage ldrh r0, [r1, 0x2C] lsrs r0, 4 str r0, [r3] cmp r0, 0 bne _08044948 movs r0, 0x1 str r0, [r3] _08044948: ldrh r2, [r1, 0x28] ldr r0, [r3] adds r0, r2, r0 ldrh r1, [r1, 0x2C] cmp r0, r1 ble _08044958 subs r0, r1, r2 str r0, [r3] _08044958: ldr r0, [r3] negs r0, r0 str r0, [r3] ldr r0, =gUnknown_082DB7F1 bl b_call_bc_move_exec movs r0, 0x4 str r0, [sp, 0xC] adds r0, r7, 0 adds r1, r5, 0 bl b_history__record_item_x12_of_player bl _080451D6 .pool _0804497C: movs r0, 0x58 adds r1, r7, 0 muls r1, r0 str r1, [sp, 0x18] adds r4, r1, 0 add r4, r8 ldrh r0, [r4, 0x2C] ldrh r1, [r4, 0x28] lsrs r0, 1 cmp r1, r0 bls _08044996 bl _080451D6 _08044996: cmp r6, 0 beq _0804499E bl _080451D6 _0804499E: ldr r1, =gUnknown_02022F58 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, =gBattleMoveDamage ldrh r0, [r4, 0x2C] mov r1, r9 bl __divsi3 str r0, [r5] cmp r0, 0 bne _080449C2 movs r0, 0x1 str r0, [r5] _080449C2: ldrh r2, [r4, 0x28] ldr r0, [r5] adds r0, r2, r0 ldrh r1, [r4, 0x2C] cmp r0, r1 ble _080449D2 subs r0, r1, r2 str r0, [r5] _080449D2: ldr r0, [r5] negs r0, r0 str r0, [r5] mov r0, r8 adds r0, 0x48 ldr r2, [sp, 0x18] adds r0, r2, r0 ldr r0, [r0] movs r1, 0 bl sub_806E880 lsls r0, 24 cmp r0, 0 bge _080449F0 b _08044B7C _080449F0: b _08044B90 .pool _080449FC: movs r0, 0x58 adds r5, r7, 0 muls r5, r0 str r5, [sp, 0x1C] add r5, r8 ldrh r0, [r5, 0x2C] ldrh r1, [r5, 0x28] lsrs r0, 1 cmp r1, r0 bls _08044A14 bl _080451D6 _08044A14: cmp r6, 0 beq _08044A1C bl _080451D6 _08044A1C: ldr r1, =gUnknown_02022F58 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, =gBattleMoveDamage ldrh r0, [r5, 0x2C] mov r1, r9 bl __divsi3 str r0, [r4] cmp r0, 0 bne _08044A40 str r6, [r4] _08044A40: ldrh r2, [r5, 0x28] ldr r0, [r4] adds r0, r2, r0 ldrh r1, [r5, 0x2C] cmp r0, r1 ble _08044A50 subs r0, r1, r2 str r0, [r4] _08044A50: ldr r0, [r4] negs r0, r0 str r0, [r4] mov r0, r8 adds r0, 0x48 ldr r1, [sp, 0x1C] adds r0, r1, r0 ldr r0, [r0] movs r1, 0x1 bl sub_806E880 lsls r0, 24 cmp r0, 0 bge _08044A6E b _08044C0E _08044A6E: b _08044C24 .pool _08044A78: movs r0, 0x58 adds r3, r7, 0 muls r3, r0 str r3, [sp, 0x20] adds r5, r3, 0 add r5, r8 ldrh r0, [r5, 0x2C] ldrh r1, [r5, 0x28] lsrs r0, 1 cmp r1, r0 bls _08044A90 b _080451D6 _08044A90: cmp r6, 0 beq _08044A96 b _080451D6 _08044A96: ldr r1, =gUnknown_02022F58 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, =gBattleMoveDamage ldrh r0, [r5, 0x2C] mov r1, r9 bl __divsi3 str r0, [r4] cmp r0, 0 bne _08044ABC movs r0, 0x1 str r0, [r4] _08044ABC: ldrh r2, [r5, 0x28] ldr r0, [r4] adds r0, r2, r0 ldrh r1, [r5, 0x2C] cmp r0, r1 ble _08044ACC subs r0, r1, r2 str r0, [r4] _08044ACC: 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 bl sub_806E880 lsls r0, 24 cmp r0, 0 bge _08044AFC ldr r0, =gUnknown_082DB824 bl b_call_bc_move_exec b _08044B02 .pool _08044AFC: ldr r0, =gUnknown_082DB7C4 bl b_call_bc_move_exec _08044B02: movs r0, 0x4 str r0, [sp, 0xC] b _080451DE .pool _08044B0C: 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 _08044B24 b _080451D6 _08044B24: cmp r6, 0 beq _08044B2A b _080451D6 _08044B2A: ldr r1, =gUnknown_02022F58 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, =gBattleMoveDamage ldrh r0, [r5, 0x2C] mov r1, r9 bl __divsi3 str r0, [r4] cmp r0, 0 bne _08044B50 movs r0, 0x1 str r0, [r4] _08044B50: ldrh r2, [r5, 0x28] ldr r0, [r4] adds r0, r2, r0 ldrh r1, [r5, 0x2C] cmp r0, r1 ble _08044B60 subs r0, r1, r2 str r0, [r4] _08044B60: 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_806E880 lsls r0, 24 cmp r0, 0 bge _08044B90 _08044B7C: ldr r0, =gUnknown_082DB824 bl b_call_bc_move_exec b _08044B96 .pool _08044B90: ldr r0, =gUnknown_082DB7C4 bl b_call_bc_move_exec _08044B96: movs r3, 0x4 str r3, [sp, 0xC] b _080451DE .pool _08044BA0: movs r0, 0x58 adds r5, r7, 0 muls r5, r0 str r5, [sp, 0x28] add r5, r8 ldrh r0, [r5, 0x2C] ldrh r1, [r5, 0x28] lsrs r0, 1 cmp r1, r0 bls _08044BB6 b _080451D6 _08044BB6: cmp r6, 0 beq _08044BBC b _080451D6 _08044BBC: ldr r1, =gUnknown_02022F58 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, =gBattleMoveDamage ldrh r0, [r5, 0x2C] mov r1, r9 bl __divsi3 str r0, [r4] cmp r0, 0 bne _08044BE2 movs r0, 0x1 str r0, [r4] _08044BE2: ldrh r2, [r5, 0x28] ldr r0, [r4] adds r0, r2, r0 ldrh r1, [r5, 0x2C] cmp r0, r1 ble _08044BF2 subs r0, r1, r2 str r0, [r4] _08044BF2: ldr r0, [r4] negs r0, r0 str r0, [r4] mov r0, r8 adds r0, 0x48 ldr r1, [sp, 0x28] adds r0, r1, r0 ldr r0, [r0] movs r1, 0x4 bl sub_806E880 lsls r0, 24 cmp r0, 0 bge _08044C24 _08044C0E: ldr r0, =gUnknown_082DB824 bl b_call_bc_move_exec b _08044C2A .pool _08044C24: ldr r0, =gUnknown_082DB7C4 bl b_call_bc_move_exec _08044C2A: movs r2, 0x4 str r2, [sp, 0xC] b _080451DE .pool _08044C34: movs r0, 0x58 muls r0, r7 mov r3, r8 adds r5, r0, r3 ldrh r4, [r5, 0x28] ldrh r0, [r5, 0x2C] mov r1, r9 bl __divsi3 cmp r4, r0 ble _08044C4C b _080451D6 _08044C4C: cmp r6, 0 beq _08044C52 b _080451D6 _08044C52: movs r0, 0x19 ldrsb r0, [r5, r0] cmp r0, 0xB ble _08044C5C b _080451D6 _08044C5C: ldr r1, =gUnknown_02022F58 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, =gUnknown_02022F68 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, =gUnknown_0202420E strb r7, [r0] ldr r1, =gUnknown_02024474 movs r0, 0x11 strb r0, [r1, 0x1A] movs r0, 0xF b _08044DF0 .pool _08044C9C: 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 _08044CB4 b _080451D6 _08044CB4: cmp r6, 0 beq _08044CBA b _080451D6 _08044CBA: movs r0, 0x1A ldrsb r0, [r5, r0] cmp r0, 0xB ble _08044CC4 b _080451D6 _08044CC4: ldr r1, =gUnknown_02022F58 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, =gUnknown_0202420E strb r7, [r0] ldr r1, =gUnknown_02024474 movs r0, 0x12 strb r0, [r1, 0x1A] movs r0, 0x10 b _08044D8A .pool _08044CF0: movs r0, 0x58 muls r0, r7 mov r3, r8 adds r5, r0, r3 ldrh r4, [r5, 0x28] ldrh r0, [r5, 0x2C] mov r1, r9 bl __divsi3 cmp r4, r0 ble _08044D08 b _080451D6 _08044D08: cmp r6, 0 beq _08044D0E b _080451D6 _08044D0E: movs r0, 0x1B ldrsb r0, [r5, r0] cmp r0, 0xB ble _08044D18 b _080451D6 _08044D18: ldr r1, =gUnknown_02022F58 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, =gUnknown_0202420E strb r7, [r0] ldr r1, =gUnknown_02024474 movs r0, 0x13 strb r0, [r1, 0x1A] movs r0, 0x11 b _08044DF0 .pool _08044D44: 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 _08044D5C b _080451D6 _08044D5C: cmp r6, 0 beq _08044D62 b _080451D6 _08044D62: movs r0, 0x1C ldrsb r0, [r5, r0] cmp r0, 0xB ble _08044D6C b _080451D6 _08044D6C: ldr r1, =gUnknown_02022F58 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, =gUnknown_0202420E strb r7, [r0] ldr r1, =gUnknown_02024474 movs r0, 0x14 strb r0, [r1, 0x1A] movs r0, 0x12 _08044D8A: strb r0, [r1, 0x10] strb r6, [r1, 0x11] ldr r0, =gUnknown_082DB84E bl b_call_bc_move_exec movs r2, 0x5 str r2, [sp, 0xC] b _080451DE .pool _08044DAC: movs r0, 0x58 muls r0, r7 mov r3, r8 adds r5, r0, r3 ldrh r4, [r5, 0x28] ldrh r0, [r5, 0x2C] mov r1, r9 bl __divsi3 cmp r4, r0 ble _08044DC4 b _080451D6 _08044DC4: cmp r6, 0 beq _08044DCA b _080451D6 _08044DCA: movs r0, 0x1D ldrsb r0, [r5, r0] cmp r0, 0xB ble _08044DD4 b _080451D6 _08044DD4: ldr r1, =gUnknown_02022F58 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, =gUnknown_0202420E strb r7, [r0] ldr r1, =gUnknown_02024474 movs r0, 0x15 strb r0, [r1, 0x1A] movs r0, 0x13 _08044DF0: strb r0, [r1, 0x10] strb r6, [r1, 0x11] ldr r0, =gUnknown_082DB84E bl b_call_bc_move_exec movs r5, 0x5 str r5, [sp, 0xC] b _080451DE .pool _08044E10: 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 _08044E2A b _080451D6 _08044E2A: cmp r6, 0 beq _08044E30 b _080451D6 _08044E30: 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 _08044E46 b _080451D6 _08044E46: orrs r2, r3 str r2, [r1] ldr r0, =gUnknown_082DB869 bl b_call_bc_move_exec movs r2, 0x2 str r2, [sp, 0xC] b _080451DE .pool _08044E5C: cmp r6, 0 beq _08044E62 b _080451D6 _08044E62: 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 _08044E7C b _080451D6 _08044E7C: movs r0, 0 mov r10, r0 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 _08044EAC mov r0, r8 adds r0, 0x19 adds r1, r5, r0 _08044E98: adds r1, 0x1 movs r2, 0x1 add r10, r2 mov r3, r10 cmp r3, 0x4 bgt _08044EAC movs r0, 0 ldrsb r0, [r1, r0] cmp r0, 0xB bgt _08044E98 _08044EAC: mov r5, r10 cmp r5, 0x5 bne _08044EB4 b _080451D6 _08044EB4: movs r0, 0x58 muls r0, r7 adds r4, r0, 0x1 ldr r5, =gUnknown_0202409C _08044EBC: 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 _08044EBC ldr r1, =gUnknown_02022F58 movs r2, 0 movs r3, 0xFD strb r3, [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, =gUnknown_02022F68 strb r3, [r0] strb r2, [r0, 0x1] movs r1, 0xD1 strb r1, [r0, 0x2] strb r2, [r0, 0x3] strb r2, [r0, 0x4] movs r1, 0xD2 strb r1, [r0, 0x5] strb r2, [r0, 0x6] subs r1, 0xD3 strb r1, [r0, 0x7] ldr r0, =gUnknown_0202420E strb r7, [r0] ldr r1, =gUnknown_02024474 mov r0, r10 adds r0, 0x21 strb r0, [r1, 0x1A] adds r0, 0x6 strb r0, [r1, 0x10] strb r2, [r1, 0x11] ldr r0, =gUnknown_082DB84E bl b_call_bc_move_exec movs r0, 0x5 str r0, [sp, 0xC] b _080451DE .pool _08044F44: 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 _08044F5C b _080451D6 _08044F5C: movs r0, 0x41 negs r0, r0 ands r2, r0 str r2, [r1] ldr r0, =gUnknown_082DB706 bl b_call_bc_move_exec movs r1, 0x1 str r1, [sp, 0xC] b _080451DE .pool _08044F74: 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 _08044F8C b _080451D6 _08044F8C: ldr r0, =0xfffff077 ands r2, r0 str r2, [r1] ldr r0, =gUnknown_082DB71E bl b_call_bc_move_exec movs r2, 0x1 str r2, [sp, 0xC] b _080451DE .pool _08044FA8: 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 _08044FC0 b _080451D6 _08044FC0: movs r0, 0x11 negs r0, r0 ands r2, r0 str r2, [r1] ldr r0, =gUnknown_082DB736 bl b_call_bc_move_exec movs r3, 0x1 str r3, [sp, 0xC] b _080451DE .pool _08044FD8: 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 _08044FF0 b _080451D6 _08044FF0: movs r0, 0x21 negs r0, r0 ands r2, r0 str r2, [r1] ldr r0, =gUnknown_082DB74E bl b_call_bc_move_exec movs r5, 0x1 str r5, [sp, 0xC] b _080451DE .pool _08045008: 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 _08045020 b _080451D6 _08045020: 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, =0xf7ffffff ands r0, r2 str r0, [r1] ldr r0, =gUnknown_082DB766 b _0804518A .pool _08045044: 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 _0804505C b _080451D6 _0804505C: movs r0, 0x8 negs r0, r0 ands r2, r0 str r2, [r1] ldr r0, =gUnknown_082DB77E bl b_call_bc_move_exec movs r1, 0x2 str r1, [sp, 0xC] b _080451DE .pool _08045074: 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 _0804509A mov r0, r8 adds r0, 0x50 adds r0, r5, r0 ldr r0, [r0] movs r1, 0x7 ands r0, r1 cmp r0, 0 bne _0804509A b _080451D6 _0804509A: movs r3, 0 mov r10, r3 movs r0, 0x88 ands r2, r0 cmp r2, 0 beq _080450B2 ldr r0, =gUnknown_02022F58 ldr r1, =gUnknown_0831BC70 bl StringCopy movs r0, 0x1 mov r10, r0 _080450B2: ldr r0, [r4] movs r1, 0x7 mov r9, r1 ands r0, r1 mov r6, r8 adds r6, 0x50 cmp r0, 0 beq _080450D8 adds r2, r5, r6 ldr r0, [r2] ldr r1, =0xf7ffffff ands r0, r1 str r0, [r2] ldr r0, =gUnknown_02022F58 ldr r1, =gUnknown_0831BC78 bl StringCopy movs r2, 0x1 add r10, r2 _080450D8: ldr r0, [r4] movs r1, 0x40 ands r0, r1 cmp r0, 0 beq _080450EE ldr r0, =gUnknown_02022F58 ldr r1, =gUnknown_0831BC80 bl StringCopy movs r3, 0x1 add r10, r3 _080450EE: ldr r0, [r4] movs r1, 0x10 ands r0, r1 cmp r0, 0 beq _08045104 ldr r0, =gUnknown_02022F58 ldr r1, =gUnknown_0831BC88 bl StringCopy movs r0, 0x1 add r10, r0 _08045104: ldr r0, [r4] movs r1, 0x20 ands r0, r1 cmp r0, 0 beq _0804511A ldr r0, =gUnknown_02022F58 ldr r1, =gUnknown_0831BC90 bl StringCopy movs r1, 0x1 add r10, r1 _0804511A: adds r0, r5, r6 ldr r0, [r0] mov r2, r9 ands r0, r2 cmp r0, 0 beq _08045132 ldr r0, =gUnknown_02022F58 ldr r1, =gUnknown_0831BC98 bl StringCopy movs r3, 0x1 add r10, r3 _08045132: mov r5, r10 cmp r5, 0x1 bgt _08045164 ldr r1, =gUnknown_02024332 movs r0, 0 b _08045168 .pool _08045164: ldr r1, =gUnknown_02024332 movs r0, 0x1 _08045168: strb r0, [r1, 0x5] ldr r2, =gBattleMons 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, =gUnknown_082DB794 _0804518A: bl b_call_bc_move_exec movs r0, 0x1 str r0, [sp, 0xC] b _080451DE .pool _080451A0: 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 _080451D6 ldr r0, =0xfff0ffff ands r2, r0 str r2, [r1] ldr r0, =gUnknown_02022F58 ldr r1, =gUnknown_0831BCA0 bl StringCopy ldr r0, =gUnknown_082DB794 bl b_call_bc_move_exec ldr r1, =gUnknown_02024332 movs r0, 0 strb r0, [r1, 0x5] movs r1, 0x2 str r1, [sp, 0xC] _080451D6: ldr r2, [sp, 0xC] cmp r2, 0 bne _080451DE b _0804582A _080451DE: ldr r0, =gUnknown_02024474 strb r7, [r0, 0x17] ldr r0, =gUnknown_0202420F strb r7, [r0] ldr r4, =gUnknown_02024064 ldr r0, =gUnknown_0202420B strb r7, [r0] strb r7, [r4] ldr r3, [sp, 0xC] cmp r3, 0x1 beq _08045220 cmp r3, 0x3 beq _08045226 b _0804582A .pool _08045220: movs r0, 0x58 muls r0, r7 b _0804568C _08045226: ldr r4, =gBattleMons 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 _08045242 b _0804582A _08045242: ldr r1, =gUnknown_020242BC lsls r0, r7, 3 subs r0, r7 lsls r0, 2 adds r0, r1 ldrb r1, [r0, 0x18] lsrs r1, 4 ldr r2, =gBitTable mov r5, r10 lsls r0, r5, 2 adds r0, r2 ldr r0, [r0] ands r1, r0 cmp r1, 0 beq _08045262 b _0804582A _08045262: 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 _0804582A .pool _08045280: movs r7, 0 ldr r0, =gUnknown_0202406C ldrb r0, [r0] cmp r7, r0 bcc _0804528C b _0804582A _0804528C: ldr r4, =gUnknown_02024208 ldr r1, =gBattleMons 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 _080452C0 ldr r1, =gUnknown_02024404 lsls r0, r7, 3 subs r0, r7 lsls r0, 2 adds r0, r1 ldrb r5, [r0, 0x7] b _080452D0 .pool _080452C0: ldrh r0, [r4] bl itemid_get_x12 lsls r0, 24 lsrs r5, r0, 24 ldrh r0, [r4] bl itemid_get_quality _080452D0: subs r0, r5, 0x2 cmp r0, 0x1A bls _080452D8 b _08045674 _080452D8: lsls r0, 2 ldr r1, =_080452E8 adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _080452E8: .4byte _08045354 .4byte _08045444 .4byte _08045390 .4byte _080453CC .4byte _08045408 .4byte _08045674 .4byte _0804548C .4byte _08045520 .4byte _08045674 .4byte _08045674 .4byte _08045674 .4byte _08045674 .4byte _08045674 .4byte _08045674 .4byte _08045674 .4byte _08045674 .4byte _08045674 .4byte _08045674 .4byte _08045674 .4byte _08045674 .4byte _08045674 .4byte _08045614 .4byte _08045674 .4byte _08045674 .4byte _08045674 .4byte _08045674 .4byte _080454C8 _08045354: ldr r1, =gBattleMons 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 _0804536A b _08045674 _0804536A: movs r0, 0x41 negs r0, r0 ands r1, r0 str r1, [r2] bl b_movescr_stack_push_cursor ldr r1, =gUnknown_02024214 ldr r0, =gUnknown_082DB70C str r0, [r1] movs r0, 0x1 str r0, [sp, 0xC] b _0804567A .pool _08045390: ldr r1, =gBattleMons 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 _080453A6 b _08045674 _080453A6: ldr r0, =0xfffff077 ands r1, r0 str r1, [r2] bl b_movescr_stack_push_cursor ldr r1, =gUnknown_02024214 ldr r0, =gUnknown_082DB724 str r0, [r1] movs r1, 0x1 str r1, [sp, 0xC] b _0804567A .pool _080453CC: ldr r1, =gBattleMons 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 _080453E2 b _08045674 _080453E2: movs r0, 0x11 negs r0, r0 ands r1, r0 str r1, [r2] bl b_movescr_stack_push_cursor ldr r1, =gUnknown_02024214 ldr r0, =gUnknown_082DB73C str r0, [r1] movs r2, 0x1 str r2, [sp, 0xC] b _0804567A .pool _08045408: ldr r1, =gBattleMons 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 _0804541E b _08045674 _0804541E: movs r0, 0x21 negs r0, r0 ands r1, r0 str r1, [r2] bl b_movescr_stack_push_cursor ldr r1, =gUnknown_02024214 ldr r0, =gUnknown_082DB754 str r0, [r1] movs r3, 0x1 str r3, [sp, 0xC] b _0804567A .pool _08045444: ldr r2, =gBattleMons 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 _0804545E b _08045674 _0804545E: movs r0, 0x8 negs r0, r0 ands r1, r0 str r1, [r3] adds r2, 0x50 adds r2, r4, r2 ldr r0, [r2] ldr r1, =0xf7ffffff ands r0, r1 str r0, [r2] bl b_movescr_stack_push_cursor ldr r1, =gUnknown_02024214 ldr r0, =gUnknown_082DB76C b _080455DC .pool _0804548C: ldr r1, =gBattleMons 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 _080454A2 b _08045674 _080454A2: movs r0, 0x8 negs r0, r0 ands r1, r0 str r1, [r2] bl b_movescr_stack_push_cursor ldr r1, =gUnknown_02024214 ldr r0, =gUnknown_082DB784 str r0, [r1] movs r0, 0x2 str r0, [sp, 0xC] b _0804567A .pool _080454C8: ldr r1, =gBattleMons 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 _080454E0 b _08045674 _080454E0: ldr r0, =0xfff0ffff ands r1, r0 str r1, [r2] ldr r0, =gUnknown_02022F58 ldr r1, =gUnknown_0831BCA0 bl StringCopy bl b_movescr_stack_push_cursor ldr r1, =gUnknown_02024332 movs r0, 0 strb r0, [r1, 0x5] ldr r1, =gUnknown_02024214 ldr r0, =gUnknown_082DB79A str r0, [r1] movs r1, 0x2 str r1, [sp, 0xC] b _0804567A .pool _08045520: ldr r4, =gBattleMons 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 _08045548 adds r0, r4, 0 adds r0, 0x50 adds r0, r5, r0 ldr r0, [r0] movs r1, 0x7 ands r0, r1 cmp r0, 0 bne _08045548 b _08045674 _08045548: movs r0, 0x88 ands r2, r0 cmp r2, 0 beq _08045558 ldr r0, =gUnknown_02022F58 ldr r1, =gUnknown_0831BC70 bl StringCopy _08045558: ldr r0, [r6] movs r2, 0x7 mov r8, r2 ands r0, r2 adds r4, 0x50 cmp r0, 0 beq _08045578 adds r2, r5, r4 ldr r0, [r2] ldr r1, =0xf7ffffff ands r0, r1 str r0, [r2] ldr r0, =gUnknown_02022F58 ldr r1, =gUnknown_0831BC78 bl StringCopy _08045578: ldr r0, [r6] movs r1, 0x40 ands r0, r1 cmp r0, 0 beq _0804558A ldr r0, =gUnknown_02022F58 ldr r1, =gUnknown_0831BC80 bl StringCopy _0804558A: ldr r0, [r6] movs r1, 0x10 ands r0, r1 cmp r0, 0 beq _0804559C ldr r0, =gUnknown_02022F58 ldr r1, =gUnknown_0831BC88 bl StringCopy _0804559C: ldr r0, [r6] movs r1, 0x20 ands r0, r1 cmp r0, 0 beq _080455AE ldr r0, =gUnknown_02022F58 ldr r1, =gUnknown_0831BC90 bl StringCopy _080455AE: adds r5, r4 ldr r0, [r5] mov r3, r8 ands r0, r3 cmp r0, 0 beq _080455C2 ldr r0, =gUnknown_02022F58 ldr r1, =gUnknown_0831BC98 bl StringCopy _080455C2: 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, =gUnknown_02024332 strb r4, [r0, 0x5] ldr r1, =gUnknown_02024214 ldr r0, =gUnknown_082DB79A _080455DC: str r0, [r1] movs r5, 0x1 str r5, [sp, 0xC] b _0804567A .pool _08045614: ldr r0, =gBattleMons 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 _0804562A: movs r0, 0 ldrsb r0, [r1, r0] cmp r0, 0x5 bgt _08045638 strb r2, [r1] movs r5, 0x5 str r5, [sp, 0xC] _08045638: adds r1, 0x1 movs r0, 0x1 negs r0, r0 add r10, r0 mov r3, r10 cmp r3, 0 bge _0804562A ldr r5, [sp, 0xC] cmp r5, 0 beq _080456B8 ldr r0, =gUnknown_02024474 strb r7, [r0, 0x17] ldr r0, =gUnknown_0202420F strb r7, [r0] bl b_movescr_stack_push_cursor ldr r1, =gUnknown_02024214 ldr r0, =gUnknown_082DB7B4 str r0, [r1] b _0804582A .pool _08045674: ldr r0, [sp, 0xC] cmp r0, 0 beq _080456B8 _0804567A: ldr r0, =gUnknown_02024474 strb r7, [r0, 0x17] ldr r0, =gUnknown_0202420F strb r7, [r0] ldr r4, =gUnknown_02024064 strb r7, [r4] ldrb r1, [r4] movs r0, 0x58 muls r0, r1 _0804568C: ldr r1, =gUnknown_020240D0 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 _0804582A .pool _080456B8: adds r0, r7, 0x1 lsls r0, 24 lsrs r7, r0, 24 ldr r0, =gUnknown_0202406C ldrb r0, [r0] cmp r7, r0 bcs _080456C8 b _0804528C _080456C8: b _0804582A .pool _080456D0: ldr r7, =gBattleMoveDamage ldr r0, [r7] cmp r0, 0 bne _080456DA b _0804582A _080456DA: mov r1, r8 cmp r1, 0x1E beq _080456EC cmp r1, 0x3E beq _08045794 b _0804582A .pool _080456EC: ldr r0, =gBattleMoveFlags ldrb r1, [r0] movs r0, 0x29 ands r0, r1 cmp r0, 0 beq _080456FA b _0804582A _080456FA: ldr r2, =gUnknown_0202437C ldr r4, =gEnemyMonIndex 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 _08045720 adds r0, r2, 0 adds r0, 0xC adds r0, r1, r0 ldr r0, [r0] cmp r0, 0 bne _08045720 b _0804582A _08045720: bl Random lsls r0, 16 lsrs r0, 16 movs r1, 0x64 bl __umodsi3 lsls r0, 16 lsrs r0, 16 ldr r2, [sp, 0x10] cmp r0, r2 bcs _0804582A ldr r2, =gBattleMoves ldr r0, =gUnknown_020241EA 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 _0804582A ldr r2, =gBattleMons ldrb r1, [r4] movs r0, 0x58 muls r0, r1 adds r0, r2 ldrh r0, [r0, 0x28] cmp r0, 0 beq _0804582A ldr r1, =gUnknown_02024332 movs r0, 0x8 strb r0, [r1, 0x3] bl b_movescr_stack_push_cursor movs r0, 0 movs r1, 0 bl sub_8048760 bl b_movescr_stack_pop_cursor b _0804582A .pool _08045794: ldr r0, =gBattleMoveFlags ldrb r0, [r0] movs r5, 0x29 ands r5, r0 cmp r5, 0 bne _0804582A ldr r1, =gUnknown_0202437C ldr r4, =gEnemyMonIndex ldrb r2, [r4] lsls r0, r2, 2 adds r0, r2 lsls r0, 2 adds r6, r1, 0x4 adds r0, r6 ldr r1, [r0] cmp r1, 0 beq _0804582A ldr r0, =0x0000ffff cmp r1, r0 beq _0804582A ldr r0, =gUnknown_0202420B ldrb r3, [r0] cmp r3, r2 beq _0804582A ldr r2, =gBattleMons ldrb r1, [r0] movs r0, 0x58 muls r0, r1 adds r0, r2 ldrh r1, [r0, 0x28] ldrh r0, [r0, 0x2C] cmp r1, r0 beq _0804582A cmp r1, 0 beq _0804582A ldr r0, =gUnknown_02024208 mov r1, sp ldrh r1, [r1, 0x14] strh r1, [r0] ldr r0, =gUnknown_0202420F strb r3, [r0] ldr r0, =gUnknown_02024474 strb r3, [r0, 0x17] ldrb r1, [r4] 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, [r4] cmp r0, 0 bne _0804580C movs r0, 0x1 negs r0, r0 str r0, [r7] _0804580C: lsls r0, r1, 2 adds r0, r1 lsls r0, 2 adds r0, r6 str r5, [r0] bl b_movescr_stack_push_cursor ldr r1, =gUnknown_02024214 ldr r0, =gUnknown_082DB7F7 str r0, [r1] ldr r0, [sp, 0xC] adds r0, 0x1 lsls r0, 24 lsrs r0, 24 str r0, [sp, 0xC] _0804582A: 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 .pool thumb_func_end berry_effects_maybe thumb_func_start sub_8045868 sub_8045868: @ 8045868 lsls r0, 24 lsrs r0, 24 ldr r2, =gUnknown_020242BC lsls r1, r0, 3 subs r1, r0 lsls r1, 2 adds r1, r2 movs r2, 0 strb r2, [r1, 0x10] ldr r1, =gBattleMons movs r2, 0x58 adds r3, r0, 0 muls r3, r2 adds r1, 0x50 adds r3, r1 ldr r1, [r3] ldr r2, =0xfdffffff ands r1, r2 str r1, [r3] ldr r1, =gUnknown_020242AC lsls r0, 2 adds r0, r1 ldr r1, [r0] ldr r2, =0xffffbfff ands r1, r2 str r1, [r0] bx lr .pool thumb_func_end sub_8045868 thumb_func_start sub_80458B4 sub_80458B4: @ 80458B4 push {lr} ldr r0, =gUnknown_02024068 ldr r0, [r0] cmp r0, 0 bne _080458D0 ldr r1, =gUnknown_0831BD10 ldr r0, =gUnknown_02024214 ldr r0, [r0] ldrb r0, [r0] lsls r0, 2 adds r0, r1 ldr r0, [r0] bl _call_via_r0 _080458D0: pop {r0} bx r0 .pool thumb_func_end sub_80458B4 thumb_func_start sub_80458E0 sub_80458E0: @ 80458E0 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 _080458FE subs r0, 0x1 lsls r0, 24 lsrs r6, r0, 24 b _0804590A _080458FE: ldr r1, =gBattleMoves lsls r0, r7, 1 adds r0, r7 lsls r0, 2 adds r0, r1 ldrb r6, [r0, 0x6] _0804590A: cmp r6, 0x40 bls _08045910 b _08045C20 _08045910: lsls r0, r6, 2 ldr r1, =_08045924 adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _08045924: .4byte _08045A28 .4byte _08045B28 .4byte _08045C1C .4byte _08045C20 .4byte _08045B40 .4byte _08045C20 .4byte _08045C20 .4byte _08045C20 .4byte _08045B28 .4byte _08045C20 .4byte _08045C20 .4byte _08045C20 .4byte _08045C20 .4byte _08045C20 .4byte _08045C20 .4byte _08045C20 .4byte _08045C1C .4byte _08045C20 .4byte _08045C20 .4byte _08045C20 .4byte _08045C20 .4byte _08045C20 .4byte _08045C20 .4byte _08045C20 .4byte _08045C20 .4byte _08045C20 .4byte _08045C20 .4byte _08045C20 .4byte _08045C20 .4byte _08045C20 .4byte _08045C20 .4byte _08045C20 .4byte _08045B28 .4byte _08045C20 .4byte _08045C20 .4byte _08045C20 .4byte _08045C20 .4byte _08045C20 .4byte _08045C20 .4byte _08045C20 .4byte _08045C20 .4byte _08045C20 .4byte _08045C20 .4byte _08045C20 .4byte _08045C20 .4byte _08045C20 .4byte _08045C20 .4byte _08045C20 .4byte _08045C20 .4byte _08045C20 .4byte _08045C20 .4byte _08045C20 .4byte _08045C20 .4byte _08045C20 .4byte _08045C20 .4byte _08045C20 .4byte _08045C20 .4byte _08045C20 .4byte _08045C20 .4byte _08045C20 .4byte _08045C20 .4byte _08045C20 .4byte _08045C20 .4byte _08045C20 .4byte _08045B28 _08045A28: ldr r0, =gUnknown_0202420B ldrb r0, [r0] bl battle_side_get_owner movs r1, 0x1 eors r0, r1 lsls r0, 24 lsrs r4, r0, 24 ldr r1, =gUnknown_02024294 lsls r0, r4, 1 adds r0, r4 lsls r0, 2 adds r2, r0, r1 ldrb r0, [r2, 0x8] cmp r0, 0 beq _08045A5A ldr r1, =gBattleMons ldrb r4, [r2, 0x9] movs r0, 0x58 muls r0, r4 adds r0, r1 ldrh r0, [r0, 0x28] cmp r0, 0 beq _08045A5A b _08045B70 _08045A5A: ldr r0, =gUnknown_0202420B ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 lsrs r4, r0, 24 lsls r0, r7, 1 mov r8, r0 _08045A6A: bl Random lsls r0, 16 lsrs r0, 16 ldr r1, =gUnknown_0202406C ldrb r1, [r1] bl __modsi3 lsls r0, 24 lsrs r5, r0, 24 ldr r6, =gUnknown_0202420B ldrb r3, [r6] cmp r5, r3 beq _08045A6A adds r0, r5, 0 bl battle_side_get_owner lsls r0, 24 lsrs r0, 24 cmp r4, r0 beq _08045A6A ldr r0, =gUnknown_02024210 ldrb r2, [r0] ldr r1, =gBitTable lsls r0, r5, 2 adds r0, r1 ldr r0, [r0] ands r2, r0 cmp r2, 0 bne _08045A6A ldr r0, =gBattleMoves mov r3, r8 adds r1, r3, r7 lsls r1, 2 adds r1, r0 ldrb r0, [r1, 0x2] cmp r0, 0xD beq _08045AB8 b _08045C20 _08045AB8: ldrb r1, [r6] str r2, [sp] movs r0, 0x10 movs r2, 0x1F movs r3, 0 bl ability_something lsls r0, 24 cmp r0, 0 bne _08045ACE b _08045C20 _08045ACE: ldr r2, =gBattleMons movs r1, 0x58 adds r0, r5, 0 muls r0, r1 adds r0, r2 adds r0, 0x20 ldrb r0, [r0] cmp r0, 0x1F bne _08045AE2 b _08045C20 _08045AE2: 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 b_history__record_ability_usage_of_player ldr r1, =gUnknown_0202437C lsls r0, r5, 2 adds r0, r5 lsls r0, 2 adds r0, r1 ldrb r1, [r0] orrs r1, r4 strb r1, [r0] b _08045C20 .pool _08045B28: ldr r0, =gUnknown_0202420B 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 _08045BD2 .pool _08045B40: ldr r0, =gUnknown_0202420B ldrb r0, [r0] bl battle_side_get_owner movs r1, 0x1 eors r0, r1 lsls r0, 24 lsrs r4, r0, 24 ldr r1, =gUnknown_02024294 lsls r0, r4, 1 adds r0, r4 lsls r0, 2 adds r2, r0, r1 ldrb r0, [r2, 0x8] cmp r0, 0 beq _08045B80 ldr r1, =gBattleMons ldrb r4, [r2, 0x9] movs r0, 0x58 muls r0, r4 adds r0, r1 ldrh r0, [r0, 0x28] cmp r0, 0 beq _08045B80 _08045B70: adds r5, r4, 0 b _08045C20 .pool _08045B80: ldr r0, =gBattleTypeFlags ldr r0, [r0] movs r4, 0x1 ands r0, r4 cmp r0, 0 beq _08045BFC movs r0, 0x4 ands r6, r0 cmp r6, 0 beq _08045BFC ldr r0, =gUnknown_0202420B ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 bne _08045BC0 bl Random adds r1, r4, 0 ands r1, r0 cmp r1, 0 beq _08045BBC movs r0, 0x1 b _08045BD2 .pool _08045BBC: movs r0, 0x3 b _08045BD2 _08045BC0: bl Random adds r1, r4, 0 ands r1, r0 cmp r1, 0 beq _08045BD0 movs r0, 0 b _08045BD2 _08045BD0: movs r0, 0x2 _08045BD2: bl battle_get_side_with_given_state lsls r0, 24 lsrs r5, r0, 24 ldr r0, =gUnknown_02024210 ldrb r1, [r0] ldr r2, =gBitTable lsls r0, r5, 2 adds r0, r2 ldr r0, [r0] ands r1, r0 cmp r1, 0 beq _08045C20 movs r0, 0x2 eors r5, r0 b _08045C20 .pool _08045BFC: ldr r0, =gUnknown_0202420B 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 _08045C20 .pool _08045C1C: ldr r0, =gUnknown_0202420B ldrb r5, [r0] _08045C20: ldr r0, =gUnknown_0202420B ldrb r0, [r0] ldr r1, =gUnknown_0202449C ldr r1, [r1] adds r0, r1 strb r5, [r0, 0xC] adds r0, r5, 0 add sp, 0x4 pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 .pool thumb_func_end sub_80458E0 thumb_func_start sub_8045C44 sub_8045C44: @ 8045C44 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 beq _08045C8A ldr r0, =gUnknown_0202406E lsls r4, 1 adds r5, r4, r0 ldrh r0, [r5] movs r7, 0x64 muls r0, r7 ldr r6, =gPlayerParty adds r0, r6 movs r1, 0xB movs r2, 0 bl GetMonData movs r1, 0xCD lsls r1, 1 cmp r0, r1 beq _08045C98 ldrh r0, [r5] muls r0, r7 adds r0, r6 movs r1, 0xB movs r2, 0 bl GetMonData cmp r0, 0x97 beq _08045C98 _08045C8A: movs r0, 0x1 b _08045CAE .pool _08045C98: ldr r0, =gUnknown_0202406E adds r0, r4, r0 ldrh r1, [r0] movs r0, 0x64 muls r0, r1 ldr r1, =gPlayerParty adds r0, r1 movs r1, 0x50 movs r2, 0 bl GetMonData _08045CAE: pop {r4-r7} pop {r1} bx r1 .pool thumb_func_end sub_8045C44 thumb_func_start sub_8045CBC sub_8045CBC: @ 8045CBC push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x10 movs r6, 0 ldr r5, =gBattleTypeFlags ldr r0, [r5] ldr r1, =0x02000002 ands r0, r1 cmp r0, 0 bne _08045DAC ldr r4, =gUnknown_0202420B ldrb r0, [r4] bl battle_side_get_owner lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _08045DAC ldrb r0, [r4] bl sub_8045C44 cmp r0, 0 beq _08045D76 ldr r0, [r5] movs r1, 0x80 lsls r1, 15 ands r0, r1 cmp r0, 0 beq _08045D08 ldrb r0, [r4] bl battle_get_per_side_status lsls r0, 24 lsrs r0, 24 cmp r0, 0x2 beq _08045DAC _08045D08: ldr r0, =gBattleTypeFlags ldr r1, [r0] ldr r0, =0x003f0100 ands r0, r1 cmp r0, 0 bne _08045DAC movs r0, 0x80 lsls r0, 17 ands r1, r0 cmp r1, 0 bne _08045DAC ldr r2, =gBattleMons ldr r0, =gUnknown_0202420B ldrb r1, [r0] movs r0, 0x58 muls r1, r0 adds r0, r2, 0 adds r0, 0x54 adds r0, r1, r0 ldr r0, [r0] adds r2, 0x3C adds r1, r2 bl sub_806E8D4 lsls r0, 24 cmp r0, 0 beq _08045DAC ldr r0, =0x0000086e bl FlagGet lsls r0, 24 cmp r0, 0 bne _08045DAC movs r6, 0xA ldr r0, =0x00000868 bl FlagGet lsls r0, 24 cmp r0, 0 beq _08045D5A movs r6, 0x1E _08045D5A: ldr r0, =0x0000086a bl FlagGet lsls r0, 24 cmp r0, 0 beq _08045D68 movs r6, 0x32 _08045D68: ldr r0, =0x0000086c bl FlagGet lsls r0, 24 cmp r0, 0 beq _08045D76 movs r6, 0x46 _08045D76: ldr r5, =gBattleMons ldr r0, =gUnknown_0202420B mov r8, r0 ldrb r0, [r0] movs r7, 0x58 muls r0, r7 adds r0, r5 adds r0, 0x2A ldrb r0, [r0] cmp r0, r6 bls _08045DAC bl Random movs r1, 0xFF ands r1, r0 mov r2, r8 ldrb r0, [r2] adds r2, r0, 0 muls r2, r7 adds r0, r2, r5 adds r0, 0x2A ldrb r0, [r0] adds r0, r6 muls r0, r1 asrs r4, r0, 8 cmp r4, r6 bge _08045DD4 _08045DAC: movs r0, 0 b _08045FD0 .pool _08045DD4: ldr r3, =gUnknown_020241EA ldrh r0, [r3] cmp r0, 0x63 bne _08045DEA adds r0, r5, 0 adds r0, 0x50 adds r0, r2, r0 ldr r1, [r0] ldr r2, =0xff7fffff ands r1, r2 str r1, [r0] _08045DEA: mov r1, r8 ldrb r0, [r1] muls r0, r7 adds r1, r5, 0 adds r1, 0x4C adds r0, r1 ldr r0, [r0] movs r1, 0x7 ands r0, r1 cmp r0, 0 beq _08045E20 ldrh r0, [r3] cmp r0, 0xAD beq _08045E0A cmp r0, 0xD6 bne _08045E20 _08045E0A: ldr r1, =gUnknown_02024214 ldr r0, =gUnknown_082DB695 b _08045F7A .pool _08045E20: bl Random movs r5, 0xFF adds r1, r5, 0 ands r1, r0 ldr r7, =gBattleMons ldr r2, =gUnknown_0202420B 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 _08045EE8 ldr r6, =gBitTable ldr r5, =gUnknown_020241E8 ldrb r0, [r5] lsls r0, 2 adds r0, r6 ldrb r1, [r0] adds r0, r3, 0 movs r2, 0xFF bl sub_803FECC lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0xF bne _08045E68 b _08045F6A _08045E68: ldr r1, =gUnknown_020241E9 mov r8, r1 movs r7, 0x3 _08045E6E: bl Random ands r0, r7 mov r2, r8 strb r0, [r2] strb r0, [r5] ldrb r0, [r5] lsls r0, 2 adds r0, r6 ldr r0, [r0] ands r0, r4 cmp r0, 0 bne _08045E6E ldr r4, =gUnknown_020241EE ldr r3, =gBattleMons ldr r0, =gUnknown_020241E8 ldrb r0, [r0] lsls r0, 1 ldr r1, =gUnknown_0202420B 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 r1, =gUnknown_02024214 ldr r0, =gUnknown_082DB6A5 str r0, [r1] ldrh r0, [r4] movs r1, 0 bl sub_80458E0 ldr r1, =gEnemyMonIndex strb r0, [r1] ldr r2, =gUnknown_02024280 ldr r0, [r2] movs r1, 0x80 lsls r1, 14 b _08045FCA .pool _08045EE8: subs r0, r2, r6 lsls r0, 24 lsrs r6, r0, 24 bl Random adds r4, r5, 0 ands r4, r0 cmp r4, r6 bge _08045F64 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 _08045F64 adds r0, r1, r7 adds r0, 0x20 ldrb r0, [r0] cmp r0, 0x48 beq _08045F64 cmp r0, 0xF beq _08045F64 movs r2, 0 ldr r0, =gUnknown_0202406C ldrb r3, [r0] mov r8, r0 cmp r2, r3 bge _08045F4A ldr r0, [r7, 0x50] movs r1, 0x70 ands r0, r1 cmp r0, 0 bne _08045F4A adds r1, r7, 0 adds r1, 0x50 movs r5, 0x70 _08045F3A: adds r1, 0x58 adds r2, 0x1 cmp r2, r3 bge _08045F4A ldr r0, [r1] ands r0, r5 cmp r0, 0 beq _08045F3A _08045F4A: mov r0, r8 ldrb r0, [r0] cmp r2, r0 bne _08045F64 ldr r1, =gUnknown_02024214 ldr r0, =gUnknown_082DB6D9 b _08045F7A .pool _08045F64: subs r4, r6 cmp r4, r6 blt _08045F8C _08045F6A: bl Random ldr r2, =gUnknown_02024332 movs r1, 0x3 ands r1, r0 strb r1, [r2, 0x5] ldr r1, =gUnknown_02024214 ldr r0, =gUnknown_082DB6AD _08045F7A: str r0, [r1] movs r0, 0x1 b _08045FD0 .pool _08045F8C: ldr r4, =gUnknown_0202420B ldrb r1, [r4] movs r0, 0x58 muls r1, r0 ldr r0, =gBattleMons 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_806957C ldr r1, =gBattleMoveDamage str r0, [r1] ldr r1, =gEnemyMonIndex ldrb r0, [r4] strb r0, [r1] ldr r1, =gUnknown_02024214 ldr r0, =gUnknown_082DB6F0 str r0, [r1] ldr r2, =gUnknown_02024280 ldr r0, [r2] movs r1, 0x80 lsls r1, 12 _08045FCA: orrs r0, r1 str r0, [r2] movs r0, 0x2 _08045FD0: add sp, 0x10 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r1} bx r1 .pool thumb_func_end sub_8045CBC thumb_func_start atk00_attackcanceler atk00_attackcanceler: @ 8045FFC push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x4 ldr r0, =gUnknown_0202433A ldrb r0, [r0] cmp r0, 0 beq _08046020 ldr r1, =gUnknown_02024083 movs r0, 0xC strb r0, [r1] b _08046398 .pool _08046020: ldr r2, =gBattleMons ldr r0, =gUnknown_0202420B ldrb r1, [r0] movs r0, 0x58 muls r0, r1 adds r0, r2 ldrh r0, [r0, 0x28] cmp r0, 0 bne _08046064 ldr r2, =gUnknown_02024280 ldr r1, [r2] movs r0, 0x80 lsls r0, 2 ands r0, r1 cmp r0, 0 bne _08046064 movs r0, 0x80 lsls r0, 12 orrs r1, r0 str r1, [r2] ldr r1, =gUnknown_02024214 ldr r0, =gUnknown_082D8A4E b _08046396 .pool _08046064: bl sub_8041A6C lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0 beq _08046072 b _08046398 _08046072: ldr r0, =gEnemyMonIndex ldrb r1, [r0] str r2, [sp] movs r0, 0x2 movs r2, 0 movs r3, 0 bl ability_something lsls r0, 24 cmp r0, 0 beq _0804608A b _08046398 _0804608A: ldr r4, =gBattleMons ldr r0, =gUnknown_020241E8 ldrb r1, [r0] ldr r3, =gUnknown_0202420B 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, =gUnknown_02024280 cmp r0, 0 bne _08046108 ldr r0, =gUnknown_020241EA ldrh r0, [r0] cmp r0, 0xA5 beq _08046108 ldr r0, [r5] ldr r1, =0x00800200 ands r0, r1 cmp r0, 0 bne _08046108 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 _08046108 ldr r1, =gUnknown_02024214 ldr r0, =gUnknown_082DB07A str r0, [r1] ldr r2, =gBattleMoveFlags ldrb r0, [r2] movs r1, 0x1 orrs r0, r1 strb r0, [r2] b _08046398 .pool _08046108: ldr r0, [r5] ldr r1, =0xff7fffff ands r0, r1 str r0, [r5] movs r6, 0x80 lsls r6, 18 ands r0, r6 cmp r0, 0 bne _08046160 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 _08046160 bl sub_8045CBC lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0 beq _08046160 cmp r2, 0x2 bne _08046150 ldr r0, [r5] orrs r0, r6 str r0, [r5] b _08046398 .pool _08046150: ldr r0, =gBattleMoveFlags ldrb r1, [r0] movs r2, 0x1 orrs r1, r2 strb r1, [r0] b _08046398 .pool _08046160: ldr r2, =gUnknown_02024280 ldr r0, [r2] movs r1, 0x80 lsls r1, 18 orrs r0, r1 str r0, [r2] ldr r2, =gUnknown_0202433C ldr r1, =gEnemyMonIndex 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 _080461E8 ldr r2, =gBattleMoves ldr r0, =gUnknown_020241EA 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 _080461E8 ldr r0, =gUnknown_0202420B ldrb r0, [r0] ldr r2, =0x00000115 adds r1, r3, 0 bl sub_803F480 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, =gUnknown_02024214 ldr r0, =gUnknown_082DB194 b _08046396 .pool _080461E8: movs r2, 0 ldr r0, =gUnknown_0202406C ldrb r0, [r0] cmp r2, r0 bge _0804622A ldr r6, =gUnknown_0202433C ldr r1, =gBattleMoves mov r12, r1 adds r5, r0, 0 ldr r7, =gUnknown_0202407E _080461FC: adds r4, r2, r7 ldrb r3, [r4] lsls r0, r3, 4 adds r0, r6 ldrb r0, [r0] lsls r0, 26 cmp r0, 0 bge _08046224 ldr r0, =gUnknown_020241EA 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 _08046224 b _08046350 _08046224: adds r2, 0x1 cmp r2, r5 blt _080461FC _0804622A: ldr r0, =gUnknown_0202437C 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 _08046288 movs r0, 0x3 negs r0, r0 ands r0, r3 strb r0, [r1] ldr r4, =gUnknown_0202420A movs r0, 0x1F strb r0, [r4] bl b_movescr_stack_push_cursor ldr r1, =gUnknown_02024214 ldr r0, =gUnknown_082DB53E str r0, [r1] mov r1, r8 ldrb r0, [r1] ldrb r1, [r4] bl b_history__record_ability_usage_of_player b _08046398 .pool _08046288: lsls r0, r2, 4 add r0, r9 ldrb r0, [r0] lsls r0, 31 cmp r0, 0 bne _08046296 b _08046390 _08046296: ldr r1, =gBattleMoves ldr r2, =gUnknown_020241EA 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 _08046390 cmp r3, 0xAE bne _080462D4 ldr r2, =gBattleMons ldr r0, =gUnknown_0202420B 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 _080462D4 adds r0, r1, 0 adds r0, 0x22 ldrb r0, [r0] cmp r0, 0x7 bne _08046390 _080462D4: ldrh r0, [r4] bl sub_8052F48 lsls r0, 24 cmp r0, 0 beq _080462FA ldr r1, =gBattleMons ldr r0, =gUnknown_0202420B 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 _08046390 _080462FA: ldr r0, =gUnknown_0202420B ldrb r0, [r0] bl b_cancel_multi_turn_move_maybe ldr r2, =gBattleMoveFlags ldrb r0, [r2] movs r1, 0x1 orrs r0, r1 strb r0, [r2] ldr r1, =gUnknown_02024250 ldr r3, =gEnemyMonIndex ldrb r0, [r3] lsls r0, 1 adds r0, r1 movs r2, 0 strh r2, [r0] ldr r1, =gUnknown_02024258 ldrb r0, [r3] lsls r0, 1 adds r0, r1 strh r2, [r0] ldr r1, =gUnknown_02024332 movs r0, 0x1 strb r0, [r1, 0x6] b _08046390 .pool _08046350: ldr r0, =gUnknown_0202420B ldrb r0, [r0] ldr r2, =0x00000121 adds r1, r3, 0 bl sub_803F480 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 r1, =gUnknown_02024474 ldrb r0, [r4] strb r0, [r1, 0x17] bl b_movescr_stack_push_cursor ldr r1, =gUnknown_02024214 ldr r0, =gUnknown_082DB1AC b _08046396 .pool _08046390: ldr r1, =gUnknown_02024214 ldr r0, [r1] adds r0, 0x1 _08046396: str r0, [r1] _08046398: add sp, 0x4 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end atk00_attackcanceler thumb_func_start mcmd_jump_if_move_not_executed mcmd_jump_if_move_not_executed: @ 80463AC push {r4-r6,lr} sub sp, 0x4 lsls r0, 24 lsrs r0, 24 lsls r1, 16 lsrs r6, r1, 16 ldr r1, =gUnknown_02024214 ldr r5, [r1] adds r4, r5, r0 ldr r0, =gBattleMoveFlags ldrb r1, [r0] movs r0, 0x29 ands r0, r1 cmp r0, 0 beq _0804640C ldr r1, =gUnknown_02024250 ldr r3, =gEnemyMonIndex ldrb r0, [r3] lsls r0, 1 adds r0, r1 movs r2, 0 strh r2, [r0] ldr r1, =gUnknown_02024258 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 _08046426 .pool _0804640C: bl b_feature_update_destiny_bond ldr r0, =gEnemyMonIndex ldrb r1, [r0] str r6, [sp] movs r0, 0x3 movs r2, 0 movs r3, 0 bl ability_something lsls r0, 24 cmp r0, 0 bne _0804642A _08046426: ldr r0, =gUnknown_02024214 str r4, [r0] _0804642A: add sp, 0x4 pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end mcmd_jump_if_move_not_executed thumb_func_start atk40_801DBA0 atk40_801DBA0: @ 804643C push {lr} ldr r1, =gUnknown_0202433C ldr r0, =gEnemyMonIndex ldrb r0, [r0] lsls r0, 4 adds r0, r1 ldrb r0, [r0] lsls r0, 31 cmp r0, 0 beq _0804649C ldr r2, =gBattleMoves ldr r0, =gUnknown_020241EA 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 _0804649C ldr r2, =gBattleMoveFlags 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, =gUnknown_02024332 movs r0, 0x1 strb r0, [r1, 0x6] b _080464A4 .pool _0804649C: ldr r1, =gUnknown_02024214 ldr r0, [r1] adds r0, 0x5 str r0, [r1] _080464A4: pop {r0} bx r0 .pool thumb_func_end atk40_801DBA0 thumb_func_start sub_80464AC sub_80464AC: @ 80464AC push {r4,lr} lsls r0, 16 lsrs r3, r0, 16 movs r4, 0 ldr r1, =gUnknown_0202433C ldr r0, =gEnemyMonIndex ldrb r0, [r0] lsls r0, 4 adds r0, r1 ldrb r0, [r0] lsls r0, 31 cmp r0, 0 beq _080464F8 ldr r2, =gBattleMoves ldr r0, =gUnknown_020241EA 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 _080464F8 ldr r2, =gBattleMoveFlags 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, =gUnknown_02024332 movs r0, 0x1 strb r0, [r1, 0x6] movs r4, 0x1 _080464F8: adds r0, r4, 0 pop {r4} pop {r1} bx r1 .pool thumb_func_end sub_80464AC thumb_func_start sub_8046518 sub_8046518: @ 8046518 push {r4-r6,lr} sub sp, 0x4 lsls r0, 16 lsrs r5, r0, 16 ldr r2, =gUnknown_020242AC ldr r3, =gEnemyMonIndex 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 _0804654A ldr r1, =gUnknown_020242BC lsls r0, r4, 3 subs r0, r4 lsls r0, 2 adds r0, r1 ldr r1, =gUnknown_0202420B ldrb r0, [r0, 0x15] ldrb r1, [r1] cmp r0, r1 beq _08046634 _0804654A: ldr r0, =gUnknown_02024280 ldr r1, [r0] movs r2, 0x80 lsls r2, 9 ands r1, r2 adds r2, r0, 0 cmp r1, 0 bne _08046590 ldrb r0, [r3] lsls r0, 2 adds r0, r6 ldr r0, [r0] movs r1, 0x40 ands r0, r1 cmp r0, 0 beq _08046590 _0804656A: ldr r0, =gBattleMoveFlags ldrb r1, [r0] movs r2, 0x1 orrs r1, r2 strb r1, [r0] b _08046634 .pool _08046590: ldr r0, [r2] ldr r1, =0xfffeffff ands r0, r1 str r0, [r2] movs r1, 0x80 lsls r1, 10 ands r0, r1 cmp r0, 0 bne _080465B2 ldrb r0, [r3] lsls r0, 2 adds r0, r6 ldr r0, [r0] movs r1, 0x80 ands r0, r1 cmp r0, 0 bne _0804656A _080465B2: ldr r0, [r2] ldr r1, =0xfffdffff ands r0, r1 str r0, [r2] movs r1, 0x80 lsls r1, 11 ands r0, r1 cmp r0, 0 bne _080465D2 ldrb r0, [r3] lsls r0, 2 adds r0, r6 ldr r0, [r0] ands r0, r1 cmp r0, 0 bne _0804656A _080465D2: ldr r0, [r2] ldr r1, =0xfffbffff 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 ability_something lsls r0, 24 lsrs r0, 24 lsls r4, r5, 1 cmp r0, 0 bne _08046622 str r0, [sp] movs r0, 0x13 movs r1, 0 movs r2, 0x4D movs r3, 0 bl ability_something lsls r0, 24 cmp r0, 0 bne _08046622 ldr r0, =gBattleWeather ldrh r1, [r0] movs r0, 0x7 ands r0, r1 cmp r0, 0 beq _08046622 ldr r0, =gBattleMoves adds r1, r4, r5 lsls r1, 2 adds r1, r0 ldrb r0, [r1] cmp r0, 0x98 beq _08046634 _08046622: ldr r1, =gBattleMoves adds r0, r4, r5 lsls r0, 2 adds r0, r1 ldrb r0, [r0] cmp r0, 0x11 beq _08046634 cmp r0, 0x4E bne _08046654 _08046634: movs r0, 0x7 adds r1, r5, 0 bl mcmd_jump_if_move_not_executed movs r0, 0x1 b _08046656 .pool _08046654: movs r0, 0 _08046656: add sp, 0x4 pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_8046518 thumb_func_start atk01_accuracycheck atk01_accuracycheck: @ 8046660 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x8 ldr r0, =gUnknown_02024214 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 _0804671C ldr r2, =gUnknown_020242AC ldr r3, =gEnemyMonIndex ldrb r4, [r3] lsls r0, r4, 2 adds r0, r2 ldr r1, [r0] movs r0, 0x18 ands r1, r0 cmp r1, 0 beq _080466D0 ldr r0, =0x0000ffff cmp r6, r0 bne _080466D0 ldr r1, =gUnknown_020242BC lsls r0, r4, 3 subs r0, r4 lsls r0, 2 adds r0, r1 ldr r1, =gUnknown_0202420B ldrb r0, [r0, 0x15] ldrb r1, [r1] cmp r0, r1 bne _080466D0 adds r0, r5, 0x7 str r0, [r7] b _080469D2 .pool _080466D0: ldrb r0, [r3] lsls r0, 2 adds r0, r2 ldr r0, [r0] ldr r1, =0x000400c0 ands r0, r1 cmp r0, 0 beq _08046700 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 _080469D2 .pool _08046700: movs r0, 0 bl sub_80464AC lsls r0, 24 cmp r0, 0 beq _0804670E b _080469D2 _0804670E: ldr r1, =gUnknown_02024214 ldr r0, [r1] adds r0, 0x7 str r0, [r1] b _080469D2 .pool _0804671C: cmp r6, 0 bne _08046724 ldr r0, =gUnknown_020241EA ldrh r6, [r0] _08046724: ldr r0, =gUnknown_0202449C ldr r0, [r0] ldrb r0, [r0, 0x13] cmp r0, 0 beq _08046744 movs r1, 0x3F mov r10, r1 mov r2, r10 ands r2, r0 mov r10, r2 b _08046752 .pool _08046744: ldr r1, =gBattleMoves lsls r0, r6, 1 adds r0, r6 lsls r0, 2 adds r0, r1 ldrb r0, [r0, 0x2] mov r10, r0 _08046752: adds r0, r6, 0 bl sub_80464AC lsls r0, 24 cmp r0, 0 beq _08046760 b _080469D2 _08046760: adds r0, r6, 0 bl sub_8046518 lsls r0, 24 cmp r0, 0 beq _0804676E b _080469D2 _0804676E: ldr r3, =gBattleMons ldr r0, =gEnemyMonIndex 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 _080467A8 ldr r0, =gUnknown_0202420B ldrb r0, [r0] muls r0, r2 adds r0, r3 ldrb r5, [r0, 0x1E] b _080467BE .pool _080467A8: ldr r0, =gUnknown_0202420B 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 _080467BE: lsls r0, r5, 24 cmp r0, 0 bge _080467C6 movs r5, 0 _080467C6: lsls r0, r5, 24 asrs r0, 24 cmp r0, 0xC ble _080467D0 movs r5, 0xC _080467D0: ldr r1, =gBattleMoves lsls r4, r6, 1 adds r0, r4, r6 lsls r0, 2 adds r7, r0, r1 ldrb r3, [r7, 0x3] mov r8, r3 movs r0, 0 str r0, [sp] movs r0, 0x13 movs r1, 0 movs r2, 0xD movs r3, 0 bl ability_something lsls r0, 24 lsrs r0, 24 str r4, [sp, 0x4] cmp r0, 0 bne _08046822 str r0, [sp] movs r0, 0x13 movs r1, 0 movs r2, 0x4D movs r3, 0 bl ability_something lsls r0, 24 cmp r0, 0 bne _08046822 ldr r0, =gBattleWeather ldrh r1, [r0] movs r0, 0x60 ands r0, r1 cmp r0, 0 beq _08046822 ldrb r0, [r7] cmp r0, 0x98 bne _08046822 movs r0, 0x32 mov r8, r0 _08046822: ldr r1, =gUnknown_0831C0F4 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, =gBattleMons ldr r0, =gUnknown_0202420B ldrb r0, [r0] movs r5, 0x58 muls r0, r5 adds r0, r7 adds r0, 0x20 ldrb r0, [r0] cmp r0, 0xE bne _08046860 lsls r0, r4, 6 adds r0, r4 lsls r0, 1 movs r1, 0x64 bl __divsi3 lsls r0, 16 lsrs r4, r0, 16 _08046860: movs r0, 0 str r0, [sp] movs r0, 0x13 movs r1, 0 movs r2, 0xD movs r3, 0 bl ability_something lsls r0, 24 lsrs r0, 24 cmp r0, 0 bne _080468B8 str r0, [sp] movs r0, 0x13 movs r1, 0 movs r2, 0x4D movs r3, 0 bl ability_something lsls r0, 24 cmp r0, 0 bne _080468B8 ldr r0, =gEnemyMonIndex ldrb r0, [r0] muls r0, r5 adds r0, r7 adds r0, 0x20 ldrb r0, [r0] cmp r0, 0x8 bne _080468B8 ldr r0, =gBattleWeather ldrh r1, [r0] movs r0, 0x18 ands r0, r1 cmp r0, 0 beq _080468B8 lsls r0, r4, 2 adds r0, r4 lsls r0, 4 movs r1, 0x64 bl __divsi3 lsls r0, 16 lsrs r4, r0, 16 _080468B8: ldr r2, =gBattleMons ldr r0, =gUnknown_0202420B 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 _080468E4 mov r1, r10 cmp r1, 0x8 bhi _080468E4 lsls r0, r4, 2 adds r0, r4 lsls r0, 4 movs r1, 0x64 bl __divsi3 lsls r0, 16 lsrs r4, r0, 16 _080468E4: ldr r2, =gEnemyMonIndex mov r8, r2 ldrb r2, [r2] 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 _08046928 ldr r1, =gUnknown_02024404 lsls r0, r2, 3 subs r0, r2 lsls r0, 2 adds r0, r1 ldrb r5, [r0, 0x7] ldrb r2, [r0, 0x1A] b _08046944 .pool _08046928: 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 _08046944: ldr r0, =gUnknown_0202420F ldr r1, =gEnemyMonIndex ldrb r1, [r1] strb r1, [r0] cmp r5, 0x16 bne _08046960 movs r0, 0x64 subs r0, r2 muls r0, r4 movs r1, 0x64 bl __divsi3 lsls r0, 16 lsrs r4, r0, 16 _08046960: 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 _080469CA ldr r2, =gBattleMoveFlags ldrb r0, [r2] movs r1, 0x1 orrs r0, r1 strb r0, [r2] ldr r0, =gBattleTypeFlags ldr r0, [r0] movs r1, 0x1 ands r0, r1 cmp r0, 0 beq _080469C0 ldr r1, =gBattleMoves ldr r2, [sp, 0x4] adds r0, r2, r6 lsls r0, 2 adds r0, r1 ldrb r0, [r0, 0x6] cmp r0, 0x8 beq _080469A2 cmp r0, 0x20 bne _080469C0 _080469A2: ldr r1, =gUnknown_02024332 movs r0, 0x2 b _080469C4 .pool _080469C0: ldr r1, =gUnknown_02024332 movs r0, 0 _080469C4: strb r0, [r1, 0x6] bl b_wonderguard_and_levitate _080469CA: movs r0, 0x7 adds r1, r6, 0 bl mcmd_jump_if_move_not_executed _080469D2: add sp, 0x8 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end atk01_accuracycheck thumb_func_start atk02_attackstring atk02_attackstring: @ 80469E8 push {r4,r5,lr} ldr r0, =gUnknown_02024068 ldr r5, [r0] cmp r5, 0 bne _08046A20 ldr r4, =gUnknown_02024280 ldr r0, [r4] movs r1, 0xC0 lsls r1, 3 ands r0, r1 cmp r0, 0 bne _08046A14 ldr r0, =gUnknown_0202420B 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] _08046A14: ldr r0, =gUnknown_02024214 ldr r1, [r0] adds r1, 0x1 str r1, [r0] ldr r0, =gUnknown_02024332 strb r5, [r0, 0x7] _08046A20: pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end atk02_attackstring thumb_func_start atk03_ppreduce atk03_ppreduce: @ 8046A3C push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x4 movs r6, 0x1 ldr r0, =gUnknown_02024068 ldr r0, [r0] cmp r0, 0 beq _08046A54 b _08046BEE _08046A54: ldr r1, =gUnknown_0202437C ldr r2, =gUnknown_0202420B 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 _08046AF6 ldr r2, =gBattleMoves ldr r0, =gUnknown_020241EA ldrh r1, [r0] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r0, [r0, 0x6] cmp r0, 0x20 beq _08046AA6 cmp r0, 0x20 bgt _08046AA0 cmp r0, 0x8 beq _08046ABC b _08046AD6 .pool _08046AA0: cmp r0, 0x40 beq _08046ABC b _08046AD6 _08046AA6: str r4, [sp] movs r0, 0x12 adds r1, r3, 0 movs r2, 0x2E movs r3, 0 bl ability_something lsls r0, 24 lsrs r0, 24 adds r6, r0, 0x1 b _08046AF6 _08046ABC: mov r0, r9 ldrb r1, [r0] movs r0, 0 str r0, [sp] movs r0, 0x10 movs r2, 0x2E movs r3, 0 bl ability_something lsls r0, 24 lsrs r0, 24 adds r6, r0 b _08046AF6 _08046AD6: ldr r1, =gEnemyMonIndex mov r2, r9 ldrb r0, [r2] ldrb r7, [r1] cmp r0, r7 beq _08046AF6 ldr r2, =gBattleMons ldrb r1, [r1] movs r0, 0x58 muls r0, r1 adds r0, r2 adds r0, 0x20 ldrb r0, [r0] cmp r0, 0x2E bne _08046AF6 adds r6, 0x1 _08046AF6: ldr r0, =gUnknown_02024280 ldr r4, [r0] movs r0, 0xA0 lsls r0, 4 ands r4, r0 cmp r4, 0 bne _08046BDC ldr r2, =gBattleMons ldr r3, =gUnknown_020241E8 ldr r1, =gUnknown_0202420B 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 _08046BDC ldr r0, =gUnknown_0202433C 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 _08046B70 subs r0, r6 strb r0, [r2] b _08046B72 .pool _08046B70: strb r4, [r2] _08046B72: 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 _08046BDC ldr r1, =gUnknown_020242BC lsls r0, r3, 3 subs r0, r3 lsls r0, 2 adds r0, r1 ldrb r1, [r0, 0x18] lsrs r1, 4 ldr r2, =gBitTable ldrb r0, [r7] lsls r0, 2 adds r0, r2 ldr r0, [r0] ands r1, r0 cmp r1, 0 bne _08046BDC ldr r0, =gUnknown_02024064 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 _08046BDC: ldr r2, =gUnknown_02024280 ldr r0, [r2] ldr r1, =0xfffff7ff ands r0, r1 str r0, [r2] ldr r1, =gUnknown_02024214 ldr r0, [r1] adds r0, 0x1 str r0, [r1] _08046BEE: add sp, 0x4 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end atk03_ppreduce thumb_func_start atk04_critcalc atk04_critcalc: @ 8046C18 push {r4-r7,lr} ldr r1, =gBattleMons ldr r0, =gUnknown_0202420B ldrb r2, [r0] movs r0, 0x58 muls r0, r2 adds r0, r1 ldrh r0, [r0, 0x2E] cmp r0, 0xAF bne _08046C48 ldr r1, =gUnknown_02024404 lsls r0, r2, 3 subs r0, r2 lsls r0, 2 adds r0, r1 ldrb r6, [r0, 0x7] b _08046C50 .pool _08046C48: bl itemid_get_x12 lsls r0, 24 lsrs r6, r0, 24 _08046C50: ldr r1, =gUnknown_0202420F ldr r3, =gUnknown_0202420B ldrb r0, [r3] strb r0, [r1] ldr r4, =gBattleMons 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, =gBattleMoves ldr r0, =gUnknown_020241EA 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 _08046C90 adds r5, 0x1 _08046C90: adds r0, r5, 0 cmp r1, 0x4B bne _08046C98 adds r0, 0x1 _08046C98: cmp r1, 0xC8 bne _08046C9E adds r0, 0x1 _08046C9E: adds r2, r0, 0 cmp r1, 0xD1 bne _08046CA6 adds r2, 0x1 _08046CA6: movs r1, 0 cmp r6, 0x3F bne _08046CB6 adds r0, r7, r4 ldrh r0, [r0] cmp r0, 0x71 bne _08046CB6 movs r1, 0x1 _08046CB6: lsls r5, r1, 1 movs r3, 0 cmp r6, 0x42 bne _08046CD0 mov r0, r12 ldrb r1, [r0] movs r0, 0x58 muls r0, r1 adds r0, r4 ldrh r0, [r0] cmp r0, 0x53 bne _08046CD0 movs r3, 0x1 _08046CD0: lsls r1, r3, 1 cmp r6, 0x29 bne _08046CF0 adds r0, r5, 0x1 adds r0, r2, r0 b _08046CF2 .pool _08046CF0: adds r0, r2, r5 _08046CF2: adds r0, r1 lsls r0, 16 lsrs r0, 16 adds r5, r0, 0 cmp r5, 0x4 bls _08046D00 movs r5, 0x4 _08046D00: ldr r0, =gEnemyMonIndex ldrb r1, [r0] movs r0, 0x58 muls r0, r1 adds r0, r4 adds r0, 0x20 ldrb r4, [r0] cmp r4, 0x4 beq _08046D70 cmp r4, 0x4B beq _08046D70 ldr r1, =gUnknown_020242AC 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 _08046D70 ldr r0, =gBattleTypeFlags ldr r0, [r0] movs r1, 0x84 lsls r1, 2 ands r0, r1 cmp r0, 0 bne _08046D70 bl Random ldr r2, =gUnknown_0831C128 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 _08046D70 ldr r1, =gCritMultiplier movs r0, 0x2 b _08046D74 .pool _08046D70: ldr r1, =gCritMultiplier movs r0, 0x1 _08046D74: strb r0, [r1] ldr r1, =gUnknown_02024214 ldr r0, [r1] adds r0, 0x1 str r0, [r1] pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end atk04_critcalc thumb_func_start atk05_cmd5 atk05_cmd5: @ 8046D8C push {r4-r7,lr} sub sp, 0x10 ldr r4, =gUnknown_0202428E ldr r5, =gEnemyMonIndex ldrb r0, [r5] bl battle_get_per_side_status movs r1, 0x1 ands r1, r0 lsls r1, 1 adds r1, r4 ldrh r3, [r1] ldr r6, =gUnknown_0202420B ldrb r0, [r6] movs r4, 0x58 muls r0, r4 ldr r2, =gBattleMons adds r0, r2 ldrb r1, [r5] muls r1, r4 adds r1, r2 ldr r7, =gUnknown_020241EA ldrh r2, [r7] ldr r4, =gUnknown_02024400 ldrh r4, [r4] str r4, [sp] ldr r4, =gUnknown_0202449C ldr r4, [r4] ldrb r4, [r4, 0x13] str r4, [sp, 0x4] ldrb r4, [r6] str r4, [sp, 0x8] ldrb r4, [r5] str r4, [sp, 0xC] bl sub_806957C ldr r4, =gBattleMoveDamage ldr r1, =gCritMultiplier ldrb r1, [r1] muls r1, r0 ldr r0, =gUnknown_02024474 ldrb r0, [r0, 0xE] adds r3, r1, 0 muls r3, r0 str r3, [r4] ldr r1, =gUnknown_020242AC ldrb r0, [r6] lsls r0, 2 adds r0, r1 ldr r0, [r0] movs r1, 0x80 lsls r1, 2 ands r0, r1 cmp r0, 0 beq _08046E10 ldr r2, =gBattleMoves ldrh r1, [r7] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r0, [r0, 0x2] cmp r0, 0xD bne _08046E10 lsls r0, r3, 1 str r0, [r4] _08046E10: ldr r1, =gUnknown_0202433C ldr r0, =gUnknown_0202420B ldrb r0, [r0] lsls r0, 4 adds r0, r1 ldrb r0, [r0] lsls r0, 28 cmp r0, 0 bge _08046E32 ldr r4, =gBattleMoveDamage ldr r1, [r4] lsls r0, r1, 4 subs r0, r1 movs r1, 0xA bl __divsi3 str r0, [r4] _08046E32: ldr r1, =gUnknown_02024214 ldr r0, [r1] adds r0, 0x1 str r0, [r1] add sp, 0x10 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end atk05_cmd5 thumb_func_start sub_8046E7C sub_8046E7C: @ 8046E7C push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x10 adds r5, r1, 0 lsls r0, 24 lsrs r7, r0, 24 lsls r5, 24 lsrs r5, 24 ldr r4, =gUnknown_0202428E 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, =gBattleMons adds r0, r2 muls r1, r5 adds r1, r2 ldr r2, =gUnknown_020241EA mov r8, r2 ldrh r2, [r2] ldr r6, =gUnknown_02024400 ldrh r4, [r6] str r4, [sp] ldr r4, =gUnknown_0202449C ldr r4, [r4] ldrb r4, [r4, 0x13] str r4, [sp, 0x4] str r7, [sp, 0x8] str r5, [sp, 0xC] bl sub_806957C ldr r4, =gBattleMoveDamage movs r1, 0 strh r1, [r6] ldr r1, =gCritMultiplier ldrb r1, [r1] muls r1, r0 ldr r0, =gUnknown_02024474 ldrb r0, [r0, 0xE] adds r3, r1, 0 muls r3, r0 str r3, [r4] ldr r1, =gUnknown_020242AC lsls r0, r7, 2 adds r0, r1 ldr r0, [r0] movs r1, 0x80 lsls r1, 2 ands r0, r1 cmp r0, 0 beq _08046F0A ldr r2, =gBattleMoves mov r0, r8 ldrh r1, [r0] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r0, [r0, 0x2] cmp r0, 0xD bne _08046F0A lsls r0, r3, 1 str r0, [r4] _08046F0A: ldr r0, =gUnknown_0202433C lsls r1, r7, 4 adds r1, r0 ldrb r0, [r1] lsls r0, 28 cmp r0, 0 bge _08046F28 ldr r4, =gBattleMoveDamage ldr r1, [r4] lsls r0, r1, 4 subs r0, r1 movs r1, 0xA bl __divsi3 str r0, [r4] _08046F28: add sp, 0x10 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_8046E7C thumb_func_start battle_attack_damage_modulate_by_effectivity battle_attack_damage_modulate_by_effectivity: @ 8046F60 push {r4,r5,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r5, =gBattleMoveDamage ldr r0, [r5] muls r0, r4 movs r1, 0xA bl __divsi3 str r0, [r5] cmp r0, 0 bne _08046F80 cmp r4, 0 beq _08046F80 movs r0, 0x1 str r0, [r5] _08046F80: cmp r4, 0x5 beq _08046FB0 cmp r4, 0x5 bgt _08046F94 cmp r4, 0 beq _08046F9A b _08047032 .pool _08046F94: cmp r4, 0x14 beq _08046FF0 b _08047032 _08046F9A: ldr r2, =gBattleMoveFlags ldrb r0, [r2] movs r1, 0x8 orrs r0, r1 movs r1, 0xFB ands r0, r1 movs r1, 0xFD ands r0, r1 b _08047030 .pool _08046FB0: ldr r2, =gBattleMoves ldr r0, =gUnknown_020241EA ldrh r1, [r0] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r0, [r0, 0x1] cmp r0, 0 beq _08047032 ldr r2, =gBattleMoveFlags ldrb r1, [r2] movs r0, 0x29 ands r0, r1 cmp r0, 0 bne _08047032 movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _08046FEC movs r0, 0xFD ands r0, r1 b _08047030 .pool _08046FEC: movs r0, 0x4 b _0804702E _08046FF0: ldr r2, =gBattleMoves ldr r0, =gUnknown_020241EA ldrh r1, [r0] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r0, [r0, 0x1] cmp r0, 0 beq _08047032 ldr r2, =gBattleMoveFlags ldrb r1, [r2] movs r0, 0x29 ands r0, r1 cmp r0, 0 bne _08047032 movs r0, 0x4 ands r0, r1 cmp r0, 0 beq _0804702C movs r0, 0xFB ands r0, r1 b _08047030 .pool _0804702C: movs r0, 0x2 _0804702E: orrs r0, r1 _08047030: strb r0, [r2] _08047032: pop {r4,r5} pop {r0} bx r0 thumb_func_end battle_attack_damage_modulate_by_effectivity thumb_func_start sub_8047038 sub_8047038: @ 8047038 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x8 movs r3, 0 ldr r1, =gUnknown_020241EA ldrh r0, [r1] cmp r0, 0xA5 bne _0804704C b _08047260 _0804704C: ldr r0, =gUnknown_0202449C ldr r0, [r0] ldrb r0, [r0, 0x13] cmp r0, 0 beq _08047068 movs r1, 0x3F mov r8, r1 ands r1, r0 mov r8, r1 b _08047078 .pool _08047068: ldr r2, =gBattleMoves ldrh r1, [r1] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r0, [r0, 0x2] mov r8, r0 _08047078: ldr r2, =gBattleMons ldr r0, =gUnknown_0202420B 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 _0804709A adds r0, r1, 0 adds r0, 0x22 ldrb r0, [r0] cmp r0, r8 bne _080470B0 _0804709A: ldr r4, =gBattleMoveDamage 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] _080470B0: ldr r2, =gEnemyMonIndex 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 _08047128 mov r1, r8 cmp r1, 0x4 bne _08047128 ldr r3, =gUnknown_0202420A strb r0, [r3] ldr r2, =gBattleMoveFlags ldrb r0, [r2] movs r1, 0x9 orrs r0, r1 strb r0, [r2] ldr r1, =gUnknown_02024250 ldrb r0, [r4] lsls r0, 1 adds r0, r1 movs r2, 0 strh r2, [r0] ldr r1, =gUnknown_02024258 ldrb r0, [r4] lsls r0, 1 adds r0, r1 strh r2, [r0] ldr r0, =gUnknown_02024332 mov r1, r8 strb r1, [r0, 0x6] ldrb r0, [r4] ldrb r1, [r3] bl b_history__record_ability_usage_of_player b _080471C4 .pool _08047128: ldr r1, =gUnknown_0831ACE8 adds r0, r3, r1 ldrb r0, [r0] adds r2, r1, 0 b _080471A4 .pool _08047138: adds r3, 0x3 b _080471A0 _0804713C: ldr r5, =gUnknown_0831ACE8 adds r0, r3, r5 ldrb r0, [r0] cmp r0, r8 bne _08047198 adds r1, r3, 0x1 adds r1, r5 ldr r2, =gBattleMons ldr r7, =gEnemyMonIndex 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 _08047172 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] _08047172: ldrb r0, [r7] muls r0, r6 adds r0, r2 adds r1, r0, 0 adds r1, 0x22 ldrb r1, [r1] cmp r4, r1 bne _08047198 adds r0, 0x21 ldrb r0, [r0] cmp r0, r4 beq _08047198 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] _08047198: adds r3, 0x3 ldr r5, =gBattleMons ldr r4, =gEnemyMonIndex ldr r2, =gUnknown_0831ACE8 _080471A0: adds r0, r3, r2 ldrb r0, [r0] _080471A4: cmp r0, 0xFF beq _080471C4 cmp r0, 0xFE bne _0804713C 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 _08047138 _080471C4: ldr r2, =gBattleMons ldr r5, =gEnemyMonIndex ldrb r1, [r5] movs r0, 0x58 muls r0, r1 adds r0, r2 adds r0, 0x20 ldrb r6, [r0] cmp r6, 0x19 bne _08047242 ldr r0, =gUnknown_0202420B ldrb r0, [r0] ldr r7, =gUnknown_020241EA ldrh r1, [r7] bl move_weather_interaction lsls r0, 24 lsrs r0, 24 cmp r0, 0x2 bne _08047242 ldr r1, =gBattleMoveFlags mov r8, r1 ldrb r4, [r1] ands r0, r4 cmp r0, 0 beq _08047200 movs r0, 0x6 ands r0, r4 cmp r0, 0x6 bne _08047242 _08047200: ldr r2, =gBattleMoves ldrh r1, [r7] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r0, [r0, 0x1] cmp r0, 0 beq _08047242 ldr r3, =gUnknown_0202420A strb r6, [r3] movs r0, 0x1 orrs r0, r4 mov r1, r8 strb r0, [r1] ldr r1, =gUnknown_02024250 ldrb r0, [r5] lsls r0, 1 adds r0, r1 movs r2, 0 strh r2, [r0] ldr r1, =gUnknown_02024258 ldrb r0, [r5] lsls r0, 1 adds r0, r1 strh r2, [r0] ldr r1, =gUnknown_02024332 movs r0, 0x3 strb r0, [r1, 0x6] ldrb r0, [r5] ldrb r1, [r3] bl b_history__record_ability_usage_of_player _08047242: ldr r0, =gBattleMoveFlags ldrb r1, [r0] movs r0, 0x8 ands r0, r1 cmp r0, 0 beq _08047260 ldr r2, =gUnknown_0202433C ldr r0, =gUnknown_0202420B ldrb r1, [r0] lsls r1, 4 adds r1, r2 ldrb r0, [r1, 0x1] movs r2, 0x2 orrs r0, r2 strb r0, [r1, 0x1] _08047260: ldr r1, =gUnknown_02024214 ldr r0, [r1] adds r0, 0x1 str r0, [r1] add sp, 0x8 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_8047038 thumb_func_start b_wonderguard_and_levitate b_wonderguard_and_levitate: @ 80472A8 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} movs r6, 0 movs r5, 0 ldr r0, =gUnknown_020241EA ldrh r1, [r0] mov r9, r0 cmp r1, 0xA5 bne _080472C0 b _08047508 _080472C0: ldr r2, =gBattleMoves lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r1, r0, r2 ldrb r0, [r1, 0x1] cmp r0, 0 bne _080472D2 b _08047508 _080472D2: ldr r0, =gUnknown_0202449C ldr r0, [r0] ldrb r0, [r0, 0x13] cmp r0, 0 beq _080472F4 movs r1, 0x3F mov r12, r1 mov r2, r12 ands r2, r0 mov r12, r2 b _080472F8 .pool _080472F4: ldrb r1, [r1, 0x2] mov r12, r1 _080472F8: ldr r2, =gBattleMons ldr r3, =gEnemyMonIndex 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 _0804733C mov r0, r12 cmp r0, 0x4 bne _0804733C ldr r0, =gUnknown_0202420A strb r1, [r0] ldr r0, =gUnknown_02024332 mov r1, r12 strb r1, [r0, 0x6] ldrb r0, [r3] movs r1, 0x1A bl b_history__record_ability_usage_of_player b _08047508 .pool _0804733C: ldr r1, =gUnknown_0831ACE8 adds r0, r5, r1 ldrb r0, [r0] adds r4, r1, 0 b _0804748E .pool _0804734C: adds r0, r5, r4 ldrb r0, [r0] cmp r0, r12 beq _08047356 b _08047488 _08047356: 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 _08047396 adds r0, r5, 0x2 adds r0, r4 ldrb r0, [r0] cmp r0, 0 bne _08047396 ldr r2, =gBattleMoveFlags ldrb r0, [r2] movs r1, 0x8 orrs r0, r1 strb r0, [r2] ldr r1, =gUnknown_0202433C ldr r0, =gUnknown_0202420B ldrb r2, [r0] lsls r2, 4 adds r2, r1 ldrb r0, [r2, 0x1] movs r1, 0x2 orrs r0, r1 strb r0, [r2, 0x1] _08047396: 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 _080473DC adds r0, 0x21 ldrb r0, [r0] cmp r0, r2 beq _080473DC adds r0, r5, 0x2 adds r0, r4 ldrb r0, [r0] cmp r0, 0 bne _080473DC ldr r2, =gBattleMoveFlags ldrb r0, [r2] movs r1, 0x8 orrs r0, r1 strb r0, [r2] ldr r1, =gUnknown_0202433C ldr r0, =gUnknown_0202420B ldrb r2, [r0] lsls r2, 4 adds r2, r1 ldrb r0, [r2, 0x1] movs r1, 0x2 orrs r0, r1 strb r0, [r2, 0x1] _080473DC: 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 _08047400 adds r0, r5, 0x2 adds r0, r4 ldrb r0, [r0] cmp r0, 0x14 bne _08047400 movs r0, 0x1 orrs r6, r0 _08047400: 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 _0804742E adds r0, 0x21 ldrb r0, [r0] cmp r0, r2 beq _0804742E adds r0, r5, 0x2 adds r0, r4 ldrb r0, [r0] cmp r0, 0x14 bne _0804742E movs r0, 0x1 orrs r6, r0 _0804742E: 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 _08047456 adds r0, r5, 0x2 adds r0, r4 ldrb r0, [r0] cmp r0, 0x5 bne _08047456 movs r0, 0x2 orrs r6, r0 lsls r0, r6, 24 lsrs r6, r0, 24 _08047456: 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 _08047488 adds r0, 0x21 ldrb r0, [r0] cmp r0, r2 beq _08047488 adds r0, r5, 0x2 adds r0, r4 ldrb r0, [r0] cmp r0, 0x5 bne _08047488 movs r0, 0x2 orrs r6, r0 lsls r0, r6, 24 lsrs r6, r0, 24 _08047488: adds r5, 0x3 adds r0, r5, r4 ldrb r0, [r0] _0804748E: cmp r0, 0xFF beq _080474B2 cmp r0, 0xFE beq _08047498 b _0804734C _08047498: 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 _08047488 _080474B2: 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 _08047508 ldr r0, =gUnknown_0202420B ldrb r0, [r0] mov r2, r9 ldrh r1, [r2] bl move_weather_interaction lsls r0, 24 lsrs r0, 24 cmp r0, 0x2 bne _08047508 movs r0, 0x3 ands r6, r0 cmp r6, 0x1 beq _08047508 ldr r2, =gBattleMoves 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 _08047508 ldr r0, =gUnknown_0202420A strb r4, [r0] ldr r1, =gUnknown_02024332 movs r0, 0x3 strb r0, [r1, 0x6] mov r1, r8 ldrb r0, [r1] movs r1, 0x19 bl b_history__record_ability_usage_of_player _08047508: pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end b_wonderguard_and_levitate thumb_func_start b_attack_effectivity_adapt b_attack_effectivity_adapt: @ 804752C push {r4-r7,lr} adds r6, r2, 0 lsls r0, 24 lsrs r4, r0, 24 lsls r1, 16 lsrs r5, r1, 16 ldr r7, =gBattleMoveDamage ldr r0, [r7] muls r0, r4 movs r1, 0xA bl __divsi3 str r0, [r7] cmp r0, 0 bne _08047552 cmp r4, 0 beq _08047552 movs r0, 0x1 str r0, [r7] _08047552: cmp r4, 0x5 beq _0804757A cmp r4, 0x5 bgt _08047564 cmp r4, 0 beq _0804756A b _080475DE .pool _08047564: cmp r4, 0x14 beq _080475AC b _080475DE _0804756A: ldrb r0, [r6] movs r1, 0x8 orrs r0, r1 movs r1, 0xFB ands r0, r1 movs r1, 0xFD ands r0, r1 b _080475DC _0804757A: ldr r0, =gBattleMoves lsls r1, r5, 1 adds r1, r5 lsls r1, 2 adds r1, r0 ldrb r0, [r1, 0x1] cmp r0, 0 beq _080475DE ldrb r1, [r6] movs r0, 0x29 ands r0, r1 cmp r0, 0 bne _080475DE movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _080475A8 movs r0, 0xFD ands r0, r1 b _080475DC .pool _080475A8: movs r0, 0x4 b _080475DA _080475AC: ldr r0, =gBattleMoves lsls r1, r5, 1 adds r1, r5 lsls r1, 2 adds r1, r0 ldrb r0, [r1, 0x1] cmp r0, 0 beq _080475DE ldrb r1, [r6] movs r0, 0x29 ands r0, r1 cmp r0, 0 bne _080475DE movs r0, 0x4 ands r0, r1 cmp r0, 0 beq _080475D8 movs r0, 0xFB ands r0, r1 b _080475DC .pool _080475D8: movs r0, 0x2 _080475DA: orrs r0, r1 _080475DC: strb r0, [r6] _080475DE: pop {r4-r7} pop {r0} bx r0 thumb_func_end b_attack_effectivity_adapt thumb_func_start move_effectiveness_something move_effectiveness_something: @ 80475E4 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x10 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 r0, 0 mov r8, r0 mov r0, sp mov r1, r8 strb r1, [r0] mov r2, r10 cmp r2, 0xA5 bne _08047616 movs r0, 0 b _0804779E _08047616: ldr r1, =gBattleMoves 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, =gBattleMons 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 _0804764A adds r0, r3, 0 adds r0, 0x22 ldrb r0, [r0] cmp r0, r1 bne _0804765C _0804764A: ldr r4, =gBattleMoveDamage ldr r1, [r4] lsls r0, r1, 4 subs r0, r1 str r0, [r4] movs r1, 0xA bl __divsi3 str r0, [r4] _0804765C: 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 _08047690 ldr r3, [sp, 0x8] cmp r3, 0x4 bne _08047690 movs r1, 0x9 mov r0, sp ldrb r0, [r0] orrs r0, r1 mov r1, sp strb r0, [r1] b _08047740 .pool _08047690: ldr r1, =gUnknown_0831ACE8 mov r2, r8 adds r0, r2, r1 ldrb r0, [r0] adds r2, r1, 0 cmp r0, 0xFF beq _08047740 cmp r0, 0xFE bne _080476B6 movs r0, 0x58 mov r3, r9 muls r3, r0 adds r0, r3, 0 b _0804772E .pool _080476B0: movs r0, 0x3 add r8, r0 b _08047718 _080476B6: ldr r7, =gUnknown_0831ACE8 mov r1, r8 adds r0, r1, r7 ldrb r0, [r0] ldr r2, [sp, 0x8] cmp r0, r2 bne _08047710 adds r1, 0x1 adds r1, r7 ldr r2, =gBattleMons movs r0, 0x58 mov r3, r9 muls r3, r0 adds r0, r3, 0 adds r5, r0, r2 adds r6, r5, 0 adds r6, 0x21 ldrb r4, [r1] ldrb r0, [r6] cmp r4, r0 bne _080476F0 mov r0, r8 adds r0, 0x2 adds r0, r7 ldrb r0, [r0] mov r1, r10 mov r2, sp bl b_attack_effectivity_adapt _080476F0: adds r0, r5, 0 adds r0, 0x22 ldrb r0, [r0] cmp r4, r0 bne _08047710 ldrb r0, [r6] cmp r0, r4 beq _08047710 mov r0, r8 adds r0, 0x2 adds r0, r7 ldrb r0, [r0] mov r1, r10 mov r2, sp bl b_attack_effectivity_adapt _08047710: movs r1, 0x3 add r8, r1 ldr r5, =gBattleMons ldr r2, =gUnknown_0831ACE8 _08047718: mov r3, r8 adds r0, r3, r2 ldrb r0, [r0] cmp r0, 0xFF beq _08047740 cmp r0, 0xFE bne _080476B6 movs r0, 0x58 mov r1, r9 muls r1, r0 adds r0, r1, 0 _0804772E: 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 _080476B0 _08047740: movs r0, 0x58 mov r2, r9 muls r2, r0 adds r0, r2, 0 adds r0, r5 adds r0, 0x20 ldrb r0, [r0] cmp r0, 0x19 bne _0804779A mov r0, sp ldrb r1, [r0] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _0804779A ldr r0, [sp, 0x4] mov r1, r10 bl move_weather_interaction lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0x2 bne _0804779A mov r0, sp ldrb r3, [r0] adds r0, r1, 0 ands r0, r3 cmp r0, 0 beq _08047782 movs r0, 0x6 ands r0, r3 cmp r0, 0x6 bne _0804779A _08047782: ldr r0, =gBattleMoves ldr r1, [sp, 0xC] add r1, r10 lsls r1, 2 adds r1, r0 ldrb r0, [r1, 0x1] cmp r0, 0 beq _0804779A mov r0, sp movs r1, 0x1 orrs r1, r3 strb r1, [r0] _0804779A: mov r0, sp ldrb r0, [r0] _0804779E: add sp, 0x10 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 .pool thumb_func_end move_effectiveness_something thumb_func_start ai_rate_move ai_rate_move: @ 80477BC push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0xC 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, =gBaseStats lsls r0, r1, 3 subs r0, r1 lsls r0, 2 adds r0, r2 ldrb r1, [r0, 0x6] mov r9, r1 ldrb r0, [r0, 0x7] mov r8, r0 cmp r6, 0xA5 bne _080477FC movs r0, 0 b _080478A0 .pool _080477FC: ldr r2, =gBattleMoves lsls r1, r6, 1 adds r0, r1, r6 lsls r0, 2 adds r0, r2 ldrb r0, [r0, 0x2] mov r10, r0 str r1, [sp, 0x8] ldr r3, [sp, 0x4] cmp r3, 0x1A bne _08047824 cmp r0, 0x4 bne _08047824 movs r1, 0x9 mov r0, sp strb r1, [r0] b _0804786A .pool _08047824: ldr r0, =gUnknown_0831ACE8 adds r1, r7, r0 ldrb r0, [r1] cmp r0, 0xFF beq _0804786A adds r4, r1, 0 _08047830: ldrb r0, [r4] cmp r0, 0xFE beq _0804785C cmp r0, r10 bne _0804785C ldrb r5, [r4, 0x1] cmp r5, r9 bne _0804784A ldrb r0, [r4, 0x2] adds r1, r6, 0 mov r2, sp bl b_attack_effectivity_adapt _0804784A: cmp r5, r8 bne _0804785C cmp r9, r8 beq _0804785C ldrb r0, [r4, 0x2] adds r1, r6, 0 mov r2, sp bl b_attack_effectivity_adapt _0804785C: adds r4, 0x3 adds r7, 0x3 ldr r1, =gUnknown_0831ACE8 adds r0, r7, r1 ldrb r0, [r0] cmp r0, 0xFF bne _08047830 _0804786A: ldr r3, [sp, 0x4] cmp r3, 0x19 bne _0804789C mov r0, sp ldrb r2, [r0] movs r0, 0x2 ands r0, r2 cmp r0, 0 beq _08047884 movs r0, 0x6 ands r0, r2 cmp r0, 0x6 bne _0804789C _08047884: ldr r0, =gBattleMoves ldr r3, [sp, 0x8] adds r1, r3, r6 lsls r1, 2 adds r1, r0 ldrb r0, [r1, 0x1] cmp r0, 0 beq _0804789C mov r0, sp movs r1, 0x8 orrs r1, r2 strb r1, [r0] _0804789C: mov r0, sp ldrb r0, [r0] _080478A0: add sp, 0xC pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 .pool thumb_func_end ai_rate_move thumb_func_start sub_80478B8 sub_80478B8: @ 80478B8 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, =gBattleMoveDamage ldr r0, [r4] cmp r0, 0 beq _080478EA muls r0, r1 str r0, [r4] movs r1, 0x64 bl __divsi3 str r0, [r4] cmp r0, 0 bne _080478EA movs r0, 0x1 str r0, [r4] _080478EA: pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_80478B8 thumb_func_start atk07_cmd7 atk07_cmd7: @ 80478F4 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, =gBattleMoveDamage ldr r0, [r4] cmp r0, 0 beq _08047926 muls r0, r1 str r0, [r4] movs r1, 0x64 bl __divsi3 str r0, [r4] cmp r0, 0 bne _08047926 movs r0, 0x1 str r0, [r4] _08047926: ldr r7, =gBattleMons ldr r6, =gEnemyMonIndex 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 _0804795C ldr r1, =gUnknown_02024404 lsls r0, r2, 3 subs r0, r2 lsls r0, 2 adds r0, r1 ldrb r4, [r0, 0x7] ldrb r6, [r0, 0x1A] b _08047976 .pool _0804795C: 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 _08047976: ldr r1, =gUnknown_0202420F ldr r5, =gEnemyMonIndex ldrb r0, [r5] strb r0, [r1] cmp r4, 0x27 bne _080479B4 bl Random lsls r0, 16 lsrs r0, 16 movs r1, 0x64 bl __umodsi3 lsls r0, 16 lsrs r0, 16 cmp r0, r6 bcs _080479B4 ldrb r0, [r5] movs r1, 0x27 bl b_history__record_item_x12_of_player ldr r2, =gUnknown_0202437C 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] _080479B4: ldr r2, =gBattleMons ldr r3, =gEnemyMonIndex 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 _08047A84 ldr r2, =gBattleMoves ldr r0, =gUnknown_020241EA ldrh r1, [r0] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r0, [r0] cmp r0, 0x65 beq _08047A06 ldr r0, =gUnknown_0202433C lsls r1, r4, 4 adds r1, r0 ldrb r0, [r1] lsls r0, 30 cmp r0, 0 blt _08047A06 ldr r0, =gUnknown_0202437C lsls r1, r4, 2 adds r1, r4 lsls r1, 2 adds r1, r0 ldrb r0, [r1] lsrs r0, 7 cmp r0, 0 beq _08047A84 _08047A06: ldrb r0, [r3] movs r4, 0x58 muls r0, r4 adds r0, r5 ldrh r1, [r0, 0x28] ldr r2, =gBattleMoveDamage ldr r0, [r2] cmp r1, r0 bgt _08047A84 subs r0, r1, 0x1 str r0, [r2] ldr r1, =gUnknown_0202433C ldrb r3, [r3] lsls r0, r3, 4 adds r0, r1 ldrb r0, [r0] lsls r0, 30 cmp r0, 0 bge _08047A5C ldr r0, =gBattleMoveFlags ldrb r1, [r0] movs r2, 0x40 orrs r1, r2 strb r1, [r0] b _08047A84 .pool _08047A5C: ldr r0, =gUnknown_0202437C lsls r1, r3, 2 adds r1, r3 lsls r1, 2 adds r1, r0 ldrb r0, [r1] lsrs r0, 7 cmp r0, 0 beq _08047A84 ldr r2, =gBattleMoveFlags ldrb r0, [r2] movs r1, 0x80 orrs r0, r1 strb r0, [r2] ldr r1, =gUnknown_02024208 adds r0, r3, 0 muls r0, r4 adds r0, r5 ldrh r0, [r0, 0x2E] strh r0, [r1] _08047A84: ldr r1, =gUnknown_02024214 ldr r0, [r1] adds r0, 0x1 str r0, [r1] pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end atk07_cmd7 thumb_func_start atk08_cmd8 atk08_cmd8: @ 8047AA4 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, =gBattleMoveDamage ldr r0, [r4] cmp r0, 0 beq _08047AD6 muls r0, r1 str r0, [r4] movs r1, 0x64 bl __divsi3 str r0, [r4] cmp r0, 0 bne _08047AD6 movs r0, 0x1 str r0, [r4] _08047AD6: ldr r7, =gBattleMons ldr r6, =gEnemyMonIndex 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 _08047B0C ldr r1, =gUnknown_02024404 lsls r0, r2, 3 subs r0, r2 lsls r0, 2 adds r0, r1 ldrb r4, [r0, 0x7] ldrb r6, [r0, 0x1A] b _08047B26 .pool _08047B0C: 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 _08047B26: ldr r1, =gUnknown_0202420F ldr r5, =gEnemyMonIndex ldrb r0, [r5] strb r0, [r1] cmp r4, 0x27 bne _08047B64 bl Random lsls r0, 16 lsrs r0, 16 movs r1, 0x64 bl __umodsi3 lsls r0, 16 lsrs r0, 16 cmp r0, r6 bcs _08047B64 ldrb r0, [r5] movs r1, 0x27 bl b_history__record_item_x12_of_player ldr r2, =gUnknown_0202437C 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] _08047B64: ldr r4, =gBattleMons ldr r6, =gEnemyMonIndex 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 _08047C10 ldr r5, =gUnknown_0202433C lsls r0, r2, 4 adds r0, r5 ldrb r0, [r0] lsls r0, 30 cmp r0, 0 blt _08047BA2 ldr r0, =gUnknown_0202437C lsls r1, r2, 2 adds r1, r2 lsls r1, 2 adds r1, r0 ldrb r0, [r1] lsrs r0, 7 cmp r0, 0 beq _08047C10 _08047BA2: adds r0, r3, r4 ldrh r1, [r0, 0x28] ldr r2, =gBattleMoveDamage ldr r0, [r2] cmp r1, r0 bgt _08047C10 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 _08047BE8 ldr r0, =gBattleMoveFlags ldrb r1, [r0] movs r2, 0x40 orrs r1, r2 strb r1, [r0] b _08047C10 .pool _08047BE8: ldr r0, =gUnknown_0202437C lsls r1, r3, 2 adds r1, r3 lsls r1, 2 adds r1, r0 ldrb r0, [r1] lsrs r0, 7 cmp r0, 0 beq _08047C10 ldr r2, =gBattleMoveFlags ldrb r0, [r2] movs r1, 0x80 orrs r0, r1 strb r0, [r2] ldr r1, =gUnknown_02024208 adds r0, r3, 0 muls r0, r7 adds r0, r4 ldrh r0, [r0, 0x2E] strh r0, [r1] _08047C10: ldr r1, =gUnknown_02024214 ldr r0, [r1] adds r0, 0x1 str r0, [r1] pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end atk08_cmd8 thumb_func_start atk09_attackanimation atk09_attackanimation: @ 8047C30 push {r4-r7,lr} sub sp, 0x10 ldr r0, =gUnknown_02024068 ldr r0, [r0] cmp r0, 0 beq _08047C3E b _08047DB6 _08047C3E: ldr r0, =gUnknown_02024280 ldr r0, [r0] movs r1, 0x80 ands r0, r1 ldr r5, =gUnknown_020241EA cmp r0, 0 beq _08047C8C ldrh r0, [r5] cmp r0, 0x90 beq _08047C8C cmp r0, 0xA4 beq _08047C8C ldr r4, =gUnknown_02024214 ldr r0, [r4] adds r0, 0x1 bl b_movescr_stack_push ldr r0, =gUnknown_082DABB9 str r0, [r4] ldr r1, =gUnknown_02024474 ldrb r0, [r1, 0x18] adds r0, 0x1 strb r0, [r1, 0x18] ldrb r0, [r1, 0x19] adds r0, 0x1 strb r0, [r1, 0x19] b _08047DB6 .pool _08047C8C: ldr r2, =gBattleMoves ldrh r1, [r5] 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 _08047CB2 movs r0, 0x20 ands r0, r1 cmp r0, 0 bne _08047CB2 movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _08047CBA _08047CB2: ldr r0, =gUnknown_02024474 ldrb r0, [r0, 0x19] cmp r0, 0 bne _08047D88 _08047CBA: ldr r0, =gBattleMoveFlags ldrb r1, [r0] movs r0, 0x29 ands r0, r1 cmp r0, 0 bne _08047DA8 ldr r1, =gUnknown_02024064 ldr r3, =gUnknown_0202420B ldrb r0, [r3] strb r0, [r1] ldr r2, =gBattleMons ldr r0, =gEnemyMonIndex ldrb r1, [r0] movs r0, 0x58 adds r4, r1, 0 muls r4, r0 adds r0, r2, 0 adds r0, 0x50 adds r0, r4, r0 ldr r1, [r0] movs r0, 0x80 lsls r0, 17 ands r1, r0 adds r7, r3, 0 mov r12, r2 cmp r1, 0 beq _08047D18 ldr r0, =gUnknown_02024212 ldrb r6, [r0] b _08047D42 .pool _08047D18: ldr r3, =gUnknown_02024212 ldrb r0, [r3] cmp r0, 0x1 bls _08047D40 mov r1, r12 adds r0, r4, r1 ldrh r2, [r0, 0x28] ldr r0, =gBattleMoveDamage ldr r1, [r0] movs r6, 0x1 adds r4, r0, 0 cmp r2, r1 ble _08047D44 ldrb r6, [r3] b _08047D44 .pool _08047D40: ldrb r6, [r3] _08047D42: ldr r4, =gBattleMoveDamage _08047D44: ldrh r1, [r5] ldr r5, =gUnknown_02024474 ldrb r2, [r5, 0x18] ldr r0, =gUnknown_020244E0 ldrh r3, [r0] ldr r0, [r4] str r0, [sp] ldrb r4, [r7] movs r0, 0x58 muls r0, r4 add r0, r12 adds r0, 0x2B ldrb r0, [r0] str r0, [sp, 0x4] ldrb r4, [r7] lsls r0, r4, 3 subs r0, r4 lsls r0, 2 ldr r4, =gUnknown_020242BC adds r0, r4 str r0, [sp, 0x8] str r6, [sp, 0xC] movs r0, 0 bl dp01_build_cmdbuf_x0F_aa_b_cc_dddd_e_mlc_weather_00_x1Cbytes ldrb r0, [r5, 0x18] adds r0, 0x1 strb r0, [r5, 0x18] ldrb r0, [r5, 0x19] adds r0, 0x1 strb r0, [r5, 0x19] ldrb r0, [r7] bl dp01_battle_side_mark_buffer_for_execution _08047D88: ldr r1, =gUnknown_02024214 ldr r0, [r1] adds r0, 0x1 str r0, [r1] b _08047DB6 .pool _08047DA8: ldr r4, =gUnknown_02024214 ldr r0, [r4] adds r0, 0x1 bl b_movescr_stack_push ldr r0, =gUnknown_082DABB9 str r0, [r4] _08047DB6: add sp, 0x10 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end atk09_attackanimation thumb_func_start sub_8047DC8 sub_8047DC8: @ 8047DC8 push {lr} ldr r0, =gUnknown_02024068 ldr r0, [r0] cmp r0, 0 bne _08047DDA ldr r1, =gUnknown_02024214 ldr r0, [r1] adds r0, 0x1 str r0, [r1] _08047DDA: pop {r0} bx r0 .pool thumb_func_end sub_8047DC8 thumb_func_start atk0B_graphicalhpupdate atk0B_graphicalhpupdate: @ 8047DE8 push {r4,lr} ldr r0, =gUnknown_02024068 ldr r0, [r0] cmp r0, 0 bne _08047EAA ldr r0, =gBattleMoveFlags ldrb r1, [r0] movs r0, 0x29 ands r0, r1 cmp r0, 0 bne _08047EA2 ldr r0, =gUnknown_02024214 ldr r0, [r0] ldrb r0, [r0, 0x1] bl get_battle_side_of_something ldr r2, =gUnknown_02024064 strb r0, [r2] ldr r1, =gBattleMons 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 _08047E68 ldr r0, =gUnknown_020242BC lsls r1, r2, 3 subs r1, r2 lsls r1, 2 adds r1, r0 ldrb r0, [r1, 0xA] cmp r0, 0 beq _08047E68 ldr r0, =gUnknown_02024280 ldr r0, [r0] movs r1, 0x80 lsls r1, 1 ands r0, r1 cmp r0, 0 bne _08047E68 movs r0, 0x80 adds r1, r2, 0 bl b_std_message b _08047EA2 .pool _08047E68: ldr r0, =gBattleMoveDamage ldr r0, [r0] ldr r1, =0x00002710 cmp r0, r1 bgt _08047E76 lsls r0, 16 lsrs r1, r0, 16 _08047E76: movs r0, 0 bl dp01_build_cmdbuf_x18_0_aa_health_bar_update ldr r4, =gUnknown_02024064 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 _08047EA2 ldr r0, =gBattleMoveDamage ldr r0, [r0] cmp r0, 0 ble _08047EA2 ldr r0, =gUnknown_03005D10 ldrb r1, [r0, 0x5] movs r2, 0x1 orrs r1, r2 strb r1, [r0, 0x5] _08047EA2: ldr r1, =gUnknown_02024214 ldr r0, [r1] adds r0, 0x2 str r0, [r1] _08047EAA: pop {r4} pop {r0} bx r0 .pool thumb_func_end atk0B_graphicalhpupdate thumb_func_start atk0C_datahpupdate atk0C_datahpupdate: @ 8047EC4 push {r4-r7,lr} sub sp, 0x4 ldr r0, =gUnknown_02024068 ldr r0, [r0] cmp r0, 0 beq _08047ED2 b _080482A2 _08047ED2: ldr r0, =gUnknown_0202449C ldr r0, [r0] ldrb r1, [r0, 0x13] cmp r1, 0 beq _08047EF4 movs r0, 0x40 ands r0, r1 cmp r0, 0 bne _08047EF4 movs r6, 0x3F ands r6, r1 b _08047F04 .pool _08047EF4: ldr r2, =gBattleMoves ldr r0, =gUnknown_020241EA ldrh r1, [r0] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r6, [r0, 0x2] _08047F04: ldr r0, =gBattleMoveFlags ldrb r1, [r0] movs r0, 0x29 ands r0, r1 cmp r0, 0 beq _08047F12 b _08048274 _08047F12: ldr r0, =gUnknown_02024214 ldr r0, [r0] ldrb r0, [r0, 0x1] bl get_battle_side_of_something ldr r7, =gUnknown_02024064 strb r0, [r7] ldr r1, =gBattleMons 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 _08048028 ldr r0, =gUnknown_020242BC 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 _08048028 ldr r0, =gUnknown_02024280 ldr r3, [r0] movs r0, 0x80 lsls r0, 1 ands r3, r0 cmp r3, 0 bne _08048028 adds r5, r1, 0 ldr r6, =gBattleMoveDamage ldr r4, [r6] cmp r5, r4 blt _08047FBC ldr r0, =gUnknown_0202437C lsls r1, r2, 2 adds r1, r2 lsls r1, 2 adds r0, 0x4 adds r1, r0 ldr r0, [r1] cmp r0, 0 bne _08047F76 str r4, [r1] _08047F76: 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, =gUnknown_020241F4 ldr r0, [r6] str r0, [r1] b _08047FEC .pool _08047FBC: ldr r0, =gUnknown_0202437C lsls r1, r2, 2 adds r1, r2 lsls r1, 2 adds r0, 0x4 adds r1, r0 ldr r0, [r1] cmp r0, 0 bne _08047FD0 str r5, [r1] _08047FD0: ldr r2, =gUnknown_020241F4 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] _08047FEC: ldr r0, =gUnknown_02024064 ldrb r1, [r0] lsls r0, r1, 3 subs r0, r1 lsls r0, 2 add r0, r12 ldrb r0, [r0, 0xA] cmp r0, 0 beq _08048000 b _0804829A _08048000: ldr r4, =gUnknown_02024214 ldr r0, [r4] adds r0, 0x2 str r0, [r4] bl b_movescr_stack_push_cursor ldr r0, =gUnknown_082DB6FB str r0, [r4] b _080482A2 .pool _08048028: ldr r0, =gUnknown_02024280 ldr r2, [r0] ldr r1, =0xfffffeff ands r2, r1 str r2, [r0] ldr r1, =gBattleMoveDamage ldr r5, [r1] mov r12, r0 adds r7, r1, 0 cmp r5, 0 bge _0804807C ldr r4, =gBattleMons ldr r2, =gUnknown_02024064 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 _08048064 b _0804823A _08048064: strh r3, [r1, 0x28] b _0804823A .pool _0804807C: movs r0, 0x20 ands r0, r2 cmp r0, 0 beq _08048098 movs r0, 0x21 negs r0, r0 ands r2, r0 mov r0, r12 str r2, [r0] ldr r5, =gUnknown_02024064 b _080480E0 .pool _08048098: ldr r0, =gUnknown_020241F8 ldr r2, =gUnknown_02024064 ldrb r1, [r2] lsls r1, 2 adds r1, r0 ldr r0, [r1] adds r0, r5 str r0, [r1] ldr r0, =gUnknown_02024214 ldr r0, [r0] ldrb r0, [r0, 0x1] adds r5, r2, 0 cmp r0, 0 bne _080480D4 ldr r1, =gUnknown_02024288 ldrb r0, [r5] adds r0, r1 ldr r1, =gUnknown_0202420B b _080480DC .pool _080480D4: ldr r1, =gUnknown_02024288 ldrb r0, [r5] adds r0, r1 ldr r1, =gEnemyMonIndex _080480DC: ldrb r1, [r1] strb r1, [r0] _080480E0: ldr r4, =gBattleMons ldrb r0, [r5] movs r3, 0x58 muls r0, r3 adds r2, r0, r4 ldrh r0, [r2, 0x28] ldr r1, [r7] cmp r0, r1 ble _08048110 subs r0, r1 strh r0, [r2, 0x28] ldr r0, =gUnknown_020241F4 str r1, [r0] adds r7, r0, 0 b _08048120 .pool _08048110: ldr r2, =gUnknown_020241F4 str r0, [r2] ldrb r0, [r5] muls r0, r3 adds r0, r4 movs r1, 0 strh r1, [r0, 0x28] adds r7, r2, 0 _08048120: ldr r2, =gUnknown_0202437C 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 _08048148 mov r1, r12 ldr r0, [r1] movs r1, 0x80 lsls r1, 13 ands r0, r1 cmp r0, 0 bne _08048148 ldr r0, [r7] str r0, [r3] _08048148: cmp r6, 0x8 bhi _080481D0 mov r1, r12 ldr r0, [r1] movs r1, 0x80 lsls r1, 13 ands r0, r1 cmp r0, 0 bne _080481CC ldr r0, =gUnknown_020241EA ldrh r0, [r0] cmp r0, 0xDC beq _080481CC ldr r3, =gUnknown_0202433C 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, =gUnknown_02024214 ldr r0, [r0] ldrb r0, [r0, 0x1] cmp r0, 0 bne _080481AC ldrb r0, [r5] lsls r0, 4 adds r0, r3 ldr r2, =gUnknown_0202420B b _080481B4 .pool _080481AC: ldrb r0, [r5] lsls r0, 4 adds r0, r3 ldr r2, =gEnemyMonIndex _080481B4: 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 _0804823A .pool _080481CC: cmp r6, 0x8 bls _0804823A _080481D0: mov r1, r12 ldr r0, [r1] movs r1, 0x80 lsls r1, 13 ands r0, r1 cmp r0, 0 bne _0804823A ldr r3, =gUnknown_0202433C 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, =gUnknown_02024214 ldr r0, [r0] ldrb r0, [r0, 0x1] cmp r0, 0 bne _08048220 ldrb r0, [r5] lsls r0, 4 adds r0, r3 ldr r2, =gUnknown_0202420B b _08048228 .pool _08048220: ldrb r0, [r5] lsls r0, 4 adds r0, r3 ldr r2, =gEnemyMonIndex _08048228: 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] _0804823A: mov r1, r12 ldr r0, [r1] ldr r1, =0xffefffff ands r0, r1 mov r1, r12 str r0, [r1] ldrb r1, [r5] movs r0, 0x58 muls r0, r1 ldr r1, =gUnknown_020240AC 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 _0804829A .pool _08048274: ldr r0, =gUnknown_02024214 ldr r0, [r0] ldrb r0, [r0, 0x1] bl get_battle_side_of_something ldr r1, =gUnknown_02024064 strb r0, [r1] ldr r2, =gUnknown_0202437C 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 _0804829A ldr r0, =0x0000ffff str r0, [r1] _0804829A: ldr r1, =gUnknown_02024214 ldr r0, [r1] adds r0, 0x2 str r0, [r1] _080482A2: add sp, 0x4 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end atk0C_datahpupdate thumb_func_start atk0D_critmessage atk0D_critmessage: @ 80482BC push {lr} ldr r0, =gUnknown_02024068 ldr r0, [r0] cmp r0, 0 bne _080482F2 ldr r0, =gCritMultiplier ldrb r0, [r0] cmp r0, 0x2 bne _080482EA ldr r0, =gBattleMoveFlags ldrb r1, [r0] movs r0, 0x29 ands r0, r1 cmp r0, 0 bne _080482EA ldr r0, =gUnknown_0202420B ldrb r1, [r0] movs r0, 0xD9 bl b_std_message ldr r1, =gUnknown_02024332 movs r0, 0x1 strb r0, [r1, 0x7] _080482EA: ldr r1, =gUnknown_02024214 ldr r0, [r1] adds r0, 0x1 str r0, [r1] _080482F2: pop {r0} bx r0 .pool thumb_func_end atk0D_critmessage thumb_func_start atk0E_missmessage atk0E_missmessage: @ 8048310 push {r4,lr} ldr r0, =gUnknown_02024068 ldr r0, [r0] cmp r0, 0 bne _080483D0 ldr r4, =gUnknown_02024064 ldr r0, =gEnemyMonIndex ldrb r0, [r0] strb r0, [r4] ldr r1, =gBattleMoveFlags ldrb r2, [r1] movs r0, 0x1 ands r0, r2 cmp r0, 0 bne _080483C8 movs r0, 0xFE ands r0, r2 cmp r0, 0x10 beq _08048382 cmp r0, 0x10 bgt _0804835E cmp r0, 0x4 beq _08048372 cmp r0, 0x4 bgt _08048358 cmp r0, 0x2 beq _0804836C b _08048382 .pool _08048358: cmp r0, 0x8 beq _080483C8 b _08048382 _0804835E: cmp r0, 0x40 beq _08048382 cmp r0, 0x40 bgt _08048382 cmp r0, 0x20 beq _080483C8 b _08048382 _0804836C: movs r0, 0 movs r1, 0xE b _08048376 _08048372: movs r0, 0 movs r1, 0xC _08048376: bl dp01_build_cmdbuf_x2B_aa_0 ldrb r0, [r4] bl dp01_battle_side_mark_buffer_for_execution b _080483C8 _08048382: ldrb r1, [r1] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _08048392 movs r0, 0 movs r1, 0xE b _0804839E _08048392: movs r0, 0x4 ands r0, r1 cmp r0, 0 beq _080483B0 movs r0, 0 movs r1, 0xC _0804839E: bl dp01_build_cmdbuf_x2B_aa_0 ldr r0, =gUnknown_02024064 ldrb r0, [r0] bl dp01_battle_side_mark_buffer_for_execution b _080483C8 .pool _080483B0: movs r0, 0x28 ands r0, r1 cmp r0, 0 bne _080483C8 movs r0, 0 movs r1, 0xD bl dp01_build_cmdbuf_x2B_aa_0 ldr r0, =gUnknown_02024064 ldrb r0, [r0] bl dp01_battle_side_mark_buffer_for_execution _080483C8: ldr r1, =gUnknown_02024214 ldr r0, [r1] adds r0, 0x1 str r0, [r1] _080483D0: pop {r4} pop {r0} bx r0 .pool thumb_func_end atk0E_missmessage thumb_func_start atk0F_resultmessage atk0F_resultmessage: @ 80483E0 push {r4-r7,lr} movs r3, 0 ldr r0, =gUnknown_02024068 ldr r0, [r0] cmp r0, 0 beq _080483EE b _08048580 _080483EE: ldr r1, =gBattleMoveFlags ldrb r2, [r1] movs r4, 0x1 adds r0, r4, 0 ands r0, r2 adds r6, r1, 0 ldr r7, =gUnknown_02024332 cmp r0, 0 beq _0804842C movs r0, 0x8 ands r0, r2 cmp r0, 0 beq _0804840E ldrb r0, [r7, 0x6] cmp r0, 0x2 bls _0804842C _0804840E: ldr r1, =gUnknown_085CC834 ldrb r0, [r7, 0x6] lsls r0, 1 adds r0, r1 ldrh r3, [r0] strb r4, [r7, 0x7] b _0804856A .pool _0804842C: movs r0, 0x1 strb r0, [r7, 0x7] ldrb r5, [r6] movs r0, 0xFE ands r0, r5 cmp r0, 0x10 beq _08048470 cmp r0, 0x10 bgt _08048452 cmp r0, 0x4 beq _0804846C cmp r0, 0x4 bgt _0804844C cmp r0, 0x2 beq _08048468 b _080484B8 _0804844C: cmp r0, 0x8 beq _080484C4 b _080484B8 _08048452: cmp r0, 0x40 beq _08048474 cmp r0, 0x40 bgt _08048462 cmp r0, 0x20 bne _08048460 b _08048564 _08048460: b _080484B8 _08048462: cmp r0, 0x80 beq _08048478 b _080484B8 _08048468: movs r3, 0xDE b _0804856E _0804846C: movs r3, 0xDD b _0804856E _08048470: movs r3, 0xDA b _0804856E _08048474: movs r3, 0x99 b _0804856E _08048478: ldr r4, =gUnknown_02024208 ldr r2, =gBattleMons ldr r3, =gEnemyMonIndex ldrb r1, [r3] movs r0, 0x58 muls r0, r1 adds r0, r2 ldrh r0, [r0, 0x2E] strh r0, [r4] ldr r1, =gUnknown_0202420F ldrb r0, [r3] strb r0, [r1] movs r0, 0x3F ands r0, r5 strb r0, [r6] bl b_movescr_stack_push_cursor ldr r1, =gUnknown_02024214 ldr r0, =gUnknown_082DB816 b _0804857E .pool _080484B8: adds r2, r6, 0 ldrb r5, [r2] movs r0, 0x8 ands r0, r5 cmp r0, 0 beq _080484C8 _080484C4: movs r3, 0x1B b _0804856E _080484C8: movs r0, 0x10 ands r0, r5 cmp r0, 0 beq _080484F0 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, =gUnknown_02024214 ldr r0, =gUnknown_082DB1CE b _0804857E .pool _080484F0: movs r0, 0x40 ands r0, r5 cmp r0, 0 beq _08048510 movs r0, 0x3F ands r0, r5 strb r0, [r2] bl b_movescr_stack_push_cursor ldr r1, =gUnknown_02024214 ldr r0, =gUnknown_082DB1C7 b _0804857E .pool _08048510: movs r0, 0x80 ands r0, r5 cmp r0, 0 beq _08048558 ldr r4, =gUnknown_02024208 ldr r2, =gBattleMons ldr r3, =gEnemyMonIndex ldrb r1, [r3] movs r0, 0x58 muls r0, r1 adds r0, r2 ldrh r0, [r0, 0x2E] strh r0, [r4] ldr r1, =gUnknown_0202420F ldrb r0, [r3] strb r0, [r1] movs r0, 0x3F ands r0, r5 strb r0, [r6] bl b_movescr_stack_push_cursor ldr r1, =gUnknown_02024214 ldr r0, =gUnknown_082DB816 b _0804857E .pool _08048558: movs r0, 0x20 ands r0, r5 lsls r0, 24 lsrs r0, 24 cmp r0, 0 beq _08048568 _08048564: movs r3, 0xE5 b _0804856E _08048568: strb r0, [r7, 0x7] _0804856A: cmp r3, 0 beq _08048578 _0804856E: adds r0, r3, 0 ldr r1, =gUnknown_0202420B ldrb r1, [r1] bl b_std_message _08048578: ldr r1, =gUnknown_02024214 ldr r0, [r1] adds r0, 0x1 _0804857E: str r0, [r1] _08048580: pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end atk0F_resultmessage thumb_func_start atk10_printstring atk10_printstring: @ 8048590 push {r4,lr} ldr r0, =gUnknown_02024068 ldr r0, [r0] cmp r0, 0 bne _080485BA ldr r4, =gUnknown_02024214 ldr r1, [r4] ldrb r0, [r1, 0x1] ldrb r1, [r1, 0x2] lsls r1, 8 orrs r0, r1 ldr r1, =gUnknown_0202420B ldrb r1, [r1] bl b_std_message ldr r0, [r4] adds r0, 0x3 str r0, [r4] ldr r1, =gUnknown_02024332 movs r0, 0x1 strb r0, [r1, 0x7] _080485BA: pop {r4} pop {r0} bx r0 .pool thumb_func_end atk10_printstring thumb_func_start atk11_printstring2 atk11_printstring2: @ 80485D0 push {r4,r5,lr} ldr r5, =gUnknown_02024064 ldr r0, =gUnknown_0202420B ldrb r0, [r0] strb r0, [r5] ldr r4, =gUnknown_02024214 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, =gUnknown_02024332 movs r0, 0x1 strb r0, [r1, 0x7] pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end atk11_printstring2 thumb_func_start atk12_waitmessage atk12_waitmessage: @ 8048614 push {r4-r6,lr} ldr r0, =gUnknown_02024068 ldr r4, [r0] cmp r4, 0 bne _08048662 ldr r6, =gUnknown_02024332 ldrb r0, [r6, 0x7] cmp r0, 0 bne _0804863C ldr r1, =gUnknown_02024214 ldr r0, [r1] adds r0, 0x3 str r0, [r1] b _08048662 .pool _0804863C: ldr r5, =gUnknown_02024214 ldr r2, [r5] ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] lsls r0, 8 orrs r1, r0 ldr r3, =gUnknown_0202432C ldrh r0, [r3] adds r0, 0x1 strh r0, [r3] lsls r0, 16 lsrs r0, 16 cmp r0, r1 bcc _08048662 movs r1, 0 strh r4, [r3] adds r0, r2, 0x3 str r0, [r5] strb r1, [r6, 0x7] _08048662: pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end atk12_waitmessage thumb_func_start atk13_printfromtable atk13_printfromtable: @ 8048670 push {r4,r5,lr} ldr r0, =gUnknown_02024068 ldr r0, [r0] cmp r0, 0 bne _080486AE ldr r4, =gUnknown_02024214 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, =gUnknown_02024332 ldrb r0, [r5, 0x5] lsls r0, 1 adds r1, r0 ldrh r0, [r1] ldr r1, =gUnknown_0202420B ldrb r1, [r1] bl b_std_message ldr r0, [r4] adds r0, 0x5 str r0, [r4] movs r0, 0x1 strb r0, [r5, 0x7] _080486AE: pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end atk13_printfromtable thumb_func_start atk14_printfromtable2 atk14_printfromtable2: @ 80486C4 push {r4-r6,lr} ldr r0, =gUnknown_02024068 ldr r0, [r0] cmp r0, 0 bne _0804870E ldr r5, =gUnknown_02024214 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, =gUnknown_02024332 ldrb r0, [r6, 0x5] lsls r0, 1 adds r1, r0 ldr r4, =gUnknown_02024064 ldr r0, =gUnknown_0202420B 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] _0804870E: pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end atk14_printfromtable2 thumb_func_start sub_8048728 sub_8048728: @ 8048728 push {r4,lr} lsls r0, 24 lsrs r2, r0, 24 movs r1, 0 ldr r0, =gUnknown_0202406C ldrb r3, [r0] cmp r1, r3 bge _0804874E ldr r4, =gUnknown_0202407E ldrb r0, [r4] cmp r0, r2 beq _0804874E _08048740: adds r1, 0x1 cmp r1, r3 bge _0804874E adds r0, r1, r4 ldrb r0, [r0] cmp r0, r2 bne _08048740 _0804874E: lsls r0, r1, 24 lsrs r0, 24 pop {r4} pop {r1} bx r1 .pool thumb_func_end sub_8048728 thumb_func_start sub_8048760 sub_8048760: @ 8048760 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x8 lsls r0, 24 lsrs r5, r0, 24 lsls r1, 24 lsrs r6, r1, 24 movs r0, 0 mov r10, r0 movs r7, 0 movs r1, 0x1 str r1, [sp, 0x4] ldr r1, =gUnknown_02024332 ldrb r3, [r1, 0x3] movs r0, 0x40 ands r0, r3 cmp r0, 0 beq _080487B8 ldr r2, =gUnknown_0202420E ldr r0, =gUnknown_0202420B ldrb r0, [r0] strb r0, [r2] movs r0, 0xBF ands r0, r3 adds r3, r1, 0 strb r0, [r3, 0x3] movs r7, 0x40 ldr r1, =gUnknown_02024474 ldr r0, =gEnemyMonIndex b _080487C4 .pool _080487B8: ldr r2, =gUnknown_0202420E ldr r0, =gEnemyMonIndex ldrb r0, [r0] strb r0, [r2] ldr r1, =gUnknown_02024474 ldr r0, =gUnknown_0202420B _080487C4: ldrb r0, [r0] strb r0, [r1, 0x17] mov r9, r2 ldr r2, =gBattleMons mov r4, r9 ldrb r1, [r4] movs r0, 0x58 muls r0, r1 adds r0, r2 adds r0, 0x20 ldrb r0, [r0] cmp r0, 0x13 bne _08048828 ldr r0, =gUnknown_02024280 ldr r0, [r0] movs r1, 0x80 lsls r1, 6 ands r0, r1 cmp r0, 0 bne _08048828 cmp r5, 0 bne _08048828 ldr r1, =gUnknown_02024332 ldrb r0, [r1, 0x3] cmp r0, 0x9 bhi _08048828 ldr r1, =gUnknown_02024214 ldr r0, [r1] adds r0, 0x1 str r0, [r1] ldr r2, =gUnknown_02024332 strb r5, [r2, 0x3] bl _080499B8 .pool _08048828: mov r3, r9 ldrb r0, [r3] bl battle_get_per_side_status ldr r2, =gUnknown_0202428E 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 _08048880 ldr r0, =gUnknown_02024280 ldr r0, [r0] movs r1, 0x80 lsls r1, 6 ands r0, r1 cmp r0, 0 bne _08048880 cmp r5, 0 bne _08048880 ldr r0, =gUnknown_02024332 ldrb r1, [r0, 0x3] cmp r1, 0x7 bhi _08048880 ldr r1, =gUnknown_02024214 ldr r0, [r1] adds r0, 0x1 str r0, [r1] ldr r4, =gUnknown_02024332 strb r5, [r4, 0x3] bl _080499B8 .pool _08048880: ldr r3, =gBattleMons ldr r2, =gUnknown_0202420E ldrb r1, [r2] movs r0, 0x58 muls r0, r1 adds r0, r3 ldrh r4, [r0, 0x28] mov r9, r2 mov r8, r3 cmp r4, 0 bne _080488C4 ldr r1, =gUnknown_02024332 ldrb r0, [r1, 0x3] cmp r0, 0xB beq _080488C4 cmp r0, 0x1F beq _080488C4 ldr r1, =gUnknown_02024214 ldr r0, [r1] adds r0, 0x1 str r0, [r1] ldr r2, =gUnknown_02024332 strb r4, [r2, 0x3] bl _080499B8 .pool _080488C4: mov r3, r9 ldrb r1, [r3] movs r0, 0x58 muls r0, r1 mov r1, r8 adds r1, 0x50 adds r0, r1 ldr r0, [r0] movs r1, 0x80 lsls r1, 17 ands r0, r1 cmp r0, 0 beq _080488FC cmp r7, 0x40 beq _080488FC ldr r0, =gUnknown_02024214 ldr r1, [r0] adds r1, 0x1 str r1, [r0] movs r0, 0 ldr r4, =gUnknown_02024332 strb r0, [r4, 0x3] bl _080499B8 .pool _080488FC: ldr r1, =gUnknown_02024332 ldrb r0, [r1, 0x3] cmp r0, 0x6 bls _08048906 b _08048F40 _08048906: ldr r1, =gUnknown_0831C134 ldr r2, =gUnknown_02024332 ldrb r0, [r2, 0x3] lsls r0, 2 adds r0, r1 ldr r0, [r0] cmp r0, 0x10 bne _08048918 b _08048AFC _08048918: cmp r0, 0x10 bhi _08048930 cmp r0, 0x7 beq _0804894A cmp r0, 0x8 beq _08048A00 b _08048DF4 .pool _08048930: cmp r0, 0x40 bne _08048936 b _08048C84 _08048936: cmp r0, 0x40 bhi _08048942 cmp r0, 0x20 bne _08048940 b _08048BEA _08048940: b _08048DF4 _08048942: cmp r0, 0x80 bne _08048948 b _08048D02 _08048948: b _08048DF4 _0804894A: mov r3, r9 ldrb r1, [r3] movs r0, 0x58 muls r0, r1 add r0, r8 adds r0, 0x20 ldrb r0, [r0] cmp r0, 0x2B beq _080489AC ldr r0, =gUnknown_02024064 movs r1, 0 strb r1, [r0] ldr r1, =gUnknown_0202406C ldrb r3, [r1] adds r7, r0, 0 mov r12, r1 cmp r3, 0 beq _080489B8 mov r4, r8 ldr r0, [r4, 0x50] movs r1, 0x70 ands r0, r1 cmp r0, 0 bne _080489B8 adds r1, r7, 0 mov r6, r8 adds r6, 0x50 movs r5, 0x58 movs r4, 0x70 _08048984: ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] lsls r0, 24 lsrs r0, 24 cmp r0, r3 bcs _080489B8 ldrb r0, [r7] muls r0, r5 adds r0, r6 ldr r0, [r0] ands r0, r4 cmp r0, 0 beq _08048984 b _080489B8 .pool _080489AC: ldr r0, =gUnknown_02024064 ldr r2, =gUnknown_0202406C ldrb r1, [r2] strb r1, [r0] adds r7, r0, 0 mov r12, r2 _080489B8: mov r0, r9 ldrb r2, [r0] movs r0, 0x58 adds r1, r2, 0 muls r1, r0 mov r0, r8 adds r0, 0x4C adds r0, r1, r0 ldr r0, [r0] cmp r0, 0 beq _080489D0 b _08048DF4 _080489D0: ldrb r0, [r7] mov r3, r12 ldrb r3, [r3] cmp r0, r3 beq _080489DC b _08048DF4 _080489DC: mov r4, r8 adds r0, r1, r4 adds r0, 0x20 ldrb r0, [r0] cmp r0, 0x48 bne _080489EA b _08048DF4 _080489EA: cmp r0, 0xF bne _080489F0 b _08048DF4 _080489F0: adds r0, r2, 0 bl b_cancel_multi_turn_move_maybe b _08048DE4 .pool _08048A00: mov r2, r9 ldrb r1, [r2] movs r0, 0x58 muls r0, r1 add r0, r8 adds r0, 0x20 ldrb r1, [r0] cmp r1, 0x11 bne _08048A70 cmp r5, 0x1 beq _08048A1A cmp r6, 0x80 bne _08048A70 _08048A1A: ldr r0, =gUnknown_0202420A strb r1, [r0] mov r3, r9 ldrb r0, [r3] movs r1, 0x11 bl b_history__record_ability_usage_of_player ldr r4, =gUnknown_02024214 ldr r0, [r4] adds r0, 0x1 bl b_movescr_stack_push ldr r0, =gUnknown_082DB5E9 str r0, [r4] ldr r2, =gUnknown_02024280 ldr r1, [r2] movs r0, 0x80 lsls r0, 6 ands r0, r1 cmp r0, 0 bne _08048A46 b _08048D20 _08048A46: movs r0, 0x1 ldr r4, =gUnknown_02024332 strb r0, [r4, 0x5] _08048A4C: ldr r0, =0xffffdfff ands r1, r0 str r1, [r2] bl _080499B2 .pool _08048A70: mov r2, r9 ldrb r0, [r2] movs r1, 0x58 muls r0, r1 add r0, r8 adds r1, r0, 0 adds r1, 0x21 ldrb r1, [r1] cmp r1, 0x3 beq _08048A94 adds r0, 0x22 ldrb r0, [r0] cmp r0, 0x3 beq _08048A94 cmp r1, 0x8 beq _08048A94 cmp r0, 0x8 bne _08048AAE _08048A94: ldr r0, =gUnknown_02024280 ldr r0, [r0] movs r1, 0x80 lsls r1, 6 ands r0, r1 cmp r0, 0 beq _08048AAE cmp r5, 0x1 bne _08048AA8 b _08048D66 _08048AA8: cmp r6, 0x80 bne _08048AAE b _08048D66 _08048AAE: mov r3, r9 ldrb r1, [r3] movs r0, 0x58 muls r1, r0 mov r4, r8 adds r3, r1, r4 adds r0, r3, 0 adds r0, 0x21 ldrb r4, [r0] cmp r4, 0x3 bne _08048AC6 b _08048DF4 _08048AC6: adds r0, 0x1 ldrb r0, [r0] cmp r0, 0x3 bne _08048AD0 b _08048DF4 _08048AD0: cmp r4, 0x8 bne _08048AD6 b _08048DF4 _08048AD6: cmp r0, 0x8 bne _08048ADC b _08048DF4 _08048ADC: mov r0, r8 adds r0, 0x4C adds r0, r1, r0 ldr r0, [r0] cmp r0, 0 beq _08048AEA b _08048DF4 _08048AEA: adds r0, r3, 0 adds r0, 0x20 ldrb r0, [r0] cmp r0, 0x11 bne _08048AF6 b _08048DF4 _08048AF6: b _08048DE4 .pool _08048AFC: mov r2, r9 ldrb r1, [r2] movs r0, 0x58 muls r0, r1 add r0, r8 adds r0, 0x20 ldrb r1, [r0] cmp r1, 0x29 bne _08048B54 cmp r5, 0x1 beq _08048B16 cmp r6, 0x80 bne _08048B54 _08048B16: ldr r0, =gUnknown_0202420A strb r1, [r0] mov r3, r9 ldrb r0, [r3] movs r1, 0x29 bl b_history__record_ability_usage_of_player ldr r4, =gUnknown_02024214 ldr r0, [r4] adds r0, 0x1 bl b_movescr_stack_push ldr r0, =gUnknown_082DB5D1 str r0, [r4] ldr r2, =gUnknown_02024280 ldr r1, [r2] movs r0, 0x80 lsls r0, 6 ands r0, r1 cmp r0, 0 beq _08048B42 b _08048A46 _08048B42: b _08048D20 .pool _08048B54: mov r2, r9 ldrb r1, [r2] movs r0, 0x58 muls r0, r1 mov r3, r8 adds r1, r0, r3 adds r0, r1, 0 adds r0, 0x21 ldrb r0, [r0] cmp r0, 0xA beq _08048B74 adds r0, r1, 0 adds r0, 0x22 ldrb r0, [r0] cmp r0, 0xA bne _08048BA4 _08048B74: ldr r0, =gUnknown_02024280 ldr r0, [r0] movs r1, 0x80 lsls r1, 6 ands r0, r1 cmp r0, 0 beq _08048BA4 cmp r5, 0x1 beq _08048B8A cmp r6, 0x80 bne _08048BA4 _08048B8A: ldr r4, =gUnknown_02024214 ldr r0, [r4] adds r0, 0x1 bl b_movescr_stack_push ldr r0, =gUnknown_082DB5D1 b _08048D72 .pool _08048BA4: mov r4, r9 ldrb r0, [r4] movs r1, 0x58 adds r2, r0, 0 muls r2, r1 mov r0, r8 adds r1, r2, r0 adds r0, r1, 0 adds r0, 0x21 ldrb r0, [r0] cmp r0, 0xA bne _08048BBE b _08048DF4 _08048BBE: adds r0, r1, 0 adds r0, 0x22 ldrb r0, [r0] cmp r0, 0xA bne _08048BCA b _08048DF4 _08048BCA: adds r0, r1, 0 adds r0, 0x20 ldrb r0, [r0] cmp r0, 0x29 bne _08048BD6 b _08048DF4 _08048BD6: mov r0, r8 adds r0, 0x4C adds r0, r2, r0 ldr r0, [r0] cmp r0, 0 beq _08048BE4 b _08048DF4 _08048BE4: movs r1, 0x1 mov r10, r1 b _08048DF4 _08048BEA: movs r0, 0 str r0, [sp] movs r0, 0x13 movs r1, 0 movs r2, 0xD movs r3, 0 bl ability_something lsls r0, 24 lsrs r0, 24 cmp r0, 0 bne _08048C26 str r0, [sp] movs r0, 0x13 movs r1, 0 movs r2, 0x4D movs r3, 0 bl ability_something lsls r0, 24 cmp r0, 0 bne _08048C26 ldr r0, =gBattleWeather ldrh r1, [r0] movs r0, 0x60 ands r0, r1 cmp r0, 0 beq _08048C26 movs r2, 0 str r2, [sp, 0x4] _08048C26: ldr r4, =gBattleMons ldr r0, =gUnknown_0202420E 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 _08048C40 b _08048DF4 _08048C40: adds r0, r1, 0 adds r0, 0x22 ldrb r0, [r0] cmp r0, 0xF bne _08048C4C b _08048DF4 _08048C4C: adds r0, r4, 0 adds r0, 0x4C adds r0, r2, r0 ldr r0, [r0] cmp r0, 0 beq _08048C5A b _08048DF4 _08048C5A: ldr r4, [sp, 0x4] cmp r4, 0 bne _08048C62 b _08048DF4 _08048C62: adds r0, r1, 0 adds r0, 0x20 ldrb r0, [r0] cmp r0, 0x28 bne _08048C6E b _08048DF4 _08048C6E: adds r0, r3, 0 bl b_cancel_multi_turn_move_maybe b _08048DE4 .pool _08048C84: mov r2, r9 ldrb r1, [r2] movs r0, 0x58 muls r1, r0 mov r3, r8 adds r0, r1, r3 adds r0, 0x20 ldrb r2, [r0] cmp r2, 0x7 bne _08048CF4 cmp r5, 0x1 beq _08048CA2 cmp r6, 0x80 beq _08048CA2 b _08048DF4 _08048CA2: ldr r0, =gUnknown_0202420A strb r2, [r0] mov r4, r9 ldrb r0, [r4] movs r1, 0x7 bl b_history__record_ability_usage_of_player ldr r4, =gUnknown_02024214 ldr r0, [r4] adds r0, 0x1 bl b_movescr_stack_push ldr r0, =gUnknown_082DB5DD str r0, [r4] ldr r2, =gUnknown_02024280 ldr r1, [r2] movs r0, 0x80 lsls r0, 6 ands r0, r1 cmp r0, 0 beq _08048CE8 movs r0, 0x1 ldr r3, =gUnknown_02024332 strb r0, [r3, 0x5] b _08048A4C .pool _08048CE8: ldr r4, =gUnknown_02024332 strb r0, [r4, 0x5] bl _080499B2 .pool _08048CF4: mov r0, r8 adds r0, 0x4C adds r0, r1, r0 ldr r0, [r0] cmp r0, 0 bne _08048DF4 b _08048DE4 _08048D02: mov r2, r9 ldrb r1, [r2] movs r0, 0x58 muls r0, r1 add r0, r8 adds r0, 0x20 ldrb r1, [r0] cmp r1, 0x11 bne _08048D2C cmp r5, 0x1 bne _08048D1A b _08048A1A _08048D1A: cmp r6, 0x80 bne _08048D2C b _08048A1A _08048D20: ldr r1, =gUnknown_02024332 strb r0, [r1, 0x5] bl _080499B2 .pool _08048D2C: mov r2, r9 ldrb r0, [r2] movs r1, 0x58 muls r0, r1 add r0, r8 adds r1, r0, 0 adds r1, 0x21 ldrb r1, [r1] cmp r1, 0x3 beq _08048D50 adds r0, 0x22 ldrb r0, [r0] cmp r0, 0x3 beq _08048D50 cmp r1, 0x8 beq _08048D50 cmp r0, 0x8 bne _08048D94 _08048D50: ldr r0, =gUnknown_02024280 ldr r0, [r0] movs r1, 0x80 lsls r1, 6 ands r0, r1 cmp r0, 0 beq _08048D94 cmp r5, 0x1 beq _08048D66 cmp r6, 0x80 bne _08048D94 _08048D66: ldr r4, =gUnknown_02024214 ldr r0, [r4] adds r0, 0x1 bl b_movescr_stack_push ldr r0, =gUnknown_082DB5E9 _08048D72: str r0, [r4] ldr r1, =gUnknown_02024332 movs r2, 0 movs r0, 0x2 strb r0, [r1, 0x5] strb r2, [r1, 0x3] bl _080499B8 .pool _08048D94: mov r3, r9 ldrb r0, [r3] movs r6, 0x58 muls r0, r6 mov r2, r8 adds r2, 0x4C adds r5, r0, r2 ldr r4, [r5] cmp r4, 0 bne _08048DF4 mov r3, r8 adds r1, r0, r3 adds r0, r1, 0 adds r0, 0x21 ldrb r3, [r0] cmp r3, 0x3 beq _08048DEA adds r0, 0x1 ldrb r0, [r0] cmp r0, 0x3 beq _08048DEA cmp r3, 0x8 beq _08048DEA cmp r0, 0x8 beq _08048DEA adds r0, r1, 0 adds r0, 0x20 ldrb r0, [r0] cmp r0, 0x11 beq _08048DF4 mov r4, r9 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] _08048DE4: movs r0, 0x1 mov r10, r0 b _08048DF4 _08048DEA: ldr r0, =gBattleMoveFlags ldrb r1, [r0] movs r2, 0x8 orrs r1, r2 strb r1, [r0] _08048DF4: mov r1, r10 cmp r1, 0x1 beq _08048DFC b _08048F1C _08048DFC: ldr r0, =gUnknown_02024214 ldr r0, [r0] adds r0, 0x1 bl b_movescr_stack_push ldr r1, =gUnknown_0831C134 ldr r0, =gUnknown_02024332 ldrb r0, [r0, 0x3] lsls r0, 2 adds r0, r1 ldr r3, [r0] cmp r3, 0x7 bne _08048E50 bl Random ldr r2, =gBattleMons ldr r1, =gUnknown_0202420E 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 _08048E64 .pool _08048E50: ldr r2, =gBattleMons ldr r0, =gUnknown_0202420E ldrb r1, [r0] movs r0, 0x58 muls r1, r0 adds r2, 0x4C adds r1, r2 ldr r0, [r1] orrs r0, r3 str r0, [r1] _08048E64: ldr r2, =gUnknown_02024214 ldr r1, =gUnknown_0831C224 ldr r5, =gUnknown_02024332 ldrb r0, [r5, 0x3] lsls r0, 2 adds r0, r1 ldr r0, [r0] str r0, [r2] ldr r4, =gUnknown_02024064 ldr r1, =gUnknown_0202420E ldrb r0, [r1] strb r0, [r4] ldrb r1, [r1] movs r0, 0x58 muls r0, r1 ldr r1, =gUnknown_020240D0 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, =gUnknown_02024280 ldr r1, [r2] movs r0, 0x80 lsls r0, 6 ands r0, r1 cmp r0, 0 beq _08048ED8 movs r0, 0x1 strb r0, [r5, 0x5] ldr r0, =0xffffdfff ands r1, r0 str r1, [r2] b _08048EDA .pool _08048ED8: strb r0, [r5, 0x5] _08048EDA: ldr r0, =gUnknown_02024332 ldrb r2, [r0, 0x3] cmp r2, 0x2 beq _08048EF2 cmp r2, 0x6 beq _08048EF2 cmp r2, 0x5 beq _08048EF2 cmp r2, 0x3 beq _08048EF2 bl _080499B8 _08048EF2: ldr r0, =gUnknown_0202449C ldr r0, [r0] adds r0, 0xB2 ldr r2, =gUnknown_02024332 ldrb r1, [r2, 0x3] strb r1, [r0] ldr r2, =gUnknown_02024280 ldr r0, [r2] movs r1, 0x80 lsls r1, 7 orrs r0, r1 str r0, [r2] bl _080499B8 .pool _08048F1C: mov r3, r10 cmp r3, 0 beq _08048F26 bl _080499B8 _08048F26: ldr r0, =gUnknown_02024332 strb r3, [r0, 0x3] ldr r1, =gUnknown_02024214 ldr r0, [r1] adds r0, 0x1 str r0, [r1] bl _080499B8 .pool _08048F40: mov r4, r9 ldrb r1, [r4] movs r0, 0x58 muls r1, r0 mov r0, r8 adds r0, 0x50 adds r1, r0 ldr r2, =gUnknown_0831C134 ldr r0, =gUnknown_02024332 ldrb r3, [r0, 0x3] lsls r0, r3, 2 adds r0, r2 ldr r1, [r1] ldr r0, [r0] ands r1, r0 cmp r1, 0 beq _08048F66 bl _08049994 _08048F66: subs r0, r3, 0x7 cmp r0, 0x34 bls _08048F70 bl _080499B2 _08048F70: lsls r0, 2 ldr r1, =_08048F88 adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _08048F88: .4byte _0804905C .4byte _080490D0 .4byte _08049244 .4byte _0804915C .4byte _080491D8 .4byte _0804927C .4byte _080492C4 .4byte _08049390 .4byte _080493D4 .4byte _080493D4 .4byte _080493D4 .4byte _080493D4 .4byte _080493D4 .4byte _080493D4 .4byte _080493D4 .4byte _0804941C .4byte _0804941C .4byte _0804941C .4byte _0804941C .4byte _0804941C .4byte _0804941C .4byte _0804941C .4byte _080494FC .4byte _08049544 .4byte _08049564 .4byte _08049720 .4byte _0804975C .4byte _08049778 .4byte _08049790 .4byte _080497A8 .4byte _08049808 .4byte _08049820 .4byte _08049468 .4byte _08049468 .4byte _08049468 .4byte _08049468 .4byte _08049468 .4byte _08049468 .4byte _08049468 .4byte _080494B0 .4byte _080494B0 .4byte _080494B0 .4byte _080494B0 .4byte _080494B0 .4byte _080494B0 .4byte _080494B0 .4byte _08049864 .4byte _080498C0 .4byte _080499B2 .4byte _080499B2 .4byte _080499B2 .4byte _080499B2 .4byte _080499A4 _0804905C: mov r1, r9 ldrb r0, [r1] movs r5, 0x58 adds r1, r0, 0 muls r1, r5 mov r2, r8 adds r0, r1, r2 adds r0, 0x20 ldrb r0, [r0] cmp r0, 0x14 bne _08049076 bl _08049994 _08049076: mov r4, r8 adds r4, 0x50 adds r0, r1, r4 ldr r0, [r0] movs r1, 0x7 ands r0, r1 cmp r0, 0 beq _0804908A bl _08049994 _0804908A: bl Random mov r3, r9 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, =gUnknown_02024214 ldr r0, [r4] adds r0, 0x1 bl b_movescr_stack_push ldr r1, =gUnknown_0831C224 ldr r0, =gUnknown_02024332 ldrb r0, [r0, 0x3] lsls r0, 2 adds r0, r1 ldr r0, [r0] bl _080499B0 .pool _080490D0: mov r4, r9 ldrb r2, [r4] movs r4, 0x58 adds r0, r2, 0 muls r0, r4 add r0, r8 adds r0, 0x20 ldrb r1, [r0] cmp r1, 0x27 bne _08049114 cmp r5, 0x1 beq _080490F0 cmp r6, 0x80 beq _080490F0 bl _08049994 _080490F0: ldr r0, =gUnknown_0202420A strb r1, [r0] mov r1, r9 ldrb r0, [r1] movs r1, 0x27 bl b_history__record_ability_usage_of_player ldr r1, =gUnknown_02024214 ldr r0, =gUnknown_082DB603 str r0, [r1] bl _080499B2 .pool _08049114: adds r0, r2, 0 bl sub_8048728 ldr r1, =gUnknown_02024082 lsls r0, 24 lsrs r0, 24 ldrb r1, [r1] cmp r0, r1 bhi _0804912A bl _08049994 _0804912A: mov r2, r9 ldrb r0, [r2] adds r2, r0, 0 muls r2, r4 mov r0, r8 adds r0, 0x50 adds r2, r0 ldr r1, =gUnknown_0831C134 ldr r0, =gUnknown_02024332 ldrb r0, [r0, 0x3] lsls r0, 2 adds r0, r1 ldr r1, [r2] ldr r0, [r0] orrs r1, r0 str r1, [r2] bl _08049994 .pool _0804915C: mov r3, r9 ldrb r0, [r3] movs r5, 0x58 muls r0, r5 mov r4, r8 adds r4, 0x50 adds r2, r0, r4 ldr r1, [r2] movs r0, 0x70 ands r0, r1 cmp r0, 0 beq _08049178 bl _08049994 _08049178: movs r0, 0x80 lsls r0, 5 orrs r1, r0 str r1, [r2] ldr r1, =gUnknown_02024268 ldrb r0, [r3] lsls r0, 1 adds r0, r1 ldr r1, =gUnknown_020241EA ldrh r1, [r1] strh r1, [r0] bl Random mov r2, r9 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, =gUnknown_02024214 ldr r0, [r4] adds r0, 0x1 bl b_movescr_stack_push ldr r1, =gUnknown_0831C224 ldr r0, =gUnknown_02024332 ldrb r0, [r0, 0x3] lsls r0, 2 adds r0, r1 ldr r0, [r0] bl _080499B0 .pool _080491D8: ldr r5, =gUnknown_0202420B ldrb r0, [r5] bl battle_get_per_side_status movs r1, 0x1 ands r1, r0 cmp r1, 0 bne _08049210 ldr r4, =gUnknown_0202432E ldrh r3, [r4] ldr r2, =gBattleMons 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 _08049210 ldr r3, =0x0000ffff adds r0, r3, 0 strh r0, [r4] _08049210: ldr r4, =gUnknown_02024214 ldr r0, [r4] adds r0, 0x1 bl b_movescr_stack_push ldr r1, =gUnknown_0831C224 ldr r0, =gUnknown_02024332 ldrb r0, [r0, 0x3] lsls r0, 2 adds r0, r1 ldr r0, [r0] b _080499B0 .pool _08049244: mov r4, r9 ldrb r1, [r4] movs r0, 0x58 muls r0, r1 mov r1, r8 adds r1, 0x4C adds r0, r1 ldr r0, [r0] cmp r0, 0 beq _0804925A b _08049994 _0804925A: bl Random ldr r4, =gUnknown_02024332 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_8048760 b _080499B2 .pool _0804927C: mov r0, r9 ldrb r1, [r0] movs r0, 0x58 adds r2, r1, 0 muls r2, r0 mov r0, r8 adds r0, 0x50 adds r2, r0 ldr r0, [r2] movs r1, 0x80 lsls r1, 5 orrs r0, r1 str r0, [r2] ldr r1, =gUnknown_02024268 mov r2, r9 ldrb r0, [r2] lsls r0, 1 adds r0, r1 ldr r1, =gUnknown_020241EA ldrh r1, [r1] strh r1, [r0] ldr r0, =gUnknown_0202433C ldrb r1, [r2] lsls r1, 4 adds r1, r0 ldrb r0, [r1, 0x1] movs r2, 0x4 orrs r0, r2 strb r0, [r1, 0x1] b _08049994 .pool _080492C4: mov r3, r9 ldrb r0, [r3] movs r6, 0x58 muls r0, r6 mov r4, r8 adds r4, 0x50 adds r0, r4 ldr r5, [r0] movs r0, 0xE0 lsls r0, 8 ands r5, r0 cmp r5, 0 beq _080492E0 b _08049994 _080492E0: bl Random mov r2, r9 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] mov r3, r9 ldrb r1, [r3] ldr r2, =gUnknown_0202449C ldr r0, [r2] lsls r1, 1 adds r1, r0 ldr r6, =gUnknown_020241EA ldrh r0, [r6] strb r0, [r1, 0x4] ldrb r1, [r3] ldr r0, [r2] lsls r1, 1 adds r1, r0 ldrh r0, [r6] lsrs r0, 8 strb r0, [r1, 0x5] ldrb r1, [r3] ldr r0, [r2] adds r1, r0 ldr r0, =gUnknown_0202420B ldrb r0, [r0] strb r0, [r1, 0x14] ldr r4, =gUnknown_02024214 ldr r0, [r4] adds r0, 0x1 bl b_movescr_stack_push ldr r1, =gUnknown_0831C224 ldr r2, =gUnknown_02024332 ldrb r0, [r2, 0x3] lsls r0, 2 adds r0, r1 ldr r0, [r0] str r0, [r4] strb r5, [r2, 0x5] ldr r3, =gUnknown_085CC982 ldrh r0, [r3] ldrh r4, [r6] cmp r0, r4 bne _0804934E b _080499B2 _0804934E: adds r1, r2, 0 adds r2, r6, 0 _08049352: ldrb r0, [r1, 0x5] adds r0, 0x1 strb r0, [r1, 0x5] lsls r0, 24 lsrs r0, 24 cmp r0, 0x4 bls _08049362 b _080499B2 _08049362: ldrb r0, [r1, 0x5] lsls r0, 1 adds r0, r3 ldrh r0, [r0] ldrh r4, [r2] cmp r0, r4 bne _08049352 b _080499B2 .pool _08049390: ldr r1, =gBattleMoveDamage ldr r0, =gUnknown_020241F4 ldr r0, [r0] cmp r0, 0 bge _0804939C adds r0, 0x3 _0804939C: asrs r0, 2 str r0, [r1] cmp r0, 0 bne _080493A8 movs r0, 0x1 str r0, [r1] _080493A8: ldr r4, =gUnknown_02024214 ldr r0, [r4] adds r0, 0x1 bl b_movescr_stack_push ldr r1, =gUnknown_0831C224 ldr r0, =gUnknown_02024332 ldrb r0, [r0, 0x3] lsls r0, 2 adds r0, r1 ldr r0, [r0] b _080499B0 .pool _080493D4: ldr r4, =gUnknown_02024332 ldrb r1, [r4, 0x3] adds r1, 0xF2 lsls r1, 24 lsrs r1, 24 movs r0, 0x10 adds r2, r7, 0 movs r3, 0 bl sub_8050A1C lsls r0, 24 lsrs r3, r0, 24 cmp r3, 0 beq _080493F2 b _08049994 _080493F2: ldr r2, =gUnknown_02024474 ldrb r1, [r4, 0x3] movs r0, 0x3F ands r0, r1 strb r0, [r2, 0x10] strb r3, [r2, 0x11] ldr r4, =gUnknown_02024214 ldr r0, [r4] adds r0, 0x1 bl b_movescr_stack_push ldr r0, =gUnknown_082D8CD4 b _080499B0 .pool _0804941C: movs r0, 0x70 negs r0, r0 ldr r4, =gUnknown_02024332 ldrb r1, [r4, 0x3] adds r1, 0xEB lsls r1, 24 lsrs r1, 24 adds r2, r7, 0 movs r3, 0 bl sub_8050A1C lsls r0, 24 lsrs r3, r0, 24 cmp r3, 0 beq _0804943C b _08049994 _0804943C: ldr r2, =gUnknown_02024474 ldrb r1, [r4, 0x3] movs r0, 0x3F ands r0, r1 strb r0, [r2, 0x10] strb r3, [r2, 0x11] ldr r4, =gUnknown_02024214 ldr r0, [r4] adds r0, 0x1 bl b_movescr_stack_push ldr r0, =gUnknown_082D8D65 b _080499B0 .pool _08049468: ldr r4, =gUnknown_02024332 ldrb r1, [r4, 0x3] adds r1, 0xDA lsls r1, 24 lsrs r1, 24 movs r0, 0x20 adds r2, r7, 0 movs r3, 0 bl sub_8050A1C lsls r0, 24 lsrs r3, r0, 24 cmp r3, 0 beq _08049486 b _08049994 _08049486: ldr r2, =gUnknown_02024474 ldrb r1, [r4, 0x3] movs r0, 0x3F ands r0, r1 strb r0, [r2, 0x10] strb r3, [r2, 0x11] ldr r4, =gUnknown_02024214 ldr r0, [r4] adds r0, 0x1 bl b_movescr_stack_push ldr r0, =gUnknown_082D8CD4 b _080499B0 .pool _080494B0: movs r0, 0x60 negs r0, r0 ldr r4, =gUnknown_02024332 ldrb r1, [r4, 0x3] adds r1, 0xD3 lsls r1, 24 lsrs r1, 24 adds r2, r7, 0 movs r3, 0 bl sub_8050A1C lsls r0, 24 lsrs r3, r0, 24 cmp r3, 0 beq _080494D0 b _08049994 _080494D0: ldr r2, =gUnknown_02024474 ldrb r1, [r4, 0x3] movs r0, 0x3F ands r0, r1 strb r0, [r2, 0x10] strb r3, [r2, 0x11] ldr r4, =gUnknown_02024214 ldr r0, [r4] adds r0, 0x1 bl b_movescr_stack_push ldr r0, =gUnknown_082D8D65 b _080499B0 .pool _080494FC: mov r0, r9 ldrb r1, [r0] movs r0, 0x58 adds r2, r1, 0 muls r2, r0 mov r0, r8 adds r0, 0x50 adds r2, r0 ldr r0, [r2] movs r1, 0x80 lsls r1, 15 orrs r0, r1 str r0, [r2] ldr r2, =gUnknown_020242BC mov r3, r9 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, =gUnknown_02024268 ldrb r0, [r3] lsls r0, 1 adds r0, r1 ldr r1, =gUnknown_020241EA ldrh r1, [r1] strh r1, [r0] b _08049994 .pool _08049544: ldr r0, =gUnknown_0202420B ldrb r1, [r0] movs r0, 0x58 adds r2, r1, 0 muls r2, r0 mov r0, r8 adds r0, 0x50 adds r2, r0 ldr r0, [r2] movs r1, 0x80 lsls r1, 16 _0804955A: orrs r0, r1 str r0, [r2] b _08049994 .pool _08049564: ldr r5, =gBattleTypeFlags ldr r0, [r5] movs r1, 0x80 lsls r1, 19 ands r0, r1 cmp r0, 0 beq _08049574 b _08049994 _08049574: ldr r6, =gUnknown_0202420B ldrb r0, [r6] bl battle_side_get_owner lsls r0, 24 lsrs r4, r0, 24 ldrb r0, [r6] bl battle_side_get_owner lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080495A8 ldr r0, [r5] ldr r1, =0x0a3f0902 ands r0, r1 cmp r0, 0 bne _080495D4 b _08049994 .pool _080495A8: ldr r0, [r5] ldr r1, =0x0a3f0902 ands r0, r1 cmp r0, 0 bne _080495D4 ldr r0, =gUnknown_020243D0 adds r0, 0x29 adds r0, r4, r0 ldrb r1, [r0] ldr r3, =gBitTable ldr r2, =gUnknown_0202406E ldrb r0, [r6] 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 _080495D4 b _08049994 _080495D4: ldr r2, =gBattleMons ldr r1, =gEnemyMonIndex ldrb r0, [r1] movs r5, 0x58 muls r0, r5 adds r4, r0, r2 ldrh r0, [r4, 0x2E] adds r7, r1, 0 mov r8, r2 cmp r0, 0 beq _0804963C adds r0, r4, 0 adds r0, 0x20 ldrb r0, [r0] cmp r0, 0x3C bne _0804963C bl b_movescr_stack_push_cursor ldr r1, =gUnknown_02024214 ldr r0, =gUnknown_082DB682 str r0, [r1] ldr r1, =gUnknown_0202420A ldrb r0, [r7] muls r0, r5 add r0, r8 adds r0, 0x20 ldrb r0, [r0] strb r0, [r1] ldrb r0, [r7] ldrb r1, [r1] bl b_history__record_ability_usage_of_player b _080499B2 .pool _0804963C: ldr r4, =gUnknown_0202420B mov r10, r4 ldrb r2, [r4] movs r0, 0x58 mov r9, r0 mov r0, r9 muls r0, r2 add r0, r8 ldrh r4, [r0, 0x2E] cmp r4, 0 beq _08049654 b _08049994 _08049654: ldrb r0, [r7] mov r1, r9 muls r1, r0 adds r0, r1, 0 add r0, r8 ldrh r3, [r0, 0x2E] adds r1, r3, 0 cmp r1, 0xAF bne _08049668 b _08049994 _08049668: adds r0, r3, 0 subs r0, 0x79 lsls r0, 16 lsrs r0, 16 cmp r0, 0xB bhi _08049676 b _08049994 _08049676: cmp r1, 0 bne _0804967C b _08049994 _0804967C: ldr r5, =gUnknown_0202449C lsls r0, r2, 1 adds r0, 0xD0 ldr r1, [r5] adds r1, r0 ldr r2, =gUnknown_02024208 strh r3, [r1] strh r3, [r2] ldrb r0, [r7] mov r3, r9 muls r3, r0 adds r0, r3, 0 add r0, r8 movs r6, 0 strh r4, [r0, 0x2E] ldr r4, =gUnknown_02024064 mov r1, r10 ldrb r0, [r1] strb r0, [r4] str r2, [sp] movs r0, 0 movs r1, 0x2 movs r2, 0 movs r3, 0x2 bl dp01_build_cmdbuf_x02_a_b_varargs mov r2, r10 ldrb r0, [r2] bl dp01_battle_side_mark_buffer_for_execution ldrb r0, [r7] strb r0, [r4] ldrb r0, [r7] mov r3, r9 muls r3, r0 adds r0, r3, 0 mov r1, r8 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, =gUnknown_02024214 ldr r0, [r4] adds r0, 0x1 bl b_movescr_stack_push ldr r0, =gUnknown_082DB422 str r0, [r4] ldrb r0, [r7] ldr r1, [r5] lsls r0, 1 adds r0, r1 adds r0, 0xC8 strb r6, [r0] ldrb r0, [r7] ldr r1, [r5] lsls r0, 1 adds r0, r1 adds r0, 0xC9 strb r6, [r0] b _080499B2 .pool _08049720: ldr r3, =gEnemyMonIndex ldrb r1, [r3] movs r0, 0x58 adds r2, r1, 0 muls r2, r0 mov r0, r8 adds r0, 0x50 adds r2, r0 ldr r0, [r2] movs r1, 0x80 lsls r1, 19 orrs r0, r1 str r0, [r2] ldr r2, =gUnknown_020242BC ldrb r1, [r3] lsls r0, r1, 3 subs r0, r1 lsls r0, 2 adds r0, r2 ldr r1, =gUnknown_0202420B ldrb r1, [r1] strb r1, [r0, 0x14] b _08049994 .pool _0804975C: ldr r0, =gEnemyMonIndex ldrb r1, [r0] movs r0, 0x58 adds r2, r1, 0 muls r2, r0 mov r0, r8 adds r0, 0x50 adds r2, r0 ldr r0, [r2] movs r1, 0x80 lsls r1, 20 b _0804955A .pool _08049778: ldr r4, =gUnknown_02024214 ldr r0, [r4] adds r0, 0x1 bl b_movescr_stack_push ldr r0, =gUnknown_082DAF27 b _080499B0 .pool _08049790: ldr r4, =gUnknown_02024214 ldr r0, [r4] adds r0, 0x1 bl b_movescr_stack_push ldr r0, =gUnknown_082DAFC3 b _080499B0 .pool _080497A8: ldr r6, =gEnemyMonIndex ldrb r0, [r6] movs r2, 0x58 muls r0, r2 mov r1, r8 adds r1, 0x4C adds r5, r0, r1 ldr r4, [r5] movs r0, 0x40 ands r0, r4 cmp r0, 0 bne _080497C2 b _08049994 _080497C2: movs r0, 0x41 negs r0, r0 ands r4, r0 str r4, [r5] ldr r4, =gUnknown_02024064 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, =gUnknown_02024214 ldr r0, [r4] adds r0, 0x1 bl b_movescr_stack_push ldr r0, =gUnknown_082DB361 b _080499B0 .pool _08049808: ldr r4, =gUnknown_02024214 ldr r0, [r4] adds r0, 0x1 bl b_movescr_stack_push ldr r0, =gUnknown_082DB117 b _080499B0 .pool _08049820: ldr r4, =gBattleMoveDamage ldr r0, =gUnknown_020241F4 ldr r0, [r0] movs r1, 0x3 bl __divsi3 str r0, [r4] cmp r0, 0 bne _08049836 movs r0, 0x1 str r0, [r4] _08049836: ldr r4, =gUnknown_02024214 ldr r0, [r4] adds r0, 0x1 bl b_movescr_stack_push ldr r1, =gUnknown_0831C224 ldr r0, =gUnknown_02024332 ldrb r0, [r0, 0x3] lsls r0, 2 adds r0, r1 ldr r0, [r0] b _080499B0 .pool _08049864: mov r4, r9 ldrb r0, [r4] movs r5, 0x58 muls r0, r5 mov r4, r8 adds r4, 0x50 adds r2, r0, r4 ldr r1, [r2] movs r0, 0xC0 lsls r0, 4 ands r0, r1 cmp r0, 0 beq _08049880 b _08049994 _08049880: movs r0, 0x80 lsls r0, 5 orrs r1, r0 str r1, [r2] ldr r1, =gUnknown_02024268 mov r2, r9 ldrb r0, [r2] lsls r0, 1 adds r0, r1 ldr r1, =gUnknown_020241EA ldrh r1, [r1] strh r1, [r0] bl Random mov r3, r9 ldrb r1, [r3] 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] orrs r0, r1 str r0, [r2] b _080499B2 .pool _080498C0: mov r4, r9 ldrb r3, [r4] movs r5, 0x58 adds r0, r3, 0 muls r0, r5 mov r2, r8 adds r1, r0, r2 adds r0, r1, 0 adds r0, 0x20 ldrb r2, [r0] cmp r2, 0x3C bne _08049900 ldrh r0, [r1, 0x2E] cmp r0, 0 beq _08049994 ldr r0, =gUnknown_0202420A strb r2, [r0] ldr r1, =gUnknown_02024214 ldr r0, =gUnknown_082DB63F str r0, [r1] ldrb r0, [r4] movs r1, 0x3C bl b_history__record_ability_usage_of_player b _080499B2 .pool _08049900: ldrh r0, [r1, 0x2E] cmp r0, 0 beq _08049994 adds r0, r3, 0 bl battle_side_get_owner lsls r0, 24 lsrs r4, r0, 24 ldr r1, =gUnknown_02024208 mov r3, r9 ldrb r0, [r3] muls r0, r5 add r0, r8 ldrh r0, [r0, 0x2E] strh r0, [r1] ldrb r0, [r3] muls r0, r5 add r0, r8 movs r5, 0 movs r1, 0 strh r1, [r0, 0x2E] ldr r2, =gUnknown_020243D0 adds r2, 0x29 adds r2, r4, r2 ldr r3, =gBitTable ldr r1, =gUnknown_0202406E mov r4, r9 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, =gUnknown_02024214 ldr r0, [r4] adds r0, 0x1 bl b_movescr_stack_push ldr r0, =gUnknown_082DB168 str r0, [r4] mov r1, r9 ldrb r0, [r1] ldr r2, =gUnknown_0202449C ldr r1, [r2] lsls r0, 1 adds r0, r1 adds r0, 0xC8 strb r5, [r0] mov r3, r9 ldrb r0, [r3] ldr r1, [r2] lsls r0, 1 adds r0, r1 adds r0, 0xC9 strb r5, [r0] b _080499B2 .pool _08049994: ldr r1, =gUnknown_02024214 ldr r0, [r1] adds r0, 0x1 str r0, [r1] b _080499B2 .pool _080499A4: ldr r4, =gUnknown_02024214 ldr r0, [r4] adds r0, 0x1 bl b_movescr_stack_push ldr r0, =gUnknown_082DB1D5 _080499B0: str r0, [r4] _080499B2: ldr r1, =gUnknown_02024332 movs r0, 0 strb r0, [r1, 0x3] _080499B8: add sp, 0x8 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_8048760 thumb_func_start atk15_seteffectwithchancetarget atk15_seteffectwithchancetarget: @ 80499D4 push {r4,lr} ldr r2, =gBattleMons ldr r0, =gUnknown_0202420B ldrb r1, [r0] movs r0, 0x58 muls r0, r1 adds r0, r2 adds r0, 0x20 ldrb r0, [r0] cmp r0, 0x20 bne _08049A10 ldr r2, =gBattleMoves ldr r0, =gUnknown_020241EA 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 _08049A20 .pool _08049A10: ldr r2, =gBattleMoves ldr r0, =gUnknown_020241EA ldrh r1, [r0] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r4, [r0, 0x5] _08049A20: ldr r3, =gUnknown_02024332 ldrb r2, [r3, 0x3] movs r0, 0x80 ands r0, r2 cmp r0, 0 beq _08049A50 ldr r0, =gBattleMoveFlags ldrb r1, [r0] movs r0, 0x29 ands r0, r1 cmp r0, 0 bne _08049A50 movs r0, 0x7F ands r0, r2 strb r0, [r3, 0x3] b _08049A7E .pool _08049A50: bl Random lsls r0, 16 lsrs r0, 16 movs r1, 0x64 bl __umodsi3 lsls r0, 16 lsrs r0, 16 cmp r0, r4 bcs _08049A9A ldr r0, =gUnknown_02024332 ldrb r0, [r0, 0x3] cmp r0, 0 beq _08049A9A ldr r0, =gBattleMoveFlags ldrb r1, [r0] movs r0, 0x29 ands r0, r1 cmp r0, 0 bne _08049A9A cmp r4, 0x63 bls _08049A90 _08049A7E: movs r0, 0 movs r1, 0x80 bl sub_8048760 b _08049AA2 .pool _08049A90: movs r0, 0 movs r1, 0 bl sub_8048760 b _08049AA2 _08049A9A: ldr r1, =gUnknown_02024214 ldr r0, [r1] adds r0, 0x1 str r0, [r1] _08049AA2: ldr r0, =gUnknown_02024332 movs r1, 0 strb r1, [r0, 0x3] ldr r0, =gUnknown_02024474 strb r1, [r0, 0x16] pop {r4} pop {r0} bx r0 .pool thumb_func_end atk15_seteffectwithchancetarget thumb_func_start sub_8049AC0 sub_8049AC0: @ 8049AC0 push {lr} movs r0, 0x1 movs r1, 0 bl sub_8048760 pop {r0} bx r0 thumb_func_end sub_8049AC0 thumb_func_start sub_8049AD0 sub_8049AD0: @ 8049AD0 push {lr} movs r0, 0 movs r1, 0 bl sub_8048760 pop {r0} bx r0 thumb_func_end sub_8049AD0 thumb_func_start sub_8049AE0 sub_8049AE0: @ 8049AE0 push {lr} ldr r0, =gUnknown_02024214 ldr r0, [r0] ldrb r0, [r0, 0x1] bl get_battle_side_of_something ldr r2, =gUnknown_02024064 strb r0, [r2] ldr r3, =gUnknown_02024332 ldrb r0, [r3, 0x3] cmp r0, 0x6 bhi _08049B14 ldr r1, =gBattleMons ldrb r2, [r2] movs r0, 0x58 muls r2, r0 adds r1, 0x4C b _08049B1E .pool _08049B14: ldr r1, =gBattleMons ldrb r2, [r2] movs r0, 0x58 muls r2, r0 adds r1, 0x50 _08049B1E: adds r2, r1 ldr r1, =gUnknown_0831C134 ldrb r0, [r3, 0x3] lsls r0, 2 adds r0, r1 ldr r1, [r0] ldr r0, [r2] bics r0, r1 str r0, [r2] ldr r0, =gUnknown_02024332 movs r2, 0 strb r2, [r0, 0x3] ldr r1, =gUnknown_02024214 ldr r0, [r1] adds r0, 0x2 str r0, [r1] ldr r0, =gUnknown_02024474 strb r2, [r0, 0x16] pop {r0} bx r0 .pool thumb_func_end sub_8049AE0 thumb_func_start atk19_faintpokemon atk19_faintpokemon: @ 8049B5C push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x4 ldr r0, =gUnknown_02024214 ldr r2, [r0] ldrb r1, [r2, 0x2] adds r6, r0, 0 cmp r1, 0 beq _08049BE0 ldrb r0, [r2, 0x1] bl get_battle_side_of_something ldr r5, =gUnknown_02024064 strb r0, [r5] ldr r2, =gUnknown_02024280 ldr r1, =gBitTable 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 _08049B94 b _08049E2C _08049B94: 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, =gUnknown_0202428E lsls r0, 24 lsrs r0, 23 adds r0, r1 ldrh r2, [r0] ldr r1, =0x0000fdff ands r1, r2 strh r1, [r0] b _08049E32 .pool _08049BE0: ldrb r0, [r2, 0x1] cmp r0, 0x1 bne _08049C08 ldr r1, =gUnknown_02024064 ldr r0, =gUnknown_0202420B ldrb r0, [r0] strb r0, [r1] ldr r0, =gEnemyMonIndex ldrb r0, [r0] mov r9, r0 ldr r4, =gUnknown_082DA7AA b _08049C18 .pool _08049C08: ldr r1, =gUnknown_02024064 ldr r0, =gEnemyMonIndex ldrb r0, [r0] strb r0, [r1] ldr r0, =gUnknown_0202420B ldrb r0, [r0] mov r9, r0 ldr r4, =gUnknown_082DA7B7 _08049C18: mov r8, r1 ldr r0, =gUnknown_02024210 ldrb r1, [r0] ldr r2, =gBitTable mov r7, r8 ldrb r3, [r7] lsls r0, r3, 2 adds r0, r2 ldr r2, [r0] ands r1, r2 cmp r1, 0 beq _08049C32 b _08049E2C _08049C32: ldr r1, =gBattleMons movs r0, 0x58 muls r0, r3 adds r0, r1 ldrh r0, [r0, 0x28] cmp r0, 0 beq _08049C42 b _08049E2C _08049C42: ldr r5, =gUnknown_02024280 lsls r1, r2, 28 ldr r0, [r5] orrs r0, r1 str r0, [r5] ldr r0, [r6] adds r0, 0x7 bl b_movescr_stack_push str r4, [r6] ldrb r0, [r7] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 bne _08049CA4 ldr r0, [r5] movs r1, 0x80 lsls r1, 15 orrs r0, r1 str r0, [r5] ldr r1, =gUnknown_03005D10 ldrb r0, [r1] cmp r0, 0xFE bhi _08049C78 adds r0, 0x1 strb r0, [r1] _08049C78: ldrb r0, [r7] bl sub_80570F4 b _08049CCE .pool _08049CA4: ldr r4, =gUnknown_03005D10 ldrb r0, [r4, 0x1] cmp r0, 0xFE bhi _08049CB0 adds r0, 0x1 strb r0, [r4, 0x1] _08049CB0: ldr r1, =gUnknown_0202406E mov r2, r8 ldrb r0, [r2] lsls r0, 1 adds r0, r1 ldrh r1, [r0] movs r0, 0x64 muls r0, r1 ldr r1, =gEnemyParty adds r0, r1 movs r1, 0xB movs r2, 0 bl GetMonData strh r0, [r4, 0x20] _08049CCE: ldr r2, =gUnknown_02024280 ldr r1, [r2] movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _08049D0C ldr r6, =gBattleMons ldr r0, =gUnknown_0202420B ldrb r0, [r0] movs r5, 0x58 muls r0, r5 adds r0, r6 ldrh r0, [r0, 0x28] cmp r0, 0 beq _08049D0C movs r0, 0x41 negs r0, r0 ands r1, r0 str r1, [r2] ldr r4, =gUnknown_02024214 ldr r0, [r4] bl b_movescr_stack_push ldr r1, =gBattleMoveDamage mov r0, r9 muls r0, r5 adds r0, r6 ldrh r0, [r0, 0x28] str r0, [r1] ldr r0, =gUnknown_082DAE3E str r0, [r4] _08049D0C: ldr r1, =gUnknown_020242AC ldr r6, =gEnemyMonIndex 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 _08049D24 b _08049E32 _08049D24: ldr r0, =gUnknown_02024280 ldr r5, [r0] movs r0, 0x80 lsls r0, 17 ands r5, r0 cmp r5, 0 beq _08049D34 b _08049E32 _08049D34: ldr r3, =gUnknown_0202420B mov r8, r3 ldrb r0, [r3] 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 _08049E32 ldr r0, =gBattleMons mov r9, r0 mov r2, r8 ldrb r1, [r2] movs r7, 0x58 adds r2, r1, 0 muls r2, r7 adds r0, r2, r0 ldrh r0, [r0, 0x28] cmp r0, 0 beq _08049E32 ldr r0, =gUnknown_020241EA ldrh r0, [r0] cmp r0, 0xA5 beq _08049E32 ldr r0, =gUnknown_0202449C ldr r0, [r0] adds r0, r1, r0 adds r0, 0x80 ldrb r4, [r0] adds r0, r4, r2 mov r6, r9 adds r6, 0x24 adds r0, r6 strb r5, [r0] ldr r5, =gUnknown_02024214 ldr r0, [r5] bl b_movescr_stack_push ldr r0, =gUnknown_082DB18D str r0, [r5] ldr r5, =gUnknown_02024064 mov r3, r8 ldrb r0, [r3] 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, =gUnknown_02022F58 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 _08049E32 .pool _08049E2C: ldr r0, [r6] adds r0, 0x7 str r0, [r6] _08049E32: add sp, 0x4 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 thumb_func_end atk19_faintpokemon thumb_func_start sub_8049E40 sub_8049E40: @ 8049E40 push {r4,r5,lr} ldr r0, =gUnknown_02024068 ldr r0, [r0] cmp r0, 0 bne _08049E6A ldr r5, =gUnknown_02024214 ldr r0, [r5] ldrb r0, [r0, 0x1] bl get_battle_side_of_something ldr r4, =gUnknown_02024064 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] _08049E6A: pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_8049E40 thumb_func_start sub_8049E7C sub_8049E7C: @ 8049E7C push {r4,r5,lr} sub sp, 0x4 ldr r0, =gUnknown_02024068 ldr r5, [r0] cmp r5, 0 bne _08049EE8 ldr r0, =gUnknown_02024214 ldr r0, [r0] ldrb r0, [r0, 0x1] bl get_battle_side_of_something ldr r4, =gUnknown_02024064 strb r0, [r4] ldr r0, =gBattleTypeFlags ldr r0, [r0] movs r1, 0x80 lsls r1, 11 ands r0, r1 cmp r0, 0 beq _08049EB4 ldr r2, =gBattleMons ldrb r1, [r4] movs r0, 0x58 muls r0, r1 adds r0, r2 ldrh r0, [r0, 0x28] cmp r0, 0 bne _08049EDC _08049EB4: ldr r1, =gBattleMons ldrb r0, [r4] movs r2, 0x58 muls r0, r2 adds r1, 0x4C adds r0, r1 str r5, [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 _08049EDC: bl sub_803A75C ldr r1, =gUnknown_02024214 ldr r0, [r1] adds r0, 0x2 str r0, [r1] _08049EE8: add sp, 0x4 pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_8049E7C thumb_func_start atk1C_jumpifstatus atk1C_jumpifstatus: @ 8049F04 push {r4,r5,lr} ldr r5, =gUnknown_02024214 ldr r0, [r5] ldrb r0, [r0, 0x1] bl get_battle_side_of_something 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, =gBattleMons 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 _08049F68 adds r0, r1, r2 ldrh r0, [r0, 0x28] cmp r0, 0 beq _08049F68 str r3, [r5] b _08049F70 .pool _08049F68: ldr r1, =gUnknown_02024214 ldr r0, [r1] adds r0, 0xA str r0, [r1] _08049F70: pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end atk1C_jumpifstatus thumb_func_start atk1D_jumpifsecondarystatus atk1D_jumpifsecondarystatus: @ 8049F7C push {r4,r5,lr} ldr r5, =gUnknown_02024214 ldr r0, [r5] ldrb r0, [r0, 0x1] bl get_battle_side_of_something 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, =gBattleMons 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 _08049FE0 adds r0, r1, r2 ldrh r0, [r0, 0x28] cmp r0, 0 beq _08049FE0 str r3, [r5] b _08049FE8 .pool _08049FE0: ldr r1, =gUnknown_02024214 ldr r0, [r1] adds r0, 0xA str r0, [r1] _08049FE8: pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end atk1D_jumpifsecondarystatus thumb_func_start atk1E_jumpifability atk1E_jumpifability: @ 8049FF4 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x4 ldr r6, =gUnknown_02024214 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 _0804A054 ldr r0, =gUnknown_0202420B ldrb r1, [r0] movs r0, 0 str r0, [sp] movs r0, 0xD adds r2, r5, 0 movs r3, 0 bl ability_something lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0 beq _0804A0C8 ldr r1, =gUnknown_0202420A strb r5, [r1] str r7, [r6] subs r4, 0x1 lsls r0, r4, 24 lsrs r0, 24 ldrb r1, [r1] b _0804A0B0 .pool _0804A054: cmp r0, 0x9 bne _0804A08C ldr r0, =gUnknown_0202420B ldrb r1, [r0] movs r0, 0 str r0, [sp] movs r0, 0xC adds r2, r5, 0 movs r3, 0 bl ability_something lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0 beq _0804A0C8 ldr r1, =gUnknown_0202420A strb r5, [r1] str r7, [r6] subs r4, 0x1 lsls r0, r4, 24 lsrs r0, 24 ldrb r1, [r1] b _0804A0B0 .pool _0804A08C: ldrb r0, [r2, 0x1] bl get_battle_side_of_something lsls r0, 24 lsrs r4, r0, 24 ldr r1, =gBattleMons movs r0, 0x58 muls r0, r4 adds r0, r1 adds r0, 0x20 ldrb r1, [r0] cmp r1, r8 bne _0804A0C8 ldr r0, =gUnknown_0202420A strb r1, [r0] str r7, [r6] ldrb r1, [r0] adds r0, r4, 0 _0804A0B0: bl b_history__record_ability_usage_of_player ldr r0, =gUnknown_02024474 strb r4, [r0, 0x15] b _0804A0CE .pool _0804A0C8: ldr r0, [r6] adds r0, 0x7 str r0, [r6] _0804A0CE: add sp, 0x4 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 thumb_func_end atk1E_jumpifability thumb_func_start sub_804A0DC sub_804A0DC: @ 804A0DC push {r4-r6,lr} ldr r0, =gUnknown_02024214 ldr r0, [r0] ldrb r4, [r0, 0x1] cmp r4, 0x1 bne _0804A0FC ldr r0, =gUnknown_0202420B ldrb r0, [r0] bl battle_get_per_side_status b _0804A106 .pool _0804A0FC: ldr r0, =gEnemyMonIndex ldrb r0, [r0] bl battle_get_per_side_status movs r4, 0x1 _0804A106: ands r4, r0 ldr r6, =gUnknown_02024214 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, =gUnknown_0202428E lsls r0, r4, 1 adds r0, r1 ldrh r0, [r0] ands r2, r0 cmp r2, 0 beq _0804A148 str r5, [r6] b _0804A14E .pool _0804A148: adds r0, r3, 0 adds r0, 0x8 str r0, [r6] _0804A14E: pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_804A0DC thumb_func_start sub_804A154 sub_804A154: @ 804A154 push {r4,r5,lr} movs r5, 0 ldr r4, =gUnknown_02024214 ldr r0, [r4] ldrb r0, [r0, 0x1] bl get_battle_side_of_something lsls r0, 24 lsrs r0, 24 ldr r2, =gBattleMons 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 _0804A212 lsls r0, 2 ldr r1, =_0804A194 adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _0804A194: .4byte _0804A1AC .4byte _0804A1BC .4byte _0804A1CC .4byte _0804A1DC .4byte _0804A1EC .4byte _0804A200 _0804A1AC: ldr r0, =gUnknown_02024214 ldr r0, [r0] ldrb r0, [r0, 0x4] cmp r2, r0 bne _0804A212 b _0804A20C .pool _0804A1BC: ldr r0, =gUnknown_02024214 ldr r0, [r0] ldrb r0, [r0, 0x4] cmp r2, r0 beq _0804A212 b _0804A20C .pool _0804A1CC: ldr r0, =gUnknown_02024214 ldr r0, [r0] ldrb r0, [r0, 0x4] cmp r2, r0 bls _0804A212 b _0804A20C .pool _0804A1DC: ldr r0, =gUnknown_02024214 ldr r0, [r0] ldrb r0, [r0, 0x4] cmp r2, r0 bcs _0804A212 b _0804A20C .pool _0804A1EC: ldr r0, =gUnknown_02024214 ldr r0, [r0] ldrb r0, [r0, 0x4] ands r2, r0 cmp r2, 0 beq _0804A212 b _0804A20C .pool _0804A200: ldr r0, =gUnknown_02024214 ldr r0, [r0] ldrb r0, [r0, 0x4] ands r2, r0 cmp r2, 0 bne _0804A212 _0804A20C: adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 _0804A212: cmp r5, 0 beq _0804A238 ldr r3, =gUnknown_02024214 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 _0804A240 .pool _0804A238: ldr r1, =gUnknown_02024214 ldr r0, [r1] adds r0, 0x9 str r0, [r1] _0804A240: pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_804A154 thumb_func_start atk21_jumpifspecialstatusflag atk21_jumpifspecialstatusflag: @ 804A24C push {r4-r6,lr} ldr r4, =gUnknown_02024214 ldr r0, [r4] ldrb r0, [r0, 0x1] bl get_battle_side_of_something ldr r5, =gUnknown_02024064 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 _0804A2AC ldr r0, =gUnknown_020242AC ldrb r1, [r5] lsls r1, 2 adds r1, r0 ldr r0, [r1] ands r0, r6 cmp r0, 0 bne _0804A2C4 b _0804A2BC .pool _0804A2AC: ldr r0, =gUnknown_020242AC ldrb r1, [r5] lsls r1, 2 adds r1, r0 ldr r0, [r1] ands r0, r6 cmp r0, 0 beq _0804A2C4 _0804A2BC: str r3, [r4] b _0804A2CA .pool _0804A2C4: adds r0, r2, 0 adds r0, 0xB str r0, [r4] _0804A2CA: pop {r4-r6} pop {r0} bx r0 thumb_func_end atk21_jumpifspecialstatusflag thumb_func_start sub_804A2D0 sub_804A2D0: @ 804A2D0 push {r4-r6,lr} ldr r4, =gUnknown_02024214 ldr r0, [r4] ldrb r0, [r0, 0x1] bl get_battle_side_of_something 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, =gBattleMons movs r1, 0x58 muls r0, r1 adds r1, r0, r2 adds r0, r1, 0 adds r0, 0x21 ldrb r0, [r0] cmp r0, r5 beq _0804A314 adds r0, r1, 0 adds r0, 0x22 ldrb r0, [r0] cmp r0, r5 bne _0804A320 _0804A314: str r6, [r4] b _0804A324 .pool _0804A320: adds r0, r3, 0x7 str r0, [r4] _0804A324: pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_804A2D0 thumb_func_start sub_804A32C sub_804A32C: @ 804A32C push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} movs r6, 0 ldr r0, =gUnknown_0202449C ldr r0, [r0] adds r0, 0x50 mov r9, r0 ldr r0, =gUnknown_02024214 ldr r0, [r0] ldrb r0, [r0, 0x1] bl get_battle_side_of_something ldr r1, =gUnknown_0202420D strb r0, [r1] ldr r2, =gUnknown_020243FE movs r1, 0x2 ands r1, r0 lsls r1, 24 lsrs r1, 25 adds r1, r2 ldrb r1, [r1] mov r8, r1 ldr r0, =gUnknown_02024474 ldrb r0, [r0, 0x1C] cmp r0, 0x6 bls _0804A368 bl _0804ACB2 _0804A368: lsls r0, 2 ldr r1, =_0804A38C adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _0804A38C: .4byte _0804A3A8 .4byte _0804A414 .4byte _0804A52E .4byte _0804A850 .4byte _0804A954 .4byte _0804AC40 .4byte _0804AC88 _0804A3A8: ldr r4, =gUnknown_0202420D ldrb r0, [r4] bl battle_side_get_owner lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _0804A3BC bl _0804AC7C _0804A3BC: ldr r0, =gBattleTypeFlags ldr r0, [r0] ldr r1, =0x063f0982 ands r0, r1 cmp r0, 0 beq _0804A3CC bl _0804AC7C _0804A3CC: ldr r1, =gUnknown_02024474 ldrb r0, [r1, 0x1C] adds r0, 0x1 strb r0, [r1, 0x1C] ldr r0, =gUnknown_0202449C ldr r2, [r0] adds r2, 0xDF ldr r3, =gBitTable ldr r1, =gUnknown_0202406E 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 _0804ACB2 .pool _0804A414: movs r5, 0 movs r7, 0 _0804A418: movs r0, 0x64 adds r1, r7, 0 muls r1, r0 ldr r0, =gPlayerParty adds r4, r1, r0 adds r0, r4, 0 movs r1, 0xB bl GetMonData cmp r0, 0 beq _0804A486 adds r0, r4, 0 movs r1, 0x39 bl GetMonData cmp r0, 0 beq _0804A486 ldr r0, =gBitTable lsls r1, r7, 2 adds r1, r0 ldr r0, [r1] mov r1, r8 ands r0, r1 cmp r0, 0 beq _0804A44C adds r5, 0x1 _0804A44C: adds r0, r4, 0 movs r1, 0xC bl GetMonData lsls r0, 16 lsrs r0, 16 cmp r0, 0xAF bne _0804A478 ldr r0, =gSaveBlock1Ptr ldr r0, [r0] ldr r2, =0x00003226 adds r0, r2 ldrb r4, [r0] b _0804A480 .pool _0804A478: bl itemid_get_x12 lsls r0, 24 lsrs r4, r0, 24 _0804A480: cmp r4, 0x19 bne _0804A486 adds r6, 0x1 _0804A486: adds r7, 0x1 cmp r7, 0x5 ble _0804A418 ldr r3, =gBaseStats ldr r2, =gBattleMons ldr r0, =gUnknown_0202420D 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 _0804A4FC lsrs r4, r0, 17 adds r0, r4, 0 adds r1, r5, 0 bl __divsi3 mov r1, r9 strh r0, [r1] lsls r0, 16 cmp r0, 0 bne _0804A4D2 movs r0, 0x1 strh r0, [r1] _0804A4D2: ldr r5, =gUnknown_02024402 adds r0, r4, 0 adds r1, r6, 0 bl __divsi3 strh r0, [r5] lsls r0, 16 cmp r0, 0 bne _0804A516 movs r0, 0x1 strh r0, [r5] b _0804A516 .pool _0804A4FC: adds r0, r1, 0 adds r1, r5, 0 bl __divsi3 mov r2, r9 strh r0, [r2] lsls r0, 16 cmp r0, 0 bne _0804A512 movs r0, 0x1 strh r0, [r2] _0804A512: ldr r0, =gUnknown_02024402 strh r6, [r0] _0804A516: ldr r1, =gUnknown_02024474 ldrb r0, [r1, 0x1C] adds r0, 0x1 movs r2, 0 strb r0, [r1, 0x1C] ldr r1, =gUnknown_0202449C ldr r0, [r1] strb r2, [r0, 0x10] ldr r0, [r1] adds r0, 0x53 mov r4, r8 strb r4, [r0] _0804A52E: ldr r0, =gUnknown_02024068 ldr r0, [r0] cmp r0, 0 beq _0804A538 b _0804ACB2 _0804A538: ldr r0, =gUnknown_0202449C ldr r0, [r0] ldrb r1, [r0, 0x10] movs r0, 0x64 muls r0, r1 ldr r1, =gPlayerParty adds r0, r1 movs r1, 0xC bl GetMonData lsls r0, 16 lsrs r0, 16 cmp r0, 0xAF bne _0804A57C ldr r0, =gSaveBlock1Ptr ldr r0, [r0] ldr r1, =0x00003226 adds r0, r1 ldrb r4, [r0] b _0804A584 .pool _0804A57C: bl itemid_get_x12 lsls r0, 24 lsrs r4, r0, 24 _0804A584: ldr r5, =gUnknown_0202449C cmp r4, 0x19 beq _0804A5AC ldr r0, [r5] adds r1, r0, 0 adds r1, 0x53 ldrb r0, [r1] movs r2, 0x1 ands r2, r0 cmp r2, 0 bne _0804A5AC lsrs r0, 1 strb r0, [r1] ldr r1, =gUnknown_02024474 b _0804A5D0 .pool _0804A5AC: ldr r0, [r5] ldrb r1, [r0, 0x10] movs r0, 0x64 muls r0, r1 ldr r1, =gPlayerParty adds r0, r1 movs r1, 0x38 bl GetMonData cmp r0, 0x64 bne _0804A5E8 ldr r1, [r5] adds r1, 0x53 ldrb r0, [r1] lsrs r0, 1 strb r0, [r1] ldr r1, =gUnknown_02024474 movs r2, 0 _0804A5D0: movs r0, 0x5 strb r0, [r1, 0x1C] ldr r0, =gBattleMoveDamage str r2, [r0] b _0804ACB2 .pool _0804A5E8: ldr r0, =gBattleTypeFlags ldr r0, [r0] movs r1, 0x8 ands r0, r1 cmp r0, 0 bne _0804A616 ldr r0, =gBattleMons ldrh r0, [r0, 0x28] cmp r0, 0 beq _0804A616 ldr r0, [r5] ldrb r0, [r0, 0x12] cmp r0, 0 bne _0804A616 bl sub_805EA60 ldr r0, =0x00000161 bl song_play_for_text ldr r1, [r5] ldrb r0, [r1, 0x12] adds r0, 0x1 strb r0, [r1, 0x12] _0804A616: ldr r5, =gUnknown_0202449C ldr r0, [r5] ldrb r1, [r0, 0x10] movs r0, 0x64 muls r0, r1 ldr r1, =gPlayerParty adds r0, r1 movs r1, 0x39 bl GetMonData cmp r0, 0 bne _0804A630 b _0804A824 _0804A630: ldr r0, [r5] adds r0, 0x53 ldrb r0, [r0] movs r3, 0x1 ands r3, r0 cmp r3, 0 beq _0804A664 ldr r1, =gBattleMoveDamage mov r2, r9 ldrh r0, [r2] str r0, [r1] mov r9, r1 b _0804A66A .pool _0804A664: ldr r0, =gBattleMoveDamage str r3, [r0] mov r9, r0 _0804A66A: cmp r4, 0x19 bne _0804A67A ldr r0, =gUnknown_02024402 ldrh r1, [r0] mov r2, r9 ldr r0, [r2] adds r0, r1 str r0, [r2] _0804A67A: cmp r4, 0x28 bne _0804A68E mov r4, r9 ldr r1, [r4] movs r0, 0x96 muls r0, r1 movs r1, 0x64 bl __divsi3 str r0, [r4] _0804A68E: ldr r5, =gBattleTypeFlags ldr r0, [r5] movs r1, 0x8 ands r0, r1 cmp r0, 0 beq _0804A6AA ldr r4, =gBattleMoveDamage ldr r1, [r4] movs r0, 0x96 muls r0, r1 movs r1, 0x64 bl __divsi3 str r0, [r4] _0804A6AA: ldr r4, =gUnknown_0202449C ldr r0, [r4] ldrb r1, [r0, 0x10] movs r0, 0x64 muls r0, r1 ldr r1, =gPlayerParty adds r0, r1 bl sub_806E8A8 lsls r0, 24 cmp r0, 0 beq _0804A714 ldr r0, [r5] movs r1, 0x80 lsls r1, 15 ands r0, r1 cmp r0, 0 beq _0804A6F8 ldr r0, [r4] ldrb r0, [r0, 0x10] cmp r0, 0x2 bls _0804A6F8 ldr r7, =0x00000149 ldr r0, =gBattleMoveDamage mov r9, r0 b _0804A71A .pool _0804A6F8: ldr r4, =gBattleMoveDamage ldr r1, [r4] movs r0, 0x96 muls r0, r1 movs r1, 0x64 bl __divsi3 str r0, [r4] movs r7, 0xA5 lsls r7, 1 mov r9, r4 b _0804A71A .pool _0804A714: ldr r7, =0x00000149 ldr r1, =gBattleMoveDamage mov r9, r1 _0804A71A: ldr r0, =gBattleTypeFlags ldr r1, [r0] movs r0, 0x1 ands r1, r0 cmp r1, 0 beq _0804A786 ldr r0, =gUnknown_0202406E ldr r1, =gUnknown_0202449C ldr r4, [r1] ldrh r0, [r0, 0x4] adds r5, r1, 0 ldr r3, =gBitTable ldr r2, =gUnknown_02024210 ldrb r1, [r4, 0x10] cmp r0, r1 bne _0804A76C ldrb r1, [r2] ldr r0, [r3, 0x8] ands r1, r0 cmp r1, 0 bne _0804A76C adds r1, r4, 0 adds r1, 0x8F movs r0, 0x2 strb r0, [r1] b _0804A78E .pool _0804A76C: ldrb r2, [r2] ldr r0, [r3] ands r2, r0 cmp r2, 0 bne _0804A77E ldr r0, [r5] adds r0, 0x8F strb r2, [r0] b _0804A78E _0804A77E: ldr r0, [r5] adds r0, 0x8F movs r1, 0x2 b _0804A78C _0804A786: ldr r0, =gUnknown_0202449C ldr r0, [r0] adds r0, 0x8F _0804A78C: strb r1, [r0] _0804A78E: ldr r1, =gUnknown_02022F58 movs r2, 0 mov r12, r2 movs r3, 0xFD strb r3, [r1] movs r5, 0x4 strb r5, [r1, 0x1] ldr r6, =gUnknown_0202449C ldr r2, [r6] movs r4, 0x8F adds r4, r2 mov r8, r4 ldrb r0, [r4] strb r0, [r1, 0x2] ldrb r0, [r2, 0x10] strb r0, [r1, 0x3] movs r0, 0xFF strb r0, [r1, 0x4] ldr r1, =gUnknown_02022F68 strb r3, [r1] mov r0, r12 strb r0, [r1, 0x1] strb r7, [r1, 0x2] movs r4, 0xFF lsls r4, 8 ands r7, r4 asrs r0, r7, 8 strb r0, [r1, 0x3] movs r0, 0x1 negs r0, r0 strb r0, [r1, 0x4] ldr r1, =gUnknown_02022F78 strb r3, [r1] movs r0, 0x1 strb r0, [r1, 0x1] strb r5, [r1, 0x2] movs r0, 0x5 strb r0, [r1, 0x3] mov r0, r9 ldr r2, [r0] strb r2, [r1, 0x4] adds r0, r2, 0 ands r0, r4 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] mov r2, r8 ldrb r1, [r2] movs r0, 0xD bl b_std_message ldr r0, [r6] ldrb r1, [r0, 0x10] movs r0, 0x64 muls r0, r1 ldr r1, =gPlayerParty adds r0, r1 ldr r3, =gBattleMons ldr r1, =gUnknown_0202420D ldrb r2, [r1] movs r1, 0x58 muls r1, r2 adds r1, r3 ldrh r1, [r1] bl sub_806DADC _0804A824: ldr r0, =gUnknown_0202449C ldr r1, [r0] adds r1, 0x53 ldrb r0, [r1] lsrs r0, 1 strb r0, [r1] b _0804A92A .pool _0804A850: ldr r0, =gUnknown_02024068 ldr r2, [r0] cmp r2, 0 beq _0804A85A b _0804ACB2 _0804A85A: ldr r1, =gUnknown_02023864 ldr r7, =gUnknown_0202449C ldr r0, [r7] adds r0, 0x8F ldrb r0, [r0] lsls r0, 9 adds r0, r1 strb r2, [r0] ldr r0, [r7] ldrb r0, [r0, 0x10] movs r6, 0x64 muls r0, r6 ldr r5, =gPlayerParty adds r0, r5 movs r1, 0x39 bl GetMonData cmp r0, 0 beq _0804A92A ldr r0, [r7] ldrb r0, [r0, 0x10] muls r0, r6 adds r0, r5 movs r1, 0x38 bl GetMonData cmp r0, 0x64 beq _0804A92A ldr r0, [r7] ldrb r0, [r0, 0x10] muls r0, r6 adds r0, r5 movs r1, 0x3A bl GetMonData ldr r4, =gUnknown_020244A8 ldr r1, [r4] ldr r1, [r1, 0x10] strh r0, [r1] ldr r0, [r7] ldrb r0, [r0, 0x10] muls r0, r6 adds r0, r5 movs r1, 0x3B bl GetMonData ldr r1, [r4] ldr r1, [r1, 0x10] strh r0, [r1, 0x2] ldr r0, [r7] ldrb r0, [r0, 0x10] muls r0, r6 adds r0, r5 movs r1, 0x3C bl GetMonData ldr r1, [r4] ldr r1, [r1, 0x10] strh r0, [r1, 0x4] ldr r0, [r7] ldrb r0, [r0, 0x10] muls r0, r6 adds r0, r5 movs r1, 0x3D bl GetMonData ldr r1, [r4] ldr r1, [r1, 0x10] strh r0, [r1, 0x6] ldr r0, [r7] ldrb r0, [r0, 0x10] muls r0, r6 adds r0, r5 movs r1, 0x3E bl GetMonData ldr r1, [r4] ldr r1, [r1, 0x10] strh r0, [r1, 0x8] ldr r0, [r7] ldrb r0, [r0, 0x10] muls r0, r6 adds r0, r5 movs r1, 0x3F bl GetMonData ldr r1, [r4] ldr r1, [r1, 0x10] strh r0, [r1, 0xA] ldr r4, =gUnknown_02024064 ldr r1, [r7] adds r0, r1, 0 adds r0, 0x8F ldrb r0, [r0] strb r0, [r4] ldrb r1, [r1, 0x10] ldr r0, =gBattleMoveDamage ldrh r2, [r0] movs r0, 0 bl dp01_build_cmdbuf_x19_a_bb ldrb r0, [r4] bl dp01_battle_side_mark_buffer_for_execution _0804A92A: ldr r1, =gUnknown_02024474 ldrb r0, [r1, 0x1C] adds r0, 0x1 strb r0, [r1, 0x1C] b _0804ACB2 .pool _0804A954: ldr r0, =gUnknown_02024068 ldr r0, [r0] cmp r0, 0 beq _0804A95E b _0804ACB2 _0804A95E: ldr r1, =gUnknown_02024064 ldr r0, =gUnknown_0202449C ldr r4, [r0] adds r0, r4, 0 adds r0, 0x8F ldrb r0, [r0] strb r0, [r1] ldr r3, =gUnknown_02023864 ldrb r2, [r1] lsls r1, r2, 9 adds r0, r1, r3 ldrb r0, [r0] cmp r0, 0x21 beq _0804A97C b _0804AC28 _0804A97C: adds r0, r3, 0x1 adds r0, r1, r0 ldrb r0, [r0] cmp r0, 0xB beq _0804A988 b _0804AC28 _0804A988: ldr r0, =gBattleTypeFlags ldr r0, [r0] movs r1, 0x8 ands r0, r1 cmp r0, 0 beq _0804A9B2 ldr r0, =gUnknown_0202406E lsls r1, r2, 1 adds r1, r0 ldrh r0, [r1] ldrb r4, [r4, 0x10] cmp r0, r4 bne _0804A9B2 adds r1, r0, 0 movs r0, 0x64 muls r0, r1 ldr r1, =gPlayerParty adds r0, r1 adds r1, r2, 0 bl sub_805E990 _0804A9B2: ldr r1, =gUnknown_02022F58 movs r3, 0xFD strb r3, [r1] movs r0, 0x4 strb r0, [r1, 0x1] ldr r6, =gUnknown_02024064 ldrb r0, [r6] strb r0, [r1, 0x2] ldr r4, =gUnknown_0202449C mov r9, r4 ldr r2, [r4] ldrb r0, [r2, 0x10] strb r0, [r1, 0x3] movs r0, 0xFF strb r0, [r1, 0x4] ldr r4, =gUnknown_02022F68 strb r3, [r4] movs r0, 0x1 strb r0, [r4, 0x1] strb r0, [r4, 0x2] movs r0, 0x3 strb r0, [r4, 0x3] ldrb r0, [r2, 0x10] movs r1, 0x64 mov r8, r1 mov r2, r8 muls r2, r0 adds r0, r2, 0 ldr r7, =gPlayerParty adds r0, r7 movs r1, 0x38 bl GetMonData strb r0, [r4, 0x4] movs r0, 0x1 negs r0, r0 strb r0, [r4, 0x5] bl b_movescr_stack_push_cursor ldr r2, =gUnknown_03005D54 ldr r1, =gBitTable mov r4, r9 ldr r5, [r4] ldrb r0, [r5, 0x10] lsls r0, 2 adds r0, r1 ldr r0, [r0] ldrb r1, [r2] orrs r0, r1 strb r0, [r2] ldr r1, =gUnknown_02024214 ldr r0, =gUnknown_082DABBD str r0, [r1] ldr r4, =gBattleMoveDamage ldr r2, =gUnknown_02023864 ldrb r1, [r6] 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, [r5, 0x10] mov r1, r8 muls r1, r0 adds r0, r1, 0 adds r0, r7 movs r1, 0 bl happiness_algorithm ldr r1, =gUnknown_0202406E mov r2, r9 ldr r0, [r2] ldrb r2, [r0, 0x10] ldrh r0, [r1] cmp r0, r2 bne _0804AB1E ldr r4, =gBattleMons ldrh r0, [r4, 0x28] cmp r0, 0 beq _0804AB1E mov r0, r8 muls r0, r2 adds r0, r7 movs r1, 0x38 bl GetMonData adds r1, r4, 0 adds r1, 0x2A strb r0, [r1] mov r1, r9 ldr r0, [r1] ldrb r0, [r0, 0x10] mov r2, r8 muls r2, r0 adds r0, r2, 0 adds r0, r7 movs r1, 0x39 bl GetMonData strh r0, [r4, 0x28] mov r1, r9 ldr r0, [r1] ldrb r0, [r0, 0x10] mov r2, r8 muls r2, r0 adds r0, r2, 0 adds r0, r7 movs r1, 0x3A bl GetMonData strh r0, [r4, 0x2C] mov r1, r9 ldr r0, [r1] ldrb r0, [r0, 0x10] mov r2, r8 muls r2, r0 adds r0, r2, 0 adds r0, r7 movs r1, 0x3B bl GetMonData strh r0, [r4, 0x2] mov r1, r9 ldr r0, [r1] ldrb r0, [r0, 0x10] mov r2, r8 muls r2, r0 adds r0, r2, 0 adds r0, r7 movs r1, 0x3C bl GetMonData strh r0, [r4, 0x4] mov r1, r9 ldr r0, [r1] ldrb r0, [r0, 0x10] mov r2, r8 muls r2, r0 adds r0, r2, 0 adds r0, r7 movs r1, 0x3D bl GetMonData strh r0, [r4, 0x6] mov r1, r9 ldr r0, [r1] ldrb r0, [r0, 0x10] mov r2, r8 muls r2, r0 adds r0, r2, 0 adds r0, r7 movs r1, 0x3D bl GetMonData strh r0, [r4, 0x6] mov r1, r9 ldr r0, [r1] ldrb r0, [r0, 0x10] mov r2, r8 muls r2, r0 adds r0, r2, 0 adds r0, r7 movs r1, 0x3E bl GetMonData strh r0, [r4, 0x8] mov r1, r9 ldr r0, [r1] ldrb r0, [r0, 0x10] mov r2, r8 muls r2, r0 adds r0, r2, 0 adds r0, r7 movs r1, 0x3F bl GetMonData strh r0, [r4, 0xA] _0804AB1E: ldr r0, =gUnknown_0202406E ldr r7, =gUnknown_0202449C ldr r1, [r7] ldrb r2, [r1, 0x10] ldrh r0, [r0, 0x4] cmp r0, r2 beq _0804AB2E b _0804AC2E _0804AB2E: ldr r6, =gBattleMons movs r4, 0xD8 adds r4, r6 mov r8, r4 ldrh r0, [r4] cmp r0, 0 beq _0804AC2E ldr r0, =gBattleTypeFlags ldr r0, [r0] movs r1, 0x1 ands r0, r1 cmp r0, 0 beq _0804AC2E movs r5, 0x64 adds r0, r2, 0 muls r0, r5 ldr r4, =gPlayerParty adds r0, r4 movs r1, 0x38 bl GetMonData adds r1, r6, 0 adds r1, 0xDA strb r0, [r1] ldr r0, [r7] ldrb r0, [r0, 0x10] muls r0, r5 adds r0, r4 movs r1, 0x39 bl GetMonData mov r1, r8 strh r0, [r1] ldr r0, [r7] ldrb r0, [r0, 0x10] muls r0, r5 adds r0, r4 movs r1, 0x3A bl GetMonData adds r1, r6, 0 adds r1, 0xDC strh r0, [r1] ldr r0, [r7] ldrb r0, [r0, 0x10] muls r0, r5 adds r0, r4 movs r1, 0x3B bl GetMonData adds r1, r6, 0 adds r1, 0xB2 strh r0, [r1] ldr r0, [r7] ldrb r0, [r0, 0x10] muls r0, r5 adds r0, r4 movs r1, 0x3C bl GetMonData adds r1, r6, 0 adds r1, 0xB4 strh r0, [r1] ldr r0, [r7] ldrb r0, [r0, 0x10] muls r0, r5 adds r0, r4 movs r1, 0x3D bl GetMonData movs r2, 0xB6 adds r2, r6 mov r8, r2 strh r0, [r2] ldr r0, [r7] ldrb r0, [r0, 0x10] muls r0, r5 adds r0, r4 movs r1, 0x3D bl GetMonData mov r1, r8 strh r0, [r1] ldr r0, [r7] ldrb r0, [r0, 0x10] muls r0, r5 adds r0, r4 movs r1, 0x3E bl GetMonData adds r1, r6, 0 adds r1, 0xB8 strh r0, [r1] b _0804AC2E .pool _0804AC28: ldr r1, =gBattleMoveDamage movs r0, 0 str r0, [r1] _0804AC2E: ldr r1, =gUnknown_02024474 movs r0, 0x5 strb r0, [r1, 0x1C] b _0804ACB2 .pool _0804AC40: ldr r0, =gBattleMoveDamage ldr r0, [r0] cmp r0, 0 beq _0804AC58 ldr r1, =gUnknown_02024474 movs r0, 0x3 strb r0, [r1, 0x1C] b _0804ACB2 .pool _0804AC58: ldr r2, =gUnknown_0202449C ldr r1, [r2] ldrb r0, [r1, 0x10] adds r0, 0x1 strb r0, [r1, 0x10] ldr r0, [r2] ldrb r0, [r0, 0x10] cmp r0, 0x5 bhi _0804AC7C ldr r1, =gUnknown_02024474 movs r0, 0x2 strb r0, [r1, 0x1C] b _0804ACB2 .pool _0804AC7C: ldr r1, =gUnknown_02024474 movs r0, 0x6 strb r0, [r1, 0x1C] b _0804ACB2 .pool _0804AC88: ldr r0, =gUnknown_02024068 ldr r5, [r0] cmp r5, 0 bne _0804ACB2 ldr r4, =gBattleMons ldr r2, =gUnknown_0202420D 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, =gUnknown_02024214 ldr r0, [r1] adds r0, 0x2 str r0, [r1] _0804ACB2: pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_804A32C thumb_func_start sub_804ACD0 sub_804ACD0: @ 804ACD0 push {r4-r7,lr} mov r7, r8 push {r7} movs r6, 0 ldr r0, =gUnknown_02024068 ldr r0, [r0] cmp r0, 0 beq _0804ACE2 b _0804AF22 _0804ACE2: ldr r0, =gBattleTypeFlags ldr r0, [r0] movs r1, 0x80 lsls r1, 15 ands r0, r1 cmp r0, 0 beq _0804AD48 ldr r0, =gUnknown_02038BCE ldrh r1, [r0] ldr r0, =0x00000c03 cmp r1, r0 bne _0804AD48 movs r5, 0 _0804ACFC: movs r0, 0x64 adds r1, r5, 0 muls r1, r0 ldr r0, =gPlayerParty adds r4, r1, r0 adds r0, r4, 0 movs r1, 0xB bl GetMonData cmp r0, 0 beq _0804AD2C adds r0, r4, 0 movs r1, 0x2D bl GetMonData cmp r0, 0 bne _0804AD2C adds r0, r4, 0 movs r1, 0x39 bl GetMonData adds r0, r6, r0 lsls r0, 16 lsrs r6, r0, 16 _0804AD2C: adds r5, 0x1 cmp r5, 0x2 ble _0804ACFC b _0804ADA8 .pool _0804AD48: movs r5, 0 _0804AD4A: movs r0, 0x64 adds r1, r5, 0 muls r1, r0 ldr r0, =gPlayerParty adds r4, r1, r0 adds r0, r4, 0 movs r1, 0xB bl GetMonData cmp r0, 0 beq _0804ADA2 adds r0, r4, 0 movs r1, 0x2D bl GetMonData cmp r0, 0 bne _0804ADA2 ldr r0, =gBattleTypeFlags ldr r0, [r0] movs r1, 0x80 lsls r1, 11 ands r0, r1 cmp r0, 0 beq _0804AD94 ldr r0, =gUnknown_0202449C ldr r0, [r0] movs r1, 0xA8 lsls r1, 2 adds r0, r1 ldrb r1, [r0] ldr r2, =gBitTable lsls r0, r5, 2 adds r0, r2 ldr r0, [r0] ands r1, r0 cmp r1, 0 bne _0804ADA2 _0804AD94: adds r0, r4, 0 movs r1, 0x39 bl GetMonData adds r0, r6, r0 lsls r0, 16 lsrs r6, r0, 16 _0804ADA2: adds r5, 0x1 cmp r5, 0x5 ble _0804AD4A _0804ADA8: cmp r6, 0 bne _0804ADB6 ldr r0, =gUnknown_0202433A ldrb r1, [r0] movs r2, 0x2 orrs r1, r2 strb r1, [r0] _0804ADB6: movs r6, 0 movs r5, 0 _0804ADBA: movs r0, 0x64 adds r1, r5, 0 muls r1, r0 ldr r0, =gEnemyParty adds r4, r1, r0 adds r0, r4, 0 movs r1, 0xB bl GetMonData cmp r0, 0 beq _0804AE10 adds r0, r4, 0 movs r1, 0x2D bl GetMonData cmp r0, 0 bne _0804AE10 ldr r0, =gBattleTypeFlags ldr r0, [r0] movs r1, 0x80 lsls r1, 11 ands r0, r1 cmp r0, 0 beq _0804AE02 ldr r0, =gUnknown_0202449C ldr r0, [r0] ldr r1, =0x000002a1 adds r0, r1 ldrb r1, [r0] ldr r2, =gBitTable lsls r0, r5, 2 adds r0, r2 ldr r0, [r0] ands r1, r0 cmp r1, 0 bne _0804AE10 _0804AE02: adds r0, r4, 0 movs r1, 0x39 bl GetMonData adds r0, r6, r0 lsls r0, 16 lsrs r6, r0, 16 _0804AE10: adds r5, 0x1 cmp r5, 0x5 ble _0804ADBA ldr r2, =gUnknown_0202433A cmp r6, 0 bne _0804AE24 ldrb r0, [r2] movs r1, 0x1 orrs r0, r1 strb r0, [r2] _0804AE24: ldrb r0, [r2] cmp r0, 0 bne _0804AF1A ldr r0, =gBattleTypeFlags ldr r1, [r0] ldr r2, =0x02000002 ands r1, r2 mov r8, r0 cmp r1, 0 beq _0804AF1A movs r3, 0 movs r5, 0 ldr r0, =gUnknown_0202406C ldrb r1, [r0] mov r12, r0 ldr r7, =gUnknown_02024214 cmp r3, r1 bge _0804AE70 ldr r0, =gUnknown_02024280 movs r6, 0x80 lsls r6, 21 ldr r4, [r0] adds r2, r1, 0 ldr r1, =gUnknown_0202437C _0804AE54: adds r0, r6, 0 lsls r0, r5 ands r0, r4 cmp r0, 0 beq _0804AE68 ldrb r0, [r1] lsls r0, 25 cmp r0, 0 blt _0804AE68 adds r3, 0x1 _0804AE68: adds r1, 0x28 adds r5, 0x2 cmp r5, r2 blt _0804AE54 _0804AE70: movs r2, 0 movs r5, 0x1 mov r4, r12 ldrb r1, [r4] cmp r5, r1 bge _0804AEAA ldr r0, =gUnknown_02024280 movs r4, 0x80 lsls r4, 21 mov r12, r4 ldr r6, [r0] ldr r0, =gUnknown_0202437C adds r4, r1, 0 adds r1, r0, 0 adds r1, 0x14 _0804AE8E: mov r0, r12 lsls r0, r5 ands r0, r6 cmp r0, 0 beq _0804AEA2 ldrb r0, [r1] lsls r0, 25 cmp r0, 0 blt _0804AEA2 adds r2, 0x1 _0804AEA2: adds r1, 0x28 adds r5, 0x2 cmp r5, r4 blt _0804AE8E _0804AEAA: mov r1, r8 ldr r0, [r1] movs r1, 0x40 ands r0, r1 cmp r0, 0 beq _0804AEF0 adds r0, r2, r3 cmp r0, 0x1 bgt _0804AEF8 b _0804AF12 .pool _0804AEF0: cmp r2, 0 beq _0804AF12 cmp r3, 0 beq _0804AF12 _0804AEF8: 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 _0804AF22 _0804AF12: ldr r0, [r7] adds r0, 0x5 str r0, [r7] b _0804AF22 _0804AF1A: ldr r1, =gUnknown_02024214 ldr r0, [r1] adds r0, 0x5 str r0, [r1] _0804AF22: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_804ACD0 thumb_func_start sub_804AF30 sub_804AF30: @ 804AF30 ldr r1, =gBattleMoveFlags movs r0, 0 strb r0, [r1] ldr r0, =gUnknown_02024474 movs r2, 0 movs r1, 0x1 strb r1, [r0, 0xE] ldr r0, =gCritMultiplier strb r1, [r0] ldr r0, =gUnknown_02024332 strb r2, [r0, 0x3] strb r2, [r0, 0x6] ldr r2, =gUnknown_02024280 ldr r0, [r2] subs r1, 0x42 ands r0, r1 ldr r1, =0xffffbfff ands r0, r1 str r0, [r2] bx lr .pool thumb_func_end sub_804AF30 thumb_func_start atk25_cmd25 atk25_cmd25: @ 804AF70 push {lr} bl sub_804AF30 ldr r1, =gUnknown_02024214 ldr r0, [r1] adds r0, 0x1 str r0, [r1] pop {r0} bx r0 .pool thumb_func_end atk25_cmd25 thumb_func_start atk26_80225F0_storebyteforjump atk26_80225F0_storebyteforjump: @ 804AF88 ldr r3, =gUnknown_02024212 ldr r2, =gUnknown_02024214 ldr r0, [r2] ldrb r1, [r0, 0x1] strb r1, [r3] adds r0, 0x2 str r0, [r2] bx lr .pool thumb_func_end atk26_80225F0_storebyteforjump thumb_func_start atk27_cmd27 atk27_cmd27: @ 804AFA0 push {lr} ldr r1, =gUnknown_02024212 ldrb r0, [r1] subs r0, 0x1 strb r0, [r1] lsls r0, 24 cmp r0, 0 bne _0804AFC4 ldr r1, =gUnknown_02024214 ldr r0, [r1] adds r0, 0x5 str r0, [r1] b _0804AFDE .pool _0804AFC4: ldr r3, =gUnknown_02024214 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] _0804AFDE: pop {r0} bx r0 .pool thumb_func_end atk27_cmd27 thumb_func_start atk28_goto atk28_goto: @ 804AFE8 ldr r3, =gUnknown_02024214 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 .pool thumb_func_end atk28_goto thumb_func_start atk29_jumpifbyte atk29_jumpifbyte: @ 804B008 push {r4-r6,lr} ldr r3, =gUnknown_02024214 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 _0804B0A0 lsls r0, r6, 2 ldr r1, =_0804B054 adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _0804B054: .4byte _0804B06C .4byte _0804B074 .4byte _0804B07C .4byte _0804B084 .4byte _0804B08C .4byte _0804B096 _0804B06C: ldrb r0, [r5] cmp r0, r4 bne _0804B0A0 b _0804B09E _0804B074: ldrb r0, [r5] cmp r0, r4 beq _0804B0A0 b _0804B09E _0804B07C: ldrb r0, [r5] cmp r0, r4 bls _0804B0A0 b _0804B09E _0804B084: ldrb r0, [r5] cmp r0, r4 bcs _0804B0A0 b _0804B09E _0804B08C: ldrb r0, [r5] ands r4, r0 cmp r4, 0 beq _0804B0A0 b _0804B09E _0804B096: ldrb r0, [r5] ands r4, r0 cmp r4, 0 bne _0804B0A0 _0804B09E: str r2, [r3] _0804B0A0: pop {r4-r6} pop {r0} bx r0 thumb_func_end atk29_jumpifbyte thumb_func_start sub_804B0A8 sub_804B0A8: @ 804B0A8 push {r4-r6,lr} ldr r3, =gUnknown_02024214 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 _0804B148 lsls r0, r6, 2 ldr r1, =_0804B0FC adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _0804B0FC: .4byte _0804B114 .4byte _0804B11C .4byte _0804B124 .4byte _0804B12C .4byte _0804B134 .4byte _0804B13E _0804B114: ldrh r0, [r5] cmp r0, r4 bne _0804B148 b _0804B146 _0804B11C: ldrh r0, [r5] cmp r0, r4 beq _0804B148 b _0804B146 _0804B124: ldrh r0, [r5] cmp r0, r4 bls _0804B148 b _0804B146 _0804B12C: ldrh r0, [r5] cmp r0, r4 bcs _0804B148 b _0804B146 _0804B134: ldrh r0, [r5] ands r4, r0 cmp r4, 0 beq _0804B148 b _0804B146 _0804B13E: ldrh r0, [r5] ands r4, r0 cmp r4, 0 bne _0804B148 _0804B146: str r2, [r3] _0804B148: pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_804B0A8 thumb_func_start sub_804B150 sub_804B150: @ 804B150 push {r4-r6,lr} ldr r3, =gUnknown_02024214 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 _0804B1FC lsls r0, r6, 2 ldr r1, =_0804B1B0 adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _0804B1B0: .4byte _0804B1C8 .4byte _0804B1D0 .4byte _0804B1D8 .4byte _0804B1E0 .4byte _0804B1E8 .4byte _0804B1F2 _0804B1C8: ldr r0, [r5] cmp r0, r4 bne _0804B1FC b _0804B1FA _0804B1D0: ldr r0, [r5] cmp r0, r4 beq _0804B1FC b _0804B1FA _0804B1D8: ldr r0, [r5] cmp r0, r4 bls _0804B1FC b _0804B1FA _0804B1E0: ldr r0, [r5] cmp r0, r4 bcs _0804B1FC b _0804B1FA _0804B1E8: ldr r0, [r5] ands r0, r4 cmp r0, 0 beq _0804B1FC b _0804B1FA _0804B1F2: ldr r0, [r5] ands r0, r4 cmp r0, 0 bne _0804B1FC _0804B1FA: str r2, [r3] _0804B1FC: pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_804B150 thumb_func_start sub_804B204 sub_804B204: @ 804B204 push {r4-r7,lr} ldr r2, =gUnknown_02024214 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 _0804B27C ldrb r0, [r5] ldrb r7, [r4] cmp r0, r7 beq _0804B260 adds r0, r3, 0 b _0804B278 .pool _0804B260: adds r5, 0x1 adds r4, 0x1 adds r0, r1, 0x1 lsls r0, 24 lsrs r1, r0, 24 cmp r1, r6 bcs _0804B27C ldrb r0, [r5] ldrb r3, [r4] cmp r0, r3 beq _0804B260 ldr r0, [r2] _0804B278: adds r0, 0xE str r0, [r2] _0804B27C: cmp r1, r6 bne _0804B284 mov r7, r12 str r7, [r2] _0804B284: pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_804B204 thumb_func_start sub_804B28C sub_804B28C: @ 804B28C push {r4-r7,lr} movs r7, 0 ldr r3, =gUnknown_02024214 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 _0804B2F6 _0804B2DA: ldrb r0, [r5] ldrb r2, [r4] cmp r0, r2 bne _0804B2E8 adds r0, r7, 0x1 lsls r0, 24 lsrs r7, r0, 24 _0804B2E8: adds r5, 0x1 adds r4, 0x1 adds r0, r1, 0x1 lsls r0, 24 lsrs r1, r0, 24 cmp r1, r6 bcc _0804B2DA _0804B2F6: cmp r7, r6 beq _0804B304 mov r0, r12 b _0804B308 .pool _0804B304: ldr r0, [r3] adds r0, 0xE _0804B308: str r0, [r3] pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_804B28C thumb_func_start sub_804B310 sub_804B310: @ 804B310 ldr r3, =gUnknown_02024214 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 .pool thumb_func_end sub_804B310 thumb_func_start sub_804B338 sub_804B338: @ 804B338 ldr r3, =gUnknown_02024214 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 .pool thumb_func_end sub_804B338 thumb_func_start sub_804B364 sub_804B364: @ 804B364 ldr r3, =gUnknown_02024214 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 .pool thumb_func_end sub_804B364 thumb_func_start atk31_copyarray atk31_copyarray: @ 804B390 push {r4-r6,lr} ldr r3, =gUnknown_02024214 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 _0804B3D4 _0804B3C6: adds r0, r6, r2 adds r1, r5, r2 ldrb r1, [r1] strb r1, [r0] adds r2, 0x1 cmp r2, r4 blt _0804B3C6 _0804B3D4: ldr r0, [r3] adds r0, 0xA str r0, [r3] pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end atk31_copyarray thumb_func_start atk32_memcpy_with_offset atk32_memcpy_with_offset: @ 804B3E4 push {r4-r7,lr} ldr r3, =gUnknown_02024214 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 _0804B440 _0804B42E: 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 _0804B42E _0804B440: ldr r0, [r3] adds r0, 0xE str r0, [r3] pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end atk32_memcpy_with_offset thumb_func_start atk33_orbyte atk33_orbyte: @ 804B450 ldr r3, =gUnknown_02024214 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 .pool thumb_func_end atk33_orbyte thumb_func_start atk34_orhalfword atk34_orhalfword: @ 804B47C push {r4,lr} ldr r4, =gUnknown_02024214 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 .pool thumb_func_end atk34_orhalfword thumb_func_start atk35_orword atk35_orword: @ 804B4B4 push {r4,lr} ldr r4, =gUnknown_02024214 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 .pool thumb_func_end atk35_orword thumb_func_start atk36_bicbyte atk36_bicbyte: @ 804B4F8 ldr r3, =gUnknown_02024214 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 .pool thumb_func_end atk36_bicbyte thumb_func_start atk37_bichalfword atk37_bichalfword: @ 804B524 push {r4,lr} ldr r4, =gUnknown_02024214 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 .pool thumb_func_end atk37_bichalfword thumb_func_start atk38_bicword atk38_bicword: @ 804B55C push {r4,lr} ldr r4, =gUnknown_02024214 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 .pool thumb_func_end atk38_bicword thumb_func_start atk39_pause atk39_pause: @ 804B5A0 push {r4,r5,lr} ldr r0, =gUnknown_02024068 ldr r4, [r0] cmp r4, 0 bne _0804B5CC ldr r5, =gUnknown_02024214 ldr r2, [r5] ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] lsls r0, 8 orrs r1, r0 ldr r3, =gUnknown_0202432C ldrh r0, [r3] adds r0, 0x1 strh r0, [r3] lsls r0, 16 lsrs r0, 16 cmp r0, r1 bcc _0804B5CC strh r4, [r3] adds r0, r2, 0x3 str r0, [r5] _0804B5CC: pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end atk39_pause thumb_func_start sub_804B5E0 sub_804B5E0: @ 804B5E0 push {lr} ldr r0, =gUnknown_02024068 ldr r0, [r0] cmp r0, 0 bne _0804B5F2 ldr r1, =gUnknown_02024214 ldr r0, [r1] adds r0, 0x1 str r0, [r1] _0804B5F2: pop {r0} bx r0 .pool thumb_func_end sub_804B5E0 thumb_func_start atk3B_8022C68 atk3B_8022C68: @ 804B600 push {lr} ldr r0, =gUnknown_02024214 ldr r0, [r0] ldrb r0, [r0, 0x1] cmp r0, 0 bne _0804B620 ldr r0, =gUnknown_02024064 ldr r1, =gEnemyMonIndex b _0804B624 .pool _0804B620: ldr r0, =gUnknown_02024064 ldr r1, =gUnknown_0202420B _0804B624: ldrb r1, [r1] strb r1, [r0] ldr r0, =gBattleMoveDamage ldrh r1, [r0] movs r0, 0 bl dp01_build_cmdbuf_x18_0_aa_health_bar_update ldr r0, =gUnknown_02024064 ldrb r0, [r0] bl dp01_battle_side_mark_buffer_for_execution ldr r1, =gUnknown_02024214 ldr r0, [r1] adds r0, 0x2 str r0, [r1] pop {r0} bx r0 .pool thumb_func_end atk3B_8022C68 thumb_func_start atk3C_return atk3C_return: @ 804B658 push {lr} bl b_movescr_stack_pop_cursor pop {r0} bx r0 thumb_func_end atk3C_return thumb_func_start sub_804B664 sub_804B664: @ 804B664 push {lr} ldr r0, =gBattleTypeFlags ldr r0, [r0] movs r1, 0x80 lsls r1, 11 ands r0, r1 cmp r0, 0 beq _0804B67C ldr r0, =gUnknown_0202420B ldrb r0, [r0] bl sub_81A5718 _0804B67C: ldr r0, =gBattleMoveFlags movs r1, 0 strb r1, [r0] ldr r0, =gUnknown_02024064 strb r1, [r0] ldr r1, =gUnknown_02024083 movs r0, 0xB strb r0, [r1] pop {r0} bx r0 .pool thumb_func_end sub_804B664 thumb_func_start atk3E_end2 atk3E_end2: @ 804B6A4 ldr r1, =gUnknown_02024064 movs r0, 0 strb r0, [r1] ldr r1, =gUnknown_02024083 movs r0, 0xB strb r0, [r1] bx lr .pool thumb_func_end atk3E_end2 thumb_func_start atk3F_end3 atk3F_end3: @ 804B6BC push {lr} bl b_movescr_stack_pop_cursor ldr r3, =gUnknown_020244A8 ldr r0, [r3] ldr r0, [r0, 0xC] adds r1, r0, 0 adds r1, 0x20 ldrb r0, [r1] cmp r0, 0 beq _0804B6D6 subs r0, 0x1 strb r0, [r1] _0804B6D6: ldr r2, =gUnknown_03005D04 ldr r0, [r3] ldr r1, [r0, 0xC] adds r0, r1, 0 adds r0, 0x20 ldrb r0, [r0] lsls r0, 2 adds r1, r0 ldr r0, [r1] str r0, [r2] pop {r0} bx r0 .pool thumb_func_end atk3F_end3 thumb_func_start atk41_call atk41_call: @ 804B6F8 push {r4,lr} ldr r4, =gUnknown_02024214 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 .pool thumb_func_end atk41_call thumb_func_start atk42_jumpiftype2 atk42_jumpiftype2: @ 804B728 push {r4,lr} ldr r4, =gUnknown_02024214 ldr r0, [r4] ldrb r0, [r0, 0x1] bl get_battle_side_of_something lsls r0, 24 lsrs r0, 24 ldr r3, [r4] ldr r2, =gBattleMons 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 _0804B756 adds r0, 0x22 ldrb r0, [r0] cmp r2, r0 bne _0804B778 _0804B756: 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 _0804B77C .pool _0804B778: adds r0, r3, 0x7 str r0, [r4] _0804B77C: pop {r4} pop {r0} bx r0 thumb_func_end atk42_jumpiftype2 thumb_func_start sub_804B784 sub_804B784: @ 804B784 push {r4,lr} sub sp, 0x4 ldr r4, =gUnknown_02024214 ldr r0, [r4] ldrb r2, [r0, 0x1] movs r0, 0 str r0, [sp] movs r0, 0x13 movs r1, 0 movs r3, 0 bl ability_something lsls r0, 24 cmp r0, 0 beq _0804B7C0 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 _0804B7C6 .pool _0804B7C0: ldr r0, [r4] adds r0, 0x6 str r0, [r4] _0804B7C6: add sp, 0x4 pop {r4} pop {r0} bx r0 thumb_func_end sub_804B784 thumb_func_start sub_804B7D0 sub_804B7D0: @ 804B7D0 ldr r0, =gUnknown_0202420B ldrb r0, [r0] ldr r1, =gUnknown_0202449C ldr r1, [r1] adds r0, r1 adds r0, 0x54 movs r1, 0x1 strb r1, [r0] bx lr .pool thumb_func_end sub_804B7D0 thumb_func_start atk46_cmd46 atk46_cmd46: @ 804B7EC push {r4-r6,lr} ldr r5, =gUnknown_02024214 ldr r0, [r5] ldrb r0, [r0, 0x1] bl get_battle_side_of_something ldr r6, =gUnknown_02024064 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 _0804B822 cmp r0, 0x11 beq _0804B822 cmp r0, 0x2 bne _0804B848 _0804B822: ldr r4, =gUnknown_02024214 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, =gUnknown_02024064 ldrb r0, [r0] bl dp01_battle_side_mark_buffer_for_execution ldr r0, [r4] adds r0, 0x7 str r0, [r4] b _0804B8AA .pool _0804B848: ldr r0, =gUnknown_02024280 ldr r0, [r0] movs r1, 0x80 ands r0, r1 cmp r0, 0 beq _0804B868 adds r0, r2, 0x7 bl b_movescr_stack_push ldr r0, =gUnknown_082DABB9 b _0804B8A8 .pool _0804B868: adds r0, r4, 0 subs r0, 0xA lsls r0, 24 lsrs r0, 24 cmp r0, 0x3 bls _0804B894 ldr r1, =gUnknown_020242AC ldrb r0, [r6] lsls r0, 2 adds r0, r1 ldr r0, [r0] ldr r1, =0x000400c0 ands r0, r1 cmp r0, 0 beq _0804B894 adds r0, r2, 0x7 b _0804B8A8 .pool _0804B894: 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 _0804B8A8: str r0, [r5] _0804B8AA: pop {r4-r6} pop {r0} bx r0 thumb_func_end atk46_cmd46 thumb_func_start sub_804B8B0 sub_804B8B0: @ 804B8B0 push {r4-r7,lr} ldr r6, =gUnknown_02024214 ldr r0, [r6] ldrb r0, [r0, 0x1] bl get_battle_side_of_something ldr r7, =gUnknown_02024064 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 _0804B8FA cmp r0, 0x11 beq _0804B8FA cmp r0, 0x2 bne _0804B920 _0804B8FA: ldrb r1, [r3] ldrh r2, [r4] movs r0, 0 bl dp01_build_cmdbuf_x34_a_bb_aka_battle_anim ldr r0, =gUnknown_02024064 ldrb r0, [r0] bl dp01_battle_side_mark_buffer_for_execution ldr r1, =gUnknown_02024214 ldr r0, [r1] adds r0, 0xA str r0, [r1] b _0804B976 .pool _0804B920: ldr r0, =gUnknown_02024280 ldr r0, [r0] movs r1, 0x80 ands r0, r1 cmp r0, 0 beq _0804B934 adds r0, r2, 0 b _0804B972 .pool _0804B934: adds r0, r5, 0 subs r0, 0xA lsls r0, 24 lsrs r0, 24 cmp r0, 0x3 bls _0804B960 ldr r1, =gUnknown_020242AC ldrb r0, [r7] lsls r0, 2 adds r0, r1 ldr r0, [r0] ldr r1, =0x000400c0 ands r0, r1 cmp r0, 0 beq _0804B960 adds r0, r2, 0 b _0804B972 .pool _0804B960: 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] _0804B972: adds r0, 0xA str r0, [r6] _0804B976: pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_804B8B0 thumb_func_start sub_804B97C sub_804B97C: @ 804B97C push {r4,lr} movs r3, 0 ldr r1, =gUnknown_02024474 ldrb r0, [r1, 0x1A] movs r2, 0xF0 ands r2, r0 adds r4, r1, 0 cmp r2, 0x20 beq _0804B9AA cmp r2, 0x20 bgt _0804B99C cmp r2, 0x10 beq _0804B9A6 b _0804B9B4 .pool _0804B99C: cmp r2, 0x90 beq _0804B9AE cmp r2, 0xA0 beq _0804B9B2 b _0804B9B4 _0804B9A6: movs r3, 0xF b _0804B9B4 _0804B9AA: movs r3, 0x27 b _0804B9B4 _0804B9AE: movs r3, 0x16 b _0804B9B4 _0804B9B2: movs r3, 0x2E _0804B9B4: ldrb r1, [r4, 0x1A] movs r0, 0xF ands r0, r1 adds r0, r3, r0 subs r0, 0x1 movs r1, 0 strb r0, [r4, 0x10] strb r1, [r4, 0x11] ldr r1, =gUnknown_02024214 ldr r0, [r1] adds r0, 0x1 str r0, [r1] pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_804B97C thumb_func_start atk48_playstatchangeanimation atk48_playstatchangeanimation: @ 804B9D8 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, =gUnknown_02024214 ldr r0, [r5] ldrb r0, [r0, 0x1] str r3, [sp] bl get_battle_side_of_something ldr r2, =gUnknown_02024064 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 _0804BAEC movs r0, 0x2 ands r0, r1 movs r1, 0x15 cmp r0, 0 beq _0804BA18 movs r1, 0x2D _0804BA18: cmp r4, 0 beq _0804BAC0 movs r0, 0x1 mov r10, r0 ldr r0, =gUnknown_0202409C mov r9, r0 lsls r5, r1, 16 _0804BA26: adds r0, r4, 0 mov r1, r10 ands r0, r1 cmp r0, 0 beq _0804BAB2 ldr r0, =gUnknown_02024214 ldr r0, [r0] ldrb r1, [r0, 0x3] movs r0, 0x8 ands r0, r1 cmp r0, 0 beq _0804BA58 ldr r0, =gUnknown_02024064 ldrb r1, [r0] movs r0, 0x58 muls r0, r1 adds r0, r7, r0 b _0804BAA0 .pool _0804BA58: ldr r6, =gUnknown_02024064 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, =gUnknown_02024294 adds r0, r1 ldrb r0, [r0, 0x4] ldr r3, [sp] cmp r0, 0 bne _0804BAB2 ldr r0, =gBattleMons ldrb r2, [r6] movs r1, 0x58 muls r2, r1 adds r0, r2, r0 adds r0, 0x20 ldrb r0, [r0] cmp r0, 0x1D beq _0804BAB2 cmp r0, 0x49 beq _0804BAB2 cmp r0, 0x33 bne _0804BA96 cmp r7, 0x6 beq _0804BAB2 _0804BA96: cmp r0, 0x34 bne _0804BA9E cmp r7, 0x1 beq _0804BAB2 _0804BA9E: adds r0, r7, r2 _0804BAA0: add r0, r9 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 cmp r0, 0 ble _0804BAB2 lsrs r0, r5, 16 mov r8, r0 adds r3, 0x1 _0804BAB2: lsrs r4, 1 movs r1, 0x80 lsls r1, 9 adds r5, r1 adds r7, 0x1 cmp r4, 0 bne _0804BA26 _0804BAC0: ldr r0, =gUnknown_02024214 mov r9, r0 cmp r3, 0x1 ble _0804BB4E ldr r0, [r0] ldrb r1, [r0, 0x3] movs r0, 0x2 ands r0, r1 movs r1, 0x39 mov r8, r1 cmp r0, 0 beq _0804BB4E movs r0, 0x3A b _0804BB4C .pool _0804BAEC: movs r0, 0x2 ands r0, r1 movs r1, 0xE cmp r0, 0 beq _0804BAF8 movs r1, 0x26 _0804BAF8: mov r9, r5 cmp r4, 0 beq _0804BB34 ldr r6, =gUnknown_0202409C adds r5, r2, 0 lsls r2, r1, 16 _0804BB04: movs r0, 0x1 ands r0, r4 cmp r0, 0 beq _0804BB26 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 _0804BB26 lsrs r1, r2, 16 mov r8, r1 adds r3, 0x1 _0804BB26: lsrs r4, 1 movs r0, 0x80 lsls r0, 9 adds r2, r0 adds r7, 0x1 cmp r4, 0 bne _0804BB04 _0804BB34: cmp r3, 0x1 ble _0804BB4E 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 _0804BB4E movs r0, 0x38 _0804BB4C: mov r8, r0 _0804BB4E: mov r1, r9 ldr r2, [r1] ldrb r1, [r2, 0x3] movs r0, 0x4 ands r0, r1 cmp r0, 0 beq _0804BB6C cmp r3, 0x1 bgt _0804BB6C adds r0, r2, 0x4 mov r1, r9 b _0804BBBA .pool _0804BB6C: cmp r3, 0 beq _0804BBB4 ldr r4, =gUnknown_02024474 ldrb r0, [r4, 0x1B] cmp r0, 0 bne _0804BBB4 movs r0, 0 movs r1, 0x1 mov r2, r8 str r3, [sp] bl dp01_build_cmdbuf_x34_a_bb_aka_battle_anim ldr r0, =gUnknown_02024064 ldrb r0, [r0] bl dp01_battle_side_mark_buffer_for_execution ldr r0, =gUnknown_02024214 ldr r0, [r0] ldrb r1, [r0, 0x3] movs r0, 0x4 ands r0, r1 ldr r3, [sp] cmp r0, 0 beq _0804BBA4 cmp r3, 0x1 ble _0804BBA4 movs r0, 0x1 strb r0, [r4, 0x1B] _0804BBA4: ldr r1, =gUnknown_02024214 b _0804BBB6 .pool _0804BBB4: mov r1, r9 _0804BBB6: ldr r0, [r1] adds r0, 0x4 _0804BBBA: 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_804BBCC sub_804BBCC: @ 804BBCC push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x1C movs r0, 0 mov r10, r0 ldr r2, =gUnknown_020241EC ldrh r1, [r2] ldr r0, =0x0000ffff movs r3, 0 str r3, [sp, 0x18] cmp r1, r0 beq _0804BBEE ldrh r2, [r2] str r2, [sp, 0x18] _0804BBEE: ldr r0, =gUnknown_02024214 ldr r0, [r0] ldrb r4, [r0, 0x1] str r4, [sp, 0x10] ldrb r0, [r0, 0x2] str r0, [sp, 0x14] ldr r1, =gBattleMons ldr r0, =gUnknown_0202420B ldrb r2, [r0] movs r0, 0x58 muls r0, r2 adds r1, r0, r1 ldrh r0, [r1, 0x2E] cmp r0, 0xAF bne _0804BC34 ldr r1, =gUnknown_02024404 lsls r0, r2, 3 subs r0, r2 lsls r0, 2 adds r0, r1 ldrb r0, [r0, 0x7] b _0804BC3E .pool _0804BC34: ldrh r0, [r1, 0x2E] bl itemid_get_x12 lsls r0, 24 lsrs r0, 24 _0804BC3E: str r0, [sp, 0x8] ldr r1, =gUnknown_0202449C ldr r0, =gUnknown_0202420B ldrb r0, [r0] lsls r0, 1 adds r0, 0xC8 ldr r1, [r1] adds r0, r1, r0 str r0, [sp, 0xC] ldrb r0, [r1, 0x13] cmp r0, 0 beq _0804BCF0 movs r5, 0x3F ands r5, r0 str r5, [sp, 0x4] b _0804BD02 .pool _0804BC68: ldr r4, =gUnknown_02024064 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 _0804C15A .pool _0804BC80: ldr r4, =gUnknown_02024064 strb r2, [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 ldrb r1, [r6] lsls r1, 2 adds r1, r5 ldr r0, [r1] ldr r2, =0xfffbff3f ands r0, r2 str r0, [r1] b _0804C15A .pool _0804BCAC: strb r2, [r7] ldr r0, [r5] orrs r0, r6 str r0, [r5] ldr r0, =gUnknown_02024474 strb r4, [r0, 0x14] bl sub_804AF30 ldr r2, =gUnknown_082D86A8 mov r0, r8 ldrh r1, [r0] 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, =gUnknown_02024214 ldr r0, =gUnknown_082DB87D bl _0804C5B8 .pool _0804BCF0: ldr r2, =gBattleMoves ldr r0, =gUnknown_020241EA ldrh r1, [r0] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r0, [r0, 0x2] str r0, [sp, 0x4] _0804BD02: ldr r1, =gUnknown_02024474 mov r12, r1 b _0804BD1E .pool _0804BD14: mov r2, r10 cmp r2, 0 beq _0804BD1E bl _0804C5A4 _0804BD1E: mov r3, r12 ldrb r0, [r3, 0x14] cmp r0, 0x11 bls _0804BD2A bl _0804C570 _0804BD2A: lsls r0, 2 ldr r1, =_0804BD38 adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _0804BD38: .4byte _0804BD80 .4byte _0804BE5C .4byte _0804BF18 .4byte _0804BF3C .4byte _0804BF54 .4byte _0804BF7C .4byte _0804BFA0 .4byte _0804C048 .4byte _0804C0BE .4byte _0804C0F4 .4byte _0804C194 .4byte _0804C088 .4byte _0804C0A8 .4byte _0804C1D8 .4byte _0804C21C .4byte _0804C3FC .4byte _0804C4E4 .4byte _0804C570 _0804BD80: ldr r6, =gBattleMons ldr r5, =gEnemyMonIndex ldrb r3, [r5] movs r7, 0x58 adds r2, r3, 0 muls r2, r7 adds r0, r6, 0 adds r0, 0x50 adds r0, r2, r0 ldr r0, [r0] movs r1, 0x80 lsls r1, 16 ands r0, r1 cmp r0, 0 bne _0804BDA0 b _0804C184 _0804BDA0: adds r0, r2, r6 ldrh r0, [r0, 0x28] cmp r0, 0 bne _0804BDAA b _0804C184 _0804BDAA: ldr r0, =gUnknown_0202420B ldrb r1, [r0] cmp r1, r3 bne _0804BDB4 b _0804C184 _0804BDB4: adds r0, r1, 0 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 bne _0804BDCC b _0804C184 _0804BDCC: ldr r0, =gBattleMoveFlags ldrb r1, [r0] movs r0, 0x29 ands r0, r1 cmp r0, 0 beq _0804BDDA b _0804C184 _0804BDDA: ldr r2, =gUnknown_0202437C ldrb r3, [r5] lsls r0, r3, 2 adds r0, r3 lsls r1, r0, 2 adds r0, r2, 0 adds r0, 0x8 adds r0, r1, r0 ldr r0, [r0] cmp r0, 0 bne _0804BDFE adds r0, r2, 0 adds r0, 0xC adds r0, r1, r0 ldr r0, [r0] cmp r0, 0 bne _0804BDFE b _0804C184 _0804BDFE: ldr r2, =gBattleMoves ldr r0, =gUnknown_020241EA ldrh r1, [r0] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r0, [r0, 0x1] cmp r0, 0 bne _0804BE14 b _0804C184 _0804BE14: adds r0, r3, 0 muls r0, r7 adds r1, r0, r6 ldrb r2, [r1, 0x19] movs r0, 0x19 ldrsb r0, [r1, r0] cmp r0, 0xB ble _0804BE26 b _0804C184 _0804BE26: adds r0, r2, 0x1 strb r0, [r1, 0x19] bl b_movescr_stack_push_cursor ldr r1, =gUnknown_02024214 ldr r0, =gUnknown_082DAE0D str r0, [r1] b _0804C0B8 .pool _0804BE5C: ldr r4, =gBattleMons ldr r6, =gEnemyMonIndex ldrb r2, [r6] movs r5, 0x58 mov r12, r5 mov r1, r12 muls r1, r2 adds r7, r4, 0 adds r7, 0x4C adds r5, r1, r7 ldr r3, [r5] movs r0, 0x20 ands r0, r3 cmp r0, 0 bne _0804BE7C b _0804C184 _0804BE7C: adds r0, r1, r4 ldrh r0, [r0, 0x28] cmp r0, 0 bne _0804BE86 b _0804C184 _0804BE86: ldr r0, =gUnknown_0202420B ldrb r0, [r0] cmp r0, r2 bne _0804BE90 b _0804C184 _0804BE90: ldr r0, =gUnknown_0202437C lsls r1, r2, 2 adds r1, r2 lsls r1, 2 adds r0, 0xC adds r1, r0 ldr r0, [r1] cmp r0, 0 bne _0804BEA4 b _0804C184 _0804BEA4: ldr r0, =gBattleMoveFlags ldrb r1, [r0] movs r0, 0x29 ands r0, r1 cmp r0, 0 beq _0804BEB2 b _0804C184 _0804BEB2: ldr r0, [sp, 0x4] cmp r0, 0xA beq _0804BEBA b _0804C184 _0804BEBA: movs r0, 0x21 negs r0, r0 ands r3, r0 str r3, [r5] ldr r4, =gUnknown_02024064 ldrb r0, [r6] strb r0, [r4] ldrb r0, [r6] 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, =gUnknown_02024214 ldr r0, =gUnknown_082DB282 str r0, [r1] movs r2, 0x1 mov r10, r2 b _0804C184 .pool _0804BF18: ldr r0, =gEnemyMonIndex ldrb r1, [r0] movs r0, 0 str r0, [sp] movs r0, 0x7 movs r2, 0 movs r3, 0 bl ability_something lsls r0, 24 cmp r0, 0 bne _0804BF32 b _0804C184 _0804BF32: movs r3, 0x1 mov r10, r3 b _0804C184 .pool _0804BF3C: ldr r0, =gEnemyMonIndex ldrb r1, [r0] movs r0, 0 str r0, [sp] movs r0, 0x4 movs r2, 0 movs r3, 0 bl ability_something b _0804C0B2 .pool _0804BF54: movs r0, 0 str r0, [sp] movs r0, 0x5 movs r1, 0 movs r2, 0 movs r3, 0 bl ability_something lsls r0, 24 cmp r0, 0 bne _0804BF6C b _0804C184 _0804BF6C: movs r5, 0x1 mov r10, r5 ldr r0, =gUnknown_02024474 mov r12, r0 b _0804C570 .pool _0804BF7C: ldr r0, =gUnknown_0202420B ldrb r1, [r0] movs r0, 0 str r0, [sp] movs r0, 0x8 movs r2, 0 movs r3, 0 bl ability_something lsls r0, 24 cmp r0, 0 bne _0804BF96 b _0804C184 _0804BF96: movs r1, 0x1 mov r10, r1 b _0804C184 .pool _0804BFA0: ldr r0, =gUnknown_02024280 ldr r0, [r0] movs r1, 0x80 lsls r1, 18 ands r0, r1 cmp r0, 0 beq _0804BFE4 ldr r2, [sp, 0x8] cmp r2, 0x1D bne _0804BFE4 ldr r0, =gUnknown_020241EC ldrh r2, [r0] adds r3, r0, 0 cmp r2, 0xA5 beq _0804BFE4 ldr r4, [sp, 0xC] ldrh r1, [r4] cmp r1, 0 beq _0804BFCC ldr r0, =0x0000ffff cmp r1, r0 bne _0804BFE4 _0804BFCC: cmp r2, 0xE2 bne _0804BFDE ldr r0, =gBattleMoveFlags ldrb r1, [r0] movs r0, 0x20 ands r0, r1 cmp r0, 0 bne _0804BFDE b _0804C4B6 _0804BFDE: ldrh r0, [r3] ldr r1, [sp, 0xC] strh r0, [r1] _0804BFE4: movs r4, 0 ldr r2, =gBattleMons ldr r3, =gUnknown_0202420B 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 _0804C01C mov r6, r9 movs r3, 0x58 adds r5, r1, 0 _0804C006: adds r4, 0x1 cmp r4, 0x3 bgt _0804C01C lsls r0, r4, 1 ldrb r1, [r6] muls r1, r3 adds r0, r1 adds r0, r2 ldrh r0, [r0] cmp r0, r5 bne _0804C006 _0804C01C: cmp r4, 0x4 bne _0804C026 movs r0, 0 ldr r1, [sp, 0xC] strh r0, [r1] _0804C026: mov r2, r12 ldrb r0, [r2, 0x14] adds r0, 0x1 strb r0, [r2, 0x14] b _0804C570 .pool _0804C048: movs r4, 0 ldr r0, =gUnknown_0202406C ldrb r3, [r0] cmp r4, r3 blt _0804C054 b _0804C202 _0804C054: ldr r7, =gUnknown_0202449C movs r6, 0 movs r3, 0xD0 adds r5, r0, 0 ldr r2, =gBattleMons _0804C05E: ldr r0, [r7] adds r0, r3 ldrh r1, [r0] cmp r1, 0 beq _0804C06C strh r1, [r2, 0x2E] strh r6, [r0] _0804C06C: adds r3, 0x2 adds r2, 0x58 adds r4, 0x1 ldrb r0, [r5] cmp r4, r0 blt _0804C05E b _0804C202 .pool _0804C088: movs r0, 0x3 movs r1, 0 movs r2, 0 bl berry_effects_maybe lsls r0, 24 cmp r0, 0 beq _0804C184 movs r2, 0x1 mov r10, r2 ldr r3, =gUnknown_02024474 mov r12, r3 b _0804C570 .pool _0804C0A8: movs r0, 0x4 movs r1, 0 movs r2, 0 bl berry_effects_maybe _0804C0B2: lsls r0, 24 cmp r0, 0 beq _0804C184 _0804C0B8: movs r4, 0x1 mov r10, r4 b _0804C184 _0804C0BE: ldr r1, =gUnknown_020242AC ldr r0, =gUnknown_0202420B ldrb r2, [r0] lsls r0, r2, 2 adds r0, r1 ldr r0, [r0] ldr r1, =0x000400c0 ands r0, r1 cmp r0, 0 bne _0804C0D4 b _0804C4B6 _0804C0D4: ldr r0, =gUnknown_02024280 ldr r0, [r0] movs r1, 0x80 ands r0, r1 cmp r0, 0 beq _0804C0E2 b _0804BC68 _0804C0E2: b _0804C4B6 .pool _0804C0F4: ldr r0, =gBattleMoveFlags ldrb r1, [r0] movs r0, 0x29 ands r0, r1 cmp r0, 0 bne _0804C120 ldr r1, =gUnknown_020242AC ldr r0, =gUnknown_0202420B ldrb r2, [r0] lsls r0, r2, 2 adds r0, r1 ldr r0, [r0] ldr r1, =0x000400c0 ands r0, r1 cmp r0, 0 beq _0804C120 adds r0, r2, 0 bl sub_803F90C lsls r0, 24 cmp r0, 0 beq _0804C184 _0804C120: ldr r4, =gUnknown_02024064 ldr r5, =gUnknown_0202420B 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, =gUnknown_020242AC ldrb r2, [r5] lsls r2, 2 adds r2, r0 ldr r0, [r2] ldr r1, =0xfffbff3f ands r0, r1 str r0, [r2] ldr r2, =gUnknown_0202437C 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] _0804C15A: ldr r1, =gUnknown_02024474 ldrb r0, [r1, 0x14] adds r0, 0x1 strb r0, [r1, 0x14] b _0804C5BA .pool _0804C184: ldr r1, =gUnknown_02024474 ldrb r0, [r1, 0x14] adds r0, 0x1 strb r0, [r1, 0x14] mov r12, r1 b _0804C570 .pool _0804C194: ldr r0, =gUnknown_0202437C ldr r6, =gEnemyMonIndex ldrb r2, [r6] lsls r3, r2, 2 adds r1, r3, r2 lsls r1, 2 adds r1, r0 ldrb r0, [r1] lsls r0, 29 cmp r0, 0 blt _0804C202 ldr r0, =gUnknown_0202406C ldrb r0, [r0] cmp r2, r0 bcs _0804C202 ldr r5, =gUnknown_020242AC adds r0, r3, r5 ldr r0, [r0] ldr r1, =0x000400c0 ands r0, r1 cmp r0, 0 bne _0804C1C2 b _0804BC80 _0804C1C2: b _0804C202 .pool _0804C1D8: movs r4, 0 ldr r0, =gUnknown_0202406C ldrb r2, [r0] cmp r4, r2 bge _0804C202 ldr r2, =gUnknown_020242BC ldr r5, =0xfeffffff adds r3, r0, 0 ldr r1, =gUnknown_020240D4 _0804C1EA: ldrb r0, [r2, 0xA] cmp r0, 0 bne _0804C1F6 ldr r0, [r1] ands r0, r5 str r0, [r1] _0804C1F6: adds r2, 0x1C adds r1, 0x58 adds r4, 0x1 ldrb r0, [r3] cmp r4, r0 blt _0804C1EA _0804C202: mov r1, r12 ldrb r0, [r1, 0x14] adds r0, 0x1 strb r0, [r1, 0x14] b _0804C570 .pool _0804C21C: ldr r1, =gUnknown_02024280 ldr r3, [r1] movs r0, 0x80 lsls r0, 5 ands r0, r3 ldr r2, =gUnknown_0202420B mov r9, r2 adds r5, r1, 0 cmp r0, 0 beq _0804C246 ldr r0, =gUnknown_02024064 ldrb r2, [r2] strb r2, [r0] ldr r1, =gEnemyMonIndex ldrb r0, [r1] mov r4, r9 strb r0, [r4] strb r2, [r1] ldr r0, =0xffffefff ands r3, r0 str r3, [r5] _0804C246: ldr r0, [r5] movs r1, 0x80 lsls r1, 3 ands r0, r1 cmp r0, 0 beq _0804C262 ldr r0, =gUnknown_02024240 mov r2, r9 ldrb r1, [r2] lsls r1, 1 adds r1, r0 ldr r0, =gUnknown_020241EC ldrh r0, [r0] strh r0, [r1] _0804C262: ldr r0, =gUnknown_02024210 ldrb r1, [r0] ldr r2, =gBitTable 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 _0804C27C b _0804C3E8 _0804C27C: ldr r0, =gUnknown_0202449C ldr r1, [r0] adds r1, 0x91 ldrb r1, [r1] ands r1, r3 adds r7, r0, 0 cmp r1, 0 beq _0804C28E b _0804C3E8 _0804C28E: ldr r0, =gBattleMoves ldr r2, [sp, 0x18] lsls r1, r2, 1 adds r1, r2 lsls r1, 2 adds r1, r0 ldrb r1, [r1] mov r8, r0 cmp r1, 0x7F bne _0804C2A4 b _0804C3E8 _0804C2A4: ldr r0, [r5] movs r1, 0x80 lsls r1, 18 ands r0, r1 cmp r0, 0 beq _0804C308 ldr r0, =gUnknown_02024248 lsls r1, r4, 1 adds r1, r0 ldr r0, =gUnknown_020241EC ldrh r0, [r0] strh r0, [r1] ldr r0, =gUnknown_02024260 mov r3, r9 ldrb r1, [r3] lsls r1, 1 adds r1, r0 ldr r0, =gUnknown_020241EA ldrh r0, [r0] strh r0, [r1] b _0804C322 .pool _0804C308: ldr r1, =gUnknown_02024248 lsls r0, r4, 1 adds r0, r1 ldr r1, =0x0000ffff strh r1, [r0] ldr r1, =gUnknown_02024260 mov r4, r9 ldrb r0, [r4] lsls r0, 1 adds r0, r1 movs r1, 0x1 negs r1, r1 strh r1, [r0] _0804C322: ldr r2, =gEnemyMonIndex 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 _0804C340 ldr r0, =gUnknown_02024270 adds r0, r3, r0 mov r3, r9 ldrb r1, [r3] strb r1, [r0] _0804C340: ldr r0, [r5] movs r1, 0x80 lsls r1, 18 ands r0, r1 cmp r0, 0 beq _0804C3DC ldr r0, =gBattleMoveFlags ldrb r1, [r0] movs r0, 0x29 ands r0, r1 cmp r0, 0 bne _0804C3DC ldr r0, =gUnknown_020241EC ldrh r3, [r0] ldr r0, =0x0000ffff cmp r3, r0 bne _0804C390 ldr r1, =gUnknown_02024250 ldrb r0, [r2] lsls r0, 1 adds r0, r1 strh r3, [r0] b _0804C3E8 .pool _0804C390: ldr r0, =gUnknown_02024250 ldrb r1, [r2] lsls r1, 1 adds r1, r0 ldr r4, =gUnknown_020241EA ldrh r0, [r4] strh r0, [r1] ldr r0, [r7] ldrb r3, [r0, 0x13] cmp r3, 0 beq _0804C3C0 ldr r0, =gUnknown_02024258 ldrb r1, [r2] lsls r1, 1 adds r1, r0 movs r0, 0x3F ands r0, r3 b _0804C3E6 .pool _0804C3C0: ldr r0, =gUnknown_02024258 ldrb r2, [r2] 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 _0804C3E8 .pool _0804C3DC: ldr r0, =gUnknown_02024250 ldrb r1, [r2] lsls r1, 1 adds r1, r0 ldr r0, =0x0000ffff _0804C3E6: strh r0, [r1] _0804C3E8: mov r4, r12 ldrb r0, [r4, 0x14] adds r0, 0x1 strb r0, [r4, 0x14] b _0804C570 .pool _0804C3FC: ldr r0, =gUnknown_02024210 ldrb r1, [r0] ldr r7, =gBitTable ldr r2, =gUnknown_0202420B ldrb r3, [r2] lsls r0, r3, 2 adds r0, r7 ldr r4, [r0] ands r1, r4 mov r9, r2 cmp r1, 0 bne _0804C4B6 ldr r6, =gUnknown_0202449C ldr r5, [r6] adds r0, r5, 0 adds r0, 0x91 ldrb r0, [r0] ands r0, r4 cmp r0, 0 bne _0804C4B6 ldr r1, =gBattleMoves ldr r2, [sp, 0x18] lsls r0, r2, 1 adds r0, r2 lsls r0, 2 adds r0, r1 ldrb r1, [r0, 0x8] movs r0, 0x10 ands r0, r1 cmp r0, 0 beq _0804C4B6 ldr r0, =gUnknown_02024280 ldr r1, [r0] movs r0, 0x80 lsls r0, 18 ands r0, r1 cmp r0, 0 beq _0804C4B6 ldr r4, =gEnemyMonIndex ldrb r0, [r4] cmp r3, r0 beq _0804C4B6 ldrb r2, [r4] lsls r0, r2, 2 adds r0, r7 ldr r0, [r0] lsls r0, 28 ands r1, r0 cmp r1, 0 bne _0804C4B6 ldr r0, =gBattleMoveFlags ldrb r1, [r0] movs r0, 0x29 ands r0, r1 cmp r0, 0 bne _0804C4B6 lsls r1, r2, 1 adds r1, r5 adds r1, 0x98 ldr r3, =gUnknown_020241EC ldrh r0, [r3] strb r0, [r1] ldrb r1, [r4] ldr r0, [r6] lsls r1, 1 adds r1, r0 adds r1, 0x99 ldrh r0, [r3] lsrs r0, 8 strb r0, [r1] ldrb r0, [r4] mov r2, r9 ldrb r1, [r2] ldr r2, [r6] lsls r0, 3 lsls r1, 1 adds r0, r1 adds r0, r2 adds r0, 0xE0 ldrh r1, [r3] strb r1, [r0] ldrb r1, [r4] mov r4, r9 ldrb r0, [r4] ldr r2, [r6] lsls r1, 3 lsls r0, 1 adds r1, r0 adds r1, r2 adds r1, 0xE1 ldrh r0, [r3] lsrs r0, 8 strb r0, [r1] _0804C4B6: mov r5, r12 ldrb r0, [r5, 0x14] adds r0, 0x1 strb r0, [r5, 0x14] b _0804C570 .pool _0804C4E4: ldr r5, =gUnknown_02024280 ldr r2, [r5] movs r0, 0x80 lsls r0, 12 ands r0, r2 cmp r0, 0 bne _0804C568 ldr r0, =gBattleTypeFlags ldr r0, [r0] movs r1, 0x1 ands r0, r1 cmp r0, 0 beq _0804C568 ldr r1, =gUnknown_0202433C ldr r0, =gUnknown_0202420B ldrb r0, [r0] lsls r0, 4 adds r0, r1 ldrb r0, [r0, 0x1] lsls r0, 29 cmp r0, 0 blt _0804C568 ldr r0, =gBattleMoves mov r9, r0 ldr r1, =gUnknown_020241EA 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 _0804C568 movs r6, 0x80 lsls r6, 2 adds r4, r6, 0 ands r4, r2 cmp r4, 0 bne _0804C568 ldr r7, =gEnemyMonIndex 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, =gBattleMons movs r0, 0x58 muls r0, r2 adds r0, r1 ldrh r0, [r0, 0x28] cmp r0, 0 beq _0804C55E bl _0804BCAC _0804C55E: ldr r0, [r5] orrs r0, r6 str r0, [r5] ldr r2, =gUnknown_02024474 mov r12, r2 _0804C568: mov r3, r12 ldrb r0, [r3, 0x14] adds r0, 0x1 strb r0, [r3, 0x14] _0804C570: ldr r4, [sp, 0x10] cmp r4, 0x1 bne _0804C582 mov r5, r10 cmp r5, 0 bne _0804C582 movs r0, 0x11 mov r1, r12 strb r0, [r1, 0x14] _0804C582: ldr r2, [sp, 0x10] cmp r2, 0x2 bne _0804C598 ldr r4, [sp, 0x14] mov r3, r12 ldrb r3, [r3, 0x14] cmp r4, r3 bne _0804C598 movs r0, 0x11 mov r4, r12 strb r0, [r4, 0x14] _0804C598: mov r5, r12 ldrb r0, [r5, 0x14] cmp r0, 0x11 beq _0804C5A4 bl _0804BD14 _0804C5A4: mov r1, r12 ldrb r0, [r1, 0x14] cmp r0, 0x11 bne _0804C5BA mov r2, r10 cmp r2, 0 bne _0804C5BA ldr r1, =gUnknown_02024214 ldr r0, [r1] adds r0, 0x3 _0804C5B8: str r0, [r1] _0804C5BA: add sp, 0x1C pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_804BBCC thumb_func_start atk4A_damagecalc2 atk4A_damagecalc2: @ 804C5F4 push {r4-r7,lr} mov r7, r8 push {r7} movs r4, 0 movs r5, 0 ldr r2, =gBattleMoves ldr r0, =gUnknown_020241EA 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, =gBattleMons ldr r3, =gEnemyMonIndex 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 _0804C688 mov r1, r8 cmp r1, 0x4 bne _0804C688 ldr r3, =gUnknown_0202420A strb r0, [r3] ldr r2, =gBattleMoveFlags ldrb r0, [r2] movs r1, 0x9 orrs r0, r1 strb r0, [r2] ldr r1, =gUnknown_02024250 ldrb r0, [r7] lsls r0, 1 adds r0, r1 strh r4, [r0] ldr r0, =gUnknown_02024332 mov r2, r8 strb r2, [r0, 0x6] ldrb r0, [r7] ldrb r1, [r3] bl b_history__record_ability_usage_of_player b _0804C76A .pool _0804C678: ldr r0, =gBattleMoveFlags ldrb r1, [r0] movs r2, 0x8 orrs r1, r2 strb r1, [r0] b _0804C76A .pool _0804C688: ldr r1, =gUnknown_0831ACE8 adds r0, r5, r1 ldrb r0, [r0] adds r6, r1, 0 b _0804C74A .pool _0804C698: adds r0, r5, r6 ldrb r0, [r0] cmp r0, r8 bne _0804C744 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 _0804C6D6 adds r0, r5, 0x2 adds r0, r6 ldrb r1, [r0] cmp r1, 0 beq _0804C678 cmp r1, 0x5 bne _0804C6CA movs r0, 0x4 orrs r4, r0 _0804C6CA: cmp r1, 0x14 bne _0804C6D6 movs r0, 0x2 orrs r4, r0 lsls r0, r4, 24 lsrs r4, r0, 24 _0804C6D6: 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 _0804C744 adds r0, 0x21 ldrb r1, [r0] cmp r1, r2 beq _0804C6FE adds r0, r5, 0x2 adds r0, r6 ldrb r0, [r0] cmp r0, 0 beq _0804C678 _0804C6FE: cmp r1, r2 beq _0804C714 adds r0, r5, 0x2 adds r0, r6 ldrb r0, [r0] cmp r0, 0x5 bne _0804C714 movs r0, 0x4 orrs r4, r0 lsls r0, r4, 24 lsrs r4, r0, 24 _0804C714: 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 _0804C744 adds r0, 0x21 ldrb r0, [r0] cmp r0, r2 beq _0804C744 adds r0, r5, 0x2 adds r0, r6 ldrb r0, [r0] cmp r0, 0x14 bne _0804C744 movs r0, 0x2 orrs r4, r0 lsls r0, r4, 24 lsrs r4, r0, 24 _0804C744: adds r5, 0x3 adds r0, r5, r6 ldrb r0, [r0] _0804C74A: cmp r0, 0xFF beq _0804C76A cmp r0, 0xFE bne _0804C698 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 _0804C744 _0804C76A: ldr r2, =gBattleMons ldr r0, =gEnemyMonIndex 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 _0804C7E6 movs r5, 0x29 ands r5, r4 cmp r5, 0 bne _0804C7E6 ldr r0, =gUnknown_0202420B ldrb r0, [r0] ldr r7, =gUnknown_020241EA ldrh r1, [r7] bl move_weather_interaction lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0x2 bne _0804C7E6 adds r0, r4, 0 ands r0, r1 cmp r0, 0 beq _0804C7AC movs r0, 0x6 ands r4, r0 cmp r4, 0x6 bne _0804C7E6 _0804C7AC: ldr r2, =gBattleMoves ldrh r1, [r7] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r0, [r0, 0x1] cmp r0, 0 beq _0804C7E6 ldr r3, =gUnknown_0202420A strb r6, [r3] ldr r2, =gBattleMoveFlags ldrb r0, [r2] movs r1, 0x1 orrs r0, r1 strb r0, [r2] ldr r1, =gUnknown_02024250 mov r2, r8 ldrb r0, [r2] lsls r0, 1 adds r0, r1 strh r5, [r0] ldr r1, =gUnknown_02024332 movs r0, 0x3 strb r0, [r1, 0x6] ldrb r0, [r2] ldrb r1, [r3] bl b_history__record_ability_usage_of_player _0804C7E6: ldr r0, =gBattleMoveFlags ldrb r1, [r0] movs r0, 0x8 ands r0, r1 cmp r0, 0 beq _0804C804 ldr r2, =gUnknown_0202433C ldr r0, =gUnknown_0202420B ldrb r1, [r0] lsls r1, 4 adds r1, r2 ldrb r0, [r1, 0x1] movs r2, 0x2 orrs r0, r2 strb r0, [r1, 0x1] _0804C804: ldr r1, =gUnknown_02024214 ldr r0, [r1] adds r0, 0x1 str r0, [r1] pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end atk4A_damagecalc2 thumb_func_start atk4B_cmd4b atk4B_cmd4b: @ 804C844 push {r4,lr} ldr r4, =gUnknown_02024064 ldr r0, =gUnknown_0202420B ldrb r0, [r0] strb r0, [r4] ldr r2, =gUnknown_02024280 ldr r1, =gBitTable 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 _0804C872 movs r0, 0 movs r1, 0 bl dp01_build_cmdbuf_x06_a ldrb r0, [r4] bl dp01_battle_side_mark_buffer_for_execution _0804C872: ldr r1, =gUnknown_02024214 ldr r0, [r1] adds r0, 0x1 str r0, [r1] pop {r4} pop {r0} bx r0 .pool thumb_func_end atk4B_cmd4b thumb_func_start atk4C_switch1 atk4C_switch1: @ 804C894 push {r4,r5,lr} ldr r0, =gUnknown_02024068 ldr r0, [r0] cmp r0, 0 bne _0804C8E4 ldr r5, =gUnknown_02024214 ldr r0, [r5] ldrb r0, [r0, 0x1] bl get_battle_side_of_something ldr r4, =gUnknown_02024064 strb r0, [r4] ldr r3, =gUnknown_0202406E ldrb r0, [r4] lsls r2, r0, 1 adds r2, r3 ldr r1, =gUnknown_0202449C ldr r1, [r1] adds r0, r1 adds r0, 0x5C ldrb r0, [r0] strh r0, [r2] ldr r1, =gBitTable 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] _0804C8E4: pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end atk4C_switch1 thumb_func_start sub_804C904 sub_804C904: @ 804C904 push {r4-r7,lr} sub sp, 0x58 ldr r0, =gUnknown_02024068 ldr r0, [r0] cmp r0, 0 beq _0804C912 b _0804CAA4 _0804C912: ldr r0, =gUnknown_02024214 ldr r0, [r0] ldrb r0, [r0, 0x1] bl get_battle_side_of_something ldr r4, =gUnknown_02024064 strb r0, [r4] ldr r6, =gBattleMons 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, =gUnknown_02023864 _0804C93E: 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 _0804C93E ldr r4, =gBattleMons ldr r6, =gUnknown_02024064 ldrb r0, [r6] movs r7, 0x58 adds r2, r0, 0 muls r2, r7 adds r2, r4 ldr r3, =gBaseStats 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, [r6] adds r1, r0, 0 muls r1, r7 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, [r6] adds r1, r0, 0 muls r1, r7 adds r1, r4 ldrh r0, [r1] ldrb r1, [r1, 0x17] lsrs r1, 7 bl sub_806B694 ldrb r1, [r6] muls r1, r7 adds r1, r4 adds r1, 0x20 strb r0, [r1] ldrb r0, [r6] bl battle_side_get_owner lsls r0, 24 lsrs r2, r0, 24 ldr r0, =gUnknown_020243D0 adds r0, 0x29 adds r0, r2, r0 ldrb r1, [r0] ldr r3, =gBitTable ldr r2, =gUnknown_0202406E ldrb r5, [r6] 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 _0804C9DE adds r0, r5, 0 muls r0, r7 add r0, r12 movs r1, 0 strh r1, [r0, 0x2E] _0804C9DE: ldr r2, =gBattleMoves ldr r0, =gUnknown_020241EA ldrh r1, [r0] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r0, [r0] cmp r0, 0x7F bne _0804CA26 movs r2, 0 adds r4, r6, 0 movs r6, 0x58 mov r5, r12 adds r5, 0x18 add r3, sp, 0x18 _0804C9FE: 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 _0804C9FE ldr r0, =gUnknown_02024064 ldrb r1, [r0] movs r0, 0x58 muls r0, r1 mov r1, r12 adds r1, 0x50 adds r0, r1 ldr r1, [sp, 0x50] str r1, [r0] _0804CA26: bl sub_803A284 ldr r0, =gBattleTypeFlags ldr r0, [r0] movs r1, 0x80 lsls r1, 10 ands r0, r1 cmp r0, 0 beq _0804CA78 ldr r4, =gBattleMons ldr r0, =gUnknown_02024064 ldrb r3, [r0] movs r0, 0x58 adds r2, r3, 0 muls r2, r0 adds r1, r2, r4 ldrh r0, [r1, 0x2C] lsrs r0, 1 ldrh r1, [r1, 0x28] cmp r0, r1 bcc _0804CA78 cmp r1, 0 beq _0804CA78 adds r0, r4, 0 adds r0, 0x4C adds r0, r2, r0 ldr r0, [r0] movs r1, 0x7 ands r0, r1 cmp r0, 0 bne _0804CA78 ldr r0, =gUnknown_0202449C ldr r2, [r0] adds r2, 0x92 ldr r1, =gBitTable lsls r0, r3, 2 adds r0, r1 ldr r0, [r0] ldrb r1, [r2] orrs r0, r1 strb r0, [r2] _0804CA78: ldr r0, =gUnknown_02024474 ldr r3, =gUnknown_02024064 ldrb r2, [r3] strb r2, [r0, 0x17] ldr r1, =gUnknown_02022F58 movs r0, 0xFD strb r0, [r1] movs r0, 0x7 strb r0, [r1, 0x1] strb r2, [r1, 0x2] ldr r2, =gUnknown_0202406E 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, =gUnknown_02024214 ldr r0, [r1] adds r0, 0x2 str r0, [r1] _0804CAA4: add sp, 0x58 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_804C904 thumb_func_start atk4E_switch3 atk4E_switch3: @ 804CAE8 push {r4-r6,lr} ldr r0, =gUnknown_02024068 ldr r0, [r0] cmp r0, 0 bne _0804CB86 ldr r0, =gUnknown_02024214 ldr r0, [r0] ldrb r0, [r0, 0x1] bl get_battle_side_of_something ldr r6, =gUnknown_02024064 strb r0, [r6] ldrb r0, [r6] bl battle_side_get_owner lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _0804CB3E ldr r0, =gBattleTypeFlags ldr r0, [r0] ldr r1, =0x063f0902 ands r0, r1 cmp r0, 0 bne _0804CB3E ldr r4, =gBattleMons 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] muls r1, r5 adds r4, 0x48 adds r1, r4 ldr r2, [r1] movs r1, 0x2 bl SetPokedexFlag _0804CB3E: ldr r2, =gUnknown_02024210 ldr r1, =gBitTable ldr r5, =gUnknown_02024064 ldrb r0, [r5] lsls r0, 2 adds r0, r1 ldr r1, [r0] ldrb r0, [r2] bics r0, r1 strb r0, [r2] ldr r1, =gUnknown_0202406E ldrb r0, [r5] lsls r0, 1 adds r0, r1 ldrb r1, [r0] ldr r4, =gUnknown_02024214 ldr r0, [r4] ldrb r2, [r0, 0x2] movs r0, 0 bl dp01_build_cmdbuf_x05_a_b_c ldrb r0, [r5] bl dp01_battle_side_mark_buffer_for_execution ldr r0, [r4] adds r0, 0x3 str r0, [r4] ldr r0, =gBattleTypeFlags ldr r0, [r0] movs r1, 0x80 lsls r1, 11 ands r0, r1 cmp r0, 0 beq _0804CB86 bl sub_81A56B4 _0804CB86: pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end atk4E_switch3 thumb_func_start atk4F_jumpifcannotswitch atk4F_jumpifcannotswitch: @ 804CBB0 push {r4-r7,lr} mov r7, r8 push {r7} ldr r4, =gUnknown_02024214 ldr r0, [r4] ldrb r1, [r0, 0x1] movs r0, 0x7F ands r0, r1 bl get_battle_side_of_something ldr r3, =gUnknown_02024064 strb r0, [r3] ldr r2, [r4] ldrb r1, [r2, 0x1] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _0804CC28 ldr r1, =gBattleMons ldrb r3, [r3] movs r0, 0x58 muls r0, r3 adds r1, 0x50 adds r0, r1 ldr r0, [r0] ldr r1, =0x0400e000 ands r0, r1 cmp r0, 0 bne _0804CBFC ldr r1, =gUnknown_020242AC lsls r0, r3, 2 adds r0, r1 ldr r0, [r0] movs r1, 0x80 lsls r1, 3 ands r0, r1 cmp r0, 0 beq _0804CC28 _0804CBFC: 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 _0804CF00 .pool _0804CC28: ldr r0, =gBattleTypeFlags ldr r1, [r0] movs r0, 0x80 lsls r0, 15 ands r0, r1 cmp r0, 0 beq _0804CCC0 ldr r5, =gUnknown_02024064 ldrb r0, [r5] bl battle_side_get_owner lsls r0, 24 lsrs r0, 24 ldr r1, =gPlayerParty mov r8, r1 cmp r0, 0x1 bne _0804CC4E ldr r0, =gEnemyParty mov r8, r0 _0804CC4E: movs r4, 0 ldrb r1, [r5] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _0804CC5C movs r4, 0x3 _0804CC5C: adds r6, r4, 0x3 cmp r4, r6 bge _0804CCA4 ldr r7, =gUnknown_0202406E _0804CC64: movs r0, 0x64 muls r0, r4 mov r1, r8 adds r5, r1, r0 adds r0, r5, 0 movs r1, 0xB bl GetMonData cmp r0, 0 beq _0804CC9E adds r0, r5, 0 movs r1, 0x2D bl GetMonData cmp r0, 0 bne _0804CC9E adds r0, r5, 0 movs r1, 0x39 bl GetMonData cmp r0, 0 beq _0804CC9E ldr r0, =gUnknown_02024064 ldrb r0, [r0] lsls r0, 1 adds r0, r7 ldrh r0, [r0] cmp r0, r4 bne _0804CCA4 _0804CC9E: adds r4, 0x1 cmp r4, r6 blt _0804CC64 _0804CCA4: cmp r4, r6 bne _0804CCAA b _0804CED0 _0804CCAA: b _0804CEF8 .pool _0804CCC0: movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _0804CD8C movs r0, 0x80 lsls r0, 16 ands r1, r0 cmp r1, 0 beq _0804CD00 ldr r5, =gUnknown_02024064 ldrb r0, [r5] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 bne _0804CCEC ldr r0, =gPlayerParty b _0804CD16 .pool _0804CCEC: ldr r1, =gEnemyParty mov r8, r1 ldrb r0, [r5] movs r4, 0x3 cmp r0, 0x1 bne _0804CD32 movs r4, 0 b _0804CD32 .pool _0804CD00: ldr r5, =gUnknown_02024064 ldrb r0, [r5] bl battle_side_get_owner lsls r0, 24 lsrs r0, 24 ldr r1, =gPlayerParty mov r8, r1 cmp r0, 0x1 bne _0804CD18 ldr r0, =gEnemyParty _0804CD16: mov r8, r0 _0804CD18: movs r4, 0 ldrb r0, [r5] bl sub_806D864 lsls r0, 24 lsrs r0, 24 bl sub_806D82C lsls r0, 16 lsrs r0, 16 cmp r0, 0x1 bne _0804CD32 movs r4, 0x3 _0804CD32: adds r6, r4, 0x3 cmp r4, r6 bge _0804CCA4 ldr r7, =gUnknown_0202406E _0804CD3A: movs r0, 0x64 muls r0, r4 mov r1, r8 adds r5, r1, r0 adds r0, r5, 0 movs r1, 0xB bl GetMonData cmp r0, 0 beq _0804CD74 adds r0, r5, 0 movs r1, 0x2D bl GetMonData cmp r0, 0 bne _0804CD74 adds r0, r5, 0 movs r1, 0x39 bl GetMonData cmp r0, 0 beq _0804CD74 ldr r0, =gUnknown_02024064 ldrb r0, [r0] lsls r0, 1 adds r0, r7 ldrh r0, [r0] cmp r0, r4 bne _0804CCA4 _0804CD74: adds r4, 0x1 cmp r4, r6 blt _0804CD3A b _0804CCA4 .pool _0804CD8C: movs r0, 0x80 lsls r0, 8 ands r1, r0 cmp r1, 0 beq _0804CE10 ldr r5, =gUnknown_02024064 ldrb r0, [r5] bl battle_side_get_owner lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _0804CE10 ldr r0, =gEnemyParty mov r8, r0 movs r4, 0 ldrb r0, [r5] cmp r0, 0x3 bne _0804CDB4 movs r4, 0x3 _0804CDB4: adds r6, r4, 0x3 cmp r4, r6 blt _0804CDBC b _0804CCA4 _0804CDBC: ldr r7, =gUnknown_0202406E _0804CDBE: movs r0, 0x64 muls r0, r4 mov r1, r8 adds r5, r1, r0 adds r0, r5, 0 movs r1, 0xB bl GetMonData cmp r0, 0 beq _0804CDFA adds r0, r5, 0 movs r1, 0x2D bl GetMonData cmp r0, 0 bne _0804CDFA adds r0, r5, 0 movs r1, 0x39 bl GetMonData cmp r0, 0 beq _0804CDFA ldr r0, =gUnknown_02024064 ldrb r0, [r0] lsls r0, 1 adds r0, r7 ldrh r0, [r0] cmp r0, r4 beq _0804CDFA b _0804CCA4 _0804CDFA: adds r4, 0x1 cmp r4, r6 blt _0804CDBE b _0804CCA4 .pool _0804CE10: ldr r0, =gUnknown_02024064 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x1 bne _0804CE54 movs r0, 0x1 bl battle_get_side_with_given_state lsls r0, 24 lsrs r7, r0, 24 ldr r0, =gBattleTypeFlags ldr r0, [r0] ands r0, r4 cmp r0, 0 beq _0804CE48 movs r0, 0x3 bl battle_get_side_with_given_state lsls r0, 24 lsrs r6, r0, 24 b _0804CE4A .pool _0804CE48: adds r6, r7, 0 _0804CE4A: ldr r0, =gEnemyParty mov r8, r0 b _0804CE82 .pool _0804CE54: movs r0, 0 bl battle_get_side_with_given_state lsls r0, 24 lsrs r7, r0, 24 ldr r0, =gBattleTypeFlags ldr r0, [r0] movs r1, 0x1 ands r0, r1 cmp r0, 0 beq _0804CE7C movs r0, 0x2 bl battle_get_side_with_given_state lsls r0, 24 lsrs r6, r0, 24 b _0804CE7E .pool _0804CE7C: adds r6, r7, 0 _0804CE7E: ldr r1, =gPlayerParty mov r8, r1 _0804CE82: movs r4, 0 _0804CE84: movs r0, 0x64 muls r0, r4 mov r1, r8 adds r5, r1, r0 adds r0, r5, 0 movs r1, 0x39 bl GetMonData cmp r0, 0 beq _0804CEC6 adds r0, r5, 0 movs r1, 0xB bl GetMonData cmp r0, 0 beq _0804CEC6 adds r0, r5, 0 movs r1, 0x2D bl GetMonData cmp r0, 0 bne _0804CEC6 ldr r1, =gUnknown_0202406E lsls r0, r7, 1 adds r0, r1 ldrh r0, [r0] cmp r4, r0 beq _0804CEC6 lsls r0, r6, 1 adds r0, r1 ldrh r0, [r0] cmp r4, r0 bne _0804CECC _0804CEC6: adds r4, 0x1 cmp r4, 0x5 ble _0804CE84 _0804CECC: cmp r4, 0x6 bne _0804CEF8 _0804CED0: ldr r3, =gUnknown_02024214 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 _0804CF00 .pool _0804CEF8: ldr r1, =gUnknown_02024214 ldr r0, [r1] adds r0, 0x6 str r0, [r1] _0804CF00: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end atk4F_jumpifcannotswitch thumb_func_start sub_804CF10 sub_804CF10: @ 804CF10 push {r4,r5,lr} sub sp, 0x4 adds r2, r0, 0 lsls r2, 24 lsrs r2, 24 ldr r5, =gUnknown_02024064 ldrb r0, [r5] ldr r4, =gUnknown_0202449C ldr r1, [r4] adds r1, r0, r1 adds r1, 0x58 ldr r3, =gUnknown_0202406E lsls r0, 1 adds r0, r3 ldrh r0, [r0] strb r0, [r1] ldrb r0, [r5] ldr r1, [r4] adds r0, r1 adds r0, 0x5C movs r1, 0x6 strb r1, [r0] ldr r1, [r4] adds r1, 0x93 ldr r3, =gBitTable ldrb r0, [r5] lsls r0, 2 adds r0, r3 ldr r3, [r0] ldrb r0, [r1] bics r0, r3 strb r0, [r1] ldrb r0, [r5] lsls r1, r0, 1 adds r1, r0 adds r1, 0x60 ldr r0, [r4] adds r0, r1 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 .pool thumb_func_end sub_804CF10 thumb_func_start atk50_openpartyscreen atk50_openpartyscreen: @ 804CF88 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, =gUnknown_02024214 ldr r2, [r6] 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 mov r8, r1 ldrb r1, [r2, 0x1] adds r0, r1, 0 mov r12, r6 cmp r0, 0x5 beq _0804CFBE b _0804D464 _0804CFBE: ldr r0, =gBattleTypeFlags ldr r0, [r0] movs r1, 0x41 ands r1, r0 cmp r1, 0x1 beq _0804D0B0 ldr r1, =gUnknown_02024064 strb r7, [r1] ldr r0, =gUnknown_0202406C ldrb r0, [r0] cmp r7, r0 bcc _0804CFD8 b _0804D450 _0804CFD8: ldr r7, =gUnknown_02024280 ldr r6, =gBitTable adds r4, r1, 0 ldr r2, =gUnknown_02024210 mov r8, r2 _0804CFE2: 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 _0804D088 adds r0, r2, 0 movs r1, 0x6 movs r2, 0x6 bl sub_80423F4 lsls r0, 24 cmp r0, 0 beq _0804D054 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 movs r2, 0 bl sub_8034464 ldrb r0, [r4] bl dp01_battle_side_mark_buffer_for_execution b _0804D098 .pool _0804D054: ldr r5, =gUnknown_0202437C 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 _0804D098 movs r0, 0x6 bl sub_804CF10 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 _0804D098 .pool _0804D088: movs r0, 0 movs r1, 0x2 movs r2, 0 bl sub_8034464 ldrb r0, [r4] bl dp01_battle_side_mark_buffer_for_execution _0804D098: ldrb r0, [r4] adds r0, 0x1 strb r0, [r4] ldr r1, =gUnknown_0202406C lsls r0, 24 lsrs r0, 24 ldrb r1, [r1] cmp r0, r1 bcc _0804CFE2 b _0804D450 .pool _0804D0B0: ands r0, r1 cmp r0, 0 bne _0804D0B8 b _0804D450 _0804D0B8: ldr r0, =gUnknown_02024280 mov r8, r0 ldr r0, [r0] lsrs r5, r0, 28 ldr r6, =gBitTable ldr r0, [r6] ands r0, r5 cmp r0, 0 beq _0804D170 ldr r4, =gUnknown_02024064 strb r7, [r4] movs r0, 0 movs r1, 0x6 movs r2, 0x6 bl sub_80423F4 lsls r0, 24 cmp r0, 0 beq _0804D120 ldr r2, =gUnknown_02024210 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 _0804D170 .pool _0804D120: ldr r6, =gUnknown_0202437C 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 _0804D15C ldr r0, =gUnknown_0202449C ldr r0, [r0] adds r0, 0x5E ldrb r0, [r0] bl sub_804CF10 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 _0804D170 .pool _0804D15C: movs r0, 0 movs r1, 0x2 movs r2, 0 bl sub_8034464 ldrb r0, [r4] bl dp01_battle_side_mark_buffer_for_execution movs r0, 0x1 mov r9, r0 _0804D170: ldr r6, =gBitTable ldr r0, [r6, 0x8] ands r0, r5 cmp r0, 0 beq _0804D22E ldr r0, [r6] ands r0, r5 cmp r0, 0 bne _0804D22E ldr r4, =gUnknown_02024064 movs r0, 0x2 strb r0, [r4] movs r0, 0x2 movs r1, 0x6 movs r2, 0x6 bl sub_80423F4 lsls r0, 24 cmp r0, 0 beq _0804D1D8 ldr r2, =gUnknown_02024210 ldrb r0, [r4] lsls r0, 2 adds r0, r6 ldr r0, [r0] ldrb r1, [r2] orrs r0, r1 strb r0, [r2] ldr r2, =gUnknown_02024280 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 _0804D22E .pool _0804D1D8: ldr r6, =gUnknown_0202437C 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 _0804D214 ldr r0, =gUnknown_0202449C ldr r0, [r0] adds r0, 0x5C ldrb r0, [r0] bl sub_804CF10 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 _0804D22E .pool _0804D214: movs r0, 0x1 mov r1, r9 ands r0, r1 cmp r0, 0 bne _0804D22E movs r0, 0 movs r1, 0x2 movs r2, 0 bl sub_8034464 ldrb r0, [r4] bl dp01_battle_side_mark_buffer_for_execution _0804D22E: ldr r6, =gBitTable ldr r0, [r6, 0x4] ands r0, r5 cmp r0, 0 beq _0804D2E4 ldr r4, =gUnknown_02024064 movs r0, 0x1 strb r0, [r4] movs r0, 0x1 movs r1, 0x6 movs r2, 0x6 bl sub_80423F4 lsls r0, 24 cmp r0, 0 beq _0804D290 ldr r2, =gUnknown_02024210 ldrb r0, [r4] lsls r0, 2 adds r0, r6 ldr r0, [r0] ldrb r1, [r2] orrs r0, r1 strb r0, [r2] ldr r2, =gUnknown_02024280 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 _0804D2E4 .pool _0804D290: ldr r6, =gUnknown_0202437C 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 _0804D2CC ldr r0, =gUnknown_0202449C ldr r0, [r0] adds r0, 0x5F ldrb r0, [r0] bl sub_804CF10 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 _0804D2E4 .pool _0804D2CC: movs r0, 0 movs r1, 0x2 movs r2, 0 bl sub_8034464 ldrb r0, [r4] bl dp01_battle_side_mark_buffer_for_execution movs r0, 0x2 mov r2, r9 orrs r2, r0 mov r9, r2 _0804D2E4: ldr r6, =gBitTable ldr r0, [r6, 0xC] ands r0, r5 cmp r0, 0 beq _0804D3A2 ldr r0, [r6, 0x4] ands r0, r5 cmp r0, 0 bne _0804D3A2 ldr r4, =gUnknown_02024064 movs r0, 0x3 strb r0, [r4] movs r0, 0x3 movs r1, 0x6 movs r2, 0x6 bl sub_80423F4 lsls r0, 24 cmp r0, 0 beq _0804D34C ldr r2, =gUnknown_02024210 ldrb r0, [r4] lsls r0, 2 adds r0, r6 ldr r0, [r0] ldrb r1, [r2] orrs r0, r1 strb r0, [r2] ldr r2, =gUnknown_02024280 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 _0804D3A2 .pool _0804D34C: ldr r6, =gUnknown_0202437C 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 _0804D388 ldr r0, =gUnknown_0202449C ldr r0, [r0] adds r0, 0x5D ldrb r0, [r0] bl sub_804CF10 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 _0804D3A2 .pool _0804D388: movs r0, 0x2 mov r1, r9 ands r1, r0 cmp r1, 0 bne _0804D3A2 movs r0, 0 movs r1, 0x2 movs r2, 0 bl sub_8034464 ldrb r0, [r4] bl dp01_battle_side_mark_buffer_for_execution _0804D3A2: ldr r1, =gUnknown_0202437C ldrb r0, [r1] lsls r0, 25 cmp r0, 0 blt _0804D3FA adds r0, r1, 0 adds r0, 0x28 ldrb r0, [r0] lsls r0, 25 cmp r0, 0 blt _0804D3FA cmp r5, 0 beq _0804D3FA ldr r0, =gUnknown_02024210 ldrb r1, [r0] ldr r0, =gBitTable ldr r0, [r0] ands r1, r0 cmp r1, 0 beq _0804D3E4 ldr r1, =gUnknown_02024064 movs r0, 0x2 strb r0, [r1] b _0804D3E8 .pool _0804D3E4: ldr r0, =gUnknown_02024064 strb r1, [r0] _0804D3E8: movs r0, 0 movs r1, 0x2 movs r2, 0 bl sub_8034464 ldr r0, =gUnknown_02024064 ldrb r0, [r0] bl dp01_battle_side_mark_buffer_for_execution _0804D3FA: ldr r1, =gUnknown_0202437C ldrb r0, [r1, 0x14] lsls r0, 25 cmp r0, 0 blt _0804D450 adds r0, r1, 0 adds r0, 0x3C ldrb r0, [r0] lsls r0, 25 cmp r0, 0 blt _0804D450 cmp r5, 0 beq _0804D450 ldr r0, =gUnknown_02024210 ldrb r0, [r0] ldr r1, =gBitTable ldr r1, [r1, 0x4] ands r0, r1 cmp r0, 0 beq _0804D438 ldr r1, =gUnknown_02024064 movs r0, 0x3 b _0804D43C .pool _0804D438: ldr r1, =gUnknown_02024064 movs r0, 0x1 _0804D43C: strb r0, [r1] movs r0, 0 movs r1, 0x2 movs r2, 0 bl sub_8034464 ldr r0, =gUnknown_02024064 ldrb r0, [r0] bl dp01_battle_side_mark_buffer_for_execution _0804D450: ldr r1, =gUnknown_02024214 ldr r0, [r1] adds r0, 0x6 str r0, [r1] b _0804D804 .pool _0804D464: cmp r0, 0x6 beq _0804D46A b _0804D658 _0804D46A: ldr r0, =gBattleTypeFlags ldr r1, [r0] movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _0804D478 b _0804D5F4 _0804D478: movs r0, 0x1 ands r1, r0 cmp r1, 0 bne _0804D482 b _0804D5F4 _0804D482: ldr r7, =gUnknown_02024280 ldr r0, [r7] lsrs r5, r0, 28 ldr r4, =gBitTable ldr r0, [r4, 0x8] ands r0, r5 cmp r0, 0 beq _0804D52A ldr r0, [r4] ands r0, r5 cmp r0, 0 beq _0804D52A ldr r6, =gUnknown_02024064 movs r0, 0x2 strb r0, [r6] ldr r0, =gUnknown_02023864 ldrb r1, [r0, 0x1] movs r0, 0x2 movs r2, 0x6 bl sub_80423F4 lsls r0, 24 cmp r0, 0 beq _0804D4F8 ldr r2, =gUnknown_02024210 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 _0804D52A .pool _0804D4F8: ldr r4, =gUnknown_0202437C 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 _0804D52A ldr r0, =gUnknown_0202449C ldr r0, [r0] adds r0, 0x5C ldrb r0, [r0] bl sub_804CF10 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] _0804D52A: ldr r4, =gBitTable ldr r0, [r4, 0xC] ands r0, r5 cmp r0, 0 beq _0804D5DA ldr r0, [r4, 0x4] ands r5, r0 cmp r5, 0 beq _0804D5DA ldr r5, =gUnknown_02024064 movs r0, 0x3 strb r0, [r5] ldr r0, =gUnknown_02023864 ldr r2, =0x00000201 adds r0, r2 ldrb r1, [r0] movs r0, 0x3 movs r2, 0x6 bl sub_80423F4 lsls r0, 24 cmp r0, 0 beq _0804D5A8 ldr r2, =gUnknown_02024210 ldrb r0, [r5] lsls r0, 2 adds r0, r4 ldr r0, [r0] ldrb r1, [r2] orrs r0, r1 strb r0, [r2] ldr r2, =gUnknown_02024280 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 _0804D5DA .pool _0804D5A8: ldr r4, =gUnknown_0202437C 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 _0804D5DA ldr r0, =gUnknown_0202449C ldr r0, [r0] adds r0, 0x5D ldrb r0, [r0] bl sub_804CF10 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] _0804D5DA: ldr r1, =gUnknown_02024214 ldr r0, [r1] adds r0, 0x6 str r0, [r1] mov r12, r1 b _0804D5F8 .pool _0804D5F4: adds r0, r2, 0x6 str r0, [r6] _0804D5F8: ldr r0, =gUnknown_02024280 ldr r0, [r0] lsrs r5, r0, 28 ldr r1, =gUnknown_0202420D movs r0, 0 strb r0, [r1] ldr r4, =gBitTable ldr r2, [r4] ands r2, r5 ldr r6, =gUnknown_0202406C cmp r2, 0 bne _0804D634 adds r7, r6, 0 ldrb r0, [r6] cmp r2, r0 bcs _0804D634 adds r3, r1, 0 _0804D61A: 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 _0804D634 ldrb r0, [r7] cmp r2, r0 bcc _0804D61A _0804D634: ldrb r0, [r1] ldrb r6, [r6] cmp r0, r6 beq _0804D63E b _0804D804 _0804D63E: mov r1, r8 mov r2, r12 str r1, [r2] b _0804D804 .pool _0804D658: movs r0, 0x80 ands r0, r1 movs r5, 0x1 cmp r0, 0 beq _0804D664 movs r5, 0 _0804D664: movs r0, 0x7F ands r0, r1 bl get_battle_side_of_something lsls r0, 24 lsrs r7, r0, 24 ldr r1, =gUnknown_0202437C lsls r0, r7, 2 adds r0, r7 lsls r0, 2 adds r0, r1 ldrb r0, [r0] lsls r0, 25 cmp r0, 0 bge _0804D690 ldr r0, [r6] adds r0, 0x6 str r0, [r6] b _0804D804 .pool _0804D690: adds r0, r7, 0 movs r1, 0x6 movs r2, 0x6 bl sub_80423F4 lsls r0, 24 cmp r0, 0 beq _0804D6E0 ldr r2, =gUnknown_02024064 strb r7, [r2] ldr r3, =gUnknown_02024210 ldr r4, =gBitTable ldrb r0, [r2] lsls r0, 2 adds r0, r4 ldr r0, [r0] ldrb r1, [r3] orrs r0, r1 strb r0, [r3] ldr r3, =gUnknown_02024280 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 _0804D804 .pool _0804D6E0: ldr r4, =gUnknown_02024064 strb r7, [r4] ldrb r0, [r4] ldr r3, =gUnknown_0202449C ldr r1, [r3] adds r1, r0, r1 adds r1, 0x58 ldr r2, =gUnknown_0202406E lsls r0, 1 adds r0, r2 ldrh r0, [r0] strb r0, [r1] ldrb r0, [r4] ldr r1, [r3] adds r0, r1 adds r0, 0x5C movs r1, 0x6 strb r1, [r0] ldr r1, [r3] adds r1, 0x93 ldr r2, =gBitTable ldrb r0, [r4] lsls r0, 2 adds r0, r2 ldr r2, [r0] ldrb r0, [r1] bics r0, r2 strb r0, [r1] ldrb r1, [r4] movs r0, 0x2 eors r0, r1 ldr r3, [r3] adds r0, r3 adds r0, 0x5C ldrb r2, [r0] ldrb r1, [r4] lsls r0, r1, 1 adds r0, r1 adds r0, 0x60 adds r3, r0 str r3, [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 _0804D760 ldr r1, =gUnknown_03005D10 ldrb r0, [r1, 0x2] cmp r0, 0xFE bhi _0804D760 adds r0, 0x1 strb r0, [r1, 0x2] _0804D760: ldr r0, =gBattleTypeFlags ldr r0, [r0] movs r1, 0x40 ands r0, r1 cmp r0, 0 beq _0804D7C4 ldr r1, =gUnknown_02024064 movs r0, 0 strb r0, [r1] ldr r0, =gUnknown_0202406C ldrb r0, [r0] cmp r0, 0 beq _0804D804 adds r4, r1, 0 _0804D77C: ldrb r0, [r4] cmp r0, r7 beq _0804D792 movs r0, 0 movs r1, 0x2 movs r2, 0 bl sub_8034464 ldrb r0, [r4] bl dp01_battle_side_mark_buffer_for_execution _0804D792: ldrb r0, [r4] adds r0, 0x1 strb r0, [r4] ldr r1, =gUnknown_0202406C lsls r0, 24 lsrs r0, 24 ldrb r1, [r1] cmp r0, r1 bcc _0804D77C b _0804D804 .pool _0804D7C4: 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, =gUnknown_02024064 strb r0, [r4] ldr r0, =gUnknown_02024210 ldrb r1, [r0] ldr r2, =gBitTable ldrb r3, [r4] lsls r0, r3, 2 adds r0, r2 ldr r0, [r0] ands r1, r0 cmp r1, 0 beq _0804D7F4 movs r0, 0x2 eors r3, r0 strb r3, [r4] _0804D7F4: movs r0, 0 movs r1, 0x2 movs r2, 0 bl sub_8034464 ldrb r0, [r4] bl dp01_battle_side_mark_buffer_for_execution _0804D804: add sp, 0x4 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end atk50_openpartyscreen thumb_func_start atk51_cmd51 atk51_cmd51: @ 804D820 push {r4-r7,lr} ldr r0, =gUnknown_02024068 ldr r0, [r0] cmp r0, 0 beq _0804D82C b _0804DA8A _0804D82C: ldr r4, =gUnknown_02024214 ldr r0, [r4] ldrb r0, [r0, 0x1] bl get_battle_side_of_something ldr r5, =gUnknown_02024064 strb r0, [r5] ldr r0, [r4] ldrb r0, [r0, 0x2] cmp r0, 0x1 beq _0804D8CC cmp r0, 0x1 bgt _0804D858 cmp r0, 0 beq _0804D862 b _0804DA82 .pool _0804D858: cmp r0, 0x2 beq _0804D8E8 cmp r0, 0x3 beq _0804D922 b _0804DA82 _0804D862: movs r6, 0 ldr r0, =gUnknown_0202406C ldrb r0, [r0] cmp r6, r0 blt _0804D86E b _0804DA82 _0804D86E: ldr r7, =gUnknown_02023864 _0804D870: ldrb r0, [r7] cmp r0, 0x22 bne _0804D8AA ldr r5, =gUnknown_0202449C ldr r0, [r5] adds r0, r6, r0 adds r0, 0x5C ldrb r1, [r7, 0x1] strb r1, [r0] ldr r0, [r5] adds r0, 0x93 ldrb r1, [r0] ldr r2, =gBitTable lsls r0, r6, 2 adds r0, r2 ldr r4, [r0] ands r1, r4 cmp r1, 0 bne _0804D8AA lsls r0, r6, 24 lsrs r0, 24 ldrb r1, [r7, 0x1] bl sub_8184FBC ldr r1, [r5] adds r1, 0x93 ldrb r0, [r1] orrs r4, r0 strb r4, [r1] _0804D8AA: movs r0, 0x80 lsls r0, 2 adds r7, r0 adds r6, 0x1 ldr r0, =gUnknown_0202406C ldrb r0, [r0] cmp r6, r0 blt _0804D870 b _0804DA82 .pool _0804D8CC: ldr r0, =gBattleTypeFlags ldr r0, [r0] movs r1, 0x40 ands r0, r1 cmp r0, 0 beq _0804D8DA b _0804DA82 _0804D8DA: ldrb r0, [r5] bl sub_803BDA0 b _0804DA82 .pool _0804D8E8: ldr r4, =gUnknown_0202449C ldr r0, [r4] adds r0, 0x93 ldrb r1, [r0] ldr r6, =gBitTable ldrb r2, [r5] lsls r0, r2, 2 adds r0, r6 ldr r0, [r0] ands r1, r0 cmp r1, 0 bne _0804D922 ldr r0, =gUnknown_02023864 lsls r1, r2, 9 adds r0, 0x1 adds r1, r0 ldrb r1, [r1] adds r0, r2, 0 bl sub_8184FBC ldr r2, [r4] adds r2, 0x93 ldrb r0, [r5] lsls r0, 2 adds r0, r6 ldr r0, [r0] ldrb r1, [r2] orrs r0, r1 strb r0, [r2] _0804D922: ldr r1, =gUnknown_02024332 ldr r6, =gUnknown_02023864 ldr r7, =gUnknown_02024064 ldrb r0, [r7] lsls r0, 9 adds r2, r6, 0x1 adds r0, r2 ldrb r0, [r0] strb r0, [r1] ldrb r0, [r7] ldr r1, =gUnknown_0202449C mov r12, r1 ldr r1, [r1] adds r1, r0, r1 adds r1, 0x5C lsls r0, 9 adds r0, r2 ldrb r0, [r0] strb r0, [r1] ldr r0, =gBattleTypeFlags ldr r1, [r0] movs r0, 0x42 ands r0, r1 cmp r0, 0x42 bne _0804DA14 ldrb r0, [r7] mov r3, r12 ldr r2, [r3] lsls r1, r0, 1 adds r1, r0 adds r1, r2 adds r1, 0x60 ldrb r2, [r1] movs r0, 0xF ands r0, r2 strb r0, [r1] ldrb r0, [r7] ldr r2, [r3] lsls r1, r0, 1 adds r1, r0 adds r1, r2 adds r1, 0x60 lsls r0, 9 adds r5, r6, 0x2 adds r0, r5 ldrb r2, [r0] movs r3, 0xF0 adds r0, r3, 0 ands r0, r2 ldrb r2, [r1] orrs r0, r2 strb r0, [r1] ldrb r1, [r7] mov r0, r12 ldr r2, [r0] lsls r0, r1, 1 adds r0, r1 adds r0, r2 adds r0, 0x61 lsls r1, 9 adds r6, 0x3 adds r1, r6 ldrb r1, [r1] strb r1, [r0] ldrb r0, [r7] movs r4, 0x2 eors r0, r4 mov r1, r12 ldr r2, [r1] lsls r1, r0, 1 adds r1, r0 adds r1, r2 adds r1, 0x60 ldrb r2, [r1] adds r0, r3, 0 ands r0, r2 strb r0, [r1] ldrb r0, [r7] eors r0, r4 mov r1, r12 ldr r2, [r1] lsls r1, r0, 1 adds r1, r0 adds r1, r2 adds r1, 0x60 ldrb r0, [r7] lsls r0, 9 adds r0, r5 ldrb r0, [r0] ands r3, r0 lsrs r3, 4 ldrb r0, [r1] orrs r3, r0 strb r3, [r1] ldrb r0, [r7] eors r4, r0 mov r2, r12 ldr r0, [r2] lsls r1, r4, 1 adds r1, r4 adds r1, r0 adds r1, 0x62 ldrb r0, [r7] lsls r0, 9 adds r0, r6 ldrb r0, [r0] strb r0, [r1] b _0804DA36 .pool _0804DA14: movs r0, 0x80 lsls r0, 15 ands r1, r0 cmp r1, 0 beq _0804DA30 ldrb r0, [r7] mov r3, r12 ldr r1, [r3] adds r1, r0, r1 adds r1, 0x5C ldrb r1, [r1] bl sub_80571DC b _0804DA36 _0804DA30: ldrb r0, [r7] bl sub_803BDA0 _0804DA36: ldr r1, =gUnknown_02022F58 movs r5, 0xFD strb r5, [r1] movs r0, 0x6 strb r0, [r1, 0x1] ldr r4, =gBattleMons ldr r3, =gUnknown_0202420B 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, =gUnknown_02022F68 strb r5, [r2] movs r0, 0x7 strb r0, [r2, 0x1] ldr r3, =gUnknown_02024064 ldrb r0, [r3] strb r0, [r2, 0x2] ldr r1, =gUnknown_02023864 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] _0804DA82: ldr r1, =gUnknown_02024214 ldr r0, [r1] adds r0, 0x3 str r0, [r1] _0804DA8A: pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end atk51_cmd51 thumb_func_start atk52_cmd52 atk52_cmd52: @ 804DAAC push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x4 ldr r0, =gUnknown_02024214 mov r9, r0 ldr r0, [r0] ldrb r0, [r0, 0x1] bl get_battle_side_of_something ldr r4, =gUnknown_02024064 strb r0, [r4] ldrb r0, [r4] bl sub_803FA70 ldr r1, =gUnknown_02024280 mov r8, r1 ldr r1, =gBitTable ldrb r0, [r4] lsls r0, 2 adds r0, r1 ldr r1, [r0] lsls r1, 28 mov r2, r8 ldr r0, [r2] bics r0, r1 str r0, [r2] ldr r2, =gUnknown_0202437C 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, =gUnknown_0202428E lsls r0, 24 lsrs r0, 23 adds r0, r5 ldrh r1, [r0] movs r7, 0x80 lsls r7, 2 mov r10, r7 mov r0, r10 ands r0, r1 cmp r0, 0 beq _0804DB1C b _0804DC30 _0804DB1C: 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 bne _0804DB34 b _0804DC30 _0804DB34: ldr r7, =gBattleMons ldrb r2, [r4] movs r6, 0x58 adds r0, r2, 0 muls r0, r6 adds r1, r0, r7 adds r0, r1, 0 adds r0, 0x21 ldrb r0, [r0] cmp r0, 0x2 beq _0804DC30 adds r0, r1, 0 adds r0, 0x22 ldrb r0, [r0] cmp r0, 0x2 beq _0804DC30 adds r0, r1, 0 adds r0, 0x20 ldrb r0, [r0] cmp r0, 0x1A beq _0804DC30 adds r0, r2, 0 bl battle_side_get_owner lsls r0, 24 lsrs r0, 23 adds r0, r5 ldrh r2, [r0] mov r1, r10 orrs r1, r2 strh r1, [r0] ldrb r0, [r4] adds r2, r0, 0 muls r2, r6 adds r0, r7, 0 adds r0, 0x50 adds r2, r0 ldr r0, [r2] ldr r1, =0xfdffffff ands r0, r1 str r0, [r2] mov r1, r8 ldr r0, [r1] movs r2, 0x41 negs r2, r2 ands r0, r2 str r0, [r1] ldrb r0, [r4] bl battle_side_get_owner ldr r2, =gUnknown_02024294 lsls r0, 24 lsrs r0, 24 lsls r1, r0, 1 adds r1, r0 lsls r1, 2 adds r1, r2 ldrb r0, [r1, 0xA] movs r1, 0x5 subs r1, r0 lsls r1, 25 lsrs r1, 24 ldr r5, =gBattleMoveDamage ldrb r0, [r4] muls r0, r6 adds r0, r7 ldrh r0, [r0, 0x2C] bl __divsi3 str r0, [r5] cmp r0, 0 bne _0804DBC8 movs r0, 0x1 str r0, [r5] _0804DBC8: ldr r0, =gUnknown_02024474 ldrb r1, [r4] strb r1, [r0, 0x17] bl b_movescr_stack_push_cursor mov r7, r9 ldr r0, [r7] ldrb r0, [r0, 0x1] cmp r0, 0 bne _0804DC14 ldr r0, =gUnknown_082DAE90 str r0, [r7] b _0804DD8E .pool _0804DC14: cmp r0, 0x1 bne _0804DC24 ldr r0, =gUnknown_082DAE59 mov r1, r9 str r0, [r1] b _0804DD8E .pool _0804DC24: ldr r0, =gUnknown_082DAEC7 mov r2, r9 str r0, [r2] b _0804DD8E .pool _0804DC30: ldr r2, =gBattleMons ldr r1, =gUnknown_02024064 ldrb r3, [r1] movs r0, 0x58 muls r0, r3 adds r0, r2 adds r0, 0x20 ldrb r0, [r0] adds r5, r1, 0 ldr r4, =gUnknown_020242BC cmp r0, 0x36 bne _0804DC5E lsls r0, r3, 3 subs r0, r3 lsls r0, 2 adds r2, r0, r4 ldrb r1, [r2, 0x18] lsls r0, r1, 30 cmp r0, 0 blt _0804DC5E movs r0, 0x1 orrs r0, r1 strb r0, [r2, 0x18] _0804DC5E: ldrb r0, [r5] lsls r1, r0, 3 subs r1, r0 lsls r1, 2 adds r1, r4 ldrb r2, [r1, 0x18] movs r0, 0x3 negs r0, r0 ands r0, r2 strb r0, [r1, 0x18] ldrb r1, [r5] movs r0, 0 str r0, [sp] movs r2, 0 movs r3, 0 bl ability_something lsls r0, 24 cmp r0, 0 beq _0804DC88 b _0804DD8E _0804DC88: ldrb r1, [r5] movs r0, 0 movs r2, 0 bl berry_effects_maybe lsls r0, 24 cmp r0, 0 bne _0804DD8E ldrb r0, [r5] bl battle_side_get_owner ldr r1, =gUnknown_0202428E lsls r0, 24 lsrs r0, 23 adds r0, r1 ldrh r2, [r0] ldr r1, =0x0000fdff ands r1, r2 strh r1, [r0] movs r4, 0 ldr r0, =gUnknown_0202406C ldrb r7, [r0] cmp r4, r7 bge _0804DCD8 ldr r6, =gUnknown_0202407E adds r1, r5, 0 ldr r5, =gUnknown_0202407A movs r3, 0xC adds r2, r0, 0 _0804DCC2: adds r0, r4, r6 ldrb r0, [r0] ldrb r7, [r1] cmp r0, r7 bne _0804DCD0 adds r0, r4, r5 strb r3, [r0] _0804DCD0: adds r4, 0x1 ldrb r0, [r2] cmp r4, r0 blt _0804DCC2 _0804DCD8: movs r4, 0 ldr r0, =gUnknown_0202406C ldrb r0, [r0] cmp r4, r0 bge _0804DD0C ldr r6, =gUnknown_0202449C ldr r5, =gBattleMons _0804DCE6: lsls r0, r4, 24 lsrs r0, 24 bl battle_side_get_owner lsls r0, 24 lsrs r0, 23 adds r0, 0xA8 ldr r1, [r6] adds r1, r0 movs r0, 0x58 muls r0, r4 adds r0, r5 ldrh r0, [r0, 0x28] strh r0, [r1] adds r4, 0x1 ldr r0, =gUnknown_0202406C ldrb r0, [r0] cmp r4, r0 blt _0804DCE6 _0804DD0C: ldr r0, =gUnknown_02024214 ldr r1, [r0] ldrb r1, [r1, 0x1] adds r5, r0, 0 cmp r1, 0x5 bne _0804DD88 ldr r0, =gUnknown_02024280 ldr r0, [r0] lsrs r4, r0, 28 ldr r1, =gUnknown_0202420D ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] ldr r2, =gBitTable b _0804DD6E .pool _0804DD60: ldr r0, =gUnknown_0202406C ldrb r3, [r1] ldrb r0, [r0] cmp r3, r0 bcs _0804DD88 adds r0, r3, 0x1 strb r0, [r1] _0804DD6E: ldrb r0, [r1] lsls r0, 2 adds r0, r2 ldr r3, [r0] adds r0, r4, 0 ands r0, r3 cmp r0, 0 beq _0804DD60 ldr r0, =gUnknown_02024210 ldrb r0, [r0] ands r0, r3 cmp r0, 0 bne _0804DD60 _0804DD88: ldr r0, [r5] adds r0, 0x2 str r0, [r5] _0804DD8E: add sp, 0x4 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end atk52_cmd52 thumb_func_start sub_804DDA8 sub_804DDA8: @ 804DDA8 push {r4,r5,lr} ldr r5, =gUnknown_02024214 ldr r0, [r5] ldrb r0, [r0, 0x1] bl battle_get_side_with_given_state ldr r4, =gUnknown_02024064 strb r0, [r4] movs r0, 0 bl dp01_build_cmdbuf_x08_8_8_8 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 .pool thumb_func_end sub_804DDA8 thumb_func_start atk54_802511C atk54_802511C: @ 804DDD8 push {r4,r5,lr} ldr r5, =gUnknown_02024064 ldr r0, =gUnknown_0202420B ldrb r0, [r0] strb r0, [r5] ldr r4, =gUnknown_02024214 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 .pool thumb_func_end atk54_802511C thumb_func_start sub_804DE14 sub_804DE14: @ 804DE14 push {r4,r5,lr} ldr r5, =gUnknown_02024064 ldr r0, =gUnknown_0202420B ldrb r0, [r0] strb r0, [r5] ldr r4, =gUnknown_02024214 ldr r0, [r4] ldrb r1, [r0, 0x1] ldrb r0, [r0, 0x2] lsls r0, 8 orrs r1, r0 movs r0, 0 movs r2, 0 bl sub_8034300 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 .pool thumb_func_end sub_804DE14 thumb_func_start atk56_8025194 atk56_8025194: @ 804DE50 push {r4,r5,lr} ldr r5, =gUnknown_02024214 ldr r0, [r5] ldrb r0, [r0, 0x1] bl get_battle_side_of_something ldr r4, =gUnknown_02024064 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 .pool thumb_func_end atk56_8025194 thumb_func_start atk57_80251C4_flee atk57_80251C4_flee: @ 804DE80 push {r4,lr} movs r0, 0 bl battle_get_side_with_given_state ldr r4, =gUnknown_02024064 strb r0, [r4] ldr r0, =gUnknown_0202433A 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, =gUnknown_02024214 ldr r0, [r1] adds r0, 0x1 str r0, [r1] pop {r4} pop {r0} bx r0 .pool thumb_func_end atk57_80251C4_flee thumb_func_start atk58_cmd58 atk58_cmd58: @ 804DEB8 push {r4,r5,lr} ldr r5, =gUnknown_02024214 ldr r0, [r5] ldrb r0, [r0, 0x1] bl get_battle_side_of_something ldr r4, =gUnknown_02024064 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 .pool thumb_func_end atk58_cmd58 thumb_func_start atk59_8025230 atk59_8025230: @ 804DEEC push {r4-r7,lr} ldr r0, =gUnknown_02024214 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, =gUnknown_0202449C ldr r0, [r0] ldrb r1, [r0, 0x10] movs r0, 0x64 muls r0, r1 ldr r1, =gPlayerParty adds r0, r1 ldrb r1, [r2, 0x9] bl sub_8069318 lsls r0, 16 lsrs r5, r0, 16 ldr r0, =0x0000fffe cmp r5, r0 bne _0804DF56 adds r7, r5, 0 _0804DF3A: ldr r0, =gUnknown_0202449C ldr r0, [r0] ldrb r1, [r0, 0x10] movs r0, 0x64 muls r0, r1 ldr r1, =gPlayerParty adds r0, r1 movs r1, 0 bl sub_8069318 lsls r0, 16 lsrs r5, r0, 16 cmp r5, r7 beq _0804DF3A _0804DF56: cmp r5, 0 bne _0804DF70 ldr r0, =gUnknown_02024214 str r4, [r0] b _0804E018 .pool _0804DF70: ldr r0, =0x0000ffff cmp r5, r0 bne _0804DF88 ldr r1, =gUnknown_02024214 ldr r0, [r1] adds r0, 0xA str r0, [r1] b _0804E018 .pool _0804DF88: movs r0, 0 bl battle_get_side_with_given_state ldr r1, =gUnknown_02024064 strb r0, [r1] ldr r2, =gUnknown_0202406E ldrb r3, [r1] lsls r0, r3, 1 adds r0, r2 ldr r1, =gUnknown_0202449C ldr r1, [r1] ldrh r0, [r0] ldrb r1, [r1, 0x10] cmp r0, r1 bne _0804DFC8 ldr r4, =gBattleMons movs r0, 0x58 adds r2, r3, 0 muls r2, r0 adds r0, r4, 0 adds r0, 0x50 adds r0, r2, r0 ldr r0, [r0] movs r1, 0x80 lsls r1, 14 ands r0, r1 cmp r0, 0 bne _0804DFC8 adds r0, r2, r4 adds r1, r5, 0 bl sub_80691B0 _0804DFC8: ldr r0, =gBattleTypeFlags ldr r0, [r0] movs r1, 0x1 ands r0, r1 cmp r0, 0 beq _0804E014 movs r0, 0x2 bl battle_get_side_with_given_state ldr r1, =gUnknown_02024064 strb r0, [r1] ldr r2, =gUnknown_0202406E ldrb r3, [r1] lsls r0, r3, 1 adds r0, r2 ldr r1, =gUnknown_0202449C ldr r1, [r1] ldrh r0, [r0] ldrb r1, [r1, 0x10] cmp r0, r1 bne _0804E014 ldr r4, =gBattleMons movs r0, 0x58 adds r2, r3, 0 muls r2, r0 adds r0, r4, 0 adds r0, 0x50 adds r0, r2, r0 ldr r0, [r0] movs r1, 0x80 lsls r1, 14 ands r0, r1 cmp r0, 0 bne _0804E014 adds r0, r2, r4 adds r1, r5, 0 bl sub_80691B0 _0804E014: ldr r0, =gUnknown_02024214 str r6, [r0] _0804E018: pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end atk59_8025230 thumb_func_start sub_804E038 sub_804E038: @ 804E038 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x4 ldr r0, =gUnknown_02024064 movs r1, 0 strb r1, [r0] ldr r0, =gUnknown_02024474 ldrb r1, [r0, 0x1F] adds r2, r0, 0 cmp r1, 0x6 bls _0804E052 b _0804E3B8 _0804E052: lsls r0, r1, 2 ldr r1, =_0804E068 adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _0804E068: .4byte _0804E084 .4byte _0804E0BC .4byte _0804E162 .4byte _0804E1B8 .4byte _0804E1E4 .4byte _0804E38C .4byte _0804E3AC _0804E084: movs r4, 0 str r4, [sp] movs r0, 0x18 movs r1, 0x8 movs r2, 0x1D movs r3, 0xD bl sub_8056A3C ldr r0, =gUnknown_085CCABB movs r1, 0xC bl battle_show_message_maybe ldr r1, =gUnknown_02024474 ldrb r0, [r1, 0x1F] adds r0, 0x1 strb r0, [r1, 0x1F] ldr r0, =gUnknown_02024332 strb r4, [r0, 0x1] movs r0, 0 bl sub_8056B74 b _0804E3B8 .pool _0804E0BC: ldr r0, =gMain ldrh r1, [r0, 0x2E] movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _0804E0E4 ldr r4, =gUnknown_02024332 ldrb r0, [r4, 0x1] cmp r0, 0 beq _0804E0E4 movs r0, 0x5 bl audio_play ldrb r0, [r4, 0x1] bl sub_8056BAC movs r0, 0 strb r0, [r4, 0x1] bl sub_8056B74 _0804E0E4: ldr r0, =gMain ldrh r1, [r0, 0x2E] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _0804E10C ldr r4, =gUnknown_02024332 ldrb r0, [r4, 0x1] cmp r0, 0 bne _0804E10C movs r0, 0x5 bl audio_play ldrb r0, [r4, 0x1] bl sub_8056BAC movs r0, 0x1 strb r0, [r4, 0x1] bl sub_8056B74 _0804E10C: ldr r0, =gMain ldrh r1, [r0, 0x2E] movs r5, 0x1 adds r0, r5, 0 ands r0, r1 cmp r0, 0 beq _0804E150 movs r0, 0x5 bl audio_play ldr r0, =gUnknown_02024332 ldrb r4, [r0, 0x1] cmp r4, 0 bne _0804E20A str r5, [sp] movs r0, 0x18 movs r1, 0x8 movs r2, 0x1D movs r3, 0xD bl sub_8056A3C movs r0, 0x1 negs r0, r0 str r4, [sp] movs r1, 0 movs r2, 0 movs r3, 0x10 bl pal_fade_maybe b _0804E192 .pool _0804E150: movs r0, 0x2 ands r0, r1 cmp r0, 0 bne _0804E15A b _0804E3B8 _0804E15A: movs r0, 0x5 bl audio_play b _0804E20A _0804E162: ldr r0, =gUnknown_02037FD4 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _0804E170 b _0804E3B8 _0804E170: bl FreeAllWindowBuffers ldr r0, =gPlayerParty ldr r1, =gUnknown_0202449C ldr r1, [r1] ldrb r1, [r1, 0x10] ldr r2, =gUnknown_020244E9 ldrb r2, [r2] subs r2, 0x1 lsls r2, 24 lsrs r2, 24 ldr r3, =sub_80A92F8 ldr r4, =gUnknown_020244E2 ldrh r4, [r4] str r4, [sp] bl sub_81BFA38 _0804E192: ldr r1, =gUnknown_02024474 ldrb r0, [r1, 0x1F] adds r0, 0x1 strb r0, [r1, 0x1F] b _0804E3B8 .pool _0804E1B8: ldr r0, =gUnknown_02037FD4 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _0804E1C6 b _0804E3B8 _0804E1C6: ldr r0, =gMain ldr r1, [r0, 0x4] ldr r0, =sub_8038420 cmp r1, r0 beq _0804E1D2 b _0804E3B8 _0804E1D2: ldrb r0, [r2, 0x1F] adds r0, 0x1 b _0804E3B6 .pool _0804E1E4: ldr r0, =gUnknown_02037FD4 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _0804E1F2 b _0804E3B8 _0804E1F2: ldr r0, =gMain ldr r1, [r0, 0x4] ldr r0, =sub_8038420 cmp r1, r0 beq _0804E1FE b _0804E3B8 _0804E1FE: bl sub_81C1B94 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0x4 bne _0804E224 _0804E20A: ldr r1, =gUnknown_02024474 movs r0, 0x5 strb r0, [r1, 0x1F] b _0804E3B8 .pool _0804E224: ldr r6, =gUnknown_0202449C ldr r0, [r6] ldrb r0, [r0, 0x10] movs r1, 0x64 mov r8, r1 mov r1, r8 muls r1, r0 adds r0, r1, 0 ldr r7, =gPlayerParty adds r0, r7 adds r1, r5, 0 adds r1, 0xD bl GetMonData lsls r0, 16 lsrs r4, r0, 16 adds r0, r4, 0 bl sub_806E804 cmp r0, 0 beq _0804E274 ldr r0, =0x0000013f ldr r1, =gUnknown_02024064 ldrb r1, [r1] bl b_std_message ldr r1, =gUnknown_02024474 movs r0, 0x6 strb r0, [r1, 0x1F] b _0804E3B8 .pool _0804E274: ldr r3, =gUnknown_02024214 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, =gUnknown_02022F68 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] ldr r0, [r6] ldrb r0, [r0, 0x10] mov r1, r8 muls r1, r0 adds r0, r1, 0 adds r0, r7 adds r1, r5, 0 bl sub_806B9A8 ldr r0, [r6] ldrb r0, [r0, 0x10] mov r1, r8 muls r1, r0 adds r0, r1, 0 adds r0, r7 ldr r7, =gUnknown_020244E2 ldrh r1, [r7] adds r2, r5, 0 bl sub_80691F4 ldr r0, =gUnknown_0202406E ldr r1, [r6] ldrh r0, [r0] ldrb r1, [r1, 0x10] cmp r0, r1 bne _0804E30A ldr r4, =gBattleMons ldr r0, [r4, 0x50] movs r1, 0x80 lsls r1, 14 ands r0, r1 cmp r0, 0 bne _0804E30A ldr r0, =gUnknown_020242BC ldrb r1, [r0, 0x18] lsrs r1, 4 ldr r2, =gBitTable lsls r0, r5, 2 adds r0, r2 ldr r0, [r0] ands r1, r0 cmp r1, 0 bne _0804E30A adds r0, r4, 0 adds r1, r5, 0 bl sub_806B9E4 ldrh r1, [r7] adds r0, r4, 0 adds r2, r5, 0 bl sub_8069234 _0804E30A: ldr r0, =gBattleTypeFlags ldr r0, [r0] movs r1, 0x1 ands r0, r1 cmp r0, 0 beq _0804E3B8 ldr r2, =gUnknown_0202406E ldr r0, =gUnknown_0202449C ldr r1, [r0] ldrh r0, [r2, 0x4] ldrb r1, [r1, 0x10] cmp r0, r1 bne _0804E3B8 ldr r4, =gBattleMons 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 _0804E3B8 ldr r0, =gUnknown_020242BC adds r0, 0x50 ldrb r1, [r0] lsrs r1, 4 ldr r2, =gBitTable lsls r0, r5, 2 adds r0, r2 ldr r0, [r0] ands r1, r0 cmp r1, 0 bne _0804E3B8 adds r4, 0xB0 adds r0, r4, 0 adds r1, r5, 0 bl sub_806B9E4 ldr r0, =gUnknown_020244E2 ldrh r1, [r0] adds r0, r4, 0 adds r2, r5, 0 bl sub_8069234 b _0804E3B8 .pool _0804E38C: movs r0, 0x1 str r0, [sp] movs r0, 0x18 movs r1, 0x8 movs r2, 0x1D movs r3, 0xD bl sub_8056A3C ldr r1, =gUnknown_02024214 ldr r0, [r1] adds r0, 0x5 str r0, [r1] b _0804E3B8 .pool _0804E3AC: ldr r0, =gUnknown_02024068 ldr r0, [r0] cmp r0, 0 bne _0804E3B8 movs r0, 0x2 _0804E3B6: strb r0, [r2, 0x1F] _0804E3B8: add sp, 0x4 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_804E038 thumb_func_start atk5B_80256E0 atk5B_80256E0: @ 804E3C8 push {r4,r5,lr} sub sp, 0x4 ldr r5, =gUnknown_02024474 ldrb r4, [r5, 0x1F] cmp r4, 0 beq _0804E3E0 cmp r4, 0x1 beq _0804E410 b _0804E4FA .pool _0804E3E0: str r4, [sp] movs r0, 0x18 movs r1, 0x8 movs r2, 0x1D movs r3, 0xD bl sub_8056A3C ldr r0, =gUnknown_085CCABB movs r1, 0xC bl battle_show_message_maybe ldrb r0, [r5, 0x1F] adds r0, 0x1 strb r0, [r5, 0x1F] ldr r0, =gUnknown_02024332 strb r4, [r0, 0x1] movs r0, 0 bl sub_8056B74 b _0804E4FA .pool _0804E410: ldr r0, =gMain ldrh r1, [r0, 0x2E] movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _0804E438 ldr r4, =gUnknown_02024332 ldrb r0, [r4, 0x1] cmp r0, 0 beq _0804E438 movs r0, 0x5 bl audio_play ldrb r0, [r4, 0x1] bl sub_8056BAC movs r0, 0 strb r0, [r4, 0x1] bl sub_8056B74 _0804E438: ldr r0, =gMain ldrh r1, [r0, 0x2E] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _0804E460 ldr r4, =gUnknown_02024332 ldrb r0, [r4, 0x1] cmp r0, 0 bne _0804E460 movs r0, 0x5 bl audio_play ldrb r0, [r4, 0x1] bl sub_8056BAC movs r0, 0x1 strb r0, [r4, 0x1] bl sub_8056B74 _0804E460: ldr r0, =gMain ldrh r1, [r0, 0x2E] movs r4, 0x1 adds r0, r4, 0 ands r0, r1 cmp r0, 0 beq _0804E4C4 movs r0, 0x5 bl audio_play ldr r0, =gUnknown_02024332 ldrb r0, [r0, 0x1] cmp r0, 0 beq _0804E4A4 ldr r3, =gUnknown_02024214 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 _0804E4AC .pool _0804E4A4: ldr r1, =gUnknown_02024214 ldr r0, [r1] adds r0, 0x5 str r0, [r1] _0804E4AC: movs r0, 0x1 str r0, [sp] movs r0, 0x18 movs r1, 0x8 movs r2, 0x1D movs r3, 0xD bl sub_8056A3C b _0804E4FA .pool _0804E4C4: movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _0804E4FA movs r0, 0x5 bl audio_play ldr r3, =gUnknown_02024214 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] str r4, [sp] movs r0, 0x18 movs r1, 0x8 movs r2, 0x1D movs r3, 0xD bl sub_8056A3C _0804E4FA: add sp, 0x4 pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end atk5B_80256E0 thumb_func_start atk5C_cmd5c atk5C_cmd5c: @ 804E508 push {r4,lr} ldr r4, =gUnknown_02024214 ldr r0, [r4] ldrb r0, [r0, 0x1] bl get_battle_side_of_something ldr r2, =gUnknown_02024064 strb r0, [r2] ldr r0, =gBattleMoveFlags ldrb r1, [r0] movs r0, 0x29 ands r0, r1 cmp r0, 0 bne _0804E58C ldr r0, =gUnknown_02024280 ldr r0, [r0] movs r1, 0x80 lsls r1, 1 ands r0, r1 cmp r0, 0 beq _0804E55A ldr r1, =gBattleMons 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 _0804E55A ldr r0, =gUnknown_020242BC lsls r1, r2, 3 subs r1, r2 lsls r1, 2 adds r1, r0 ldrb r0, [r1, 0xA] cmp r0, 0 bne _0804E58C _0804E55A: movs r0, 0 bl dp01_build_cmdbuf_x29_29_29_29 ldr r0, =gUnknown_02024064 ldrb r0, [r0] bl dp01_battle_side_mark_buffer_for_execution ldr r1, =gUnknown_02024214 ldr r0, [r1] adds r0, 0x2 str r0, [r1] b _0804E592 .pool _0804E58C: ldr r0, [r4] adds r0, 0x2 str r0, [r4] _0804E592: pop {r4} pop {r0} bx r0 thumb_func_end atk5C_cmd5c thumb_func_start sub_804E598 sub_804E598: @ 804E598 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} lsls r0, 16 lsrs r6, r0, 16 movs r7, 0 movs r5, 0 movs r0, 0x80 lsls r0, 3 cmp r6, r0 bne _0804E5D8 ldr r0, =gUnknown_020244A8 ldr r0, [r0] ldr r0, [r0] adds r0, 0x94 ldrb r2, [r0] ldr r0, =gUnknown_0202449C ldr r0, [r0] adds r0, 0x4A ldrb r1, [r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 2 muls r0, r2 b _0804E6CA .pool _0804E5D8: ldr r0, =gTrainers lsls r2, r6, 2 adds r1, r2, r6 lsls r1, 3 adds r4, r1, r0 ldrb r3, [r4] mov r12, r0 cmp r3, 0x1 beq _0804E62E cmp r3, 0x1 bgt _0804E5F8 cmp r3, 0 beq _0804E602 b _0804E644 .pool _0804E5F8: cmp r3, 0x2 beq _0804E618 cmp r3, 0x3 beq _0804E62E b _0804E644 _0804E602: mov r0, r12 adds r0, 0x24 adds r0, r1, r0 ldr r1, [r0] adds r0, r4, 0 adds r0, 0x20 ldrb r0, [r0] lsls r0, 3 adds r0, r1 subs r0, 0x8 b _0804E642 _0804E618: mov r0, r12 adds r0, 0x24 adds r0, r1, r0 ldr r1, [r0] adds r0, r4, 0 adds r0, 0x20 ldrb r0, [r0] lsls r0, 3 adds r0, r1 subs r0, 0x8 b _0804E642 _0804E62E: mov r0, r12 adds r0, 0x24 adds r0, r1, r0 ldr r1, [r0] adds r0, r4, 0 adds r0, 0x20 ldrb r0, [r0] lsls r0, 4 adds r0, r1 subs r0, 0x10 _0804E642: ldrb r5, [r0, 0x2] _0804E644: ldr r1, =gUnknown_0831AEB8 lsls r0, r7, 2 adds r4, r0, r1 ldrb r3, [r4] ldr r0, =gUnknown_0202449C mov r8, r0 mov r9, r1 ldr r1, =gBattleTypeFlags mov r10, r1 cmp r3, 0xFF beq _0804E67A adds r0, r2, r6 lsls r0, 3 add r0, r12 ldrb r1, [r0, 0x1] cmp r3, r1 beq _0804E67A adds r2, r0, 0 adds r0, r4, 0 _0804E66A: adds r0, 0x4 adds r7, 0x1 ldrb r1, [r0] cmp r1, 0xFF beq _0804E67A ldrb r3, [r2, 0x1] cmp r1, r3 bne _0804E66A _0804E67A: mov r0, r10 ldr r1, [r0] movs r0, 0x80 lsls r0, 8 ands r0, r1 cmp r0, 0 bne _0804E6B4 movs r0, 0x1 ands r1, r0 cmp r1, 0 beq _0804E6B4 mov r3, r8 ldr r0, [r3] adds r0, 0x4A ldrb r0, [r0] lsls r0, 2 adds r1, r5, 0 muls r1, r0 lsls r0, r7, 2 add r0, r9 ldrb r0, [r0, 0x1] lsls r0, 1 b _0804E6C8 .pool _0804E6B4: mov r1, r8 ldr r0, [r1] adds r0, 0x4A ldrb r0, [r0] lsls r0, 2 adds r1, r5, 0 muls r1, r0 lsls r0, r7, 2 add r0, r9 ldrb r0, [r0, 0x1] _0804E6C8: muls r0, r1 _0804E6CA: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_804E598 thumb_func_start sub_804E6D8 sub_804E6D8: @ 804E6D8 push {r4,lr} ldr r0, =gUnknown_02038BCA ldrh r0, [r0] bl sub_804E598 adds r4, r0, 0 ldr r0, =gBattleTypeFlags ldr r0, [r0] movs r1, 0x80 lsls r1, 8 ands r0, r1 cmp r0, 0 beq _0804E6FC ldr r0, =gUnknown_02038BCC ldrh r0, [r0] bl sub_804E598 adds r4, r0 _0804E6FC: ldr r0, =gSaveBlock1Ptr ldr r0, [r0] movs r1, 0x92 lsls r1, 3 adds r0, r1 adds r1, r4, 0 bl add_money ldr r1, =gUnknown_02022F58 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, =gUnknown_02024214 ldr r0, [r1] adds r0, 0x1 str r0, [r1] pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_804E6D8 thumb_func_start atk5E_8025A70 atk5E_8025A70: @ 804E764 push {r4-r7,lr} mov r7, r8 push {r7} ldr r4, =gUnknown_02024214 ldr r0, [r4] ldrb r0, [r0, 0x1] bl get_battle_side_of_something ldr r6, =gUnknown_02024064 strb r0, [r6] ldr r5, =gUnknown_02024332 ldrb r0, [r5] mov r8, r4 cmp r0, 0 beq _0804E794 cmp r0, 0x1 beq _0804E7AC b _0804E800 .pool _0804E794: 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 _0804E800 _0804E7AC: ldr r0, =gUnknown_02024068 ldr r0, [r0] cmp r0, 0 bne _0804E800 ldrb r0, [r6] lsls r0, 9 ldr r1, =gUnknown_02023868 adds r0, r1 mov r12, r0 movs r2, 0 adds r4, r6, 0 movs r5, 0x58 ldr r6, =gUnknown_020240A8 adds r7, r6, 0 subs r7, 0x18 mov r3, r12 adds r3, 0xC _0804E7CE: 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 _0804E7CE mov r1, r8 ldr r0, [r1] adds r0, 0x2 str r0, [r1] _0804E800: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end atk5E_8025A70 thumb_func_start atk5F_8025B24 atk5F_8025B24: @ 804E818 push {lr} ldr r0, =gUnknown_02024064 ldr r2, =gUnknown_0202420B ldrb r3, [r2] strb r3, [r0] ldr r1, =gEnemyMonIndex ldrb r0, [r1] strb r0, [r2] strb r3, [r1] ldr r2, =gUnknown_02024280 ldr r1, [r2] movs r3, 0x80 lsls r3, 5 adds r0, r1, 0 ands r0, r3 cmp r0, 0 beq _0804E854 ldr r0, =0xffffefff ands r1, r0 b _0804E856 .pool _0804E854: orrs r1, r3 _0804E856: str r1, [r2] ldr r1, =gUnknown_02024214 ldr r0, [r1] adds r0, 0x1 str r0, [r1] pop {r0} bx r0 .pool thumb_func_end atk5F_8025B24 thumb_func_start atk60_cmd60 atk60_cmd60: @ 804E868 push {lr} ldr r0, =gUnknown_0202420B ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 bne _0804E882 ldr r0, =gUnknown_02024214 ldr r0, [r0] ldrb r0, [r0, 0x1] bl sav12_xor_increment _0804E882: ldr r1, =gUnknown_02024214 ldr r0, [r1] adds r0, 0x2 str r0, [r1] pop {r0} bx r0 .pool thumb_func_end atk60_cmd60 thumb_func_start atk61_8025BA4 atk61_8025BA4: @ 804E898 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x30 ldr r0, =gUnknown_02024068 ldr r0, [r0] cmp r0, 0 bne _0804E94C ldr r0, =gUnknown_02024214 ldr r0, [r0] ldrb r0, [r0, 0x1] bl get_battle_side_of_something ldr r1, =gUnknown_02024064 strb r0, [r1] ldrb r0, [r1] bl battle_side_get_owner lsls r0, 24 ldr r1, =gEnemyParty mov r8, r1 cmp r0, 0 bne _0804E8CA ldr r0, =gPlayerParty mov r8, r0 _0804E8CA: movs r7, 0 add r6, sp, 0x4 mov r5, sp _0804E8D0: movs r0, 0x64 muls r0, r7 mov r1, r8 adds r4, r1, r0 adds r0, r4, 0 movs r1, 0x41 bl GetMonData cmp r0, 0 beq _0804E8F4 adds r0, r4, 0 movs r1, 0x41 bl GetMonData movs r1, 0xCE lsls r1, 1 cmp r0, r1 bne _0804E914 _0804E8F4: ldr r0, =0x0000ffff strh r0, [r5] movs r0, 0 b _0804E926 .pool _0804E914: adds r0, r4, 0 movs r1, 0x39 bl GetMonData strh r0, [r5] adds r0, r4, 0 movs r1, 0x37 bl GetMonData _0804E926: str r0, [r6] adds r6, 0x8 adds r5, 0x8 adds r7, 0x1 cmp r7, 0x5 ble _0804E8D0 movs r0, 0 mov r1, sp movs r2, 0x1 bl dp01_build_cmdbuf_x30_TODO ldr r0, =gUnknown_02024064 ldrb r0, [r0] bl dp01_battle_side_mark_buffer_for_execution ldr r1, =gUnknown_02024214 ldr r0, [r1] adds r0, 0x2 str r0, [r1] _0804E94C: add sp, 0x30 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end atk61_8025BA4 thumb_func_start atk62_08025C6C atk62_08025C6C: @ 804E960 push {r4,r5,lr} ldr r5, =gUnknown_02024214 ldr r0, [r5] ldrb r0, [r0, 0x1] bl get_battle_side_of_something ldr r4, =gUnknown_02024064 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 .pool thumb_func_end atk62_08025C6C thumb_func_start atk63_jumptoattack atk63_jumptoattack: @ 804E990 push {r4,lr} ldr r0, =gUnknown_02024214 ldr r1, [r0] ldrb r1, [r1, 0x1] adds r4, r0, 0 cmp r1, 0 beq _0804E9B4 ldr r0, =gUnknown_020241EA ldr r1, =gUnknown_020241EE ldrh r1, [r1] strh r1, [r0] b _0804E9C2 .pool _0804E9B4: ldr r2, =gUnknown_020241EC ldr r1, =gUnknown_020241EA ldr r0, =gUnknown_020241EE ldrh r0, [r0] strh r0, [r1] strh r0, [r2] adds r0, r1, 0 _0804E9C2: ldr r3, =gUnknown_082D86A8 ldr r2, =gBattleMoves 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 .pool thumb_func_end atk63_jumptoattack thumb_func_start atk64_statusanimation atk64_statusanimation: @ 804E9F4 push {r4,lr} ldr r0, =gUnknown_02024068 ldr r0, [r0] cmp r0, 0 bne _0804EA5C ldr r0, =gUnknown_02024214 ldr r0, [r0] ldrb r0, [r0, 0x1] bl get_battle_side_of_something ldr r4, =gUnknown_02024064 strb r0, [r4] ldr r1, =gUnknown_020242AC ldrb r2, [r4] lsls r0, r2, 2 adds r0, r1 ldr r0, [r0] ldr r1, =0x000400c0 ands r0, r1 cmp r0, 0 bne _0804EA54 ldr r0, =gUnknown_020242BC lsls r1, r2, 3 subs r1, r2 lsls r1, 2 adds r1, r0 ldrb r0, [r1, 0xA] cmp r0, 0 bne _0804EA54 ldr r0, =gUnknown_02024280 ldr r0, [r0] movs r1, 0x80 ands r0, r1 cmp r0, 0 bne _0804EA54 ldr r1, =gBattleMons 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 _0804EA54: ldr r1, =gUnknown_02024214 ldr r0, [r1] adds r0, 0x2 str r0, [r1] _0804EA5C: pop {r4} pop {r0} bx r0 .pool thumb_func_end atk64_statusanimation thumb_func_start atk65_8025D90 atk65_8025D90: @ 804EA84 push {r4,r5,lr} ldr r0, =gUnknown_02024068 ldr r0, [r0] cmp r0, 0 bne _0804EB04 ldr r4, =gUnknown_02024214 ldr r0, [r4] ldrb r0, [r0, 0x1] bl get_battle_side_of_something ldr r5, =gUnknown_02024064 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, =gUnknown_020242AC ldrb r2, [r5] lsls r0, r2, 2 adds r0, r1 ldr r0, [r0] ldr r1, =0x000400c0 ands r0, r1 cmp r0, 0 bne _0804EAFC ldr r0, =gUnknown_020242BC lsls r1, r2, 3 subs r1, r2 lsls r1, 2 adds r1, r0 ldrb r0, [r1, 0xA] cmp r0, 0 bne _0804EAFC ldr r0, =gUnknown_02024280 ldr r0, [r0] movs r1, 0x80 ands r0, r1 cmp r0, 0 bne _0804EAFC ldr r1, =gBattleMons 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 _0804EAFC: ldr r1, =gUnknown_02024214 ldr r0, [r1] adds r0, 0x6 str r0, [r1] _0804EB04: pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end atk65_8025D90 thumb_func_start atk66_8025E38 atk66_8025E38: @ 804EB2C push {r4,r5,lr} ldr r0, =gUnknown_02024068 ldr r0, [r0] cmp r0, 0 bne _0804EB9E ldr r4, =gUnknown_02024214 ldr r0, [r4] ldrb r0, [r0, 0x1] bl get_battle_side_of_something ldr r5, =gUnknown_02024064 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, =gUnknown_020242AC ldrb r3, [r5] lsls r0, r3, 2 adds r0, r1 ldr r0, [r0] ldr r1, =0x000400c0 ands r0, r1 cmp r0, 0 bne _0804EB96 ldr r0, =gUnknown_020242BC lsls r1, r3, 3 subs r1, r3 lsls r1, 2 adds r1, r0 ldrb r0, [r1, 0xA] cmp r0, 0 bne _0804EB96 ldr r0, =gUnknown_02024280 ldr r0, [r0] movs r1, 0x80 ands r0, r1 cmp r0, 0 bne _0804EB96 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 _0804EB96: ldr r1, =gUnknown_02024214 ldr r0, [r1] adds r0, 0x7 str r0, [r1] _0804EB9E: pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end atk66_8025E38 thumb_func_start atk67_8025ECC atk67_8025ECC: @ 804EBC0 push {r4,r5,lr} sub sp, 0x4 ldr r5, =gUnknown_02024332 ldrb r4, [r5] cmp r4, 0 beq _0804EBD8 cmp r4, 0x1 beq _0804EC04 b _0804EC96 .pool _0804EBD8: str r4, [sp] movs r0, 0x18 movs r1, 0x8 movs r2, 0x1D movs r3, 0xD bl sub_8056A3C ldr r0, =gUnknown_085CCABB movs r1, 0xC bl battle_show_message_maybe ldrb r0, [r5] adds r0, 0x1 strb r0, [r5] strb r4, [r5, 0x1] movs r0, 0 bl sub_8056B74 b _0804EC96 .pool _0804EC04: ldr r0, =gMain ldrh r1, [r0, 0x2E] movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _0804EC2A ldrb r0, [r5, 0x1] cmp r0, 0 beq _0804EC2A movs r0, 0x5 bl audio_play ldrb r0, [r5, 0x1] bl sub_8056BAC movs r0, 0 strb r0, [r5, 0x1] bl sub_8056B74 _0804EC2A: ldr r0, =gMain ldrh r1, [r0, 0x2E] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _0804EC52 ldr r4, =gUnknown_02024332 ldrb r0, [r4, 0x1] cmp r0, 0 bne _0804EC52 movs r0, 0x5 bl audio_play ldrb r0, [r4, 0x1] bl sub_8056BAC movs r0, 0x1 strb r0, [r4, 0x1] bl sub_8056B74 _0804EC52: ldr r0, =gMain ldrh r1, [r0, 0x2E] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _0804EC70 ldr r0, =gUnknown_02024332 movs r4, 0x1 strb r4, [r0, 0x1] b _0804EC7A .pool _0804EC70: movs r4, 0x1 adds r0, r4, 0 ands r0, r1 cmp r0, 0 beq _0804EC96 _0804EC7A: movs r0, 0x5 bl audio_play str r4, [sp] movs r0, 0x18 movs r1, 0x8 movs r2, 0x1D movs r3, 0xD bl sub_8056A3C ldr r1, =gUnknown_02024214 ldr r0, [r1] adds r0, 0x1 str r0, [r1] _0804EC96: add sp, 0x4 pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end atk67_8025ECC thumb_func_start sub_804ECA4 sub_804ECA4: @ 804ECA4 push {r4,r5,lr} movs r1, 0 ldr r2, =gUnknown_0202406C ldr r5, =gUnknown_02024214 ldrb r0, [r2] cmp r1, r0 bge _0804ECC2 ldr r4, =gUnknown_0202407A movs r3, 0xC _0804ECB6: adds r0, r1, r4 strb r3, [r0] adds r1, 0x1 ldrb r0, [r2] cmp r1, r0 blt _0804ECB6 _0804ECC2: ldr r0, [r5] adds r0, 0x1 str r0, [r5] pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_804ECA4 thumb_func_start atk69_8025FE0 atk69_8025FE0: @ 804ECDC push {r4-r7,lr} ldr r7, =gBattleMons ldr r6, =gEnemyMonIndex 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 _0804ED10 ldr r1, =gUnknown_02024404 lsls r0, r2, 3 subs r0, r2 lsls r0, 2 adds r0, r1 ldrb r4, [r0, 0x7] ldrb r6, [r0, 0x1A] b _0804ED2A .pool _0804ED10: 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 _0804ED2A: ldr r1, =gUnknown_0202420F ldr r5, =gEnemyMonIndex ldrb r0, [r5] strb r0, [r1] cmp r4, 0x27 bne _0804ED68 bl Random lsls r0, 16 lsrs r0, 16 movs r1, 0x64 bl __umodsi3 lsls r0, 16 lsrs r0, 16 cmp r0, r6 bcs _0804ED68 ldrb r0, [r5] movs r1, 0x27 bl b_history__record_item_x12_of_player ldr r2, =gUnknown_0202437C 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] _0804ED68: ldr r2, =gBattleMons ldr r3, =gEnemyMonIndex 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 _0804EE38 ldr r2, =gBattleMoves ldr r0, =gUnknown_020241EA ldrh r1, [r0] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r0, [r0] cmp r0, 0x65 beq _0804EDBA ldr r0, =gUnknown_0202433C lsls r1, r4, 4 adds r1, r0 ldrb r0, [r1] lsls r0, 30 cmp r0, 0 blt _0804EDBA ldr r0, =gUnknown_0202437C lsls r1, r4, 2 adds r1, r4 lsls r1, 2 adds r1, r0 ldrb r0, [r1] lsrs r0, 7 cmp r0, 0 beq _0804EE38 _0804EDBA: ldrb r0, [r3] movs r4, 0x58 muls r0, r4 adds r0, r5 ldrh r1, [r0, 0x28] ldr r2, =gBattleMoveDamage ldr r0, [r2] cmp r1, r0 bgt _0804EE38 subs r0, r1, 0x1 str r0, [r2] ldr r1, =gUnknown_0202433C ldrb r3, [r3] lsls r0, r3, 4 adds r0, r1 ldrb r0, [r0] lsls r0, 30 cmp r0, 0 bge _0804EE10 ldr r0, =gBattleMoveFlags ldrb r1, [r0] movs r2, 0x40 orrs r1, r2 strb r1, [r0] b _0804EE38 .pool _0804EE10: ldr r0, =gUnknown_0202437C lsls r1, r3, 2 adds r1, r3 lsls r1, 2 adds r1, r0 ldrb r0, [r1] lsrs r0, 7 cmp r0, 0 beq _0804EE38 ldr r2, =gBattleMoveFlags ldrb r0, [r2] movs r1, 0x80 orrs r0, r1 strb r0, [r2] ldr r1, =gUnknown_02024208 adds r0, r3, 0 muls r0, r4 adds r0, r5 ldrh r0, [r0, 0x2E] strh r0, [r1] _0804EE38: ldr r1, =gUnknown_02024214 ldr r0, [r1] adds r0, 0x1 str r0, [r1] pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end atk69_8025FE0 thumb_func_start atk6A_stash_item_for_side atk6A_stash_item_for_side: @ 804EE58 push {r4-r6,lr} sub sp, 0x4 ldr r6, =gUnknown_02024214 ldr r0, [r6] ldrb r0, [r0, 0x1] bl get_battle_side_of_something ldr r5, =gUnknown_02024064 strb r0, [r5] ldr r1, =gUnknown_0202449C ldrb r4, [r5] lsls r0, r4, 1 adds r0, 0xB8 ldr r1, [r1] adds r1, r0 ldr r2, =gBattleMons 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 .pool thumb_func_end atk6A_stash_item_for_side thumb_func_start atk6B_end_battle_80261CC atk6B_end_battle_80261CC: @ 804EEC8 ldr r1, =gUnknown_02022F58 movs r0, 0xFD strb r0, [r1] movs r0, 0x7 strb r0, [r1, 0x1] ldr r2, =gUnknown_0202420B ldrb r0, [r2] strb r0, [r1, 0x2] ldr r3, =gUnknown_0202406E 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, =gUnknown_02024214 ldr r0, [r1] adds r0, 0x1 str r0, [r1] bx lr .pool thumb_func_end atk6B_end_battle_80261CC thumb_func_start atk6C_8026208 atk6C_8026208: @ 804EF04 push {r4,lr} sub sp, 0x4 ldr r0, =gUnknown_02024474 ldrb r1, [r0, 0x1E] adds r4, r0, 0 cmp r1, 0 bne _0804EF28 bl sub_804F498 cmp r0, 0 beq _0804EF24 movs r0, 0x3 b _0804EF26 .pool _0804EF24: movs r0, 0x1 _0804EF26: strb r0, [r4, 0x1E] _0804EF28: ldrb r0, [r4, 0x1E] subs r0, 0x1 cmp r0, 0x9 bls _0804EF32 b _0804F0F2 _0804EF32: lsls r0, 2 ldr r1, =_0804EF40 adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _0804EF40: .4byte _0804EF68 .4byte _0804EF94 .4byte _0804EFAC .4byte _0804F000 .4byte _0804F014 .4byte _0804F02C .4byte _0804F014 .4byte _0804F04C .4byte _0804F07C .4byte _0804F0C0 _0804EF68: ldr r1, =gUnknown_02022E1E movs r0, 0x60 strh r0, [r1] movs r0, 0x2 movs r1, 0x7 movs r2, 0 bl SetBgAttribute movs r0, 0x2 bl ShowBg bl sub_804F17C ldr r1, =gUnknown_02024474 movs r0, 0x2 strb r0, [r1, 0x1E] b _0804F0F2 .pool _0804EF94: bl sub_804F1CC lsls r0, 24 cmp r0, 0 beq _0804EFA0 b _0804F0F2 _0804EFA0: ldr r1, =gUnknown_02024474 movs r0, 0x3 strb r0, [r1, 0x1E] b _0804F0F2 .pool _0804EFAC: ldr r1, =gUnknown_02022E18 movs r0, 0 strh r0, [r1] ldr r1, =gUnknown_02022E1A movs r2, 0x80 lsls r2, 1 adds r0, r2, 0 strh r0, [r1] movs r0, 0 movs r1, 0x7 movs r2, 0x1 bl SetBgAttribute movs r0, 0x1 movs r1, 0x7 movs r2, 0 bl SetBgAttribute movs r0, 0 bl ShowBg movs r0, 0x1 bl ShowBg movs r0, 0x80 str r0, [sp] movs r0, 0x12 movs r1, 0x7 movs r2, 0x1D movs r3, 0x13 bl sub_8056A3C ldr r1, =gUnknown_02024474 movs r0, 0x4 strb r0, [r1, 0x1E] b _0804F0F2 .pool _0804F000: bl sub_804F100 movs r0, 0xD bl PutWindowTilemap movs r0, 0xD movs r1, 0x3 bl CopyWindowToVram b _0804F06A _0804F014: bl IsDma3ManagerBusyWithBgCopy lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0 bne _0804F0F2 ldr r0, =gUnknown_02022E1A strh r1, [r0] b _0804F06A .pool _0804F02C: ldr r0, =gMain ldrh r0, [r0, 0x2E] cmp r0, 0 beq _0804F0F2 movs r0, 0x5 bl audio_play bl sub_804F144 movs r0, 0xD movs r1, 0x2 bl CopyWindowToVram b _0804F06A .pool _0804F04C: ldr r0, =gMain ldrh r0, [r0, 0x2E] cmp r0, 0 beq _0804F0F2 movs r0, 0x5 bl audio_play movs r0, 0x81 str r0, [sp] movs r0, 0x12 movs r1, 0x7 movs r2, 0x1D movs r3, 0x13 bl sub_8056A3C _0804F06A: ldr r1, =gUnknown_02024474 ldrb r0, [r1, 0x1E] adds r0, 0x1 strb r0, [r1, 0x1E] b _0804F0F2 .pool _0804F07C: bl sub_804F344 lsls r0, 24 cmp r0, 0 bne _0804F0F2 movs r0, 0xE bl ClearWindowTilemap movs r0, 0xE movs r1, 0x1 bl CopyWindowToVram movs r0, 0xD bl ClearWindowTilemap movs r0, 0xD movs r1, 0x1 bl CopyWindowToVram movs r0, 0x2 movs r1, 0x7 movs r2, 0x2 bl SetBgAttribute movs r0, 0x2 bl ShowBg ldr r1, =gUnknown_02024474 movs r0, 0xA strb r0, [r1, 0x1E] b _0804F0F2 .pool _0804F0C0: bl IsDma3ManagerBusyWithBgCopy lsls r0, 24 cmp r0, 0 bne _0804F0F2 movs r0, 0 movs r1, 0x7 movs r2, 0 bl SetBgAttribute movs r0, 0x1 movs r1, 0x7 movs r2, 0x1 bl SetBgAttribute movs r0, 0 bl ShowBg movs r0, 0x1 bl ShowBg ldr r1, =gUnknown_02024214 ldr r0, [r1] adds r0, 0x1 str r0, [r1] _0804F0F2: add sp, 0x4 pop {r4} pop {r0} bx r0 .pool thumb_func_end atk6C_8026208 thumb_func_start sub_804F100 sub_804F100: @ 804F100 push {lr} sub sp, 0x14 ldr r0, =gUnknown_0202449C ldr r0, [r0] ldrb r1, [r0, 0x10] movs r0, 0x64 muls r0, r1 ldr r1, =gPlayerParty adds r0, r1 add r1, sp, 0x8 bl sub_81D388C ldr r0, =gUnknown_020244A8 ldr r0, [r0] ldr r1, [r0, 0x10] movs r0, 0xD str r0, [sp] movs r0, 0xF str r0, [sp, 0x4] movs r0, 0xD add r2, sp, 0x8 movs r3, 0xE bl sub_81D3640 add sp, 0x14 pop {r0} bx r0 .pool thumb_func_end sub_804F100 thumb_func_start sub_804F144 sub_804F144: @ 804F144 push {lr} sub sp, 0x10 ldr r0, =gUnknown_0202449C ldr r0, [r0] ldrb r1, [r0, 0x10] movs r0, 0x64 muls r0, r1 ldr r1, =gPlayerParty adds r0, r1 add r1, sp, 0x4 bl sub_81D388C movs r0, 0xF str r0, [sp] movs r0, 0xD add r1, sp, 0x4 movs r2, 0xE movs r3, 0xD bl sub_81D3784 add sp, 0x10 pop {r0} bx r0 .pool thumb_func_end sub_804F144 thumb_func_start sub_804F17C sub_804F17C: @ 804F17C push {lr} ldr r1, =gUnknown_02022E1E movs r0, 0 strh r0, [r1] ldr r1, =gUnknown_02022E1C movs r2, 0xD0 lsls r2, 1 adds r0, r2, 0 strh r0, [r1] ldr r0, =gUnknown_0831C2C8 movs r1, 0x60 movs r2, 0x20 bl gpu_pal_apply ldr r1, =gUnknown_0831C2E8 movs r0, 0xE movs r2, 0 movs r3, 0 bl CopyToWindowPixelBuffer movs r0, 0xE bl PutWindowTilemap movs r0, 0xE movs r1, 0x3 bl CopyWindowToVram bl sub_804F384 pop {r0} bx r0 .pool thumb_func_end sub_804F17C thumb_func_start sub_804F1CC sub_804F1CC: @ 804F1CC push {r4,r5,lr} bl IsDma3ManagerBusyWithBgCopy lsls r0, 24 cmp r0, 0 beq _0804F1DC movs r0, 0x1 b _0804F216 _0804F1DC: ldr r4, =gUnknown_02022E1C ldrh r1, [r4] movs r5, 0x80 lsls r5, 2 cmp r1, r5 bne _0804F1F0 movs r0, 0 b _0804F216 .pool _0804F1F0: movs r0, 0xD0 lsls r0, 1 cmp r1, r0 bne _0804F1FC bl sub_804F220 _0804F1FC: ldrh r0, [r4] adds r0, 0x8 strh r0, [r4] lsls r0, 16 ldr r1, =0x01ff0000 cmp r0, r1 bls _0804F20C strh r5, [r4] _0804F20C: ldrh r1, [r4] eors r1, r5 negs r0, r1 orrs r0, r1 lsrs r0, 31 _0804F216: pop {r4,r5} pop {r1} bx r1 .pool thumb_func_end sub_804F1CC thumb_func_start sub_804F220 sub_804F220: @ 804F220 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x10 ldr r6, =gUnknown_0202449C ldr r0, [r6] ldrb r0, [r0, 0x10] movs r5, 0x64 muls r0, r5 ldr r4, =gPlayerParty adds r0, r4 movs r1, 0x38 bl GetMonData mov r8, r0 lsls r0, 16 lsrs r0, 16 mov r8, r0 ldr r0, [r6] ldrb r0, [r0, 0x10] muls r0, r5 adds r0, r4 bl pokemon_get_gender lsls r0, 24 lsrs r7, r0, 24 ldr r0, [r6] ldrb r0, [r0, 0x10] muls r0, r5 adds r0, r4 ldr r5, =gStringVar4 adds r1, r5, 0 bl GetMonNickname str r5, [sp] mov r2, sp movs r1, 0 movs r0, 0xE strb r0, [r2, 0x4] mov r0, sp strb r1, [r0, 0x5] movs r4, 0x20 strb r4, [r0, 0x6] strb r1, [r0, 0x7] strb r4, [r0, 0x8] strb r1, [r0, 0x9] strb r1, [r0, 0xA] strb r1, [r0, 0xB] mov r3, sp ldrb r2, [r3, 0xC] subs r1, 0x10 adds r0, r1, 0 ands r0, r2 strb r0, [r3, 0xC] mov r2, sp movs r0, 0x10 strb r0, [r2, 0xC] ldrb r0, [r2, 0xD] ands r1, r0 strb r1, [r2, 0xD] mov r0, sp strb r4, [r0, 0xD] movs r1, 0xFF movs r2, 0 bl AddTextPrinter movs r0, 0xF9 strb r0, [r5] adds r5, 0x1 movs r0, 0x5 strb r0, [r5] adds r5, 0x1 adds r4, r5, 0 adds r0, r4, 0 mov r1, r8 movs r2, 0 movs r3, 0x3 bl ConvertIntToDecimalStringN adds r5, r0, 0 subs r4, r5, r4 movs r2, 0x4 subs r2, r4 lsls r2, 16 lsrs r2, 16 movs r1, 0x77 bl StringFill adds r5, r0, 0 cmp r7, 0xFF beq _0804F320 cmp r7, 0 bne _0804F300 movs r1, 0 movs r2, 0xC bl WriteColorChangeControlCode adds r5, r0, 0 movs r1, 0x1 movs r2, 0xD bl WriteColorChangeControlCode adds r5, r0, 0 movs r0, 0xB5 b _0804F318 .pool _0804F300: adds r0, r5, 0 movs r1, 0 movs r2, 0xE bl WriteColorChangeControlCode adds r5, r0, 0 movs r1, 0x1 movs r2, 0xF bl WriteColorChangeControlCode adds r5, r0, 0 movs r0, 0xB6 _0804F318: strb r0, [r5] adds r5, 0x1 movs r0, 0xFF strb r0, [r5] _0804F320: mov r0, sp movs r1, 0xA strb r1, [r0, 0x7] strb r1, [r0, 0x9] movs r1, 0xFF movs r2, 0 bl AddTextPrinter movs r0, 0xE movs r1, 0x2 bl CopyWindowToVram add sp, 0x10 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_804F220 thumb_func_start sub_804F344 sub_804F344: @ 804F344 push {lr} ldr r0, =gUnknown_02022E1C ldrh r1, [r0] movs r3, 0xD0 lsls r3, 1 adds r2, r0, 0 cmp r1, r3 bne _0804F35C movs r0, 0 b _0804F380 .pool _0804F35C: ldrh r0, [r2] adds r1, r0, 0 subs r1, 0x10 ldr r0, =0x0000019f cmp r1, r0 bgt _0804F370 strh r3, [r2] b _0804F372 .pool _0804F370: strh r1, [r2] _0804F372: ldrh r1, [r2] movs r0, 0xD0 lsls r0, 1 eors r1, r0 negs r0, r1 orrs r0, r1 lsrs r0, 31 _0804F380: pop {r1} bx r1 thumb_func_end sub_804F344 thumb_func_start sub_804F384 sub_804F384: @ 804F384 push {r4-r6,lr} mov r6, r8 push {r6} sub sp, 0x10 ldr r0, =gUnknown_0202449C mov r8, r0 ldr r0, [r0] ldrb r0, [r0, 0x10] movs r6, 0x64 muls r0, r6 ldr r5, =gPlayerParty adds r0, r5 movs r1, 0xB bl GetMonData adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 mov r1, r8 ldr r0, [r1] ldrb r0, [r0, 0x10] muls r0, r6 adds r0, r5 movs r1, 0 bl GetMonData adds r1, r0, 0 adds r0, r4, 0 movs r2, 0x1 bl sub_80D2EDC str r0, [sp] ldr r5, =0xffff0000 ldr r0, [sp, 0x4] ands r0, r5 movs r1, 0x80 lsls r1, 2 orrs r0, r1 ldr r1, =0x0000ffff ands r0, r1 ldr r1, =0xd75a0000 orrs r0, r1 str r0, [sp, 0x4] adds r0, r4, 0 bl sub_80D30B0 str r0, [sp, 0x8] add r4, sp, 0x8 ldr r0, [r4, 0x4] ands r0, r5 ldr r1, =0x0000d75a orrs r0, r1 str r0, [r4, 0x4] mov r0, sp bl LoadObjectPic adds r0, r4, 0 bl LoadTaggedObjectPalette ldr r0, =gUnknown_0831C3C0 movs r1, 0x80 lsls r1, 1 movs r2, 0xA movs r3, 0 bl AddObjectToFront lsls r0, 24 lsrs r0, 24 ldr r2, =gUnknown_02020630 lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r2 movs r0, 0 strh r0, [r1, 0x2E] ldr r0, =gUnknown_02022E1C ldrh r0, [r0] strh r0, [r1, 0x30] add sp, 0x10 pop {r3} mov r8, r3 pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_804F384 thumb_func_start sub_804F450 sub_804F450: @ 804F450 push {r4,lr} adds r2, r0, 0 ldr r0, =gUnknown_02022E1C ldrh r1, [r2, 0x30] ldrh r0, [r0] subs r1, r0 strh r1, [r2, 0x24] lsls r1, 16 cmp r1, 0 beq _0804F470 movs r0, 0x1 strh r0, [r2, 0x2E] b _0804F48C .pool _0804F470: movs r1, 0x2E ldrsh r0, [r2, r1] cmp r0, 0 beq _0804F48C adds r0, r2, 0 bl RemoveObjectAndFreeTiles ldr r4, =0x0000d75a adds r0, r4, 0 bl FreeObjectTilesByTag adds r0, r4, 0 bl FreeObjectPaletteByTag _0804F48C: pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_804F450 thumb_func_start sub_804F498 sub_804F498: @ 804F498 push {lr} ldr r3, =gUnknown_0202406E ldr r0, =gUnknown_0202449C ldr r0, [r0] ldrh r1, [r3] ldrb r2, [r0, 0x10] cmp r1, r2 beq _0804F4BA ldr r0, =gBattleTypeFlags ldr r0, [r0] movs r1, 0x1 ands r0, r1 cmp r0, 0 beq _0804F4CC ldrh r0, [r3, 0x4] cmp r0, r2 bne _0804F4CC _0804F4BA: movs r0, 0x1 b _0804F4CE .pool _0804F4CC: movs r0, 0 _0804F4CE: pop {r1} bx r1 thumb_func_end sub_804F498 thumb_func_start sub_804F4D4 sub_804F4D4: @ 804F4D4 push {lr} bl sub_803F988 ldr r1, =gUnknown_02024214 ldr r0, [r1] adds r0, 0x1 str r0, [r1] pop {r0} bx r0 .pool thumb_func_end sub_804F4D4 thumb_func_start atk6E_state0_side_becomes_attacker atk6E_state0_side_becomes_attacker: @ 804F4EC push {lr} movs r0, 0 bl battle_get_side_with_given_state ldr r1, =gUnknown_0202420B strb r0, [r1] ldr r1, =gUnknown_02024214 ldr r0, [r1] adds r0, 0x1 str r0, [r1] pop {r0} bx r0 .pool thumb_func_end atk6E_state0_side_becomes_attacker thumb_func_start atk6F_8026810 atk6F_8026810: @ 804F50C push {r4,r5,lr} ldr r5, =gUnknown_02024214 ldr r0, [r5] ldrb r0, [r0, 0x1] bl get_battle_side_of_something ldr r4, =gUnknown_02024064 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 .pool thumb_func_end atk6F_8026810 thumb_func_start atk70_record_ability_usage_of_side atk70_record_ability_usage_of_side: @ 804F540 push {r4,lr} ldr r4, =gUnknown_02024214 ldr r0, [r4] ldrb r0, [r0, 0x1] bl get_battle_side_of_something ldr r1, =gUnknown_02024064 strb r0, [r1] ldrb r0, [r1] ldr r1, =gUnknown_0202420A ldrb r1, [r1] bl b_history__record_ability_usage_of_player ldr r0, [r4] adds r0, 0x1 str r0, [r4] pop {r4} pop {r0} bx r0 .pool thumb_func_end atk70_record_ability_usage_of_side thumb_func_start sub_804F574 sub_804F574: @ 804F574 ldr r2, =gUnknown_02022F68 movs r0, 0xFD strb r0, [r2] movs r0, 0x2 strb r0, [r2, 0x1] ldr r0, =gUnknown_020244E2 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 .pool thumb_func_end sub_804F574 thumb_func_start atk71_80268A0 atk71_80268A0: @ 804F59C push {lr} bl sub_804F574 ldr r1, =gUnknown_02024214 ldr r0, [r1] adds r0, 0x1 str r0, [r1] pop {r0} bx r0 .pool thumb_func_end atk71_80268A0 thumb_func_start atk72_flee atk72_flee: @ 804F5B4 push {lr} ldr r0, =gUnknown_0202420D ldrb r0, [r0] bl sub_803EC20 lsls r0, 24 cmp r0, 0 beq _0804F5E8 ldr r3, =gUnknown_02024214 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 _0804F5F0 .pool _0804F5E8: ldr r1, =gUnknown_02024214 ldr r0, [r1] adds r0, 0x5 str r0, [r1] _0804F5F0: pop {r0} bx r0 .pool thumb_func_end atk72_flee thumb_func_start atk73_cmd73 atk73_cmd73: @ 804F5F8 push {r4-r6,lr} ldr r0, =gBattleTypeFlags ldr r4, [r0] movs r6, 0x1 ands r4, r6 cmp r4, 0 bne _0804F68E ldr r0, =gUnknown_02024214 ldr r0, [r0] ldrb r0, [r0, 0x1] bl get_battle_side_of_something ldr r1, =gUnknown_02024064 strb r0, [r1] movs r1, 0x1 eors r0, r1 lsls r0, 24 lsrs r0, 24 ldr r2, =gBattleMons movs r1, 0x58 muls r1, r0 adds r1, r2 ldrh r5, [r1, 0x28] movs r0, 0x64 muls r0, r5 ldrh r1, [r1, 0x2C] bl __divsi3 cmp r0, 0 bne _0804F636 movs r0, 0x1 _0804F636: cmp r0, 0x45 bgt _0804F63E cmp r5, 0 bne _0804F65C _0804F63E: ldr r0, =gUnknown_0202449C ldr r0, [r0] adds r0, 0xB1 strb r4, [r0] b _0804F68E .pool _0804F65C: cmp r0, 0x27 ble _0804F670 ldr r0, =gUnknown_0202449C ldr r0, [r0] adds r0, 0xB1 strb r6, [r0] b _0804F68E .pool _0804F670: cmp r0, 0x9 ble _0804F684 ldr r0, =gUnknown_0202449C ldr r0, [r0] adds r0, 0xB1 movs r1, 0x2 b _0804F68C .pool _0804F684: ldr r0, =gUnknown_0202449C ldr r0, [r0] adds r0, 0xB1 movs r1, 0x3 _0804F68C: strb r1, [r0] _0804F68E: ldr r1, =gUnknown_02024214 ldr r0, [r1] adds r0, 0x2 str r0, [r1] pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end atk73_cmd73 thumb_func_start atk74_hp_tresholds_2 atk74_hp_tresholds_2: @ 804F6A4 push {r4-r7,lr} mov r7, r8 push {r7} ldr r0, =gBattleTypeFlags ldr r7, [r0] movs r0, 0x1 mov r8, r0 ands r7, r0 cmp r7, 0 bne _0804F73E ldr r0, =gUnknown_02024214 ldr r0, [r0] ldrb r0, [r0, 0x1] bl get_battle_side_of_something adds r4, r0, 0 ldr r0, =gUnknown_02024064 strb r4, [r0] movs r0, 0x1 eors r4, r0 lsls r4, 24 lsrs r4, 24 adds r0, r4, 0 bl battle_side_get_owner lsls r0, 24 ldr r1, =gUnknown_0202449C ldr r6, [r1] lsrs r0, 23 adds r0, r6 adds r0, 0xA8 ldrb r5, [r0] ldr r1, =gBattleMons 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 _0804F71C adds r0, r6, 0 adds r0, 0xB1 strb r7, [r0] b _0804F73E .pool _0804F71C: cmp r0, 0x1D bgt _0804F72A adds r0, r6, 0 adds r0, 0xB1 mov r1, r8 strb r1, [r0] b _0804F73E _0804F72A: cmp r1, 0x45 bgt _0804F736 adds r1, r6, 0 adds r1, 0xB1 movs r0, 0x2 b _0804F73C _0804F736: adds r1, r6, 0 adds r1, 0xB1 movs r0, 0x3 _0804F73C: strb r0, [r1] _0804F73E: ldr r1, =gUnknown_02024214 ldr r0, [r1] adds r0, 0x2 str r0, [r1] pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end atk74_hp_tresholds_2 thumb_func_start atk75_8026A58 atk75_8026A58: @ 804F754 push {lr} sub sp, 0x4 ldr r2, =gUnknown_020244B8 ldr r1, =gUnknown_0202420B ldrb r0, [r1] strb r0, [r2] ldr r2, =gUnknown_0202406E ldrb r0, [r1] lsls r0, 1 adds r0, r2 ldrh r2, [r0] movs r0, 0x64 muls r0, r2 ldr r1, =gEnemyParty adds r0, r1 ldr r1, =gUnknown_02024208 ldrh r1, [r1] lsls r2, 24 lsrs r2, 24 movs r3, 0x1 str r3, [sp] movs r3, 0 bl ExecuteTableBasedItemEffect ldr r1, =gUnknown_02024214 ldr r0, [r1] adds r0, 0x1 str r0, [r1] add sp, 0x4 pop {r0} bx r0 .pool thumb_func_end atk75_8026A58 thumb_func_start sub_804F7AC sub_804F7AC: @ 804F7AC push {r4-r7,lr} mov r7, r8 push {r7} ldr r4, =gUnknown_02024214 ldr r0, [r4] ldrb r0, [r0, 0x1] bl get_battle_side_of_something ldr r1, =gUnknown_02024064 strb r0, [r1] ldr r0, [r4] ldrb r0, [r0, 0x2] cmp r0, 0x1A bls _0804F7CA b _0804FD70 _0804F7CA: lsls r0, 2 ldr r1, =_0804F7E0 adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _0804F7E0: .4byte _0804F84C .4byte _0804F85C .4byte _0804F8BC .4byte _0804F8CC .4byte _0804F8E4 .4byte _0804F920 .4byte _0804F958 .4byte _0804F9E0 .4byte _0804FA20 .4byte _0804FACC .4byte _0804FAE8 .4byte _0804FB3C .4byte _0804FB94 .4byte _0804FC18 .4byte _0804FC2C .4byte _0804FC32 .4byte _0804FC38 .4byte _0804FC60 .4byte _0804FC6A .4byte _0804FC78 .4byte _0804FC8C .4byte _0804FCC4 .4byte _0804FCD8 .4byte _0804FCF0 .4byte _0804FD1C .4byte _0804FD30 .4byte _0804FD5C _0804F84C: ldr r0, =gUnknown_02024064 ldrb r0, [r0] bl b_cancel_multi_turn_move_maybe b _0804FD70 .pool _0804F85C: ldr r1, =gUnknown_0202420B ldr r4, =gEnemyMonIndex 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, =gUnknown_02024294 lsls r1, r0, 1 adds r1, r0 lsls r1, 2 adds r2, r1, r2 ldrb r0, [r2, 0x8] cmp r0, 0 beq _0804F8A8 ldr r1, =gBattleMons ldrb r2, [r2, 0x9] movs r0, 0x58 muls r0, r2 adds r0, r1 ldrh r0, [r0, 0x28] cmp r0, 0 beq _0804F8A8 strb r2, [r4] b _0804FD70 .pool _0804F8A8: ldr r0, =gEnemyMonIndex ldr r1, =gUnknown_02024064 ldrb r1, [r1] strb r1, [r0] b _0804FD70 .pool _0804F8BC: bl sub_803BB88 ldr r1, =gUnknown_02024332 strb r0, [r1] b _0804FD70 .pool _0804F8CC: ldr r0, =gUnknown_020241EA ldrh r0, [r0] movs r1, 0 bl sub_80458E0 ldr r1, =gEnemyMonIndex strb r0, [r1] b _0804FD70 .pool _0804F8E4: ldr r2, =gUnknown_02024280 ldr r1, =gBitTable ldr r0, =gUnknown_02024064 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 _0804F914 ldr r1, =gUnknown_02024332 movs r0, 0x1 strb r0, [r1] b _0804FD70 .pool _0804F914: ldr r0, =gUnknown_02024332 strb r2, [r0] b _0804FD70 .pool _0804F920: ldr r4, =gUnknown_0202437C ldr r3, =gUnknown_02024064 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 _0804FD70 .pool _0804F958: ldr r4, =gUnknown_0202406E ldr r1, =gUnknown_0202449C ldr r0, [r1] ldrh r3, [r4] ldrb r2, [r0, 0x10] adds r6, r1, 0 cmp r3, r2 beq _0804F974 ldrh r0, [r4, 0x4] cmp r0, r2 beq _0804F970 b _0804FD70 _0804F970: cmp r3, r0 bne _0804F988 _0804F974: ldr r1, =gUnknown_02024064 movs r0, 0 b _0804F98C .pool _0804F988: ldr r1, =gUnknown_02024064 movs r0, 0x2 _0804F98C: strb r0, [r1] adds r5, r1, 0 ldrb r2, [r5] lsls r0, r2, 1 adds r0, 0xC8 ldr r1, [r6] adds r4, r1, r0 movs r3, 0 ldr r1, =gBattleMons movs r0, 0x58 muls r0, r2 adds r1, 0xC adds r0, r1 ldrh r0, [r0] ldrh r2, [r4] cmp r0, r2 beq _0804F9CC adds r6, r5, 0 movs r5, 0x58 adds r2, r1, 0 _0804F9B4: adds r3, 0x1 cmp r3, 0x3 bgt _0804F9CC 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 _0804F9B4 _0804F9CC: cmp r3, 0x4 beq _0804F9D2 b _0804FD70 _0804F9D2: movs r0, 0 strh r0, [r4] b _0804FD70 .pool _0804F9E0: ldr r0, =gBattleTypeFlags ldr r0, [r0] movs r1, 0xB ands r0, r1 cmp r0, 0x8 beq _0804F9EE b _0804FD70 _0804F9EE: ldr r1, =gBattleMons ldrh r0, [r1, 0x28] cmp r0, 0 bne _0804F9F8 b _0804FD70 _0804F9F8: adds r0, r1, 0 adds r0, 0x80 ldrh r0, [r0] cmp r0, 0 bne _0804FA04 b _0804FD70 _0804FA04: ldr r0, =gUnknown_02024280 ldr r1, [r0] ldr r2, =0xffbfffff ands r1, r2 str r1, [r0] b _0804FD70 .pool _0804FA20: ldr r2, =gUnknown_02024332 mov r8, r2 movs r0, 0 strb r0, [r2] ldr r1, =gUnknown_02024474 ldr r6, =gUnknown_02024064 ldrb r0, [r2, 0x1] strb r0, [r6] strb r0, [r1, 0x17] ldr r0, =gUnknown_0202449C ldr r0, [r0] adds r7, r0, 0 adds r7, 0x92 ldrb r3, [r7] ldr r1, =gBitTable ldrb r2, [r6] lsls r0, r2, 2 adds r0, r1 ldr r5, [r0] adds r0, r3, 0 ands r0, r5 cmp r0, 0 beq _0804FA50 b _0804FD70 _0804FA50: ldr r4, =gBattleMons movs r0, 0x58 mov r12, r0 mov r1, r12 muls r1, r2 adds r2, r1, 0 adds r1, r2, r4 ldrh r0, [r1, 0x2C] lsrs r0, 1 ldrh r1, [r1, 0x28] cmp r0, r1 bcs _0804FA6A b _0804FD70 _0804FA6A: cmp r1, 0 bne _0804FA70 b _0804FD70 _0804FA70: adds r0, r4, 0 adds r0, 0x4C adds r0, r2, r0 ldr r0, [r0] movs r1, 0x7 ands r0, r1 cmp r0, 0 beq _0804FA82 b _0804FD70 _0804FA82: orrs r3, r5 strb r3, [r7] movs r0, 0x1 mov r2, r8 strb r0, [r2] ldrb r0, [r6] mov r1, r12 muls r1, r0 adds r0, r1, 0 adds r1, r4, 0 adds r1, 0x48 adds r0, r1 ldr r0, [r0] bl GetNatureFromPersonality ldr r1, =gUnknown_0831C4F8 lsls r0, 24 lsrs r0, 24 adds r0, r1 ldrb r0, [r0] mov r2, r8 strb r0, [r2, 0x5] b _0804FD70 .pool _0804FACC: ldr r4, =gUnknown_02024332 adds r0, r4, 0 bl sub_81A5258 lsls r0, 24 lsrs r3, r0, 24 cmp r3, 0 bne _0804FADE b _0804FD78 _0804FADE: strb r3, [r4, 0x1] b _0804FD70 .pool _0804FAE8: ldr r0, =gBattleMons adds r0, 0x80 movs r1, 0 strh r1, [r0] ldr r2, =gUnknown_02024280 ldr r3, =gBitTable ldr r1, [r3, 0x4] lsls r1, 28 ldr r0, [r2] orrs r0, r1 str r0, [r2] ldr r0, =gUnknown_0202449C ldr r2, [r0] ldr r0, =0x000002a1 adds r2, r0 ldr r0, =gUnknown_0202406E ldrh r0, [r0, 0x2] lsls r0, 2 adds r0, r3 ldr r0, [r0] ldrb r1, [r2] orrs r0, r1 strb r0, [r2] ldr r1, =gUnknown_020242BC adds r1, 0x34 ldrb r0, [r1] movs r2, 0x2 b _0804FBF4 .pool _0804FB3C: ldr r1, =gBattleMons movs r0, 0 strh r0, [r1, 0x28] ldr r2, =gUnknown_02024280 ldr r3, =gBitTable ldr r1, [r3] lsls r1, 28 ldr r0, [r2] orrs r0, r1 movs r1, 0x80 lsls r1, 15 orrs r0, r1 str r0, [r2] ldr r0, =gUnknown_0202449C ldr r2, [r0] movs r1, 0xA8 lsls r1, 2 adds r2, r1 ldr r0, =gUnknown_0202406E ldrh r0, [r0] lsls r0, 2 adds r0, r3 ldr r0, [r0] ldrb r1, [r2] orrs r0, r1 strb r0, [r2] ldr r2, =gUnknown_020242BC ldrb r0, [r2, 0x18] movs r1, 0x2 orrs r0, r1 strb r0, [r2, 0x18] b _0804FD70 .pool _0804FB94: ldr r0, =gBattleMons movs r1, 0 strh r1, [r0, 0x28] adds r0, 0x80 strh r1, [r0] ldr r2, =gUnknown_02024280 ldr r3, =gBitTable ldr r0, [r3] lsls r0, 28 ldr r1, [r2] orrs r1, r0 ldr r0, [r3, 0x4] lsls r0, 28 orrs r1, r0 movs r0, 0x80 lsls r0, 15 orrs r1, r0 str r1, [r2] ldr r5, =gUnknown_0202449C ldr r2, [r5] movs r0, 0xA8 lsls r0, 2 adds r2, r0 ldr r4, =gUnknown_0202406E ldrh r0, [r4] lsls r0, 2 adds r0, r3 ldr r0, [r0] ldrb r1, [r2] orrs r0, r1 strb r0, [r2] ldr r2, [r5] ldr r1, =0x000002a1 adds r2, r1 ldrh r0, [r4, 0x2] lsls r0, 2 adds r0, r3 ldr r0, [r0] ldrb r1, [r2] orrs r0, r1 strb r0, [r2] ldr r1, =gUnknown_020242BC ldrb r0, [r1, 0x18] movs r2, 0x2 orrs r0, r2 strb r0, [r1, 0x18] adds r1, 0x34 ldrb r0, [r1] _0804FBF4: orrs r0, r2 strb r0, [r1] b _0804FD70 .pool _0804FC18: movs r0, 0 bl sub_8033E10 ldr r0, =gUnknown_02024064 ldrb r0, [r0] bl dp01_battle_side_mark_buffer_for_execution b _0804FD70 .pool _0804FC2C: bl sub_81A5BF8 b _0804FD70 _0804FC32: bl sub_81A5D44 b _0804FD70 _0804FC38: ldr r1, =gUnknown_085CD1C8 ldr r0, =gUnknown_02024214 ldr r0, [r0] ldrb r0, [r0, 0x1] lsls r0, 2 adds r0, r1 ldr r0, [r0] bl get_battle_strings_ ldr r0, =gUnknown_02022E2C movs r1, 0x16 bl battle_show_message_maybe b _0804FD70 .pool _0804FC60: movs r0, 0x16 bl IsTextPrinterActive lsls r0, 16 b _0804FD24 _0804FC6A: bl sub_80A3678 lsls r0, 24 cmp r0, 0 bne _0804FC76 b _0804FD78 _0804FC76: b _0804FD70 _0804FC78: ldr r4, =gUnknown_02024064 movs r0, 0x1 strb r0, [r4] ldr r0, =gBattleMons adds r0, 0x58 b _0804FCA2 .pool _0804FC8C: ldr r0, =gUnknown_0202406C ldrb r0, [r0] cmp r0, 0x3 bls _0804FD70 ldr r4, =gUnknown_02024064 movs r0, 0x3 strb r0, [r4] ldr r0, =gBattleMons movs r2, 0x84 lsls r2, 1 adds r0, r2 _0804FCA2: ldrh r0, [r0, 0x28] cmp r0, 0 beq _0804FD70 movs r0, 0 movs r1, 0 bl dp01_build_cmdbuf_x06_a ldrb r0, [r4] bl dp01_battle_side_mark_buffer_for_execution b _0804FD70 .pool _0804FCC4: ldr r0, =gMPlay_BGM ldr r1, =0x0000ffff movs r2, 0x55 bl m4aMPlayVolumeControl b _0804FD70 .pool _0804FCD8: ldr r0, =gMPlay_BGM ldr r1, =0x0000ffff movs r2, 0x80 lsls r2, 1 bl m4aMPlayVolumeControl b _0804FD70 .pool _0804FCF0: ldr r0, =gUnknown_0202449C ldr r2, [r0] ldr r0, =0x000002a2 adds r2, r0 ldr r1, =gBitTable ldr r0, =gUnknown_02024064 ldrb r0, [r0] lsls r0, 2 adds r0, r1 ldr r0, [r0] ldrb r1, [r2] orrs r0, r1 strb r0, [r2] b _0804FD70 .pool _0804FD1C: ldr r0, =gUnknown_02024064 ldrb r0, [r0] bl sub_805725C _0804FD24: cmp r0, 0 bne _0804FD78 b _0804FD70 .pool _0804FD30: ldr r0, =gUnknown_02024064 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 bne _0804FD50 ldr r1, =gUnknown_0202433A movs r0, 0x5 strb r0, [r1] b _0804FD70 .pool _0804FD50: ldr r1, =gUnknown_0202433A movs r0, 0xA strb r0, [r1] b _0804FD70 .pool _0804FD5C: movs r1, 0xCE lsls r1, 1 movs r0, 0 movs r2, 0x1 bl sub_8034300 ldr r0, =gUnknown_02024064 ldrb r0, [r0] bl dp01_battle_side_mark_buffer_for_execution _0804FD70: ldr r1, =gUnknown_02024214 ldr r0, [r1] adds r0, 0x3 str r0, [r1] _0804FD78: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_804F7AC thumb_func_start atk77_setprotect atk77_setprotect: @ 804FD8C push {r4-r7,lr} mov r7, r8 push {r7} movs r6, 0x1 ldr r2, =gUnknown_02024260 ldr r1, =gUnknown_0202420B ldrb r3, [r1] lsls r0, r3, 1 adds r0, r2 ldrh r0, [r0] mov r8, r1 ldr r7, =gUnknown_020242BC cmp r0, 0xB6 beq _0804FDBC cmp r0, 0xC5 beq _0804FDBC cmp r0, 0xCB beq _0804FDBC lsls r0, r3, 3 subs r0, r3 lsls r0, 2 adds r0, r7 movs r1, 0 strb r1, [r0, 0x8] _0804FDBC: ldr r0, =gUnknown_02024082 ldrb r1, [r0] ldr r0, =gUnknown_0202406C ldrb r0, [r0] subs r0, 0x1 cmp r1, r0 bne _0804FDCC movs r6, 0 _0804FDCC: ldr r2, =gUnknown_0831C3D8 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 bcc _0804FE80 cmp r6, 0 beq _0804FE80 ldr r4, =gBattleMoves ldr r3, =gUnknown_020241EA ldrh r0, [r3] lsls r1, r0, 1 adds r1, r0 lsls r1, 2 adds r1, r4 ldrb r0, [r1] cmp r0, 0x6F bne _0804FE1C ldr r0, =gUnknown_0202433C ldrb r1, [r5] lsls r1, 4 adds r1, r0 ldrb r0, [r1] movs r2, 0x1 orrs r0, r2 strb r0, [r1] ldr r1, =gUnknown_02024332 movs r0, 0 strb r0, [r1, 0x5] _0804FE1C: ldrh r0, [r3] lsls r1, r0, 1 adds r1, r0 lsls r1, 2 adds r1, r4 ldrb r0, [r1] cmp r0, 0x74 bne _0804FE42 ldr r0, =gUnknown_0202433C ldrb r1, [r5] lsls r1, 4 adds r1, r0 ldrb r0, [r1] movs r2, 0x2 orrs r0, r2 strb r0, [r1] ldr r1, =gUnknown_02024332 movs r0, 0x1 strb r0, [r1, 0x5] _0804FE42: 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 _0804FEA2 .pool _0804FE80: ldr r2, =gUnknown_020242BC ldr r0, =gUnknown_0202420B 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, =gUnknown_02024332 movs r0, 0x2 strb r0, [r1, 0x5] ldr r2, =gBattleMoveFlags ldrb r0, [r2] movs r1, 0x1 orrs r0, r1 strb r0, [r2] _0804FEA2: ldr r1, =gUnknown_02024214 ldr r0, [r1] adds r0, 0x1 str r0, [r1] pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end atk77_setprotect thumb_func_start atk78_faintifabilitynotdamp atk78_faintifabilitynotdamp: @ 804FEC8 push {r4-r7,lr} mov r7, r8 push {r7} ldr r0, =gUnknown_02024068 ldr r2, [r0] cmp r2, 0 bne _0804FFCC ldr r1, =gEnemyMonIndex strb r2, [r1] ldr r0, =gUnknown_0202406C ldrb r3, [r0] adds r5, r1, 0 mov r8, r0 ldr r6, =gBattleMons cmp r2, r3 bcs _0804FF14 adds r0, r6, 0 adds r0, 0x20 ldrb r0, [r0] cmp r0, 0x6 beq _0804FF14 adds r2, r3, 0 adds r4, r6, 0 movs r3, 0x58 _0804FEF8: ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] lsls r0, 24 lsrs r0, 24 cmp r0, r2 bcs _0804FF14 ldrb r0, [r5] muls r0, r3 adds r0, r4 adds r0, 0x20 ldrb r0, [r0] cmp r0, 0x6 bne _0804FEF8 _0804FF14: ldrb r0, [r5] mov r1, r8 ldrb r1, [r1] cmp r0, r1 bne _0804FFB0 ldr r4, =gUnknown_02024064 ldr r7, =gUnknown_0202420B ldrb r0, [r7] strb r0, [r4] ldr r2, =gBattleMoveDamage ldrb r1, [r4] movs r0, 0x58 muls r0, r1 adds r0, r6 ldrh r0, [r0, 0x28] str r0, [r2] ldr r1, =0x00007fff 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, =gUnknown_02024214 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 _0804FFCC adds r3, r5, 0 ldrb r5, [r7] ldr r7, =gBitTable adds r4, r0, 0 ldr r6, =gUnknown_02024210 _0804FF60: ldrb r2, [r3] cmp r2, r5 beq _0804FF76 ldrb r0, [r6] ldrb r1, [r3] lsls r1, 2 adds r1, r7 ldr r1, [r1] ands r0, r1 cmp r0, 0 beq _0804FFCC _0804FF76: adds r0, r2, 0x1 strb r0, [r3] lsls r0, 24 lsrs r0, 24 cmp r0, r4 bcc _0804FF60 b _0804FFCC .pool _0804FFB0: ldr r1, =gUnknown_0202420A 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 b_history__record_ability_usage_of_player ldr r1, =gUnknown_02024214 ldr r0, =gUnknown_082DB560 str r0, [r1] _0804FFCC: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end atk78_faintifabilitynotdamp thumb_func_start atk79_setuserhptozero atk79_setuserhptozero: @ 804FFE4 push {r4,lr} sub sp, 0x4 ldr r0, =gUnknown_02024068 ldr r3, [r0] cmp r3, 0 bne _08050028 ldr r4, =gUnknown_02024064 ldr r0, =gUnknown_0202420B ldrb r0, [r0] strb r0, [r4] ldr r1, =gBattleMons 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, =gUnknown_02024214 ldr r0, [r1] adds r0, 0x1 str r0, [r1] _08050028: add sp, 0x4 pop {r4} pop {r0} bx r0 .pool thumb_func_end atk79_setuserhptozero thumb_func_start sub_8050044 sub_8050044: @ 8050044 push {r4-r7,lr} ldr r3, =gUnknown_02024214 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, =gBattleTypeFlags ldr r0, [r0] movs r1, 0x1 ands r0, r1 adds r7, r3, 0 cmp r0, 0 beq _080500DC ldr r0, =gEnemyMonIndex ldrb r1, [r0] adds r1, 0x1 strb r1, [r0] ldr r2, =gUnknown_0202420B lsls r1, 24 lsrs r1, 24 adds r3, r0, 0 ldr r6, =gUnknown_02024210 ldr r5, =gBitTable ldr r0, =gUnknown_0202406C mov r12, r0 ldrb r0, [r2] cmp r1, r0 bne _0805009A _0805008A: ldrb r0, [r3] adds r0, 0x1 strb r0, [r3] lsls r0, 24 lsrs r0, 24 ldrb r1, [r2] cmp r0, r1 beq _0805008A _0805009A: ldrb r0, [r6] ldrb r1, [r3] lsls r1, 2 adds r1, r5 ldr r1, [r1] ands r0, r1 cmp r0, 0 bne _0805008A ldrb r0, [r3] mov r2, r12 ldrb r2, [r2] cmp r0, r2 bcc _080500D8 ldr r0, [r7] adds r0, 0x5 str r0, [r7] b _080500E0 .pool _080500D8: str r4, [r7] b _080500E0 _080500DC: adds r0, r2, 0x5 str r0, [r3] _080500E0: pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8050044 thumb_func_start sub_80500E8 sub_80500E8: @ 80500E8 push {r4-r6,lr} ldr r4, =gUnknown_02024214 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, =gEnemyMonIndex cmp r0, 0x1 bne _08050110 ldr r0, =gUnknown_0202420B ldrb r0, [r0] strb r0, [r3] _08050110: ldr r1, =gBattleMoveDamage ldr r6, =gBattleMons 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 _0805012A movs r0, 0x1 str r0, [r1] _0805012A: 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 _08050158 str r2, [r4] b _0805015E .pool _08050158: ldr r0, [r4] adds r0, 0x6 str r0, [r4] _0805015E: pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_80500E8 thumb_func_start sub_8050164 sub_8050164: @ 8050164 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x8 ldr r2, =gUnknown_0202406C ldr r0, =gUnknown_0202420B mov r10, r0 movs r1, 0 add r0, sp, 0x4 _0805017A: strh r1, [r0] subs r0, 0x2 cmp r0, sp bge _0805017A movs r1, 0 mov r8, r1 movs r5, 0 ldrb r1, [r2] cmp r5, r1 bge _080501D0 ldr r0, =gUnknown_0202420B ldrb r6, [r0] ldr r2, =0x0000ffff mov r9, r2 lsls r4, r6, 3 mov r2, sp ldr r0, =gUnknown_0202449C mov r12, r0 adds r7, r1, 0 _080501A0: cmp r5, r6 beq _080501C8 mov r1, r12 ldr r0, [r1] adds r0, r4, r0 adds r1, r0, 0 adds r1, 0xE0 ldrb r3, [r1] adds r0, 0xE1 ldrb r0, [r0] lsls r0, 8 orrs r3, r0 cmp r3, 0 beq _080501C8 cmp r3, r9 beq _080501C8 strh r3, [r2] adds r2, 0x2 movs r0, 0x1 add r8, r0 _080501C8: adds r4, 0x2 adds r5, 0x1 cmp r5, r7 blt _080501A0 _080501D0: mov r1, r10 ldrb r0, [r1] ldr r2, =gUnknown_0202449C ldr r1, [r2] lsls r0, 1 adds r0, r1 adds r1, r0, 0 adds r1, 0x98 ldrb r3, [r1] adds r0, 0x99 ldrb r0, [r0] lsls r0, 8 orrs r3, r0 cmp r3, 0 beq _08050220 ldr r0, =0x0000ffff cmp r3, r0 beq _08050220 ldr r2, =gUnknown_02024280 ldr r0, [r2] ldr r1, =0xfffffbff ands r0, r1 str r0, [r2] ldr r4, =gUnknown_020241EA strh r3, [r4] b _0805024A .pool _08050220: mov r0, r8 cmp r0, 0 beq _08050290 ldr r2, =gUnknown_02024280 ldr r0, [r2] ldr r1, =0xfffffbff ands r0, r1 str r0, [r2] bl Random lsls r0, 16 lsrs r0, 16 mov r1, r8 bl __modsi3 adds r5, r0, 0 ldr r4, =gUnknown_020241EA lsls r0, r5, 1 add r0, sp ldrh r0, [r0] strh r0, [r4] _0805024A: ldrh r0, [r4] movs r1, 0 bl sub_80458E0 ldr r1, =gEnemyMonIndex strb r0, [r1] ldr r5, =gUnknown_02024214 ldr r3, =gUnknown_082D86A8 ldr r2, =gBattleMoves 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 _080502AE .pool _08050290: ldr r2, =gUnknown_0202437C mov r0, r10 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 r1, =gUnknown_02024214 ldr r0, [r1] adds r0, 0x1 str r0, [r1] _080502AE: add sp, 0x8 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_8050164 thumb_func_start sub_80502C8 sub_80502C8: @ 80502C8 push {lr} ldr r2, =gBattleWeather ldrh r0, [r2] movs r1, 0x7 ands r1, r0 cmp r1, 0 beq _080502F4 ldr r2, =gBattleMoveFlags ldrb r0, [r2] movs r1, 0x1 orrs r0, r1 strb r0, [r2] ldr r1, =gUnknown_02024332 movs r0, 0x2 strb r0, [r1, 0x5] b _08050304 .pool _080502F4: movs r0, 0x1 strh r0, [r2] ldr r0, =gUnknown_02024332 strb r1, [r0, 0x5] ldr r0, =gUnknown_020243D0 adds r0, 0x28 movs r1, 0x5 strb r1, [r0] _08050304: ldr r1, =gUnknown_02024214 ldr r0, [r1] adds r0, 0x1 str r0, [r1] pop {r0} bx r0 .pool thumb_func_end sub_80502C8 thumb_func_start atk7E_setreflect atk7E_setreflect: @ 805031C push {r4-r6,lr} ldr r6, =gUnknown_0202420B ldrb r0, [r6] bl battle_get_per_side_status ldr r4, =gUnknown_0202428E movs r5, 0x1 adds r1, r5, 0 ands r1, r0 lsls r1, 1 adds r1, r4 ldrh r1, [r1] adds r0, r5, 0 ands r0, r1 cmp r0, 0 beq _0805035C ldr r2, =gBattleMoveFlags ldrb r0, [r2] movs r1, 0x1 orrs r0, r1 strb r0, [r2] ldr r1, =gUnknown_02024332 movs r0, 0 b _080503D0 .pool _0805035C: ldrb r0, [r6] bl battle_get_per_side_status adds r1, r5, 0 ands r1, r0 lsls r1, 1 adds r1, r4 ldrh r0, [r1] movs r2, 0x1 orrs r0, r2 strh r0, [r1] ldrb r0, [r6] bl battle_get_per_side_status ldr r4, =gUnknown_02024294 adds r1, r5, 0 ands r1, r0 lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r4 movs r1, 0x5 strb r1, [r0] ldrb r0, [r6] 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, r4 ldrb r1, [r6] strb r1, [r0, 0x1] ldr r0, =gBattleTypeFlags ldr r0, [r0] ands r0, r5 cmp r0, 0 beq _080503CC movs r0, 0x1 bl sub_8069DEC lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0x2 bne _080503CC ldr r0, =gUnknown_02024332 strb r1, [r0, 0x5] b _080503D2 .pool _080503CC: ldr r1, =gUnknown_02024332 movs r0, 0x1 _080503D0: strb r0, [r1, 0x5] _080503D2: ldr r1, =gUnknown_02024214 ldr r0, [r1] adds r0, 0x1 str r0, [r1] pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end atk7E_setreflect thumb_func_start sub_80503E8 sub_80503E8: @ 80503E8 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} ldr r7, =gBattleMoveFlags ldrb r5, [r7] movs r0, 0x29 ands r0, r5 cmp r0, 0 bne _0805041A ldr r0, =gUnknown_020242AC mov r9, r0 ldr r1, =gEnemyMonIndex 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 _08050438 _0805041A: movs r0, 0x1 orrs r0, r5 strb r0, [r7] ldr r1, =gUnknown_02024332 movs r0, 0x1 strb r0, [r1, 0x5] b _08050488 .pool _08050438: ldr r1, =gBattleMons movs r0, 0x58 muls r0, r4 adds r1, r0, r1 adds r0, r1, 0 adds r0, 0x21 ldrb r0, [r0] cmp r0, 0xC beq _08050454 adds r0, r1, 0 adds r0, 0x22 ldrb r0, [r0] cmp r0, 0xC bne _0805046C _08050454: movs r0, 0x1 orrs r0, r5 strb r0, [r7] ldr r1, =gUnknown_02024332 movs r0, 0x2 strb r0, [r1, 0x5] b _08050488 .pool _0805046C: ldr r0, =gUnknown_0202420B 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, =gUnknown_02024332 strb r3, [r0, 0x5] _08050488: ldr r1, =gUnknown_02024214 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 .pool thumb_func_end sub_80503E8 thumb_func_start atk80_manipulatedamage atk80_manipulatedamage: @ 80504A8 push {r4,lr} ldr r1, =gUnknown_02024214 ldr r0, [r1] ldrb r2, [r0, 0x1] adds r4, r1, 0 cmp r2, 0x1 beq _080504D8 cmp r2, 0x1 bgt _080504C4 cmp r2, 0 beq _080504CA b _08050518 .pool _080504C4: cmp r2, 0x2 beq _08050510 b _08050518 _080504CA: ldr r1, =gBattleMoveDamage ldr r0, [r1] negs r0, r0 b _08050516 .pool _080504D8: ldr r3, =gBattleMoveDamage ldr r0, [r3] lsrs r1, r0, 31 adds r0, r1 asrs r0, 1 str r0, [r3] cmp r0, 0 bne _080504EA str r2, [r3] _080504EA: ldr r2, =gBattleMons ldr r0, =gEnemyMonIndex 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 _08050518 str r1, [r3] b _08050518 .pool _08050510: ldr r1, =gBattleMoveDamage ldr r0, [r1] lsls r0, 1 _08050516: str r0, [r1] _08050518: ldr r0, [r4] adds r0, 0x2 str r0, [r4] pop {r4} pop {r0} bx r0 .pool thumb_func_end atk80_manipulatedamage thumb_func_start atk81_setrest atk81_setrest: @ 8050528 push {r4-r7,lr} sub sp, 0x4 ldr r0, =gUnknown_02024214 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, =gUnknown_02024064 ldr r2, =gEnemyMonIndex ldr r0, =gUnknown_0202420B ldrb r0, [r0] strb r0, [r2] strb r0, [r5] ldr r4, =gBattleMoveDamage ldr r1, =gBattleMons 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 _08050598 mov r0, r12 str r6, [r0] b _080505E8 .pool _08050598: adds r0, r2, 0 adds r0, 0x4C adds r0, r4, r0 ldr r1, [r0] movs r0, 0xF8 ands r1, r0 cmp r1, 0 beq _080505B4 ldr r1, =gUnknown_02024332 movs r0, 0x1 strb r0, [r1, 0x5] b _080505B8 .pool _080505B4: ldr r0, =gUnknown_02024332 strb r1, [r0, 0x5] _080505B8: 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, =gUnknown_02024214 ldr r0, [r1] adds r0, 0x5 str r0, [r1] _080505E8: add sp, 0x4 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end atk81_setrest thumb_func_start atk82_jumpifnotfirstturn atk82_jumpifnotfirstturn: @ 80505F8 push {r4,r5,lr} ldr r5, =gUnknown_02024214 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, =gUnknown_020242BC ldr r0, =gUnknown_0202420B ldrb r1, [r0] lsls r0, r1, 3 subs r0, r1 lsls r0, 2 adds r0, r2 ldrb r0, [r0, 0x16] cmp r0, 0 beq _08050638 adds r0, r4, 0x5 str r0, [r5] b _0805063A .pool _08050638: str r3, [r5] _0805063A: pop {r4,r5} pop {r0} bx r0 thumb_func_end atk82_jumpifnotfirstturn thumb_func_start sub_8050640 sub_8050640: @ 8050640 ldr r1, =gUnknown_02024214 ldr r0, [r1] adds r0, 0x1 str r0, [r1] bx lr .pool thumb_func_end sub_8050640 thumb_func_start sub_8050650 sub_8050650: @ 8050650 push {r4-r7,lr} mov r7, r8 push {r7} lsls r0, 24 lsrs r3, r0, 24 movs r2, 0 ldr r0, =gUnknown_0202406C ldrb r1, [r0] mov r8, r0 cmp r2, r1 bge _080506C4 ldr r0, =gBattleMons mov r12, r0 movs r0, 0x58 muls r0, r3 add r0, r12 adds r5, r0, 0 adds r5, 0x20 adds r4, r1, 0 movs r3, 0 ldr r6, =gUnknown_02024474 ldr r7, =gUnknown_02024332 _0805067C: mov r0, r12 adds r0, 0x50 adds r0, r3, r0 ldr r0, [r0] movs r1, 0x70 ands r0, r1 cmp r0, 0 beq _080506BC ldrb r0, [r5] cmp r0, 0x2B beq _080506BC movs r3, 0 strb r2, [r6, 0x17] ldr r1, =gEnemyMonIndex ldrb r0, [r1] cmp r0, 0xFF beq _080506DC cmp r0, r2 beq _080506D0 movs r0, 0x1 strb r0, [r7, 0x5] b _080506C4 .pool _080506BC: adds r3, 0x58 adds r2, 0x1 cmp r2, r4 blt _0805067C _080506C4: mov r1, r8 ldrb r1, [r1] cmp r2, r1 beq _080506E0 movs r0, 0x1 b _080506E2 _080506D0: ldr r0, =gUnknown_02024332 strb r3, [r0, 0x5] b _080506C4 .pool _080506DC: strb r2, [r1] b _080506C4 _080506E0: movs r0, 0 _080506E2: pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_8050650 thumb_func_start sub_80506EC sub_80506EC: @ 80506EC push {r4-r6,lr} ldr r5, =gUnknown_02024214 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, =gEnemyMonIndex ldrb r0, [r6] bl sub_8050650 lsls r0, 24 cmp r0, 0 beq _08050720 str r4, [r5] b _08050762 .pool _08050720: ldr r1, =gBattleMons 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 _08050738 cmp r1, 0x48 bne _0805075C _08050738: ldr r2, =gUnknown_0202420A strb r0, [r2] ldr r1, =gUnknown_02024332 movs r0, 0x2 strb r0, [r1, 0x5] str r4, [r5] ldrb r1, [r2] adds r0, r3, 0 bl b_history__record_ability_usage_of_player b _08050762 .pool _0805075C: ldr r0, [r5] adds r0, 0x5 str r0, [r5] _08050762: pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_80506EC thumb_func_start sub_8050768 sub_8050768: @ 8050768 push {r4,r5,lr} ldr r5, =gUnknown_020242BC ldr r4, =gUnknown_0202420B 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 _080507A0 ldr r2, =gBattleMoveFlags ldrb r0, [r2] movs r1, 0x1 orrs r0, r1 strb r0, [r2] ldr r1, =gUnknown_02024332 movs r0, 0x1 strb r0, [r1, 0x5] b _080507CA .pool _080507A0: adds r0, 0x1 movs r3, 0 strb r0, [r1, 0x9] ldr r2, =gUnknown_02022F58 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, =gUnknown_02024332 strb r3, [r0, 0x5] _080507CA: ldr r1, =gUnknown_02024214 ldr r0, [r1] adds r0, 0x1 str r0, [r1] pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_8050768 thumb_func_start atk86_stockpiletobasedamage atk86_stockpiletobasedamage: @ 80507E4 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x10 ldr r3, =gUnknown_02024214 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, =gUnknown_020242BC ldr r6, =gUnknown_0202420B ldrb r1, [r6] lsls r0, r1, 3 subs r0, r1 lsls r0, 2 adds r0, r7 ldrb r0, [r0, 0x9] cmp r0, 0 bne _08050828 str r2, [r3] b _080508CA .pool _08050828: ldr r0, =gUnknown_02024332 ldrb r0, [r0, 0x6] cmp r0, 0x1 beq _080508B0 ldr r0, =gBattleMoveDamage mov r8, r0 ldr r4, =gUnknown_0202428E ldr r5, =gEnemyMonIndex 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, =gBattleMons adds r0, r2 ldrb r1, [r5] muls r1, r4 adds r1, r2 ldr r2, =gUnknown_020241EA 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_806957C 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, =gUnknown_02024474 ldrb r1, [r6] lsls r0, r1, 3 subs r0, r1 lsls r0, 2 adds r0, r7 ldrb r0, [r0, 0x9] strb r0, [r2, 0x18] ldr r1, =gUnknown_0202433C ldrb r0, [r6] lsls r0, 4 adds r0, r1 ldrb r0, [r0] lsls r0, 28 cmp r0, 0 bge _080508B0 lsls r0, r3, 4 subs r0, r3 movs r1, 0xA bl __divsi3 mov r1, r8 str r0, [r1] _080508B0: ldr r2, =gUnknown_020242BC ldr r0, =gUnknown_0202420B 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, =gUnknown_02024214 ldr r0, [r1] adds r0, 0x5 str r0, [r1] _080508CA: add sp, 0x10 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end atk86_stockpiletobasedamage thumb_func_start atk87_stockpiletohprecovery atk87_stockpiletohprecovery: @ 8050904 push {r4-r7,lr} mov r7, r8 push {r7} ldr r7, =gUnknown_02024214 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, =gUnknown_020242BC mov r8, r0 ldr r6, =gUnknown_0202420B 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 _08050954 str r2, [r7] ldr r0, =gUnknown_02024332 strb r1, [r0, 0x5] b _080509D0 .pool _08050954: ldr r1, =gBattleMons movs r0, 0x58 muls r0, r3 adds r1, r0, r1 ldrh r0, [r1, 0x2C] ldrh r3, [r1, 0x28] cmp r0, r3 bne _08050984 movs r0, 0 strb r0, [r4, 0x9] str r2, [r7] ldr r1, =gEnemyMonIndex ldrb r0, [r6] strb r0, [r1] ldr r1, =gUnknown_02024332 movs r0, 0x1 strb r0, [r1, 0x5] b _080509D0 .pool _08050984: ldr r5, =gBattleMoveDamage 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 _080509A0 str r4, [r5] _080509A0: ldr r0, [r5] negs r0, r0 str r0, [r5] ldr r3, =gUnknown_02024474 ldrb r1, [r6] lsls r0, r1, 3 subs r0, r1 lsls r0, 2 add r0, r8 ldrb r0, [r0, 0x9] movs r2, 0 strb r0, [r3, 0x18] ldrb r1, [r6] lsls r0, r1, 3 subs r0, r1 lsls r0, 2 add r0, r8 strb r2, [r0, 0x9] ldr r0, [r7] adds r0, 0x5 str r0, [r7] ldr r1, =gEnemyMonIndex ldrb r0, [r6] strb r0, [r1] _080509D0: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end atk87_stockpiletohprecovery thumb_func_start atk88_negativedamage atk88_negativedamage: @ 80509E8 push {lr} ldr r2, =gBattleMoveDamage ldr r0, =gUnknown_020241F4 ldr r0, [r0] lsrs r1, r0, 31 adds r0, r1 asrs r0, 1 negs r0, r0 str r0, [r2] cmp r0, 0 bne _08050A04 movs r0, 0x1 negs r0, r0 str r0, [r2] _08050A04: ldr r1, =gUnknown_02024214 ldr r0, [r1] adds r0, 0x1 str r0, [r1] pop {r0} bx r0 .pool thumb_func_end atk88_negativedamage thumb_func_start sub_8050A1C sub_8050A1C: @ 8050A1C 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 _08050A50 ldr r0, =gUnknown_02024064 ldr r1, =gUnknown_0202420B b _08050A54 .pool _08050A50: ldr r0, =gUnknown_02024064 ldr r1, =gEnemyMonIndex _08050A54: ldrb r1, [r1] strb r1, [r0] movs r0, 0xBF ands r5, r0 movs r0, 0x80 ands r0, r5 cmp r0, 0 beq _08050A6E mov r0, r9 adds r0, 0x1 lsls r0, 24 lsrs r0, 24 mov r9, r0 _08050A6E: movs r0, 0x7F ands r5, r0 movs r0, 0x20 ands r0, r5 cmp r0, 0 beq _08050A84 mov r0, r10 adds r0, 0x1 lsls r0, 24 lsrs r0, 24 mov r10, r0 _08050A84: movs r0, 0xDF ands r5, r0 ldr r1, =gUnknown_02022F58 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 _08050AA8 b _08050D8C _08050AA8: ldr r4, =gUnknown_02024294 ldr r1, =gUnknown_02024064 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, 0x4] cmp r0, 0 beq _08050B48 mov r2, r9 cmp r2, 0 bne _08050B48 ldr r0, =gUnknown_020241EA ldrh r0, [r0] cmp r0, 0xAE beq _08050B78 cmp r5, 0x1 bne _08050B68 ldr r4, =gUnknown_0202437C ldr r3, =gUnknown_02024064 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 _08050B10 ldr r0, =gUnknown_02024214 mov r4, r8 str r4, [r0] b _08050B68 .pool _08050B10: mov r0, r8 bl b_movescr_stack_push ldr r1, =gUnknown_02024474 ldr r6, =gUnknown_02024064 ldrb r0, [r6] strb r0, [r1, 0x17] ldr r1, =gUnknown_02024214 ldr r0, =gUnknown_082DAE03 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 _08050B68 .pool _08050B48: ldr r0, =gUnknown_020241EA ldrh r0, [r0] cmp r0, 0xAE beq _08050B78 mov r0, r10 cmp r0, 0x1 beq _08050B78 movs r0, 0 bl sub_80464AC lsls r0, 24 cmp r0, 0 beq _08050B78 ldr r1, =gUnknown_02024214 ldr r0, =gUnknown_082D9F1C str r0, [r1] _08050B68: movs r0, 0x1 b _08050E80 .pool _08050B78: ldr r2, =gBattleMons ldr r1, =gUnknown_02024064 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 _08050B94 cmp r0, 0x49 bne _08050C2C _08050B94: mov r0, r9 cmp r0, 0 bne _08050C2C ldr r0, =gUnknown_020241EA ldrh r0, [r0] cmp r0, 0xAE beq _08050C2C cmp r5, 0x1 bne _08050B68 ldr r4, =gUnknown_0202437C lsls r0, r3, 2 adds r0, r3 lsls r0, 2 adds r0, r4 ldrb r0, [r0] lsls r0, 31 cmp r0, 0 beq _08050BD4 ldr r0, =gUnknown_02024214 mov r1, r8 str r1, [r0] b _08050B68 .pool _08050BD4: mov r0, r8 bl b_movescr_stack_push ldr r1, =gUnknown_02024474 ldr r2, =gUnknown_02024064 ldrb r0, [r2] strb r0, [r1, 0x17] ldr r1, =gUnknown_02024214 ldr r0, =gUnknown_082DB5C7 str r0, [r1] ldr r1, =gUnknown_0202420A ldrb r0, [r2] movs r3, 0x58 muls r0, r3 add r0, r10 adds r0, 0x20 ldrb r0, [r0] strb r0, [r1] ldrb r0, [r2] ldrb r1, [r1] bl b_history__record_ability_usage_of_player ldr r6, =gUnknown_02024064 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 _08050B68 .pool _08050C2C: ldr r1, =gUnknown_02024064 ldrb r0, [r1] movs r4, 0x58 muls r0, r4 add r0, r10 adds r0, 0x20 ldrb r0, [r0] cmp r0, 0x33 bne _08050C8C mov r2, r9 cmp r2, 0 bne _08050C8C cmp r7, 0x6 bne _08050C8C cmp r5, 0x1 bne _08050B68 mov r0, r8 bl b_movescr_stack_push ldr r1, =gUnknown_02024474 ldr r3, =gUnknown_02024064 ldrb r0, [r3] strb r0, [r1, 0x17] ldr r1, =gUnknown_02024214 ldr r0, =gUnknown_082DB62F str r0, [r1] ldr r1, =gUnknown_0202420A 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 b_history__record_ability_usage_of_player b _08050B68 .pool _08050C8C: ldr r4, =gUnknown_02024064 ldrb r0, [r4] movs r4, 0x58 muls r0, r4 add r0, r10 adds r0, 0x20 ldrb r0, [r0] cmp r0, 0x34 bne _08050CF0 mov r0, r9 cmp r0, 0 bne _08050CF0 cmp r7, 0x1 bne _08050CF0 cmp r5, 0x1 beq _08050CAE b _08050B68 _08050CAE: mov r0, r8 bl b_movescr_stack_push ldr r1, =gUnknown_02024474 ldr r2, =gUnknown_02024064 ldrb r0, [r2] strb r0, [r1, 0x17] ldr r1, =gUnknown_02024214 ldr r0, =gUnknown_082DB62F str r0, [r1] ldr r1, =gUnknown_0202420A ldrb r0, [r2] muls r0, r4 add r0, r10 adds r0, 0x20 ldrb r0, [r0] strb r0, [r1] ldrb r0, [r2] ldrb r1, [r1] bl b_history__record_ability_usage_of_player b _08050B68 .pool _08050CF0: ldr r3, =gUnknown_02024064 ldrb r1, [r3] movs r0, 0x58 muls r0, r1 add r0, r10 adds r0, 0x20 ldrb r0, [r0] cmp r0, 0x13 bne _08050D08 cmp r5, 0 bne _08050D08 b _08050B68 _08050D08: lsls r0, r6, 24 asrs r0, 28 movs r1, 0x7 ands r0, r1 negs r0, r0 lsls r0, 24 ldr r3, =gUnknown_02022F68 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 _08050D32 strb r4, [r3, 0x1] movs r0, 0xD3 strb r0, [r3, 0x2] strb r4, [r3, 0x3] movs r2, 0x4 _08050D32: 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 r4, =gUnknown_02024064 ldrb r2, [r4] 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 _08050DE2 movs r1, 0 ldr r0, =gEnemyMonIndex ldrb r0, [r0] ldr r3, =gUnknown_02024332 mov r8, r3 cmp r0, r2 bne _08050D76 movs r1, 0x1 _08050D76: mov r4, r8 strb r1, [r4, 0x5] b _08050E10 .pool _08050D8C: asrs r6, r0, 28 movs r0, 0x7 ands r6, r0 ldr r3, =gUnknown_02022F68 strb r2, [r3] movs r2, 0x1 cmp r6, 0x2 bne _08050DA6 strb r4, [r3, 0x1] movs r0, 0xD1 strb r0, [r3, 0x2] strb r4, [r3, 0x3] movs r2, 0x4 _08050DA6: 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, =gBattleMons ldr r4, =gUnknown_02024064 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 _08050DFC _08050DE2: ldr r1, =gUnknown_02024332 movs r0, 0x2 strb r0, [r1, 0x5] mov r8, r1 b _08050E10 .pool _08050DFC: movs r1, 0 ldr r0, =gEnemyMonIndex ldrb r0, [r0] ldr r2, =gUnknown_02024332 mov r8, r2 cmp r0, r3 bne _08050E0C movs r1, 0x1 _08050E0C: mov r3, r8 strb r1, [r3, 0x5] _08050E10: ldr r2, =gUnknown_02024064 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 _08050E40 movs r0, 0 strb r0, [r1] _08050E40: ldr r1, =gUnknown_02024064 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 _08050E56 movs r0, 0xC strb r0, [r1] _08050E56: mov r2, r8 ldrb r0, [r2, 0x5] cmp r0, 0x2 bne _08050E7E movs r3, 0x1 ands r3, r5 cmp r3, 0 beq _08050E70 ldr r0, =gBattleMoveFlags ldrb r1, [r0] movs r2, 0x1 orrs r1, r2 strb r1, [r0] _08050E70: mov r4, r8 ldrb r0, [r4, 0x5] cmp r0, 0x2 bne _08050E7E cmp r3, 0 bne _08050E7E b _08050B68 _08050E7E: movs r0, 0 _08050E80: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 .pool thumb_func_end sub_8050A1C thumb_func_start atk89_statbuffchange atk89_statbuffchange: @ 8050EA0 push {r4,r5,lr} ldr r5, =gUnknown_02024214 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, =gUnknown_02024474 ldrb r4, [r0, 0x1A] movs r0, 0xF0 ands r0, r4 lsls r0, 24 asrs r0, 24 movs r1, 0xF ands r1, r4 ldrb r2, [r2, 0x1] bl sub_8050A1C lsls r0, 24 cmp r0, 0 bne _08050EDC ldr r0, [r5] adds r0, 0x6 str r0, [r5] _08050EDC: pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end atk89_statbuffchange thumb_func_start atk8A_normalisebuffs atk8A_normalisebuffs: @ 8050EEC push {r4-r7,lr} movs r2, 0 ldr r0, =gUnknown_0202406C ldrb r1, [r0] ldr r0, =gUnknown_02024214 mov r12, r0 cmp r2, r1 bge _08050F24 ldr r0, =gBattleMons movs r4, 0x6 adds r5, r1, 0 movs r7, 0x58 adds r6, r0, 0 adds r6, 0x18 _08050F08: adds r3, r2, 0x1 movs r1, 0x7 adds r0, r2, 0 muls r0, r7 adds r0, r6 adds r0, 0x7 _08050F14: strb r4, [r0] subs r0, 0x1 subs r1, 0x1 cmp r1, 0 bge _08050F14 adds r2, r3, 0 cmp r2, r5 blt _08050F08 _08050F24: mov r1, r12 ldr r0, [r1] adds r0, 0x1 str r0, [r1] pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end atk8A_normalisebuffs thumb_func_start atk8B_setbide atk8B_setbide: @ 8050F40 push {r4,r5,lr} ldr r4, =gBattleMons ldr r3, =gUnknown_0202420B 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, =gUnknown_02024268 ldrb r0, [r3] lsls r0, 1 adds r0, r1 ldr r1, =gUnknown_020241EA ldrh r1, [r1] movs r2, 0 strh r1, [r0] ldr r1, =gUnknown_020241F8 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, =gUnknown_02024214 ldr r0, [r1] adds r0, 0x1 str r0, [r1] pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end atk8B_setbide thumb_func_start atk8C_confuseifrepeatingattackends atk8C_confuseifrepeatingattackends: @ 8050FB0 push {lr} ldr r1, =gBattleMons ldr r0, =gUnknown_0202420B 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 _08050FD2 ldr r1, =gUnknown_02024332 movs r0, 0x75 strb r0, [r1, 0x3] _08050FD2: ldr r1, =gUnknown_02024214 ldr r0, [r1] adds r0, 0x1 str r0, [r1] pop {r0} bx r0 .pool thumb_func_end atk8C_confuseifrepeatingattackends thumb_func_start atk8D_setloopcounter atk8D_setloopcounter: @ 8050FF0 push {r4,r5,lr} ldr r0, =gUnknown_02024214 ldr r0, [r0] ldrb r1, [r0, 0x1] cmp r1, 0 beq _0805100C ldr r0, =gUnknown_02024212 strb r1, [r0] b _08051026 .pool _0805100C: ldr r4, =gUnknown_02024212 bl Random movs r5, 0x3 ands r0, r5 strb r0, [r4] cmp r0, 0x1 bls _08051022 bl Random ands r0, r5 _08051022: adds r0, 0x2 strb r0, [r4] _08051026: ldr r1, =gUnknown_02024214 ldr r0, [r1] adds r0, 0x2 str r0, [r1] pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end atk8D_setloopcounter thumb_func_start atk8E_cmd8e atk8E_cmd8e: @ 805103C ldr r1, =gUnknown_02024474 movs r2, 0 movs r0, 0xFD strb r0, [r1, 0x8] movs r0, 0x1 strb r0, [r1, 0x9] strb r0, [r1, 0xA] strb r0, [r1, 0xB] strb r2, [r1, 0xC] movs r0, 0xFF strb r0, [r1, 0xD] ldr r1, =gUnknown_02024214 ldr r0, [r1] adds r0, 0x1 str r0, [r1] bx lr .pool thumb_func_end atk8E_cmd8e thumb_func_start sub_8051064 sub_8051064: @ 8051064 push {r4-r7,lr} ldr r6, =gBattleMons ldr r7, =gUnknown_0202420B ldrb r0, [r7] movs r5, 0x58 adds r1, r0, 0 muls r1, r5 adds r1, r6 adds r1, 0x2A ldr r4, =gEnemyMonIndex 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 _080510AC ldr r0, =gUnknown_0202449C ldr r1, [r0] adds r1, r3, r1 adds r1, 0x58 ldr r2, =gUnknown_0202406E lsls r0, r3, 1 b _08051108 .pool _080510AC: 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 _080510FC ldr r3, =gUnknown_02024214 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 _08051116 .pool _080510FC: ldr r0, =gUnknown_0202449C ldr r1, [r0] adds r1, r4, r1 adds r1, 0x58 ldr r2, =gUnknown_0202406E lsls r0, r4, 1 _08051108: adds r0, r2 ldrh r0, [r0] strb r0, [r1] ldr r1, =gUnknown_02024214 ldr r0, =gUnknown_082DADD8 str r0, [r1] movs r0, 0x1 _08051116: pop {r4-r7} pop {r1} bx r1 .pool thumb_func_end sub_8051064 thumb_func_start sub_805112C sub_805112C: @ 805112C push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0xC movs r0, 0 str r0, [sp, 0x4] ldr r5, =gBattleTypeFlags ldr r0, [r5] movs r1, 0x8 ands r0, r1 cmp r0, 0 bne _0805114A b _08051410 _0805114A: ldr r4, =gEnemyMonIndex ldrb r0, [r4] bl battle_side_get_owner lsls r0, 24 ldr r1, =gEnemyParty str r1, [sp] cmp r0, 0 bne _08051160 ldr r0, =gPlayerParty str r0, [sp] _08051160: ldr r2, [r5] movs r1, 0x81 lsls r1, 1 adds r0, r2, 0 ands r0, r1 cmp r0, r1 beq _08051182 ldr r1, =0x02000100 adds r0, r2, 0 ands r0, r1 cmp r0, r1 beq _08051182 movs r0, 0x80 lsls r0, 15 ands r0, r2 cmp r0, 0 beq _080511C8 _08051182: ldr r2, =gEnemyMonIndex ldrb r1, [r2] movs r0, 0x2 ands r0, r1 adds r1, r2, 0 cmp r0, 0 beq _080511AC movs r0, 0x3 mov r9, r0 movs r0, 0x6 b _080511B2 .pool _080511AC: movs r0, 0 mov r9, r0 movs r0, 0x3 _080511B2: mov r8, r0 movs r0, 0x3 mov r10, r0 movs r0, 0x1 str r0, [sp, 0x8] ldr r2, =gUnknown_0202406E ldrb r1, [r1] b _0805128E .pool _080511C8: movs r0, 0x42 ands r0, r2 cmp r0, 0x42 beq _080511DA ldr r1, =0x02000040 adds r0, r2, 0 ands r0, r1 cmp r0, r1 bne _0805121C _080511DA: ldrb r0, [r4] bl sub_806D864 lsls r0, 24 lsrs r0, 24 bl sub_806D82C lsls r0, 16 lsrs r0, 16 cmp r0, 0x1 bne _080511FC movs r1, 0x3 mov r9, r1 movs r0, 0x6 b _08051202 .pool _080511FC: movs r1, 0 mov r9, r1 movs r0, 0x3 _08051202: mov r8, r0 movs r1, 0x3 mov r10, r1 movs r0, 0x1 str r0, [sp, 0x8] ldr r2, =gUnknown_0202406E ldr r0, =gEnemyMonIndex ldrb r1, [r0] b _0805128E .pool _0805121C: movs r0, 0x80 lsls r0, 8 ands r0, r2 cmp r0, 0 beq _08051274 ldrb r0, [r4] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 bne _08051240 movs r1, 0 mov r9, r1 movs r0, 0x6 mov r8, r0 mov r10, r0 movs r1, 0x2 b _08051260 _08051240: ldrb r1, [r4] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _08051252 movs r0, 0x3 mov r9, r0 movs r1, 0x6 b _08051258 _08051252: movs r0, 0 mov r9, r0 movs r1, 0x3 _08051258: mov r8, r1 movs r0, 0x3 mov r10, r0 movs r1, 0x1 _08051260: str r1, [sp, 0x8] ldr r2, =gUnknown_0202406E ldr r0, =gEnemyMonIndex ldrb r1, [r0] b _0805128E .pool _08051274: movs r0, 0x1 ands r2, r0 cmp r2, 0 beq _080512A4 movs r0, 0 mov r9, r0 movs r1, 0x6 mov r8, r1 mov r10, r1 movs r0, 0x2 str r0, [sp, 0x8] ldr r2, =gUnknown_0202406E ldrb r1, [r4] _0805128E: lsls r0, r1, 1 adds r0, r2 ldrh r7, [r0] movs r0, 0x2 eors r1, r0 lsls r1, 1 adds r1, r2 ldrh r5, [r1] b _080512BE .pool _080512A4: movs r1, 0 mov r9, r1 movs r0, 0x6 mov r8, r0 mov r10, r0 movs r1, 0x1 str r1, [sp, 0x8] ldr r1, =gUnknown_0202406E ldrb r0, [r4] lsls r0, 1 adds r0, r1 ldrh r5, [r0] adds r7, r5, 0 _080512BE: mov r6, r9 cmp r6, r8 bge _080512FC _080512C4: movs r0, 0x64 muls r0, r6 ldr r1, [sp] adds r4, r1, r0 adds r0, r4, 0 movs r1, 0xB bl GetMonData cmp r0, 0 beq _080512F6 adds r0, r4, 0 movs r1, 0x2D bl GetMonData cmp r0, 0 bne _080512F6 adds r0, r4, 0 movs r1, 0x39 bl GetMonData cmp r0, 0 beq _080512F6 ldr r0, [sp, 0x4] adds r0, 0x1 str r0, [sp, 0x4] _080512F6: adds r6, 0x1 cmp r6, r8 blt _080512C4 _080512FC: ldr r1, [sp, 0x4] ldr r0, [sp, 0x8] cmp r1, r0 bgt _08051328 ldr r3, =gUnknown_02024214 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 _08051414 .pool _08051328: bl sub_8051064 lsls r0, 24 cmp r0, 0 beq _08051378 _08051332: bl Random lsls r0, 16 lsrs r0, 16 mov r1, r10 bl __modsi3 adds r6, r0, 0 add r6, r9 cmp r6, r7 beq _08051332 cmp r6, r5 beq _08051332 movs r0, 0x64 muls r0, r6 ldr r1, [sp] adds r4, r1, r0 adds r0, r4, 0 movs r1, 0xB bl GetMonData cmp r0, 0 beq _08051332 adds r0, r4, 0 movs r1, 0x2D bl GetMonData cmp r0, 0x1 beq _08051332 adds r0, r4, 0 movs r1, 0x39 bl GetMonData cmp r0, 0 beq _08051332 _08051378: ldr r4, =gEnemyMonIndex ldrb r0, [r4] ldr r1, =gUnknown_0202449C ldr r1, [r1] adds r0, r1 adds r0, 0x5C strb r6, [r0] bl sub_81B1250 lsls r0, 24 cmp r0, 0 bne _08051396 ldrb r0, [r4] bl sub_803BDA0 _08051396: ldr r0, =gBattleTypeFlags ldr r2, [r0] movs r1, 0x81 lsls r1, 1 adds r0, r2, 0 ands r0, r1 cmp r0, r1 beq _080513C0 movs r0, 0x42 ands r0, r2 cmp r0, 0x42 beq _080513C0 ldr r1, =0x02000100 adds r0, r2, 0 ands r0, r1 cmp r0, r1 beq _080513C0 ldr r0, =0x02000040 ands r2, r0 cmp r2, r0 bne _080513DE _080513C0: ldr r5, =gEnemyMonIndex ldrb r0, [r5] lsls r4, r6, 24 lsrs r4, 24 adds r1, r4, 0 movs r2, 0 bl sub_81B8E80 ldrb r1, [r5] movs r0, 0x2 eors r0, r1 adds r1, r4, 0 movs r2, 0x1 bl sub_81B8E80 _080513DE: ldr r0, =gBattleTypeFlags ldr r0, [r0] movs r1, 0x80 lsls r1, 15 ands r0, r1 cmp r0, 0 beq _08051414 ldr r0, =gEnemyMonIndex ldrb r0, [r0] lsls r1, r6, 24 lsrs r1, 24 bl sub_80571DC b _08051414 .pool _08051410: bl sub_8051064 _08051414: add sp, 0xC pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_805112C thumb_func_start sub_8051424 sub_8051424: @ 8051424 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} movs r6, 0 ldr r2, =gBattleMons ldr r3, =gUnknown_0202420B 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 _08051466 movs r5, 0x58 adds r2, r1, 0 _0805144C: adds r0, r6, 0x1 lsls r0, 24 lsrs r6, r0, 24 cmp r6, 0x3 bhi _08051466 lsls r1, r6, 1 ldrb r0, [r3] muls r0, r5 adds r1, r0 adds r1, r2 ldrh r0, [r1] cmp r0, 0 bne _0805144C _08051466: movs r3, 0 cmp r3, r6 bcs _080514E8 ldr r0, =gBattleMoves mov r10, r0 ldr r5, =gBattleMons mov r12, r5 ldr r7, =gUnknown_0202420B ldrb r0, [r7] movs r4, 0x58 adds r5, r0, 0 muls r5, r4 movs r0, 0xC add r0, r12 mov r9, r0 _08051484: 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 _080514C6 mov r0, r8 adds r1, r5, r0 adds r0, r1, 0 adds r0, 0x21 ldrb r0, [r0] cmp r0, 0x7 beq _080514B2 adds r0, r1, 0 adds r0, 0x22 ldrb r0, [r0] cmp r0, 0x7 bne _080514C4 _080514B2: movs r2, 0x7 b _080514C6 .pool _080514C4: movs r2, 0 _080514C6: ldrb r0, [r7] muls r0, r4 add r0, r12 adds r1, r0, 0 adds r1, 0x21 ldrb r1, [r1] cmp r2, r1 beq _080514DE adds r0, 0x22 ldrb r0, [r0] cmp r2, r0 bne _080514E8 _080514DE: adds r0, r3, 0x1 lsls r0, 24 lsrs r3, r0, 24 cmp r3, r6 bcc _08051484 _080514E8: cmp r3, r6 bne _0805150C ldr r3, =gUnknown_02024214 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 _080515B0 .pool _0805150C: movs r7, 0x3 ldr r5, =gBattleMoves mov r9, r5 _08051512: bl Random adds r3, r0, 0 ands r3, r7 cmp r3, r6 bcs _08051512 ldr r4, =gBattleMons lsls r1, r3, 1 ldr r3, =gUnknown_0202420B 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 _08051572 mov r0, r8 adds r2, r5, r0 adds r0, r2, 0 adds r0, 0x21 ldrb r0, [r0] cmp r0, 0x7 beq _08051560 adds r0, r2, 0 adds r0, 0x22 ldrb r0, [r0] cmp r0, 0x7 bne _08051570 _08051560: movs r2, 0x7 b _08051572 .pool _08051570: movs r2, 0 _08051572: 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 _08051512 adds r0, 0x22 ldrb r0, [r0] cmp r2, r0 beq _08051512 strb r2, [r1] ldrb r0, [r4] muls r0, r3 add r0, r8 adds r0, 0x22 strb r2, [r0] ldr r1, =gUnknown_02022F58 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, =gUnknown_02024214 ldr r0, [r1] adds r0, 0x5 str r0, [r1] _080515B0: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_8051424 thumb_func_start atk91_givemoney atk91_givemoney: @ 80515C8 push {r4,lr} ldr r0, =gBattleTypeFlags ldr r0, [r0] ldr r1, =0x02000002 ands r0, r1 cmp r0, 0 bne _08051650 ldr r1, =gUnknown_0202432E ldrh r0, [r1] cmp r0, 0 beq _08051650 adds r1, r0, 0 ldr r0, =gUnknown_0202449C ldr r0, [r0] adds r0, 0x4A ldrb r0, [r0] adds r4, r1, 0 muls r4, r0 ldr r0, =gSaveBlock1Ptr ldr r0, [r0] movs r1, 0x92 lsls r1, 3 adds r0, r1 adds r1, r4, 0 bl add_money ldr r1, =gUnknown_02022F58 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] strb r4, [r1, 0x4] movs r0, 0xFF lsls r0, 8 ands r4, r0 lsrs r4, 8 strb r4, [r1, 0x5] movs r0, 0xFF strb r0, [r1, 0x6] ldr r4, =gUnknown_02024214 ldr r0, [r4] adds r0, 0x1 bl b_movescr_stack_push ldr r0, =gUnknown_082DB307 str r0, [r4] b _08051658 .pool _08051650: ldr r1, =gUnknown_02024214 ldr r0, [r1] adds r0, 0x1 str r0, [r1] _08051658: pop {r4} pop {r0} bx r0 .pool thumb_func_end atk91_givemoney thumb_func_start atk92_setlightscreen atk92_setlightscreen: @ 8051664 push {r4-r6,lr} ldr r5, =gUnknown_0202420B ldrb r0, [r5] bl battle_get_per_side_status ldr r4, =gUnknown_0202428E movs r6, 0x1 adds r1, r6, 0 ands r1, r0 lsls r1, 1 adds r1, r4 ldrh r1, [r1] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _080516A4 ldr r2, =gBattleMoveFlags ldrb r0, [r2] movs r1, 0x1 orrs r0, r1 strb r0, [r2] ldr r1, =gUnknown_02024332 movs r0, 0 b _08051718 .pool _080516A4: ldrb r0, [r5] bl battle_get_per_side_status adds r1, r6, 0 ands r1, r0 lsls r1, 1 adds r1, r4 ldrh r0, [r1] movs r2, 0x2 orrs r0, r2 strh r0, [r1] ldrb r0, [r5] bl battle_get_per_side_status ldr r4, =gUnknown_02024294 adds r1, r6, 0 ands r1, r0 lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r4 movs r1, 0x5 strb r1, [r0, 0x2] ldrb r0, [r5] bl battle_get_per_side_status adds r1, r6, 0 ands r1, r0 lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r4 ldrb r1, [r5] strb r1, [r0, 0x3] ldr r0, =gBattleTypeFlags ldr r0, [r0] ands r0, r6 cmp r0, 0 beq _08051714 movs r0, 0x1 bl sub_8069DEC lsls r0, 24 lsrs r0, 24 cmp r0, 0x2 bne _08051714 ldr r1, =gUnknown_02024332 movs r0, 0x4 b _08051718 .pool _08051714: ldr r1, =gUnknown_02024332 movs r0, 0x3 _08051718: strb r0, [r1, 0x5] ldr r1, =gUnknown_02024214 ldr r0, [r1] adds r0, 0x1 str r0, [r1] pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end atk92_setlightscreen thumb_func_start atk93_ko_move atk93_ko_move: @ 8051730 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} ldr r7, =gBattleMons ldr r6, =gEnemyMonIndex 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 _08051768 ldr r1, =gUnknown_02024404 lsls r0, r2, 3 subs r0, r2 lsls r0, 2 adds r0, r1 ldrb r4, [r0, 0x7] ldrb r6, [r0, 0x1A] b _08051782 .pool _08051768: 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 _08051782: ldr r1, =gUnknown_0202420F ldr r5, =gEnemyMonIndex ldrb r0, [r5] strb r0, [r1] cmp r4, 0x27 bne _080517C0 bl Random lsls r0, 16 lsrs r0, 16 movs r1, 0x64 bl __umodsi3 lsls r0, 16 lsrs r0, 16 cmp r0, r6 bcs _080517C0 ldrb r0, [r5] movs r1, 0x27 bl b_history__record_item_x12_of_player ldr r2, =gUnknown_0202437C 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] _080517C0: ldr r1, =gBattleMons ldr r2, =gEnemyMonIndex ldrb r3, [r2] movs r6, 0x58 adds r0, r3, 0 muls r0, r6 adds r5, r0, r1 adds r0, r5, 0 adds r0, 0x20 ldrb r4, [r0] mov r8, r1 mov r9, r2 cmp r4, 0x5 bne _0805181C ldr r2, =gBattleMoveFlags ldrb r0, [r2] movs r1, 0x1 orrs r0, r1 strb r0, [r2] ldr r0, =gUnknown_0202420A strb r4, [r0] ldr r1, =gUnknown_02024214 ldr r0, =gUnknown_082DB552 str r0, [r1] mov r1, r9 ldrb r0, [r1] movs r1, 0x5 bl b_history__record_ability_usage_of_player b _08051A70 .pool _0805181C: ldr r1, =gUnknown_020242AC lsls r0, r3, 2 adds r0, r1 ldr r0, [r0] movs r1, 0x18 ands r0, r1 cmp r0, 0 bne _080518A0 ldr r1, =gBattleMoves ldr r0, =gUnknown_020241EA ldrh r0, [r0] lsls r2, r0, 1 adds r2, r0 lsls r2, 2 adds r2, r1 ldr r7, =gUnknown_0202420B ldrb r0, [r7] muls r0, r6 add r0, r8 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 blt _08051870 b _08051A08 _08051870: ldrb r0, [r7] adds r1, r0, 0 muls r1, r6 add r1, r8 adds r1, 0x2A mov r2, r9 ldrb r0, [r2] muls r0, r6 add r0, r8 adds r0, 0x2A ldrb r1, [r1] movs r4, 0x1 ldrb r0, [r0] cmp r1, r0 bcs _08051936 b _08051A08 .pool _080518A0: ldr r1, =gUnknown_020242BC lsls r0, r3, 3 subs r0, r3 lsls r0, 2 adds r0, r1 ldr r1, =gUnknown_0202420B ldrb r0, [r0, 0x15] adds r7, r1, 0 ldrb r3, [r7] cmp r0, r3 bne _080518CA ldrb r0, [r7] muls r0, r6 add r0, r8 adds r0, 0x2A adds r1, r5, 0 adds r1, 0x2A ldrb r0, [r0] ldrb r1, [r1] cmp r0, r1 bcs _08051942 _080518CA: ldr r1, =gBattleMoves ldr r0, =gUnknown_020241EA ldrh r0, [r0] lsls r2, r0, 1 adds r2, r0 lsls r2, 2 adds r2, r1 ldr r6, =gBattleMons ldrb r0, [r7] movs r5, 0x58 muls r0, r5 adds r0, r6 adds r0, 0x2A ldrb r1, [r0] ldr r0, =gEnemyMonIndex mov r8, r0 ldrb r0, [r0] muls r0, r5 adds r0, r6 adds r0, 0x2A ldrb r0, [r0] subs r1, r0 ldrb r2, [r2, 0x3] adds r1, r2 lsls r1, 16 lsrs r4, r1, 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 _08051934 ldrb r0, [r7] adds r1, r0, 0 muls r1, r5 adds r1, r6 adds r1, 0x2A mov r2, r8 ldrb r0, [r2] muls r0, r5 adds r0, r6 adds r0, 0x2A ldrb r1, [r1] movs r4, 0x1 ldrb r0, [r0] cmp r1, r0 bcs _08051936 _08051934: movs r4, 0 _08051936: ldr r3, =gBattleMons mov r8, r3 ldr r0, =gEnemyMonIndex mov r9, r0 cmp r4, 0 beq _08051A08 _08051942: ldr r0, =gUnknown_0202433C mov r1, r9 ldrb r2, [r1] lsls r1, r2, 4 adds r1, r0 ldrb r0, [r1] lsls r0, 30 cmp r0, 0 bge _08051990 ldr r1, =gBattleMoveDamage movs r0, 0x58 muls r0, r2 add r0, r8 ldrh r0, [r0, 0x28] subs r0, 0x1 str r0, [r1] ldr r2, =gBattleMoveFlags ldrb r0, [r2] movs r1, 0x40 b _080519EE .pool _08051990: ldr r0, =gUnknown_0202437C lsls r1, r2, 2 adds r1, r2 lsls r1, 2 adds r1, r0 ldrb r0, [r1] lsrs r0, 7 cmp r0, 0 beq _080519DC ldr r1, =gBattleMoveDamage movs r3, 0x58 adds r0, r2, 0 muls r0, r3 add r0, r8 ldrh r0, [r0, 0x28] subs r0, 0x1 str r0, [r1] ldr r2, =gBattleMoveFlags ldrb r0, [r2] movs r1, 0x80 orrs r0, r1 strb r0, [r2] ldr r1, =gUnknown_02024208 mov r2, r9 ldrb r0, [r2] muls r0, r3 add r0, r8 ldrh r0, [r0, 0x2E] strh r0, [r1] b _080519F2 .pool _080519DC: ldr r1, =gBattleMoveDamage movs r0, 0x58 muls r0, r2 add r0, r8 ldrh r0, [r0, 0x28] str r0, [r1] ldr r2, =gBattleMoveFlags ldrb r0, [r2] movs r1, 0x10 _080519EE: orrs r0, r1 strb r0, [r2] _080519F2: ldr r1, =gUnknown_02024214 ldr r0, [r1] adds r0, 0x5 str r0, [r1] b _08051A70 .pool _08051A08: ldr r2, =gBattleMoveFlags ldrb r0, [r2] movs r1, 0x1 orrs r0, r1 strb r0, [r2] ldr r3, =gBattleMons ldr r0, =gUnknown_0202420B ldrb r0, [r0] movs r2, 0x58 adds r1, r0, 0 muls r1, r2 adds r1, r3 adds r1, 0x2A ldr r0, =gEnemyMonIndex ldrb r0, [r0] muls r0, r2 adds r0, r3 adds r0, 0x2A ldrb r1, [r1] ldrb r0, [r0] cmp r1, r0 bcc _08051A50 ldr r1, =gUnknown_02024332 movs r0, 0 b _08051A54 .pool _08051A50: ldr r1, =gUnknown_02024332 movs r0, 0x1 _08051A54: strb r0, [r1, 0x5] ldr r3, =gUnknown_02024214 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] _08051A70: pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end atk93_ko_move thumb_func_start atk94_gethalfcurrentenemyhp atk94_gethalfcurrentenemyhp: @ 8051A84 push {lr} ldr r3, =gBattleMoveDamage ldr r2, =gBattleMons ldr r0, =gEnemyMonIndex 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 _08051AA2 movs r0, 0x1 str r0, [r3] _08051AA2: ldr r1, =gUnknown_02024214 ldr r0, [r1] adds r0, 0x1 str r0, [r1] pop {r0} bx r0 .pool thumb_func_end atk94_gethalfcurrentenemyhp thumb_func_start sub_8051AC0 sub_8051AC0: @ 8051AC0 push {lr} ldr r2, =gBattleWeather ldrh r1, [r2] movs r0, 0x18 ands r0, r1 cmp r0, 0 beq _08051AEC ldr r2, =gBattleMoveFlags ldrb r0, [r2] movs r1, 0x1 orrs r0, r1 strb r0, [r2] ldr r1, =gUnknown_02024332 movs r0, 0x2 strb r0, [r1, 0x5] b _08051AFE .pool _08051AEC: movs r0, 0x8 strh r0, [r2] ldr r1, =gUnknown_02024332 movs r0, 0x3 strb r0, [r1, 0x5] ldr r0, =gUnknown_020243D0 adds r0, 0x28 movs r1, 0x5 strb r1, [r0] _08051AFE: ldr r1, =gUnknown_02024214 ldr r0, [r1] adds r0, 0x1 str r0, [r1] pop {r0} bx r0 .pool thumb_func_end sub_8051AC0 thumb_func_start sub_8051B18 sub_8051B18: @ 8051B18 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 ability_something lsls r0, 24 lsrs r0, 24 cmp r0, 0 beq _08051B36 b _08051C48 _08051B36: str r0, [sp] movs r0, 0x13 movs r1, 0 movs r2, 0x4D movs r3, 0 bl ability_something lsls r0, 24 cmp r0, 0 beq _08051B4C b _08051C48 _08051B4C: ldr r2, =gBattleWeather ldrh r1, [r2] movs r0, 0x18 ands r0, r1 adds r4, r2, 0 ldr r5, =gUnknown_0202420B cmp r0, 0 beq _08051BDA ldr r0, =gBattleMons 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 _08051BD4 cmp r0, 0x8 beq _08051BD4 cmp r0, 0x4 beq _08051BD4 adds r0, r3, 0 adds r0, 0x22 ldrb r0, [r0] cmp r0, 0x5 beq _08051BD4 cmp r0, 0x8 beq _08051BD4 cmp r0, 0x4 beq _08051BD4 adds r0, r3, 0 adds r0, 0x20 ldrb r0, [r0] cmp r0, 0x8 beq _08051BD4 ldr r0, =gUnknown_020242AC lsls r1, r2, 2 adds r1, r0 ldr r1, [r1] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _08051BD4 movs r0, 0x80 lsls r0, 11 ands r1, r0 cmp r1, 0 bne _08051BD4 ldr r1, =gBattleMoveDamage ldrh r0, [r3, 0x2C] lsrs r0, 4 str r0, [r1] cmp r0, 0 bne _08051BDA movs r0, 0x1 b _08051BD8 .pool _08051BD4: ldr r1, =gBattleMoveDamage movs r0, 0 _08051BD8: str r0, [r1] _08051BDA: ldrh r1, [r4] movs r4, 0x80 adds r0, r4, 0 ands r0, r1 cmp r0, 0 beq _08051C50 ldr r1, =gBattleMons 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 _08051C3C adds r0, r2, 0 adds r0, 0x22 ldrb r0, [r0] cmp r0, 0xF beq _08051C3C ldr r0, =gUnknown_020242AC lsls r1, r3, 2 adds r1, r0 ldr r1, [r1] adds r0, r1, 0 ands r0, r4 cmp r0, 0 bne _08051C3C movs r0, 0x80 lsls r0, 11 ands r1, r0 cmp r1, 0 bne _08051C3C ldr r1, =gBattleMoveDamage ldrh r0, [r2, 0x2C] lsrs r0, 4 str r0, [r1] cmp r0, 0 bne _08051C50 movs r0, 0x1 str r0, [r1] b _08051C50 .pool _08051C3C: ldr r1, =gBattleMoveDamage movs r0, 0 str r0, [r1] b _08051C50 .pool _08051C48: ldr r1, =gBattleMoveDamage movs r0, 0 str r0, [r1] ldr r5, =gUnknown_0202420B _08051C50: ldr r0, =gUnknown_02024210 ldrb r1, [r0] ldr r2, =gBitTable ldrb r0, [r5] lsls r0, 2 adds r0, r2 ldr r0, [r0] ands r1, r0 cmp r1, 0 beq _08051C6A ldr r1, =gBattleMoveDamage movs r0, 0 str r0, [r1] _08051C6A: ldr r1, =gUnknown_02024214 ldr r0, [r1] adds r0, 0x1 str r0, [r1] add sp, 0x4 pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_8051B18 thumb_func_start atk97_tryinfatuatetarget atk97_tryinfatuatetarget: @ 8051C90 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} ldr r4, =gUnknown_0202420B ldrb r0, [r4] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 bne _08051CC8 ldr r1, =gUnknown_0202406E ldrb r0, [r4] lsls r0, 1 adds r0, r1 ldrh r1, [r0] movs r0, 0x64 muls r1, r0 ldr r0, =gPlayerParty b _08051CD8 .pool _08051CC8: ldr r1, =gUnknown_0202406E ldrb r0, [r4] lsls r0, 1 adds r0, r1 ldrh r1, [r0] movs r0, 0x64 muls r1, r0 ldr r0, =gEnemyParty _08051CD8: adds r5, r1, r0 ldr r4, =gEnemyMonIndex ldrb r0, [r4] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 bne _08051D0C ldr r1, =gUnknown_0202406E ldrb r0, [r4] lsls r0, 1 adds r0, r1 ldrh r1, [r0] movs r0, 0x64 muls r1, r0 ldr r0, =gPlayerParty b _08051D1C .pool _08051D0C: ldr r1, =gUnknown_0202406E ldrb r0, [r4] lsls r0, 1 adds r0, r1 ldrh r1, [r0] movs r0, 0x64 muls r1, r0 ldr r0, =gEnemyParty _08051D1C: adds r4, r1, r0 adds r0, r5, 0 movs r1, 0xB bl GetMonData lsls r0, 16 lsrs r0, 16 mov r10, r0 adds r0, r5, 0 movs r1, 0 bl GetMonData mov r9, r0 adds r0, r4, 0 movs r1, 0xB bl GetMonData lsls r0, 16 lsrs r0, 16 mov r8, r0 adds r0, r4, 0 movs r1, 0 bl GetMonData adds r7, r0, 0 ldr r5, =gEnemyMonIndex ldrb r0, [r5] movs r6, 0x58 muls r0, r6 ldr r1, =gBattleMons adds r0, r1 adds r0, 0x20 ldrb r2, [r0] cmp r2, 0xC bne _08051D94 ldr r1, =gUnknown_02024214 ldr r0, =gUnknown_082DB5F5 str r0, [r1] ldr r0, =gUnknown_0202420A strb r2, [r0] ldrb r0, [r5] movs r1, 0xC bl b_history__record_ability_usage_of_player b _08051E2C .pool _08051D94: 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 _08051DE4 ldrb r0, [r5] muls r0, r6 ldr r4, =gBattleMons adds r4, 0x50 adds r0, r4 ldr r0, [r0] movs r1, 0xF0 lsls r1, 12 ands r0, r1 cmp r0, 0 bne _08051DE4 mov r0, r10 mov r1, r9 bl pokemon_species_get_gender_info lsls r0, 24 lsrs r0, 24 cmp r0, 0xFF beq _08051DE4 mov r0, r8 adds r1, r7, 0 bl pokemon_species_get_gender_info lsls r0, 24 lsrs r0, 24 cmp r0, 0xFF bne _08051E08 _08051DE4: ldr r3, =gUnknown_02024214 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 _08051E2C .pool _08051E08: ldrb r0, [r5] adds r2, r0, 0 muls r2, r6 adds r2, r4 ldr r1, =gBitTable ldr r0, =gUnknown_0202420B 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, =gUnknown_02024214 ldr r0, [r1] adds r0, 0x5 str r0, [r1] _08051E2C: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end atk97_tryinfatuatetarget thumb_func_start sub_8051E48 sub_8051E48: @ 8051E48 push {r4-r7,lr} ldr r0, =gUnknown_02024068 ldr r0, [r0] cmp r0, 0 bne _08051F34 ldr r5, =gUnknown_02024214 ldr r1, [r5] ldrb r0, [r1, 0x1] cmp r0, 0x4 beq _08051EA0 bl get_battle_side_of_something ldr r4, =gUnknown_02024064 strb r0, [r4] ldr r3, =gBattleMons 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 _08051F34 .pool _08051EA0: ldr r4, =gUnknown_02024064 ldr r5, =gUnknown_0202420B ldrb r0, [r5] strb r0, [r4] ldr r6, =gUnknown_02024210 ldrb r1, [r6] ldr r7, =gBitTable ldrb r2, [r4] lsls r0, r2, 2 adds r0, r7 ldr r0, [r0] ands r1, r0 cmp r1, 0 bne _08051EDC ldr r3, =gBattleMons 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 _08051EDC: ldr r0, =gBattleTypeFlags ldr r0, [r0] movs r1, 0x1 ands r0, r1 cmp r0, 0 beq _08051F2C 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 _08051F2C ldr r3, =gBattleMons 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 _08051F2C: ldr r1, =gUnknown_02024214 ldr r0, [r1] adds r0, 0x2 str r0, [r1] _08051F34: pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_8051E48 thumb_func_start atk99_setmisteffect atk99_setmisteffect: @ 8051F58 push {r4-r6,lr} ldr r6, =gUnknown_02024294 ldr r4, =gUnknown_0202420B 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, 0x4] cmp r0, 0 beq _08051F98 ldr r2, =gBattleMoveFlags ldrb r0, [r2] movs r1, 0x20 orrs r0, r1 strb r0, [r2] ldr r0, =gUnknown_02024332 strb r5, [r0, 0x5] b _08051FE6 .pool _08051F98: 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, 0x4] 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 ldrb r1, [r4] strb r1, [r0, 0x5] ldrb r0, [r4] bl battle_get_per_side_status ldr r2, =gUnknown_0202428E 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, =gUnknown_02024332 strb r3, [r0, 0x5] _08051FE6: ldr r1, =gUnknown_02024214 ldr r0, [r1] adds r0, 0x1 str r0, [r1] pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end atk99_setmisteffect thumb_func_start atk9A_setincreasedcriticalchance atk9A_setincreasedcriticalchance: @ 8052000 push {lr} ldr r1, =gBattleMons ldr r0, =gUnknown_0202420B 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 _08052040 ldr r2, =gBattleMoveFlags ldrb r0, [r2] movs r1, 0x20 orrs r0, r1 strb r0, [r2] ldr r1, =gUnknown_02024332 movs r0, 0x1 strb r0, [r1, 0x5] b _08052048 .pool _08052040: orrs r1, r3 str r1, [r0] ldr r0, =gUnknown_02024332 strb r2, [r0, 0x5] _08052048: ldr r1, =gUnknown_02024214 ldr r0, [r1] adds r0, 0x1 str r0, [r1] pop {r0} bx r0 .pool thumb_func_end atk9A_setincreasedcriticalchance thumb_func_start atk9B_transformdataexecution atk9B_transformdataexecution: @ 805205C push {r4-r7,lr} mov r7, r8 push {r7} ldr r1, =gUnknown_020241EC ldr r2, =0x0000ffff adds r0, r2, 0 strh r0, [r1] ldr r1, =gUnknown_02024214 ldr r0, [r1] adds r0, 0x1 str r0, [r1] ldr r7, =gBattleMons ldr r0, =gEnemyMonIndex 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 _080520A2 ldr r0, =gUnknown_020242AC lsls r1, 2 adds r1, r0 ldr r2, [r1] ldr r0, =0x000400c0 ands r2, r0 cmp r2, 0 beq _080520D8 _080520A2: ldr r2, =gBattleMoveFlags ldrb r0, [r2] movs r1, 0x20 orrs r0, r1 strb r0, [r2] ldr r1, =gUnknown_02024332 movs r0, 0x1 b _080521EC .pool _080520D8: ldr r3, =gUnknown_0202420B ldrb r0, [r3] adds r1, r0, 0 muls r1, r6 adds r1, r5 ldr r0, [r1] orrs r0, r4 str r0, [r1] ldr r4, =gUnknown_020242BC 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, =gUnknown_02022F58 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, =gUnknown_02024064 mov r8, r0 _08052170: adds r0, r5, r4 adds r1, r2, r4 ldrb r1, [r1] strb r1, [r0] adds r4, 0x1 cmp r4, 0x23 bls _08052170 movs r4, 0 ldr r7, =gBattleMoves ldr r3, =gUnknown_02024090 adds r5, r3, 0 adds r5, 0x18 _08052188: 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 _080521C4 adds r0, r4, r2 adds r0, r5 b _080521CA .pool _080521C4: adds r0, r4, r2 adds r0, r5 movs r1, 0x5 _080521CA: strb r1, [r0] adds r4, 0x1 cmp r4, 0x3 ble _08052188 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, =gUnknown_02024332 movs r0, 0 _080521EC: strb r0, [r1, 0x5] pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end atk9B_transformdataexecution thumb_func_start sub_80521FC sub_80521FC: @ 80521FC push {r4-r7,lr} ldr r7, =gBattleMons ldr r6, =gUnknown_0202420B 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 _08052216 movs r2, 0x1 _08052216: ldrh r0, [r3, 0x28] cmp r0, r2 bhi _0805223C ldr r1, =gBattleMoveDamage movs r0, 0 str r0, [r1] ldr r1, =gUnknown_02024332 movs r0, 0x1 strb r0, [r1, 0x5] b _08052290 .pool _0805223C: ldr r4, =gBattleMoveDamage str r1, [r4] cmp r1, 0 bne _08052248 movs r0, 0x1 str r0, [r4] _08052248: 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, =0xffff1fff ands r0, r2 str r0, [r1] ldr r2, =gUnknown_020242BC 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, =gUnknown_02024332 strb r2, [r0, 0x5] ldr r2, =gUnknown_02024280 ldr r0, [r2] movs r1, 0x80 lsls r1, 1 orrs r0, r1 str r0, [r2] _08052290: ldr r1, =gUnknown_02024214 ldr r0, [r1] adds r0, 0x1 str r0, [r1] pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_80521FC thumb_func_start sub_80522B8 sub_80522B8: @ 80522B8 push {r4,r5,lr} lsls r0, 16 lsrs r2, r0, 16 movs r3, 0 ldr r0, =gUnknown_0831C3E0 ldrh r1, [r0] ldr r4, =0x0000fffe adds r5, r0, 0 cmp r1, r4 beq _080522E0 cmp r1, r2 beq _080522E0 adds r1, r5, 0 _080522D2: adds r1, 0x2 adds r3, 0x1 ldrh r0, [r1] cmp r0, r4 beq _080522E0 cmp r0, r2 bne _080522D2 _080522E0: lsls r0, r3, 1 adds r0, r5 ldrh r1, [r0] ldr r0, =0x0000fffe eors r1, r0 negs r0, r1 orrs r0, r1 lsrs r0, 31 pop {r4,r5} pop {r1} bx r1 .pool thumb_func_end sub_80522B8 thumb_func_start atk9D_copyattack atk9D_copyattack: @ 8052300 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} ldr r0, =gUnknown_020241EC ldr r1, =0x0000ffff adds r7, r1, 0 strh r7, [r0] ldr r5, =gUnknown_02024248 ldr r6, =gEnemyMonIndex ldrb r0, [r6] lsls r0, 1 adds r0, r5 ldrh r0, [r0] bl sub_80522B8 lsls r0, 24 cmp r0, 0 bne _0805235A ldr r3, =gBattleMons ldr r2, =gUnknown_0202420B 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 _0805235A ldrb r0, [r6] lsls r0, 1 adds r0, r5 ldrh r1, [r0] cmp r1, 0 beq _0805235A cmp r1, r7 bne _08052394 _0805235A: ldr r3, =gUnknown_02024214 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 _080524CC .pool _08052394: movs r2, 0 mov r3, r12 adds r3, 0xC adds r0, r4, r3 ldrh r0, [r0] ldr r4, =gUnknown_02024214 mov r10, r4 cmp r0, r1 beq _080523CE mov r8, r3 adds r7, r5, 0 adds r5, r6, 0 mov r4, r9 movs r3, 0x58 _080523B0: adds r2, 0x1 cmp r2, 0x3 bgt _080523CE 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 _080523B0 _080523CE: cmp r2, 0x4 bne _080524B0 ldr r5, =gUnknown_020241E8 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, =gUnknown_02024248 ldr r3, =gEnemyMonIndex ldrb r0, [r3] lsls r0, 1 adds r0, r2 ldrh r0, [r0] strh r0, [r1] ldr r4, =gBattleMoves 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 _08052438 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 _0805244C .pool _08052438: 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] _0805244C: ldr r1, =gUnknown_02022F58 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, =gUnknown_020242BC 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, =gBitTable 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 _080524CC .pool _080524B0: 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] _080524CC: 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_80524DC sub_80524DC: @ 80524DC push {r4-r7,lr} mov r7, r8 push {r7} ldr r7, =gUnknown_020241EA movs r6, 0xB1 lsls r6, 1 ldr r5, =gUnknown_0831C3E0 ldr r0, =gUnknown_02024214 mov r8, r0 _080524EE: bl Random ldr r2, =0x000001ff adds r1, r2, 0 ands r0, r1 adds r0, 0x1 strh r0, [r7] cmp r0, r6 bhi _080524EE movs r0, 0x3 _08052502: subs r0, 0x1 cmp r0, 0 bge _08052502 ldr r4, =gUnknown_020241EA ldrh r2, [r4] ldr r3, =0x0000ffff subs r0, r5, 0x2 _08052510: adds r0, 0x2 ldrh r1, [r0] cmp r1, r2 beq _0805251C cmp r1, r3 bne _08052510 _0805251C: ldr r0, =0x0000ffff cmp r1, r0 bne _080524EE ldr r2, =gUnknown_02024280 ldr r0, [r2] ldr r1, =0xfffffbff ands r0, r1 str r0, [r2] ldr r3, =gUnknown_082D86A8 ldr r2, =gBattleMoves 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_80458E0 ldr r1, =gEnemyMonIndex strb r0, [r1] pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_80524DC thumb_func_start atk9F_nightshadedamageeffect atk9F_nightshadedamageeffect: @ 8052584 ldr r3, =gBattleMoveDamage ldr r2, =gBattleMons ldr r0, =gUnknown_0202420B ldrb r1, [r0] movs r0, 0x58 muls r0, r1 adds r0, r2 adds r0, 0x2A ldrb r0, [r0] str r0, [r3] ldr r1, =gUnknown_02024214 ldr r0, [r1] adds r0, 0x1 str r0, [r1] bx lr .pool thumb_func_end atk9F_nightshadedamageeffect thumb_func_start atkA0_psywavedamageeffect atkA0_psywavedamageeffect: @ 80525B4 push {r4,lr} movs r4, 0xF _080525B8: bl Random adds r3, r4, 0 ands r3, r0 cmp r3, 0xA bgt _080525B8 lsls r0, r3, 2 adds r0, r3 lsls r3, r0, 1 ldr r4, =gBattleMoveDamage ldr r2, =gBattleMons ldr r0, =gUnknown_0202420B 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, =gUnknown_02024214 ldr r0, [r1] adds r0, 0x1 str r0, [r1] pop {r4} pop {r0} bx r0 .pool thumb_func_end atkA0_psywavedamageeffect thumb_func_start atkA1_counterdamagecalculator atkA1_counterdamagecalculator: @ 8052608 push {r4-r6,lr} ldr r4, =gUnknown_0202420B ldrb r0, [r4] bl battle_side_get_owner lsls r0, 24 lsrs r6, r0, 24 ldr r5, =gUnknown_0202433C 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 _080526BC cmp r6, r2 beq _080526BC ldr r6, =gBattleMons 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 _080526BC ldr r1, =gBattleMoveDamage lsls r0, r3, 1 str r0, [r1] ldr r1, =gUnknown_02024294 lsls r0, r2, 1 adds r0, r2 lsls r0, 2 adds r1, r0, r1 ldrb r0, [r1, 0x8] cmp r0, 0 beq _08052690 ldrb r1, [r1, 0x9] adds r0, r1, 0 muls r0, r4 adds r0, r6 ldrh r0, [r0, 0x28] cmp r0, 0 beq _08052690 ldr r0, =gEnemyMonIndex strb r1, [r0] b _080526A0 .pool _08052690: ldr r2, =gEnemyMonIndex ldr r1, =gUnknown_0202433C ldr r0, =gUnknown_0202420B ldrb r0, [r0] lsls r0, 4 adds r0, r1 ldrb r0, [r0, 0xC] strb r0, [r2] _080526A0: ldr r1, =gUnknown_02024214 ldr r0, [r1] adds r0, 0x5 str r0, [r1] b _080526EC .pool _080526BC: ldr r2, =gUnknown_0202437C ldr r0, =gUnknown_0202420B 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, =gUnknown_02024214 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] _080526EC: pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end atkA1_counterdamagecalculator thumb_func_start atkA2_mirrorcoatdamagecalculator atkA2_mirrorcoatdamagecalculator: @ 8052700 push {r4-r6,lr} ldr r4, =gUnknown_0202420B ldrb r0, [r4] bl battle_side_get_owner lsls r0, 24 lsrs r6, r0, 24 ldr r5, =gUnknown_0202433C 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 _080527B4 cmp r6, r2 beq _080527B4 ldr r6, =gBattleMons 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 _080527B4 ldr r1, =gBattleMoveDamage lsls r0, r3, 1 str r0, [r1] ldr r1, =gUnknown_02024294 lsls r0, r2, 1 adds r0, r2 lsls r0, 2 adds r1, r0, r1 ldrb r0, [r1, 0x8] cmp r0, 0 beq _08052788 ldrb r1, [r1, 0x9] adds r0, r1, 0 muls r0, r4 adds r0, r6 ldrh r0, [r0, 0x28] cmp r0, 0 beq _08052788 ldr r0, =gEnemyMonIndex strb r1, [r0] b _08052798 .pool _08052788: ldr r2, =gEnemyMonIndex ldr r1, =gUnknown_0202433C ldr r0, =gUnknown_0202420B ldrb r0, [r0] lsls r0, 4 adds r0, r1 ldrb r0, [r0, 0xD] strb r0, [r2] _08052798: ldr r1, =gUnknown_02024214 ldr r0, [r1] adds r0, 0x5 str r0, [r1] b _080527E4 .pool _080527B4: ldr r2, =gUnknown_0202437C ldr r0, =gUnknown_0202420B 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, =gUnknown_02024214 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] _080527E4: pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end atkA2_mirrorcoatdamagecalculator thumb_func_start atkA3_disablelastusedattack atkA3_disablelastusedattack: @ 80527F8 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} movs r4, 0 ldr r2, =gBattleMons ldr r3, =gEnemyMonIndex ldrb r1, [r3] movs r0, 0x58 muls r0, r1 adds r7, r2, 0 adds r7, 0xC adds r0, r7 ldr r5, =gUnknown_02024248 lsls r1, 1 adds r1, r5 ldrh r0, [r0] mov r9, r2 adds r6, r3, 0 ldr r2, =gUnknown_020242BC mov r8, r2 ldrh r1, [r1] cmp r0, r1 beq _0805284C mov r12, r6 movs r3, 0x58 _0805282C: adds r4, 0x1 cmp r4, 0x3 bgt _0805284C 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 _0805282C _0805284C: ldrb r1, [r6] lsls r0, r1, 3 subs r0, r1 lsls r0, 2 add r0, r8 ldrh r0, [r0, 0x4] cmp r0, 0 bne _08052910 cmp r4, 0x4 beq _08052910 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 _08052910 ldr r1, =gUnknown_02022F58 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, =gUnknown_02024214 ldr r0, [r1] adds r0, 0x5 str r0, [r1] b _0805292A .pool _08052910: ldr r3, =gUnknown_02024214 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] _0805292A: pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end atkA3_disablelastusedattack thumb_func_start atkA4_setencore atkA4_setencore: @ 805293C push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} movs r5, 0 ldr r3, =gBattleMons ldr r4, =gEnemyMonIndex ldrb r1, [r4] movs r0, 0x58 muls r0, r1 adds r6, r3, 0 adds r6, 0xC adds r0, r6 ldr r2, =gUnknown_02024248 lsls r1, 1 adds r1, r2 ldrh r0, [r0] mov r10, r3 mov r8, r2 ldr r2, =gUnknown_020242BC mov r9, r2 ldrh r1, [r1] cmp r0, r1 beq _08052996 mov r12, r4 adds r7, r6, 0 mov r6, r8 movs r3, 0x58 _08052976: adds r5, 0x1 cmp r5, 0x3 bgt _08052996 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 _08052976 _08052996: ldrb r0, [r4] lsls r0, 1 add r0, r8 ldrh r2, [r0] cmp r2, 0xA5 beq _080529AA cmp r2, 0xE3 beq _080529AA cmp r2, 0x77 bne _080529AC _080529AA: movs r5, 0x4 _080529AC: 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 _08052A44 cmp r5, 0x4 beq _08052A44 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 _08052A44 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, =gUnknown_02024214 ldr r0, [r1] adds r0, 0x5 str r0, [r1] b _08052A5E .pool _08052A44: ldr r3, =gUnknown_02024214 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] _08052A5E: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end atkA4_setencore thumb_func_start sub_8052A70 sub_8052A70: @ 8052A70 push {r4-r7,lr} ldr r6, =gBattleMons ldr r0, =gEnemyMonIndex mov r12, r0 ldrb r0, [r0] movs r7, 0x58 adds r2, r0, 0 muls r2, r7 adds r0, r6, 0 adds r0, 0x50 adds r0, r2, r0 ldr r0, [r0] movs r1, 0x80 lsls r1, 17 ands r0, r1 cmp r0, 0 bne _08052B10 ldr r5, =gUnknown_0202420B ldrb r0, [r5] muls r0, r7 adds r0, r6 ldrh r3, [r0, 0x28] adds r0, r2, r6 ldrh r1, [r0, 0x28] adds r3, r1 asrs r3, 1 ldr r4, =gBattleMoveDamage subs r1, r3 str r1, [r4] ldr r2, =gUnknown_02024474 strb r1, [r2] movs r0, 0xFF lsls r0, 8 ands r0, r1 asrs r0, 8 strb r0, [r2, 0x1] movs r0, 0xFF lsls r0, 16 ands r0, r1 asrs r0, 16 strb r0, [r2, 0x2] lsrs r1, 24 strb r1, [r2, 0x3] ldrb r0, [r5] muls r0, r7 adds r0, r6 ldrh r0, [r0, 0x28] subs r0, r3 str r0, [r4] ldr r2, =gUnknown_0202437C mov r0, r12 ldrb r1, [r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 2 adds r2, 0x4 adds r0, r2 ldr r1, =0x0000ffff str r1, [r0] ldr r1, =gUnknown_02024214 ldr r0, [r1] adds r0, 0x5 str r0, [r1] b _08052B2A .pool _08052B10: ldr r3, =gUnknown_02024214 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] _08052B2A: pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_8052A70 thumb_func_start atkA6_settypetorandomresistance atkA6_settypetorandomresistance: @ 8052B34 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} ldr r1, =gUnknown_02024250 ldr r4, =gUnknown_0202420B ldrb r0, [r4] lsls r0, 1 adds r2, r0, r1 ldrh r1, [r2] cmp r1, 0 beq _08052B7E ldr r0, =0x0000ffff cmp r1, r0 beq _08052B7E ldrh r0, [r2] bl sub_8052F48 lsls r0, 24 cmp r0, 0 beq _08052C1C ldr r1, =gBattleMons ldr r2, =gUnknown_02024270 ldrb r0, [r4] adds r0, r2 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 _08052C1C _08052B7E: ldr r3, =gUnknown_02024214 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 _08052D08 .pool _08052BB4: 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, =gUnknown_02022F58 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, =gUnknown_02024214 b _08052C0A .pool _08052BE0: 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, =gBattleMons adds r0, r7 adds r0, 0x22 strb r2, [r0] ldr r1, =gUnknown_02022F58 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 _08052C0A: ldr r0, [r1] adds r0, 0x5 str r0, [r1] b _08052D08 .pool _08052C1C: movs r4, 0 mov r8, r4 movs r7, 0x7F mov r9, r7 _08052C24: bl Random mov r4, r9 ands r4, r0 cmp r4, 0x70 bhi _08052C24 lsls r0, r4, 1 adds r4, r0, r4 ldr r6, =gUnknown_0831ACE8 adds r3, r4, r6 ldr r1, =gUnknown_02024258 ldr r2, =gUnknown_0202420B ldrb r5, [r2] lsls r0, r5, 1 adds r0, r1 ldrb r1, [r3] mov r10, r2 ldrh r0, [r0] cmp r1, r0 bne _08052C80 adds r0, r4, 0x2 adds r0, r6 ldrb r0, [r0] cmp r0, 0x5 bhi _08052C80 ldr r7, =gBattleMons 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 _08052C80 adds r0, r3, 0 adds r0, 0x22 ldrb r0, [r0] cmp r0, r1 bne _08052BB4 _08052C80: movs r7, 0x1 add r8, r7 ldr r0, =0x000003e7 cmp r8, r0 ble _08052C24 movs r0, 0 mov r8, r0 ldr r1, =gUnknown_02024214 mov r12, r1 ldr r3, =gUnknown_0831ACE8 adds r0, r4, 0x1 adds r0, r3 mov r9, r0 adds r5, r3, 0 _08052C9C: ldrb r1, [r5] cmp r1, 0xFF bgt _08052CA6 cmp r1, 0xFE bge _08052CE0 _08052CA6: mov r4, r10 ldrb r2, [r4] lsls r0, r2, 1 ldr r7, =gUnknown_02024258 adds r0, r7 ldrh r0, [r0] cmp r1, r0 bne _08052CE0 ldrb r0, [r5, 0x2] cmp r0, 0x5 bhi _08052CE0 movs r6, 0x58 adds r0, r2, 0 muls r0, r6 ldr r1, =gBattleMons adds r2, r0, r1 adds r4, r2, 0 adds r4, 0x21 ldrb r0, [r4] mov r7, r9 ldrb r1, [r7] cmp r0, r1 beq _08052CE0 adds r0, r2, 0 adds r0, 0x22 ldrb r0, [r0] cmp r0, r1 beq _08052CE0 b _08052BE0 _08052CE0: adds r5, 0x3 movs r0, 0x3 add r8, r0 ldr r0, =0x0000014f cmp r8, r0 bls _08052C9C 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] _08052D08: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end atkA6_settypetorandomresistance thumb_func_start atkA7_setalwayshitflag atkA7_setalwayshitflag: @ 8052D34 push {r4,lr} ldr r4, =gUnknown_020242AC ldr r3, =gEnemyMonIndex 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, =gUnknown_020242BC ldrb r1, [r3] lsls r0, r1, 3 subs r0, r1 lsls r0, 2 adds r0, r2 ldr r1, =gUnknown_0202420B ldrb r1, [r1] strb r1, [r0, 0x15] ldr r1, =gUnknown_02024214 ldr r0, [r1] adds r0, 0x1 str r0, [r1] pop {r4} pop {r0} bx r0 .pool thumb_func_end atkA7_setalwayshitflag thumb_func_start atkA8_copymovepermanently atkA8_copymovepermanently: @ 8052D8C push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x14 ldr r0, =gUnknown_020241EC ldr r1, =0x0000ffff adds r5, r1, 0 strh r5, [r0] ldr r3, =gBattleMons ldr r2, =gUnknown_0202420B 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 _08052DC4 b _08052F18 _08052DC4: ldr r0, =gUnknown_02024240 ldr r2, =gEnemyMonIndex ldrb r1, [r2] lsls r1, 1 adds r1, r0 ldrh r1, [r1] mov r9, r0 mov r8, r2 cmp r1, 0xA5 bne _08052DDA b _08052F18 _08052DDA: cmp r1, 0 bne _08052DE0 b _08052F18 _08052DE0: cmp r1, r5 bne _08052DE6 b _08052F18 _08052DE6: cmp r1, 0xA6 bne _08052DEC b _08052F18 _08052DEC: movs r7, 0 mov r5, r9 mov r0, r12 adds r0, 0xC adds r1, r4, r0 mov r3, r8 _08052DF8: ldrh r2, [r1] cmp r2, 0xA6 beq _08052E0A ldrb r0, [r3] lsls r0, 1 adds r0, r5 ldrh r0, [r0] cmp r2, r0 beq _08052E12 _08052E0A: adds r1, 0x2 adds r7, 0x1 cmp r7, 0x3 ble _08052DF8 _08052E12: cmp r7, 0x4 beq _08052E18 b _08052F18 _08052E18: ldr r4, =gUnknown_020241E8 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, =gBattleMoves 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, =gUnknown_02024064 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 _08052E7A: 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 _08052E7A 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, =gUnknown_02024064 ldrb r0, [r0] bl dp01_battle_side_mark_buffer_for_execution ldr r1, =gUnknown_02022F58 movs r0, 0xFD strb r0, [r1] movs r0, 0x2 strb r0, [r1, 0x1] ldr r3, =gUnknown_02024240 ldr r2, =gEnemyMonIndex 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, =gUnknown_02024214 ldr r0, [r1] adds r0, 0x5 str r0, [r1] b _08052F32 .pool _08052F18: ldr r3, =gUnknown_02024214 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] _08052F32: add sp, 0x14 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end atkA8_copymovepermanently thumb_func_start sub_8052F48 sub_8052F48: @ 8052F48 push {lr} lsls r0, 16 lsrs r0, 16 ldr r2, =gBattleMoves lsls r1, r0, 1 adds r1, r0 lsls r1, 2 adds r1, r2 ldrb r0, [r1] cmp r0, 0x91 beq _08052F72 cmp r0, 0x27 beq _08052F72 cmp r0, 0x4B beq _08052F72 cmp r0, 0x97 beq _08052F72 cmp r0, 0x9B beq _08052F72 cmp r0, 0x1A bne _08052F7C _08052F72: movs r0, 0x1 b _08052F7E .pool _08052F7C: movs r0, 0 _08052F7E: pop {r1} bx r1 thumb_func_end sub_8052F48 thumb_func_start sub_8052F84 sub_8052F84: @ 8052F84 push {lr} lsls r0, 16 lsrs r1, r0, 16 cmp r1, 0 beq _08052FA2 cmp r1, 0xD6 beq _08052FA2 movs r0, 0x89 lsls r0, 1 cmp r1, r0 beq _08052FA2 cmp r1, 0x77 beq _08052FA2 cmp r1, 0x76 bne _08052FA6 _08052FA2: movs r0, 0x1 b _08052FA8 _08052FA6: movs r0, 0 _08052FA8: pop {r1} bx r1 thumb_func_end sub_8052F84 thumb_func_start move_weather_interaction move_weather_interaction: @ 8052FAC push {lr} lsls r1, 16 lsrs r2, r1, 16 ldr r1, =gBattleMoves lsls r0, r2, 1 adds r0, r2 lsls r0, 2 adds r0, r1 ldrb r0, [r0] adds r3, r1, 0 cmp r0, 0x97 bne _08052FD0 ldr r0, =gBattleWeather ldrh r1, [r0] movs r0, 0x60 ands r0, r1 cmp r0, 0 bne _08053010 _08052FD0: lsls r0, r2, 1 adds r0, r2 lsls r0, 2 adds r0, r3 ldrb r0, [r0] cmp r0, 0x91 beq _08052FF2 cmp r0, 0x27 beq _08052FF2 cmp r0, 0x4B beq _08052FF2 cmp r0, 0x97 beq _08052FF2 cmp r0, 0x9B beq _08052FF2 cmp r0, 0x1A bne _08053010 _08052FF2: ldr r0, =gUnknown_02024280 ldr r0, [r0] movs r1, 0x80 lsls r1, 20 ands r0, r1 cmp r0, 0 beq _08053010 movs r0, 0x1 b _08053012 .pool _08053010: movs r0, 0x2 _08053012: pop {r1} bx r1 thumb_func_end move_weather_interaction thumb_func_start sub_8053018 sub_8053018: @ 8053018 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} movs r6, 0 movs r5, 0 ldr r0, =gUnknown_0202420B mov r9, r0 movs r1, 0x58 mov r8, r1 ldr r7, =gUnknown_02024090 movs r0, 0x84 lsls r0, 1 mov r10, r0 _08053036: 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_8052F84 lsls r0, 24 cmp r0, 0 bne _08053076 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 _08053076 cmp r1, 0xFD beq _08053076 adds r0, r1, 0 bl sub_8052F48 lsls r0, 24 cmp r0, 0 beq _08053084 _08053076: ldr r1, =gBitTable lsls r0, r5, 2 adds r0, r1 ldr r0, [r0] orrs r6, r0 lsls r0, r6, 24 lsrs r6, r0, 24 _08053084: adds r5, 0x1 cmp r5, 0x3 ble _08053036 ldr r0, =gUnknown_0202420B ldrb r0, [r0] adds r1, r6, 0 movs r2, 0xFD bl sub_803FECC lsls r0, 24 lsrs r6, r0, 24 cmp r6, 0xF bne _080530B8 ldr r1, =gUnknown_02024214 ldr r0, [r1] adds r0, 0x5 str r0, [r1] b _0805311C .pool _080530B8: movs r7, 0x3 ldr r4, =gBitTable _080530BC: 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 _080530BC ldr r4, =gUnknown_020241EE ldr r2, =gBattleMons lsls r1, r5, 1 ldr r0, =gUnknown_0202420B 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, =gUnknown_020241E8 strb r5, [r0] ldr r2, =gUnknown_02024280 ldr r0, [r2] ldr r1, =0xfffffbff ands r0, r1 str r0, [r2] ldrh r0, [r4] movs r1, 0 bl sub_80458E0 ldr r1, =gEnemyMonIndex strb r0, [r1] ldr r3, =gUnknown_02024214 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] _0805311C: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_8053018 thumb_func_start atkAA_destinybondeffect atkAA_destinybondeffect: @ 8053150 ldr r1, =gBattleMons ldr r0, =gUnknown_0202420B 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, =gUnknown_02024214 ldr r0, [r1] adds r0, 0x1 str r0, [r1] bx lr .pool thumb_func_end atkAA_destinybondeffect thumb_func_start b_feature_update_destiny_bond b_feature_update_destiny_bond: @ 8053180 push {r4,r5,lr} ldr r0, =gUnknown_0202420B ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 lsrs r5, r0, 24 ldr r4, =gEnemyMonIndex ldrb r0, [r4] bl battle_side_get_owner lsls r0, 24 lsrs r3, r0, 24 ldr r1, =gBattleMons 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 _080531CA cmp r5, r3 beq _080531CA ldr r2, =gUnknown_02024280 ldr r1, [r2] movs r0, 0x80 lsls r0, 17 ands r0, r1 cmp r0, 0 bne _080531CA movs r0, 0x40 orrs r1, r0 str r1, [r2] _080531CA: pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end b_feature_update_destiny_bond thumb_func_start atkAB_802A458 atkAB_802A458: @ 80531E0 push {lr} bl b_feature_update_destiny_bond ldr r1, =gUnknown_02024214 ldr r0, [r1] adds r0, 0x1 str r0, [r1] pop {r0} bx r0 .pool thumb_func_end atkAB_802A458 thumb_func_start atkAC_remaininghptopower atkAC_remaininghptopower: @ 80531F8 push {lr} ldr r2, =gBattleMons ldr r0, =gUnknown_0202420B 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_8075034 lsls r0, 24 lsrs r1, r0, 24 movs r3, 0 ldr r0, =gUnknown_0831C408 ldrb r2, [r0] cmp r1, r2 ble _08053232 adds r2, r0, 0 _08053224: adds r3, 0x2 cmp r3, 0xB bgt _08053232 adds r0, r3, r2 ldrb r0, [r0] cmp r1, r0 bgt _08053224 _08053232: ldr r2, =gUnknown_02024400 ldr r1, =gUnknown_0831C408 adds r0, r3, 0x1 adds r0, r1 ldrb r0, [r0] strh r0, [r2] ldr r1, =gUnknown_02024214 ldr r0, [r1] adds r0, 0x1 str r0, [r1] pop {r0} bx r0 .pool thumb_func_end atkAC_remaininghptopower thumb_func_start atkAD_reducepprandom atkAD_reducepprandom: @ 8053260 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x4 ldr r4, =gUnknown_02024248 ldr r1, =gEnemyMonIndex ldrb r3, [r1] lsls r0, r3, 1 adds r0, r4 ldrh r2, [r0] mov r8, r1 cmp r2, 0 bne _08053280 b _08053408 _08053280: ldr r0, =0x0000ffff cmp r2, r0 bne _08053288 b _08053408 _08053288: movs r7, 0 ldr r0, =gBattleMons movs r1, 0x58 muls r1, r3 adds r3, r0, 0 adds r3, 0xC adds r1, r3 ldrh r1, [r1] cmp r2, r1 beq _080532C0 adds r6, r4, 0 mov r5, r8 adds r4, r3, 0 movs r3, 0x58 _080532A4: adds r7, 0x1 cmp r7, 0x3 bgt _080532C0 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 _080532A4 _080532C0: cmp r7, 0x4 bne _080532C6 b _08053408 _080532C6: 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, =gBattleMons adds r1, 0x24 mov r10, r1 add r0, r10 ldrb r0, [r0] cmp r0, 0x1 bhi _080532E6 b _08053408 _080532E6: 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 _08053304 adds r6, r0, 0 _08053304: ldr r1, =gUnknown_02022F58 movs r5, 0xFD strb r5, [r1] movs r0, 0x2 strb r0, [r1, 0x1] ldr r2, =gUnknown_02024248 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, =gUnknown_02022F68 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, =gUnknown_02024064 mov r3, r8 ldrb r0, [r3] strb r0, [r4] ldr r1, =gUnknown_020242BC 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, =gBitTable lsls r0, r7, 2 adds r0, r2 ldr r0, [r0] ands r1, r0 cmp r1, 0 bne _080533B8 mov r2, r9 muls r2, r3 ldr r0, =gBattleMons adds r0, 0x50 adds r0, r2, r0 ldr r0, [r0] movs r1, 0x80 lsls r1, 14 ands r0, r1 cmp r0, 0 bne _080533B8 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 _080533B8: ldr r1, =gUnknown_02024214 ldr r0, [r1] adds r0, 0x5 str r0, [r1] ldr r1, =gBattleMons ldr r0, =gEnemyMonIndex 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 _08053422 adds r0, r2, 0 bl b_cancel_multi_turn_move_maybe b _08053422 .pool _08053408: ldr r3, =gUnknown_02024214 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] _08053422: add sp, 0x4 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end atkAD_reducepprandom thumb_func_start atkAE_clearstatusifnotsoundproofed atkAE_clearstatusifnotsoundproofed: @ 8053438 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x8 movs r4, 0 str r4, [sp, 0x4] mov r8, r4 ldr r0, =gUnknown_020241EA ldrh r0, [r0] cmp r0, 0xD7 beq _08053454 b _0805363E _08053454: ldr r6, =gUnknown_02024332 mov r0, r8 strb r0, [r6, 0x5] ldr r5, =gUnknown_0202420B ldrb r0, [r5] bl battle_side_get_owner lsls r0, 24 ldr r1, =gEnemyParty mov r10, r1 cmp r0, 0 bne _08053470 ldr r2, =gPlayerParty mov r10, r2 _08053470: ldr r4, =gBattleMons ldrb r3, [r5] movs r7, 0x58 adds r2, r3, 0 muls r2, r7 adds r0, r2, r4 adds r1, r0, 0 adds r1, 0x20 ldrb r0, [r1] cmp r0, 0x2B beq _080534C4 adds r0, r4, 0 adds r0, 0x4C adds r0, r2, r0 mov r1, r8 str r1, [r0] ldrb r0, [r5] adds r2, r0, 0 muls r2, r7 adds r0, r4, 0 adds r0, 0x50 adds r2, r0 ldr r0, [r2] ldr r1, =0xf7ffffff ands r0, r1 str r0, [r2] b _080534D4 .pool _080534C4: ldrb r1, [r1] adds r0, r3, 0 bl b_history__record_ability_usage_of_player ldrb r0, [r6, 0x5] movs r1, 0x1 orrs r0, r1 strb r0, [r6, 0x5] _080534D4: ldr r7, =gUnknown_02024064 ldr r0, =gUnknown_0202420B ldrb r0, [r0] bl battle_get_per_side_status movs r2, 0x2 mov r9, r2 mov r1, r9 eors r0, r1 lsls r0, 24 lsrs r0, 24 bl battle_get_side_with_given_state ldr r1, =gUnknown_02024474 strb r0, [r1, 0x17] strb r0, [r7] ldr r0, =gBattleTypeFlags ldr r0, [r0] movs r1, 0x1 ands r0, r1 cmp r0, 0 beq _0805357A ldr r0, =gUnknown_02024210 ldrb r2, [r0] ldr r1, =gBitTable ldrb r3, [r7] lsls r0, r3, 2 adds r0, r1 ldr r0, [r0] ands r2, r0 cmp r2, 0 bne _0805357A ldr r5, =gBattleMons movs r6, 0x58 adds r4, r3, 0 muls r4, r6 adds r0, r4, r5 adds r1, r0, 0 adds r1, 0x20 ldrb r0, [r1] cmp r0, 0x2B beq _08053568 adds r0, r5, 0 adds r0, 0x4C adds r0, r4, r0 str r2, [r0] ldrb r0, [r7] adds r2, r0, 0 muls r2, r6 adds r0, r5, 0 adds r0, 0x50 adds r2, r0 ldr r0, [r2] ldr r1, =0xf7ffffff ands r0, r1 str r0, [r2] b _0805357A .pool _08053568: ldrb r1, [r1] adds r0, r3, 0 bl b_history__record_ability_usage_of_player ldr r1, =gUnknown_02024332 ldrb r0, [r1, 0x5] mov r2, r9 orrs r0, r2 strb r0, [r1, 0x5] _0805357A: movs r6, 0 ldr r7, =gBattleMons _0805357E: movs r0, 0x64 adds r4, r6, 0 muls r4, r0 add r4, r10 adds r0, r4, 0 movs r1, 0x41 bl GetMonData lsls r0, 16 lsrs r5, r0, 16 adds r0, r4, 0 movs r1, 0x2E bl GetMonData lsls r0, 24 lsrs r4, r0, 24 cmp r5, 0 beq _08053636 movs r0, 0xCE lsls r0, 1 cmp r5, r0 beq _08053636 ldr r2, =gUnknown_0202406E ldr r0, =gUnknown_0202420B ldrb r1, [r0] lsls r0, r1, 1 adds r0, r2 ldrh r0, [r0] cmp r0, r6 bne _080535D0 movs r0, 0x58 muls r0, r1 b _08053600 .pool _080535D0: ldr r0, =gBattleTypeFlags ldr r0, [r0] movs r1, 0x1 ands r0, r1 cmp r0, 0 beq _08053618 ldr r0, =gUnknown_02024064 ldrb r3, [r0] lsls r0, r3, 1 adds r0, r2 ldrh r0, [r0] cmp r0, r6 bne _08053618 ldr r0, =gUnknown_02024210 ldrb r1, [r0] ldr r2, =gBitTable lsls r0, r3, 2 adds r0, r2 ldr r0, [r0] ands r1, r0 cmp r1, 0 bne _08053618 movs r0, 0x58 muls r0, r3 _08053600: adds r0, r7 adds r0, 0x20 ldrb r0, [r0] b _08053624 .pool _08053618: adds r0, r5, 0 adds r1, r4, 0 bl sub_806B694 lsls r0, 24 lsrs r0, 24 _08053624: cmp r0, 0x2B beq _08053636 movs r0, 0x1 lsls r0, r6 mov r1, r8 orrs r1, r0 lsls r0, r1, 24 lsrs r0, 24 mov r8, r0 _08053636: adds r6, 0x1 cmp r6, 0x5 ble _0805357E b _080536BC _0805363E: ldr r1, =gUnknown_02024332 movs r0, 0x4 strb r0, [r1, 0x5] movs r2, 0x3F mov r8, r2 ldr r3, =gBattleMons ldr r2, =gUnknown_0202420B ldrb r0, [r2] movs r5, 0x58 muls r0, r5 movs r1, 0x4C adds r1, r3 mov r9, r1 add r0, r9 str r4, [r0] ldrb r0, [r2] adds r1, r0, 0 muls r1, r5 adds r7, r3, 0 adds r7, 0x50 adds r1, r7 ldr r0, [r1] ldr r6, =0xf7ffffff ands r0, r6 str r0, [r1] ldrb r0, [r2] 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, =gUnknown_02024064 strb r0, [r4] ldr r0, =gBattleTypeFlags ldr r0, [r0] movs r1, 0x1 ands r0, r1 cmp r0, 0 beq _080536BC ldr r0, =gUnknown_02024210 ldrb r2, [r0] ldr r1, =gBitTable ldrb r3, [r4] lsls r0, r3, 2 adds r0, r1 ldr r0, [r0] ands r2, r0 cmp r2, 0 bne _080536BC adds r0, r3, 0 muls r0, r5 add r0, r9 str r2, [r0] ldrb r0, [r4] adds r1, r0, 0 muls r1, r5 adds r1, r7 ldr r0, [r1] ands r0, r6 str r0, [r1] _080536BC: mov r2, r8 cmp r2, 0 beq _080536DE ldr r4, =gUnknown_02024064 ldr r0, =gUnknown_0202420B ldrb r0, [r0] strb r0, [r4] add r0, sp, 0x4 str r0, [sp] movs r0, 0 movs r1, 0x28 movs r3, 0x4 bl dp01_build_cmdbuf_x02_a_b_varargs ldrb r0, [r4] bl dp01_battle_side_mark_buffer_for_execution _080536DE: ldr r1, =gUnknown_02024214 ldr r0, [r1] adds r0, 0x1 str r0, [r1] add sp, 0x8 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end atkAE_clearstatusifnotsoundproofed thumb_func_start atkAF_cursetarget atkAF_cursetarget: @ 805371C push {r4,r5,lr} ldr r5, =gBattleMons ldr r0, =gEnemyMonIndex ldrb r0, [r0] movs r4, 0x58 adds r1, r0, 0 muls r1, r4 adds r0, r5, 0 adds r0, 0x50 adds r1, r0 ldr r2, [r1] movs r3, 0x80 lsls r3, 21 adds r0, r2, 0 ands r0, r3 cmp r0, 0 beq _08053768 ldr r3, =gUnknown_02024214 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 _0805378C .pool _08053768: orrs r2, r3 str r2, [r1] ldr r1, =gBattleMoveDamage ldr r0, =gUnknown_0202420B ldrb r0, [r0] muls r0, r4 adds r0, r5 ldrh r0, [r0, 0x2C] lsrs r0, 1 str r0, [r1] cmp r0, 0 bne _08053784 movs r0, 0x1 str r0, [r1] _08053784: ldr r1, =gUnknown_02024214 ldr r0, [r1] adds r0, 0x5 str r0, [r1] _0805378C: pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end atkAF_cursetarget thumb_func_start atkB0_setspikes atkB0_setspikes: @ 80537A0 push {r4,lr} ldr r4, =gUnknown_0202420B ldrb r0, [r4] bl battle_side_get_owner movs r1, 0x1 eors r0, r1 lsls r0, 24 lsrs r0, 24 ldr r1, =gUnknown_02024294 lsls r2, r0, 1 adds r0, r2, r0 lsls r0, 2 adds r3, r0, r1 ldrb r0, [r3, 0xA] cmp r0, 0x3 bne _08053804 ldr r2, =gUnknown_0202437C 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, =gUnknown_02024214 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 _0805381E .pool _08053804: ldr r1, =gUnknown_0202428E adds r1, r2, r1 ldrh r2, [r1] movs r0, 0x10 orrs r0, r2 strh r0, [r1] ldrb r0, [r3, 0xA] adds r0, 0x1 strb r0, [r3, 0xA] ldr r1, =gUnknown_02024214 ldr r0, [r1] adds r0, 0x5 str r0, [r1] _0805381E: pop {r4} pop {r0} bx r0 .pool thumb_func_end atkB0_setspikes thumb_func_start atkB1_setforesight atkB1_setforesight: @ 805382C ldr r1, =gBattleMons ldr r0, =gEnemyMonIndex 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, =gUnknown_02024214 ldr r0, [r1] adds r0, 0x1 str r0, [r1] bx lr .pool thumb_func_end atkB1_setforesight thumb_func_start atkB2_setperishsong atkB2_setperishsong: @ 805385C push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} movs r6, 0 movs r3, 0 ldr r0, =gUnknown_0202406C adds r7, r0, 0 ldr r0, =gUnknown_0202420B mov r8, r0 ldrb r1, [r7] cmp r6, r1 bge _080538C8 movs r5, 0x20 ldr r0, =gBattleMons mov r12, r0 ldr r0, =gUnknown_020242BC adds r4, r0, 0 adds r4, 0xF ldr r2, =gUnknown_020242AC _08053884: ldr r1, [r2] adds r0, r1, 0 ands r0, r5 cmp r0, 0 bne _0805389C movs r0, 0x58 muls r0, r3 add r0, r12 adds r0, 0x20 ldrb r0, [r0] cmp r0, 0x2B bne _080538B4 _0805389C: adds r6, 0x1 b _080538BC .pool _080538B4: orrs r1, r5 str r1, [r2] movs r0, 0x33 strb r0, [r4] _080538BC: adds r4, 0x1C adds r2, 0x4 adds r3, 0x1 ldrb r0, [r7] cmp r3, r0 blt _08053884 _080538C8: mov r1, r8 ldrb r0, [r1] bl sub_803F67C ldr r0, =gUnknown_0202406C ldrb r0, [r0] cmp r6, r0 bne _080538FC ldr r3, =gUnknown_02024214 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 _08053904 .pool _080538FC: ldr r1, =gUnknown_02024214 ldr r0, [r1] adds r0, 0x5 str r0, [r1] _08053904: pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end atkB2_setperishsong thumb_func_start atkB3_rolloutdamagecalculation atkB3_rolloutdamagecalculation: @ 8053914 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} ldr r0, =gBattleMoveFlags ldrb r1, [r0] movs r0, 0x29 ands r0, r1 cmp r0, 0 beq _08053948 ldr r0, =gUnknown_0202420B ldrb r0, [r0] bl b_cancel_multi_turn_move_maybe ldr r1, =gUnknown_02024214 ldr r0, =gUnknown_082D8A60 str r0, [r1] b _08053A60 .pool _08053948: ldr r2, =gBattleMons ldr r1, =gUnknown_0202420B 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, =gUnknown_020242BC mov r12, r1 ldr r2, =gUnknown_020241EA mov r8, r2 cmp r0, 0 bne _080539BA 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, =gUnknown_02024268 ldrb r0, [r6] lsls r0, 1 adds r0, r1 mov r2, r8 ldrh r1, [r2] strh r1, [r0] _080539BA: 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 _080539EE ldrb r0, [r6] adds r1, r0, 0 muls r1, r5 adds r1, r4 ldr r0, [r1] ldr r2, =0xffffefff ands r0, r2 str r0, [r1] _080539EE: ldr r3, =gUnknown_02024400 ldr r2, =gBattleMoves 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, =gUnknown_02024214 adds r5, r3, 0 cmp r2, r1 bge _08053A3C adds r1, r5, 0 adds r3, r4, 0 movs r4, 0x5 _08053A28: 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 _08053A28 _08053A3C: 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 _08053A5A ldrh r0, [r5] lsls r0, 1 strh r0, [r5] _08053A5A: ldr r0, [r7] adds r0, 0x1 str r0, [r7] _08053A60: pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end atkB3_rolloutdamagecalculation thumb_func_start atkB4_jumpifconfusedandattackmaxed atkB4_jumpifconfusedandattackmaxed: @ 8053A90 push {r4,r5,lr} ldr r5, =gBattleMons ldr r0, =gEnemyMonIndex 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, =gUnknown_02024214 cmp r0, 0 beq _08053AEC 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 _08053AEC 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 _08053AF2 .pool _08053AEC: ldr r0, [r4] adds r0, 0x6 str r0, [r4] _08053AF2: pop {r4,r5} pop {r0} bx r0 thumb_func_end atkB4_jumpifconfusedandattackmaxed thumb_func_start sub_8053AF8 sub_8053AF8: @ 8053AF8 push {r4,r5,lr} ldr r0, =gBattleMoveFlags ldrb r1, [r0] movs r0, 0x29 ands r0, r1 cmp r0, 0 beq _08053B34 ldr r2, =gUnknown_020242BC ldr r0, =gUnknown_0202420B 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, =gUnknown_02024214 ldr r0, =gUnknown_082D8A60 str r0, [r1] b _08053B8C .pool _08053B34: ldr r5, =gUnknown_020242BC ldr r4, =gUnknown_0202420B 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 _08053B4C adds r0, 0x1 strb r0, [r1, 0x10] _08053B4C: ldr r3, =gUnknown_02024400 ldr r2, =gBattleMoves ldr r0, =gUnknown_020241EA 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, =gUnknown_02024214 ldrb r1, [r0, 0x10] cmp r2, r1 bge _08053B86 adds r1, r3, 0 adds r3, r0, 0 _08053B78: ldrh r0, [r1] lsls r0, 1 strh r0, [r1] adds r2, 0x1 ldrb r0, [r3, 0x10] cmp r2, r0 blt _08053B78 _08053B86: ldr r0, [r4] adds r0, 0x1 str r0, [r4] _08053B8C: pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_8053AF8 thumb_func_start atkB6_happinesstodamagecalculation atkB6_happinesstodamagecalculation: @ 8053BAC push {r4,lr} ldr r2, =gBattleMoves ldr r0, =gUnknown_020241EA ldrh r1, [r0] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r0, [r0] cmp r0, 0x79 bne _08053BEC ldr r4, =gUnknown_02024400 ldr r2, =gBattleMons ldr r0, =gUnknown_0202420B ldrb r1, [r0] movs r0, 0x58 muls r0, r1 adds r0, r2 adds r0, 0x2B ldrb r1, [r0] b _08053C02 .pool _08053BEC: ldr r4, =gUnknown_02024400 ldr r2, =gBattleMons ldr r0, =gUnknown_0202420B ldrb r1, [r0] movs r0, 0x58 muls r0, r1 adds r0, r2 adds r0, 0x2B ldrb r0, [r0] movs r1, 0xFF subs r1, r0 _08053C02: lsls r0, r1, 2 adds r0, r1 lsls r0, 1 movs r1, 0x19 bl __divsi3 strh r0, [r4] ldr r1, =gUnknown_02024214 ldr r0, [r1] adds r0, 0x1 str r0, [r1] pop {r4} pop {r0} bx r0 .pool thumb_func_end atkB6_happinesstodamagecalculation thumb_func_start atkB7_presentdamagecalculation atkB7_presentdamagecalculation: @ 8053C30 push {r4,lr} bl Random movs r4, 0xFF ands r4, r0 cmp r4, 0x65 bgt _08053C4C ldr r1, =gUnknown_02024400 movs r0, 0x28 strh r0, [r1] b _08053C8E .pool _08053C4C: cmp r4, 0xB1 bgt _08053C5C ldr r1, =gUnknown_02024400 movs r0, 0x50 strh r0, [r1] b _08053C8E .pool _08053C5C: cmp r4, 0xCB bgt _08053C6C ldr r1, =gUnknown_02024400 movs r0, 0x78 strh r0, [r1] b _08053C8E .pool _08053C6C: ldr r3, =gBattleMoveDamage ldr r2, =gBattleMons ldr r0, =gEnemyMonIndex 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 _08053C88 movs r0, 0x1 str r0, [r3] _08053C88: ldr r0, [r3] negs r0, r0 str r0, [r3] _08053C8E: cmp r4, 0xCB bgt _08053CAC ldr r1, =gUnknown_02024214 ldr r0, =gUnknown_082D8A30 b _08053CE6 .pool _08053CAC: ldr r2, =gBattleMons ldr r0, =gEnemyMonIndex ldrb r1, [r0] movs r0, 0x58 muls r0, r1 adds r0, r2 ldrh r1, [r0, 0x2C] ldrh r0, [r0, 0x28] cmp r1, r0 bne _08053CD8 ldr r1, =gUnknown_02024214 ldr r0, =gUnknown_082D9EFB b _08053CE6 .pool _08053CD8: ldr r2, =gBattleMoveFlags ldrb r1, [r2] movs r0, 0xF7 ands r0, r1 strb r0, [r2] ldr r1, =gUnknown_02024214 ldr r0, =gUnknown_082D9EE1 _08053CE6: str r0, [r1] pop {r4} pop {r0} bx r0 .pool thumb_func_end atkB7_presentdamagecalculation thumb_func_start atkB8_setsafeguard atkB8_setsafeguard: @ 8053CFC push {r4-r7,lr} ldr r7, =gUnknown_0202420B ldrb r0, [r7] bl battle_get_per_side_status ldr r4, =gUnknown_0202428E movs r6, 0x1 adds r1, r6, 0 ands r1, r0 lsls r1, 1 adds r1, r4 ldrh r1, [r1] movs r0, 0x20 ands r0, r1 cmp r0, 0 beq _08053D40 ldr r2, =gBattleMoveFlags ldrb r0, [r2] movs r1, 0x1 orrs r0, r1 strb r0, [r2] ldr r1, =gUnknown_02024332 movs r0, 0 strb r0, [r1, 0x5] b _08053D88 .pool _08053D40: ldrb r0, [r7] bl battle_get_per_side_status adds r1, r6, 0 ands r1, r0 lsls r1, 1 adds r1, r4 ldrh r0, [r1] movs r2, 0x20 orrs r0, r2 strh r0, [r1] ldrb r0, [r7] bl battle_get_per_side_status ldr r5, =gUnknown_02024294 adds r1, r6, 0 ands r1, r0 lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r5 movs r4, 0x5 strb r4, [r0, 0x6] ldrb r0, [r7] bl battle_get_per_side_status adds r1, r6, 0 ands r1, r0 lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r5 ldrb r1, [r7] strb r1, [r0, 0x7] ldr r0, =gUnknown_02024332 strb r4, [r0, 0x5] _08053D88: ldr r1, =gUnknown_02024214 ldr r0, [r1] adds r0, 0x1 str r0, [r1] pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end atkB8_setsafeguard thumb_func_start atkB9_magnitudedamagecalculation atkB9_magnitudedamagecalculation: @ 8053DA4 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 _08053DD0 ldr r1, =gUnknown_02024400 movs r0, 0xA strh r0, [r1] movs r3, 0x4 b _08053E3C .pool _08053DD0: cmp r3, 0xE bgt _08053DE4 ldr r1, =gUnknown_02024400 movs r0, 0x1E strh r0, [r1] movs r3, 0x5 b _08053E3C .pool _08053DE4: cmp r3, 0x22 bgt _08053DF8 ldr r1, =gUnknown_02024400 movs r0, 0x32 strh r0, [r1] movs r3, 0x6 b _08053E3C .pool _08053DF8: cmp r3, 0x40 bgt _08053E0C ldr r1, =gUnknown_02024400 movs r0, 0x46 strh r0, [r1] movs r3, 0x7 b _08053E3C .pool _08053E0C: cmp r3, 0x54 bgt _08053E20 ldr r1, =gUnknown_02024400 movs r0, 0x5A strh r0, [r1] movs r3, 0x8 b _08053E3C .pool _08053E20: cmp r3, 0x5E bgt _08053E34 ldr r1, =gUnknown_02024400 movs r0, 0x6E strh r0, [r1] movs r3, 0x9 b _08053E3C .pool _08053E34: ldr r1, =gUnknown_02024400 movs r0, 0x96 strh r0, [r1] movs r3, 0xA _08053E3C: ldr r1, =gUnknown_02022F58 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, =gEnemyMonIndex strb r2, [r1] ldr r0, =gUnknown_0202406C ldrb r3, [r0] adds r6, r1, 0 ldr r0, =gUnknown_02024214 mov r8, r0 cmp r2, r3 bcs _08053E94 adds r4, r6, 0 ldr r0, =gUnknown_0202420B ldrb r5, [r0] ldr r1, =gBitTable mov r12, r1 ldr r7, =gUnknown_02024210 _08053E72: ldrb r2, [r4] cmp r2, r5 beq _08053E88 ldrb r0, [r7] ldrb r1, [r6] lsls r1, 2 add r1, r12 ldr r1, [r1] ands r0, r1 cmp r0, 0 beq _08053E94 _08053E88: adds r0, r2, 0x1 strb r0, [r4] lsls r0, 24 lsrs r0, 24 cmp r0, r3 bcc _08053E72 _08053E94: mov r1, r8 ldr r0, [r1] adds r0, 0x1 str r0, [r1] pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end atkB9_magnitudedamagecalculation thumb_func_start atkBA_802B140 atkBA_802B140: @ 8053EC8 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} ldr r0, =gUnknown_02024212 ldrb r0, [r0] cmp r0, 0x1 bne _08053EF8 ldr r0, =gUnknown_0202420B ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 bne _08053EF4 movs r0, 0x1 b _08053F12 .pool _08053EF4: movs r0, 0 b _08053F12 _08053EF8: ldr r0, =gUnknown_0202420B ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 bne _08053F10 movs r0, 0x3 b _08053F12 .pool _08053F10: movs r0, 0x2 _08053F12: bl battle_get_side_with_given_state ldr r1, =gEnemyMonIndex strb r0, [r1] ldr r0, =gUnknown_0202421C ldr r1, =gEnemyMonIndex ldrb r3, [r1] adds r0, r3, r0 ldrb r0, [r0] cmp r0, 0 beq _08053F2A b _08054030 _08053F2A: ldr r5, =gUnknown_0202420B ldr r0, =gUnknown_0202449C ldr r1, [r0] adds r1, r3, r1 ldrb r2, [r5] ldrb r1, [r1, 0xC] cmp r2, r1 bne _08054030 ldr r4, =gBattleMons 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 _08054030 ldrb r0, [r5] muls r0, r2 adds r0, r4 ldrh r0, [r0, 0x28] cmp r0, 0 beq _08054030 ldr r0, =gUnknown_020242BC lsls r1, r3, 3 subs r1, r3 lsls r1, 2 adds r1, r0 ldrb r0, [r1, 0x18] lsls r0, 31 cmp r0, 0 bne _08054030 ldr r0, =gUnknown_02024274 lsls r1, r3, 1 adds r1, r0 ldrh r0, [r1] cmp r0, 0xE4 bne _08054030 movs r1, 0 ldr r0, =gUnknown_0202406C ldr r2, =gUnknown_020241EA mov r8, r2 ldr r7, =gUnknown_020241E8 mov r10, r7 ldr r2, =gUnknown_020241E9 mov r9, r2 ldr r7, =gUnknown_02024280 mov r12, r7 ldrb r2, [r0] cmp r1, r2 bge _08053FB6 ldr r6, =gUnknown_0202407E ldr r5, =gEnemyMonIndex ldr r4, =gUnknown_0202407A movs r3, 0xB adds r2, r0, 0 _08053FA0: adds r0, r1, r6 ldrb r0, [r0] ldrb r7, [r5] cmp r0, r7 bne _08053FAE adds r0, r1, r4 strb r3, [r0] _08053FAE: adds r1, 0x1 ldrb r0, [r2] cmp r1, r0 blt _08053FA0 _08053FB6: movs r0, 0xE4 mov r1, r8 strh r0, [r1] ldr r2, =gEnemyMonIndex ldrb r0, [r2] ldr r7, =gUnknown_0202449C ldr r1, [r7] adds r0, r1 adds r0, 0x80 ldrb r0, [r0] mov r1, r9 strb r0, [r1] mov r2, r10 strb r0, [r2] ldr r7, =gUnknown_02024214 ldr r0, [r7] adds r0, 0x5 str r0, [r7] movs r0, 0x1 ldr r1, =gUnknown_02024474 strb r0, [r1, 0x18] mov r2, r12 ldr r0, [r2] ldr r1, =0xfffffbff ands r0, r1 str r0, [r2] b _0805404A .pool _08054030: ldr r3, =gUnknown_02024214 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] _0805404A: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end atkBA_802B140 thumb_func_start sub_805405C sub_805405C: @ 805405C push {lr} ldr r2, =gBattleWeather ldrh r1, [r2] movs r0, 0x60 ands r0, r1 cmp r0, 0 beq _08054088 ldr r2, =gBattleMoveFlags ldrb r0, [r2] movs r1, 0x1 orrs r0, r1 strb r0, [r2] ldr r1, =gUnknown_02024332 movs r0, 0x2 strb r0, [r1, 0x5] b _0805409A .pool _08054088: movs r0, 0x20 strh r0, [r2] ldr r1, =gUnknown_02024332 movs r0, 0x4 strb r0, [r1, 0x5] ldr r0, =gUnknown_020243D0 adds r0, 0x28 movs r1, 0x5 strb r1, [r0] _0805409A: ldr r1, =gUnknown_02024214 ldr r0, [r1] adds r0, 0x1 str r0, [r1] pop {r0} bx r0 .pool thumb_func_end sub_805405C thumb_func_start atkBC_maxattackhalvehp atkBC_maxattackhalvehp: @ 80540B4 push {r4,r5,lr} ldr r5, =gBattleMons ldr r4, =gUnknown_0202420B 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 _080540CC movs r1, 0x1 _080540CC: movs r0, 0x19 ldrsb r0, [r2, r0] cmp r0, 0xB bgt _08054110 ldrh r0, [r2, 0x28] cmp r0, r1 bls _08054110 movs r0, 0xC strb r0, [r2, 0x19] ldr r1, =gBattleMoveDamage ldrb r0, [r4] muls r0, r3 adds r0, r5 ldrh r0, [r0, 0x2C] lsrs r0, 1 str r0, [r1] cmp r0, 0 bne _080540F4 movs r0, 0x1 str r0, [r1] _080540F4: ldr r1, =gUnknown_02024214 ldr r0, [r1] adds r0, 0x5 str r0, [r1] b _0805412A .pool _08054110: ldr r3, =gUnknown_02024214 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] _0805412A: pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end atkBC_maxattackhalvehp thumb_func_start atkBD_copyfoestats atkBD_copyfoestats: @ 8054134 push {r4-r7,lr} movs r2, 0 ldr r7, =gUnknown_02024214 ldr r6, =gUnknown_0202420B movs r4, 0x58 ldr r3, =gUnknown_0202409C ldr r5, =gEnemyMonIndex _08054142: 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 _08054142 ldr r0, [r7] adds r0, 0x5 str r0, [r7] pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end atkBD_copyfoestats thumb_func_start atkBE_breakfree atkBE_breakfree: @ 805417C push {r4-r6,lr} ldr r1, =gBattleMons ldr r5, =gUnknown_0202420B ldrb r2, [r5] movs r6, 0x58 adds r0, r2, 0 muls r0, r6 adds r4, r1, 0 adds r4, 0x50 adds r0, r4 ldr r0, [r0] movs r1, 0xE0 lsls r1, 8 ands r0, r1 cmp r0, 0 beq _08054210 ldr r1, =gUnknown_02024474 ldr r3, =gEnemyMonIndex ldrb r0, [r3] strb r0, [r1, 0x17] ldrb r0, [r5] adds r1, r0, 0 muls r1, r6 adds r1, r4 ldr r0, [r1] ldr r2, =0xffff1fff ands r0, r2 str r0, [r1] ldrb r0, [r5] ldr r1, =gUnknown_0202449C ldr r2, [r1] adds r0, r2 ldrb r0, [r0, 0x14] strb r0, [r3] ldr r1, =gUnknown_02022F58 movs r0, 0xFD strb r0, [r1] movs r0, 0x2 strb r0, [r1, 0x1] ldrb r0, [r5] lsls r0, 1 adds r0, r2 ldrb r0, [r0, 0x4] strb r0, [r1, 0x2] ldrb r0, [r5] lsls r0, 1 adds r0, r2 ldrb r0, [r0, 0x5] strb r0, [r1, 0x3] movs r0, 0xFF strb r0, [r1, 0x4] bl b_movescr_stack_push_cursor ldr r1, =gUnknown_02024214 ldr r0, =gUnknown_082DAFC5 b _080542BA .pool _08054210: ldr r4, =gUnknown_020242AC lsls r0, r2, 2 adds r3, r0, r4 ldr r1, [r3] movs r0, 0x4 ands r0, r1 cmp r0, 0 beq _08054250 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, =gUnknown_02024214 ldr r0, =gUnknown_082DAFD6 b _080542BA .pool _08054250: adds r0, r2, 0 bl battle_side_get_owner ldr r4, =gUnknown_0202428E lsls r0, 24 lsrs r0, 23 adds r0, r4 ldrh r1, [r0] movs r0, 0x10 ands r0, r1 cmp r0, 0 beq _080542B4 ldrb r0, [r5] bl battle_side_get_owner lsls r0, 24 lsrs r0, 23 adds r0, r4 ldrh r2, [r0] ldr r1, =0x0000ffef ands r1, r2 movs r4, 0 strh r1, [r0] ldrb r0, [r5] bl battle_side_get_owner ldr r2, =gUnknown_02024294 lsls r0, 24 lsrs r0, 24 lsls r1, r0, 1 adds r1, r0 lsls r1, 2 adds r1, r2 strb r4, [r1, 0xA] bl b_movescr_stack_push_cursor ldr r1, =gUnknown_02024214 ldr r0, =gUnknown_082DAFDD b _080542BA .pool _080542B4: ldr r1, =gUnknown_02024214 ldr r0, [r1] adds r0, 0x1 _080542BA: str r0, [r1] pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end atkBE_breakfree thumb_func_start atkBF_setcurled atkBF_setcurled: @ 80542C8 ldr r1, =gBattleMons ldr r0, =gUnknown_0202420B 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, =gUnknown_02024214 ldr r0, [r1] adds r0, 0x1 str r0, [r1] bx lr .pool thumb_func_end atkBF_setcurled thumb_func_start atkC0_recoverbasedonsunlight atkC0_recoverbasedonsunlight: @ 80542F8 push {r4-r7,lr} sub sp, 0x4 ldr r1, =gEnemyMonIndex ldr r5, =gUnknown_0202420B ldrb r0, [r5] strb r0, [r1] ldr r7, =gBattleMons ldrb r0, [r5] movs r6, 0x58 muls r0, r6 adds r0, r7 ldrh r1, [r0, 0x28] ldrh r0, [r0, 0x2C] cmp r1, r0 beq _080543D8 ldr r4, =gBattleWeather ldrh r0, [r4] cmp r0, 0 beq _0805434A movs r0, 0 str r0, [sp] movs r0, 0x13 movs r1, 0 movs r2, 0xD movs r3, 0 bl ability_something lsls r0, 24 lsrs r0, 24 cmp r0, 0 bne _0805434A str r0, [sp] movs r0, 0x13 movs r1, 0 movs r2, 0x4D movs r3, 0 bl ability_something lsls r0, 24 cmp r0, 0 beq _08054378 _0805434A: ldr r3, =gBattleMoveDamage ldr r2, =gBattleMons ldr r0, =gUnknown_0202420B 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 _080543B2 .pool _08054378: ldrh r1, [r4] movs r0, 0x60 ands r0, r1 cmp r0, 0 beq _080543A4 ldr r4, =gBattleMoveDamage 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 _080543B2 .pool _080543A4: ldr r1, =gBattleMoveDamage ldrb r0, [r5] muls r0, r6 adds r0, r7 ldrh r0, [r0, 0x2C] lsrs r0, 2 str r0, [r1] _080543B2: adds r2, r1, 0 ldr r0, [r2] cmp r0, 0 bne _080543BE movs r0, 0x1 str r0, [r2] _080543BE: ldr r0, [r1] negs r0, r0 str r0, [r1] ldr r1, =gUnknown_02024214 ldr r0, [r1] adds r0, 0x5 str r0, [r1] b _080543F2 .pool _080543D8: ldr r3, =gUnknown_02024214 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] _080543F2: add sp, 0x4 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end atkC0_recoverbasedonsunlight thumb_func_start sub_8054400 sub_8054400: @ 8054400 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} ldr r2, =gBattleMons ldr r0, =gUnknown_0202420B 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, =gUnknown_02024400 lsls r0, r2, 2 adds r0, r2 lsls r0, 3 movs r1, 0x3F bl __divsi3 adds r0, 0x1E strh r0, [r5] ldr r6, =gUnknown_0202449C ldr r5, [r6] lsls r0, r4, 4 subs r0, r4 movs r1, 0x3F bl __divsi3 adds r0, 0x1 strb r0, [r5, 0x13] ldr r1, [r6] ldrb r0, [r1, 0x13] cmp r0, 0x8 bls _080544F0 adds r0, 0x1 strb r0, [r1, 0x13] _080544F0: ldr r2, [r6] ldrb r0, [r2, 0x13] movs r1, 0xC0 orrs r0, r1 strb r0, [r2, 0x13] ldr r1, =gUnknown_02024214 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 .pool thumb_func_end sub_8054400 thumb_func_start atkC2_selectnexttarget atkC2_selectnexttarget: @ 8054524 push {r4-r7,lr} mov r7, r8 push {r7} ldr r0, =gEnemyMonIndex movs r1, 0 strb r1, [r0] ldr r1, =gUnknown_0202406C ldrb r1, [r1] adds r6, r0, 0 ldr r0, =gUnknown_02024214 mov r8, r0 cmp r1, 0 beq _0805456E adds r3, r6, 0 ldr r0, =gUnknown_0202420B ldrb r5, [r0] ldr r0, =gBitTable mov r12, r0 adds r4, r1, 0 ldr r7, =gUnknown_02024210 _0805454C: ldrb r2, [r3] cmp r2, r5 beq _08054562 ldrb r0, [r7] ldrb r1, [r6] lsls r1, 2 add r1, r12 ldr r1, [r1] ands r0, r1 cmp r0, 0 beq _0805456E _08054562: adds r0, r2, 0x1 strb r0, [r3] lsls r0, 24 lsrs r0, 24 cmp r0, r4 bcc _0805454C _0805456E: mov r1, r8 ldr r0, [r1] adds r0, 0x1 str r0, [r1] pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end atkC2_selectnexttarget thumb_func_start atkC3_setfutureattack atkC3_setfutureattack: @ 8054598 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x14 ldr r0, =gUnknown_020243D0 mov r8, r0 ldr r6, =gEnemyMonIndex ldrb r1, [r6] adds r0, r1, r0 ldrb r7, [r0] cmp r7, 0 beq _080545DC ldr r3, =gUnknown_02024214 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 _080546CC .pool _080545DC: adds r0, r1, 0 bl battle_get_per_side_status ldr r4, =gUnknown_0202428E lsls r0, 24 lsrs r0, 24 movs r1, 0x1 mov r10, r1 ands r0, r1 lsls r0, 1 adds r0, r4 ldrh r2, [r0] movs r1, 0x40 movs r5, 0 mov r3, sp strh r5, [r3, 0x10] orrs r1, r2 strh r1, [r0] ldrb r0, [r6] lsls r0, 1 mov r1, r8 adds r1, 0x18 adds r0, r1 ldr r1, =gUnknown_020241EA mov r9, r1 ldrh r1, [r1] strh r1, [r0] mov r0, r8 adds r0, 0x4 ldrb r2, [r6] adds r0, r2 ldr r5, =gUnknown_0202420B ldrb r1, [r5] strb r1, [r0] ldrb r0, [r6] add r0, r8 movs r1, 0x3 strb r1, [r0] ldrb r0, [r6] bl battle_get_per_side_status mov r1, r10 ands r1, r0 lsls r1, 1 adds r1, r4 ldrh r3, [r1] ldrb r0, [r5] movs r4, 0x58 muls r0, r4 ldr r2, =gBattleMons adds r0, r2 ldrb r1, [r6] muls r1, r4 adds r1, r2 mov r4, r9 ldrh r2, [r4] str r7, [sp] str r7, [sp, 0x4] ldrb r4, [r5] str r4, [sp, 0x8] ldrb r4, [r6] str r4, [sp, 0xC] bl sub_806957C ldrb r1, [r6] lsls r1, 2 mov r2, r8 adds r2, 0x8 adds r1, r2 str r0, [r1] ldr r1, =gUnknown_0202433C ldrb r0, [r5] lsls r0, 4 adds r0, r1 ldrb r0, [r0] lsls r0, 28 cmp r0, 0 bge _0805468C ldrb r4, [r6] lsls r4, 2 adds r4, r2 ldr r1, [r4] lsls r0, r1, 4 subs r0, r1 movs r1, 0xA bl __divsi3 str r0, [r4] _0805468C: mov r5, r9 ldrh r1, [r5] ldr r0, =0x00000161 cmp r1, r0 bne _080546BC ldr r0, =gUnknown_02024332 mov r1, r10 strb r1, [r0, 0x5] b _080546C4 .pool _080546BC: ldr r0, =gUnknown_02024332 mov r2, sp ldrb r2, [r2, 0x10] strb r2, [r0, 0x5] _080546C4: ldr r1, =gUnknown_02024214 ldr r0, [r1] adds r0, 0x5 str r0, [r1] _080546CC: add sp, 0x14 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end atkC3_setfutureattack thumb_func_start atkC4_802B910 atkC4_802B910: @ 80546E4 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} ldr r0, =gUnknown_0202420B ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 ldr r7, =gEnemyParty cmp r0, 0 bne _080546FE ldr r7, =gPlayerParty _080546FE: ldr r2, =gBattleMons ldr r0, =gEnemyMonIndex ldrb r1, [r0] movs r0, 0x58 muls r0, r1 adds r0, r2 ldrh r0, [r0, 0x28] cmp r0, 0 bne _08054740 ldr r3, =gUnknown_02024214 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 _080548DC .pool _08054740: ldr r6, =gUnknown_02024332 ldrb r0, [r6] mov r8, r0 cmp r0, 0x5 bls _0805474C b _080548A8 _0805474C: adds r4, r6, 0 movs r5, 0x64 _08054750: ldrb r0, [r4] muls r0, r5 adds r0, r7, r0 movs r1, 0x39 bl GetMonData cmp r0, 0 beq _08054794 ldrb r0, [r6] muls r0, r5 adds r0, r7, r0 movs r1, 0x41 bl GetMonData cmp r0, 0 beq _08054794 ldrb r0, [r4] muls r0, r5 adds r0, r7, r0 movs r1, 0x41 bl GetMonData movs r1, 0xCE lsls r1, 1 cmp r0, r1 beq _08054794 ldrb r0, [r4] muls r0, r5 adds r0, r7, r0 movs r1, 0x37 bl GetMonData cmp r0, 0 beq _080547A4 _08054794: ldrb r0, [r4] adds r0, 0x1 strb r0, [r4] adds r6, r4, 0 lsls r0, 24 lsrs r0, 24 cmp r0, 0x5 bls _08054750 _080547A4: ldr r1, =gUnknown_02024332 mov r9, r1 ldrb r2, [r1] cmp r2, 0x5 bhi _080548A8 ldr r1, =gUnknown_02022F58 movs r0, 0xFD strb r0, [r1] movs r0, 0x4 strb r0, [r1, 0x1] ldr r6, =gUnknown_0202420B ldrb r0, [r6] strb r0, [r1, 0x2] strb r2, [r1, 0x3] movs r0, 0xFF strb r0, [r1, 0x4] ldr r1, =gUnknown_02024214 ldr r0, [r1] adds r0, 0x9 str r0, [r1] ldr r2, =gBattleMoveDamage mov r8, r2 ldr r5, =gBaseStats mov r1, r9 ldrb r0, [r1] movs r4, 0x64 muls r0, r4 adds r0, r7, r0 movs r1, 0xB bl GetMonData 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, =gBattleMoves ldr r0, =gUnknown_020241EA 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 GetMonData 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, =gBattleMons ldr r1, =gEnemyMonIndex 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, =gUnknown_0202433C ldrb r0, [r6] lsls r0, 4 adds r0, r1 ldrb r0, [r0] lsls r0, 28 cmp r0, 0 bge _08054870 lsls r0, r2, 4 subs r0, r2 movs r1, 0xA bl __divsi3 mov r1, r8 str r0, [r1] _08054870: mov r2, r9 ldrb r0, [r2] adds r0, 0x1 strb r0, [r2] b _080548E2 .pool _080548A8: mov r0, r8 cmp r0, 0 beq _080548C8 ldr r3, =gUnknown_02024214 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 _080548DC .pool _080548C8: ldr r3, =gUnknown_02024214 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] _080548DC: lsls r0, 24 orrs r1, r0 str r1, [r3] _080548E2: pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end atkC4_802B910 thumb_func_start atkC5_hidepreattack atkC5_hidepreattack: @ 80548F4 push {lr} ldr r0, =gUnknown_020241EA ldrh r1, [r0] cmp r1, 0x5B beq _08054934 cmp r1, 0x5B bgt _0805490C cmp r1, 0x13 beq _08054918 b _08054960 .pool _0805490C: ldr r0, =0x00000123 cmp r1, r0 beq _0805494C adds r0, 0x31 cmp r1, r0 bne _08054960 _08054918: ldr r2, =gUnknown_020242AC ldr r0, =gUnknown_0202420B ldrb r1, [r0] lsls r1, 2 adds r1, r2 ldr r0, [r1] movs r2, 0x40 b _0805495C .pool _08054934: ldr r2, =gUnknown_020242AC ldr r0, =gUnknown_0202420B ldrb r1, [r0] lsls r1, 2 adds r1, r2 ldr r0, [r1] movs r2, 0x80 b _0805495C .pool _0805494C: ldr r2, =gUnknown_020242AC ldr r0, =gUnknown_0202420B ldrb r1, [r0] lsls r1, 2 adds r1, r2 ldr r0, [r1] movs r2, 0x80 lsls r2, 11 _0805495C: orrs r0, r2 str r0, [r1] _08054960: ldr r1, =gUnknown_02024214 ldr r0, [r1] adds r0, 0x1 str r0, [r1] pop {r0} bx r0 .pool thumb_func_end atkC5_hidepreattack thumb_func_start atkC6_unhidepostattack atkC6_unhidepostattack: @ 8054978 push {lr} ldr r0, =gUnknown_020241EA ldrh r1, [r0] cmp r1, 0x5B beq _080549BC cmp r1, 0x5B bgt _08054990 cmp r1, 0x13 beq _0805499C b _080549EA .pool _08054990: ldr r0, =0x00000123 cmp r1, r0 beq _080549D8 adds r0, 0x31 cmp r1, r0 bne _080549EA _0805499C: ldr r2, =gUnknown_020242AC ldr r0, =gUnknown_0202420B ldrb r1, [r0] lsls r1, 2 adds r1, r2 ldr r0, [r1] movs r2, 0x41 negs r2, r2 b _080549E6 .pool _080549BC: ldr r2, =gUnknown_020242AC ldr r0, =gUnknown_0202420B ldrb r1, [r0] lsls r1, 2 adds r1, r2 ldr r0, [r1] movs r2, 0x81 negs r2, r2 b _080549E6 .pool _080549D8: ldr r2, =gUnknown_020242AC ldr r0, =gUnknown_0202420B ldrb r1, [r0] lsls r1, 2 adds r1, r2 ldr r0, [r1] ldr r2, =0xfffbffff _080549E6: ands r0, r2 str r0, [r1] _080549EA: ldr r1, =gUnknown_02024214 ldr r0, [r1] adds r0, 0x1 str r0, [r1] pop {r0} bx r0 .pool thumb_func_end atkC6_unhidepostattack thumb_func_start atkC7_setminimize atkC7_setminimize: @ 8054A08 push {lr} ldr r0, =gUnknown_02024280 ldr r0, [r0] movs r1, 0x80 lsls r1, 18 ands r0, r1 cmp r0, 0 beq _08054A2C ldr r2, =gUnknown_020242AC ldr r0, =gUnknown_0202420B ldrb r1, [r0] lsls r1, 2 adds r1, r2 ldr r0, [r1] movs r2, 0x80 lsls r2, 1 orrs r0, r2 str r0, [r1] _08054A2C: ldr r1, =gUnknown_02024214 ldr r0, [r1] adds r0, 0x1 str r0, [r1] pop {r0} bx r0 .pool thumb_func_end atkC7_setminimize thumb_func_start sub_8054A48 sub_8054A48: @ 8054A48 push {lr} ldr r3, =gBattleWeather ldrh r1, [r3] movs r2, 0x80 adds r0, r2, 0 ands r0, r1 cmp r0, 0 beq _08054A78 ldr r2, =gBattleMoveFlags ldrb r0, [r2] movs r1, 0x1 orrs r0, r1 strb r0, [r2] ldr r1, =gUnknown_02024332 movs r0, 0x2 strb r0, [r1, 0x5] b _08054A86 .pool _08054A78: strh r2, [r3] ldr r0, =gUnknown_02024332 movs r1, 0x5 strb r1, [r0, 0x5] ldr r0, =gUnknown_020243D0 adds r0, 0x28 strb r1, [r0] _08054A86: ldr r1, =gUnknown_02024214 ldr r0, [r1] adds r0, 0x1 str r0, [r1] pop {r0} bx r0 .pool thumb_func_end sub_8054A48 thumb_func_start atkC9_jumpifattackandspecialattackcannotfall atkC9_jumpifattackandspecialattackcannotfall: @ 8054AA0 push {r4,lr} ldr r2, =gBattleMons ldr r0, =gEnemyMonIndex 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 _08054AF4 movs r0, 0x1C ldrsb r0, [r1, r0] cmp r0, 0 bne _08054AF4 ldr r0, =gUnknown_02024332 ldrb r0, [r0, 0x6] cmp r0, 0x1 beq _08054AF4 ldr r3, =gUnknown_02024214 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 _08054B20 .pool _08054AF4: ldr r4, =gUnknown_02024064 ldr r0, =gUnknown_0202420B ldrb r0, [r0] strb r0, [r4] ldr r2, =gBattleMoveDamage ldrb r1, [r4] movs r0, 0x58 muls r0, r1 adds r0, r3 ldrh r0, [r0, 0x28] str r0, [r2] ldr r1, =0x00007fff 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, =gUnknown_02024214 ldr r0, [r1] adds r0, 0x5 str r0, [r1] _08054B20: pop {r4} pop {r0} bx r0 .pool thumb_func_end atkC9_jumpifattackandspecialattackcannotfall thumb_func_start atkCA_setforcedtarget atkCA_setforcedtarget: @ 8054B3C push {r4,r5,lr} ldr r4, =gUnknown_0202420B ldrb r0, [r4] bl battle_side_get_owner ldr r5, =gUnknown_02024294 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, =gUnknown_02024214 ldr r0, [r1] adds r0, 0x1 str r0, [r1] pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end atkCA_setforcedtarget thumb_func_start atkCB_setcharge atkCB_setcharge: @ 8054B88 push {r4,lr} ldr r0, =gUnknown_020242AC ldr r3, =gUnknown_0202420B 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, =gUnknown_020242BC 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, =gUnknown_02024214 ldr r0, [r1] adds r0, 0x1 str r0, [r1] pop {r4} pop {r0} bx r0 .pool thumb_func_end atkCB_setcharge thumb_func_start atkCC_callterrainattack atkCC_callterrainattack: @ 8054BEC push {r4,lr} ldr r2, =gUnknown_02024280 ldr r0, [r2] ldr r1, =0xfffffbff ands r0, r1 str r0, [r2] ldr r4, =gUnknown_020241EA ldr r1, =gUnknown_0831C414 ldr r0, =gUnknown_02022FF0 ldrb r0, [r0] lsls r0, 1 adds r0, r1 ldrh r0, [r0] strh r0, [r4] ldrh r0, [r4] movs r1, 0 bl sub_80458E0 ldr r1, =gEnemyMonIndex strb r0, [r1] ldr r3, =gUnknown_082D86A8 ldr r2, =gBattleMoves 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, =gUnknown_02024214 ldr r0, [r1] adds r0, 0x1 str r0, [r1] pop {r4} pop {r0} bx r0 .pool thumb_func_end atkCC_callterrainattack thumb_func_start atkCD_cureifburnedparalysedorpoisoned atkCD_cureifburnedparalysedorpoisoned: @ 8054C60 push {r4-r6,lr} sub sp, 0x4 ldr r1, =gBattleMons ldr r3, =gUnknown_0202420B 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 _08054CBC movs r0, 0 str r0, [r2] ldr r1, =gUnknown_02024214 ldr r0, [r1] adds r0, 0x5 str r0, [r1] ldr r4, =gUnknown_02024064 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 _08054CD6 .pool _08054CBC: ldr r3, =gUnknown_02024214 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] _08054CD6: add sp, 0x4 pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end atkCD_cureifburnedparalysedorpoisoned thumb_func_start atkCE_settorment atkCE_settorment: @ 8054CE4 push {lr} ldr r1, =gBattleMons ldr r0, =gEnemyMonIndex 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 _08054D28 ldr r3, =gUnknown_02024214 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 _08054D34 .pool _08054D28: orrs r1, r2 str r1, [r0] ldr r1, =gUnknown_02024214 ldr r0, [r1] adds r0, 0x5 str r0, [r1] _08054D34: pop {r0} bx r0 .pool thumb_func_end atkCE_settorment thumb_func_start atkCF_jumpifnodamage atkCF_jumpifnodamage: @ 8054D3C push {lr} ldr r2, =gUnknown_0202433C ldr r0, =gUnknown_0202420B ldrb r0, [r0] lsls r1, r0, 4 adds r0, r2, 0x4 adds r0, r1, r0 ldr r0, [r0] cmp r0, 0 bne _08054D5C adds r0, r2, 0 adds r0, 0x8 adds r0, r1, r0 ldr r0, [r0] cmp r0, 0 beq _08054D74 _08054D5C: ldr r1, =gUnknown_02024214 ldr r0, [r1] adds r0, 0x5 str r0, [r1] b _08054D8E .pool _08054D74: ldr r3, =gUnknown_02024214 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] _08054D8E: pop {r0} bx r0 .pool thumb_func_end atkCF_jumpifnodamage thumb_func_start atkD0_settaunt atkD0_settaunt: @ 8054D98 push {r4,lr} ldr r4, =gUnknown_020242BC ldr r3, =gEnemyMonIndex 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 _08054DE8 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, =gUnknown_02024214 ldr r0, [r1] adds r0, 0x5 str r0, [r1] b _08054E02 .pool _08054DE8: ldr r3, =gUnknown_02024214 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] _08054E02: pop {r4} pop {r0} bx r0 .pool thumb_func_end atkD0_settaunt thumb_func_start atkD1_sethelpinghand atkD1_sethelpinghand: @ 8054E0C push {r4,lr} ldr r4, =gUnknown_0202420B 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, =gEnemyMonIndex strb r0, [r3] ldr r0, =gBattleTypeFlags ldr r0, [r0] movs r1, 0x1 ands r0, r1 cmp r0, 0 beq _08054E90 ldr r0, =gUnknown_02024210 ldrb r1, [r0] ldr r2, =gBitTable ldrb r3, [r3] lsls r0, r3, 2 adds r0, r2 ldr r0, [r0] ands r1, r0 cmp r1, 0 bne _08054E90 ldr r1, =gUnknown_0202433C ldrb r0, [r4] lsls r0, 4 adds r0, r1 ldrb r0, [r0] lsls r0, 28 cmp r0, 0 blt _08054E90 lsls r0, r3, 4 adds r2, r0, r1 ldrb r1, [r2] lsls r0, r1, 28 cmp r0, 0 blt _08054E90 movs r0, 0x8 orrs r0, r1 strb r0, [r2] ldr r1, =gUnknown_02024214 ldr r0, [r1] adds r0, 0x5 str r0, [r1] b _08054EAA .pool _08054E90: ldr r3, =gUnknown_02024214 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] _08054EAA: pop {r4} pop {r0} bx r0 .pool thumb_func_end atkD1_sethelpinghand thumb_func_start sub_8054EB4 sub_8054EB4: @ 8054EB4 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x4 ldr r4, =gBattleTypeFlags ldr r0, [r4] movs r1, 0x80 lsls r1, 19 ands r0, r1 cmp r0, 0 bne _08054F9A ldr r0, =gUnknown_0202420B ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _08054EE8 ldr r0, [r4] ldr r1, =0x0a3f0902 ands r0, r1 cmp r0, 0 beq _08054F9A _08054EE8: ldr r6, =gUnknown_0202420B ldrb r0, [r6] bl battle_side_get_owner lsls r0, 24 lsrs r4, r0, 24 ldr r7, =gEnemyMonIndex ldrb r0, [r7] bl battle_side_get_owner lsls r0, 24 lsrs r5, r0, 24 ldr r0, =gBattleTypeFlags ldr r0, [r0] ldr r1, =0x0a3f0902 ands r0, r1 cmp r0, 0 bne _08054F46 ldr r0, =gUnknown_020243D0 adds r2, r0, 0 adds r2, 0x29 adds r0, r4, r2 ldrb r1, [r0] ldr r4, =gBitTable ldr r3, =gUnknown_0202406E ldrb r0, [r6] lsls r0, 1 adds r0, r3 ldrh r0, [r0] lsls r0, 2 adds r0, r4 ldr r0, [r0] ands r1, r0 cmp r1, 0 bne _08054F9A adds r0, r5, r2 ldrb r1, [r0] ldrb r0, [r7] lsls r0, 1 adds r0, r3 ldrh r0, [r0] lsls r0, 2 adds r0, r4 ldr r0, [r0] ands r1, r0 cmp r1, 0 bne _08054F9A _08054F46: ldr r0, =gBattleMons mov r8, r0 ldr r1, =gUnknown_0202420B ldrb r4, [r1] movs r5, 0x58 adds r0, r4, 0 muls r0, r5 add r0, r8 mov r9, r0 ldrh r3, [r0, 0x2E] adds r1, r3, 0 cmp r1, 0 bne _08054F6E ldr r0, =gEnemyMonIndex ldrb r0, [r0] muls r0, r5 add r0, r8 ldrh r0, [r0, 0x2E] cmp r0, 0 beq _08054F9A _08054F6E: cmp r1, 0xAF beq _08054F9A ldr r7, =gEnemyMonIndex ldrb r0, [r7] muls r0, r5 mov r2, r8 adds r1, r0, r2 ldrh r2, [r1, 0x2E] cmp r2, 0xAF beq _08054F9A adds r0, r3, 0 subs r0, 0x79 lsls r0, 16 lsrs r0, 16 cmp r0, 0xB bls _08054F9A adds r0, r2, 0 subs r0, 0x79 lsls r0, 16 lsrs r0, 16 cmp r0, 0xB bhi _08054FDC _08054F9A: ldr r3, =gUnknown_02024214 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 _08055132 .pool _08054FDC: adds r0, r1, 0 adds r0, 0x20 ldrb r0, [r0] cmp r0, 0x3C bne _08055010 ldr r1, =gUnknown_02024214 ldr r0, =gUnknown_082DB63F str r0, [r1] ldr r1, =gUnknown_0202420A ldrb r0, [r7] muls r0, r5 add r0, r8 adds r0, 0x20 ldrb r0, [r0] strb r0, [r1] ldrb r0, [r7] ldrb r1, [r1] bl b_history__record_ability_usage_of_player b _08055132 .pool _08055010: ldr r3, =gUnknown_0202449C mov r10, r3 lsls r0, r4, 1 adds r0, 0xD0 ldr r1, [r3] adds r6, r1, r0 mov r0, r9 ldrh r0, [r0, 0x2E] mov r9, r0 strh r2, [r6] ldr r1, =gUnknown_0202420B ldrb r0, [r1] muls r0, r5 add r0, r8 movs r1, 0 strh r1, [r0, 0x2E] ldrb r0, [r7] muls r0, r5 add r0, r8 mov r2, r9 strh r2, [r0, 0x2E] ldr r4, =gUnknown_02024064 ldr r3, =gUnknown_0202420B ldrb r0, [r3] strb r0, [r4] str r6, [sp] movs r0, 0 movs r1, 0x2 movs r2, 0 movs r3, 0x2 bl dp01_build_cmdbuf_x02_a_b_varargs ldr r1, =gUnknown_0202420B ldrb r0, [r1] bl dp01_battle_side_mark_buffer_for_execution ldrb r0, [r7] strb r0, [r4] ldrb r0, [r7] muls r0, r5 mov r1, r8 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 ldrb r0, [r7] mov r2, r10 ldr r1, [r2] lsls r0, 1 adds r0, r1 adds r0, 0xC8 movs r3, 0 strb r3, [r0] ldrb r0, [r7] ldr r1, [r2] lsls r0, 1 adds r0, r1 adds r0, 0xC9 strb r3, [r0] ldr r1, =gUnknown_0202420B ldrb r0, [r1] ldr r1, [r2] lsls r0, 1 adds r0, r1 adds r0, 0xC8 strb r3, [r0] ldr r2, =gUnknown_0202420B ldrb r0, [r2] mov r3, r10 ldr r1, [r3] lsls r0, 1 adds r0, r1 adds r0, 0xC9 movs r1, 0 strb r1, [r0] ldr r1, =gUnknown_02024214 ldr r0, [r1] adds r0, 0x5 str r0, [r1] ldr r1, =gUnknown_02022F58 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, =gUnknown_02022F68 strb r3, [r1] strb r2, [r1, 0x1] mov r2, r9 strb r2, [r1, 0x2] mov r3, r9 lsrs r0, r3, 8 strb r0, [r1, 0x3] movs r0, 0x1 negs r0, r0 strb r0, [r1, 0x4] cmp r3, 0 beq _08055118 ldrh r0, [r6] cmp r0, 0 beq _0805512C ldr r1, =gUnknown_02024332 movs r0, 0x2 b _08055130 .pool _08055118: ldrh r0, [r6] cmp r0, 0 beq _0805512C ldr r0, =gUnknown_02024332 movs r1, 0 strb r1, [r0, 0x5] b _08055132 .pool _0805512C: ldr r1, =gUnknown_02024332 movs r0, 0x1 _08055130: strb r0, [r1, 0x5] _08055132: add sp, 0x4 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_8054EB4 thumb_func_start sub_8055148 sub_8055148: @ 8055148 push {r4,lr} ldr r3, =gBattleMons ldr r4, =gEnemyMonIndex 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 _0805519C cmp r0, 0x19 beq _0805519C ldr r0, =gUnknown_0202420B ldrb r0, [r0] muls r0, r2 adds r0, r3 adds r0, 0x20 strb r1, [r0] ldr r1, =gUnknown_0202420A ldrb r0, [r4] muls r0, r2 adds r0, r3 adds r0, 0x20 ldrb r0, [r0] strb r0, [r1] ldr r1, =gUnknown_02024214 ldr r0, [r1] adds r0, 0x5 str r0, [r1] b _080551B6 .pool _0805519C: ldr r3, =gUnknown_02024214 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] _080551B6: pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_8055148 thumb_func_start atkD4_802C408 atkD4_802C408: @ 80551C0 push {r4-r7,lr} ldr r7, =gUnknown_02024214 ldr r2, [r7] ldrb r3, [r2, 0x1] cmp r3, 0 beq _080551D8 cmp r3, 0x1 beq _08055210 b _0805528C .pool _080551D8: ldr r1, =gUnknown_020243D0 ldr r4, =gUnknown_0202420B adds r0, r1, 0 adds r0, 0x20 ldrb r5, [r4] adds r3, r0, r5 ldrb r0, [r3] cmp r0, 0 bne _0805525C movs r0, 0x2 strb r0, [r3] ldrb r0, [r4] adds r1, 0x24 adds r1, r0, r1 ldr r2, =gUnknown_0202406E lsls r0, 1 adds r0, r2 ldrh r0, [r0] strb r0, [r1] ldr r0, [r7] adds r0, 0x6 b _0805528A .pool _08055210: ldr r1, =gUnknown_02022F58 movs r0, 0xFD strb r0, [r1] movs r0, 0x4 strb r0, [r1, 0x1] ldr r4, =gEnemyMonIndex ldrb r0, [r4] strb r0, [r1, 0x2] ldr r0, =gUnknown_020243D0 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, =gBattleMoveDamage ldr r6, =gBattleMons 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 _08055248 str r3, [r1] _08055248: 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 _08055288 _0805525C: 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 _0805528C .pool _08055288: adds r0, r2, 0x6 _0805528A: str r0, [r7] _0805528C: pop {r4-r7} pop {r0} bx r0 thumb_func_end atkD4_802C408 thumb_func_start sub_8055294 sub_8055294: @ 8055294 push {lr} ldr r1, =gUnknown_020242AC ldr r0, =gUnknown_0202420B 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 _080552D8 ldr r3, =gUnknown_02024214 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 _080552E4 .pool _080552D8: orrs r1, r3 str r1, [r2] ldr r1, =gUnknown_02024214 ldr r0, [r1] adds r0, 0x5 str r0, [r1] _080552E4: pop {r0} bx r0 .pool thumb_func_end sub_8055294 thumb_func_start atkD6_doubledamagedealtifdamaged atkD6_doubledamagedealtifdamaged: @ 80552EC push {lr} ldr r3, =gUnknown_0202433C ldr r0, =gUnknown_0202420B ldrb r0, [r0] lsls r2, r0, 4 adds r0, r3, 0x4 adds r0, r2, r0 ldr r0, [r0] cmp r0, 0 beq _0805530C adds r0, r2, r3 ldr r1, =gEnemyMonIndex ldrb r0, [r0, 0xC] ldrb r1, [r1] cmp r0, r1 beq _08055324 _0805530C: adds r0, r3, 0 adds r0, 0x8 adds r0, r2, r0 ldr r0, [r0] cmp r0, 0 beq _0805532A adds r0, r2, r3 ldr r1, =gEnemyMonIndex ldrb r0, [r0, 0xD] ldrb r1, [r1] cmp r0, r1 bne _0805532A _08055324: ldr r1, =gUnknown_02024474 movs r0, 0x2 strb r0, [r1, 0xE] _0805532A: ldr r1, =gUnknown_02024214 ldr r0, [r1] adds r0, 0x1 str r0, [r1] pop {r0} bx r0 .pool thumb_func_end atkD6_doubledamagedealtifdamaged thumb_func_start sub_805534C sub_805534C: @ 805534C push {r4,lr} ldr r1, =gUnknown_020242AC ldr r0, =gEnemyMonIndex 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 _08055374 ldr r1, =gBattleMons movs r0, 0x58 muls r0, r3 adds r1, 0x4C adds r0, r1 ldrb r0, [r0] cmp r0, 0 beq _080553A0 _08055374: ldr r3, =gUnknown_02024214 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 _080553B0 .pool _080553A0: movs r0, 0x80 lsls r0, 5 orrs r2, r0 str r2, [r4] ldr r1, =gUnknown_02024214 ldr r0, [r1] adds r0, 0x5 str r0, [r1] _080553B0: pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_805534C thumb_func_start atkD8_setdamagetohealthdifference atkD8_setdamagetohealthdifference: @ 80553BC push {lr} ldr r2, =gBattleMons ldr r0, =gEnemyMonIndex ldrb r0, [r0] movs r1, 0x58 muls r0, r1 adds r3, r0, r2 ldr r0, =gUnknown_0202420B ldrb r0, [r0] muls r0, r1 adds r1, r0, r2 ldrh r0, [r3, 0x28] ldrh r2, [r1, 0x28] cmp r0, r2 bhi _08055408 ldr r3, =gUnknown_02024214 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 _0805541A .pool _08055408: ldr r2, =gBattleMoveDamage ldrh r0, [r3, 0x28] ldrh r1, [r1, 0x28] subs r0, r1 str r0, [r2] ldr r1, =gUnknown_02024214 ldr r0, [r1] adds r0, 0x5 str r0, [r1] _0805541A: pop {r0} bx r0 .pool thumb_func_end atkD8_setdamagetohealthdifference thumb_func_start atkD9_scaledamagebyhealthratio atkD9_scaledamagebyhealthratio: @ 8055428 push {r4,lr} ldr r4, =gUnknown_02024400 ldrh r0, [r4] cmp r0, 0 bne _08055464 ldr r2, =gBattleMoves ldr r0, =gUnknown_020241EA ldrh r1, [r0] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r3, [r0, 0x1] ldr r2, =gBattleMons ldr r0, =gUnknown_0202420B 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 _08055464 movs r0, 0x1 strh r0, [r4] _08055464: ldr r1, =gUnknown_02024214 ldr r0, [r1] adds r0, 0x1 str r0, [r1] pop {r4} pop {r0} bx r0 .pool thumb_func_end atkD9_scaledamagebyhealthratio thumb_func_start atkDA_abilityswap atkDA_abilityswap: @ 805548C push {r4-r6,lr} ldr r5, =gBattleMons ldr r0, =gUnknown_0202420B 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 _080554B4 ldr r0, =gEnemyMonIndex ldrb r0, [r0] muls r0, r4 adds r0, r5 adds r0, 0x20 ldrb r0, [r0] cmp r0, 0 beq _080554D4 _080554B4: cmp r1, 0x19 beq _080554D4 ldr r6, =gEnemyMonIndex ldrb r0, [r6] muls r0, r4 adds r0, r5 adds r0, 0x20 ldrb r3, [r0] cmp r3, 0x19 beq _080554D4 ldr r0, =gBattleMoveFlags ldrb r1, [r0] movs r0, 0x29 ands r0, r1 cmp r0, 0 beq _08055504 _080554D4: ldr r3, =gUnknown_02024214 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 _0805551A .pool _08055504: ldrb r1, [r2] strb r3, [r2] ldrb r0, [r6] muls r0, r4 adds r0, r5 adds r0, 0x20 strb r1, [r0] ldr r1, =gUnknown_02024214 ldr r0, [r1] adds r0, 0x5 str r0, [r1] _0805551A: pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end atkDA_abilityswap thumb_func_start atkDB_imprisoneffect atkDB_imprisoneffect: @ 8055524 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} ldr r1, =gUnknown_020242AC ldr r4, =gUnknown_0202420B ldrb r2, [r4] lsls r0, r2, 2 adds r0, r1 ldr r0, [r0] movs r1, 0x80 lsls r1, 6 ands r0, r1 cmp r0, 0 beq _08055574 b _080555F6 .pool _0805554C: ldr r0, =gUnknown_020242AC 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, =gUnknown_02024214 ldr r0, [r1] adds r0, 0x5 str r0, [r1] b _080555EE .pool _08055574: adds r0, r2, 0 bl battle_side_get_owner lsls r0, 24 lsrs r0, 24 mov r8, r0 ldrb r0, [r4] bl sub_803F548 movs r6, 0 b _080555E6 _0805558A: adds r0, r6, 0 bl battle_side_get_owner lsls r0, 24 lsrs r0, 24 cmp r8, r0 beq _080555E0 movs r4, 0 ldr r7, =gUnknown_0202420B mov r9, r7 ldr r0, =gBattleMons 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 _080555B4: movs r2, 0 ldrh r1, [r3] mov r0, r12 adds r0, 0xC adds r0, r5, r0 _080555BE: ldrh r7, [r0] cmp r1, r7 bne _080555C8 cmp r1, 0 bne _080555D0 _080555C8: adds r0, 0x2 adds r2, 0x1 cmp r2, 0x3 ble _080555BE _080555D0: cmp r2, 0x4 bne _080555DC adds r3, 0x2 adds r4, 0x1 cmp r4, 0x3 ble _080555B4 _080555DC: cmp r4, 0x4 bne _0805554C _080555E0: adds r0, r6, 0x1 lsls r0, 24 lsrs r6, r0, 24 _080555E6: ldr r0, =gUnknown_0202406C ldrb r0, [r0] cmp r6, r0 bcc _0805558A _080555EE: ldr r0, =gUnknown_0202406C ldrb r0, [r0] cmp r6, r0 bne _08055610 _080555F6: ldr r3, =gUnknown_02024214 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] _08055610: pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end atkDB_imprisoneffect thumb_func_start atkDC_setgrudge atkDC_setgrudge: @ 805562C push {lr} ldr r1, =gUnknown_020242AC ldr r0, =gUnknown_0202420B 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 _08055670 ldr r3, =gUnknown_02024214 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 _0805567C .pool _08055670: orrs r1, r3 str r1, [r2] ldr r1, =gUnknown_02024214 ldr r0, [r1] adds r0, 0x5 str r0, [r1] _0805567C: pop {r0} bx r0 .pool thumb_func_end atkDC_setgrudge thumb_func_start atkDD_weightdamagecalculation atkDD_weightdamagecalculation: @ 8055684 push {r4-r7,lr} mov r7, r8 push {r7} movs r5, 0 ldr r2, =gUnknown_0831C428 ldrh r0, [r2] ldr r1, =0x0000ffff cmp r0, r1 beq _080556FC adds r6, r2, 0 ldr r0, =gBattleMons mov r8, r0 adds r7, r1, 0 adds r4, r6, 0 _080556A0: ldr r0, =gEnemyMonIndex 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_80C0630 ldrh r1, [r4] lsls r0, 16 lsrs r0, 16 cmp r1, r0 bhi _080556CE adds r4, 0x4 adds r5, 0x2 ldrh r0, [r4] cmp r0, r7 bne _080556A0 _080556CE: lsls r0, r5, 1 adds r0, r6 ldrh r1, [r0] ldr r0, =0x0000ffff cmp r1, r0 beq _080556FC ldr r0, =gUnknown_02024400 adds r1, r5, 0x1 lsls r1, 1 adds r1, r6 ldrh r1, [r1] strh r1, [r0] b _08055702 .pool _080556FC: ldr r1, =gUnknown_02024400 movs r0, 0x78 strh r0, [r1] _08055702: ldr r1, =gUnknown_02024214 ldr r0, [r1] adds r0, 0x1 str r0, [r1] pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end atkDD_weightdamagecalculation thumb_func_start atkDE_asistattackselect atkDE_asistattackselect: @ 805571C push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0xC movs r0, 0 mov r10, r0 ldr r0, =gUnknown_0202449C ldr r0, [r0] adds r0, 0x18 str r0, [sp, 0x4] ldr r0, =gUnknown_0202420B ldrb r0, [r0] bl battle_get_per_side_status movs r1, 0x1 ands r1, r0 ldr r0, =gPlayerParty str r0, [sp] cmp r1, 0 beq _0805574C ldr r1, =gEnemyParty str r1, [sp] _0805574C: movs r2, 0 _0805574E: ldr r1, =gUnknown_0202406E ldr r0, =gUnknown_0202420B ldrb r0, [r0] lsls r0, 1 adds r0, r1 adds r1, r2, 0x1 str r1, [sp, 0x8] ldrh r0, [r0] cmp r2, r0 beq _080557F4 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 GetMonData cmp r0, 0 beq _080557F4 adds r0, r4, 0 movs r1, 0x41 bl GetMonData movs r1, 0xCE lsls r1, 1 cmp r0, r1 beq _080557F4 movs r5, 0 ldr r1, =0x0000ffff mov r8, r1 mov r9, r6 mov r1, r10 lsls r0, r1, 1 ldr r1, [sp, 0x4] adds r6, r0, r1 _08055798: movs r7, 0 adds r1, r5, 0 adds r1, 0xD ldr r0, [sp] add r0, r9 bl GetMonData lsls r0, 16 lsrs r4, r0, 16 adds r0, r4, 0 bl sub_8052F84 lsls r0, 24 adds r1, r5, 0x1 cmp r0, 0 bne _080557EE ldr r0, =gUnknown_0831C3E0 ldrh r2, [r0] adds r3, r0, 0 cmp r2, r8 beq _080557E2 cmp r4, r2 beq _080557D8 ldr r5, =0x0000ffff adds r2, r3, 0 _080557CA: adds r2, 0x2 adds r7, 0x1 ldrh r0, [r2] cmp r0, r5 beq _080557E2 cmp r4, r0 bne _080557CA _080557D8: lsls r0, r7, 1 adds r0, r3 ldrh r0, [r0] cmp r0, r8 bne _080557EE _080557E2: cmp r4, 0 beq _080557EE strh r4, [r6] adds r6, 0x2 movs r0, 0x1 add r10, r0 _080557EE: adds r5, r1, 0 cmp r5, 0x3 ble _08055798 _080557F4: ldr r2, [sp, 0x8] cmp r2, 0x5 ble _0805574E mov r1, r10 cmp r1, 0 beq _0805586C ldr r2, =gUnknown_02024280 ldr r0, [r2] ldr r1, =0xfffffbff ands r0, r1 str r0, [r2] ldr r4, =gUnknown_020241EE bl Random movs r1, 0xFF ands r1, r0 mov r0, r10 muls r0, r1 asrs r0, 8 lsls r0, 1 ldr r1, [sp, 0x4] adds r0, r1 ldrh r0, [r0] strh r0, [r4] ldrh r0, [r4] movs r1, 0 bl sub_80458E0 ldr r1, =gEnemyMonIndex strb r0, [r1] ldr r1, =gUnknown_02024214 ldr r0, [r1] adds r0, 0x5 str r0, [r1] b _08055886 .pool _0805586C: ldr r3, =gUnknown_02024214 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] _08055886: add sp, 0xC pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end atkDE_asistattackselect thumb_func_start atkDF_setmagiccoat atkDF_setmagiccoat: @ 805589C push {lr} ldr r1, =gEnemyMonIndex ldr r3, =gUnknown_0202420B ldrb r0, [r3] strb r0, [r1] ldr r2, =gUnknown_0202437C 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, =gUnknown_02024082 ldrb r1, [r0] ldr r0, =gUnknown_0202406C ldrb r0, [r0] subs r0, 0x1 cmp r1, r0 bne _080558FC ldr r3, =gUnknown_02024214 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 _08055914 .pool _080558FC: ldr r0, =gUnknown_0202433C ldrb r1, [r3] lsls r1, 4 adds r1, r0 ldrb r0, [r1] movs r2, 0x10 orrs r0, r2 strb r0, [r1] ldr r1, =gUnknown_02024214 ldr r0, [r1] adds r0, 0x5 str r0, [r1] _08055914: pop {r0} bx r0 .pool thumb_func_end atkDF_setmagiccoat thumb_func_start atkE0_setstealstatchange atkE0_setstealstatchange: @ 8055920 push {lr} ldr r2, =gUnknown_0202437C ldr r3, =gUnknown_0202420B 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, =gUnknown_02024082 ldrb r1, [r0] ldr r0, =gUnknown_0202406C ldrb r0, [r0] subs r0, 0x1 cmp r1, r0 bne _08055978 ldr r3, =gUnknown_02024214 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 _0805598E .pool _08055978: ldr r0, =gUnknown_0202433C ldrb r1, [r3] lsls r1, 4 adds r1, r0 ldrb r0, [r1] orrs r0, r2 strb r0, [r1] ldr r1, =gUnknown_02024214 ldr r0, [r1] adds r0, 0x5 str r0, [r1] _0805598E: pop {r0} bx r0 .pool thumb_func_end atkE0_setstealstatchange thumb_func_start atkE1_802CBE4 atkE1_802CBE4: @ 805599C push {r4-r6,lr} ldr r4, =gUnknown_02024474 ldr r0, =gUnknown_0202449C ldr r0, [r0] adds r0, 0xD8 ldrb r0, [r0] strb r0, [r4, 0x17] ldrb r0, [r4, 0x17] bl battle_side_get_owner lsls r0, 24 lsrs r5, r0, 24 ldr r2, =gUnknown_02022F58 movs r0, 0xFD strb r0, [r2] movs r0, 0x9 strb r0, [r2, 0x1] ldr r3, =gBattleMons ldrb r1, [r4, 0x17] 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, =gEnemyMonIndex ldr r1, =gUnknown_0202406C ldrb r0, [r2] ldrb r1, [r1] cmp r0, r1 bcs _08055A22 adds r4, r2, 0 ldr r6, =gBitTable _080559E2: ldrb r0, [r4] bl battle_side_get_owner lsls r0, 24 lsrs r0, 24 cmp r0, r5 beq _08055A04 ldr r0, =gUnknown_02024210 ldrb r1, [r0] ldrb r0, [r4] lsls r0, 2 adds r0, r6 ldr r0, [r0] ands r1, r0 ldr r2, =gUnknown_0202406C cmp r1, 0 beq _08055A18 _08055A04: ldrb r0, [r4] adds r0, 0x1 strb r0, [r4] ldr r1, =gUnknown_0202406C lsls r0, 24 lsrs r0, 24 adds r2, r1, 0 ldrb r1, [r2] cmp r0, r1 bcc _080559E2 _08055A18: ldr r0, =gEnemyMonIndex ldrb r0, [r0] ldrb r2, [r2] cmp r0, r2 bcc _08055A64 _08055A22: ldr r3, =gUnknown_02024214 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 _08055A6C .pool _08055A64: ldr r1, =gUnknown_02024214 ldr r0, [r1] adds r0, 0x5 str r0, [r1] _08055A6C: pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end atkE1_802CBE4 thumb_func_start atkE2_cmde2 atkE2_cmde2: @ 8055A78 push {r4-r6,lr} sub sp, 0x4 ldr r5, =gUnknown_02024214 ldr r0, [r5] ldrb r0, [r0, 0x1] bl get_battle_side_of_something ldr r4, =gUnknown_02024064 strb r0, [r4] ldr r3, =gBattleMons ldrb r0, [r4] movs r6, 0x58 adds r1, r0, 0 muls r1, r6 adds r0, r1, r3 adds r0, 0x20 ldrb r0, [r0] cmp r0, 0x1E bne _08055AD2 adds r3, 0x4C adds r1, r3 movs r0, 0 str r0, [r1] ldr r2, =gBitTable ldrb r1, [r4] ldr r0, =gUnknown_0202449C ldr r0, [r0] adds r0, r1, r0 adds r0, 0x58 ldrb r0, [r0] lsls r0, 2 adds r0, r2 ldrb r2, [r0] adds r0, r1, 0 muls r0, r6 adds r0, r3 str r0, [sp] movs r0, 0 movs r1, 0x28 movs r3, 0x4 bl dp01_build_cmdbuf_x02_a_b_varargs ldrb r0, [r4] bl dp01_battle_side_mark_buffer_for_execution _08055AD2: ldr r0, [r5] adds r0, 0x2 str r0, [r5] add sp, 0x4 pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end atkE2_cmde2 thumb_func_start atkE3_jumpiffainted atkE3_jumpiffainted: @ 8055AF4 push {r4,lr} ldr r4, =gUnknown_02024214 ldr r0, [r4] ldrb r0, [r0, 0x1] bl get_battle_side_of_something ldr r1, =gUnknown_02024064 strb r0, [r1] ldr r2, =gBattleMons ldrb r1, [r1] movs r0, 0x58 muls r0, r1 adds r0, r2 ldrh r0, [r0, 0x28] cmp r0, 0 bne _08055B3C 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 _08055B42 .pool _08055B3C: ldr r0, [r4] adds r0, 0x6 str r0, [r4] _08055B42: pop {r4} pop {r0} bx r0 thumb_func_end atkE3_jumpiffainted thumb_func_start sub_8055B48 sub_8055B48: @ 8055B48 push {lr} ldr r0, =gUnknown_02022FF0 ldrb r0, [r0] cmp r0, 0x7 bhi _08055BE4 lsls r0, 2 ldr r1, =_08055B64 adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _08055B64: .4byte _08055B84 .4byte _08055B90 .4byte _08055B9C .4byte _08055BA8 .4byte _08055BB4 .4byte _08055BC0 .4byte _08055BCC .4byte _08055BD8 _08055B84: ldr r1, =gUnknown_02024332 movs r0, 0x2 b _08055BE8 .pool _08055B90: ldr r1, =gUnknown_02024332 movs r0, 0x1 b _08055BE8 .pool _08055B9C: ldr r1, =gUnknown_02024332 movs r0, 0x1B b _08055BE8 .pool _08055BA8: ldr r1, =gUnknown_02024332 movs r0, 0x17 b _08055BE8 .pool _08055BB4: ldr r1, =gUnknown_02024332 movs r0, 0x16 b _08055BE8 .pool _08055BC0: ldr r1, =gUnknown_02024332 movs r0, 0x18 b _08055BE8 .pool _08055BCC: ldr r1, =gUnknown_02024332 movs r0, 0x7 b _08055BE8 .pool _08055BD8: ldr r1, =gUnknown_02024332 movs r0, 0x8 b _08055BE8 .pool _08055BE4: ldr r1, =gUnknown_02024332 movs r0, 0x5 _08055BE8: strb r0, [r1, 0x3] ldr r1, =gUnknown_02024214 ldr r0, [r1] adds r0, 0x1 str r0, [r1] pop {r0} bx r0 .pool thumb_func_end sub_8055B48 thumb_func_start atkE5_pickupitemcalculation atkE5_pickupitemcalculation: @ 8055C00 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x4 bl InBattlePike lsls r0, 24 cmp r0, 0 beq _08055C18 b _08055DD8 _08055C18: bl InBattlePyramid lsls r0, 24 cmp r0, 0 beq _08055CC4 movs r6, 0 mov r7, sp ldr r0, =gBaseStats mov r8, r0 _08055C2A: movs r0, 0x64 adds r4, r6, 0 muls r4, r0 ldr r0, =gPlayerParty adds r4, r0 adds r0, r4, 0 movs r1, 0x41 bl GetMonData lsls r0, 16 lsrs r5, r0, 16 adds r0, r4, 0 movs r1, 0xC bl GetMonData strh r0, [r7] adds r0, r4, 0 movs r1, 0x2E bl GetMonData cmp r0, 0 beq _08055C6C lsls r0, r5, 3 subs r0, r5 lsls r0, 2 add r0, r8 ldrb r0, [r0, 0x17] b _08055C76 .pool _08055C6C: lsls r0, r5, 3 subs r0, r5 lsls r0, 2 add r0, r8 ldrb r0, [r0, 0x16] _08055C76: cmp r0, 0x35 bne _08055CB6 cmp r5, 0 beq _08055CB6 movs r0, 0xCE lsls r0, 1 cmp r5, r0 beq _08055CB6 ldrh r0, [r7] cmp r0, 0 bne _08055CB6 bl Random lsls r0, 16 lsrs r0, 16 movs r1, 0xA bl __umodsi3 lsls r0, 16 cmp r0, 0 bne _08055CB6 bl CalculateBattlePyramidPickupItemId strh r0, [r7] movs r0, 0x64 muls r0, r6 ldr r1, =gPlayerParty adds r0, r1 movs r1, 0xC mov r2, sp bl pokemon_setattr _08055CB6: adds r6, 0x1 cmp r6, 0x5 ble _08055C2A b _08055DD8 .pool _08055CC4: movs r6, 0 movs r1, 0x64 mov r8, r1 ldr r7, =gPlayerParty mov r10, sp _08055CCE: mov r4, r8 muls r4, r6 adds r4, r7 adds r0, r4, 0 movs r1, 0x41 bl GetMonData lsls r0, 16 lsrs r5, r0, 16 adds r0, r4, 0 movs r1, 0xC bl GetMonData mov r1, r10 strh r0, [r1] adds r0, r4, 0 movs r1, 0x2E bl GetMonData cmp r0, 0 beq _08055D30 lsls r0, r5, 3 subs r0, r5 lsls r0, 2 ldr r1, =gBaseStats adds r0, r1 ldrb r0, [r0, 0x17] b _08055D3C .pool _08055D10: mov r0, r8 muls r0, r6 adds r0, r7 adds r2, r1, 0 adds r2, 0x63 subs r2, r4 lsls r2, 1 ldr r1, =gRarePickupItems adds r2, r1 movs r1, 0xC bl pokemon_setattr b _08055DD0 .pool _08055D30: lsls r0, r5, 3 subs r0, r5 lsls r0, 2 ldr r1, =gBaseStats adds r0, r1 ldrb r0, [r0, 0x16] _08055D3C: adds r1, r6, 0x1 mov r9, r1 cmp r0, 0x35 bne _08055DD0 cmp r5, 0 beq _08055DD0 movs r0, 0xCE lsls r0, 1 cmp r5, r0 beq _08055DD0 mov r1, r10 ldrh r0, [r1] cmp r0, 0 bne _08055DD0 bl Random lsls r0, 16 lsrs r0, 16 movs r1, 0xA bl __umodsi3 lsls r0, 16 cmp r0, 0 bne _08055DD0 bl Random lsls r0, 16 lsrs r0, 16 movs r1, 0x64 bl __umodsi3 lsls r0, 16 lsrs r4, r0, 16 mov r0, r8 muls r0, r6 adds r0, r7 movs r1, 0x38 bl GetMonData subs r0, 0x1 movs r1, 0xA bl __udivsi3 lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0x9 bls _08055D9C movs r1, 0x9 _08055D9C: movs r2, 0 b _08055DAE .pool _08055DA4: adds r0, r4, 0 subs r0, 0x62 cmp r0, 0x1 bls _08055D10 adds r2, 0x1 _08055DAE: cmp r2, 0x8 bgt _08055DD0 ldr r0, =gPickupProbabilities adds r0, r2, r0 ldrb r0, [r0] cmp r0, r4 ble _08055DA4 mov r0, r8 muls r0, r6 adds r0, r7 adds r2, r1, r2 lsls r2, 1 ldr r1, =gPickupItems adds r2, r1 movs r1, 0xC bl pokemon_setattr _08055DD0: mov r6, r9 cmp r6, 0x5 bgt _08055DD8 b _08055CCE _08055DD8: ldr r1, =gUnknown_02024214 ldr r0, [r1] adds r0, 0x1 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 .pool thumb_func_end atkE5_pickupitemcalculation thumb_func_start atkE6_castform_transform atkE6_castform_transform: @ 8055DFC push {r4,lr} ldr r4, =gUnknown_02024064 ldr r0, =gUnknown_02024474 ldrb r0, [r0, 0x17] strb r0, [r4] ldr r1, =gBattleMons 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 ldr r3, =gUnknown_0202449C cmp r0, 0 beq _08055E2C ldr r0, [r3] adds r0, 0x7F ldrb r1, [r0] movs r2, 0x80 orrs r1, r2 strb r1, [r0] _08055E2C: ldr r0, [r3] adds r0, 0x7F 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, =gUnknown_02024214 ldr r0, [r1] adds r0, 0x1 str r0, [r1] pop {r4} pop {r0} bx r0 .pool thumb_func_end atkE6_castform_transform thumb_func_start atkE7_castform_switch atkE7_castform_switch: @ 8055E64 push {r4,lr} ldr r1, =gUnknown_02024214 ldr r0, [r1] adds r0, 0x1 str r0, [r1] ldr r0, =gUnknown_02024474 ldrb r0, [r0, 0x17] bl castform_switch lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0 beq _08055E8E ldr r0, =gUnknown_082DB4A9 bl b_push_move_exec ldr r0, =gUnknown_0202449C ldr r0, [r0] adds r0, 0x7F subs r1, r4, 0x1 strb r1, [r0] _08055E8E: pop {r4} pop {r0} bx r0 .pool thumb_func_end atkE7_castform_switch thumb_func_start atkE8_settypebasedhalvers atkE8_settypebasedhalvers: @ 8055EA4 push {r4,lr} movs r4, 0 ldr r2, =gBattleMoves ldr r0, =gUnknown_020241EA ldrh r1, [r0] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r0, [r0] cmp r0, 0xC9 bne _08055EF4 ldr r1, =gUnknown_020242AC ldr r0, =gUnknown_0202420B 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 _08055F18 orrs r1, r3 str r1, [r2] ldr r0, =gUnknown_02024332 strb r4, [r0, 0x5] b _08055F1C .pool _08055EF4: ldr r1, =gUnknown_020242AC ldr r0, =gUnknown_0202420B 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 _08055F18 orrs r1, r3 str r1, [r2] ldr r1, =gUnknown_02024332 movs r0, 0x1 strb r0, [r1, 0x5] movs r4, 0x1 _08055F18: cmp r4, 0 beq _08055F38 _08055F1C: ldr r1, =gUnknown_02024214 ldr r0, [r1] adds r0, 0x5 str r0, [r1] b _08055F52 .pool _08055F38: ldr r3, =gUnknown_02024214 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] _08055F52: pop {r4} pop {r0} bx r0 .pool thumb_func_end atkE8_settypebasedhalvers thumb_func_start atkE9_seteffectbyweather atkE9_seteffectbyweather: @ 8055F5C push {lr} sub sp, 0x4 movs r0, 0 str r0, [sp] movs r0, 0x13 movs r1, 0 movs r2, 0xD movs r3, 0 bl ability_something lsls r0, 24 lsrs r0, 24 cmp r0, 0 bne _08055FFC str r0, [sp] movs r0, 0x13 movs r1, 0 movs r2, 0x4D movs r3, 0 bl ability_something lsls r0, 24 cmp r0, 0 bne _08055FFC ldr r2, =gBattleWeather ldrb r0, [r2] cmp r0, 0 beq _08055F9A ldr r1, =gUnknown_02024474 movs r0, 0x2 strb r0, [r1, 0xE] _08055F9A: ldrh r1, [r2] movs r0, 0x7 ands r0, r1 cmp r0, 0 beq _08055FB8 ldr r0, =gUnknown_0202449C ldr r1, [r0] movs r0, 0x8B b _08055FFA .pool _08055FB8: movs r0, 0x18 ands r0, r1 cmp r0, 0 beq _08055FCC ldr r0, =gUnknown_0202449C ldr r1, [r0] movs r0, 0x85 b _08055FFA .pool _08055FCC: movs r0, 0x60 ands r0, r1 cmp r0, 0 beq _08055FE0 ldr r0, =gUnknown_0202449C ldr r1, [r0] movs r0, 0x8A b _08055FFA .pool _08055FE0: movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _08055FF4 ldr r0, =gUnknown_0202449C ldr r1, [r0] movs r0, 0x8F b _08055FFA .pool _08055FF4: ldr r0, =gUnknown_0202449C ldr r1, [r0] movs r0, 0x80 _08055FFA: strb r0, [r1, 0x13] _08055FFC: ldr r1, =gUnknown_02024214 ldr r0, [r1] adds r0, 0x1 str r0, [r1] add sp, 0x4 pop {r0} bx r0 .pool thumb_func_end atkE9_seteffectbyweather thumb_func_start atkEA_recycleitem atkEA_recycleitem: @ 8056014 push {r4-r7,lr} sub sp, 0x4 ldr r7, =gUnknown_02024064 ldr r0, =gUnknown_0202420B ldrb r0, [r0] strb r0, [r7] ldr r1, =gUnknown_0202449C ldrb r2, [r7] lsls r0, r2, 1 adds r0, 0xB8 ldr r1, [r1] adds r6, r1, r0 ldrh r5, [r6] cmp r5, 0 beq _08056094 ldr r4, =gBattleMons movs r3, 0x58 adds r0, r2, 0 muls r0, r3 adds r0, r4 ldrh r0, [r0, 0x2E] cmp r0, 0 bne _08056094 ldr r1, =gUnknown_02024208 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, =gUnknown_02024214 ldr r0, [r1] adds r0, 0x5 str r0, [r1] b _080560AE .pool _08056094: ldr r3, =gUnknown_02024214 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] _080560AE: add sp, 0x4 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end atkEA_recycleitem thumb_func_start atkEB_settypetoterrain atkEB_settypetoterrain: @ 80560BC push {r4-r7,lr} mov r7, r8 push {r7} ldr r0, =gBattleMons mov r8, r0 ldr r7, =gUnknown_0202420B 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, =gUnknown_0831C483 ldr r4, =gUnknown_02022FF0 ldrb r0, [r4] adds r0, r5 ldrb r2, [r0] mov r1, r12 ldrb r0, [r1] adds r1, r2, 0 cmp r0, r1 beq _08056144 adds r0, r3, 0 adds r0, 0x22 ldrb r0, [r0] cmp r0, r1 beq _08056144 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, =gUnknown_02022F58 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, =gUnknown_02024214 ldr r0, [r1] adds r0, 0x5 str r0, [r1] b _0805615E .pool _08056144: ldr r3, =gUnknown_02024214 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] _0805615E: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end atkEB_settypetoterrain thumb_func_start atkEC_802D2A0 atkEC_802D2A0: @ 805616C push {r4-r6,lr} ldr r5, =gUnknown_0202420B 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, =gUnknown_02024064 strb r0, [r4] ldr r0, =gBattleTypeFlags ldr r0, [r0] movs r6, 0x1 ands r0, r6 cmp r0, 0 beq _0805620C ldr r0, =gUnknown_02024210 ldrb r1, [r0] ldr r2, =gBitTable ldrb r3, [r4] lsls r0, r3, 2 adds r0, r2 ldr r0, [r0] ands r1, r0 cmp r1, 0 bne _0805620C ldr r0, =gUnknown_0202421C adds r0, r3, r0 ldrb r0, [r0] cmp r0, 0 bne _0805620C ldr r1, =gUnknown_02024274 lsls r0, r3, 1 adds r0, r1 ldrh r2, [r0] cmp r2, 0xE4 bne _0805620C ldr r0, =gUnknown_0202407A adds r0, r3, r0 movs r1, 0xB strb r1, [r0] ldr r0, =gUnknown_020241EA strh r2, [r0] ldr r1, =gUnknown_02024214 ldr r0, [r1] adds r0, 0x5 str r0, [r1] ldr r0, =gUnknown_02024474 strb r6, [r0, 0x18] ldrb r1, [r5] adds r0, 0x20 strb r1, [r0] ldrb r0, [r4] strb r0, [r5] b _08056226 .pool _0805620C: ldr r3, =gUnknown_02024214 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] _08056226: pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end atkEC_802D2A0 thumb_func_start atkED_802D364 atkED_802D364: @ 8056230 push {r4,lr} ldr r1, =gUnknown_0202420E ldr r3, =gUnknown_0202420B ldrb r0, [r3] strb r0, [r1] ldr r2, =gEnemyMonIndex lsls r0, 24 lsrs r0, 24 adds r4, r1, 0 ldrb r1, [r2] cmp r0, r1 bne _08056264 ldr r1, =gUnknown_02024474 ldrb r0, [r1, 0x17] strb r0, [r2] strb r0, [r3] b _0805626A .pool _08056264: ldr r1, =gUnknown_02024474 ldrb r0, [r1, 0x17] strb r0, [r2] _0805626A: ldrb r0, [r4] strb r0, [r1, 0x17] ldr r1, =gUnknown_02024214 ldr r0, [r1] adds r0, 0x1 str r0, [r1] pop {r4} pop {r0} bx r0 .pool thumb_func_end atkED_802D364 thumb_func_start atkEE_removereflectlightscreen atkEE_removereflectlightscreen: @ 8056284 push {r4,lr} ldr r0, =gUnknown_0202420B ldrb r0, [r0] bl battle_side_get_owner movs r1, 0x1 eors r0, r1 lsls r0, 24 lsrs r0, 24 ldr r1, =gUnknown_02024294 lsls r3, r0, 1 adds r0, r3, r0 lsls r0, 2 adds r4, r0, r1 ldrb r0, [r4] cmp r0, 0 bne _080562AC ldrb r1, [r4, 0x2] cmp r1, 0 beq _080562E4 _080562AC: ldr r2, =gUnknown_0202428E adds r2, r3, r2 ldrh r1, [r2] ldr r0, =0x0000fffe ands r0, r1 movs r3, 0 ldr r1, =0x0000fffd ands r0, r1 strh r0, [r2] strb r3, [r4] strb r3, [r4, 0x2] ldr r1, =gUnknown_02024474 movs r0, 0x1 strb r0, [r1, 0x18] strb r0, [r1, 0x19] b _080562EA .pool _080562E4: ldr r0, =gUnknown_02024474 strb r1, [r0, 0x18] strb r1, [r0, 0x19] _080562EA: ldr r1, =gUnknown_02024214 ldr r0, [r1] adds r0, 0x1 str r0, [r1] pop {r4} pop {r0} bx r0 .pool thumb_func_end atkEE_removereflectlightscreen thumb_func_start sub_8056300 sub_8056300: @ 8056300 push {r4-r6,lr} movs r4, 0 ldr r0, =gUnknown_02024068 ldr r0, [r0] cmp r0, 0 beq _0805630E b _08056696 _0805630E: ldr r5, =gUnknown_02024064 ldr r0, =gUnknown_0202420B ldrb r0, [r0] strb r0, [r5] ldr r6, =gEnemyMonIndex movs r1, 0x1 eors r0, r1 strb r0, [r6] ldr r0, =gBattleTypeFlags ldr r1, [r0] movs r0, 0x8 ands r0, r1 cmp r0, 0 beq _0805635C 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, =gUnknown_02024214 ldr r0, =gUnknown_082DBE02 b _08056694 .pool _0805635C: movs r0, 0x80 lsls r0, 2 ands r1, r0 cmp r1, 0 beq _08056384 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, =gUnknown_02024214 ldr r0, =gUnknown_082DBDCA b _08056694 .pool _08056384: ldr r0, =gUnknown_02024208 ldrh r0, [r0] cmp r0, 0x5 bne _080563B0 ldr r0, =gUnknown_0202449C ldr r0, [r0] adds r0, 0x7C 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 _080563C8 .pool _080563B0: ldr r3, =gBaseStats ldr r2, =gBattleMons 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] _080563C8: ldr r2, =gUnknown_02024208 ldrh r0, [r2] cmp r0, 0x5 bhi _080563D2 b _080564C8 _080563D2: subs r0, 0x6 cmp r0, 0x6 bls _080563DA b _080564D2 _080563DA: lsls r0, 2 ldr r1, =_080563F4 adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _080563F4: .4byte _08056410 .4byte _08056440 .4byte _08056452 .4byte _08056480 .4byte _080564B0 .4byte _08056472 .4byte _08056472 _08056410: ldr r2, =gBattleMons ldr r0, =gEnemyMonIndex 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 _080564A4 adds r0, 0x22 ldrb r0, [r0] cmp r0, 0xB beq _080564A4 cmp r1, 0x6 beq _080564A4 cmp r0, 0x6 beq _080564A4 b _08056472 .pool _08056440: bl sav1_map_get_light_level lsls r0, 24 lsrs r0, 24 movs r4, 0xA cmp r0, 0x5 bne _080564D2 movs r4, 0x23 b _080564D2 _08056452: ldr r2, =gBattleMons ldr r0, =gEnemyMonIndex ldrb r1, [r0] movs r0, 0x58 muls r0, r1 adds r0, r2 adds r0, 0x2A ldrb r1, [r0] cmp r1, 0x27 bhi _08056472 movs r0, 0x28 subs r0, r1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x9 bhi _080564D2 _08056472: movs r4, 0xA b _080564D2 .pool _08056480: ldr r2, =gBattleMons ldr r0, =gEnemyMonIndex 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 pokedex_flag_operation lsls r0, 24 movs r4, 0xA cmp r0, 0 beq _080564D2 _080564A4: movs r4, 0x1E b _080564D2 .pool _080564B0: ldr r0, =gUnknown_03005D10 ldrb r0, [r0, 0x13] adds r0, 0xA lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x28 bls _080564D2 movs r4, 0x28 b _080564D2 .pool _080564C8: ldr r1, =gUnknown_0831C48D ldrh r0, [r2] subs r0, 0x2 adds r0, r1 ldrb r4, [r0] _080564D2: adds r0, r5, 0 muls r0, r4 movs r1, 0xA bl __divsi3 ldr r5, =gBattleMons ldr r1, =gEnemyMonIndex ldrb r2, [r1] movs r1, 0x58 adds r4, r2, 0 muls r4, r1 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 _0805650E lsls r6, 1 _0805650E: movs r0, 0xD8 ands r4, r0 cmp r4, 0 beq _08056522 lsls r0, r6, 4 subs r0, r6 movs r1, 0xA bl __udivsi3 adds r6, r0, 0 _08056522: ldr r1, =gUnknown_02024208 ldrh r0, [r1] cmp r0, 0x5 beq _08056564 cmp r0, 0x1 bne _08056550 ldr r0, =gUnknown_03005D10 ldrb r1, [r0, 0x5] movs r2, 0x2 orrs r1, r2 strb r1, [r0, 0x5] b _08056564 .pool _08056550: ldr r0, =gUnknown_03005D10 ldrh r1, [r1] adds r0, r1 adds r1, r0, 0 adds r1, 0x34 ldrb r0, [r1] cmp r0, 0xFE bhi _08056564 adds r0, 0x1 strb r0, [r1] _08056564: cmp r6, 0xFE bls _080565C8 movs r0, 0 movs r1, 0x4 bl dp01_build_cmdbuf_x0D_a ldr r0, =gUnknown_02024064 ldrb r0, [r0] bl dp01_battle_side_mark_buffer_for_execution ldr r1, =gUnknown_02024214 ldr r0, =gUnknown_082DBD84 str r0, [r1] ldr r1, =gUnknown_0202406E ldr r0, =gEnemyMonIndex ldrb r0, [r0] lsls r0, 1 adds r0, r1 ldrh r1, [r0] movs r0, 0x64 muls r0, r1 ldr r1, =gEnemyParty adds r0, r1 ldr r2, =gUnknown_02024208 movs r1, 0x26 bl pokemon_setattr bl calc_player_party_count lsls r0, 24 lsrs r0, 24 cmp r0, 0x6 beq _08056656 b _08056680 .pool _080565C8: 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, =0x000ffff0 adds r1, r6, 0 bl __udivsi3 adds r6, r0, 0 movs r4, 0 b _080565FA .pool _080565F4: adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 _080565FA: cmp r4, 0x3 bhi _0805660A bl Random lsls r0, 16 lsrs r0, 16 cmp r0, r6 bcc _080565F4 _0805660A: ldr r5, =gUnknown_02024208 ldrh r0, [r5] cmp r0, 0x1 bne _08056614 movs r4, 0x4 _08056614: movs r0, 0 adds r1, r4, 0 bl dp01_build_cmdbuf_x0D_a ldr r0, =gUnknown_02024064 ldrb r0, [r0] bl dp01_battle_side_mark_buffer_for_execution cmp r4, 0x4 bne _0805668C ldr r1, =gUnknown_02024214 ldr r0, =gUnknown_082DBD84 str r0, [r1] ldr r1, =gUnknown_0202406E ldr r0, =gEnemyMonIndex ldrb r0, [r0] lsls r0, 1 adds r0, r1 ldrh r1, [r0] movs r0, 0x64 muls r0, r1 ldr r1, =gEnemyParty 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 _08056680 _08056656: ldr r1, =gUnknown_02024332 movs r0, 0 strb r0, [r1, 0x5] b _08056696 .pool _08056680: ldr r1, =gUnknown_02024332 movs r0, 0x1 strb r0, [r1, 0x5] b _08056696 .pool _0805668C: ldr r0, =gUnknown_02024332 strb r4, [r0, 0x5] ldr r1, =gUnknown_02024214 ldr r0, =gUnknown_082DBDD4 _08056694: str r0, [r1] _08056696: pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_8056300 thumb_func_start atkF0_catch_pokemon atkF0_catch_pokemon: @ 80566A8 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} ldr r0, =gUnknown_0202406E mov r9, r0 ldr r5, =gUnknown_0202420B ldrb r0, [r5] movs r6, 0x1 eors r0, r6 lsls r0, 1 add r0, r9 ldrh r0, [r0] movs r7, 0x64 muls r0, r7 ldr r1, =gEnemyParty mov r8, r1 add r0, r8 bl pokemon_catch lsls r0, 24 cmp r0, 0 beq _08056792 bl sub_813B21C lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0 bne _08056734 ldr r0, =gUnknown_02024332 strb r1, [r0, 0x5] ldr r4, =gStringVar1 ldr r0, =0x00004036 bl VarGet lsls r0, 24 lsrs r0, 24 bl sav3_get_box_name adds r1, r0, 0 adds r0, r4, 0 bl StringCopy ldrb r0, [r5] eors r0, r6 lsls r0, 1 add r0, r9 ldrh r0, [r0] muls r0, r7 add r0, r8 ldr r2, =gStringVar2 movs r1, 0x2 bl GetMonData b _0805677E .pool _08056734: ldr r4, =gStringVar1 ldr r0, =0x00004036 bl VarGet lsls r0, 24 lsrs r0, 24 bl sav3_get_box_name adds r1, r0, 0 adds r0, r4, 0 bl StringCopy ldrb r0, [r5] eors r0, r6 lsls r0, 1 add r0, r9 ldrh r0, [r0] muls r0, r7 add r0, r8 ldr r2, =gStringVar2 movs r1, 0x2 bl GetMonData ldr r4, =gStringVar3 bl get_unknown_box_id lsls r0, 24 lsrs r0, 24 bl sav3_get_box_name adds r1, r0, 0 adds r0, r4, 0 bl StringCopy ldr r1, =gUnknown_02024332 movs r0, 0x2 strb r0, [r1, 0x5] _0805677E: ldr r0, =0x000008ab bl FlagGet lsls r0, 24 cmp r0, 0 beq _08056792 ldr r1, =gUnknown_02024332 ldrb r0, [r1, 0x5] adds r0, 0x1 strb r0, [r1, 0x5] _08056792: ldr r0, =gUnknown_0202406E mov r10, r0 ldr r1, =gUnknown_0202420B mov r9, r1 ldrb r0, [r1] movs r4, 0x1 eors r0, r4 lsls r0, 1 add r0, r10 ldrh r0, [r0] movs r1, 0x64 mov r8, r1 mov r1, r8 muls r1, r0 adds r0, r1, 0 ldr r6, =gEnemyParty adds r0, r6 movs r1, 0xB movs r2, 0 bl GetMonData ldr r5, =gUnknown_03005D10 strh r0, [r5, 0x28] mov r1, r9 ldrb r0, [r1] eors r0, r4 lsls r0, 1 add r0, r10 ldrh r0, [r0] mov r1, r8 muls r1, r0 adds r0, r1, 0 adds r0, r6 adds r2, r5, 0 adds r2, 0x2A movs r1, 0x2 bl GetMonData mov r1, r9 ldrb r0, [r1] eors r4, r0 lsls r4, 1 add r4, r10 ldrh r0, [r4] mov r1, r8 muls r1, r0 adds r0, r1, 0 adds r0, r6 movs r1, 0x26 movs r2, 0 bl GetMonData movs r1, 0xF ands r0, r1 lsls r0, 2 ldrb r2, [r5, 0x5] movs r1, 0x3D negs r1, r1 ands r1, r2 orrs r1, r0 strb r1, [r5, 0x5] ldr r1, =gUnknown_02024214 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 .pool thumb_func_end atkF0_catch_pokemon thumb_func_start atkF1_802D95C atkF1_802D95C: @ 8056850 push {r4,r5,lr} ldr r4, =gEnemyParty adds r0, r4, 0 movs r1, 0xB movs r2, 0 bl GetMonData lsls r0, 16 lsrs r5, r0, 16 adds r0, r4, 0 movs r1, 0 movs r2, 0 bl GetMonData adds r4, r0, 0 adds r0, r5, 0 bl SpeciesToNationalPokedexNum lsls r0, 16 lsrs r0, 16 movs r1, 0x1 bl pokedex_flag_operation lsls r0, 24 cmp r0, 0 beq _080568A8 ldr r3, =gUnknown_02024214 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 _080568C2 .pool _080568A8: adds r0, r5, 0 bl SpeciesToNationalPokedexNum lsls r0, 16 lsrs r0, 16 movs r1, 0x3 adds r2, r4, 0 bl SetPokedexFlag ldr r1, =gUnknown_02024214 ldr r0, [r1] adds r0, 0x5 str r0, [r1] _080568C2: pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end atkF1_802D95C thumb_func_start sub_80568CC sub_80568CC: @ 80568CC push {r4,lr} sub sp, 0x4 ldr r0, =gEnemyParty movs r1, 0xB movs r2, 0 bl GetMonData lsls r0, 16 lsrs r4, r0, 16 ldr r0, =gUnknown_02024332 ldrb r0, [r0] cmp r0, 0x5 bls _080568E8 b _08056A2C _080568E8: lsls r0, 2 ldr r1, =_08056900 adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _08056900: .4byte _08056918 .4byte _0805692A .4byte _08056978 .4byte _080569C8 .4byte _080569E0 .4byte _08056A18 _08056918: movs r0, 0x1 negs r0, r0 movs r1, 0 str r1, [sp] movs r2, 0 movs r3, 0x10 bl pal_fade_maybe b _08056A06 _0805692A: ldr r0, =gUnknown_02037FD4 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _08056938 b _08056A2C _08056938: bl FreeAllWindowBuffers adds r0, r4, 0 bl SpeciesToNationalPokedexNum lsls r0, 16 lsrs r0, 16 ldr r3, =gBattleMons ldr r1, =gEnemyMonIndex ldrb r2, [r1] movs r1, 0x58 muls r2, r1 adds r1, r3, 0 adds r1, 0x54 adds r1, r2, r1 ldr r1, [r1] adds r3, 0x48 adds r2, r3 ldr r2, [r2] bl sub_80BFDF4 ldr r1, =gUnknown_02024332 strb r0, [r1, 0x1] b _08056A08 .pool _08056978: ldr r0, =gUnknown_02037FD4 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _08056A2C ldr r0, =gMain ldr r1, [r0, 0x4] ldr r0, =sub_8038420 cmp r1, r0 bne _08056A2C ldr r2, =gTasks ldr r4, =gUnknown_02024332 ldrb r1, [r4, 0x1] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r2 ldrb r0, [r0, 0x4] cmp r0, 0 bne _08056A2C ldr r0, =vblank_cb_08078BB4 bl SetVBlankCallback ldrb r0, [r4] adds r0, 0x1 strb r0, [r4] b _08056A2C .pool _080569C8: bl c2_berry_program_update_menu bl sub_8035AA4 ldr r1, =gUnknown_02022E20 movs r2, 0x80 lsls r2, 1 adds r0, r2, 0 strh r0, [r1] b _08056A06 .pool _080569E0: bl IsDma3ManagerBusyWithBgCopy lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0 bne _08056A2C ldr r0, =0x0000ffff str r1, [sp] movs r1, 0 movs r2, 0x10 movs r3, 0 bl pal_fade_maybe movs r0, 0 bl ShowBg movs r0, 0x3 bl ShowBg _08056A06: ldr r1, =gUnknown_02024332 _08056A08: ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] b _08056A2C .pool _08056A18: ldr r0, =gUnknown_02037FD4 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _08056A2C ldr r1, =gUnknown_02024214 ldr r0, [r1] adds r0, 0x1 str r0, [r1] _08056A2C: add sp, 0x4 pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_80568CC thumb_func_start sub_8056A3C sub_8056A3C: @ 8056A3C push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x20 ldr r4, [sp, 0x40] lsls r0, 24 lsrs r0, 24 mov r8, r0 lsls r1, 24 lsrs r1, 24 str r1, [sp, 0x10] lsls r2, 24 lsrs r2, 24 str r2, [sp, 0x1C] lsls r3, 24 lsrs r3, 24 str r3, [sp, 0x14] lsls r4, 24 lsrs r4, 24 mov r10, r4 movs r1, 0 add r0, sp, 0xC strh r1, [r0] ldr r6, [sp, 0x10] cmp r6, r3 ble _08056A76 b _08056B62 _08056A76: mov r4, r8 adds r0, r6, 0x1 str r0, [sp, 0x18] ldr r2, [sp, 0x1C] cmp r4, r2 bgt _08056B58 add r5, sp, 0xC lsls r7, r6, 24 mov r9, r7 _08056A88: ldr r0, [sp, 0x10] cmp r6, r0 bne _08056AB4 cmp r4, r8 bne _08056A9C ldr r0, =0x00001022 b _08056AFE .pool _08056A9C: ldr r2, [sp, 0x1C] cmp r4, r2 bne _08056AAC ldr r0, =0x00001024 b _08056AFE .pool _08056AAC: ldr r0, =0x00001023 b _08056AFE .pool _08056AB4: ldr r7, [sp, 0x14] cmp r6, r7 bne _08056AE0 cmp r4, r8 bne _08056AC8 ldr r0, =0x00001028 b _08056AFE .pool _08056AC8: ldr r0, [sp, 0x1C] cmp r4, r0 bne _08056AD8 ldr r0, =0x0000102a b _08056AFE .pool _08056AD8: ldr r0, =0x00001029 b _08056AFE .pool _08056AE0: cmp r4, r8 bne _08056AEC ldr r0, =0x00001025 b _08056AFE .pool _08056AEC: ldr r2, [sp, 0x1C] cmp r4, r2 bne _08056AFC ldr r0, =0x00001027 b _08056AFE .pool _08056AFC: ldr r0, =0x00001026 _08056AFE: strh r0, [r5] movs r1, 0x1 mov r0, r10 ands r0, r1 cmp r0, 0 beq _08056B0E movs r0, 0 strh r0, [r5] _08056B0E: movs r0, 0x80 mov r7, r10 ands r0, r7 cmp r0, 0 beq _08056B38 lsls r2, r4, 24 lsrs r2, 24 str r1, [sp] str r1, [sp, 0x4] movs r0, 0x11 str r0, [sp, 0x8] movs r0, 0x1 add r1, sp, 0xC mov r7, r9 lsrs r3, r7, 24 bl CopyToBgTilemapBufferRect_ChangePalette b _08056B50 .pool _08056B38: lsls r2, r4, 24 lsrs r2, 24 str r1, [sp] str r1, [sp, 0x4] movs r0, 0x11 str r0, [sp, 0x8] movs r0, 0 add r1, sp, 0xC mov r7, r9 lsrs r3, r7, 24 bl CopyToBgTilemapBufferRect_ChangePalette _08056B50: adds r4, 0x1 ldr r0, [sp, 0x1C] cmp r4, r0 ble _08056A88 _08056B58: ldr r6, [sp, 0x18] ldr r2, [sp, 0x14] cmp r6, r2 bgt _08056B62 b _08056A76 _08056B62: add sp, 0x20 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8056A3C thumb_func_start sub_8056B74 sub_8056B74: @ 8056B74 push {lr} sub sp, 0x10 adds r3, r0, 0 add r0, sp, 0xC movs r2, 0x1 strh r2, [r0] movs r1, 0x2 strh r1, [r0, 0x2] lsls r3, 25 movs r0, 0x90 lsls r0, 20 adds r3, r0 lsrs r3, 24 str r2, [sp] str r1, [sp, 0x4] movs r0, 0x11 str r0, [sp, 0x8] movs r0, 0 add r1, sp, 0xC movs r2, 0x19 bl CopyToBgTilemapBufferRect_ChangePalette movs r0, 0 bl CopyBgTilemapBufferToVram add sp, 0x10 pop {r0} bx r0 thumb_func_end sub_8056B74 thumb_func_start sub_8056BAC sub_8056BAC: @ 8056BAC push {lr} sub sp, 0x10 adds r3, r0, 0 add r0, sp, 0xC ldr r1, =0x00001016 strh r1, [r0] strh r1, [r0, 0x2] lsls r3, 25 movs r0, 0x90 lsls r0, 20 adds r3, r0 lsrs r3, 24 movs r0, 0x1 str r0, [sp] movs r0, 0x2 str r0, [sp, 0x4] movs r0, 0x11 str r0, [sp, 0x8] movs r0, 0 add r1, sp, 0xC movs r2, 0x19 bl CopyToBgTilemapBufferRect_ChangePalette movs r0, 0 bl CopyBgTilemapBufferToVram add sp, 0x10 pop {r0} bx r0 .pool thumb_func_end sub_8056BAC thumb_func_start atkF3_receive_new_pokemon_maybe atkF3_receive_new_pokemon_maybe: @ 8056BEC push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x8 ldr r0, =gUnknown_02024332 ldrb r1, [r0] adds r4, r0, 0 cmp r1, 0x4 bls _08056C04 b _08056E62 _08056C04: lsls r0, r1, 2 ldr r1, =_08056C18 adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _08056C18: .4byte _08056C2C .4byte _08056C60 .4byte _08056CFC .4byte _08056DD4 .4byte _08056E2C _08056C2C: movs r4, 0 str r4, [sp] movs r0, 0x18 movs r1, 0x8 movs r2, 0x1D movs r3, 0xD bl sub_8056A3C ldr r0, =gUnknown_085CCABB movs r1, 0xC bl battle_show_message_maybe ldr r1, =gUnknown_02024332 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] strb r4, [r1, 0x1] movs r0, 0 bl sub_8056B74 b _08056E62 .pool _08056C60: ldr r0, =gMain ldrh r1, [r0, 0x2E] movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _08056C86 ldrb r0, [r4, 0x1] cmp r0, 0 beq _08056C86 movs r0, 0x5 bl audio_play ldrb r0, [r4, 0x1] bl sub_8056BAC movs r0, 0 strb r0, [r4, 0x1] bl sub_8056B74 _08056C86: ldr r0, =gMain ldrh r1, [r0, 0x2E] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _08056CAE ldr r4, =gUnknown_02024332 ldrb r0, [r4, 0x1] cmp r0, 0 bne _08056CAE movs r0, 0x5 bl audio_play ldrb r0, [r4, 0x1] bl sub_8056BAC movs r0, 0x1 strb r0, [r4, 0x1] bl sub_8056B74 _08056CAE: ldr r0, =gMain ldrh r1, [r0, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _08056CE0 movs r0, 0x5 bl audio_play ldr r1, =gUnknown_02024332 ldrb r0, [r1, 0x1] cmp r0, 0 bne _08056CF2 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] movs r0, 0x3 bl sub_80A2390 b _08056E62 .pool _08056CE0: movs r0, 0x2 ands r0, r1 cmp r0, 0 bne _08056CEA b _08056E62 _08056CEA: movs r0, 0x5 bl audio_play ldr r1, =gUnknown_02024332 _08056CF2: movs r0, 0x4 strb r0, [r1] b _08056E62 .pool _08056CFC: ldr r0, =gUnknown_02037FD4 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _08056D0A b _08056E62 _08056D0A: ldr r7, =gUnknown_0202406E ldr r0, =gUnknown_0202420B 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 r2, r9 muls r2, r0 adds r0, r2, 0 ldr r1, =gEnemyParty mov r8, r1 add r0, r8 ldr r1, =gUnknown_0202449C ldr r2, [r1] adds r2, 0x6D movs r1, 0x2 bl GetMonData bl FreeAllWindowBuffers mov r2, r10 ldrb r0, [r2] 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 GetMonData adds r6, r0, 0 lsls r6, 16 lsrs r6, 16 mov r2, r10 ldrb r0, [r2] 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 r2, r10 ldrb r0, [r2] 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 GetMonData ldr r2, =gUnknown_0202449C ldr r1, [r2] adds r1, 0x6D str r0, [sp] ldr r0, =sub_8038420 str r0, [sp, 0x4] movs r0, 0x2 adds r2, r6, 0 adds r3, r5, 0 bl do_choose_name_or_words_screen ldr r1, =gUnknown_02024332 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] b _08056E62 .pool _08056DD4: ldr r0, =gMain ldr r1, [r0, 0x4] ldr r0, =sub_8038420 cmp r1, r0 bne _08056E62 ldr r0, =gUnknown_02037FD4 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _08056E62 ldr r2, =gUnknown_0202406E ldr r0, =gUnknown_0202420B 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, =gEnemyParty adds r0, r1 ldr r1, =gUnknown_0202449C ldr r2, [r1] adds r2, 0x6D movs r1, 0x2 bl pokemon_setattr b _08056E48 .pool _08056E2C: bl calc_player_party_count lsls r0, 24 lsrs r0, 24 cmp r0, 0x6 bne _08056E48 ldr r1, =gUnknown_02024214 ldr r0, [r1] adds r0, 0x5 str r0, [r1] b _08056E62 .pool _08056E48: ldr r3, =gUnknown_02024214 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] _08056E62: add sp, 0x8 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end atkF3_receive_new_pokemon_maybe thumb_func_start sub_8056E78 sub_8056E78: @ 8056E78 ldr r2, =gBattleMons ldr r0, =gUnknown_0202420B ldrb r1, [r0] movs r0, 0x58 muls r1, r0 adds r1, r2 ldr r0, =gBattleMoveDamage ldr r2, [r0] ldrh r0, [r1, 0x28] subs r0, r2 strh r0, [r1, 0x28] ldr r1, =gUnknown_02024214 ldr r0, [r1] adds r0, 0x1 str r0, [r1] bx lr .pool thumb_func_end sub_8056E78 thumb_func_start atkF5_reset_attacker_bd_x4C atkF5_reset_attacker_bd_x4C: @ 8056EA8 ldr r1, =gBattleMons ldr r0, =gUnknown_0202420B ldrb r2, [r0] movs r0, 0x58 muls r0, r2 adds r1, 0x4C adds r0, r1 movs r1, 0 str r1, [r0] ldr r1, =gUnknown_02024214 ldr r0, [r1] adds r0, 0x1 str r0, [r1] bx lr .pool thumb_func_end atkF5_reset_attacker_bd_x4C thumb_func_start sub_8056ED0 sub_8056ED0: @ 8056ED0 ldr r1, =gUnknown_02024083 movs r0, 0xC strb r0, [r1] bx lr .pool thumb_func_end sub_8056ED0 thumb_func_start sub_8056EDC sub_8056EDC: @ 8056EDC ldr r1, =gUnknown_02024083 movs r0, 0xC strb r0, [r1] ldr r1, =gUnknown_02024082 ldr r0, =gUnknown_0202406C ldrb r0, [r0] strb r0, [r1] bx lr .pool thumb_func_end sub_8056EDC thumb_func_start sub_8056EF8 sub_8056EF8: @ 8056EF8 push {r4,r5,lr} ldr r5, =gUnknown_02024214 ldr r0, [r5] ldrb r0, [r0, 0x1] bl battle_get_side_with_given_state ldr r4, =gUnknown_02024064 strb r0, [r4] movs r0, 0 bl dp01_build_cmdbuf_x09_9_9_9 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 .pool thumb_func_end sub_8056EF8 thumb_func_start sub_8056F28 sub_8056F28: @ 8056F28 push {r4-r6,lr} ldr r5, =gUnknown_020244A8 ldr r6, =gBattleTypeFlags ldr r0, [r6] movs r1, 0x80 lsls r1, 19 ands r0, r1 cmp r0, 0 beq _08056F3E bl sub_81D55D0 _08056F3E: ldr r4, =gUnknown_0202449C movs r0, 0xA9 lsls r0, 2 bl AllocZeroed str r0, [r4] movs r0, 0x20 bl AllocZeroed str r0, [r5] movs r0, 0xA0 bl AllocZeroed ldr r1, [r5] str r0, [r1] movs r0, 0x10 bl AllocZeroed ldr r1, [r5] str r0, [r1, 0x4] movs r0, 0x24 bl AllocZeroed ldr r1, [r5] str r0, [r1, 0x8] movs r0, 0x24 bl AllocZeroed ldr r1, [r5] str r0, [r1, 0xC] movs r0, 0xC bl AllocZeroed ldr r1, [r5] str r0, [r1, 0x10] movs r0, 0x1C bl AllocZeroed ldr r1, [r5] str r0, [r1, 0x14] movs r0, 0x54 bl AllocZeroed ldr r1, [r5] str r0, [r1, 0x18] movs r0, 0x24 bl AllocZeroed ldr r1, [r5] str r0, [r1, 0x1C] ldr r4, =gUnknown_020244A0 movs r5, 0x80 lsls r5, 5 adds r0, r5, 0 bl AllocZeroed str r0, [r4] ldr r4, =gUnknown_020244A4 adds r0, r5, 0 bl AllocZeroed str r0, [r4] ldr r4, =gUnknown_0202305C movs r0, 0x80 lsls r0, 6 bl AllocZeroed str r0, [r4] ldr r4, =gUnknown_02023060 adds r0, r5, 0 bl AllocZeroed str r0, [r4] ldr r0, [r6] movs r1, 0x80 lsls r1, 20 ands r0, r1 cmp r0, 0 beq _08056FFA ldr r0, =0x00004054 bl VarGet lsls r0, 16 lsrs r0, 16 ldr r2, =gSaveBlock1Ptr lsls r1, r0, 2 adds r1, r0 lsls r1, 5 ldr r0, =0x00001a9c adds r1, r0 ldr r0, [r2] adds r0, r1 bl create_enemy_party _08056FFA: pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_8056F28 thumb_func_start sub_8057028 sub_8057028: @ 8057028 push {r4-r6,lr} ldr r0, =gBattleTypeFlags ldr r0, [r0] movs r1, 0x80 lsls r1, 19 ands r0, r1 cmp r0, 0 beq _0805703C bl sub_81D5694 _0805703C: ldr r6, =gUnknown_020244A8 ldr r0, [r6] cmp r0, 0 beq _080570D0 ldr r4, =gUnknown_0202449C ldr r0, [r4] bl Free movs r5, 0 str r5, [r4] ldr r0, [r6] ldr r0, [r0] bl Free ldr r0, [r6] str r5, [r0] ldr r0, [r0, 0x4] bl Free ldr r0, [r6] str r5, [r0, 0x4] ldr r0, [r0, 0x8] bl Free ldr r0, [r6] str r5, [r0, 0x8] ldr r0, [r0, 0xC] bl Free ldr r0, [r6] str r5, [r0, 0xC] ldr r0, [r0, 0x10] bl Free ldr r0, [r6] str r5, [r0, 0x10] ldr r0, [r0, 0x14] bl Free ldr r0, [r6] str r5, [r0, 0x14] ldr r0, [r0, 0x18] bl Free ldr r0, [r6] str r5, [r0, 0x18] ldr r0, [r0, 0x1C] bl Free ldr r0, [r6] str r5, [r0, 0x1C] bl Free str r5, [r6] ldr r4, =gUnknown_020244A0 ldr r0, [r4] bl Free str r5, [r4] ldr r4, =gUnknown_020244A4 ldr r0, [r4] bl Free str r5, [r4] ldr r4, =gUnknown_0202305C ldr r0, [r4] bl Free str r5, [r4] ldr r4, =gUnknown_02023060 ldr r0, [r4] bl Free str r5, [r4] _080570D0: pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_8057028 thumb_func_start sub_80570F4 sub_80570F4: @ 80570F4 push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 ldr r0, =gBattleTypeFlags ldr r0, [r0] movs r1, 0x1 ands r0, r1 cmp r0, 0 beq _08057140 movs r0, 0x1 bl battle_get_side_with_given_state lsls r0, 24 lsrs r4, r0, 24 movs r0, 0x3 bl battle_get_side_with_given_state lsls r0, 24 lsrs r3, r0, 24 ldr r2, =gBattleMons movs r0, 0x58 adds r1, r3, 0 muls r1, r0 adds r1, r2 adds r1, 0x2A muls r0, r4 adds r0, r2 adds r0, 0x2A ldrb r1, [r1] ldrb r0, [r0] cmp r1, r0 bls _0805714A adds r4, r3, 0 b _0805714A .pool _08057140: movs r0, 0x1 bl battle_get_side_with_given_state lsls r0, 24 lsrs r4, r0, 24 _0805714A: ldr r2, =gBattleMons movs r1, 0x58 adds r0, r4, 0 muls r0, r1 adds r0, r2 adds r3, r0, 0 adds r3, 0x2A adds r0, r5, 0 muls r0, r1 adds r0, r2 adds r1, r0, 0 adds r1, 0x2A ldrb r0, [r3] ldrb r2, [r1] cmp r0, r2 bls _080571B8 ldrb r1, [r1] subs r0, r1 cmp r0, 0x1D ble _08057198 ldr r1, =gUnknown_0202406E lsls r0, r5, 1 adds r0, r1 ldrh r1, [r0] movs r0, 0x64 muls r0, r1 ldr r1, =gPlayerParty adds r0, r1 movs r1, 0x8 bl happiness_algorithm b _080571CE .pool _08057198: ldr r1, =gUnknown_0202406E lsls r0, r5, 1 adds r0, r1 ldrh r1, [r0] movs r0, 0x64 muls r0, r1 ldr r1, =gPlayerParty adds r0, r1 movs r1, 0x6 bl happiness_algorithm b _080571CE .pool _080571B8: ldr r1, =gUnknown_0202406E lsls r0, r5, 1 adds r0, r1 ldrh r1, [r0] movs r0, 0x64 muls r0, r1 ldr r1, =gPlayerParty adds r0, r1 movs r1, 0x6 bl happiness_algorithm _080571CE: pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_80570F4 thumb_func_start sub_80571DC sub_80571DC: @ 80571DC push {r4-r7,lr} lsls r0, 24 lsrs r4, r0, 24 lsls r1, 24 lsrs r7, r1, 24 adds r0, r4, 0 bl battle_side_get_owner lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _08057248 movs r2, 0 ldr r6, =gUnknown_0202406E lsls r3, r4, 1 ldr r5, =gUnknown_0203CF00 ldr r4, =gUnknown_0202449C _080571FE: adds r0, r2, r5 ldr r1, [r4] adds r1, r2, r1 adds r1, 0x60 ldrb r1, [r1] strb r1, [r0] adds r2, 0x1 cmp r2, 0x2 ble _080571FE adds r0, r3, r6 ldrb r0, [r0] bl pokemon_order_func adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 adds r0, r7, 0 bl pokemon_order_func adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 bl sub_81B8FB0 movs r2, 0 ldr r4, =gUnknown_0202449C ldr r3, =gUnknown_0203CF00 _08057236: ldr r0, [r4] adds r0, r2, r0 adds r0, 0x60 adds r1, r2, r3 ldrb r1, [r1] strb r1, [r0] adds r2, 0x1 cmp r2, 0x2 ble _08057236 _08057248: pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_80571DC thumb_func_start sub_805725C sub_805725C: @ 805725C push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x4 lsls r0, 24 lsrs r0, 24 mov r9, r0 movs r0, 0 mov r8, r0 ldr r1, =gUnknown_02024332 mov r10, r1 b _08057284 .pool _0805727C: mov r2, r8 cmp r2, 0 beq _08057284 b _08057406 _08057284: mov r1, r10 ldrb r0, [r1] cmp r0, 0x1 bne _0805728E b _08057390 _0805728E: cmp r0, 0x1 ble _08057294 b _080573FC _08057294: cmp r0, 0 beq _0805729A b _080573FC _0805729A: ldr r6, =gBattleMons movs r0, 0x58 mov r5, r9 muls r5, r0 adds r0, r6, 0 adds r0, 0x4C adds r4, r5, r0 ldr r0, [r4] movs r7, 0x7 ands r0, r7 cmp r0, 0 beq _08057372 mov r0, r9 bl sub_8050650 lsls r0, 24 cmp r0, 0 beq _080572FC ldr r0, [r4] movs r1, 0x8 negs r1, r1 ands r0, r1 str r0, [r4] adds r2, r6, 0 adds r2, 0x50 adds r2, r5, r2 ldr r0, [r2] ldr r1, =0xf7ffffff ands r0, r1 str r0, [r2] bl b_movescr_stack_push_cursor movs r0, 0x1 mov r2, r10 strb r0, [r2, 0x5] ldr r1, =gUnknown_02024214 ldr r0, =gUnknown_082DB220 str r0, [r1] movs r0, 0x2 mov r8, r0 b _08057372 .pool _080572FC: adds r0, r5, r6 adds r0, 0x20 ldrb r0, [r0] movs r2, 0x1 cmp r0, 0x30 bne _0805730A movs r2, 0x2 _0805730A: ldr r1, [r4] adds r0, r1, 0 ands r0, r7 cmp r0, r2 bcs _0805731E movs r0, 0x8 negs r0, r0 ands r1, r0 str r1, [r4] b _08057322 _0805731E: subs r0, r1, r2 str r0, [r4] _08057322: ldr r2, =gBattleMons movs r0, 0x58 mov r1, r9 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 _08057354 ldr r1, =gUnknown_02024214 ldr r0, =gUnknown_082DB213 str r0, [r1] movs r1, 0x2 mov r8, r1 b _08057372 .pool _08057354: adds r2, 0x50 adds r2, r1, r2 ldr r0, [r2] ldr r1, =0xf7ffffff ands r0, r1 str r0, [r2] bl b_movescr_stack_push_cursor ldr r0, =gUnknown_02024332 strb r4, [r0, 0x5] ldr r1, =gUnknown_02024214 ldr r0, =gUnknown_082DB220 str r0, [r1] movs r2, 0x2 mov r8, r2 _08057372: ldr r1, =gUnknown_02024332 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] mov r10, r1 b _080573FC .pool _08057390: ldr r1, =gBattleMons movs r0, 0x58 mov r2, r9 muls r2, r0 adds r0, r2, 0 adds r1, 0x4C adds r4, r0, r1 ldr r0, [r4] movs r1, 0x20 ands r0, r1 cmp r0, 0 beq _080573F4 bl Random lsls r0, 16 lsrs r0, 16 movs r1, 0x5 bl __umodsi3 lsls r0, 16 lsrs r5, r0, 16 cmp r5, 0 beq _080573D4 ldr r1, =gUnknown_02024214 ldr r0, =gUnknown_082DB26A str r0, [r1] b _080573EC .pool _080573D4: ldr r0, [r4] movs r1, 0x21 negs r1, r1 ands r0, r1 str r0, [r4] bl b_movescr_stack_push_cursor ldr r1, =gUnknown_02024214 ldr r0, =gUnknown_082DB277 str r0, [r1] mov r0, r10 strb r5, [r0, 0x5] _080573EC: movs r1, 0x2 mov r8, r1 ldr r2, =gUnknown_02024332 mov r10, r2 _080573F4: mov r1, r10 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] _080573FC: mov r2, r10 ldrb r0, [r2] cmp r0, 0x2 beq _08057406 b _0805727C _08057406: mov r0, r8 cmp r0, 0x2 bne _08057430 ldr r4, =gUnknown_02024064 mov r1, r9 strb r1, [r4] ldrb r1, [r4] movs r0, 0x58 muls r0, r1 ldr r1, =gUnknown_020240D0 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 _08057430: mov r0, r8 add sp, 0x4 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 .pool thumb_func_end sub_805725C thumb_func_start nullsub_21 nullsub_21: @ 8057458 bx lr thumb_func_end nullsub_21 thumb_func_start sub_805745C sub_805745C: @ 805745C ldr r1, =gUnknown_03005D60 ldr r0, =gUnknown_02024064 ldrb r0, [r0] lsls r0, 2 adds r0, r1 ldr r1, =bx_exec_buffer_A_ch0_tbl1 str r1, [r0] ldr r0, =gUnknown_020244B9 movs r1, 0 strb r1, [r0] ldr r0, =gUnknown_020244CC strb r1, [r0] bx lr .pool thumb_func_end sub_805745C thumb_func_start dp01_tbl1_exec_completed dp01_tbl1_exec_completed: @ 805748C push {r4,lr} sub sp, 0x4 ldr r1, =gUnknown_03005D60 ldr r4, =gUnknown_02024064 ldrb r0, [r4] lsls r0, 2 adds r0, r1 ldr r1, =bx_exec_buffer_A_ch0_tbl1 str r1, [r0] ldr r0, =gBattleTypeFlags ldr r0, [r0] movs r1, 0x2 ands r0, r1 cmp r0, 0 beq _080574E0 bl link_get_multiplayer_id mov r1, sp strb r0, [r1] movs r0, 0x2 movs r1, 0x4 mov r2, sp bl dp01_prepare_buffer_wireless_probably ldr r1, =gUnknown_02023064 ldrb r0, [r4] lsls r0, 9 adds r0, r1 movs r1, 0x38 strb r1, [r0] b _080574F2 .pool _080574E0: ldr r2, =gUnknown_02024068 ldr r1, =gBitTable ldrb r0, [r4] lsls r0, 2 adds r0, r1 ldr r1, [r0] ldr r0, [r2] bics r0, r1 str r0, [r2] _080574F2: add sp, 0x4 pop {r4} pop {r0} bx r0 .pool thumb_func_end dp01_tbl1_exec_completed thumb_func_start bx_exec_buffer_A_ch0_tbl1 bx_exec_buffer_A_ch0_tbl1: @ 8057504 push {lr} ldr r2, =gUnknown_02024068 ldr r1, =gBitTable ldr r0, =gUnknown_02024064 ldrb r3, [r0] lsls r0, r3, 2 adds r0, r1 ldr r1, [r2] ldr r0, [r0] ands r1, r0 cmp r1, 0 beq _08057550 ldr r0, =gUnknown_02023064 lsls r1, r3, 9 adds r1, r0 ldrb r0, [r1] cmp r0, 0x38 bhi _0805754C ldr r0, =gUnknown_0831C514 ldrb r1, [r1] lsls r1, 2 adds r1, r0 ldr r0, [r1] bl _call_via_r0 b _08057550 .pool _0805754C: bl dp01_tbl1_exec_completed _08057550: pop {r0} bx r0 thumb_func_end bx_exec_buffer_A_ch0_tbl1 thumb_func_start bx_0802E404 bx_0802E404: @ 8057554 push {lr} ldr r2, =gUnknown_02020630 ldr r1, =gUnknown_020241E4 ldr r0, =gUnknown_02024064 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 _08057576 bl dp01_tbl1_exec_completed _08057576: pop {r0} bx r0 .pool thumb_func_end bx_0802E404 thumb_func_start sub_8057588 sub_8057588: @ 8057588 push {r4-r7,lr} ldr r3, =gUnknown_02023064 ldr r4, =gUnknown_02024064 ldrb r0, [r4] lsls r2, r0, 9 adds r1, r3, 0x2 adds r1, r2, r1 ldrb r5, [r1] adds r3, 0x3 adds r2, r3 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, =gMain ldrh r1, [r0, 0x30] movs r0, 0xF0 ands r0, r1 cmp r0, 0 beq _080575EC ldr r0, =gSaveBlock2Ptr ldr r0, [r0] ldrb r0, [r0, 0x13] cmp r0, 0x2 bne _080575EC ldr r1, =gUnknown_020244CC ldrb r0, [r1] adds r0, 0x1 b _080575F0 .pool _080575EC: ldr r1, =gUnknown_020244CC movs r0, 0 _080575F0: strb r0, [r1] ldr r0, =gMain ldrh r2, [r0, 0x2E] movs r3, 0x1 adds r0, r3, 0 ands r0, r2 cmp r0, 0 beq _08057658 movs r0, 0x5 bl audio_play ldr r1, =gUnknown_020244AC ldr r0, =gUnknown_02024064 ldrb r0, [r0] adds r0, r1 ldrb r0, [r0] cmp r0, 0x1 beq _08057640 cmp r0, 0x1 bgt _08057630 cmp r0, 0 beq _0805763A b _080577C2 .pool _08057630: cmp r0, 0x2 beq _08057646 cmp r0, 0x3 beq _0805764C b _080577C2 _0805763A: movs r0, 0x1 movs r1, 0 b _080577BC _08057640: movs r0, 0x1 movs r1, 0x1 b _080577BC _08057646: movs r0, 0x1 movs r1, 0x2 b _080577BC _0805764C: movs r0, 0x1 movs r1, 0x3 movs r2, 0 bl dp01_build_cmdbuf_x21_a_bb b _080577C2 _08057658: movs r0, 0x20 ands r0, r2 cmp r0, 0 beq _08057698 ldr r5, =gUnknown_020244AC ldr r4, =gUnknown_02024064 ldrb r0, [r4] adds r0, r5 ldrb r1, [r0] adds r0, r3, 0 ands r0, r1 cmp r0, 0 bne _08057674 b _080577E8 _08057674: movs r0, 0x5 bl audio_play ldrb r0, [r4] adds r0, r5 ldrb r0, [r0] bl sub_8059CF8 ldrb r1, [r4] adds r1, r5 ldrb r0, [r1] movs r2, 0x1 b _08057732 .pool _08057698: movs r0, 0x10 ands r0, r2 cmp r0, 0 beq _080576D8 ldr r5, =gUnknown_020244AC ldr r4, =gUnknown_02024064 ldrb r0, [r4] adds r0, r5 ldrb r1, [r0] adds r0, r3, 0 ands r0, r1 cmp r0, 0 beq _080576B4 b _080577E8 _080576B4: movs r0, 0x5 bl audio_play ldrb r0, [r4] adds r0, r5 ldrb r0, [r0] bl sub_8059CF8 ldrb r1, [r4] adds r1, r5 ldrb r0, [r1] movs r2, 0x1 b _08057732 .pool _080576D8: movs r7, 0x40 adds r0, r7, 0 ands r0, r2 cmp r0, 0 beq _08057700 ldr r5, =gUnknown_020244AC ldr r4, =gUnknown_02024064 ldrb r0, [r4] adds r0, r5 ldrb r1, [r0] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _080577E8 b _0805771A .pool _08057700: movs r0, 0x80 ands r0, r2 cmp r0, 0 beq _0805774C ldr r5, =gUnknown_020244AC ldr r4, =gUnknown_02024064 ldrb r0, [r4] adds r0, r5 ldrb r1, [r0] movs r0, 0x2 ands r0, r1 cmp r0, 0 bne _080577E8 _0805771A: movs r0, 0x5 bl audio_play ldrb r0, [r4] adds r0, r5 ldrb r0, [r0] bl sub_8059CF8 ldrb r1, [r4] adds r1, r5 ldrb r0, [r1] movs r2, 0x2 _08057732: eors r0, r2 strb r0, [r1] ldrb r0, [r4] adds r0, r5 ldrb r0, [r0] movs r1, 0 bl sub_8059CB4 b _080577E8 .pool _0805774C: movs r0, 0x2 ands r0, r2 cmp r0, 0 bne _0805775A ldrb r0, [r1] cmp r0, 0x3B bls _080577DC _0805775A: ldr r4, =gBattleTypeFlags ldr r0, [r4] ands r0, r3 cmp r0, 0 beq _080577E8 ldr r6, =gUnknown_02024064 ldrb r0, [r6] bl battle_get_per_side_status lsls r0, 24 lsrs r0, 24 cmp r0, 0x2 bne _080577E8 movs r0, 0 bl battle_get_side_with_given_state ldr r1, =gUnknown_02024210 ldrb r1, [r1] ldr r2, =gBitTable lsls r0, 24 lsrs r0, 22 adds r0, r2 ldr r0, [r0] ands r1, r0 cmp r1, 0 bne _080577E8 ldr r0, [r4] ands r0, r7 cmp r0, 0 bne _080577E8 ldr r0, =gUnknown_02023064 ldrb r1, [r6] lsls r1, 9 adds r0, 0x1 adds r1, r0 ldrb r0, [r1] cmp r0, 0x1 bne _080577B2 cmp r5, 0xC bhi _080577E8 adds r0, r5, 0 movs r1, 0x1 bl bag_add_item _080577B2: movs r0, 0x5 bl audio_play movs r0, 0x1 movs r1, 0xC _080577BC: movs r2, 0 bl dp01_build_cmdbuf_x21_a_bb _080577C2: bl dp01_tbl1_exec_completed b _080577E8 .pool _080577DC: movs r0, 0x8 ands r0, r2 cmp r0, 0 beq _080577E8 bl sub_8073314 _080577E8: pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8057588 thumb_func_start sub_80577F0 sub_80577F0: @ 80577F0 push {r4,lr} ldr r4, =gUnknown_02024064 ldrb r0, [r4] movs r1, 0x1 bl dp11b_obj_free ldrb r0, [r4] movs r1, 0 bl dp11b_obj_free ldr r1, =gUnknown_03005D60 ldrb r0, [r4] lsls r0, 2 adds r0, r1 ldr r1, =sub_8057824 str r1, [r0] pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_80577F0 thumb_func_start sub_8057824 sub_8057824: @ 8057824 push {r4,r5,lr} sub sp, 0x4 ldr r1, =gUnknown_0831C5F8 mov r0, sp movs r2, 0x4 bl memcpy ldr r0, =gUnknown_03005D74 ldrb r0, [r0] movs r1, 0x1 movs r2, 0xF movs r3, 0x1 bl dp11b_obj_instanciate movs r4, 0 ldr r0, =gUnknown_0202406C ldrb r0, [r0] cmp r0, 0 beq _08057866 _0805784A: ldr r0, =gUnknown_03005D74 ldrb r0, [r0] cmp r4, r0 beq _0805785C lsls r0, r4, 24 lsrs r0, 24 movs r1, 0x1 bl dp11b_obj_free _0805785C: adds r4, 0x1 ldr r0, =gUnknown_0202406C ldrb r0, [r0] cmp r4, r0 blt _0805784A _08057866: ldr r2, =gMain ldrh r1, [r2, 0x2C] movs r0, 0xF0 ands r0, r1 cmp r0, 0 beq _0805789C ldr r0, =gSaveBlock2Ptr ldr r0, [r0] ldrb r0, [r0, 0x13] cmp r0, 0x2 bne _0805789C ldr r1, =gUnknown_020244CC ldrb r0, [r1] adds r0, 0x1 b _080578A0 .pool _0805789C: ldr r1, =gUnknown_020244CC movs r0, 0 _080578A0: strb r0, [r1] ldrh r2, [r2, 0x2E] movs r0, 0x1 ands r0, r2 cmp r0, 0 beq _08057910 movs r0, 0x5 bl audio_play ldr r2, =gUnknown_02020630 ldr r1, =gUnknown_020241E4 ldr r4, =gUnknown_03005D74 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, =sub_8039B2C str r1, [r0] ldr r1, =gUnknown_020244B0 ldr r0, =gUnknown_02024064 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 _08057BC8 .pool _08057910: movs r0, 0x2 ands r0, r2 cmp r0, 0 bne _0805791E ldrb r0, [r1] cmp r0, 0x3B bls _0805798C _0805791E: movs r0, 0x5 bl audio_play ldr r2, =gUnknown_02020630 ldr r1, =gUnknown_020241E4 ldr r5, =gUnknown_03005D74 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, =sub_8039B2C str r1, [r0] ldr r1, =gUnknown_03005D60 ldr r4, =gUnknown_02024064 ldrb r0, [r4] lsls r0, 2 adds r0, r1 ldr r1, =sub_8057BFC 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 _08057BC8 .pool _0805798C: movs r0, 0x60 ands r0, r2 cmp r0, 0 bne _08057996 b _08057AB0 _08057996: movs r0, 0x5 bl audio_play ldr r2, =gUnknown_02020630 ldr r1, =gUnknown_020241E4 ldr r3, =gUnknown_03005D74 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, =sub_8039B2C str r1, [r0] adds r5, r3, 0 _080579B8: ldrb r0, [r5] bl battle_get_per_side_status lsls r0, 24 lsrs r1, r0, 24 movs r4, 0 mov r0, sp b _080579E2 .pool _080579D8: adds r4, 0x1 cmp r4, 0x3 bgt _080579E8 mov r2, sp adds r0, r2, r4 _080579E2: ldrb r0, [r0] cmp r1, r0 bne _080579D8 _080579E8: subs r4, 0x1 cmp r4, 0 bge _080579F0 movs r4, 0x4 _080579F0: mov r1, sp adds r0, r1, r4 ldrb r0, [r0] bl battle_get_side_with_given_state strb r0, [r5] ldr r1, =gUnknown_0202406C lsls r0, 24 lsrs r0, 24 ldrb r1, [r1] cmp r0, r1 beq _080579E8 movs r4, 0 ldrb r0, [r5] bl battle_get_per_side_status lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _08057A6E cmp r0, 0x1 bgt _08057A28 cmp r0, 0 beq _08057A32 b _08057A70 .pool _08057A28: cmp r0, 0x2 beq _08057A32 cmp r0, 0x3 beq _08057A6E b _08057A70 _08057A32: ldr r2, =gUnknown_02024064 ldrb r0, [r2] ldrb r1, [r5] cmp r0, r1 bne _08057A6E ldr r1, =gUnknown_0202406E ldrb r2, [r2] lsls r0, r2, 1 adds r0, r1 ldrh r1, [r0] movs r0, 0x64 muls r0, r1 ldr r1, =gPlayerParty adds r0, r1 ldr r1, =gUnknown_020244B0 adds r2, r1 ldrb r1, [r2] adds r1, 0xD bl GetMonData ldr r2, =gBattleMoves 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 _08057A70 _08057A6E: adds r4, 0x1 _08057A70: ldr r0, =gUnknown_02024210 ldrb r1, [r0] ldr r2, =gBitTable ldrb r0, [r5] lsls r0, 2 adds r0, r2 ldr r0, [r0] ands r1, r0 ldr r0, =gUnknown_03005D74 cmp r1, 0 beq _08057A88 movs r4, 0 _08057A88: cmp r4, 0 beq _080579B8 b _08057BB0 .pool _08057AB0: movs r0, 0x90 ands r0, r2 cmp r0, 0 bne _08057ABA b _08057BC8 _08057ABA: movs r0, 0x5 bl audio_play ldr r2, =gUnknown_02020630 ldr r1, =gUnknown_020241E4 ldr r3, =gUnknown_03005D74 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, =sub_8039B2C str r1, [r0] adds r5, r3, 0 _08057ADC: ldrb r0, [r5] bl battle_get_per_side_status lsls r0, 24 lsrs r1, r0, 24 movs r4, 0 mov r0, sp b _08057B06 .pool _08057AFC: adds r4, 0x1 cmp r4, 0x3 bgt _08057B0C mov r2, sp adds r0, r2, r4 _08057B06: ldrb r0, [r0] cmp r1, r0 bne _08057AFC _08057B0C: adds r4, 0x1 cmp r4, 0x3 ble _08057B14 movs r4, 0 _08057B14: mov r1, sp adds r0, r1, r4 ldrb r0, [r0] bl battle_get_side_with_given_state strb r0, [r5] ldr r1, =gUnknown_0202406C lsls r0, 24 lsrs r0, 24 ldrb r1, [r1] cmp r0, r1 beq _08057B0C movs r4, 0 ldrb r0, [r5] bl battle_get_per_side_status lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _08057B92 cmp r0, 0x1 bgt _08057B4C cmp r0, 0 beq _08057B56 b _08057B94 .pool _08057B4C: cmp r0, 0x2 beq _08057B56 cmp r0, 0x3 beq _08057B92 b _08057B94 _08057B56: ldr r2, =gUnknown_02024064 ldrb r0, [r2] ldrb r1, [r5] cmp r0, r1 bne _08057B92 ldr r1, =gUnknown_0202406E ldrb r2, [r2] lsls r0, r2, 1 adds r0, r1 ldrh r1, [r0] movs r0, 0x64 muls r0, r1 ldr r1, =gPlayerParty adds r0, r1 ldr r1, =gUnknown_020244B0 adds r2, r1 ldrb r1, [r2] adds r1, 0xD bl GetMonData ldr r2, =gBattleMoves 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 _08057B94 _08057B92: adds r4, 0x1 _08057B94: ldr r0, =gUnknown_02024210 ldrb r1, [r0] ldr r2, =gBitTable ldrb r0, [r5] lsls r0, 2 adds r0, r2 ldr r0, [r0] ands r1, r0 ldr r0, =gUnknown_03005D74 cmp r1, 0 beq _08057BAC movs r4, 0 _08057BAC: cmp r4, 0 beq _08057ADC _08057BB0: ldr r2, =gUnknown_02020630 ldr r1, =gUnknown_020241E4 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, =sub_8039AD8 str r1, [r0] _08057BC8: add sp, 0x4 pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_8057824 thumb_func_start sub_8057BFC sub_8057BFC: @ 8057BFC push {r4-r7,lr} mov r7, r8 push {r7} movs r0, 0 mov r8, r0 ldr r3, =gUnknown_02024064 ldrb r0, [r3] lsls r0, 9 ldr r1, =gUnknown_02023068 adds r6, r0, r1 ldr r2, =gMain ldrh r1, [r2, 0x2C] movs r0, 0xF0 ands r0, r1 adds r7, r3, 0 cmp r0, 0 beq _08057C44 ldr r0, =gSaveBlock2Ptr ldr r0, [r0] ldrb r0, [r0, 0x13] cmp r0, 0x2 bne _08057C44 ldr r1, =gUnknown_020244CC ldrb r0, [r1] adds r0, 0x1 b _08057C48 .pool _08057C44: ldr r1, =gUnknown_020244CC movs r0, 0 _08057C48: strb r0, [r1] ldrh r2, [r2, 0x2E] movs r5, 0x1 adds r0, r5, 0 ands r0, r2 cmp r0, 0 bne _08057C58 b _08057E04 _08057C58: movs r0, 0x5 bl audio_play ldr r1, =gUnknown_020244B0 ldr r0, =gUnknown_02024064 ldrb r0, [r0] adds r0, r1 ldrb r0, [r0] lsls r0, 1 adds r1, r6, r0 ldrh r0, [r1] cmp r0, 0xAE bne _08057C98 ldrb r0, [r6, 0x12] movs r4, 0 cmp r0, 0x7 beq _08057CA6 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 _08057CA6 .pool _08057C98: ldr r2, =gBattleMoves ldrh r1, [r1] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r4, [r0, 0x6] _08057CA6: movs r0, 0x10 ands r0, r4 cmp r0, 0 beq _08057CC4 ldr r0, =gUnknown_03005D74 ldr r1, =gUnknown_02024064 ldrb r1, [r1] strb r1, [r0] b _08057CDE .pool _08057CC4: ldr r0, =gUnknown_02024064 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, =gUnknown_03005D74 strb r0, [r1] _08057CDE: ldr r5, =gUnknown_02023064 ldr r0, =gUnknown_02024064 ldrb r3, [r0] lsls r2, r3, 9 adds r1, r5, 0x1 adds r1, r2, r1 ldrb r1, [r1] adds r7, r0, 0 cmp r1, 0 bne _08057D18 movs r0, 0x2 ands r0, r4 cmp r0, 0 beq _08057D5A adds r0, r5, 0x2 adds r0, r2, r0 ldrb r0, [r0] cmp r0, 0 bne _08057D5A movs r0, 0x1 add r8, r0 b _08057D5A .pool _08057D18: movs r0, 0x7D ands r0, r4 cmp r0, 0 bne _08057D24 movs r0, 0x1 add r8, r0 _08057D24: ldr r0, =gUnknown_020244B0 adds r0, r3, r0 adds r1, r6, 0 adds r1, 0x8 ldrb r0, [r0] adds r1, r0 ldrb r0, [r1] cmp r0, 0 beq _08057D62 movs r0, 0x12 ands r0, r4 cmp r0, 0 bne _08057D5A movs r0, 0 bl sub_8069DEC lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bhi _08057D5A ldrb r0, [r7] bl sub_8069F34 ldr r1, =gUnknown_03005D74 strb r0, [r1] movs r0, 0 mov r8, r0 _08057D5A: ldr r7, =gUnknown_02024064 mov r0, r8 cmp r0, 0 bne _08057D80 _08057D62: ldr r1, =gUnknown_020244B0 ldrb r0, [r7] adds r0, r1 ldrb r2, [r0] ldr r0, =gUnknown_03005D74 ldrb r0, [r0] lsls r0, 8 orrs r2, r0 b _08057E1C .pool _08057D80: ldr r1, =gUnknown_03005D60 ldrb r0, [r7] lsls r0, 2 adds r0, r1 ldr r1, =sub_8057824 str r1, [r0] movs r0, 0x12 ands r4, r0 cmp r4, 0 beq _08057DA8 ldr r1, =gUnknown_03005D74 ldrb r0, [r7] b _08057DD8 .pool _08057DA8: movs r0, 0x1 bl battle_get_side_with_given_state ldr r1, =gUnknown_02024210 ldrb r1, [r1] ldr r2, =gBitTable lsls r0, 24 lsrs r0, 22 adds r0, r2 ldr r0, [r0] ands r1, r0 cmp r1, 0 beq _08057DD0 movs r0, 0x3 b _08057DD2 .pool _08057DD0: movs r0, 0x1 _08057DD2: bl battle_get_side_with_given_state ldr r1, =gUnknown_03005D74 _08057DD8: strb r0, [r1] ldr r2, =gUnknown_02020630 ldr r1, =gUnknown_020241E4 ldr r0, =gUnknown_03005D74 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, =sub_8039AD8 b _08057F9C .pool _08057E04: movs r6, 0x2 adds r0, r6, 0 ands r0, r2 cmp r0, 0 bne _08057E14 ldrb r0, [r1] cmp r0, 0x3B bls _08057E30 _08057E14: movs r0, 0x5 bl audio_play ldr r2, =0x0000ffff _08057E1C: movs r0, 0x1 movs r1, 0xA bl dp01_build_cmdbuf_x21_a_bb bl dp01_tbl1_exec_completed b _08057F9E .pool _08057E30: movs r0, 0x20 ands r0, r2 cmp r0, 0 beq _08057E60 ldr r4, =gUnknown_020244B0 ldrb r0, [r7] adds r2, r0, r4 ldrb r1, [r2] adds r0, r5, 0 ands r0, r1 cmp r0, 0 bne _08057E4A b _08057F9E _08057E4A: ldrb r0, [r2] bl battle_menu_cursor_related ldrb r1, [r7] adds r1, r4 ldrb r0, [r1] movs r2, 0x1 eors r0, r2 b _08057F08 .pool _08057E60: movs r0, 0x10 ands r0, r2 cmp r0, 0 beq _08057EA4 ldr r4, =gUnknown_020244B0 ldrb r0, [r7] adds r3, r0, r4 ldrb r2, [r3] movs r6, 0x1 adds r0, r5, 0 ands r0, r2 cmp r0, 0 beq _08057E7C b _08057F9E _08057E7C: ldr r1, =gUnknown_03005D78 adds r0, r6, 0 eors r0, r2 ldrb r1, [r1] cmp r0, r1 bcc _08057E8A b _08057F9E _08057E8A: ldrb r0, [r3] bl battle_menu_cursor_related ldrb r1, [r7] adds r1, r4 ldrb r0, [r1] eors r0, r6 b _08057F08 .pool _08057EA4: movs r0, 0x40 ands r0, r2 cmp r0, 0 beq _08057ED4 ldr r4, =gUnknown_020244B0 ldrb r0, [r7] adds r2, r0, r4 ldrb r1, [r2] adds r0, r6, 0 ands r0, r1 cmp r0, 0 beq _08057F9E ldrb r0, [r2] bl battle_menu_cursor_related ldrb r1, [r7] adds r1, r4 ldrb r0, [r1] movs r2, 0x2 eors r0, r2 b _08057F08 .pool _08057ED4: movs r0, 0x80 ands r0, r2 cmp r0, 0 beq _08057F30 ldr r4, =gUnknown_020244B0 ldrb r0, [r7] adds r3, r0, r4 ldrb r2, [r3] movs r5, 0x2 adds r0, r6, 0 ands r0, r2 cmp r0, 0 bne _08057F9E ldr r1, =gUnknown_03005D78 adds r0, r5, 0 eors r0, r2 ldrb r1, [r1] cmp r0, r1 bcs _08057F9E ldrb r0, [r3] bl battle_menu_cursor_related ldrb r1, [r7] adds r1, r4 ldrb r0, [r1] eors r0, r5 _08057F08: strb r0, [r1] movs r0, 0x5 bl audio_play ldrb r0, [r7] adds r0, r4 ldrb r0, [r0] movs r1, 0 bl battle_menu_cursor_related_2 bl sub_8059B3C bl sub_8059BB0 b _08057F9E .pool _08057F30: movs r0, 0x4 ands r0, r2 cmp r0, 0 beq _08057F9E ldr r0, =gUnknown_03005D78 ldrb r0, [r0] cmp r0, 0x1 bls _08057F9E ldr r0, =gBattleTypeFlags ldr r5, [r0] ands r5, r6 cmp r5, 0 bne _08057F9E ldr r4, =gUnknown_020244B0 ldrb r0, [r7] adds r0, r4 ldrb r0, [r0] movs r1, 0x1D bl battle_menu_cursor_related_2 ldrb r0, [r7] adds r0, r4 ldrb r0, [r0] cmp r0, 0 beq _08057F78 ldr r0, =gUnknown_03005D74 strb r5, [r0] b _08057F80 .pool _08057F78: ldr r1, =gUnknown_03005D74 adds r0, 0x1 strb r0, [r1] adds r0, r1, 0 _08057F80: ldrb r0, [r0] movs r1, 0x1B bl battle_menu_cursor_related_2 ldr r0, =gUnknown_085CCACA movs r1, 0xB bl battle_show_message_maybe ldr r1, =gUnknown_03005D60 ldr r0, =gUnknown_02024064 ldrb r0, [r0] lsls r0, 2 adds r0, r1 ldr r1, =sub_8058138 _08057F9C: str r1, [r0] _08057F9E: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_8057BFC thumb_func_start sub_8057FBC sub_8057FBC: @ 8057FBC push {r4-r7,lr} movs r7, 0 ldr r4, =gMain ldrh r1, [r4, 0x2E] movs r6, 0x1 adds r0, r6, 0 ands r0, r1 cmp r0, 0 beq _08057FD6 movs r0, 0x5 bl audio_play movs r7, 0x1 _08057FD6: ldrh r1, [r4, 0x2E] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _08057FF8 movs r0, 0x5 bl audio_play ldr r1, =gUnknown_02022E14 movs r0, 0 strh r0, [r1] ldr r1, =gUnknown_02022E16 movs r2, 0xA0 lsls r2, 1 adds r0, r2, 0 strh r0, [r1] movs r7, 0xFF _08057FF8: ldrh r1, [r4, 0x2E] movs r0, 0x20 ands r0, r1 cmp r0, 0 beq _08058038 ldr r5, =gUnknown_020244B0 ldr r4, =gUnknown_02024064 ldrb r0, [r4] adds r2, r0, r5 ldrb r1, [r2] adds r0, r6, 0 ands r0, r1 cmp r0, 0 beq _08058038 ldrb r0, [r2] bl battle_menu_cursor_related ldrb r1, [r4] adds r1, r5 ldrb r0, [r1] movs r2, 0x1 eors r0, r2 strb r0, [r1] movs r0, 0x5 bl audio_play ldrb r0, [r4] adds r0, r5 ldrb r0, [r0] movs r1, 0 bl battle_menu_cursor_related_2 _08058038: ldr r0, =gMain ldrh r1, [r0, 0x2E] movs r0, 0x10 ands r0, r1 cmp r0, 0 beq _08058086 ldr r5, =gUnknown_020244B0 ldr r4, =gUnknown_02024064 ldrb r0, [r4] adds r3, r0, r5 ldrb r2, [r3] movs r6, 0x1 movs r0, 0x1 ands r0, r2 cmp r0, 0 bne _08058086 ldr r1, =gUnknown_03005D78 adds r0, r6, 0 eors r0, r2 ldrb r1, [r1] cmp r0, r1 bcs _08058086 ldrb r0, [r3] bl battle_menu_cursor_related ldrb r1, [r4] adds r1, r5 ldrb r0, [r1] eors r0, r6 strb r0, [r1] movs r0, 0x5 bl audio_play ldrb r0, [r4] adds r0, r5 ldrb r0, [r0] movs r1, 0 bl battle_menu_cursor_related_2 _08058086: ldr r0, =gMain ldrh r1, [r0, 0x2E] movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _080580C8 ldr r5, =gUnknown_020244B0 ldr r4, =gUnknown_02024064 ldrb r0, [r4] adds r2, r0, r5 ldrb r1, [r2] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _080580C8 ldrb r0, [r2] bl battle_menu_cursor_related ldrb r1, [r4] adds r1, r5 ldrb r0, [r1] movs r2, 0x2 eors r0, r2 strb r0, [r1] movs r0, 0x5 bl audio_play ldrb r0, [r4] adds r0, r5 ldrb r0, [r0] movs r1, 0 bl battle_menu_cursor_related_2 _080580C8: ldr r0, =gMain ldrh r1, [r0, 0x2E] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _08058116 ldr r5, =gUnknown_020244B0 ldr r4, =gUnknown_02024064 ldrb r0, [r4] adds r3, r0, r5 ldrb r2, [r3] movs r6, 0x2 movs r0, 0x2 ands r0, r2 cmp r0, 0 bne _08058116 ldr r1, =gUnknown_03005D78 adds r0, r6, 0 eors r0, r2 ldrb r1, [r1] cmp r0, r1 bcs _08058116 ldrb r0, [r3] bl battle_menu_cursor_related ldrb r1, [r4] adds r1, r5 ldrb r0, [r1] eors r0, r6 strb r0, [r1] movs r0, 0x5 bl audio_play ldrb r0, [r4] adds r0, r5 ldrb r0, [r0] movs r1, 0 bl battle_menu_cursor_related_2 _08058116: adds r0, r7, 0 pop {r4-r7} pop {r1} bx r1 .pool thumb_func_end sub_8057FBC thumb_func_start sub_8058138 sub_8058138: @ 8058138 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x24 ldr r0, =gMain ldrh r1, [r0, 0x2E] movs r0, 0x5 ands r0, r1 cmp r0, 0 bne _08058152 b _08058500 _08058152: movs r0, 0x5 bl audio_play ldr r0, =gUnknown_020244B0 mov r10, r0 ldr r1, =gUnknown_02024064 mov r8, r1 ldrb r1, [r1] adds r2, r1, r0 ldr r5, =gUnknown_03005D74 ldrb r0, [r2] ldrb r3, [r5] cmp r0, r3 bne _08058170 b _080584A8 _08058170: lsls r1, 9 ldr r0, =gUnknown_02023068 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, =gUnknown_020242BC adds r6, r0, r2 ldrb r4, [r6, 0x18] lsls r3, r4, 24 lsrs r2, r3, 28 ldr r0, =gBitTable 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 _0805822A 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, =gUnknown_020242BC 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] _0805822A: bl sub_8059AAC movs r6, 0 mov r12, r7 mov r5, sp adds r5, 0x18 str r5, [sp, 0x1C] ldr r2, =gBattleMons 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 _0805824E: mov r1, sp adds r3, r1, r6 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 _0805824E ldr r1, =gUnknown_020244B0 ldrb r0, [r7] adds r0, r1 ldrb r0, [r0] add r0, sp ldrb r0, [r0] ldr r2, [sp, 0x1C] strb r0, [r2] ldrb r0, [r7] adds r0, r1 ldrb r0, [r0] mov r3, sp adds r2, r3, r0 ldr r1, =gUnknown_03005D74 ldrb r0, [r1] add r0, sp ldrb r0, [r0] movs r3, 0 strb r0, [r2] ldrb r0, [r1] mov r5, sp adds r1, r5, r0 ldr r2, [sp, 0x1C] ldrb r0, [r2] strb r0, [r1] strb r3, [r2] movs r6, 0 ldr r2, [sp, 0x1C] _0805829E: mov r3, sp adds r0, r3, r6 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 _0805829E ldrb r1, [r7] movs r0, 0x58 muls r0, r1 add r0, r10 adds r0, 0x3B ldr r5, [sp, 0x1C] ldrb r1, [r5] strb r1, [r0] movs r6, 0 adds r4, r7, 0 movs r3, 0x58 movs r0, 0x24 add r0, r10 mov r8, r0 mov r2, r9 mov r7, r10 adds r7, 0xC mov r5, r12 _080582D8: 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 _080582D8 ldr r2, =gUnknown_02024064 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 _0805831A b _080584A8 _0805831A: movs r6, 0 mov r1, sp adds r1, 0x4 str r1, [sp, 0x20] add r3, sp, 0xC mov r10, r3 ldr r5, =gUnknown_0202406E mov r9, r5 mov r8, r2 movs r7, 0x64 ldr r5, =gPlayerParty adds r4, r1, 0 _08058332: 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 GetMonData 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 GetMonData mov r3, r10 adds r1, r3, r6 strb r0, [r1] adds r4, 0x2 adds r6, 0x1 cmp r6, 0x3 ble _08058332 ldr r1, =gUnknown_0202406E ldr r0, =gUnknown_02024064 ldrb r0, [r0] lsls r0, 1 adds r0, r1 ldrh r1, [r0] movs r0, 0x64 muls r0, r1 ldr r1, =gPlayerParty adds r0, r1 movs r1, 0x15 bl GetMonData ldr r5, [sp, 0x1C] strb r0, [r5] movs r6, 0 movs r5, 0x3 ldr r4, [sp, 0x1C] _08058392: mov r0, sp adds r3, r0, r6 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 _08058392 ldr r4, =gUnknown_020244B0 ldr r3, =gUnknown_02024064 ldrb r0, [r3] adds r0, r4 ldrb r1, [r0] lsls r1, 1 ldr r2, [sp, 0x20] adds r1, r2, r1 ldrh r6, [r1] ldr r2, =gUnknown_03005D74 ldrb r0, [r2] lsls r0, 1 ldr r5, [sp, 0x20] adds r0, r5, r0 ldrh r0, [r0] movs r5, 0 strh r0, [r1] ldrb r0, [r2] lsls r0, 1 ldr r1, [sp, 0x20] 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 ldrb r0, [r0] ldr r1, [sp, 0x1C] strb r0, [r1] ldrb r0, [r3] adds r0, r4 ldrb r0, [r0] mov r3, sp adds r1, r3, r0 ldrb r0, [r2] add r0, sp ldrb r0, [r0] strb r0, [r1] ldrb r0, [r2] adds r1, r3, r0 ldr r2, [sp, 0x1C] ldrb r0, [r2] strb r0, [r1] strb r5, [r2] movs r6, 0 ldr r2, [sp, 0x1C] _0805841E: mov r3, sp adds r0, r3, r6 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 _0805841E movs r6, 0 ldr r5, =gUnknown_0202406E mov r10, r5 ldr r0, =gUnknown_02024064 mov r9, r0 movs r1, 0x64 mov r8, r1 ldr r7, =gPlayerParty ldr r5, [sp, 0x20] adds r5, 0x8 ldr r4, [sp, 0x20] _0805844A: mov r2, r9 ldrb r0, [r2] lsls r0, 1 add r0, r10 ldrh r0, [r0] mov r3, r8 muls r3, r0 adds r0, r3, 0 adds r0, r7 adds r1, r6, 0 adds r1, 0xD adds r2, r4, 0 bl pokemon_setattr 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, 0x11 adds r2, r5, 0 bl pokemon_setattr adds r5, 0x1 adds r4, 0x2 adds r6, 0x1 cmp r6, 0x3 ble _0805844A ldr r1, =gUnknown_0202406E ldr r0, =gUnknown_02024064 ldrb r0, [r0] lsls r0, 1 adds r0, r1 ldrh r1, [r0] movs r0, 0x64 muls r0, r1 ldr r1, =gPlayerParty adds r0, r1 movs r1, 0x15 ldr r2, [sp, 0x1C] bl pokemon_setattr _080584A8: ldr r1, =gUnknown_03005D60 ldr r2, =gUnknown_02024064 ldrb r0, [r2] lsls r0, 2 adds r0, r1 ldr r1, =sub_8057BFC str r1, [r0] ldr r3, =gUnknown_020244B0 ldrb r0, [r2] adds r0, r3 ldr r1, =gUnknown_03005D74 ldrb r1, [r1] strb r1, [r0] ldrb r0, [r2] adds r0, r3 ldrb r0, [r0] movs r1, 0 bl battle_menu_cursor_related_2 b _08058532 .pool _08058500: movs r0, 0x6 ands r0, r1 cmp r0, 0 beq _08058554 movs r0, 0x5 bl audio_play ldr r0, =gUnknown_03005D74 ldrb r0, [r0] bl battle_menu_cursor_related ldr r1, =gUnknown_020244B0 ldr r4, =gUnknown_02024064 ldrb r0, [r4] adds r0, r1 ldrb r0, [r0] movs r1, 0 bl battle_menu_cursor_related_2 ldr r1, =gUnknown_03005D60 ldrb r0, [r4] lsls r0, 2 adds r0, r1 ldr r1, =sub_8057BFC str r1, [r0] _08058532: bl sub_8059B18 bl sub_8059B3C bl sub_8059BB0 b _080586E8 .pool _08058554: movs r0, 0x20 ands r0, r1 cmp r0, 0 beq _080585A4 ldr r3, =gUnknown_03005D74 ldrb r2, [r3] movs r0, 0x1 ands r0, r2 cmp r0, 0 bne _0805856A b _080586E8 _0805856A: ldr r0, =gUnknown_020244B0 ldr r1, =gUnknown_02024064 ldrb r1, [r1] adds r1, r0 ldrb r5, [r1] cmp r2, r5 bne _08058590 _08058578: ldrb r0, [r1] movs r1, 0x1D bl battle_menu_cursor_related_2 b _08058596 .pool _08058590: ldrb r0, [r3] bl battle_menu_cursor_related _08058596: ldr r4, =gUnknown_03005D74 ldrb r0, [r4] movs r1, 0x1 b _0805862C .pool _080585A4: movs r0, 0x10 ands r0, r1 cmp r0, 0 beq _080585E8 ldr r3, =gUnknown_03005D74 ldrb r2, [r3] movs r0, 0x1 ands r0, r2 cmp r0, 0 beq _080585BA b _080586E8 _080585BA: ldr r1, =gUnknown_03005D78 movs r0, 0x1 eors r0, r2 ldrb r1, [r1] cmp r0, r1 bcc _080585C8 b _080586E8 _080585C8: ldr r0, =gUnknown_020244B0 ldr r1, =gUnknown_02024064 ldrb r1, [r1] adds r1, r0 ldrb r0, [r1] cmp r2, r0 beq _08058578 b _08058590 .pool _080585E8: movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _0805865C ldr r3, =gUnknown_03005D74 ldrb r2, [r3] movs r0, 0x2 ands r0, r2 cmp r0, 0 beq _080586E8 ldr r0, =gUnknown_020244B0 ldr r1, =gUnknown_02024064 ldrb r1, [r1] adds r1, r0 ldrb r5, [r1] cmp r2, r5 bne _08058620 ldrb r0, [r1] movs r1, 0x1D bl battle_menu_cursor_related_2 b _08058626 .pool _08058620: ldrb r0, [r3] bl battle_menu_cursor_related _08058626: ldr r4, =gUnknown_03005D74 ldrb r0, [r4] movs r1, 0x2 _0805862C: eors r0, r1 strb r0, [r4] movs r0, 0x5 bl audio_play ldr r1, =gUnknown_020244B0 ldr r0, =gUnknown_02024064 ldrb r0, [r0] adds r0, r1 ldrb r1, [r4] ldrb r0, [r0] cmp r1, r0 beq _080586CA ldrb r0, [r4] movs r1, 0x1B bl battle_menu_cursor_related_2 b _080586E8 .pool _0805865C: movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _080586E8 ldr r3, =gUnknown_03005D74 ldrb r2, [r3] movs r0, 0x2 ands r0, r2 cmp r0, 0 bne _080586E8 ldr r1, =gUnknown_03005D78 movs r0, 0x2 eors r0, r2 ldrb r1, [r1] cmp r0, r1 bcs _080586E8 ldr r0, =gUnknown_020244B0 ldr r1, =gUnknown_02024064 ldrb r1, [r1] adds r1, r0 ldrb r0, [r1] cmp r2, r0 bne _080586A4 ldrb r0, [r1] movs r1, 0x1D bl battle_menu_cursor_related_2 b _080586AA .pool _080586A4: ldrb r0, [r3] bl battle_menu_cursor_related _080586AA: ldr r4, =gUnknown_03005D74 ldrb r0, [r4] movs r1, 0x2 eors r0, r1 strb r0, [r4] movs r0, 0x5 bl audio_play ldr r1, =gUnknown_020244B0 ldr r0, =gUnknown_02024064 ldrb r0, [r0] adds r0, r1 ldrb r1, [r4] ldrb r0, [r0] cmp r1, r0 bne _080586E0 _080586CA: adds r0, r1, 0 movs r1, 0 bl battle_menu_cursor_related_2 b _080586E8 .pool _080586E0: ldrb r0, [r4] movs r1, 0x1B bl battle_menu_cursor_related_2 _080586E8: 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 sub_8058138 thumb_func_start sub_80586F8 sub_80586F8: @ 80586F8 push {lr} ldr r0, =gLinkVSyncDisabled ldrb r0, [r0] cmp r0, 0 bne _0805875C ldr r0, =gUnknown_03003124 ldrb r0, [r0] cmp r0, 0 bne _08058798 movs r0, 0x5A bl m4aSongNumStop ldr r3, =gMain ldr r0, =0x00000439 adds r2, r3, r0 ldrb r1, [r2] movs r0, 0x3 negs r0, r0 ands r0, r1 strb r0, [r2] ldr r0, =gUnknown_03005D00 ldr r0, [r0] str r0, [r3] ldr r0, =sub_8038D64 bl SetMainCallback2 ldr r0, =gUnknown_0202433A ldrb r0, [r0] cmp r0, 0x1 bne _08058738 bl sub_817E3F4 _08058738: bl FreeAllWindowBuffers b _08058798 .pool _0805875C: bl sub_800A520 lsls r0, 24 cmp r0, 0 beq _08058798 movs r0, 0x5A bl m4aSongNumStop ldr r3, =gMain ldr r0, =0x00000439 adds r2, r3, r0 ldrb r1, [r2] movs r0, 0x3 negs r0, r0 ands r0, r1 strb r0, [r2] ldr r0, =gUnknown_03005D00 ldr r0, [r0] str r0, [r3] ldr r0, =sub_8038D64 bl SetMainCallback2 ldr r0, =gUnknown_0202433A ldrb r0, [r0] cmp r0, 0x1 bne _08058794 bl sub_817E3F4 _08058794: bl FreeAllWindowBuffers _08058798: pop {r0} bx r0 .pool thumb_func_end sub_80586F8 thumb_func_start sub_80587B0 sub_80587B0: @ 80587B0 push {lr} ldr r0, =gUnknown_02037FD4 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _08058832 ldr r0, =gBattleTypeFlags ldr r0, [r0] movs r1, 0x2 ands r0, r1 cmp r0, 0 beq _08058810 bl sub_800A520 lsls r0, 24 cmp r0, 0 beq _08058832 ldr r0, =gLinkVSyncDisabled ldrb r0, [r0] cmp r0, 0 bne _080587F0 bl sub_800AC34 b _080587F4 .pool _080587F0: bl sub_800ADF8 _080587F4: ldr r1, =gUnknown_03005D60 ldr r0, =gUnknown_02024064 ldrb r0, [r0] lsls r0, 2 adds r0, r1 ldr r1, =sub_80586F8 str r1, [r0] b _08058832 .pool _08058810: movs r0, 0x5A bl m4aSongNumStop ldr r2, =gMain ldr r0, =0x00000439 adds r3, r2, r0 ldrb r1, [r3] movs r0, 0x3 negs r0, r0 ands r0, r1 strb r0, [r3] ldr r0, =gUnknown_03005D00 ldr r0, [r0] str r0, [r2] ldr r0, [r2, 0x8] bl SetMainCallback2 _08058832: pop {r0} bx r0 .pool thumb_func_end sub_80587B0 thumb_func_start sub_8058844 sub_8058844: @ 8058844 push {lr} ldr r2, =gUnknown_02020630 ldr r1, =gUnknown_020241E4 ldr r0, =gUnknown_02024064 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, =DummyObjectCallback cmp r1, r0 bne _08058868 bl dp01_tbl1_exec_completed _08058868: pop {r0} bx r0 .pool thumb_func_end sub_8058844 thumb_func_start sub_805887C sub_805887C: @ 805887C push {lr} ldr r2, =gUnknown_02020630 ldr r1, =gUnknown_020241E4 ldr r0, =gUnknown_02024064 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, =DummyObjectCallback cmp r1, r0 bne _080588A0 bl dp01_tbl1_exec_completed _080588A0: pop {r0} bx r0 .pool thumb_func_end sub_805887C thumb_func_start bx_802F7A0 bx_802F7A0: @ 80588B4 push {r4-r6,lr} ldr r6, =gUnknown_02020630 ldr r5, =gUnknown_020241E4 ldr r4, =gUnknown_02024064 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, =DummyObjectCallback cmp r1, r0 bne _08058908 ldr r0, =gSaveBlock2Ptr ldr r0, [r0] ldrb r0, [r0, 0x8] bl nullsub_25 ldrb r0, [r4] adds r0, r5 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r6 bl obj_free_rotscale_entry ldrb r0, [r4] adds r0, r5 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r6 bl RemoveObjectAndFreeTiles bl dp01_tbl1_exec_completed _08058908: pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end bx_802F7A0 thumb_func_start sub_8058924 sub_8058924: @ 8058924 push {r4,lr} ldr r4, =gUnknown_020244D0 ldr r1, [r4] ldr r3, =gUnknown_02024064 ldrb r0, [r3] ldr r2, [r1, 0x4] lsls r1, r0, 1 adds r1, r0 lsls r1, 2 adds r1, r2 ldrb r0, [r1, 0x9] subs r0, 0x1 strb r0, [r1, 0x9] lsls r0, 24 lsrs r0, 24 cmp r0, 0xFF bne _0805895C ldr r0, [r4] ldrb r1, [r3] ldr r2, [r0, 0x4] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r2 movs r1, 0 strb r1, [r0, 0x9] bl dp01_tbl1_exec_completed _0805895C: pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_8058924 thumb_func_start sub_805896C sub_805896C: @ 805896C push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} movs r7, 0 bl battle_type_is_double lsls r0, 24 cmp r0, 0 beq _08058998 bl battle_type_is_double lsls r0, 24 cmp r0, 0 beq _080589D0 ldr r0, =gBattleTypeFlags ldr r0, [r0] movs r1, 0x40 ands r0, r1 cmp r0, 0 beq _080589D0 _08058998: ldr r2, =gUnknown_02020630 ldr r1, =gUnknown_03005D70 ldr r3, =gUnknown_02024064 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, [r0] ldr r0, =DummyObjectCallback mov r10, r3 cmp r1, r0 bne _08058A0A b _08058A0E .pool _080589D0: ldr r3, =gUnknown_02020630 ldr r6, =gUnknown_03005D70 ldr r2, =gUnknown_02024064 ldrb r4, [r2] adds r0, r4, r6 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r5, r3, 0 adds r5, 0x1C adds r0, r5 ldr r3, [r0] ldr r0, =DummyObjectCallback mov r10, r2 cmp r3, r0 bne _08058A0A movs r0, 0x2 eors r4, r0 adds r0, r4, r6 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 ldr r0, [r0] cmp r0, r3 bne _08058A0A movs r7, 0x1 _08058A0A: cmp r7, 0 beq _08058B08 _08058A0E: ldr r0, =gUnknown_020244D0 mov r9, r0 ldr r0, [r0] mov r6, r10 ldrb r2, [r6] ldr r3, [r0, 0x4] lsls r0, r2, 1 adds r0, r2 lsls r0, 2 adds r4, r0, r3 ldrb r1, [r4, 0x1] movs r5, 0x1 adds r0, r5, 0 ands r0, r1 cmp r0, 0 beq _08058B08 movs r1, 0x2 mov r8, r1 mov r1, r8 eors r1, r2 lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r3 ldrb r1, [r0, 0x1] adds r0, r5, 0 ands r0, r1 cmp r0, 0 beq _08058B08 ldrb r1, [r4] movs r3, 0x7F adds r0, r3, 0 ands r0, r1 strb r0, [r4] mov r2, r9 ldr r0, [r2] ldrb r2, [r6] ldr r0, [r0, 0x4] lsls r1, r2, 1 adds r1, r2 lsls r1, 2 adds r1, r0 ldrb r2, [r1, 0x1] movs r4, 0x2 negs r4, r4 adds r0, r4, 0 ands r0, r2 strb r0, [r1, 0x1] mov r0, r9 ldr r2, [r0] ldrb r0, [r6] mov r1, r8 eors r1, r0 ldr r2, [r2, 0x4] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r1, [r0] ands r3, r1 strb r3, [r0] mov r1, r9 ldr r2, [r1] ldrb r0, [r6] mov r1, r8 eors r1, r0 ldr r2, [r2, 0x4] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r1, [r0, 0x1] ands r4, r1 strb r4, [r0, 0x1] ldr r4, =0x000027f9 adds r0, r4, 0 bl FreeObjectTilesByTag adds r0, r4, 0 bl FreeObjectPaletteByTag ldr r7, =gUnknown_0202406E ldrb r1, [r6] lsls r0, r1, 1 adds r0, r7 ldrh r0, [r0] movs r5, 0x64 muls r0, r5 ldr r4, =gPlayerParty adds r0, r4 bl sub_805E990 bl battle_type_is_double lsls r0, 24 cmp r0, 0 beq _08058AE4 ldrb r0, [r6] mov r1, r8 eors r1, r0 lsls r0, r1, 1 adds r0, r7 ldrh r0, [r0] muls r0, r5 adds r0, r4 bl sub_805E990 _08058AE4: mov r2, r9 ldr r0, [r2] mov r2, r10 ldrb r1, [r2] ldr r2, [r0, 0x4] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r2 movs r1, 0x3 strb r1, [r0, 0x9] ldr r1, =gUnknown_03005D60 mov r2, r10 ldrb r0, [r2] lsls r0, 2 adds r0, r1 ldr r1, =sub_8058924 str r1, [r0] _08058B08: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_805896C thumb_func_start sub_8058B40 sub_8058B40: @ 8058B40 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} movs r0, 0 mov r9, r0 mov r8, r0 ldr r4, =gUnknown_020244D0 ldr r0, [r4] ldr r7, =gUnknown_02024064 ldrb r2, [r7] ldr r1, [r0, 0x4] lsls r3, r2, 1 adds r0, r3, r2 lsls r0, 2 adds r0, r1 ldrb r1, [r0] movs r5, 0x88 adds r0, r5, 0 ands r0, r1 cmp r0, 0 bne _08058B80 ldr r0, =gUnknown_0202406E adds r0, r3, r0 ldrh r1, [r0] movs r0, 0x64 muls r1, r0 ldr r0, =gPlayerParty adds r1, r0 adds r0, r2, 0 bl sub_8172EF0 _08058B80: ldr r1, [r4] ldrb r0, [r7] movs r6, 0x2 adds r2, r6, 0 eors r2, r0 ldr r1, [r1, 0x4] lsls r3, r2, 1 adds r0, r3, r2 lsls r0, 2 adds r0, r1 ldrb r1, [r0] adds r0, r5, 0 ands r0, r1 cmp r0, 0 bne _08058BB2 ldr r0, =gUnknown_0202406E adds r0, r3, r0 ldrh r1, [r0] movs r0, 0x64 muls r1, r0 ldr r0, =gPlayerParty adds r1, r0 adds r0, r2, 0 bl sub_8172EF0 _08058BB2: ldr r0, [r4] ldrb r2, [r7] ldr r3, [r0, 0x4] lsls r0, r2, 1 adds r0, r2 lsls r0, 2 adds r4, r0, r3 ldrb r1, [r4] movs r5, 0x8 adds r0, r5, 0 ands r0, r1 cmp r0, 0 bne _08058C82 adds r1, r6, 0 eors r1, r2 lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r3 ldrb r1, [r0] adds r0, r5, 0 ands r0, r1 cmp r0, 0 bne _08058C82 ldrb r1, [r4, 0x1] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _08058C68 bl battle_type_is_double lsls r0, 24 cmp r0, 0 beq _08058C38 ldr r0, =gBattleTypeFlags ldr r0, [r0] movs r1, 0x40 ands r0, r1 cmp r0, 0 bne _08058C38 ldr r4, =gUnknown_03005D70 ldrb r0, [r7] adds r1, r6, 0 eors r1, r0 adds r0, r1, r4 ldrb r0, [r0] ldr r2, =gUnknown_0202406E lsls r1, 1 adds r1, r2 ldrh r2, [r1] movs r1, 0x64 muls r1, r2 ldr r2, =gPlayerParty adds r1, r2 movs r2, 0 bl healthbar_draw_field_maybe ldrb r0, [r7] eors r0, r6 bl sub_8076918 ldrb r0, [r7] eors r0, r6 adds r0, r4 ldrb r0, [r0] bl sub_80729D0 _08058C38: ldr r5, =gUnknown_03005D70 ldr r4, =gUnknown_02024064 ldrb r1, [r4] adds r0, r1, r5 ldrb r0, [r0] ldr r2, =gUnknown_0202406E lsls r1, 1 adds r1, r2 ldrh r2, [r1] movs r1, 0x64 muls r1, r2 ldr r2, =gPlayerParty adds r1, r2 movs r2, 0 bl healthbar_draw_field_maybe ldrb r0, [r4] bl sub_8076918 ldrb r0, [r4] adds r0, r5 ldrb r0, [r0] bl sub_80729D0 _08058C68: ldr r0, =gUnknown_020244D0 ldr r2, [r0] ldr r0, =gUnknown_02024064 ldrb r1, [r0] ldr r2, [r2, 0x4] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r1, [r0, 0x1] movs r2, 0x80 orrs r1, r2 strb r1, [r0, 0x1] _08058C82: ldr r5, =gUnknown_020244D0 ldr r0, [r5] ldr r4, =gUnknown_02024064 ldrb r2, [r4] ldr r3, [r0, 0x4] lsls r0, r2, 1 adds r0, r2 lsls r0, 2 adds r0, r3 ldrb r1, [r0, 0x1] movs r0, 0xC0 ands r0, r1 cmp r0, 0x80 bne _08058D32 movs r1, 0x2 eors r1, r2 lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r3 ldrb r1, [r0, 0x1] movs r0, 0x40 ands r0, r1 cmp r0, 0 bne _08058D32 bl sub_80A36C8 lsls r0, 24 cmp r0, 0 bne _08058D32 ldr r0, [r5] ldrb r1, [r4] ldr r2, [r0, 0x4] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r1, [r0, 0x1] movs r0, 0x20 ands r0, r1 cmp r0, 0 bne _08058D14 ldr r0, =gBattleTypeFlags ldr r0, [r0] movs r1, 0x42 ands r0, r1 cmp r0, 0x42 bne _08058D08 ldr r0, =gMPlay_BGM bl m4aMPlayContinue b _08058D14 .pool _08058D08: ldr r0, =gMPlay_BGM ldr r1, =0x0000ffff movs r2, 0x80 lsls r2, 1 bl m4aMPlayVolumeControl _08058D14: ldr r0, =gUnknown_020244D0 ldr r2, [r0] ldr r0, =gUnknown_02024064 ldrb r1, [r0] ldr r2, [r2, 0x4] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r1, [r0, 0x1] movs r2, 0x20 orrs r1, r2 strb r1, [r0, 0x1] movs r0, 0x1 mov r9, r0 _08058D32: bl battle_type_is_double lsls r0, 24 cmp r0, 0 beq _08058D52 bl battle_type_is_double lsls r0, 24 cmp r0, 0 beq _08058DAC ldr r0, =gBattleTypeFlags ldr r0, [r0] movs r1, 0x40 ands r0, r1 cmp r0, 0 beq _08058DAC _08058D52: ldr r2, =gUnknown_02020630 ldr r0, =gUnknown_03005D7C ldr r1, =gUnknown_02024064 ldrb r4, [r1] adds r0, r4, r0 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r2, 0x1C adds r0, r2 ldr r3, [r0] ldr r0, =DummyObjectCallback cmp r3, r0 bne _08058E0A ldr r0, =gUnknown_020241E4 adds r0, r4, r0 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 ldr r0, [r0] cmp r0, r3 bne _08058E0A b _08058E06 .pool _08058DAC: ldr r2, =gUnknown_02020630 ldr r7, =gUnknown_03005D7C ldr r0, =gUnknown_02024064 ldrb r3, [r0] adds r0, r3, r7 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r2, 0x1C adds r0, r2 ldr r4, [r0] ldr r0, =DummyObjectCallback cmp r4, r0 bne _08058E0A ldr r6, =gUnknown_020241E4 adds r0, r3, r6 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 ldr r5, [r0] cmp r5, r4 bne _08058E0A movs r0, 0x2 eors r3, r0 adds r0, r3, r7 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 ldr r4, [r0] cmp r4, r5 bne _08058E0A adds r0, r3, r6 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 ldr r0, [r0] cmp r0, r4 bne _08058E0A _08058E06: movs r0, 0x1 mov r8, r0 _08058E0A: mov r0, r9 cmp r0, 0 beq _08058EAA mov r0, r8 cmp r0, 0 beq _08058EAA bl battle_type_is_double lsls r0, 24 cmp r0, 0 beq _08058E48 ldr r0, =gBattleTypeFlags ldr r0, [r0] movs r1, 0x40 ands r0, r1 cmp r0, 0 bne _08058E48 ldr r2, =gUnknown_03005D7C ldr r0, =gUnknown_02024064 ldrb r1, [r0] movs r0, 0x2 eors r0, r1 adds r0, r2 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, =gUnknown_02020630 adds r0, r1 bl RemoveObjectAndFreeTiles _08058E48: ldr r1, =gUnknown_03005D7C ldr r4, =gUnknown_02024064 ldrb r0, [r4] adds r0, r1 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, =gUnknown_02020630 adds r0, r1 bl RemoveObjectAndFreeTiles ldr r3, =gUnknown_020244D0 ldr r0, [r3] ldr r2, [r0, 0x8] ldrb r1, [r2, 0x9] movs r0, 0x2 negs r0, r0 ands r0, r1 strb r0, [r2, 0x9] ldr r0, [r3] ldrb r2, [r4] ldr r0, [r0, 0x4] lsls r1, r2, 1 adds r1, r2 lsls r1, 2 adds r1, r0 ldrb r2, [r1, 0x1] movs r0, 0x21 negs r0, r0 ands r0, r2 strb r0, [r1, 0x1] ldr r0, [r3] ldrb r2, [r4] ldr r0, [r0, 0x4] lsls r1, r2, 1 adds r1, r2 lsls r1, 2 adds r1, r0 ldrb r2, [r1, 0x1] movs r0, 0x7F ands r0, r2 strb r0, [r1, 0x1] ldr r1, =gUnknown_03005D60 ldrb r0, [r4] lsls r0, 2 adds r0, r1 ldr r1, =sub_805896C str r1, [r0] _08058EAA: pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_8058B40 thumb_func_start sub_8058EDC sub_8058EDC: @ 8058EDC push {r4-r6,lr} ldr r2, =gUnknown_02020630 ldr r0, =gUnknown_03005D70 ldr r6, =gUnknown_02024064 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 r4, [r0] ldr r0, =DummyObjectCallback cmp r4, r0 bne _08058F94 ldr r5, =gUnknown_020244D0 ldr r0, [r5] ldr r1, [r0, 0x4] lsls r0, r3, 1 adds r0, r3 lsls r0, 2 adds r0, r1 ldrb r1, [r0, 0x1] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _08058F94 ldr r0, =gUnknown_020241E4 adds r0, r3, r0 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 ldr r0, [r0] cmp r0, r4 bne _08058F94 adds r0, r3, 0 bl sub_805E408 ldr r0, [r5] ldrb r2, [r6] ldr r0, [r0, 0x4] lsls r1, r2, 1 adds r1, r2 lsls r1, 2 adds r1, r0 ldrb r2, [r1] movs r0, 0x7F ands r0, r2 strb r0, [r1] ldr r0, [r5] ldrb r2, [r6] ldr r0, [r0, 0x4] lsls r1, r2, 1 adds r1, r2 lsls r1, 2 adds r1, r0 ldrb r2, [r1, 0x1] movs r0, 0x2 negs r0, r0 ands r0, r2 strb r0, [r1, 0x1] ldr r4, =0x000027f9 adds r0, r4, 0 bl FreeObjectTilesByTag adds r0, r4, 0 bl FreeObjectPaletteByTag ldr r0, [r5] ldrb r2, [r6] ldr r1, [r0] lsls r0, r2, 2 adds r0, r1 ldrb r1, [r0] movs r0, 0x4 ands r0, r1 cmp r0, 0 beq _08058F88 adds r0, r2, 0 adds r1, r2, 0 movs r3, 0x6 bl move_anim_start_t4 _08058F88: ldr r0, =gUnknown_03005D60 ldrb r1, [r6] lsls r1, 2 adds r1, r0 ldr r0, =sub_8058FC0 str r0, [r1] _08058F94: pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_8058EDC thumb_func_start sub_8058FC0 sub_8058FC0: @ 8058FC0 push {r4,lr} ldr r0, =gUnknown_020244D0 ldr r0, [r0] ldr r4, =gUnknown_02024064 ldrb r1, [r4] ldr r2, [r0, 0x4] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r1, [r0] movs r0, 0x40 ands r0, r1 cmp r0, 0 bne _0805900E bl sub_80A36C8 lsls r0, 24 cmp r0, 0 bne _0805900E ldr r0, =gMPlay_BGM ldr r1, =0x0000ffff movs r2, 0x80 lsls r2, 1 bl m4aMPlayVolumeControl ldr r2, =gUnknown_0202406E ldrb r1, [r4] lsls r0, r1, 1 adds r0, r2 ldrh r2, [r0] movs r0, 0x64 muls r0, r2 ldr r2, =gPlayerParty adds r0, r2 bl sub_805E990 bl dp01_tbl1_exec_completed _0805900E: pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_8058FC0 thumb_func_start sub_805902C sub_805902C: @ 805902C push {r4-r6,lr} ldr r6, =gUnknown_020244D0 ldr r0, [r6] ldr r5, =gUnknown_02024064 ldrb r2, [r5] ldr r1, [r0, 0x4] lsls r3, r2, 1 adds r0, r3, r2 lsls r0, 2 adds r0, r1 ldrb r1, [r0] movs r0, 0x88 ands r0, r1 cmp r0, 0 bne _0805905E ldr r0, =gUnknown_0202406E adds r0, r3, r0 ldrh r1, [r0] movs r0, 0x64 muls r1, r0 ldr r0, =gPlayerParty adds r1, r0 adds r0, r2, 0 bl sub_8172EF0 _0805905E: ldr r4, =gUnknown_02020630 ldr r0, =gUnknown_03005D7C 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, =DummyObjectCallback cmp r1, r0 bne _080590D2 ldr r0, [r6] ldr r1, [r0, 0x4] lsls r0, r2, 1 adds r0, r2 lsls r0, 2 adds r0, r1 ldrb r1, [r0] movs r0, 0x8 ands r0, r1 cmp r0, 0 bne _080590D2 adds r0, r3, r4 bl RemoveObjectAndFreeTiles ldr r4, =gUnknown_03005D70 ldrb r1, [r5] adds r0, r1, r4 ldrb r0, [r0] ldr r2, =gUnknown_0202406E lsls r1, 1 adds r1, r2 ldrh r2, [r1] movs r1, 0x64 muls r1, r2 ldr r2, =gPlayerParty adds r1, r2 movs r2, 0 bl healthbar_draw_field_maybe ldrb r0, [r5] bl sub_8076918 ldrb r0, [r5] adds r0, r4 ldrb r0, [r0] bl sub_80729D0 ldr r1, =gUnknown_03005D60 ldrb r0, [r5] lsls r0, 2 adds r0, r1 ldr r1, =sub_8058EDC str r1, [r0] _080590D2: pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_805902C thumb_func_start c3_0802FDF4 c3_0802FDF4: @ 8059100 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 bl sub_80A36C8 lsls r0, 24 cmp r0, 0 bne _08059122 ldr r0, =gMPlay_BGM ldr r1, =0x0000ffff movs r2, 0x80 lsls r2, 1 bl m4aMPlayVolumeControl adds r0, r4, 0 bl DestroyTask _08059122: pop {r4} pop {r0} bx r0 .pool thumb_func_end c3_0802FDF4 thumb_func_start bx_t1_healthbar_update bx_t1_healthbar_update: @ 8059130 push {r4-r6,lr} ldr r5, =gUnknown_02024064 ldrb r0, [r5] ldr r6, =gUnknown_03005D70 adds r1, r0, r6 ldrb r1, [r1] movs r2, 0 movs r3, 0 bl sub_8074AA0 adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 ldrb r0, [r5] adds r0, r6 ldrb r0, [r0] bl sub_80729D0 lsls r4, 16 asrs r1, r4, 16 movs r0, 0x1 negs r0, r0 cmp r1, r0 beq _08059178 ldrb r0, [r5] adds r0, r6 ldrb r0, [r0] movs r2, 0 bl heathbar_draw_hp b _08059192 .pool _08059178: ldr r2, =gUnknown_0202406E ldrb r1, [r5] lsls r0, r1, 1 adds r0, r2 ldrh r2, [r0] movs r0, 0x64 muls r0, r2 ldr r2, =gPlayerParty adds r0, r2 bl sub_805E990 bl dp01_tbl1_exec_completed _08059192: pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end bx_t1_healthbar_update thumb_func_start sub_80591A0 sub_80591A0: @ 80591A0 push {lr} movs r0, 0 bl IsTextPrinterActive lsls r0, 16 cmp r0, 0 bne _080591B2 bl dp01_tbl1_exec_completed _080591B2: pop {r0} bx r0 thumb_func_end sub_80591A0 thumb_func_start sub_80591B8 sub_80591B8: @ 80591B8 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, =gTasks 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 _080591FE ldr r1, =gUnknown_0202406E lsls r0, r7, 1 adds r0, r1 ldrh r0, [r0] cmp r10, r0 bne _080591FE b _08059314 _080591FE: movs r0, 0x64 mov r1, r10 muls r1, r0 ldr r0, =gPlayerParty adds r6, r1, r0 adds r0, r6, 0 movs r1, 0xB bl GetMonData adds r5, r0, 0 lsls r5, 16 lsrs r5, 16 adds r0, r6, 0 movs r1, 0x38 bl GetMonData adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 adds r0, r6, 0 movs r1, 0x19 bl GetMonData str r0, [sp, 0x4] ldr r3, =gExperienceTables adds r4, 0x1 lsls r4, 2 ldr r2, =gBaseStats 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 _080592EC 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, =gUnknown_02024064 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 _080592D4 ldr r2, =gUnknown_0202406E lsls r0, r7, 1 adds r0, r2 mov r1, r10 ldrh r0, [r0] cmp r1, r0 beq _080592B2 movs r0, 0x2 eors r7, r0 lsls r0, r7, 1 adds r0, r2 ldrh r0, [r0] cmp r1, r0 bne _080592D4 _080592B2: ldr r0, =sub_8059544 b _08059316 .pool _080592D4: ldr r0, =gTasks mov r2, r9 lsls r1, r2, 2 add r1, r9 lsls r1, 3 adds r1, r0 ldr r0, =sub_805965C b _08059318 .pool _080592EC: str r0, [sp, 0x4] add r2, sp, 0x4 adds r0, r6, 0 movs r1, 0x19 bl pokemon_setattr ldr r1, =gUnknown_03005D60 ldr r3, [sp, 0x8] lsls r0, r3, 2 adds r0, r1 ldr r1, =sub_80591A0 str r1, [r0] mov r0, r9 bl DestroyTask b _0805931A .pool _08059314: ldr r0, =sub_8059330 _08059316: mov r1, r8 _08059318: str r0, [r1] _0805931A: add sp, 0x10 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_80591B8 thumb_func_start sub_8059330 sub_8059330: @ 8059330 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, =gTasks 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, =gPlayerParty adds r6, r0 adds r0, r6, 0 movs r1, 0x38 bl GetMonData adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 adds r0, r6, 0 movs r1, 0xB bl GetMonData adds r5, r0, 0 lsls r5, 16 lsrs r5, 16 adds r0, r6, 0 movs r1, 0x19 bl GetMonData adds r3, r0, 0 ldr r6, =gExperienceTables lsls r1, r4, 2 ldr r2, =gBaseStats 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, =gUnknown_03005D70 add r0, r10 ldrb r1, [r0] mov r0, r9 negs r0, r0 str r0, [sp] mov r0, r10 bl sub_807294C movs r0, 0x21 bl audio_play ldr r0, =sub_8059400 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 .pool thumb_func_end sub_8059330 thumb_func_start sub_8059400 sub_8059400: @ 8059400 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, =gTasks 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 _08059430 adds r0, r1, 0x1 strh r0, [r6, 0x1C] b _0805952C .pool _08059430: ldrb r0, [r6, 0x8] mov r9, r0 ldrh r2, [r6, 0xA] mov r10, r2 ldrb r7, [r6, 0xC] ldr r5, =gUnknown_03005D70 adds r5, r7, r5 ldrb r1, [r5] adds r0, r7, 0 movs r2, 0x1 movs r3, 0 bl sub_8074AA0 adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 ldrb r0, [r5] bl sub_80729D0 lsls r4, 16 asrs r4, 16 movs r0, 0x1 negs r0, r0 cmp r4, r0 bne _0805952C movs r0, 0x21 bl m4aSongNumStop movs r0, 0x64 mov r1, r9 muls r1, r0 ldr r0, =gPlayerParty adds r5, r1, r0 adds r0, r5, 0 movs r1, 0x38 bl GetMonData adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 adds r0, r5, 0 movs r1, 0x19 bl GetMonData str r0, [sp, 0x4] adds r0, r5, 0 movs r1, 0xB bl GetMonData lsls r0, 16 lsrs r0, 16 ldr r3, =gExperienceTables adds r4, 0x1 lsls r4, 2 ldr r2, =gBaseStats 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 _08059510 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, =gUnknown_02024064 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, =sub_8059544 str r0, [r6] b _0805952C .pool _08059510: str r0, [sp, 0x4] add r2, sp, 0x4 adds r0, r5, 0 movs r1, 0x19 bl pokemon_setattr ldr r1, =gUnknown_03005D60 lsls r0, r7, 2 adds r0, r1 ldr r1, =sub_80591A0 str r1, [r0] mov r0, r8 bl DestroyTask _0805952C: add sp, 0x8 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_8059400 thumb_func_start sub_8059544 sub_8059544: @ 8059544 push {r4-r6,lr} lsls r0, 24 lsrs r5, r0, 24 ldr r1, =gTasks 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 _08059578 ldr r1, =gUnknown_0202406E movs r0, 0x2 adds r2, r4, 0 eors r2, r0 lsls r0, r2, 1 adds r0, r1 ldrh r0, [r0] cmp r6, r0 bne _08059578 adds r4, r2, 0 _08059578: adds r0, r4, 0 adds r1, r4, 0 adds r2, r4, 0 movs r3, 0 bl move_anim_start_t4 ldr r0, =gTasks lsls r1, r5, 2 adds r1, r5 lsls r1, 3 adds r1, r0 ldr r0, =sub_80595A4 str r0, [r1] pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_8059544 thumb_func_start sub_80595A4 sub_80595A4: @ 80595A4 push {r4-r7,lr} lsls r0, 24 lsrs r6, r0, 24 ldr r1, =gTasks lsls r0, r6, 2 adds r0, r6 lsls r0, 3 adds r2, r0, r1 ldrb r5, [r2, 0xC] ldr r0, =gUnknown_020244D0 ldr r0, [r0] ldr r1, [r0, 0x4] lsls r0, r5, 1 adds r0, r5 lsls r0, 2 adds r0, r1 ldrb r1, [r0] movs r0, 0x40 ands r0, r1 cmp r0, 0 bne _08059646 ldrb r4, [r2, 0x8] movs r0, 0x64 adds r1, r4, 0 muls r1, r0 ldr r0, =gPlayerParty adds r7, r1, r0 adds r0, r7, 0 movs r1, 0x38 bl GetMonData bl battle_type_is_double lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _08059624 ldr r1, =gUnknown_0202406E movs r0, 0x2 adds r2, r5, 0 eors r2, r0 lsls r0, r2, 1 adds r0, r1 ldrh r0, [r0] cmp r4, r0 bne _08059624 ldr r0, =gUnknown_03005D70 adds r0, r2, r0 ldrb r0, [r0] adds r1, r7, 0 movs r2, 0 bl healthbar_draw_field_maybe b _08059638 .pool _08059624: ldr r0, =gUnknown_03005D70 adds r0, r5, r0 ldrb r0, [r0] movs r1, 0x64 muls r1, r4 ldr r2, =gPlayerParty adds r1, r2 movs r2, 0 bl healthbar_draw_field_maybe _08059638: ldr r0, =gTasks lsls r1, r6, 2 adds r1, r6 lsls r1, 3 adds r1, r0 ldr r0, =sub_805965C str r0, [r1] _08059646: pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_80595A4 thumb_func_start sub_805965C sub_805965C: @ 805965C push {r4,r5,lr} adds r5, r0, 0 lsls r5, 24 lsrs r5, 24 ldr r0, =gTasks 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, =gPlayerParty adds r0, r1 movs r1, 0x38 bl GetMonData ldrb r0, [r4, 0xC] ldr r1, =gUnknown_03005D60 lsls r0, 2 adds r0, r1 ldr r1, =sub_80591A0 str r1, [r0] adds r0, r5, 0 bl DestroyTask pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_805965C thumb_func_start sub_80596A8 sub_80596A8: @ 80596A8 push {r4-r6,lr} ldr r6, =gUnknown_02020630 ldr r5, =gUnknown_020241E4 ldr r4, =gUnknown_02024064 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 _08059724 ldr r1, =gUnknown_0202406E lsls r0, r2, 1 adds r0, r1 ldrh r1, [r0] movs r0, 0x64 muls r0, r1 ldr r1, =gPlayerParty adds r0, r1 movs r1, 0xB bl GetMonData lsls r0, 16 lsrs r0, 16 bl nullsub_24 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 rotscale_free_entry ldrb r0, [r4] adds r0, r5 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r6 bl RemoveObjectAndFreeTiles ldr r1, =gUnknown_03005D70 ldrb r0, [r4] adds r0, r1 ldrb r0, [r0] bl sub_8072984 bl dp01_tbl1_exec_completed _08059724: pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_80596A8 thumb_func_start sub_8059744 sub_8059744: @ 8059744 push {r4-r6,lr} ldr r0, =gUnknown_020244D0 ldr r0, [r0] ldr r6, =gUnknown_02024064 ldrb r2, [r6] ldr r1, [r0, 0x4] lsls r0, r2, 1 adds r0, r2 lsls r0, 2 adds r0, r1 ldrb r1, [r0] movs r0, 0x40 ands r0, r1 cmp r0, 0 bne _08059798 ldr r5, =gUnknown_020241E4 adds r0, r2, r5 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r4, =gUnknown_02020630 adds r0, r4 bl obj_free_rotscale_entry ldrb r0, [r6] adds r0, r5 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 bl RemoveObjectAndFreeTiles ldr r1, =gUnknown_03005D70 ldrb r0, [r6] adds r0, r1 ldrb r0, [r0] bl sub_8072984 bl dp01_tbl1_exec_completed _08059798: pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_8059744 thumb_func_start sub_80597B4 sub_80597B4: @ 80597B4 push {lr} movs r0, 0 bl IsTextPrinterActive lsls r0, 16 cmp r0, 0 bne _080597C6 bl dp01_tbl1_exec_completed _080597C6: pop {r0} bx r0 thumb_func_end sub_80597B4 thumb_func_start sub_80597CC sub_80597CC: @ 80597CC push {r4,lr} ldr r0, =gUnknown_02037FD4 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _0805980A ldr r1, =gUnknown_03005D60 ldr r2, =gUnknown_02024064 ldrb r0, [r2] lsls r0, 2 adds r0, r1 ldr r1, =sub_8059828 str r1, [r0] ldr r3, =gTasks ldr r1, =gUnknown_03005D7C 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 bl FreeAllWindowBuffers adds r0, r4, 0 bl sub_81B89AC _0805980A: pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_80597CC thumb_func_start sub_8059828 sub_8059828: @ 8059828 push {lr} ldr r0, =gMain ldr r1, [r0, 0x4] ldr r0, =sub_8038420 cmp r1, r0 bne _08059898 ldr r0, =gUnknown_02037FD4 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _08059898 ldr r0, =gUnknown_0203CEE8 ldrb r0, [r0] cmp r0, 0x1 bne _08059870 ldr r0, =gUnknown_0203CEE9 ldrb r1, [r0] ldr r2, =gUnknown_0203CF00 movs r0, 0x1 bl dp01_build_cmdbuf_x22_a_three_bytes b _0805987A .pool _08059870: movs r0, 0x1 movs r1, 0x6 movs r2, 0 bl dp01_build_cmdbuf_x22_a_three_bytes _0805987A: ldr r1, =gUnknown_02023064 ldr r0, =gUnknown_02024064 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 _08059894 bl b_link_standby_message _08059894: bl dp01_tbl1_exec_completed _08059898: pop {r0} bx r0 .pool thumb_func_end sub_8059828 thumb_func_start sub_80598A4 sub_80598A4: @ 80598A4 push {lr} ldr r0, =gUnknown_02037FD4 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _080598CC ldr r1, =gUnknown_03005D60 ldr r0, =gUnknown_02024064 ldrb r0, [r0] lsls r0, 2 adds r0, r1 ldr r1, =sub_80598E0 str r1, [r0] bl nullsub_35 bl FreeAllWindowBuffers bl sub_81AABB0 _080598CC: pop {r0} bx r0 .pool thumb_func_end sub_80598A4 thumb_func_start sub_80598E0 sub_80598E0: @ 80598E0 push {lr} ldr r0, =gMain ldr r1, [r0, 0x4] ldr r0, =sub_8038420 cmp r1, r0 bne _08059906 ldr r0, =gUnknown_02037FD4 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _08059906 ldr r0, =gUnknown_0203CE7C ldrh r1, [r0] movs r0, 0x1 bl dp01_build_cmdbuf_x23_aa_0 bl dp01_tbl1_exec_completed _08059906: pop {r0} bx r0 .pool thumb_func_end sub_80598E0 thumb_func_start bx_wait_t1 bx_wait_t1: @ 805991C push {lr} ldr r0, =gUnknown_020244B9 ldrb r0, [r0] cmp r0, 0 beq _08059942 ldr r0, =gUnknown_020244D0 ldr r2, [r0] ldr r0, =gUnknown_02024064 ldrb r1, [r0] ldr r2, [r2, 0x4] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r1, [r0] movs r0, 0x40 ands r0, r1 cmp r0, 0 bne _08059946 _08059942: bl dp01_tbl1_exec_completed _08059946: pop {r0} bx r0 .pool thumb_func_end bx_wait_t1 thumb_func_start bx_blink_t1 bx_blink_t1: @ 8059958 push {r4,lr} ldr r1, =gUnknown_020241E4 ldr r0, =gUnknown_02024064 ldrb r0, [r0] adds r0, r1 ldrb r1, [r0] ldr r2, =gUnknown_02020630 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 _080599A4 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, =gUnknown_020244B9 strb r3, [r0] bl dp01_tbl1_exec_completed b _080599CE .pool _080599A4: ldrh r0, [r4, 0x30] movs r1, 0x3 ands r0, r1 cmp r0, 0 bne _080599C8 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] _080599C8: ldrh r0, [r4, 0x30] adds r0, 0x1 strh r0, [r4, 0x30] _080599CE: pop {r4} pop {r0} bx r0 thumb_func_end bx_blink_t1 thumb_func_start sub_80599D4 sub_80599D4: @ 80599D4 push {r4,lr} sub sp, 0x4 ldr r0, =gMain ldrh r1, [r0, 0x2E] movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _08059A02 ldr r4, =gUnknown_03005D74 ldrb r0, [r4] cmp r0, 0 beq _08059A02 movs r0, 0x5 bl audio_play ldrb r0, [r4] bl sub_8056BAC movs r0, 0 strb r0, [r4] movs r0, 0 bl sub_8056B74 _08059A02: ldr r0, =gMain ldrh r1, [r0, 0x2E] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _08059A2C ldr r4, =gUnknown_03005D74 ldrb r0, [r4] cmp r0, 0 bne _08059A2C movs r0, 0x5 bl audio_play ldrb r0, [r4] bl sub_8056BAC movs r0, 0x1 strb r0, [r4] movs r0, 0x1 bl sub_8056B74 _08059A2C: ldr r0, =gMain ldrh r1, [r0, 0x2E] movs r2, 0x1 adds r0, r2, 0 ands r0, r1 cmp r0, 0 beq _08059A7A str r2, [sp] movs r0, 0x18 movs r1, 0x8 movs r2, 0x1D movs r3, 0xD bl sub_8056A3C movs r0, 0x5 bl audio_play ldr r0, =gUnknown_03005D74 ldrb r0, [r0] cmp r0, 0 beq _08059A6C movs r0, 0x1 movs r1, 0xE movs r2, 0 bl dp01_build_cmdbuf_x21_a_bb b _08059A76 .pool _08059A6C: movs r0, 0x1 movs r1, 0xD movs r2, 0 bl dp01_build_cmdbuf_x21_a_bb _08059A76: bl dp01_tbl1_exec_completed _08059A7A: ldr r0, =gMain ldrh r1, [r0, 0x2E] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _08059AA0 movs r0, 0x1 str r0, [sp] movs r0, 0x18 movs r1, 0x8 movs r2, 0x1D movs r3, 0xD bl sub_8056A3C movs r0, 0x5 bl audio_play bl dp01_tbl1_exec_completed _08059AA0: add sp, 0x4 pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_80599D4 thumb_func_start sub_8059AAC sub_8059AAC: @ 8059AAC push {r4-r7,lr} ldr r0, =gUnknown_02024064 ldrb r1, [r0] lsls r1, 9 ldr r3, =gUnknown_02023068 ldr r2, =gUnknown_03005D78 movs r0, 0 strb r0, [r2] movs r5, 0 ldr r7, =gUnknown_02022E2C adds r4, r1, r3 adds r6, r2, 0 _08059AC4: lsls r0, r5, 24 lsrs r0, 24 bl battle_menu_cursor_related ldrh r1, [r4] movs r0, 0xD muls r1, r0 ldr r0, =gMoveNames adds r1, r0 adds r0, r7, 0 bl StringCopy adds r1, r5, 0x3 lsls r1, 24 lsrs r1, 24 adds r0, r7, 0 bl battle_show_message_maybe ldrh r0, [r4] cmp r0, 0 beq _08059AF4 ldrb r0, [r6] adds r0, 0x1 strb r0, [r6] _08059AF4: adds r4, 0x2 adds r5, 0x1 cmp r5, 0x3 ble _08059AC4 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_8059AAC thumb_func_start sub_8059B18 sub_8059B18: @ 8059B18 push {r4,lr} ldr r4, =gUnknown_02022E2C ldr r1, =gUnknown_085CCA6F adds r0, r4, 0 bl StringCopy adds r0, r4, 0 movs r1, 0x7 bl battle_show_message_maybe pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_8059B18 thumb_func_start sub_8059B3C sub_8059B3C: @ 8059B3C push {r4-r7,lr} ldr r5, =gUnknown_02023064 ldr r7, =gUnknown_02024064 ldrb r0, [r7] lsls r0, 9 adds r1, r5, 0x2 adds r0, r1 ldrb r0, [r0] cmp r0, 0x1 beq _08059B98 bl sub_814FBAC ldrb r1, [r7] lsls r4, r1, 9 adds r0, r5, 0x4 adds r4, r0 ldr r6, =gUnknown_02022E2C ldr r5, =gUnknown_020244B0 adds r1, r5 adds r0, r4, 0 adds r0, 0x8 ldrb r1, [r1] adds r0, r1 ldrb r1, [r0] adds r0, r6, 0 movs r2, 0x1 movs r3, 0x2 bl ConvertIntToDecimalStringN movs r1, 0xBA strb r1, [r0] adds r0, 0x1 ldrb r1, [r7] adds r1, r5 adds r4, 0xC ldrb r1, [r1] adds r4, r1 ldrb r1, [r4] movs r2, 0x1 movs r3, 0x2 bl ConvertIntToDecimalStringN adds r0, r6, 0 movs r1, 0x9 bl battle_show_message_maybe _08059B98: pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_8059B3C thumb_func_start sub_8059BB0 sub_8059BB0: @ 8059BB0 push {r4-r6,lr} ldr r5, =gUnknown_02024064 ldrb r4, [r5] lsls r4, 9 ldr r0, =gUnknown_02023068 adds r4, r0 ldr r6, =gUnknown_02022E2C ldr r1, =gUnknown_085CCA73 adds r0, r6, 0 bl StringCopy movs r1, 0xFC strb r1, [r0] adds r0, 0x1 movs r1, 0x6 strb r1, [r0] adds r0, 0x1 movs r1, 0x1 strb r1, [r0] adds r0, 0x1 ldr r3, =gBattleMoves ldr r2, =gUnknown_020244B0 ldrb r1, [r5] adds r1, r2 ldrb r1, [r1] lsls r1, 1 adds r4, r1 ldrh r2, [r4] lsls r1, r2, 1 adds r1, r2 lsls r1, 2 adds r1, r3 ldrb r2, [r1, 0x2] lsls r1, r2, 3 subs r1, r2 ldr r2, =gTypeNames adds r1, r2 bl StringCopy adds r0, r6, 0 movs r1, 0xA bl battle_show_message_maybe pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_8059BB0 thumb_func_start battle_menu_cursor_related_2 battle_menu_cursor_related_2: @ 8059C28 push {lr} sub sp, 0x10 adds r3, r0, 0 lsls r3, 24 lsrs r3, 24 lsls r1, 24 lsrs r1, 24 add r2, sp, 0xC adds r0, r1, 0x1 strh r0, [r2] adds r0, r2, 0 adds r1, 0x2 strh r1, [r0, 0x2] movs r1, 0x1 adds r0, r3, 0 ands r0, r1 lsls r2, r0, 3 adds r2, r0 adds r2, 0x1 movs r0, 0x2 ands r3, r0 adds r3, 0x37 str r1, [sp] str r0, [sp, 0x4] movs r0, 0x11 str r0, [sp, 0x8] movs r0, 0 add r1, sp, 0xC bl CopyToBgTilemapBufferRect_ChangePalette movs r0, 0 bl CopyBgTilemapBufferToVram add sp, 0x10 pop {r0} bx r0 thumb_func_end battle_menu_cursor_related_2 thumb_func_start battle_menu_cursor_related battle_menu_cursor_related: @ 8059C70 push {lr} sub sp, 0x10 adds r3, r0, 0 lsls r3, 24 lsrs r3, 24 add r0, sp, 0xC ldr r1, =0x00001016 strh r1, [r0] strh r1, [r0, 0x2] movs r1, 0x1 adds r0, r3, 0 ands r0, r1 lsls r2, r0, 3 adds r2, r0 adds r2, 0x1 movs r0, 0x2 ands r3, r0 adds r3, 0x37 str r1, [sp] str r0, [sp, 0x4] movs r0, 0x11 str r0, [sp, 0x8] movs r0, 0 add r1, sp, 0xC bl CopyToBgTilemapBufferRect_ChangePalette movs r0, 0 bl CopyBgTilemapBufferToVram add sp, 0x10 pop {r0} bx r0 .pool thumb_func_end battle_menu_cursor_related thumb_func_start sub_8059CB4 sub_8059CB4: @ 8059CB4 push {r4,lr} sub sp, 0x10 adds r3, r0, 0 lsls r3, 24 lsrs r3, 24 add r0, sp, 0xC movs r4, 0x1 strh r4, [r0] movs r1, 0x2 strh r1, [r0, 0x2] adds r0, r3, 0 ands r0, r4 lsls r2, r0, 3 subs r2, r0 adds r2, 0x10 lsls r2, 24 lsrs r2, 24 ands r3, r1 adds r3, 0x23 str r4, [sp] str r1, [sp, 0x4] movs r0, 0x11 str r0, [sp, 0x8] movs r0, 0 add r1, sp, 0xC bl CopyToBgTilemapBufferRect_ChangePalette movs r0, 0 bl CopyBgTilemapBufferToVram add sp, 0x10 pop {r4} pop {r0} bx r0 thumb_func_end sub_8059CB4 thumb_func_start sub_8059CF8 sub_8059CF8: @ 8059CF8 push {lr} sub sp, 0x10 adds r3, r0, 0 lsls r3, 24 lsrs r3, 24 add r0, sp, 0xC ldr r1, =0x00001016 strh r1, [r0] strh r1, [r0, 0x2] movs r1, 0x1 adds r0, r3, 0 ands r0, r1 lsls r2, r0, 3 subs r2, r0 adds r2, 0x10 lsls r2, 24 lsrs r2, 24 movs r0, 0x2 ands r3, r0 adds r3, 0x23 str r1, [sp] str r0, [sp, 0x4] movs r0, 0x11 str r0, [sp, 0x8] movs r0, 0 add r1, sp, 0xC bl CopyToBgTilemapBufferRect_ChangePalette movs r0, 0 bl CopyBgTilemapBufferToVram add sp, 0x10 pop {r0} bx r0 .pool thumb_func_end sub_8059CF8 thumb_func_start sub_8059D40 sub_8059D40: @ 8059D40 push {lr} ldr r0, =sub_80A92F8 bl SetMainCallback2 pop {r0} bx r0 .pool thumb_func_end sub_8059D40 thumb_func_start sub_8059D50 sub_8059D50: @ 8059D50 push {lr} ldr r0, =sub_80A92F8 bl SetMainCallback2 pop {r0} bx r0 .pool thumb_func_end sub_8059D50 thumb_func_start sub_8059D60 sub_8059D60: @ 8059D60 push {lr} ldr r0, =gUnknown_020244D0 ldr r2, [r0] ldr r0, =gUnknown_02024064 ldrb r1, [r0] ldr r2, [r2, 0x4] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r1, [r0] movs r0, 0x10 ands r0, r1 cmp r0, 0 bne _08059D82 bl dp01_tbl1_exec_completed _08059D82: pop {r0} bx r0 .pool thumb_func_end sub_8059D60 thumb_func_start bx_8030B2C bx_8030B2C: @ 8059D90 push {lr} ldr r0, =gUnknown_020244D0 ldr r2, [r0] ldr r0, =gUnknown_02024064 ldrb r1, [r0] ldr r2, [r2, 0x4] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r1, [r0] movs r0, 0x20 ands r0, r1 cmp r0, 0 bne _08059DB2 bl dp01_tbl1_exec_completed _08059DB2: pop {r0} bx r0 .pool thumb_func_end bx_8030B2C thumb_func_start b_link_standby_message b_link_standby_message: @ 8059DC0 push {lr} ldr r0, =gBattleTypeFlags ldr r0, [r0] movs r1, 0x2 ands r0, r1 cmp r0, 0 beq _08059DE0 ldr r0, =gUnknown_02022E14 movs r1, 0 strh r1, [r0] ldr r0, =gUnknown_02022E16 strh r1, [r0] ldr r0, =gUnknown_085CCA29 movs r1, 0 bl battle_show_message_maybe _08059DE0: pop {r0} bx r0 .pool thumb_func_end b_link_standby_message thumb_func_start dp01t_00_1_getattr dp01t_00_1_getattr: @ 8059DF4 push {r4-r6,lr} sub sp, 0x100 movs r6, 0 ldr r1, =gUnknown_02023064 ldr r0, =gUnknown_02024064 ldrb r2, [r0] lsls r0, r2, 9 adds r1, 0x2 adds r1, r0, r1 ldrb r0, [r1] cmp r0, 0 bne _08059E2C ldr r0, =gUnknown_0202406E 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 _08059E4E .pool _08059E2C: ldrb r4, [r1] movs r5, 0 _08059E30: movs r0, 0x1 ands r0, r4 cmp r0, 0 beq _08059E46 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 _08059E46: lsrs r4, 1 adds r5, 0x1 cmp r5, 0x5 ble _08059E30 _08059E4E: 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_: @ 8059E68 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, =gUnknown_02023064 ldr r3, =gUnknown_02024064 ldrb r0, [r3] lsls r0, 9 adds r1, r2, 0x1 adds r0, r1 ldrb r0, [r0] cmp r0, 0x3B bls _08059E92 bl _0805A5FE _08059E92: lsls r0, 2 ldr r1, =_08059EA8 adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _08059EA8: .4byte _08059F98 .4byte _0805A1BC .4byte _0805A1CC .4byte _0805A1DC .4byte _0805A244 .4byte _0805A244 .4byte _0805A244 .4byte _0805A244 .4byte _0805A260 .4byte _0805A29C .4byte _0805A29C .4byte _0805A29C .4byte _0805A29C .4byte _0805A5FE .4byte _0805A5FE .4byte _0805A5FE .4byte _0805A5FE .4byte _0805A2B8 .4byte _0805A2C8 .4byte _0805A2F8 .4byte _0805A308 .4byte _0805A318 .4byte _0805A328 .4byte _0805A338 .4byte _0805A348 .4byte _0805A358 .4byte _0805A368 .4byte _0805A378 .4byte _0805A388 .4byte _0805A398 .4byte _0805A3A8 .4byte _0805A3B8 .4byte _0805A408 .4byte _0805A418 .4byte _0805A428 .4byte _0805A438 .4byte _0805A448 .4byte _0805A458 .4byte _0805A468 .4byte _0805A478 .4byte _0805A488 .4byte _0805A4BC .4byte _0805A4CC .4byte _0805A4DC .4byte _0805A4EC .4byte _0805A4FC .4byte _0805A50C .4byte _0805A51C .4byte _0805A52C .4byte _0805A54C .4byte _0805A55C .4byte _0805A56C .4byte _0805A57C .4byte _0805A58C .4byte _0805A59C .4byte _0805A5AC .4byte _0805A5BC .4byte _0805A5CC .4byte _0805A5DC .4byte _0805A5EC _08059F98: movs r0, 0x64 adds r4, r5, 0 muls r4, r0 ldr r0, =gPlayerParty adds r4, r0 adds r0, r4, 0 movs r1, 0xB bl GetMonData mov r1, sp strh r0, [r1] adds r0, r4, 0 movs r1, 0xC bl GetMonData 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 _08059FE4: adds r1, r6, 0 adds r1, 0xD mov r0, r8 bl GetMonData strh r0, [r4] adds r1, r6, 0 adds r1, 0x11 mov r0, r8 bl GetMonData mov r2, r9 adds r1, r2, r6 strb r0, [r1] adds r4, 0x2 adds r6, 0x1 cmp r6, 0x3 ble _08059FE4 movs r0, 0x64 adds r4, r5, 0 muls r4, r0 ldr r0, =gPlayerParty adds r4, r0 adds r0, r4, 0 movs r1, 0x15 bl GetMonData mov r1, r10 strb r0, [r1] adds r0, r4, 0 movs r1, 0x20 bl GetMonData ldr r2, [sp, 0x80] strb r0, [r2] adds r0, r4, 0 movs r1, 0x19 bl GetMonData str r0, [sp, 0x44] adds r0, r4, 0 movs r1, 0x27 bl GetMonData 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 GetMonData mov r3, sp movs r6, 0x1F ands r0, r6 lsls r0, 5 ldrh r2, [r3, 0x14] ldr r1, =0xfffffc1f ands r1, r2 orrs r1, r0 strh r1, [r3, 0x14] adds r0, r4, 0 movs r1, 0x29 bl GetMonData 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 GetMonData movs r1, 0x1F ands r1, r0 lsls r1, 15 ldr r0, [sp, 0x14] ldr r2, =0xfff07fff ands r0, r2 orrs r0, r1 str r0, [sp, 0x14] adds r0, r4, 0 movs r1, 0x2B bl GetMonData mov r3, sp ands r0, r6 lsls r0, 4 ldrh r2, [r3, 0x16] ldr r1, =0xfffffe0f ands r1, r2 orrs r1, r0 strh r1, [r3, 0x16] adds r0, r4, 0 movs r1, 0x2C bl GetMonData 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 GetMonData str r0, [sp, 0x48] adds r0, r4, 0 movs r1, 0x37 bl GetMonData str r0, [sp, 0x4C] adds r0, r4, 0 movs r1, 0x38 bl GetMonData ldr r1, [sp, 0x7C] strb r0, [r1] adds r0, r4, 0 movs r1, 0x39 bl GetMonData mov r1, sp strh r0, [r1, 0x28] adds r0, r4, 0 movs r1, 0x3A bl GetMonData mov r1, sp strh r0, [r1, 0x2C] adds r0, r4, 0 movs r1, 0x3B bl GetMonData mov r1, sp strh r0, [r1, 0x2] adds r0, r4, 0 movs r1, 0x3C bl GetMonData mov r1, sp strh r0, [r1, 0x4] adds r0, r4, 0 movs r1, 0x3D bl GetMonData mov r1, sp strh r0, [r1, 0x6] adds r0, r4, 0 movs r1, 0x3E bl GetMonData mov r1, sp strh r0, [r1, 0x8] adds r0, r4, 0 movs r1, 0x3F bl GetMonData mov r1, sp strh r0, [r1, 0xA] adds r0, r4, 0 movs r1, 0x2D bl GetMonData 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 GetMonData 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 GetMonData str r0, [sp, 0x54] adds r0, r4, 0 movs r1, 0x2 ldr r2, [sp, 0x8C] bl GetMonData ldr r0, [sp, 0x84] ldr r1, [sp, 0x8C] bl StringCopy10 adds r0, r4, 0 movs r1, 0x7 ldr r2, [sp, 0x88] bl GetMonData mov r2, sp movs r6, 0 _0805A19C: adds r0, r7, r6 adds r1, r2, r6 ldrb r1, [r1] strb r1, [r0] adds r6, 0x1 cmp r6, 0x57 bls _0805A19C b _0805A5FE .pool _0805A1BC: movs r0, 0x64 muls r0, r5 ldr r1, =gPlayerParty adds r0, r1 movs r1, 0xB b _0805A536 .pool _0805A1CC: movs r0, 0x64 muls r0, r5 ldr r1, =gPlayerParty adds r0, r1 movs r1, 0xC b _0805A536 .pool _0805A1DC: 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, =gPlayerParty adds r4, r1, r0 mov r8, r9 _0805A1F2: adds r1, r6, 0 adds r1, 0xD adds r0, r4, 0 bl GetMonData mov r1, r8 strh r0, [r1] adds r1, r6, 0 adds r1, 0x11 adds r0, r4, 0 bl GetMonData mov r2, r10 adds r1, r2, r6 strb r0, [r1] movs r0, 0x2 add r8, r0 adds r6, 0x1 cmp r6, 0x3 ble _0805A1F2 movs r0, 0x64 muls r0, r5 ldr r1, =gPlayerParty adds r0, r1 movs r1, 0x15 bl GetMonData mov r1, r9 strb r0, [r1, 0xC] mov r2, r9 movs r6, 0 _0805A230: adds r0, r7, r6 adds r1, r2, r6 ldrb r1, [r1] strb r1, [r0] adds r6, 0x1 cmp r6, 0xF bls _0805A230 b _0805A5FE .pool _0805A244: movs r0, 0x64 muls r0, r5 ldr r1, =gPlayerParty adds r0, r1 ldrb r1, [r3] lsls r1, 9 adds r2, 0x1 adds r1, r2 ldrb r1, [r1] adds r1, 0x9 b _0805A536 .pool _0805A260: movs r6, 0 movs r0, 0x64 adds r4, r5, 0 muls r4, r0 ldr r2, =gPlayerParty mov r8, r2 _0805A26C: adds r1, r6, 0 adds r1, 0x11 mov r2, r8 adds r0, r4, r2 bl GetMonData adds r1, r7, r6 strb r0, [r1] adds r6, 0x1 cmp r6, 0x3 ble _0805A26C movs r0, 0x64 muls r0, r5 ldr r1, =gPlayerParty adds r0, r1 movs r1, 0x15 bl GetMonData adds r1, r7, r6 strb r0, [r1] adds r6, 0x1 b _0805A5FE .pool _0805A29C: movs r0, 0x64 muls r0, r5 ldr r1, =gPlayerParty adds r0, r1 ldrb r1, [r3] lsls r1, 9 adds r2, 0x1 adds r1, r2 ldrb r1, [r1] adds r1, 0x8 b _0805A5F6 .pool _0805A2B8: movs r0, 0x64 muls r0, r5 ldr r1, =gPlayerParty adds r0, r1 movs r1, 0x1 b _0805A2D2 .pool _0805A2C8: movs r0, 0x64 muls r0, r5 ldr r1, =gPlayerParty adds r0, r1 movs r1, 0x19 _0805A2D2: bl GetMonData 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 _0805A5FE .pool _0805A2F8: movs r0, 0x64 muls r0, r5 ldr r1, =gPlayerParty adds r0, r1 movs r1, 0x1A b _0805A5F6 .pool _0805A308: movs r0, 0x64 muls r0, r5 ldr r1, =gPlayerParty adds r0, r1 movs r1, 0x1B b _0805A5F6 .pool _0805A318: movs r0, 0x64 muls r0, r5 ldr r1, =gPlayerParty adds r0, r1 movs r1, 0x1C b _0805A5F6 .pool _0805A328: movs r0, 0x64 muls r0, r5 ldr r1, =gPlayerParty adds r0, r1 movs r1, 0x1D b _0805A5F6 .pool _0805A338: movs r0, 0x64 muls r0, r5 ldr r1, =gPlayerParty adds r0, r1 movs r1, 0x1E b _0805A5F6 .pool _0805A348: movs r0, 0x64 muls r0, r5 ldr r1, =gPlayerParty adds r0, r1 movs r1, 0x1F b _0805A5F6 .pool _0805A358: movs r0, 0x64 muls r0, r5 ldr r1, =gPlayerParty adds r0, r1 movs r1, 0x20 b _0805A5F6 .pool _0805A368: movs r0, 0x64 muls r0, r5 ldr r1, =gPlayerParty adds r0, r1 movs r1, 0x22 b _0805A5F6 .pool _0805A378: movs r0, 0x64 muls r0, r5 ldr r1, =gPlayerParty adds r0, r1 movs r1, 0x23 b _0805A5F6 .pool _0805A388: movs r0, 0x64 muls r0, r5 ldr r1, =gPlayerParty adds r0, r1 movs r1, 0x24 b _0805A5F6 .pool _0805A398: movs r0, 0x64 muls r0, r5 ldr r1, =gPlayerParty adds r0, r1 movs r1, 0x25 b _0805A5F6 .pool _0805A3A8: movs r0, 0x64 muls r0, r5 ldr r1, =gPlayerParty adds r0, r1 movs r1, 0x26 b _0805A5F6 .pool _0805A3B8: movs r0, 0x64 adds r4, r5, 0 muls r4, r0 ldr r0, =gPlayerParty adds r4, r0 adds r0, r4, 0 movs r1, 0x27 bl GetMonData strb r0, [r7] adds r0, r4, 0 movs r1, 0x28 bl GetMonData strb r0, [r7, 0x1] adds r0, r4, 0 movs r1, 0x29 bl GetMonData strb r0, [r7, 0x2] adds r0, r4, 0 movs r1, 0x2A bl GetMonData strb r0, [r7, 0x3] adds r0, r4, 0 movs r1, 0x2B bl GetMonData strb r0, [r7, 0x4] adds r0, r4, 0 movs r1, 0x2C bl GetMonData strb r0, [r7, 0x5] movs r6, 0x6 b _0805A5FE .pool _0805A408: movs r0, 0x64 muls r0, r5 ldr r1, =gPlayerParty adds r0, r1 movs r1, 0x27 b _0805A5F6 .pool _0805A418: movs r0, 0x64 muls r0, r5 ldr r1, =gPlayerParty adds r0, r1 movs r1, 0x28 b _0805A5F6 .pool _0805A428: movs r0, 0x64 muls r0, r5 ldr r1, =gPlayerParty adds r0, r1 movs r1, 0x29 b _0805A5F6 .pool _0805A438: movs r0, 0x64 muls r0, r5 ldr r1, =gPlayerParty adds r0, r1 movs r1, 0x2A b _0805A5F6 .pool _0805A448: movs r0, 0x64 muls r0, r5 ldr r1, =gPlayerParty adds r0, r1 movs r1, 0x2B b _0805A5F6 .pool _0805A458: movs r0, 0x64 muls r0, r5 ldr r1, =gPlayerParty adds r0, r1 movs r1, 0x2C b _0805A5F6 .pool _0805A468: movs r0, 0x64 muls r0, r5 ldr r1, =gPlayerParty adds r0, r1 movs r1, 0 b _0805A492 .pool _0805A478: movs r0, 0x64 muls r0, r5 ldr r1, =gPlayerParty adds r0, r1 movs r1, 0x9 b _0805A536 .pool _0805A488: movs r0, 0x64 muls r0, r5 ldr r1, =gPlayerParty adds r0, r1 movs r1, 0x37 _0805A492: bl GetMonData 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 _0805A5FE .pool _0805A4BC: movs r0, 0x64 muls r0, r5 ldr r1, =gPlayerParty adds r0, r1 movs r1, 0x38 b _0805A5F6 .pool _0805A4CC: movs r0, 0x64 muls r0, r5 ldr r1, =gPlayerParty adds r0, r1 movs r1, 0x39 b _0805A536 .pool _0805A4DC: movs r0, 0x64 muls r0, r5 ldr r1, =gPlayerParty adds r0, r1 movs r1, 0x3A b _0805A536 .pool _0805A4EC: movs r0, 0x64 muls r0, r5 ldr r1, =gPlayerParty adds r0, r1 movs r1, 0x3B b _0805A536 .pool _0805A4FC: movs r0, 0x64 muls r0, r5 ldr r1, =gPlayerParty adds r0, r1 movs r1, 0x3C b _0805A536 .pool _0805A50C: movs r0, 0x64 muls r0, r5 ldr r1, =gPlayerParty adds r0, r1 movs r1, 0x3D b _0805A536 .pool _0805A51C: movs r0, 0x64 muls r0, r5 ldr r1, =gPlayerParty adds r0, r1 movs r1, 0x3E b _0805A536 .pool _0805A52C: movs r0, 0x64 muls r0, r5 ldr r1, =gPlayerParty adds r0, r1 movs r1, 0x3F _0805A536: bl GetMonData lsls r0, 16 lsrs r0, 16 strb r0, [r7] lsrs r0, 8 strb r0, [r7, 0x1] movs r6, 0x2 b _0805A5FE .pool _0805A54C: movs r0, 0x64 muls r0, r5 ldr r1, =gPlayerParty adds r0, r1 movs r1, 0x16 b _0805A5F6 .pool _0805A55C: movs r0, 0x64 muls r0, r5 ldr r1, =gPlayerParty adds r0, r1 movs r1, 0x17 b _0805A5F6 .pool _0805A56C: movs r0, 0x64 muls r0, r5 ldr r1, =gPlayerParty adds r0, r1 movs r1, 0x18 b _0805A5F6 .pool _0805A57C: movs r0, 0x64 muls r0, r5 ldr r1, =gPlayerParty adds r0, r1 movs r1, 0x21 b _0805A5F6 .pool _0805A58C: movs r0, 0x64 muls r0, r5 ldr r1, =gPlayerParty adds r0, r1 movs r1, 0x2F b _0805A5F6 .pool _0805A59C: movs r0, 0x64 muls r0, r5 ldr r1, =gPlayerParty adds r0, r1 movs r1, 0x30 b _0805A5F6 .pool _0805A5AC: movs r0, 0x64 muls r0, r5 ldr r1, =gPlayerParty adds r0, r1 movs r1, 0x32 b _0805A5F6 .pool _0805A5BC: movs r0, 0x64 muls r0, r5 ldr r1, =gPlayerParty adds r0, r1 movs r1, 0x33 b _0805A5F6 .pool _0805A5CC: movs r0, 0x64 muls r0, r5 ldr r1, =gPlayerParty adds r0, r1 movs r1, 0x34 b _0805A5F6 .pool _0805A5DC: movs r0, 0x64 muls r0, r5 ldr r1, =gPlayerParty adds r0, r1 movs r1, 0x35 b _0805A5F6 .pool _0805A5EC: movs r0, 0x64 muls r0, r5 ldr r1, =gPlayerParty adds r0, r1 movs r1, 0x36 _0805A5F6: bl GetMonData strb r0, [r7] movs r6, 0x1 _0805A5FE: 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 .pool thumb_func_end dp01_getattr_by_ch1_for_player_pokemon_ thumb_func_start sub_805A614 sub_805A614: @ 805A614 push {r4-r7,lr} sub sp, 0x58 ldr r2, =gUnknown_0202406E ldr r5, =gUnknown_02024064 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, =gUnknown_02023064 lsls r1, 9 adds r0, r3, 0x1 adds r0, r1, r0 ldrb r2, [r0] ldr r0, =gPlayerParty 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 _0805A66A adds r3, r0, 0 _0805A650: 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 _0805A650 _0805A66A: 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 .pool thumb_func_end sub_805A614 thumb_func_start dp01t_02_1_setattr dp01t_02_1_setattr: @ 805A69C push {r4,r5,lr} ldr r1, =gUnknown_02023064 ldr r0, =gUnknown_02024064 ldrb r2, [r0] lsls r0, r2, 9 adds r1, 0x2 adds r1, r0, r1 ldrb r0, [r1] cmp r0, 0 bne _0805A6CC ldr r0, =gUnknown_0202406E lsls r1, r2, 1 adds r1, r0 ldrb r0, [r1] bl dp01_setattr_by_ch1_for_player_pokemon b _0805A6EA .pool _0805A6CC: ldrb r4, [r1] movs r5, 0 _0805A6D0: movs r0, 0x1 ands r0, r4 cmp r0, 0 beq _0805A6DE adds r0, r5, 0 bl dp01_setattr_by_ch1_for_player_pokemon _0805A6DE: lsrs r4, 1 adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0x5 bls _0805A6D0 _0805A6EA: 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: @ 805A6F4 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, =gUnknown_02024064 ldrb r0, [r0] lsls r0, 9 ldr r2, =gUnknown_02023067 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 _0805A720 bl _0805B0BA _0805A720: lsls r0, 2 ldr r1, =_0805A738 adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _0805A738: .4byte _0805A828 .4byte _0805A9C0 .4byte _0805A9E0 .4byte _0805AA00 .4byte _0805AA58 .4byte _0805AA58 .4byte _0805AA58 .4byte _0805AA58 .4byte _0805AA80 .4byte _0805AAE4 .4byte _0805AAE4 .4byte _0805AAE4 .4byte _0805AAE4 .4byte _0805B0BA .4byte _0805B0BA .4byte _0805B0BA .4byte _0805B0BA .4byte _0805AB14 .4byte _0805AB34 .4byte _0805AB54 .4byte _0805AB74 .4byte _0805AB94 .4byte _0805ABB4 .4byte _0805ABD4 .4byte _0805ABF4 .4byte _0805AC14 .4byte _0805AC34 .4byte _0805AC54 .4byte _0805AC74 .4byte _0805AC94 .4byte _0805ACB4 .4byte _0805ACD4 .4byte _0805AD44 .4byte _0805AD64 .4byte _0805AD84 .4byte _0805ADA4 .4byte _0805ADC4 .4byte _0805ADE4 .4byte _0805AE04 .4byte _0805AE24 .4byte _0805AE44 .4byte _0805AE64 .4byte _0805AE84 .4byte _0805AEA4 .4byte _0805AEC4 .4byte _0805AEE4 .4byte _0805AF04 .4byte _0805AF24 .4byte _0805AF44 .4byte _0805AF64 .4byte _0805AF84 .4byte _0805AFA4 .4byte _0805AFC4 .4byte _0805AFE4 .4byte _0805B004 .4byte _0805B024 .4byte _0805B044 .4byte _0805B064 .4byte _0805B084 .4byte _0805B0A4 _0805A828: movs r0, 0x64 adds r4, r5, 0 muls r4, r0 ldr r0, =gPlayerParty 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 _0805A88E: 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 _0805A88E movs r0, 0x64 adds r4, r5, 0 muls r4, r0 ldr r0, =gPlayerParty 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 _0805B0BA .pool _0805A9C0: movs r0, 0x64 muls r0, r5 ldr r1, =gPlayerParty adds r0, r1 ldr r1, =gUnknown_02024064 ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0xB bl pokemon_setattr b _0805B0BA .pool _0805A9E0: movs r0, 0x64 muls r0, r5 ldr r1, =gPlayerParty adds r0, r1 ldr r1, =gUnknown_02024064 ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0xC bl pokemon_setattr b _0805B0BA .pool _0805AA00: 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, =gPlayerParty adds r7, r1, r0 adds r6, r3, 0 adds r6, 0x8 adds r4, r3, 0 _0805AA1A: 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 _0805AA1A movs r0, 0x64 muls r0, r5 ldr r1, =gPlayerParty adds r0, r1 movs r1, 0x15 mov r2, r9 bl pokemon_setattr b _0805B0BA .pool _0805AA58: movs r0, 0x64 muls r0, r5 ldr r1, =gPlayerParty adds r0, r1 ldr r3, =gUnknown_02023064 ldr r1, =gUnknown_02024064 ldrb r2, [r1] lsls r2, 9 adds r1, r3, 0x1 adds r1, r2, r1 ldrb r1, [r1] adds r1, 0x9 b _0805AAFC .pool _0805AA80: movs r0, 0x64 adds r4, r5, 0 muls r4, r0 ldr r0, =gPlayerParty adds r4, r0 ldr r5, =gUnknown_02024064 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 _0805B0BA .pool _0805AAE4: movs r0, 0x64 muls r0, r5 ldr r1, =gPlayerParty adds r0, r1 ldr r3, =gUnknown_02023064 ldr r1, =gUnknown_02024064 ldrb r2, [r1] lsls r2, 9 adds r1, r3, 0x1 adds r1, r2, r1 ldrb r1, [r1] adds r1, 0x8 _0805AAFC: adds r3, 0x3 adds r2, r3 bl pokemon_setattr b _0805B0BA .pool _0805AB14: movs r0, 0x64 muls r0, r5 ldr r1, =gPlayerParty adds r0, r1 ldr r1, =gUnknown_02024064 ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x1 bl pokemon_setattr b _0805B0BA .pool _0805AB34: movs r0, 0x64 muls r0, r5 ldr r1, =gPlayerParty adds r0, r1 ldr r1, =gUnknown_02024064 ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x19 bl pokemon_setattr b _0805B0BA .pool _0805AB54: movs r0, 0x64 muls r0, r5 ldr r1, =gPlayerParty adds r0, r1 ldr r1, =gUnknown_02024064 ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x1A bl pokemon_setattr b _0805B0BA .pool _0805AB74: movs r0, 0x64 muls r0, r5 ldr r1, =gPlayerParty adds r0, r1 ldr r1, =gUnknown_02024064 ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x1B bl pokemon_setattr b _0805B0BA .pool _0805AB94: movs r0, 0x64 muls r0, r5 ldr r1, =gPlayerParty adds r0, r1 ldr r1, =gUnknown_02024064 ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x1C bl pokemon_setattr b _0805B0BA .pool _0805ABB4: movs r0, 0x64 muls r0, r5 ldr r1, =gPlayerParty adds r0, r1 ldr r1, =gUnknown_02024064 ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x1D bl pokemon_setattr b _0805B0BA .pool _0805ABD4: movs r0, 0x64 muls r0, r5 ldr r1, =gPlayerParty adds r0, r1 ldr r1, =gUnknown_02024064 ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x1E bl pokemon_setattr b _0805B0BA .pool _0805ABF4: movs r0, 0x64 muls r0, r5 ldr r1, =gPlayerParty adds r0, r1 ldr r1, =gUnknown_02024064 ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x1F bl pokemon_setattr b _0805B0BA .pool _0805AC14: movs r0, 0x64 muls r0, r5 ldr r1, =gPlayerParty adds r0, r1 ldr r1, =gUnknown_02024064 ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x20 bl pokemon_setattr b _0805B0BA .pool _0805AC34: movs r0, 0x64 muls r0, r5 ldr r1, =gPlayerParty adds r0, r1 ldr r1, =gUnknown_02024064 ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x22 bl pokemon_setattr b _0805B0BA .pool _0805AC54: movs r0, 0x64 muls r0, r5 ldr r1, =gPlayerParty adds r0, r1 ldr r1, =gUnknown_02024064 ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x23 bl pokemon_setattr b _0805B0BA .pool _0805AC74: movs r0, 0x64 muls r0, r5 ldr r1, =gPlayerParty adds r0, r1 ldr r1, =gUnknown_02024064 ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x24 bl pokemon_setattr b _0805B0BA .pool _0805AC94: movs r0, 0x64 muls r0, r5 ldr r1, =gPlayerParty adds r0, r1 ldr r1, =gUnknown_02024064 ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x25 bl pokemon_setattr b _0805B0BA .pool _0805ACB4: movs r0, 0x64 muls r0, r5 ldr r1, =gPlayerParty adds r0, r1 ldr r1, =gUnknown_02024064 ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x26 bl pokemon_setattr b _0805B0BA .pool _0805ACD4: movs r0, 0x64 adds r4, r5, 0 muls r4, r0 ldr r0, =gPlayerParty adds r4, r0 ldr r5, =gUnknown_02024064 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 _0805ADF4 .pool _0805AD44: movs r0, 0x64 muls r0, r5 ldr r1, =gPlayerParty adds r0, r1 ldr r1, =gUnknown_02024064 ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x27 bl pokemon_setattr b _0805B0BA .pool _0805AD64: movs r0, 0x64 muls r0, r5 ldr r1, =gPlayerParty adds r0, r1 ldr r1, =gUnknown_02024064 ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x28 bl pokemon_setattr b _0805B0BA .pool _0805AD84: movs r0, 0x64 muls r0, r5 ldr r1, =gPlayerParty adds r0, r1 ldr r1, =gUnknown_02024064 ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x29 bl pokemon_setattr b _0805B0BA .pool _0805ADA4: movs r0, 0x64 muls r0, r5 ldr r1, =gPlayerParty adds r0, r1 ldr r1, =gUnknown_02024064 ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x2A bl pokemon_setattr b _0805B0BA .pool _0805ADC4: movs r0, 0x64 muls r0, r5 ldr r1, =gPlayerParty adds r0, r1 ldr r1, =gUnknown_02024064 ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x2B bl pokemon_setattr b _0805B0BA .pool _0805ADE4: movs r0, 0x64 muls r0, r5 ldr r1, =gPlayerParty adds r0, r1 ldr r1, =gUnknown_02024064 ldrb r2, [r1] lsls r2, 9 adds r2, r7 _0805ADF4: movs r1, 0x2C bl pokemon_setattr b _0805B0BA .pool _0805AE04: movs r0, 0x64 muls r0, r5 ldr r1, =gPlayerParty adds r0, r1 ldr r1, =gUnknown_02024064 ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0 bl pokemon_setattr b _0805B0BA .pool _0805AE24: movs r0, 0x64 muls r0, r5 ldr r1, =gPlayerParty adds r0, r1 ldr r1, =gUnknown_02024064 ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x9 bl pokemon_setattr b _0805B0BA .pool _0805AE44: movs r0, 0x64 muls r0, r5 ldr r1, =gPlayerParty adds r0, r1 ldr r1, =gUnknown_02024064 ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x37 bl pokemon_setattr b _0805B0BA .pool _0805AE64: movs r0, 0x64 muls r0, r5 ldr r1, =gPlayerParty adds r0, r1 ldr r1, =gUnknown_02024064 ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x38 bl pokemon_setattr b _0805B0BA .pool _0805AE84: movs r0, 0x64 muls r0, r5 ldr r1, =gPlayerParty adds r0, r1 ldr r1, =gUnknown_02024064 ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x39 bl pokemon_setattr b _0805B0BA .pool _0805AEA4: movs r0, 0x64 muls r0, r5 ldr r1, =gPlayerParty adds r0, r1 ldr r1, =gUnknown_02024064 ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x3A bl pokemon_setattr b _0805B0BA .pool _0805AEC4: movs r0, 0x64 muls r0, r5 ldr r1, =gPlayerParty adds r0, r1 ldr r1, =gUnknown_02024064 ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x3B bl pokemon_setattr b _0805B0BA .pool _0805AEE4: movs r0, 0x64 muls r0, r5 ldr r1, =gPlayerParty adds r0, r1 ldr r1, =gUnknown_02024064 ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x3C bl pokemon_setattr b _0805B0BA .pool _0805AF04: movs r0, 0x64 muls r0, r5 ldr r1, =gPlayerParty adds r0, r1 ldr r1, =gUnknown_02024064 ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x3D bl pokemon_setattr b _0805B0BA .pool _0805AF24: movs r0, 0x64 muls r0, r5 ldr r1, =gPlayerParty adds r0, r1 ldr r1, =gUnknown_02024064 ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x3E bl pokemon_setattr b _0805B0BA .pool _0805AF44: movs r0, 0x64 muls r0, r5 ldr r1, =gPlayerParty adds r0, r1 ldr r1, =gUnknown_02024064 ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x3F bl pokemon_setattr b _0805B0BA .pool _0805AF64: movs r0, 0x64 muls r0, r5 ldr r1, =gPlayerParty adds r0, r1 ldr r1, =gUnknown_02024064 ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x16 bl pokemon_setattr b _0805B0BA .pool _0805AF84: movs r0, 0x64 muls r0, r5 ldr r1, =gPlayerParty adds r0, r1 ldr r1, =gUnknown_02024064 ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x17 bl pokemon_setattr b _0805B0BA .pool _0805AFA4: movs r0, 0x64 muls r0, r5 ldr r1, =gPlayerParty adds r0, r1 ldr r1, =gUnknown_02024064 ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x18 bl pokemon_setattr b _0805B0BA .pool _0805AFC4: movs r0, 0x64 muls r0, r5 ldr r1, =gPlayerParty adds r0, r1 ldr r1, =gUnknown_02024064 ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x21 bl pokemon_setattr b _0805B0BA .pool _0805AFE4: movs r0, 0x64 muls r0, r5 ldr r1, =gPlayerParty adds r0, r1 ldr r1, =gUnknown_02024064 ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x2F bl pokemon_setattr b _0805B0BA .pool _0805B004: movs r0, 0x64 muls r0, r5 ldr r1, =gPlayerParty adds r0, r1 ldr r1, =gUnknown_02024064 ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x30 bl pokemon_setattr b _0805B0BA .pool _0805B024: movs r0, 0x64 muls r0, r5 ldr r1, =gPlayerParty adds r0, r1 ldr r1, =gUnknown_02024064 ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x32 bl pokemon_setattr b _0805B0BA .pool _0805B044: movs r0, 0x64 muls r0, r5 ldr r1, =gPlayerParty adds r0, r1 ldr r1, =gUnknown_02024064 ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x33 bl pokemon_setattr b _0805B0BA .pool _0805B064: movs r0, 0x64 muls r0, r5 ldr r1, =gPlayerParty adds r0, r1 ldr r1, =gUnknown_02024064 ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x34 bl pokemon_setattr b _0805B0BA .pool _0805B084: movs r0, 0x64 muls r0, r5 ldr r1, =gPlayerParty adds r0, r1 ldr r1, =gUnknown_02024064 ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x35 bl pokemon_setattr b _0805B0BA .pool _0805B0A4: movs r0, 0x64 muls r0, r5 ldr r1, =gPlayerParty adds r0, r1 ldr r1, =gUnknown_02024064 ldrb r2, [r1] lsls r2, 9 adds r2, r7 movs r1, 0x36 bl pokemon_setattr _0805B0BA: ldr r2, =gUnknown_0202406E ldr r0, =gUnknown_02024064 ldrb r1, [r0] lsls r0, r1, 1 adds r0, r2 ldrh r2, [r0] movs r0, 0x64 muls r0, r2 ldr r2, =gPlayerParty adds r0, r2 bl sub_805E990 add sp, 0x34 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end dp01_setattr_by_ch1_for_player_pokemon thumb_func_start sub_805B0F0 sub_805B0F0: @ 805B0F0 push {r4-r7,lr} ldr r1, =gUnknown_0202406E ldr r7, =gUnknown_02024064 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, =gUnknown_02023064 lsls r2, 9 adds r0, r4, 0x1 adds r0, r2, r0 ldrb r0, [r0] ldr r1, =gPlayerParty adds r0, r1 adds r5, r3, r0 movs r3, 0 adds r0, r4, 0x2 adds r2, r0 ldrb r2, [r2] cmp r3, r2 bcs _0805B148 adds r6, r4, 0 adds r2, r7, 0 adds r4, r0, 0 _0805B126: 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 _0805B126 _0805B148: bl dp01_tbl1_exec_completed pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_805B0F0 thumb_func_start sub_805B164 sub_805B164: @ 805B164 push {r4,lr} ldr r2, =gUnknown_0202406E ldr r4, =gUnknown_02024064 ldrb r1, [r4] lsls r0, r1, 1 adds r0, r2 ldrh r2, [r0] movs r0, 0x64 muls r0, r2 ldr r2, =gPlayerParty adds r0, r2 bl sub_805DD7C ldr r2, =gUnknown_02020630 ldr r0, =gUnknown_020241E4 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, =gUnknown_03005D60 ldrb r0, [r4] lsls r0, 2 adds r0, r1 ldr r1, =bx_0802E404 str r1, [r0] pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_805B164 thumb_func_start sub_805B1CC sub_805B1CC: @ 805B1CC push {r4-r6,lr} ldr r5, =gUnknown_02024064 ldrb r0, [r5] ldr r4, =gUnknown_02023064 lsls r1, r0, 9 adds r6, r4, 0x2 adds r1, r6 ldrb r1, [r1] bl sub_805EF84 ldr r2, =gUnknown_0202406E 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, =gPlayerParty adds r0, r2 bl sub_805DD7C ldr r1, =gUnknown_020244AC ldrb r0, [r5] adds r0, r1 strb r4, [r0] ldr r1, =gUnknown_020244B0 ldrb r0, [r5] adds r0, r1 strb r4, [r0] ldrb r0, [r5] lsls r1, r0, 9 adds r1, r6 ldrb r1, [r1] bl sub_805B258 ldr r1, =gUnknown_03005D60 ldrb r0, [r5] lsls r0, 2 adds r0, r1 ldr r1, =sub_805902C str r1, [r0] pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_805B1CC thumb_func_start sub_805B258 sub_805B258: @ 805B258 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_805EF84 ldr r0, =gUnknown_0202406E lsls r2, r6, 1 adds r2, r0 ldr r0, =gUnknown_02023064 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, =gPlayerParty adds r0, r1 movs r1, 0xB bl GetMonData mov r8, r0 lsls r0, 16 lsrs r0, 16 mov r8, r0 ldr r0, =sub_805D714 bl CreateInvisibleSpriteWithCallback ldr r1, =gUnknown_03005D7C 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 sub_806A068 ldr r0, =gUnknown_0202499C mov r10, r0 adds r0, r6, 0 movs r1, 0x2 bl sub_80A5C6C adds r5, r0, 0 lsls r5, 24 lsrs r5, 24 adds r0, r6, 0 bl sub_80A6138 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 adds r0, r6, 0 bl sub_80A82E4 adds r3, r0, 0 lsls r3, 24 lsrs r3, 24 mov r0, r10 adds r1, r5, 0 adds r2, r4, 0 bl AddObjectToFront ldr r4, =gUnknown_020241E4 adds r4, r6, r4 strb r0, [r4] ldr r5, =gUnknown_02020630 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] mov r0, r9 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 strh r6, [r0, 0x32] 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, =gUnknown_020244E4 adds r6, r1 ldrb r1, [r6] bl StartObjectImageAnim 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, =DummyObjectCallback str r1, [r0] movs r0, 0 movs r1, 0xFF bl sub_80753E8 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 .pool thumb_func_end sub_805B258 thumb_func_start sub_805B3D4 sub_805B3D4: @ 805B3D4 push {r4-r6,lr} ldr r1, =gUnknown_02023064 ldr r6, =gUnknown_02024064 ldrb r2, [r6] lsls r0, r2, 9 adds r1, 0x1 adds r0, r1 ldrb r3, [r0] cmp r3, 0 bne _0805B41C ldr r0, =gUnknown_020244D0 ldr r0, [r0] ldr r1, [r0, 0x4] lsls r0, r2, 1 adds r0, r2 lsls r0, 2 adds r0, r1 strb r3, [r0, 0x4] ldr r1, =gUnknown_03005D60 ldrb r0, [r6] lsls r0, 2 adds r0, r1 ldr r1, =sub_805B464 str r1, [r0] b _0805B452 .pool _0805B41C: ldr r5, =gUnknown_020241E4 adds r0, r2, r5 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r4, =gUnknown_02020630 adds r0, r4 bl obj_free_rotscale_entry ldrb r0, [r6] adds r0, r5 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 bl RemoveObjectAndFreeTiles ldr r1, =gUnknown_03005D70 ldrb r0, [r6] adds r0, r1 ldrb r0, [r0] bl sub_8072984 bl dp01_tbl1_exec_completed _0805B452: pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_805B3D4 thumb_func_start sub_805B464 sub_805B464: @ 805B464 push {r4-r6,lr} ldr r6, =gUnknown_020244D0 ldr r4, [r6] ldr r5, =gUnknown_02024064 ldrb r2, [r5] ldr r1, [r4, 0x4] lsls r0, r2, 1 adds r0, r2 lsls r0, 2 adds r3, r0, r1 ldrb r0, [r3, 0x4] cmp r0, 0 beq _0805B48C cmp r0, 0x1 beq _0805B4BA b _0805B4E2 .pool _0805B48C: ldr r1, [r4] lsls r0, r2, 2 adds r0, r1 ldrb r1, [r0] movs r0, 0x4 ands r0, r1 cmp r0, 0 beq _0805B4A6 adds r0, r2, 0 adds r1, r2, 0 movs r3, 0x5 bl move_anim_start_t4 _0805B4A6: ldr r0, [r6] ldrb r1, [r5] ldr r2, [r0, 0x4] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r2 movs r1, 0x1 strb r1, [r0, 0x4] b _0805B4E2 _0805B4BA: ldrb r1, [r3] movs r0, 0x40 ands r0, r1 lsls r0, 24 lsrs r0, 24 cmp r0, 0 bne _0805B4E2 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, =gUnknown_03005D60 ldrb r0, [r5] lsls r0, 2 adds r0, r1 ldr r1, =sub_8059744 str r1, [r0] _0805B4E2: pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_805B464 thumb_func_start sub_805B4F0 sub_805B4F0: @ 805B4F0 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} ldr r0, =gBattleTypeFlags ldr r0, [r0] movs r1, 0x2 ands r0, r1 cmp r0, 0 beq _0805B5B4 bl link_get_multiplayer_id ldr r5, =gUnknown_020229E8 lsls r0, 24 lsrs r0, 24 lsls r1, r0, 3 subs r1, r0 lsls r1, 2 adds r1, r5 movs r4, 0xFF ldrb r0, [r1] cmp r0, 0x4 beq _0805B538 bl link_get_multiplayer_id lsls r0, 24 lsrs r0, 24 lsls r1, r0, 3 subs r1, r0 lsls r1, 2 adds r1, r5 ldrh r1, [r1] adds r0, r4, 0 ands r0, r1 cmp r0, 0x5 bne _0805B558 _0805B538: bl link_get_multiplayer_id lsls r0, 24 lsrs r0, 24 lsls r1, r0, 3 subs r1, r0 lsls r1, 2 adds r1, r5 ldrb r0, [r1, 0x13] adds r4, r0, 0x2 b _0805B5BA .pool _0805B558: bl link_get_multiplayer_id lsls r0, 24 lsrs r0, 24 lsls r1, r0, 3 subs r1, r0 lsls r1, 2 adds r1, r5 ldrh r1, [r1] adds r0, r4, 0 ands r0, r1 cmp r0, 0x2 beq _0805B58A bl link_get_multiplayer_id lsls r0, 24 lsrs r0, 24 lsls r1, r0, 3 subs r1, r0 lsls r1, 2 adds r1, r5 ldrh r0, [r1] ands r4, r0 cmp r4, 0x1 bne _0805B5A0 _0805B58A: bl link_get_multiplayer_id lsls r0, 24 lsrs r0, 24 lsls r1, r0, 3 subs r1, r0 lsls r1, 2 adds r1, r5 ldrb r0, [r1, 0x13] adds r4, r0, 0x4 b _0805B5BA _0805B5A0: bl link_get_multiplayer_id lsls r0, 24 lsrs r0, 24 lsls r1, r0, 3 subs r1, r0 lsls r1, 2 adds r1, r5 ldrb r4, [r1, 0x13] b _0805B5BA _0805B5B4: ldr r0, =gSaveBlock2Ptr ldr r0, [r0] ldrb r4, [r0, 0x8] _0805B5BA: ldr r0, =gBattleTypeFlags ldr r1, [r0] movs r2, 0x40 ands r1, r2 adds r5, r0, 0 cmp r1, 0 beq _0805B63C ldr r0, =gUnknown_02024064 ldrb r0, [r0] bl battle_get_per_side_status movs r1, 0x2 ands r1, r0 movs r0, 0x20 mov r9, r0 cmp r1, 0 beq _0805B5E0 movs r1, 0x5A mov r9, r1 _0805B5E0: ldr r0, [r5] movs r1, 0x80 lsls r1, 15 ands r0, r1 cmp r0, 0 beq _0805B618 ldr r0, =gUnknown_02038BCE ldrh r1, [r0] ldr r0, =0x00000c03 cmp r1, r0 beq _0805B618 movs r0, 0x5A mov r9, r0 ldr r1, =gUnknown_083054E0 b _0805B642 .pool _0805B618: ldr r1, =gUnknown_08305D2C lsls r0, r4, 2 adds r0, r1 ldrb r1, [r0] movs r0, 0x8 subs r0, r1 lsls r0, 18 movs r1, 0xA0 lsls r1, 15 adds r0, r1 lsrs r7, r0, 16 ldr r5, =gBattleTypeFlags b _0805B656 .pool _0805B63C: movs r0, 0x50 mov r9, r0 ldr r1, =gUnknown_08305D2C _0805B642: lsls r0, r4, 2 adds r0, r1 ldrb r1, [r0] movs r0, 0x8 subs r0, r1 lsls r0, 18 movs r1, 0xA0 lsls r1, 15 adds r0, r1 lsrs r7, r0, 16 _0805B656: ldr r0, [r5] movs r1, 0x80 lsls r1, 15 ands r0, r1 cmp r0, 0 bne _0805B664 b _0805B794 _0805B664: ldr r0, =gUnknown_02038BCE ldrh r1, [r0] ldr r0, =0x00000c03 cmp r1, r0 bne _0805B670 b _0805B794 _0805B670: ldr r0, =gSaveBlock2Ptr ldr r0, [r0] ldrb r0, [r0, 0x8] bl sub_806F000 lsls r0, 16 lsrs r4, r0, 16 adds r5, r4, 0 ldr r6, =gUnknown_02024064 ldrb r1, [r6] adds r0, r5, 0 bl sub_805DF38 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_806A1C0 ldr r0, =gUnknown_0202499C mov r8, r0 lsls r4, r7, 16 asrs r4, 16 ldrb r0, [r6] bl sub_80A82E4 adds r3, r0, 0 lsls r3, 24 lsrs r3, 24 mov r0, r8 mov r1, r9 adds r2, r4, 0 bl AddObjectToFront ldr r4, =gUnknown_020241E4 ldrb r1, [r6] adds r1, r4 strb r0, [r1] ldr r0, =gTrainerFrontPicPaletteTable lsls r5, 3 adds r5, r0 ldrh r0, [r5, 0x4] bl IndexOfObjectPaletteTag ldr r5, =gUnknown_02020630 ldrb r1, [r6] adds r1, r4 ldrb r1, [r1] lsls r2, r1, 4 adds r2, r1 lsls r2, 2 adds r2, r5 lsls r0, 4 ldrb r3, [r2, 0x5] movs r1, 0xF ands r1, r3 orrs r1, r0 strb r1, [r2, 0x5] ldrb r0, [r6] adds r0, r4 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 movs r1, 0xF0 strh r1, [r0, 0x24] ldrb r0, [r6] adds r0, r4 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 movs r1, 0x30 strh r1, [r0, 0x26] ldrb r0, [r6] adds r0, r4 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 ldr r1, =0x0000fffe strh r1, [r0, 0x2E] ldrb r0, [r6] adds r0, r4 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, =sub_805D7AC str r1, [r0] ldrb r0, [r6] adds r0, r4 ldrb r0, [r0] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r5 ldrb r2, [r1, 0x1] movs r0, 0x4 negs r0, r0 ands r0, r2 strb r0, [r1, 0x1] ldrb r0, [r6] adds r0, r4 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 adds r0, 0x3F ldrb r1, [r0] movs r2, 0x1 orrs r1, r2 strb r1, [r0] b _0805B82A .pool _0805B794: ldr r5, =gUnknown_02024064 ldrb r1, [r5] adds r0, r4, 0 bl sub_805DF84 ldrb r0, [r5] bl battle_get_per_side_status adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 bl template_build_for_pokemon_or_trainer ldr r6, =gUnknown_0202499C mov r8, r9 lsls r4, r7, 16 asrs r4, 16 ldrb r0, [r5] bl sub_80A82E4 adds r3, r0, 0 lsls r3, 24 lsrs r3, 24 adds r0, r6, 0 mov r1, r8 adds r2, r4, 0 bl AddObjectToFront ldr r6, =gUnknown_020241E4 ldrb r1, [r5] adds r1, r6 strb r0, [r1] ldr r4, =gUnknown_02020630 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 movs r1, 0xF0 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 ldr r1, =0x0000fffe 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, =sub_805D7AC str r1, [r0] _0805B82A: ldr r1, =gUnknown_03005D60 ldr r0, =gUnknown_02024064 ldrb r0, [r0] lsls r0, 2 adds r0, r1 ldr r1, =sub_8058844 str r1, [r0] pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_805B4F0 thumb_func_start dp01t_08_1_8032428 dp01t_08_1_8032428: @ 805B864 push {r4-r6,lr} ldr r0, =gBattleTypeFlags ldr r0, [r0] movs r1, 0x2 ands r0, r1 cmp r0, 0 beq _0805B920 bl link_get_multiplayer_id ldr r5, =gUnknown_020229E8 lsls r0, 24 lsrs r0, 24 lsls r1, r0, 3 subs r1, r0 lsls r1, 2 adds r1, r5 movs r4, 0xFF ldrb r0, [r1] cmp r0, 0x4 beq _0805B8A6 bl link_get_multiplayer_id lsls r0, 24 lsrs r0, 24 lsls r1, r0, 3 subs r1, r0 lsls r1, 2 adds r1, r5 ldrh r1, [r1] adds r0, r4, 0 ands r0, r1 cmp r0, 0x5 bne _0805B8C4 _0805B8A6: bl link_get_multiplayer_id lsls r0, 24 lsrs r0, 24 lsls r1, r0, 3 subs r1, r0 lsls r1, 2 adds r1, r5 ldrb r0, [r1, 0x13] adds r4, r0, 0x2 b _0805B926 .pool _0805B8C4: bl link_get_multiplayer_id lsls r0, 24 lsrs r0, 24 lsls r1, r0, 3 subs r1, r0 lsls r1, 2 adds r1, r5 ldrh r1, [r1] adds r0, r4, 0 ands r0, r1 cmp r0, 0x2 beq _0805B8F6 bl link_get_multiplayer_id lsls r0, 24 lsrs r0, 24 lsls r1, r0, 3 subs r1, r0 lsls r1, 2 adds r1, r5 ldrh r0, [r1] ands r4, r0 cmp r4, 0x1 bne _0805B90C _0805B8F6: bl link_get_multiplayer_id lsls r0, 24 lsrs r0, 24 lsls r1, r0, 3 subs r1, r0 lsls r1, 2 adds r1, r5 ldrb r0, [r1, 0x13] adds r4, r0, 0x4 b _0805B926 _0805B90C: bl link_get_multiplayer_id lsls r0, 24 lsrs r0, 24 lsls r1, r0, 3 subs r1, r0 lsls r1, 2 adds r1, r5 ldrb r4, [r1, 0x13] b _0805B926 _0805B920: ldr r0, =gSaveBlock2Ptr ldr r0, [r0] ldrb r4, [r0, 0x8] _0805B926: ldr r5, =gUnknown_02024064 ldrb r1, [r5] adds r0, r4, 0 bl sub_805DF84 ldrb r0, [r5] bl battle_get_per_side_status adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 bl template_build_for_pokemon_or_trainer ldr r0, =gUnknown_0202499C ldr r1, =gUnknown_08305D2C lsls r4, 2 adds r4, r1 ldrb r1, [r4] 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 AddObjectToFront ldr r6, =gUnknown_020241E4 ldrb r1, [r5] adds r1, r6 strb r0, [r1] ldr r4, =gUnknown_02020630 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, =0x0000ffa0 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, =sub_805D7AC str r1, [r0] ldr r1, =gUnknown_03005D60 ldrb r0, [r5] lsls r0, 2 adds r0, r1 ldr r1, =sub_805887C str r1, [r0] pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end dp01t_08_1_8032428 thumb_func_start sub_805B9F8 sub_805B9F8: @ 805B9F8 push {r4-r6,lr} ldr r5, =gUnknown_020241E4 ldr r6, =gUnknown_02024064 ldrb r0, [r6] adds r0, r5 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r4, =gUnknown_02020630 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, =0x0000ffd8 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, =sub_80A6EEC 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, =DummyObjectCallback 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 StartObjectImageAnim ldr r1, =gUnknown_03005D60 ldrb r0, [r6] lsls r0, 2 adds r0, r1 ldr r1, =bx_802F7A0 str r1, [r0] pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_805B9F8 thumb_func_start sub_805BAB8 sub_805BAB8: @ 805BAB8 push {r4-r6,lr} ldr r6, =gUnknown_020244D0 ldr r4, [r6] ldr r5, =gUnknown_02024064 ldrb r2, [r5] ldr r0, [r4, 0x4] lsls r1, r2, 1 adds r1, r2 lsls r1, 2 adds r3, r1, r0 ldrb r0, [r3, 0x4] cmp r0, 0 bne _0805BB0C ldr r1, [r4] lsls r0, r2, 2 adds r0, r1 ldrb r1, [r0] movs r0, 0x4 ands r0, r1 cmp r0, 0 beq _0805BAEC adds r0, r2, 0 adds r1, r2, 0 movs r3, 0x5 bl move_anim_start_t4 _0805BAEC: ldr r0, [r6] ldrb r1, [r5] ldr r2, [r0, 0x4] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r1, [r0, 0x4] adds r1, 0x1 strb r1, [r0, 0x4] b _0805BB82 .pool _0805BB0C: ldrb r1, [r3] movs r0, 0x40 ands r0, r1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0 bne _0805BB82 strb r4, [r3, 0x4] ldr r2, =gUnknown_0202406E ldrb r1, [r5] lsls r0, r1, 1 adds r0, r2 ldrh r2, [r0] movs r0, 0x64 muls r0, r2 ldr r2, =gPlayerParty adds r0, r2 bl sub_805E990 movs r1, 0x40 negs r1, r1 movs r0, 0x10 bl audio_play_and_stuff ldr r2, =gUnknown_02020630 ldr r3, =gUnknown_020241E4 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, =sub_8039C00 str r1, [r0] ldr r1, =gUnknown_03005D60 ldrb r0, [r5] lsls r0, 2 adds r0, r1 ldr r1, =sub_80596A8 str r1, [r0] _0805BB82: pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_805BAB8 thumb_func_start sub_805BBA4 sub_805BBA4: @ 805BBA4 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 pal_fade_maybe bl dp01_tbl1_exec_completed add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_805BBA4 thumb_func_start sub_805BBC4 sub_805BBC4: @ 805BBC4 push {r4,r5,lr} ldr r0, =gUnknown_020244D0 ldr r0, [r0] ldr r1, [r0, 0x8] movs r0, 0x4 strb r0, [r1, 0x8] ldr r1, =gUnknown_020244B9 movs r0, 0x1 strb r0, [r1] ldr r5, =gUnknown_02024064 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, =gUnknown_03005D60 ldrb r0, [r5] lsls r0, 2 adds r0, r1 ldr r1, =bx_wait_t1 str r1, [r0] pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_805BBC4 thumb_func_start sub_805BC18 sub_805BC18: @ 805BC18 push {r4,r5,lr} ldr r1, =gUnknown_02023064 ldr r5, =gUnknown_02024064 ldrb r0, [r5] lsls r0, 9 adds r1, 0x1 adds r0, r1 ldrb r1, [r0] ldr r0, =gUnknown_020244D0 ldr r0, [r0] ldr r0, [r0, 0x8] strb r1, [r0, 0x8] ldr r1, =gUnknown_020244B9 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, =gUnknown_03005D60 ldrb r0, [r5] lsls r0, 2 adds r0, r1 ldr r1, =bx_wait_t1 str r1, [r0] pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_805BC18 thumb_func_start sub_805BC78 sub_805BC78: @ 805BC78 push {lr} ldr r1, =gUnknown_02023064 ldr r0, =gUnknown_02024064 ldrb r0, [r0] lsls r0, 9 adds r1, 0x1 adds r0, r1 ldrb r0, [r0] cmp r0, 0 beq _0805BC96 _0805BC8C: subs r0, 0x1 lsls r0, 24 lsrs r0, 24 cmp r0, 0 bne _0805BC8C _0805BC96: bl dp01_tbl1_exec_completed pop {r0} bx r0 .pool thumb_func_end sub_805BC78 thumb_func_start dp01t_0F_1_move_anim dp01t_0F_1_move_anim: @ 805BCA8 push {r4-r7,lr} mov r7, r8 push {r7} ldr r5, =gUnknown_02024064 ldrb r0, [r5] bl mplay_80342A4 lsls r0, 24 cmp r0, 0 beq _0805BCBE b _0805BDE4 _0805BCBE: ldr r0, =gUnknown_02023064 mov r12, r0 ldrb r1, [r5] lsls r1, 9 adds r0, 0x1 adds r0, r1, r0 ldrb r6, [r0] mov r0, r12 adds r0, 0x2 adds r0, r1, r0 ldrb r0, [r0] lsls r0, 8 orrs r6, r0 ldr r0, =gUnknown_02038432 mov r8, r0 mov r0, r12 adds r0, 0x3 adds r1, r0 ldrb r0, [r1] mov r1, r8 strb r0, [r1] ldr r3, =gUnknown_02038408 ldrb r1, [r5] lsls r1, 9 mov r0, r12 adds r0, 0x4 adds r0, r1, r0 ldrb r2, [r0] mov r0, r12 adds r0, 0x5 adds r1, r0 ldrb r0, [r1] lsls r0, 8 orrs r2, r0 strh r2, [r3] ldr r3, =gUnknown_02038404 ldrb r1, [r5] lsls r1, 9 mov r0, r12 adds r0, 0x6 adds r0, r1, r0 ldrb r2, [r0] mov r0, r12 adds r0, 0x7 adds r0, r1, r0 ldrb r0, [r0] lsls r0, 8 orrs r2, r0 mov r0, r12 adds r0, 0x8 adds r0, r1, r0 ldrb r0, [r0] lsls r0, 16 orrs r2, r0 mov r0, r12 adds r0, 0x9 adds r1, r0 ldrb r0, [r1] lsls r0, 24 orrs r2, r0 str r2, [r3] ldr r2, =gUnknown_0203841A ldrb r0, [r5] lsls r0, 9 mov r1, r12 adds r1, 0xA adds r0, r1 ldrb r0, [r0] strb r0, [r2] ldr r4, =gUnknown_0203841C ldrb r1, [r5] lsls r1, 9 mov r0, r12 adds r0, 0xC adds r0, r1, r0 ldrb r2, [r0] mov r0, r12 adds r0, 0xD adds r1, r0 ldrb r0, [r1] lsls r0, 8 orrs r2, r0 strh r2, [r4] ldr r7, =gUnknown_02038400 ldrb r1, [r5] lsls r1, 9 mov r0, r12 adds r0, 0x10 adds r1, r0 str r1, [r7] ldr r2, =gUnknown_020244BC ldrb r0, [r5] lsls r0, 2 adds r0, r2 ldr r1, [r1] str r1, [r0] mov r0, r8 ldrb r1, [r0] adds r0, r6, 0 bl sub_805DB8C lsls r0, 24 lsrs r3, r0, 24 cmp r3, 0 beq _0805BDBC bl dp01_tbl1_exec_completed b _0805BDE4 .pool _0805BDBC: ldr r0, =gUnknown_020244D0 ldr r0, [r0] ldrb r1, [r5] ldr r2, [r0, 0x4] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r2 strb r3, [r0, 0x4] ldr r1, =gUnknown_03005D60 ldrb r0, [r5] lsls r0, 2 adds r0, r1 ldr r1, =bx_move_anim_1 str r1, [r0] ldrh r1, [r4] ldr r2, [r7] adds r0, r6, 0 bl sub_817E0FC _0805BDE4: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end dp01t_0F_1_move_anim thumb_func_start bx_move_anim_1 bx_move_anim_1: @ 805BDFC push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} ldr r2, =gUnknown_02023064 ldr r6, =gUnknown_02024064 ldrb r3, [r6] lsls r1, r3, 9 adds r0, r2, 0x1 mov r10, r0 adds r0, r1, r0 ldrb r4, [r0] adds r5, r2, 0x2 mov r9, r5 adds r0, r1, r5 ldrb r0, [r0] lsls r0, 8 orrs r4, r0 adds r2, 0xB adds r1, r2 ldrb r1, [r1] mov r8, r1 ldr r7, =gUnknown_020244D0 ldr r5, [r7] ldr r1, [r5, 0x4] lsls r0, r3, 1 adds r0, r3 lsls r0, 2 adds r0, r1 ldrb r2, [r0, 0x4] cmp r2, 0x1 beq _0805BE94 cmp r2, 0x1 bgt _0805BE54 cmp r2, 0 beq _0805BE5E b _0805BF70 .pool _0805BE54: cmp r2, 0x2 beq _0805BEBE cmp r2, 0x3 beq _0805BF34 b _0805BF70 _0805BE5E: ldr r1, [r5] lsls r0, r3, 2 adds r1, r0, r1 ldrb r2, [r1] movs r0, 0xC ands r0, r2 cmp r0, 0x4 bne _0805BE80 movs r0, 0x8 orrs r0, r2 strb r0, [r1] ldrb r2, [r6] adds r0, r2, 0 adds r1, r2, 0 movs r3, 0x5 bl move_anim_start_t4 _0805BE80: ldr r0, [r7] ldrb r1, [r6] ldr r2, [r0, 0x4] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r2 movs r1, 0x1 strb r1, [r0, 0x4] b _0805BF70 _0805BE94: ldrb r1, [r0] movs r0, 0x40 ands r0, r1 cmp r0, 0 bne _0805BF70 movs r0, 0 bl sub_805EB9C adds r0, r4, 0 bl move_anim_start_t1 ldr r0, [r7] ldrb r1, [r6] ldr r2, [r0, 0x4] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r2 movs r1, 0x2 strb r1, [r0, 0x4] b _0805BF70 _0805BEBE: ldr r0, =gUnknown_020383F8 ldr r0, [r0] bl _call_via_r0 ldr r0, =gUnknown_020383FD ldrb r0, [r0] cmp r0, 0 bne _0805BF70 movs r0, 0x1 bl sub_805EB9C ldr r0, [r7] ldrb r2, [r6] ldr r1, [r0] lsls r0, r2, 2 adds r0, r1 ldrb r1, [r0] movs r0, 0x4 ands r0, r1 cmp r0, 0 beq _0805BF0C mov r0, r8 cmp r0, 0x1 bhi _0805BF0C adds r0, r2, 0 adds r1, r2, 0 movs r3, 0x6 bl move_anim_start_t4 ldr r0, [r7] ldrb r1, [r6] ldr r0, [r0] lsls r1, 2 adds r1, r0 ldrb r2, [r1] movs r0, 0x9 negs r0, r0 ands r0, r2 strb r0, [r1] _0805BF0C: ldr r0, =gUnknown_020244D0 ldr r2, [r0] ldr r0, =gUnknown_02024064 ldrb r1, [r0] ldr r2, [r2, 0x4] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r2 movs r1, 0x3 strb r1, [r0, 0x4] b _0805BF70 .pool _0805BF34: ldrb r1, [r0] movs r0, 0x40 ands r0, r1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0 bne _0805BF70 bl sub_805E394 ldrb r0, [r6] lsls r2, r0, 9 mov r3, r10 adds r1, r2, r3 ldrb r1, [r1] add r2, r9 ldrb r2, [r2] lsls r2, 8 orrs r1, r2 bl sub_805E94C ldr r0, [r7] ldrb r1, [r6] ldr r2, [r0, 0x4] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r2 strb r4, [r0, 0x4] bl dp01_tbl1_exec_completed _0805BF70: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end bx_move_anim_1 thumb_func_start sub_805BF80 sub_805BF80: @ 805BF80 push {r4,r5,lr} ldr r0, =gUnknown_02022E14 movs r1, 0 strh r1, [r0] ldr r0, =gUnknown_02022E16 strh r1, [r0] ldr r5, =gUnknown_02024064 ldrb r4, [r5] lsls r4, 9 ldr r0, =gUnknown_02023066 adds r4, r0 ldrh r0, [r4] bl battle_pick_message ldr r0, =gUnknown_02022E2C movs r1, 0 bl battle_show_message_maybe ldr r1, =gUnknown_03005D60 ldrb r0, [r5] lsls r0, 2 adds r0, r1 ldr r1, =sub_80597B4 str r1, [r0] ldrh r0, [r4] bl sub_817C95C ldrb r0, [r5] ldrh r1, [r4] bl sub_81A57E4 pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_805BF80 thumb_func_start dp01t_11_1_message_for_player_only dp01t_11_1_message_for_player_only: @ 805BFE0 push {lr} ldr r0, =gUnknown_02024064 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 bne _0805BFFC bl sub_805BF80 b _0805C000 .pool _0805BFFC: bl dp01_tbl1_exec_completed _0805C000: pop {r0} bx r0 thumb_func_end dp01t_11_1_message_for_player_only thumb_func_start sub_805C004 sub_805C004: @ 805C004 push {lr} bl IsDma3ManagerBusyWithBgCopy lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0 bne _0805C02A ldr r0, =gUnknown_02022E14 strh r1, [r0] ldr r1, =gUnknown_02022E16 movs r0, 0xA0 strh r0, [r1] ldr r1, =gUnknown_03005D60 ldr r0, =gUnknown_02024064 ldrb r0, [r0] lsls r0, 2 adds r0, r1 ldr r1, =sub_8057588 str r1, [r0] _0805C02A: pop {r0} bx r0 .pool thumb_func_end sub_805C004 thumb_func_start dp01t_12_6_battle_menu dp01t_12_6_battle_menu: @ 805C044 push {r4,lr} ldr r1, =gUnknown_03005D60 ldr r0, =gUnknown_02024064 ldrb r0, [r0] lsls r0, 2 adds r0, r1 ldr r1, =sub_805C004 str r1, [r0] bl sub_817F2A8 ldr r0, =gUnknown_085CCA3A movs r1, 0x2 bl battle_show_message_maybe movs r4, 0 _0805C062: lsls r0, r4, 24 lsrs r0, 24 bl sub_8059CF8 adds r4, 0x1 cmp r4, 0x3 ble _0805C062 ldr r1, =gUnknown_020244AC ldr r0, =gUnknown_02024064 ldrb r0, [r0] adds r0, r1 ldrb r0, [r0] movs r1, 0 bl sub_8059CB4 ldr r0, =gUnknown_085CC9F3 bl get_battle_strings_ ldr r0, =gUnknown_02022E2C movs r1, 0x1 bl battle_show_message_maybe pop {r4} pop {r0} bx r0 .pool thumb_func_end dp01t_12_6_battle_menu thumb_func_start sub_805C0B0 sub_805C0B0: @ 805C0B0 push {r4,lr} sub sp, 0x4 ldr r4, =gUnknown_02024064 ldrb r0, [r4] bl battle_side_get_owner lsls r0, 24 lsrs r0, 24 cmp r0, 0 bne _0805C108 str r0, [sp] movs r0, 0x18 movs r1, 0x8 movs r2, 0x1D movs r3, 0xD bl sub_8056A3C ldr r0, =gUnknown_085CCABB movs r1, 0xC bl battle_show_message_maybe ldr r1, =gUnknown_03005D74 movs r0, 0x1 strb r0, [r1] movs r0, 0x1 bl sub_8056B74 ldr r1, =gUnknown_03005D60 ldrb r0, [r4] lsls r0, 2 adds r0, r1 ldr r1, =sub_80599D4 str r1, [r0] b _0805C10C .pool _0805C108: bl dp01_tbl1_exec_completed _0805C10C: add sp, 0x4 pop {r4} pop {r0} bx r0 thumb_func_end sub_805C0B0 thumb_func_start sub_805C114 sub_805C114: @ 805C114 push {lr} bl IsDma3ManagerBusyWithBgCopy lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0 bne _0805C13E ldr r0, =gUnknown_02022E14 strh r1, [r0] ldr r1, =gUnknown_02022E16 movs r2, 0xA0 lsls r2, 1 adds r0, r2, 0 strh r0, [r1] ldr r1, =gUnknown_03005D60 ldr r0, =gUnknown_02024064 ldrb r0, [r0] lsls r0, 2 adds r0, r1 ldr r1, =sub_8057BFC str r1, [r0] _0805C13E: pop {r0} bx r0 .pool thumb_func_end sub_805C114 thumb_func_start sub_805C158 sub_805C158: @ 805C158 push {lr} ldr r0, =gUnknown_02024064 ldrb r1, [r0] ldr r0, =gUnknown_0202449C ldr r0, [r0] adds r1, r0 movs r0, 0xA6 lsls r0, 2 adds r1, r0 ldrb r0, [r1] subs r0, 0x1 strb r0, [r1] lsls r0, 24 cmp r0, 0 bne _0805C194 ldr r1, =gUnknown_0203BD30 ldr r0, =gRngValue ldr r0, [r0] str r0, [r1] bl sub_805D19C adds r2, r0, 0 lsls r2, 16 lsrs r2, 16 movs r0, 0x1 movs r1, 0xA bl dp01_build_cmdbuf_x21_a_bb bl dp01_tbl1_exec_completed _0805C194: pop {r0} bx r0 .pool thumb_func_end sub_805C158 thumb_func_start dp01t_14_5_move_menu_pokedude dp01t_14_5_move_menu_pokedude: @ 805C1A8 push {lr} ldr r0, =gBattleTypeFlags ldr r0, [r0] movs r1, 0x80 lsls r1, 10 ands r0, r1 cmp r0, 0 beq _0805C1EC ldr r2, =gUnknown_02024064 ldrb r0, [r2] ldr r1, =gUnknown_0202449C ldr r1, [r1] adds r0, r1 movs r1, 0xA6 lsls r1, 2 adds r0, r1 movs r1, 0x8 strb r1, [r0] ldr r1, =gUnknown_03005D60 ldrb r0, [r2] lsls r0, 2 adds r0, r1 ldr r1, =sub_805C158 b _0805C1FC .pool _0805C1EC: bl sub_805C210 ldr r1, =gUnknown_03005D60 ldr r0, =gUnknown_02024064 ldrb r0, [r0] lsls r0, 2 adds r0, r1 ldr r1, =sub_805C114 _0805C1FC: str r1, [r0] pop {r0} bx r0 .pool thumb_func_end dp01t_14_5_move_menu_pokedude thumb_func_start sub_805C210 sub_805C210: @ 805C210 push {lr} bl sub_8059AAC ldr r1, =gUnknown_03005D74 movs r0, 0xFF strb r0, [r1] ldr r1, =gUnknown_020244B0 ldr r0, =gUnknown_02024064 ldrb r0, [r0] adds r0, r1 ldrb r0, [r0] movs r1, 0 bl battle_menu_cursor_related_2 bl sub_8059B18 bl sub_8059B3C bl sub_8059BB0 pop {r0} bx r0 .pool thumb_func_end sub_805C210 thumb_func_start sub_805C248 sub_805C248: @ 805C248 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 pal_fade_maybe ldr r1, =gUnknown_03005D60 ldr r2, =gUnknown_02024064 ldrb r0, [r2] lsls r0, 2 adds r0, r1 ldr r1, =sub_80598A4 str r1, [r0] ldr r1, =gUnknown_020244B8 ldrb r0, [r2] strb r0, [r1] movs r3, 0 ldr r5, =gUnknown_0203CF00 ldr r4, =gUnknown_02023064 _0805C276: 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 _0805C276 add sp, 0x4 pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_805C248 thumb_func_start sub_805C2AC sub_805C2AC: @ 805C2AC push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x4 movs r3, 0 ldr r0, =gUnknown_0203CF00 mov r12, r0 ldr r1, =gUnknown_02023064 mov r8, r1 ldr r2, =gUnknown_02024064 ldr r7, =gBattleTypeFlags mov r6, r12 mov r5, r8 adds r4, r2, 0 _0805C2C8: adds r0, r3, r6 ldrb r1, [r4] lsls r1, 9 adds r1, 0x4 adds r1, r3, r1 adds r1, r5 ldrb r1, [r1] strb r1, [r0] adds r3, 0x1 cmp r3, 0x2 ble _0805C2C8 ldr r0, [r7] movs r1, 0x80 lsls r1, 11 ands r0, r1 cmp r0, 0 beq _0805C330 ldrb r3, [r2] lsls r0, r3, 9 mov r1, r8 adds r1, 0x1 adds r0, r1 ldrb r1, [r0] movs r0, 0xF ands r0, r1 cmp r0, 0x2 beq _0805C330 ldr r1, =gUnknown_0202406E lsls r0, r3, 1 adds r0, r1 ldrb r1, [r0] adds r1, 0x1 lsls r1, 24 lsrs r1, 24 movs r0, 0x1 mov r2, r12 bl dp01_build_cmdbuf_x22_a_three_bytes bl dp01_tbl1_exec_completed b _0805C3BC .pool _0805C330: ldr r0, =TaskDummy movs r1, 0xFF bl CreateTask ldr r3, =gUnknown_03005D7C ldr r4, =gUnknown_02024064 ldrb r1, [r4] adds r1, r3 movs r2, 0 mov r8, r2 strb r0, [r1] ldr r5, =gTasks ldrb r2, [r4] adds r3, r2, r3 ldrb r0, [r3] lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r5 ldr r5, =gUnknown_02023064 lsls r2, 9 adds r6, r5, 0x1 adds r2, r6 ldrb r2, [r2] movs r0, 0xF ands r0, r2 strh r0, [r1, 0x8] ldr r3, =gUnknown_0202449C ldr r1, [r3] adds r1, 0x49 ldrb r0, [r4] lsls r0, 9 adds r0, r6 ldrb r0, [r0] lsrs r0, 4 strb r0, [r1] ldr r2, [r3] adds r2, 0x8B ldrb r0, [r4] lsls r0, 9 adds r1, r5, 0x2 adds r0, r1 ldrb r0, [r0] strb r0, [r2] ldr r1, [r3] adds r1, 0xB0 ldrb r0, [r4] lsls r0, 9 adds r5, 0x3 adds r0, r5 ldrb r0, [r0] strb r0, [r1] movs r0, 0x1 negs r0, r0 mov r1, r8 str r1, [sp] movs r1, 0 movs r2, 0 movs r3, 0x10 bl pal_fade_maybe ldr r1, =gUnknown_03005D60 ldrb r0, [r4] lsls r0, 2 adds r0, r1 ldr r1, =sub_80597CC str r1, [r0] ldr r1, =gUnknown_020244B8 ldrb r0, [r4] strb r0, [r1] _0805C3BC: add sp, 0x4 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_805C2AC thumb_func_start sub_805C3EC sub_805C3EC: @ 805C3EC push {lr} sub sp, 0x4 bl sub_805EA60 movs r0, 0x1 negs r0, r0 movs r1, 0 str r1, [sp] movs r1, 0x2 movs r2, 0 movs r3, 0x10 bl pal_fade_maybe bl dp01_tbl1_exec_completed add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_805C3EC thumb_func_start sub_805C410 sub_805C410: @ 805C410 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, =gUnknown_02023064 ldr r0, =gUnknown_02024064 mov r9, r0 ldrb r1, [r0] lsls r1, 9 adds r0, r3, 0x2 adds r0, r1, r0 ldrb r2, [r0] adds r3, 0x3 adds r1, r3 ldrb r0, [r1] lsls r0, 8 orrs r2, r0 lsls r2, 16 asrs r7, r2, 16 cmp r7, 0 ble _0805C44A ldr r1, =gUnknown_0203CD70 ldr r0, [r1] adds r0, r7 str r0, [r1] _0805C44A: ldr r0, =0x00007fff cmp r7, r0 beq _0805C4B4 ldr r6, =gUnknown_0202406E mov r1, r9 ldrb r0, [r1] lsls r0, 1 adds r0, r6 ldrh r0, [r0] movs r5, 0x64 muls r0, r5 ldr r4, =gPlayerParty adds r0, r4 movs r1, 0x3A bl GetMonData mov r8, r0 mov r2, r9 ldrb r0, [r2] lsls r0, 1 adds r0, r6 ldrh r0, [r0] muls r0, r5 adds r0, r4 movs r1, 0x39 bl GetMonData adds r3, r0, 0 mov r1, r9 ldrb r0, [r1] ldr r1, =gUnknown_03005D70 adds r1, r0, r1 ldrb r1, [r1] str r7, [sp] mov r2, r8 bl sub_807294C b _0805C4F2 .pool _0805C4B4: ldr r1, =gUnknown_0202406E mov r2, r9 ldrb r0, [r2] lsls r0, 1 adds r0, r1 ldrh r1, [r0] movs r0, 0x64 muls r0, r1 ldr r1, =gPlayerParty adds r0, r1 movs r1, 0x3A bl GetMonData adds r2, r0, 0 mov r1, r9 ldrb r0, [r1] ldr r4, =gUnknown_03005D70 adds r1, r0, r4 ldrb r1, [r1] str r7, [sp] movs r3, 0 bl sub_807294C mov r2, r9 ldrb r0, [r2] adds r0, r4 ldrb r0, [r0] movs r1, 0 movs r2, 0 bl heathbar_draw_hp _0805C4F2: ldr r1, =gUnknown_03005D60 ldr r0, =gUnknown_02024064 ldrb r0, [r0] lsls r0, 2 adds r0, r1 ldr r1, =bx_t1_healthbar_update str r1, [r0] add sp, 0x4 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_805C410 thumb_func_start sub_805C528 sub_805C528: @ 805C528 push {r4-r7,lr} ldr r5, =gUnknown_02023064 ldr r6, =gUnknown_02024064 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, =gPlayerParty adds r4, r1, r0 adds r0, r4, 0 movs r1, 0x38 bl GetMonData cmp r0, 0x63 bls _0805C560 bl dp01_tbl1_exec_completed b _0805C5AC .pool _0805C560: movs r0, 0x1 bl load_gfxc_health_bar adds r0, r4, 0 movs r1, 0xB bl GetMonData 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, =sub_80591B8 movs r1, 0xA bl CreateTask lsls r0, 24 lsrs r0, 24 ldr r2, =gTasks lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 strh r7, [r1, 0x8] strh r4, [r1, 0xA] ldrb r0, [r6] strh r0, [r1, 0xC] ldr r1, =gUnknown_03005D60 ldrb r0, [r6] lsls r0, 2 adds r0, r1 ldr r1, =nullsub_21 str r1, [r0] _0805C5AC: pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_805C528 thumb_func_start sub_805C5C4 sub_805C5C4: @ 805C5C4 push {r4,lr} ldr r4, =gUnknown_02024064 ldrb r0, [r4] bl mplay_80342A4 lsls r0, 24 cmp r0, 0 bne _0805C618 ldr r0, =gUnknown_03005D70 ldrb r1, [r4] adds r0, r1, r0 ldrb r0, [r0] ldr r2, =gUnknown_0202406E lsls r1, 1 adds r1, r2 ldrh r2, [r1] movs r1, 0x64 muls r1, r2 ldr r2, =gPlayerParty adds r1, r2 movs r2, 0x9 bl healthbar_draw_field_maybe ldrb r2, [r4] ldr r0, =gUnknown_020244D0 ldr r0, [r0] ldr r0, [r0, 0x4] lsls r1, r2, 1 adds r1, r2 lsls r1, 2 adds r1, r0 ldrb r2, [r1] movs r0, 0x11 negs r0, r0 ands r0, r2 strb r0, [r1] ldr r1, =gUnknown_03005D60 ldrb r0, [r4] lsls r0, 2 adds r0, r1 ldr r1, =sub_8059D60 str r1, [r0] _0805C618: pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_805C5C4 thumb_func_start sub_805C63C sub_805C63C: @ 805C63C push {r4,r5,lr} ldr r5, =gUnknown_02024064 ldrb r0, [r5] bl mplay_80342A4 lsls r0, 24 cmp r0, 0 bne _0805C68C ldr r4, =gUnknown_02023064 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, =gUnknown_03005D60 ldrb r0, [r5] lsls r0, 2 adds r0, r1 ldr r1, =sub_8059D60 str r1, [r0] _0805C68C: pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_805C63C thumb_func_start sub_805C6A4 sub_805C6A4: @ 805C6A4 push {r4-r6,lr} mov r6, r8 push {r6} sub sp, 0x4 ldr r0, =gUnknown_0202406E mov r8, r0 ldr r4, =gUnknown_02024064 ldrb r0, [r4] lsls r0, 1 add r0, r8 ldrh r0, [r0] movs r6, 0x64 muls r0, r6 ldr r5, =gPlayerParty adds r0, r5 movs r1, 0x37 bl GetMonData ldr r2, =gUnknown_02023064 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 .pool thumb_func_end sub_805C6A4 thumb_func_start sub_805C710 sub_805C710: @ 805C710 push {lr} bl dp01_tbl1_exec_completed pop {r0} bx r0 thumb_func_end sub_805C710 thumb_func_start sub_805C71C sub_805C71C: @ 805C71C push {r4,r5,lr} ldr r3, =gUnknown_02023064 ldr r0, =gUnknown_02024064 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 _0805C78C ldr r0, =0x040000d4 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 _0805C7B8 .pool _0805C78C: ldr r3, =0x040000d4 str r2, [r3] str r5, [r3, 0x4] ldr r0, =0x80000800 str r0, [r3, 0x8] ldr r0, [r3, 0x8] movs r0, 0x80 lsls r0, 5 adds r2, r0 adds r5, r0 ldr r1, =0xfffff000 adds r4, r1 cmp r4, r0 bhi _0805C78C 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] _0805C7B8: bl dp01_tbl1_exec_completed pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_805C71C thumb_func_start sub_805C7D0 sub_805C7D0: @ 805C7D0 push {lr} ldr r2, =gUnknown_02023064 ldr r0, =gUnknown_02024064 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 song_play_for_text bl dp01_tbl1_exec_completed pop {r0} bx r0 .pool thumb_func_end sub_805C7D0 thumb_func_start sub_805C800 sub_805C800: @ 805C800 push {lr} bl dp01_tbl1_exec_completed pop {r0} bx r0 thumb_func_end sub_805C800 thumb_func_start sub_805C80C sub_805C80C: @ 805C80C 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_805C80C thumb_func_start sub_805C820 sub_805C820: @ 805C820 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_805C820 thumb_func_start sub_805C834 sub_805C834: @ 805C834 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_805C834 thumb_func_start sub_805C848 sub_805C848: @ 805C848 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_805C848 thumb_func_start sub_805C85C sub_805C85C: @ 805C85C push {lr} ldr r2, =gUnknown_02022D0C ldrb r1, [r2] movs r0, 0x80 negs r0, r0 ands r0, r1 strb r0, [r2] bl dp01_tbl1_exec_completed pop {r0} bx r0 .pool thumb_func_end sub_805C85C thumb_func_start sub_805C878 sub_805C878: @ 805C878 push {lr} ldr r3, =gUnknown_02022D0C ldr r1, =gUnknown_02023064 ldr r0, =gUnknown_02024064 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 .pool thumb_func_end sub_805C878 thumb_func_start sub_805C8B0 sub_805C8B0: @ 805C8B0 push {lr} ldr r2, =gUnknown_02022D0C ldrb r1, [r2] movs r0, 0x7F ands r0, r1 strb r0, [r2] bl dp01_tbl1_exec_completed pop {r0} bx r0 .pool thumb_func_end sub_805C8B0 thumb_func_start sub_805C8C8 sub_805C8C8: @ 805C8C8 push {lr} ldr r3, =gUnknown_02022D0C 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 .pool thumb_func_end sub_805C8C8 thumb_func_start dp01t_29_1_blink dp01t_29_1_blink: @ 805C8F0 push {r4,lr} ldr r3, =gUnknown_02020630 ldr r2, =gUnknown_020241E4 ldr r4, =gUnknown_02024064 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 _0805C924 bl dp01_tbl1_exec_completed b _0805C94E .pool _0805C924: ldr r1, =gUnknown_020244B9 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_80769F4 ldr r1, =gUnknown_03005D60 ldrb r0, [r4] lsls r0, 2 adds r0, r1 ldr r1, =bx_blink_t1 str r1, [r0] _0805C94E: pop {r4} pop {r0} bx r0 .pool thumb_func_end dp01t_29_1_blink thumb_func_start sub_805C960 sub_805C960: @ 805C960 push {lr} bl dp01_tbl1_exec_completed pop {r0} bx r0 thumb_func_end sub_805C960 thumb_func_start sub_805C96C sub_805C96C: @ 805C96C push {r4,lr} ldr r4, =gUnknown_02024064 ldrb r0, [r4] bl battle_side_get_owner lsls r0, 24 movs r3, 0x3F cmp r0, 0 bne _0805C980 movs r3, 0xC0 _0805C980: ldr r2, =gUnknown_02023064 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 .pool thumb_func_end sub_805C96C thumb_func_start sub_805C9B0 sub_805C9B0: @ 805C9B0 push {r4,r5,lr} ldr r4, =gUnknown_02023064 ldr r5, =gUnknown_02024064 ldrb r0, [r5] lsls r3, r0, 9 adds r0, r4, 0x3 adds r0, r3, r0 ldrb r0, [r0] cmp r0, 0 beq _0805C9EC bl sub_805EA60 ldrb r1, [r5] lsls r1, 9 adds r0, r4, 0x1 adds r0, r1, r0 ldrb r0, [r0] adds r2, r4, 0x2 adds r1, r2 ldrb r1, [r1] lsls r1, 8 orrs r0, r1 bl song_play_for_text b _0805CA00 .pool _0805C9EC: adds r0, r4, 0x1 adds r0, r3, r0 ldrb r0, [r0] adds r1, r4, 0x2 adds r1, r3, r1 ldrb r1, [r1] lsls r1, 8 orrs r0, r1 bl fanfare_play _0805CA00: bl dp01_tbl1_exec_completed pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_805C9B0 thumb_func_start sub_805CA0C sub_805CA0C: @ 805CA0C push {lr} ldr r1, =gUnknown_0202406E ldr r0, =gUnknown_02024064 ldrb r0, [r0] lsls r0, 1 adds r0, r1 ldrh r1, [r0] movs r0, 0x64 muls r0, r1 ldr r1, =gPlayerParty adds r0, r1 movs r1, 0xB bl GetMonData lsls r0, 16 lsrs r0, 16 movs r1, 0x19 negs r1, r1 movs r2, 0x5 bl sub_80A32E4 bl dp01_tbl1_exec_completed pop {r0} bx r0 .pool thumb_func_end sub_805CA0C thumb_func_start dp01t_2E_1_battle_intro dp01t_2E_1_battle_intro: @ 805CA4C push {lr} ldr r1, =gUnknown_02023064 ldr r0, =gUnknown_02024064 ldrb r0, [r0] lsls r0, 9 adds r1, 0x1 adds r0, r1 ldrb r0, [r0] bl battle_intro_launch ldr r2, =gUnknown_020243FC ldrh r0, [r2] movs r1, 0x1 orrs r0, r1 strh r0, [r2] bl dp01_tbl1_exec_completed pop {r0} bx r0 .pool thumb_func_end dp01t_2E_1_battle_intro thumb_func_start dp01t_2F_1_pokemon_enter dp01t_2F_1_pokemon_enter: @ 805CA80 push {r4-r7,lr} ldr r6, =gUnknown_020241E4 ldr r7, =gUnknown_02024064 ldrb r0, [r7] adds r0, r6 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r5, =gUnknown_02020630 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, =0x0000ffd8 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, =sub_80A6EEC 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, =sub_805CC00 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 StartObjectImageAnim ldr r0, =0x0000d6f8 bl AllocObjectPalette adds r4, r0, 0 lsls r4, 24 ldr r1, =gTrainerBackPicPaletteTable ldr r0, =gSaveBlock2Ptr ldr r0, [r0] 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 decompress_palette 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, =task05_08033660 movs r1, 0x5 bl CreateTask lsls r0, 24 lsrs r0, 24 ldr r4, =gTasks lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r4 ldrb r0, [r7] strh r0, [r1, 0x8] ldr r3, =gUnknown_020244D0 ldr r0, [r3] ldrb r2, [r7] ldr r1, [r0, 0x4] lsls r0, r2, 1 adds r0, r2 lsls r0, 2 adds r0, r1 ldrb r1, [r0] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _0805CBA2 ldr r0, =gUnknown_020244B4 adds r0, r2, r0 ldrb r1, [r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r4 ldr r1, =sub_8073C30 str r1, [r0] _0805CBA2: ldr r0, [r3] ldr r2, [r0, 0x8] ldrb r0, [r2, 0x9] movs r1, 0x1 orrs r0, r1 strb r0, [r2, 0x9] ldr r1, =gUnknown_03005D60 ldrb r0, [r7] lsls r0, 2 adds r0, r1 ldr r1, =nullsub_21 str r1, [r0] pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end dp01t_2F_1_pokemon_enter thumb_func_start sub_805CC00 sub_805CC00: @ 805CC00 push {r4,r5,lr} adds r5, r0, 0 ldrh r4, [r5, 0x38] lsls r4, 24 lsrs r4, 24 bl obj_free_rotscale_entry ldrb r0, [r5, 0x5] lsrs r0, 4 bl GetObjectPaletteTagBySlot lsls r0, 16 lsrs r0, 16 bl FreeObjectPaletteByTag adds r0, r5, 0 bl RemoveObjectAndFreeTiles ldr r1, =gUnknown_0202406E lsls r0, r4, 1 adds r0, r1 ldrh r1, [r0] movs r0, 0x64 muls r0, r1 ldr r1, =gPlayerParty adds r0, r1 adds r1, r4, 0 bl sub_805DD7C ldr r0, =gUnknown_020241E4 adds r4, r0 ldrb r1, [r4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, =gUnknown_02020630 adds r0, r1 movs r1, 0 bl StartObjectImageAnim pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_805CC00 thumb_func_start task05_08033660 task05_08033660: @ 805CC68 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} lsls r0, 24 lsrs r0, 24 mov r8, r0 ldr r1, =gTasks 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 _0805CC94 adds r0, r2, 0x1 strh r0, [r1, 0xA] b _0805CD50 .pool _0805CC94: ldr r7, =gUnknown_02024064 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 _0805CCB4 ldr r0, =gBattleTypeFlags ldr r0, [r0] movs r1, 0x40 ands r0, r1 cmp r0, 0 beq _0805CCE4 _0805CCB4: ldr r0, =gUnknown_02023064 ldrb r1, [r7] lsls r2, r1, 9 adds r0, 0x1 adds r2, r0 ldr r0, =gUnknown_0202406E lsls r1, 1 adds r1, r0 ldrh r0, [r1] strb r0, [r2] ldrb r0, [r7] movs r1, 0 bl sub_805B258 b _0805CD38 .pool _0805CCE4: ldr r4, =gUnknown_02023064 ldrb r0, [r7] lsls r1, r0, 9 adds r4, 0x1 adds r1, r4 ldr r5, =gUnknown_0202406E lsls r0, 1 adds r0, r5 ldrh r0, [r0] strb r0, [r1] ldrb r0, [r7] movs r1, 0 bl sub_805B258 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, =gPlayerParty adds r0, r2 bl sub_805DD7C ldrb r0, [r7] movs r1, 0 bl sub_805B258 ldrb r0, [r7] eors r0, r6 strb r0, [r7] _0805CD38: ldr r1, =gUnknown_03005D60 ldr r2, =gUnknown_02024064 ldrb r0, [r2] lsls r0, 2 adds r0, r1 ldr r1, =sub_8058B40 str r1, [r0] mov r3, r9 strb r3, [r2] mov r0, r8 bl DestroyTask _0805CD50: pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end task05_08033660 thumb_func_start sub_805CD74 sub_805CD74: @ 805CD74 push {r4-r6,lr} ldr r1, =gUnknown_02023064 ldr r0, =gUnknown_02024064 ldrb r2, [r0] lsls r0, r2, 9 adds r1, 0x1 adds r0, r1 ldrb r0, [r0] cmp r0, 0 beq _0805CDA4 adds r0, r2, 0 bl battle_side_get_owner lsls r0, 24 cmp r0, 0 bne _0805CDA4 bl dp01_tbl1_exec_completed b _0805CE18 .pool _0805CDA4: ldr r6, =gUnknown_020244D0 ldr r0, [r6] ldr r5, =gUnknown_02024064 ldrb r1, [r5] ldr r2, [r0, 0x4] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r1, [r0] movs r2, 0x1 orrs r1, r2 strb r1, [r0] ldrb r0, [r5] lsls r3, r0, 9 ldr r4, =gUnknown_02023068 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_80735DC ldr r2, =gUnknown_020244B4 ldrb r1, [r5] adds r1, r2 movs r3, 0 strb r0, [r1] ldr r0, [r6] ldrb r1, [r5] ldr r2, [r0, 0x4] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r2 strb r3, [r0, 0x5] ldrb r2, [r5] lsls r0, r2, 9 adds r0, r4 ldrb r0, [r0] cmp r0, 0 beq _0805CE0C ldr r0, [r6] ldr r1, [r0, 0x4] lsls r0, r2, 1 adds r0, r2 lsls r0, 2 adds r0, r1 movs r1, 0x5D strb r1, [r0, 0x5] _0805CE0C: ldr r0, =gUnknown_03005D60 ldrb r1, [r5] lsls r1, 2 adds r1, r0 ldr r0, =sub_805CE38 str r0, [r1] _0805CE18: pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_805CD74 thumb_func_start sub_805CE38 sub_805CE38: @ 805CE38 push {r4,lr} ldr r4, =gUnknown_020244D0 ldr r0, [r4] ldr r3, =gUnknown_02024064 ldrb r1, [r3] ldr r2, [r0, 0x4] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r1, [r0, 0x5] adds r2, r1, 0x1 strb r2, [r0, 0x5] lsls r1, 24 lsrs r1, 24 cmp r1, 0x5C bls _0805CE70 ldr r0, [r4] ldrb r1, [r3] ldr r2, [r0, 0x4] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r2 movs r1, 0 strb r1, [r0, 0x5] bl dp01_tbl1_exec_completed _0805CE70: pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_805CE38 thumb_func_start sub_805CE80 sub_805CE80: @ 805CE80 push {lr} ldr r0, =gUnknown_020244D0 ldr r1, [r0] ldr r0, =gUnknown_02024064 ldrb r3, [r0] ldr r1, [r1, 0x4] lsls r0, r3, 1 adds r0, r3 lsls r0, 2 adds r0, r1 ldrb r1, [r0] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _0805CEB2 ldr r2, =gTasks ldr r0, =gUnknown_020244B4 adds r0, r3, r0 ldrb r1, [r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r2 ldr r1, =sub_8073C30 str r1, [r0] _0805CEB2: bl dp01_tbl1_exec_completed pop {r0} bx r0 .pool thumb_func_end sub_805CE80 thumb_func_start sub_805CED0 sub_805CED0: @ 805CED0 push {r4,lr} ldr r4, =gUnknown_02024064 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 .pool thumb_func_end sub_805CED0 thumb_func_start dp01t_33_1_enemy_move dp01t_33_1_enemy_move: @ 805CEF4 push {r4,lr} ldr r4, =gUnknown_02024064 ldrb r0, [r4] bl sub_80A6A90 lsls r0, 24 cmp r0, 0 beq _0805CF3A ldr r3, =gUnknown_02020630 ldr r0, =gUnknown_020241E4 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, =gUnknown_02023064 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_805E408 _0805CF3A: bl dp01_tbl1_exec_completed pop {r4} pop {r0} bx r0 .pool thumb_func_end dp01t_33_1_enemy_move thumb_func_start sub_805CF54 sub_805CF54: @ 805CF54 push {r4-r6,lr} sub sp, 0x4 ldr r5, =gUnknown_02024064 ldrb r0, [r5] bl mplay_80342A4 lsls r0, 24 cmp r0, 0 bne _0805CFB6 ldr r4, =gUnknown_02023064 ldrb r2, [r5] lsls r1, r2, 9 adds r0, r4, 0x1 adds r0, r1, r0 ldrb r6, [r0] adds r0, r4, 0x2 adds r0, r1, r0 ldrb r3, [r0] adds r4, 0x3 adds r1, r4 ldrb r0, [r1] lsls r0, 8 orrs r3, r0 str r3, [sp] adds r0, r2, 0 adds r1, r2, 0 adds r3, r6, 0 bl move_anim_start_t3 lsls r0, 24 cmp r0, 0 beq _0805CFA4 bl dp01_tbl1_exec_completed b _0805CFB0 .pool _0805CFA4: ldr r0, =gUnknown_03005D60 ldrb r1, [r5] lsls r1, 2 adds r1, r0 ldr r0, =bx_8030B2C str r0, [r1] _0805CFB0: adds r0, r6, 0 bl sub_817E32C _0805CFB6: add sp, 0x4 pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_805CF54 thumb_func_start dp01t_35_1_link_standby_message_and_free_vram dp01t_35_1_link_standby_message_and_free_vram: @ 805CFC8 push {r4,r5,lr} ldr r5, =gUnknown_02024064 ldrb r0, [r5] lsls r0, 9 ldr r4, =gUnknown_02023066 adds r0, r4 bl sub_81851A8 ldrb r0, [r5] lsls r0, 9 subs r4, 0x1 adds r0, r4 ldrb r0, [r0] cmp r0, 0x1 beq _0805D002 cmp r0, 0x1 bgt _0805CFF8 cmp r0, 0 beq _0805CFFE b _0805D020 .pool _0805CFF8: cmp r0, 0x2 beq _0805D01C b _0805D020 _0805CFFE: bl b_link_standby_message _0805D002: ldr r4, =gUnknown_02024064 ldrb r0, [r4] movs r1, 0x1 bl dp11b_obj_free ldrb r0, [r4] movs r1, 0 bl dp11b_obj_free b _0805D020 .pool _0805D01C: bl b_link_standby_message _0805D020: bl dp01_tbl1_exec_completed pop {r4,r5} pop {r0} bx r0 thumb_func_end dp01t_35_1_link_standby_message_and_free_vram thumb_func_start sub_805D02C sub_805D02C: @ 805D02C push {r4,lr} ldr r1, =gUnknown_02023064 ldr r4, =gUnknown_02024064 ldrb r3, [r4] lsls r0, r3, 9 adds r1, 0x1 adds r0, r1 ldrb r2, [r0] cmp r2, 0x1 beq _0805D074 cmp r2, 0x1 bgt _0805D054 cmp r2, 0 beq _0805D05A b _0805D084 .pool _0805D054: cmp r2, 0x2 beq _0805D07C b _0805D084 _0805D05A: ldr r0, =gUnknown_020244AC adds r0, r3, r0 strb r2, [r0] ldr r1, =gUnknown_020244B0 ldrb r0, [r4] adds r0, r1 strb r2, [r0] b _0805D084 .pool _0805D074: ldr r0, =gUnknown_020244AC b _0805D07E .pool _0805D07C: ldr r0, =gUnknown_020244B0 _0805D07E: adds r0, r3, r0 movs r1, 0 strb r1, [r0] _0805D084: bl dp01_tbl1_exec_completed pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_805D02C thumb_func_start sub_805D094 sub_805D094: @ 805D094 push {r4,r5,lr} ldr r5, =gUnknown_02024064 ldrb r0, [r5] lsls r0, 9 ldr r4, =gUnknown_02023068 adds r0, r4 bl sub_81851A8 ldr r2, =gUnknown_0202433A ldrb r0, [r5] lsls r0, 9 subs r1, r4, 0x3 adds r0, r1 ldrb r0, [r0] strb r0, [r2] ldr r0, =gSaveBlock2Ptr ldr r3, [r0] ldrb r0, [r5] lsls r0, 9 subs r4, 0x2 adds r0, r4 ldrb r0, [r0] ldr r1, =0x00000ca9 adds r3, r1 movs r1, 0x1 ands r1, r0 lsls r1, 3 ldrb r2, [r3] movs r0, 0x9 negs r0, r0 ands r0, r2 orrs r0, r1 strb r0, [r3] movs r0, 0x5 bl sub_80A2F50 movs r0, 0x3 bl sub_80A2390 bl dp01_tbl1_exec_completed ldr r1, =gUnknown_03005D60 ldrb r0, [r5] lsls r0, 2 adds r0, r1 ldr r1, =sub_80587B0 str r1, [r0] pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_805D094 thumb_func_start nullsub_22 nullsub_22: @ 805D114 bx lr thumb_func_end nullsub_22 thumb_func_start dp11_init dp11_init: @ 805D118 push {r4,lr} ldr r4, =gUnknown_020244D0 movs r0, 0x10 bl AllocZeroed str r0, [r4] movs r0, 0x10 bl AllocZeroed ldr r1, [r4] str r0, [r1] movs r0, 0x30 bl AllocZeroed ldr r1, [r4] str r0, [r1, 0x4] movs r0, 0x10 bl AllocZeroed ldr r1, [r4] str r0, [r1, 0x8] movs r0, 0x50 bl AllocZeroed ldr r1, [r4] str r0, [r1, 0xC] pop {r4} pop {r0} bx r0 .pool thumb_func_end dp11_init thumb_func_start dp11_free dp11_free: @ 805D158 push {r4,r5,lr} ldr r5, =gUnknown_020244D0 ldr r0, [r5] cmp r0, 0 beq _0805D192 ldr r0, [r0, 0xC] bl Free ldr r0, [r5] movs r4, 0 str r4, [r0, 0xC] ldr r0, [r0, 0x8] bl Free ldr r0, [r5] str r4, [r0, 0x8] ldr r0, [r0, 0x4] bl Free ldr r0, [r5] str r4, [r0, 0x4] ldr r0, [r0] bl Free ldr r0, [r5] str r4, [r0] bl Free str r4, [r5] _0805D192: pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end dp11_free thumb_func_start sub_805D19C sub_805D19C: @ 805D19C push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} movs r0, 0x1 negs r0, r0 mov r9, r0 ldr r4, =gUnknown_02024064 ldrb r0, [r4] lsls r2, r0, 9 ldr r1, =gUnknown_02023068 adds r2, r1 mov r10, r2 movs r1, 0 movs r2, 0xFF bl sub_803FECC lsls r0, 24 lsrs r0, 24 mov r8, r0 bl Random lsls r0, 16 lsrs r0, 16 movs r1, 0x64 bl __umodsi3 lsls r0, 16 lsrs r7, r0, 16 ldr r0, =gUnknown_0202449C ldr r0, [r0] adds r0, 0x92 ldrb r1, [r0] ldr r2, =gBitTable ldrb r0, [r4] lsls r0, 2 adds r0, r2 ldr r0, [r0] ands r1, r0 negs r0, r1 orrs r0, r1 asrs r4, r0, 31 movs r0, 0x2 ands r4, r0 adds r6, r4, 0 adds r5, r4, 0x2 b _0805D20E .pool _0805D20C: adds r4, 0x1 _0805D20E: cmp r4, r5 bge _0805D234 ldr r0, =gUnknown_02024064 ldrb r1, [r0] movs r0, 0x58 muls r0, r1 ldr r1, =gUnknown_020240CC adds r0, r1 ldr r0, [r0] bl GetNatureFromPersonality lsls r0, 24 lsrs r0, 22 adds r0, r4, r0 ldr r2, =gUnknown_0831C494 adds r0, r2 ldrb r0, [r0] cmp r0, r7 ble _0805D20C _0805D234: subs r7, r4, r6 cmp r4, r5 bne _0805D23C movs r7, 0x2 _0805D23C: movs r6, 0 movs r4, 0 mov r1, r10 ldrh r0, [r1] cmp r0, 0 beq _0805D27C mov r5, r10 _0805D24A: ldrh r0, [r5] bl sub_805D4A8 lsls r0, 24 lsrs r0, 24 cmp r7, r0 bne _0805D26E mov r0, r10 adds r0, 0x8 adds r0, r4 ldrb r0, [r0] cmp r0, 0 beq _0805D26E ldr r0, =gBitTable lsls r1, r4, 2 adds r1, r0 ldr r0, [r1] orrs r6, r0 _0805D26E: adds r5, 0x2 adds r4, 0x1 cmp r4, 0x3 bgt _0805D27C ldrh r0, [r5] cmp r0, 0 bne _0805D24A _0805D27C: cmp r6, 0 beq _0805D2AC ldr r3, =gUnknown_0202449C ldr r1, [r3] adds r1, 0x92 ldrb r2, [r1] movs r0, 0xF ands r0, r2 strb r0, [r1] ldr r1, [r3] adds r1, 0x92 lsls r0, r6, 4 ldrb r2, [r1] orrs r0, r2 strb r0, [r1] lsls r0, r6, 24 lsrs r0, 24 bl BattleAI_SetupAIData bl sub_8130BA4 lsls r0, 24 lsrs r0, 24 mov r9, r0 _0805D2AC: movs r0, 0x1 negs r0, r0 cmp r9, r0 beq _0805D2B6 b _0805D40C _0805D2B6: mov r2, r8 cmp r2, 0xF bne _0805D2BE b _0805D3EA _0805D2BE: movs r5, 0 movs r6, 0 ldr r7, =gBitTable mov r4, r10 _0805D2C6: ldrh r0, [r4] bl sub_805D4A8 lsls r0, 24 cmp r0, 0 bne _0805D2DE ldr r0, [r7] mov r1, r8 ands r0, r1 cmp r0, 0 bne _0805D2DE adds r5, 0x1 _0805D2DE: ldrh r0, [r4] bl sub_805D4A8 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _0805D2F8 ldr r0, [r7] mov r2, r8 ands r0, r2 cmp r0, 0 bne _0805D2F8 adds r5, 0x10 _0805D2F8: ldrh r0, [r4] bl sub_805D4A8 lsls r0, 24 lsrs r0, 24 cmp r0, 0x2 bne _0805D316 ldr r0, [r7] mov r1, r8 ands r0, r1 cmp r0, 0 bne _0805D316 movs r2, 0x80 lsls r2, 1 adds r5, r2 _0805D316: adds r7, 0x4 adds r4, 0x2 ldr r0, =gBitTable adds r0, 0xC cmp r7, r0 ble _0805D2C6 movs r1, 0xF ands r1, r5 cmp r1, 0x1 ble _0805D32C adds r6, 0x1 _0805D32C: movs r0, 0xF0 ands r0, r5 cmp r0, 0x1F ble _0805D336 adds r6, 0x1 _0805D336: ldr r2, =0x000001ff cmp r0, r2 ble _0805D33E adds r6, 0x1 _0805D33E: cmp r6, 0x1 bgt _0805D346 cmp r6, 0 bne _0805D388 _0805D346: ldr r5, =gBitTable _0805D348: bl Random lsls r0, 16 movs r1, 0xC0 lsls r1, 10 ands r1, r0 lsrs r4, r1, 16 lsls r0, r4, 2 adds r0, r5 ldr r0, [r0] mov r1, r8 ands r0, r1 cmp r0, 0 bne _0805D366 mov r9, r4 _0805D366: movs r0, 0x1 negs r0, r0 cmp r9, r0 beq _0805D348 b _0805D3D4 .pool _0805D388: cmp r1, 0x1 ble _0805D38E movs r6, 0 _0805D38E: cmp r0, 0x1F ble _0805D394 movs r6, 0x1 _0805D394: cmp r0, r2 ble _0805D39A movs r6, 0x2 _0805D39A: bl Random lsls r0, 16 movs r1, 0xC0 lsls r1, 10 ands r1, r0 lsrs r4, r1, 16 ldr r1, =gBitTable lsls r0, r4, 2 adds r0, r1 ldr r0, [r0] mov r2, r8 ands r0, r2 cmp r0, 0 bne _0805D3CC lsls r0, r4, 1 add r0, r10 ldrh r0, [r0] bl sub_805D4A8 lsls r0, 24 lsrs r0, 24 cmp r6, r0 bne _0805D3CC mov r9, r4 _0805D3CC: movs r0, 0x1 negs r0, r0 cmp r9, r0 beq _0805D39A _0805D3D4: bl Random lsls r0, 16 lsrs r0, 16 movs r1, 0x64 bl __umodsi3 lsls r0, 16 lsrs r0, 16 cmp r0, 0x31 bls _0805D40C _0805D3EA: ldr r2, =gUnknown_0202433C ldr r0, =gUnknown_02024064 ldrb r1, [r0] lsls r1, 4 adds r1, r2 ldrb r0, [r1, 0x2] movs r2, 0x10 orrs r0, r2 strb r0, [r1, 0x2] movs r0, 0 b _0805D496 .pool _0805D40C: mov r1, r9 lsls r0, r1, 1 mov r2, r10 adds r1, r2, r0 ldrh r0, [r1] cmp r0, 0xAE bne _0805D434 ldrb r0, [r2, 0x12] movs r5, 0 cmp r0, 0x7 beq _0805D442 ldrb r1, [r2, 0x13] movs r0, 0x7 eors r1, r0 negs r0, r1 orrs r0, r1 asrs r5, r0, 31 movs r0, 0x10 ands r5, r0 b _0805D442 _0805D434: ldr r2, =gBattleMoves ldrh r1, [r1] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r5, [r0, 0x6] _0805D442: movs r0, 0x10 ands r0, r5 cmp r0, 0 beq _0805D45C ldr r0, =gUnknown_02024064 ldrb r0, [r0] lsls r0, 8 b _0805D48A .pool _0805D45C: cmp r5, 0 bne _0805D470 bl sub_805D5F4 lsls r0, 16 lsrs r0, 16 mov r2, r9 orrs r2, r0 mov r9, r2 b _0805D490 _0805D470: ldr r0, =gUnknown_02024064 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 r0, 16 _0805D48A: mov r1, r9 orrs r1, r0 mov r9, r1 _0805D490: mov r2, r9 lsls r0, r2, 16 lsrs r0, 16 _0805D496: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 .pool thumb_func_end sub_805D19C thumb_func_start sub_805D4A8 sub_805D4A8: @ 805D4A8 push {lr} lsls r0, 16 lsrs r2, r0, 16 ldr r1, =gBattleMoves lsls r0, r2, 1 adds r0, r2 lsls r0, 2 adds r0, r1 ldrb r0, [r0, 0x6] adds r3, r1, 0 cmp r0, 0x40 bls _0805D4C2 b _0805D5EE _0805D4C2: lsls r0, 2 ldr r1, =_0805D4D4 adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _0805D4D4: .4byte _0805D5D8 .4byte _0805D5E6 .4byte _0805D5D8 .4byte _0805D5EE .4byte _0805D5D8 .4byte _0805D5EE .4byte _0805D5EE .4byte _0805D5EE .4byte _0805D5D8 .4byte _0805D5EE .4byte _0805D5EE .4byte _0805D5EE .4byte _0805D5EE .4byte _0805D5EE .4byte _0805D5EE .4byte _0805D5EE .4byte _0805D5EA .4byte _0805D5EE .4byte _0805D5EE .4byte _0805D5EE .4byte _0805D5EE .4byte _0805D5EE .4byte _0805D5EE .4byte _0805D5EE .4byte _0805D5EE .4byte _0805D5EE .4byte _0805D5EE .4byte _0805D5EE .4byte _0805D5EE .4byte _0805D5EE .4byte _0805D5EE .4byte _0805D5EE .4byte _0805D5D8 .4byte _0805D5EE .4byte _0805D5EE .4byte _0805D5EE .4byte _0805D5EE .4byte _0805D5EE .4byte _0805D5EE .4byte _0805D5EE .4byte _0805D5EE .4byte _0805D5EE .4byte _0805D5EE .4byte _0805D5EE .4byte _0805D5EE .4byte _0805D5EE .4byte _0805D5EE .4byte _0805D5EE .4byte _0805D5EE .4byte _0805D5EE .4byte _0805D5EE .4byte _0805D5EE .4byte _0805D5EE .4byte _0805D5EE .4byte _0805D5EE .4byte _0805D5EE .4byte _0805D5EE .4byte _0805D5EE .4byte _0805D5EE .4byte _0805D5EE .4byte _0805D5EE .4byte _0805D5EE .4byte _0805D5EE .4byte _0805D5EE .4byte _0805D5E6 _0805D5D8: lsls r0, r2, 1 adds r0, r2 lsls r0, 2 adds r0, r3 ldrb r0, [r0, 0x1] cmp r0, 0 bne _0805D5EE _0805D5E6: movs r0, 0x2 b _0805D5F0 _0805D5EA: movs r0, 0x1 b _0805D5F0 _0805D5EE: movs r0, 0 _0805D5F0: pop {r1} bx r1 thumb_func_end sub_805D4A8 thumb_func_start sub_805D5F4 sub_805D5F4: @ 805D5F4 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} ldr r0, =gBattleTypeFlags ldr r0, [r0] movs r1, 0x1 ands r0, r1 cmp r0, 0 beq _0805D6FA ldr r0, =gUnknown_02024064 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 bne _0805D630 movs r0, 0x1 bl battle_get_side_with_given_state lsls r0, 24 lsrs r0, 24 mov r8, r0 movs r0, 0x3 b _0805D63E .pool _0805D630: movs r0, 0 bl battle_get_side_with_given_state lsls r0, 24 lsrs r0, 24 mov r8, r0 movs r0, 0x2 _0805D63E: bl battle_get_side_with_given_state lsls r0, 24 lsrs r7, r0, 24 ldr r1, =gBattleMons movs r2, 0x58 mov r0, r8 muls r0, r2 adds r5, r0, r1 adds r0, r7, 0 muls r0, r2 adds r6, r0, r1 ldrh r0, [r5, 0x28] ldrh r3, [r6, 0x28] cmp r0, r3 bne _0805D680 bl Random adds r3, r0, 0 ldr r0, =gUnknown_02024064 ldrb r1, [r0] movs r2, 0x1 movs r0, 0x1 ands r0, r1 eors r0, r2 movs r1, 0x2 ands r1, r3 adds r0, r1 b _0805D702 .pool _0805D680: ldr r4, =gUnknown_0831C604 ldr r0, =gUnknown_02024064 mov r9, r0 ldrb r0, [r0] muls r0, r2 adds r1, 0x48 adds r0, r1 ldr r0, [r0] bl GetNatureFromPersonality lsls r0, 24 lsrs r0, 24 adds r0, r4 ldrb r4, [r0] cmp r4, 0x1 beq _0805D6CC cmp r4, 0x1 bgt _0805D6B4 cmp r4, 0 beq _0805D6BA b _0805D6FA .pool _0805D6B4: cmp r4, 0x2 beq _0805D6DE b _0805D6FA _0805D6BA: ldrh r0, [r5, 0x28] ldrh r6, [r6, 0x28] cmp r0, r6 bls _0805D6C8 mov r1, r8 lsls r0, r1, 8 b _0805D704 _0805D6C8: lsls r0, r7, 8 b _0805D704 _0805D6CC: ldrh r0, [r5, 0x28] ldrh r6, [r6, 0x28] cmp r0, r6 bcs _0805D6DA mov r3, r8 lsls r0, r3, 8 b _0805D704 _0805D6DA: lsls r0, r7, 8 b _0805D704 _0805D6DE: bl Random adds r3, r0, 0 mov r0, r9 ldrb r1, [r0] movs r2, 0x1 movs r0, 0x1 ands r0, r1 eors r0, r2 ands r4, r3 adds r0, r4 lsls r0, 24 lsrs r0, 16 b _0805D704 _0805D6FA: ldr r0, =gUnknown_02024064 ldrb r1, [r0] movs r0, 0x1 eors r0, r1 _0805D702: lsls r0, 8 _0805D704: pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r1} bx r1 .pool thumb_func_end sub_805D5F4 thumb_func_start sub_805D714 sub_805D714: @ 805D714 push {r4,lr} adds r4, r0, 0 ldrh r1, [r4, 0x30] lsls r1, 24 lsrs r1, 24 ldr r2, =gUnknown_02020630 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r1, r0, r2 adds r0, r1, 0 adds r0, 0x3F ldrb r3, [r0] lsls r0, r3, 26 cmp r0, 0 bge _0805D766 adds r0, r1, 0 adds r0, 0x3E ldrb r0, [r0] lsls r0, 29 cmp r0, 0 blt _0805D766 adds r2, r1, 0 adds r2, 0x2C ldrb r1, [r2] lsls r0, r1, 25 cmp r0, 0 bge _0805D75C movs r0, 0x41 negs r0, r0 ands r0, r1 strb r0, [r2] b _0805D766 .pool _0805D75C: lsls r0, r3, 27 cmp r0, 0 bge _0805D766 ldr r0, =DummyObjectCallback str r0, [r4, 0x1C] _0805D766: pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_805D714 thumb_func_start sub_805D770 sub_805D770: @ 805D770 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, =DummyObjectCallback str r0, [r4, 0x1C] cmp r1, 0 bne _0805D798 adds r0, r4, 0 movs r1, 0x1 bl StartObjectRotScalAnim b _0805D7A0 .pool _0805D798: adds r0, r4, 0 movs r1, 0x1 bl StartObjectRotScalAnim _0805D7A0: adds r0, r4, 0 bl AnimateObject pop {r4} pop {r0} bx r0 thumb_func_end sub_805D770 thumb_func_start sub_805D7AC sub_805D7AC: @ 805D7AC push {lr} adds r2, r0, 0 ldr r0, =gUnknown_020243FC ldrh r1, [r0] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _0805D7E4 ldrh r0, [r2, 0x2E] ldrh r1, [r2, 0x24] adds r0, r1 strh r0, [r2, 0x24] lsls r0, 16 cmp r0, 0 bne _0805D7E4 movs r1, 0x26 ldrsh r0, [r2, r1] cmp r0, 0 beq _0805D7E0 ldr r0, =sub_805D7EC b _0805D7E2 .pool _0805D7E0: ldr r0, =DummyObjectCallback _0805D7E2: str r0, [r2, 0x1C] _0805D7E4: pop {r0} bx r0 .pool thumb_func_end sub_805D7AC thumb_func_start sub_805D7EC sub_805D7EC: @ 805D7EC push {lr} adds r1, r0, 0 ldrh r0, [r1, 0x26] subs r0, 0x2 strh r0, [r1, 0x26] lsls r0, 16 cmp r0, 0 bne _0805D800 ldr r0, =DummyObjectCallback str r0, [r1, 0x1C] _0805D800: pop {r0} bx r0 .pool thumb_func_end sub_805D7EC thumb_func_start move_anim_start_t2_for_situation move_anim_start_t2_for_situation: @ 805D808 push {r4-r6,lr} adds r4, r1, 0 lsls r0, 24 ldr r6, =gUnknown_020244D0 ldr r1, [r6] ldr r5, =gUnknown_02024064 ldrb r2, [r5] ldr r3, [r1, 0x4] lsls r1, r2, 1 adds r1, r2 lsls r1, 2 adds r1, r3 ldrb r2, [r1] movs r3, 0x10 orrs r2, r3 strb r2, [r1] cmp r0, 0 bne _0805D888 cmp r4, 0x20 bne _0805D844 ldrb r0, [r5] movs r1, 0x6 bl move_anim_start_t2 b _0805D902 .pool _0805D844: cmp r4, 0x8 beq _0805D850 movs r0, 0x80 ands r0, r4 cmp r0, 0 beq _0805D85A _0805D850: ldrb r0, [r5] movs r1, 0 bl move_anim_start_t2 b _0805D902 _0805D85A: cmp r4, 0x10 bne _0805D868 ldrb r0, [r5] movs r1, 0x2 bl move_anim_start_t2 b _0805D902 _0805D868: movs r0, 0x7 ands r0, r4 cmp r0, 0 beq _0805D87A ldrb r0, [r5] movs r1, 0x4 bl move_anim_start_t2 b _0805D902 _0805D87A: cmp r4, 0x40 bne _0805D8EA ldrb r0, [r5] movs r1, 0x5 bl move_anim_start_t2 b _0805D902 _0805D888: movs r0, 0xF0 lsls r0, 12 ands r0, r4 cmp r0, 0 beq _0805D89C ldrb r0, [r5] movs r1, 0x3 bl move_anim_start_t2 b _0805D902 _0805D89C: movs r0, 0x7 ands r0, r4 cmp r0, 0 beq _0805D8AE ldrb r0, [r5] movs r1, 0x1 bl move_anim_start_t2 b _0805D902 _0805D8AE: movs r0, 0x80 lsls r0, 21 ands r0, r4 cmp r0, 0 beq _0805D8C2 ldrb r0, [r5] movs r1, 0x7 bl move_anim_start_t2 b _0805D902 _0805D8C2: movs r0, 0x80 lsls r0, 20 ands r0, r4 cmp r0, 0 beq _0805D8D6 ldrb r0, [r5] movs r1, 0x8 bl move_anim_start_t2 b _0805D902 _0805D8D6: movs r0, 0xE0 lsls r0, 8 ands r0, r4 cmp r0, 0 beq _0805D8EA ldrb r0, [r5] movs r1, 0x9 bl move_anim_start_t2 b _0805D902 _0805D8EA: ldr r0, [r6] ldrb r2, [r5] ldr r0, [r0, 0x4] lsls r1, r2, 1 adds r1, r2 lsls r1, 2 adds r1, r0 ldrb r2, [r1] movs r0, 0x11 negs r0, r0 ands r0, r2 strb r0, [r1] _0805D902: 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: @ 805D908 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x4 ldr r4, [sp, 0x24] lsls r0, 24 lsrs r6, r0, 24 lsls r1, 24 lsrs r1, 24 mov r10, r1 lsls r2, 24 lsrs r2, 24 str r2, [sp] lsls r3, 24 lsrs r5, r3, 24 lsls r4, 16 lsrs r7, r4, 16 cmp r5, 0 bne _0805D950 movs r0, 0x80 ands r0, r7 cmp r0, 0 beq _0805D950 ldr r0, =gUnknown_020244E4 adds r0, r6, r0 movs r2, 0x7F adds r1, r7, 0 ands r1, r2 strb r1, [r0] movs r0, 0x1 b _0805DA1E .pool _0805D950: ldr r0, =gUnknown_020244D0 mov r9, r0 ldr r0, [r0] ldr r0, [r0] lsls r4, r6, 2 adds r0, r4, r0 ldrb r1, [r0] movs r2, 0x4 mov r8, r2 mov r0, r8 ands r0, r1 cmp r0, 0 beq _0805D9CC adds r0, r5, 0 bl sub_805DAA0 lsls r0, 24 cmp r0, 0 bne _0805D980 movs r0, 0x1 b _0805DA1E .pool _0805D980: mov r1, r9 ldr r0, [r1] ldr r0, [r0] adds r0, r4, r0 ldrb r1, [r0] mov r0, r8 ands r0, r1 cmp r0, 0 beq _0805D9CC cmp r5, 0x2 bne _0805D9CC ldr r1, =gUnknown_02020630 ldr r0, =gUnknown_020241E4 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 _0805D9CC adds r0, r6, 0 movs r1, 0x1 bl refresh_graphics_maybe adds r0, r6, 0 bl sub_805E974 movs r0, 0x1 b _0805DA1E .pool _0805D9CC: ldr r0, =gUnknown_02038436 mov r2, r10 strb r2, [r0] ldr r0, =gUnknown_02038437 mov r1, sp ldrb r1, [r1] strb r1, [r0] ldr r4, =gUnknown_020244D0 ldr r0, [r4] ldr r0, [r0, 0x8] strh r7, [r0] ldr r0, =gUnknown_082C9320 adds r1, r5, 0 movs r2, 0 bl move_something ldr r0, =task0A_0803415C movs r1, 0xA bl CreateTask lsls r0, 24 lsrs r0, 24 ldr r2, =gTasks lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 strh r6, [r1, 0x8] ldr r0, [r4] movs r2, 0x8 ldrsh r1, [r1, r2] ldr r2, [r0, 0x4] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r1, [r0] movs r2, 0x20 orrs r1, r2 strb r1, [r0] movs r0, 0 _0805DA1E: add sp, 0x4 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 .pool thumb_func_end move_anim_start_t3 thumb_func_start task0A_0803415C task0A_0803415C: @ 805DA48 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, =gUnknown_020383F8 ldr r0, [r0] bl _call_via_r0 ldr r0, =gUnknown_020383FD ldrb r0, [r0] cmp r0, 0 bne _0805DA8A ldr r0, =gUnknown_020244D0 ldr r2, [r0] ldr r1, =gTasks lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 movs r1, 0x8 ldrsh r0, [r0, r1] ldr r2, [r2, 0x4] lsls r1, r0, 1 adds r1, r0 lsls r1, 2 adds r1, r2 ldrb r2, [r1] movs r0, 0x21 negs r0, r0 ands r0, r2 strb r0, [r1] adds r0, r4, 0 bl DestroyTask _0805DA8A: pop {r4} pop {r0} bx r0 .pool thumb_func_end task0A_0803415C thumb_func_start sub_805DAA0 sub_805DAA0: @ 805DAA0 push {lr} lsls r0, 24 lsrs r0, 24 cmp r0, 0xD bgt _0805DAB4 cmp r0, 0xA bge _0805DAB8 cmp r0, 0x2 beq _0805DAB8 b _0805DABC _0805DAB4: cmp r0, 0x11 bne _0805DABC _0805DAB8: movs r0, 0x1 b _0805DABE _0805DABC: movs r0, 0 _0805DABE: pop {r1} bx r1 thumb_func_end sub_805DAA0 thumb_func_start move_anim_start_t4 move_anim_start_t4: @ 805DAC4 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 lsls r3, 24 lsrs r3, 24 ldr r0, =gUnknown_02038436 strb r1, [r0] ldr r0, =gUnknown_02038437 strb r2, [r0] ldr r0, =gUnknown_082C937C adds r1, r3, 0 movs r2, 0 bl move_something ldr r0, =task0A_08034248 movs r1, 0xA bl CreateTask lsls r0, 24 lsrs r0, 24 ldr r2, =gTasks lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 strh r4, [r1, 0x8] ldr r0, =gUnknown_020244D0 ldr r0, [r0] movs r2, 0x8 ldrsh r1, [r1, r2] ldr r2, [r0, 0x4] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r1, [r0] movs r2, 0x40 orrs r1, r2 strb r1, [r0] pop {r4} pop {r0} bx r0 .pool thumb_func_end move_anim_start_t4 thumb_func_start task0A_08034248 task0A_08034248: @ 805DB34 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, =gUnknown_020383F8 ldr r0, [r0] bl _call_via_r0 ldr r0, =gUnknown_020383FD ldrb r0, [r0] cmp r0, 0 bne _0805DB76 ldr r0, =gUnknown_020244D0 ldr r2, [r0] ldr r1, =gTasks lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 movs r1, 0x8 ldrsh r0, [r0, r1] ldr r2, [r2, 0x4] lsls r1, r0, 1 adds r1, r0 lsls r1, 2 adds r1, r2 ldrb r2, [r1] movs r0, 0x41 negs r0, r0 ands r0, r2 strb r0, [r1] adds r0, r4, 0 bl DestroyTask _0805DB76: pop {r4} pop {r0} bx r0 .pool thumb_func_end task0A_08034248 thumb_func_start sub_805DB8C sub_805DB8C: @ 805DB8C movs r0, 0 bx lr thumb_func_end sub_805DB8C thumb_func_start mplay_80342A4 mplay_80342A4: @ 805DB90 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 _0805DBD8 ldr r2, =gUnknown_020244D0 ldr r0, [r2] ldr r1, [r0, 0x4] lsls r0, r4, 1 adds r0, r4 lsls r0, 2 adds r0, r1 ldrb r1, [r0, 0x8] adds r1, 0x1 strb r1, [r0, 0x8] ldr r2, [r2] ldr r0, =gUnknown_02024064 ldrb r1, [r0] ldr r2, [r2, 0x4] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r0, [r0, 0x8] cmp r0, 0x1D bls _0805DBDC ldr r0, =gMPlay_SE1 bl m4aMPlayStop ldr r0, =gMPlay_SE2 bl m4aMPlayStop _0805DBD8: cmp r5, 0 beq _0805DBF0 _0805DBDC: movs r0, 0x1 b _0805DC02 .pool _0805DBF0: ldr r0, =gUnknown_020244D0 ldr r0, [r0] ldr r1, [r0, 0x4] lsls r0, r4, 1 adds r0, r4 lsls r0, 2 adds r0, r1 strb r5, [r0, 0x8] movs r0, 0 _0805DC02: pop {r4,r5} pop {r1} bx r1 .pool thumb_func_end mplay_80342A4 thumb_func_start sub_805DC0C sub_805DC0C: @ 805DC0C push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x8 adds r4, r0, 0 lsls r1, 24 lsrs r1, 24 mov r8, r1 movs r1, 0 bl GetMonData str r0, [sp] ldr r0, =gUnknown_020244D0 ldr r0, [r0] ldr r0, [r0] mov r2, r8 lsls r1, r2, 2 adds r2, r1, r0 ldrh r0, [r2, 0x2] cmp r0, 0 bne _0805DC50 adds r0, r4, 0 movs r1, 0xB bl GetMonData lsls r0, 16 lsrs r5, r0, 16 ldr r6, [sp] b _0805DC58 .pool _0805DC50: ldrh r5, [r2, 0x2] ldr r0, =gUnknown_020244BC adds r0, r1, r0 ldr r6, [r0] _0805DC58: adds r0, r4, 0 movs r1, 0x1 bl GetMonData mov r10, r0 mov r0, r8 bl battle_get_per_side_status lsls r0, 24 lsls r2, r5, 3 ldr r1, =gMonFrontPicTable adds r2, r1 ldr r1, =gUnknown_020244D4 ldr r1, [r1] lsrs r0, 22 adds r1, 0x4 adds r1, r0 ldr r1, [r1] adds r0, r2, 0 adds r2, r5, 0 adds r3, r6, 0 bl DecompressMonPicWithoutDuplicatingDeoxysTiles_DetectFrontOrBack mov r3, r8 lsls r2, r3, 4 movs r0, 0x80 lsls r0, 1 adds r7, r2, r0 ldr r0, =gUnknown_020244D0 ldr r0, [r0] ldr r0, [r0] lsls r1, r3, 2 adds r0, r1, r0 ldrh r0, [r0, 0x2] str r1, [sp, 0x4] mov r9, r2 cmp r0, 0 bne _0805DCBC adds r0, r4, 0 bl pokemon_get_pal b _0805DCC6 .pool _0805DCBC: adds r0, r5, 0 mov r1, r10 ldr r2, [sp] bl species_and_otid_get_pal _0805DCC6: adds r6, r0, 0 ldr r4, =0x0201c000 adds r0, r6, 0 adds r1, r4, 0 bl LZDecompressWram adds r0, r4, 0 adds r1, r7, 0 movs r2, 0x20 bl gpu_pal_apply mov r1, r9 adds r1, 0x80 adds r0, r4, 0 movs r2, 0x20 bl gpu_pal_apply ldr r0, =0x00000181 cmp r5, r0 bne _0805DD1A movs r7, 0x80 lsls r7, 1 add r7, r9 ldr r5, =gUnknown_0202449C ldr r1, [r5] movs r4, 0x80 lsls r4, 1 adds r1, r4 adds r0, r6, 0 bl LZDecompressWram ldr r0, =gUnknown_020244E4 add r0, r8 ldrb r1, [r0] lsls r1, 5 adds r1, r4 ldr r0, [r5] adds r0, r1 adds r1, r7, 0 movs r2, 0x20 bl gpu_pal_apply _0805DD1A: ldr r0, =gUnknown_020244D0 ldr r0, [r0] ldr r0, [r0] ldr r1, [sp, 0x4] adds r0, r1, r0 ldrh r0, [r0, 0x2] cmp r0, 0 beq _0805DD46 ldr r3, =0x00007fff adds r0, r7, 0 movs r1, 0x10 movs r2, 0x6 bl BlendPalette lsls r1, r7, 1 ldr r0, =gUnknown_02037B14 adds r0, r1, r0 ldr r2, =gUnknown_02037714 adds r1, r2 ldr r2, =0x04000008 bl CpuSet _0805DD46: add sp, 0x8 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_805DC0C thumb_func_start sub_805DD7C sub_805DD7C: @ 805DD7C push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x8 adds r6, r0, 0 lsls r1, 24 lsrs r1, 24 mov r8, r1 movs r1, 0 bl GetMonData str r0, [sp] ldr r0, =gUnknown_020244D0 ldr r0, [r0] ldr r0, [r0] mov r2, r8 lsls r1, r2, 2 adds r2, r1, r0 ldrh r0, [r2, 0x2] cmp r0, 0 bne _0805DDC0 adds r0, r6, 0 movs r1, 0xB bl GetMonData lsls r0, 16 lsrs r5, r0, 16 ldr r4, [sp] b _0805DDC8 .pool _0805DDC0: ldrh r5, [r2, 0x2] ldr r0, =gUnknown_020244BC adds r0, r1, r0 ldr r4, [r0] _0805DDC8: adds r0, r6, 0 movs r1, 0x1 bl GetMonData str r0, [sp, 0x4] mov r0, r8 bl battle_get_per_side_status lsls r0, 24 lsrs r7, r0, 24 movs r0, 0x1 mov r1, r8 bl sub_80688F8 lsls r0, 24 lsrs r0, 24 mov r1, r8 lsls r1, 2 mov r10, r1 cmp r0, 0x1 beq _0805DE00 ldr r0, =gUnknown_020244D0 ldr r0, [r0] ldr r0, [r0] add r0, r10 ldrh r0, [r0, 0x2] cmp r0, 0 beq _0805DE2C _0805DE00: lsls r0, r5, 3 ldr r1, =gMonBackPicTable adds r0, r1 ldr r1, =gUnknown_020244D4 ldr r1, [r1] lsls r2, r7, 2 adds r1, 0x4 adds r1, r2 ldr r1, [r1] adds r2, r5, 0 adds r3, r4, 0 bl DecompressMonPicWithoutDuplicatingDeoxysTiles_DetectFrontOrBack b _0805DE46 .pool _0805DE2C: lsls r0, r5, 3 ldr r1, =gMonBackPicTable adds r0, r1 ldr r1, =gUnknown_020244D4 ldr r1, [r1] lsls r2, r7, 2 adds r1, 0x4 adds r1, r2 ldr r1, [r1] adds r2, r5, 0 adds r3, r4, 0 bl DecompressMonPic_DetectFrontOrBack _0805DE46: mov r2, r8 lsls r1, r2, 4 movs r0, 0x80 lsls r0, 1 adds r7, r1, r0 ldr r0, =gUnknown_020244D0 ldr r0, [r0] ldr r0, [r0] add r0, r10 ldrh r0, [r0, 0x2] mov r9, r1 cmp r0, 0 bne _0805DE74 adds r0, r6, 0 bl pokemon_get_pal b _0805DE7E .pool _0805DE74: adds r0, r5, 0 ldr r1, [sp, 0x4] ldr r2, [sp] bl species_and_otid_get_pal _0805DE7E: adds r6, r0, 0 ldr r4, =0x0201c000 adds r0, r6, 0 adds r1, r4, 0 bl LZDecompressWram adds r0, r4, 0 adds r1, r7, 0 movs r2, 0x20 bl gpu_pal_apply mov r1, r9 adds r1, 0x80 adds r0, r4, 0 movs r2, 0x20 bl gpu_pal_apply ldr r0, =0x00000181 cmp r5, r0 bne _0805DED2 movs r7, 0x80 lsls r7, 1 add r7, r9 ldr r5, =gUnknown_0202449C ldr r1, [r5] movs r4, 0x80 lsls r4, 1 adds r1, r4 adds r0, r6, 0 bl LZDecompressWram ldr r0, =gUnknown_020244E4 add r0, r8 ldrb r1, [r0] lsls r1, 5 adds r1, r4 ldr r0, [r5] adds r0, r1 adds r1, r7, 0 movs r2, 0x20 bl gpu_pal_apply _0805DED2: ldr r0, =gUnknown_020244D0 ldr r0, [r0] ldr r0, [r0] add r0, r10 ldrh r0, [r0, 0x2] cmp r0, 0 beq _0805DEFC ldr r3, =0x00007fff adds r0, r7, 0 movs r1, 0x10 movs r2, 0x6 bl BlendPalette lsls r1, r7, 1 ldr r0, =gUnknown_02037B14 adds r0, r1, r0 ldr r2, =gUnknown_02037714 adds r1, r2 ldr r2, =0x04000008 bl CpuSet _0805DEFC: add sp, 0x8 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_805DD7C thumb_func_start nullsub_23 nullsub_23: @ 805DF30 bx lr thumb_func_end nullsub_23 thumb_func_start nullsub_24 nullsub_24: @ 805DF34 bx lr thumb_func_end nullsub_24 thumb_func_start sub_805DF38 sub_805DF38: @ 805DF38 push {r4,lr} 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 r4, 3 ldr r2, =gTrainerFrontPicTable adds r2, r4, r2 ldr r1, =gUnknown_020244D4 ldr r1, [r1] lsrs r0, 22 adds r1, 0x4 adds r1, r0 ldr r1, [r1] adds r0, r2, 0 movs r2, 0 bl DecompressPicFromTable_2 ldr r0, =gTrainerFrontPicPaletteTable adds r4, r0 adds r0, r4, 0 bl LoadCompressedObjectPalette pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_805DF38 thumb_func_start sub_805DF84 sub_805DF84: @ 805DF84 push {r4,r5,lr} adds r5, r0, 0 adds r4, r1, 0 lsls r5, 16 lsrs r5, 16 lsls r4, 24 lsrs r4, 24 adds r0, r4, 0 bl battle_get_per_side_status lsls r0, 24 lsls r5, 3 ldr r2, =gTrainerBackPicTable adds r2, r5, r2 ldr r1, =gUnknown_020244D4 ldr r1, [r1] lsrs r0, 22 adds r1, 0x4 adds r1, r0 ldr r1, [r1] adds r0, r2, 0 movs r2, 0 bl DecompressPicFromTable_2 ldr r0, =gTrainerBackPicPaletteTable adds r5, r0 ldr r0, [r5] lsls r4, 20 movs r1, 0x80 lsls r1, 17 adds r4, r1 lsrs r4, 16 adds r1, r4, 0 movs r2, 0x20 bl decompress_palette pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_805DF84 thumb_func_start nullsub_25 nullsub_25: @ 805DFE0 bx lr thumb_func_end nullsub_25 thumb_func_start sub_805DFE4 sub_805DFE4: @ 805DFE4 push {lr} lsls r0, 16 ldr r1, =gTrainerFrontPicPaletteTable lsrs r0, 13 adds r0, r1 ldrh r0, [r0, 0x4] bl FreeObjectPaletteByTag pop {r0} bx r0 .pool thumb_func_end sub_805DFE4 thumb_func_start sub_805DFFC sub_805DFFC: @ 805DFFC push {r4-r7,lr} ldr r4, =gUnknown_0832C128 adds r0, r4, 0 bl LoadTaggedObjectPalette adds r4, 0x8 adds r0, r4, 0 bl LoadTaggedObjectPalette bl battle_type_is_double lsls r0, 24 cmp r0, 0 bne _0805E034 ldr r0, =gUnknown_0832C0D0 bl LoadCompressedObjectPic ldr r0, =gUnknown_0832C0D8 bl LoadCompressedObjectPic movs r5, 0x2 b _0805E056 .pool _0805E034: ldr r4, =gUnknown_0832C0E0 adds r0, r4, 0 bl LoadCompressedObjectPic adds r4, 0x8 adds r0, r4, 0 bl LoadCompressedObjectPic ldr r4, =gUnknown_0832C0F0 adds r0, r4, 0 bl LoadCompressedObjectPic adds r4, 0x8 adds r0, r4, 0 bl LoadCompressedObjectPic movs r5, 0x4 _0805E056: movs r4, 0 cmp r4, r5 bcs _0805E076 ldr r7, =gUnknown_02024076 ldr r6, =gUnknown_0832C108 _0805E060: 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 _0805E060 _0805E076: pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_805DFFC thumb_func_start sub_805E08C sub_805E08C: @ 805E08C push {r4-r6,lr} lsls r0, 24 lsrs r4, r0, 24 adds r5, r4, 0 movs r6, 0 cmp r4, 0 bne _0805E09C b _0805E1AE _0805E09C: cmp r4, 0x1 bne _0805E0B8 ldr r4, =gUnknown_0832C128 adds r0, r4, 0 bl LoadTaggedObjectPalette adds r4, 0x8 adds r0, r4, 0 bl LoadTaggedObjectPalette b _0805E1AE .pool _0805E0B8: bl battle_type_is_double lsls r0, 24 cmp r0, 0 bne _0805E120 cmp r4, 0x2 bne _0805E0F0 ldr r0, =gBattleTypeFlags ldr r0, [r0] movs r1, 0x80 ands r0, r1 cmp r0, 0 beq _0805E0E4 ldr r0, =gUnknown_0832C100 bl LoadCompressedObjectPic b _0805E1AE .pool _0805E0E4: ldr r0, =gUnknown_0832C0D0 bl LoadCompressedObjectPic b _0805E1AE .pool _0805E0F0: cmp r4, 0x3 bne _0805E100 ldr r0, =gUnknown_0832C0D8 bl LoadCompressedObjectPic b _0805E1AE .pool _0805E100: cmp r4, 0x4 bne _0805E110 ldr r0, =gUnknown_02024076 ldrb r0, [r0] b _0805E198 .pool _0805E110: cmp r4, 0x5 bne _0805E1AC ldr r0, =gUnknown_02024076 ldrb r0, [r0, 0x1] b _0805E198 .pool _0805E120: cmp r4, 0x2 bne _0805E130 ldr r0, =gUnknown_0832C0E0 bl LoadCompressedObjectPic b _0805E1AE .pool _0805E130: cmp r4, 0x3 bne _0805E140 ldr r0, =gUnknown_0832C0E8 bl LoadCompressedObjectPic b _0805E1AE .pool _0805E140: cmp r4, 0x4 bne _0805E150 ldr r0, =gUnknown_0832C0F0 bl LoadCompressedObjectPic b _0805E1AE .pool _0805E150: cmp r4, 0x5 bne _0805E160 ldr r0, =gUnknown_0832C0F8 bl LoadCompressedObjectPic b _0805E1AE .pool _0805E160: cmp r4, 0x6 bne _0805E170 ldr r0, =gUnknown_02024076 ldrb r0, [r0] b _0805E198 .pool _0805E170: cmp r4, 0x7 bne _0805E180 ldr r0, =gUnknown_02024076 ldrb r0, [r0, 0x1] b _0805E198 .pool _0805E180: cmp r4, 0x8 bne _0805E190 ldr r0, =gUnknown_02024076 ldrb r0, [r0, 0x2] b _0805E198 .pool _0805E190: cmp r5, 0x9 bne _0805E1AC ldr r0, =gUnknown_02024076 ldrb r0, [r0, 0x3] _0805E198: lsls r0, 3 ldr r1, =gUnknown_0832C108 adds r0, r1 bl LoadCompressedObjectPic b _0805E1AE .pool _0805E1AC: movs r6, 0x1 _0805E1AE: adds r0, r6, 0 pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_805E08C thumb_func_start load_gfxc_health_bar load_gfxc_health_bar: @ 805E1B8 push {lr} ldr r0, =gUnknown_08C093F0 ldr r1, =gUnknown_020244D4 ldr r1, [r1] movs r2, 0xBA lsls r2, 1 adds r1, r2 ldr r1, [r1] bl LZDecompressWram pop {r0} bx r0 .pool thumb_func_end load_gfxc_health_bar thumb_func_start battle_load_something battle_load_something: @ 805E1D8 push {r4-r6,lr} adds r5, r0, 0 adds r4, r1, 0 movs r6, 0 ldrb r0, [r5] cmp r0, 0x6 bls _0805E1E8 b _0805E346 _0805E1E8: lsls r0, 2 ldr r1, =_0805E1F8 adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _0805E1F8: .4byte _0805E214 .4byte _0805E21A .4byte _0805E324 .4byte _0805E230 .4byte _0805E260 .4byte _0805E29C .4byte _0805E33C _0805E214: bl sub_805E378 b _0805E324 _0805E21A: ldrb r0, [r4] bl sub_805E08C lsls r0, 24 cmp r0, 0 beq _0805E228 b _0805E320 _0805E228: ldrb r0, [r4] adds r0, 0x1 strb r0, [r4] b _0805E346 _0805E230: ldr r0, =gBattleTypeFlags ldr r0, [r0] movs r1, 0x80 ands r0, r1 cmp r0, 0 beq _0805E24C ldrb r0, [r4] cmp r0, 0 bne _0805E24C bl battle_make_oam_safari_battle b _0805E252 .pool _0805E24C: ldrb r0, [r4] bl battle_make_oam_normal_battle _0805E252: ldr r2, =gUnknown_03005D70 ldrb r1, [r4] adds r1, r2 strb r0, [r1] b _0805E30E .pool _0805E260: ldrb r0, [r4] bl sub_8072B18 ldr r0, =gUnknown_02024076 ldrb r1, [r4] adds r0, r1, r0 ldrb r0, [r0] cmp r0, 0x1 bhi _0805E288 ldr r0, =gUnknown_03005D70 adds r0, r1, r0 ldrb r0, [r0] movs r1, 0 bl nullsub_30 b _0805E30E .pool _0805E288: ldr r0, =gUnknown_03005D70 adds r0, r1, r0 ldrb r0, [r0] movs r1, 0x1 bl nullsub_30 b _0805E30E .pool _0805E29C: ldrb r0, [r4] bl battle_side_get_owner lsls r0, 24 cmp r0, 0 bne _0805E2E4 ldr r0, =gBattleTypeFlags ldr r0, [r0] movs r1, 0x80 ands r0, r1 cmp r0, 0 bne _0805E302 ldr r0, =gUnknown_03005D70 ldrb r1, [r4] adds r0, r1, r0 ldrb r0, [r0] ldr r2, =gUnknown_0202406E lsls r1, 1 adds r1, r2 ldrh r2, [r1] movs r1, 0x64 muls r1, r2 ldr r2, =gPlayerParty adds r1, r2 movs r2, 0 bl healthbar_draw_field_maybe b _0805E302 .pool _0805E2E4: ldr r0, =gUnknown_03005D70 ldrb r1, [r4] adds r0, r1, r0 ldrb r0, [r0] ldr r2, =gUnknown_0202406E lsls r1, 1 adds r1, r2 ldrh r2, [r1] movs r1, 0x64 muls r1, r2 ldr r2, =gEnemyParty adds r1, r2 movs r2, 0 bl healthbar_draw_field_maybe _0805E302: ldr r1, =gUnknown_03005D70 ldrb r0, [r4] adds r0, r1 ldrb r0, [r0] bl sub_8072984 _0805E30E: ldrb r0, [r4] adds r0, 0x1 strb r0, [r4] ldr r1, =gUnknown_0202406C lsls r0, 24 lsrs r0, 24 ldrb r1, [r1] cmp r0, r1 bne _0805E346 _0805E320: movs r0, 0 strb r0, [r4] _0805E324: ldrb r0, [r5] adds r0, 0x1 strb r0, [r5] b _0805E346 .pool _0805E33C: bl sub_805EC84 bl sub_81B8C68 movs r6, 0x1 _0805E346: adds r0, r6, 0 pop {r4-r6} pop {r1} bx r1 thumb_func_end battle_load_something thumb_func_start sub_805E350 sub_805E350: @ 805E350 push {r4,lr} ldr r4, =gUnknown_020244D0 ldr r0, [r4] ldr r0, [r0, 0x4] movs r1, 0 movs r2, 0x30 bl memset ldr r0, [r4] ldr r0, [r0, 0x8] movs r1, 0 movs r2, 0x10 bl memset pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_805E350 thumb_func_start sub_805E378 sub_805E378: @ 805E378 push {lr} bl sub_805E350 ldr r0, =gUnknown_020244D0 ldr r0, [r0] ldr r0, [r0] movs r1, 0 movs r2, 0x10 bl memset pop {r0} bx r0 .pool thumb_func_end sub_805E378 thumb_func_start sub_805E394 sub_805E394: @ 805E394 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} movs r4, 0 ldr r5, =gUnknown_0202406C ldrb r0, [r5] cmp r4, r0 bge _0805E3EA ldr r0, =gUnknown_02020630 mov r9, r0 movs r0, 0x1 mov r12, r0 movs r0, 0x2 negs r0, r0 mov r8, r0 ldr r7, =gUnknown_020244D0 ldr r6, =gUnknown_020241E4 _0805E3B8: ldr r0, [r7] ldr r0, [r0] lsls r3, r4, 2 adds r3, r0 adds r0, r4, r6 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 add r0, r9 adds r0, 0x3E ldrb r1, [r0] lsls r1, 29 lsrs r1, 31 mov r0, r12 ands r1, r0 ldrb r2, [r3] mov r0, r8 ands r0, r2 orrs r0, r1 strb r0, [r3] adds r4, 0x1 ldrb r0, [r5] cmp r4, r0 blt _0805E3B8 _0805E3EA: pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_805E394 thumb_func_start sub_805E408 sub_805E408: @ 805E408 lsls r0, 24 lsrs r0, 24 ldr r1, =gUnknown_020244D0 ldr r1, [r1] ldr r1, [r1] lsls r3, r0, 2 adds r3, r1 ldr r2, =gUnknown_02020630 ldr r1, =gUnknown_020241E4 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 .pool thumb_func_end sub_805E408 thumb_func_start sub_805E448 sub_805E448: @ 805E448 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x4 lsls r0, 24 lsrs r7, r0, 24 lsls r1, 24 lsrs r1, 24 str r1, [sp] lsls r2, 24 cmp r2, 0 beq _0805E51C ldr r0, =gUnknown_020241E4 adds r5, r7, r0 ldrb r1, [r5] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, =gUnknown_02020630 mov r8, r1 add r0, r8 ldr r4, =gUnknown_020244D0 ldr r1, [r4] ldr r1, [r1, 0x8] ldrb r1, [r1] bl StartObjectImageAnim lsls r0, r7, 20 movs r2, 0x80 lsls r2, 17 adds r0, r2 lsrs r6, r0, 16 ldr r2, =gUnknown_0202449C ldr r0, [r4] ldr r0, [r0, 0x8] ldrh r1, [r0] lsls r1, 5 movs r3, 0x80 lsls r3, 1 adds r1, r3 ldr r0, [r2] adds r0, r1 adds r1, r6, 0 movs r2, 0x20 bl gpu_pal_apply ldr r1, =gUnknown_020244E4 adds r1, r7, r1 ldr r0, [r4] ldr r0, [r0, 0x8] ldrh r0, [r0] strb r0, [r1] ldr r0, [r4] ldr r1, [r0] lsls r0, r7, 2 adds r0, r1 ldrh r0, [r0, 0x2] cmp r0, 0 beq _0805E4DE ldr r3, =0x00007fff adds r0, r6, 0 movs r1, 0x10 movs r2, 0x6 bl BlendPalette lsls r1, r6, 1 ldr r0, =gUnknown_02037B14 adds r0, r1, r0 ldr r2, =gUnknown_02037714 adds r1, r2 ldr r2, =0x04000008 bl CpuSet _0805E4DE: adds r0, r7, 0 bl sub_80A6138 ldrb r2, [r5] lsls r1, r2, 4 adds r1, r2 lsls r1, 2 add r1, r8 lsls r0, 24 lsrs r0, 24 strh r0, [r1, 0x22] b _0805E77A .pool _0805E51C: bl sub_80A4DF0 lsls r0, 24 cmp r0, 0 beq _0805E558 movs r0, 0 mov r10, r0 ldr r0, =gUnknown_02039F34 ldr r0, [r0] ldr r2, [r0, 0x18] ldrh r1, [r2, 0x2] mov r8, r1 ldr r3, [r2, 0x8] mov r9, r3 ldr r4, [r2, 0xC] lsls r0, r1, 3 ldr r1, =gMonBackPicTable adds r0, r1 ldr r1, =gUnknown_020244D4 ldr r1, [r1] ldr r1, [r1, 0x4] ldr r3, [r2, 0x10] b _0805E5FA .pool _0805E558: adds r0, r7, 0 bl battle_get_per_side_status lsls r0, 24 lsrs r0, 24 mov r10, r0 ldr r0, [sp] bl battle_side_get_owner lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _0805E58C ldr r1, =gUnknown_0202406E ldr r2, [sp] lsls r0, r2, 1 adds r0, r1 ldrh r1, [r0] movs r0, 0x64 muls r0, r1 ldr r1, =gEnemyParty b _0805E59C .pool _0805E58C: ldr r1, =gUnknown_0202406E ldr r3, [sp] lsls r0, r3, 1 adds r0, r1 ldrh r1, [r0] movs r0, 0x64 muls r0, r1 ldr r1, =gPlayerParty _0805E59C: adds r0, r1 movs r1, 0xB bl GetMonData lsls r0, 16 lsrs r0, 16 mov r8, r0 adds r0, r7, 0 bl battle_side_get_owner lsls r0, 24 cmp r0, 0 bne _0805E618 ldr r0, =gUnknown_0202406E lsls r4, r7, 1 adds r4, r0 ldrh r0, [r4] movs r6, 0x64 muls r0, r6 ldr r5, =gPlayerParty adds r0, r5 movs r1, 0 bl GetMonData mov r9, r0 ldrh r0, [r4] muls r0, r6 adds r0, r5 movs r1, 0x1 bl GetMonData adds r4, r0, 0 mov r1, r8 lsls r0, r1, 3 ldr r1, =gMonBackPicTable adds r0, r1 ldr r1, =gUnknown_020244D4 ldr r1, [r1] mov r3, r10 lsls r2, r3, 2 adds r1, 0x4 adds r1, r2 ldr r1, [r1] ldr r3, =gUnknown_020244BC lsls r2, r7, 2 adds r2, r3 ldr r3, [r2] _0805E5FA: mov r2, r8 bl DecompressMonPicWithoutDuplicatingDeoxysTiles_DetectFrontOrBack b _0805E662 .pool _0805E618: ldr r0, =gUnknown_0202406E lsls r4, r7, 1 adds r4, r0 ldrh r0, [r4] movs r6, 0x64 muls r0, r6 ldr r5, =gEnemyParty adds r0, r5 movs r1, 0 bl GetMonData mov r9, r0 ldrh r0, [r4] muls r0, r6 adds r0, r5 movs r1, 0x1 bl GetMonData adds r4, r0, 0 mov r1, r8 lsls r0, r1, 3 ldr r1, =gMonFrontPicTable adds r0, r1 ldr r1, =gUnknown_020244D4 ldr r1, [r1] mov r3, r10 lsls r2, r3, 2 adds r1, 0x4 adds r1, r2 ldr r1, [r1] ldr r3, =gUnknown_020244BC lsls r2, r7, 2 adds r2, r3 ldr r3, [r2] mov r2, r8 bl DecompressMonPicWithoutDuplicatingDeoxysTiles_DetectFrontOrBack _0805E662: ldr r0, =gUnknown_020244D4 ldr r0, [r0] mov r2, r10 lsls r1, r2, 2 adds r0, 0x4 adds r0, r1 ldr r2, [r0] ldr r0, =gUnknown_020241E4 adds r0, r7 mov r10, r0 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r3, =gUnknown_02020630 adds r0, r3 ldrh r0, [r0, 0x4] lsls r0, 22 lsrs r0, 17 ldr r1, =0x06010000 adds r0, r1 ldr r1, =0x040000d4 str r2, [r1] str r0, [r1, 0x4] ldr r0, =0x84000200 str r0, [r1, 0x8] ldr r0, [r1, 0x8] lsls r0, r7, 20 movs r1, 0x80 lsls r1, 17 adds r0, r1 lsrs r6, r0, 16 mov r0, r8 adds r1, r4, 0 mov r2, r9 bl species_and_otid_get_pal mov r9, r0 ldr r4, =0x0201c000 adds r1, r4, 0 bl LZDecompressWram adds r0, r4, 0 adds r1, r6, 0 movs r2, 0x20 bl gpu_pal_apply ldr r0, =0x00000181 cmp r8, r0 bne _0805E70A mov r2, r10 ldrb r1, [r2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, =gUnknown_02020630 adds r1, 0x8 adds r0, r1 ldr r1, =gUnknown_08309AAC mov r3, r8 lsls r2, r3, 2 adds r1, r2 ldr r1, [r1] str r1, [r0] ldr r5, =gUnknown_0202449C ldr r1, [r5] movs r4, 0x80 lsls r4, 1 adds r1, r4 mov r0, r9 bl LZDecompressWram ldr r0, =gUnknown_020244E4 ldr r1, [sp] adds r0, r1, r0 ldrb r1, [r0] lsls r1, 5 adds r1, r4 ldr r0, [r5] adds r0, r1 adds r1, r6, 0 movs r2, 0x20 bl gpu_pal_apply _0805E70A: ldr r3, =0x00007fff adds r0, r6, 0 movs r1, 0x10 movs r2, 0x6 bl BlendPalette lsls r1, r6, 1 ldr r0, =gUnknown_02037B14 adds r0, r1, r0 ldr r2, =gUnknown_02037714 adds r1, r2 ldr r2, =0x04000008 bl CpuSet bl sub_80A4DF0 lsls r0, 24 cmp r0, 0 bne _0805E74A ldr r0, =gUnknown_020244D0 ldr r0, [r0] ldr r1, [r0] lsls r0, r7, 2 adds r0, r1 mov r2, r8 strh r2, [r0, 0x2] ldr r0, =gUnknown_020244E4 adds r1, r7, r0 ldr r3, [sp] adds r0, r3, r0 ldrb r0, [r0] strb r0, [r1] _0805E74A: adds r0, r7, 0 bl sub_80A6138 mov r1, r10 ldrb r2, [r1] lsls r1, r2, 4 adds r1, r2 lsls r1, 2 ldr r2, =gUnknown_02020630 adds r1, r2 lsls r0, 24 lsrs r0, 24 strh r0, [r1, 0x22] mov r3, r10 ldrb r1, [r3] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 ldr r1, =gUnknown_020244E4 adds r1, r7, r1 ldrb r1, [r1] bl StartObjectImageAnim _0805E77A: add sp, 0x4 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_805E448 thumb_func_start sub_805E7DC sub_805E7DC: @ 805E7DC push {r4-r7,lr} lsls r0, 24 lsrs r4, r0, 24 adds r5, r4, 0 lsls r1, 24 cmp r1, 0 bne _0805E898 bl sub_80A4DF0 lsls r0, 24 cmp r0, 0 beq _0805E7F8 movs r4, 0 b _0805E802 _0805E7F8: adds r0, r4, 0 bl battle_get_per_side_status lsls r0, 24 lsrs r4, r0, 24 _0805E802: bl sub_80A4DF0 lsls r0, 24 cmp r0, 0 beq _0805E814 ldr r0, =gUnknown_08C2D120 b _0805E822 .pool _0805E814: adds r0, r5, 0 bl battle_side_get_owner lsls r0, 24 cmp r0, 0 beq _0805E83C ldr r0, =gUnknown_08C2CEE0 _0805E822: ldr r1, =gUnknown_020244D4 ldr r1, [r1] lsls r4, 2 adds r1, 0x4 adds r1, r4 ldr r1, [r1] bl LZDecompressVram b _0805E84E .pool _0805E83C: ldr r0, =gUnknown_08C2D120 ldr r1, =gUnknown_020244D4 ldr r1, [r1] lsls r4, 2 adds r1, 0x4 adds r1, r4 ldr r1, [r1] bl LZDecompressVram _0805E84E: movs r3, 0x1 lsls r6, r5, 4 ldr r7, =gUnknown_08C2CEBC ldr r0, =gUnknown_020244D4 ldr r0, [r0] adds r0, 0x4 adds r4, r0, r4 ldr r2, =0x040000d4 ldr r5, =0x84000200 _0805E860: ldr r0, [r4] lsls r1, r3, 11 adds r1, r0, r1 str r0, [r2] str r1, [r2, 0x4] str r5, [r2, 0x8] ldr r0, [r2, 0x8] adds r3, 0x1 cmp r3, 0x3 ble _0805E860 movs r0, 0x80 lsls r0, 1 adds r1, r6, r0 adds r0, r7, 0 movs r2, 0x20 bl decompress_palette b _0805E8E6 .pool _0805E898: bl sub_80A4DF0 lsls r0, 24 cmp r0, 0 bne _0805E8E6 adds r0, r4, 0 bl battle_side_get_owner lsls r0, 24 cmp r0, 0 beq _0805E8D0 ldr r1, =gUnknown_0202406E lsls r0, r4, 1 adds r0, r1 ldrh r1, [r0] movs r0, 0x64 muls r0, r1 ldr r1, =gEnemyParty adds r0, r1 adds r1, r4, 0 bl sub_805DC0C b _0805E8E6 .pool _0805E8D0: ldr r1, =gUnknown_0202406E lsls r0, r5, 1 adds r0, r1 ldrh r1, [r0] movs r0, 0x64 muls r0, r1 ldr r1, =gPlayerParty adds r0, r1 adds r1, r5, 0 bl sub_805DD7C _0805E8E6: pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_805E7DC thumb_func_start refresh_graphics_maybe refresh_graphics_maybe: @ 805E8F4 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_805E7DC lsls r0, r4, 4 adds r0, r4 lsls r0, 2 ldr r1, =gUnknown_02020630 adds r4, r0, r1 ldr r0, =gUnknown_020244E4 adds r0, r6, r0 ldrb r1, [r0] adds r0, r4, 0 bl StartObjectImageAnim cmp r5, 0 bne _0805E938 adds r0, r6, 0 bl sub_80A614C b _0805E93E .pool _0805E938: adds r0, r6, 0 bl sub_80A6138 _0805E93E: 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_805E94C sub_805E94C: @ 805E94C push {lr} lsls r0, 24 lsrs r2, r0, 24 lsls r1, 16 lsrs r1, 16 cmp r1, 0xA4 bne _0805E96C ldr r0, =gUnknown_020244D0 ldr r0, [r0] ldr r0, [r0] lsls r1, r2, 2 adds r1, r0 ldrb r0, [r1] movs r2, 0x4 orrs r0, r2 strb r0, [r1] _0805E96C: pop {r0} bx r0 .pool thumb_func_end sub_805E94C thumb_func_start sub_805E974 sub_805E974: @ 805E974 lsls r0, 24 ldr r1, =gUnknown_020244D0 ldr r1, [r1] ldr r1, [r1] lsrs r0, 22 adds r0, r1 ldrb r2, [r0] movs r1, 0x5 negs r1, r1 ands r1, r2 strb r1, [r0] bx lr .pool thumb_func_end sub_805E974 thumb_func_start sub_805E990 sub_805E990: @ 805E990 push {r4-r7,lr} adds r5, r0, 0 lsls r1, 24 lsrs r6, r1, 24 adds r7, r6, 0 movs r1, 0x39 bl GetMonData adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 adds r0, r5, 0 movs r1, 0x3A bl GetMonData adds r1, r0, 0 lsls r4, 16 asrs r4, 16 lsls r1, 16 asrs r1, 16 adds r0, r4, 0 bl sub_8075060 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _0805EA08 ldr r7, =gUnknown_020244D0 ldr r0, [r7] ldr r2, [r0] lsls r4, r6, 2 adds r0, r4, r2 ldrb r1, [r0] movs r5, 0x2 movs r3, 0x2 adds r0, r3, 0 ands r0, r1 cmp r0, 0 bne _0805EA5A adds r0, r6, 0 eors r0, r5 lsls r0, 2 adds r0, r2 ldrb r1, [r0] adds r0, r3, 0 ands r0, r1 cmp r0, 0 bne _0805E9F6 movs r0, 0x5A bl audio_play _0805E9F6: ldr r0, [r7] ldr r1, [r0] adds r1, r4, r1 ldrb r0, [r1] orrs r0, r5 strb r0, [r1] b _0805EA5A .pool _0805EA08: ldr r4, =gUnknown_020244D0 ldr r0, [r4] ldr r0, [r0] lsls r1, r6, 2 adds r1, r0 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 _0805EA34 movs r0, 0x5A bl m4aSongNumStop b _0805EA5A .pool _0805EA34: bl battle_type_is_double lsls r0, 24 cmp r0, 0 beq _0805EA5A ldr r1, [r4] movs r0, 0x2 eors r7, r0 ldr r1, [r1] lsls r0, r7, 2 adds r0, r1 ldrb r1, [r0] movs r0, 0x2 ands r0, r1 cmp r0, 0 bne _0805EA5A movs r0, 0x5A bl m4aSongNumStop _0805EA5A: pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_805E990 thumb_func_start sub_805EA60 sub_805EA60: @ 805EA60 push {r4-r6,lr} movs r0, 0 bl battle_get_side_with_given_state lsls r0, 24 lsrs r4, r0, 24 ldr r5, =gUnknown_020244D0 ldr r0, [r5] ldr r0, [r0] lsls r1, r4, 2 adds r1, r0 ldrb r2, [r1] movs r6, 0x3 negs r6, r6 adds r0, r6, 0 ands r0, r2 strb r0, [r1] bl battle_type_is_double lsls r0, 24 cmp r0, 0 beq _0805EAA2 ldr r2, [r5] movs r0, 0x2 adds r1, r4, 0 eors r1, r0 ldr r0, [r2] lsls r1, 2 adds r1, r0 ldrb r2, [r1] adds r0, r6, 0 ands r0, r2 strb r0, [r1] _0805EAA2: movs r0, 0x5A bl m4aSongNumStop pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_805EA60 thumb_func_start sub_805EAB4 sub_805EAB4: @ 805EAB4 push {r4,r5,lr} adds r5, r0, 0 movs r1, 0x39 bl GetMonData adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 adds r0, r5, 0 movs r1, 0x3A bl GetMonData adds r1, r0, 0 lsls r4, 16 asrs r4, 16 lsls r1, 16 asrs r1, 16 adds r0, r4, 0 bl sub_8075060 lsls r0, 24 lsrs r0, 24 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_805EAB4 thumb_func_start sub_805EAE8 sub_805EAE8: @ 805EAE8 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} ldr r0, =gMain ldr r1, =0x00000439 adds r0, r1 ldrb r1, [r0] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _0805EB7E 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, =gUnknown_0202406E 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, =gPlayerParty adds r4, r0, r6 adds r0, r4, 0 movs r1, 0x39 bl GetMonData cmp r0, 0 beq _0805EB5A adds r0, r4, 0 mov r1, r8 bl sub_805E990 _0805EB5A: bl battle_type_is_double lsls r0, 24 cmp r0, 0 beq _0805EB7E adds r0, r5, 0 muls r0, r7 adds r4, r0, r6 adds r0, r4, 0 movs r1, 0x39 bl GetMonData cmp r0, 0 beq _0805EB7E adds r0, r4, 0 mov r1, r9 bl sub_805E990 _0805EB7E: pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_805EAE8 thumb_func_start sub_805EB9C sub_805EB9C: @ 805EB9C 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, =gUnknown_0202406C ldrb r0, [r0] cmp r5, r0 bge _0805EC6C 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 _0805EBC8: lsls r0, r5, 24 lsrs r0, 24 bl sub_80A6A90 lsls r0, 24 cmp r0, 0 beq _0805EC60 ldr r4, =gUnknown_02020630 ldr r0, =gUnknown_020241E4 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 _0805EC3C ldr r0, =gUnknown_020244D0 ldr r0, [r0] ldr r2, [r0, 0x4] 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 _0805EC60 .pool _0805EC3C: ldrb r0, [r3] lsls r2, r0, 4 adds r2, r0 lsls r2, 2 adds r2, r4 ldr r0, =gUnknown_020244D0 ldr r0, [r0] ldr r0, [r0, 0x4] 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] _0805EC60: adds r6, 0xC adds r5, 0x1 ldr r0, =gUnknown_0202406C ldrb r0, [r0] cmp r5, r0 blt _0805EBC8 _0805EC6C: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_805EB9C thumb_func_start sub_805EC84 sub_805EC84: @ 805EC84 push {r4-r7,lr} mov r7, r8 push {r7} ldr r0, =gUnknown_0831C6A0 bl LoadCompressedObjectPic movs r0, 0x1 bl battle_get_side_with_given_state adds r5, r0, 0 lsls r5, 24 lsrs r5, 24 ldr r0, =gUnknown_0831C6B0 mov r8, r0 adds r0, r5, 0 movs r1, 0 bl sub_80A5C6C adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 adds r0, r5, 0 movs r1, 0x1 bl sub_80A5C6C adds r2, r0, 0 lsls r2, 24 lsrs r2, 8 movs r0, 0xE8 lsls r0, 13 adds r2, r0 asrs r2, 16 mov r0, r8 adds r1, r4, 0 movs r3, 0xC8 bl AddObjectToFront ldr r6, =gUnknown_020244D0 ldr r1, [r6] ldr r2, [r1, 0x4] lsls r1, r5, 1 adds r1, r5 lsls r1, 2 adds r2, r1, r2 strb r0, [r2, 0x7] ldr r7, =gUnknown_02020630 ldr r0, [r6] ldr r0, [r0, 0x4] adds r1, r0 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 _0805ED56 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_80A5C6C adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 adds r0, r5, 0 movs r1, 0x1 bl sub_80A5C6C adds r2, r0, 0 lsls r2, 24 lsrs r2, 8 movs r0, 0xE8 lsls r0, 13 adds r2, r0 asrs r2, 16 mov r0, r8 adds r1, r4, 0 movs r3, 0xC8 bl AddObjectToFront ldr r1, [r6] ldr r2, [r1, 0x4] lsls r1, r5, 1 adds r1, r5 lsls r1, 2 adds r2, r1, r2 strb r0, [r2, 0x7] ldr r0, [r6] ldr r0, [r0, 0x4] adds r1, r0 ldrb r1, [r1, 0x7] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r7 strh r5, [r0, 0x2E] _0805ED56: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_805EC84 thumb_func_start sub_805ED70 @ int sub_805ED70(obj *a1) sub_805ED70: @ 805ED70 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, =gUnknown_020241E4 adds r0, r4, r0 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, =gUnknown_02020630 adds r7, r0, r1 adds r6, r7, 0 adds r6, 0x3E ldrb r1, [r6] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _0805EDAC adds r0, r4, 0 bl sub_80A6A90 lsls r0, 24 cmp r0, 0 bne _0805EDC0 _0805EDAC: ldr r0, =sub_805EE48 str r0, [r5, 0x1C] b _0805EE36 .pool _0805EDC0: ldr r0, =gUnknown_020383FD ldrb r0, [r0] cmp r0, 0 bne _0805EDD2 ldrb r1, [r6] movs r0, 0x4 ands r0, r1 cmp r0, 0 beq _0805EDE4 _0805EDD2: movs r0, 0x1 mov r8, r0 ldr r2, =gUnknown_020244D0 lsls r4, 2 b _0805EE06 .pool _0805EDE4: ldr r2, =gUnknown_020244D0 ldr r0, [r2] ldr r0, [r0] lsls r1, r4, 2 adds r3, r1, r0 ldrh r0, [r3, 0x2] adds r4, r1, 0 cmp r0, 0 beq _0805EE06 ldr r0, =gUnknown_08305DCC ldrh r1, [r3, 0x2] adds r1, r0 ldrb r0, [r1] cmp r0, 0 bne _0805EE06 movs r0, 0x1 mov r8, r0 _0805EE06: ldr r0, [r2] ldr r0, [r0] adds r0, r4, r0 ldrb r1, [r0] movs r0, 0x4 ands r0, r1 cmp r0, 0 beq _0805EE1A movs r0, 0x1 mov r8, r0 _0805EE1A: 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] _0805EE36: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_805ED70 thumb_func_start sub_805EE48 sub_805EE48: @ 805EE48 adds r0, 0x3E ldrb r1, [r0] movs r2, 0x4 orrs r1, r2 strb r1, [r0] bx lr thumb_func_end sub_805EE48 thumb_func_start sub_805EE54 sub_805EE54: @ 805EE54 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 _0805EED0 ldr r0, =gUnknown_020244D0 ldr r3, [r0] ldr r1, [r3] lsls r0, r4, 2 adds r1, r0, r1 ldrh r0, [r1, 0x2] cmp r0, 0 beq _0805EE7E adds r5, r0, 0 _0805EE7E: ldr r0, =gUnknown_08305DCC adds r0, r5, r0 ldrb r0, [r0] cmp r0, 0 beq _0805EEB4 ldr r2, =gUnknown_02020630 ldr r1, [r3, 0x4] lsls r0, r4, 1 adds r0, r4 lsls r0, 2 adds r0, r1 ldrb r1, [r0, 0x7] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r2, 0x1C adds r0, r2 ldr r1, =sub_805ED70 b _0805EECE .pool _0805EEB4: ldr r2, =gUnknown_02020630 ldr r1, [r3, 0x4] lsls r0, r6, 1 adds r0, r6 lsls r0, 2 adds r0, r1 ldrb r1, [r0, 0x7] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r2, 0x1C adds r0, r2 ldr r1, =sub_805EE48 _0805EECE: str r1, [r0] _0805EED0: pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_805EE54 thumb_func_start sub_805EEE0 sub_805EEE0: @ 805EEE0 lsls r0, 24 lsrs r0, 24 ldr r2, =gUnknown_02020630 ldr r1, =gUnknown_020244D0 ldr r1, [r1] ldr r3, [r1, 0x4] lsls r1, r0, 1 adds r1, r0 lsls r1, 2 adds r1, r3 ldrb r1, [r1, 0x7] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r2, 0x1C adds r0, r2 ldr r1, =sub_805EE48 str r1, [r0] bx lr .pool thumb_func_end sub_805EEE0 thumb_func_start sub_805EF14 sub_805EF14: @ 805EF14 push {r4-r6,lr} ldr r3, =0x06000240 movs r0, 0 movs r6, 0xF0 lsls r6, 8 _0805EF1E: adds r5, r0, 0x1 movs r4, 0xF _0805EF22: ldrh r1, [r3] adds r0, r6, 0 ands r0, r1 cmp r0, 0 bne _0805EF32 adds r0, r6, 0 orrs r0, r1 strh r0, [r3] _0805EF32: ldrh r1, [r3] movs r2, 0xF0 lsls r2, 4 adds r0, r2, 0 ands r0, r1 cmp r0, 0 bne _0805EF46 adds r0, r2, 0 orrs r0, r1 strh r0, [r3] _0805EF46: ldrh r1, [r3] movs r2, 0xF0 movs r0, 0xF0 ands r0, r1 cmp r0, 0 bne _0805EF58 adds r0, r1, 0 orrs r0, r2 strh r0, [r3] _0805EF58: ldrh r1, [r3] movs r2, 0xF movs r0, 0xF ands r0, r1 cmp r0, 0 bne _0805EF6A adds r0, r1, 0 orrs r0, r2 strh r0, [r3] _0805EF6A: adds r3, 0x2 subs r4, 0x1 cmp r4, 0 bge _0805EF22 adds r0, r5, 0 cmp r0, 0x8 ble _0805EF1E pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_805EF14 thumb_func_start sub_805EF84 sub_805EF84: @ 805EF84 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 lsls r1, 24 ldr r0, =gUnknown_020244D0 ldr r0, [r0] ldr r2, [r0] lsls r0, r4, 2 adds r0, r2 movs r3, 0 movs r2, 0 strh r2, [r0, 0x2] ldr r0, =gUnknown_020244E4 adds r0, r4, r0 strb r3, [r0] cmp r1, 0 bne _0805EFAC adds r0, r4, 0 bl sub_805E974 _0805EFAC: pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_805EF84 thumb_func_start init_uns_table_pokemon_copy init_uns_table_pokemon_copy: @ 805EFBC push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} movs r6, 0 ldr r4, =gUnknown_020244D4 str r6, [r4] movs r0, 0xC0 lsls r0, 1 bl AllocZeroed str r0, [r4] movs r0, 0x80 lsls r0, 8 bl AllocZeroed ldr r1, [r4] str r0, [r1] _0805EFE2: ldr r0, =gUnknown_020244D4 ldr r1, [r0] lsls r4, r6, 2 adds r2, r1, 0x4 adds r2, r4 lsls r3, r6, 13 ldr r0, [r1] adds r0, r3 str r0, [r2] lsls r3, r6, 1 adds r0, r3, r6 lsls r0, 3 adds r1, r0, r1 ldr r2, =gUnknown_08329D98 adds r1, 0x14 adds r0, r2 ldm r0!, {r2,r5,r7} stm r1!, {r2,r5,r7} ldm r0!, {r2,r5,r7} stm r1!, {r2,r5,r7} movs r5, 0 mov r9, r3 lsls r0, r6, 5 mov r8, r0 adds r1, r6, 0x1 mov r10, r1 mov r12, r8 adds r7, r4, 0 _0805F01A: ldr r2, =gUnknown_020244D4 ldr r1, [r2] lsls r4, r5, 3 add r4, r12 adds r3, r1, 0 adds r3, 0x74 adds r3, r4 adds r0, r1, 0x4 adds r0, r7 lsls r2, r5, 11 ldr r0, [r0] adds r0, r2 str r0, [r3] adds r1, r4 adds r1, 0x78 movs r0, 0x80 lsls r0, 4 strh r0, [r1] adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0x3 bls _0805F01A ldr r1, =gUnknown_020244D4 ldr r2, [r1] mov r5, r9 adds r0, r5, r6 lsls r0, 3 adds r1, r2, 0 adds r1, 0x20 adds r1, r0 mov r0, r8 adds r0, 0x74 adds r2, r0 str r2, [r1] mov r7, r10 lsls r0, r7, 24 lsrs r6, r0, 24 cmp r6, 0x3 bls _0805EFE2 movs r0, 0x80 lsls r0, 5 bl AllocZeroed ldr r1, =gUnknown_020244D4 ldr r1, [r1] movs r2, 0xBA lsls r2, 1 adds r1, r2 str r0, [r1] pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end init_uns_table_pokemon_copy thumb_func_start sub_805F094 sub_805F094: @ 805F094 push {r4-r6,lr} ldr r6, =gUnknown_020244D4 ldr r0, [r6] cmp r0, 0 beq _0805F106 movs r1, 0xBE lsls r1, 1 adds r0, r1 ldr r0, [r0] cmp r0, 0 beq _0805F0BA bl Free ldr r0, [r6] movs r1, 0xBE lsls r1, 1 adds r0, r1 movs r1, 0 str r1, [r0] _0805F0BA: ldr r0, [r6] movs r1, 0xBC lsls r1, 1 adds r0, r1 ldr r0, [r0] cmp r0, 0 beq _0805F0D8 bl Free ldr r0, [r6] movs r1, 0xBC lsls r1, 1 adds r0, r1 movs r1, 0 str r1, [r0] _0805F0D8: ldr r0, [r6] movs r5, 0xBA lsls r5, 1 adds r0, r5 ldr r0, [r0] bl Free ldr r0, [r6] adds r5, r0, r5 movs r4, 0 str r4, [r5] ldr r0, [r0] bl Free ldr r0, [r6] str r4, [r0] str r4, [r0, 0x4] str r4, [r0, 0x8] str r4, [r0, 0xC] str r4, [r0, 0x10] bl Free str r4, [r6] _0805F106: pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_805F094 thumb_func_start sub_805F110 sub_805F110: @ 805F110 push {r4,r5,lr} adds r5, r0, 0 movs r1, 0x37 bl GetMonData ldr r1, =0x00000fff ands r1, r0 cmp r1, 0 bne _0805F158 adds r0, r5, 0 movs r1, 0x39 bl GetMonData adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 adds r0, r5, 0 movs r1, 0x3A bl GetMonData adds r1, r0, 0 lsls r4, 16 asrs r4, 16 lsls r1, 16 asrs r1, 16 adds r0, r4, 0 bl sub_8075060 lsls r0, 24 lsrs r0, 24 cmp r0, 0x2 ble _0805F158 movs r0, 0x1 b _0805F15A .pool _0805F158: movs r0, 0 _0805F15A: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_805F110 thumb_func_start nullsub_26 nullsub_26: @ 805F160 bx lr thumb_func_end nullsub_26 thumb_func_start sub_805F164 sub_805F164: @ 805F164 ldr r1, =gUnknown_03005D60 ldr r0, =gUnknown_02024064 ldrb r0, [r0] lsls r0, 2 adds r0, r1 ldr r1, =bx_exec_buffer_A_ch0_tbl7 str r1, [r0] bx lr .pool thumb_func_end sub_805F164 thumb_func_start bx_exec_buffer_A_ch0_tbl7 bx_exec_buffer_A_ch0_tbl7: @ 805F180 push {lr} ldr r2, =gUnknown_02024068 ldr r1, =gBitTable ldr r0, =gUnknown_02024064 ldrb r3, [r0] lsls r0, r3, 2 adds r0, r1 ldr r1, [r2] ldr r0, [r0] ands r1, r0 cmp r1, 0 beq _0805F1CC ldr r0, =gUnknown_02023064 lsls r1, r3, 9 adds r1, r0 ldrb r0, [r1] cmp r0, 0x38 bhi _0805F1C8 ldr r0, =gUnknown_0831C6C8 ldrb r1, [r1] lsls r1, 2 adds r1, r0 ldr r0, [r1] bl _call_via_r0 b _0805F1CC .pool _0805F1C8: bl dp01_tbl7_exec_completed _0805F1CC: pop {r0} bx r0 thumb_func_end bx_exec_buffer_A_ch0_tbl7 thumb_func_start sub_805F1D0 sub_805F1D0: @ 805F1D0 push {lr} ldr r2, =gUnknown_02020630 ldr r1, =gUnknown_020241E4 ldr r0, =gUnknown_02024064 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, =DummyObjectCallback cmp r1, r0 bne _0805F1F4 bl dp01_tbl7_exec_completed _0805F1F4: pop {r0} bx r0 .pool thumb_func_end sub_805F1D0 thumb_func_start sub_805F208 sub_805F208: @ 805F208 push {lr} ldr r2, =gUnknown_02020630 ldr r1, =gUnknown_020241E4 ldr r0, =gUnknown_02024064 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, =DummyObjectCallback cmp r1, r0 bne _0805F22C bl dp01_tbl7_exec_completed _0805F22C: pop {r0} bx r0 .pool thumb_func_end sub_805F208 thumb_func_start sub_805F240 sub_805F240: @ 805F240 push {r4-r6,lr} ldr r5, =gUnknown_02020630 ldr r6, =gUnknown_020241E4 ldr r4, =gUnknown_02024064 ldrb r0, [r4] adds r0, r6 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r2, r0, 2 adds r0, r5, 0 adds r0, 0x1C adds r0, r2, r0 ldr r1, [r0] ldr r0, =DummyObjectCallback cmp r1, r0 bne _0805F292 adds r0, r2, r5 ldrh r0, [r0, 0x6] bl sub_805DFE4 ldrb r0, [r4] adds r0, r6 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 bl obj_free_rotscale_entry ldrb r0, [r4] adds r0, r6 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 bl RemoveObjectAndFreeTiles bl dp01_tbl7_exec_completed _0805F292: pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_805F240 thumb_func_start sub_805F2A8 sub_805F2A8: @ 805F2A8 push {r4,lr} ldr r4, =gUnknown_020244D0 ldr r1, [r4] ldr r3, =gUnknown_02024064 ldrb r0, [r3] ldr r2, [r1, 0x4] lsls r1, r0, 1 adds r1, r0 lsls r1, 2 adds r1, r2 ldrb r0, [r1, 0x9] subs r0, 0x1 strb r0, [r1, 0x9] lsls r0, 24 lsrs r0, 24 cmp r0, 0xFF bne _0805F2E0 ldr r0, [r4] ldrb r1, [r3] ldr r2, [r0, 0x4] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r2 movs r1, 0 strb r1, [r0, 0x9] bl dp01_tbl7_exec_completed _0805F2E0: pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_805F2A8 thumb_func_start sub_805F2F0 sub_805F2F0: @ 805F2F0 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} movs r0, 0 mov r10, r0 bl battle_type_is_double lsls r0, 24 cmp r0, 0 beq _0805F32C bl battle_type_is_double lsls r0, 24 cmp r0, 0 beq _0805F31E ldr r0, =gBattleTypeFlags ldr r0, [r0] movs r1, 0x40 ands r0, r1 cmp r0, 0 bne _0805F32C _0805F31E: ldr r0, =gBattleTypeFlags ldr r0, [r0] movs r1, 0x80 lsls r1, 8 ands r0, r1 cmp r0, 0 beq _0805F368 _0805F32C: ldr r2, =gUnknown_02020630 ldr r1, =gUnknown_03005D70 ldr r3, =gUnknown_02024064 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, [r0] ldr r0, =DummyObjectCallback cmp r1, r0 bne _0805F34E movs r1, 0x1 mov r10, r1 _0805F34E: movs r6, 0 b _0805F3A2 .pool _0805F368: ldr r3, =gUnknown_02020630 ldr r6, =gUnknown_03005D70 ldr r2, =gUnknown_02024064 ldrb r4, [r2] adds r0, r4, r6 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r3, 0x1C adds r0, r3 ldr r5, [r0] ldr r0, =DummyObjectCallback cmp r5, r0 bne _0805F3A0 movs r0, 0x2 eors r4, r0 adds r0, r4, r6 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 ldr r0, [r0] cmp r0, r5 bne _0805F3A0 movs r0, 0x1 mov r10, r0 _0805F3A0: movs r6, 0x1 _0805F3A2: ldr r3, =gUnknown_020244D8 ldr r1, =gUnknown_020244D0 mov r8, r1 ldr r2, [r1] ldr r7, =gUnknown_02024064 ldrb r1, [r7] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 ldr r5, [r2, 0x4] adds r0, r5, r0 str r0, [r3] ldr r2, =gUnknown_020244DC ldrb r0, [r7] movs r1, 0x2 mov r9, r1 mov r1, r9 eors r1, r0 lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r5, r0 str r0, [r2] mov r0, r10 cmp r0, 0 bne _0805F3D8 b _0805F53C _0805F3D8: cmp r6, 0x1 bne _0805F494 ldrb r2, [r7] lsls r0, r2, 1 adds r0, r2 lsls r0, 2 adds r4, r0, r5 ldrb r1, [r4, 0x1] adds r0, r6, 0 ands r0, r1 cmp r0, 0 bne _0805F3F2 b _0805F53C _0805F3F2: mov r0, r9 eors r0, r2 lsls r1, r0, 1 adds r1, r0 lsls r1, 2 adds r1, r5 ldrb r0, [r1, 0x1] ands r6, r0 cmp r6, 0 bne _0805F408 b _0805F53C _0805F408: ldrb r1, [r4] movs r3, 0x7F adds r0, r3, 0 ands r0, r1 strb r0, [r4] mov r1, r8 ldr r0, [r1] ldrb r2, [r7] ldr r0, [r0, 0x4] lsls r1, r2, 1 adds r1, r2 lsls r1, 2 adds r1, r0 ldrb r2, [r1, 0x1] movs r4, 0x2 negs r4, r4 adds r0, r4, 0 ands r0, r2 strb r0, [r1, 0x1] mov r0, r8 ldr r2, [r0] ldrb r0, [r7] mov r1, r9 eors r1, r0 ldr r2, [r2, 0x4] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r1, [r0] ands r3, r1 strb r3, [r0] mov r1, r8 ldr r2, [r1] ldrb r0, [r7] mov r1, r9 eors r1, r0 ldr r2, [r2, 0x4] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r1, [r0, 0x1] ands r4, r1 strb r4, [r0, 0x1] ldr r4, =0x000027f9 adds r0, r4, 0 bl FreeObjectTilesByTag adds r0, r4, 0 bl FreeObjectPaletteByTag b _0805F51A .pool _0805F494: ldrb r2, [r7] lsls r0, r2, 1 adds r0, r2 lsls r0, 2 adds r0, r5 ldrb r1, [r0, 0x1] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _0805F53C adds r0, r2, 0 bl battle_get_per_side_status lsls r0, 24 lsrs r0, 24 cmp r0, 0x3 bne _0805F4E4 mov r0, r8 ldr r2, [r0] ldrb r0, [r7] mov r1, r9 eors r1, r0 ldr r2, [r2, 0x4] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r2 ldrh r1, [r0] movs r0, 0xC0 lsls r0, 1 ands r0, r1 cmp r0, 0 bne _0805F53C ldr r4, =0x000027f9 adds r0, r4, 0 bl FreeObjectTilesByTag adds r0, r4, 0 bl FreeObjectPaletteByTag _0805F4E4: mov r1, r8 ldr r0, [r1] ldr r1, =gUnknown_02024064 ldrb r2, [r1] ldr r0, [r0, 0x4] lsls r1, r2, 1 adds r1, r2 lsls r1, 2 adds r1, r0 ldrb r2, [r1] movs r0, 0x7F ands r0, r2 strb r0, [r1] mov r1, r8 ldr r0, [r1] ldr r1, =gUnknown_02024064 ldrb r2, [r1] ldr r0, [r0, 0x4] lsls r1, r2, 1 adds r1, r2 lsls r1, 2 adds r1, r0 ldrb r2, [r1, 0x1] movs r0, 0x2 negs r0, r0 ands r0, r2 strb r0, [r1, 0x1] _0805F51A: ldr r0, =gUnknown_020244D0 ldr r0, [r0] ldr r3, =gUnknown_02024064 ldrb r1, [r3] ldr r2, [r0, 0x4] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r2 movs r1, 0x3 strb r1, [r0, 0x9] ldr r1, =gUnknown_03005D60 ldrb r0, [r3] lsls r0, 2 adds r0, r1 ldr r1, =sub_805F2A8 str r1, [r0] _0805F53C: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_805F2F0 thumb_func_start sub_805F560 sub_805F560: @ 805F560 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x4 movs r0, 0 str r0, [sp] mov r10, r0 ldr r5, =gUnknown_020244D0 ldr r0, [r5] ldr r4, =gUnknown_02024064 ldrb r2, [r4] ldr r1, [r0, 0x4] lsls r3, r2, 1 adds r0, r3, r2 lsls r0, 2 adds r0, r1 ldrh r1, [r0] movs r6, 0xC4 lsls r6, 1 adds r0, r6, 0 ands r0, r1 cmp r0, 0 bne _0805F5A6 ldr r0, =gUnknown_0202406E adds r0, r3, r0 ldrh r1, [r0] movs r0, 0x64 muls r1, r0 ldr r0, =gEnemyParty adds r1, r0 adds r0, r2, 0 bl sub_8172EF0 _0805F5A6: ldr r0, =gBattleTypeFlags ldr r0, [r0] ldr r1, =0x00008040 ands r0, r1 cmp r0, 0 bne _0805F5EE bl battle_type_is_double lsls r0, 24 cmp r0, 0 beq _0805F5EE ldr r2, [r5] ldrb r1, [r4] movs r0, 0x2 adds r3, r0, 0 eors r3, r1 ldr r1, [r2, 0x4] lsls r2, r3, 1 adds r0, r2, r3 lsls r0, 2 adds r0, r1 ldrh r1, [r0] adds r0, r6, 0 ands r0, r1 cmp r0, 0 bne _0805F5EE ldr r0, =gUnknown_0202406E adds r0, r2, r0 ldrh r1, [r0] movs r0, 0x64 muls r1, r0 ldr r0, =gEnemyParty adds r1, r0 adds r0, r3, 0 bl sub_8172EF0 _0805F5EE: ldr r2, =gUnknown_020244D0 ldr r0, [r2] ldr r1, =gUnknown_02024064 mov r8, r1 ldrb r4, [r1] ldr r5, [r0, 0x4] lsls r0, r4, 1 adds r0, r4 lsls r0, 2 adds r3, r0, r5 ldrb r1, [r3] movs r6, 0x8 adds r0, r6, 0 ands r0, r1 mov r9, r2 cmp r0, 0 bne _0805F6D0 movs r7, 0x2 adds r1, r7, 0 eors r1, r4 lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r5 ldrb r1, [r0] adds r0, r6, 0 ands r0, r1 cmp r0, 0 bne _0805F6D0 ldrb r1, [r3, 0x1] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _0805F6B4 bl battle_type_is_double lsls r0, 24 cmp r0, 0 beq _0805F684 ldr r0, =gBattleTypeFlags ldr r0, [r0] movs r1, 0x40 ands r0, r1 cmp r0, 0 bne _0805F684 ldr r4, =gUnknown_03005D70 mov r1, r8 ldrb r0, [r1] adds r1, r7, 0 eors r1, r0 adds r0, r1, r4 ldrb r0, [r0] ldr r2, =gUnknown_0202406E lsls r1, 1 adds r1, r2 ldrh r2, [r1] movs r1, 0x64 muls r1, r2 ldr r2, =gEnemyParty adds r1, r2 movs r2, 0 bl healthbar_draw_field_maybe mov r1, r8 ldrb r0, [r1] eors r0, r7 bl sub_8076918 mov r1, r8 ldrb r0, [r1] eors r0, r7 adds r0, r4 ldrb r0, [r0] bl sub_80729D0 _0805F684: ldr r5, =gUnknown_03005D70 ldr r4, =gUnknown_02024064 ldrb r1, [r4] adds r0, r1, r5 ldrb r0, [r0] ldr r2, =gUnknown_0202406E lsls r1, 1 adds r1, r2 ldrh r2, [r1] movs r1, 0x64 muls r1, r2 ldr r2, =gEnemyParty adds r1, r2 movs r2, 0 bl healthbar_draw_field_maybe ldrb r0, [r4] bl sub_8076918 ldrb r0, [r4] adds r0, r5 ldrb r0, [r0] bl sub_80729D0 _0805F6B4: ldr r3, =gUnknown_020244D0 ldr r2, [r3] ldr r0, =gUnknown_02024064 ldrb r1, [r0] ldr r2, [r2, 0x4] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r1, [r0, 0x1] movs r2, 0x80 orrs r1, r2 strb r1, [r0, 0x1] mov r9, r3 _0805F6D0: mov r1, r9 ldr r0, [r1] ldr r4, =gUnknown_02024064 ldrb r2, [r4] ldr r3, [r0, 0x4] lsls r0, r2, 1 adds r0, r2 lsls r0, 2 adds r0, r3 ldrb r1, [r0, 0x1] movs r0, 0xC0 ands r0, r1 cmp r0, 0x80 bne _0805F792 movs r1, 0x2 eors r1, r2 lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r3 ldrb r1, [r0, 0x1] movs r0, 0x40 ands r0, r1 cmp r0, 0 bne _0805F792 bl sub_80A36C8 lsls r0, 24 cmp r0, 0 bne _0805F792 mov r1, r9 ldr r0, [r1] ldrb r4, [r4] ldr r1, [r0, 0x4] lsls r0, r4, 1 adds r0, r4 lsls r0, 2 adds r0, r1 ldrb r1, [r0, 0x1] movs r0, 0x20 ands r0, r1 cmp r0, 0 bne _0805F774 ldr r0, =gBattleTypeFlags ldr r0, [r0] movs r1, 0x42 ands r0, r1 cmp r0, 0x42 bne _0805F768 adds r0, r4, 0 bl battle_get_per_side_status lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _0805F774 ldr r0, =gMPlay_BGM bl m4aMPlayContinue b _0805F774 .pool _0805F768: ldr r0, =gMPlay_BGM ldr r1, =0x0000ffff movs r2, 0x80 lsls r2, 1 bl m4aMPlayVolumeControl _0805F774: ldr r0, =gUnknown_020244D0 ldr r2, [r0] ldr r0, =gUnknown_02024064 ldrb r1, [r0] ldr r2, [r2, 0x4] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r1, [r0, 0x1] movs r2, 0x20 orrs r1, r2 strb r1, [r0, 0x1] movs r0, 0x1 str r0, [sp] _0805F792: bl battle_type_is_double lsls r0, 24 cmp r0, 0 beq _0805F7B2 bl battle_type_is_double lsls r0, 24 cmp r0, 0 beq _0805F810 ldr r0, =gBattleTypeFlags ldr r0, [r0] movs r1, 0x40 ands r0, r1 cmp r0, 0 beq _0805F810 _0805F7B2: ldr r2, =gUnknown_02020630 ldr r0, =gUnknown_03005D7C ldr r1, =gUnknown_02024064 ldrb r4, [r1] adds r0, r4, r0 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r2, 0x1C adds r0, r2 ldr r3, [r0] ldr r0, =DummyObjectCallback cmp r3, r0 bne _0805F86E ldr r0, =gUnknown_020241E4 adds r0, r4, r0 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 ldr r0, [r0] cmp r0, r3 bne _0805F86E movs r1, 0x1 mov r10, r1 b _0805F86E .pool _0805F810: ldr r2, =gUnknown_02020630 ldr r7, =gUnknown_03005D7C ldr r0, =gUnknown_02024064 ldrb r3, [r0] adds r0, r3, r7 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r2, 0x1C adds r0, r2 ldr r4, [r0] ldr r0, =DummyObjectCallback cmp r4, r0 bne _0805F86E ldr r6, =gUnknown_020241E4 adds r0, r3, r6 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 ldr r5, [r0] cmp r5, r4 bne _0805F86E movs r0, 0x2 eors r3, r0 adds r0, r3, r7 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 ldr r4, [r0] cmp r4, r5 bne _0805F86E adds r0, r3, r6 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 ldr r0, [r0] cmp r0, r4 bne _0805F86E movs r0, 0x1 mov r10, r0 _0805F86E: ldr r1, [sp] cmp r1, 0 beq _0805F958 mov r0, r10 cmp r0, 0 beq _0805F958 bl battle_type_is_double lsls r0, 24 cmp r0, 0 beq _0805F8D2 ldr r0, =gBattleTypeFlags ldr r0, [r0] movs r1, 0x40 ands r0, r1 cmp r0, 0 bne _0805F8D2 ldr r1, =gUnknown_03005D7C ldr r5, =gUnknown_02024064 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, =gUnknown_02020630 adds r0, r1 bl RemoveObjectAndFreeTiles ldrb r0, [r5] eors r4, r0 ldr r1, =gUnknown_0202406E lsls r0, r4, 1 adds r0, r1 ldrh r1, [r0] movs r0, 0x64 muls r0, r1 ldr r1, =gEnemyParty adds r0, r1 movs r1, 0xB bl GetMonData adds r1, r0, 0 lsls r1, 16 lsrs r1, 16 adds r0, r4, 0 bl sub_805EE54 _0805F8D2: ldr r1, =gUnknown_03005D7C ldr r4, =gUnknown_02024064 ldrb r0, [r4] adds r0, r1 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, =gUnknown_02020630 adds r0, r1 bl RemoveObjectAndFreeTiles ldrb r5, [r4] ldr r1, =gUnknown_0202406E lsls r0, r5, 1 adds r0, r1 ldrh r1, [r0] movs r0, 0x64 muls r0, r1 ldr r1, =gEnemyParty adds r0, r1 movs r1, 0xB bl GetMonData adds r1, r0, 0 lsls r1, 16 lsrs r1, 16 adds r0, r5, 0 bl sub_805EE54 ldr r3, =gUnknown_020244D0 ldr r0, [r3] ldr r2, [r0, 0x8] ldrb r1, [r2, 0x9] movs r0, 0x2 negs r0, r0 ands r0, r1 strb r0, [r2, 0x9] ldr r0, [r3] ldrb r2, [r4] ldr r0, [r0, 0x4] lsls r1, r2, 1 adds r1, r2 lsls r1, 2 adds r1, r0 ldrb r2, [r1, 0x1] movs r0, 0x21 negs r0, r0 ands r0, r2 strb r0, [r1, 0x1] ldr r0, [r3] ldrb r2, [r4] ldr r0, [r0, 0x4] lsls r1, r2, 1 adds r1, r2 lsls r1, 2 adds r1, r0 ldrb r2, [r1, 0x1] movs r0, 0x7F ands r0, r2 strb r0, [r1, 0x1] ldr r1, =gUnknown_03005D60 ldrb r0, [r4] lsls r0, 2 adds r0, r1 ldr r1, =sub_805F2F0 str r1, [r0] _0805F958: add sp, 0x4 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_805F560 thumb_func_start sub_805F994 sub_805F994: @ 805F994 push {r4,r5,lr} ldr r2, =gUnknown_02020630 ldr r0, =gUnknown_020241E4 ldr r1, =gUnknown_02024064 ldrb r3, [r1] adds r0, r3, r0 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 _0805F9E0 ldr r0, =gUnknown_020244D0 ldr r0, [r0] ldr r1, [r0, 0x4] lsls r2, r3, 1 adds r0, r2, r3 lsls r0, 2 adds r0, r1 ldrh r1, [r0] movs r0, 0xC0 lsls r0, 1 ands r0, r1 cmp r0, 0 bne _0805F9E0 ldr r0, =gUnknown_0202406E adds r0, r2, r0 ldrh r1, [r0] movs r0, 0x64 muls r1, r0 ldr r0, =gEnemyParty adds r1, r0 adds r0, r3, 0 bl sub_8172EF0 _0805F9E0: ldr r2, =gUnknown_02020630 ldr r0, =gUnknown_020241E4 ldr r5, =gUnknown_02024064 ldrb r3, [r5] 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, =DummyObjectCallback cmp r1, r0 bne _0805FA48 ldr r4, =gUnknown_020244D0 ldr r0, [r4] ldr r1, [r0, 0x4] lsls r0, r3, 1 adds r0, r3 lsls r0, 2 adds r2, r0, r1 ldrb r1, [r2, 0x1] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _0805FA48 ldrb r1, [r2] movs r0, 0x7F ands r0, r1 strb r0, [r2] ldr r0, [r4] ldrb r2, [r5] ldr r0, [r0, 0x4] lsls r1, r2, 1 adds r1, r2 lsls r1, 2 adds r1, r0 ldrb r2, [r1, 0x1] movs r0, 0x2 negs r0, r0 ands r0, r2 strb r0, [r1, 0x1] ldr r4, =0x000027f9 adds r0, r4, 0 bl FreeObjectTilesByTag adds r0, r4, 0 bl FreeObjectPaletteByTag bl dp01_tbl7_exec_completed _0805FA48: pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_805F994 thumb_func_start sub_805FA70 sub_805FA70: @ 805FA70 push {r4-r6,lr} ldr r6, =gUnknown_02024064 ldrb r0, [r6] ldr r5, =gUnknown_03005D70 adds r1, r0, r5 ldrb r1, [r1] movs r2, 0 movs r3, 0 bl sub_8074AA0 adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 ldrb r0, [r6] adds r0, r5 ldrb r0, [r0] bl sub_80729D0 lsls r4, 16 asrs r1, r4, 16 movs r0, 0x1 negs r0, r0 cmp r1, r0 beq _0805FAB8 ldrb r0, [r6] adds r0, r5 ldrb r0, [r0] movs r2, 0 bl heathbar_draw_hp b _0805FABC .pool _0805FAB8: bl dp01_tbl7_exec_completed _0805FABC: pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_805FA70 thumb_func_start sub_805FAC4 sub_805FAC4: @ 805FAC4 push {lr} ldr r2, =gUnknown_02020630 ldr r0, =gUnknown_020241E4 ldr r1, =gUnknown_02024064 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 _0805FAF2 ldr r0, =gUnknown_03005D70 adds r0, r3, r0 ldrb r0, [r0] bl sub_8072984 bl dp01_tbl7_exec_completed _0805FAF2: pop {r0} bx r0 .pool thumb_func_end sub_805FAC4 thumb_func_start sub_805FB08 sub_805FB08: @ 805FB08 push {r4-r6,lr} ldr r0, =gUnknown_020244D0 ldr r0, [r0] ldr r6, =gUnknown_02024064 ldrb r2, [r6] ldr r1, [r0, 0x4] lsls r0, r2, 1 adds r0, r2 lsls r0, 2 adds r0, r1 ldrb r1, [r0] movs r0, 0x40 ands r0, r1 cmp r0, 0 bne _0805FB62 ldr r5, =gUnknown_020241E4 adds r0, r2, r5 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r4, =gUnknown_02020630 adds r0, r4 bl obj_free_rotscale_entry ldrb r0, [r6] adds r0, r5 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 bl RemoveObjectAndFreeTiles ldrb r0, [r6] bl sub_805EEE0 ldr r1, =gUnknown_03005D70 ldrb r0, [r6] adds r0, r1 ldrb r0, [r0] bl sub_8072984 bl dp01_tbl7_exec_completed _0805FB62: pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_805FB08 thumb_func_start bx_t7_button_a bx_t7_button_a: @ 805FB7C push {lr} movs r0, 0 bl IsTextPrinterActive lsls r0, 16 cmp r0, 0 bne _0805FB8E bl dp01_tbl7_exec_completed _0805FB8E: pop {r0} bx r0 thumb_func_end bx_t7_button_a thumb_func_start bx_blink_t7 bx_blink_t7: @ 805FB94 push {r4,lr} ldr r1, =gUnknown_020241E4 ldr r0, =gUnknown_02024064 ldrb r0, [r0] adds r0, r1 ldrb r1, [r0] ldr r2, =gUnknown_02020630 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 _0805FBE0 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, =gUnknown_020244B9 strb r3, [r0] bl dp01_tbl7_exec_completed b _0805FC0A .pool _0805FBE0: ldrh r0, [r4, 0x30] movs r1, 0x3 ands r0, r1 cmp r0, 0 bne _0805FC04 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] _0805FC04: ldrh r0, [r4, 0x30] adds r0, 0x1 strh r0, [r4, 0x30] _0805FC0A: pop {r4} pop {r0} bx r0 thumb_func_end bx_blink_t7 thumb_func_start sub_805FC10 sub_805FC10: @ 805FC10 push {r4,lr} ldr r2, =gUnknown_02020630 ldr r0, =gUnknown_03005D70 ldr r4, =gUnknown_02024064 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, =DummyObjectCallback cmp r1, r0 bne _0805FC5C ldr r0, =gUnknown_020244D0 ldr r0, [r0] ldr r1, [r0] lsls r0, r3, 2 adds r0, r1 ldrb r1, [r0] movs r0, 0x4 ands r0, r1 cmp r0, 0 beq _0805FC50 adds r0, r3, 0 adds r1, r3, 0 adds r2, r3, 0 movs r3, 0x6 bl move_anim_start_t4 _0805FC50: ldr r0, =gUnknown_03005D60 ldrb r1, [r4] lsls r1, 2 adds r1, r0 ldr r0, =bx_803AEDC str r0, [r1] _0805FC5C: pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_805FC10 thumb_func_start bx_803AEDC bx_803AEDC: @ 805FC80 push {r4,lr} ldr r0, =gUnknown_020244D0 ldr r0, [r0] ldr r4, =gUnknown_02024064 ldrb r1, [r4] ldr r2, [r0, 0x4] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r1, [r0] movs r0, 0x40 ands r0, r1 cmp r0, 0 bne _0805FCDA bl sub_80A36C8 lsls r0, 24 cmp r0, 0 bne _0805FCDA ldr r2, =gUnknown_02020630 ldr r1, =gUnknown_020241E4 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, [r0] ldr r0, =DummyObjectCallback cmp r1, r0 beq _0805FCCA ldr r0, =nullsub_18 cmp r1, r0 bne _0805FCDA _0805FCCA: ldr r0, =gMPlay_BGM ldr r1, =0x0000ffff movs r2, 0x80 lsls r2, 1 bl m4aMPlayVolumeControl bl dp01_tbl7_exec_completed _0805FCDA: pop {r4} pop {r0} bx r0 .pool thumb_func_end bx_803AEDC thumb_func_start sub_805FD00 sub_805FD00: @ 805FD00 push {r4-r7,lr} ldr r4, =gUnknown_020244D0 ldr r0, [r4] ldr r5, =gUnknown_02024064 ldrb r2, [r5] ldr r1, [r0, 0x4] lsls r0, r2, 1 adds r0, r2 lsls r0, 2 adds r3, r0, r1 ldrb r1, [r3, 0x1] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _0805FDBC ldr r7, =gUnknown_02020630 ldr r6, =gUnknown_020241E4 adds r0, r2, r6 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r1, r7, 0 adds r1, 0x1C adds r0, r1 ldr r1, [r0] ldr r0, =DummyObjectCallback cmp r1, r0 bne _0805FDBC ldrb r1, [r3] movs r0, 0x7F ands r0, r1 strb r0, [r3] ldr r0, [r4] ldrb r2, [r5] ldr r0, [r0, 0x4] lsls r1, r2, 1 adds r1, r2 lsls r1, 2 adds r1, r0 ldrb r2, [r1, 0x1] movs r0, 0x2 negs r0, r0 ands r0, r2 strb r0, [r1, 0x1] ldr r4, =0x000027f9 adds r0, r4, 0 bl FreeObjectTilesByTag adds r0, r4, 0 bl FreeObjectPaletteByTag ldrb r0, [r5] adds r0, r6 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r7 movs r1, 0 bl StartObjectImageAnim ldr r4, =gUnknown_03005D70 ldrb r1, [r5] adds r0, r1, r4 ldrb r0, [r0] ldr r2, =gUnknown_0202406E lsls r1, 1 adds r1, r2 ldrh r2, [r1] movs r1, 0x64 muls r1, r2 ldr r2, =gEnemyParty adds r1, r2 movs r2, 0 bl healthbar_draw_field_maybe ldrb r0, [r5] bl sub_8076918 ldrb r0, [r5] adds r0, r4 ldrb r0, [r0] bl sub_80729D0 ldrb r0, [r5] bl sub_805E408 ldr r1, =gUnknown_03005D60 ldrb r0, [r5] lsls r0, 2 adds r0, r1 ldr r1, =sub_805FC10 str r1, [r0] _0805FDBC: pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_805FD00 thumb_func_start sub_805FDF0 sub_805FDF0: @ 805FDF0 push {r4-r6,lr} ldr r6, =gUnknown_020244D0 ldr r0, [r6] ldr r5, =gUnknown_02024064 ldrb r2, [r5] ldr r1, [r0, 0x4] lsls r3, r2, 1 adds r0, r3, r2 lsls r0, 2 adds r0, r1 ldrb r1, [r0] movs r0, 0x88 ands r0, r1 cmp r0, 0 bne _0805FE22 ldr r0, =gUnknown_0202406E adds r0, r3, r0 ldrh r1, [r0] movs r0, 0x64 muls r1, r0 ldr r0, =gEnemyParty adds r1, r0 adds r0, r2, 0 bl sub_8172EF0 _0805FE22: ldr r4, =gUnknown_02020630 ldr r0, =gUnknown_03005D7C 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, =DummyObjectCallback cmp r1, r0 bne _0805FE8C ldr r0, [r6] ldr r1, [r0, 0x4] lsls r0, r2, 1 adds r0, r2 lsls r0, 2 adds r0, r1 ldrb r1, [r0] movs r0, 0x8 ands r0, r1 cmp r0, 0 bne _0805FE8C adds r0, r3, r4 bl RemoveObjectAndFreeTiles ldrb r4, [r5] ldr r1, =gUnknown_0202406E lsls r0, r4, 1 adds r0, r1 ldrh r1, [r0] movs r0, 0x64 muls r0, r1 ldr r1, =gEnemyParty adds r0, r1 movs r1, 0xB bl GetMonData adds r1, r0, 0 lsls r1, 16 lsrs r1, 16 adds r0, r4, 0 bl sub_805EE54 ldr r1, =gUnknown_03005D60 ldrb r0, [r5] lsls r0, 2 adds r0, r1 ldr r1, =sub_805FD00 str r1, [r0] _0805FE8C: pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_805FDF0 thumb_func_start sub_805FEB8 sub_805FEB8: @ 805FEB8 push {lr} ldr r0, =gUnknown_020244D0 ldr r2, [r0] ldr r0, =gUnknown_02024064 ldrb r1, [r0] ldr r2, [r2, 0x4] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r1, [r0] movs r0, 0x10 ands r0, r1 cmp r0, 0 bne _0805FEDA bl dp01_tbl7_exec_completed _0805FEDA: pop {r0} bx r0 .pool thumb_func_end sub_805FEB8 thumb_func_start bx_803B0F4 bx_803B0F4: @ 805FEE8 push {lr} ldr r0, =gUnknown_020244D0 ldr r2, [r0] ldr r0, =gUnknown_02024064 ldrb r1, [r0] ldr r2, [r2, 0x4] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r1, [r0] movs r0, 0x20 ands r0, r1 cmp r0, 0 bne _0805FF0A bl dp01_tbl7_exec_completed _0805FF0A: pop {r0} bx r0 .pool thumb_func_end bx_803B0F4 thumb_func_start dp01_tbl7_exec_completed dp01_tbl7_exec_completed: @ 805FF18 push {r4,lr} sub sp, 0x4 ldr r1, =gUnknown_03005D60 ldr r4, =gUnknown_02024064 ldrb r0, [r4] lsls r0, 2 adds r0, r1 ldr r1, =bx_exec_buffer_A_ch0_tbl7 str r1, [r0] ldr r0, =gBattleTypeFlags ldr r0, [r0] movs r1, 0x2 ands r0, r1 cmp r0, 0 beq _0805FF6C bl link_get_multiplayer_id mov r1, sp strb r0, [r1] movs r0, 0x2 movs r1, 0x4 mov r2, sp bl dp01_prepare_buffer_wireless_probably ldr r1, =gUnknown_02023064 ldrb r0, [r4] lsls r0, 9 adds r0, r1 movs r1, 0x38 strb r1, [r0] b _0805FF7E .pool _0805FF6C: ldr r2, =gUnknown_02024068 ldr r1, =gBitTable ldrb r0, [r4] lsls r0, 2 adds r0, r1 ldr r1, [r0] ldr r0, [r2] bics r0, r1 str r0, [r2] _0805FF7E: add sp, 0x4 pop {r4} pop {r0} bx r0 .pool thumb_func_end dp01_tbl7_exec_completed thumb_func_start dp01t_00_7_getattr dp01t_00_7_getattr: @ 805FF90 push {r4-r6,lr} sub sp, 0x100 movs r6, 0 ldr r1, =gUnknown_02023064 ldr r0, =gUnknown_02024064 ldrb r2, [r0] lsls r0, r2, 9 adds r1, 0x2 adds r1, r0, r1 ldrb r0, [r1] cmp r0, 0 bne _0805FFC8 ldr r0, =gUnknown_0202406E lsls r1, r2, 1 adds r1, r0 ldrb r0, [r1] mov r1, sp bl sub_8060004 adds r6, r0, 0 b _0805FFEA .pool _0805FFC8: ldrb r4, [r1] movs r5, 0 _0805FFCC: movs r0, 0x1 ands r0, r4 cmp r0, 0 beq _0805FFE2 lsls r0, r5, 24 lsrs r0, 24 mov r2, sp adds r1, r2, r6 bl sub_8060004 adds r6, r0 _0805FFE2: lsrs r4, 1 adds r5, 0x1 cmp r5, 0x5 ble _0805FFCC _0805FFEA: lsls r1, r6, 16 lsrs r1, 16 movs r0, 0x1 mov r2, sp bl dp01_build_cmdbuf_x1D_1D_numargs_varargs bl dp01_tbl7_exec_completed add sp, 0x100 pop {r4-r6} pop {r0} bx r0 thumb_func_end dp01t_00_7_getattr thumb_func_start sub_8060004 sub_8060004: @ 8060004 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, =gUnknown_02023064 ldr r3, =gUnknown_02024064 ldrb r0, [r3] lsls r0, 9 adds r1, r2, 0x1 adds r0, r1 ldrb r0, [r0] cmp r0, 0x3B bls _0806002E bl _0806079A _0806002E: lsls r0, 2 ldr r1, =_08060044 adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _08060044: .4byte _08060134 .4byte _08060358 .4byte _08060368 .4byte _08060378 .4byte _080603E0 .4byte _080603E0 .4byte _080603E0 .4byte _080603E0 .4byte _080603FC .4byte _08060438 .4byte _08060438 .4byte _08060438 .4byte _08060438 .4byte _0806079A .4byte _0806079A .4byte _0806079A .4byte _0806079A .4byte _08060454 .4byte _08060464 .4byte _08060494 .4byte _080604A4 .4byte _080604B4 .4byte _080604C4 .4byte _080604D4 .4byte _080604E4 .4byte _080604F4 .4byte _08060504 .4byte _08060514 .4byte _08060524 .4byte _08060534 .4byte _08060544 .4byte _08060554 .4byte _080605A4 .4byte _080605B4 .4byte _080605C4 .4byte _080605D4 .4byte _080605E4 .4byte _080605F4 .4byte _08060604 .4byte _08060614 .4byte _08060624 .4byte _08060658 .4byte _08060668 .4byte _08060678 .4byte _08060688 .4byte _08060698 .4byte _080606A8 .4byte _080606B8 .4byte _080606C8 .4byte _080606E8 .4byte _080606F8 .4byte _08060708 .4byte _08060718 .4byte _08060728 .4byte _08060738 .4byte _08060748 .4byte _08060758 .4byte _08060768 .4byte _08060778 .4byte _08060788 _08060134: movs r0, 0x64 adds r4, r5, 0 muls r4, r0 ldr r0, =gEnemyParty adds r4, r0 adds r0, r4, 0 movs r1, 0xB bl GetMonData mov r1, sp strh r0, [r1] adds r0, r4, 0 movs r1, 0xC bl GetMonData 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 _08060180: adds r1, r6, 0 adds r1, 0xD mov r0, r8 bl GetMonData strh r0, [r4] adds r1, r6, 0 adds r1, 0x11 mov r0, r8 bl GetMonData mov r2, r9 adds r1, r2, r6 strb r0, [r1] adds r4, 0x2 adds r6, 0x1 cmp r6, 0x3 ble _08060180 movs r0, 0x64 adds r4, r5, 0 muls r4, r0 ldr r0, =gEnemyParty adds r4, r0 adds r0, r4, 0 movs r1, 0x15 bl GetMonData mov r1, r10 strb r0, [r1] adds r0, r4, 0 movs r1, 0x20 bl GetMonData ldr r2, [sp, 0x80] strb r0, [r2] adds r0, r4, 0 movs r1, 0x19 bl GetMonData str r0, [sp, 0x44] adds r0, r4, 0 movs r1, 0x27 bl GetMonData 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 GetMonData mov r3, sp movs r6, 0x1F ands r0, r6 lsls r0, 5 ldrh r2, [r3, 0x14] ldr r1, =0xfffffc1f ands r1, r2 orrs r1, r0 strh r1, [r3, 0x14] adds r0, r4, 0 movs r1, 0x29 bl GetMonData 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 GetMonData movs r1, 0x1F ands r1, r0 lsls r1, 15 ldr r0, [sp, 0x14] ldr r2, =0xfff07fff ands r0, r2 orrs r0, r1 str r0, [sp, 0x14] adds r0, r4, 0 movs r1, 0x2B bl GetMonData mov r3, sp ands r0, r6 lsls r0, 4 ldrh r2, [r3, 0x16] ldr r1, =0xfffffe0f ands r1, r2 orrs r1, r0 strh r1, [r3, 0x16] adds r0, r4, 0 movs r1, 0x2C bl GetMonData 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 GetMonData str r0, [sp, 0x48] adds r0, r4, 0 movs r1, 0x37 bl GetMonData str r0, [sp, 0x4C] adds r0, r4, 0 movs r1, 0x38 bl GetMonData ldr r1, [sp, 0x7C] strb r0, [r1] adds r0, r4, 0 movs r1, 0x39 bl GetMonData mov r1, sp strh r0, [r1, 0x28] adds r0, r4, 0 movs r1, 0x3A bl GetMonData mov r1, sp strh r0, [r1, 0x2C] adds r0, r4, 0 movs r1, 0x3B bl GetMonData mov r1, sp strh r0, [r1, 0x2] adds r0, r4, 0 movs r1, 0x3C bl GetMonData mov r1, sp strh r0, [r1, 0x4] adds r0, r4, 0 movs r1, 0x3D bl GetMonData mov r1, sp strh r0, [r1, 0x6] adds r0, r4, 0 movs r1, 0x3E bl GetMonData mov r1, sp strh r0, [r1, 0x8] adds r0, r4, 0 movs r1, 0x3F bl GetMonData mov r1, sp strh r0, [r1, 0xA] adds r0, r4, 0 movs r1, 0x2D bl GetMonData 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 GetMonData 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 GetMonData str r0, [sp, 0x54] adds r0, r4, 0 movs r1, 0x2 ldr r2, [sp, 0x8C] bl GetMonData ldr r0, [sp, 0x84] ldr r1, [sp, 0x8C] bl StringCopy10 adds r0, r4, 0 movs r1, 0x7 ldr r2, [sp, 0x88] bl GetMonData mov r2, sp movs r6, 0 _08060338: adds r0, r7, r6 adds r1, r2, r6 ldrb r1, [r1] strb r1, [r0] adds r6, 0x1 cmp r6, 0x57 bls _08060338 b _0806079A .pool _08060358: movs r0, 0x64 muls r0, r5 ldr r1, =gEnemyParty adds r0, r1 movs r1, 0xB b _080606D2 .pool _08060368: movs r0, 0x64 muls r0, r5 ldr r1, =gEnemyParty adds r0, r1 movs r1, 0xC b _080606D2 .pool _08060378: 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, =gEnemyParty adds r4, r1, r0 mov r8, r9 _0806038E: adds r1, r6, 0 adds r1, 0xD adds r0, r4, 0 bl GetMonData mov r1, r8 strh r0, [r1] adds r1, r6, 0 adds r1, 0x11 adds r0, r4, 0 bl GetMonData mov r2, r10 adds r1, r2, r6 strb r0, [r1] movs r0, 0x2 add r8, r0 adds r6, 0x1 cmp r6, 0x3 ble _0806038E movs r0, 0x64 muls r0, r5 ldr r1, =gEnemyParty adds r0, r1 movs r1, 0x15 bl GetMonData mov r1, r9 strb r0, [r1, 0xC] mov r2, r9 movs r6, 0 _080603CC: adds r0, r7, r6 adds r1, r2, r6 ldrb r1, [r1] strb r1, [r0] adds r6, 0x1 cmp r6, 0xF bls _080603CC b _0806079A .pool _080603E0: movs r0, 0x64 muls r0, r5 ldr r1, =gEnemyParty adds r0, r1 ldrb r1, [r3] lsls r1, 9 adds r2, 0x1 adds r1, r2 ldrb r1, [r1] adds r1, 0x9 b _080606D2 .pool _080603FC: movs r6, 0 movs r0, 0x64 adds r4, r5, 0 muls r4, r0 ldr r2, =gEnemyParty mov r8, r2 _08060408: adds r1, r6, 0 adds r1, 0x11 mov r2, r8 adds r0, r4, r2 bl GetMonData adds r1, r7, r6 strb r0, [r1] adds r6, 0x1 cmp r6, 0x3 ble _08060408 movs r0, 0x64 muls r0, r5 ldr r1, =gEnemyParty adds r0, r1 movs r1, 0x15 bl GetMonData adds r1, r7, r6 strb r0, [r1] adds r6, 0x1 b _0806079A .pool _08060438: movs r0, 0x64 muls r0, r5 ldr r1, =gEnemyParty adds r0, r1 ldrb r1, [r3] lsls r1, 9 adds r2, 0x1 adds r1, r2 ldrb r1, [r1] adds r1, 0x8 b _08060792 .pool _08060454: movs r0, 0x64 muls r0, r5 ldr r1, =gEnemyParty adds r0, r1 movs r1, 0x1 b _0806046E .pool _08060464: movs r0, 0x64 muls r0, r5 ldr r1, =gEnemyParty adds r0, r1 movs r1, 0x19 _0806046E: bl GetMonData 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 _0806079A .pool _08060494: movs r0, 0x64 muls r0, r5 ldr r1, =gEnemyParty adds r0, r1 movs r1, 0x1A b _08060792 .pool _080604A4: movs r0, 0x64 muls r0, r5 ldr r1, =gEnemyParty adds r0, r1 movs r1, 0x1B b _08060792 .pool _080604B4: movs r0, 0x64 muls r0, r5 ldr r1, =gEnemyParty adds r0, r1 movs r1, 0x1C b _08060792 .pool _080604C4: movs r0, 0x64 muls r0, r5 ldr r1, =gEnemyParty adds r0, r1 movs r1, 0x1D b _08060792 .pool _080604D4: movs r0, 0x64 muls r0, r5 ldr r1, =gEnemyParty adds r0, r1 movs r1, 0x1E b _08060792 .pool _080604E4: movs r0, 0x64 muls r0, r5 ldr r1, =gEnemyParty adds r0, r1 movs r1, 0x1F b _08060792 .pool _080604F4: movs r0, 0x64 muls r0, r5 ldr r1, =gEnemyParty adds r0, r1 movs r1, 0x20 b _08060792 .pool _08060504: movs r0, 0x64 muls r0, r5 ldr r1, =gEnemyParty adds r0, r1 movs r1, 0x22 b _08060792 .pool _08060514: movs r0, 0x64 muls r0, r5 ldr r1, =gEnemyParty adds r0, r1 movs r1, 0x23 b _08060792 .pool _08060524: movs r0, 0x64 muls r0, r5 ldr r1, =gEnemyParty adds r0, r1 movs r1, 0x24 b _08060792 .pool _08060534: movs r0, 0x64 muls r0, r5 ldr r1, =gEnemyParty adds r0, r1 movs r1, 0x25 b _08060792 .pool _08060544: movs r0, 0x64 muls r0, r5 ldr r1, =gEnemyParty adds r0, r1 movs r1, 0x26 b _08060792 .pool _08060554: movs r0, 0x64 adds r4, r5, 0 muls r4, r0 ldr r0, =gEnemyParty adds r4, r0 adds r0, r4, 0 movs r1, 0x27 bl GetMonData strb r0, [r7] adds r0, r4, 0 movs r1, 0x28 bl GetMonData strb r0, [r7, 0x1] adds r0, r4, 0 movs r1, 0x29 bl GetMonData strb r0, [r7, 0x2] adds r0, r4, 0 movs r1, 0x2A bl GetMonData strb r0, [r7, 0x3] adds r0, r4, 0 movs r1, 0x2B bl GetMonData strb r0, [r7, 0x4] adds r0, r4, 0 movs r1, 0x2C bl GetMonData strb r0, [r7, 0x5] movs r6, 0x6 b _0806079A .pool _080605A4: movs r0, 0x64 muls r0, r5 ldr r1, =gEnemyParty adds r0, r1 movs r1, 0x27 b _08060792 .pool _080605B4: movs r0, 0x64 muls r0, r5 ldr r1, =gEnemyParty adds r0, r1 movs r1, 0x28 b _08060792 .pool _080605C4: movs r0, 0x64 muls r0, r5 ldr r1, =gEnemyParty adds r0, r1 movs r1, 0x29 b _08060792 .pool _080605D4: movs r0, 0x64 muls r0, r5 ldr r1, =gEnemyParty adds r0, r1 movs r1, 0x2A b _08060792 .pool _080605E4: movs r0, 0x64 muls r0, r5 ldr r1, =gEnemyParty adds r0, r1 movs r1, 0x2B b _08060792 .pool _080605F4: movs r0, 0x64 muls r0, r5 ldr r1, =gEnemyParty adds r0, r1 movs r1, 0x2C b _08060792 .pool _08060604: movs r0, 0x64 muls r0, r5 ldr r1, =gEnemyParty adds r0, r1 movs r1, 0 b _0806062E .pool _08060614: movs r0, 0x64 muls r0, r5 ldr r1, =gEnemyParty adds r0, r1 movs r1, 0x9 b _080606D2 .pool _08060624: movs r0, 0x64 muls r0, r5 ldr r1, =gEnemyParty adds r0, r1 movs r1, 0x37 _0806062E: bl GetMonData 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 _0806079A .pool _08060658: movs r0, 0x64 muls r0, r5 ldr r1, =gEnemyParty adds r0, r1 movs r1, 0x38 b _08060792 .pool _08060668: movs r0, 0x64 muls r0, r5 ldr r1, =gEnemyParty adds r0, r1 movs r1, 0x39 b _080606D2 .pool _08060678: movs r0, 0x64 muls r0, r5 ldr r1, =gEnemyParty adds r0, r1 movs r1, 0x3A b _080606D2 .pool _08060688: movs r0, 0x64 muls r0, r5 ldr r1, =gEnemyParty adds r0, r1 movs r1, 0x3B b _080606D2 .pool _08060698: movs r0, 0x64 muls r0, r5 ldr r1, =gEnemyParty adds r0, r1 movs r1, 0x3C b _080606D2 .pool _080606A8: movs r0, 0x64 muls r0, r5 ldr r1, =gEnemyParty adds r0, r1 movs r1, 0x3D b _080606D2 .pool _080606B8: movs r0, 0x64 muls r0, r5 ldr r1, =gEnemyParty adds r0, r1 movs r1, 0x3E b _080606D2 .pool _080606C8: movs r0, 0x64 muls r0, r5 ldr r1, =gEnemyParty adds r0, r1 movs r1, 0x3F _080606D2: bl GetMonData lsls r0, 16 lsrs r0, 16 strb r0, [r7] lsrs r0, 8 strb r0, [r7, 0x1] movs r6, 0x2 b _0806079A .pool _080606E8: movs r0, 0x64 muls r0, r5 ldr r1, =gEnemyParty adds r0, r1 movs r1, 0x16 b _08060792 .pool _080606F8: movs r0, 0x64 muls r0, r5 ldr r1, =gEnemyParty adds r0, r1 movs r1, 0x17 b _08060792 .pool _08060708: movs r0, 0x64 muls r0, r5 ldr r1, =gEnemyParty adds r0, r1 movs r1, 0x18 b _08060792 .pool _08060718: movs r0, 0x64 muls r0, r5 ldr r1, =gEnemyParty adds r0, r1 movs r1, 0x21 b _08060792 .pool _08060728: movs r0, 0x64 muls r0, r5 ldr r1, =gEnemyParty adds r0, r1 movs r1, 0x2F b _08060792 .pool _08060738: movs r0, 0x64 muls r0, r5 ldr r1, =gEnemyParty adds r0, r1 movs r1, 0x30 b _08060792 .pool _08060748: movs r0, 0x64 muls r0, r5 ldr r1, =gEnemyParty adds r0, r1 movs r1, 0x32 b _08060792 .pool _08060758: movs r0, 0x64 muls r0, r5 ldr r1, =gEnemyParty adds r0, r1 movs r1, 0x33 b _08060792 .pool _08060768: movs r0, 0x64 muls r0, r5 ldr r1, =gEnemyParty adds r0, r1 movs r1, 0x34 b _08060792 .pool _08060778: movs r0, 0x64 muls r0, r5 ldr r1, =gEnemyParty adds r0, r1 movs r1, 0x35 b _08060792 .pool _08060788: movs r0, 0x64 muls r0, r5 ldr r1, =gEnemyParty adds r0, r1 movs r1, 0x36 _08060792: bl GetMonData strb r0, [r7] movs r6, 0x1 _0806079A: 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 .pool thumb_func_end sub_8060004 thumb_func_start dp01t_01_2_read_pokmon_data_slice dp01t_01_2_read_pokmon_data_slice: @ 80607B0 push {r4-r7,lr} sub sp, 0x58 ldr r2, =gUnknown_0202406E ldr r5, =gUnknown_02024064 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, =gUnknown_02023064 lsls r1, 9 adds r0, r3, 0x1 adds r0, r1, r0 ldrb r2, [r0] ldr r0, =gEnemyParty 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 _08060806 adds r3, r0, 0 _080607EC: 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 _080607EC _08060806: 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_tbl7_exec_completed add sp, 0x58 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end dp01t_01_2_read_pokmon_data_slice thumb_func_start dp01t_02_7_setattr dp01t_02_7_setattr: @ 8060838 push {r4,r5,lr} ldr r1, =gUnknown_02023064 ldr r0, =gUnknown_02024064 ldrb r2, [r0] lsls r0, r2, 9 adds r1, 0x2 adds r1, r0, r1 ldrb r0, [r1] cmp r0, 0 bne _08060868 ldr r0, =gUnknown_0202406E lsls r1, r2, 1 adds r1, r0 ldrb r0, [r1] bl sub_8060890 b _08060886 .pool _08060868: ldrb r4, [r1] movs r5, 0 _0806086C: movs r0, 0x1 ands r0, r4 cmp r0, 0 beq _0806087A adds r0, r5, 0 bl sub_8060890 _0806087A: lsrs r4, 1 adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0x5 bls _0806086C _08060886: bl dp01_tbl7_exec_completed pop {r4,r5} pop {r0} bx r0 thumb_func_end dp01t_02_7_setattr thumb_func_start sub_8060890 sub_8060890: @ 8060890 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, =gUnknown_02024064 ldrb r0, [r3] lsls r0, 9 ldr r2, =gUnknown_02023067 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 _080608BE bl _0806119C _080608BE: lsls r0, 2 ldr r1, =_080608D4 adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _080608D4: .4byte _080609C4 .4byte _08060B5C .4byte _08060B78 .4byte _08060B94 .4byte _08060BE8 .4byte _08060BE8 .4byte _08060BE8 .4byte _08060BE8 .4byte _08060C08 .4byte _08060C70 .4byte _08060C70 .4byte _08060C70 .4byte _08060C70 .4byte _0806119C .4byte _0806119C .4byte _0806119C .4byte _0806119C .4byte _08060C98 .4byte _08060CB4 .4byte _08060CD0 .4byte _08060CEC .4byte _08060D08 .4byte _08060D24 .4byte _08060D40 .4byte _08060D5C .4byte _08060D78 .4byte _08060D94 .4byte _08060DB0 .4byte _08060DCC .4byte _08060DE8 .4byte _08060E04 .4byte _08060E20 .4byte _08060E94 .4byte _08060EB0 .4byte _08060ECC .4byte _08060EE8 .4byte _08060F04 .4byte _08060F20 .4byte _08060F3C .4byte _08060F58 .4byte _08060F74 .4byte _08060F90 .4byte _08060FAC .4byte _08060FC8 .4byte _08060FE4 .4byte _08061000 .4byte _0806101C .4byte _08061038 .4byte _08061054 .4byte _08061070 .4byte _0806108C .4byte _080610A8 .4byte _080610C4 .4byte _080610E0 .4byte _080610FC .4byte _08061118 .4byte _08061134 .4byte _08061150 .4byte _0806116C .4byte _08061188 _080609C4: movs r0, 0x64 adds r4, r5, 0 muls r4, r0 ldr r0, =gEnemyParty 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 _08060A2A: 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 _08060A2A movs r0, 0x64 adds r4, r5, 0 muls r4, r0 ldr r0, =gEnemyParty 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 _0806119C .pool _08060B5C: movs r0, 0x64 muls r0, r5 ldr r1, =gEnemyParty adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0xB bl pokemon_setattr b _0806119C .pool _08060B78: movs r0, 0x64 muls r0, r5 ldr r1, =gEnemyParty adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0xC bl pokemon_setattr b _0806119C .pool _08060B94: 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, =gEnemyParty adds r7, r1, r0 adds r6, r4, 0 adds r6, 0x8 _08060BAC: 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 _08060BAC movs r0, 0x64 muls r0, r5 ldr r1, =gEnemyParty adds r0, r1 movs r1, 0x15 mov r2, r9 bl pokemon_setattr b _0806119C .pool _08060BE8: movs r0, 0x64 muls r0, r5 ldr r1, =gEnemyParty adds r0, r1 ldr r3, =gUnknown_02023064 ldrb r2, [r6] lsls r2, 9 adds r1, r3, 0x1 adds r1, r2, r1 ldrb r1, [r1] adds r1, 0x9 b _08060C86 .pool _08060C08: movs r0, 0x64 adds r4, r5, 0 muls r4, r0 ldr r0, =gEnemyParty 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 _0806119C .pool _08060C70: movs r0, 0x64 muls r0, r5 ldr r1, =gEnemyParty adds r0, r1 ldr r3, =gUnknown_02023064 ldrb r2, [r6] lsls r2, 9 adds r1, r3, 0x1 adds r1, r2, r1 ldrb r1, [r1] adds r1, 0x8 _08060C86: adds r3, 0x3 adds r2, r3 bl pokemon_setattr b _0806119C .pool _08060C98: movs r0, 0x64 muls r0, r5 ldr r1, =gEnemyParty adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0x1 bl pokemon_setattr b _0806119C .pool _08060CB4: movs r0, 0x64 muls r0, r5 ldr r1, =gEnemyParty adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0x19 bl pokemon_setattr b _0806119C .pool _08060CD0: movs r0, 0x64 muls r0, r5 ldr r1, =gEnemyParty adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0x1A bl pokemon_setattr b _0806119C .pool _08060CEC: movs r0, 0x64 muls r0, r5 ldr r1, =gEnemyParty adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0x1B bl pokemon_setattr b _0806119C .pool _08060D08: movs r0, 0x64 muls r0, r5 ldr r1, =gEnemyParty adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0x1C bl pokemon_setattr b _0806119C .pool _08060D24: movs r0, 0x64 muls r0, r5 ldr r1, =gEnemyParty adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0x1D bl pokemon_setattr b _0806119C .pool _08060D40: movs r0, 0x64 muls r0, r5 ldr r1, =gEnemyParty adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0x1E bl pokemon_setattr b _0806119C .pool _08060D5C: movs r0, 0x64 muls r0, r5 ldr r1, =gEnemyParty adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0x1F bl pokemon_setattr b _0806119C .pool _08060D78: movs r0, 0x64 muls r0, r5 ldr r1, =gEnemyParty adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0x20 bl pokemon_setattr b _0806119C .pool _08060D94: movs r0, 0x64 muls r0, r5 ldr r1, =gEnemyParty adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0x22 bl pokemon_setattr b _0806119C .pool _08060DB0: movs r0, 0x64 muls r0, r5 ldr r1, =gEnemyParty adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0x23 bl pokemon_setattr b _0806119C .pool _08060DCC: movs r0, 0x64 muls r0, r5 ldr r1, =gEnemyParty adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0x24 bl pokemon_setattr b _0806119C .pool _08060DE8: movs r0, 0x64 muls r0, r5 ldr r1, =gEnemyParty adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0x25 bl pokemon_setattr b _0806119C .pool _08060E04: movs r0, 0x64 muls r0, r5 ldr r1, =gEnemyParty adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0x26 bl pokemon_setattr b _0806119C .pool _08060E20: movs r0, 0x64 adds r4, r5, 0 muls r4, r0 ldr r0, =gEnemyParty 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 _08060F2E .pool _08060E94: movs r0, 0x64 muls r0, r5 ldr r1, =gEnemyParty adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0x27 bl pokemon_setattr b _0806119C .pool _08060EB0: movs r0, 0x64 muls r0, r5 ldr r1, =gEnemyParty adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0x28 bl pokemon_setattr b _0806119C .pool _08060ECC: movs r0, 0x64 muls r0, r5 ldr r1, =gEnemyParty adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0x29 bl pokemon_setattr b _0806119C .pool _08060EE8: movs r0, 0x64 muls r0, r5 ldr r1, =gEnemyParty adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0x2A bl pokemon_setattr b _0806119C .pool _08060F04: movs r0, 0x64 muls r0, r5 ldr r1, =gEnemyParty adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0x2B bl pokemon_setattr b _0806119C .pool _08060F20: movs r0, 0x64 muls r0, r5 ldr r1, =gEnemyParty adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 _08060F2E: movs r1, 0x2C bl pokemon_setattr b _0806119C .pool _08060F3C: movs r0, 0x64 muls r0, r5 ldr r1, =gEnemyParty adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0 bl pokemon_setattr b _0806119C .pool _08060F58: movs r0, 0x64 muls r0, r5 ldr r1, =gEnemyParty adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0x9 bl pokemon_setattr b _0806119C .pool _08060F74: movs r0, 0x64 muls r0, r5 ldr r1, =gEnemyParty adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0x37 bl pokemon_setattr b _0806119C .pool _08060F90: movs r0, 0x64 muls r0, r5 ldr r1, =gEnemyParty adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0x38 bl pokemon_setattr b _0806119C .pool _08060FAC: movs r0, 0x64 muls r0, r5 ldr r1, =gEnemyParty adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0x39 bl pokemon_setattr b _0806119C .pool _08060FC8: movs r0, 0x64 muls r0, r5 ldr r1, =gEnemyParty adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0x3A bl pokemon_setattr b _0806119C .pool _08060FE4: movs r0, 0x64 muls r0, r5 ldr r1, =gEnemyParty adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0x3B bl pokemon_setattr b _0806119C .pool _08061000: movs r0, 0x64 muls r0, r5 ldr r1, =gEnemyParty adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0x3C bl pokemon_setattr b _0806119C .pool _0806101C: movs r0, 0x64 muls r0, r5 ldr r1, =gEnemyParty adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0x3D bl pokemon_setattr b _0806119C .pool _08061038: movs r0, 0x64 muls r0, r5 ldr r1, =gEnemyParty adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0x3E bl pokemon_setattr b _0806119C .pool _08061054: movs r0, 0x64 muls r0, r5 ldr r1, =gEnemyParty adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0x3F bl pokemon_setattr b _0806119C .pool _08061070: movs r0, 0x64 muls r0, r5 ldr r1, =gEnemyParty adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0x16 bl pokemon_setattr b _0806119C .pool _0806108C: movs r0, 0x64 muls r0, r5 ldr r1, =gEnemyParty adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0x17 bl pokemon_setattr b _0806119C .pool _080610A8: movs r0, 0x64 muls r0, r5 ldr r1, =gEnemyParty adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0x18 bl pokemon_setattr b _0806119C .pool _080610C4: movs r0, 0x64 muls r0, r5 ldr r1, =gEnemyParty adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0x21 bl pokemon_setattr b _0806119C .pool _080610E0: movs r0, 0x64 muls r0, r5 ldr r1, =gEnemyParty adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0x2F bl pokemon_setattr b _0806119C .pool _080610FC: movs r0, 0x64 muls r0, r5 ldr r1, =gEnemyParty adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0x30 bl pokemon_setattr b _0806119C .pool _08061118: movs r0, 0x64 muls r0, r5 ldr r1, =gEnemyParty adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0x32 bl pokemon_setattr b _0806119C .pool _08061134: movs r0, 0x64 muls r0, r5 ldr r1, =gEnemyParty adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0x33 bl pokemon_setattr b _0806119C .pool _08061150: movs r0, 0x64 muls r0, r5 ldr r1, =gEnemyParty adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0x34 bl pokemon_setattr b _0806119C .pool _0806116C: movs r0, 0x64 muls r0, r5 ldr r1, =gEnemyParty adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0x35 bl pokemon_setattr b _0806119C .pool _08061188: movs r0, 0x64 muls r0, r5 ldr r1, =gEnemyParty adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0x36 bl pokemon_setattr _0806119C: add sp, 0x38 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_8060890 thumb_func_start sub_80611B0 sub_80611B0: @ 80611B0 push {r4-r7,lr} ldr r1, =gUnknown_0202406E ldr r7, =gUnknown_02024064 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, =gUnknown_02023064 lsls r2, 9 adds r0, r4, 0x1 adds r0, r2, r0 ldrb r0, [r0] ldr r1, =gEnemyParty adds r0, r1 adds r5, r3, r0 movs r3, 0 adds r0, r4, 0x2 adds r2, r0 ldrb r2, [r2] cmp r3, r2 bcs _08061208 adds r6, r4, 0 adds r2, r7, 0 adds r4, r0, 0 _080611E6: 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 _080611E6 _08061208: bl dp01_tbl7_exec_completed pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_80611B0 thumb_func_start sub_8061224 sub_8061224: @ 8061224 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} ldr r6, =gUnknown_02024064 ldrb r0, [r6] lsls r0, 1 ldr r1, =gUnknown_0202406E adds r0, r1 ldrh r0, [r0] movs r7, 0x64 muls r0, r7 ldr r2, =gEnemyParty mov r10, r2 add r0, r10 movs r1, 0xB bl GetMonData mov r8, r0 lsls r0, 16 lsrs r0, 16 mov r8, r0 ldrb r1, [r6] lsls r0, r1, 1 ldr r2, =gUnknown_0202406E adds r0, r2 ldrh r0, [r0] muls r0, r7 add r0, r10 bl sub_805DC0C ldrb r0, [r6] bl battle_get_per_side_status adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 mov r0, r8 bl sub_806A068 ldr r0, =gUnknown_0202499C mov r9, r0 ldrb r0, [r6] movs r1, 0x2 bl sub_80A5C6C adds r5, r0, 0 lsls r5, 24 lsrs r5, 24 ldrb r0, [r6] bl sub_80A6138 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldrb r0, [r6] bl sub_80A82E4 adds r3, r0, 0 lsls r3, 24 lsrs r3, 24 mov r0, r9 adds r1, r5, 0 adds r2, r4, 0 bl AddObjectToFront ldr r4, =gUnknown_020241E4 ldrb r1, [r6] adds r1, r4 strb r0, [r1] ldr r5, =gUnknown_02020630 ldrb r0, [r6] adds r0, r4 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 ldr r1, =0x0000ff10 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, =gUnknown_020244E4 adds r2, r1 ldrb r1, [r2] bl StartObjectImageAnim ldrb r4, [r6] lsls r0, r4, 1 ldr r2, =gUnknown_0202406E adds r0, r2 ldrh r0, [r0] muls r0, r7 add r0, r10 movs r1, 0xB bl GetMonData adds r1, r0, 0 lsls r1, 16 lsrs r1, 16 adds r0, r4, 0 bl sub_805EE54 ldr r1, =gUnknown_03005D60 ldrb r0, [r6] lsls r0, 2 adds r0, r1 ldr r1, =sub_805F994 str r1, [r0] pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_8061224 thumb_func_start sub_806137C sub_806137C: @ 806137C push {r4,lr} ldr r4, =gUnknown_02024064 ldrb r0, [r4] ldr r1, =gUnknown_0202449C ldr r1, [r1] adds r0, r1 adds r0, 0x5C movs r1, 0x6 strb r1, [r0] ldr r1, =gUnknown_0202406E ldrb r0, [r4] lsls r2, r0, 1 adds r2, r1 ldr r3, =gUnknown_02023064 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_80613DC ldr r1, =gUnknown_03005D60 ldrb r0, [r4] lsls r0, 2 adds r0, r1 ldr r1, =sub_805FDF0 str r1, [r0] pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_806137C thumb_func_start sub_80613DC sub_80613DC: @ 80613DC 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_805EF84 ldr r0, =gUnknown_0202406E lsls r4, r6, 1 adds r4, r0 ldr r0, =gUnknown_02023064 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, =gEnemyParty adds r0, r5 movs r1, 0xB bl GetMonData mov r8, r0 lsls r0, 16 lsrs r0, 16 mov r8, r0 ldr r0, =sub_805D714 bl CreateInvisibleSpriteWithCallback ldr r1, =gUnknown_03005D7C 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_805DC0C adds r0, r6, 0 bl battle_get_per_side_status adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 mov r0, r8 bl sub_806A068 ldr r0, =gUnknown_0202499C mov r9, r0 adds r0, r6, 0 movs r1, 0x2 bl sub_80A5C6C adds r5, r0, 0 lsls r5, 24 lsrs r5, 24 adds r0, r6, 0 bl sub_80A6138 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 adds r0, r6, 0 bl sub_80A82E4 adds r3, r0, 0 lsls r3, 24 lsrs r3, 24 mov r0, r9 adds r1, r5, 0 adds r2, r4, 0 bl AddObjectToFront ldr r4, =gUnknown_020241E4 adds r4, r6, r4 strb r0, [r4] ldr r5, =gUnknown_02020630 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] mov r0, r10 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 strh r6, [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, =gUnknown_020244E4 adds r6, r1 ldrb r1, [r6] bl StartObjectImageAnim 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, =DummyObjectCallback str r1, [r0] movs r0, 0 movs r1, 0xFE bl sub_80753E8 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 .pool thumb_func_end sub_80613DC thumb_func_start sub_806156C sub_806156C: @ 806156C push {r4-r6,lr} ldr r1, =gUnknown_02023064 ldr r6, =gUnknown_02024064 ldrb r2, [r6] lsls r0, r2, 9 adds r1, 0x1 adds r0, r1 ldrb r3, [r0] cmp r3, 0 bne _080615B4 ldr r0, =gUnknown_020244D0 ldr r0, [r0] ldr r1, [r0, 0x4] lsls r0, r2, 1 adds r0, r2 lsls r0, 2 adds r0, r1 strb r3, [r0, 0x4] ldr r1, =gUnknown_03005D60 ldrb r0, [r6] lsls r0, 2 adds r0, r1 ldr r1, =sub_8061604 str r1, [r0] b _080615F0 .pool _080615B4: ldr r5, =gUnknown_020241E4 adds r0, r2, r5 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r4, =gUnknown_02020630 adds r0, r4 bl obj_free_rotscale_entry ldrb r0, [r6] adds r0, r5 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 bl RemoveObjectAndFreeTiles ldrb r0, [r6] bl sub_805EEE0 ldr r1, =gUnknown_03005D70 ldrb r0, [r6] adds r0, r1 ldrb r0, [r0] bl sub_8072984 bl dp01_tbl7_exec_completed _080615F0: pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_806156C thumb_func_start sub_8061604 sub_8061604: @ 8061604 push {r4-r6,lr} ldr r6, =gUnknown_020244D0 ldr r4, [r6] ldr r5, =gUnknown_02024064 ldrb r2, [r5] ldr r1, [r4, 0x4] lsls r0, r2, 1 adds r0, r2 lsls r0, 2 adds r3, r0, r1 ldrb r0, [r3, 0x4] cmp r0, 0 beq _0806162C cmp r0, 0x1 beq _0806165A b _08061682 .pool _0806162C: ldr r1, [r4] lsls r0, r2, 2 adds r0, r1 ldrb r1, [r0] movs r0, 0x4 ands r0, r1 cmp r0, 0 beq _08061646 adds r0, r2, 0 adds r1, r2, 0 movs r3, 0x5 bl move_anim_start_t4 _08061646: ldr r0, [r6] ldrb r1, [r5] ldr r2, [r0, 0x4] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r2 movs r1, 0x1 strb r1, [r0, 0x4] b _08061682 _0806165A: ldrb r1, [r3] movs r0, 0x40 ands r0, r1 lsls r0, 24 lsrs r0, 24 cmp r0, 0 bne _08061682 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, =gUnknown_03005D60 ldrb r0, [r5] lsls r0, 2 adds r0, r1 ldr r1, =sub_805FB08 str r1, [r0] _08061682: pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_8061604 thumb_func_start sub_8061690 sub_8061690: @ 8061690 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} ldr r0, =gBattleTypeFlags ldr r2, [r0] movs r0, 0x80 lsls r0, 20 ands r0, r2 cmp r0, 0 beq _080616B0 bl sub_806B830 b _0806175A .pool _080616B0: ldr r3, =gUnknown_02038BCA ldrh r1, [r3] ldr r0, =0x000003fe cmp r1, r0 bne _080616C8 bl sub_81A4CB0 b _0806175A .pool _080616C8: movs r0, 0x80 lsls r0, 19 ands r0, r2 cmp r0, 0 beq _08061708 movs r0, 0x80 lsls r0, 8 ands r2, r0 cmp r2, 0 beq _08061700 ldr r0, =gUnknown_02024064 ldrb r0, [r0] cmp r0, 0x1 bne _080616F0 ldrh r0, [r3] bl sub_81D5588 b _0806175A .pool _080616F0: ldr r0, =gUnknown_02038BCC ldrh r0, [r0] bl sub_81D5588 b _0806175A .pool _08061700: ldrh r0, [r3] bl sub_81D5588 b _0806175A _08061708: ldr r0, =0x003f0100 ands r0, r2 cmp r0, 0 beq _0806174C ldr r0, =0x00808000 ands r2, r0 cmp r2, 0 beq _08061744 ldr r0, =gUnknown_02024064 ldrb r0, [r0] cmp r0, 0x1 bne _08061734 ldrh r0, [r3] bl sub_8162AA0 b _0806175A .pool _08061734: ldr r0, =gUnknown_02038BCC ldrh r0, [r0] bl sub_8162AA0 b _0806175A .pool _08061744: ldrh r0, [r3] bl sub_8162AA0 b _0806175A _0806174C: movs r0, 0x80 lsls r0, 4 ands r0, r2 cmp r0, 0 beq _08061760 bl sub_8165244 _0806175A: lsls r0, 24 lsrs r4, r0, 24 b _08061796 _08061760: movs r0, 0x80 lsls r0, 8 ands r2, r0 cmp r2, 0 beq _08061788 ldr r0, =gUnknown_02024064 ldrb r0, [r0] cmp r0, 0x1 beq _08061788 ldr r2, =gTrainers ldr r0, =gUnknown_02038BCC ldrh r1, [r0] b _0806178C .pool _08061788: ldr r2, =gTrainers ldrh r1, [r3] _0806178C: lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r2 ldrb r4, [r0, 0x3] _08061796: ldr r0, =gBattleTypeFlags ldr r0, [r0] ldr r1, =0x00008040 ands r0, r1 cmp r0, 0 beq _080617C8 ldr r0, =gUnknown_02024064 ldrb r0, [r0] bl battle_get_per_side_status movs r1, 0x2 ands r1, r0 movs r7, 0xC8 cmp r1, 0 beq _080617CA movs r7, 0x98 b _080617CA .pool _080617C8: movs r7, 0xB0 _080617CA: mov r8, r4 ldr r5, =gUnknown_02024064 ldrb r1, [r5] mov r0, r8 bl sub_805DF38 ldrb r0, [r5] bl battle_get_per_side_status adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 mov r0, r8 bl template_build_for_pokemon_or_trainer ldr r6, =gUnknown_0202499C mov r9, r7 ldr r1, =gUnknown_083054E0 mov r2, r8 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 ldrb r0, [r5] bl sub_80A82E4 adds r3, r0, 0 lsls r3, 24 lsrs r3, 24 adds r0, r6, 0 mov r1, r9 adds r2, r4, 0 bl AddObjectToFront ldr r6, =gUnknown_020241E4 ldrb r1, [r5] adds r1, r6 strb r0, [r1] ldr r4, =gUnknown_02020630 ldrb r0, [r5] adds r0, r6 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 ldr r1, =0x0000ff10 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] ldr r1, =gTrainerFrontPicPaletteTable mov r2, r8 lsls r0, r2, 3 adds r0, r1 ldrh r0, [r0, 0x4] bl IndexOfObjectPaletteTag ldrb r1, [r5] adds r1, r6 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] ldrb r0, [r5] adds r0, r6 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 mov r1, r8 strh r1, [r0, 0x6] 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, =sub_805D7AC str r1, [r0] ldr r1, =gUnknown_03005D60 ldrb r0, [r5] lsls r0, 2 adds r0, r1 ldr r1, =sub_805F1D0 str r1, [r0] pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_8061690 thumb_func_start sub_80618D8 sub_80618D8: @ 80618D8 push {r4-r6,lr} mov r6, r8 push {r6} ldr r0, =gBattleTypeFlags ldr r2, [r0] movs r0, 0x80 lsls r0, 20 ands r0, r2 cmp r0, 0 beq _080618F8 bl sub_806B830 b _080619A2 .pool _080618F8: ldr r3, =gUnknown_02038BCA ldrh r1, [r3] ldr r0, =0x000003fe cmp r1, r0 bne _08061910 bl sub_81A4CB0 b _080619A2 .pool _08061910: movs r0, 0x80 lsls r0, 19 ands r0, r2 cmp r0, 0 beq _08061950 movs r0, 0x80 lsls r0, 8 ands r2, r0 cmp r2, 0 beq _08061948 ldr r0, =gUnknown_02024064 ldrb r0, [r0] cmp r0, 0x1 bne _08061938 ldrh r0, [r3] bl sub_81D5588 b _080619A2 .pool _08061938: ldr r0, =gUnknown_02038BCC ldrh r0, [r0] bl sub_81D5588 b _080619A2 .pool _08061948: ldrh r0, [r3] bl sub_81D5588 b _080619A2 _08061950: ldr r0, =0x003f0100 ands r0, r2 cmp r0, 0 beq _08061994 ldr r0, =0x00808000 ands r2, r0 cmp r2, 0 beq _0806198C ldr r0, =gUnknown_02024064 ldrb r0, [r0] cmp r0, 0x1 bne _0806197C ldrh r0, [r3] bl sub_8162AA0 b _080619A2 .pool _0806197C: ldr r0, =gUnknown_02038BCC ldrh r0, [r0] bl sub_8162AA0 b _080619A2 .pool _0806198C: ldrh r0, [r3] bl sub_8162AA0 b _080619A2 _08061994: movs r0, 0x80 lsls r0, 4 ands r0, r2 cmp r0, 0 beq _080619A8 bl sub_8165244 _080619A2: lsls r0, 24 lsrs r0, 24 b _080619DE _080619A8: movs r0, 0x80 lsls r0, 8 ands r2, r0 cmp r2, 0 beq _080619D0 ldr r0, =gUnknown_02024064 ldrb r0, [r0] cmp r0, 0x1 beq _080619D0 ldr r2, =gTrainers ldr r0, =gUnknown_02038BCC ldrh r1, [r0] b _080619D4 .pool _080619D0: ldr r2, =gTrainers ldrh r1, [r3] _080619D4: lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r2 ldrb r0, [r0, 0x3] _080619DE: mov r8, r0 ldr r6, =gUnknown_02024064 ldrb r1, [r6] bl sub_805DF38 ldrb r0, [r6] bl battle_get_per_side_status adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 mov r0, r8 bl template_build_for_pokemon_or_trainer ldr r0, =gUnknown_0202499C ldr r2, =gUnknown_083054E0 mov r3, r8 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 AddObjectToFront ldr r5, =gUnknown_020241E4 ldrb r1, [r6] adds r1, r5 strb r0, [r1] ldr r4, =gUnknown_02020630 ldrb r0, [r6] 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, [r6] 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, [r6] adds r0, r5 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 ldr r1, =0x0000fffe strh r1, [r0, 0x2E] ldr r1, =gTrainerFrontPicPaletteTable mov r2, r8 lsls r0, r2, 3 adds r0, r1 ldrh r0, [r0, 0x4] bl IndexOfObjectPaletteTag ldrb r1, [r6] 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] ldrb r0, [r6] adds r0, r5 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 mov r3, r8 strh r3, [r0, 0x6] 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, =sub_805D7AC str r1, [r0] ldr r1, =gUnknown_03005D60 ldrb r0, [r6] lsls r0, 2 adds r0, r1 ldr r1, =sub_805F208 str r1, [r0] pop {r3} mov r8, r3 pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_80618D8 thumb_func_start sub_8061AF0 sub_8061AF0: @ 8061AF0 push {r4-r6,lr} ldr r6, =gUnknown_020241E4 ldr r4, =gUnknown_02024064 ldrb r0, [r4] adds r0, r6 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r5, =gUnknown_02020630 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, =sub_80A6EEC 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, =DummyObjectCallback bl oamt_set_x3A_32 ldr r1, =gUnknown_03005D60 ldrb r0, [r4] lsls r0, 2 adds r0, r1 ldr r1, =sub_805F240 str r1, [r0] pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_8061AF0 thumb_func_start sub_8061B9C sub_8061B9C: @ 8061B9C push {r4-r6,lr} ldr r6, =gUnknown_020244D0 ldr r4, [r6] ldr r5, =gUnknown_02024064 ldrb r2, [r5] ldr r0, [r4, 0x4] lsls r1, r2, 1 adds r1, r2 lsls r1, 2 adds r3, r1, r0 ldrb r0, [r3, 0x4] cmp r0, 0 bne _08061BF0 ldr r1, [r4] lsls r0, r2, 2 adds r0, r1 ldrb r1, [r0] movs r0, 0x4 ands r0, r1 cmp r0, 0 beq _08061BD0 adds r0, r2, 0 adds r1, r2, 0 movs r3, 0x5 bl move_anim_start_t4 _08061BD0: ldr r0, [r6] ldrb r1, [r5] ldr r2, [r0, 0x4] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r1, [r0, 0x4] adds r1, 0x1 strb r1, [r0, 0x4] b _08061C2C .pool _08061BF0: ldrb r1, [r3] movs r0, 0x40 ands r0, r1 lsls r0, 24 lsrs r0, 24 cmp r0, 0 bne _08061C2C strb r0, [r3, 0x4] movs r0, 0x10 movs r1, 0x3F bl audio_play_and_stuff ldr r2, =gUnknown_02020630 ldr r1, =gUnknown_020241E4 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, =sub_8039934 str r1, [r0] ldr r1, =gUnknown_03005D60 ldrb r0, [r5] lsls r0, 2 adds r0, r1 ldr r1, =sub_805FAC4 str r1, [r0] _08061C2C: pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_8061B9C thumb_func_start sub_8061C48 sub_8061C48: @ 8061C48 push {lr} bl dp01_tbl7_exec_completed pop {r0} bx r0 thumb_func_end sub_8061C48 thumb_func_start sub_8061C54 sub_8061C54: @ 8061C54 push {lr} bl dp01_tbl7_exec_completed pop {r0} bx r0 thumb_func_end sub_8061C54 thumb_func_start sub_8061C60 sub_8061C60: @ 8061C60 push {lr} bl dp01_tbl7_exec_completed pop {r0} bx r0 thumb_func_end sub_8061C60 thumb_func_start sub_8061C6C sub_8061C6C: @ 8061C6C push {lr} bl dp01_tbl7_exec_completed pop {r0} bx r0 thumb_func_end sub_8061C6C thumb_func_start sub_8061C78 sub_8061C78: @ 8061C78 push {r4-r6,lr} ldr r6, =gUnknown_02024064 ldrb r0, [r6] bl mplay_80342A4 lsls r0, 24 cmp r0, 0 beq _08061C8A b _08061D9E _08061C8A: ldr r0, =gUnknown_02023064 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, =gUnknown_02038432 mov r1, r12 adds r1, 0x3 adds r2, r1 ldrb r1, [r2] strb r1, [r5] ldr r4, =gUnknown_02038408 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, =gUnknown_02038404 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, =gUnknown_0203841A ldrb r1, [r6] lsls r1, 9 mov r2, r12 adds r2, 0xA adds r1, r2 ldrb r1, [r1] strb r1, [r3] ldr r4, =gUnknown_0203841C 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, =gUnknown_02038400 ldrb r2, [r6] lsls r2, 9 mov r1, r12 adds r1, 0x10 adds r2, r1 str r2, [r3] ldr r3, =gUnknown_020244BC ldrb r1, [r6] lsls r1, 2 adds r1, r3 ldr r2, [r2] str r2, [r1] ldrb r1, [r5] bl sub_805DB8C lsls r0, 24 lsrs r3, r0, 24 cmp r3, 0 beq _08061D80 bl dp01_tbl7_exec_completed b _08061D9E .pool _08061D80: ldr r0, =gUnknown_020244D0 ldr r0, [r0] ldrb r1, [r6] ldr r2, [r0, 0x4] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r2 strb r3, [r0, 0x4] ldr r1, =gUnknown_03005D60 ldrb r0, [r6] lsls r0, 2 adds r0, r1 ldr r1, =bx_move_anim_7 str r1, [r0] _08061D9E: pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_8061C78 thumb_func_start bx_move_anim_7 bx_move_anim_7: @ 8061DB0 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} ldr r2, =gUnknown_02023064 ldr r6, =gUnknown_02024064 ldrb r3, [r6] lsls r1, r3, 9 adds r0, r2, 0x1 mov r10, r0 adds r0, r1, r0 ldrb r4, [r0] adds r5, r2, 0x2 mov r9, r5 adds r0, r1, r5 ldrb r0, [r0] lsls r0, 8 orrs r4, r0 adds r2, 0xB adds r1, r2 ldrb r1, [r1] mov r8, r1 ldr r7, =gUnknown_020244D0 ldr r5, [r7] ldr r1, [r5, 0x4] lsls r0, r3, 1 adds r0, r3 lsls r0, 2 adds r0, r1 ldrb r2, [r0, 0x4] cmp r2, 0x1 beq _08061E48 cmp r2, 0x1 bgt _08061E08 cmp r2, 0 beq _08061E12 b _08061F24 .pool _08061E08: cmp r2, 0x2 beq _08061E72 cmp r2, 0x3 beq _08061EE8 b _08061F24 _08061E12: ldr r1, [r5] lsls r0, r3, 2 adds r1, r0, r1 ldrb r2, [r1] movs r0, 0xC ands r0, r2 cmp r0, 0x4 bne _08061E34 movs r0, 0x8 orrs r0, r2 strb r0, [r1] ldrb r2, [r6] adds r0, r2, 0 adds r1, r2, 0 movs r3, 0x5 bl move_anim_start_t4 _08061E34: ldr r0, [r7] ldrb r1, [r6] ldr r2, [r0, 0x4] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r2 movs r1, 0x1 strb r1, [r0, 0x4] b _08061F24 _08061E48: ldrb r1, [r0] movs r0, 0x40 ands r0, r1 cmp r0, 0 bne _08061F24 movs r0, 0 bl sub_805EB9C adds r0, r4, 0 bl move_anim_start_t1 ldr r0, [r7] ldrb r1, [r6] ldr r2, [r0, 0x4] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r2 movs r1, 0x2 strb r1, [r0, 0x4] b _08061F24 _08061E72: ldr r0, =gUnknown_020383F8 ldr r0, [r0] bl _call_via_r0 ldr r0, =gUnknown_020383FD ldrb r0, [r0] cmp r0, 0 bne _08061F24 movs r0, 0x1 bl sub_805EB9C ldr r0, [r7] ldrb r2, [r6] ldr r1, [r0] lsls r0, r2, 2 adds r0, r1 ldrb r1, [r0] movs r0, 0x4 ands r0, r1 cmp r0, 0 beq _08061EC0 mov r0, r8 cmp r0, 0x1 bhi _08061EC0 adds r0, r2, 0 adds r1, r2, 0 movs r3, 0x6 bl move_anim_start_t4 ldr r0, [r7] ldrb r1, [r6] ldr r0, [r0] lsls r1, 2 adds r1, r0 ldrb r2, [r1] movs r0, 0x9 negs r0, r0 ands r0, r2 strb r0, [r1] _08061EC0: ldr r0, =gUnknown_020244D0 ldr r2, [r0] ldr r0, =gUnknown_02024064 ldrb r1, [r0] ldr r2, [r2, 0x4] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r2 movs r1, 0x3 strb r1, [r0, 0x4] b _08061F24 .pool _08061EE8: ldrb r1, [r0] movs r0, 0x40 ands r0, r1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0 bne _08061F24 bl sub_805E394 ldrb r0, [r6] lsls r2, r0, 9 mov r3, r10 adds r1, r2, r3 ldrb r1, [r1] add r2, r9 ldrb r2, [r2] lsls r2, 8 orrs r1, r2 bl sub_805E94C ldr r0, [r7] ldrb r1, [r6] ldr r2, [r0, 0x4] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r2 strb r4, [r0, 0x4] bl dp01_tbl7_exec_completed _08061F24: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end bx_move_anim_7 thumb_func_start sub_8061F34 sub_8061F34: @ 8061F34 push {r4,r5,lr} ldr r0, =gUnknown_02022E14 movs r1, 0 strh r1, [r0] ldr r0, =gUnknown_02022E16 strh r1, [r0] ldr r5, =gUnknown_02024064 ldrb r4, [r5] lsls r4, 9 ldr r0, =gUnknown_02023066 adds r4, r0 ldrh r0, [r4] bl battle_pick_message ldr r0, =gUnknown_02022E2C movs r1, 0 bl battle_show_message_maybe ldr r1, =gUnknown_03005D60 ldrb r0, [r5] lsls r0, 2 adds r0, r1 ldr r1, =bx_t7_button_a str r1, [r0] ldrb r0, [r5] ldrh r1, [r4] bl sub_81A57E4 pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_8061F34 thumb_func_start sub_8061F90 sub_8061F90: @ 8061F90 push {lr} bl dp01_tbl7_exec_completed pop {r0} bx r0 thumb_func_end sub_8061F90 thumb_func_start sub_8061F9C sub_8061F9C: @ 8061F9C push {lr} bl sub_8063880 bl dp01_tbl7_exec_completed pop {r0} bx r0 thumb_func_end sub_8061F9C thumb_func_start sub_8061FAC sub_8061FAC: @ 8061FAC push {lr} bl dp01_tbl7_exec_completed pop {r0} bx r0 thumb_func_end sub_8061FAC thumb_func_start sub_8061FB8 sub_8061FB8: @ 8061FB8 push {r4-r6,lr} ldr r0, =gBattleTypeFlags ldr r2, [r0] movs r0, 0x80 lsls r0, 10 ands r0, r2 cmp r0, 0 beq _08061FE4 bl sub_805D19C adds r2, r0, 0 lsls r2, 16 lsrs r2, 16 movs r0, 0x1 movs r1, 0xA _08061FD6: bl dp01_build_cmdbuf_x21_a_bb _08061FDA: bl dp01_tbl7_exec_completed b _08062156 .pool _08061FE4: ldr r0, =gUnknown_02024064 ldrb r0, [r0] lsls r0, 9 ldr r1, =gUnknown_02023068 adds r5, r0, r1 movs r0, 0x93 lsls r0, 3 ands r2, r0 cmp r2, 0 beq _080620C4 movs r0, 0xF bl BattleAI_SetupAIData bl sub_8130BA4 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x5 beq _08062022 cmp r4, 0x5 bgt _0806201C cmp r4, 0x4 beq _08062028 b _08062040 .pool _0806201C: cmp r4, 0x6 beq _08062030 b _08062040 _08062022: movs r0, 0x1 movs r1, 0x4 b _0806202C _08062028: movs r0, 0x1 movs r1, 0x3 _0806202C: movs r2, 0 b _08061FD6 _08062030: ldr r0, =gEnemyMonIndex ldrb r2, [r0] movs r0, 0x1 movs r1, 0xF b _08061FD6 .pool _08062040: ldr r3, =gBattleMoves 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 _08062062 ldr r0, =gEnemyMonIndex ldr r1, =gUnknown_02024064 ldrb r1, [r1] strb r1, [r0] _08062062: 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 _0806209C movs r0, 0 bl battle_get_side_with_given_state ldr r5, =gEnemyMonIndex strb r0, [r5] ldr r0, =gUnknown_02024210 ldrb r1, [r0] ldr r2, =gBitTable ldrb r0, [r5] lsls r0, 2 adds r0, r2 ldr r0, [r0] ands r1, r0 cmp r1, 0 beq _0806209C movs r0, 0x2 bl battle_get_side_with_given_state strb r0, [r5] _0806209C: ldr r0, =gEnemyMonIndex 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 _08061FDA .pool _080620C4: movs r6, 0x3 _080620C6: bl Random adds r4, r0, 0 ands r4, r6 lsls r0, r4, 1 adds r0, r5, r0 ldrh r2, [r0] cmp r2, 0 beq _080620C6 ldr r1, =gBattleMoves 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 _08062108 ldr r0, =gUnknown_02024064 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 _08062152 .pool _08062108: ldr r0, =gBattleTypeFlags ldr r0, [r0] movs r1, 0x1 ands r0, r1 cmp r0, 0 beq _0806213C 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 _08062152 .pool _0806213C: 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 _08062152: bl dp01_tbl7_exec_completed _08062156: pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_8061FB8 thumb_func_start sub_806215C sub_806215C: @ 806215C push {lr} ldr r0, =gUnknown_02024064 ldrb r0, [r0] lsrs r0, 1 ldr r1, =gUnknown_0202449C ldr r1, [r1] lsls r0, 1 adds r0, r1 adds r0, 0xC0 ldrb r1, [r0] movs r0, 0x1 bl dp01_build_cmdbuf_x23_aa_0 bl dp01_tbl7_exec_completed pop {r0} bx r0 .pool thumb_func_end sub_806215C thumb_func_start sub_8062188 sub_8062188: @ 8062188 push {r4-r7,lr} ldr r0, =gUnknown_02024064 ldrb r0, [r0] ldr r1, =gUnknown_0202449C ldr r1, [r1] adds r0, r1 movs r2, 0xA5 lsls r2, 2 adds r1, r0, r2 ldrb r0, [r1] cmp r0, 0x6 bne _08062254 bl sub_8063A90 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x6 bne _0806225A ldr r0, =gBattleTypeFlags ldr r0, [r0] movs r1, 0x1 ands r0, r1 cmp r0, 0 bne _080621D4 movs r0, 0x1 bl battle_get_side_with_given_state lsls r0, 24 lsrs r5, r0, 24 adds r7, r5, 0 b _080621E8 .pool _080621D4: 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 r5, r0, 24 _080621E8: ldr r0, =gBattleTypeFlags ldr r0, [r0] ldr r1, =0x00808000 ands r0, r1 cmp r0, 0 beq _08062214 ldr r0, =gUnknown_02024064 ldrb r0, [r0] cmp r0, 0x1 bne _08062210 movs r0, 0 movs r6, 0x3 b _08062218 .pool _08062210: movs r0, 0x3 b _08062216 _08062214: movs r0, 0 _08062216: movs r6, 0x6 _08062218: adds r4, r0, 0 b _0806221E _0806221C: adds r4, 0x1 _0806221E: cmp r4, r6 bge _0806225A movs r0, 0x64 muls r0, r4 ldr r1, =gEnemyParty adds r0, r1 movs r1, 0x39 bl GetMonData cmp r0, 0 beq _0806221C ldr r1, =gUnknown_0202406E lsls r0, r7, 1 adds r0, r1 ldrh r0, [r0] cmp r4, r0 beq _0806221C lsls r0, r5, 1 adds r0, r1 ldrh r0, [r0] cmp r4, r0 beq _0806221C b _0806225A .pool _08062254: ldrb r4, [r1] movs r0, 0x6 strb r0, [r1] _0806225A: ldr r0, =gUnknown_02024064 ldrb r0, [r0] ldr r1, =gUnknown_0202449C ldr r1, [r1] adds r0, r1 adds r0, 0x5C 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 dp01_tbl7_exec_completed pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_8062188 thumb_func_start sub_8062288 sub_8062288: @ 8062288 push {lr} bl dp01_tbl7_exec_completed pop {r0} bx r0 thumb_func_end sub_8062288 thumb_func_start sub_8062294 sub_8062294: @ 8062294 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, =gUnknown_02023064 ldr r0, =gUnknown_02024064 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, =0x00007fff cmp r7, r0 beq _08062324 ldr r6, =gUnknown_0202406E lsls r0, r4, 1 adds r0, r6 ldrh r0, [r0] movs r5, 0x64 muls r0, r5 ldr r4, =gEnemyParty adds r0, r4 movs r1, 0x3A bl GetMonData 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 GetMonData adds r3, r0, 0 mov r1, r9 ldrb r0, [r1] ldr r1, =gUnknown_03005D70 adds r1, r0, r1 ldrb r1, [r1] str r7, [sp] mov r2, r8 bl sub_807294C b _0806234E .pool _08062324: ldr r1, =gUnknown_0202406E lsls r0, r4, 1 adds r0, r1 ldrh r1, [r0] movs r0, 0x64 muls r0, r1 ldr r1, =gEnemyParty adds r0, r1 movs r1, 0x3A bl GetMonData adds r2, r0, 0 mov r1, r9 ldrb r0, [r1] ldr r1, =gUnknown_03005D70 adds r1, r0, r1 ldrb r1, [r1] str r7, [sp] movs r3, 0 bl sub_807294C _0806234E: ldr r1, =gUnknown_03005D60 ldr r0, =gUnknown_02024064 ldrb r0, [r0] lsls r0, 2 adds r0, r1 ldr r1, =sub_805FA70 str r1, [r0] add sp, 0x4 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_8062294 thumb_func_start sub_8062384 sub_8062384: @ 8062384 push {lr} bl dp01_tbl7_exec_completed pop {r0} bx r0 thumb_func_end sub_8062384 thumb_func_start sub_8062390 sub_8062390: @ 8062390 push {r4,lr} ldr r4, =gUnknown_02024064 ldrb r0, [r4] bl mplay_80342A4 lsls r0, 24 cmp r0, 0 bne _080623E4 ldr r0, =gUnknown_03005D70 ldrb r1, [r4] adds r0, r1, r0 ldrb r0, [r0] ldr r2, =gUnknown_0202406E lsls r1, 1 adds r1, r2 ldrh r2, [r1] movs r1, 0x64 muls r1, r2 ldr r2, =gEnemyParty adds r1, r2 movs r2, 0x9 bl healthbar_draw_field_maybe ldrb r2, [r4] ldr r0, =gUnknown_020244D0 ldr r0, [r0] ldr r0, [r0, 0x4] lsls r1, r2, 1 adds r1, r2 lsls r1, 2 adds r1, r0 ldrb r2, [r1] movs r0, 0x11 negs r0, r0 ands r0, r2 strb r0, [r1] ldr r1, =gUnknown_03005D60 ldrb r0, [r4] lsls r0, 2 adds r0, r1 ldr r1, =sub_805FEB8 str r1, [r0] _080623E4: pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_8062390 thumb_func_start sub_8062408 sub_8062408: @ 8062408 push {r4,r5,lr} ldr r5, =gUnknown_02024064 ldrb r0, [r5] bl mplay_80342A4 lsls r0, 24 cmp r0, 0 bne _08062458 ldr r4, =gUnknown_02023064 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, =gUnknown_03005D60 ldrb r0, [r5] lsls r0, 2 adds r0, r1 ldr r1, =sub_805FEB8 str r1, [r0] _08062458: pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_8062408 thumb_func_start sub_8062470 sub_8062470: @ 8062470 push {lr} bl dp01_tbl7_exec_completed pop {r0} bx r0 thumb_func_end sub_8062470 thumb_func_start sub_806247C sub_806247C: @ 806247C push {lr} bl dp01_tbl7_exec_completed pop {r0} bx r0 thumb_func_end sub_806247C thumb_func_start sub_8062488 sub_8062488: @ 8062488 push {lr} bl dp01_tbl7_exec_completed pop {r0} bx r0 thumb_func_end sub_8062488 thumb_func_start sub_8062494 sub_8062494: @ 8062494 push {lr} bl dp01_tbl7_exec_completed pop {r0} bx r0 thumb_func_end sub_8062494 thumb_func_start sub_80624A0 sub_80624A0: @ 80624A0 push {lr} bl dp01_tbl7_exec_completed pop {r0} bx r0 thumb_func_end sub_80624A0 thumb_func_start sub_80624AC sub_80624AC: @ 80624AC push {lr} bl dp01_tbl7_exec_completed pop {r0} bx r0 thumb_func_end sub_80624AC thumb_func_start sub_80624B8 sub_80624B8: @ 80624B8 push {lr} bl dp01_tbl7_exec_completed pop {r0} bx r0 thumb_func_end sub_80624B8 thumb_func_start sub_80624C4 sub_80624C4: @ 80624C4 push {lr} bl dp01_tbl7_exec_completed pop {r0} bx r0 thumb_func_end sub_80624C4 thumb_func_start sub_80624D0 sub_80624D0: @ 80624D0 push {lr} bl dp01_tbl7_exec_completed pop {r0} bx r0 thumb_func_end sub_80624D0 thumb_func_start sub_80624DC sub_80624DC: @ 80624DC push {lr} ldr r2, =gUnknown_02022D0C ldrb r1, [r2] movs r0, 0x80 negs r0, r0 ands r0, r1 strb r0, [r2] bl dp01_tbl7_exec_completed pop {r0} bx r0 .pool thumb_func_end sub_80624DC thumb_func_start sub_80624F8 sub_80624F8: @ 80624F8 push {lr} ldr r3, =gUnknown_02022D0C ldr r1, =gUnknown_02023064 ldr r0, =gUnknown_02024064 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_tbl7_exec_completed pop {r0} bx r0 .pool thumb_func_end sub_80624F8 thumb_func_start sub_8062530 sub_8062530: @ 8062530 push {lr} ldr r2, =gUnknown_02022D0C ldrb r1, [r2] movs r0, 0x7F ands r0, r1 strb r0, [r2] bl dp01_tbl7_exec_completed pop {r0} bx r0 .pool thumb_func_end sub_8062530 thumb_func_start sub_8062548 sub_8062548: @ 8062548 push {lr} ldr r3, =gUnknown_02022D0C 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_tbl7_exec_completed pop {r0} bx r0 .pool thumb_func_end sub_8062548 thumb_func_start dp01t_29_7_blink dp01t_29_7_blink: @ 8062570 push {r4,lr} ldr r3, =gUnknown_02020630 ldr r2, =gUnknown_020241E4 ldr r4, =gUnknown_02024064 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 _080625A4 bl dp01_tbl7_exec_completed b _080625CE .pool _080625A4: ldr r1, =gUnknown_020244B9 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_80769F4 ldr r1, =gUnknown_03005D60 ldrb r0, [r4] lsls r0, 2 adds r0, r1 ldr r1, =bx_blink_t7 str r1, [r0] _080625CE: pop {r4} pop {r0} bx r0 .pool thumb_func_end dp01t_29_7_blink thumb_func_start sub_80625E0 sub_80625E0: @ 80625E0 push {lr} bl dp01_tbl7_exec_completed pop {r0} bx r0 thumb_func_end sub_80625E0 thumb_func_start sub_80625EC sub_80625EC: @ 80625EC push {r4,lr} ldr r4, =gUnknown_02024064 ldrb r0, [r4] bl battle_side_get_owner lsls r0, 24 movs r3, 0x3F cmp r0, 0 bne _08062600 movs r3, 0xC0 _08062600: ldr r2, =gUnknown_02023064 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_tbl7_exec_completed pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_80625EC thumb_func_start sub_8062630 sub_8062630: @ 8062630 push {r4,r5,lr} ldr r4, =gUnknown_02023064 ldr r5, =gUnknown_02024064 ldrb r0, [r5] lsls r3, r0, 9 adds r0, r4, 0x3 adds r0, r3, r0 ldrb r0, [r0] cmp r0, 0 beq _0806266C bl sub_805EA60 ldrb r1, [r5] lsls r1, 9 adds r0, r4, 0x1 adds r0, r1, r0 ldrb r0, [r0] adds r2, r4, 0x2 adds r1, r2 ldrb r1, [r1] lsls r1, 8 orrs r0, r1 bl song_play_for_text b _08062680 .pool _0806266C: adds r0, r4, 0x1 adds r0, r3, r0 ldrb r0, [r0] adds r1, r4, 0x2 adds r1, r3, r1 ldrb r1, [r1] lsls r1, 8 orrs r0, r1 bl fanfare_play _08062680: bl dp01_tbl7_exec_completed pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_8062630 thumb_func_start sub_806268C sub_806268C: @ 806268C push {lr} ldr r1, =gUnknown_0202406E ldr r0, =gUnknown_02024064 ldrb r0, [r0] lsls r0, 1 adds r0, r1 ldrh r1, [r0] movs r0, 0x64 muls r0, r1 ldr r1, =gEnemyParty adds r0, r1 movs r1, 0xB bl GetMonData lsls r0, 16 lsrs r0, 16 movs r1, 0x19 movs r2, 0x5 bl sub_80A32E4 bl dp01_tbl7_exec_completed pop {r0} bx r0 .pool thumb_func_end sub_806268C thumb_func_start dp01t_2E_7_battle_intro dp01t_2E_7_battle_intro: @ 80626C8 push {lr} ldr r1, =gUnknown_02023064 ldr r0, =gUnknown_02024064 ldrb r0, [r0] lsls r0, 9 adds r1, 0x1 adds r0, r1 ldrb r0, [r0] bl battle_intro_launch ldr r2, =gUnknown_020243FC ldrh r0, [r2] movs r1, 0x1 orrs r0, r1 strh r0, [r2] bl dp01_tbl7_exec_completed pop {r0} bx r0 .pool thumb_func_end dp01t_2E_7_battle_intro thumb_func_start sub_80626FC sub_80626FC: @ 80626FC push {r4-r6,lr} ldr r5, =gUnknown_020241E4 ldr r6, =gUnknown_02024064 ldrb r0, [r6] adds r0, r5 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r4, =gUnknown_02020630 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, =sub_80A6EEC 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, =sub_806280C bl oamt_set_x3A_32 ldr r0, =sub_8062828 movs r1, 0x5 bl CreateTask lsls r0, 24 lsrs r0, 24 ldr r4, =gTasks lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r4 ldrb r0, [r6] strh r0, [r1, 0x8] ldr r3, =gUnknown_020244D0 ldr r0, [r3] ldrb r2, [r6] ldr r1, [r0, 0x4] lsls r0, r2, 1 adds r0, r2 lsls r0, 2 adds r0, r1 ldrb r1, [r0] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _080627BE ldr r0, =gUnknown_020244B4 adds r0, r2, r0 ldrb r1, [r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r4 ldr r1, =sub_8073C30 str r1, [r0] _080627BE: ldr r0, [r3] ldr r2, [r0, 0x8] ldrb r0, [r2, 0x9] movs r1, 0x1 orrs r0, r1 strb r0, [r2, 0x9] ldr r1, =gUnknown_03005D60 ldrb r0, [r6] lsls r0, 2 adds r0, r1 ldr r1, =nullsub_26 str r1, [r0] pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_80626FC thumb_func_start sub_806280C sub_806280C: @ 806280C push {r4,lr} adds r4, r0, 0 ldrh r0, [r4, 0x6] bl sub_805DFE4 adds r0, r4, 0 bl obj_free_rotscale_entry adds r0, r4, 0 bl RemoveObjectAndFreeTiles pop {r4} pop {r0} bx r0 thumb_func_end sub_806280C thumb_func_start sub_8062828 sub_8062828: @ 8062828 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} lsls r0, 24 lsrs r0, 24 mov r8, r0 ldr r7, =gUnknown_02024064 ldrb r0, [r7] mov r9, r0 ldr r1, =gTasks 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 _0806286C ldr r0, =gBattleTypeFlags ldr r1, [r0] movs r0, 0x40 ands r0, r1 cmp r0, 0 bne _0806286C movs r0, 0x80 lsls r0, 8 ands r1, r0 cmp r1, 0 beq _080628A0 _0806286C: ldr r0, =gUnknown_02023064 ldrb r1, [r7] lsls r2, r1, 9 adds r0, 0x1 adds r2, r0 ldr r0, =gUnknown_0202406E lsls r1, 1 adds r1, r0 ldrh r0, [r1] strb r0, [r2] ldrb r0, [r7] movs r1, 0 bl sub_80613DC b _080628E0 .pool _080628A0: ldr r4, =gUnknown_02023064 ldrb r0, [r7] lsls r1, r0, 9 adds r4, 0x1 adds r1, r4 ldr r6, =gUnknown_0202406E lsls r0, 1 adds r0, r6 ldrh r0, [r0] strb r0, [r1] ldrb r0, [r7] movs r1, 0 bl sub_80613DC 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_80613DC ldrb r0, [r7] eors r0, r5 strb r0, [r7] _080628E0: ldr r1, =gUnknown_03005D60 ldr r2, =gUnknown_02024064 ldrb r0, [r2] lsls r0, 2 adds r0, r1 ldr r1, =sub_805F560 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 .pool thumb_func_end sub_8062828 thumb_func_start dp01t_30_7_0803D67C dp01t_30_7_0803D67C: @ 8062918 push {r4-r7,lr} ldr r1, =gUnknown_02023064 ldr r0, =gUnknown_02024064 ldrb r2, [r0] lsls r0, r2, 9 adds r1, 0x1 adds r0, r1 ldrb r0, [r0] cmp r0, 0 beq _08062948 adds r0, r2, 0 bl battle_side_get_owner lsls r0, 24 cmp r0, 0 bne _08062948 bl dp01_tbl7_exec_completed b _08062A12 .pool _08062948: ldr r4, =gUnknown_020244D0 ldr r0, [r4] ldr r3, =gUnknown_02024064 ldrb r1, [r3] ldr r2, [r0, 0x4] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r1, [r0] movs r2, 0x1 orrs r1, r2 strb r1, [r0] ldr r1, =gUnknown_02023064 ldrb r2, [r3] lsls r0, r2, 9 adds r1, 0x2 adds r0, r1 ldrb r0, [r0] adds r7, r3, 0 cmp r0, 0 beq _080629B4 ldr r0, [r4] ldr r1, [r0, 0x4] lsls r0, r2, 1 adds r0, r2 lsls r0, 2 adds r3, r0, r1 ldrb r2, [r3, 0x1] lsls r1, r2, 27 lsrs r0, r1, 28 cmp r0, 0x1 bhi _080629AC adds r0, 0x1 movs r1, 0xF ands r0, r1 lsls r0, 1 movs r1, 0x1F negs r1, r1 ands r1, r2 orrs r1, r0 strb r1, [r3, 0x1] b _08062A12 .pool _080629AC: movs r0, 0x1F negs r0, r0 ands r0, r2 strb r0, [r3, 0x1] _080629B4: adds r5, r7, 0 ldrb r0, [r5] lsls r3, r0, 9 ldr r4, =gUnknown_02023068 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_80735DC ldr r2, =gUnknown_020244B4 ldrb r1, [r5] adds r1, r2 movs r3, 0 strb r0, [r1] ldr r6, =gUnknown_020244D0 ldr r0, [r6] ldrb r1, [r5] ldr r2, [r0, 0x4] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r2 strb r3, [r0, 0x5] ldrb r2, [r5] lsls r0, r2, 9 adds r0, r4 ldrb r0, [r0] cmp r0, 0 beq _08062A06 ldr r0, [r6] ldr r1, [r0, 0x4] lsls r0, r2, 1 adds r0, r2 lsls r0, 2 adds r0, r1 movs r1, 0x5D strb r1, [r0, 0x5] _08062A06: ldr r0, =gUnknown_03005D60 ldrb r1, [r7] lsls r1, 2 adds r1, r0 ldr r0, =bx_0803D790_t7 str r0, [r1] _08062A12: pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end dp01t_30_7_0803D67C thumb_func_start bx_0803D790_t7 bx_0803D790_t7: @ 8062A2C push {r4,lr} ldr r4, =gUnknown_020244D0 ldr r0, [r4] ldr r3, =gUnknown_02024064 ldrb r1, [r3] ldr r2, [r0, 0x4] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r1, [r0, 0x5] adds r2, r1, 0x1 strb r2, [r0, 0x5] lsls r1, 24 lsrs r1, 24 cmp r1, 0x5C bls _08062A64 ldr r0, [r4] ldrb r1, [r3] ldr r2, [r0, 0x4] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r2 movs r1, 0 strb r1, [r0, 0x5] bl dp01_tbl7_exec_completed _08062A64: pop {r4} pop {r0} bx r0 .pool thumb_func_end bx_0803D790_t7 thumb_func_start sub_8062A74 sub_8062A74: @ 8062A74 push {lr} ldr r0, =gUnknown_020244D0 ldr r1, [r0] ldr r0, =gUnknown_02024064 ldrb r3, [r0] ldr r1, [r1, 0x4] lsls r0, r3, 1 adds r0, r3 lsls r0, 2 adds r0, r1 ldrb r1, [r0] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _08062AA6 ldr r2, =gTasks ldr r0, =gUnknown_020244B4 adds r0, r3, r0 ldrb r1, [r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r2 ldr r1, =sub_8073C30 str r1, [r0] _08062AA6: bl dp01_tbl7_exec_completed pop {r0} bx r0 .pool thumb_func_end sub_8062A74 thumb_func_start sub_8062AC4 sub_8062AC4: @ 8062AC4 push {lr} bl dp01_tbl7_exec_completed pop {r0} bx r0 thumb_func_end sub_8062AC4 thumb_func_start sub_8062AD0 sub_8062AD0: @ 8062AD0 push {r4,lr} ldr r4, =gUnknown_02024064 ldrb r0, [r4] bl sub_80A6A90 lsls r0, 24 cmp r0, 0 beq _08062B16 ldr r3, =gUnknown_02020630 ldr r0, =gUnknown_020241E4 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, =gUnknown_02023064 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_805E408 _08062B16: bl dp01_tbl7_exec_completed pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_8062AD0 thumb_func_start dp01t_34_7_move_anim_start_t3 dp01t_34_7_move_anim_start_t3: @ 8062B30 push {r4-r6,lr} sub sp, 0x4 ldr r6, =gUnknown_02024064 ldrb r0, [r6] bl mplay_80342A4 lsls r0, 24 cmp r0, 0 bne _08062B88 ldr r5, =gUnknown_02023064 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 _08062B7C bl dp01_tbl7_exec_completed b _08062B88 .pool _08062B7C: ldr r0, =gUnknown_03005D60 ldrb r1, [r6] lsls r1, 2 adds r1, r0 ldr r0, =bx_803B0F4 str r0, [r1] _08062B88: add sp, 0x4 pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end dp01t_34_7_move_anim_start_t3 thumb_func_start sub_8062B98 sub_8062B98: @ 8062B98 push {lr} bl dp01_tbl7_exec_completed pop {r0} bx r0 thumb_func_end sub_8062B98 thumb_func_start sub_8062BA4 sub_8062BA4: @ 8062BA4 push {lr} bl dp01_tbl7_exec_completed pop {r0} bx r0 thumb_func_end sub_8062BA4 thumb_func_start sub_8062BB0 sub_8062BB0: @ 8062BB0 push {lr} ldr r0, =gBattleTypeFlags ldr r0, [r0] movs r1, 0x6 ands r0, r1 cmp r0, 0x2 bne _08062BDA ldr r2, =gMain ldr r0, =0x00000439 adds r3, r2, r0 ldrb r1, [r3] movs r0, 0x3 negs r0, r0 ands r0, r1 strb r0, [r3] ldr r0, =gUnknown_03005D00 ldr r0, [r0] str r0, [r2] ldr r0, [r2, 0x8] bl SetMainCallback2 _08062BDA: bl dp01_tbl7_exec_completed pop {r0} bx r0 .pool thumb_func_end sub_8062BB0 thumb_func_start nullsub_91 nullsub_91: @ 8062BF4 bx lr thumb_func_end nullsub_91 thumb_func_start ai_switch_perish_song ai_switch_perish_song: @ 8062BF8 push {lr} ldr r1, =gUnknown_020242AC ldr r0, =gUnknown_02024064 ldrb r2, [r0] lsls r0, r2, 2 adds r0, r1 ldr r0, [r0] movs r1, 0x20 ands r0, r1 cmp r0, 0 beq _08062C50 ldr r0, =gUnknown_020242BC lsls r1, r2, 3 subs r1, r2 lsls r1, 2 adds r1, r0 ldrb r0, [r1, 0xF] lsls r0, 28 cmp r0, 0 bne _08062C50 ldr r0, =gUnknown_0202449C ldr r0, [r0] adds r0, r2, r0 movs r1, 0xA5 lsls r1, 2 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 _08062C52 .pool _08062C50: movs r0, 0 _08062C52: pop {r1} bx r1 thumb_func_end ai_switch_perish_song thumb_func_start sub_8062C58 sub_8062C58: @ 8062C58 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x4 ldr r0, =gBattleTypeFlags ldr r0, [r0] movs r1, 0x1 ands r0, r1 cmp r0, 0 beq _08062C72 b _08062E2C _08062C72: ldr r0, =gUnknown_02024064 ldrb r0, [r0] bl battle_get_per_side_status movs r1, 0x1 eors r0, r1 lsls r0, 24 lsrs r0, 24 mov r10, r0 ldr r4, =gBattleMons 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 _08062C9E b _08062E2C _08062C9E: mov r0, r10 bl battle_get_side_with_given_state lsls r0, 24 lsrs r2, r0, 24 movs r6, 0 mov r8, r4 movs r7, 0x58 adds r0, r2, 0 muls r0, r7 adds r4, r0, r4 movs r0, 0x20 adds r0, r4 mov r9, r0 _08062CBA: lsls r1, r6, 1 ldr r5, =gUnknown_02024064 ldrb r0, [r5] muls r0, r7 adds r1, r0 mov r0, r8 adds r0, 0xC adds r1, r0 ldrh r0, [r1] cmp r0, 0 beq _08062CE8 ldrh r1, [r4] 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 _08062CE8 b _08062E2C _08062CE8: adds r6, 0x1 cmp r6, 0x3 ble _08062CBA ldr r0, =gBattleTypeFlags ldr r0, [r0] ldr r1, =0x00808000 ands r0, r1 cmp r0, 0 beq _08062D50 ldrb r1, [r5] movs r0, 0x2 ands r0, r1 adds r1, r5, 0 cmp r0, 0 bne _08062D20 movs r4, 0 movs r0, 0x3 str r0, [sp] b _08062D58 .pool _08062D20: movs r4, 0x3 movs r3, 0x6 str r3, [sp] b _08062D58 _08062D28: ldr r0, =gUnknown_02024064 ldrb r0, [r0] ldr r1, =gUnknown_0202449C ldr r1, [r1] adds r0, r1 movs r1, 0xA5 lsls r1, 2 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 _08062E2E .pool _08062D50: movs r4, 0 movs r3, 0x6 str r3, [sp] adds r1, r5, 0 _08062D58: ldrb r0, [r1] bl battle_side_get_owner lsls r0, 24 ldr r1, =gEnemyParty mov r9, r1 cmp r0, 0 bne _08062D6C ldr r3, =gPlayerParty mov r9, r3 _08062D6C: adds r6, r4, 0 ldr r0, [sp] cmp r6, r0 bge _08062E2C _08062D74: movs r0, 0x64 adds r5, r6, 0 muls r5, r0 mov r1, r9 adds r4, r1, r5 adds r0, r4, 0 movs r1, 0x39 bl GetMonData cmp r0, 0 beq _08062E24 adds r0, r4, 0 movs r1, 0x41 bl GetMonData cmp r0, 0 beq _08062E24 adds r0, r4, 0 movs r1, 0x41 bl GetMonData movs r1, 0xCE lsls r1, 1 cmp r0, r1 beq _08062E24 ldr r1, =gUnknown_0202406E ldr r0, =gUnknown_02024064 ldrb r0, [r0] lsls r0, 1 adds r0, r1 ldrh r0, [r0] cmp r6, r0 beq _08062E24 adds r0, r4, 0 movs r1, 0xB bl GetMonData adds r0, r4, 0 movs r1, 0x2E bl GetMonData mov r0, r10 bl battle_get_side_with_given_state lsls r0, 24 lsrs r2, r0, 24 movs r4, 0 mov r8, r5 ldr r1, =gBattleMons movs r0, 0x58 muls r0, r2 adds r5, r0, r1 adds r7, r5, 0 adds r7, 0x20 _08062DE0: adds r1, r4, 0 adds r1, 0xD mov r0, r9 add r0, r8 bl GetMonData lsls r0, 16 lsrs r0, 16 cmp r0, 0 beq _08062E1E 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 _08062E1E bl Random lsls r0, 16 lsrs r0, 16 movs r1, 0x3 bl __umodsi3 lsls r0, 16 lsrs r0, 16 cmp r0, 0x1 bls _08062D28 _08062E1E: adds r4, 0x1 cmp r4, 0x3 ble _08062DE0 _08062E24: adds r6, 0x1 ldr r3, [sp] cmp r6, r3 blt _08062D74 _08062E2C: movs r0, 0 _08062E2E: add sp, 0x4 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 .pool thumb_func_end sub_8062C58 thumb_func_start sub_8062E54 sub_8062E54: @ 8062E54 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x8 movs r0, 0x1 bl ai_has_super_effective_move_on_field lsls r0, 24 cmp r0, 0 beq _08062E82 bl Random lsls r0, 16 lsrs r0, 16 movs r1, 0x3 bl __umodsi3 lsls r0, 16 cmp r0, 0 beq _08062E82 b _080630AC _08062E82: ldr r1, =gUnknown_02024250 ldr r5, =gUnknown_02024064 ldrb r3, [r5] lsls r0, r3, 1 adds r4, r0, r1 ldrh r1, [r4] cmp r1, 0 bne _08062E94 b _080630AC _08062E94: ldr r0, =0x0000ffff cmp r1, r0 bne _08062E9C b _080630AC _08062E9C: ldr r2, =gBattleMoves ldrh r1, [r4] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r0, [r0, 0x1] cmp r0, 0 bne _08062EB0 b _080630AC _08062EB0: ldr r0, =gBattleTypeFlags ldr r0, [r0] movs r1, 0x1 ands r0, r1 cmp r0, 0 beq _08062F1A 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, =gUnknown_02024210 ldrb r1, [r1] ldr r2, =gBitTable lsls r0, 24 lsrs r0, 22 adds r0, r2 ldr r0, [r0] ands r1, r0 cmp r1, 0 beq _08062F04 ldrb r7, [r5] b _08062F1E .pool _08062F04: 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 _08062F1E _08062F1A: adds r7, r3, 0 mov r8, r7 _08062F1E: ldr r3, =gBattleMoves ldr r1, =gUnknown_02024250 ldr r2, =gUnknown_02024064 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] cmp r0, 0xA bne _08062F4C movs r0, 0x12 b _08062F5E .pool _08062F4C: cmp r0, 0xB bne _08062F56 movs r1, 0xB str r1, [sp] b _08062F60 _08062F56: cmp r0, 0xD beq _08062F5C b _080630AC _08062F5C: movs r0, 0xA _08062F5E: str r0, [sp] _08062F60: ldr r1, =gBattleMons ldrb r3, [r2] movs r0, 0x58 muls r0, r3 adds r0, r1 adds r0, 0x20 ldrb r0, [r0] ldr r1, [sp] cmp r0, r1 bne _08062F76 b _080630AC _08062F76: ldr r0, =gBattleTypeFlags ldr r0, [r0] ldr r1, =0x00808000 ands r0, r1 cmp r0, 0 beq _08062FCC movs r0, 0x2 ands r3, r0 cmp r3, 0 bne _08062F9C movs r4, 0 movs r0, 0x3 b _08062FD0 .pool _08062F9C: movs r4, 0x3 movs r1, 0x6 mov r10, r1 b _08062FD2 _08062FA4: ldr r0, =gUnknown_02024064 ldrb r0, [r0] ldr r1, =gUnknown_0202449C ldr r1, [r1] adds r0, r1 movs r2, 0xA5 lsls r2, 2 adds r0, r2 strb r5, [r0] movs r0, 0x1 movs r1, 0x2 movs r2, 0 bl dp01_build_cmdbuf_x21_a_bb movs r0, 0x1 b _080630AE .pool _08062FCC: movs r4, 0 movs r0, 0x6 _08062FD0: mov r10, r0 _08062FD2: ldrb r0, [r2] bl battle_side_get_owner lsls r0, 24 ldr r1, =gEnemyParty str r1, [sp, 0x4] cmp r0, 0 bne _08062FE6 ldr r2, =gPlayerParty str r2, [sp, 0x4] _08062FE6: adds r5, r4, 0 cmp r5, r10 bge _080630AC ldr r0, =gBaseStats mov r9, r0 _08062FF0: movs r0, 0x64 muls r0, r5 ldr r1, [sp, 0x4] adds r6, r1, r0 adds r0, r6, 0 movs r1, 0x39 bl GetMonData cmp r0, 0 beq _080630A6 adds r0, r6, 0 movs r1, 0x41 bl GetMonData cmp r0, 0 beq _080630A6 adds r0, r6, 0 movs r1, 0x41 bl GetMonData movs r1, 0xCE lsls r1, 1 cmp r0, r1 beq _080630A6 ldr r1, =gUnknown_0202406E mov r2, r8 lsls r0, r2, 1 adds r0, r1 ldrh r0, [r0] cmp r5, r0 beq _080630A6 lsls r0, r7, 1 adds r0, r1 ldrh r0, [r0] cmp r5, r0 beq _080630A6 ldr r0, =gUnknown_0202449C ldr r1, [r0] adds r0, r2, r1 adds r0, 0x5C ldrb r0, [r0] cmp r5, r0 beq _080630A6 adds r0, r7, r1 adds r0, 0x5C ldrb r0, [r0] cmp r5, r0 beq _080630A6 adds r0, r6, 0 movs r1, 0xB bl GetMonData lsls r0, 16 lsrs r4, r0, 16 adds r0, r6, 0 movs r1, 0x2E bl GetMonData cmp r0, 0 beq _08063088 lsls r0, r4, 3 subs r0, r4 lsls r0, 2 add r0, r9 ldrb r0, [r0, 0x17] b _08063092 .pool _08063088: lsls r0, r4, 3 subs r0, r4 lsls r0, 2 add r0, r9 ldrb r0, [r0, 0x16] _08063092: ldr r1, [sp] cmp r1, r0 bne _080630A6 bl Random movs r1, 0x1 ands r1, r0 cmp r1, 0 beq _080630A6 b _08062FA4 _080630A6: adds r5, 0x1 cmp r5, r10 blt _08062FF0 _080630AC: movs r0, 0 _080630AE: 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_8062E54 thumb_func_start ai_switchout_natural_cure ai_switchout_natural_cure: @ 80630C0 push {r4,r5,lr} ldr r3, =gBattleMons ldr r5, =gUnknown_02024064 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 _08063188 adds r1, r2, r3 adds r0, r1, 0 adds r0, 0x20 ldrb r0, [r0] cmp r0, 0x1E bne _08063188 ldrh r0, [r1, 0x2C] ldrh r1, [r1, 0x28] lsrs r0, 1 cmp r1, r0 bcc _08063188 ldr r1, =gUnknown_02024250 lsls r0, r4, 1 adds r0, r1 ldrh r1, [r0] cmp r1, 0 beq _08063106 ldr r0, =0x0000ffff cmp r1, r0 bne _08063128 _08063106: bl Random movs r1, 0x1 ands r1, r0 cmp r1, 0 beq _08063128 ldrb r0, [r5] b _08063190 .pool _08063128: ldr r2, =gBattleMoves ldr r1, =gUnknown_02024250 ldr r4, =gUnknown_02024064 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 _08063160 bl Random movs r1, 0x1 ands r1, r0 cmp r1, 0 beq _08063160 ldrb r0, [r4] b _08063190 .pool _08063160: movs r0, 0x8 movs r1, 0x1 bl ai_switchout_something lsls r0, 24 cmp r0, 0 bne _080631AA movs r0, 0x4 movs r1, 0x1 bl ai_switchout_something lsls r0, 24 cmp r0, 0 bne _080631AA bl Random movs r1, 0x1 ands r1, r0 cmp r1, 0 bne _0806318C _08063188: movs r0, 0 b _080631AC _0806318C: ldr r0, =gUnknown_02024064 ldrb r0, [r0] _08063190: ldr r1, =gUnknown_0202449C ldr r1, [r1] adds r0, r1 movs r1, 0xA5 lsls r1, 2 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 _080631AA: movs r0, 0x1 _080631AC: pop {r4,r5} pop {r1} bx r1 .pool thumb_func_end ai_switchout_natural_cure thumb_func_start ai_has_super_effective_move_on_field ai_has_super_effective_move_on_field: @ 80631BC 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 r0, =gUnknown_02024064 ldrb r0, [r0] bl battle_get_per_side_status movs r1, 0x1 eors r0, r1 lsls r0, 24 lsrs r0, 24 mov r10, r0 bl battle_get_side_with_given_state lsls r0, 24 lsrs r3, r0, 24 ldr r0, =gUnknown_02024210 ldrb r1, [r0] ldr r2, =gBitTable lsls r0, r3, 2 adds r0, r2 ldr r0, [r0] ands r1, r0 cmp r1, 0 bne _08063256 movs r4, 0 ldr r6, =gBattleMons movs r7, 0x58 adds r0, r3, 0 muls r0, r7 adds r5, r0, r6 movs r0, 0x20 adds r0, r5 mov r8, r0 _0806320A: lsls r1, r4, 1 ldr r0, =gUnknown_02024064 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 _08063250 ldrh r1, [r5] 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 beq _08063250 mov r0, r9 cmp r0, 0 bne _08063278 bl Random lsls r0, 16 lsrs r0, 16 movs r1, 0xA bl __umodsi3 lsls r0, 16 cmp r0, 0 bne _08063278 _08063250: adds r4, 0x1 cmp r4, 0x3 ble _0806320A _08063256: ldr r0, =gBattleTypeFlags ldr r0, [r0] movs r1, 0x1 ands r0, r1 cmp r0, 0 bne _0806327C b _080632FA .pool _08063278: movs r0, 0x1 b _080632FC _0806327C: movs r1, 0x2 mov r0, r10 eors r0, r1 bl battle_get_side_with_given_state lsls r0, 24 lsrs r3, r0, 24 ldr r0, =gUnknown_02024210 ldrb r1, [r0] ldr r2, =gBitTable lsls r0, r3, 2 adds r0, r2 ldr r0, [r0] ands r1, r0 cmp r1, 0 bne _080632FA movs r4, 0 ldr r6, =gBattleMons movs r7, 0x58 adds r0, r3, 0 muls r0, r7 adds r5, r0, r6 movs r3, 0x20 adds r3, r5 mov r8, r3 _080632AE: lsls r1, r4, 1 ldr r0, =gUnknown_02024064 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 _080632F4 ldrh r1, [r5] 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 beq _080632F4 mov r0, r9 cmp r0, 0 bne _08063278 bl Random lsls r0, 16 lsrs r0, 16 movs r1, 0xA bl __umodsi3 lsls r0, 16 cmp r0, 0 bne _08063278 _080632F4: adds r4, 0x1 cmp r4, 0x3 ble _080632AE _080632FA: movs r0, 0 _080632FC: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 .pool 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: @ 806331C push {r4,lr} movs r4, 0 ldr r1, =gBattleMons ldr r0, =gUnknown_02024064 ldrb r2, [r0] movs r0, 0x58 muls r0, r2 adds r1, 0x18 adds r2, r0, r1 movs r3, 0x7 _08063330: ldrb r1, [r2] movs r0, 0 ldrsb r0, [r2, r0] cmp r0, 0x6 ble _08063346 subs r1, 0x6 lsls r0, r4, 24 asrs r0, 24 adds r0, r1 lsls r0, 24 lsrs r4, r0, 24 _08063346: adds r2, 0x1 subs r3, 0x1 cmp r3, 0 bge _08063330 movs r0, 0 cmp r4, 0x3 bls _08063356 movs r0, 0x1 _08063356: pop {r4} pop {r1} bx r1 .pool thumb_func_end ai_is_too_invested_in_stat_buffs thumb_func_start ai_switchout_something ai_switchout_something: @ 8063364 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] lsls r1, 24 lsrs r1, 24 str r1, [sp, 0x4] ldr r2, =gUnknown_02024250 ldr r1, =gUnknown_02024064 ldrb r3, [r1] lsls r0, r3, 1 adds r4, r0, r2 ldrh r2, [r4] adds r5, r1, 0 cmp r2, 0 bne _08063390 b _080635EE _08063390: ldr r0, =0x0000ffff cmp r2, r0 bne _08063398 b _080635EE _08063398: ldr r0, =gUnknown_02024270 adds r0, r3, r0 ldrb r0, [r0] cmp r0, 0xFF bne _080633A4 b _080635EE _080633A4: ldr r2, =gBattleMoves ldrh r1, [r4] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r0, [r0, 0x1] cmp r0, 0 bne _080633B8 b _080635EE _080633B8: ldr r0, =gBattleTypeFlags ldr r0, [r0] movs r1, 0x1 ands r0, r1 cmp r0, 0 beq _0806342C 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, =gUnknown_02024210 ldrb r1, [r1] ldr r2, =gBitTable lsls r0, 24 lsrs r0, 22 adds r0, r2 ldr r0, [r0] ands r1, r0 cmp r1, 0 beq _08063414 ldrb r5, [r5] mov r10, r5 b _08063430 .pool _08063414: 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 _08063430 _0806342C: mov r9, r3 mov r10, r9 _08063430: ldr r0, =gBattleTypeFlags ldr r0, [r0] ldr r1, =0x00808000 ands r0, r1 cmp r0, 0 beq _08063490 ldr r2, =gUnknown_02024064 ldrb r1, [r2] movs r0, 0x2 ands r0, r1 adds r5, r2, 0 cmp r0, 0 bne _08063460 movs r4, 0 movs r0, 0x3 str r0, [sp, 0x8] b _08063498 .pool _08063460: movs r4, 0x3 movs r1, 0x6 str r1, [sp, 0x8] b _08063498 _08063468: ldr r0, =gUnknown_02024064 ldrb r0, [r0] ldr r1, =gUnknown_0202449C ldr r1, [r1] adds r0, r1 movs r2, 0xA5 lsls r2, 2 adds r0, r2 strb r6, [r0] movs r0, 0x1 movs r1, 0x2 movs r2, 0 bl dp01_build_cmdbuf_x21_a_bb movs r0, 0x1 b _080635F0 .pool _08063490: movs r4, 0 movs r0, 0x6 str r0, [sp, 0x8] ldr r5, =gUnknown_02024064 _08063498: ldrb r0, [r5] bl battle_side_get_owner lsls r0, 24 ldr r1, =gEnemyParty str r1, [sp, 0xC] cmp r0, 0 bne _080634AC ldr r2, =gPlayerParty str r2, [sp, 0xC] _080634AC: adds r6, r4, 0 b _080635E6 .pool _080634BC: movs r0, 0x64 muls r0, r6 ldr r1, [sp, 0xC] adds r5, r1, r0 adds r0, r5, 0 movs r1, 0x39 bl GetMonData cmp r0, 0 bne _080634D2 b _080635E4 _080634D2: adds r0, r5, 0 movs r1, 0x41 bl GetMonData cmp r0, 0 bne _080634E0 b _080635E4 _080634E0: adds r0, r5, 0 movs r1, 0x41 bl GetMonData movs r1, 0xCE lsls r1, 1 cmp r0, r1 beq _080635E4 ldr r1, =gUnknown_0202406E mov r2, r9 lsls r0, r2, 1 adds r0, r1 ldrh r0, [r0] cmp r6, r0 beq _080635E4 mov r2, r10 lsls r0, r2, 1 adds r0, r1 ldrh r0, [r0] cmp r6, r0 beq _080635E4 ldr r0, =gUnknown_0202449C ldr r1, [r0] mov r2, r9 adds r0, r2, r1 adds r0, 0x5C ldrb r0, [r0] cmp r6, r0 beq _080635E4 mov r2, r10 adds r0, r2, r1 adds r0, 0x5C ldrb r0, [r0] cmp r6, r0 beq _080635E4 adds r0, r5, 0 movs r1, 0xB bl GetMonData lsls r0, 16 lsrs r4, r0, 16 adds r0, r5, 0 movs r1, 0x2E bl GetMonData cmp r0, 0 beq _08063558 lsls r0, r4, 3 subs r0, r4 lsls r0, 2 ldr r1, =gBaseStats adds r0, r1 ldrb r2, [r0, 0x17] b _08063564 .pool _08063558: lsls r0, r4, 3 subs r0, r4 lsls r0, 2 ldr r2, =gBaseStats adds r0, r2 ldrb r2, [r0, 0x16] _08063564: ldr r1, =gUnknown_02024250 ldr r5, =gUnknown_02024064 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 _080635E4 ldr r1, =gUnknown_02024270 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, =gBattleMons movs r0, 0x58 mov r2, r9 muls r2, r0 adds r0, r2, 0 adds r5, r0, r1 adds r7, r5, 0 adds r7, 0x20 _080635A2: adds r1, r4, 0 adds r1, 0xD ldr r0, [sp, 0xC] add r0, r8 bl GetMonData lsls r0, 16 lsrs r0, 16 cmp r0, 0 beq _080635DE 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 _080635DE bl Random lsls r0, 16 lsrs r0, 16 ldr r1, [sp, 0x4] bl __modsi3 cmp r0, 0 bne _080635DE b _08063468 _080635DE: adds r4, 0x1 cmp r4, 0x3 ble _080635A2 _080635E4: adds r6, 0x1 _080635E6: ldr r0, [sp, 0x8] cmp r6, r0 bge _080635EE b _080634BC _080635EE: movs r0, 0 _080635F0: add sp, 0x10 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 .pool thumb_func_end ai_switchout_something thumb_func_start sub_8063614 sub_8063614: @ 8063614 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x4 ldr r6, =gBattleMons ldr r4, =gUnknown_02024064 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, =0x0400e000 ands r0, r1 cmp r0, 0 beq _0806363E b _0806386C _0806363E: ldr r0, =gUnknown_020242AC lsls r1, r2, 2 adds r1, r0 ldr r1, [r1] movs r0, 0x80 lsls r0, 3 ands r1, r0 cmp r1, 0 beq _08063652 b _0806386C _08063652: str r1, [sp] movs r0, 0xC adds r1, r2, 0 movs r2, 0x17 movs r3, 0 bl ability_something lsls r0, 24 lsrs r0, 24 cmp r0, 0 beq _0806366A b _0806386C _0806366A: ldrb r1, [r4] str r0, [sp] movs r0, 0xC movs r2, 0x47 movs r3, 0 bl ability_something lsls r0, 24 lsrs r0, 24 cmp r0, 0 beq _08063682 b _0806386C _08063682: str r0, [sp] movs r0, 0xE movs r1, 0 movs r2, 0x2A movs r3, 0 bl ability_something lsls r0, 24 cmp r0, 0 beq _080636B4 ldrb r0, [r4] muls r0, r5 adds r1, r0, r6 adds r0, r1, 0 adds r0, 0x21 ldrb r0, [r0] cmp r0, 0x8 bne _080636A8 b _0806386C _080636A8: adds r0, r1, 0 adds r0, 0x22 ldrb r0, [r0] cmp r0, 0x8 bne _080636B4 b _0806386C _080636B4: ldr r0, =gBattleTypeFlags ldr r1, [r0] movs r0, 0x80 lsls r0, 11 ands r0, r1 cmp r0, 0 beq _080636C4 b _0806386C _080636C4: movs r0, 0 mov r10, r0 movs r0, 0x1 ands r1, r0 cmp r1, 0 beq _0806372E 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, =gUnknown_02024210 ldrb r1, [r1] ldr r2, =gBitTable lsls r0, 24 lsrs r0, 22 adds r0, r2 ldr r0, [r0] ands r1, r0 cmp r1, 0 beq _08063718 ldrb r6, [r4] b _08063732 .pool _08063718: 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 _08063732 _0806372E: ldrb r6, [r4] adds r7, r6, 0 _08063732: ldr r0, =gBattleTypeFlags ldr r0, [r0] ldr r1, =0x00808000 ands r0, r1 cmp r0, 0 beq _08063768 ldr r2, =gUnknown_02024064 ldrb r1, [r2] movs r0, 0x2 ands r0, r1 cmp r0, 0 bne _08063760 movs r4, 0 movs r1, 0x3 mov r8, r1 b _08063770 .pool _08063760: movs r4, 0x3 movs r0, 0x6 mov r8, r0 b _08063770 _08063768: movs r4, 0 movs r1, 0x6 mov r8, r1 ldr r2, =gUnknown_02024064 _08063770: ldrb r0, [r2] bl battle_side_get_owner lsls r0, 24 ldr r1, =gEnemyParty mov r9, r1 cmp r0, 0 bne _08063784 ldr r0, =gPlayerParty mov r9, r0 _08063784: adds r5, r4, 0 cmp r5, r8 bge _080637F2 _0806378A: movs r0, 0x64 muls r0, r5 mov r1, r9 adds r4, r1, r0 adds r0, r4, 0 movs r1, 0x39 bl GetMonData cmp r0, 0 beq _080637EC adds r0, r4, 0 movs r1, 0x41 bl GetMonData cmp r0, 0 beq _080637EC adds r0, r4, 0 movs r1, 0x41 bl GetMonData movs r1, 0xCE lsls r1, 1 cmp r0, r1 beq _080637EC ldr r1, =gUnknown_0202406E lsls r0, r7, 1 adds r0, r1 ldrh r0, [r0] cmp r5, r0 beq _080637EC lsls r0, r6, 1 adds r0, r1 ldrh r0, [r0] cmp r5, r0 beq _080637EC ldr r0, =gUnknown_0202449C ldr r1, [r0] adds r0, r7, r1 adds r0, 0x5C ldrb r0, [r0] cmp r5, r0 beq _080637EC adds r0, r6, r1 adds r0, 0x5C ldrb r0, [r0] cmp r5, r0 beq _080637EC movs r0, 0x1 add r10, r0 _080637EC: adds r5, 0x1 cmp r5, r8 blt _0806378A _080637F2: mov r1, r10 cmp r1, 0 beq _0806386C bl ai_switch_perish_song lsls r0, 24 cmp r0, 0 bne _08063852 bl sub_8062C58 lsls r0, 24 cmp r0, 0 bne _08063852 bl sub_8062E54 lsls r0, 24 cmp r0, 0 bne _08063852 bl ai_switchout_natural_cure lsls r0, 24 cmp r0, 0 bne _08063852 movs r0, 0 bl ai_has_super_effective_move_on_field lsls r0, 24 cmp r0, 0 bne _0806386C bl ai_is_too_invested_in_stat_buffs lsls r0, 24 cmp r0, 0 bne _0806386C movs r0, 0x8 movs r1, 0x2 bl ai_switchout_something lsls r0, 24 cmp r0, 0 bne _08063852 movs r0, 0x4 movs r1, 0x3 bl ai_switchout_something lsls r0, 24 cmp r0, 0 beq _0806386C _08063852: movs r0, 0x1 b _0806386E .pool _0806386C: movs r0, 0 _0806386E: 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 sub_8063614 thumb_func_start sub_8063880 sub_8063880: @ 8063880 push {r4-r7,lr} mov r7, r8 push {r7} ldr r4, =gUnknown_02024064 ldrb r0, [r4] bl battle_get_per_side_status lsls r0, 24 lsrs r6, r0, 24 adds r5, r6, 0 ldrb r0, [r4] bl battle_side_get_owner lsls r0, 24 ldr r1, =gEnemyParty mov r8, r1 cmp r0, 0 bne _080638A8 ldr r2, =gPlayerParty mov r8, r2 _080638A8: ldr r7, =gBattleTypeFlags ldr r0, [r7] movs r1, 0x8 ands r0, r1 cmp r0, 0 bne _080638B6 b _080639E6 _080638B6: bl sub_8063614 lsls r0, 24 cmp r0, 0 bne _080638C2 b _080639DC _080638C2: ldrb r0, [r4] ldr r2, =gUnknown_0202449C ldr r1, [r2] adds r0, r1 movs r1, 0xA5 lsls r1, 2 adds r0, r1 ldrb r0, [r0] cmp r0, 0x6 bne _080639B8 bl sub_8063A90 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x6 bne _080639A6 ldr r0, [r7] movs r1, 0x1 ands r0, r1 cmp r0, 0 bne _08063910 adds r0, r6, 0 bl battle_get_side_with_given_state lsls r0, 24 lsrs r5, r0, 24 adds r6, r5, 0 b _08063928 .pool _08063910: adds r0, r5, 0 bl battle_get_side_with_given_state lsls r0, 24 lsrs r6, r0, 24 movs r0, 0x2 eors r5, r0 adds r0, r5, 0 bl battle_get_side_with_given_state lsls r0, 24 lsrs r5, r0, 24 _08063928: ldr r0, =gBattleTypeFlags ldr r0, [r0] ldr r1, =0x00808000 ands r0, r1 cmp r0, 0 beq _08063958 ldr r0, =gUnknown_02024064 ldrb r1, [r0] movs r0, 0x2 ands r0, r1 cmp r0, 0 bne _08063954 movs r0, 0 movs r7, 0x3 b _0806395C .pool _08063954: movs r0, 0x3 b _0806395A _08063958: movs r0, 0 _0806395A: movs r7, 0x6 _0806395C: adds r4, r0, 0 cmp r4, r7 bge _080639A6 _08063962: movs r0, 0x64 muls r0, r4 add r0, r8 movs r1, 0x39 bl GetMonData cmp r0, 0 beq _080639A0 ldr r1, =gUnknown_0202406E lsls r0, r6, 1 adds r0, r1 ldrh r0, [r0] cmp r4, r0 beq _080639A0 lsls r0, r5, 1 adds r0, r1 ldrh r0, [r0] cmp r4, r0 beq _080639A0 ldr r0, =gUnknown_0202449C ldr r1, [r0] adds r0, r6, r1 adds r0, 0x5C ldrb r0, [r0] cmp r4, r0 beq _080639A0 adds r0, r5, r1 adds r0, 0x5C ldrb r0, [r0] cmp r4, r0 bne _080639A6 _080639A0: adds r4, 0x1 cmp r4, r7 blt _08063962 _080639A6: ldr r0, =gUnknown_02024064 ldrb r0, [r0] ldr r2, =gUnknown_0202449C ldr r1, [r2] adds r0, r1 movs r1, 0xA5 lsls r1, 2 adds r0, r1 strb r4, [r0] _080639B8: ldr r0, =gUnknown_02024064 ldrb r1, [r0] ldr r0, [r2] adds r0, r1, r0 adds r1, r0, 0 adds r1, 0x5C movs r2, 0xA5 lsls r2, 2 adds r0, r2 ldrb r0, [r0] strb r0, [r1] b _080639F8 .pool _080639DC: bl sub_8063EE0 lsls r0, 24 cmp r0, 0 bne _080639F8 _080639E6: ldr r0, =gUnknown_02024064 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 _080639F8: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_8063880 thumb_func_start sub_8063A08 sub_8063A08: @ 8063A08 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, =gUnknown_0831ACE8 mov r10, r0 ldrb r0, [r0] cmp r0, 0xFF beq _08063A7A mov r5, r10 _08063A36: ldrb r0, [r5] cmp r0, 0xFE beq _08063A6C ldr r1, [sp] cmp r0, r1 bne _08063A6C ldrb r4, [r5, 0x1] cmp r4, r9 bne _08063A56 ldrb r1, [r6] ldrb r0, [r5, 0x2] muls r0, r1 movs r1, 0xA bl __divsi3 strb r0, [r6] _08063A56: cmp r4, r8 bne _08063A6C cmp r9, r8 beq _08063A6C ldrb r1, [r6] ldrb r0, [r5, 0x2] muls r0, r1 movs r1, 0xA bl __divsi3 strb r0, [r6] _08063A6C: adds r5, 0x3 adds r7, 0x3 mov r1, r10 adds r0, r7, r1 ldrb r0, [r0] cmp r0, 0xFF bne _08063A36 _08063A7A: add sp, 0x4 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_8063A08 thumb_func_start sub_8063A90 sub_8063A90: @ 8063A90 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x24 ldr r4, =gUnknown_02024064 ldrb r2, [r4] ldr r0, =gUnknown_0202449C ldr r0, [r0] adds r0, r2, r0 adds r1, r0, 0 adds r1, 0x5C ldrb r0, [r1] cmp r0, 0x6 beq _08063AB2 b _08063E50 _08063AB2: ldr r0, =gBattleTypeFlags ldr r1, [r0] movs r0, 0x80 lsls r0, 11 ands r0, r1 cmp r0, 0 beq _08063AE0 ldr r1, =gUnknown_0202406E lsls r0, r2, 1 adds r0, r1 ldrb r0, [r0] adds r0, 0x1 lsls r0, 24 lsrs r0, 24 b _08063E50 .pool _08063AE0: movs r0, 0x1 ands r1, r0 cmp r1, 0 beq _08063B6C str r2, [sp, 0x10] adds r0, r2, 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, =gUnknown_02024210 ldrb r1, [r1] ldr r2, =gBitTable lsls r0, 24 lsrs r0, 22 adds r0, r2 ldr r0, [r0] ands r1, r0 cmp r1, 0 beq _08063B20 ldrb r4, [r4] str r4, [sp, 0x14] b _08063B36 .pool _08063B20: 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, 0x14] _08063B36: bl Random movs r3, 0x2 ands r0, r3 lsls r0, 24 lsrs r0, 24 str r0, [sp, 0x4] ldr r0, =gUnknown_02024210 ldrb r1, [r0] ldr r2, =gBitTable ldr r4, [sp, 0x4] lsls r0, r4, 2 adds r0, r2 ldr r0, [r0] ands r1, r0 cmp r1, 0 beq _08063B8A eors r4, r3 lsls r0, r4, 24 lsrs r0, 24 str r0, [sp, 0x4] b _08063B8A .pool _08063B6C: adds r0, r2, 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 lsls r0, 24 lsrs r0, 24 str r0, [sp, 0x4] ldrb r4, [r4] str r4, [sp, 0x14] str r4, [sp, 0x10] _08063B8A: ldr r0, =gBattleTypeFlags ldr r0, [r0] ldr r1, =0x00808000 ands r0, r1 cmp r0, 0 beq _08063BC2 ldr r2, =gUnknown_02024064 ldrb r1, [r2] movs r0, 0x2 ands r0, r1 cmp r0, 0 bne _08063BB8 movs r0, 0 str r0, [sp, 0x18] movs r1, 0x3 str r1, [sp, 0x1C] b _08063BCC .pool _08063BB8: movs r4, 0x3 str r4, [sp, 0x18] movs r0, 0x6 str r0, [sp, 0x1C] b _08063BCC _08063BC2: movs r1, 0 str r1, [sp, 0x18] movs r2, 0x6 str r2, [sp, 0x1C] ldr r2, =gUnknown_02024064 _08063BCC: ldrb r0, [r2] bl battle_side_get_owner lsls r0, 24 ldr r4, =gEnemyParty str r4, [sp, 0x20] cmp r0, 0 bne _08063BE0 ldr r0, =gPlayerParty str r0, [sp, 0x20] _08063BE0: movs r1, 0 mov r9, r1 _08063BE4: movs r2, 0 str r2, [sp, 0x8] movs r4, 0x6 str r4, [sp, 0xC] ldr r7, [sp, 0x18] ldr r0, [sp, 0x1C] cmp r7, r0 blt _08063BF6 b _08063CF2 _08063BF6: lsls r0, r7, 2 ldr r1, =gBitTable adds r0, r1 mov r8, r0 mov r10, sp _08063C00: movs r0, 0x64 muls r0, r7 ldr r2, [sp, 0x20] adds r4, r2, r0 adds r0, r4, 0 movs r1, 0xB bl GetMonData lsls r0, 16 lsrs r5, r0, 16 cmp r5, 0 beq _08063CD8 adds r0, r4, 0 movs r1, 0x39 bl GetMonData cmp r0, 0 beq _08063CD8 mov r4, r8 ldr r0, [r4] mov r1, r9 ands r0, r1 cmp r0, 0 bne _08063CD8 ldr r1, =gUnknown_0202406E ldr r2, [sp, 0x10] lsls r0, r2, 1 adds r0, r1 ldrh r0, [r0] cmp r0, r7 beq _08063CD8 ldr r4, [sp, 0x14] lsls r0, r4, 1 adds r0, r1 ldrh r0, [r0] cmp r0, r7 beq _08063CD8 ldr r0, =gUnknown_0202449C ldr r1, [r0] adds r0, r2, r1 adds r0, 0x5C ldrb r0, [r0] cmp r7, r0 beq _08063CD8 adds r0, r4, r1 adds r0, 0x5C ldrb r0, [r0] cmp r7, r0 beq _08063CD8 ldr r1, =gBaseStats lsls r0, r5, 3 subs r0, r5 lsls r0, 2 adds r0, r1 ldrb r5, [r0, 0x6] ldrb r6, [r0, 0x7] movs r0, 0xA mov r1, r10 strb r0, [r1] movs r0, 0x58 ldr r2, [sp, 0x4] adds r4, r2, 0 muls r4, r0 ldr r0, =gBattleMons 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_8063A08 adds r4, 0x22 ldrb r0, [r4] adds r1, r5, 0 adds r2, r6, 0 mov r3, sp bl sub_8063A08 ldr r2, [sp, 0x8] mov r1, r10 ldrb r1, [r1] cmp r2, r1 bcs _08063CE6 mov r2, r10 ldrb r2, [r2] str r2, [sp, 0x8] lsls r0, r7, 24 lsrs r0, 24 str r0, [sp, 0xC] b _08063CE6 .pool _08063CD8: mov r4, r8 ldr r0, [r4] mov r1, r9 orrs r1, r0 lsls r0, r1, 24 lsrs r0, 24 mov r9, r0 _08063CE6: movs r2, 0x4 add r8, r2 adds r7, 0x1 ldr r4, [sp, 0x1C] cmp r7, r4 blt _08063C00 _08063CF2: ldr r0, [sp, 0xC] cmp r0, 0x6 beq _08063D54 movs r7, 0 movs r0, 0x64 ldr r1, [sp, 0xC] adds r5, r1, 0 muls r5, r0 _08063D02: adds r1, r7, 0 adds r1, 0xD ldr r2, [sp, 0x20] adds r0, r2, r5 bl GetMonData lsls r0, 16 lsrs r4, r0, 16 cmp r4, 0 beq _08063D2A ldr r0, =gUnknown_02024064 ldrb r1, [r0] adds r0, r4, 0 ldr r2, [sp, 0x4] bl move_effectiveness_something movs r1, 0x2 ands r1, r0 cmp r1, 0 bne _08063D30 _08063D2A: adds r7, 0x1 cmp r7, 0x3 ble _08063D02 _08063D30: cmp r7, 0x4 beq _08063D36 b _08063E4E _08063D36: ldr r4, [sp, 0xC] lsls r0, r4, 2 ldr r1, =gBitTable adds r0, r1 ldr r0, [r0] mov r2, r9 orrs r2, r0 lsls r0, r2, 24 lsrs r0, 24 mov r9, r0 b _08063D58 .pool _08063D54: movs r4, 0x3F mov r9, r4 _08063D58: mov r0, r9 cmp r0, 0x3F beq _08063D60 b _08063BE4 _08063D60: ldr r0, =gUnknown_02024400 movs r1, 0 strh r1, [r0] ldr r0, =gUnknown_0202449C ldr r0, [r0] strb r1, [r0, 0x13] ldr r0, =gUnknown_02024474 movs r2, 0x1 strb r2, [r0, 0xE] ldr r0, =gBattleMoveFlags strb r1, [r0] ldr r0, =gCritMultiplier strb r2, [r0] movs r1, 0 str r1, [sp, 0x8] movs r2, 0x6 str r2, [sp, 0xC] ldr r7, [sp, 0x18] ldr r4, [sp, 0x1C] cmp r7, r4 bge _08063E4E _08063D8A: movs r0, 0x64 adds r6, r7, 0 muls r6, r0 ldr r0, [sp, 0x20] adds r4, r0, r6 adds r0, r4, 0 movs r1, 0xB bl GetMonData lsls r0, 16 adds r1, r7, 0x1 mov r10, r1 cmp r0, 0 beq _08063E46 adds r0, r4, 0 movs r1, 0x39 bl GetMonData cmp r0, 0 beq _08063E46 ldr r1, =gUnknown_0202406E ldr r2, [sp, 0x10] lsls r0, r2, 1 adds r0, r1 ldrh r0, [r0] cmp r0, r7 beq _08063E46 ldr r4, [sp, 0x14] lsls r0, r4, 1 adds r0, r1 ldrh r0, [r0] cmp r0, r7 beq _08063E46 ldr r0, =gUnknown_0202449C ldr r1, [r0] adds r0, r2, r1 adds r0, 0x5C ldrb r0, [r0] cmp r7, r0 beq _08063E46 adds r0, r4, r1 adds r0, 0x5C ldrb r0, [r0] cmp r7, r0 beq _08063E46 movs r5, 0 mov r9, r6 ldr r0, =gBattleMoveDamage mov r8, r0 ldr r6, =gUnknown_02024064 _08063DEE: adds r1, r5, 0 adds r1, 0xD ldr r0, [sp, 0x20] add r0, r9 bl GetMonData lsls r0, 16 lsrs r4, r0, 16 movs r0, 0 mov r1, r8 str r0, [r1] cmp r4, 0 beq _08063E2A ldr r0, =gBattleMoves lsls r1, r4, 1 adds r1, r4 lsls r1, 2 adds r1, r0 ldrb r0, [r1, 0x1] cmp r0, 0x1 beq _08063E2A ldrb r0, [r6] ldr r1, [sp, 0x4] bl sub_8046E7C ldrb r1, [r6] adds r0, r4, 0 ldr r2, [sp, 0x4] bl move_effectiveness_something _08063E2A: mov r2, r8 ldr r0, [r2] ldr r4, [sp, 0x8] cmp r4, r0 bge _08063E40 lsls r0, 24 lsrs r0, 24 str r0, [sp, 0x8] lsls r0, r7, 24 lsrs r0, 24 str r0, [sp, 0xC] _08063E40: adds r5, 0x1 cmp r5, 0x3 ble _08063DEE _08063E46: mov r7, r10 ldr r0, [sp, 0x1C] cmp r7, r0 blt _08063D8A _08063E4E: ldr r0, [sp, 0xC] _08063E50: add sp, 0x24 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 .pool thumb_func_end sub_8063A90 thumb_func_start ai_identify_item_effect ai_identify_item_effect: @ 8063E84 push {r4,lr} adds r2, r1, 0 lsls r0, 24 lsrs r0, 24 cmp r0, 0x13 bne _08063E94 movs r0, 0x1 b _08063EDA _08063E94: ldrb r1, [r2, 0x4] movs r0, 0x4 ands r0, r1 cmp r0, 0 beq _08063EA2 movs r0, 0x2 b _08063EDA _08063EA2: ldrb r4, [r2, 0x3] movs r3, 0x3F adds r0, r3, 0 ands r0, r4 cmp r0, 0 beq _08063EB2 movs r0, 0x3 b _08063EDA _08063EB2: ldrb r1, [r2] adds r0, r3, 0 ands r0, r1 cmp r0, 0 bne _08063EC8 ldrb r0, [r2, 0x1] cmp r0, 0 bne _08063EC8 ldrb r0, [r2, 0x2] cmp r0, 0 beq _08063ECC _08063EC8: movs r0, 0x4 b _08063EDA _08063ECC: movs r0, 0x80 ands r0, r4 cmp r0, 0 bne _08063ED8 movs r0, 0x6 b _08063EDA _08063ED8: movs r0, 0x5 _08063EDA: pop {r4} pop {r1} bx r1 thumb_func_end ai_identify_item_effect thumb_func_start sub_8063EE0 sub_8063EE0: @ 8063EE0 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x4 movs r0, 0 mov r10, r0 movs r7, 0 ldr r0, =gBattleTypeFlags ldr r0, [r0] movs r1, 0x80 lsls r1, 15 ands r0, r1 cmp r0, 0 beq _08063F12 ldr r0, =gUnknown_02024064 ldrb r0, [r0] bl battle_get_per_side_status lsls r0, 24 lsrs r0, 24 cmp r0, 0x2 bne _08063F12 b _0806437C _08063F12: ldr r0, =gUnknown_02024064 ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 ldr r5, =gEnemyParty cmp r0, 0 bne _08063F24 ldr r5, =gPlayerParty _08063F24: movs r1, 0 mov r8, r1 _08063F28: movs r0, 0x64 mov r2, r8 muls r2, r0 adds r0, r2, 0 adds r4, r5, r0 adds r0, r4, 0 movs r1, 0x39 bl GetMonData cmp r0, 0 beq _08063F64 adds r0, r4, 0 movs r1, 0x41 bl GetMonData cmp r0, 0 beq _08063F64 adds r0, r4, 0 movs r1, 0x41 bl GetMonData movs r1, 0xCE lsls r1, 1 cmp r0, r1 beq _08063F64 mov r0, r10 adds r0, 0x1 lsls r0, 24 lsrs r0, 24 mov r10, r0 _08063F64: movs r0, 0x1 add r8, r0 mov r1, r8 cmp r1, 0x5 ble _08063F28 movs r2, 0 mov r8, r2 _08063F72: ldr r1, =gUnknown_020244A8 mov r0, r8 cmp r0, 0 beq _08063F8E ldr r0, [r1] ldr r0, [r0, 0x18] adds r0, 0x50 ldrb r0, [r0] mov r2, r8 subs r0, r2 adds r0, 0x1 cmp r10, r0 ble _08063F8E b _08064370 _08063F8E: ldr r0, [r1] ldr r0, [r0, 0x18] mov r2, r8 lsls r1, r2, 1 adds r0, 0x48 adds r0, r1 ldrh r0, [r0] mov r9, r0 str r1, [sp] cmp r0, 0 bne _08063FA6 b _08064370 _08063FA6: ldr r1, =gItemEffectInfoPointers subs r0, 0xD lsls r0, 2 adds r0, r1 ldr r1, [r0] cmp r1, 0 bne _08063FB6 b _08064370 _08063FB6: mov r0, r9 cmp r0, 0xAF bne _08063FE8 ldr r0, =gSaveBlock1Ptr ldr r0, [r0] ldr r1, =0x00003214 adds r5, r0, r1 b _08063FEA .pool _08063FE8: adds r5, r1, 0 _08063FEA: mov r2, r9 lsls r0, r2, 24 lsrs r0, 24 adds r1, r5, 0 bl ai_identify_item_effect ldr r4, =gUnknown_02024064 ldrb r1, [r4] lsrs r1, 1 ldr r3, =gUnknown_0202449C ldr r2, [r3] adds r1, r2 adds r1, 0xC4 strb r0, [r1] ldrb r0, [r4] lsrs r0, 1 ldr r1, [r3] adds r0, r1 adds r0, 0xC4 ldrb r0, [r0] subs r0, 0x1 cmp r0, 0x5 bls _0806401A b _08064324 _0806401A: lsls r0, 2 ldr r1, =_08064030 adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _08064030: .4byte _08064048 .4byte _08064074 .4byte _080640BC .4byte _08064214 .4byte _080642F4 .4byte _0806437C _08064048: ldr r2, =gBattleMons ldr r0, =gUnknown_02024064 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 _08064060 b _08064324 _08064060: cmp r0, 0 bne _08064066 b _08064324 _08064066: movs r7, 0x1 b _08064328 .pool _08064074: mov r0, r9 movs r1, 0x4 movs r2, 0x4 bl sub_806CDDC lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0 bne _08064088 b _08064324 _08064088: ldr r2, =gBattleMons ldr r0, =gUnknown_02024064 ldrb r1, [r0] movs r0, 0x58 muls r0, r1 adds r1, r0, r2 ldrh r2, [r1, 0x28] cmp r2, 0 bne _0806409C b _08064324 _0806409C: ldrh r3, [r1, 0x2C] lsrs r0, r3, 2 cmp r2, r0 bcc _08064066 adds r0, r2, 0 subs r0, r3, r0 adds r1, r5, r4 ldrb r1, [r1] cmp r0, r1 bgt _080640B2 b _08064324 _080640B2: b _08064066 .pool _080640BC: ldr r3, =gUnknown_02024064 ldrb r0, [r3] lsrs r0, 1 ldr r2, =gUnknown_0202449C ldr r1, [r2] adds r0, r1 adds r0, 0xC6 movs r1, 0 strb r1, [r0] ldrb r1, [r5, 0x3] movs r6, 0x20 movs r0, 0x20 ands r0, r1 cmp r0, 0 beq _08064100 ldr r1, =gBattleMons 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 _08064100 lsrs r1, r4, 1 ldr r0, [r2] adds r1, r0 adds r1, 0xC6 ldrb r0, [r1] orrs r0, r6 strb r0, [r1] movs r7, 0x1 _08064100: ldrb r1, [r5, 0x3] movs r6, 0x10 movs r0, 0x10 ands r0, r1 cmp r0, 0 beq _0806413A ldr r1, =gBattleMons 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 _0806412A movs r0, 0x80 ands r1, r0 cmp r1, 0 beq _0806413A _0806412A: lsrs r1, r4, 1 ldr r0, [r2] adds r1, r0 adds r1, 0xC6 ldrb r0, [r1] orrs r0, r6 strb r0, [r1] movs r7, 0x1 _0806413A: ldrb r1, [r5, 0x3] movs r6, 0x8 movs r0, 0x8 ands r0, r1 cmp r0, 0 beq _0806416C ldr r1, =gBattleMons 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 _0806416C lsrs r1, r4, 1 ldr r0, [r2] adds r1, r0 adds r1, 0xC6 ldrb r0, [r1] orrs r0, r6 strb r0, [r1] movs r7, 0x1 _0806416C: ldrb r1, [r5, 0x3] movs r6, 0x4 movs r0, 0x4 ands r0, r1 cmp r0, 0 beq _0806419E ldr r1, =gBattleMons 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 _0806419E lsrs r1, r4, 1 ldr r0, [r2] adds r1, r0 adds r1, 0xC6 ldrb r0, [r1] orrs r0, r6 strb r0, [r1] movs r7, 0x1 _0806419E: ldrb r1, [r5, 0x3] movs r6, 0x2 movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _080641D0 ldr r1, =gBattleMons 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 _080641D0 lsrs r1, r4, 1 ldr r0, [r2] adds r1, r0 adds r1, 0xC6 ldrb r0, [r1] orrs r0, r6 strb r0, [r1] movs r7, 0x1 _080641D0: ldrb r1, [r5, 0x3] movs r4, 0x1 movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _080641DE b _08064324 _080641DE: ldr r1, =gBattleMons 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 _080641F6 b _08064324 _080641F6: lsrs r1, r3, 1 ldr r0, [r2] adds r1, r0 adds r1, 0xC6 ldrb r0, [r1] orrs r0, r4 strb r0, [r1] b _08064066 .pool _08064214: ldr r4, =gUnknown_02024064 ldrb r0, [r4] lsrs r0, 1 ldr r3, =gUnknown_0202449C ldr r1, [r3] adds r0, r1 adds r0, 0xC6 movs r1, 0 strb r1, [r0] ldr r1, =gUnknown_020242BC ldrb r2, [r4] lsls r0, r2, 3 subs r0, r2 lsls r0, 2 adds r0, r1 ldrb r0, [r0, 0x16] cmp r0, 0 beq _08064324 ldrb r1, [r5] movs r6, 0xF adds r0, r6, 0 ands r0, r1 cmp r0, 0 beq _08064254 lsrs r2, 1 ldr r0, [r3] adds r2, r0 adds r2, 0xC6 ldrb r0, [r2] movs r1, 0x1 orrs r0, r1 strb r0, [r2] _08064254: ldrb r1, [r5, 0x1] movs r7, 0xF0 adds r0, r7, 0 ands r0, r1 cmp r0, 0 beq _08064272 ldrb r0, [r4] lsrs r0, 1 ldr r1, [r3] adds r0, r1 adds r0, 0xC6 ldrb r1, [r0] movs r2, 0x2 orrs r1, r2 strb r1, [r0] _08064272: ldrb r1, [r5, 0x1] adds r0, r6, 0 ands r0, r1 cmp r0, 0 beq _0806428E ldrb r0, [r4] lsrs r0, 1 ldr r1, [r3] adds r0, r1 adds r0, 0xC6 ldrb r1, [r0] movs r2, 0x4 orrs r1, r2 strb r1, [r0] _0806428E: ldrb r1, [r5, 0x2] adds r0, r6, 0 ands r0, r1 cmp r0, 0 beq _080642AA ldrb r0, [r4] lsrs r0, 1 ldr r1, [r3] adds r0, r1 adds r0, 0xC6 ldrb r1, [r0] movs r2, 0x8 orrs r1, r2 strb r1, [r0] _080642AA: ldrb r1, [r5, 0x2] adds r0, r7, 0 ands r0, r1 cmp r0, 0 beq _080642C6 ldrb r0, [r4] lsrs r0, 1 ldr r1, [r3] adds r0, r1 adds r0, 0xC6 ldrb r1, [r0] movs r2, 0x20 orrs r1, r2 strb r1, [r0] _080642C6: ldrb r1, [r5] movs r0, 0x30 ands r0, r1 cmp r0, 0 bne _080642D2 b _08064066 _080642D2: ldrb r0, [r4] lsrs r0, 1 ldr r1, [r3] adds r0, r1 adds r0, 0xC6 ldrb r1, [r0] movs r2, 0x80 orrs r1, r2 strb r1, [r0] b _08064066 .pool _080642F4: ldr r4, =gUnknown_02024064 ldrb r0, [r4] bl battle_side_get_owner lsls r0, 24 lsrs r3, r0, 24 ldr r2, =gUnknown_020242BC ldrb r1, [r4] lsls r0, r1, 3 subs r0, r1 lsls r0, 2 adds r0, r2 ldrb r0, [r0, 0x16] cmp r0, 0 beq _08064324 ldr r0, =gUnknown_02024294 lsls r1, r3, 1 adds r1, r3 lsls r1, 2 adds r1, r0 ldrb r0, [r1, 0x4] cmp r0, 0 bne _08064324 b _08064066 _08064324: cmp r7, 0 beq _08064370 _08064328: movs r0, 0x1 movs r1, 0x1 movs r2, 0 bl dp01_build_cmdbuf_x21_a_bb ldr r0, =gUnknown_02024064 ldrb r0, [r0] lsrs r0, 1 ldr r1, =gUnknown_0202449C ldr r1, [r1] lsls r0, 1 adds r0, r1 adds r0, 0xC0 mov r1, r9 strb r1, [r0] ldr r0, =gUnknown_020244A8 ldr r0, [r0] ldr r0, [r0, 0x18] adds r0, 0x48 ldr r2, [sp] adds r0, r2 movs r1, 0 strh r1, [r0] adds r0, r7, 0 b _0806437E .pool _08064370: movs r0, 0x1 add r8, r0 mov r1, r8 cmp r1, 0x3 bgt _0806437C b _08063F72 _0806437C: movs r0, 0 _0806437E: 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 sub_8063EE0 thumb_func_start nullsub_28 nullsub_28: @ 8064390 bx lr thumb_func_end nullsub_28 thumb_func_start sub_8064394 sub_8064394: @ 8064394 ldr r1, =gUnknown_03005D60 ldr r0, =gUnknown_02024064 ldrb r0, [r0] lsls r0, 2 adds r0, r1 ldr r1, =sub_80643B0 str r1, [r0] bx lr .pool thumb_func_end sub_8064394 thumb_func_start sub_80643B0 sub_80643B0: @ 80643B0 push {lr} ldr r2, =gUnknown_02024068 ldr r1, =gBitTable ldr r0, =gUnknown_02024064 ldrb r3, [r0] lsls r0, r3, 2 adds r0, r1 ldr r1, [r2] ldr r0, [r0] ands r1, r0 cmp r1, 0 beq _080643FC ldr r0, =gUnknown_02023064 lsls r1, r3, 9 adds r1, r0 ldrb r0, [r1] cmp r0, 0x38 bhi _080643F8 ldr r0, =gUnknown_0831C7B4 ldrb r1, [r1] lsls r1, 2 adds r1, r0 ldr r0, [r1] bl _call_via_r0 b _080643FC .pool _080643F8: bl sub_8065068 _080643FC: pop {r0} bx r0 thumb_func_end sub_80643B0 thumb_func_start sub_8064400 sub_8064400: @ 8064400 push {lr} ldr r2, =gUnknown_02020630 ldr r1, =gUnknown_020241E4 ldr r0, =gUnknown_02024064 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, =DummyObjectCallback cmp r1, r0 bne _08064424 bl sub_8065068 _08064424: pop {r0} bx r0 .pool thumb_func_end sub_8064400 thumb_func_start sub_8064438 sub_8064438: @ 8064438 push {lr} ldr r2, =gUnknown_02020630 ldr r1, =gUnknown_020241E4 ldr r0, =gUnknown_02024064 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, =DummyObjectCallback cmp r1, r0 bne _0806445C bl sub_8065068 _0806445C: pop {r0} bx r0 .pool thumb_func_end sub_8064438 thumb_func_start sub_8064470 sub_8064470: @ 8064470 push {r4-r6,lr} ldr r5, =gUnknown_02020630 ldr r6, =gUnknown_020241E4 ldr r4, =gUnknown_02024064 ldrb r0, [r4] adds r0, r6 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r2, r0, 2 adds r0, r5, 0 adds r0, 0x1C adds r0, r2, r0 ldr r1, [r0] ldr r0, =DummyObjectCallback cmp r1, r0 bne _080644C2 adds r0, r2, r5 ldrh r0, [r0, 0x6] bl sub_805DFE4 ldrb r0, [r4] adds r0, r6 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 bl obj_free_rotscale_entry ldrb r0, [r4] adds r0, r6 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 bl RemoveObjectAndFreeTiles bl sub_8065068 _080644C2: pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_8064470 thumb_func_start sub_80644D8 sub_80644D8: @ 80644D8 push {r4,lr} ldr r4, =gUnknown_020244D0 ldr r1, [r4] ldr r3, =gUnknown_02024064 ldrb r0, [r3] ldr r2, [r1, 0x4] lsls r1, r0, 1 adds r1, r0 lsls r1, 2 adds r1, r2 ldrb r0, [r1, 0x9] subs r0, 0x1 strb r0, [r1, 0x9] lsls r0, 24 lsrs r0, 24 cmp r0, 0xFF bne _08064510 ldr r0, [r4] ldrb r1, [r3] ldr r2, [r0, 0x4] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r2 movs r1, 0 strb r1, [r0, 0x9] bl sub_8065068 _08064510: pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_80644D8 thumb_func_start sub_8064520 sub_8064520: @ 8064520 push {r4-r7,lr} mov r7, r8 push {r7} movs r0, 0 mov r8, r0 movs r4, 0 bl battle_type_is_double lsls r0, 24 cmp r0, 0 beq _0806454C bl battle_type_is_double lsls r0, 24 cmp r0, 0 beq _08064584 ldr r0, =gBattleTypeFlags ldr r0, [r0] movs r1, 0x40 ands r0, r1 cmp r0, 0 beq _08064584 _0806454C: ldr r2, =gUnknown_02020630 ldr r1, =gUnknown_03005D70 ldr r3, =gUnknown_02024064 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, [r0] ldr r0, =DummyObjectCallback adds r7, r3, 0 cmp r1, r0 bne _080645C2 b _080645CA .pool _08064584: ldr r3, =gUnknown_02020630 ldr r6, =gUnknown_03005D70 ldr r2, =gUnknown_02024064 ldrb r4, [r2] adds r0, r4, r6 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r5, r3, 0 adds r5, 0x1C adds r0, r5 ldr r3, [r0] ldr r0, =DummyObjectCallback adds r7, r2, 0 cmp r3, r0 bne _080645C0 movs r0, 0x2 eors r4, r0 adds r0, r4, r6 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 ldr r0, [r0] cmp r0, r3 bne _080645C0 movs r1, 0x1 mov r8, r1 _080645C0: movs r4, 0x1 _080645C2: mov r0, r8 cmp r0, 0 bne _080645CA b _08064714 _080645CA: cmp r4, 0 bne _080645DE ldrb r1, [r7] movs r0, 0x2 eors r0, r1 bl b_side_obj__get_some_boolean lsls r0, 24 cmp r0, 0 bne _0806469C _080645DE: ldr r1, =gUnknown_020244D0 mov r12, r1 ldr r0, [r1] ldr r7, =gUnknown_02024064 ldrb r2, [r7] ldr r3, [r0, 0x4] lsls r0, r2, 1 adds r0, r2 lsls r0, 2 adds r4, r0, r3 ldrb r1, [r4, 0x1] movs r5, 0x1 adds r0, r5, 0 ands r0, r1 cmp r0, 0 bne _08064600 b _08064714 _08064600: movs r6, 0x2 adds r1, r6, 0 eors r1, r2 lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r3 ldrb r1, [r0, 0x1] adds r0, r5, 0 ands r0, r1 cmp r0, 0 beq _08064714 ldrb r1, [r4] movs r3, 0x7F adds r0, r3, 0 ands r0, r1 strb r0, [r4] mov r1, r12 ldr r0, [r1] ldrb r2, [r7] ldr r0, [r0, 0x4] lsls r1, r2, 1 adds r1, r2 lsls r1, 2 adds r1, r0 ldrb r2, [r1, 0x1] movs r4, 0x2 negs r4, r4 adds r0, r4, 0 ands r0, r2 strb r0, [r1, 0x1] mov r0, r12 ldr r2, [r0] ldrb r0, [r7] adds r1, r6, 0 eors r1, r0 ldr r2, [r2, 0x4] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r1, [r0] ands r3, r1 strb r3, [r0] mov r1, r12 ldr r2, [r1] ldrb r0, [r7] adds r1, r6, 0 eors r1, r0 ldr r2, [r2, 0x4] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r1, [r0, 0x1] ands r4, r1 strb r4, [r0, 0x1] ldr r4, =0x000027f9 adds r0, r4, 0 bl FreeObjectTilesByTag adds r0, r4, 0 bl FreeObjectPaletteByTag b _080646F2 .pool _0806469C: ldr r3, =gUnknown_020244D0 ldr r0, [r3] ldrb r1, [r7] ldr r2, [r0, 0x4] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r2, r0, r2 ldrb r1, [r2, 0x1] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _08064714 ldrb r1, [r2] movs r0, 0x7F ands r0, r1 strb r0, [r2] ldr r0, [r3] ldrb r2, [r7] ldr r0, [r0, 0x4] lsls r1, r2, 1 adds r1, r2 lsls r1, 2 adds r1, r0 ldrb r2, [r1, 0x1] movs r0, 0x2 negs r0, r0 ands r0, r2 strb r0, [r1, 0x1] ldrb r0, [r7] bl battle_get_per_side_status lsls r0, 24 lsrs r0, 24 cmp r0, 0x3 bne _080646F2 ldr r4, =0x000027f9 adds r0, r4, 0 bl FreeObjectTilesByTag adds r0, r4, 0 bl FreeObjectPaletteByTag _080646F2: ldr r0, =gUnknown_020244D0 ldr r0, [r0] ldr r3, =gUnknown_02024064 ldrb r1, [r3] ldr r2, [r0, 0x4] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r2 movs r1, 0x3 strb r1, [r0, 0x9] ldr r1, =gUnknown_03005D60 ldrb r0, [r3] lsls r0, 2 adds r0, r1 ldr r1, =sub_80644D8 str r1, [r0] _08064714: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_8064520 thumb_func_start sub_8064734 sub_8064734: @ 8064734 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} movs r0, 0 mov r10, r0 ldr r5, =gUnknown_020244D0 ldr r0, [r5] ldr r4, =gUnknown_02024064 ldrb r2, [r4] ldr r1, [r0, 0x4] lsls r3, r2, 1 adds r0, r3, r2 lsls r0, 2 adds r0, r1 ldrh r1, [r0] movs r6, 0xC4 lsls r6, 1 adds r0, r6, 0 ands r0, r1 cmp r0, 0 bne _08064776 ldr r0, =gUnknown_0202406E adds r0, r3, r0 ldrh r1, [r0] movs r0, 0x64 muls r1, r0 ldr r0, =gEnemyParty adds r1, r0 adds r0, r2, 0 bl sub_8172EF0 _08064776: ldr r0, =gBattleTypeFlags ldr r0, [r0] movs r1, 0x40 ands r0, r1 cmp r0, 0 bne _080647B4 ldr r2, [r5] ldrb r1, [r4] movs r0, 0x2 adds r3, r0, 0 eors r3, r1 ldr r1, [r2, 0x4] lsls r2, r3, 1 adds r0, r2, r3 lsls r0, 2 adds r0, r1 ldrh r1, [r0] adds r0, r6, 0 ands r0, r1 cmp r0, 0 bne _080647B4 ldr r0, =gUnknown_0202406E adds r0, r2, r0 ldrh r1, [r0] movs r0, 0x64 muls r1, r0 ldr r0, =gEnemyParty adds r1, r0 adds r0, r3, 0 bl sub_8172EF0 _080647B4: ldr r3, =gUnknown_020244D0 ldr r0, [r3] ldr r2, =gUnknown_02024064 ldrb r5, [r2] ldr r4, [r0, 0x4] lsls r0, r5, 1 adds r0, r5 lsls r0, 2 adds r6, r0, r4 ldrb r1, [r6] movs r0, 0x8 mov r12, r0 ands r0, r1 mov r8, r3 mov r9, r2 cmp r0, 0 bne _08064898 movs r7, 0x2 adds r1, r7, 0 eors r1, r5 lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r4 ldrb r1, [r0] mov r0, r12 ands r0, r1 cmp r0, 0 bne _08064898 ldrb r1, [r6, 0x1] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _0806487A bl battle_type_is_double lsls r0, 24 cmp r0, 0 beq _0806484A ldr r0, =gBattleTypeFlags ldr r0, [r0] movs r1, 0x40 ands r0, r1 cmp r0, 0 bne _0806484A ldr r4, =gUnknown_03005D70 mov r1, r9 ldrb r0, [r1] adds r1, r7, 0 eors r1, r0 adds r0, r1, r4 ldrb r0, [r0] ldr r2, =gUnknown_0202406E lsls r1, 1 adds r1, r2 ldrh r2, [r1] movs r1, 0x64 muls r1, r2 ldr r2, =gEnemyParty adds r1, r2 movs r2, 0 bl healthbar_draw_field_maybe mov r1, r9 ldrb r0, [r1] eors r0, r7 bl sub_8076918 mov r1, r9 ldrb r0, [r1] eors r0, r7 adds r0, r4 ldrb r0, [r0] bl sub_80729D0 _0806484A: ldr r5, =gUnknown_03005D70 ldr r4, =gUnknown_02024064 ldrb r1, [r4] adds r0, r1, r5 ldrb r0, [r0] ldr r2, =gUnknown_0202406E lsls r1, 1 adds r1, r2 ldrh r2, [r1] movs r1, 0x64 muls r1, r2 ldr r2, =gEnemyParty adds r1, r2 movs r2, 0 bl healthbar_draw_field_maybe ldrb r0, [r4] bl sub_8076918 ldrb r0, [r4] adds r0, r5 ldrb r0, [r0] bl sub_80729D0 _0806487A: ldr r4, =gUnknown_020244D0 ldr r0, [r4] ldr r3, =gUnknown_02024064 ldrb r1, [r3] ldr r2, [r0, 0x4] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r1, [r0, 0x1] movs r2, 0x80 orrs r1, r2 strb r1, [r0, 0x1] mov r8, r4 mov r9, r3 _08064898: mov r1, r8 ldr r0, [r1] mov r1, r9 ldrb r2, [r1] ldr r3, [r0, 0x4] lsls r0, r2, 1 adds r0, r2 lsls r0, 2 adds r0, r3 ldrb r1, [r0, 0x1] movs r0, 0xC0 ands r0, r1 cmp r0, 0x80 bne _0806495A movs r1, 0x2 eors r1, r2 lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r3 ldrb r1, [r0, 0x1] movs r0, 0x40 ands r0, r1 cmp r0, 0 bne _0806495A bl sub_80A36C8 lsls r0, 24 cmp r0, 0 bne _0806495A mov r1, r8 ldr r0, [r1] mov r1, r9 ldrb r2, [r1] ldr r1, [r0, 0x4] lsls r0, r2, 1 adds r0, r2 lsls r0, 2 adds r0, r1 ldrb r1, [r0, 0x1] movs r0, 0x20 ands r0, r1 cmp r0, 0 bne _0806493C ldr r0, =gBattleTypeFlags ldr r0, [r0] movs r1, 0x42 ands r0, r1 cmp r0, 0x42 bne _08064930 adds r0, r2, 0 bl battle_get_per_side_status lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _0806493C ldr r0, =gMPlay_BGM bl m4aMPlayContinue b _0806493C .pool _08064930: ldr r0, =gMPlay_BGM ldr r1, =0x0000ffff movs r2, 0x80 lsls r2, 1 bl m4aMPlayVolumeControl _0806493C: ldr r0, =gUnknown_020244D0 ldr r2, [r0] ldr r0, =gUnknown_02024064 ldrb r1, [r0] ldr r2, [r2, 0x4] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r1, [r0, 0x1] movs r2, 0x20 orrs r1, r2 strb r1, [r0, 0x1] movs r0, 0x1 mov r10, r0 _0806495A: mov r1, r10 cmp r1, 0 bne _08064962 b _08064AC0 _08064962: ldr r2, =gUnknown_02020630 ldr r0, =gUnknown_03005D7C ldr r5, =gUnknown_02024064 ldrb r3, [r5] adds r0, r3, r0 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r2, 0x1C adds r0, r2 ldr r4, [r0] ldr r0, =DummyObjectCallback cmp r4, r0 beq _08064982 b _08064AC0 _08064982: ldr r0, =gUnknown_020241E4 adds r0, r3, r0 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 ldr r0, [r0] cmp r0, r4 beq _08064998 b _08064AC0 _08064998: ldr r0, =gBattleTypeFlags ldr r0, [r0] movs r1, 0x40 ands r0, r1 cmp r0, 0 beq _080649E2 adds r0, r3, 0 bl battle_get_per_side_status lsls r0, 24 lsrs r0, 24 cmp r0, 0x3 bne _080649E2 ldr r3, =gUnknown_020244D0 ldr r0, [r3] ldrb r2, [r5] ldr r0, [r0, 0x4] lsls r1, r2, 1 adds r1, r2 lsls r1, 2 adds r1, r0 ldrb r0, [r1, 0x9] adds r0, 0x1 strb r0, [r1, 0x9] lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _08064AC0 ldr r0, [r3] ldrb r1, [r5] ldr r2, [r0, 0x4] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r2 movs r1, 0 strb r1, [r0, 0x9] _080649E2: bl battle_type_is_double lsls r0, 24 cmp r0, 0 beq _08064A3A ldr r0, =gBattleTypeFlags ldr r0, [r0] movs r1, 0x40 ands r0, r1 cmp r0, 0 bne _08064A3A ldr r1, =gUnknown_03005D7C ldr r5, =gUnknown_02024064 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, =gUnknown_02020630 adds r0, r1 bl RemoveObjectAndFreeTiles ldrb r0, [r5] eors r4, r0 ldr r1, =gUnknown_0202406E lsls r0, r4, 1 adds r0, r1 ldrh r1, [r0] movs r0, 0x64 muls r0, r1 ldr r1, =gEnemyParty adds r0, r1 movs r1, 0xB bl GetMonData adds r1, r0, 0 lsls r1, 16 lsrs r1, 16 adds r0, r4, 0 bl sub_805EE54 _08064A3A: ldr r1, =gUnknown_03005D7C ldr r4, =gUnknown_02024064 ldrb r0, [r4] adds r0, r1 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, =gUnknown_02020630 adds r0, r1 bl RemoveObjectAndFreeTiles ldrb r5, [r4] ldr r1, =gUnknown_0202406E lsls r0, r5, 1 adds r0, r1 ldrh r1, [r0] movs r0, 0x64 muls r0, r1 ldr r1, =gEnemyParty adds r0, r1 movs r1, 0xB bl GetMonData adds r1, r0, 0 lsls r1, 16 lsrs r1, 16 adds r0, r5, 0 bl sub_805EE54 ldr r3, =gUnknown_020244D0 ldr r0, [r3] ldr r2, [r0, 0x8] ldrb r1, [r2, 0x9] movs r0, 0x2 negs r0, r0 ands r0, r1 strb r0, [r2, 0x9] ldr r0, [r3] ldrb r2, [r4] ldr r0, [r0, 0x4] lsls r1, r2, 1 adds r1, r2 lsls r1, 2 adds r1, r0 ldrb r2, [r1, 0x1] movs r0, 0x21 negs r0, r0 ands r0, r2 strb r0, [r1, 0x1] ldr r0, [r3] ldrb r2, [r4] ldr r0, [r0, 0x4] lsls r1, r2, 1 adds r1, r2 lsls r1, 2 adds r1, r0 ldrb r2, [r1, 0x1] movs r0, 0x7F ands r0, r2 strb r0, [r1, 0x1] ldr r1, =gUnknown_03005D60 ldrb r0, [r4] lsls r0, 2 adds r0, r1 ldr r1, =sub_8064520 str r1, [r0] _08064AC0: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_8064734 thumb_func_start sub_8064B04 sub_8064B04: @ 8064B04 push {r4-r7,lr} ldr r4, =gUnknown_02020630 ldr r0, =gUnknown_020241E4 ldr r7, =gUnknown_02024064 ldrb r3, [r7] adds r0, r3, r0 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, =DummyObjectCallback cmp r1, r0 bne _08064BB6 adds r0, r2, r4 movs r1, 0x24 ldrsh r0, [r0, r1] cmp r0, 0 bne _08064BB6 ldr r6, =gUnknown_020244D0 ldr r0, [r6] ldr r1, [r0, 0x4] lsls r4, r3, 1 adds r0, r4, r3 lsls r0, 2 adds r2, r0, r1 ldrb r5, [r2] movs r0, 0x80 ands r0, r5 cmp r0, 0 bne _08064B7C ldr r0, =gUnknown_0202406E adds r0, r4, r0 ldrh r1, [r0] movs r0, 0x64 muls r1, r0 ldr r0, =gEnemyParty adds r1, r0 adds r0, r3, 0 bl sub_8172EF0 b _08064BB6 .pool _08064B7C: ldrb r1, [r2, 0x1] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _08064BB6 movs r0, 0x7F ands r0, r5 strb r0, [r2] ldr r0, [r6] ldrb r2, [r7] ldr r0, [r0, 0x4] lsls r1, r2, 1 adds r1, r2 lsls r1, 2 adds r1, r0 ldrb r2, [r1, 0x1] movs r0, 0x2 negs r0, r0 ands r0, r2 strb r0, [r1, 0x1] ldr r4, =0x000027f9 adds r0, r4, 0 bl FreeObjectTilesByTag adds r0, r4, 0 bl FreeObjectPaletteByTag bl sub_8065068 _08064BB6: pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_8064B04 thumb_func_start sub_8064BC0 sub_8064BC0: @ 8064BC0 push {r4-r6,lr} ldr r6, =gUnknown_02024064 ldrb r0, [r6] ldr r5, =gUnknown_03005D70 adds r1, r0, r5 ldrb r1, [r1] movs r2, 0 movs r3, 0 bl sub_8074AA0 adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 ldrb r0, [r6] adds r0, r5 ldrb r0, [r0] bl sub_80729D0 lsls r4, 16 asrs r1, r4, 16 movs r0, 0x1 negs r0, r0 cmp r1, r0 beq _08064C08 ldrb r0, [r6] adds r0, r5 ldrb r0, [r0] movs r2, 0 bl heathbar_draw_hp b _08064C0C .pool _08064C08: bl sub_8065068 _08064C0C: pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_8064BC0 thumb_func_start sub_8064C14 sub_8064C14: @ 8064C14 push {lr} ldr r2, =gUnknown_02020630 ldr r0, =gUnknown_020241E4 ldr r1, =gUnknown_02024064 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 _08064C42 ldr r0, =gUnknown_03005D70 adds r0, r3, r0 ldrb r0, [r0] bl sub_8072984 bl sub_8065068 _08064C42: pop {r0} bx r0 .pool thumb_func_end sub_8064C14 thumb_func_start sub_8064C58 sub_8064C58: @ 8064C58 push {r4-r6,lr} ldr r0, =gUnknown_020244D0 ldr r0, [r0] ldr r6, =gUnknown_02024064 ldrb r2, [r6] ldr r1, [r0, 0x4] lsls r0, r2, 1 adds r0, r2 lsls r0, 2 adds r0, r1 ldrb r1, [r0] movs r0, 0x40 ands r0, r1 cmp r0, 0 bne _08064CB2 ldr r5, =gUnknown_020241E4 adds r0, r2, r5 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r4, =gUnknown_02020630 adds r0, r4 bl obj_free_rotscale_entry ldrb r0, [r6] adds r0, r5 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 bl RemoveObjectAndFreeTiles ldrb r0, [r6] bl sub_805EEE0 ldr r1, =gUnknown_03005D70 ldrb r0, [r6] adds r0, r1 ldrb r0, [r0] bl sub_8072984 bl sub_8065068 _08064CB2: pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_8064C58 thumb_func_start sub_8064CCC sub_8064CCC: @ 8064CCC push {lr} movs r0, 0 bl IsTextPrinterActive lsls r0, 16 cmp r0, 0 bne _08064CDE bl sub_8065068 _08064CDE: pop {r0} bx r0 thumb_func_end sub_8064CCC thumb_func_start sub_8064CE4 sub_8064CE4: @ 8064CE4 push {r4,lr} ldr r1, =gUnknown_020241E4 ldr r0, =gUnknown_02024064 ldrb r0, [r0] adds r0, r1 ldrb r1, [r0] ldr r2, =gUnknown_02020630 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 _08064D30 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, =gUnknown_020244B9 strb r3, [r0] bl sub_8065068 b _08064D5A .pool _08064D30: ldrh r0, [r4, 0x30] movs r1, 0x3 ands r0, r1 cmp r0, 0 bne _08064D54 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] _08064D54: ldrh r0, [r4, 0x30] adds r0, 0x1 strh r0, [r4, 0x30] _08064D5A: pop {r4} pop {r0} bx r0 thumb_func_end sub_8064CE4 thumb_func_start sub_8064D60 sub_8064D60: @ 8064D60 push {r4,lr} ldr r2, =gUnknown_02020630 ldr r0, =gUnknown_03005D70 ldr r4, =gUnknown_02024064 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, =DummyObjectCallback cmp r1, r0 bne _08064DAC ldr r0, =gUnknown_020244D0 ldr r0, [r0] ldr r1, [r0] lsls r0, r3, 2 adds r0, r1 ldrb r1, [r0] movs r0, 0x4 ands r0, r1 cmp r0, 0 beq _08064DA0 adds r0, r3, 0 adds r1, r3, 0 adds r2, r3, 0 movs r3, 0x6 bl move_anim_start_t4 _08064DA0: ldr r0, =gUnknown_03005D60 ldrb r1, [r4] lsls r1, 2 adds r1, r0 ldr r0, =sub_8064DD0 str r0, [r1] _08064DAC: pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_8064D60 thumb_func_start sub_8064DD0 sub_8064DD0: @ 8064DD0 push {r4,lr} ldr r0, =gUnknown_020244D0 ldr r0, [r0] ldr r4, =gUnknown_02024064 ldrb r1, [r4] ldr r2, [r0, 0x4] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r1, [r0] movs r0, 0x40 ands r0, r1 cmp r0, 0 bne _08064E2A bl sub_80A36C8 lsls r0, 24 cmp r0, 0 bne _08064E2A ldr r2, =gUnknown_02020630 ldr r1, =gUnknown_020241E4 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, [r0] ldr r0, =DummyObjectCallback cmp r1, r0 beq _08064E1A ldr r0, =nullsub_18 cmp r1, r0 bne _08064E2A _08064E1A: ldr r0, =gMPlay_BGM ldr r1, =0x0000ffff movs r2, 0x80 lsls r2, 1 bl m4aMPlayVolumeControl bl sub_8065068 _08064E2A: pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_8064DD0 thumb_func_start sub_8064E50 sub_8064E50: @ 8064E50 push {r4-r7,lr} ldr r4, =gUnknown_020244D0 ldr r0, [r4] ldr r5, =gUnknown_02024064 ldrb r2, [r5] ldr r1, [r0, 0x4] lsls r0, r2, 1 adds r0, r2 lsls r0, 2 adds r3, r0, r1 ldrb r1, [r3, 0x1] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _08064F0C ldr r7, =gUnknown_02020630 ldr r6, =gUnknown_020241E4 adds r0, r2, r6 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r1, r7, 0 adds r1, 0x1C adds r0, r1 ldr r1, [r0] ldr r0, =DummyObjectCallback cmp r1, r0 bne _08064F0C ldrb r1, [r3] movs r0, 0x7F ands r0, r1 strb r0, [r3] ldr r0, [r4] ldrb r2, [r5] ldr r0, [r0, 0x4] lsls r1, r2, 1 adds r1, r2 lsls r1, 2 adds r1, r0 ldrb r2, [r1, 0x1] movs r0, 0x2 negs r0, r0 ands r0, r2 strb r0, [r1, 0x1] ldr r4, =0x000027f9 adds r0, r4, 0 bl FreeObjectTilesByTag adds r0, r4, 0 bl FreeObjectPaletteByTag ldrb r0, [r5] adds r0, r6 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r7 movs r1, 0 bl StartObjectImageAnim ldr r4, =gUnknown_03005D70 ldrb r1, [r5] adds r0, r1, r4 ldrb r0, [r0] ldr r2, =gUnknown_0202406E lsls r1, 1 adds r1, r2 ldrh r2, [r1] movs r1, 0x64 muls r1, r2 ldr r2, =gEnemyParty adds r1, r2 movs r2, 0 bl healthbar_draw_field_maybe ldrb r0, [r5] bl sub_8076918 ldrb r0, [r5] adds r0, r4 ldrb r0, [r0] bl sub_80729D0 ldrb r0, [r5] bl sub_805E408 ldr r1, =gUnknown_03005D60 ldrb r0, [r5] lsls r0, 2 adds r0, r1 ldr r1, =sub_8064D60 str r1, [r0] _08064F0C: pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_8064E50 thumb_func_start sub_8064F40 sub_8064F40: @ 8064F40 push {r4-r6,lr} ldr r6, =gUnknown_020244D0 ldr r0, [r6] ldr r5, =gUnknown_02024064 ldrb r2, [r5] ldr r1, [r0, 0x4] lsls r3, r2, 1 adds r0, r3, r2 lsls r0, 2 adds r0, r1 ldrb r1, [r0] movs r0, 0x88 ands r0, r1 cmp r0, 0 bne _08064F72 ldr r0, =gUnknown_0202406E adds r0, r3, r0 ldrh r1, [r0] movs r0, 0x64 muls r1, r0 ldr r0, =gEnemyParty adds r1, r0 adds r0, r2, 0 bl sub_8172EF0 _08064F72: ldr r4, =gUnknown_02020630 ldr r0, =gUnknown_03005D7C 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, =DummyObjectCallback cmp r1, r0 bne _08064FDC ldr r0, [r6] ldr r1, [r0, 0x4] lsls r0, r2, 1 adds r0, r2 lsls r0, 2 adds r0, r1 ldrb r1, [r0] movs r0, 0x8 ands r0, r1 cmp r0, 0 bne _08064FDC adds r0, r3, r4 bl RemoveObjectAndFreeTiles ldrb r4, [r5] ldr r1, =gUnknown_0202406E lsls r0, r4, 1 adds r0, r1 ldrh r1, [r0] movs r0, 0x64 muls r0, r1 ldr r1, =gEnemyParty adds r0, r1 movs r1, 0xB bl GetMonData adds r1, r0, 0 lsls r1, 16 lsrs r1, 16 adds r0, r4, 0 bl sub_805EE54 ldr r1, =gUnknown_03005D60 ldrb r0, [r5] lsls r0, 2 adds r0, r1 ldr r1, =sub_8064E50 str r1, [r0] _08064FDC: pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_8064F40 thumb_func_start sub_8065008 sub_8065008: @ 8065008 push {lr} ldr r0, =gUnknown_020244D0 ldr r2, [r0] ldr r0, =gUnknown_02024064 ldrb r1, [r0] ldr r2, [r2, 0x4] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r1, [r0] movs r0, 0x10 ands r0, r1 cmp r0, 0 bne _0806502A bl sub_8065068 _0806502A: pop {r0} bx r0 .pool thumb_func_end sub_8065008 thumb_func_start sub_8065038 sub_8065038: @ 8065038 push {lr} ldr r0, =gUnknown_020244D0 ldr r2, [r0] ldr r0, =gUnknown_02024064 ldrb r1, [r0] ldr r2, [r2, 0x4] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r1, [r0] movs r0, 0x20 ands r0, r1 cmp r0, 0 bne _0806505A bl sub_8065068 _0806505A: pop {r0} bx r0 .pool thumb_func_end sub_8065038 thumb_func_start sub_8065068 sub_8065068: @ 8065068 push {r4,lr} sub sp, 0x4 ldr r1, =gUnknown_03005D60 ldr r4, =gUnknown_02024064 ldrb r0, [r4] lsls r0, 2 adds r0, r1 ldr r1, =sub_80643B0 str r1, [r0] ldr r0, =gBattleTypeFlags ldr r0, [r0] movs r1, 0x2 ands r0, r1 cmp r0, 0 beq _080650BC bl link_get_multiplayer_id mov r1, sp strb r0, [r1] movs r0, 0x2 movs r1, 0x4 mov r2, sp bl dp01_prepare_buffer_wireless_probably ldr r1, =gUnknown_02023064 ldrb r0, [r4] lsls r0, 9 adds r0, r1 movs r1, 0x38 strb r1, [r0] b _080650CE .pool _080650BC: ldr r2, =gUnknown_02024068 ldr r1, =gBitTable ldrb r0, [r4] lsls r0, 2 adds r0, r1 ldr r1, [r0] ldr r0, [r2] bics r0, r1 str r0, [r2] _080650CE: add sp, 0x4 pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_8065068 thumb_func_start dp01t_00_2_getattr dp01t_00_2_getattr: @ 80650E0 push {r4-r6,lr} sub sp, 0x100 movs r6, 0 ldr r1, =gUnknown_02023064 ldr r0, =gUnknown_02024064 ldrb r2, [r0] lsls r0, r2, 9 adds r1, 0x2 adds r1, r0, r1 ldrb r0, [r1] cmp r0, 0 bne _08065118 ldr r0, =gUnknown_0202406E lsls r1, r2, 1 adds r1, r0 ldrb r0, [r1] mov r1, sp bl dp01_getattr_by_ch1_for_opponent_pokemon adds r6, r0, 0 b _0806513A .pool _08065118: ldrb r4, [r1] movs r5, 0 _0806511C: movs r0, 0x1 ands r0, r4 cmp r0, 0 beq _08065132 lsls r0, r5, 24 lsrs r0, 24 mov r2, sp adds r1, r2, r6 bl dp01_getattr_by_ch1_for_opponent_pokemon adds r6, r0 _08065132: lsrs r4, 1 adds r5, 0x1 cmp r5, 0x5 ble _0806511C _0806513A: lsls r1, r6, 16 lsrs r1, 16 movs r0, 0x1 mov r2, sp bl dp01_build_cmdbuf_x1D_1D_numargs_varargs bl sub_8065068 add sp, 0x100 pop {r4-r6} pop {r0} bx r0 thumb_func_end dp01t_00_2_getattr thumb_func_start dp01_getattr_by_ch1_for_opponent_pokemon dp01_getattr_by_ch1_for_opponent_pokemon: @ 8065154 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, =gUnknown_02023064 ldr r3, =gUnknown_02024064 ldrb r0, [r3] lsls r0, 9 adds r1, r2, 0x1 adds r0, r1 ldrb r0, [r0] cmp r0, 0x3B bls _0806517E bl _080658EA _0806517E: lsls r0, 2 ldr r1, =_08065194 adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _08065194: .4byte _08065284 .4byte _080654A8 .4byte _080654B8 .4byte _080654C8 .4byte _08065530 .4byte _08065530 .4byte _08065530 .4byte _08065530 .4byte _0806554C .4byte _08065588 .4byte _08065588 .4byte _08065588 .4byte _08065588 .4byte _080658EA .4byte _080658EA .4byte _080658EA .4byte _080658EA .4byte _080655A4 .4byte _080655B4 .4byte _080655E4 .4byte _080655F4 .4byte _08065604 .4byte _08065614 .4byte _08065624 .4byte _08065634 .4byte _08065644 .4byte _08065654 .4byte _08065664 .4byte _08065674 .4byte _08065684 .4byte _08065694 .4byte _080656A4 .4byte _080656F4 .4byte _08065704 .4byte _08065714 .4byte _08065724 .4byte _08065734 .4byte _08065744 .4byte _08065754 .4byte _08065764 .4byte _08065774 .4byte _080657A8 .4byte _080657B8 .4byte _080657C8 .4byte _080657D8 .4byte _080657E8 .4byte _080657F8 .4byte _08065808 .4byte _08065818 .4byte _08065838 .4byte _08065848 .4byte _08065858 .4byte _08065868 .4byte _08065878 .4byte _08065888 .4byte _08065898 .4byte _080658A8 .4byte _080658B8 .4byte _080658C8 .4byte _080658D8 _08065284: movs r0, 0x64 adds r4, r5, 0 muls r4, r0 ldr r0, =gEnemyParty adds r4, r0 adds r0, r4, 0 movs r1, 0xB bl GetMonData mov r1, sp strh r0, [r1] adds r0, r4, 0 movs r1, 0xC bl GetMonData 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 _080652D0: adds r1, r6, 0 adds r1, 0xD mov r0, r8 bl GetMonData strh r0, [r4] adds r1, r6, 0 adds r1, 0x11 mov r0, r8 bl GetMonData mov r2, r9 adds r1, r2, r6 strb r0, [r1] adds r4, 0x2 adds r6, 0x1 cmp r6, 0x3 ble _080652D0 movs r0, 0x64 adds r4, r5, 0 muls r4, r0 ldr r0, =gEnemyParty adds r4, r0 adds r0, r4, 0 movs r1, 0x15 bl GetMonData mov r1, r10 strb r0, [r1] adds r0, r4, 0 movs r1, 0x20 bl GetMonData ldr r2, [sp, 0x80] strb r0, [r2] adds r0, r4, 0 movs r1, 0x19 bl GetMonData str r0, [sp, 0x44] adds r0, r4, 0 movs r1, 0x27 bl GetMonData 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 GetMonData mov r3, sp movs r6, 0x1F ands r0, r6 lsls r0, 5 ldrh r2, [r3, 0x14] ldr r1, =0xfffffc1f ands r1, r2 orrs r1, r0 strh r1, [r3, 0x14] adds r0, r4, 0 movs r1, 0x29 bl GetMonData 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 GetMonData movs r1, 0x1F ands r1, r0 lsls r1, 15 ldr r0, [sp, 0x14] ldr r2, =0xfff07fff ands r0, r2 orrs r0, r1 str r0, [sp, 0x14] adds r0, r4, 0 movs r1, 0x2B bl GetMonData mov r3, sp ands r0, r6 lsls r0, 4 ldrh r2, [r3, 0x16] ldr r1, =0xfffffe0f ands r1, r2 orrs r1, r0 strh r1, [r3, 0x16] adds r0, r4, 0 movs r1, 0x2C bl GetMonData 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 GetMonData str r0, [sp, 0x48] adds r0, r4, 0 movs r1, 0x37 bl GetMonData str r0, [sp, 0x4C] adds r0, r4, 0 movs r1, 0x38 bl GetMonData ldr r1, [sp, 0x7C] strb r0, [r1] adds r0, r4, 0 movs r1, 0x39 bl GetMonData mov r1, sp strh r0, [r1, 0x28] adds r0, r4, 0 movs r1, 0x3A bl GetMonData mov r1, sp strh r0, [r1, 0x2C] adds r0, r4, 0 movs r1, 0x3B bl GetMonData mov r1, sp strh r0, [r1, 0x2] adds r0, r4, 0 movs r1, 0x3C bl GetMonData mov r1, sp strh r0, [r1, 0x4] adds r0, r4, 0 movs r1, 0x3D bl GetMonData mov r1, sp strh r0, [r1, 0x6] adds r0, r4, 0 movs r1, 0x3E bl GetMonData mov r1, sp strh r0, [r1, 0x8] adds r0, r4, 0 movs r1, 0x3F bl GetMonData mov r1, sp strh r0, [r1, 0xA] adds r0, r4, 0 movs r1, 0x2D bl GetMonData 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 GetMonData 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 GetMonData str r0, [sp, 0x54] adds r0, r4, 0 movs r1, 0x2 ldr r2, [sp, 0x8C] bl GetMonData ldr r0, [sp, 0x84] ldr r1, [sp, 0x8C] bl StringCopy10 adds r0, r4, 0 movs r1, 0x7 ldr r2, [sp, 0x88] bl GetMonData mov r2, sp movs r6, 0 _08065488: adds r0, r7, r6 adds r1, r2, r6 ldrb r1, [r1] strb r1, [r0] adds r6, 0x1 cmp r6, 0x57 bls _08065488 b _080658EA .pool _080654A8: movs r0, 0x64 muls r0, r5 ldr r1, =gEnemyParty adds r0, r1 movs r1, 0xB b _08065822 .pool _080654B8: movs r0, 0x64 muls r0, r5 ldr r1, =gEnemyParty adds r0, r1 movs r1, 0xC b _08065822 .pool _080654C8: 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, =gEnemyParty adds r4, r1, r0 mov r8, r9 _080654DE: adds r1, r6, 0 adds r1, 0xD adds r0, r4, 0 bl GetMonData mov r1, r8 strh r0, [r1] adds r1, r6, 0 adds r1, 0x11 adds r0, r4, 0 bl GetMonData mov r2, r10 adds r1, r2, r6 strb r0, [r1] movs r0, 0x2 add r8, r0 adds r6, 0x1 cmp r6, 0x3 ble _080654DE movs r0, 0x64 muls r0, r5 ldr r1, =gEnemyParty adds r0, r1 movs r1, 0x15 bl GetMonData mov r1, r9 strb r0, [r1, 0xC] mov r2, r9 movs r6, 0 _0806551C: adds r0, r7, r6 adds r1, r2, r6 ldrb r1, [r1] strb r1, [r0] adds r6, 0x1 cmp r6, 0xF bls _0806551C b _080658EA .pool _08065530: movs r0, 0x64 muls r0, r5 ldr r1, =gEnemyParty adds r0, r1 ldrb r1, [r3] lsls r1, 9 adds r2, 0x1 adds r1, r2 ldrb r1, [r1] adds r1, 0x9 b _08065822 .pool _0806554C: movs r6, 0 movs r0, 0x64 adds r4, r5, 0 muls r4, r0 ldr r2, =gEnemyParty mov r8, r2 _08065558: adds r1, r6, 0 adds r1, 0x11 mov r2, r8 adds r0, r4, r2 bl GetMonData adds r1, r7, r6 strb r0, [r1] adds r6, 0x1 cmp r6, 0x3 ble _08065558 movs r0, 0x64 muls r0, r5 ldr r1, =gEnemyParty adds r0, r1 movs r1, 0x15 bl GetMonData adds r1, r7, r6 strb r0, [r1] adds r6, 0x1 b _080658EA .pool _08065588: movs r0, 0x64 muls r0, r5 ldr r1, =gEnemyParty adds r0, r1 ldrb r1, [r3] lsls r1, 9 adds r2, 0x1 adds r1, r2 ldrb r1, [r1] adds r1, 0x8 b _080658E2 .pool _080655A4: movs r0, 0x64 muls r0, r5 ldr r1, =gEnemyParty adds r0, r1 movs r1, 0x1 b _080655BE .pool _080655B4: movs r0, 0x64 muls r0, r5 ldr r1, =gEnemyParty adds r0, r1 movs r1, 0x19 _080655BE: bl GetMonData 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 _080658EA .pool _080655E4: movs r0, 0x64 muls r0, r5 ldr r1, =gEnemyParty adds r0, r1 movs r1, 0x1A b _080658E2 .pool _080655F4: movs r0, 0x64 muls r0, r5 ldr r1, =gEnemyParty adds r0, r1 movs r1, 0x1B b _080658E2 .pool _08065604: movs r0, 0x64 muls r0, r5 ldr r1, =gEnemyParty adds r0, r1 movs r1, 0x1C b _080658E2 .pool _08065614: movs r0, 0x64 muls r0, r5 ldr r1, =gEnemyParty adds r0, r1 movs r1, 0x1D b _080658E2 .pool _08065624: movs r0, 0x64 muls r0, r5 ldr r1, =gEnemyParty adds r0, r1 movs r1, 0x1E b _080658E2 .pool _08065634: movs r0, 0x64 muls r0, r5 ldr r1, =gEnemyParty adds r0, r1 movs r1, 0x1F b _080658E2 .pool _08065644: movs r0, 0x64 muls r0, r5 ldr r1, =gEnemyParty adds r0, r1 movs r1, 0x20 b _080658E2 .pool _08065654: movs r0, 0x64 muls r0, r5 ldr r1, =gEnemyParty adds r0, r1 movs r1, 0x22 b _080658E2 .pool _08065664: movs r0, 0x64 muls r0, r5 ldr r1, =gEnemyParty adds r0, r1 movs r1, 0x23 b _080658E2 .pool _08065674: movs r0, 0x64 muls r0, r5 ldr r1, =gEnemyParty adds r0, r1 movs r1, 0x24 b _080658E2 .pool _08065684: movs r0, 0x64 muls r0, r5 ldr r1, =gEnemyParty adds r0, r1 movs r1, 0x25 b _080658E2 .pool _08065694: movs r0, 0x64 muls r0, r5 ldr r1, =gEnemyParty adds r0, r1 movs r1, 0x26 b _080658E2 .pool _080656A4: movs r0, 0x64 adds r4, r5, 0 muls r4, r0 ldr r0, =gEnemyParty adds r4, r0 adds r0, r4, 0 movs r1, 0x27 bl GetMonData strb r0, [r7] adds r0, r4, 0 movs r1, 0x28 bl GetMonData strb r0, [r7, 0x1] adds r0, r4, 0 movs r1, 0x29 bl GetMonData strb r0, [r7, 0x2] adds r0, r4, 0 movs r1, 0x2A bl GetMonData strb r0, [r7, 0x3] adds r0, r4, 0 movs r1, 0x2B bl GetMonData strb r0, [r7, 0x4] adds r0, r4, 0 movs r1, 0x2C bl GetMonData strb r0, [r7, 0x5] movs r6, 0x6 b _080658EA .pool _080656F4: movs r0, 0x64 muls r0, r5 ldr r1, =gEnemyParty adds r0, r1 movs r1, 0x27 b _080658E2 .pool _08065704: movs r0, 0x64 muls r0, r5 ldr r1, =gEnemyParty adds r0, r1 movs r1, 0x28 b _080658E2 .pool _08065714: movs r0, 0x64 muls r0, r5 ldr r1, =gEnemyParty adds r0, r1 movs r1, 0x29 b _080658E2 .pool _08065724: movs r0, 0x64 muls r0, r5 ldr r1, =gEnemyParty adds r0, r1 movs r1, 0x2A b _080658E2 .pool _08065734: movs r0, 0x64 muls r0, r5 ldr r1, =gEnemyParty adds r0, r1 movs r1, 0x2B b _080658E2 .pool _08065744: movs r0, 0x64 muls r0, r5 ldr r1, =gEnemyParty adds r0, r1 movs r1, 0x2C b _080658E2 .pool _08065754: movs r0, 0x64 muls r0, r5 ldr r1, =gEnemyParty adds r0, r1 movs r1, 0 b _0806577E .pool _08065764: movs r0, 0x64 muls r0, r5 ldr r1, =gEnemyParty adds r0, r1 movs r1, 0x9 b _08065822 .pool _08065774: movs r0, 0x64 muls r0, r5 ldr r1, =gEnemyParty adds r0, r1 movs r1, 0x37 _0806577E: bl GetMonData 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 _080658EA .pool _080657A8: movs r0, 0x64 muls r0, r5 ldr r1, =gEnemyParty adds r0, r1 movs r1, 0x38 b _080658E2 .pool _080657B8: movs r0, 0x64 muls r0, r5 ldr r1, =gEnemyParty adds r0, r1 movs r1, 0x39 b _08065822 .pool _080657C8: movs r0, 0x64 muls r0, r5 ldr r1, =gEnemyParty adds r0, r1 movs r1, 0x3A b _08065822 .pool _080657D8: movs r0, 0x64 muls r0, r5 ldr r1, =gEnemyParty adds r0, r1 movs r1, 0x3B b _08065822 .pool _080657E8: movs r0, 0x64 muls r0, r5 ldr r1, =gEnemyParty adds r0, r1 movs r1, 0x3C b _08065822 .pool _080657F8: movs r0, 0x64 muls r0, r5 ldr r1, =gEnemyParty adds r0, r1 movs r1, 0x3D b _08065822 .pool _08065808: movs r0, 0x64 muls r0, r5 ldr r1, =gEnemyParty adds r0, r1 movs r1, 0x3E b _08065822 .pool _08065818: movs r0, 0x64 muls r0, r5 ldr r1, =gEnemyParty adds r0, r1 movs r1, 0x3F _08065822: bl GetMonData lsls r0, 16 lsrs r0, 16 strb r0, [r7] lsrs r0, 8 strb r0, [r7, 0x1] movs r6, 0x2 b _080658EA .pool _08065838: movs r0, 0x64 muls r0, r5 ldr r1, =gEnemyParty adds r0, r1 movs r1, 0x16 b _080658E2 .pool _08065848: movs r0, 0x64 muls r0, r5 ldr r1, =gEnemyParty adds r0, r1 movs r1, 0x17 b _080658E2 .pool _08065858: movs r0, 0x64 muls r0, r5 ldr r1, =gEnemyParty adds r0, r1 movs r1, 0x18 b _080658E2 .pool _08065868: movs r0, 0x64 muls r0, r5 ldr r1, =gEnemyParty adds r0, r1 movs r1, 0x21 b _080658E2 .pool _08065878: movs r0, 0x64 muls r0, r5 ldr r1, =gEnemyParty adds r0, r1 movs r1, 0x2F b _080658E2 .pool _08065888: movs r0, 0x64 muls r0, r5 ldr r1, =gEnemyParty adds r0, r1 movs r1, 0x30 b _080658E2 .pool _08065898: movs r0, 0x64 muls r0, r5 ldr r1, =gEnemyParty adds r0, r1 movs r1, 0x32 b _080658E2 .pool _080658A8: movs r0, 0x64 muls r0, r5 ldr r1, =gEnemyParty adds r0, r1 movs r1, 0x33 b _080658E2 .pool _080658B8: movs r0, 0x64 muls r0, r5 ldr r1, =gEnemyParty adds r0, r1 movs r1, 0x34 b _080658E2 .pool _080658C8: movs r0, 0x64 muls r0, r5 ldr r1, =gEnemyParty adds r0, r1 movs r1, 0x35 b _080658E2 .pool _080658D8: movs r0, 0x64 muls r0, r5 ldr r1, =gEnemyParty adds r0, r1 movs r1, 0x36 _080658E2: bl GetMonData strb r0, [r7] movs r6, 0x1 _080658EA: 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 .pool thumb_func_end dp01_getattr_by_ch1_for_opponent_pokemon thumb_func_start sub_8065900 sub_8065900: @ 8065900 push {lr} bl sub_8065068 pop {r0} bx r0 thumb_func_end sub_8065900 thumb_func_start sub_806590C sub_806590C: @ 806590C push {r4,r5,lr} ldr r1, =gUnknown_02023064 ldr r0, =gUnknown_02024064 ldrb r2, [r0] lsls r0, r2, 9 adds r1, 0x2 adds r1, r0, r1 ldrb r0, [r1] cmp r0, 0 bne _0806593C ldr r0, =gUnknown_0202406E lsls r1, r2, 1 adds r1, r0 ldrb r0, [r1] bl sub_8065964 b _0806595A .pool _0806593C: ldrb r4, [r1] movs r5, 0 _08065940: movs r0, 0x1 ands r0, r4 cmp r0, 0 beq _0806594E adds r0, r5, 0 bl sub_8065964 _0806594E: lsrs r4, 1 adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0x5 bls _08065940 _0806595A: bl sub_8065068 pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_806590C thumb_func_start sub_8065964 sub_8065964: @ 8065964 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, =gUnknown_02024064 ldrb r0, [r3] lsls r0, 9 ldr r2, =gUnknown_02023067 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 _08065992 bl _08066270 _08065992: lsls r0, 2 ldr r1, =_080659A8 adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _080659A8: .4byte _08065A98 .4byte _08065C30 .4byte _08065C4C .4byte _08065C68 .4byte _08065CBC .4byte _08065CBC .4byte _08065CBC .4byte _08065CBC .4byte _08065CDC .4byte _08065D44 .4byte _08065D44 .4byte _08065D44 .4byte _08065D44 .4byte _08066270 .4byte _08066270 .4byte _08066270 .4byte _08066270 .4byte _08065D6C .4byte _08065D88 .4byte _08065DA4 .4byte _08065DC0 .4byte _08065DDC .4byte _08065DF8 .4byte _08065E14 .4byte _08065E30 .4byte _08065E4C .4byte _08065E68 .4byte _08065E84 .4byte _08065EA0 .4byte _08065EBC .4byte _08065ED8 .4byte _08065EF4 .4byte _08065F68 .4byte _08065F84 .4byte _08065FA0 .4byte _08065FBC .4byte _08065FD8 .4byte _08065FF4 .4byte _08066010 .4byte _0806602C .4byte _08066048 .4byte _08066064 .4byte _08066080 .4byte _0806609C .4byte _080660B8 .4byte _080660D4 .4byte _080660F0 .4byte _0806610C .4byte _08066128 .4byte _08066144 .4byte _08066160 .4byte _0806617C .4byte _08066198 .4byte _080661B4 .4byte _080661D0 .4byte _080661EC .4byte _08066208 .4byte _08066224 .4byte _08066240 .4byte _0806625C _08065A98: movs r0, 0x64 adds r4, r5, 0 muls r4, r0 ldr r0, =gEnemyParty 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 _08065AFE: 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 _08065AFE movs r0, 0x64 adds r4, r5, 0 muls r4, r0 ldr r0, =gEnemyParty 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 _08066270 .pool _08065C30: movs r0, 0x64 muls r0, r5 ldr r1, =gEnemyParty adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0xB bl pokemon_setattr b _08066270 .pool _08065C4C: movs r0, 0x64 muls r0, r5 ldr r1, =gEnemyParty adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0xC bl pokemon_setattr b _08066270 .pool _08065C68: 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, =gEnemyParty adds r7, r1, r0 adds r6, r4, 0 adds r6, 0x8 _08065C80: 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 _08065C80 movs r0, 0x64 muls r0, r5 ldr r1, =gEnemyParty adds r0, r1 movs r1, 0x15 mov r2, r9 bl pokemon_setattr b _08066270 .pool _08065CBC: movs r0, 0x64 muls r0, r5 ldr r1, =gEnemyParty adds r0, r1 ldr r3, =gUnknown_02023064 ldrb r2, [r6] lsls r2, 9 adds r1, r3, 0x1 adds r1, r2, r1 ldrb r1, [r1] adds r1, 0x9 b _08065D5A .pool _08065CDC: movs r0, 0x64 adds r4, r5, 0 muls r4, r0 ldr r0, =gEnemyParty 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 _08066270 .pool _08065D44: movs r0, 0x64 muls r0, r5 ldr r1, =gEnemyParty adds r0, r1 ldr r3, =gUnknown_02023064 ldrb r2, [r6] lsls r2, 9 adds r1, r3, 0x1 adds r1, r2, r1 ldrb r1, [r1] adds r1, 0x8 _08065D5A: adds r3, 0x3 adds r2, r3 bl pokemon_setattr b _08066270 .pool _08065D6C: movs r0, 0x64 muls r0, r5 ldr r1, =gEnemyParty adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0x1 bl pokemon_setattr b _08066270 .pool _08065D88: movs r0, 0x64 muls r0, r5 ldr r1, =gEnemyParty adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0x19 bl pokemon_setattr b _08066270 .pool _08065DA4: movs r0, 0x64 muls r0, r5 ldr r1, =gEnemyParty adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0x1A bl pokemon_setattr b _08066270 .pool _08065DC0: movs r0, 0x64 muls r0, r5 ldr r1, =gEnemyParty adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0x1B bl pokemon_setattr b _08066270 .pool _08065DDC: movs r0, 0x64 muls r0, r5 ldr r1, =gEnemyParty adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0x1C bl pokemon_setattr b _08066270 .pool _08065DF8: movs r0, 0x64 muls r0, r5 ldr r1, =gEnemyParty adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0x1D bl pokemon_setattr b _08066270 .pool _08065E14: movs r0, 0x64 muls r0, r5 ldr r1, =gEnemyParty adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0x1E bl pokemon_setattr b _08066270 .pool _08065E30: movs r0, 0x64 muls r0, r5 ldr r1, =gEnemyParty adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0x1F bl pokemon_setattr b _08066270 .pool _08065E4C: movs r0, 0x64 muls r0, r5 ldr r1, =gEnemyParty adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0x20 bl pokemon_setattr b _08066270 .pool _08065E68: movs r0, 0x64 muls r0, r5 ldr r1, =gEnemyParty adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0x22 bl pokemon_setattr b _08066270 .pool _08065E84: movs r0, 0x64 muls r0, r5 ldr r1, =gEnemyParty adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0x23 bl pokemon_setattr b _08066270 .pool _08065EA0: movs r0, 0x64 muls r0, r5 ldr r1, =gEnemyParty adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0x24 bl pokemon_setattr b _08066270 .pool _08065EBC: movs r0, 0x64 muls r0, r5 ldr r1, =gEnemyParty adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0x25 bl pokemon_setattr b _08066270 .pool _08065ED8: movs r0, 0x64 muls r0, r5 ldr r1, =gEnemyParty adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0x26 bl pokemon_setattr b _08066270 .pool _08065EF4: movs r0, 0x64 adds r4, r5, 0 muls r4, r0 ldr r0, =gEnemyParty 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 _08066002 .pool _08065F68: movs r0, 0x64 muls r0, r5 ldr r1, =gEnemyParty adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0x27 bl pokemon_setattr b _08066270 .pool _08065F84: movs r0, 0x64 muls r0, r5 ldr r1, =gEnemyParty adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0x28 bl pokemon_setattr b _08066270 .pool _08065FA0: movs r0, 0x64 muls r0, r5 ldr r1, =gEnemyParty adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0x29 bl pokemon_setattr b _08066270 .pool _08065FBC: movs r0, 0x64 muls r0, r5 ldr r1, =gEnemyParty adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0x2A bl pokemon_setattr b _08066270 .pool _08065FD8: movs r0, 0x64 muls r0, r5 ldr r1, =gEnemyParty adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0x2B bl pokemon_setattr b _08066270 .pool _08065FF4: movs r0, 0x64 muls r0, r5 ldr r1, =gEnemyParty adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 _08066002: movs r1, 0x2C bl pokemon_setattr b _08066270 .pool _08066010: movs r0, 0x64 muls r0, r5 ldr r1, =gEnemyParty adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0 bl pokemon_setattr b _08066270 .pool _0806602C: movs r0, 0x64 muls r0, r5 ldr r1, =gEnemyParty adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0x9 bl pokemon_setattr b _08066270 .pool _08066048: movs r0, 0x64 muls r0, r5 ldr r1, =gEnemyParty adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0x37 bl pokemon_setattr b _08066270 .pool _08066064: movs r0, 0x64 muls r0, r5 ldr r1, =gEnemyParty adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0x38 bl pokemon_setattr b _08066270 .pool _08066080: movs r0, 0x64 muls r0, r5 ldr r1, =gEnemyParty adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0x39 bl pokemon_setattr b _08066270 .pool _0806609C: movs r0, 0x64 muls r0, r5 ldr r1, =gEnemyParty adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0x3A bl pokemon_setattr b _08066270 .pool _080660B8: movs r0, 0x64 muls r0, r5 ldr r1, =gEnemyParty adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0x3B bl pokemon_setattr b _08066270 .pool _080660D4: movs r0, 0x64 muls r0, r5 ldr r1, =gEnemyParty adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0x3C bl pokemon_setattr b _08066270 .pool _080660F0: movs r0, 0x64 muls r0, r5 ldr r1, =gEnemyParty adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0x3D bl pokemon_setattr b _08066270 .pool _0806610C: movs r0, 0x64 muls r0, r5 ldr r1, =gEnemyParty adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0x3E bl pokemon_setattr b _08066270 .pool _08066128: movs r0, 0x64 muls r0, r5 ldr r1, =gEnemyParty adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0x3F bl pokemon_setattr b _08066270 .pool _08066144: movs r0, 0x64 muls r0, r5 ldr r1, =gEnemyParty adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0x16 bl pokemon_setattr b _08066270 .pool _08066160: movs r0, 0x64 muls r0, r5 ldr r1, =gEnemyParty adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0x17 bl pokemon_setattr b _08066270 .pool _0806617C: movs r0, 0x64 muls r0, r5 ldr r1, =gEnemyParty adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0x18 bl pokemon_setattr b _08066270 .pool _08066198: movs r0, 0x64 muls r0, r5 ldr r1, =gEnemyParty adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0x21 bl pokemon_setattr b _08066270 .pool _080661B4: movs r0, 0x64 muls r0, r5 ldr r1, =gEnemyParty adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0x2F bl pokemon_setattr b _08066270 .pool _080661D0: movs r0, 0x64 muls r0, r5 ldr r1, =gEnemyParty adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0x30 bl pokemon_setattr b _08066270 .pool _080661EC: movs r0, 0x64 muls r0, r5 ldr r1, =gEnemyParty adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0x32 bl pokemon_setattr b _08066270 .pool _08066208: movs r0, 0x64 muls r0, r5 ldr r1, =gEnemyParty adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0x33 bl pokemon_setattr b _08066270 .pool _08066224: movs r0, 0x64 muls r0, r5 ldr r1, =gEnemyParty adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0x34 bl pokemon_setattr b _08066270 .pool _08066240: movs r0, 0x64 muls r0, r5 ldr r1, =gEnemyParty adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0x35 bl pokemon_setattr b _08066270 .pool _0806625C: movs r0, 0x64 muls r0, r5 ldr r1, =gEnemyParty adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0x36 bl pokemon_setattr _08066270: add sp, 0x38 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_8065964 thumb_func_start sub_8066284 sub_8066284: @ 8066284 push {r4-r7,lr} ldr r1, =gUnknown_0202406E ldr r7, =gUnknown_02024064 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, =gUnknown_02023064 lsls r2, 9 adds r0, r4, 0x1 adds r0, r2, r0 ldrb r0, [r0] ldr r1, =gEnemyParty adds r0, r1 adds r5, r3, r0 movs r3, 0 adds r0, r4, 0x2 adds r2, r0 ldrb r2, [r2] cmp r3, r2 bcs _080662DC adds r6, r4, 0 adds r2, r7, 0 adds r4, r0, 0 _080662BA: 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 _080662BA _080662DC: bl sub_8065068 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_8066284 thumb_func_start sub_80662F8 sub_80662F8: @ 80662F8 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} ldr r7, =gUnknown_0202406E ldr r6, =gUnknown_02024064 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, =gEnemyParty mov r9, r1 add r0, r9 movs r1, 0xB bl GetMonData 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_805DC0C ldrb r0, [r6] bl battle_get_per_side_status adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 bl sub_806A068 ldr r0, =gUnknown_0202499C mov r8, r0 ldrb r0, [r6] movs r1, 0x2 bl sub_80A5C6C adds r5, r0, 0 lsls r5, 24 lsrs r5, 24 ldrb r0, [r6] bl sub_80A6138 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldrb r0, [r6] bl sub_80A82E4 adds r3, r0, 0 lsls r3, 24 lsrs r3, 24 mov r0, r8 adds r1, r5, 0 adds r2, r4, 0 bl AddObjectToFront ldr r4, =gUnknown_020241E4 ldrb r1, [r6] adds r1, r4 strb r0, [r1] ldr r5, =gUnknown_02020630 ldrb r0, [r6] adds r0, r4 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 ldr r1, =0x0000ff10 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, =gUnknown_020244E4 adds r2, r1 ldrb r1, [r2] bl StartObjectImageAnim 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 GetMonData adds r1, r0, 0 lsls r1, 16 lsrs r1, 16 adds r0, r4, 0 bl sub_805EE54 ldr r1, =gUnknown_03005D60 ldrb r0, [r6] lsls r0, 2 adds r0, r1 ldr r1, =sub_8064B04 str r1, [r0] pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_80662F8 thumb_func_start sub_8066448 sub_8066448: @ 8066448 push {r4,lr} ldr r1, =gUnknown_0202406E ldr r4, =gUnknown_02024064 ldrb r0, [r4] lsls r2, r0, 1 adds r2, r1 ldr r3, =gUnknown_02023064 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_8066494 ldr r1, =gUnknown_03005D60 ldrb r0, [r4] lsls r0, 2 adds r0, r1 ldr r1, =sub_8064F40 str r1, [r0] pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_8066448 thumb_func_start sub_8066494 sub_8066494: @ 8066494 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_805EF84 ldr r0, =gUnknown_0202406E lsls r4, r6, 1 adds r4, r0 ldr r0, =gUnknown_02023064 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, =gEnemyParty adds r0, r5 movs r1, 0xB bl GetMonData mov r8, r0 lsls r0, 16 lsrs r0, 16 mov r8, r0 ldr r0, =sub_805D714 bl CreateInvisibleSpriteWithCallback ldr r1, =gUnknown_03005D7C 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_805DC0C adds r0, r6, 0 bl battle_get_per_side_status adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 mov r0, r8 bl sub_806A068 ldr r0, =gUnknown_0202499C mov r9, r0 adds r0, r6, 0 movs r1, 0x2 bl sub_80A5C6C adds r5, r0, 0 lsls r5, 24 lsrs r5, 24 adds r0, r6, 0 bl sub_80A6138 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 adds r0, r6, 0 bl sub_80A82E4 adds r3, r0, 0 lsls r3, 24 lsrs r3, 24 mov r0, r9 adds r1, r5, 0 adds r2, r4, 0 bl AddObjectToFront ldr r4, =gUnknown_020241E4 adds r4, r6, r4 strb r0, [r4] ldr r5, =gUnknown_02020630 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] mov r0, r10 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 strh r6, [r0, 0x32] 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, =gUnknown_020244E4 adds r6, r1 ldrb r1, [r6] bl StartObjectImageAnim 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, =DummyObjectCallback str r1, [r0] movs r0, 0 movs r1, 0xFE bl sub_80753E8 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 .pool thumb_func_end sub_8066494 thumb_func_start sub_8066624 sub_8066624: @ 8066624 push {r4-r6,lr} ldr r1, =gUnknown_02023064 ldr r6, =gUnknown_02024064 ldrb r2, [r6] lsls r0, r2, 9 adds r1, 0x1 adds r0, r1 ldrb r3, [r0] cmp r3, 0 bne _0806666C ldr r0, =gUnknown_020244D0 ldr r0, [r0] ldr r1, [r0, 0x4] lsls r0, r2, 1 adds r0, r2 lsls r0, 2 adds r0, r1 strb r3, [r0, 0x4] ldr r1, =gUnknown_03005D60 ldrb r0, [r6] lsls r0, 2 adds r0, r1 ldr r1, =sub_80666BC str r1, [r0] b _080666A8 .pool _0806666C: ldr r5, =gUnknown_020241E4 adds r0, r2, r5 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r4, =gUnknown_02020630 adds r0, r4 bl obj_free_rotscale_entry ldrb r0, [r6] adds r0, r5 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 bl RemoveObjectAndFreeTiles ldrb r0, [r6] bl sub_805EEE0 ldr r1, =gUnknown_03005D70 ldrb r0, [r6] adds r0, r1 ldrb r0, [r0] bl sub_8072984 bl sub_8065068 _080666A8: pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_8066624 thumb_func_start sub_80666BC sub_80666BC: @ 80666BC push {r4-r6,lr} ldr r6, =gUnknown_020244D0 ldr r4, [r6] ldr r5, =gUnknown_02024064 ldrb r2, [r5] ldr r1, [r4, 0x4] lsls r0, r2, 1 adds r0, r2 lsls r0, 2 adds r3, r0, r1 ldrb r0, [r3, 0x4] cmp r0, 0 beq _080666E4 cmp r0, 0x1 beq _08066712 b _0806673A .pool _080666E4: ldr r1, [r4] lsls r0, r2, 2 adds r0, r1 ldrb r1, [r0] movs r0, 0x4 ands r0, r1 cmp r0, 0 beq _080666FE adds r0, r2, 0 adds r1, r2, 0 movs r3, 0x5 bl move_anim_start_t4 _080666FE: ldr r0, [r6] ldrb r1, [r5] ldr r2, [r0, 0x4] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r2 movs r1, 0x1 strb r1, [r0, 0x4] b _0806673A _08066712: ldrb r1, [r3] movs r0, 0x40 ands r0, r1 lsls r0, 24 lsrs r0, 24 cmp r0, 0 bne _0806673A 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, =gUnknown_03005D60 ldrb r0, [r5] lsls r0, 2 adds r0, r1 ldr r1, =sub_8064C58 str r1, [r0] _0806673A: pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_80666BC thumb_func_start sub_8066748 sub_8066748: @ 8066748 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} ldr r4, =gBattleTypeFlags ldr r0, [r4] movs r1, 0x40 ands r0, r1 cmp r0, 0 beq _08066840 ldr r5, =gUnknown_02024064 ldrb r0, [r5] bl battle_get_per_side_status movs r1, 0x2 ands r1, r0 movs r7, 0xC8 cmp r1, 0 beq _08066770 movs r7, 0x98 _08066770: ldr r0, [r4] movs r1, 0x80 lsls r1, 1 ands r0, r1 cmp r0, 0 beq _080667A8 ldrb r0, [r5] cmp r0, 0x1 bne _08066794 ldr r0, =gUnknown_02038BCA b _08066796 .pool _08066794: ldr r0, =gUnknown_02038BCC _08066796: ldrh r0, [r0] bl sub_8162AA0 lsls r0, 24 lsrs r0, 24 b _0806694C .pool _080667A8: ldrb r0, [r5] bl sub_806D864 ldr r6, =gUnknown_020229E8 lsls r1, r0, 3 subs r1, r0 lsls r1, 2 adds r1, r6 movs r4, 0xFF ldrb r0, [r1] cmp r0, 0x4 beq _080667D8 ldrb r0, [r5] bl sub_806D864 lsls r1, r0, 3 subs r1, r0 lsls r1, 2 adds r1, r6 ldrh r1, [r1] adds r0, r4, 0 ands r0, r1 cmp r0, 0x5 bne _080667F4 _080667D8: ldrb r0, [r5] bl sub_806D864 lsls r1, r0, 3 subs r1, r0 lsls r1, 2 adds r1, r6 ldrb r0, [r1, 0x13] cmp r0, 0 bne _080668AA b _080668BC .pool _080667F4: ldrb r0, [r5] bl sub_806D864 lsls r1, r0, 3 subs r1, r0 lsls r1, 2 adds r1, r6 ldrh r1, [r1] adds r0, r4, 0 ands r0, r1 cmp r0, 0x2 beq _08066822 ldrb r0, [r5] bl sub_806D864 lsls r1, r0, 3 subs r1, r0 lsls r1, 2 adds r1, r6 ldrh r0, [r1] ands r4, r0 cmp r4, 0x1 bne _08066838 _08066822: ldrb r0, [r5] bl sub_806D864 lsls r1, r0, 3 subs r1, r0 lsls r1, 2 adds r1, r6 ldrb r0, [r1, 0x13] cmp r0, 0 bne _08066916 b _08066924 _08066838: ldrb r0, [r5] bl sub_806D864 b _0806693A _08066840: movs r7, 0xB0 ldr r0, =gUnknown_02038BCA ldrh r1, [r0] movs r0, 0xC0 lsls r0, 4 cmp r1, r0 bne _08066858 bl sub_8068B48 b _08066948 .pool _08066858: bl link_get_multiplayer_id ldr r6, =gUnknown_020229E8 movs r5, 0x1 eors r0, r5 lsls r0, 24 lsrs r0, 24 lsls r1, r0, 3 subs r1, r0 lsls r1, 2 adds r1, r6 movs r4, 0xFF ldrb r0, [r1] cmp r0, 0x4 beq _08066892 bl link_get_multiplayer_id eors r0, r5 lsls r0, 24 lsrs r0, 24 lsls r1, r0, 3 subs r1, r0 lsls r1, 2 adds r1, r6 ldrh r1, [r1] adds r0, r4, 0 ands r0, r1 cmp r0, 0x5 bne _080668C8 _08066892: bl link_get_multiplayer_id eors r0, r5 lsls r0, 24 lsrs r0, 24 lsls r1, r0, 3 subs r1, r0 lsls r1, 2 adds r1, r6 ldrb r0, [r1, 0x13] cmp r0, 0 beq _080668BC _080668AA: ldr r0, =gTrainerPicIndices adds r0, 0x4F ldrb r0, [r0] b _0806694C .pool _080668BC: ldr r0, =gTrainerPicIndices adds r0, 0x4E ldrb r0, [r0] b _0806694C .pool _080668C8: bl link_get_multiplayer_id eors r0, r5 lsls r0, 24 lsrs r0, 24 lsls r1, r0, 3 subs r1, r0 lsls r1, 2 adds r1, r6 ldrh r1, [r1] adds r0, r4, 0 ands r0, r1 cmp r0, 0x2 beq _080668FE bl link_get_multiplayer_id eors r0, r5 lsls r0, 24 lsrs r0, 24 lsls r1, r0, 3 subs r1, r0 lsls r1, 2 adds r1, r6 ldrh r0, [r1] ands r4, r0 cmp r4, 0x1 bne _08066930 _080668FE: bl link_get_multiplayer_id eors r0, r5 lsls r0, 24 lsrs r0, 24 lsls r1, r0, 3 subs r1, r0 lsls r1, 2 adds r1, r6 ldrb r0, [r1, 0x13] cmp r0, 0 beq _08066924 _08066916: ldr r0, =gTrainerPicIndices adds r0, 0x51 ldrb r0, [r0] b _0806694C .pool _08066924: ldr r0, =gTrainerPicIndices adds r0, 0x50 ldrb r0, [r0] b _0806694C .pool _08066930: bl link_get_multiplayer_id eors r0, r5 lsls r0, 24 lsrs r0, 24 _0806693A: lsls r1, r0, 3 subs r1, r0 lsls r1, 2 adds r1, r6 ldrb r0, [r1, 0x13] bl sub_806F000 _08066948: lsls r0, 16 lsrs r0, 16 _0806694C: mov r8, r0 ldr r5, =gUnknown_02024064 ldrb r1, [r5] bl sub_805DF38 ldrb r0, [r5] bl battle_get_per_side_status adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 mov r0, r8 bl template_build_for_pokemon_or_trainer ldr r6, =gUnknown_0202499C mov r9, r7 ldr r1, =gUnknown_083054E0 mov r2, r8 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 ldrb r0, [r5] bl sub_80A82E4 adds r3, r0, 0 lsls r3, 24 lsrs r3, 24 adds r0, r6, 0 mov r1, r9 adds r2, r4, 0 bl AddObjectToFront ldr r6, =gUnknown_020241E4 ldrb r1, [r5] adds r1, r6 strb r0, [r1] ldr r4, =gUnknown_02020630 ldrb r0, [r5] adds r0, r6 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 ldr r1, =0x0000ff10 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] ldr r1, =gTrainerFrontPicPaletteTable mov r2, r8 lsls r0, r2, 3 adds r0, r1 ldrh r0, [r0, 0x4] bl IndexOfObjectPaletteTag ldrb r1, [r5] adds r1, r6 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] ldrb r0, [r5] adds r0, r6 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 mov r1, r8 strh r1, [r0, 0x6] 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, =sub_805D7AC str r1, [r0] ldr r1, =gUnknown_03005D60 ldrb r0, [r5] lsls r0, 2 adds r0, r1 ldr r1, =sub_8064400 str r1, [r0] pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_8066748 thumb_func_start sub_8066A58 sub_8066A58: @ 8066A58 push {r4-r6,lr} mov r6, r8 push {r6} ldr r0, =gUnknown_02024064 ldrb r0, [r0] cmp r0, 0x1 bne _08066A74 ldr r0, =gUnknown_02038BCA b _08066A76 .pool _08066A74: ldr r0, =gUnknown_02038BCC _08066A76: ldrh r0, [r0] bl sub_8162AA0 lsls r0, 24 lsrs r0, 24 mov r8, r0 ldr r6, =gUnknown_02024064 ldrb r1, [r6] bl sub_805DF38 ldrb r0, [r6] bl battle_get_per_side_status adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 mov r0, r8 bl template_build_for_pokemon_or_trainer ldr r0, =gUnknown_0202499C ldr r2, =gUnknown_083054E0 mov r3, r8 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 AddObjectToFront ldr r5, =gUnknown_020241E4 ldrb r1, [r6] adds r1, r5 strb r0, [r1] ldr r4, =gUnknown_02020630 ldrb r0, [r6] 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, [r6] 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, [r6] adds r0, r5 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 ldr r1, =0x0000fffe strh r1, [r0, 0x2E] ldr r1, =gTrainerFrontPicPaletteTable mov r2, r8 lsls r0, r2, 3 adds r0, r1 ldrh r0, [r0, 0x4] bl IndexOfObjectPaletteTag ldrb r1, [r6] 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] ldrb r0, [r6] adds r0, r5 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 mov r3, r8 strh r3, [r0, 0x6] 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, =sub_805D7AC str r1, [r0] ldr r1, =gUnknown_03005D60 ldrb r0, [r6] lsls r0, 2 adds r0, r1 ldr r1, =sub_8064438 str r1, [r0] bl sub_8065068 pop {r3} mov r8, r3 pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_8066A58 thumb_func_start sub_8066B94 sub_8066B94: @ 8066B94 push {r4-r6,lr} ldr r6, =gUnknown_020241E4 ldr r4, =gUnknown_02024064 ldrb r0, [r4] adds r0, r6 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r5, =gUnknown_02020630 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, =sub_80A6EEC 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, =DummyObjectCallback bl oamt_set_x3A_32 ldr r1, =gUnknown_03005D60 ldrb r0, [r4] lsls r0, 2 adds r0, r1 ldr r1, =sub_8064470 str r1, [r0] pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_8066B94 thumb_func_start sub_8066C40 sub_8066C40: @ 8066C40 push {r4-r6,lr} ldr r6, =gUnknown_020244D0 ldr r4, [r6] ldr r5, =gUnknown_02024064 ldrb r2, [r5] ldr r0, [r4, 0x4] lsls r1, r2, 1 adds r1, r2 lsls r1, 2 adds r3, r1, r0 ldrb r0, [r3, 0x4] cmp r0, 0 bne _08066C94 ldr r1, [r4] lsls r0, r2, 2 adds r0, r1 ldrb r1, [r0] movs r0, 0x4 ands r0, r1 cmp r0, 0 beq _08066C74 adds r0, r2, 0 adds r1, r2, 0 movs r3, 0x5 bl move_anim_start_t4 _08066C74: ldr r0, [r6] ldrb r1, [r5] ldr r2, [r0, 0x4] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r1, [r0, 0x4] adds r1, 0x1 strb r1, [r0, 0x4] b _08066CD0 .pool _08066C94: ldrb r1, [r3] movs r0, 0x40 ands r0, r1 lsls r0, 24 lsrs r0, 24 cmp r0, 0 bne _08066CD0 strb r0, [r3, 0x4] movs r0, 0x10 movs r1, 0x3F bl audio_play_and_stuff ldr r2, =gUnknown_02020630 ldr r1, =gUnknown_020241E4 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, =sub_8039934 str r1, [r0] ldr r1, =gUnknown_03005D60 ldrb r0, [r5] lsls r0, 2 adds r0, r1 ldr r1, =sub_8064C14 str r1, [r0] _08066CD0: pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_8066C40 thumb_func_start sub_8066CEC sub_8066CEC: @ 8066CEC push {lr} bl sub_8065068 pop {r0} bx r0 thumb_func_end sub_8066CEC thumb_func_start sub_8066CF8 sub_8066CF8: @ 8066CF8 push {lr} bl sub_8065068 pop {r0} bx r0 thumb_func_end sub_8066CF8 thumb_func_start sub_8066D04 sub_8066D04: @ 8066D04 push {lr} bl sub_8065068 pop {r0} bx r0 thumb_func_end sub_8066D04 thumb_func_start sub_8066D10 sub_8066D10: @ 8066D10 push {lr} bl sub_8065068 pop {r0} bx r0 thumb_func_end sub_8066D10 thumb_func_start sub_8066D1C sub_8066D1C: @ 8066D1C push {r4-r7,lr} mov r7, r8 push {r7} ldr r5, =gUnknown_02024064 ldrb r0, [r5] bl mplay_80342A4 lsls r0, 24 cmp r0, 0 beq _08066D32 b _08066E58 _08066D32: ldr r0, =gUnknown_02023064 mov r12, r0 ldrb r1, [r5] lsls r1, 9 adds r0, 0x1 adds r0, r1, r0 ldrb r6, [r0] mov r0, r12 adds r0, 0x2 adds r0, r1, r0 ldrb r0, [r0] lsls r0, 8 orrs r6, r0 ldr r0, =gUnknown_02038432 mov r8, r0 mov r0, r12 adds r0, 0x3 adds r1, r0 ldrb r0, [r1] mov r1, r8 strb r0, [r1] ldr r3, =gUnknown_02038408 ldrb r1, [r5] lsls r1, 9 mov r0, r12 adds r0, 0x4 adds r0, r1, r0 ldrb r2, [r0] mov r0, r12 adds r0, 0x5 adds r1, r0 ldrb r0, [r1] lsls r0, 8 orrs r2, r0 strh r2, [r3] ldr r3, =gUnknown_02038404 ldrb r1, [r5] lsls r1, 9 mov r0, r12 adds r0, 0x6 adds r0, r1, r0 ldrb r2, [r0] mov r0, r12 adds r0, 0x7 adds r0, r1, r0 ldrb r0, [r0] lsls r0, 8 orrs r2, r0 mov r0, r12 adds r0, 0x8 adds r0, r1, r0 ldrb r0, [r0] lsls r0, 16 orrs r2, r0 mov r0, r12 adds r0, 0x9 adds r1, r0 ldrb r0, [r1] lsls r0, 24 orrs r2, r0 str r2, [r3] ldr r2, =gUnknown_0203841A ldrb r0, [r5] lsls r0, 9 mov r1, r12 adds r1, 0xA adds r0, r1 ldrb r0, [r0] strb r0, [r2] ldr r4, =gUnknown_0203841C ldrb r1, [r5] lsls r1, 9 mov r0, r12 adds r0, 0xC adds r0, r1, r0 ldrb r2, [r0] mov r0, r12 adds r0, 0xD adds r1, r0 ldrb r0, [r1] lsls r0, 8 orrs r2, r0 strh r2, [r4] ldr r7, =gUnknown_02038400 ldrb r1, [r5] lsls r1, 9 mov r0, r12 adds r0, 0x10 adds r1, r0 str r1, [r7] ldr r2, =gUnknown_020244BC ldrb r0, [r5] lsls r0, 2 adds r0, r2 ldr r1, [r1] str r1, [r0] mov r0, r8 ldrb r1, [r0] adds r0, r6, 0 bl sub_805DB8C lsls r0, 24 lsrs r3, r0, 24 cmp r3, 0 beq _08066E30 bl sub_8065068 b _08066E58 .pool _08066E30: ldr r0, =gUnknown_020244D0 ldr r0, [r0] ldrb r1, [r5] ldr r2, [r0, 0x4] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r2 strb r3, [r0, 0x4] ldr r1, =gUnknown_03005D60 ldrb r0, [r5] lsls r0, 2 adds r0, r1 ldr r1, =sub_8066E70 str r1, [r0] ldrh r1, [r4] ldr r2, [r7] adds r0, r6, 0 bl sub_817E0FC _08066E58: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_8066D1C thumb_func_start sub_8066E70 sub_8066E70: @ 8066E70 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} ldr r2, =gUnknown_02023064 ldr r6, =gUnknown_02024064 ldrb r3, [r6] lsls r1, r3, 9 adds r0, r2, 0x1 mov r10, r0 adds r0, r1, r0 ldrb r4, [r0] adds r5, r2, 0x2 mov r9, r5 adds r0, r1, r5 ldrb r0, [r0] lsls r0, 8 orrs r4, r0 adds r2, 0xB adds r1, r2 ldrb r1, [r1] mov r8, r1 ldr r7, =gUnknown_020244D0 ldr r5, [r7] ldr r1, [r5, 0x4] lsls r0, r3, 1 adds r0, r3 lsls r0, 2 adds r0, r1 ldrb r2, [r0, 0x4] cmp r2, 0x1 beq _08066F08 cmp r2, 0x1 bgt _08066EC8 cmp r2, 0 beq _08066ED2 b _08066FE4 .pool _08066EC8: cmp r2, 0x2 beq _08066F32 cmp r2, 0x3 beq _08066FA8 b _08066FE4 _08066ED2: ldr r1, [r5] lsls r0, r3, 2 adds r1, r0, r1 ldrb r2, [r1] movs r0, 0xC ands r0, r2 cmp r0, 0x4 bne _08066EF4 movs r0, 0x8 orrs r0, r2 strb r0, [r1] ldrb r2, [r6] adds r0, r2, 0 adds r1, r2, 0 movs r3, 0x5 bl move_anim_start_t4 _08066EF4: ldr r0, [r7] ldrb r1, [r6] ldr r2, [r0, 0x4] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r2 movs r1, 0x1 strb r1, [r0, 0x4] b _08066FE4 _08066F08: ldrb r1, [r0] movs r0, 0x40 ands r0, r1 cmp r0, 0 bne _08066FE4 movs r0, 0 bl sub_805EB9C adds r0, r4, 0 bl move_anim_start_t1 ldr r0, [r7] ldrb r1, [r6] ldr r2, [r0, 0x4] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r2 movs r1, 0x2 strb r1, [r0, 0x4] b _08066FE4 _08066F32: ldr r0, =gUnknown_020383F8 ldr r0, [r0] bl _call_via_r0 ldr r0, =gUnknown_020383FD ldrb r0, [r0] cmp r0, 0 bne _08066FE4 movs r0, 0x1 bl sub_805EB9C ldr r0, [r7] ldrb r2, [r6] ldr r1, [r0] lsls r0, r2, 2 adds r0, r1 ldrb r1, [r0] movs r0, 0x4 ands r0, r1 cmp r0, 0 beq _08066F80 mov r0, r8 cmp r0, 0x1 bhi _08066F80 adds r0, r2, 0 adds r1, r2, 0 movs r3, 0x6 bl move_anim_start_t4 ldr r0, [r7] ldrb r1, [r6] ldr r0, [r0] lsls r1, 2 adds r1, r0 ldrb r2, [r1] movs r0, 0x9 negs r0, r0 ands r0, r2 strb r0, [r1] _08066F80: ldr r0, =gUnknown_020244D0 ldr r2, [r0] ldr r0, =gUnknown_02024064 ldrb r1, [r0] ldr r2, [r2, 0x4] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r2 movs r1, 0x3 strb r1, [r0, 0x4] b _08066FE4 .pool _08066FA8: ldrb r1, [r0] movs r0, 0x40 ands r0, r1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0 bne _08066FE4 bl sub_805E394 ldrb r0, [r6] lsls r2, r0, 9 mov r3, r10 adds r1, r2, r3 ldrb r1, [r1] add r2, r9 ldrb r2, [r2] lsls r2, 8 orrs r1, r2 bl sub_805E94C ldr r0, [r7] ldrb r1, [r6] ldr r2, [r0, 0x4] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r2 strb r4, [r0, 0x4] bl sub_8065068 _08066FE4: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8066E70 thumb_func_start sub_8066FF4 sub_8066FF4: @ 8066FF4 push {r4,r5,lr} ldr r0, =gUnknown_02022E14 movs r1, 0 strh r1, [r0] ldr r0, =gUnknown_02022E16 strh r1, [r0] ldr r5, =gUnknown_02024064 ldrb r4, [r5] lsls r4, 9 ldr r0, =gUnknown_02023066 adds r4, r0 ldrh r0, [r4] bl battle_pick_message ldr r0, =gUnknown_02022E2C movs r1, 0 bl battle_show_message_maybe ldr r1, =gUnknown_03005D60 ldrb r0, [r5] lsls r0, 2 adds r0, r1 ldr r1, =sub_8064CCC str r1, [r0] ldrh r0, [r4] bl sub_817C95C pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_8066FF4 thumb_func_start sub_806704C sub_806704C: @ 806704C push {lr} bl sub_8065068 pop {r0} bx r0 thumb_func_end sub_806704C thumb_func_start sub_8067058 sub_8067058: @ 8067058 push {lr} bl sub_8065068 pop {r0} bx r0 thumb_func_end sub_8067058 thumb_func_start sub_8067064 sub_8067064: @ 8067064 push {lr} bl sub_8065068 pop {r0} bx r0 thumb_func_end sub_8067064 thumb_func_start sub_8067070 sub_8067070: @ 8067070 push {lr} bl sub_8065068 pop {r0} bx r0 thumb_func_end sub_8067070 thumb_func_start sub_806707C sub_806707C: @ 806707C push {lr} bl sub_8065068 pop {r0} bx r0 thumb_func_end sub_806707C thumb_func_start sub_8067088 sub_8067088: @ 8067088 push {lr} bl sub_8065068 pop {r0} bx r0 thumb_func_end sub_8067088 thumb_func_start sub_8067094 sub_8067094: @ 8067094 push {lr} bl sub_8065068 pop {r0} bx r0 thumb_func_end sub_8067094 thumb_func_start sub_80670A0 sub_80670A0: @ 80670A0 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, =gUnknown_02023064 ldr r0, =gUnknown_02024064 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, =0x00007fff cmp r7, r0 beq _08067130 ldr r6, =gUnknown_0202406E lsls r0, r4, 1 adds r0, r6 ldrh r0, [r0] movs r5, 0x64 muls r0, r5 ldr r4, =gEnemyParty adds r0, r4 movs r1, 0x3A bl GetMonData 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 GetMonData adds r3, r0, 0 mov r1, r9 ldrb r0, [r1] ldr r1, =gUnknown_03005D70 adds r1, r0, r1 ldrb r1, [r1] str r7, [sp] mov r2, r8 bl sub_807294C b _0806715A .pool _08067130: ldr r1, =gUnknown_0202406E lsls r0, r4, 1 adds r0, r1 ldrh r1, [r0] movs r0, 0x64 muls r0, r1 ldr r1, =gEnemyParty adds r0, r1 movs r1, 0x3A bl GetMonData adds r2, r0, 0 mov r1, r9 ldrb r0, [r1] ldr r1, =gUnknown_03005D70 adds r1, r0, r1 ldrb r1, [r1] str r7, [sp] movs r3, 0 bl sub_807294C _0806715A: ldr r1, =gUnknown_03005D60 ldr r0, =gUnknown_02024064 ldrb r0, [r0] lsls r0, 2 adds r0, r1 ldr r1, =sub_8064BC0 str r1, [r0] add sp, 0x4 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_80670A0 thumb_func_start sub_8067190 sub_8067190: @ 8067190 push {lr} bl sub_8065068 pop {r0} bx r0 thumb_func_end sub_8067190 thumb_func_start sub_806719C sub_806719C: @ 806719C push {r4,lr} ldr r4, =gUnknown_02024064 ldrb r0, [r4] bl mplay_80342A4 lsls r0, 24 cmp r0, 0 bne _080671F0 ldr r0, =gUnknown_03005D70 ldrb r1, [r4] adds r0, r1, r0 ldrb r0, [r0] ldr r2, =gUnknown_0202406E lsls r1, 1 adds r1, r2 ldrh r2, [r1] movs r1, 0x64 muls r1, r2 ldr r2, =gEnemyParty adds r1, r2 movs r2, 0x9 bl healthbar_draw_field_maybe ldrb r2, [r4] ldr r0, =gUnknown_020244D0 ldr r0, [r0] ldr r0, [r0, 0x4] lsls r1, r2, 1 adds r1, r2 lsls r1, 2 adds r1, r0 ldrb r2, [r1] movs r0, 0x11 negs r0, r0 ands r0, r2 strb r0, [r1] ldr r1, =gUnknown_03005D60 ldrb r0, [r4] lsls r0, 2 adds r0, r1 ldr r1, =sub_8065008 str r1, [r0] _080671F0: pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_806719C thumb_func_start sub_8067214 sub_8067214: @ 8067214 push {r4,r5,lr} ldr r5, =gUnknown_02024064 ldrb r0, [r5] bl mplay_80342A4 lsls r0, 24 cmp r0, 0 bne _08067264 ldr r4, =gUnknown_02023064 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, =gUnknown_03005D60 ldrb r0, [r5] lsls r0, 2 adds r0, r1 ldr r1, =sub_8065008 str r1, [r0] _08067264: pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_8067214 thumb_func_start sub_806727C sub_806727C: @ 806727C push {lr} bl sub_8065068 pop {r0} bx r0 thumb_func_end sub_806727C thumb_func_start sub_8067288 sub_8067288: @ 8067288 push {lr} bl sub_8065068 pop {r0} bx r0 thumb_func_end sub_8067288 thumb_func_start sub_8067294 sub_8067294: @ 8067294 push {lr} bl sub_8065068 pop {r0} bx r0 thumb_func_end sub_8067294 thumb_func_start sub_80672A0 sub_80672A0: @ 80672A0 push {lr} bl sub_8065068 pop {r0} bx r0 thumb_func_end sub_80672A0 thumb_func_start sub_80672AC sub_80672AC: @ 80672AC push {lr} bl sub_8065068 pop {r0} bx r0 thumb_func_end sub_80672AC thumb_func_start sub_80672B8 sub_80672B8: @ 80672B8 push {lr} bl sub_8065068 pop {r0} bx r0 thumb_func_end sub_80672B8 thumb_func_start sub_80672C4 sub_80672C4: @ 80672C4 push {lr} bl sub_8065068 pop {r0} bx r0 thumb_func_end sub_80672C4 thumb_func_start sub_80672D0 sub_80672D0: @ 80672D0 push {lr} bl sub_8065068 pop {r0} bx r0 thumb_func_end sub_80672D0 thumb_func_start sub_80672DC sub_80672DC: @ 80672DC push {lr} bl sub_8065068 pop {r0} bx r0 thumb_func_end sub_80672DC thumb_func_start sub_80672E8 sub_80672E8: @ 80672E8 push {lr} ldr r2, =gUnknown_02022D0C ldrb r1, [r2] movs r0, 0x80 negs r0, r0 ands r0, r1 strb r0, [r2] bl sub_8065068 pop {r0} bx r0 .pool thumb_func_end sub_80672E8 thumb_func_start sub_8067304 sub_8067304: @ 8067304 push {lr} ldr r3, =gUnknown_02022D0C ldr r1, =gUnknown_02023064 ldr r0, =gUnknown_02024064 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_8065068 pop {r0} bx r0 .pool thumb_func_end sub_8067304 thumb_func_start sub_806733C sub_806733C: @ 806733C push {lr} ldr r2, =gUnknown_02022D0C ldrb r1, [r2] movs r0, 0x7F ands r0, r1 strb r0, [r2] bl sub_8065068 pop {r0} bx r0 .pool thumb_func_end sub_806733C thumb_func_start sub_8067354 sub_8067354: @ 8067354 push {lr} ldr r3, =gUnknown_02022D0C 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_8065068 pop {r0} bx r0 .pool thumb_func_end sub_8067354 thumb_func_start sub_806737C sub_806737C: @ 806737C push {r4,lr} ldr r3, =gUnknown_02020630 ldr r2, =gUnknown_020241E4 ldr r4, =gUnknown_02024064 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 _080673B0 bl sub_8065068 b _080673DA .pool _080673B0: ldr r1, =gUnknown_020244B9 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_80769F4 ldr r1, =gUnknown_03005D60 ldrb r0, [r4] lsls r0, 2 adds r0, r1 ldr r1, =sub_8064CE4 str r1, [r0] _080673DA: pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_806737C thumb_func_start sub_80673EC sub_80673EC: @ 80673EC push {lr} bl sub_8065068 pop {r0} bx r0 thumb_func_end sub_80673EC thumb_func_start sub_80673F8 sub_80673F8: @ 80673F8 push {r4,lr} ldr r4, =gUnknown_02024064 ldrb r0, [r4] bl battle_side_get_owner lsls r0, 24 movs r3, 0x3F cmp r0, 0 bne _0806740C movs r3, 0xC0 _0806740C: ldr r2, =gUnknown_02023064 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_8065068 pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_80673F8 thumb_func_start sub_806743C sub_806743C: @ 806743C push {r4,r5,lr} ldr r4, =gUnknown_02023064 ldr r5, =gUnknown_02024064 ldrb r0, [r5] lsls r3, r0, 9 adds r0, r4, 0x3 adds r0, r3, r0 ldrb r0, [r0] cmp r0, 0 beq _08067478 bl sub_805EA60 ldrb r1, [r5] lsls r1, 9 adds r0, r4, 0x1 adds r0, r1, r0 ldrb r0, [r0] adds r2, r4, 0x2 adds r1, r2 ldrb r1, [r1] lsls r1, 8 orrs r0, r1 bl song_play_for_text b _0806748C .pool _08067478: adds r0, r4, 0x1 adds r0, r3, r0 ldrb r0, [r0] adds r1, r4, 0x2 adds r1, r3, r1 ldrb r1, [r1] lsls r1, 8 orrs r0, r1 bl fanfare_play _0806748C: bl sub_8065068 pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_806743C thumb_func_start sub_8067498 sub_8067498: @ 8067498 push {lr} ldr r1, =gUnknown_0202406E ldr r0, =gUnknown_02024064 ldrb r0, [r0] lsls r0, 1 adds r0, r1 ldrh r1, [r0] movs r0, 0x64 muls r0, r1 ldr r1, =gEnemyParty adds r0, r1 movs r1, 0xB bl GetMonData lsls r0, 16 lsrs r0, 16 movs r1, 0x19 movs r2, 0x5 bl sub_80A32E4 bl sub_8065068 pop {r0} bx r0 .pool thumb_func_end sub_8067498 thumb_func_start sub_80674D4 sub_80674D4: @ 80674D4 push {lr} ldr r1, =gUnknown_02023064 ldr r0, =gUnknown_02024064 ldrb r0, [r0] lsls r0, 9 adds r1, 0x1 adds r0, r1 ldrb r0, [r0] bl battle_intro_launch ldr r2, =gUnknown_020243FC ldrh r0, [r2] movs r1, 0x1 orrs r0, r1 strh r0, [r2] bl sub_8065068 pop {r0} bx r0 .pool thumb_func_end sub_80674D4 thumb_func_start sub_8067508 sub_8067508: @ 8067508 push {r4-r6,lr} ldr r5, =gUnknown_020241E4 ldr r6, =gUnknown_02024064 ldrb r0, [r6] adds r0, r5 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r4, =gUnknown_02020630 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, =sub_80A6EEC 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, =sub_80676FC bl oamt_set_x3A_32 ldr r0, =c3_08038DC4 movs r1, 0x5 bl CreateTask lsls r0, 24 lsrs r0, 24 ldr r4, =gTasks lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r4 ldrb r0, [r6] strh r0, [r1, 0x8] ldr r3, =gUnknown_020244D0 ldr r0, [r3] ldrb r2, [r6] ldr r1, [r0, 0x4] lsls r0, r2, 1 adds r0, r2 lsls r0, 2 adds r0, r1 ldrb r1, [r0] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _080675CA ldr r0, =gUnknown_020244B4 adds r0, r2, r0 ldrb r1, [r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r4 ldr r1, =sub_8073C30 str r1, [r0] _080675CA: ldr r0, [r3] ldr r2, [r0, 0x8] ldrb r0, [r2, 0x9] movs r1, 0x1 orrs r0, r1 strb r0, [r2, 0x9] ldr r1, =gUnknown_03005D60 ldrb r0, [r6] lsls r0, 2 adds r0, r1 ldr r1, =nullsub_28 str r1, [r0] pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_8067508 thumb_func_start c3_08038DC4 c3_08038DC4: @ 8067618 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} lsls r0, 24 lsrs r0, 24 mov r8, r0 ldr r7, =gUnknown_02024064 ldrb r0, [r7] mov r9, r0 ldr r1, =gTasks 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 _08067652 ldr r0, =gBattleTypeFlags ldr r0, [r0] movs r1, 0x40 ands r0, r1 cmp r0, 0 beq _08067684 _08067652: ldr r0, =gUnknown_02023064 ldrb r1, [r7] lsls r2, r1, 9 adds r0, 0x1 adds r2, r0 ldr r0, =gUnknown_0202406E lsls r1, 1 adds r1, r0 ldrh r0, [r1] strb r0, [r2] ldrb r0, [r7] movs r1, 0 bl sub_8066494 b _080676C4 .pool _08067684: ldr r4, =gUnknown_02023064 ldrb r0, [r7] lsls r1, r0, 9 adds r4, 0x1 adds r1, r4 ldr r6, =gUnknown_0202406E lsls r0, 1 adds r0, r6 ldrh r0, [r0] strb r0, [r1] ldrb r0, [r7] movs r1, 0 bl sub_8066494 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_8066494 ldrb r0, [r7] eors r0, r5 strb r0, [r7] _080676C4: ldr r1, =gUnknown_03005D60 ldr r2, =gUnknown_02024064 ldrb r0, [r2] lsls r0, 2 adds r0, r1 ldr r1, =sub_8064734 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 .pool thumb_func_end c3_08038DC4 thumb_func_start sub_80676FC sub_80676FC: @ 80676FC push {r4,lr} adds r4, r0, 0 ldrh r0, [r4, 0x6] bl sub_805DFE4 adds r0, r4, 0 bl obj_free_rotscale_entry adds r0, r4, 0 bl RemoveObjectAndFreeTiles pop {r4} pop {r0} bx r0 thumb_func_end sub_80676FC thumb_func_start sub_8067718 sub_8067718: @ 8067718 push {r4-r7,lr} ldr r1, =gUnknown_02023064 ldr r0, =gUnknown_02024064 ldrb r2, [r0] lsls r0, r2, 9 adds r1, 0x1 adds r0, r1 ldrb r0, [r0] cmp r0, 0 beq _08067748 adds r0, r2, 0 bl battle_side_get_owner lsls r0, 24 cmp r0, 0 bne _08067748 bl sub_8065068 b _08067812 .pool _08067748: ldr r4, =gUnknown_020244D0 ldr r0, [r4] ldr r3, =gUnknown_02024064 ldrb r1, [r3] ldr r2, [r0, 0x4] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r1, [r0] movs r2, 0x1 orrs r1, r2 strb r1, [r0] ldr r1, =gUnknown_02023064 ldrb r2, [r3] lsls r0, r2, 9 adds r1, 0x2 adds r0, r1 ldrb r0, [r0] adds r7, r3, 0 cmp r0, 0 beq _080677B4 ldr r0, [r4] ldr r1, [r0, 0x4] lsls r0, r2, 1 adds r0, r2 lsls r0, 2 adds r3, r0, r1 ldrb r2, [r3, 0x1] lsls r1, r2, 27 lsrs r0, r1, 28 cmp r0, 0x1 bhi _080677AC adds r0, 0x1 movs r1, 0xF ands r0, r1 lsls r0, 1 movs r1, 0x1F negs r1, r1 ands r1, r2 orrs r1, r0 strb r1, [r3, 0x1] b _08067812 .pool _080677AC: movs r0, 0x1F negs r0, r0 ands r0, r2 strb r0, [r3, 0x1] _080677B4: adds r5, r7, 0 ldrb r0, [r5] lsls r3, r0, 9 ldr r4, =gUnknown_02023068 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_80735DC ldr r2, =gUnknown_020244B4 ldrb r1, [r5] adds r1, r2 movs r3, 0 strb r0, [r1] ldr r6, =gUnknown_020244D0 ldr r0, [r6] ldrb r1, [r5] ldr r2, [r0, 0x4] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r2 strb r3, [r0, 0x5] ldrb r2, [r5] lsls r0, r2, 9 adds r0, r4 ldrb r0, [r0] cmp r0, 0 beq _08067806 ldr r0, [r6] ldr r1, [r0, 0x4] lsls r0, r2, 1 adds r0, r2 lsls r0, 2 adds r0, r1 movs r1, 0x5D strb r1, [r0, 0x5] _08067806: ldr r0, =gUnknown_03005D60 ldrb r1, [r7] lsls r1, 2 adds r1, r0 ldr r0, =sub_806782C str r0, [r1] _08067812: pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_8067718 thumb_func_start sub_806782C sub_806782C: @ 806782C push {r4,lr} ldr r4, =gUnknown_020244D0 ldr r0, [r4] ldr r3, =gUnknown_02024064 ldrb r1, [r3] ldr r2, [r0, 0x4] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r1, [r0, 0x5] adds r2, r1, 0x1 strb r2, [r0, 0x5] lsls r1, 24 lsrs r1, 24 cmp r1, 0x5C bls _08067864 ldr r0, [r4] ldrb r1, [r3] ldr r2, [r0, 0x4] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r2 movs r1, 0 strb r1, [r0, 0x5] bl sub_8065068 _08067864: pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_806782C thumb_func_start sub_8067874 sub_8067874: @ 8067874 push {lr} ldr r0, =gUnknown_020244D0 ldr r1, [r0] ldr r0, =gUnknown_02024064 ldrb r3, [r0] ldr r1, [r1, 0x4] lsls r0, r3, 1 adds r0, r3 lsls r0, 2 adds r0, r1 ldrb r1, [r0] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _080678A6 ldr r2, =gTasks ldr r0, =gUnknown_020244B4 adds r0, r3, r0 ldrb r1, [r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r2 ldr r1, =sub_8073C30 str r1, [r0] _080678A6: bl sub_8065068 pop {r0} bx r0 .pool thumb_func_end sub_8067874 thumb_func_start sub_80678C4 sub_80678C4: @ 80678C4 push {lr} bl sub_8065068 pop {r0} bx r0 thumb_func_end sub_80678C4 thumb_func_start sub_80678D0 sub_80678D0: @ 80678D0 push {r4,lr} ldr r4, =gUnknown_02024064 ldrb r0, [r4] bl sub_80A6A90 lsls r0, 24 cmp r0, 0 beq _08067916 ldr r3, =gUnknown_02020630 ldr r0, =gUnknown_020241E4 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, =gUnknown_02023064 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_805E408 _08067916: bl sub_8065068 pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_80678D0 thumb_func_start sub_8067930 sub_8067930: @ 8067930 push {r4-r6,lr} sub sp, 0x4 ldr r5, =gUnknown_02024064 ldrb r0, [r5] bl mplay_80342A4 lsls r0, 24 cmp r0, 0 bne _08067992 ldr r4, =gUnknown_02023064 ldrb r2, [r5] lsls r1, r2, 9 adds r0, r4, 0x1 adds r0, r1, r0 ldrb r6, [r0] adds r0, r4, 0x2 adds r0, r1, r0 ldrb r3, [r0] adds r4, 0x3 adds r1, r4 ldrb r0, [r1] lsls r0, 8 orrs r3, r0 str r3, [sp] adds r0, r2, 0 adds r1, r2, 0 adds r3, r6, 0 bl move_anim_start_t3 lsls r0, 24 cmp r0, 0 beq _08067980 bl sub_8065068 b _0806798C .pool _08067980: ldr r0, =gUnknown_03005D60 ldrb r1, [r5] lsls r1, 2 adds r1, r0 ldr r0, =sub_8065038 str r0, [r1] _0806798C: adds r0, r6, 0 bl sub_817E32C _08067992: add sp, 0x4 pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_8067930 thumb_func_start sub_80679A4 sub_80679A4: @ 80679A4 push {lr} ldr r0, =gUnknown_02024064 ldrb r0, [r0] lsls r0, 9 ldr r1, =gUnknown_02023066 adds r0, r1 bl sub_81851A8 bl sub_8065068 pop {r0} bx r0 .pool thumb_func_end sub_80679A4 thumb_func_start sub_80679C4 sub_80679C4: @ 80679C4 push {lr} bl sub_8065068 pop {r0} bx r0 thumb_func_end sub_80679C4 thumb_func_start sub_80679D0 sub_80679D0: @ 80679D0 push {r4,r5,lr} ldr r5, =gUnknown_02024064 ldrb r0, [r5] lsls r0, 9 ldr r4, =gUnknown_02023068 adds r0, r4 bl sub_81851A8 ldrb r0, [r5] lsls r0, 9 subs r4, 0x3 adds r0, r4 ldrb r2, [r0] cmp r2, 0x3 bne _08067A00 ldr r0, =gUnknown_0202433A strb r2, [r0] b _08067A08 .pool _08067A00: ldr r0, =gUnknown_0202433A movs r1, 0x3 eors r1, r2 strb r1, [r0] _08067A08: ldr r0, =gSaveBlock2Ptr ldr r3, [r0] ldr r1, =gUnknown_02023064 ldr r4, =gUnknown_02024064 ldrb r0, [r4] lsls r0, 9 adds r1, 0x2 adds r0, r1 ldrb r0, [r0] ldr r1, =0x00000ca9 adds r3, r1 movs r1, 0x1 ands r1, r0 lsls r1, 3 ldrb r2, [r3] movs r0, 0x9 negs r0, r0 ands r0, r2 orrs r0, r1 strb r0, [r3] movs r0, 0x5 bl sub_80A2F50 movs r0, 0x3 bl sub_80A2390 bl sub_8065068 ldr r1, =gUnknown_03005D60 ldrb r0, [r4] lsls r0, 2 adds r0, r1 ldr r1, =sub_80587B0 str r1, [r0] pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_80679D0 thumb_func_start nullsub_92 nullsub_92: @ 8067A70 bx lr thumb_func_end nullsub_92 .align 2, 0 @ Don't pad with nop.