.include "asm/macros.inc" .include "constants/constants.inc" .syntax unified .text thumb_func_start sub_80FC478 sub_80FC478: @ 80FC478 push {r4,r5,lr} adds r3, r0, 0 movs r0, 0 movs r4, 0 movs r5, 0x46 _080FC482: adds r2, r0, 0x1 movs r1, 0x45 muls r0, r5 adds r0, r3 adds r0, 0x45 _080FC48C: strb r4, [r0] subs r0, 0x1 subs r1, 0x1 cmp r1, 0 bge _080FC48C adds r0, r2, 0 cmp r0, 0x13 ble _080FC482 movs r1, 0 ldr r2, _080FC4C8 @ =0x00000579 adds r0, r3, r2 ldrb r2, [r0] strb r1, [r0] movs r2, 0xAF lsls r2, 3 adds r0, r3, r2 ldrb r2, [r0] strb r1, [r0] ldr r2, _080FC4CC @ =0x0000057a adds r0, r3, r2 ldrb r2, [r0] strb r1, [r0] ldr r2, _080FC4D0 @ =0x0000057b adds r0, r3, r2 ldrb r2, [r0] strb r1, [r0] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080FC4C8: .4byte 0x00000579 _080FC4CC: .4byte 0x0000057a _080FC4D0: .4byte 0x0000057b thumb_func_end sub_80FC478 thumb_func_start sub_80FC4D4 sub_80FC4D4: @ 80FC4D4 push {r4,lr} adds r3, r0, 0 movs r1, 0 movs r4, 0 _080FC4DC: lsls r0, r1, 3 adds r2, r1, 0x1 subs r0, r1 movs r1, 0xD lsls r0, 1 adds r0, r3 adds r0, 0xD _080FC4EA: strb r4, [r0] subs r0, 0x1 subs r1, 0x1 cmp r1, 0 bge _080FC4EA adds r1, r2, 0 cmp r1, 0x27 ble _080FC4DC movs r1, 0 ldr r2, _080FC524 @ =0x00000231 adds r0, r3, r2 ldrb r2, [r0] strb r1, [r0] movs r2, 0x8C lsls r2, 2 adds r0, r3, r2 ldrb r2, [r0] strb r1, [r0] ldr r2, _080FC528 @ =0x00000232 adds r0, r3, r2 ldrb r2, [r0] strb r1, [r0] ldr r2, _080FC52C @ =0x00000233 adds r0, r3, r2 ldrb r2, [r0] strb r1, [r0] pop {r4} pop {r0} bx r0 .align 2, 0 _080FC524: .4byte 0x00000231 _080FC528: .4byte 0x00000232 _080FC52C: .4byte 0x00000233 thumb_func_end sub_80FC4D4 thumb_func_start sub_80FC530 sub_80FC530: @ 80FC530 push {r4,lr} adds r3, r0, 0 movs r1, 0 movs r4, 0 _080FC538: lsls r0, r1, 8 adds r2, r1, 0x1 movs r1, 0xFF adds r0, r3 adds r0, 0xFF _080FC542: strb r4, [r0] subs r0, 0x1 subs r1, 0x1 cmp r1, 0 bge _080FC542 adds r1, r2, 0 cmp r1, 0x1 ble _080FC538 movs r1, 0 ldr r2, _080FC57C @ =0x00000201 adds r0, r3, r2 ldrb r2, [r0] strb r1, [r0] movs r2, 0x80 lsls r2, 2 adds r0, r3, r2 ldrb r2, [r0] strb r1, [r0] ldr r2, _080FC580 @ =0x00000202 adds r0, r3, r2 ldrb r2, [r0] strb r1, [r0] ldr r2, _080FC584 @ =0x00000203 adds r0, r3, r2 ldrb r2, [r0] strb r1, [r0] pop {r4} pop {r0} bx r0 .align 2, 0 _080FC57C: .4byte 0x00000201 _080FC580: .4byte 0x00000202 _080FC584: .4byte 0x00000203 thumb_func_end sub_80FC530 thumb_func_start sub_80FC588 sub_80FC588: @ 80FC588 push {r4-r7,lr} adds r5, r0, 0 adds r6, r1, 0 ldr r1, _080FC620 @ =0x0000057a adds r0, r5, r1 ldrb r0, [r0] cmp r0, 0x13 bhi _080FC628 ldr r0, _080FC624 @ =0x04000208 ldrh r1, [r0] adds r7, r1, 0 movs r1, 0 strh r1, [r0] movs r3, 0 movs r2, 0 _080FC5A6: adds r1, r6, r2 ldrb r0, [r1] cmp r0, 0 bne _080FC5BA ldrb r0, [r1, 0x1] cmp r0, 0 bne _080FC5BA adds r0, r3, 0x1 lsls r0, 24 lsrs r3, r0, 24 _080FC5BA: adds r2, 0xE cmp r2, 0x45 ble _080FC5A6 cmp r3, 0x5 beq _080FC618 movs r2, 0 movs r0, 0xAF lsls r0, 3 adds r3, r5, r0 movs r4, 0x46 _080FC5CE: ldrb r0, [r3] adds r1, r0, 0 muls r1, r4 adds r1, r2, r1 adds r1, r5, r1 adds r0, r6, r2 ldrb r0, [r0] strb r0, [r1] adds r2, 0x1 cmp r2, 0x45 ble _080FC5CE movs r1, 0xAF lsls r1, 3 adds r4, r5, r1 ldrb r0, [r4] adds r0, 0x1 ldrb r1, [r4] strb r0, [r4] ldrb r0, [r4] movs r1, 0x14 bl __umodsi3 ldrb r1, [r4] strb r0, [r4] ldr r0, _080FC620 @ =0x0000057a adds r1, r5, r0 ldrb r0, [r1] adds r0, 0x1 ldrb r2, [r1] strb r0, [r1] movs r1, 0 adds r0, r6, 0 adds r0, 0x45 _080FC610: strb r1, [r0] subs r0, 0x1 cmp r0, r6 bge _080FC610 _080FC618: ldr r0, _080FC624 @ =0x04000208 strh r7, [r0] b _080FC632 .align 2, 0 _080FC620: .4byte 0x0000057a _080FC624: .4byte 0x04000208 _080FC628: ldr r1, _080FC638 @ =0x0000057b adds r0, r5, r1 ldrb r1, [r0] movs r1, 0x1 strb r1, [r0] _080FC632: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080FC638: .4byte 0x0000057b thumb_func_end sub_80FC588 thumb_func_start sub_80FC63C sub_80FC63C: @ 80FC63C push {r4-r7,lr} adds r6, r0, 0 adds r5, r1, 0 ldr r1, _080FC6CC @ =0x00000232 adds r0, r6, r1 ldrb r0, [r0] cmp r0, 0x27 bhi _080FC6D4 ldr r1, _080FC6D0 @ =0x04000208 ldrh r0, [r1] adds r7, r0, 0 movs r0, 0 strh r0, [r1] movs r2, 0 ldrb r0, [r5] cmp r0, 0 bne _080FC66C _080FC65E: adds r2, 0x1 cmp r2, 0xD bgt _080FC66C adds r0, r5, r2 ldrb r0, [r0] cmp r0, 0 beq _080FC65E _080FC66C: cmp r2, 0xE beq _080FC6C4 movs r2, 0 movs r0, 0x8C lsls r0, 2 adds r3, r6, r0 _080FC678: ldrb r1, [r3] lsls r0, r1, 3 subs r0, r1 lsls r0, 1 adds r0, r2, r0 adds r0, r6, r0 adds r1, r5, r2 ldrb r1, [r1] strb r1, [r0] adds r2, 0x1 cmp r2, 0xD ble _080FC678 movs r1, 0x8C lsls r1, 2 adds r4, r6, r1 ldrb r0, [r4] adds r0, 0x1 ldrb r1, [r4] strb r0, [r4] ldrb r0, [r4] movs r1, 0x28 bl __umodsi3 ldrb r1, [r4] strb r0, [r4] ldr r0, _080FC6CC @ =0x00000232 adds r1, r6, r0 ldrb r0, [r1] adds r0, 0x1 ldrb r2, [r1] strb r0, [r1] movs r1, 0 adds r0, r5, 0 adds r0, 0xD _080FC6BC: strb r1, [r0] subs r0, 0x1 cmp r0, r5 bge _080FC6BC _080FC6C4: ldr r0, _080FC6D0 @ =0x04000208 strh r7, [r0] b _080FC6DE .align 2, 0 _080FC6CC: .4byte 0x00000232 _080FC6D0: .4byte 0x04000208 _080FC6D4: ldr r1, _080FC6E4 @ =0x00000233 adds r0, r6, r1 ldrb r1, [r0] movs r1, 0x1 strb r1, [r0] _080FC6DE: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080FC6E4: .4byte 0x00000233 thumb_func_end sub_80FC63C thumb_func_start sub_80FC6E8 sub_80FC6E8: @ 80FC6E8 push {r4-r7,lr} mov r7, r8 push {r7} adds r5, r0, 0 adds r3, r1, 0 ldr r1, _080FC730 @ =0x04000208 ldrh r0, [r1] mov r8, r0 movs r0, 0 strh r0, [r1] movs r1, 0xAF lsls r1, 3 adds r0, r5, r1 ldr r7, _080FC734 @ =0x00000579 adds r4, r5, r7 ldrb r1, [r0] ldrb r0, [r4] cmp r1, r0 beq _080FC718 ldr r1, _080FC738 @ =0x0000057b adds r0, r5, r1 ldrb r0, [r0] cmp r0, 0 beq _080FC73C _080FC718: movs r1, 0 adds r0, r3, 0 adds r0, 0x45 _080FC71E: strb r1, [r0] subs r0, 0x1 cmp r0, r3 bge _080FC71E ldr r0, _080FC730 @ =0x04000208 mov r7, r8 strh r7, [r0] movs r0, 0 b _080FC784 .align 2, 0 _080FC730: .4byte 0x04000208 _080FC734: .4byte 0x00000579 _080FC738: .4byte 0x0000057b _080FC73C: movs r2, 0 movs r6, 0x46 _080FC740: adds r1, r3, r2 ldrb r0, [r4] adds r7, r0, 0 muls r7, r6 adds r0, r7, 0 adds r0, r2, r0 adds r0, r5, r0 ldrb r0, [r0] strb r0, [r1] adds r2, 0x1 cmp r2, 0x45 ble _080FC740 ldr r0, _080FC790 @ =0x00000579 adds r4, r5, r0 ldrb r0, [r4] adds r0, 0x1 ldrb r1, [r4] strb r0, [r4] ldrb r0, [r4] movs r1, 0x14 bl __umodsi3 ldrb r1, [r4] strb r0, [r4] ldr r7, _080FC794 @ =0x0000057a adds r1, r5, r7 ldrb r0, [r1] subs r0, 0x1 ldrb r2, [r1] strb r0, [r1] ldr r0, _080FC798 @ =0x04000208 mov r1, r8 strh r1, [r0] movs r0, 0x1 _080FC784: pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _080FC790: .4byte 0x00000579 _080FC794: .4byte 0x0000057a _080FC798: .4byte 0x04000208 thumb_func_end sub_80FC6E8 thumb_func_start sub_80FC79C sub_80FC79C: @ 80FC79C push {r4-r7,lr} adds r5, r0, 0 adds r6, r1, 0 movs r1, 0x8C lsls r1, 2 adds r0, r5, r1 adds r1, 0x1 adds r4, r5, r1 ldrb r1, [r0] ldrb r0, [r4] cmp r1, r0 beq _080FC7C0 ldr r1, _080FC7C4 @ =0x00000233 adds r0, r5, r1 ldrb r0, [r0] adds r2, r0, 0 cmp r2, 0 beq _080FC7C8 _080FC7C0: movs r0, 0 b _080FC814 .align 2, 0 _080FC7C4: .4byte 0x00000233 _080FC7C8: ldr r1, _080FC81C @ =0x04000208 ldrh r0, [r1] adds r7, r0, 0 strh r2, [r1] movs r3, 0 _080FC7D2: adds r2, r6, r3 ldrb r1, [r4] lsls r0, r1, 3 subs r0, r1 lsls r0, 1 adds r0, r3, r0 adds r0, r5, r0 ldrb r0, [r0] strb r0, [r2] adds r3, 0x1 cmp r3, 0xD ble _080FC7D2 ldr r0, _080FC820 @ =0x00000231 adds r4, r5, r0 ldrb r0, [r4] adds r0, 0x1 ldrb r1, [r4] strb r0, [r4] ldrb r0, [r4] movs r1, 0x28 bl __umodsi3 ldrb r1, [r4] strb r0, [r4] ldr r0, _080FC824 @ =0x00000232 adds r1, r5, r0 ldrb r0, [r1] subs r0, 0x1 ldrb r2, [r1] strb r0, [r1] ldr r0, _080FC81C @ =0x04000208 strh r7, [r0] movs r0, 0x1 _080FC814: pop {r4-r7} pop {r1} bx r1 .align 2, 0 _080FC81C: .4byte 0x04000208 _080FC820: .4byte 0x00000231 _080FC824: .4byte 0x00000232 thumb_func_end sub_80FC79C thumb_func_start sub_80FC828 sub_80FC828: @ 80FC828 push {r4,lr} adds r2, r0, 0 adds r4, r1, 0 ldrb r0, [r4, 0x1] cmp r0, 0 bne _080FC83E adds r0, r2, 0 movs r1, 0 bl sub_80FC888 b _080FC880 _080FC83E: movs r3, 0 _080FC840: ldrb r1, [r2, 0x1C] lsls r0, r1, 3 subs r0, r1 lsls r0, 1 adds r0, r3, r0 adds r0, r2, r0 adds r1, r4, r3 ldrb r1, [r1] strb r1, [r0] adds r3, 0x1 cmp r3, 0xD ble _080FC840 ldrb r0, [r2, 0x1C] adds r0, 0x1 ldrb r1, [r2, 0x1C] strb r0, [r2, 0x1C] ldrb r1, [r2, 0x1C] movs r0, 0x1 ands r0, r1 ldrb r1, [r2, 0x1C] strb r0, [r2, 0x1C] ldrb r0, [r2, 0x1E] cmp r0, 0x1 bhi _080FC87A ldrb r0, [r2, 0x1E] adds r0, 0x1 ldrb r1, [r2, 0x1E] strb r0, [r2, 0x1E] b _080FC880 _080FC87A: ldrb r0, [r2, 0x1C] ldrb r1, [r2, 0x1D] strb r0, [r2, 0x1D] _080FC880: pop {r4} pop {r0} bx r0 thumb_func_end sub_80FC828 thumb_func_start sub_80FC888 sub_80FC888: @ 80FC888 push {r4,r5,lr} adds r3, r0, 0 adds r5, r1, 0 ldrb r0, [r3, 0x1E] cmp r0, 0 bne _080FC898 movs r0, 0 b _080FC8D2 _080FC898: cmp r5, 0 beq _080FC8B6 movs r4, 0 _080FC89E: adds r2, r5, r4 ldrb r1, [r3, 0x1D] lsls r0, r1, 3 subs r0, r1 lsls r0, 1 adds r0, r4, r0 adds r0, r3, r0 ldrb r0, [r0] strb r0, [r2] adds r4, 0x1 cmp r4, 0xD ble _080FC89E _080FC8B6: ldrb r0, [r3, 0x1D] adds r0, 0x1 ldrb r1, [r3, 0x1D] strb r0, [r3, 0x1D] ldrb r1, [r3, 0x1D] movs r0, 0x1 ands r0, r1 ldrb r1, [r3, 0x1D] strb r0, [r3, 0x1D] ldrb r0, [r3, 0x1E] subs r0, 0x1 ldrb r1, [r3, 0x1E] strb r0, [r3, 0x1E] movs r0, 0x1 _080FC8D2: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_80FC888 thumb_func_start sub_80FC8D8 sub_80FC8D8: @ 80FC8D8 push {r4,r5,lr} adds r3, r0, 0 adds r5, r1, 0 ldr r1, _080FC92C @ =0x00000202 adds r0, r3, r1 ldrb r0, [r0] cmp r0, 0x1 bhi _080FC930 movs r2, 0 movs r0, 0x80 lsls r0, 2 adds r4, r3, r0 _080FC8F0: ldrb r0, [r4] lsls r0, 8 adds r0, r2, r0 adds r0, r3, r0 adds r1, r5, r2 ldrb r1, [r1] strb r1, [r0] adds r2, 0x1 cmp r2, 0xFF ble _080FC8F0 movs r0, 0x80 lsls r0, 2 adds r1, r3, r0 ldrb r0, [r1] adds r0, 0x1 ldrb r2, [r1] strb r0, [r1] ldrb r2, [r1] movs r0, 0x1 ands r0, r2 ldrb r2, [r1] strb r0, [r1] ldr r0, _080FC92C @ =0x00000202 adds r1, r3, r0 ldrb r0, [r1] adds r0, 0x1 ldrb r2, [r1] strb r0, [r1] b _080FC93A .align 2, 0 _080FC92C: .4byte 0x00000202 _080FC930: ldr r1, _080FC940 @ =0x00000203 adds r0, r3, r1 ldrb r1, [r0] movs r1, 0x1 strb r1, [r0] _080FC93A: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080FC940: .4byte 0x00000203 thumb_func_end sub_80FC8D8 thumb_func_start sub_80FC944 sub_80FC944: @ 80FC944 push {r4,r5,lr} adds r3, r0, 0 adds r5, r1, 0 movs r1, 0x80 lsls r1, 2 adds r0, r3, r1 adds r1, 0x1 adds r4, r3, r1 ldrb r1, [r0] ldrb r0, [r4] cmp r1, r0 beq _080FC966 ldr r1, _080FC96C @ =0x00000203 adds r0, r3, r1 ldrb r0, [r0] cmp r0, 0 beq _080FC970 _080FC966: movs r0, 0 b _080FC9AA .align 2, 0 _080FC96C: .4byte 0x00000203 _080FC970: movs r2, 0 _080FC972: adds r0, r5, r2 ldrb r1, [r4] lsls r1, 8 adds r1, r2, r1 adds r1, r3, r1 ldrb r1, [r1] strb r1, [r0] adds r2, 0x1 cmp r2, 0xFF ble _080FC972 ldr r0, _080FC9B0 @ =0x00000201 adds r1, r3, r0 ldrb r0, [r1] adds r0, 0x1 ldrb r2, [r1] strb r0, [r1] ldrb r2, [r1] movs r0, 0x1 ands r0, r2 ldrb r2, [r1] strb r0, [r1] ldr r0, _080FC9B4 @ =0x00000202 adds r1, r3, r0 ldrb r0, [r1] subs r0, 0x1 ldrb r2, [r1] strb r0, [r1] movs r0, 0x1 _080FC9AA: pop {r4,r5} pop {r1} bx r1 .align 2, 0 _080FC9B0: .4byte 0x00000201 _080FC9B4: .4byte 0x00000202 thumb_func_end sub_80FC944 thumb_func_start sub_80FC9B8 sub_80FC9B8: @ 80FC9B8 push {r4-r7,lr} adds r6, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r1, 0 movs r5, 0 cmp r1, 0x1 beq _080FC9F6 cmp r1, 0x1 bgt _080FC9D2 cmp r1, 0 beq _080FC9DC b _080FCA6A _080FC9D2: cmp r0, 0x2 beq _080FCA16 cmp r0, 0x3 beq _080FCA36 b _080FCA6A _080FC9DC: movs r4, 0 _080FC9DE: adds r0, r6, r4 adds r1, r4, 0x1 strb r1, [r0] lsls r0, r5, 16 asrs r0, 16 adds r0, r1 lsls r0, 16 lsrs r5, r0, 16 adds r4, r1, 0 cmp r4, 0xC7 ble _080FC9DE b _080FCA30 _080FC9F6: movs r4, 0 adds r2, r6, 0 adds r2, 0xC8 _080FC9FC: adds r0, r6, r4 adds r1, r4, 0x1 strb r1, [r0] lsls r0, r5, 16 asrs r0, 16 adds r0, r1 lsls r0, 16 lsrs r5, r0, 16 adds r4, r1, 0 cmp r4, 0x63 ble _080FC9FC strh r5, [r2] b _080FCA6A _080FCA16: movs r4, 0 _080FCA18: bl Random lsls r0, 24 lsrs r0, 24 adds r1, r6, r4 strb r0, [r1] adds r0, r5, r0 lsls r0, 16 lsrs r5, r0, 16 adds r4, 0x1 cmp r4, 0xC7 ble _080FCA18 _080FCA30: adds r0, r6, r4 strh r5, [r0] b _080FCA6A _080FCA36: movs r4, 0 ldr r3, _080FCA70 @ =gUnknown_3002018 ldrb r1, [r3] ldrb r0, [r3] adds r7, r0, 0x1 adds r2, r1, 0x1 movs r0, 0xFF mov r12, r0 _080FCA46: adds r0, r6, r4 adds r1, r4, 0x1 strb r2, [r0] adds r0, r4, r7 mov r4, r12 ands r0, r4 adds r0, r5, r0 lsls r0, 16 lsrs r5, r0, 16 adds r2, 0x1 adds r4, r1, 0 cmp r1, 0xC7 ble _080FCA46 adds r0, r6, r1 strh r5, [r0] ldrb r0, [r3] adds r0, 0x1 strb r0, [r3] _080FCA6A: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080FCA70: .4byte gUnknown_3002018 thumb_func_end sub_80FC9B8 thumb_func_start sub_80FCA74 sub_80FCA74: @ 80FCA74 push {r4,r5,lr} adds r4, r0, 0 movs r3, 0 ldrb r0, [r1] cmp r0, 0xFF beq _080FCA98 ldr r5, _080FCAA4 @ =gUnknown_843F104 adds r2, r1, 0 _080FCA84: adds r1, r4, r3 ldrb r0, [r2] adds r0, r5 ldrb r0, [r0] strb r0, [r1] adds r2, 0x1 adds r3, 0x1 ldrb r0, [r2] cmp r0, 0xFF bne _080FCA84 _080FCA98: adds r1, r4, r3 movs r0, 0 strb r0, [r1] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080FCAA4: .4byte gUnknown_843F104 thumb_func_end sub_80FCA74 thumb_func_start sub_80FCAA8 sub_80FCAA8: @ 80FCAA8 push {r4,r5,lr} adds r4, r0, 0 movs r3, 0 ldrb r0, [r1] cmp r0, 0 beq _080FCACC ldr r5, _080FCAD8 @ =gUnknown_843F004 adds r2, r1, 0 _080FCAB8: adds r1, r4, r3 ldrb r0, [r2] adds r0, r5 ldrb r0, [r0] strb r0, [r1] adds r2, 0x1 adds r3, 0x1 ldrb r0, [r2] cmp r0, 0 bne _080FCAB8 _080FCACC: adds r1, r4, r3 movs r0, 0xFF strb r0, [r1] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080FCAD8: .4byte gUnknown_843F004 thumb_func_end sub_80FCAA8 thumb_func_start sub_80FCADC sub_80FCADC: @ 80FCADC push {r4-r7,lr} lsls r0, 24 lsrs r5, r0, 24 movs r6, 0 ldr r0, _080FCB04 @ =gRfuLinkStatus ldr r4, [r0] ldrb r2, [r4, 0x2] ldrb r1, [r4] adds r7, r0, 0 cmp r1, 0x1 bne _080FCB32 movs r3, 0 ands r1, r2 cmp r1, 0 beq _080FCB0E cmp r5, 0x1 bne _080FCB08 ldrb r0, [r4, 0xA] b _080FCB4C .align 2, 0 _080FCB04: .4byte gRfuLinkStatus _080FCB08: adds r0, r6, 0x1 lsls r0, 24 lsrs r6, r0, 24 _080FCB0E: lsrs r2, 1 adds r0, r3, 0x1 lsls r0, 24 lsrs r3, r0, 24 cmp r3, 0x3 bhi _080FCB4A movs r0, 0x1 ands r0, r2 cmp r0, 0 beq _080FCB0E adds r0, r6, 0x1 cmp r5, r0 bne _080FCB08 _080FCB28: ldr r0, [r7] adds r0, 0xA adds r0, r3 ldrb r0, [r0] b _080FCB4C _080FCB32: movs r3, 0 movs r1, 0x1 _080FCB36: adds r0, r2, 0 ands r0, r1 cmp r0, 0 bne _080FCB28 lsrs r2, 1 adds r0, r3, 0x1 lsls r0, 24 lsrs r3, r0, 24 cmp r3, 0x3 bls _080FCB36 _080FCB4A: movs r0, 0 _080FCB4C: pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_80FCADC thumb_func_start sub_80FCB54 sub_80FCB54: @ 80FCB54 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} adds r7, r0, 0 lsls r1, 24 lsrs r1, 24 mov r9, r1 movs r4, 0 ldr r0, _080FCC30 @ =gSaveBlock2Ptr mov r8, r0 adds r6, r7, 0x2 ldr r0, [r0] adds r5, r0, 0 adds r5, 0xA _080FCB72: adds r0, r6, r4 adds r1, r5, r4 ldrb r1, [r1] strb r1, [r0] adds r4, 0x1 cmp r4, 0x1 ble _080FCB72 movs r4, 0 lsls r2, 7 mov r12, r2 adds r1, r7, 0x4 _080FCB88: adds r0, r1, r4 strb r3, [r0] asrs r3, 8 adds r4, 0x1 cmp r4, 0x3 ble _080FCB88 mov r1, r8 ldr r0, [r1] ldrb r0, [r0, 0x8] movs r6, 0x1 movs r1, 0x1 ands r1, r0 ldrb r2, [r7, 0xB] movs r5, 0x2 negs r5, r5 adds r0, r5, 0 ands r0, r2 orrs r0, r1 strb r0, [r7, 0xB] movs r4, 0x7F mov r1, r9 ands r1, r4 ldrb r2, [r7, 0xA] movs r0, 0x80 negs r0, r0 ands r0, r2 orrs r0, r1 ands r0, r4 mov r1, r12 orrs r0, r1 strb r0, [r7, 0xA] ldrb r0, [r7] movs r1, 0x10 negs r1, r1 ands r1, r0 movs r0, 0x2 orrs r1, r0 ldrb r2, [r7, 0x1] movs r0, 0x3D negs r0, r0 ands r0, r2 .ifdef FIRERED movs r2, 0x10 @ VERSION_FIRE_RED << 2 .else .ifdef LEAFGREEN movs r2, 0x14 @ VERSION_LEAF_GREEN << 2 .endif .endif orrs r0, r2 strb r0, [r7, 0x1] movs r0, 0x11 negs r0, r0 ands r1, r0 subs r0, 0x10 ands r1, r0 subs r0, 0x20 ands r1, r0 strb r1, [r7] ldr r0, _080FCC34 @ =0x00000844 bl FlagGet lsls r0, 7 ldrb r1, [r7] ands r4, r1 orrs r4, r0 strb r4, [r7] bl IsNationalPokedexEnabled ands r0, r6 ldrb r1, [r7, 0x1] ands r5, r1 orrs r5, r0 strb r5, [r7, 0x1] ldr r0, _080FCC38 @ =0x0000082c bl FlagGet ands r6, r0 lsls r6, 1 ldrb r1, [r7, 0x1] movs r0, 0x3 negs r0, r0 ands r0, r1 orrs r0, r6 strb r0, [r7, 0x1] pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080FCC30: .4byte gSaveBlock2Ptr _080FCC34: .4byte 0x00000844 _080FCC38: .4byte 0x0000082c thumb_func_end sub_80FCB54 thumb_func_start sub_80FCC3C sub_80FCC3C: @ 80FCC3C push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} adds r7, r0, 0 mov r8, r1 lsls r2, 24 lsrs r5, r2, 24 ldr r0, _080FCC90 @ =gUnknown_3005E10 ldrb r0, [r0, 0x6] cmp r0, 0x1 bne _080FCC98 movs r0, 0x1 mov r9, r0 ldr r6, _080FCC94 @ =gRfuLinkStatus ldr r0, [r6] lsls r4, r5, 5 adds r0, r4 ldrh r0, [r0, 0x18] bl sub_80FA44C cmp r0, 0 beq _080FCC78 ldr r1, [r6] ldrb r0, [r1, 0x7] asrs r0, r5 mov r2, r9 ands r0, r2 cmp r0, 0 bne _080FCCB0 _080FCC78: adds r0, r7, 0 movs r1, 0 movs r2, 0xD bl memset mov r0, r8 movs r1, 0 movs r2, 0x8 bl memset b _080FCCE4 .align 2, 0 _080FCC90: .4byte gUnknown_3005E10 _080FCC94: .4byte gRfuLinkStatus _080FCC98: movs r0, 0 mov r9, r0 ldr r6, _080FCCCC @ =gRfuLinkStatus ldr r0, [r6] lsls r4, r5, 5 adds r0, r4 ldrh r0, [r0, 0x18] bl sub_80FA44C cmp r0, 0 beq _080FCCD0 ldr r1, [r6] _080FCCB0: adds r1, r4, r1 adds r1, 0x1A adds r0, r7, 0 movs r2, 0xD bl memcpy ldr r1, [r6] adds r1, r4, r1 adds r1, 0x29 mov r0, r8 movs r2, 0x8 bl memcpy b _080FCCE4 .align 2, 0 _080FCCCC: .4byte gRfuLinkStatus _080FCCD0: adds r0, r7, 0 movs r1, 0 movs r2, 0xD bl memset mov r0, r8 movs r1, 0 movs r2, 0x8 bl memset _080FCCE4: mov r0, r9 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_80FCC3C thumb_func_start sub_80FCCF4 sub_80FCCF4: @ 80FCCF4 push {r4-r7,lr} adds r3, r0, 0 adds r5, r1, 0 lsls r2, 24 movs r7, 0 ldr r6, _080FCD2C @ =gRfuLinkStatus ldr r0, [r6] lsrs r4, r2, 19 adds r2, r0, r4 ldrh r1, [r2, 0x18] ldr r0, _080FCD30 @ =0x00007f7d cmp r1, r0 bne _080FCD34 adds r1, r2, 0 adds r1, 0x1A adds r0, r3, 0 movs r2, 0xD bl memcpy ldr r1, [r6] adds r1, r4, r1 adds r1, 0x29 adds r0, r5, 0 movs r2, 0x8 bl memcpy movs r7, 0x1 b _080FCD48 .align 2, 0 _080FCD2C: .4byte gRfuLinkStatus _080FCD30: .4byte 0x00007f7d _080FCD34: adds r0, r3, 0 movs r1, 0 movs r2, 0xD bl memset adds r0, r5, 0 movs r1, 0 movs r2, 0x8 bl memset _080FCD48: adds r0, r7, 0 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_80FCCF4 thumb_func_start sub_80FCD50 sub_80FCD50: @ 80FCD50 push {r4,lr} adds r4, r1, 0 ldr r1, _080FCD6C @ =gUnknown_3005440 movs r2, 0xD bl memcpy ldr r1, _080FCD70 @ =gUnknown_3005E00 adds r0, r4, 0 movs r2, 0x8 bl memcpy pop {r4} pop {r0} bx r0 .align 2, 0 _080FCD6C: .4byte gUnknown_3005440 _080FCD70: .4byte gUnknown_3005E00 thumb_func_end sub_80FCD50 thumb_func_start CreateWirelessStatusIndicatorSprite CreateWirelessStatusIndicatorSprite: @ 80FCD74 push {r4,r5,lr} lsls r0, 24 lsrs r3, r0, 24 lsls r1, 24 lsrs r2, r1, 24 cmp r3, 0 bne _080FCD8A cmp r2, 0 bne _080FCD8A movs r3, 0xE7 movs r2, 0x8 _080FCD8A: ldr r0, _080FCDCC @ =gRfuLinkStatus ldr r0, [r0] ldrb r0, [r0] cmp r0, 0x1 bne _080FCDE4 ldr r0, _080FCDD0 @ =gUnknown_843F284 adds r1, r3, 0 movs r3, 0 bl CreateSprite adds r5, r0, 0 lsls r5, 24 lsrs r5, 24 ldr r0, _080FCDD4 @ =gSprites lsls r4, r5, 4 adds r4, r5 lsls r4, 2 adds r4, r0 ldr r0, _080FCDD8 @ =0x00001234 strh r0, [r4, 0x3C] ldr r0, _080FCDDC @ =gUnknown_843F274 ldrh r0, [r0, 0x6] bl GetSpriteTileStartByTag strh r0, [r4, 0x3A] adds r4, 0x3E ldrb r0, [r4] movs r1, 0x4 orrs r0, r1 strb r0, [r4] ldr r0, _080FCDE0 @ =gUnknown_203ACE4 strb r5, [r0] b _080FCE2A .align 2, 0 _080FCDCC: .4byte gRfuLinkStatus _080FCDD0: .4byte gUnknown_843F284 _080FCDD4: .4byte gSprites _080FCDD8: .4byte 0x00001234 _080FCDDC: .4byte gUnknown_843F274 _080FCDE0: .4byte gUnknown_203ACE4 _080FCDE4: ldr r0, _080FCE30 @ =gUnknown_843F284 adds r1, r3, 0 movs r3, 0 bl CreateSprite ldr r4, _080FCE34 @ =gUnknown_203ACE4 strb r0, [r4] ldr r5, _080FCE38 @ =gSprites ldrb r1, [r4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 ldr r1, _080FCE3C @ =0x00001234 strh r1, [r0, 0x3C] ldr r0, _080FCE40 @ =gUnknown_843F274 ldrh r0, [r0, 0x6] bl GetSpriteTileStartByTag ldrb r2, [r4] lsls r1, r2, 4 adds r1, r2 lsls r1, 2 adds r1, r5 strh r0, [r1, 0x3A] ldrb r1, [r4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 adds r0, 0x3E ldrb r1, [r0] movs r2, 0x4 orrs r1, r2 strb r1, [r0] _080FCE2A: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080FCE30: .4byte gUnknown_843F284 _080FCE34: .4byte gUnknown_203ACE4 _080FCE38: .4byte gSprites _080FCE3C: .4byte 0x00001234 _080FCE40: .4byte gUnknown_843F274 thumb_func_end CreateWirelessStatusIndicatorSprite thumb_func_start DestroyWirelessStatusIndicatorSprite DestroyWirelessStatusIndicatorSprite: @ 80FCE44 push {r4,lr} ldr r4, _080FCE90 @ =gSprites ldr r3, _080FCE94 @ =gUnknown_203ACE4 ldrb r1, [r3] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r2, r0, r4 movs r0, 0x3C ldrsh r1, [r2, r0] ldr r0, _080FCE98 @ =0x00001234 cmp r1, r0 bne _080FCE8A movs r0, 0 strh r0, [r2, 0x3C] ldrb r1, [r3] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 bl DestroySprite ldr r3, _080FCE9C @ =gMain movs r0, 0x84 lsls r0, 3 adds r3, r0 ldr r0, _080FCEA0 @ =gDummyOamData ldr r1, [r0] ldr r2, [r0, 0x4] str r1, [r3] str r2, [r3, 0x4] ldr r1, _080FCEA4 @ =0x070003e8 movs r2, 0x4 bl CpuSet _080FCE8A: pop {r4} pop {r0} bx r0 .align 2, 0 _080FCE90: .4byte gSprites _080FCE94: .4byte gUnknown_203ACE4 _080FCE98: .4byte 0x00001234 _080FCE9C: .4byte gMain _080FCEA0: .4byte gDummyOamData _080FCEA4: .4byte 0x070003e8 thumb_func_end DestroyWirelessStatusIndicatorSprite thumb_func_start LoadWirelessStatusIndicatorSpriteGfx LoadWirelessStatusIndicatorSpriteGfx: @ 80FCEA8 push {r4,lr} ldr r4, _080FCED4 @ =gUnknown_843F274 ldrh r0, [r4, 0x6] bl GetSpriteTileStartByTag lsls r0, 16 ldr r1, _080FCED8 @ =0xffff0000 cmp r0, r1 bne _080FCEC0 adds r0, r4, 0 bl LoadCompressedSpriteSheet _080FCEC0: ldr r0, _080FCEDC @ =gUnknown_843F27C bl LoadSpritePalette ldr r1, _080FCEE0 @ =gUnknown_203ACE4 movs r0, 0xFF strb r0, [r1] pop {r4} pop {r0} bx r0 .align 2, 0 _080FCED4: .4byte gUnknown_843F274 _080FCED8: .4byte 0xffff0000 _080FCEDC: .4byte gUnknown_843F27C _080FCEE0: .4byte gUnknown_203ACE4 thumb_func_end LoadWirelessStatusIndicatorSpriteGfx thumb_func_start sub_80FCEE4 sub_80FCEE4: @ 80FCEE4 push {r4,lr} ldr r1, _080FCF04 @ =gRfuLinkStatus ldr r0, [r1] ldrb r2, [r0, 0x2] movs r3, 0 movs r4, 0x1 _080FCEF0: adds r0, r2, 0 ands r0, r4 cmp r0, 0 beq _080FCF08 ldr r0, [r1] adds r0, 0xA adds r0, r3 ldrb r0, [r0] b _080FCF16 .align 2, 0 _080FCF04: .4byte gRfuLinkStatus _080FCF08: lsrs r2, 1 adds r0, r3, 0x1 lsls r0, 24 lsrs r3, r0, 24 cmp r3, 0x3 bls _080FCEF0 movs r0, 0 _080FCF16: pop {r4} pop {r1} bx r1 thumb_func_end sub_80FCEE4 thumb_func_start sub_80FCF1C sub_80FCF1C: @ 80FCF1C push {lr} adds r2, r0, 0 movs r3, 0x32 ldrsh r0, [r2, r3] cmp r0, r1 beq _080FCF30 movs r0, 0 strh r1, [r2, 0x32] strh r0, [r2, 0x34] strh r0, [r2, 0x36] _080FCF30: pop {r0} bx r0 thumb_func_end sub_80FCF1C thumb_func_start sub_80FCF34 sub_80FCF34: @ 80FCF34 push {r4-r7,lr} mov r7, r8 push {r7} ldr r1, _080FCF78 @ =gUnknown_203ACE4 ldrb r0, [r1] cmp r0, 0xFF bne _080FCF44 b _080FD106 _080FCF44: ldr r2, _080FCF7C @ =gSprites adds r1, r0, 0 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r2, r0, r2 movs r0, 0x3C ldrsh r1, [r2, r0] ldr r0, _080FCF80 @ =0x00001234 cmp r1, r0 beq _080FCF5C b _080FD106 _080FCF5C: adds r6, r2, 0 movs r5, 0xFF movs r4, 0 ldr r0, _080FCF84 @ =gRfuLinkStatus ldr r0, [r0] ldrb r0, [r0] cmp r0, 0x1 bne _080FCFB6 adds r7, r6, 0 adds r7, 0x28 movs r1, 0x29 adds r1, r6 mov r8, r1 b _080FCFA6 .align 2, 0 _080FCF78: .4byte gUnknown_203ACE4 _080FCF7C: .4byte gSprites _080FCF80: .4byte 0x00001234 _080FCF84: .4byte gRfuLinkStatus _080FCF88: adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 adds r0, r4, 0 bl sub_80FCADC lsls r0, 24 lsrs r0, 24 cmp r5, r0 bcc _080FCFA6 adds r0, r4, 0 bl sub_80FCADC lsls r0, 24 lsrs r5, r0, 24 _080FCFA6: bl GetLinkPlayerCount lsls r0, 24 lsrs r0, 24 subs r0, 0x1 cmp r4, r0 blt _080FCF88 b _080FCFC8 _080FCFB6: bl sub_80FCEE4 lsls r0, 24 lsrs r5, r0, 24 adds r7, r6, 0 adds r7, 0x28 movs r2, 0x29 adds r2, r6 mov r8, r2 _080FCFC8: bl sub_80FC1B0 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080FCFD8 movs r0, 0x4 b _080FD006 _080FCFD8: cmp r5, 0x18 bhi _080FCFE0 movs r0, 0x3 b _080FD006 _080FCFE0: adds r0, r5, 0 subs r0, 0x19 lsls r0, 24 lsrs r0, 24 cmp r0, 0x65 bhi _080FCFF0 movs r0, 0x2 b _080FD006 _080FCFF0: adds r0, r5, 0 subs r0, 0x7F lsls r0, 24 lsrs r0, 24 cmp r0, 0x65 bhi _080FD000 movs r0, 0x1 b _080FD006 _080FD000: cmp r5, 0xE4 bls _080FD008 movs r0, 0 _080FD006: strh r0, [r6, 0x2E] _080FD008: movs r3, 0x2E ldrsh r1, [r6, r3] movs r2, 0x30 ldrsh r0, [r6, r2] cmp r1, r0 beq _080FD01E adds r0, r6, 0 bl sub_80FCF1C ldrh r0, [r6, 0x2E] strh r0, [r6, 0x30] _080FD01E: movs r0, 0x32 ldrsh r1, [r6, r0] ldr r2, [r6, 0x8] lsls r1, 2 adds r1, r2 movs r3, 0x36 ldrsh r0, [r6, r3] ldr r1, [r1] lsls r0, 2 adds r0, r1 ldr r0, [r0] lsls r0, 10 lsrs r0, 26 movs r3, 0x34 ldrsh r1, [r6, r3] cmp r0, r1 bge _080FD06C ldrh r0, [r6, 0x36] adds r0, 0x1 movs r3, 0 strh r0, [r6, 0x36] strh r3, [r6, 0x34] movs r1, 0x32 ldrsh r0, [r6, r1] lsls r0, 2 adds r0, r2 movs r2, 0x36 ldrsh r1, [r6, r2] ldr r0, [r0] lsls r1, 2 adds r1, r0 movs r0, 0 ldrsh r1, [r1, r0] movs r0, 0x2 negs r0, r0 cmp r1, r0 bne _080FD072 strh r3, [r6, 0x36] b _080FD072 _080FD06C: ldrh r0, [r6, 0x34] adds r0, 0x1 strh r0, [r6, 0x34] _080FD072: ldr r4, _080FD110 @ =gMain movs r1, 0x84 lsls r1, 3 adds r0, r4, r1 ldr r1, _080FD114 @ =gUnknown_843F204 ldr r2, [r1, 0x4] ldr r1, [r1] str r1, [r0] str r2, [r0, 0x4] movs r3, 0x20 ldrsh r2, [r6, r3] movs r1, 0 ldrsb r1, [r7, r1] adds r2, r1 ldr r1, _080FD118 @ =0x00000422 adds r5, r4, r1 ldr r3, _080FD11C @ =0x000001ff adds r1, r3, 0 ands r2, r1 ldrh r3, [r5] ldr r1, _080FD120 @ =0xfffffe00 ands r1, r3 orrs r1, r2 strh r1, [r5] ldrh r1, [r6, 0x22] mov r2, r8 ldrb r2, [r2] adds r1, r2 strb r1, [r0] ldrb r2, [r6, 0x5] ldr r3, _080FD124 @ =0x00000425 adds r5, r4, r3 lsrs r2, 4 lsls r2, 4 ldrb r3, [r5] movs r1, 0xF ands r1, r3 orrs r1, r2 strb r1, [r5] movs r1, 0x32 ldrsh r2, [r6, r1] ldr r1, [r6, 0x8] lsls r2, 2 adds r2, r1 movs r3, 0x36 ldrsh r1, [r6, r3] ldr r2, [r2] lsls r1, 2 adds r1, r2 ldrh r2, [r1] ldrh r6, [r6, 0x3A] adds r2, r6 ldr r1, _080FD128 @ =0x00000424 adds r4, r1 ldr r3, _080FD12C @ =0x000003ff adds r1, r3, 0 ands r2, r1 ldrh r3, [r4] ldr r1, _080FD130 @ =0xfffffc00 ands r1, r3 orrs r1, r2 strh r1, [r4] ldr r1, _080FD134 @ =0x070003e8 movs r2, 0x4 bl CpuSet bl sub_80FB9F4 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080FD106 bl DestroyWirelessStatusIndicatorSprite _080FD106: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080FD110: .4byte gMain _080FD114: .4byte gUnknown_843F204 _080FD118: .4byte 0x00000422 _080FD11C: .4byte 0x000001ff _080FD120: .4byte 0xfffffe00 _080FD124: .4byte 0x00000425 _080FD128: .4byte 0x00000424 _080FD12C: .4byte 0x000003ff _080FD130: .4byte 0xfffffc00 _080FD134: .4byte 0x070003e8 thumb_func_end sub_80FCF34 thumb_func_start sub_80FD138 sub_80FD138: @ 80FD138 push {r4,r5,lr} adds r4, r0, 0 str r1, [r4] movs r3, 0 ldrb r0, [r2] cmp r0, 0xFF beq _080FD15C adds r5, r4, 0x4 _080FD148: adds r1, r5, r3 ldrb r0, [r2] strb r0, [r1] adds r2, 0x1 adds r3, 0x1 cmp r3, 0x6 bgt _080FD15C ldrb r0, [r2] cmp r0, 0xFF bne _080FD148 _080FD15C: adds r0, r4, 0x4 adds r0, r3 movs r1, 0xFF strb r1, [r0] pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_80FD138 thumb_func_start sub_80FD16C sub_80FD16C: @ 80FD16C push {lr} movs r2, 0 movs r1, 0x7 _080FD172: strb r2, [r0] adds r0, 0x1 subs r1, 0x1 cmp r1, 0 bge _080FD172 pop {r0} bx r0 thumb_func_end sub_80FD16C thumb_func_start sub_80FD180 sub_80FD180: @ 80FD180 push {lr} adds r1, r0, 0 movs r2, 0 _080FD186: ldrb r0, [r1] adds r1, 0x1 cmp r0, 0 beq _080FD192 movs r0, 0 b _080FD19A _080FD192: adds r2, 0x1 cmp r2, 0x7 ble _080FD186 movs r0, 0x1 _080FD19A: pop {r1} bx r1 thumb_func_end sub_80FD180 thumb_func_start sub_80FD1A0 sub_80FD1A0: @ 80FD1A0 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x20 ldr r0, _080FD1C4 @ =gWirelessCommType ldrb r0, [r0] cmp r0, 0 bne _080FD1B6 b _080FD318 _080FD1B6: movs r0, 0xF0 bl AllocZeroed str r0, [sp, 0x14] movs r4, 0 b _080FD22C .align 2, 0 _080FD1C4: .4byte gWirelessCommType _080FD1C8: lsls r2, r4, 2 mov r0, sp adds r1, r0, r2 movs r0, 0x1 negs r0, r0 str r0, [r1] movs r5, 0 mov r8, r2 lsls r0, r4, 3 adds r1, r4, 0x1 mov r9, r1 subs r0, r4 lsls r0, 2 str r0, [sp, 0x1C] ldr r2, _080FD24C @ =gLinkPlayers + 8 mov r10, r2 ldr r6, _080FD250 @ =0x00003ba8 movs r4, 0 mov r0, r10 subs r0, 0x4 ldr r7, [sp, 0x1C] adds r3, r7, r0 _080FD1F4: ldrh r1, [r3] ldr r0, _080FD254 @ =gSaveBlock1Ptr ldr r2, [r0] ldr r7, _080FD250 @ =0x00003ba8 adds r0, r2, r7 adds r0, r4 ldr r0, [r0] cmp r1, r0 bne _080FD220 adds r1, r2, r6 adds r1, 0x4 ldr r0, [sp, 0x1C] add r0, r10 str r3, [sp, 0x18] bl StringCompare ldr r3, [sp, 0x18] cmp r0, 0 bne _080FD220 mov r0, sp add r0, r8 str r5, [r0] _080FD220: adds r6, 0xC adds r4, 0xC adds r5, 0x1 cmp r5, 0x13 ble _080FD1F4 mov r4, r9 _080FD22C: bl GetLinkPlayerCount lsls r0, 24 lsrs r0, 24 cmp r4, r0 blt _080FD1C8 movs r0, 0 mov r8, r0 movs r4, 0 ldr r1, _080FD254 @ =gSaveBlock1Ptr mov r9, r1 mov r7, sp movs r5, 0 ldr r6, [sp, 0x14] b _080FD2A4 .align 2, 0 _080FD24C: .4byte gLinkPlayers + 8 _080FD250: .4byte 0x00003ba8 _080FD254: .4byte gSaveBlock1Ptr _080FD258: bl GetMultiplayerId lsls r0, 24 lsrs r0, 24 cmp r4, r0 beq _080FD29E ldr r2, _080FD328 @ =gLinkPlayers adds r0, r5, r2 ldrh r0, [r0, 0x1A] cmp r0, 0x1 beq _080FD29E adds r0, r2, 0x4 adds r0, r5, r0 ldrh r1, [r0] adds r2, 0x8 adds r2, r5, r2 adds r0, r6, 0 bl sub_80FD138 ldr r1, [r7] cmp r1, 0 blt _080FD298 lsls r0, r1, 1 adds r0, r1 lsls r0, 2 mov r2, r9 ldr r1, [r2] adds r0, r1 ldr r1, _080FD32C @ =0x00003bac adds r0, r1 bl sub_80FD16C _080FD298: adds r6, 0xC movs r2, 0x1 add r8, r2 _080FD29E: adds r7, 0x4 adds r5, 0x1C adds r4, 0x1 _080FD2A4: bl GetLinkPlayerCount lsls r0, 24 lsrs r0, 24 cmp r4, r0 blt _080FD258 movs r4, 0 ldr r7, _080FD330 @ =gSaveBlock1Ptr mov r9, r7 ldr r6, _080FD334 @ =0x00003ba8 movs r7, 0 mov r1, r8 lsls r0, r1, 1 add r0, r8 lsls r0, 2 ldr r2, [sp, 0x14] adds r5, r0, r2 _080FD2C6: mov r1, r9 ldr r0, [r1] adds r0, r6 adds r0, 0x4 bl sub_80FD180 cmp r0, 0 bne _080FD2F8 mov r0, r9 ldr r2, [r0] ldr r1, _080FD334 @ =0x00003ba8 adds r0, r2, r1 adds r0, r7 ldr r1, [r0] adds r2, r6 adds r2, 0x4 adds r0, r5, 0 bl sub_80FD138 adds r5, 0xC movs r2, 0x1 add r8, r2 mov r0, r8 cmp r0, 0x13 bgt _080FD302 _080FD2F8: adds r6, 0xC adds r7, 0xC adds r4, 0x1 cmp r4, 0x13 ble _080FD2C6 _080FD302: ldr r0, _080FD330 @ =gSaveBlock1Ptr ldr r0, [r0] ldr r1, _080FD334 @ =0x00003ba8 adds r0, r1 ldr r1, [sp, 0x14] movs r2, 0xF0 bl memcpy ldr r0, [sp, 0x14] bl Free _080FD318: add sp, 0x20 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080FD328: .4byte gLinkPlayers _080FD32C: .4byte 0x00003bac _080FD330: .4byte gSaveBlock1Ptr _080FD334: .4byte 0x00003ba8 thumb_func_end sub_80FD1A0 thumb_func_start sub_80FD338 sub_80FD338: @ 80FD338 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} mov r9, r1 lsls r0, 16 lsrs r0, 16 mov r8, r0 movs r7, 0 ldr r6, _080FD374 @ =gSaveBlock1Ptr ldr r4, _080FD378 @ =0x00003ba8 movs r5, 0 _080FD350: ldr r0, [r6] adds r0, r4 adds r0, 0x4 mov r1, r9 movs r2, 0x7 bl StringCompareN cmp r0, 0 bne _080FD37C ldr r0, [r6] ldr r1, _080FD378 @ =0x00003ba8 adds r0, r1 adds r0, r5 ldr r0, [r0] cmp r0, r8 bne _080FD37C movs r0, 0x1 b _080FD396 .align 2, 0 _080FD374: .4byte gSaveBlock1Ptr _080FD378: .4byte 0x00003ba8 _080FD37C: ldr r0, [r6] adds r0, r4 adds r0, 0x4 bl sub_80FD180 cmp r0, 0 bne _080FD394 adds r4, 0xC adds r5, 0xC adds r7, 0x1 cmp r7, 0x13 ble _080FD350 _080FD394: movs r0, 0 _080FD396: pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_80FD338 .align 2, 0 @ Don't pad with nop