2072 lines
33 KiB
ArmAsm
2072 lines
33 KiB
ArmAsm
.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
|