diff options
Diffstat (limited to 'asm/record_mixing.s')
-rw-r--r-- | asm/record_mixing.s | 1780 |
1 files changed, 1780 insertions, 0 deletions
diff --git a/asm/record_mixing.s b/asm/record_mixing.s new file mode 100644 index 000000000..c00d6219b --- /dev/null +++ b/asm/record_mixing.s @@ -0,0 +1,1780 @@ + .include "constants/gba_constants.s" + .include "constants/species_constants.s" + .include "asm/macros.s" + + .syntax unified + + .text + + thumb_func_start sub_80B929C +sub_80B929C: @ 80B929C + push {lr} + ldr r0, _080B92A8 @ =sub_80B9484 + bl sub_8083A84 + pop {r0} + bx r0 + .align 2, 0 +_080B92A8: .4byte sub_80B9484 + thumb_func_end sub_80B929C + + thumb_func_start sub_80B92AC +sub_80B92AC: @ 80B92AC + push {r4-r6,lr} + bl sub_80BC300 + bl sub_80C045C + ldr r6, _080B9364 @ =0x02018000 + ldr r0, _080B9368 @ =gUnknown_083D026C + ldr r1, [r0] + movs r2, 0xC8 + lsls r2, 4 + adds r0, r6, 0 + bl memcpy + movs r1, 0xC8 + lsls r1, 4 + adds r0, r6, r1 + ldr r1, _080B936C @ =gUnknown_083D0270 + ldr r1, [r1] + movs r2, 0xE1 + lsls r2, 2 + bl memcpy + ldr r2, _080B9370 @ =0x00001004 + adds r0, r6, r2 + ldr r1, _080B9374 @ =gUnknown_083D0274 + ldr r1, [r1] + movs r2, 0x40 + bl memcpy + ldr r1, _080B9378 @ =0x00001044 + adds r0, r6, r1 + ldr r1, _080B937C @ =gUnknown_083D0278 + ldr r1, [r1] + movs r2, 0x40 + bl memcpy + ldr r2, _080B9380 @ =0x00001084 + adds r0, r6, r2 + ldr r1, _080B9384 @ =gUnknown_083D027C + ldr r1, [r1] + movs r2, 0x28 + bl memcpy + ldr r5, _080B9388 @ =gUnknown_02038738 + ldr r4, _080B938C @ =gSaveBlock1 + ldr r0, _080B9390 @ =0x0000303c + adds r1, r4, r0 + adds r0, r5, 0 + movs r2, 0x38 + bl memcpy + ldr r2, _080B9394 @ =0x00003074 + adds r1, r4, r2 + adds r0, r5, 0 + adds r0, 0x38 + movs r2, 0x38 + bl memcpy + ldr r0, _080B9398 @ =0x00002f9c + adds r4, r0 + adds r0, r4, 0 + adds r1, r5, 0 + bl sub_8041324 + ldr r1, _080B939C @ =0x000010ac + adds r0, r6, r1 + ldr r1, _080B93A0 @ =gUnknown_083D0280 + ldr r1, [r1] + movs r2, 0x78 + bl memcpy + ldr r2, _080B93A4 @ =0x00001124 + adds r0, r6, r2 + ldr r1, _080B93A8 @ =gUnknown_083D0284 + ldr r1, [r1] + movs r2, 0xA4 + bl memcpy + bl GetMultiplayerId + lsls r0, 24 + cmp r0, 0 + bne _080B935C + bl sub_8126338 + ldr r2, _080B93AC @ =0x000011c8 + adds r1, r6, r2 + strh r0, [r1] +_080B935C: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080B9364: .4byte 0x02018000 +_080B9368: .4byte gUnknown_083D026C +_080B936C: .4byte gUnknown_083D0270 +_080B9370: .4byte 0x00001004 +_080B9374: .4byte gUnknown_083D0274 +_080B9378: .4byte 0x00001044 +_080B937C: .4byte gUnknown_083D0278 +_080B9380: .4byte 0x00001084 +_080B9384: .4byte gUnknown_083D027C +_080B9388: .4byte gUnknown_02038738 +_080B938C: .4byte gSaveBlock1 +_080B9390: .4byte 0x0000303c +_080B9394: .4byte 0x00003074 +_080B9398: .4byte 0x00002f9c +_080B939C: .4byte 0x000010ac +_080B93A0: .4byte gUnknown_083D0280 +_080B93A4: .4byte 0x00001124 +_080B93A8: .4byte gUnknown_083D0284 +_080B93AC: .4byte 0x000011c8 + thumb_func_end sub_80B92AC + + thumb_func_start sub_80B93B0 +sub_80B93B0: @ 80B93B0 + push {r4-r6,lr} + mov r6, r8 + push {r6} + adds r4, r0, 0 + ldr r5, _080B9430 @ =0x02008000 + ldr r6, _080B9434 @ =0x00001230 + lsls r4, 24 + lsrs r4, 24 + adds r0, r5, 0 + adds r1, r6, 0 + adds r2, r4, 0 + bl sub_80BD674 + movs r0, 0xC8 + lsls r0, 4 + adds r0, r5 + mov r8, r0 + adds r1, r6, 0 + adds r2, r4, 0 + bl sub_80BFD44 + ldr r1, _080B9438 @ =0x00001004 + adds r0, r5, r1 + adds r1, r6, 0 + adds r2, r4, 0 + bl sub_80C0514 + ldr r1, _080B943C @ =0x00001044 + adds r0, r5, r1 + adds r1, r6, 0 + adds r2, r4, 0 + bl sub_80B9B1C + ldr r1, _080B9440 @ =0x00001084 + adds r0, r5, r1 + adds r1, r6, 0 + adds r2, r4, 0 + bl sub_80FA4E4 + ldr r1, _080B9444 @ =0x000010ac + adds r0, r5, r1 + adds r1, r6, 0 + adds r2, r4, 0 + mov r3, r8 + bl sub_80B9C6C + ldr r1, _080B9448 @ =0x00001124 + adds r0, r5, r1 + adds r1, r6, 0 + adds r2, r4, 0 + bl sub_80B9B70 + ldr r0, _080B944C @ =0x000011c8 + adds r5, r0 + adds r0, r5, 0 + adds r1, r4, 0 + bl sub_80B9F3C + pop {r3} + mov r8, r3 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080B9430: .4byte 0x02008000 +_080B9434: .4byte 0x00001230 +_080B9438: .4byte 0x00001004 +_080B943C: .4byte 0x00001044 +_080B9440: .4byte 0x00001084 +_080B9444: .4byte 0x000010ac +_080B9448: .4byte 0x00001124 +_080B944C: .4byte 0x000011c8 + thumb_func_end sub_80B93B0 + + thumb_func_start sub_80B9450 +sub_80B9450: @ 80B9450 + push {r4,lr} + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080B9480 @ =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r4, r1, r2 + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x32 + bne _080B9478 + movs r0, 0xE2 + bl PlaySE + movs r0, 0 + strh r0, [r4, 0x8] +_080B9478: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080B9480: .4byte gTasks + thumb_func_end sub_80B9450 + + thumb_func_start sub_80B9484 +sub_80B9484: @ 80B9484 + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + ldr r1, _080B94A8 @ =gTasks + 0x8 + adds r4, r0, r1 + movs r1, 0 + ldrsh r0, [r4, r1] + cmp r0, 0x5 + bls _080B949E + b _080B95E6 +_080B949E: + lsls r0, 2 + ldr r1, _080B94AC @ =_080B94B0 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080B94A8: .4byte gTasks + 0x8 +_080B94AC: .4byte _080B94B0 + .align 2, 0 +_080B94B0: + .4byte _080B94C8 + .4byte _080B951C + .4byte _080B9550 + .4byte _080B9570 + .4byte _080B95AC + .4byte _080B95C0 +_080B94C8: + ldr r0, _080B950C @ =gUnknown_0202E8CE + ldrb r0, [r0] + bl sub_8007270 + movs r0, 0x80 + lsls r0, 7 + movs r1, 0x1 + bl VarSet + ldr r1, _080B9510 @ =gUnknown_03000718 + movs r0, 0 + strb r0, [r1] + bl sub_80B92AC + bl sub_80C71D8 + movs r0, 0x1 + strh r0, [r4] + ldr r0, _080B9514 @ =sub_80B95F0 + movs r1, 0x50 + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x14] + ldr r0, _080B9518 @ =sub_80B9450 + movs r1, 0x51 + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x1E] + b _080B95E6 + .align 2, 0 +_080B950C: .4byte gUnknown_0202E8CE +_080B9510: .4byte gUnknown_03000718 +_080B9514: .4byte sub_80B95F0 +_080B9518: .4byte sub_80B9450 +_080B951C: + ldr r2, _080B9548 @ =gTasks + movs r0, 0x14 + ldrsh r1, [r4, r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r2 + ldrb r0, [r0, 0x4] + cmp r0, 0 + bne _080B95E6 + movs r0, 0x2 + strh r0, [r4] + ldr r0, _080B954C @ =0x00000834 + bl FlagSet + bl sub_80C7240 + ldrb r0, [r4, 0x1E] + bl DestroyTask + b _080B95E6 + .align 2, 0 +_080B9548: .4byte gTasks +_080B954C: .4byte 0x00000834 +_080B9550: + ldr r0, _080B956C @ =sub_80BA00C + movs r1, 0xA + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x14] + movs r0, 0x3 + strh r0, [r4] + movs r0, 0xE0 + bl PlaySE + b _080B95E6 + .align 2, 0 +_080B956C: .4byte sub_80BA00C +_080B9570: + ldr r2, _080B95A4 @ =gTasks + movs r0, 0x14 + ldrsh r1, [r4, r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r2 + ldrb r5, [r0, 0x4] + cmp r5, 0 + bne _080B95E6 + movs r0, 0x4 + strh r0, [r4] + bl sub_8083664 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x14] + bl sub_80720B0 + ldr r0, _080B95A8 @ =gOtherText_MixingComplete + movs r1, 0x2 + movs r2, 0xF + bl MenuPrint + strh r5, [r4, 0x10] + b _080B95E6 + .align 2, 0 +_080B95A4: .4byte gTasks +_080B95A8: .4byte gOtherText_MixingComplete +_080B95AC: + ldrh r0, [r4, 0x10] + adds r0, 0x1 + strh r0, [r4, 0x10] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x3C + ble _080B95E6 + movs r0, 0x5 + strh r0, [r4] + b _080B95E6 +_080B95C0: + ldr r2, _080B95EC @ =gTasks + movs r0, 0x14 + ldrsh r1, [r4, r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r2 + ldrb r0, [r0, 0x4] + cmp r0, 0 + bne _080B95E6 + bl sub_8055588 + bl MenuZeroFillScreen + adds r0, r5, 0 + bl DestroyTask + bl EnableBothScriptContexts +_080B95E6: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080B95EC: .4byte gTasks + thumb_func_end sub_80B9484 + + thumb_func_start sub_80B95F0 +sub_80B95F0: @ 80B95F0 + push {r4-r7,lr} + lsls r0, 24 + lsrs r6, r0, 24 + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 3 + ldr r7, _080B961C @ =gTasks + adds r5, r0, r7 + movs r0, 0x8 + ldrsh r1, [r5, r0] + cmp r1, 0x64 + beq _080B9678 + cmp r1, 0x64 + bgt _080B962E + cmp r1, 0x1 + bne _080B9612 + b _080B9734 +_080B9612: + cmp r1, 0x1 + bgt _080B9620 + cmp r1, 0 + beq _080B9650 + b _080B97D6 + .align 2, 0 +_080B961C: .4byte gTasks +_080B9620: + cmp r1, 0x2 + bne _080B9626 + b _080B9760 +_080B9626: + cmp r1, 0x5 + bne _080B962C + b _080B97C0 +_080B962C: + b _080B97D6 +_080B962E: + cmp r1, 0xC9 + beq _080B96D0 + cmp r1, 0xC9 + bgt _080B963C + cmp r1, 0x65 + beq _080B9690 + b _080B97D6 +_080B963C: + ldr r0, _080B964C @ =0x0000012d + cmp r1, r0 + beq _080B9706 + adds r0, 0x63 + cmp r1, r0 + beq _080B971C + b _080B97D6 + .align 2, 0 +_080B964C: .4byte 0x0000012d +_080B9650: + bl sub_80B9A78 + bl MenuDisplayMessageBox + ldr r0, _080B9674 @ =gOtherText_MixingRecordsWithFriend + movs r1, 0x2 + movs r2, 0xF + bl MenuPrint + movs r0, 0xE1 + lsls r0, 3 + strh r0, [r5, 0x18] + movs r0, 0xC8 + lsls r0, 1 + strh r0, [r5, 0x8] + bl ClearLinkCallback_2 + b _080B97D6 + .align 2, 0 +_080B9674: .4byte gOtherText_MixingRecordsWithFriend +_080B9678: + ldrh r0, [r5, 0x20] + adds r0, 0x1 + strh r0, [r5, 0x20] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x14 + bgt _080B9688 + b _080B97D6 +_080B9688: + movs r0, 0 + strh r0, [r5, 0x20] + movs r0, 0x65 + b _080B97D4 +_080B9690: + bl GetLinkPlayerCount_2 + lsls r0, 24 + lsrs r4, r0, 24 + bl IsLinkMaster + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080B96C2 + bl sub_800820C + lsls r0, 24 + lsrs r0, 24 + cmp r4, r0 + beq _080B96B2 + b _080B97D6 +_080B96B2: + movs r0, 0x15 + bl PlaySE + movs r1, 0 + movs r0, 0xC9 + strh r0, [r5, 0x8] + strh r1, [r5, 0x20] + b _080B97D6 +_080B96C2: + movs r0, 0x16 + bl PlaySE + ldr r0, _080B96CC @ =0x0000012d + b _080B97D4 + .align 2, 0 +_080B96CC: .4byte 0x0000012d +_080B96D0: + bl sub_800820C + adds r4, r0, 0 + bl GetLinkPlayerCount_2 + lsls r4, 24 + lsls r0, 24 + cmp r4, r0 + bne _080B97D6 + ldrh r4, [r5, 0x20] + adds r4, 0x1 + strh r4, [r5, 0x20] + lsls r4, 16 + asrs r4, 16 + bl GetLinkPlayerCount_2 + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 4 + subs r1, r0 + lsls r1, 1 + cmp r4, r1 + ble _080B97D6 + bl sub_8007F4C + movs r0, 0x1 + b _080B97D4 +_080B9706: + bl sub_800820C + adds r4, r0, 0 + bl GetLinkPlayerCount_2 + lsls r4, 24 + lsls r0, 24 + cmp r4, r0 + bne _080B97D6 + movs r0, 0x1 + b _080B97D4 +_080B971C: + ldrh r0, [r5, 0x20] + adds r0, 0x1 + strh r0, [r5, 0x20] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x14 + ble _080B97D6 + movs r0, 0x1 + strh r0, [r5, 0x8] + movs r0, 0 + strh r0, [r5, 0x20] + b _080B97D6 +_080B9734: + ldr r0, _080B9758 @ =gReceivedRemoteLinkPlayers + ldrb r0, [r0] + cmp r0, 0 + beq _080B97D6 + ldr r4, _080B975C @ =gStringVar1 + bl sub_80B9A58 + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + adds r0, r4, 0 + movs r2, 0x2 + movs r3, 0x2 + bl ConvertIntToDecimalStringN + movs r0, 0x5 + b _080B97D4 + .align 2, 0 +_080B9758: .4byte gReceivedRemoteLinkPlayers +_080B975C: .4byte gStringVar1 +_080B9760: + bl GetLinkPlayerCount_2 + lsls r0, 24 + lsrs r0, 24 + movs r1, 0 + strh r0, [r5, 0x14] + strh r1, [r5, 0x8] + bl sub_80B9A58 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x12] + ldr r0, _080B97B0 @ =sub_80B97DC + str r0, [r5] + ldr r4, _080B97B4 @ =0x02018000 + adds r1, r5, 0 + adds r1, 0xC + adds r0, r4, 0 + bl sub_80B9A50 + ldr r0, _080B97B8 @ =sub_80B9890 + movs r1, 0x50 + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x1C] + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r0, r1, r7 + strh r6, [r0, 0x8] + ldr r0, _080B97BC @ =0xffff0000 + adds r4, r0 + adds r1, r7, r1 + adds r1, 0x12 + adds r0, r4, 0 + bl sub_80B9A50 + b _080B97D6 + .align 2, 0 +_080B97B0: .4byte sub_80B97DC +_080B97B4: .4byte 0x02018000 +_080B97B8: .4byte sub_80B9890 +_080B97BC: .4byte 0xffff0000 +_080B97C0: + ldrh r0, [r5, 0x1C] + adds r0, 0x1 + strh r0, [r5, 0x1C] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x3C + ble _080B97D6 + movs r0, 0 + strh r0, [r5, 0x1C] + movs r0, 0x2 +_080B97D4: + strh r0, [r5, 0x8] +_080B97D6: + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80B95F0 + + thumb_func_start sub_80B97DC +sub_80B97DC: @ 80B97DC + push {r4,lr} + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + ldr r0, _080B9800 @ =gTasks + adds r4, r1, r0 + movs r2, 0x8 + ldrsh r1, [r4, r2] + adds r2, r0, 0 + cmp r1, 0x4 + bhi _080B9884 + lsls r0, r1, 2 + ldr r1, _080B9804 @ =_080B9808 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080B9800: .4byte gTasks +_080B9804: .4byte _080B9808 + .align 2, 0 +_080B9808: + .4byte _080B981C + .4byte _080B9840 + .4byte _080B9884 + .4byte _080B9852 + .4byte _080B986E +_080B981C: + adds r0, r4, 0 + adds r0, 0xC + bl sub_80B9A44 + adds r1, r0, 0 + movs r0, 0x10 + ldrsh r2, [r4, r0] + movs r0, 0xC8 + muls r0, r2 + adds r1, r0 + ldr r0, _080B983C @ =gBlockSendBuffer + movs r2, 0xC8 + bl memcpy + b _080B9860 + .align 2, 0 +_080B983C: .4byte gBlockSendBuffer +_080B9840: + bl GetMultiplayerId + lsls r0, 24 + cmp r0, 0 + bne _080B9860 + movs r0, 0x1 + bl sub_8007E9C + b _080B9860 +_080B9852: + ldrh r0, [r4, 0x10] + adds r0, 0x1 + strh r0, [r4, 0x10] + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x18 + bne _080B9868 +_080B9860: + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + b _080B9884 +_080B9868: + movs r0, 0 + strh r0, [r4, 0x8] + b _080B9884 +_080B986E: + movs r1, 0x1C + ldrsh r0, [r4, r1] + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + ldrb r0, [r1, 0x4] + cmp r0, 0 + bne _080B9884 + ldr r0, _080B988C @ =sub_80B9A1C + str r0, [r4] +_080B9884: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080B988C: .4byte sub_80B9A1C + thumb_func_end sub_80B97DC + + thumb_func_start sub_80B9890 +sub_80B9890: @ 80B9890 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x10 + lsls r0, 24 + lsrs r0, 24 + str r0, [sp] + lsls r0, 2 + ldr r1, [sp] + adds r0, r1 + lsls r0, 3 + ldr r1, _080B98D0 @ =gTasks + adds r0, r1 + mov r10, r0 + bl GetBlockRecievedStatus + lsls r0, 24 + lsrs r0, 24 + str r0, [sp, 0x4] + movs r2, 0 + str r2, [sp, 0x8] + bl sub_8008198 + lsls r0, 24 + lsrs r0, 24 + ldr r3, [sp, 0x4] + cmp r3, r0 + bne _080B998A + movs r0, 0 + b _080B9966 + .align 2, 0 +_080B98D0: .4byte gTasks +_080B98D4: + ldr r1, [sp, 0x4] + mov r2, r9 + asrs r1, r2 + movs r0, 0x1 + ands r1, r0 + movs r3, 0x1 + add r3, r9 + mov r8, r3 + cmp r1, 0 + beq _080B9960 + mov r0, r10 + adds r0, 0x12 + bl sub_80B9A44 + mov r1, r8 + lsls r4, r1, 1 + mov r5, r10 + adds r5, 0x8 + adds r4, r5, r4 + movs r2, 0 + ldrsh r1, [r4, r2] + movs r3, 0xC8 + muls r1, r3 + adds r0, r1 + ldr r7, _080B9930 @ =0x00001230 + mov r1, r9 + muls r1, r7 + adds r6, r0, r1 + mov r0, r9 + str r3, [sp, 0xC] + bl sub_80B9A68 + adds r1, r0, 0 + movs r0, 0 + ldrsh r2, [r4, r0] + adds r0, r2, 0x1 + ldr r3, [sp, 0xC] + muls r0, r3 + cmp r0, r7 + bls _080B9934 + muls r2, r3 + subs r2, r7, r2 + adds r0, r6, 0 + bl memcpy + b _080B993C + .align 2, 0 +_080B9930: .4byte 0x00001230 +_080B9934: + adds r0, r6, 0 + movs r2, 0xC8 + bl memcpy +_080B993C: + mov r0, r9 + bl ResetBlockReceivedFlag + mov r2, r8 + lsls r1, r2, 1 + adds r1, r5, r1 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x18 + bne _080B9960 + ldr r0, [sp, 0x8] + adds r0, 0x1 + lsls r0, 24 + lsrs r0, 24 + str r0, [sp, 0x8] +_080B9960: + mov r3, r8 + lsls r0, r3, 24 + lsrs r0, 24 +_080B9966: + mov r9, r0 + bl GetLinkPlayerCount + lsls r0, 24 + lsrs r0, 24 + cmp r9, r0 + bcc _080B98D4 + ldr r2, _080B99B0 @ =gTasks + mov r0, r10 + movs r3, 0x8 + ldrsh r1, [r0, r3] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r2 + ldrh r1, [r0, 0x8] + adds r1, 0x1 + strh r1, [r0, 0x8] +_080B998A: + bl GetLinkPlayerCount + lsls r0, 24 + lsrs r0, 24 + ldr r1, [sp, 0x8] + cmp r1, r0 + bne _080B999E + ldr r0, [sp] + bl DestroyTask +_080B999E: + add sp, 0x10 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080B99B0: .4byte gTasks + thumb_func_end sub_80B9890 + + thumb_func_start sub_80B99B4 +sub_80B99B4: @ 80B99B4 + push {r4,lr} + lsls r0, 24 + lsrs r3, r0, 24 + lsls r0, r3, 2 + adds r0, r3 + lsls r0, 3 + ldr r2, _080B99E4 @ =gTasks + adds r0, r2 + movs r4, 0x1C + ldrsh r1, [r0, r4] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r2 + ldrb r0, [r0, 0x4] + cmp r0, 0 + bne _080B99DC + adds r0, r3, 0 + bl DestroyTask +_080B99DC: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080B99E4: .4byte gTasks + thumb_func_end sub_80B99B4 + + thumb_func_start sub_80B99E8 +sub_80B99E8: @ 80B99E8 + push {lr} + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + ldr r0, _080B9A10 @ =gTasks + adds r1, r0 + ldr r0, _080B9A14 @ =sub_80B99B4 + str r0, [r1] + ldr r0, _080B9A18 @ =gUnknown_03000718 + ldrb r0, [r0] + cmp r0, 0x1 + bne _080B9A0C + movs r2, 0x12 + ldrsh r0, [r1, r2] + bl sub_80B93B0 +_080B9A0C: + pop {r0} + bx r0 + .align 2, 0 +_080B9A10: .4byte gTasks +_080B9A14: .4byte sub_80B99B4 +_080B9A18: .4byte gUnknown_03000718 + thumb_func_end sub_80B99E8 + + thumb_func_start sub_80B9A1C +sub_80B9A1C: @ 80B9A1C + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080B9A38 @ =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + ldr r0, _080B9A3C @ =sub_80B99E8 + str r0, [r1] + ldr r1, _080B9A40 @ =gUnknown_03000718 + movs r0, 0x1 + strb r0, [r1] + bx lr + .align 2, 0 +_080B9A38: .4byte gTasks +_080B9A3C: .4byte sub_80B99E8 +_080B9A40: .4byte gUnknown_03000718 + thumb_func_end sub_80B9A1C + + thumb_func_start sub_80B9A44 +sub_80B9A44: @ 80B9A44 + adds r1, r0, 0 + ldrh r0, [r1] + ldrh r1, [r1, 0x2] + lsls r1, 16 + orrs r0, r1 + bx lr + thumb_func_end sub_80B9A44 + + thumb_func_start sub_80B9A50 +sub_80B9A50: @ 80B9A50 + strh r0, [r1] + lsrs r0, 16 + strh r0, [r1, 0x2] + bx lr + thumb_func_end sub_80B9A50 + + thumb_func_start sub_80B9A58 +sub_80B9A58: @ 80B9A58 + push {lr} + bl GetMultiplayerId + lsls r0, 24 + lsrs r0, 24 + pop {r1} + bx r1 + thumb_func_end sub_80B9A58 + + thumb_func_start sub_80B9A68 +sub_80B9A68: @ 80B9A68 + lsls r0, 24 + lsrs r0, 16 + ldr r1, _080B9A74 @ =gBlockRecvBuffer + adds r0, r1 + bx lr + .align 2, 0 +_080B9A74: .4byte gBlockRecvBuffer + thumb_func_end sub_80B9A68 + + thumb_func_start sub_80B9A78 +sub_80B9A78: @ 80B9A78 + ldr r1, _080B9A80 @ =gUnknown_03005D2C + ldr r0, _080B9A84 @ =0x00001230 + str r0, [r1] + bx lr + .align 2, 0 +_080B9A80: .4byte gUnknown_03005D2C +_080B9A84: .4byte 0x00001230 + thumb_func_end sub_80B9A78 + + thumb_func_start sub_80B9A88 +sub_80B9A88: @ 80B9A88 + push {r4,lr} + adds r4, r0, 0 + bl GetLinkPlayerCount + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x3 + beq _080B9AC0 + cmp r0, 0x3 + bhi _080B9AA2 + cmp r0, 0x2 + beq _080B9AA8 + b _080B9B10 +_080B9AA2: + cmp r0, 0x4 + beq _080B9AEC + b _080B9B10 +_080B9AA8: + movs r2, 0 + ldr r3, _080B9ABC @ =gUnknown_083D0288 +_080B9AAC: + adds r0, r4, r2 + adds r1, r2, r3 + ldrb r1, [r1] + strb r1, [r0] + adds r2, 0x1 + cmp r2, 0x1 + bls _080B9AAC + b _080B9B10 + .align 2, 0 +_080B9ABC: .4byte gUnknown_083D0288 +_080B9AC0: + movs r0, 0 + bl GetLinkPlayerTrainerId + adds r3, r0, 0 + movs r0, 0x1 + ands r3, r0 + movs r2, 0 + ldr r1, _080B9AE8 @ =gUnknown_083D028A + lsls r0, r3, 1 + adds r0, r3 + adds r3, r0, r1 +_080B9AD6: + adds r1, r4, r2 + ldrb r0, [r3] + strb r0, [r1] + adds r3, 0x1 + adds r2, 0x1 + cmp r2, 0x2 + bls _080B9AD6 + b _080B9B10 + .align 2, 0 +_080B9AE8: .4byte gUnknown_083D028A +_080B9AEC: + movs r0, 0 + bl GetLinkPlayerTrainerId + movs r1, 0x9 + bl __umodsi3 + adds r3, r0, 0 + movs r2, 0 + ldr r1, _080B9B18 @ =gUnknown_083D0290 + lsls r0, r3, 2 + adds r3, r0, r1 +_080B9B02: + adds r1, r4, r2 + ldrb r0, [r3] + strb r0, [r1] + adds r3, 0x1 + adds r2, 0x1 + cmp r2, 0x3 + bls _080B9B02 +_080B9B10: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080B9B18: .4byte gUnknown_083D0290 + thumb_func_end sub_80B9A88 + + thumb_func_start sub_80B9B1C +sub_80B9B1C: @ 80B9B1C + push {r4-r6,lr} + mov r6, r8 + push {r6} + sub sp, 0x4 + adds r5, r0, 0 + mov r8, r1 + lsls r4, r2, 24 + lsrs r4, 24 + mov r0, sp + bl sub_80B9A88 + mov r0, r8 + muls r0, r4 + adds r0, r5, r0 + ldr r1, _080B9B6C @ =gUnknown_083D0278 + ldr r6, [r1] + adds r1, r6, 0 + movs r2, 0x40 + bl memcpy + mov r1, sp + adds r0, r1, r4 + ldrb r0, [r0] + mov r1, r8 + muls r1, r0 + adds r0, r1, 0 + adds r5, r0 + adds r0, r6, 0 + adds r1, r5, 0 + movs r2, 0x40 + bl memcpy + bl sub_80F7F30 + add sp, 0x4 + pop {r3} + mov r8, r3 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080B9B6C: .4byte gUnknown_083D0278 + thumb_func_end sub_80B9B1C + + thumb_func_start sub_80B9B70 +sub_80B9B70: @ 80B9B70 + push {r4-r6,lr} + mov r6, r9 + mov r5, r8 + push {r5,r6} + adds r6, r0, 0 + mov r9, r1 + lsls r4, r2, 24 + lsrs r4, 24 + ldr r0, _080B9BB8 @ =gUnknown_0300071C + mov r8, r0 + bl sub_80B9A88 + mov r5, r9 + muls r5, r4 + adds r5, r6, r5 + add r4, r8 + ldrb r0, [r4] + mov r1, r9 + muls r1, r0 + adds r0, r1, 0 + adds r6, r0 + adds r0, r5, 0 + adds r1, r6, 0 + movs r2, 0xA4 + bl memcpy + adds r0, r5, 0 + bl sub_8134AC0 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080B9BB8: .4byte gUnknown_0300071C + thumb_func_end sub_80B9B70 + + thumb_func_start sub_80B9BBC +sub_80B9BBC: @ 80B9BBC + ldrh r0, [r0, 0x20] + lsls r0, 24 + lsrs r0, 24 + bx lr + thumb_func_end sub_80B9BBC + + thumb_func_start sub_80B9BC4 +sub_80B9BC4: @ 80B9BC4 + push {r4-r6,lr} + mov r6, r10 + mov r5, r9 + mov r4, r8 + push {r4-r6} + sub sp, 0x38 + mov r8, r0 + mov r10, r1 + mov r9, r2 + adds r4, r3, 0 + ldr r5, [sp, 0x54] + lsls r4, 24 + lsls r5, 24 + lsrs r5, 24 + lsrs r4, 23 + add r4, r9 + ldrb r0, [r4] + mov r6, r10 + muls r6, r0 + add r6, r8 + ldrb r0, [r4, 0x1] + lsls r1, r0, 3 + subs r1, r0 + lsls r1, 3 + adds r1, r6, r1 + mov r0, sp + movs r2, 0x38 + bl memcpy + lsls r5, 1 + add r5, r9 + ldrb r0, [r5] + mov r1, r10 + muls r1, r0 + adds r0, r1, 0 + add r8, r0 + ldrb r1, [r4, 0x1] + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 3 + adds r6, r0 + ldrb r0, [r5, 0x1] + lsls r1, r0, 3 + subs r1, r0 + lsls r1, 3 + add r1, r8 + adds r0, r6, 0 + movs r2, 0x38 + bl memcpy + ldrb r1, [r5, 0x1] + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 3 + add r8, r0 + mov r0, r8 + mov r1, sp + movs r2, 0x38 + bl memcpy + add sp, 0x38 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_80B9BC4 + + thumb_func_start sub_80B9C4C +sub_80B9C4C: @ 80B9C4C + push {lr} + adds r3, r0, 0 + movs r2, 0 + movs r1, 0 +_080B9C54: + adds r0, r3, r1 + ldrb r0, [r0] + adds r0, r2, r0 + lsls r0, 24 + lsrs r2, r0, 24 + adds r1, 0x1 + cmp r1, 0xFF + ble _080B9C54 + adds r0, r2, 0 + pop {r1} + bx r1 + thumb_func_end sub_80B9C4C + + thumb_func_start sub_80B9C6C +sub_80B9C6C: @ 80B9C6C + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x58 + str r0, [sp, 0x2C] + str r1, [sp, 0x30] + str r3, [sp, 0x38] + lsls r2, 24 + lsrs r2, 24 + str r2, [sp, 0x34] + bl Random + lsls r0, 16 + lsrs r0, 16 + str r0, [sp, 0x40] + ldr r0, _080B9DA8 @ =gLinkPlayers + ldrh r0, [r0, 0x4] + bl SeedRng + bl GetLinkPlayerCount + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + movs r3, 0 + add r0, sp, 0x1C + mov r9, r0 + movs r1, 0x1D + add r1, sp + mov r10, r1 + mov r2, sp + adds r2, 0xC + str r2, [sp, 0x4C] + movs r7, 0xFF + add r4, sp, 0x8 + movs r2, 0 + mov r6, r9 + mov r5, r10 +_080B9CBC: + mov r1, sp + adds r1, r3 + adds r1, 0x4 + ldrb r0, [r1] + orrs r0, r7 + strb r0, [r1] + adds r0, r4, r3 + strb r2, [r0] + lsls r1, r3, 1 + adds r0, r6, r1 + strb r2, [r0] + adds r1, r5, r1 + strb r2, [r1] + adds r0, r3, 0x1 + lsls r0, 16 + lsrs r3, r0, 16 + cmp r3, 0x3 + bls _080B9CBC + movs r4, 0 + str r4, [sp, 0x3C] + movs r3, 0 + mov r1, r8 + lsls r0, r1, 16 + lsrs r1, r0, 16 + str r0, [sp, 0x50] + ldr r4, [sp, 0x30] + ldr r0, [sp, 0x34] + adds r2, r4, 0 + muls r2, r0 + str r2, [sp, 0x48] + ldr r2, [sp, 0x3C] + cmp r2, r1 + bcs _080B9D46 + mov r8, r1 +_080B9D00: + ldr r4, [sp, 0x30] + adds r0, r4, 0 + muls r0, r3 + ldr r1, [sp, 0x2C] + adds r6, r1, r0 + ldr r0, [r6, 0x70] + cmp r0, 0 + beq _080B9D3C + movs r7, 0 + cmp r7, r0 + bcs _080B9D3C + adds r4, r6, 0 + adds r4, 0x74 + mov r2, r9 + lsls r1, r3, 1 + movs r5, 0x1 +_080B9D20: + lsls r0, r7, 1 + adds r0, r4, r0 + ldrh r0, [r0] + cmp r0, 0 + bne _080B9D30 + adds r0, r7, r1 + adds r0, r2, r0 + strb r5, [r0] +_080B9D30: + adds r0, r7, 0x1 + lsls r0, 16 + lsrs r7, r0, 16 + ldr r0, [r6, 0x70] + cmp r7, r0 + bcc _080B9D20 +_080B9D3C: + adds r0, r3, 0x1 + lsls r0, 16 + lsrs r3, r0, 16 + cmp r3, r8 + bcc _080B9D00 +_080B9D46: + movs r7, 0 + movs r3, 0 + ldr r2, [sp, 0x50] + cmp r2, 0 + beq _080B9E3E + mov r4, sp + adds r4, 0x24 + str r4, [sp, 0x44] + movs r0, 0x25 + add r0, sp + mov r8, r0 +_080B9D5C: + ldr r1, [sp, 0x30] + adds r0, r1, 0 + muls r0, r3 + ldr r2, [sp, 0x2C] + adds r6, r2, r0 + lsls r1, r3, 1 + mov r4, r9 + adds r0, r4, r1 + ldrb r0, [r0] + cmp r0, 0x1 + beq _080B9D7C + mov r2, r10 + adds r0, r2, r1 + ldrb r0, [r0] + cmp r0, 0x1 + bne _080B9D86 +_080B9D7C: + ldr r0, [sp, 0x3C] + adds r0, 0x1 + lsls r0, 24 + lsrs r0, 24 + str r0, [sp, 0x3C] +_080B9D86: + mov r4, r9 + adds r0, r4, r1 + ldrb r0, [r0] + cmp r0, 0x1 + bne _080B9DAC + mov r2, r10 + adds r0, r2, r1 + ldrb r2, [r0] + cmp r2, 0 + bne _080B9DAC +_080B9D9A: + lsls r1, r7, 1 + ldr r4, [sp, 0x44] + adds r0, r4, r1 + strb r3, [r0] + add r1, r8 + strb r2, [r1] + b _080B9E2C + .align 2, 0 +_080B9DA8: .4byte gLinkPlayers +_080B9DAC: + mov r2, r9 + adds r0, r2, r1 + ldrb r0, [r0] + cmp r0, 0 + bne _080B9DC0 + mov r4, r10 + adds r0, r4, r1 + ldrb r2, [r0] + cmp r2, 0x1 + beq _080B9D9A +_080B9DC0: + mov r2, r9 + adds r0, r2, r1 + ldrb r0, [r0] + cmp r0, 0x1 + bne _080B9E32 + mov r4, r10 + adds r0, r4, r1 + ldrb r0, [r0] + cmp r0, 0x1 + bne _080B9E32 + lsls r5, r7, 1 + ldr r1, [sp, 0x44] + adds r0, r1, r5 + strb r3, [r0] + adds r0, r6, 0 + str r3, [sp, 0x54] + bl sub_80B9BBC + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + adds r0, r6, 0 + adds r0, 0x38 + bl sub_80B9BBC + lsls r0, 24 + lsrs r1, r0, 24 + ldr r3, [sp, 0x54] + cmp r4, 0 + bne _080B9E0A + cmp r1, 0 + beq _080B9E0E + mov r2, r8 + adds r1, r2, r5 + movs r0, 0x1 + strb r0, [r1] + b _080B9E2C +_080B9E0A: + cmp r1, 0 + beq _080B9E26 +_080B9E0E: + str r3, [sp, 0x54] + bl Random + mov r4, r8 + adds r2, r4, r5 + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x1 + ands r0, r1 + strb r0, [r2] + ldr r3, [sp, 0x54] + b _080B9E2C +_080B9E26: + mov r2, r8 + adds r0, r2, r5 + strb r1, [r0] +_080B9E2C: + adds r0, r7, 0x1 + lsls r0, 16 + lsrs r7, r0, 16 +_080B9E32: + adds r0, r3, 0x1 + lsls r0, 16 + lsrs r3, r0, 16 + ldr r4, [sp, 0x50] + cmp r0, r4 + bcc _080B9D5C +_080B9E3E: + movs r3, 0 + ldr r1, [sp, 0x48] + lsls r0, r1, 4 + subs r0, r1 + lsls r0, 3 + ldr r2, [sp, 0x2C] + adds r6, r2, r0 + ldr r1, [sp, 0x4C] +_080B9E4E: + lsls r0, r3, 2 + adds r0, r1, r0 + str r6, [r0] + adds r0, r3, 0x1 + lsls r0, 16 + lsrs r3, r0, 16 + cmp r3, 0x3 + bls _080B9E4E + ldr r0, [sp, 0x38] + bl sub_80B9C4C + lsls r0, 24 + lsrs r0, 24 + movs r1, 0x3 + bl __umodsi3 + lsls r0, 24 + lsrs r1, r0, 24 + ldr r4, [sp, 0x3C] + cmp r4, 0x3 + beq _080B9E9C + cmp r4, 0x3 + bgt _080B9E82 + cmp r4, 0x2 + beq _080B9E8A + b _080B9EF0 +_080B9E82: + ldr r0, [sp, 0x3C] + cmp r0, 0x4 + beq _080B9EBC + b _080B9EF0 +_080B9E8A: + add r2, sp, 0x24 + movs r0, 0x1 + str r0, [sp] + ldr r0, [sp, 0x2C] + ldr r1, [sp, 0x30] + movs r3, 0 + bl sub_80B9BC4 + b _080B9EF0 +_080B9E9C: + ldr r0, _080B9EB8 @ =gUnknown_083D02B4 + lsls r1, 1 + adds r2, r1, r0 + ldrb r3, [r2] + adds r0, 0x1 + adds r1, r0 + ldrb r0, [r1] + add r2, sp, 0x24 + str r0, [sp] + ldr r0, [sp, 0x2C] + ldr r1, [sp, 0x30] + bl sub_80B9BC4 + b _080B9EF0 + .align 2, 0 +_080B9EB8: .4byte gUnknown_083D02B4 +_080B9EBC: + add r6, sp, 0x24 + ldr r4, _080B9F2C @ =gUnknown_083D02BA + lsls r5, r1, 2 + adds r0, r5, r4 + ldrb r3, [r0] + adds r0, r4, 0x1 + adds r0, r5, r0 + ldrb r0, [r0] + str r0, [sp] + ldr r0, [sp, 0x2C] + ldr r1, [sp, 0x30] + adds r2, r6, 0 + bl sub_80B9BC4 + adds r0, r4, 0x2 + adds r0, r5, r0 + ldrb r3, [r0] + adds r4, 0x3 + adds r5, r4 + ldrb r0, [r5] + str r0, [sp] + ldr r0, [sp, 0x2C] + ldr r1, [sp, 0x30] + adds r2, r6, 0 + bl sub_80B9BC4 +_080B9EF0: + ldr r1, [sp, 0x2C] + ldr r2, [sp, 0x48] + adds r6, r1, r2 + ldr r4, _080B9F30 @ =gSaveBlock1 + ldr r1, _080B9F34 @ =0x0000303c + adds r0, r4, r1 + adds r1, r6, 0 + movs r2, 0x38 + bl memcpy + ldr r2, _080B9F38 @ =0x00003074 + adds r4, r2 + adds r1, r6, 0 + adds r1, 0x38 + adds r0, r4, 0 + movs r2, 0x38 + bl memcpy + ldr r0, [sp, 0x40] + bl SeedRng + add sp, 0x58 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080B9F2C: .4byte gUnknown_083D02BA +_080B9F30: .4byte gSaveBlock1 +_080B9F34: .4byte 0x0000303c +_080B9F38: .4byte 0x00003074 + thumb_func_end sub_80B9C6C + + thumb_func_start sub_80B9F3C +sub_80B9F3C: @ 80B9F3C + push {r4,lr} + adds r4, r0, 0 + lsls r1, 24 + cmp r1, 0 + beq _080BA000 + ldrh r0, [r4] + cmp r0, 0 + beq _080BA000 + bl sub_80A9670 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x5 + bne _080B9FC8 + ldrh r0, [r4] + movs r1, 0x1 + bl sub_80A92D4 + lsls r0, 24 + cmp r0, 0 + bne _080B9FB8 + ldrh r0, [r4] + movs r1, 0x1 + bl sub_80A9718 + lsls r0, 24 + cmp r0, 0 + bne _080B9FB8 + ldrh r0, [r4] + movs r1, 0x1 + bl sub_80A9424 + lsls r0, 24 + cmp r0, 0 + beq _080B9FB8 + ldr r0, _080B9FA4 @ =0x00004001 + ldrh r1, [r4] + bl VarSet + ldr r0, _080B9FA8 @ =gStringVar1 + ldr r1, _080B9FAC @ =gLinkPlayers + 0x8 + bl StringCopy + ldrh r1, [r4] + ldr r0, _080B9FB0 @ =0x00000113 + cmp r1, r0 + bne _080BA000 + ldr r0, _080B9FB4 @ =0x00000853 + bl FlagSet + b _080BA000 + .align 2, 0 +_080B9FA4: .4byte 0x00004001 +_080B9FA8: .4byte gStringVar1 +_080B9FAC: .4byte gLinkPlayers + 0x8 +_080B9FB0: .4byte 0x00000113 +_080B9FB4: .4byte 0x00000853 +_080B9FB8: + ldr r0, _080B9FC4 @ =0x00004001 + movs r1, 0 + bl VarSet + b _080BA000 + .align 2, 0 +_080B9FC4: .4byte 0x00004001 +_080B9FC8: + ldrh r0, [r4] + movs r1, 0x1 + bl sub_80A9424 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080B9FF8 + ldr r0, _080B9FEC @ =0x00004001 + ldrh r1, [r4] + bl VarSet + ldr r0, _080B9FF0 @ =gStringVar1 + ldr r1, _080B9FF4 @ =gLinkPlayers + 0x8 + bl StringCopy + b _080BA000 + .align 2, 0 +_080B9FEC: .4byte 0x00004001 +_080B9FF0: .4byte gStringVar1 +_080B9FF4: .4byte gLinkPlayers + 0x8 +_080B9FF8: + ldr r0, _080BA008 @ =0x00004001 + movs r1, 0 + bl VarSet +_080BA000: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080BA008: .4byte 0x00004001 + thumb_func_end sub_80B9F3C + + thumb_func_start sub_80BA00C +sub_80BA00C: @ 80BA00C + push {r4,lr} + lsls r0, 24 + lsrs r2, r0, 24 + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + ldr r1, _080BA030 @ =gTasks + adds r4, r0, r1 + movs r1, 0x8 + ldrsh r0, [r4, r1] + cmp r0, 0x5 + bhi _080BA09C + lsls r0, 2 + ldr r1, _080BA034 @ =_080BA038 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080BA030: .4byte gTasks +_080BA034: .4byte _080BA038 + .align 2, 0 +_080BA038: + .4byte _080BA086 + .4byte _080BA086 + .4byte _080BA050 + .4byte _080BA05A + .4byte _080BA074 + .4byte _080BA08E +_080BA050: + bl sub_8047A1C + bl sub_8125E2C + b _080BA086 +_080BA05A: + bl sub_8125E6C + lsls r0, 24 + cmp r0, 0 + beq _080BA09C + bl sub_8047A34 + ldrh r0, [r4, 0x8] + adds r0, 0x1 + movs r1, 0 + strh r0, [r4, 0x8] + strh r1, [r4, 0xA] + b _080BA09C +_080BA074: + ldrh r0, [r4, 0xA] + adds r0, 0x1 + strh r0, [r4, 0xA] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0xA + ble _080BA09C + bl sub_800832C +_080BA086: + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + b _080BA09C +_080BA08E: + ldr r0, _080BA0A4 @ =gReceivedRemoteLinkPlayers + ldrb r0, [r0] + cmp r0, 0 + bne _080BA09C + adds r0, r2, 0 + bl DestroyTask +_080BA09C: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080BA0A4: .4byte gReceivedRemoteLinkPlayers + thumb_func_end sub_80BA00C + + .align 2, 0 @ Don't pad with nop. |