.include "constants/gba_constants.inc" .include "constants/species_constants.inc" .include "asm/macros.inc" .syntax unified .text thumb_func_start sub_800B858 sub_800B858: @ 800B858 push {lr} ldr r0, _0800B87C @ =gUnknown_020239F8 ldrh r1, [r0] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _0800B876 bl OpenLink ldr r0, _0800B880 @ =sub_8083C50 movs r1, 0 bl CreateTask bl sub_800BF28 _0800B876: pop {r0} bx r0 .align 2, 0 _0800B87C: .4byte gUnknown_020239F8 _0800B880: .4byte sub_8083C50 thumb_func_end sub_800B858 thumb_func_start sub_800B884 sub_800B884: @ 800B884 push {r4-r7,lr} sub sp, 0x14 ldr r0, _0800B920 @ =gUnknown_030042D4 ldr r1, _0800B924 @ =nullsub_41 str r1, [r0] movs r0, 0 str r0, [sp, 0x10] movs r1, 0 ldr r7, _0800B928 @ =gUnknown_03004330 ldr r6, _0800B92C @ =gUnknown_02024E60 movs r2, 0 ldr r5, _0800B930 @ =gUnknown_02024E64 ldr r4, _0800B934 @ =nullsub_91 ldr r3, _0800B938 @ =gUnknown_02024A72 _0800B8A0: lsls r0, r1, 2 adds r0, r7 str r4, [r0] adds r1, r3 movs r0, 0xFF strb r0, [r1] ldr r0, [sp, 0x10] adds r0, r6 strb r2, [r0] ldr r0, [sp, 0x10] adds r0, r5 strb r2, [r0] ldr r0, [sp, 0x10] adds r0, 0x1 str r0, [sp, 0x10] adds r1, r0, 0 cmp r1, 0x3 ble _0800B8A0 bl sub_800B858 ldr r0, _0800B93C @ =gUnknown_02024A64 movs r5, 0 str r5, [r0] bl sub_8075624 bl sub_8040710 bl sub_81070D4 ldr r0, _0800B940 @ =gUnknown_020239F8 ldrh r1, [r0] movs r0, 0x10 ands r0, r1 cmp r0, 0 beq _0800B90E bl ZeroEnemyPartyMons ldr r4, _0800B944 @ =gEnemyParty movs r1, 0x8F lsls r1, 1 str r5, [sp] str r5, [sp, 0x4] str r5, [sp, 0x8] str r5, [sp, 0xC] adds r0, r4, 0 movs r2, 0x2 movs r3, 0x20 bl CreateMon str r5, [sp, 0x10] adds r0, r4, 0 movs r1, 0xC add r2, sp, 0x10 bl SetMonData _0800B90E: ldr r0, _0800B948 @ =gUnknown_020239FC str r5, [r0] ldr r0, _0800B94C @ =gUnknown_02024C78 strb r5, [r0] add sp, 0x14 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0800B920: .4byte gUnknown_030042D4 _0800B924: .4byte nullsub_41 _0800B928: .4byte gUnknown_03004330 _0800B92C: .4byte gUnknown_02024E60 _0800B930: .4byte gUnknown_02024E64 _0800B934: .4byte nullsub_91 _0800B938: .4byte gUnknown_02024A72 _0800B93C: .4byte gUnknown_02024A64 _0800B940: .4byte gUnknown_020239F8 _0800B944: .4byte gEnemyParty _0800B948: .4byte gUnknown_020239FC _0800B94C: .4byte gUnknown_02024C78 thumb_func_end sub_800B884 thumb_func_start sub_800B950 sub_800B950: @ 800B950 push {r4,r5,lr} ldr r0, _0800B964 @ =gUnknown_020239F8 ldrh r1, [r0] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _0800B968 bl sub_800BA78 b _0800B96C .align 2, 0 _0800B964: .4byte gUnknown_020239F8 _0800B968: bl sub_800B9A8 _0800B96C: bl sub_800BD54 ldr r0, _0800B9A0 @ =gUnknown_020239F8 ldrh r1, [r0] movs r0, 0x40 ands r0, r1 cmp r0, 0 bne _0800B99A movs r4, 0 ldr r0, _0800B9A4 @ =gUnknown_02024A68 ldrb r1, [r0] cmp r4, r1 bge _0800B99A adds r5, r0, 0 _0800B988: lsls r0, r4, 24 lsrs r0, 24 movs r1, 0 bl sub_8094978 adds r4, 0x1 ldrb r0, [r5] cmp r4, r0 blt _0800B988 _0800B99A: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0800B9A0: .4byte gUnknown_020239F8 _0800B9A4: .4byte gUnknown_02024A68 thumb_func_end sub_800B950 thumb_func_start sub_800B9A8 sub_800B9A8: @ 800B9A8 push {r4,lr} ldr r0, _0800B9CC @ =gUnknown_020239F8 ldrh r2, [r0] movs r0, 0x1 ands r0, r2 cmp r0, 0 bne _0800BA28 ldr r1, _0800B9D0 @ =gUnknown_030042D4 ldr r0, _0800B9D4 @ =sub_8010800 str r0, [r1] movs r0, 0x80 ands r0, r2 cmp r0, 0 beq _0800B9E0 ldr r1, _0800B9D8 @ =gUnknown_03004330 ldr r0, _0800B9DC @ =sub_812B468 b _0800B9FC .align 2, 0 _0800B9CC: .4byte gUnknown_020239F8 _0800B9D0: .4byte gUnknown_030042D4 _0800B9D4: .4byte sub_8010800 _0800B9D8: .4byte gUnknown_03004330 _0800B9DC: .4byte sub_812B468 _0800B9E0: movs r0, 0x80 lsls r0, 2 ands r0, r2 cmp r0, 0 beq _0800B9F8 ldr r1, _0800B9F0 @ =gUnknown_03004330 ldr r0, _0800B9F4 @ =sub_8137224 b _0800B9FC .align 2, 0 _0800B9F0: .4byte gUnknown_03004330 _0800B9F4: .4byte sub_8137224 _0800B9F8: ldr r1, _0800BA14 @ =gUnknown_03004330 ldr r0, _0800BA18 @ =sub_802BF74 _0800B9FC: str r0, [r1] adds r2, r1, 0 ldr r1, _0800BA1C @ =gUnknown_02024A72 movs r0, 0 strb r0, [r1] ldr r0, _0800BA20 @ =sub_8032AE0 str r0, [r2, 0x4] movs r0, 0x1 strb r0, [r1, 0x1] ldr r1, _0800BA24 @ =gUnknown_02024A68 movs r0, 0x2 b _0800BA52 .align 2, 0 _0800BA14: .4byte gUnknown_03004330 _0800BA18: .4byte sub_802BF74 _0800BA1C: .4byte gUnknown_02024A72 _0800BA20: .4byte sub_8032AE0 _0800BA24: .4byte gUnknown_02024A68 _0800BA28: ldr r1, _0800BA5C @ =gUnknown_030042D4 ldr r0, _0800BA60 @ =sub_8010800 str r0, [r1] ldr r2, _0800BA64 @ =gUnknown_03004330 ldr r4, _0800BA68 @ =sub_802BF74 str r4, [r2] ldr r1, _0800BA6C @ =gUnknown_02024A72 movs r0, 0 strb r0, [r1] ldr r3, _0800BA70 @ =sub_8032AE0 str r3, [r2, 0x4] movs r0, 0x1 strb r0, [r1, 0x1] str r4, [r2, 0x8] movs r0, 0x2 strb r0, [r1, 0x2] str r3, [r2, 0xC] movs r0, 0x3 strb r0, [r1, 0x3] ldr r1, _0800BA74 @ =gUnknown_02024A68 movs r0, 0x4 _0800BA52: strb r0, [r1] pop {r4} pop {r0} bx r0 .align 2, 0 _0800BA5C: .4byte gUnknown_030042D4 _0800BA60: .4byte sub_8010800 _0800BA64: .4byte gUnknown_03004330 _0800BA68: .4byte sub_802BF74 _0800BA6C: .4byte gUnknown_02024A72 _0800BA70: .4byte sub_8032AE0 _0800BA74: .4byte gUnknown_02024A68 thumb_func_end sub_800B9A8 thumb_func_start sub_800BA78 sub_800BA78: @ 800BA78 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} ldr r6, _0800BAB8 @ =gUnknown_020239F8 ldrh r1, [r6] movs r5, 0x1 movs r4, 0x1 ands r4, r1 cmp r4, 0 bne _0800BB04 movs r0, 0x4 ands r0, r1 lsls r0, 16 lsrs r3, r0, 16 cmp r3, 0 beq _0800BAD8 ldr r1, _0800BABC @ =gUnknown_030042D4 ldr r0, _0800BAC0 @ =sub_8010800 str r0, [r1] ldr r2, _0800BAC4 @ =gUnknown_03004330 ldr r0, _0800BAC8 @ =sub_802BF74 str r0, [r2] ldr r1, _0800BACC @ =gUnknown_02024A72 strb r4, [r1] ldr r0, _0800BAD0 @ =sub_8037510 str r0, [r2, 0x4] strb r5, [r1, 0x1] ldr r1, _0800BAD4 @ =gUnknown_02024A68 movs r0, 0x2 b _0800BD3E .align 2, 0 _0800BAB8: .4byte gUnknown_020239F8 _0800BABC: .4byte gUnknown_030042D4 _0800BAC0: .4byte sub_8010800 _0800BAC4: .4byte gUnknown_03004330 _0800BAC8: .4byte sub_802BF74 _0800BACC: .4byte gUnknown_02024A72 _0800BAD0: .4byte sub_8037510 _0800BAD4: .4byte gUnknown_02024A68 _0800BAD8: ldr r2, _0800BAF0 @ =gUnknown_03004330 ldr r0, _0800BAF4 @ =sub_802BF74 str r0, [r2, 0x4] ldr r1, _0800BAF8 @ =gUnknown_02024A72 strb r3, [r1, 0x1] ldr r0, _0800BAFC @ =sub_8037510 str r0, [r2] strb r5, [r1] ldr r1, _0800BB00 @ =gUnknown_02024A68 movs r0, 0x2 b _0800BD3E .align 2, 0 _0800BAF0: .4byte gUnknown_03004330 _0800BAF4: .4byte sub_802BF74 _0800BAF8: .4byte gUnknown_02024A72 _0800BAFC: .4byte sub_8037510 _0800BB00: .4byte gUnknown_02024A68 _0800BB04: movs r0, 0x41 ands r0, r1 cmp r0, 0x1 bne _0800BB90 movs r6, 0x4 movs r0, 0x4 ands r0, r1 lsls r0, 16 lsrs r3, r0, 16 cmp r3, 0 beq _0800BB58 ldr r1, _0800BB40 @ =gUnknown_030042D4 ldr r0, _0800BB44 @ =sub_8010800 str r0, [r1] ldr r2, _0800BB48 @ =gUnknown_03004330 ldr r4, _0800BB4C @ =sub_802BF74 str r4, [r2] ldr r1, _0800BB50 @ =gUnknown_02024A72 movs r0, 0 strb r0, [r1] ldr r3, _0800BB54 @ =sub_8037510 str r3, [r2, 0x4] strb r5, [r1, 0x1] str r4, [r2, 0x8] movs r0, 0x2 strb r0, [r1, 0x2] str r3, [r2, 0xC] movs r0, 0x3 strb r0, [r1, 0x3] b _0800BB74 .align 2, 0 _0800BB40: .4byte gUnknown_030042D4 _0800BB44: .4byte sub_8010800 _0800BB48: .4byte gUnknown_03004330 _0800BB4C: .4byte sub_802BF74 _0800BB50: .4byte gUnknown_02024A72 _0800BB54: .4byte sub_8037510 _0800BB58: ldr r2, _0800BB7C @ =gUnknown_03004330 ldr r0, _0800BB80 @ =sub_802BF74 str r0, [r2, 0x4] ldr r1, _0800BB84 @ =gUnknown_02024A72 strb r3, [r1, 0x1] ldr r3, _0800BB88 @ =sub_8037510 str r3, [r2] strb r5, [r1] str r0, [r2, 0xC] movs r0, 0x2 strb r0, [r1, 0x3] str r3, [r2, 0x8] movs r0, 0x3 strb r0, [r1, 0x2] _0800BB74: ldr r0, _0800BB8C @ =gUnknown_02024A68 strb r6, [r0] b _0800BD40 .align 2, 0 _0800BB7C: .4byte gUnknown_03004330 _0800BB80: .4byte sub_802BF74 _0800BB84: .4byte gUnknown_02024A72 _0800BB88: .4byte sub_8037510 _0800BB8C: .4byte gUnknown_02024A68 _0800BB90: bl GetMultiplayerId lsls r0, 24 lsrs r5, r0, 24 ldrh r1, [r6] movs r0, 0x4 ands r0, r1 cmp r0, 0 beq _0800BBA8 ldr r1, _0800BBD0 @ =gUnknown_030042D4 ldr r0, _0800BBD4 @ =sub_8010800 str r0, [r1] _0800BBA8: movs r0, 0 mov r10, r0 ldr r1, _0800BBD8 @ =gLinkPlayers mov r12, r1 ldr r7, _0800BBDC @ =gUnknown_02024A72 mov r8, r0 ldr r6, _0800BBE0 @ =gUnknown_02024A6A movs r4, 0 movs r2, 0x3 mov r9, r2 _0800BBBC: mov r1, r12 adds r0, r4, r1 ldrh r0, [r0, 0x18] cmp r0, 0x2 bgt _0800BBE4 cmp r0, 0x1 bge _0800BBFC cmp r0, 0 beq _0800BBE8 b _0800BC06 .align 2, 0 _0800BBD0: .4byte gUnknown_030042D4 _0800BBD4: .4byte sub_8010800 _0800BBD8: .4byte gLinkPlayers _0800BBDC: .4byte gUnknown_02024A72 _0800BBE0: .4byte gUnknown_02024A6A _0800BBE4: cmp r0, 0x3 bne _0800BC06 _0800BBE8: ldr r0, _0800BBF8 @ =gLinkPlayers adds r0, r4, r0 ldrb r0, [r0, 0x18] movs r1, 0 bl sub_8094978 b _0800BC06 .align 2, 0 _0800BBF8: .4byte gLinkPlayers _0800BBFC: lsls r0, 24 lsrs r0, 24 movs r1, 0x1 bl sub_8094978 _0800BC06: cmp r10, r5 bne _0800BC56 ldr r0, _0800BC2C @ =gLinkPlayers adds r3, r4, r0 ldrh r1, [r3, 0x18] lsls r1, 2 ldr r2, _0800BC30 @ =gUnknown_03004330 adds r1, r2 ldr r2, _0800BC34 @ =sub_802BF74 str r2, [r1] ldrh r1, [r3, 0x18] mov r12, r0 cmp r1, 0x2 bgt _0800BC38 cmp r1, 0x1 bge _0800BC4C cmp r1, 0 beq _0800BC3C b _0800BD2C .align 2, 0 _0800BC2C: .4byte gLinkPlayers _0800BC30: .4byte gUnknown_03004330 _0800BC34: .4byte sub_802BF74 _0800BC38: cmp r1, 0x3 bne _0800BD2C _0800BC3C: mov r1, r12 adds r0, r4, r1 ldrh r1, [r0, 0x18] adds r1, r7 mov r2, r8 strb r2, [r1] ldrh r0, [r0, 0x18] b _0800BD12 _0800BC4C: adds r1, r7 movs r0, 0x2 strb r0, [r1] ldrh r0, [r3, 0x18] b _0800BD24 _0800BC56: ldr r2, _0800BC7C @ =gLinkPlayers adds r0, r4, r2 ldrh r1, [r0, 0x18] movs r3, 0x1 adds r0, r3, 0 ands r0, r1 mov r12, r2 cmp r0, 0 bne _0800BC80 lsls r0, r5, 3 subs r0, r5 lsls r0, 2 add r0, r12 ldrh r1, [r0, 0x18] adds r0, r3, 0 ands r0, r1 cmp r0, 0 beq _0800BC92 b _0800BCD8 .align 2, 0 _0800BC7C: .4byte gLinkPlayers _0800BC80: lsls r0, r5, 3 subs r0, r5 lsls r0, 2 add r0, r12 ldrh r1, [r0, 0x18] adds r0, r3, 0 ands r0, r1 cmp r0, 0 beq _0800BCD8 _0800BC92: mov r0, r12 adds r2, r4, r0 ldrh r0, [r2, 0x18] lsls r0, 2 ldr r1, _0800BCB4 @ =gUnknown_03004330 adds r0, r1 ldr r1, _0800BCB8 @ =sub_811DA78 str r1, [r0] ldrh r1, [r2, 0x18] cmp r1, 0x2 bgt _0800BCBC cmp r1, 0x1 bge _0800BCD0 cmp r1, 0 beq _0800BCC0 b _0800BD2C .align 2, 0 _0800BCB4: .4byte gUnknown_03004330 _0800BCB8: .4byte sub_811DA78 _0800BCBC: cmp r1, 0x3 bne _0800BD2C _0800BCC0: mov r2, r12 adds r0, r4, r2 ldrh r1, [r0, 0x18] adds r1, r7 mov r2, r8 strb r2, [r1] ldrh r0, [r0, 0x18] b _0800BD12 _0800BCD0: adds r1, r7 movs r0, 0x2 strb r0, [r1] b _0800BD22 _0800BCD8: mov r0, r12 adds r2, r4, r0 ldrh r0, [r2, 0x18] lsls r0, 2 ldr r1, _0800BCF8 @ =gUnknown_03004330 adds r0, r1 ldr r1, _0800BCFC @ =sub_8037510 str r1, [r0] ldrh r0, [r2, 0x18] cmp r0, 0x2 bgt _0800BD00 cmp r0, 0x1 bge _0800BD1C cmp r0, 0 beq _0800BD04 b _0800BD2C .align 2, 0 _0800BCF8: .4byte gUnknown_03004330 _0800BCFC: .4byte sub_8037510 _0800BD00: cmp r0, 0x3 bne _0800BD2C _0800BD04: mov r0, r12 adds r2, r4, r0 ldrh r0, [r2, 0x18] adds r0, r7 movs r1, 0x1 strb r1, [r0] ldrh r0, [r2, 0x18] _0800BD12: lsls r0, 1 adds r0, r6 mov r1, r8 strh r1, [r0] b _0800BD2C _0800BD1C: adds r0, r7 mov r1, r9 strb r1, [r0] _0800BD22: ldrh r0, [r2, 0x18] _0800BD24: lsls r0, 1 adds r0, r6 mov r2, r9 strh r2, [r0] _0800BD2C: adds r4, 0x1C movs r0, 0x1 add r10, r0 mov r1, r10 cmp r1, 0x3 bgt _0800BD3A b _0800BBBC _0800BD3A: ldr r1, _0800BD50 @ =gUnknown_02024A68 movs r0, 0x4 _0800BD3E: strb r0, [r1] _0800BD40: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0800BD50: .4byte gUnknown_02024A68 thumb_func_end sub_800BA78 thumb_func_start sub_800BD54 sub_800BD54: @ 800BD54 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} ldr r0, _0800BD74 @ =gUnknown_020239F8 ldrh r1, [r0] movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _0800BD6C b _0800BE88 _0800BD6C: movs r0, 0 mov r8, r0 b _0800BE7E .align 2, 0 _0800BD74: .4byte gUnknown_020239F8 _0800BD78: movs r5, 0 movs r0, 0x1 add r0, r8 mov r10, r0 ldr r0, _0800BDA4 @ =gUnknown_02024A72 add r0, r8 mov r9, r0 mov r0, r8 lsls r6, r0, 1 movs r7, 0 _0800BD8C: mov r0, r8 cmp r0, 0x1 bgt _0800BDF4 mov r0, r9 ldrb r1, [r0] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _0800BDAC ldr r0, _0800BDA8 @ =gPlayerParty b _0800BDAE .align 2, 0 _0800BDA4: .4byte gUnknown_02024A72 _0800BDA8: .4byte gPlayerParty _0800BDAC: ldr r0, _0800BDEC @ =gEnemyParty _0800BDAE: adds r4, r7, r0 adds r0, r4, 0 movs r1, 0x39 bl GetMonData cmp r0, 0 beq _0800BE74 adds r0, r4, 0 movs r1, 0x41 bl GetMonData cmp r0, 0 beq _0800BE74 adds r0, r4, 0 movs r1, 0x41 bl GetMonData movs r1, 0xCE lsls r1, 1 cmp r0, r1 beq _0800BE74 adds r0, r4, 0 movs r1, 0x2D bl GetMonData cmp r0, 0 bne _0800BE74 ldr r0, _0800BDF0 @ =gUnknown_02024A6A adds r0, r6, r0 strh r5, [r0] b _0800BE7C .align 2, 0 _0800BDEC: .4byte gEnemyParty _0800BDF0: .4byte gUnknown_02024A6A _0800BDF4: mov r0, r9 ldrb r1, [r0] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _0800BE1C ldr r0, _0800BE18 @ =gPlayerParty adds r4, r7, r0 adds r0, r4, 0 movs r1, 0x39 bl GetMonData cmp r0, 0 beq _0800BE74 adds r0, r4, 0 movs r1, 0xB b _0800BE30 .align 2, 0 _0800BE18: .4byte gPlayerParty _0800BE1C: ldr r0, _0800BE6C @ =gEnemyParty adds r4, r7, r0 adds r0, r4, 0 movs r1, 0x39 bl GetMonData cmp r0, 0 beq _0800BE74 adds r0, r4, 0 movs r1, 0x41 _0800BE30: bl GetMonData cmp r0, 0 beq _0800BE74 adds r0, r4, 0 movs r1, 0x41 bl GetMonData movs r1, 0xCE lsls r1, 1 cmp r0, r1 beq _0800BE74 adds r0, r4, 0 movs r1, 0x2D bl GetMonData cmp r0, 0 bne _0800BE74 ldr r1, _0800BE70 @ =gUnknown_02024A6A mov r0, r8 subs r0, 0x2 lsls r0, 1 adds r0, r1 ldrh r0, [r0] cmp r0, r5 beq _0800BE74 adds r0, r6, r1 strh r5, [r0] b _0800BE7C .align 2, 0 _0800BE6C: .4byte gEnemyParty _0800BE70: .4byte gUnknown_02024A6A _0800BE74: adds r7, 0x64 adds r5, 0x1 cmp r5, 0x5 ble _0800BD8C _0800BE7C: mov r8, r10 _0800BE7E: ldr r0, _0800BE98 @ =gUnknown_02024A68 ldrb r0, [r0] cmp r8, r0 bge _0800BE88 b _0800BD78 _0800BE88: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0800BE98: .4byte gUnknown_02024A68 thumb_func_end sub_800BD54 thumb_func_start dp01_prepare_buffer dp01_prepare_buffer: @ 800BE9C push {r4-r6,lr} adds r4, r1, 0 lsls r0, 24 lsrs r3, r0, 24 adds r5, r3, 0 lsls r2, 16 lsrs r2, 16 ldr r0, _0800BEC4 @ =gUnknown_020239F8 ldrh r1, [r0] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _0800BEC8 adds r0, r3, 0 adds r1, r2, 0 adds r2, r4, 0 bl dp01_prepare_buffer_wireless_probably b _0800BF1A .align 2, 0 _0800BEC4: .4byte gUnknown_020239F8 _0800BEC8: cmp r5, 0 beq _0800BED2 cmp r5, 0x1 beq _0800BEFC b _0800BF1A _0800BED2: movs r3, 0 cmp r3, r2 bge _0800BF1A ldr r6, _0800BEF4 @ =gUnknown_02023A60 ldr r5, _0800BEF8 @ =gUnknown_02024A60 _0800BEDC: ldrb r0, [r5] lsls r0, 9 adds r0, r3, r0 adds r0, r6 ldrb r1, [r4] strb r1, [r0] adds r4, 0x1 adds r3, 0x1 cmp r3, r2 blt _0800BEDC b _0800BF1A .align 2, 0 _0800BEF4: .4byte gUnknown_02023A60 _0800BEF8: .4byte gUnknown_02024A60 _0800BEFC: movs r3, 0 cmp r3, r2 bge _0800BF1A ldr r6, _0800BF20 @ =gUnknown_02024260 ldr r5, _0800BF24 @ =gUnknown_02024A60 _0800BF06: ldrb r0, [r5] lsls r0, 9 adds r0, r3, r0 adds r0, r6 ldrb r1, [r4] strb r1, [r0] adds r4, 0x1 adds r3, 0x1 cmp r3, r2 blt _0800BF06 _0800BF1A: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0800BF20: .4byte gUnknown_02024260 _0800BF24: .4byte gUnknown_02024A60 thumb_func_end dp01_prepare_buffer thumb_func_start sub_800BF28 sub_800BF28: @ 800BF28 push {r4-r6,lr} sub sp, 0x4 ldr r0, _0800BFD0 @ =sub_800C1A8 movs r1, 0 bl CreateTask ldr r2, _0800BFD4 @ =gUnknown_020238C4 strb r0, [r2] ldr r5, _0800BFD8 @ =gTasks ldrb r1, [r2] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r5 movs r6, 0 movs r4, 0 strh r4, [r0, 0x1E] ldrb r1, [r2] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r5 strh r4, [r0, 0x20] ldrb r1, [r2] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r5 strh r4, [r0, 0x22] ldrb r1, [r2] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r5 strh r4, [r0, 0x24] ldrb r1, [r2] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r5 strh r4, [r0, 0x26] ldr r0, _0800BFDC @ =sub_800C47C movs r1, 0 bl CreateTask ldr r2, _0800BFE0 @ =gUnknown_020238C5 strb r0, [r2] ldrb r1, [r2] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r5 strh r4, [r0, 0x20] ldrb r1, [r2] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r5 strh r4, [r0, 0x22] ldrb r1, [r2] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r5 strh r4, [r0, 0x24] ldrb r1, [r2] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r5 strh r4, [r0, 0x26] ldr r0, _0800BFE4 @ =gUnknown_020238C6 strb r6, [r0] mov r0, sp strh r4, [r0] ldr r1, _0800BFE8 @ =0x02014000 ldr r2, _0800BFEC @ =0x01001000 bl CpuSet add sp, 0x4 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0800BFD0: .4byte sub_800C1A8 _0800BFD4: .4byte gUnknown_020238C4 _0800BFD8: .4byte gTasks _0800BFDC: .4byte sub_800C47C _0800BFE0: .4byte gUnknown_020238C5 _0800BFE4: .4byte gUnknown_020238C6 _0800BFE8: .4byte 0x02014000 _0800BFEC: .4byte 0x01001000 thumb_func_end sub_800BF28 thumb_func_start dp01_prepare_buffer_wireless_probably dp01_prepare_buffer_wireless_probably: @ 800BFF0 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} mov r10, r2 lsls r0, 24 lsrs r6, r0, 24 lsls r1, 16 lsrs r1, 16 mov r8, r1 movs r1, 0x3 mov r0, r8 bics r0, r1 adds r0, 0x4 mov r9, r0 ldr r2, _0800C168 @ =gTasks ldr r3, _0800C16C @ =gUnknown_020238C4 ldrb r1, [r3] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r4, r0, r2 movs r1, 0x24 ldrsh r0, [r4, r1] add r0, r9 adds r0, 0x9 movs r1, 0x80 lsls r1, 5 adds r5, r2, 0 cmp r0, r1 ble _0800C042 ldrh r0, [r4, 0x24] movs r2, 0 strh r0, [r4, 0x20] ldrb r1, [r3] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r5 strh r2, [r0, 0x24] _0800C042: ldr r4, _0800C170 @ =0x02000000 ldrb r1, [r3] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r5 movs r2, 0x24 ldrsh r0, [r0, r2] movs r7, 0xA0 lsls r7, 9 adds r0, r7 adds r0, r4 strb r6, [r0] ldrb r1, [r3] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r5 movs r1, 0x24 ldrsh r0, [r0, r1] ldr r2, _0800C174 @ =0x00014001 adds r0, r2 adds r0, r4 ldr r1, _0800C178 @ =gUnknown_02024A60 ldrb r1, [r1] strb r1, [r0] ldrb r1, [r3] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r5 movs r7, 0x24 ldrsh r0, [r0, r7] ldr r1, _0800C17C @ =0x00014002 adds r0, r1 adds r0, r4 ldr r1, _0800C180 @ =gUnknown_02024C07 ldrb r1, [r1] strb r1, [r0] ldrb r1, [r3] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r5 movs r2, 0x24 ldrsh r0, [r0, r2] ldr r7, _0800C184 @ =0x00014003 adds r0, r7 adds r0, r4 ldr r1, _0800C188 @ =gUnknown_02024C08 ldrb r1, [r1] strb r1, [r0] ldrb r1, [r3] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r5 movs r1, 0x24 ldrsh r0, [r0, r1] ldr r2, _0800C18C @ =0x00014004 adds r0, r2 adds r0, r4 mov r7, r9 strb r7, [r0] ldrb r1, [r3] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r5 movs r2, 0x24 ldrsh r1, [r0, r2] ldr r7, _0800C190 @ =0x00014005 adds r1, r7 adds r1, r4 movs r0, 0xFF lsls r0, 8 mov r2, r9 ands r0, r2 asrs r0, 8 strb r0, [r1] ldrb r1, [r3] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r5 movs r7, 0x24 ldrsh r0, [r0, r7] ldr r1, _0800C194 @ =0x00014006 adds r0, r1 adds r0, r4 ldr r1, _0800C198 @ =gUnknown_02024C0C ldrb r1, [r1] strb r1, [r0] ldrb r1, [r3] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r5 movs r2, 0x24 ldrsh r0, [r0, r2] ldr r7, _0800C19C @ =0x00014007 adds r0, r7 adds r0, r4 ldr r1, _0800C1A0 @ =gUnknown_02024C0A ldrb r1, [r1] strb r1, [r0] movs r2, 0 cmp r2, r8 bge _0800C146 mov r12, r4 adds r6, r3, 0 ldr r4, _0800C1A4 @ =0x00014008 _0800C122: ldrb r1, [r6] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 ldr r1, _0800C168 @ =gTasks adds r0, r1 movs r7, 0x24 ldrsh r1, [r0, r7] adds r0, r2, r4 adds r1, r0 add r1, r12 mov r7, r10 adds r0, r7, r2 ldrb r0, [r0] strb r0, [r1] adds r2, 0x1 cmp r2, r8 blt _0800C122 _0800C146: ldrb r0, [r3] lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r5 ldrh r0, [r1, 0x24] add r0, r9 adds r0, 0x8 strh r0, [r1, 0x24] pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0800C168: .4byte gTasks _0800C16C: .4byte gUnknown_020238C4 _0800C170: .4byte 0x02000000 _0800C174: .4byte 0x00014001 _0800C178: .4byte gUnknown_02024A60 _0800C17C: .4byte 0x00014002 _0800C180: .4byte gUnknown_02024C07 _0800C184: .4byte 0x00014003 _0800C188: .4byte gUnknown_02024C08 _0800C18C: .4byte 0x00014004 _0800C190: .4byte 0x00014005 _0800C194: .4byte 0x00014006 _0800C198: .4byte gUnknown_02024C0C _0800C19C: .4byte 0x00014007 _0800C1A0: .4byte gUnknown_02024C0A _0800C1A4: .4byte 0x00014008 thumb_func_end dp01_prepare_buffer_wireless_probably thumb_func_start sub_800C1A8 sub_800C1A8: @ 800C1A8 push {r4-r7,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r1, _0800C1D0 @ =gTasks lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 movs r2, 0x1E ldrsh r0, [r0, r2] adds r7, r1, 0 cmp r0, 0x5 bls _0800C1C4 b _0800C354 _0800C1C4: lsls r0, 2 ldr r1, _0800C1D4 @ =_0800C1D8 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0800C1D0: .4byte gTasks _0800C1D4: .4byte _0800C1D8 .align 2, 0 _0800C1D8: .4byte _0800C1F0 .4byte _0800C204 .4byte _0800C220 .4byte _0800C25C .4byte _0800C2E6 .4byte _0800C338 _0800C1F0: lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r7 movs r1, 0x64 strh r1, [r0, 0x1C] ldrh r1, [r0, 0x1E] adds r1, 0x1 strh r1, [r0, 0x1E] b _0800C354 _0800C204: lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r1, r0, r7 ldrh r0, [r1, 0x1C] subs r0, 0x1 strh r0, [r1, 0x1C] lsls r0, 16 cmp r0, 0 beq _0800C21A b _0800C354 _0800C21A: ldrh r0, [r1, 0x1E] adds r0, 0x1 b _0800C352 _0800C220: bl GetLinkPlayerCount_2 bl IsLinkMaster lsls r0, 24 cmp r0, 0 beq _0800C248 bl sub_8007F4C ldr r0, _0800C244 @ =gTasks lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 ldrh r0, [r1, 0x1E] adds r0, 0x1 b _0800C352 .align 2, 0 _0800C244: .4byte gTasks _0800C248: ldr r0, _0800C258 @ =gTasks lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 ldrh r0, [r1, 0x1E] adds r0, 0x1 b _0800C352 .align 2, 0 _0800C258: .4byte gTasks _0800C25C: lsls r1, r4, 2 adds r0, r1, r4 lsls r0, 3 adds r2, r0, r7 movs r5, 0x26 ldrsh r3, [r2, r5] movs r0, 0x24 ldrsh r6, [r2, r0] mov r12, r6 cmp r3, r12 beq _0800C354 ldrh r0, [r2, 0x22] movs r6, 0x22 ldrsh r5, [r2, r6] cmp r5, 0 bne _0800C2E0 cmp r3, r12 ble _0800C28C movs r6, 0x20 ldrsh r0, [r2, r6] cmp r3, r0 bne _0800C28C strh r5, [r2, 0x20] strh r5, [r2, 0x26] _0800C28C: ldr r5, _0800C2D4 @ =0x02000000 adds r4, r1, r4 lsls r4, 3 adds r4, r7 movs r0, 0x26 ldrsh r2, [r4, r0] ldr r1, _0800C2D8 @ =0x00014004 adds r0, r2, r1 adds r0, r5 ldrb r1, [r0] ldr r6, _0800C2DC @ =0x00014005 adds r2, r6 adds r2, r5 ldrb r0, [r2] lsls r0, 8 orrs r1, r0 adds r1, 0x8 lsls r1, 16 lsrs r6, r1, 16 bl bitmask_all_link_players_but_self lsls r0, 24 lsrs r0, 24 movs r2, 0x26 ldrsh r1, [r4, r2] movs r2, 0xA0 lsls r2, 9 adds r5, r2 adds r1, r5 adds r2, r6, 0 bl SendBlock ldrh r0, [r4, 0x1E] adds r0, 0x1 strh r0, [r4, 0x1E] b _0800C354 .align 2, 0 _0800C2D4: .4byte 0x02000000 _0800C2D8: .4byte 0x00014004 _0800C2DC: .4byte 0x00014005 _0800C2E0: subs r0, 0x1 strh r0, [r2, 0x22] b _0800C354 _0800C2E6: bl sub_8007ECC lsls r0, 24 cmp r0, 0 beq _0800C354 ldr r2, _0800C328 @ =0x02000000 ldr r0, _0800C32C @ =gTasks lsls r3, r4, 2 adds r3, r4 lsls r3, 3 adds r3, r0 movs r4, 0x26 ldrsh r1, [r3, r4] ldr r5, _0800C330 @ =0x00014004 adds r0, r1, r5 adds r0, r2 ldrb r0, [r0] ldr r6, _0800C334 @ =0x00014005 adds r1, r6 adds r1, r2 ldrb r1, [r1] lsls r1, 8 movs r2, 0x1 strh r2, [r3, 0x22] orrs r0, r1 ldrh r1, [r3, 0x26] adds r0, r1 adds r0, 0x8 strh r0, [r3, 0x26] movs r0, 0x3 strh r0, [r3, 0x1E] b _0800C354 .align 2, 0 _0800C328: .4byte 0x02000000 _0800C32C: .4byte gTasks _0800C330: .4byte 0x00014004 _0800C334: .4byte 0x00014005 _0800C338: lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r1, r0, r7 ldrh r0, [r1, 0x22] subs r0, 0x1 strh r0, [r1, 0x22] lsls r0, 16 cmp r0, 0 bne _0800C354 movs r0, 0x1 strh r0, [r1, 0x22] movs r0, 0x3 _0800C352: strh r0, [r1, 0x1E] _0800C354: pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_800C1A8 thumb_func_start sub_800C35C sub_800C35C: @ 800C35C push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} ldr r0, _0800C38C @ =gReceivedRemoteLinkPlayers ldrb r0, [r0] cmp r0, 0 beq _0800C458 ldr r0, _0800C390 @ =gUnknown_020239F8 ldrh r1, [r0] movs r0, 0x20 ands r0, r1 cmp r0, 0 beq _0800C458 ldr r0, _0800C394 @ =gLinkPlayers ldr r1, [r0, 0x14] ldr r0, _0800C398 @ =0x00002211 cmp r1, r0 bne _0800C458 movs r4, 0 ldr r0, _0800C39C @ =gBlockRecvBuffer mov r10, r0 b _0800C44C .align 2, 0 _0800C38C: .4byte gReceivedRemoteLinkPlayers _0800C390: .4byte gUnknown_020239F8 _0800C394: .4byte gLinkPlayers _0800C398: .4byte 0x00002211 _0800C39C: .4byte gBlockRecvBuffer _0800C3A0: bl GetBlockReceivedStatus lsls r0, 24 lsrs r0, 24 ldr r2, _0800C468 @ =gBitTable lsls r1, r4, 2 adds r1, r2 ldr r1, [r1] ands r0, r1 adds r1, r4, 0x1 mov r9, r1 cmp r0, 0 beq _0800C446 adds r0, r4, 0 bl ResetBlockReceivedFlag lsls r0, r4, 8 mov r2, r10 adds r3, r0, r2 ldr r1, _0800C46C @ =gBlockRecvBuffer + 0x4 adds r0, r1 ldrh r6, [r0] ldr r7, _0800C470 @ =gTasks ldr r2, _0800C474 @ =gUnknown_020238C5 mov r12, r2 ldrb r1, [r2] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r2, r0, r7 movs r0, 0x24 ldrsh r1, [r2, r0] adds r0, r6, 0 adds r0, 0x9 adds r1, r0 movs r0, 0x80 lsls r0, 5 cmp r1, r0 ble _0800C402 ldrh r0, [r2, 0x24] strh r0, [r2, 0x20] mov r2, r12 ldrb r1, [r2] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r7 movs r1, 0 strh r1, [r0, 0x24] _0800C402: mov r2, r12 ldrb r1, [r2] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r7 movs r2, 0x24 ldrsh r1, [r0, r2] ldr r0, _0800C478 @ =0x02015000 adds r5, r1, r0 adds r4, r3, 0 movs r2, 0 adds r3, r6, 0 adds r3, 0x8 mov r8, r7 mov r7, r12 cmp r2, r3 bge _0800C434 _0800C426: adds r0, r5, r2 adds r1, r4, r2 ldrb r1, [r1] strb r1, [r0] adds r2, 0x1 cmp r2, r3 blt _0800C426 _0800C434: ldrb r0, [r7] lsls r1, r0, 2 adds r1, r0 lsls r1, 3 add r1, r8 ldrh r0, [r1, 0x24] adds r0, r6, r0 adds r0, 0x8 strh r0, [r1, 0x24] _0800C446: mov r1, r9 lsls r0, r1, 24 lsrs r4, r0, 24 _0800C44C: bl GetLinkPlayerCount lsls r0, 24 lsrs r0, 24 cmp r4, r0 bcc _0800C3A0 _0800C458: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0800C468: .4byte gBitTable _0800C46C: .4byte gBlockRecvBuffer + 0x4 _0800C470: .4byte gTasks _0800C474: .4byte gUnknown_020238C5 _0800C478: .4byte 0x02015000 thumb_func_end sub_800C35C thumb_func_start sub_800C47C sub_800C47C: @ 800C47C push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} lsls r0, 24 lsrs r0, 24 mov r8, r0 ldr r1, _0800C4FC @ =gTasks lsls r0, 2 add r0, r8 lsls r0, 3 adds r3, r0, r1 movs r0, 0x26 ldrsh r2, [r3, r0] movs r4, 0x24 ldrsh r0, [r3, r4] adds r4, r1, 0 cmp r2, r0 bne _0800C4A4 b _0800C5FA _0800C4A4: cmp r2, r0 ble _0800C4B6 movs r1, 0x20 ldrsh r0, [r3, r1] cmp r2, r0 bne _0800C4B6 movs r0, 0 strh r0, [r3, 0x20] strh r0, [r3, 0x26] _0800C4B6: ldr r5, _0800C500 @ =0x02000000 mov r2, r8 lsls r1, r2, 2 adds r0, r1, r2 lsls r0, 3 adds r6, r0, r4 movs r4, 0x26 ldrsh r3, [r6, r4] ldr r2, _0800C504 @ =0x00015001 adds r0, r3, r2 adds r0, r5 ldrb r4, [r0] adds r2, 0x3 adds r0, r3, r2 adds r0, r5 ldrb r7, [r0] adds r2, 0x1 adds r0, r3, r2 adds r0, r5 ldrb r0, [r0] lsls r0, 8 orrs r7, r0 subs r2, 0x5 adds r0, r3, r2 adds r0, r5 ldrb r0, [r0] mov r9, r1 cmp r0, 0x1 beq _0800C5B0 cmp r0, 0x1 bgt _0800C508 cmp r0, 0 beq _0800C50E b _0800C5E8 .align 2, 0 _0800C4FC: .4byte gTasks _0800C500: .4byte 0x02000000 _0800C504: .4byte 0x00015001 _0800C508: cmp r0, 0x2 beq _0800C5CC b _0800C5E8 _0800C50E: ldr r2, _0800C588 @ =gUnknown_02024A64 ldr r1, _0800C58C @ =gBitTable lsls r0, r4, 2 adds r0, r1 ldr r1, [r2] ldr r0, [r0] ands r1, r0 cmp r1, 0 bne _0800C5FA lsls r0, r4, 9 ldr r1, _0800C590 @ =gUnknown_02023A60 adds r0, r1 ldr r2, _0800C594 @ =0x00015008 adds r1, r5, r2 adds r1, r3, r1 adds r2, r7, 0 bl memcpy adds r0, r4, 0 bl sub_80155A4 ldr r0, _0800C598 @ =gUnknown_020239F8 ldrh r1, [r0] movs r0, 0x4 ands r0, r1 cmp r0, 0 bne _0800C5E8 ldr r1, _0800C59C @ =gUnknown_02024C07 movs r4, 0x26 ldrsh r0, [r6, r4] ldr r2, _0800C5A0 @ =0x00015002 adds r0, r2 adds r0, r5 ldrb r0, [r0] strb r0, [r1] ldr r1, _0800C5A4 @ =gUnknown_02024C08 movs r4, 0x26 ldrsh r0, [r6, r4] adds r2, 0x1 adds r0, r2 adds r0, r5 ldrb r0, [r0] strb r0, [r1] ldr r1, _0800C5A8 @ =gUnknown_02024C0C movs r4, 0x26 ldrsh r0, [r6, r4] adds r2, 0x3 adds r0, r2 adds r0, r5 ldrb r0, [r0] strb r0, [r1] ldr r1, _0800C5AC @ =gUnknown_02024C0A movs r4, 0x26 ldrsh r0, [r6, r4] adds r2, 0x1 adds r0, r2 adds r0, r5 ldrb r0, [r0] strb r0, [r1] b _0800C5E8 .align 2, 0 _0800C588: .4byte gUnknown_02024A64 _0800C58C: .4byte gBitTable _0800C590: .4byte gUnknown_02023A60 _0800C594: .4byte 0x00015008 _0800C598: .4byte gUnknown_020239F8 _0800C59C: .4byte gUnknown_02024C07 _0800C5A0: .4byte 0x00015002 _0800C5A4: .4byte gUnknown_02024C08 _0800C5A8: .4byte gUnknown_02024C0C _0800C5AC: .4byte gUnknown_02024C0A _0800C5B0: lsls r0, r4, 9 ldr r1, _0800C5C4 @ =gUnknown_02024260 adds r0, r1 ldr r4, _0800C5C8 @ =0x00015008 adds r1, r5, r4 adds r1, r3, r1 adds r2, r7, 0 bl memcpy b _0800C5E8 .align 2, 0 _0800C5C4: .4byte gUnknown_02024260 _0800C5C8: .4byte 0x00015008 _0800C5CC: ldr r1, _0800C608 @ =0x00015008 adds r0, r3, r1 adds r0, r5 ldrb r2, [r0] ldr r3, _0800C60C @ =gUnknown_02024A64 ldr r1, _0800C610 @ =gBitTable lsls r0, r4, 2 adds r0, r1 lsls r2, 2 ldr r1, [r0] lsls r1, r2 ldr r0, [r3] bics r0, r1 str r0, [r3] _0800C5E8: ldr r0, _0800C614 @ =gTasks mov r1, r9 add r1, r8 lsls r1, 3 adds r1, r0 ldrh r0, [r1, 0x26] adds r0, r7, r0 adds r0, 0x8 strh r0, [r1, 0x26] _0800C5FA: pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0800C608: .4byte 0x00015008 _0800C60C: .4byte gUnknown_02024A64 _0800C610: .4byte gBitTable _0800C614: .4byte gTasks thumb_func_end sub_800C47C thumb_func_start dp01_build_cmdbuf_x00_a_b_0 dp01_build_cmdbuf_x00_a_b_0: @ 800C618 push {r4,lr} adds r4, r1, 0 lsls r0, 24 lsrs r0, 24 ldr r1, _0800C638 @ =gUnknown_03004040 movs r3, 0 strb r3, [r1] strb r4, [r1, 0x1] strb r2, [r1, 0x2] strb r3, [r1, 0x3] movs r2, 0x4 bl dp01_prepare_buffer pop {r4} pop {r0} bx r0 .align 2, 0 _0800C638: .4byte gUnknown_03004040 thumb_func_end dp01_build_cmdbuf_x00_a_b_0 thumb_func_start dp01_build_cmdbuf_x01_a_b_0 dp01_build_cmdbuf_x01_a_b_0: @ 800C63C push {r4,r5,lr} adds r5, r1, 0 lsls r0, 24 lsrs r0, 24 ldr r1, _0800C660 @ =gUnknown_03004040 movs r4, 0 movs r3, 0x1 strb r3, [r1] strb r5, [r1, 0x1] strb r2, [r1, 0x2] strb r4, [r1, 0x3] movs r2, 0x4 bl dp01_prepare_buffer pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0800C660: .4byte gUnknown_03004040 thumb_func_end dp01_build_cmdbuf_x01_a_b_0 thumb_func_start dp01_build_cmdbuf_x02_a_b_varargs dp01_build_cmdbuf_x02_a_b_varargs: @ 800C664 push {r4-r6,lr} ldr r4, [sp, 0x10] lsls r0, 24 lsrs r6, r0, 24 lsls r3, 24 lsrs r5, r3, 24 ldr r0, _0800C6A0 @ =gUnknown_03004040 movs r3, 0x2 strb r3, [r0] strb r1, [r0, 0x1] strb r2, [r0, 0x2] adds r1, r0, 0 cmp r5, 0 beq _0800C692 adds r3, r1, 0x3 adds r2, r5, 0 _0800C684: ldrb r0, [r4] strb r0, [r3] adds r4, 0x1 adds r3, 0x1 subs r2, 0x1 cmp r2, 0 bne _0800C684 _0800C692: adds r2, r5, 0x3 adds r0, r6, 0 bl dp01_prepare_buffer pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0800C6A0: .4byte gUnknown_03004040 thumb_func_end dp01_build_cmdbuf_x02_a_b_varargs thumb_func_start unref_sub_800C6A4 unref_sub_800C6A4: @ 800C6A4 push {r4-r6,lr} lsls r0, 24 lsrs r6, r0, 24 lsls r2, 24 lsrs r4, r2, 24 ldr r0, _0800C6E0 @ =gUnknown_03004040 movs r2, 0x3 strb r2, [r0] strb r1, [r0, 0x1] strb r4, [r0, 0x2] adds r5, r0, 0 cmp r4, 0 beq _0800C6D0 adds r1, r5, 0x3 adds r2, r4, 0 _0800C6C2: ldrb r0, [r3] strb r0, [r1] adds r3, 0x1 adds r1, 0x1 subs r2, 0x1 cmp r2, 0 bne _0800C6C2 _0800C6D0: adds r2, r4, 0x3 adds r0, r6, 0 adds r1, r5, 0 bl dp01_prepare_buffer pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0800C6E0: .4byte gUnknown_03004040 thumb_func_end unref_sub_800C6A4 thumb_func_start dp01_build_cmdbuf_x04_4_4_4 dp01_build_cmdbuf_x04_4_4_4: @ 800C6E4 push {lr} lsls r0, 24 lsrs r0, 24 ldr r1, _0800C700 @ =gUnknown_03004040 movs r2, 0x4 strb r2, [r1] strb r2, [r1, 0x1] strb r2, [r1, 0x2] strb r2, [r1, 0x3] bl dp01_prepare_buffer pop {r0} bx r0 .align 2, 0 _0800C700: .4byte gUnknown_03004040 thumb_func_end dp01_build_cmdbuf_x04_4_4_4 thumb_func_start sub_800C704 sub_800C704: @ 800C704 push {r4,lr} adds r4, r1, 0 lsls r0, 24 lsrs r0, 24 ldr r1, _0800C724 @ =gUnknown_03004040 movs r3, 0x5 strb r3, [r1] strb r4, [r1, 0x1] strb r2, [r1, 0x2] strb r3, [r1, 0x3] movs r2, 0x4 bl dp01_prepare_buffer pop {r4} pop {r0} bx r0 .align 2, 0 _0800C724: .4byte gUnknown_03004040 thumb_func_end sub_800C704 thumb_func_start dp01_build_cmdbuf_x06_a dp01_build_cmdbuf_x06_a: @ 800C728 push {lr} adds r3, r1, 0 lsls r0, 24 lsrs r0, 24 ldr r1, _0800C744 @ =gUnknown_03004040 movs r2, 0x6 strb r2, [r1] strb r3, [r1, 0x1] movs r2, 0x2 bl dp01_prepare_buffer pop {r0} bx r0 .align 2, 0 _0800C744: .4byte gUnknown_03004040 thumb_func_end dp01_build_cmdbuf_x06_a thumb_func_start dp01_build_cmdbuf_x07_7_7_7 dp01_build_cmdbuf_x07_7_7_7: @ 800C748 push {lr} lsls r0, 24 lsrs r0, 24 ldr r1, _0800C764 @ =gUnknown_03004040 movs r2, 0x7 strb r2, [r1] strb r2, [r1, 0x1] strb r2, [r1, 0x2] strb r2, [r1, 0x3] movs r2, 0x4 bl dp01_prepare_buffer pop {r0} bx r0 .align 2, 0 _0800C764: .4byte gUnknown_03004040 thumb_func_end dp01_build_cmdbuf_x07_7_7_7 thumb_func_start dp01_build_cmdbuf_x08_8_8_8 dp01_build_cmdbuf_x08_8_8_8: @ 800C768 push {lr} lsls r0, 24 lsrs r0, 24 ldr r1, _0800C784 @ =gUnknown_03004040 movs r2, 0x8 strb r2, [r1] strb r2, [r1, 0x1] strb r2, [r1, 0x2] strb r2, [r1, 0x3] movs r2, 0x4 bl dp01_prepare_buffer pop {r0} bx r0 .align 2, 0 _0800C784: .4byte gUnknown_03004040 thumb_func_end dp01_build_cmdbuf_x08_8_8_8 thumb_func_start dp01_build_cmdbuf_x09_9_9_9 dp01_build_cmdbuf_x09_9_9_9: @ 800C788 push {lr} lsls r0, 24 lsrs r0, 24 ldr r1, _0800C7A4 @ =gUnknown_03004040 movs r2, 0x9 strb r2, [r1] strb r2, [r1, 0x1] strb r2, [r1, 0x2] strb r2, [r1, 0x3] movs r2, 0x4 bl dp01_prepare_buffer pop {r0} bx r0 .align 2, 0 _0800C7A4: .4byte gUnknown_03004040 thumb_func_end dp01_build_cmdbuf_x09_9_9_9 thumb_func_start dp01_build_cmdbuf_x0A_A_A_A dp01_build_cmdbuf_x0A_A_A_A: @ 800C7A8 push {lr} lsls r0, 24 lsrs r0, 24 ldr r1, _0800C7C4 @ =gUnknown_03004040 movs r2, 0xA strb r2, [r1] strb r2, [r1, 0x1] strb r2, [r1, 0x2] strb r2, [r1, 0x3] movs r2, 0x4 bl dp01_prepare_buffer pop {r0} bx r0 .align 2, 0 _0800C7C4: .4byte gUnknown_03004040 thumb_func_end dp01_build_cmdbuf_x0A_A_A_A thumb_func_start dp01_build_cmdbuf_x0B_B_B_B dp01_build_cmdbuf_x0B_B_B_B: @ 800C7C8 push {lr} lsls r0, 24 lsrs r0, 24 ldr r1, _0800C7E4 @ =gUnknown_03004040 movs r2, 0xB strb r2, [r1] strb r2, [r1, 0x1] strb r2, [r1, 0x2] strb r2, [r1, 0x3] movs r2, 0x4 bl dp01_prepare_buffer pop {r0} bx r0 .align 2, 0 _0800C7E4: .4byte gUnknown_03004040 thumb_func_end dp01_build_cmdbuf_x0B_B_B_B thumb_func_start dp01_build_cmdbuf_x0C_C_C_C dp01_build_cmdbuf_x0C_C_C_C: @ 800C7E8 push {lr} lsls r0, 24 lsrs r0, 24 ldr r1, _0800C804 @ =gUnknown_03004040 movs r2, 0xC strb r2, [r1] strb r2, [r1, 0x1] strb r2, [r1, 0x2] strb r2, [r1, 0x3] movs r2, 0x4 bl dp01_prepare_buffer pop {r0} bx r0 .align 2, 0 _0800C804: .4byte gUnknown_03004040 thumb_func_end dp01_build_cmdbuf_x0C_C_C_C thumb_func_start dp01_build_cmdbuf_x0D_a dp01_build_cmdbuf_x0D_a: @ 800C808 push {lr} adds r3, r1, 0 lsls r0, 24 lsrs r0, 24 ldr r1, _0800C824 @ =gUnknown_03004040 movs r2, 0xD strb r2, [r1] strb r3, [r1, 0x1] movs r2, 0x2 bl dp01_prepare_buffer pop {r0} bx r0 .align 2, 0 _0800C824: .4byte gUnknown_03004040 thumb_func_end dp01_build_cmdbuf_x0D_a thumb_func_start unref_sub_800C828 unref_sub_800C828: @ 800C828 push {r4-r6,lr} lsls r0, 24 lsrs r6, r0, 24 lsls r1, 24 lsrs r4, r1, 24 ldr r1, _0800C86C @ =gUnknown_03004040 movs r0, 0xE strb r0, [r1] strb r4, [r1, 0x1] lsls r0, r4, 1 adds r0, r4 adds r5, r1, 0 cmp r0, 0 beq _0800C856 adds r1, r5, 0x2 adds r3, r0, 0 _0800C848: ldrb r0, [r2] strb r0, [r1] adds r2, 0x1 adds r1, 0x1 subs r3, 0x1 cmp r3, 0 bne _0800C848 _0800C856: lsls r2, r4, 1 adds r2, r4 adds r2, 0x2 adds r0, r6, 0 adds r1, r5, 0 bl dp01_prepare_buffer pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0800C86C: .4byte gUnknown_03004040 thumb_func_end unref_sub_800C828 thumb_func_start dp01_build_cmdbuf_x0F_aa_b_cc_dddd_e_mlc_weather_00_x1Cbytes dp01_build_cmdbuf_x0F_aa_b_cc_dddd_e_mlc_weather_00_x1Cbytes: @ 800C870 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x4 ldr r4, [sp, 0x1C] ldr r5, [sp, 0x20] lsls r0, 24 lsrs r0, 24 mov r8, r0 lsls r1, 16 lsrs r1, 16 lsls r3, 16 lsrs r3, 16 ldr r7, _0800C904 @ =gUnknown_03004040 movs r0, 0 mov r12, r0 movs r0, 0xF strb r0, [r7] strb r1, [r7, 0x1] lsrs r1, 8 strb r1, [r7, 0x2] strb r2, [r7, 0x3] strb r3, [r7, 0x4] movs r6, 0xFF lsls r6, 8 lsrs r3, 8 strb r3, [r7, 0x5] strb r4, [r7, 0x6] adds r0, r4, 0 ands r0, r6 asrs r0, 8 strb r0, [r7, 0x7] movs r0, 0xFF lsls r0, 16 ands r0, r4 asrs r0, 16 strb r0, [r7, 0x8] lsrs r4, 24 strb r4, [r7, 0x9] strb r5, [r7, 0xA] ldr r0, _0800C908 @ =gUnknown_02024C0E ldrb r0, [r0] strb r0, [r7, 0xB] mov r0, r12 str r0, [sp] movs r0, 0xE movs r1, 0 movs r2, 0xD movs r3, 0 bl sub_8018324 lsls r0, 24 lsrs r0, 24 cmp r0, 0 bne _0800C910 str r0, [sp] movs r0, 0xE movs r1, 0 movs r2, 0x4D movs r3, 0 bl sub_8018324 lsls r0, 24 cmp r0, 0 bne _0800C910 ldr r0, _0800C90C @ =word_2024DB8 ldrh r0, [r0] strb r0, [r7, 0xC] ands r6, r0 lsrs r0, r6, 8 strb r0, [r7, 0xD] adds r4, r7, 0 b _0800C91A .align 2, 0 _0800C904: .4byte gUnknown_03004040 _0800C908: .4byte gUnknown_02024C0E _0800C90C: .4byte word_2024DB8 _0800C910: ldr r0, _0800C944 @ =gUnknown_03004040 movs r1, 0 strb r1, [r0, 0xC] strb r1, [r0, 0xD] adds r4, r0, 0 _0800C91A: movs r0, 0 strb r0, [r4, 0xE] strb r0, [r4, 0xF] adds r0, r4, 0 adds r0, 0x10 ldr r1, [sp, 0x24] movs r2, 0x1C bl memcpy mov r0, r8 adds r1, r4, 0 movs r2, 0x2C bl dp01_prepare_buffer add sp, 0x4 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0800C944: .4byte gUnknown_03004040 thumb_func_end dp01_build_cmdbuf_x0F_aa_b_cc_dddd_e_mlc_weather_00_x1Cbytes thumb_func_start dp01_build_cmdbuf_x10_TODO dp01_build_cmdbuf_x10_TODO: @ 800C948 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} lsls r0, 24 lsrs r0, 24 mov r10, r0 lsls r1, 16 lsrs r1, 16 ldr r2, _0800CA2C @ =gUnknown_03004040 movs r0, 0x10 strb r0, [r2] ldr r0, _0800CA30 @ =gUnknown_02024D26 ldrb r0, [r0] strb r0, [r2, 0x1] strb r1, [r2, 0x2] lsrs r1, 8 strb r1, [r2, 0x3] adds r0, r2, 0x4 mov r12, r0 ldr r4, _0800CA34 @ =gUnknown_02024BE6 ldrh r0, [r4] strh r0, [r2, 0x4] ldr r0, _0800CA38 @ =gUnknown_02024BE8 ldrh r0, [r0] mov r1, r12 strh r0, [r1, 0x2] ldr r0, _0800CA3C @ =gUnknown_02024C04 ldrh r0, [r0] strh r0, [r1, 0x4] ldr r0, _0800CA40 @ =byte_2024C06 ldrb r0, [r0] strb r0, [r1, 0x6] ldr r1, _0800CA44 @ =0x02000000 ldr r3, _0800CA48 @ =0x00016003 adds r0, r1, r3 ldrb r0, [r0] mov r7, r12 strb r0, [r7, 0x7] adds r3, 0x5B adds r0, r1, r3 ldrb r0, [r0] strb r0, [r7, 0x8] ldr r7, _0800CA4C @ =0x000160c1 adds r1, r7 ldrb r0, [r1] mov r1, r12 strb r0, [r1, 0x9] ldr r0, _0800CA50 @ =gUnknown_02024C0B ldrb r0, [r0] strb r0, [r1, 0xA] ldr r3, _0800CA54 @ =gBattleMoves ldrh r1, [r4] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r3 ldrb r0, [r0, 0x2] mov r3, r12 strb r0, [r3, 0xB] movs r3, 0 mov r9, r2 ldr r7, _0800CA58 @ =gUnknown_030042B0 mov r8, r7 adds r2, 0x10 ldr r0, _0800CA5C @ =gBattleMons adds r4, r0, 0 adds r4, 0x20 _0800C9D2: adds r1, r2, r3 ldrb r0, [r4] strb r0, [r1] adds r4, 0x58 adds r3, 0x1 cmp r3, 0x3 ble _0800C9D2 movs r3, 0 mov r5, r12 adds r5, 0x10 mov r4, r12 adds r4, 0x20 ldr r6, _0800CA60 @ =gUnknown_03004290 mov r2, r12 adds r2, 0x30 _0800C9F0: adds r1, r5, r3 ldr r7, _0800CA64 @ =gUnknown_030041C0 adds r0, r3, r7 ldrb r0, [r0] strb r0, [r1] adds r1, r4, r3 adds r0, r3, r6 ldrb r0, [r0] strb r0, [r1] adds r1, r2, r3 mov r7, r8 adds r0, r3, r7 ldrb r0, [r0] strb r0, [r1] adds r3, 0x1 cmp r3, 0xF ble _0800C9F0 mov r0, r10 mov r1, r9 movs r2, 0x44 bl dp01_prepare_buffer pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0800CA2C: .4byte gUnknown_03004040 _0800CA30: .4byte gUnknown_02024D26 _0800CA34: .4byte gUnknown_02024BE6 _0800CA38: .4byte gUnknown_02024BE8 _0800CA3C: .4byte gUnknown_02024C04 _0800CA40: .4byte byte_2024C06 _0800CA44: .4byte 0x02000000 _0800CA48: .4byte 0x00016003 _0800CA4C: .4byte 0x000160c1 _0800CA50: .4byte gUnknown_02024C0B _0800CA54: .4byte gBattleMoves _0800CA58: .4byte gUnknown_030042B0 _0800CA5C: .4byte gBattleMons _0800CA60: .4byte gUnknown_03004290 _0800CA64: .4byte gUnknown_030041C0 thumb_func_end dp01_build_cmdbuf_x10_TODO thumb_func_start dp01_build_cmdbuf_x11_TODO dp01_build_cmdbuf_x11_TODO: @ 800CA68 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} lsls r0, 24 lsrs r0, 24 mov r10, r0 lsls r1, 16 lsrs r1, 16 ldr r2, _0800CB28 @ =gUnknown_03004040 movs r0, 0x11 strb r0, [r2] strb r0, [r2, 0x1] strb r1, [r2, 0x2] lsrs r1, 8 strb r1, [r2, 0x3] adds r0, r2, 0x4 mov r12, r0 ldr r0, _0800CB2C @ =gUnknown_02024BE6 ldrh r0, [r0] strh r0, [r2, 0x4] ldr r0, _0800CB30 @ =gUnknown_02024BE8 ldrh r0, [r0] mov r1, r12 strh r0, [r1, 0x2] ldr r0, _0800CB34 @ =gUnknown_02024C04 ldrh r0, [r0] strh r0, [r1, 0x4] ldr r0, _0800CB38 @ =byte_2024C06 ldrb r0, [r0] strb r0, [r1, 0x6] ldr r0, _0800CB3C @ =0x02000000 ldr r3, _0800CB40 @ =0x00016003 adds r1, r0, r3 ldrb r1, [r1] mov r7, r12 strb r1, [r7, 0x7] ldr r1, _0800CB44 @ =0x0001605e adds r0, r1 ldrb r0, [r0] strb r0, [r7, 0x8] movs r3, 0 mov r9, r2 ldr r7, _0800CB48 @ =gUnknown_030042B0 mov r8, r7 mov r4, r9 adds r4, 0x10 ldr r0, _0800CB4C @ =gBattleMons adds r2, r0, 0 adds r2, 0x20 _0800CACE: adds r1, r4, r3 ldrb r0, [r2] strb r0, [r1] adds r2, 0x58 adds r3, 0x1 cmp r3, 0x3 ble _0800CACE movs r3, 0 mov r5, r12 adds r5, 0x10 mov r4, r12 adds r4, 0x20 ldr r6, _0800CB50 @ =gUnknown_03004290 mov r2, r12 adds r2, 0x30 _0800CAEC: adds r1, r5, r3 ldr r7, _0800CB54 @ =gUnknown_030041C0 adds r0, r3, r7 ldrb r0, [r0] strb r0, [r1] adds r1, r4, r3 adds r0, r3, r6 ldrb r0, [r0] strb r0, [r1] adds r1, r2, r3 mov r7, r8 adds r0, r3, r7 ldrb r0, [r0] strb r0, [r1] adds r3, 0x1 cmp r3, 0xF ble _0800CAEC mov r0, r10 mov r1, r9 movs r2, 0x44 bl dp01_prepare_buffer pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0800CB28: .4byte gUnknown_03004040 _0800CB2C: .4byte gUnknown_02024BE6 _0800CB30: .4byte gUnknown_02024BE8 _0800CB34: .4byte gUnknown_02024C04 _0800CB38: .4byte byte_2024C06 _0800CB3C: .4byte 0x02000000 _0800CB40: .4byte 0x00016003 _0800CB44: .4byte 0x0001605e _0800CB48: .4byte gUnknown_030042B0 _0800CB4C: .4byte gBattleMons _0800CB50: .4byte gUnknown_03004290 _0800CB54: .4byte gUnknown_030041C0 thumb_func_end dp01_build_cmdbuf_x11_TODO thumb_func_start dp01_build_cmdbuf_x12_a_bb dp01_build_cmdbuf_x12_a_bb: @ 800CB58 push {r4,lr} adds r4, r1, 0 lsls r0, 24 lsrs r0, 24 lsls r2, 16 lsrs r2, 16 ldr r1, _0800CB80 @ =gUnknown_03004040 movs r3, 0x12 strb r3, [r1] strb r4, [r1, 0x1] strb r2, [r1, 0x2] lsrs r2, 8 strb r2, [r1, 0x3] movs r2, 0x4 bl dp01_prepare_buffer pop {r4} pop {r0} bx r0 .align 2, 0 _0800CB80: .4byte gUnknown_03004040 thumb_func_end dp01_build_cmdbuf_x12_a_bb thumb_func_start unref_sub_800CB84 unref_sub_800CB84: @ 800CB84 push {lr} adds r3, r1, 0 lsls r0, 24 lsrs r0, 24 ldr r1, _0800CBA0 @ =gUnknown_03004040 movs r2, 0x13 strb r2, [r1] strb r3, [r1, 0x1] movs r2, 0x2 bl dp01_prepare_buffer pop {r0} bx r0 .align 2, 0 _0800CBA0: .4byte gUnknown_03004040 thumb_func_end unref_sub_800CB84 thumb_func_start sub_800CBA4 sub_800CBA4: @ 800CBA4 push {r4-r6,lr} adds r5, r3, 0 lsls r0, 24 lsrs r6, r0, 24 ldr r3, _0800CBDC @ =gUnknown_03004040 movs r4, 0 movs r0, 0x14 strb r0, [r3] strb r1, [r3, 0x1] strb r2, [r3, 0x2] strb r4, [r3, 0x3] movs r2, 0 adds r1, r3, 0 adds r4, r1, 0x4 _0800CBC0: adds r0, r5, r2 ldrb r0, [r0] strb r0, [r4] adds r4, 0x1 adds r2, 0x1 cmp r2, 0x13 bls _0800CBC0 adds r0, r6, 0 movs r2, 0x18 bl dp01_prepare_buffer pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0800CBDC: .4byte gUnknown_03004040 thumb_func_end sub_800CBA4 thumb_func_start sub_800CBE0 sub_800CBE0: @ 800CBE0 push {r4,r5,lr} adds r4, r1, 0 lsls r0, 24 lsrs r5, r0, 24 ldr r1, _0800CC10 @ =gUnknown_03004040 movs r0, 0x15 strb r0, [r1] movs r2, 0 adds r3, r1, 0x1 _0800CBF2: adds r0, r4, r2 ldrb r0, [r0] strb r0, [r3] adds r3, 0x1 adds r2, 0x1 cmp r2, 0x2 ble _0800CBF2 adds r0, r5, 0 movs r2, 0x4 bl dp01_prepare_buffer pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0800CC10: .4byte gUnknown_03004040 thumb_func_end sub_800CBE0 thumb_func_start dp01_build_cmdbuf_x16_a_b_c_ptr_d_e_f dp01_build_cmdbuf_x16_a_b_c_ptr_d_e_f: @ 800CC14 push {r4-r6,lr} ldr r6, [sp, 0x10] lsls r0, 24 lsrs r5, r0, 24 ldr r4, _0800CC4C @ =gUnknown_03004040 movs r0, 0x16 strb r0, [r4] strb r1, [r4, 0x1] strb r2, [r4, 0x2] strb r3, [r4, 0x3] movs r2, 0 adds r1, r4, 0 adds r3, r1, 0x4 _0800CC2E: adds r0, r6, r2 ldrb r0, [r0] strb r0, [r3] adds r3, 0x1 adds r2, 0x1 cmp r2, 0x2 ble _0800CC2E adds r0, r5, 0 movs r2, 0x8 bl dp01_prepare_buffer pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0800CC4C: .4byte gUnknown_03004040 thumb_func_end dp01_build_cmdbuf_x16_a_b_c_ptr_d_e_f thumb_func_start dp01_build_cmdbuf_x17_17_17_17 dp01_build_cmdbuf_x17_17_17_17: @ 800CC50 push {lr} lsls r0, 24 lsrs r0, 24 ldr r1, _0800CC6C @ =gUnknown_03004040 movs r2, 0x17 strb r2, [r1] strb r2, [r1, 0x1] strb r2, [r1, 0x2] strb r2, [r1, 0x3] movs r2, 0x4 bl dp01_prepare_buffer pop {r0} bx r0 .align 2, 0 _0800CC6C: .4byte gUnknown_03004040 thumb_func_end dp01_build_cmdbuf_x17_17_17_17 thumb_func_start dp01_build_cmdbuf_x18_0_aa_health_bar_update dp01_build_cmdbuf_x18_0_aa_health_bar_update: @ 800CC70 push {r4,lr} lsls r0, 24 lsrs r0, 24 lsls r1, 16 lsrs r1, 16 ldr r3, _0800CCA4 @ =gUnknown_03004040 movs r4, 0 movs r2, 0x18 strb r2, [r3] strb r4, [r3, 0x1] strb r1, [r3, 0x2] lsls r1, 16 asrs r1, 16 movs r2, 0xFF lsls r2, 8 ands r1, r2 asrs r1, 8 strb r1, [r3, 0x3] adds r1, r3, 0 movs r2, 0x4 bl dp01_prepare_buffer pop {r4} pop {r0} bx r0 .align 2, 0 _0800CCA4: .4byte gUnknown_03004040 thumb_func_end dp01_build_cmdbuf_x18_0_aa_health_bar_update thumb_func_start dp01_build_cmdbuf_x19_a_bb dp01_build_cmdbuf_x19_a_bb: @ 800CCA8 push {r4,lr} adds r4, r1, 0 lsls r0, 24 lsrs r0, 24 lsls r2, 16 lsrs r2, 16 ldr r1, _0800CCD8 @ =gUnknown_03004040 movs r3, 0x19 strb r3, [r1] strb r4, [r1, 0x1] strb r2, [r1, 0x2] lsls r2, 16 asrs r2, 16 movs r3, 0xFF lsls r3, 8 ands r2, r3 asrs r2, 8 strb r2, [r1, 0x3] movs r2, 0x4 bl dp01_prepare_buffer pop {r4} pop {r0} bx r0 .align 2, 0 _0800CCD8: .4byte gUnknown_03004040 thumb_func_end dp01_build_cmdbuf_x19_a_bb thumb_func_start dp01_build_cmdbuf_x1A_aaaa_bbbb dp01_build_cmdbuf_x1A_aaaa_bbbb: @ 800CCDC push {r4-r6,lr} adds r4, r1, 0 lsls r0, 24 lsrs r0, 24 ldr r1, _0800CD2C @ =gUnknown_03004040 movs r3, 0x1A strb r3, [r1] strb r4, [r1, 0x1] movs r6, 0xFF lsls r6, 8 adds r3, r4, 0 ands r3, r6 lsrs r3, 8 strb r3, [r1, 0x2] movs r5, 0xFF lsls r5, 16 adds r3, r4, 0 ands r3, r5 lsrs r3, 16 strb r3, [r1, 0x3] lsrs r4, 24 strb r4, [r1, 0x4] strb r2, [r1, 0x5] adds r3, r2, 0 ands r3, r6 lsrs r3, 8 strb r3, [r1, 0x6] adds r3, r2, 0 ands r3, r5 lsrs r3, 16 strb r3, [r1, 0x7] lsrs r2, 24 strb r2, [r1, 0x8] movs r2, 0x9 bl dp01_prepare_buffer pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0800CD2C: .4byte gUnknown_03004040 thumb_func_end dp01_build_cmdbuf_x1A_aaaa_bbbb thumb_func_start dp01_build_cmdbuf_x1B_aaaa_b dp01_build_cmdbuf_x1B_aaaa_b: @ 800CD30 push {r4,lr} adds r4, r1, 0 lsls r0, 24 lsrs r0, 24 ldr r1, _0800CD68 @ =gUnknown_03004040 movs r3, 0x1B strb r3, [r1] strb r4, [r1, 0x1] strb r2, [r1, 0x2] movs r3, 0xFF lsls r3, 8 ands r3, r2 lsrs r3, 8 strb r3, [r1, 0x3] movs r3, 0xFF lsls r3, 16 ands r3, r2 lsrs r3, 16 strb r3, [r1, 0x4] lsrs r2, 24 strb r2, [r1, 0x5] movs r2, 0x6 bl dp01_prepare_buffer pop {r4} pop {r0} bx r0 .align 2, 0 _0800CD68: .4byte gUnknown_03004040 thumb_func_end dp01_build_cmdbuf_x1B_aaaa_b thumb_func_start dp01_build_cmdbuf_x1C_a dp01_build_cmdbuf_x1C_a: @ 800CD6C push {lr} adds r3, r1, 0 lsls r0, 24 lsrs r0, 24 ldr r1, _0800CD88 @ =gUnknown_03004040 movs r2, 0x1C strb r2, [r1] strb r3, [r1, 0x1] movs r2, 0x2 bl dp01_prepare_buffer pop {r0} bx r0 .align 2, 0 _0800CD88: .4byte gUnknown_03004040 thumb_func_end dp01_build_cmdbuf_x1C_a thumb_func_start dp01_build_cmdbuf_x1D_1D_numargs_varargs dp01_build_cmdbuf_x1D_1D_numargs_varargs: @ 800CD8C push {r4-r6,lr} lsls r0, 24 lsrs r6, r0, 24 lsls r1, 16 lsrs r4, r1, 16 ldr r1, _0800CDD0 @ =gUnknown_03004040 movs r0, 0x1D strb r0, [r1] strb r0, [r1, 0x1] strb r4, [r1, 0x2] lsrs r0, r4, 8 strb r0, [r1, 0x3] adds r5, r1, 0 cmp r4, 0 beq _0800CDBC adds r1, r5, 0x4 adds r3, r4, 0 _0800CDAE: ldrb r0, [r2] strb r0, [r1] adds r2, 0x1 adds r1, 0x1 subs r3, 0x1 cmp r3, 0 bne _0800CDAE _0800CDBC: adds r2, r4, 0x4 lsls r2, 16 lsrs r2, 16 adds r0, r6, 0 adds r1, r5, 0 bl dp01_prepare_buffer pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0800CDD0: .4byte gUnknown_03004040 thumb_func_end dp01_build_cmdbuf_x1D_1D_numargs_varargs thumb_func_start unref_sub_800CDD4 unref_sub_800CDD4: @ 800CDD4 push {r4-r6,lr} adds r4, r3, 0 lsls r0, 24 lsrs r6, r0, 24 lsls r2, 16 lsrs r5, r2, 16 ldr r2, _0800CE38 @ =gUnknown_03004040 movs r0, 0x1E strb r0, [r2] strb r1, [r2, 0x1] movs r3, 0xFF lsls r3, 8 adds r0, r1, 0 ands r0, r3 lsrs r0, 8 strb r0, [r2, 0x2] movs r0, 0xFF lsls r0, 16 ands r0, r1 lsrs r0, 16 strb r0, [r2, 0x3] lsrs r1, 24 strb r1, [r2, 0x4] strb r5, [r2, 0x5] adds r0, r5, 0 ands r0, r3 lsrs r0, 8 strb r0, [r2, 0x6] adds r1, r2, 0 cmp r5, 0 beq _0800CE24 adds r3, r1, 0x7 adds r2, r5, 0 _0800CE16: ldrb r0, [r4] strb r0, [r3] adds r4, 0x1 adds r3, 0x1 subs r2, 0x1 cmp r2, 0 bne _0800CE16 _0800CE24: adds r2, r5, 0x7 lsls r2, 16 lsrs r2, 16 adds r0, r6, 0 bl dp01_prepare_buffer pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0800CE38: .4byte gUnknown_03004040 thumb_func_end unref_sub_800CDD4 thumb_func_start unref_sub_800CE3C unref_sub_800CE3C: @ 800CE3C push {r4-r6,lr} lsls r0, 24 lsrs r6, r0, 24 lsls r1, 16 lsrs r4, r1, 16 ldr r1, _0800CE80 @ =gUnknown_03004040 movs r0, 0x1F strb r0, [r1] strb r4, [r1, 0x1] lsrs r0, r4, 8 strb r0, [r1, 0x2] adds r5, r1, 0 cmp r4, 0 beq _0800CE6A adds r1, r5, 0x3 adds r3, r4, 0 _0800CE5C: ldrb r0, [r2] strb r0, [r1] adds r2, 0x1 adds r1, 0x1 subs r3, 0x1 cmp r3, 0 bne _0800CE5C _0800CE6A: adds r2, r4, 0x3 lsls r2, 16 lsrs r2, 16 adds r0, r6, 0 adds r1, r5, 0 bl dp01_prepare_buffer pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0800CE80: .4byte gUnknown_03004040 thumb_func_end unref_sub_800CE3C thumb_func_start unref_sub_800CE84 unref_sub_800CE84: @ 800CE84 push {r4-r6,lr} lsls r0, 24 lsrs r6, r0, 24 lsls r1, 16 lsrs r4, r1, 16 ldr r1, _0800CEC8 @ =gUnknown_03004040 movs r0, 0x20 strb r0, [r1] strb r4, [r1, 0x1] lsrs r0, r4, 8 strb r0, [r1, 0x2] adds r5, r1, 0 cmp r4, 0 beq _0800CEB2 adds r1, r5, 0x3 adds r3, r4, 0 _0800CEA4: ldrb r0, [r2] strb r0, [r1] adds r2, 0x1 adds r1, 0x1 subs r3, 0x1 cmp r3, 0 bne _0800CEA4 _0800CEB2: adds r2, r4, 0x3 lsls r2, 16 lsrs r2, 16 adds r0, r6, 0 adds r1, r5, 0 bl dp01_prepare_buffer pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0800CEC8: .4byte gUnknown_03004040 thumb_func_end unref_sub_800CE84 thumb_func_start dp01_build_cmdbuf_x21_a_bb dp01_build_cmdbuf_x21_a_bb: @ 800CECC push {r4,lr} adds r4, r1, 0 lsls r0, 24 lsrs r0, 24 lsls r2, 16 lsrs r2, 16 ldr r1, _0800CEF4 @ =gUnknown_03004040 movs r3, 0x21 strb r3, [r1] strb r4, [r1, 0x1] strb r2, [r1, 0x2] lsrs r2, 8 strb r2, [r1, 0x3] movs r2, 0x4 bl dp01_prepare_buffer pop {r4} pop {r0} bx r0 .align 2, 0 _0800CEF4: .4byte gUnknown_03004040 thumb_func_end dp01_build_cmdbuf_x21_a_bb thumb_func_start dp01_build_cmdbuf_x22_a_three_bytes dp01_build_cmdbuf_x22_a_three_bytes: @ 800CEF8 push {r4,r5,lr} adds r4, r2, 0 lsls r0, 24 lsrs r5, r0, 24 ldr r2, _0800CF2C @ =gUnknown_03004040 movs r0, 0x22 strb r0, [r2] strb r1, [r2, 0x1] movs r3, 0 adds r1, r2, 0x2 _0800CF0C: adds r0, r4, r3 ldrb r0, [r0] strb r0, [r1] adds r1, 0x1 adds r3, 0x1 cmp r3, 0x2 ble _0800CF0C adds r0, r5, 0 adds r1, r2, 0 movs r2, 0x5 bl dp01_prepare_buffer pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0800CF2C: .4byte gUnknown_03004040 thumb_func_end dp01_build_cmdbuf_x22_a_three_bytes thumb_func_start dp01_build_cmdbuf_x23_aa_0 dp01_build_cmdbuf_x23_aa_0: @ 800CF30 push {r4,lr} lsls r0, 24 lsrs r0, 24 lsls r1, 16 lsrs r1, 16 ldr r3, _0800CF58 @ =gUnknown_03004040 movs r4, 0 movs r2, 0x23 strb r2, [r3] strb r1, [r3, 0x1] lsrs r1, 8 strb r1, [r3, 0x2] strb r4, [r3, 0x3] adds r1, r3, 0 movs r2, 0x4 bl dp01_prepare_buffer pop {r4} pop {r0} bx r0 .align 2, 0 _0800CF58: .4byte gUnknown_03004040 thumb_func_end dp01_build_cmdbuf_x23_aa_0 thumb_func_start dp01_build_cmdbuf_x24_aa_0 dp01_build_cmdbuf_x24_aa_0: @ 800CF5C push {r4,lr} lsls r0, 24 lsrs r0, 24 lsls r1, 16 lsrs r1, 16 ldr r3, _0800CF84 @ =gUnknown_03004040 movs r4, 0 movs r2, 0x24 strb r2, [r3] strb r1, [r3, 0x1] lsrs r1, 8 strb r1, [r3, 0x2] strb r4, [r3, 0x3] adds r1, r3, 0 movs r2, 0x4 bl dp01_prepare_buffer pop {r4} pop {r0} bx r0 .align 2, 0 _0800CF84: .4byte gUnknown_03004040 thumb_func_end dp01_build_cmdbuf_x24_aa_0 thumb_func_start dp01_build_cmdbuf_x25_25_25_25 dp01_build_cmdbuf_x25_25_25_25: @ 800CF88 push {lr} lsls r0, 24 lsrs r0, 24 ldr r1, _0800CFA4 @ =gUnknown_03004040 movs r2, 0x25 strb r2, [r1] strb r2, [r1, 0x1] strb r2, [r1, 0x2] strb r2, [r1, 0x3] movs r2, 0x4 bl dp01_prepare_buffer pop {r0} bx r0 .align 2, 0 _0800CFA4: .4byte gUnknown_03004040 thumb_func_end dp01_build_cmdbuf_x25_25_25_25 thumb_func_start dp01_build_cmdbuf_x26_a dp01_build_cmdbuf_x26_a: @ 800CFA8 push {lr} adds r3, r1, 0 lsls r0, 24 lsrs r0, 24 ldr r1, _0800CFC4 @ =gUnknown_03004040 movs r2, 0x26 strb r2, [r1] strb r3, [r1, 0x1] movs r2, 0x2 bl dp01_prepare_buffer pop {r0} bx r0 .align 2, 0 _0800CFC4: .4byte gUnknown_03004040 thumb_func_end dp01_build_cmdbuf_x26_a thumb_func_start dp01_build_cmdbuf_x27_27_27_27 dp01_build_cmdbuf_x27_27_27_27: @ 800CFC8 push {lr} lsls r0, 24 lsrs r0, 24 ldr r1, _0800CFE4 @ =gUnknown_03004040 movs r2, 0x27 strb r2, [r1] strb r2, [r1, 0x1] strb r2, [r1, 0x2] strb r2, [r1, 0x3] movs r2, 0x4 bl dp01_prepare_buffer pop {r0} bx r0 .align 2, 0 _0800CFE4: .4byte gUnknown_03004040 thumb_func_end dp01_build_cmdbuf_x27_27_27_27 thumb_func_start dp01_build_cmdbuf_x28_28_28_28 dp01_build_cmdbuf_x28_28_28_28: @ 800CFE8 push {lr} lsls r0, 24 lsrs r0, 24 ldr r1, _0800D004 @ =gUnknown_03004040 movs r2, 0x28 strb r2, [r1] strb r2, [r1, 0x1] strb r2, [r1, 0x2] strb r2, [r1, 0x3] movs r2, 0x4 bl dp01_prepare_buffer pop {r0} bx r0 .align 2, 0 _0800D004: .4byte gUnknown_03004040 thumb_func_end dp01_build_cmdbuf_x28_28_28_28 thumb_func_start dp01_build_cmdbuf_x29_29_29_29 dp01_build_cmdbuf_x29_29_29_29: @ 800D008 push {lr} lsls r0, 24 lsrs r0, 24 ldr r1, _0800D024 @ =gUnknown_03004040 movs r2, 0x29 strb r2, [r1] strb r2, [r1, 0x1] strb r2, [r1, 0x2] strb r2, [r1, 0x3] movs r2, 0x4 bl dp01_prepare_buffer pop {r0} bx r0 .align 2, 0 _0800D024: .4byte gUnknown_03004040 thumb_func_end dp01_build_cmdbuf_x29_29_29_29 thumb_func_start dp01_build_cmdbuf_x2A_2A_2A_2A dp01_build_cmdbuf_x2A_2A_2A_2A: @ 800D028 push {lr} lsls r0, 24 lsrs r0, 24 ldr r1, _0800D044 @ =gUnknown_03004040 movs r2, 0x2A strb r2, [r1] strb r2, [r1, 0x1] strb r2, [r1, 0x2] strb r2, [r1, 0x3] movs r2, 0x4 bl dp01_prepare_buffer pop {r0} bx r0 .align 2, 0 _0800D044: .4byte gUnknown_03004040 thumb_func_end dp01_build_cmdbuf_x2A_2A_2A_2A thumb_func_start dp01_build_cmdbuf_x2B_aa_0 dp01_build_cmdbuf_x2B_aa_0: @ 800D048 push {r4,lr} lsls r0, 24 lsrs r0, 24 lsls r1, 16 lsrs r1, 16 ldr r3, _0800D070 @ =gUnknown_03004040 movs r4, 0 movs r2, 0x2B strb r2, [r3] strb r1, [r3, 0x1] lsrs r1, 8 strb r1, [r3, 0x2] strb r4, [r3, 0x3] adds r1, r3, 0 movs r2, 0x4 bl dp01_prepare_buffer pop {r4} pop {r0} bx r0 .align 2, 0 _0800D070: .4byte gUnknown_03004040 thumb_func_end dp01_build_cmdbuf_x2B_aa_0 thumb_func_start sub_800D074 sub_800D074: @ 800D074 push {r4,lr} lsls r0, 24 lsrs r0, 24 lsls r1, 16 lsrs r1, 16 ldr r3, _0800D09C @ =gUnknown_03004040 movs r4, 0 movs r2, 0x2C strb r2, [r3] strb r1, [r3, 0x1] lsrs r1, 8 strb r1, [r3, 0x2] strb r4, [r3, 0x3] adds r1, r3, 0 movs r2, 0x4 bl dp01_prepare_buffer pop {r4} pop {r0} bx r0 .align 2, 0 _0800D09C: .4byte gUnknown_03004040 thumb_func_end sub_800D074 thumb_func_start dp01_build_cmdbuf_x2D_2D_2D_2D dp01_build_cmdbuf_x2D_2D_2D_2D: @ 800D0A0 push {lr} lsls r0, 24 lsrs r0, 24 ldr r1, _0800D0BC @ =gUnknown_03004040 movs r2, 0x2D strb r2, [r1] strb r2, [r1, 0x1] strb r2, [r1, 0x2] strb r2, [r1, 0x3] movs r2, 0x4 bl dp01_prepare_buffer pop {r0} bx r0 .align 2, 0 _0800D0BC: .4byte gUnknown_03004040 thumb_func_end dp01_build_cmdbuf_x2D_2D_2D_2D thumb_func_start dp01_build_cmdbuf_x2E_a dp01_build_cmdbuf_x2E_a: @ 800D0C0 push {lr} adds r3, r1, 0 lsls r0, 24 lsrs r0, 24 ldr r1, _0800D0DC @ =gUnknown_03004040 movs r2, 0x2E strb r2, [r1] strb r3, [r1, 0x1] movs r2, 0x2 bl dp01_prepare_buffer pop {r0} bx r0 .align 2, 0 _0800D0DC: .4byte gUnknown_03004040 thumb_func_end dp01_build_cmdbuf_x2E_a thumb_func_start dp01_build_cmdbuf_x2F_2F_2F_2F dp01_build_cmdbuf_x2F_2F_2F_2F: @ 800D0E0 push {lr} lsls r0, 24 lsrs r0, 24 ldr r1, _0800D0FC @ =gUnknown_03004040 movs r2, 0x2F strb r2, [r1] strb r2, [r1, 0x1] strb r2, [r1, 0x2] strb r2, [r1, 0x3] movs r2, 0x4 bl dp01_prepare_buffer pop {r0} bx r0 .align 2, 0 _0800D0FC: .4byte gUnknown_03004040 thumb_func_end dp01_build_cmdbuf_x2F_2F_2F_2F thumb_func_start dp01_build_cmdbuf_x30_TODO dp01_build_cmdbuf_x30_TODO: @ 800D100 push {r4,r5,lr} adds r4, r1, 0 lsls r0, 24 lsrs r5, r0, 24 lsls r2, 24 lsrs r2, 24 ldr r1, _0800D144 @ =gUnknown_03004040 movs r3, 0x30 strb r3, [r1] movs r0, 0x7F ands r0, r2 strb r0, [r1, 0x1] movs r0, 0x80 ands r0, r2 lsls r0, 24 lsrs r0, 31 strb r0, [r1, 0x2] strb r3, [r1, 0x3] movs r2, 0 adds r3, r1, 0x4 _0800D128: adds r0, r4, r2 ldrb r0, [r0] strb r0, [r3] adds r3, 0x1 adds r2, 0x1 cmp r2, 0x2F ble _0800D128 adds r0, r5, 0 movs r2, 0x34 bl dp01_prepare_buffer pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0800D144: .4byte gUnknown_03004040 thumb_func_end dp01_build_cmdbuf_x30_TODO thumb_func_start dp01_build_cmdbuf_x31_31_31_31 dp01_build_cmdbuf_x31_31_31_31: @ 800D148 push {lr} lsls r0, 24 lsrs r0, 24 ldr r1, _0800D164 @ =gUnknown_03004040 movs r2, 0x31 strb r2, [r1] strb r2, [r1, 0x1] strb r2, [r1, 0x2] strb r2, [r1, 0x3] movs r2, 0x4 bl dp01_prepare_buffer pop {r0} bx r0 .align 2, 0 _0800D164: .4byte gUnknown_03004040 thumb_func_end dp01_build_cmdbuf_x31_31_31_31 thumb_func_start dp01_build_cmdbuf_x32_32_32_32 dp01_build_cmdbuf_x32_32_32_32: @ 800D168 push {lr} lsls r0, 24 lsrs r0, 24 ldr r1, _0800D184 @ =gUnknown_03004040 movs r2, 0x32 strb r2, [r1] strb r2, [r1, 0x1] strb r2, [r1, 0x2] strb r2, [r1, 0x3] movs r2, 0x4 bl dp01_prepare_buffer pop {r0} bx r0 .align 2, 0 _0800D184: .4byte gUnknown_03004040 thumb_func_end dp01_build_cmdbuf_x32_32_32_32 thumb_func_start dp01_build_cmdbuf_x33_a_33_33 dp01_build_cmdbuf_x33_a_33_33: @ 800D188 push {lr} adds r3, r1, 0 lsls r0, 24 lsrs r0, 24 ldr r1, _0800D1A8 @ =gUnknown_03004040 movs r2, 0x33 strb r2, [r1] strb r3, [r1, 0x1] strb r2, [r1, 0x2] strb r2, [r1, 0x3] movs r2, 0x4 bl dp01_prepare_buffer pop {r0} bx r0 .align 2, 0 _0800D1A8: .4byte gUnknown_03004040 thumb_func_end dp01_build_cmdbuf_x33_a_33_33 thumb_func_start dp01_build_cmdbuf_x34_a_bb_aka_battle_anim dp01_build_cmdbuf_x34_a_bb_aka_battle_anim: @ 800D1AC push {r4,lr} adds r4, r1, 0 lsls r0, 24 lsrs r0, 24 lsls r2, 16 lsrs r2, 16 ldr r1, _0800D1D4 @ =gUnknown_03004040 movs r3, 0x34 strb r3, [r1] strb r4, [r1, 0x1] strb r2, [r1, 0x2] lsrs r2, 8 strb r2, [r1, 0x3] movs r2, 0x4 bl dp01_prepare_buffer pop {r4} pop {r0} bx r0 .align 2, 0 _0800D1D4: .4byte gUnknown_03004040 thumb_func_end dp01_build_cmdbuf_x34_a_bb_aka_battle_anim thumb_func_start sub_800D1D8 sub_800D1D8: @ 800D1D8 push {lr} adds r3, r1, 0 lsls r0, 24 lsrs r0, 24 ldr r1, _0800D1F4 @ =gUnknown_03004040 movs r2, 0x35 strb r2, [r1] strb r3, [r1, 0x1] movs r2, 0x2 bl dp01_prepare_buffer pop {r0} bx r0 .align 2, 0 _0800D1F4: .4byte gUnknown_03004040 thumb_func_end sub_800D1D8 thumb_func_start dp01_build_cmdbuf_x38_a dp01_build_cmdbuf_x38_a: @ 800D1F8 push {lr} adds r3, r1, 0 lsls r0, 24 lsrs r0, 24 ldr r1, _0800D214 @ =gUnknown_03004040 movs r2, 0x36 strb r2, [r1] strb r3, [r1, 0x1] movs r2, 0x2 bl dp01_prepare_buffer pop {r0} bx r0 .align 2, 0 _0800D214: .4byte gUnknown_03004040 thumb_func_end dp01_build_cmdbuf_x38_a thumb_func_start dp01_build_cmdbuf_x37_a dp01_build_cmdbuf_x37_a: @ 800D218 push {lr} adds r3, r1, 0 lsls r0, 24 lsrs r0, 24 ldr r1, _0800D234 @ =gUnknown_03004040 movs r2, 0x37 strb r2, [r1] strb r3, [r1, 0x1] movs r2, 0x2 bl dp01_prepare_buffer pop {r0} bx r0 .align 2, 0 _0800D234: .4byte gUnknown_03004040 thumb_func_end dp01_build_cmdbuf_x37_a .align 2, 0 @ Don't pad with nop.