diff options
Diffstat (limited to 'asm')
-rw-r--r-- | asm/contest_link_80C2020.s | 271 | ||||
-rw-r--r-- | asm/contest_link_80C857C.s | 510 |
2 files changed, 779 insertions, 2 deletions
diff --git a/asm/contest_link_80C2020.s b/asm/contest_link_80C2020.s index 26ed8e3fe..6bd98cc8a 100644 --- a/asm/contest_link_80C2020.s +++ b/asm/contest_link_80C2020.s @@ -2947,6 +2947,7 @@ _080C37DC: .4byte REG_WININ _080C37E0: .4byte 0x00003f3f thumb_func_end sub_80C3764 +.ifdef ENGLISH thumb_func_start sub_80C37E4 sub_80C37E4: @ 80C37E4 push {r4-r6,lr} @@ -3156,6 +3157,276 @@ _080C3984: .4byte 0x0600e000 _080C3988: .4byte gUnknown_08E964B8 _080C398C: .4byte 0x00000fff thumb_func_end sub_80C37E4 +.else + thumb_func_start de_sub_80C39A8 +de_sub_80C39A8: @ 80C39A8 + push {r4,lr} + sub sp, 0x10 + adds r1, r0, 0 + ldr r0, _de_080C39DC @ =gIsLinkContest + ldrb r0, [r0] + movs r4, 0x1 + ands r4, r0 + cmp r4, 0 + beq _de_080C39E8 + ldr r0, _de_080C39E0 @ =0x0600e000 + lsls r1, 16 + lsrs r1, 16 + ldr r3, _de_080C39E4 @ =gUnknown_08E964B8 + movs r2, 0xB + str r2, [sp] + movs r4, 0x3 + str r4, [sp, 0x4] + movs r2, 0x8 + str r2, [sp, 0x8] + str r4, [sp, 0xC] + movs r2, 0 + bl sub_809D104 + movs r0, 0x8 + b _de_080C3A74 + .align 2, 0 +_de_080C39DC: .4byte gIsLinkContest +_de_080C39E0: .4byte 0x0600e000 +_de_080C39E4: .4byte gUnknown_08E964B8 +_de_080C39E8: + ldr r0, _de_080C3A08 @ =gSpecialVar_ContestRank + ldrh r0, [r0] + cmp r0, 0 + bne _de_080C3A14 + ldr r0, _de_080C3A0C @ =0x0600e000 + lsls r1, 16 + lsrs r1, 16 + ldr r3, _de_080C3A10 @ =gUnknown_08E964B8 + str r4, [sp] + str r4, [sp, 0x4] + movs r2, 0xB + str r2, [sp, 0x8] + movs r2, 0x3 + str r2, [sp, 0xC] + b _de_080C3A6C + .align 2, 0 +_de_080C3A08: .4byte gSpecialVar_ContestRank +_de_080C3A0C: .4byte 0x0600e000 +_de_080C3A10: .4byte gUnknown_08E964B8 +_de_080C3A14: + cmp r0, 0x1 + bne _de_080C3A2C + ldr r0, _de_080C3A24 @ =0x0600e000 + lsls r1, 16 + lsrs r1, 16 + ldr r3, _de_080C3A28 @ =gUnknown_08E964B8 + movs r2, 0xB + b _de_080C3A3A + .align 2, 0 +_de_080C3A24: .4byte 0x0600e000 +_de_080C3A28: .4byte gUnknown_08E964B8 +_de_080C3A2C: + cmp r0, 0x2 + bne _de_080C3A58 + ldr r0, _de_080C3A50 @ =0x0600e000 + lsls r1, 16 + lsrs r1, 16 + ldr r3, _de_080C3A54 @ =gUnknown_08E964B8 + movs r2, 0x15 +_de_080C3A3A: + str r2, [sp] + str r4, [sp, 0x4] + movs r2, 0xA + str r2, [sp, 0x8] + movs r2, 0x3 + str r2, [sp, 0xC] + movs r2, 0 + bl sub_809D104 + movs r0, 0xA + b _de_080C3A74 + .align 2, 0 +_de_080C3A50: .4byte 0x0600e000 +_de_080C3A54: .4byte gUnknown_08E964B8 +_de_080C3A58: + ldr r0, _de_080C3A7C @ =0x0600e000 + lsls r1, 16 + lsrs r1, 16 + ldr r3, _de_080C3A80 @ =gUnknown_08E964B8 + str r4, [sp] + movs r4, 0x3 + str r4, [sp, 0x4] + movs r2, 0xB + str r2, [sp, 0x8] + str r4, [sp, 0xC] +_de_080C3A6C: + movs r2, 0 + bl sub_809D104 + movs r0, 0xB +_de_080C3A74: + add sp, 0x10 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_de_080C3A7C: .4byte 0x0600e000 +_de_080C3A80: .4byte gUnknown_08E964B8 + thumb_func_end de_sub_80C39A8 + + thumb_func_start de_sub_80C3A84 +de_sub_80C3A84: @ 80C3A84 + push {r4,lr} + sub sp, 0x10 + adds r2, r0, 0 + ldr r0, _de_080C3AAC @ =gSpecialVar_ContestCategory + ldrh r4, [r0] + cmp r4, 0 + bne _de_080C3AB8 + str r4, [r1] + ldr r0, _de_080C3AB0 @ =0x0600e000 + lsls r1, r2, 16 + lsrs r1, 16 + ldr r3, _de_080C3AB4 @ =gUnknown_08E964B8 + movs r2, 0x13 + str r2, [sp] + movs r4, 0x3 + str r4, [sp, 0x4] + movs r2, 0x7 + str r2, [sp, 0x8] + str r4, [sp, 0xC] + b _de_080C3AD6 + .align 2, 0 +_de_080C3AAC: .4byte gSpecialVar_ContestCategory +_de_080C3AB0: .4byte 0x0600e000 +_de_080C3AB4: .4byte gUnknown_08E964B8 +_de_080C3AB8: + cmp r4, 0x1 + bne _de_080C3AE8 + str r4, [r1] + ldr r0, _de_080C3AE0 @ =0x0600e000 + lsls r1, r2, 16 + lsrs r1, 16 + ldr r3, _de_080C3AE4 @ =gUnknown_08E964B8 + movs r2, 0 + str r2, [sp] + movs r2, 0x6 + str r2, [sp, 0x4] + movs r2, 0x7 + str r2, [sp, 0x8] + movs r2, 0x3 + str r2, [sp, 0xC] +_de_080C3AD6: + movs r2, 0 + bl sub_809D104 + movs r0, 0x7 + b _de_080C3B68 + .align 2, 0 +_de_080C3AE0: .4byte 0x0600e000 +_de_080C3AE4: .4byte gUnknown_08E964B8 +_de_080C3AE8: + cmp r4, 0x2 + bne _de_080C3B18 + str r4, [r1] + ldr r0, _de_080C3B10 @ =0x0600e000 + lsls r1, r2, 16 + lsrs r1, 16 + ldr r3, _de_080C3B14 @ =gUnknown_08E964B8 + movs r2, 0x7 + str r2, [sp] + movs r2, 0x6 + str r2, [sp, 0x4] + movs r2, 0x4 + str r2, [sp, 0x8] + movs r2, 0x3 + str r2, [sp, 0xC] + movs r2, 0 + bl sub_809D104 + movs r0, 0x4 + b _de_080C3B68 + .align 2, 0 +_de_080C3B10: .4byte 0x0600e000 +_de_080C3B14: .4byte gUnknown_08E964B8 +_de_080C3B18: + cmp r4, 0x3 + bne _de_080C3B44 + str r4, [r1] + ldr r0, _de_080C3B3C @ =0x0600e000 + lsls r1, r2, 16 + lsrs r1, 16 + ldr r3, _de_080C3B40 @ =gUnknown_08E964B8 + movs r2, 0xB + str r2, [sp] + movs r2, 0x6 + str r2, [sp, 0x4] + str r2, [sp, 0x8] + str r4, [sp, 0xC] + movs r2, 0 + bl sub_809D104 + movs r0, 0x6 + b _de_080C3B68 + .align 2, 0 +_de_080C3B3C: .4byte 0x0600e000 +_de_080C3B40: .4byte gUnknown_08E964B8 +_de_080C3B44: + movs r0, 0x4 + str r0, [r1] + ldr r0, _de_080C3B70 @ =0x0600e000 + lsls r1, r2, 16 + lsrs r1, 16 + ldr r3, _de_080C3B74 @ =gUnknown_08E964B8 + movs r2, 0x11 + str r2, [sp] + movs r2, 0x6 + str r2, [sp, 0x4] + movs r2, 0x5 + str r2, [sp, 0x8] + movs r2, 0x3 + str r2, [sp, 0xC] + movs r2, 0 + bl sub_809D104 + movs r0, 0x5 +_de_080C3B68: + add sp, 0x10 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_de_080C3B70: .4byte 0x0600e000 +_de_080C3B74: .4byte gUnknown_08E964B8 + thumb_func_end de_sub_80C3A84 + + thumb_func_start sub_80C37E4 +sub_80C37E4: @ 80C37E4 + push {r4,r5,lr} + sub sp, 0x4 + movs r0, 0x6 + bl de_sub_80C39A8 + lsls r0, 16 + asrs r0, 16 + adds r0, 0x6 + mov r1, sp + bl de_sub_80C3A84 + ldr r5, _080C3824 @ =0x00000fff + ldr r0, [sp] + lsls r4, r0, 12 + ldr r2, _080C3828 @ =0x0600e000 + movs r3, 0x7F +_080C3804: + ldrh r1, [r2] + adds r0, r5, 0 + ands r0, r1 + strh r0, [r2] + ldrh r1, [r2] + adds r0, r4, 0 + orrs r0, r1 + strh r0, [r2] + adds r2, 0x2 + subs r3, 0x1 + cmp r3, 0 + bge _080C3804 + add sp, 0x4 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080C3824: .4byte 0x00000fff +_080C3828: .4byte 0x0600e000 + thumb_func_end sub_80C37E4 +.endif thumb_func_start sub_80C3990 sub_80C3990: @ 80C3990 diff --git a/asm/contest_link_80C857C.s b/asm/contest_link_80C857C.s index 0ff6823b5..13d01d5a9 100644 --- a/asm/contest_link_80C857C.s +++ b/asm/contest_link_80C857C.s @@ -82,6 +82,7 @@ _080C85FE: bx r1 thumb_func_end sub_80C85D8 +.ifdef ENGLISH thumb_func_start sub_80C8604 sub_80C8604: @ 80C8604 push {r4-r6,lr} @@ -116,6 +117,26 @@ _080C8638: .4byte gTasks _080C863C: .4byte sub_80C8644 _080C8640: .4byte gBlockRecvBuffer thumb_func_end sub_80C8604 +.else + thumb_func_start sub_80C8604 +sub_80C8604: @ 80C8604 + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080C861C @ =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + movs r0, 0 + strh r0, [r1, 0x8] + ldr r0, _080C8620 @ =sub_80C8644 + str r0, [r1] + bx lr + .align 2, 0 +_080C861C: .4byte gTasks +_080C8620: .4byte sub_80C8644 + thumb_func_end sub_80C8604 +.endif thumb_func_start sub_80C8644 sub_80C8644: @ 80C8644 @@ -170,14 +191,22 @@ _080C869C: .4byte gIsLinkContest sub_80C86A0: @ 80C86A0 push {r4,r5,lr} adds r4, r0, 0 +.ifdef ENGLISH movs r5, 0x2 +.else + movs r5, 0x5 +.endif ldrb r0, [r4] cmp r0, 0xFC bne _080C86B6 ldrb r0, [r4, 0x1] cmp r0, 0x15 bne _080C86B6 +.ifdef ENGLISH movs r0, 0x2 +.else + movs r0, 0x5 +.endif b _080C872C _080C86B6: adds r0, r4, 0 @@ -248,6 +277,7 @@ _080C872C: bx r1 thumb_func_end sub_80C86A0 +.ifdef ENGLISH thumb_func_start sub_80C8734 sub_80C8734: @ 80C8734 push {r4-r7,lr} @@ -429,6 +459,232 @@ _080C8896: .align 2, 0 _080C88A8: .4byte gTasks thumb_func_end sub_80C8734 +.else + thumb_func_start sub_80C8734 +sub_80C8734: @ 80C8734 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x4 + lsls r0, 24 + lsrs r5, r0, 24 + ldr r1, _080C8760 @ =gTasks + lsls r4, r5, 2 + adds r0, r4, r5 + lsls r0, 3 + adds r2, r0, r1 + movs r3, 0x8 + ldrsh r0, [r2, r3] + cmp r0, 0x1 + beq _080C8800 + cmp r0, 0x1 + bgt _080C8764 + cmp r0, 0 + beq _080C8770 + b _080C88E0 + .align 2, 0 +_080C8760: .4byte gTasks +_080C8764: + cmp r0, 0x2 + bne _080C876A + b _080C88D4_B +_080C876A: + cmp r0, 0x8 + beq _080C8770 + b _080C88E0 +_080C8770: + bl GetMultiplayerId + lsls r0, 24 + cmp r0, 0 + bne _080C87D4 + bl sub_8007ECC + lsls r0, 24 + cmp r0, 0 + bne _080C8786 + b _080C88EE +_080C8786: + ldr r0, _080C87A0 @ =gTasks + lsls r1, r5, 2 + adds r1, r5 + lsls r1, 3 + adds r4, r1, r0 + movs r1, 0x8 + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _080C87A4 + movs r0, 0x3 + strh r0, [r4, 0x8] + b _080C88EE + .align 2, 0 +_080C87A0: .4byte gTasks +_080C87A4: + ldr r0, _080C87C8 @ =gBlockSendBuffer + ldr r1, _080C87CC @ =gContestPlayerMonIndex + ldrb r1, [r1] + lsls r1, 6 + ldr r2, _080C87D0 @ =gContestMons + adds r1, r2 + movs r2, 0x40 + bl memcpy + movs r0, 0 + bl de_sub_80C9274 + movs r0, 0x2 + bl sub_8007E9C + movs r0, 0x1 + strh r0, [r4, 0x8] + b _080C88EE + .align 2, 0 +_080C87C8: .4byte gBlockSendBuffer +_080C87CC: .4byte gContestPlayerMonIndex +_080C87D0: .4byte gContestMons +_080C87D4: + ldr r0, _080C87F0 @ =gBlockSendBuffer + ldr r1, _080C87F4 @ =gContestPlayerMonIndex + ldrb r1, [r1] + lsls r1, 6 + ldr r2, _080C87F8 @ =gContestMons + adds r1, r2 + movs r2, 0x40 + bl memcpy + movs r0, 0 + bl de_sub_80C9294 + ldr r1, _080C87FC @ =gTasks + b _080C88E0 + .align 2, 0 +_080C87F0: .4byte gBlockSendBuffer +_080C87F4: .4byte gContestPlayerMonIndex +_080C87F8: .4byte gContestMons +_080C87FC: .4byte gTasks +_080C8800: + bl sub_80C85D8 + lsls r0, 24 + cmp r0, 0 + beq _080C88EE + movs r2, 0 + mov r8, r2 + str r4, [sp] + ldr r0, _080C884C @ =gContestMons + ldr r7, _080C8850 @ =gLinkPlayers + movs r6, 0 + mov r10, r0 + movs r3, 0xFF + mov r9, r3 +_080C881C: + mov r0, r8 + lsls r1, r0, 8 + ldr r0, _080C8854 @ =gBlockRecvBuffer + adds r1, r0 + mov r0, r10 + movs r2, 0x40 + bl memcpy + ldr r1, _080C8858 @ =gContestMons + 0x2 + adds r4, r6, r1 + ldrh r0, [r7, 0x1A] + cmp r0, 0x1 + bne _080C885C + adds r0, r4, 0 + bl sub_80C86A0 + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + adds r0, r4, 0 + bl ConvertInternationalString + b _080C8872 + .align 2, 0 +_080C884C: .4byte gContestMons +_080C8850: .4byte gLinkPlayers +_080C8854: .4byte gBlockRecvBuffer +_080C8858: .4byte gContestMons + 0x2 +_080C885C: + ldrb r0, [r4, 0xA] + cmp r0, 0xFC + bne _080C886C + adds r0, r4, 0 + movs r1, 0x1 + bl ConvertInternationalString + b _080C8872 +_080C886C: + strb r0, [r4, 0x5] + mov r2, r9 + strb r2, [r4, 0xA] +_080C8872: + ldr r0, _080C88A0 @ =gUnknown_0203857D + adds r4, r6, r0 + ldrh r0, [r7, 0x1A] + cmp r0, 0x1 + bne _080C88A4 + mov r3, r9 + strb r3, [r4, 0x7] + ldrb r0, [r4, 0x4] + strb r0, [r4, 0x6] + ldrb r0, [r4, 0x3] + strb r0, [r4, 0x5] + ldrb r0, [r4, 0x2] + strb r0, [r4, 0x4] + ldrb r0, [r4, 0x1] + strb r0, [r4, 0x3] + ldrb r0, [r4] + strb r0, [r4, 0x2] + movs r0, 0x15 + strb r0, [r4, 0x1] + movs r0, 0xFC + strb r0, [r4] + b _080C88AC + .align 2, 0 +_080C88A0: .4byte gUnknown_0203857D +_080C88A4: + ldrb r0, [r4, 0x7] + strb r0, [r4, 0x5] + mov r0, r9 + strb r0, [r4, 0x7] +_080C88AC: + adds r7, 0x1C + adds r6, 0x40 + movs r1, 0x40 + add r10, r1 + movs r2, 0x1 + add r8, r2 + mov r3, r8 + cmp r3, 0x3 + ble _080C881C + ldr r0, _080C88D0 @ =gTasks + ldr r2, [sp] + adds r1, r2, r5 + lsls r1, 3 + adds r1, r0 + ldrh r0, [r1, 0x8] + adds r0, 0x1 + strh r0, [r1, 0x8] + b _080C88EE + .align 2, 0 +_080C88D0: .4byte gTasks +_080C88D4_B: + movs r0, 0 + strh r0, [r2, 0x8] + adds r0, r5, 0 + bl SwitchTaskToFollowupFunc + b _080C88EE +_080C88E0: + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r0, r1 + ldrh r1, [r0, 0x8] + adds r1, 0x1 + strh r1, [r0, 0x8] +_080C88EE: + add sp, 0x4 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80C8734 +.endif thumb_func_start sub_80C88AC sub_80C88AC: @ 80C88AC @@ -497,6 +753,7 @@ _080C8930: .4byte gBlockRecvBuffer _080C8934: .4byte gUnknown_03005D28 thumb_func_end sub_80C88AC +.ifdef ENGLISH thumb_func_start sub_80C8938 sub_80C8938: @ 80C8938 push {r4-r7,lr} @@ -582,6 +839,129 @@ _080C89CE: .align 2, 0 _080C89D8: .4byte gBlockRecvBuffer thumb_func_end sub_80C8938 +.else + thumb_func_start sub_80C8938 +sub_80C8938: @ 80C8938 + push {r4-r7,lr} + mov r7, r8 + push {r7} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r1, _080C8960 @ =gTasks + lsls r5, r4, 2 + adds r0, r5, r4 + lsls r6, r0, 3 + adds r2, r6, r1 + movs r3, 0x8 + ldrsh r0, [r2, r3] + mov r8, r1 + cmp r0, 0x1 + beq _080C89C4 + cmp r0, 0x1 + bgt _080C8964 + cmp r0, 0 + beq _080C896C + b _080C8A0C + .align 2, 0 +_080C8960: .4byte gTasks +_080C8964: + cmp r0, 0x2 + beq _080C8A00 + cmp r0, 0x8 + bne _080C8A0C +_080C896C: + ldr r1, _080C89A0 @ =gBlockSendBuffer + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + mov r2, r8 + adds r4, r0, r2 + ldrh r0, [r4, 0x1A] + strb r0, [r1] + bl GetMultiplayerId + lsls r0, 24 + cmp r0, 0 + bne _080C89B6 + bl sub_8007ECC + lsls r0, 24 + cmp r0, 0 + beq _080C8A1A + movs r3, 0x8 + ldrsh r0, [r4, r3] + cmp r0, 0 + bne _080C89A4 + movs r0, 0x3 + strh r0, [r4, 0x8] + b _080C8A1A + .align 2, 0 +_080C89A0: .4byte gBlockSendBuffer +_080C89A4: + movs r0, 0x1 + bl de_sub_80C9274 + movs r0, 0x2 + bl sub_8007E9C + movs r0, 0x1 + strh r0, [r4, 0x8] + b _080C8A1A +_080C89B6: + movs r0, 0x1 + bl de_sub_80C9294 + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + b _080C8A1A +_080C89C4: + bl sub_80C85D8 + lsls r0, 24 + cmp r0, 0 + beq _080C8A1A + movs r3, 0 + adds r7, r5, 0 + ldr r1, _080C89FC @ =gBlockRecvBuffer + mov r0, r8 + adds r0, 0xA + adds r2, r6, r0 + movs r5, 0x80 + lsls r5, 1 +_080C89DE: + ldrh r0, [r1] + strh r0, [r2] + adds r1, r5 + adds r2, 0x2 + adds r3, 0x1 + cmp r3, 0x3 + ble _080C89DE + adds r1, r7, r4 + lsls r1, 3 + add r1, r8 + ldrh r0, [r1, 0x8] + adds r0, 0x1 + strh r0, [r1, 0x8] + b _080C8A1A + .align 2, 0 +_080C89FC: .4byte gBlockRecvBuffer +_080C8A00: + movs r0, 0 + strh r0, [r2, 0x8] + adds r0, r4, 0 + bl SwitchTaskToFollowupFunc + b _080C8A1A +_080C8A0C: + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + add r0, r8 + ldrh r1, [r0, 0x8] + adds r1, 0x1 + strh r1, [r0, 0x8] +_080C8A1A: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80C8938 +.endif thumb_func_start sub_80C89DC sub_80C89DC: @ 80C89DC @@ -1096,6 +1476,7 @@ _080C8E16: bx r0 thumb_func_end sub_80C8C80 +.ifdef ENGLISH thumb_func_start sub_80C8E1C sub_80C8E1C: @ 80C8E1C push {r4-r7,lr} @@ -1179,6 +1560,131 @@ _080C8EAE: .align 2, 0 _080C8EB8: .4byte gBlockRecvBuffer thumb_func_end sub_80C8E1C +.else + thumb_func_start sub_80C8E1C +sub_80C8E1C: @ 80C8E1C + push {r4-r7,lr} + lsls r0, 24 + lsrs r5, r0, 24 + ldr r1, _080C8E40 @ =gTasks + lsls r4, r5, 2 + adds r0, r4, r5 + lsls r6, r0, 3 + adds r2, r6, r1 + movs r3, 0x8 + ldrsh r0, [r2, r3] + adds r7, r1, 0 + cmp r0, 0x1 + beq _080C8EB0 + cmp r0, 0x1 + bgt _080C8E44 + cmp r0, 0 + beq _080C8E4C + b _080C8EF8 + .align 2, 0 +_080C8E40: .4byte gTasks +_080C8E44: + cmp r0, 0x2 + beq _080C8EEC + cmp r0, 0x8 + bne _080C8EF8 +_080C8E4C: + ldr r1, _080C8E80 @ =gBlockSendBuffer + movs r0, 0x64 + strb r0, [r1] + bl GetMultiplayerId + lsls r0, 24 + cmp r0, 0 + bne _080C8E9A + bl sub_8007ECC + lsls r0, 24 + cmp r0, 0 + beq _080C8F06 + ldr r0, _080C8E84 @ =gTasks + lsls r1, r5, 2 + adds r1, r5 + lsls r1, 3 + adds r4, r1, r0 + movs r1, 0x8 + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _080C8E88 + movs r0, 0x3 + strh r0, [r4, 0x8] + b _080C8F06 + .align 2, 0 +_080C8E80: .4byte gBlockSendBuffer +_080C8E84: .4byte gTasks +_080C8E88: + movs r0, 0 + bl de_sub_80C9274 + movs r0, 0x2 + bl sub_8007E9C + movs r0, 0x1 + strh r0, [r4, 0x8] + b _080C8F06 +_080C8E9A: + movs r0, 0 + bl de_sub_80C9294 + ldr r0, _080C8EAC @ =gTasks + lsls r1, r5, 2 + adds r1, r5 + lsls r1, 3 + adds r1, r0 + b _080C8EDE + .align 2, 0 +_080C8EAC: .4byte gTasks +_080C8EB0: + bl sub_80C85D8 + lsls r0, 24 + cmp r0, 0 + beq _080C8F06 + adds r1, r4, 0 + ldr r4, _080C8EE8 @ =gBlockRecvBuffer + adds r0, r7, 0 + adds r0, 0x12 + adds r2, r6, r0 + movs r6, 0x80 + lsls r6, 1 + movs r3, 0x3 +_080C8ECA: + ldrh r0, [r4] + strh r0, [r2] + adds r4, r6 + adds r2, 0x2 + subs r3, 0x1 + cmp r3, 0 + bge _080C8ECA + adds r1, r5 + lsls r1, 3 + adds r1, r7 +_080C8EDE: + ldrh r0, [r1, 0x8] + adds r0, 0x1 + strh r0, [r1, 0x8] + b _080C8F06 + .align 2, 0 +_080C8EE8: .4byte gBlockRecvBuffer +_080C8EEC: + movs r0, 0 + strh r0, [r2, 0x8] + adds r0, r5, 0 + bl SwitchTaskToFollowupFunc + b _080C8F06 +_080C8EF8: + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r0, r7 + ldrh r1, [r0, 0x8] + adds r1, 0x1 + strh r1, [r0, 0x8] +_080C8F06: + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80C8E1C +.endif thumb_func_start sub_80C8EBC sub_80C8EBC: @ 80C8EBC @@ -1193,7 +1699,7 @@ sub_80C8EBC: @ 80C8EBC movs r1, 0x8 ldrsh r0, [r4, r1] cmp r0, 0 - beq _080C8EE8 + beq _080C8EE8_B cmp r0, 0x1 beq _080C8F00 movs r0, 0 @@ -1203,7 +1709,7 @@ sub_80C8EBC: @ 80C8EBC b _080C8F22 .align 2, 0 _080C8EE4: .4byte gTasks -_080C8EE8: +_080C8EE8_B: bl sub_8007ECC lsls r0, 24 cmp r0, 0 |