mirror of
https://github.com/pret/pokefirered.git
synced 2026-05-19 19:38:00 -05:00
3176 lines
52 KiB
ArmAsm
3176 lines
52 KiB
ArmAsm
.include "asm/macros.inc"
|
|
.include "constants/constants.inc"
|
|
|
|
.syntax unified
|
|
|
|
.text
|
|
|
|
thumb_func_start sub_80FD3A4
|
|
sub_80FD3A4: @ 80FD3A4
|
|
push {r4,lr}
|
|
bl rfu_REQBN_softReset_and_checkID
|
|
adds r4, r0, 0
|
|
ldr r0, _080FD3E8 @ =0x00008001
|
|
cmp r4, r0
|
|
bne _080FD3B8
|
|
ldr r1, _080FD3EC @ =gUnknown_3005E10
|
|
movs r0, 0x1
|
|
strb r0, [r1, 0x8]
|
|
_080FD3B8:
|
|
ldr r0, _080FD3EC @ =gUnknown_3005E10
|
|
ldrb r2, [r0, 0x4]
|
|
adds r1, r0, 0
|
|
cmp r2, 0x17
|
|
beq _080FD3CC
|
|
cmp r2, 0x1
|
|
beq _080FD3CC
|
|
movs r0, 0
|
|
strb r0, [r1, 0x5]
|
|
strb r0, [r1, 0x4]
|
|
_080FD3CC:
|
|
movs r0, 0
|
|
strb r0, [r1, 0x7]
|
|
strb r0, [r1, 0xD]
|
|
strb r0, [r1, 0x1]
|
|
strb r0, [r1]
|
|
movs r0, 0xFF
|
|
strb r0, [r1, 0x6]
|
|
bl sub_80FEAF4
|
|
adds r0, r4, 0
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_080FD3E8: .4byte 0x00008001
|
|
_080FD3EC: .4byte gUnknown_3005E10
|
|
thumb_func_end sub_80FD3A4
|
|
|
|
thumb_func_start rfu_REQ_sendData_wrapper
|
|
rfu_REQ_sendData_wrapper: @ 80FD3F0
|
|
push {lr}
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
ldr r0, _080FD410 @ =gUnknown_3007460
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
bne _080FD418
|
|
ldr r0, _080FD414 @ =gUnknown_3005E10
|
|
ldrb r0, [r0, 0x2]
|
|
movs r2, 0
|
|
cmp r0, 0x1
|
|
bne _080FD420
|
|
movs r2, 0x1
|
|
b _080FD420
|
|
.align 2, 0
|
|
_080FD410: .4byte gUnknown_3007460
|
|
_080FD414: .4byte gUnknown_3005E10
|
|
_080FD418:
|
|
ldr r0, _080FD42C @ =gUnknown_3005E10
|
|
ldrb r1, [r0, 0x3]
|
|
movs r1, 0
|
|
strb r1, [r0, 0x3]
|
|
_080FD420:
|
|
adds r0, r2, 0
|
|
bl rfu_REQ_sendData
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080FD42C: .4byte gUnknown_3005E10
|
|
thumb_func_end rfu_REQ_sendData_wrapper
|
|
|
|
thumb_func_start sub_80FD430
|
|
sub_80FD430: @ 80FD430
|
|
push {r4-r6,lr}
|
|
sub sp, 0x4
|
|
adds r5, r0, 0
|
|
adds r6, r1, 0
|
|
cmp r5, 0
|
|
beq _080FD478
|
|
mov r1, sp
|
|
movs r0, 0
|
|
strh r0, [r1]
|
|
ldr r4, _080FD468 @ =gUnknown_3005E10
|
|
ldr r2, _080FD46C @ =0x01000024
|
|
mov r0, sp
|
|
adds r1, r4, 0
|
|
bl CpuSet
|
|
movs r0, 0xFF
|
|
strb r0, [r4, 0x6]
|
|
str r5, [r4, 0x40]
|
|
str r6, [r4, 0x44]
|
|
ldr r0, _080FD470 @ =sub_80FE394
|
|
bl rfu_setMSCCallback
|
|
ldr r0, _080FD474 @ =sub_80FDC98
|
|
bl rfu_setREQCallback
|
|
movs r0, 0
|
|
b _080FD47A
|
|
.align 2, 0
|
|
_080FD468: .4byte gUnknown_3005E10
|
|
_080FD46C: .4byte 0x01000024
|
|
_080FD470: .4byte sub_80FE394
|
|
_080FD474: .4byte sub_80FDC98
|
|
_080FD478:
|
|
movs r0, 0x4
|
|
_080FD47A:
|
|
add sp, 0x4
|
|
pop {r4-r6}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80FD430
|
|
|
|
thumb_func_start sub_80FD484
|
|
sub_80FD484: @ 80FD484
|
|
push {r4,lr}
|
|
sub sp, 0x4
|
|
mov r1, sp
|
|
movs r0, 0
|
|
strh r0, [r1]
|
|
ldr r4, _080FD4A8 @ =gUnknown_3005E10
|
|
ldr r2, _080FD4AC @ =0x01000020
|
|
mov r0, sp
|
|
adds r1, r4, 0
|
|
bl CpuSet
|
|
movs r0, 0xFF
|
|
strb r0, [r4, 0x6]
|
|
add sp, 0x4
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080FD4A8: .4byte gUnknown_3005E10
|
|
_080FD4AC: .4byte 0x01000020
|
|
thumb_func_end sub_80FD484
|
|
|
|
thumb_func_start sub_80FD4B0
|
|
sub_80FD4B0: @ 80FD4B0
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
bl sub_80FD4E4
|
|
ldr r1, _080FD4E0 @ =gUnknown_3005E10
|
|
movs r2, 0x1
|
|
strb r2, [r1, 0x4]
|
|
movs r0, 0x2
|
|
strb r0, [r1, 0x5]
|
|
str r4, [r1, 0x3C]
|
|
ldrb r0, [r4, 0x11]
|
|
strb r0, [r1, 0x9]
|
|
ldrh r0, [r4, 0x12]
|
|
strh r0, [r1, 0x32]
|
|
ldrh r0, [r4, 0x14]
|
|
strh r0, [r1, 0x18]
|
|
ldrb r0, [r4, 0x10]
|
|
cmp r0, 0
|
|
beq _080FD4D8
|
|
strb r2, [r1, 0xB]
|
|
_080FD4D8:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080FD4E0: .4byte gUnknown_3005E10
|
|
thumb_func_end sub_80FD4B0
|
|
|
|
thumb_func_start sub_80FD4E4
|
|
sub_80FD4E4: @ 80FD4E4
|
|
push {r4,r5,lr}
|
|
ldr r2, _080FD528 @ =gUnknown_3005E10
|
|
movs r0, 0
|
|
strb r0, [r2, 0x5]
|
|
strb r0, [r2, 0x4]
|
|
movs r1, 0xFF
|
|
strb r1, [r2, 0x6]
|
|
strb r0, [r2, 0x7]
|
|
strb r0, [r2, 0x10]
|
|
strb r0, [r2, 0xC]
|
|
adds r1, r2, 0
|
|
adds r1, 0x24
|
|
strb r0, [r1]
|
|
adds r1, 0xC
|
|
strb r0, [r1]
|
|
movs r3, 0
|
|
adds r5, r2, 0
|
|
adds r5, 0x28
|
|
movs r4, 0
|
|
adds r2, 0x34
|
|
_080FD50C:
|
|
lsls r1, r3, 1
|
|
adds r0, r1, r5
|
|
strh r4, [r0]
|
|
adds r1, r2
|
|
strh r4, [r1]
|
|
adds r0, r3, 0x1
|
|
lsls r0, 24
|
|
lsrs r3, r0, 24
|
|
cmp r3, 0x3
|
|
bls _080FD50C
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080FD528: .4byte gUnknown_3005E10
|
|
thumb_func_end sub_80FD4E4
|
|
|
|
thumb_func_start sub_80FD52C
|
|
sub_80FD52C: @ 80FD52C
|
|
ldr r1, _080FD534 @ =gUnknown_3005E10
|
|
movs r0, 0x15
|
|
strb r0, [r1, 0x4]
|
|
bx lr
|
|
.align 2, 0
|
|
_080FD534: .4byte gUnknown_3005E10
|
|
thumb_func_end sub_80FD52C
|
|
|
|
thumb_func_start sub_80FD538
|
|
sub_80FD538: @ 80FD538
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
adds r6, r3, 0
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
lsls r1, 16
|
|
lsrs r7, r1, 16
|
|
lsls r2, 16
|
|
lsrs r2, 16
|
|
mov r8, r2
|
|
ldr r1, _080FD570 @ =gUnknown_3005E10
|
|
ldrb r0, [r1, 0x4]
|
|
cmp r0, 0
|
|
beq _080FD574
|
|
cmp r0, 0x8
|
|
bne _080FD55E
|
|
cmp r5, 0x1
|
|
beq _080FD574
|
|
_080FD55E:
|
|
movs r0, 0x1
|
|
strh r0, [r1, 0x14]
|
|
movs r0, 0xF3
|
|
movs r1, 0x1
|
|
bl sub_80FE7F0
|
|
movs r0, 0x1
|
|
b _080FD606
|
|
.align 2, 0
|
|
_080FD570: .4byte gUnknown_3005E10
|
|
_080FD574:
|
|
bl rfu_getMasterSlave
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080FD594
|
|
ldr r1, _080FD590 @ =gUnknown_3005E10
|
|
movs r0, 0x2
|
|
strh r0, [r1, 0x14]
|
|
movs r0, 0xF3
|
|
movs r1, 0x1
|
|
bl sub_80FE7F0
|
|
movs r0, 0x2
|
|
b _080FD606
|
|
.align 2, 0
|
|
_080FD590: .4byte gUnknown_3005E10
|
|
_080FD594:
|
|
movs r2, 0
|
|
ldrh r0, [r6]
|
|
ldr r4, _080FD5C8 @ =0x0000ffff
|
|
adds r1, r6, 0x2
|
|
ldr r3, _080FD5CC @ =gUnknown_3005E10
|
|
cmp r0, r4
|
|
beq _080FD5B4
|
|
_080FD5A2:
|
|
adds r0, r2, 0x1
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
cmp r2, 0xF
|
|
bhi _080FD5B4
|
|
ldrh r0, [r1]
|
|
adds r1, 0x2
|
|
cmp r0, r4
|
|
bne _080FD5A2
|
|
_080FD5B4:
|
|
cmp r2, 0x10
|
|
bne _080FD5D0
|
|
movs r0, 0x4
|
|
strh r0, [r3, 0x14]
|
|
movs r0, 0xF3
|
|
movs r1, 0x1
|
|
bl sub_80FE7F0
|
|
movs r0, 0x4
|
|
b _080FD606
|
|
.align 2, 0
|
|
_080FD5C8: .4byte 0x0000ffff
|
|
_080FD5CC: .4byte gUnknown_3005E10
|
|
_080FD5D0:
|
|
cmp r5, 0x1
|
|
bls _080FD5DE
|
|
movs r0, 0x1
|
|
strb r0, [r3, 0x7]
|
|
movs r5, 0x1
|
|
movs r7, 0
|
|
b _080FD5E2
|
|
_080FD5DE:
|
|
movs r0, 0
|
|
strb r0, [r3, 0x7]
|
|
_080FD5E2:
|
|
cmp r5, 0
|
|
beq _080FD5EC
|
|
movs r0, 0x5
|
|
strb r0, [r3, 0x4]
|
|
b _080FD5FA
|
|
_080FD5EC:
|
|
movs r0, 0x9
|
|
strb r0, [r3, 0x4]
|
|
ldrb r0, [r3, 0xB]
|
|
cmp r0, 0
|
|
beq _080FD5FA
|
|
movs r0, 0x2
|
|
strb r0, [r3, 0xB]
|
|
_080FD5FA:
|
|
strb r5, [r3, 0x6]
|
|
strh r7, [r3, 0x1A]
|
|
mov r0, r8
|
|
strh r0, [r3, 0x26]
|
|
str r6, [r3, 0x20]
|
|
movs r0, 0
|
|
_080FD606:
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80FD538
|
|
|
|
thumb_func_start sub_80FD610
|
|
sub_80FD610: @ 80FD610
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
lsls r0, 16
|
|
lsrs r6, r0, 16
|
|
lsls r1, 16
|
|
lsrs r1, 16
|
|
mov r8, r1
|
|
ldr r1, _080FD644 @ =gUnknown_3005E10
|
|
ldrb r0, [r1, 0x4]
|
|
cmp r0, 0
|
|
beq _080FD648
|
|
subs r0, 0x9
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x2
|
|
bls _080FD648
|
|
movs r0, 0x1
|
|
strh r0, [r1, 0x14]
|
|
movs r0, 0xF3
|
|
movs r1, 0x1
|
|
bl sub_80FE7F0
|
|
movs r0, 0x1
|
|
b _080FD6E8
|
|
.align 2, 0
|
|
_080FD644: .4byte gUnknown_3005E10
|
|
_080FD648:
|
|
bl rfu_getMasterSlave
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080FD668
|
|
ldr r1, _080FD664 @ =gUnknown_3005E10
|
|
movs r0, 0x2
|
|
strh r0, [r1, 0x14]
|
|
movs r0, 0xF3
|
|
movs r1, 0x1
|
|
bl sub_80FE7F0
|
|
movs r0, 0x2
|
|
b _080FD6E8
|
|
.align 2, 0
|
|
_080FD664: .4byte gUnknown_3005E10
|
|
_080FD668:
|
|
movs r2, 0
|
|
ldr r0, _080FD6B4 @ =gUnknown_3007460
|
|
ldr r1, [r0]
|
|
ldrb r3, [r1, 0x8]
|
|
ldr r5, _080FD6B8 @ =gUnknown_3005E10
|
|
adds r7, r0, 0
|
|
cmp r2, r3
|
|
bcs _080FD696
|
|
ldrh r0, [r1, 0x14]
|
|
cmp r0, r6
|
|
beq _080FD696
|
|
adds r4, r1, 0
|
|
adds r1, r3, 0
|
|
_080FD682:
|
|
adds r0, r2, 0x1
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
cmp r2, r1
|
|
bcs _080FD696
|
|
lsls r0, r2, 5
|
|
adds r0, r4, r0
|
|
ldrh r0, [r0, 0x14]
|
|
cmp r0, r6
|
|
bne _080FD682
|
|
_080FD696:
|
|
ldr r0, [r7]
|
|
ldrb r0, [r0, 0x8]
|
|
cmp r0, 0
|
|
beq _080FD6A2
|
|
cmp r2, r0
|
|
bne _080FD6BC
|
|
_080FD6A2:
|
|
movs r0, 0x3
|
|
strh r0, [r5, 0x14]
|
|
movs r0, 0xF3
|
|
movs r1, 0x1
|
|
bl sub_80FE7F0
|
|
movs r0, 0x3
|
|
b _080FD6E8
|
|
.align 2, 0
|
|
_080FD6B4: .4byte gUnknown_3007460
|
|
_080FD6B8: .4byte gUnknown_3005E10
|
|
_080FD6BC:
|
|
ldrb r0, [r5, 0x4]
|
|
cmp r0, 0
|
|
beq _080FD6C6
|
|
cmp r0, 0x9
|
|
bne _080FD6CE
|
|
_080FD6C6:
|
|
movs r0, 0xC
|
|
strb r0, [r5, 0x4]
|
|
movs r0, 0xD
|
|
b _080FD6D4
|
|
_080FD6CE:
|
|
movs r0, 0xB
|
|
strb r0, [r5, 0x4]
|
|
movs r0, 0xC
|
|
_080FD6D4:
|
|
strb r0, [r5, 0x5]
|
|
strh r6, [r5, 0x1E]
|
|
mov r0, r8
|
|
strh r0, [r5, 0x1A]
|
|
ldrb r0, [r5, 0x7]
|
|
cmp r0, 0
|
|
beq _080FD6E6
|
|
movs r0, 0x7
|
|
strb r0, [r5, 0x7]
|
|
_080FD6E6:
|
|
movs r0, 0
|
|
_080FD6E8:
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80FD610
|
|
|
|
thumb_func_start sub_80FD6F4
|
|
sub_80FD6F4: @ 80FD6F4
|
|
push {r4-r7,lr}
|
|
lsls r0, 24
|
|
lsrs r1, r0, 24
|
|
ldr r6, _080FD758 @ =gUnknown_3005E10
|
|
adds r3, r6, 0
|
|
adds r3, 0x30
|
|
ldrb r2, [r3]
|
|
adds r0, r1, 0
|
|
ands r0, r2
|
|
cmp r0, 0
|
|
beq _080FD750
|
|
adds r0, r2, 0
|
|
bics r0, r1
|
|
strb r0, [r3]
|
|
movs r4, 0
|
|
ldr r7, _080FD75C @ =gUnknown_3007460
|
|
movs r5, 0x1
|
|
adds r3, 0x4
|
|
movs r2, 0
|
|
_080FD71A:
|
|
adds r0, r1, 0
|
|
asrs r0, r4
|
|
ands r0, r5
|
|
cmp r0, 0
|
|
beq _080FD72A
|
|
lsls r0, r4, 1
|
|
adds r0, r3
|
|
strh r2, [r0]
|
|
_080FD72A:
|
|
adds r0, r4, 0x1
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
cmp r4, 0x3
|
|
bls _080FD71A
|
|
ldr r0, [r7]
|
|
ldrb r4, [r0, 0x3]
|
|
ands r4, r1
|
|
cmp r4, 0
|
|
beq _080FD744
|
|
adds r0, r4, 0
|
|
bl sub_80FE818
|
|
_080FD744:
|
|
ldr r0, _080FD758 @ =gUnknown_3005E10
|
|
strh r4, [r0, 0x14]
|
|
movs r0, 0x33
|
|
adds r1, r4, 0
|
|
bl sub_80FE7F0
|
|
_080FD750:
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080FD758: .4byte gUnknown_3005E10
|
|
_080FD75C: .4byte gUnknown_3007460
|
|
thumb_func_end sub_80FD6F4
|
|
|
|
thumb_func_start sub_80FD760
|
|
sub_80FD760: @ 80FD760
|
|
push {r4,r5,lr}
|
|
lsls r0, 24
|
|
movs r2, 0
|
|
ldr r1, _080FD77C @ =gUnknown_3005E10
|
|
strb r2, [r1, 0x7]
|
|
adds r5, r1, 0
|
|
cmp r0, 0
|
|
beq _080FD780
|
|
bl sub_80FD4E4
|
|
movs r0, 0x17
|
|
strb r0, [r5, 0x4]
|
|
b _080FD84A
|
|
.align 2, 0
|
|
_080FD77C: .4byte gUnknown_3005E10
|
|
_080FD780:
|
|
ldrb r0, [r5, 0x4]
|
|
subs r0, 0x5
|
|
cmp r0, 0xD
|
|
bhi _080FD836
|
|
lsls r0, 2
|
|
ldr r1, _080FD794 @ =_080FD798
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_080FD794: .4byte _080FD798
|
|
.align 2, 0
|
|
_080FD798:
|
|
.4byte _080FD7D0
|
|
.4byte _080FD7DC
|
|
.4byte _080FD7DC
|
|
.4byte _080FD83C
|
|
.4byte _080FD7E6
|
|
.4byte _080FD7F0
|
|
.4byte _080FD7F0
|
|
.4byte _080FD7FA
|
|
.4byte _080FD804
|
|
.4byte _080FD804
|
|
.4byte _080FD83C
|
|
.4byte _080FD80A
|
|
.4byte _080FD830
|
|
.4byte _080FD830
|
|
_080FD7D0:
|
|
movs r1, 0
|
|
movs r0, 0x8
|
|
strb r0, [r5, 0x4]
|
|
strb r1, [r5, 0x5]
|
|
movs r2, 0x13
|
|
b _080FD83C
|
|
_080FD7DC:
|
|
movs r0, 0x7
|
|
strb r0, [r5, 0x4]
|
|
movs r0, 0x8
|
|
strb r0, [r5, 0x5]
|
|
b _080FD83C
|
|
_080FD7E6:
|
|
movs r0, 0
|
|
strb r0, [r5, 0x5]
|
|
strb r0, [r5, 0x4]
|
|
movs r2, 0x21
|
|
b _080FD83C
|
|
_080FD7F0:
|
|
movs r1, 0
|
|
movs r0, 0xB
|
|
strb r0, [r5, 0x4]
|
|
strb r1, [r5, 0x5]
|
|
b _080FD83C
|
|
_080FD7FA:
|
|
movs r0, 0
|
|
strb r0, [r5, 0x5]
|
|
strb r0, [r5, 0x4]
|
|
movs r2, 0x23
|
|
b _080FD83C
|
|
_080FD804:
|
|
movs r0, 0xE
|
|
strb r0, [r5, 0x4]
|
|
b _080FD83C
|
|
_080FD80A:
|
|
ldrb r0, [r5, 0x11]
|
|
strb r0, [r5, 0x4]
|
|
ldrb r0, [r5, 0x12]
|
|
strb r0, [r5, 0x5]
|
|
ldr r4, _080FD82C @ =gUnknown_3007460
|
|
ldr r0, [r4]
|
|
ldrb r0, [r0, 0x3]
|
|
bl sub_80FE818
|
|
ldr r0, [r4]
|
|
ldrb r0, [r0, 0x3]
|
|
strh r0, [r5, 0x14]
|
|
movs r0, 0x33
|
|
movs r1, 0x1
|
|
bl sub_80FE7F0
|
|
b _080FD84A
|
|
.align 2, 0
|
|
_080FD82C: .4byte gUnknown_3007460
|
|
_080FD830:
|
|
movs r0, 0x12
|
|
strb r0, [r5, 0x4]
|
|
b _080FD83C
|
|
_080FD836:
|
|
strb r2, [r5, 0x5]
|
|
strb r2, [r5, 0x4]
|
|
movs r2, 0x43
|
|
_080FD83C:
|
|
ldrb r0, [r5, 0x4]
|
|
cmp r0, 0
|
|
bne _080FD84A
|
|
adds r0, r2, 0
|
|
movs r1, 0
|
|
bl sub_80FE7F0
|
|
_080FD84A:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80FD760
|
|
|
|
thumb_func_start sub_80FD850
|
|
sub_80FD850: @ 80FD850
|
|
push {r4-r7,lr}
|
|
mov r7, r9
|
|
mov r6, r8
|
|
push {r6,r7}
|
|
sub sp, 0x4
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
movs r1, 0
|
|
mov r8, r1
|
|
mov r5, sp
|
|
adds r5, 0x1
|
|
mov r4, sp
|
|
adds r4, 0x2
|
|
mov r1, sp
|
|
adds r2, r5, 0
|
|
adds r3, r4, 0
|
|
bl sub_81E13F0
|
|
mov r0, sp
|
|
ldrb r0, [r0]
|
|
adds r7, r4, 0
|
|
cmp r0, 0
|
|
beq _080FD922
|
|
ldr r1, _080FD8EC @ =gUnknown_3005E10
|
|
mov r0, sp
|
|
ldrb r0, [r0]
|
|
strh r0, [r1, 0x14]
|
|
ldrb r0, [r5]
|
|
strh r0, [r1, 0x16]
|
|
ldrb r0, [r1, 0x9]
|
|
adds r6, r1, 0
|
|
cmp r0, 0
|
|
beq _080FD90A
|
|
movs r0, 0x1
|
|
strb r0, [r6, 0xA]
|
|
ldrb r0, [r6, 0x6]
|
|
cmp r0, 0
|
|
bne _080FD8A6
|
|
ldrb r0, [r5]
|
|
cmp r0, 0
|
|
bne _080FD8A6
|
|
movs r0, 0x4
|
|
strb r0, [r6, 0xA]
|
|
_080FD8A6:
|
|
ldrb r0, [r6, 0xA]
|
|
cmp r0, 0x1
|
|
bne _080FD8F0
|
|
movs r2, 0
|
|
mov r4, sp
|
|
movs r5, 0x1
|
|
mov r12, r6
|
|
mov r3, r12
|
|
adds r3, 0x30
|
|
movs r6, 0x34
|
|
add r6, r12
|
|
mov r9, r6
|
|
_080FD8BE:
|
|
ldrb r0, [r4]
|
|
asrs r0, r2
|
|
ands r0, r5
|
|
cmp r0, 0
|
|
beq _080FD8DC
|
|
adds r0, r5, 0
|
|
lsls r0, r2
|
|
ldrb r1, [r3]
|
|
orrs r0, r1
|
|
strb r0, [r3]
|
|
lsls r0, r2, 1
|
|
add r0, r9
|
|
mov r6, r12
|
|
ldrh r1, [r6, 0x32]
|
|
strh r1, [r0]
|
|
_080FD8DC:
|
|
adds r0, r2, 0x1
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
cmp r2, 0x3
|
|
bls _080FD8BE
|
|
movs r0, 0x31
|
|
b _080FD902
|
|
.align 2, 0
|
|
_080FD8EC: .4byte gUnknown_3005E10
|
|
_080FD8F0:
|
|
movs r0, 0
|
|
strb r0, [r6, 0xA]
|
|
mov r0, sp
|
|
ldrb r0, [r0]
|
|
bl sub_80FE818
|
|
movs r0, 0x1
|
|
mov r8, r0
|
|
movs r0, 0x33
|
|
_080FD902:
|
|
movs r1, 0x1
|
|
bl sub_80FE7F0
|
|
b _080FD91E
|
|
_080FD90A:
|
|
mov r0, sp
|
|
ldrb r0, [r0]
|
|
bl sub_80FE818
|
|
movs r1, 0x1
|
|
mov r8, r1
|
|
movs r0, 0x30
|
|
movs r1, 0x2
|
|
bl sub_80FE7F0
|
|
_080FD91E:
|
|
bl sub_80FEAF4
|
|
_080FD922:
|
|
ldr r0, _080FDA0C @ =gUnknown_3007460
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x1
|
|
bne _080FD9FC
|
|
ldrb r0, [r7]
|
|
cmp r0, 0
|
|
beq _080FD980
|
|
movs r2, 0
|
|
ldr r6, _080FDA10 @ =gUnknown_3005E10
|
|
movs r3, 0x1
|
|
adds r4, r6, 0
|
|
adds r4, 0x34
|
|
adds r6, 0x30
|
|
adds r5, r7, 0
|
|
_080FD940:
|
|
ldrb r0, [r6]
|
|
asrs r0, r2
|
|
ands r0, r3
|
|
cmp r0, 0
|
|
beq _080FD95C
|
|
ldrb r0, [r5]
|
|
asrs r0, r2
|
|
ands r0, r3
|
|
cmp r0, 0
|
|
beq _080FD95C
|
|
lsls r0, r2, 1
|
|
adds r0, r4
|
|
movs r1, 0
|
|
strh r1, [r0]
|
|
_080FD95C:
|
|
adds r0, r2, 0x1
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
cmp r2, 0x3
|
|
bls _080FD940
|
|
ldr r3, _080FDA10 @ =gUnknown_3005E10
|
|
adds r2, r3, 0
|
|
adds r2, 0x30
|
|
ldrb r1, [r7]
|
|
ldrb r0, [r2]
|
|
bics r0, r1
|
|
strb r0, [r2]
|
|
ldrb r0, [r7]
|
|
strh r0, [r3, 0x14]
|
|
movs r0, 0x32
|
|
movs r1, 0x1
|
|
bl sub_80FE7F0
|
|
_080FD980:
|
|
ldr r0, _080FDA10 @ =gUnknown_3005E10
|
|
adds r3, r0, 0
|
|
adds r3, 0x30
|
|
ldrb r1, [r3]
|
|
adds r6, r0, 0
|
|
cmp r1, 0
|
|
beq _080FD9F8
|
|
movs r4, 0
|
|
movs r2, 0
|
|
movs r5, 0x1
|
|
_080FD994:
|
|
ldrb r0, [r3]
|
|
asrs r0, r2
|
|
ands r0, r5
|
|
cmp r0, 0
|
|
beq _080FD9C6
|
|
lsls r1, r2, 1
|
|
adds r0, r6, 0
|
|
adds r0, 0x34
|
|
adds r1, r0
|
|
ldrh r0, [r1]
|
|
cmp r0, 0
|
|
beq _080FD9C6
|
|
subs r0, 0x1
|
|
strh r0, [r1]
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
bne _080FD9C6
|
|
adds r0, r5, 0
|
|
lsls r0, r2
|
|
ldrb r1, [r3]
|
|
bics r1, r0
|
|
strb r1, [r3]
|
|
orrs r4, r0
|
|
lsls r0, r4, 24
|
|
lsrs r4, r0, 24
|
|
_080FD9C6:
|
|
adds r0, r2, 0x1
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
cmp r2, 0x3
|
|
bls _080FD994
|
|
cmp r4, 0
|
|
beq _080FD9EA
|
|
adds r0, r4, 0
|
|
bl sub_80FE818
|
|
movs r6, 0x1
|
|
mov r8, r6
|
|
ldr r0, _080FDA10 @ =gUnknown_3005E10
|
|
strh r4, [r0, 0x14]
|
|
movs r0, 0x33
|
|
movs r1, 0x1
|
|
bl sub_80FE7F0
|
|
_080FD9EA:
|
|
ldr r0, _080FDA10 @ =gUnknown_3005E10
|
|
adds r1, r0, 0
|
|
adds r1, 0x30
|
|
ldrb r1, [r1]
|
|
adds r6, r0, 0
|
|
cmp r1, 0
|
|
bne _080FD9FC
|
|
_080FD9F8:
|
|
movs r0, 0
|
|
strb r0, [r6, 0xA]
|
|
_080FD9FC:
|
|
mov r0, r8
|
|
add sp, 0x4
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_080FDA0C: .4byte gUnknown_3007460
|
|
_080FDA10: .4byte gUnknown_3005E10
|
|
thumb_func_end sub_80FD850
|
|
|
|
thumb_func_start rfu_syncVBlank_
|
|
rfu_syncVBlank_: @ 80FDA14
|
|
push {lr}
|
|
bl rfu_syncVBlank
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
beq _080FDA2C
|
|
movs r0, 0xF1
|
|
movs r1, 0
|
|
bl sub_80FE7F0
|
|
bl sub_80FEAF4
|
|
_080FDA2C:
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end rfu_syncVBlank_
|
|
|
|
thumb_func_start sub_80FDA30
|
|
sub_80FDA30: @ 80FDA30
|
|
push {r4,lr}
|
|
adds r3, r0, 0
|
|
ldr r1, _080FDA48 @ =gUnknown_3005E10
|
|
ldr r2, [r1, 0x40]
|
|
cmp r2, 0
|
|
bne _080FDA4C
|
|
ldrb r0, [r1, 0x4]
|
|
cmp r0, 0
|
|
beq _080FDA4C
|
|
strb r2, [r1, 0x4]
|
|
b _080FDC1A
|
|
.align 2, 0
|
|
_080FDA48: .4byte gUnknown_3005E10
|
|
_080FDA4C:
|
|
ldr r0, _080FDA80 @ =gUnknown_3005E10
|
|
ldrb r0, [r0, 0x7]
|
|
cmp r0, 0
|
|
beq _080FDA5A
|
|
adds r0, r3, 0
|
|
bl sub_80FDC28
|
|
_080FDA5A:
|
|
ldr r4, _080FDA80 @ =gUnknown_3005E10
|
|
ldrb r0, [r4, 0x4]
|
|
cmp r0, 0
|
|
bne _080FDA64
|
|
b _080FDBE4
|
|
_080FDA64:
|
|
bl rfu_waitREQComplete
|
|
movs r0, 0x1
|
|
strb r0, [r4, 0xE]
|
|
ldrb r0, [r4, 0x4]
|
|
subs r0, 0x1
|
|
cmp r0, 0x16
|
|
bls _080FDA76
|
|
b _080FDBDA
|
|
_080FDA76:
|
|
lsls r0, 2
|
|
ldr r1, _080FDA84 @ =_080FDA88
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_080FDA80: .4byte gUnknown_3005E10
|
|
_080FDA84: .4byte _080FDA88
|
|
.align 2, 0
|
|
_080FDA88:
|
|
.4byte _080FDB08
|
|
.4byte _080FDB40
|
|
.4byte _080FDB46
|
|
.4byte _080FDB5C
|
|
.4byte _080FDB74
|
|
.4byte _080FDB7A
|
|
.4byte _080FDB80
|
|
.4byte _080FDBDA
|
|
.4byte _080FDB86
|
|
.4byte _080FDB8C
|
|
.4byte _080FDB92
|
|
.4byte _080FDB98
|
|
.4byte _080FDBA8
|
|
.4byte _080FDBAE
|
|
.4byte _080FDBDA
|
|
.4byte _080FDBB4
|
|
.4byte _080FDBC4
|
|
.4byte _080FDBCA
|
|
.4byte _080FDBD0
|
|
.4byte _080FDBDA
|
|
.4byte _080FDBD6
|
|
.4byte _080FDBDA
|
|
.4byte _080FDAE4
|
|
_080FDAE4:
|
|
bl sub_80FD3A4
|
|
ldr r1, _080FDB00 @ =0x00008001
|
|
movs r2, 0xFF
|
|
cmp r0, r1
|
|
bne _080FDAF2
|
|
movs r2, 0x44
|
|
_080FDAF2:
|
|
ldr r1, _080FDB04 @ =gUnknown_3005E10
|
|
movs r0, 0
|
|
strb r0, [r1, 0x5]
|
|
strb r0, [r1, 0x4]
|
|
adds r0, r2, 0
|
|
b _080FDB32
|
|
.align 2, 0
|
|
_080FDB00: .4byte 0x00008001
|
|
_080FDB04: .4byte gUnknown_3005E10
|
|
_080FDB08:
|
|
bl sub_80FD3A4
|
|
ldr r1, _080FDB20 @ =0x00008001
|
|
cmp r0, r1
|
|
bne _080FDB28
|
|
ldr r0, _080FDB24 @ =gUnknown_3005E10
|
|
ldrb r1, [r0, 0x5]
|
|
strb r1, [r0, 0x4]
|
|
movs r1, 0x3
|
|
strb r1, [r0, 0x5]
|
|
b _080FDBDA
|
|
.align 2, 0
|
|
_080FDB20: .4byte 0x00008001
|
|
_080FDB24: .4byte gUnknown_3005E10
|
|
_080FDB28:
|
|
ldr r1, _080FDB3C @ =gUnknown_3005E10
|
|
movs r0, 0
|
|
strb r0, [r1, 0x5]
|
|
strb r0, [r1, 0x4]
|
|
movs r0, 0xFF
|
|
_080FDB32:
|
|
movs r1, 0
|
|
bl sub_80FE7F0
|
|
b _080FDBDA
|
|
.align 2, 0
|
|
_080FDB3C: .4byte gUnknown_3005E10
|
|
_080FDB40:
|
|
bl rfu_REQ_reset
|
|
b _080FDBDA
|
|
_080FDB46:
|
|
ldr r0, _080FDB58 @ =gUnknown_3005E10
|
|
ldr r2, [r0, 0x3C]
|
|
ldrh r0, [r2, 0x2]
|
|
ldrb r1, [r2]
|
|
ldrb r2, [r2, 0x1]
|
|
bl rfu_REQ_configSystem
|
|
b _080FDBDA
|
|
.align 2, 0
|
|
_080FDB58: .4byte gUnknown_3005E10
|
|
_080FDB5C:
|
|
ldr r0, _080FDB70 @ =gUnknown_3005E10
|
|
ldr r3, [r0, 0x3C]
|
|
ldrb r0, [r3, 0x4]
|
|
ldrh r1, [r3, 0x6]
|
|
ldr r2, [r3, 0x8]
|
|
ldr r3, [r3, 0xC]
|
|
bl rfu_REQ_configGameData
|
|
b _080FDBDA
|
|
.align 2, 0
|
|
_080FDB70: .4byte gUnknown_3005E10
|
|
_080FDB74:
|
|
bl sub_81E0CAC
|
|
b _080FDBDA
|
|
_080FDB7A:
|
|
bl rfu_REQ_pollSearchChild
|
|
b _080FDBDA
|
|
_080FDB80:
|
|
bl rfu_REQ_endSearchChild
|
|
b _080FDBDA
|
|
_080FDB86:
|
|
bl rfu_REQ_startSearchParent
|
|
b _080FDBDA
|
|
_080FDB8C:
|
|
bl rfu_REQ_pollSearchParent
|
|
b _080FDBDA
|
|
_080FDB92:
|
|
bl rfu_REQ_endSearchParent
|
|
b _080FDBDA
|
|
_080FDB98:
|
|
ldr r0, _080FDBA4 @ =gUnknown_3005E10
|
|
ldrh r0, [r0, 0x1E]
|
|
bl rfu_REQ_startConnectParent
|
|
b _080FDBDA
|
|
.align 2, 0
|
|
_080FDBA4: .4byte gUnknown_3005E10
|
|
_080FDBA8:
|
|
bl rfu_REQ_pollConnectParent
|
|
b _080FDBDA
|
|
_080FDBAE:
|
|
bl rfu_REQ_endConnectParent
|
|
b _080FDBDA
|
|
_080FDBB4:
|
|
ldr r0, _080FDBC0 @ =gUnknown_3007460
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0, 0x3]
|
|
bl rfu_REQ_CHILD_startConnectRecovery
|
|
b _080FDBDA
|
|
.align 2, 0
|
|
_080FDBC0: .4byte gUnknown_3007460
|
|
_080FDBC4:
|
|
bl rfu_REQ_CHILD_pollConnectRecovery
|
|
b _080FDBDA
|
|
_080FDBCA:
|
|
bl rfu_REQ_CHILD_endConnectRecovery
|
|
b _080FDBDA
|
|
_080FDBD0:
|
|
bl rfu_REQ_changeMasterSlave
|
|
b _080FDBDA
|
|
_080FDBD6:
|
|
bl rfu_REQ_stopMode
|
|
_080FDBDA:
|
|
bl rfu_waitREQComplete
|
|
ldr r1, _080FDC20 @ =gUnknown_3005E10
|
|
movs r0, 0
|
|
strb r0, [r1, 0xE]
|
|
_080FDBE4:
|
|
ldr r0, _080FDC20 @ =gUnknown_3005E10
|
|
ldrb r0, [r0, 0x4]
|
|
subs r0, 0x12
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bhi _080FDBF4
|
|
b _080FDA5A
|
|
_080FDBF4:
|
|
ldr r0, _080FDC24 @ =gUnknown_3007460
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x1
|
|
bne _080FDC0A
|
|
movs r0, 0
|
|
bl sub_80FD850
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080FDC1A
|
|
_080FDC0A:
|
|
bl sub_80FE418
|
|
bl sub_80FE63C
|
|
bl sub_80FE74C
|
|
bl sub_80FE918
|
|
_080FDC1A:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080FDC20: .4byte gUnknown_3005E10
|
|
_080FDC24: .4byte gUnknown_3007460
|
|
thumb_func_end sub_80FDA30
|
|
|
|
thumb_func_start sub_80FDC28
|
|
sub_80FDC28: @ 80FDC28
|
|
push {r4,lr}
|
|
adds r3, r0, 0
|
|
ldr r0, _080FDC4C @ =gUnknown_3005E10
|
|
ldrb r1, [r0, 0x7]
|
|
adds r4, r0, 0
|
|
cmp r1, 0x5
|
|
bne _080FDC52
|
|
movs r2, 0x1
|
|
strb r2, [r4, 0x6]
|
|
strb r1, [r4, 0x4]
|
|
ldrh r0, [r4, 0x1C]
|
|
strh r0, [r4, 0x1A]
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
beq _080FDC50
|
|
movs r0, 0x6
|
|
strb r0, [r4, 0x7]
|
|
b _080FDC52
|
|
.align 2, 0
|
|
_080FDC4C: .4byte gUnknown_3005E10
|
|
_080FDC50:
|
|
strb r2, [r4, 0x7]
|
|
_080FDC52:
|
|
ldrb r0, [r4, 0x7]
|
|
cmp r0, 0x1
|
|
bne _080FDC7C
|
|
strb r0, [r4, 0x6]
|
|
movs r0, 0x5
|
|
strb r0, [r4, 0x4]
|
|
adds r0, r3, 0
|
|
movs r1, 0x8C
|
|
bl __umodsi3
|
|
strh r0, [r4, 0x1A]
|
|
movs r1, 0x8C
|
|
subs r1, r0
|
|
strh r1, [r4, 0x1C]
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
beq _080FDC78
|
|
movs r0, 0x2
|
|
b _080FDC7A
|
|
_080FDC78:
|
|
movs r0, 0x3
|
|
_080FDC7A:
|
|
strb r0, [r4, 0x7]
|
|
_080FDC7C:
|
|
ldrb r0, [r4, 0x7]
|
|
cmp r0, 0x3
|
|
bne _080FDC92
|
|
movs r0, 0
|
|
strb r0, [r4, 0x6]
|
|
movs r0, 0x28
|
|
strh r0, [r4, 0x1A]
|
|
movs r0, 0x4
|
|
strb r0, [r4, 0x7]
|
|
movs r0, 0x9
|
|
strb r0, [r4, 0x4]
|
|
_080FDC92:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80FDC28
|
|
|
|
thumb_func_start sub_80FDC98
|
|
sub_80FDC98: @ 80FDC98
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
sub sp, 0x4
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
mov r8, r0
|
|
lsls r1, 16
|
|
lsrs r6, r1, 16
|
|
ldr r0, _080FDCD0 @ =gUnknown_3005E10
|
|
ldrb r1, [r0, 0xE]
|
|
adds r7, r0, 0
|
|
cmp r1, 0
|
|
bne _080FDCB6
|
|
b _080FE17C
|
|
_080FDCB6:
|
|
movs r0, 0
|
|
strb r0, [r7, 0xE]
|
|
mov r0, r8
|
|
subs r0, 0x10
|
|
cmp r0, 0x2D
|
|
bls _080FDCC4
|
|
b _080FE16E
|
|
_080FDCC4:
|
|
lsls r0, 2
|
|
ldr r1, _080FDCD4 @ =_080FDCD8
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_080FDCD0: .4byte gUnknown_3005E10
|
|
_080FDCD4: .4byte _080FDCD8
|
|
.align 2, 0
|
|
_080FDCD8:
|
|
.4byte _080FDD90
|
|
.4byte _080FE16E
|
|
.4byte _080FE16E
|
|
.4byte _080FE16E
|
|
.4byte _080FE16E
|
|
.4byte _080FE16E
|
|
.4byte _080FDDBC
|
|
.4byte _080FDDA8
|
|
.4byte _080FE16E
|
|
.4byte _080FDDD0
|
|
.4byte _080FDDE0
|
|
.4byte _080FDE04
|
|
.4byte _080FDE24
|
|
.4byte _080FDE44
|
|
.4byte _080FDEB4
|
|
.4byte _080FDEE6
|
|
.4byte _080FDEFC
|
|
.4byte _080FDF44
|
|
.4byte _080FE16E
|
|
.4byte _080FE16E
|
|
.4byte _080FE16E
|
|
.4byte _080FE16E
|
|
.4byte _080FE16E
|
|
.4byte _080FE0BC
|
|
.4byte _080FE16E
|
|
.4byte _080FE16E
|
|
.4byte _080FE16E
|
|
.4byte _080FE16E
|
|
.4byte _080FE16E
|
|
.4byte _080FE16E
|
|
.4byte _080FE16E
|
|
.4byte _080FE16E
|
|
.4byte _080FE16E
|
|
.4byte _080FE16E
|
|
.4byte _080FDFB4
|
|
.4byte _080FE000
|
|
.4byte _080FE048
|
|
.4byte _080FE16E
|
|
.4byte _080FE16E
|
|
.4byte _080FE16E
|
|
.4byte _080FE16E
|
|
.4byte _080FE16E
|
|
.4byte _080FE16E
|
|
.4byte _080FE16E
|
|
.4byte _080FE16E
|
|
.4byte _080FE15C
|
|
_080FDD90:
|
|
cmp r6, 0
|
|
beq _080FDD96
|
|
b _080FE16E
|
|
_080FDD96:
|
|
ldr r0, _080FDDA4 @ =gUnknown_3005E10
|
|
ldrb r1, [r0, 0x5]
|
|
strb r1, [r0, 0x4]
|
|
movs r1, 0x4
|
|
strb r1, [r0, 0x5]
|
|
b _080FE16E
|
|
.align 2, 0
|
|
_080FDDA4: .4byte gUnknown_3005E10
|
|
_080FDDA8:
|
|
cmp r6, 0
|
|
beq _080FDDAE
|
|
b _080FE16E
|
|
_080FDDAE:
|
|
ldr r0, _080FDDB8 @ =gUnknown_3005E10
|
|
ldrb r1, [r0, 0x5]
|
|
strb r1, [r0, 0x4]
|
|
strb r6, [r0, 0x5]
|
|
b _080FE16E
|
|
.align 2, 0
|
|
_080FDDB8: .4byte gUnknown_3005E10
|
|
_080FDDBC:
|
|
cmp r6, 0
|
|
beq _080FDDC2
|
|
b _080FE16E
|
|
_080FDDC2:
|
|
ldr r0, _080FDDCC @ =gUnknown_3005E10
|
|
strb r6, [r0, 0x5]
|
|
strb r6, [r0, 0x4]
|
|
movs r0, 0
|
|
b _080FE0DA
|
|
.align 2, 0
|
|
_080FDDCC: .4byte gUnknown_3005E10
|
|
_080FDDD0:
|
|
cmp r6, 0
|
|
beq _080FDDD6
|
|
b _080FE16E
|
|
_080FDDD6:
|
|
ldr r1, _080FDDDC @ =gUnknown_3005E10
|
|
movs r0, 0x6
|
|
b _080FDEF0
|
|
.align 2, 0
|
|
_080FDDDC: .4byte gUnknown_3005E10
|
|
_080FDDE0:
|
|
ldr r1, _080FDE00 @ =gUnknown_3005E10
|
|
ldrh r0, [r1, 0x1A]
|
|
cmp r0, 0
|
|
bne _080FDDEA
|
|
b _080FE16E
|
|
_080FDDEA:
|
|
subs r0, 0x1
|
|
strh r0, [r1, 0x1A]
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
beq _080FDDF6
|
|
b _080FE16E
|
|
_080FDDF6:
|
|
movs r0, 0x7
|
|
strb r0, [r1, 0x4]
|
|
movs r0, 0x8
|
|
strb r0, [r1, 0x5]
|
|
b _080FE16E
|
|
.align 2, 0
|
|
_080FDE00: .4byte gUnknown_3005E10
|
|
_080FDE04:
|
|
cmp r6, 0
|
|
beq _080FDE0A
|
|
b _080FE16E
|
|
_080FDE0A:
|
|
ldr r0, _080FDE20 @ =gUnknown_3005E10
|
|
ldrb r1, [r0, 0x5]
|
|
strb r1, [r0, 0x4]
|
|
strb r6, [r0, 0x5]
|
|
ldrb r0, [r0, 0x7]
|
|
cmp r0, 0
|
|
beq _080FDE1A
|
|
b _080FE16E
|
|
_080FDE1A:
|
|
movs r0, 0x13
|
|
b _080FE0DA
|
|
.align 2, 0
|
|
_080FDE20: .4byte gUnknown_3005E10
|
|
_080FDE24:
|
|
cmp r6, 0
|
|
beq _080FDE2A
|
|
b _080FE16E
|
|
_080FDE2A:
|
|
ldrb r0, [r7, 0xB]
|
|
cmp r0, 0x1
|
|
bne _080FDE3A
|
|
ldrh r0, [r7, 0x1A]
|
|
cmp r0, 0x1
|
|
bls _080FDE3A
|
|
subs r0, 0x1
|
|
strh r0, [r7, 0x1A]
|
|
_080FDE3A:
|
|
ldr r1, _080FDE40 @ =gUnknown_3005E10
|
|
movs r0, 0xA
|
|
b _080FDEF0
|
|
.align 2, 0
|
|
_080FDE40: .4byte gUnknown_3005E10
|
|
_080FDE44:
|
|
cmp r6, 0
|
|
bne _080FDE8A
|
|
bl sub_80FE778
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r1, sp
|
|
strb r0, [r1]
|
|
ldr r4, _080FDEAC @ =gUnknown_3005E10
|
|
strh r0, [r4, 0x14]
|
|
cmp r0, 0
|
|
beq _080FDE64
|
|
movs r0, 0x20
|
|
movs r1, 0x1
|
|
bl sub_80FE7F0
|
|
_080FDE64:
|
|
ldrb r0, [r4, 0xB]
|
|
cmp r0, 0
|
|
beq _080FDE8A
|
|
ldrh r0, [r4, 0x1A]
|
|
cmp r0, 0x1
|
|
beq _080FDE8A
|
|
ldr r0, _080FDEB0 @ =gUnknown_3007460
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0, 0x8]
|
|
cmp r0, 0x4
|
|
bne _080FDE8A
|
|
bl rfu_REQ_endSearchParent
|
|
bl rfu_waitREQComplete
|
|
movs r0, 0x9
|
|
strb r0, [r4, 0x4]
|
|
movs r0, 0x1
|
|
strb r0, [r4, 0xB]
|
|
_080FDE8A:
|
|
ldr r1, _080FDEAC @ =gUnknown_3005E10
|
|
ldrh r0, [r1, 0x1A]
|
|
cmp r0, 0
|
|
bne _080FDE94
|
|
b _080FE16E
|
|
_080FDE94:
|
|
subs r0, 0x1
|
|
strh r0, [r1, 0x1A]
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
beq _080FDEA0
|
|
b _080FE16E
|
|
_080FDEA0:
|
|
movs r0, 0xB
|
|
strb r0, [r1, 0x4]
|
|
movs r0, 0
|
|
strb r0, [r1, 0x5]
|
|
b _080FE16E
|
|
.align 2, 0
|
|
_080FDEAC: .4byte gUnknown_3005E10
|
|
_080FDEB0: .4byte gUnknown_3007460
|
|
_080FDEB4:
|
|
cmp r6, 0
|
|
beq _080FDEBA
|
|
b _080FE16E
|
|
_080FDEBA:
|
|
ldr r2, _080FDED4 @ =gUnknown_3005E10
|
|
ldrb r0, [r2, 0x5]
|
|
strb r0, [r2, 0x4]
|
|
ldrb r1, [r2, 0x7]
|
|
cmp r1, 0
|
|
bne _080FDED8
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080FDECE
|
|
b _080FE16E
|
|
_080FDECE:
|
|
movs r0, 0x21
|
|
b _080FE0DA
|
|
.align 2, 0
|
|
_080FDED4: .4byte gUnknown_3005E10
|
|
_080FDED8:
|
|
cmp r1, 0x7
|
|
bne _080FDEDE
|
|
b _080FE16E
|
|
_080FDEDE:
|
|
movs r0, 0x5
|
|
strb r0, [r2, 0x4]
|
|
strb r0, [r2, 0x7]
|
|
b _080FE16E
|
|
_080FDEE6:
|
|
cmp r6, 0
|
|
beq _080FDEEC
|
|
b _080FE16E
|
|
_080FDEEC:
|
|
ldr r1, _080FDEF8 @ =gUnknown_3005E10
|
|
movs r0, 0xD
|
|
_080FDEF0:
|
|
strb r0, [r1, 0x5]
|
|
strb r0, [r1, 0x4]
|
|
b _080FE16E
|
|
.align 2, 0
|
|
_080FDEF8: .4byte gUnknown_3005E10
|
|
_080FDEFC:
|
|
cmp r6, 0
|
|
bne _080FDF20
|
|
ldr r4, _080FDF3C @ =gUnknown_3005E20
|
|
mov r0, sp
|
|
adds r1, r4, 0
|
|
bl rfu_getConnectParentStatus
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
bne _080FDF20
|
|
mov r0, sp
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
bne _080FDF20
|
|
adds r1, r4, 0
|
|
subs r1, 0x10
|
|
movs r0, 0xE
|
|
strb r0, [r1, 0x4]
|
|
_080FDF20:
|
|
ldr r1, _080FDF40 @ =gUnknown_3005E10
|
|
ldrh r0, [r1, 0x1A]
|
|
cmp r0, 0
|
|
bne _080FDF2A
|
|
b _080FE16E
|
|
_080FDF2A:
|
|
subs r0, 0x1
|
|
strh r0, [r1, 0x1A]
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
beq _080FDF36
|
|
b _080FE16E
|
|
_080FDF36:
|
|
movs r0, 0xE
|
|
strb r0, [r1, 0x4]
|
|
b _080FE16E
|
|
.align 2, 0
|
|
_080FDF3C: .4byte gUnknown_3005E20
|
|
_080FDF40: .4byte gUnknown_3005E10
|
|
_080FDF44:
|
|
cmp r6, 0
|
|
beq _080FDF4A
|
|
b _080FE16E
|
|
_080FDF4A:
|
|
ldr r4, _080FDF7C @ =gUnknown_3005E20
|
|
mov r0, sp
|
|
adds r1, r4, 0
|
|
bl rfu_getConnectParentStatus
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
beq _080FDF5C
|
|
b _080FE16E
|
|
_080FDF5C:
|
|
mov r0, sp
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
bne _080FDF80
|
|
adds r1, r4, 0
|
|
subs r1, 0x10
|
|
movs r0, 0x13
|
|
strb r0, [r1, 0x4]
|
|
movs r0, 0xF
|
|
strb r0, [r1, 0x5]
|
|
movs r0, 0x22
|
|
strh r0, [r1, 0x1E]
|
|
ldrb r0, [r1, 0x10]
|
|
strh r0, [r1, 0x14]
|
|
b _080FDFA0
|
|
.align 2, 0
|
|
_080FDF7C: .4byte gUnknown_3005E20
|
|
_080FDF80:
|
|
adds r1, r4, 0
|
|
subs r1, 0x10
|
|
strb r6, [r1, 0x5]
|
|
strb r6, [r1, 0x4]
|
|
movs r0, 0x23
|
|
strh r0, [r1, 0x1E]
|
|
mov r0, sp
|
|
ldrb r0, [r0]
|
|
strh r0, [r1, 0x14]
|
|
ldrb r0, [r1, 0x7]
|
|
cmp r0, 0
|
|
beq _080FDFA0
|
|
movs r0, 0x3
|
|
strb r0, [r1, 0x7]
|
|
movs r0, 0x9
|
|
strb r0, [r1, 0x4]
|
|
_080FDFA0:
|
|
ldr r4, _080FDFB0 @ =gUnknown_3005E10
|
|
ldrb r0, [r4, 0x1E]
|
|
movs r1, 0x1
|
|
bl sub_80FE7F0
|
|
movs r0, 0
|
|
strh r0, [r4, 0x1E]
|
|
b _080FE16E
|
|
.align 2, 0
|
|
_080FDFB0: .4byte gUnknown_3005E10
|
|
_080FDFB4:
|
|
cmp r6, 0
|
|
beq _080FDFBA
|
|
b _080FE16E
|
|
_080FDFBA:
|
|
ldr r2, _080FDFFC @ =gUnknown_3007460
|
|
ldr r3, [r2]
|
|
ldrb r0, [r3, 0x3]
|
|
movs r1, 0
|
|
strh r0, [r7, 0x14]
|
|
movs r0, 0x11
|
|
strb r0, [r7, 0x5]
|
|
strb r0, [r7, 0x4]
|
|
strb r1, [r7, 0x10]
|
|
ldrb r0, [r3, 0x3]
|
|
movs r1, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080FDFD8
|
|
b _080FE16E
|
|
_080FDFD8:
|
|
adds r1, r7, 0
|
|
movs r3, 0x1
|
|
_080FDFDC:
|
|
ldrb r0, [r1, 0x10]
|
|
adds r0, 0x1
|
|
strb r0, [r1, 0x10]
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x3
|
|
bls _080FDFEC
|
|
b _080FE16E
|
|
_080FDFEC:
|
|
ldr r0, [r2]
|
|
ldrb r0, [r0, 0x3]
|
|
ldrb r4, [r7, 0x10]
|
|
asrs r0, r4
|
|
ands r0, r3
|
|
cmp r0, 0
|
|
beq _080FDFDC
|
|
b _080FE16E
|
|
.align 2, 0
|
|
_080FDFFC: .4byte gUnknown_3007460
|
|
_080FE000:
|
|
cmp r6, 0
|
|
bne _080FE01E
|
|
mov r0, sp
|
|
bl rfu_CHILD_getConnectRecoveryStatus
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
bne _080FE01E
|
|
mov r0, sp
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x1
|
|
bhi _080FE01E
|
|
ldr r1, _080FE044 @ =gUnknown_3005E10
|
|
movs r0, 0x12
|
|
strb r0, [r1, 0x4]
|
|
_080FE01E:
|
|
ldr r2, _080FE044 @ =gUnknown_3005E10
|
|
ldrb r0, [r2, 0x10]
|
|
lsls r0, 1
|
|
adds r1, r2, 0
|
|
adds r1, 0x34
|
|
adds r1, r0, r1
|
|
ldrh r0, [r1]
|
|
cmp r0, 0
|
|
bne _080FE032
|
|
b _080FE16E
|
|
_080FE032:
|
|
subs r0, 0x1
|
|
strh r0, [r1]
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
beq _080FE03E
|
|
b _080FE16E
|
|
_080FE03E:
|
|
movs r0, 0x12
|
|
strb r0, [r2, 0x4]
|
|
b _080FE16E
|
|
.align 2, 0
|
|
_080FE044: .4byte gUnknown_3005E10
|
|
_080FE048:
|
|
cmp r6, 0
|
|
beq _080FE04E
|
|
b _080FE16E
|
|
_080FE04E:
|
|
mov r0, sp
|
|
bl rfu_CHILD_getConnectRecoveryStatus
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
beq _080FE05C
|
|
b _080FE16E
|
|
_080FE05C:
|
|
mov r0, sp
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
bne _080FE078
|
|
ldr r1, _080FE074 @ =gUnknown_3005E10
|
|
movs r0, 0x13
|
|
strb r0, [r1, 0x4]
|
|
movs r0, 0x16
|
|
strb r0, [r1, 0x5]
|
|
movs r0, 0x32
|
|
strh r0, [r1, 0x1E]
|
|
b _080FE08C
|
|
.align 2, 0
|
|
_080FE074: .4byte gUnknown_3005E10
|
|
_080FE078:
|
|
ldr r4, _080FE0B4 @ =gUnknown_3005E10
|
|
strb r6, [r4, 0x5]
|
|
strb r6, [r4, 0x4]
|
|
ldr r0, _080FE0B8 @ =gUnknown_3007460
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0, 0x3]
|
|
bl sub_80FE818
|
|
movs r0, 0x33
|
|
strh r0, [r4, 0x1E]
|
|
_080FE08C:
|
|
ldr r5, _080FE0B4 @ =gUnknown_3005E10
|
|
ldrb r0, [r5, 0x10]
|
|
lsls r0, 1
|
|
adds r1, r5, 0
|
|
adds r1, 0x34
|
|
adds r0, r1
|
|
movs r1, 0
|
|
movs r4, 0
|
|
strh r4, [r0]
|
|
adds r0, r5, 0
|
|
adds r0, 0x30
|
|
strb r1, [r0]
|
|
strb r1, [r5, 0xA]
|
|
ldrb r0, [r5, 0x1E]
|
|
movs r1, 0x1
|
|
bl sub_80FE7F0
|
|
strh r4, [r5, 0x1E]
|
|
b _080FE16E
|
|
.align 2, 0
|
|
_080FE0B4: .4byte gUnknown_3005E10
|
|
_080FE0B8: .4byte gUnknown_3007460
|
|
_080FE0BC:
|
|
cmp r6, 0
|
|
bne _080FE16E
|
|
ldr r5, _080FE0E4 @ =gUnknown_3005E10
|
|
ldrb r1, [r5, 0x5]
|
|
adds r0, r1, 0
|
|
cmp r0, 0x16
|
|
bne _080FE0E8
|
|
ldrb r0, [r5, 0x11]
|
|
strb r0, [r5, 0x4]
|
|
ldrb r0, [r5, 0x12]
|
|
strb r0, [r5, 0x5]
|
|
ldrb r0, [r5, 0x2]
|
|
movs r0, 0x1
|
|
strb r0, [r5, 0x2]
|
|
movs r0, 0x41
|
|
_080FE0DA:
|
|
movs r1, 0
|
|
bl sub_80FE7F0
|
|
b _080FE16E
|
|
.align 2, 0
|
|
_080FE0E4: .4byte gUnknown_3005E10
|
|
_080FE0E8:
|
|
cmp r0, 0xF
|
|
bne _080FE16E
|
|
strb r1, [r5, 0x4]
|
|
ldrb r0, [r5, 0x2]
|
|
movs r4, 0x1
|
|
strb r4, [r5, 0x2]
|
|
movs r0, 0x41
|
|
movs r1, 0
|
|
bl sub_80FE7F0
|
|
adds r1, r5, 0
|
|
adds r1, 0x24
|
|
ldrb r0, [r5, 0x10]
|
|
lsls r4, r0
|
|
ldrb r0, [r1]
|
|
orrs r4, r0
|
|
strb r4, [r1]
|
|
ldrb r0, [r5, 0x10]
|
|
lsls r0, 1
|
|
adds r1, 0x4
|
|
adds r0, r1
|
|
ldrh r1, [r5, 0x26]
|
|
movs r7, 0
|
|
strh r1, [r0]
|
|
ldrb r1, [r5, 0x10]
|
|
movs r0, 0x4
|
|
bl rfu_clearSlot
|
|
mov r4, sp
|
|
ldrb r0, [r5, 0x10]
|
|
movs r1, 0xE
|
|
bl rfu_NI_CHILD_setSendGameName
|
|
strb r0, [r4]
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080FE16E
|
|
strb r7, [r5, 0x5]
|
|
strb r7, [r5, 0x4]
|
|
bl sub_80FEAF4
|
|
ldr r0, _080FE158 @ =gUnknown_3007460
|
|
ldr r0, [r0]
|
|
ldrb r1, [r0, 0x2]
|
|
ldrb r0, [r0, 0x3]
|
|
orrs r0, r1
|
|
bl sub_80FE818
|
|
mov r0, sp
|
|
ldrb r0, [r0]
|
|
strh r0, [r5, 0x14]
|
|
movs r0, 0x25
|
|
movs r1, 0x1
|
|
bl sub_80FE7F0
|
|
b _080FE16E
|
|
.align 2, 0
|
|
_080FE158: .4byte gUnknown_3007460
|
|
_080FE15C:
|
|
cmp r6, 0
|
|
bne _080FE16E
|
|
ldr r0, _080FE178 @ =gUnknown_3005E10
|
|
strb r6, [r0, 0x5]
|
|
strb r6, [r0, 0x4]
|
|
movs r0, 0x42
|
|
movs r1, 0
|
|
bl sub_80FE7F0
|
|
_080FE16E:
|
|
ldr r1, _080FE178 @ =gUnknown_3005E10
|
|
movs r0, 0x1
|
|
strb r0, [r1, 0xE]
|
|
b _080FE1CA
|
|
.align 2, 0
|
|
_080FE178: .4byte gUnknown_3005E10
|
|
_080FE17C:
|
|
cmp r6, 0x3
|
|
bne _080FE1CA
|
|
ldrb r0, [r7, 0xF]
|
|
cmp r0, 0
|
|
beq _080FE1CA
|
|
mov r3, r8
|
|
cmp r3, 0x24
|
|
beq _080FE194
|
|
cmp r3, 0x26
|
|
beq _080FE194
|
|
cmp r3, 0x27
|
|
bne _080FE1CA
|
|
_080FE194:
|
|
bl rfu_REQ_RFUStatus
|
|
bl rfu_waitREQComplete
|
|
mov r0, sp
|
|
bl rfu_getRFUStatus
|
|
mov r0, sp
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
bne _080FE1CA
|
|
ldr r4, _080FE1E0 @ =gUnknown_3007460
|
|
ldr r0, [r4]
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
bne _080FE1CA
|
|
bl rfu_getSTWIRecvBuffer
|
|
ldr r1, [r4]
|
|
ldrb r1, [r1, 0x2]
|
|
strb r1, [r0, 0x4]
|
|
movs r1, 0x1
|
|
strb r1, [r0, 0x5]
|
|
movs r0, 0x29
|
|
bl sub_80FD850
|
|
movs r6, 0
|
|
_080FE1CA:
|
|
mov r4, r8
|
|
cmp r4, 0x26
|
|
bne _080FE1D2
|
|
b _080FE2E6
|
|
_080FE1D2:
|
|
cmp r4, 0x26
|
|
bgt _080FE1E4
|
|
cmp r4, 0x10
|
|
bne _080FE1DC
|
|
b _080FE304
|
|
_080FE1DC:
|
|
b _080FE322
|
|
.align 2, 0
|
|
_080FE1E0: .4byte gUnknown_3007460
|
|
_080FE1E4:
|
|
mov r0, r8
|
|
cmp r0, 0x30
|
|
beq _080FE1F2
|
|
cmp r0, 0x3D
|
|
bne _080FE1F0
|
|
b _080FE304
|
|
_080FE1F0:
|
|
b _080FE322
|
|
_080FE1F2:
|
|
cmp r6, 0
|
|
beq _080FE1F8
|
|
b _080FE326
|
|
_080FE1F8:
|
|
bl rfu_getSTWIRecvBuffer
|
|
ldr r4, _080FE2A8 @ =gUnknown_3005E10
|
|
ldrb r0, [r0, 0x8]
|
|
strh r0, [r4, 0x14]
|
|
bl sub_80FE83C
|
|
adds r2, r4, 0
|
|
adds r2, 0x30
|
|
ldrb r1, [r2]
|
|
cmp r1, 0
|
|
beq _080FE24E
|
|
ldrb r0, [r4, 0x14]
|
|
adds r3, r1, 0
|
|
bics r3, r0
|
|
adds r0, r3, 0
|
|
strb r0, [r2]
|
|
movs r3, 0
|
|
adds r7, r4, 0
|
|
adds r1, r7, 0
|
|
movs r5, 0x1
|
|
adds r4, r1, 0
|
|
adds r4, 0x34
|
|
movs r2, 0
|
|
_080FE228:
|
|
ldrh r0, [r1, 0x14]
|
|
asrs r0, r3
|
|
ands r0, r5
|
|
cmp r0, 0
|
|
beq _080FE238
|
|
lsls r0, r3, 1
|
|
adds r0, r4
|
|
strh r2, [r0]
|
|
_080FE238:
|
|
adds r0, r3, 0x1
|
|
lsls r0, 24
|
|
lsrs r3, r0, 24
|
|
cmp r3, 0x3
|
|
bls _080FE228
|
|
ldr r1, _080FE2A8 @ =gUnknown_3005E10
|
|
ldrb r0, [r1, 0x6]
|
|
cmp r0, 0
|
|
bne _080FE24E
|
|
strb r0, [r1, 0x5]
|
|
strb r0, [r1, 0x4]
|
|
_080FE24E:
|
|
mov r3, sp
|
|
ldr r1, _080FE2A8 @ =gUnknown_3005E10
|
|
ldrb r2, [r1]
|
|
ldrb r0, [r1, 0x14]
|
|
ands r0, r2
|
|
strb r0, [r3]
|
|
movs r3, 0
|
|
adds r7, r1, 0
|
|
ldr r2, _080FE2AC @ =gUnknown_3007460
|
|
mov r1, sp
|
|
movs r5, 0x1
|
|
adds r4, r7, 0
|
|
_080FE266:
|
|
ldrb r0, [r1]
|
|
asrs r0, r3
|
|
ands r0, r5
|
|
cmp r0, 0
|
|
beq _080FE27A
|
|
ldrb r0, [r4, 0x1]
|
|
cmp r0, 0
|
|
beq _080FE27A
|
|
subs r0, 0x1
|
|
strb r0, [r7, 0x1]
|
|
_080FE27A:
|
|
adds r0, r3, 0x1
|
|
lsls r0, 24
|
|
lsrs r3, r0, 24
|
|
cmp r3, 0x3
|
|
bls _080FE266
|
|
ldrb r1, [r7, 0x14]
|
|
ldrb r0, [r7]
|
|
bics r0, r1
|
|
strb r0, [r7]
|
|
ldrb r1, [r7, 0x7]
|
|
cmp r1, 0
|
|
beq _080FE2C4
|
|
ldr r0, [r2]
|
|
ldrb r0, [r0]
|
|
cmp r0, 0xFF
|
|
bne _080FE2D6
|
|
cmp r1, 0x8
|
|
bne _080FE2B0
|
|
ldrh r0, [r7, 0x1C]
|
|
strh r0, [r7, 0x1A]
|
|
movs r0, 0x6
|
|
strb r0, [r7, 0x7]
|
|
b _080FE2C2
|
|
.align 2, 0
|
|
_080FE2A8: .4byte gUnknown_3005E10
|
|
_080FE2AC: .4byte gUnknown_3007460
|
|
_080FE2B0:
|
|
ldrb r0, [r7, 0x4]
|
|
subs r0, 0x6
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bls _080FE2C4
|
|
movs r0, 0x1
|
|
strb r0, [r7, 0x7]
|
|
movs r0, 0x5
|
|
_080FE2C2:
|
|
strb r0, [r7, 0x4]
|
|
_080FE2C4:
|
|
ldr r0, [r2]
|
|
ldrb r0, [r0]
|
|
cmp r0, 0xFF
|
|
bne _080FE2D6
|
|
ldrb r0, [r7, 0x4]
|
|
cmp r0, 0
|
|
bne _080FE2D6
|
|
movs r0, 0xFF
|
|
strb r0, [r7, 0x6]
|
|
_080FE2D6:
|
|
ldrb r0, [r7, 0xE]
|
|
cmp r0, 0
|
|
bne _080FE322
|
|
movs r0, 0x40
|
|
movs r1, 0x1
|
|
bl sub_80FE7F0
|
|
b _080FE322
|
|
_080FE2E6:
|
|
bl sub_80FE6F0
|
|
ldr r0, _080FE300 @ =gUnknown_3007460
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0]
|
|
cmp r0, 0xFF
|
|
beq _080FE322
|
|
movs r0, 0x50
|
|
movs r1, 0
|
|
bl sub_80FE7F0
|
|
b _080FE322
|
|
.align 2, 0
|
|
_080FE300: .4byte gUnknown_3007460
|
|
_080FE304:
|
|
cmp r6, 0
|
|
bne _080FE326
|
|
ldr r0, _080FE350 @ =gUnknown_3005E10
|
|
strb r6, [r0, 0xD]
|
|
strb r6, [r0, 0x1]
|
|
strb r6, [r0]
|
|
movs r1, 0xFF
|
|
strb r1, [r0, 0x6]
|
|
bl sub_80FEAF4
|
|
mov r4, r8
|
|
cmp r4, 0x3D
|
|
bne _080FE322
|
|
bl sub_80FD484
|
|
_080FE322:
|
|
cmp r6, 0
|
|
beq _080FE376
|
|
_080FE326:
|
|
ldr r7, _080FE350 @ =gUnknown_3005E10
|
|
mov r0, r8
|
|
cmp r0, 0x1C
|
|
bne _080FE358
|
|
cmp r6, 0
|
|
beq _080FE358
|
|
ldrb r0, [r7, 0x7]
|
|
cmp r0, 0x4
|
|
bne _080FE358
|
|
ldr r2, _080FE354 @ =gUnknown_3007460
|
|
ldr r1, [r2]
|
|
movs r0, 0x1
|
|
strb r0, [r1]
|
|
ldr r1, [r2]
|
|
movs r0, 0xF
|
|
strb r0, [r1, 0x2]
|
|
bl sub_80FE818
|
|
bl rfu_waitREQComplete
|
|
b _080FE388
|
|
.align 2, 0
|
|
_080FE350: .4byte gUnknown_3005E10
|
|
_080FE354: .4byte gUnknown_3007460
|
|
_080FE358:
|
|
movs r1, 0
|
|
mov r3, r8
|
|
strh r3, [r7, 0x14]
|
|
strh r6, [r7, 0x16]
|
|
ldrb r0, [r7, 0xE]
|
|
cmp r0, 0
|
|
beq _080FE36A
|
|
strb r1, [r7, 0x5]
|
|
strb r1, [r7, 0x4]
|
|
_080FE36A:
|
|
movs r0, 0xF0
|
|
movs r1, 0x2
|
|
bl sub_80FE7F0
|
|
bl sub_80FEAF4
|
|
_080FE376:
|
|
mov r4, r8
|
|
cmp r4, 0xFF
|
|
bne _080FE388
|
|
movs r0, 0xF2
|
|
movs r1, 0
|
|
bl sub_80FE7F0
|
|
bl sub_80FEAF4
|
|
_080FE388:
|
|
add sp, 0x4
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80FDC98
|
|
|
|
thumb_func_start sub_80FE394
|
|
sub_80FE394: @ 80FE394
|
|
push {r4-r7,lr}
|
|
sub sp, 0x4
|
|
lsls r0, 16
|
|
lsrs r6, r0, 16
|
|
ldr r4, _080FE3C8 @ =gUnknown_3005E10
|
|
ldrb r7, [r4, 0xE]
|
|
movs r0, 0
|
|
strb r0, [r4, 0xE]
|
|
movs r0, 0x1
|
|
strb r0, [r4, 0xF]
|
|
ldr r0, _080FE3CC @ =gUnknown_3007460
|
|
ldr r0, [r0]
|
|
ldrb r5, [r0]
|
|
cmp r5, 0
|
|
bne _080FE3D0
|
|
adds r0, r6, 0
|
|
bl sub_80FD850
|
|
ldrb r0, [r4, 0x2]
|
|
cmp r0, 0x1
|
|
beq _080FE3E8
|
|
bl sub_80FEAF4
|
|
strb r5, [r4, 0xF]
|
|
strb r7, [r4, 0xE]
|
|
b _080FE40C
|
|
.align 2, 0
|
|
_080FE3C8: .4byte gUnknown_3005E10
|
|
_080FE3CC: .4byte gUnknown_3007460
|
|
_080FE3D0:
|
|
mov r0, sp
|
|
bl rfu_UNI_PARENT_getDRAC_ACK
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
bne _080FE3E8
|
|
mov r1, sp
|
|
ldrb r0, [r4, 0x3]
|
|
ldrb r1, [r1]
|
|
orrs r0, r1
|
|
ldrb r1, [r4, 0x3]
|
|
strb r0, [r4, 0x3]
|
|
_080FE3E8:
|
|
ldr r4, _080FE414 @ =gUnknown_3005E10
|
|
ldr r1, [r4, 0x44]
|
|
cmp r1, 0
|
|
beq _080FE404
|
|
adds r0, r6, 0
|
|
bl _call_via_r1
|
|
bl rfu_waitREQComplete
|
|
ldrb r0, [r4, 0x2]
|
|
cmp r0, 0x2
|
|
bne _080FE404
|
|
bl sub_80FEAF4
|
|
_080FE404:
|
|
ldr r1, _080FE414 @ =gUnknown_3005E10
|
|
movs r0, 0
|
|
strb r0, [r1, 0xF]
|
|
strb r7, [r1, 0xE]
|
|
_080FE40C:
|
|
add sp, 0x4
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080FE414: .4byte gUnknown_3005E10
|
|
thumb_func_end sub_80FE394
|
|
|
|
thumb_func_start sub_80FE418
|
|
sub_80FE418: @ 80FE418
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x8
|
|
ldr r1, _080FE49C @ =gUnknown_3005E10
|
|
ldrb r0, [r1, 0x4]
|
|
subs r0, 0x5
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
adds r3, r1, 0
|
|
cmp r0, 0x3
|
|
bls _080FE436
|
|
b _080FE62A
|
|
_080FE436:
|
|
ldr r0, _080FE4A0 @ =gUnknown_3007460
|
|
ldr r2, [r0]
|
|
ldrb r1, [r2, 0x2]
|
|
ldrb r0, [r3, 0xC]
|
|
adds r4, r1, 0
|
|
eors r4, r0
|
|
ands r4, r1
|
|
ldrb r0, [r2, 0x7]
|
|
bics r4, r0
|
|
mov r8, r4
|
|
strb r1, [r3, 0xC]
|
|
cmp r4, 0
|
|
beq _080FE45E
|
|
strh r4, [r3, 0x14]
|
|
movs r0, 0x10
|
|
movs r1, 0x1
|
|
str r3, [sp, 0x4]
|
|
bl sub_80FE7F0
|
|
ldr r3, [sp, 0x4]
|
|
_080FE45E:
|
|
movs r0, 0
|
|
str r0, [sp]
|
|
movs r6, 0
|
|
adds r7, r3, 0
|
|
movs r1, 0x24
|
|
adds r1, r3
|
|
mov r9, r1
|
|
_080FE46C:
|
|
movs r0, 0x80
|
|
lsls r0, 17
|
|
lsls r0, r6
|
|
lsrs r4, r0, 24
|
|
movs r5, 0
|
|
mov r0, r8
|
|
ands r0, r4
|
|
cmp r0, 0
|
|
beq _080FE4BE
|
|
lsls r1, r6, 1
|
|
adds r0, r7, 0
|
|
adds r0, 0x28
|
|
adds r1, r0
|
|
ldrh r0, [r7, 0x26]
|
|
strh r0, [r1]
|
|
mov r2, r9
|
|
ldrb r1, [r2]
|
|
adds r0, r4, 0
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
adds r6, 0x1
|
|
mov r10, r6
|
|
b _080FE574
|
|
.align 2, 0
|
|
_080FE49C: .4byte gUnknown_3005E10
|
|
_080FE4A0: .4byte gUnknown_3007460
|
|
_080FE4A4:
|
|
ldrb r1, [r7]
|
|
adds r0, r4, 0
|
|
orrs r0, r1
|
|
strb r0, [r7]
|
|
ldrb r0, [r7, 0x1]
|
|
adds r0, 0x1
|
|
strb r0, [r7, 0x1]
|
|
ldr r0, [sp]
|
|
orrs r0, r4
|
|
str r0, [sp]
|
|
movs r0, 0x1
|
|
orrs r5, r0
|
|
b _080FE508
|
|
_080FE4BE:
|
|
mov r1, r9
|
|
ldrb r0, [r1]
|
|
ands r0, r4
|
|
adds r2, r6, 0x1
|
|
mov r10, r2
|
|
cmp r0, 0
|
|
beq _080FE574
|
|
ldr r0, _080FE518 @ =gUnknown_3007450
|
|
lsls r1, r6, 2
|
|
adds r1, r0
|
|
ldr r1, [r1]
|
|
ldrh r0, [r1, 0x34]
|
|
cmp r0, 0x46
|
|
bne _080FE524
|
|
adds r0, r1, 0
|
|
adds r0, 0x61
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x1
|
|
bne _080FE53C
|
|
movs r5, 0x2
|
|
ldr r3, [r3, 0x20]
|
|
ldrh r2, [r3]
|
|
ldr r0, _080FE51C @ =0x0000ffff
|
|
cmp r2, r0
|
|
beq _080FE508
|
|
ldr r0, _080FE520 @ =gUnknown_3007460
|
|
ldr r0, [r0]
|
|
lsls r1, r6, 5
|
|
adds r0, r1
|
|
ldrh r0, [r0, 0x18]
|
|
ldr r1, _080FE51C @ =0x0000ffff
|
|
_080FE4FC:
|
|
cmp r0, r2
|
|
beq _080FE4A4
|
|
adds r3, 0x2
|
|
ldrh r2, [r3]
|
|
cmp r2, r1
|
|
bne _080FE4FC
|
|
_080FE508:
|
|
movs r0, 0x1
|
|
ands r0, r5
|
|
cmp r0, 0
|
|
bne _080FE53C
|
|
movs r0, 0x4
|
|
orrs r5, r0
|
|
b _080FE53C
|
|
.align 2, 0
|
|
_080FE518: .4byte gUnknown_3007450
|
|
_080FE51C: .4byte 0x0000ffff
|
|
_080FE520: .4byte gUnknown_3007460
|
|
_080FE524:
|
|
lsls r1, r6, 1
|
|
adds r0, r3, 0
|
|
adds r0, 0x28
|
|
adds r1, r0
|
|
ldrh r0, [r1]
|
|
subs r0, 0x1
|
|
strh r0, [r1]
|
|
ldr r1, _080FE5F8 @ =0x0000ffff
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _080FE53C
|
|
movs r5, 0x6
|
|
_080FE53C:
|
|
movs r0, 0x2
|
|
ands r0, r5
|
|
cmp r0, 0
|
|
beq _080FE562
|
|
mov r2, r9
|
|
ldrb r0, [r2]
|
|
bics r0, r4
|
|
movs r2, 0
|
|
mov r1, r9
|
|
strb r0, [r1]
|
|
lsls r0, r6, 1
|
|
adds r1, r7, 0
|
|
adds r1, 0x28
|
|
adds r0, r1
|
|
strh r2, [r0]
|
|
movs r0, 0x8
|
|
adds r1, r6, 0
|
|
bl rfu_clearSlot
|
|
_080FE562:
|
|
movs r0, 0x4
|
|
ands r5, r0
|
|
ldr r3, _080FE5FC @ =gUnknown_3005E10
|
|
cmp r5, 0
|
|
beq _080FE574
|
|
ldrb r1, [r7, 0xD]
|
|
adds r0, r4, 0
|
|
orrs r0, r1
|
|
strb r0, [r7, 0xD]
|
|
_080FE574:
|
|
mov r2, r10
|
|
lsls r0, r2, 24
|
|
lsrs r6, r0, 24
|
|
cmp r6, 0x3
|
|
bhi _080FE580
|
|
b _080FE46C
|
|
_080FE580:
|
|
ldr r4, [sp]
|
|
cmp r4, 0
|
|
beq _080FE592
|
|
ldr r0, _080FE5FC @ =gUnknown_3005E10
|
|
strh r4, [r0, 0x14]
|
|
movs r0, 0x11
|
|
movs r1, 0x1
|
|
bl sub_80FE7F0
|
|
_080FE592:
|
|
ldr r1, _080FE5FC @ =gUnknown_3005E10
|
|
ldrb r0, [r1, 0xD]
|
|
cmp r0, 0
|
|
beq _080FE5CE
|
|
movs r5, 0x1
|
|
ldr r0, _080FE600 @ =gUnknown_3007460
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0, 0x6]
|
|
cmp r0, 0
|
|
beq _080FE5B2
|
|
ldrb r0, [r1, 0x3]
|
|
ldrb r1, [r1]
|
|
ands r0, r1
|
|
cmp r0, r1
|
|
beq _080FE5B2
|
|
movs r5, 0
|
|
_080FE5B2:
|
|
cmp r5, 0
|
|
beq _080FE5CE
|
|
ldr r4, _080FE5FC @ =gUnknown_3005E10
|
|
ldrb r0, [r4, 0xD]
|
|
bl sub_80FE818
|
|
ldrb r0, [r4, 0xD]
|
|
movs r1, 0
|
|
strh r0, [r4, 0x14]
|
|
strb r1, [r4, 0xD]
|
|
movs r0, 0x12
|
|
movs r1, 0x1
|
|
bl sub_80FE7F0
|
|
_080FE5CE:
|
|
ldr r0, _080FE5FC @ =gUnknown_3005E10
|
|
adds r1, r0, 0
|
|
adds r1, 0x24
|
|
ldrb r1, [r1]
|
|
adds r3, r0, 0
|
|
cmp r1, 0
|
|
bne _080FE62A
|
|
ldrb r0, [r3, 0x4]
|
|
cmp r0, 0x8
|
|
bne _080FE62A
|
|
ldrb r0, [r3, 0x7]
|
|
cmp r0, 0
|
|
bne _080FE604
|
|
strb r0, [r3, 0x5]
|
|
strb r0, [r3, 0x4]
|
|
movs r0, 0x14
|
|
movs r1, 0
|
|
bl sub_80FE7F0
|
|
b _080FE62A
|
|
.align 2, 0
|
|
_080FE5F8: .4byte 0x0000ffff
|
|
_080FE5FC: .4byte gUnknown_3005E10
|
|
_080FE600: .4byte gUnknown_3007460
|
|
_080FE604:
|
|
cmp r0, 0x2
|
|
bne _080FE610
|
|
movs r0, 0x3
|
|
strb r0, [r3, 0x7]
|
|
movs r0, 0x9
|
|
b _080FE616
|
|
_080FE610:
|
|
movs r0, 0x1
|
|
strb r0, [r3, 0x7]
|
|
movs r0, 0x5
|
|
_080FE616:
|
|
strb r0, [r3, 0x4]
|
|
ldrb r0, [r3]
|
|
cmp r0, 0
|
|
beq _080FE62A
|
|
movs r0, 0
|
|
strh r0, [r3, 0x1A]
|
|
movs r0, 0x8
|
|
strb r0, [r3, 0x7]
|
|
movs r0, 0x5
|
|
strb r0, [r3, 0x4]
|
|
_080FE62A:
|
|
add sp, 0x8
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80FE418
|
|
|
|
thumb_func_start sub_80FE63C
|
|
sub_80FE63C: @ 80FE63C
|
|
push {r4-r6,lr}
|
|
ldr r1, _080FE6E0 @ =0x04000208
|
|
ldrh r0, [r1]
|
|
adds r6, r0, 0
|
|
movs r0, 0
|
|
strh r0, [r1]
|
|
ldr r4, _080FE6E4 @ =gUnknown_3005E10
|
|
ldrb r0, [r4, 0x4]
|
|
cmp r0, 0xF
|
|
bne _080FE6A0
|
|
ldrb r1, [r4, 0x10]
|
|
lsls r1, 1
|
|
adds r5, r4, 0
|
|
adds r5, 0x28
|
|
adds r1, r5
|
|
ldrh r0, [r1]
|
|
subs r0, 0x1
|
|
strh r0, [r1]
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
beq _080FE676
|
|
ldr r1, _080FE6E8 @ =gUnknown_3007450
|
|
ldrb r0, [r4, 0x10]
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
ldrh r0, [r0]
|
|
cmp r0, 0x27
|
|
bne _080FE6A0
|
|
_080FE676:
|
|
bl sub_80FEB14
|
|
movs r0, 0x18
|
|
strb r0, [r4, 0x4]
|
|
ldrb r1, [r4, 0x10]
|
|
movs r0, 0x4
|
|
bl rfu_clearSlot
|
|
adds r2, r4, 0
|
|
adds r2, 0x24
|
|
movs r1, 0x1
|
|
ldrb r0, [r4, 0x10]
|
|
lsls r1, r0
|
|
ldrb r0, [r2]
|
|
bics r0, r1
|
|
strb r0, [r2]
|
|
ldrb r0, [r4, 0x10]
|
|
lsls r0, 1
|
|
adds r0, r5
|
|
movs r1, 0
|
|
strh r1, [r0]
|
|
_080FE6A0:
|
|
ldr r0, _080FE6E0 @ =0x04000208
|
|
strh r6, [r0]
|
|
ldr r5, _080FE6E4 @ =gUnknown_3005E10
|
|
ldrb r0, [r5, 0x4]
|
|
cmp r0, 0x18
|
|
bne _080FE6DA
|
|
ldrb r0, [r5, 0x2]
|
|
cmp r0, 0x1
|
|
bne _080FE6B6
|
|
bl sub_80FEB14
|
|
_080FE6B6:
|
|
ldrb r0, [r5, 0x2]
|
|
adds r4, r0, 0
|
|
cmp r4, 0
|
|
bne _080FE6DA
|
|
strb r4, [r5, 0x5]
|
|
strb r4, [r5, 0x4]
|
|
ldr r0, _080FE6EC @ =gUnknown_3007460
|
|
ldr r0, [r0]
|
|
ldrb r1, [r0, 0x2]
|
|
ldrb r0, [r0, 0x3]
|
|
orrs r0, r1
|
|
bl sub_80FE818
|
|
strh r4, [r5, 0x14]
|
|
movs r0, 0x25
|
|
movs r1, 0x1
|
|
bl sub_80FE7F0
|
|
_080FE6DA:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080FE6E0: .4byte 0x04000208
|
|
_080FE6E4: .4byte gUnknown_3005E10
|
|
_080FE6E8: .4byte gUnknown_3007450
|
|
_080FE6EC: .4byte gUnknown_3007460
|
|
thumb_func_end sub_80FE63C
|
|
|
|
thumb_func_start sub_80FE6F0
|
|
sub_80FE6F0: @ 80FE6F0
|
|
push {r4,r5,lr}
|
|
ldr r5, _080FE744 @ =gUnknown_3005E10
|
|
ldrb r0, [r5, 0x4]
|
|
cmp r0, 0xF
|
|
bne _080FE73C
|
|
ldr r1, _080FE748 @ =gUnknown_3007450
|
|
ldrb r2, [r5, 0x10]
|
|
lsls r0, r2, 2
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
ldrh r0, [r0]
|
|
cmp r0, 0x26
|
|
bne _080FE73C
|
|
movs r4, 0
|
|
strb r4, [r5, 0x5]
|
|
strb r4, [r5, 0x4]
|
|
movs r0, 0x4
|
|
adds r1, r2, 0
|
|
bl rfu_clearSlot
|
|
adds r2, r5, 0
|
|
adds r2, 0x24
|
|
movs r1, 0x1
|
|
ldrb r0, [r5, 0x10]
|
|
lsls r1, r0
|
|
ldrb r0, [r2]
|
|
bics r0, r1
|
|
strb r0, [r2]
|
|
ldrb r0, [r5, 0x10]
|
|
lsls r0, 1
|
|
adds r1, r5, 0
|
|
adds r1, 0x28
|
|
adds r0, r1
|
|
strh r4, [r0]
|
|
movs r0, 0x24
|
|
movs r1, 0
|
|
bl sub_80FE7F0
|
|
_080FE73C:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080FE744: .4byte gUnknown_3005E10
|
|
_080FE748: .4byte gUnknown_3007450
|
|
thumb_func_end sub_80FE6F0
|
|
|
|
thumb_func_start sub_80FE74C
|
|
sub_80FE74C: @ 80FE74C
|
|
push {lr}
|
|
ldr r1, _080FE774 @ =gUnknown_3005E10
|
|
ldrb r0, [r1, 0x6]
|
|
cmp r0, 0
|
|
bne _080FE770
|
|
ldrb r0, [r1, 0xA]
|
|
cmp r0, 0x1
|
|
bne _080FE770
|
|
ldrb r0, [r1, 0x4]
|
|
strb r0, [r1, 0x11]
|
|
ldrb r0, [r1, 0x5]
|
|
strb r0, [r1, 0x12]
|
|
movs r0, 0x10
|
|
strb r0, [r1, 0x4]
|
|
movs r0, 0x11
|
|
strb r0, [r1, 0x5]
|
|
movs r0, 0x2
|
|
strb r0, [r1, 0xA]
|
|
_080FE770:
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080FE774: .4byte gUnknown_3005E10
|
|
thumb_func_end sub_80FE74C
|
|
|
|
thumb_func_start sub_80FE778
|
|
sub_80FE778: @ 80FE778
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
movs r6, 0
|
|
movs r5, 0
|
|
ldr r1, _080FE7E4 @ =gUnknown_3007460
|
|
ldr r0, [r1]
|
|
ldrb r0, [r0, 0x8]
|
|
cmp r6, r0
|
|
bcs _080FE7D4
|
|
mov r8, r0
|
|
ldr r0, _080FE7E8 @ =gUnknown_3005E10
|
|
mov r10, r0
|
|
mov r9, r1
|
|
_080FE798:
|
|
mov r1, r10
|
|
ldr r3, [r1, 0x20]
|
|
ldrh r2, [r3]
|
|
adds r0, r5, 0x1
|
|
mov r12, r0
|
|
ldr r1, _080FE7EC @ =0x0000ffff
|
|
cmp r2, r1
|
|
beq _080FE7CA
|
|
mov r1, r9
|
|
ldr r0, [r1]
|
|
lsls r1, r5, 5
|
|
adds r0, r1
|
|
ldrh r4, [r0, 0x18]
|
|
ldr r7, _080FE7EC @ =0x0000ffff
|
|
movs r1, 0x1
|
|
lsls r1, r5
|
|
_080FE7B8:
|
|
cmp r4, r2
|
|
bne _080FE7C2
|
|
orrs r6, r1
|
|
lsls r0, r6, 24
|
|
lsrs r6, r0, 24
|
|
_080FE7C2:
|
|
adds r3, 0x2
|
|
ldrh r2, [r3]
|
|
cmp r2, r7
|
|
bne _080FE7B8
|
|
_080FE7CA:
|
|
mov r1, r12
|
|
lsls r0, r1, 24
|
|
lsrs r5, r0, 24
|
|
cmp r5, r8
|
|
bcc _080FE798
|
|
_080FE7D4:
|
|
adds r0, r6, 0
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_080FE7E4: .4byte gUnknown_3007460
|
|
_080FE7E8: .4byte gUnknown_3005E10
|
|
_080FE7EC: .4byte 0x0000ffff
|
|
thumb_func_end sub_80FE778
|
|
|
|
thumb_func_start sub_80FE7F0
|
|
sub_80FE7F0: @ 80FE7F0
|
|
push {r4,lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
ldr r4, _080FE814 @ =gUnknown_3005E10
|
|
ldr r2, [r4, 0x40]
|
|
cmp r2, 0
|
|
beq _080FE806
|
|
bl _call_via_r2
|
|
_080FE806:
|
|
movs r0, 0
|
|
strh r0, [r4, 0x16]
|
|
strh r0, [r4, 0x14]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080FE814: .4byte gUnknown_3005E10
|
|
thumb_func_end sub_80FE7F0
|
|
|
|
thumb_func_start sub_80FE818
|
|
sub_80FE818: @ 80FE818
|
|
push {r4,r5,lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r4, _080FE838 @ =gUnknown_3005E10
|
|
ldrb r5, [r4, 0xE]
|
|
movs r1, 0x1
|
|
strb r1, [r4, 0xE]
|
|
bl rfu_REQ_disconnect
|
|
bl rfu_waitREQComplete
|
|
strb r5, [r4, 0xE]
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080FE838: .4byte gUnknown_3005E10
|
|
thumb_func_end sub_80FE818
|
|
|
|
thumb_func_start sub_80FE83C
|
|
sub_80FE83C: @ 80FE83C
|
|
push {r4-r7,lr}
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
ldr r0, _080FE908 @ =gUnknown_3007460
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0, 0x4]
|
|
cmp r0, 0
|
|
beq _080FE884
|
|
movs r4, 0
|
|
_080FE84E:
|
|
ldr r1, _080FE90C @ =gUnknown_3007450
|
|
lsls r0, r4, 2
|
|
adds r0, r1
|
|
ldr r2, [r0]
|
|
ldrh r0, [r2]
|
|
movs r3, 0x80
|
|
lsls r3, 8
|
|
adds r1, r3, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080FE87A
|
|
ldrb r1, [r2, 0x1A]
|
|
adds r0, r5, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080FE87A
|
|
adds r2, r1, 0
|
|
bics r2, r5
|
|
movs r0, 0x20
|
|
adds r1, r4, 0
|
|
bl rfu_changeSendTarget
|
|
_080FE87A:
|
|
adds r0, r4, 0x1
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
cmp r4, 0x3
|
|
bls _080FE84E
|
|
_080FE884:
|
|
ldr r0, _080FE908 @ =gUnknown_3007460
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0, 0x5]
|
|
cmp r0, 0
|
|
beq _080FE8C2
|
|
movs r4, 0
|
|
_080FE890:
|
|
ldr r1, _080FE90C @ =gUnknown_3007450
|
|
lsls r0, r4, 2
|
|
adds r0, r1
|
|
ldr r2, [r0]
|
|
ldrh r0, [r2, 0x34]
|
|
movs r3, 0x80
|
|
lsls r3, 8
|
|
adds r1, r3, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080FE8B8
|
|
adds r0, r2, 0
|
|
adds r0, 0x4E
|
|
ldrb r0, [r0]
|
|
ands r0, r5
|
|
cmp r0, 0
|
|
beq _080FE8B8
|
|
adds r0, r4, 0
|
|
bl rfu_NI_stopReceivingData
|
|
_080FE8B8:
|
|
adds r0, r4, 0x1
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
cmp r4, 0x3
|
|
bls _080FE890
|
|
_080FE8C2:
|
|
ldr r0, _080FE908 @ =gUnknown_3007460
|
|
ldr r3, [r0]
|
|
ldrb r2, [r3, 0x6]
|
|
cmp r2, 0
|
|
beq _080FE900
|
|
mvns r1, r5
|
|
adds r0, r1, 0
|
|
ands r0, r2
|
|
strb r0, [r3, 0x6]
|
|
movs r4, 0
|
|
ldr r7, _080FE910 @ =gUnknown_3007440
|
|
ldr r6, _080FE914 @ =0x00008024
|
|
_080FE8DA:
|
|
lsls r0, r4, 2
|
|
adds r0, r7
|
|
ldr r2, [r0]
|
|
ldrh r0, [r2]
|
|
cmp r0, r6
|
|
bne _080FE8F6
|
|
ldrb r3, [r2, 0x3]
|
|
adds r0, r5, 0
|
|
ands r0, r3
|
|
cmp r0, 0
|
|
beq _080FE8F6
|
|
adds r0, r1, 0
|
|
ands r0, r3
|
|
strb r0, [r2, 0x3]
|
|
_080FE8F6:
|
|
adds r0, r4, 0x1
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
cmp r4, 0x3
|
|
bls _080FE8DA
|
|
_080FE900:
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080FE908: .4byte gUnknown_3007460
|
|
_080FE90C: .4byte gUnknown_3007450
|
|
_080FE910: .4byte gUnknown_3007440
|
|
_080FE914: .4byte 0x00008024
|
|
thumb_func_end sub_80FE83C
|
|
|
|
thumb_func_start sub_80FE918
|
|
sub_80FE918: @ 80FE918
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x4
|
|
ldr r0, _080FEA04 @ =gUnknown_3005E10
|
|
ldrh r0, [r0, 0x18]
|
|
cmp r0, 0
|
|
beq _080FE9F4
|
|
ldr r0, _080FEA08 @ =gUnknown_3007460
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0, 0x4]
|
|
cmp r0, 0
|
|
beq _080FE9B8
|
|
movs r6, 0
|
|
_080FE938:
|
|
ldr r3, _080FEA0C @ =gUnknown_3007450
|
|
lsls r2, r6, 2
|
|
adds r0, r2, r3
|
|
ldr r0, [r0]
|
|
ldrh r1, [r0]
|
|
movs r4, 0x80
|
|
lsls r4, 8
|
|
adds r0, r4, 0
|
|
ands r1, r0
|
|
adds r7, r2, 0
|
|
adds r0, r6, 0x1
|
|
mov r9, r0
|
|
cmp r1, 0
|
|
beq _080FE9AE
|
|
movs r5, 0
|
|
movs r4, 0
|
|
movs r1, 0x1
|
|
mov r8, r1
|
|
mov r10, r3
|
|
_080FE95E:
|
|
adds r0, r7, r3
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0, 0x1A]
|
|
asrs r0, r4
|
|
mov r1, r8
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080FE988
|
|
lsls r0, r4, 2
|
|
adds r0, r3
|
|
ldr r0, [r0]
|
|
ldr r1, _080FEA04 @ =gUnknown_3005E10
|
|
ldrh r0, [r0, 0x2]
|
|
ldrh r1, [r1, 0x18]
|
|
cmp r0, r1
|
|
bls _080FE988
|
|
mov r0, r8
|
|
lsls r0, r4
|
|
orrs r5, r0
|
|
lsls r0, r5, 24
|
|
lsrs r5, r0, 24
|
|
_080FE988:
|
|
cmp r5, 0
|
|
beq _080FE9A4
|
|
mov r1, r10
|
|
adds r0, r7, r1
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0, 0x1A]
|
|
adds r2, r5, 0
|
|
eors r2, r0
|
|
movs r0, 0x20
|
|
adds r1, r6, 0
|
|
str r3, [sp]
|
|
bl rfu_changeSendTarget
|
|
ldr r3, [sp]
|
|
_080FE9A4:
|
|
adds r0, r4, 0x1
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
cmp r4, 0x3
|
|
bls _080FE95E
|
|
_080FE9AE:
|
|
mov r3, r9
|
|
lsls r0, r3, 24
|
|
lsrs r6, r0, 24
|
|
cmp r6, 0x3
|
|
bls _080FE938
|
|
_080FE9B8:
|
|
ldr r0, _080FEA08 @ =gUnknown_3007460
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0, 0x5]
|
|
cmp r0, 0
|
|
beq _080FE9F4
|
|
movs r6, 0
|
|
_080FE9C4:
|
|
ldr r1, _080FEA0C @ =gUnknown_3007450
|
|
lsls r0, r6, 2
|
|
adds r0, r1
|
|
ldr r2, [r0]
|
|
ldrh r0, [r2, 0x34]
|
|
movs r4, 0x80
|
|
lsls r4, 8
|
|
adds r1, r4, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080FE9EA
|
|
ldr r1, _080FEA04 @ =gUnknown_3005E10
|
|
ldrh r0, [r2, 0x36]
|
|
ldrh r1, [r1, 0x18]
|
|
cmp r0, r1
|
|
bls _080FE9EA
|
|
adds r0, r6, 0
|
|
bl rfu_NI_stopReceivingData
|
|
_080FE9EA:
|
|
adds r0, r6, 0x1
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
cmp r6, 0x3
|
|
bls _080FE9C4
|
|
_080FE9F4:
|
|
add sp, 0x4
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080FEA04: .4byte gUnknown_3005E10
|
|
_080FEA08: .4byte gUnknown_3007460
|
|
_080FEA0C: .4byte gUnknown_3007450
|
|
thumb_func_end sub_80FE918
|
|
|
|
thumb_func_start sub_80FEA10
|
|
sub_80FEA10: @ 80FEA10
|
|
push {lr}
|
|
ldr r1, _080FEA20 @ =gUnknown_3005E10
|
|
str r0, [r1, 0x44]
|
|
ldr r0, _080FEA24 @ =sub_80FE394
|
|
bl rfu_setMSCCallback
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080FEA20: .4byte gUnknown_3005E10
|
|
_080FEA24: .4byte sub_80FE394
|
|
thumb_func_end sub_80FEA10
|
|
|
|
thumb_func_start sub_80FEA28
|
|
sub_80FEA28: @ 80FEA28
|
|
ldr r1, _080FEA30 @ =gUnknown_3005E10
|
|
str r0, [r1, 0x40]
|
|
bx lr
|
|
.align 2, 0
|
|
_080FEA30: .4byte gUnknown_3005E10
|
|
thumb_func_end sub_80FEA28
|
|
|
|
thumb_func_start sub_80FEA34
|
|
sub_80FEA34: @ 80FEA34
|
|
push {r4,r5,lr}
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
lsls r1, 16
|
|
lsrs r5, r1, 16
|
|
ldr r0, _080FEA58 @ =gUnknown_3005E10
|
|
ldrb r1, [r0, 0x9]
|
|
adds r3, r0, 0
|
|
cmp r1, 0
|
|
beq _080FEA5C
|
|
cmp r4, 0
|
|
bne _080FEA5C
|
|
adds r0, 0x30
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
beq _080FEA5C
|
|
movs r0, 0x5
|
|
b _080FEA6C
|
|
.align 2, 0
|
|
_080FEA58: .4byte gUnknown_3005E10
|
|
_080FEA5C:
|
|
ldr r2, _080FEA74 @ =0x04000208
|
|
ldrh r1, [r2]
|
|
movs r0, 0
|
|
strh r0, [r2]
|
|
strb r4, [r3, 0x9]
|
|
strh r5, [r3, 0x32]
|
|
strh r1, [r2]
|
|
movs r0, 0
|
|
_080FEA6C:
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_080FEA74: .4byte 0x04000208
|
|
thumb_func_end sub_80FEA34
|
|
|
|
thumb_func_start sub_80FEA78
|
|
sub_80FEA78: @ 80FEA78
|
|
push {lr}
|
|
lsls r0, 16
|
|
lsrs r2, r0, 16
|
|
ldr r0, _080FEA94 @ =gUnknown_3007460
|
|
ldr r0, [r0]
|
|
ldrb r1, [r0, 0x4]
|
|
ldrb r0, [r0, 0x5]
|
|
orrs r0, r1
|
|
cmp r0, 0
|
|
bne _080FEA9C
|
|
ldr r0, _080FEA98 @ =gUnknown_3005E10
|
|
strh r2, [r0, 0x18]
|
|
movs r0, 0
|
|
b _080FEAAC
|
|
.align 2, 0
|
|
_080FEA94: .4byte gUnknown_3007460
|
|
_080FEA98: .4byte gUnknown_3005E10
|
|
_080FEA9C:
|
|
ldr r1, _080FEAB0 @ =gUnknown_3005E10
|
|
movs r0, 0x6
|
|
strh r0, [r1, 0x14]
|
|
movs r0, 0xF3
|
|
movs r1, 0x1
|
|
bl sub_80FE7F0
|
|
movs r0, 0x6
|
|
_080FEAAC:
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_080FEAB0: .4byte gUnknown_3005E10
|
|
thumb_func_end sub_80FEA78
|
|
|
|
thumb_func_start sub_80FEAB4
|
|
sub_80FEAB4: @ 80FEAB4
|
|
push {lr}
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
adds r3, r2, 0
|
|
ldr r1, _080FEADC @ =gUnknown_3005E10
|
|
ldrb r0, [r1, 0x4]
|
|
subs r0, 0x9
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x2
|
|
bhi _080FEAE0
|
|
movs r0, 0x7
|
|
strh r0, [r1, 0x14]
|
|
movs r0, 0xF3
|
|
movs r1, 0x1
|
|
bl sub_80FE7F0
|
|
movs r0, 0x7
|
|
b _080FEAEE
|
|
.align 2, 0
|
|
_080FEADC: .4byte gUnknown_3005E10
|
|
_080FEAE0:
|
|
cmp r2, 0
|
|
beq _080FEAEA
|
|
movs r0, 0x1
|
|
strb r0, [r1, 0xB]
|
|
b _080FEAEC
|
|
_080FEAEA:
|
|
strb r3, [r1, 0xB]
|
|
_080FEAEC:
|
|
movs r0, 0
|
|
_080FEAEE:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80FEAB4
|
|
|
|
thumb_func_start sub_80FEAF4
|
|
sub_80FEAF4: @ 80FEAF4
|
|
push {lr}
|
|
ldr r1, _080FEB10 @ =gUnknown_3005E10
|
|
ldrb r0, [r1, 0x2]
|
|
cmp r0, 0
|
|
beq _080FEB0C
|
|
ldrb r0, [r1, 0x2]
|
|
movs r0, 0
|
|
strb r0, [r1, 0x2]
|
|
movs r0, 0x45
|
|
movs r1, 0
|
|
bl sub_80FE7F0
|
|
_080FEB0C:
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080FEB10: .4byte gUnknown_3005E10
|
|
thumb_func_end sub_80FEAF4
|
|
|
|
thumb_func_start sub_80FEB14
|
|
sub_80FEB14: @ 80FEB14
|
|
push {lr}
|
|
ldr r1, _080FEB28 @ =gUnknown_3005E10
|
|
ldrb r0, [r1, 0x2]
|
|
cmp r0, 0
|
|
bne _080FEB2C
|
|
movs r0, 0x45
|
|
movs r1, 0
|
|
bl sub_80FE7F0
|
|
b _080FEB38
|
|
.align 2, 0
|
|
_080FEB28: .4byte gUnknown_3005E10
|
|
_080FEB2C:
|
|
ldrb r0, [r1, 0x2]
|
|
cmp r0, 0x1
|
|
bne _080FEB38
|
|
ldrb r0, [r1, 0x2]
|
|
movs r0, 0x2
|
|
strb r0, [r1, 0x2]
|
|
_080FEB38:
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80FEB14
|
|
|
|
thumb_func_start sub_80FEB3C
|
|
sub_80FEB3C: @ 80FEB3C
|
|
push {lr}
|
|
ldr r0, _080FEB5C @ =gUnknown_3005E10
|
|
ldrb r1, [r0, 0x7]
|
|
adds r2, r0, 0
|
|
cmp r1, 0
|
|
beq _080FEBA6
|
|
ldrb r0, [r2, 0x4]
|
|
subs r0, 0x5
|
|
cmp r0, 0x6
|
|
bhi _080FEBA6
|
|
lsls r0, 2
|
|
ldr r1, _080FEB60 @ =_080FEB64
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_080FEB5C: .4byte gUnknown_3005E10
|
|
_080FEB60: .4byte _080FEB64
|
|
.align 2, 0
|
|
_080FEB64:
|
|
.4byte _080FEB80
|
|
.4byte _080FEB88
|
|
.4byte _080FEB92
|
|
.4byte _080FEB92
|
|
.4byte _080FEB98
|
|
.4byte _080FEB98
|
|
.4byte _080FEB9E
|
|
_080FEB80:
|
|
movs r0, 0x3
|
|
strb r0, [r2, 0x7]
|
|
movs r0, 0x9
|
|
b _080FEBA4
|
|
_080FEB88:
|
|
movs r0, 0x2
|
|
strb r0, [r2, 0x7]
|
|
movs r0, 0x1
|
|
strh r0, [r2, 0x1A]
|
|
b _080FEBA6
|
|
_080FEB92:
|
|
movs r0, 0x2
|
|
strb r0, [r2, 0x7]
|
|
b _080FEBA6
|
|
_080FEB98:
|
|
movs r0, 0x28
|
|
strh r0, [r2, 0x1A]
|
|
b _080FEBA6
|
|
_080FEB9E:
|
|
movs r0, 0x28
|
|
strh r0, [r2, 0x1A]
|
|
movs r0, 0xA
|
|
_080FEBA4:
|
|
strb r0, [r2, 0x4]
|
|
_080FEBA6:
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80FEB3C
|
|
|
|
.align 2, 0 @ Don't pad with nop.
|