summaryrefslogtreecommitdiff
path: root/asm/mevent2.s
diff options
context:
space:
mode:
authorMarcus Huderle <huderlem@gmail.com>2019-03-24 13:09:46 -0500
committerhuderlem <huderlem@gmail.com>2019-03-24 13:15:37 -0500
commit456cc3a6f02b6f45753b47e5ea37bd92e616f089 (patch)
tree6bda4b048a176415741bc253d94f6ffd980dbbe2 /asm/mevent2.s
parentd3ff307f9f1067ae1a893bed1938417eb0c07c83 (diff)
Split out the remaining wireless-related files
Diffstat (limited to 'asm/mevent2.s')
-rwxr-xr-xasm/mevent2.s1425
1 files changed, 1425 insertions, 0 deletions
diff --git a/asm/mevent2.s b/asm/mevent2.s
new file mode 100755
index 000000000..6d894207f
--- /dev/null
+++ b/asm/mevent2.s
@@ -0,0 +1,1425 @@
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .syntax unified
+
+ .text
+
+@void sub_801AFD8() {
+@ CpuFill32(0, &gSaveBlock1Ptr->field_322C, 219);
+@ sub_801B180();
+@ sub_811F8BC();
+@}
+ thumb_func_start sub_801AFD8
+sub_801AFD8: @ 801AFD8
+ push {lr}
+ sub sp, 0x4
+ movs r0, 0
+ str r0, [sp]
+ ldr r0, =gSaveBlock1Ptr
+ ldr r1, [r0]
+ ldr r0, =0x0000322c
+ adds r1, r0
+ ldr r2, =0x050000db
+ mov r0, sp
+ bl CpuSet
+ bl sub_801B180
+ bl sub_811F8BC
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_801AFD8
+
+ thumb_func_start sub_801B00C
+sub_801B00C: @ 801B00C
+ ldr r0, =gSaveBlock1Ptr
+ ldr r0, [r0]
+ ldr r1, =0x00003230
+ adds r0, r1
+ bx lr
+ .pool
+ thumb_func_end sub_801B00C
+
+ thumb_func_start sav1_get_mevent_buffer_1
+sav1_get_mevent_buffer_1: @ 801B020
+ ldr r0, =gSaveBlock1Ptr
+ ldr r0, [r0]
+ ldr r1, =0x000033f0
+ adds r0, r1
+ bx lr
+ .pool
+ thumb_func_end sav1_get_mevent_buffer_1
+
+ thumb_func_start sav1_get_mevent_buffer_2
+sav1_get_mevent_buffer_2: @ 801B034
+ ldr r0, =gSaveBlock1Ptr
+ ldr r0, [r0]
+ movs r1, 0xD5
+ lsls r1, 6
+ adds r0, r1
+ bx lr
+ .pool
+ thumb_func_end sav1_get_mevent_buffer_2
+
+ thumb_func_start GetSaveBlock1Field356C
+GetSaveBlock1Field356C: @ 801B044
+ ldr r0, =gSaveBlock1Ptr
+ ldr r0, [r0]
+ ldr r1, =0x0000356c
+ adds r0, r1
+ bx lr
+ .pool
+ thumb_func_end GetSaveBlock1Field356C
+
+ thumb_func_start GetSaveBlock1Field3564
+GetSaveBlock1Field3564: @ 801B058
+ ldr r0, =gSaveBlock1Ptr
+ ldr r0, [r0]
+ ldr r1, =0x00003564
+ adds r0, r1
+ bx lr
+ .pool
+ thumb_func_end GetSaveBlock1Field3564
+
+ thumb_func_start sub_801B06C
+sub_801B06C: @ 801B06C
+ push {lr}
+ bl sub_801B14C
+ pop {r0}
+ bx r0
+ thumb_func_end sub_801B06C
+
+ thumb_func_start sub_801B078
+sub_801B078: @ 801B078
+ push {r4-r7,lr}
+ adds r7, r0, 0
+ bl sub_801B114
+ cmp r0, 0
+ beq _0801B0C4
+ bl sub_801B14C
+ ldr r4, =gSaveBlock1Ptr
+ ldr r0, [r4]
+ ldr r5, =0x00003230
+ adds r0, r5
+ movs r6, 0xDE
+ lsls r6, 1
+ adds r1, r7, 0
+ adds r2, r6, 0
+ bl memcpy
+ ldr r0, [r4]
+ adds r0, r5
+ adds r1, r6, 0
+ bl CalcCRC16WithTable
+ ldr r1, [r4]
+ ldr r2, =0x0000322c
+ adds r1, r2
+ lsls r0, 16
+ lsrs r0, 16
+ str r0, [r1]
+ movs r0, 0x1
+ b _0801B0C6
+ .pool
+_0801B0C4:
+ movs r0, 0
+_0801B0C6:
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_801B078
+
+ thumb_func_start sub_801B0CC
+sub_801B0CC: @ 801B0CC
+ push {r4,lr}
+ ldr r4, =gSaveBlock1Ptr
+ ldr r0, [r4]
+ ldr r1, =0x00003230
+ adds r0, r1
+ movs r1, 0xDE
+ lsls r1, 1
+ bl CalcCRC16WithTable
+ lsls r0, 16
+ lsrs r0, 16
+ ldr r4, [r4]
+ ldr r2, =0x0000322c
+ adds r1, r4, r2
+ ldr r1, [r1]
+ cmp r0, r1
+ bne _0801B10C
+ ldr r1, =0x00003230
+ adds r0, r4, r1
+ bl sub_801B114
+ cmp r0, 0
+ beq _0801B10C
+ movs r0, 0x1
+ b _0801B10E
+ .pool
+_0801B10C:
+ movs r0, 0
+_0801B10E:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_801B0CC
+
+ thumb_func_start sub_801B114
+sub_801B114: @ 801B114
+ push {lr}
+ ldrh r0, [r0]
+ cmp r0, 0
+ beq _0801B120
+ movs r0, 0x1
+ b _0801B122
+_0801B120:
+ movs r0, 0
+_0801B122:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_801B114
+
+ thumb_func_start sub_801B128
+sub_801B128: @ 801B128
+ push {lr}
+ ldr r0, =gSaveBlock1Ptr
+ ldr r0, [r0]
+ ldr r1, =0x00003230
+ adds r0, r1
+ ldrb r0, [r0, 0x2]
+ cmp r0, 0
+ beq _0801B144
+ movs r0, 0x1
+ b _0801B146
+ .pool
+_0801B144:
+ movs r0, 0
+_0801B146:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_801B128
+
+ thumb_func_start sub_801B14C
+sub_801B14C: @ 801B14C
+ push {r4,lr}
+ sub sp, 0x4
+ movs r4, 0
+ str r4, [sp]
+ bl sub_801B00C
+ adds r1, r0, 0
+ ldr r2, =0x0500006f
+ mov r0, sp
+ bl CpuSet
+ ldr r0, =gSaveBlock1Ptr
+ ldr r0, [r0]
+ ldr r1, =0x0000322c
+ adds r0, r1
+ str r4, [r0]
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_801B14C
+
+ thumb_func_start sub_801B180
+sub_801B180: @ 801B180
+ push {lr}
+ sub sp, 0x4
+ movs r0, 0
+ str r0, [sp]
+ bl GetSaveBlock1Field356C
+ adds r1, r0, 0
+ ldr r2, =0x05000001
+ mov r0, sp
+ bl CpuSet
+ bl sub_801DBC0
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_801B180
+
+ thumb_func_start sub_801B1A4
+sub_801B1A4: @ 801B1A4
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldr r0, =gSaveBlock1Ptr
+ ldr r0, [r0]
+ ldr r1, =0x00003230
+ adds r4, r0, r1
+ bl sub_801B0CC
+ cmp r0, 0
+ bne _0801B1C4
+_0801B1B8:
+ movs r0, 0
+ b _0801B1DC
+ .pool
+_0801B1C4:
+ movs r2, 0
+ ldr r3, =0x000001bb
+_0801B1C8:
+ adds r0, r4, r2
+ adds r1, r5, r2
+ ldrb r0, [r0]
+ ldrb r1, [r1]
+ cmp r0, r1
+ bne _0801B1B8
+ adds r2, 0x1
+ cmp r2, r3
+ bls _0801B1C8
+ movs r0, 0x1
+_0801B1DC:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_801B1A4
+
+ thumb_func_start sub_801B1E8
+sub_801B1E8: @ 801B1E8
+ push {lr}
+ bl sub_801B330
+ bl sub_801B368
+ bl sub_801B9F8
+ bl ClearRamScript
+ bl sub_809D4D8
+ bl sub_809D570
+ ldr r0, =gSaveBlock2Ptr
+ ldr r0, [r0]
+ ldr r1, =0x00000bec
+ adds r0, r1
+ bl ClearEReaderTrainer
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_801B1E8
+
+ thumb_func_start sub_801B21C
+sub_801B21C: @ 801B21C
+ push {r4-r7,lr}
+ adds r7, r0, 0
+ bl sub_801B2CC
+ cmp r0, 0
+ beq _0801B274
+ bl sub_801B1E8
+ ldr r4, =gSaveBlock1Ptr
+ ldr r0, [r4]
+ ldr r5, =0x000033f0
+ adds r0, r5
+ movs r6, 0xA6
+ lsls r6, 1
+ adds r1, r7, 0
+ adds r2, r6, 0
+ bl memcpy
+ ldr r0, [r4]
+ adds r0, r5
+ adds r1, r6, 0
+ bl CalcCRC16WithTable
+ ldr r1, [r4]
+ ldr r3, =0x000033ec
+ adds r2, r1, r3
+ lsls r0, 16
+ lsrs r0, 16
+ str r0, [r2]
+ movs r0, 0xD5
+ lsls r0, 6
+ adds r2, r1, r0
+ adds r1, r5
+ ldrh r0, [r1, 0x2]
+ strh r0, [r2, 0x6]
+ movs r0, 0x1
+ b _0801B276
+ .pool
+_0801B274:
+ movs r0, 0
+_0801B276:
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_801B21C
+
+ thumb_func_start sub_801B27C
+sub_801B27C: @ 801B27C
+ push {r4,r5,lr}
+ ldr r5, =gSaveBlock1Ptr
+ ldr r0, [r5]
+ ldr r1, =0x000033ec
+ adds r4, r0, r1
+ adds r1, 0x4
+ adds r0, r1
+ movs r1, 0xA6
+ lsls r1, 1
+ bl CalcCRC16WithTable
+ lsls r0, 16
+ lsrs r0, 16
+ ldr r1, [r4]
+ cmp r1, r0
+ bne _0801B2C4
+ ldr r0, [r5]
+ ldr r1, =0x000033f0
+ adds r0, r1
+ bl sub_801B2CC
+ cmp r0, 0
+ beq _0801B2C4
+ bl sub_80991F8
+ cmp r0, 0
+ beq _0801B2C4
+ movs r0, 0x1
+ b _0801B2C6
+ .pool
+_0801B2C4:
+ movs r0, 0
+_0801B2C6:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_801B27C
+
+ thumb_func_start sub_801B2CC
+sub_801B2CC: @ 801B2CC
+ push {lr}
+ adds r2, r0, 0
+ ldrh r0, [r2]
+ cmp r0, 0
+ beq _0801B302
+ ldrb r1, [r2, 0x8]
+ lsls r0, r1, 30
+ lsrs r0, 30
+ cmp r0, 0x2
+ bhi _0801B302
+ movs r0, 0xC0
+ ands r0, r1
+ cmp r0, 0
+ beq _0801B2F0
+ cmp r0, 0x40
+ beq _0801B2F0
+ cmp r0, 0x80
+ bne _0801B302
+_0801B2F0:
+ lsls r0, r1, 26
+ lsrs r0, 28
+ cmp r0, 0x7
+ bhi _0801B302
+ ldrb r0, [r2, 0x9]
+ cmp r0, 0x7
+ bhi _0801B302
+ movs r0, 0x1
+ b _0801B304
+_0801B302:
+ movs r0, 0
+_0801B304:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_801B2CC
+
+ thumb_func_start sub_801B308
+sub_801B308: @ 801B308
+ push {lr}
+ ldr r0, =gSaveBlock1Ptr
+ ldr r0, [r0]
+ ldr r1, =0x000033f0
+ adds r0, r1
+ ldrb r1, [r0, 0x8]
+ movs r0, 0xC0
+ ands r0, r1
+ cmp r0, 0
+ beq _0801B328
+ movs r0, 0x1
+ b _0801B32A
+ .pool
+_0801B328:
+ movs r0, 0
+_0801B32A:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_801B308
+
+ thumb_func_start sub_801B330
+sub_801B330: @ 801B330
+ push {r4,r5,lr}
+ sub sp, 0x4
+ movs r5, 0
+ str r5, [sp]
+ ldr r4, =gSaveBlock1Ptr
+ ldr r1, [r4]
+ ldr r0, =0x000033f0
+ adds r1, r0
+ ldr r2, =0x05000053
+ mov r0, sp
+ bl CpuSet
+ ldr r0, [r4]
+ ldr r1, =0x000033ec
+ adds r0, r1
+ str r5, [r0]
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_801B330
+
+ thumb_func_start sub_801B368
+sub_801B368: @ 801B368
+ push {r4,lr}
+ sub sp, 0x4
+ movs r4, 0
+ str r4, [sp]
+ bl sav1_get_mevent_buffer_2
+ adds r1, r0, 0
+ ldr r2, =0x05000009
+ mov r0, sp
+ bl CpuSet
+ ldr r0, =gSaveBlock1Ptr
+ ldr r0, [r0]
+ ldr r1, =0x0000353c
+ adds r0, r1
+ str r4, [r0]
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_801B368
+
+ thumb_func_start sub_801B39C
+sub_801B39C: @ 801B39C
+ push {lr}
+ bl sub_801B27C
+ cmp r0, 0
+ bne _0801B3AA
+ movs r0, 0
+ b _0801B3B4
+_0801B3AA:
+ ldr r0, =gSaveBlock1Ptr
+ ldr r0, [r0]
+ ldr r1, =0x000033f0
+ adds r0, r1
+ ldrh r0, [r0]
+_0801B3B4:
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_801B39C
+
+ thumb_func_start sub_801B3C0
+sub_801B3C0: @ 801B3C0
+ push {lr}
+ adds r2, r0, 0
+ ldrb r1, [r2, 0x8]
+ movs r0, 0xC0
+ ands r0, r1
+ cmp r0, 0x40
+ bne _0801B3D4
+ movs r0, 0x3F
+ ands r0, r1
+ strb r0, [r2, 0x8]
+_0801B3D4:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_801B3C0
+
+ thumb_func_start sub_801B3D8
+sub_801B3D8: @ 801B3D8
+ push {lr}
+ lsls r0, 16
+ ldr r1, =0xfc180000
+ adds r0, r1
+ lsrs r0, 16
+ cmp r0, 0x13
+ bls _0801B3F0
+ movs r0, 0
+ b _0801B3F2
+ .pool
+_0801B3F0:
+ movs r0, 0x1
+_0801B3F2:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_801B3D8
+
+ thumb_func_start sub_801B3F8
+sub_801B3F8: @ 801B3F8
+ push {r4,lr}
+ bl sub_801B39C
+ lsls r0, 16
+ lsrs r4, r0, 16
+ adds r0, r4, 0
+ bl sub_801B3D8
+ cmp r0, 0
+ beq _0801B430
+ ldr r1, =gUnknown_082F0DE8
+ ldr r2, =0xfffffc18
+ adds r0, r4, r2
+ lsls r0, 1
+ adds r0, r1
+ ldrh r0, [r0]
+ bl FlagGet
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _0801B430
+ movs r0, 0x1
+ b _0801B432
+ .pool
+_0801B430:
+ movs r0, 0
+_0801B432:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_801B3F8
+
+ thumb_func_start sub_801B438
+sub_801B438: @ 801B438
+ push {lr}
+ movs r3, 0
+ cmp r3, r1
+ bge _0801B45A
+ adds r2, r0, 0
+ adds r2, 0x8
+_0801B444:
+ ldrh r0, [r2, 0xE]
+ cmp r0, 0
+ beq _0801B452
+ ldrh r0, [r2]
+ cmp r0, 0
+ beq _0801B452
+ adds r3, 0x1
+_0801B452:
+ adds r2, 0x2
+ subs r1, 0x1
+ cmp r1, 0
+ bne _0801B444
+_0801B45A:
+ adds r0, r3, 0
+ pop {r1}
+ bx r1
+ thumb_func_end sub_801B438
+
+ thumb_func_start sub_801B460
+sub_801B460: @ 801B460
+ push {r4-r7,lr}
+ adds r5, r0, 0
+ adds r4, r1, 0
+ movs r1, 0
+ cmp r1, r2
+ bge _0801B49A
+ ldrh r6, [r4, 0x2]
+ movs r0, 0x16
+ adds r0, r5
+ mov r12, r0
+_0801B474:
+ lsls r3, r1, 1
+ mov r7, r12
+ ldrh r0, [r7]
+ cmp r0, r6
+ beq _0801B48C
+ adds r0, r5, 0
+ adds r0, 0x8
+ adds r0, r3
+ ldrh r0, [r0]
+ ldrh r3, [r4]
+ cmp r0, r3
+ bne _0801B490
+_0801B48C:
+ movs r0, 0x1
+ b _0801B49C
+_0801B490:
+ movs r7, 0x2
+ add r12, r7
+ adds r1, 0x1
+ cmp r1, r2
+ blt _0801B474
+_0801B49A:
+ movs r0, 0
+_0801B49C:
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_801B460
+
+ thumb_func_start sub_801B4A4
+sub_801B4A4: @ 801B4A4
+ push {lr}
+ adds r1, r0, 0
+ ldrh r0, [r1, 0x2]
+ cmp r0, 0
+ beq _0801B4C4
+ ldrh r1, [r1]
+ cmp r1, 0
+ beq _0801B4C4
+ ldr r0, =0x0000019b
+ cmp r1, r0
+ bhi _0801B4C4
+ movs r0, 0x1
+ b _0801B4C6
+ .pool
+_0801B4C4:
+ movs r0, 0
+_0801B4C6:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_801B4A4
+
+ thumb_func_start sub_801B4CC
+sub_801B4CC: @ 801B4CC
+ push {lr}
+ bl sub_801B27C
+ cmp r0, 0
+ beq _0801B500
+ ldr r0, =gSaveBlock1Ptr
+ ldr r3, [r0]
+ ldr r0, =0x000033f0
+ adds r2, r3, r0
+ ldrb r1, [r2, 0x8]
+ movs r0, 0x3
+ ands r0, r1
+ cmp r0, 0x1
+ bne _0801B500
+ movs r1, 0xD5
+ lsls r1, 6
+ adds r0, r3, r1
+ ldrb r1, [r2, 0x9]
+ bl sub_801B438
+ b _0801B502
+ .pool
+_0801B500:
+ movs r0, 0
+_0801B502:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_801B4CC
+
+ thumb_func_start sub_801B508
+sub_801B508: @ 801B508
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ ldr r6, =gSaveBlock1Ptr
+ ldr r0, [r6]
+ ldr r1, =0x000033f0
+ adds r0, r1
+ ldrb r4, [r0, 0x9]
+ adds r0, r5, 0
+ bl sub_801B4A4
+ cmp r0, 0
+ beq _0801B572
+ ldr r0, [r6]
+ movs r1, 0xD5
+ lsls r1, 6
+ adds r0, r1
+ adds r1, r5, 0
+ adds r2, r4, 0
+ bl sub_801B460
+ cmp r0, 0
+ beq _0801B54C
+ b _0801B572
+ .pool
+_0801B540:
+ ldrh r0, [r5, 0x2]
+ strh r0, [r1]
+ ldrh r0, [r5]
+ strh r0, [r2]
+ movs r0, 0x1
+ b _0801B574
+_0801B54C:
+ movs r3, 0
+ cmp r3, r4
+ bge _0801B572
+ ldr r0, [r6]
+ ldr r6, =0x00003548
+ adds r2, r0, r6
+ adds r6, 0xE
+ adds r1, r0, r6
+_0801B55C:
+ ldrh r0, [r2, 0xE]
+ cmp r0, 0
+ bne _0801B568
+ ldrh r0, [r2]
+ cmp r0, 0
+ beq _0801B540
+_0801B568:
+ adds r2, 0x2
+ adds r1, 0x2
+ adds r3, 0x1
+ cmp r3, r4
+ blt _0801B55C
+_0801B572:
+ movs r0, 0
+_0801B574:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_801B508
+
+ thumb_func_start sub_801B580
+sub_801B580: @ 801B580
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ adds r5, r0, 0
+ adds r4, r1, 0
+ movs r0, 0
+ str r0, [sp]
+ ldr r2, =0x05000019
+ mov r0, sp
+ adds r1, r5, 0
+ bl CpuSet
+ ldr r0, =0x00000101
+ str r0, [r5]
+ movs r0, 0x1
+ strh r0, [r5, 0x4]
+ str r0, [r5, 0x8]
+ cmp r4, 0
+ beq _0801B5C0
+ movs r0, 0x5
+ strh r0, [r5, 0xC]
+ ldr r0, =0x00000201
+ b _0801B5C8
+ .pool
+_0801B5C0:
+ movs r0, 0x4
+ strh r0, [r5, 0xC]
+ movs r0, 0x80
+ lsls r0, 2
+_0801B5C8:
+ str r0, [r5, 0x10]
+ bl sub_801B27C
+ cmp r0, 0
+ beq _0801B5FC
+ bl sav1_get_mevent_buffer_1
+ ldrh r0, [r0]
+ strh r0, [r5, 0x14]
+ bl sav1_get_mevent_buffer_2
+ adds r1, r5, 0
+ adds r1, 0x20
+ ldm r0!, {r2-r4}
+ stm r1!, {r2-r4}
+ ldm r0!, {r2-r4}
+ stm r1!, {r2-r4}
+ ldm r0!, {r2-r4}
+ stm r1!, {r2-r4}
+ bl sav1_get_mevent_buffer_1
+ ldrb r1, [r0, 0x9]
+ adds r0, r5, 0
+ adds r0, 0x44
+ strb r1, [r0]
+ b _0801B5FE
+_0801B5FC:
+ strh r0, [r5, 0x14]
+_0801B5FE:
+ adds r4, r5, 0
+ adds r4, 0x4C
+ ldr r0, =gSaveBlock2Ptr
+ mov r8, r0
+ adds r6, r5, 0
+ adds r6, 0x45
+ adds r7, r5, 0
+ adds r7, 0x50
+ movs r1, 0x5C
+ adds r1, r5
+ mov r9, r1
+ movs r2, 0x60
+ adds r2, r5
+ mov r10, r2
+ ldr r0, =gSaveBlock1Ptr
+ ldr r0, [r0]
+ ldr r3, =0x00003564
+ adds r2, r0, r3
+ adds r1, r5, 0
+ adds r1, 0x16
+ movs r3, 0x3
+_0801B628:
+ ldrh r0, [r2]
+ strh r0, [r1]
+ adds r2, 0x2
+ adds r1, 0x2
+ subs r3, 0x1
+ cmp r3, 0
+ bge _0801B628
+ mov r0, r8
+ ldr r1, [r0]
+ adds r1, 0xA
+ adds r0, r4, 0
+ bl CopyTrainerId
+ mov r2, r8
+ ldr r1, [r2]
+ adds r0, r6, 0
+ bl StringCopy
+ ldr r0, =gSaveBlock1Ptr
+ ldr r0, [r0]
+ ldr r3, =0x00002bb0
+ adds r2, r0, r3
+ adds r1, r7, 0
+ movs r3, 0x5
+_0801B658:
+ ldrh r0, [r2]
+ strh r0, [r1]
+ adds r2, 0x2
+ adds r1, 0x2
+ subs r3, 0x1
+ cmp r3, 0
+ bge _0801B658
+ ldr r1, =RomHeaderGameCode
+ mov r0, r9
+ movs r2, 0x4
+ bl memcpy
+ ldr r0, =RomHeaderSoftwareVersion
+ ldrb r0, [r0]
+ mov r4, r10
+ strb r0, [r4]
+ add sp, 0x4
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_801B580
+
+ thumb_func_start sub_801B6A0
+sub_801B6A0: @ 801B6A0
+ push {r4,lr}
+ adds r2, r0, 0
+ adds r4, r1, 0
+ ldr r1, [r2]
+ ldr r0, =0x00000101
+ cmp r1, r0
+ bne _0801B6DC
+ ldrh r1, [r2, 0x4]
+ movs r3, 0x1
+ adds r0, r3, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _0801B6DC
+ ldr r0, [r2, 0x8]
+ ands r0, r3
+ cmp r0, 0
+ beq _0801B6DC
+ cmp r4, 0
+ bne _0801B6E4
+ ldrh r1, [r2, 0xC]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _0801B6DC
+ ldr r0, [r2, 0x10]
+ movs r1, 0xE0
+ lsls r1, 2
+ ands r0, r1
+ cmp r0, 0
+ bne _0801B6E4
+_0801B6DC:
+ movs r0, 0
+ b _0801B6E6
+ .pool
+_0801B6E4:
+ movs r0, 0x1
+_0801B6E6:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_801B6A0
+
+ thumb_func_start sub_801B6EC
+sub_801B6EC: @ 801B6EC
+ push {lr}
+ ldrh r1, [r1, 0x14]
+ cmp r1, 0
+ bne _0801B6F8
+ movs r0, 0
+ b _0801B704
+_0801B6F8:
+ ldrh r0, [r0]
+ cmp r0, r1
+ beq _0801B702
+ movs r0, 0x2
+ b _0801B704
+_0801B702:
+ movs r0, 0x1
+_0801B704:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_801B6EC
+
+ thumb_func_start sub_801B708
+sub_801B708: @ 801B708
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ adds r4, r1, 0
+ adds r5, r4, 0
+ adds r5, 0x20
+ adds r4, 0x44
+ ldrb r1, [r4]
+ adds r0, r5, 0
+ bl sub_801B438
+ ldrb r2, [r4]
+ subs r4, r2, r0
+ cmp r4, 0
+ bne _0801B728
+ movs r0, 0x1
+ b _0801B742
+_0801B728:
+ adds r0, r5, 0
+ adds r1, r6, 0
+ bl sub_801B460
+ cmp r0, 0
+ beq _0801B738
+ movs r0, 0x3
+ b _0801B742
+_0801B738:
+ cmp r4, 0x1
+ beq _0801B740
+ movs r0, 0x2
+ b _0801B742
+_0801B740:
+ movs r0, 0x4
+_0801B742:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_801B708
+
+ thumb_func_start sub_801B748
+sub_801B748: @ 801B748
+ push {r4,lr}
+ movs r3, 0
+ adds r2, r0, 0
+ adds r2, 0x16
+_0801B750:
+ ldrh r0, [r2]
+ ldrh r4, [r1]
+ cmp r0, r4
+ beq _0801B75C
+ movs r0, 0
+ b _0801B768
+_0801B75C:
+ adds r1, 0x2
+ adds r2, 0x2
+ adds r3, 0x1
+ cmp r3, 0x3
+ ble _0801B750
+ movs r0, 0x1
+_0801B768:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_801B748
+
+ thumb_func_start sub_801B770
+sub_801B770: @ 801B770
+ push {lr}
+ adds r2, r0, 0
+ adds r2, 0x20
+ adds r0, 0x44
+ ldrb r1, [r0]
+ adds r0, r2, 0
+ bl sub_801B438
+ pop {r1}
+ bx r1
+ thumb_func_end sub_801B770
+
+ thumb_func_start sub_801B784
+sub_801B784: @ 801B784
+ push {lr}
+ adds r2, r0, 0
+ cmp r1, 0x4
+ bhi _0801B7D0
+ lsls r0, r1, 2
+ ldr r1, =_0801B79C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_0801B79C:
+ .4byte _0801B7B0
+ .4byte _0801B7B4
+ .4byte _0801B7B8
+ .4byte _0801B7BC
+ .4byte _0801B7C8
+_0801B7B0:
+ ldrh r0, [r2, 0x20]
+ b _0801B7D2
+_0801B7B4:
+ ldrh r0, [r2, 0x22]
+ b _0801B7D2
+_0801B7B8:
+ ldrh r0, [r2, 0x24]
+ b _0801B7D2
+_0801B7BC:
+ adds r0, r2, 0
+ bl sub_801B770
+ lsls r0, 16
+ lsrs r0, 16
+ b _0801B7D2
+_0801B7C8:
+ adds r0, r2, 0
+ adds r0, 0x44
+ ldrb r0, [r0]
+ b _0801B7D2
+_0801B7D0:
+ movs r0, 0
+_0801B7D2:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_801B784
+
+ thumb_func_start sub_801B7D8
+sub_801B7D8: @ 801B7D8
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r2, =gSaveBlock1Ptr
+ ldr r0, [r2]
+ ldr r1, =0x000033f0
+ adds r0, r1
+ ldrb r1, [r0, 0x8]
+ movs r0, 0x3
+ ands r0, r1
+ adds r3, r2, 0
+ cmp r0, 0x2
+ bne _0801B850
+ movs r2, 0
+ cmp r4, 0x4
+ bhi _0801B83A
+ lsls r0, r4, 2
+ ldr r1, =_0801B80C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_0801B80C:
+ .4byte _0801B820
+ .4byte _0801B828
+ .4byte _0801B834
+ .4byte _0801B83A
+ .4byte _0801B83A
+_0801B820:
+ ldr r0, [r3]
+ movs r1, 0xD5
+ lsls r1, 6
+ b _0801B838
+_0801B828:
+ ldr r0, [r3]
+ ldr r1, =0x00003542
+ b _0801B838
+ .pool
+_0801B834:
+ ldr r0, [r3]
+ ldr r1, =0x00003544
+_0801B838:
+ adds r2, r0, r1
+_0801B83A:
+ cmp r2, 0
+ beq _0801B850
+ ldrh r0, [r2]
+ adds r0, 0x1
+ strh r0, [r2]
+ lsls r0, 16
+ lsrs r0, 16
+ ldr r1, =0x000003e7
+ cmp r0, r1
+ bls _0801B850
+ strh r1, [r2]
+_0801B850:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_801B7D8
+
+ thumb_func_start mevent_081445C0
+mevent_081445C0: @ 801B860
+ push {lr}
+ cmp r0, 0x4
+ bhi _0801B938
+ lsls r0, 2
+ ldr r1, =_0801B874
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_0801B874:
+ .4byte _0801B888
+ .4byte _0801B8AC
+ .4byte _0801B8D0
+ .4byte _0801B8F4
+ .4byte _0801B918
+_0801B888:
+ ldr r0, =gSaveBlock1Ptr
+ ldr r2, [r0]
+ ldr r1, =0x000033f0
+ adds r0, r2, r1
+ ldrb r1, [r0, 0x8]
+ movs r0, 0x3
+ ands r0, r1
+ cmp r0, 0x2
+ bne _0801B938
+ movs r1, 0xD5
+ lsls r1, 6
+ adds r0, r2, r1
+ ldrh r0, [r0]
+ b _0801B93A
+ .pool
+_0801B8AC:
+ ldr r0, =gSaveBlock1Ptr
+ ldr r2, [r0]
+ ldr r1, =0x000033f0
+ adds r0, r2, r1
+ ldrb r1, [r0, 0x8]
+ movs r0, 0x3
+ ands r0, r1
+ cmp r0, 0x2
+ bne _0801B938
+ movs r1, 0xD5
+ lsls r1, 6
+ adds r0, r2, r1
+ ldrh r0, [r0, 0x2]
+ b _0801B93A
+ .pool
+_0801B8D0:
+ ldr r0, =gSaveBlock1Ptr
+ ldr r2, [r0]
+ ldr r1, =0x000033f0
+ adds r0, r2, r1
+ ldrb r1, [r0, 0x8]
+ movs r0, 0x3
+ ands r0, r1
+ cmp r0, 0x2
+ bne _0801B938
+ movs r1, 0xD5
+ lsls r1, 6
+ adds r0, r2, r1
+ ldrh r0, [r0, 0x4]
+ b _0801B93A
+ .pool
+_0801B8F4:
+ ldr r0, =gSaveBlock1Ptr
+ ldr r0, [r0]
+ ldr r1, =0x000033f0
+ adds r0, r1
+ ldrb r1, [r0, 0x8]
+ movs r0, 0x3
+ ands r0, r1
+ cmp r0, 0x1
+ bne _0801B938
+ bl sub_801B4CC
+ lsls r0, 16
+ lsrs r0, 16
+ b _0801B93A
+ .pool
+_0801B918:
+ ldr r0, =gSaveBlock1Ptr
+ ldr r0, [r0]
+ ldr r1, =0x000033f0
+ adds r2, r0, r1
+ ldrb r1, [r2, 0x8]
+ movs r0, 0x3
+ ands r0, r1
+ cmp r0, 0x1
+ bne _0801B938
+ ldrb r0, [r2, 0x9]
+ b _0801B93A
+ .pool
+_0801B938:
+ movs r0, 0
+_0801B93A:
+ pop {r1}
+ bx r1
+ thumb_func_end mevent_081445C0
+
+ thumb_func_start sub_801B940
+sub_801B940: @ 801B940
+ ldr r1, =gUnknown_02022C70
+ movs r0, 0
+ str r0, [r1]
+ bx lr
+ .pool
+ thumb_func_end sub_801B940
+
+ thumb_func_start sub_801B94C
+sub_801B94C: @ 801B94C
+ push {r4,r5,lr}
+ lsls r0, 16
+ lsrs r0, 16
+ adds r4, r0, 0
+ ldr r5, =gUnknown_02022C70
+ movs r0, 0
+ str r0, [r5]
+ cmp r4, 0
+ beq _0801B98A
+ bl sub_801B27C
+ cmp r0, 0
+ beq _0801B988
+ ldr r0, =gSaveBlock1Ptr
+ ldr r0, [r0]
+ ldr r1, =0x000033f0
+ adds r0, r1
+ ldrh r0, [r0]
+ cmp r0, r4
+ bne _0801B988
+ movs r0, 0x1
+ str r0, [r5]
+ b _0801B98A
+ .pool
+_0801B988:
+ movs r0, 0
+_0801B98A:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_801B94C
+
+ thumb_func_start sub_801B990
+sub_801B990: @ 801B990
+ push {lr}
+ adds r2, r0, 0
+ ldr r0, =gUnknown_02022C70
+ ldr r0, [r0]
+ cmp r0, 0
+ beq _0801B9EC
+ cmp r2, 0x1
+ beq _0801B9DC
+ cmp r2, 0x1
+ bcc _0801B9C0
+ cmp r2, 0x2
+ bne _0801B9EC
+ ldr r0, =gSaveBlock1Ptr
+ ldr r2, [r0]
+ ldr r0, =0x00003584
+ adds r2, r0
+ movs r0, 0x2
+ b _0801B9CA
+ .pool
+_0801B9C0:
+ ldr r0, =gSaveBlock1Ptr
+ ldr r2, [r0]
+ ldr r0, =0x00003570
+ adds r2, r0
+ movs r0, 0
+_0801B9CA:
+ movs r3, 0x5
+ bl sub_801BA8C
+ b _0801B9EC
+ .pool
+_0801B9DC:
+ ldr r0, =gSaveBlock1Ptr
+ ldr r2, [r0]
+ ldr r0, =0x00003570
+ adds r2, r0
+ movs r0, 0x1
+ movs r3, 0x5
+ bl sub_801BA8C
+_0801B9EC:
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_801B990
+
+ thumb_func_start sub_801B9F8
+sub_801B9F8: @ 801B9F8
+ push {lr}
+ sub sp, 0x4
+ movs r0, 0
+ str r0, [sp]
+ ldr r0, =gSaveBlock1Ptr
+ ldr r1, [r0]
+ ldr r0, =0x00003570
+ adds r1, r0
+ ldr r2, =0x0500000a
+ mov r0, sp
+ bl CpuSet
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_801B9F8
+
+ thumb_func_start sub_801BA24
+sub_801BA24: @ 801BA24
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ adds r4, r1, 0
+ movs r1, 0
+ cmp r1, r2
+ bge _0801BA46
+ ldr r0, [r4]
+ cmp r0, r5
+ beq _0801BA46
+ adds r3, r4, 0
+_0801BA38:
+ adds r3, 0x4
+ adds r1, 0x1
+ cmp r1, r2
+ bge _0801BA46
+ ldr r0, [r3]
+ cmp r0, r5
+ bne _0801BA38
+_0801BA46:
+ cmp r1, r2
+ bne _0801BA68
+ subs r3, r1, 0x1
+ cmp r3, 0
+ ble _0801BA62
+ lsls r0, r3, 2
+ subs r0, 0x4
+ adds r2, r0, r4
+_0801BA56:
+ ldr r0, [r2]
+ str r0, [r2, 0x4]
+ subs r2, 0x4
+ subs r3, 0x1
+ cmp r3, 0
+ bgt _0801BA56
+_0801BA62:
+ str r5, [r4]
+ movs r0, 0x1
+ b _0801BA84
+_0801BA68:
+ adds r3, r1, 0
+ cmp r3, 0
+ ble _0801BA80
+ lsls r0, r3, 2
+ subs r0, 0x4
+ adds r2, r0, r4
+_0801BA74:
+ ldr r0, [r2]
+ str r0, [r2, 0x4]
+ subs r2, 0x4
+ subs r3, 0x1
+ cmp r3, 0
+ bgt _0801BA74
+_0801BA80:
+ str r5, [r4]
+ movs r0, 0
+_0801BA84:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_801BA24
+
+ thumb_func_start sub_801BA8C
+sub_801BA8C: @ 801BA8C
+ push {r4,lr}
+ adds r4, r0, 0
+ adds r0, r1, 0
+ adds r1, r2, 0
+ adds r2, r3, 0
+ bl sub_801BA24
+ cmp r0, 0
+ beq _0801BAA4
+ adds r0, r4, 0
+ bl sub_801B7D8
+_0801BAA4:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_801BA8C
+
+ .align 2, 0 @ don't pad with nop