.include "constants/gba_constants.inc" .include "constants/species_constants.inc" .include "asm/macros.inc" .syntax unified .text thumb_func_start dp01t_00_7_getattr dp01t_00_7_getattr: @ 8033524 push {r4-r6,lr} sub sp, 0x100 movs r6, 0 ldr r1, _08033550 @ =gUnknown_02023A60 ldr r0, _08033554 @ =gUnknown_02024A60 ldrb r2, [r0] lsls r0, r2, 9 adds r1, 0x2 adds r1, r0, r1 ldrb r0, [r1] cmp r0, 0 bne _0803355C ldr r0, _08033558 @ =gUnknown_02024A6A lsls r1, r2, 1 adds r1, r0 ldrb r0, [r1] mov r1, sp bl sub_8033598 adds r6, r0, 0 b _0803357E .align 2, 0 _08033550: .4byte gUnknown_02023A60 _08033554: .4byte gUnknown_02024A60 _08033558: .4byte gUnknown_02024A6A _0803355C: ldrb r4, [r1] movs r5, 0 _08033560: movs r0, 0x1 ands r0, r4 cmp r0, 0 beq _08033576 lsls r0, r5, 24 lsrs r0, 24 mov r2, sp adds r1, r2, r6 bl sub_8033598 adds r6, r0 _08033576: lsrs r4, 1 adds r5, 0x1 cmp r5, 0x5 ble _08033560 _0803357E: lsls r1, r6, 16 lsrs r1, 16 movs r0, 0x1 mov r2, sp bl dp01_build_cmdbuf_x1D_1D_numargs_varargs bl sub_80334EC add sp, 0x100 pop {r4-r6} pop {r0} bx r0 thumb_func_end dp01t_00_7_getattr thumb_func_start sub_8033598 sub_8033598: @ 8033598 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x90 adds r7, r1, 0 lsls r0, 24 lsrs r5, r0, 24 movs r6, 0 ldr r2, _080335CC @ =gUnknown_02023A60 ldr r3, _080335D0 @ =gUnknown_02024A60 ldrb r0, [r3] lsls r0, 9 adds r1, r2, 0x1 adds r0, r1 ldrb r0, [r0] cmp r0, 0x3B bls _080335C2 bl _08033D2E _080335C2: lsls r0, 2 ldr r1, _080335D4 @ =_080335D8 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080335CC: .4byte gUnknown_02023A60 _080335D0: .4byte gUnknown_02024A60 _080335D4: .4byte _080335D8 .align 2, 0 _080335D8: .4byte _080336C8 .4byte _080338EC .4byte _080338FC .4byte _0803390C .4byte _08033974 .4byte _08033974 .4byte _08033974 .4byte _08033974 .4byte _08033990 .4byte _080339CC .4byte _080339CC .4byte _080339CC .4byte _080339CC .4byte _08033D2E .4byte _08033D2E .4byte _08033D2E .4byte _08033D2E .4byte _080339E8 .4byte _080339F8 .4byte _08033A28 .4byte _08033A38 .4byte _08033A48 .4byte _08033A58 .4byte _08033A68 .4byte _08033A78 .4byte _08033A88 .4byte _08033A98 .4byte _08033AA8 .4byte _08033AB8 .4byte _08033AC8 .4byte _08033AD8 .4byte _08033AE8 .4byte _08033B38 .4byte _08033B48 .4byte _08033B58 .4byte _08033B68 .4byte _08033B78 .4byte _08033B88 .4byte _08033B98 .4byte _08033BA8 .4byte _08033BB8 .4byte _08033BEC .4byte _08033BFC .4byte _08033C0C .4byte _08033C1C .4byte _08033C2C .4byte _08033C3C .4byte _08033C4C .4byte _08033C5C .4byte _08033C7C .4byte _08033C8C .4byte _08033C9C .4byte _08033CAC .4byte _08033CBC .4byte _08033CCC .4byte _08033CDC .4byte _08033CEC .4byte _08033CFC .4byte _08033D0C .4byte _08033D1C _080336C8: movs r0, 0x64 adds r4, r5, 0 muls r4, r0 ldr r0, _080338DC @ =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 _08033714: 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 _08033714 movs r0, 0x64 adds r4, r5, 0 muls r4, r0 ldr r0, _080338DC @ =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, _080338E0 @ =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, _080338E4 @ =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, _080338E8 @ =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 _080338CC: adds r0, r7, r6 adds r1, r2, r6 ldrb r1, [r1] strb r1, [r0] adds r6, 0x1 cmp r6, 0x57 bls _080338CC b _08033D2E .align 2, 0 _080338DC: .4byte gEnemyParty _080338E0: .4byte 0xfffffc1f _080338E4: .4byte 0xfff07fff _080338E8: .4byte 0xfffffe0f _080338EC: movs r0, 0x64 muls r0, r5 ldr r1, _080338F8 @ =gEnemyParty adds r0, r1 movs r1, 0xB b _08033C66 .align 2, 0 _080338F8: .4byte gEnemyParty _080338FC: movs r0, 0x64 muls r0, r5 ldr r1, _08033908 @ =gEnemyParty adds r0, r1 movs r1, 0xC b _08033C66 .align 2, 0 _08033908: .4byte gEnemyParty _0803390C: movs r6, 0 add r2, sp, 0x58 mov r9, r2 add r0, sp, 0x60 mov r10, r0 movs r0, 0x64 adds r1, r5, 0 muls r1, r0 ldr r0, _08033970 @ =gEnemyParty adds r4, r1, r0 mov r8, r9 _08033922: 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 _08033922 movs r0, 0x64 muls r0, r5 ldr r1, _08033970 @ =gEnemyParty adds r0, r1 movs r1, 0x15 bl GetMonData mov r1, r9 strb r0, [r1, 0xC] mov r2, r9 movs r6, 0 _08033960: adds r0, r7, r6 adds r1, r2, r6 ldrb r1, [r1] strb r1, [r0] adds r6, 0x1 cmp r6, 0xF bls _08033960 b _08033D2E .align 2, 0 _08033970: .4byte gEnemyParty _08033974: movs r0, 0x64 muls r0, r5 ldr r1, _0803398C @ =gEnemyParty adds r0, r1 ldrb r1, [r3] lsls r1, 9 adds r2, 0x1 adds r1, r2 ldrb r1, [r1] adds r1, 0x9 b _08033C66 .align 2, 0 _0803398C: .4byte gEnemyParty _08033990: movs r6, 0 movs r0, 0x64 adds r4, r5, 0 muls r4, r0 ldr r2, _080339C8 @ =gEnemyParty mov r8, r2 _0803399C: 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 _0803399C movs r0, 0x64 muls r0, r5 ldr r1, _080339C8 @ =gEnemyParty adds r0, r1 movs r1, 0x15 bl GetMonData adds r1, r7, r6 strb r0, [r1] adds r6, 0x1 b _08033D2E .align 2, 0 _080339C8: .4byte gEnemyParty _080339CC: movs r0, 0x64 muls r0, r5 ldr r1, _080339E4 @ =gEnemyParty adds r0, r1 ldrb r1, [r3] lsls r1, 9 adds r2, 0x1 adds r1, r2 ldrb r1, [r1] adds r1, 0x8 b _08033D26 .align 2, 0 _080339E4: .4byte gEnemyParty _080339E8: movs r0, 0x64 muls r0, r5 ldr r1, _080339F4 @ =gEnemyParty adds r0, r1 movs r1, 0x1 b _08033A02 .align 2, 0 _080339F4: .4byte gEnemyParty _080339F8: movs r0, 0x64 muls r0, r5 ldr r1, _08033A24 @ =gEnemyParty adds r0, r1 movs r1, 0x19 _08033A02: 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 _08033D2E .align 2, 0 _08033A24: .4byte gEnemyParty _08033A28: movs r0, 0x64 muls r0, r5 ldr r1, _08033A34 @ =gEnemyParty adds r0, r1 movs r1, 0x1A b _08033D26 .align 2, 0 _08033A34: .4byte gEnemyParty _08033A38: movs r0, 0x64 muls r0, r5 ldr r1, _08033A44 @ =gEnemyParty adds r0, r1 movs r1, 0x1B b _08033D26 .align 2, 0 _08033A44: .4byte gEnemyParty _08033A48: movs r0, 0x64 muls r0, r5 ldr r1, _08033A54 @ =gEnemyParty adds r0, r1 movs r1, 0x1C b _08033D26 .align 2, 0 _08033A54: .4byte gEnemyParty _08033A58: movs r0, 0x64 muls r0, r5 ldr r1, _08033A64 @ =gEnemyParty adds r0, r1 movs r1, 0x1D b _08033D26 .align 2, 0 _08033A64: .4byte gEnemyParty _08033A68: movs r0, 0x64 muls r0, r5 ldr r1, _08033A74 @ =gEnemyParty adds r0, r1 movs r1, 0x1E b _08033D26 .align 2, 0 _08033A74: .4byte gEnemyParty _08033A78: movs r0, 0x64 muls r0, r5 ldr r1, _08033A84 @ =gEnemyParty adds r0, r1 movs r1, 0x1F b _08033D26 .align 2, 0 _08033A84: .4byte gEnemyParty _08033A88: movs r0, 0x64 muls r0, r5 ldr r1, _08033A94 @ =gEnemyParty adds r0, r1 movs r1, 0x20 b _08033D26 .align 2, 0 _08033A94: .4byte gEnemyParty _08033A98: movs r0, 0x64 muls r0, r5 ldr r1, _08033AA4 @ =gEnemyParty adds r0, r1 movs r1, 0x22 b _08033D26 .align 2, 0 _08033AA4: .4byte gEnemyParty _08033AA8: movs r0, 0x64 muls r0, r5 ldr r1, _08033AB4 @ =gEnemyParty adds r0, r1 movs r1, 0x23 b _08033D26 .align 2, 0 _08033AB4: .4byte gEnemyParty _08033AB8: movs r0, 0x64 muls r0, r5 ldr r1, _08033AC4 @ =gEnemyParty adds r0, r1 movs r1, 0x24 b _08033D26 .align 2, 0 _08033AC4: .4byte gEnemyParty _08033AC8: movs r0, 0x64 muls r0, r5 ldr r1, _08033AD4 @ =gEnemyParty adds r0, r1 movs r1, 0x25 b _08033D26 .align 2, 0 _08033AD4: .4byte gEnemyParty _08033AD8: movs r0, 0x64 muls r0, r5 ldr r1, _08033AE4 @ =gEnemyParty adds r0, r1 movs r1, 0x26 b _08033D26 .align 2, 0 _08033AE4: .4byte gEnemyParty _08033AE8: movs r0, 0x64 adds r4, r5, 0 muls r4, r0 ldr r0, _08033B34 @ =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 _08033D2E .align 2, 0 _08033B34: .4byte gEnemyParty _08033B38: movs r0, 0x64 muls r0, r5 ldr r1, _08033B44 @ =gEnemyParty adds r0, r1 movs r1, 0x27 b _08033D26 .align 2, 0 _08033B44: .4byte gEnemyParty _08033B48: movs r0, 0x64 muls r0, r5 ldr r1, _08033B54 @ =gEnemyParty adds r0, r1 movs r1, 0x28 b _08033D26 .align 2, 0 _08033B54: .4byte gEnemyParty _08033B58: movs r0, 0x64 muls r0, r5 ldr r1, _08033B64 @ =gEnemyParty adds r0, r1 movs r1, 0x29 b _08033D26 .align 2, 0 _08033B64: .4byte gEnemyParty _08033B68: movs r0, 0x64 muls r0, r5 ldr r1, _08033B74 @ =gEnemyParty adds r0, r1 movs r1, 0x2A b _08033D26 .align 2, 0 _08033B74: .4byte gEnemyParty _08033B78: movs r0, 0x64 muls r0, r5 ldr r1, _08033B84 @ =gEnemyParty adds r0, r1 movs r1, 0x2B b _08033D26 .align 2, 0 _08033B84: .4byte gEnemyParty _08033B88: movs r0, 0x64 muls r0, r5 ldr r1, _08033B94 @ =gEnemyParty adds r0, r1 movs r1, 0x2C b _08033D26 .align 2, 0 _08033B94: .4byte gEnemyParty _08033B98: movs r0, 0x64 muls r0, r5 ldr r1, _08033BA4 @ =gEnemyParty adds r0, r1 movs r1, 0 b _08033BC2 .align 2, 0 _08033BA4: .4byte gEnemyParty _08033BA8: movs r0, 0x64 muls r0, r5 ldr r1, _08033BB4 @ =gEnemyParty adds r0, r1 movs r1, 0x9 b _08033C66 .align 2, 0 _08033BB4: .4byte gEnemyParty _08033BB8: movs r0, 0x64 muls r0, r5 ldr r1, _08033BE8 @ =gEnemyParty adds r0, r1 movs r1, 0x37 _08033BC2: 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 _08033D2E .align 2, 0 _08033BE8: .4byte gEnemyParty _08033BEC: movs r0, 0x64 muls r0, r5 ldr r1, _08033BF8 @ =gEnemyParty adds r0, r1 movs r1, 0x38 b _08033D26 .align 2, 0 _08033BF8: .4byte gEnemyParty _08033BFC: movs r0, 0x64 muls r0, r5 ldr r1, _08033C08 @ =gEnemyParty adds r0, r1 movs r1, 0x39 b _08033C66 .align 2, 0 _08033C08: .4byte gEnemyParty _08033C0C: movs r0, 0x64 muls r0, r5 ldr r1, _08033C18 @ =gEnemyParty adds r0, r1 movs r1, 0x3A b _08033C66 .align 2, 0 _08033C18: .4byte gEnemyParty _08033C1C: movs r0, 0x64 muls r0, r5 ldr r1, _08033C28 @ =gEnemyParty adds r0, r1 movs r1, 0x3B b _08033C66 .align 2, 0 _08033C28: .4byte gEnemyParty _08033C2C: movs r0, 0x64 muls r0, r5 ldr r1, _08033C38 @ =gEnemyParty adds r0, r1 movs r1, 0x3C b _08033C66 .align 2, 0 _08033C38: .4byte gEnemyParty _08033C3C: movs r0, 0x64 muls r0, r5 ldr r1, _08033C48 @ =gEnemyParty adds r0, r1 movs r1, 0x3D b _08033C66 .align 2, 0 _08033C48: .4byte gEnemyParty _08033C4C: movs r0, 0x64 muls r0, r5 ldr r1, _08033C58 @ =gEnemyParty adds r0, r1 movs r1, 0x3E b _08033C66 .align 2, 0 _08033C58: .4byte gEnemyParty _08033C5C: movs r0, 0x64 muls r0, r5 ldr r1, _08033C78 @ =gEnemyParty adds r0, r1 movs r1, 0x3F _08033C66: bl GetMonData lsls r0, 16 lsrs r0, 16 strb r0, [r7] lsrs r0, 8 strb r0, [r7, 0x1] movs r6, 0x2 b _08033D2E .align 2, 0 _08033C78: .4byte gEnemyParty _08033C7C: movs r0, 0x64 muls r0, r5 ldr r1, _08033C88 @ =gEnemyParty adds r0, r1 movs r1, 0x16 b _08033D26 .align 2, 0 _08033C88: .4byte gEnemyParty _08033C8C: movs r0, 0x64 muls r0, r5 ldr r1, _08033C98 @ =gEnemyParty adds r0, r1 movs r1, 0x17 b _08033D26 .align 2, 0 _08033C98: .4byte gEnemyParty _08033C9C: movs r0, 0x64 muls r0, r5 ldr r1, _08033CA8 @ =gEnemyParty adds r0, r1 movs r1, 0x18 b _08033D26 .align 2, 0 _08033CA8: .4byte gEnemyParty _08033CAC: movs r0, 0x64 muls r0, r5 ldr r1, _08033CB8 @ =gEnemyParty adds r0, r1 movs r1, 0x21 b _08033D26 .align 2, 0 _08033CB8: .4byte gEnemyParty _08033CBC: movs r0, 0x64 muls r0, r5 ldr r1, _08033CC8 @ =gEnemyParty adds r0, r1 movs r1, 0x2F b _08033D26 .align 2, 0 _08033CC8: .4byte gEnemyParty _08033CCC: movs r0, 0x64 muls r0, r5 ldr r1, _08033CD8 @ =gEnemyParty adds r0, r1 movs r1, 0x30 b _08033D26 .align 2, 0 _08033CD8: .4byte gEnemyParty _08033CDC: movs r0, 0x64 muls r0, r5 ldr r1, _08033CE8 @ =gEnemyParty adds r0, r1 movs r1, 0x32 b _08033D26 .align 2, 0 _08033CE8: .4byte gEnemyParty _08033CEC: movs r0, 0x64 muls r0, r5 ldr r1, _08033CF8 @ =gEnemyParty adds r0, r1 movs r1, 0x33 b _08033D26 .align 2, 0 _08033CF8: .4byte gEnemyParty _08033CFC: movs r0, 0x64 muls r0, r5 ldr r1, _08033D08 @ =gEnemyParty adds r0, r1 movs r1, 0x34 b _08033D26 .align 2, 0 _08033D08: .4byte gEnemyParty _08033D0C: movs r0, 0x64 muls r0, r5 ldr r1, _08033D18 @ =gEnemyParty adds r0, r1 movs r1, 0x35 b _08033D26 .align 2, 0 _08033D18: .4byte gEnemyParty _08033D1C: movs r0, 0x64 muls r0, r5 ldr r1, _08033D40 @ =gEnemyParty adds r0, r1 movs r1, 0x36 _08033D26: bl GetMonData strb r0, [r7] movs r6, 0x1 _08033D2E: adds r0, r6, 0 add sp, 0x90 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _08033D40: .4byte gEnemyParty thumb_func_end sub_8033598 thumb_func_start dp01t_01_2_read_pokmon_data_slice dp01t_01_2_read_pokmon_data_slice: @ 8033D44 push {r4-r7,lr} sub sp, 0x58 ldr r2, _08033DBC @ =gUnknown_02024A6A ldr r5, _08033DC0 @ =gUnknown_02024A60 ldrb r1, [r5] lsls r0, r1, 1 adds r0, r2 ldrh r2, [r0] movs r0, 0x64 adds r4, r2, 0 muls r4, r0 ldr r3, _08033DC4 @ =gUnknown_02023A60 lsls r1, 9 adds r0, r3, 0x1 adds r0, r1, r0 ldrb r2, [r0] ldr r0, _08033DC8 @ =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 _08033D9A adds r3, r0, 0 _08033D80: adds r1, r4, r2 adds r0, r6, r2 ldrb r0, [r0] strb r0, [r1] adds r0, r2, 0x1 lsls r0, 24 lsrs r2, r0, 24 ldrb r0, [r5] lsls r0, 9 adds r0, r3 ldrb r0, [r0] cmp r2, r0 bcc _08033D80 _08033D9A: ldrb r0, [r7] lsls r0, 9 mov r1, r12 adds r1, 0x2 adds r0, r1 ldrb r1, [r0] movs r0, 0x1 adds r2, r4, 0 bl dp01_build_cmdbuf_x1D_1D_numargs_varargs bl sub_80334EC add sp, 0x58 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08033DBC: .4byte gUnknown_02024A6A _08033DC0: .4byte gUnknown_02024A60 _08033DC4: .4byte gUnknown_02023A60 _08033DC8: .4byte gEnemyParty thumb_func_end dp01t_01_2_read_pokmon_data_slice thumb_func_start dp01t_02_7_setattr dp01t_02_7_setattr: @ 8033DCC push {r4,r5,lr} ldr r1, _08033DF0 @ =gUnknown_02023A60 ldr r0, _08033DF4 @ =gUnknown_02024A60 ldrb r2, [r0] lsls r0, r2, 9 adds r1, 0x2 adds r1, r0, r1 ldrb r0, [r1] cmp r0, 0 bne _08033DFC ldr r0, _08033DF8 @ =gUnknown_02024A6A lsls r1, r2, 1 adds r1, r0 ldrb r0, [r1] bl sub_8033E24 b _08033E1A .align 2, 0 _08033DF0: .4byte gUnknown_02023A60 _08033DF4: .4byte gUnknown_02024A60 _08033DF8: .4byte gUnknown_02024A6A _08033DFC: ldrb r4, [r1] movs r5, 0 _08033E00: movs r0, 0x1 ands r0, r4 cmp r0, 0 beq _08033E0E adds r0, r5, 0 bl sub_8033E24 _08033E0E: lsrs r4, 1 adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0x5 bls _08033E00 _08033E1A: bl sub_80334EC pop {r4,r5} pop {r0} bx r0 thumb_func_end dp01t_02_7_setattr thumb_func_start sub_8033E24 sub_8033E24: @ 8033E24 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x38 lsls r0, 24 lsrs r5, r0, 24 ldr r3, _08033E5C @ =gUnknown_02024A60 ldrb r0, [r3] lsls r0, 9 ldr r2, _08033E60 @ =gUnknown_02023A63 adds r4, r0, r2 adds r7, r4, 0 subs r1, r2, 0x2 adds r0, r1 ldrb r0, [r0] adds r6, r3, 0 adds r3, r2, 0 cmp r0, 0x3B bls _08033E52 bl _08034730 _08033E52: lsls r0, 2 ldr r1, _08033E64 @ =_08033E68 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08033E5C: .4byte gUnknown_02024A60 _08033E60: .4byte gUnknown_02023A63 _08033E64: .4byte _08033E68 .align 2, 0 _08033E68: .4byte _08033F58 .4byte _080340F0 .4byte _0803410C .4byte _08034128 .4byte _0803417C .4byte _0803417C .4byte _0803417C .4byte _0803417C .4byte _0803419C .4byte _08034204 .4byte _08034204 .4byte _08034204 .4byte _08034204 .4byte _08034730 .4byte _08034730 .4byte _08034730 .4byte _08034730 .4byte _0803422C .4byte _08034248 .4byte _08034264 .4byte _08034280 .4byte _0803429C .4byte _080342B8 .4byte _080342D4 .4byte _080342F0 .4byte _0803430C .4byte _08034328 .4byte _08034344 .4byte _08034360 .4byte _0803437C .4byte _08034398 .4byte _080343B4 .4byte _08034428 .4byte _08034444 .4byte _08034460 .4byte _0803447C .4byte _08034498 .4byte _080344B4 .4byte _080344D0 .4byte _080344EC .4byte _08034508 .4byte _08034524 .4byte _08034540 .4byte _0803455C .4byte _08034578 .4byte _08034594 .4byte _080345B0 .4byte _080345CC .4byte _080345E8 .4byte _08034604 .4byte _08034620 .4byte _0803463C .4byte _08034658 .4byte _08034674 .4byte _08034690 .4byte _080346AC .4byte _080346C8 .4byte _080346E4 .4byte _08034700 .4byte _0803471C _08033F58: movs r0, 0x64 adds r4, r5, 0 muls r4, r0 ldr r0, _080340EC @ =gEnemyParty adds r4, r0 adds r0, r4, 0 movs r1, 0xB adds r2, r7, 0 bl SetMonData adds r2, r7, 0 adds r2, 0x2E adds r0, r4, 0 movs r1, 0xC bl SetMonData movs r0, 0 mov r8, r0 movs r0, 0x3B adds r0, r7 mov r10, r0 adds r0, r7, 0 adds r0, 0x2B str r0, [sp, 0x20] adds r0, 0x19 str r0, [sp, 0x28] adds r0, 0x4 str r0, [sp, 0x2C] adds r0, 0x4 str r0, [sp, 0x30] subs r0, 0x22 str r0, [sp, 0x1C] subs r0, 0x2 str r0, [sp, 0x18] adds r0, 0x4 str r0, [sp, 0x24] adds r0, r7, 0x2 str r0, [sp, 0x4] adds r0, r7, 0x4 str r0, [sp, 0x8] adds r0, r7, 0x6 str r0, [sp, 0xC] adds r0, 0x2 str r0, [sp, 0x10] adds r0, 0x2 str r0, [sp, 0x14] mov r9, r4 adds r6, r7, 0 adds r6, 0x24 adds r4, r7, 0 adds r4, 0xC _08033FBE: mov r1, r8 adds r1, 0xD mov r0, r9 adds r2, r4, 0 bl SetMonData mov r1, r8 adds r1, 0x11 mov r0, r9 adds r2, r6, 0 bl SetMonData adds r6, 0x1 adds r4, 0x2 movs r0, 0x1 add r8, r0 mov r0, r8 cmp r0, 0x3 ble _08033FBE movs r0, 0x64 adds r4, r5, 0 muls r4, r0 ldr r0, _080340EC @ =gEnemyParty adds r4, r0 adds r0, r4, 0 movs r1, 0x15 mov r2, r10 bl SetMonData adds r0, r4, 0 movs r1, 0x20 ldr r2, [sp, 0x20] bl SetMonData adds r0, r4, 0 movs r1, 0x19 ldr r2, [sp, 0x28] bl SetMonData 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 SetMonData 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 SetMonData 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 SetMonData 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 SetMonData 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 SetMonData 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 SetMonData adds r0, r4, 0 movs r1, 0 ldr r2, [sp, 0x2C] bl SetMonData adds r0, r4, 0 movs r1, 0x37 ldr r2, [sp, 0x30] bl SetMonData adds r0, r4, 0 movs r1, 0x38 ldr r2, [sp, 0x1C] bl SetMonData adds r0, r4, 0 movs r1, 0x39 ldr r2, [sp, 0x18] bl SetMonData adds r0, r4, 0 movs r1, 0x3A ldr r2, [sp, 0x24] bl SetMonData adds r0, r4, 0 movs r1, 0x3B ldr r2, [sp, 0x4] bl SetMonData adds r0, r4, 0 movs r1, 0x3C ldr r2, [sp, 0x8] bl SetMonData adds r0, r4, 0 movs r1, 0x3D ldr r2, [sp, 0xC] bl SetMonData adds r0, r4, 0 movs r1, 0x3E ldr r2, [sp, 0x10] bl SetMonData adds r0, r4, 0 movs r1, 0x3F ldr r2, [sp, 0x14] bl SetMonData b _08034730 .align 2, 0 _080340EC: .4byte gEnemyParty _080340F0: movs r0, 0x64 muls r0, r5 ldr r1, _08034108 @ =gEnemyParty adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0xB bl SetMonData b _08034730 .align 2, 0 _08034108: .4byte gEnemyParty _0803410C: movs r0, 0x64 muls r0, r5 ldr r1, _08034124 @ =gEnemyParty adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0xC bl SetMonData b _08034730 .align 2, 0 _08034124: .4byte gEnemyParty _08034128: movs r0, 0 mov r8, r0 movs r0, 0xC adds r0, r4 mov r9, r0 movs r0, 0x64 adds r1, r5, 0 muls r1, r0 ldr r0, _08034178 @ =gEnemyParty adds r7, r1, r0 adds r6, r4, 0 adds r6, 0x8 _08034140: mov r1, r8 adds r1, 0xD adds r0, r7, 0 adds r2, r4, 0 bl SetMonData mov r1, r8 adds r1, 0x11 adds r0, r7, 0 adds r2, r6, 0 bl SetMonData adds r6, 0x1 adds r4, 0x2 movs r0, 0x1 add r8, r0 mov r0, r8 cmp r0, 0x3 ble _08034140 movs r0, 0x64 muls r0, r5 ldr r1, _08034178 @ =gEnemyParty adds r0, r1 movs r1, 0x15 mov r2, r9 bl SetMonData b _08034730 .align 2, 0 _08034178: .4byte gEnemyParty _0803417C: movs r0, 0x64 muls r0, r5 ldr r1, _08034194 @ =gEnemyParty adds r0, r1 ldr r3, _08034198 @ =gUnknown_02023A60 ldrb r2, [r6] lsls r2, 9 adds r1, r3, 0x1 adds r1, r2, r1 ldrb r1, [r1] adds r1, 0x9 b _0803421A .align 2, 0 _08034194: .4byte gEnemyParty _08034198: .4byte gUnknown_02023A60 _0803419C: movs r0, 0x64 adds r4, r5, 0 muls r4, r0 ldr r0, _08034200 @ =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 SetMonData 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 SetMonData 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 SetMonData 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 SetMonData 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 SetMonData b _08034730 .align 2, 0 _08034200: .4byte gEnemyParty _08034204: movs r0, 0x64 muls r0, r5 ldr r1, _08034224 @ =gEnemyParty adds r0, r1 ldr r3, _08034228 @ =gUnknown_02023A60 ldrb r2, [r6] lsls r2, 9 adds r1, r3, 0x1 adds r1, r2, r1 ldrb r1, [r1] adds r1, 0x8 _0803421A: adds r3, 0x3 adds r2, r3 bl SetMonData b _08034730 .align 2, 0 _08034224: .4byte gEnemyParty _08034228: .4byte gUnknown_02023A60 _0803422C: movs r0, 0x64 muls r0, r5 ldr r1, _08034244 @ =gEnemyParty adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0x1 bl SetMonData b _08034730 .align 2, 0 _08034244: .4byte gEnemyParty _08034248: movs r0, 0x64 muls r0, r5 ldr r1, _08034260 @ =gEnemyParty adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0x19 bl SetMonData b _08034730 .align 2, 0 _08034260: .4byte gEnemyParty _08034264: movs r0, 0x64 muls r0, r5 ldr r1, _0803427C @ =gEnemyParty adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0x1A bl SetMonData b _08034730 .align 2, 0 _0803427C: .4byte gEnemyParty _08034280: movs r0, 0x64 muls r0, r5 ldr r1, _08034298 @ =gEnemyParty adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0x1B bl SetMonData b _08034730 .align 2, 0 _08034298: .4byte gEnemyParty _0803429C: movs r0, 0x64 muls r0, r5 ldr r1, _080342B4 @ =gEnemyParty adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0x1C bl SetMonData b _08034730 .align 2, 0 _080342B4: .4byte gEnemyParty _080342B8: movs r0, 0x64 muls r0, r5 ldr r1, _080342D0 @ =gEnemyParty adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0x1D bl SetMonData b _08034730 .align 2, 0 _080342D0: .4byte gEnemyParty _080342D4: movs r0, 0x64 muls r0, r5 ldr r1, _080342EC @ =gEnemyParty adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0x1E bl SetMonData b _08034730 .align 2, 0 _080342EC: .4byte gEnemyParty _080342F0: movs r0, 0x64 muls r0, r5 ldr r1, _08034308 @ =gEnemyParty adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0x1F bl SetMonData b _08034730 .align 2, 0 _08034308: .4byte gEnemyParty _0803430C: movs r0, 0x64 muls r0, r5 ldr r1, _08034324 @ =gEnemyParty adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0x20 bl SetMonData b _08034730 .align 2, 0 _08034324: .4byte gEnemyParty _08034328: movs r0, 0x64 muls r0, r5 ldr r1, _08034340 @ =gEnemyParty adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0x22 bl SetMonData b _08034730 .align 2, 0 _08034340: .4byte gEnemyParty _08034344: movs r0, 0x64 muls r0, r5 ldr r1, _0803435C @ =gEnemyParty adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0x23 bl SetMonData b _08034730 .align 2, 0 _0803435C: .4byte gEnemyParty _08034360: movs r0, 0x64 muls r0, r5 ldr r1, _08034378 @ =gEnemyParty adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0x24 bl SetMonData b _08034730 .align 2, 0 _08034378: .4byte gEnemyParty _0803437C: movs r0, 0x64 muls r0, r5 ldr r1, _08034394 @ =gEnemyParty adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0x25 bl SetMonData b _08034730 .align 2, 0 _08034394: .4byte gEnemyParty _08034398: movs r0, 0x64 muls r0, r5 ldr r1, _080343B0 @ =gEnemyParty adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0x26 bl SetMonData b _08034730 .align 2, 0 _080343B0: .4byte gEnemyParty _080343B4: movs r0, 0x64 adds r4, r5, 0 muls r4, r0 ldr r0, _08034424 @ =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 SetMonData 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 SetMonData 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 SetMonData 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 SetMonData 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 SetMonData ldrb r2, [r6] lsls r2, 9 ldr r3, [sp, 0x34] adds r0, r3, 0x5 adds r2, r0 adds r0, r4, 0 b _080344C2 .align 2, 0 _08034424: .4byte gEnemyParty _08034428: movs r0, 0x64 muls r0, r5 ldr r1, _08034440 @ =gEnemyParty adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0x27 bl SetMonData b _08034730 .align 2, 0 _08034440: .4byte gEnemyParty _08034444: movs r0, 0x64 muls r0, r5 ldr r1, _0803445C @ =gEnemyParty adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0x28 bl SetMonData b _08034730 .align 2, 0 _0803445C: .4byte gEnemyParty _08034460: movs r0, 0x64 muls r0, r5 ldr r1, _08034478 @ =gEnemyParty adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0x29 bl SetMonData b _08034730 .align 2, 0 _08034478: .4byte gEnemyParty _0803447C: movs r0, 0x64 muls r0, r5 ldr r1, _08034494 @ =gEnemyParty adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0x2A bl SetMonData b _08034730 .align 2, 0 _08034494: .4byte gEnemyParty _08034498: movs r0, 0x64 muls r0, r5 ldr r1, _080344B0 @ =gEnemyParty adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0x2B bl SetMonData b _08034730 .align 2, 0 _080344B0: .4byte gEnemyParty _080344B4: movs r0, 0x64 muls r0, r5 ldr r1, _080344CC @ =gEnemyParty adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 _080344C2: movs r1, 0x2C bl SetMonData b _08034730 .align 2, 0 _080344CC: .4byte gEnemyParty _080344D0: movs r0, 0x64 muls r0, r5 ldr r1, _080344E8 @ =gEnemyParty adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0 bl SetMonData b _08034730 .align 2, 0 _080344E8: .4byte gEnemyParty _080344EC: movs r0, 0x64 muls r0, r5 ldr r1, _08034504 @ =gEnemyParty adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0x9 bl SetMonData b _08034730 .align 2, 0 _08034504: .4byte gEnemyParty _08034508: movs r0, 0x64 muls r0, r5 ldr r1, _08034520 @ =gEnemyParty adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0x37 bl SetMonData b _08034730 .align 2, 0 _08034520: .4byte gEnemyParty _08034524: movs r0, 0x64 muls r0, r5 ldr r1, _0803453C @ =gEnemyParty adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0x38 bl SetMonData b _08034730 .align 2, 0 _0803453C: .4byte gEnemyParty _08034540: movs r0, 0x64 muls r0, r5 ldr r1, _08034558 @ =gEnemyParty adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0x39 bl SetMonData b _08034730 .align 2, 0 _08034558: .4byte gEnemyParty _0803455C: movs r0, 0x64 muls r0, r5 ldr r1, _08034574 @ =gEnemyParty adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0x3A bl SetMonData b _08034730 .align 2, 0 _08034574: .4byte gEnemyParty _08034578: movs r0, 0x64 muls r0, r5 ldr r1, _08034590 @ =gEnemyParty adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0x3B bl SetMonData b _08034730 .align 2, 0 _08034590: .4byte gEnemyParty _08034594: movs r0, 0x64 muls r0, r5 ldr r1, _080345AC @ =gEnemyParty adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0x3C bl SetMonData b _08034730 .align 2, 0 _080345AC: .4byte gEnemyParty _080345B0: movs r0, 0x64 muls r0, r5 ldr r1, _080345C8 @ =gEnemyParty adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0x3D bl SetMonData b _08034730 .align 2, 0 _080345C8: .4byte gEnemyParty _080345CC: movs r0, 0x64 muls r0, r5 ldr r1, _080345E4 @ =gEnemyParty adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0x3E bl SetMonData b _08034730 .align 2, 0 _080345E4: .4byte gEnemyParty _080345E8: movs r0, 0x64 muls r0, r5 ldr r1, _08034600 @ =gEnemyParty adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0x3F bl SetMonData b _08034730 .align 2, 0 _08034600: .4byte gEnemyParty _08034604: movs r0, 0x64 muls r0, r5 ldr r1, _0803461C @ =gEnemyParty adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0x16 bl SetMonData b _08034730 .align 2, 0 _0803461C: .4byte gEnemyParty _08034620: movs r0, 0x64 muls r0, r5 ldr r1, _08034638 @ =gEnemyParty adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0x17 bl SetMonData b _08034730 .align 2, 0 _08034638: .4byte gEnemyParty _0803463C: movs r0, 0x64 muls r0, r5 ldr r1, _08034654 @ =gEnemyParty adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0x18 bl SetMonData b _08034730 .align 2, 0 _08034654: .4byte gEnemyParty _08034658: movs r0, 0x64 muls r0, r5 ldr r1, _08034670 @ =gEnemyParty adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0x21 bl SetMonData b _08034730 .align 2, 0 _08034670: .4byte gEnemyParty _08034674: movs r0, 0x64 muls r0, r5 ldr r1, _0803468C @ =gEnemyParty adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0x2F bl SetMonData b _08034730 .align 2, 0 _0803468C: .4byte gEnemyParty _08034690: movs r0, 0x64 muls r0, r5 ldr r1, _080346A8 @ =gEnemyParty adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0x30 bl SetMonData b _08034730 .align 2, 0 _080346A8: .4byte gEnemyParty _080346AC: movs r0, 0x64 muls r0, r5 ldr r1, _080346C4 @ =gEnemyParty adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0x32 bl SetMonData b _08034730 .align 2, 0 _080346C4: .4byte gEnemyParty _080346C8: movs r0, 0x64 muls r0, r5 ldr r1, _080346E0 @ =gEnemyParty adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0x33 bl SetMonData b _08034730 .align 2, 0 _080346E0: .4byte gEnemyParty _080346E4: movs r0, 0x64 muls r0, r5 ldr r1, _080346FC @ =gEnemyParty adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0x34 bl SetMonData b _08034730 .align 2, 0 _080346FC: .4byte gEnemyParty _08034700: movs r0, 0x64 muls r0, r5 ldr r1, _08034718 @ =gEnemyParty adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0x35 bl SetMonData b _08034730 .align 2, 0 _08034718: .4byte gEnemyParty _0803471C: movs r0, 0x64 muls r0, r5 ldr r1, _08034740 @ =gEnemyParty adds r0, r1 ldrb r2, [r6] lsls r2, 9 adds r2, r3 movs r1, 0x36 bl SetMonData _08034730: add sp, 0x38 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08034740: .4byte gEnemyParty thumb_func_end sub_8033E24 thumb_func_start sub_8034744 sub_8034744: @ 8034744 push {r4-r7,lr} ldr r1, _080347A8 @ =gUnknown_02024A6A ldr r7, _080347AC @ =gUnknown_02024A60 ldrb r2, [r7] lsls r0, r2, 1 adds r0, r1 ldrh r1, [r0] movs r0, 0x64 adds r3, r1, 0 muls r3, r0 ldr r4, _080347B0 @ =gUnknown_02023A60 lsls r2, 9 adds r0, r4, 0x1 adds r0, r2, r0 ldrb r0, [r0] ldr r1, _080347B4 @ =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 _0803479C adds r6, r4, 0 adds r2, r7, 0 adds r4, r0, 0 _0803477A: adds r1, r5, r3 ldrb r0, [r2] lsls r0, 9 adds r0, 0x3 adds r0, r3, r0 adds r0, r6 ldrb r0, [r0] strb r0, [r1] adds r0, r3, 0x1 lsls r0, 24 lsrs r3, r0, 24 ldrb r0, [r2] lsls r0, 9 adds r0, r4 ldrb r0, [r0] cmp r3, r0 bcc _0803477A _0803479C: bl sub_80334EC pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080347A8: .4byte gUnknown_02024A6A _080347AC: .4byte gUnknown_02024A60 _080347B0: .4byte gUnknown_02023A60 _080347B4: .4byte gEnemyParty thumb_func_end sub_8034744 thumb_func_start sub_80347B8 sub_80347B8: @ 80347B8 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} ldr r6, _080348E8 @ =gUnknown_02024A60 ldrb r0, [r6] lsls r0, 1 ldr r1, _080348EC @ =gUnknown_02024A6A adds r0, r1 ldrh r0, [r0] movs r7, 0x64 muls r0, r7 ldr r2, _080348F0 @ =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, _080348EC @ =gUnknown_02024A6A adds r0, r2 ldrh r0, [r0] muls r0, r7 add r0, r10 bl sub_8031794 ldrb r0, [r6] bl battle_get_per_side_status adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 mov r0, r8 bl GetMonSpriteTemplate_803C56C ldr r0, _080348F4 @ =gUnknown_02024E8C mov r9, r0 ldrb r0, [r6] movs r1, 0x2 bl sub_8077ABC adds r5, r0, 0 lsls r5, 24 lsrs r5, 24 ldrb r0, [r6] bl sub_8077F68 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldrb r0, [r6] bl sub_8079E90 adds r3, r0, 0 lsls r3, 24 lsrs r3, 24 mov r0, r9 adds r1, r5, 0 adds r2, r4, 0 bl CreateSprite ldr r4, _080348F8 @ =gUnknown_02024BE0 ldrb r1, [r6] adds r1, r4 strb r0, [r1] ldr r5, _080348FC @ =gSprites ldrb r0, [r6] adds r0, r4 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 ldr r1, _08034900 @ =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, _08034904 @ =gBattleMonForms adds r2, r1 ldrb r1, [r2] bl StartSpriteAnim ldrb r4, [r6] lsls r0, r4, 1 ldr r2, _080348EC @ =gUnknown_02024A6A 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_8032984 ldr r1, _08034908 @ =gUnknown_03004330 ldrb r0, [r6] lsls r0, 2 adds r0, r1 ldr r1, _0803490C @ =sub_8033018 str r1, [r0] pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080348E8: .4byte gUnknown_02024A60 _080348EC: .4byte gUnknown_02024A6A _080348F0: .4byte gEnemyParty _080348F4: .4byte gUnknown_02024E8C _080348F8: .4byte gUnknown_02024BE0 _080348FC: .4byte gSprites _08034900: .4byte 0x0000ff10 _08034904: .4byte gBattleMonForms _08034908: .4byte gUnknown_03004330 _0803490C: .4byte sub_8033018 thumb_func_end sub_80347B8 thumb_func_start sub_8034910 sub_8034910: @ 8034910 push {r4,lr} ldr r1, _08034948 @ =gUnknown_02024A6A ldr r4, _0803494C @ =gUnknown_02024A60 ldrb r0, [r4] lsls r2, r0, 1 adds r2, r1 ldr r3, _08034950 @ =gUnknown_02023A60 lsls r0, 9 adds r1, r3, 0x1 adds r0, r1 ldrb r0, [r0] strh r0, [r2] ldrb r0, [r4] lsls r1, r0, 9 adds r3, 0x2 adds r1, r3 ldrb r1, [r1] bl sub_803495C ldr r1, _08034954 @ =gUnknown_03004330 ldrb r0, [r4] lsls r0, 2 adds r0, r1 ldr r1, _08034958 @ =sub_80333D4 str r1, [r0] pop {r4} pop {r0} bx r0 .align 2, 0 _08034948: .4byte gUnknown_02024A6A _0803494C: .4byte gUnknown_02024A60 _08034950: .4byte gUnknown_02023A60 _08034954: .4byte gUnknown_03004330 _08034958: .4byte sub_80333D4 thumb_func_end sub_8034910 thumb_func_start sub_803495C sub_803495C: @ 803495C push {r4-r6,lr} mov r6, r10 mov r5, r9 mov r4, r8 push {r4-r6} adds r6, r0, 0 lsls r6, 24 lsrs r6, 24 lsls r1, 24 lsrs r1, 24 adds r0, r6, 0 bl sub_8032AA8 ldr r0, _08034AB8 @ =gUnknown_02024A6A lsls r4, r6, 1 adds r4, r0 ldr r0, _08034ABC @ =gUnknown_02023A60 lsls r1, r6, 9 adds r0, 0x1 adds r1, r0 ldrb r0, [r1] strh r0, [r4] ldrh r0, [r4] movs r1, 0x64 mov r9, r1 mov r1, r9 muls r1, r0 adds r0, r1, 0 ldr r5, _08034AC0 @ =gEnemyParty adds r0, r5 movs r1, 0xB bl GetMonData mov r8, r0 lsls r0, 16 lsrs r0, 16 mov r8, r0 ldr r0, _08034AC4 @ =sub_80312F0 bl CreateInvisibleSpriteWithCallback ldr r1, _08034AC8 @ =gUnknown_0300434C mov r10, r1 add r10, r6 mov r1, r10 strb r0, [r1] ldrh r0, [r4] mov r1, r9 muls r1, r0 adds r0, r1, 0 adds r0, r5 adds r1, r6, 0 bl sub_8031794 adds r0, r6, 0 bl battle_get_per_side_status adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 mov r0, r8 bl GetMonSpriteTemplate_803C56C ldr r0, _08034ACC @ =gUnknown_02024E8C mov r9, r0 adds r0, r6, 0 movs r1, 0x2 bl sub_8077ABC adds r5, r0, 0 lsls r5, 24 lsrs r5, 24 adds r0, r6, 0 bl sub_8077F68 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 adds r0, r6, 0 bl sub_8079E90 adds r3, r0, 0 lsls r3, 24 lsrs r3, 24 mov r0, r9 adds r1, r5, 0 adds r2, r4, 0 bl CreateSprite ldr r4, _08034AD0 @ =gUnknown_02024BE0 adds r4, r6, r4 strb r0, [r4] ldr r5, _08034AD4 @ =gSprites ldrb r1, [r4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 strh r6, [r0, 0x2E] ldrb r1, [r4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 mov r1, r8 strh r1, [r0, 0x32] mov r0, r10 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 ldrb r1, [r4] strh r1, [r0, 0x30] ldrb r0, [r4] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r5 lsls r3, r6, 4 ldrb r2, [r1, 0x5] movs r0, 0xF ands r0, r2 orrs r0, r3 strb r0, [r1, 0x5] ldrb r1, [r4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 ldr r1, _08034AD8 @ =gBattleMonForms adds r6, r1 ldrb r1, [r6] bl StartSpriteAnim ldrb r1, [r4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 adds r0, 0x3E ldrb r1, [r0] movs r2, 0x4 orrs r1, r2 strb r1, [r0] ldrb r1, [r4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r1, r5, 0 adds r1, 0x1C adds r0, r1 ldr r1, _08034ADC @ =SpriteCallbackDummy str r1, [r0] movs r0, 0 movs r1, 0xFE bl sub_8046400 mov r1, r10 ldrb r2, [r1] lsls r1, r2, 4 adds r1, r2 lsls r1, 2 adds r1, r5 lsls r0, 24 lsrs r0, 24 strh r0, [r1, 0x2E] pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08034AB8: .4byte gUnknown_02024A6A _08034ABC: .4byte gUnknown_02023A60 _08034AC0: .4byte gEnemyParty _08034AC4: .4byte sub_80312F0 _08034AC8: .4byte gUnknown_0300434C _08034ACC: .4byte gUnknown_02024E8C _08034AD0: .4byte gUnknown_02024BE0 _08034AD4: .4byte gSprites _08034AD8: .4byte gBattleMonForms _08034ADC: .4byte SpriteCallbackDummy thumb_func_end sub_803495C thumb_func_start sub_8034AE0 sub_8034AE0: @ 8034AE0 push {r4-r6,lr} ldr r1, _08034B10 @ =gUnknown_02023A60 ldr r6, _08034B14 @ =gUnknown_02024A60 ldrb r2, [r6] lsls r0, r2, 9 adds r1, 0x1 adds r0, r1 ldrb r3, [r0] cmp r3, 0 bne _08034B24 lsls r0, r2, 1 adds r0, r2 lsls r0, 2 ldr r1, _08034B18 @ =0x02017810 adds r0, r1 strb r3, [r0, 0x4] ldr r1, _08034B1C @ =gUnknown_03004330 ldrb r0, [r6] lsls r0, 2 adds r0, r1 ldr r1, _08034B20 @ =sub_8034B74 str r1, [r0] b _08034B60 .align 2, 0 _08034B10: .4byte gUnknown_02023A60 _08034B14: .4byte gUnknown_02024A60 _08034B18: .4byte 0x02017810 _08034B1C: .4byte gUnknown_03004330 _08034B20: .4byte sub_8034B74 _08034B24: ldr r5, _08034B68 @ =gUnknown_02024BE0 adds r0, r2, r5 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r4, _08034B6C @ =gSprites adds r0, r4 bl FreeSpriteOamMatrix ldrb r0, [r6] adds r0, r5 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 bl DestroySprite ldrb r0, [r6] bl sub_8032A08 ldr r1, _08034B70 @ =gUnknown_03004340 ldrb r0, [r6] adds r0, r1 ldrb r0, [r0] bl sub_8043DB0 bl sub_80334EC _08034B60: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08034B68: .4byte gUnknown_02024BE0 _08034B6C: .4byte gSprites _08034B70: .4byte gUnknown_03004340 thumb_func_end sub_8034AE0 thumb_func_start sub_8034B74 sub_8034B74: @ 8034B74 push {r4,r5,lr} ldr r5, _08034B90 @ =gUnknown_02024A60 ldrb r2, [r5] lsls r0, r2, 1 adds r0, r2 lsls r0, 2 ldr r4, _08034B94 @ =0x02017810 adds r3, r0, r4 ldrb r0, [r3, 0x4] cmp r0, 0 beq _08034B98 cmp r0, 0x1 beq _08034BC4 b _08034BEC .align 2, 0 _08034B90: .4byte gUnknown_02024A60 _08034B94: .4byte 0x02017810 _08034B98: lsls r0, r2, 2 adds r1, r4, 0 subs r1, 0x10 adds r0, r1 ldrb r1, [r0] movs r0, 0x4 ands r0, r1 cmp r0, 0 beq _08034BB4 adds r0, r2, 0 adds r1, r2, 0 movs r3, 0x5 bl move_anim_start_t4 _08034BB4: ldrb r0, [r5] lsls r1, r0, 1 adds r1, r0 lsls r1, 2 adds r1, r4 movs r0, 0x1 strb r0, [r1, 0x4] b _08034BEC _08034BC4: ldrb r1, [r3] movs r0, 0x40 ands r0, r1 lsls r0, 24 lsrs r0, 24 cmp r0, 0 bne _08034BEC strb r0, [r3, 0x4] ldrb r2, [r5] adds r0, r2, 0 adds r1, r2, 0 movs r3, 0x2 bl move_anim_start_t4 ldr r1, _08034BF4 @ =gUnknown_03004330 ldrb r0, [r5] lsls r0, 2 adds r0, r1 ldr r1, _08034BF8 @ =sub_8033160 str r1, [r0] _08034BEC: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08034BF4: .4byte gUnknown_03004330 _08034BF8: .4byte sub_8033160 thumb_func_end sub_8034B74 thumb_func_start sub_8034BFC sub_8034BFC: @ 8034BFC push {r4-r6,lr} mov r6, r9 mov r5, r8 push {r5,r6} ldr r3, _08034C18 @ =gTrainerBattleOpponent ldrh r1, [r3] movs r0, 0x80 lsls r0, 3 cmp r1, r0 bne _08034C1C bl GetSecretBaseTrainerPicIndex b _08034C42 .align 2, 0 _08034C18: .4byte gTrainerBattleOpponent _08034C1C: ldr r0, _08034C30 @ =gBattleTypeFlags ldrh r1, [r0] movs r0, 0x80 lsls r0, 1 ands r0, r1 cmp r0, 0 beq _08034C34 bl get_trainer_class_pic_index b _08034C42 .align 2, 0 _08034C30: .4byte gBattleTypeFlags _08034C34: movs r0, 0x80 lsls r0, 4 ands r0, r1 cmp r0, 0 beq _08034C48 bl sub_8135FBC _08034C42: lsls r0, 24 lsrs r0, 24 b _08034C56 _08034C48: ldr r2, _08034D88 @ =gTrainers ldrh r1, [r3] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r2 ldrb r0, [r0, 0x3] _08034C56: mov r9, r0 ldr r0, _08034D8C @ =gUnknown_02024A60 mov r8, r0 ldrb r1, [r0] mov r0, r9 bl sub_8031A6C mov r1, r8 ldrb r0, [r1] bl battle_get_per_side_status adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 mov r0, r9 bl GetMonSpriteTemplate_803C5A0 ldr r5, _08034D90 @ =gUnknown_02024E8C ldr r1, _08034D94 @ =gTrainerFrontPicCoords mov r2, r9 lsls r0, r2, 2 adds r0, r1 ldrb r0, [r0] movs r4, 0x8 subs r4, r0 lsls r4, 18 movs r0, 0xA0 lsls r0, 14 adds r4, r0 asrs r4, 16 mov r1, r8 ldrb r0, [r1] bl sub_8079E90 adds r3, r0, 0 lsls r3, 24 lsrs r3, 24 adds r0, r5, 0 movs r1, 0xB0 adds r2, r4, 0 bl CreateSprite ldr r5, _08034D98 @ =gUnknown_02024BE0 mov r2, r8 ldrb r1, [r2] adds r1, r5 strb r0, [r1] ldr r4, _08034D9C @ =gSprites ldrb r0, [r2] adds r0, r5 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 ldr r1, _08034DA0 @ =0x0000ff10 strh r1, [r0, 0x24] ldrb r0, [r2] adds r0, r5 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 movs r1, 0x2 strh r1, [r0, 0x2E] ldr r0, _08034DA4 @ =gTrainerFrontPicPaletteTable mov r1, r9 lsls r6, r1, 3 adds r0, r6, r0 ldrh r0, [r0, 0x4] bl IndexOfSpritePaletteTag mov r2, r8 ldrb r1, [r2] adds r1, r5 ldrb r1, [r1] lsls r2, r1, 4 adds r2, r1 lsls r2, 2 adds r2, r4 lsls r0, 4 ldrb r3, [r2, 0x5] movs r1, 0xF ands r1, r3 orrs r1, r0 strb r1, [r2, 0x5] mov r1, r8 ldrb r0, [r1] adds r0, r5 ldrb r0, [r0] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r4 ldrh r0, [r1, 0x4] lsls r0, 22 lsrs r0, 22 strh r0, [r1, 0x38] ldr r0, _08034DA8 @ =gTrainerFrontPicTable adds r6, r0 ldrh r0, [r6, 0x6] bl GetSpriteTileStartByTag mov r2, r8 ldrb r1, [r2] adds r1, r5 ldrb r2, [r1] lsls r1, r2, 4 adds r1, r2 lsls r1, 2 adds r1, r4 ldr r2, _08034DAC @ =0x000003ff ands r2, r0 ldrh r3, [r1, 0x4] ldr r0, _08034DB0 @ =0xfffffc00 ands r0, r3 orrs r0, r2 strh r0, [r1, 0x4] mov r1, r8 ldrb r0, [r1] adds r0, r5 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 mov r2, r9 strh r2, [r0, 0x6] mov r1, r8 ldrb r0, [r1] adds r0, r5 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r4, 0x1C adds r0, r4 ldr r1, _08034DB4 @ =sub_80313A0 str r1, [r0] ldr r1, _08034DB8 @ =gUnknown_03004330 mov r2, r8 ldrb r0, [r2] lsls r0, 2 adds r0, r1 ldr r1, _08034DBC @ =sub_8032B4C str r1, [r0] pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08034D88: .4byte gTrainers _08034D8C: .4byte gUnknown_02024A60 _08034D90: .4byte gUnknown_02024E8C _08034D94: .4byte gTrainerFrontPicCoords _08034D98: .4byte gUnknown_02024BE0 _08034D9C: .4byte gSprites _08034DA0: .4byte 0x0000ff10 _08034DA4: .4byte gTrainerFrontPicPaletteTable _08034DA8: .4byte gTrainerFrontPicTable _08034DAC: .4byte 0x000003ff _08034DB0: .4byte 0xfffffc00 _08034DB4: .4byte sub_80313A0 _08034DB8: .4byte gUnknown_03004330 _08034DBC: .4byte sub_8032B4C thumb_func_end sub_8034BFC thumb_func_start sub_8034DC0 sub_8034DC0: @ 8034DC0 push {r4-r6,lr} mov r6, r9 mov r5, r8 push {r5,r6} ldr r3, _08034DDC @ =gTrainerBattleOpponent ldrh r1, [r3] movs r0, 0x80 lsls r0, 3 cmp r1, r0 bne _08034DE0 bl GetSecretBaseTrainerPicIndex b _08034E06 .align 2, 0 _08034DDC: .4byte gTrainerBattleOpponent _08034DE0: ldr r0, _08034DF4 @ =gBattleTypeFlags ldrh r1, [r0] movs r0, 0x80 lsls r0, 1 ands r0, r1 cmp r0, 0 beq _08034DF8 bl get_trainer_class_pic_index b _08034E06 .align 2, 0 _08034DF4: .4byte gBattleTypeFlags _08034DF8: movs r0, 0x80 lsls r0, 4 ands r0, r1 cmp r0, 0 beq _08034E0C bl sub_8135FBC _08034E06: lsls r0, 24 lsrs r0, 24 b _08034E1A _08034E0C: ldr r2, _08034F4C @ =gTrainers ldrh r1, [r3] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r2 ldrb r0, [r0, 0x3] _08034E1A: mov r9, r0 ldr r0, _08034F50 @ =gUnknown_02024A60 mov r8, r0 ldrb r1, [r0] mov r0, r9 bl sub_8031A6C mov r1, r8 ldrb r0, [r1] bl battle_get_per_side_status adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 mov r0, r9 bl GetMonSpriteTemplate_803C5A0 ldr r0, _08034F54 @ =gUnknown_02024E8C ldr r2, _08034F58 @ =gTrainerFrontPicCoords mov r3, r9 lsls r1, r3, 2 adds r1, r2 ldrb r1, [r1] movs r2, 0x8 subs r2, r1 lsls r2, 18 movs r1, 0xA0 lsls r1, 14 adds r2, r1 asrs r2, 16 movs r1, 0xB0 movs r3, 0x1E bl CreateSprite ldr r5, _08034F5C @ =gUnknown_02024BE0 mov r2, r8 ldrb r1, [r2] adds r1, r5 strb r0, [r1] ldr r4, _08034F60 @ =gSprites ldrb r0, [r2] adds r0, r5 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 movs r1, 0x60 strh r1, [r0, 0x24] ldrb r0, [r2] adds r0, r5 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 ldrh r1, [r0, 0x20] adds r1, 0x20 strh r1, [r0, 0x20] ldrb r0, [r2] adds r0, r5 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 ldr r1, _08034F64 @ =0x0000fffe strh r1, [r0, 0x2E] ldr r0, _08034F68 @ =gTrainerFrontPicPaletteTable mov r3, r9 lsls r6, r3, 3 adds r0, r6, r0 ldrh r0, [r0, 0x4] bl IndexOfSpritePaletteTag mov r2, r8 ldrb r1, [r2] adds r1, r5 ldrb r1, [r1] lsls r2, r1, 4 adds r2, r1 lsls r2, 2 adds r2, r4 lsls r0, 4 ldrb r3, [r2, 0x5] movs r1, 0xF ands r1, r3 orrs r1, r0 strb r1, [r2, 0x5] mov r3, r8 ldrb r0, [r3] adds r0, r5 ldrb r0, [r0] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r4 ldrh r0, [r1, 0x4] lsls r0, 22 lsrs r0, 22 strh r0, [r1, 0x38] ldr r0, _08034F6C @ =gTrainerFrontPicTable adds r6, r0 ldrh r0, [r6, 0x6] bl GetSpriteTileStartByTag mov r2, r8 ldrb r1, [r2] adds r1, r5 ldrb r2, [r1] lsls r1, r2, 4 adds r1, r2 lsls r1, 2 adds r1, r4 ldr r2, _08034F70 @ =0x000003ff ands r2, r0 ldrh r3, [r1, 0x4] ldr r0, _08034F74 @ =0xfffffc00 ands r0, r3 orrs r0, r2 strh r0, [r1, 0x4] mov r3, r8 ldrb r0, [r3] adds r0, r5 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 mov r1, r9 strh r1, [r0, 0x6] ldrb r0, [r3] adds r0, r5 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r4, 0x1C adds r0, r4 ldr r1, _08034F78 @ =sub_80313A0 str r1, [r0] ldr r1, _08034F7C @ =gUnknown_03004330 ldrb r0, [r3] lsls r0, 2 adds r0, r1 ldr r1, _08034F80 @ =sub_8032B84 str r1, [r0] pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08034F4C: .4byte gTrainers _08034F50: .4byte gUnknown_02024A60 _08034F54: .4byte gUnknown_02024E8C _08034F58: .4byte gTrainerFrontPicCoords _08034F5C: .4byte gUnknown_02024BE0 _08034F60: .4byte gSprites _08034F64: .4byte 0x0000fffe _08034F68: .4byte gTrainerFrontPicPaletteTable _08034F6C: .4byte gTrainerFrontPicTable _08034F70: .4byte 0x000003ff _08034F74: .4byte 0xfffffc00 _08034F78: .4byte sub_80313A0 _08034F7C: .4byte gUnknown_03004330 _08034F80: .4byte sub_8032B84 thumb_func_end sub_8034DC0 thumb_func_start sub_8034F84 sub_8034F84: @ 8034F84 push {r4-r6,lr} ldr r6, _08035014 @ =gUnknown_02024BE0 ldr r4, _08035018 @ =gUnknown_02024A60 ldrb r0, [r4] adds r0, r6 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r5, _0803501C @ =gSprites adds r0, r5 bl oamt_add_pos2_onto_pos1 ldrb r0, [r4] adds r0, r6 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 movs r1, 0x23 strh r1, [r0, 0x2E] ldrb r0, [r4] adds r0, r6 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 movs r1, 0x8C lsls r1, 1 strh r1, [r0, 0x32] ldrb r0, [r4] adds r0, r6 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 ldrh r1, [r0, 0x22] strh r1, [r0, 0x36] ldrb r0, [r4] adds r0, r6 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r1, r5, 0 adds r1, 0x1C adds r0, r1 ldr r1, _08035020 @ =sub_8078B34 str r1, [r0] ldrb r0, [r4] adds r0, r6 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 ldr r1, _08035024 @ =SpriteCallbackDummy bl oamt_set_x3A_32 ldr r1, _08035028 @ =gUnknown_03004330 ldrb r0, [r4] lsls r0, 2 adds r0, r1 ldr r1, _0803502C @ =sub_8032BBC str r1, [r0] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08035014: .4byte gUnknown_02024BE0 _08035018: .4byte gUnknown_02024A60 _0803501C: .4byte gSprites _08035020: .4byte sub_8078B34 _08035024: .4byte SpriteCallbackDummy _08035028: .4byte gUnknown_03004330 _0803502C: .4byte sub_8032BBC thumb_func_end sub_8034F84 thumb_func_start sub_8035030 sub_8035030: @ 8035030 push {r4,r5,lr} ldr r5, _08035074 @ =gUnknown_02024A60 ldrb r2, [r5] lsls r0, r2, 1 adds r0, r2 lsls r0, 2 ldr r4, _08035078 @ =0x02017810 adds r3, r0, r4 ldrb r0, [r3, 0x4] cmp r0, 0 bne _0803507C lsls r0, r2, 2 adds r1, r4, 0 subs r1, 0x10 adds r0, r1 ldrb r1, [r0] movs r0, 0x4 ands r0, r1 cmp r0, 0 beq _08035062 adds r0, r2, 0 adds r1, r2, 0 movs r3, 0x5 bl move_anim_start_t4 _08035062: ldrb r0, [r5] lsls r1, r0, 1 adds r1, r0 lsls r1, 2 adds r1, r4 ldrb r0, [r1, 0x4] adds r0, 0x1 strb r0, [r1, 0x4] b _080350B8 .align 2, 0 _08035074: .4byte gUnknown_02024A60 _08035078: .4byte 0x02017810 _0803507C: ldrb r1, [r3] movs r0, 0x40 ands r0, r1 lsls r0, 24 lsrs r0, 24 cmp r0, 0 bne _080350B8 strb r0, [r3, 0x4] movs r0, 0x10 movs r1, 0x3F bl PlaySE12WithPanning ldr r2, _080350C0 @ =gSprites ldr r1, _080350C4 @ =gUnknown_02024BE0 ldrb r0, [r5] adds r0, r1 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r2, 0x1C adds r0, r2 ldr r1, _080350C8 @ =sub_8010384 str r1, [r0] ldr r1, _080350CC @ =gUnknown_03004330 ldrb r0, [r5] lsls r0, 2 adds r0, r1 ldr r1, _080350D0 @ =sub_803311C str r1, [r0] _080350B8: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080350C0: .4byte gSprites _080350C4: .4byte gUnknown_02024BE0 _080350C8: .4byte sub_8010384 _080350CC: .4byte gUnknown_03004330 _080350D0: .4byte sub_803311C thumb_func_end sub_8035030 thumb_func_start sub_80350D4 sub_80350D4: @ 80350D4 push {lr} bl sub_80334EC pop {r0} bx r0 thumb_func_end sub_80350D4 thumb_func_start sub_80350E0 sub_80350E0: @ 80350E0 push {lr} bl sub_80334EC pop {r0} bx r0 thumb_func_end sub_80350E0 thumb_func_start sub_80350EC sub_80350EC: @ 80350EC push {lr} bl sub_80334EC pop {r0} bx r0 thumb_func_end sub_80350EC thumb_func_start sub_80350F8 sub_80350F8: @ 80350F8 push {lr} bl sub_80334EC pop {r0} bx r0 thumb_func_end sub_80350F8 thumb_func_start sub_8035104 sub_8035104: @ 8035104 push {r4-r6,lr} ldr r6, _080351E8 @ =gUnknown_02024A60 ldrb r0, [r6] bl mplay_80342A4 lsls r0, 24 cmp r0, 0 beq _08035116 b _08035226 _08035116: ldr r0, _080351EC @ =gUnknown_02023A60 mov r12, r0 ldrb r2, [r6] lsls r2, 9 adds r0, 0x1 adds r0, r2, r0 ldrb r0, [r0] mov r1, r12 adds r1, 0x2 adds r1, r2, r1 ldrb r1, [r1] lsls r1, 8 orrs r0, r1 ldr r5, _080351F0 @ =gUnknown_0202F7C4 mov r1, r12 adds r1, 0x3 adds r2, r1 ldrb r1, [r2] strb r1, [r5] ldr r4, _080351F4 @ =gUnknown_0202F7BC ldrb r2, [r6] lsls r2, 9 mov r1, r12 adds r1, 0x4 adds r1, r2, r1 ldrb r3, [r1] mov r1, r12 adds r1, 0x5 adds r2, r1 ldrb r1, [r2] lsls r1, 8 orrs r3, r1 strh r3, [r4] ldr r4, _080351F8 @ =gUnknown_0202F7B8 ldrb r2, [r6] lsls r2, 9 mov r1, r12 adds r1, 0x6 adds r1, r2, r1 ldrb r3, [r1] mov r1, r12 adds r1, 0x7 adds r1, r2, r1 ldrb r1, [r1] lsls r1, 8 orrs r3, r1 mov r1, r12 adds r1, 0x8 adds r1, r2, r1 ldrb r1, [r1] lsls r1, 16 orrs r3, r1 mov r1, r12 adds r1, 0x9 adds r2, r1 ldrb r1, [r2] lsls r1, 24 orrs r3, r1 str r3, [r4] ldr r3, _080351FC @ =gUnknown_0202F7BE ldrb r1, [r6] lsls r1, 9 mov r2, r12 adds r2, 0xA adds r1, r2 ldrb r1, [r1] strb r1, [r3] ldr r4, _08035200 @ =gUnknown_0202F7C0 ldrb r2, [r6] lsls r2, 9 mov r1, r12 adds r1, 0xC adds r1, r2, r1 ldrb r3, [r1] mov r1, r12 adds r1, 0xD adds r2, r1 ldrb r1, [r2] lsls r1, 8 orrs r3, r1 strh r3, [r4] ldr r3, _08035204 @ =gUnknown_0202F7B4 ldrb r2, [r6] lsls r2, 9 mov r1, r12 adds r1, 0x10 adds r2, r1 str r2, [r3] ldr r3, _08035208 @ =gUnknown_02024E70 ldrb r1, [r6] lsls r1, 2 adds r1, r3 ldr r2, [r2] str r2, [r1] ldrb r1, [r5] bl sub_8031720 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0 beq _0803520C bl sub_80334EC b _08035226 .align 2, 0 _080351E8: .4byte gUnknown_02024A60 _080351EC: .4byte gUnknown_02023A60 _080351F0: .4byte gUnknown_0202F7C4 _080351F4: .4byte gUnknown_0202F7BC _080351F8: .4byte gUnknown_0202F7B8 _080351FC: .4byte gUnknown_0202F7BE _08035200: .4byte gUnknown_0202F7C0 _08035204: .4byte gUnknown_0202F7B4 _08035208: .4byte gUnknown_02024E70 _0803520C: ldrb r1, [r6] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 ldr r1, _0803522C @ =0x02017810 adds r0, r1 strb r2, [r0, 0x4] ldr r1, _08035230 @ =gUnknown_03004330 ldrb r0, [r6] lsls r0, 2 adds r0, r1 ldr r1, _08035234 @ =sub_8035238 str r1, [r0] _08035226: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0803522C: .4byte 0x02017810 _08035230: .4byte gUnknown_03004330 _08035234: .4byte sub_8035238 thumb_func_end sub_8035104 thumb_func_start sub_8035238 sub_8035238: @ 8035238 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} ldr r2, _0803527C @ =gUnknown_02023A60 ldr r5, _08035280 @ =gUnknown_02024A60 ldrb r3, [r5] lsls r1, r3, 9 adds r0, r2, 0x1 mov r9, r0 adds r0, r1, r0 ldrb r4, [r0] adds r6, r2, 0x2 mov r8, r6 adds r0, r1, r6 ldrb r0, [r0] lsls r0, 8 orrs r4, r0 adds r2, 0xB adds r1, r2 ldrb r7, [r1] lsls r0, r3, 1 adds r0, r3 lsls r0, 2 ldr r6, _08035284 @ =0x02017810 adds r0, r6 ldrb r2, [r0, 0x4] cmp r2, 0x1 beq _080352C6 cmp r2, 0x1 bgt _08035288 cmp r2, 0 beq _08035292 b _08035390 .align 2, 0 _0803527C: .4byte gUnknown_02023A60 _08035280: .4byte gUnknown_02024A60 _08035284: .4byte 0x02017810 _08035288: cmp r2, 0x2 beq _080352EC cmp r2, 0x3 beq _08035358 b _08035390 _08035292: lsls r1, r3, 2 adds r0, r6, 0 subs r0, 0x10 adds r1, r0 ldrb r2, [r1] movs r0, 0xC ands r0, r2 cmp r0, 0x4 bne _080352B6 movs r0, 0x8 orrs r0, r2 strb r0, [r1] ldrb r2, [r5] adds r0, r2, 0 adds r1, r2, 0 movs r3, 0x5 bl move_anim_start_t4 _080352B6: ldrb r0, [r5] lsls r1, r0, 1 adds r1, r0 lsls r1, 2 adds r1, r6 movs r0, 0x1 strb r0, [r1, 0x4] b _08035390 _080352C6: ldrb r1, [r0] movs r0, 0x40 ands r0, r1 cmp r0, 0 bne _08035390 movs r0, 0 bl sub_80326EC adds r0, r4, 0 bl ExecuteMoveAnim ldrb r0, [r5] lsls r1, r0, 1 adds r1, r0 lsls r1, 2 adds r1, r6 movs r0, 0x2 strb r0, [r1, 0x4] b _08035390 _080352EC: ldr r0, _08035348 @ =gAnimScriptCallback ldr r0, [r0] bl _call_via_r0 ldr r0, _0803534C @ =gAnimScriptActive ldrb r0, [r0] cmp r0, 0 bne _08035390 movs r0, 0x1 bl sub_80326EC ldrb r2, [r5] lsls r0, r2, 2 adds r4, r6, 0 subs r4, 0x10 adds r0, r4 ldrb r1, [r0] movs r0, 0x4 ands r0, r1 cmp r0, 0 beq _08035334 cmp r7, 0x1 bhi _08035334 adds r0, r2, 0 adds r1, r2, 0 movs r3, 0x6 bl move_anim_start_t4 ldrb r0, [r5] lsls r0, 2 adds r0, r4 ldrb r2, [r0] movs r1, 0x9 negs r1, r1 ands r1, r2 strb r1, [r0] _08035334: ldr r0, _08035350 @ =gUnknown_02024A60 ldrb r1, [r0] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 ldr r1, _08035354 @ =0x02017810 adds r0, r1 movs r1, 0x3 strb r1, [r0, 0x4] b _08035390 .align 2, 0 _08035348: .4byte gAnimScriptCallback _0803534C: .4byte gAnimScriptActive _08035350: .4byte gUnknown_02024A60 _08035354: .4byte 0x02017810 _08035358: ldrb r1, [r0] movs r0, 0x40 ands r0, r1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0 bne _08035390 bl sub_8031F24 ldrb r0, [r5] lsls r2, r0, 9 mov r3, r9 adds r1, r2, r3 ldrb r1, [r1] add r2, r8 ldrb r2, [r2] lsls r2, 8 orrs r1, r2 bl sub_80324BC ldrb r1, [r5] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r6 strb r4, [r0, 0x4] bl sub_80334EC _08035390: pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8035238 thumb_func_start sub_803539C sub_803539C: @ 803539C push {r4,lr} sub sp, 0x4 ldr r0, _080353E0 @ =gUnknown_030042A4 movs r1, 0 strh r1, [r0] ldr r0, _080353E4 @ =gUnknown_030042A0 strh r1, [r0] ldr r4, _080353E8 @ =gUnknown_02024A60 ldrb r0, [r4] lsls r0, 9 ldr r1, _080353EC @ =gUnknown_02023A62 adds r0, r1 ldrh r0, [r0] bl sub_8120AA8 ldr r0, _080353F0 @ =gUnknown_03004210 ldr r1, _080353F4 @ =gUnknown_020238CC movs r2, 0xF str r2, [sp] movs r2, 0x90 movs r3, 0x2 bl sub_8002EB0 ldr r1, _080353F8 @ =gUnknown_03004330 ldrb r0, [r4] lsls r0, 2 adds r0, r1 ldr r1, _080353FC @ =sub_80331D0 str r1, [r0] add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _080353E0: .4byte gUnknown_030042A4 _080353E4: .4byte gUnknown_030042A0 _080353E8: .4byte gUnknown_02024A60 _080353EC: .4byte gUnknown_02023A62 _080353F0: .4byte gUnknown_03004210 _080353F4: .4byte gUnknown_020238CC _080353F8: .4byte gUnknown_03004330 _080353FC: .4byte sub_80331D0 thumb_func_end sub_803539C thumb_func_start sub_8035400 sub_8035400: @ 8035400 push {lr} bl sub_80334EC pop {r0} bx r0 thumb_func_end sub_8035400 thumb_func_start sub_803540C sub_803540C: @ 803540C push {lr} bl sub_8036B0C bl sub_80334EC pop {r0} bx r0 thumb_func_end sub_803540C thumb_func_start sub_803541C sub_803541C: @ 803541C push {lr} bl sub_80334EC pop {r0} bx r0 thumb_func_end sub_803541C thumb_func_start sub_8035428 sub_8035428: @ 8035428 push {r4-r6,lr} ldr r6, _0803545C @ =gUnknown_02024A60 ldrb r0, [r6] lsls r0, 9 ldr r1, _08035460 @ =gUnknown_02023A64 adds r5, r0, r1 ldr r0, _08035464 @ =gBattleTypeFlags ldrh r1, [r0] movs r0, 0x93 lsls r0, 3 ands r0, r1 cmp r0, 0 beq _080354F8 bl BattleAI_SetupAIData bl BattleAI_GetAIActionToUse lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x4 beq _08035468 cmp r4, 0x5 bne _08035474 movs r0, 0x1 movs r1, 0x4 b _0803546C .align 2, 0 _0803545C: .4byte gUnknown_02024A60 _08035460: .4byte gUnknown_02023A64 _08035464: .4byte gBattleTypeFlags _08035468: movs r0, 0x1 movs r1, 0x3 _0803546C: movs r2, 0 bl dp01_build_cmdbuf_x21_a_bb b _080354E0 _08035474: ldr r3, _080354E8 @ =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 _08035494 ldr r1, _080354EC @ =gEnemyMonIndex ldrb r0, [r6] strb r0, [r1] _08035494: ldrh r1, [r2] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r3 ldrb r1, [r0, 0x6] movs r0, 0x8 ands r0, r1 cmp r0, 0 beq _080354CE movs r0, 0 bl battle_get_side_with_given_state ldr r5, _080354EC @ =gEnemyMonIndex strb r0, [r5] ldr r0, _080354F0 @ =gUnknown_02024C0C ldrb r1, [r0] ldr r2, _080354F4 @ =gBitTable ldrb r0, [r5] lsls r0, 2 adds r0, r2 ldr r0, [r0] ands r1, r0 cmp r1, 0 beq _080354CE movs r0, 0x2 bl battle_get_side_with_given_state strb r0, [r5] _080354CE: ldr r0, _080354EC @ =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 _080354E0: bl sub_80334EC b _0803558A .align 2, 0 _080354E8: .4byte gBattleMoves _080354EC: .4byte gEnemyMonIndex _080354F0: .4byte gUnknown_02024C0C _080354F4: .4byte gBitTable _080354F8: movs r6, 0x3 _080354FA: bl Random adds r4, r0, 0 ands r4, r6 lsls r0, r4, 1 adds r0, r5, r0 ldrh r2, [r0] cmp r2, 0 beq _080354FA ldr r1, _08035534 @ =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 _0803553C ldr r0, _08035538 @ =gUnknown_02024A60 ldrb r0, [r0] lsls r0, 8 orrs r4, r0 movs r0, 0x1 movs r1, 0xA adds r2, r4, 0 bl dp01_build_cmdbuf_x21_a_bb b _08035586 .align 2, 0 _08035534: .4byte gBattleMoves _08035538: .4byte gUnknown_02024A60 _0803553C: ldr r0, _0803556C @ =gBattleTypeFlags ldrh r1, [r0] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _08035570 bl Random movs r1, 0x2 ands r1, r0 lsls r1, 24 lsrs r1, 24 adds r0, r1, 0 bl battle_get_side_with_given_state adds r2, r0, 0 lsls r2, 24 lsrs r2, 16 orrs r2, r4 movs r0, 0x1 movs r1, 0xA bl dp01_build_cmdbuf_x21_a_bb b _08035586 .align 2, 0 _0803556C: .4byte gBattleTypeFlags _08035570: movs r0, 0 bl battle_get_side_with_given_state adds r2, r0, 0 lsls r2, 24 lsrs r2, 16 orrs r2, r4 movs r0, 0x1 movs r1, 0xA bl dp01_build_cmdbuf_x21_a_bb _08035586: bl sub_80334EC _0803558A: pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_8035428 thumb_func_start sub_8035590 sub_8035590: @ 8035590 push {lr} ldr r1, _080355B4 @ =0x02000000 ldr r0, _080355B8 @ =gUnknown_02024A60 ldrb r0, [r0] lsrs r0, 1 lsls r0, 1 ldr r2, _080355BC @ =0x000160d4 adds r0, r2 adds r0, r1 ldrb r1, [r0] movs r0, 0x1 bl dp01_build_cmdbuf_x23_aa_0 bl sub_80334EC pop {r0} bx r0 .align 2, 0 _080355B4: .4byte 0x02000000 _080355B8: .4byte gUnknown_02024A60 _080355BC: .4byte 0x000160d4 thumb_func_end sub_8035590 thumb_func_start sub_80355C0 sub_80355C0: @ 80355C0 push {r4-r6,lr} ldr r6, _08035604 @ =0x02000000 ldr r5, _08035608 @ =gUnknown_02024A60 ldrb r0, [r5] bl battle_get_per_side_status lsls r0, 24 lsrs r0, 25 ldr r1, _0803560C @ =0x000160c8 adds r0, r1 adds r0, r6 ldrb r0, [r0] cmp r0, 0x6 bne _08035664 bl sub_8036CD4 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x6 bne _0803568A ldr r0, _08035610 @ =gBattleTypeFlags ldrh r1, [r0] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _08035614 movs r0, 0x1 bl battle_get_side_with_given_state lsls r0, 24 lsrs r5, r0, 24 adds r6, r5, 0 b _08035628 .align 2, 0 _08035604: .4byte 0x02000000 _08035608: .4byte gUnknown_02024A60 _0803560C: .4byte 0x000160c8 _08035610: .4byte gBattleTypeFlags _08035614: movs r0, 0x1 bl battle_get_side_with_given_state lsls r0, 24 lsrs r6, r0, 24 movs r0, 0x3 bl battle_get_side_with_given_state lsls r0, 24 lsrs r5, r0, 24 _08035628: movs r4, 0 b _0803562E _0803562C: adds r4, 0x1 _0803562E: cmp r4, 0x5 bgt _0803568A movs r0, 0x64 muls r0, r4 ldr r1, _0803565C @ =gEnemyParty adds r0, r1 movs r1, 0x39 bl GetMonData cmp r0, 0 beq _0803562C ldr r1, _08035660 @ =gUnknown_02024A6A lsls r0, r6, 1 adds r0, r1 ldrh r0, [r0] cmp r4, r0 beq _0803562C lsls r0, r5, 1 adds r0, r1 ldrh r0, [r0] cmp r4, r0 beq _0803562C b _0803568A .align 2, 0 _0803565C: .4byte gEnemyParty _08035660: .4byte gUnknown_02024A6A _08035664: ldrb r0, [r5] bl battle_get_per_side_status lsls r0, 24 lsrs r0, 25 ldr r2, _080356B0 @ =0x000160c8 adds r0, r2 adds r0, r6 ldrb r4, [r0] ldrb r0, [r5] bl battle_get_per_side_status lsls r0, 24 lsrs r0, 25 ldr r1, _080356B0 @ =0x000160c8 adds r0, r1 adds r0, r6 movs r1, 0x6 strb r1, [r0] _0803568A: ldr r1, _080356B4 @ =0x02000000 ldr r0, _080356B8 @ =gUnknown_02024A60 ldrb r0, [r0] ldr r2, _080356BC @ =0x00016068 adds r0, r2 adds r0, r1 strb r4, [r0] lsls r1, r4, 24 lsrs r1, 24 movs r0, 0x1 movs r2, 0 bl dp01_build_cmdbuf_x22_a_three_bytes bl sub_80334EC pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080356B0: .4byte 0x000160c8 _080356B4: .4byte 0x02000000 _080356B8: .4byte gUnknown_02024A60 _080356BC: .4byte 0x00016068 thumb_func_end sub_80355C0 thumb_func_start sub_80356C0 sub_80356C0: @ 80356C0 push {lr} bl sub_80334EC pop {r0} bx r0 thumb_func_end sub_80356C0 thumb_func_start sub_80356CC sub_80356CC: @ 80356CC push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x4 movs r0, 0 bl load_gfxc_health_bar ldr r3, _08035744 @ =gUnknown_02023A60 ldr r0, _08035748 @ =gUnknown_02024A60 mov r9, r0 ldrb r4, [r0] lsls r2, r4, 9 adds r0, r3, 0x3 adds r0, r2, r0 ldrb r1, [r0] lsls r1, 8 adds r3, 0x2 adds r2, r3 ldrb r0, [r2] orrs r0, r1 lsls r0, 16 asrs r7, r0, 16 ldr r0, _0803574C @ =0x00007fff cmp r7, r0 beq _0803575C ldr r6, _08035750 @ =gUnknown_02024A6A lsls r0, r4, 1 adds r0, r6 ldrh r0, [r0] movs r5, 0x64 muls r0, r5 ldr r4, _08035754 @ =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, _08035758 @ =gUnknown_03004340 adds r1, r0, r1 ldrb r1, [r1] str r7, [sp] mov r2, r8 bl sub_8043D84 b _08035786 .align 2, 0 _08035744: .4byte gUnknown_02023A60 _08035748: .4byte gUnknown_02024A60 _0803574C: .4byte 0x00007fff _08035750: .4byte gUnknown_02024A6A _08035754: .4byte gEnemyParty _08035758: .4byte gUnknown_03004340 _0803575C: ldr r1, _080357A4 @ =gUnknown_02024A6A lsls r0, r4, 1 adds r0, r1 ldrh r1, [r0] movs r0, 0x64 muls r0, r1 ldr r1, _080357A8 @ =gEnemyParty adds r0, r1 movs r1, 0x3A bl GetMonData adds r2, r0, 0 mov r1, r9 ldrb r0, [r1] ldr r1, _080357AC @ =gUnknown_03004340 adds r1, r0, r1 ldrb r1, [r1] str r7, [sp] movs r3, 0 bl sub_8043D84 _08035786: ldr r1, _080357B0 @ =gUnknown_03004330 ldr r0, _080357B4 @ =gUnknown_02024A60 ldrb r0, [r0] lsls r0, 2 adds r0, r1 ldr r1, _080357B8 @ =sub_80330C8 str r1, [r0] add sp, 0x4 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080357A4: .4byte gUnknown_02024A6A _080357A8: .4byte gEnemyParty _080357AC: .4byte gUnknown_03004340 _080357B0: .4byte gUnknown_03004330 _080357B4: .4byte gUnknown_02024A60 _080357B8: .4byte sub_80330C8 thumb_func_end sub_80356CC thumb_func_start sub_80357BC sub_80357BC: @ 80357BC push {lr} bl sub_80334EC pop {r0} bx r0 thumb_func_end sub_80357BC thumb_func_start sub_80357C8 sub_80357C8: @ 80357C8 push {r4,lr} ldr r4, _08035820 @ =gUnknown_02024A60 ldrb r0, [r4] bl mplay_80342A4 lsls r0, 24 cmp r0, 0 bne _08035818 ldr r0, _08035824 @ =gUnknown_03004340 ldrb r1, [r4] adds r0, r1, r0 ldrb r0, [r0] ldr r2, _08035828 @ =gUnknown_02024A6A lsls r1, 1 adds r1, r2 ldrh r2, [r1] movs r1, 0x64 muls r1, r2 ldr r2, _0803582C @ =gEnemyParty adds r1, r2 movs r2, 0x9 bl sub_8045A5C ldrb r0, [r4] lsls r1, r0, 1 adds r1, r0 lsls r1, 2 ldr r0, _08035830 @ =0x02017810 adds r1, r0 ldrb r2, [r1] movs r0, 0x11 negs r0, r0 ands r0, r2 strb r0, [r1] ldr r1, _08035834 @ =gUnknown_03004330 ldrb r0, [r4] lsls r0, 2 adds r0, r1 ldr r1, _08035838 @ =sub_8033494 str r1, [r0] _08035818: pop {r4} pop {r0} bx r0 .align 2, 0 _08035820: .4byte gUnknown_02024A60 _08035824: .4byte gUnknown_03004340 _08035828: .4byte gUnknown_02024A6A _0803582C: .4byte gEnemyParty _08035830: .4byte 0x02017810 _08035834: .4byte gUnknown_03004330 _08035838: .4byte sub_8033494 thumb_func_end sub_80357C8 thumb_func_start sub_803583C sub_803583C: @ 803583C push {r4,r5,lr} ldr r5, _08035894 @ =gUnknown_02024A60 ldrb r0, [r5] bl mplay_80342A4 lsls r0, 24 cmp r0, 0 bne _0803588C ldr r4, _08035898 @ =gUnknown_02023A60 ldrb r3, [r5] lsls r3, 9 adds r0, r4, 0x1 adds r0, r3, r0 ldrb r0, [r0] adds r1, r4, 0x2 adds r1, r3, r1 ldrb r1, [r1] adds r2, r4, 0x3 adds r2, r3, r2 ldrb r2, [r2] lsls r2, 8 orrs r1, r2 adds r2, r4, 0x4 adds r2, r3, r2 ldrb r2, [r2] lsls r2, 16 orrs r1, r2 adds r4, 0x5 adds r3, r4 ldrb r2, [r3] lsls r2, 24 orrs r1, r2 bl move_anim_start_t2_for_situation ldr r1, _0803589C @ =gUnknown_03004330 ldrb r0, [r5] lsls r0, 2 adds r0, r1 ldr r1, _080358A0 @ =sub_8033494 str r1, [r0] _0803588C: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08035894: .4byte gUnknown_02024A60 _08035898: .4byte gUnknown_02023A60 _0803589C: .4byte gUnknown_03004330 _080358A0: .4byte sub_8033494 thumb_func_end sub_803583C thumb_func_start sub_80358A4 sub_80358A4: @ 80358A4 push {lr} bl sub_80334EC pop {r0} bx r0 thumb_func_end sub_80358A4 thumb_func_start sub_80358B0 sub_80358B0: @ 80358B0 push {lr} bl sub_80334EC pop {r0} bx r0 thumb_func_end sub_80358B0 thumb_func_start sub_80358BC sub_80358BC: @ 80358BC push {lr} bl sub_80334EC pop {r0} bx r0 thumb_func_end sub_80358BC thumb_func_start sub_80358C8 sub_80358C8: @ 80358C8 push {lr} bl sub_80334EC pop {r0} bx r0 thumb_func_end sub_80358C8 thumb_func_start sub_80358D4 sub_80358D4: @ 80358D4 push {lr} bl sub_80334EC pop {r0} bx r0 thumb_func_end sub_80358D4 thumb_func_start sub_80358E0 sub_80358E0: @ 80358E0 push {lr} bl sub_80334EC pop {r0} bx r0 thumb_func_end sub_80358E0 thumb_func_start sub_80358EC sub_80358EC: @ 80358EC push {lr} bl sub_80334EC pop {r0} bx r0 thumb_func_end sub_80358EC thumb_func_start sub_80358F8 sub_80358F8: @ 80358F8 push {lr} bl sub_80334EC pop {r0} bx r0 thumb_func_end sub_80358F8 thumb_func_start sub_8035904 sub_8035904: @ 8035904 push {lr} bl sub_80334EC pop {r0} bx r0 thumb_func_end sub_8035904 thumb_func_start sub_8035910 sub_8035910: @ 8035910 push {lr} ldr r2, _08035928 @ =gUnknown_020238C8 ldrb r1, [r2] movs r0, 0x80 negs r0, r0 ands r0, r1 strb r0, [r2] bl sub_80334EC pop {r0} bx r0 .align 2, 0 _08035928: .4byte gUnknown_020238C8 thumb_func_end sub_8035910 thumb_func_start sub_803592C sub_803592C: @ 803592C push {lr} ldr r3, _08035958 @ =gUnknown_020238C8 ldr r1, _0803595C @ =gUnknown_02023A60 ldr r0, _08035960 @ =gUnknown_02024A60 ldrb r0, [r0] lsls r0, 9 adds r1, 0x1 adds r0, r1 ldrb r0, [r0] movs r1, 0x7F ands r1, r0 ldrb r2, [r3] movs r0, 0x80 negs r0, r0 ands r0, r2 orrs r0, r1 strb r0, [r3] bl sub_80334EC pop {r0} bx r0 .align 2, 0 _08035958: .4byte gUnknown_020238C8 _0803595C: .4byte gUnknown_02023A60 _08035960: .4byte gUnknown_02024A60 thumb_func_end sub_803592C thumb_func_start sub_8035964 sub_8035964: @ 8035964 push {lr} ldr r2, _08035978 @ =gUnknown_020238C8 ldrb r1, [r2] movs r0, 0x7F ands r0, r1 strb r0, [r2] bl sub_80334EC pop {r0} bx r0 .align 2, 0 _08035978: .4byte gUnknown_020238C8 thumb_func_end sub_8035964 thumb_func_start sub_803597C sub_803597C: @ 803597C push {lr} ldr r3, _080359A0 @ =gUnknown_020238C8 ldr r1, [r3] lsls r1, 24 lsrs r1, 31 movs r0, 0x1 eors r1, r0 lsls r1, 7 ldrb r2, [r3] movs r0, 0x7F ands r0, r2 orrs r0, r1 strb r0, [r3] bl sub_80334EC pop {r0} bx r0 .align 2, 0 _080359A0: .4byte gUnknown_020238C8 thumb_func_end sub_803597C thumb_func_start dp01t_29_7_blink dp01t_29_7_blink: @ 80359A4 push {r4,lr} ldr r3, _080359CC @ =gSprites ldr r2, _080359D0 @ =gUnknown_02024BE0 ldr r4, _080359D4 @ =gUnknown_02024A60 ldrb r0, [r4] adds r0, r2 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 adds r0, 0x3E ldrb r0, [r0] lsls r0, 29 cmp r0, 0 bge _080359D8 bl sub_80334EC b _08035A02 .align 2, 0 _080359CC: .4byte gSprites _080359D0: .4byte gUnknown_02024BE0 _080359D4: .4byte gUnknown_02024A60 _080359D8: ldr r1, _08035A08 @ =gUnknown_02024E6D movs r0, 0x1 strb r0, [r1] ldrb r0, [r4] adds r0, r2 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 movs r1, 0 strh r1, [r0, 0x30] ldrb r0, [r4] bl sub_8047858 ldr r1, _08035A0C @ =gUnknown_03004330 ldrb r0, [r4] lsls r0, 2 adds r0, r1 ldr r1, _08035A10 @ =bx_blink_t7 str r1, [r0] _08035A02: pop {r4} pop {r0} bx r0 .align 2, 0 _08035A08: .4byte gUnknown_02024E6D _08035A0C: .4byte gUnknown_03004330 _08035A10: .4byte bx_blink_t7 thumb_func_end dp01t_29_7_blink thumb_func_start sub_8035A14 sub_8035A14: @ 8035A14 push {lr} bl sub_80334EC pop {r0} bx r0 thumb_func_end sub_8035A14 thumb_func_start sub_8035A20 sub_8035A20: @ 8035A20 push {r4,lr} ldr r4, _08035A5C @ =gUnknown_02024A60 ldrb r0, [r4] bl battle_side_get_owner lsls r0, 24 movs r3, 0x3F cmp r0, 0 bne _08035A34 movs r3, 0xC0 _08035A34: ldr r2, _08035A60 @ =gUnknown_02023A60 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 PlaySE12WithPanning bl sub_80334EC pop {r4} pop {r0} bx r0 .align 2, 0 _08035A5C: .4byte gUnknown_02024A60 _08035A60: .4byte gUnknown_02023A60 thumb_func_end sub_8035A20 thumb_func_start sub_8035A64 sub_8035A64: @ 8035A64 push {lr} ldr r2, _08035A8C @ =gUnknown_02023A60 ldr r0, _08035A90 @ =gUnknown_02024A60 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 PlayFanfare bl sub_80334EC pop {r0} bx r0 .align 2, 0 _08035A8C: .4byte gUnknown_02023A60 _08035A90: .4byte gUnknown_02024A60 thumb_func_end sub_8035A64 thumb_func_start sub_8035A94 sub_8035A94: @ 8035A94 push {lr} ldr r1, _08035AC4 @ =gUnknown_02024A6A ldr r0, _08035AC8 @ =gUnknown_02024A60 ldrb r0, [r0] lsls r0, 1 adds r0, r1 ldrh r1, [r0] movs r0, 0x64 muls r0, r1 ldr r1, _08035ACC @ =gEnemyParty adds r0, r1 movs r1, 0xB bl GetMonData lsls r0, 16 lsrs r0, 16 movs r1, 0x19 movs r2, 0x5 bl PlayCry3 bl sub_80334EC pop {r0} bx r0 .align 2, 0 _08035AC4: .4byte gUnknown_02024A6A _08035AC8: .4byte gUnknown_02024A60 _08035ACC: .4byte gEnemyParty thumb_func_end sub_8035A94 thumb_func_start dp01t_2E_7_battle_intro dp01t_2E_7_battle_intro: @ 8035AD0 push {lr} ldr r1, _08035AF8 @ =gUnknown_02023A60 ldr r0, _08035AFC @ =gUnknown_02024A60 ldrb r0, [r0] lsls r0, 9 adds r1, 0x1 adds r0, r1 ldrb r0, [r0] bl sub_80E43C0 ldr r2, _08035B00 @ =gUnknown_02024DE8 ldrh r0, [r2] movs r1, 0x1 orrs r0, r1 strh r0, [r2] bl sub_80334EC pop {r0} bx r0 .align 2, 0 _08035AF8: .4byte gUnknown_02023A60 _08035AFC: .4byte gUnknown_02024A60 _08035B00: .4byte gUnknown_02024DE8 thumb_func_end dp01t_2E_7_battle_intro thumb_func_start sub_8035B04 sub_8035B04: @ 8035B04 push {r4-r6,lr} ldr r5, _08035BE0 @ =gUnknown_02024BE0 ldr r6, _08035BE4 @ =gUnknown_02024A60 ldrb r0, [r6] adds r0, r5 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r4, _08035BE8 @ =gSprites adds r0, r4 bl oamt_add_pos2_onto_pos1 ldrb r0, [r6] adds r0, r5 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 movs r1, 0x23 strh r1, [r0, 0x2E] ldrb r0, [r6] adds r0, r5 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 movs r1, 0x8C lsls r1, 1 strh r1, [r0, 0x32] ldrb r0, [r6] adds r0, r5 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 ldrh r1, [r0, 0x22] strh r1, [r0, 0x36] ldrb r0, [r6] adds r0, r5 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r1, r4, 0 adds r1, 0x1C adds r0, r1 ldr r1, _08035BEC @ =sub_8078B34 str r1, [r0] ldrb r0, [r6] adds r0, r5 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 ldr r1, _08035BF0 @ =sub_8035C10 bl oamt_set_x3A_32 ldr r0, _08035BF4 @ =sub_8035C44 movs r1, 0x5 bl CreateTask lsls r0, 24 lsrs r0, 24 ldr r4, _08035BF8 @ =gTasks lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r4 ldrb r0, [r6] strh r0, [r1, 0x8] ldrb r3, [r6] lsls r0, r3, 1 adds r0, r3 lsls r0, 2 ldr r2, _08035BFC @ =0x02017810 adds r0, r2 ldrb r1, [r0] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _08035BC2 ldr r0, _08035C00 @ =gUnknown_02024E68 adds r0, r3, r0 ldrb r1, [r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r4 ldr r1, _08035C04 @ =sub_8044CA0 str r1, [r0] _08035BC2: adds r2, 0x30 ldrb r0, [r2, 0x9] movs r1, 0x1 orrs r0, r1 strb r0, [r2, 0x9] ldr r1, _08035C08 @ =gUnknown_03004330 ldrb r0, [r6] lsls r0, 2 adds r0, r1 ldr r1, _08035C0C @ =nullsub_45 str r1, [r0] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08035BE0: .4byte gUnknown_02024BE0 _08035BE4: .4byte gUnknown_02024A60 _08035BE8: .4byte gSprites _08035BEC: .4byte sub_8078B34 _08035BF0: .4byte sub_8035C10 _08035BF4: .4byte sub_8035C44 _08035BF8: .4byte gTasks _08035BFC: .4byte 0x02017810 _08035C00: .4byte gUnknown_02024E68 _08035C04: .4byte sub_8044CA0 _08035C08: .4byte gUnknown_03004330 _08035C0C: .4byte nullsub_45 thumb_func_end sub_8035B04 thumb_func_start sub_8035C10 sub_8035C10: @ 8035C10 push {r4,lr} adds r4, r0, 0 ldrh r0, [r4, 0x6] bl sub_8031B74 ldrh r0, [r4, 0x38] ldr r1, _08035C3C @ =0x000003ff ands r1, r0 ldrh r2, [r4, 0x4] ldr r0, _08035C40 @ =0xfffffc00 ands r0, r2 orrs r0, r1 strh r0, [r4, 0x4] adds r0, r4, 0 bl FreeSpriteOamMatrix adds r0, r4, 0 bl DestroySprite pop {r4} pop {r0} bx r0 .align 2, 0 _08035C3C: .4byte 0x000003ff _08035C40: .4byte 0xfffffc00 thumb_func_end sub_8035C10 thumb_func_start sub_8035C44 sub_8035C44: @ 8035C44 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} lsls r0, 24 lsrs r0, 24 mov r8, r0 ldr r7, _08035C9C @ =gUnknown_02024A60 ldrb r0, [r7] mov r9, r0 ldr r1, _08035CA0 @ =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 IsDoubleBattle lsls r0, 24 cmp r0, 0 beq _08035C7E ldr r0, _08035CA4 @ =gBattleTypeFlags ldrh r1, [r0] movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _08035CB0 _08035C7E: ldr r0, _08035CA8 @ =gUnknown_02023A60 ldrb r1, [r7] lsls r2, r1, 9 adds r0, 0x1 adds r2, r0 ldr r0, _08035CAC @ =gUnknown_02024A6A lsls r1, 1 adds r1, r0 ldrh r0, [r1] strb r0, [r2] ldrb r0, [r7] movs r1, 0 bl sub_803495C b _08035CF0 .align 2, 0 _08035C9C: .4byte gUnknown_02024A60 _08035CA0: .4byte gTasks _08035CA4: .4byte gBattleTypeFlags _08035CA8: .4byte gUnknown_02023A60 _08035CAC: .4byte gUnknown_02024A6A _08035CB0: ldr r4, _08035D14 @ =gUnknown_02023A60 ldrb r0, [r7] lsls r1, r0, 9 adds r4, 0x1 adds r1, r4 ldr r6, _08035D18 @ =gUnknown_02024A6A lsls r0, 1 adds r0, r6 ldrh r0, [r0] strb r0, [r1] ldrb r0, [r7] movs r1, 0 bl sub_803495C ldrb r0, [r7] movs r5, 0x2 eors r0, r5 strb r0, [r7] ldrb r0, [r7] lsls r1, r0, 9 adds r1, r4 lsls r0, 1 adds r0, r6 ldrh r0, [r0] strb r0, [r1] ldrb r0, [r7] movs r1, 0 bl sub_803495C ldrb r0, [r7] eors r0, r5 strb r0, [r7] _08035CF0: ldr r1, _08035D1C @ =gUnknown_03004330 ldr r2, _08035D20 @ =gUnknown_02024A60 ldrb r0, [r2] lsls r0, 2 adds r0, r1 ldr r1, _08035D24 @ =sub_8032E2C str r1, [r0] mov r0, r9 strb r0, [r2] mov r0, r8 bl DestroyTask pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08035D14: .4byte gUnknown_02023A60 _08035D18: .4byte gUnknown_02024A6A _08035D1C: .4byte gUnknown_03004330 _08035D20: .4byte gUnknown_02024A60 _08035D24: .4byte sub_8032E2C thumb_func_end sub_8035C44 thumb_func_start dp01t_30_7_0803D67C dp01t_30_7_0803D67C: @ 8035D28 push {r4-r6,lr} ldr r1, _08035D50 @ =gUnknown_02023A60 ldr r0, _08035D54 @ =gUnknown_02024A60 ldrb r2, [r0] lsls r0, r2, 9 adds r1, 0x1 adds r0, r1 ldrb r0, [r0] cmp r0, 0 beq _08035D58 adds r0, r2, 0 bl battle_side_get_owner lsls r0, 24 cmp r0, 0 bne _08035D58 bl sub_80334EC b _08035E12 .align 2, 0 _08035D50: .4byte gUnknown_02023A60 _08035D54: .4byte gUnknown_02024A60 _08035D58: ldr r3, _08035DA8 @ =gUnknown_02024A60 ldrb r1, [r3] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 ldr r4, _08035DAC @ =0x02017810 adds r0, r4 ldrb r1, [r0] movs r2, 0x1 orrs r1, r2 strb r1, [r0] ldr r1, _08035DB0 @ =gUnknown_02023A60 ldrb r2, [r3] lsls r0, r2, 9 adds r1, 0x2 adds r0, r1 ldrb r0, [r0] adds r6, r3, 0 cmp r0, 0 beq _08035DBC lsls r0, r2, 1 adds r0, r2 lsls r0, 2 adds r3, r0, r4 ldrb r2, [r3, 0x1] lsls r1, r2, 26 lsrs r0, r1, 27 cmp r0, 0x1 bhi _08035DB4 adds r0, 0x1 movs r1, 0x1F ands r0, r1 lsls r0, 1 movs r1, 0x3F negs r1, r1 ands r1, r2 orrs r1, r0 strb r1, [r3, 0x1] b _08035E12 .align 2, 0 _08035DA8: .4byte gUnknown_02024A60 _08035DAC: .4byte 0x02017810 _08035DB0: .4byte gUnknown_02023A60 _08035DB4: movs r0, 0x3F negs r0, r0 ands r0, r2 strb r0, [r3, 0x1] _08035DBC: adds r5, r6, 0 ldrb r0, [r5] lsls r3, r0, 9 ldr r4, _08035E18 @ =gUnknown_02023A64 adds r1, r3, r4 subs r2, r4, 0x3 adds r2, r3, r2 ldrb r2, [r2] subs r4, 0x2 adds r3, r4 ldrb r3, [r3] bl sub_8044804 ldr r2, _08035E1C @ =gUnknown_02024E68 ldrb r1, [r5] adds r1, r2 movs r2, 0 strb r0, [r1] ldrb r1, [r5] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 ldr r3, _08035E20 @ =0x02017810 adds r0, r3 strb r2, [r0, 0x5] ldrb r1, [r5] lsls r0, r1, 9 adds r0, r4 ldrb r0, [r0] cmp r0, 0 beq _08035E06 lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r3 movs r1, 0x5D strb r1, [r0, 0x5] _08035E06: ldr r0, _08035E24 @ =gUnknown_03004330 ldrb r1, [r6] lsls r1, 2 adds r1, r0 ldr r0, _08035E28 @ =sub_8035E2C str r0, [r1] _08035E12: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08035E18: .4byte gUnknown_02023A64 _08035E1C: .4byte gUnknown_02024E68 _08035E20: .4byte 0x02017810 _08035E24: .4byte gUnknown_03004330 _08035E28: .4byte sub_8035E2C thumb_func_end dp01t_30_7_0803D67C thumb_func_start sub_8035E2C sub_8035E2C: @ 8035E2C push {r4,lr} ldr r4, _08035E64 @ =gUnknown_02024A60 ldrb r1, [r4] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 ldr r3, _08035E68 @ =0x02017810 adds r0, r3 ldrb r1, [r0, 0x5] adds r2, r1, 0x1 strb r2, [r0, 0x5] lsls r1, 24 lsrs r1, 24 cmp r1, 0x5C bls _08035E5C ldrb r0, [r4] lsls r1, r0, 1 adds r1, r0 lsls r1, 2 adds r1, r3 movs r0, 0 strb r0, [r1, 0x5] bl sub_80334EC _08035E5C: pop {r4} pop {r0} bx r0 .align 2, 0 _08035E64: .4byte gUnknown_02024A60 _08035E68: .4byte 0x02017810 thumb_func_end sub_8035E2C thumb_func_start sub_8035E6C sub_8035E6C: @ 8035E6C push {lr} ldr r0, _08035EA4 @ =gUnknown_02024A60 ldrb r3, [r0] lsls r0, r3, 1 adds r0, r3 lsls r0, 2 ldr r1, _08035EA8 @ =0x02017810 adds r0, r1 ldrb r1, [r0] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _08035E9A ldr r2, _08035EAC @ =gTasks ldr r0, _08035EB0 @ =gUnknown_02024E68 adds r0, r3, r0 ldrb r1, [r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r2 ldr r1, _08035EB4 @ =sub_8044CA0 str r1, [r0] _08035E9A: bl sub_80334EC pop {r0} bx r0 .align 2, 0 _08035EA4: .4byte gUnknown_02024A60 _08035EA8: .4byte 0x02017810 _08035EAC: .4byte gTasks _08035EB0: .4byte gUnknown_02024E68 _08035EB4: .4byte sub_8044CA0 thumb_func_end sub_8035E6C thumb_func_start sub_8035EB8 sub_8035EB8: @ 8035EB8 push {lr} bl sub_80334EC pop {r0} bx r0 thumb_func_end sub_8035EB8 thumb_func_start sub_8035EC4 sub_8035EC4: @ 8035EC4 push {r4,lr} ldr r4, _08035F14 @ =gUnknown_02024A60 ldrb r0, [r4] bl sub_8078874 lsls r0, 24 cmp r0, 0 beq _08035F0A ldr r3, _08035F18 @ =gSprites ldr r0, _08035F1C @ =gUnknown_02024BE0 ldrb r1, [r4] adds r0, r1, r0 ldrb r0, [r0] lsls r2, r0, 4 adds r2, r0 lsls r2, 2 adds r2, r3 ldr r0, _08035F20 @ =gUnknown_02023A60 lsls r1, 9 adds r0, 0x1 adds r1, r0 adds r2, 0x3E movs r0, 0x1 ldrb r1, [r1] ands r1, r0 lsls r1, 2 ldrb r3, [r2] movs r0, 0x5 negs r0, r0 ands r0, r3 orrs r0, r1 strb r0, [r2] ldrb r0, [r4] bl sub_8031F88 _08035F0A: bl sub_80334EC pop {r4} pop {r0} bx r0 .align 2, 0 _08035F14: .4byte gUnknown_02024A60 _08035F18: .4byte gSprites _08035F1C: .4byte gUnknown_02024BE0 _08035F20: .4byte gUnknown_02023A60 thumb_func_end sub_8035EC4 thumb_func_start dp01t_34_7_move_anim_start_t3 dp01t_34_7_move_anim_start_t3: @ 8035F24 push {r4-r6,lr} sub sp, 0x4 ldr r6, _08035F68 @ =gUnknown_02024A60 ldrb r0, [r6] bl mplay_80342A4 lsls r0, 24 cmp r0, 0 bne _08035F7C ldr r5, _08035F6C @ =gUnknown_02023A60 ldrb r2, [r6] lsls r1, r2, 9 adds r0, r5, 0x1 adds r0, r1, r0 ldrb r3, [r0] adds r0, r5, 0x2 adds r0, r1, r0 ldrb r4, [r0] adds r5, 0x3 adds r1, r5 ldrb r0, [r1] lsls r0, 8 orrs r4, r0 str r4, [sp] adds r0, r2, 0 adds r1, r2, 0 bl move_anim_start_t3 lsls r0, 24 cmp r0, 0 beq _08035F70 bl sub_80334EC b _08035F7C .align 2, 0 _08035F68: .4byte gUnknown_02024A60 _08035F6C: .4byte gUnknown_02023A60 _08035F70: ldr r0, _08035F84 @ =gUnknown_03004330 ldrb r1, [r6] lsls r1, 2 adds r1, r0 ldr r0, _08035F88 @ =sub_80334C0 str r0, [r1] _08035F7C: add sp, 0x4 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08035F84: .4byte gUnknown_03004330 _08035F88: .4byte sub_80334C0 thumb_func_end dp01t_34_7_move_anim_start_t3 thumb_func_start sub_8035F8C sub_8035F8C: @ 8035F8C push {lr} bl sub_80334EC pop {r0} bx r0 thumb_func_end sub_8035F8C thumb_func_start sub_8035F98 sub_8035F98: @ 8035F98 push {lr} bl sub_80334EC pop {r0} bx r0 thumb_func_end sub_8035F98 thumb_func_start sub_8035FA4 sub_8035FA4: @ 8035FA4 push {lr} ldr r0, _08035FD8 @ =gBattleTypeFlags ldrh r1, [r0] movs r0, 0x6 ands r0, r1 cmp r0, 0x2 bne _08035FCE ldr r2, _08035FDC @ =gMain ldr r0, _08035FE0 @ =0x0000043d adds r3, r2, r0 ldrb r1, [r3] movs r0, 0x3 negs r0, r0 ands r0, r1 strb r0, [r3] ldr r0, _08035FE4 @ =gUnknown_030042D0 ldr r0, [r0] str r0, [r2] ldr r0, [r2, 0x8] bl SetMainCallback2 _08035FCE: bl sub_80334EC pop {r0} bx r0 .align 2, 0 _08035FD8: .4byte gBattleTypeFlags _08035FDC: .4byte gMain _08035FE0: .4byte 0x0000043d _08035FE4: .4byte gUnknown_030042D0 thumb_func_end sub_8035FA4 thumb_func_start nullsub_46 nullsub_46: @ 8035FE8 bx lr thumb_func_end nullsub_46 .align 2, 0 @ Don't pad with nop.