summaryrefslogtreecommitdiff
path: root/asm/match_call.s
diff options
context:
space:
mode:
Diffstat (limited to 'asm/match_call.s')
-rw-r--r--asm/match_call.s445
1 files changed, 445 insertions, 0 deletions
diff --git a/asm/match_call.s b/asm/match_call.s
new file mode 100644
index 000000000..af83c30db
--- /dev/null
+++ b/asm/match_call.s
@@ -0,0 +1,445 @@
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start sub_81D1920
+sub_81D1920: @ 81D1920
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ adds r6, r0, 0
+ mov r9, r1
+ movs r5, 0
+ ldr r0, [r6]
+ cmp r0, 0
+ beq _081D1940
+ adds r1, r6, 0
+_081D1936:
+ adds r1, 0x8
+ adds r5, 0x1
+ ldr r0, [r1]
+ cmp r0, 0
+ bne _081D1936
+_081D1940:
+ cmp r5, 0
+ beq _081D1946
+ subs r5, 0x1
+_081D1946:
+ ldr r0, =0x0000ffff
+ mov r8, r0
+ lsls r0, r5, 3
+ adds r0, 0x4
+ adds r4, r0, r6
+ b _081D195C
+ .pool
+_081D1958:
+ subs r4, 0x8
+ subs r5, 0x1
+_081D195C:
+ lsls r7, r5, 3
+ cmp r5, 0
+ beq _081D1974
+ ldrh r0, [r4]
+ cmp r0, r8
+ beq _081D1958
+ bl FlagGet
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _081D1958
+_081D1974:
+ adds r4, r7, r6
+ ldrh r1, [r4, 0x6]
+ ldr r0, =0x0000ffff
+ cmp r1, r0
+ beq _081D1984
+ adds r0, r1, 0
+ bl FlagSet
+_081D1984:
+ ldr r1, [r4]
+ mov r0, r9
+ bl StringExpandPlaceholders
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81D1920
+
+ thumb_func_start sub_81D199C
+sub_81D199C: @ 81D199C
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ adds r6, r0, 0
+ mov r10, r2
+ lsls r1, 16
+ lsrs r7, r1, 16
+ movs r5, 0
+ ldr r0, [r6]
+ cmp r0, 0
+ beq _081D19E6
+ ldrh r0, [r6, 0x4]
+ ldr r1, =0x0000fffe
+ cmp r0, r1
+ beq _081D1A24
+ ldr r0, =0x0000ffff
+ mov r9, r0
+ mov r8, r1
+ adds r4, r6, 0
+_081D19C6:
+ ldrh r0, [r4, 0x4]
+ cmp r0, r9
+ beq _081D19D6
+ bl FlagGet
+ lsls r0, 24
+ cmp r0, 0
+ beq _081D19E6
+_081D19D6:
+ adds r4, 0x8
+ adds r5, 0x1
+ ldr r0, [r4]
+ cmp r0, 0
+ beq _081D19E6
+ ldrh r0, [r4, 0x4]
+ cmp r0, r8
+ bne _081D19C6
+_081D19E6:
+ lsls r0, r5, 3
+ adds r0, r6
+ ldrh r1, [r0, 0x4]
+ ldr r0, =0x0000fffe
+ cmp r1, r0
+ beq _081D1A24
+ cmp r5, 0
+ beq _081D19F8
+ subs r5, 0x1
+_081D19F8:
+ lsls r0, r5, 3
+ adds r4, r0, r6
+ ldrh r1, [r4, 0x6]
+ ldr r0, =0x0000ffff
+ cmp r1, r0
+ beq _081D1A0A
+ adds r0, r1, 0
+ bl FlagSet
+_081D1A0A:
+ ldr r1, [r4]
+ mov r0, r10
+ bl StringExpandPlaceholders
+ b _081D1A5C
+ .pool
+_081D1A1C:
+ adds r5, 0x2
+ b _081D1A50
+_081D1A20:
+ adds r5, 0x3
+ b _081D1A50
+_081D1A24:
+ ldr r0, =0x00000864
+ bl FlagGet
+ lsls r0, 24
+ cmp r0, 0
+ beq _081D1A50
+ ldr r0, =gSaveBlock1Ptr
+ ldr r0, [r0]
+ ldr r1, =0x000009ca
+ adds r0, r1
+ adds r0, r7
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _081D1A1C
+ adds r0, r7, 0
+ bl CountBattledRematchTeams
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x1
+ bhi _081D1A20
+ adds r5, 0x1
+_081D1A50:
+ lsls r0, r5, 3
+ adds r0, r6
+ ldr r1, [r0]
+ mov r0, r10
+ bl StringExpandPlaceholders
+_081D1A5C:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81D199C
+
+ thumb_func_start sub_81D1A78
+sub_81D1A78: @ 81D1A78
+ push {r4-r6,lr}
+ adds r5, r1, 0
+ adds r6, r2, 0
+ cmp r0, 0x14
+ bhi _081D1AA2
+ ldr r1, =gUnknown_086252A8
+ lsls r0, 2
+ adds r0, r1
+ ldr r4, [r0]
+ adds r0, r4, 0
+ bl sub_81D1574
+ ldr r1, =gUnknown_08625374
+ lsls r0, 2
+ adds r0, r1
+ ldr r3, [r0]
+ adds r0, r4, 0
+ adds r1, r5, 0
+ adds r2, r6, 0
+ bl _call_via_r3
+_081D1AA2:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81D1A78
+
+ thumb_func_start sub_81D1AB0
+sub_81D1AB0: @ 81D1AB0
+ ldr r3, [r0, 0x4]
+ str r3, [r1]
+ ldr r0, [r0, 0x8]
+ str r0, [r2]
+ bx lr
+ thumb_func_end sub_81D1AB0
+
+ thumb_func_start sub_81D1ABC
+sub_81D1ABC: @ 81D1ABC
+ push {r4,r5,lr}
+ adds r5, r1, 0
+ adds r4, r0, 0
+ ldr r0, [r4, 0xC]
+ cmp r0, 0
+ bne _081D1AD0
+ ldrh r0, [r4, 0x4]
+ bl sub_81D1B0C
+ b _081D1AD2
+_081D1AD0:
+ str r0, [r2]
+_081D1AD2:
+ ldr r0, [r4, 0x8]
+ str r0, [r5]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81D1ABC
+
+ thumb_func_start sub_81D1ADC
+sub_81D1ADC: @ 81D1ADC
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ adds r5, r1, 0
+ ldrh r0, [r4, 0x4]
+ bl sub_81D1B0C
+ ldr r0, [r4, 0x8]
+ str r0, [r5]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81D1ADC
+
+ thumb_func_start sub_81D1AF4
+sub_81D1AF4: @ 81D1AF4
+ ldr r3, [r0, 0x4]
+ str r3, [r1]
+ ldr r0, [r0, 0x8]
+ str r0, [r2]
+ bx lr
+ thumb_func_end sub_81D1AF4
+
+ thumb_func_start sub_81D1B00
+sub_81D1B00: @ 81D1B00
+ ldr r3, [r0, 0x4]
+ str r3, [r1]
+ ldr r0, [r0, 0x8]
+ str r0, [r2]
+ bx lr
+ thumb_func_end sub_81D1B00
+
+ thumb_func_start sub_81D1B0C
+sub_81D1B0C: @ 81D1B0C
+ push {r4,r5,lr}
+ adds r4, r1, 0
+ adds r5, r2, 0
+ bl sub_81D15BC
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r0, =gTrainers
+ adds r1, r0
+ ldrb r2, [r1, 0x1]
+ movs r0, 0xD
+ muls r0, r2
+ ldr r2, =gTrainerClassNames
+ adds r0, r2
+ str r0, [r4]
+ adds r1, 0x4
+ str r1, [r5]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81D1B0C
+
+ thumb_func_start sub_81D1B40
+sub_81D1B40: @ 81D1B40
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ adds r6, r0, 0
+ movs r5, 0
+ ldr r2, =gUnknown_08625388
+ movs r0, 0x8
+ adds r0, r2
+ mov r9, r0
+_081D1B54:
+ lsls r0, r5, 1
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r2
+ ldrh r0, [r0]
+ cmp r0, r6
+ bne _081D1BBC
+ adds r4, r5, 0x1
+ lsls r1, 2
+ mov r8, r1
+ cmp r4, 0x3
+ bhi _081D1BA8
+ lsls r0, r4, 1
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r2
+ ldrh r0, [r0]
+ cmp r0, r6
+ bne _081D1BA8
+ ldr r7, =gUnknown_08625388
+_081D1B7C:
+ lsls r0, r4, 1
+ adds r0, r4
+ lsls r0, 3
+ adds r1, r7, 0x4
+ adds r0, r1
+ ldrh r0, [r0]
+ bl FlagGet
+ lsls r0, 24
+ cmp r0, 0
+ beq _081D1BA8
+ adds r5, r4, 0
+ adds r4, r5, 0x1
+ cmp r4, 0x3
+ bhi _081D1BA8
+ lsls r0, r4, 1
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r7
+ ldrh r0, [r0]
+ cmp r0, r6
+ beq _081D1B7C
+_081D1BA8:
+ lsls r0, r5, 1
+ adds r0, r5
+ lsls r0, 3
+ add r0, r8
+ add r0, r9
+ ldr r0, [r0]
+ b _081D1BC4
+ .pool
+_081D1BBC:
+ adds r5, 0x1
+ cmp r5, 0x3
+ bls _081D1B54
+ movs r0, 0
+_081D1BC4:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81D1B40
+
+ thumb_func_start sub_81D1BD0
+sub_81D1BD0: @ 81D1BD0
+ push {lr}
+ adds r3, r0, 0
+ movs r2, 0
+ ldr r1, =gUnknown_08625388
+_081D1BD8:
+ ldrh r0, [r1]
+ cmp r0, r3
+ bne _081D1BE8
+ ldrh r0, [r1, 0x2]
+ b _081D1BF4
+ .pool
+_081D1BE8:
+ adds r1, 0x18
+ adds r2, 0x1
+ cmp r2, 0x3
+ bls _081D1BD8
+ movs r0, 0x1
+ negs r0, r0
+_081D1BF4:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81D1BD0
+
+ thumb_func_start sub_81D1BF8
+sub_81D1BF8: @ 81D1BF8
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ movs r4, 0
+_081D1BFE:
+ adds r0, r4, 0
+ bl sub_81D1854
+ cmp r0, 0x4E
+ beq _081D1C10
+ cmp r0, r5
+ bne _081D1C10
+ movs r0, 0x1
+ b _081D1C18
+_081D1C10:
+ adds r4, 0x1
+ cmp r4, 0x14
+ ble _081D1BFE
+ movs r0, 0
+_081D1C18:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81D1BF8
+
+ thumb_func_start SetMatchCallRegisteredFlag
+SetMatchCallRegisteredFlag: @ 81D1C20
+ push {lr}
+ ldr r0, =gSpecialVar_0x8004
+ ldrh r0, [r0]
+ bl sub_81D15CC
+ cmp r0, 0
+ blt _081D1C3C
+ movs r1, 0xAE
+ lsls r1, 1
+ adds r0, r1
+ lsls r0, 16
+ lsrs r0, 16
+ bl FlagSet
+_081D1C3C:
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end SetMatchCallRegisteredFlag